Index: a.bat
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/a.bat	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/a.bat	(working copy)
@@ -0,0 +1,11 @@
+set baud=a0
+e pu
+e 8043 00
+
+::e hu output/romcode.rom 2000
+::e ku
+e pu
+e hu output/ramcode.rom 0
+ping -n 2 127.1 >nul
+e su output/sched.rom
+e cu
\ No newline at end of file
Index: do.bat
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/do.bat	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/do.bat	(working copy)
@@ -0,0 +1,109 @@
+@set FPGA_PATH=fpgajic\fpga
+@set ROM_PATH=.
+@set MV_PATCH=mv\src\yichip
+@set YC_PATCH_FILE=yc_patch_yc1021.h
+@set enc=1
+@set enckey=0000000000000000
+@rem set device_option=rfbqb
+@rem set device_option=mouse
+@rem set device_option=shutter
+@rem set device_option=shutter_dy
+@rem set device_option=hci
+@rem set device_option=antilost
+@rem set device_option=dongle
+@rem set device_option=module
+@set device_option=keyboard
+@rem set device_option=car
+@rem set device_option=remote_car
+@rem set device_option=mesh
+@rem set device_option=otp
+@rem set device_option=flippen
+@echo off
+
+set now_path=%~dp0
+set util_path=%now_path%util
+
+
+setlocal enabledelayedexpansion
+for %%f in (program\ble_protocol_stack\*.prog) do @set progs=!progs! %%f
+for %%f in (program\g24_protocol_stack\*.prog) do @set progs=!progs! %%f
+for %%f in (program\mesh_protocol_stack\*.prog) do @set progs=!progs! %%f
+for %%f in (program\*.prog) do @if not %%f==program\bt.prog if not %%f==program\patch.prog if not %%f==program\sim.prog set progs=!progs! %%f
+type program\bt.prog %progs% %light_progs% > output\bt_program23.meta
+
+for %%f in (format\ble_protocol_stack\*.format) do set fmts=!fmts! %%f
+for %%f in (format\g24_protocol_stack\*.format) do set fmts=!fmts! %%f
+for %%f in (format\mesh_protocol_stack\*.format) do set fmts=!fmts! %%f
+for %%f in (format\*.format) do @if not %%f==format\bt.format if not %%f==format\command.format set fmts=!fmts! %%f
+type format\bt.format %fmts% format\command.format > output\bt_format.meta
+::perl util/memalloc.pl output/bt_format.meta
+
+if "%device_option%" equ "hci" (
+  copy sched\hci_boot.dat output\sched.rom
+) else if "%device_option%" equ "keyboard" (
+  copy sched\keyboard.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "mouse" (
+  copy sched\mouse.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "module" (
+  copy sched\DM_module.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "shutter" (
+  copy sched\shutter.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "shutter_dy" (
+  copy sched\shutter_dy.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "antilost" (
+  copy sched\antilost.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "dongle" (
+  copy sched\dongle.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "car" (
+  copy sched\car.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "remote_car" (
+  copy sched\remote_car.dat + sched\1305.dat output\sched.rom
+ ) else if "%device_option%" equ "mesh" (
+  copy sched\1305.dat +sched\mesh.dat output\sched.rom
+) else if "%device_option%" equ "otp" (
+  copy sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "flippen" (
+  copy sched\mouse.dat + sched\flippen.dat + sched\1305.dat output\sched.rom
+)else  (
+
+cd ..
+echo **********************************
+echo Error: illegal device_option !
+echo **********************************
+goto end
+) 
+
+perl util/mergepatch.pl 
+
+cd output
+osiuasm bt_program23 -O-W
+
+
+
+%util_path%/geneep  -n -s
+
+
+:contin
+echo create auth rom
+perl ../util/mergepatch.pl mouse_ble_att_list usb_kbdata_vendor_define usb_kbdata usb_msdata usb_devicedata usb_confdata ble_shutter_gatt_list ble_shutter_key_value_list ble_car_att_list sha256 
+perl ../util/romcrc.pl romcode.rom
+perl  ../util/mergepatch.pl otp
+
+
+if "%device_option%" equ "keyboard" (
+cd ..\output
+copy eeprom.dat ..\util\eeprom.dat
+cd ..\util
+eeprom2fulleeprom.exe eeprom.dat 64>compare2.dat
+crc16.exe compare2.dat 2 >..\output\eeprom.dat
+del eeprom.dat
+del compare2.dat
+cd ..\output
+copy eeprom.dat ..\output\flash.dat 
+)
+
+
+:end
+
+
+
Index: doc/2024-168-YC1031-MZJP-V1.0.PCB
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: doc/2024-168-YC1031-MZJP-V1.0.PCB
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: doc/2024-168-YC1031-MZJP-V1.0.sch
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: doc/2024-168-YC1031-MZJP-V1.0.sch
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: ep.bat
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/ep.bat	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/ep.bat	(working copy)
@@ -0,0 +1,11 @@
+call do.bat eep
+e pu
+e pu
+e 8043 00
+e 8071 6c6d3e
+e er 0 10
+e ew 0 0000
+e er 0 10
+e ep
+e ku
+e au
Index: format/app.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app.format	(working copy)
@@ -0,0 +1,386 @@
+
+memalloc(
+
+/* load code */
+1 mem_ucode_status
+1 mem_spid_tbuf				/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0 mem_iicd_tbuf				/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+1 mem_addr_hi
+1 mem_addr_mi
+1 mem_addr_lo
+1 mem_iicd_addr
+4 mem_spid_rbuf
+2 mem_ucode_buf
+2 mem_ucode_len
+2 mem_sched_addr
+16 mem_ucode_keybuf
+
+32 mem_otp_temp
+
+1 mem_app_evt_timer_count
+)
+
+xmemalloc(
+2 mem_ucode_ptr
+1 mem_ucode_flag
+1 mem_device_option
+1 mem_peripheral_lock_flag
+6 mem_bistfix_val
+
+/*App Callback Functons*/
+2 mem_cb_check_wakelock
+2 mem_cb_before_hibernate
+2 mem_cb_before_lpm
+2 mem_cb_le_process
+2 mem_cb_idle_process
+2 mem_cb_bb_event_process
+2 mem_cb_att_write
+2 mem_cb_ble_transmit
+2 mem_cb_event_timer
+2 mem_cb_bt_set_mult
+2 mem_cb_spi_flash_write_complate
+2 mem_cb_before_lpm_sleep
+
+2 mem_eeprom_base
+
+//lpm mode
+1 mem_wake_up_delay_timer
+
+1 mem_app_connection_options
+
+//
+2 mem_app_disconn_reason
+2 mem_app_disconn_reason_flag
+1 mem_xrecord_mode
+
+1 mem_eeprom_block_size
+1 mem_spi_init_clk
+1 mem_spi_init_delay_time
+1 mem_spi_ncs_gpio
+
+2 mem_nv_data_ptr
+1 mem_nv_data_number
+
+2 mem_queue_ptr
+
+
+//adc
+0 mem_reference_inter1p8v_2v_adc_io_data
+0 mem_inter1v_adc_ft_data
+2 mem_3v_adc_io_data
+0 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+0 mem_inter1p2v_adc_ft_data
+2 mem_2v_adc_hvin_data
+0 mem_reference_inter1p8v_1v_adc_io_data
+0 mem_io1v_adc_ft_data
+2 mem_1v_adc_io_data
+0 mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+0 mem_io2v_adc_ft_data
+2 mem_3v_adc_hvin_data
+0 mem_adc_ratio
+2 mem_reference_voltage
+1 mem_adc_config_flag
+1 mem_adc_channel
+1 mem_adc_clkdiv
+2 mem_adc_current_value
+1 mem_adc_power_flag	//bit0:low power falg ; bit1:no power flag
+2 mem_adc_saddr_ptr
+2 mem_adc_eaddr_ptr
+1 mem_adc_dma_enable
+1 mem_adc_cal_c0
+1 mem_adc_cal_c1
+1 mem_adc_cal_c2
+1 mem_adc_cal_c3
+1 mem_adc_cal_c4
+1 mem_adc_cal_c5
+1 mem_adc_cal_c6
+
+3 mem_spi_write_addr
+2 mem_spi_write_ptr
+2 mem_spi_write_len
+1 mem_spi_write_flash_sm
+
+
+1 mem_spi_cs_gpio
+1 mem_spi_si_gpio
+1 mem_spi_so_gpio
+1 mem_spi_sclk_gpio
+1 mem_spi_wp_gpio
+1 mem_spi_hold_gpio
+
+
+1 mem_eeprom_wp_gpio
+1 mem_eeprom_scl_gpio
+1 mem_eeprom_sda_gpio
+2 mem_kscan_ptr
+0 mem_key_num_ptr
+2 mem_keyscan_ptr
+2 mem_key_value_retention
+2 mem_power_param_ptr
+
+1 mem_seqi
+0 mem_adc_cal_c7
+1 mem_set_cdb_on
+1 mem_syn_cal_ctrl
+
+1 mem_nec_decode_error_value
+
+ifdef AC_50HZ
+1 mem_ac_detect_gpio
+0 mem_ac_detect_control
+1 mem_ac_detect_div
+1 mem_ac_detect_window
+endif
+
+1 mem_wdt_always_work
+
+1 mem_power_ctrl_disable
+
+1 mem_ring_ibias_trim
+2 mem_ring_ibias_vtune_low
+2 mem_ring_ibias_vtune_high
+1 mem_ring_ibias_calc_adc_gpio
+1 mem_ring_ibias_calc_adc_channel
+)
+
+
+(
+0 QUEUE_OFFSET_EACH_SIZE
+1 QUEUE_OFFSET_LENGTH
+2 QUEUE_OFFSET_CURR_NUM
+3 QUEUE_OFFSET_READ_PTR
+4 QUEUE_OFFSET_WRITE_PTR
+5 QUEUE_OFFSET_ELE_INIT_ADDR
+)
+(
+//Flash Register
+0x05 FLASH_READ_SATUS
+
+// Flash Status Register
+0x00 FLASH_STATUS_WIP
+0X01 FLASH_STATUS_WEL
+0X02 FLASH_STATUS_BP0
+0X03 FLASH_STATUS_BP1
+
+//Flash Write Sm
+0X00 FLASH_SM_NO_BUYS
+0X01 FLASH_SM_START
+0X02 FLASH_SM_ERASE_SECTOR
+0X03 FLASH_SM_WAIT_ERASE_SECTOR
+0X04 FLASH_SM_WRITE_DATA
+0X05 FLASH_SM_WAIT_WRITE_DATA
+
+
+//Flash Command
+0x02 FLASH_COMMAND_WRITE_DATA
+0x03 FLASH_COMMAND_READ_DATA
+0x06 FLASH_COMMAND_WRITE_ENABLE
+0x20 FLASH_COMMAND_SECTOR_ERASE
+0xAB FLASH_COMMAND_RELEASE_FROM_POWERDOWN
+0xB9 FLASH_COMMAND_POWERDOWN
+
+)
+
+
+(
+7 OTP_UFLAG_MEMFIX2
+6 OTP_UFLAG_MEMFIX1
+5 OTP_UFLAG_MEMFIX0
+4 OTP_UFLAG_BIST
+3 OTP_UFLAG_AES
+2 OTP_UFLAG_SKIP_EEP
+1 OTP_UFLAG_SKIP_FLASH
+0 OTP_UFLAG_HCI
+)
+
+amemalloc mem_otp_temp(
+	8 mem_otp_adc
+	8 mem_otp_temp0
+	1 mem_otp_core_ldo
+	1 mem_otp_verf_bg
+	1 mem_otp_charge_pump
+	1 mem_otp_dpll_ibais
+	8 mem_otp_temp1
+	1 mem_otp_hv_sel
+	1 mem_otp_ldo_vsel
+	1 mem_otp_load_delay
+	1 mem_otp_load_check_sum
+)
+
+
+//OTP
+(
+0 OTP_OFFSET_PATCH_PTR //2 byte
+2 OTP_OFFSET_UCODE_FLAG
+3 OTP_OFFSET_DEVICE_OPTION
+4 OTP_OFFSET_PERIPHERALS_LOCK
+5 OTP_OFFSET_SCHED_BISTFIX 	//2 byte
+7 OTP_OFFSET_XRAM_BISTFIX	//2 byte
+9 OTP_OFFSET_PATCH_BISTFIX	//2 byte
+
+0xfc0 OTP_OFFSET_ADC_PARAM_L_C0
+
+0xfd0 OTP_OFFSET_ADC_PARAM_L
+0xff0 OTP_OFFSET_UCODE_KEY_L
+0x1000 OTP_OFFSET_H
+
+//0x1fd0 OTP_OFFSET_ADC_PARAM
+//0x1fec OTP_OFFSET_HV_SEL
+//0x1fed OTP_OFFSET_LDO_VSEL
+//0x1fee OTP_OFFSET_LOADCODE_DELAY
+//0x1fef OTP_OFFSET_LOADCODE_CHECKSUM
+0x1ff0 OTP_OFFSET_UCODE_KEY
+)
+
+
+
+/*mem_device_option*/
+(
+4 DVC_OP_DONGLE
+5 DVC_OP_TEST
+6 DVC_OP_SHUTTER_DY   
+8 DVC_OP_MOUSE
+9 DVC_OP_SHUTTER
+0X0A DVC_OP_MODULE
+0X0B DVC_OP_MESH
+0X0C DVC_OP_HCI_BOOT
+0X0D DVC_OP_REMOTE_CAR
+0X0E DVC_OP_CAR
+0X0F DVC_OP_KEYBOARD   
+)
+
+
+(
+7 GPIO_ACTIVE_BIT
+)
+
+(
+5 LPM_WAKE_UP_DELAY_TIMER
+)
+
+
+//mem_app_disconn_reason
+//mem_app_disconn_reason_flag
+//bit map
+(
+2 APP_DISC_RSN_SIZE
+)
+
+(
+0 APP_DISC_BY_BUTTON
+7 APP_DISC_BLE
+)
+
+//eeprom init flag
+(
+0xaa55 EEPROM_INIT_FLAG
+)
+
+(
+1 KEY_CONF_STRUCT_LEN
+0 KEY_PIN_OFFSET
+)
+
+(
+12000000 PWM_12MHZ
+24000000 PWM_24MHZ
+33000 PWM_33KHZ
+)
+(
+0 POWER_OFF
+1 POWER_STARTING
+2 POWER_STANDBY
+)
+//power parameter offset(8 byte)
+(
+0 power_state_offset
+1 power_timer_offset
+2 power_off_timeout_offset
+3 power_starting_timeout_offset
+4 power_off_cb_offset
+6 power_starting_cb_offset
+8 power_standby_cb_offset
+10 ui_butten_up_cb_offset
+)
+
+//auth rom address
+(
+0x9000 MOUSE_BLE_ATT_LIST_ADDR
+0x9272 USB_KBDATA_VENDOR_DEFINE_ADDR
+0x928d USB_KBDATA_ADDR
+0x92cd USB_MSDATA_ADDR
+0x9371 USB_DEVICEDATA_ADDR
+0x9384 USB_CONFDATA_ADDR
+0x93c0 BLE_SHUTTER_GATT_LIST_ADDR
+0x94f9 BLE_SHUTTER_KEY_VALUE_LIST_ADDR
+0x9521 BLE_CAR_ATT_LIST_ADDR
+0x95ed BLE_MESH_SHA256_ADDR
+0x97fc mem_sim_slave
+)
+
+(//NEC 61212
+9000 NEC61212_BOOT_CODE_START_TIME
+4500 NEC61212_BOOT_CODE_END_TIME
+
+9000 NEC61212_REPEAT_START_TIME
+2250 NEC61212_REPEAT_END_TIME
+
+560 NEC61212_DATA_BIT_1_START_TIME
+1690 NEC61212_DATA_BIT_1_END_TIME
+
+560 NEC61212_DATA_BIT_0_START_TIME
+560 NEC61212_DATA_BIT_0_END_TIME
+
+560 NEC61212_STOP_TIME
+
+42580 NEC61212_DATA2REPEAT_TIME
+98190 NEC61212_REPEAT2REPEAT_TIME
+
+0xffff NEC61212_TIMEOUT_TIME
+)
+
+//core_perf_status
+(
+1 CLK_CALIBRATION_DONE
+2 RC_CLK_CALIBRATION_DONE
+3 AES_DEC_KEY_INIT_DONE
+4 MEASURE_ADC_SUM_DONE
+5 SARADC_DONE
+)
+
+//ADC
+(
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+
+(
+0 ADC_CH_VBAT
+1 ADC_CH_VDCDC5V
+6 ADC_CH_GPIO_4
+7 ADC_CH_GPIO_2
+8 ADC_CH_GPIO_1
+9 ADC_CH_GPIO_3
+10 ADC_CH_GPIO_0
+11 ADC_CH_GPIO_5
+12 ADC_CH_GPIO_6
+13 ADC_CH_GPIO_7
+)
+
+//adc channel fixed
+(
+0x06 ADC_CH_GPIO18
+0x07 ADC_CH_GPIO10
+0x08 ADC_CH_GPIO9
+0x09 ADC_CH_GPIO12
+0x0a ADC_CH_GPIO6
+0x0b ADC_CH_GPIO20
+0x0c ADC_CH_GPIO21
+0x0d ADC_CH_GPIO22
+0x0e ADC_CH_GPIO13
+)
+//mem_adc_reference_mode 
+(
+1 SADC_REFERENCE_INTER3V
+2 SADC_REFERENCE_INTER1P8V_DIV2
+)
Index: format/app_adpcm.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_adpcm.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_adpcm.format	(working copy)
@@ -0,0 +1,22 @@
+
+xmemalloc g24_rx_car_adpcm(
+	16 mem_ad_indexTable
+	356 mem_ad_stepsizeTable
+
+	4 mem_ad_state_valpred
+	4 mem_ad_state_index
+	1 mem_ad_in_numSamples
+	2 mem_ad_in_ptr
+	2 mem_ad_out_ptr
+	1 mem_ad_sign
+	1 mem_ad_delta
+	4 mem_ad_step
+	4 mem_ad_valpred
+	4 mem_ad_index
+	4 mem_ad_vpdiff
+	4 mem_ad_inputbuffer
+	1 mem_ad_bufferstep
+)
+
+
+
Index: format/app_car.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_car.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_car.format	(working copy)
@@ -0,0 +1,335 @@
+
+
+xmemalloc g24_rx_car(
+1 mem_car_hard_soft_switch
+1 mem_car_queue_each_size
+1 mem_car__queue_length
+
+1 mem_car_queue_curr_num
+1 mem_car_queue_read_ptr
+1 mem_car_queue_write_ptr
+120 mem_car_queue_ele
+
+20 mem_car_pop_queue_buff
+
+1 mem_car_led_num
+10 mem_car_led_map
+
+1 mem_car_style1_led_type
+1 mem_car_style1_blink_count
+1 mem_car_style1_struct_led_gpio
+2 mem_car_style1_on_time
+2 mem_car_style1_off_time
+2 mem_car_style1_cb_ledon
+2 mem_car_style1_cb_ledoff
+
+1 mem_car_style2_led_type
+1 mem_car_style2_blink_count
+1 mem_car_style2_struct_led_gpio
+2 mem_car_style2_on_time
+2 mem_car_style2_off_time
+2 mem_car_style2_cb_ledon
+2 mem_car_style2_cb_ledoff
+
+//////motor
+0 mem_le_receive_data
+2 mem_le_receive_packet_head
+1 mem_le_receive_cmd
+2 mem_le_receive_length
+10 mem_le_receive_payload
+1 mem_le_receive_checksum
+1 mem_motor1_status
+1 mem_motor1_speed
+1 mem_motor2_status
+1 mem_motor2_speed
+1 mem_motor3_status
+1 mem_motor3_speed
+
+0 mem_motor1_pwm_set
+1 mem_motor1_pwm_pin1_set
+1 mem_motor1_pwm_pin2_set
+1 mem_motor1_pwm_pin_set
+1 mem_motor1_pwm_channel_set
+3 mem_motor1_pwm_freq_set
+1 mem_motor1_pwm_dute_set
+0 mem_motor2_pwm_set
+1 mem_motor2_pwm_pin1_set
+1 mem_motor2_pwm_pin2_set
+1 mem_motor2_pwm_pin_set
+1 mem_motor2_pwm_channel_set
+3 mem_motor2_pwm_freq_set
+1 mem_motor2_pwm_dute_set
+0 mem_motor3_pwm_set
+1 mem_motor3_pwm_pin1_set
+1 mem_motor3_pwm_pin2_set
+1 mem_motor3_pwm_pin_set
+1 mem_motor3_pwm_channel_set
+3 mem_motor3_pwm_freq_set
+1 mem_motor3_pwm_dute_set
+
+1 mem_motor_select_p_n
+1 mem_car_motor_status
+1 mem_car_motor_speed
+0 mem_motor_pwm_set
+1 mem_motor_pwm_pin1_set
+1 mem_motor_pwm_pin2_set
+1 mem_motor_pwm_pin_set
+1 mem_motor_pwm_channel_set
+3 mem_motor_pwm_freq_set
+1 mem_motor_pwm_dute_set
+
+1 mem_ir_rx_gpio
+2 mem_ir_data
+2 mem_ir_rx_buf
+4 mem_ir_receive_clkn
+
+3 mem_ir_notify_data
+5 mem_ir_notify_data_head
+2 mem_ir_notify_data_payload
+1 mem_ir_notify_data_check_sum
+1 mem_car_ir_breakdown_check_timer
+1 mem_car_ir_breakdown_flag
+
+0 mem_car_led_control
+1 mem_car_led1_status
+1 mem_car_led2_status
+1 mem_car_led3_status
+1 mem_car_led4_status
+1 mem_car_led5_status
+1 mem_car_led6_status
+1 mem_car_led7_status
+1 mem_car_led8_status
+1 mem_car_led_control_timer
+1 mem_car_led_blink_status
+1 mem_car_led_no
+
+3 mem_car_info_request
+5 mem_car_info_request_head
+8 mem_car_info_request_payload
+1 mem_car_info_request_checksum
+
+0 mem_car_config_param
+1 mem_car_config_setting_flag
+1 mem_car_config_device_select
+1 mem_car_config_motor_layout
+1 mem_car_config_ir_enable
+1 mem_car_config_ir_rx_gpio
+1 mem_car_config_pairing_led_conn_status
+1 mem_car_config_pairing_led_gpio
+1 mem_car_config_led_num
+0 mem_car_config_blood_led_gpio
+1 mem_car_config_blood_led1_gpio
+1 mem_car_config_blood_led2_gpio
+1 mem_car_config_blood_led3_gpio
+1 mem_car_config_blood_led4_gpio
+1 mem_car_config_blood_led5_gpio
+1 mem_car_config_blood_led6_gpio
+1 mem_car_config_blood_led7_gpio
+1 mem_car_config_blood_led8_gpio
+1 mem_car_config_bat_notify_enable
+1 mem_car_config_low_voltage_led_gpio
+1 mem_car_config_low_voltage_percent
+1 mem_car_config_soft_switch_enable
+1 mem_car_config_soft_switch_gpio
+
+1 mem_car_notify_vdd_count
+1 mem_car_notify_vdd_timer
+1 mem_car_notify_vdd_value_last
+1 mem_car_notify_vdd_percent
+1 mem_car_working_flag
+1 mem_low_bat_flag
+
+3 mem_notify_bat_packet
+5 mem_notify_bat_head
+1 mem_notify_bat_payload
+1 mem_notify_bat_check_sum
+
+1 mem_vdd_notify_flag
+2 mem_car_current_vdd_value_temp
+2 mem_car_last_vdd_value
+
+0 mem_vdd_calculate_set
+2 mem_vdd_full_vol
+2 mem_vdd_empty_vol
+2 mem_vdd_low_vol
+2 mem_vdd_now_vol
+
+
+1 mem_car_24g_status
+2 mem_car_24g_no_data_timeout_count
+2 mem_car_24g_no_data_timeout_timer
+
+1 mem_car_24g_ir_receive_attack_count
+1 mem_car_24g_go_die_flag
+1 mem_car_attack_shake_timer
+1 mem_car_attack_shake_flag
+
+0 mem_car_soft_power
+1 mem_car_power_state
+1 mem_car_power_timer
+1 mem_car_power_off_timeout
+1 mem_car_power_starting_timeout
+2 mem_car_power_off_cb
+2 mem_car_power_starting_cb
+2 mem_car_power_standby_cb
+2 mem_car_ui_button_up_cb
+
+
+500 mem_car_le_att_list
+
+1 mem_car_moto1_blank_timer
+1 mem_car_moto2_blank_timer
+1 mem_car_moto3_blank_timer
+
+1 mem_car_motor_gpio_num
+0 mem_car_motor_gpio_map
+1 mem_car_motor_left_gpio
+1 mem_car_motor_right_gpio
+1 mem_car_motor_front_gpio
+1 mem_car_motor_back_gpio
+1 mem_car_gpio
+1 mem_car_app_send_speed
+
+2 mem_rssi_sum
+2 mem_check_rssi_high_count
+8 mem_rssi_data
+
+1 mem_car_24g_received_pac
+1 mem_car_24g_bind_enable_delay_count
+
+0 mem_car_keyscan
+1 mem_car_key_num
+2 mem_cb_car_keyscan
+
+2 mem_car_enter_lpm_timer_count
+2 mem_car_enter_lpm_timer
+1 mem_car_enter_lpm_flag
+
+1 mem_car_24g_ch_polling
+
+8 mem_car_rssi_noise_buffer
+8 mem_car_rssi_noise_car_buffer
+8 mem_car_rssi_noise_remote_buffer
+
+
+4 mem_car_24g_commom_addr
+4 mem_car_24g_commom_addr_temp
+4 mem_car_24g_commom_addr_read
+1 mem_car_save_addr_flag
+400 mem_ble_att_list
+)
+
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE_CAR
+)
+
+(
+0x19 ATT_CAR_CONTROL_HANDLE
+0x19 ATT_SPEED_SET_HANDLE
+)
+
+
+(
+0 TURN_FRONT
+1 TURN_LEFT
+2 TURN_RIGHT
+0 MOTOR_STOP
+1 GO_FRONT
+2 GO_BACK
+0x6b5a LE_RECEIVE_PACKET_HEAD
+)
+
+(
+0 FLAG_IR_DISABLE
+1 FLAG_IR_ENABLE
+)
+
+(
+0 DEVICE_CAR
+1 DEVICE_TANK
+2 DEVICE_BATTLE_CAR
+3 DEVICE_BATTLE_TANK
+4 DEVICE_REMOTE
+)
+
+(
+0 F_B_MOTOR
+1 L_R_MOTOR
+2 F_B_BATTERY
+3 L_R_BATTERY
+)
+
+(
+0 CAR_WORK	   		//connect mode normal
+1 CAR_BIND			//code pair mode
+2 CAR_TEST			//test mode
+3 CAR_CODE			//PC_application
+4 CAR_PCBA			//PCBA_TEST
+5 CAR_DEBUG
+6 CAR_MODE_MAX
+7 CAR_SEARCH
+)
+
+(
+1 SPEED_LEVEL_1
+2 SPEED_LEVEL_2
+3 SPEED_LEVEL_3
+4 SPEED_LEVEL_4
+5 SPEED_LEVEL_5
+6 SPEED_LEVEL_6
+7 SPEED_LEVEL_7
+8 SPEED_LEVEL_8
+9 SPEED_LEVEL_9
+10 SPEED_LEVEL_10
+)
+
+(
+0 PWM0_DUTY_SETTING
+1 PWM1_DUTY_SETTING
+2 PWM2_DUTY_SETTING
+)
+
+(
+1 CAR_CMD_BATTERY
+2 CAR_CMD_OLD_CAR_CONTROL
+3 CAR_CMD_OLD_SPEED_CONTROL
+4 CAR_CMD_L_R_MOTOR_CONTROL
+5 CAR_CMD_F_B_MOTOR_CONTROL
+6 CAR_CMD_IR_CONTROL
+7 CAR_CMD_LED_CONTROL
+8 CAR_CMD_DEVICE_INFO
+)
+
+(
+0 CAR_REMOTE_CHECK_BUTTON
+1 CAR_REMOTE_CHECK_ROCKER
+)
+
+(
+0x11 CAR_NOTIFY_HANDLE
+)
+
+(
+0 LED_OFF
+1 LED_ON
+2 LED_BLINK
+0xFF LED_INVALID
+)
+
+(
+0xFF INVALID_PIN_NUM
+)
+
+
+(
+0 POWER_ON
+1 WORK_PAIRED
+2 WORK_SEARCH
+)
+
+(
+0x700 OTP_OFFSET_CAR_COMMOM_START_ADDR 
+0x7cc OTP_OFFSET_CAR_COMMOM_END_ADDR 
+)
+
Index: format/app_dongle.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_dongle.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_dongle.format	(working copy)
@@ -0,0 +1,135 @@
+
+memalloc usb_dongle(
+256 mem_dg_rssi_noise_buffer
+256 mem_dg_rssi_noise_dg_buffer
+256 mem_dg_rssi_noise_ms_buffer
+256 mem_dg_rssi_noise_kb_buffer
+
+)
+
+
+xmemalloc g24_rx_dongle(
+1 mem_dg_kb_bind_flag
+8 mem_dg_kb_data_sta_data
+8 mem_dg_kb_data_last_data
+3 mem_dg_kb_multikey_sta_data
+3 mem_dg_kb_multikey_last_data
+3 mem_dg_kb_system_sta_data
+3 mem_dg_kb_system_last_data
+1 mem_dg_kb_blank_data_enable
+1 mem_dg_kb_mul_blank_data_enable
+1 mem_dg_kb_system_crtl_blank_data_enable
+1 mem_dg_ms_blank_data_enable
+
+1 mem_dg_sys_config
+9 mem_dg_usb_vid_pid
+1 mem_dg_usb_tx_interval
+30 mem_dg_usb_device_name
+1 mem_dg_kb_bind_success
+1 mem_dg_pc_sleep_flag
+
+1 mem_dg_24g_tx_power_default
+)
+
+
+//otp address offset
+(
+0x5A DONGLE_KB_BIND_SUCCESS
+0x1fdf DONGLE_KB_BIND_EFUSE_OFFECT
+)
+
+(
+5 WORK_MODE_DELAY
+7 BIND_MODE_DELAY
+)
+
+(
+0 DONGLE_WORK	   		//connect mode normal
+1 DONGLE_BIND			//code pair mode
+2 DONGLE_TEST			//test mode
+3 DONGLE_CODE			//PC_application
+4 DONGLE_PCBA			//PCBA_TEST
+5 DONGLE_DEBUG
+6 DONGLE_MODE_MAX
+7 DONGLE_SEARCH
+0 CLEAR_INIT
+)
+
+
+(
+0xa0 COMMAND_MODE     //BYTE 0
+0x81 COM_MODE_BIND	//BYTE 1
+0x82 COM_MODE_TEST	//BYTE 1
+)
+(
+0xa1 COMMAND_BIND		//BYTE 0
+0x01 COM_BIND_GET		//1
+0x84 COM_BIND_EXIT		//1
+0xa7 COM_READ_MODE		//1
+)
+(
+0xa2 COMMAND_TEST	//BYTE 0
+0x81 COM_TEST_SC		//	进入单载波
+0x82 COM_TEST_CD		// fcc测试
+0x83 COM_TEST_DAT		// 数据测试
+0x84 COM_TEST_LOW_CH  //低频点
+0x85 COM_TEST_MID_CH	//中频点
+0x86 COM_TEST_HIG_CH	//高频点
+0x87 COM_TEST_SW_HIG	//自动切换频点为高 1mhz
+0x88 COIM_TEST_SW_LOW	//自动切换频点为低 1mhz
+0x89 COM_TEST_SW_STOP	//停止自动切换频点
+0x8a COM_TEST_POW_5		//设置输出功率5dbm
+0x8b COM_TEST_POW_0		//0dbm
+0x8c COM_TEST_POW_N5		//-5dbm
+0x8d COM_TEST_POW_N10		//-10dbm
+0x8e COM_TEST_EXIT			//退出测试模式
+)
+(
+0xa6 COMMAND_CURRENT_PROJECT
+0xa7 COMMAND_CURRENT_MODE
+0xa9 COMMAND_CURRENT_FW_VERSION
+0xb0 COMMAND_USER_DEFINED		//user defined cmd
+)
+
+(
+0x15 PRODUCT_ID
+0 FW_VERSION0
+0 FW_VERSION1
+1 FW_VERSION2
+7 FW_VERSION3
+)
+
+(
+640 TIMER_NODATA_DELAY	//200ms
+
+384 TIMER_MS_BLANK_DELAY
+
+384 TIMER_KB_MUL_BLANK_DELAY
+
+384 TIMER_KB_SYS_CRTL_BLANK_DELAY
+
+384 TIMER_KB_BLANK_DELAY
+)
+
+(
+0 KB_NORMAL_REPORT_ID
+1 MS_REPORT_ID
+2 KB_SYSTEM_CONCTRL_REPORT_ID
+3 KB_MULTIKEY_REPORT_ID
+)
+
+
+(
+0x01 BIND_ACKPAYLOAD
+0x03 KB_LED_ACKPAYLOAD
+)
+
+//mem_dg_sys_config
+(
+7 DG_ENABLE_XTAL_24M
+6 DG_ENABLE_NEW_CHMAP
+5 DG_ENABLE_EEPROM
+4 DG_ENABLE_KB_ICON
+3 DG_ENABLE_24G_2M
+)
+
Index: format/app_kb.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_kb.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_kb.format	(working copy)
@@ -0,0 +1,481 @@
+xmemalloc g24_tx_hid_keyboard(
+1 mem_power_on_flag
+6 mem_mouse_factory_addr
+8 mem_keyboard_flag
+
+10 mem_keyboard_tx_data
+1 mem_keyboard_data_send_flag
+
+//le conn param update
+1 mem_keyboard_le_send_conn_param_update
+1 mem_keyboard_le_send_conn_param_update_timer
+1 mem_le_start_auto_reco_timer
+
+1 mem_mcu_stb_gpio
+1 mem_mcu_clk_gpio
+1 mem_mcu_rstb_gpio
+1 mem_keyboard_caps_led_gpio
+1 mem_keyboard_num_led_gpio
+1 mem_keyboard_power_led_gpio
+2 mem_keyboard_caps_led_on_timer
+
+
+1 mem_keyboard_led_r_gpio
+1 mem_keyboard_led_g_gpio
+1 mem_keyboard_led_b_gpio
+
+8 mem_key_row_gpio
+20 mem_key_col_gpio
+12 mem_key_excol_gpio
+2 mem_kb_row_ptr
+2 mem_kb_col_ptr
+2 mem_kb_excol_ptr
+
+20 mem_keyscan_value_current
+20 mem_keyscan_value_check
+20 mem_keyscan_value_old
+11 mem_keyscan_exmcu_value
+2 mem_keyscan_value_ptr
+2 mem_keyscan_exmcu_value_ptr
+1 mem_keyscan_value_temp
+1 mem_keyscan_col_loop_count
+2 mem_keyscan_exmcu_wait_wake_count
+
+1 mem_same_keyvalue_timerout_flag
+2 mem_same_keyvalue_timer_init
+2 mem_same_keyvalue_timer
+
+1 mem_keyboard_current_col_press_key_count
+1 mem_keyboard_all_press_key_count
+1 mem_keyboard_same_row_press_key_count
+1 mem_keyboard_ghost_flag
+1 mem_keyboard_data_change_flag
+1 mem_keyboard_keyvalue_temp
+1 mem_keyboard_press_flag_temp
+1 mem_keyboard_keyvalue_bit_loop_count
+9 mem_keyboard_keyvalue_buffer
+160 mem_keyboard_keyvalue_map
+
+1 mem_keyboard_fn_flag
+1 mem_keyboard_control_key_flag
+1 mem_keyboard_bt_button_flag
+1 mem_keyboard_pairing_type
+2 mem_keyboard_commbination_key_bt
+2 mem_keyboard_commbination_key_24g
+1 mem_24g_repeat_send_flag
+1 mem_keyboard_led_status
+1 mem_keyboard_led_status_get
+1 mem_keyboard_led_status_get_timer
+1 mem_keyboard_led_status_get_timer_last
+
+0 mem_keyboard_fn_esc_f1_f12
+1 mem_keyboard_fn_first
+1 mem_keyboard_fn_esc
+1 mem_keyboard_fn_f1
+1 mem_keyboard_fn_f2
+1 mem_keyboard_fn_f3
+1 mem_keyboard_fn_f4
+1 mem_keyboard_fn_f5
+1 mem_keyboard_fn_f6
+1 mem_keyboard_fn_f7
+1 mem_keyboard_fn_f8
+1 mem_keyboard_fn_f9
+1 mem_keyboard_fn_f10
+1 mem_keyboard_fn_f11
+1 mem_keyboard_fn_f12
+1 mem_keyboard_fn_del
+
+1 mem_keyboard_fn_arrow_enable_flag
+1 mem_keyboard_fn_left_ctrl_enable_flag
+1 mem_keyboard_fn_space_enable_flag
+1 mem_keyboard_fn_system_switch_enable_flag
+
+1 mem_keyboard_commbination_key_step
+1 mem_keyboard_commbination_control_key_value
+1 mem_keyboard_commbination_standard_key_value
+1 mem_keyboard_commbination_control_key_delay_release_timer
+
+1 mem_keyboard_consumer_key_status
+
+1 mem_kb_computer_system
+24 mem_otp_read_retention_memory
+2 mem_otp_read_retention_offset
+16 mem_le_search_service_uuid
+1 mem_le_connect_ios_mac_flag
+2 mem_le_search_mac_uuid
+9 mem_le_search_mac_manu_name
+2 mem_keybord_appearance
+2 mem_keyboard_commbination_fast_conn_bt
+
+//patch area
+6 mem_keyboard_factory_addr
+1 mem_keyboard_device_poweron_timer_count_init
+1 mem_keyboard_device_poweron_timer_count
+2 mem_keyboard_disconvey_led_blink_time
+//led struct
+1 mem_keyboard_led_type
+1 mem_keyboard_blink_count
+1 mem_keyboard_struct_led_gpio
+2 mem_keyboard_on_time
+2 mem_keyboard_off_time
+2 mem_keyboard_cb_ledon
+2 mem_keyboard_cb_ledoff
+//struct end
+160 mem_keyboard_keyvalue_map_new
+1 mem_keyboard_customer_key
+1 mem_keyboard_customer_data_trigger
+1 mem_keyboard_customer_data_trigger_last
+1 mem_keyscan_exmcu_reset_count
+1 mem_power_on_flag_new
+2 mem_keyboard_le_map_len
+220 mem_keyboard_le_hid_map
+1 mem_keyboard_change_vid_pid_flag
+1 mem_keybaord_pnp_vid_source
+2 mem_keyboard_vid
+2 mem_keyboard_pid
+2 mem_keyboard_product_version
+
+1 mem_keyboard_switch_device_flag
+1 mem_keyboard_usb_enable
+1 mem_keyboard_switch_g24_enable
+1 mem_keyboard_switch_g24_press_timer
+1 mem_keyboard_switch_bt_enable
+1 mem_keyboard_switch_bt_press_timer
+1 mem_keyboard_switch_usb_enable
+3 mem_keyboard_switch_device_to_g24
+3 mem_keyboard_switch_device_to_bt1
+3 mem_keyboard_switch_device_to_bt2
+3 mem_keyboard_switch_device_to_bt3
+3 mem_keyboard_switch_device_to_usb
+
+1 mem_keyboard_24g_led_gpio
+1 mem_keyboard_bt1_led_gpio
+1 mem_keyboard_bt2_led_gpio
+1 mem_keyboard_bt3_led_gpio
+1 mem_keyboard_scroll_led_gpio
+1 mem_keyboard_low_voltage_alarm_gpio
+
+1 mem_usb_level_check_gpio
+1 mem_mouse_usb_vdd_status_current
+1 mem_mouse_usb_vdd_status_last
+1 mem_mouse_usb_wait_updata_timer
+9 mem_usb_vid_pid_new
+1 mem_keyboard_mode_led_on_timer
+
+6 mem_rgb_pwm_conf
+1 mem_rgb_pwm_breathe_flag
+1 mem_rgb_on_color_temp
+7 mem_rgb_on_color
+1 mem_pwm_lpm_mode_flag
+
+4 mem_ui_check_timer_setup
+2 mem_customize_timer_setup
+1 mem_backlight_on_flag
+1 mem_backlight_on_type
+1 mem_backlight_breathe_type
+2 mem_keyboard_led_on_time_init
+1 mem_device_flag_temp_new
+1 mem_otp_store_device_info_flag
+1 mem_otp_store_system_flag
+0 mem_adc_reference3v_ft_data	
+2 mem_adc_reference3v_gpio1v_ft_data	
+2 mem_adc_reference3v_gpio2v_ft_data	
+2 mem_adc_reference3v_vdcdc3p6v_ft_data	
+2 mem_adc_reference3v_vdcdc4p6v_ft_data	
+2 mem_adc_reference3v_inter1v_ft_data
+2 mem_adc_reference3v_inter1v_now_data	
+1 mem_adc_reference_mode
+1 mem_le_conn_rcv_new
+1 mem_le_conn_first_rcv
+1 mem_le_check_retransmit_flag
+1 mem_le_retransmit_cnt
+1 mem_le_check_retransmit_discon_flag
+64 mem_le_tx_buffer0_omemalloc_new
+64 mem_le_tx_buffer1_omemalloc_new
+64 mem_le_tx_buffer2_omemalloc_new
+64 mem_le_tx_buffer3_omemalloc_new
+12 mem_keyscan_exmcu_value_new
+1 mem_keyboard_pair_led_flag
+1 mem_keyboard_adc_low_volatage_led_timer_count
+2 mem_adc_low_volatage_led_blink_timer
+1 mem_keyboard_low_volatage_led_flag
+1 mem_keyboard_low_volatage_led_blink_new_data_enable
+1 mem_qdec_set_flag
+)
+(
+0x00 DONGLE_KB_BIND_EEPROM_OFFECT
+)
+(
+0x20 MOUSE_BLE_L2CAP_TXBUFF_SIZE_NEW
+)
+(
+0x01 DEVICE_DATA_TPYE_MOUSE
+0x02 DEVICE_DATA_TPYE_STANDARD_KEYBOARD
+0x03 DEVICE_DATA_TPYE_NONSTARNDARD_KEYBOARD
+0x04 DEVICE_DATA_TPYE_CONSUMER
+0x05 DEVICE_DATA_TPYE_SYSTEM_CONCTOL
+)
+
+(
+0x00 HID_REPORTID_KEY_STANDARD
+0x01 HID_REPORTID_MOUSE
+0x02 HID_REPORTID_SYSTEM_CTRL
+0x03 HID_REPORTID_CONSUMER_KEY
+)
+
+(
+0x04	 HID_KEY_A 	 
+0x05        HID_KEY_B 	 
+0x06        HID_KEY_C 	 
+0x07        HID_KEY_D 	 
+0x08        HID_KEY_E 	 
+0x09        HID_KEY_F 	 
+0x0a        HID_KEY_G 	 
+0x0b        HID_KEY_H 	 
+0x0c        HID_KEY_I  	 
+0x0d        HID_KEY_J 	 
+0x0e        HID_KEY_K 	 
+0x0f        HID_KEY_L 	 
+0x10        HID_KEY_M 	 
+0x11        HID_KEY_N 	 
+0x12        HID_KEY_O	 
+0x13        HID_KEY_P	 
+0x14        HID_KEY_Q	 
+0x15        HID_KEY_R	 
+0x16        HID_KEY_S	 
+0x17        HID_KEY_T	 
+0x18        HID_KEY_U	 
+0x19        HID_KEY_V	 
+0x1a        HID_KEY_W 	 
+0x1b        HID_KEY_X	 
+0x1c        HID_KEY_Y	 
+0x1d        HID_KEY_Z	 
+    
+0x1e        HID_KEY_1	 
+0x1f        HID_KEY_2	 
+0x20        HID_KEY_3	 
+0x21        HID_KEY_4	 
+0x22        HID_KEY_5	 
+0x23        HID_KEY_6	 
+0x24        HID_KEY_7	 
+0x25        HID_KEY_8	 
+0x26        HID_KEY_9	 
+0x27        HID_KEY_0	 
+    
+0x28        HID_KEY_ENTER 				 
+0x29        HID_KEY_ESC				 
+0x2a        HID_KEY_BACKSPACE		 
+0x2b        HID_KEY_TAB				 
+0x2c        HID_KEY_SPACE 				 
+0x2d        HID_KEY_MINUS				 		// -_
+0x2e        HID_KEY_EQUAL				 		// =+
+0x2f        HID_KEY_LEFT_BRACKET 		 	// [{
+0x30        HID_KEY_RIGHT_BRACKET 	 		// ]}
+0x31        HID_KEY_BACK_SLASH 		 		// \|
+    
+0x32        HID_KEY_K42				 
+0x33        HID_KEY_SEMICOLON			 	// ;:
+0x34        HID_KEY_QUOTE				 		// ' "
+0x35        HID_KEY_TILDE				 		// `~
+0x36        HID_KEY_LESS_THAN			 		// ,<
+0x37        HID_KEY_GREAT_THAN		 		// .>
+0x38        HID_KEY_SLASH				 		// /?
+0x39        HID_KEY_CAPS_LOCK			 
+
+0x3a        HID_KEY_F1		 
+0x3b        HID_KEY_F2		 
+0x3c        HID_KEY_F3		 
+0x3d        HID_KEY_F4		 
+0x3e        HID_KEY_F5		 
+0x3f        HID_KEY_F6		 
+0x40        HID_KEY_F7		 
+0x41        HID_KEY_F8		 
+0x42        HID_KEY_F9		 
+0x43        HID_KEY_F10	 
+0x44        HID_KEY_F11	 
+0x45        HID_KEY_F12	 
+    
+0x46        HID_KEY_PRINT_SCREEN	 
+0x47        HID_KEY_SCROLL_LOCK	 
+0x48        HID_KEY_PAUSE			 
+0x49        HID_KEY_INSERT			 
+0x4a        HID_KEY_HOME			 
+0x4b        HID_KEY_PAGE_UP		 
+0x4c        HID_KEY_DELETE		 
+0x4d        HID_KEY_END			 
+0x4e        HID_KEY_PAGE_DOWN	 
+        
+0x4f        HID_KEY_RIGHT_ARROW	 
+0x50        HID_KEY_LEFT_ARROW	 
+0x51        HID_KEY_DOWN_ARROW	 
+0x52        HID_KEY_UP_ARROW		 
+        
+0x53        HID_KEY_NUM_LOCK		 
+0x54        HID_KEY_KP_SLASH		 
+0x55        HID_KEY_KP_ASTERISK	 
+0x56        HID_KEY_KP_MINUS		 
+0x57        HID_KEY_KP_PLUS		 
+0x58        HID_KEY_KP_ENTER		 
+0x59        HID_KEY_KP_1			 
+0x5a        HID_KEY_KP_2			 
+0x5b        HID_KEY_KP_3			 
+0x5c        HID_KEY_KP_4			 
+0x5d        HID_KEY_KP_5			 
+0x5e        HID_KEY_KP_6			 
+0x5f        HID_KEY_KP_7			 
+0x60        HID_KEY_KP_8			 
+0x61        HID_KEY_KP_9			 
+0x62        HID_KEY_KP_0			 
+0x63        HID_KEY_KP_DEL		 
+  
+0x64        HID_KEY_K45			 
+0x65        HID_KEY_APP			 
+0x66        HID_KEY_POWER			 
+0x67        HID_KEY_KP_EQUAL		 
+        
+       
+0x87        HID_KEY_K56				 
+0x88        HID_KEY_K133  				 
+0x89        HID_KEY_K14  				 
+0x8a        HID_KEY_K132  				 
+0x8b        HID_KEY_K131 				 
+    
+0x90        HID_KEY_KR_R  				 
+0x91        HID_KEY_KR_L  				 
+        
+0xe0        HID_KEY_LEFT_CTRL			 
+0xe1        HID_KEY_LEFT_SHIFT			 
+0xe2        HID_KEY_LEFT_ALT 			 
+0xe3        HID_KEY_LEFT_GUI 			 
+0xe4        HID_KEY_RIGHT_CTRL			 
+0xe5        HID_KEY_RIGHT_SHIFT		 
+0xe6        HID_KEY_RIGHT_ALT			 
+0xe7        HID_KEY_RIGHT_GUI			 
+
+0xe8 	HID_KEY_MULTIKEY_MEDIA
+0xe9 	HID_KEY_MULTIKEY_PALY
+0xea 	HID_KEY_MULTIKEY_STOP
+0xeb 	HID_KEY_MULTIKEY_PRE_TRACK
+0xec 	HID_KEY_MULTIKEY_NEXT_TRACK
+0xed 	HID_KEY_MULTIKEY_VOL_DOWN
+0xee 	HID_KEY_MULTIKEY_VOL_UP
+0xef 	HID_KEY_MULTIKEY_MUTE
+0xf0 	HID_KEY_MY_COMPUTER
+0xf1 	HID_KEY_MAIL
+0xf2 	HID_KEY_CALCULATOR
+0xf3 	HID_KEY_LIGHT_DOWN
+0xf4 	HID_KEY_LIGHT_UP
+0xf5 	HID_KEY_AC_FAVORITES
+0xf6 	HID_KEY_AC_FORWARD
+0xf7 	HID_KEY_AC_BACK
+0xf8 	HID_KEY_AC_STOP
+0xf9 	HID_KEY_AC_REFRESH
+0xfa 	HID_KEY_AC_SEARCH
+0xfb 	HID_KEY_AC_HOME
+0xfc 	HID_KEY_IOS_ANDROID_OS_LOCK
+0xfd 	HID_KEY_OS_SOFT_KB
+0xfe 	HID_KEY_OS_LANGUAGE
+0xff 	HID_KEY_SYSTEM_SLEEP
+        // 0xe8~0xff reserved
+0xa5	HID_KEY_SELECT_ALL
+0xa6 	HID_KEY_COPY
+0xa7	HID_KEY_PASTE
+0xa8	HID_KEY_CUT
+0xa9	HID_KEY_ALL_OS_LOCK
+0xaa	HID_KEY_OSK
+0xab	HID_KEY_LANGUAGE
+0xac 	HID_KEY_APP_TILING
+0xad	HID_KEY_SEARCH
+	 // 0xa5~0xaf reserved
+0x7f     	HID_KEY_FN 					 
+0xde     	HID_KEY_PB
+0x00     	HID_KEY_NULL 				 
+)
+
+(
+0x01 LEFT_CONTROL
+0x02 LEFT_SHIFT
+0x04 LEFT_ALT
+0x08 LEFT_GUI
+0x10 RIGHT_CONTROL
+0x20 RIGHT_SHIFT
+0x40 RIGHT_ALT
+0x80 RIGHT_GUI
+0x09 LEFT_GUI_CONTROL
+0x0a LEFT_SHIFT_GUI
+)
+
+
+(
+0x00 KB_PC_KEYSEL_NUMLOCK
+0x01 KB_PC_KEYSEL_CAPSLOCK
+0x02 KB_PC_KEYSEL_SCROLLLOCK
+)
+
+(
+8 KEYSCAN_COL_NUM
+20 KEYSCAN_ROW_NUM
+)
+
+(
+0 CAMMBINATION_KEY_FREE
+1 CAMMBINATION_KEY_PRESS
+2 CAMMBINATION_KEY_HOLD
+3 CAMMBINATION_KEY_COMPLETE
+4 CAMMBINATION_KEY_WAIT_RELEASE
+5 CAMMBINATION_KEY_RELEASE
+6 CAMMBINATION_KEY_NULL
+)
+
+
+(
+
+0x600 PNP_MICROSOFT
+0x4c00 PNP_IOS
+0x1208 PNP_MAC
+
+
+0 SYSTEM_OS_WINDOWS
+1 SYSTEM_OS_ANDRIOD
+2 SYSTEM_OS_IOS
+3 SYSTEM_OS_MAC
+
+)
+
+(
+0 KEYBOARD_CONSUMER_KEY_STANDBY
+1 KEYBOARD_CONSUMER_KEY_PRESS
+2 KEYBOARD_CONSUMER_KEY_RELEASE
+)
+
+(
+0 KEYBOARD_FLAG_G24_DEVICE_BUTTON
+1 KEYBOARD_FLAG_BT_DEVICE_BUTTON
+)
+
+(
+0 KEYBOARD_RGB_BLUE_STATUS
+1 KEYBOARD_RGB_GREEN_STATUS
+2 KEYBOARD_RGB_RED_STATUS
+
+0 RGB_BACKLIGHT_STATUS_OFF
+1 RGB_BACKLIGHT_STATUS_ON
+2 RGB_BACKLIGHT_STATUS_BREATHE
+
+0 RGB_BACKLIGHT_ON_TPYE_RED
+1 RGB_BACKLIGHT_ON_TPYE_ORANGE
+2 RGB_BACKLIGHT_ON_TPYE_PURPLE
+3 RGB_BACKLIGHT_ON_TPYE_GREEN
+4 RGB_BACKLIGHT_ON_TPYE_CYAN
+5 RGB_BACKLIGHT_ON_TPYE_BLUE
+6 RGB_BACKLIGHT_ON_TPYE_WHITE
+
+0 RGB_BACKLIGHT_BREATHE_TPYE_BLUE
+1 RGB_BACKLIGHT_BREATHE_TPYE_GREEN
+2 RGB_BACKLIGHT_BREATHE_TPYE_RED
+3 RGB_BACKLIGHT_BREATHE_TPYE_CYAN
+4 RGB_BACKLIGHT_BREATHE_TPYE_PURPLE
+5 RGB_BACKLIGHT_BREATHE_TPYE_ORANGE
+6 RGB_BACKLIGHT_BREATHE_TPYE_WHITE
+)
+
Index: format/app_module.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_module.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_module.format	(working copy)
@@ -0,0 +1,248 @@
+
+memalloc module(
+	//ble
+	2 mem_module_le_rx_data_len
+	2 mem_module_le_rx_data_address
+	2 mem_module_le_rx_data_handle
+
+ifdef COMPILE_WECHAT
+	0 mem_wechat_tx_buffer
+	1 mem_wechat_tx_bMagicNumber
+	1 mem_wechat_tx_bVer
+	2 mem_wechat_tx_nLength
+	2 mem_wechat_tx_nCmdId
+	2 mem_wechat_tx_nSeq1
+	255 mem_wechat_tx_payload
+
+	0 mem_wechat_rx_buffer
+	1 mem_wechat_rx_bMagicNumber
+	1 mem_wechat_rx_bVer
+	2 mem_wechat_rx_nLength
+	2 mem_wechat_rx_nCmdId
+	2 mem_wechat_rx_nSeq
+	255 mem_wechat_rx_payload
+
+	255 mem_module_wechat_local_data_buffer
+
+endif
+)
+
+xmemalloc module(	
+	2 mem_soft_version_num
+	1 mem_module_wake_up_gpio
+	1 mem_module_state_gpio
+	1 mem_module_connect_state_gpio
+
+	2 mem_current_packet_length
+	1 mem_module_state
+	
+	1 mem_module_mcu_wake_pin
+	4 mem_module_mcu_wake_delay_us
+
+	1 mem_module_le_lpm_mult	
+	1 mem_module_bluetooth_stauts_by_command
+
+	//uart
+	2 mem_module_uart_rx_buffer
+	2 mem_module_uart_rx_buffer_end
+	2 mem_module_uart_tx_buffer
+	2 mem_module_uart_tx_buffer_end
+	2 mem_module_uarta_baud_rate
+
+	//ADC
+	1 mem_module_read_vdd_flag
+	1 mem_module_read_vdd_count
+	1 mem_module_vdd_quotient
+	1 mem_module_vdd_remainder
+
+	//ble
+	1 mem_module_ble_data_uart_max_length
+
+	//flag
+	2 mem_module_flag
+
+	1 mem_module_hci_notify_len
+	2 mem_module_hci_notify_handle
+	2 mem_module_hci_nofiy_addr
+	1 mem_module_hci_notify_type
+
+	1 mem_le_conn_flag
+
+ifdef COMPILE_WECHAT
+	1 mem_module_wechat_indication_handle
+	1 mem_module_wechat_write_handle
+	2 mem_module_wechat_tx_buffer_ptr
+	2 mem_module_wechat_rx_buffer_ptr
+	2 mem_module_wechat_rx_push_data_cb
+	2 mem_module_wechat_tx_nSeq
+	2 mem_module_wechat_tx_len
+	2 mem_module_wechat_tx_address
+	2 mem_module_wechat_rx_len
+	2 mem_module_wechat_rx_address
+	1 mem_module_wechat_receive_push_data
+endif
+	
+	600 mem_module_le_att_list
+	0 mem_module_le_att_list_end
+	0 mem_module_nv_data
+	34 mem_module_nv_data0
+	34 mem_module_nv_data1
+	34 mem_module_nv_data2
+	34 mem_module_nv_data3
+	34 mem_module_nv_data4
+	0 mem_module_nv_data_end
+)
+
+
+(//mem_module_flag
+//bit0~bit7 config module function
+0 MODULE_FLAG_UART_FLOW_CONTROL
+1 MODULE_FLAG_BLE_SEND_MTU23
+2 MODULE_FLAG_BLE_DATA_ENCRYPT
+
+//bit8~bit15 module states change
+8 MODULE_FLAG_BLE_DATA_FINISH
+
+)
+
+(
+34 NV_DATA_LEN
+-1 DECREASED_ONE
+)
+
+
+
+(
+	5 FLAG_MODULE_READ_VDD_COUNT
+)
+
+(
+0x01 HCI_DISCARD_PACKET
+0x00 HCI_NOT_DISCARD_PACKET
+)
+
+
+
+(//Command
+0x01 HCI_CMD_SET_LE_ADDR_REQ
+0x02 HCI_CMD_SET_VISIBILITY_REQ
+0x04 HCI_CMD_SET_LE_NAME_REQ
+0x09 HCI_CMD_LE_DATA_REQ
+0x0b HCI_CMD_STATUS_IRQ
+0x0e HCI_CMD_SET_UARTCONTROL_REQ
+0x0f HCI_CMD_SET_UART_BAUD_REQ
+0x10 HCI_CMD_VERSION_REQ
+0x12 HCI_CMD_BLE_DISCONNECT
+0x13 HCI_CMD_DELETE_DEVICE
+0x14 HCI_CMD_CREATE_CONNECT
+0x26 HCI_CMD_SET_NVRAM_REQ
+0x27 HCI_CMD_SLEEP
+0x28 HCI_CMD_CONFIRM_GKEY
+0x2a HCI_CMD_AUTO_ADV_SCAN
+0x2b HCI_CMD_POWER_REQ
+0x2c HCI_CMD_POWER_SET
+0x30 HCI_CMD_PASSKEY_ENTRY
+0x31 HCI_CMD_SET_GPIO
+0x32 HCI_CMD_READ_GPIO
+0x33 HCI_CMD_LE_SET_PAIRING
+0x34 HCI_CMD_LE_SET_ADV_DATA
+0x35 HCI_CMD_LE_SET_SCAN_DATA
+0x36 HCI_CMD_LE_SEND_CONN_UPDATE_REQ
+0x37 HCI_CMD_LE_SET_ADV_PARM
+0x38 HCI_CMD_LE_START_PAIRING
+0x40 HCI_CMD_SET_WAKE_GPIO
+0x42 HCI_CMD_SET_TX_POWER
+0x43 HCI_CMD_BOOT_VERSION_REQ
+0x48 HCI_CMD_LE_CONFIRM_GKEY
+0x49 HCI_CMD_REJECT_JUSTWORK
+0x51 HCI_CMD_RESET_CHIP_REQ
+
+0x61 HCI_CMD_LE_SET_FIXED_PASSKEY
+
+0x76 HCI_CMD_DELETE_CUSTOMIZE_SERVICE
+0x77 HCI_CMD_ADD_SERVICE_UUID
+0x78 HCI_CMD_ADD_CHARACTERISTIC_UUID
+0x7a HCI_CMD_PASSKEY_ENTRY_INPUT
+0x7b HCI_CMD_LE_CREAT_CONN
+
+0x90 HCI_CMD_BLE_SET_PHY
+0x91 HCI_CMD_BLE_READ_CURRENT_PHY
+0x92 HCI_CMD_BLE_SET_DLE
+0x93 HCI_CMD_READ_CHIP_DATA
+0x94 HCI_CMD_WRITE_CHIP_DATA
+ifdef COMPILE_WECHAT
+0x95 HCI_CMD_WECHAT_SEND_DATA
+endif
+0xff HCI_CMD_CLOSE_LPM
+)
+
+(//event
+0x00 HCI_EVENT_SPP_CONN_REP
+0x01 HCI_EVENT_HID_CONN_REP
+0x02 HCI_EVENT_LE_CONN_REP
+0x03 HCI_EVENT_SPP_DIS_REP
+0x04 HCI_EVENT_HID_DIS_REP
+0x05 HCI_EVENT_LE_DIS_REP
+0x06 HCI_EVENT_CMD_RES
+0x07 HCI_EVENT_SPP_DATA_REP
+0x08 HCI_EVENT_LE_DATA_REP
+0x09 HCI_EVENT_STANDBY_REP
+
+0x0a HCI_EVENT_STATUS_RES
+
+0x0D HCI_EVENT_NVRAM_REP
+0x0e HCI_EVENT_GKEY
+0x0F HCI_EVENT_INVALID_PACKET
+0x10 HCI_EVENT_GET_PASSKEY
+0x11 HCI_EVENT_LE_TK
+0x12 HCI_EVENT_REMOTE_MTU
+0x14 HCI_EVENT_LE_PAIRING_STATE
+0X15 HCI_EVENT_LE_ENCRYPTION_STATE
+0x17 HCI_EVENT_LE_CONNECTION_UPDATE
+0x1d HCI_EVENT_LE_GKEY
+0x29 HCI_EVENT_UUID_HANDLE
+0x2b HCI_EVENT_LE_INPUT_GKEY
+
+0x40 HCI_BLE_UPDATE_PHY_EVENT
+ifdef COMPILE_WECHAT
+0x41 HCI_BLE_WECHAT_RECEIVE_PUSH_DATA
+endif
+)
+
+
+(//command HCI_CMD_SET_GPIO
+//byte 0
+0x00 HCI_CMD_CONFIG_GPIO_INPUT
+0x01 HCI_CMD_CONFIG_GPIO_OUTPUT
+//byte 1 input state
+0x00 GPIO_INPUT_PULLUP
+0x01 GPIO_INPUT_PULLDOWN
+0x02 GPIO_INPUT_HIGH_IMPEDANCE
+)
+
+
+
+
+
+(
+0x0080	FLAG_BLE_PAIRING_SUCCESS
+0x0180	FLAG_BLE_PAIRING_FAIL
+)
+
+
+(
+1	FLAG_EVENT_START_ENC
+0	FLAG_EVENT_PAUSE_ENC
+)
+
+(
+0 MOUDLE_STATE_BT_BIT
+1 MOUDLE_STATE_BLE_BIT
+)
+
+(
+5 BIT_OF_NOTIFY_AUTHENTICATED
+6 BIT_OF_READ_AUTHENTICATED
+7 BIT_OF_WRITE_AUTHENTICATED
+)
+
Index: format/app_mouse.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_mouse.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_mouse.format	(working copy)
@@ -0,0 +1,829 @@
+
+memalloc mouse(
+2 mem_init_cnt
+2 mem_data_pre
+2 mem_data_current
+3 mem_data_sum
+2 mem_data_value
+
+
+)
+//dpi eeprom addr
+xmemalloc g24_tx_hid(
+
+// adc
+//adc struct
+0 mem_mouse_vdd_calculate_set
+2 mem_mouse_vdd_full_vol
+2 mem_mouse_vdd_empty_vol
+2 mem_mouse_vdd_low_vol
+2 mem_mouse_vdd_now_vol
+1 mem_adc_channel_gpio
+1 mem_adc_mux_status
+1 mem_mouse_adc_last_low_voltage_flag
+2 mem_mouse_discovery_timeout
+2 mem_mouse_24g_pair_timeout_init
+1 mem_mouse_direct_timeout
+1 mem_mouse_24g_reconn_timeout_init
+1 mem_mouse_24g_pair_tx_power
+1 mem_rssi_dis_min_24g_init
+1 mem_rssi_dis_max_24g_init
+1 mem_rssi_hex_received_max_value_init
+1 mem_rssi_dis_min_ble_init
+1 mem_rssi_dis_max_ble_init
+
+0 mem_mouse_param_config
+1 mem_lbutton_gpio
+1 mem_mbutton_gpio
+1 mem_rbutton_gpio
+1 mem_bk_button_gpio
+1 mem_fw_button_gpio
+1 mem_dpi_button_gpio
+1 mem_whee_a_data_gpio
+1 mem_whee_b_data_gpio
+1 mem_mouse_sensor_sclk_gpio
+1 mem_mouse_sensor_sdio_gpio
+1 mem_select_sensor_angle_gpio
+1 mem_sensor_angle_default
+1 mem_sensor_angle_switch
+1 mem_config_sensor_dpi	
+1 mem_whee_ta_data_gpio
+1 mem_whee_tb_data_gpio
+1 mem_matrix_public_gpio
+1 mem_config_select_device_button_gpio
+1 mem_customer_key_gpio
+1 mem_firebutton_gpio
+1 mem_dpi_another_button_gpio
+1 mem_sensor_motion_gpio
+1 mem_device_switch_gpio
+1 mem_mouse_reuse_2ice_gpio
+1 mem_mouse_logo_led_gpio
+1 mem_mouse_1io2led_multi_24gled
+1 mem_mouse_1io2led_multi_bt1led
+1 mem_mouse_1io2led_multi_bt2led
+1 mem_mouse_low_voltage_alarm_gpio
+1 mem_mouse_dpi_gpio
+0 mem_mouse_param_config_end
+
+// usb
+1 mem_wire_usb_interval
+1 mem_usb_addr
+1 mem_mouse_usb_vdd_status
+1 mem_mouse_usb_keyboard_flag
+
+//three devices param
+//eeprom/flash
+0 mem_mouse_information_start
+1 mem_device_flag
+1 mem_device1_type
+6 mem_device1_addr
+6 mem_device1_locall_addr
+
+1 mem_device2_type
+6 mem_device2_addr
+6 mem_device2_locall_addr
+
+1 mem_device3_type
+6 mem_device3_addr
+6 mem_device3_locall_addr
+2 mem_store_flag
+1 mem_mouse_dpi
+4 mem_mouse_24g_addr
+2 mem_random_addr_increase_count
+79 mem_mouse_retention
+0 mem_mouse_information_end
+
+6 mem_mouse_compare_addr
+3 mem_flash_base
+4 mem_write_flash_head_temp
+1 mem_store_information_delay_timer
+1 mem_store_information_delay_timer_init
+
+// 2.4G
+1 mem_mouse_search_dongle_interval
+1 mem_mouse_search_dongle_ch
+1 mem_mouse_search_dongle_count
+1 mem_mouse_search_dongle_action
+1 mem_24g_enter_lpm_timer
+1 mem_mouse_24g_enter_lpm_enable
+
+//	LED
+//mediacy
+1 mem_mouse_multi_led_blink_enable
+1 mem_mouse_multi_led_type
+1 mem_mouse_multi_led_state
+1 mem_mouse_multi_led_blink_type				//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+
+//time parm
+1 mem_mouse_le_reconn_blink_limit
+1 mem_mouse_multi_led_powon_timer_init		//power on time
+1 mem_mouse_multi_led_powon_timer
+1 mem_mouse_multi_24gled_blink_timer_init	//24gled blink time
+1 mem_mouse_multi_le_discovery_blink_timer_init	//le discovery blink time
+1 mem_mouse_multi_le_reconn_blink_timer_init	//le reconn blink time
+1 mem_mouse_dpi_led_blink_timer_init		//dpi blink time
+1 mem_mouse_multi_led_blink_timer
+1 mem_mouse_low_led_blink_timer			//low blink time
+1 mem_mouse_low_led_blink_half_timer
+1 mem_adc_low_volatage_led_timer_count
+//blink count
+1 mem_mouse_multi_24gled_blink_count_init	//24g count
+1 mem_mouse_multi_le_reconn_blink_count_init	//le reconn count
+1 mem_mouse_multi_led_blink_count
+1 mem_mouse_multi_lowled_blink_count_init	//low count
+1 mem_mouse_multi_low_led_blink_count
+2 mem_mouse_logo_led_on_time_init
+1 mem_mouse_dpi_led_delay_count
+1 mem_mouse_dpi_led_delay_count_init
+//	LED end
+
+// mouse configured param
+8 mem_mouse_flag 
+1 mem_device_number
+2 mem_mouse_page_to
+1 mem_mouse_fast_direct_timeout
+2 mem_mouse_fast_page_to
+2 mem_mouse_24g_power_on_fast_conn_timer
+2 mem_mouse_24g_search_dongle_time_init
+2 mem_mouse_no_data_timeout
+
+1 mem_mouse_commbination_key_bt
+1 mem_mouse_commbination_key_24g
+
+1 mem_mouse_customer_function
+9 mem_customer_key_press
+9 mem_customer_key_release
+3 mem_mouse_set_high_impedance_bit_set
+
+1 mem_sensor_shutdown_flag
+1 mem_24g_long_sleep_set_level
+
+2 mem_tx_power_factory_param
+
+//lost-packet compensation
+3 mem_mouse_24g_short_sleep_set_4ms
+3 mem_mouse_24g_long_sleep_set_4ms
+1 mem_mouse_24g_fast_hop_count_4ms
+3 mem_mouse_24g_short_sleep_set_8ms
+3 mem_mouse_24g_long_sleep_set_8ms
+1 mem_mouse_24g_fast_hop_count_8ms
+
+4 mem_mouse_24g_tsniff
+4 mem_mouse_24g_tsniff_4ms
+4 mem_mouse_24g_tsniff_8ms
+3 mem_mouse_24g_short_sleep_set_init
+
+1 mem_mouse_24g_tx_count
+6 mem_mouse_24g_tx_time_last
+4 mem_mouse_24g_tx_time_last_delt
+5 mem_mouse_24g_tx_time_sum
+1 mem_mouse_24g_tx_time_sum_count
+1 mem_mouse_24g_tx_time_offset
+1 mem_mouse_24g_sleep_miss
+4 mem_mouse_24g_sleep_time_temp
+4 mem_mouse_24g_sleep_miss_temp
+
+1 mem_mouse_sleep_deal_type
+
+1 mem_mouse_24g_long_sleep_flag
+
+//no motion pin
+1 mem_mouse_long_mult_flag
+1 mem_mouse_current_mult_timer
+
+1 mem_reconn_times
+1 mem_reconn_times_init
+2 mem_mouse_no_data_timer
+8 mem_mouse_rssi_signal_buf				
+4 mem_btclk_sensor
+1 mem_mouse_bluetooth_fast_conn_flag
+2 mem_mouse_discovery_timer
+1 mem_mouse_bluetooth_reconnect_timeout
+1 mem_mouse_need_soft_reset
+
+// le
+1 mem_mouse_le_bb_connected_flag
+1 mem_mouse_le_reconnect_flag
+1 mem_mouse_send_secutiry_request_timer
+
+3 mem_mouse_le_lap_temp
+3 mem_le_adv_ind
+3 mem_le_adv_direct_ind
+20 mem_le_adv_swift_pair
+1 mem_le_data_len
+2 mem_le_keyboard_handle
+2 mem_le_multimedia_handle
+2 mem_le_systemctrl_handle
+2 mem_le_battery_level_handle
+1 mem_le_battery_level_percentage
+2 mem_le_battery_level_updata_timer_init
+2 mem_le_battery_level_updata_timer
+1 mem_mouse_le_conn_param_reject
+32 mem_le_tx_buffer0_omemalloc
+32 mem_le_tx_buffer1_omemalloc
+32 mem_le_tx_buffer2_omemalloc
+32 mem_le_tx_buffer3_omemalloc
+1 mem_le_connect_status_flag
+1 mem_le_start_encrypt_timer
+1 mem_mouse_direct_timer
+
+)
+
+xmemalloc g24_tx_hid_mouse(
+// Mouse Work Area
+1 mem_mouse_key
+2 mem_mouse_x
+2 mem_mouse_y
+1 mem_mouse_z
+1 mem_mouse_tz
+1 mem_mouse_xy_h
+1 mem_mouse_key_last
+
+//mouse wheel
+1 mem_wheel_tb_old_pinlevel
+1 mem_wheel_tb_new_pinlevel
+1 mem_wheel_tog 
+1 mem_mouse_tz_data
+1 mem_mwheel_b_old_pinlevel
+1 mem_mwheel_b_new_pinlevel
+1 mem_mwheel_tog 
+1 mem_mouse_z_data
+1 mem_mouse_wheel_trigger
+1 mem_mouse_wheel_trigger_timer
+
+//sensor param
+1 mem_sensor_id1
+1 mem_sensor_id2
+
+1 mem_sensor_shutter_hi
+1 mem_sensor_shutter_lo
+1 mem_sensor_smart_flag
+1 mem_sensor_squal_reg
+1 mem_sensor_iqc
+1 mem_mouse_move_flag
+
+1 mem_mouse_asm_flag
+2 mem_mouse_x_pre
+2 mem_mouse_y_pre
+1 mem_mouse_data_xtemp
+1 mem_mouse_data_ytemp
+
+0 mem_mouse_dpi_seting
+1 mem_320x_dpi_0
+1 mem_320x_dpi_1
+1 mem_320x_dpi_2
+1 mem_320x_dpi_3
+1 mem_3212_dpi_0
+1 mem_3212_dpi_1
+1 mem_3212_dpi_2
+1 mem_3212_dpi_3
+1 mem_ka8g2_dpi_0
+1 mem_ka8g2_dpi_1
+1 mem_ka8g2_dpi_2
+1 mem_ka8g2_dpi_3
+//S210x
+0 mem_sensor_s201_dpi
+1 mem_sensor_s201_dpi_0
+1 mem_sensor_s201_dpi_1
+1 mem_sensor_s201_dpi_2
+1 mem_sensor_s201_dpi_3
+1 mem_sensor_s201_dpi_4
+
+1 mem_mouse_cpi_count
+1 mem_mouse_dpi_button_state
+1 mem_mouse_dpi_long_press_flag
+
+10 mem_sensor_3212_init
+10 mem_sensor_3204_init
+10 mem_sensor_3205_init
+26 mem_sensor_32xx_init
+34 mem_sensor_32xx_init_1
+38 mem_sensor_8650_init
+30 mem_sensor_ka8ul_init
+16 mem_sensor_8009_init
+16 mem_sensor_ka8g2_init
+12 mem_sensor_p6520_init
+8 mem_sensor_poweron_init
+8 mem_sensor_ka8g2_poweron_init
+	
+1 mem_mouse_clear_sensor_data_flag
+1 mem_config_sensor_type
+1 mem_config_sensor_angle
+1 mem_bluetooth_125hz_cnt
+
+//bt
+7 mem_device_addr_temp
+1 mem_mouse_bt_boot_mode
+5 mem_mouse_bt_boot_data
+1 mem_bt_send_max_slot_req_accept_after_switch
+1 mem_mouse_bt_send_first_package_timer
+1 mem_mouse_bt_send_first_package_flag
+1 mem_lmi_opcode_temp 
+1 mem_lpm_mult_init
+
+// mouse key
+1 mem_customer_key
+1 mem_customer_data_trigger
+1 mem_customer_data_trigger_last
+
+1 mem_mouse_lkey_press_status
+1 mem_mouse_rkey_press_status
+1 mem_mouse_mkey_press_status
+1 mem_mouse_bkkey_press_status
+1 mem_mouse_fwkey_press_status
+1 mem_mouse_dpikey_press_status
+1 mem_mouse_pbkey_press_status
+1 mem_mouse_customerkey_press_status
+1 mem_mouse_key_temp
+1 mem_mouse_key_status
+
+1 mem_mouse_matrix_key_cow_count
+1 mem_mouse_matrix_key_row_count
+1 mem_mouse_ghost_flag
+1 mem_bt_discovery_count
+1 mem_select_device_count
+1 mem_mouse_commbination_key
+1 mem_select_device_button_statue
+1 mem_commbination_key_statue
+1 mem_combination_ui_button_count
+
+//fire key
+1 mem_fire_key_status
+4 mem_fire_key_delay
+1 mem_fire_key_flag
+
+//another dpi key
+1 mem_dpi_another_press_status
+1 mem_dpi_another_button_state
+1 mem_dpi_another_button_down_enable
+1 mem_mouse_key_temp_patch
+
+//le name modify
+1 mem_le_name_patch_len
+19 mem_le_name_patch
+
+//device otp data
+1 mem_device_flag_last
+1 mem_device_flag_temp
+1 mem_device_flag_value
+
+6 mem_mouse_le_addr1_last
+6 mem_mouse_le_addr1_temp
+6 mem_mouse_le_locall_addr1_last
+6 mem_mouse_le_locall_addr1_temp
+
+6 mem_mouse_le_addr2_last
+6 mem_mouse_le_addr2_temp
+6 mem_mouse_le_locall_addr2_last
+6 mem_mouse_le_locall_addr2_temp
+
+1 mem_mouse_dpi_last
+1 mem_mouse_dpi_temp
+1 mem_mouse_otp_dpi_value
+
+4 mem_mouse_24g_addr_last
+4 mem_mouse_24g_addr_temp
+
+2 mem_random_addr_increase_count_last
+2 mem_random_addr_increase_count_temp
+
+//otp store info offset
+2 mem_otp_offset_device_flag
+2 mem_otp_offset_device_flag_end
+
+2 mem_otp_offset_24g_addr
+2 mem_otp_offset_24g_addr_end
+
+2 mem_otp_offset_le_addr1
+2 mem_otp_offset_le_addr1_end
+
+2 mem_otp_offset_le_locall_addr1
+2 mem_otp_offset_le_locall_addr1_end
+
+2 mem_otp_offset_le_addr2
+2 mem_otp_offset_le_addr2_end
+
+2 mem_otp_offset_le_locall_addr2
+2 mem_otp_offset_le_locall_addr2_end
+
+2 mem_otp_offset_dpi
+2 mem_otp_offset_dpi_end
+
+2 mem_otp_offset_le_addr_increase_count
+2 mem_otp_offset_le_addr_increase_count_end
+
+2 mem_otp_offset_app_initflag
+
+)
+
+
+xmemalloc g24_tx_hid_mouse_flippen(
+16 mem_24g_txpayload_buf
+1 mem_release_data_from_receiver_enable
+1 mem_release_data_from_transmiter_enable
+
+1 mem_flippen_key0_gpio
+1 mem_flippen_key1_gpio
+1 mem_flippen_key2_gpio
+1 mem_flippen_key3_gpio
+1 mem_flippen_key4_gpio
+1 mem_flippen_key5_gpio
+1 mem_flippen_key6_gpio
+1 mem_flippen_key7_gpio
+
+1 mem_flippen_key0_press_status
+1 mem_flippen_key1_press_status
+1 mem_flippen_key2_press_status
+1 mem_flippen_key3_press_status
+1 mem_flippen_key4_press_status
+1 mem_flippen_key5_press_status
+1 mem_flippen_key6_press_status
+1 mem_flippen_key7_press_status
+
+0 mem_key_press_data
+9 mem_key_pageup_data
+9 mem_key_pagedown_data
+9 mem_key_shift_f5_data
+9 mem_key_esc_data
+9 mem_key_b_data
+9 mem_key_tab
+9 mem_key_enter
+9 mem_key_alt_tab
+9 mem_key_alt_f4
+9 mem_key_play_pause
+9 mem_key_vol_up
+9 mem_key_vol_down
+9 mem_standard_key_release
+9 mem_system_ctrl_key_release
+9 mem_media_key_release
+
+1 mem_key0_long_press_flag
+1 mem_key1_long_press_flag
+1 mem_key2_long_press_flag
+1 mem_key3_long_press_flag
+1 mem_key4_long_press_flag
+
+1 mem_key0_long_press_event
+1 mem_key1_long_press_event
+1 mem_key2_long_press_event
+1 mem_key3_long_press_event
+1 mem_key4_long_press_event
+
+1 mem_key0_short_press_flag
+1 mem_key1_short_press_flag
+1 mem_key2_short_press_flag
+1 mem_key3_short_press_flag
+1 mem_key4_short_press_flag
+
+1 mem_key0_press_timer_count
+1 mem_key1_press_timer_count
+1 mem_key2_press_timer_count
+1 mem_key3_press_timer_count
+1 mem_key4_press_timer_count
+
+1 mem_combination_key_down_flag
+1 mem_combination_key_longpress_flag
+1 mem_key_disable_timer
+1 mem_24g_calculate_package_id_disable
+1 mem_24g_package_id_abandon_flag
+1 mem_24g_package_id
+
+1 mem_key_state
+1 mem_key_press_state
+1 mem_poweron_first_blank_data_enable
+
+2 mem_flippen_no_data_timeout
+2 mem_flippen_start_pair_no_data_timeout
+2 mem_key_longpress_timer_init
+2 mem_key_longpress_timer
+
+1 mem_low_voltage_led_blink_flag
+1 mem_low_voltage_led_blink_start_timer
+1 mem_poweron_led_blink_flag
+
+1 mem_24g_pair_enable_flag
+1 mem_24g_ch_work
+1 mem_24g_pair_key_down_flag
+1 mem_24g_pairing_stop_flag
+1 mem_longpress_24g_enter_hibernate_flag
+1 mem_g24_connected_state
+1 mem_g24_pairing_stop_flag
+1 mem_send_package_before_check
+)
+
+(
+(
+0x00 PEN_KEY0
+0x01 PEN_KEY1
+0x02 PEN_KEY2
+0x03 PEN_KEY3
+0x04 PEN_KEY4
+0x05 PEN_KEY5
+0x06 PEN_KEY6
+0x07 PEN_KEY7
+)
+
+(
+0x07 KEY_PRESS_COUNT
+0x00 KEY_PRESS_NONE
+)
+
+)
+
+
+(
+//combination
+0x01 MOUSE_L_BUTTON
+0X02 MOUSE_R_BUTTON
+0x03 MOUSE_LR_BUTTON
+0X04 MOUSE_M_BUTTON
+0X05 MOUSE_LM_BUTTON
+0X06 MOUSE_RM_BUTTON
+0X07 MOUSE_LMR_BUTTON
+0x09 MOUSE_L_BK_BUTTON
+0x0a MOUSE_R_BK_BUTTON
+0x11 MOUSE_L_FW_BUTTON
+0x12 MOUSE_R_FW_BUTTON
+0x12 MOUSE_M_BK_BUTTON
+0x14 MOUSE_M_FW_BUTTON
+0X18 MOUSE_BK_FW_BUTTON
+//mouse default gpio
+0x1B MOUSE_DEFAULT_XA_GPIO
+0x1C MOUSE_DEFAULT_XB_GPIO
+
+//ui led blink
+0X00C8  LED_RECONNECT_BLINK //200
+0X0190  LED_DPI_BLINK //400
+0X03E8  LED_DPI_BLINK_FIXED    //1000
+0X03E8  LED_DISCOVERY_BLINK    //1000
+0XFF    LED_LONG_BLINK
+0x05	LED_SENSOR_BLINK_CNT
+//mode device number
+0x00 MODE_24G_DEVICE
+0x01 MODE_BT_DEVICE1
+0x02 MODE_BT_DEVICE2
+0x03 MODE_BT_DEVICE3
+0x04 MODE_USB_DEVICE
+//mouse  flag
+0X00 WRITE_REQ_ENABLE_FLAG
+0X01 LL_START_ENC_FLAG
+0X02 LL_PAIRING_SUCCESS_FLAG
+
+
+//mouse_function_flag
+0x08 MOUSE_FLAG_LEN
+//byte 1
+0x00 MOUSE_SELECT_DEVICE_FLAG
+0x01 MOUSE_24G_PAIRING_FLAG
+0x02 MOUSE_STORE_EEPROM_FLAG
+0x03 MOUSE_BT_CANNEL_RECONN_FLAG
+0x04 MOUSE_LOW_VOLTAGE_FLAG
+0x05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x06 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+
+//byte 2
+0x08 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+0x09 MOUSE_ENABLE_2K_EEPROM
+0x0a MOUSE_ENABLE_INIT_DELAY
+0x0b MOUSE_ENABLE_WAKEUP_FROM_POWER
+0x0c MOUSE_ENABLE_16M
+0x0d MOUSE_ENABLE_USB
+0x0e MOUSE_ENABLE_24G_SEARCH_DONGLE
+0x0f MOUSE_ENABLE_LOAD_AND_STORE_DPI
+
+//byte 3
+0x10 MOUSE_ENABLE_SPI2
+0x11 MOUSE_ENABLE_24G
+0x12 MOUSE_ENABLE_FLASH
+0x13 MOUSE_ENABLE_EEPROM
+0x14 MOUSE_ENABLE_OTP
+0x15 MOUSE_ENABLE_ADC
+0x16 MOUSE_ENABLE_KEYBOARD
+0x17 MOUSE_ENABLE_DOUBLE_DPI_KEY
+
+//byte 4
+0x18 MOUSE_ENABLE_24G_250Hz
+0x19 MOUSE_ENABLE_24G_500Hz
+0x1a MOUSE_ENABLE_24G_1000
+0x1b MOUSE_ENABLE_BT_125Hz
+0x1c MOUSE_ENABLE_DPI_LEVEL_4
+0x1d MOUSE_ENABLE_USB_250
+0x1e MOUSE_ENABLE_USB_500
+0x1f MOUSE_ENABLE_USB_1000
+
+//byte 5
+0x20 MOUSE_ENABLE_1IO2LED
+0x21 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+0x22 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+0x23 MOUSE_ENABLE_LOW_LED
+0x24 MOUSE_ENABLE_LOW_FOR_LED
+0x25 MOUSE_ENABLE_DPI_FOR_LED
+0x26 MOUSE_ENABLE_DPI_LOW_FOR_LED
+0x27 MOUSE_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+
+//byte 6
+0x28 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+0x29 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
+0x2a MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x2b MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+0x2c MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND
+0x2d MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+0x2e MOUSE_ENABLE_FIRE_KEY_CONNECT_GND
+0x2f MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN_OR_MATRIX
+
+//byte 7 
+0x30 MOUSE_ENABLE_AUTO_24G_PARING
+0x31 MOUSE_ENABLE_24G_POWER_ON_PAIRING
+0x32 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x33 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x34 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+0x35 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+0x36 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+0x37 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+
+//byte 8
+0x38 MOUSE_ENABLE_SMOOTHER
+0x39 MOUSE_ENABLE_XY_OFFSET
+0x3a MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x3b MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x3c MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+0x3d MOUSE_ENABLE_24G_2M_PHY
+0x3e MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+//mouse dpi level
+0x00 MOUSE_DPI_LEVEL1
+0x01 MOUSE_DPI_LEVEL2
+0x02 MOUSE_DPI_LEVEL3
+0x03 MOUSE_DPI_LEVEL4
+
+
+//mouse sensor angle
+0x00 MOUSE_6CLK_ANGLE
+0X01 MOUSE_9CLK_ANGLE
+0X02 MOUSE_12CLK_ANGLE
+0X03 MOUSE_3CLK_ANGLE
+
+
+
+0xFF GPIO_DISABLE
+
+//DPI button state 
+0x00 DPI_BUTTON_STATE_UP
+0x01 DPI_BUTTON_STATE_DOWN
+
+
+//PB button state 
+0x00 PB_BUTTON_STATE_UP
+0x01 PB_BUTTON_STATE_DOWN
+
+//Commbination_key state 
+0x00 COMMBINATION_KEY_STATE_UP
+0x01 COMMBINATION_KEY_STATE_DOWN
+
+
+//eeprom address offect
+0X00 MOUSE_INFO_EEPROM_OFFECT
+0x58 MOUSE_STORE_FLAG
+0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
+0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
+0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
+0X61 MOUSE_EEPROM_MODULE_INIT_FLAG
+
+// Sensor id number
+0x30 P32XX_ID1
+0x31 P3065_ID1
+0x02 P3212_ID2
+0xD1 P3205_TJ3T_ID2
+0XD2 P3204_TJ3L_ID2
+0x54 PKA8_ID2
+0x70 P3065_XY_ID2
+0x00 P3065_ID2
+0x5a P_MX8650
+0xD8 P8009_ID2
+0x50 P6520A_ID2
+0x58 PKA8G2_ID1
+0x59 PKA8G2_ID2
+
+
+//Sensor type
+0X00 P3205
+0X01 P3065
+0X02 P3204
+0X03 P3212
+0X04 P3065_XY
+0x05 MX8650
+0x06 P8009
+0x07 P6520
+0X08 KA8
+0X09 KA8_UL
+0X0a KA8_HD
+0X0b KA8G2
+0X0c S201X
+
+
+//SENSOR REG
+0x00 PAN_REG_PID_L
+0x01 PAN_REG_PID_H
+0x02 PAN_REG_MOTION_STAUS
+0x03 PAN_REG_DELTA_X
+0x04 PAN_REG_DELTA_Y
+0x05 PAN_REG_OPRATION_MODE
+0x06 PAN_REG_CONFIG
+0x07 PAN_REG_IMAGE_QUALITY
+0x08 PAN_REG_OPRATION_STATE
+0x09 PAN_REG_WRITE_PROTECT
+0x0A PAN_REG_SLEEP_1
+0x0B PAN_REG_ENTER_TIME
+0x0C PAN_REG_SLEEP_2
+0x0D PAN_REG_IMAGE_THRESHOLD
+0x0E PAN_REG_IMAGE_RECGNITION
+
+
+0x06 MOUSE_DPI_ADDRESS
+0x05 MOUSE_P3610_DPI_ADDRESS
+0x0D MOUSE_P3212_DPI_XADDRESS
+0x0E MOUSE_P3212_DPI_YADDRESS
+
+)
+
+(
+0x01 ADV_FLAG_LIMITED_DISCOVERABLE
+0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
+)
+
+(
+2 BIT_POWER_ON
+)
+//device option low 2
+(
+1 MODE_4_MOUSE
+)
+
+
+(
+10 LE_LPM_DISABLE_TO
+1 LE_LPM_DISABLE
+0 LE_LPM_ENABLE
+
+12 LE_INTERVAL_15MS
+9 LE_INTERVAL_11_25MS//11.25ms
+7 LE_INTERVAL_8_75MS//8.75ms
+6 LE_INTERVAL_7_5MS//7.5ms
+12 CLASSIC_INTERVAL_7_5MS
+14 CLASSIC_INTERVAL_8_75MS
+18 CLASSIC_INTERVAL_11_25MS
+)
+
+(
+0x00 MOUSE_L_KEY
+0x01 MOUSE_R_KEY
+0x02 MOUSE_M_KEY
+0x03 MOUSE_BK_KEY
+0x04 MOUSE_FW_KEY
+0x05 MOUSE_DPI_KEY
+0x06 MOUSE_PB_KEY
+0x07 MOUSE_CUSTOMER_KEY
+0x00 MOUSE_DPI_ANOTHER_KEY
+)
+
+
+(
+0 G24_DISCONN_STATE
+1 G24_CONN_STATE
+
+8 G24_CH_NUMBER
+16 G24_CH_POLL_COUNT
+)
+
+(
+0 MOUSE_ADC_CHECK_BATTERY_ONLY
+1 MOUSE_ADC_CHECK_MULTIPLE
+2 MOUSE_ADC_CHECK_GPIO_MULTIPLE
+3 MOUSE_ADC_CHECK_HVIN_MULTIPLE
+)
+
+
+(
+0x5a MOUSE_USB_INTERFACE_INSERT
+0xa5 MOUSE_USB_INTERFACE_REMOVE
+)
+
+(
+0x10 MOUSE_BLE_L2CAP_TXBUFF_SIZE
+)
+
+(
+0 MOUSE_ADC_ENABLE
+1 MOUSE_SEARCH_DONGLE_ENABLE
+2 MOUSE_24G_250HZ_ENABLE
+3 MOUSE_CLK_16M_ENABLE
+4 MOUSE_DPI_4_LEVEL_ENABLE
+5 MOUSE_KEYBOARD_ENABLE
+
+7 MOUSE_DEVICE_NUMBER_FLAG
+)
+
+(
+0 MULTI_LED_ON
+1 MULTI_LED_BLINK
+)
+
Index: format/app_remote_car.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_remote_car.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_remote_car.format	(working copy)
@@ -0,0 +1,167 @@
+
+xmemalloc g24_tx_remote(
+1 mem_remote_car_hard_soft_switch
+
+1 mem_remote_car_queue_each_size
+1 mem_remote_car_queue_length
+
+1 mem_remote_car_queue_curr_num
+1 mem_remote_car_queue_read_ptr
+1 mem_remote_car_queue_write_ptr
+90 mem_remote_car_queue_ele
+
+1 mem_remote_style_led_type
+1 mem_remote_style_blink_count
+1 mem_remote_style_struct_led_gpio
+2 mem_remote_style_on_time
+2 mem_remote_style_off_time
+2 mem_remote_style_cb_ledon
+2 mem_remote_style_cb_ledoff
+
+
+1 mem_remote_car_led_num
+8 mem_remote_car_led_map
+
+0 mem_remote_car_keyscan
+1 mem_remote_car_key_num
+2 mem_cb_remote_car_keyscan
+
+0 mem_remote_car_key_conf0
+1 mem_remote_car_key_conf0_pin
+0 mem_remote_car_key_conf1
+1 mem_remote_car_key_conf1_pin
+0 mem_remote_car_key_conf2
+1 mem_remote_car_key_conf2_pin
+0 mem_remote_car_key_conf3
+1 mem_remote_car_key_conf3_pin
+0 mem_remote_car_key_conf4
+1 mem_remote_car_key_conf4_pin
+0 mem_remote_car_key_conf5
+1 mem_remote_car_key_conf5_pin
+0 mem_remote_car_key_conf6
+1 mem_remote_car_key_conf6_pin
+
+
+//rocker
+1 mem_rocker_negative_flag
+1 mem_rocker_work_status
+2 mem_current_vdd_value_default_mid_x
+2 mem_current_vdd_value_default_mid_y
+2 mem_current_vdd_value_default_mid_temp
+2 mem_current_vdd_default_range
+2 mem_rocker_last_status
+0 mem_rocker_status
+1 mem_rocker_x_status
+1 mem_rocker_y_status
+
+0 mem_remote_car_config_param
+1 mem_remote_car_config_setting_flag
+1 mem_remote_car_config_key_map
+1 mem_remote_car_config_layout
+1 mem_remote_car_config_connect_led_gpio
+1 mem_remote_car_config_check_way
+1 mem_remote_car_config_soft_switch_enable
+1 mem_remote_car_config_soft_switch_gpio
+1 mem_remote_car_config_timeout_shutdown_enable
+
+0 mem_remote_car_24g_motor_packet
+1 mem_remote_car_24g_motor_packet_lenght
+2 mem_remote_car_24g_motor_send_packet_head
+1 mem_remote_car_24g_motor_send_cmd
+2 mem_remote_car_24g_motor_send_length
+0 mem_remote_car_24g_motor_send_payload
+2 mem_remote_car_24g_motor1_payload
+2 mem_remote_car_24g_motor2_payload
+2 mem_remote_car_24g_motor3_payload
+1 mem_remote_car_24g_motor_send_checksum
+
+0 mem_remote_car_24g_fire_packet
+1 mem_remote_car_24g_fire_packet_lenght
+2 mem_remote_car_24g_fire_send_packet_head
+1 mem_remote_car_24g_fire_send_cmd
+2 mem_remote_car_24g_fire_send_length
+2 mem_remote_car_24g_fire_send_payload
+1 mem_remote_car_24g_fire_send_checksum
+
+15 mem_remote_car_24g_tx_temp
+
+2 mem_remote_car_no_data_timeout
+2 mem_remote_car_no_data_timer
+
+0 mem_remote_car_soft_power
+1 mem_remote_car_power_state
+1 mem_remote_car_power_timer
+1 mem_remote_car_power_off_timeout
+1 mem_remote_car_power_starting_timeout
+2 mem_remote_car_power_off_cb
+2 mem_remote_car_power_starting_cb
+2 mem_remote_car_power_standby_cb
+
+1 mem_remote_key_status
+1 mem_remote_car_24g_status
+
+1 mem_remote_car_24g_auto_work_step
+1 mem_remote_car_24g_pair_success_flag
+1 mem_remote_car_empty_packet
+
+1 mem_remote_car_motor1_key0_press_state
+1 mem_remote_car_motor1_key1_press_state
+1 mem_remote_car_motor2_key2_press_state
+1 mem_remote_car_motor2_key3_press_state
+1 mem_remote_car_motor1_rel_state
+1 mem_remote_car_motor2_rel_state
+
+1 mem_remote_car_no_data_check
+
+4 mem_remote_24g_commom_addr
+4 mem_remote_24g_commom_addr_temp
+4 mem_remote_24g_commom_addr_read
+1 mem_remote_save_addr_flag
+)
+
+
+(
+// eeprom config
+0xb0 REMOTE_PARAM_EEPROM_CONFIG_ADDR
+//eeprom address offect
+0X00 REMOTE_INFO_EEPROM_OFFECT
+
+)
+
+
+(
+0x00 CONTROL_F_B_MOTOR
+0x02 CONTROL_L_R_MOTOR
+)
+
+(
+0x00 KEY_MAP_TEN
+0x01 KEY_MAP_LR
+)
+
+(
+0x00 CONTROL_F_B_TEN
+0x02 CONTROL_L_R_TEN
+0x03 CONTROL_L_R_LR
+)
+
+(
+0 KEY_CHECK
+1 ROCKER_CHECK
+)
+
+(
+1 MOTOR_POSITIVE
+2 MOTOR_NEGATIVE
+)
+
+(
+0 ROCKER_MIDDLE_KEY
+1 ROCKER_POSITIVE_KEY
+2 ROCKER_NEGATIVE_KEY
+)
+(
+0x700 OTP_OFFSET_REMOTE_COMMOM_START_ADDR 
+0x7cc OTP_OFFSET_REMOTE_COMMOM_END_ADDR 
+)
+
Index: format/app_shutter.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_shutter.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_shutter.format	(working copy)
@@ -0,0 +1,216 @@
+
+
+xmemalloc shutter(
+
+////////////////////////////////////
+//ble shutter config
+1 mem_ble_shutter_enable_notify
+2 mem_ble_shutter_reconn_adv_interval
+2 mem_ble_shutter_discovery_adv_interval
+2 mem_ble_shutter_reconn_timeout
+2 mem_ble_shutter_reconn_timer
+2 mem_ble_shutter_reconn_blink_on_time
+2 mem_ble_shutter_reconn_blink_off_time
+2 mem_ble_shutter_discovery_blink_on_time
+2 mem_ble_shutter_discovery_blink_off_time
+
+2 mem_ble_shutter_interval_min
+2 mem_ble_shutter_interval_max
+2 mem_ble_shutter_latency
+2 mem_ble_shutter_timeout
+
+2 mem_ble_shutter_interval_min_new
+2 mem_ble_shutter_interval_max_new
+2 mem_ble_shutter_latency_new
+2 mem_ble_shutter_timeout_new
+
+//////////////////shutter sleep timeout//////////////////
+2 mem_ble_shutter_discovery_timeout
+2 mem_ble_shutter_connect_timeout
+2 mem_shutter_sleep_timeout
+2 mem_shutter_sleep_timer
+
+/////////////////////////////////////////////////////////////////
+1 mem_shutter_hard_soft_switch_case
+1 mem_shutter_soft_switch_button_gpio
+1 mem_shutter_soft_switch_power_state
+1 mem_shutter_soft_switch_poweron_time
+1 mem_shutter_soft_switch_poweroff_time
+2 mem_shutter_soft_switch_poweron_callback_function
+2 mem_shutter_soft_switch_poweroff_callback_function
+
+
+0 mem_shutter_keyscan
+1 mem_shutter_key_num
+2 mem_cb_shutter_keycan
+1 mem_shutter_key_conf0
+1 mem_shutter_key_conf1
+1 mem_shutter_key_conf2
+1 mem_shutter_key_conf3
+1 mem_shutter_key_conf4
+1 mem_shutter_key_conf5
+1 mem_shutter_key_conf6
+1 mem_shutter_key_conf7
+
+
+5 mem_key0_press
+5 mem_key1_press
+5 mem_key2_press
+5 mem_key3_press
+5 mem_key4_press
+5 mem_key5_press
+5 mem_key6_press
+5 mem_key7_press
+
+5 mem_key0_release	
+5 mem_key1_release
+5 mem_key2_release
+5 mem_key3_release
+5 mem_key4_release
+5 mem_key5_release
+5 mem_key6_release
+5 mem_key7_release
+
+5 mem_ble_data_buffer1
+5 mem_ble_data_buffer2
+5 mem_ble_data_buffer3
+5 mem_ble_data_buffer4
+5 mem_ble_data_buffer5
+5 mem_ble_data_buffer6
+5 mem_ble_data_buffer7
+5 mem_ble_data_buffer8
+50 mem_ble_data_buffer9_58
+
+1 mem_queue_each_size
+1 mem_queue_length
+1 mem_queue_curr_num
+1 mem_queue_read_ptr
+1 mem_queue_write_ptr
+32 mem_queue_ele
+
+170 mem_shutter_nv_data
+
+0 mem_shutter_led_struct_app_led
+1 mem_shutter_led_struct_app_led_type
+1 mem_shutter_led_struct_app_led_blink_count
+1 mem_shutter_led_struct_app_led_gpio
+2 mem_shutter_led_struct_app_led_on_time
+2 mem_shutter_led_struct_app_led_off_time
+2 mem_shutter_led_struct_app_led_on_callback
+2 mem_shutter_led_struct_app_led_off_callback
+
+0 mem_shutter_power_off_led_style
+1 mem_shutter_power_off_led_style_type
+1 mem_shutter_power_off_led_style_blink_count
+1 mem_shutter_power_off_led_style_gpio
+2 mem_shutter_power_off_led_style_on_time
+2 mem_shutter_power_off_led_style_off_time
+2 mem_shutter_power_off_led_style_on_callback
+2 mem_shutter_power_off_led_style_off_callback
+
+1 mem_shutter_soft_swtich_botton_down
+11 mem_shutter_soft_swtich_led_struct_temp
+1 mem_shutter_power_off_timeout
+1 mem_shutter_power_off_timer
+2 mem_shutter_key_conf0_temp
+1 mem_shutter_led_struct_app_led_gpio_temp
+1 mem_shutter_hard_soft_switch_case_temp
+1 mem_shutter_soft_switch_button_gpio_temp
+
+1 mem_shutter_soft_switch_first_power_on
+1 mem_shutter_dy_conf
+420 mem_shutter_le_uuid_sup
+40 mem_shutter_key_value_list
+8 mem_shutter_discovery_time_conf
+8 mem_shutter_reconn_or_discovery_blink_time_conf
+)
+
+
+
+
+(
+0 BLE_SHUTTER
+1 CLASSIC_SHUTTER
+)
+
+(
+0x0000 NVRAM_EEPROM_OFFSET
+)
+
+(
+0x1b3a SHUTTER_EEPROM_CONFIG_CRC
+)
+
+(
+5 MAX_QUEUE_NUM
+5 SHUTTER_BLE_DATA_BUFFER
+5 SHUTTER_CLASSIC_DATA_BUFFER
+)
+
+
+(
+0x13	GATT_CONSUMER_NOTIFY_HANDLE
+0x14	GATT_CONSUMER_WRITE_HANDLE
+0x17	GATT_KEYBOARD_NOTIFY_HANDLE
+0x18	GATT_KEYBOARD_WRITE_HANDLE
+)
+
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE
+//100ms
+0x00a0	SLOW_ADV_INTERVAL_VALUE
+)
+
+
+(
+0 ATT_BIT_NOTIFICATION
+1 ATT_BIT_INDICATION
+)
+///////////////////////////////////////////////////////////////////////////////////////
+
+(
+0 HARD_SWITCH
+1 SOFT_SWITCH
+)
+
+
+(
+1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+)
+
+(//Data Rom Buffer Addr
+313		BLE_GATT_LIST_SIZE
+487		BT_SDP_LIST_SIZE
+40		BLE_KEY_VALUE_LIST_SIZE
+40		BT_KEY_VALUE_LIST_SIZE
+)
+
+
+(//soft switch power state
+0		SS_STATE_POWER_UP
+1		SS_STATE_POWER_ON
+2		SS_STATE_POWER_OFF
+)
+
+(
+0		SS_POWER_STATE_OFFSET
+1		SS_POWER_ON_TIME
+2		SS_POWER_OFF_TIME
+3		SS_POWER_ON_CB
+5		SS_POWER_OFF_CB
+
+)
+
+(
+
+0x4FFE SIM_IIC_SCL_GPIO_NUM
+0x4FFF SIM_IIC_SDA_GPIO_NUM
+
+)
+
+(
+0 SHUTTER_TYPE
+1 SHUTTER_DY_TYPE
+)
Index: format/app_shutter_dy.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_shutter_dy.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/app_shutter_dy.format	(working copy)
@@ -0,0 +1,266 @@
+
+
+xmemalloc shutter_dy(
+
+////////////////////////////////////
+//shutter common config
+
+//timers
+1 mem_shutter_1s_timer
+2 mem_shutter_timer_625us
+
+//patch variable
+11 mem_rf_init_data_new
+2 mem_key_value_xmem
+290 mem_shutter_le_hid_map
+//420 mem_shutter_dy_le_uuid_sup
+2 mem_shutter_le_map_len_android
+2 mem_shutter_le_map_len_ios
+16 mem_dy_le_search_service_uuid
+1 mem_iphone_flag
+1 mem_send_data_delay
+4 mem_key_send_clk
+10 mem_shutter_key_state0
+10 mem_shutter_key_state1
+10 mem_shutter_key_state2
+10 mem_shutter_key_state3
+10 mem_shutter_key_state4
+10 mem_shutter_key_state5
+10 mem_shutter_key_state6
+
+15 mem_key0_release_new	
+15 mem_key1_release_new
+15 mem_key2_release_new
+15 mem_key3_release_new
+15 mem_key4_release_new
+15 mem_key5_release_new
+15 mem_key6_release_new
+
+3 mem_key0_long_press
+3 mem_key1_long_press
+3 mem_key2_long_press
+3 mem_key3_long_press
+3 mem_key4_long_press
+3 mem_key5_long_press
+3 mem_key6_long_press
+
+3 mem_key0_long_release	
+3 mem_key1_long_release
+3 mem_key2_long_release
+3 mem_key3_long_release
+3 mem_key4_long_release
+3 mem_key5_long_release
+3 mem_key6_long_release
+
+2 mem_combine_key0
+2 mem_combine_key1
+2 mem_combine_key2
+2 mem_combine_key3
+2 mem_combine_key4
+2 mem_combine_key5
+
+2 mem_combine_key_state0
+
+10 mem_combine_key0_press
+10 mem_combine_key1_press
+10 mem_combine_key2_press
+10 mem_combine_key3_press
+10 mem_combine_key4_press
+10 mem_combine_key5_press
+10 mem_combine_key_release
+
+4 mem_shutter_move_data
+
+10 mem_key0_press_i
+10 mem_key1_press_i
+10 mem_key2_press_i
+10 mem_key3_press_i
+10 mem_key4_press_i
+10 mem_key5_press_i
+
+15 mem_key0_release_new_i
+15 mem_key1_release_new_i
+15 mem_key2_release_new_i
+15 mem_key3_release_new_i
+15 mem_key4_release_new_i
+15 mem_key5_release_new_i
+15 mem_key6_release_new_i
+
+3 mem_key0_long_press_i
+3 mem_key1_long_press_i
+3 mem_key2_long_press_i
+3 mem_key3_long_press_i
+3 mem_key4_long_press_i
+3 mem_key5_long_press_i
+3 mem_key6_long_press_i
+
+3 mem_key0_long_release_i
+3 mem_key1_long_release_i
+3 mem_key2_long_release_i
+3 mem_key3_long_release_i
+3 mem_key4_long_release_i
+3 mem_key5_long_release_i
+3 mem_key6_long_release_i
+
+
+10 mem_key3_release_new_t
+10 mem_key3_release_new_i_t
+1 mem_key3_press_count
+1 mem_shutter_like_timeout
+1 mem_shutter_key_pressed
+1 mem_shutter_combine_key_release
+680 mem_shutter_mousekey_value_list
+1 mem_shutter_back_count
+1 mem_shutter_le_conned
+
+0 mem_move_config
+1 mem_shutter_iphone_beyond_x_count
+1 mem_shutter_iphone_beyond_y_count
+2 mem_shutter_move_data_x
+2 mem_shutter_move_data_y
+1 mem_last_shutter_le_iphone_flag
+0 mem_move_config_end
+1 mem_shutter_back_count_cache
+1 mem_shutter_iphone_beyond_x_cache
+1 mem_shutter_iphone_beyond_y_cache
+10 mem_shutter_iphone_move_mid
+1 mem_shutter_long_key_released_flag
+1 mem_shutter_move_mid_timer
+1 mem_shutter_pairing_success
+2 mem_combine_key_release_value
+1 mem_last_press_key_value
+1 mem_shutter_first_move
+1 mem_move_mode_set
+1 mem_move_mode_key_index
+1 mem_move_mode_trigger_enable
+5 mem_shutter_android_move_mid
+10 mem_shutter_iphone_up_mid
+10 mem_shutter_iphone_like_mid
+1 mem_shutter_key_num_conf
+7 mem_shutter_dy_key_conf
+11 mem_le_dy_adv_data
+12 mem_le_dy_scan_data
+8 mem_ble_shutter_dy_interval_min_new
+8 mem_shutter_ble_discovery_time_conf
+2 mem_queue_dy_each_size
+10 mem_dy_key0_press
+10 mem_dy_key1_press
+10 mem_dy_key2_press
+10 mem_dy_key3_press
+10 mem_dy_key4_press
+10 mem_dy_key5_press
+10 mem_dy_key6_press
+7 mem_shutter_led_on_light_dark_led_conf
+7 mem_shutter_led_off_light_dark_led_conf
+4 mem_shutter_reconn_blink_on_time_conf
+4 mem_shutter_discovery_blink_on_time_conf
+2 mem_shutter_efuse_start_offset
+2 mem_shutter_efuse_end_offset
+
+0 mem_initial_move_conf
+2 mem_android_initial_move_x
+2 mem_android_initial_move_y
+2 mem_iphone_initial_move_x
+2 mem_iphone_initial_move_y
+//淇敼澧炲姞淇濆瓨鍙傛暟
+0 mem_otp_move_config
+2 mem_otp_shutter_move_data_x
+2 mem_otp_shutter_move_data_y
+1 mem_otp_last_shutter_le_iphone_flag
+0 mem_otp_move_config_end
+2 mem_otp_write_offset_addr
+2 mem_otp_read_offset_addr
+2 mem_otp_read_ios_android_addr
+2 mem_shutter_le_pairing_handle
+2 mem_shutter_temp_count
+1 mem_shutter_first_read_flag
+1 mem_shutter_valid_data_flag
+1 mem_shutter_volume_timer
+1 mem_shutter_link_timer
+8 mem_shutter_link_data
+8 mem_shutter_link_data_i
+1 mem_shutter_link_loop_flag
+0 mem_shutter_end
+)
+
+
+(
+10 MAX_QUEUE_NUM_COMBINEKEY
+15 MAX_QUEUE_NUM_RELEASE
+3 MAX_QUEUE_NUM_LONG
+3 MAX_QUEUE_NUM_LONG_RELEASE
+10 MAX_QUEUE_NEW_PRESS
+
+10 EVERY_PAYLOAD_LEN
+)
+
+
+(
+0x24	GATT_KEYBOARD_WRITE_HANDLE_NEW
+)
+
+
+///////////////////////////////////////////////////////////////////////////////////////
+
+(//Data Rom Buffer Addr
+640		BT_DY_KEY_VALUE_LIST_SIZE
+)
+
+//otp address offset
+(
+0x05   SHUTTER_PARA_TOTAL_NUM
+//0x7b0  SHUTTER_EFUSE_START_OFFECT	//璧峰鍦板潃
+//0x680  SHUTTER_EFUSE_END_OFFECT	       //缁撴潫鍦板潃
+)
+
+
+(
+//uart config
+115200 UART_BAUD
+)
+
+(
+10 SHUTTER_KEY_CONF_SATE_BYTES
+0 KEY_STATE_PRESS_CLK_OFFSET
+4 KEY_STATE_PRESS_COUNT_OFFSET
+5 KEY_STATE_RELEASE_CLK_OFFSET
+9 KEY_STATE_LONGPRESS_OFFSET
+4 KEY_STATE_PRESS_CLK_LENGTH
+1 KEY_STATE_PRESS_COUNT_LENGTH
+4 KEY_STATE_RELEASE_CLK_LENGTH
+1 KEY_STATE_LONGPRESS_LENGTH
+)
+
+(
+0  SHUTTER_RIGHT_KEY_NUM
+1  SHUTTER_LIKE_KEY_NUM
+2  SHUTTER_DOWN_KEY_NUM
+3  SHUTTER_PHOTO_KEY_NUM
+4  SHUTTER_UP_KEY_NUM
+5  SHUTTER_LEFT_KEY_NUM
+6  SHUTTER_MOVE_KEY_NUM
+7  SHUTTER_FUN_KEY_NUM
+)
+
+(
+//0xaa ANDROID_INITIAL_MOVE_X //170
+//0x78 ANDROID_INITIAL_MOVE_Y //120
+//0x69 IPHONE_INITIAL_MOVE_X
+//0x38 IPHONE_INITIAL_MOVE_Y
+0X0a ANDROID_EVERY_MOVE_SIZE
+0x07 IPHONE_EVERY_MOVE_SIZE
+0x62 IPHONE_ONCE_MAX_MOVE_VALUE
+)
+
+(
+0x00 MOVE_COMBINE_KEY
+0x01 MOVE_SINGLE_KEY
+)
+
+(
+//6key or 7key conf
+6 SHUTTER_SIX_KEY
+7 SHUTTER_SEVEN_KEY
+8 SHUTTER_EIGHT_KEY
+)
+
Index: format/ble_protocol_stack/le.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le.format	(working copy)
@@ -0,0 +1,441 @@
+
+memalloc(
+260 mem_le_rxbuf
+
+/* security temp */
+4 mem_le_mic
+4 mem_le_peer_mic
+//8 mem_le_skdm
+//8 mem_le_skds
+16 mem_le_mrand
+
+
+/* ========= le context =========== */
+1 mem_le_state
+1 mem_le_mode
+2 mem_le_tsniff
+4 mem_le_anchor
+6 mem_le_clk_offset
+2 mem_le_receive_window
+6 mem_le_plap
+1 mem_le_conn_handle
+1 mem_le_arq
+1 mem_le_ch
+1 mem_le_hop
+2 mem_le_event_count
+4 mem_le_supervision_timer
+2 mem_le_instant
+1 mem_le_channels
+1 mem_le_op
+
+	/* these 3 should NOT be seperated */
+4 mem_le_access
+3 mem_le_crcinit
+1 mem_le_window_size
+
+	/* these 3 should NOT be seperated */
+2 mem_le_slave_latency
+2 mem_le_superto
+5 mem_le_channel_map
+
+
+1 mem_le_rx_phy
+1 mem_le_tx_phy
+
+9 mem_le_update_new_param
+
+16 mem_le_sk
+
+1 mem_le_peer_sca
+1 mem_le_err_code
+1 mem_le_ll_pairing_fail_reason
+
+/* ========= le context ending =========== */
+
+/* test */
+1 mem_le_testtype
+1 mem_cmd_le_create_conn
+
+)
+
+amemalloc mem_le_update_new_param(
+//update connection parameter
+	0 mem_le_new_param
+	1 mem_le_new_transmitwindowsize
+	2 mem_le_new_transmitwindowoffset
+	2 mem_le_new_conninterval
+	2 mem_le_new_connslavelatency
+	2 mem_le_new_connsupervisiontimeout
+)
+
+amemalloc mem_le_update_new_param(
+//update map parameter
+	5 mem_le_new_map
+)
+
+amemalloc mem_le_update_new_param(
+//update phy parameter
+	1 mem_le_new_m2s_phy
+	1 mem_le_new_s2m_phy
+)
+
+amemalloc mem_le_rxbuf(
+//data channel PDU
+	1 mem_le_rxbuf_data_header
+	1 mem_le_rxbuf_data_length
+	255 mem_le_rxbuf_data_payload
+)
+
+amemalloc mem_le_rxbuf(
+//data channel LL control PDU
+	1 mem_le_rxbuf_data_ll_header
+	1 mem_le_rxbuf_data_ll_length
+	1 mem_le_rxbuf_data_ll_opcode
+	26 mem_le_rxbuf_data_ll_control_data
+)
+
+xmemalloc(
+1 mem_version
+2 mem_company_id
+2 mem_sub_version
+
+2 mem_le_dsniff
+2 mem_le_conn_interval
+1 mem_le_tx_ifs_defference
+1 mem_le_tx2m_delay
+
+1 mem_le_txheader
+1 mem_le_txlen
+256 mem_le_txpayload
+
+//modified name
+1 mem_le_name_len
+30 mem_le_name
+
+
+/* smp related */
+
+16 mem_le_ltk
+1 mem_ltk_exists
+16 mem_le_rconfirm
+16 mem_le_srand
+1 mem_le_iat
+1 mem_le_rat
+1 mem_le_preq
+1 mem_le_preq_iocap
+1 mem_le_preq_oob
+1 mem_le_preq_auth
+1 mem_le_preq_max_keysize
+1 mem_le_preq_init_key_distribution
+1 mem_le_preq_resp_key_distribution
+1 mem_le_pres
+1 mem_le_pres_iocap
+1 mem_le_pres_oob
+1 mem_le_pres_auth
+1 mem_le_pres_max_keysize
+1 mem_le_pres_init_key_distribution
+1 mem_le_pres_resp_key_distribution
+
+
+
+//START of LE conn parameter structure
+0 mem_le_conn_param
+1 mem_le_conn_peer_addr_type
+6 mem_le_conn_peer_addr
+1 mem_le_conn_own_addr_type
+2 mem_le_interval_min
+2 mem_le_interval_max
+2 mem_le_latency
+2 mem_le_timeout
+//START of LE conn parameter structure
+
+
+3 mem_le_lap
+1 mem_le_uap
+2 mem_le_nap
+
+
+2 mem_le_local_mtu
+2 mem_le_remote_mtu
+
+8 mem_le_skdm
+8 mem_le_skds
+
+2 mem_le_init_superto
+2 mem_ui_le_uuid_table
+
+1 mem_le_secure_connect_flag
+1 mem_le_secure_connect_state
+1 mem_le_sc_confirm_gkey_flag
+
+
+1 mem_le_pairing_state
+1 mem_le_enc_state
+1 mem_le_pairing_mode
+4 mem_le_tk
+2 mem_le_ediv
+8 mem_le_rand
+16 mem_le_irk
+
+//LE attribute list
+4 mem_le_transmit_window
+
+//ble General configuration 
+1 mem_le_configuration
+16 mem_le_fixed_ltk
+2 mem_le_pairing_handle
+
+
+1 mem_le_packet_llid
+
+//for continue
+2 mem_le_l2cap_size
+2 mem_le_packet_len_recved
+2 mem_le_payload_ptr
+
+
+//ble gatt signaling
+1 mem_le_signaling_identifier
+2 mem_le_l2cap_signaling_conn_param_update_rsp_result
+
+1 mem_le_md_count
+2 mem_ble_l2cap_tx_buff0_ptr
+2 mem_ble_l2cap_tx_buff_size_ptr
+)
+
+(//mem_le_T_IFS
+150 PARAM_T_IFS_150US
+20000 PARAM_20MS_INIT
+-11 PARAM_SYNC_TIME_DIFFERENCE
+40 PARAM_CODED_C1_TERM1_TIME_40US
+1666 PARAM_WINDOWN_SIZE
+//T_IFS = 150-modem(CRC time)
+15000 param_sifs
+)
+
+
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+
+	//BLE ErrorCodes
+	(    
+	0x01 ERROR_UNKNOWN_HCI_COMMAND
+	0x02 ERROR_NO_CONNECTION
+	0x03 ERROR_HARDWARE_FAILURE
+	0x04 ERROR_PAGE_TIMEOUT
+	0x05 ERROR_AUTHENTICATION_FAILURE
+	0x06 ERROR_KEY_MISSING
+	0x07 ERROR_MEMORY_FULL
+	0x08 ERROR_CONNECTION_TIMEOUT
+	0x09 ERROR_MAX_CONNECTIONS
+	0x0A ERROR_MAX_SCO_CONNECTIONS
+	0x0B ERROR_MAX_ACL_CONNECTIONS
+	0x0C ERROR_COMMAND_DISALLOWED
+	0x0D ERROR_HOST_REJECT_LIMITED_RESOURCES
+	0x0E ERROR_HOST_REJECT_SECURITY_REASONS
+	0x0F ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
+	0x10 ERROR_HOST_TIMEOUT
+	0x11 ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
+	0x12 ERROR_INVALID_HCI_COMMAND_PARAMETERS
+	0x13 ERROR_REMOTE_USER_TERMINATED_CONNECTION
+	0x14 ERROR_REMOTE_LOW_RESOURCES
+	0x15 ERROR_REMOTE_POWERING_OFF
+	0x16 ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
+	0x17 ERROR_REPEATED_ATTEMPTS
+	0x18 ERROR_PAIRING_NOT_ALLOWED
+	0x19 ERROR_UNKNOWN_LMP_PDU
+	0x1A ERROR_UNSUPPORTED_REMOTE_FEATURE
+	0x1B ERROR_SCO_OFFSET_REJECTED
+	0x1C ERROR_SCO_INTERVAL_REJECTED
+	0x1D ERROR_SCO_AIR_MODE_REJECTED
+	0x1E ERROR_INVALID_LMP_PARAMETER
+	0x1F ERROR_UNSPECIFIED_ERROR
+	0x20 ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
+	0x21 ERROR_ROLE_CHANGE_NOT_ALLOWD
+	0x22 ERROR_LMP_RESPONSE_TIMEOUT
+	0x23 ERROR_ERROR_TRANSACTION_COLLISION
+	0x24 ERROR_LMP_PDU_NOT_ALLOWED
+	0x25 ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x26 ERROR_UNIT_KEY_USED
+	0x27 ERROR_QOS_NOT_SUPPORTED
+	0x28 ERROR_INSTANT_PASSED
+	0x29 ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
+	0x2a ERROR_DIFFERENT_TRANSACTION_COLLISION
+	0x2c ERROR_QOS_UNACCEPTABLE_PARAMETER
+	0x2d ERROR_QOS_REJECTED
+	0x2e ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
+	0x2f ERROR_INSUFFICIENT_SECURITY
+	0x30 ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
+	0x32 ERROR_ROLE_SWITCH_PENDING
+	0x34 ERROR_RESERVED_SLOT_VIOLATION
+	0x35 ERROR_ROLE_SWITCH_FAILED
+	0x36 ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
+	0x37 ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
+	0x38 ERROR_HOST_BUSY_PAIRING
+	0x3d ERROR_MIC_FAILURE
+	)
+
+
+	//modified_name
+	(
+	0X20 SPACE	
+	)
+	/* LE L2CAP CID */
+	(
+	0x0004 LE_L2CAP_CID_ATT
+	0x0005 LE_L2CAP_CID_SIGNAL
+	0x0006 LE_L2CAP_CID_SMP
+	)
+
+	//LE address type
+	(
+	0 LE_ADDR_TYPE_PUBLIC
+	1 LE_ADDR_TYPE_RANDOM
+	)
+	//LE address type bitmap
+	(
+	7 LE_RECEIVER_ADDR_BIT
+	6 LE_SENDER_ADDR_BIT
+	)
+	//LE SCAN TYPE
+	(
+	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
+	0x01 LE_SCAN_TYPE_ACTIVE
+	)
+
+	//LE SCAN ENABLE
+	(
+	0x00 LE_SCAN_DISABLE
+	0x01 LE_SCAN_ENABLE
+	0x0101 LE_ACTIVE_SCAN_ENABLE
+	)
+
+	//LE FIND INFORMATION RESPONSE
+	//THE FORMAT OF THE INFORMATION DATA
+	(
+	0x01 UUID_SIZE_16BIT
+	0x02 UUID_SIZE_128BIT
+	)
+
+//	le_state_map 0-2 is reserved for state_inconn,state_insniff and state_sco
+(
+3 lestate_got_first_packet
+4 lestate_encryption
+5 lestate_update_param
+6 lestate_update_map
+7 lestate_update_phy
+)
+
+// 	le mode
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+5 lemode_2m
+6 lemode_lr
+7 lemode_lr_s8
+
+0x20 mode_2m
+0x40 mode_lr_s2
+0xc0 mode_lr_s8
+
+)
+
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+6 txdat
+)
+
+(
+0x00 LLID_RESERVED
+0x01 LLID_CONTINUE
+0x02 LLID_START
+0x03 LLID_LE_LL
+0x01 LLID_EMPTY
+)
+
+(
+4 LE_TX_BUFF_COUNT
+3 LE_TX_BUFF_UPDATE_LOOPCNT //LE_TX_BUFF_COUNT-1
+
+12 LE_MD_MAX_COUNT
+)
+
+
+(
+0 LE_INITATOR_LTK_BIT
+1 LE_INITATOR_IRK_BIT
+2 LE_INITATOR_CSRK_BIT
+)
+
+
+
+
+
+(
+0  LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND
+1  LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE
+2  LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE
+
+)
+
+(
+0 MASTER_PUBLIC_ADDR
+1 MASTER_RANDOM_ADDR
+)
+
+(
+0x06 LE_ERR_PIN_OR_KEY_MISSING
+)
+
+(
+39 LE_CCM_DIRECTIONBIT
+)
+(
+36 BR_CCM_0_LENGTH_CONTINUATION
+37 BR_CCM_DIRECTIONBIT
+)
+
+(
+96000 TIMER_SMP_PAIRING_TIMEOUT //30S
+)
+
+
+
+//mem_le_enc_state
+(
+0 FLAG_LE_ENC_NULL
+1 FLAG_LE_RCV_ENC_START
+2 FLAG_LE_ENC_PAUSE
+3 FLAG_LE_RCV_START_ENC_RSP
+4 FLAG_LE_SEND_START_ENC_RSP
+5 FLAG_LE_SEND_START_ENC_REQ
+0xff FLAG_LE_ENC_END
+)
+
+(//mem_le_configuration
+//bit0:use fixed key , ble passkey pairing
+0 BIT_BLE_PASSKEY_FIXED_KEY
+//bit1:ble pairing use fixed long term key
+1 BIT_BLE_PAIRING_FIXED_LTK
+//bit2:ble transmit packet will set more data flag
+2 BIT_BLE_TRANSMIT_PACKET_BY_MD
+//bit3:master read handle, with requires an authenticated link
+3 BIT_BLE_READ_AUTH
+//bit4:master write handle, with requires an authenticated link
+4 BIT_BLE_WRITE_AUTH
+//bit5:cannot enter long sleep
+5 BIT_BLE_SHORT_MULT
+//bit6:DEAL baseband packet
+6 BIT_BLE_DEAL_BB_PACKET
+)
+
Index: format/ble_protocol_stack/le_advertising.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_advertising.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_advertising.format	(working copy)
@@ -0,0 +1,104 @@
+
+xmemalloc(
+// parameters
+1 mem_le_scan_enable
+2 mem_le_scan_interval
+2 mem_le_scan_window
+
+
+1 mem_le_adv_data_len
+31 mem_le_adv_data
+1 mem_le_scan_data_len
+31 mem_le_scan_data
+
+//START of LE adv parameter structure
+1 mem_le_adv_enable
+0 mem_le_adv_param
+2 mem_le_adv_interval
+1 mem_le_adv_type
+1 mem_le_adv_own_addr_type
+6 mem_le_adv_direct_addr
+1 mem_le_adv_channel_map
+//END of LE adv parameter structure
+
+//START of LE scan parameter structure
+0 mem_le_scan_params
+1 mem_le_scan_type
+1 mem_le_scan_own_addr_type
+//END of LE scan parameter structure
+)
+
+amemalloc mem_le_rxbuf(
+//advertising channel PDU
+	1 mem_le_rxbuf_adv_header
+	1 mem_le_rxbuf_adv_length
+	255 mem_le_rxbuf_adv_payload
+)
+
+amemalloc mem_le_rxbuf(
+//advertising channel PDU
+//Scan Req
+	1 mem_le_rxbuf_adv_scan_req_header
+	1 mem_le_rxbuf_adv_scan_req_length
+	6 mem_le_rxbuf_adv_scan_req_scan_address
+	6 mem_le_rxbuf_adv_scan_req_adv_address
+)
+
+amemalloc mem_le_rxbuf(
+//advertising channel PDU
+//Connect IND
+	1 mem_le_rxbuf_adv_connect_ind_header
+	1 mem_le_rxbuf_adv_connect_ind_length
+	6 mem_le_rxbuf_adv_connect_ind_init_address
+	6 mem_le_rxbuf_adv_connect_ind_adv_address
+	4 mem_le_rxbuf_adv_connect_ind_access_address
+	3 mem_le_rxbuf_adv_connect_ind_crc_init
+	1 mem_le_rxbuf_adv_connect_ind_win_size
+	2 mem_le_rxbuf_adv_connect_ind_win_offset
+	2 mem_le_rxbuf_adv_connect_ind_interval
+	2 mem_le_rxbuf_adv_connect_ind_latency
+	2 mem_le_rxbuf_adv_connect_ind_timeout
+	5 mem_le_rxbuf_adv_connect_ind_channel_map
+	1 mem_le_rxbuf_adv_connect_ind_hop_and_sca
+)
+
+(
+0x01	GAP_ADTYPE_FLAGS
+0x02	GAP_ADTYPE_16BIT_MORE
+0x03	GAP_ADTYPE_16BIT_COMPLETE
+0x04	GAP_ADTYPE_32BIT_MORE
+0x05	GAP_ADTYPE_32BIT_COMPLETE
+0x06	GAP_ADTYPE_128BIT_MORE
+0x07	GAP_ADTYPE_128BIT_COMPLETE
+0x08	GAP_ADTYPE_LOCAL_NAME_SHORT
+0x09	GAP_ADTYPE_LOCAL_NAME_COMPLETE
+0x0a	GAP_ADTYPE_POWER_LEVEL
+0x16	GAP_ADTYPE_SERVICE_DATA
+0x2a	GAP_ADTYPE_MESH_MESSAGE
+0x2b 	GAP_ADTYPE_MESH_BEACON
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+
+/* advertising channel PDU type */
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+3 AUX_SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+5 AUX_CONNECT_REQ
+6 ADV_SCAN_IND
+)
+
+(
+0 BIT_ADV_CHANNEL_MAP_37
+1 BIT_ADV_CHANNEL_MAP_38
+2 BIT_ADV_CHANNEL_MAP_39
+)
+
+(
+0xa0 param_le_sca
+)
+
Index: format/ble_protocol_stack/le_l2cap_att.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_l2cap_att.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_l2cap_att.format	(working copy)
@@ -0,0 +1,205 @@
+
+xmemalloc(
+	1 mem_le_l2cap_att_states
+
+
+	/* should be together */
+	1 mem_le_att_opcode
+	2 mem_le_att_handle
+	1 mem_le_search_res
+
+	2 mem_le_notify_handle
+	1 mem_le_search_uuid_length
+	16 mem_le_search_uuid
+)
+
+amemalloc mem_temp_block2(
+	2 mem_le_search_handle_start
+	2 mem_le_search_handle_end
+	0 mem_le_att_offset
+	1 mem_le_search_att_type_length
+	16 mem_le_search_att_type
+
+	1 mem_le_curr_att_len
+
+	2 mem_le_cur_attlist_start_ptr
+	2 mem_le_cur_handle_start
+	2 mem_le_cur_handle_end
+	1 mem_le_cur_uuid_length
+	16 mem_le_cur_uuid
+	2 mem_le_cur_handle
+)
+
+
+amemalloc mem_le_rxbuf(
+//data channel ATT start PDU
+	1 mem_le_rxbuf_data_att_header
+	1 mem_le_rxbuf_data_att_length
+	2 mem_le_rxbuf_data_att_l2cap_length
+	2 mem_le_rxbuf_data_att_cid
+	1 mem_le_rxbuf_data_att_opcode
+	250 mem_le_rxbuf_data_att_payload
+)
+
+
+amemalloc mem_le_rxbuf(
+//data channel ATT continue PDU
+	1 mem_le_rxbuf_data_continue_header
+	1 mem_le_rxbuf_data_continue_length
+	255 mem_le_rxbuf_data_continue_payload
+)
+
+amemalloc mem_le_rxbuf(
+//data channel ATT write request PDU
+	1 mem_le_rxbuf_data_att_write_header
+	1 mem_le_rxbuf_data_att_write_length
+	2 mem_le_rxbuf_data_att_write_l2cap_length
+	2 mem_le_rxbuf_data_att_write_cid
+	1 mem_le_rxbuf_data_att_write_opcode
+	2 mem_le_rxbuf_data_att_write_handle
+	248 mem_le_rxbuf_data_att_write_payload
+)
+
+amemalloc mem_le_rxbuf(
+//data channel ATT prepare write request PDU
+	1 mem_le_rxbuf_data_prepare_att_write_header
+	1 mem_le_rxbuf_data_prepare_att_write_length
+	2 mem_le_rxbuf_data_prepare_att_write_l2cap_length
+	2 mem_le_rxbuf_data_prepare_att_write_cid
+	1 mem_le_rxbuf_data_prepare_att_write_opcode
+	2 mem_le_rxbuf_data_prepare_att_write_handle
+	2 mem_le_rxbuf_data_prepare_att_write_offset
+	246 mem_le_rxbuf_data_prepare_att_write_payload
+)
+
+(//bit of mem_le_l2cap_att_states
+0 BLE_L2CAP_SEND_INDICATION_PACKET
+0 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
+)
+
+(//bit map of att handle
+14 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED
+15 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED
+)
+
+
+
+(
+0 BIT_CHARACTERISTIC_BROADCAST
+1 BIT_CHARACTERISTIC_READ
+2 BIT_CHARACTERISTIC_WRITE_WITHOUT_RESPONSE
+3 BIT_CHARACTERISTIC_WRITE
+4 BIT_CHARACTERISTIC_NOTIFY
+5 BIT_CHARACTERISTIC_INDICATE
+6 BIT_CHARACTERISTIC_SIGNED_WRITE
+7 BIT_CHARACTERISTIC_EXTENDED_PROPERTIES
+)
+
+/* ATT OPCODE */
+(
+0x01 ATTOP_ERROR_RESPONSE
+0x02 ATTOP_EXCHANGE_MTU_REQUEST
+0x03 ATTOP_EXCHANGE_MTU_RESPONSE
+0x04 ATTOP_FIND_INFORMATION_REQUEST
+0x05 ATTOP_FIND_INFORMATION_RESPONSE
+0x06 ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+0x07 ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+0x08 ATTOP_READ_BY_TYPE_REQUEST
+0x09 ATTOP_READ_BY_TYPE_RESPONSE
+0x0A ATTOP_READ_REQUEST
+0x0B ATTOP_READ_RESPONSE
+0x0C ATTOP_READ_BLOB_REQUEST
+0x0D ATTOP_READ_BLOB_RESPONSE
+0x0E ATTOP_READ_MULTIPLE_REQUEST
+0x0F ATTOP_READ_MULTIPLE_RESPONSE
+0x10 ATTOP_READ_BY_GROUP_TYPE_REQUEST
+0x11 ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+0x12 ATTOP_WRITE_REQUEST
+0x13 ATTOP_WRITE_RESPONSE
+0x16 ATTOP_PREPARE_WRITE_REQUEST
+0x17 ATTOP_PREPARE_WRITE_RESPONSE
+0x18 ATTOP_EXECUTE_WRITE_REQUEST
+0x19 ATTOP_EXECUTE_WRITE_RESPONSE
+0x1B ATTOP_HANDLE_VALUE_NOTIFICATION
+0x1D ATTOP_HANDLE_VALUE_INDICATION
+0x1E ATTOP_HANDLE_VALUE_CONFIRMATION
+0x52 ATTOP_WRITE_COMMAND
+0xD2 ATTOP_SIGNED_WRITE_COMMAND
+0x1f ATTOP_CONTINUE
+0x9e EMPTY_LE_DATA_PRE
+0x9f EMPTY_LE_DATA
+)
+
+/* ATT error code */
+(
+0x01 ATT_ERR_INVALID_HANDLE
+0x02 ATT_ERR_READ_NOT_PERMITTED
+0x03 ATT_ERR_WRITE_NOT_PERMITTED
+0x04 ATT_ERR_INVALID_PDU
+0x05 ATT_ERR_INSUFFICIENT_AUTHENTICATION
+0x06 ATT_ERR_REQUEST_NOT_SUPPORTED
+0x07 ATT_ERR_INVALID_OFFSET
+0x08 ATT_ERR_INSUFFICIENT_AUTHORIZATION
+0x09 ATT_ERR_PREPARE_QUEUE_FULL
+0x0A ATT_ERR_ATTRIBUTE_NOT_FOUND
+0x0B ATT_ERR_ATTRIBUTE_NOT_LONG
+0x0C ATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE
+0x0D ATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH
+0x0E ATT_ERR_UNLIKELY_ERROR
+0x0F ATT_ERR_INSUFFICIENT_ENCRYPTION
+0x10 ATT_ERR_UNSUPPORTED_GROUP_TYPE
+0x11 ATT_ERR_INSUFFICIENT_RESOURCES
+)
+
+/* GATT Specifications*/
+(
+0X2900 CHARACTERTIC_EXTENDED_PROPERTIES
+0X2901 CHARACTERTIC_USER_DESCRIPTION
+0X2902 CLIENT_CHARACTERTIC_CONFIGURATION
+0X2903 SERVER_CHARACTERTIC_CONFIGURATION
+0X2904 CHARACTERTIC_PRESENTATION_FORMAT
+0X2905 CHARACTERTIC_AGGREGATE
+0X2906 VALID_RANGE
+0X2907 EXTERNAL_REPORT_REFERENCE
+0X2908 REPORT_REFERENCE
+0X290B ENVIR_SENSING_CONFIGURATION
+0X290C ENVIR_SENSING_MEASUREMENT
+0X290D ENVIR_SENSING_TRIGGER_SETTING
+)
+
+
+/*	SERVICE UUID	*/
+(
+0x1800 UUID_SERVICE_GENERIC_ACC
+0x1801 UUID_SERVICE_GENERIC_ATT
+0x180a UUID_SERVICE_DEVICE_INFO
+0x180f UUID_SERVICE_BATTERY
+0x1812 UUID_SERVICE_HIDS
+0x2800 UUID_GATT_PRIMARY_SERVICE
+0x2801 UUID_GATT_SECONDARY_SERVICE
+0X2802 UUID_GATT_INCLUDE
+0X2803 UUID_GATT_CHARACTERISTIC
+0X2A00 UUID_CHRCTR_DEVICE_NAME
+0X2A19 UUID_CHRCTR_BATTERY_LEVEL
+0X2A22 UUID_CHRCTR_KEYBOARD_INPUT
+0X2A23 UUID_CHRCTR_SYSTEM_ID 
+0X2A25 UUID_CHRCTR_SERIAL_NUMBER
+0X2A26 UUID_CHRCTR_FIRMWARE
+0X2A32 UUID_CHRCTR_KEYBOARD_OUTPUT
+0X2A33 UUID_CHRCTR_MOUSE_INPUT
+0X2A4A UUID_CHRCTR_HID_INFO
+0X2A4B UUID_CHRCTR_REPORT_MAP
+0X2A4C UUID_CHRCTR_HID_CTRL_POINT
+0X2A4D UUID_CHRCTR_REPORT
+0X2A4E UUID_CHRCTR_PROTOCOL_MODE
+0X2A50 UUID_CHRCTR_PNP_ID
+)
+
+
+(
+23 ATT_DEFAULT_MTU 
+)
+
+
+
Index: format/ble_protocol_stack/le_l2cap_att_wechat.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_l2cap_att_wechat.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_l2cap_att_wechat.format	(working copy)
@@ -0,0 +1,85 @@
+ifdef COMPILE_WECHAT
+
+amemalloc mem_temp_block2(
+	0 mem_wechat_initreq_base_request
+	2 mem_wechat_authreq_base_request
+	4 mem_wechat_authreq_protocol_version
+	2 mem_wechat_authreq_auth_protocol
+	2 mem_wechat_authreq_eam_mac_no_encrypt
+	2 mem_wechat_authreq_mac_address
+	6 mem_wechat_authreq_device_address
+
+	1 mem_wechat_indication_handle
+	1 mem_wechat_write_handle
+	2 mem_wechat_tx_buffer_ptr
+	2 mem_wechat_rx_buffer_ptr
+	2 mem_wechat_rx_push_data_cb
+	2 mem_wechat_tx_nSeq
+	2 mem_wechat_tx_len
+	2 mem_wechat_tx_address
+	2 mem_wechat_rx_len
+	2 mem_wechat_rx_address
+	1 mem_wechat_receive_push_data
+
+)
+
+xmemalloc(
+
+/*
+wechat Air sync protocol parse
+uint8_t indication handle
+uint8_t write handle
+
+*/
+2 mem_le_wechat_air_sync_ptr
+
+)
+
+(
+17 WECHAT_AIR_SYNC_STRUCT_SIZE
+)
+
+(
+0x0000 ECI_NONE
+0x1127 ECI_REQ_AUTH
+0x1227 ECI_REQ_SEND_DATA
+0x1327 ECI_REQ_INIT
+0x214E ECI_RESPONSE_AUTH
+0x224E ECI_RESPONSE_SEND_DATA
+0x234E ECI_RESPONSE_INIT
+0x3175 ECI_PUSH_RECEIVE_DATA
+0x3275 ECI_PUSH_SWITCH_VIEW
+0x3375 ECI_PUSH_SWITCH_BACKGROUD
+0x2F75 ECI_ERR_DECODE
+)
+
+(
+2 ECI_REQ_INIT_MESSAGE_LENGTH
+18 ECI_REQ_AUTH_MESSAGE_LENGTH
+)
+
+(
+0xFE WECHAT_HEAD_MAGIC_NUMBER
+0x01 WECAHT_HEAD_VERSION
+0x01FE WECHAT_RX_HEAD
+)
+
+(
+//push data
+0x0a 	TAG_RecvDataPush_BasePush
+0x12	TAG_RecvDataPush_Data
+0x18	TAG_RecvDataPush_Type
+)
+
+
+(
+0 WECHAT_PROTOCOL_MESSAGE_B_MAGIC_NUMBER
+1 WECHAT_PROTOCOL_MESSAGE_B_VER
+2 WECHAT_PROTOCOL_MESSAGE_N_LENGTH
+4 WECHAT_PROTOCOL_MESSAGE_N_CMD_ID
+6 WECHAT_PROTOCOL_MESSAGE_N_SEQ
+8 WECHAT_PROTOCOL_MESSAGE_PAYLOAD
+)
+
+endif
+
Index: format/ble_protocol_stack/le_l2cap_signalling.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_l2cap_signalling.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_l2cap_signalling.format	(working copy)
@@ -0,0 +1,14 @@
+
+/* L2CAP Signaling OPCODE */
+(
+0x12 L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST
+0x13 L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE
+)
+
+(
+0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
+)
+
+
+
Index: format/ble_protocol_stack/le_l2cap_smp.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_l2cap_smp.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_l2cap_smp.format	(working copy)
@@ -0,0 +1,113 @@
+
+
+(
+0x00 LE_PAIRING_MODE_NONE
+0x01 LE_PAIRING_MODE_LAGACY_JUSTWORK
+0x02 LE_PAIRING_MODE_LAGACY_PASSKEY
+0x04 LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT
+0x81 LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82 LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0x83 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+0x84 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT
+
+7 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+)
+
+
+(
+0 FLAG_IOCAP_DISPLAYONLY
+1 FLAG_IOCAP_DISPLAYYESNO
+2 FLAG_IOCAP_KEYBOARDONLY
+3 FLAG_IOCAP_NOINPUTNOOUTPUT
+4 FLAG_IOCAP_KEYBOARDDISPLAY
+
+0x00 FLAG_OOB_DATA_FLAG_NO
+)
+
+(
+0x00 FLAG_LE_NO_BONDING_NO_MITM
+0x01 FLAG_LE_BONDING_NO_MITM
+0x04 FLAG_LE_NO_BONDING_MITM
+0x05 FLAG_LE_BONDING_MITM
+0x09 FLAG_LE_BONDING_NO_MITM_SECURE
+0x0D FLAG_LE_BONDING_MITM_SECURE
+
+2 LE_AUTH_MITM_BIT
+3 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
+)
+
+//mem_le_pairing_state
+(
+0 FLAG_LE_PAIRING_NULL
+1 FLAG_LE_PAIRING_START
+2 FLAG_LE_PAIRING_SEND_RECURITY_REQ
+3 FLAG_LE_PAIRING_RCV_PAIRING_REQ
+4 FLAG_LE_PAIRING_WAIT_STK_GENERATION
+5 FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM
+6 FLAG_LE_PAIRING_SEND_PAIRING_CONFIRM
+7 FLAG_LE_PAIRING_RECEIVE_PAIRING_RANDOM
+8 FLAG_LE_PAIRING_SEND_PAIRING_RANDOM
+9 FLAG_LE_PAIRING_AFTER_AUTH
+10 FLAG_LE_PAIRING_SEND_START_ENC_RSP
+11 FLAG_LE_PARING_SEND_ENC_INFORMATION
+12 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
+13 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
+0xff FLAG_LE_PAIRING_END
+)
+
+/* Security Manager Protocol Code */
+(
+0x01 SMP_PAIRING_REQUEST
+0x02 SMP_PAIRING_RESPONSE
+0x03 SMP_PAIRING_CONFIRM
+0x04 SMP_PAIRING_RANDOM
+0x05 SMP_PAIRING_FAILED
+0x06 SMP_ENCRYPTION_INFORMATION
+0x07 SMP_MASTER_IDENTIFICATION
+0x08 SMP_IDENTITY_INFORMATION
+0x09 SMP_IDENTITY_ADDRESS_INFORMATION
+0x0A SMP_SIGNING_INFORMATION
+0x0B SMP_SECURITY_REQUEST
+0x0c SMP_PAIRING_PUBLIC_KEY
+0x0d SMP_PAIRING_DHKEY_CHECK
+)
+
+(// pairing failed reason
+0x00 PAIRING_FAILED_RESERVED
+0X01 PAIRING_FAILED_PASSKEY_ENTRY_FAILED
+0X02 PAIRING_FAILED_OOB_NOT_AVAILABLE
+0X03 PAIRING_FAILED_AUTHENTICATION_REQUIRE
+0X04 PAIRING_FAILED_CONFIRM_VALUE_FAILED
+0X05 PAIRING_FAILED_PAIRING_NOT_SUPPORTED
+0X06 PAIRING_FAILED_ENCRYPTION_KEY_SIZE
+0X07 PAIRING_FAILED_COMMAND_NOT_SUPPORTED
+0X08 PAIRING_FAILED_UNSPECIFIED_REASON
+0X09 PAIRING_FAILED_REPEATED_ATTEMPTS
+0X0A PAIRING_FAILED_INVALID_PARAMETERS
+0X0B PAIRING_FAILED_DHKEY_CHECK_FAILED
+0X0C PAIRING_FAILED_NUMERIC_COMPARISON_FAILED
+0X0D PAIRING_FAILED_BR_EDR_PAIRING_IN_PROGRESS
+0X0E PAIRING_FAILED_KEY_DERIVATION_GENERATION_NOT_ALLOWED
+)
+
+/*LE secure connect state */
+(
+0x00 LE_SC_STAT_NULL
+0x01 LE_SC_STAT_RECEIVE_PUBLIC_KEY
+0x02 LE_SC_STAT_WAIT_SEND_PUBLIC_KEY
+0x03 LE_SC_STAT_SEND_PUBLIC_KEY
+0x04 LE_SC_STAT_RECEIVE_RANDOM
+0x05 LE_SC_STAT_SEND_RANDOM
+0x06 LE_SC_STAT_RECEIVE_DHKEY
+0x07 LE_SC_STAT_WAIT_CONFIRM_GKEY
+0x08 LE_SC_STAT_PASSKEY_WAIT_CONFIRM
+)
+
+
+(
+0 FLAG_LE_SC_CONFRIM_NULL
+1 FLAG_LE_SC_CONFRIM_GKEY_OK
+)
+
+
+
Index: format/ble_protocol_stack/le_ll.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_ll.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ble_protocol_stack/le_ll.format	(working copy)
@@ -0,0 +1,120 @@
+xmemalloc(
+8 mem_le_local_feature
+1 mem_le_tx_phys
+1 mem_le_rx_phys
+
+2 mem_remote_rx_max_octets
+2 mem_remote_rx_max_time
+2 mem_remote_tx_max_octets
+2 mem_remote_tx_max_time
+2 mem_local_rx_max_octets
+2 mem_local_rx_max_time
+2 mem_local_tx_max_octets
+2 mem_local_tx_max_time
+
+)
+
+/* LE control packet type */
+(
+0x00 LL_CONNECTION_UPDATE_IND
+0x01 LL_CHANNEL_MAP_IND
+0x02 LL_TERMINATE_IND
+0x03 LL_ENC_REQ
+0x04 LL_ENC_RSP
+0x05 LL_START_ENC_REQ
+0x06 LL_START_ENC_RSP
+0x07 LL_UNKNOWN_RSP
+0x08 LL_FEATURE_REQ
+0x09 LL_FEATURE_RSP
+0x0A LL_PAUSE_ENC_REQ
+0x0B LL_PAUSE_ENC_RSP
+0x0C LL_VERSION_IND
+0x0D LL_REJECT_IND
+0x0E LL_SLAVE_FEATURE_REQ
+0x0F LL_CONNECTION_PARAM_REQ
+0x10 LL_CONNECTION_PARAM_RSP
+0x11 LL_REJECT_IND_EXT
+0x12 LL_PING_REQ
+0x13 LL_PING_RSP
+0x14 LL_LENGTH_REQ
+0x15 LL_LENGTH_RSP
+0x16 LL_PHY_REQ
+0x17 LL_PHY_RSP
+0x18 LL_PHY_UPDATE_IND
+0x19 LL_MIN_USED_CHANNELS_IND
+0x1A LL_CTE_REQ
+0x1B LL_CTE_RSP
+0x1C LL_PERIODIC_SYNC_IND
+0x1D LL_CLOCK_ACCURACY_REQ
+0x1E LL_CLOCK_ACCURACY_RSP
+0x1F LL_CIS_REQ
+0x20 LL_CIS_RSP
+0x21 LL_CIS_IND
+0x22 LL_CIS_TERMINATE_IND
+0x23 LL_POWER_CONTROL_REQ
+0x24 LL_POWER_CONTROL_RSP
+0x25 LL_POWER_CHANGE_IND
+)
+
+
+
+(//bit map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0 BIT_LL_FEATURE_LE_ENCRYPTION
+1 BIT_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+2 BIT_LL_FEATURE_EXTENDED_REJECT_INDICATION
+3 BIT_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+4 BIT_LL_FEATURE_LE_PING
+5 BIT_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+6 BIT_LL_FEATURE_LL_PRIVACY
+7 BIT_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+8 BIT_LL_FEATURE_LE_2M_PHY
+9 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+10 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+11 BIT_LL_FEATURE_LE_CODED_PHY
+12 BIT_LL_FEATURE_LE_EXTENDED_ADVERTISING
+13 BIT_LL_FEATURE_LE_PERIODIC_ADVERTISING
+14 BIT_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+15 BIT_LL_FEATURE_LE_POWER_CLASS_1
+16 BIT_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+(//function map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0x1 FUN_LL_FEATURE_LE_ENCRYPTION
+0x2 FUN_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+0x4 FUN_LL_FEATURE_EXTENDED_REJECT_INDICATION
+0x8 FUN_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+0x10 FUN_LL_FEATURE_LE_PING
+0x20 FUN_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+0x40 FUN_LL_FEATURE_LL_PRIVACY
+0x80 FUN_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+0x100 FUN_LL_FEATURE_LE_2M_PHY
+0x200 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+0x400 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+0x800 FUN_LL_FEATURE_LE_CODED_PHY
+0x1000 FUN_LL_FEATURE_LE_EXTENDED_ADVERTISING
+0x2000 FUN_LL_FEATURE_LE_PERIODIC_ADVERTISING
+0x4000 FUN_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+0x8000 FUN_LL_FEATURE_LE_POWER_CLASS_1
+0x10000 FUN_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+
+(//bit of mem_le_tx_phys and mem_le_rx_phys
+0x00 BIT_LE_1M_PHY
+0x01 BIT_LE_2M_PHY
+0x02 BIT_LE_CODED_PHY
+
+0x02 BIT_LE_CODED_PHY_S2
+0x07 BIT_LE_CODED_PHY_S8
+)
+
+(//map of mem_le_tx_phys and mem_le_rx_phys
+0x01 FUN_TX_LL_1M_PHY
+0x02 FUN_TX_LL_2M_PHY
+0x04 FUN_TX_LL_CODED_PHY
+
+0x01 FUN_RX_LL_1M_PHY
+0x02 FUN_RX_LL_2M_PHY
+0x04 FUN_RX_LL_CODED_PHY
+)
+
Index: format/bt.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/bt.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/bt.format	(working copy)
@@ -0,0 +1,650 @@
+
+	width = 32
+	const length = 12000
+
+	/* ========= memory ============== */
+memalloc(
+ 1 mem_le_adv_transmit
+1 mem_le_adv_waitcnt
+1 mem_le_adv_rcv
+1 mem_le_req_rcv
+1 mem_le_scanrsp_rcv
+1 mem_le_conn_rcv
+
+1 mem_current_context
+1 mem_le_ch_mapped
+1 mem_last_freq
+1 mem_rssi
+2 mem_context_ptr
+2 mem_rx_window
+
+
+/* lpo related */
+1 mem_lpm_adjust
+6 mem_sync_clke
+1 mem_lpm_current_mult
+12 mem_gpio_wakeup_cfg
+
+
+4 mem_clkn_bt
+4 mem_clke_bt
+4 mem_dpll_clkn
+
+2 mem_slot_offset
+
+
+1 mem_loadcode_times
+1 mem_select_list_item
+0 mem_temp_reconn_record
+1 mem_record_bt_mode
+2 mem_list_item_ptr
+
+1 mem_rssi_hex
+
+
+2 mem_param_tx_setup
+2 mem_param_rf_setup
+2 mem_param_conn_access
+2 mem_param_clke_cal
+2 mem_param_pll_setup
+2 mem_param_rx_setup
+2 mem_param_dpll_start_delay
+2 mem_param_rt_rthalfslot
+2 mem_param_clke_cal_le_1m
+2 mem_param_clke_cal_le_2m
+2 mem_param_clke_cal_le_coded
+
+)
+
+memalloc test (
+/* test related */
+2 mem_le_test_sync
+2 mem_le_test_pcnt
+2 mem_tst_pktcnt_crc
+2 mem_tst_pktcnt_dmh
+3 mem_tmp_buffer_head
+80 mem_tmp_buffer
+
+)
+
+
+xmemalloc(
+/* patch enable 0x4000-0x403f  */
+
+1 mem_patch00
+1 mem_patch01
+1 mem_patch02
+1 mem_patch03
+1 mem_patch04
+1 mem_patch05
+1 mem_patch06
+1 mem_patch07
+1 mem_patch08
+1 mem_patch09
+1 mem_patch0a
+1 mem_patch0b
+1 mem_patch0c
+1 mem_patch0d
+1 mem_patch0e
+1 mem_patch0f
+1 mem_patch10
+1 mem_patch11
+1 mem_patch12
+1 mem_patch13
+1 mem_patch14
+1 mem_patch15
+1 mem_patch16
+1 mem_patch17
+1 mem_patch18
+1 mem_patch19
+1 mem_patch1a
+1 mem_patch1b
+1 mem_patch1c
+1 mem_patch1d
+1 mem_patch1e
+1 mem_patch1f
+1 mem_patch20
+1 mem_patch21
+1 mem_patch22
+1 mem_patch23
+1 mem_patch24
+1 mem_patch25
+1 mem_patch26
+1 mem_patch27
+1 mem_patch28
+1 mem_patch29
+1 mem_patch2a
+1 mem_patch2b
+1 mem_patch2c
+1 mem_patch2d
+1 mem_patch2e
+1 mem_patch2f
+1 mem_patch30
+1 mem_patch31
+1 mem_patch32
+1 mem_patch33
+1 mem_patch34
+1 mem_patch35
+1 mem_patch36
+1 mem_patch37
+1 mem_patch38
+1 mem_patch39
+1 mem_patch3a
+1 mem_patch3b
+1 mem_patch3c
+1 mem_patch3d
+1 mem_patch3e
+1 mem_patch3f
+
+	/* 3 device contexts  */
+83 mem_context
+1 mem_current_amaddr
+1 mem_lpm_mode
+4 mem_last_clkn
+
+	/* parameters */
+1 mem_fcomp_div
+2 mem_rx_window_sniff
+2 mem_rf_init_ptr
+
+
+1 mem_rf_rccal
+1 mem_handle_num
+
+
+	/* lpm related */
+2 mem_chip_functions
+2 mem_lpm_wake_lock
+2 mem_lpm_interval
+1 mem_lpm_overhead
+1 mem_lpm_hibernate_switch
+1 mem_sniff_unint_lost
+4 mem_sleep_counter   
+4 mem_sleep_counter_all
+6 mem_sleep_clkn
+3 mem_sniff_rcv
+3 mem_sniff_lost
+3 mem_clks_per_lpo
+
+1 mem_lpm_mult
+1 mem_lpm_mult_timeout
+1 mem_lpm_mult_cnt
+
+1 mem_lpm_xtalcnt
+1 mem_lpm_buckcnt
+1 mem_lpm_ldocnt
+1 mem_lpm_isogate
+1 mem_lpm_isogate_stage2
+1 mem_lpm_isogate_final
+1 mem_lpm_ldo_sel
+1 mem_lpm_sysctl
+1 mem_lpm_hv_sel
+
+24 mem_saved_gpio	 
+3 mem_saved_gsel
+8 mem_saved_mark
+1 mem_saved_spidctrl
+2 mem_patch_ptr
+2 mem_patch_len
+
+32 mem_timers
+
+
+/* HCI */
+1 mem_hci_cmd
+1 mem_hci_conn_handle
+3 mem_hci_plap
+1 mem_hci_puap
+2 mem_hci_pnap
+
+
+1 mem_xtal_c_sel
+24 mem_ghpc_table
+12 mem_aac_res_table
+1 mem_tx_power
+1 mem_modem_rssi
+1 mem_gain_fix
+3 mem_gain_table
+1 mem_gain_second_agc_en
+1 mem_system_clk
+
+ifdef DEBUG_RF_INIT
+18 mem_rf_init_data
+endif
+1 mem_otp_charge_pump_x
+1 mem_otp_dpll_ibais_x
+
+1 mem_xtal_freq
+)
+
+(//mem_system_clk
+12 SYSTEM_CLK_12M
+24 SYSTEM_CLK_24M
+)
+
+(//bluetooth tx power
+0x00 TX_POWER_0DB
+0x03 TX_POWER_3DB
+0x05 TX_POWER_5DB
+0x06 TX_POWER_6DB
+0x07 TX_POWER_7DB
+0x0a TX_POWER_10DB
+
+0x83 TX_POWER_F3DB
+0x85 TX_POWER_F5DB
+0x8a TX_POWER_F10DB
+0x94 TX_POWER_F20DB
+0x9e TX_POWER_F30DB
+0xaa TX_POWER_FACTORY
+)
+
+
+	/* context */
+(
+0x01 coffset_mode
+0x02 coffset_tsniff
+0x04 coffset_sniff_anchor
+0x08 coffset_clk_offset
+0x0e coffset_rx_window
+0x10 coffset_plap
+0x16 coffset_conn_handle
+0x17 coffset_arq
+	/* 3.0 only */
+	
+	/* le only */
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+0x1c coffset_le_supervision_timer
+0x20 coffset_le_instant
+0x22 coffset_le_channels
+0x23 coffset_le_op
+0x24 coffset_le_access
+0x28 coffset_le_crcinit
+0x2b coffset_le_window_size
+0x2c coffset_le_slave_latency
+0x2e coffset_le_slave_superto
+0x30 coffset_le_channel_map
+0x35 coffset_le_rx_phy
+0x36 coffset_le_tx_phy
+0x37 coffset_le_new_map
+0x37 coffset_le_new_m2s_phy
+0x38 coffset_le_new_s2m_phy
+0x37 coffest_le_new_transmitwindowsize
+0x38 coffest_le_new_transmitwindowoffset
+0x3a coffest_le_new_conninterval
+0x3c coffest_le_new_connslavelatency
+0x3e coffest_le_new_connsupervisiontimeout
+0x40 coffset_le_sk
+0x50 coffset_le_peer_sca
+0x53 coffset_le_transmit_window
+	
+83 context_size
+1 context_num
+)
+
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+
+/* ========= parameters ============== */
+(
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+
+/* 24Mhz clock setting */
+ifdef CLK24M
+0x1c86 param_tx_setup
+0x0c00 param_rf_setup
+0x0c00 param_conn_access 
+0x1a00 param_rx_setup
+0x0776 param_clke_cal
+0x0a00 param_pll_setup
+4000 param_dpll_start_delay
+7500 param_halfclk
+60084 param_halfclk_neg
+-60084 param_halfclk_neg1
+else
+/* 12Mhz clock setting */
+0x0e43 param_tx_setup
+0x0600 param_rf_setup
+0x0600 param_conn_access 
+0x03bb param_clke_cal
+0x0500 param_pll_setup		// 120 is minimum
+0x0d00 param_rx_setup	// 114us before sync
+2000 param_dpll_start_delay
+3750 param_rt_rthalfslot
+
+480 param_clke_cal_le_1m	//preamble(1B) & access address(4B) time (1+4)*8*1 * 12
+288 	param_clke_cal_le_2m	//preamble(2B) & access address(4B) time (1+4)*8*1 * 12
+282 param_clke_cal_le_coded	//preamble(80us) & access address(256us)-312.5us(0.5slot)
+endif
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+-1 param_hibernate_clks
+
+ifdef SIM
+1 param_chgpump_delay_100us
+6 param_chgpump_delay_500us
+12 param_chgpump_delay_1ms
+else
+1000 param_chgpump_delay_100us
+6000 param_chgpump_delay_500us
+12000 param_chgpump_delay_1ms
+endif
+
+
+0x000a04 param_lmp_version
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+39 param_fcomp_div
+2 param_fcomp_mul
+
+)
+
+
+/* ========== flag[6] =============== */
+(
+0        always        /* always 1 */
+1        true          /* set/rstn by verify,compare,icompare (true) */
+2        positive      /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output >= 0 */
+3        timeout       /* read only, the timeout from timers */
+4        init_adpcm
+5        zero          /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output == 0 */
+6        crc_failed    /* level, cleared by hop_start */
+7        enable_white  /* outside mux decide whether to load bt_clk or response_X */
+8        enable_parity /* level */
+9        enable_crc    /* level */
+10       enable_hec    /* level */
+11       decode_fec1   /* level */
+12       decode_fec2   /* level */
+13       decode_fec0   /* level */
+14       encrypt       /* level */
+15       crc16       /* for caculate ccitt crc16 */
+16       swfine	/* =0 stop_watch count based on oneslot =1 on 1 clock */
+20       rqst_freq    /* pulse, to start calculating frequency */
+21       recalc        /* pulse, to recalculate the fhs_parity */
+22       init_encrypt  /* pulse, issued to initialize encrption */
+23       mhalfbnd    /* half slot boundary of clke_rt, or when clke_bt[0] toggles */
+24       sync          /* sync found as a result of correlation,set/rstn by correlate opcode */
+25       user10    /* user10 */
+26       kc_p_activate  /* pulse to recalc the kc_p */
+27       encode_fec1   /* level */
+28       encode_fec2   /* level */
+29       encode_fec0   /* level */
+30       packet_end    /* pulse */
+32       is_tx         /* level */
+33       is_rx         /* level */
+34       halfslot     /* pulse, read only, when clkn_bt[0] toggles */
+35       oneslot      /* pulse, read only, when clkn_bt[1] toggles */
+36       mslotbnd     /* pulse, read only, when clke_bt[1] toggles */
+37       expire       /* level, read only, when selected clock source exceed timeup value */
+38       meet         /* level, read only, when selected clock source meet timeup value */
+39       tx_clear     /* level, read only, indicate tx pipe is cleared */
+40       user         /* user0 */
+41       master        /* user1 */
+42       rxon         /* user2 */
+43       wake           /* user3 */
+44       user2        /* user4 */
+45       match         /* user5 */
+46       attempt        /* user6 */
+47       user3          /* user7 */
+48       clknt         /* user8 */
+49	   user7 	/* user9 */
+50       synchronize   /* synchronize lpo and regular version of the clock */
+51       lpo_edge  /* read only, 3 clocks after risling edge of lpo clock */
+52       blank         /* C0 only, means pdata == 0 */
+53       modone          /* set divide operation is done */
+55       aes_ready	/* set when aes is ok */
+56       encode_fec3   /* level */
+57       dewhiten_code_calc   /* dewhiten code calculate */
+58       lr_s2en       /* long range s2 enable */
+60	   ble_coded_info	//1:s2 0:s8
+63       never         /* read only, always 0 */
+)
+
+default flag = always
+
+/* ========== reg[6] =============== */
+(
+0        mark   /* for keeping strobes, more permanent */
+1        type   /* save and verify during rx */     /* rw */
+2        temp   /* general purpose register, 64 bits */
+3        contu  /* contr uart */
+3	 contru	/*contr uart*/
+3	 contwu	/*contw uart*/
+4        am_addr      /* verify during rx, read and send during tx */ /* ro */
+5        contw        /* last mem_addr during write */
+6        contr        /* last mem_addr during read */
+7        queue    /* the index of qset*,qisolate* commands, ie, if queue = 3, qset/qisolate operate on bit3 */
+8        debug    /* can be wired out for observation */
+9        access   /* the 72 bit access word */
+10       contus   /* contw uart */
+11       timeup        /* when does certain counter expire */
+12       pwindow       /* bit 71-61 of pdata; because on rx, bits shifts in from 71 down */
+13       fhs_parity    /* re-gernated based on bt_adr( {nap,uap,lap} ) when recalc flag is pulsed */
+14       white_init    /* init value of the whitening */
+15       crc24_init        /* init crc24 lfsr, 24 bits */
+16       contue    /* set interrupts, 40 bits */
+17       rega          /* general purpose register, 32 bits */
+18       regb          /* general purpose register, 32 bits */
+19       regc          /* general purpose register, 17 bits */
+20       regab         /* concat of {rega,regb}, thus 64 bits */
+21       radio_ctrl   /* radio i/f direct i/o ctrl, check following "radio_ctrl" section */
+
+23       freq_index   /* 7 bit read only */
+24       regd    /* 32 bit regext[1,0] */
+25       clkn              /* {clkn_bt, clkn_rt} */
+26       clke              /* {clke_bt, clke_rt} */
+27       stop_watch		
+28       fhs_misc   /* SR, SP, pscan mode */
+29       fhs_class  /* class field in fhs */
+30       fhs0   /* read only, bit 0-71 of fhs word */
+31       fhs1   /* read only, bit 72-142 of fhs word */
+32       bt_adr /* r/w, the bt_addr to access gen and freq hopping, contain only lap and uap */
+33       bt_clk /* r/w, the bt_clk for freq hopping */
+34       clkn_bt  /* read only, native bluetooth clock, free running 3.2KHz  or controlled by RTHALFSLOT register */
+35       clkn_rt  /* read only, native realtime clock, free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+36       freq_mode
+37       xin   /* x parameter, read only */
+38       N_tx_slot /* the N factor in equations for Xi,Xp,Xprm,Xprs */
+39 	   auxcnt
+40       clke_bt  /* r/w,  external bluetooth clock , free running 3.2KHz or controlled by RTHALFSLOT register */
+41       clke_rt  /* r/w,  external realtime clock, , free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+42       branch_addr	/* last branch address */
+43       rege         /* 64bit regext[3,2] */
+44       lap
+45       uap
+46       nap         
+47       regext		/* r/w extended 12x32bit registers,  indexed by regext_index */
+48       alarm             /* r/w, lpo wake up time, this is also how lpo and current clock keep sync */
+49       lpo_time          /* read only, this is the value to be copied back to clkn/clke after wakeup */
+50       kc_ls             /* secret key,                71: 0 */
+51       kc_ms             /* secret key,               127:72 */
+52       g1l               /* encryption length                */
+53		mask3ff		/* for mask 0x3ff operation */
+54       aes_ctrl		
+55       regf			/* 64bit regext[5,4] */
+56       regext_index   /* index of regext */
+57	     loopcnt
+58      stack			/* current return address */
+59       stack_ptr		/* stack depth */
+61         pc /* direct goto */
+62       null              /* to nowhere */
+63       pdata /* the shift register */
+)
+default reg = pdata
+
+/* regext_index */
+(
+0 regidx_data
+4 regidx_key
+8 regidx_xor
+12 regidx_result
+)
+/* ========== radio_ctrl========= */
+(
+0 TXGFSK
+1 PSK
+2 PSK3M
+3 RESET
+)
+/* assign BPWR = radio_ctrl[0]; */
+/* assign PARAMP = radio_ctrl[1]; */
+/* assign XTALPU = radio_ctrl[2]; */
+/* assign SYNTHPU = radio_ctrl[3]; */
+/* assign TXPU = radio_ctrl[4]; */
+/* assign RXPU = radio_ctrl[5]; */
+/* assign SLCTRL = radio_ctrl[6]; */
+/* assign XTALSEL_MUX_SEL = radio_ctrl[7] */
+
+
+/* =========== destination[4] ============== */
+(
+0 bucket
+1 rxf
+2 back
+3 mod
+)
+default dest = bucket
+
+/* =========== source[4] ============= */
+(
+1 txf
+3 demod
+)
+default source = 0
+
+
+/* ============== mark ============= */
+(
+5  mark_loopback
+9  mark_context
+13 mark_lpm_mult_enable
+14 mark_usb_first_resp
+15 mark_old_packet
+35 mark_isstr
+36 mark_loadcode
+37 mark_ext_patch
+38 mark_24g
+39 mark_24g_rxmode
+40 mark_eeprom_size
+41 mark_ble_tx_md
+42 mark_ble_rx_md
+43 mark_otp_encrypt
+44 mark_temp
+45 mark_ble_2M
+46 mark_ble_lr_s8
+47 mark_ble_lr
+48 mark_ble_crc_fail
+50 mark_ble_encryption
+51 mark_first_packet
+)
+
+(
+1 reload_type_otp
+2 reload_type_spi
+3 reload_type_iic
+)
+
+
+/* ============== soft timers ============== */
+(
+0 le_adv_interval_timer
+2 le_scan_interval_timer
+9 key_scan_timer
+7 smp_pairing_timer
+11  ui_led_blink  
+
+8 G24_TIMER_NODATA
+13 G24_TIMER_MS_BLANK
+12 G24_TIMER_KB_MUL_BLANK
+10 G24_TIMER_KB_SYS_CRTL_BLANK
+14 G24_TIMER_KB_BLANK
+
+1 USB_TIMER_NAK
+15 USB_TIMER_WAKEUP
+)
+
+(
+
+27 hci_cmd_le_create_conn
+29 hci_cmd_le_disconn
+30 hci_cmd_le_att_req
+)
+
+
+
+/* ============== mode ==========*/
+(
+0 mode_le
+1 mode_master
+)
+
+(
+0 state_inconn
+1 state_insniff
+)
+(
+3 op_disconn
+)
+
+
+
+//mem_lpm_wake_lock
+(
+0 wake_lock_ble_rx
+1 wake_lock_ble_tx
+
+3 wake_lock_key_press
+4 wake_lock_ble_tx_patch
+5 wake_lock_uart_tx
+6 wake_lock_uart_rx
+7 wake_lock_button
+8 wake_lock_cmd
+9 wake_lock_app
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+
+(//mem_fcomp_div
+0x18 XTAL_24M
+0x10 XTAL_16M
+)
+
+( //verion
+6 BLUETOOTH_CORE_SPECIFICATION_4_0
+7 BLUETOOTH_CORE_SPECIFICATION_4_1
+8 BLUETOOTH_CORE_SPECIFICATION_4_2
+9 BLUETOOTH_CORE_SPECIFICATION_5_0
+10 BLUETOOTH_CORE_SPECIFICATION_5_1
+)
+
+(
+0x050e COMPANY_ID_YICHIP
+)
+
+(
+0x33  REC_3_MODE
+0x34  REC_4_MODE
+0x35  REC_4_MODE_STATIC_ADDRESS
+0x36  REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS
+0x37  REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS
+)
+
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+)
+
Index: format/command.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/command.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/command.format	(working copy)
@@ -0,0 +1,1446 @@
+
+/* Parse Command:
+TX: take bits from tx fifo, jam it into shift and a destination (rf,bucket)
+RX: take bits from demod,  jam it into shift and a destination (acl,sco,bucket) */
+
+/* Inject Command:
+TX: 0 into shift, send tail of shift into a destination (rf,bucket)
+RX: 0 into shift, send tail of shift into a destination (acl,sco,bucket) */
+
+format
+  ! 15 romdat
+  % d0
+  % d1
+  % d2
+  % d3
+  [8] d0
+  [8] d1
+  [8] d2
+  [8] d3
+end
+
+format
+  ! 15 enable   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+ /* High 5 bytes of channel map */
+format
+  ! 15 pulse   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 disable   /* set flag to 0 */
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 set0  /* set selected bit of reg to 0 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 set1  /* set selected bit of reg to 1 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9          /* alu op demux */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflag  /* set selected bit of the reg to the polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 nsetflag  /* set the selected bit of the reg to the opposite polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflip    /* invert the selected bit of the reg */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 10            /* this is alu op */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 0x1f qset1      /* demux the lowest 4 bit of queue and OR it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 1 */
+  [5] opcode
+  [6] 9
+  [6] always
+  [6] reg
+  [9] 0
+end
+  
+format
+  ! 0x1f qset0      /* demux the lowest 4 bit of queue and AND it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 0 */
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f qsetflag   /* set the bit in reg index by queue to same as flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f nqsetflag   /* set the bit in the reg index by queue to opposite of flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 0x1f qsetflip      /* flip the bit in reg index by queue */
+  % reg
+  [5] opcode
+  [6] 10
+  [6] always
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 1 parse       /* take bits out of source (sco_tx,tx_buffer,rx-elas) into pdata and dest (sco_rx,rx_fifo,tx-elas) */
+  % source
+  % dest
+  % immediate
+  [5] opcode
+  [4] source      /* voice, data, demod */
+  [2] 0
+  [6] 0    
+  [2] 0           /* parse or inject */ 
+  [4] dest        /* acl, sco, mod, bucket */
+  [9] immediate   /* number of bits to parse off */
+end
+
+format
+  ! 1 inject      /* shift data from pdata into destination (tx-elas,rx_fifo,sco_rx) */
+  % destination
+  % immediate
+  [5] opcode
+  [4] 0
+  [2] 0
+  [6] 1
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] immediate   /* number of bits to be injected */
+end
+
+format
+  ! 1 iinject
+  % destination
+  % regr
+  [5] opcode
+  [6] regr       /* contain the number of bits to inject */
+  [6] 3
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] 0 
+end
+
+format
+  ! 1 stuff  /* automatic parse, stuff_counter decrement on every bit until hits zero */
+  % source
+  % destination
+  [5] opcode
+  [4] source
+  [2] 0
+  [6] 2
+  [2] 0
+  [4] destination
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 force
+  % immediate
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] immediate
+end
+
+format    /* force whatever is on shift_reg to regsiters */
+  ! 0x13 iforce
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 increase
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 1    /* alu operation add */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 pincrease
+  % immediate
+  [5] opcode
+  [6] -1  /* pdata */
+  [6] 1   /* alu add */
+  [6] -1  /* back to pdata */
+  [9] immediate
+end
+
+format    /* force immediate value into registers */
+  ! 3 and_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 and
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] immediate
+end
+  
+format
+  ! 0x13 iand    /* pdata & regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] 0
+end
+  
+
+format    /* and whatever is in shiftreg with reg */
+  ! 0x13 iand_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 or_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 or
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 ior
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 ior_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 skip_to   /* jump to location stored in reg */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] rom_addr
+  [9] 0
+end
+
+format
+  ! 3 copy
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 4   /* alu operation copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 deposit   /* copy the register content thru alu to shift register, not prealigned like preload */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] -1  /* pdata */
+  [9] 0
+end
+
+format
+  ! 3 icopy     /* copy the shift register lsb content directly to register, not aligned */
+  % regw
+  [5] opcode
+  [6] -1  /* pdata */
+  [6]  4  /* alu copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 add
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 iadd       /* regr + pdata -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 sub          /* immediate - regr -> regw */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 isub       /* pdata - regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 flip
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 iflip  /* use shift register as immediate to do xor */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 xor
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 3 xor_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 ixor  /* pdata xor regr and store result in regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 invert
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 8
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 pinvert    /* invert pdata into itself */
+  [5] opcode
+  [6] -1
+  [6] 8
+  [6] -1
+  [9] 0
+end
+
+format
+  ! 3 div                 /* regr div immediate div */
+  % reg
+  % immediate
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 idiv           /* pdata div regr data ready at most after 41 nops */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 0x13 idiv48           /* pdata div regr data 48bit */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 17                   /* generate diven pulse to div */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 remainder            /* harvest div remainder */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 14
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 quotient             /* harvest div quotient */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 15
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 6
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 22
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 18
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 35
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 25
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 34
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift32
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 30
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 7
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 23
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 26
+  [6] regw
+  [9] 0
+end
+
+  
+format
+  ! 3 lshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 19
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 36
+  [6] regw
+  [9] 0
+end
+  
+
+format
+  ! 3 lshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 32
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 bcrc         // calculate regr's byte crc value into pdata
+  % regr
+  [5] opcode
+  [6] regr
+  [6] 24
+  [6] 63
+  [9] 0
+end
+
+
+format
+  ! 3 random               /* random number into regw */
+  % reg
+  [5] opcode
+  [6] 0
+  [6] 20
+  [6] reg
+  [9] 0
+end
+
+format                     /* bit reverse within a byte */
+  ! 3 reverse
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 27
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 priority    /* priority encode reg into regw, lsb is the top priority, ie, priority(8'b00010000) = 4 */
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 21
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 7 setsect   /* set a section of pdata */
+  % section    /* 0 sets 17:0 of pdata with set_data, 1 sets 35:18, 2 sets 53:36, 3 sets 71:54 */
+  % set_data
+  [5] opcode
+  [7] 0
+  [2] section
+  [18] set_data
+end
+
+format
+  ! 10 preload   /* load stuff into pdata according to fhs format, check us.v */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 0
+  [6] -1
+  [9] 0
+end
+
+format  /* load register with pdata content, according to fhs format, check us.v */
+  ! 10 ialigned   /* all bits are in position */
+  % regw
+  [5] opcode
+  [6] -1
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format  /* load register to another according to fhs format */
+  ! 10 aligned
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 4 branch
+  % addr
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 call
+  % addr
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 rtn
+  % flag
+  [5] opcode
+  [6] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 0x0d fetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d fetcht          /* read from memory, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetch         /* read from memory, data into pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 63
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x1d ifetcht         /* read from memory, data into temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 2
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x0c store          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c storet          /* write to memory, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istore        /* write pdata to memory, address from regaddr */
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c istoret        /* write temp to memory, address from regaddr */
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 2            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d crc         // read from memory, count from loopcnt, put crc result into pdata 
+  % addr
+  [5] opcode
+  [6] 63
+  [6] 0
+  [15] addr
+end
+
+format
+  ! 0x1d icrc         /* read from memory, address from reg, count from loopcnt, put crc result into pdata */
+  % reg
+  [5] opcode
+  [6] 63
+  [15] 0
+  [6] reg
+end
+
+
+format
+  ! 0x0c storer          /* write reg to memory, address from immediate then mem_ptr */
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+
+format
+  ! 0x1c istorer        /* write regr to memory, address from regaddr */
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x1c lstorer        /* write regr to memory, address from regaddr, length from loopcnt */
+  % regr
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstore        /* write pdata to memory, address from regaddr, length from loopcnt */
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstorew        /* 32bit write pdata to memory, address from regaddr, length from loopcnt */
+  % regaddr
+  [5] opcode
+  [6] 63
+  [6] 42
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d fetchr          /* read reg from memory, address from immediate then mem_ptr */
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetchr        /* read regr from memory, address from regaddr */
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+
+
+format
+  ! 0x0e jam
+  % immediate
+  % addr
+  [5] opcode
+  [3] 0
+  [16] addr
+  [8] immediate
+end
+
+format			/* 0x242... */
+  ! 4 nbranch
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 ncall
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 nrtn
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 4 nop
+  % addr  /* no-op for addr+2 clocks */
+  [5] opcode
+  [6] 0     
+  [6] 0     /* always */ 
+  [15] addr
+end
+
+format
+  ! 4 clear_stack
+  [5] opcode
+  [6] 4
+  [6] 0    /* always */
+  [15] 0
+end
+
+format
+  ! 6 until
+  % reg
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 1
+  [9] 0
+end
+  
+format
+  ! 6 correlate   /* quit if 1. flag is true 2, regr time up 3, found sync,(cond_true) */
+  % reg          /* expire counter to check against */
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 2           /* correlate */
+  [9] 0           
+end
+
+format
+  ! 5 compare   /* sets cond flag,  if reg equals immediate */
+  % immediate
+  % reg
+  % mask
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] immediate
+end
+
+format
+  ! 0x15 icompare   /* sets cond flag,  if reg equals pdata */
+  % mask
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] 0
+end
+
+format   /* sets cond. flag, if reg equals LS half of shift reg with MS half of reg being mask */
+  ! 5 iverify
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 2
+  [18] 0
+end
+
+format
+  ! 0x15 qisolate1
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] -1
+end
+
+format
+  ! 0x15 qisolate0
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] 0
+end
+
+	/* REVAB bug: cannot access bit above 35 */
+format
+  ! 5 isolate1
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] -1
+  [9] addr
+end
+
+format
+  ! 5 isolate0
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] 0
+  [9] addr
+end
+
+format
+  ! 11 setarg
+  % immediate
+  [5] opcode
+  [27] immediate
+end
+
+format
+  ! 0x1b arg
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [21] immediate
+end
+
+  
+format
+  ! 0 sleep
+  [5] opcode
+  [27] 0
+end
+
+format
+  ! 0 snooze
+  [5] opcode
+  [6] -1
+  [21] 0
+end
+
+format
+  ! 0 revision
+  % rev_num
+  [5] opcode
+  [27] rev_num
+end
+
+format
+  ! 0x18 loop   /* branch when loopcnt is NOT zero, and decrease loopcnt */
+  % addr
+  [5] opcode
+  [4] 4
+  [8] 0
+  [15] addr
+end
+
+format
+  ! 0x18 beq   /* branch when pdata is equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 0
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bne   /* branch when pdata is NOT equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 1
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtneq   /* return when pdata is equal to immediate */
+  % imme
+  [5] opcode
+  [4] 2
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnne   /* return when pdata is NOT equal to immediate */
+  % imme
+  [5] opcode
+  [4] 3
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 bbit1   /* branch when pdata's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 5
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bbit0   /* branch when pdata's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 6
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnbit1   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 7
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnbit0   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 8
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 8	bpatch
+  % imme
+  % addr
+  [5] opcode
+  [4] 9
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 8	bpatchx
+  % imme
+  % addr
+  [5] opcode
+  [4] 14
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark1   /* branch when mark's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 10
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark0   /* branch when mark's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 11
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnmark1   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 12
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnmark0   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 13
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 3 mul32                  /* immediate mult regr */ 
+  % regr
+  % immediate                                  
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31           
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 imul32           /* pdata mult regr 32x32=64bit */  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31                   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 imults           /* pdata mult regr 32x32=64bit, signed */  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 16
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 byteswap
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 33
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 shasx          /* SHA256 Sx operation, immediate is Sx */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 28
+  [6] regw
+  [9] immediate
+end
+
+
+format
+  ! 0x13 regexrot 	/* regext[0] <- regext[7], regext[1] <- regext[0], regext[2] <- regext[1] ... */
+  [5] opcode
+  [6] 0
+  [6] 29
+  [6] null
+  [9] 0
+end
+
+format
+  ! 0x13 adpcm         // encode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 43
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 pcm         // decode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 44
+  [6] regw
+  [9] 0
+end
+
+
Index: format/debug.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/debug.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/debug.format	(working copy)
@@ -0,0 +1,6 @@
+xmemalloc(
+
+1 mem_rf_debug_rx_gpio
+1 mem_rf_debug_tx_gpio
+)
+
Index: format/g24_protocol_stack/24g.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g.format	(working copy)
@@ -0,0 +1,80 @@
+
+xmemalloc g24(
+6 mem_24g_lap
+34 mem_24g_rxbuf
+32 mem_24g_txbuf
+36 mem_24g_txpayload
+32 mem_24g_rxpayload
+1 mem_24g_rxdata_length
+1 mem_24g_pid
+1 mem_24g_no_ack
+3 mem_24g_sta_crc
+3 mem_24g_last_crc
+1 mem_24g_sta_pid
+1 mem_24g_last_pid
+1 mem_24g_datalen
+1 mem_24g_data_type
+1 mem_24g_txlen
+2 mem_24g_rx_window
+1 mem_24g_ch
+1 mem_24g_current_ch_number
+4 mem_24g_addr
+4 mem_24g_ch_map1
+4 mem_24g_ch_map2
+4 mem_24g_ch_map3
+4 mem_24g_ch_map4
+4 mem_24g_tx_btclk
+1 mem_24g_interval
+1 mem_24g_interval_min
+1 mem_24g_interval_max
+2 mem_24g_syncword
+1 mem_24g_syncword_crc8
+1 mem_24g_get_syncword_crc8
+1 mem_24g_pair_switch
+8 mem_24g_enter_hibernate
+
+1 mem_24g_rx_phy
+1 mem_24g_tx_phy
+
+1 mem_24g_ch_map_update
+4 mem_24g_ch_update_map1
+4 mem_24g_ch_update_map2
+4 mem_24g_ch_update_map3
+4 mem_24g_ch_update_map4
+
+1 mem_24g_disable_fec1
+1 mem_24g_off_type
+)
+
+
+xmemalloc g24_tx(
+1 mem_rssi_hex_received
+
+)
+
+
+
+(//mem_24g_data_type
+1 TYPE_MS
+2 TYPE_KB
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+
+
+(
+0 ERR_NULL
+1 ERR_SYNC_TO
+2 ERR_HEC
+3 ERR_LR_LEN
+4 ERR_TYPE
+5 ERR_LEN_OVER
+6 ERR_CRC
+)
+
+
+
Index: format/g24_protocol_stack/24g_pair.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_pair.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_pair.format	(working copy)
@@ -0,0 +1,52 @@
+
+
+xmemalloc g24(
+4 mem_24g_pair_addr
+1 mem_24g_pair_ch
+1 mem_24g_pair_tx_power
+
+)
+
+xmemalloc g24_tx(
+1 mem_24g_pair_sm
+1 mem_24g_pair_no_ack
+2 mem_24g_pair_timeout_init
+2 mem_24g_pair_timeout
+2 mem_24g_pair_count
+)
+
+xmemalloc g24_rx(
+1 mem_24g_device1_bind_step
+1 mem_24g_device2_bind_step
+1 mem_24g_bind_device_status
+8 mem_24g_bind_payload
+1 mem_24g_device1_bind_disable
+1 mem_24g_device2_bind_disable
+
+)
+
+(//mem_24g_pair_sm
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+4 STATE_24G_PAIRING_4
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0X14 STATE_24G_PAIRING_4_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+
+(
+0x01 DATATYPE_DEVICE1	//mouse
+0x02 DATATYPE_DEVICE2	//keyboard
+0xaa DATATYPE_BIND		//bind step 1
+0x55 DATATYPE_CONFIG	//bind step 2
+0x22 DATATYPE_OK		//bind step 3
+0xff DATATYPE_ATTEMP	//reconn
+)
+
+(
+5 BIND_MODE_CONTINUE
+)
Index: format/g24_protocol_stack/24g_receiver.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_receiver.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_receiver.format	(working copy)
@@ -0,0 +1,50 @@
+
+
+xmemalloc g24_rx(
+2 mem_cb_24g_receive_process
+2 mem_cb_24g_ackpayload
+2 mem_cb_24g_data_device1
+2 mem_cb_24g_data_device2
+34 mem_24g_rxdata_temp
+1 mem_24g_abort_packet
+4 mem_24g_hop_btclk
+1 mem_24g_hop_interval
+1 mem_24g_pair_mode
+1 mem_24g_ackpayload_enable
+1 mem_24g_hop_packet
+1 mem_24g_mode_switch
+1 mem_24g_nodata_timer_enable
+
+1 mem_24g_mode_init
+1 mem_24g_work_mode
+1 mem_24g_time_slice
+1 mem_24g_self_last_ch
+1 mem_24g_self_ch_number
+1 mem_24g_self_config_ch_once
+1 mem_24g_device1_last_ch
+1 mem_24g_device1_ch_number
+1 mem_24g_device1_config_ch_once
+1 mem_24g_device2_last_ch
+1 mem_24g_device2_ch_number
+1 mem_24g_device2_config_ch_once
+1 mem_24g_led_status
+1 mem_24g_bind_mode_continue
+
+1 mem_tx_power_temp
+
+1 mem_24g_mode_B_S_switch
+1 mem_24g_mode_B_S_switch_init
+2 mem_24g_mode_B_S_switch_cnt
+1 mem_24g_mode_B_S_switch_exit
+1 mem_24g_B_S_time_slice
+1 mem_24g_B_S_mode_switch_disable
+
+1 mem_24g_bind_device_living
+)
+
+
+(
+0 bit_ack_24g
+)
+
+
Index: format/g24_protocol_stack/24g_reconn.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_reconn.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_reconn.format	(working copy)
@@ -0,0 +1,29 @@
+xmemalloc g24_tx(
+2 mem_24g_reconn_timeout_init
+2 mem_24g_reconn_timeout
+2 mem_24g_reconn_count
+1 mem_24g_reconn_type
+1 mem_24g_fast_conn_enable
+4 mem_24g_fast_conn_addr
+4 mem_24g_receiver_addr
+1 mem_24g_fast_conn_temp_ch
+1 mem_24g_receiver_temp_ch
+1 mem_24g_device_temp_ch
+
+)
+
+xmemalloc g24_rx(
+4 mem_24g_transmitter_addr
+4 mem_24g_device1_addr
+4 mem_24g_device2_addr
+
+)
+
+(//mem_24g_reconn_type
+0 DEFAULT_24G_DEVICE
+1 FAST_CONN_AND_RECEIVER
+2 FAST_CONN_AND_3_0_ADDR
+3 RECEIVER_AND_3_0_ADDR
+4 PAIR_AND_3_0_ADDR
+)
+
Index: format/g24_protocol_stack/24g_rssi.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_rssi.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_rssi.format	(working copy)
@@ -0,0 +1,40 @@
+
+xmemalloc g24(
+1 mem_rssi_buff_index
+)
+
+
+xmemalloc g24_tx(
+1 mem_rssi_signal_index
+2 mem_rssi_signal_buf_ptr
+
+)
+
+
+xmemalloc g24_rx(
+1 mem_rssi_noise_avg
+1 mem_rssi_noise_index
+
+1 mem_rssi_noise_self_avg
+1 mem_rssi_noise_device1_avg
+1 mem_rssi_noise_device2_avg
+1 mem_rssi_noise_self_index
+1 mem_rssi_noise_device1_index
+1 mem_rssi_noise_device2_index
+
+2 mem_rssi_noise_buffer_ptr
+2 mem_rssi_noise_self_buffer_ptr
+2 mem_rssi_noise_device1_buffer_ptr
+2 mem_rssi_noise_device2_buffer_ptr
+
+)
+
+
+
+(
+0x50 RSSI_THRESH_NOISE
+)
+
+
+
+
Index: format/g24_protocol_stack/24g_transmitter.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_transmitter.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_transmitter.format	(working copy)
@@ -0,0 +1,67 @@
+
+
+xmemalloc g24_tx(
+2 mem_cb_24g_transmit_data
+2 mem_cb_24g_search_receiver
+2 mem_cb_24g_lpm_before
+2 mem_cb_24g_transmit_short_sleep
+2 mem_cb_24g_transmit_long_sleep
+
+1 mem_24g_conn_sm
+
+1 mem_24g_ensure
+2 mem_24g_txfail_cnt
+1 mem_24g_attempt_fail_flag
+
+1 mem_24g_retry
+1 mem_24g_abort_pac
+1 mem_24g_max_retry
+4 mem_24g_device_addr
+3 mem_24g_short_sleep_set
+8 mem_24g_long_sleep_set
+4 mem_24g_long_sleep_set1
+
+1 mem_24g_pac_index
+1 mem_24g_transmit_by_interrupt
+2 mem_24g_transmit_by_interrupt_exit_count
+2 mem_24g_transmit_by_interrupt_exit_count_init
+2 mem_24g_long_sleep_param_update_timer_init
+2 mem_24g_long_sleep_param_update_timer
+
+1 mem_24g_fast_hop_count
+2 mem_24g_retransmit
+)
+
+(
+1 NO_ACK_24G
+0 WITH_ACK_24G
+)
+
+(//mem_24g_conn_sm
+0 STATE_24G_STOP
+0 STATE_24G_START
+1 STATE_24G_PAIR
+2 STATE_24G_RECONN
+)
+
+(//mem_24g_transmit_by_interrupt
+1 G24_TX_TIMER_INT_ENABLE
+0 G24_TX_TIMER_INT_DISABLE
+)
+
+
+(
+1 OFFSET_DATA_TYPE
+2 OFFSET_LR_DATA_TYPE
+)
+
+(
+0x017700 G24_LONG_SLEEP_STEP1	//8ms
+0x36ee80 G24_LONG_SLEEP_STEP2	//300ms
+0x124f80 G24_LONG_SLEEP_STEP3	//100ms
+63500 G24_8MS_INTERVAL_PARAM		//8ms
+12210 G24_4MS_INTERVAL_PARAM
+)
+
+
+
Index: format/g24_protocol_stack/24g_txpower_ctrl.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_txpower_ctrl.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/g24_protocol_stack/24g_txpower_ctrl.format	(working copy)
@@ -0,0 +1,20 @@
+
+xmemalloc g24_tx(
+1 mem_rssi_avg_received
+1 mem_power_ctrl_level
+1 mem_power_ctrl_pac_succ_cnt
+1 mem_power_ctrl_pac_succ_cnt_init
+
+1 mem_rssi_dis_min_24g
+1 mem_rssi_dis_max_24g
+1 mem_rssi_hex_received_max_value
+
+1 mem_rssi_dis_min_ble
+1 mem_rssi_dis_max_ble
+)
+
+
+(
+50 POWER_CTRL_DECRS_THRESHOLD
+)
+
Index: format/hci.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/hci.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/hci.format	(working copy)
@@ -0,0 +1,520 @@
+
+
+memalloc hci_boot(
+2 mem_hci_opcode_ocf
+1 mem_hci_opcode_ogf
+
+//event head
+1 mem_hci_event_head_type
+1 mem_hci_event_head_event_code
+1 mem_hci_event_para_total_length
+
+//command complete
+1 mem_hci_command_complete_num_hci_command_packet
+0 mem_hci_command_complete_command_opcode
+2 mem_hci_opcode
+0 mem_hci_command_complete_return_parameter
+1 mem_hci_command_complete_return_parameter_status
+0 mem_hci_command_complete_return_parameter_chip_id
+
+)
+
+xmemalloc hci_boot(
+1 mem_hci_uart_tx_gpio
+1 mem_hci_uart_rx_gpio
+1 mem_hci_uart_rts_gpio
+1 mem_hci_uart_cts_gpio
+1 mem_hci_pwm_12mhz_gpio
+)
+
+(
+0x07 HCI_UART_TX_GPIO_NUM
+0x06 HCI_UART_RX_GPIO_NUM
+0x09 HCI_UART_RTS_GPIO_NUM
+0x0a HCI_UART_CTS_GPIO_NUM
+0x0c HCI_PMW_12MHZ_GPIO_NUM
+)
+
+(
+0x00 COMMAND_SUCCEEDED
+0x01 COMMAND_UNKNOWN
+0x0c COMMAND_DISALLOWED
+)
+
+//HCI H4 Packet TYPE
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+)
+
+(
+0x00 BT_ACL_START_NO_FLUSH
+0x01 BT_ACL_CONT
+0x02 BT_ACL_START
+)
+
+// HCI command opcode group field values
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_CONTROLLER_AND_BASEBAND
+0x04 HCI_OGF_INFOMATIONAL_PARAM
+0x05 HCI_OGF_STATUS_PARAM
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LE_CONTROLLER
+0x3f HCI_OGF_VENDOR_SPECIFIC_DEBUG
+)
+
+// HCI link control opcode command field values, OGF=1
+(
+0x01 HCI_INQUIRY 
+0x02 HCI_INQUIRY_CANCEL 
+0x03 HCI_PERIODIC_INQUIRY_MODE 
+0x04 HCI_EXIT_PERIODIC_INQUIRY_MODE 
+0x05 HCI_CREATE_CONNECTION 
+0x06 HCI_DISCONNECT 
+0x07 HCI_ADD_SCO_CONNECTION 
+0x08 HCI_CREATE_CONNECTION_CANCEL
+0x09 HCI_ACCEPT_CONNECTION 
+0x0A HCI_REJECT_CONNECTION 
+0x0B HCI_LINK_KEY_REQUEST_REPLY 
+0x0C HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY 
+0x0D HCI_PIN_CODE_REQUEST_REPLY 
+0x0E HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY 
+0x0F HCI_CHANGE_CONNECTION_PACKET_TYPE 
+0x11 HCI_AUTHENTICATION_REQUESTED 
+0x13 HCI_SET_CONNECTION_ENCRYPTION 
+0x15 HCI_CHANGE_CONNECTION_LINK_KEY 
+0x17 HCI_MASTER_LINK_KEY 
+0x19 HCI_REMOTE_NAME_REQUEST 
+0x1A HCI_REMOTE_NAME_REQUEST_CANCEL
+0x1B HCI_READ_REMOTE_SUPPORTED_FEATURES 
+0x1C HCI_READ_REMOTE_EXT_FEATURES 
+0x1D HCI_READ_REMOTE_VERSION_INFORMATION 
+0x1F HCI_READ_CLOCK_OFFSET 
+0x20 HCI_READ_LMP_HANDLE
+0x28 HCI_SETUP_SCO_CONNECTION
+0x29 HCI_ACCEPT_SCO_CONNECTION
+0x2A HCI_REJECT_SCO_CONNECTION
+0x2B HCI_IO_CAP_REQUEST_REPLY
+0x2C HCI_USER_CONFIRMATION_REQUEST_REPLY
+0x2D HCI_USER_CONFIRMATION_REQUEST_NEGATIVE_REPLY
+0x2E HCI_USER_PASSKEY_REQUEST_REPLY
+0x2F HCI_USER_PASSKEY_REQUEST_NEGATIVE_REPLY
+0x30 HCI_REMOTE_OOB_DATA_REQUEST_REPLY
+0x33 HCI_REMOTE_OOB_DATA_REQUEST_NEGATIVE_REPLY
+0x34 HCI_IO_CAPABILITY_REQUEST_NEGATIVE_REPLY
+0x35 HCI_CREATE_PHYSICAL_LINK
+0x36 HCI_ACCEPT_PHYSICAL_LINK
+0x37 HCI_DISCONNECT_PHYSICAL_LINK
+0x38 HCI_CREATE_LOGICAL_LINK
+0x39 HCI_ACCEPT_LOGICAL_LINK
+0x3A HCI_DISCONNECT_LOGICAL_LINK
+0x3B HCI_LOGICAL_LINK_CANCEL
+0x3C HCI_FLOW_SPEC_MODIFY
+0x3D HCI_ENHANCED_SETUP_SYNCHRONOUS_CONNECTION
+0x3E HCI_ENHANCED_ACCEPT_SYNCHRONOUS_CONNECTION_REQUEST
+0x3F HCI_TRUNCATED_PAGE
+0x40 HCI_TRUNCATED_PAGE_CANCEL
+0x41 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST
+0x42 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x43 HCI_START_SYNCHRONIZATION_TRAIN
+0x44 HCI_RECEIVE_SYNCHRONIZATION_TRAIN
+0x45 HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY
+)
+
+
+// HCI link policy commands OCF value, OGF=2
+(
+0x01 HCI_HOLD_MODE 
+0x03 HCI_SNIFF_MODE 
+0x04 HCI_EXIT_SNIFF_MODE 
+0x05 HCI_PARK_MODE 
+0x06 HCI_EXIT_PARK_MODE 
+0x07 HCI_QOS_SETUP 
+0x09 HCI_ROLE_DISCOVERY 
+0x0B HCI_SWITCH_ROLE 
+0x0C HCI_READ_LINK_POLICY_SETTINGS 
+0x0D HCI_WRITE_LINK_POLICY_SETTINGS 
+0x0e HCI_READ_DEFAULT_LINK_POLICY_SETTINGS
+0x0f HCI_WRITE_DEFAULT_LINK_POLICY_SETTINGS
+0x10 HCI_FLOW_SPECIFICATION
+0x11 HCI_SNIFF_SUBRATING
+)
+
+// HCI host controller and baseband commands OCF values, OGF=3
+(
+0x01 HCI_SET_EVENT_MASK 
+0x03 HCI_RESET 
+0x05 HCI_SET_EVENT_FILTER 
+0x08 HCI_FLUSH 
+0x09 HCI_READ_PIN_TYPE 
+0x0A HCI_WRITE_PIN_TYPE 
+0x0B HCI_CREATE_NEW_UNIT_KEY 
+0x0D HCI_READ_STORED_LINK_KEY 
+0x11 HCI_WRITE_STORED_LINK_KEY 
+0x12 HCI_DELETE_STORED_LINK_KEY 
+0x13 HCI_WRITE_LOCAL_NAME 
+0x14 HCI_READ_LOCAL_NAME 
+0x15 HCI_READ_CONN_ACCEPT_TIMEOUT 
+0x16 HCI_WRITE_CONN_ACCEPT_TIMEOUT 
+0x17 HCI_READ_PAGE_TIMEOUT 
+0x18 HCI_WRITE_PAGE_TIMEOUT 
+0x19 HCI_READ_SCAN_ENABLE 
+0x1A HCI_WRITE_SCAN_ENABLE 
+0x1B HCI_READ_PAGE_SCAN_ACTIVITY 
+0x1C HCI_WRITE_PAGE_SCAN_ACTIVITY 
+0x1D HCI_READ_INQUIRY_SCAN_ACTIVITY 
+0x1E HCI_WRITE_INQUIRY_SCAN_ACTIVITY 
+0x1F HCI_READ_AUTHENTICATION_ENABLE 
+0x20 HCI_WRITE_AUTHENTICATION_ENABLE 
+0x21 HCI_READ_ENCRYPTION_MODE 
+0x22 HCI_WRITE_ENCRYPTION_MODE 
+0x23 HCI_READ_CLASS_OF_DEVICE 
+0x24 HCI_WRITE_CLASS_OF_DEVICE 
+0x25 HCI_READ_VOICE_SETTING 
+0x26 HCI_WRITE_VOICE_SETTING 
+0x27 HCI_READ_AUTOMATIC_FLUSH_TIMEOUT 
+0x28 HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT 
+0x29 HCI_READ_NUM_BROADCAST_RETRANSMISSIONS 
+0x2A HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS 
+0x2B HCI_READ_HOLD_MODE_ACTIVITY 
+0x2C HCI_WRITE_HOLD_MODE_ACTIVITY 
+0x2D HCI_READ_TRANSMIT_POWER_LEVEL 
+0x2E HCI_READ_SCO_FLOW_CONTROL_ENABLE 
+0x2F HCI_WRITE_SCO_FLOW_CONTROL_ENABLE 
+0x31 HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL 
+0x33 HCI_HOST_BUFFER_SIZE 
+0x35 HCI_HOST_NUM_COMPLETED_PACKETS 
+0x36 HCI_READ_LINK_SUPERVISION_TIMEOUT 
+0x37 HCI_WRITE_LINK_SUPERVISION_TIMEOUT 
+0x38 HCI_READ_NUMBER_OF_SUPPORTED_IAC 
+0x39 HCI_READ_CURRENT_IAC_LAP 
+0x3A HCI_WRITE_CURRENT_IAC_LAP 
+0x3B HCI_READ_PAGE_SCAN_PERIOD_MODE 
+0x3C HCI_WRITE_PAGE_SCAN_PERIOD_MODE 
+0x3D HCI_READ_PAGE_SCAN_MODE 
+0x3E HCI_WRITE_PAGE_SCAN_MODE 
+0x3F HCI_SET_AFH_CHANNEL_CLASSIFICATION 
+
+
+0x42 HCI_READ_INQUIRY_SCAN_TYPE 
+0x43 HCI_WRITE_INQUIRY_SCAN_TYPE 
+0x44 HCI_READ_INQUIRY_MODE 
+0x45 HCI_WRITE_INQUIRY_MODE 
+0x46 HCI_READ_PAGE_SCAN_TYPE 
+0x47 HCI_WRITE_PAGE_SCAN_TYPE 
+
+0x48 HCI_READ_AFH_CHANNEL_ACCESSMENT_MODE 
+0x49 HCI_WRITE_AFH_CHANNEL_ACCESSMENT_MODE 
+0x51 HCI_READ_EXTENDED_INQUIRY_RESPONSE
+0x52 HCI_WRITE_EXTENDED_INQUIRY_RESPONSE
+0x53 HCI_REFRESH_ENCRYPTION_KEY
+0x55 HCI_READ_SIMPLE_PAIRING_MODE
+0x56 HCI_WRITE_SIMPLE_PAIRING_MODE
+0x57 HCI_READ_LOCAL_OOB_DATA
+0x58 HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL
+0x59 HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL
+0x60 HCI_SEND_KEYPRESS_NOTIFICATION
+0x5A HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5B HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5F HCI_ENHANCED_FLUSH
+0x61 HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x62 HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x63 HCI_SET_EVENT_MASK_PAGE_2
+0x64 HCI_READ_LOCATION_DATA
+0x65 HCI_WRITE_LOCATION_DATA
+0x66 HCI_READ_FLOW_CONTROL_MODE
+0x67 HCI_WRITE_FLOW_CONTROL_MODE
+0x68 HCI_READ_ENHANCE_TRANSMIT_POWER_LEVEL
+0x69 HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT
+0x6A HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT
+0x6B HCI_SHORT_RANGE_MODE
+0x6C HCI_READ_LE_HOST_SUPPORT
+0x6D HCI_WRITE_LE_HOST_SUPPORT
+0x6E HCI_SET_MWS_CHANNEL_PARAMETERS
+0x6F HCI_SET_EXTERNAL_FRAME_CONFIGURATION
+0x70 HCI_SET_MWS_SIGNALING
+0x71 HCI_SET_MWS_TRANSPORT_LAYER
+0x72 HCI_SET_MWS_SCAN_FREQUENCY_TABLE
+0x73 HCI_SET_MWS_PATTERN_CONFIGURATION
+0x74 HCI_SET_RESERVED_LT_ADDR
+0x75 HCI_DELETE_RESERVED_LT_ADDR
+0x76 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_DATA
+0x77 HCI_READ_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x78 HCI_WRITE_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x79 HCI_READ_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7A HCI_WRITE_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7B HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7C HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7D HCI_READ_LOCAL_OOB_EXTENDED_DATA
+0x7E HCI_READ_EXTENDED_PAGE_TIMEOUT
+0x7F HCI_WRITE_EXTENDED_PAGE_TIMEOUT
+0x80 HCI_READ_EXTENDED_INQUIRY_LENGTH
+0x81 HCI_WRITE_EXTENDED_INQUIRY_LENGTH
+)
+
+
+// HCI informational parameters OCF values, OGF=4
+(
+0x01 HCI_READ_LOCAL_VERSION_INFORMATION 
+0x02 HCI_READ_LOCAL_SUPPORTED_COMMANDS
+0x03 HCI_READ_LOCAL_SUPPORTED_FEATURES 
+0x04 HCI_READ_LOCAL_EXT_FEATURES 
+0x05 HCI_READ_BUFFER_SIZE 
+0x07 HCI_READ_COUNTRY_CODE 
+0x09 HCI_READ_BD_ADDR 
+0x0A HCI_REJECT_CONNECTION_REQUEST
+0x0B HCI_READ_LOCAL_SUPPORTED_CODECS
+)
+
+// HCI status parameters OCF values, OGF=5
+(
+0x01 HCI_READ_FAILED_CONTACT_COUNTER 
+0x02 HCI_RESET_FAILED_CONTACT_COUNTER 
+0x03 HCI_GET_LINK_QUALITY 
+0x05 HCI_READ_RSSI 
+0x06 HCI_READ_AFH_CHANNEL_MAP
+0x07 HCI_READ_BD_CLOCK
+0x08 HCI_READ_ENCRYPTION_KEY_SIZE
+0x09 HCI_READ_LOCAL_AMP_INFO
+0x0A HCI_READ_LOCAL_AMP_ASSOC
+0x0B HCI_WRITE_REMOTE_AMP_ASSOC
+0x0C HCI_GET_MWS_TRANSPORT_LAYER_CONFIGURATION
+0x0D HCI_SET_TRIGGERED_CLOCK_CAPTURE
+)
+
+// HCI testing command OCF values, OGF=6
+(
+0x01 HCI_READ_LOOPBACK_MODE 
+0x02 HCI_WRITE_LOOPBACK_MODE 
+0x03 HCI_ENABLE_DEVICE_UNDER_TEST_MODE 
+0x04 HCI_WRITE_SIMPLE_PAIRING_DEBUG_MODE
+0x07 HCI_ENABLE_AMP_RECEIVER_REPORTS
+0x08 HCI_AMP_TEST_END
+0x09 HCI_AMP_TEST
+0x0A HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE
+)
+
+// HCI vendor specific command OCF values -OGF=3F
+(
+0x01 HCI_WRITE_BD_ADDR 
+0x02 HCI_READ_INQUIRY_RESPONSE_TIMEOUT 
+0x03 HCI_WRITE_INQUIRY_RESPONSE_TIMEOUT 
+0x04 HCI_READ_PAGE_SCAN_REPETITION_MODE 
+0x05 HCI_WRITE_PAGE_SCAN_REPETITION_MODE 
+0x06 HCI_READ_PAGE_RESPONSE_TIMEOUT 
+0x07 HCI_WRITE_PAGE_RESPONSE_TIMEOUT 
+0x08 HCI_READ_NEW_CONNECTION_TIMEOUT 
+0x09 HCI_WRITE_NEW_CONNECTION_TIMEOUT 
+0x0a HCI_INITIALIZE_BASEBAND 
+0x0b HCI_WRITE_LOCAL_SUPPORTED_FEATURES 
+0x0c HCI_WRITE_PARK_PARAMETERS 
+0x0d HCI_READ_PARK_PARAMETERS 
+0x0e HCI_WRITE_QUALITY_OF_SERVICE 
+0x0f HCI_NOT_USED 
+0x10 HCI_MODIFY_BEACON_PARAMETERS 
+0x11 HCI_UNPARK_USING_PM_ADDR 
+0x12 HCI_WRITE_HOPPING_CHANNELS 
+0x13 HCI_SLEEP_FOREVER_MODE 
+0x14 HCI_WRITE_AUTO_PAGE_SCAN_ENABLE 
+0x15 HCI_READ_AUTO_PAGE_SCAN_ENABLE 
+0x16 HCI_SET_ENCRYPTION_KEY_SIZE 
+0x17 HCI_INVALIDATE_FLASH_AND_REBOOT 
+0x18 HCI_UPDATE_UART_BAUD_RATE 
+0x19 HCI_WRITE_GPIO_1_4_AS_OUTPUT 
+0x1A HCI_WRITE_GPIO_2_LED 
+0x1B HCI_SET_TESTMODE_TYPE 
+0x1C HCI_WRITE_SCO_PCM_INT_PARAM 
+0x1D HCI_READ_SCO_PCM_INT_PARAM 
+0x1E HCI_WRITE_PCM_DATA_FORMAT_PARAM 
+0x1F HCI_READ_PCM_DATA_FORMAT_PARAM 
+0x20 HCI_WRITE_COMFORT_NOISE_PARAM 
+0x21 HCI_READ_COMFORT_NOISE_PARAM 
+0x22 HCI_WRITE_SCO_TS 
+0x23 HCI_READ_SCO_TS 
+0x24 HCI_WRITE_PCM_LOOPBACK_MODE 
+0x25 HCI_READ_PCM_LOOPBACK_MODE 
+0x26 HCI_SET_TRANSMIT_POWER 
+0x27 HCI_SET_SLEEPMODE_PARAM 
+0x28 HCI_READ_SLEEPMODE_PARAM 
+0x29 HCI_SLEEPMODE_CMD 
+0x2A HCI_DELAY_PERIPHERAL_SCO_STARTUP 
+0x2B HCI_WRITE_RECEIVE_ONLY 
+0x2C HCI_WRITE_RATE_CONTROL 
+0x2D HCI_TX_UNMOD_CARRIER 
+0x2E HCI_DOWNLOAD_MINIDRIVER 
+0x2F HCI_CRYSTAL_PPM 
+0x30 HCI_SET_POWER_AMP_BIAS 
+0x31 HCI_SET_HAM_BEHAVIOR 
+0x32 HCI_SET_AFH_BEHAVIOR 
+0x33 HCI_READ_USER_DEFINED_NVRAM 
+0x34 HCI_ENABLE_RADIO 
+0x35 HCI_READ_DIAGNOSTIC_INFO 
+0x36 HCI_GET_HID_DEVICE_LIST 
+0x37 HCI_ADD_HID_DEVICE 
+0x38 HCI_READ_APP_FW_CONFIG_VERSION 
+0x39 HCI_DELETE_HID_DEVICE 
+0x3B HCI_ENABLE_USB_HID_EMULATION 
+// 0x3A available
+// 0x3B available
+0x3C HCI_SEND_LMPDU 
+0x3D HCI_AUTO_PAIR_REQ 
+0x3E HCI_READ_VS_EXTENSION 
+0x3F HCI_WRITE_VS_EXTENSION 
+
+0x77 HCI_OPCODE_FC77
+0x79 HCI_OPCODE_FC79
+0xC4 HCI_DOWNLOAD_PATCH
+0xCC HCI_OPCODE_FCCC
+
+0x00 HCI_VENDOR_CMD_RESET
+0x01 HCI_VENDOR_CMD_CHIPID
+0x02 HCI_VENDOR_CMD_BAUD
+0x03 HCI_VENDOR_CMD_PATCH
+0x04 HCI_VENDOR_CMD_PATCH_DONE
+0x05 HCI_VENDOR_CMD_ECHO
+0x06 HCI_VENDOR_CMD_BDADDR
+
+0x07 HCI_VENDOR_CMD_ENTER_LPM
+0x08 HCI_VENDOR_CMD_COMMU_READY
+
+0x10 HCI_VENDOR_CMD_MEM
+0x11 HCI_VENDOR_CMD_EEP
+
+0X12 HCI_VENDOR_CMD_PATCH_SEC_INIT
+0X13 HCI_VENDOR_CMD_PATCH_SEC
+0x14 HCI_VENDOR_CMD_SET_FLOW_CONTROL
+)
+
+//HCI LE controller command OCF values, OGF=8
+(
+0x01 HCI_LE_SET_EVENT_MASK
+0x02 HCI_LE_READ_BUFFER_SIZE
+0x03 HCI_LE_READ_LOCAL_SUPPORTED_FEATURES
+0x05 HCI_LE_SET_RANDOM_ADDRESS
+0x06 HCI_LE_SET_ADVERTISING_PARAMETERS
+0x07 HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER
+0x08 HCI_LE_SET_ADVERTISING_DATA
+0x09 HCI_LE_SET_SCAN_RESPONSE_DATA
+0x0A HCI_LE_SET_ADVERTISE_ENABLE
+0x0B HCI_LE_SET_SCAN_PARAMETERS
+0x0C HCI_LE_SET_SCAN_ENABLE
+0x0D HCI_LE_CREATE_CONNECTION
+0x0E HCI_LE_CREATE_CONNECTION_CANCEL
+0x0F HCI_LE_READ_WHITE_LIST_SIZE
+0x10 HCI_LE_CLEAR_WHITE_LIST
+0x11 HCI_LE_ADD_DEVICE_TO_WHITE_LIST
+0x12 HCI_LE_REMOVE_DEVICE_FROM_WHITE_LIST
+0x13 HCI_LE_CONNECTION_UPDATE
+0x14 HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION
+0x15 HCI_LE_READ_CHANNEL_MAP
+0x16 HCI_LE_READ_REMOTE_USED_FEATURES
+0x17 HCI_LE_ENCRYPT
+0x18 HCI_LE_RAND
+0x19 HCI_LE_START_ENCRYPTION
+0x1A HCI_LE_LONG_TERM_KEY_REQUEST_REPLY
+0x1B HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY
+0x1C HCI_LE_READ_SUPPORTED_STATES
+0x1D HCI_LE_RECEIVER_TEST
+0x1E HCI_LE_TRANSMITTER_TEST
+0x1F HCI_LE_TEST_END
+0x20 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_REPLY
+0x21 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_NEGATIVE_REPLY
+)
+// HCI event code
+(
+0x01 HCI_EVENT_INQUIRY_COMPLETE
+0x02 HCI_EVENT_INQUIRY_RESULT
+0x03 HCI_EVENT_CONNECTION_COMPLETE
+0x04 HCI_EVENT_CONNECTION_REQUEST
+0x05 HCI_EVENT_DISCONNECTION_COMPLETE
+0x06 HCI_EVENT_AUTHENTICATION_COMPLETE
+0x07 HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
+0x08 HCI_EVENT_ENCRYPTION_CHANGE_COMPLETE
+0x09 HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
+0x0A HCI_EVENT_MASTER_LINK_KEY_COMPLETE
+0x0B HCI_EVENT_READ_REMOTE_FEATURES_COMPLETE
+0x0C HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE
+0x0D HCI_EVENT_QOS_SETUP_COMPLETE
+0x0E HCI_EVENT_COMMAND_COMPLETE
+0x0F HCI_EVENT_COMMAND_STATUS
+0x10 HCI_EVENT_HARDWARE_ERROR
+0x11 HCI_EVENT_FLUSH_OCCURRED
+0x12 HCI_EVENT_ROLE_CHANGE
+0x13 HCI_EVENT_NUM_COMPLETED_PACKETS
+0x14 HCI_EVENT_MODE_CHANGE
+0x15 HCI_EVENT_RETURN_LINK_KEYS
+0x16 HCI_EVENT_PIN_CODE_REQUEST
+0x17 HCI_EVENT_LINK_KEY_REQUEST
+0x18 HCI_EVENT_LINK_KEY_NOTIFICATION
+0x19 HCI_EVENT_LOOPBACK_COMMAND
+0x1A HCI_EVENT_DATA_BUFFER_OVERFLOW
+0x1B HCI_EVENT_MAX_SLOTS_CHANGE
+0x1C HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
+0x1D HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
+0x1E HCI_EVENT_QOS_VIOLATION
+0x1F HCI_EVENT_PAGE_SCAN_MODE_CHANGE
+0x20 HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE
+0x21 HCI_EVENT_FLOW_SPECIFICATION_COMPLETE
+0x22 HCI_EVENT_INQUIRY_RESULT_WITHRSSI
+0x23 HCI_EVENT_READ_REMOTE_EXT_FEATURES_COMPLETE
+0x2C HCI_EVENT_SCO_CONNECTION_COMPLETE
+0x2D HCI_EVENT_SCO_CONNECTION_CHANGED
+0x2E HCI_EVENT_SNIFF_SUBRATING
+0x2F HCI_EVENT_EXT_INQUIRY_RESULT
+0x30 HCI_EVENT_ENCRYPT_KEY_REFRESH_COMPLETE
+0x31 HCI_EVENT_IO_CAP_REQ
+0x32 HCI_EVENT_IO_CAP_RESPONSE
+0x33 HCI_EVENT_USER_CONFIRMATION_REQUEST
+0x34 HCI_EVENT_UESR_PASSKEY_REQUEST
+0x35 HCI_EVENT_REMOTE_OOB_DATA_REQUEST
+0x36 HCI_EVENT_SIMPLE_PAIRING_COMPLETE
+0x38 HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED
+0x39 HCI_EVENT_ENHANCED_FLUSH_COMPLETE
+0x3B HCI_EVENT_USER_PASSKEY_NOTIFICATION
+0x3C HCI_EVENT_KEYPRESS_NOTIFICATION
+0x3D HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION 
+0x3E HCI_EVENT_LE_META_EVENT
+0x40 HCI_EVENT_PHYSICAL_LINK_COMPLETE
+0x41 HCI_EVENT_CHANNEL_SELECTED
+0x42 HCI_EVENT_DISCONNECTION_PHYSICAL_LINK_COMPLETE
+0x43 HCI_EVENT_PHYSICAL_LINK_LOSS_EARLY_WARNING
+0x44 HCI_EVENT_PHYSICAL_LINK_RECOVERY
+0x45 HCI_EVENT_LOGICAL_LINK_COMPLETE
+0x46 HCI_EVENT_DISCONNECTION_LOGICAL_LINK_COMPLETE
+0x47 HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE
+0x48 HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS
+0x49 HCI_EVENT_AMP_START_TEST
+0x4A HCI_EVENT_AMP_TEST_END
+0x4B HCI_EVENT_AMP_RECEIVER_REPORT
+0x4C HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE
+0x4D HCI_EVENT_AMP_STATUS_CHANGE
+0x4E HCI_EVENT_TRIGGERED_CLOCK_CAPTURE
+0x4F HCI_EVENT_SYNCHRONIZATION_TRAIN_COMPLETE
+0x50 HCI_EVENT_SYNCHRONIZATION_TRAIN_RECEIVED
+0x51 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x52 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_TIMEOUT
+0x53 HCI_EVENT_TRUNCATED_PAGE_COMPLETE
+0x54 HCI_EVENT_SLAVE_PAGE_RESPONSE_TIMEOUT
+0x55 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_CHANNEL_MAP_CHANGE
+0x56 HCI_EVENT_INQUIRY_RESPONSE_NOTIFICATION
+0x57 HCI_EVENT_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED
+
+0xFE HCI_EVENT_LOGO_TESTING
+0xFF HCI_EVENT_VENDOR_SPECIFIC
+)
+(
+0x01 HCI_VENDOR_EVENT_COMMU_READY
+)
+//HCI LE SUBEVENT CODE
+(
+0x01 HCI_LE_SUBEVENT_CONN_COMPLETE
+0x02 HCI_LE_SUBEVENT_ADV_REPORT
+0x03 HCI_LE_SUBEVENT_CONN_UPDATE_COMPLETE
+0x04 HCI_LE_SUBEVENT_REMOTE_FEATURE_COMPLETE
+0x05 HCI_LE_SUBEVENT_LTK_REQUEST
+0x06 HCI_LE_SUBEVENT_REMOTE_CONN_PARAM_REQ
+)
+
Index: format/l2cap.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/l2cap.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/l2cap.format	(working copy)
@@ -0,0 +1,40 @@
+
+
+
+xmemalloc(
+0 mem_l2cap_xmem_start
+
+//*******************L2CAP malloc********************//
+1 mem_used_map
+0 mem_tx_fifo0
+1 mem_tx_fifo0_map
+2 mem_tx_fifo0_ptr
+0 mem_tx_fifo1
+1 mem_tx_fifo1_map
+2 mem_tx_fifo1_ptr
+0 mem_tx_fifo2
+1 mem_tx_fifo2_map
+2 mem_tx_fifo2_ptr
+0 mem_tx_fifo3
+1 mem_tx_fifo3_map
+2 mem_tx_fifo3_ptr
+0 mem_tx_fifo_end
+
+2 mem_l2cap_lpm_txbuf_ptr
+0 mem_l2cap_xmem_end
+
+)
+
+
+//mem_l2cap_lpm_txbuf
+(
+256 l2cap_lpm_txbuf_len
+)
+
+(
+4 L2CAP_TX_FIFO_SIZE
+8 L2CAP_TX_BUFF_CNT
+
+)
+
+
Index: format/memblocks.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/memblocks.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/memblocks.format	(working copy)
@@ -0,0 +1,38 @@
+//
+//
+//Large memory blocks defined in this file.
+//Blocks Shall be defined with absolute address.
+//Blocks' length Shall be specified in comment following Blocks' names.
+//Different blocks MAY be overlap.
+//Blocks defined in this file Shall NOT be overlap with variable in memmap.format.
+
+(
+0xf00 mem_dcoc_buf
+0xff0 mem_dcoc_buf_end
+)
+
+//l2cap RX buffers
+(
+0xf00 mem_le_l2cap_buf		//0x100
+)
+
+//l2cap TX buffers
+(
+0xd00 mem_ble_tx_buff0
+0x60 mem_ble_l2cap_tx_buff_size
+)
+
+
+//uart buffer
+(
+0xc00 mem_h5rx_buf//0x400
+0xeff mem_h5rx_buf_end
+0xf00 mem_h5tx_buf
+0xfff mem_h5tx_buf_end
+)
+
+
+(
+0x4c00 mem_savelist
+)
+
Index: format/mesh_protocol_stack/mesh_access_layer.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_access_layer.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_access_layer.format	(working copy)
@@ -0,0 +1,350 @@
+
+memalloc ali_mesh(
+	1 mem_mesh_receive_model_message_payload_len
+	1 mem_mesh_receive_model_message_payload_opcode
+	23 mem_mesh_receive_model_message_payload
+
+	1 mem_mesh_access_layer_payload_len
+	0 mem_mesh_access_layer_payload
+	50 mem_mesh_access_payload
+	50 mem_mesh_access_payload_padding	//为了透传模块预留
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	3 mem_mesh_NETKeyindex_and_APPKeyindex
+	16 mem_mesh_receive_application_key
+)
+
+
+(//status codes
+0 STATUS_CODE_SUCCESS
+)
+
+
+// ali vendor message
+(
+0xD0 VENDOR_MESSAGE_ATTR_GET
+0xD1 VENDOR_MESSAGE_ATTR_SET
+0xD2 VENDOR_MESSAGE_ATTR_SET_UNACKNOWLEDGED
+0xD3 VENDOR_MESSAGE_ATTR_STATUS
+0xD4 VENDOR_MESSAGE_ATTR_INDICATION
+0xD5 VENDOR_MESSAGE_ATTR_CONFIRMATION
+0xCF VENDOR_MESSAGE_TRANSPARENT_MSG
+)
+
+
+
+(//configuration message and health message opcode
+0x80 MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER
+
+0x00 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_ADD
+0x01 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_UPDATE
+0x02 MESH_MESSAGE_OPCODE_CONFIG_COMPOSITION_DATA_STATUS
+0x03 MESH_MESSAGE_OPCODE_CONFIG_CONFIG_MODEL_PUBLICATION_SET
+0x04 MESH_MESSAGE_OPCODE_HEALTH_CURRENT_STATUS
+0x05 MESH_MESSAGE_OPCODE_HEALTH_FAULT_STATUS
+0x06 MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_PUBLICATION_STATUS
+0x00 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_DELETE_NO_HEAD
+0x01 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_GET_NO_HEAD
+0x02 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_LIST_NO_HEAD
+0x03 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_STATUS_NO_HEAD
+0x04 MESH_MESSAGE_OPCODE_HEALTH_ATTENTION_GET_NO_HEAD
+0x05 MESH_MESSAGE_OPCODE_HEALTH_ATTENTION_SET_NO_HEAD
+0x06 MESH_MESSAGE_OPCODE_HEALTH_ATTENTION_SET_UNACKNOWLEDGED_NO_HEAD
+0x07 MESH_MESSAGE_OPCODE_HEALTH_ATTENTION_STATUS_NO_HEAD
+0x08 MESH_MESSAGE_OPCODE_CONFIG_COMPOSITION_DATA_GET_NO_HEAD
+0x09 MESH_MESSAGE_OPCODE_CONFIG_BEACON_GET_NO_HEAD
+0x0A MESH_MESSAGE_OPCODE_CONFIG_BEACON_SET_NO_HEAD
+0x0B MESH_MESSAGE_OPCODE_CONFIG_BEACON_STATUS_NO_HEAD
+0x0C MESH_MESSAGE_OPCODE_CONFIG_DEFAULT_TTL_GET_NO_HEAD
+0x0D MESH_MESSAGE_OPCODE_CONFIG_DEFAULT_TTL_SET_NO_HEAD
+0x0E MESH_MESSAGE_OPCODE_CONFIG_DEFAULT_TTL_STATUS_NO_HEAD
+0x0F MESH_MESSAGE_OPCODE_CONFIG_FRIEND_GET_NO_HEAD
+0x10 MESH_MESSAGE_OPCODE_CONFIG_FRIEND_SET_NO_HEAD
+0x11 MESH_MESSAGE_OPCODE_CONFIG_FRIEND_STATUS_NO_HEAD
+0x12 MESH_MESSAGE_OPCODE_CONFIG_GATT_PROXY_GET_NO_HEAD
+0x13 MESH_MESSAGE_OPCODE_CONFIG_GATT_PROXY_SET_NO_HEAD
+0x14 MESH_MESSAGE_OPCODE_CONFIG_GATT_PROXY_STATUS_NO_HEAD
+0x15 MESH_MESSAGE_OPCODE_CONFIG_KEY_REFRESH_PHASE_GET_NO_HEAD
+0x16 MESH_MESSAGE_OPCODE_CONFIG_KEY_REFRESH_PHASE_SET_NO_HEAD
+0x17 MESH_MESSAGE_OPCODE_CONFIG_KEY_REFRESH_PHASE_STATUS_NO_HEAD
+0x18 MESH_MESSAGE_OPCODE_CONFIG_MODEL_PUBLICATION_GET_NO_HEAD
+0x19 MESH_MESSAGE_OPCODE_CONFIG_MODEL_PUBLICATION_STATUS_NO_HEAD
+0x1A MESH_MESSAGE_OPCODE_CONFIG_MODEL_PUBLICATION_VIRTUAL_ADDRESS_SET_NO_HEAD
+0x1B MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_NO_HEAD
+0x1C MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_DELETE_NO_HEAD
+0x1D MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_DELETE_ALL_NO_HEAD
+0x1E MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_OVERWRITE_NO_HEAD
+0x1F MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_STATUS_NO_HEAD
+0x20 MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_ADD_NO_HEAD
+0x21 MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_DELETE_NO_HEAD
+0x22 MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_OVERWRITE_NO_HEAD
+0x23 MESH_MESSAGE_OPCODE_CONFIG_NETWORK_TRANSMIT_GET_NO_HEAD
+0x24 MESH_MESSAGE_OPCODE_CONFIG_NETWORK_TRANSMIT_SET_NO_HEAD
+0x25 MESH_MESSAGE_OPCODE_CONFIG_NETWORK_TRANSMIT_STATUS_NO_HEAD
+0x26 MESH_MESSAGE_OPCODE_CONFIG_RELAY_GET_NO_HEAD
+0x27 MESH_MESSAGE_OPCODE_CONFIG_RELAY_SET_NO_HEAD
+0x28 MESH_MESSAGE_OPCODE_CONFIG_RELAY_STATUS_NO_HEAD
+0x29 MESH_MESSAGE_OPCODE_CONFIG_SIG_MODEL_SUBSCRIPTION_GET_NO_HEAD
+0x2A MESH_MESSAGE_OPCODE_CONFIG_SIG_MODEL_SUBSCRIPTION_LIST_NO_HEAD
+0x2B MESH_MESSAGE_OPCODE_CONFIG_VENDOR_MODEL_SUBSCRIPTION_GET_NO_HEAD
+0x2C MESH_MESSAGE_OPCODE_CONFIG_VENDOR_MODEL_SUBSCRIPTION_LIST_NO_HEAD
+0x2D MESH_MESSAGE_OPCODE_CONFIG_LOW_POWER_NODE_POLLTIMEOUT_GET_NO_HEAD
+0x2E MESH_MESSAGE_OPCODE_CONFIG_LOW_POWER_NODE_POLLTIMEOUT_STATUS_NO_HEAD
+0x2F MESH_MESSAGE_OPCODE_HEALTH_FAULT_CLEAR_NO_HEAD
+0x30 MESH_MESSAGE_OPCODE_HEALTH_FAULT_CLEAR_UNACKNOWLEDGED_NO_HEAD
+0x31 MESH_MESSAGE_OPCODE_HEALTH_FAULT_GET_NO_HEAD
+0x32 MESH_MESSAGE_OPCODE_HEALTH_FAULT_TEST_NO_HEAD
+0x33 MESH_MESSAGE_OPCODE_HEALTH_FAULT_TEST_UNACKNOWLEDGED_NO_HEAD
+0x34 MESH_MESSAGE_OPCODE_HEALTH_PERIOD_GET_NO_HEAD
+0x35 MESH_MESSAGE_OPCODE_HEALTH_PERIOD_SET_NO_HEAD
+0x36 MESH_MESSAGE_OPCODE_HEALTH_PERIOD_SET_UNACKNOWLEDGED_NO_HEAD
+0x37 MESH_MESSAGE_OPCODE_HEALTH_PERIOD_STATUS_NO_HEAD
+0x38 MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_PUBLICATION_GET_NO_HEAD
+0x39 MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_PUBLICATION_SET_NO_HEAD
+0x3A MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_SUBSCRIPTION_GET_NO_HEAD
+0x3B MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_SUBSCRIPTION_SET_NO_HEAD
+0x3C MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_SUBSCRIPTION_STATUS_NO_HEAD
+0x3D MESH_MESSAGE_OPCODE_CONFIG_MODEL_APP_BIND_NO_HEAD
+0x3E MESH_MESSAGE_OPCODE_CONFIG_MODEL_APP_STATUS_NO_HEAD
+0x3F MESH_MESSAGE_OPCODE_CONFIG_MODEL_APP_UNBIND_NO_HEAD
+0x40 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_ADD_NO_HEAD
+0x41 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_DELETE_NO_HEAD
+0x42 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_GET_NO_HEAD
+0x43 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_LIST_NO_HEAD
+0x44 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_STATUS_NO_HEAD
+0x45 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_UPDATE_NO_HEAD
+0x46 MESH_MESSAGE_OPCODE_CONFIG_NODE_IDENTITY_GET_NO_HEAD
+0x47 MESH_MESSAGE_OPCODE_CONFIG_NODE_IDENTITY_SET_NO_HEAD
+0x48 MESH_MESSAGE_OPCODE_CONFIG_NODE_IDENTITY_STATUS_NO_HEAD
+0x49 MESH_MESSAGE_OPCODE_CONFIG_NODE_RESET_NO_HEAD
+0x4A MESH_MESSAGE_OPCODE_CONFIG_NODE_RESET_STATUS_NO_HEAD
+0x4B MESH_MESSAGE_OPCODE_CONFIG_SIG_MODEL_APP_GET_NO_HEAD
+0x4C MESH_MESSAGE_OPCODE_CONFIG_SIG_MODEL_APP_LIST_NO_HEAD
+0x4D MESH_MESSAGE_OPCODE_CONFIG_VENDOR_MODEL_APP_GET_NO_HEAD
+0x4E MESH_MESSAGE_OPCODE_CONFIG_VENDOR_MODEL_APP_LIST_NO_HEAD
+0xF2 MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_OW_NO_HEAD   //overwrite
+0xF3 MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_OW_STATUS
+)
+
+(//Modle message opcode
+0x82 MESH_MODULE_MESSAGE_OPCODE_HEADER
+
+0x01 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_GET_NO_HEAD
+0x02 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_SET_NO_HEAD
+0x03 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_SET_UNACKNOWLEDGED_NO_HEAD
+0x04 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_STATUS_NO_HEAD
+0x05 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LEVEL_GET_NO_HEAD
+0x06 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LEVEL_SET_NO_HEAD
+0x07 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LEVEL_SET_UNACKNOWLEDGED_NO_HEAD
+0x08 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LEVEL_STATUS_NO_HEAD
+0x09 MESH_MODULE_MESSAGE_OPCODE_GENERIC_DELTA_SET_NO_HEAD
+0x0A MESH_MODULE_MESSAGE_OPCODE_GENERIC_DELTA_SET_UNACKNOWLEDGED_NO_HEAD
+0x0B MESH_MODULE_MESSAGE_OPCODE_GENERIC_MOVE_SET_NO_HEAD
+0x0C MESH_MODULE_MESSAGE_OPCODE_GENERIC_MOVE_SET_UNACKNOWLEDGED_NO_HEAD
+0x0D MESH_MODULE_MESSAGE_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_GET_NO_HEAD
+0x0E MESH_MODULE_MESSAGE_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_SET_NO_HEAD
+0x0F MESH_MODULE_MESSAGE_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_SET_UNACKNOWLEDGED_NO_HEAD
+0x10 MESH_MODULE_MESSAGE_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_STATUS_NO_HEAD
+0x11 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONPOWERUP_GET_NO_HEAD
+0x12 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONPOWERUP_STATUS_NO_HEAD
+0x13 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONPOWERUP_SET_NO_HEAD
+0x14 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONPOWERUP_SET_UNACKNOWLEDGED_NO_HEAD
+0x15 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LEVEL_GET_NO_HEAD
+0x16 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LEVEL_SET_NO_HEAD
+0x17 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LEVEL_SET_UNACKNOWLEDGED_NO_HEAD
+0x18 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LEVEL_STATUS_NO_HEAD
+0x19 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LAST_GET_NO_HEAD
+0x1A MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LAST_STATUS_NO_HEAD
+0x1B MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_DEFAULT_GET_NO_HEAD
+0x1C MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_DEFAULT_STATUS_NO_HEAD
+0x1D MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_RANGE_GET_NO_HEAD
+0x1E MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_RANGE_STATUS_NO_HEAD
+0x1F MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_DEFAULT_SET_NO_HEAD
+0x20 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_DEFAULT_SET_UNACKNOWLEDGED_NO_HEAD
+0x21 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_RANGE_SET_NO_HEAD
+0x22 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_RANGE_SET_UNACKNOWLEDGED_NO_HEAD
+0x23 MESH_MODULE_MESSAGE_OPCODE_GENERIC_BATTERY_GET_NO_HEAD
+0x24 MESH_MODULE_MESSAGE_OPCODE_GENERIC_BATTERY_STATUS_NO_HEAD
+0x25 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_GLOBAL_GET_NO_HEAD
+0x40 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_GLOBAL_STATUS
+0x26 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_LOCAL_GET_NO_HEAD
+0x27 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_LOCAL_STATUS_NO_HEAD
+0x41 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_GLOBAL_SET
+0x42 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_GLOBAL_SET_UNACKNOWLEDGED
+0x28 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_LOCAL_SET_NO_HEAD
+0x29 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_LOCAL_SET_UNACKNOWLEDGED_NO_HEAD
+0x2A MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTIES_GET_NO_HEAD
+0x43 MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTIES_STATUS
+0x2B MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTY_GET_NO_HEAD
+0x44 MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTY_SET
+0x45 MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTY_SET_UNACKNOWLEDGED
+0x46 MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTY_STATUS
+0x2C MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTIES_GET_NO_HEAD
+0x47 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTIES_STATUS
+0x2D MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTY_GET_NO_HEAD
+0x48 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTY_SET
+0x49 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTY_SET_UNACKNOWLEDGED
+0x4A MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTY_STATUS
+0x2E MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTIES_GET_NO_HEAD
+0x4B MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTIES_STATUS
+0x2F MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTY_GET_NO_HEAD
+0x4C MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTY_SET
+0x4D MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTY_SET_UNACKNOWLEDGED
+0x4E MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTY_STATUS
+0x4F MESH_MODULE_MESSAGE_OPCODE_GENERIC_CLIENT_PROPERTIES_GET
+0x50 MESH_MODULE_MESSAGE_OPCODE_GENERIC_CLIENT_PROPERTIES_STATUS
+0x30 MESH_MODULE_MESSAGE_OPCODE_SENSOR_DESCRIPTOR_GET_NO_HEAD
+0x51 MESH_MODULE_MESSAGE_OPCODE_SENSOR_DESCRIPTOR_STATUS
+0x31 MESH_MODULE_MESSAGE_OPCODE_SENSOR_GET_NO_HEAD
+0x52 MESH_MODULE_MESSAGE_OPCODE_SENSOR_STATUS
+0x32 MESH_MODULE_MESSAGE_OPCODE_SENSOR_COLUMN_GET_NO_HEAD
+0x53 MESH_MODULE_MESSAGE_OPCODE_SENSOR_COLUMN_STATUS
+0x33 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SERIES_GET_NO_HEAD
+0x54 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SERIES_STATUS
+0x34 MESH_MODULE_MESSAGE_OPCODE_SENSOR_CADENCE_GET_NO_HEAD
+0x55 MESH_MODULE_MESSAGE_OPCODE_SENSOR_CADENCE_SET
+0x56 MESH_MODULE_MESSAGE_OPCODE_SENSOR_CADENCE_SET_UNACKNOWLEDGED
+0x57 MESH_MODULE_MESSAGE_OPCODE_SENSOR_CADENCE_STATUS
+0x35 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTINGS_GET_NO_HEAD
+0x58 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTINGS_STATUS
+0x36 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTING_GET_NO_HEAD
+0x59 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTING_SET
+0x5A MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTING_SET_UNACKNOWLEDGED
+0x5B MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTING_STATUS
+0x37 MESH_MODULE_MESSAGE_OPCODE_TIME_GET_NO_HEAD
+0x5C MESH_MODULE_MESSAGE_OPCODE_TIME_SET
+0x5D MESH_MODULE_MESSAGE_OPCODE_TIME_STATUS
+0x38 MESH_MODULE_MESSAGE_OPCODE_TIME_ROLE_GET_NO_HEAD
+0x39 MESH_MODULE_MESSAGE_OPCODE_TIME_ROLE_SET_NO_HEAD
+0x3A MESH_MODULE_MESSAGE_OPCODE_TIME_ROLE_STATUS_NO_HEAD
+0x3B MESH_MODULE_MESSAGE_OPCODE_TIME_ZONE_GET_NO_HEAD
+0x3C MESH_MODULE_MESSAGE_OPCODE_TIME_ZONE_SET_NO_HEAD
+0x3D MESH_MODULE_MESSAGE_OPCODE_TIME_ZONE_STATUS_NO_HEAD
+0x3E MESH_MODULE_MESSAGE_OPCODE_TAI_UTC_DELTA_GET_NO_HEAD
+0x3F MESH_MODULE_MESSAGE_OPCODE_TAI_UTC_DELTA_SET_NO_HEAD
+0x40 MESH_MODULE_MESSAGE_OPCODE_TAI_UTC_DELTA_STATUS_NO_HEAD
+0x41 MESH_MODULE_MESSAGE_OPCODE_SCENE_GET_NO_HEAD
+0x42 MESH_MODULE_MESSAGE_OPCODE_SCENE_RECALL_NO_HEAD
+0x43 MESH_MODULE_MESSAGE_OPCODE_SCENE_RECALL_UNACKNOWLEDGED_NO_HEAD
+0x5E MESH_MODULE_MESSAGE_OPCODE_SCENE_STATUS
+0x44 MESH_MODULE_MESSAGE_OPCODE_SCENE_REGISTER_GET_NO_HEAD
+0x45 MESH_MODULE_MESSAGE_OPCODE_SCENE_REGISTER_STATUS_NO_HEAD
+0x46 MESH_MODULE_MESSAGE_OPCODE_SCENE_STORE_NO_HEAD
+0x47 MESH_MODULE_MESSAGE_OPCODE_SCENE_STORE_UNACKNOWLEDGED_NO_HEAD
+0x9E MESH_MODULE_MESSAGE_OPCODE_SCENE_DELETE_NO_HEAD
+0x9F MESH_MODULE_MESSAGE_OPCODE_SCENE_DELETE_UNACKNOWLEDGED_NO_HEAD
+0x48 MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_ACTION_GET_NO_HEAD
+0x5F MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_ACTION_STATUS
+0x49 MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_GET_NO_HEAD
+0x4A MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_STATUS_NO_HEAD
+0x60 MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_ACTION_SET
+0x61 MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_ACTION_SET_UNACKNOWLEDGED
+0x4B MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LIGHT_LIGHTNESS_GET_NO_HEAD
+0x4C MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_SET_NO_HEAD
+0x4D MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_SET_UNACKNOWLEDGED_NO_HEAD
+0x4E MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_STATUS_NO_HEAD
+0x4F MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LINEAR_GET_NO_HEAD
+0x50 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LINEAR_SET_NO_HEAD
+0x51 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LINEAR_SET_UNACKNOWLEDGED_NO_HEAD
+0x52 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LINEAR_STATUS_NO_HEAD
+0x53 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LAST_GET_NO_HEAD
+0x54 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LAST_STATUS_NO_HEAD
+0x55 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_DEFAULT_GET_NO_HEAD
+0x56 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_DEFAULT_STATUS_NO_HEAD
+0x57 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_RANGE_GET_NO_HEAD
+0x58 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_RANGE_STATUS_NO_HEAD
+0x59 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_DEFAULT_SET_NO_HEAD
+0x5A MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_DEFAULT_SET_UNACKNOWLEDGED_NO_HEAD
+0x5B MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_RANGE_SET_NO_HEAD
+0x5C MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_RANGE_SET_UNACKNOWLEDGED_NO_HEAD
+0x5D MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_GET_NO_HEAD
+0x5E MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_SET_NO_HEAD
+0x5F MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_SET_UNACKNOWLEDGED_NO_HEAD
+0x60 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_STATUS_NO_HEAD
+0x61 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_GET_NO_HEAD
+0x62 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_RANGE_GET_NO_HEAD
+0x63 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_RANGE_STATUS_NO_HEAD
+0x64 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_SET_NO_HEAD
+0x65 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_SET_UNACKNOWLEDGED_NO_HEAD
+0x66 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_STATUS_NO_HEAD
+0x67 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_DEFAULT_GET_NO_HEAD
+0x68 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_DEFAULT_STATUS_NO_HEAD
+0x69 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_DEFAULT_SET_NO_HEAD
+0x6A MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_DEFAULT_SET_UNACKNOWLEDGED_NO_HEAD
+0x6B MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_RANGE_SET_NO_HEAD
+0x6C MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_RANGE_SET_UNACKNOWLEDGED_NO_HEAD
+0x6D MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_GET_NO_HEAD
+0x6E MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_HUE_GET_NO_HEAD
+0x6F MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_HUE_SET_NO_HEAD
+0x70 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_HUE_SET_UNACKNOWLEDGED_NO_HEAD
+0x71 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_HUE_STATUS_NO_HEAD
+0x72 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SATURATION_GET_NO_HEAD
+0x73 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SATURATION_SET_NO_HEAD
+0x74 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SATURATION_SET_UNACKNOWLEDGED_NO_HEAD
+0x75 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SATURATION_STATUS_NO_HEAD
+0x76 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SET_NO_HEAD
+0x77 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SET_UNACKNOWLEDGED_NO_HEAD
+0x78 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_STATUS_NO_HEAD
+0x79 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_TARGET_GET_NO_HEAD
+0x7A MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_TARGET_STATUS_NO_HEAD
+0x7B MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_DEFAULT_GET_NO_HEAD
+0x7C MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_DEFAULT_STATUS_NO_HEAD
+0x7D MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_RANGE_GET_NO_HEAD
+0x7E MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_RANGE_STATUS_NO_HEAD
+0x7F MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_DEFAULT_SET_NO_HEAD
+0x80 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_DEFAULT_SET_UNACKNOWLEDGED_NO_HEAD
+0x81 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_RANGE_SET_NO_HEAD
+0x83 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_GET_NO_HEAD
+0x84 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_SET_NO_HEAD
+0x85 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_SET_UNACKNOWLEDGED_NO_HEAD
+0x86 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_STATUS_NO_HEAD
+0x87 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_TARGET_GET_NO_HEAD
+0x88 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_TARGET_STATUS_NO_HEAD
+0x89 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_DEFAULT_GET_NO_HEAD
+0x8A MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_DEFAULT_STATUS_NO_HEAD
+0x8B MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_RANGE_GET_NO_HEAD
+0x8C MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_RANGE_STATUS_NO_HEAD
+0x8D MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_DEFAULT_SET_NO_HEAD
+0x8E MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_DEFAULT_SET_UNACKNOWLEDGED_NO_HEAD
+0x8F MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_RANGE_SET_NO_HEAD
+0x90 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_RANGE_SET_UNACKNOWLEDGED_NO_HEAD
+0x91 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_MODE_GET_NO_HEAD
+0x92 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_MODE_SET_NO_HEAD
+0x93 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_MODE_SET_UNACKNOWLEDGED_NO_HEAD
+0x94 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_MODE_STATUS_NO_HEAD
+0x95 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_OM_GET_NO_HEAD
+0x96 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_OM_SET_NO_HEAD
+0x97 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_OM_SET_UNACKNOWLEDGED_NO_HEAD
+0x98 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_OM_STATUS_NO_HEAD
+0x99 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_LIGHT_ONOFF_GET_NO_HEAD
+0x9A MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_LIGHT_ONOFF_SET_NO_HEAD
+0x9B MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_LIGHT_ONOFF_SET_UNACKNOWLEDGED_NO_HEAD
+0x9C MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_LIGHT_ONOFF_STATUS_NO_HEAD
+0x9D MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_PROPERTY_GET_NO_HEAD
+0x62 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_PROPERTY_SET
+0x63 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_PROPERTY_SET_UNACKNOWLEDGED
+0x64 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_PROPERTY_STATUS)
+
+// status code
+(
+0x00 MESH_SUCCESS
+0x01 MESH_INVALID_ADDRESS
+0x02 MESH_INVALID_MODEL
+0x03 MESH_INVALID_APPKEYINDEX
+0x04 MESH_INVALID_NETKEYINDEX
+0x05 MESH_INSUFFICIENT_RESOURCES
+0x06 MESH_KEYINDEX_ALREAD_STORED
+0x07 MESH_INVALID_PUBLISH_PARAMETERS
+0x08 MESH_NOT_A_SUBSCRIBE_MODEL
+0x09 MESH_STORAGE_FAILURE
+0x0a MESH_FEATURE_NOT_SUPPORTED
+0x0b MESH_CANNOT_UPDATE
+0x0c MESH_CANNOT_REMOVE
+0x0d MESH_CANNOT_BIND
+0x0e MESH_TEMPORARILY_UNABLE_TO_CHANGE_STATE
+0x0f MESH_CANNOT_SET
+0x10 MESH_UNSPECIFIED_ERROR
+0x11 MESH_INVALID_BINDING
+)
+
Index: format/mesh_protocol_stack/mesh_ali_vendor_message.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_ali_vendor_message.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_ali_vendor_message.format	(working copy)
@@ -0,0 +1,209 @@
+
+xmemalloc ali_mesh(
+	1 mem_mesh_vendor_mesh_receive_tid
+	1 mem_mesh_vendor_mesh_send_tid
+
+	4 mem_mesh_vendor_timer_current_time
+	4 mem_system_time
+
+	0 mem_mesh_vendor_timer_timing_delete_index1
+	1 mem_mesh_vendor_timer_timing_index1
+	0 mem_mesh_vendor_timer_timing_delete_index2
+	4 mem_mesh_vendor_timer_timing_time1
+	2 mem_mesh_vendor_timer_timing_attr_type1
+	1 mem_mesh_vendor_timer_timing_attr_para1
+	234 mem_mesh_vendor_timer_timing_buffer
+
+	18 mem_mesh_vendor_timer_timing_palyload
+	2  mem_mesh_vendor_timer_timing_temp
+
+	1 mem_mesh_vendor_timer_timing_time_cyclic_temp
+	1 mem_mesh_vendor_timer_check_loop
+	1 mem_tmall_revd_device_power_on_msge_flag
+	2 mem_tmall_send_power_on_msge_timeout
+
+	2 mem_mesh_vendor_timer_timing_temp1
+	1 mem_mesh_timer_index_buffer_len
+	32 mem_mesh_timer_index_buffer
+	1 mem_mesh_timer_index_count
+)
+
+amemalloc mem_mesh_vendor_timer_timing_palyload(
+	1 mem_mesh_vendor_timer_timing_index_cyclic
+	2 mem_mesh_vendor_timer_timing_time_cyclic
+	2 mem_mesh_vendor_timer_timing_zone_cyclic
+	1 mem_mesh_vendor_timer_timing_weekdays_cyclic
+	2 mem_mesh_vendor_timer_timing_attr_type_cyclic
+	1 mem_mesh_vendor_timer_timing_attr_para_len_cyclic
+	8 mem_mesh_vendor_timer_timing_attr_para_cyclic
+	1 mem_mesh_vendor_timer_timing_cyclic_flag
+)
+
+amemalloc mem_mesh_vendor_timer_timing_palyload(
+	1 mem_mesh_vendor_timer_timing_index
+	4 mem_mesh_vendor_timer_timing_time
+	2 mem_mesh_vendor_timer_timing_attr_type
+	1 mem_mesh_vendor_timer_timing_attr_para_len
+	8 mem_mesh_vendor_timer_timing_attr_para
+	2 mem_mesh_vendor_timer_timing_flag
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	2 mem_mesh_vendor_message_cid
+	1 mem_mesh_vendor_message_tid
+	2 mem_mesh_vendor_message_attr_type
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	5 mem_mesh_vendor_message_header
+	0 mem_mesh_vendor_attr_parameter
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	5 mem_mesh_vendor_message_delay_close_time_header
+	2 mem_mesh_vendor_delay_close_time
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	5 mem_mesh_vendor_message_night_light_onoff_header
+	1 mem_mesh_vendor_night_light_onoff
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	5 mem_mesh_vendor_message_color_header
+	2 mem_mesh_vendor_color_lightness
+	2 mem_mesh_vendor_color_hue
+	2 mem_mesh_vendor_color_saturation
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	5 mem_mesh_vendor_message_back_light_onoff_header
+	1 mem_mesh_vendor_back_light_onoff
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	5 mem_mesh_vendor_message_main_light_onoff_header
+	1 mem_mesh_vendor_main_light_onoff
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	5 mem_mesh_vendor_message_standby_brightness_header
+	2 mem_mesh_vendor_standby_brightness
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	5 mem_mesh_vendor_message_current_time_header
+	4 mem_mesh_vendor_message_current_time
+)
+
+
+//amemalloc mem_mesh_receive_model_message_payload(
+//	5 mem_mesh_vendor_message_timer_header
+//	1 mem_mesh_vendor_timer_timing_index
+//	0 mem_mesh_vendor_timer_timing_index1
+//	4 mem_mesh_vendor_timer_timing_time
+//	2 mem_mesh_vendor_timer_timing_attr_type
+//	1 mem_mesh_vendor_timer_timing_attr_para
+//)
+
+//amemalloc mem_mesh_receive_model_message_payload(
+//	5 mem_mesh_vendor_message_timer_cyclic_header
+//	1 mem_mesh_vendor_timer_timing_index_cyclic
+//	2 mem_mesh_vendor_timer_timing_time_cyclic
+//	1 mem_mesh_vendor_timer_timing_weekdays_cyclic
+//	2 mem_mesh_vendor_timer_timing_attr_type_cyclic
+//	1 mem_mesh_vendor_timer_timing_attr_para_cyclic
+//	1 mem_mesh_vendor_timer_timing_cyclic_flag
+//)
+
+amemalloc mem_mesh_access_layer_payload(
+	//ali mesh vendor struct
+	1 mem_mesh_access_layer_payload_vendor_command
+	2 mem_mesh_access_layer_payload_vendor_CID
+	1 mem_mesh_access_layer_payload_vendor_tid
+	2 mem_mesh_access_layer_payload_vendor_attr_type
+	1 mem_mesh_access_layer_payload_vendor_attr_parameter
+)
+
+
+(
+0x00F0 VENDOR_MESSAGE_TMALL_DST
+)
+
+(// vendor model attribute
+0x0123 VENDOR_ATTR_COLOR_SERVER
+0x0100 VENDOR_ATTR_GENERIC_ONOFF_SERVER
+0x0121 VENDOR_ATTR_LIGHTNESS_LEVEL_SERVER
+0x0122 VENDOR_ATTR_COLOR_TEMPERATURE_SERVER
+0x0534 VENDOR_ATTR_MAIN_LIGHT_SERVER
+0x0533 VENDOR_ATTR_BACKGROUND_LIGHT_ONOFF_SERVER
+0xf004 VENDOR_ATTR_SCENE_SERVER
+)
+
+(//Timer opcode
+0x01A8 VENDOR_MESSAGE_OPCODE_COMPANY_ID
+//时间
+0xF01F VENDOR_MESSAGE_ATTR_TYPE_TIME
+//时区
+0xF01E VENDOR_MESSAGE_ATTR_TYPE_TIME_ZONE
+//对时
+0xF01D VENDOR_MESSAGE_ATTR_TYPE_ON_TIME
+//定时
+0xF010 VENDOR_MESSAGE_ATTR_TYPE_TIMING
+//周期定时
+0xF011 VENDOR_MESSAGE_ATTR_TYPE_CYCLE_TIMING
+//删除定时
+0xF012 VENDOR_MESSAGE_ATTR_TYPE_DELETE_TIMING
+
+//颜色
+0x0123 VENDOR_MESSAGE_ATTR_TYPE_COLOR
+//主灯
+0x0534 VENDOR_MESSAGE_ATTR_TYPE_MAIN_LIGHT
+//背光灯
+0x0533 VENDOR_MESSAGE_ATTR_TYPE_BACKGROUND_LIGHT
+)
+
+(//天猫event事件表
+//设备发生的事件，比如上电或者定时完成
+0xF009 VENDOR_ATTR_TYPE_EVENT_TRIGGER
+
+//天猫设备上电
+0x03 VENDOR_MESSAGE_EVENT_DEVICE_POWER_ON
+//天猫定时完成
+0x11 VENDOR_MESSAGE_EVENT_FINISH_TIMING
+)
+
+(
+0x80 VENDOR_MESSAGE_SEND_TID_MIN
+0xC0 VENDOR_MESSAGE_SEND_TID_MAX
+)
+
+(
+0x59 TIMER_CYCLICAL_FALG
+60 SECONDS_OF_MIN
+345600 SECONDS_OF_FOUR_DAYS
+604800 SECONDS_OF_WEEK
+86400 SECONDS_OF_DAY
+0x01e0 EIGHT_HOURS_TIME_ZONE_OFFSET
+
+)
+
+(
+0xF013 VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_SINGLE
+0xF014 VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_REPEAT
+0xF015 VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_CIRCULATION
+0xF016 VENDOR_MSEEAGE_ATTR_TYPE_TIMER_ENABLE
+0xF017 VENDOR_MESSAGE_ATTR_TYPE_TIMER_DELEATE
+0xF018 VENDOR_MESSAGE_ATTR_TYPE_TIMER_INQUIRE
+0xF019 VENDOR_MESSAGE_ATTR_TYPE_TIMER_EVENT_INQUIRE
+
+)
+
+(
+0xF020 VENDOR_ATTR_TYPE_EVENT_INDEX_REPORT
+)
+
+(
+0x0d MESH_X_TIMERS
+)
+
Index: format/mesh_protocol_stack/mesh_bearer_layer.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_bearer_layer.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_bearer_layer.format	(working copy)
@@ -0,0 +1,10 @@
+
+memalloc ali_mesh(
+	0 mem_mesh_queue_ele_temp
+	1 mem_mesh_queue_ele_duration
+	1 mem_mesh_queue_ele_gatt_msg_id
+	1 mem_mesh_queue_ele_len
+	31 mem_mesh_queue_ele_payload
+	1 mem_mesh_queue_ele_padding
+)
+
Index: format/mesh_protocol_stack/mesh_ble_core_advertising.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_ble_core_advertising.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_ble_core_advertising.format	(working copy)
@@ -0,0 +1,27 @@
+
+memalloc ali_mesh(
+	39 mem_le_txheader_mesh_temp
+	
+)
+
+xmemalloc ali_mesh(
+
+	
+	1 mem_mesh_adv_data_len
+	31 mem_mesh_adv_data
+
+	1 mem_mesh_adv_scan_channel
+)
+
+
+(
+6 ADV_PACKET_MIN_LENGTH
+37 ADV_PACKET_MAX_LENGTH
+
+1 AD_TYPE_MIN_LENGTH
+30 AD_TYPE_MAX_LENGTH
+)
+(
+13 mesh_ble_rx_timer
+)
+
Index: format/mesh_protocol_stack/mesh_chip_peripherals.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_chip_peripherals.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_chip_peripherals.format	(working copy)
@@ -0,0 +1,45 @@
+
+
+amemalloc mem_temp_block0(
+	64 mem_mesh_subscription_eep_temp
+)
+
+(//transport mic cache parameter
+10 TRANSPORT_MIC_CACHE_SPACE_NUM
+4 TRANSPORT_MIC_CACHE_SPACE_SIZE
+//总长度少一个space
+36 TRANSPORT_MIC_CACHE_TOTAL_SIZE
+)
+
+(
+0x00 MESH_EEP_THREE_TUPLE_OFFSET
+0x1a MESH_EEP_NETWORK_KEY_OFFSET
+0x2d MESH_EEP_APPLICATION_KEY_OFFSET
+0x3d MESH_EEP_DEVICE_KEY_OFFSET
+0x4d MESH_EEP_RESET_COUNT_OFFSET
+0x4e MESH_EEP_SEQ_OFFSET
+0x51 MESH_EEP_SUBSCRIPTION_OFFSET
+0x91 MESH_EEP_PROV_RANDOM_OFFSET
+)
+
+(
+0x1a MESH_EEP_THREE_TUPLE_LENGTH
+0x13 MESH_EEP_NETWORK_KEY_LENGTH
+0x10 MESH_EEP_APPLICATION_KEY_LENGTH
+0x10 MESH_EEP_DEVICE_KEY_LENGTH
+0x01 MESH_EEP_RESET_COUNT_LENGTH
+0x03 MESH_EEP_SEQ_LENGTH
+0x10 MESH_EEP_SUBSCRIPTION_LENGTH
+0x40 MESH_EEP_SUBSCRIPTION_TOTAL_LENGTH
+0x04 MESH_EEP_PROV_RANDOM_LENGTH
+)
+
+(
+0x1e000 MESH_FLASH_NETWORK_KEY_ADDR
+0x1e100 MESH_FLASH_APPLICATION_KEY_ADDR
+0x1e200 MESH_FLASH_DEVICE_KEY_ADDR
+0x1f000 MESH_FLASH_MESSAGE_SEQ_ADDR
+0x1e400 MESH_FLASH_SUBSCRIPTION_ADDR
+0x1e500 MESH_FLASH_PROV_RANDOM_ADDR
+)
+
Index: format/mesh_protocol_stack/mesh_control_ble_advertising.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_control_ble_advertising.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_control_ble_advertising.format	(working copy)
@@ -0,0 +1,63 @@
+
+
+xmemalloc ali_mesh(
+	1 mem_mesh_advertising_unprovisioned_device_beacon_switch
+	//未配网广播间隔
+	2 mem_mesh_advertising_unprovisioned_device_beacon_timer
+
+	//广播生存周期
+	1 mem_mesh_advertising_unprovisioned_device_beacon_duration
+	//广播周期之间的间隔
+	1 mem_mesh_advertising_unprovisioned_device_beacon_interval
+
+)
+
+(//mem_mesh_advertising_unprovisioned_device_beacon_switch
+0 DEVICE_BEACON_OFF
+1 DEVICE_BEACON_ON
+)
+
+(
+//未配网广播超时10min
+0x1770	ADV_UNPROVISIONED_DEVICE_BEACON_TIMEOUT
+//未配网广播间隔500ms
+5		ADV_UNPROVISIONED_DEVICE_BEACON_INTERVAL
+//未配网广播时长120ms=20ms*6
+6		ADV_UNPROVISIONED_DEVICE_BEACON_DURATION
+
+//静默广播超时:无
+0		ADV_SILENCE_DEVICE_BEACON_TIMEOUT
+//静默广播间隔60s
+600		ADV_SILENCE_DEVICE_BEACON_INTERVAL
+//静默广播时长120ms=20ms*6
+6		ADV_SILENCE_DEVICE_BEACON_DURATION
+
+
+//配网后广播间隔
+0x4		ADV_PAIRING_MESH_MESSAGE_INTERVAL
+//配网后广播时长
+20		ADV_PAIRING_MESH_MESSAGE_DURATION
+
+30		ADV_RELAY_MESH_MESSAGE_DURATION
+)
+
+(
+0x12 MAX_APP_MSSAGE_PAYLOAD_LENGTH
+7 BIT_OF_APP_PACKAGE_NUM
+6 BIT_OF_ADV_IN_OFF
+)
+
+(
+//mesh 回复APP广播间隔24*0.625ms = 15ms
+0x15 MESH_ADV_APP_MESSAGE_INTERVAL
+//mesh回复tmall广播间隔32*0.625ms = 20ms
+0x1d MESH_ADV_TMALL_MESSAGE_INTERVAL
+)
+(
+13 mesh_ble_adv_app
+//Tiny Mesh锟姐播tmall锟截革拷
+14 mesh_ble_adv_tmall
+//Tiny Mesh relay
+15 mesh_ble_relay_timer
+)
+
Index: format/mesh_protocol_stack/mesh_encrypt_function.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_encrypt_function.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_encrypt_function.format	(working copy)
@@ -0,0 +1,111 @@
+memalloc ali_mesh(
+	// sha256
+	0 mem_mesh_sha256_chunk_start
+	64 mem_mesh_sha256_chunk1
+	64 mem_mesh_sha256_chunk2
+	64 mem_mesh_sha256_chunk3
+	64 mem_mesh_sha256_chunk4
+
+	//obfuscation network PDU Header
+	0 mem_mesh_Privacy_Plaintext
+	5 mem_mesh_Privacy_Plaintext_Zero_String
+	4 mem_mesh_Privacy_Plaintext_IV_Index
+	0 mem_mesh_Privacy_Plaintext_Privacy_Random
+	2 mem_mesh_Privacy_Plaintext_Privacy_Random_EncDST
+	5 mem_mesh_Privacy_Plaintext_Privacy_Random_EncTransportPDU_or_NetMIC
+	16 mem_mesh_PECB
+
+	//basic function
+	//aes-ccm
+	2 mem_nonce_ptr
+	1 mem_ccm_data_len
+	2 mem_ccm_data_ptr
+	8 mem_ccm_mic
+	1 mem_ccm_type
+
+
+)
+
+xmemalloc ali_mesh(
+
+	0 mem_mesh_calc_ConfirmationCloud_data
+	8 mem_mesh_ConfirmationCloud_RandomB
+	8 mem_mesh_ConfirmationCloud_RandomA
+	16 mem_mesh_AuthValueProv
+	16 mem_mesh_ConfirmationCloud
+
+
+	//provisioning random  / provisioning_confirmation
+	0 mem_mesh_ConfirmationDevice
+	0 mem_mesh_calc_ConfirmationDevice_data
+	8 mem_mesh_provisioning_random_A
+	8 mem_mesh_provisioning_random_B
+	16 mem_mesh_AuthValueDevice
+
+	16 mem_mesh_Device_Key
+
+
+// CMAC Key
+	16 mem_mesh_Confirmationkey
+
+	//sha256 init data
+	15 mem_mesh_sha256_ConfirmationKey_ascii
+	10 mem_mesh_sha256_SessionKey_ascii
+	9 mem_mesh_sha256_DeviceKey_ascii
+
+	//sha256
+	1 mem_mesh_sha256_load_first_data_flag
+
+	8 mem_mesh_sha256_data_len_byte
+	8 mem_mesh_sha256_data_len_bit
+	2 mem_mesh_sha256_data_end_addr
+	2 mem_mesh_sha256_data_len_addr
+	1 mem_mesh_sha256_chunk_count
+	2 mem_mesh_sha256_chunk_data_ptr
+	2 mem_mesh_sha256_chunk_ptr
+
+
+	//function K2
+	//f2 input
+	1 mem_k2_P_len
+	16 mem_k2_P
+	16 mem_k2_N
+	//f2 init data
+	16 mem_k2_SALT
+	//f2 output
+	16 mem_k2_T
+	0 mem_k2_T0
+	16 mem_k2_T1
+	1 mem_k2_NID
+	16 mem_k2_T3
+	16 mem_k2_T2
+
+
+	//k4 function
+	16 mem_k4_SALT
+	16 mem_k4_T
+	16 mem_k4_id6_01
+	16 mem_k4_k4N
+	1 mem_mesh_transport_AID
+
+	16 mem_k3_SALT
+	16 mem_k3_T
+	5 mem_k3_id64_01
+	8 mem_k3_k4N
+	8 mem_mesh_network_id
+
+
+)
+
+(
+0x2c COMMA
+-4 DECREASED_FOUR
+
+)
+
+(
+0x19 MIC_SIZE_64BIT
+0x09 MIC_SIZE_32BIT
+)
+
+
Index: format/mesh_protocol_stack/mesh_fast_pairing.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_fast_pairing.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_fast_pairing.format	(working copy)
@@ -0,0 +1,199 @@
+memalloc ali_mesh(
+
+	16 mem_mesh_Device_UUID
+	
+	1 mem_mesh_receive_VID
+
+)
+
+
+xmemalloc ali_mesh(
+
+	// provisioning flag 标志是否入网
+	1 mem_mesh_provisioned_flag
+
+	//入网时的状态机
+	1 mem_mesh_Provisioning_State_Flag
+	
+	1 mem_mesh_Device_PID
+	1 mem_mesh_UUID_FeatureFlag
+	1 mem_mesh_UUID_FeatureFlag1
+	1 mem_mesh_PDU_RFU
+	2 mem_mesh_OOB_information
+
+	//Provisioning_Data
+	0 mem_mesh_Encrypt_Provisioning_Data
+	2 mem_mesh_provisioning_data_Mac_addr
+	1 mem_mesh_KeyFresh_and_Update_flag
+	16 mem_mesh_Network_Key
+	1 mem_mesh_last_IV_Index_byte
+	2 mem_mesh_Unicast_Address
+
+	1 mem_mesh_recv_cfg_appkey_add_timer
+
+	1 mem_mesh_report_power_on_timer
+	1 mem_mesh_report_full_attribute_timer
+
+	1 mem_mesh_health_node_reset_timer
+//	4 mem_mesh_adv_last_time
+	2 mem_mesh_send_packet_timeout
+
+	1 mem_mesh_gatt_package_send_msg_id
+
+)
+
+
+(
+33 GATT_RECEIVE_MSG_BUFFER_SIZE
+)
+
+xmemalloc ali_mesh(
+
+	1 mem_mesh_gatt_receive_msg_timer
+	//fast pairing 
+	//APP control 
+
+
+
+)
+
+amemalloc mem_mesh_queue_ele_temp(
+	2 mem_mesh_gatt_package_receive_msg_buffer_ptr
+	0 mem_mesh_gatt_package_receive_msg_buffer_temp
+	2 mem_mesh_gatt_package_receive_msg_id
+	0 mem_mesh_gatt_package_receive_MAC
+	1 mem_mesh_gatt_package_receive_msg_num
+	1 mem_mesh_gatt_package_receive_msg_total_length
+	29 mem_mesh_gatt_package_receive_msg_payload
+)
+
+amemalloc mem_mesh_Device_UUID(
+	2 mem_mesh_receive_service_uuid_company_id
+	1 mem_mesh_receive_service_uuid_vid
+	1 mem_mesh_receive_service_uuid_provisioning_type
+	2 mem_mesh_receive_service_uuid_mac
+	1 mem_mesh_receive_service_uuid_msg_id
+	1 mem_mesh_receive_service_uuid_package_num
+	1 mem_mesh_receive_service_uuid_length
+	7 mem_mesh_receive_service_uuid_payload_data
+)
+
+
+amemalloc mem_le_txheader_mesh_temp(
+	1 mem_mesh_fast_pair_packet_type
+)
+amemalloc mem_mesh_send_packet_timeout(
+	2 mem_mesh_fast_pairing_timer
+)
+
+(//mem_mesh_provisioned_flag
+0 PAIRED_STATUS
+1 UNPROVISIONED_BEACON_STATUS
+2 PAIRING_STATUS
+3 SILENCE_BEACON_STATUS
+4 RECEIVED_CONFIG_APPKEY_ADD
+5 WAIT_RECEIVE_APPKEY
+6 RECEIVE_CONFIG_COMPOSITION_DATA_GET
+)
+
+(//mem_mesh_UUID_FeatureFlag
+0 BIT_SILENCE_ADV_FLAG
+)
+
+//mem Beacon Tmall Length
+(
+0x01 UNPROVISIONED_ADLEN_LENGTH
+0x01 UNPROVISIONED_ADTYPE_LENGTH
+0x01 UNPROVISIONED_DEVICE_BEACON_LENGTH
+0x10 UNPROVISIONED_DEVICE_UUID_LENGTH
+0x02 UNPROVISIONED_OOB_INFORMATION_LENGTH
+)
+
+// mem Beacon Type
+(
+0x00 UNPROVISIONED_DEVICE_BEACON
+0x01 SECURE_NETWORK_BEACON
+0x1827 MESH_PROVISIONING_UUID
+0x1828 MESH_PROXY_SERVICE
+
+)
+
+// Provisioning Type
+(
+0x00 PROVISIONING_RANDOM
+0x01 PROVISIONING_CONFIRMATION
+0x02 PROVISIONING_DATA
+0x03 PROVISIONING_COMPLETE
+0x04 PROVISIONING_CONFIG
+0x05 PROVISIONING_CONFIG_ACK
+0x06 PROVISIONING_IOS_DATA
+0x07 PROVISIONING_SEND_IOS_DATA
+0x09 PROVISIONING_ADD_APPKEY
+0x0A PROVISIONING_ADD_APPKEY_ACK
+)
+
+(//mem_mesh_Provisioning_State_Flag
+// FLAG bit1:Provisioning Confirmation
+1 RECEIVE_PROVISIONING_RANDOM
+2 RECEIVE_PROVISIONING_DATA
+3 RECEIVE_PROVISIONING_ADD_APPKEY
+)
+
+
+(//provisioning packet info size
+3 PROVISIONING_PACKET_LENGTH_FLAGS
+6 PROVISIONING_PACKET_LENGTH_AD_TYPE_COMPANY_ID_VID_PROVISIONING_TYPE
+5 PROVISIONING_PACKET_AD_TYPE_COMPANY_ID_VID_PROVISIONING_TYPE
+1 PROVISIONING_PACKET_LENGTH
+1 PROVISIONING_PACKET_AD_TYPE
+2 PROVISIONING_PACKET_COMPANY_ID
+1 PROVISIONING_PACKET_VID
+1 PROVISIONING_PACKET_PROVISIONING_TYPE
+//provisioning random
+2 PROVISIONING_PACKET_RANDOM_MAC
+8 PROVISIONING_PACKET_RANDOM_RANDOM_A
+8 PROVISIONING_PACKET_RANDOM_RANDOM_B
+//provisioning confirmation
+2 PROVISIONING_PACKET_CONFIRMATION_MAC
+16 PROVISIONING_PACKET_CONFIRMATION_DEVICE
+//provisioning complete
+6 PROVISIONING_PACKET_COMPLETE_MAC
+//provisioning add appkey ack
+7 PROVISIONING_PACKET_ADD_APPKEY_ACK
+
+2 PROVISIONING_CONFIG_ACK_MAC
+1 PROVISIONING_CONFIG_ACK_FIELD
+
+)
+
+(
+0x01 PROVISIONING_CONFIG_ACK_NOTE
+)
+
+(//gatt package struct
+0 GATT_PACKAGE_MSG_ID
+1 GATT_PACKAGE_PACKAGE_NUM
+2 GATT_PACKAGE_LENGTH
+3 GATT_PACKAGE_PAYLOAD
+)
+
+(
+0x12 MAX_LENGTH_PRIVISIONING_CONTROL_MSG_ANDROID
+0x08 MAX_LENGTH_PRIVISIONING_CONTROL_MSG_IOS
+0x07 MAX_LENGTH_PRIVISIONING_PAIRING_MSG_IOS
+)
+
+(
+4 MAX_GATT_PACKAGE_NUM
+50 GATT_RECEIVE_TIMEOUT
+)
+
+(//mem_mesh_fast_pairing_timer
+300 FAST_PAIRING_TIMEOUT_PROVISIONING
+200 FAST_PAIRING_TIMEOUT_PROXY
+)
+
+(//mem_mesh_add_appkey_ack_timer
+2 FAST_PAIRING_TIMEOUT_ADD_APPKEY_ACK
+)
+
Index: format/mesh_protocol_stack/mesh_health_message.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_health_message.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_health_message.format	(working copy)
@@ -0,0 +1,27 @@
+
+amemalloc mem_mesh_receive_model_message_payload(
+	1 mem_mesh_configuration_health_message_opcode
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	1 mem_mesh_configuration_health_message_opcode_config_model_subscription
+	2 mem_mesh_subscription_element_address
+	2 mem_mesh_subscription_value_address
+	2 mem_mesh_subscription_model_identifier
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	1 mem_mesh_configuration_health_message_opcode_config_model_subscription_ow  //overwrite
+	2 mem_mesh_subscription_element_address_ow
+	1 mem_mesh_subscription_list_num_ow
+	2 mem_mesh_subscription_value_address_start_ow
+)
+
+(
+8 SUBSCRIPTION_MAX_COUNT
+)
+
+(
+20 HEALTH_NODE_RESET_TIMEOUT
+)
+
Index: format/mesh_protocol_stack/mesh_init.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_init.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_init.format	(working copy)
@@ -0,0 +1,203 @@
+memalloc ali_mesh(
+	2 mem_mesh_mic_cache_ptr
+	2 mem_adv_CRC_False_initValue
+	2 mem_CRC16_polynomial
+)
+
+
+xmemalloc ali_mesh(
+	4 mem_mesh_three_tuple_ProductID
+	6 mem_mesh_three_tuple_MAC
+	16 mem_mesh_three_tuple_secret
+
+
+	2 mem_mesh_cb_receive_advertising
+
+
+	2 mem_mesh_cb_receive_access_message
+
+
+	2 mem_mesh_cb_receive_config_appkey_add
+
+
+	2 mem_mesh_cb_pairing_fail
+
+	//ali vendor message cb
+	2 mem_mesh_cb_recv_vendor
+
+	2 mem_mesh_scan_selete_next_ch
+	
+	2 mem_mesh_cb_generic_onoff_get
+	2 mem_mesh_cb_generic_onoff_set
+	2 mem_mesh_cb_scene_recall
+	2 mem_mesh_cb_light_lightness_set
+	2 mem_mesh_cb_light_lightness_get
+	2 mem_mesh_cb_light_ctl_set
+
+	2 mem_mesh_cb_main_light_onoff_set
+	2 mem_mesh_cb_background_onoff_set
+	2 mem_mesh_cb_color_set
+
+
+	2 mem_mesh_cb_network_relay
+
+
+	2 mem_mesh_cb_receive_node_reset
+
+
+	2 mem_mesh_cb_seq_changed
+
+	2 mem_mesh_cb_subscriptuion_list_changed
+
+
+	2 mem_mesh_cb_vendor_timing_changed
+	
+
+	2 mem_mesh_core_feature
+
+	1 mem_mesh_element_number
+	2 mem_mesh_element_device_ptr
+	2 mem_mesh_element_device_length
+
+	2 mem_mesh_clear_provisioning_data
+
+	2 mem_mesh_app_deport_device_state
+
+	1 mem_mesh_chip_select
+
+
+)
+amemalloc mem_mesh_sha256_chunk_start(
+	0 mem_chip_clear_paired_info
+)
+
+(//typedef struct of mem_mesh_element_device
+0 ELEMENT_DEVICE_GROUP_ADDR
+2 ELEMENT_DEVICE_QUEUE_BUFFER_PTR
+4 ELEMENT_DEVICE_VENDOR_TIME_PTR
+6 ELEMENT_DEVICE_SUBSCRIPTION_LABEL
+22 ELEMENT_DEVICE_UPPER_ADV_FLAG
+23 ELEMENT_DEVICE_UPPER_QUEUE_PTR
+25 ELEMENT_DEVICE_TRAN_PACKAGE_TID
+26 ELEMENT_DEVICE_TRAN_PACKAGE_TYPE
+27 SIZEOF_ELEMENT_DEVICE
+
+)
+
+
+xmemalloc ali_mesh_element(
+	0 mem_mesh_element_device
+	2 mem_mesh_element_device_group_addr
+	2 mem_mesh_element_device_queue_buffer_ptr
+	2 mem_mesh_element_device_timing_ptr
+	16 mem_mesh_element_device_element_subscription_label
+	1 mem_mesh_element_upper_adv_flag
+	2 mem_mesh_element_upper_queue_buffer_ptr
+	1 mem_mesh_element_tran_package_tid
+	1 mem_mesh_element_tran_package_type
+
+	SIZEOF_ELEMENT_DEVICE mem_mesh_element_device1
+	SIZEOF_ELEMENT_DEVICE mem_mesh_element_device2
+)
+
+(
+36 MESH_SEGMENT_SIZE
+)
+
+xmemalloc ali_mesh_element(
+	MESH_SEGMENT_SIZE mem_mesh_segmented_access_message_Segment
+)
+
+
+
+(
+320 MESH_TIMER_BUFFER_SIZE
+)
+
+/*
+xmemalloc ali_mesh_element_timer(
+	MESH_TIMER_BUFFER_SIZE mem_mesh_element_timing
+	MESH_TIMER_BUFFER_SIZE mem_mesh_element_timing1
+	MESH_TIMER_BUFFER_SIZE mem_mesh_element_timing2
+)
+*/
+
+(//bit map of mem_mesh_core_feature
+0 MESH_FEATURE_DISABLE_LOG
+1 MESH_FEATURE_DISABLE_RELAY
+2 MESH_FEATURE_DISABLE_SUBSCRIPTION
+3 MESH_FEATURE_DISABLE_APP_PAIRING
+)
+
+(//taobao id
+0x01a8	COMPANY_IDENTIFIERS_ALIBABA
+0x0d	ALI_MESH_VID_NUMBER
+0x0da801 COMPANY_ID_ALIBABA_AND_VID
+0x0ea801 COMPANY_ID_ALIBABA_AND_VID_GATT
+)
+
+
+(
+0x00 MESH_CODE_INIT
+0x01 MESH_RECEIVE_PROVISIONING_PACKET
+0x02 MESH_RECEIVE_PROVISIONING_RANDOM_PACKET
+0x03 MESH_SEND_PROVISIONING_CONFIRMATION_PACKET
+0x04 MESH_RECEIVE_PROVISIONING_DATA_PACKET
+0x05 MESH_SEND_PROVISIONING_COMPLETE_PACKET
+0x06 MESH_RECEIVE_PROVISIONING_FAILED_PACKET
+0x07 MESH_RECEIVE_PROVISIONING_ADD_APPKEY_PACKET
+0x08 MESH_SEND_PROVISIONING_ADD_APPKEY_ACK_PACKET
+
+0x10 MESH_ENCRYPT_SHA256_FUNCTION_INPUT
+0x11 MESH_ENCRYPT_SHA256_FUNCTION_RESULT
+0x12 MESH_ENCRYPT_AES_CMAC_FUNCTION_INPUT_M
+0x13 MESH_ENCRYPT_AES_CMAC_FUNCTION_INPUT_K
+0x14 MESH_ENCRYPT_AES_CMAC_FUNCTION_RESULT
+
+0x20 MESH_NETWORK_RECEIVE_PACKET
+0x21 MESH_NETWORK_RELAY_PACKET
+
+0x30 MESH_LOWER_RECEIVE_PACKET
+0x40 MESH_UPPER_RECEIVE_PACKET
+0x41 MESH_UPPER_SEND_PACKET
+
+0x50 MESH_ACCESS_RECEIVE_MESSAGE
+
+0x60 MESH_PROXY_RECEIVE_MESSAGE_HANDLE
+0x61 MESH_PROXY_RECEIVE_MESSAGE
+
+0xF0 MESH_MESSAGE_GENERIC_ONOFF_SET
+0xF1 MESH_MESSAGE_SET_LIGHT_LIGHTNESS
+0xF2 MESH_MESSAGE_SET_CTL
+)
+
+(//LUA LOG 
+0xAA LUA_LOG_PACKET_HEADER
+0x03 LUA_LOG_PAKCET_TYPE
+0xBB LUA_LOG_PACKET_TRAIL
+)
+
+(//logging level
+0 LOGGING_DEBUG
+1 LOGGING_INFO
+2 LOGGING_WARNING
+3 LOGGING_ERROR
+4 LOGGING_CRITICAL
+)
+
+(
+0x1c00 mem_mesh_uart_log_rx_buff
+0x1c01 mem_mesh_uart_log_rx_buff_end
+0x1c02 mem_mesh_uart_log_tx_buff
+0x1fff mem_mesh_uart_log_tx_buff_end
+)
+
+(
+0x77 MESH_PAIRED_INFO_LENGTH
+)
+
+(
+0x01 MESH_CHIP_FROM_EEPROM
+0x02 MESH_CHIP_FROM_FLASH
+)
+
Index: format/mesh_protocol_stack/mesh_lower_transport_layer.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_lower_transport_layer.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_lower_transport_layer.format	(working copy)
@@ -0,0 +1,61 @@
+memalloc ali_mesh(
+	1 mem_mesh_lower_transport_layer_payload_len
+
+)
+
+
+
+xmemalloc ali_mesh(
+	//current segmented access message head
+	1 mem_mesh_segmented_access_message_SZMIC
+	2 mem_mesh_segmented_access_message_SeqZero
+	1 mem_mesh_segmented_access_message_SegO
+	1 mem_mesh_segmented_access_message_SegN
+
+	4 mem_mesh_segmented_access_message_BlockAck
+	1 mem_mesh_segmented_access_message_receive_finish
+	1 mem_mesh_segmented_access_message_current_length
+
+	1 mem_mesh_segmented_access_message_SegN_upper_limit
+	2 mem_mesh_segmented_access_message_Segment_ptr
+)
+
+amemalloc mem_mesh_send_access_lower_transport_layer(
+	//proxy configuration messages -----Filter Status message format
+	1 mem_mesh_filter_status_message_opcode
+	1 mem_mesh_filter_status_message_FilterType
+	2 mem_mesh_filter_status_message_ListSize
+	8 mem_mesh_filter_status_message_MIC
+)
+
+amemalloc mem_mesh_send_access_lower_transport_layer(
+	//bit7 is SEQ 0=Unsegment Message
+	//bit6 is AKF
+	//bit5-bit0 is AID
+	1 mem_mesh_unsegmented_access_lower_transport_layer_head
+	11 mem_mesh_unsegmented_access_lower_transport_layer_parameters
+	4 mem_mesh_unsegmented_access_lower_transport_layer_mic
+)
+
+amemalloc mem_mesh_send_access_lower_transport_layer(
+	//bit7 is SEQ 1=segment Message
+	//bit6 is AKF
+	//bit5-bit0 is AID
+	1 mem_mesh_segmented_access_lower_transport_layer_head
+	//bit23 is SZMIC size of transMIC
+	//bit22-bit10 is SeqZero Least significant bits of SeqAuth
+	//bit9-bit5 is SegO Segment offset number
+	//bit4-bit0 is SegN Last Segment number
+	3 mem_mesh_segmented_access_lower_transport_layer_SZMIC_SeqZero_SegO_SegN
+	8 mem_mesh_segmented_access_lower_transport_layer_parameters
+	4 mem_mesh_segmented_access_lower_transport_layer_mic
+)
+
+(
+7 TRANSPORT_HEAD_BIT_SEG
+6 TRANSPORT_HEAD_BIT_AKF
+05 TRANSPORT_HEAD_BIT_AID
+7 BIT_CTL
+)
+
+
Index: format/mesh_protocol_stack/mesh_model_layer.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_model_layer.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_model_layer.format	(working copy)
@@ -0,0 +1,70 @@
+
+
+xmemalloc ali_mesh(
+	2 mem_mesh_last_CTL_Temperature
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	1 mem_mesh_module_message_opcode
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	//generic OnOff Set
+	1 mem_mesh_module_message_opcode_onoff_set
+	1 mem_mesh_generic_onoff_set_payload_OnOff
+	1 mem_mesh_generic_onoff_set_payload_TID
+	1 mem_mesh_generic_onoff_set_payload_Transition_Time
+	1 mem_mesh_generic_onoff_set_payload_Delay
+
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	//Scene recall 模式设置
+	1 mem_mesh_module_message_opcode_scene_recall
+	2 mem_mesh_scene_recall_payload_scene_number
+	1 mem_mesh_scene_recall_payload_TID
+	1 mem_mesh_scene_recall_payload_Transition_Time
+	1 mem_mesh_scene_recall_payload_Delay
+
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	//light lightness
+	1 mem_mesh_module_message_opcode_set_light_lightness
+	2 mem_mesh_light_lightness_set_payload_lightness
+	1 mem_mesh_light_lightness_set_payload_TID
+	1 mem_mesh_light_lightness_set_payload_Transition_Time
+	1 mem_mesh_light_lightness_set_payload_Delay
+	1 mem_mesh_light_lightness_calc_lightness
+)
+
+amemalloc mem_mesh_receive_model_message_payload(
+	//light CTL
+	1 mem_mesh_module_message_opcode_set_light_ctl
+	2 mem_mesh_CTL_Lightness
+	2 mem_mesh_CTL_Temperature
+	2 mem_mesh_CTL_Delta_UV
+	1 mem_mesh_CTL_lightness_TID
+	1 mem_mesh_CTL_lightness_Transition_Time
+	1 mem_mesh_CTL_lightness_Delay	
+	1 mem_mesh_CTL_calc_lightness
+	1 mem_mesh_CTL_calc_temperature
+
+)
+
+(//Generic OnOff
+0x00 GENERIC_ONOFF_CMD_OFF
+0x01 GENERIC_ONOFF_CMD_ON
+)
+
+(//LIGHTNESS
+0xFFFF ALI_MESH_LIGHTNESS_MAX
+0x0064 ALI_MESH_LIGHTNESS_LEVEL
+)
+
+(//TEMPERATURE
+0x4E20 ALI_MESH_TEMPERATURE_MAX
+0x0320 ALI_MESH_TEMPERATURE_MIN
+0x0064 ALI_MESH_TEMPERATURE_LEVEL
+)
+
Index: format/mesh_protocol_stack/mesh_more_element_check.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_more_element_check.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_more_element_check.format	(working copy)
@@ -0,0 +1,17 @@
+
+memalloc ali_mesh(
+	2 mem_mesh_loopcnt_tmep
+	2 mem_mesh_rega_temp
+	2 mem_mesh_regb_temp
+	2 mem_mesh_regc_temp
+	2 mem_mesh_alarm_temp
+	
+)
+
+
+
+xmemalloc ali_mesh(
+	1 mem_mesh_receive_group_address
+	1 mem_mesh_receive_element_number
+)
+
Index: format/mesh_protocol_stack/mesh_network_layer.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_network_layer.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_network_layer.format	(working copy)
@@ -0,0 +1,137 @@
+
+
+memalloc ali_mesh(
+	1 mem_mesh_message_Transport_NetMIC_length
+
+	1 mem_mesh_message_NID
+	1 mem_mesh_message_TTL
+	3 mem_mesh_message_SEQ
+	2 mem_mesh_message_SRC
+	2 mem_mesh_message_DST
+	0 mem_mesh_message_Proxy_TransportPDU_opcode
+	0 mem_mesh_message_Transport_NetMIC
+	1 mem_mesh_message_Transport_Head
+	//unsegmented access message
+	0 mem_mesh_message_Proxy_TransportPDU_Parameters
+	0 mem_mesh_message_Transport_unsegmented_access_messagePDU
+	//segmented access message
+	0 mem_mesh_message_Transport_segmented_access_messagePDU
+	3 mem_mesh_message_segment_access_SZMIC_SeqZero_SegO_SegN
+	0 mem_mesh_message_Transport_segmented_access_messagePDU_Segment
+	16 mem_mesh_message_Transport_NetMIC_end
+
+	13 mem_mesh_nonce_struct
+
+	2 mem_mesh_send_message_DST
+	3 mem_mesh_last_message_SEQ
+	1 mem_mesh_network_packet_type
+
+	1 mem_mesh_receive_message_count
+	2 mem_mesh_receive_message_first_unicast_address
+	2 mem_mesh_receive_message_second_unicast_address
+	2 mem_mesh_receive_message_third_unicast_address
+	2 mem_mesh_receive_message_fourth_unicast_address	
+
+)
+
+xmemalloc ali_mesh(
+	1 mem_mesh_network_dup_cache_next
+	1 mem_mesh_network_msg_cache_next
+	2 mem_mesh_network_proxy_unicast_address
+
+	4 mem_mesh_IV_Index
+
+
+
+// mesh SRC/SEQ  cache
+	0 mem_mesh_TMALL_cache_start
+	2 mem_mesh_TMALL_SRC1
+	3 mem_mesh_TMALL_SEQ1
+	45 mem_mesh_TMALL_cache
+	0 mem_mesh_TMALL_cache_end
+
+	0 mem_mesh_transport_message_mic_cache
+	4 mem_mesh_transport_message_mic_cache_buff1
+	36 mem_mesh_transport_message_mic_cache_buff2_10
+
+	0 mem_mesh_network_relay_queue
+	1 mem_mesh_network_relay_queue_each_size
+	1 mem_mesh_network_relay_queue_length
+	1 mem_mesh_network_relay_queue_current_num
+	1 mem_mesh_network_relay_queue_read_ptr
+	1 mem_mesh_network_relay_queue_write_ptr
+	136 mem_mesh_network_relay_queue_ele
+
+)
+
+
+amemalloc mem_k2_T2(
+	16 mem_k2_EncryptionKey
+)
+
+amemalloc mem_k2_T3(
+	16 mem_k2_PrivacyKey
+)
+
+amemalloc mem_mesh_nonce_struct(
+	//DST and TransportPDU encryption
+	0 mem_mesh_Network_Nonce
+	1 mem_mesh_Network_Nonce_nonce_type
+	1 mem_mesh_Network_Nonce_CTL_and_TTL
+	3 mem_mesh_Network_Nonce_SEQ
+	2 mem_mesh_Network_Nonce_SRC
+	2 mem_mesh_Network_Nonce_Pad	//0x0000
+	4 mem_mesh_Network_Nonce_IV_Index
+
+)
+
+amemalloc mem_le_txheader_mesh_temp(
+	1 mem_mesh_network_packet_type_temp
+
+	1 mem_mesh_message_NID_temp
+	1 mem_mesh_message_TTL_temp
+	3 mem_mesh_message_SEQ_temp
+	2 mem_mesh_message_SRC_temp
+	2 mem_mesh_message_DST_temp
+	20  mem_mesh_message_Transport_PDU_temp
+)
+
+(//nonce type
+0x00 NETWORK_NONCE
+0x01 APPLICATION_NONCE
+0x02 DEVICE_NONCE
+0x03 PROXY_NONCE
+)
+
+
+(
+0x00c0 GROUP_ADDRESS_0XC000_little_endian
+0xffcf GROUP_ADDRESS_0XCFFF_little_endian
+0x02c0 GROUP_ADDRESS_0XC002_little_endian
+0x07c0 GROUP_ADDRESS_0XC007_little_endian
+0x01c0 GROUP_ADDRESS_0XC001_little_endian
+0xffff GROUP_ADDRESS_0XFFFF_little_endian
+)
+
+
+(//SRC SEQ cache parameter
+10 CACHE_SPACE_NUM
+5 CACHE_SPACE_SIZE
+)
+
+(
+12 MESH_NETWORK_PACKET_MIN_LENGTH
+30 MESH_NETWORK_PACKET_MAX_LENGTH
+)
+
+(
+0 MESH_MESSAGE_TMALL
+1 MESH_MESSAGE_APP
+2 MESH_MESSAGE_PROXY
+)
+
+(
+
+0x20 MESH_ADV_RELAY_MESSAGE_INTERVAL
+)
+
Index: format/mesh_protocol_stack/mesh_proxy_layer.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_proxy_layer.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_proxy_layer.format	(working copy)
@@ -0,0 +1,50 @@
+
+memalloc ali_mesh(
+	0 mem_mesh_Proxy_Nonce
+	1 mem_mesh_Proxy_Nonce_Nonce_Type
+	1 mem_mesh_Proxy_Nonce_Pad
+	3 mem_mesh_Proxy_Nonce_SEQ
+	2 mem_mesh_Proxy_Nonce_SRC
+	2 mem_mesh_Proxy_Nonce_Pad2
+	4 mem_mesh_Proxy_Nonce_IV_Index
+
+	16 mem_mesh_white_list
+	2 mem_mesh_white_list_num
+	1 mem_mesh_addressed_filter_type
+)
+
+
+xmemalloc ali_mesh_element(
+	196 mem_mesh_le_att_list
+	3 mem_mesh_send_message_SEQ_temp
+	
+)
+
+(
+0x00 MESH_PROXY_SERVICE_DATA_ID_TYPE_NETWORK_ID
+0x01 MESH_PROXY_SERVICE_DATA_ID_TYPE_NODE_IDENTITY
+)
+
+(
+0x00 MESH_PROXY_MESSAGE_TYPE_NETWORK_PDU
+0x01 MESH_PROXY_MESSAGE_TYPE_MESH_BEACON
+0x02 MESH_PROXY_MESSAGE_TYPE_PROXY_CONFIGURATION
+0x03 MESH_PROXY_MESSAGE_TYPE_PROVISIONING_PDU
+)
+
+(
+0x0e	MESH_PROXY_DATA_IN_HANDLE
+0x10	MESH_PROXY_DATA_OUT_HANDLE
+0x11	MESH_PROXY_ENABLE_DATA_OUT_HANDLE
+0x14	MESH_PROVISIONING_DATA_IN_HANDLE
+0x16	MESH_PROVISIONING_DATA_OUT_HANDLE
+0x17	MESH_PROVISIONING_ENABLE_DATA_OUT_HANDLE
+)
+
+(
+0x00 PROXY_OPCODE_SET_FILTER_TYPE
+0x01 PROXY_OPCODE_ADD_ADDR_TO_FILTER
+0x02 PROXY_OPCODE_REMOVE_ADDR_TO_FILTER
+0x03 PROXY_OPCODE_FILTER_STATUS
+)
+
Index: format/mesh_protocol_stack/mesh_sha.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_sha.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_sha.format	(working copy)
@@ -0,0 +1,15 @@
+
+memalloc (
+	0 memresult
+	0 mem_sp_calc_result
+	4 memh
+	4 memg
+	4 memf
+	4 meme
+	0 mem_sp_calc_result_high
+	4 memd
+	4 memc
+	4 memb
+	4 mema
+)
+
Index: format/mesh_protocol_stack/mesh_upper_transport_layer.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_upper_transport_layer.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/mesh_protocol_stack/mesh_upper_transport_layer.format	(working copy)
@@ -0,0 +1,172 @@
+
+memalloc ali_mesh(
+	2 mem_mesh_upper_transport_layer_payload_ptr
+	1 mem_mesh_segmented_upper_transport_layer_payload_len
+	2 mem_mesh_segmented_lower_transport_layer_SegZero
+	1 mem_mesh_segmented_lower_transport_layer_SegO
+	1 mem_mesh_segmented_lower_transport_layer_SegN
+	1 mem_mesh_segmented_last_packet_upper_teansport_payload_len
+
+	0 mem_mesh_upper_tran_layer_queue_temp
+	1 mem_mesh_upper_tran_layer_temp_packet_flag
+	2 mem_mesh_upper_tran_layer_temp_packet_transmit_delay
+	1 mem_mesh_upper_tran_layer_temp_packet_TID
+	1 mem_mesh_upper_tran_layer_temp_packet_header_IVI_NID
+	1 mem_mesh_upper_tran_layer_temp_packet_header_CTL_TTL
+	3 mem_mesh_upper_tran_layer_temp_packet_header_SEQ
+	2 mem_mesh_upper_tran_layer_temp_packet_header_SRC
+	2 mem_mesh_upper_tran_layer_temp_packet_header_DST
+	1 mem_mesh_upper_tran_layer_temp_packet_length
+	108 mem_mesh_upper_tran_layer_temp_packet_payload
+
+
+	64 mem_mesh_network_dup_cache
+	80 mem_mesh_network_msg_cache
+
+	1 mem_mesh_network_relay_gatt_queue_each_size
+	1 mem_mesh_network_relay_gatt_queue_length
+	1 mem_mesh_network_relay_gatt_queue_current_num
+	1 mem_mesh_network_relay_gatt_queue_read_ptr
+	1 mem_mesh_network_relay_gatt_queue_write_ptr
+	340 mem_mesh_network_relay_gatt_queue_ele
+
+	
+
+	
+
+)
+
+xmemalloc ali_mesh(
+	16 mem_mesh_application_key
+	1 mem_mesh_ASZMIC
+
+	0 mem_mesh_access_message_mic_cache
+	4 mem_mesh_access_message_mic_cache_buff1
+	36 mem_mesh_access_message_mic_cache_buff2_10
+
+	3 mem_mesh_send_message_SEQ
+
+	2 mem_mesh_send_message_SRC
+
+	1 mem_mesh_send_message_TTL
+
+	//Upper transport access PDU
+	1 mem_mesh_send_upper_layer_IVI_and_NID
+	1 mem_mesh_send_upper_layer_CTL_and_TTL
+	3 mem_mesh_send_upper_layer_SEQ
+	2 mem_mesh_send_upper_layer_SRC
+	2 mem_mesh_send_upper_layer_DST
+	16 mem_mesh_send_access_lower_transport_layer
+	4 mem_mesh_send_network_layer_NetMIC
+
+	1 mem_mesh_upper_tran_layer_packet_advertising
+	1 mem_mesh_upper_tran_layer_packet_tid
+	1 mem_mesh_upper_tran_layer_packet_type
+
+	1 mem_mesh_upper_receive_new_message_timer
+
+	1 mem_mesh_upper_tran_layer_queue_each_size
+	1 mem_mesh_upper_tran_layer_queue_length
+	1 mem_mesh_upper_tran_layer_queue_current_num
+	1 mem_mesh_upper_tran_layer_queue_read_ptr
+	1 mem_mesh_upper_tran_layer_queue_write_ptr
+	40 mem_mesh_upper_tran_layer_queue_element_1
+	40 mem_mesh_upper_tran_layer_queue_element_2
+	40 mem_mesh_upper_tran_layer_queue_element_3
+	40 mem_mesh_upper_tran_layer_queue_element_4
+
+	1 mem_mesh_queue_each_size
+	1 mem_mesh_queue_length
+	1 mem_mesh_queue_current_num
+	1 mem_mesh_queue_read_ptr
+	1 mem_mesh_queue_write_ptr
+	136 mem_mesh_queue_ele
+
+)
+
+
+amemalloc mem_mesh_nonce_struct(
+	//application payload encryption
+	0 mem_mesh_Application_Nonce
+	1 mem_mesh_Application_Nonce_Nonce_Type
+	//bit7 is ASZMIC
+	1 mem_mesh_Application_Nonce_ASZMIC_and_Pad	//
+	3 mem_mesh_Application_Nonce_SEQ
+	2 mem_mesh_Application_Nonce_SRC
+	2 mem_mesh_Application_Nonce_DST
+	4 mem_mesh_Application_Nonce_IV_Index
+)
+
+amemalloc mem_mesh_nonce_struct(
+	//application payload encryption
+	0 mem_mesh_Device_Nonce
+	1 mem_mesh_Device_Nonce_Nonce_Type
+	1 mem_mesh_Device_Nonce_ASZMIC_and_Pad	//
+	3 mem_mesh_Device_Nonce_SEQ
+	2 mem_mesh_Device_Nonce_SRC
+	2 mem_mesh_Device_Nonce_DST
+	4 mem_mesh_Device_Nonce_IV_Index
+)
+
+amemalloc mem_mesh_access_layer_payload_len(
+	1 mem_mesh_upper_transport_layer_payload_len
+)
+
+amemalloc mem_mesh_upper_tran_layer_temp_packet_payload(
+//unsegment access message
+	0 mem_mesh_upper_tran_layer_temp_pakcet_AKF_AID
+	1 mem_mesh_upper_tran_layer_temp_unsegmented_pakcet_AKF_AID
+	4 mem_mesh_upper_tran_layer_temp_unsegmented_packet_fill
+	0 mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu
+	15 mem_mesh_upper_tran_layer_temp_unsegmented_pakcet_upper_tran_access_pdu
+)
+
+amemalloc mem_mesh_upper_tran_layer_temp_packet_payload(
+//segment access message
+	1 mem_mesh_upper_tran_layer_temp_segmented_pakcet_AKF_AID
+	2 mem_mesh_upper_tran_layer_temp_segmented_pakcet_SeqZero
+	1 mem_mesh_upper_tran_layer_temp_segmented_pakcet_SegO
+	1 mem_mesh_upper_tran_layer_temp_segmented_pakcet_SegN
+	104 mem_mesh_upper_tran_layer_temp_segmented_pakcet_upper_tran_access_pdu
+)
+
+
+
+(
+15 UNSEGMENTED_ACCESS_MESSAGE_MAX_UPPER_TRANSPORT_ACCESS_PDU_LEN
+12 SEGMENTED_ACCESS_MESSAGE_UNINT_PDU_LEN
+)
+
+(//bit of mem_mesh_upper_tran_layer_temp_packet_flag
+7 BIT_UPPER_FLAG_PROXY_CONTROL
+6 BIT_UPPER_FLAG_APP_CONTROL
+5 BIT_UPPER_FLAG_VENDOR_INDICATION
+4 BIT_UPPER_FLAG_RETRANSMIT
+//BIT3-0
+0x0f DATA_UPPER_FLAG_MAX_RETRY_COUNT
+
+1 UPPER_RETRY_COUNT_STATUS
+1 UPPER_RETRY_COUNT_INDICATION
+)
+
+(
+0 NULL_PACKET_ADVERTISING
+1 PACKET_IN_BEARER
+2 PACKET_IN_ADVERTING
+3 PACKET_RECEIVE_INDICATION
+)
+
+(
+1 UPPER_TRAN_TMALL_MESSAGE
+2 UPPER_TRAN_APP_MESSAGE
+3 UPPER_TRAN_TMALL_AND_APP
+
+0 BIT_UPPER_TRAN_TMALL_MESSAGE
+1 BIT_UPPER_TRAN_APP_MESSAGE
+2 BIT_UUPER_TRAN_PROXY_MESSAGE
+)
+
+(
+30 MESH_RECEIVE_NEW_MESSAGE_TIMER
+)
+
Index: format/patch.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/patch.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/patch.format	(working copy)
@@ -0,0 +1,516 @@
+
+(
+	  0 patch00_0
+	  1 patch00_1
+	  2 patch00_2
+	  3 patch00_3
+	  4 patch00_4
+	  5 patch00_5
+	  6 patch00_6
+	  7 patch00_7
+	  8 patch01_0
+	  9 patch01_1
+	 10 patch01_2
+	 11 patch01_3
+	 12 patch01_4
+	 13 patch01_5
+	 14 patch01_6
+	 15 patch01_7
+	 16 patch02_0
+	 17 patch02_1
+	 18 patch02_2
+	 19 patch02_3
+	 20 patch02_4
+	 21 patch02_5
+	 22 patch02_6
+	 23 patch02_7
+	 24 patch03_0
+	 25 patch03_1
+	 26 patch03_2
+	 27 patch03_3
+	 28 patch03_4
+	 29 patch03_5
+	 30 patch03_6
+	 31 patch03_7
+	 32 patch04_0
+	 33 patch04_1
+	 34 patch04_2
+	 35 patch04_3
+	 36 patch04_4
+	 37 patch04_5
+	 38 patch04_6
+	 39 patch04_7
+	 40 patch05_0
+	 41 patch05_1
+	 42 patch05_2
+	 43 patch05_3
+	 44 patch05_4
+	 45 patch05_5
+	 46 patch05_6
+	 47 patch05_7
+	 48 patch06_0
+	 49 patch06_1
+	 50 patch06_2
+	 51 patch06_3
+	 52 patch06_4
+	 53 patch06_5
+	 54 patch06_6
+	 55 patch06_7
+	 56 patch07_0
+	 57 patch07_1
+	 58 patch07_2
+	 59 patch07_3
+	 60 patch07_4
+	 61 patch07_5
+	 62 patch07_6
+	 63 patch07_7
+	 64 patch08_0
+	 65 patch08_1
+	 66 patch08_2
+	 67 patch08_3
+	 68 patch08_4
+	 69 patch08_5
+	 70 patch08_6
+	 71 patch08_7
+	 72 patch09_0
+	 73 patch09_1
+	 74 patch09_2
+	 75 patch09_3
+	 76 patch09_4
+	 77 patch09_5
+	 78 patch09_6
+	 79 patch09_7
+	 80 patch0a_0
+	 81 patch0a_1
+	 82 patch0a_2
+	 83 patch0a_3
+	 84 patch0a_4
+	 85 patch0a_5
+	 86 patch0a_6
+	 87 patch0a_7
+	 88 patch0b_0
+	 89 patch0b_1
+	 90 patch0b_2
+	 91 patch0b_3
+	 92 patch0b_4
+	 93 patch0b_5
+	 94 patch0b_6
+	 95 patch0b_7
+	 96 patch0c_0
+	 97 patch0c_1
+	 98 patch0c_2
+	 99 patch0c_3
+	100 patch0c_4
+	101 patch0c_5
+	102 patch0c_6
+	103 patch0c_7
+	104 patch0d_0
+	105 patch0d_1
+	106 patch0d_2
+	107 patch0d_3
+	108 patch0d_4
+	109 patch0d_5
+	110 patch0d_6
+	111 patch0d_7
+	112 patch0e_0
+	113 patch0e_1
+	114 patch0e_2
+	115 patch0e_3
+	116 patch0e_4
+	117 patch0e_5
+	118 patch0e_6
+	119 patch0e_7
+	120 patch0f_0
+	121 patch0f_1
+	122 patch0f_2
+	123 patch0f_3
+	124 patch0f_4
+	125 patch0f_5
+	126 patch0f_6
+	127 patch0f_7
+	128 patch10_0
+	129 patch10_1
+	130 patch10_2
+	131 patch10_3
+	132 patch10_4
+	133 patch10_5
+	134 patch10_6
+	135 patch10_7
+	136 patch11_0
+	137 patch11_1
+	138 patch11_2
+	139 patch11_3
+	140 patch11_4
+	141 patch11_5
+	142 patch11_6
+	143 patch11_7
+	144 patch12_0
+	145 patch12_1
+	146 patch12_2
+	147 patch12_3
+	148 patch12_4
+	149 patch12_5
+	150 patch12_6
+	151 patch12_7
+	152 patch13_0
+	153 patch13_1
+	154 patch13_2
+	155 patch13_3
+	156 patch13_4
+	157 patch13_5
+	158 patch13_6
+	159 patch13_7
+	160 patch14_0
+	161 patch14_1
+	162 patch14_2
+	163 patch14_3
+	164 patch14_4
+	165 patch14_5
+	166 patch14_6
+	167 patch14_7
+	168 patch15_0
+	169 patch15_1
+	170 patch15_2
+	171 patch15_3
+	172 patch15_4
+	173 patch15_5
+	174 patch15_6
+	175 patch15_7
+	176 patch16_0
+	177 patch16_1
+	178 patch16_2
+	179 patch16_3
+	180 patch16_4
+	181 patch16_5
+	182 patch16_6
+	183 patch16_7
+	184 patch17_0
+	185 patch17_1
+	186 patch17_2
+	187 patch17_3
+	188 patch17_4
+	189 patch17_5
+	190 patch17_6
+	191 patch17_7
+	192 patch18_0
+	193 patch18_1
+	194 patch18_2
+	195 patch18_3
+	196 patch18_4
+	197 patch18_5
+	198 patch18_6
+	199 patch18_7
+	200 patch19_0
+	201 patch19_1
+	202 patch19_2
+	203 patch19_3
+	204 patch19_4
+	205 patch19_5
+	206 patch19_6
+	207 patch19_7
+	208 patch1a_0
+	209 patch1a_1
+	210 patch1a_2
+	211 patch1a_3
+	212 patch1a_4
+	213 patch1a_5
+	214 patch1a_6
+	215 patch1a_7
+	216 patch1b_0
+	217 patch1b_1
+	218 patch1b_2
+	219 patch1b_3
+	220 patch1b_4
+	221 patch1b_5
+	222 patch1b_6
+	223 patch1b_7
+	224 patch1c_0
+	225 patch1c_1
+	226 patch1c_2
+	227 patch1c_3
+	228 patch1c_4
+	229 patch1c_5
+	230 patch1c_6
+	231 patch1c_7
+	232 patch1d_0
+	233 patch1d_1
+	234 patch1d_2
+	235 patch1d_3
+	236 patch1d_4
+	237 patch1d_5
+	238 patch1d_6
+	239 patch1d_7
+	240 patch1e_0
+	241 patch1e_1
+	242 patch1e_2
+	243 patch1e_3
+	244 patch1e_4
+	245 patch1e_5
+	246 patch1e_6
+	247 patch1e_7
+	248 patch1f_0
+	249 patch1f_1
+	250 patch1f_2
+	251 patch1f_3
+	252 patch1f_4
+	253 patch1f_5
+	254 patch1f_6
+	255 patch1f_7
+	  0 patch20_0
+	  1 patch20_1
+	  2 patch20_2
+	  3 patch20_3
+	  4 patch20_4
+	  5 patch20_5
+	  6 patch20_6
+	  7 patch20_7
+	  8 patch21_0
+	  9 patch21_1
+	 10 patch21_2
+	 11 patch21_3
+	 12 patch21_4
+	 13 patch21_5
+	 14 patch21_6
+	 15 patch21_7
+	 16 patch22_0
+	 17 patch22_1
+	 18 patch22_2
+	 19 patch22_3
+	 20 patch22_4
+	 21 patch22_5
+	 22 patch22_6
+	 23 patch22_7
+	 24 patch23_0
+	 25 patch23_1
+	 26 patch23_2
+	 27 patch23_3
+	 28 patch23_4
+	 29 patch23_5
+	 30 patch23_6
+	 31 patch23_7
+	 32 patch24_0
+	 33 patch24_1
+	 34 patch24_2
+	 35 patch24_3
+	 36 patch24_4
+	 37 patch24_5
+	 38 patch24_6
+	 39 patch24_7
+	 40 patch25_0
+	 41 patch25_1
+	 42 patch25_2
+	 43 patch25_3
+	 44 patch25_4
+	 45 patch25_5
+	 46 patch25_6
+	 47 patch25_7
+	 48 patch26_0
+	 49 patch26_1
+	 50 patch26_2
+	 51 patch26_3
+	 52 patch26_4
+	 53 patch26_5
+	 54 patch26_6
+	 55 patch26_7
+	 56 patch27_0
+	 57 patch27_1
+	 58 patch27_2
+	 59 patch27_3
+	 60 patch27_4
+	 61 patch27_5
+	 62 patch27_6
+	 63 patch27_7
+	 64 patch28_0
+	 65 patch28_1
+	 66 patch28_2
+	 67 patch28_3
+	 68 patch28_4
+	 69 patch28_5
+	 70 patch28_6
+	 71 patch28_7
+	 72 patch29_0
+	 73 patch29_1
+	 74 patch29_2
+	 75 patch29_3
+	 76 patch29_4
+	 77 patch29_5
+	 78 patch29_6
+	 79 patch29_7
+	 80 patch2a_0
+	 81 patch2a_1
+	 82 patch2a_2
+	 83 patch2a_3
+	 84 patch2a_4
+	 85 patch2a_5
+	 86 patch2a_6
+	 87 patch2a_7
+	 88 patch2b_0
+	 89 patch2b_1
+	 90 patch2b_2
+	 91 patch2b_3
+	 92 patch2b_4
+	 93 patch2b_5
+	 94 patch2b_6
+	 95 patch2b_7
+	 96 patch2c_0
+	 97 patch2c_1
+	 98 patch2c_2
+	 99 patch2c_3
+	100 patch2c_4
+	101 patch2c_5
+	102 patch2c_6
+	103 patch2c_7
+	104 patch2d_0
+	105 patch2d_1
+	106 patch2d_2
+	107 patch2d_3
+	108 patch2d_4
+	109 patch2d_5
+	110 patch2d_6
+	111 patch2d_7
+	112 patch2e_0
+	113 patch2e_1
+	114 patch2e_2
+	115 patch2e_3
+	116 patch2e_4
+	117 patch2e_5
+	118 patch2e_6
+	119 patch2e_7
+	120 patch2f_0
+	121 patch2f_1
+	122 patch2f_2
+	123 patch2f_3
+	124 patch2f_4
+	125 patch2f_5
+	126 patch2f_6
+	127 patch2f_7
+	128 patch30_0
+	129 patch30_1
+	130 patch30_2
+	131 patch30_3
+	132 patch30_4
+	133 patch30_5
+	134 patch30_6
+	135 patch30_7
+	136 patch31_0
+	137 patch31_1
+	138 patch31_2
+	139 patch31_3
+	140 patch31_4
+	141 patch31_5
+	142 patch31_6
+	143 patch31_7
+	144 patch32_0
+	145 patch32_1
+	146 patch32_2
+	147 patch32_3
+	148 patch32_4
+	149 patch32_5
+	150 patch32_6
+	151 patch32_7
+	152 patch33_0
+	153 patch33_1
+	154 patch33_2
+	155 patch33_3
+	156 patch33_4
+	157 patch33_5
+	158 patch33_6
+	159 patch33_7
+	160 patch34_0
+	161 patch34_1
+	162 patch34_2
+	163 patch34_3
+	164 patch34_4
+	165 patch34_5
+	166 patch34_6
+	167 patch34_7
+	168 patch35_0
+	169 patch35_1
+	170 patch35_2
+	171 patch35_3
+	172 patch35_4
+	173 patch35_5
+	174 patch35_6
+	175 patch35_7
+	176 patch36_0
+	177 patch36_1
+	178 patch36_2
+	179 patch36_3
+	180 patch36_4
+	181 patch36_5
+	182 patch36_6
+	183 patch36_7
+	184 patch37_0
+	185 patch37_1
+	186 patch37_2
+	187 patch37_3
+	188 patch37_4
+	189 patch37_5
+	190 patch37_6
+	191 patch37_7
+	192 patch38_0
+	193 patch38_1
+	194 patch38_2
+	195 patch38_3
+	196 patch38_4
+	197 patch38_5
+	198 patch38_6
+	199 patch38_7
+	200 patch39_0
+	201 patch39_1
+	202 patch39_2
+	203 patch39_3
+	204 patch39_4
+	205 patch39_5
+	206 patch39_6
+	207 patch39_7
+	208 patch3a_0
+	209 patch3a_1
+	210 patch3a_2
+	211 patch3a_3
+	212 patch3a_4
+	213 patch3a_5
+	214 patch3a_6
+	215 patch3a_7
+	216 patch3b_0
+	217 patch3b_1
+	218 patch3b_2
+	219 patch3b_3
+	220 patch3b_4
+	221 patch3b_5
+	222 patch3b_6
+	223 patch3b_7
+	224 patch3c_0
+	225 patch3c_1
+	226 patch3c_2
+	227 patch3c_3
+	228 patch3c_4
+	229 patch3c_5
+	230 patch3c_6
+	231 patch3c_7
+	232 patch3d_0
+	233 patch3d_1
+	234 patch3d_2
+	235 patch3d_3
+	236 patch3d_4
+	237 patch3d_5
+	238 patch3d_6
+	239 patch3d_7
+	240 patch3e_0
+	241 patch3e_1
+	242 patch3e_2
+	243 patch3e_3
+	244 patch3e_4
+	245 patch3e_5
+	246 patch3e_6
+	247 patch3e_7
+	248 patch3f_0
+	249 patch3f_1
+	250 patch3f_2
+	251 patch3f_3
+	252 patch3f_4
+	253 patch3f_5
+	254 patch3f_6
+	255 patch3f_7
+
+)
Index: format/regs.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/regs.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/regs.format	(working copy)
@@ -0,0 +1,549 @@
+(
+	0x8000 core_chipid
+	0x8001 core_revid
+	0x8003 core_kick
+	0x8004 core_write_wdt
+	0x8005 core_lpm_wr
+	0x8006 core_misc_ctrl
+	0x8007 core_otp_rdata
+	0x8007 core_efuse_rdata
+	0x800a core_ccm_ctrl
+	0x800b core_write_wdt2
+	0x8010 core_reset
+	0x8011 core_encrypt
+	0x8012 core_lpm_wr2
+	0x8020 core_set_bistfix
+	0x8022 core_ucode_hi
+	0x8023 core_ucode_ctrl
+	0x8024 core_ucode_low
+	0x8025 core_ucode_data
+
+	0x8040 core_halfslot
+	0x8042 core_clksel
+	0x8043 core_uart_clksel
+	0x8043 core_config
+	0x8044 core_otp_addr
+	0x8046 core_otp_din
+	0x8046 core_otp_ctrl2
+	0x8047 core_otp_ctrl
+	0x8047 core_otp_pab
+	0x8048 core_xtal_stable_time
+	0x8049 core_gpio_ds
+	0x804c core_lpm_reg
+	0x8050 core_clkoff
+	0x8052 core_uart_baud
+	0x8054 core_uart_rsaddr
+	0x8056 core_uart_readdr
+	0x8058 core_uart_rrptr
+	0x805a core_uart_tsaddr
+	0x805c core_uart_teaddr
+	0x805e core_uart_twptr
+	0x8060 core_uart_ctrl
+	0x8061 core_nec_ctrl
+	0x8062 core_nec_start_addr
+	0x8064 core_nec_end_addr
+	0x8066 core_nec_rptr
+	0x8068 core_ccm_input_playload_addr
+	0x806a core_ccm_output_playload_addr
+	0x806c core_ccm_aad0
+	0x806d core_ccm_aad1
+	0x806e core_ccm_aad2
+	0x806f  core_bist_ctrl
+	0x8070 core_gpio_conf
+	0x8080 core_spid_ctrl
+	0x8081 core_spid_delay
+	0x8082 core_spid_txlen
+	0x8084 core_spid_txaddr
+	0x8086 core_spid_rxaddr
+	0x8088 core_spid_rxlen
+	0x808a core_iicd_ctrl
+	0x808b core_iicd_scl_low
+	0x808c core_iicd_scl_high
+	0x808d core_iicd_start_setup
+	0x808e core_iicd_start_hold
+	0x808f core_iicd_stop_setup
+	0x8090 core_iicd_data_setup
+	0x8091 core_iicd_data_hold
+	0x8092 core_iicd_txlen
+	0x8094 core_iicd_txaddr
+	0x8096 core_iicd_rxaddr
+	0x8098 core_iicd_rxlen
+	0x809a core_pwm_en
+	0x809b core_pwm_init
+	0x809c core_pwm_pcnt0
+	0x809e core_pwm_ncnt0
+	0x80a0 core_pwm_pcnt1
+	0x80a2 core_pwm_ncnt1
+	0x80a4 core_pwm_pcnt2
+	0x80a6 core_pwm_ncnt2
+	0x80a8 core_pwm_pcnt3
+	0x80aa core_pwm_ncnt3
+	0x80ac core_pwm_pcnt4
+	0x80ae core_pwm_ncnt4
+	0x80b0 core_pwm_pcnt5
+	0x80b2 core_pwm_ncnt5
+	0x80b4 core_pwm_pcnt6
+	0x80b6 core_pwm_ncnt6
+	0x80b8 core_pwm_pcnt7
+	0x80ba core_pwm_ncnt7
+	0x80bc core_pwm_sync
+	0x80bd core_pwm_timermode
+	0x80be core_pwm_autoload
+	0x80bf core_sum_ctrl
+	0x80c0 core_ccm_inptr
+	0x80c2 core_dac_ctrl	
+	0x80c3 core_dac_vol
+	0x80c4 core_dac_saddr
+	0x80c6 core_dac_len
+	0x80c8 core_dac_coef
+	0x80cb core_ccnt_bit
+	0x80cc core_sadc_ctrl
+	0x80cd core_sadc_clkdiv
+	0x80ce core_sadc_saddr
+	0x80d0 core_sadc_eaddr
+	0x80d2 core_keybuf_saddr
+	0x80d4 core_gpio_conf_hi
+	
+	0x8108 core_misc_status
+	0x8109 core_qdec_cntx
+	0x810a core_watchdog_cnt
+	0x810b core_uart_status
+	0x810c core_uart_rbaud
+	0x810e core_uart_txitems
+	0x8110 core_uart_trptr
+	0x8112 core_uart_rxitems
+	0x8114 core_uart_rdptr
+	0x8116 core_uart_rwptr
+	0x8118 core_debug_baud
+	0x811a core_ccm_outptr
+	0x811c core_gpio_in
+	0x811d core_gpio_in1
+	0x811e core_adc_sum
+	0x8120 core_nec_wptr
+	0x8122 core_current_otp_addr
+	0x8124 core_spid_remain
+	0x8126 core_iicd_remain
+	0x8128 core_dma_status
+	0x8129 core_perf_status
+	0x812a core_adc_in
+	0x812c core_nec_rxitem
+	0x812e core_otpd_remain
+	0x8130 core_lpm_ctrl
+	0x8132 core_lpm_isogate
+	0x8133 core_lpm_ldosel
+	0x8134 core_io_vsel
+	0x8135 core_io_doze_en
+	0x813a core_xtal_cap
+	0x813d core_xtal_ib
+	0x813e core_lpm_xtalcnt
+	0x813f core_lpm_buckcnt
+	0x8140 core_lpm_ldocnt
+	0x8141 core_puwakeup
+	0x8142 core_lpm_sysctl
+	0x8143 core_ucode_flag
+	0x8144 core_peripheral_lock
+	0x8145 core_mpu_s0_saddr
+	0x8147 core_mpu_s0_eaddr
+	0x8149 core_mpu_s1_saddr
+	0x814b core_mpu_s1_eaddr
+	0x814d core_gpio_wakeup_cfg
+	0x8155 core_aes_decode_key_init
+	0x815b core_clk_counter
+	0x815e core_bist_done
+	0x8160 core_bist_fail
+	0x8162 core_dac_rptr	
+	0x8164 core_sadc_data	
+	0x8166 core_rccnt_counter
+		
+	0x8203 core_ice_ctrl
+	0x8204 core_ice_status
+	0x8205 core_ice_break0
+	0x8207 core_ice_break1
+  
+
+	0x8900 modem_en
+	0x8960 core_rf_rx_agc_ctrl
+	0x8961 core_rf_rx_gain_fix
+	0x8968 core_agc_wb_sat_th
+	0x8969 core_agc_nb_sat_th
+	0x89a0 modem_rssi
+	0x89a1 modem_wb_pow
+	0x89a2 modem_nb_pow
+	0x89a3 modem_gain
+	0x89a4 modem_status
+
+	0x8a00 core_bbpll_ctrl0              
+	0x8a01 core_bbpll_ctrl1              
+	0x8a02 core_bbpll_cfg0               
+	0x8a03 core_bbpll_cfg1               
+	0x8a04 core_bbpll_cfg2               
+	0x8a05 core_bbpll_cfg3               
+	0x8a06 core_bbpll_cfg4               
+	0x8a07 core_gpadc_ctrl
+	0x8a08 core_gpadc_cfg0
+	0x8a09 core_gpadc_cfg1
+	0x8a0a core_gpadc_cfg2
+	0x8a0b core_gpadc_cfg3
+	0x8a0c core_gpadc_status
+	0x8a0d core_vtest_ctrl0
+	0x8a0e core_vtest_ctrl1
+	0x8a0f core_ldo_trx_ctrl0
+	0x8a10 core_ldo_trx_ctrl1
+	0x8a11 core_ldo_trx_ctrl2
+	0x8a12 core_ldo_rfpll_ctrl
+    0x8a13 core_ldo_trx_cfg0
+    0x8a14 core_ldo_trx_cfg1
+    0x8a15 core_ldo_trx_cfg2
+    0x8a16 core_ldo_rfpll_mnc_cfg2
+
+    0x8a20 core_rfpll_afc_ctrl0
+    0x8a21 core_rfpll_afc_ctrl1
+    0x8a22 core_rfpll_afc_ctrl2
+    0x8a23 core_rfpll_en_ctrl0
+    0x8a24 core_rfpll_en_ctrl1
+    0x8a25 core_rf_en_ctrl0
+    0x8a26 core_rf_en_ctrl1
+
+	0x8a30 core_rx_force_en_ctrl
+	0x8a31 core_rx_gc_force_val
+	0x8a32 core_rx_lna_isel_force_val
+
+	0x8a40 core_rx_lna_hg_isel_gc7        
+	0x8a41 core_rx_lna_hg_isel_gc6        
+	0x8a42 core_rx_lna_hg_isel_gc5        
+	0x8a43 core_rx_lna_lg_isel_gc4        
+	0x8a44 core_rx_lna_lg_isel_gc3        
+	0x8a45 core_rx_lna_lg_isel_gc2        
+	0x8a46 core_rx_lna_lg_isel_gc1        
+	0x8a47 core_rx_lna_lg_isel_gc0        
+	0x8a48 core_rx_abb_gc_gc8              
+	0x8a49 core_rx_abb_gc_gc7              
+	0x8a4a core_rx_abb_gc_gc6              
+	0x8a4b core_rx_abb_gc_gc5              
+	0x8a4c core_rx_abb_gc_gc4              
+	0x8a4d core_rx_abb_gc_gc3              
+	0x8a4e core_rx_abb_gc_gc2              
+	0x8a4f core_rx_abb_gc_gc1              
+	0x8a50 core_rx_abb_gc_gc0              
+
+	0x8a60 core_tx_ctrl0
+	0x8a61 core_tx_ctrl1
+	0x8a62 core_tx_ctrl2
+	0x8a63 core_tx_ctrl3
+
+	0x8a70 core_rfpll_cal_ctrl0
+	0x8a71 core_rfpll_cal_ctrl1
+	0x8a72 core_rfpll_cal_ctrl2
+	0x8a73 core_rfpll_cal_ctrl3
+	0x8a74 core_rfpll_cal_ctrl4
+	0x8a75 core_rfpll_cal_ctrl5
+	0x8a76 core_rfpll_cal_ctrl6
+	0x8a77 core_rfpll_cal_ctrl7
+	0x8a78 core_rfpll_cal_ctrl8
+	0x8a79 core_rfpll_cal_ctrl9
+	0x8a7a core_rfpll_cal_ctrl10
+	0x8a7b core_rfpll_cal_ctrl11
+	0x8a7c core_rfpll_cal_result0
+	0x8a7d core_rfpll_cal_result1
+	0x8a7e core_rfpll_cal_result2
+
+    0x8a80 core_rfpll_cfg0
+    0x8a81 core_rfpll_cfg1
+    0x8a82 core_rfpll_cfg2
+    0x8a83 core_rfpll_cfg3
+    0x8a84 core_rfpll_cfg4
+    0x8a85 core_rfpll_cfg5
+    0x8a86 core_rfpll_cfg6
+    0x8a87 core_rfpll_cfg7
+
+    0x8a88 core_rx_cfg0
+    0x8a89 core_rx_cfg1
+    0x8a8a core_rx_cfg2
+    0x8a8b core_rx_cfg3
+    0x8a8c core_rx_cfg4
+    0x8a8d core_rx_cfg5
+    0x8a8e core_rx_cfg6
+    0x8a8f core_rx_cfg7
+    0x8a90 core_rx_cfg8
+
+	0x8aa0 core_rx_tiai_dcoc_gc0          
+	0x8aa1 core_rx_tiaq_dcoc_gc0          
+	0x8aa2 core_rx_tiai_dcoc_gc1          
+	0x8aa3 core_rx_tiaq_dcoc_gc1          
+	0x8aa4 core_rx_tiai_dcoc_gc2          
+	0x8aa5 core_rx_tiaq_dcoc_gc2          
+	0x8aa6 core_rx_tiai_dcoc_gc3          
+	0x8aa7 core_rx_tiaq_dcoc_gc3          
+	0x8aa8 core_rx_tiai_dcoc_gc4          
+	0x8aa9 core_rx_tiaq_dcoc_gc4          
+	0x8aaa core_rx_tiai_dcoc_gc5          
+	0x8aab core_rx_tiaq_dcoc_gc5          
+	0x8aac core_rx_tiai_dcoc_gc6          
+	0x8aad core_rx_tiaq_dcoc_gc6          
+	0x8aae core_rx_tiai_dcoc_gc7          
+	0x8aaf core_rx_tiaq_dcoc_gc7          
+	0x8ab0 core_rx_abbi_dcoc_gc0
+	0x8ab1 core_rx_abbq_dcoc_gc0
+	0x8ab2 core_rx_abbi_dcoc_gc1
+	0x8ab3 core_rx_abbq_dcoc_gc1           
+	0x8ab4 core_rx_abbi_dcoc_gc2
+	0x8ab5 core_rx_abbq_dcoc_gc2
+	0x8ab6 core_rx_abbi_dcoc_gc3
+	0x8ab7 core_rx_abbq_dcoc_gc3
+	0x8ab8 core_rx_abbi_dcoc_gc4
+	0x8ab9 core_rx_abbq_dcoc_gc4
+	0x8aba core_rx_abbi_dcoc_gc5
+	0x8abb core_rx_abbq_dcoc_gc5
+	0x8abc core_rx_abbi_dcoc_gc6
+	0x8abd core_rx_abbq_dcoc_gc6
+	0x8abe core_rx_abbi_dcoc_gc7
+	0x8abf core_rx_abbq_dcoc_gc7
+	0x8ac0 core_rx_abbi_dcoc_gc8
+	0x8ac1 core_rx_abbq_dcoc_gc8
+	0x8ac2 core_rx_tiai_dcoc_force
+	0x8ac3 core_rx_tiaq_dcoc_force
+	0x8ac4 core_rx_abbi_dcoc_force
+	0x8ac5 core_rx_abbq_dcoc_force
+	0x8ac8 core_chgpump_ctrl
+
+	0x8c00 core_usb_config
+	0x8c01 core_usb_addr
+	0x8c02 core_usb_rx_saddr
+	0x8c04 core_usb_rx_eaddr
+	0x8c06 core_usb_rxptr
+	0x8c08 core_usb_tx_saddr0
+	0x8c0a core_usb_tx_saddr1
+	0x8c0c core_usb_tx_saddr2
+	0x8c0e core_usb_tx_saddr3
+	0x8c10 core_usb_epmap
+	0x8c11 core_usb_pupd
+	0x8c12 core_usb_hmode
+	0x8c13 core_usb_int_mask
+	0x8c18 core_usb_trig
+	0x8c19 core_usb_stall
+	0x8c1a core_usb_toggle
+	0x8c1b core_usb_clear_nak
+	0x8c20 core_usb_rx_wptr
+	0x8c22 core_usb_status
+	0x8c24 core_usb_stall_status
+	0x8c25 core_usb_txbusy
+	0x8c26 core_usb_sof_cnt
+	0x8c28 core_usb_rxcnt
+
+	
+
+
+
+    
+    
+)
+
+(
+7 AES_EN
+)
+
+(
+4 rx_freq_offset
+2 tx_freq_offset
+)
+
+(
+/* bit difinitions */
+  4 whiteoff_bit
+  6 clksel_rc
+  1 clksel_dpll_24M
+  5 clksel_dpll
+  4 clksel_xtal
+  5 adc_rccal
+  0 bpf_rccal
+  1 demod_clkoff
+)
+
+// retention mem ctrl
+(
+  4 cold_wake
+  5 gpio_latch
+  6 retmem_cs
+  7 isogate
+)
+
+// sys ctrl
+(
+  2 fast_wake
+  3 ice_mode
+  4 reload_code
+)
+
+// lpm_write
+(
+1 lpmreg_sel_counter
+2 lpmreg_sel_scanmode
+)
+
+// lock bits
+(
+0 SPI_LOCK_BIT
+1 PWM_LOCK_BIT
+2 UART_LOCK_BIT
+3 IIC_LOCK_BIT
+4 ADPCM_LOCK_BIT
+5 ROM_LOCK_BIT
+6 OPTION_LOCK
+6 OTP_NOT_LIMIT
+7 OTP_LIMIT
+)
+
+(
+4 LPM_DOZE_EN_BIT	
+)
+
+// misc ctrl
+(
+  0x01 RCCNT_START
+  0x02 SPID_START
+  0x04 IICD_START
+  0x08 OTP_KEY_LOCK
+  0x10 INIT_KEY
+  0x20 SHIFT_KEY
+  0X80 CCNT_START
+)
+// DMA STATUS BIT
+(
+  0 OTPD_CRCOK
+  1 OTPD_DONE
+  2 SPID_CRCOK
+  3 SPID_DONE
+  4 IICD_CRCOK
+  5 IICD_DONE
+  6 IICD_ACK
+)
+
+//bit map of core_uart_status
+(
+1 UART_STATUS_TX_BUSY
+2 UART_STATUS_RX_FIFO_EMPTY
+3 UART_STATUS_RX_FIFO_FULL
+4 UARTB_STATUS_TX_BUSY
+5 UARTB_STATUS_RX_FIFO_EMPTY
+6 UARTB_STATUS_RX_FIFO_FULL
+)
+
+(//core_uart_clksel
+0 UART_CLOCK_SELECT_BIT
+0xFE UART_CLOCK_SELECT_CRYSTAL
+0x01 UART_CLOCK_SELECT_DPLL
+
+24000000 uart_clock_freq_24M
+48000000 uart_clock_freq_48M
+)
+
+
+(//bit map of core_uart_ctrl
+0 BIT_UART_CONTROL_ENABLE
+1 BIT_UART_CONTROL_PARITY
+2 BIT_UART_CONTROL_DATA_LENGTH
+3 BIT_UART_CONTROL_STOP_BIT_SIZE
+4 BIT_UART_CONTROL_FLOW_CONTROL
+5 BIT_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+6 BIT_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+7 BIT_UART_CONTROL_RATE_BAUD_SETTING
+)
+(//FUN of core_uart_ctrl
+0x01 FUN_UART_CONTROL_ENABLE
+0x06 FUN_UART_CONTROL_PARITY_ODD
+0x04 FUN_UART_CONTROL_PARITY_EVEN
+0x08 FUN_UART_CONTROL_STOP_2BIT
+0x00 FUN_UART_CONTROL_STOP_1BIT
+0x10 FUN_UART_CONTROL_FLOW_CONTROL_ENABLE
+0x20 FUN_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+0x40 FUN_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+0x80 FUN_UART_CONTROL_SETTING_RATE_BAUD
+)
+
+(//bit map of core_nec_control
+0x00 BIT_NEC_ENABLE
+0x01 BIT_NEC_CLK_DIVIDE_NUM
+)
+
+(//FUN  of core_nec_control
+0x01 FUN_NEC_ENABLE
+0x30 FUN_NEC_CLK_DIVIDE_24	//24M , 
+)
+
+0x8b uart_ctrl_default //BCSP
+0x81 uart_ctrl_h4 //H4
+0x81 uart_ctrl_normal
+0x91 uart_ctrl_5line
+0x81 uart_ctrl_57600
+2 uart_baud_len
+0x00 uartclk_crystal
+0x01 uartclk_dpll
+0x1a0 uart_baud_115200
+0xbb uart_baud_256000
+0x340 uart_baud_57600
+0x34 uart_baud_921600
+0x9c4 uart_baud_9600
+
+//core_clkoff
+(
+	0 CLOCK_OFF_AUTH_ROM
+	1 CLOCK_OFF_UC_ROM
+	2 CLOCK_OFF_DEBUG_UART
+	3 CLOCK_OFF_SCHED_RAM
+	4 CLOCK_OFF_TRANCE_FIFO
+	5 CLOCK_OFF_CORDIC
+	6 CLOCK_OFF_OTPD
+	7 CLOCK_OFF_I2C
+	8 CLICK_OFF_SARADC_DMA
+	9 CLOCK_OFF_KEYSCAN
+	0x0a CLOCK_OFF_USB
+	0x0b CLOCK_OFF_QDECODER
+	0x0c CLOCK_OFF_SPI
+	0x0d CLOCK_OFF_PWM
+	0x0e CLOCK_OFF_UARTB
+	0x0f CLOCK_OFF_UART
+)
+
+// gpio config types
+(
+  0 gpcfg_input
+  6 gpcfg_dac_p  
+  7 gpcfg_dac_n
+  8 gpcfg_uart_txd
+  9 gpcfg_uart_rxd
+  10 gpcfg_uart_rts
+  11 gpcfg_uart_cts
+  
+  16 gpcfg_pwm_out0
+  17 gpcfg_pwm_out1
+  18 gpcfg_pwm_out2
+  19 gpcfg_pwm_out3
+  20 gpcfg_pwm_out4
+  21 gpcfg_pwm_out5
+  22 gpcfg_pwm_out6
+  23 gpcfg_pwm_out7
+  24 gpcfg_nec_input
+  
+  31 gpcfg_spid_miso
+  32 gpcfg_spid_ncs
+  33 gpcfg_spid_sck
+  34 gpcfg_spid_mosi
+  35 gpcfg_spid_sdio
+  
+  44 gpcfg_iic_scl
+  45 gpcfg_iic_sda
+  
+  62 gpcfg_output_low
+  63 gpcfg_output_high
+  
+  0x00 gpcfg_high_impedance
+  0x40 gpcfg_pullup
+  0x80 gpcfg_pulldown
+  0xc0 gpcfg_no_ie
+)
+
+(
+16	GPIO_NUMBER
+8	GPIO_NUMBER_EXT
+)
+
Index: format/security.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/security.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/security.format	(working copy)
@@ -0,0 +1,63 @@
+
+memalloc (
+16 mem_input_store
+
+2 mem_ec_loopc
+1 mem_aes_cmac_data_length
+
+96 mem_dat
+
+/* ecc calculation */
+32 mem_ax_256 //32 bytes
+32 mem_ay_256 // 32 bytes
+32 mem_az_256 // 32 bytes
+32 mem_bx_256 // 32 bytes
+32 mem_by_256 // 31 bytes
+
+0 mem_bz_256  //32 bytes
+0 mem_tmp1
+24 memahbak
+8 mem_tmp5
+32 mem_cx_256  //32 bytes
+31 mem_cy_256  // 32 bytes
+1 mem_cy5_256 // 1 byte
+32 mem_cz_256 // 32 bytes
+32 mem_k_256 //32 bytes
+32  mem_tmp1_256 //32 bytes
+
+32 mem_tmp5_256
+32  mem_tmp2_256
+0 mem_tmp3_256
+32 mem_t1_256
+0 mem_tmp0_256
+32 mem_t0_256
+32 mem_t2_256
+32 mem_t3_256
+32 mem_t7_256
+
+24 mem_p
+24 mem_a
+24 mem_b
+24 mem_gx
+24 mem_gy
+32 memh0
+
+32 mem_p_256		
+32 mem_a_256
+32 mem_gx_256
+32 mem_gy_256
+16 mem_le_slat
+
+)
+
+xmemalloc(
+5 mem_ccm_pcnt_tx
+5 mem_ccm_pcnt_rx
+4 mem_ccm_last_mic
+0 mem_ccm_iv
+4 mem_ccm_ivm
+4 mem_ccm_ivs
+2 mem_ccm_len
+2 mem_ccm_rx_ptr
+)
+
Index: format/simple_pairing.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/simple_pairing.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/simple_pairing.format	(working copy)
@@ -0,0 +1,68 @@
+
+ifdef SECURE_CONNECTION
+
+memalloc(
+0 mem_sp_state_start
+1 mem_sp_dhkey_invalid
+4 mem_gkey
+0 mem_sp_state_end
+
+32 mem_le_pubkey_remote_x_256
+32 mem_le_pubkey_remote_y_256
+32 mem_le_dhkey_256
+
+16 mem_sp_confirm_remote
+)
+
+xmemalloc(
+1 mem_sc_only_mode
+1 mem_sp_debug_mode
+1 mem_secure_connections_enable
+1 mem_sc_calc
+1 mem_sc_local_key_invalid
+
+
+32 mem_sc_private_key_256
+32 mem_sc_pubkey_local_x_256
+32 mem_sc_pubkey_local_y_256
+
+
+0 mem_sp_state_xmem
+1 mem_authentication_passkey_times
+1 mem_passkey_1bit
+0 mem_sp_state_xmem_end
+)
+endif
+
+/* simple pairing status flag */
+(
+  0x00   SP_FLAG_STANDBY
+  0x02   LE_SP_FLAG_COMMIT_256
+
+)
+
+/* simple pairing calc flag */
+(
+  0x00   SP_CALC_STANDBY
+  0x03   SP_CALC_PUBKEY_256
+  0x04   SP_CALC_DHKEY_256
+)
+
+
+
+/* simple paring invalid flag */
+(
+  0x00   SP_KEY_INVALID
+  0x03   SP_KEY_VALID_256
+
+)
+
+
+//mem_secure_connections_enable
+(
+0 SECURE_CONNECTIONS_LE_BIT
+1 SECURE_CONNECTIONS_BR_BIT
+)
+
+
+  
Index: format/ui.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ui.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/ui.format	(working copy)
@@ -0,0 +1,148 @@
+/*****************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                                */
+/* $Author: Administrator $                                                           */
+/* $Id: bt_ui_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $     */
+/************************************************************************/
+
+
+	/* ========= memory ============== */
+memalloc(
+1 mem_ipc_skip_continue_proc
+) 
+
+xmemalloc(
+//UI Work area
+1 mem_ipc_lock_bt
+1 mem_ipc_lock_c51
+8 mem_ipc_fifo_bt2c51
+8 mem_ipc_fifo_c512bt
+
+1 mem_ui_button_timer
+1 mem_ui_button_last_state
+4 mem_ui_timer_last_btclk
+2 mem_ui_state_map
+
+1 mem_ui_button_timeout
+1 mem_ui_button_gpio
+1 mem_ui_led_init_state_set
+
+1 mem_ui_led_struct_num
+2 mem_ui_led_struct_ptr
+
+)
+
+
+//mem_ui_state_map
+(
+9 UI_STATE_BLE_CONNECTED
+10 UI_STATE_BLE_WRITE_RCV
+11 UI_STATE_BLE_ADV
+12 UI_STATE_BTN_DOWN
+)
+
+
+
+/* memui_Commands */
+(
+0 BT_CMD_STANDBY
+13 BT_CMD_START_ADV
+14 BT_CMD_STOP_ADV
+15 BT_CMD_START_DIRECT_ADV
+16 BT_CMD_STOP_DIRECT_ADV
+17 BT_CMD_LE_DISCONNECT
+18 BT_CMD_LE_UPDATE_CONN
+19 BT_CMD_LED_OFF
+20 BT_CMD_LED_ON
+21 BT_CMD_LED_BLINK
+22 BT_CMD_LE_START_CONN
+23 BT_CMD_LE_START_SCAN
+24 BT_CMD_LE_STOP_SCAN
+25 BT_CMD_ENTER_HIBERNATE
+27 BT_CMD_LE_SMP_SECURITY_REQUEST
+31 BT_CMD_STORE_RECONN_INFO_LE
+34 BT_CMD_START_24G
+35 BT_CMD_STOP_24G
+36 BT_CMD_PAIR_24G
+)
+
+(
+0x00 BT_EVT_NULL
+0x0F BT_EVT_DISCOVERY_STOPED
+0x10 BT_EVT_BUTTON_LONG_PRESSED
+0x14 BT_EVT_LE_CONNECTED
+0X15 BT_EVT_LE_DISCONNECTED
+0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
+0x25 BT_EVT_BUTTON_ADJUST_DPI
+0x28 BT_EVT_LE_WRITE_REQUEST
+0x29 BT_EVT_LE_ENC_INFO
+0x2c BT_EVT_BUTTON_DOWN
+0x2d BT_EVT_BUTTON_UP
+0x2e BT_EVT_REMOTE_UNSNIFF
+0x30 BT_EVT_LE_PAIRING_FAIL
+0x31 BT_EVT_LE_PAIRING_SUCCESS
+0x32 BT_EVT_LE_START_ENC
+0X33 BT_EVT_LE_PAUSE_ENC
+0X34 BT_EVT_LE_TK_GENERATE
+0x35 BT_EVT_BT_GKEY_GENERATE
+0x36 BT_EVT_BT_GET_PASSKEY
+0x39 BT_EVT_24G_PAIRING_COMPLETE
+0x3a BT_EVT_24G_ATTEMPT_FAIL
+0x3b BT_EVT_LE_GKEY_GENERATE
+0x3c BT_EVT_24G_ATTEMPT_SUCCESS
+0x3d BT_EVT_STORE_NVRAM
+0x3e BT_EVT_LE_PAIRING_COMPLETE
+0x3F BT_EVT_LE_RECONNECT_COMPLETE
+0x40 BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP
+0x41 BT_EVT_LE_LTK_LOST
+0x42 BT_EVT_LE_UPDATE_PHY
+0x43 BT_EVT_LE_GET_PASSKEY
+0x44 BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED
+)
+//switch
+(
+0 OFF
+1 ON
+)
+
+
+(
+	160 UI_HUNDRED_MILLISECOND_TIME
+	0XFF UI_BUTTON_GPIO_DISABLE
+)
+
+(
+0x00 UI_BUTTON_STATE_DOWN
+0x01 UI_BUTTON_STATE_UP
+)
+
+//mem_ipc_skip_continue_proc
+(
+	0 IPC_CONTINUE_PROCESS
+	1 IPC_SKIP_CONTINUE_PROCESS
+)
+
+
+(//led style struct 
+0 		LED_OFFSET_LED_TYPE
+1 		LED_OFFSET_BLINK_COUNT
+2		LED_OFFSET_LED_GPIO
+3		LED_OFFSET_ON_TIME
+5		LED_OFFSET_OFF_TIME
+7 		LED_OFFSET_CB_LEDON
+9		LED_OFFSET_CB_LEDOFF
+11		LED_OFFSET_LENGTH
+)
+
+(//LED state
+0 UI_LED_STATE_BLINK_STOP
+1 UI_LED_STATE_BLINK_START
+2 UI_LED_STATE_LIGHTING
+3 UI_LED_STATE_DARKING
+4 UI_LED_STATE_BLINK_LIGHTING
+5 UI_LED_STATE_BLINK_DARKING
+
+0xFF LED_INFINITE_FLASH_NUM
+
+)
+
+
Index: format/usb.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/usb.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/usb.format	(working copy)
@@ -0,0 +1,255 @@
+memalloc usb(
+2 mem_usb_status
+1 mem_usb_fifo_empty
+2 mem_usb_read_len
+65 mem_usb_txbuf
+10 mem_usb_txbuf1
+10 mem_usb_txbuf2
+64 mem_usb_rxbuf
+1 mem_usb_rxbuf_end
+2 mem_bufptr
+1 mem_remain
+2 mem_hidreportdesc_kb
+2 mem_hidreportdesc_m
+19 mem_devicedesc
+60 mem_confdesc
+5 mem_string0
+30 mem_string1
+30 mem_string2
+30 mem_string3
+2 mem_cb_usb_config
+
+1 mem_usb_tx_interval
+9 mem_usb_vid_pid
+2 mem_usb_zero_packet
+2 mem_usb_ones_packet
+2 mem_usb_two_packet
+1 mem_usb0_state
+1 mem_usb_offline_check_gpio
+
+0 mem_usb_clear_mem_start
+0 mem_usb_setup
+1 mem_usb_setup_bmRequestType
+1 mem_usb_setup_bRequest
+1 mem_usb_setup_bValue
+1 mem_usb_setup_bValueH
+2 mem_usb_setup_wIndex
+1 mem_usb_setup_bLength
+1 mem_usb_setup_bLengthH
+64 mem_usb0_set_report_data
+64 mem_usb0_get_report_data
+2 mem_usb_setup_bValue_temp
+1 mem_usb0_get_set_report
+1 mem_usb0_data_ready_report
+1 mem_usb_tx_win_enable
+1 mem_usb_tx_mac_enable
+1 mem_usb_idle_flag
+1 mem_usb_idle_rate
+1 mem_usb_get_protocol_flag
+1 mem_usb_set_protocol_status
+1 mem_usb_set_protocol_value
+1 mem_usb_state
+1 mem_usb_remote_wakeup
+1 mem_usb_clear_remote_wakeup
+1 mem_sdsystem_wakeup_flag
+1 mem_usb_ep0_stall_status
+1 mem_usb_ep1_stall_status
+1 mem_usb_ep2_stall_status
+1 mem_usb_ep3_stall_status
+2 mem_dsc_info_data_pointer
+1 mem_dsc_info_len
+1 mem_usb_ep1_data
+1 mem_usb_ep2_data
+1 mem_usb_tx_enable
+1 mem_usb_device_enumeration_endflag
+1 mem_usb_wakestate_onetime_flag
+1 mem_usb_mac_wakeup_trig
+1 mem_usb_set_high_addr_flag
+1 mem_usb_clear_halt
+16 mem_usb_mouse_data
+16 mem_usb_kb_data
+16 mem_usb_kb_multikey
+16 mem_usb_kb_system
+2 mem_usb_test_cnt
+10 mem_usb_test_kb
+0 mem_usb_clear_mem_end
+64 mem_usb_ccid_buf
+)
+
+//class type
+(
+0x00 STANDARD_REQ
+0x01 CLASS_REQ
+0x02 MANUFACTURER_REQ
+)
+//Standard Request Codes
+(
+0x00 GET_STATUS                // Code for Get Status
+0x01 CLEAR_FEATURE             // Code for Clear Feature
+0x03 SET_FEATURE              // Code for Set Feature
+0x05 SET_ADDRESS              // Code for Set Address
+0x06 GET_DESCRIPTOR           // Code for Get Descriptor
+0x07 SET_DESCRIPTOR           // Code for Set Descriptor(not used)
+0x08 GET_CONFIGURATION        // Code for Get Configuration
+0x09 SET_CONFIGURATION        // Code for Set Configuration
+0x0A GET_INTERFACE            // Code for Get Interface
+0x0B SET_INTERFACE            // Code for Set Interface
+0x0C SYNCH_FRAME              // Code for Synch Frame(not used)
+)
+//Standard Descriptor Types
+(
+0x01 DSC_DEVICE               // Device Descriptor
+0x02 DSC_CONFIG               // Configuration Descriptor
+0x03 DSC_STRING               // String Descriptor
+0x04 DSC_INTERFACE            // Interface Descriptor
+0x05 DSC_ENDPOINT             // Endpoint Descriptor
+)
+//HID Descriptor Types
+(
+0x21 DSC_HID			      // HID Class Descriptor
+0x22 DSC_HID_REPORT			  // HID Report Descriptor
+)
+//Define bmRequestType bitmaps
+(
+0x80 IN_DEVICE                // Request made to device,
+                              // direction is IN
+0x00 OUT_DEVICE               // Request made to device,
+                              // direction is OUT
+0x81 IN_INTERFACE             // Request made to interface,
+                              // direction is IN
+0x01 OUT_INTERFACE            // Request made to interface,
+                              // direction is OUT
+0x82 IN_ENDPOINT              // Request made to endpoint,
+                              // direction is IN
+0x02 OUT_ENDPOINT             // Request made to endpoint,
+)
+//HID Request Codes
+(
+0x01 GET_REPORT 		       // Code for Get Report
+0x02 GET_IDLE				   // Code for Get Idle
+0x03 GET_PROTOCOL			   // Code for Get Protocol
+0x09 SET_REPORT				   // Code for Set Report
+0x0A SET_IDLE				   // Code for Set Idle
+0x0B SET_PROTOCOL			   // Code for Set Protocol
+0xF2 HID_REPORT_ID           
+64 EP0_PACKET_SIZE         
+6 EP1_PACKET_SIZE         
+16 HID_REPORT_SIZE         
+0x001B HID_REPORT_DESCRIPTOR_SIZE    
+)
+//math cordic
+(
+0 TYPE_SIN		
+1 TYPE_ATAN	
+2 TYPE_MULT	
+3 TYPE_DIV		
+4 TYPE_ASIN	
+5 TYPE_SQRT	
+6 TYPE_COS		
+7 TYPE_TAN		 
+)
+   
+(
+0 DFIFO0_IN_EMPTY
+1 DFIFO1_IN_EMPTY
+2 DFIFO2_IN_EMPTY
+3 DFIFO3_IN_EMPTY
+4 DFIFO0_OUT_EMPTY
+5 DFIFO1_OUT_EMPTY
+6 DFIFO2_OUT_EMPTY
+7 DFIFO3_OUT_EMPTY
+)
+
+(
+)
+
+(
+0 USB_STATUS_SETUP
+1 USB_STATUS_SUSPEND
+2 USB_STATUS_NAK
+3 USB_STATUS_RESET
+4 USB_STATUS_ACK
+5 USB_STATUS_RXREADY
+6 USB_STATUS_RXFULL
+7 USB_STATUS_TXDONE0
+8 USB_STATUS_TXDONE1
+9 USB_STATUS_TXDONE2
+10 USB_STATUS_TXDONE3
+)
+
+(
+1 USB_GOT_REPORT_REQ
+2 USB_CONNECTED
+3 USB_SLEEP
+4 USB_RESUME
+5 USB_SETIDLE_1
+)
+
+(
+0x10 USB_EP1_KB
+0x20 USB_EP2_MS
+0x21 USB_EP2_MULTIKEY
+0x22 USB_EP2_SYSTEMKEY
+0x01 MAC_BOOT_MODE
+0x02 R_KEY
+0x03 LR_KEY
+)
+
+
+(
+0x01ba PC_GET_REPORT
+0x02ba PC_SET_REPORT
+0x0200 PC_SET_REPORT_bValue
+0x0000 PC_SET_REPORT_wIndex
+0x0001 PC_SET_REPORT_bLength
+0xba PC_REPORT_ID
+
+0x01 PC_GET_DATA
+0x00 PC_GET_NONDATA
+)
+
+(
+//--------------------------------------------------
+// Define device states
+0x00 DEV_ATTACHED	// Device is in Attached State
+0x01 DEV_POWERED	// Device is in Powered State
+0x02 DEV_DEFAULT		// Device is in Default State
+0x03 DEV_ADDRESS	// Device is in Addressed State
+0x04 DEV_CONFIGURED	// Device is in Configured State
+0x05 DEV_SUSPENDED	// Device is in Suspended State
+)
+
+(
+// Define wIndex bitmaps
+0x81 IN_EP1                    // Index values used by Set and Clear
+0x01 OUT_EP1                   // commands for Endpoint_Halt
+0x82 IN_EP2              
+0x02 OUT_EP2             
+0x83 IN_EP3              
+0x03 OUT_EP3             
+)
+
+(
+0 EP0_STALL
+1 EP1_IN_STALL
+2 EP1_OUT_STALL
+3 EP2_IN_STALL
+4 EP2_OUT_STALL
+5 EP3_IN_STALL
+6 EP3_OUT_STALL
+)
+
+(
+// Define wValue bitmaps for Standard Feature Selectors
+0x00 ENDPOINT_HALT             // Endpoint_Halt feature selector
+0x01 DEVICE_REMOTE_WAKEUP      // Remote wakeup feature(not used)
+0x00 BOOT_PROTOCOL
+0x01 REPORT_PROTOCOL
+0x01 USB_MAX_NUM_CFG
+)
+
+(
+640 TIMER_NAK_DELAY
+5000 TIMER_WAKEUP_DELAY
+)
+
Index: format/utility.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/utility.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/format/utility.format	(working copy)
@@ -0,0 +1,72 @@
+
+memalloc(
+
+1 mem_fifo_temp
+
+8 mem_pdatatemp
+8 mem_temp //8 bytes
+4 mem_timeup // 4 bytes
+4 mem_rega //4 bytes
+4 mem_regb //4 bytes
+3 mem_regc //3 bytes
+2 mem_contr //2 bytes
+2 mem_contw //2 bytes
+2 mem_contus
+2 mem_contue
+2 mem_contu
+2 mem_queue
+2 mem_loopcnt
+
+4 mem_saved_gpio_in
+
+0 mem_module_rx_error_data_buffer
+0 mem_le_adv_channel_map_temp
+0 mem_le_data_len_temp	//1byte
+0 mem_event_cmd_response_content	//2byte
+0 mem_le_prand		//16byte
+0 mem_AES_CMAC_k	 //16 bytes
+0 mem_regext_index 	//1 bytes
+1 mem_temp_block0
+0 mem_le_data_temp	//15bytes
+15 mem_temp_block1
+0 mem_le_tx_buf_temp //48byte
+0 mem_le_aes_128	//16byte
+0 mem_regext   //64 bytes
+0 mem_AES_CMAC_k1  //16 bytes
+16 mem_temp_block2
+0 mem_AES_CMAC_k2  //16 bytes
+16 mem_temp_block3
+0 mem_AES_CMAC_temp  // 16 bytes
+16 mem_temp_block4
+0 mem_AES_CMAC_M_last // 16 bytes
+1 mem_module_uart_cmd
+1 mem_module_uart_opcode
+1 mem_module_uart_len
+1 mem_module_temp_nl_discard_packet
+12 mem_temp_block5
+0 mem_le_mackey //16 bytes
+0 mem_app_receive_temp
+2 mem_key_value_temp
+2 mem_key_value
+1 mem_key_value_temp1
+1 mem_key_value_temp2
+1 mem_key_value_temp3
+1 mem_key_value_temp4
+1 mem_key_value_temp5
+1 mem_key_value_temp6
+6 mem_temp_block6
+
+3 mem_scale_ratio
+3 mem_xcnt
+2 mem_scale_ratio_temp
+)
+
+
+//util fifo param
+(
+
+8 UTIL_FIFO_LEN
+-1 UTIL_FIFO_OFFSET
+)
+
+
Index: otp.dat
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/otp.dat	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/otp.dat	(working copy)
@@ -0,0 +1,6761 @@
+0b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+2a
+15
+c2
+84
+00
+2d
+c0
+00
+00
+31
+c0
+01
+00
+66
+c0
+08
+00
+70
+c0
+08
+80
+72
+c0
+0a
+01
+55
+c0
+0a
+80
+f3
+c0
+0c
+01
+00
+c0
+0c
+81
+07
+c0
+0d
+00
+80
+c0
+12
+84
+47
+c0
+14
+04
+3d
+c0
+21
+01
+74
+c0
+22
+01
+f1
+c0
+22
+83
+e1
+c0
+23
+01
+f4
+c0
+23
+81
+f6
+c0
+26
+02
+92
+c0
+27
+02
+a9
+c0
+3b
+80
+5d
+c0
+28
+03
+09
+c0
+29
+03
+8e
+c0
+2a
+83
+a6
+c0
+2b
+83
+c2
+c0
+2c
+83
+d2
+c0
+2d
+04
+1e
+c0
+2d
+84
+26
+c0
+2e
+04
+22
+c0
+2e
+84
+28
+c0
+2f
+04
+cd
+c0
+2f
+84
+ec
+c0
+38
+84
+26
+c0
+3b
+00
+40
+c0
+3b
+80
+5d
+c0
+40
+01
+3d
+c0
+42
+04
+26
+c0
+4d
+02
+68
+c0
+58
+84
+66
+c0
+62
+81
+71
+c0
+6d
+01
+3e
+c0
+6d
+84
+f1
+c0
+6e
+05
+2e
+c0
+6e
+85
+0f
+c0
+7d
+04
+a9
+20
+20
+23
+5a
+c0
+48
+04
+b0
+c0
+4a
+84
+bd
+c1
+7f
+80
+00
+20
+20
+23
+5a
+24
+35
+80
+34
+37
+d9
+82
+00
+37
+d9
+82
+00
+20
+40
+54
+ac
+24
+34
+20
+02
+6f
+e0
+ca
+ba
+20
+3a
+20
+02
+70
+4a
+ba
+00
+6f
+e0
+c6
+55
+c0
+7f
+a0
+02
+1f
+e2
+0e
+00
+6f
+e2
+06
+9d
+af
+ec
+00
+00
+20
+40
+ce
+45
+20
+20
+20
+02
+6f
+e4
+47
+13
+c4
+0a
+80
+00
+20
+40
+00
+44
+20
+20
+55
+41
+6f
+e0
+c4
+08
+20
+40
+00
+4b
+18
+42
+7e
+00
+67
+e0
+c6
+35
+79
+20
+7e
+07
+d8
+40
+00
+00
+20
+20
+6f
+20
+d8
+40
+00
+12
+c1
+03
+00
+00
+d8
+40
+00
+0a
+c1
+03
+80
+00
+d8
+40
+00
+09
+c1
+04
+00
+00
+d8
+40
+00
+0c
+c1
+04
+80
+00
+d8
+40
+00
+06
+c1
+05
+00
+00
+d8
+40
+00
+14
+c1
+05
+80
+00
+d8
+40
+00
+15
+c1
+06
+00
+00
+d8
+40
+00
+16
+c1
+06
+80
+00
+d8
+40
+00
+0d
+20
+60
+00
+00
+20
+40
+05
+2e
+20
+40
+05
+0f
+1f
+e6
+fc
+0a
+20
+40
+7d
+5f
+67
+e1
+46
+33
+da
+20
+46
+2d
+20
+40
+55
+63
+6f
+e0
+c4
+0c
+20
+60
+00
+00
+20
+40
+75
+52
+20
+40
+74
+48
+20
+40
+4b
+fb
+20
+40
+2a
+45
+20
+40
+20
+2a
+20
+40
+42
+ad
+20
+40
+20
+18
+20
+40
+31
+0f
+20
+40
+24
+8c
+20
+20
+00
+66
+70
+89
+00
+00
+20
+20
+21
+53
+70
+8a
+0f
+60
+70
+8a
+10
+aa
+70
+8a
+12
+7a
+70
+8a
+25
+00
+70
+8a
+26
+00
+20
+00
+00
+3c
+70
+8a
+20
+20
+70
+8a
+23
+f5
+70
+8a
+24
+12
+70
+8a
+24
+10
+20
+00
+00
+3c
+70
+8a
+12
+60
+70
+8a
+23
+dd
+20
+60
+00
+00
+70
+01
+bb
+00
+70
+01
+bc
+00
+37
+d9
+82
+00
+70
+89
+46
+0d
+70
+89
+6f
+10
+70
+8a
+13
+cd
+70
+8a
+06
+10
+70
+8a
+84
+4a
+70
+8a
+85
+40
+70
+8a
+16
+fe
+20
+40
+00
+c7
+20
+40
+70
+d7
+37
+d9
+82
+00
+70
+81
+3b
+5f
+37
+d9
+82
+00
+70
+81
+3c
+88
+37
+d9
+82
+00
+6f
+e0
+c0
+99
+c0
+08
+00
+bc
+6f
+e0
+c4
+38
+1f
+e1
+fe
+04
+67
+f0
+8a
+02
+70
+89
+0f
+01
+70
+8a
+80
+24
+70
+8a
+81
+62
+58
+e6
+12
+12
+67
+f1
+8a
+73
+70
+8a
+86
+60
+70
+8a
+8b
+3b
+20
+40
+00
+ae
+70
+80
+43
+00
+70
+80
+42
+05
+58
+55
+74
+74
+67
+f1
+89
+68
+70
+89
+60
+6e
+20
+40
+01
+0f
+20
+40
+01
+3a
+20
+40
+00
+a8
+70
+41
+48
+0c
+20
+20
+6f
+4e
+20
+75
+80
+00
+37
+d9
+82
+00
+6f
+e0
+c1
+1c
+67
+f0
+81
+3a
+37
+d9
+82
+00
+20
+60
+00
+00
+6f
+e0
+c0
+99
+c0
+0c
+00
+b4
+6f
+e0
+c4
+38
+1f
+e1
+fe
+06
+67
+f0
+8a
+02
+70
+8a
+05
+e0
+70
+8a
+00
+d8
+20
+00
+00
+3c
+70
+8a
+01
+a0
+70
+8a
+00
+df
+70
+8a
+01
+fa
+20
+00
+00
+14
+70
+8a
+00
+9f
+20
+60
+00
+00
+6f
+e0
+c4
+38
+1f
+e1
+fe
+06
+67
+f0
+8a
+02
+70
+89
+0f
+00
+70
+8a
+80
+23
+70
+8a
+81
+b0
+58
+e4
+09
+09
+67
+f1
+8a
+73
+70
+8a
+76
+2a
+70
+89
+02
+04
+20
+20
+00
+9b
+20
+35
+80
+ef
+6f
+e2
+02
+0d
+20
+7a
+00
+00
+37
+d9
+82
+00
+6f
+f0
+81
+36
+1f
+e1
+7e
+f0
+68
+48
+82
+0d
+98
+41
+fe
+00
+1f
+e0
+ff
+fd
+67
+f0
+81
+36
+37
+d9
+82
+00
+6f
+f0
+81
+38
+1f
+e1
+7e
+07
+68
+48
+82
+0e
+18
+49
+84
+00
+98
+41
+fe
+00
+67
+f0
+81
+38
+37
+d9
+82
+00
+6f
+f0
+8a
+cb
+1f
+e1
+7e
+f0
+68
+48
+82
+0f
+60
+48
+c1
+5b
+98
+41
+fe
+00
+67
+f0
+8a
+cb
+6f
+e0
+82
+10
+67
+e0
+c1
+5c
+2f
+ef
+fe
+03
+6f
+f0
+8a
+06
+79
+20
+fe
+07
+67
+f0
+8a
+06
+6f
+e0
+82
+10
+1f
+e1
+04
+07
+18
+52
+04
+00
+18
+43
+84
+00
+60
+48
+c4
+38
+6f
+f0
+8a
+02
+1f
+e1
+7e
+1f
+98
+41
+fe
+00
+67
+f0
+8a
+02
+20
+60
+00
+00
+6f
+e1
+41
+5b
+20
+7a
+00
+00
+67
+e1
+02
+0f
+20
+20
+00
+d9
+20
+40
+21
+ba
+18
+00
+2a
+08
+18
+00
+2a
+00
+58
+0a
+aa
+da
+67
+f1
+8a
+0f
+70
+8a
+25
+40
+70
+8a
+26
+10
+20
+00
+00
+3c
+70
+8a
+01
+fb
+70
+8a
+25
+ff
+70
+8a
+26
+30
+70
+8a
+16
+fe
+20
+20
+21
+b4
+58
+0a
+aa
+7e
+67
+f1
+8a
+0f
+20
+00
+00
+3c
+70
+8a
+25
+00
+70
+8a
+26
+0d
+70
+8a
+16
+f6
+20
+20
+22
+03
+6f
+e0
+c1
+41
+c0
+05
+01
+0a
+20
+20
+22
+0e
+70
+8a
+14
+25
+58
+a9
+3f
+3f
+67
+f1
+8a
+60
+70
+8a
+63
+1f
+20
+60
+00
+00
+20
+75
+80
+00
+20
+40
+21
+60
+d8
+40
+00
+27
+20
+40
+21
+6f
+20
+40
+21
+a6
+70
+8a
+25
+7f
+70
+8a
+30
+1a
+70
+8a
+31
+78
+70
+8a
+8f
+b2
+70
+8a
+c2
+00
+70
+8a
+c3
+00
+d8
+e0
+00
+06
+20
+40
+01
+2c
+2a
+2f
+fe
+0d
+20
+40
+21
+1d
+2a
+4f
+fe
+0d
+20
+40
+21
+1e
+d8
+e0
+00
+05
+20
+40
+21
+1c
+20
+40
+21
+1e
+20
+40
+01
+2c
+d8
+a0
+8a
+c2
+1a
+31
+fe
+00
+20
+40
+21
+17
+1a
+51
+fe
+00
+20
+40
+21
+17
+18
+e0
+8f
+ff
+20
+21
+01
+21
+20
+20
+21
+4f
+20
+00
+00
+3c
+58
+00
+0f
+00
+67
+f1
+09
+82
+58
+00
+0f
+f0
+67
+f1
+09
+84
+70
+89
+81
+09
+70
+89
+81
+03
+70
+89
+80
+06
+20
+00
+00
+3c
+da
+20
+00
+00
+da
+40
+00
+00
+df
+20
+00
+10
+d8
+c0
+0f
+00
+20
+20
+21
+2d
+20
+75
+80
+00
+20
+20
+22
+72
+58
+00
+00
+00
+20
+60
+00
+00
+20
+75
+80
+00
+70
+8a
+07
+77
+70
+8a
+08
+c9
+70
+8a
+0b
+01
+6f
+e0
+c4
+09
+67
+f0
+80
+cd
+20
+00
+0b
+b8
+20
+40
+01
+4e
+70
+8a
+08
+c1
+6a
+40
+c4
+19
+df
+20
+00
+08
+20
+40
+6f
+58
+6f
+e0
+c4
+19
+67
+e0
+c4
+33
+62
+40
+c4
+19
+20
+60
+00
+00
+70
+80
+cc
+03
+6f
+f0
+81
+29
+c3
+02
+81
+4f
+68
+59
+01
+64
+60
+49
+44
+0a
+70
+80
+cc
+00
+20
+60
+00
+00
+70
+8a
+82
+11
+70
+8a
+8d
+12
+70
+8a
+8e
+0a
+6f
+e0
+c0
+99
+c0
+08
+01
+6e
+58
+00
+57
+62
+67
+f1
+09
+07
+70
+89
+01
+03
+70
+89
+30
+03
+c6
+16
+80
+00
+70
+89
+01
+01
+70
+8a
+82
+07
+70
+8a
+8d
+44
+70
+8a
+8e
+0a
+6f
+e0
+c0
+99
+c0
+08
+01
+6b
+58
+00
+2b
+b1
+67
+f1
+09
+07
+c6
+97
+80
+00
+70
+89
+30
+24
+70
+89
+01
+05
+20
+60
+00
+00
+58
+00
+41
+89
+67
+f1
+09
+07
+20
+20
+01
+67
+58
+00
+83
+12
+67
+f1
+09
+07
+20
+20
+01
+5c
+20
+40
+6b
+3a
+20
+40
+6b
+75
+20
+20
+6b
+38
+6f
+e0
+c6
+66
+c0
+00
+01
+78
+c0
+00
+81
+82
+20
+60
+00
+00
+db
+00
+00
+50
+58
+00
+04
+00
+9b
+06
+fc
+00
+20
+40
+7d
+62
+18
+07
+fe
+00
+67
+e1
+06
+70
+df
+e0
+1f
+ac
+d8
+40
+00
+04
+dd
+60
+00
+04
+20
+20
+01
+8c
+db
+00
+01
+40
+58
+00
+04
+00
+9b
+06
+fc
+00
+20
+40
+7d
+62
+18
+07
+fe
+00
+67
+e1
+06
+70
+df
+e0
+1f
+a0
+d8
+40
+00
+10
+dd
+60
+00
+10
+20
+20
+01
+8c
+67
+e1
+06
+72
+60
+48
+86
+78
+da
+20
+49
+c7
+da
+60
+00
+00
+6f
+e1
+06
+72
+1f
+e2
+24
+00
+6f
+20
+86
+78
+da
+20
+49
+c7
+20
+40
+6b
+74
+6f
+e4
+49
+c7
+68
+4c
+49
+cf
+98
+41
+fe
+00
+68
+4c
+49
+d7
+98
+41
+fe
+00
+20
+3a
+01
+a2
+1a
+60
+a6
+01
+6f
+e1
+06
+70
+9a
+66
+7c
+00
+6f
+e1
+06
+72
+9b
+06
+7e
+00
+67
+e1
+06
+72
+20
+20
+01
+90
+1a
+66
+7c
+00
+20
+22
+ca
+38
+6f
+e1
+06
+72
+9b
+00
+fe
+00
+9d
+66
+7e
+00
+67
+e1
+06
+72
+6f
+e1
+06
+72
+1f
+e2
+24
+00
+6f
+20
+86
+78
+da
+20
+49
+c7
+20
+40
+6b
+74
+6f
+e4
+49
+c7
+68
+4c
+49
+cf
+98
+41
+fe
+00
+68
+4c
+49
+d7
+98
+41
+fe
+00
+20
+3a
+01
+b5
+6f
+e1
+06
+72
+20
+20
+01
+a6
+58
+00
+1f
+b0
+68
+49
+06
+72
+98
+46
+7e
+00
+67
+e1
+49
+df
+18
+42
+7e
+00
+9d
+60
+a4
+00
+6f
+20
+86
+78
+da
+20
+49
+c7
+20
+40
+6b
+74
+6f
+e0
+c6
+66
+c0
+00
+4a
+47
+c0
+00
+81
+c2
+20
+60
+00
+00
+6f
+e0
+c9
+c7
+1f
+e6
+7c
+03
+24
+41
+7d
+ca
+67
+e0
+c9
+c6
+6f
+e0
+c9
+c8
+67
+e0
+c6
+67
+6f
+e3
+49
+c9
+67
+e3
+46
+68
+6f
+e3
+49
+cf
+67
+e3
+46
+6e
+68
+49
+49
+d5
+18
+0a
+7e
+00
+98
+40
+fe
+00
+67
+e1
+46
+95
+20
+20
+04
+81
+6f
+e0
+c6
+66
+c0
+00
+01
+d5
+c0
+00
+81
+d8
+20
+60
+00
+00
+68
+49
+49
+df
+58
+00
+1f
+b0
+20
+20
+4a
+61
+70
+4b
+e5
+01
+6f
+e0
+cb
+e6
+20
+7a
+00
+00
+68
+49
+49
+df
+58
+00
+1f
+b0
+98
+46
+7e
+00
+67
+e1
+06
+70
+1f
+e2
+24
+00
+da
+20
+49
+c6
+df
+20
+00
+01
+20
+40
+6b
+45
+6f
+e1
+06
+70
+1f
+e0
+a4
+01
+da
+20
+46
+67
+df
+20
+00
+0d
+20
+40
+6b
+45
+6f
+e1
+06
+70
+1f
+e0
+a4
+0e
+da
+20
+46
+95
+df
+20
+00
+02
+20
+40
+6b
+45
+68
+49
+49
+df
+18
+40
+84
+10
+60
+49
+49
+df
+20
+60
+00
+00
+6f
+e4
+47
+13
+c2
+8a
+01
+d1
+20
+20
+4a
+58
+1a
+62
+7e
+00
+20
+20
+4a
+9c
+20
+40
+55
+3d
+20
+40
+02
+0f
+20
+40
+61
+4d
+20
+40
+32
+8e
+20
+40
+35
+31
+20
+40
+5f
+dd
+20
+40
+4b
+62
+20
+40
+4b
+68
+20
+40
+02
+1a
+20
+40
+02
+39
+20
+40
+4b
+43
+20
+40
+02
+60
+20
+40
+4b
+58
+20
+40
+5b
+e1
+20
+40
+4b
+5c
+20
+40
+5b
+e4
+20
+40
+4b
+5f
+20
+40
+4b
+55
+20
+40
+02
+80
+20
+40
+4b
+32
+20
+40
+5b
+fe
+20
+40
+4b
+48
+20
+40
+4b
+82
+20
+40
+4b
+87
+20
+20
+02
+7f
+20
+40
+54
+f2
+58
+52
+00
+90
+67
+e1
+c6
+2d
+58
+00
+5a
+00
+e7
+e1
+80
+05
+6f
+e0
+c6
+37
+20
+3a
+02
+18
+70
+46
+31
+5f
+20
+60
+00
+00
+70
+46
+31
+5a
+20
+60
+00
+00
+6f
+e1
+47
+81
+20
+7a
+00
+00
+6f
+e0
+ca
+08
+24
+7a
+00
+00
+6f
+e1
+47
+25
+68
+49
+47
+81
+98
+46
+04
+00
+6f
+e1
+48
+69
+98
+46
+7e
+00
+20
+21
+02
+27
+20
+40
+02
+2e
+20
+40
+02
+30
+20
+20
+4b
+7c
+20
+40
+02
+2a
+20
+40
+02
+32
+20
+20
+4b
+7e
+6f
+e0
+c9
+aa
+c3
+00
+02
+2e
+68
+48
+c8
+67
+20
+20
+6e
+f7
+68
+48
+c8
+67
+20
+20
+6e
+f3
+68
+48
+cd
+05
+20
+20
+6e
+f3
+6f
+e0
+c9
+aa
+c3
+01
+02
+30
+68
+48
+cd
+05
+20
+20
+6e
+f7
+6f
+e0
+c6
+21
+67
+e0
+c9
+aa
+20
+20
+02
+27
+6f
+e0
+ca
+08
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+67
+e0
+ca
+08
+20
+3a
+4b
+6f
+68
+48
+c8
+68
+20
+20
+6e
+f7
+6f
+e0
+c6
+66
+c0
+00
+02
+4c
+c0
+00
+82
+50
+c0
+01
+02
+52
+c0
+01
+82
+54
+20
+60
+00
+00
+6f
+e0
+c6
+66
+c0
+00
+02
+56
+c0
+00
+82
+5a
+c0
+01
+02
+5c
+c0
+01
+82
+5e
+20
+60
+00
+00
+68
+48
+cb
+b7
+60
+48
+ca
+0d
+da
+20
+00
+00
+20
+20
+77
+bf
+68
+48
+cb
+b8
+20
+20
+02
+4d
+68
+48
+cb
+b9
+20
+20
+02
+4d
+68
+48
+cb
+ba
+20
+20
+02
+4d
+68
+48
+cb
+b7
+60
+48
+ca
+0d
+da
+20
+00
+00
+20
+20
+77
+ba
+68
+48
+cb
+b8
+20
+20
+02
+57
+68
+48
+cb
+b9
+20
+20
+02
+57
+68
+48
+cb
+ba
+20
+20
+02
+57
+6f
+e1
+47
+81
+20
+7a
+00
+00
+6f
+e0
+cb
+c8
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+67
+e0
+cb
+c8
+c2
+80
+02
+46
+20
+20
+02
+40
+6f
+e1
+4a
+09
+67
+e1
+4a
+0e
+67
+e1
+4a
+10
+6f
+e0
+c6
+66
+c0
+00
+02
+71
+c0
+00
+82
+73
+c0
+01
+02
+75
+c0
+01
+82
+77
+20
+60
+00
+00
+6f
+e0
+cb
+b7
+20
+20
+02
+78
+6f
+e0
+cb
+b8
+20
+20
+02
+78
+6f
+e0
+cb
+b9
+20
+20
+02
+78
+6f
+e0
+cb
+ba
+67
+e0
+86
+78
+20
+40
+02
+40
+6f
+e0
+86
+78
+67
+e0
+ca
+0d
+da
+20
+00
+00
+70
+4a
+0b
+01
+20
+20
+77
+c4
+20
+20
+4b
+8a
+6f
+e0
+cb
+a1
+c2
+80
+02
+84
+20
+40
+02
+90
+20
+60
+00
+00
+6f
+e0
+cb
+a4
+1f
+e6
+7c
+64
+24
+61
+00
+00
+1f
+e0
+fe
+01
+67
+e0
+cb
+a4
+c1
+8c
+80
+00
+70
+4b
+a3
+00
+6f
+e0
+c6
+66
+c1
+02
+00
+00
+20
+40
+5a
+aa
+20
+40
+04
+22
+20
+20
+4e
+39
+70
+4b
+a4
+00
+20
+60
+00
+00
+6f
+e4
+47
+13
+c3
+0a
+82
+9f
+20
+40
+6f
+82
+20
+40
+6f
+b0
+67
+e1
+46
+33
+68
+49
+44
+03
+6f
+e1
+44
+0a
+98
+46
+7c
+00
+20
+21
+02
+92
+da
+20
+46
+2d
+20
+40
+55
+63
+6f
+e0
+c4
+0c
+c2
+80
+cf
+6b
+6f
+e0
+c9
+a4
+20
+5a
+4e
+24
+6f
+e0
+c9
+a3
+24
+7a
+00
+00
+6f
+e0
+c6
+66
+c0
+00
+60
+2f
+20
+40
+5a
+a8
+6f
+e3
+46
+68
+20
+3a
+5a
+94
+20
+20
+54
+a0
+20
+40
+04
+8e
+20
+40
+4c
+85
+58
+00
+00
+00
+67
+e1
+48
+e9
+d8
+c0
+48
+9c
+d8
+a0
+48
+b0
+df
+20
+00
+14
+20
+40
+7c
+da
+58
+00
+48
+9c
+67
+e1
+48
+e3
+58
+00
+4c
+f9
+67
+e1
+48
+e5
+20
+40
+4c
+83
+20
+40
+4c
+81
+6f
+e1
+48
+e9
+1f
+e0
+fe
+01
+67
+e1
+48
+e9
+c2
+84
+82
+ef
+68
+48
+c8
+64
+20
+40
+6e
+e6
+24
+20
+82
+b7
+20
+40
+4c
+85
+68
+48
+c8
+64
+20
+40
+6e
+e6
+20
+20
+82
+bf
+20
+40
+02
+e6
+20
+40
+02
+f6
+20
+40
+4c
+81
+20
+40
+4c
+83
+6f
+e1
+48
+9a
+1f
+e2
+24
+00
+70
+48
+e8
+00
+e8
+40
+80
+12
+6f
+e1
+48
+98
+1f
+e2
+22
+00
+1a
+22
+26
+00
+df
+20
+00
+14
+ef
+e0
+80
+11
+98
+46
+7c
+00
+20
+22
+82
+da
+1a
+20
+a2
+01
+c2
+00
+02
+ce
+1a
+40
+a4
+01
+6f
+e0
+c8
+e8
+1f
+e0
+fe
+01
+67
+e0
+c8
+e8
+1f
+e6
+7c
+0b
+20
+21
+02
+c9
+20
+60
+00
+00
+6f
+e1
+48
+e3
+1f
+e2
+0a
+00
+1a
+22
+7e
+00
+9a
+66
+7e
+00
+98
+a0
+8a
+00
+6f
+e1
+48
+e5
+1f
+e2
+26
+00
+6f
+e0
+c8
+e8
+9a
+60
+a6
+00
+ef
+e0
+80
+13
+e7
+e0
+80
+05
+20
+20
+02
+d3
+70
+4a
+b9
+00
+70
+48
+e8
+00
+20
+40
+4c
+7b
+20
+40
+02
+f0
+20
+40
+4c
+79
+20
+40
+02
+f0
+1f
+e6
+7c
+0b
+20
+21
+02
+e8
+20
+20
+4c
+7b
+20
+20
+02
+a9
+70
+48
+e7
+00
+20
+40
+02
+f4
+6f
+e1
+48
+e5
+20
+20
+4c
+4a
+20
+00
+00
+78
+20
+20
+4c
+65
+6f
+e1
+48
+98
+1f
+e2
+24
+00
+70
+48
+e8
+00
+70
+48
+e7
+00
+e8
+40
+80
+12
+28
+4f
+fe
+07
+20
+20
+83
+03
+20
+40
+6e
+f7
+20
+40
+02
+f4
+e8
+40
+80
+12
+20
+40
+6e
+f3
+e8
+40
+80
+12
+20
+40
+4c
+7d
+1a
+40
+a4
+01
+6f
+e1
+48
+e3
+20
+40
+4c
+4a
+1f
+e6
+7c
+13
+20
+21
+02
+f9
+20
+60
+00
+00
+da
+20
+48
+9c
+da
+40
+48
+b0
+df
+20
+00
+14
+20
+40
+7d
+64
+24
+22
+cc
+87
+20
+40
+03
+43
+20
+5a
+4c
+87
+20
+40
+4c
+cd
+6f
+e0
+c9
+7b
+24
+7a
+00
+00
+6f
+e0
+c9
+c1
+c1
+00
+80
+00
+c1
+01
+00
+00
+c1
+02
+00
+00
+70
+48
+e8
+00
+da
+20
+48
+9c
+da
+40
+48
+c4
+e8
+40
+80
+11
+ef
+e0
+80
+12
+98
+42
+fe
+00
+20
+3a
+03
+3b
+67
+e0
+c8
+e7
+60
+48
+c8
+f6
+e0
+40
+80
+12
+70
+48
+f4
+01
+70
+48
+f7
+00
+6f
+e0
+c8
+e7
+c3
+00
+03
+30
+6f
+e0
+c8
+e8
+1f
+ef
+fe
+08
+68
+48
+c8
+f7
+98
+40
+fe
+00
+d8
+c0
+4a
+16
+98
+c0
+8c
+00
+ef
+e0
+80
+06
+67
+e0
+c8
+f5
+20
+40
+4c
+fc
+20
+40
+03
+4f
+20
+40
+03
+59
+6f
+e0
+c8
+e7
+1f
+e3
+7e
+00
+67
+e0
+c8
+e7
+6f
+e0
+c8
+f6
+1f
+e3
+7e
+00
+67
+e0
+c8
+f6
+6f
+e0
+c8
+f7
+1f
+e0
+fe
+01
+67
+e0
+c8
+f7
+1f
+e6
+7c
+07
+20
+21
+03
+23
+1a
+20
+a2
+01
+1a
+40
+a4
+01
+6f
+e0
+c8
+e8
+1f
+e0
+fe
+01
+67
+e0
+c8
+e8
+1f
+e6
+7c
+13
+20
+21
+03
+1a
+20
+60
+00
+00
+6f
+e4
+48
+9c
+24
+7a
+00
+00
+6f
+e4
+48
+a4
+24
+7a
+00
+00
+6f
+e2
+48
+ac
+24
+7a
+00
+00
+6f
+e0
+c9
+c4
+24
+7a
+00
+00
+6f
+e0
+c9
+c1
+c1
+03
+00
+00
+70
+49
+c1
+00
+20
+60
+00
+00
+6f
+e0
+c8
+f5
+c0
+56
+83
+52
+20
+20
+4d
+3c
+6f
+e0
+c9
+c6
+c0
+01
+83
+56
+58
+00
+00
+fa
+20
+20
+4d
+38
+70
+49
+c2
+08
+70
+49
+c3
+2c
+20
+20
+4d
+95
+6f
+e0
+c8
+f5
+d8
+40
+00
+e0
+98
+46
+7c
+00
+24
+21
+03
+6b
+1f
+e6
+7c
+e7
+24
+21
+03
+88
+1f
+e1
+7e
+07
+1f
+e2
+0e
+00
+6f
+e0
+c8
+f6
+c2
+80
+03
+67
+6f
+e0
+c8
+f8
+f9
+3f
+fe
+00
+67
+e0
+c8
+f8
+20
+60
+00
+00
+6f
+e0
+c8
+f8
+f9
+20
+7e
+00
+67
+e0
+c8
+f8
+20
+60
+00
+00
+70
+49
+00
+00
+6f
+e0
+c8
+f6
+c2
+80
+03
+7c
+68
+48
+c8
+f5
+df
+20
+00
+06
+d8
+c0
+48
+fa
+ef
+e0
+80
+06
+98
+46
+7c
+00
+24
+22
+83
+7a
+ef
+e0
+80
+06
+18
+c0
+8d
+fe
+e7
+e0
+80
+06
+20
+7a
+00
+00
+18
+c0
+8c
+01
+e0
+40
+80
+06
+c2
+00
+03
+71
+20
+60
+00
+00
+68
+48
+c8
+f5
+df
+20
+00
+06
+d8
+c0
+48
+fa
+ef
+e0
+80
+06
+20
+3a
+03
+85
+98
+46
+7c
+00
+20
+62
+80
+00
+c2
+00
+03
+7f
+20
+60
+00
+00
+18
+c0
+8d
+ff
+e0
+40
+80
+06
+20
+60
+00
+00
+70
+49
+c5
+01
+6f
+e0
+c8
+f6
+20
+5a
+03
+8c
+20
+20
+03
+6b
+70
+49
+c5
+02
+20
+60
+00
+00
+6f
+e0
+c8
+f6
+24
+5a
+4d
+4e
+6f
+e0
+c9
+a1
+24
+5a
+03
+93
+20
+20
+4d
+01
+6f
+e0
+c8
+f5
+c0
+0a
+03
+98
+c0
+0d
+03
+9e
+c0
+04
+03
+a2
+20
+20
+4d
+12
+6f
+e0
+c8
+f6
+c3
+00
+03
+9c
+70
+49
+c6
+01
+70
+4b
+c8
+06
+58
+00
+00
+00
+20
+20
+4d
+38
+6f
+e0
+c8
+f6
+c3
+00
+03
+9c
+70
+49
+c6
+00
+20
+20
+03
+9b
+6f
+e0
+c8
+f6
+c3
+00
+03
+9c
+70
+49
+c6
+02
+20
+20
+03
+9b
+20
+40
+03
+a8
+20
+20
+4d
+f6
+20
+40
+7d
+bc
+20
+40
+03
+b2
+20
+34
+03
+b0
+6f
+e0
+cb
+a1
+79
+3f
+fe
+00
+79
+3f
+fe
+01
+67
+e0
+cb
+a1
+20
+60
+00
+00
+70
+48
+f4
+00
+20
+60
+00
+00
+6f
+e0
+cb
+a8
+20
+7a
+00
+00
+6f
+e1
+48
+fa
+68
+49
+4b
+a9
+98
+46
+7c
+00
+20
+22
+83
+bc
+18
+50
+84
+00
+98
+46
+7c
+00
+20
+22
+83
+bc
+20
+60
+00
+00
+20
+40
+7d
+ba
+6f
+e0
+cb
+a1
+79
+20
+7e
+00
+79
+3f
+fe
+01
+67
+e0
+cb
+a1
+20
+60
+00
+00
+78
+54
+7c
+00
+70
+49
+6c
+00
+70
+49
+6d
+00
+70
+49
+6e
+00
+6f
+e0
+c9
+c1
+c0
+00
+cd
+a5
+c0
+01
+4d
+aa
+c0
+01
+cd
+aa
+c0
+02
+4d
+ae
+c0
+03
+4d
+b7
+6f
+e0
+c8
+f4
+20
+3a
+03
+cf
+20
+20
+4e
+54
+6f
+e0
+c6
+66
+c1
+80
+00
+00
+20
+20
+4e
+66
+6f
+e0
+c6
+66
+c0
+80
+03
+d9
+70
+49
+a9
+00
+6f
+e1
+48
+55
+24
+5a
+4a
+fc
+6f
+e3
+48
+58
+24
+5a
+4a
+fc
+6f
+e0
+c8
+55
+c0
+00
+03
+dc
+20
+20
+4f
+19
+70
+48
+5f
+02
+20
+40
+4f
+3e
+6f
+e0
+c6
+66
+c0
+80
+4f
+2a
+20
+20
+4f
+27
+58
+00
+03
+fc
+67
+e1
+43
+e9
+58
+00
+4f
+e5
+67
+e1
+45
+f2
+58
+00
+4f
+f8
+67
+e1
+45
+f4
+58
+00
+03
+ff
+67
+e1
+45
+f6
+58
+00
+04
+1c
+67
+e1
+43
+d7
+58
+00
+4a
+9a
+67
+e1
+43
+dd
+58
+00
+4b
+cc
+67
+e1
+43
+db
+58
+00
+4f
+62
+67
+e1
+43
+d5
+58
+00
+5b
+08
+67
+e1
+43
+df
+58
+00
+4b
+19
+67
+e1
+43
+e3
+58
+00
+55
+fa
+67
+e1
+43
+e7
+58
+00
+62
+21
+67
+e1
+43
+e1
+58
+00
+62
+28
+67
+e1
+43
+e5
+20
+60
+00
+00
+6f
+e0
+c6
+66
+c1
+80
+00
+00
+20
+20
+61
+0b
+20
+40
+04
+16
+68
+48
+c6
+55
+20
+40
+6e
+b6
+68
+48
+cb
+bb
+79
+20
+04
+07
+20
+40
+6e
+b6
+6f
+e1
+48
+98
+1f
+e2
+24
+00
+df
+20
+00
+14
+e8
+40
+80
+12
+28
+4f
+fe
+07
+24
+40
+ee
+f7
+1a
+40
+a4
+01
+c2
+00
+04
+08
+6f
+e1
+48
+96
+1f
+e2
+24
+00
+df
+20
+00
+08
+e8
+40
+80
+12
+18
+46
+7c
+ff
+24
+42
+ee
+b6
+1a
+40
+a4
+01
+c2
+00
+04
+10
+20
+20
+04
+2f
+58
+00
+00
+00
+79
+20
+7e
+15
+67
+e4
+00
+16
+58
+00
+00
+00
+e7
+e2
+00
+05
+20
+60
+00
+00
+c6
+13
+00
+00
+20
+20
+03
+ff
+70
+46
+59
+ff
+20
+40
+73
+9a
+20
+40
+4f
+70
+20
+20
+04
+28
+20
+40
+4b
+6f
+20
+40
+02
+40
+20
+40
+02
+2e
+20
+20
+4b
+7c
+20
+40
+04
+28
+20
+20
+43
+27
+20
+40
+04
+16
+20
+40
+4f
+70
+20
+40
+03
+ff
+68
+48
+c6
+5b
+20
+40
+4c
+7d
+20
+40
+04
+2f
+20
+20
+4f
+7b
+d8
+c0
+80
+70
+df
+20
+00
+10
+ef
+e0
+80
+06
+24
+3a
+04
+36
+58
+00
+00
+40
+18
+c0
+8b
+ff
+e7
+e0
+80
+05
+c2
+00
+04
+31
+df
+e0
+80
+dc
+98
+c6
+7c
+00
+20
+62
+80
+00
+df
+20
+00
+08
+d8
+c0
+80
+d4
+20
+20
+04
+31
+20
+40
+24
+08
+6f
+e1
+c0
+bd
+20
+7a
+00
+00
+6f
+e0
+c9
+a1
+24
+7a
+00
+00
+6f
+e0
+c9
+a2
+24
+7a
+00
+00
+6f
+e0
+c9
+c4
+24
+7a
+00
+00
+20
+20
+24
+90
+6f
+e1
+43
+e9
+20
+40
+7d
+79
+6f
+e2
+40
+ad
+98
+40
+fe
+00
+67
+e2
+40
+ad
+20
+40
+04
+4e
+20
+20
+24
+25
+60
+04
+40
+e7
+d8
+c0
+80
+70
+d8
+a0
+40
+cc
+20
+40
+7c
+8f
+d8
+c0
+80
+d4
+20
+40
+7c
+89
+6f
+f0
+80
+80
+67
+e0
+c0
+ef
+18
+42
+24
+00
+df
+20
+00
+0c
+da
+20
+00
+16
+da
+60
+81
+4d
+37
+d9
+82
+00
+ef
+e0
+80
+11
+e8
+40
+80
+13
+98
+46
+7c
+00
+20
+22
+84
+61
+e7
+e0
+80
+13
+37
+d9
+82
+00
+1a
+20
+a2
+01
+1a
+60
+a6
+01
+c2
+00
+04
+5b
+1a
+42
+04
+00
+20
+60
+00
+00
+20
+40
+73
+96
+20
+40
+04
+70
+20
+40
+04
+8e
+20
+40
+04
+a5
+20
+75
+80
+00
+20
+40
+04
+22
+6f
+e0
+ca
+07
+67
+e0
+ca
+08
+20
+40
+4a
+7a
+20
+20
+49
+62
+20
+75
+80
+00
+20
+40
+35
+f0
+20
+40
+32
+5b
+6f
+e0
+c6
+66
+67
+e0
+cb
+e4
+6f
+e1
+c2
+de
+67
+e1
+c7
+97
+20
+40
+49
+af
+58
+00
+4b
+f9
+67
+e1
+43
+3f
+58
+00
+00
+20
+67
+e1
+43
+41
+20
+40
+2a
+41
+6f
+e4
+47
+13
+c2
+8a
+49
+fd
+c2
+89
+5d
+6e
+20
+60
+00
+00
+da
+20
+46
+67
+6f
+e0
+c6
+66
+c1
+00
+00
+00
+1f
+e0
+ff
+ff
+1f
+ef
+fe
+0d
+9a
+20
+a2
+00
+ef
+e0
+80
+11
+67
+e0
+c3
+f3
+c0
+1a
+04
+8b
+20
+60
+00
+00
+ef
+e3
+00
+06
+67
+e3
+41
+16
+20
+20
+5c
+7d
+20
+40
+04
+16
+68
+48
+c6
+55
+60
+48
+c6
+59
+20
+40
+4c
+7d
+58
+00
+48
+6e
+67
+e1
+48
+96
+58
+00
+48
+76
+67
+e1
+48
+98
+58
+00
+48
+8a
+67
+e1
+48
+9a
+6f
+e1
+48
+96
+1f
+e2
+24
+00
+df
+20
+00
+08
+e8
+40
+80
+12
+18
+46
+7c
+ff
+24
+42
+c9
+e7
+1a
+40
+a4
+01
+c2
+00
+04
+9b
+20
+40
+04
+57
+6f
+e1
+48
+98
+1f
+e2
+24
+00
+df
+20
+00
+14
+20
+20
+49
+e1
+6f
+e0
+c6
+66
+c0
+80
+49
+f2
+20
+40
+35
+fb
+20
+20
+49
+ec
+6f
+e0
+86
+6f
+c0
+0f
+84
+ac
+20
+20
+78
+64
+70
+00
+32
+34
+6f
+e0
+c3
+cb
+c0
+07
+cb
+c5
+20
+20
+6e
+a6
+6f
+e1
+45
+e0
+1f
+e1
+7e
+e0
+20
+3a
+04
+b7
+6f
+e1
+45
+e0
+1f
+e0
+fe
+01
+67
+e1
+45
+e0
+20
+60
+00
+00
+20
+40
+35
+7f
+20
+40
+36
+51
+24
+2c
+35
+86
+24
+37
+b5
+86
+20
+40
+04
+e4
+20
+20
+35
+6a
+20
+40
+36
+25
+24
+34
+04
+c2
+20
+40
+04
+cd
+20
+40
+4f
+d5
+20
+20
+4f
+db
+6f
+e4
+48
+9c
+24
+3a
+4f
+db
+6f
+e4
+48
+a4
+24
+3a
+4f
+db
+6f
+e2
+48
+ac
+24
+3a
+4f
+db
+20
+40
+36
+9d
+20
+40
+4f
+c8
+24
+74
+00
+00
+20
+40
+36
+be
+20
+20
+4f
+9c
+70
+46
+01
+00
+69
+61
+00
+40
+34
+73
+02
+00
+20
+40
+4d
+f5
+6f
+e0
+c9
+a3
+24
+3a
+5e
+d1
+20
+40
+36
+51
+6f
+e0
+c5
+7f
+c0
+00
+b6
+46
+24
+2c
+04
+db
+24
+37
+84
+db
+20
+40
+04
+e4
+70
+47
+3f
+00
+20
+20
+36
+46
+6f
+e0
+c6
+02
+24
+7a
+00
+00
+6f
+e1
+45
+fe
+1f
+e0
+fe
+01
+67
+e1
+45
+fe
+6f
+e0
+c5
+fe
+c0
+7f
+b6
+76
+20
+40
+4f
+b8
+20
+20
+04
+ce
+20
+40
+36
+6e
+6f
+e0
+c4
+f8
+2f
+e1
+f0
+08
+24
+60
+80
+00
+6f
+e0
+c4
+f9
+c0
+7f
+cb
+11
+67
+e0
+c9
+aa
+20
+60
+00
+00
+20
+40
+36
+b4
+24
+74
+00
+00
+20
+40
+04
+16
+6f
+e1
+c6
+08
+20
+20
+36
+22
+6f
+e4
+01
+fd
+20
+3a
+6f
+79
+67
+e4
+43
+fd
+20
+40
+6b
+3a
+20
+40
+6a
+ad
+df
+e0
+0f
+c0
+9a
+40
+a4
+00
+df
+20
+00
+0a
+da
+20
+01
+fd
+20
+40
+6b
+74
+20
+40
+6b
+37
+6f
+e4
+01
+fd
+20
+7a
+00
+00
+67
+e4
+4b
+e7
+ef
+e1
+00
+06
+e7
+e1
+00
+05
+20
+60
+00
+00
+6f
+f0
+80
+cc
+79
+20
+7e
+01
+67
+f0
+80
+cc
+6a
+40
+c4
+19
+6f
+e0
+c4
+33
+67
+e0
+c4
+19
+df
+20
+00
+08
+20
+40
+6f
+67
+62
+40
+c4
+19
+6f
+f0
+8a
+0a
+79
+3f
+fe
+04
+67
+f0
+8a
+0a
+20
+60
+00
+00
+6f
+e0
+c4
+07
+c0
+00
+85
+13
+c0
+01
+05
+1a
+20
+60
+00
+00
+58
+00
+03
+e8
+67
+e1
+44
+05
+68
+49
+4b
+eb
+6f
+e1
+4b
+ed
+da
+60
+0e
+10
+20
+40
+6f
+c0
+20
+20
+05
+20
+58
+00
+03
+e8
+67
+e1
+44
+05
+68
+49
+4b
+e7
+6f
+e1
+4b
+e9
+da
+60
+03
+e8
+20
+40
+6f
+c0
+68
+49
+4b
+ef
+98
+4f
+fe
+00
+68
+49
+4b
+f1
+98
+46
+fc
+00
+20
+20
+7d
+5f
+20
+40
+05
+02
+6f
+f0
+8a
+09
+79
+3f
+fe
+07
+67
+f0
+8a
+09
+70
+8a
+07
+77
+70
+8a
+08
+c1
+70
+8a
+0d
+61
+70
+8a
+0b
+00
+20
+60
+00
+00
+20
+40
+05
+25
+20
+40
+6f
+90
+6f
+e0
+c4
+09
+67
+f0
+80
+cd
+20
+40
+6f
+97
+70
+8a
+0d
+60
+70
+80
+cd
+00
+20
+40
+05
+25
+6f
+e0
+c4
+09
+67
+f0
+80
+cd
+70
+8a
+0b
+50
+70
+8a
+0e
+c0
+df
+00
+00
+0b
+6d
+e1
+44
+0a
+70
+80
+cc
+03
+20
+40
+05
+47
+68
+59
+01
+64
+60
+49
+4b
+f1
+20
+40
+6f
+9c
+df
+00
+00
+0b
+65
+e1
+44
+0a
+70
+8a
+0d
+60
+70
+80
+cd
+00
+70
+80
+cc
+00
+20
+60
+00
+00
+6f
+f0
+81
+29
+c3
+02
+85
+47
+20
+60
+00
+00
+83
+17
+aa
+55
+40
+00
+00
+40
+05
+00
+33
+07
+20
+01
+00
+00
+f4
+50
+a5
+fe
+00
+00
+c2
+00
+11
+00
+00
+04
+00
+00
+02
+00
+20
+00
+00
+3c
+00
+00
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+21
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+13
+47
+04
+09
+52
+00
+00
+00
+00
+0c
+aa
+55
+01
+00
+cb
+43
+0f
+aa
+55
+01
+00
+ba
+4a
+01
+aa
+55
+01
+00
+ec
+44
+ff
+aa
+55
+01
+00
+eb
+44
+1e
+aa
+55
+03
+00
+ee
+44
+01
+0b
+4a
+aa
+55
+01
+00
+0d
+4a
+ff
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+d2
+45
+07
+aa
+55
+02
+00
+f0
+45
+83
+47
+aa
+55
+02
+00
+3f
+46
+85
+90
+aa
+55
+02
+00
+42
+46
+75
+80
+aa
+55
+01
+00
+41
+46
+63
+aa
+55
+01
+00
+27
+46
+7d
+aa
+55
+01
+00
+bb
+4b
+ff
+aa
+55
+09
+00
+bf
+4b
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+01
+00
+89
+45
+02
+aa
+55
+05
+00
+e3
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+b9
+45
+00
+aa
+55
+01
+00
+40
+47
+02
+aa
+55
+01
+00
+ca
+45
+00
+aa
+55
+02
+00
+8b
+45
+c0
+12
+aa
+55
+01
+00
+3e
+46
+94
+aa
+55
+03
+00
+af
+45
+00
+48
+60
+aa
+55
+02
+00
+1d
+46
+0a
+00
+aa
+55
+02
+00
+1b
+46
+50
+00
+aa
+55
+02
+00
+23
+47
+32
+00
+aa
+55
+01
+00
+f4
+46
+02
+aa
+55
+08
+00
+c0
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+20
+aa
+55
+01
+00
+6b
+49
+20
+aa
+55
+02
+00
+3f
+44
+ff
+ff
+aa
+55
+06
+00
+db
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+93
+43
+07
+aa
+55
+02
+00
+be
+47
+96
+00
+aa
+55
+02
+00
+b5
+47
+15
+00
+aa
+55
+02
+00
+9b
+43
+19
+00
+aa
+55
+04
+00
+b7
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+32
+43
+28
+00
+aa
+55
+02
+00
+bb
+47
+30
+00
+aa
+55
+0c
+00
+48
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+10
+00
+a0
+47
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+11
+00
+68
+43
+1f
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+0f
+00
+6b
+42
+0e
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d3
+42
+07
+00
+07
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+9a
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+f4
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+f2
+49
+0a
+18
+aa
+55
+10
+00
+e1
+49
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+fd
+49
+c1
+03
+aa
+55
+02
+00
+bb
+4a
+bd
+00
+aa
+55
+08
+00
+99
+4b
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+06
+00
+2d
+46
+dc
+05
+84
+03
+e8
+03
+aa
+55
+01
+00
+07
+44
+02
+aa
+55
+01
+00
+09
+44
+0a
+aa
+55
+01
+00
+08
+44
+0c
+aa
+55
+01
+00
+11
+44
+00
+aa
+55
+04
+00
+0d
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+07
+4a
+1e
+aa
+55
+02
+00
+09
+4a
+e8
+03
+aa
+55
+02
+00
+21
+47
+02
+00
+aa
+55
+01
+00
+3d
+46
+64
+aa
+55
+02
+00
+3a
+46
+58
+02
+aa
+55
+01
+00
+1e
+47
+64
+aa
+55
+01
+00
+3c
+46
+64
+aa
+55
+02
+00
+38
+46
+58
+02
+aa
+55
+02
+00
+25
+47
+70
+17
+aa
+55
+02
+00
+ec
+48
+b8
+0b
+aa
+55
+02
+00
+69
+48
+58
+02
+aa
+55
+08
+00
+66
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+06
+00
+01
+4a
+ff
+ff
+ff
+ff
+ff
+ff
+aa
+55
+01
+00
+1b
+47
+01
+aa
+55
+01
+00
+a2
+4b
+00
+aa
+55
+0f
+00
+a8
+4b
+01
+7f
+14
+01
+7f
+1a
+01
+7f
+08
+01
+7f
+15
+01
+7f
+18
+aa
+55
+07
+00
+d1
+4b
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+dd
+4b
+50
+00
+aa
+55
+02
+00
+e2
+4b
+58
+02
+aa
+55
+06
+00
+c9
+4b
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+6b
+48
+ff
+ff
+ff
+aa
+55
+01
+00
+a4
+49
+01
+aa
+55
+01
+00
+55
+46
+ff
+aa
+55
+04
+00
+a5
+49
+7f
+06
+29
+14
+aa
+55
+03
+00
+27
+44
+ff
+17
+16
+aa
+55
+02
+00
+eb
+43
+10
+00
+aa
+55
+03
+00
+66
+48
+88
+8c
+80
+aa
+55
+01
+00
+05
+4d
+80
+aa
+55
+04
+00
+b7
+4b
+80
+ff
+ff
+ff
+aa
+55
+03
+00
+63
+48
+01
+02
+ff
+aa
+55
+01
+00
+59
+46
+ff
+aa
+55
+01
+00
+5b
+46
+05
+aa
+55
+0c
+00
+8a
+48
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+6e
+48
+0d
+0e
+0f
+10
+11
+12
+13
+14
+85
+c4
+c5
+c6
+c3
+c2
+03
+04
+83
+84
+82
+c7
+80
+07
+06
+81
+0a
+0b
+ff
+ff
+aa
+55
+90
+00
+16
+4a
+48
+00
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+8b
+35
+1e
+1a
+39
+16
+64
+1b
+8a
+3a
+1f
+08
+3c
+07
+3d
+06
+88
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+65
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+00
+7f
+e2
+00
+e6
+00
+46
+89
+2a
+31
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+00
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+85
+58
+52
+e9
+50
+4a
+4d
+00
+e1
+e5
+ed
+ee
+ec
+eb
+e8
+f1
+e3
+f6
+f8
+f7
+f9
+ef
+fa
+91
+f5
+e7
+f0
+ea
+f2
+fb
+90
+aa
+55
+13
+00
+ae
+49
+00
+29
+e8
+ed
+ee
+ef
+eb
+ec
+e9
+ea
+fb
+f1
+f0
+f5
+4c
+01
+00
+00
+00
+aa
+55
+02
+00
+ff
+49
+2a
+10
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+3e
+aa
+55
+0c
+00
+16
+00
+00
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+05
+00
+5e
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+68
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+0c
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+1c
+02
+5a
+aa
+55
+01
+00
+38
+44
+a0
+aa
+55
+02
+00
+3b
+44
+bc
+02
+aa
+55
+02
+00
+39
+44
+90
+01
+aa
+55
+02
+00
+3d
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+e0
+79
+e8
+7c
Index: output/auth.rom
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/auth.rom	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/auth.rom	(working copy)
@@ -0,0 +1,1773 @@
+01
+00
+02
+00
+28
+02
+00
+18
+02
+00
+02
+03
+28
+01
+0a
+03
+00
+02
+00
+2a
+14
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+04
+00
+02
+03
+28
+01
+02
+05
+00
+02
+01
+2a
+02
+c2
+03
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+08
+00
+02
+00
+28
+02
+01
+18
+09
+00
+02
+03
+28
+01
+20
+0a
+00
+02
+05
+2a
+00
+0b
+00
+02
+02
+29
+02
+00
+00
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+29
+2a
+06
+59
+69
+43
+68
+69
+70
+0f
+00
+02
+03
+28
+01
+02
+10
+00
+02
+50
+2a
+07
+02
+35
+12
+22
+aa
+01
+00
+11
+00
+02
+00
+28
+02
+12
+18
+12
+00
+02
+03
+28
+01
+06
+13
+00
+02
+4e
+2a
+01
+01
+14
+00
+02
+03
+28
+01
+12
+15
+00
+02
+4d
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+16
+00
+02
+02
+29
+02
+00
+00
+17
+00
+02
+08
+29
+02
+02
+01
+18
+00
+02
+03
+28
+01
+1a
+19
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+1a
+00
+02
+02
+29
+02
+00
+00
+1b
+00
+02
+08
+29
+02
+01
+01
+1c
+00
+02
+03
+28
+01
+12
+1d
+00
+02
+4d
+2a
+02
+00
+00
+1e
+00
+02
+02
+29
+02
+00
+00
+1f
+00
+02
+08
+29
+02
+03
+01
+20
+00
+02
+03
+28
+01
+12
+21
+00
+02
+4d
+2a
+02
+00
+00
+22
+00
+02
+02
+29
+02
+00
+00
+23
+00
+02
+08
+29
+02
+04
+01
+24
+00
+02
+03
+28
+01
+0e
+25
+00
+02
+4d
+2a
+02
+00
+00
+26
+00
+02
+08
+29
+02
+02
+02
+27
+00
+02
+03
+28
+01
+02
+28
+00
+02
+4b
+2a
+bd
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+08
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+05
+01
+09
+30
+09
+31
+16
+01
+f8
+26
+ff
+07
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+19
+00
+2a
+ff
+03
+15
+00
+26
+ff
+03
+95
+01
+75
+10
+81
+00
+c0
+05
+01
+09
+80
+A1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+C0
+29
+00
+02
+03
+28
+01
+1a
+2a
+00
+02
+33
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+2b
+00
+02
+02
+29
+02
+01
+00
+2c
+00
+02
+03
+28
+01
+02
+2d
+00
+02
+4a
+2a
+04
+01
+01
+00
+03
+2e
+00
+02
+00
+28
+02
+0f
+18
+2f
+00
+02
+03
+28
+01
+12
+30
+00
+02
+19
+2a
+01
+64
+31
+00
+02
+02
+29
+02
+00
+00
+32
+00
+02
+03
+28
+01
+04
+33
+00
+02
+4c
+2a
+00
+00
+00
+1a
+06
+bc
+ff
+09
+88
+a1
+01
+85
+04
+19
+00
+2a
+ff
+00
+15
+00
+26
+ff
+00
+75
+08
+95
+01
+81
+00
+c0
+3f
+05
+01
+09
+06
+a1
+01
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+25
+ff
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+a3
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+05
+15
+00
+25
+01
+95
+05
+75
+01
+81
+02
+95
+01
+75
+03
+81
+01
+05
+01
+09
+30
+09
+31
+16
+01
+F8
+26
+FF
+07
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+05
+01
+09
+80
+a1
+01
+85
+02
+05
+01
+19
+81
+29
+88
+15
+00
+25
+01
+95
+08
+75
+01
+81
+06
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+26
+80
+03
+19
+00
+2a
+80
+03
+75
+10
+95
+01
+81
+00
+c0
+06
+00
+ff
+09
+0e
+a1
+01
+85
+BA
+95
+1f
+75
+08
+26
+ff
+00
+15
+00
+09
+01
+91
+02
+85
+BA
+95
+1f
+75
+08
+26
+ff
+00
+15
+00
+09
+01
+81
+02
+C0
+12
+12
+01
+00
+02
+00
+00
+00
+40
+51
+31
+20
+10
+02
+00
+01
+02
+00
+01
+3b
+09
+02
+3b
+00
+02
+01
+00
+a0
+32
+09
+04
+00
+00
+01
+03
+01
+01
+00
+09
+21
+00
+02
+00
+01
+22
+1a
+00
+07
+05
+81
+03
+40
+00
+02
+09
+04
+01
+00
+01
+03
+01
+02
+00
+09
+21
+00
+02
+00
+01
+22
+a3
+00
+07
+05
+82
+03
+40
+00
+02
+01
+00
+02
+00
+28
+02
+01
+18
+02
+00
+02
+03
+28
+01
+20
+03
+00
+02
+05
+2a
+01
+00
+04
+00
+02
+02
+29
+02
+00
+00
+05
+00
+02
+00
+28
+02
+00
+18
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+00
+2a
+13
+43
+68
+69
+70
+73
+65
+61
+2d
+42
+4c
+45
+20
+20
+20
+20
+20
+20
+20
+20
+08
+00
+02
+03
+28
+01
+02
+09
+00
+02
+01
+2a
+02
+c1
+03
+0a
+00
+02
+03
+28
+01
+02
+0b
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+50
+2a
+07
+02
+8a
+24
+66
+82
+01
+00
+0f
+00
+02
+00
+28
+02
+12
+18
+10
+00
+02
+03
+28
+01
+06
+11
+00
+02
+4e
+2a
+01
+01
+12
+00
+02
+03
+28
+01
+12
+13
+00
+02
+4d
+2a
+02
+00
+00
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+08
+29
+02
+02
+01
+16
+00
+02
+03
+28
+01
+12
+17
+00
+02
+4d
+2a
+02
+00
+00
+18
+00
+02
+02
+29
+02
+00
+00
+19
+00
+02
+08
+29
+02
+03
+01
+1a
+00
+02
+03
+28
+01
+02
+1b
+00
+02
+4b
+2a
+1b
+05
+0c
+09
+01
+a1
+01
+85
+02
+09
+e9
+09
+ea
+09
+e2
+09
+30
+15
+01
+25
+0c
+75
+10
+95
+01
+81
+00
+c0
+1c
+00
+02
+03
+28
+01
+02
+1d
+00
+02
+4a
+2a
+04
+11
+01
+00
+01
+1e
+00
+02
+03
+28
+01
+04
+1f
+00
+02
+4c
+2a
+01
+00
+20
+00
+02
+00
+28
+02
+0f
+18
+21
+00
+02
+03
+28
+01
+12
+22
+00
+02
+19
+2a
+01
+63
+00
+00
+02
+13
+00
+02
+00
+02
+13
+00
+01
+00
+02
+13
+00
+04
+00
+02
+13
+00
+06
+00
+02
+13
+00
+05
+00
+02
+13
+00
+00
+00
+02
+17
+00
+00
+28
+02
+17
+00
+00
+00
+01
+00
+02
+00
+28
+02
+01
+18
+02
+00
+02
+03
+28
+01
+20
+03
+00
+02
+05
+2a
+01
+00
+04
+00
+02
+02
+29
+02
+00
+00
+05
+00
+02
+00
+28
+02
+00
+18
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+00
+2a
+11
+55
+43
+48
+4f
+4e
+20
+30
+31
+20
+20
+20
+20
+20
+20
+20
+20
+20
+08
+00
+02
+03
+28
+01
+02
+09
+00
+02
+01
+2a
+02
+c8
+00
+0a
+00
+02
+03
+28
+01
+02
+0b
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+50
+2a
+07
+02
+8a
+24
+66
+82
+01
+00
+0f
+00
+02
+00
+28
+02
+f0
+ff
+10
+00
+02
+03
+28
+01
+12
+11
+00
+02
+f1
+ff
+0e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+12
+00
+02
+02
+29
+02
+00
+00
+13
+00
+02
+03
+28
+01
+08
+14
+00
+02
+f2
+ff
+0e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+98
+2f
+8a
+42
+91
+44
+37
+71
+cf
+fb
+c0
+b5
+a5
+db
+b5
+e9
+5b
+c2
+56
+39
+f1
+11
+f1
+59
+a4
+82
+3f
+92
+d5
+5e
+1c
+ab
+98
+aa
+07
+d8
+01
+5b
+83
+12
+be
+85
+31
+24
+c3
+7d
+0c
+55
+74
+5d
+be
+72
+fe
+b1
+de
+80
+a7
+06
+dc
+9b
+74
+f1
+9b
+c1
+c1
+69
+9b
+e4
+86
+47
+be
+ef
+c6
+9d
+c1
+0f
+cc
+a1
+0c
+24
+6f
+2c
+e9
+2d
+aa
+84
+74
+4a
+dc
+a9
+b0
+5c
+da
+88
+f9
+76
+52
+51
+3e
+98
+6d
+c6
+31
+a8
+c8
+27
+03
+b0
+c7
+7f
+59
+bf
+f3
+0b
+e0
+c6
+47
+91
+a7
+d5
+51
+63
+ca
+06
+67
+29
+29
+14
+85
+0a
+b7
+27
+38
+21
+1b
+2e
+fc
+6d
+2c
+4d
+13
+0d
+38
+53
+54
+73
+0a
+65
+bb
+0a
+6a
+76
+2e
+c9
+c2
+81
+85
+2c
+72
+92
+a1
+e8
+bf
+a2
+4b
+66
+1a
+a8
+70
+8b
+4b
+c2
+a3
+51
+6c
+c7
+19
+e8
+92
+d1
+24
+06
+99
+d6
+85
+35
+0e
+f4
+70
+a0
+6a
+10
+16
+c1
+a4
+19
+08
+6c
+37
+1e
+4c
+77
+48
+27
+b5
+bc
+b0
+34
+b3
+0c
+1c
+39
+4a
+aa
+d8
+4e
+4f
+ca
+9c
+5b
+f3
+6f
+2e
+68
+ee
+82
+8f
+74
+6f
+63
+a5
+78
+14
+78
+c8
+84
+08
+02
+c7
+8c
+fa
+ff
+be
+90
+eb
+6c
+50
+a4
+f7
+a3
+f9
+be
+f2
+78
+71
+c6
Index: output/bt_format.meta
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/bt_format.meta	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/bt_format.meta	(working copy)
@@ -0,0 +1,9597 @@
+0x0000 mem_le_adv_transmit
+0x0001 mem_le_adv_waitcnt
+0x0002 mem_le_adv_rcv
+0x0003 mem_le_req_rcv
+0x0004 mem_le_scanrsp_rcv
+0x0005 mem_le_conn_rcv
+0x0006 mem_current_context
+0x0007 mem_le_ch_mapped
+0x0008 mem_last_freq
+0x0009 mem_rssi
+0x000a mem_context_ptr
+0x000c mem_rx_window
+0x000e mem_lpm_adjust
+0x000f mem_sync_clke
+0x0015 mem_lpm_current_mult
+0x0016 mem_gpio_wakeup_cfg
+0x0022 mem_clkn_bt
+0x0026 mem_clke_bt
+0x002a mem_dpll_clkn
+0x002e mem_slot_offset
+0x0030 mem_loadcode_times
+0x0031 mem_select_list_item
+0x0032 mem_temp_reconn_record
+0x0032 mem_record_bt_mode
+0x0033 mem_list_item_ptr
+0x0035 mem_rssi_hex
+0x0036 mem_param_tx_setup
+0x0038 mem_param_rf_setup
+0x003a mem_param_conn_access
+0x003c mem_param_clke_cal
+0x003e mem_param_pll_setup
+0x0040 mem_param_rx_setup
+0x0042 mem_param_dpll_start_delay
+0x0044 mem_param_rt_rthalfslot
+0x0046 mem_param_clke_cal_le_1m
+0x0048 mem_param_clke_cal_le_2m
+0x004a mem_param_clke_cal_le_coded
+0x004c mem_le_rxbuf
+0x0150 mem_le_mic
+0x0154 mem_le_peer_mic
+0x0158 mem_le_mrand
+0x0168 mem_le_state
+0x0169 mem_le_mode
+0x016a mem_le_tsniff
+0x016c mem_le_anchor
+0x0170 mem_le_clk_offset
+0x0176 mem_le_receive_window
+0x0178 mem_le_plap
+0x017e mem_le_conn_handle
+0x017f mem_le_arq
+0x0180 mem_le_ch
+0x0181 mem_le_hop
+0x0182 mem_le_event_count
+0x0184 mem_le_supervision_timer
+0x0188 mem_le_instant
+0x018a mem_le_channels
+0x018b mem_le_op
+0x018c mem_le_access
+0x0190 mem_le_crcinit
+0x0193 mem_le_window_size
+0x0194 mem_le_slave_latency
+0x0196 mem_le_superto
+0x0198 mem_le_channel_map
+0x019d mem_le_rx_phy
+0x019e mem_le_tx_phy
+0x019f mem_le_update_new_param
+0x01a8 mem_le_sk
+0x01b8 mem_le_peer_sca
+0x01b9 mem_le_err_code
+0x01ba mem_le_ll_pairing_fail_reason
+0x01bb mem_le_testtype
+0x01bc mem_cmd_le_create_conn
+0x01bd memresult
+0x01bd mem_sp_calc_result
+0x01bd memh
+0x01c1 memg
+0x01c5 memf
+0x01c9 meme
+0x01cd mem_sp_calc_result_high
+0x01cd memd
+0x01d1 memc
+0x01d5 memb
+0x01d9 mema
+0x01dd mem_ucode_status
+0x01de mem_spid_tbuf
+0x01df mem_iicd_tbuf
+0x01df mem_addr_hi
+0x01e0 mem_addr_mi
+0x01e1 mem_addr_lo
+0x01e2 mem_iicd_addr
+0x01e3 mem_spid_rbuf
+0x01e7 mem_ucode_buf
+0x01e9 mem_ucode_len
+0x01eb mem_sched_addr
+0x01ed mem_ucode_keybuf
+0x01fd mem_otp_temp
+0x021d mem_app_evt_timer_count
+0x021e mem_input_store
+0x022e mem_ec_loopc
+0x0230 mem_aes_cmac_data_length
+0x0231 mem_dat
+0x0291 mem_ax_256//32 bytes
+0x02b1 mem_ay_256// 32 bytes
+0x02d1 mem_az_256// 32 bytes
+0x02f1 mem_bx_256// 32 bytes
+0x0311 mem_by_256// 31 bytes
+0x0331 mem_bz_256//32 bytes
+0x0331 mem_tmp1
+0x0331 memahbak
+0x0349 mem_tmp5
+0x0351 mem_cx_256//32 bytes
+0x0371 mem_cy_256// 32 bytes
+0x0390 mem_cy5_256// 1 byte
+0x0391 mem_cz_256// 32 bytes
+0x03b1 mem_k_256//32 bytes
+0x03d1 mem_tmp1_256//32 bytes
+0x03f1 mem_tmp5_256
+0x0411 mem_tmp2_256
+0x0431 mem_tmp3_256
+0x0431 mem_t1_256
+0x0451 mem_tmp0_256
+0x0451 mem_t0_256
+0x0471 mem_t2_256
+0x0491 mem_t3_256
+0x04b1 mem_t7_256
+0x04d1 mem_p
+0x04e9 mem_a
+0x0501 mem_b
+0x0519 mem_gx
+0x0531 mem_gy
+0x0549 memh0
+0x0569 mem_p_256
+0x0589 mem_a_256
+0x05a9 mem_gx_256
+0x05c9 mem_gy_256
+0x05e9 mem_le_slat
+0x05f9 mem_sp_state_start
+0x05f9 mem_sp_dhkey_invalid
+0x05fa mem_gkey
+0x05fe mem_sp_state_end
+0x05fe mem_le_pubkey_remote_x_256
+0x061e mem_le_pubkey_remote_y_256
+0x063e mem_le_dhkey_256
+0x065e mem_sp_confirm_remote
+0x066e mem_ipc_skip_continue_proc
+0x066f mem_fifo_temp
+0x0670 mem_pdatatemp
+0x0678 mem_temp//8 bytes
+0x0680 mem_timeup// 4 bytes
+0x0684 mem_rega//4 bytes
+0x0688 mem_regb//4 bytes
+0x068c mem_regc//3 bytes
+0x068f mem_contr//2 bytes
+0x0691 mem_contw//2 bytes
+0x0693 mem_contus
+0x0695 mem_contue
+0x0697 mem_contu
+0x0699 mem_queue
+0x069b mem_loopcnt
+0x069d mem_saved_gpio_in
+0x06a1 mem_module_rx_error_data_buffer
+0x06a1 mem_le_adv_channel_map_temp
+0x06a1 mem_le_data_len_temp//1byte
+0x06a1 mem_event_cmd_response_content//2byte
+0x06a1 mem_le_prand//16byte
+0x06a1 mem_AES_CMAC_k//16 bytes
+0x06a1 mem_regext_index//1 bytes
+0x06a1 mem_temp_block0
+0x06a2 mem_le_data_temp//15bytes
+0x06a2 mem_temp_block1
+0x06b1 mem_le_tx_buf_temp//48byte
+0x06b1 mem_le_aes_128//16byte
+0x06b1 mem_regext//64 bytes
+0x06b1 mem_AES_CMAC_k1//16 bytes
+0x06b1 mem_temp_block2
+0x06c1 mem_AES_CMAC_k2//16 bytes
+0x06c1 mem_temp_block3
+0x06d1 mem_AES_CMAC_temp// 16 bytes
+0x06d1 mem_temp_block4
+0x06e1 mem_AES_CMAC_M_last// 16 bytes
+0x06e1 mem_module_uart_cmd
+0x06e2 mem_module_uart_opcode
+0x06e3 mem_module_uart_len
+0x06e4 mem_module_temp_nl_discard_packet
+0x06e5 mem_temp_block5
+0x06f1 mem_le_mackey//16 bytes
+0x06f1 mem_app_receive_temp
+0x06f1 mem_key_value_temp
+0x06f3 mem_key_value
+0x06f5 mem_key_value_temp1
+0x06f6 mem_key_value_temp2
+0x06f7 mem_key_value_temp3
+0x06f8 mem_key_value_temp4
+0x06f9 mem_key_value_temp5
+0x06fa mem_key_value_temp6
+0x06fb mem_temp_block6
+0x0701 mem_scale_ratio
+0x0704 mem_xcnt
+0x0707 mem_scale_ratio_temp
+0x0709 mem_mesh_receive_model_message_payload_len
+0x070a mem_mesh_receive_model_message_payload_opcode
+0x070b mem_mesh_receive_model_message_payload
+0x0722 mem_mesh_access_layer_payload_len
+0x0723 mem_mesh_access_layer_payload
+0x0723 mem_mesh_access_payload
+0x0755 mem_mesh_access_payload_padding//为了透传模块预留
+0x0787 mem_mesh_queue_ele_temp
+0x0787 mem_mesh_queue_ele_duration
+0x0788 mem_mesh_queue_ele_gatt_msg_id
+0x0789 mem_mesh_queue_ele_len
+0x078a mem_mesh_queue_ele_payload
+0x07a9 mem_mesh_queue_ele_padding
+0x07aa mem_le_txheader_mesh_temp
+0x07d1 mem_mesh_sha256_chunk_start
+0x07d1 mem_mesh_sha256_chunk1
+0x0811 mem_mesh_sha256_chunk2
+0x0851 mem_mesh_sha256_chunk3
+0x0891 mem_mesh_sha256_chunk4
+0x08d1 mem_mesh_Privacy_Plaintext
+0x08d1 mem_mesh_Privacy_Plaintext_Zero_String
+0x08d6 mem_mesh_Privacy_Plaintext_IV_Index
+0x08da mem_mesh_Privacy_Plaintext_Privacy_Random
+0x08da mem_mesh_Privacy_Plaintext_Privacy_Random_EncDST
+0x08dc mem_mesh_Privacy_Plaintext_Privacy_Random_EncTransportPDU_or_NetMIC
+0x08e1 mem_mesh_PECB
+0x08f1 mem_nonce_ptr
+0x08f3 mem_ccm_data_len
+0x08f4 mem_ccm_data_ptr
+0x08f6 mem_ccm_mic
+0x08fe mem_ccm_type
+0x08ff mem_mesh_Device_UUID
+0x090f mem_mesh_receive_VID
+0x0910 mem_mesh_mic_cache_ptr
+0x0912 mem_adv_CRC_False_initValue
+0x0914 mem_CRC16_polynomial
+0x0916 mem_mesh_lower_transport_layer_payload_len
+0x0917 mem_mesh_loopcnt_tmep
+0x0919 mem_mesh_rega_temp
+0x091b mem_mesh_regb_temp
+0x091d mem_mesh_regc_temp
+0x091f mem_mesh_alarm_temp
+0x0921 mem_mesh_message_Transport_NetMIC_length
+0x0922 mem_mesh_message_NID
+0x0923 mem_mesh_message_TTL
+0x0924 mem_mesh_message_SEQ
+0x0927 mem_mesh_message_SRC
+0x0929 mem_mesh_message_DST
+0x092b mem_mesh_message_Proxy_TransportPDU_opcode
+0x092b mem_mesh_message_Transport_NetMIC
+0x092b mem_mesh_message_Transport_Head
+0x092c mem_mesh_message_Proxy_TransportPDU_Parameters
+0x092c mem_mesh_message_Transport_unsegmented_access_messagePDU
+0x092c mem_mesh_message_Transport_segmented_access_messagePDU
+0x092c mem_mesh_message_segment_access_SZMIC_SeqZero_SegO_SegN
+0x092f mem_mesh_message_Transport_segmented_access_messagePDU_Segment
+0x092f mem_mesh_message_Transport_NetMIC_end
+0x093f mem_mesh_nonce_struct
+0x094c mem_mesh_send_message_DST
+0x094e mem_mesh_last_message_SEQ
+0x0951 mem_mesh_network_packet_type
+0x0952 mem_mesh_receive_message_count
+0x0953 mem_mesh_receive_message_first_unicast_address
+0x0955 mem_mesh_receive_message_second_unicast_address
+0x0957 mem_mesh_receive_message_third_unicast_address
+0x0959 mem_mesh_receive_message_fourth_unicast_address
+0x095b mem_mesh_Proxy_Nonce
+0x095b mem_mesh_Proxy_Nonce_Nonce_Type
+0x095c mem_mesh_Proxy_Nonce_Pad
+0x095d mem_mesh_Proxy_Nonce_SEQ
+0x0960 mem_mesh_Proxy_Nonce_SRC
+0x0962 mem_mesh_Proxy_Nonce_Pad2
+0x0964 mem_mesh_Proxy_Nonce_IV_Index
+0x0968 mem_mesh_white_list
+0x0978 mem_mesh_white_list_num
+0x097a mem_mesh_addressed_filter_type
+0x097b mem_mesh_upper_transport_layer_payload_ptr
+0x097d mem_mesh_segmented_upper_transport_layer_payload_len
+0x097e mem_mesh_segmented_lower_transport_layer_SegZero
+0x0980 mem_mesh_segmented_lower_transport_layer_SegO
+0x0981 mem_mesh_segmented_lower_transport_layer_SegN
+0x0982 mem_mesh_segmented_last_packet_upper_teansport_payload_len
+0x0983 mem_mesh_upper_tran_layer_queue_temp
+0x0983 mem_mesh_upper_tran_layer_temp_packet_flag
+0x0984 mem_mesh_upper_tran_layer_temp_packet_transmit_delay
+0x0986 mem_mesh_upper_tran_layer_temp_packet_TID
+0x0987 mem_mesh_upper_tran_layer_temp_packet_header_IVI_NID
+0x0988 mem_mesh_upper_tran_layer_temp_packet_header_CTL_TTL
+0x0989 mem_mesh_upper_tran_layer_temp_packet_header_SEQ
+0x098c mem_mesh_upper_tran_layer_temp_packet_header_SRC
+0x098e mem_mesh_upper_tran_layer_temp_packet_header_DST
+0x0990 mem_mesh_upper_tran_layer_temp_packet_length
+0x0991 mem_mesh_upper_tran_layer_temp_packet_payload
+0x09fd mem_mesh_network_dup_cache
+0x0a3d mem_mesh_network_msg_cache
+0x0a8d mem_mesh_network_relay_gatt_queue_each_size
+0x0a8e mem_mesh_network_relay_gatt_queue_length
+0x0a8f mem_mesh_network_relay_gatt_queue_current_num
+0x0a90 mem_mesh_network_relay_gatt_queue_read_ptr
+0x0a91 mem_mesh_network_relay_gatt_queue_write_ptr
+0x0a92 mem_mesh_network_relay_gatt_queue_ele
+0x0709 mem_hci_opcode_ocf
+0x070b mem_hci_opcode_ogf
+0x070c mem_hci_event_head_type
+0x070d mem_hci_event_head_event_code
+0x070e mem_hci_event_para_total_length
+0x070f mem_hci_command_complete_num_hci_command_packet
+0x0710 mem_hci_command_complete_command_opcode
+0x0710 mem_hci_opcode
+0x0712 mem_hci_command_complete_return_parameter
+0x0712 mem_hci_command_complete_return_parameter_status
+0x0713 mem_hci_command_complete_return_parameter_chip_id
+0x0709 mem_module_le_rx_data_len
+0x070b mem_module_le_rx_data_address
+0x070d mem_module_le_rx_data_handle
+0x0709 mem_init_cnt
+0x070b mem_data_pre
+0x070d mem_data_current
+0x070f mem_data_sum
+0x0712 mem_data_value
+0x0709 mem_le_test_sync
+0x070b mem_le_test_pcnt
+0x070d mem_tst_pktcnt_crc
+0x070f mem_tst_pktcnt_dmh
+0x0711 mem_tmp_buffer_head
+0x0714 mem_tmp_buffer
+0x0709 mem_usb_status
+0x070b mem_usb_fifo_empty
+0x070c mem_usb_read_len
+0x070e mem_usb_txbuf
+0x074f mem_usb_txbuf1
+0x0759 mem_usb_txbuf2
+0x0763 mem_usb_rxbuf
+0x07a3 mem_usb_rxbuf_end
+0x07a4 mem_bufptr
+0x07a6 mem_remain
+0x07a7 mem_hidreportdesc_kb
+0x07a9 mem_hidreportdesc_m
+0x07ab mem_devicedesc
+0x07be mem_confdesc
+0x07fa mem_string0
+0x07ff mem_string1
+0x081d mem_string2
+0x083b mem_string3
+0x0859 mem_cb_usb_config
+0x085b mem_usb_tx_interval
+0x085c mem_usb_vid_pid
+0x0865 mem_usb_zero_packet
+0x0867 mem_usb_ones_packet
+0x0869 mem_usb_two_packet
+0x086b mem_usb0_state
+0x086c mem_usb_offline_check_gpio
+0x086d mem_usb_clear_mem_start
+0x086d mem_usb_setup
+0x086d mem_usb_setup_bmRequestType
+0x086e mem_usb_setup_bRequest
+0x086f mem_usb_setup_bValue
+0x0870 mem_usb_setup_bValueH
+0x0871 mem_usb_setup_wIndex
+0x0873 mem_usb_setup_bLength
+0x0874 mem_usb_setup_bLengthH
+0x0875 mem_usb0_set_report_data
+0x08b5 mem_usb0_get_report_data
+0x08f5 mem_usb_setup_bValue_temp
+0x08f7 mem_usb0_get_set_report
+0x08f8 mem_usb0_data_ready_report
+0x08f9 mem_usb_tx_win_enable
+0x08fa mem_usb_tx_mac_enable
+0x08fb mem_usb_idle_flag
+0x08fc mem_usb_idle_rate
+0x08fd mem_usb_get_protocol_flag
+0x08fe mem_usb_set_protocol_status
+0x08ff mem_usb_set_protocol_value
+0x0900 mem_usb_state
+0x0901 mem_usb_remote_wakeup
+0x0902 mem_usb_clear_remote_wakeup
+0x0903 mem_sdsystem_wakeup_flag
+0x0904 mem_usb_ep0_stall_status
+0x0905 mem_usb_ep1_stall_status
+0x0906 mem_usb_ep2_stall_status
+0x0907 mem_usb_ep3_stall_status
+0x0908 mem_dsc_info_data_pointer
+0x090a mem_dsc_info_len
+0x090b mem_usb_ep1_data
+0x090c mem_usb_ep2_data
+0x090d mem_usb_tx_enable
+0x090e mem_usb_device_enumeration_endflag
+0x090f mem_usb_wakestate_onetime_flag
+0x0910 mem_usb_mac_wakeup_trig
+0x0911 mem_usb_set_high_addr_flag
+0x0912 mem_usb_clear_halt
+0x0913 mem_usb_mouse_data
+0x0923 mem_usb_kb_data
+0x0933 mem_usb_kb_multikey
+0x0943 mem_usb_kb_system
+0x0953 mem_usb_test_cnt
+0x0955 mem_usb_test_kb
+0x095f mem_usb_clear_mem_end
+0x095f mem_usb_ccid_buf
+0x099f mem_dg_rssi_noise_buffer
+0x0a9f mem_dg_rssi_noise_dg_buffer
+0x0b9f mem_dg_rssi_noise_ms_buffer
+0x0c9f mem_dg_rssi_noise_kb_buffer
+
+0x019f mem_le_new_param
+0x019f mem_le_new_transmitwindowsize
+0x01a0 mem_le_new_transmitwindowoffset
+0x01a2 mem_le_new_conninterval
+0x01a4 mem_le_new_connslavelatency
+0x01a6 mem_le_new_connsupervisiontimeout
+0x019f mem_le_new_map
+0x019f mem_le_new_m2s_phy
+0x01a0 mem_le_new_s2m_phy
+0x004c mem_le_rxbuf_data_header
+0x004d mem_le_rxbuf_data_length
+0x004e mem_le_rxbuf_data_payload
+0x004c mem_le_rxbuf_data_ll_header
+0x004d mem_le_rxbuf_data_ll_length
+0x004e mem_le_rxbuf_data_ll_opcode
+0x004f mem_le_rxbuf_data_ll_control_data
+0x004c mem_le_rxbuf_adv_header
+0x004d mem_le_rxbuf_adv_length
+0x004e mem_le_rxbuf_adv_payload
+0x004c mem_le_rxbuf_adv_scan_req_header
+0x004d mem_le_rxbuf_adv_scan_req_length
+0x004e mem_le_rxbuf_adv_scan_req_scan_address
+0x0054 mem_le_rxbuf_adv_scan_req_adv_address
+0x004c mem_le_rxbuf_adv_connect_ind_header
+0x004d mem_le_rxbuf_adv_connect_ind_length
+0x004e mem_le_rxbuf_adv_connect_ind_init_address
+0x0054 mem_le_rxbuf_adv_connect_ind_adv_address
+0x005a mem_le_rxbuf_adv_connect_ind_access_address
+0x005e mem_le_rxbuf_adv_connect_ind_crc_init
+0x0061 mem_le_rxbuf_adv_connect_ind_win_size
+0x0062 mem_le_rxbuf_adv_connect_ind_win_offset
+0x0064 mem_le_rxbuf_adv_connect_ind_interval
+0x0066 mem_le_rxbuf_adv_connect_ind_latency
+0x0068 mem_le_rxbuf_adv_connect_ind_timeout
+0x006a mem_le_rxbuf_adv_connect_ind_channel_map
+0x006f mem_le_rxbuf_adv_connect_ind_hop_and_sca
+0x06b1 mem_le_search_handle_start
+0x06b3 mem_le_search_handle_end
+0x06b5 mem_le_att_offset
+0x06b5 mem_le_search_att_type_length
+0x06b6 mem_le_search_att_type
+0x06c6 mem_le_curr_att_len
+0x06c7 mem_le_cur_attlist_start_ptr
+0x06c9 mem_le_cur_handle_start
+0x06cb mem_le_cur_handle_end
+0x06cd mem_le_cur_uuid_length
+0x06ce mem_le_cur_uuid
+0x06de mem_le_cur_handle
+0x004c mem_le_rxbuf_data_att_header
+0x004d mem_le_rxbuf_data_att_length
+0x004e mem_le_rxbuf_data_att_l2cap_length
+0x0050 mem_le_rxbuf_data_att_cid
+0x0052 mem_le_rxbuf_data_att_opcode
+0x0053 mem_le_rxbuf_data_att_payload
+0x004c mem_le_rxbuf_data_continue_header
+0x004d mem_le_rxbuf_data_continue_length
+0x004e mem_le_rxbuf_data_continue_payload
+0x004c mem_le_rxbuf_data_att_write_header
+0x004d mem_le_rxbuf_data_att_write_length
+0x004e mem_le_rxbuf_data_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_att_write_cid
+0x0052 mem_le_rxbuf_data_att_write_opcode
+0x0053 mem_le_rxbuf_data_att_write_handle
+0x0055 mem_le_rxbuf_data_att_write_payload
+0x004c mem_le_rxbuf_data_prepare_att_write_header
+0x004d mem_le_rxbuf_data_prepare_att_write_length
+0x004e mem_le_rxbuf_data_prepare_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_prepare_att_write_cid
+0x0052 mem_le_rxbuf_data_prepare_att_write_opcode
+0x0053 mem_le_rxbuf_data_prepare_att_write_handle
+0x0055 mem_le_rxbuf_data_prepare_att_write_offset
+0x0057 mem_le_rxbuf_data_prepare_att_write_payload
+0x070b mem_mesh_NETKeyindex_and_APPKeyindex
+0x070e mem_mesh_receive_application_key
+0x070b mem_mesh_vendor_message_cid
+0x070d mem_mesh_vendor_message_tid
+0x070e mem_mesh_vendor_message_attr_type
+0x070b mem_mesh_vendor_message_header
+0x0710 mem_mesh_vendor_attr_parameter
+0x070b mem_mesh_vendor_message_delay_close_time_header
+0x0710 mem_mesh_vendor_delay_close_time
+0x070b mem_mesh_vendor_message_night_light_onoff_header
+0x0710 mem_mesh_vendor_night_light_onoff
+0x070b mem_mesh_vendor_message_color_header
+0x0710 mem_mesh_vendor_color_lightness
+0x0712 mem_mesh_vendor_color_hue
+0x0714 mem_mesh_vendor_color_saturation
+0x070b mem_mesh_vendor_message_back_light_onoff_header
+0x0710 mem_mesh_vendor_back_light_onoff
+0x070b mem_mesh_vendor_message_main_light_onoff_header
+0x0710 mem_mesh_vendor_main_light_onoff
+0x070b mem_mesh_vendor_message_standby_brightness_header
+0x0710 mem_mesh_vendor_standby_brightness
+0x070b mem_mesh_vendor_message_current_time_header
+0x0710 mem_mesh_vendor_message_current_time
+0x0723 mem_mesh_access_layer_payload_vendor_command
+0x0724 mem_mesh_access_layer_payload_vendor_CID
+0x0726 mem_mesh_access_layer_payload_vendor_tid
+0x0727 mem_mesh_access_layer_payload_vendor_attr_type
+0x0729 mem_mesh_access_layer_payload_vendor_attr_parameter
+0x06a1 mem_mesh_subscription_eep_temp
+0x0787 mem_mesh_gatt_package_receive_msg_buffer_ptr
+0x0789 mem_mesh_gatt_package_receive_msg_buffer_temp
+0x0789 mem_mesh_gatt_package_receive_msg_id
+0x078b mem_mesh_gatt_package_receive_MAC
+0x078b mem_mesh_gatt_package_receive_msg_num
+0x078c mem_mesh_gatt_package_receive_msg_total_length
+0x078d mem_mesh_gatt_package_receive_msg_payload
+0x08ff mem_mesh_receive_service_uuid_company_id
+0x0901 mem_mesh_receive_service_uuid_vid
+0x0902 mem_mesh_receive_service_uuid_provisioning_type
+0x0903 mem_mesh_receive_service_uuid_mac
+0x0905 mem_mesh_receive_service_uuid_msg_id
+0x0906 mem_mesh_receive_service_uuid_package_num
+0x0907 mem_mesh_receive_service_uuid_length
+0x0908 mem_mesh_receive_service_uuid_payload_data
+0x07aa mem_mesh_fast_pair_packet_type
+0x070b mem_mesh_configuration_health_message_opcode
+0x070b mem_mesh_configuration_health_message_opcode_config_model_subscription
+0x070c mem_mesh_subscription_element_address
+0x070e mem_mesh_subscription_value_address
+0x0710 mem_mesh_subscription_model_identifier
+0x070b mem_mesh_configuration_health_message_opcode_config_model_subscription_ow//overwrite
+0x070c mem_mesh_subscription_element_address_ow
+0x070e mem_mesh_subscription_list_num_ow
+0x070f mem_mesh_subscription_value_address_start_ow
+0x07d1 mem_chip_clear_paired_info
+0x070b mem_mesh_module_message_opcode
+0x070b mem_mesh_module_message_opcode_onoff_set
+0x070c mem_mesh_generic_onoff_set_payload_OnOff
+0x070d mem_mesh_generic_onoff_set_payload_TID
+0x070e mem_mesh_generic_onoff_set_payload_Transition_Time
+0x070f mem_mesh_generic_onoff_set_payload_Delay
+0x070b mem_mesh_module_message_opcode_scene_recall
+0x070c mem_mesh_scene_recall_payload_scene_number
+0x070e mem_mesh_scene_recall_payload_TID
+0x070f mem_mesh_scene_recall_payload_Transition_Time
+0x0710 mem_mesh_scene_recall_payload_Delay
+0x070b mem_mesh_module_message_opcode_set_light_lightness
+0x070c mem_mesh_light_lightness_set_payload_lightness
+0x070e mem_mesh_light_lightness_set_payload_TID
+0x070f mem_mesh_light_lightness_set_payload_Transition_Time
+0x0710 mem_mesh_light_lightness_set_payload_Delay
+0x0711 mem_mesh_light_lightness_calc_lightness
+0x070b mem_mesh_module_message_opcode_set_light_ctl
+0x070c mem_mesh_CTL_Lightness
+0x070e mem_mesh_CTL_Temperature
+0x0710 mem_mesh_CTL_Delta_UV
+0x0712 mem_mesh_CTL_lightness_TID
+0x0713 mem_mesh_CTL_lightness_Transition_Time
+0x0714 mem_mesh_CTL_lightness_Delay
+0x0715 mem_mesh_CTL_calc_lightness
+0x0716 mem_mesh_CTL_calc_temperature
+0x093f mem_mesh_Network_Nonce
+0x093f mem_mesh_Network_Nonce_nonce_type
+0x0940 mem_mesh_Network_Nonce_CTL_and_TTL
+0x0941 mem_mesh_Network_Nonce_SEQ
+0x0944 mem_mesh_Network_Nonce_SRC
+0x0946 mem_mesh_Network_Nonce_Pad//0x0000
+0x0948 mem_mesh_Network_Nonce_IV_Index
+0x07aa mem_mesh_network_packet_type_temp
+0x07ab mem_mesh_message_NID_temp
+0x07ac mem_mesh_message_TTL_temp
+0x07ad mem_mesh_message_SEQ_temp
+0x07b0 mem_mesh_message_SRC_temp
+0x07b2 mem_mesh_message_DST_temp
+0x07b4 mem_mesh_message_Transport_PDU_temp
+0x093f mem_mesh_Application_Nonce
+0x093f mem_mesh_Application_Nonce_Nonce_Type
+0x0940 mem_mesh_Application_Nonce_ASZMIC_and_Pad//
+0x0941 mem_mesh_Application_Nonce_SEQ
+0x0944 mem_mesh_Application_Nonce_SRC
+0x0946 mem_mesh_Application_Nonce_DST
+0x0948 mem_mesh_Application_Nonce_IV_Index
+0x093f mem_mesh_Device_Nonce
+0x093f mem_mesh_Device_Nonce_Nonce_Type
+0x0940 mem_mesh_Device_Nonce_ASZMIC_and_Pad//
+0x0941 mem_mesh_Device_Nonce_SEQ
+0x0944 mem_mesh_Device_Nonce_SRC
+0x0946 mem_mesh_Device_Nonce_DST
+0x0948 mem_mesh_Device_Nonce_IV_Index
+0x0722 mem_mesh_upper_transport_layer_payload_len
+0x0991 mem_mesh_upper_tran_layer_temp_pakcet_AKF_AID
+0x0991 mem_mesh_upper_tran_layer_temp_unsegmented_pakcet_AKF_AID
+0x0992 mem_mesh_upper_tran_layer_temp_unsegmented_packet_fill
+0x0996 mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu
+0x0996 mem_mesh_upper_tran_layer_temp_unsegmented_pakcet_upper_tran_access_pdu
+0x0991 mem_mesh_upper_tran_layer_temp_segmented_pakcet_AKF_AID
+0x0992 mem_mesh_upper_tran_layer_temp_segmented_pakcet_SeqZero
+0x0994 mem_mesh_upper_tran_layer_temp_segmented_pakcet_SegO
+0x0995 mem_mesh_upper_tran_layer_temp_segmented_pakcet_SegN
+0x0996 mem_mesh_upper_tran_layer_temp_segmented_pakcet_upper_tran_access_pdu
+0x01fd mem_otp_adc
+0x0205 mem_otp_temp0
+0x020d mem_otp_core_ldo
+0x020e mem_otp_verf_bg
+0x020f mem_otp_charge_pump
+0x0210 mem_otp_dpll_ibais
+0x0211 mem_otp_temp1
+0x0219 mem_otp_hv_sel
+0x021a mem_otp_ldo_vsel
+0x021b mem_otp_load_delay
+0x021c mem_otp_load_check_sum
+0x4000 mem_patch00
+0x4001 mem_patch01
+0x4002 mem_patch02
+0x4003 mem_patch03
+0x4004 mem_patch04
+0x4005 mem_patch05
+0x4006 mem_patch06
+0x4007 mem_patch07
+0x4008 mem_patch08
+0x4009 mem_patch09
+0x400a mem_patch0a
+0x400b mem_patch0b
+0x400c mem_patch0c
+0x400d mem_patch0d
+0x400e mem_patch0e
+0x400f mem_patch0f
+0x4010 mem_patch10
+0x4011 mem_patch11
+0x4012 mem_patch12
+0x4013 mem_patch13
+0x4014 mem_patch14
+0x4015 mem_patch15
+0x4016 mem_patch16
+0x4017 mem_patch17
+0x4018 mem_patch18
+0x4019 mem_patch19
+0x401a mem_patch1a
+0x401b mem_patch1b
+0x401c mem_patch1c
+0x401d mem_patch1d
+0x401e mem_patch1e
+0x401f mem_patch1f
+0x4020 mem_patch20
+0x4021 mem_patch21
+0x4022 mem_patch22
+0x4023 mem_patch23
+0x4024 mem_patch24
+0x4025 mem_patch25
+0x4026 mem_patch26
+0x4027 mem_patch27
+0x4028 mem_patch28
+0x4029 mem_patch29
+0x402a mem_patch2a
+0x402b mem_patch2b
+0x402c mem_patch2c
+0x402d mem_patch2d
+0x402e mem_patch2e
+0x402f mem_patch2f
+0x4030 mem_patch30
+0x4031 mem_patch31
+0x4032 mem_patch32
+0x4033 mem_patch33
+0x4034 mem_patch34
+0x4035 mem_patch35
+0x4036 mem_patch36
+0x4037 mem_patch37
+0x4038 mem_patch38
+0x4039 mem_patch39
+0x403a mem_patch3a
+0x403b mem_patch3b
+0x403c mem_patch3c
+0x403d mem_patch3d
+0x403e mem_patch3e
+0x403f mem_patch3f
+0x4040 mem_context
+0x4093 mem_current_amaddr
+0x4094 mem_lpm_mode
+0x4095 mem_last_clkn
+0x4099 mem_fcomp_div
+0x409a mem_rx_window_sniff
+0x409c mem_rf_init_ptr
+0x409e mem_rf_rccal
+0x409f mem_handle_num
+0x40a0 mem_chip_functions
+0x40a2 mem_lpm_wake_lock
+0x40a4 mem_lpm_interval
+0x40a6 mem_lpm_overhead
+0x40a7 mem_lpm_hibernate_switch
+0x40a8 mem_sniff_unint_lost
+0x40a9 mem_sleep_counter
+0x40ad mem_sleep_counter_all
+0x40b1 mem_sleep_clkn
+0x40b7 mem_sniff_rcv
+0x40ba mem_sniff_lost
+0x40bd mem_clks_per_lpo
+0x40c0 mem_lpm_mult
+0x40c1 mem_lpm_mult_timeout
+0x40c2 mem_lpm_mult_cnt
+0x40c3 mem_lpm_xtalcnt
+0x40c4 mem_lpm_buckcnt
+0x40c5 mem_lpm_ldocnt
+0x40c6 mem_lpm_isogate
+0x40c7 mem_lpm_isogate_stage2
+0x40c8 mem_lpm_isogate_final
+0x40c9 mem_lpm_ldo_sel
+0x40ca mem_lpm_sysctl
+0x40cb mem_lpm_hv_sel
+0x40cc mem_saved_gpio
+0x40e4 mem_saved_gsel
+0x40e7 mem_saved_mark
+0x40ef mem_saved_spidctrl
+0x40f0 mem_patch_ptr
+0x40f2 mem_patch_len
+0x40f4 mem_timers
+0x4114 mem_hci_cmd
+0x4115 mem_hci_conn_handle
+0x4116 mem_hci_plap
+0x4119 mem_hci_puap
+0x411a mem_hci_pnap
+0x411c mem_xtal_c_sel
+0x411d mem_ghpc_table
+0x4135 mem_aac_res_table
+0x4141 mem_tx_power
+0x4142 mem_modem_rssi
+0x4143 mem_gain_fix
+0x4144 mem_gain_table
+0x4147 mem_gain_second_agc_en
+0x4148 mem_system_clk
+0x4149 mem_rf_init_data
+0x415b mem_otp_charge_pump_x
+0x415c mem_otp_dpll_ibais_x
+0x415d mem_xtal_freq
+0x415e mem_version
+0x415f mem_company_id
+0x4161 mem_sub_version
+0x4163 mem_le_dsniff
+0x4165 mem_le_conn_interval
+0x4167 mem_le_tx_ifs_defference
+0x4168 mem_le_tx2m_delay
+0x4169 mem_le_txheader
+0x416a mem_le_txlen
+0x416b mem_le_txpayload
+0x426b mem_le_name_len
+0x426c mem_le_name
+0x428a mem_le_ltk
+0x429a mem_ltk_exists
+0x429b mem_le_rconfirm
+0x42ab mem_le_srand
+0x42bb mem_le_iat
+0x42bc mem_le_rat
+0x42bd mem_le_preq
+0x42be mem_le_preq_iocap
+0x42bf mem_le_preq_oob
+0x42c0 mem_le_preq_auth
+0x42c1 mem_le_preq_max_keysize
+0x42c2 mem_le_preq_init_key_distribution
+0x42c3 mem_le_preq_resp_key_distribution
+0x42c4 mem_le_pres
+0x42c5 mem_le_pres_iocap
+0x42c6 mem_le_pres_oob
+0x42c7 mem_le_pres_auth
+0x42c8 mem_le_pres_max_keysize
+0x42c9 mem_le_pres_init_key_distribution
+0x42ca mem_le_pres_resp_key_distribution
+0x42cb mem_le_conn_param
+0x42cb mem_le_conn_peer_addr_type
+0x42cc mem_le_conn_peer_addr
+0x42d2 mem_le_conn_own_addr_type
+0x42d3 mem_le_interval_min
+0x42d5 mem_le_interval_max
+0x42d7 mem_le_latency
+0x42d9 mem_le_timeout
+0x42db mem_le_lap
+0x42de mem_le_uap
+0x42df mem_le_nap
+0x42e1 mem_le_local_mtu
+0x42e3 mem_le_remote_mtu
+0x42e5 mem_le_skdm
+0x42ed mem_le_skds
+0x42f5 mem_le_init_superto
+0x42f7 mem_ui_le_uuid_table
+0x42f9 mem_le_secure_connect_flag
+0x42fa mem_le_secure_connect_state
+0x42fb mem_le_sc_confirm_gkey_flag
+0x42fc mem_le_pairing_state
+0x42fd mem_le_enc_state
+0x42fe mem_le_pairing_mode
+0x42ff mem_le_tk
+0x4303 mem_le_ediv
+0x4305 mem_le_rand
+0x430d mem_le_irk
+0x431d mem_le_transmit_window
+0x4321 mem_le_configuration
+0x4322 mem_le_fixed_ltk
+0x4332 mem_le_pairing_handle
+0x4334 mem_le_packet_llid
+0x4335 mem_le_l2cap_size
+0x4337 mem_le_packet_len_recved
+0x4339 mem_le_payload_ptr
+0x433b mem_le_signaling_identifier
+0x433c mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x433e mem_le_md_count
+0x433f mem_ble_l2cap_tx_buff0_ptr
+0x4341 mem_ble_l2cap_tx_buff_size_ptr
+0x4343 mem_le_scan_enable
+0x4344 mem_le_scan_interval
+0x4346 mem_le_scan_window
+0x4348 mem_le_adv_data_len
+0x4349 mem_le_adv_data
+0x4368 mem_le_scan_data_len
+0x4369 mem_le_scan_data
+0x4388 mem_le_adv_enable
+0x4389 mem_le_adv_param
+0x4389 mem_le_adv_interval
+0x438b mem_le_adv_type
+0x438c mem_le_adv_own_addr_type
+0x438d mem_le_adv_direct_addr
+0x4393 mem_le_adv_channel_map
+0x4394 mem_le_scan_params
+0x4394 mem_le_scan_type
+0x4395 mem_le_scan_own_addr_type
+0x4396 mem_le_l2cap_att_states
+0x4397 mem_le_att_opcode
+0x4398 mem_le_att_handle
+0x439a mem_le_search_res
+0x439b mem_le_notify_handle
+0x439d mem_le_search_uuid_length
+0x439e mem_le_search_uuid
+0x43ae mem_le_local_feature
+0x43b6 mem_le_tx_phys
+0x43b7 mem_le_rx_phys
+0x43b8 mem_remote_rx_max_octets
+0x43ba mem_remote_rx_max_time
+0x43bc mem_remote_tx_max_octets
+0x43be mem_remote_tx_max_time
+0x43c0 mem_local_rx_max_octets
+0x43c2 mem_local_rx_max_time
+0x43c4 mem_local_tx_max_octets
+0x43c6 mem_local_tx_max_time
+0x43c8 mem_ucode_ptr
+0x43ca mem_ucode_flag
+0x43cb mem_device_option
+0x43cc mem_peripheral_lock_flag
+0x43cd mem_bistfix_val
+0x43d3 mem_cb_check_wakelock
+0x43d5 mem_cb_before_hibernate
+0x43d7 mem_cb_before_lpm
+0x43d9 mem_cb_le_process
+0x43db mem_cb_idle_process
+0x43dd mem_cb_bb_event_process
+0x43df mem_cb_att_write
+0x43e1 mem_cb_ble_transmit
+0x43e3 mem_cb_event_timer
+0x43e5 mem_cb_bt_set_mult
+0x43e7 mem_cb_spi_flash_write_complate
+0x43e9 mem_cb_before_lpm_sleep
+0x43eb mem_eeprom_base
+0x43ed mem_wake_up_delay_timer
+0x43ee mem_app_connection_options
+0x43ef mem_app_disconn_reason
+0x43f1 mem_app_disconn_reason_flag
+0x43f3 mem_xrecord_mode
+0x43f4 mem_eeprom_block_size
+0x43f5 mem_spi_init_clk
+0x43f6 mem_spi_init_delay_time
+0x43f7 mem_spi_ncs_gpio
+0x43f8 mem_nv_data_ptr
+0x43fa mem_nv_data_number
+0x43fb mem_queue_ptr
+0x43fd mem_reference_inter1p8v_2v_adc_io_data
+0x43fd mem_inter1v_adc_ft_data
+0x43fd mem_3v_adc_io_data
+0x43ff mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+0x43ff mem_inter1p2v_adc_ft_data
+0x43ff mem_2v_adc_hvin_data
+0x4401 mem_reference_inter1p8v_1v_adc_io_data
+0x4401 mem_io1v_adc_ft_data
+0x4401 mem_1v_adc_io_data
+0x4403 mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+0x4403 mem_io2v_adc_ft_data
+0x4403 mem_3v_adc_hvin_data
+0x4405 mem_adc_ratio
+0x4405 mem_reference_voltage
+0x4407 mem_adc_config_flag
+0x4408 mem_adc_channel
+0x4409 mem_adc_clkdiv
+0x440a mem_adc_current_value
+0x440c mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
+0x440d mem_adc_saddr_ptr
+0x440f mem_adc_eaddr_ptr
+0x4411 mem_adc_dma_enable
+0x4412 mem_adc_cal_c0
+0x4413 mem_adc_cal_c1
+0x4414 mem_adc_cal_c2
+0x4415 mem_adc_cal_c3
+0x4416 mem_adc_cal_c4
+0x4417 mem_adc_cal_c5
+0x4418 mem_adc_cal_c6
+0x4419 mem_spi_write_addr
+0x441c mem_spi_write_ptr
+0x441e mem_spi_write_len
+0x4420 mem_spi_write_flash_sm
+0x4421 mem_spi_cs_gpio
+0x4422 mem_spi_si_gpio
+0x4423 mem_spi_so_gpio
+0x4424 mem_spi_sclk_gpio
+0x4425 mem_spi_wp_gpio
+0x4426 mem_spi_hold_gpio
+0x4427 mem_eeprom_wp_gpio
+0x4428 mem_eeprom_scl_gpio
+0x4429 mem_eeprom_sda_gpio
+0x442a mem_kscan_ptr
+0x442c mem_key_num_ptr
+0x442c mem_keyscan_ptr
+0x442e mem_key_value_retention
+0x4430 mem_power_param_ptr
+0x4432 mem_seqi
+0x4433 mem_adc_cal_c7
+0x4433 mem_set_cdb_on
+0x4434 mem_syn_cal_ctrl
+0x4435 mem_nec_decode_error_value
+0x4436 mem_wdt_always_work
+0x4437 mem_power_ctrl_disable
+0x4438 mem_ring_ibias_trim
+0x4439 mem_ring_ibias_vtune_low
+0x443b mem_ring_ibias_vtune_high
+0x443d mem_ring_ibias_calc_adc_gpio
+0x443e mem_ring_ibias_calc_adc_channel
+0x443f mem_rf_debug_rx_gpio
+0x4440 mem_rf_debug_tx_gpio
+0x4441 mem_l2cap_xmem_start
+0x4441 mem_used_map
+0x4442 mem_tx_fifo0
+0x4442 mem_tx_fifo0_map
+0x4443 mem_tx_fifo0_ptr
+0x4445 mem_tx_fifo1
+0x4445 mem_tx_fifo1_map
+0x4446 mem_tx_fifo1_ptr
+0x4448 mem_tx_fifo2
+0x4448 mem_tx_fifo2_map
+0x4449 mem_tx_fifo2_ptr
+0x444b mem_tx_fifo3
+0x444b mem_tx_fifo3_map
+0x444c mem_tx_fifo3_ptr
+0x444e mem_tx_fifo_end
+0x444e mem_l2cap_lpm_txbuf_ptr
+0x4450 mem_l2cap_xmem_end
+0x4450 mem_ccm_pcnt_tx
+0x4455 mem_ccm_pcnt_rx
+0x445a mem_ccm_last_mic
+0x445e mem_ccm_iv
+0x445e mem_ccm_ivm
+0x4462 mem_ccm_ivs
+0x4466 mem_ccm_len
+0x4468 mem_ccm_rx_ptr
+0x446a mem_sc_only_mode
+0x446b mem_sp_debug_mode
+0x446c mem_secure_connections_enable
+0x446d mem_sc_calc
+0x446e mem_sc_local_key_invalid
+0x446f mem_sc_private_key_256
+0x448f mem_sc_pubkey_local_x_256
+0x44af mem_sc_pubkey_local_y_256
+0x44cf mem_sp_state_xmem
+0x44cf mem_authentication_passkey_times
+0x44d0 mem_passkey_1bit
+0x44d1 mem_sp_state_xmem_end
+0x44d1 mem_ipc_lock_bt
+0x44d2 mem_ipc_lock_c51
+0x44d3 mem_ipc_fifo_bt2c51
+0x44db mem_ipc_fifo_c512bt
+0x44e3 mem_ui_button_timer
+0x44e4 mem_ui_button_last_state
+0x44e5 mem_ui_timer_last_btclk
+0x44e9 mem_ui_state_map
+0x44eb mem_ui_button_timeout
+0x44ec mem_ui_button_gpio
+0x44ed mem_ui_led_init_state_set
+0x44ee mem_ui_led_struct_num
+0x44ef mem_ui_led_struct_ptr
+0x44f1 mem_mesh_vendor_mesh_receive_tid
+0x44f2 mem_mesh_vendor_mesh_send_tid
+0x44f3 mem_mesh_vendor_timer_current_time
+0x44f7 mem_system_time
+0x44fb mem_mesh_vendor_timer_timing_delete_index1
+0x44fb mem_mesh_vendor_timer_timing_index1
+0x44fc mem_mesh_vendor_timer_timing_delete_index2
+0x44fc mem_mesh_vendor_timer_timing_time1
+0x4500 mem_mesh_vendor_timer_timing_attr_type1
+0x4502 mem_mesh_vendor_timer_timing_attr_para1
+0x4503 mem_mesh_vendor_timer_timing_buffer
+0x45ed mem_mesh_vendor_timer_timing_palyload
+0x45ff mem_mesh_vendor_timer_timing_temp
+0x4601 mem_mesh_vendor_timer_timing_time_cyclic_temp
+0x4602 mem_mesh_vendor_timer_check_loop
+0x4603 mem_tmall_revd_device_power_on_msge_flag
+0x4604 mem_tmall_send_power_on_msge_timeout
+0x4606 mem_mesh_vendor_timer_timing_temp1
+0x4608 mem_mesh_timer_index_buffer_len
+0x4609 mem_mesh_timer_index_buffer
+0x4629 mem_mesh_timer_index_count
+0x462a mem_mesh_adv_data_len
+0x462b mem_mesh_adv_data
+0x464a mem_mesh_adv_scan_channel
+0x464b mem_mesh_advertising_unprovisioned_device_beacon_switch
+0x464c mem_mesh_advertising_unprovisioned_device_beacon_timer
+0x464e mem_mesh_advertising_unprovisioned_device_beacon_duration
+0x464f mem_mesh_advertising_unprovisioned_device_beacon_interval
+0x4650 mem_mesh_calc_ConfirmationCloud_data
+0x4650 mem_mesh_ConfirmationCloud_RandomB
+0x4658 mem_mesh_ConfirmationCloud_RandomA
+0x4660 mem_mesh_AuthValueProv
+0x4670 mem_mesh_ConfirmationCloud
+0x4680 mem_mesh_ConfirmationDevice
+0x4680 mem_mesh_calc_ConfirmationDevice_data
+0x4680 mem_mesh_provisioning_random_A
+0x4688 mem_mesh_provisioning_random_B
+0x4690 mem_mesh_AuthValueDevice
+0x46a0 mem_mesh_Device_Key
+0x46b0 mem_mesh_Confirmationkey
+0x46c0 mem_mesh_sha256_ConfirmationKey_ascii
+0x46cf mem_mesh_sha256_SessionKey_ascii
+0x46d9 mem_mesh_sha256_DeviceKey_ascii
+0x46e2 mem_mesh_sha256_load_first_data_flag
+0x46e3 mem_mesh_sha256_data_len_byte
+0x46eb mem_mesh_sha256_data_len_bit
+0x46f3 mem_mesh_sha256_data_end_addr
+0x46f5 mem_mesh_sha256_data_len_addr
+0x46f7 mem_mesh_sha256_chunk_count
+0x46f8 mem_mesh_sha256_chunk_data_ptr
+0x46fa mem_mesh_sha256_chunk_ptr
+0x46fc mem_k2_P_len
+0x46fd mem_k2_P
+0x470d mem_k2_N
+0x471d mem_k2_SALT
+0x472d mem_k2_T
+0x473d mem_k2_T0
+0x473d mem_k2_T1
+0x474d mem_k2_NID
+0x474e mem_k2_T3
+0x475e mem_k2_T2
+0x476e mem_k4_SALT
+0x477e mem_k4_T
+0x478e mem_k4_id6_01
+0x479e mem_k4_k4N
+0x47ae mem_mesh_transport_AID
+0x47af mem_k3_SALT
+0x47bf mem_k3_T
+0x47cf mem_k3_id64_01
+0x47d4 mem_k3_k4N
+0x47dc mem_mesh_network_id
+0x47e4 mem_mesh_provisioned_flag
+0x47e5 mem_mesh_Provisioning_State_Flag
+0x47e6 mem_mesh_Device_PID
+0x47e7 mem_mesh_UUID_FeatureFlag
+0x47e8 mem_mesh_UUID_FeatureFlag1
+0x47e9 mem_mesh_PDU_RFU
+0x47ea mem_mesh_OOB_information
+0x47ec mem_mesh_Encrypt_Provisioning_Data
+0x47ec mem_mesh_provisioning_data_Mac_addr
+0x47ee mem_mesh_KeyFresh_and_Update_flag
+0x47ef mem_mesh_Network_Key
+0x47ff mem_mesh_last_IV_Index_byte
+0x4800 mem_mesh_Unicast_Address
+0x4802 mem_mesh_recv_cfg_appkey_add_timer
+0x4803 mem_mesh_report_power_on_timer
+0x4804 mem_mesh_report_full_attribute_timer
+0x4805 mem_mesh_health_node_reset_timer
+0x4806 mem_mesh_send_packet_timeout
+0x4808 mem_mesh_gatt_package_send_msg_id
+0x4809 mem_mesh_gatt_receive_msg_timer
+0x480a mem_mesh_three_tuple_ProductID
+0x480e mem_mesh_three_tuple_MAC
+0x4814 mem_mesh_three_tuple_secret
+0x4824 mem_mesh_cb_receive_advertising
+0x4826 mem_mesh_cb_receive_access_message
+0x4828 mem_mesh_cb_receive_config_appkey_add
+0x482a mem_mesh_cb_pairing_fail
+0x482c mem_mesh_cb_recv_vendor
+0x482e mem_mesh_scan_selete_next_ch
+0x4830 mem_mesh_cb_generic_onoff_get
+0x4832 mem_mesh_cb_generic_onoff_set
+0x4834 mem_mesh_cb_scene_recall
+0x4836 mem_mesh_cb_light_lightness_set
+0x4838 mem_mesh_cb_light_lightness_get
+0x483a mem_mesh_cb_light_ctl_set
+0x483c mem_mesh_cb_main_light_onoff_set
+0x483e mem_mesh_cb_background_onoff_set
+0x4840 mem_mesh_cb_color_set
+0x4842 mem_mesh_cb_network_relay
+0x4844 mem_mesh_cb_receive_node_reset
+0x4846 mem_mesh_cb_seq_changed
+0x4848 mem_mesh_cb_subscriptuion_list_changed
+0x484a mem_mesh_cb_vendor_timing_changed
+0x484c mem_mesh_core_feature
+0x484e mem_mesh_element_number
+0x484f mem_mesh_element_device_ptr
+0x4851 mem_mesh_element_device_length
+0x4853 mem_mesh_clear_provisioning_data
+0x4855 mem_mesh_app_deport_device_state
+0x4857 mem_mesh_chip_select
+0x4858 mem_mesh_segmented_access_message_SZMIC
+0x4859 mem_mesh_segmented_access_message_SeqZero
+0x485b mem_mesh_segmented_access_message_SegO
+0x485c mem_mesh_segmented_access_message_SegN
+0x485d mem_mesh_segmented_access_message_BlockAck
+0x4861 mem_mesh_segmented_access_message_receive_finish
+0x4862 mem_mesh_segmented_access_message_current_length
+0x4863 mem_mesh_segmented_access_message_SegN_upper_limit
+0x4864 mem_mesh_segmented_access_message_Segment_ptr
+0x4866 mem_mesh_last_CTL_Temperature
+0x4868 mem_mesh_receive_group_address
+0x4869 mem_mesh_receive_element_number
+0x486a mem_mesh_network_dup_cache_next
+0x486b mem_mesh_network_msg_cache_next
+0x486c mem_mesh_network_proxy_unicast_address
+0x486e mem_mesh_IV_Index
+0x4872 mem_mesh_TMALL_cache_start
+0x4872 mem_mesh_TMALL_SRC1
+0x4874 mem_mesh_TMALL_SEQ1
+0x4877 mem_mesh_TMALL_cache
+0x48a4 mem_mesh_TMALL_cache_end
+0x48a4 mem_mesh_transport_message_mic_cache
+0x48a4 mem_mesh_transport_message_mic_cache_buff1
+0x48a8 mem_mesh_transport_message_mic_cache_buff2_10
+0x48cc mem_mesh_network_relay_queue
+0x48cc mem_mesh_network_relay_queue_each_size
+0x48cd mem_mesh_network_relay_queue_length
+0x48ce mem_mesh_network_relay_queue_current_num
+0x48cf mem_mesh_network_relay_queue_read_ptr
+0x48d0 mem_mesh_network_relay_queue_write_ptr
+0x48d1 mem_mesh_network_relay_queue_ele
+0x4959 mem_mesh_application_key
+0x4969 mem_mesh_ASZMIC
+0x496a mem_mesh_access_message_mic_cache
+0x496a mem_mesh_access_message_mic_cache_buff1
+0x496e mem_mesh_access_message_mic_cache_buff2_10
+0x4992 mem_mesh_send_message_SEQ
+0x4995 mem_mesh_send_message_SRC
+0x4997 mem_mesh_send_message_TTL
+0x4998 mem_mesh_send_upper_layer_IVI_and_NID
+0x4999 mem_mesh_send_upper_layer_CTL_and_TTL
+0x499a mem_mesh_send_upper_layer_SEQ
+0x499d mem_mesh_send_upper_layer_SRC
+0x499f mem_mesh_send_upper_layer_DST
+0x49a1 mem_mesh_send_access_lower_transport_layer
+0x49b1 mem_mesh_send_network_layer_NetMIC
+0x49b5 mem_mesh_upper_tran_layer_packet_advertising
+0x49b6 mem_mesh_upper_tran_layer_packet_tid
+0x49b7 mem_mesh_upper_tran_layer_packet_type
+0x49b8 mem_mesh_upper_receive_new_message_timer
+0x49b9 mem_mesh_upper_tran_layer_queue_each_size
+0x49ba mem_mesh_upper_tran_layer_queue_length
+0x49bb mem_mesh_upper_tran_layer_queue_current_num
+0x49bc mem_mesh_upper_tran_layer_queue_read_ptr
+0x49bd mem_mesh_upper_tran_layer_queue_write_ptr
+0x49be mem_mesh_upper_tran_layer_queue_element_1
+0x49e6 mem_mesh_upper_tran_layer_queue_element_2
+0x4a0e mem_mesh_upper_tran_layer_queue_element_3
+0x4a36 mem_mesh_upper_tran_layer_queue_element_4
+0x4a5e mem_mesh_queue_each_size
+0x4a5f mem_mesh_queue_length
+0x4a60 mem_mesh_queue_current_num
+0x4a61 mem_mesh_queue_read_ptr
+0x4a62 mem_mesh_queue_write_ptr
+0x4a63 mem_mesh_queue_ele
+0x4aeb mem_mesh_element_device
+0x4aeb mem_mesh_element_device_group_addr
+0x4aed mem_mesh_element_device_queue_buffer_ptr
+0x4aef mem_mesh_element_device_timing_ptr
+0x4af1 mem_mesh_element_device_element_subscription_label
+0x4b01 mem_mesh_element_upper_adv_flag
+0x4b02 mem_mesh_element_upper_queue_buffer_ptr
+0x4b04 mem_mesh_element_tran_package_tid
+0x4b05 mem_mesh_element_tran_package_type
+0x4b06 mem_mesh_element_device1
+0x4b21 mem_mesh_element_device2
+0x4b3c mem_mesh_segmented_access_message_Segment
+0x4b60 mem_mesh_le_att_list
+0x4c24 mem_mesh_send_message_SEQ_temp
+0x44f1 mem_24g_lap
+0x44f7 mem_24g_rxbuf
+0x4519 mem_24g_txbuf
+0x4539 mem_24g_txpayload
+0x455d mem_24g_rxpayload
+0x457d mem_24g_rxdata_length
+0x457e mem_24g_pid
+0x457f mem_24g_no_ack
+0x4580 mem_24g_sta_crc
+0x4583 mem_24g_last_crc
+0x4586 mem_24g_sta_pid
+0x4587 mem_24g_last_pid
+0x4588 mem_24g_datalen
+0x4589 mem_24g_data_type
+0x458a mem_24g_txlen
+0x458b mem_24g_rx_window
+0x458d mem_24g_ch
+0x458e mem_24g_current_ch_number
+0x458f mem_24g_addr
+0x4593 mem_24g_ch_map1
+0x4597 mem_24g_ch_map2
+0x459b mem_24g_ch_map3
+0x459f mem_24g_ch_map4
+0x45a3 mem_24g_tx_btclk
+0x45a7 mem_24g_interval
+0x45a8 mem_24g_interval_min
+0x45a9 mem_24g_interval_max
+0x45aa mem_24g_syncword
+0x45ac mem_24g_syncword_crc8
+0x45ad mem_24g_get_syncword_crc8
+0x45ae mem_24g_pair_switch
+0x45af mem_24g_enter_hibernate
+0x45b7 mem_24g_rx_phy
+0x45b8 mem_24g_tx_phy
+0x45b9 mem_24g_ch_map_update
+0x45ba mem_24g_ch_update_map1
+0x45be mem_24g_ch_update_map2
+0x45c2 mem_24g_ch_update_map3
+0x45c6 mem_24g_ch_update_map4
+0x45ca mem_24g_disable_fec1
+0x45cb mem_24g_off_type
+0x45cc mem_24g_pair_addr
+0x45d0 mem_24g_pair_ch
+0x45d1 mem_24g_pair_tx_power
+0x45d2 mem_rssi_buff_index
+0x45d3 mem_24g_device1_bind_step
+0x45d4 mem_24g_device2_bind_step
+0x45d5 mem_24g_bind_device_status
+0x45d6 mem_24g_bind_payload
+0x45de mem_24g_device1_bind_disable
+0x45df mem_24g_device2_bind_disable
+0x45e0 mem_cb_24g_receive_process
+0x45e2 mem_cb_24g_ackpayload
+0x45e4 mem_cb_24g_data_device1
+0x45e6 mem_cb_24g_data_device2
+0x45e8 mem_24g_rxdata_temp
+0x460a mem_24g_abort_packet
+0x460b mem_24g_hop_btclk
+0x460f mem_24g_hop_interval
+0x4610 mem_24g_pair_mode
+0x4611 mem_24g_ackpayload_enable
+0x4612 mem_24g_hop_packet
+0x4613 mem_24g_mode_switch
+0x4614 mem_24g_nodata_timer_enable
+0x4615 mem_24g_mode_init
+0x4616 mem_24g_work_mode
+0x4617 mem_24g_time_slice
+0x4618 mem_24g_self_last_ch
+0x4619 mem_24g_self_ch_number
+0x461a mem_24g_self_config_ch_once
+0x461b mem_24g_device1_last_ch
+0x461c mem_24g_device1_ch_number
+0x461d mem_24g_device1_config_ch_once
+0x461e mem_24g_device2_last_ch
+0x461f mem_24g_device2_ch_number
+0x4620 mem_24g_device2_config_ch_once
+0x4621 mem_24g_led_status
+0x4622 mem_24g_bind_mode_continue
+0x4623 mem_tx_power_temp
+0x4624 mem_24g_mode_B_S_switch
+0x4625 mem_24g_mode_B_S_switch_init
+0x4626 mem_24g_mode_B_S_switch_cnt
+0x4628 mem_24g_mode_B_S_switch_exit
+0x4629 mem_24g_B_S_time_slice
+0x462a mem_24g_B_S_mode_switch_disable
+0x462b mem_24g_bind_device_living
+0x462c mem_24g_transmitter_addr
+0x4630 mem_24g_device1_addr
+0x4634 mem_24g_device2_addr
+0x4638 mem_rssi_noise_avg
+0x4639 mem_rssi_noise_index
+0x463a mem_rssi_noise_self_avg
+0x463b mem_rssi_noise_device1_avg
+0x463c mem_rssi_noise_device2_avg
+0x463d mem_rssi_noise_self_index
+0x463e mem_rssi_noise_device1_index
+0x463f mem_rssi_noise_device2_index
+0x4640 mem_rssi_noise_buffer_ptr
+0x4642 mem_rssi_noise_self_buffer_ptr
+0x4644 mem_rssi_noise_device1_buffer_ptr
+0x4646 mem_rssi_noise_device2_buffer_ptr
+0x4648 mem_car_hard_soft_switch
+0x4649 mem_car_queue_each_size
+0x464a mem_car__queue_length
+0x464b mem_car_queue_curr_num
+0x464c mem_car_queue_read_ptr
+0x464d mem_car_queue_write_ptr
+0x464e mem_car_queue_ele
+0x46c6 mem_car_pop_queue_buff
+0x46da mem_car_led_num
+0x46db mem_car_led_map
+0x46e5 mem_car_style1_led_type
+0x46e6 mem_car_style1_blink_count
+0x46e7 mem_car_style1_struct_led_gpio
+0x46e8 mem_car_style1_on_time
+0x46ea mem_car_style1_off_time
+0x46ec mem_car_style1_cb_ledon
+0x46ee mem_car_style1_cb_ledoff
+0x46f0 mem_car_style2_led_type
+0x46f1 mem_car_style2_blink_count
+0x46f2 mem_car_style2_struct_led_gpio
+0x46f3 mem_car_style2_on_time
+0x46f5 mem_car_style2_off_time
+0x46f7 mem_car_style2_cb_ledon
+0x46f9 mem_car_style2_cb_ledoff
+0x46fb mem_le_receive_data
+0x46fb mem_le_receive_packet_head
+0x46fd mem_le_receive_cmd
+0x46fe mem_le_receive_length
+0x4700 mem_le_receive_payload
+0x470a mem_le_receive_checksum
+0x470b mem_motor1_status
+0x470c mem_motor1_speed
+0x470d mem_motor2_status
+0x470e mem_motor2_speed
+0x470f mem_motor3_status
+0x4710 mem_motor3_speed
+0x4711 mem_motor1_pwm_set
+0x4711 mem_motor1_pwm_pin1_set
+0x4712 mem_motor1_pwm_pin2_set
+0x4713 mem_motor1_pwm_pin_set
+0x4714 mem_motor1_pwm_channel_set
+0x4715 mem_motor1_pwm_freq_set
+0x4718 mem_motor1_pwm_dute_set
+0x4719 mem_motor2_pwm_set
+0x4719 mem_motor2_pwm_pin1_set
+0x471a mem_motor2_pwm_pin2_set
+0x471b mem_motor2_pwm_pin_set
+0x471c mem_motor2_pwm_channel_set
+0x471d mem_motor2_pwm_freq_set
+0x4720 mem_motor2_pwm_dute_set
+0x4721 mem_motor3_pwm_set
+0x4721 mem_motor3_pwm_pin1_set
+0x4722 mem_motor3_pwm_pin2_set
+0x4723 mem_motor3_pwm_pin_set
+0x4724 mem_motor3_pwm_channel_set
+0x4725 mem_motor3_pwm_freq_set
+0x4728 mem_motor3_pwm_dute_set
+0x4729 mem_motor_select_p_n
+0x472a mem_car_motor_status
+0x472b mem_car_motor_speed
+0x472c mem_motor_pwm_set
+0x472c mem_motor_pwm_pin1_set
+0x472d mem_motor_pwm_pin2_set
+0x472e mem_motor_pwm_pin_set
+0x472f mem_motor_pwm_channel_set
+0x4730 mem_motor_pwm_freq_set
+0x4733 mem_motor_pwm_dute_set
+0x4734 mem_ir_rx_gpio
+0x4735 mem_ir_data
+0x4737 mem_ir_rx_buf
+0x4739 mem_ir_receive_clkn
+0x473d mem_ir_notify_data
+0x4740 mem_ir_notify_data_head
+0x4745 mem_ir_notify_data_payload
+0x4747 mem_ir_notify_data_check_sum
+0x4748 mem_car_ir_breakdown_check_timer
+0x4749 mem_car_ir_breakdown_flag
+0x474a mem_car_led_control
+0x474a mem_car_led1_status
+0x474b mem_car_led2_status
+0x474c mem_car_led3_status
+0x474d mem_car_led4_status
+0x474e mem_car_led5_status
+0x474f mem_car_led6_status
+0x4750 mem_car_led7_status
+0x4751 mem_car_led8_status
+0x4752 mem_car_led_control_timer
+0x4753 mem_car_led_blink_status
+0x4754 mem_car_led_no
+0x4755 mem_car_info_request
+0x4758 mem_car_info_request_head
+0x475d mem_car_info_request_payload
+0x4765 mem_car_info_request_checksum
+0x4766 mem_car_config_param
+0x4766 mem_car_config_setting_flag
+0x4767 mem_car_config_device_select
+0x4768 mem_car_config_motor_layout
+0x4769 mem_car_config_ir_enable
+0x476a mem_car_config_ir_rx_gpio
+0x476b mem_car_config_pairing_led_conn_status
+0x476c mem_car_config_pairing_led_gpio
+0x476d mem_car_config_led_num
+0x476e mem_car_config_blood_led_gpio
+0x476e mem_car_config_blood_led1_gpio
+0x476f mem_car_config_blood_led2_gpio
+0x4770 mem_car_config_blood_led3_gpio
+0x4771 mem_car_config_blood_led4_gpio
+0x4772 mem_car_config_blood_led5_gpio
+0x4773 mem_car_config_blood_led6_gpio
+0x4774 mem_car_config_blood_led7_gpio
+0x4775 mem_car_config_blood_led8_gpio
+0x4776 mem_car_config_bat_notify_enable
+0x4777 mem_car_config_low_voltage_led_gpio
+0x4778 mem_car_config_low_voltage_percent
+0x4779 mem_car_config_soft_switch_enable
+0x477a mem_car_config_soft_switch_gpio
+0x477b mem_car_notify_vdd_count
+0x477c mem_car_notify_vdd_timer
+0x477d mem_car_notify_vdd_value_last
+0x477e mem_car_notify_vdd_percent
+0x477f mem_car_working_flag
+0x4780 mem_low_bat_flag
+0x4781 mem_notify_bat_packet
+0x4784 mem_notify_bat_head
+0x4789 mem_notify_bat_payload
+0x478a mem_notify_bat_check_sum
+0x478b mem_vdd_notify_flag
+0x478c mem_car_current_vdd_value_temp
+0x478e mem_car_last_vdd_value
+0x4790 mem_vdd_calculate_set
+0x4790 mem_vdd_full_vol
+0x4792 mem_vdd_empty_vol
+0x4794 mem_vdd_low_vol
+0x4796 mem_vdd_now_vol
+0x4798 mem_car_24g_status
+0x4799 mem_car_24g_no_data_timeout_count
+0x479b mem_car_24g_no_data_timeout_timer
+0x479d mem_car_24g_ir_receive_attack_count
+0x479e mem_car_24g_go_die_flag
+0x479f mem_car_attack_shake_timer
+0x47a0 mem_car_attack_shake_flag
+0x47a1 mem_car_soft_power
+0x47a1 mem_car_power_state
+0x47a2 mem_car_power_timer
+0x47a3 mem_car_power_off_timeout
+0x47a4 mem_car_power_starting_timeout
+0x47a5 mem_car_power_off_cb
+0x47a7 mem_car_power_starting_cb
+0x47a9 mem_car_power_standby_cb
+0x47ab mem_car_ui_button_up_cb
+0x47ad mem_car_le_att_list
+0x49a1 mem_car_moto1_blank_timer
+0x49a2 mem_car_moto2_blank_timer
+0x49a3 mem_car_moto3_blank_timer
+0x49a4 mem_car_motor_gpio_num
+0x49a5 mem_car_motor_gpio_map
+0x49a5 mem_car_motor_left_gpio
+0x49a6 mem_car_motor_right_gpio
+0x49a7 mem_car_motor_front_gpio
+0x49a8 mem_car_motor_back_gpio
+0x49a9 mem_car_gpio
+0x49aa mem_car_app_send_speed
+0x49ab mem_rssi_sum
+0x49ad mem_check_rssi_high_count
+0x49af mem_rssi_data
+0x49b7 mem_car_24g_received_pac
+0x49b8 mem_car_24g_bind_enable_delay_count
+0x49b9 mem_car_keyscan
+0x49b9 mem_car_key_num
+0x49ba mem_cb_car_keyscan
+0x49bc mem_car_enter_lpm_timer_count
+0x49be mem_car_enter_lpm_timer
+0x49c0 mem_car_enter_lpm_flag
+0x49c1 mem_car_24g_ch_polling
+0x49c2 mem_car_rssi_noise_buffer
+0x49ca mem_car_rssi_noise_car_buffer
+0x49d2 mem_car_rssi_noise_remote_buffer
+0x49da mem_car_24g_commom_addr
+0x49de mem_car_24g_commom_addr_temp
+0x49e2 mem_car_24g_commom_addr_read
+0x49e6 mem_car_save_addr_flag
+0x49e7 mem_ble_att_list
+0x4b77 mem_ad_indexTable
+0x4b87 mem_ad_stepsizeTable
+0x4ceb mem_ad_state_valpred
+0x4cef mem_ad_state_index
+0x4cf3 mem_ad_in_numSamples
+0x4cf4 mem_ad_in_ptr
+0x4cf6 mem_ad_out_ptr
+0x4cf8 mem_ad_sign
+0x4cf9 mem_ad_delta
+0x4cfa mem_ad_step
+0x4cfe mem_ad_valpred
+0x4d02 mem_ad_index
+0x4d06 mem_ad_vpdiff
+0x4d0a mem_ad_inputbuffer
+0x4d0e mem_ad_bufferstep
+0x4648 mem_dg_kb_bind_flag
+0x4649 mem_dg_kb_data_sta_data
+0x4651 mem_dg_kb_data_last_data
+0x4659 mem_dg_kb_multikey_sta_data
+0x465c mem_dg_kb_multikey_last_data
+0x465f mem_dg_kb_system_sta_data
+0x4662 mem_dg_kb_system_last_data
+0x4665 mem_dg_kb_blank_data_enable
+0x4666 mem_dg_kb_mul_blank_data_enable
+0x4667 mem_dg_kb_system_crtl_blank_data_enable
+0x4668 mem_dg_ms_blank_data_enable
+0x4669 mem_dg_sys_config
+0x466a mem_dg_usb_vid_pid
+0x4673 mem_dg_usb_tx_interval
+0x4674 mem_dg_usb_device_name
+0x4692 mem_dg_kb_bind_success
+0x4693 mem_dg_pc_sleep_flag
+0x4694 mem_dg_24g_tx_power_default
+0x45d3 mem_rssi_hex_received
+0x45d4 mem_24g_pair_sm
+0x45d5 mem_24g_pair_no_ack
+0x45d6 mem_24g_pair_timeout_init
+0x45d8 mem_24g_pair_timeout
+0x45da mem_24g_pair_count
+0x45dc mem_24g_reconn_timeout_init
+0x45de mem_24g_reconn_timeout
+0x45e0 mem_24g_reconn_count
+0x45e2 mem_24g_reconn_type
+0x45e3 mem_24g_fast_conn_enable
+0x45e4 mem_24g_fast_conn_addr
+0x45e8 mem_24g_receiver_addr
+0x45ec mem_24g_fast_conn_temp_ch
+0x45ed mem_24g_receiver_temp_ch
+0x45ee mem_24g_device_temp_ch
+0x45ef mem_rssi_signal_index
+0x45f0 mem_rssi_signal_buf_ptr
+0x45f2 mem_cb_24g_transmit_data
+0x45f4 mem_cb_24g_search_receiver
+0x45f6 mem_cb_24g_lpm_before
+0x45f8 mem_cb_24g_transmit_short_sleep
+0x45fa mem_cb_24g_transmit_long_sleep
+0x45fc mem_24g_conn_sm
+0x45fd mem_24g_ensure
+0x45fe mem_24g_txfail_cnt
+0x4600 mem_24g_attempt_fail_flag
+0x4601 mem_24g_retry
+0x4602 mem_24g_abort_pac
+0x4603 mem_24g_max_retry
+0x4604 mem_24g_device_addr
+0x4608 mem_24g_short_sleep_set
+0x460b mem_24g_long_sleep_set
+0x4613 mem_24g_long_sleep_set1
+0x4617 mem_24g_pac_index
+0x4618 mem_24g_transmit_by_interrupt
+0x4619 mem_24g_transmit_by_interrupt_exit_count
+0x461b mem_24g_transmit_by_interrupt_exit_count_init
+0x461d mem_24g_long_sleep_param_update_timer_init
+0x461f mem_24g_long_sleep_param_update_timer
+0x4621 mem_24g_fast_hop_count
+0x4622 mem_24g_retransmit
+0x4624 mem_rssi_avg_received
+0x4625 mem_power_ctrl_level
+0x4626 mem_power_ctrl_pac_succ_cnt
+0x4627 mem_power_ctrl_pac_succ_cnt_init
+0x4628 mem_rssi_dis_min_24g
+0x4629 mem_rssi_dis_max_24g
+0x462a mem_rssi_hex_received_max_value
+0x462b mem_rssi_dis_min_ble
+0x462c mem_rssi_dis_max_ble
+0x462d mem_mouse_vdd_calculate_set
+0x462d mem_mouse_vdd_full_vol
+0x462f mem_mouse_vdd_empty_vol
+0x4631 mem_mouse_vdd_low_vol
+0x4633 mem_mouse_vdd_now_vol
+0x4635 mem_adc_channel_gpio
+0x4636 mem_adc_mux_status
+0x4637 mem_mouse_adc_last_low_voltage_flag
+0x4638 mem_mouse_discovery_timeout
+0x463a mem_mouse_24g_pair_timeout_init
+0x463c mem_mouse_direct_timeout
+0x463d mem_mouse_24g_reconn_timeout_init
+0x463e mem_mouse_24g_pair_tx_power
+0x463f mem_rssi_dis_min_24g_init
+0x4640 mem_rssi_dis_max_24g_init
+0x4641 mem_rssi_hex_received_max_value_init
+0x4642 mem_rssi_dis_min_ble_init
+0x4643 mem_rssi_dis_max_ble_init
+0x4644 mem_mouse_param_config
+0x4644 mem_lbutton_gpio
+0x4645 mem_mbutton_gpio
+0x4646 mem_rbutton_gpio
+0x4647 mem_bk_button_gpio
+0x4648 mem_fw_button_gpio
+0x4649 mem_dpi_button_gpio
+0x464a mem_whee_a_data_gpio
+0x464b mem_whee_b_data_gpio
+0x464c mem_mouse_sensor_sclk_gpio
+0x464d mem_mouse_sensor_sdio_gpio
+0x464e mem_select_sensor_angle_gpio
+0x464f mem_sensor_angle_default
+0x4650 mem_sensor_angle_switch
+0x4651 mem_config_sensor_dpi
+0x4652 mem_whee_ta_data_gpio
+0x4653 mem_whee_tb_data_gpio
+0x4654 mem_matrix_public_gpio
+0x4655 mem_config_select_device_button_gpio
+0x4656 mem_customer_key_gpio
+0x4657 mem_firebutton_gpio
+0x4658 mem_dpi_another_button_gpio
+0x4659 mem_sensor_motion_gpio
+0x465a mem_device_switch_gpio
+0x465b mem_mouse_reuse_2ice_gpio
+0x465c mem_mouse_logo_led_gpio
+0x465d mem_mouse_1io2led_multi_24gled
+0x465e mem_mouse_1io2led_multi_bt1led
+0x465f mem_mouse_1io2led_multi_bt2led
+0x4660 mem_mouse_low_voltage_alarm_gpio
+0x4661 mem_mouse_dpi_gpio
+0x4662 mem_mouse_param_config_end
+0x4662 mem_wire_usb_interval
+0x4663 mem_usb_addr
+0x4664 mem_mouse_usb_vdd_status
+0x4665 mem_mouse_usb_keyboard_flag
+0x4666 mem_mouse_information_start
+0x4666 mem_device_flag
+0x4667 mem_device1_type
+0x4668 mem_device1_addr
+0x466e mem_device1_locall_addr
+0x4674 mem_device2_type
+0x4675 mem_device2_addr
+0x467b mem_device2_locall_addr
+0x4681 mem_device3_type
+0x4682 mem_device3_addr
+0x4688 mem_device3_locall_addr
+0x468e mem_store_flag
+0x4690 mem_mouse_dpi
+0x4691 mem_mouse_24g_addr
+0x4695 mem_random_addr_increase_count
+0x4697 mem_mouse_retention
+0x46e6 mem_mouse_information_end
+0x46e6 mem_mouse_compare_addr
+0x46ec mem_flash_base
+0x46ef mem_write_flash_head_temp
+0x46f3 mem_store_information_delay_timer
+0x46f4 mem_store_information_delay_timer_init
+0x46f5 mem_mouse_search_dongle_interval
+0x46f6 mem_mouse_search_dongle_ch
+0x46f7 mem_mouse_search_dongle_count
+0x46f8 mem_mouse_search_dongle_action
+0x46f9 mem_24g_enter_lpm_timer
+0x46fa mem_mouse_24g_enter_lpm_enable
+0x46fb mem_mouse_multi_led_blink_enable
+0x46fc mem_mouse_multi_led_type
+0x46fd mem_mouse_multi_led_state
+0x46fe mem_mouse_multi_led_blink_type//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+0x46ff mem_mouse_le_reconn_blink_limit
+0x4700 mem_mouse_multi_led_powon_timer_init//power on time
+0x4701 mem_mouse_multi_led_powon_timer
+0x4702 mem_mouse_multi_24gled_blink_timer_init//24gled blink time
+0x4703 mem_mouse_multi_le_discovery_blink_timer_init//le discovery blink time
+0x4704 mem_mouse_multi_le_reconn_blink_timer_init//le reconn blink time
+0x4705 mem_mouse_dpi_led_blink_timer_init//dpi blink time
+0x4706 mem_mouse_multi_led_blink_timer
+0x4707 mem_mouse_low_led_blink_timer//low blink time
+0x4708 mem_mouse_low_led_blink_half_timer
+0x4709 mem_adc_low_volatage_led_timer_count
+0x470a mem_mouse_multi_24gled_blink_count_init//24g count
+0x470b mem_mouse_multi_le_reconn_blink_count_init//le reconn count
+0x470c mem_mouse_multi_led_blink_count
+0x470d mem_mouse_multi_lowled_blink_count_init//low count
+0x470e mem_mouse_multi_low_led_blink_count
+0x470f mem_mouse_logo_led_on_time_init
+0x4711 mem_mouse_dpi_led_delay_count
+0x4712 mem_mouse_dpi_led_delay_count_init
+0x4713 mem_mouse_flag
+0x471b mem_device_number
+0x471c mem_mouse_page_to
+0x471e mem_mouse_fast_direct_timeout
+0x471f mem_mouse_fast_page_to
+0x4721 mem_mouse_24g_power_on_fast_conn_timer
+0x4723 mem_mouse_24g_search_dongle_time_init
+0x4725 mem_mouse_no_data_timeout
+0x4727 mem_mouse_commbination_key_bt
+0x4728 mem_mouse_commbination_key_24g
+0x4729 mem_mouse_customer_function
+0x472a mem_customer_key_press
+0x4733 mem_customer_key_release
+0x473c mem_mouse_set_high_impedance_bit_set
+0x473f mem_sensor_shutdown_flag
+0x4740 mem_24g_long_sleep_set_level
+0x4741 mem_tx_power_factory_param
+0x4743 mem_mouse_24g_short_sleep_set_4ms
+0x4746 mem_mouse_24g_long_sleep_set_4ms
+0x4749 mem_mouse_24g_fast_hop_count_4ms
+0x474a mem_mouse_24g_short_sleep_set_8ms
+0x474d mem_mouse_24g_long_sleep_set_8ms
+0x4750 mem_mouse_24g_fast_hop_count_8ms
+0x4751 mem_mouse_24g_tsniff
+0x4755 mem_mouse_24g_tsniff_4ms
+0x4759 mem_mouse_24g_tsniff_8ms
+0x475d mem_mouse_24g_short_sleep_set_init
+0x4760 mem_mouse_24g_tx_count
+0x4761 mem_mouse_24g_tx_time_last
+0x4767 mem_mouse_24g_tx_time_last_delt
+0x476b mem_mouse_24g_tx_time_sum
+0x4770 mem_mouse_24g_tx_time_sum_count
+0x4771 mem_mouse_24g_tx_time_offset
+0x4772 mem_mouse_24g_sleep_miss
+0x4773 mem_mouse_24g_sleep_time_temp
+0x4777 mem_mouse_24g_sleep_miss_temp
+0x477b mem_mouse_sleep_deal_type
+0x477c mem_mouse_24g_long_sleep_flag
+0x477d mem_mouse_long_mult_flag
+0x477e mem_mouse_current_mult_timer
+0x477f mem_reconn_times
+0x4780 mem_reconn_times_init
+0x4781 mem_mouse_no_data_timer
+0x4783 mem_mouse_rssi_signal_buf
+0x478b mem_btclk_sensor
+0x478f mem_mouse_bluetooth_fast_conn_flag
+0x4790 mem_mouse_discovery_timer
+0x4792 mem_mouse_bluetooth_reconnect_timeout
+0x4793 mem_mouse_need_soft_reset
+0x4794 mem_mouse_le_bb_connected_flag
+0x4795 mem_mouse_le_reconnect_flag
+0x4796 mem_mouse_send_secutiry_request_timer
+0x4797 mem_mouse_le_lap_temp
+0x479a mem_le_adv_ind
+0x479d mem_le_adv_direct_ind
+0x47a0 mem_le_adv_swift_pair
+0x47b4 mem_le_data_len
+0x47b5 mem_le_keyboard_handle
+0x47b7 mem_le_multimedia_handle
+0x47b9 mem_le_systemctrl_handle
+0x47bb mem_le_battery_level_handle
+0x47bd mem_le_battery_level_percentage
+0x47be mem_le_battery_level_updata_timer_init
+0x47c0 mem_le_battery_level_updata_timer
+0x47c2 mem_mouse_le_conn_param_reject
+0x47c3 mem_le_tx_buffer0_omemalloc
+0x47e3 mem_le_tx_buffer1_omemalloc
+0x4803 mem_le_tx_buffer2_omemalloc
+0x4823 mem_le_tx_buffer3_omemalloc
+0x4843 mem_le_connect_status_flag
+0x4844 mem_le_start_encrypt_timer
+0x4845 mem_mouse_direct_timer
+0x4846 mem_power_on_flag
+0x4847 mem_mouse_factory_addr
+0x484d mem_keyboard_flag
+0x4855 mem_keyboard_tx_data
+0x485f mem_keyboard_data_send_flag
+0x4860 mem_keyboard_le_send_conn_param_update
+0x4861 mem_keyboard_le_send_conn_param_update_timer
+0x4862 mem_le_start_auto_reco_timer
+0x4863 mem_mcu_stb_gpio
+0x4864 mem_mcu_clk_gpio
+0x4865 mem_mcu_rstb_gpio
+0x4866 mem_keyboard_caps_led_gpio
+0x4867 mem_keyboard_num_led_gpio
+0x4868 mem_keyboard_power_led_gpio
+0x4869 mem_keyboard_caps_led_on_timer
+0x486b mem_keyboard_led_r_gpio
+0x486c mem_keyboard_led_g_gpio
+0x486d mem_keyboard_led_b_gpio
+0x486e mem_key_row_gpio
+0x4876 mem_key_col_gpio
+0x488a mem_key_excol_gpio
+0x4896 mem_kb_row_ptr
+0x4898 mem_kb_col_ptr
+0x489a mem_kb_excol_ptr
+0x489c mem_keyscan_value_current
+0x48b0 mem_keyscan_value_check
+0x48c4 mem_keyscan_value_old
+0x48d8 mem_keyscan_exmcu_value
+0x48e3 mem_keyscan_value_ptr
+0x48e5 mem_keyscan_exmcu_value_ptr
+0x48e7 mem_keyscan_value_temp
+0x48e8 mem_keyscan_col_loop_count
+0x48e9 mem_keyscan_exmcu_wait_wake_count
+0x48eb mem_same_keyvalue_timerout_flag
+0x48ec mem_same_keyvalue_timer_init
+0x48ee mem_same_keyvalue_timer
+0x48f0 mem_keyboard_current_col_press_key_count
+0x48f1 mem_keyboard_all_press_key_count
+0x48f2 mem_keyboard_same_row_press_key_count
+0x48f3 mem_keyboard_ghost_flag
+0x48f4 mem_keyboard_data_change_flag
+0x48f5 mem_keyboard_keyvalue_temp
+0x48f6 mem_keyboard_press_flag_temp
+0x48f7 mem_keyboard_keyvalue_bit_loop_count
+0x48f8 mem_keyboard_keyvalue_buffer
+0x4901 mem_keyboard_keyvalue_map
+0x49a1 mem_keyboard_fn_flag
+0x49a2 mem_keyboard_control_key_flag
+0x49a3 mem_keyboard_bt_button_flag
+0x49a4 mem_keyboard_pairing_type
+0x49a5 mem_keyboard_commbination_key_bt
+0x49a7 mem_keyboard_commbination_key_24g
+0x49a9 mem_24g_repeat_send_flag
+0x49aa mem_keyboard_led_status
+0x49ab mem_keyboard_led_status_get
+0x49ac mem_keyboard_led_status_get_timer
+0x49ad mem_keyboard_led_status_get_timer_last
+0x49ae mem_keyboard_fn_esc_f1_f12
+0x49ae mem_keyboard_fn_first
+0x49af mem_keyboard_fn_esc
+0x49b0 mem_keyboard_fn_f1
+0x49b1 mem_keyboard_fn_f2
+0x49b2 mem_keyboard_fn_f3
+0x49b3 mem_keyboard_fn_f4
+0x49b4 mem_keyboard_fn_f5
+0x49b5 mem_keyboard_fn_f6
+0x49b6 mem_keyboard_fn_f7
+0x49b7 mem_keyboard_fn_f8
+0x49b8 mem_keyboard_fn_f9
+0x49b9 mem_keyboard_fn_f10
+0x49ba mem_keyboard_fn_f11
+0x49bb mem_keyboard_fn_f12
+0x49bc mem_keyboard_fn_del
+0x49bd mem_keyboard_fn_arrow_enable_flag
+0x49be mem_keyboard_fn_left_ctrl_enable_flag
+0x49bf mem_keyboard_fn_space_enable_flag
+0x49c0 mem_keyboard_fn_system_switch_enable_flag
+0x49c1 mem_keyboard_commbination_key_step
+0x49c2 mem_keyboard_commbination_control_key_value
+0x49c3 mem_keyboard_commbination_standard_key_value
+0x49c4 mem_keyboard_commbination_control_key_delay_release_timer
+0x49c5 mem_keyboard_consumer_key_status
+0x49c6 mem_kb_computer_system
+0x49c7 mem_otp_read_retention_memory
+0x49df mem_otp_read_retention_offset
+0x49e1 mem_le_search_service_uuid
+0x49f1 mem_le_connect_ios_mac_flag
+0x49f2 mem_le_search_mac_uuid
+0x49f4 mem_le_search_mac_manu_name
+0x49fd mem_keybord_appearance
+0x49ff mem_keyboard_commbination_fast_conn_bt
+0x4a01 mem_keyboard_factory_addr
+0x4a07 mem_keyboard_device_poweron_timer_count_init
+0x4a08 mem_keyboard_device_poweron_timer_count
+0x4a09 mem_keyboard_disconvey_led_blink_time
+0x4a0b mem_keyboard_led_type
+0x4a0c mem_keyboard_blink_count
+0x4a0d mem_keyboard_struct_led_gpio
+0x4a0e mem_keyboard_on_time
+0x4a10 mem_keyboard_off_time
+0x4a12 mem_keyboard_cb_ledon
+0x4a14 mem_keyboard_cb_ledoff
+0x4a16 mem_keyboard_keyvalue_map_new
+0x4ab6 mem_keyboard_customer_key
+0x4ab7 mem_keyboard_customer_data_trigger
+0x4ab8 mem_keyboard_customer_data_trigger_last
+0x4ab9 mem_keyscan_exmcu_reset_count
+0x4aba mem_power_on_flag_new
+0x4abb mem_keyboard_le_map_len
+0x4abd mem_keyboard_le_hid_map
+0x4b99 mem_keyboard_change_vid_pid_flag
+0x4b9a mem_keybaord_pnp_vid_source
+0x4b9b mem_keyboard_vid
+0x4b9d mem_keyboard_pid
+0x4b9f mem_keyboard_product_version
+0x4ba1 mem_keyboard_switch_device_flag
+0x4ba2 mem_keyboard_usb_enable
+0x4ba3 mem_keyboard_switch_g24_enable
+0x4ba4 mem_keyboard_switch_g24_press_timer
+0x4ba5 mem_keyboard_switch_bt_enable
+0x4ba6 mem_keyboard_switch_bt_press_timer
+0x4ba7 mem_keyboard_switch_usb_enable
+0x4ba8 mem_keyboard_switch_device_to_g24
+0x4bab mem_keyboard_switch_device_to_bt1
+0x4bae mem_keyboard_switch_device_to_bt2
+0x4bb1 mem_keyboard_switch_device_to_bt3
+0x4bb4 mem_keyboard_switch_device_to_usb
+0x4bb7 mem_keyboard_24g_led_gpio
+0x4bb8 mem_keyboard_bt1_led_gpio
+0x4bb9 mem_keyboard_bt2_led_gpio
+0x4bba mem_keyboard_bt3_led_gpio
+0x4bbb mem_keyboard_scroll_led_gpio
+0x4bbc mem_keyboard_low_voltage_alarm_gpio
+0x4bbd mem_usb_level_check_gpio
+0x4bbe mem_mouse_usb_vdd_status_current
+0x4bbf mem_mouse_usb_vdd_status_last
+0x4bc0 mem_mouse_usb_wait_updata_timer
+0x4bc1 mem_usb_vid_pid_new
+0x4bca mem_keyboard_mode_led_on_timer
+0x4bcb mem_rgb_pwm_conf
+0x4bd1 mem_rgb_pwm_breathe_flag
+0x4bd2 mem_rgb_on_color_temp
+0x4bd3 mem_rgb_on_color
+0x4bda mem_pwm_lpm_mode_flag
+0x4bdb mem_ui_check_timer_setup
+0x4bdf mem_customize_timer_setup
+0x4be1 mem_backlight_on_flag
+0x4be2 mem_backlight_on_type
+0x4be3 mem_backlight_breathe_type
+0x4be4 mem_keyboard_led_on_time_init
+0x4be6 mem_device_flag_temp_new
+0x4be7 mem_otp_store_device_info_flag
+0x4be8 mem_otp_store_system_flag
+0x4be9 mem_adc_reference3v_ft_data
+0x4be9 mem_adc_reference3v_gpio1v_ft_data
+0x4beb mem_adc_reference3v_gpio2v_ft_data
+0x4bed mem_adc_reference3v_vdcdc3p6v_ft_data
+0x4bef mem_adc_reference3v_vdcdc4p6v_ft_data
+0x4bf1 mem_adc_reference3v_inter1v_ft_data
+0x4bf3 mem_adc_reference3v_inter1v_now_data
+0x4bf5 mem_adc_reference_mode
+0x4bf6 mem_le_conn_rcv_new
+0x4bf7 mem_le_conn_first_rcv
+0x4bf8 mem_le_check_retransmit_flag
+0x4bf9 mem_le_retransmit_cnt
+0x4bfa mem_le_check_retransmit_discon_flag
+0x4bfb mem_le_tx_buffer0_omemalloc_new
+0x4c3b mem_le_tx_buffer1_omemalloc_new
+0x4c7b mem_le_tx_buffer2_omemalloc_new
+0x4cbb mem_le_tx_buffer3_omemalloc_new
+0x4cfb mem_keyscan_exmcu_value_new
+0x4d07 mem_keyboard_pair_led_flag
+0x4d08 mem_keyboard_adc_low_volatage_led_timer_count
+0x4d09 mem_adc_low_volatage_led_blink_timer
+0x4d0b mem_keyboard_low_volatage_led_flag
+0x4d0c mem_keyboard_low_volatage_led_blink_new_data_enable
+0x4d0d mem_qdec_set_flag
+0x4846 mem_mouse_key
+0x4847 mem_mouse_x
+0x4849 mem_mouse_y
+0x484b mem_mouse_z
+0x484c mem_mouse_tz
+0x484d mem_mouse_xy_h
+0x484e mem_mouse_key_last
+0x484f mem_wheel_tb_old_pinlevel
+0x4850 mem_wheel_tb_new_pinlevel
+0x4851 mem_wheel_tog
+0x4852 mem_mouse_tz_data
+0x4853 mem_mwheel_b_old_pinlevel
+0x4854 mem_mwheel_b_new_pinlevel
+0x4855 mem_mwheel_tog
+0x4856 mem_mouse_z_data
+0x4857 mem_mouse_wheel_trigger
+0x4858 mem_mouse_wheel_trigger_timer
+0x4859 mem_sensor_id1
+0x485a mem_sensor_id2
+0x485b mem_sensor_shutter_hi
+0x485c mem_sensor_shutter_lo
+0x485d mem_sensor_smart_flag
+0x485e mem_sensor_squal_reg
+0x485f mem_sensor_iqc
+0x4860 mem_mouse_move_flag
+0x4861 mem_mouse_asm_flag
+0x4862 mem_mouse_x_pre
+0x4864 mem_mouse_y_pre
+0x4866 mem_mouse_data_xtemp
+0x4867 mem_mouse_data_ytemp
+0x4868 mem_mouse_dpi_seting
+0x4868 mem_320x_dpi_0
+0x4869 mem_320x_dpi_1
+0x486a mem_320x_dpi_2
+0x486b mem_320x_dpi_3
+0x486c mem_3212_dpi_0
+0x486d mem_3212_dpi_1
+0x486e mem_3212_dpi_2
+0x486f mem_3212_dpi_3
+0x4870 mem_ka8g2_dpi_0
+0x4871 mem_ka8g2_dpi_1
+0x4872 mem_ka8g2_dpi_2
+0x4873 mem_ka8g2_dpi_3
+0x4874 mem_sensor_s201_dpi
+0x4874 mem_sensor_s201_dpi_0
+0x4875 mem_sensor_s201_dpi_1
+0x4876 mem_sensor_s201_dpi_2
+0x4877 mem_sensor_s201_dpi_3
+0x4878 mem_sensor_s201_dpi_4
+0x4879 mem_mouse_cpi_count
+0x487a mem_mouse_dpi_button_state
+0x487b mem_mouse_dpi_long_press_flag
+0x487c mem_sensor_3212_init
+0x4886 mem_sensor_3204_init
+0x4890 mem_sensor_3205_init
+0x489a mem_sensor_32xx_init
+0x48b4 mem_sensor_32xx_init_1
+0x48d6 mem_sensor_8650_init
+0x48fc mem_sensor_ka8ul_init
+0x491a mem_sensor_8009_init
+0x492a mem_sensor_ka8g2_init
+0x493a mem_sensor_p6520_init
+0x4946 mem_sensor_poweron_init
+0x494e mem_sensor_ka8g2_poweron_init
+0x4956 mem_mouse_clear_sensor_data_flag
+0x4957 mem_config_sensor_type
+0x4958 mem_config_sensor_angle
+0x4959 mem_bluetooth_125hz_cnt
+0x495a mem_device_addr_temp
+0x4961 mem_mouse_bt_boot_mode
+0x4962 mem_mouse_bt_boot_data
+0x4967 mem_bt_send_max_slot_req_accept_after_switch
+0x4968 mem_mouse_bt_send_first_package_timer
+0x4969 mem_mouse_bt_send_first_package_flag
+0x496a mem_lmi_opcode_temp
+0x496b mem_lpm_mult_init
+0x496c mem_customer_key
+0x496d mem_customer_data_trigger
+0x496e mem_customer_data_trigger_last
+0x496f mem_mouse_lkey_press_status
+0x4970 mem_mouse_rkey_press_status
+0x4971 mem_mouse_mkey_press_status
+0x4972 mem_mouse_bkkey_press_status
+0x4973 mem_mouse_fwkey_press_status
+0x4974 mem_mouse_dpikey_press_status
+0x4975 mem_mouse_pbkey_press_status
+0x4976 mem_mouse_customerkey_press_status
+0x4977 mem_mouse_key_temp
+0x4978 mem_mouse_key_status
+0x4979 mem_mouse_matrix_key_cow_count
+0x497a mem_mouse_matrix_key_row_count
+0x497b mem_mouse_ghost_flag
+0x497c mem_bt_discovery_count
+0x497d mem_select_device_count
+0x497e mem_mouse_commbination_key
+0x497f mem_select_device_button_statue
+0x4980 mem_commbination_key_statue
+0x4981 mem_combination_ui_button_count
+0x4982 mem_fire_key_status
+0x4983 mem_fire_key_delay
+0x4987 mem_fire_key_flag
+0x4988 mem_dpi_another_press_status
+0x4989 mem_dpi_another_button_state
+0x498a mem_dpi_another_button_down_enable
+0x498b mem_mouse_key_temp_patch
+0x498c mem_le_name_patch_len
+0x498d mem_le_name_patch
+0x49a0 mem_device_flag_last
+0x49a1 mem_device_flag_temp
+0x49a2 mem_device_flag_value
+0x49a3 mem_mouse_le_addr1_last
+0x49a9 mem_mouse_le_addr1_temp
+0x49af mem_mouse_le_locall_addr1_last
+0x49b5 mem_mouse_le_locall_addr1_temp
+0x49bb mem_mouse_le_addr2_last
+0x49c1 mem_mouse_le_addr2_temp
+0x49c7 mem_mouse_le_locall_addr2_last
+0x49cd mem_mouse_le_locall_addr2_temp
+0x49d3 mem_mouse_dpi_last
+0x49d4 mem_mouse_dpi_temp
+0x49d5 mem_mouse_otp_dpi_value
+0x49d6 mem_mouse_24g_addr_last
+0x49da mem_mouse_24g_addr_temp
+0x49de mem_random_addr_increase_count_last
+0x49e0 mem_random_addr_increase_count_temp
+0x49e2 mem_otp_offset_device_flag
+0x49e4 mem_otp_offset_device_flag_end
+0x49e6 mem_otp_offset_24g_addr
+0x49e8 mem_otp_offset_24g_addr_end
+0x49ea mem_otp_offset_le_addr1
+0x49ec mem_otp_offset_le_addr1_end
+0x49ee mem_otp_offset_le_locall_addr1
+0x49f0 mem_otp_offset_le_locall_addr1_end
+0x49f2 mem_otp_offset_le_addr2
+0x49f4 mem_otp_offset_le_addr2_end
+0x49f6 mem_otp_offset_le_locall_addr2
+0x49f8 mem_otp_offset_le_locall_addr2_end
+0x49fa mem_otp_offset_dpi
+0x49fc mem_otp_offset_dpi_end
+0x49fe mem_otp_offset_le_addr_increase_count
+0x4a00 mem_otp_offset_le_addr_increase_count_end
+0x4a02 mem_otp_offset_app_initflag
+0x4a04 mem_24g_txpayload_buf
+0x4a14 mem_release_data_from_receiver_enable
+0x4a15 mem_release_data_from_transmiter_enable
+0x4a16 mem_flippen_key0_gpio
+0x4a17 mem_flippen_key1_gpio
+0x4a18 mem_flippen_key2_gpio
+0x4a19 mem_flippen_key3_gpio
+0x4a1a mem_flippen_key4_gpio
+0x4a1b mem_flippen_key5_gpio
+0x4a1c mem_flippen_key6_gpio
+0x4a1d mem_flippen_key7_gpio
+0x4a1e mem_flippen_key0_press_status
+0x4a1f mem_flippen_key1_press_status
+0x4a20 mem_flippen_key2_press_status
+0x4a21 mem_flippen_key3_press_status
+0x4a22 mem_flippen_key4_press_status
+0x4a23 mem_flippen_key5_press_status
+0x4a24 mem_flippen_key6_press_status
+0x4a25 mem_flippen_key7_press_status
+0x4a26 mem_key_press_data
+0x4a26 mem_key_pageup_data
+0x4a2f mem_key_pagedown_data
+0x4a38 mem_key_shift_f5_data
+0x4a41 mem_key_esc_data
+0x4a4a mem_key_b_data
+0x4a53 mem_key_tab
+0x4a5c mem_key_enter
+0x4a65 mem_key_alt_tab
+0x4a6e mem_key_alt_f4
+0x4a77 mem_key_play_pause
+0x4a80 mem_key_vol_up
+0x4a89 mem_key_vol_down
+0x4a92 mem_standard_key_release
+0x4a9b mem_system_ctrl_key_release
+0x4aa4 mem_media_key_release
+0x4aad mem_key0_long_press_flag
+0x4aae mem_key1_long_press_flag
+0x4aaf mem_key2_long_press_flag
+0x4ab0 mem_key3_long_press_flag
+0x4ab1 mem_key4_long_press_flag
+0x4ab2 mem_key0_long_press_event
+0x4ab3 mem_key1_long_press_event
+0x4ab4 mem_key2_long_press_event
+0x4ab5 mem_key3_long_press_event
+0x4ab6 mem_key4_long_press_event
+0x4ab7 mem_key0_short_press_flag
+0x4ab8 mem_key1_short_press_flag
+0x4ab9 mem_key2_short_press_flag
+0x4aba mem_key3_short_press_flag
+0x4abb mem_key4_short_press_flag
+0x4abc mem_key0_press_timer_count
+0x4abd mem_key1_press_timer_count
+0x4abe mem_key2_press_timer_count
+0x4abf mem_key3_press_timer_count
+0x4ac0 mem_key4_press_timer_count
+0x4ac1 mem_combination_key_down_flag
+0x4ac2 mem_combination_key_longpress_flag
+0x4ac3 mem_key_disable_timer
+0x4ac4 mem_24g_calculate_package_id_disable
+0x4ac5 mem_24g_package_id_abandon_flag
+0x4ac6 mem_24g_package_id
+0x4ac7 mem_key_state
+0x4ac8 mem_key_press_state
+0x4ac9 mem_poweron_first_blank_data_enable
+0x4aca mem_flippen_no_data_timeout
+0x4acc mem_flippen_start_pair_no_data_timeout
+0x4ace mem_key_longpress_timer_init
+0x4ad0 mem_key_longpress_timer
+0x4ad2 mem_low_voltage_led_blink_flag
+0x4ad3 mem_low_voltage_led_blink_start_timer
+0x4ad4 mem_poweron_led_blink_flag
+0x4ad5 mem_24g_pair_enable_flag
+0x4ad6 mem_24g_ch_work
+0x4ad7 mem_24g_pair_key_down_flag
+0x4ad8 mem_24g_pairing_stop_flag
+0x4ad9 mem_longpress_24g_enter_hibernate_flag
+0x4ada mem_g24_connected_state
+0x4adb mem_g24_pairing_stop_flag
+0x4adc mem_send_package_before_check
+0x462d mem_remote_car_hard_soft_switch
+0x462e mem_remote_car_queue_each_size
+0x462f mem_remote_car_queue_length
+0x4630 mem_remote_car_queue_curr_num
+0x4631 mem_remote_car_queue_read_ptr
+0x4632 mem_remote_car_queue_write_ptr
+0x4633 mem_remote_car_queue_ele
+0x468d mem_remote_style_led_type
+0x468e mem_remote_style_blink_count
+0x468f mem_remote_style_struct_led_gpio
+0x4690 mem_remote_style_on_time
+0x4692 mem_remote_style_off_time
+0x4694 mem_remote_style_cb_ledon
+0x4696 mem_remote_style_cb_ledoff
+0x4698 mem_remote_car_led_num
+0x4699 mem_remote_car_led_map
+0x46a1 mem_remote_car_keyscan
+0x46a1 mem_remote_car_key_num
+0x46a2 mem_cb_remote_car_keyscan
+0x46a4 mem_remote_car_key_conf0
+0x46a4 mem_remote_car_key_conf0_pin
+0x46a5 mem_remote_car_key_conf1
+0x46a5 mem_remote_car_key_conf1_pin
+0x46a6 mem_remote_car_key_conf2
+0x46a6 mem_remote_car_key_conf2_pin
+0x46a7 mem_remote_car_key_conf3
+0x46a7 mem_remote_car_key_conf3_pin
+0x46a8 mem_remote_car_key_conf4
+0x46a8 mem_remote_car_key_conf4_pin
+0x46a9 mem_remote_car_key_conf5
+0x46a9 mem_remote_car_key_conf5_pin
+0x46aa mem_remote_car_key_conf6
+0x46aa mem_remote_car_key_conf6_pin
+0x46ab mem_rocker_negative_flag
+0x46ac mem_rocker_work_status
+0x46ad mem_current_vdd_value_default_mid_x
+0x46af mem_current_vdd_value_default_mid_y
+0x46b1 mem_current_vdd_value_default_mid_temp
+0x46b3 mem_current_vdd_default_range
+0x46b5 mem_rocker_last_status
+0x46b7 mem_rocker_status
+0x46b7 mem_rocker_x_status
+0x46b8 mem_rocker_y_status
+0x46b9 mem_remote_car_config_param
+0x46b9 mem_remote_car_config_setting_flag
+0x46ba mem_remote_car_config_key_map
+0x46bb mem_remote_car_config_layout
+0x46bc mem_remote_car_config_connect_led_gpio
+0x46bd mem_remote_car_config_check_way
+0x46be mem_remote_car_config_soft_switch_enable
+0x46bf mem_remote_car_config_soft_switch_gpio
+0x46c0 mem_remote_car_config_timeout_shutdown_enable
+0x46c1 mem_remote_car_24g_motor_packet
+0x46c1 mem_remote_car_24g_motor_packet_lenght
+0x46c2 mem_remote_car_24g_motor_send_packet_head
+0x46c4 mem_remote_car_24g_motor_send_cmd
+0x46c5 mem_remote_car_24g_motor_send_length
+0x46c7 mem_remote_car_24g_motor_send_payload
+0x46c7 mem_remote_car_24g_motor1_payload
+0x46c9 mem_remote_car_24g_motor2_payload
+0x46cb mem_remote_car_24g_motor3_payload
+0x46cd mem_remote_car_24g_motor_send_checksum
+0x46ce mem_remote_car_24g_fire_packet
+0x46ce mem_remote_car_24g_fire_packet_lenght
+0x46cf mem_remote_car_24g_fire_send_packet_head
+0x46d1 mem_remote_car_24g_fire_send_cmd
+0x46d2 mem_remote_car_24g_fire_send_length
+0x46d4 mem_remote_car_24g_fire_send_payload
+0x46d6 mem_remote_car_24g_fire_send_checksum
+0x46d7 mem_remote_car_24g_tx_temp
+0x46e6 mem_remote_car_no_data_timeout
+0x46e8 mem_remote_car_no_data_timer
+0x46ea mem_remote_car_soft_power
+0x46ea mem_remote_car_power_state
+0x46eb mem_remote_car_power_timer
+0x46ec mem_remote_car_power_off_timeout
+0x46ed mem_remote_car_power_starting_timeout
+0x46ee mem_remote_car_power_off_cb
+0x46f0 mem_remote_car_power_starting_cb
+0x46f2 mem_remote_car_power_standby_cb
+0x46f4 mem_remote_key_status
+0x46f5 mem_remote_car_24g_status
+0x46f6 mem_remote_car_24g_auto_work_step
+0x46f7 mem_remote_car_24g_pair_success_flag
+0x46f8 mem_remote_car_empty_packet
+0x46f9 mem_remote_car_motor1_key0_press_state
+0x46fa mem_remote_car_motor1_key1_press_state
+0x46fb mem_remote_car_motor2_key2_press_state
+0x46fc mem_remote_car_motor2_key3_press_state
+0x46fd mem_remote_car_motor1_rel_state
+0x46fe mem_remote_car_motor2_rel_state
+0x46ff mem_remote_car_no_data_check
+0x4700 mem_remote_24g_commom_addr
+0x4704 mem_remote_24g_commom_addr_temp
+0x4708 mem_remote_24g_commom_addr_read
+0x470c mem_remote_save_addr_flag
+0x44f1 mem_hci_uart_tx_gpio
+0x44f2 mem_hci_uart_rx_gpio
+0x44f3 mem_hci_uart_rts_gpio
+0x44f4 mem_hci_uart_cts_gpio
+0x44f5 mem_hci_pwm_12mhz_gpio
+0x44f1 mem_soft_version_num
+0x44f3 mem_module_wake_up_gpio
+0x44f4 mem_module_state_gpio
+0x44f5 mem_module_connect_state_gpio
+0x44f6 mem_current_packet_length
+0x44f8 mem_module_state
+0x44f9 mem_module_mcu_wake_pin
+0x44fa mem_module_mcu_wake_delay_us
+0x44fe mem_module_le_lpm_mult
+0x44ff mem_module_bluetooth_stauts_by_command
+0x4500 mem_module_uart_rx_buffer
+0x4502 mem_module_uart_rx_buffer_end
+0x4504 mem_module_uart_tx_buffer
+0x4506 mem_module_uart_tx_buffer_end
+0x4508 mem_module_uarta_baud_rate
+0x450a mem_module_read_vdd_flag
+0x450b mem_module_read_vdd_count
+0x450c mem_module_vdd_quotient
+0x450d mem_module_vdd_remainder
+0x450e mem_module_ble_data_uart_max_length
+0x450f mem_module_flag
+0x4511 mem_module_hci_notify_len
+0x4512 mem_module_hci_notify_handle
+0x4514 mem_module_hci_nofiy_addr
+0x4516 mem_module_hci_notify_type
+0x4517 mem_le_conn_flag
+0x4518 mem_module_le_att_list
+0x4770 mem_module_le_att_list_end
+0x4770 mem_module_nv_data
+0x4770 mem_module_nv_data0
+0x4792 mem_module_nv_data1
+0x47b4 mem_module_nv_data2
+0x47d6 mem_module_nv_data3
+0x47f8 mem_module_nv_data4
+0x481a mem_module_nv_data_end
+0x44f1 mem_ble_shutter_enable_notify
+0x44f2 mem_ble_shutter_reconn_adv_interval
+0x44f4 mem_ble_shutter_discovery_adv_interval
+0x44f6 mem_ble_shutter_reconn_timeout
+0x44f8 mem_ble_shutter_reconn_timer
+0x44fa mem_ble_shutter_reconn_blink_on_time
+0x44fc mem_ble_shutter_reconn_blink_off_time
+0x44fe mem_ble_shutter_discovery_blink_on_time
+0x4500 mem_ble_shutter_discovery_blink_off_time
+0x4502 mem_ble_shutter_interval_min
+0x4504 mem_ble_shutter_interval_max
+0x4506 mem_ble_shutter_latency
+0x4508 mem_ble_shutter_timeout
+0x450a mem_ble_shutter_interval_min_new
+0x450c mem_ble_shutter_interval_max_new
+0x450e mem_ble_shutter_latency_new
+0x4510 mem_ble_shutter_timeout_new
+0x4512 mem_ble_shutter_discovery_timeout
+0x4514 mem_ble_shutter_connect_timeout
+0x4516 mem_shutter_sleep_timeout
+0x4518 mem_shutter_sleep_timer
+0x451a mem_shutter_hard_soft_switch_case
+0x451b mem_shutter_soft_switch_button_gpio
+0x451c mem_shutter_soft_switch_power_state
+0x451d mem_shutter_soft_switch_poweron_time
+0x451e mem_shutter_soft_switch_poweroff_time
+0x451f mem_shutter_soft_switch_poweron_callback_function
+0x4521 mem_shutter_soft_switch_poweroff_callback_function
+0x4523 mem_shutter_keyscan
+0x4523 mem_shutter_key_num
+0x4524 mem_cb_shutter_keycan
+0x4526 mem_shutter_key_conf0
+0x4527 mem_shutter_key_conf1
+0x4528 mem_shutter_key_conf2
+0x4529 mem_shutter_key_conf3
+0x452a mem_shutter_key_conf4
+0x452b mem_shutter_key_conf5
+0x452c mem_shutter_key_conf6
+0x452d mem_shutter_key_conf7
+0x452e mem_key0_press
+0x4533 mem_key1_press
+0x4538 mem_key2_press
+0x453d mem_key3_press
+0x4542 mem_key4_press
+0x4547 mem_key5_press
+0x454c mem_key6_press
+0x4551 mem_key7_press
+0x4556 mem_key0_release
+0x455b mem_key1_release
+0x4560 mem_key2_release
+0x4565 mem_key3_release
+0x456a mem_key4_release
+0x456f mem_key5_release
+0x4574 mem_key6_release
+0x4579 mem_key7_release
+0x457e mem_ble_data_buffer1
+0x4583 mem_ble_data_buffer2
+0x4588 mem_ble_data_buffer3
+0x458d mem_ble_data_buffer4
+0x4592 mem_ble_data_buffer5
+0x4597 mem_ble_data_buffer6
+0x459c mem_ble_data_buffer7
+0x45a1 mem_ble_data_buffer8
+0x45a6 mem_ble_data_buffer9_58
+0x45d8 mem_queue_each_size
+0x45d9 mem_queue_length
+0x45da mem_queue_curr_num
+0x45db mem_queue_read_ptr
+0x45dc mem_queue_write_ptr
+0x45dd mem_queue_ele
+0x45fd mem_shutter_nv_data
+0x46a7 mem_shutter_led_struct_app_led
+0x46a7 mem_shutter_led_struct_app_led_type
+0x46a8 mem_shutter_led_struct_app_led_blink_count
+0x46a9 mem_shutter_led_struct_app_led_gpio
+0x46aa mem_shutter_led_struct_app_led_on_time
+0x46ac mem_shutter_led_struct_app_led_off_time
+0x46ae mem_shutter_led_struct_app_led_on_callback
+0x46b0 mem_shutter_led_struct_app_led_off_callback
+0x46b2 mem_shutter_power_off_led_style
+0x46b2 mem_shutter_power_off_led_style_type
+0x46b3 mem_shutter_power_off_led_style_blink_count
+0x46b4 mem_shutter_power_off_led_style_gpio
+0x46b5 mem_shutter_power_off_led_style_on_time
+0x46b7 mem_shutter_power_off_led_style_off_time
+0x46b9 mem_shutter_power_off_led_style_on_callback
+0x46bb mem_shutter_power_off_led_style_off_callback
+0x46bd mem_shutter_soft_swtich_botton_down
+0x46be mem_shutter_soft_swtich_led_struct_temp
+0x46c9 mem_shutter_power_off_timeout
+0x46ca mem_shutter_power_off_timer
+0x46cb mem_shutter_key_conf0_temp
+0x46cd mem_shutter_led_struct_app_led_gpio_temp
+0x46ce mem_shutter_hard_soft_switch_case_temp
+0x46cf mem_shutter_soft_switch_button_gpio_temp
+0x46d0 mem_shutter_soft_switch_first_power_on
+0x46d1 mem_shutter_dy_conf
+0x46d2 mem_shutter_le_uuid_sup
+0x4876 mem_shutter_key_value_list
+0x489e mem_shutter_discovery_time_conf
+0x48a6 mem_shutter_reconn_or_discovery_blink_time_conf
+0x48ae mem_shutter_1s_timer
+0x48af mem_shutter_timer_625us
+0x48b1 mem_rf_init_data_new
+0x48bc mem_key_value_xmem
+0x48be mem_shutter_le_hid_map
+0x49e0 mem_shutter_le_map_len_android
+0x49e2 mem_shutter_le_map_len_ios
+0x49e4 mem_dy_le_search_service_uuid
+0x49f4 mem_iphone_flag
+0x49f5 mem_send_data_delay
+0x49f6 mem_key_send_clk
+0x49fa mem_shutter_key_state0
+0x4a04 mem_shutter_key_state1
+0x4a0e mem_shutter_key_state2
+0x4a18 mem_shutter_key_state3
+0x4a22 mem_shutter_key_state4
+0x4a2c mem_shutter_key_state5
+0x4a36 mem_shutter_key_state6
+0x4a40 mem_key0_release_new
+0x4a4f mem_key1_release_new
+0x4a5e mem_key2_release_new
+0x4a6d mem_key3_release_new
+0x4a7c mem_key4_release_new
+0x4a8b mem_key5_release_new
+0x4a9a mem_key6_release_new
+0x4aa9 mem_key0_long_press
+0x4aac mem_key1_long_press
+0x4aaf mem_key2_long_press
+0x4ab2 mem_key3_long_press
+0x4ab5 mem_key4_long_press
+0x4ab8 mem_key5_long_press
+0x4abb mem_key6_long_press
+0x4abe mem_key0_long_release
+0x4ac1 mem_key1_long_release
+0x4ac4 mem_key2_long_release
+0x4ac7 mem_key3_long_release
+0x4aca mem_key4_long_release
+0x4acd mem_key5_long_release
+0x4ad0 mem_key6_long_release
+0x4ad3 mem_combine_key0
+0x4ad5 mem_combine_key1
+0x4ad7 mem_combine_key2
+0x4ad9 mem_combine_key3
+0x4adb mem_combine_key4
+0x4add mem_combine_key5
+0x4adf mem_combine_key_state0
+0x4ae1 mem_combine_key0_press
+0x4aeb mem_combine_key1_press
+0x4af5 mem_combine_key2_press
+0x4aff mem_combine_key3_press
+0x4b09 mem_combine_key4_press
+0x4b13 mem_combine_key5_press
+0x4b1d mem_combine_key_release
+0x4b27 mem_shutter_move_data
+0x4b2b mem_key0_press_i
+0x4b35 mem_key1_press_i
+0x4b3f mem_key2_press_i
+0x4b49 mem_key3_press_i
+0x4b53 mem_key4_press_i
+0x4b5d mem_key5_press_i
+0x4b67 mem_key0_release_new_i
+0x4b76 mem_key1_release_new_i
+0x4b85 mem_key2_release_new_i
+0x4b94 mem_key3_release_new_i
+0x4ba3 mem_key4_release_new_i
+0x4bb2 mem_key5_release_new_i
+0x4bc1 mem_key6_release_new_i
+0x4bd0 mem_key0_long_press_i
+0x4bd3 mem_key1_long_press_i
+0x4bd6 mem_key2_long_press_i
+0x4bd9 mem_key3_long_press_i
+0x4bdc mem_key4_long_press_i
+0x4bdf mem_key5_long_press_i
+0x4be2 mem_key6_long_press_i
+0x4be5 mem_key0_long_release_i
+0x4be8 mem_key1_long_release_i
+0x4beb mem_key2_long_release_i
+0x4bee mem_key3_long_release_i
+0x4bf1 mem_key4_long_release_i
+0x4bf4 mem_key5_long_release_i
+0x4bf7 mem_key6_long_release_i
+0x4bfa mem_key3_release_new_t
+0x4c04 mem_key3_release_new_i_t
+0x4c0e mem_key3_press_count
+0x4c0f mem_shutter_like_timeout
+0x4c10 mem_shutter_key_pressed
+0x4c11 mem_shutter_combine_key_release
+0x4c12 mem_shutter_mousekey_value_list
+0x4eba mem_shutter_back_count
+0x4ebb mem_shutter_le_conned
+0x4ebc mem_move_config
+0x4ebc mem_shutter_iphone_beyond_x_count
+0x4ebd mem_shutter_iphone_beyond_y_count
+0x4ebe mem_shutter_move_data_x
+0x4ec0 mem_shutter_move_data_y
+0x4ec2 mem_last_shutter_le_iphone_flag
+0x4ec3 mem_move_config_end
+0x4ec3 mem_shutter_back_count_cache
+0x4ec4 mem_shutter_iphone_beyond_x_cache
+0x4ec5 mem_shutter_iphone_beyond_y_cache
+0x4ec6 mem_shutter_iphone_move_mid
+0x4ed0 mem_shutter_long_key_released_flag
+0x4ed1 mem_shutter_move_mid_timer
+0x4ed2 mem_shutter_pairing_success
+0x4ed3 mem_combine_key_release_value
+0x4ed5 mem_last_press_key_value
+0x4ed6 mem_shutter_first_move
+0x4ed7 mem_move_mode_set
+0x4ed8 mem_move_mode_key_index
+0x4ed9 mem_move_mode_trigger_enable
+0x4eda mem_shutter_android_move_mid
+0x4edf mem_shutter_iphone_up_mid
+0x4ee9 mem_shutter_iphone_like_mid
+0x4ef3 mem_shutter_key_num_conf
+0x4ef4 mem_shutter_dy_key_conf
+0x4efb mem_le_dy_adv_data
+0x4f06 mem_le_dy_scan_data
+0x4f12 mem_ble_shutter_dy_interval_min_new
+0x4f1a mem_shutter_ble_discovery_time_conf
+0x4f22 mem_queue_dy_each_size
+0x4f24 mem_dy_key0_press
+0x4f2e mem_dy_key1_press
+0x4f38 mem_dy_key2_press
+0x4f42 mem_dy_key3_press
+0x4f4c mem_dy_key4_press
+0x4f56 mem_dy_key5_press
+0x4f60 mem_dy_key6_press
+0x4f6a mem_shutter_led_on_light_dark_led_conf
+0x4f71 mem_shutter_led_off_light_dark_led_conf
+0x4f78 mem_shutter_reconn_blink_on_time_conf
+0x4f7c mem_shutter_discovery_blink_on_time_conf
+0x4f80 mem_shutter_efuse_start_offset
+0x4f82 mem_shutter_efuse_end_offset
+0x4f84 mem_initial_move_conf
+0x4f84 mem_android_initial_move_x
+0x4f86 mem_android_initial_move_y
+0x4f88 mem_iphone_initial_move_x
+0x4f8a mem_iphone_initial_move_y
+0x4f8c mem_otp_move_config
+0x4f8c mem_otp_shutter_move_data_x
+0x4f8e mem_otp_shutter_move_data_y
+0x4f90 mem_otp_last_shutter_le_iphone_flag
+0x4f91 mem_otp_move_config_end
+0x4f91 mem_otp_write_offset_addr
+0x4f93 mem_otp_read_offset_addr
+0x4f95 mem_otp_read_ios_android_addr
+0x4f97 mem_shutter_le_pairing_handle
+0x4f99 mem_shutter_temp_count
+0x4f9b mem_shutter_first_read_flag
+0x4f9c mem_shutter_valid_data_flag
+0x4f9d mem_shutter_volume_timer
+0x4f9e mem_shutter_link_timer
+0x4f9f mem_shutter_link_data
+0x4fa7 mem_shutter_link_data_i
+0x4faf mem_shutter_link_loop_flag
+0x4fb0 mem_shutter_end
+
+0x45ed mem_mesh_vendor_timer_timing_index_cyclic
+0x45ee mem_mesh_vendor_timer_timing_time_cyclic
+0x45f0 mem_mesh_vendor_timer_timing_zone_cyclic
+0x45f2 mem_mesh_vendor_timer_timing_weekdays_cyclic
+0x45f3 mem_mesh_vendor_timer_timing_attr_type_cyclic
+0x45f5 mem_mesh_vendor_timer_timing_attr_para_len_cyclic
+0x45f6 mem_mesh_vendor_timer_timing_attr_para_cyclic
+0x45fe mem_mesh_vendor_timer_timing_cyclic_flag
+0x45ed mem_mesh_vendor_timer_timing_index
+0x45ee mem_mesh_vendor_timer_timing_time
+0x45f2 mem_mesh_vendor_timer_timing_attr_type
+0x45f4 mem_mesh_vendor_timer_timing_attr_para_len
+0x45f5 mem_mesh_vendor_timer_timing_attr_para
+0x45fd mem_mesh_vendor_timer_timing_flag
+0x4806 mem_mesh_fast_pairing_timer
+0x49a1 mem_mesh_filter_status_message_opcode
+0x49a2 mem_mesh_filter_status_message_FilterType
+0x49a3 mem_mesh_filter_status_message_ListSize
+0x49a5 mem_mesh_filter_status_message_MIC
+0x49a1 mem_mesh_unsegmented_access_lower_transport_layer_head
+0x49a2 mem_mesh_unsegmented_access_lower_transport_layer_parameters
+0x49ad mem_mesh_unsegmented_access_lower_transport_layer_mic
+0x49a1 mem_mesh_segmented_access_lower_transport_layer_head
+0x49a2 mem_mesh_segmented_access_lower_transport_layer_SZMIC_SeqZero_SegO_SegN
+0x49a5 mem_mesh_segmented_access_lower_transport_layer_parameters
+0x49ad mem_mesh_segmented_access_lower_transport_layer_mic
+0x475e mem_k2_EncryptionKey
+0x474e mem_k2_PrivacyKey
+
+	width = 32
+	const length = 12000
+
+	
+
+
+
+
+(//mem_system_clk
+12 SYSTEM_CLK_12M
+24 SYSTEM_CLK_24M
+)
+
+(//bluetooth tx power
+0x00 TX_POWER_0DB
+0x03 TX_POWER_3DB
+0x05 TX_POWER_5DB
+0x06 TX_POWER_6DB
+0x07 TX_POWER_7DB
+0x0a TX_POWER_10DB
+
+0x83 TX_POWER_F3DB
+0x85 TX_POWER_F5DB
+0x8a TX_POWER_F10DB
+0x94 TX_POWER_F20DB
+0x9e TX_POWER_F30DB
+0xaa TX_POWER_FACTORY
+)
+
+
+	
+(
+0x01 coffset_mode
+0x02 coffset_tsniff
+0x04 coffset_sniff_anchor
+0x08 coffset_clk_offset
+0x0e coffset_rx_window
+0x10 coffset_plap
+0x16 coffset_conn_handle
+0x17 coffset_arq
+	
+	
+	
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+0x1c coffset_le_supervision_timer
+0x20 coffset_le_instant
+0x22 coffset_le_channels
+0x23 coffset_le_op
+0x24 coffset_le_access
+0x28 coffset_le_crcinit
+0x2b coffset_le_window_size
+0x2c coffset_le_slave_latency
+0x2e coffset_le_slave_superto
+0x30 coffset_le_channel_map
+0x35 coffset_le_rx_phy
+0x36 coffset_le_tx_phy
+0x37 coffset_le_new_map
+0x37 coffset_le_new_m2s_phy
+0x38 coffset_le_new_s2m_phy
+0x37 coffest_le_new_transmitwindowsize
+0x38 coffest_le_new_transmitwindowoffset
+0x3a coffest_le_new_conninterval
+0x3c coffest_le_new_connslavelatency
+0x3e coffest_le_new_connsupervisiontimeout
+0x40 coffset_le_sk
+0x50 coffset_le_peer_sca
+0x53 coffset_le_transmit_window
+	
+83 context_size
+1 context_num
+)
+
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+
+
+(
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+
+
+
+0x0e43 param_tx_setup
+0x0600 param_rf_setup
+0x0600 param_conn_access 
+0x03bb param_clke_cal
+0x0500 param_pll_setup		// 120 is minimum
+0x0d00 param_rx_setup	// 114us before sync
+2000 param_dpll_start_delay
+3750 param_rt_rthalfslot
+
+480 param_clke_cal_le_1m	//preamble(1B) & access address(4B) time (1+4)*8*1 * 12
+288 	param_clke_cal_le_2m	//preamble(2B) & access address(4B) time (1+4)*8*1 * 12
+282 param_clke_cal_le_coded	//preamble(80us) & access address(256us)-312.5us(0.5slot)
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+-1 param_hibernate_clks
+
+1000 param_chgpump_delay_100us
+6000 param_chgpump_delay_500us
+12000 param_chgpump_delay_1ms
+
+
+0x000a04 param_lmp_version
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+39 param_fcomp_div
+2 param_fcomp_mul
+
+)
+
+
+
+(
+0        always        
+1        true          
+2        positive      
+3        timeout       
+4        init_adpcm
+5        zero          
+6        crc_failed    
+7        enable_white  
+8        enable_parity 
+9        enable_crc    
+10       enable_hec    
+11       decode_fec1   
+12       decode_fec2   
+13       decode_fec0   
+14       encrypt       
+15       crc16       
+16       swfine	
+20       rqst_freq    
+21       recalc        
+22       init_encrypt  
+23       mhalfbnd    
+24       sync          
+25       user10    
+26       kc_p_activate  
+27       encode_fec1   
+28       encode_fec2   
+29       encode_fec0   
+30       packet_end    
+32       is_tx         
+33       is_rx         
+34       halfslot     
+35       oneslot      
+36       mslotbnd     
+37       expire       
+38       meet         
+39       tx_clear     
+40       user         
+41       master        
+42       rxon         
+43       wake           
+44       user2        
+45       match         
+46       attempt        
+47       user3          
+48       clknt         
+49	   user7 	
+50       synchronize   
+51       lpo_edge  
+52       blank         
+53       modone          
+55       aes_ready	
+56       encode_fec3   
+57       dewhiten_code_calc   
+58       lr_s2en       
+60	   ble_coded_info	//1:s2 0:s8
+63       never         
+)
+
+default flag = always
+
+
+(
+0        mark   
+1        type   
+2        temp   
+3        contu  
+3	 contru	
+3	 contwu	
+4        am_addr      
+5        contw        
+6        contr        
+7        queue    
+8        debug    
+9        access   
+10       contus   
+11       timeup        
+12       pwindow       
+13       fhs_parity    
+14       white_init    
+15       crc24_init        
+16       contue    
+17       rega          
+18       regb          
+19       regc          
+20       regab         
+21       radio_ctrl   
+
+23       freq_index   
+24       regd    
+25       clkn              
+26       clke              
+27       stop_watch		
+28       fhs_misc   
+29       fhs_class  
+30       fhs0   
+31       fhs1   
+32       bt_adr 
+33       bt_clk 
+34       clkn_bt  
+35       clkn_rt  
+36       freq_mode
+37       xin   
+38       N_tx_slot 
+39 	   auxcnt
+40       clke_bt  
+41       clke_rt  
+42       branch_addr	
+43       rege         
+44       lap
+45       uap
+46       nap         
+47       regext		
+48       alarm             
+49       lpo_time          
+50       kc_ls             
+51       kc_ms             
+52       g1l               
+53		mask3ff		
+54       aes_ctrl		
+55       regf			
+56       regext_index   
+57	     loopcnt
+58      stack			
+59       stack_ptr		
+61         pc 
+62       null              
+63       pdata 
+)
+default reg = pdata
+
+
+(
+0 regidx_data
+4 regidx_key
+8 regidx_xor
+12 regidx_result
+)
+
+(
+0 TXGFSK
+1 PSK
+2 PSK3M
+3 RESET
+)
+
+
+
+
+
+
+
+
+
+
+
+(
+0 bucket
+1 rxf
+2 back
+3 mod
+)
+default dest = bucket
+
+
+(
+1 txf
+3 demod
+)
+default source = 0
+
+
+
+(
+5  mark_loopback
+9  mark_context
+13 mark_lpm_mult_enable
+14 mark_usb_first_resp
+15 mark_old_packet
+35 mark_isstr
+36 mark_loadcode
+37 mark_ext_patch
+38 mark_24g
+39 mark_24g_rxmode
+40 mark_eeprom_size
+41 mark_ble_tx_md
+42 mark_ble_rx_md
+43 mark_otp_encrypt
+44 mark_temp
+45 mark_ble_2M
+46 mark_ble_lr_s8
+47 mark_ble_lr
+48 mark_ble_crc_fail
+50 mark_ble_encryption
+51 mark_first_packet
+)
+
+(
+1 reload_type_otp
+2 reload_type_spi
+3 reload_type_iic
+)
+
+
+
+(
+0 le_adv_interval_timer
+2 le_scan_interval_timer
+9 key_scan_timer
+7 smp_pairing_timer
+11  ui_led_blink  
+
+8 G24_TIMER_NODATA
+13 G24_TIMER_MS_BLANK
+12 G24_TIMER_KB_MUL_BLANK
+10 G24_TIMER_KB_SYS_CRTL_BLANK
+14 G24_TIMER_KB_BLANK
+
+1 USB_TIMER_NAK
+15 USB_TIMER_WAKEUP
+)
+
+(
+
+27 hci_cmd_le_create_conn
+29 hci_cmd_le_disconn
+30 hci_cmd_le_att_req
+)
+
+
+
+
+(
+0 mode_le
+1 mode_master
+)
+
+(
+0 state_inconn
+1 state_insniff
+)
+(
+3 op_disconn
+)
+
+
+
+//mem_lpm_wake_lock
+(
+0 wake_lock_ble_rx
+1 wake_lock_ble_tx
+
+3 wake_lock_key_press
+4 wake_lock_ble_tx_patch
+5 wake_lock_uart_tx
+6 wake_lock_uart_rx
+7 wake_lock_button
+8 wake_lock_cmd
+9 wake_lock_app
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+
+(//mem_fcomp_div
+0x18 XTAL_24M
+0x10 XTAL_16M
+)
+
+( //verion
+6 BLUETOOTH_CORE_SPECIFICATION_4_0
+7 BLUETOOTH_CORE_SPECIFICATION_4_1
+8 BLUETOOTH_CORE_SPECIFICATION_4_2
+9 BLUETOOTH_CORE_SPECIFICATION_5_0
+10 BLUETOOTH_CORE_SPECIFICATION_5_1
+)
+
+(
+0x050e COMPANY_ID_YICHIP
+)
+
+(
+0x33  REC_3_MODE
+0x34  REC_4_MODE
+0x35  REC_4_MODE_STATIC_ADDRESS
+0x36  REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS
+0x37  REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS
+)
+
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+)
+
+
+
+
+
+
+
+
+
+(//mem_le_T_IFS
+150 PARAM_T_IFS_150US
+20000 PARAM_20MS_INIT
+-11 PARAM_SYNC_TIME_DIFFERENCE
+40 PARAM_CODED_C1_TERM1_TIME_40US
+1666 PARAM_WINDOWN_SIZE
+//T_IFS = 150-modem(CRC time)
+15000 param_sifs
+)
+
+
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+
+	//BLE ErrorCodes
+	(    
+	0x01 ERROR_UNKNOWN_HCI_COMMAND
+	0x02 ERROR_NO_CONNECTION
+	0x03 ERROR_HARDWARE_FAILURE
+	0x04 ERROR_PAGE_TIMEOUT
+	0x05 ERROR_AUTHENTICATION_FAILURE
+	0x06 ERROR_KEY_MISSING
+	0x07 ERROR_MEMORY_FULL
+	0x08 ERROR_CONNECTION_TIMEOUT
+	0x09 ERROR_MAX_CONNECTIONS
+	0x0A ERROR_MAX_SCO_CONNECTIONS
+	0x0B ERROR_MAX_ACL_CONNECTIONS
+	0x0C ERROR_COMMAND_DISALLOWED
+	0x0D ERROR_HOST_REJECT_LIMITED_RESOURCES
+	0x0E ERROR_HOST_REJECT_SECURITY_REASONS
+	0x0F ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
+	0x10 ERROR_HOST_TIMEOUT
+	0x11 ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
+	0x12 ERROR_INVALID_HCI_COMMAND_PARAMETERS
+	0x13 ERROR_REMOTE_USER_TERMINATED_CONNECTION
+	0x14 ERROR_REMOTE_LOW_RESOURCES
+	0x15 ERROR_REMOTE_POWERING_OFF
+	0x16 ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
+	0x17 ERROR_REPEATED_ATTEMPTS
+	0x18 ERROR_PAIRING_NOT_ALLOWED
+	0x19 ERROR_UNKNOWN_LMP_PDU
+	0x1A ERROR_UNSUPPORTED_REMOTE_FEATURE
+	0x1B ERROR_SCO_OFFSET_REJECTED
+	0x1C ERROR_SCO_INTERVAL_REJECTED
+	0x1D ERROR_SCO_AIR_MODE_REJECTED
+	0x1E ERROR_INVALID_LMP_PARAMETER
+	0x1F ERROR_UNSPECIFIED_ERROR
+	0x20 ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
+	0x21 ERROR_ROLE_CHANGE_NOT_ALLOWD
+	0x22 ERROR_LMP_RESPONSE_TIMEOUT
+	0x23 ERROR_ERROR_TRANSACTION_COLLISION
+	0x24 ERROR_LMP_PDU_NOT_ALLOWED
+	0x25 ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x26 ERROR_UNIT_KEY_USED
+	0x27 ERROR_QOS_NOT_SUPPORTED
+	0x28 ERROR_INSTANT_PASSED
+	0x29 ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
+	0x2a ERROR_DIFFERENT_TRANSACTION_COLLISION
+	0x2c ERROR_QOS_UNACCEPTABLE_PARAMETER
+	0x2d ERROR_QOS_REJECTED
+	0x2e ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
+	0x2f ERROR_INSUFFICIENT_SECURITY
+	0x30 ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
+	0x32 ERROR_ROLE_SWITCH_PENDING
+	0x34 ERROR_RESERVED_SLOT_VIOLATION
+	0x35 ERROR_ROLE_SWITCH_FAILED
+	0x36 ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
+	0x37 ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
+	0x38 ERROR_HOST_BUSY_PAIRING
+	0x3d ERROR_MIC_FAILURE
+	)
+
+
+	//modified_name
+	(
+	0X20 SPACE	
+	)
+	
+	(
+	0x0004 LE_L2CAP_CID_ATT
+	0x0005 LE_L2CAP_CID_SIGNAL
+	0x0006 LE_L2CAP_CID_SMP
+	)
+
+	//LE address type
+	(
+	0 LE_ADDR_TYPE_PUBLIC
+	1 LE_ADDR_TYPE_RANDOM
+	)
+	//LE address type bitmap
+	(
+	7 LE_RECEIVER_ADDR_BIT
+	6 LE_SENDER_ADDR_BIT
+	)
+	//LE SCAN TYPE
+	(
+	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
+	0x01 LE_SCAN_TYPE_ACTIVE
+	)
+
+	//LE SCAN ENABLE
+	(
+	0x00 LE_SCAN_DISABLE
+	0x01 LE_SCAN_ENABLE
+	0x0101 LE_ACTIVE_SCAN_ENABLE
+	)
+
+	//LE FIND INFORMATION RESPONSE
+	//THE FORMAT OF THE INFORMATION DATA
+	(
+	0x01 UUID_SIZE_16BIT
+	0x02 UUID_SIZE_128BIT
+	)
+
+//	le_state_map 0-2 is reserved for state_inconn,state_insniff and state_sco
+(
+3 lestate_got_first_packet
+4 lestate_encryption
+5 lestate_update_param
+6 lestate_update_map
+7 lestate_update_phy
+)
+
+// 	le mode
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+5 lemode_2m
+6 lemode_lr
+7 lemode_lr_s8
+
+0x20 mode_2m
+0x40 mode_lr_s2
+0xc0 mode_lr_s8
+
+)
+
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+6 txdat
+)
+
+(
+0x00 LLID_RESERVED
+0x01 LLID_CONTINUE
+0x02 LLID_START
+0x03 LLID_LE_LL
+0x01 LLID_EMPTY
+)
+
+(
+4 LE_TX_BUFF_COUNT
+3 LE_TX_BUFF_UPDATE_LOOPCNT //LE_TX_BUFF_COUNT-1
+
+12 LE_MD_MAX_COUNT
+)
+
+
+(
+0 LE_INITATOR_LTK_BIT
+1 LE_INITATOR_IRK_BIT
+2 LE_INITATOR_CSRK_BIT
+)
+
+
+
+
+
+(
+0  LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND
+1  LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE
+2  LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE
+
+)
+
+(
+0 MASTER_PUBLIC_ADDR
+1 MASTER_RANDOM_ADDR
+)
+
+(
+0x06 LE_ERR_PIN_OR_KEY_MISSING
+)
+
+(
+39 LE_CCM_DIRECTIONBIT
+)
+(
+36 BR_CCM_0_LENGTH_CONTINUATION
+37 BR_CCM_DIRECTIONBIT
+)
+
+(
+96000 TIMER_SMP_PAIRING_TIMEOUT //30S
+)
+
+
+
+//mem_le_enc_state
+(
+0 FLAG_LE_ENC_NULL
+1 FLAG_LE_RCV_ENC_START
+2 FLAG_LE_ENC_PAUSE
+3 FLAG_LE_RCV_START_ENC_RSP
+4 FLAG_LE_SEND_START_ENC_RSP
+5 FLAG_LE_SEND_START_ENC_REQ
+0xff FLAG_LE_ENC_END
+)
+
+(//mem_le_configuration
+//bit0:use fixed key , ble passkey pairing
+0 BIT_BLE_PASSKEY_FIXED_KEY
+//bit1:ble pairing use fixed long term key
+1 BIT_BLE_PAIRING_FIXED_LTK
+//bit2:ble transmit packet will set more data flag
+2 BIT_BLE_TRANSMIT_PACKET_BY_MD
+//bit3:master read handle, with requires an authenticated link
+3 BIT_BLE_READ_AUTH
+//bit4:master write handle, with requires an authenticated link
+4 BIT_BLE_WRITE_AUTH
+//bit5:cannot enter long sleep
+5 BIT_BLE_SHORT_MULT
+//bit6:DEAL baseband packet
+6 BIT_BLE_DEAL_BB_PACKET
+)
+
+
+
+
+
+
+(
+0x01	GAP_ADTYPE_FLAGS
+0x02	GAP_ADTYPE_16BIT_MORE
+0x03	GAP_ADTYPE_16BIT_COMPLETE
+0x04	GAP_ADTYPE_32BIT_MORE
+0x05	GAP_ADTYPE_32BIT_COMPLETE
+0x06	GAP_ADTYPE_128BIT_MORE
+0x07	GAP_ADTYPE_128BIT_COMPLETE
+0x08	GAP_ADTYPE_LOCAL_NAME_SHORT
+0x09	GAP_ADTYPE_LOCAL_NAME_COMPLETE
+0x0a	GAP_ADTYPE_POWER_LEVEL
+0x16	GAP_ADTYPE_SERVICE_DATA
+0x2a	GAP_ADTYPE_MESH_MESSAGE
+0x2b 	GAP_ADTYPE_MESH_BEACON
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+
+
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+3 AUX_SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+5 AUX_CONNECT_REQ
+6 ADV_SCAN_IND
+)
+
+(
+0 BIT_ADV_CHANNEL_MAP_37
+1 BIT_ADV_CHANNEL_MAP_38
+2 BIT_ADV_CHANNEL_MAP_39
+)
+
+(
+0xa0 param_le_sca
+)
+
+
+
+
+
+
+
+
+
+
+(//bit of mem_le_l2cap_att_states
+0 BLE_L2CAP_SEND_INDICATION_PACKET
+0 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
+)
+
+(//bit map of att handle
+14 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED
+15 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED
+)
+
+
+
+(
+0 BIT_CHARACTERISTIC_BROADCAST
+1 BIT_CHARACTERISTIC_READ
+2 BIT_CHARACTERISTIC_WRITE_WITHOUT_RESPONSE
+3 BIT_CHARACTERISTIC_WRITE
+4 BIT_CHARACTERISTIC_NOTIFY
+5 BIT_CHARACTERISTIC_INDICATE
+6 BIT_CHARACTERISTIC_SIGNED_WRITE
+7 BIT_CHARACTERISTIC_EXTENDED_PROPERTIES
+)
+
+
+(
+0x01 ATTOP_ERROR_RESPONSE
+0x02 ATTOP_EXCHANGE_MTU_REQUEST
+0x03 ATTOP_EXCHANGE_MTU_RESPONSE
+0x04 ATTOP_FIND_INFORMATION_REQUEST
+0x05 ATTOP_FIND_INFORMATION_RESPONSE
+0x06 ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+0x07 ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+0x08 ATTOP_READ_BY_TYPE_REQUEST
+0x09 ATTOP_READ_BY_TYPE_RESPONSE
+0x0A ATTOP_READ_REQUEST
+0x0B ATTOP_READ_RESPONSE
+0x0C ATTOP_READ_BLOB_REQUEST
+0x0D ATTOP_READ_BLOB_RESPONSE
+0x0E ATTOP_READ_MULTIPLE_REQUEST
+0x0F ATTOP_READ_MULTIPLE_RESPONSE
+0x10 ATTOP_READ_BY_GROUP_TYPE_REQUEST
+0x11 ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+0x12 ATTOP_WRITE_REQUEST
+0x13 ATTOP_WRITE_RESPONSE
+0x16 ATTOP_PREPARE_WRITE_REQUEST
+0x17 ATTOP_PREPARE_WRITE_RESPONSE
+0x18 ATTOP_EXECUTE_WRITE_REQUEST
+0x19 ATTOP_EXECUTE_WRITE_RESPONSE
+0x1B ATTOP_HANDLE_VALUE_NOTIFICATION
+0x1D ATTOP_HANDLE_VALUE_INDICATION
+0x1E ATTOP_HANDLE_VALUE_CONFIRMATION
+0x52 ATTOP_WRITE_COMMAND
+0xD2 ATTOP_SIGNED_WRITE_COMMAND
+0x1f ATTOP_CONTINUE
+0x9e EMPTY_LE_DATA_PRE
+0x9f EMPTY_LE_DATA
+)
+
+
+(
+0x01 ATT_ERR_INVALID_HANDLE
+0x02 ATT_ERR_READ_NOT_PERMITTED
+0x03 ATT_ERR_WRITE_NOT_PERMITTED
+0x04 ATT_ERR_INVALID_PDU
+0x05 ATT_ERR_INSUFFICIENT_AUTHENTICATION
+0x06 ATT_ERR_REQUEST_NOT_SUPPORTED
+0x07 ATT_ERR_INVALID_OFFSET
+0x08 ATT_ERR_INSUFFICIENT_AUTHORIZATION
+0x09 ATT_ERR_PREPARE_QUEUE_FULL
+0x0A ATT_ERR_ATTRIBUTE_NOT_FOUND
+0x0B ATT_ERR_ATTRIBUTE_NOT_LONG
+0x0C ATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE
+0x0D ATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH
+0x0E ATT_ERR_UNLIKELY_ERROR
+0x0F ATT_ERR_INSUFFICIENT_ENCRYPTION
+0x10 ATT_ERR_UNSUPPORTED_GROUP_TYPE
+0x11 ATT_ERR_INSUFFICIENT_RESOURCES
+)
+
+
+(
+0X2900 CHARACTERTIC_EXTENDED_PROPERTIES
+0X2901 CHARACTERTIC_USER_DESCRIPTION
+0X2902 CLIENT_CHARACTERTIC_CONFIGURATION
+0X2903 SERVER_CHARACTERTIC_CONFIGURATION
+0X2904 CHARACTERTIC_PRESENTATION_FORMAT
+0X2905 CHARACTERTIC_AGGREGATE
+0X2906 VALID_RANGE
+0X2907 EXTERNAL_REPORT_REFERENCE
+0X2908 REPORT_REFERENCE
+0X290B ENVIR_SENSING_CONFIGURATION
+0X290C ENVIR_SENSING_MEASUREMENT
+0X290D ENVIR_SENSING_TRIGGER_SETTING
+)
+
+
+
+(
+0x1800 UUID_SERVICE_GENERIC_ACC
+0x1801 UUID_SERVICE_GENERIC_ATT
+0x180a UUID_SERVICE_DEVICE_INFO
+0x180f UUID_SERVICE_BATTERY
+0x1812 UUID_SERVICE_HIDS
+0x2800 UUID_GATT_PRIMARY_SERVICE
+0x2801 UUID_GATT_SECONDARY_SERVICE
+0X2802 UUID_GATT_INCLUDE
+0X2803 UUID_GATT_CHARACTERISTIC
+0X2A00 UUID_CHRCTR_DEVICE_NAME
+0X2A19 UUID_CHRCTR_BATTERY_LEVEL
+0X2A22 UUID_CHRCTR_KEYBOARD_INPUT
+0X2A23 UUID_CHRCTR_SYSTEM_ID 
+0X2A25 UUID_CHRCTR_SERIAL_NUMBER
+0X2A26 UUID_CHRCTR_FIRMWARE
+0X2A32 UUID_CHRCTR_KEYBOARD_OUTPUT
+0X2A33 UUID_CHRCTR_MOUSE_INPUT
+0X2A4A UUID_CHRCTR_HID_INFO
+0X2A4B UUID_CHRCTR_REPORT_MAP
+0X2A4C UUID_CHRCTR_HID_CTRL_POINT
+0X2A4D UUID_CHRCTR_REPORT
+0X2A4E UUID_CHRCTR_PROTOCOL_MODE
+0X2A50 UUID_CHRCTR_PNP_ID
+)
+
+
+(
+23 ATT_DEFAULT_MTU 
+)
+
+
+
+
+
+
+(
+0x12 L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST
+0x13 L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE
+)
+
+(
+0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
+)
+
+
+
+
+
+(
+0x00 LE_PAIRING_MODE_NONE
+0x01 LE_PAIRING_MODE_LAGACY_JUSTWORK
+0x02 LE_PAIRING_MODE_LAGACY_PASSKEY
+0x04 LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT
+0x81 LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82 LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0x83 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+0x84 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT
+
+7 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+)
+
+
+(
+0 FLAG_IOCAP_DISPLAYONLY
+1 FLAG_IOCAP_DISPLAYYESNO
+2 FLAG_IOCAP_KEYBOARDONLY
+3 FLAG_IOCAP_NOINPUTNOOUTPUT
+4 FLAG_IOCAP_KEYBOARDDISPLAY
+
+0x00 FLAG_OOB_DATA_FLAG_NO
+)
+
+(
+0x00 FLAG_LE_NO_BONDING_NO_MITM
+0x01 FLAG_LE_BONDING_NO_MITM
+0x04 FLAG_LE_NO_BONDING_MITM
+0x05 FLAG_LE_BONDING_MITM
+0x09 FLAG_LE_BONDING_NO_MITM_SECURE
+0x0D FLAG_LE_BONDING_MITM_SECURE
+
+2 LE_AUTH_MITM_BIT
+3 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
+)
+
+//mem_le_pairing_state
+(
+0 FLAG_LE_PAIRING_NULL
+1 FLAG_LE_PAIRING_START
+2 FLAG_LE_PAIRING_SEND_RECURITY_REQ
+3 FLAG_LE_PAIRING_RCV_PAIRING_REQ
+4 FLAG_LE_PAIRING_WAIT_STK_GENERATION
+5 FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM
+6 FLAG_LE_PAIRING_SEND_PAIRING_CONFIRM
+7 FLAG_LE_PAIRING_RECEIVE_PAIRING_RANDOM
+8 FLAG_LE_PAIRING_SEND_PAIRING_RANDOM
+9 FLAG_LE_PAIRING_AFTER_AUTH
+10 FLAG_LE_PAIRING_SEND_START_ENC_RSP
+11 FLAG_LE_PARING_SEND_ENC_INFORMATION
+12 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
+13 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
+0xff FLAG_LE_PAIRING_END
+)
+
+
+(
+0x01 SMP_PAIRING_REQUEST
+0x02 SMP_PAIRING_RESPONSE
+0x03 SMP_PAIRING_CONFIRM
+0x04 SMP_PAIRING_RANDOM
+0x05 SMP_PAIRING_FAILED
+0x06 SMP_ENCRYPTION_INFORMATION
+0x07 SMP_MASTER_IDENTIFICATION
+0x08 SMP_IDENTITY_INFORMATION
+0x09 SMP_IDENTITY_ADDRESS_INFORMATION
+0x0A SMP_SIGNING_INFORMATION
+0x0B SMP_SECURITY_REQUEST
+0x0c SMP_PAIRING_PUBLIC_KEY
+0x0d SMP_PAIRING_DHKEY_CHECK
+)
+
+(// pairing failed reason
+0x00 PAIRING_FAILED_RESERVED
+0X01 PAIRING_FAILED_PASSKEY_ENTRY_FAILED
+0X02 PAIRING_FAILED_OOB_NOT_AVAILABLE
+0X03 PAIRING_FAILED_AUTHENTICATION_REQUIRE
+0X04 PAIRING_FAILED_CONFIRM_VALUE_FAILED
+0X05 PAIRING_FAILED_PAIRING_NOT_SUPPORTED
+0X06 PAIRING_FAILED_ENCRYPTION_KEY_SIZE
+0X07 PAIRING_FAILED_COMMAND_NOT_SUPPORTED
+0X08 PAIRING_FAILED_UNSPECIFIED_REASON
+0X09 PAIRING_FAILED_REPEATED_ATTEMPTS
+0X0A PAIRING_FAILED_INVALID_PARAMETERS
+0X0B PAIRING_FAILED_DHKEY_CHECK_FAILED
+0X0C PAIRING_FAILED_NUMERIC_COMPARISON_FAILED
+0X0D PAIRING_FAILED_BR_EDR_PAIRING_IN_PROGRESS
+0X0E PAIRING_FAILED_KEY_DERIVATION_GENERATION_NOT_ALLOWED
+)
+
+
+(
+0x00 LE_SC_STAT_NULL
+0x01 LE_SC_STAT_RECEIVE_PUBLIC_KEY
+0x02 LE_SC_STAT_WAIT_SEND_PUBLIC_KEY
+0x03 LE_SC_STAT_SEND_PUBLIC_KEY
+0x04 LE_SC_STAT_RECEIVE_RANDOM
+0x05 LE_SC_STAT_SEND_RANDOM
+0x06 LE_SC_STAT_RECEIVE_DHKEY
+0x07 LE_SC_STAT_WAIT_CONFIRM_GKEY
+0x08 LE_SC_STAT_PASSKEY_WAIT_CONFIRM
+)
+
+
+(
+0 FLAG_LE_SC_CONFRIM_NULL
+1 FLAG_LE_SC_CONFRIM_GKEY_OK
+)
+
+
+
+
+
+(
+0x00 LL_CONNECTION_UPDATE_IND
+0x01 LL_CHANNEL_MAP_IND
+0x02 LL_TERMINATE_IND
+0x03 LL_ENC_REQ
+0x04 LL_ENC_RSP
+0x05 LL_START_ENC_REQ
+0x06 LL_START_ENC_RSP
+0x07 LL_UNKNOWN_RSP
+0x08 LL_FEATURE_REQ
+0x09 LL_FEATURE_RSP
+0x0A LL_PAUSE_ENC_REQ
+0x0B LL_PAUSE_ENC_RSP
+0x0C LL_VERSION_IND
+0x0D LL_REJECT_IND
+0x0E LL_SLAVE_FEATURE_REQ
+0x0F LL_CONNECTION_PARAM_REQ
+0x10 LL_CONNECTION_PARAM_RSP
+0x11 LL_REJECT_IND_EXT
+0x12 LL_PING_REQ
+0x13 LL_PING_RSP
+0x14 LL_LENGTH_REQ
+0x15 LL_LENGTH_RSP
+0x16 LL_PHY_REQ
+0x17 LL_PHY_RSP
+0x18 LL_PHY_UPDATE_IND
+0x19 LL_MIN_USED_CHANNELS_IND
+0x1A LL_CTE_REQ
+0x1B LL_CTE_RSP
+0x1C LL_PERIODIC_SYNC_IND
+0x1D LL_CLOCK_ACCURACY_REQ
+0x1E LL_CLOCK_ACCURACY_RSP
+0x1F LL_CIS_REQ
+0x20 LL_CIS_RSP
+0x21 LL_CIS_IND
+0x22 LL_CIS_TERMINATE_IND
+0x23 LL_POWER_CONTROL_REQ
+0x24 LL_POWER_CONTROL_RSP
+0x25 LL_POWER_CHANGE_IND
+)
+
+
+
+(//bit map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0 BIT_LL_FEATURE_LE_ENCRYPTION
+1 BIT_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+2 BIT_LL_FEATURE_EXTENDED_REJECT_INDICATION
+3 BIT_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+4 BIT_LL_FEATURE_LE_PING
+5 BIT_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+6 BIT_LL_FEATURE_LL_PRIVACY
+7 BIT_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+8 BIT_LL_FEATURE_LE_2M_PHY
+9 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+10 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+11 BIT_LL_FEATURE_LE_CODED_PHY
+12 BIT_LL_FEATURE_LE_EXTENDED_ADVERTISING
+13 BIT_LL_FEATURE_LE_PERIODIC_ADVERTISING
+14 BIT_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+15 BIT_LL_FEATURE_LE_POWER_CLASS_1
+16 BIT_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+(//function map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0x1 FUN_LL_FEATURE_LE_ENCRYPTION
+0x2 FUN_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+0x4 FUN_LL_FEATURE_EXTENDED_REJECT_INDICATION
+0x8 FUN_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+0x10 FUN_LL_FEATURE_LE_PING
+0x20 FUN_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+0x40 FUN_LL_FEATURE_LL_PRIVACY
+0x80 FUN_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+0x100 FUN_LL_FEATURE_LE_2M_PHY
+0x200 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+0x400 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+0x800 FUN_LL_FEATURE_LE_CODED_PHY
+0x1000 FUN_LL_FEATURE_LE_EXTENDED_ADVERTISING
+0x2000 FUN_LL_FEATURE_LE_PERIODIC_ADVERTISING
+0x4000 FUN_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+0x8000 FUN_LL_FEATURE_LE_POWER_CLASS_1
+0x10000 FUN_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+
+(//bit of mem_le_tx_phys and mem_le_rx_phys
+0x00 BIT_LE_1M_PHY
+0x01 BIT_LE_2M_PHY
+0x02 BIT_LE_CODED_PHY
+
+0x02 BIT_LE_CODED_PHY_S2
+0x07 BIT_LE_CODED_PHY_S8
+)
+
+(//map of mem_le_tx_phys and mem_le_rx_phys
+0x01 FUN_TX_LL_1M_PHY
+0x02 FUN_TX_LL_2M_PHY
+0x04 FUN_TX_LL_CODED_PHY
+
+0x01 FUN_RX_LL_1M_PHY
+0x02 FUN_RX_LL_2M_PHY
+0x04 FUN_RX_LL_CODED_PHY
+)
+
+
+
+
+
+
+
+(//mem_24g_data_type
+1 TYPE_MS
+2 TYPE_KB
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+
+
+(
+0 ERR_NULL
+1 ERR_SYNC_TO
+2 ERR_HEC
+3 ERR_LR_LEN
+4 ERR_TYPE
+5 ERR_LEN_OVER
+6 ERR_CRC
+)
+
+
+
+
+
+
+
+
+(//mem_24g_pair_sm
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+4 STATE_24G_PAIRING_4
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0X14 STATE_24G_PAIRING_4_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+
+(
+0x01 DATATYPE_DEVICE1	//mouse
+0x02 DATATYPE_DEVICE2	//keyboard
+0xaa DATATYPE_BIND		//bind step 1
+0x55 DATATYPE_CONFIG	//bind step 2
+0x22 DATATYPE_OK		//bind step 3
+0xff DATATYPE_ATTEMP	//reconn
+)
+
+(
+5 BIND_MODE_CONTINUE
+)
+
+
+
+
+(
+0 bit_ack_24g
+)
+
+
+
+
+(//mem_24g_reconn_type
+0 DEFAULT_24G_DEVICE
+1 FAST_CONN_AND_RECEIVER
+2 FAST_CONN_AND_3_0_ADDR
+3 RECEIVER_AND_3_0_ADDR
+4 PAIR_AND_3_0_ADDR
+)
+
+
+
+
+
+
+
+
+
+(
+0x50 RSSI_THRESH_NOISE
+)
+
+
+
+
+
+
+
+(
+1 NO_ACK_24G
+0 WITH_ACK_24G
+)
+
+(//mem_24g_conn_sm
+0 STATE_24G_STOP
+0 STATE_24G_START
+1 STATE_24G_PAIR
+2 STATE_24G_RECONN
+)
+
+(//mem_24g_transmit_by_interrupt
+1 G24_TX_TIMER_INT_ENABLE
+0 G24_TX_TIMER_INT_DISABLE
+)
+
+
+(
+1 OFFSET_DATA_TYPE
+2 OFFSET_LR_DATA_TYPE
+)
+
+(
+0x017700 G24_LONG_SLEEP_STEP1	//8ms
+0x36ee80 G24_LONG_SLEEP_STEP2	//300ms
+0x124f80 G24_LONG_SLEEP_STEP3	//100ms
+63500 G24_8MS_INTERVAL_PARAM		//8ms
+12210 G24_4MS_INTERVAL_PARAM
+)
+
+
+
+
+
+
+(
+50 POWER_CTRL_DECRS_THRESHOLD
+)
+
+
+
+
+
+(//status codes
+0 STATUS_CODE_SUCCESS
+)
+
+
+// ali vendor message
+(
+0xD0 VENDOR_MESSAGE_ATTR_GET
+0xD1 VENDOR_MESSAGE_ATTR_SET
+0xD2 VENDOR_MESSAGE_ATTR_SET_UNACKNOWLEDGED
+0xD3 VENDOR_MESSAGE_ATTR_STATUS
+0xD4 VENDOR_MESSAGE_ATTR_INDICATION
+0xD5 VENDOR_MESSAGE_ATTR_CONFIRMATION
+0xCF VENDOR_MESSAGE_TRANSPARENT_MSG
+)
+
+
+
+(//configuration message and health message opcode
+0x80 MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER
+
+0x00 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_ADD
+0x01 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_UPDATE
+0x02 MESH_MESSAGE_OPCODE_CONFIG_COMPOSITION_DATA_STATUS
+0x03 MESH_MESSAGE_OPCODE_CONFIG_CONFIG_MODEL_PUBLICATION_SET
+0x04 MESH_MESSAGE_OPCODE_HEALTH_CURRENT_STATUS
+0x05 MESH_MESSAGE_OPCODE_HEALTH_FAULT_STATUS
+0x06 MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_PUBLICATION_STATUS
+0x00 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_DELETE_NO_HEAD
+0x01 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_GET_NO_HEAD
+0x02 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_LIST_NO_HEAD
+0x03 MESH_MESSAGE_OPCODE_CONFIG_APPKEY_STATUS_NO_HEAD
+0x04 MESH_MESSAGE_OPCODE_HEALTH_ATTENTION_GET_NO_HEAD
+0x05 MESH_MESSAGE_OPCODE_HEALTH_ATTENTION_SET_NO_HEAD
+0x06 MESH_MESSAGE_OPCODE_HEALTH_ATTENTION_SET_UNACKNOWLEDGED_NO_HEAD
+0x07 MESH_MESSAGE_OPCODE_HEALTH_ATTENTION_STATUS_NO_HEAD
+0x08 MESH_MESSAGE_OPCODE_CONFIG_COMPOSITION_DATA_GET_NO_HEAD
+0x09 MESH_MESSAGE_OPCODE_CONFIG_BEACON_GET_NO_HEAD
+0x0A MESH_MESSAGE_OPCODE_CONFIG_BEACON_SET_NO_HEAD
+0x0B MESH_MESSAGE_OPCODE_CONFIG_BEACON_STATUS_NO_HEAD
+0x0C MESH_MESSAGE_OPCODE_CONFIG_DEFAULT_TTL_GET_NO_HEAD
+0x0D MESH_MESSAGE_OPCODE_CONFIG_DEFAULT_TTL_SET_NO_HEAD
+0x0E MESH_MESSAGE_OPCODE_CONFIG_DEFAULT_TTL_STATUS_NO_HEAD
+0x0F MESH_MESSAGE_OPCODE_CONFIG_FRIEND_GET_NO_HEAD
+0x10 MESH_MESSAGE_OPCODE_CONFIG_FRIEND_SET_NO_HEAD
+0x11 MESH_MESSAGE_OPCODE_CONFIG_FRIEND_STATUS_NO_HEAD
+0x12 MESH_MESSAGE_OPCODE_CONFIG_GATT_PROXY_GET_NO_HEAD
+0x13 MESH_MESSAGE_OPCODE_CONFIG_GATT_PROXY_SET_NO_HEAD
+0x14 MESH_MESSAGE_OPCODE_CONFIG_GATT_PROXY_STATUS_NO_HEAD
+0x15 MESH_MESSAGE_OPCODE_CONFIG_KEY_REFRESH_PHASE_GET_NO_HEAD
+0x16 MESH_MESSAGE_OPCODE_CONFIG_KEY_REFRESH_PHASE_SET_NO_HEAD
+0x17 MESH_MESSAGE_OPCODE_CONFIG_KEY_REFRESH_PHASE_STATUS_NO_HEAD
+0x18 MESH_MESSAGE_OPCODE_CONFIG_MODEL_PUBLICATION_GET_NO_HEAD
+0x19 MESH_MESSAGE_OPCODE_CONFIG_MODEL_PUBLICATION_STATUS_NO_HEAD
+0x1A MESH_MESSAGE_OPCODE_CONFIG_MODEL_PUBLICATION_VIRTUAL_ADDRESS_SET_NO_HEAD
+0x1B MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_NO_HEAD
+0x1C MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_DELETE_NO_HEAD
+0x1D MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_DELETE_ALL_NO_HEAD
+0x1E MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_OVERWRITE_NO_HEAD
+0x1F MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_STATUS_NO_HEAD
+0x20 MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_ADD_NO_HEAD
+0x21 MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_DELETE_NO_HEAD
+0x22 MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_OVERWRITE_NO_HEAD
+0x23 MESH_MESSAGE_OPCODE_CONFIG_NETWORK_TRANSMIT_GET_NO_HEAD
+0x24 MESH_MESSAGE_OPCODE_CONFIG_NETWORK_TRANSMIT_SET_NO_HEAD
+0x25 MESH_MESSAGE_OPCODE_CONFIG_NETWORK_TRANSMIT_STATUS_NO_HEAD
+0x26 MESH_MESSAGE_OPCODE_CONFIG_RELAY_GET_NO_HEAD
+0x27 MESH_MESSAGE_OPCODE_CONFIG_RELAY_SET_NO_HEAD
+0x28 MESH_MESSAGE_OPCODE_CONFIG_RELAY_STATUS_NO_HEAD
+0x29 MESH_MESSAGE_OPCODE_CONFIG_SIG_MODEL_SUBSCRIPTION_GET_NO_HEAD
+0x2A MESH_MESSAGE_OPCODE_CONFIG_SIG_MODEL_SUBSCRIPTION_LIST_NO_HEAD
+0x2B MESH_MESSAGE_OPCODE_CONFIG_VENDOR_MODEL_SUBSCRIPTION_GET_NO_HEAD
+0x2C MESH_MESSAGE_OPCODE_CONFIG_VENDOR_MODEL_SUBSCRIPTION_LIST_NO_HEAD
+0x2D MESH_MESSAGE_OPCODE_CONFIG_LOW_POWER_NODE_POLLTIMEOUT_GET_NO_HEAD
+0x2E MESH_MESSAGE_OPCODE_CONFIG_LOW_POWER_NODE_POLLTIMEOUT_STATUS_NO_HEAD
+0x2F MESH_MESSAGE_OPCODE_HEALTH_FAULT_CLEAR_NO_HEAD
+0x30 MESH_MESSAGE_OPCODE_HEALTH_FAULT_CLEAR_UNACKNOWLEDGED_NO_HEAD
+0x31 MESH_MESSAGE_OPCODE_HEALTH_FAULT_GET_NO_HEAD
+0x32 MESH_MESSAGE_OPCODE_HEALTH_FAULT_TEST_NO_HEAD
+0x33 MESH_MESSAGE_OPCODE_HEALTH_FAULT_TEST_UNACKNOWLEDGED_NO_HEAD
+0x34 MESH_MESSAGE_OPCODE_HEALTH_PERIOD_GET_NO_HEAD
+0x35 MESH_MESSAGE_OPCODE_HEALTH_PERIOD_SET_NO_HEAD
+0x36 MESH_MESSAGE_OPCODE_HEALTH_PERIOD_SET_UNACKNOWLEDGED_NO_HEAD
+0x37 MESH_MESSAGE_OPCODE_HEALTH_PERIOD_STATUS_NO_HEAD
+0x38 MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_PUBLICATION_GET_NO_HEAD
+0x39 MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_PUBLICATION_SET_NO_HEAD
+0x3A MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_SUBSCRIPTION_GET_NO_HEAD
+0x3B MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_SUBSCRIPTION_SET_NO_HEAD
+0x3C MESH_MESSAGE_OPCODE_CONFIG_HEARTBEAT_SUBSCRIPTION_STATUS_NO_HEAD
+0x3D MESH_MESSAGE_OPCODE_CONFIG_MODEL_APP_BIND_NO_HEAD
+0x3E MESH_MESSAGE_OPCODE_CONFIG_MODEL_APP_STATUS_NO_HEAD
+0x3F MESH_MESSAGE_OPCODE_CONFIG_MODEL_APP_UNBIND_NO_HEAD
+0x40 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_ADD_NO_HEAD
+0x41 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_DELETE_NO_HEAD
+0x42 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_GET_NO_HEAD
+0x43 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_LIST_NO_HEAD
+0x44 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_STATUS_NO_HEAD
+0x45 MESH_MESSAGE_OPCODE_CONFIG_NETKEY_UPDATE_NO_HEAD
+0x46 MESH_MESSAGE_OPCODE_CONFIG_NODE_IDENTITY_GET_NO_HEAD
+0x47 MESH_MESSAGE_OPCODE_CONFIG_NODE_IDENTITY_SET_NO_HEAD
+0x48 MESH_MESSAGE_OPCODE_CONFIG_NODE_IDENTITY_STATUS_NO_HEAD
+0x49 MESH_MESSAGE_OPCODE_CONFIG_NODE_RESET_NO_HEAD
+0x4A MESH_MESSAGE_OPCODE_CONFIG_NODE_RESET_STATUS_NO_HEAD
+0x4B MESH_MESSAGE_OPCODE_CONFIG_SIG_MODEL_APP_GET_NO_HEAD
+0x4C MESH_MESSAGE_OPCODE_CONFIG_SIG_MODEL_APP_LIST_NO_HEAD
+0x4D MESH_MESSAGE_OPCODE_CONFIG_VENDOR_MODEL_APP_GET_NO_HEAD
+0x4E MESH_MESSAGE_OPCODE_CONFIG_VENDOR_MODEL_APP_LIST_NO_HEAD
+0xF2 MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_OW_NO_HEAD   //overwrite
+0xF3 MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_OW_STATUS
+)
+
+(//Modle message opcode
+0x82 MESH_MODULE_MESSAGE_OPCODE_HEADER
+
+0x01 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_GET_NO_HEAD
+0x02 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_SET_NO_HEAD
+0x03 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_SET_UNACKNOWLEDGED_NO_HEAD
+0x04 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_STATUS_NO_HEAD
+0x05 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LEVEL_GET_NO_HEAD
+0x06 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LEVEL_SET_NO_HEAD
+0x07 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LEVEL_SET_UNACKNOWLEDGED_NO_HEAD
+0x08 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LEVEL_STATUS_NO_HEAD
+0x09 MESH_MODULE_MESSAGE_OPCODE_GENERIC_DELTA_SET_NO_HEAD
+0x0A MESH_MODULE_MESSAGE_OPCODE_GENERIC_DELTA_SET_UNACKNOWLEDGED_NO_HEAD
+0x0B MESH_MODULE_MESSAGE_OPCODE_GENERIC_MOVE_SET_NO_HEAD
+0x0C MESH_MODULE_MESSAGE_OPCODE_GENERIC_MOVE_SET_UNACKNOWLEDGED_NO_HEAD
+0x0D MESH_MODULE_MESSAGE_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_GET_NO_HEAD
+0x0E MESH_MODULE_MESSAGE_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_SET_NO_HEAD
+0x0F MESH_MODULE_MESSAGE_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_SET_UNACKNOWLEDGED_NO_HEAD
+0x10 MESH_MODULE_MESSAGE_OPCODE_GENERIC_DEFAULT_TRANSITION_TIME_STATUS_NO_HEAD
+0x11 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONPOWERUP_GET_NO_HEAD
+0x12 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONPOWERUP_STATUS_NO_HEAD
+0x13 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONPOWERUP_SET_NO_HEAD
+0x14 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONPOWERUP_SET_UNACKNOWLEDGED_NO_HEAD
+0x15 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LEVEL_GET_NO_HEAD
+0x16 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LEVEL_SET_NO_HEAD
+0x17 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LEVEL_SET_UNACKNOWLEDGED_NO_HEAD
+0x18 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LEVEL_STATUS_NO_HEAD
+0x19 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LAST_GET_NO_HEAD
+0x1A MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_LAST_STATUS_NO_HEAD
+0x1B MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_DEFAULT_GET_NO_HEAD
+0x1C MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_DEFAULT_STATUS_NO_HEAD
+0x1D MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_RANGE_GET_NO_HEAD
+0x1E MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_RANGE_STATUS_NO_HEAD
+0x1F MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_DEFAULT_SET_NO_HEAD
+0x20 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_DEFAULT_SET_UNACKNOWLEDGED_NO_HEAD
+0x21 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_RANGE_SET_NO_HEAD
+0x22 MESH_MODULE_MESSAGE_OPCODE_GENERIC_POWER_RANGE_SET_UNACKNOWLEDGED_NO_HEAD
+0x23 MESH_MODULE_MESSAGE_OPCODE_GENERIC_BATTERY_GET_NO_HEAD
+0x24 MESH_MODULE_MESSAGE_OPCODE_GENERIC_BATTERY_STATUS_NO_HEAD
+0x25 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_GLOBAL_GET_NO_HEAD
+0x40 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_GLOBAL_STATUS
+0x26 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_LOCAL_GET_NO_HEAD
+0x27 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_LOCAL_STATUS_NO_HEAD
+0x41 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_GLOBAL_SET
+0x42 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_GLOBAL_SET_UNACKNOWLEDGED
+0x28 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_LOCAL_SET_NO_HEAD
+0x29 MESH_MODULE_MESSAGE_OPCODE_GENERIC_LOCATION_LOCAL_SET_UNACKNOWLEDGED_NO_HEAD
+0x2A MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTIES_GET_NO_HEAD
+0x43 MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTIES_STATUS
+0x2B MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTY_GET_NO_HEAD
+0x44 MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTY_SET
+0x45 MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTY_SET_UNACKNOWLEDGED
+0x46 MESH_MODULE_MESSAGE_OPCODE_GENERIC_MANUFACTURER_PROPERTY_STATUS
+0x2C MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTIES_GET_NO_HEAD
+0x47 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTIES_STATUS
+0x2D MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTY_GET_NO_HEAD
+0x48 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTY_SET
+0x49 MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTY_SET_UNACKNOWLEDGED
+0x4A MESH_MODULE_MESSAGE_OPCODE_GENERIC_ADMIN_PROPERTY_STATUS
+0x2E MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTIES_GET_NO_HEAD
+0x4B MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTIES_STATUS
+0x2F MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTY_GET_NO_HEAD
+0x4C MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTY_SET
+0x4D MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTY_SET_UNACKNOWLEDGED
+0x4E MESH_MODULE_MESSAGE_OPCODE_GENERIC_USER_PROPERTY_STATUS
+0x4F MESH_MODULE_MESSAGE_OPCODE_GENERIC_CLIENT_PROPERTIES_GET
+0x50 MESH_MODULE_MESSAGE_OPCODE_GENERIC_CLIENT_PROPERTIES_STATUS
+0x30 MESH_MODULE_MESSAGE_OPCODE_SENSOR_DESCRIPTOR_GET_NO_HEAD
+0x51 MESH_MODULE_MESSAGE_OPCODE_SENSOR_DESCRIPTOR_STATUS
+0x31 MESH_MODULE_MESSAGE_OPCODE_SENSOR_GET_NO_HEAD
+0x52 MESH_MODULE_MESSAGE_OPCODE_SENSOR_STATUS
+0x32 MESH_MODULE_MESSAGE_OPCODE_SENSOR_COLUMN_GET_NO_HEAD
+0x53 MESH_MODULE_MESSAGE_OPCODE_SENSOR_COLUMN_STATUS
+0x33 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SERIES_GET_NO_HEAD
+0x54 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SERIES_STATUS
+0x34 MESH_MODULE_MESSAGE_OPCODE_SENSOR_CADENCE_GET_NO_HEAD
+0x55 MESH_MODULE_MESSAGE_OPCODE_SENSOR_CADENCE_SET
+0x56 MESH_MODULE_MESSAGE_OPCODE_SENSOR_CADENCE_SET_UNACKNOWLEDGED
+0x57 MESH_MODULE_MESSAGE_OPCODE_SENSOR_CADENCE_STATUS
+0x35 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTINGS_GET_NO_HEAD
+0x58 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTINGS_STATUS
+0x36 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTING_GET_NO_HEAD
+0x59 MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTING_SET
+0x5A MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTING_SET_UNACKNOWLEDGED
+0x5B MESH_MODULE_MESSAGE_OPCODE_SENSOR_SETTING_STATUS
+0x37 MESH_MODULE_MESSAGE_OPCODE_TIME_GET_NO_HEAD
+0x5C MESH_MODULE_MESSAGE_OPCODE_TIME_SET
+0x5D MESH_MODULE_MESSAGE_OPCODE_TIME_STATUS
+0x38 MESH_MODULE_MESSAGE_OPCODE_TIME_ROLE_GET_NO_HEAD
+0x39 MESH_MODULE_MESSAGE_OPCODE_TIME_ROLE_SET_NO_HEAD
+0x3A MESH_MODULE_MESSAGE_OPCODE_TIME_ROLE_STATUS_NO_HEAD
+0x3B MESH_MODULE_MESSAGE_OPCODE_TIME_ZONE_GET_NO_HEAD
+0x3C MESH_MODULE_MESSAGE_OPCODE_TIME_ZONE_SET_NO_HEAD
+0x3D MESH_MODULE_MESSAGE_OPCODE_TIME_ZONE_STATUS_NO_HEAD
+0x3E MESH_MODULE_MESSAGE_OPCODE_TAI_UTC_DELTA_GET_NO_HEAD
+0x3F MESH_MODULE_MESSAGE_OPCODE_TAI_UTC_DELTA_SET_NO_HEAD
+0x40 MESH_MODULE_MESSAGE_OPCODE_TAI_UTC_DELTA_STATUS_NO_HEAD
+0x41 MESH_MODULE_MESSAGE_OPCODE_SCENE_GET_NO_HEAD
+0x42 MESH_MODULE_MESSAGE_OPCODE_SCENE_RECALL_NO_HEAD
+0x43 MESH_MODULE_MESSAGE_OPCODE_SCENE_RECALL_UNACKNOWLEDGED_NO_HEAD
+0x5E MESH_MODULE_MESSAGE_OPCODE_SCENE_STATUS
+0x44 MESH_MODULE_MESSAGE_OPCODE_SCENE_REGISTER_GET_NO_HEAD
+0x45 MESH_MODULE_MESSAGE_OPCODE_SCENE_REGISTER_STATUS_NO_HEAD
+0x46 MESH_MODULE_MESSAGE_OPCODE_SCENE_STORE_NO_HEAD
+0x47 MESH_MODULE_MESSAGE_OPCODE_SCENE_STORE_UNACKNOWLEDGED_NO_HEAD
+0x9E MESH_MODULE_MESSAGE_OPCODE_SCENE_DELETE_NO_HEAD
+0x9F MESH_MODULE_MESSAGE_OPCODE_SCENE_DELETE_UNACKNOWLEDGED_NO_HEAD
+0x48 MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_ACTION_GET_NO_HEAD
+0x5F MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_ACTION_STATUS
+0x49 MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_GET_NO_HEAD
+0x4A MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_STATUS_NO_HEAD
+0x60 MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_ACTION_SET
+0x61 MESH_MODULE_MESSAGE_OPCODE_SCHEDULER_ACTION_SET_UNACKNOWLEDGED
+0x4B MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LIGHT_LIGHTNESS_GET_NO_HEAD
+0x4C MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_SET_NO_HEAD
+0x4D MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_SET_UNACKNOWLEDGED_NO_HEAD
+0x4E MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_STATUS_NO_HEAD
+0x4F MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LINEAR_GET_NO_HEAD
+0x50 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LINEAR_SET_NO_HEAD
+0x51 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LINEAR_SET_UNACKNOWLEDGED_NO_HEAD
+0x52 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LINEAR_STATUS_NO_HEAD
+0x53 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LAST_GET_NO_HEAD
+0x54 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_LAST_STATUS_NO_HEAD
+0x55 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_DEFAULT_GET_NO_HEAD
+0x56 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_DEFAULT_STATUS_NO_HEAD
+0x57 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_RANGE_GET_NO_HEAD
+0x58 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_RANGE_STATUS_NO_HEAD
+0x59 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_DEFAULT_SET_NO_HEAD
+0x5A MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_DEFAULT_SET_UNACKNOWLEDGED_NO_HEAD
+0x5B MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_RANGE_SET_NO_HEAD
+0x5C MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_RANGE_SET_UNACKNOWLEDGED_NO_HEAD
+0x5D MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_GET_NO_HEAD
+0x5E MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_SET_NO_HEAD
+0x5F MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_SET_UNACKNOWLEDGED_NO_HEAD
+0x60 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_STATUS_NO_HEAD
+0x61 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_GET_NO_HEAD
+0x62 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_RANGE_GET_NO_HEAD
+0x63 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_RANGE_STATUS_NO_HEAD
+0x64 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_SET_NO_HEAD
+0x65 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_SET_UNACKNOWLEDGED_NO_HEAD
+0x66 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_STATUS_NO_HEAD
+0x67 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_DEFAULT_GET_NO_HEAD
+0x68 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_DEFAULT_STATUS_NO_HEAD
+0x69 MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_DEFAULT_SET_NO_HEAD
+0x6A MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_DEFAULT_SET_UNACKNOWLEDGED_NO_HEAD
+0x6B MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_RANGE_SET_NO_HEAD
+0x6C MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_TEMPERATURE_RANGE_SET_UNACKNOWLEDGED_NO_HEAD
+0x6D MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_GET_NO_HEAD
+0x6E MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_HUE_GET_NO_HEAD
+0x6F MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_HUE_SET_NO_HEAD
+0x70 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_HUE_SET_UNACKNOWLEDGED_NO_HEAD
+0x71 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_HUE_STATUS_NO_HEAD
+0x72 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SATURATION_GET_NO_HEAD
+0x73 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SATURATION_SET_NO_HEAD
+0x74 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SATURATION_SET_UNACKNOWLEDGED_NO_HEAD
+0x75 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SATURATION_STATUS_NO_HEAD
+0x76 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SET_NO_HEAD
+0x77 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_SET_UNACKNOWLEDGED_NO_HEAD
+0x78 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_STATUS_NO_HEAD
+0x79 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_TARGET_GET_NO_HEAD
+0x7A MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_TARGET_STATUS_NO_HEAD
+0x7B MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_DEFAULT_GET_NO_HEAD
+0x7C MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_DEFAULT_STATUS_NO_HEAD
+0x7D MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_RANGE_GET_NO_HEAD
+0x7E MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_RANGE_STATUS_NO_HEAD
+0x7F MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_DEFAULT_SET_NO_HEAD
+0x80 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_DEFAULT_SET_UNACKNOWLEDGED_NO_HEAD
+0x81 MESH_MODULE_MESSAGE_OPCODE_LIGHT_HSL_RANGE_SET_NO_HEAD
+0x83 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_GET_NO_HEAD
+0x84 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_SET_NO_HEAD
+0x85 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_SET_UNACKNOWLEDGED_NO_HEAD
+0x86 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_STATUS_NO_HEAD
+0x87 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_TARGET_GET_NO_HEAD
+0x88 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_TARGET_STATUS_NO_HEAD
+0x89 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_DEFAULT_GET_NO_HEAD
+0x8A MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_DEFAULT_STATUS_NO_HEAD
+0x8B MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_RANGE_GET_NO_HEAD
+0x8C MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_RANGE_STATUS_NO_HEAD
+0x8D MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_DEFAULT_SET_NO_HEAD
+0x8E MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_DEFAULT_SET_UNACKNOWLEDGED_NO_HEAD
+0x8F MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_RANGE_SET_NO_HEAD
+0x90 MESH_MODULE_MESSAGE_OPCODE_LIGHT_XYL_RANGE_SET_UNACKNOWLEDGED_NO_HEAD
+0x91 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_MODE_GET_NO_HEAD
+0x92 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_MODE_SET_NO_HEAD
+0x93 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_MODE_SET_UNACKNOWLEDGED_NO_HEAD
+0x94 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_MODE_STATUS_NO_HEAD
+0x95 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_OM_GET_NO_HEAD
+0x96 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_OM_SET_NO_HEAD
+0x97 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_OM_SET_UNACKNOWLEDGED_NO_HEAD
+0x98 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_OM_STATUS_NO_HEAD
+0x99 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_LIGHT_ONOFF_GET_NO_HEAD
+0x9A MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_LIGHT_ONOFF_SET_NO_HEAD
+0x9B MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_LIGHT_ONOFF_SET_UNACKNOWLEDGED_NO_HEAD
+0x9C MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_LIGHT_ONOFF_STATUS_NO_HEAD
+0x9D MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_PROPERTY_GET_NO_HEAD
+0x62 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_PROPERTY_SET
+0x63 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_PROPERTY_SET_UNACKNOWLEDGED
+0x64 MESH_MODULE_MESSAGE_OPCODE_LIGHT_LC_PROPERTY_STATUS)
+
+// status code
+(
+0x00 MESH_SUCCESS
+0x01 MESH_INVALID_ADDRESS
+0x02 MESH_INVALID_MODEL
+0x03 MESH_INVALID_APPKEYINDEX
+0x04 MESH_INVALID_NETKEYINDEX
+0x05 MESH_INSUFFICIENT_RESOURCES
+0x06 MESH_KEYINDEX_ALREAD_STORED
+0x07 MESH_INVALID_PUBLISH_PARAMETERS
+0x08 MESH_NOT_A_SUBSCRIBE_MODEL
+0x09 MESH_STORAGE_FAILURE
+0x0a MESH_FEATURE_NOT_SUPPORTED
+0x0b MESH_CANNOT_UPDATE
+0x0c MESH_CANNOT_REMOVE
+0x0d MESH_CANNOT_BIND
+0x0e MESH_TEMPORARILY_UNABLE_TO_CHANGE_STATE
+0x0f MESH_CANNOT_SET
+0x10 MESH_UNSPECIFIED_ERROR
+0x11 MESH_INVALID_BINDING
+)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//amemalloc mem_mesh_receive_model_message_payload(
+//	5 mem_mesh_vendor_message_timer_header
+//	1 mem_mesh_vendor_timer_timing_index
+//	0 mem_mesh_vendor_timer_timing_index1
+//	4 mem_mesh_vendor_timer_timing_time
+//	2 mem_mesh_vendor_timer_timing_attr_type
+//	1 mem_mesh_vendor_timer_timing_attr_para
+//)
+
+//amemalloc mem_mesh_receive_model_message_payload(
+//	5 mem_mesh_vendor_message_timer_cyclic_header
+//	1 mem_mesh_vendor_timer_timing_index_cyclic
+//	2 mem_mesh_vendor_timer_timing_time_cyclic
+//	1 mem_mesh_vendor_timer_timing_weekdays_cyclic
+//	2 mem_mesh_vendor_timer_timing_attr_type_cyclic
+//	1 mem_mesh_vendor_timer_timing_attr_para_cyclic
+//	1 mem_mesh_vendor_timer_timing_cyclic_flag
+//)
+
+
+
+(
+0x00F0 VENDOR_MESSAGE_TMALL_DST
+)
+
+(// vendor model attribute
+0x0123 VENDOR_ATTR_COLOR_SERVER
+0x0100 VENDOR_ATTR_GENERIC_ONOFF_SERVER
+0x0121 VENDOR_ATTR_LIGHTNESS_LEVEL_SERVER
+0x0122 VENDOR_ATTR_COLOR_TEMPERATURE_SERVER
+0x0534 VENDOR_ATTR_MAIN_LIGHT_SERVER
+0x0533 VENDOR_ATTR_BACKGROUND_LIGHT_ONOFF_SERVER
+0xf004 VENDOR_ATTR_SCENE_SERVER
+)
+
+(//Timer opcode
+0x01A8 VENDOR_MESSAGE_OPCODE_COMPANY_ID
+//时间
+0xF01F VENDOR_MESSAGE_ATTR_TYPE_TIME
+//时区
+0xF01E VENDOR_MESSAGE_ATTR_TYPE_TIME_ZONE
+//对时
+0xF01D VENDOR_MESSAGE_ATTR_TYPE_ON_TIME
+//定时
+0xF010 VENDOR_MESSAGE_ATTR_TYPE_TIMING
+//周期定时
+0xF011 VENDOR_MESSAGE_ATTR_TYPE_CYCLE_TIMING
+//删除定时
+0xF012 VENDOR_MESSAGE_ATTR_TYPE_DELETE_TIMING
+
+//颜色
+0x0123 VENDOR_MESSAGE_ATTR_TYPE_COLOR
+//主灯
+0x0534 VENDOR_MESSAGE_ATTR_TYPE_MAIN_LIGHT
+//背光灯
+0x0533 VENDOR_MESSAGE_ATTR_TYPE_BACKGROUND_LIGHT
+)
+
+(//天猫event事件表
+//设备发生的事件，比如上电或者定时完成
+0xF009 VENDOR_ATTR_TYPE_EVENT_TRIGGER
+
+//天猫设备上电
+0x03 VENDOR_MESSAGE_EVENT_DEVICE_POWER_ON
+//天猫定时完成
+0x11 VENDOR_MESSAGE_EVENT_FINISH_TIMING
+)
+
+(
+0x80 VENDOR_MESSAGE_SEND_TID_MIN
+0xC0 VENDOR_MESSAGE_SEND_TID_MAX
+)
+
+(
+0x59 TIMER_CYCLICAL_FALG
+60 SECONDS_OF_MIN
+345600 SECONDS_OF_FOUR_DAYS
+604800 SECONDS_OF_WEEK
+86400 SECONDS_OF_DAY
+0x01e0 EIGHT_HOURS_TIME_ZONE_OFFSET
+
+)
+
+(
+0xF013 VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_SINGLE
+0xF014 VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_REPEAT
+0xF015 VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_CIRCULATION
+0xF016 VENDOR_MSEEAGE_ATTR_TYPE_TIMER_ENABLE
+0xF017 VENDOR_MESSAGE_ATTR_TYPE_TIMER_DELEATE
+0xF018 VENDOR_MESSAGE_ATTR_TYPE_TIMER_INQUIRE
+0xF019 VENDOR_MESSAGE_ATTR_TYPE_TIMER_EVENT_INQUIRE
+
+)
+
+(
+0xF020 VENDOR_ATTR_TYPE_EVENT_INDEX_REPORT
+)
+
+(
+0x0d MESH_X_TIMERS
+)
+
+
+
+
+
+
+
+(
+6 ADV_PACKET_MIN_LENGTH
+37 ADV_PACKET_MAX_LENGTH
+
+1 AD_TYPE_MIN_LENGTH
+30 AD_TYPE_MAX_LENGTH
+)
+(
+13 mesh_ble_rx_timer
+)
+
+
+
+
+(//transport mic cache parameter
+10 TRANSPORT_MIC_CACHE_SPACE_NUM
+4 TRANSPORT_MIC_CACHE_SPACE_SIZE
+//总长度少一个space
+36 TRANSPORT_MIC_CACHE_TOTAL_SIZE
+)
+
+(
+0x00 MESH_EEP_THREE_TUPLE_OFFSET
+0x1a MESH_EEP_NETWORK_KEY_OFFSET
+0x2d MESH_EEP_APPLICATION_KEY_OFFSET
+0x3d MESH_EEP_DEVICE_KEY_OFFSET
+0x4d MESH_EEP_RESET_COUNT_OFFSET
+0x4e MESH_EEP_SEQ_OFFSET
+0x51 MESH_EEP_SUBSCRIPTION_OFFSET
+0x91 MESH_EEP_PROV_RANDOM_OFFSET
+)
+
+(
+0x1a MESH_EEP_THREE_TUPLE_LENGTH
+0x13 MESH_EEP_NETWORK_KEY_LENGTH
+0x10 MESH_EEP_APPLICATION_KEY_LENGTH
+0x10 MESH_EEP_DEVICE_KEY_LENGTH
+0x01 MESH_EEP_RESET_COUNT_LENGTH
+0x03 MESH_EEP_SEQ_LENGTH
+0x10 MESH_EEP_SUBSCRIPTION_LENGTH
+0x40 MESH_EEP_SUBSCRIPTION_TOTAL_LENGTH
+0x04 MESH_EEP_PROV_RANDOM_LENGTH
+)
+
+(
+0x1e000 MESH_FLASH_NETWORK_KEY_ADDR
+0x1e100 MESH_FLASH_APPLICATION_KEY_ADDR
+0x1e200 MESH_FLASH_DEVICE_KEY_ADDR
+0x1f000 MESH_FLASH_MESSAGE_SEQ_ADDR
+0x1e400 MESH_FLASH_SUBSCRIPTION_ADDR
+0x1e500 MESH_FLASH_PROV_RANDOM_ADDR
+)
+
+
+
+
+(//mem_mesh_advertising_unprovisioned_device_beacon_switch
+0 DEVICE_BEACON_OFF
+1 DEVICE_BEACON_ON
+)
+
+(
+//未配网广播超时10min
+0x1770	ADV_UNPROVISIONED_DEVICE_BEACON_TIMEOUT
+//未配网广播间隔500ms
+5		ADV_UNPROVISIONED_DEVICE_BEACON_INTERVAL
+//未配网广播时长120ms=20ms*6
+6		ADV_UNPROVISIONED_DEVICE_BEACON_DURATION
+
+//静默广播超时:无
+0		ADV_SILENCE_DEVICE_BEACON_TIMEOUT
+//静默广播间隔60s
+600		ADV_SILENCE_DEVICE_BEACON_INTERVAL
+//静默广播时长120ms=20ms*6
+6		ADV_SILENCE_DEVICE_BEACON_DURATION
+
+
+//配网后广播间隔
+0x4		ADV_PAIRING_MESH_MESSAGE_INTERVAL
+//配网后广播时长
+20		ADV_PAIRING_MESH_MESSAGE_DURATION
+
+30		ADV_RELAY_MESH_MESSAGE_DURATION
+)
+
+(
+0x12 MAX_APP_MSSAGE_PAYLOAD_LENGTH
+7 BIT_OF_APP_PACKAGE_NUM
+6 BIT_OF_ADV_IN_OFF
+)
+
+(
+//mesh 回复APP广播间隔24*0.625ms = 15ms
+0x15 MESH_ADV_APP_MESSAGE_INTERVAL
+//mesh回复tmall广播间隔32*0.625ms = 20ms
+0x1d MESH_ADV_TMALL_MESSAGE_INTERVAL
+)
+(
+13 mesh_ble_adv_app
+//Tiny Mesh锟姐播tmall锟截革拷
+14 mesh_ble_adv_tmall
+//Tiny Mesh relay
+15 mesh_ble_relay_timer
+)
+
+
+
+(
+0x2c COMMA
+-4 DECREASED_FOUR
+
+)
+
+(
+0x19 MIC_SIZE_64BIT
+0x09 MIC_SIZE_32BIT
+)
+
+
+
+
+
+
+(
+33 GATT_RECEIVE_MSG_BUFFER_SIZE
+)
+
+
+
+
+
+
+(//mem_mesh_provisioned_flag
+0 PAIRED_STATUS
+1 UNPROVISIONED_BEACON_STATUS
+2 PAIRING_STATUS
+3 SILENCE_BEACON_STATUS
+4 RECEIVED_CONFIG_APPKEY_ADD
+5 WAIT_RECEIVE_APPKEY
+6 RECEIVE_CONFIG_COMPOSITION_DATA_GET
+)
+
+(//mem_mesh_UUID_FeatureFlag
+0 BIT_SILENCE_ADV_FLAG
+)
+
+//mem Beacon Tmall Length
+(
+0x01 UNPROVISIONED_ADLEN_LENGTH
+0x01 UNPROVISIONED_ADTYPE_LENGTH
+0x01 UNPROVISIONED_DEVICE_BEACON_LENGTH
+0x10 UNPROVISIONED_DEVICE_UUID_LENGTH
+0x02 UNPROVISIONED_OOB_INFORMATION_LENGTH
+)
+
+// mem Beacon Type
+(
+0x00 UNPROVISIONED_DEVICE_BEACON
+0x01 SECURE_NETWORK_BEACON
+0x1827 MESH_PROVISIONING_UUID
+0x1828 MESH_PROXY_SERVICE
+
+)
+
+// Provisioning Type
+(
+0x00 PROVISIONING_RANDOM
+0x01 PROVISIONING_CONFIRMATION
+0x02 PROVISIONING_DATA
+0x03 PROVISIONING_COMPLETE
+0x04 PROVISIONING_CONFIG
+0x05 PROVISIONING_CONFIG_ACK
+0x06 PROVISIONING_IOS_DATA
+0x07 PROVISIONING_SEND_IOS_DATA
+0x09 PROVISIONING_ADD_APPKEY
+0x0A PROVISIONING_ADD_APPKEY_ACK
+)
+
+(//mem_mesh_Provisioning_State_Flag
+// FLAG bit1:Provisioning Confirmation
+1 RECEIVE_PROVISIONING_RANDOM
+2 RECEIVE_PROVISIONING_DATA
+3 RECEIVE_PROVISIONING_ADD_APPKEY
+)
+
+
+(//provisioning packet info size
+3 PROVISIONING_PACKET_LENGTH_FLAGS
+6 PROVISIONING_PACKET_LENGTH_AD_TYPE_COMPANY_ID_VID_PROVISIONING_TYPE
+5 PROVISIONING_PACKET_AD_TYPE_COMPANY_ID_VID_PROVISIONING_TYPE
+1 PROVISIONING_PACKET_LENGTH
+1 PROVISIONING_PACKET_AD_TYPE
+2 PROVISIONING_PACKET_COMPANY_ID
+1 PROVISIONING_PACKET_VID
+1 PROVISIONING_PACKET_PROVISIONING_TYPE
+//provisioning random
+2 PROVISIONING_PACKET_RANDOM_MAC
+8 PROVISIONING_PACKET_RANDOM_RANDOM_A
+8 PROVISIONING_PACKET_RANDOM_RANDOM_B
+//provisioning confirmation
+2 PROVISIONING_PACKET_CONFIRMATION_MAC
+16 PROVISIONING_PACKET_CONFIRMATION_DEVICE
+//provisioning complete
+6 PROVISIONING_PACKET_COMPLETE_MAC
+//provisioning add appkey ack
+7 PROVISIONING_PACKET_ADD_APPKEY_ACK
+
+2 PROVISIONING_CONFIG_ACK_MAC
+1 PROVISIONING_CONFIG_ACK_FIELD
+
+)
+
+(
+0x01 PROVISIONING_CONFIG_ACK_NOTE
+)
+
+(//gatt package struct
+0 GATT_PACKAGE_MSG_ID
+1 GATT_PACKAGE_PACKAGE_NUM
+2 GATT_PACKAGE_LENGTH
+3 GATT_PACKAGE_PAYLOAD
+)
+
+(
+0x12 MAX_LENGTH_PRIVISIONING_CONTROL_MSG_ANDROID
+0x08 MAX_LENGTH_PRIVISIONING_CONTROL_MSG_IOS
+0x07 MAX_LENGTH_PRIVISIONING_PAIRING_MSG_IOS
+)
+
+(
+4 MAX_GATT_PACKAGE_NUM
+50 GATT_RECEIVE_TIMEOUT
+)
+
+(//mem_mesh_fast_pairing_timer
+300 FAST_PAIRING_TIMEOUT_PROVISIONING
+200 FAST_PAIRING_TIMEOUT_PROXY
+)
+
+(//mem_mesh_add_appkey_ack_timer
+2 FAST_PAIRING_TIMEOUT_ADD_APPKEY_ACK
+)
+
+
+
+
+
+(
+8 SUBSCRIPTION_MAX_COUNT
+)
+
+(
+20 HEALTH_NODE_RESET_TIMEOUT
+)
+
+
+
+
+(//typedef struct of mem_mesh_element_device
+0 ELEMENT_DEVICE_GROUP_ADDR
+2 ELEMENT_DEVICE_QUEUE_BUFFER_PTR
+4 ELEMENT_DEVICE_VENDOR_TIME_PTR
+6 ELEMENT_DEVICE_SUBSCRIPTION_LABEL
+22 ELEMENT_DEVICE_UPPER_ADV_FLAG
+23 ELEMENT_DEVICE_UPPER_QUEUE_PTR
+25 ELEMENT_DEVICE_TRAN_PACKAGE_TID
+26 ELEMENT_DEVICE_TRAN_PACKAGE_TYPE
+27 SIZEOF_ELEMENT_DEVICE
+
+)
+
+
+
+(
+36 MESH_SEGMENT_SIZE
+)
+
+
+
+
+(
+320 MESH_TIMER_BUFFER_SIZE
+)
+
+
+(//bit map of mem_mesh_core_feature
+0 MESH_FEATURE_DISABLE_LOG
+1 MESH_FEATURE_DISABLE_RELAY
+2 MESH_FEATURE_DISABLE_SUBSCRIPTION
+3 MESH_FEATURE_DISABLE_APP_PAIRING
+)
+
+(//taobao id
+0x01a8	COMPANY_IDENTIFIERS_ALIBABA
+0x0d	ALI_MESH_VID_NUMBER
+0x0da801 COMPANY_ID_ALIBABA_AND_VID
+0x0ea801 COMPANY_ID_ALIBABA_AND_VID_GATT
+)
+
+
+(
+0x00 MESH_CODE_INIT
+0x01 MESH_RECEIVE_PROVISIONING_PACKET
+0x02 MESH_RECEIVE_PROVISIONING_RANDOM_PACKET
+0x03 MESH_SEND_PROVISIONING_CONFIRMATION_PACKET
+0x04 MESH_RECEIVE_PROVISIONING_DATA_PACKET
+0x05 MESH_SEND_PROVISIONING_COMPLETE_PACKET
+0x06 MESH_RECEIVE_PROVISIONING_FAILED_PACKET
+0x07 MESH_RECEIVE_PROVISIONING_ADD_APPKEY_PACKET
+0x08 MESH_SEND_PROVISIONING_ADD_APPKEY_ACK_PACKET
+
+0x10 MESH_ENCRYPT_SHA256_FUNCTION_INPUT
+0x11 MESH_ENCRYPT_SHA256_FUNCTION_RESULT
+0x12 MESH_ENCRYPT_AES_CMAC_FUNCTION_INPUT_M
+0x13 MESH_ENCRYPT_AES_CMAC_FUNCTION_INPUT_K
+0x14 MESH_ENCRYPT_AES_CMAC_FUNCTION_RESULT
+
+0x20 MESH_NETWORK_RECEIVE_PACKET
+0x21 MESH_NETWORK_RELAY_PACKET
+
+0x30 MESH_LOWER_RECEIVE_PACKET
+0x40 MESH_UPPER_RECEIVE_PACKET
+0x41 MESH_UPPER_SEND_PACKET
+
+0x50 MESH_ACCESS_RECEIVE_MESSAGE
+
+0x60 MESH_PROXY_RECEIVE_MESSAGE_HANDLE
+0x61 MESH_PROXY_RECEIVE_MESSAGE
+
+0xF0 MESH_MESSAGE_GENERIC_ONOFF_SET
+0xF1 MESH_MESSAGE_SET_LIGHT_LIGHTNESS
+0xF2 MESH_MESSAGE_SET_CTL
+)
+
+(//LUA LOG 
+0xAA LUA_LOG_PACKET_HEADER
+0x03 LUA_LOG_PAKCET_TYPE
+0xBB LUA_LOG_PACKET_TRAIL
+)
+
+(//logging level
+0 LOGGING_DEBUG
+1 LOGGING_INFO
+2 LOGGING_WARNING
+3 LOGGING_ERROR
+4 LOGGING_CRITICAL
+)
+
+(
+0x1c00 mem_mesh_uart_log_rx_buff
+0x1c01 mem_mesh_uart_log_rx_buff_end
+0x1c02 mem_mesh_uart_log_tx_buff
+0x1fff mem_mesh_uart_log_tx_buff_end
+)
+
+(
+0x77 MESH_PAIRED_INFO_LENGTH
+)
+
+(
+0x01 MESH_CHIP_FROM_EEPROM
+0x02 MESH_CHIP_FROM_FLASH
+)
+
+
+
+
+
+
+
+
+(
+7 TRANSPORT_HEAD_BIT_SEG
+6 TRANSPORT_HEAD_BIT_AKF
+05 TRANSPORT_HEAD_BIT_AID
+7 BIT_CTL
+)
+
+
+
+
+
+
+
+
+
+
+(//Generic OnOff
+0x00 GENERIC_ONOFF_CMD_OFF
+0x01 GENERIC_ONOFF_CMD_ON
+)
+
+(//LIGHTNESS
+0xFFFF ALI_MESH_LIGHTNESS_MAX
+0x0064 ALI_MESH_LIGHTNESS_LEVEL
+)
+
+(//TEMPERATURE
+0x4E20 ALI_MESH_TEMPERATURE_MAX
+0x0320 ALI_MESH_TEMPERATURE_MIN
+0x0064 ALI_MESH_TEMPERATURE_LEVEL
+)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(//nonce type
+0x00 NETWORK_NONCE
+0x01 APPLICATION_NONCE
+0x02 DEVICE_NONCE
+0x03 PROXY_NONCE
+)
+
+
+(
+0x00c0 GROUP_ADDRESS_0XC000_little_endian
+0xffcf GROUP_ADDRESS_0XCFFF_little_endian
+0x02c0 GROUP_ADDRESS_0XC002_little_endian
+0x07c0 GROUP_ADDRESS_0XC007_little_endian
+0x01c0 GROUP_ADDRESS_0XC001_little_endian
+0xffff GROUP_ADDRESS_0XFFFF_little_endian
+)
+
+
+(//SRC SEQ cache parameter
+10 CACHE_SPACE_NUM
+5 CACHE_SPACE_SIZE
+)
+
+(
+12 MESH_NETWORK_PACKET_MIN_LENGTH
+30 MESH_NETWORK_PACKET_MAX_LENGTH
+)
+
+(
+0 MESH_MESSAGE_TMALL
+1 MESH_MESSAGE_APP
+2 MESH_MESSAGE_PROXY
+)
+
+(
+
+0x20 MESH_ADV_RELAY_MESSAGE_INTERVAL
+)
+
+
+
+
+
+(
+0x00 MESH_PROXY_SERVICE_DATA_ID_TYPE_NETWORK_ID
+0x01 MESH_PROXY_SERVICE_DATA_ID_TYPE_NODE_IDENTITY
+)
+
+(
+0x00 MESH_PROXY_MESSAGE_TYPE_NETWORK_PDU
+0x01 MESH_PROXY_MESSAGE_TYPE_MESH_BEACON
+0x02 MESH_PROXY_MESSAGE_TYPE_PROXY_CONFIGURATION
+0x03 MESH_PROXY_MESSAGE_TYPE_PROVISIONING_PDU
+)
+
+(
+0x0e	MESH_PROXY_DATA_IN_HANDLE
+0x10	MESH_PROXY_DATA_OUT_HANDLE
+0x11	MESH_PROXY_ENABLE_DATA_OUT_HANDLE
+0x14	MESH_PROVISIONING_DATA_IN_HANDLE
+0x16	MESH_PROVISIONING_DATA_OUT_HANDLE
+0x17	MESH_PROVISIONING_ENABLE_DATA_OUT_HANDLE
+)
+
+(
+0x00 PROXY_OPCODE_SET_FILTER_TYPE
+0x01 PROXY_OPCODE_ADD_ADDR_TO_FILTER
+0x02 PROXY_OPCODE_REMOVE_ADDR_TO_FILTER
+0x03 PROXY_OPCODE_FILTER_STATUS
+)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(
+15 UNSEGMENTED_ACCESS_MESSAGE_MAX_UPPER_TRANSPORT_ACCESS_PDU_LEN
+12 SEGMENTED_ACCESS_MESSAGE_UNINT_PDU_LEN
+)
+
+(//bit of mem_mesh_upper_tran_layer_temp_packet_flag
+7 BIT_UPPER_FLAG_PROXY_CONTROL
+6 BIT_UPPER_FLAG_APP_CONTROL
+5 BIT_UPPER_FLAG_VENDOR_INDICATION
+4 BIT_UPPER_FLAG_RETRANSMIT
+//BIT3-0
+0x0f DATA_UPPER_FLAG_MAX_RETRY_COUNT
+
+1 UPPER_RETRY_COUNT_STATUS
+1 UPPER_RETRY_COUNT_INDICATION
+)
+
+(
+0 NULL_PACKET_ADVERTISING
+1 PACKET_IN_BEARER
+2 PACKET_IN_ADVERTING
+3 PACKET_RECEIVE_INDICATION
+)
+
+(
+1 UPPER_TRAN_TMALL_MESSAGE
+2 UPPER_TRAN_APP_MESSAGE
+3 UPPER_TRAN_TMALL_AND_APP
+
+0 BIT_UPPER_TRAN_TMALL_MESSAGE
+1 BIT_UPPER_TRAN_APP_MESSAGE
+2 BIT_UUPER_TRAN_PROXY_MESSAGE
+)
+
+(
+30 MESH_RECEIVE_NEW_MESSAGE_TIMER
+)
+
+
+
+
+
+(
+0 QUEUE_OFFSET_EACH_SIZE
+1 QUEUE_OFFSET_LENGTH
+2 QUEUE_OFFSET_CURR_NUM
+3 QUEUE_OFFSET_READ_PTR
+4 QUEUE_OFFSET_WRITE_PTR
+5 QUEUE_OFFSET_ELE_INIT_ADDR
+)
+(
+//Flash Register
+0x05 FLASH_READ_SATUS
+
+// Flash Status Register
+0x00 FLASH_STATUS_WIP
+0X01 FLASH_STATUS_WEL
+0X02 FLASH_STATUS_BP0
+0X03 FLASH_STATUS_BP1
+
+//Flash Write Sm
+0X00 FLASH_SM_NO_BUYS
+0X01 FLASH_SM_START
+0X02 FLASH_SM_ERASE_SECTOR
+0X03 FLASH_SM_WAIT_ERASE_SECTOR
+0X04 FLASH_SM_WRITE_DATA
+0X05 FLASH_SM_WAIT_WRITE_DATA
+
+
+//Flash Command
+0x02 FLASH_COMMAND_WRITE_DATA
+0x03 FLASH_COMMAND_READ_DATA
+0x06 FLASH_COMMAND_WRITE_ENABLE
+0x20 FLASH_COMMAND_SECTOR_ERASE
+0xAB FLASH_COMMAND_RELEASE_FROM_POWERDOWN
+0xB9 FLASH_COMMAND_POWERDOWN
+
+)
+
+
+(
+7 OTP_UFLAG_MEMFIX2
+6 OTP_UFLAG_MEMFIX1
+5 OTP_UFLAG_MEMFIX0
+4 OTP_UFLAG_BIST
+3 OTP_UFLAG_AES
+2 OTP_UFLAG_SKIP_EEP
+1 OTP_UFLAG_SKIP_FLASH
+0 OTP_UFLAG_HCI
+)
+
+
+
+//OTP
+(
+0 OTP_OFFSET_PATCH_PTR //2 byte
+2 OTP_OFFSET_UCODE_FLAG
+3 OTP_OFFSET_DEVICE_OPTION
+4 OTP_OFFSET_PERIPHERALS_LOCK
+5 OTP_OFFSET_SCHED_BISTFIX 	//2 byte
+7 OTP_OFFSET_XRAM_BISTFIX	//2 byte
+9 OTP_OFFSET_PATCH_BISTFIX	//2 byte
+
+0xfc0 OTP_OFFSET_ADC_PARAM_L_C0
+
+0xfd0 OTP_OFFSET_ADC_PARAM_L
+0xff0 OTP_OFFSET_UCODE_KEY_L
+0x1000 OTP_OFFSET_H
+
+//0x1fd0 OTP_OFFSET_ADC_PARAM
+//0x1fec OTP_OFFSET_HV_SEL
+//0x1fed OTP_OFFSET_LDO_VSEL
+//0x1fee OTP_OFFSET_LOADCODE_DELAY
+//0x1fef OTP_OFFSET_LOADCODE_CHECKSUM
+0x1ff0 OTP_OFFSET_UCODE_KEY
+)
+
+
+
+
+(
+4 DVC_OP_DONGLE
+5 DVC_OP_TEST
+6 DVC_OP_SHUTTER_DY   
+8 DVC_OP_MOUSE
+9 DVC_OP_SHUTTER
+0X0A DVC_OP_MODULE
+0X0B DVC_OP_MESH
+0X0C DVC_OP_HCI_BOOT
+0X0D DVC_OP_REMOTE_CAR
+0X0E DVC_OP_CAR
+0X0F DVC_OP_KEYBOARD   
+)
+
+
+(
+7 GPIO_ACTIVE_BIT
+)
+
+(
+5 LPM_WAKE_UP_DELAY_TIMER
+)
+
+
+//mem_app_disconn_reason
+//mem_app_disconn_reason_flag
+//bit map
+(
+2 APP_DISC_RSN_SIZE
+)
+
+(
+0 APP_DISC_BY_BUTTON
+7 APP_DISC_BLE
+)
+
+//eeprom init flag
+(
+0xaa55 EEPROM_INIT_FLAG
+)
+
+(
+1 KEY_CONF_STRUCT_LEN
+0 KEY_PIN_OFFSET
+)
+
+(
+12000000 PWM_12MHZ
+24000000 PWM_24MHZ
+33000 PWM_33KHZ
+)
+(
+0 POWER_OFF
+1 POWER_STARTING
+2 POWER_STANDBY
+)
+//power parameter offset(8 byte)
+(
+0 power_state_offset
+1 power_timer_offset
+2 power_off_timeout_offset
+3 power_starting_timeout_offset
+4 power_off_cb_offset
+6 power_starting_cb_offset
+8 power_standby_cb_offset
+10 ui_butten_up_cb_offset
+)
+
+//auth rom address
+(
+0x9000 MOUSE_BLE_ATT_LIST_ADDR
+0x9272 USB_KBDATA_VENDOR_DEFINE_ADDR
+0x928d USB_KBDATA_ADDR
+0x92cd USB_MSDATA_ADDR
+0x9371 USB_DEVICEDATA_ADDR
+0x9384 USB_CONFDATA_ADDR
+0x93c0 BLE_SHUTTER_GATT_LIST_ADDR
+0x94f9 BLE_SHUTTER_KEY_VALUE_LIST_ADDR
+0x9521 BLE_CAR_ATT_LIST_ADDR
+0x95ed BLE_MESH_SHA256_ADDR
+0x97fc mem_sim_slave
+)
+
+(//NEC 61212
+9000 NEC61212_BOOT_CODE_START_TIME
+4500 NEC61212_BOOT_CODE_END_TIME
+
+9000 NEC61212_REPEAT_START_TIME
+2250 NEC61212_REPEAT_END_TIME
+
+560 NEC61212_DATA_BIT_1_START_TIME
+1690 NEC61212_DATA_BIT_1_END_TIME
+
+560 NEC61212_DATA_BIT_0_START_TIME
+560 NEC61212_DATA_BIT_0_END_TIME
+
+560 NEC61212_STOP_TIME
+
+42580 NEC61212_DATA2REPEAT_TIME
+98190 NEC61212_REPEAT2REPEAT_TIME
+
+0xffff NEC61212_TIMEOUT_TIME
+)
+
+//core_perf_status
+(
+1 CLK_CALIBRATION_DONE
+2 RC_CLK_CALIBRATION_DONE
+3 AES_DEC_KEY_INIT_DONE
+4 MEASURE_ADC_SUM_DONE
+5 SARADC_DONE
+)
+
+//ADC
+(
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+
+(
+0 ADC_CH_VBAT
+1 ADC_CH_VDCDC5V
+6 ADC_CH_GPIO_4
+7 ADC_CH_GPIO_2
+8 ADC_CH_GPIO_1
+9 ADC_CH_GPIO_3
+10 ADC_CH_GPIO_0
+11 ADC_CH_GPIO_5
+12 ADC_CH_GPIO_6
+13 ADC_CH_GPIO_7
+)
+
+//adc channel fixed
+(
+0x06 ADC_CH_GPIO18
+0x07 ADC_CH_GPIO10
+0x08 ADC_CH_GPIO9
+0x09 ADC_CH_GPIO12
+0x0a ADC_CH_GPIO6
+0x0b ADC_CH_GPIO20
+0x0c ADC_CH_GPIO21
+0x0d ADC_CH_GPIO22
+0x0e ADC_CH_GPIO13
+)
+//mem_adc_reference_mode 
+(
+1 SADC_REFERENCE_INTER3V
+2 SADC_REFERENCE_INTER1P8V_DIV2
+)
+
+
+
+
+
+
+
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE_CAR
+)
+
+(
+0x19 ATT_CAR_CONTROL_HANDLE
+0x19 ATT_SPEED_SET_HANDLE
+)
+
+
+(
+0 TURN_FRONT
+1 TURN_LEFT
+2 TURN_RIGHT
+0 MOTOR_STOP
+1 GO_FRONT
+2 GO_BACK
+0x6b5a LE_RECEIVE_PACKET_HEAD
+)
+
+(
+0 FLAG_IR_DISABLE
+1 FLAG_IR_ENABLE
+)
+
+(
+0 DEVICE_CAR
+1 DEVICE_TANK
+2 DEVICE_BATTLE_CAR
+3 DEVICE_BATTLE_TANK
+4 DEVICE_REMOTE
+)
+
+(
+0 F_B_MOTOR
+1 L_R_MOTOR
+2 F_B_BATTERY
+3 L_R_BATTERY
+)
+
+(
+0 CAR_WORK	   		//connect mode normal
+1 CAR_BIND			//code pair mode
+2 CAR_TEST			//test mode
+3 CAR_CODE			//PC_application
+4 CAR_PCBA			//PCBA_TEST
+5 CAR_DEBUG
+6 CAR_MODE_MAX
+7 CAR_SEARCH
+)
+
+(
+1 SPEED_LEVEL_1
+2 SPEED_LEVEL_2
+3 SPEED_LEVEL_3
+4 SPEED_LEVEL_4
+5 SPEED_LEVEL_5
+6 SPEED_LEVEL_6
+7 SPEED_LEVEL_7
+8 SPEED_LEVEL_8
+9 SPEED_LEVEL_9
+10 SPEED_LEVEL_10
+)
+
+(
+0 PWM0_DUTY_SETTING
+1 PWM1_DUTY_SETTING
+2 PWM2_DUTY_SETTING
+)
+
+(
+1 CAR_CMD_BATTERY
+2 CAR_CMD_OLD_CAR_CONTROL
+3 CAR_CMD_OLD_SPEED_CONTROL
+4 CAR_CMD_L_R_MOTOR_CONTROL
+5 CAR_CMD_F_B_MOTOR_CONTROL
+6 CAR_CMD_IR_CONTROL
+7 CAR_CMD_LED_CONTROL
+8 CAR_CMD_DEVICE_INFO
+)
+
+(
+0 CAR_REMOTE_CHECK_BUTTON
+1 CAR_REMOTE_CHECK_ROCKER
+)
+
+(
+0x11 CAR_NOTIFY_HANDLE
+)
+
+(
+0 LED_OFF
+1 LED_ON
+2 LED_BLINK
+0xFF LED_INVALID
+)
+
+(
+0xFF INVALID_PIN_NUM
+)
+
+
+(
+0 POWER_ON
+1 WORK_PAIRED
+2 WORK_SEARCH
+)
+
+(
+0x700 OTP_OFFSET_CAR_COMMOM_START_ADDR 
+0x7cc OTP_OFFSET_CAR_COMMOM_END_ADDR 
+)
+
+
+
+
+
+
+//otp address offset
+(
+0x5A DONGLE_KB_BIND_SUCCESS
+0x1fdf DONGLE_KB_BIND_EFUSE_OFFECT
+)
+
+(
+5 WORK_MODE_DELAY
+7 BIND_MODE_DELAY
+)
+
+(
+0 DONGLE_WORK	   		//connect mode normal
+1 DONGLE_BIND			//code pair mode
+2 DONGLE_TEST			//test mode
+3 DONGLE_CODE			//PC_application
+4 DONGLE_PCBA			//PCBA_TEST
+5 DONGLE_DEBUG
+6 DONGLE_MODE_MAX
+7 DONGLE_SEARCH
+0 CLEAR_INIT
+)
+
+
+(
+0xa0 COMMAND_MODE     //BYTE 0
+0x81 COM_MODE_BIND	//BYTE 1
+0x82 COM_MODE_TEST	//BYTE 1
+)
+(
+0xa1 COMMAND_BIND		//BYTE 0
+0x01 COM_BIND_GET		//1
+0x84 COM_BIND_EXIT		//1
+0xa7 COM_READ_MODE		//1
+)
+(
+0xa2 COMMAND_TEST	//BYTE 0
+0x81 COM_TEST_SC		//	进入单载波
+0x82 COM_TEST_CD		// fcc测试
+0x83 COM_TEST_DAT		// 数据测试
+0x84 COM_TEST_LOW_CH  //低频点
+0x85 COM_TEST_MID_CH	//中频点
+0x86 COM_TEST_HIG_CH	//高频点
+0x87 COM_TEST_SW_HIG	//自动切换频点为高 1mhz
+0x88 COIM_TEST_SW_LOW	//自动切换频点为低 1mhz
+0x89 COM_TEST_SW_STOP	//停止自动切换频点
+0x8a COM_TEST_POW_5		//设置输出功率5dbm
+0x8b COM_TEST_POW_0		//0dbm
+0x8c COM_TEST_POW_N5		//-5dbm
+0x8d COM_TEST_POW_N10		//-10dbm
+0x8e COM_TEST_EXIT			//退出测试模式
+)
+(
+0xa6 COMMAND_CURRENT_PROJECT
+0xa7 COMMAND_CURRENT_MODE
+0xa9 COMMAND_CURRENT_FW_VERSION
+0xb0 COMMAND_USER_DEFINED		//user defined cmd
+)
+
+(
+0x15 PRODUCT_ID
+0 FW_VERSION0
+0 FW_VERSION1
+1 FW_VERSION2
+7 FW_VERSION3
+)
+
+(
+640 TIMER_NODATA_DELAY	//200ms
+
+384 TIMER_MS_BLANK_DELAY
+
+384 TIMER_KB_MUL_BLANK_DELAY
+
+384 TIMER_KB_SYS_CRTL_BLANK_DELAY
+
+384 TIMER_KB_BLANK_DELAY
+)
+
+(
+0 KB_NORMAL_REPORT_ID
+1 MS_REPORT_ID
+2 KB_SYSTEM_CONCTRL_REPORT_ID
+3 KB_MULTIKEY_REPORT_ID
+)
+
+
+(
+0x01 BIND_ACKPAYLOAD
+0x03 KB_LED_ACKPAYLOAD
+)
+
+//mem_dg_sys_config
+(
+7 DG_ENABLE_XTAL_24M
+6 DG_ENABLE_NEW_CHMAP
+5 DG_ENABLE_EEPROM
+4 DG_ENABLE_KB_ICON
+3 DG_ENABLE_24G_2M
+)
+
+(
+0x00 DONGLE_KB_BIND_EEPROM_OFFECT
+)
+(
+0x20 MOUSE_BLE_L2CAP_TXBUFF_SIZE_NEW
+)
+(
+0x01 DEVICE_DATA_TPYE_MOUSE
+0x02 DEVICE_DATA_TPYE_STANDARD_KEYBOARD
+0x03 DEVICE_DATA_TPYE_NONSTARNDARD_KEYBOARD
+0x04 DEVICE_DATA_TPYE_CONSUMER
+0x05 DEVICE_DATA_TPYE_SYSTEM_CONCTOL
+)
+
+(
+0x00 HID_REPORTID_KEY_STANDARD
+0x01 HID_REPORTID_MOUSE
+0x02 HID_REPORTID_SYSTEM_CTRL
+0x03 HID_REPORTID_CONSUMER_KEY
+)
+
+(
+0x04	 HID_KEY_A 	 
+0x05        HID_KEY_B 	 
+0x06        HID_KEY_C 	 
+0x07        HID_KEY_D 	 
+0x08        HID_KEY_E 	 
+0x09        HID_KEY_F 	 
+0x0a        HID_KEY_G 	 
+0x0b        HID_KEY_H 	 
+0x0c        HID_KEY_I  	 
+0x0d        HID_KEY_J 	 
+0x0e        HID_KEY_K 	 
+0x0f        HID_KEY_L 	 
+0x10        HID_KEY_M 	 
+0x11        HID_KEY_N 	 
+0x12        HID_KEY_O	 
+0x13        HID_KEY_P	 
+0x14        HID_KEY_Q	 
+0x15        HID_KEY_R	 
+0x16        HID_KEY_S	 
+0x17        HID_KEY_T	 
+0x18        HID_KEY_U	 
+0x19        HID_KEY_V	 
+0x1a        HID_KEY_W 	 
+0x1b        HID_KEY_X	 
+0x1c        HID_KEY_Y	 
+0x1d        HID_KEY_Z	 
+    
+0x1e        HID_KEY_1	 
+0x1f        HID_KEY_2	 
+0x20        HID_KEY_3	 
+0x21        HID_KEY_4	 
+0x22        HID_KEY_5	 
+0x23        HID_KEY_6	 
+0x24        HID_KEY_7	 
+0x25        HID_KEY_8	 
+0x26        HID_KEY_9	 
+0x27        HID_KEY_0	 
+    
+0x28        HID_KEY_ENTER 				 
+0x29        HID_KEY_ESC				 
+0x2a        HID_KEY_BACKSPACE		 
+0x2b        HID_KEY_TAB				 
+0x2c        HID_KEY_SPACE 				 
+0x2d        HID_KEY_MINUS				 		// -_
+0x2e        HID_KEY_EQUAL				 		// =+
+0x2f        HID_KEY_LEFT_BRACKET 		 	// [{
+0x30        HID_KEY_RIGHT_BRACKET 	 		// ]}
+0x31        HID_KEY_BACK_SLASH 		 		// \|
+    
+0x32        HID_KEY_K42				 
+0x33        HID_KEY_SEMICOLON			 	// ;:
+0x34        HID_KEY_QUOTE				 		// ' "
+0x35        HID_KEY_TILDE				 		// `~
+0x36        HID_KEY_LESS_THAN			 		// ,<
+0x37        HID_KEY_GREAT_THAN		 		// .>
+0x38        HID_KEY_SLASH				 		// /?
+0x39        HID_KEY_CAPS_LOCK			 
+
+0x3a        HID_KEY_F1		 
+0x3b        HID_KEY_F2		 
+0x3c        HID_KEY_F3		 
+0x3d        HID_KEY_F4		 
+0x3e        HID_KEY_F5		 
+0x3f        HID_KEY_F6		 
+0x40        HID_KEY_F7		 
+0x41        HID_KEY_F8		 
+0x42        HID_KEY_F9		 
+0x43        HID_KEY_F10	 
+0x44        HID_KEY_F11	 
+0x45        HID_KEY_F12	 
+    
+0x46        HID_KEY_PRINT_SCREEN	 
+0x47        HID_KEY_SCROLL_LOCK	 
+0x48        HID_KEY_PAUSE			 
+0x49        HID_KEY_INSERT			 
+0x4a        HID_KEY_HOME			 
+0x4b        HID_KEY_PAGE_UP		 
+0x4c        HID_KEY_DELETE		 
+0x4d        HID_KEY_END			 
+0x4e        HID_KEY_PAGE_DOWN	 
+        
+0x4f        HID_KEY_RIGHT_ARROW	 
+0x50        HID_KEY_LEFT_ARROW	 
+0x51        HID_KEY_DOWN_ARROW	 
+0x52        HID_KEY_UP_ARROW		 
+        
+0x53        HID_KEY_NUM_LOCK		 
+0x54        HID_KEY_KP_SLASH		 
+0x55        HID_KEY_KP_ASTERISK	 
+0x56        HID_KEY_KP_MINUS		 
+0x57        HID_KEY_KP_PLUS		 
+0x58        HID_KEY_KP_ENTER		 
+0x59        HID_KEY_KP_1			 
+0x5a        HID_KEY_KP_2			 
+0x5b        HID_KEY_KP_3			 
+0x5c        HID_KEY_KP_4			 
+0x5d        HID_KEY_KP_5			 
+0x5e        HID_KEY_KP_6			 
+0x5f        HID_KEY_KP_7			 
+0x60        HID_KEY_KP_8			 
+0x61        HID_KEY_KP_9			 
+0x62        HID_KEY_KP_0			 
+0x63        HID_KEY_KP_DEL		 
+  
+0x64        HID_KEY_K45			 
+0x65        HID_KEY_APP			 
+0x66        HID_KEY_POWER			 
+0x67        HID_KEY_KP_EQUAL		 
+        
+       
+0x87        HID_KEY_K56				 
+0x88        HID_KEY_K133  				 
+0x89        HID_KEY_K14  				 
+0x8a        HID_KEY_K132  				 
+0x8b        HID_KEY_K131 				 
+    
+0x90        HID_KEY_KR_R  				 
+0x91        HID_KEY_KR_L  				 
+        
+0xe0        HID_KEY_LEFT_CTRL			 
+0xe1        HID_KEY_LEFT_SHIFT			 
+0xe2        HID_KEY_LEFT_ALT 			 
+0xe3        HID_KEY_LEFT_GUI 			 
+0xe4        HID_KEY_RIGHT_CTRL			 
+0xe5        HID_KEY_RIGHT_SHIFT		 
+0xe6        HID_KEY_RIGHT_ALT			 
+0xe7        HID_KEY_RIGHT_GUI			 
+
+0xe8 	HID_KEY_MULTIKEY_MEDIA
+0xe9 	HID_KEY_MULTIKEY_PALY
+0xea 	HID_KEY_MULTIKEY_STOP
+0xeb 	HID_KEY_MULTIKEY_PRE_TRACK
+0xec 	HID_KEY_MULTIKEY_NEXT_TRACK
+0xed 	HID_KEY_MULTIKEY_VOL_DOWN
+0xee 	HID_KEY_MULTIKEY_VOL_UP
+0xef 	HID_KEY_MULTIKEY_MUTE
+0xf0 	HID_KEY_MY_COMPUTER
+0xf1 	HID_KEY_MAIL
+0xf2 	HID_KEY_CALCULATOR
+0xf3 	HID_KEY_LIGHT_DOWN
+0xf4 	HID_KEY_LIGHT_UP
+0xf5 	HID_KEY_AC_FAVORITES
+0xf6 	HID_KEY_AC_FORWARD
+0xf7 	HID_KEY_AC_BACK
+0xf8 	HID_KEY_AC_STOP
+0xf9 	HID_KEY_AC_REFRESH
+0xfa 	HID_KEY_AC_SEARCH
+0xfb 	HID_KEY_AC_HOME
+0xfc 	HID_KEY_IOS_ANDROID_OS_LOCK
+0xfd 	HID_KEY_OS_SOFT_KB
+0xfe 	HID_KEY_OS_LANGUAGE
+0xff 	HID_KEY_SYSTEM_SLEEP
+        // 0xe8~0xff reserved
+0xa5	HID_KEY_SELECT_ALL
+0xa6 	HID_KEY_COPY
+0xa7	HID_KEY_PASTE
+0xa8	HID_KEY_CUT
+0xa9	HID_KEY_ALL_OS_LOCK
+0xaa	HID_KEY_OSK
+0xab	HID_KEY_LANGUAGE
+0xac 	HID_KEY_APP_TILING
+0xad	HID_KEY_SEARCH
+	 // 0xa5~0xaf reserved
+0x7f     	HID_KEY_FN 					 
+0xde     	HID_KEY_PB
+0x00     	HID_KEY_NULL 				 
+)
+
+(
+0x01 LEFT_CONTROL
+0x02 LEFT_SHIFT
+0x04 LEFT_ALT
+0x08 LEFT_GUI
+0x10 RIGHT_CONTROL
+0x20 RIGHT_SHIFT
+0x40 RIGHT_ALT
+0x80 RIGHT_GUI
+0x09 LEFT_GUI_CONTROL
+0x0a LEFT_SHIFT_GUI
+)
+
+
+(
+0x00 KB_PC_KEYSEL_NUMLOCK
+0x01 KB_PC_KEYSEL_CAPSLOCK
+0x02 KB_PC_KEYSEL_SCROLLLOCK
+)
+
+(
+8 KEYSCAN_COL_NUM
+20 KEYSCAN_ROW_NUM
+)
+
+(
+0 CAMMBINATION_KEY_FREE
+1 CAMMBINATION_KEY_PRESS
+2 CAMMBINATION_KEY_HOLD
+3 CAMMBINATION_KEY_COMPLETE
+4 CAMMBINATION_KEY_WAIT_RELEASE
+5 CAMMBINATION_KEY_RELEASE
+6 CAMMBINATION_KEY_NULL
+)
+
+
+(
+
+0x600 PNP_MICROSOFT
+0x4c00 PNP_IOS
+0x1208 PNP_MAC
+
+
+0 SYSTEM_OS_WINDOWS
+1 SYSTEM_OS_ANDRIOD
+2 SYSTEM_OS_IOS
+3 SYSTEM_OS_MAC
+
+)
+
+(
+0 KEYBOARD_CONSUMER_KEY_STANDBY
+1 KEYBOARD_CONSUMER_KEY_PRESS
+2 KEYBOARD_CONSUMER_KEY_RELEASE
+)
+
+(
+0 KEYBOARD_FLAG_G24_DEVICE_BUTTON
+1 KEYBOARD_FLAG_BT_DEVICE_BUTTON
+)
+
+(
+0 KEYBOARD_RGB_BLUE_STATUS
+1 KEYBOARD_RGB_GREEN_STATUS
+2 KEYBOARD_RGB_RED_STATUS
+
+0 RGB_BACKLIGHT_STATUS_OFF
+1 RGB_BACKLIGHT_STATUS_ON
+2 RGB_BACKLIGHT_STATUS_BREATHE
+
+0 RGB_BACKLIGHT_ON_TPYE_RED
+1 RGB_BACKLIGHT_ON_TPYE_ORANGE
+2 RGB_BACKLIGHT_ON_TPYE_PURPLE
+3 RGB_BACKLIGHT_ON_TPYE_GREEN
+4 RGB_BACKLIGHT_ON_TPYE_CYAN
+5 RGB_BACKLIGHT_ON_TPYE_BLUE
+6 RGB_BACKLIGHT_ON_TPYE_WHITE
+
+0 RGB_BACKLIGHT_BREATHE_TPYE_BLUE
+1 RGB_BACKLIGHT_BREATHE_TPYE_GREEN
+2 RGB_BACKLIGHT_BREATHE_TPYE_RED
+3 RGB_BACKLIGHT_BREATHE_TPYE_CYAN
+4 RGB_BACKLIGHT_BREATHE_TPYE_PURPLE
+5 RGB_BACKLIGHT_BREATHE_TPYE_ORANGE
+6 RGB_BACKLIGHT_BREATHE_TPYE_WHITE
+)
+
+
+
+
+
+(//mem_module_flag
+//bit0~bit7 config module function
+0 MODULE_FLAG_UART_FLOW_CONTROL
+1 MODULE_FLAG_BLE_SEND_MTU23
+2 MODULE_FLAG_BLE_DATA_ENCRYPT
+
+//bit8~bit15 module states change
+8 MODULE_FLAG_BLE_DATA_FINISH
+
+)
+
+(
+34 NV_DATA_LEN
+-1 DECREASED_ONE
+)
+
+
+
+(
+	5 FLAG_MODULE_READ_VDD_COUNT
+)
+
+(
+0x01 HCI_DISCARD_PACKET
+0x00 HCI_NOT_DISCARD_PACKET
+)
+
+
+
+(//Command
+0x01 HCI_CMD_SET_LE_ADDR_REQ
+0x02 HCI_CMD_SET_VISIBILITY_REQ
+0x04 HCI_CMD_SET_LE_NAME_REQ
+0x09 HCI_CMD_LE_DATA_REQ
+0x0b HCI_CMD_STATUS_IRQ
+0x0e HCI_CMD_SET_UARTCONTROL_REQ
+0x0f HCI_CMD_SET_UART_BAUD_REQ
+0x10 HCI_CMD_VERSION_REQ
+0x12 HCI_CMD_BLE_DISCONNECT
+0x13 HCI_CMD_DELETE_DEVICE
+0x14 HCI_CMD_CREATE_CONNECT
+0x26 HCI_CMD_SET_NVRAM_REQ
+0x27 HCI_CMD_SLEEP
+0x28 HCI_CMD_CONFIRM_GKEY
+0x2a HCI_CMD_AUTO_ADV_SCAN
+0x2b HCI_CMD_POWER_REQ
+0x2c HCI_CMD_POWER_SET
+0x30 HCI_CMD_PASSKEY_ENTRY
+0x31 HCI_CMD_SET_GPIO
+0x32 HCI_CMD_READ_GPIO
+0x33 HCI_CMD_LE_SET_PAIRING
+0x34 HCI_CMD_LE_SET_ADV_DATA
+0x35 HCI_CMD_LE_SET_SCAN_DATA
+0x36 HCI_CMD_LE_SEND_CONN_UPDATE_REQ
+0x37 HCI_CMD_LE_SET_ADV_PARM
+0x38 HCI_CMD_LE_START_PAIRING
+0x40 HCI_CMD_SET_WAKE_GPIO
+0x42 HCI_CMD_SET_TX_POWER
+0x43 HCI_CMD_BOOT_VERSION_REQ
+0x48 HCI_CMD_LE_CONFIRM_GKEY
+0x49 HCI_CMD_REJECT_JUSTWORK
+0x51 HCI_CMD_RESET_CHIP_REQ
+
+0x61 HCI_CMD_LE_SET_FIXED_PASSKEY
+
+0x76 HCI_CMD_DELETE_CUSTOMIZE_SERVICE
+0x77 HCI_CMD_ADD_SERVICE_UUID
+0x78 HCI_CMD_ADD_CHARACTERISTIC_UUID
+0x7a HCI_CMD_PASSKEY_ENTRY_INPUT
+0x7b HCI_CMD_LE_CREAT_CONN
+
+0x90 HCI_CMD_BLE_SET_PHY
+0x91 HCI_CMD_BLE_READ_CURRENT_PHY
+0x92 HCI_CMD_BLE_SET_DLE
+0x93 HCI_CMD_READ_CHIP_DATA
+0x94 HCI_CMD_WRITE_CHIP_DATA
+0xff HCI_CMD_CLOSE_LPM
+)
+
+(//event
+0x00 HCI_EVENT_SPP_CONN_REP
+0x01 HCI_EVENT_HID_CONN_REP
+0x02 HCI_EVENT_LE_CONN_REP
+0x03 HCI_EVENT_SPP_DIS_REP
+0x04 HCI_EVENT_HID_DIS_REP
+0x05 HCI_EVENT_LE_DIS_REP
+0x06 HCI_EVENT_CMD_RES
+0x07 HCI_EVENT_SPP_DATA_REP
+0x08 HCI_EVENT_LE_DATA_REP
+0x09 HCI_EVENT_STANDBY_REP
+
+0x0a HCI_EVENT_STATUS_RES
+
+0x0D HCI_EVENT_NVRAM_REP
+0x0e HCI_EVENT_GKEY
+0x0F HCI_EVENT_INVALID_PACKET
+0x10 HCI_EVENT_GET_PASSKEY
+0x11 HCI_EVENT_LE_TK
+0x12 HCI_EVENT_REMOTE_MTU
+0x14 HCI_EVENT_LE_PAIRING_STATE
+0X15 HCI_EVENT_LE_ENCRYPTION_STATE
+0x17 HCI_EVENT_LE_CONNECTION_UPDATE
+0x1d HCI_EVENT_LE_GKEY
+0x29 HCI_EVENT_UUID_HANDLE
+0x2b HCI_EVENT_LE_INPUT_GKEY
+
+0x40 HCI_BLE_UPDATE_PHY_EVENT
+)
+
+
+(//command HCI_CMD_SET_GPIO
+//byte 0
+0x00 HCI_CMD_CONFIG_GPIO_INPUT
+0x01 HCI_CMD_CONFIG_GPIO_OUTPUT
+//byte 1 input state
+0x00 GPIO_INPUT_PULLUP
+0x01 GPIO_INPUT_PULLDOWN
+0x02 GPIO_INPUT_HIGH_IMPEDANCE
+)
+
+
+
+
+
+(
+0x0080	FLAG_BLE_PAIRING_SUCCESS
+0x0180	FLAG_BLE_PAIRING_FAIL
+)
+
+
+(
+1	FLAG_EVENT_START_ENC
+0	FLAG_EVENT_PAUSE_ENC
+)
+
+(
+0 MOUDLE_STATE_BT_BIT
+1 MOUDLE_STATE_BLE_BIT
+)
+
+(
+5 BIT_OF_NOTIFY_AUTHENTICATED
+6 BIT_OF_READ_AUTHENTICATED
+7 BIT_OF_WRITE_AUTHENTICATED
+)
+
+
+//dpi eeprom addr
+
+
+
+
+(
+(
+0x00 PEN_KEY0
+0x01 PEN_KEY1
+0x02 PEN_KEY2
+0x03 PEN_KEY3
+0x04 PEN_KEY4
+0x05 PEN_KEY5
+0x06 PEN_KEY6
+0x07 PEN_KEY7
+)
+
+(
+0x07 KEY_PRESS_COUNT
+0x00 KEY_PRESS_NONE
+)
+
+)
+
+
+(
+//combination
+0x01 MOUSE_L_BUTTON
+0X02 MOUSE_R_BUTTON
+0x03 MOUSE_LR_BUTTON
+0X04 MOUSE_M_BUTTON
+0X05 MOUSE_LM_BUTTON
+0X06 MOUSE_RM_BUTTON
+0X07 MOUSE_LMR_BUTTON
+0x09 MOUSE_L_BK_BUTTON
+0x0a MOUSE_R_BK_BUTTON
+0x11 MOUSE_L_FW_BUTTON
+0x12 MOUSE_R_FW_BUTTON
+0x12 MOUSE_M_BK_BUTTON
+0x14 MOUSE_M_FW_BUTTON
+0X18 MOUSE_BK_FW_BUTTON
+//mouse default gpio
+0x1B MOUSE_DEFAULT_XA_GPIO
+0x1C MOUSE_DEFAULT_XB_GPIO
+
+//ui led blink
+0X00C8  LED_RECONNECT_BLINK //200
+0X0190  LED_DPI_BLINK //400
+0X03E8  LED_DPI_BLINK_FIXED    //1000
+0X03E8  LED_DISCOVERY_BLINK    //1000
+0XFF    LED_LONG_BLINK
+0x05	LED_SENSOR_BLINK_CNT
+//mode device number
+0x00 MODE_24G_DEVICE
+0x01 MODE_BT_DEVICE1
+0x02 MODE_BT_DEVICE2
+0x03 MODE_BT_DEVICE3
+0x04 MODE_USB_DEVICE
+//mouse  flag
+0X00 WRITE_REQ_ENABLE_FLAG
+0X01 LL_START_ENC_FLAG
+0X02 LL_PAIRING_SUCCESS_FLAG
+
+
+//mouse_function_flag
+0x08 MOUSE_FLAG_LEN
+//byte 1
+0x00 MOUSE_SELECT_DEVICE_FLAG
+0x01 MOUSE_24G_PAIRING_FLAG
+0x02 MOUSE_STORE_EEPROM_FLAG
+0x03 MOUSE_BT_CANNEL_RECONN_FLAG
+0x04 MOUSE_LOW_VOLTAGE_FLAG
+0x05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x06 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+
+//byte 2
+0x08 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+0x09 MOUSE_ENABLE_2K_EEPROM
+0x0a MOUSE_ENABLE_INIT_DELAY
+0x0b MOUSE_ENABLE_WAKEUP_FROM_POWER
+0x0c MOUSE_ENABLE_16M
+0x0d MOUSE_ENABLE_USB
+0x0e MOUSE_ENABLE_24G_SEARCH_DONGLE
+0x0f MOUSE_ENABLE_LOAD_AND_STORE_DPI
+
+//byte 3
+0x10 MOUSE_ENABLE_SPI2
+0x11 MOUSE_ENABLE_24G
+0x12 MOUSE_ENABLE_FLASH
+0x13 MOUSE_ENABLE_EEPROM
+0x14 MOUSE_ENABLE_OTP
+0x15 MOUSE_ENABLE_ADC
+0x16 MOUSE_ENABLE_KEYBOARD
+0x17 MOUSE_ENABLE_DOUBLE_DPI_KEY
+
+//byte 4
+0x18 MOUSE_ENABLE_24G_250Hz
+0x19 MOUSE_ENABLE_24G_500Hz
+0x1a MOUSE_ENABLE_24G_1000
+0x1b MOUSE_ENABLE_BT_125Hz
+0x1c MOUSE_ENABLE_DPI_LEVEL_4
+0x1d MOUSE_ENABLE_USB_250
+0x1e MOUSE_ENABLE_USB_500
+0x1f MOUSE_ENABLE_USB_1000
+
+//byte 5
+0x20 MOUSE_ENABLE_1IO2LED
+0x21 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+0x22 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+0x23 MOUSE_ENABLE_LOW_LED
+0x24 MOUSE_ENABLE_LOW_FOR_LED
+0x25 MOUSE_ENABLE_DPI_FOR_LED
+0x26 MOUSE_ENABLE_DPI_LOW_FOR_LED
+0x27 MOUSE_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+
+//byte 6
+0x28 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+0x29 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
+0x2a MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x2b MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+0x2c MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND
+0x2d MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+0x2e MOUSE_ENABLE_FIRE_KEY_CONNECT_GND
+0x2f MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN_OR_MATRIX
+
+//byte 7 
+0x30 MOUSE_ENABLE_AUTO_24G_PARING
+0x31 MOUSE_ENABLE_24G_POWER_ON_PAIRING
+0x32 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x33 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x34 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+0x35 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+0x36 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+0x37 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+
+//byte 8
+0x38 MOUSE_ENABLE_SMOOTHER
+0x39 MOUSE_ENABLE_XY_OFFSET
+0x3a MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x3b MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x3c MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+0x3d MOUSE_ENABLE_24G_2M_PHY
+0x3e MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+//mouse dpi level
+0x00 MOUSE_DPI_LEVEL1
+0x01 MOUSE_DPI_LEVEL2
+0x02 MOUSE_DPI_LEVEL3
+0x03 MOUSE_DPI_LEVEL4
+
+
+//mouse sensor angle
+0x00 MOUSE_6CLK_ANGLE
+0X01 MOUSE_9CLK_ANGLE
+0X02 MOUSE_12CLK_ANGLE
+0X03 MOUSE_3CLK_ANGLE
+
+
+
+0xFF GPIO_DISABLE
+
+//DPI button state 
+0x00 DPI_BUTTON_STATE_UP
+0x01 DPI_BUTTON_STATE_DOWN
+
+
+//PB button state 
+0x00 PB_BUTTON_STATE_UP
+0x01 PB_BUTTON_STATE_DOWN
+
+//Commbination_key state 
+0x00 COMMBINATION_KEY_STATE_UP
+0x01 COMMBINATION_KEY_STATE_DOWN
+
+
+//eeprom address offect
+0X00 MOUSE_INFO_EEPROM_OFFECT
+0x58 MOUSE_STORE_FLAG
+0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
+0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
+0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
+0X61 MOUSE_EEPROM_MODULE_INIT_FLAG
+
+// Sensor id number
+0x30 P32XX_ID1
+0x31 P3065_ID1
+0x02 P3212_ID2
+0xD1 P3205_TJ3T_ID2
+0XD2 P3204_TJ3L_ID2
+0x54 PKA8_ID2
+0x70 P3065_XY_ID2
+0x00 P3065_ID2
+0x5a P_MX8650
+0xD8 P8009_ID2
+0x50 P6520A_ID2
+0x58 PKA8G2_ID1
+0x59 PKA8G2_ID2
+
+
+//Sensor type
+0X00 P3205
+0X01 P3065
+0X02 P3204
+0X03 P3212
+0X04 P3065_XY
+0x05 MX8650
+0x06 P8009
+0x07 P6520
+0X08 KA8
+0X09 KA8_UL
+0X0a KA8_HD
+0X0b KA8G2
+0X0c S201X
+
+
+//SENSOR REG
+0x00 PAN_REG_PID_L
+0x01 PAN_REG_PID_H
+0x02 PAN_REG_MOTION_STAUS
+0x03 PAN_REG_DELTA_X
+0x04 PAN_REG_DELTA_Y
+0x05 PAN_REG_OPRATION_MODE
+0x06 PAN_REG_CONFIG
+0x07 PAN_REG_IMAGE_QUALITY
+0x08 PAN_REG_OPRATION_STATE
+0x09 PAN_REG_WRITE_PROTECT
+0x0A PAN_REG_SLEEP_1
+0x0B PAN_REG_ENTER_TIME
+0x0C PAN_REG_SLEEP_2
+0x0D PAN_REG_IMAGE_THRESHOLD
+0x0E PAN_REG_IMAGE_RECGNITION
+
+
+0x06 MOUSE_DPI_ADDRESS
+0x05 MOUSE_P3610_DPI_ADDRESS
+0x0D MOUSE_P3212_DPI_XADDRESS
+0x0E MOUSE_P3212_DPI_YADDRESS
+
+)
+
+(
+0x01 ADV_FLAG_LIMITED_DISCOVERABLE
+0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
+)
+
+(
+2 BIT_POWER_ON
+)
+//device option low 2
+(
+1 MODE_4_MOUSE
+)
+
+
+(
+10 LE_LPM_DISABLE_TO
+1 LE_LPM_DISABLE
+0 LE_LPM_ENABLE
+
+12 LE_INTERVAL_15MS
+9 LE_INTERVAL_11_25MS//11.25ms
+7 LE_INTERVAL_8_75MS//8.75ms
+6 LE_INTERVAL_7_5MS//7.5ms
+12 CLASSIC_INTERVAL_7_5MS
+14 CLASSIC_INTERVAL_8_75MS
+18 CLASSIC_INTERVAL_11_25MS
+)
+
+(
+0x00 MOUSE_L_KEY
+0x01 MOUSE_R_KEY
+0x02 MOUSE_M_KEY
+0x03 MOUSE_BK_KEY
+0x04 MOUSE_FW_KEY
+0x05 MOUSE_DPI_KEY
+0x06 MOUSE_PB_KEY
+0x07 MOUSE_CUSTOMER_KEY
+0x00 MOUSE_DPI_ANOTHER_KEY
+)
+
+
+(
+0 G24_DISCONN_STATE
+1 G24_CONN_STATE
+
+8 G24_CH_NUMBER
+16 G24_CH_POLL_COUNT
+)
+
+(
+0 MOUSE_ADC_CHECK_BATTERY_ONLY
+1 MOUSE_ADC_CHECK_MULTIPLE
+2 MOUSE_ADC_CHECK_GPIO_MULTIPLE
+3 MOUSE_ADC_CHECK_HVIN_MULTIPLE
+)
+
+
+(
+0x5a MOUSE_USB_INTERFACE_INSERT
+0xa5 MOUSE_USB_INTERFACE_REMOVE
+)
+
+(
+0x10 MOUSE_BLE_L2CAP_TXBUFF_SIZE
+)
+
+(
+0 MOUSE_ADC_ENABLE
+1 MOUSE_SEARCH_DONGLE_ENABLE
+2 MOUSE_24G_250HZ_ENABLE
+3 MOUSE_CLK_16M_ENABLE
+4 MOUSE_DPI_4_LEVEL_ENABLE
+5 MOUSE_KEYBOARD_ENABLE
+
+7 MOUSE_DEVICE_NUMBER_FLAG
+)
+
+(
+0 MULTI_LED_ON
+1 MULTI_LED_BLINK
+)
+
+
+
+
+(
+// eeprom config
+0xb0 REMOTE_PARAM_EEPROM_CONFIG_ADDR
+//eeprom address offect
+0X00 REMOTE_INFO_EEPROM_OFFECT
+
+)
+
+
+(
+0x00 CONTROL_F_B_MOTOR
+0x02 CONTROL_L_R_MOTOR
+)
+
+(
+0x00 KEY_MAP_TEN
+0x01 KEY_MAP_LR
+)
+
+(
+0x00 CONTROL_F_B_TEN
+0x02 CONTROL_L_R_TEN
+0x03 CONTROL_L_R_LR
+)
+
+(
+0 KEY_CHECK
+1 ROCKER_CHECK
+)
+
+(
+1 MOTOR_POSITIVE
+2 MOTOR_NEGATIVE
+)
+
+(
+0 ROCKER_MIDDLE_KEY
+1 ROCKER_POSITIVE_KEY
+2 ROCKER_NEGATIVE_KEY
+)
+(
+0x700 OTP_OFFSET_REMOTE_COMMOM_START_ADDR 
+0x7cc OTP_OFFSET_REMOTE_COMMOM_END_ADDR 
+)
+
+
+
+
+
+
+
+(
+0 BLE_SHUTTER
+1 CLASSIC_SHUTTER
+)
+
+(
+0x0000 NVRAM_EEPROM_OFFSET
+)
+
+(
+0x1b3a SHUTTER_EEPROM_CONFIG_CRC
+)
+
+(
+5 MAX_QUEUE_NUM
+5 SHUTTER_BLE_DATA_BUFFER
+5 SHUTTER_CLASSIC_DATA_BUFFER
+)
+
+
+(
+0x13	GATT_CONSUMER_NOTIFY_HANDLE
+0x14	GATT_CONSUMER_WRITE_HANDLE
+0x17	GATT_KEYBOARD_NOTIFY_HANDLE
+0x18	GATT_KEYBOARD_WRITE_HANDLE
+)
+
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE
+//100ms
+0x00a0	SLOW_ADV_INTERVAL_VALUE
+)
+
+
+(
+0 ATT_BIT_NOTIFICATION
+1 ATT_BIT_INDICATION
+)
+///////////////////////////////////////////////////////////////////////////////////////
+
+(
+0 HARD_SWITCH
+1 SOFT_SWITCH
+)
+
+
+(
+1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+)
+
+(//Data Rom Buffer Addr
+313		BLE_GATT_LIST_SIZE
+487		BT_SDP_LIST_SIZE
+40		BLE_KEY_VALUE_LIST_SIZE
+40		BT_KEY_VALUE_LIST_SIZE
+)
+
+
+(//soft switch power state
+0		SS_STATE_POWER_UP
+1		SS_STATE_POWER_ON
+2		SS_STATE_POWER_OFF
+)
+
+(
+0		SS_POWER_STATE_OFFSET
+1		SS_POWER_ON_TIME
+2		SS_POWER_OFF_TIME
+3		SS_POWER_ON_CB
+5		SS_POWER_OFF_CB
+
+)
+
+(
+
+0x4FFE SIM_IIC_SCL_GPIO_NUM
+0x4FFF SIM_IIC_SDA_GPIO_NUM
+
+)
+
+(
+0 SHUTTER_TYPE
+1 SHUTTER_DY_TYPE
+)
+
+
+
+
+(
+10 MAX_QUEUE_NUM_COMBINEKEY
+15 MAX_QUEUE_NUM_RELEASE
+3 MAX_QUEUE_NUM_LONG
+3 MAX_QUEUE_NUM_LONG_RELEASE
+10 MAX_QUEUE_NEW_PRESS
+
+10 EVERY_PAYLOAD_LEN
+)
+
+
+(
+0x24	GATT_KEYBOARD_WRITE_HANDLE_NEW
+)
+
+
+///////////////////////////////////////////////////////////////////////////////////////
+
+(//Data Rom Buffer Addr
+640		BT_DY_KEY_VALUE_LIST_SIZE
+)
+
+//otp address offset
+(
+0x05   SHUTTER_PARA_TOTAL_NUM
+//0x7b0  SHUTTER_EFUSE_START_OFFECT	//璧峰鍦板潃
+//0x680  SHUTTER_EFUSE_END_OFFECT	       //缁撴潫鍦板潃
+)
+
+
+(
+//uart config
+115200 UART_BAUD
+)
+
+(
+10 SHUTTER_KEY_CONF_SATE_BYTES
+0 KEY_STATE_PRESS_CLK_OFFSET
+4 KEY_STATE_PRESS_COUNT_OFFSET
+5 KEY_STATE_RELEASE_CLK_OFFSET
+9 KEY_STATE_LONGPRESS_OFFSET
+4 KEY_STATE_PRESS_CLK_LENGTH
+1 KEY_STATE_PRESS_COUNT_LENGTH
+4 KEY_STATE_RELEASE_CLK_LENGTH
+1 KEY_STATE_LONGPRESS_LENGTH
+)
+
+(
+0  SHUTTER_RIGHT_KEY_NUM
+1  SHUTTER_LIKE_KEY_NUM
+2  SHUTTER_DOWN_KEY_NUM
+3  SHUTTER_PHOTO_KEY_NUM
+4  SHUTTER_UP_KEY_NUM
+5  SHUTTER_LEFT_KEY_NUM
+6  SHUTTER_MOVE_KEY_NUM
+7  SHUTTER_FUN_KEY_NUM
+)
+
+(
+//0xaa ANDROID_INITIAL_MOVE_X //170
+//0x78 ANDROID_INITIAL_MOVE_Y //120
+//0x69 IPHONE_INITIAL_MOVE_X
+//0x38 IPHONE_INITIAL_MOVE_Y
+0X0a ANDROID_EVERY_MOVE_SIZE
+0x07 IPHONE_EVERY_MOVE_SIZE
+0x62 IPHONE_ONCE_MAX_MOVE_VALUE
+)
+
+(
+0x00 MOVE_COMBINE_KEY
+0x01 MOVE_SINGLE_KEY
+)
+
+(
+//6key or 7key conf
+6 SHUTTER_SIX_KEY
+7 SHUTTER_SEVEN_KEY
+8 SHUTTER_EIGHT_KEY
+)
+
+
+
+
+
+
+(
+0x07 HCI_UART_TX_GPIO_NUM
+0x06 HCI_UART_RX_GPIO_NUM
+0x09 HCI_UART_RTS_GPIO_NUM
+0x0a HCI_UART_CTS_GPIO_NUM
+0x0c HCI_PMW_12MHZ_GPIO_NUM
+)
+
+(
+0x00 COMMAND_SUCCEEDED
+0x01 COMMAND_UNKNOWN
+0x0c COMMAND_DISALLOWED
+)
+
+//HCI H4 Packet TYPE
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+)
+
+(
+0x00 BT_ACL_START_NO_FLUSH
+0x01 BT_ACL_CONT
+0x02 BT_ACL_START
+)
+
+// HCI command opcode group field values
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_CONTROLLER_AND_BASEBAND
+0x04 HCI_OGF_INFOMATIONAL_PARAM
+0x05 HCI_OGF_STATUS_PARAM
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LE_CONTROLLER
+0x3f HCI_OGF_VENDOR_SPECIFIC_DEBUG
+)
+
+// HCI link control opcode command field values, OGF=1
+(
+0x01 HCI_INQUIRY 
+0x02 HCI_INQUIRY_CANCEL 
+0x03 HCI_PERIODIC_INQUIRY_MODE 
+0x04 HCI_EXIT_PERIODIC_INQUIRY_MODE 
+0x05 HCI_CREATE_CONNECTION 
+0x06 HCI_DISCONNECT 
+0x07 HCI_ADD_SCO_CONNECTION 
+0x08 HCI_CREATE_CONNECTION_CANCEL
+0x09 HCI_ACCEPT_CONNECTION 
+0x0A HCI_REJECT_CONNECTION 
+0x0B HCI_LINK_KEY_REQUEST_REPLY 
+0x0C HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY 
+0x0D HCI_PIN_CODE_REQUEST_REPLY 
+0x0E HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY 
+0x0F HCI_CHANGE_CONNECTION_PACKET_TYPE 
+0x11 HCI_AUTHENTICATION_REQUESTED 
+0x13 HCI_SET_CONNECTION_ENCRYPTION 
+0x15 HCI_CHANGE_CONNECTION_LINK_KEY 
+0x17 HCI_MASTER_LINK_KEY 
+0x19 HCI_REMOTE_NAME_REQUEST 
+0x1A HCI_REMOTE_NAME_REQUEST_CANCEL
+0x1B HCI_READ_REMOTE_SUPPORTED_FEATURES 
+0x1C HCI_READ_REMOTE_EXT_FEATURES 
+0x1D HCI_READ_REMOTE_VERSION_INFORMATION 
+0x1F HCI_READ_CLOCK_OFFSET 
+0x20 HCI_READ_LMP_HANDLE
+0x28 HCI_SETUP_SCO_CONNECTION
+0x29 HCI_ACCEPT_SCO_CONNECTION
+0x2A HCI_REJECT_SCO_CONNECTION
+0x2B HCI_IO_CAP_REQUEST_REPLY
+0x2C HCI_USER_CONFIRMATION_REQUEST_REPLY
+0x2D HCI_USER_CONFIRMATION_REQUEST_NEGATIVE_REPLY
+0x2E HCI_USER_PASSKEY_REQUEST_REPLY
+0x2F HCI_USER_PASSKEY_REQUEST_NEGATIVE_REPLY
+0x30 HCI_REMOTE_OOB_DATA_REQUEST_REPLY
+0x33 HCI_REMOTE_OOB_DATA_REQUEST_NEGATIVE_REPLY
+0x34 HCI_IO_CAPABILITY_REQUEST_NEGATIVE_REPLY
+0x35 HCI_CREATE_PHYSICAL_LINK
+0x36 HCI_ACCEPT_PHYSICAL_LINK
+0x37 HCI_DISCONNECT_PHYSICAL_LINK
+0x38 HCI_CREATE_LOGICAL_LINK
+0x39 HCI_ACCEPT_LOGICAL_LINK
+0x3A HCI_DISCONNECT_LOGICAL_LINK
+0x3B HCI_LOGICAL_LINK_CANCEL
+0x3C HCI_FLOW_SPEC_MODIFY
+0x3D HCI_ENHANCED_SETUP_SYNCHRONOUS_CONNECTION
+0x3E HCI_ENHANCED_ACCEPT_SYNCHRONOUS_CONNECTION_REQUEST
+0x3F HCI_TRUNCATED_PAGE
+0x40 HCI_TRUNCATED_PAGE_CANCEL
+0x41 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST
+0x42 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x43 HCI_START_SYNCHRONIZATION_TRAIN
+0x44 HCI_RECEIVE_SYNCHRONIZATION_TRAIN
+0x45 HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY
+)
+
+
+// HCI link policy commands OCF value, OGF=2
+(
+0x01 HCI_HOLD_MODE 
+0x03 HCI_SNIFF_MODE 
+0x04 HCI_EXIT_SNIFF_MODE 
+0x05 HCI_PARK_MODE 
+0x06 HCI_EXIT_PARK_MODE 
+0x07 HCI_QOS_SETUP 
+0x09 HCI_ROLE_DISCOVERY 
+0x0B HCI_SWITCH_ROLE 
+0x0C HCI_READ_LINK_POLICY_SETTINGS 
+0x0D HCI_WRITE_LINK_POLICY_SETTINGS 
+0x0e HCI_READ_DEFAULT_LINK_POLICY_SETTINGS
+0x0f HCI_WRITE_DEFAULT_LINK_POLICY_SETTINGS
+0x10 HCI_FLOW_SPECIFICATION
+0x11 HCI_SNIFF_SUBRATING
+)
+
+// HCI host controller and baseband commands OCF values, OGF=3
+(
+0x01 HCI_SET_EVENT_MASK 
+0x03 HCI_RESET 
+0x05 HCI_SET_EVENT_FILTER 
+0x08 HCI_FLUSH 
+0x09 HCI_READ_PIN_TYPE 
+0x0A HCI_WRITE_PIN_TYPE 
+0x0B HCI_CREATE_NEW_UNIT_KEY 
+0x0D HCI_READ_STORED_LINK_KEY 
+0x11 HCI_WRITE_STORED_LINK_KEY 
+0x12 HCI_DELETE_STORED_LINK_KEY 
+0x13 HCI_WRITE_LOCAL_NAME 
+0x14 HCI_READ_LOCAL_NAME 
+0x15 HCI_READ_CONN_ACCEPT_TIMEOUT 
+0x16 HCI_WRITE_CONN_ACCEPT_TIMEOUT 
+0x17 HCI_READ_PAGE_TIMEOUT 
+0x18 HCI_WRITE_PAGE_TIMEOUT 
+0x19 HCI_READ_SCAN_ENABLE 
+0x1A HCI_WRITE_SCAN_ENABLE 
+0x1B HCI_READ_PAGE_SCAN_ACTIVITY 
+0x1C HCI_WRITE_PAGE_SCAN_ACTIVITY 
+0x1D HCI_READ_INQUIRY_SCAN_ACTIVITY 
+0x1E HCI_WRITE_INQUIRY_SCAN_ACTIVITY 
+0x1F HCI_READ_AUTHENTICATION_ENABLE 
+0x20 HCI_WRITE_AUTHENTICATION_ENABLE 
+0x21 HCI_READ_ENCRYPTION_MODE 
+0x22 HCI_WRITE_ENCRYPTION_MODE 
+0x23 HCI_READ_CLASS_OF_DEVICE 
+0x24 HCI_WRITE_CLASS_OF_DEVICE 
+0x25 HCI_READ_VOICE_SETTING 
+0x26 HCI_WRITE_VOICE_SETTING 
+0x27 HCI_READ_AUTOMATIC_FLUSH_TIMEOUT 
+0x28 HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT 
+0x29 HCI_READ_NUM_BROADCAST_RETRANSMISSIONS 
+0x2A HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS 
+0x2B HCI_READ_HOLD_MODE_ACTIVITY 
+0x2C HCI_WRITE_HOLD_MODE_ACTIVITY 
+0x2D HCI_READ_TRANSMIT_POWER_LEVEL 
+0x2E HCI_READ_SCO_FLOW_CONTROL_ENABLE 
+0x2F HCI_WRITE_SCO_FLOW_CONTROL_ENABLE 
+0x31 HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL 
+0x33 HCI_HOST_BUFFER_SIZE 
+0x35 HCI_HOST_NUM_COMPLETED_PACKETS 
+0x36 HCI_READ_LINK_SUPERVISION_TIMEOUT 
+0x37 HCI_WRITE_LINK_SUPERVISION_TIMEOUT 
+0x38 HCI_READ_NUMBER_OF_SUPPORTED_IAC 
+0x39 HCI_READ_CURRENT_IAC_LAP 
+0x3A HCI_WRITE_CURRENT_IAC_LAP 
+0x3B HCI_READ_PAGE_SCAN_PERIOD_MODE 
+0x3C HCI_WRITE_PAGE_SCAN_PERIOD_MODE 
+0x3D HCI_READ_PAGE_SCAN_MODE 
+0x3E HCI_WRITE_PAGE_SCAN_MODE 
+0x3F HCI_SET_AFH_CHANNEL_CLASSIFICATION 
+
+
+0x42 HCI_READ_INQUIRY_SCAN_TYPE 
+0x43 HCI_WRITE_INQUIRY_SCAN_TYPE 
+0x44 HCI_READ_INQUIRY_MODE 
+0x45 HCI_WRITE_INQUIRY_MODE 
+0x46 HCI_READ_PAGE_SCAN_TYPE 
+0x47 HCI_WRITE_PAGE_SCAN_TYPE 
+
+0x48 HCI_READ_AFH_CHANNEL_ACCESSMENT_MODE 
+0x49 HCI_WRITE_AFH_CHANNEL_ACCESSMENT_MODE 
+0x51 HCI_READ_EXTENDED_INQUIRY_RESPONSE
+0x52 HCI_WRITE_EXTENDED_INQUIRY_RESPONSE
+0x53 HCI_REFRESH_ENCRYPTION_KEY
+0x55 HCI_READ_SIMPLE_PAIRING_MODE
+0x56 HCI_WRITE_SIMPLE_PAIRING_MODE
+0x57 HCI_READ_LOCAL_OOB_DATA
+0x58 HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL
+0x59 HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL
+0x60 HCI_SEND_KEYPRESS_NOTIFICATION
+0x5A HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5B HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5F HCI_ENHANCED_FLUSH
+0x61 HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x62 HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x63 HCI_SET_EVENT_MASK_PAGE_2
+0x64 HCI_READ_LOCATION_DATA
+0x65 HCI_WRITE_LOCATION_DATA
+0x66 HCI_READ_FLOW_CONTROL_MODE
+0x67 HCI_WRITE_FLOW_CONTROL_MODE
+0x68 HCI_READ_ENHANCE_TRANSMIT_POWER_LEVEL
+0x69 HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT
+0x6A HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT
+0x6B HCI_SHORT_RANGE_MODE
+0x6C HCI_READ_LE_HOST_SUPPORT
+0x6D HCI_WRITE_LE_HOST_SUPPORT
+0x6E HCI_SET_MWS_CHANNEL_PARAMETERS
+0x6F HCI_SET_EXTERNAL_FRAME_CONFIGURATION
+0x70 HCI_SET_MWS_SIGNALING
+0x71 HCI_SET_MWS_TRANSPORT_LAYER
+0x72 HCI_SET_MWS_SCAN_FREQUENCY_TABLE
+0x73 HCI_SET_MWS_PATTERN_CONFIGURATION
+0x74 HCI_SET_RESERVED_LT_ADDR
+0x75 HCI_DELETE_RESERVED_LT_ADDR
+0x76 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_DATA
+0x77 HCI_READ_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x78 HCI_WRITE_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x79 HCI_READ_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7A HCI_WRITE_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7B HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7C HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7D HCI_READ_LOCAL_OOB_EXTENDED_DATA
+0x7E HCI_READ_EXTENDED_PAGE_TIMEOUT
+0x7F HCI_WRITE_EXTENDED_PAGE_TIMEOUT
+0x80 HCI_READ_EXTENDED_INQUIRY_LENGTH
+0x81 HCI_WRITE_EXTENDED_INQUIRY_LENGTH
+)
+
+
+// HCI informational parameters OCF values, OGF=4
+(
+0x01 HCI_READ_LOCAL_VERSION_INFORMATION 
+0x02 HCI_READ_LOCAL_SUPPORTED_COMMANDS
+0x03 HCI_READ_LOCAL_SUPPORTED_FEATURES 
+0x04 HCI_READ_LOCAL_EXT_FEATURES 
+0x05 HCI_READ_BUFFER_SIZE 
+0x07 HCI_READ_COUNTRY_CODE 
+0x09 HCI_READ_BD_ADDR 
+0x0A HCI_REJECT_CONNECTION_REQUEST
+0x0B HCI_READ_LOCAL_SUPPORTED_CODECS
+)
+
+// HCI status parameters OCF values, OGF=5
+(
+0x01 HCI_READ_FAILED_CONTACT_COUNTER 
+0x02 HCI_RESET_FAILED_CONTACT_COUNTER 
+0x03 HCI_GET_LINK_QUALITY 
+0x05 HCI_READ_RSSI 
+0x06 HCI_READ_AFH_CHANNEL_MAP
+0x07 HCI_READ_BD_CLOCK
+0x08 HCI_READ_ENCRYPTION_KEY_SIZE
+0x09 HCI_READ_LOCAL_AMP_INFO
+0x0A HCI_READ_LOCAL_AMP_ASSOC
+0x0B HCI_WRITE_REMOTE_AMP_ASSOC
+0x0C HCI_GET_MWS_TRANSPORT_LAYER_CONFIGURATION
+0x0D HCI_SET_TRIGGERED_CLOCK_CAPTURE
+)
+
+// HCI testing command OCF values, OGF=6
+(
+0x01 HCI_READ_LOOPBACK_MODE 
+0x02 HCI_WRITE_LOOPBACK_MODE 
+0x03 HCI_ENABLE_DEVICE_UNDER_TEST_MODE 
+0x04 HCI_WRITE_SIMPLE_PAIRING_DEBUG_MODE
+0x07 HCI_ENABLE_AMP_RECEIVER_REPORTS
+0x08 HCI_AMP_TEST_END
+0x09 HCI_AMP_TEST
+0x0A HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE
+)
+
+// HCI vendor specific command OCF values -OGF=3F
+(
+0x01 HCI_WRITE_BD_ADDR 
+0x02 HCI_READ_INQUIRY_RESPONSE_TIMEOUT 
+0x03 HCI_WRITE_INQUIRY_RESPONSE_TIMEOUT 
+0x04 HCI_READ_PAGE_SCAN_REPETITION_MODE 
+0x05 HCI_WRITE_PAGE_SCAN_REPETITION_MODE 
+0x06 HCI_READ_PAGE_RESPONSE_TIMEOUT 
+0x07 HCI_WRITE_PAGE_RESPONSE_TIMEOUT 
+0x08 HCI_READ_NEW_CONNECTION_TIMEOUT 
+0x09 HCI_WRITE_NEW_CONNECTION_TIMEOUT 
+0x0a HCI_INITIALIZE_BASEBAND 
+0x0b HCI_WRITE_LOCAL_SUPPORTED_FEATURES 
+0x0c HCI_WRITE_PARK_PARAMETERS 
+0x0d HCI_READ_PARK_PARAMETERS 
+0x0e HCI_WRITE_QUALITY_OF_SERVICE 
+0x0f HCI_NOT_USED 
+0x10 HCI_MODIFY_BEACON_PARAMETERS 
+0x11 HCI_UNPARK_USING_PM_ADDR 
+0x12 HCI_WRITE_HOPPING_CHANNELS 
+0x13 HCI_SLEEP_FOREVER_MODE 
+0x14 HCI_WRITE_AUTO_PAGE_SCAN_ENABLE 
+0x15 HCI_READ_AUTO_PAGE_SCAN_ENABLE 
+0x16 HCI_SET_ENCRYPTION_KEY_SIZE 
+0x17 HCI_INVALIDATE_FLASH_AND_REBOOT 
+0x18 HCI_UPDATE_UART_BAUD_RATE 
+0x19 HCI_WRITE_GPIO_1_4_AS_OUTPUT 
+0x1A HCI_WRITE_GPIO_2_LED 
+0x1B HCI_SET_TESTMODE_TYPE 
+0x1C HCI_WRITE_SCO_PCM_INT_PARAM 
+0x1D HCI_READ_SCO_PCM_INT_PARAM 
+0x1E HCI_WRITE_PCM_DATA_FORMAT_PARAM 
+0x1F HCI_READ_PCM_DATA_FORMAT_PARAM 
+0x20 HCI_WRITE_COMFORT_NOISE_PARAM 
+0x21 HCI_READ_COMFORT_NOISE_PARAM 
+0x22 HCI_WRITE_SCO_TS 
+0x23 HCI_READ_SCO_TS 
+0x24 HCI_WRITE_PCM_LOOPBACK_MODE 
+0x25 HCI_READ_PCM_LOOPBACK_MODE 
+0x26 HCI_SET_TRANSMIT_POWER 
+0x27 HCI_SET_SLEEPMODE_PARAM 
+0x28 HCI_READ_SLEEPMODE_PARAM 
+0x29 HCI_SLEEPMODE_CMD 
+0x2A HCI_DELAY_PERIPHERAL_SCO_STARTUP 
+0x2B HCI_WRITE_RECEIVE_ONLY 
+0x2C HCI_WRITE_RATE_CONTROL 
+0x2D HCI_TX_UNMOD_CARRIER 
+0x2E HCI_DOWNLOAD_MINIDRIVER 
+0x2F HCI_CRYSTAL_PPM 
+0x30 HCI_SET_POWER_AMP_BIAS 
+0x31 HCI_SET_HAM_BEHAVIOR 
+0x32 HCI_SET_AFH_BEHAVIOR 
+0x33 HCI_READ_USER_DEFINED_NVRAM 
+0x34 HCI_ENABLE_RADIO 
+0x35 HCI_READ_DIAGNOSTIC_INFO 
+0x36 HCI_GET_HID_DEVICE_LIST 
+0x37 HCI_ADD_HID_DEVICE 
+0x38 HCI_READ_APP_FW_CONFIG_VERSION 
+0x39 HCI_DELETE_HID_DEVICE 
+0x3B HCI_ENABLE_USB_HID_EMULATION 
+// 0x3A available
+// 0x3B available
+0x3C HCI_SEND_LMPDU 
+0x3D HCI_AUTO_PAIR_REQ 
+0x3E HCI_READ_VS_EXTENSION 
+0x3F HCI_WRITE_VS_EXTENSION 
+
+0x77 HCI_OPCODE_FC77
+0x79 HCI_OPCODE_FC79
+0xC4 HCI_DOWNLOAD_PATCH
+0xCC HCI_OPCODE_FCCC
+
+0x00 HCI_VENDOR_CMD_RESET
+0x01 HCI_VENDOR_CMD_CHIPID
+0x02 HCI_VENDOR_CMD_BAUD
+0x03 HCI_VENDOR_CMD_PATCH
+0x04 HCI_VENDOR_CMD_PATCH_DONE
+0x05 HCI_VENDOR_CMD_ECHO
+0x06 HCI_VENDOR_CMD_BDADDR
+
+0x07 HCI_VENDOR_CMD_ENTER_LPM
+0x08 HCI_VENDOR_CMD_COMMU_READY
+
+0x10 HCI_VENDOR_CMD_MEM
+0x11 HCI_VENDOR_CMD_EEP
+
+0X12 HCI_VENDOR_CMD_PATCH_SEC_INIT
+0X13 HCI_VENDOR_CMD_PATCH_SEC
+0x14 HCI_VENDOR_CMD_SET_FLOW_CONTROL
+)
+
+//HCI LE controller command OCF values, OGF=8
+(
+0x01 HCI_LE_SET_EVENT_MASK
+0x02 HCI_LE_READ_BUFFER_SIZE
+0x03 HCI_LE_READ_LOCAL_SUPPORTED_FEATURES
+0x05 HCI_LE_SET_RANDOM_ADDRESS
+0x06 HCI_LE_SET_ADVERTISING_PARAMETERS
+0x07 HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER
+0x08 HCI_LE_SET_ADVERTISING_DATA
+0x09 HCI_LE_SET_SCAN_RESPONSE_DATA
+0x0A HCI_LE_SET_ADVERTISE_ENABLE
+0x0B HCI_LE_SET_SCAN_PARAMETERS
+0x0C HCI_LE_SET_SCAN_ENABLE
+0x0D HCI_LE_CREATE_CONNECTION
+0x0E HCI_LE_CREATE_CONNECTION_CANCEL
+0x0F HCI_LE_READ_WHITE_LIST_SIZE
+0x10 HCI_LE_CLEAR_WHITE_LIST
+0x11 HCI_LE_ADD_DEVICE_TO_WHITE_LIST
+0x12 HCI_LE_REMOVE_DEVICE_FROM_WHITE_LIST
+0x13 HCI_LE_CONNECTION_UPDATE
+0x14 HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION
+0x15 HCI_LE_READ_CHANNEL_MAP
+0x16 HCI_LE_READ_REMOTE_USED_FEATURES
+0x17 HCI_LE_ENCRYPT
+0x18 HCI_LE_RAND
+0x19 HCI_LE_START_ENCRYPTION
+0x1A HCI_LE_LONG_TERM_KEY_REQUEST_REPLY
+0x1B HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY
+0x1C HCI_LE_READ_SUPPORTED_STATES
+0x1D HCI_LE_RECEIVER_TEST
+0x1E HCI_LE_TRANSMITTER_TEST
+0x1F HCI_LE_TEST_END
+0x20 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_REPLY
+0x21 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_NEGATIVE_REPLY
+)
+// HCI event code
+(
+0x01 HCI_EVENT_INQUIRY_COMPLETE
+0x02 HCI_EVENT_INQUIRY_RESULT
+0x03 HCI_EVENT_CONNECTION_COMPLETE
+0x04 HCI_EVENT_CONNECTION_REQUEST
+0x05 HCI_EVENT_DISCONNECTION_COMPLETE
+0x06 HCI_EVENT_AUTHENTICATION_COMPLETE
+0x07 HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
+0x08 HCI_EVENT_ENCRYPTION_CHANGE_COMPLETE
+0x09 HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
+0x0A HCI_EVENT_MASTER_LINK_KEY_COMPLETE
+0x0B HCI_EVENT_READ_REMOTE_FEATURES_COMPLETE
+0x0C HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE
+0x0D HCI_EVENT_QOS_SETUP_COMPLETE
+0x0E HCI_EVENT_COMMAND_COMPLETE
+0x0F HCI_EVENT_COMMAND_STATUS
+0x10 HCI_EVENT_HARDWARE_ERROR
+0x11 HCI_EVENT_FLUSH_OCCURRED
+0x12 HCI_EVENT_ROLE_CHANGE
+0x13 HCI_EVENT_NUM_COMPLETED_PACKETS
+0x14 HCI_EVENT_MODE_CHANGE
+0x15 HCI_EVENT_RETURN_LINK_KEYS
+0x16 HCI_EVENT_PIN_CODE_REQUEST
+0x17 HCI_EVENT_LINK_KEY_REQUEST
+0x18 HCI_EVENT_LINK_KEY_NOTIFICATION
+0x19 HCI_EVENT_LOOPBACK_COMMAND
+0x1A HCI_EVENT_DATA_BUFFER_OVERFLOW
+0x1B HCI_EVENT_MAX_SLOTS_CHANGE
+0x1C HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
+0x1D HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
+0x1E HCI_EVENT_QOS_VIOLATION
+0x1F HCI_EVENT_PAGE_SCAN_MODE_CHANGE
+0x20 HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE
+0x21 HCI_EVENT_FLOW_SPECIFICATION_COMPLETE
+0x22 HCI_EVENT_INQUIRY_RESULT_WITHRSSI
+0x23 HCI_EVENT_READ_REMOTE_EXT_FEATURES_COMPLETE
+0x2C HCI_EVENT_SCO_CONNECTION_COMPLETE
+0x2D HCI_EVENT_SCO_CONNECTION_CHANGED
+0x2E HCI_EVENT_SNIFF_SUBRATING
+0x2F HCI_EVENT_EXT_INQUIRY_RESULT
+0x30 HCI_EVENT_ENCRYPT_KEY_REFRESH_COMPLETE
+0x31 HCI_EVENT_IO_CAP_REQ
+0x32 HCI_EVENT_IO_CAP_RESPONSE
+0x33 HCI_EVENT_USER_CONFIRMATION_REQUEST
+0x34 HCI_EVENT_UESR_PASSKEY_REQUEST
+0x35 HCI_EVENT_REMOTE_OOB_DATA_REQUEST
+0x36 HCI_EVENT_SIMPLE_PAIRING_COMPLETE
+0x38 HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED
+0x39 HCI_EVENT_ENHANCED_FLUSH_COMPLETE
+0x3B HCI_EVENT_USER_PASSKEY_NOTIFICATION
+0x3C HCI_EVENT_KEYPRESS_NOTIFICATION
+0x3D HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION 
+0x3E HCI_EVENT_LE_META_EVENT
+0x40 HCI_EVENT_PHYSICAL_LINK_COMPLETE
+0x41 HCI_EVENT_CHANNEL_SELECTED
+0x42 HCI_EVENT_DISCONNECTION_PHYSICAL_LINK_COMPLETE
+0x43 HCI_EVENT_PHYSICAL_LINK_LOSS_EARLY_WARNING
+0x44 HCI_EVENT_PHYSICAL_LINK_RECOVERY
+0x45 HCI_EVENT_LOGICAL_LINK_COMPLETE
+0x46 HCI_EVENT_DISCONNECTION_LOGICAL_LINK_COMPLETE
+0x47 HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE
+0x48 HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS
+0x49 HCI_EVENT_AMP_START_TEST
+0x4A HCI_EVENT_AMP_TEST_END
+0x4B HCI_EVENT_AMP_RECEIVER_REPORT
+0x4C HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE
+0x4D HCI_EVENT_AMP_STATUS_CHANGE
+0x4E HCI_EVENT_TRIGGERED_CLOCK_CAPTURE
+0x4F HCI_EVENT_SYNCHRONIZATION_TRAIN_COMPLETE
+0x50 HCI_EVENT_SYNCHRONIZATION_TRAIN_RECEIVED
+0x51 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x52 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_TIMEOUT
+0x53 HCI_EVENT_TRUNCATED_PAGE_COMPLETE
+0x54 HCI_EVENT_SLAVE_PAGE_RESPONSE_TIMEOUT
+0x55 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_CHANNEL_MAP_CHANGE
+0x56 HCI_EVENT_INQUIRY_RESPONSE_NOTIFICATION
+0x57 HCI_EVENT_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED
+
+0xFE HCI_EVENT_LOGO_TESTING
+0xFF HCI_EVENT_VENDOR_SPECIFIC
+)
+(
+0x01 HCI_VENDOR_EVENT_COMMU_READY
+)
+//HCI LE SUBEVENT CODE
+(
+0x01 HCI_LE_SUBEVENT_CONN_COMPLETE
+0x02 HCI_LE_SUBEVENT_ADV_REPORT
+0x03 HCI_LE_SUBEVENT_CONN_UPDATE_COMPLETE
+0x04 HCI_LE_SUBEVENT_REMOTE_FEATURE_COMPLETE
+0x05 HCI_LE_SUBEVENT_LTK_REQUEST
+0x06 HCI_LE_SUBEVENT_REMOTE_CONN_PARAM_REQ
+)
+
+
+
+
+
+
+//mem_l2cap_lpm_txbuf
+(
+256 l2cap_lpm_txbuf_len
+)
+
+(
+4 L2CAP_TX_FIFO_SIZE
+8 L2CAP_TX_BUFF_CNT
+
+)
+
+
+//
+//
+//Large memory blocks defined in this file.
+//Blocks Shall be defined with absolute address.
+//Blocks' length Shall be specified in comment following Blocks' names.
+//Different blocks MAY be overlap.
+//Blocks defined in this file Shall NOT be overlap with variable in memmap.format.
+
+(
+0xf00 mem_dcoc_buf
+0xff0 mem_dcoc_buf_end
+)
+
+//l2cap RX buffers
+(
+0xf00 mem_le_l2cap_buf		//0x100
+)
+
+//l2cap TX buffers
+(
+0xd00 mem_ble_tx_buff0
+0x60 mem_ble_l2cap_tx_buff_size
+)
+
+
+//uart buffer
+(
+0xc00 mem_h5rx_buf//0x400
+0xeff mem_h5rx_buf_end
+0xf00 mem_h5tx_buf
+0xfff mem_h5tx_buf_end
+)
+
+
+(
+0x4c00 mem_savelist
+)
+
+
+(
+	  0 patch00_0
+	  1 patch00_1
+	  2 patch00_2
+	  3 patch00_3
+	  4 patch00_4
+	  5 patch00_5
+	  6 patch00_6
+	  7 patch00_7
+	  8 patch01_0
+	  9 patch01_1
+	 10 patch01_2
+	 11 patch01_3
+	 12 patch01_4
+	 13 patch01_5
+	 14 patch01_6
+	 15 patch01_7
+	 16 patch02_0
+	 17 patch02_1
+	 18 patch02_2
+	 19 patch02_3
+	 20 patch02_4
+	 21 patch02_5
+	 22 patch02_6
+	 23 patch02_7
+	 24 patch03_0
+	 25 patch03_1
+	 26 patch03_2
+	 27 patch03_3
+	 28 patch03_4
+	 29 patch03_5
+	 30 patch03_6
+	 31 patch03_7
+	 32 patch04_0
+	 33 patch04_1
+	 34 patch04_2
+	 35 patch04_3
+	 36 patch04_4
+	 37 patch04_5
+	 38 patch04_6
+	 39 patch04_7
+	 40 patch05_0
+	 41 patch05_1
+	 42 patch05_2
+	 43 patch05_3
+	 44 patch05_4
+	 45 patch05_5
+	 46 patch05_6
+	 47 patch05_7
+	 48 patch06_0
+	 49 patch06_1
+	 50 patch06_2
+	 51 patch06_3
+	 52 patch06_4
+	 53 patch06_5
+	 54 patch06_6
+	 55 patch06_7
+	 56 patch07_0
+	 57 patch07_1
+	 58 patch07_2
+	 59 patch07_3
+	 60 patch07_4
+	 61 patch07_5
+	 62 patch07_6
+	 63 patch07_7
+	 64 patch08_0
+	 65 patch08_1
+	 66 patch08_2
+	 67 patch08_3
+	 68 patch08_4
+	 69 patch08_5
+	 70 patch08_6
+	 71 patch08_7
+	 72 patch09_0
+	 73 patch09_1
+	 74 patch09_2
+	 75 patch09_3
+	 76 patch09_4
+	 77 patch09_5
+	 78 patch09_6
+	 79 patch09_7
+	 80 patch0a_0
+	 81 patch0a_1
+	 82 patch0a_2
+	 83 patch0a_3
+	 84 patch0a_4
+	 85 patch0a_5
+	 86 patch0a_6
+	 87 patch0a_7
+	 88 patch0b_0
+	 89 patch0b_1
+	 90 patch0b_2
+	 91 patch0b_3
+	 92 patch0b_4
+	 93 patch0b_5
+	 94 patch0b_6
+	 95 patch0b_7
+	 96 patch0c_0
+	 97 patch0c_1
+	 98 patch0c_2
+	 99 patch0c_3
+	100 patch0c_4
+	101 patch0c_5
+	102 patch0c_6
+	103 patch0c_7
+	104 patch0d_0
+	105 patch0d_1
+	106 patch0d_2
+	107 patch0d_3
+	108 patch0d_4
+	109 patch0d_5
+	110 patch0d_6
+	111 patch0d_7
+	112 patch0e_0
+	113 patch0e_1
+	114 patch0e_2
+	115 patch0e_3
+	116 patch0e_4
+	117 patch0e_5
+	118 patch0e_6
+	119 patch0e_7
+	120 patch0f_0
+	121 patch0f_1
+	122 patch0f_2
+	123 patch0f_3
+	124 patch0f_4
+	125 patch0f_5
+	126 patch0f_6
+	127 patch0f_7
+	128 patch10_0
+	129 patch10_1
+	130 patch10_2
+	131 patch10_3
+	132 patch10_4
+	133 patch10_5
+	134 patch10_6
+	135 patch10_7
+	136 patch11_0
+	137 patch11_1
+	138 patch11_2
+	139 patch11_3
+	140 patch11_4
+	141 patch11_5
+	142 patch11_6
+	143 patch11_7
+	144 patch12_0
+	145 patch12_1
+	146 patch12_2
+	147 patch12_3
+	148 patch12_4
+	149 patch12_5
+	150 patch12_6
+	151 patch12_7
+	152 patch13_0
+	153 patch13_1
+	154 patch13_2
+	155 patch13_3
+	156 patch13_4
+	157 patch13_5
+	158 patch13_6
+	159 patch13_7
+	160 patch14_0
+	161 patch14_1
+	162 patch14_2
+	163 patch14_3
+	164 patch14_4
+	165 patch14_5
+	166 patch14_6
+	167 patch14_7
+	168 patch15_0
+	169 patch15_1
+	170 patch15_2
+	171 patch15_3
+	172 patch15_4
+	173 patch15_5
+	174 patch15_6
+	175 patch15_7
+	176 patch16_0
+	177 patch16_1
+	178 patch16_2
+	179 patch16_3
+	180 patch16_4
+	181 patch16_5
+	182 patch16_6
+	183 patch16_7
+	184 patch17_0
+	185 patch17_1
+	186 patch17_2
+	187 patch17_3
+	188 patch17_4
+	189 patch17_5
+	190 patch17_6
+	191 patch17_7
+	192 patch18_0
+	193 patch18_1
+	194 patch18_2
+	195 patch18_3
+	196 patch18_4
+	197 patch18_5
+	198 patch18_6
+	199 patch18_7
+	200 patch19_0
+	201 patch19_1
+	202 patch19_2
+	203 patch19_3
+	204 patch19_4
+	205 patch19_5
+	206 patch19_6
+	207 patch19_7
+	208 patch1a_0
+	209 patch1a_1
+	210 patch1a_2
+	211 patch1a_3
+	212 patch1a_4
+	213 patch1a_5
+	214 patch1a_6
+	215 patch1a_7
+	216 patch1b_0
+	217 patch1b_1
+	218 patch1b_2
+	219 patch1b_3
+	220 patch1b_4
+	221 patch1b_5
+	222 patch1b_6
+	223 patch1b_7
+	224 patch1c_0
+	225 patch1c_1
+	226 patch1c_2
+	227 patch1c_3
+	228 patch1c_4
+	229 patch1c_5
+	230 patch1c_6
+	231 patch1c_7
+	232 patch1d_0
+	233 patch1d_1
+	234 patch1d_2
+	235 patch1d_3
+	236 patch1d_4
+	237 patch1d_5
+	238 patch1d_6
+	239 patch1d_7
+	240 patch1e_0
+	241 patch1e_1
+	242 patch1e_2
+	243 patch1e_3
+	244 patch1e_4
+	245 patch1e_5
+	246 patch1e_6
+	247 patch1e_7
+	248 patch1f_0
+	249 patch1f_1
+	250 patch1f_2
+	251 patch1f_3
+	252 patch1f_4
+	253 patch1f_5
+	254 patch1f_6
+	255 patch1f_7
+	  0 patch20_0
+	  1 patch20_1
+	  2 patch20_2
+	  3 patch20_3
+	  4 patch20_4
+	  5 patch20_5
+	  6 patch20_6
+	  7 patch20_7
+	  8 patch21_0
+	  9 patch21_1
+	 10 patch21_2
+	 11 patch21_3
+	 12 patch21_4
+	 13 patch21_5
+	 14 patch21_6
+	 15 patch21_7
+	 16 patch22_0
+	 17 patch22_1
+	 18 patch22_2
+	 19 patch22_3
+	 20 patch22_4
+	 21 patch22_5
+	 22 patch22_6
+	 23 patch22_7
+	 24 patch23_0
+	 25 patch23_1
+	 26 patch23_2
+	 27 patch23_3
+	 28 patch23_4
+	 29 patch23_5
+	 30 patch23_6
+	 31 patch23_7
+	 32 patch24_0
+	 33 patch24_1
+	 34 patch24_2
+	 35 patch24_3
+	 36 patch24_4
+	 37 patch24_5
+	 38 patch24_6
+	 39 patch24_7
+	 40 patch25_0
+	 41 patch25_1
+	 42 patch25_2
+	 43 patch25_3
+	 44 patch25_4
+	 45 patch25_5
+	 46 patch25_6
+	 47 patch25_7
+	 48 patch26_0
+	 49 patch26_1
+	 50 patch26_2
+	 51 patch26_3
+	 52 patch26_4
+	 53 patch26_5
+	 54 patch26_6
+	 55 patch26_7
+	 56 patch27_0
+	 57 patch27_1
+	 58 patch27_2
+	 59 patch27_3
+	 60 patch27_4
+	 61 patch27_5
+	 62 patch27_6
+	 63 patch27_7
+	 64 patch28_0
+	 65 patch28_1
+	 66 patch28_2
+	 67 patch28_3
+	 68 patch28_4
+	 69 patch28_5
+	 70 patch28_6
+	 71 patch28_7
+	 72 patch29_0
+	 73 patch29_1
+	 74 patch29_2
+	 75 patch29_3
+	 76 patch29_4
+	 77 patch29_5
+	 78 patch29_6
+	 79 patch29_7
+	 80 patch2a_0
+	 81 patch2a_1
+	 82 patch2a_2
+	 83 patch2a_3
+	 84 patch2a_4
+	 85 patch2a_5
+	 86 patch2a_6
+	 87 patch2a_7
+	 88 patch2b_0
+	 89 patch2b_1
+	 90 patch2b_2
+	 91 patch2b_3
+	 92 patch2b_4
+	 93 patch2b_5
+	 94 patch2b_6
+	 95 patch2b_7
+	 96 patch2c_0
+	 97 patch2c_1
+	 98 patch2c_2
+	 99 patch2c_3
+	100 patch2c_4
+	101 patch2c_5
+	102 patch2c_6
+	103 patch2c_7
+	104 patch2d_0
+	105 patch2d_1
+	106 patch2d_2
+	107 patch2d_3
+	108 patch2d_4
+	109 patch2d_5
+	110 patch2d_6
+	111 patch2d_7
+	112 patch2e_0
+	113 patch2e_1
+	114 patch2e_2
+	115 patch2e_3
+	116 patch2e_4
+	117 patch2e_5
+	118 patch2e_6
+	119 patch2e_7
+	120 patch2f_0
+	121 patch2f_1
+	122 patch2f_2
+	123 patch2f_3
+	124 patch2f_4
+	125 patch2f_5
+	126 patch2f_6
+	127 patch2f_7
+	128 patch30_0
+	129 patch30_1
+	130 patch30_2
+	131 patch30_3
+	132 patch30_4
+	133 patch30_5
+	134 patch30_6
+	135 patch30_7
+	136 patch31_0
+	137 patch31_1
+	138 patch31_2
+	139 patch31_3
+	140 patch31_4
+	141 patch31_5
+	142 patch31_6
+	143 patch31_7
+	144 patch32_0
+	145 patch32_1
+	146 patch32_2
+	147 patch32_3
+	148 patch32_4
+	149 patch32_5
+	150 patch32_6
+	151 patch32_7
+	152 patch33_0
+	153 patch33_1
+	154 patch33_2
+	155 patch33_3
+	156 patch33_4
+	157 patch33_5
+	158 patch33_6
+	159 patch33_7
+	160 patch34_0
+	161 patch34_1
+	162 patch34_2
+	163 patch34_3
+	164 patch34_4
+	165 patch34_5
+	166 patch34_6
+	167 patch34_7
+	168 patch35_0
+	169 patch35_1
+	170 patch35_2
+	171 patch35_3
+	172 patch35_4
+	173 patch35_5
+	174 patch35_6
+	175 patch35_7
+	176 patch36_0
+	177 patch36_1
+	178 patch36_2
+	179 patch36_3
+	180 patch36_4
+	181 patch36_5
+	182 patch36_6
+	183 patch36_7
+	184 patch37_0
+	185 patch37_1
+	186 patch37_2
+	187 patch37_3
+	188 patch37_4
+	189 patch37_5
+	190 patch37_6
+	191 patch37_7
+	192 patch38_0
+	193 patch38_1
+	194 patch38_2
+	195 patch38_3
+	196 patch38_4
+	197 patch38_5
+	198 patch38_6
+	199 patch38_7
+	200 patch39_0
+	201 patch39_1
+	202 patch39_2
+	203 patch39_3
+	204 patch39_4
+	205 patch39_5
+	206 patch39_6
+	207 patch39_7
+	208 patch3a_0
+	209 patch3a_1
+	210 patch3a_2
+	211 patch3a_3
+	212 patch3a_4
+	213 patch3a_5
+	214 patch3a_6
+	215 patch3a_7
+	216 patch3b_0
+	217 patch3b_1
+	218 patch3b_2
+	219 patch3b_3
+	220 patch3b_4
+	221 patch3b_5
+	222 patch3b_6
+	223 patch3b_7
+	224 patch3c_0
+	225 patch3c_1
+	226 patch3c_2
+	227 patch3c_3
+	228 patch3c_4
+	229 patch3c_5
+	230 patch3c_6
+	231 patch3c_7
+	232 patch3d_0
+	233 patch3d_1
+	234 patch3d_2
+	235 patch3d_3
+	236 patch3d_4
+	237 patch3d_5
+	238 patch3d_6
+	239 patch3d_7
+	240 patch3e_0
+	241 patch3e_1
+	242 patch3e_2
+	243 patch3e_3
+	244 patch3e_4
+	245 patch3e_5
+	246 patch3e_6
+	247 patch3e_7
+	248 patch3f_0
+	249 patch3f_1
+	250 patch3f_2
+	251 patch3f_3
+	252 patch3f_4
+	253 patch3f_5
+	254 patch3f_6
+	255 patch3f_7
+
+)
+(
+	0x8000 core_chipid
+	0x8001 core_revid
+	0x8003 core_kick
+	0x8004 core_write_wdt
+	0x8005 core_lpm_wr
+	0x8006 core_misc_ctrl
+	0x8007 core_otp_rdata
+	0x8007 core_efuse_rdata
+	0x800a core_ccm_ctrl
+	0x800b core_write_wdt2
+	0x8010 core_reset
+	0x8011 core_encrypt
+	0x8012 core_lpm_wr2
+	0x8020 core_set_bistfix
+	0x8022 core_ucode_hi
+	0x8023 core_ucode_ctrl
+	0x8024 core_ucode_low
+	0x8025 core_ucode_data
+
+	0x8040 core_halfslot
+	0x8042 core_clksel
+	0x8043 core_uart_clksel
+	0x8043 core_config
+	0x8044 core_otp_addr
+	0x8046 core_otp_din
+	0x8046 core_otp_ctrl2
+	0x8047 core_otp_ctrl
+	0x8047 core_otp_pab
+	0x8048 core_xtal_stable_time
+	0x8049 core_gpio_ds
+	0x804c core_lpm_reg
+	0x8050 core_clkoff
+	0x8052 core_uart_baud
+	0x8054 core_uart_rsaddr
+	0x8056 core_uart_readdr
+	0x8058 core_uart_rrptr
+	0x805a core_uart_tsaddr
+	0x805c core_uart_teaddr
+	0x805e core_uart_twptr
+	0x8060 core_uart_ctrl
+	0x8061 core_nec_ctrl
+	0x8062 core_nec_start_addr
+	0x8064 core_nec_end_addr
+	0x8066 core_nec_rptr
+	0x8068 core_ccm_input_playload_addr
+	0x806a core_ccm_output_playload_addr
+	0x806c core_ccm_aad0
+	0x806d core_ccm_aad1
+	0x806e core_ccm_aad2
+	0x806f  core_bist_ctrl
+	0x8070 core_gpio_conf
+	0x8080 core_spid_ctrl
+	0x8081 core_spid_delay
+	0x8082 core_spid_txlen
+	0x8084 core_spid_txaddr
+	0x8086 core_spid_rxaddr
+	0x8088 core_spid_rxlen
+	0x808a core_iicd_ctrl
+	0x808b core_iicd_scl_low
+	0x808c core_iicd_scl_high
+	0x808d core_iicd_start_setup
+	0x808e core_iicd_start_hold
+	0x808f core_iicd_stop_setup
+	0x8090 core_iicd_data_setup
+	0x8091 core_iicd_data_hold
+	0x8092 core_iicd_txlen
+	0x8094 core_iicd_txaddr
+	0x8096 core_iicd_rxaddr
+	0x8098 core_iicd_rxlen
+	0x809a core_pwm_en
+	0x809b core_pwm_init
+	0x809c core_pwm_pcnt0
+	0x809e core_pwm_ncnt0
+	0x80a0 core_pwm_pcnt1
+	0x80a2 core_pwm_ncnt1
+	0x80a4 core_pwm_pcnt2
+	0x80a6 core_pwm_ncnt2
+	0x80a8 core_pwm_pcnt3
+	0x80aa core_pwm_ncnt3
+	0x80ac core_pwm_pcnt4
+	0x80ae core_pwm_ncnt4
+	0x80b0 core_pwm_pcnt5
+	0x80b2 core_pwm_ncnt5
+	0x80b4 core_pwm_pcnt6
+	0x80b6 core_pwm_ncnt6
+	0x80b8 core_pwm_pcnt7
+	0x80ba core_pwm_ncnt7
+	0x80bc core_pwm_sync
+	0x80bd core_pwm_timermode
+	0x80be core_pwm_autoload
+	0x80bf core_sum_ctrl
+	0x80c0 core_ccm_inptr
+	0x80c2 core_dac_ctrl	
+	0x80c3 core_dac_vol
+	0x80c4 core_dac_saddr
+	0x80c6 core_dac_len
+	0x80c8 core_dac_coef
+	0x80cb core_ccnt_bit
+	0x80cc core_sadc_ctrl
+	0x80cd core_sadc_clkdiv
+	0x80ce core_sadc_saddr
+	0x80d0 core_sadc_eaddr
+	0x80d2 core_keybuf_saddr
+	0x80d4 core_gpio_conf_hi
+	
+	0x8108 core_misc_status
+	0x8109 core_qdec_cntx
+	0x810a core_watchdog_cnt
+	0x810b core_uart_status
+	0x810c core_uart_rbaud
+	0x810e core_uart_txitems
+	0x8110 core_uart_trptr
+	0x8112 core_uart_rxitems
+	0x8114 core_uart_rdptr
+	0x8116 core_uart_rwptr
+	0x8118 core_debug_baud
+	0x811a core_ccm_outptr
+	0x811c core_gpio_in
+	0x811d core_gpio_in1
+	0x811e core_adc_sum
+	0x8120 core_nec_wptr
+	0x8122 core_current_otp_addr
+	0x8124 core_spid_remain
+	0x8126 core_iicd_remain
+	0x8128 core_dma_status
+	0x8129 core_perf_status
+	0x812a core_adc_in
+	0x812c core_nec_rxitem
+	0x812e core_otpd_remain
+	0x8130 core_lpm_ctrl
+	0x8132 core_lpm_isogate
+	0x8133 core_lpm_ldosel
+	0x8134 core_io_vsel
+	0x8135 core_io_doze_en
+	0x813a core_xtal_cap
+	0x813d core_xtal_ib
+	0x813e core_lpm_xtalcnt
+	0x813f core_lpm_buckcnt
+	0x8140 core_lpm_ldocnt
+	0x8141 core_puwakeup
+	0x8142 core_lpm_sysctl
+	0x8143 core_ucode_flag
+	0x8144 core_peripheral_lock
+	0x8145 core_mpu_s0_saddr
+	0x8147 core_mpu_s0_eaddr
+	0x8149 core_mpu_s1_saddr
+	0x814b core_mpu_s1_eaddr
+	0x814d core_gpio_wakeup_cfg
+	0x8155 core_aes_decode_key_init
+	0x815b core_clk_counter
+	0x815e core_bist_done
+	0x8160 core_bist_fail
+	0x8162 core_dac_rptr	
+	0x8164 core_sadc_data	
+	0x8166 core_rccnt_counter
+		
+	0x8203 core_ice_ctrl
+	0x8204 core_ice_status
+	0x8205 core_ice_break0
+	0x8207 core_ice_break1
+  
+
+	0x8900 modem_en
+	0x8960 core_rf_rx_agc_ctrl
+	0x8961 core_rf_rx_gain_fix
+	0x8968 core_agc_wb_sat_th
+	0x8969 core_agc_nb_sat_th
+	0x89a0 modem_rssi
+	0x89a1 modem_wb_pow
+	0x89a2 modem_nb_pow
+	0x89a3 modem_gain
+	0x89a4 modem_status
+
+	0x8a00 core_bbpll_ctrl0              
+	0x8a01 core_bbpll_ctrl1              
+	0x8a02 core_bbpll_cfg0               
+	0x8a03 core_bbpll_cfg1               
+	0x8a04 core_bbpll_cfg2               
+	0x8a05 core_bbpll_cfg3               
+	0x8a06 core_bbpll_cfg4               
+	0x8a07 core_gpadc_ctrl
+	0x8a08 core_gpadc_cfg0
+	0x8a09 core_gpadc_cfg1
+	0x8a0a core_gpadc_cfg2
+	0x8a0b core_gpadc_cfg3
+	0x8a0c core_gpadc_status
+	0x8a0d core_vtest_ctrl0
+	0x8a0e core_vtest_ctrl1
+	0x8a0f core_ldo_trx_ctrl0
+	0x8a10 core_ldo_trx_ctrl1
+	0x8a11 core_ldo_trx_ctrl2
+	0x8a12 core_ldo_rfpll_ctrl
+    0x8a13 core_ldo_trx_cfg0
+    0x8a14 core_ldo_trx_cfg1
+    0x8a15 core_ldo_trx_cfg2
+    0x8a16 core_ldo_rfpll_mnc_cfg2
+
+    0x8a20 core_rfpll_afc_ctrl0
+    0x8a21 core_rfpll_afc_ctrl1
+    0x8a22 core_rfpll_afc_ctrl2
+    0x8a23 core_rfpll_en_ctrl0
+    0x8a24 core_rfpll_en_ctrl1
+    0x8a25 core_rf_en_ctrl0
+    0x8a26 core_rf_en_ctrl1
+
+	0x8a30 core_rx_force_en_ctrl
+	0x8a31 core_rx_gc_force_val
+	0x8a32 core_rx_lna_isel_force_val
+
+	0x8a40 core_rx_lna_hg_isel_gc7        
+	0x8a41 core_rx_lna_hg_isel_gc6        
+	0x8a42 core_rx_lna_hg_isel_gc5        
+	0x8a43 core_rx_lna_lg_isel_gc4        
+	0x8a44 core_rx_lna_lg_isel_gc3        
+	0x8a45 core_rx_lna_lg_isel_gc2        
+	0x8a46 core_rx_lna_lg_isel_gc1        
+	0x8a47 core_rx_lna_lg_isel_gc0        
+	0x8a48 core_rx_abb_gc_gc8              
+	0x8a49 core_rx_abb_gc_gc7              
+	0x8a4a core_rx_abb_gc_gc6              
+	0x8a4b core_rx_abb_gc_gc5              
+	0x8a4c core_rx_abb_gc_gc4              
+	0x8a4d core_rx_abb_gc_gc3              
+	0x8a4e core_rx_abb_gc_gc2              
+	0x8a4f core_rx_abb_gc_gc1              
+	0x8a50 core_rx_abb_gc_gc0              
+
+	0x8a60 core_tx_ctrl0
+	0x8a61 core_tx_ctrl1
+	0x8a62 core_tx_ctrl2
+	0x8a63 core_tx_ctrl3
+
+	0x8a70 core_rfpll_cal_ctrl0
+	0x8a71 core_rfpll_cal_ctrl1
+	0x8a72 core_rfpll_cal_ctrl2
+	0x8a73 core_rfpll_cal_ctrl3
+	0x8a74 core_rfpll_cal_ctrl4
+	0x8a75 core_rfpll_cal_ctrl5
+	0x8a76 core_rfpll_cal_ctrl6
+	0x8a77 core_rfpll_cal_ctrl7
+	0x8a78 core_rfpll_cal_ctrl8
+	0x8a79 core_rfpll_cal_ctrl9
+	0x8a7a core_rfpll_cal_ctrl10
+	0x8a7b core_rfpll_cal_ctrl11
+	0x8a7c core_rfpll_cal_result0
+	0x8a7d core_rfpll_cal_result1
+	0x8a7e core_rfpll_cal_result2
+
+    0x8a80 core_rfpll_cfg0
+    0x8a81 core_rfpll_cfg1
+    0x8a82 core_rfpll_cfg2
+    0x8a83 core_rfpll_cfg3
+    0x8a84 core_rfpll_cfg4
+    0x8a85 core_rfpll_cfg5
+    0x8a86 core_rfpll_cfg6
+    0x8a87 core_rfpll_cfg7
+
+    0x8a88 core_rx_cfg0
+    0x8a89 core_rx_cfg1
+    0x8a8a core_rx_cfg2
+    0x8a8b core_rx_cfg3
+    0x8a8c core_rx_cfg4
+    0x8a8d core_rx_cfg5
+    0x8a8e core_rx_cfg6
+    0x8a8f core_rx_cfg7
+    0x8a90 core_rx_cfg8
+
+	0x8aa0 core_rx_tiai_dcoc_gc0          
+	0x8aa1 core_rx_tiaq_dcoc_gc0          
+	0x8aa2 core_rx_tiai_dcoc_gc1          
+	0x8aa3 core_rx_tiaq_dcoc_gc1          
+	0x8aa4 core_rx_tiai_dcoc_gc2          
+	0x8aa5 core_rx_tiaq_dcoc_gc2          
+	0x8aa6 core_rx_tiai_dcoc_gc3          
+	0x8aa7 core_rx_tiaq_dcoc_gc3          
+	0x8aa8 core_rx_tiai_dcoc_gc4          
+	0x8aa9 core_rx_tiaq_dcoc_gc4          
+	0x8aaa core_rx_tiai_dcoc_gc5          
+	0x8aab core_rx_tiaq_dcoc_gc5          
+	0x8aac core_rx_tiai_dcoc_gc6          
+	0x8aad core_rx_tiaq_dcoc_gc6          
+	0x8aae core_rx_tiai_dcoc_gc7          
+	0x8aaf core_rx_tiaq_dcoc_gc7          
+	0x8ab0 core_rx_abbi_dcoc_gc0
+	0x8ab1 core_rx_abbq_dcoc_gc0
+	0x8ab2 core_rx_abbi_dcoc_gc1
+	0x8ab3 core_rx_abbq_dcoc_gc1           
+	0x8ab4 core_rx_abbi_dcoc_gc2
+	0x8ab5 core_rx_abbq_dcoc_gc2
+	0x8ab6 core_rx_abbi_dcoc_gc3
+	0x8ab7 core_rx_abbq_dcoc_gc3
+	0x8ab8 core_rx_abbi_dcoc_gc4
+	0x8ab9 core_rx_abbq_dcoc_gc4
+	0x8aba core_rx_abbi_dcoc_gc5
+	0x8abb core_rx_abbq_dcoc_gc5
+	0x8abc core_rx_abbi_dcoc_gc6
+	0x8abd core_rx_abbq_dcoc_gc6
+	0x8abe core_rx_abbi_dcoc_gc7
+	0x8abf core_rx_abbq_dcoc_gc7
+	0x8ac0 core_rx_abbi_dcoc_gc8
+	0x8ac1 core_rx_abbq_dcoc_gc8
+	0x8ac2 core_rx_tiai_dcoc_force
+	0x8ac3 core_rx_tiaq_dcoc_force
+	0x8ac4 core_rx_abbi_dcoc_force
+	0x8ac5 core_rx_abbq_dcoc_force
+	0x8ac8 core_chgpump_ctrl
+
+	0x8c00 core_usb_config
+	0x8c01 core_usb_addr
+	0x8c02 core_usb_rx_saddr
+	0x8c04 core_usb_rx_eaddr
+	0x8c06 core_usb_rxptr
+	0x8c08 core_usb_tx_saddr0
+	0x8c0a core_usb_tx_saddr1
+	0x8c0c core_usb_tx_saddr2
+	0x8c0e core_usb_tx_saddr3
+	0x8c10 core_usb_epmap
+	0x8c11 core_usb_pupd
+	0x8c12 core_usb_hmode
+	0x8c13 core_usb_int_mask
+	0x8c18 core_usb_trig
+	0x8c19 core_usb_stall
+	0x8c1a core_usb_toggle
+	0x8c1b core_usb_clear_nak
+	0x8c20 core_usb_rx_wptr
+	0x8c22 core_usb_status
+	0x8c24 core_usb_stall_status
+	0x8c25 core_usb_txbusy
+	0x8c26 core_usb_sof_cnt
+	0x8c28 core_usb_rxcnt
+
+	
+
+
+
+    
+    
+)
+
+(
+7 AES_EN
+)
+
+(
+4 rx_freq_offset
+2 tx_freq_offset
+)
+
+(
+
+  4 whiteoff_bit
+  6 clksel_rc
+  1 clksel_dpll_24M
+  5 clksel_dpll
+  4 clksel_xtal
+  5 adc_rccal
+  0 bpf_rccal
+  1 demod_clkoff
+)
+
+// retention mem ctrl
+(
+  4 cold_wake
+  5 gpio_latch
+  6 retmem_cs
+  7 isogate
+)
+
+// sys ctrl
+(
+  2 fast_wake
+  3 ice_mode
+  4 reload_code
+)
+
+// lpm_write
+(
+1 lpmreg_sel_counter
+2 lpmreg_sel_scanmode
+)
+
+// lock bits
+(
+0 SPI_LOCK_BIT
+1 PWM_LOCK_BIT
+2 UART_LOCK_BIT
+3 IIC_LOCK_BIT
+4 ADPCM_LOCK_BIT
+5 ROM_LOCK_BIT
+6 OPTION_LOCK
+6 OTP_NOT_LIMIT
+7 OTP_LIMIT
+)
+
+(
+4 LPM_DOZE_EN_BIT	
+)
+
+// misc ctrl
+(
+  0x01 RCCNT_START
+  0x02 SPID_START
+  0x04 IICD_START
+  0x08 OTP_KEY_LOCK
+  0x10 INIT_KEY
+  0x20 SHIFT_KEY
+  0X80 CCNT_START
+)
+// DMA STATUS BIT
+(
+  0 OTPD_CRCOK
+  1 OTPD_DONE
+  2 SPID_CRCOK
+  3 SPID_DONE
+  4 IICD_CRCOK
+  5 IICD_DONE
+  6 IICD_ACK
+)
+
+//bit map of core_uart_status
+(
+1 UART_STATUS_TX_BUSY
+2 UART_STATUS_RX_FIFO_EMPTY
+3 UART_STATUS_RX_FIFO_FULL
+4 UARTB_STATUS_TX_BUSY
+5 UARTB_STATUS_RX_FIFO_EMPTY
+6 UARTB_STATUS_RX_FIFO_FULL
+)
+
+(//core_uart_clksel
+0 UART_CLOCK_SELECT_BIT
+0xFE UART_CLOCK_SELECT_CRYSTAL
+0x01 UART_CLOCK_SELECT_DPLL
+
+24000000 uart_clock_freq_24M
+48000000 uart_clock_freq_48M
+)
+
+
+(//bit map of core_uart_ctrl
+0 BIT_UART_CONTROL_ENABLE
+1 BIT_UART_CONTROL_PARITY
+2 BIT_UART_CONTROL_DATA_LENGTH
+3 BIT_UART_CONTROL_STOP_BIT_SIZE
+4 BIT_UART_CONTROL_FLOW_CONTROL
+5 BIT_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+6 BIT_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+7 BIT_UART_CONTROL_RATE_BAUD_SETTING
+)
+(//FUN of core_uart_ctrl
+0x01 FUN_UART_CONTROL_ENABLE
+0x06 FUN_UART_CONTROL_PARITY_ODD
+0x04 FUN_UART_CONTROL_PARITY_EVEN
+0x08 FUN_UART_CONTROL_STOP_2BIT
+0x00 FUN_UART_CONTROL_STOP_1BIT
+0x10 FUN_UART_CONTROL_FLOW_CONTROL_ENABLE
+0x20 FUN_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+0x40 FUN_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+0x80 FUN_UART_CONTROL_SETTING_RATE_BAUD
+)
+
+(//bit map of core_nec_control
+0x00 BIT_NEC_ENABLE
+0x01 BIT_NEC_CLK_DIVIDE_NUM
+)
+
+(//FUN  of core_nec_control
+0x01 FUN_NEC_ENABLE
+0x30 FUN_NEC_CLK_DIVIDE_24	//24M , 
+)
+
+0x8b uart_ctrl_default //BCSP
+0x81 uart_ctrl_h4 //H4
+0x81 uart_ctrl_normal
+0x91 uart_ctrl_5line
+0x81 uart_ctrl_57600
+2 uart_baud_len
+0x00 uartclk_crystal
+0x01 uartclk_dpll
+0x1a0 uart_baud_115200
+0xbb uart_baud_256000
+0x340 uart_baud_57600
+0x34 uart_baud_921600
+0x9c4 uart_baud_9600
+
+//core_clkoff
+(
+	0 CLOCK_OFF_AUTH_ROM
+	1 CLOCK_OFF_UC_ROM
+	2 CLOCK_OFF_DEBUG_UART
+	3 CLOCK_OFF_SCHED_RAM
+	4 CLOCK_OFF_TRANCE_FIFO
+	5 CLOCK_OFF_CORDIC
+	6 CLOCK_OFF_OTPD
+	7 CLOCK_OFF_I2C
+	8 CLICK_OFF_SARADC_DMA
+	9 CLOCK_OFF_KEYSCAN
+	0x0a CLOCK_OFF_USB
+	0x0b CLOCK_OFF_QDECODER
+	0x0c CLOCK_OFF_SPI
+	0x0d CLOCK_OFF_PWM
+	0x0e CLOCK_OFF_UARTB
+	0x0f CLOCK_OFF_UART
+)
+
+// gpio config types
+(
+  0 gpcfg_input
+  6 gpcfg_dac_p  
+  7 gpcfg_dac_n
+  8 gpcfg_uart_txd
+  9 gpcfg_uart_rxd
+  10 gpcfg_uart_rts
+  11 gpcfg_uart_cts
+  
+  16 gpcfg_pwm_out0
+  17 gpcfg_pwm_out1
+  18 gpcfg_pwm_out2
+  19 gpcfg_pwm_out3
+  20 gpcfg_pwm_out4
+  21 gpcfg_pwm_out5
+  22 gpcfg_pwm_out6
+  23 gpcfg_pwm_out7
+  24 gpcfg_nec_input
+  
+  31 gpcfg_spid_miso
+  32 gpcfg_spid_ncs
+  33 gpcfg_spid_sck
+  34 gpcfg_spid_mosi
+  35 gpcfg_spid_sdio
+  
+  44 gpcfg_iic_scl
+  45 gpcfg_iic_sda
+  
+  62 gpcfg_output_low
+  63 gpcfg_output_high
+  
+  0x00 gpcfg_high_impedance
+  0x40 gpcfg_pullup
+  0x80 gpcfg_pulldown
+  0xc0 gpcfg_no_ie
+)
+
+(
+16	GPIO_NUMBER
+8	GPIO_NUMBER_EXT
+)
+
+
+
+
+
+
+
+
+
+(
+  0x00   SP_FLAG_STANDBY
+  0x02   LE_SP_FLAG_COMMIT_256
+
+)
+
+
+(
+  0x00   SP_CALC_STANDBY
+  0x03   SP_CALC_PUBKEY_256
+  0x04   SP_CALC_DHKEY_256
+)
+
+
+
+
+(
+  0x00   SP_KEY_INVALID
+  0x03   SP_KEY_VALID_256
+
+)
+
+
+//mem_secure_connections_enable
+(
+0 SECURE_CONNECTIONS_LE_BIT
+1 SECURE_CONNECTIONS_BR_BIT
+)
+
+
+  
+
+
+
+
+
+
+
+	
+
+
+
+//mem_ui_state_map
+(
+9 UI_STATE_BLE_CONNECTED
+10 UI_STATE_BLE_WRITE_RCV
+11 UI_STATE_BLE_ADV
+12 UI_STATE_BTN_DOWN
+)
+
+
+
+
+(
+0 BT_CMD_STANDBY
+13 BT_CMD_START_ADV
+14 BT_CMD_STOP_ADV
+15 BT_CMD_START_DIRECT_ADV
+16 BT_CMD_STOP_DIRECT_ADV
+17 BT_CMD_LE_DISCONNECT
+18 BT_CMD_LE_UPDATE_CONN
+19 BT_CMD_LED_OFF
+20 BT_CMD_LED_ON
+21 BT_CMD_LED_BLINK
+22 BT_CMD_LE_START_CONN
+23 BT_CMD_LE_START_SCAN
+24 BT_CMD_LE_STOP_SCAN
+25 BT_CMD_ENTER_HIBERNATE
+27 BT_CMD_LE_SMP_SECURITY_REQUEST
+31 BT_CMD_STORE_RECONN_INFO_LE
+34 BT_CMD_START_24G
+35 BT_CMD_STOP_24G
+36 BT_CMD_PAIR_24G
+)
+
+(
+0x00 BT_EVT_NULL
+0x0F BT_EVT_DISCOVERY_STOPED
+0x10 BT_EVT_BUTTON_LONG_PRESSED
+0x14 BT_EVT_LE_CONNECTED
+0X15 BT_EVT_LE_DISCONNECTED
+0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
+0x25 BT_EVT_BUTTON_ADJUST_DPI
+0x28 BT_EVT_LE_WRITE_REQUEST
+0x29 BT_EVT_LE_ENC_INFO
+0x2c BT_EVT_BUTTON_DOWN
+0x2d BT_EVT_BUTTON_UP
+0x2e BT_EVT_REMOTE_UNSNIFF
+0x30 BT_EVT_LE_PAIRING_FAIL
+0x31 BT_EVT_LE_PAIRING_SUCCESS
+0x32 BT_EVT_LE_START_ENC
+0X33 BT_EVT_LE_PAUSE_ENC
+0X34 BT_EVT_LE_TK_GENERATE
+0x35 BT_EVT_BT_GKEY_GENERATE
+0x36 BT_EVT_BT_GET_PASSKEY
+0x39 BT_EVT_24G_PAIRING_COMPLETE
+0x3a BT_EVT_24G_ATTEMPT_FAIL
+0x3b BT_EVT_LE_GKEY_GENERATE
+0x3c BT_EVT_24G_ATTEMPT_SUCCESS
+0x3d BT_EVT_STORE_NVRAM
+0x3e BT_EVT_LE_PAIRING_COMPLETE
+0x3F BT_EVT_LE_RECONNECT_COMPLETE
+0x40 BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP
+0x41 BT_EVT_LE_LTK_LOST
+0x42 BT_EVT_LE_UPDATE_PHY
+0x43 BT_EVT_LE_GET_PASSKEY
+0x44 BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED
+)
+//switch
+(
+0 OFF
+1 ON
+)
+
+
+(
+	160 UI_HUNDRED_MILLISECOND_TIME
+	0XFF UI_BUTTON_GPIO_DISABLE
+)
+
+(
+0x00 UI_BUTTON_STATE_DOWN
+0x01 UI_BUTTON_STATE_UP
+)
+
+//mem_ipc_skip_continue_proc
+(
+	0 IPC_CONTINUE_PROCESS
+	1 IPC_SKIP_CONTINUE_PROCESS
+)
+
+
+(//led style struct 
+0 		LED_OFFSET_LED_TYPE
+1 		LED_OFFSET_BLINK_COUNT
+2		LED_OFFSET_LED_GPIO
+3		LED_OFFSET_ON_TIME
+5		LED_OFFSET_OFF_TIME
+7 		LED_OFFSET_CB_LEDON
+9		LED_OFFSET_CB_LEDOFF
+11		LED_OFFSET_LENGTH
+)
+
+(//LED state
+0 UI_LED_STATE_BLINK_STOP
+1 UI_LED_STATE_BLINK_START
+2 UI_LED_STATE_LIGHTING
+3 UI_LED_STATE_DARKING
+4 UI_LED_STATE_BLINK_LIGHTING
+5 UI_LED_STATE_BLINK_DARKING
+
+0xFF LED_INFINITE_FLASH_NUM
+
+)
+
+
+
+//class type
+(
+0x00 STANDARD_REQ
+0x01 CLASS_REQ
+0x02 MANUFACTURER_REQ
+)
+//Standard Request Codes
+(
+0x00 GET_STATUS                // Code for Get Status
+0x01 CLEAR_FEATURE             // Code for Clear Feature
+0x03 SET_FEATURE              // Code for Set Feature
+0x05 SET_ADDRESS              // Code for Set Address
+0x06 GET_DESCRIPTOR           // Code for Get Descriptor
+0x07 SET_DESCRIPTOR           // Code for Set Descriptor(not used)
+0x08 GET_CONFIGURATION        // Code for Get Configuration
+0x09 SET_CONFIGURATION        // Code for Set Configuration
+0x0A GET_INTERFACE            // Code for Get Interface
+0x0B SET_INTERFACE            // Code for Set Interface
+0x0C SYNCH_FRAME              // Code for Synch Frame(not used)
+)
+//Standard Descriptor Types
+(
+0x01 DSC_DEVICE               // Device Descriptor
+0x02 DSC_CONFIG               // Configuration Descriptor
+0x03 DSC_STRING               // String Descriptor
+0x04 DSC_INTERFACE            // Interface Descriptor
+0x05 DSC_ENDPOINT             // Endpoint Descriptor
+)
+//HID Descriptor Types
+(
+0x21 DSC_HID			      // HID Class Descriptor
+0x22 DSC_HID_REPORT			  // HID Report Descriptor
+)
+//Define bmRequestType bitmaps
+(
+0x80 IN_DEVICE                // Request made to device,
+                              // direction is IN
+0x00 OUT_DEVICE               // Request made to device,
+                              // direction is OUT
+0x81 IN_INTERFACE             // Request made to interface,
+                              // direction is IN
+0x01 OUT_INTERFACE            // Request made to interface,
+                              // direction is OUT
+0x82 IN_ENDPOINT              // Request made to endpoint,
+                              // direction is IN
+0x02 OUT_ENDPOINT             // Request made to endpoint,
+)
+//HID Request Codes
+(
+0x01 GET_REPORT 		       // Code for Get Report
+0x02 GET_IDLE				   // Code for Get Idle
+0x03 GET_PROTOCOL			   // Code for Get Protocol
+0x09 SET_REPORT				   // Code for Set Report
+0x0A SET_IDLE				   // Code for Set Idle
+0x0B SET_PROTOCOL			   // Code for Set Protocol
+0xF2 HID_REPORT_ID           
+64 EP0_PACKET_SIZE         
+6 EP1_PACKET_SIZE         
+16 HID_REPORT_SIZE         
+0x001B HID_REPORT_DESCRIPTOR_SIZE    
+)
+//math cordic
+(
+0 TYPE_SIN		
+1 TYPE_ATAN	
+2 TYPE_MULT	
+3 TYPE_DIV		
+4 TYPE_ASIN	
+5 TYPE_SQRT	
+6 TYPE_COS		
+7 TYPE_TAN		 
+)
+   
+(
+0 DFIFO0_IN_EMPTY
+1 DFIFO1_IN_EMPTY
+2 DFIFO2_IN_EMPTY
+3 DFIFO3_IN_EMPTY
+4 DFIFO0_OUT_EMPTY
+5 DFIFO1_OUT_EMPTY
+6 DFIFO2_OUT_EMPTY
+7 DFIFO3_OUT_EMPTY
+)
+
+(
+)
+
+(
+0 USB_STATUS_SETUP
+1 USB_STATUS_SUSPEND
+2 USB_STATUS_NAK
+3 USB_STATUS_RESET
+4 USB_STATUS_ACK
+5 USB_STATUS_RXREADY
+6 USB_STATUS_RXFULL
+7 USB_STATUS_TXDONE0
+8 USB_STATUS_TXDONE1
+9 USB_STATUS_TXDONE2
+10 USB_STATUS_TXDONE3
+)
+
+(
+1 USB_GOT_REPORT_REQ
+2 USB_CONNECTED
+3 USB_SLEEP
+4 USB_RESUME
+5 USB_SETIDLE_1
+)
+
+(
+0x10 USB_EP1_KB
+0x20 USB_EP2_MS
+0x21 USB_EP2_MULTIKEY
+0x22 USB_EP2_SYSTEMKEY
+0x01 MAC_BOOT_MODE
+0x02 R_KEY
+0x03 LR_KEY
+)
+
+
+(
+0x01ba PC_GET_REPORT
+0x02ba PC_SET_REPORT
+0x0200 PC_SET_REPORT_bValue
+0x0000 PC_SET_REPORT_wIndex
+0x0001 PC_SET_REPORT_bLength
+0xba PC_REPORT_ID
+
+0x01 PC_GET_DATA
+0x00 PC_GET_NONDATA
+)
+
+(
+//--------------------------------------------------
+// Define device states
+0x00 DEV_ATTACHED	// Device is in Attached State
+0x01 DEV_POWERED	// Device is in Powered State
+0x02 DEV_DEFAULT		// Device is in Default State
+0x03 DEV_ADDRESS	// Device is in Addressed State
+0x04 DEV_CONFIGURED	// Device is in Configured State
+0x05 DEV_SUSPENDED	// Device is in Suspended State
+)
+
+(
+// Define wIndex bitmaps
+0x81 IN_EP1                    // Index values used by Set and Clear
+0x01 OUT_EP1                   // commands for Endpoint_Halt
+0x82 IN_EP2              
+0x02 OUT_EP2             
+0x83 IN_EP3              
+0x03 OUT_EP3             
+)
+
+(
+0 EP0_STALL
+1 EP1_IN_STALL
+2 EP1_OUT_STALL
+3 EP2_IN_STALL
+4 EP2_OUT_STALL
+5 EP3_IN_STALL
+6 EP3_OUT_STALL
+)
+
+(
+// Define wValue bitmaps for Standard Feature Selectors
+0x00 ENDPOINT_HALT             // Endpoint_Halt feature selector
+0x01 DEVICE_REMOTE_WAKEUP      // Remote wakeup feature(not used)
+0x00 BOOT_PROTOCOL
+0x01 REPORT_PROTOCOL
+0x01 USB_MAX_NUM_CFG
+)
+
+(
+640 TIMER_NAK_DELAY
+5000 TIMER_WAKEUP_DELAY
+)
+
+
+
+
+//util fifo param
+(
+
+8 UTIL_FIFO_LEN
+-1 UTIL_FIFO_OFFSET
+)
+
+
+
+
+
+format
+  ! 15 romdat
+  % d0
+  % d1
+  % d2
+  % d3
+  [8] d0
+  [8] d1
+  [8] d2
+  [8] d3
+end
+
+format
+  ! 15 enable   
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+ 
+format
+  ! 15 pulse   
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 disable   
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 set0  
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 set1  
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9          
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflag  
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 nsetflag  
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflip    
+  % immediate
+  % reg
+  [5] opcode
+  [6] 10            
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 0x1f qset1      
+  % reg             
+  [5] opcode
+  [6] 9
+  [6] always
+  [6] reg
+  [9] 0
+end
+  
+format
+  ! 0x1f qset0      
+  % reg             
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f qsetflag   
+  % flag
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f nqsetflag   
+  % flag
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 0x1f qsetflip      
+  % reg
+  [5] opcode
+  [6] 10
+  [6] always
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 1 parse       
+  % source
+  % dest
+  % immediate
+  [5] opcode
+  [4] source      
+  [2] 0
+  [6] 0    
+  [2] 0            
+  [4] dest        
+  [9] immediate   
+end
+
+format
+  ! 1 inject      
+  % destination
+  % immediate
+  [5] opcode
+  [4] 0
+  [2] 0
+  [6] 1
+  [2] 0
+  [4] destination 
+  [9] immediate   
+end
+
+format
+  ! 1 iinject
+  % destination
+  % regr
+  [5] opcode
+  [6] regr       
+  [6] 3
+  [2] 0
+  [4] destination 
+  [9] 0 
+end
+
+format
+  ! 1 stuff  
+  % source
+  % destination
+  [5] opcode
+  [4] source
+  [2] 0
+  [6] 2
+  [2] 0
+  [4] destination
+  [9] 0
+end
+
+format    
+  ! 3 force
+  % immediate
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    
+  [6] regw  
+  [9] immediate
+end
+
+format    
+  ! 0x13 iforce
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    
+  [6] regw  
+  [9] 0
+end
+
+format    
+  ! 3 increase
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 1    
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 pincrease
+  % immediate
+  [5] opcode
+  [6] -1  
+  [6] 1   
+  [6] -1  
+  [9] immediate
+end
+
+format    
+  ! 3 and_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 and
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    
+  [6] regw
+  [9] immediate
+end
+  
+format
+  ! 0x13 iand    
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    
+  [6] regw
+  [9] 0
+end
+  
+
+format    
+  ! 0x13 iand_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 or_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 or
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 ior
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 ior_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 skip_to   
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   
+  [6] rom_addr
+  [9] 0
+end
+
+format
+  ! 3 copy
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 4   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 deposit   
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   
+  [6] -1  
+  [9] 0
+end
+
+format
+  ! 3 icopy     
+  % regw
+  [5] opcode
+  [6] -1  
+  [6]  4  
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 add
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 iadd       
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 sub          
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 isub       
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 flip
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 iflip  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 xor
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 3 xor_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 ixor  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 invert
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 8
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 pinvert    
+  [5] opcode
+  [6] -1
+  [6] 8
+  [6] -1
+  [9] 0
+end
+
+format
+  ! 3 div                 
+  % reg
+  % immediate
+  [5] opcode
+  [6] reg
+  [6] 13                   
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 idiv           
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 13                   
+  [6] null
+  [9] 0
+end
+
+format
+  ! 0x13 idiv48           
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 17                   
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 remainder            
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 14
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 quotient             
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 15
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 6
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 22
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 18
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 35
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 25
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 34
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift32
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 30
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 7
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 23
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 26
+  [6] regw
+  [9] 0
+end
+
+  
+format
+  ! 3 lshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 19
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 36
+  [6] regw
+  [9] 0
+end
+  
+
+format
+  ! 3 lshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 32
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 bcrc         // calculate regr's byte crc value into pdata
+  % regr
+  [5] opcode
+  [6] regr
+  [6] 24
+  [6] 63
+  [9] 0
+end
+
+
+format
+  ! 3 random               
+  % reg
+  [5] opcode
+  [6] 0
+  [6] 20
+  [6] reg
+  [9] 0
+end
+
+format                     
+  ! 3 reverse
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 27
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 priority    
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 21
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 7 setsect   
+  % section    
+  % set_data
+  [5] opcode
+  [7] 0
+  [2] section
+  [18] set_data
+end
+
+format
+  ! 10 preload   
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 0
+  [6] -1
+  [9] 0
+end
+
+format  
+  ! 10 ialigned   
+  % regw
+  [5] opcode
+  [6] -1
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format  
+  ! 10 aligned
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 4 branch
+  % addr
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 call
+  % addr
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 rtn
+  % flag
+  [5] opcode
+  [6] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 0x0d fetch          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d fetcht          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetch         
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 63
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x1d ifetcht         
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 2
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x0c store          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c storet          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istore        
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c istoret        
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 2            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d crc         // read from memory, count from loopcnt, put crc result into pdata 
+  % addr
+  [5] opcode
+  [6] 63
+  [6] 0
+  [15] addr
+end
+
+format
+  ! 0x1d icrc         
+  % reg
+  [5] opcode
+  [6] 63
+  [15] 0
+  [6] reg
+end
+
+
+format
+  ! 0x0c storer          
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+
+format
+  ! 0x1c istorer        
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x1c lstorer        
+  % regr
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstore        
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstorew        
+  % regaddr
+  [5] opcode
+  [6] 63
+  [6] 42
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d fetchr          
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetchr        
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+
+
+format
+  ! 0x0e jam
+  % immediate
+  % addr
+  [5] opcode
+  [3] 0
+  [16] addr
+  [8] immediate
+end
+
+format			
+  ! 4 nbranch
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 ncall
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 nrtn
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 4 nop
+  % addr  
+  [5] opcode
+  [6] 0     
+  [6] 0      
+  [15] addr
+end
+
+format
+  ! 4 clear_stack
+  [5] opcode
+  [6] 4
+  [6] 0    
+  [15] 0
+end
+
+format
+  ! 6 until
+  % reg
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 1
+  [9] 0
+end
+  
+format
+  ! 6 correlate   
+  % reg          
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 2           
+  [9] 0           
+end
+
+format
+  ! 5 compare   
+  % immediate
+  % reg
+  % mask
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] immediate
+end
+
+format
+  ! 0x15 icompare   
+  % mask
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] 0
+end
+
+format   
+  ! 5 iverify
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 2
+  [18] 0
+end
+
+format
+  ! 0x15 qisolate1
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] -1
+end
+
+format
+  ! 0x15 qisolate0
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] 0
+end
+
+	
+format
+  ! 5 isolate1
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] -1
+  [9] addr
+end
+
+format
+  ! 5 isolate0
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] 0
+  [9] addr
+end
+
+format
+  ! 11 setarg
+  % immediate
+  [5] opcode
+  [27] immediate
+end
+
+format
+  ! 0x1b arg
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [21] immediate
+end
+
+  
+format
+  ! 0 sleep
+  [5] opcode
+  [27] 0
+end
+
+format
+  ! 0 snooze
+  [5] opcode
+  [6] -1
+  [21] 0
+end
+
+format
+  ! 0 revision
+  % rev_num
+  [5] opcode
+  [27] rev_num
+end
+
+format
+  ! 0x18 loop   
+  % addr
+  [5] opcode
+  [4] 4
+  [8] 0
+  [15] addr
+end
+
+format
+  ! 0x18 beq   
+  % imme
+  % addr
+  [5] opcode
+  [4] 0
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bne   
+  % imme
+  % addr
+  [5] opcode
+  [4] 1
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtneq   
+  % imme
+  [5] opcode
+  [4] 2
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnne   
+  % imme
+  [5] opcode
+  [4] 3
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 bbit1   
+  % imme
+  % addr
+  [5] opcode
+  [4] 5
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bbit0   
+  % imme
+  % addr
+  [5] opcode
+  [4] 6
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnbit1   
+  % imme
+  [5] opcode
+  [4] 7
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnbit0   
+  % imme
+  [5] opcode
+  [4] 8
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 8	bpatch
+  % imme
+  % addr
+  [5] opcode
+  [4] 9
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 8	bpatchx
+  % imme
+  % addr
+  [5] opcode
+  [4] 14
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark1   
+  % imme
+  % addr
+  [5] opcode
+  [4] 10
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark0   
+  % imme
+  % addr
+  [5] opcode
+  [4] 11
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnmark1   
+  % imme
+  [5] opcode
+  [4] 12
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnmark0   
+  % imme
+  [5] opcode
+  [4] 13
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 3 mul32                   
+  % regr
+  % immediate                                  
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31           
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 imul32             
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31                   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 imults             
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 16
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 byteswap
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 33
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 shasx          
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 28
+  [6] regw
+  [9] immediate
+end
+
+
+format
+  ! 0x13 regexrot 	
+  [5] opcode
+  [6] 0
+  [6] 29
+  [6] null
+  [9] 0
+end
+
+format
+  ! 0x13 adpcm         // encode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 43
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 pcm         // decode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 44
+  [6] regw
+  [9] 0
+end
+
+
Index: output/bt_program23.icode
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/bt_program23.icode	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/bt_program23.icode	(working copy)
@@ -0,0 +1,25771 @@
+ 00000000  0x00000027 bbit1  0x00000008 , 0x00000033 
+ 00000001  0x00000028 beq  0x00000000 , 0x0000003b 
+ 00000002  0x00000029 beq  0x00000002 , 0x00000069 
+ 00000003  0x0000002a beq  0x00000010 , 0x00000073 
+ 00000004  0x0000002b beq  0x00000011 , 0x00000075 
+ 00000005  0x0000002c beq  0x00000014 , 0x00000158 
+ 00000006  0x0000002d beq  0x00000015 , 0x000000f6 
+ 00000007  0x0000002e beq  0x00000018 , 0x00000103 
+ 00000008  0x0000002f beq  0x00000019 , 0x0000010a 
+ 00000009  0x00000030 beq  0x0000001a , 0x00000083 
+ 00000010  0x00000031 beq  0x00000025 , 0x000004aa 
+ 00000011  0x00000032 beq  0x00000028 , 0x0000049c 
+ 00000012  0x00000033 beq  0x00000042 , 0x00000177 
+ 00000013  0x00000034 beq  0x00000044 , 0x000001f4 
+ 00000014  0x00000035 beq  0x00000045 , 0x00000428 
+ 00000015  0x00000036 beq  0x00000046 , 0x000001f7 
+ 00000016  0x00000037 beq  0x00000047 , 0x0000020a 
+ 00000017  0x00000038 beq  0x00000048 , 0x0000052c 
+ 00000018  0x00000039 beq  0x00000049 , 0x00000530 
+ 00000019  0x0000003a beq  0x0000004a , 0x000005a2 
+ 00000020  0x0000003b beq  0x0000004b , 0x000002e9 
+ 00000021  0x0000003c beq  0x0000004c , 0x000002eb 
+ 00000022  0x0000003d beq  0x0000004d , 0x00000539 
+ 00000023  0x0000003e beq  0x0000004e , 0x00000308 
+ 00000024  0x0000003f beq  0x00000050 , 0x00000369 
+ 00000025  0x00000040 beq  0x00000052 , 0x000003ef 
+ 00000026  0x00000041 beq  0x00000055 , 0x00000408 
+ 00000027  0x00000042 beq  0x00000057 , 0x00000409 
+ 00000028  0x00000043 beq  0x00000059 , 0x00000419 
+ 00000029  0x00000044 beq  0x0000005a , 0x00000478 
+ 00000030  0x00000045 beq  0x0000005b , 0x00000480 
+ 00000031  0x00000046 beq  0x0000005c , 0x0000047c 
+ 00000032  0x00000047 beq  0x0000005d , 0x00000482 
+ 00000033  0x00000048 beq  0x00000061 , 0x000005c4 
+ 00000034  0x00000049 beq  0x0000006f , 0x0000059d 
+ 00000035  0x0000004a beq  0x00000071 , 0x00000480 
+ 00000036  0x0000004b beq  0x00000076 , 0x0000004a 
+ 00000037  0x0000004c beq  0x00000077 , 0x00000223 
+ 00000038  0x0000004d beq  0x00000080 , 0x00000140 
+ 00000039  0x0000004e beq  0x00000084 , 0x00000480 
+ 00000040  0x0000004f beq  0x0000009a , 0x000002d1 
+ 00000041  0x00000050 beq  0x000000b1 , 0x000004c9 
+ 00000042  0x00000051 beq  0x000000c5 , 0x00000174 
+ 00000043  0x00000052 beq  0x000000d5 , 0x00000465 
+ 00000044  0x00000053 beq  0x000000da , 0x00000141 
+ 00000045  0x00000054 beq  0x000000db , 0x00000666 
+ 00000046  0x00000055 beq  0x000000dc , 0x000006a3 
+ 00000047  0x00000056 beq  0x000000dd , 0x00000684 
+ 00000048  0x00000057 beq  0x000000f6 , 0x0000051d 
+ 00000049  0x00000058 beq  0x000000fa , 0x00000525 
+ 00000050  0x00000059 branch  0x0000235a 
+ 00000051  0x0000005c beq  0x00000014 , 0x00000551 
+ 00000052  0x0000005d beq  0x0000001a , 0x00000550 
+ 00000053  0x0000005e beq  0x00000025 , 0x00000580 
+ 00000054  0x0000005f beq  0x00000026 , 0x00000585 
+ 00000055  0x00000060 beq  0x0000004c , 0x00000597 
+ 00000056  0x00000061 beq  0x0000004d , 0x0000059b 
+ 00000057  0x00000062 rtneq  0x000000ff 
+ 00000058  0x00000063 branch  0x0000235a 
+ 00000059  0x00000068 nbranch  0x0000003e , 0x0000002b 
+ 00000060  0x00000069 until  0x0000003e , 0x00000033 
+ 00000061  0x0000006a until  0x0000003e , 0x00000033 
+ 00000062  0x0000006c call  0x000054ac 
+ 00000063  0x0000006d nbranch  0x00002002 , 0x00000028 
+ 00000064  0x0000006e fetch  0x00000001 , 0x00004aba 
+ 00000065  0x0000006f branch  0x00002002 , 0x00000034 
+ 00000066  0x00000070 jam  0x00000000 , 0x00004aba 
+ 00000067  0x00000071 fetch  0x00000001 , 0x00004655 
+ 00000068  0x00000072 beq  0x000000ff , 0x00002002 
+ 00000069  0x00000073 copy  0x0000003f , 0x00000007 
+ 00000070  0x00000074 fetch  0x00000004 , 0x0000069d 
+ 00000071  0x00000075 qisolate0  0x0000003f 
+ 00000072  0x00000076 call  0x00004e45 , 0x00000001 
+ 00000073  0x00000077 branch  0x00002002 
+ 00000074  0x0000007a fetch  0x00000008 , 0x00004713 
+ 00000075  0x0000007b rtnbit0  0x00000015 
+ 00000076  0x0000007c call  0x0000004e 
+ 00000077  0x0000007d branch  0x00005541 
+ 00000078  0x00000080 fetch  0x00000001 , 0x00004407 
+ 00000079  0x00000081 rtnne  0x00000002 
+ 00000080  0x00000082 fetch  0x00000001 , 0x00004408 
+ 00000081  0x00000083 call  0x00000057 
+ 00000082  0x00000084 copy  0x00000002 , 0x0000003f 
+ 00000083  0x00000085 store  0x00000001 , 0x00004635 
+ 00000084  0x00000086 set1  0x00000007 , 0x0000003f 
+ 00000085  0x00000087 arg  0x00000000 , 0x00000002 
+ 00000086  0x00000088 branch  0x00006f20 
+ 00000087  0x0000008b arg  0x00000012 , 0x00000002 
+ 00000088  0x0000008c rtneq  0x00000006 
+ 00000089  0x0000008d arg  0x0000000a , 0x00000002 
+ 00000090  0x0000008e rtneq  0x00000007 
+ 00000091  0x0000008f arg  0x00000009 , 0x00000002 
+ 00000092  0x00000090 rtneq  0x00000008 
+ 00000093  0x00000091 arg  0x0000000c , 0x00000002 
+ 00000094  0x00000092 rtneq  0x00000009 
+ 00000095  0x00000093 arg  0x00000006 , 0x00000002 
+ 00000096  0x00000094 rtneq  0x0000000a 
+ 00000097  0x00000095 arg  0x00000014 , 0x00000002 
+ 00000098  0x00000096 rtneq  0x0000000b 
+ 00000099  0x00000097 arg  0x00000015 , 0x00000002 
+ 00000100  0x00000098 rtneq  0x0000000c 
+ 00000101  0x00000099 arg  0x00000016 , 0x00000002 
+ 00000102  0x0000009a rtneq  0x0000000d 
+ 00000103  0x0000009b arg  0x0000000d , 0x00000002 
+ 00000104  0x0000009d rtn 
+ 00000105  0x000000a0 call  0x00007552 
+ 00000106  0x000000a1 call  0x00007448 
+ 00000107  0x000000a2 call  0x00004bfb 
+ 00000108  0x000000a3 call  0x00002a45 
+ 00000109  0x000000a4 call  0x0000202a 
+ 00000110  0x000000a5 call  0x000042ad 
+ 00000111  0x000000a6 call  0x00002018 
+ 00000112  0x000000a7 call  0x0000310f 
+ 00000113  0x000000a8 call  0x0000248c 
+ 00000114  0x000000a9 branch  0x00000069 
+ 00000115  0x000000ab jam  0x00000000 , 0x00008900 
+ 00000116  0x000000ac branch  0x00002153 
+ 00000117  0x000000ae jam  0x00000060 , 0x00008a0f 
+ 00000118  0x000000af jam  0x000000aa , 0x00008a10 
+ 00000119  0x000000b0 jam  0x0000007a , 0x00008a12 
+ 00000120  0x000000b1 jam  0x00000000 , 0x00008a25 
+ 00000121  0x000000b2 jam  0x00000000 , 0x00008a26 
+ 00000122  0x000000b3 nop  0x0000003c 
+ 00000123  0x000000b4 jam  0x00000020 , 0x00008a20 
+ 00000124  0x000000b5 jam  0x000000f5 , 0x00008a23 
+ 00000125  0x000000b6 jam  0x00000012 , 0x00008a24 
+ 00000126  0x000000b7 jam  0x00000010 , 0x00008a24 
+ 00000127  0x000000b8 nop  0x0000003c 
+ 00000128  0x000000b9 jam  0x00000060 , 0x00008a12 
+ 00000129  0x000000ba jam  0x000000dd , 0x00008a23 
+ 00000130  0x000000bb rtn 
+ 00000131  0x000000be jam  0x00000000 , 0x000001bb 
+ 00000132  0x000000bf jam  0x00000000 , 0x000001bc 
+ 00000133  0x000000c0 until  0x0000003e , 0x00000033 
+ 00000134  0x000000c2 jam  0x0000000d , 0x00008946 
+ 00000135  0x000000c3 jam  0x00000010 , 0x0000896f 
+ 00000136  0x000000c4 jam  0x000000cd , 0x00008a13 
+ 00000137  0x000000c5 jam  0x00000010 , 0x00008a06 
+ 00000138  0x000000c6 jam  0x0000004a , 0x00008a84 
+ 00000139  0x000000c7 jam  0x00000040 , 0x00008a85 
+ 00000140  0x000000c8 jam  0x000000fe , 0x00008a16 
+ 00000141  0x000000c9 call  0x000000ca 
+ 00000142  0x000000cc call  0x000070d7 
+ 00000143  0x000000ce until  0x0000003e , 0x00000033 
+ 00000144  0x000000cf jam  0x0000005f , 0x0000813b 
+ 00000145  0x000000d0 until  0x0000003e , 0x00000033 
+ 00000146  0x000000d1 jam  0x00000088 , 0x0000813c 
+ 00000147  0x000000d2 until  0x0000003e , 0x00000033 
+ 00000148  0x000000d3 fetch  0x00000001 , 0x00004099 
+ 00000149  0x000000d4 beq  0x00000010 , 0x000000bf 
+ 00000150  0x000000d5 fetch  0x00000001 , 0x00004438 
+ 00000151  0x000000d6 or_into  0x00000004 , 0x0000003f 
+ 00000152  0x000000d7 store  0x00000001 , 0x00008a02 
+ 00000153  0x000000d8 jam  0x00000001 , 0x0000890f 
+ 00000154  0x000000d9 jam  0x00000024 , 0x00008a80 
+ 00000155  0x000000da jam  0x00000062 , 0x00008a81 
+ 00000156  0x000000db setarg  0x00e61212 
+ 00000157  0x000000dc store  0x00000003 , 0x00008a73 
+ 00000158  0x000000de jam  0x00000060 , 0x00008a86 
+ 00000159  0x000000df jam  0x0000003b , 0x00008a8b 
+ 00000160  0x000000e0 call  0x000000b1 
+ 00000161  0x000000e1 jam  0x00000000 , 0x00008043 
+ 00000162  0x000000e2 jam  0x00000005 , 0x00008042 
+ 00000163  0x000000e3 setarg  0x00557474 
+ 00000164  0x000000e4 store  0x00000003 , 0x00008968 
+ 00000165  0x000000e5 jam  0x0000006e , 0x00008960 
+ 00000166  0x000000e6 call  0x00000112 
+ 00000167  0x000000e7 call  0x0000013d 
+ 00000168  0x000000e8 call  0x000000ab 
+ 00000169  0x000000e9 jam  0x0000000c , 0x00004148 
+ 00000170  0x000000ea branch  0x00006f4e 
+ 00000171  0x000000ee rtn  0x0000002b 
+ 00000172  0x000000ef until  0x0000003e , 0x00000033 
+ 00000173  0x000000f0 fetch  0x00000001 , 0x0000411c 
+ 00000174  0x000000f1 store  0x00000001 , 0x0000813a 
+ 00000175  0x000000f2 until  0x0000003e , 0x00000033 
+ 00000176  0x000000f3 rtn 
+ 00000177  0x000000f6 fetch  0x00000001 , 0x00004099 
+ 00000178  0x000000f7 beq  0x00000018 , 0x000000b7 
+ 00000179  0x000000f8 fetch  0x00000001 , 0x00004438 
+ 00000180  0x000000f9 or_into  0x00000006 , 0x0000003f 
+ 00000181  0x000000fa store  0x00000001 , 0x00008a02 
+ 00000182  0x000000fb jam  0x000000e0 , 0x00008a05 
+ 00000183  0x000000fd jam  0x000000d8 , 0x00008a00 
+ 00000184  0x000000fe nop  0x0000003c 
+ 00000185  0x000000ff jam  0x000000a0 , 0x00008a01 
+ 00000186  0x00000100 jam  0x000000df , 0x00008a00 
+ 00000187  0x00000101 jam  0x000000fa , 0x00008a01 
+ 00000188  0x00000102 nop  0x00000014 
+ 00000189  0x00000103 jam  0x0000009f , 0x00008a00 
+ 00000190  0x00000104 rtn 
+ 00000191  0x00000107 fetch  0x00000001 , 0x00004438 
+ 00000192  0x00000108 or_into  0x00000006 , 0x0000003f 
+ 00000193  0x00000109 store  0x00000001 , 0x00008a02 
+ 00000194  0x0000010a jam  0x00000000 , 0x0000890f 
+ 00000195  0x0000010b jam  0x00000023 , 0x00008a80 
+ 00000196  0x0000010c jam  0x000000b0 , 0x00008a81 
+ 00000197  0x0000010d setarg  0x00e40909 
+ 00000198  0x0000010e store  0x00000003 , 0x00008a73 
+ 00000199  0x0000010f jam  0x0000002a , 0x00008a76 
+ 00000200  0x00000110 jam  0x00000004 , 0x00008902 
+ 00000201  0x00000111 branch  0x0000009e 
+ 00000202  0x00000114 branch  0x000000f2 , 0x0000002b 
+ 00000203  0x00000115 fetch  0x00000004 , 0x0000020d 
+ 00000204  0x00000116 rtn  0x00000034 
+ 00000205  0x00000117 until  0x0000003e , 0x00000033 
+ 00000206  0x00000118 fetch  0x00000001 , 0x00008136 
+ 00000207  0x00000119 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00000208  0x0000011a fetcht  0x00000001 , 0x0000020d 
+ 00000209  0x0000011b ior  0x00000002 , 0x0000003f 
+ 00000210  0x0000011c increase  0xfffffffd , 0x0000003f 
+ 00000211  0x0000011d store  0x00000001 , 0x00008136 
+ 00000212  0x0000011e until  0x0000003e , 0x00000033 
+ 00000213  0x00000120 fetch  0x00000001 , 0x00008138 
+ 00000214  0x00000121 and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00000215  0x00000122 fetcht  0x00000001 , 0x0000020e 
+ 00000216  0x00000123 lshift3  0x00000002 , 0x00000002 
+ 00000217  0x00000124 ior  0x00000002 , 0x0000003f 
+ 00000218  0x00000125 store  0x00000001 , 0x00008138 
+ 00000219  0x00000126 until  0x0000003e , 0x00000033 
+ 00000220  0x00000129 fetch  0x00000001 , 0x00008acb 
+ 00000221  0x0000012a and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00000222  0x0000012b fetcht  0x00000001 , 0x0000020f 
+ 00000223  0x0000012c storet  0x00000001 , 0x0000415b 
+ 00000224  0x0000012d ior  0x00000002 , 0x0000003f 
+ 00000225  0x0000012e store  0x00000001 , 0x00008acb 
+ 00000226  0x00000130 fetch  0x00000001 , 0x00000210 
+ 00000227  0x00000131 store  0x00000001 , 0x0000415c 
+ 00000228  0x00000132 isolate1  0x00000003 , 0x0000003f 
+ 00000229  0x00000133 fetch  0x00000001 , 0x00008a06 
+ 00000230  0x00000134 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00000231  0x00000135 store  0x00000001 , 0x00008a06 
+ 00000232  0x00000137 fetch  0x00000001 , 0x00000210 
+ 00000233  0x00000138 and  0x0000003f , 0x00000007 , 0x00000002 
+ 00000234  0x00000139 lshift4  0x00000002 , 0x00000002 
+ 00000235  0x0000013a lshift  0x00000002 , 0x00000002 
+ 00000236  0x0000013b storet  0x00000001 , 0x00004438 
+ 00000237  0x0000013c fetch  0x00000001 , 0x00008a02 
+ 00000238  0x0000013d and  0x0000003f , 0x0000001f , 0x0000003f 
+ 00000239  0x0000013e ior  0x00000002 , 0x0000003f 
+ 00000240  0x0000013f store  0x00000001 , 0x00008a02 
+ 00000241  0x00000140 rtn 
+ 00000242  0x00000143 fetch  0x00000002 , 0x0000415b 
+ 00000243  0x00000144 rtn  0x00000034 
+ 00000244  0x00000145 store  0x00000002 , 0x0000020f 
+ 00000245  0x00000146 branch  0x000000dc 
+ 00000246  0x00000149 call  0x000021ba 
+ 00000247  0x0000014a force  0x00000008 , 0x00000015 
+ 00000248  0x0000014b force  0x00000000 , 0x00000015 
+ 00000249  0x0000014d setarg  0x000aaada 
+ 00000250  0x0000014e store  0x00000003 , 0x00008a0f 
+ 00000251  0x0000014f jam  0x00000040 , 0x00008a25 
+ 00000252  0x00000150 jam  0x00000010 , 0x00008a26 
+ 00000253  0x00000151 nop  0x0000003c 
+ 00000254  0x00000152 jam  0x000000fb , 0x00008a01 
+ 00000255  0x00000153 jam  0x000000ff , 0x00008a25 
+ 00000256  0x00000154 jam  0x00000030 , 0x00008a26 
+ 00000257  0x00000155 jam  0x000000fe , 0x00008a16 
+ 00000258  0x00000156 branch  0x000021b4 
+ 00000259  0x00000159 setarg  0x000aaa7e 
+ 00000260  0x0000015a store  0x00000003 , 0x00008a0f 
+ 00000261  0x0000015b nop  0x0000003c 
+ 00000262  0x0000015c jam  0x00000000 , 0x00008a25 
+ 00000263  0x0000015d jam  0x0000000d , 0x00008a26 
+ 00000264  0x0000015e jam  0x000000f6 , 0x00008a16 
+ 00000265  0x0000015f branch  0x00002203 
+ 00000266  0x00000162 fetch  0x00000001 , 0x00004141 
+ 00000267  0x00000163 beq  0x0000000a , 0x0000010d 
+ 00000268  0x00000164 branch  0x0000220e 
+ 00000269  0x00000167 jam  0x00000025 , 0x00008a14 
+ 00000270  0x00000168 setarg  0x00a93f3f 
+ 00000271  0x00000169 store  0x00000003 , 0x00008a60 
+ 00000272  0x0000016a jam  0x0000001f , 0x00008a63 
+ 00000273  0x0000016b rtn 
+ 00000274  0x0000016f rtn  0x0000002b 
+ 00000275  0x00000170 call  0x00002160 
+ 00000276  0x00000171 arg  0x00000027 , 0x00000002 
+ 00000277  0x00000172 call  0x0000216f 
+ 00000278  0x00000173 call  0x000021a6 
+ 00000279  0x00000174 jam  0x0000007f , 0x00008a25 
+ 00000280  0x00000175 jam  0x0000001a , 0x00008a30 
+ 00000281  0x00000176 jam  0x00000078 , 0x00008a31 
+ 00000282  0x00000177 jam  0x000000b2 , 0x00008a8f 
+ 00000283  0x00000178 jam  0x00000000 , 0x00008ac2 
+ 00000284  0x00000179 jam  0x00000000 , 0x00008ac3 
+ 00000285  0x0000017a arg  0x00000006 , 0x00000007 
+ 00000286  0x0000017b call  0x0000012f 
+ 00000287  0x0000017c isolate1  0x0000000d , 0x00000011 
+ 00000288  0x0000017d call  0x0000211d 
+ 00000289  0x0000017e isolate1  0x0000000d , 0x00000012 
+ 00000290  0x0000017f call  0x0000211e 
+ 00000291  0x00000180 arg  0x00000005 , 0x00000007 
+ 00000292  0x00000182 call  0x0000211c 
+ 00000293  0x00000183 call  0x0000211e 
+ 00000294  0x00000184 call  0x0000012f 
+ 00000295  0x00000185 arg  0x00008ac2 , 0x00000005 
+ 00000296  0x00000186 rshift4  0x00000011 , 0x0000003f 
+ 00000297  0x00000187 call  0x00002117 
+ 00000298  0x00000188 rshift4  0x00000012 , 0x0000003f 
+ 00000299  0x00000189 call  0x00002117 
+ 00000300  0x0000018a increase  0xffffffff , 0x00000007 
+ 00000301  0x0000018b branch  0x00000124 , 0x00000002 
+ 00000302  0x0000018c branch  0x0000214f 
+ 00000303  0x0000018f nop  0x0000003c 
+ 00000304  0x00000190 setarg  0x00000f00 
+ 00000305  0x00000191 store  0x00000002 , 0x00008982 
+ 00000306  0x00000192 setarg  0x00000ff0 
+ 00000307  0x00000193 store  0x00000002 , 0x00008984 
+ 00000308  0x00000194 jam  0x00000009 , 0x00008981 
+ 00000309  0x00000195 jam  0x00000003 , 0x00008981 
+ 00000310  0x00000196 jam  0x00000006 , 0x00008980 
+ 00000311  0x00000197 nop  0x0000003c 
+ 00000312  0x00000198 arg  0x00000000 , 0x00000011 
+ 00000313  0x00000199 arg  0x00000000 , 0x00000012 
+ 00000314  0x0000019a arg  0x00000010 , 0x00000039 
+ 00000315  0x0000019b arg  0x00000f00 , 0x00000006 
+ 00000316  0x0000019c branch  0x0000212d 
+ 00000317  0x0000019f rtn  0x0000002b 
+ 00000318  0x000001a0 branch  0x00002272 
+ 00000319  0x000001a3 setarg  0x00000000 
+ 00000320  0x000001a6 rtn 
+ 00000321  0x000001a9 rtn  0x0000002b 
+ 00000322  0x000001aa jam  0x00000077 , 0x00008a07 
+ 00000323  0x000001ab jam  0x000000c9 , 0x00008a08 
+ 00000324  0x000001ac jam  0x00000001 , 0x00008a0b 
+ 00000325  0x000001ad fetch  0x00000001 , 0x00004409 
+ 00000326  0x000001ae store  0x00000001 , 0x000080cd 
+ 00000327  0x000001af nop  0x00000bb8 
+ 00000328  0x000001b0 call  0x00000151 
+ 00000329  0x000001b1 jam  0x000000c1 , 0x00008a08 
+ 00000330  0x000001b2 fetchr  0x00000012 , 0x00000001 , 0x00004419 
+ 00000331  0x000001b3 arg  0x00000008 , 0x00000039 
+ 00000332  0x000001b4 call  0x00006f58 
+ 00000333  0x000001b5 fetch  0x00000001 , 0x00004419 
+ 00000334  0x000001b6 store  0x00000001 , 0x00004433 
+ 00000335  0x000001b7 storer  0x00000012 , 0x00000001 , 0x00004419 
+ 00000336  0x000001b8 rtn 
+ 00000337  0x000001bc jam  0x00000003 , 0x000080cc 
+ 00000338  0x000001be fetch  0x00000001 , 0x00008129 
+ 00000339  0x000001bf bbit0  0x00000005 , 0x00000152 
+ 00000340  0x000001c0 fetcht  0x00000002 , 0x00008164 
+ 00000341  0x000001c1 storet  0x00000002 , 0x0000440a 
+ 00000342  0x000001c2 jam  0x00000000 , 0x000080cc 
+ 00000343  0x000001c3 rtn 
+ 00000344  0x000001c7 jam  0x00000011 , 0x00008a82 
+ 00000345  0x000001c8 jam  0x00000012 , 0x00008a8d 
+ 00000346  0x000001c9 jam  0x0000000a , 0x00008a8e 
+ 00000347  0x000001ca fetch  0x00000001 , 0x00004099 
+ 00000348  0x000001cb beq  0x00000010 , 0x00000171 
+ 00000349  0x000001cc setarg  0x00005762 
+ 00000350  0x000001cd store  0x00000002 , 0x00008907 
+ 00000351  0x000001cf jam  0x00000003 , 0x00008901 
+ 00000352  0x000001d0 jam  0x00000003 , 0x00008930 
+ 00000353  0x000001d1 rtnmark1  0x0000002d 
+ 00000354  0x000001d2 jam  0x00000001 , 0x00008901 
+ 00000355  0x000001d3 jam  0x00000007 , 0x00008a82 
+ 00000356  0x000001d4 jam  0x00000044 , 0x00008a8d 
+ 00000357  0x000001d5 jam  0x0000000a , 0x00008a8e 
+ 00000358  0x000001d6 fetch  0x00000001 , 0x00004099 
+ 00000359  0x000001d7 beq  0x00000010 , 0x0000016e 
+ 00000360  0x000001d8 setarg  0x00002bb1 
+ 00000361  0x000001d9 store  0x00000002 , 0x00008907 
+ 00000362  0x000001db rtnmark0  0x0000002f 
+ 00000363  0x000001dc jam  0x00000024 , 0x00008930 
+ 00000364  0x000001dd jam  0x00000005 , 0x00008901 
+ 00000365  0x000001de rtn 
+ 00000366  0x000001e1 setarg  0x00004189 
+ 00000367  0x000001e2 store  0x00000002 , 0x00008907 
+ 00000368  0x000001e3 branch  0x0000016a 
+ 00000369  0x000001e6 setarg  0x00008312 
+ 00000370  0x000001e7 store  0x00000002 , 0x00008907 
+ 00000371  0x000001e8 branch  0x0000015f 
+ 00000372  0x000001eb call  0x00006b3a 
+ 00000373  0x000001ec call  0x00006b75 
+ 00000374  0x000001ed branch  0x00006b38 
+ 00000375  0x000001f0 fetch  0x00000001 , 0x00004666 
+ 00000376  0x000001f1 beq  0x00000000 , 0x0000017b 
+ 00000377  0x000001f2 beq  0x00000001 , 0x00000185 
+ 00000378  0x000001f3 rtn 
+ 00000379  0x000001f6 arg  0x00000050 , 0x00000018 
+ 00000380  0x000001f7 setarg  0x00000400 
+ 00000381  0x000001f8 idiv  0x00000018 
+ 00000382  0x000001f9 call  0x00007d62 
+ 00000383  0x000001fa quotient  0x0000003f 
+ 00000384  0x000001fb store  0x00000002 , 0x00000670 
+ 00000385  0x000001fc arg  0x00001fbc , 0x0000003f 
+ 00000386  0x000001fd arg  0x00000004 , 0x00000002 
+ 00000387  0x000001fe arg  0x00000004 , 0x0000002b 
+ 00000388  0x000001ff branch  0x0000018f 
+ 00000389  0x00000202 arg  0x00000140 , 0x00000018 
+ 00000390  0x00000203 setarg  0x00000400 
+ 00000391  0x00000204 idiv  0x00000018 
+ 00000392  0x00000205 call  0x00007d62 
+ 00000393  0x00000206 quotient  0x0000003f 
+ 00000394  0x00000207 store  0x00000002 , 0x00000670 
+ 00000395  0x00000208 arg  0x00001fb0 , 0x0000003f 
+ 00000396  0x00000209 arg  0x00000010 , 0x00000002 
+ 00000397  0x0000020a arg  0x00000010 , 0x0000002b 
+ 00000398  0x0000020b branch  0x0000018f 
+ 00000399  0x0000020e store  0x00000002 , 0x00000672 
+ 00000400  0x0000020f storet  0x00000001 , 0x00000678 
+ 00000401  0x00000210 arg  0x000049c7 , 0x00000011 
+ 00000402  0x00000211 arg  0x00000000 , 0x00000013 
+ 00000403  0x00000213 fetch  0x00000002 , 0x00000672 
+ 00000404  0x00000214 copy  0x0000003f , 0x00000012 
+ 00000405  0x00000215 fetchr  0x00000039 , 0x00000001 , 0x00000678 
+ 00000406  0x00000216 arg  0x000049c7 , 0x00000011 
+ 00000407  0x00000217 call  0x00006b74 
+ 00000408  0x00000218 fetch  0x00000008 , 0x000049c7 
+ 00000409  0x00000219 fetcht  0x00000008 , 0x000049cf 
+ 00000410  0x0000021a ior  0x00000002 , 0x0000003f 
+ 00000411  0x0000021b fetcht  0x00000008 , 0x000049d7 
+ 00000412  0x0000021c ior  0x00000002 , 0x0000003f 
+ 00000413  0x0000021d branch  0x000001a5 , 0x00000034 
+ 00000414  0x0000021e increase  0x00000001 , 0x00000013 
+ 00000415  0x0000021f fetch  0x00000002 , 0x00000670 
+ 00000416  0x00000220 isub  0x00000013 , 0x0000003e 
+ 00000417  0x00000222 fetch  0x00000002 , 0x00000672 
+ 00000418  0x00000223 isub  0x00000018 , 0x0000003f 
+ 00000419  0x00000224 store  0x00000002 , 0x00000672 
+ 00000420  0x00000225 branch  0x00000193 
+ 00000421  0x00000227 sub  0x00000013 , 0x00000000 , 0x0000003e 
+ 00000422  0x00000228 branch  0x00004a38 , 0x00000005 
+ 00000423  0x0000022a fetch  0x00000002 , 0x00000672 
+ 00000424  0x0000022b iadd  0x00000018 , 0x0000003f 
+ 00000425  0x0000022d isub  0x0000002b , 0x0000003f 
+ 00000426  0x0000022e store  0x00000002 , 0x00000672 
+ 00000427  0x0000022f fetch  0x00000002 , 0x00000672 
+ 00000428  0x00000230 copy  0x0000003f , 0x00000012 
+ 00000429  0x00000231 fetchr  0x00000039 , 0x00000001 , 0x00000678 
+ 00000430  0x00000232 arg  0x000049c7 , 0x00000011 
+ 00000431  0x00000233 call  0x00006b74 
+ 00000432  0x00000234 fetch  0x00000008 , 0x000049c7 
+ 00000433  0x00000235 fetcht  0x00000008 , 0x000049cf 
+ 00000434  0x00000236 ior  0x00000002 , 0x0000003f 
+ 00000435  0x00000237 fetcht  0x00000008 , 0x000049d7 
+ 00000436  0x00000238 ior  0x00000002 , 0x0000003f 
+ 00000437  0x00000239 branch  0x000001b8 , 0x00000034 
+ 00000438  0x0000023a fetch  0x00000002 , 0x00000672 
+ 00000439  0x0000023b branch  0x000001a9 
+ 00000440  0x0000023e setarg  0x00001fc0 
+ 00000441  0x0000023f fetcht  0x00000002 , 0x00000672 
+ 00000442  0x00000240 isub  0x00000002 , 0x0000003f 
+ 00000443  0x00000241 store  0x00000002 , 0x000049df 
+ 00000444  0x00000242 copy  0x00000002 , 0x0000003f 
+ 00000445  0x00000243 iadd  0x0000002b , 0x00000012 
+ 00000446  0x00000244 fetchr  0x00000039 , 0x00000001 , 0x00000678 
+ 00000447  0x00000245 arg  0x000049c7 , 0x00000011 
+ 00000448  0x00000246 call  0x00006b74 
+ 00000449  0x00000247 fetch  0x00000001 , 0x00004666 
+ 00000450  0x00000248 beq  0x00000000 , 0x00004a47 
+ 00000451  0x00000249 beq  0x00000001 , 0x000001c5 
+ 00000452  0x0000024a rtn 
+ 00000453  0x0000024d fetch  0x00000001 , 0x000049c7 
+ 00000454  0x0000024e sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00000455  0x0000024f ncall  0x00007dca , 0x00000002 
+ 00000456  0x00000250 store  0x00000001 , 0x000049c6 
+ 00000457  0x00000251 fetch  0x00000001 , 0x000049c8 
+ 00000458  0x00000252 store  0x00000001 , 0x00004667 
+ 00000459  0x00000253 fetch  0x00000006 , 0x000049c9 
+ 00000460  0x00000254 store  0x00000006 , 0x00004668 
+ 00000461  0x00000255 fetch  0x00000006 , 0x000049cf 
+ 00000462  0x00000256 store  0x00000006 , 0x0000466e 
+ 00000463  0x00000257 fetcht  0x00000002 , 0x000049d5 
+ 00000464  0x00000258 random  0x0000003f 
+ 00000465  0x00000259 iadd  0x00000002 , 0x0000003f 
+ 00000466  0x0000025a store  0x00000002 , 0x00004695 
+ 00000467  0x0000025b branch  0x000004e6 
+ 00000468  0x0000025e fetch  0x00000001 , 0x00004666 
+ 00000469  0x0000025f beq  0x00000000 , 0x000001d8 
+ 00000470  0x00000260 beq  0x00000001 , 0x000001db 
+ 00000471  0x00000261 rtn 
+ 00000472  0x00000264 fetcht  0x00000002 , 0x000049df 
+ 00000473  0x00000265 setarg  0x00001fc0 
+ 00000474  0x00000266 branch  0x00004a63 
+ 00000475  0x00000269 jam  0x00000001 , 0x00004be7 
+ 00000476  0x0000026a fetch  0x00000001 , 0x00004be8 
+ 00000477  0x0000026b rtn  0x00000034 
+ 00000478  0x0000026d fetcht  0x00000002 , 0x000049df 
+ 00000479  0x0000026e setarg  0x00001fc0 
+ 00000480  0x0000026f isub  0x00000002 , 0x0000003f 
+ 00000481  0x00000270 store  0x00000002 , 0x00000670 
+ 00000482  0x00000272 copy  0x0000003f , 0x00000012 
+ 00000483  0x00000273 arg  0x000049c6 , 0x00000011 
+ 00000484  0x00000274 arg  0x00000001 , 0x00000039 
+ 00000485  0x00000275 call  0x00006b45 
+ 00000486  0x00000277 fetch  0x00000002 , 0x00000670 
+ 00000487  0x00000278 add  0x0000003f , 0x00000001 , 0x00000012 
+ 00000488  0x00000279 arg  0x00004667 , 0x00000011 
+ 00000489  0x0000027a arg  0x0000000d , 0x00000039 
+ 00000490  0x0000027b call  0x00006b45 
+ 00000491  0x0000027d fetch  0x00000002 , 0x00000670 
+ 00000492  0x0000027e add  0x0000003f , 0x0000000e , 0x00000012 
+ 00000493  0x0000027f arg  0x00004695 , 0x00000011 
+ 00000494  0x00000280 arg  0x00000002 , 0x00000039 
+ 00000495  0x00000281 call  0x00006b45 
+ 00000496  0x00000283 fetcht  0x00000002 , 0x000049df 
+ 00000497  0x00000284 increase  0x00000010 , 0x00000002 
+ 00000498  0x00000285 storet  0x00000002 , 0x000049df 
+ 00000499  0x00000286 rtn 
+ 00000500  0x00000289 fetch  0x00000008 , 0x00004713 
+ 00000501  0x0000028a bbit1  0x00000014 , 0x000001d4 
+ 00000502  0x0000028b branch  0x00004a58 
+ 00000503  0x00000290 copy  0x00000013 , 0x0000003f 
+ 00000504  0x00000291 beq  0x00000015 , 0x000001fa 
+ 00000505  0x00000292 branch  0x00004a9c 
+ 00000506  0x00000296 setarg  0x00000000 
+ 00000507  0x00000297 store  0x00000002 , 0x000047c0 
+ 00000508  0x00000298 store  0x00000001 , 0x00004860 
+ 00000509  0x00000299 store  0x00000001 , 0x00004861 
+ 00000510  0x0000029a store  0x00000001 , 0x00004794 
+ 00000511  0x0000029b jam  0x00000000 , 0x000047c2 
+ 00000512  0x0000029c call  0x000029cb 
+ 00000513  0x0000029d jam  0x00000000 , 0x0000429a 
+ 00000514  0x0000029e fetch  0x00000002 , 0x000043ef 
+ 00000515  0x0000029f bbit1  0x00000007 , 0x00000206 
+ 00000516  0x000002a0 bbit1  0x00000000 , 0x000042fc 
+ 00000517  0x000002a1 branch  0x00004b95 
+ 00000518  0x000002a3 call  0x00005b21 
+ 00000519  0x000002a4 fetch  0x00000002 , 0x000043ef 
+ 00000520  0x000002a5 bbit1  0x00000000 , 0x000042fc 
+ 00000521  0x000002a6 branch  0x00000480 
+ 00000522  0x000002ac call  0x0000553d 
+ 00000523  0x000002ad call  0x0000029d 
+ 00000524  0x000002af call  0x0000328e 
+ 00000525  0x000002b0 call  0x00003531 
+ 00000526  0x000002b1 call  0x00005fdd 
+ 00000527  0x000002b2 call  0x0000023f 
+ 00000528  0x000002b3 call  0x00004b68 
+ 00000529  0x000002b6 call  0x00000242 
+ 00000530  0x000002b7 call  0x00000267 
+ 00000531  0x000002b8 call  0x00000291 
+ 00000532  0x000002b9 call  0x00000289 
+ 00000533  0x000002ba call  0x00004b43 
+ 00000534  0x000002bb call  0x00004b58 
+ 00000535  0x000002bc call  0x00005be1 
+ 00000536  0x000002bd call  0x00004b5c 
+ 00000537  0x000002be call  0x00005be4 
+ 00000538  0x000002bf call  0x00004b5f 
+ 00000539  0x000002c0 call  0x00004b55 
+ 00000540  0x000002c2 call  0x000002da 
+ 00000541  0x000002c3 call  0x00004b32 
+ 00000542  0x000002c4 call  0x00005bfe 
+ 00000543  0x000002c5 call  0x00004b48 
+ 00000544  0x000002c7 call  0x000002d2 
+ 00000545  0x000002c8 call  0x00004b87 
+ 00000546  0x000002c9 branch  0x000002d7 
+ 00000547  0x000002cc call  0x00000234 
+ 00000548  0x000002cd call  0x00006f82 
+ 00000549  0x000002ce call  0x00006fb0 
+ 00000550  0x000002cf div  0x0000003f , 0x0000000a 
+ 00000551  0x000002d0 call  0x00007d5f 
+ 00000552  0x000002d1 store  0x00000002 , 0x00004633 
+ 00000553  0x000002d2 arg  0x0000462d , 0x00000011 
+ 00000554  0x000002d3 call  0x00005563 
+ 00000555  0x000002d4 fetch  0x00000001 , 0x0000440c 
+ 00000556  0x000002d5 bbit1  0x00000001 , 0x00004f6b 
+ 00000557  0x000002d6 bbit0  0x00000000 , 0x00000230 
+ 00000558  0x000002d7 jam  0x00000001 , 0x00004637 
+ 00000559  0x000002d8 branch  0x0000555a 
+ 00000560  0x000002db arg  0x00000004 , 0x00000007 
+ 00000561  0x000002dc call  0x00005f04 
+ 00000562  0x000002dd jam  0x0000000c , 0x00004d08 
+ 00000563  0x000002de branch  0x0000555f 
+ 00000564  0x000002e2 call  0x000054f2 
+ 00000565  0x000002e4 setarg  0x00560094 
+ 00000566  0x000002e5 store  0x00000003 , 0x0000462d 
+ 00000567  0x000002e6 setarg  0x00006d00 
+ 00000568  0x000002e7 istore  0x00000003 , 0x00000005 
+ 00000569  0x000002e8 fetch  0x00000001 , 0x00004637 
+ 00000570  0x000002e9 branch  0x0000023d , 0x00000034 
+ 00000571  0x000002ea jam  0x00000073 , 0x00004631 
+ 00000572  0x000002eb rtn 
+ 00000573  0x000002ed jam  0x0000006d , 0x00004631 
+ 00000574  0x000002ee rtn 
+ 00000575  0x000002f1 fetch  0x00000001 , 0x000048eb 
+ 00000576  0x000002f2 nrtn  0x00000034 
+ 00000577  0x000002f3 branch  0x00004b62 
+ 00000578  0x000002f6 fetch  0x00000002 , 0x00004781 
+ 00000579  0x000002f7 rtn  0x00000034 
+ 00000580  0x000002f8 fetch  0x00000002 , 0x00004725 
+ 00000581  0x000002f9 fetcht  0x00000002 , 0x00004781 
+ 00000582  0x000002fa isub  0x00000002 , 0x00000002 
+ 00000583  0x000002fb fetch  0x00000002 , 0x00004869 
+ 00000584  0x000002fc isub  0x00000002 , 0x0000003f 
+ 00000585  0x000002fd branch  0x0000024d , 0x00000002 
+ 00000586  0x000002fe call  0x00000254 
+ 00000587  0x000002ff call  0x00000256 
+ 00000588  0x00000300 branch  0x00004b7c 
+ 00000589  0x00000302 call  0x00000250 
+ 00000590  0x00000303 call  0x0000025c 
+ 00000591  0x00000304 branch  0x00004b7e 
+ 00000592  0x00000306 fetch  0x00000001 , 0x000049aa 
+ 00000593  0x00000307 bbit0  0x00000000 , 0x00000254 
+ 00000594  0x00000308 fetcht  0x00000001 , 0x00004867 
+ 00000595  0x00000309 branch  0x00006ef7 
+ 00000596  0x0000030b fetcht  0x00000001 , 0x00004867 
+ 00000597  0x0000030c branch  0x00006ef3 
+ 00000598  0x0000030e fetch  0x00000001 , 0x00004a08 
+ 00000599  0x0000030f nrtn  0x00000034 
+ 00000600  0x00000310 fetch  0x00000001 , 0x0000440c 
+ 00000601  0x00000311 rtnbit1  0x00000000 
+ 00000602  0x00000312 fetcht  0x00000001 , 0x00004bbb 
+ 00000603  0x00000313 branch  0x00006ef3 
+ 00000604  0x00000316 fetch  0x00000001 , 0x00004a08 
+ 00000605  0x00000317 nrtn  0x00000034 
+ 00000606  0x00000318 fetch  0x00000001 , 0x0000440c 
+ 00000607  0x00000319 rtnbit1  0x00000000 
+ 00000608  0x0000031a fetch  0x00000001 , 0x000049aa 
+ 00000609  0x0000031b bbit0  0x00000002 , 0x00000256 
+ 00000610  0x0000031c fetcht  0x00000001 , 0x00004bbb 
+ 00000611  0x0000031d branch  0x00006ef7 
+ 00000612  0x00000321 fetch  0x00000001 , 0x00004621 
+ 00000613  0x00000322 store  0x00000001 , 0x000049aa 
+ 00000614  0x00000323 branch  0x0000024d 
+ 00000615  0x00000326 fetch  0x00000001 , 0x00004a08 
+ 00000616  0x00000327 rtn  0x00000034 
+ 00000617  0x00000328 increase  0xffffffff , 0x0000003f 
+ 00000618  0x00000329 store  0x00000001 , 0x00004a08 
+ 00000619  0x0000032a branch  0x0000026d , 0x00000034 
+ 00000620  0x0000032b branch  0x00000273 
+ 00000621  0x0000032e fetch  0x00000001 , 0x00004666 
+ 00000622  0x0000032f beq  0x00000000 , 0x00000279 
+ 00000623  0x00000330 beq  0x00000001 , 0x0000027b 
+ 00000624  0x00000331 beq  0x00000002 , 0x0000027d 
+ 00000625  0x00000332 beq  0x00000003 , 0x0000027f 
+ 00000626  0x00000333 rtn 
+ 00000627  0x00000336 fetch  0x00000001 , 0x00004666 
+ 00000628  0x00000337 beq  0x00000000 , 0x00000281 
+ 00000629  0x00000338 beq  0x00000001 , 0x00000283 
+ 00000630  0x00000339 beq  0x00000002 , 0x00000285 
+ 00000631  0x0000033a beq  0x00000003 , 0x00000287 
+ 00000632  0x0000033b rtn 
+ 00000633  0x0000033e fetcht  0x00000001 , 0x00004bb7 
+ 00000634  0x0000033f branch  0x00006ef3 
+ 00000635  0x00000342 fetcht  0x00000001 , 0x00004bb8 
+ 00000636  0x00000343 branch  0x00006ef3 
+ 00000637  0x00000346 fetcht  0x00000001 , 0x00004bb9 
+ 00000638  0x00000347 branch  0x00006ef3 
+ 00000639  0x0000034a fetcht  0x00000001 , 0x00004bba 
+ 00000640  0x0000034b branch  0x00006ef3 
+ 00000641  0x0000034e fetcht  0x00000001 , 0x00004bb7 
+ 00000642  0x0000034f branch  0x00006ef7 
+ 00000643  0x00000352 fetcht  0x00000001 , 0x00004bb8 
+ 00000644  0x00000353 branch  0x00006ef7 
+ 00000645  0x00000356 fetcht  0x00000001 , 0x00004bb9 
+ 00000646  0x00000357 branch  0x00006ef7 
+ 00000647  0x0000035a fetcht  0x00000001 , 0x00004bba 
+ 00000648  0x0000035b branch  0x00006ef7 
+ 00000649  0x0000035e fetch  0x00000002 , 0x00004781 
+ 00000650  0x0000035f rtn  0x00000034 
+ 00000651  0x00000360 fetch  0x00000001 , 0x00004bca 
+ 00000652  0x00000361 rtn  0x00000034 
+ 00000653  0x00000362 increase  0xffffffff , 0x0000003f 
+ 00000654  0x00000363 store  0x00000001 , 0x00004bca 
+ 00000655  0x00000364 bbit1  0x00000000 , 0x00000273 
+ 00000656  0x00000365 branch  0x0000026d 
+ 00000657  0x00000368 fetch  0x00000001 , 0x00004666 
+ 00000658  0x00000369 beq  0x00000000 , 0x00000296 
+ 00000659  0x0000036a fetch  0x00000002 , 0x00004790 
+ 00000660  0x0000036b rtn  0x00000034 
+ 00000661  0x0000036c branch  0x00000298 
+ 00000662  0x0000036f fetch  0x00000002 , 0x000045d8 
+ 00000663  0x00000370 rtn  0x00000034 
+ 00000664  0x00000371 fetch  0x00000001 , 0x00004d07 
+ 00000665  0x00000372 increase  0x00000001 , 0x0000003f 
+ 00000666  0x00000373 store  0x00000001 , 0x00004d07 
+ 00000667  0x00000374 bbit1  0x00000002 , 0x00000273 
+ 00000668  0x00000375 branch  0x0000026d 
+ 00000669  0x00000379 jam  0x00000000 , 0x00004d0c 
+ 00000670  0x0000037a fetch  0x00000002 , 0x00004790 
+ 00000671  0x0000037b nrtn  0x00000034 
+ 00000672  0x0000037c fetch  0x00000002 , 0x000045d8 
+ 00000673  0x0000037d nrtn  0x00000034 
+ 00000674  0x0000037e fetch  0x00000002 , 0x000045de 
+ 00000675  0x0000037f nrtn  0x00000034 
+ 00000676  0x00000380 fetch  0x00000001 , 0x00004a08 
+ 00000677  0x00000381 nrtn  0x00000034 
+ 00000678  0x00000382 fetch  0x00000008 , 0x00004713 
+ 00000679  0x00000383 rtnbit0  0x00000023 
+ 00000680  0x00000384 rtnbit0  0x00000004 
+ 00000681  0x00000385 bbit1  0x00000027 , 0x000002ba 
+ 00000682  0x00000386 fetch  0x00000001 , 0x00004d08 
+ 00000683  0x00000387 increase  0x00000001 , 0x0000003f 
+ 00000684  0x00000388 store  0x00000001 , 0x00004d08 
+ 00000685  0x00000389 sub  0x0000003f , 0x00000014 , 0x0000003e 
+ 00000686  0x0000038a ncall  0x000002b4 , 0x00000002 
+ 00000687  0x0000038b beq  0x00000002 , 0x000002b6 
+ 00000688  0x0000038c beq  0x00000004 , 0x000002b8 
+ 00000689  0x0000038d beq  0x00000006 , 0x000002b6 
+ 00000690  0x0000038e beq  0x00000008 , 0x000002b8 
+ 00000691  0x0000038f rtn 
+ 00000692  0x00000391 jam  0x00000001 , 0x00004d08 
+ 00000693  0x00000392 branch  0x000002b8 
+ 00000694  0x00000394 fetcht  0x00000001 , 0x00004bbc 
+ 00000695  0x00000395 branch  0x00006ef7 
+ 00000696  0x00000397 fetcht  0x00000001 , 0x00004bbc 
+ 00000697  0x00000398 branch  0x00006ef3 
+ 00000698  0x0000039b fetch  0x00000002 , 0x00004725 
+ 00000699  0x0000039c fetcht  0x00000002 , 0x00004781 
+ 00000700  0x0000039d isub  0x00000002 , 0x00000002 
+ 00000701  0x0000039e fetch  0x00000002 , 0x00004d09 
+ 00000702  0x0000039f isub  0x00000002 , 0x0000003e 
+ 00000703  0x000003a0 nbranch  0x000002b8 , 0x00000002 
+ 00000704  0x000003a1 jam  0x00000001 , 0x00004d0c 
+ 00000705  0x000003a2 fetch  0x00000001 , 0x00004d0b 
+ 00000706  0x000003a3 increase  0x00000001 , 0x0000003f 
+ 00000707  0x000003a4 store  0x00000001 , 0x00004d0b 
+ 00000708  0x000003a5 bbit1  0x00000001 , 0x000002b6 
+ 00000709  0x000003a6 branch  0x000002b8 
+ 00000710  0x000003a9 fetch  0x00000008 , 0x00004713 
+ 00000711  0x000003aa rtnbit0  0x00000023 
+ 00000712  0x000003ab rtnbit0  0x00000004 
+ 00000713  0x000003ac bbit1  0x00000027 , 0x000002ce 
+ 00000714  0x000003ad fetch  0x00000001 , 0x00004d08 
+ 00000715  0x000003ae sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00000716  0x000003af branch  0x0000621b , 0x00000002 
+ 00000717  0x000003b0 branch  0x00006214 
+ 00000718  0x000003b3 fetch  0x00000001 , 0x00004d0c 
+ 00000719  0x000003b4 nbranch  0x0000621b , 0x00000034 
+ 00000720  0x000003b5 branch  0x00006214 
+ 00000721  0x000003bb rtn 
+ 00000722  0x000003be arg  0x000048ee , 0x00000013 
+ 00000723  0x000003bf arg  0x000002d5 , 0x00000012 
+ 00000724  0x000003c0 branch  0x000042e7 
+ 00000725  0x000003c3 jam  0x00000001 , 0x000048eb 
+ 00000726  0x000003c4 branch  0x00004f6c 
+ 00000727  0x000003c8 arg  0x00004781 , 0x00000013 
+ 00000728  0x000003c9 arg  0x00004b8d , 0x00000012 
+ 00000729  0x000003ca branch  0x000042e7 
+ 00000730  0x000003ce fetch  0x00000001 , 0x00004ba1 
+ 00000731  0x000003cf bbit1  0x00000001 , 0x000002dd 
+ 00000732  0x000003d0 branch  0x000002e7 
+ 00000733  0x000003d4 fetch  0x00000001 , 0x00004ba6 
+ 00000734  0x000003d5 sub  0x0000003f , 0x00000064 , 0x0000003e 
+ 00000735  0x000003d6 nrtn  0x00000002 
+ 00000736  0x000003d7 increase  0x00000001 , 0x0000003f 
+ 00000737  0x000003d8 store  0x00000001 , 0x00004ba6 
+ 00000738  0x000003d9 rtnne  0x00000019 
+ 00000739  0x000003da jam  0x00000000 , 0x00004ba5 
+ 00000740  0x000003db fetch  0x00000001 , 0x00004666 
+ 00000741  0x000003dc rtneq  0x00000004 
+ 00000742  0x000003dd branch  0x00004e2c 
+ 00000743  0x000003e0 jam  0x00000000 , 0x00004ba6 
+ 00000744  0x000003e1 rtn 
+ 00000745  0x000003e5 call  0x000002c6 
+ 00000746  0x000003e6 branch  0x000078aa 
+ 00000747  0x000003ea fetch  0x00000008 , 0x00004713 
+ 00000748  0x000003eb bbit0  0x00000015 , 0x000002fe 
+ 00000749  0x000003ec call  0x00005534 
+ 00000750  0x000003ed call  0x00000234 
+ 00000751  0x000003ee call  0x00006f82 
+ 00000752  0x000003ef call  0x00006fb0 
+ 00000753  0x000003f0 div  0x0000003f , 0x0000000a 
+ 00000754  0x000003f1 call  0x00007d5f 
+ 00000755  0x000003f2 store  0x00000002 , 0x00004633 
+ 00000756  0x000003f3 fetch  0x00000002 , 0x0000462f 
+ 00000757  0x000003f4 div  0x0000003f , 0x00000002 
+ 00000758  0x000003f5 call  0x00007d5f 
+ 00000759  0x000003f6 fetcht  0x00000002 , 0x00004633 
+ 00000760  0x000003f7 isub  0x00000002 , 0x0000003e 
+ 00000761  0x000003f8 branch  0x000002eb , 0x00000002 
+ 00000762  0x000003f9 arg  0x0000462d , 0x00000011 
+ 00000763  0x000003fa call  0x00005563 
+ 00000764  0x000003fb fetch  0x00000001 , 0x0000440c 
+ 00000765  0x000003fc bbit1  0x00000001 , 0x00004f6b 
+ 00000766  0x000003fe fetch  0x00000001 , 0x000049a4 
+ 00000767  0x000003ff call  0x00004e24 , 0x00000034 
+ 00000768  0x00000400 fetch  0x00000001 , 0x000049a3 
+ 00000769  0x00000401 nrtn  0x00000034 
+ 00000770  0x00000402 fetch  0x00000001 , 0x00004666 
+ 00000771  0x00000403 beq  0x00000000 , 0x0000602f 
+ 00000772  0x00000404 call  0x00005aa8 
+ 00000773  0x00000406 fetch  0x00000006 , 0x00004668 
+ 00000774  0x00000408 branch  0x00005a94 , 0x00000034 
+ 00000775  0x00000409 branch  0x000054a0 
+ 00000776  0x0000040e call  0x000004f3 
+ 00000777  0x0000040f call  0x00004c85 
+ 00000778  0x00000410 setarg  0x00000000 
+ 00000779  0x00000411 store  0x00000002 , 0x000048e9 
+ 00000780  0x00000412 arg  0x0000489c , 0x00000006 
+ 00000781  0x00000413 arg  0x000048b0 , 0x00000005 
+ 00000782  0x00000414 arg  0x00000014 , 0x00000039 
+ 00000783  0x00000415 call  0x00007cda 
+ 00000784  0x00000416 setarg  0x0000489c 
+ 00000785  0x00000417 store  0x00000002 , 0x000048e3 
+ 00000786  0x00000418 setarg  0x00004cfb 
+ 00000787  0x00000419 store  0x00000002 , 0x000048e5 
+ 00000788  0x0000041a call  0x00004c83 
+ 00000789  0x0000041c call  0x00004c81 
+ 00000790  0x0000041e fetch  0x00000002 , 0x000048e9 
+ 00000791  0x0000041f increase  0x00000001 , 0x0000003f 
+ 00000792  0x00000420 store  0x00000002 , 0x000048e9 
+ 00000793  0x00000421 bbit1  0x00000009 , 0x0000034f 
+ 00000794  0x00000422 fetcht  0x00000001 , 0x00004864 
+ 00000795  0x00000423 call  0x00006ee6 
+ 00000796  0x00000424 nbranch  0x00000316 , 0x00000001 
+ 00000797  0x00000425 call  0x00004c85 
+ 00000798  0x00000427 fetcht  0x00000001 , 0x00004864 
+ 00000799  0x00000428 call  0x00006ee6 
+ 00000800  0x00000429 branch  0x0000031e , 0x00000001 
+ 00000801  0x0000042b call  0x00000346 
+ 00000802  0x0000042c call  0x00000356 
+ 00000803  0x0000042d call  0x00004c81 
+ 00000804  0x0000042e call  0x00004c83 
+ 00000805  0x00000430 fetch  0x00000002 , 0x0000489a 
+ 00000806  0x00000431 copy  0x0000003f , 0x00000012 
+ 00000807  0x00000432 jam  0x00000000 , 0x000048e8 
+ 00000808  0x00000434 ifetcht  0x00000001 , 0x00000012 
+ 00000809  0x00000435 fetch  0x00000002 , 0x00004898 
+ 00000810  0x00000436 copy  0x0000003f , 0x00000011 
+ 00000811  0x00000437 copy  0x00000011 , 0x00000013 
+ 00000812  0x00000438 arg  0x00000014 , 0x00000039 
+ 00000813  0x0000043a ifetch  0x00000001 , 0x00000011 
+ 00000814  0x0000043b isub  0x00000002 , 0x0000003e 
+ 00000815  0x0000043c branch  0x0000033a , 0x00000005 
+ 00000816  0x0000043d increase  0x00000001 , 0x00000011 
+ 00000817  0x0000043e loop  0x0000032d 
+ 00000818  0x00000440 increase  0x00000001 , 0x00000012 
+ 00000819  0x00000441 fetch  0x00000001 , 0x000048e8 
+ 00000820  0x00000442 increase  0x00000001 , 0x0000003f 
+ 00000821  0x00000443 store  0x00000001 , 0x000048e8 
+ 00000822  0x00000444 sub  0x0000003f , 0x0000000b , 0x0000003e 
+ 00000823  0x00000445 branch  0x00000328 , 0x00000002 
+ 00000824  0x00000446 call  0x00000485 
+ 00000825  0x00000447 branch  0x00000502 
+ 00000826  0x0000044b fetch  0x00000002 , 0x000048e3 
+ 00000827  0x0000044c copy  0x0000003f , 0x00000005 
+ 00000828  0x0000044d copy  0x00000011 , 0x0000003f 
+ 00000829  0x0000044e isub  0x00000013 , 0x0000003f 
+ 00000830  0x0000044f iadd  0x00000005 , 0x00000005 
+ 00000831  0x00000450 fetch  0x00000002 , 0x000048e5 
+ 00000832  0x00000451 copy  0x0000003f , 0x00000013 
+ 00000833  0x00000452 fetch  0x00000001 , 0x000048e8 
+ 00000834  0x00000453 iadd  0x00000013 , 0x00000013 
+ 00000835  0x00000454 ifetch  0x00000001 , 0x00000013 
+ 00000836  0x00000455 istore  0x00000001 , 0x00000005 
+ 00000837  0x00000456 branch  0x00000332 
+ 00000838  0x00000459 jam  0x00000000 , 0x00004ab9 
+ 00000839  0x0000045a jam  0x00000000 , 0x000048e8 
+ 00000840  0x0000045c call  0x00004c7b 
+ 00000841  0x0000045d call  0x00000350 
+ 00000842  0x0000045e call  0x00004c79 
+ 00000843  0x0000045f call  0x00000350 
+ 00000844  0x00000460 sub  0x0000003f , 0x0000000b , 0x0000003e 
+ 00000845  0x00000461 branch  0x00000348 , 0x00000002 
+ 00000846  0x00000462 branch  0x00004c7b 
+ 00000847  0x00000465 branch  0x00000308 
+ 00000848  0x0000046a jam  0x00000000 , 0x000048e7 
+ 00000849  0x0000046b call  0x00000354 
+ 00000850  0x0000046c fetch  0x00000002 , 0x000048e5 
+ 00000851  0x0000046d branch  0x00004c4a 
+ 00000852  0x00000470 nop  0x00000078 
+ 00000853  0x00000471 branch  0x00004c65 
+ 00000854  0x00000474 fetch  0x00000002 , 0x00004898 
+ 00000855  0x00000475 copy  0x0000003f , 0x00000012 
+ 00000856  0x00000476 jam  0x00000000 , 0x000048e8 
+ 00000857  0x00000478 jam  0x00000000 , 0x000048e7 
+ 00000858  0x00000479 ifetcht  0x00000001 , 0x00000012 
+ 00000859  0x0000047a isolate1  0x00000007 , 0x00000002 
+ 00000860  0x0000047b branch  0x00000363 , 0x00000001 
+ 00000861  0x0000047c call  0x00006ef7 
+ 00000862  0x0000047d call  0x00000354 
+ 00000863  0x0000047e ifetcht  0x00000001 , 0x00000012 
+ 00000864  0x0000047f call  0x00006ef3 
+ 00000865  0x00000480 ifetcht  0x00000001 , 0x00000012 
+ 00000866  0x00000481 call  0x00004c7d 
+ 00000867  0x00000483 increase  0x00000001 , 0x00000012 
+ 00000868  0x00000484 fetch  0x00000002 , 0x000048e3 
+ 00000869  0x00000485 call  0x00004c4a 
+ 00000870  0x00000486 sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00000871  0x00000487 branch  0x00000359 , 0x00000002 
+ 00000872  0x00000488 rtn 
+ 00000873  0x0000048b arg  0x0000489c , 0x00000011 
+ 00000874  0x0000048c arg  0x000048b0 , 0x00000012 
+ 00000875  0x0000048d arg  0x00000014 , 0x00000039 
+ 00000876  0x0000048e call  0x00007d64 
+ 00000877  0x0000048f nbranch  0x00004c87 , 0x00000005 
+ 00000878  0x00000490 call  0x000003a3 
+ 00000879  0x00000491 call  0x00004c87 , 0x00000034 
+ 00000880  0x00000493 call  0x00004ccd 
+ 00000881  0x00000494 fetch  0x00000001 , 0x0000497b 
+ 00000882  0x00000495 nrtn  0x00000034 
+ 00000883  0x00000496 fetch  0x00000001 , 0x000049c1 
+ 00000884  0x00000497 rtneq  0x00000001 
+ 00000885  0x00000498 rtneq  0x00000002 
+ 00000886  0x00000499 rtneq  0x00000004 
+ 00000887  0x0000049c jam  0x00000000 , 0x000048e8 
+ 00000888  0x0000049d arg  0x0000489c , 0x00000011 
+ 00000889  0x0000049e arg  0x000048c4 , 0x00000012 
+ 00000890  0x000004a0 ifetcht  0x00000001 , 0x00000011 
+ 00000891  0x000004a1 ifetch  0x00000001 , 0x00000012 
+ 00000892  0x000004a2 ixor  0x00000002 , 0x0000003f 
+ 00000893  0x000004a3 branch  0x0000039b , 0x00000034 
+ 00000894  0x000004a4 store  0x00000001 , 0x000048e7 
+ 00000895  0x000004a5 storet  0x00000001 , 0x000048f6 
+ 00000896  0x000004a6 istoret  0x00000001 , 0x00000012 
+ 00000897  0x000004a7 jam  0x00000001 , 0x000048f4 
+ 00000898  0x000004a8 jam  0x00000000 , 0x000048f7 
+ 00000899  0x000004aa fetch  0x00000001 , 0x000048e7 
+ 00000900  0x000004ab bbit0  0x00000000 , 0x00000390 
+ 00000901  0x000004ac fetch  0x00000001 , 0x000048e8 
+ 00000902  0x000004ad mul32  0x0000003f , 0x00000008 , 0x0000003f 
+ 00000903  0x000004ae fetcht  0x00000001 , 0x000048f7 
+ 00000904  0x000004af iadd  0x00000002 , 0x0000003f 
+ 00000905  0x000004b0 arg  0x00004a16 , 0x00000006 
+ 00000906  0x000004b1 iadd  0x00000006 , 0x00000006 
+ 00000907  0x000004b2 ifetch  0x00000001 , 0x00000006 
+ 00000908  0x000004b3 store  0x00000001 , 0x000048f5 
+ 00000909  0x000004b4 call  0x00004cfc 
+ 00000910  0x000004b5 call  0x000003af 
+ 00000911  0x000004b6 call  0x000003b9 
+ 00000912  0x000004b8 fetch  0x00000001 , 0x000048e7 
+ 00000913  0x000004b9 rshift  0x0000003f , 0x0000003f 
+ 00000914  0x000004ba store  0x00000001 , 0x000048e7 
+ 00000915  0x000004bb fetch  0x00000001 , 0x000048f6 
+ 00000916  0x000004bc rshift  0x0000003f , 0x0000003f 
+ 00000917  0x000004bd store  0x00000001 , 0x000048f6 
+ 00000918  0x000004be fetch  0x00000001 , 0x000048f7 
+ 00000919  0x000004bf increase  0x00000001 , 0x0000003f 
+ 00000920  0x000004c0 store  0x00000001 , 0x000048f7 
+ 00000921  0x000004c1 sub  0x0000003f , 0x00000007 , 0x0000003e 
+ 00000922  0x000004c2 branch  0x00000383 , 0x00000002 
+ 00000923  0x000004c4 increase  0x00000001 , 0x00000011 
+ 00000924  0x000004c5 increase  0x00000001 , 0x00000012 
+ 00000925  0x000004c6 fetch  0x00000001 , 0x000048e8 
+ 00000926  0x000004c7 increase  0x00000001 , 0x0000003f 
+ 00000927  0x000004c8 store  0x00000001 , 0x000048e8 
+ 00000928  0x000004c9 sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00000929  0x000004ca branch  0x0000037a , 0x00000002 
+ 00000930  0x000004cb rtn 
+ 00000931  0x000004ce fetch  0x00000008 , 0x0000489c 
+ 00000932  0x000004cf nrtn  0x00000034 
+ 00000933  0x000004d0 fetch  0x00000008 , 0x000048a4 
+ 00000934  0x000004d1 nrtn  0x00000034 
+ 00000935  0x000004d2 fetch  0x00000004 , 0x000048ac 
+ 00000936  0x000004d3 nrtn  0x00000034 
+ 00000937  0x000004d4 fetch  0x00000001 , 0x000049c4 
+ 00000938  0x000004d5 nrtn  0x00000034 
+ 00000939  0x000004d6 fetch  0x00000001 , 0x000049c1 
+ 00000940  0x000004d7 rtneq  0x00000006 
+ 00000941  0x000004d8 jam  0x00000000 , 0x000049c1 
+ 00000942  0x000004d9 rtn 
+ 00000943  0x000004dc fetch  0x00000001 , 0x000048f5 
+ 00000944  0x000004dd beq  0x000000ad , 0x000003b2 
+ 00000945  0x000004de branch  0x00004d3c 
+ 00000946  0x000004e1 fetch  0x00000001 , 0x000049c6 
+ 00000947  0x000004e2 beq  0x00000003 , 0x000003b6 
+ 00000948  0x000004e3 setarg  0x000000fa 
+ 00000949  0x000004e4 branch  0x00004d38 
+ 00000950  0x000004e6 jam  0x00000008 , 0x000049c2 
+ 00000951  0x000004e7 jam  0x0000002c , 0x000049c3 
+ 00000952  0x000004e8 branch  0x00004d95 
+ 00000953  0x000004eb fetch  0x00000001 , 0x000048f5 
+ 00000954  0x000004ec arg  0x000000e0 , 0x00000002 
+ 00000955  0x000004ed isub  0x00000002 , 0x0000003e 
+ 00000956  0x000004ee nbranch  0x000003cb , 0x00000002 
+ 00000957  0x000004ef sub  0x0000003f , 0x000000e7 , 0x0000003e 
+ 00000958  0x000004f0 nbranch  0x000003e8 , 0x00000002 
+ 00000959  0x000004f1 and_into  0x00000007 , 0x0000003f 
+ 00000960  0x000004f2 copy  0x0000003f , 0x00000007 
+ 00000961  0x000004f3 fetch  0x00000001 , 0x000048f6 
+ 00000962  0x000004f4 bbit1  0x00000000 , 0x000003c7 
+ 00000963  0x000004f6 fetch  0x00000001 , 0x000048f8 
+ 00000964  0x000004f7 qset0  0x0000003f 
+ 00000965  0x000004f8 store  0x00000001 , 0x000048f8 
+ 00000966  0x000004f9 rtn 
+ 00000967  0x000004fb fetch  0x00000001 , 0x000048f8 
+ 00000968  0x000004fc qset1  0x0000003f 
+ 00000969  0x000004fd store  0x00000001 , 0x000048f8 
+ 00000970  0x000004fe rtn 
+ 00000971  0x00000501 jam  0x00000000 , 0x00004900 
+ 00000972  0x00000502 fetch  0x00000001 , 0x000048f6 
+ 00000973  0x00000503 bbit1  0x00000000 , 0x000003dc 
+ 00000974  0x00000505 fetcht  0x00000001 , 0x000048f5 
+ 00000975  0x00000506 arg  0x00000006 , 0x00000039 
+ 00000976  0x00000507 arg  0x000048fa , 0x00000006 
+ 00000977  0x00000509 ifetch  0x00000001 , 0x00000006 
+ 00000978  0x0000050a isub  0x00000002 , 0x0000003e 
+ 00000979  0x0000050b nbranch  0x000003da , 0x00000005 
+ 00000980  0x0000050c ifetch  0x00000001 , 0x00000006 
+ 00000981  0x0000050d increase  0xfffffffe , 0x00000006 
+ 00000982  0x0000050e istore  0x00000001 , 0x00000006 
+ 00000983  0x0000050f rtn  0x00000034 
+ 00000984  0x00000510 increase  0x00000001 , 0x00000006 
+ 00000985  0x00000511 istoret  0x00000001 , 0x00000006 
+ 00000986  0x00000513 loop  0x000003d1 
+ 00000987  0x00000514 rtn 
+ 00000988  0x00000517 fetcht  0x00000001 , 0x000048f5 
+ 00000989  0x00000518 arg  0x00000006 , 0x00000039 
+ 00000990  0x00000519 arg  0x000048fa , 0x00000006 
+ 00000991  0x0000051b ifetch  0x00000001 , 0x00000006 
+ 00000992  0x0000051c branch  0x000003e5 , 0x00000034 
+ 00000993  0x0000051d isub  0x00000002 , 0x0000003e 
+ 00000994  0x0000051e rtn  0x00000005 
+ 00000995  0x0000051f loop  0x000003df 
+ 00000996  0x00000520 rtn 
+ 00000997  0x00000522 increase  0xffffffff , 0x00000006 
+ 00000998  0x00000523 istoret  0x00000001 , 0x00000006 
+ 00000999  0x00000524 rtn 
+ 00001000  0x00000527 jam  0x00000001 , 0x000049c5 
+ 00001001  0x00000528 fetch  0x00000001 , 0x000048f6 
+ 00001002  0x00000529 isolate0  0x00000000 , 0x0000003f 
+ 00001003  0x0000052a call  0x000003ed , 0x00000001 
+ 00001004  0x0000052b branch  0x000003cb 
+ 00001005  0x0000052e jam  0x00000002 , 0x000049c5 
+ 00001006  0x0000052f rtn 
+ 00001007  0x00000532 fetch  0x00000001 , 0x000048f6 
+ 00001008  0x00000533 isolate1  0x00000000 , 0x0000003f 
+ 00001009  0x00000534 call  0x00004d4e , 0x00000001 
+ 00001010  0x00000535 fetch  0x00000001 , 0x000049a1 
+ 00001011  0x00000536 ncall  0x000003f5 , 0x00000034 
+ 00001012  0x00000537 branch  0x00004d01 
+ 00001013  0x0000053a fetch  0x00000001 , 0x000048f5 
+ 00001014  0x0000053b beq  0x00000014 , 0x000003fa 
+ 00001015  0x0000053c beq  0x0000001a , 0x00000400 
+ 00001016  0x0000053d beq  0x00000008 , 0x00000404 
+ 00001017  0x0000053e branch  0x00004d12 
+ 00001018  0x00000542 fetch  0x00000001 , 0x000048f6 
+ 00001019  0x00000543 bbit0  0x00000000 , 0x000003fe 
+ 00001020  0x00000544 jam  0x00000001 , 0x000049c6 
+ 00001021  0x00000546 jam  0x00000006 , 0x00004bca 
+ 00001022  0x00000548 setarg  0x00000000 
+ 00001023  0x00000549 branch  0x00004d38 
+ 00001024  0x0000054c fetch  0x00000001 , 0x000048f6 
+ 00001025  0x0000054d bbit0  0x00000000 , 0x000003fe 
+ 00001026  0x0000054e jam  0x00000000 , 0x000049c6 
+ 00001027  0x0000054f branch  0x000003fd 
+ 00001028  0x00000552 fetch  0x00000001 , 0x000048f6 
+ 00001029  0x00000553 bbit0  0x00000000 , 0x000003fe 
+ 00001030  0x00000554 jam  0x00000002 , 0x000049c6 
+ 00001031  0x00000555 branch  0x000003fd 
+ 00001032  0x00000559 branch  0x00004df6 
+ 00001033  0x0000055e disable  0x00000028 
+ 00001034  0x0000055f jam  0x00000000 , 0x0000496c 
+ 00001035  0x00000560 jam  0x00000000 , 0x0000496d 
+ 00001036  0x00000561 jam  0x00000000 , 0x0000496e 
+ 00001037  0x00000562 fetch  0x00000001 , 0x000049c1 
+ 00001038  0x00000563 beq  0x00000001 , 0x00004da5 
+ 00001039  0x00000564 beq  0x00000002 , 0x00004daa 
+ 00001040  0x00000565 beq  0x00000003 , 0x00004daa 
+ 00001041  0x00000566 beq  0x00000004 , 0x00004dae 
+ 00001042  0x00000567 beq  0x00000006 , 0x00004db7 
+ 00001043  0x00000568 fetch  0x00000001 , 0x000048f4 
+ 00001044  0x00000569 branch  0x00000416 , 0x00000034 
+ 00001045  0x0000056a branch  0x00004e54 
+ 00001046  0x0000056d fetch  0x00000001 , 0x00004666 
+ 00001047  0x0000056e rtnne  0x00000000 
+ 00001048  0x0000056f branch  0x00004e66 
+ 00001049  0x00000572 fetch  0x00000001 , 0x00004666 
+ 00001050  0x00000573 bne  0x00000000 , 0x00000420 
+ 00001051  0x00000574 jam  0x00000000 , 0x000049a9 
+ 00001052  0x00000575 fetch  0x00000002 , 0x00004855 
+ 00001053  0x00000576 ncall  0x00004afc , 0x00000034 
+ 00001054  0x00000577 fetch  0x00000006 , 0x00004858 
+ 00001055  0x00000578 ncall  0x00004afc , 0x00000034 
+ 00001056  0x0000057b fetch  0x00000001 , 0x00004855 
+ 00001057  0x0000057c beq  0x00000000 , 0x00000423 
+ 00001058  0x0000057d branch  0x00004f19 
+ 00001059  0x00000580 jam  0x00000002 , 0x0000485f 
+ 00001060  0x00000581 call  0x00004f3e 
+ 00001061  0x00000582 fetch  0x00000001 , 0x00004666 
+ 00001062  0x00000583 bne  0x00000000 , 0x00004f2a 
+ 00001063  0x00000584 branch  0x00004f27 
+ 00001064  0x00000588 setarg  0x00000445 
+ 00001065  0x00000589 store  0x00000002 , 0x000043e9 
+ 00001066  0x0000058a setarg  0x00004fe5 
+ 00001067  0x0000058b store  0x00000002 , 0x000045f2 
+ 00001068  0x0000058c setarg  0x00004ff8 
+ 00001069  0x0000058d store  0x00000002 , 0x000045f4 
+ 00001070  0x0000058e setarg  0x00000448 
+ 00001071  0x0000058f store  0x00000002 , 0x000045f6 
+ 00001072  0x00000590 setarg  0x00000539 
+ 00001073  0x00000591 store  0x00000002 , 0x000043d9 
+ 00001074  0x00000592 setarg  0x00000476 
+ 00001075  0x00000593 store  0x00000002 , 0x000043d7 
+ 00001076  0x00000595 setarg  0x00004a9a 
+ 00001077  0x00000596 store  0x00000002 , 0x000043dd 
+ 00001078  0x00000597 setarg  0x00004bcc 
+ 00001079  0x00000598 store  0x00000002 , 0x000043db 
+ 00001080  0x00000599 setarg  0x00004f62 
+ 00001081  0x0000059a store  0x00000002 , 0x000043d5 
+ 00001082  0x0000059b setarg  0x00005b08 
+ 00001083  0x0000059c store  0x00000002 , 0x000043df 
+ 00001084  0x0000059d setarg  0x00004b19 
+ 00001085  0x0000059e store  0x00000002 , 0x000043e3 
+ 00001086  0x0000059f setarg  0x000055fa 
+ 00001087  0x000005a0 store  0x00000002 , 0x000043e7 
+ 00001088  0x000005a3 setarg  0x00006221 
+ 00001089  0x000005a4 store  0x00000002 , 0x000043e1 
+ 00001090  0x000005a5 setarg  0x00006228 
+ 00001091  0x000005a6 store  0x00000002 , 0x000043e5 
+ 00001092  0x000005a7 rtn 
+ 00001093  0x000005aa fetch  0x00000001 , 0x00004666 
+ 00001094  0x000005ab rtnne  0x00000000 
+ 00001095  0x000005ac branch  0x0000610b 
+ 00001096  0x000005af call  0x00000470 
+ 00001097  0x000005b0 fetcht  0x00000001 , 0x00004655 
+ 00001098  0x000005b1 call  0x00006eb6 
+ 00001099  0x000005b3 fetcht  0x00000001 , 0x00004bbd 
+ 00001100  0x000005b4 set1  0x00000007 , 0x00000002 
+ 00001101  0x000005b5 call  0x00006eb6 
+ 00001102  0x000005b7 fetch  0x00000002 , 0x00004898 
+ 00001103  0x000005b8 copy  0x0000003f , 0x00000012 
+ 00001104  0x000005b9 arg  0x00000014 , 0x00000039 
+ 00001105  0x000005bb ifetcht  0x00000001 , 0x00000012 
+ 00001106  0x000005bc isolate1  0x00000007 , 0x00000002 
+ 00001107  0x000005bd ncall  0x00006ef7 , 0x00000001 
+ 00001108  0x000005be increase  0x00000001 , 0x00000012 
+ 00001109  0x000005bf loop  0x00000451 
+ 00001110  0x000005c1 call  0x00000485 
+ 00001111  0x000005c2 jam  0x00000000 , 0x00004d0d 
+ 00001112  0x000005c3 fetch  0x00000002 , 0x00004896 
+ 00001113  0x000005c4 copy  0x0000003f , 0x00000012 
+ 00001114  0x000005c5 arg  0x00000008 , 0x00000039 
+ 00001115  0x000005c7 ifetcht  0x00000001 , 0x00000012 
+ 00001116  0x000005c8 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00001117  0x000005c9 ncall  0x00004f5a , 0x00000005 
+ 00001118  0x000005ca increase  0x00000001 , 0x00000012 
+ 00001119  0x000005cb loop  0x0000045b 
+ 00001120  0x000005cc call  0x00000493 
+ 00001121  0x000005cd fetcht  0x00000001 , 0x0000465b 
+ 00001122  0x000005ce call  0x000055b5 
+ 00001123  0x000005cf call  0x000055b9 
+ 00001124  0x000005d0 branch  0x000054f2 
+ 00001125  0x000005d3 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00001126  0x000005d4 rtn  0x00000005 
+ 00001127  0x000005d5 set1  0x00000007 , 0x00000002 
+ 00001128  0x000005d6 call  0x00006ee6 
+ 00001129  0x000005d7 nbranch  0x0000046c , 0x00000001 
+ 00001130  0x000005d8 nsetflag  0x00000001 , 0x00000007 , 0x00000002 
+ 00001131  0x000005d9 branch  0x00006eb6 
+ 00001132  0x000005dd jam  0x00000001 , 0x00004d0d 
+ 00001133  0x000005de call  0x00006f0f 
+ 00001134  0x000005df arg  0x00000006 , 0x00000008 
+ 00001135  0x000005e0 branch  0x00006ebd 
+ 00001136  0x000005e4 setarg  0x00000000 
+ 00001137  0x000005e5 set1  0x00000015 , 0x0000003f 
+ 00001138  0x000005e6 store  0x00000008 , 0x00000016 
+ 00001139  0x000005e7 setarg  0x00000000 
+ 00001140  0x000005e8 istore  0x00000004 , 0x00000005 
+ 00001141  0x000005e9 rtn 
+ 00001142  0x000005ec rtnmark1  0x00000026 
+ 00001143  0x000005ed branch  0x00000448 
+ 00001144  0x000005f1 jam  0x000000ff , 0x00004659 
+ 00001145  0x000005f2 call  0x0000739a 
+ 00001146  0x000005f3 call  0x00004f70 
+ 00001147  0x000005f4 branch  0x00000482 
+ 00001148  0x000005f7 call  0x00004b6f 
+ 00001149  0x000005f8 call  0x0000026d 
+ 00001150  0x000005f9 call  0x00000254 
+ 00001151  0x000005fa branch  0x00004b7c 
+ 00001152  0x000005fe call  0x00000482 
+ 00001153  0x000005ff branch  0x00004327 
+ 00001154  0x00000603 call  0x00000470 
+ 00001155  0x00000604 call  0x00004f70 
+ 00001156  0x00000605 branch  0x00000448 
+ 00001157  0x00000608 arg  0x00008070 , 0x00000006 
+ 00001158  0x00000609 arg  0x00000010 , 0x00000039 
+ 00001159  0x0000060b ifetch  0x00000001 , 0x00000006 
+ 00001160  0x0000060c nbranch  0x0000048c , 0x00000034 
+ 00001161  0x0000060d setarg  0x00000040 
+ 00001162  0x0000060e add  0x00000006 , 0xffffffff , 0x00000005 
+ 00001163  0x0000060f istore  0x00000001 , 0x00000005 
+ 00001164  0x00000611 loop  0x00000487 
+ 00001165  0x00000612 arg  0x000080dc , 0x0000003f 
+ 00001166  0x00000613 isub  0x00000006 , 0x0000003e 
+ 00001167  0x00000614 rtn  0x00000005 
+ 00001168  0x00000615 arg  0x00000008 , 0x00000039 
+ 00001169  0x00000616 arg  0x000080d4 , 0x00000006 
+ 00001170  0x00000617 branch  0x00000487 
+ 00001171  0x0000061a fetch  0x00000001 , 0x00004d0d 
+ 00001172  0x0000061b branch  0x00000496 , 0x00000034 
+ 00001173  0x0000061c branch  0x0000049a 
+ 00001174  0x00000620 setarg  0x00000010 
+ 00001175  0x00000622 store  0x00000001 , 0x00008141 
+ 00001176  0x00000623 until  0x0000003e , 0x00000033 
+ 00001177  0x00000624 rtn 
+ 00001178  0x00000627 setarg  0x00000080 
+ 00001179  0x00000628 branch  0x00000497 
+ 00001180  0x0000062c call  0x00002408 
+ 00001181  0x0000062d fetch  0x00000003 , 0x000040bd 
+ 00001182  0x0000062e rtn  0x00000034 
+ 00001183  0x0000062f fetch  0x00000001 , 0x000049a1 
+ 00001184  0x00000630 nrtn  0x00000034 
+ 00001185  0x00000631 fetch  0x00000001 , 0x000049a2 
+ 00001186  0x00000632 nrtn  0x00000034 
+ 00001187  0x00000633 fetch  0x00000001 , 0x00004845 
+ 00001188  0x00000634 nrtn  0x00000034 
+ 00001189  0x00000635 fetch  0x00000002 , 0x00004790 
+ 00001190  0x00000636 nrtn  0x00000034 
+ 00001191  0x00000637 fetch  0x00000001 , 0x000049c4 
+ 00001192  0x00000638 nrtn  0x00000034 
+ 00001193  0x00000639 branch  0x00002490 
+ 00001194  0x0000063e fetch  0x00000002 , 0x000043e9 
+ 00001195  0x0000063f call  0x00007d79 
+ 00001196  0x00000641 fetch  0x00000004 , 0x000040ad 
+ 00001197  0x00000642 iadd  0x00000002 , 0x0000003f 
+ 00001198  0x00000643 store  0x00000004 , 0x000040ad 
+ 00001199  0x00000644 call  0x000004b1 
+ 00001200  0x00000646 branch  0x00002425 
+ 00001201  0x00000649 storer  0x00000000 , 0x00000008 , 0x000040e7 
+ 00001202  0x0000064a arg  0x00008070 , 0x00000006 
+ 00001203  0x0000064b arg  0x000040cc , 0x00000005 
+ 00001204  0x0000064c call  0x00007c8f 
+ 00001205  0x0000064d arg  0x000080d4 , 0x00000006 
+ 00001206  0x0000064e call  0x00007c89 
+ 00001207  0x0000064f fetch  0x00000001 , 0x00008080 
+ 00001208  0x00000650 store  0x00000001 , 0x000040ef 
+ 00001209  0x00000651 copy  0x00000002 , 0x00000012 
+ 00001210  0x00000653 arg  0x0000000c , 0x00000039 
+ 00001211  0x00000654 arg  0x00000016 , 0x00000011 
+ 00001212  0x00000655 arg  0x0000814d , 0x00000013 
+ 00001213  0x00000656 until  0x0000003e , 0x00000033 
+ 00001214  0x00000658 ifetch  0x00000001 , 0x00000011 
+ 00001215  0x00000659 ifetcht  0x00000001 , 0x00000013 
+ 00001216  0x0000065a isub  0x00000002 , 0x0000003e 
+ 00001217  0x0000065b branch  0x000004c4 , 0x00000005 
+ 00001218  0x0000065c istore  0x00000001 , 0x00000013 
+ 00001219  0x0000065d until  0x0000003e , 0x00000033 
+ 00001220  0x0000065f increase  0x00000001 , 0x00000011 
+ 00001221  0x00000660 increase  0x00000001 , 0x00000013 
+ 00001222  0x00000661 loop  0x000004be 
+ 00001223  0x00000662 copy  0x00000012 , 0x00000002 
+ 00001224  0x00000663 rtn 
+ 00001225  0x00000667 call  0x00007396 
+ 00001226  0x00000668 call  0x0000065e 
+ 00001227  0x00000669 call  0x000004d4 
+ 00001228  0x0000066a call  0x000004f3 
+ 00001229  0x0000066b call  0x0000050b 
+ 00001230  0x0000066c rtn  0x0000002b 
+ 00001231  0x0000066d call  0x0000047c 
+ 00001232  0x0000066e fetch  0x00000001 , 0x00004a07 
+ 00001233  0x0000066f store  0x00000001 , 0x00004a08 
+ 00001234  0x00000670 call  0x00004a7a 
+ 00001235  0x00000671 branch  0x00004962 
+ 00001236  0x00000674 call  0x000042a3 
+ 00001237  0x00000675 call  0x00000496 
+ 00001238  0x00000676 rtn  0x0000002b 
+ 00001239  0x00000677 call  0x000035f0 
+ 00001240  0x00000678 fetch  0x00000001 , 0x00004666 
+ 00001241  0x00000679 store  0x00000001 , 0x00004be6 
+ 00001242  0x0000067a fetch  0x00000003 , 0x000042de 
+ 00001243  0x0000067b store  0x00000003 , 0x00004797 
+ 00001244  0x0000067c call  0x000049af 
+ 00001245  0x0000067d setarg  0x00004bfb 
+ 00001246  0x0000067e store  0x00000002 , 0x0000433f 
+ 00001247  0x0000067f setarg  0x00000020 
+ 00001248  0x00000680 store  0x00000002 , 0x00004341 
+ 00001249  0x00000681 call  0x00002a41 
+ 00001250  0x00000683 fetch  0x00000008 , 0x00004713 
+ 00001251  0x00000684 bbit1  0x00000014 , 0x000049fd 
+ 00001252  0x00000685 bbit1  0x00000012 , 0x00005d6e 
+ 00001253  0x00000686 rtn 
+ 00001254  0x00000689 arg  0x00004667 , 0x00000011 
+ 00001255  0x0000068a fetch  0x00000001 , 0x00004666 
+ 00001256  0x0000068b rtneq  0x00000000 
+ 00001257  0x0000068c increase  0xffffffff , 0x0000003f 
+ 00001258  0x0000068d mul32  0x0000003f , 0x0000000d , 0x0000003f 
+ 00001259  0x0000068e iadd  0x00000011 , 0x00000011 
+ 00001260  0x0000068f ifetch  0x00000001 , 0x00000011 
+ 00001261  0x00000690 store  0x00000001 , 0x000043f3 
+ 00001262  0x00000691 beq  0x00000034 , 0x000004f0 
+ 00001263  0x00000692 rtn 
+ 00001264  0x00000695 ifetch  0x00000006 , 0x00000006 
+ 00001265  0x00000696 store  0x00000006 , 0x00004116 
+ 00001266  0x00000697 branch  0x00005c7d 
+ 00001267  0x0000069a call  0x00000470 
+ 00001268  0x0000069b fetcht  0x00000001 , 0x00004655 
+ 00001269  0x0000069c storet  0x00000001 , 0x00004659 
+ 00001270  0x0000069d call  0x00004c7d 
+ 00001271  0x0000069f setarg  0x0000486e 
+ 00001272  0x000006a0 store  0x00000002 , 0x00004896 
+ 00001273  0x000006a2 setarg  0x00004876 
+ 00001274  0x000006a3 store  0x00000002 , 0x00004898 
+ 00001275  0x000006a5 setarg  0x0000488a 
+ 00001276  0x000006a6 store  0x00000002 , 0x0000489a 
+ 00001277  0x000006a8 call  0x00000502 
+ 00001278  0x000006aa fetch  0x00000002 , 0x00004898 
+ 00001279  0x000006ab copy  0x0000003f , 0x00000012 
+ 00001280  0x000006ac arg  0x00000014 , 0x00000039 
+ 00001281  0x000006ad branch  0x000049e1 
+ 00001282  0x000006b0 fetch  0x00000002 , 0x00004896 
+ 00001283  0x000006b1 copy  0x0000003f , 0x00000012 
+ 00001284  0x000006b2 arg  0x00000008 , 0x00000039 
+ 00001285  0x000006b4 ifetcht  0x00000001 , 0x00000012 
+ 00001286  0x000006b5 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00001287  0x000006b6 ncall  0x000049e7 , 0x00000005 
+ 00001288  0x000006b7 increase  0x00000001 , 0x00000012 
+ 00001289  0x000006b8 loop  0x00000505 
+ 00001290  0x000006b9 branch  0x000004ba 
+ 00001291  0x000006bc fetch  0x00000001 , 0x00004666 
+ 00001292  0x000006bd bne  0x00000000 , 0x0000050f 
+ 00001293  0x000006be call  0x000035fb 
+ 00001294  0x000006bf branch  0x000049ec 
+ 00001295  0x000006c2 setarg  0x000000a0 
+ 00001296  0x000006c3 call  0x00000515 
+ 00001297  0x000006c4 fetch  0x00000001 , 0x0000440c 
+ 00001298  0x000006c5 rtnbit0  0x00000000 
+ 00001299  0x000006c6 setarg  0x00000050 
+ 00001300  0x000006c7 branch  0x00000515 
+ 00001301  0x000006ca fetcht  0x00000002 , 0x000042d3 
+ 00001302  0x000006cb idiv  0x00000002 
+ 00001303  0x000006cc call  0x00007d5f 
+ 00001304  0x000006cd store  0x00000001 , 0x0000496b 
+ 00001305  0x000006ce branch  0x000049f5 
+ 00001306  0x000006cf fetch  0x00000001 , 0x0000477e 
+ 00001307  0x000006d0 branch  0x00005c01 , 0x00000034 
+ 00001308  0x000006d1 rtn 
+ 00001309  0x000006d4 fetch  0x00000001 , 0x0000066f 
+ 00001310  0x000006d5 arg  0x00000008 , 0x00000039 
+ 00001311  0x000006d6 arg  0x000044d3 , 0x00000006 
+ 00001312  0x000006d8 ifetcht  0x00000001 , 0x00000006 
+ 00001313  0x000006d9 isub  0x00000002 , 0x0000003e 
+ 00001314  0x000006da rtn  0x00000005 
+ 00001315  0x000006db loop  0x00000520 
+ 00001316  0x000006dc branch  0x0000782c 
+ 00001317  0x000006df fetch  0x00000001 , 0x0000066f 
+ 00001318  0x000006e0 beq  0x0000001f , 0x00000528 
+ 00001319  0x000006e1 branch  0x00007864 
+ 00001320  0x000006e4 jam  0x00000034 , 0x00000032 
+ 00001321  0x000006e6 fetch  0x00000001 , 0x000043cb 
+ 00001322  0x000006e7 beq  0x0000000f , 0x00004bc5 
+ 00001323  0x000006e8 branch  0x00006ea6 
+ 00001324  0x000006ec call  0x0000047d 
+ 00001325  0x000006ed setarg  0x00000000 
+ 00001326  0x000006ee store  0x00000002 , 0x00004be7 
+ 00001327  0x000006ef branch  0x00004b9a 
+ 00001328  0x000006f2 setarg  0x00000000 
+ 00001329  0x000006f3 store  0x00000002 , 0x00004790 
+ 00001330  0x000006f4 arg  0x00000006 , 0x00000007 
+ 00001331  0x000006f5 call  0x00005f04 
+ 00001332  0x000006f6 jam  0x00000000 , 0x00004792 
+ 00001333  0x000006f7 call  0x00005c3e 
+ 00001334  0x000006f8 fetch  0x00000001 , 0x00004a08 
+ 00001335  0x000006f9 branch  0x0000047d , 0x00000034 
+ 00001336  0x000006fa rtn 
+ 00001337  0x000006fd call  0x00002a28 
+ 00001338  0x000006fe nrtn  0x00000034 
+ 00001339  0x000006ff fetch  0x00000001 , 0x0000478f 
+ 00001340  0x00000700 beq  0x000000ff , 0x00000540 
+ 00001341  0x00000701 fetch  0x00000001 , 0x00004843 
+ 00001342  0x00000702 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00001343  0x00000703 rtnne  0x00000003 
+ 00001344  0x00000705 fetch  0x00000008 , 0x00004713 
+ 00001345  0x00000706 bbit1  0x00000001 , 0x0000054a 
+ 00001346  0x00000707 bbit1  0x00000000 , 0x0000054a 
+ 00001347  0x00000708 bbit1  0x00000005 , 0x0000054a 
+ 00001348  0x00000709 bbit1  0x00000006 , 0x0000054a 
+ 00001349  0x0000070a call  0x00004e47 
+ 00001350  0x0000070b nrtn  0x00000028 
+ 00001351  0x0000070d fetch  0x00000001 , 0x0000496c 
+ 00001352  0x0000070e beq  0x00000001 , 0x00005b3d 
+ 00001353  0x0000070f rtn 
+ 00001354  0x00000712 jam  0x00000000 , 0x0000496d 
+ 00001355  0x00000713 branch  0x00005b3d 
+ 00001356  0x00000717 fetch  0x00000001 , 0x00004bf6 
+ 00001357  0x00000718 arg  0x00000100 , 0x00000013 
+ 00001358  0x00000719 iadd  0x00000013 , 0x0000003f 
+ 00001359  0x0000071a rtn 
+ 00001360  0x0000071c branch  0x00000570 
+ 00001361  0x0000071e call  0x00000553 
+ 00001362  0x0000071f branch  0x00002563 
+ 00001363  0x00000722 fetch  0x00000001 , 0x00004bf7 
+ 00001364  0x00000723 rtn  0x00000034 
+ 00001365  0x00000724 fetch  0x00000001 , 0x00004bf8 
+ 00001366  0x00000725 nrtn  0x00000034 
+ 00001367  0x00000726 fetcht  0x00000001 , 0x00004bf7 
+ 00001368  0x00000727 fetch  0x00000001 , 0x00004bf6 
+ 00001369  0x00000728 isub  0x00000002 , 0x0000003e 
+ 00001370  0x00000729 ncall  0x0000054c , 0x00000002 
+ 00001371  0x0000072a isub  0x00000002 , 0x0000003f 
+ 00001372  0x0000072b sub  0x0000003f , 0x00000064 , 0x0000003e 
+ 00001373  0x0000072c branch  0x00000565 , 0x00000002 
+ 00001374  0x0000072d fetch  0x00000001 , 0x00004bf9 
+ 00001375  0x0000072e sub  0x0000003f , 0x00000014 , 0x0000003e 
+ 00001376  0x0000072f ncall  0x00000563 , 0x00000002 
+ 00001377  0x00000730 jam  0x00000001 , 0x00004bf8 
+ 00001378  0x00000731 rtn 
+ 00001379  0x00000733 jam  0x00000001 , 0x00004bfa 
+ 00001380  0x00000734 branch  0x0000431f 
+ 00001381  0x00000736 fetcht  0x00000001 , 0x0000017f 
+ 00001382  0x00000737 fetch  0x00000001 , 0x0000004c 
+ 00001383  0x00000738 rshift  0x0000003f , 0x0000003f 
+ 00001384  0x00000739 ixor  0x00000002 , 0x0000003f 
+ 00001385  0x0000073a isolate1  0x00000002 , 0x0000003f 
+ 00001386  0x0000073b setarg  0x00000000 
+ 00001387  0x0000073c fetcht  0x00000001 , 0x00004bf9 
+ 00001388  0x0000073d setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00001389  0x0000073e iadd  0x00000002 , 0x00000002 
+ 00001390  0x0000073f storet  0x00000001 , 0x00004bf9 
+ 00001391  0x00000740 rtn 
+ 00001392  0x00000743 fetch  0x00000001 , 0x00000005 
+ 00001393  0x00000744 increase  0x00000001 , 0x0000003f 
+ 00001394  0x00000745 store  0x00000001 , 0x00000005 
+ 00001395  0x00000746 nbranch  0x00000577 , 0x0000002d 
+ 00001396  0x00000747 fetch  0x00000001 , 0x00004bf6 
+ 00001397  0x00000748 increase  0x00000001 , 0x0000003f 
+ 00001398  0x00000749 store  0x00000001 , 0x00004bf6 
+ 00001399  0x0000074a fetch  0x00000001 , 0x00000168 
+ 00001400  0x0000074b rtnbit1  0x00000003 
+ 00001401  0x0000074c set1  0x00000003 , 0x0000003f 
+ 00001402  0x0000074d store  0x00000001 , 0x00000168 
+ 00001403  0x0000074e fetch  0x00000002 , 0x000042f5 
+ 00001404  0x0000074f store  0x00000002 , 0x00000196 
+ 00001405  0x00000750 setarg  0x00000000 
+ 00001406  0x00000751 store  0x00000004 , 0x0000431d 
+ 00001407  0x00000754 rtn 
+ 00001408  0x00000757 call  0x0000281c 
+ 00001409  0x00000759 fetchr  0x00000011 , 0x00000001 , 0x0000004d 
+ 00001410  0x0000075a increase  0xfffffffc , 0x00000011 
+ 00001411  0x0000075b nbranch  0x000026fa , 0x00000002 
+ 00001412  0x0000075c branch  0x0000268e 
+ 00001413  0x0000075f parse  0x00000003 , 0x00000000 , 0x00000018 
+ 00001414  0x00000760 rshift32  0x0000003f , 0x0000003f 
+ 00001415  0x00000761 rshift16  0x0000003f , 0x0000003f 
+ 00001416  0x00000762 istore  0x00000003 , 0x00000005 
+ 00001417  0x00000763 enable  0x00000010 
+ 00001418  0x00000764 call  0x0000270d 
+ 00001419  0x00000765 branch  0x000026f6 , 0x00000006 
+ 00001420  0x00000766 bmark0  0x00000032 , 0x000026af 
+ 00001421  0x00000767 fetch  0x00000001 , 0x0000004d 
+ 00001422  0x00000768 branch  0x000026af , 0x00000034 
+ 00001423  0x00000769 increase  0xfffffffc , 0x0000003f 
+ 00001424  0x0000076a store  0x00000001 , 0x0000004d 
+ 00001425  0x0000076b call  0x000072cb 
+ 00001426  0x0000076c fetch  0x00000001 , 0x00008108 
+ 00001427  0x0000076d bbit0  0x00000007 , 0x000026fa 
+ 00001428  0x0000076e force  0x0000000c , 0x00000038 
+ 00001429  0x0000076f storer  0x0000002f , 0x00000004 , 0x00000154 
+ 00001430  0x00000770 branch  0x000026af 
+ 00001431  0x00000774 call  0x00002152 
+ 00001432  0x00000775 jam  0x00000000 , 0x00008900 
+ 00001433  0x00000776 set0  0x00000030 , 0x00000000 
+ 00001434  0x00000777 branch  0x00002ae3 
+ 00001435  0x0000077a set0  0x00000030 , 0x00000000 
+ 00001436  0x0000077b branch  0x00002af6 
+ 00001437  0x00000780 arg  0x00004667 , 0x00000011 
+ 00001438  0x00000781 fetch  0x00000001 , 0x00004666 
+ 00001439  0x00000782 increase  0xffffffff , 0x0000003f 
+ 00001440  0x00000783 mul32  0x0000003f , 0x0000000d , 0x0000003f 
+ 00001441  0x00000784 branch  0x000054a6 
+ 00001442  0x00000787 fetch  0x00000008 , 0x00004713 
+ 00001443  0x00000788 rtnbit0  0x00000002 
+ 00001444  0x00000789 arg  0x00000002 , 0x00000007 
+ 00001445  0x0000078a call  0x00005f04 
+ 00001446  0x0000078b call  0x000005b5 
+ 00001447  0x0000078c call  0x000005a9 
+ 00001448  0x0000078d branch  0x00005ca3 
+ 00001449  0x0000078f arg  0x00004667 , 0x00000011 
+ 00001450  0x00000790 fetch  0x00000001 , 0x00004666 
+ 00001451  0x00000791 increase  0xffffffff , 0x0000003f 
+ 00001452  0x00000792 mul32  0x0000003f , 0x0000000d , 0x0000003f 
+ 00001453  0x00000793 iadd  0x00000011 , 0x00000011 
+ 00001454  0x00000794 fetch  0x00000001 , 0x00000032 
+ 00001455  0x00000795 istore  0x00000001 , 0x00000011 
+ 00001456  0x00000796 beq  0x00000034 , 0x000005b2 
+ 00001457  0x00000797 rtn 
+ 00001458  0x0000079a fetch  0x00000006 , 0x00000178 
+ 00001459  0x0000079b istore  0x00000006 , 0x00000005 
+ 00001460  0x0000079c branch  0x00005c66 
+ 00001461  0x0000079f fetch  0x00000001 , 0x00000032 
+ 00001462  0x000007a0 beq  0x00000034 , 0x000005b8 
+ 00001463  0x000007a1 rtn 
+ 00001464  0x000007a3 store  0x00000001 , 0x0000495a 
+ 00001465  0x000007a4 fetch  0x00000006 , 0x00000178 
+ 00001466  0x000007a6 store  0x00000006 , 0x0000495b 
+ 00001467  0x000007a7 fetch  0x00000007 , 0x0000495a 
+ 00001468  0x000007a8 arg  0x00004667 , 0x00000006 
+ 00001469  0x000007a9 arg  0x00000003 , 0x00000039 
+ 00001470  0x000007ab ifetcht  0x00000007 , 0x00000006 
+ 00001471  0x000007ac isub  0x00000002 , 0x0000003e 
+ 00001472  0x000007ad branch  0x00005c69 , 0x00000005 
+ 00001473  0x000007ae increase  0x00000006 , 0x00000006 
+ 00001474  0x000007af loop  0x000005be 
+ 00001475  0x000007b0 rtn 
+ 00001476  0x000007b4 copy  0x00000011 , 0x00000006 
+ 00001477  0x000007b5 ifetch  0x00000003 , 0x00000006 
+ 00001478  0x000007b6 store  0x00000003 , 0x00004397 
+ 00001479  0x000007b7 beq  0x0000000b , 0x000005d1 
+ 00001480  0x000007b8 beq  0x00000008 , 0x00000601 
+ 00001481  0x000007b9 beq  0x00000009 , 0x000005e4 
+ 00001482  0x000007ba beq  0x00000007 , 0x000005f6 
+ 00001483  0x000007bb beq  0x00000001 , 0x000005fc 
+ 00001484  0x000007bc beq  0x0000000c , 0x00000616 
+ 00001485  0x000007bd beq  0x0000000a , 0x00000620 
+ 00001486  0x000007be beq  0x00000012 , 0x00000641 
+ 00001487  0x000007bf beq  0x00000052 , 0x00000652 
+ 00001488  0x000007c0 branch  0x00002b96 
+ 00001489  0x000007c3 fetch  0x00000001 , 0x000049f1 
+ 00001490  0x000007c4 rtn  0x00000034 
+ 00001491  0x000007c6 fetch  0x00000002 , 0x00004335 
+ 00001492  0x000007c7 arg  0x00000009 , 0x00000039 
+ 00001493  0x000007c8 fetch  0x00000002 , 0x00004339 
+ 00001494  0x000007c9 add  0x0000003f , 0x00000005 , 0x00000011 
+ 00001495  0x000007ca arg  0x000049f4 , 0x00000012 
+ 00001496  0x000007cb call  0x00007d64 
+ 00001497  0x000007cc branch  0x000005de , 0x00000005 
+ 00001498  0x000007cd branch  0x000005db 
+ 00001499  0x000007cf fetch  0x00000001 , 0x000042cb 
+ 00001500  0x000007d0 store  0x00000001 , 0x000049c6 
+ 00001501  0x000007d1 branch  0x000005df 
+ 00001502  0x000007d4 jam  0x00000003 , 0x000049c6 
+ 00001503  0x000007d6 jam  0x00000000 , 0x000049f1 
+ 00001504  0x000007d7 jam  0x00000001 , 0x00004be8 
+ 00001505  0x000007d8 fetch  0x00000001 , 0x00004be7 
+ 00001506  0x000007d9 rtn  0x00000034 
+ 00001507  0x000007da branch  0x000001de 
+ 00001508  0x000007dd fetch  0x00000001 , 0x000049f1 
+ 00001509  0x000007de rtn  0x00000034 
+ 00001510  0x000007e0 fetch  0x00000002 , 0x00004335 
+ 00001511  0x000007e1 increase  0xfffffffe , 0x0000003f 
+ 00001512  0x000007e2 div  0x0000003f , 0x00000007 
+ 00001513  0x000007e3 call  0x00007d62 
+ 00001514  0x000007e4 quotient  0x00000039 
+ 00001515  0x000007e5 fetch  0x00000002 , 0x00004339 
+ 00001516  0x000007e6 add  0x0000003f , 0x00000006 , 0x00000006 
+ 00001517  0x000007e8 increase  0x00000003 , 0x00000006 
+ 00001518  0x000007e9 ifetch  0x00000002 , 0x00000006 
+ 00001519  0x000007ea copy  0x0000003f , 0x00000013 
+ 00001520  0x000007eb ifetch  0x00000002 , 0x00000006 
+ 00001521  0x000007ec arg  0x00002a29 , 0x00000002 
+ 00001522  0x000007ed isub  0x00000002 , 0x0000003e 
+ 00001523  0x000007ee branch  0x00005089 , 0x00000005 
+ 00001524  0x000007ef loop  0x000005ed 
+ 00001525  0x000007f0 branch  0x000005db 
+ 00001526  0x000007f3 fetch  0x00000001 , 0x000049f1 
+ 00001527  0x000007f4 rtn  0x00000034 
+ 00001528  0x000007f6 fetch  0x00000001 , 0x000049f1 
+ 00001529  0x000007f7 beq  0x00000002 , 0x0000506c 
+ 00001530  0x000007f9 jam  0x00000002 , 0x000049c6 
+ 00001531  0x000007fa branch  0x000005df 
+ 00001532  0x000007fd fetch  0x00000001 , 0x000049f1 
+ 00001533  0x000007fe rtn  0x00000034 
+ 00001534  0x00000800 fetch  0x00000001 , 0x000049f1 
+ 00001535  0x00000801 beq  0x00000002 , 0x000005db 
+ 00001536  0x00000802 branch  0x0000505d 
+ 00001537  0x00000805 call  0x00002e41 
+ 00001538  0x00000806 call  0x00002e4a 
+ 00001539  0x00000808 fetcht  0x00000002 , 0x000006b1 
+ 00001540  0x00000809 storet  0x00000002 , 0x00000678 
+ 00001541  0x0000080a call  0x00002cc7 
+ 00001542  0x0000080b call  0x00002cd2 
+ 00001543  0x0000080c increase  0xfffffffe , 0x00000006 
+ 00001544  0x0000080d copy  0x00000006 , 0x0000003f 
+ 00001545  0x0000080e store  0x00000002 , 0x000006c7 
+ 00001546  0x00000810 fetcht  0x00000002 , 0x000006b6 
+ 00001547  0x00000811 setarg  0x00002a50 
+ 00001548  0x00000812 isub  0x00000002 , 0x0000003e 
+ 00001549  0x00000813 branch  0x0000060f , 0x00000005 
+ 00001550  0x00000814 branch  0x00002c4f 
+ 00001551  0x00000817 fetch  0x00000001 , 0x00004b99 
+ 00001552  0x00000818 branch  0x00002c4f , 0x00000034 
+ 00001553  0x00000819 call  0x00002ce0 
+ 00001554  0x0000081a branch  0x00002e03 , 0x00000034 
+ 00001555  0x0000081b arg  0x00004b9a , 0x00000006 
+ 00001556  0x0000081c force  0x0000000b , 0x0000003f 
+ 00001557  0x0000081d branch  0x00002ca5 
+ 00001558  0x00000821 ifetch  0x00000002 , 0x00000006 
+ 00001559  0x00000822 store  0x00000002 , 0x000006b5 
+ 00001560  0x00000823 iforce  0x00000011 
+ 00001561  0x00000824 fetcht  0x00000002 , 0x00004398 
+ 00001562  0x00000825 fetch  0x00000002 , 0x00004332 
+ 00001563  0x00000826 isub  0x00000002 , 0x0000003e 
+ 00001564  0x00000827 nbranch  0x00002d50 , 0x00000005 
+ 00001565  0x00000828 fetch  0x00000002 , 0x00004abb 
+ 00001566  0x00000829 arg  0x00004abd , 0x00000006 
+ 00001567  0x0000082a branch  0x00002d53 
+ 00001568  0x0000082d fetcht  0x00000002 , 0x00004398 
+ 00001569  0x0000082e fetch  0x00000001 , 0x00004321 
+ 00001570  0x0000082f bbit1  0x00000003 , 0x0000063b 
+ 00001571  0x00000832 fetch  0x00000008 , 0x00004713 
+ 00001572  0x00000833 bbit0  0x00000015 , 0x00000626 
+ 00001573  0x00000834 bbit0  0x0000003b , 0x00000628 
+ 00001574  0x00000835 fetch  0x00000002 , 0x00004398 
+ 00001575  0x00000836 beq  0x00000030 , 0x00002e03 
+ 00001576  0x00000838 fetch  0x00000002 , 0x00004398 
+ 00001577  0x00000839 beq  0x00000005 , 0x00000633 
+ 00001578  0x0000083a beq  0x00000010 , 0x00000636 
+ 00001579  0x0000083c fetcht  0x00000002 , 0x00004398 
+ 00001580  0x0000083d fetch  0x00000002 , 0x00004332 
+ 00001581  0x0000083e isub  0x00000002 , 0x0000003e 
+ 00001582  0x0000083f nbranch  0x00002d1d , 0x00000005 
+ 00001583  0x00000840 call  0x00002e46 
+ 00001584  0x00000841 fetcht  0x00000002 , 0x00004abb 
+ 00001585  0x00000842 arg  0x00004abd , 0x00000006 
+ 00001586  0x00000843 branch  0x00002d2b 
+ 00001587  0x00000846 arg  0x000049fd , 0x00000006 
+ 00001588  0x00000847 force  0x00000003 , 0x0000003f 
+ 00001589  0x00000848 branch  0x00002d2d 
+ 00001590  0x0000084b fetch  0x00000001 , 0x00004b99 
+ 00001591  0x0000084c branch  0x0000062b , 0x00000034 
+ 00001592  0x0000084d arg  0x00004b9a , 0x00000006 
+ 00001593  0x0000084e force  0x00000008 , 0x0000003f 
+ 00001594  0x0000084f branch  0x00002d2d 
+ 00001595  0x00000852 fetch  0x00000002 , 0x00004332 
+ 00001596  0x00000853 isub  0x00000002 , 0x0000003e 
+ 00001597  0x00000854 nbranch  0x00000623 , 0x00000005 
+ 00001598  0x00000855 call  0x00002dc7 
+ 00001599  0x00000856 nbranch  0x00000628 , 0x00000028 
+ 00001600  0x00000857 branch  0x00002d46 
+ 00001601  0x0000085b copy  0x00000006 , 0x00000011 
+ 00001602  0x0000085c fetch  0x00000002 , 0x00004335 
+ 00001603  0x0000085d add  0x0000003f , 0xfffffffd , 0x00000012 
+ 00001604  0x0000085e call  0x00002929 
+ 00001605  0x0000085f call  0x00000653 
+ 00001606  0x00000860 fetch  0x00000001 , 0x0000478f 
+ 00001607  0x00000861 beq  0x000000ff , 0x00002dac 
+ 00001608  0x00000862 fetch  0x00000001 , 0x00004795 
+ 00001609  0x00000863 branch  0x00002dac , 0x00000034 
+ 00001610  0x00000864 fetch  0x00000001 , 0x00004843 
+ 00001611  0x00000865 bbit1  0x00000001 , 0x00002dac 
+ 00001612  0x00000866 setarg  0x0000001a 
+ 00001613  0x00000867 fetcht  0x00000002 , 0x00004398 
+ 00001614  0x00000868 isub  0x00000002 , 0x0000003e 
+ 00001615  0x00000869 nbranch  0x00002dac , 0x00000005 
+ 00001616  0x0000086a jam  0x00000005 , 0x000001b9 
+ 00001617  0x0000086b branch  0x00002e05 
+ 00001618  0x0000086f call  0x00002dea 
+ 00001619  0x00000870 fetch  0x00000001 , 0x0000478f 
+ 00001620  0x00000871 beq  0x000000ff , 0x00000658 
+ 00001621  0x00000872 fetch  0x00000002 , 0x00004398 
+ 00001622  0x00000873 beq  0x00000025 , 0x0000065b 
+ 00001623  0x00000874 rtn 
+ 00001624  0x00000876 fetch  0x00000002 , 0x00004398 
+ 00001625  0x00000877 beq  0x00000021 , 0x0000065b 
+ 00001626  0x00000878 rtn 
+ 00001627  0x0000087b fetch  0x00000001 , 0x00000055 
+ 00001628  0x0000087c store  0x00000001 , 0x000049aa 
+ 00001629  0x0000087d rtn 
+ 00001630  0x00000880 arg  0x0000919f , 0x00000006 
+ 00001631  0x00000881 arg  0x00004abd , 0x00000005 
+ 00001632  0x00000882 arg  0x00000042 , 0x00000039 
+ 00001633  0x00000883 call  0x00007cda 
+ 00001634  0x00000884 arg  0x000091e1 , 0x00000006 
+ 00001635  0x00000885 arg  0x00004aff , 0x00000005 
+ 00001636  0x00000886 arg  0x00000036 , 0x00000039 
+ 00001637  0x00000887 branch  0x00007cda 
+ 00001638  0x0000088f fetch  0x00000008 , 0x000001fd 
+ 00001639  0x00000890 branch  0x00006f79 , 0x00000034 
+ 00001640  0x00000891 store  0x00000008 , 0x000043fd 
+ 00001641  0x00000892 call  0x00006b3a 
+ 00001642  0x00000893 call  0x00006aad 
+ 00001643  0x00000894 arg  0x00000fc0 , 0x0000003f 
+ 00001644  0x00000895 iadd  0x00000012 , 0x00000012 
+ 00001645  0x00000896 arg  0x0000000a , 0x00000039 
+ 00001646  0x00000897 arg  0x000001fd , 0x00000011 
+ 00001647  0x00000898 call  0x00006b74 
+ 00001648  0x00000899 call  0x00006b37 
+ 00001649  0x0000089a fetch  0x00000008 , 0x000001fd 
+ 00001650  0x0000089b rtn  0x00000034 
+ 00001651  0x0000089c store  0x00000008 , 0x00004be9 
+ 00001652  0x0000089d ifetch  0x00000002 , 0x00000006 
+ 00001653  0x0000089e istore  0x00000002 , 0x00000005 
+ 00001654  0x000008a0 rtn 
+ 00001655  0x000008a3 fetch  0x00000001 , 0x000080cc 
+ 00001656  0x000008a4 set1  0x00000001 , 0x0000003f 
+ 00001657  0x000008a5 store  0x00000001 , 0x000080cc 
+ 00001658  0x000008a6 fetchr  0x00000012 , 0x00000001 , 0x00004419 
+ 00001659  0x000008a7 fetch  0x00000001 , 0x00004433 
+ 00001660  0x000008a8 store  0x00000001 , 0x00004419 
+ 00001661  0x000008a9 arg  0x00000008 , 0x00000039 
+ 00001662  0x000008aa call  0x00006f67 
+ 00001663  0x000008ab storer  0x00000012 , 0x00000001 , 0x00004419 
+ 00001664  0x000008ac fetch  0x00000001 , 0x00008a0a 
+ 00001665  0x000008ad set0  0x00000004 , 0x0000003f 
+ 00001666  0x000008ae store  0x00000001 , 0x00008a0a 
+ 00001667  0x000008af rtn 
+ 00001668  0x000008b6 fetch  0x00000001 , 0x00004407 
+ 00001669  0x000008b7 beq  0x00000001 , 0x00000688 
+ 00001670  0x000008b8 beq  0x00000002 , 0x0000068f 
+ 00001671  0x000008b9 rtn 
+ 00001672  0x000008bc setarg  0x000003e8 
+ 00001673  0x000008bd store  0x00000002 , 0x00004405 
+ 00001674  0x000008be fetcht  0x00000002 , 0x00004bed 
+ 00001675  0x000008bf fetch  0x00000002 , 0x00004bef 
+ 00001676  0x000008c0 arg  0x00000e10 , 0x00000013 
+ 00001677  0x000008c1 call  0x00006fc0 
+ 00001678  0x000008c2 branch  0x00000695 
+ 00001679  0x000008c5 setarg  0x000003e8 
+ 00001680  0x000008c6 store  0x00000002 , 0x00004405 
+ 00001681  0x000008c7 fetcht  0x00000002 , 0x00004be9 
+ 00001682  0x000008c8 fetch  0x00000002 , 0x00004beb 
+ 00001683  0x000008c9 arg  0x000003e8 , 0x00000013 
+ 00001684  0x000008ca call  0x00006fc0 
+ 00001685  0x000008cc fetcht  0x00000002 , 0x00004bf1 
+ 00001686  0x000008cd imul32  0x00000002 , 0x0000003f 
+ 00001687  0x000008ce fetcht  0x00000002 , 0x00004bf3 
+ 00001688  0x000008cf idiv  0x00000002 
+ 00001689  0x000008d0 branch  0x00007d5f 
+ 00001690  0x000008d3 call  0x00000677 
+ 00001691  0x000008d4 fetch  0x00000001 , 0x00008a09 
+ 00001692  0x000008d5 set0  0x00000007 , 0x0000003f 
+ 00001693  0x000008d6 store  0x00000001 , 0x00008a09 
+ 00001694  0x000008d7 jam  0x00000077 , 0x00008a07 
+ 00001695  0x000008d8 jam  0x000000c1 , 0x00008a08 
+ 00001696  0x000008d9 jam  0x00000061 , 0x00008a0d 
+ 00001697  0x000008da jam  0x00000000 , 0x00008a0b 
+ 00001698  0x000008db rtn 
+ 00001699  0x000008e0 call  0x0000069a 
+ 00001700  0x000008e1 call  0x00006f90 
+ 00001701  0x000008e2 fetch  0x00000001 , 0x00004409 
+ 00001702  0x000008e3 store  0x00000001 , 0x000080cd 
+ 00001703  0x000008e4 call  0x00006f97 
+ 00001704  0x000008e5 jam  0x00000060 , 0x00008a0d 
+ 00001705  0x000008e6 jam  0x00000000 , 0x000080cd 
+ 00001706  0x000008ea call  0x0000069a 
+ 00001707  0x000008eb fetch  0x00000001 , 0x00004409 
+ 00001708  0x000008ec store  0x00000001 , 0x000080cd 
+ 00001709  0x000008ed jam  0x00000050 , 0x00008a0b 
+ 00001710  0x000008ee jam  0x000000c0 , 0x00008a0e 
+ 00001711  0x000008f0 arg  0x0000000b , 0x00000038 
+ 00001712  0x000008f1 fetchr  0x0000002f , 0x00000002 , 0x0000440a 
+ 00001713  0x000008f3 jam  0x00000003 , 0x000080cc 
+ 00001714  0x000008f4 call  0x000006bc 
+ 00001715  0x000008f5 fetcht  0x00000002 , 0x00008164 
+ 00001716  0x000008f6 storet  0x00000002 , 0x00004bf3 
+ 00001717  0x000008f7 call  0x00006f9c 
+ 00001718  0x000008f9 arg  0x0000000b , 0x00000038 
+ 00001719  0x000008fa storer  0x0000002f , 0x00000002 , 0x0000440a 
+ 00001720  0x000008fc jam  0x00000060 , 0x00008a0d 
+ 00001721  0x000008fd jam  0x00000000 , 0x000080cd 
+ 00001722  0x000008fe jam  0x00000000 , 0x000080cc 
+ 00001723  0x000008ff rtn 
+ 00001724  0x00000904 fetch  0x00000001 , 0x00008129 
+ 00001725  0x00000905 bbit0  0x00000005 , 0x000006bc 
+ 00001726  0x00000906 rtn 
+ 00008192  0x00000913 call  0x00002385 
+ 00008193  0x00000916 bpatch  0x00000000 , 0x00004000 
+ 00008194  0x00000917 clear_stack 
+ 00008195  0x00000919 call  0x000042a3 
+ 00008196  0x0000091a call  0x0000223d 
+ 00008197  0x0000091b call  0x00006cad 
+ 00008198  0x0000091c call  0x00002363 
+ 00008199  0x0000091d call  0x00006946 
+ 00008200  0x0000091e bpatch  0x00000001 , 0x00004000 
+ 00008201  0x0000091f call  0x0000776f 
+ 00008202  0x00000920 call  0x00004295 
+ 00008203  0x00000921 call  0x00007447 
+ 00008204  0x00000923 call  0x0000244f , 0x0000002b 
+ 00008205  0x00000925 bpatch  0x00000002 , 0x00004000 
+ 00008206  0x00000926 call  0x00007552 
+ 00008207  0x00000927 call  0x00007448 
+ 00008208  0x00000928 call  0x00002a45 
+ 00008209  0x00000929 call  0x0000202a 
+ 00008210  0x0000092a call  0x000042ad 
+ 00008211  0x0000092b call  0x00002018 
+ 00008212  0x0000092c call  0x0000310f 
+ 00008213  0x0000092d call  0x0000248c 
+ 00008214  0x0000092e call  0x00004bfb 
+ 00008215  0x0000092f branch  0x0000200d 
+ 00008216  0x00000932 call  0x0000201d 
+ 00008217  0x00000933 rtnmark0  0x00000009 
+ 00008218  0x00000934 set0  0x00000009 , 0x00000000 
+ 00008219  0x00000935 call  0x00002041 
+ 00008220  0x00000936 branch  0x000025bc 
+ 00008221  0x00000939 bpatch  0x00000003 , 0x00004000 
+ 00008222  0x0000093a call  0x00002066 
+ 00008223  0x0000093b nbranch  0x00002025 , 0x00000005 
+ 00008224  0x0000093c call  0x00002036 
+ 00008225  0x0000093d add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008226  0x0000093e ifetch  0x00000001 , 0x00000006 
+ 00008227  0x0000093f bbit1  0x00000000 , 0x00002536 
+ 00008228  0x00000942 rtn 
+ 00008229  0x00000945 jam  0x00000000 , 0x00000006 
+ 00008230  0x00000946 call  0x00002047 
+ 00008231  0x00000947 copy  0x00000039 , 0x0000003e 
+ 00008232  0x00000948 rtn  0x00000005 
+ 00008233  0x00000949 branch  0x0000235a 
+ 00008234  0x00000951 fetch  0x00000001 , 0x00004114 
+ 00008235  0x00000952 rtn  0x00000034 
+ 00008236  0x00000953 beq  0x0000001b , 0x00002033 
+ 00008237  0x00000954 call  0x0000205f 
+ 00008238  0x00000955 rtn  0x00000005 
+ 00008239  0x00000956 call  0x00002062 
+ 00008240  0x00000957 rtn  0x00000005 
+ 00008241  0x00000959 jam  0x00000000 , 0x00004114 
+ 00008242  0x0000095a rtn 
+ 00008243  0x0000095d jam  0x0000001b , 0x000001bc 
+ 00008244  0x0000095e jam  0x00000000 , 0x00004114 
+ 00008245  0x0000095f rtn 
+ 00008246  0x00000964 bpatch  0x00000004 , 0x00004000 
+ 00008247  0x00000965 set1  0x00000009 , 0x00000000 
+ 00008248  0x00000966 deposit  0x00000011 
+ 00008249  0x00000967 store  0x00000002 , 0x0000000a 
+ 00008250  0x00000968 force  0x00000053 , 0x00000039 
+ 00008251  0x00000969 arg  0x00000168 , 0x00000005 
+ 00008252  0x0000096a add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008253  0x0000096b ifetch  0x00000001 , 0x00000006 
+ 00008254  0x0000096c copy  0x00000011 , 0x00000006 
+ 00008255  0x0000096d bbit1  0x00000000 , 0x00007cda 
+ 00008256  0x0000096e rtn 
+ 00008257  0x00000971 bpatch  0x00000005 , 0x00004000 
+ 00008258  0x00000972 fetch  0x00000002 , 0x0000000a 
+ 00008259  0x00000973 iforce  0x00000005 
+ 00008260  0x00000974 force  0x00000053 , 0x00000039 
+ 00008261  0x00000975 arg  0x00000168 , 0x00000006 
+ 00008262  0x00000976 branch  0x00007cda 
+ 00008263  0x0000097b arg  0x00000001 , 0x00000039 
+ 00008264  0x0000097c fetcht  0x00000001 , 0x00000006 
+ 00008265  0x0000097e increase  0x00000001 , 0x00000002 
+ 00008266  0x0000097f compare  0x00000001 , 0x00000002 , 0x000000ff 
+ 00008267  0x00000980 nbranch  0x0000204d , 0x00000001 
+ 00008268  0x00000981 arg  0x00000000 , 0x00000002 
+ 00008269  0x00000983 storet  0x00000001 , 0x00000006 
+ 00008270  0x00000984 mul32  0x00000002 , 0x00000053 , 0x0000003f 
+ 00008271  0x00000985 arg  0x00004040 , 0x00000011 
+ 00008272  0x00000986 iadd  0x00000011 , 0x00000011 
+ 00008273  0x00000987 ifetch  0x00000001 , 0x00000011 
+ 00008274  0x00000988 bbit1  0x00000001 , 0x00002054 
+ 00008275  0x00000989 rtnbit1  0x00000000 
+ 00008276  0x0000098b loop  0x00002049 
+ 00008277  0x0000098c rtn 
+ 00008278  0x0000098f bpatch  0x00000006 , 0x00004000 
+ 00008279  0x00000990 arg  0x00002073 , 0x00000013 
+ 00008280  0x00000991 call  0x00002069 
+ 00008281  0x00000992 nrtn  0x00000005 
+ 00008282  0x00000993 deposit  0x00000011 
+ 00008283  0x00000994 store  0x00000002 , 0x0000000a 
+ 00008284  0x00000995 branch  0x00007db8 
+ 00008285  0x0000099b arg  0x000020ad , 0x00000013 
+ 00008286  0x0000099c branch  0x00002069 
+ 00008287  0x000009a2 fetcht  0x00000001 , 0x00004115 
+ 00008288  0x000009a4 arg  0x0000207b , 0x00000013 
+ 00008289  0x000009a5 branch  0x00002069 
+ 00008290  0x000009a9 bpatch  0x00000007 , 0x00004000 
+ 00008291  0x000009aa fetcht  0x00000006 , 0x00004116 
+ 00008292  0x000009ac arg  0x00002075 , 0x00000013 
+ 00008293  0x000009ad branch  0x00002069 
+ 00008294  0x000009b0 arg  0x00002081 , 0x00000013 
+ 00008295  0x000009b1 branch  0x00002069 
+ 00008296  0x000009b4 arg  0x000020c7 , 0x00000013 
+ 00008297  0x000009b6 bpatch  0x00000008 , 0x00004001 
+ 00008298  0x000009b7 arg  0x00004040 , 0x00000011 
+ 00008299  0x000009b8 arg  0x00000001 , 0x00000039 
+ 00008300  0x000009ba ifetch  0x00000001 , 0x00000011 
+ 00008301  0x000009bb copy  0x00000013 , 0x0000003d 
+ 00008302  0x000009bd bpatch  0x00000009 , 0x00004001 
+ 00008303  0x000009be increase  0x00000053 , 0x00000011 
+ 00008304  0x000009bf loop  0x0000206c 
+ 00008305  0x000009c0 force  0x00000001 , 0x0000003e 
+ 00008306  0x000009c1 rtn 
+ 00008307  0x000009c4 bbit1  0x00000000 , 0x0000206e 
+ 00008308  0x000009c5 branch  0x00007db8 
+ 00008309  0x000009c8 bbit0  0x00000000 , 0x0000206e 
+ 00008310  0x000009ca add  0x00000011 , 0x00000010 , 0x00000006 
+ 00008311  0x000009cb ifetch  0x00000006 , 0x00000006 
+ 00008312  0x000009cc isub  0x00000002 , 0x0000003e 
+ 00008313  0x000009cd rtn  0x00000005 
+ 00008314  0x000009ce branch  0x0000206e 
+ 00008315  0x000009d1 bbit0  0x00000000 , 0x0000206e 
+ 00008316  0x000009d2 add  0x00000011 , 0x00000016 , 0x00000006 
+ 00008317  0x000009d3 ifetch  0x00000001 , 0x00000006 
+ 00008318  0x000009d4 isub  0x00000002 , 0x0000003e 
+ 00008319  0x000009d5 rtn  0x00000005 
+ 00008320  0x000009d6 branch  0x0000206e 
+ 00008321  0x000009d9 bbit0  0x00000001 , 0x0000206e 
+ 00008322  0x000009db call  0x000020b4 
+ 00008323  0x000009dc call  0x0000209d 
+ 00008324  0x000009dd isub  0x00000002 , 0x0000003f 
+ 00008325  0x000009de increase  0x00000001 , 0x0000003f 
+ 00008326  0x000009df branch  0x00002097 , 0x00000002 
+ 00008327  0x000009e0 copy  0x00000006 , 0x00000012 
+ 00008328  0x000009e1 store  0x00000009 , 0x00000678 
+ 00008329  0x000009e2 bpatch  0x0000000a , 0x00004001 
+ 00008330  0x000009e3 fetch  0x00000001 , 0x0000446d 
+ 00008331  0x000009e4 nbranch  0x00002090 , 0x00000034 
+ 00008332  0x000009e5 fetch  0x00000009 , 0x00000678 
+ 00008333  0x000009e6 copy  0x00000012 , 0x00000006 
+ 00008334  0x000009e7 increase  0x00000005 , 0x0000003f 
+ 00008335  0x000009e8 branch  0x00002093 
+ 00008336  0x000009eb fetch  0x00000009 , 0x00000678 
+ 00008337  0x000009ec copy  0x00000012 , 0x00000006 
+ 00008338  0x000009ed increase  0x00000014 , 0x0000003f 
+ 00008339  0x000009ef nbranch  0x0000206e , 0x00000002 
+ 00008340  0x000009f1 copy  0x00000002 , 0x00000021 
+ 00008341  0x000009f2 call  0x000020c0 
+ 00008342  0x000009f3 branch  0x00007db8 
+ 00008343  0x000009f7 iforce  0x00000012 
+ 00008344  0x000009f8 add  0x00000011 , 0x00000002 , 0x00000006 
+ 00008345  0x000009f9 ifetch  0x00000002 , 0x00000006 
+ 00008346  0x000009fa branch  0x00002094 , 0x00000034 
+ 00008347  0x000009fb call  0x000020c0 
+ 00008348  0x000009fc branch  0x00002082 
+ 00008349  0x000009ff rshift16  0x0000003f , 0x0000000b 
+ 00008350  0x00000a00 rshift8  0x0000000b , 0x0000000b 
+ 00008351  0x00000a01 branch  0x000020a7 , 0x00000005 
+ 00008352  0x00000a02 compare  0x0000000f , 0x0000000b , 0x0000000f 
+ 00008353  0x00000a03 nrtn  0x00000001 
+ 00008354  0x00000a04 rshift16  0x00000002 , 0x0000000b 
+ 00008355  0x00000a05 rshift8  0x0000000b , 0x0000000b 
+ 00008356  0x00000a06 nrtn  0x00000005 
+ 00008357  0x00000a07 set1  0x0000001c , 0x00000002 
+ 00008358  0x00000a08 rtn 
+ 00008359  0x00000a0a rshift16  0x00000002 , 0x0000000b 
+ 00008360  0x00000a0b rshift8  0x0000000b , 0x0000000b 
+ 00008361  0x00000a0c compare  0x0000000f , 0x0000000b , 0x0000000f 
+ 00008362  0x00000a0d nrtn  0x00000001 
+ 00008363  0x00000a0e set1  0x0000001c , 0x0000003f 
+ 00008364  0x00000a0f rtn 
+ 00008365  0x00000a12 bbit0  0x00000000 , 0x0000206e 
+ 00008366  0x00000a13 branch  0x00007db8 
+ 00008367  0x00000a17 bbit0  0x00000000 , 0x0000206e 
+ 00008368  0x00000a18 add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008369  0x00000a19 ifetch  0x00000001 , 0x00000006 
+ 00008370  0x00000a1a bbit1  0x00000000 , 0x0000206e 
+ 00008371  0x00000a1b rtn 
+ 00008372  0x00000a1e add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008373  0x00000a1f ifetcht  0x00000001 , 0x00000006 
+ 00008374  0x00000a20 deposit  0x00000022 
+ 00008375  0x00000a21 isolate1  0x00000001 , 0x00000002 
+ 00008376  0x00000a22 add  0x00000011 , 0x00000004 , 0x00000006 
+ 00008377  0x00000a23 ifetcht  0x00000004 , 0x00000006 
+ 00008378  0x00000a24 rtn  0x00000001 
+ 00008379  0x00000a25 add  0x00000011 , 0x00000008 , 0x00000006 
+ 00008380  0x00000a26 ifetch  0x00000006 , 0x00000006 
+ 00008381  0x00000a27 call  0x00002109 
+ 00008382  0x00000a28 deposit  0x00000028 
+ 00008383  0x00000a29 rtn 
+ 00008384  0x00000a2c add  0x00000011 , 0x00000002 , 0x00000006 
+ 00008385  0x00000a2d add  0x00000011 , 0x00000004 , 0x00000005 
+ 00008386  0x00000a2e ifetch  0x00000002 , 0x00000006 
+ 00008387  0x00000a2f iadd  0x00000002 , 0x0000000b 
+ 00008388  0x00000a30 deposit  0x0000000b 
+ 00008389  0x00000a31 istore  0x00000004 , 0x00000005 
+ 00008390  0x00000a32 branch  0x00002609 
+ 00008391  0x00000a36 bbit0  0x00000001 , 0x0000206e 
+ 00008392  0x00000a37 call  0x000020b4 
+ 00008393  0x00000a38 iadd  0x0000001b , 0x0000003f 
+ 00008394  0x00000a39 iadd  0x0000001b , 0x0000003f 
+ 00008395  0x00000a3a iadd  0x00000007 , 0x0000003f 
+ 00008396  0x00000a3b isub  0x00000002 , 0x0000003e 
+ 00008397  0x00000a3c nbranch  0x0000206e , 0x00000002 
+ 00008398  0x00000a3d branch  0x00007db8 
+ 00008399  0x00000a42 bpatch  0x0000000b , 0x00004001 
+ 00008400  0x00000a43 disable  0x0000003a 
+ 00008401  0x00000a44 disable  0x0000001d 
+ 00008402  0x00000a45 disable  0x0000001c 
+ 00008403  0x00000a46 disable  0x0000000d 
+ 00008404  0x00000a47 disable  0x0000000c 
+ 00008405  0x00000a48 disable  0x00000009 
+ 00008406  0x00000a49 disable  0x0000000e 
+ 00008407  0x00000a4a disable  0x00000007 
+ 00008408  0x00000a4b branch  0x00002152 , 0x00000021 
+ 00008409  0x00000a4c until  0x0000003e , 0x00000027 
+ 00008410  0x00000a4d nop  0x00000064 
+ 00008411  0x00000a4e branch  0x00002152 
+ 00008412  0x00000a54 bpatch  0x0000000c , 0x00004001 
+ 00008413  0x00000a55 disable  0x00000010 
+ 00008414  0x00000a56 copy  0x00000002 , 0x0000001b 
+ 00008415  0x00000a57 call  0x00002068 
+ 00008416  0x00000a58 disable  0x00000028 
+ 00008417  0x00000a59 nrtn  0x00000005 
+ 00008418  0x00000a5a force  0x00000000 , 0x0000001b 
+ 00008419  0x00000a5b branch  0x00007dba 
+ 00008420  0x00000a5f bpatch  0x0000000d , 0x00004001 
+ 00008421  0x00000a60 until  0x0000003e , 0x00000022 
+ 00008422  0x00000a61 deposit  0x0000001a 
+ 00008423  0x00000a62 iforce  0x00000006 
+ 00008424  0x00000a63 rshift16 , 0x0000003f , 0x0000003f 
+ 00008425  0x00000a64 isub  0x00000022 , 0x00000039 
+ 00008426  0x00000a65 and_into  0x00000003 , 0x00000039 
+ 00008427  0x00000a66 nbranch  0x000020ee , 0x00000005 
+ 00008428  0x00000a67 force  0x00000000 , 0x0000003f 
+ 00008429  0x00000a68 branch  0x000020f2 
+ 00008430  0x00000a6a fetcht  0x00000002 , 0x00000044 
+ 00008431  0x00000a6b force  0x00000000 , 0x0000003f 
+ 00008432  0x00000a6d iadd  0x00000002 , 0x0000003f 
+ 00008433  0x00000a6e loop  0x000020f0 
+ 00008434  0x00000a70 iadd  0x00000006 , 0x0000003f 
+ 00008435  0x00000a71 div  0x0000003f , 0x0000000c 
+ 00008436  0x00000a72 call  0x00007d5f 
+ 00008437  0x00000a73 store  0x00000002 , 0x0000002e 
+ 00008438  0x00000a74 rtn 
+ 00008439  0x00000a77 bpatch  0x0000000e , 0x00004001 
+ 00008440  0x00000a78 deposit  0x0000001a 
+ 00008441  0x00000a79 copy  0x00000019 , 0x00000002 
+ 00008442  0x00000a7a isub  0x00000002 , 0x0000003e 
+ 00008443  0x00000a7b nsetflag  0x00000002 , 0x0000002c , 0x0000003f 
+ 00008444  0x00000a7c isub  0x00000002 , 0x00000002 
+ 00008445  0x00000a7d fetch  0x00000002 , 0x00000044 
+ 00008446  0x00000a7e isolate0  0x0000000f , 0x00000002 
+ 00008447  0x00000a7f branch  0x00002105 , 0x00000001 
+ 00008448  0x00000a80 copy  0x00000002 , 0x00000030 
+ 00008449  0x00000a81 arg  0x00010000 , 0x00000002 
+ 00008450  0x00000a82 fetch  0x00000002 , 0x00000044 
+ 00008451  0x00000a83 isub  0x00000002 , 0x0000003f 
+ 00008452  0x00000a84 iadd  0x00000030 , 0x00000002 
+ 00008453  0x00000a87 storet  0x00000006 , 0x00000170 
+ 00008454  0x00000a88 rtn 
+ 00008455  0x00000a8b disable  0x00000030 
+ 00008456  0x00000a8c fetch  0x00000006 , 0x00000170 
+ 00008457  0x00000a8e iadd  0x00000019 , 0x00000030 
+ 00008458  0x00000a8f increase  0x0000000a , 0x00000030 
+ 00008459  0x00000a90 fetch  0x00000002 , 0x00000044 
+ 00008460  0x00000a91 isub  0x00000030 , 0x0000003f 
+ 00008461  0x00000a92 isolate0  0x0000000f , 0x0000003f 
+ 00008462  0x00000a93 branch  0x00002115 , 0x00000001 
+ 00008463  0x00000a94 setarg  0x00010000 
+ 00008464  0x00000a95 fetchr  0x00000018 , 0x00000002 , 0x00000044 
+ 00008465  0x00000a96 isub  0x00000018 , 0x0000003f 
+ 00008466  0x00000a97 iadd  0x00000030 , 0x00000030 
+ 00008467  0x00000a99 copy  0x00000030 , 0x0000001a 
+ 00008468  0x00000a9a rtn 
+ 00008469  0x00000a9c force  0x00000000 , 0x0000003e 
+ 00008470  0x00000a9d branch  0x00002113 
+ 00008471  0x00000aa5 rshift3  0x0000003f , 0x0000003f 
+ 00008472  0x00000aa6 ifetchr  0x00000011 , 0x00000001 , 0x00000005 
+ 00008473  0x00000aa7 ixor  0x00000011 , 0x0000003f 
+ 00008474  0x00000aa8 isolate0  0x00000006 , 0x0000003f 
+ 00008475  0x00000aa9 branch  0x0000211e 
+ 00008476  0x00000aac isolate0  0x00000000 , 0x0000003e 
+ 00008477  0x00000aae arg  0x00008ac2 , 0x00000005 
+ 00008478  0x00000ab0 ifetch  0x00000001 , 0x00000005 
+ 00008479  0x00000ab1 qsetflag  0x00000001 , 0x0000003f 
+ 00008480  0x00000ab2 istore  0x00000001 , 0x00000005 
+ 00008481  0x00000ab3 rtn 
+ 00008482  0x00000ab6 nop  0x0000003c 
+ 00008483  0x00000ab9 jam  0x00000008 , 0x00008983 
+ 00008484  0x00000aba jam  0x00000009 , 0x00008985 
+ 00008485  0x00000abb jam  0x00000009 , 0x00008981 
+ 00008486  0x00000abc jam  0x00000003 , 0x00008981 
+ 00008487  0x00000abd jam  0x00000006 , 0x00008980 
+ 00008488  0x00000abe nop  0x0000003c 
+ 00008489  0x00000abf arg  0x00000000 , 0x00000011 
+ 00008490  0x00000ac0 arg  0x00000000 , 0x00000012 
+ 00008491  0x00000ac1 arg  0x00000010 , 0x00000039 
+ 00008492  0x00000ac2 arg  0x00000800 , 0x00000006 
+ 00008493  0x00000ac4 ifetch  0x00000002 , 0x00000006 
+ 00008494  0x00000ac5 iadd  0x00000011 , 0x00000011 
+ 00008495  0x00000ac6 ifetch  0x00000002 , 0x00000006 
+ 00008496  0x00000ac7 iadd  0x00000012 , 0x00000012 
+ 00008497  0x00000ac8 loop  0x0000212d 
+ 00008498  0x00000ac9 rtn 
+ 00008499  0x00000acc bpatch  0x0000000f , 0x00004001 
+ 00008500  0x00000acd call  0x00002160 
+ 00008501  0x00000ace arg  0x00000027 , 0x00000002 
+ 00008502  0x00000acf call  0x0000216f 
+ 00008503  0x00000ad0 call  0x000021a6 
+ 00008504  0x00000ad1 jam  0x0000007f , 0x00008a25 
+ 00008505  0x00000ad2 jam  0x0000001a , 0x00008a30 
+ 00008506  0x00000ad3 jam  0x00000078 , 0x00008a31 
+ 00008507  0x00000ad4 jam  0x000000b2 , 0x00008a8f 
+ 00008508  0x00000ad5 jam  0x00000000 , 0x00008ac2 
+ 00008509  0x00000ad6 jam  0x00000000 , 0x00008ac3 
+ 00008510  0x00000ad7 arg  0x00000006 , 0x00000007 
+ 00008511  0x00000ad8 call  0x00002122 
+ 00008512  0x00000ad9 isolate1  0x0000000d , 0x00000011 
+ 00008513  0x00000ada call  0x0000211d 
+ 00008514  0x00000adb isolate1  0x0000000d , 0x00000012 
+ 00008515  0x00000adc call  0x0000211e 
+ 00008516  0x00000add arg  0x00000005 , 0x00000007 
+ 00008517  0x00000adf call  0x0000211c 
+ 00008518  0x00000ae0 call  0x0000211e 
+ 00008519  0x00000ae1 call  0x00002122 
+ 00008520  0x00000ae2 arg  0x00008ac2 , 0x00000005 
+ 00008521  0x00000ae3 rshift4  0x00000011 , 0x0000003f 
+ 00008522  0x00000ae4 call  0x00002117 
+ 00008523  0x00000ae5 rshift4  0x00000012 , 0x0000003f 
+ 00008524  0x00000ae6 call  0x00002117 
+ 00008525  0x00000ae7 increase  0xffffffff , 0x00000007 
+ 00008526  0x00000ae8 branch  0x00002145 , 0x00000002 
+ 00008527  0x00000ae9 jam  0x00000052 , 0x00008a8f 
+ 00008528  0x00000aea jam  0x00000002 , 0x00008a30 
+ 00008529  0x00000aeb jam  0x00000000 , 0x00008981 
+ 00008530  0x00000aee bpatch  0x00000010 , 0x00004002 
+ 00008531  0x00000aef call  0x00006875 
+ 00008532  0x00000af0 disable  0x00000020 
+ 00008533  0x00000af1 disable  0x00000021 
+ 00008534  0x00000af2 setarg  0x00000200 
+ 00008535  0x00000af3 store  0x00000004 , 0x00008a23 
+ 00008536  0x00000af4 jam  0x000000fa , 0x00008a01 
+ 00008537  0x00000af5 nop  0x0000000c 
+ 00008538  0x00000af6 jam  0x00000000 , 0x00008a0f 
+ 00008539  0x00000af7 jam  0x0000001a , 0x00008a12 
+ 00008540  0x00000af8 jam  0x0000002b , 0x00008a14 
+ 00008541  0x00000af9 force  0x00000008 , 0x00000015 
+ 00008542  0x00000afa force  0x00000000 , 0x00000015 
+ 00008543  0x00000afc branch  0x0000230f 
+ 00008544  0x00000aff bpatch  0x00000011 , 0x00004002 
+ 00008545  0x00000b00 jam  0x00000060 , 0x00008a0f 
+ 00008546  0x00000b01 jam  0x000000aa , 0x00008a10 
+ 00008547  0x00000b02 jam  0x0000007a , 0x00008a12 
+ 00008548  0x00000b03 jam  0x00000000 , 0x00008a25 
+ 00008549  0x00000b04 jam  0x00000000 , 0x00008a26 
+ 00008550  0x00000b05 nop  0x0000003c 
+ 00008551  0x00000b06 jam  0x00000020 , 0x00008a20 
+ 00008552  0x00000b07 jam  0x000000fd , 0x00008a23 
+ 00008553  0x00000b08 jam  0x00000012 , 0x00008a24 
+ 00008554  0x00000b09 jam  0x00000010 , 0x00008a24 
+ 00008555  0x00000b0a nop  0x0000003c 
+ 00008556  0x00000b0b jam  0x00000060 , 0x00008a12 
+ 00008557  0x00000b0c jam  0x000000dd , 0x00008a23 
+ 00008558  0x00000b0d rtn 
+ 00008559  0x00000b10 bpatch  0x00000012 , 0x00004002 
+ 00008560  0x00000b11 jam  0x00000001 , 0x00008900 
+ 00008561  0x00000b12 jam  0x0000009d , 0x00008a23 
+ 00008562  0x00000b13 jam  0x00000002 , 0x00008a24 
+ 00008563  0x00000b14 nop  0x00000014 
+ 00008564  0x00000b15 jam  0x00000065 , 0x00008a70 
+ 00008565  0x00000b16 jam  0x0000009f , 0x00008a23 
+ 00008566  0x00000b17 call  0x0000218f 
+ 00008567  0x00000b18 storet  0x00000001 , 0x00000008 
+ 00008568  0x00000b19 increase  0x00000001 , 0x00000002 
+ 00008569  0x00000b1e bpatch  0x00000013 , 0x00004002 
+ 00008570  0x00000b1f rshift4  0x00000002 , 0x0000003f 
+ 00008571  0x00000b20 arg  0x00004135 , 0x00000006 
+ 00008572  0x00000b21 iadd  0x00000006 , 0x00000006 
+ 00008573  0x00000b22 ifetch  0x00000001 , 0x00000006 
+ 00008574  0x00000b23 fetchr  0x00000011 , 0x00000001 , 0x00008a71 
+ 00008575  0x00000b24 and_into  0x0000000f , 0x00000011 
+ 00008576  0x00000b25 ior  0x00000011 , 0x0000003f 
+ 00008577  0x00000b26 store  0x00000001 , 0x00008a71 
+ 00008578  0x00000b27 call  0x000021d0 
+ 00008579  0x00000b28 nop  0x00000090 
+ 00008580  0x00000b29 fetch  0x00000001 , 0x00004099 
+ 00008581  0x00000b2a beq  0x00000018 , 0x00002187 
+ 00008582  0x00000b2b nop  0x00000024 
+ 00008583  0x00000b2d jam  0x00000080 , 0x00008a20 
+ 00008584  0x00000b2e rtn 
+ 00008585  0x00000b32 setarg  0x00008312 
+ 00008586  0x00000b33 store  0x00000002 , 0x00008907 
+ 00008587  0x00000b34 branch  0x00002197 
+ 00008588  0x00000b37 setarg  0x00004189 
+ 00008589  0x00000b38 store  0x00000002 , 0x00008907 
+ 00008590  0x00000b39 branch  0x000021a3 
+ 00008591  0x00000b3d bpatch  0x00000014 , 0x00004002 
+ 00008592  0x00000b3e jam  0x00000011 , 0x00008a82 
+ 00008593  0x00000b3f jam  0x00000012 , 0x00008a8d 
+ 00008594  0x00000b40 jam  0x0000000a , 0x00008a8e 
+ 00008595  0x00000b41 fetch  0x00000001 , 0x00004099 
+ 00008596  0x00000b42 beq  0x00000010 , 0x00002189 
+ 00008597  0x00000b43 setarg  0x00005762 
+ 00008598  0x00000b44 store  0x00000002 , 0x00008907 
+ 00008599  0x00000b46 jam  0x00000003 , 0x00008901 
+ 00008600  0x00000b47 jam  0x00000084 , 0x00008920 
+ 00008601  0x00000b48 rtnmark1  0x0000002d 
+ 00008602  0x00000b49 jam  0x00000001 , 0x00008901 
+ 00008603  0x00000b4a jam  0x00000080 , 0x00008920 
+ 00008604  0x00000b4b jam  0x00000007 , 0x00008a82 
+ 00008605  0x00000b4c jam  0x00000044 , 0x00008a8d 
+ 00008606  0x00000b4d jam  0x0000000a , 0x00008a8e 
+ 00008607  0x00000b4e fetch  0x00000001 , 0x00004099 
+ 00008608  0x00000b4f beq  0x00000010 , 0x0000218c 
+ 00008609  0x00000b50 setarg  0x00002bb1 
+ 00008610  0x00000b51 store  0x00000002 , 0x00008907 
+ 00008611  0x00000b53 rtnmark0  0x0000002f 
+ 00008612  0x00000b54 jam  0x00000005 , 0x00008901 
+ 00008613  0x00000b55 rtn 
+ 00008614  0x00000b58 bpatch  0x00000015 , 0x00004002 
+ 00008615  0x00000b59 call  0x0000686f 
+ 00008616  0x00000b5a call  0x000021ba 
+ 00008617  0x00000b5b force  0x00000008 , 0x00000015 
+ 00008618  0x00000b5c force  0x00000000 , 0x00000015 
+ 00008619  0x00000b5e setarg  0x000aaada 
+ 00008620  0x00000b5f store  0x00000003 , 0x00008a0f 
+ 00008621  0x00000b60 jam  0x00000040 , 0x00008a25 
+ 00008622  0x00000b61 jam  0x00000010 , 0x00008a26 
+ 00008623  0x00000b62 nop  0x0000003c 
+ 00008624  0x00000b63 jam  0x000000fb , 0x00008a01 
+ 00008625  0x00000b64 jam  0x000000ff , 0x00008a25 
+ 00008626  0x00000b65 jam  0x00000030 , 0x00008a26 
+ 00008627  0x00000b66 jam  0x0000005e , 0x00008a16 
+ 00008628  0x00000b67 nop  0x00000014 
+ 00008629  0x00000b68 jam  0x00000000 , 0x00008a10 
+ 00008630  0x00000b69 jam  0x00000008 , 0x00008a11 
+ 00008631  0x00000b6a nop  0x00000078 
+ 00008632  0x00000b6b jam  0x0000000d , 0x00008900 
+ 00008633  0x00000b6c rtn 
+ 00008634  0x00000b70 fetch  0x00000001 , 0x00004143 
+ 00008635  0x00000b71 beq  0x000000ff , 0x000021c1 
+ 00008636  0x00000b72 arg  0x00004144 , 0x00000006 
+ 00008637  0x00000b73 iadd  0x00000006 , 0x00000006 
+ 00008638  0x00000b74 ifetch  0x00000001 , 0x00000006 
+ 00008639  0x00000b75 store  0x00000001 , 0x00008961 
+ 00008640  0x00000b76 jam  0x00000027 , 0x00008960 
+ 00008641  0x00000b79 fetcht  0x00000001 , 0x00004147 
+ 00008642  0x00000b7a fetch  0x00000001 , 0x00008960 
+ 00008643  0x00000b7b ior  0x00000002 , 0x0000003f 
+ 00008644  0x00000b7c store  0x00000001 , 0x00008960 
+ 00008645  0x00000b7d rtn 
+ 00008646  0x00000b81 jam  0x00000003 , 0x00008900 
+ 00008647  0x00000b82 jam  0x00000002 , 0x00008a24 
+ 00008648  0x00000b83 nop  0x00000014 
+ 00008649  0x00000b84 jam  0x00000065 , 0x00008a70 
+ 00008650  0x00000b85 jam  0x000000df , 0x00008a23 
+ 00008651  0x00000b86 call  0x0000218f 
+ 00008652  0x00000b87 call  0x000021e8 
+ 00008653  0x00000b88 storet  0x00000001 , 0x00000008 
+ 00008654  0x00000b89 increase  0x00000002 , 0x00000002 
+ 00008655  0x00000b8a branch  0x00002179 
+ 00008656  0x00000b8f bpatch  0x00000016 , 0x00004002 
+ 00008657  0x00000b90 setarg  0x00000960 
+ 00008658  0x00000b91 iadd  0x00000002 , 0x0000003f 
+ 00008659  0x00000b92 copy  0x0000003f , 0x00000011 
+ 00008660  0x00000b93 fetcht  0x00000001 , 0x00004099 
+ 00008661  0x00000b94 rshift  0x00000002 , 0x00000002 
+ 00008662  0x00000b95 idiv  0x00000002 
+ 00008663  0x00000b97 call  0x00007d62 
+ 00008664  0x00000b98 quotient  0x0000003f 
+ 00008665  0x00000b99 store  0x00000002 , 0x00008909 
+ 00008666  0x00000b9a remainder  0x0000003f 
+ 00008667  0x00000b9b lshift16  0x0000003f , 0x0000003f 
+ 00008668  0x00000b9c lshift8  0x0000003f , 0x0000003f 
+ 00008669  0x00000b9d idiv  0x00000002 
+ 00008670  0x00000b9e call  0x00007d62 
+ 00008671  0x00000b9f quotient  0x0000003f 
+ 00008672  0x00000ba0 store  0x00000003 , 0x0000890b 
+ 00008673  0x00000ba5 storer  0x00000011 , 0x00000001 , 0x00008a22 
+ 00008674  0x00000ba6 rshift8  0x00000011 , 0x00000011 
+ 00008675  0x00000ba7 storer  0x00000011 , 0x00000001 , 0x00008a21 
+ 00008676  0x00000ba8 jam  0x000000a0 , 0x00008a20 
+ 00008677  0x00000ba9 jam  0x000000e0 , 0x00008a20 
+ 00008678  0x00000baa jam  0x000000a0 , 0x00008a20 
+ 00008679  0x00000bab rtn 
+ 00008680  0x00000bae add  0x00000002 , 0x00000002 , 0x0000003f 
+ 00008681  0x00000baf rshift3  0x0000003f , 0x0000003f 
+ 00008682  0x00000bb0 and_into  0xfffffffe , 0x0000003f 
+ 00008683  0x00000bb1 arg  0x0000411d , 0x00000006 
+ 00008684  0x00000bb2 bmark0  0x0000002d , 0x000021ee 
+ 00008685  0x00000bb3 increase  0x0000000c , 0x00000006 
+ 00008686  0x00000bb5 iadd  0x00000006 , 0x00000006 
+ 00008687  0x00000bb6 ifetchr  0x00000011 , 0x00000002 , 0x00000006 
+ 00008688  0x00000bb7 ifetch  0x00000002 , 0x00000006 
+ 00008689  0x00000bb8 isub  0x00000011 , 0x0000003f 
+ 00008690  0x00000bb9 add  0x00000002 , 0x00000002 , 0x00000006 
+ 00008691  0x00000bba and_into  0x0000000f , 0x00000006 
+ 00008692  0x00000bbb imul32  0x00000006 , 0x0000003f 
+ 00008693  0x00000bbc rshift4  0x0000003f , 0x0000003f 
+ 00008694  0x00000bbd iadd  0x00000011 , 0x0000003f 
+ 00008695  0x00000bbe store  0x00000002 , 0x00008905 
+ 00008696  0x00000bbf rtn 
+ 00008697  0x00000bc4 bpatch  0x00000017 , 0x00004002 
+ 00008698  0x00000bc5 call  0x000021c6 
+ 00008699  0x00000bc6 nop  0x00000258 
+ 00008700  0x00000bc9 bpatch  0x00000018 , 0x00004003 
+ 00008701  0x00000bca setarg  0x000aaa7e 
+ 00008702  0x00000bcb store  0x00000003 , 0x00008a0f 
+ 00008703  0x00000bcc nop  0x0000003c 
+ 00008704  0x00000bcd jam  0x00000000 , 0x00008a25 
+ 00008705  0x00000bce jam  0x0000000d , 0x00008a26 
+ 00008706  0x00000bcf jam  0x00000056 , 0x00008a16 
+ 00008707  0x00000bd0 nop  0x0000001e 
+ 00008708  0x00000bd1 jam  0x0000001b , 0x00008a15 
+ 00008709  0x00000bd2 call  0x0000220c 
+ 00008710  0x00000bd3 nop  0x00000014 
+ 00008711  0x00000bd4 jam  0x0000000f , 0x00008a26 
+ 00008712  0x00000bd5 nop  0x00000014 
+ 00008713  0x00000bd6 jam  0x000000a8 , 0x00008a10 
+ 00008714  0x00000bd7 jam  0x00000000 , 0x00008a11 
+ 00008715  0x00000bd8 rtn 
+ 00008716  0x00000bdb bpatch  0x00000019 , 0x00004003 
+ 00008717  0x00000bdc fetch  0x00000001 , 0x00004141 
+ 00008718  0x00000bdd beq  0x00000000 , 0x00002217 
+ 00008719  0x00000bde beq  0x00000003 , 0x0000221c 
+ 00008720  0x00000bdf beq  0x00000005 , 0x00002221 
+ 00008721  0x00000be0 beq  0x00000007 , 0x00002225 
+ 00008722  0x00000be1 beq  0x0000000a , 0x00002229 
+ 00008723  0x00000be2 beq  0x00000083 , 0x0000222d 
+ 00008724  0x00000be3 beq  0x00000085 , 0x00002231 
+ 00008725  0x00000be4 beq  0x0000008a , 0x00002235 
+ 00008726  0x00000be5 beq  0x00000094 , 0x00002239 
+ 00008727  0x00000be7 jam  0x00000017 , 0x00008a14 
+ 00008728  0x00000be8 setarg  0x00251a3f 
+ 00008729  0x00000be9 store  0x00000003 , 0x00008a60 
+ 00008730  0x00000beb jam  0x00000028 , 0x00008a63 
+ 00008731  0x00000bec rtn 
+ 00008732  0x00000bef jam  0x00000025 , 0x00008a14 
+ 00008733  0x00000bf0 setarg  0x00a91c2d 
+ 00008734  0x00000bf1 store  0x00000003 , 0x00008a60 
+ 00008735  0x00000bf3 jam  0x0000002f , 0x00008a63 
+ 00008736  0x00000bf4 rtn 
+ 00008737  0x00000bf7 jam  0x00000025 , 0x00008a14 
+ 00008738  0x00000bf8 setarg  0x00a91c3f 
+ 00008739  0x00000bf9 store  0x00000003 , 0x00008a60 
+ 00008740  0x00000bfa branch  0x0000221f 
+ 00008741  0x00000bfd jam  0x00000025 , 0x00008a14 
+ 00008742  0x00000bfe setarg  0x00a9383f 
+ 00008743  0x00000bff store  0x00000003 , 0x00008a60 
+ 00008744  0x00000c00 branch  0x0000221f 
+ 00008745  0x00000c03 jam  0x00000025 , 0x00008a14 
+ 00008746  0x00000c04 setarg  0x00a93f3f 
+ 00008747  0x00000c05 store  0x00000003 , 0x00008a60 
+ 00008748  0x00000c06 branch  0x0000221f 
+ 00008749  0x00000c0a jam  0x00000017 , 0x00008a14 
+ 00008750  0x00000c0b setarg  0x00251827 
+ 00008751  0x00000c0c store  0x00000003 , 0x00008a60 
+ 00008752  0x00000c0d branch  0x0000221a 
+ 00008753  0x00000c10 jam  0x00000017 , 0x00008a14 
+ 00008754  0x00000c11 setarg  0x0025181c 
+ 00008755  0x00000c12 store  0x00000003 , 0x00008a60 
+ 00008756  0x00000c13 branch  0x0000221a 
+ 00008757  0x00000c16 jam  0x00000017 , 0x00008a14 
+ 00008758  0x00000c17 setarg  0x0025180b 
+ 00008759  0x00000c18 store  0x00000003 , 0x00008a60 
+ 00008760  0x00000c19 branch  0x0000221a 
+ 00008761  0x00000c1c jam  0x00000017 , 0x00008a14 
+ 00008762  0x00000c1d setarg  0x00251000 
+ 00008763  0x00000c1e store  0x00000003 , 0x00008a60 
+ 00008764  0x00000c1f branch  0x0000221a 
+ 00008765  0x00000c24 jam  0x00000006 , 0x00008042 
+ 00008766  0x00000c26 fetch  0x00000002 , 0x0000409c 
+ 00008767  0x00000c27 bbit0  0x0000000e , 0x0000223e 
+ 00008768  0x00000c28 iforce  0x00000006 
+ 00008769  0x00000c29 arg  0x00008a00 , 0x00000002 
+ 00008770  0x00000c2b ifetch  0x00000001 , 0x00000006 
+ 00008771  0x00000c2c beq  0x000000ff , 0x00002248 
+ 00008772  0x00000c2d ior  0x00000002 , 0x00000005 
+ 00008773  0x00000c2e ifetch  0x00000001 , 0x00000006 
+ 00008774  0x00000c2f istore  0x00000001 , 0x00000005 
+ 00008775  0x00000c30 branch  0x00002242 
+ 00008776  0x00000c33 bpatch  0x0000001a , 0x00004003 
+ 00008777  0x00000c34 fetch  0x00000001 , 0x00004436 
+ 00008778  0x00000c35 call  0x000070d7 , 0x00000034 
+ 00008779  0x00000c37 until  0x0000003e , 0x00000033 
+ 00008780  0x00000c38 jam  0x0000005f , 0x0000813b 
+ 00008781  0x00000c39 fetch  0x00000001 , 0x00004099 
+ 00008782  0x00000c3a beq  0x00000010 , 0x00002266 
+ 00008783  0x00000c3b fetch  0x00000001 , 0x00004438 
+ 00008784  0x00000c3c or_into  0x00000004 , 0x0000003f 
+ 00008785  0x00000c3d store  0x00000001 , 0x00008a02 
+ 00008786  0x00000c3e jam  0x00000001 , 0x0000890f 
+ 00008787  0x00000c3f jam  0x00000024 , 0x00008a80 
+ 00008788  0x00000c40 jam  0x00000062 , 0x00008a81 
+ 00008789  0x00000c41 setarg  0x00e61212 
+ 00008790  0x00000c42 store  0x00000003 , 0x00008a73 
+ 00008791  0x00000c45 jam  0x00000060 , 0x00008a86 
+ 00008792  0x00000c46 jam  0x0000003b , 0x00008a8b 
+ 00008793  0x00000c48 call  0x00002286 
+ 00008794  0x00000c49 jam  0x00000000 , 0x00008043 
+ 00008795  0x00000c4a jam  0x00000005 , 0x00008042 
+ 00008796  0x00000c4b setarg  0x00557474 
+ 00008797  0x00000c4c store  0x00000003 , 0x00008968 
+ 00008798  0x00000c4d jam  0x0000006e , 0x00008960 
+ 00008799  0x00000c4e call  0x00002133 
+ 00008800  0x00000c4f call  0x00002271 
+ 00008801  0x00000c50 fetch  0x00000001 , 0x0000411c 
+ 00008802  0x00000c51 store  0x00000001 , 0x0000813a 
+ 00008803  0x00000c53 jam  0x0000000c , 0x00004148 
+ 00008804  0x00000c54 call  0x00006f4e 
+ 00008805  0x00000c55 branch  0x000022b4 
+ 00008806  0x00000c58 fetch  0x00000001 , 0x00004438 
+ 00008807  0x00000c59 or_into  0x00000006 , 0x0000003f 
+ 00008808  0x00000c5a store  0x00000001 , 0x00008a02 
+ 00008809  0x00000c5b jam  0x00000000 , 0x0000890f 
+ 00008810  0x00000c5c jam  0x00000023 , 0x00008a80 
+ 00008811  0x00000c5d jam  0x000000b0 , 0x00008a81 
+ 00008812  0x00000c5e setarg  0x00e40909 
+ 00008813  0x00000c5f store  0x00000003 , 0x00008a73 
+ 00008814  0x00000c60 jam  0x0000002a , 0x00008a76 
+ 00008815  0x00000c61 jam  0x00000004 , 0x00008902 
+ 00008816  0x00000c62 branch  0x00002257 
+ 00008817  0x00000c65 bpatch  0x0000001b , 0x00004003 
+ 00008818  0x00000c66 call  0x00002160 
+ 00008819  0x00000c67 jam  0x00000003 , 0x00008900 
+ 00008820  0x00000c68 jam  0x00000001 , 0x00008a70 
+ 00008821  0x00000c69 arg  0x0000411d , 0x00000012 
+ 00008822  0x00000c6a arg  0x00004135 , 0x00000018 
+ 00008823  0x00000c6b call  0x0000227c 
+ 00008824  0x00000c6c set1  0x0000002d , 0x00000000 
+ 00008825  0x00000c6d call  0x0000227c 
+ 00008826  0x00000c6e jam  0x00000061 , 0x00008a70 
+ 00008827  0x00000c6f branch  0x00002152 
+ 00008828  0x00000c72 call  0x0000218f 
+ 00008829  0x00000c73 arg  0x00000006 , 0x00000039 
+ 00008830  0x00000c74 arg  0x00000000 , 0x00000013 
+ 00008831  0x00000c76 copy  0x00000013 , 0x00000002 
+ 00008832  0x00000c77 call  0x00002294 
+ 00008833  0x00000c78 increase  0x00000002 , 0x00000012 
+ 00008834  0x00000c79 increase  0x00000001 , 0x00000018 
+ 00008835  0x00000c7a increase  0x00000010 , 0x00000013 
+ 00008836  0x00000c7b loop  0x0000227f 
+ 00008837  0x00000c7c rtn 
+ 00008838  0x00000c7f fetch  0x00000001 , 0x00004099 
+ 00008839  0x00000c80 beq  0x00000018 , 0x0000228c 
+ 00008840  0x00000c81 fetch  0x00000001 , 0x00004438 
+ 00008841  0x00000c82 or_into  0x00000006 , 0x0000003f 
+ 00008842  0x00000c83 store  0x00000001 , 0x00008a02 
+ 00008843  0x00000c84 jam  0x000000e0 , 0x00008a05 
+ 00008844  0x00000c86 jam  0x000000c8 , 0x00008a00 
+ 00008845  0x00000c87 nop  0x0000003c 
+ 00008846  0x00000c88 jam  0x000000a0 , 0x00008a01 
+ 00008847  0x00000c89 jam  0x000000cf , 0x00008a00 
+ 00008848  0x00000c8a jam  0x000000fa , 0x00008a01 
+ 00008849  0x00000c8b nop  0x00000014 
+ 00008850  0x00000c8c jam  0x0000008f , 0x00008a00 
+ 00008851  0x00000c8d rtn 
+ 00008852  0x00000c90 bpatch  0x0000001c , 0x00004003 
+ 00008853  0x00000c91 jam  0x00000030 , 0x00008a20 
+ 00008854  0x00000c92 jam  0x000000dd , 0x00008a23 
+ 00008855  0x00000c93 call  0x000021d0 
+ 00008856  0x00000c95 fetch  0x00000001 , 0x00008a7c 
+ 00008857  0x00000c96 bbit0  0x00000000 , 0x00002298 
+ 00008858  0x00000c97 jam  0x00000030 , 0x00008a7b 
+ 00008859  0x00000c98 call  0x000022ae 
+ 00008860  0x00000c99 iforce  0x00000011 
+ 00008861  0x00000c9a jam  0x00000040 , 0x00008a7b 
+ 00008862  0x00000c9b call  0x000022ae 
+ 00008863  0x00000c9c isub  0x00000011 , 0x0000003f 
+ 00008864  0x00000c9d mul32  0x0000003f , 0x0000007d , 0x00000002 
+ 00008865  0x00000c9e setarg  0x00b00000 
+ 00008866  0x00000c9f idiv  0x00000002 
+ 00008867  0x00000ca0 call  0x00007d62 
+ 00008868  0x00000ca1 quotient  0x0000003f 
+ 00008869  0x00000ca2 bmark0  0x0000002d , 0x000022a7 
+ 00008870  0x00000ca3 lshift  0x0000003f , 0x0000003f 
+ 00008871  0x00000ca5 istore  0x00000002 , 0x00000012 
+ 00008872  0x00000ca6 jam  0x00000020 , 0x00008a7b 
+ 00008873  0x00000ca7 fetch  0x00000001 , 0x00008a7e 
+ 00008874  0x00000ca8 lshift4  0x0000003f , 0x0000003f 
+ 00008875  0x00000ca9 istore  0x00000001 , 0x00000018 
+ 00008876  0x00000caa jam  0x00000000 , 0x00008a7b 
+ 00008877  0x00000cab rtn 
+ 00008878  0x00000cae fetch  0x00000002 , 0x00008a7d 
+ 00008879  0x00000caf byteswap  0x0000003f , 0x0000003f 
+ 00008880  0x00000cb0 fetcht  0x00000001 , 0x00008a7c 
+ 00008881  0x00000cb1 lshift16  0x00000002 , 0x00000002 
+ 00008882  0x00000cb2 ior  0x00000002 , 0x0000003f 
+ 00008883  0x00000cb3 rtn 
+ 00008884  0x00000cb7 bpatch  0x0000001d , 0x00004003 
+ 00008885  0x00000cb8 fetch  0x00000001 , 0x00008a0d 
+ 00008886  0x00000cb9 set1  0x00000000 , 0x0000003f 
+ 00008887  0x00000cba store  0x00000001 , 0x00008a0d 
+ 00008888  0x00000cbb jam  0x000000f0 , 0x00008a0e 
+ 00008889  0x00000cbc fetch  0x00000001 , 0x00008a05 
+ 00008890  0x00000cbd or_into  0x00000016 , 0x0000003f 
+ 00008891  0x00000cbe store  0x00000001 , 0x00008a05 
+ 00008892  0x00000cc0 fetch  0x00000001 , 0x00004411 
+ 00008893  0x00000cc1 store  0x00000001 , 0x00000678 
+ 00008894  0x00000cc2 fetch  0x00000001 , 0x00004408 
+ 00008895  0x00000cc3 store  0x00000001 , 0x00000679 
+ 00008896  0x00000cc4 jam  0x00000000 , 0x00004411 
+ 00008897  0x00000cc5 fetch  0x00000001 , 0x0000443e 
+ 00008898  0x00000cc6 store  0x00000001 , 0x00004408 
+ 00008899  0x00000cc7 fetcht  0x00000001 , 0x0000443d 
+ 00008900  0x00000cc8 call  0x00006f0f 
+ 00008901  0x00000cca arg  0x00000000 , 0x00000011 
+ 00008902  0x00000ccb arg  0x00000008 , 0x00000039 
+ 00008903  0x00000ccd call  0x00006f82 
+ 00008904  0x00000cce fetch  0x00000002 , 0x0000440a 
+ 00008905  0x00000ccf iadd  0x00000011 , 0x00000011 
+ 00008906  0x00000cd0 loop  0x000022c7 
+ 00008907  0x00000cd1 rshift3  0x00000011 , 0x00000011 
+ 00008908  0x00000cd2 store  0x00000002 , 0x0000440a 
+ 00008909  0x00000cd4 fetch  0x00000001 , 0x00000678 
+ 00008910  0x00000cd5 store  0x00000001 , 0x00004411 
+ 00008911  0x00000cd6 fetch  0x00000001 , 0x00000679 
+ 00008912  0x00000cd7 store  0x00000001 , 0x00004408 
+ 00008913  0x00000cd9 fetch  0x00000001 , 0x00008a05 
+ 00008914  0x00000cda and_into  0x000000e0 , 0x0000003f 
+ 00008915  0x00000cdb store  0x00000001 , 0x00008a05 
+ 00008916  0x00000cdc jam  0x00000000 , 0x00008a0e 
+ 00008917  0x00000cdd fetch  0x00000001 , 0x00008a0d 
+ 00008918  0x00000cde set0  0x00000000 , 0x0000003f 
+ 00008919  0x00000cdf store  0x00000001 , 0x00008a0d 
+ 00008920  0x00000ce1 call  0x00006fb0 
+ 00008921  0x00000ce2 fetcht  0x00000002 , 0x0000443b 
+ 00008922  0x00000ce3 isub  0x00000002 , 0x0000003e 
+ 00008923  0x00000ce4 branch  0x000022e4 , 0x00000002 
+ 00008924  0x00000ce5 fetcht  0x00000002 , 0x00004439 
+ 00008925  0x00000ce6 isub  0x00000002 , 0x0000003e 
+ 00008926  0x00000ce7 rtn  0x00000002 
+ 00008927  0x00000ce9 fetch  0x00000001 , 0x00004438 
+ 00008928  0x00000cea rtneq  0x00000000 
+ 00008929  0x00000ceb increase  0xffffffe0 , 0x0000003f 
+ 00008930  0x00000cec store  0x00000001 , 0x00004438 
+ 00008931  0x00000ced rtn 
+ 00008932  0x00000cf0 fetch  0x00000001 , 0x00004438 
+ 00008933  0x00000cf1 rtneq  0x000000e0 
+ 00008934  0x00000cf2 increase  0x00000020 , 0x0000003f 
+ 00008935  0x00000cf3 store  0x00000001 , 0x00004438 
+ 00008936  0x00000cf4 rtn 
+ 00008937  0x00000cf8 bpatch  0x0000001e , 0x00004003 
+ 00008938  0x00000cfa fetch  0x00000001 , 0x000089a2 
+ 00008939  0x00000cfb isolate1  0x00000006 , 0x0000003f 
+ 00008940  0x00000cfc setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00008941  0x00000cfd store  0x00000001 , 0x00004142 
+ 00008942  0x00000cff fetch  0x00000001 , 0x000089a3 
+ 00008943  0x00000d00 and  0x0000003f , 0x0000000f , 0x00000002 
+ 00008944  0x00000d01 lshift  0x00000002 , 0x00000002 
+ 00008945  0x00000d02 rshift4  0x0000003f , 0x0000003f 
+ 00008946  0x00000d03 iadd  0x00000002 , 0x00000002 
+ 00008947  0x00000d04 mul32  0x00000002 , 0x00000003 , 0x00000011 
+ 00008948  0x00000d06 fetch  0x00000001 , 0x00004142 
+ 00008949  0x00000d07 call  0x000022ff 
+ 00008950  0x00000d08 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00008951  0x00000d09 iadd  0x00000011 , 0x0000003f 
+ 00008952  0x00000d0a increase  0xfffffff7 , 0x0000003f 
+ 00008953  0x00000d0b and  0x0000003f , 0x000001ff , 0x0000003f 
+ 00008954  0x00000d0c isolate1  0x00000008 , 0x0000003f 
+ 00008955  0x00000d0d nbranch  0x000022fd , 0x00000001 
+ 00008956  0x00000d0e setarg  0x00000000 
+ 00008957  0x00000d10 store  0x00000001 , 0x00000035 
+ 00008958  0x00000d11 branch  0x00002304 
+ 00008959  0x00000d14 isolate1  0x00000007 , 0x0000003f 
+ 00008960  0x00000d15 nrtn  0x00000001 
+ 00008961  0x00000d16 arg  0x0000ff00 , 0x00000002 
+ 00008962  0x00000d17 ior  0x00000002 , 0x0000003f 
+ 00008963  0x00000d18 rtn 
+ 00008964  0x00000d1b fetch  0x00000001 , 0x00000035 
+ 00008965  0x00000d1c call  0x00002308 
+ 00008966  0x00000d1d store  0x00000001 , 0x00000009 
+ 00008967  0x00000d1e rtn 
+ 00008968  0x00000d21 and_into  0x000000ff , 0x0000003f 
+ 00008969  0x00000d22 div  0x0000003f , 0x0000000a 
+ 00008970  0x00000d23 call  0x00007d5f 
+ 00008971  0x00000d24 lshift4  0x0000003f , 0x0000003f 
+ 00008972  0x00000d25 remainder  0x00000002 
+ 00008973  0x00000d26 ior  0x00000002 , 0x0000003f 
+ 00008974  0x00000d27 rtn 
+ 00008975  0x00000d2a bpatch  0x0000001f , 0x00004003 
+ 00008976  0x00000d2b fetch  0x00000001 , 0x00004143 
+ 00008977  0x00000d2c rtneq  0x000000ff 
+ 00008978  0x00000d2d nbranch  0x00002336 , 0x00000018 
+ 00008979  0x00000d2e fetch  0x00000001 , 0x00004142 
+ 00008980  0x00000d2f sub  0x0000003f , 0x000000f0 , 0x0000003e 
+ 00008981  0x00000d30 nbranch  0x0000233a , 0x00000002 
+ 00008982  0x00000d31 sub  0x0000003f , 0x0000007f , 0x0000003e 
+ 00008983  0x00000d32 branch  0x0000233a , 0x00000002 
+ 00008984  0x00000d34 fetchr  0x00000011 , 0x00000001 , 0x00008961 
+ 00008985  0x00000d35 fetch  0x00000001 , 0x00004143 
+ 00008986  0x00000d36 rtneq  0x00000000 
+ 00008987  0x00000d37 arg  0x00004144 , 0x00000006 
+ 00008988  0x00000d38 iadd  0x00000006 , 0x00000006 
+ 00008989  0x00000d39 ifetch  0x00000001 , 0x00000006 
+ 00008990  0x00000d3a isub  0x00000011 , 0x0000003e 
+ 00008991  0x00000d3b nrtn  0x00000005 
+ 00008992  0x00000d3c increase  0xfffffffe , 0x00000006 
+ 00008993  0x00000d3d ifetcht  0x00000001 , 0x00000006 
+ 00008994  0x00000d3e rshift4  0x00000002 , 0x0000003f 
+ 00008995  0x00000d3f rshift4  0x00000011 , 0x00000012 
+ 00008996  0x00000d40 isub  0x00000012 , 0x00000012 
+ 00008997  0x00000d41 and  0x00000002 , 0x0000000f , 0x0000003f 
+ 00008998  0x00000d42 and  0x00000011 , 0x0000000f , 0x00000011 
+ 00008999  0x00000d43 isub  0x00000011 , 0x00000011 
+ 00009000  0x00000d44 lshift  0x00000011 , 0x0000003f 
+ 00009001  0x00000d45 iadd  0x00000012 , 0x00000012 
+ 00009002  0x00000d46 mul32  0x00000012 , 0x00000003 , 0x00000012 
+ 00009003  0x00000d47 fetcht  0x00000001 , 0x00004142 
+ 00009004  0x00000d48 and  0x00000002 , 0x00000080 , 0x0000003f 
+ 00009005  0x00000d49 rtn  0x00000034 
+ 00009006  0x00000d4b setarg  0x00000100 
+ 00009007  0x00000d4c isub  0x00000002 , 0x00000002 
+ 00009008  0x00000d4d copy  0x00000012 , 0x0000003f 
+ 00009009  0x00000d4e isub  0x00000002 , 0x0000003f 
+ 00009010  0x00000d4f rtn  0x00000002 
+ 00009011  0x00000d50 and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00009012  0x00000d51 rtneq  0x000000ff 
+ 00009013  0x00000d52 rtneq  0x000000fe 
+ 00009014  0x00000d55 fetch  0x00000001 , 0x00004143 
+ 00009015  0x00000d56 beq  0x00000001 , 0x0000233f 
+ 00009016  0x00000d57 beq  0x00000002 , 0x00002341 
+ 00009017  0x00000d59 branch  0x0000233f 
+ 00009018  0x00000d5c fetch  0x00000001 , 0x00004143 
+ 00009019  0x00000d5d beq  0x00000000 , 0x00002341 
+ 00009020  0x00000d5e beq  0x00000001 , 0x0000233d 
+ 00009021  0x00000d61 jam  0x00000002 , 0x00004143 
+ 00009022  0x00000d62 rtn 
+ 00009023  0x00000d65 jam  0x00000000 , 0x00004143 
+ 00009024  0x00000d66 rtn 
+ 00009025  0x00000d69 jam  0x00000001 , 0x00004143 
+ 00009026  0x00000d6a rtn 
+ 00009027  0x00000d72 copy  0x0000003f , 0x00000002 
+ 00009028  0x00000d73 bpatch  0x00000020 , 0x00004004 
+ 00009029  0x00000d74 copy  0x00000002 , 0x0000003f 
+ 00009030  0x00000d75 call  0x00007d2c 
+ 00009031  0x00000d76 lshift16  0x00000021 , 0x0000003f 
+ 00009032  0x00000d77 set1  0x0000002c , 0x0000003f 
+ 00009033  0x00000d78 call  0x00007d12 
+ 00009034  0x00000d79 set0  0x0000002c , 0x0000003f 
+ 00009035  0x00000d7a call  0x00002352 
+ 00009036  0x00000d7b call  0x00007d12 
+ 00009037  0x00000d7c rtn  0x00000028 
+ 00009038  0x00000d7d call  0x00007d1f 
+ 00009039  0x00000d7e iforce  0x0000001b 
+ 00009040  0x00000d7f until  0x0000003e , 0x00000003 
+ 00009041  0x00000d80 rtn 
+ 00009042  0x00000d84 copy  0x00000019 , 0x00000002 
+ 00009043  0x00000d85 rtn  0x00000029 
+ 00009044  0x00000d86 copy  0x0000001a , 0x00000002 
+ 00009045  0x00000d87 rtn 
+ 00009046  0x00000d8a deposit  0x00000022 
+ 00009047  0x00000d8b rtn  0x00000029 
+ 00009048  0x00000d8c deposit  0x00000028 
+ 00009049  0x00000d8d rtn 
+ 00009050  0x00000d91 bpatch  0x00000021 , 0x00004004 
+ 00009051  0x00000d92 branch  0x0000235a 
+ 00009052  0x00000d96 rtn  0x00000034 
+ 00009053  0x00000d98 rshift  0x0000003f , 0x0000003f 
+ 00009054  0x00000d99 increase  0xfffffffd , 0x0000003f 
+ 00009055  0x00000d9b increase  0xffffffff , 0x0000003f 
+ 00009056  0x00000d9c nbranch  0x0000235f , 0x00000005 
+ 00009057  0x00000d9d force  0x00000000 , 0x0000003f 
+ 00009058  0x00000d9e rtn 
+ 00009059  0x00000da4 setarg  0x00000e43 
+ 00009060  0x00000da5 store  0x00000002 , 0x00000036 
+ 00009061  0x00000da6 setarg  0x00000600 
+ 00009062  0x00000da7 store  0x00000002 , 0x00000038 
+ 00009063  0x00000da8 setarg  0x00000600 
+ 00009064  0x00000da9 store  0x00000002 , 0x0000003a 
+ 00009065  0x00000daa setarg  0x00000d00 
+ 00009066  0x00000dab store  0x00000002 , 0x00000040 
+ 00009067  0x00000dac setarg  0x000003bb 
+ 00009068  0x00000dad store  0x00000002 , 0x0000003c 
+ 00009069  0x00000dae setarg  0x00000500 
+ 00009070  0x00000daf store  0x00000002 , 0x0000003e 
+ 00009071  0x00000db0 setarg  0x000007d0 
+ 00009072  0x00000db1 store  0x00000002 , 0x00000042 
+ 00009073  0x00000db2 setarg  0x00000ea6 
+ 00009074  0x00000db3 store  0x00000002 , 0x00000044 
+ 00009075  0x00000db4 setarg  0x000001e0 
+ 00009076  0x00000db5 store  0x00000002 , 0x00000046 
+ 00009077  0x00000db6 setarg  0x00000120 
+ 00009078  0x00000db7 store  0x00000002 , 0x00000048 
+ 00009079  0x00000db8 setarg  0x0000011a 
+ 00009080  0x00000db9 store  0x00000002 , 0x0000004a 
+ 00009081  0x00000dbb bpatch  0x00000022 , 0x00004004 
+ 00009082  0x00000dbc rtn  0x0000002b 
+ 00009083  0x00000dbd setarg  0x00000017 
+ 00009084  0x00000dbe store  0x00000002 , 0x000042e3 
+ 00009085  0x00000dbf jam  0x0000008b , 0x00004167 
+ 00009086  0x00000dc0 setarg  0x00000d00 
+ 00009087  0x00000dc1 store  0x00000002 , 0x0000433f 
+ 00009088  0x00000dc2 setarg  0x00000060 
+ 00009089  0x00000dc3 store  0x00000002 , 0x00004341 
+ 00009090  0x00000dc4 rshift  0x00000022 , 0x0000003f 
+ 00009091  0x00000dc5 store  0x00000004 , 0x00004095 
+ 00009092  0x00000dc6 rtn 
+ 00009093  0x00000dce setarg  0x0000ee21 
+ 00009094  0x00000dcf store  0x00000002 , 0x00008050 
+ 00009095  0x00000dd0 fetchr  0x00000030 , 0x00000004 , 0x0000811c 
+ 00009096  0x00000dd1 fetch  0x00000001 , 0x00008132 
+ 00009097  0x00000dd2 bbit0  0x00000005 , 0x0000239c 
+ 00009098  0x00000dd3 enable  0x0000002b 
+ 00009099  0x00000dd4 bbit1  0x00000004 , 0x00002393 
+ 00009100  0x00000dd5 disable  0x0000002b 
+ 00009101  0x00000dd6 deposit  0x00000027 
+ 00009102  0x00000dd7 nbranch  0x00002393 , 0x00000034 
+ 00009103  0x00000dd8 fetch  0x00000001 , 0x00008142 
+ 00009104  0x00000dd9 bbit1  0x00000004 , 0x00002393 
+ 00009105  0x00000dda arg  0xffffffff , 0x00000002 
+ 00009106  0x00000ddb branch  0x00002434 
+ 00009107  0x00000ddd call  0x000023a0 
+ 00009108  0x00000dde call  0x000023e6 , 0x0000002b 
+ 00009109  0x00000ddf fetch  0x00000001 , 0x00008132 
+ 00009110  0x00000de0 set0  0x00000005 , 0x0000003f 
+ 00009111  0x00000de1 store  0x00000001 , 0x00008132 
+ 00009112  0x00000de2 nbranch  0x0000239d , 0x0000002b 
+ 00009113  0x00000de3 nop  0x00000001 
+ 00009114  0x00000de4 storer  0x00000030 , 0x00000004 , 0x0000069d 
+ 00009115  0x00000de5 rtn 
+ 00009116  0x00000de8 call  0x000023a0 
+ 00009117  0x00000dea call  0x00006a68 
+ 00009118  0x00000deb storer  0x00000030 , 0x00000004 , 0x0000069d 
+ 00009119  0x00000dec rtn 
+ 00009120  0x00000def until  0x0000003e , 0x00000033 
+ 00009121  0x00000df0 fetch  0x00000001 , 0x00008133 
+ 00009122  0x00000df1 and_into  0x00000088 , 0x0000003f 
+ 00009123  0x00000df2 store  0x00000001 , 0x00008133 
+ 00009124  0x00000df3 until  0x0000003e , 0x00000033 
+ 00009125  0x00000df4 fetch  0x00000001 , 0x00008132 
+ 00009126  0x00000df5 or_into  0x0000000f , 0x0000003f 
+ 00009127  0x00000df6 store  0x00000001 , 0x00008132 
+ 00009128  0x00000df7 until  0x0000003e , 0x00000033 
+ 00009129  0x00000df8 set1  0x00000007 , 0x0000003f 
+ 00009130  0x00000df9 store  0x00000001 , 0x00008132 
+ 00009131  0x00000dfa until  0x0000003e , 0x00000033 
+ 00009132  0x00000dfb set1  0x00000006 , 0x0000003f 
+ 00009133  0x00000dfc store  0x00000001 , 0x00008132 
+ 00009134  0x00000dfd until  0x0000003e , 0x00000033 
+ 00009135  0x00000dfe rtn 
+ 00009136  0x00000e01 until  0x0000003e , 0x00000033 
+ 00009137  0x00000e02 jam  0x00000076 , 0x0000813d 
+ 00009138  0x00000e03 until  0x0000003e , 0x00000033 
+ 00009139  0x00000e04 jam  0x00000037 , 0x0000813a 
+ 00009140  0x00000e05 rtn 
+ 00009141  0x00000e08 until  0x0000003e , 0x00000033 
+ 00009142  0x00000e09 jam  0x00000076 , 0x0000813d 
+ 00009143  0x00000e0a until  0x0000003e , 0x00000033 
+ 00009144  0x00000e0b jam  0x00000037 , 0x0000813a 
+ 00009145  0x00000e0c rtn 
+ 00009146  0x00000e11 fetch  0x00000001 , 0x000043cb 
+ 00009147  0x00000e12 lshift4  0x0000003f , 0x0000003f 
+ 00009148  0x00000e14 store  0x00000001 , 0x00008143 
+ 00009149  0x00000e15 until  0x0000003e , 0x00000033 
+ 00009150  0x00000e16 fetch  0x00000001 , 0x000043cc 
+ 00009151  0x00000e17 set1  0x00000005 , 0x0000003f 
+ 00009152  0x00000e18 set1  0x00000006 , 0x0000003f 
+ 00009153  0x00000e19 store  0x00000001 , 0x00008144 
+ 00009154  0x00000e1a branch  0x000023e2 
+ 00009155  0x00000e1d fetch  0x00000001 , 0x00008142 
+ 00009156  0x00000e1e set0  0x00000003 , 0x0000003f 
+ 00009157  0x00000e1f store  0x00000001 , 0x00008142 
+ 00009158  0x00000e20 rtn 
+ 00009159  0x00000e23 fetch  0x00000001 , 0x00008142 
+ 00009160  0x00000e24 set1  0x00000003 , 0x0000003f 
+ 00009161  0x00000e25 store  0x00000001 , 0x00008142 
+ 00009162  0x00000e26 rtn 
+ 00009163  0x00000e29 fetch  0x00000003 , 0x000040c3 
+ 00009164  0x00000e2a arg  0x0000813e , 0x00000005 
+ 00009165  0x00000e2c arg  0x00000003 , 0x00000039 
+ 00009166  0x00000e2d branch  0x000023d1 
+ 00009167  0x00000e30 arg  0x00008145 , 0x00000005 
+ 00009168  0x00000e32 arg  0x00000004 , 0x00000039 
+ 00009169  0x00000e34 until  0x0000003e , 0x00000033 
+ 00009170  0x00000e35 istore  0x00000001 , 0x00000005 
+ 00009171  0x00000e36 rshift8  0x0000003f , 0x0000003f 
+ 00009172  0x00000e37 loop  0x000023d1 
+ 00009173  0x00000e38 branch  0x000023e2 
+ 00009174  0x00000e3b arg  0x00008149 , 0x00000005 
+ 00009175  0x00000e3c branch  0x000023d0 
+ 00009176  0x00000e40 fetch  0x00000001 , 0x00008133 
+ 00009177  0x00000e41 set0  0x00000003 , 0x0000003f 
+ 00009178  0x00000e42 store  0x00000001 , 0x00008133 
+ 00009179  0x00000e43 rtn 
+ 00009180  0x00000e46 fetch  0x00000001 , 0x000040cb 
+ 00009181  0x00000e47 rtn  0x00000034 
+ 00009182  0x00000e48 set0  0x00000004 , 0x0000003f 
+ 00009183  0x00000e49 branch  0x000023e1 
+ 00009184  0x00000e4c store  0x00000001 , 0x000040cb 
+ 00009185  0x00000e4e store  0x00000001 , 0x00008135 
+ 00009186  0x00000e50 until  0x0000003e , 0x00000033 
+ 00009187  0x00000e51 rtn 
+ 00009188  0x00000e55 store  0x00000001 , 0x00008134 
+ 00009189  0x00000e56 branch  0x000023e2 
+ 00009190  0x00000e5a call  0x000023dc 
+ 00009191  0x00000e5b fetch  0x00000001 , 0x000040ef 
+ 00009192  0x00000e5c store  0x00000001 , 0x00008080 
+ 00009193  0x00000e5d arg  0x000040cc , 0x00000006 
+ 00009194  0x00000e5e arg  0x00008070 , 0x00000005 
+ 00009195  0x00000e5f call  0x00007c8f 
+ 00009196  0x00000e60 arg  0x000080d4 , 0x00000005 
+ 00009197  0x00000e61 call  0x00007c89 
+ 00009198  0x00000e62 fetchr  0x00000000 , 0x00000008 , 0x000040e7 
+ 00009199  0x00000e63 arg  0x0000814d , 0x00000006 
+ 00009200  0x00000e64 arg  0x00000016 , 0x00000005 
+ 00009201  0x00000e65 arg  0x0000000c , 0x00000039 
+ 00009202  0x00000e66 call  0x00007cda 
+ 00009203  0x00000e67 branch  0x00006b11 
+ 00009204  0x00000e6a storer  0x00000000 , 0x00000008 , 0x000040e7 
+ 00009205  0x00000e6b arg  0x00008070 , 0x00000006 
+ 00009206  0x00000e6c arg  0x000040cc , 0x00000005 
+ 00009207  0x00000e6d call  0x00007c8f 
+ 00009208  0x00000e6e arg  0x000080d4 , 0x00000006 
+ 00009209  0x00000e6f call  0x00007c89 
+ 00009210  0x00000e70 fetch  0x00000001 , 0x00008080 
+ 00009211  0x00000e71 store  0x00000001 , 0x000040ef 
+ 00009212  0x00000e72 branch  0x000023fd 
+ 00009213  0x00000e75 arg  0x0000000c , 0x00000039 
+ 00009214  0x00000e76 arg  0x00000016 , 0x00000006 
+ 00009215  0x00000e77 arg  0x0000814d , 0x00000011 
+ 00009216  0x00000e79 ifetch  0x00000001 , 0x00000006 
+ 00009217  0x00000e7a ncall  0x00002405 , 0x00000034 
+ 00009218  0x00000e7b increase  0x00000001 , 0x00000011 
+ 00009219  0x00000e7c loop  0x00002400 
+ 00009220  0x00000e7d rtn 
+ 00009221  0x00000e7f istore  0x00000001 , 0x00000011 
+ 00009222  0x00000e80 until  0x0000003e , 0x00000033 
+ 00009223  0x00000e81 rtn 
+ 00009224  0x00000e84 bpatch  0x00000023 , 0x00004004 
+ 00009225  0x00000e85 fetch  0x00000001 , 0x000080cb 
+ 00009226  0x00000e86 nbranch  0x0000240f , 0x00000034 
+ 00009227  0x00000e87 fetch  0x00000003 , 0x000040bd 
+ 00009228  0x00000e88 nrtn  0x00000034 
+ 00009229  0x00000e89 jam  0x0000000c , 0x000080cb 
+ 00009230  0x00000e8a jam  0x00000080 , 0x00008006 
+ 00009231  0x00000e8c fetch  0x00000001 , 0x00008129 
+ 00009232  0x00000e8d rtnbit0  0x00000001 
+ 00009233  0x00000e8e fetch  0x00000003 , 0x0000815b 
+ 00009234  0x00000e8f store  0x00000003 , 0x000040bd 
+ 00009235  0x00000e90 rtn 
+ 00009236  0x00000e95 fetch  0x00000001 , 0x000040ca 
+ 00009237  0x00000e96 set1  0x00000004 , 0x0000003f 
+ 00009238  0x00000e97 store  0x00000001 , 0x000040ca 
+ 00009239  0x00000e9b bpatch  0x00000024 , 0x00004004 
+ 00009240  0x00000e9c arg  0xffffffff , 0x00000002 
+ 00009241  0x00000e9d fetch  0x00000001 , 0x000040a7 
+ 00009242  0x00000e9e store  0x00000001 , 0x000040c8 
+ 00009243  0x00000e9f fetch  0x00000001 , 0x000040ca 
+ 00009244  0x00000ea0 store  0x00000001 , 0x00008142 
+ 00009245  0x00000ea1 until  0x0000003e , 0x00000033 
+ 00009246  0x00000ea4 bpatch  0x00000025 , 0x00004004 
+ 00009247  0x00000ea6 fetch  0x00000002 , 0x000043e9 
+ 00009248  0x00000ea7 call  0x00007d79 
+ 00009249  0x00000ea9 fetch  0x00000004 , 0x000040ad 
+ 00009250  0x00000eaa iadd  0x00000002 , 0x0000003f 
+ 00009251  0x00000eab store  0x00000004 , 0x000040ad 
+ 00009252  0x00000eac call  0x000023f4 
+ 00009253  0x00000ead fetch  0x00000001 , 0x000040cb 
+ 00009254  0x00000eae set1  0x00000004 , 0x0000003f 
+ 00009255  0x00000eaf call  0x000023e1 
+ 00009256  0x00000eb0 ncall  0x000023cb , 0x0000002b 
+ 00009257  0x00000eb1 until  0x0000003e , 0x00000033 
+ 00009258  0x00000eb2 storer  0x00000019 , 0x00000006 , 0x000040b1 
+ 00009259  0x00000eb3 fetch  0x00000003 , 0x000040c6 
+ 00009260  0x00000eb4 fetchr  0x00000011 , 0x00000001 , 0x000040c9 
+ 00009261  0x00000eb5 arg  0x00000003 , 0x00000039 
+ 00009262  0x00000eb7 until  0x0000003e , 0x00000033 
+ 00009263  0x00000eb8 store  0x00000001 , 0x00008132 
+ 00009264  0x00000eb9 rshift8  0x0000003f , 0x0000003f 
+ 00009265  0x00000eba loop  0x0000242e 
+ 00009266  0x00000ebb until  0x0000003e , 0x00000033 
+ 00009267  0x00000ebc storer  0x00000011 , 0x00000001 , 0x00008133 
+ 00009268  0x00000ebe until  0x0000003e , 0x00000033 
+ 00009269  0x00000ebf storet  0x00000004 , 0x0000804c 
+ 00009270  0x00000ec0 jam  0x00000001 , 0x00008005 
+ 00009271  0x00000ec1 until  0x0000003e , 0x0000003f 
+ 00009272  0x00000ec4 fetch  0x00000001 , 0x000040c3 
+ 00009273  0x00000ec5 nrtn  0x00000034 
+ 00009274  0x00000ec6 jam  0x00000006 , 0x00008042 
+ 00009275  0x00000ec7 jam  0x000000f8 , 0x00008130 
+ 00009276  0x00000ec8 setarg  0x00030d40 
+ 00009277  0x00000ec9 call  0x0000235c 
+ 00009278  0x00000eca call  0x000023b5 
+ 00009279  0x00000ecb until  0x0000003e , 0x00000033 
+ 00009280  0x00000ecc jam  0x000000ff , 0x00008130 
+ 00009281  0x00000ecd copy  0x00000031 , 0x00000030 
+ 00009282  0x00000ece jam  0x00000004 , 0x00008042 
+ 00009283  0x00000ecf nop  0x0000000a 
+ 00009284  0x00000ed0 until  0x0000003e , 0x00000033 
+ 00009285  0x00000ed1 deposit  0x00000031 
+ 00009286  0x00000ed2 isub  0x00000030 , 0x0000003f 
+ 00009287  0x00000ed3 increase  0x00000030 , 0x0000003f 
+ 00009288  0x00000ed4 arg  0x000000ff , 0x00000002 
+ 00009289  0x00000ed5 call  0x00007d6c 
+ 00009290  0x00000ed6 store  0x00000001 , 0x000040c3 
+ 00009291  0x00000ed7 nop  0x00007530 
+ 00009292  0x00000ed8 nop  0x00007530 
+ 00009293  0x00000ed9 nop  0x00007530 
+ 00009294  0x00000eda rtn 
+ 00009295  0x00000ede bpatch  0x00000026 , 0x00004004 
+ 00009296  0x00000edf setarg  0x00000000 
+ 00009297  0x00000ee0 copy  0x00000027 , 0x0000003e 
+ 00009298  0x00000ee1 branch  0x0000245a , 0x00000005 
+ 00009299  0x00000ee2 fetch  0x00000001 , 0x0000813e 
+ 00009300  0x00000ee3 fetcht  0x00000001 , 0x0000813f 
+ 00009301  0x00000ee4 isub  0x00000002 , 0x0000003e 
+ 00009302  0x00000ee5 branch  0x00002458 , 0x00000002 
+ 00009303  0x00000ee6 deposit  0x00000002 
+ 00009304  0x00000ee8 isub  0x00000027 , 0x0000003f 
+ 00009305  0x00000ee9 increase  0x00000001 , 0x0000003f 
+ 00009306  0x00000eeb increase  0x00000008 , 0x0000003f 
+ 00009307  0x00000eec until  0x0000003e , 0x00000033 
+ 00009308  0x00000eed iadd  0x00000031 , 0x0000003f 
+ 00009309  0x00000eee fetcht  0x00000004 , 0x000040a9 
+ 00009310  0x00000eef iadd  0x00000002 , 0x0000003f 
+ 00009311  0x00000ef0 fetcht  0x00000003 , 0x000040bd 
+ 00009312  0x00000ef1 imul32  0x00000002 , 0x0000003f 
+ 00009313  0x00000ef2 rshift8  0x0000003f , 0x0000003f 
+ 00009314  0x00000ef3 rshift4  0x0000003f , 0x0000003f 
+ 00009315  0x00000ef4 increase  0x0000006e , 0x0000003f 
+ 00009316  0x00000ef5 fetcht  0x00000002 , 0x00000044 
+ 00009317  0x00000ef6 idiv  0x00000002 
+ 00009318  0x00000ef7 call  0x00007d5f 
+ 00009319  0x00000ef8 lshift16  0x0000003f , 0x0000003f 
+ 00009320  0x00000ef9 remainder  0x00000002 
+ 00009321  0x00000efa ior  0x00000002 , 0x0000003f 
+ 00009322  0x00000efb fetcht  0x00000006 , 0x000040b1 
+ 00009323  0x00000efc call  0x00007d05 
+ 00009324  0x00000efd copy  0x00000002 , 0x00000019 
+ 00009325  0x00000efe fetch  0x00000006 , 0x00004048 
+ 00009326  0x00000eff call  0x00002109 
+ 00009327  0x00000f00 deposit  0x0000001a 
+ 00009328  0x00000f01 store  0x00000006 , 0x00000670 
+ 00009329  0x00000f02 deposit  0x00000027 
+ 00009330  0x00000f03 istore  0x00000001 , 0x00000005 
+ 00009331  0x00000f04 fetch  0x00000001 , 0x0000811d 
+ 00009332  0x00000f05 or_into  0x000000f0 , 0x0000003f 
+ 00009333  0x00000f06 istore  0x00000001 , 0x00000005 
+ 00009334  0x00000f07 rtn 
+ 00009335  0x00000f0b bpatch  0x00000027 , 0x00004004 
+ 00009336  0x00000f0c deposit  0x0000001a 
+ 00009337  0x00000f0d call  0x00007d10 
+ 00009338  0x00000f0e fetcht  0x00000004 , 0x000040ad 
+ 00009339  0x00000f0f sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00009340  0x00000f10 rtn  0x00000002 
+ 00009341  0x00000f11 lshift8  0x0000003f , 0x0000003f 
+ 00009342  0x00000f12 lshift4  0x0000003f , 0x0000003f 
+ 00009343  0x00000f13 idiv  0x00000002 
+ 00009344  0x00000f14 call  0x00007d5f 
+ 00009345  0x00000f15 arg  0x000000c8 , 0x00000002 
+ 00009346  0x00000f16 call  0x00007d6c 
+ 00009347  0x00000f17 store  0x00000001 , 0x0000000e 
+ 00009348  0x00000f18 nbranch  0x00002486 , 0x00000028 
+ 00009349  0x00000f19 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00009350  0x00000f1b fetcht  0x00000003 , 0x000040bd 
+ 00009351  0x00000f1c iadd  0x00000002 , 0x0000003f 
+ 00009352  0x00000f1d store  0x00000003 , 0x000040bd 
+ 00009353  0x00000f1f setarg  0x00000000 
+ 00009354  0x00000f20 store  0x00000004 , 0x000040ad 
+ 00009355  0x00000f21 rtn 
+ 00009356  0x00000f25 bpatch  0x00000028 , 0x00004005 
+ 00009357  0x00000f26 call  0x00002408 
+ 00009358  0x00000f27 fetch  0x00000003 , 0x000040bd 
+ 00009359  0x00000f28 rtn  0x00000034 
+ 00009360  0x00000f29 fetch  0x00000001 , 0x00004094 
+ 00009361  0x00000f2a rtn  0x00000034 
+ 00009362  0x00000f2b fetch  0x00000001 , 0x0000446c 
+ 00009363  0x00000f2c branch  0x00002496 , 0x00000034 
+ 00009364  0x00000f2d fetch  0x00000001 , 0x0000446e 
+ 00009365  0x00000f2e rtn  0x00000034 
+ 00009366  0x00000f30 fetch  0x00000001 , 0x0000446d 
+ 00009367  0x00000f31 nrtn  0x00000034 
+ 00009368  0x00000f32 arg  0x000020af , 0x00000013 
+ 00009369  0x00000f33 call  0x00002069 
+ 00009370  0x00000f34 rtn  0x00000005 
+ 00009371  0x00000f35 call  0x000024ef 
+ 00009372  0x00000f36 nrtn  0x00000034 
+ 00009373  0x00000f37 call  0x0000205d 
+ 00009374  0x00000f38 nbranch  0x000024bd , 0x00000005 
+ 00009375  0x00000f39 rtn  0x0000002b 
+ 00009376  0x00000f3a bpatch  0x00000029 , 0x00004005 
+ 00009377  0x00000f3b fetcht  0x00000001 , 0x00000015 
+ 00009378  0x00000f3c fetch  0x00000002 , 0x00004042 
+ 00009379  0x00000f3d imul32  0x00000002 , 0x0000003f 
+ 00009380  0x00000f3e rshift4  0x00000002 , 0x00000002 
+ 00009381  0x00000f3f rshift2  0x00000002 , 0x00000002 
+ 00009382  0x00000f40 isub  0x00000002 , 0x0000003f 
+ 00009383  0x00000f41 fetcht  0x00000004 , 0x00004044 
+ 00009384  0x00000f42 iadd  0x00000002 , 0x0000003f 
+ 00009385  0x00000f43 fetcht  0x00000001 , 0x000040a6 
+ 00009386  0x00000f44 isub  0x00000002 , 0x0000003f 
+ 00009387  0x00000f45 lshift16  0x0000003f , 0x00000030 
+ 00009388  0x00000f46 fetch  0x00000002 , 0x0000404e 
+ 00009389  0x00000f47 rshift  0x0000003f , 0x0000003f 
+ 00009390  0x00000f48 call  0x00007d2c 
+ 00009391  0x00000f49 deposit  0x00000030 
+ 00009392  0x00000f4a call  0x00007d12 
+ 00009393  0x00000f4b copy  0x0000001a , 0x00000002 
+ 00009394  0x00000f4c call  0x00007d10 
+ 00009395  0x00000f4d rtn  0x00000028 
+ 00009396  0x00000f4f call  0x00007d25 
+ 00009397  0x00000f51 bpatch  0x0000002a , 0x00004005 
+ 00009398  0x00000f52 fetch  0x00000001 , 0x000040c3 
+ 00009399  0x00000f53 isub  0x00000002 , 0x0000003e 
+ 00009400  0x00000f54 branch  0x00002489 , 0x00000002 
+ 00009401  0x00000f55 storet  0x00000004 , 0x000040a9 
+ 00009402  0x00000f56 call  0x000042c5 
+ 00009403  0x00000f58 fetcht  0x00000004 , 0x000040a9 
+ 00009404  0x00000f59 branch  0x0000241e 
+ 00009405  0x00000f5c bpatch  0x0000002b , 0x00004005 
+ 00009406  0x00000f5d fetch  0x00000001 , 0x00004388 
+ 00009407  0x00000f5e nbranch  0x000024c1 , 0x00000034 
+ 00009408  0x00000f5f rtn 
+ 00009409  0x00000f62 fetch  0x00000002 , 0x000040a4 
+ 00009410  0x00000f63 rtn  0x00000034 
+ 00009411  0x00000f65 fetcht  0x00000001 , 0x000040a6 
+ 00009412  0x00000f66 isub  0x00000002 , 0x0000003f 
+ 00009413  0x00000f67 arg  0x00001d4c , 0x00000002 
+ 00009414  0x00000f68 imul32  0x00000002 , 0x0000003f 
+ 00009415  0x00000f69 branch  0x000024b4 
+ 00009416  0x00000f6d fetch  0x00000002 , 0x000043e5 
+ 00009417  0x00000f6e call  0x00007d79 
+ 00009418  0x00000f6f nbranch  0x000024e0 , 0x00000034 
+ 00009419  0x00000f70 jam  0x00000000 , 0x00000015 
+ 00009420  0x00000f71 bmark0  0x0000000d , 0x000024e0 
+ 00009421  0x00000f72 fetch  0x00000001 , 0x000040c2 
+ 00009422  0x00000f73 branch  0x000024e4 , 0x00000034 
+ 00009423  0x00000f74 increase  0xffffffff , 0x0000003f 
+ 00009424  0x00000f75 store  0x00000001 , 0x000040c2 
+ 00009425  0x00000f76 rtn 
+ 00009426  0x00000f7c jam  0x00000000 , 0x000040a8 
+ 00009427  0x00000f7d fetch  0x00000003 , 0x000040b7 
+ 00009428  0x00000f7e increase  0x00000001 , 0x0000003f 
+ 00009429  0x00000f7f store  0x00000003 , 0x000040b7 
+ 00009430  0x00000f80 rtn 
+ 00009431  0x00000f84 bpatch  0x0000002c , 0x00004005 
+ 00009432  0x00000f85 jam  0x00000000 , 0x00000015 
+ 00009433  0x00000f86 fetch  0x00000003 , 0x000040ba 
+ 00009434  0x00000f87 increase  0x00000001 , 0x0000003f 
+ 00009435  0x00000f88 store  0x00000003 , 0x000040ba 
+ 00009436  0x00000f89 fetch  0x00000001 , 0x000040a8 
+ 00009437  0x00000f8a increase  0x00000001 , 0x0000003f 
+ 00009438  0x00000f8b store  0x00000001 , 0x000040a8 
+ 00009439  0x00000f8c rtn 
+ 00009440  0x00000f8f jam  0x00000000 , 0x00000015 
+ 00009441  0x00000f90 fetch  0x00000001 , 0x000040c1 
+ 00009442  0x00000f91 store  0x00000001 , 0x000040c2 
+ 00009443  0x00000f92 rtn 
+ 00009444  0x00000f95 fetcht  0x00000001 , 0x000040c0 
+ 00009445  0x00000f96 storet  0x00000001 , 0x00000015 
+ 00009446  0x00000f97 rtn 
+ 00009447  0x00000f9c fetch  0x00000002 , 0x000040a2 
+ 00009448  0x00000f9d qset1  0x0000003f 
+ 00009449  0x00000f9e store  0x00000002 , 0x000040a2 
+ 00009450  0x00000f9f rtn 
+ 00009451  0x00000fa2 fetch  0x00000002 , 0x000040a2 
+ 00009452  0x00000fa3 qset0  0x0000003f 
+ 00009453  0x00000fa4 store  0x00000002 , 0x000040a2 
+ 00009454  0x00000fa5 rtn 
+ 00009455  0x00000faa bpatch  0x0000002d , 0x00004005 
+ 00009456  0x00000fab call  0x000042c3 
+ 00009457  0x00000fac fetch  0x00000002 , 0x000040a2 
+ 00009458  0x00000fad copy  0x0000003f , 0x00000011 
+ 00009459  0x00000fae fetch  0x00000003 , 0x0000444b 
+ 00009460  0x00000faf nsetflag  0x00000034 , 0x00000001 , 0x00000011 
+ 00009461  0x00000fb0 fetch  0x00000008 , 0x000044d3 
+ 00009462  0x00000fb1 nsetflag  0x00000034 , 0x0000000f , 0x00000011 
+ 00009463  0x00000fb2 fetch  0x00000008 , 0x000044db 
+ 00009464  0x00000fb3 nsetflag  0x00000034 , 0x0000000e , 0x00000011 
+ 00009465  0x00000fb4 fetch  0x00000001 , 0x00004114 
+ 00009466  0x00000fb5 nsetflag  0x00000034 , 0x00000008 , 0x00000011 
+ 00009467  0x00000fb6 fetch  0x00000001 , 0x000043cb 
+ 00009468  0x00000fb7 compare  0x0000000a , 0x0000003f , 0x000000ff 
+ 00009469  0x00000fb8 call  0x00002501 , 0x00000001 
+ 00009470  0x00000fb9 copy  0x00000011 , 0x0000003f 
+ 00009471  0x00000fba store  0x00000002 , 0x000040a2 
+ 00009472  0x00000fbb rtn 
+ 00009473  0x00000fbe fetch  0x00000002 , 0x00008112 
+ 00009474  0x00000fbf nsetflag  0x00000034 , 0x00000006 , 0x00000011 
+ 00009475  0x00000fc0 fetch  0x00000002 , 0x0000810e 
+ 00009476  0x00000fc1 nsetflag  0x00000034 , 0x00000005 , 0x00000011 
+ 00009477  0x00000fc2 rtn 
+ 00009478  0x00000fcc bpatchx  0x0000000e , 0x00004021 
+ 00009479  0x00000fcd disable  0x0000002b 
+ 00009480  0x00000fce jam  0x00000001 , 0x0000017e 
+ 00009481  0x00000fcf jam  0x00000003 , 0x00000168 
+ 00009482  0x00000fd0 jam  0x00000001 , 0x0000017f 
+ 00009483  0x00000fd1 setarg  0xffffffff 
+ 00009484  0x00000fd2 store  0x00000002 , 0x00000182 
+ 00009485  0x00000fd3 force  0x00000000 , 0x0000003f 
+ 00009486  0x00000fd4 store  0x00000001 , 0x00000180 
+ 00009487  0x00000fd5 store  0x00000001 , 0x0000018b 
+ 00009488  0x00000fd6 store  0x00000003 , 0x000040b7 
+ 00009489  0x00000fd7 store  0x00000003 , 0x000040ba 
+ 00009490  0x00000fd8 call  0x0000285c 
+ 00009491  0x00000fd9 jam  0x00000001 , 0x00004169 
+ 00009492  0x00000fda jam  0x00000000 , 0x0000416a 
+ 00009493  0x00000fdb jam  0x00000001 , 0x0000019d 
+ 00009494  0x00000fdc jam  0x00000001 , 0x0000019e 
+ 00009495  0x00000fdd jam  0x00000000 , 0x00004396 
+ 00009496  0x00000fde branch  0x00002935 
+ 00009497  0x00000fe1 bpatchx  0x0000000f , 0x00004021 
+ 00009498  0x00000fe2 enable  0x00000029 
+ 00009499  0x00000fe3 jam  0x00000003 , 0x00000169 
+ 00009500  0x00000fe4 jam  0x00000001 , 0x00004398 
+ 00009501  0x00000fe5 jam  0x00000001 , 0x000006b1 
+ 00009502  0x00000fe6 setarg  0x0000ffff 
+ 00009503  0x00000fe7 store  0x00000002 , 0x000006b3 
+ 00009504  0x00000fe8 force  0x00000000 , 0x0000003f 
+ 00009505  0x00000fe9 store  0x00000005 , 0x00004455 
+ 00009506  0x00000fea set1  0x00000027 , 0x0000003f 
+ 00009507  0x00000feb store  0x00000005 , 0x00004450 
+ 00009508  0x00000fec branch  0x00002506 
+ 00009509  0x00000ff0 bpatchx  0x00000010 , 0x00004022 
+ 00009510  0x00000ff1 disable  0x00000029 
+ 00009511  0x00000ff2 setarg  0x00000017 
+ 00009512  0x00000ff3 store  0x00000002 , 0x000042e3 
+ 00009513  0x00000ff4 increase  0x00000004 , 0x0000003f 
+ 00009514  0x00000ff5 store  0x00000002 , 0x000043b8 
+ 00009515  0x00000ff6 jam  0x00000001 , 0x00000169 
+ 00009516  0x00000ff7 jam  0x00000000 , 0x00004388 
+ 00009517  0x00000ff8 jam  0x00000000 , 0x00000015 
+ 00009518  0x00000ff9 call  0x00002592 
+ 00009519  0x00000ffa fetch  0x00000002 , 0x00000196 
+ 00009520  0x00000ffb store  0x00000002 , 0x000042f5 
+ 00009521  0x00000ffc fetch  0x00000002 , 0x0000016a 
+ 00009522  0x00000ffd mul32  0x0000003f , 0x00000005 , 0x0000003f 
+ 00009523  0x00000ffe rshift4  0x0000003f , 0x0000003f 
+ 00009524  0x00000fff store  0x00000002 , 0x00000196 
+ 00009525  0x00001000 branch  0x00002506 
+ 00009526  0x00001008 bpatchx  0x00000011 , 0x00004022 
+ 00009527  0x00001009 call  0x000025b8 
+ 00009528  0x0000100a fetch  0x00000001 , 0x00000168 
+ 00009529  0x0000100b isolate1  0x00000004 , 0x0000003f 
+ 00009530  0x0000100c setflag  0x00000001 , 0x00000032 , 0x00000000 
+ 00009531  0x0000100d call  0x000042b2 
+ 00009532  0x0000100e fetch  0x00000001 , 0x00000169 
+ 00009533  0x0000100f bbit1  0x00000001 , 0x0000253f 
+ 00009534  0x00001010 branch  0x00002551 
+ 00009535  0x00001017 bpatchx  0x00000012 , 0x00004022 
+ 00009536  0x00001018 enable  0x00000029 
+ 00009537  0x00001019 call  0x0000292b 
+ 00009538  0x0000101a branch  0x0000254e , 0x00000002 
+ 00009539  0x0000101b call  0x000025fb 
+ 00009540  0x0000101c call  0x00002871 
+ 00009541  0x0000101d disable  0x0000002d 
+ 00009542  0x0000101e call  0x00002730 
+ 00009543  0x0000101f nrtn  0x0000002d 
+ 00009544  0x00001020 fetch  0x00000001 , 0x00000005 
+ 00009545  0x00001021 increase  0x00000001 , 0x0000003f 
+ 00009546  0x00001022 store  0x00000001 , 0x00000005 
+ 00009547  0x00001023 call  0x00002823 
+ 00009548  0x00001024 disable  0x00000029 
+ 00009549  0x00001025 rtn 
+ 00009550  0x00001028 call  0x00002586 
+ 00009551  0x00001029 disable  0x00000029 
+ 00009552  0x0000102a rtn 
+ 00009553  0x00001030 bpatchx  0x00000013 , 0x00004022 
+ 00009554  0x00001031 jam  0x00000000 , 0x0000433e 
+ 00009555  0x00001032 set0  0x00000030 , 0x00000000 
+ 00009556  0x00001033 call  0x00007552 
+ 00009557  0x00001034 call  0x00002ff5 
+ 00009558  0x00001035 disable  0x0000002e 
+ 00009559  0x00001036 call  0x0000292b 
+ 00009560  0x00001037 branch  0x00002586 , 0x00000002 
+ 00009561  0x00001038 fetch  0x00000001 , 0x0000019d 
+ 00009562  0x00001039 call  0x000025a4 
+ 00009563  0x0000103a call  0x000025fb 
+ 00009564  0x0000103b call  0x00002652 
+ 00009565  0x0000103c nbranch  0x00002577 , 0x00000018 
+ 00009566  0x0000103d call  0x00002597 
+ 00009567  0x0000103e branch  0x00002562 , 0x0000002d 
+ 00009568  0x0000103f bmark1  0x00000030 , 0x00002562 
+ 00009569  0x00001040 branch  0x00002571 
+ 00009570  0x00001045 bpatchx  0x00000014 , 0x00004022 
+ 00009571  0x00001046 fetch  0x00000001 , 0x0000433e 
+ 00009572  0x00001047 pincrease  0x00000001 
+ 00009573  0x00001048 store  0x00000001 , 0x0000433e 
+ 00009574  0x00001049 beq  0x0000000c , 0x00002571 
+ 00009575  0x0000104a call  0x00002823 
+ 00009576  0x0000104b call  0x00002871 
+ 00009577  0x0000104c fetch  0x00000001 , 0x0000019e 
+ 00009578  0x0000104d call  0x000025a4 
+ 00009579  0x0000104e call  0x00002741 
+ 00009580  0x0000104f call  0x000028d4 
+ 00009581  0x00001050 fetch  0x00000002 , 0x000043e1 
+ 00009582  0x00001051 call  0x00007d79 
+ 00009583  0x00001052 call  0x0000257b 
+ 00009584  0x00001053 branch  0x00002580 , 0x00000028 
+ 00009585  0x00001055 bpatchx  0x00000015 , 0x00004022 
+ 00009586  0x00001056 call  0x00002fba 
+ 00009587  0x00001057 call  0x00002fb1 
+ 00009588  0x00001058 call  0x00007841 
+ 00009589  0x00001059 fetch  0x00000001 , 0x0000018b 
+ 00009590  0x0000105a bbit1  0x00000003 , 0x00002586 
+ 00009591  0x0000105c bpatchx  0x00000016 , 0x00004022 
+ 00009592  0x0000105d call  0x000020cf 
+ 00009593  0x0000105e call  0x000029a5 
+ 00009594  0x0000105f branch  0x000020f7 
+ 00009595  0x00001063 disable  0x00000028 
+ 00009596  0x00001064 bmark1  0x0000002a , 0x00007dba 
+ 00009597  0x00001065 bmark1  0x00000029 , 0x00007dba 
+ 00009598  0x00001066 bmark1  0x00000030 , 0x00007dba 
+ 00009599  0x00001067 rtn 
+ 00009600  0x0000106b bpatchx  0x00000017 , 0x00004022 
+ 00009601  0x0000106c enable  0x0000002e 
+ 00009602  0x0000106d call  0x00002734 
+ 00009603  0x0000106e branch  0x00002562 , 0x0000002d 
+ 00009604  0x0000106f bmark1  0x00000030 , 0x00002562 
+ 00009605  0x00001070 branch  0x00002571 
+ 00009606  0x00001075 bpatchx  0x00000018 , 0x00004023 
+ 00009607  0x00001076 call  0x0000258d 
+ 00009608  0x00001077 call  0x00004302 
+ 00009609  0x00001078 call  0x00002592 
+ 00009610  0x00001079 call  0x00003003 
+ 00009611  0x0000107a jam  0x00000015 , 0x0000066f 
+ 00009612  0x0000107b branch  0x0000782b 
+ 00009613  0x0000107e arg  0x00004441 , 0x00000005 
+ 00009614  0x0000107f call  0x00007c99 
+ 00009615  0x00001080 jam  0x00000000 , 0x0000017e 
+ 00009616  0x00001081 jam  0x00000000 , 0x00000169 
+ 00009617  0x00001082 jam  0x00000000 , 0x00000168 
+ 00009618  0x00001084 bpatchx  0x00000019 , 0x00004023 
+ 00009619  0x00001085 jam  0x00000000 , 0x000042fd 
+ 00009620  0x00001086 jam  0x00000000 , 0x000042fc 
+ 00009621  0x00001087 call  0x00007452 
+ 00009622  0x00001088 rtn 
+ 00009623  0x0000108b bpatchx  0x0000001a , 0x00004023 
+ 00009624  0x0000108c fetch  0x00000001 , 0x00000005 
+ 00009625  0x0000108d increase  0x00000001 , 0x0000003f 
+ 00009626  0x0000108e store  0x00000001 , 0x00000005 
+ 00009627  0x0000108f fetch  0x00000001 , 0x00000168 
+ 00009628  0x00001090 rtnbit1  0x00000003 
+ 00009629  0x00001091 set1  0x00000003 , 0x0000003f 
+ 00009630  0x00001092 store  0x00000001 , 0x00000168 
+ 00009631  0x00001093 fetch  0x00000002 , 0x000042f5 
+ 00009632  0x00001094 store  0x00000002 , 0x00000196 
+ 00009633  0x00001095 setarg  0x00000000 
+ 00009634  0x00001096 store  0x00000004 , 0x0000431d 
+ 00009635  0x00001097 rtn 
+ 00009636  0x000010a0 copy  0x0000003f , 0x00000002 
+ 00009637  0x000010a1 bpatchx  0x0000001b , 0x00004023 
+ 00009638  0x000010a3 copy  0x00000002 , 0x0000003f 
+ 00009639  0x000010a4 bbit1  0x00000000 , 0x000025b8 
+ 00009640  0x000010a5 bbit1  0x00000001 , 0x000025ad 
+ 00009641  0x000010a6 bbit0  0x00000002 , 0x000025b8 
+ 00009642  0x000010a7 bbit1  0x00000007 , 0x000025b4 
+ 00009643  0x000010a8 bbit1  0x00000002 , 0x000025b0 
+ 00009644  0x000010a9 branch  0x000025b8 
+ 00009645  0x000010ac set0  0x0000002f , 0x00000000 
+ 00009646  0x000010ad set1  0x0000002d , 0x00000000 
+ 00009647  0x000010ae rtn 
+ 00009648  0x000010b2 set0  0x0000002d , 0x00000000 
+ 00009649  0x000010b3 set1  0x0000002f , 0x00000000 
+ 00009650  0x000010b4 set0  0x0000002e , 0x00000000 
+ 00009651  0x000010b5 rtn 
+ 00009652  0x000010b9 set0  0x0000002d , 0x00000000 
+ 00009653  0x000010ba set1  0x0000002f , 0x00000000 
+ 00009654  0x000010bb set1  0x0000002e , 0x00000000 
+ 00009655  0x000010bc rtn 
+ 00009656  0x000010bf bpatchx  0x0000001c , 0x00004023 
+ 00009657  0x000010c0 set0  0x0000002d , 0x00000000 
+ 00009658  0x000010c1 set0  0x0000002f , 0x00000000 
+ 00009659  0x000010c2 rtn 
+ 00009660  0x000010c6 bpatchx  0x0000001d , 0x00004023 
+ 00009661  0x000010c7 set0  0x00000032 , 0x00000000 
+ 00009662  0x000010c8 jam  0x00000001 , 0x00008901 
+ 00009663  0x000010c9 jam  0x00000080 , 0x00008920 
+ 00009664  0x000010ca jam  0x00000003 , 0x00008930 
+ 00009665  0x000010cb rtn 
+ 00009666  0x000010ce bpatchx  0x0000001e , 0x00004023 
+ 00009667  0x000010cf disable  0x00000009 
+ 00009668  0x000010d0 disable  0x00000007 
+ 00009669  0x000010d1 fetch  0x00000003 , 0x00000190 
+ 00009670  0x000010d2 iforce  0x0000000f 
+ 00009671  0x000010d3 fetch  0x00000001 , 0x00000007 
+ 00009672  0x000010d5 reverse  0x0000003f , 0x00000002 
+ 00009673  0x000010d6 set1  0x00000001 , 0x00000002 
+ 00009674  0x000010d7 rshift  0x00000002 , 0x0000000e 
+ 00009675  0x000010d8 rtn 
+ 00009676  0x000010dc call  0x000025d5 
+ 00009677  0x000010de call  0x0000216f 
+ 00009678  0x000010df fetch  0x00000002 , 0x0000003e 
+ 00009679  0x000010e0 call  0x0000235c 
+ 00009680  0x000010e1 branch  0x000021a6 
+ 00009681  0x000010e4 branch  0x000021fc , 0x0000002d 
+ 00009682  0x000010e5 bmark1  0x00000030 , 0x000021fc 
+ 00009683  0x000010e7 call  0x000025d5 
+ 00009684  0x000010e8 branch  0x000021f9 
+ 00009685  0x000010eb bpatchx  0x0000001f , 0x00004023 
+ 00009686  0x000010ec call  0x00002160 
+ 00009687  0x000010ed fetch  0x00000001 , 0x000001bb 
+ 00009688  0x000010ee nbranch  0x000025e8 , 0x00000034 
+ 00009689  0x000010ef fetch  0x00000001 , 0x00000007 
+ 00009690  0x000010f0 sub  0x0000003f , 0x00000024 , 0x0000003e 
+ 00009691  0x000010f1 branch  0x000025e2 , 0x00000002 
+ 00009692  0x000010f2 force  0x00000000 , 0x00000002 
+ 00009693  0x000010f3 rtneq  0x00000025 
+ 00009694  0x000010f4 force  0x00000018 , 0x00000002 
+ 00009695  0x000010f5 rtneq  0x00000026 
+ 00009696  0x000010f6 force  0x0000004e , 0x00000002 
+ 00009697  0x000010f7 rtn 
+ 00009698  0x000010fa sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00009699  0x000010fb branch  0x000025e5 , 0x00000002 
+ 00009700  0x000010fc increase  0x00000001 , 0x0000003f 
+ 00009701  0x000010ff lshift  0x0000003f , 0x0000003f 
+ 00009702  0x00001100 add  0x0000003f , 0x00000002 , 0x00000002 
+ 00009703  0x00001101 rtn 
+ 00009704  0x00001104 fetch  0x00000001 , 0x00000007 
+ 00009705  0x00001105 lshift  0x0000003f , 0x00000002 
+ 00009706  0x00001106 rtn 
+ 00009707  0x00001109 arg  0x000001f4 , 0x00000002 
+ 00009708  0x0000110a rtn  0x00000034 
+ 00009709  0x0000110b arg  0x000000fa , 0x00000002 
+ 00009710  0x0000110c rtneq  0x00000001 
+ 00009711  0x0000110d arg  0x00000096 , 0x00000002 
+ 00009712  0x0000110e rtneq  0x00000002 
+ 00009713  0x0000110f arg  0x00000064 , 0x00000002 
+ 00009714  0x00001110 rtneq  0x00000003 
+ 00009715  0x00001111 arg  0x0000004b , 0x00000002 
+ 00009716  0x00001112 rtneq  0x00000004 
+ 00009717  0x00001113 arg  0x00000032 , 0x00000002 
+ 00009718  0x00001114 rtneq  0x00000005 
+ 00009719  0x00001115 arg  0x00000028 , 0x00000002 
+ 00009720  0x00001116 rtneq  0x00000006 
+ 00009721  0x00001117 arg  0x00000014 , 0x00000002 
+ 00009722  0x00001118 rtn 
+ 00009723  0x0000111d bpatchx  0x00000020 , 0x00004024 
+ 00009724  0x0000111e enable  0x00000010 
+ 00009725  0x0000111f fetch  0x00000004 , 0x0000018c 
+ 00009726  0x00001120 iforce  0x00000009 
+ 00009727  0x00001121 call  0x00002630 
+ 00009728  0x00001122 setarg  0x00000200 
+ 00009729  0x00001123 branch  0x00002604 , 0x00000029 
+ 00009730  0x00001124 fetch  0x00000002 , 0x00000176 
+ 00009731  0x00001125 rshift  0x0000003f , 0x0000003f 
+ 00009732  0x00001127 fetcht  0x00000002 , 0x0000003e 
+ 00009733  0x00001128 iadd  0x00000002 , 0x0000003f 
+ 00009734  0x00001129 call  0x00002343 
+ 00009735  0x0000112a deposit  0x0000001a 
+ 00009736  0x0000112b rtn 
+ 00009737  0x0000112f bpatchx  0x00000021 , 0x00004024 
+ 00009738  0x00001130 call  0x00007c51 
+ 00009739  0x00001131 storer  0x00000039 , 0x00000002 , 0x0000069b 
+ 00009740  0x00001132 add  0x00000011 , 0x00000001 , 0x00000006 
+ 00009741  0x00001133 ifetch  0x00000001 , 0x00000006 
+ 00009742  0x00001134 rtnbit0  0x00000000 
+ 00009743  0x00001135 add  0x00000011 , 0x0000001a , 0x00000005 
+ 00009744  0x00001136 ifetch  0x00000002 , 0x00000005 
+ 00009745  0x00001137 increase  0x00000001 , 0x0000003f 
+ 00009746  0x00001138 istore  0x00000002 , 0x00000005 
+ 00009747  0x00001139 call  0x000027a2 
+ 00009748  0x0000113a call  0x000027c4 
+ 00009749  0x0000113b call  0x000027cd 
+ 00009750  0x0000113c call  0x0000261a 
+ 00009751  0x0000113d call  0x00007c60 
+ 00009752  0x0000113e fetchr  0x00000039 , 0x00000002 , 0x0000069b 
+ 00009753  0x0000113f rtn 
+ 00009754  0x00001142 add  0x00000011 , 0x00000019 , 0x00000006 
+ 00009755  0x00001143 ifetch  0x00000001 , 0x00000006 
+ 00009756  0x00001144 add  0x00000011 , 0x00000018 , 0x00000005 
+ 00009757  0x00001145 ifetcht  0x00000001 , 0x00000005 
+ 00009758  0x00001146 iadd  0x00000002 , 0x0000003f 
+ 00009759  0x00001147 sub  0x0000003f , 0x00000024 , 0x0000003e 
+ 00009760  0x00001148 branch  0x00002622 , 0x00000002 
+ 00009761  0x00001149 increase  0xffffffdb , 0x0000003f 
+ 00009762  0x0000114b istore  0x00000001 , 0x00000005 
+ 00009763  0x0000114c rtn 
+ 00009764  0x00001150 add  0x00000011 , 0x00000030 , 0x00000006 
+ 00009765  0x00001151 ifetch  0x00000005 , 0x00000006 
+ 00009766  0x00001152 force  0x00000000 , 0x00000002 
+ 00009767  0x00001153 force  0x00000025 , 0x00000039 
+ 00009768  0x00001155 bbit0  0x00000000 , 0x0000262a 
+ 00009769  0x00001156 increase  0x00000001 , 0x00000002 
+ 00009770  0x00001158 rshift  0x0000003f , 0x0000003f 
+ 00009771  0x00001159 loop  0x00002628 
+ 00009772  0x0000115a add  0x00000002 , 0xffffffff , 0x0000003f 
+ 00009773  0x0000115b add  0x00000011 , 0x00000022 , 0x00000005 
+ 00009774  0x0000115c istore  0x00000001 , 0x00000005 
+ 00009775  0x0000115d rtn 
+ 00009776  0x00001160 bpatchx  0x00000022 , 0x00004024 
+ 00009777  0x00001161 fetch  0x00000001 , 0x00000180 
+ 00009778  0x00001162 iforce  0x00000007 
+ 00009779  0x00001163 fetcht  0x00000005 , 0x00000198 
+ 00009780  0x00001164 qisolate1  0x00000002 
+ 00009781  0x00001165 branch  0x00002645 , 0x00000001 
+ 00009782  0x00001167 fetch  0x00000001 , 0x0000018a 
+ 00009783  0x00001168 isub  0x00000007 , 0x0000003f 
+ 00009784  0x00001169 branch  0x0000263b , 0x00000002 
+ 00009785  0x0000116a sub  0x0000003f , 0xffffffff , 0x00000007 
+ 00009786  0x0000116b branch  0x00002636 
+ 00009787  0x0000116d copy  0x00000007 , 0x00000039 
+ 00009788  0x0000116e force  0x00000000 , 0x00000007 
+ 00009789  0x00001170 qisolate1  0x00000002 
+ 00009790  0x00001171 branch  0x00002640 , 0x00000001 
+ 00009791  0x00001172 increase  0x00000001 , 0x00000039 
+ 00009792  0x00001174 deposit  0x00000039 
+ 00009793  0x00001175 branch  0x00002645 , 0x00000034 
+ 00009794  0x00001176 increase  0x00000001 , 0x00000007 
+ 00009795  0x00001177 increase  0xffffffff , 0x00000039 
+ 00009796  0x00001178 branch  0x0000263d 
+ 00009797  0x0000117a deposit  0x00000007 
+ 00009798  0x0000117b store  0x00000001 , 0x00000007 
+ 00009799  0x0000117c rtn 
+ 00009800  0x00001180 branch  0x0000264b , 0x00000029 
+ 00009801  0x00001181 until  0x0000003e , 0x00000003 
+ 00009802  0x00001182 rtn 
+ 00009803  0x00001185 arg  0x00000ea0 , 0x0000000b 
+ 00009804  0x00001186 until  0x00000023 , 0x00000026 
+ 00009805  0x00001187 rtn 
+ 00009806  0x0000118a disable  0x00000010 
+ 00009807  0x0000118b fetch  0x00000002 , 0x00004346 
+ 00009808  0x0000118c copy  0x0000003f , 0x0000000b 
+ 00009809  0x0000118d branch  0x00002658 
+ 00009810  0x00001191 bpatchx  0x00000023 , 0x00004024 
+ 00009811  0x00001192 call  0x000026be 
+ 00009812  0x00001193 enable  0x00000010 
+ 00009813  0x00001194 fetch  0x00000002 , 0x00000176 
+ 00009814  0x00001195 fetcht  0x00000004 , 0x0000431d 
+ 00009815  0x00001196 iadd  0x00000002 , 0x0000000b 
+ 00009816  0x00001198 call  0x000025cc 
+ 00009817  0x0000119a bpatchx  0x00000024 , 0x00004024 
+ 00009818  0x0000119b call  0x000025c2 
+ 00009819  0x0000119c bmark0  0x0000002f , 0x00002660 
+ 00009820  0x0000119d pulse  0x00000039 
+ 00009821  0x0000119e nop  0x0000001e 
+ 00009822  0x0000119f call  0x000025c2 
+ 00009823  0x000011a0 lshift3  0x0000000b , 0x0000000b 
+ 00009824  0x000011a2 disable  0x0000002d 
+ 00009825  0x000011a3 enable  0x0000000d 
+ 00009826  0x000011a4 enable  0x00000021 
+ 00009827  0x000011a5 disable  0x00000020 
+ 00009828  0x000011a6 copy  0x0000000b , 0x0000001b 
+ 00009829  0x000011a7 correlate  0x0000003e , 0x00000003 
+ 00009830  0x000011a8 branch  0x00002669 , 0x0000002e 
+ 00009831  0x000011a9 copy  0x0000001a , 0x00000002 
+ 00009832  0x000011aa storet  0x00000006 , 0x0000000f 
+ 00009833  0x000011ac nbranch  0x000026fa , 0x00000018 
+ 00009834  0x000011ad enable  0x00000010 
+ 00009835  0x000011ae fetch  0x00000001 , 0x00004167 
+ 00009836  0x000011af arg  0x00004e20 , 0x00000002 
+ 00009837  0x000011b0 iadd  0x00000002 , 0x00000002 
+ 00009838  0x000011b1 fetch  0x00000001 , 0x00004148 
+ 00009839  0x000011b2 imul32  0x00000002 , 0x0000001b 
+ 00009840  0x000011b3 call  0x00006877 
+ 00009841  0x000011b4 branch  0x00002677 , 0x0000002e 
+ 00009842  0x000011b5 call  0x000026ff 
+ 00009843  0x000011b6 fetch  0x00000001 , 0x00000168 
+ 00009844  0x000011b7 bbit0  0x00000003 , 0x00002677 
+ 00009845  0x000011b8 fetcht  0x00000006 , 0x0000000f 
+ 00009846  0x000011b9 call  0x00002477 , 0x0000002b 
+ 00009847  0x000011bb call  0x000022e9 
+ 00009848  0x000011bc enable  0x00000007 
+ 00009849  0x000011bd enable  0x00000009 
+ 00009850  0x000011be parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009851  0x000011bf rshift3  0x0000000c , 0x0000003f 
+ 00009852  0x000011c0 store  0x00000001 , 0x0000004c 
+ 00009853  0x000011c1 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009854  0x000011c2 rshift3  0x0000000c , 0x0000003f 
+ 00009855  0x000011c3 store  0x00000001 , 0x0000004d 
+ 00009856  0x000011c4 copy  0x0000003f , 0x00000039 
+ 00009857  0x000011c5 branch  0x0000269d , 0x00000005 
+ 00009858  0x000011c7 bmark1  0x00000032 , 0x00002688 
+ 00009859  0x000011ca parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009860  0x000011cb rshift3  0x0000000c , 0x0000003f 
+ 00009861  0x000011cc istore  0x00000001 , 0x00000005 
+ 00009862  0x000011cd loop  0x00002683 
+ 00009863  0x000011ce branch  0x0000269d 
+ 00009864  0x000011d1 copy  0x00000005 , 0x00000012 
+ 00009865  0x000011d2 bpatchx  0x00000025 , 0x00004024 
+ 00009866  0x000011d3 call  0x0000281c 
+ 00009867  0x000011d5 fetchr  0x00000011 , 0x00000001 , 0x0000004d 
+ 00009868  0x000011d6 increase  0xfffffffc , 0x00000011 
+ 00009869  0x000011d7 nbranch  0x000026f2 , 0x00000002 
+ 00009870  0x000011d9 call  0x000026c3 
+ 00009871  0x000011da copy  0x00000012 , 0x00000005 
+ 00009872  0x000011db arg  0x00000000 , 0x00000002 
+ 00009873  0x000011dc fetchr  0x00000039 , 0x00000001 , 0x0000004d 
+ 00009874  0x000011dd increase  0xfffffffc , 0x00000039 
+ 00009875  0x000011de branch  0x0000269b , 0x00000005 
+ 00009876  0x000011e1 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009877  0x000011e2 rshift3  0x0000000c , 0x0000003f 
+ 00009878  0x000011e3 istore  0x00000001 , 0x00000005 
+ 00009879  0x000011e4 increase  0x00000001 , 0x00000002 
+ 00009880  0x000011e5 and  0x00000002 , 0x0000000f , 0x0000003e 
+ 00009881  0x000011e6 call  0x000026e1 , 0x00000005 
+ 00009882  0x000011e7 loop  0x00002694 
+ 00009883  0x000011e9 call  0x000026e9 
+ 00009884  0x000011ea copy  0x00000012 , 0x00000005 
+ 00009885  0x000011ee bpatchx  0x00000026 , 0x00004024 
+ 00009886  0x000011ef parse  0x00000003 , 0x00000000 , 0x00000018 
+ 00009887  0x000011f0 rshift32  0x0000003f , 0x0000003f 
+ 00009888  0x000011f1 rshift16  0x0000003f , 0x0000003f 
+ 00009889  0x000011f2 istore  0x00000003 , 0x00000005 
+ 00009890  0x000011f3 enable  0x00000010 
+ 00009891  0x000011f4 call  0x0000270d 
+ 00009892  0x000011f5 branch  0x000026f6 , 0x00000006 
+ 00009893  0x000011f6 bmark0  0x00000032 , 0x000026af 
+ 00009894  0x000011f7 fetch  0x00000001 , 0x0000004d 
+ 00009895  0x000011f8 branch  0x000026af , 0x00000034 
+ 00009896  0x000011f9 increase  0xfffffffc , 0x0000003f 
+ 00009897  0x000011fa store  0x00000001 , 0x0000004d 
+ 00009898  0x000011fb call  0x000072cb 
+ 00009899  0x000011fc fetch  0x00000001 , 0x00008108 
+ 00009900  0x000011fd bbit0  0x00000007 , 0x000026f2 
+ 00009901  0x000011fe force  0x0000000c , 0x00000038 
+ 00009902  0x000011ff storer  0x0000002f , 0x00000004 , 0x00000154 
+ 00009903  0x00001201 call  0x00006876 
+ 00009904  0x00001202 enable  0x0000002d 
+ 00009905  0x00001203 set0  0x00000030 , 0x00000000 
+ 00009906  0x00001205 bpatchx  0x00000027 , 0x00004024 
+ 00009907  0x00001206 call  0x000072cd 
+ 00009908  0x00001207 fetch  0x00000001 , 0x0000019d 
+ 00009909  0x00001208 nsetflag  0x0000003c , 0x00000007 , 0x0000003f 
+ 00009910  0x00001209 store  0x00000001 , 0x0000019d 
+ 00009911  0x0000120a call  0x000026b9 
+ 00009912  0x0000120b branch  0x000026bb 
+ 00009913  0x0000120e disable  0x0000000d 
+ 00009914  0x0000120f branch  0x00002160 
+ 00009915  0x00001212 bpatchx  0x00000028 , 0x00004025 
+ 00009916  0x00001213 fetcht  0x00000001 , 0x00000008 
+ 00009917  0x00001214 branch  0x000021c6 
+ 00009918  0x00001218 rtnmark0  0x00000032 
+ 00009919  0x00001219 call  0x00007368 
+ 00009920  0x0000121a force  0x0000000c , 0x00000038 
+ 00009921  0x0000121b call  0x00007370 
+ 00009922  0x0000121c branch  0x0000736f 
+ 00009923  0x00001220 bpatchx  0x00000029 , 0x00004025 
+ 00009924  0x00001221 jam  0x00000000 , 0x0000806c 
+ 00009925  0x00001222 jam  0x00000001 , 0x0000806d 
+ 00009926  0x00001223 fetch  0x00000001 , 0x0000004c 
+ 00009927  0x00001224 and_into  0x00000003 , 0x0000003f 
+ 00009928  0x00001225 store  0x00000001 , 0x0000806e 
+ 00009929  0x00001227 setarg  0x0000004e 
+ 00009930  0x00001228 store  0x00000002 , 0x00008068 
+ 00009931  0x00001229 store  0x00000002 , 0x0000806a 
+ 00009932  0x0000122b fetchr  0x00000011 , 0x00000001 , 0x0000004d 
+ 00009933  0x0000122c increase  0xfffffffc , 0x00000011 
+ 00009934  0x0000122e fetcht  0x00000005 , 0x00004455 
+ 00009935  0x0000122f isolate1  0x0000000f , 0x00000000 
+ 00009936  0x00001230 call  0x000026d7 , 0x00000001 
+ 00009937  0x00001231 call  0x00007265 
+ 00009938  0x00001232 setarg  0x00000000 
+ 00009939  0x00001233 store  0x00000002 , 0x000080c0 
+ 00009940  0x00001234 jam  0x00000006 , 0x0000800a 
+ 00009941  0x00001235 jam  0x00000007 , 0x0000800a 
+ 00009942  0x00001236 rtn 
+ 00009943  0x00001239 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00009944  0x0000123a branch  0x000026dc , 0x00000005 
+ 00009945  0x0000123b increase  0xffffffff , 0x00000002 
+ 00009946  0x0000123c set1  0x00000027 , 0x00000002 
+ 00009947  0x0000123d rtn 
+ 00009948  0x00001240 setarg  0x00ffffff 
+ 00009949  0x00001241 lshift16  0x0000003f , 0x0000003f 
+ 00009950  0x00001242 arg  0x0000ffff , 0x00000002 
+ 00009951  0x00001243 ior  0x00000002 , 0x00000002 
+ 00009952  0x00001244 rtn 
+ 00009953  0x00001247 copy  0x00000005 , 0x00000012 
+ 00009954  0x00001248 fetch  0x00000001 , 0x0000004d 
+ 00009955  0x00001249 increase  0xfffffffc , 0x0000003f 
+ 00009956  0x0000124a isub  0x00000002 , 0x0000003e 
+ 00009957  0x0000124b rtn  0x00000005 
+ 00009958  0x0000124c storet  0x00000002 , 0x000080c0 
+ 00009959  0x0000124d copy  0x00000012 , 0x00000005 
+ 00009960  0x0000124e rtn 
+ 00009961  0x00001251 parse  0x00000003 , 0x00000000 , 0x00000020 
+ 00009962  0x00001252 rshift32  0x0000003f , 0x0000003f 
+ 00009963  0x00001253 rshift8  0x0000003f , 0x0000003f 
+ 00009964  0x00001254 istore  0x00000004 , 0x00000005 
+ 00009965  0x00001255 copy  0x00000005 , 0x00000012 
+ 00009966  0x00001257 force  0x00000000 , 0x00000038 
+ 00009967  0x00001258 copy  0x0000003f , 0x0000002f 
+ 00009968  0x00001259 storet  0x00000002 , 0x000080c0 
+ 00009969  0x0000125a rtn 
+ 00009970  0x0000125d branch  0x000026fc 
+ 00009971  0x00001260 call  0x0000270d 
+ 00009972  0x00001261 call  0x000020cf 
+ 00009973  0x00001262 branch  0x000026af 
+ 00009974  0x00001265 call  0x00006878 
+ 00009975  0x00001266 bmark1  0x00000030 , 0x000026fa 
+ 00009976  0x00001267 set1  0x00000030 , 0x00000000 
+ 00009977  0x00001268 branch  0x000026b2 
+ 00009978  0x0000126c set0  0x00000030 , 0x00000000 
+ 00009979  0x0000126d branch  0x000026fc 
+ 00009980  0x00001270 bpatchx  0x0000002a , 0x00004025 
+ 00009981  0x00001271 call  0x000072cd 
+ 00009982  0x00001272 branch  0x000020cf 
+ 00009983  0x00001275 bmark1  0x0000002f , 0x00002705 
+ 00009984  0x00001276 bmark1  0x0000002d , 0x00002709 
+ 00009985  0x00001277 fetch  0x00000002 , 0x00000046 
+ 00009986  0x00001278 copy  0x0000003f , 0x00000029 
+ 00009987  0x00001279 copy  0x00000021 , 0x00000028 
+ 00009988  0x0000127a rtn 
+ 00009989  0x0000127e fetch  0x00000002 , 0x0000004a 
+ 00009990  0x0000127f copy  0x0000003f , 0x00000029 
+ 00009991  0x00001280 add  0x00000021 , 0x00000001 , 0x00000028 
+ 00009992  0x00001281 rtn 
+ 00009993  0x00001284 fetch  0x00000002 , 0x00000048 
+ 00009994  0x00001285 copy  0x0000003f , 0x00000029 
+ 00009995  0x00001286 copy  0x00000021 , 0x00000028 
+ 00009996  0x00001287 rtn 
+ 00009997  0x0000128b fetch  0x00000001 , 0x0000004d 
+ 00009998  0x0000128c add  0x0000003f , 0x00000005 , 0x00000002 
+ 00009999  0x0000128d lshift3  0x00000002 , 0x00000002 
+ 00010000  0x0000128e fetch  0x00000001 , 0x0000019d 
+ 00010001  0x0000128f bmark1  0x0000002f , 0x00002714 
+ 00010002  0x00001290 bbit1  0x00000000 , 0x00002716 
+ 00010003  0x00001291 bbit1  0x00000001 , 0x00002717 
+ 00010004  0x00001293 branch  0x00002719 , 0x0000003c 
+ 00010005  0x00001294 branch  0x0000271c 
+ 00010006  0x00001297 branch  0x00002721 
+ 00010007  0x0000129a rshift  0x00000002 , 0x00000002 
+ 00010008  0x0000129b branch  0x00002721 
+ 00010009  0x0000129e add  0x00000002 , 0x00000003 , 0x00000002 
+ 00010010  0x0000129f lshift  0x00000002 , 0x00000002 
+ 00010011  0x000012a0 branch  0x0000271e 
+ 00010012  0x000012a3 add  0x00000002 , 0x00000003 , 0x00000002 
+ 00010013  0x000012a4 lshift3  0x00000002 , 0x00000002 
+ 00010014  0x000012a6 setarg  0x00000028 
+ 00010015  0x000012a7 iadd  0x00000002 , 0x00000002 
+ 00010016  0x000012a8 branch  0x00002721 
+ 00010017  0x000012ab fetch  0x00000001 , 0x00004148 
+ 00010018  0x000012ac imul32  0x00000002 , 0x00000002 
+ 00010019  0x000012ad arg  0x00004e20 , 0x00000011 
+ 00010020  0x000012ae imul32  0x00000011 , 0x0000003f 
+ 00010021  0x000012af isub  0x00000002 , 0x00000002 
+ 00010022  0x000012b0 copy  0x0000001b , 0x0000003f 
+ 00010023  0x000012b1 isub  0x00000002 , 0x0000001b 
+ 00010024  0x000012b2 rtn 
+ 00010025  0x000012b5 call  0x00002741 
+ 00010026  0x000012b6 fetcht  0x00000001 , 0x00000008 
+ 00010027  0x000012b7 call  0x0000216f 
+ 00010028  0x000012b8 call  0x000021a6 
+ 00010029  0x000012b9 enable  0x00000010 
+ 00010030  0x000012ba arg  0x0000157c , 0x0000000b 
+ 00010031  0x000012bb branch  0x00002659 
+ 00010032  0x000012bf bpatchx  0x0000002b , 0x00004025 
+ 00010033  0x000012c0 fetch  0x00000001 , 0x0000019e 
+ 00010034  0x000012c1 call  0x000025a4 
+ 00010035  0x000012c2 call  0x00002741 
+ 00010036  0x000012c4 fetch  0x00000001 , 0x0000019d 
+ 00010037  0x000012c5 call  0x000025a4 
+ 00010038  0x000012c7 fetcht  0x00000001 , 0x00000008 
+ 00010039  0x000012c8 call  0x0000216f 
+ 00010040  0x000012c9 call  0x000021a6 
+ 00010041  0x000012ca enable  0x00000010 
+ 00010042  0x000012cb arg  0x0000157c , 0x0000000b 
+ 00010043  0x000012cc bmark0  0x0000002f , 0x00002659 
+ 00010044  0x000012cd arg  0x00002134 , 0x0000000b 
+ 00010045  0x000012ce branch  0x00002659 
+ 00010046  0x000012d1 bpatchx  0x0000002c , 0x00004025 
+ 00010047  0x000012d2 call  0x00002741 
+ 00010048  0x000012d3 branch  0x000020cf 
+ 00010049  0x000012d6 bpatchx  0x0000002d , 0x00004025 
+ 00010050  0x000012d7 call  0x000025c2 
+ 00010051  0x000012d8 call  0x000025d1 
+ 00010052  0x000012d9 call  0x0000687d 
+ 00010053  0x000012da set1  0x00000000 , 0x00000015 
+ 00010054  0x000012db enable  0x0000001d 
+ 00010055  0x000012dc enable  0x00000020 
+ 00010056  0x000012dd disable  0x00000021 
+ 00010057  0x000012de call  0x00002648 
+ 00010058  0x000012df disable  0x0000003a 
+ 00010059  0x000012e0 bmark1  0x0000002f , 0x00002784 
+ 00010060  0x000012e1 bmark1  0x0000002d , 0x00002796 
+ 00010061  0x000012e2 rshift16  0x00000009 , 0x0000003f 
+ 00010062  0x000012e3 rshift8  0x0000003f , 0x0000003f 
+ 00010063  0x000012e4 rshift4  0x0000003f , 0x0000003f 
+ 00010064  0x000012e5 inject  0x00000003 , 0x00000028 
+ 00010065  0x000012e7 enable  0x00000007 
+ 00010066  0x000012e8 enable  0x00000009 
+ 00010067  0x000012e9 bpatchx  0x0000002e , 0x00004025 
+ 00010068  0x000012ea fetch  0x00000001 , 0x00004169 
+ 00010069  0x000012eb inject  0x00000003 , 0x00000008 
+ 00010070  0x000012ec ifetch  0x00000001 , 0x00000006 
+ 00010071  0x000012ed copy  0x0000003f , 0x00000039 
+ 00010072  0x000012ee inject  0x00000003 , 0x00000008 
+ 00010073  0x000012ef sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00010074  0x000012f0 branch  0x00002762 , 0x00000005 
+ 00010075  0x000012f2 fetch  0x00000001 , 0x0000800a 
+ 00010076  0x000012f3 branch  0x0000275e , 0x00000034 
+ 00010077  0x000012f4 bmark1  0x00000032 , 0x00002779 
+ 00010078  0x000012f6 arg  0x0000416b , 0x00000006 
+ 00010079  0x000012f8 ifetch  0x00000001 , 0x00000006 
+ 00010080  0x000012f9 inject  0x00000003 , 0x00000008 
+ 00010081  0x000012fa loop  0x0000275f 
+ 00010082  0x000012fd enable  0x00000008 
+ 00010083  0x000012fe inject  0x00000003 , 0x00000018 
+ 00010084  0x000012ff disable  0x00000008 
+ 00010085  0x00001300 bmark0  0x0000002f , 0x00002769 
+ 00010086  0x00001301 disable  0x00000007 
+ 00010087  0x00001302 setarg  0x00000000 
+ 00010088  0x00001303 inject  0x00000003 , 0x00000003 
+ 00010089  0x00001305 until  0x0000003e , 0x00000027 
+ 00010090  0x00001306 nop  0x00000064 
+ 00010091  0x00001307 bpatchx  0x0000002f , 0x00004025 
+ 00010092  0x00001308 disable  0x0000001d 
+ 00010093  0x00001309 disable  0x00000038 
+ 00010094  0x0000130a call  0x00002160 
+ 00010095  0x0000130b call  0x0000687b 
+ 00010096  0x0000130d fetch  0x00000001 , 0x00004169 
+ 00010097  0x0000130e and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00010098  0x0000130f rtnne  0x00000003 
+ 00010099  0x00001310 fetch  0x00000001 , 0x000042fd 
+ 00010100  0x00001311 beq  0x00000002 , 0x0000285c 
+ 00010101  0x00001312 rtnne  0x00000005 
+ 00010102  0x00001313 fetch  0x00000001 , 0x0000416b 
+ 00010103  0x00001314 beq  0x00000005 , 0x00002857 
+ 00010104  0x00001315 rtn 
+ 00010105  0x00001319 increase  0xfffffffc , 0x00000039 
+ 00010106  0x0000131a copy  0x00000039 , 0x00000002 
+ 00010107  0x0000131b call  0x000072b8 
+ 00010108  0x0000131c arg  0x0000416b , 0x00000006 
+ 00010109  0x0000131e ifetch  0x00000001 , 0x00000006 
+ 00010110  0x0000131f inject  0x00000003 , 0x00000008 
+ 00010111  0x00001320 loop  0x0000277d 
+ 00010112  0x00001321 call  0x000072bd 
+ 00010113  0x00001322 copy  0x0000002f , 0x0000003f 
+ 00010114  0x00001323 inject  0x00000003 , 0x00000020 
+ 00010115  0x00001324 branch  0x00002762 
+ 00010116  0x00001327 arg  0x0000000a , 0x00000039 
+ 00010117  0x00001329 setarg  0x0000003c 
+ 00010118  0x0000132a inject  0x00000003 , 0x00000008 
+ 00010119  0x0000132b loop  0x00002785 
+ 00010120  0x0000132c disable  0x0000001d 
+ 00010121  0x0000132d enable  0x00000038 
+ 00010122  0x0000132e rshift16  0x00000009 , 0x0000003f 
+ 00010123  0x0000132f rshift16  0x0000003f , 0x0000003f 
+ 00010124  0x00001330 rshift4  0x0000003f , 0x0000003f 
+ 00010125  0x00001331 inject  0x00000003 , 0x00000020 
+ 00010126  0x00001332 bmark1  0x0000002e , 0x00002793 
+ 00010127  0x00001334 setarg  0x00000001 
+ 00010128  0x00001335 inject  0x00000003 , 0x00000005 
+ 00010129  0x00001336 enable  0x0000003a 
+ 00010130  0x00001337 branch  0x00002751 
+ 00010131  0x0000133a setarg  0x00000000 
+ 00010132  0x0000133b inject  0x00000003 , 0x00000005 
+ 00010133  0x0000133c branch  0x00002751 
+ 00010134  0x0000133f fetch  0x00000001 , 0x00004148 
+ 00010135  0x00001340 fetcht  0x00000001 , 0x00004168 
+ 00010136  0x00001341 iadd  0x00000002 , 0x0000003f 
+ 00010137  0x00001342 call  0x0000235c 
+ 00010138  0x00001343 rshift16  0x00000009 , 0x0000003f 
+ 00010139  0x00001344 rshift8  0x0000003f , 0x0000003f 
+ 00010140  0x00001345 rshift4  0x0000003f , 0x00000002 
+ 00010141  0x00001346 copy  0x00000002 , 0x0000003f 
+ 00010142  0x00001347 inject  0x00000003 , 0x00000008 
+ 00010143  0x00001348 copy  0x00000002 , 0x0000003f 
+ 00010144  0x00001349 inject  0x00000003 , 0x00000028 
+ 00010145  0x0000134a branch  0x00002751 
+ 00010146  0x0000134e arg  0x000027a6 , 0x00000013 
+ 00010147  0x0000134f arg  0x000027bc , 0x00000012 
+ 00010148  0x00001350 arg  0x00000005 , 0x00000007 
+ 00010149  0x00001351 branch  0x000027fb 
+ 00010150  0x00001354 add  0x00000011 , 0x00000004 , 0x00000006 
+ 00010151  0x00001355 ifetcht  0x00000004 , 0x00000006 
+ 00010152  0x00001356 add  0x00000011 , 0x00000037 , 0x00000006 
+ 00010153  0x00001357 ifetch  0x00000001 , 0x00000006 
+ 00010154  0x00001358 add  0x00000011 , 0x0000002b , 0x00000005 
+ 00010155  0x00001359 istore  0x00000001 , 0x00000005 
+ 00010156  0x0000135a ifetch  0x00000002 , 0x00000006 
+ 00010157  0x0000135b lshift2  0x0000003f , 0x0000003f 
+ 00010158  0x0000135c iadd  0x00000002 , 0x0000000b 
+ 00010159  0x0000135d add  0x00000011 , 0x00000004 , 0x00000005 
+ 00010160  0x0000135e deposit  0x0000000b 
+ 00010161  0x0000135f istore  0x00000004 , 0x00000005 
+ 00010162  0x00001360 ifetch  0x00000002 , 0x00000006 
+ 00010163  0x00001361 lshift2  0x0000003f , 0x0000003f 
+ 00010164  0x00001362 add  0x00000011 , 0x00000002 , 0x00000005 
+ 00010165  0x00001363 istore  0x00000002 , 0x00000005 
+ 00010166  0x00001364 ifetch  0x00000002 , 0x00000006 
+ 00010167  0x00001365 add  0x00000011 , 0x0000002c , 0x00000005 
+ 00010168  0x00001366 istore  0x00000002 , 0x00000005 
+ 00010169  0x00001367 ifetch  0x00000002 , 0x00000006 
+ 00010170  0x00001368 store  0x00000002 , 0x000042f5 
+ 00010171  0x00001369 branch  0x00002938 
+ 00010172  0x0000136c ifetch  0x00000001 , 0x00000011 
+ 00010173  0x0000136d set0  0x00000003 , 0x0000003f 
+ 00010174  0x0000136e istore  0x00000001 , 0x00000011 
+ 00010175  0x0000136f storer  0x00000011 , 0x00000002 , 0x00000684 
+ 00010176  0x00001370 jam  0x00000044 , 0x0000066f 
+ 00010177  0x00001371 call  0x0000782b 
+ 00010178  0x00001372 fetchr  0x00000011 , 0x00000002 , 0x00000684 
+ 00010179  0x00001373 rtn 
+ 00010180  0x00001376 arg  0x00000000 , 0x00000013 
+ 00010181  0x00001377 arg  0x000027c8 , 0x00000012 
+ 00010182  0x00001378 arg  0x00000006 , 0x00000007 
+ 00010183  0x00001379 branch  0x000027fb 
+ 00010184  0x0000137c add  0x00000011 , 0x00000037 , 0x00000006 
+ 00010185  0x0000137d ifetch  0x00000005 , 0x00000006 
+ 00010186  0x0000137e add  0x00000011 , 0x00000030 , 0x00000005 
+ 00010187  0x0000137f istore  0x00000005 , 0x00000005 
+ 00010188  0x00001380 branch  0x00002624 
+ 00010189  0x00001384 arg  0x00000000 , 0x00000013 
+ 00010190  0x00001385 arg  0x000027d1 , 0x00000012 
+ 00010191  0x00001386 arg  0x00000007 , 0x00000007 
+ 00010192  0x00001387 branch  0x000027fb 
+ 00010193  0x0000138a add  0x00000011 , 0x00000037 , 0x00000006 
+ 00010194  0x0000138b ifetch  0x00000001 , 0x00000006 
+ 00010195  0x0000138c call  0x000027de 
+ 00010196  0x0000138d istore  0x00000001 , 0x00000005 
+ 00010197  0x0000138e add  0x00000011 , 0x00000038 , 0x00000006 
+ 00010198  0x0000138f ifetch  0x00000001 , 0x00000006 
+ 00010199  0x00001390 call  0x000027ec 
+ 00010200  0x00001391 istore  0x00000001 , 0x00000005 
+ 00010201  0x00001392 storer  0x00000011 , 0x00000002 , 0x00000684 
+ 00010202  0x00001393 jam  0x00000042 , 0x0000066f 
+ 00010203  0x00001394 call  0x0000782b 
+ 00010204  0x00001395 fetchr  0x00000011 , 0x00000002 , 0x00000684 
+ 00010205  0x00001396 rtn 
+ 00010206  0x00001399 call  0x000027e6 , 0x00000034 
+ 00010207  0x0000139a add  0x00000011 , 0x00000035 , 0x00000005 
+ 00010208  0x0000139b nrtn  0x00000029 
+ 00010209  0x0000139c fetcht  0x00000001 , 0x000043b6 
+ 00010210  0x0000139d isolate1  0x00000007 , 0x00000002 
+ 00010211  0x0000139e setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00010212  0x0000139f add  0x00000011 , 0x00000036 , 0x00000005 
+ 00010213  0x000013a0 rtn 
+ 00010214  0x000013a3 add  0x00000011 , 0x00000035 , 0x00000006 
+ 00010215  0x000013a4 ifetch  0x00000001 , 0x00000006 
+ 00010216  0x000013a5 nrtn  0x00000029 
+ 00010217  0x000013a6 add  0x00000011 , 0x00000036 , 0x00000006 
+ 00010218  0x000013a7 ifetch  0x00000001 , 0x00000006 
+ 00010219  0x000013a8 rtn 
+ 00010220  0x000013ab call  0x000027f5 , 0x00000034 
+ 00010221  0x000013ac fetcht  0x00000001 , 0x000043b6 
+ 00010222  0x000013ad isolate1  0x00000007 , 0x00000002 
+ 00010223  0x000013ae setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00010224  0x000013af add  0x00000011 , 0x00000036 , 0x00000005 
+ 00010225  0x000013b0 nrtn  0x00000029 
+ 00010226  0x000013b1 set0  0x00000007 , 0x0000003f 
+ 00010227  0x000013b2 add  0x00000011 , 0x00000035 , 0x00000005 
+ 00010228  0x000013b3 rtn 
+ 00010229  0x000013b6 add  0x00000011 , 0x00000036 , 0x00000006 
+ 00010230  0x000013b7 ifetch  0x00000001 , 0x00000006 
+ 00010231  0x000013b8 nrtn  0x00000029 
+ 00010232  0x000013b9 add  0x00000011 , 0x00000035 , 0x00000006 
+ 00010233  0x000013ba ifetch  0x00000001 , 0x00000006 
+ 00010234  0x000013bb rtn 
+ 00010235  0x000013c1 bpatchx  0x00000030 , 0x00004026 
+ 00010236  0x000013c2 ifetch  0x00000001 , 0x00000011 
+ 00010237  0x000013c3 qisolate0  0x0000003f 
+ 00010238  0x000013c4 rtn  0x00000001 
+ 00010239  0x000013c5 add  0x00000011 , 0x0000001a , 0x00000006 
+ 00010240  0x000013c6 ifetcht  0x00000002 , 0x00000006 
+ 00010241  0x000013c7 add  0x00000011 , 0x00000020 , 0x00000006 
+ 00010242  0x000013c8 ifetch  0x00000002 , 0x00000006 
+ 00010243  0x000013ca isub  0x00000002 , 0x0000003f 
+ 00010244  0x000013cb branch  0x0000280b , 0x00000005 
+ 00010245  0x000013cc nbranch  0x00002810 , 0x00000002 
+ 00010246  0x000013cd sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00010247  0x000013ce branch  0x00002809 , 0x00000005 
+ 00010248  0x000013cf rtn 
+ 00010249  0x000013d2 copy  0x00000013 , 0x0000003f 
+ 00010250  0x000013d3 branch  0x00007d79 
+ 00010251  0x000013d6 ifetch  0x00000001 , 0x00000011 
+ 00010252  0x000013d7 qset0  0x0000003f 
+ 00010253  0x000013d8 istore  0x00000001 , 0x00000011 
+ 00010254  0x000013d9 copy  0x00000012 , 0x0000003f 
+ 00010255  0x000013da branch  0x00007d79 
+ 00010256  0x000013dd add  0x00000011 , 0x0000001a , 0x00000006 
+ 00010257  0x000013de ifetch  0x00000002 , 0x00000006 
+ 00010258  0x000013df add  0x00000011 , 0x00000020 , 0x00000006 
+ 00010259  0x000013e0 ifetch  0x00000002 , 0x00000006 
+ 00010260  0x000013e1 isub  0x00000002 , 0x0000003f 
+ 00010261  0x000013e2 arg  0x0000ffff , 0x00000002 
+ 00010262  0x000013e3 isub  0x00000002 , 0x0000003e 
+ 00010263  0x000013e4 branch  0x0000280b , 0x00000005 
+ 00010264  0x000013e5 arg  0x0000f000 , 0x00000002 
+ 00010265  0x000013e6 isub  0x00000002 , 0x0000003e 
+ 00010266  0x000013e7 nbranch  0x0000280b , 0x00000002 
+ 00010267  0x000013e8 rtn 
+ 00010268  0x000013ec fetcht  0x00000001 , 0x0000017f 
+ 00010269  0x000013ed fetch  0x00000001 , 0x0000004c 
+ 00010270  0x000013f0 rshift  0x0000003f , 0x0000003f 
+ 00010271  0x000013f1 ixor  0x00000002 , 0x0000003f 
+ 00010272  0x000013f2 isolate1  0x00000002 , 0x0000003f 
+ 00010273  0x000013f3 setflag  0x00000001 , 0x0000000f , 0x00000000 
+ 00010274  0x000013f4 rtn 
+ 00010275  0x000013f8 bpatchx  0x00000031 , 0x00004026 
+ 00010276  0x000013f9 call  0x00002935 
+ 00010277  0x000013fa rtnmark1  0x00000030 
+ 00010278  0x000013fb call  0x0000284a 
+ 00010279  0x000013fc fetch  0x00000001 , 0x0000004c 
+ 00010280  0x000013fd isolate1  0x00000004 , 0x0000003f 
+ 00010281  0x000013fe setflag  0x00000001 , 0x0000002a , 0x00000000 
+ 00010282  0x000013ff rshift  0x0000003f , 0x0000003f 
+ 00010283  0x00001400 ixor  0x00000002 , 0x0000003f 
+ 00010284  0x00001401 isolate1  0x00000002 , 0x0000003f 
+ 00010285  0x00001402 setflag  0x00000001 , 0x0000000f , 0x00000000 
+ 00010286  0x00001403 rtnmark1  0x0000000f 
+ 00010287  0x00001404 fetch  0x00000001 , 0x0000004d 
+ 00010288  0x00001405 branch  0x0000283c , 0x00000034 
+ 00010289  0x00001406 fetch  0x00000001 , 0x00000168 
+ 00010290  0x00001407 bbit0  0x00000004 , 0x0000283c 
+ 00010291  0x00001408 fetcht  0x00000004 , 0x00000154 
+ 00010292  0x00001409 fetch  0x00000004 , 0x0000445a 
+ 00010293  0x0000140a isub  0x00000002 , 0x0000003e 
+ 00010294  0x0000140b branch  0x0000235a , 0x00000005 
+ 00010295  0x0000140c storet  0x00000004 , 0x0000445a 
+ 00010296  0x0000140d fetch  0x00000005 , 0x00004455 
+ 00010297  0x0000140e increase  0x00000001 , 0x0000003f 
+ 00010298  0x0000140f set1  0x00000027 , 0x0000003f 
+ 00010299  0x00001410 store  0x00000005 , 0x00004455 
+ 00010300  0x00001413 fetcht  0x00000001 , 0x0000017f 
+ 00010301  0x00001414 setflip  0x00000002 , 0x00000002 
+ 00010302  0x00001415 storet  0x00000001 , 0x0000017f 
+ 00010303  0x00001416 fetch  0x00000001 , 0x00004321 
+ 00010304  0x00001417 rtnbit0  0x00000006 
+ 00010305  0x00001418 bpatchx  0x00000032 , 0x00004026 
+ 00010306  0x00001419 fetch  0x00000001 , 0x0000004d 
+ 00010307  0x0000141a rtn  0x00000034 
+ 00010308  0x0000141b fetch  0x00000001 , 0x0000004c 
+ 00010309  0x0000141c compare  0x00000001 , 0x0000003f , 0x00000003 
+ 00010310  0x0000141d branch  0x00002e65 , 0x00000001 
+ 00010311  0x0000141e compare  0x00000002 , 0x0000003f , 0x00000003 
+ 00010312  0x0000141f branch  0x00002e53 , 0x00000001 
+ 00010313  0x00001420 rtn 
+ 00010314  0x00001424 bpatchx  0x00000033 , 0x00004026 
+ 00010315  0x00001425 fetcht  0x00000001 , 0x0000017f 
+ 00010316  0x00001426 isolate0  0x00000005 , 0x00000002 
+ 00010317  0x00001427 rtn  0x00000001 
+ 00010318  0x00001428 fetch  0x00000001 , 0x0000004c 
+ 00010319  0x00001429 lshift  0x0000003f , 0x0000003f 
+ 00010320  0x0000142a ixor  0x00000002 , 0x0000003f 
+ 00010321  0x0000142b rtnbit0  0x00000003 
+ 00010322  0x0000142c set0  0x00000005 , 0x00000002 
+ 00010323  0x0000142d setflip  0x00000003 , 0x00000002 
+ 00010324  0x0000142e storet  0x00000001 , 0x0000017f 
+ 00010325  0x0000142f compare  0x00000003 , 0x00000002 , 0x00000003 
+ 00010326  0x00001431 rtn 
+ 00010327  0x00001435 fetch  0x00000001 , 0x00000168 
+ 00010328  0x00001436 set1  0x00000004 , 0x0000003f 
+ 00010329  0x00001437 store  0x00000001 , 0x00000168 
+ 00010330  0x00001438 set1  0x00000032 , 0x00000000 
+ 00010331  0x00001439 rtn 
+ 00010332  0x0000143c bpatchx  0x00000034 , 0x00004026 
+ 00010333  0x0000143d jam  0x00000000 , 0x000042fd 
+ 00010334  0x0000143e arg  0x00000000 , 0x0000003f 
+ 00010335  0x0000143f store  0x00000004 , 0x0000445a 
+ 00010336  0x00001440 store  0x00000005 , 0x00004450 
+ 00010337  0x00001441 set1  0x00000027 , 0x0000003f 
+ 00010338  0x00001442 store  0x00000005 , 0x00004455 
+ 00010339  0x00001443 fetch  0x00000001 , 0x00000168 
+ 00010340  0x00001444 set0  0x00000004 , 0x0000003f 
+ 00010341  0x00001445 store  0x00000001 , 0x00000168 
+ 00010342  0x00001446 set0  0x00000032 , 0x00000000 
+ 00010343  0x00001447 rtn 
+ 00010344  0x0000144d arg  0x00000001 , 0x00000011 
+ 00010345  0x0000144e fetch  0x00000001 , 0x0000004c 
+ 00010346  0x0000144f rtnbit1  0x00000006 
+ 00010347  0x00001450 arg  0x00000000 , 0x00000011 
+ 00010348  0x00001451 rtn 
+ 00010349  0x00001455 copy  0x00000006 , 0x00000005 
+ 00010350  0x00001456 fetcht  0x00000002 , 0x000043b8 
+ 00010351  0x00001457 copy  0x00000005 , 0x00000006 
+ 00010352  0x00001458 rtn 
+ 00010353  0x0000145c bpatchx  0x00000035 , 0x00004026 
+ 00010354  0x0000145d fetch  0x00000001 , 0x0000017f 
+ 00010355  0x0000145e rtnbit1  0x00000005 
+ 00010356  0x0000145f call  0x00002892 
+ 00010357  0x00001460 call  0x00002a10 
+ 00010358  0x00001461 branch  0x000028b6 , 0x00000034 
+ 00010359  0x00001462 ifetch  0x00000002 , 0x00000006 
+ 00010360  0x00001463 ifetcht  0x00000002 , 0x00000006 
+ 00010361  0x00001464 copy  0x00000002 , 0x00000011 
+ 00010362  0x00001465 isub  0x00000011 , 0x0000003f 
+ 00010363  0x00001466 call  0x0000286d 
+ 00010364  0x00001467 call  0x00007db0 
+ 00010365  0x00001468 copy  0x0000003f , 0x00000002 
+ 00010366  0x00001469 ifetchr  0x00000001 , 0x00000001 , 0x00000006 
+ 00010367  0x0000146a copy  0x00000011 , 0x0000003f 
+ 00010368  0x0000146b iadd  0x00000006 , 0x0000003f 
+ 00010369  0x0000146c store  0x00000002 , 0x0000068f 
+ 00010370  0x0000146d call  0x000028a6 
+ 00010371  0x0000146e call  0x000028b8 
+ 00010372  0x00001470 call  0x00002a10 
+ 00010373  0x00001471 ifetch  0x00000002 , 0x00000006 
+ 00010374  0x00001472 copy  0x0000003f , 0x00000011 
+ 00010375  0x00001473 copy  0x00000006 , 0x00000013 
+ 00010376  0x00001474 ifetcht  0x00000002 , 0x00000006 
+ 00010377  0x00001475 copy  0x00000002 , 0x00000012 
+ 00010378  0x00001476 isub  0x00000012 , 0x0000003f 
+ 00010379  0x00001477 call  0x0000286d 
+ 00010380  0x00001478 call  0x00007db0 
+ 00010381  0x00001479 iadd  0x00000012 , 0x0000003f 
+ 00010382  0x0000147a istore  0x00000002 , 0x00000013 
+ 00010383  0x0000147b isub  0x00000011 , 0x0000003e 
+ 00010384  0x0000147c nrtn  0x00000005 
+ 00010385  0x0000147d branch  0x00002a2a 
+ 00010386  0x00001481 call  0x00002899 
+ 00010387  0x00001482 rtnmark1  0x00000029 
+ 00010388  0x00001483 fetch  0x00000001 , 0x00004321 
+ 00010389  0x00001484 bbit0  0x00000002 , 0x000028a4 
+ 00010390  0x00001485 call  0x00002a14 
+ 00010391  0x00001486 branch  0x000028a4 , 0x00000034 
+ 00010392  0x00001487 branch  0x000028a2 
+ 00010393  0x0000148b call  0x00002a10 
+ 00010394  0x0000148c branch  0x000028a4 , 0x00000034 
+ 00010395  0x0000148d ifetch  0x00000002 , 0x00000006 
+ 00010396  0x0000148e ifetcht  0x00000002 , 0x00000006 
+ 00010397  0x0000148f isub  0x00000002 , 0x00000011 
+ 00010398  0x00001490 call  0x0000286d 
+ 00010399  0x00001491 copy  0x00000002 , 0x0000003f 
+ 00010400  0x00001492 isub  0x00000011 , 0x0000003e 
+ 00010401  0x00001493 branch  0x000028a4 , 0x00000002 
+ 00010402  0x00001495 set1  0x00000029 , 0x00000000 
+ 00010403  0x00001496 rtn 
+ 00010404  0x00001499 set0  0x00000029 , 0x00000000 
+ 00010405  0x0000149a rtn 
+ 00010406  0x0000149d copy  0x00000011 , 0x0000003f 
+ 00010407  0x0000149e rtn  0x00000034 
+ 00010408  0x0000149f arg  0x00000001 , 0x00000001 
+ 00010409  0x000014a0 rtn 
+ 00010410  0x000014a4 bpatchx  0x00000036 , 0x00004026 
+ 00010411  0x000014a5 increase  0x00000001 , 0x00000002 
+ 00010412  0x000014a6 call  0x00002ccf 
+ 00010413  0x000014a7 increase  0xfffffffe , 0x00000006 
+ 00010414  0x000014a8 ifetch  0x00000002 , 0x00000006 
+ 00010415  0x000014a9 arg  0x00002902 , 0x00000002 
+ 00010416  0x000014aa isub  0x00000002 , 0x0000003e 
+ 00010417  0x000014ab nrtn  0x00000005 
+ 00010418  0x000014ac increase  0x00000001 , 0x00000006 
+ 00010419  0x000014ad copy  0x00000006 , 0x00000011 
+ 00010420  0x000014ae ifetch  0x00000001 , 0x00000006 
+ 00010421  0x000014af rtn 
+ 00010422  0x000014b3 force  0x00000000 , 0x00000002 
+ 00010423  0x000014b4 force  0x00000001 , 0x00000001 
+ 00010424  0x000014b7 bpatchx  0x00000037 , 0x00004026 
+ 00010425  0x000014b8 storet  0x00000001 , 0x0000416a 
+ 00010426  0x000014b9 fetcht  0x00000001 , 0x0000017f 
+ 00010427  0x000014ba set1  0x00000005 , 0x00000002 
+ 00010428  0x000014bb and  0x00000002 , 0x000000fc , 0x0000003f 
+ 00010429  0x000014bc ior  0x00000001 , 0x0000003f 
+ 00010430  0x000014bd store  0x00000001 , 0x0000017f 
+ 00010431  0x000014be and_into  0x0000001f , 0x0000003f 
+ 00010432  0x000014bf isolate1  0x00000029 , 0x00000000 
+ 00010433  0x000014c0 setflag  0x00000001 , 0x00000004 , 0x0000003f 
+ 00010434  0x000014c1 store  0x00000001 , 0x00004169 
+ 00010435  0x000014c3 fetch  0x00000001 , 0x00004169 
+ 00010436  0x000014c4 compare  0x00000001 , 0x00000001 , 0x00000003 
+ 00010437  0x000014c5 nbranch  0x000028c8 , 0x00000001 
+ 00010438  0x000014c6 fetch  0x00000001 , 0x0000416a 
+ 00010439  0x000014c7 rtn  0x00000034 
+ 00010440  0x000014ca bmark1  0x00000032 , 0x000028ce 
+ 00010441  0x000014cb fetchr  0x00000039 , 0x00000001 , 0x0000416a 
+ 00010442  0x000014cc fetch  0x00000002 , 0x0000068f 
+ 00010443  0x000014cd copy  0x0000003f , 0x00000006 
+ 00010444  0x000014ce arg  0x0000416b , 0x00000005 
+ 00010445  0x000014cf branch  0x00007ccc 
+ 00010446  0x000014d2 call  0x00007368 
+ 00010447  0x000014d3 branch  0x0000729f 
+ 00010448  0x000014d6 arg  0x00000000 , 0x00000007 
+ 00010449  0x000014d7 branch  0x000024e7 
+ 00010450  0x000014da arg  0x00000000 , 0x00000007 
+ 00010451  0x000014db branch  0x000024eb 
+ 00010452  0x000014df bpatchx  0x00000038 , 0x00004027 
+ 00010453  0x000014e0 rtnmark1  0x0000000f 
+ 00010454  0x000014e1 rtnmark1  0x00000030 
+ 00010455  0x000014e2 fetch  0x00000001 , 0x0000004c 
+ 00010456  0x000014e3 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00010457  0x000014e4 store  0x00000001 , 0x00004334 
+ 00010458  0x000014e5 fetch  0x00000001 , 0x0000004d 
+ 00010459  0x000014e6 rtn  0x00000034 
+ 00010460  0x000014e7 setarg  0x0000004e 
+ 00010461  0x000014e8 store  0x00000002 , 0x00004339 
+ 00010462  0x000014e9 bpatchx  0x00000039 , 0x00004027 
+ 00010463  0x000014ea fetch  0x00000001 , 0x00004334 
+ 00010464  0x000014eb beq  0x00000003 , 0x0000304a 
+ 00010465  0x000014ed call  0x000028ee 
+ 00010466  0x000014ee nbranch  0x000028d0 , 0x00000028 
+ 00010467  0x000014ef call  0x000028d2 
+ 00010468  0x000014f0 setarg  0x00000000 
+ 00010469  0x000014f1 store  0x00000002 , 0x00004337 
+ 00010470  0x000014f2 fetch  0x00000002 , 0x00004339 
+ 00010471  0x000014f3 add  0x0000003f , 0x00000002 , 0x00000006 
+ 00010472  0x000014f4 bpatchx  0x0000003a , 0x00004027 
+ 00010473  0x000014f6 ifetch  0x00000002 , 0x00000006 
+ 00010474  0x000014f7 beq  0x00000004 , 0x00002b8f 
+ 00010475  0x000014f8 beq  0x00000006 , 0x00002ec8 
+ 00010476  0x000014f9 beq  0x00000005 , 0x00002e8a 
+ 00010477  0x000014fa rtn 
+ 00010478  0x000014fe fetch  0x00000001 , 0x00004334 
+ 00010479  0x000014ff beq  0x00000002 , 0x000028fd 
+ 00010480  0x00001500 beq  0x00000001 , 0x00002914 
+ 00010481  0x00001501 rtn 
+ 00010482  0x00001507 call  0x00007dba 
+ 00010483  0x00001508 arg  0x00000004 , 0x00000002 
+ 00010484  0x00001509 isub  0x0000003f , 0x0000003e 
+ 00010485  0x0000150a rtn  0x00000005 
+ 00010486  0x0000150b arg  0x00000005 , 0x00000002 
+ 00010487  0x0000150c isub  0x0000003f , 0x0000003e 
+ 00010488  0x0000150d rtn  0x00000005 
+ 00010489  0x0000150e arg  0x00000006 , 0x00000002 
+ 00010490  0x0000150f isub  0x0000003f , 0x0000003e 
+ 00010491  0x00001510 rtn  0x00000005 
+ 00010492  0x00001511 branch  0x00007dbc 
+ 00010493  0x00001515 fetch  0x00000002 , 0x00004339 
+ 00010494  0x00001516 copy  0x0000003f , 0x00000006 
+ 00010495  0x00001517 ifetch  0x00000002 , 0x00000006 
+ 00010496  0x00001518 store  0x00000002 , 0x00004335 
+ 00010497  0x00001519 ifetch  0x00000002 , 0x00000006 
+ 00010498  0x0000151a call  0x000028f2 
+ 00010499  0x0000151b nrtn  0x00000028 
+ 00010500  0x0000151c fetcht  0x00000001 , 0x0000004d 
+ 00010501  0x0000151d storet  0x00000002 , 0x00004337 
+ 00010502  0x0000151e fetch  0x00000002 , 0x00004335 
+ 00010503  0x0000151f increase  0x00000004 , 0x0000003f 
+ 00010504  0x00001520 isub  0x00000002 , 0x0000003e 
+ 00010505  0x00001521 branch  0x00007dba , 0x00000005 
+ 00010506  0x00001522 fetchr  0x00000039 , 0x00000001 , 0x0000004d 
+ 00010507  0x00001523 arg  0x00000f00 , 0x00000005 
+ 00010508  0x00001524 fetch  0x00000002 , 0x00004339 
+ 00010509  0x00001525 copy  0x0000003f , 0x00000006 
+ 00010510  0x00001526 call  0x00007ccc 
+ 00010511  0x00001527 branch  0x00007dbc 
+ 00010512  0x0000152d call  0x00007dba 
+ 00010513  0x0000152e fetch  0x00000002 , 0x00004337 
+ 00010514  0x0000152f nrtn  0x00000034 
+ 00010515  0x00001530 branch  0x00007dbc 
+ 00010516  0x00001533 call  0x00002910 
+ 00010517  0x00001534 nrtn  0x00000028 
+ 00010518  0x00001535 fetch  0x00000002 , 0x00004337 
+ 00010519  0x00001536 arg  0x00000f00 , 0x00000005 
+ 00010520  0x00001537 iadd  0x00000005 , 0x00000011 
+ 00010521  0x00001538 fetcht  0x00000001 , 0x0000004d 
+ 00010522  0x00001539 iadd  0x00000002 , 0x0000003f 
+ 00010523  0x0000153a store  0x00000002 , 0x00004337 
+ 00010524  0x0000153b fetchr  0x00000039 , 0x00000001 , 0x0000004d 
+ 00010525  0x0000153c copy  0x00000011 , 0x00000005 
+ 00010526  0x0000153d fetch  0x00000002 , 0x00004339 
+ 00010527  0x0000153e copy  0x0000003f , 0x00000006 
+ 00010528  0x0000153f call  0x00007ccc 
+ 00010529  0x00001540 setarg  0x00000f00 
+ 00010530  0x00001541 store  0x00000002 , 0x00004339 
+ 00010531  0x00001542 fetch  0x00000002 , 0x00004335 
+ 00010532  0x00001543 increase  0x00000004 , 0x0000003f 
+ 00010533  0x00001544 fetcht  0x00000002 , 0x00004337 
+ 00010534  0x00001545 isub  0x00000002 , 0x0000003e 
+ 00010535  0x00001546 branch  0x00007dba , 0x00000005 
+ 00010536  0x00001547 branch  0x00007dbc 
+ 00010537  0x0000154d fetch  0x00000002 , 0x000043df 
+ 00010538  0x0000154e branch  0x00007d79 
+ 00010539  0x00001551 bpatchx  0x0000003b , 0x00004027 
+ 00010540  0x00001552 fetcht  0x00000004 , 0x00000184 
+ 00010541  0x00001553 call  0x00002356 
+ 00010542  0x00001554 isub  0x00000002 , 0x0000000b 
+ 00010543  0x00001555 deposit  0x0000000b 
+ 00010544  0x00001556 fetcht  0x00000002 , 0x00000196 
+ 00010545  0x00001557 lshift4  0x00000002 , 0x00000002 
+ 00010546  0x00001558 lshift  0x00000002 , 0x00000002 
+ 00010547  0x00001559 isub  0x00000002 , 0x0000003f 
+ 00010548  0x0000155a rtn 
+ 00010549  0x0000155d call  0x00002356 
+ 00010550  0x0000155e store  0x00000004 , 0x00000184 
+ 00010551  0x0000155f rtn 
+ 00010552  0x00001564 bpatchx  0x0000003c , 0x00004027 
+ 00010553  0x00001565 add  0x00000011 , 0x00000050 , 0x00000006 
+ 00010554  0x00001566 ifetch  0x00000001 , 0x00000006 
+ 00010555  0x00001567 call  0x000025eb 
+ 00010556  0x00001568 add  0x00000011 , 0x00000002 , 0x00000006 
+ 00010557  0x00001569 ifetch  0x00000002 , 0x00000006 
+ 00010558  0x0000156a imul32  0x00000002 , 0x0000003f 
+ 00010559  0x0000156b fetcht  0x00000002 , 0x00000044 
+ 00010560  0x0000156c imul32  0x00000002 , 0x0000003f 
+ 00010561  0x0000156d arg  0x000f4240 , 0x00000002 
+ 00010562  0x0000156e idiv  0x00000002 
+ 00010563  0x0000156f arg  0x00000682 , 0x00000002 
+ 00010564  0x00001570 fetch  0x00000001 , 0x00004148 
+ 00010565  0x00001571 imul32  0x00000002 , 0x00000002 
+ 00010566  0x00001572 add  0x00000011 , 0x0000002b , 0x00000006 
+ 00010567  0x00001573 ifetch  0x00000001 , 0x00000006 
+ 00010568  0x00001574 imul32  0x00000002 , 0x0000003f 
+ 00010569  0x00001575 iadd  0x00000002 , 0x0000003f 
+ 00010570  0x00001576 store  0x00000004 , 0x0000431d 
+ 00010571  0x00001577 fetch  0x00000002 , 0x0000409a 
+ 00010572  0x00001578 call  0x00007d62 
+ 00010573  0x00001579 quotient  0x00000002 
+ 00010574  0x0000157a iadd  0x00000002 , 0x0000003f 
+ 00010575  0x0000157b add  0x00000011 , 0x0000000e , 0x00000005 
+ 00010576  0x0000157c istore  0x00000002 , 0x00000005 
+ 00010577  0x0000157d rtn 
+ 00010578  0x00001583 bpatchx  0x0000003d , 0x00004027 
+ 00010579  0x00001584 call  0x00002955 
+ 00010580  0x00001585 branch  0x00002969 
+ 00010581  0x00001588 jam  0x00000002 , 0x000006b5 
+ 00010582  0x00001589 arg  0x00002a00 , 0x00000002 
+ 00010583  0x0000158a storet  0x00000002 , 0x000006b6 
+ 00010584  0x0000158b call  0x00002ce0 
+ 00010585  0x0000158c rtn  0x00000034 
+ 00010586  0x0000158d ifetch  0x00000001 , 0x00000006 
+ 00010587  0x0000158e copy  0x00000006 , 0x00000005 
+ 00010588  0x0000158f fetcht  0x00000001 , 0x0000426b 
+ 00010589  0x00001590 copy  0x00000002 , 0x00000039 
+ 00010590  0x00001591 isub  0x00000002 , 0x0000003e 
+ 00010591  0x00001592 nbranch  0x00002966 , 0x00000002 
+ 00010592  0x00001593 isub  0x00000002 , 0x00000002 
+ 00010593  0x00001594 arg  0x0000426c , 0x00000006 
+ 00010594  0x00001595 call  0x00007ccc 
+ 00010595  0x00001596 copy  0x00000002 , 0x00000039 
+ 00010596  0x00001597 ncall  0x000029a1 , 0x00000005 
+ 00010597  0x00001598 rtn 
+ 00010598  0x0000159a copy  0x0000003f , 0x00000039 
+ 00010599  0x0000159b arg  0x0000426c , 0x00000006 
+ 00010600  0x0000159c branch  0x00007ccc 
+ 00010601  0x000015a0 arg  0x00004368 , 0x00000013 
+ 00010602  0x000015a1 arg  0x00004349 , 0x00000011 
+ 00010603  0x000015a2 call  0x00002976 
+ 00010604  0x000015a3 setarg  0x00000000 
+ 00010605  0x000015a4 setflag  0x00000028 , 0x00000000 , 0x0000003f 
+ 00010606  0x000015a5 store  0x00000001 , 0x00000670 
+ 00010607  0x000015a6 arg  0x00004388 , 0x00000013 
+ 00010608  0x000015a7 arg  0x00004369 , 0x00000011 
+ 00010609  0x000015a8 call  0x00002976 
+ 00010610  0x000015a9 rtn  0x00000028 
+ 00010611  0x000015aa fetch  0x00000001 , 0x00000670 
+ 00010612  0x000015ab branch  0x0000235a , 0x00000034 
+ 00010613  0x000015ac rtn 
+ 00010614  0x000015b0 bpatchx  0x0000003e , 0x00004027 
+ 00010615  0x000015b1 call  0x00007dba 
+ 00010616  0x000015b2 call  0x00007ca6 
+ 00010617  0x000015b3 arg  0x00000000 , 0x00000012 
+ 00010618  0x000015b4 arg  0x000006a2 , 0x00000005 
+ 00010619  0x000015b5 call  0x00002990 
+ 00010620  0x000015b6 fetch  0x00000001 , 0x0000426b 
+ 00010621  0x000015b7 add  0x0000003f , 0x00000001 , 0x00000002 
+ 00010622  0x000015b8 iadd  0x00000012 , 0x00000011 
+ 00010623  0x000015b9 increase  0x00000002 , 0x00000011 
+ 00010624  0x000015ba sub  0x00000011 , 0x0000001f , 0x0000003e 
+ 00010625  0x000015bb nbranch  0x0000298e , 0x00000002 
+ 00010626  0x000015bc istoret  0x00000001 , 0x00000005 
+ 00010627  0x000015bd arg  0x00000009 , 0x00000002 
+ 00010628  0x000015be istoret  0x00000001 , 0x00000005 
+ 00010629  0x000015bf iforce  0x00000039 
+ 00010630  0x000015c0 call  0x00007ccc 
+ 00010631  0x000015c1 copy  0x00000011 , 0x00000012 
+ 00010632  0x000015c3 deposit  0x00000012 
+ 00010633  0x000015c4 store  0x00000001 , 0x000006a1 
+ 00010634  0x000015c5 arg  0x000006a1 , 0x00000006 
+ 00010635  0x000015c6 setarg  0xffffffe0 
+ 00010636  0x000015c7 iadd  0x00000013 , 0x00000005 
+ 00010637  0x000015c8 branch  0x00007c8d 
+ 00010638  0x000015cb call  0x00007dbc 
+ 00010639  0x000015cc branch  0x00002988 
+ 00010640  0x000015cf ifetch  0x00000001 , 0x00000011 
+ 00010641  0x000015d0 rtn  0x00000034 
+ 00010642  0x000015d1 pincrease  0x00000001 
+ 00010643  0x000015d2 ifetcht  0x00000001 , 0x00000006 
+ 00010644  0x000015d3 sub  0x00000002 , 0x00000009 , 0x0000003e 
+ 00010645  0x000015d4 branch  0x0000299f , 0x00000005 
+ 00010646  0x000015d5 iadd  0x00000012 , 0x00000012 
+ 00010647  0x000015d6 copy  0x00000011 , 0x00000006 
+ 00010648  0x000015d7 iforce  0x00000039 
+ 00010649  0x000015d8 call  0x00007ccc 
+ 00010650  0x000015d9 copy  0x00000006 , 0x00000011 
+ 00010651  0x000015db deposit  0x00000011 
+ 00010652  0x000015dc isub  0x00000013 , 0x0000003e 
+ 00010653  0x000015dd rtn  0x00000002 
+ 00010654  0x000015de branch  0x00002990 
+ 00010655  0x000015e1 iadd  0x00000011 , 0x00000011 
+ 00010656  0x000015e2 branch  0x0000299b 
+ 00010657  0x000015e6 setarg  0x00000020 
+ 00010658  0x000015e7 istore  0x00000001 , 0x00000005 
+ 00010659  0x000015e8 loop  0x000029a1 
+ 00010660  0x000015e9 rtn 
+ 00010661  0x000015ed bpatchx  0x0000003f , 0x00004027 
+ 00010662  0x000015ee disable  0x0000002b 
+ 00010663  0x000015ef branch  0x000029a9 , 0x0000002e 
+ 00010664  0x000015f0 nbranch  0x000029b8 , 0x0000002d 
+ 00010665  0x000015f2 call  0x000024d2 
+ 00010666  0x000015f3 fetch  0x00000002 , 0x0000409a 
+ 00010667  0x000015f4 store  0x00000002 , 0x00000176 
+ 00010668  0x000015f5 fetch  0x00000001 , 0x00004321 
+ 00010669  0x000015f6 bbit1  0x00000005 , 0x000024e0 
+ 00010670  0x000015f7 bmark1  0x0000000f , 0x000024e0 
+ 00010671  0x000015f8 fetch  0x00000001 , 0x0000004d 
+ 00010672  0x000015f9 nbranch  0x000024e0 , 0x00000034 
+ 00010673  0x000015fa fetch  0x00000001 , 0x0000416a 
+ 00010674  0x000015fb nbranch  0x000024e0 , 0x00000034 
+ 00010675  0x000015fd fetch  0x00000001 , 0x00000168 
+ 00010676  0x000015fe bbit1  0x00000005 , 0x000024e0 
+ 00010677  0x000015ff bbit1  0x00000007 , 0x000024e0 
+ 00010678  0x00001600 bbit1  0x00000006 , 0x000024e0 
+ 00010679  0x00001601 branch  0x000024c8 
+ 00010680  0x00001604 fetch  0x00000001 , 0x000040a8 
+ 00010681  0x00001605 sub  0x0000003f , 0x0000001e , 0x0000003e 
+ 00010682  0x00001606 nbranch  0x000024d7 , 0x00000002 
+ 00010683  0x00001607 fetcht  0x00000002 , 0x0000409a 
+ 00010684  0x00001608 rshift  0x00000002 , 0x00000002 
+ 00010685  0x00001609 fetch  0x00000002 , 0x00000176 
+ 00010686  0x0000160a iadd  0x00000002 , 0x0000003f 
+ 00010687  0x0000160b store  0x00000002 , 0x00000176 
+ 00010688  0x0000160c branch  0x000024d7 
+ 00010689  0x00001610 arg  0x00000000 , 0x00000007 
+ 00010690  0x00001611 branch  0x000029d6 
+ 00010691  0x00001614 arg  0x00000000 , 0x00000007 
+ 00010692  0x00001615 branch  0x000029db 
+ 00010693  0x00001618 arg  0x00000001 , 0x00000007 
+ 00010694  0x00001619 branch  0x000029d6 
+ 00010695  0x0000161c arg  0x00000001 , 0x00000007 
+ 00010696  0x0000161d branch  0x000029db 
+ 00010697  0x00001620 arg  0x00000002 , 0x00000007 
+ 00010698  0x00001621 branch  0x000029d6 
+ 00010699  0x00001624 arg  0x00000002 , 0x00000007 
+ 00010700  0x00001625 branch  0x000029db 
+ 00010701  0x00001628 arg  0x00000003 , 0x00000007 
+ 00010702  0x00001629 branch  0x000029d6 
+ 00010703  0x0000162c arg  0x00000003 , 0x00000007 
+ 00010704  0x0000162d branch  0x000029db 
+ 00010705  0x00001630 arg  0x00000004 , 0x00000007 
+ 00010706  0x00001631 branch  0x000029d6 
+ 00010707  0x00001634 arg  0x00000004 , 0x00000007 
+ 00010708  0x00001635 branch  0x000029db 
+ 00010709  0x00001638 arg  0x00000005 , 0x00000007 
+ 00010710  0x0000163b fetch  0x00000001 , 0x00004321 
+ 00010711  0x0000163c qset1  0x0000003f 
+ 00010712  0x0000163d store  0x00000001 , 0x00004321 
+ 00010713  0x0000163e rtn 
+ 00010714  0x00001642 arg  0x00000005 , 0x00000007 
+ 00010715  0x00001645 fetch  0x00000001 , 0x00004321 
+ 00010716  0x00001646 qset0  0x0000003f 
+ 00010717  0x00001647 store  0x00000001 , 0x00004321 
+ 00010718  0x00001648 rtn 
+ 00010719  0x0000164d setarg  0x00112233 
+ 00010720  0x0000164e store  0x00000003 , 0x00004322 
+ 00010721  0x0000164f setarg  0x00445566 
+ 00010722  0x00001650 istore  0x00000003 , 0x00000005 
+ 00010723  0x00001651 setarg  0x00778899 
+ 00010724  0x00001652 istore  0x00000003 , 0x00000005 
+ 00010725  0x00001653 setarg  0x00001122 
+ 00010726  0x00001654 istore  0x00000003 , 0x00000005 
+ 00010727  0x00001655 setarg  0x00334455 
+ 00010728  0x00001656 istore  0x00000003 , 0x00000005 
+ 00010729  0x00001657 setarg  0x00000066 
+ 00010730  0x00001658 istore  0x00000001 , 0x00000005 
+ 00010731  0x00001659 rtn 
+ 00010732  0x0000165d setarg  0x01000302 
+ 00010733  0x0000165e store  0x00000004 , 0x000042c4 
+ 00010734  0x0000165f setarg  0x00010010 
+ 00010735  0x00001660 store  0x00000003 , 0x000042c8 
+ 00010736  0x00001661 jam  0x00000001 , 0x000042fe 
+ 00010737  0x00001662 rtn 
+ 00010738  0x00001667 arg  0x00000000 , 0x00000011 
+ 00010739  0x00001668 arg  0x00000001 , 0x00000001 
+ 00010740  0x00001669 branch  0x00002a05 
+ 00010741  0x0000166e bpatchx  0x00000040 , 0x00004028 
+ 00010742  0x0000166f arg  0x00000003 , 0x00000001 
+ 00010743  0x00001670 call  0x00002a05 
+ 00010744  0x00001671 copy  0x00000012 , 0x0000003f 
+ 00010745  0x00001672 istore  0x00000001 , 0x00000005 
+ 00010746  0x00001673 rtn 
+ 00010747  0x00001678 bpatchx  0x00000041 , 0x00004028 
+ 00010748  0x00001679 force  0x00000002 , 0x00000001 
+ 00010749  0x0000167a increase  0x00000004 , 0x00000011 
+ 00010750  0x0000167b call  0x00002a05 
+ 00010751  0x0000167c increase  0xfffffffc , 0x00000011 
+ 00010752  0x0000167d copy  0x00000011 , 0x0000003f 
+ 00010753  0x0000167e istore  0x00000002 , 0x00000005 
+ 00010754  0x0000167f copy  0x00000012 , 0x0000003f 
+ 00010755  0x00001680 istore  0x00000002 , 0x00000005 
+ 00010756  0x00001681 rtn 
+ 00010757  0x00001686 bpatchx  0x00000042 , 0x00004028 
+ 00010758  0x00001687 increase  0x00000005 , 0x00000011 
+ 00010759  0x00001688 call  0x00006959 
+ 00010760  0x00001689 increase  0xfffffffb , 0x00000011 
+ 00010761  0x0000168a copy  0x00000011 , 0x0000003f 
+ 00010762  0x0000168b istore  0x00000002 , 0x00000005 
+ 00010763  0x0000168c setarg  0x00000000 
+ 00010764  0x0000168d istore  0x00000002 , 0x00000005 
+ 00010765  0x0000168e copy  0x00000001 , 0x0000003f 
+ 00010766  0x0000168f istore  0x00000001 , 0x00000005 
+ 00010767  0x00001690 rtn 
+ 00010768  0x00001694 bpatchx  0x00000043 , 0x00004028 
+ 00010769  0x00001695 call  0x00006993 
+ 00010770  0x00001696 copy  0x0000003f , 0x00000006 
+ 00010771  0x00001697 rtn 
+ 00010772  0x0000169a fetch  0x00000002 , 0x00004449 
+ 00010773  0x0000169b rtn 
+ 00010774  0x0000169e call  0x00002a19 
+ 00010775  0x0000169f copy  0x0000003f , 0x00000006 
+ 00010776  0x000016a0 rtn 
+ 00010777  0x000016a4 fetch  0x00000002 , 0x0000444c 
+ 00010778  0x000016a5 rtn 
+ 00010779  0x000016a9 call  0x00002a10 
+ 00010780  0x000016aa increase  0x00000005 , 0x00000006 
+ 00010781  0x000016ab rtn 
+ 00010782  0x000016ae call  0x00002a10 
+ 00010783  0x000016af increase  0x00000009 , 0x00000006 
+ 00010784  0x000016b0 rtn 
+ 00010785  0x000016b3 call  0x00002a16 
+ 00010786  0x000016b4 increase  0x00000009 , 0x00000006 
+ 00010787  0x000016b5 rtn 
+ 00010788  0x000016b8 call  0x00002a16 
+ 00010789  0x000016b9 increase  0x00000005 , 0x00000006 
+ 00010790  0x000016ba rtn 
+ 00010791  0x000016be branch  0x000069a9 
+ 00010792  0x000016c2 branch  0x000069ac 
+ 00010793  0x000016c6 branch  0x000069af 
+ 00010794  0x000016ca branch  0x00006998 
+ 00010795  0x000016ce store  0x00000008 , 0x000043c0 
+ 00010796  0x000016cf branch  0x00002a3c 
+ 00010797  0x000016d3 and  0x00000002 , 0x000000ff , 0x00000011 
+ 00010798  0x000016d4 call  0x00002a32 
+ 00010799  0x000016d5 rshift8  0x00000002 , 0x00000011 
+ 00010800  0x000016d8 storer  0x00000011 , 0x00000001 , 0x000043b7 
+ 00010801  0x000016d9 branch  0x00002a33 
+ 00010802  0x000016dc storer  0x00000011 , 0x00000001 , 0x000043b6 
+ 00010803  0x000016de isolate1  0x00000001 , 0x00000011 
+ 00010804  0x000016df call  0x00002a38 , 0x00000001 
+ 00010805  0x000016e0 isolate1  0x00000002 , 0x00000011 
+ 00010806  0x000016e1 call  0x00002a3a , 0x00000001 
+ 00010807  0x000016e2 rtn 
+ 00010808  0x000016e7 arg  0x00000008 , 0x00000007 
+ 00010809  0x000016e8 branch  0x00002a3d 
+ 00010810  0x000016ec arg  0x0000000b , 0x00000007 
+ 00010811  0x000016ed branch  0x00002a3d 
+ 00010812  0x000016f0 arg  0x00000005 , 0x00000007 
+ 00010813  0x000016f3 fetch  0x00000008 , 0x000043ae 
+ 00010814  0x000016f4 qset1  0x0000003f 
+ 00010815  0x000016f5 store  0x00000008 , 0x000043ae 
+ 00010816  0x000016f6 rtn 
+ 00010817  0x000016f9 call  0x000029c5 
+ 00010818  0x000016fa call  0x000029ec 
+ 00010819  0x000016fb call  0x000029df 
+ 00010820  0x000016fc branch  0x000029cd 
+ 00010821  0x00001702 jam  0x00000001 , 0x0000019d 
+ 00010822  0x00001703 jam  0x00000001 , 0x0000019e 
+ 00010823  0x00001704 call  0x000025b8 
+ 00010824  0x00001705 call  0x00002a4b 
+ 00010825  0x00001706 call  0x00002acb 
+ 00010826  0x00001707 branch  0x000025bc 
+ 00010827  0x0000170a bpatchx  0x00000044 , 0x00004028 
+ 00010828  0x0000170b fetch  0x00000001 , 0x00004343 
+ 00010829  0x0000170c rtnne  0x00000001 
+ 00010830  0x0000170d arg  0x00000002 , 0x00000007 
+ 00010831  0x0000170e call  0x00007cef 
+ 00010832  0x0000170f nrtn  0x00000034 
+ 00010833  0x00001710 fetch  0x00000002 , 0x00004344 
+ 00010834  0x00001711 fetcht  0x00000002 , 0x00004346 
+ 00010835  0x00001712 isub  0x00000002 , 0x0000003f 
+ 00010836  0x00001713 arg  0x00000002 , 0x00000007 
+ 00010837  0x00001714 call  0x00007ce1 
+ 00010838  0x00001715 disable  0x00000029 
+ 00010839  0x00001716 call  0x00002af5 
+ 00010840  0x00001717 call  0x00002a6a 
+ 00010841  0x00001718 nrtn  0x0000002d 
+ 00010842  0x00001719 bpatchx  0x00000045 , 0x00004028 
+ 00010843  0x0000171a fetch  0x00000006 , 0x0000004e 
+ 00010844  0x0000171b store  0x00000006 , 0x00000178 
+ 00010845  0x0000171e fetch  0x00000001 , 0x00000002 
+ 00010846  0x0000171f increase  0x00000001 , 0x0000003f 
+ 00010847  0x00001720 store  0x00000001 , 0x00000002 
+ 00010848  0x00001721 call  0x00002a71 
+ 00010849  0x00001722 rtn  0x00000029 
+ 00010850  0x00001723 call  0x00002b1c 
+ 00010851  0x00001724 nrtn  0x0000002d 
+ 00010852  0x00001725 fetch  0x00000001 , 0x00000004 
+ 00010853  0x00001726 increase  0x00000001 , 0x0000003f 
+ 00010854  0x00001727 store  0x00000001 , 0x00000004 
+ 00010855  0x00001728 fetch  0x00000009 , 0x00000054 
+ 00010856  0x00001729 store  0x00000009 , 0x000006a1 
+ 00010857  0x0000172a rtn 
+ 00010858  0x0000172e bpatchx  0x00000046 , 0x00004028 
+ 00010859  0x0000172f call  0x00002b68 
+ 00010860  0x00001730 call  0x0000264e 
+ 00010861  0x00001731 fetch  0x00000001 , 0x00000001 
+ 00010862  0x00001732 increase  0x00000001 , 0x0000003f 
+ 00010863  0x00001733 store  0x00000001 , 0x00000001 
+ 00010864  0x00001734 rtn 
+ 00010865  0x00001738 bpatchx  0x00000047 , 0x00004028 
+ 00010866  0x00001739 fetch  0x00000001 , 0x000001bc 
+ 00010867  0x0000173a rtnne  0x0000001b 
+ 00010868  0x0000173b fetch  0x00000006 , 0x00000178 
+ 00010869  0x0000173c fetcht  0x00000006 , 0x000042cc 
+ 00010870  0x0000173d isub  0x00000002 , 0x0000003e 
+ 00010871  0x0000173e nrtn  0x00000005 
+ 00010872  0x0000173f call  0x00002056 
+ 00010873  0x00001740 nrtn  0x00000005 
+ 00010874  0x00001741 call  0x00002a84 
+ 00010875  0x00001742 call  0x00002519 
+ 00010876  0x00001743 call  0x000030ed 
+ 00010877  0x00001744 jam  0x00000014 , 0x0000066f 
+ 00010878  0x00001745 call  0x0000782b 
+ 00010879  0x00001746 jam  0x00000000 , 0x00004114 
+ 00010880  0x00001747 jam  0x00000000 , 0x000001b8 
+ 00010881  0x00001748 jam  0x00000000 , 0x00004343 
+ 00010882  0x00001749 jam  0x00000000 , 0x000001bc 
+ 00010883  0x0000174a branch  0x00002041 
+ 00010884  0x0000174d bpatchx  0x00000048 , 0x00004029 
+ 00010885  0x0000174e force  0xffffffff , 0x0000003f 
+ 00010886  0x0000174f setsect  0x00000002 , 0x00000001 
+ 00010887  0x00001750 store  0x00000005 , 0x00000198 
+ 00010888  0x00001751 arg  0x00000168 , 0x00000011 
+ 00010889  0x00001752 call  0x00002624 
+ 00010890  0x00001753 force  0x00000004 , 0x00000039 
+ 00010891  0x00001754 arg  0x0000018c , 0x00000005 
+ 00010892  0x00001755 call  0x00007de8 
+ 00010893  0x00001756 fetch  0x00000002 , 0x000042d9 
+ 00010894  0x00001757 store  0x00000002 , 0x00000196 
+ 00010895  0x00001759 random  0x0000003f 
+ 00010896  0x0000175a and_into  0x0000000f , 0x0000003f 
+ 00010897  0x0000175b sub  0x0000003f , 0x00000004 , 0x0000003e 
+ 00010898  0x0000175c branch  0x00002a8f , 0x00000002 
+ 00010899  0x0000175d store  0x00000001 , 0x00000181 
+ 00010900  0x0000175f bpatchx  0x00000049 , 0x00004029 
+ 00010901  0x00001760 fetcht  0x00000002 , 0x00004165 
+ 00010902  0x00001761 storet  0x00000002 , 0x0000016a 
+ 00010903  0x00001762 copy  0x00000002 , 0x00000013 
+ 00010904  0x00001763 add  0x00000022 , 0x00000007 , 0x0000003f 
+ 00010905  0x00001764 idiv  0x00000013 
+ 00010906  0x00001765 call  0x00007d62 
+ 00010907  0x00001766 remainder  0x00000011 
+ 00010908  0x00001767 isub  0x00000011 , 0x0000003f 
+ 00010909  0x00001768 iadd  0x00000013 , 0x0000003f 
+ 00010910  0x00001769 fetcht  0x00000002 , 0x00004163 
+ 00010911  0x0000176a iadd  0x00000002 , 0x0000003f 
+ 00010912  0x0000176b store  0x00000004 , 0x0000016c 
+ 00010913  0x0000176c isub  0x00000022 , 0x00000011 
+ 00010914  0x0000176d increase  0xfffffffa , 0x00000011 
+ 00010915  0x0000176e arg  0x00002205 , 0x00000012 
+ 00010916  0x0000176f fetch  0x00000001 , 0x000042d2 
+ 00010917  0x00001770 nsetflag  0x00000034 , 0x00000006 , 0x00000012 
+ 00010918  0x00001771 fetch  0x00000001 , 0x000042cb 
+ 00010919  0x00001772 nsetflag  0x00000034 , 0x00000007 , 0x00000012 
+ 00010920  0x00001773 copy  0x00000012 , 0x0000003f 
+ 00010921  0x00001774 store  0x00000002 , 0x00004169 
+ 00010922  0x00001775 fetch  0x00000006 , 0x000042db 
+ 00010923  0x00001776 istore  0x00000006 , 0x00000005 
+ 00010924  0x00001777 fetch  0x00000006 , 0x00000178 
+ 00010925  0x00001778 istore  0x00000006 , 0x00000005 
+ 00010926  0x00001779 fetch  0x00000004 , 0x0000018c 
+ 00010927  0x0000177a istore  0x00000004 , 0x00000005 
+ 00010928  0x0000177b random  0x0000003f 
+ 00010929  0x0000177c istore  0x00000002 , 0x00000005 
+ 00010930  0x0000177d random  0x0000003f 
+ 00010931  0x0000177e istore  0x00000001 , 0x00000005 
+ 00010932  0x0000177f force  0x00000002 , 0x0000003f 
+ 00010933  0x00001780 istore  0x00000001 , 0x00000005 
+ 00010934  0x00001781 rshift2  0x00000011 , 0x0000003f 
+ 00010935  0x00001782 istore  0x00000002 , 0x00000005 
+ 00010936  0x00001783 rshift2  0x00000013 , 0x0000003f 
+ 00010937  0x00001784 istore  0x00000002 , 0x00000005 
+ 00010938  0x00001785 bpatchx  0x0000004a , 0x00004029 
+ 00010939  0x00001786 setarg  0x00000000 
+ 00010940  0x00001787 istore  0x00000002 , 0x00000005 
+ 00010941  0x00001788 fetch  0x00000002 , 0x000042d9 
+ 00010942  0x00001789 istore  0x00000002 , 0x00000005 
+ 00010943  0x0000178a fetch  0x00000005 , 0x00000198 
+ 00010944  0x0000178b istore  0x00000005 , 0x00000005 
+ 00010945  0x0000178c fetch  0x00000001 , 0x00000181 
+ 00010946  0x0000178d arg  0x000000a0 , 0x00000002 
+ 00010947  0x0000178e ior  0x00000002 , 0x0000003f 
+ 00010948  0x0000178f istore  0x00000001 , 0x00000005 
+ 00010949  0x00001790 call  0x0000273e 
+ 00010950  0x00001791 setarg  0x00004169 
+ 00010951  0x00001792 add  0x0000003f , 0x00000012 , 0x00000006 
+ 00010952  0x00001793 ifetch  0x00000003 , 0x00000006 
+ 00010953  0x00001794 store  0x00000003 , 0x00000190 
+ 00010954  0x00001795 rtn 
+ 00010955  0x00001799 jam  0x00000024 , 0x00000007 
+ 00010956  0x0000179a jam  0x00000000 , 0x000006a1 
+ 00010957  0x0000179b call  0x00002aef 
+ 00010958  0x0000179c call  0x00002ad0 
+ 00010959  0x0000179d branch  0x00002af2 
+ 00010960  0x000017a0 bpatchx  0x0000004b , 0x00004029 
+ 00010961  0x000017a1 fetch  0x00000001 , 0x00004388 
+ 00010962  0x000017a2 rtn  0x00000034 
+ 00010963  0x000017a3 arg  0x00000000 , 0x00000007 
+ 00010964  0x000017a4 call  0x00007cef 
+ 00010965  0x000017a5 nrtn  0x00000034 
+ 00010966  0x000017a6 enable  0x00000010 
+ 00010967  0x000017a7 call  0x00002af5 
+ 00010968  0x000017a8 call  0x00002b68 
+ 00010969  0x000017a9 call  0x00002afe 
+ 00010970  0x000017aa nbranch  0x00002ae2 , 0x0000002d 
+ 00010971  0x000017ab fetch  0x00000001 , 0x00000003 
+ 00010972  0x000017ac increase  0x00000001 , 0x0000003f 
+ 00010973  0x000017ad store  0x00000001 , 0x00000003 
+ 00010974  0x000017ae fetch  0x00000001 , 0x0000004c 
+ 00010975  0x000017af and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00010976  0x000017b0 beq  0x00000003 , 0x00002b2d 
+ 00010977  0x000017b1 beq  0x00000005 , 0x00002b40 
+ 00010978  0x000017b3 bpatchx  0x0000004c , 0x00004029 
+ 00010979  0x000017b4 fetch  0x00000001 , 0x000006a1 
+ 00010980  0x000017b5 fetcht  0x00000001 , 0x00004393 
+ 00010981  0x000017b6 isub  0x00000002 , 0x0000003e 
+ 00010982  0x000017b7 nbranch  0x00002ad0 , 0x00000005 
+ 00010983  0x000017b8 random  0x0000003f 
+ 00010984  0x000017b9 arg  0x000001ff , 0x00000002 
+ 00010985  0x000017ba iand  0x00000002 , 0x0000003f 
+ 00010986  0x000017bb add  0x0000003f , 0x000000fa , 0x0000003f 
+ 00010987  0x000017bc call  0x00007c91 
+ 00010988  0x000017bd arg  0x00000000 , 0x00000007 
+ 00010989  0x000017be fetch  0x00000002 , 0x00004389 
+ 00010990  0x000017bf branch  0x00007ce1 
+ 00010991  0x000017c2 arg  0x000006b1 , 0x00000005 
+ 00010992  0x000017c3 arg  0x00004169 , 0x00000006 
+ 00010993  0x000017c4 branch  0x00007c8c 
+ 00010994  0x000017c7 arg  0x000006b1 , 0x00000006 
+ 00010995  0x000017c8 arg  0x00004169 , 0x00000005 
+ 00010996  0x000017c9 branch  0x00007c8c 
+ 00010997  0x000017cc bpatchx  0x0000004d , 0x00004029 
+ 00010998  0x000017cd disable  0x00000029 
+ 00010999  0x000017cf setarg  0x008e89be 
+ 00011000  0x000017d0 lshift8  0x0000003f , 0x0000003f 
+ 00011001  0x000017d1 or_into  0x000000d6 , 0x0000003f 
+ 00011002  0x000017d2 iforce  0x00000009 
+ 00011003  0x000017d3 setarg  0x00555555 
+ 00011004  0x000017d4 store  0x00000003 , 0x00000190 
+ 00011005  0x000017d5 rtn 
+ 00011006  0x000017da bpatchx  0x0000004e , 0x00004029 
+ 00011007  0x000017db fetch  0x00000001 , 0x0000438b 
+ 00011008  0x000017dc fetcht  0x00000001 , 0x0000438c 
+ 00011009  0x000017dd lshift4  0x00000002 , 0x00000002 
+ 00011010  0x000017de lshift2  0x00000002 , 0x00000002 
+ 00011011  0x000017df iadd  0x00000002 , 0x00000002 
+ 00011012  0x000017e0 storet  0x00000001 , 0x00004169 
+ 00011013  0x000017e1 beq  0x00000001 , 0x00002b0f 
+ 00011014  0x000017e2 fetcht  0x00000001 , 0x00004348 
+ 00011015  0x000017e3 add  0x00000002 , 0x00000006 , 0x0000003f 
+ 00011016  0x000017e4 store  0x00000001 , 0x0000416a 
+ 00011017  0x000017e5 fetch  0x00000006 , 0x000042db 
+ 00011018  0x000017e6 store  0x00000006 , 0x0000416b 
+ 00011019  0x000017e7 copy  0x00000002 , 0x00000039 
+ 00011020  0x000017e8 arg  0x00004349 , 0x00000006 
+ 00011021  0x000017e9 call  0x00007ccc 
+ 00011022  0x000017ea branch  0x00002b15 
+ 00011023  0x000017ed setarg  0x0000000c 
+ 00011024  0x000017ee store  0x00000001 , 0x0000416a 
+ 00011025  0x000017ef fetch  0x00000006 , 0x000042db 
+ 00011026  0x000017f0 store  0x00000006 , 0x0000416b 
+ 00011027  0x000017f1 fetch  0x00000006 , 0x00004116 
+ 00011028  0x000017f2 istore  0x00000006 , 0x00000005 
+ 00011029  0x000017f4 bpatchx  0x0000004f , 0x00004029 
+ 00011030  0x000017f5 fetch  0x00000001 , 0x00000000 
+ 00011031  0x000017f6 increase  0x00000001 , 0x0000003f 
+ 00011032  0x000017f7 store  0x00000001 , 0x00000000 
+ 00011033  0x000017f8 arg  0x00000708 , 0x0000001b 
+ 00011034  0x000017f9 disable  0x0000002d 
+ 00011035  0x000017fa branch  0x00002729 
+ 00011036  0x000017fe bpatchx  0x00000050 , 0x0000402a 
+ 00011037  0x000017ff fetch  0x00000001 , 0x00004394 
+ 00011038  0x00001800 rtnne  0x00000001 
+ 00011039  0x00001801 fetch  0x00000001 , 0x00000000 
+ 00011040  0x00001802 increase  0x00000001 , 0x0000003f 
+ 00011041  0x00001803 store  0x00000001 , 0x00000000 
+ 00011042  0x00001804 arg  0x00000c03 , 0x00000002 
+ 00011043  0x00001805 fetch  0x00000001 , 0x00004395 
+ 00011044  0x00001806 nsetflag  0x00000034 , 0x00000006 , 0x00000002 
+ 00011045  0x00001807 copy  0x00000011 , 0x0000003f 
+ 00011046  0x00001808 nsetflag  0x00000034 , 0x00000007 , 0x00000002 
+ 00011047  0x00001809 storet  0x00000002 , 0x00004169 
+ 00011048  0x0000180a fetch  0x00000006 , 0x000042db 
+ 00011049  0x0000180b istore  0x00000006 , 0x00000005 
+ 00011050  0x0000180c fetch  0x00000006 , 0x00000178 
+ 00011051  0x0000180d istore  0x00000006 , 0x00000005 
+ 00011052  0x0000180e branch  0x00002729 
+ 00011053  0x00001811 bpatchx  0x00000051 , 0x0000402a 
+ 00011054  0x00001812 fetch  0x00000006 , 0x00000054 
+ 00011055  0x00001813 fetcht  0x00000006 , 0x000042db 
+ 00011056  0x00001814 isub  0x00000002 , 0x0000003e 
+ 00011057  0x00001815 nrtn  0x00000005 
+ 00011058  0x00001816 arg  0x00000004 , 0x00000002 
+ 00011059  0x00001817 fetch  0x00000001 , 0x0000438c 
+ 00011060  0x00001818 nsetflag  0x00000034 , 0x00000006 , 0x00000002 
+ 00011061  0x00001819 storet  0x00000001 , 0x00004169 
+ 00011062  0x0000181a fetcht  0x00000001 , 0x00004368 
+ 00011063  0x0000181b add  0x00000002 , 0x00000006 , 0x0000003f 
+ 00011064  0x0000181c store  0x00000001 , 0x0000416a 
+ 00011065  0x0000181d fetch  0x00000006 , 0x000042db 
+ 00011066  0x0000181e store  0x00000006 , 0x0000416b 
+ 00011067  0x0000181f arg  0x00004369 , 0x00000006 
+ 00011068  0x00001820 copy  0x00000002 , 0x00000039 
+ 00011069  0x00001821 call  0x00007ccc 
+ 00011070  0x00001822 call  0x0000273e 
+ 00011071  0x00001823 branch  0x00002ae2 
+ 00011072  0x00001826 fetch  0x00000006 , 0x00000054 
+ 00011073  0x00001827 fetcht  0x00000006 , 0x000042db 
+ 00011074  0x00001828 isub  0x00000002 , 0x0000003e 
+ 00011075  0x00001829 nrtn  0x00000005 
+ 00011076  0x0000182a call  0x00002868 
+ 00011077  0x0000182b storer  0x00000011 , 0x00000001 , 0x000042cb 
+ 00011078  0x0000182c fetch  0x00000006 , 0x0000004e 
+ 00011079  0x0000182d store  0x00000006 , 0x00000178 
+ 00011080  0x0000182e fetch  0x00000008 , 0x0000005a 
+ 00011081  0x0000182f store  0x00000008 , 0x0000018c 
+ 00011082  0x00001830 fetcht  0x00000002 , 0x00000062 
+ 00011083  0x00001831 bpatchx  0x00000052 , 0x0000402a 
+ 00011084  0x00001832 lshift2  0x00000002 , 0x00000002 
+ 00011085  0x00001833 fetch  0x00000002 , 0x00000064 
+ 00011086  0x00001834 lshift2  0x0000003f , 0x0000003f 
+ 00011087  0x00001835 store  0x00000002 , 0x0000016a 
+ 00011088  0x00001836 store  0x00000004 , 0x0000016c 
+ 00011089  0x00001837 isub  0x00000002 , 0x0000003f 
+ 00011090  0x00001838 add  0x0000003f , 0xfffffffe , 0x00000028 
+ 00011091  0x00001839 fetch  0x00000009 , 0x00000066 
+ 00011092  0x0000183a store  0x00000009 , 0x00000194 
+ 00011093  0x0000183b fetch  0x00000001 , 0x0000006f 
+ 00011094  0x0000183c and  0x0000003f , 0x0000001f , 0x00000002 
+ 00011095  0x0000183d storet  0x00000001 , 0x00000181 
+ 00011096  0x0000183e rshift4  0x0000003f , 0x00000002 
+ 00011097  0x0000183f rshift  0x00000002 , 0x00000002 
+ 00011098  0x00001840 storet  0x00000001 , 0x000001b8 
+ 00011099  0x00001841 arg  0x00000168 , 0x00000011 
+ 00011100  0x00001842 call  0x00002938 
+ 00011101  0x00001843 arg  0x00000168 , 0x00000011 
+ 00011102  0x00001844 call  0x00002624 
+ 00011103  0x00001845 call  0x00002525 
+ 00011104  0x00001846 call  0x00002056 
+ 00011105  0x00001847 nrtn  0x00000005 
+ 00011106  0x00001848 bpatchx  0x00000053 , 0x0000402a 
+ 00011107  0x00001849 call  0x000020f7 
+ 00011108  0x0000184a call  0x00002ea7 
+ 00011109  0x0000184b jam  0x00000014 , 0x0000066f 
+ 00011110  0x0000184c call  0x0000782b 
+ 00011111  0x0000184d branch  0x00002041 
+ 00011112  0x00001851 bpatchx  0x00000054 , 0x0000402a 
+ 00011113  0x00001852 fetch  0x00000001 , 0x00000007 
+ 00011114  0x00001853 beq  0x00000025 , 0x00002b6e 
+ 00011115  0x00001854 beq  0x00000026 , 0x00002b74 
+ 00011116  0x00001855 beq  0x00000027 , 0x00002b7a 
+ 00011117  0x00001856 branch  0x00002b7a 
+ 00011118  0x00001859 fetcht  0x00000001 , 0x00004393 
+ 00011119  0x0000185a isolate1  0x00000001 , 0x00000002 
+ 00011120  0x0000185b branch  0x00002b85 , 0x00000001 
+ 00011121  0x0000185c isolate1  0x00000002 , 0x00000002 
+ 00011122  0x0000185d branch  0x00002b8a , 0x00000001 
+ 00011123  0x0000185e branch  0x00002b80 
+ 00011124  0x00001862 fetcht  0x00000001 , 0x00004393 
+ 00011125  0x00001863 isolate1  0x00000002 , 0x00000002 
+ 00011126  0x00001864 branch  0x00002b8a , 0x00000001 
+ 00011127  0x00001865 isolate1  0x00000000 , 0x00000002 
+ 00011128  0x00001866 branch  0x00002b80 , 0x00000001 
+ 00011129  0x00001867 branch  0x00002b85 
+ 00011130  0x0000186b fetcht  0x00000001 , 0x00004393 
+ 00011131  0x0000186c isolate1  0x00000000 , 0x00000002 
+ 00011132  0x0000186d branch  0x00002b80 , 0x00000001 
+ 00011133  0x0000186e isolate1  0x00000001 , 0x00000002 
+ 00011134  0x0000186f branch  0x00002b85 , 0x00000001 
+ 00011135  0x00001870 branch  0x00002b8a 
+ 00011136  0x00001873 jam  0x00000025 , 0x00000007 
+ 00011137  0x00001874 fetch  0x00000001 , 0x000006a1 
+ 00011138  0x00001875 set1  0x00000000 , 0x0000003f 
+ 00011139  0x00001876 store  0x00000001 , 0x000006a1 
+ 00011140  0x00001877 rtn 
+ 00011141  0x0000187a jam  0x00000026 , 0x00000007 
+ 00011142  0x0000187b fetch  0x00000001 , 0x000006a1 
+ 00011143  0x0000187c set1  0x00000001 , 0x0000003f 
+ 00011144  0x0000187d store  0x00000001 , 0x000006a1 
+ 00011145  0x0000187e rtn 
+ 00011146  0x00001881 jam  0x00000027 , 0x00000007 
+ 00011147  0x00001882 fetch  0x00000001 , 0x000006a1 
+ 00011148  0x00001883 set1  0x00000002 , 0x0000003f 
+ 00011149  0x00001884 store  0x00000001 , 0x000006a1 
+ 00011150  0x00001885 rtn 
+ 00011151  0x0000188b copy  0x00000006 , 0x00000011 
+ 00011152  0x0000188c fetch  0x00000001 , 0x000043cb 
+ 00011153  0x0000188d beq  0x00000006 , 0x000066d5 
+ 00011154  0x0000188e beq  0x0000000f , 0x0000503d 
+ 00011155  0x0000188f copy  0x00000011 , 0x00000006 
+ 00011156  0x00001890 ifetch  0x00000003 , 0x00000006 
+ 00011157  0x00001891 store  0x00000003 , 0x00004397 
+ 00011158  0x00001893 beq  0x00000002 , 0x00002bab 
+ 00011159  0x00001894 beq  0x00000003 , 0x00002bb0 
+ 00011160  0x00001895 beq  0x00000004 , 0x00002bb3 
+ 00011161  0x00001896 beq  0x00000006 , 0x00002bf7 
+ 00011162  0x00001897 beq  0x00000008 , 0x00002c44 
+ 00011163  0x00001898 beq  0x0000000a , 0x00002d19 
+ 00011164  0x00001899 beq  0x0000000c , 0x00002d4c 
+ 00011165  0x0000189a beq  0x00000010 , 0x00002d63 
+ 00011166  0x0000189b beq  0x00000012 , 0x00002da8 
+ 00011167  0x0000189c beq  0x00000016 , 0x00002dce 
+ 00011168  0x0000189d beq  0x00000018 , 0x00002de1 
+ 00011169  0x0000189e beq  0x0000001e , 0x00002de6 
+ 00011170  0x0000189f beq  0x00000052 , 0x00002dea 
+ 00011171  0x000018a0 rtn 
+ 00011172  0x000018a4 force  0x00000003 , 0x00000011 
+ 00011173  0x000018a5 call  0x00002e10 
+ 00011174  0x000018a6 setarg  0x00000002 
+ 00011175  0x000018a8 istore  0x00000001 , 0x00000005 
+ 00011176  0x000018a9 fetch  0x00000002 , 0x000042e1 
+ 00011177  0x000018aa istore  0x00000002 , 0x00000005 
+ 00011178  0x000018ab rtn 
+ 00011179  0x000018af call  0x00002bb0 
+ 00011180  0x000018b1 force  0x00000003 , 0x00000011 
+ 00011181  0x000018b2 call  0x00002e10 
+ 00011182  0x000018b3 setarg  0x00000003 
+ 00011183  0x000018b4 branch  0x00002ba7 
+ 00011184  0x000018b7 rshift8  0x0000003f , 0x0000003f 
+ 00011185  0x000018b8 store  0x00000002 , 0x000042e3 
+ 00011186  0x000018b9 rtn 
+ 00011187  0x000018bc call  0x00002e41 
+ 00011188  0x000018bd call  0x00007dba 
+ 00011189  0x000018be branch  0x00002bc3 
+ 00011190  0x000018c2 ifetch  0x00000002 , 0x00000006 
+ 00011191  0x000018c3 and_into  0x000000ff , 0x0000003f 
+ 00011192  0x000018c4 rtn  0x00000034 
+ 00011193  0x000018c5 isub  0x00000012 , 0x0000003e 
+ 00011194  0x000018c6 rtn  0x00000005 
+ 00011195  0x000018c7 nrtn  0x00000002 
+ 00011196  0x000018c8 isub  0x00000013 , 0x0000003e 
+ 00011197  0x000018c9 rtn  0x00000005 
+ 00011198  0x000018ca branch  0x00002bc1 , 0x00000002 
+ 00011199  0x000018cb force  0x00000001 , 0x0000003e 
+ 00011200  0x000018cc rtn 
+ 00011201  0x000018ce force  0x00000000 , 0x0000003f 
+ 00011202  0x000018cf rtn 
+ 00011203  0x000018d3 arg  0x00000003 , 0x0000000b 
+ 00011204  0x000018d4 call  0x00002cc7 
+ 00011205  0x000018d6 call  0x00002bb6 
+ 00011206  0x000018d7 branch  0x00002bf5 , 0x00000034 
+ 00011207  0x000018d8 nbranch  0x00002bf3 , 0x00000002 
+ 00011208  0x000018d9 increase  0xfffffffe , 0x00000006 
+ 00011209  0x000018da call  0x00007c6d 
+ 00011210  0x000018db call  0x00007c64 
+ 00011211  0x000018dc nbranch  0x00002be3 , 0x00000028 
+ 00011212  0x000018dd call  0x00007c51 
+ 00011213  0x000018de storer  0x0000000b , 0x00000004 , 0x00000680 
+ 00011214  0x000018df force  0x0000001e , 0x00000011 
+ 00011215  0x000018e0 call  0x00002e10 
+ 00011216  0x000018e1 fetchr  0x0000000b , 0x00000004 , 0x00000680 
+ 00011217  0x000018e2 call  0x00007c60 
+ 00011218  0x000018e3 call  0x00007dbc 
+ 00011219  0x000018e4 setarg  0x00000005 
+ 00011220  0x000018e5 istore  0x00000001 , 0x00000005 
+ 00011221  0x000018e6 call  0x00007c67 
+ 00011222  0x000018e7 ifetch  0x00000002 , 0x00000006 
+ 00011223  0x000018e8 ifetchr  0x00000011 , 0x00000001 , 0x00000006 
+ 00011224  0x000018e9 sub  0x00000011 , 0x00000010 , 0x0000003e 
+ 00011225  0x000018ea branch  0x00002bdf , 0x00000005 
+ 00011226  0x000018eb sub  0x00000011 , 0x00000002 , 0x0000003e 
+ 00011227  0x000018ec nbranch  0x00002e03 , 0x00000005 
+ 00011228  0x000018ee setarg  0x00000001 
+ 00011229  0x000018ef istore  0x00000001 , 0x00000005 
+ 00011230  0x000018f0 branch  0x00002be8 
+ 00011231  0x000018f3 setarg  0x00000002 
+ 00011232  0x000018f4 istore  0x00000001 , 0x00000005 
+ 00011233  0x000018f5 arg  0x00000001 , 0x0000000b 
+ 00011234  0x000018f6 branch  0x00002be8 
+ 00011235  0x000018f9 call  0x00007c67 
+ 00011236  0x000018fa ifetch  0x00000002 , 0x00000006 
+ 00011237  0x000018fb ifetch  0x00000001 , 0x00000006 
+ 00011238  0x000018fc isub  0x00000011 , 0x0000003e 
+ 00011239  0x000018fd nbranch  0x00002bf5 , 0x00000005 
+ 00011240  0x00001900 call  0x00007c67 
+ 00011241  0x00001901 ifetch  0x00000002 , 0x00000006 
+ 00011242  0x00001902 and_into  0x000000ff , 0x0000003f 
+ 00011243  0x00001903 istore  0x00000002 , 0x00000005 
+ 00011244  0x00001904 ifetchr  0x00000039 , 0x00000001 , 0x00000006 
+ 00011245  0x00001905 call  0x00007cda 
+ 00011246  0x00001906 call  0x00007c6a 
+ 00011247  0x00001907 increase  0xffffffff , 0x0000000b 
+ 00011248  0x00001908 branch  0x00002bf5 , 0x00000005 
+ 00011249  0x0000190a call  0x00002cdd 
+ 00011250  0x0000190b branch  0x00002bc5 
+ 00011251  0x0000190e call  0x00002cdd 
+ 00011252  0x0000190f branch  0x00002bf1 
+ 00011253  0x00001912 branch  0x00002e03 , 0x00000028 
+ 00011254  0x00001913 branch  0x00002e34 
+ 00011255  0x00001917 call  0x00002e41 
+ 00011256  0x00001918 ifetch  0x00000002 , 0x00000006 
+ 00011257  0x00001919 store  0x00000002 , 0x0000439e 
+ 00011258  0x0000191a call  0x00007c6d 
+ 00011259  0x0000191b arg  0x000006b5 , 0x00000005 
+ 00011260  0x0000191c fetch  0x00000002 , 0x00004335 
+ 00011261  0x0000191d increase  0xfffffff9 , 0x0000003f 
+ 00011262  0x0000191e call  0x00002e4f 
+ 00011263  0x0000191f branch  0x00002c0a 
+ 00011264  0x00001923 disable  0x00000028 
+ 00011265  0x00001924 fetcht  0x00000002 , 0x000006b1 
+ 00011266  0x00001925 fetch  0x00000002 , 0x000006b3 
+ 00011267  0x00001926 isub  0x00000002 , 0x0000003e 
+ 00011268  0x00001927 nbranch  0x00002c07 , 0x00000002 
+ 00011269  0x00001928 deposit  0x00000002 
+ 00011270  0x00001929 rtnne  0x00000000 
+ 00011271  0x0000192b enable  0x00000028 
+ 00011272  0x0000192c jam  0x00000001 , 0x000001b9 
+ 00011273  0x0000192d branch  0x00002e05 
+ 00011274  0x00001931 call  0x00002c00 
+ 00011275  0x00001932 rtn  0x00000028 
+ 00011276  0x00001933 fetcht  0x00000002 , 0x0000439e 
+ 00011277  0x00001934 setarg  0x00002800 
+ 00011278  0x00001935 isub  0x00000002 , 0x0000003e 
+ 00011279  0x00001936 branch  0x00002c11 , 0x00000005 
+ 00011280  0x00001937 branch  0x00002e03 
+ 00011281  0x0000193b jam  0x00000000 , 0x0000439a 
+ 00011282  0x0000193c fetcht  0x00000002 , 0x000006b1 
+ 00011283  0x0000193d storet  0x00000002 , 0x00000678 
+ 00011284  0x0000193e call  0x00002d04 
+ 00011285  0x0000193f nbranch  0x00002e03 , 0x00000034 
+ 00011286  0x00001941 fetcht  0x00000002 , 0x00000678 
+ 00011287  0x00001942 call  0x00002d04 
+ 00011288  0x00001943 nbranch  0x00002c2a , 0x00000034 
+ 00011289  0x00001944 copy  0x00000006 , 0x00000011 
+ 00011290  0x00001945 fetch  0x00000001 , 0x000006c6 
+ 00011291  0x00001946 copy  0x0000003f , 0x00000039 
+ 00011292  0x00001947 fetcht  0x00000001 , 0x000006b5 
+ 00011293  0x00001948 isub  0x00000002 , 0x0000003e 
+ 00011294  0x00001949 nbranch  0x00002c26 , 0x00000005 
+ 00011295  0x0000194a arg  0x000006b6 , 0x00000012 
+ 00011296  0x0000194b call  0x00007d64 
+ 00011297  0x0000194d branch  0x00002c2d , 0x00000005 
+ 00011298  0x0000194f fetch  0x00000002 , 0x000006ce 
+ 00011299  0x00001950 fetcht  0x00000002 , 0x0000439e 
+ 00011300  0x00001951 isub  0x00000002 , 0x0000003e 
+ 00011301  0x00001952 branch  0x00002c35 , 0x00000005 
+ 00011302  0x00001954 fetch  0x00000002 , 0x00000678 
+ 00011303  0x00001955 increase  0x00000001 , 0x0000003f 
+ 00011304  0x00001956 store  0x00000002 , 0x00000678 
+ 00011305  0x00001957 branch  0x00002c16 
+ 00011306  0x0000195a fetch  0x00000001 , 0x0000439a 
+ 00011307  0x0000195b beq  0x00000001 , 0x00002c35 
+ 00011308  0x0000195c branch  0x00002e03 
+ 00011309  0x00001960 fetch  0x00000002 , 0x000006ce 
+ 00011310  0x00001961 fetcht  0x00000002 , 0x0000439e 
+ 00011311  0x00001962 isub  0x00000002 , 0x0000003e 
+ 00011312  0x00001963 nbranch  0x00002c26 , 0x00000005 
+ 00011313  0x00001964 jam  0x00000001 , 0x0000439a 
+ 00011314  0x00001966 fetcht  0x00000002 , 0x00000678 
+ 00011315  0x00001967 storet  0x00000002 , 0x000006c9 
+ 00011316  0x00001968 branch  0x00002c26 
+ 00011317  0x0000196b fetch  0x00000001 , 0x0000439a 
+ 00011318  0x0000196c beq  0x00000000 , 0x00002c26 
+ 00011319  0x0000196d jam  0x00000002 , 0x0000439a 
+ 00011320  0x0000196e fetcht  0x00000002 , 0x00000678 
+ 00011321  0x0000196f increase  0xffffffff , 0x00000002 
+ 00011322  0x00001970 storet  0x00000002 , 0x000006cb 
+ 00011323  0x00001973 arg  0x00000005 , 0x00000011 
+ 00011324  0x00001974 call  0x00002e10 
+ 00011325  0x00001975 setarg  0x00000007 
+ 00011326  0x00001976 istore  0x00000001 , 0x00000005 
+ 00011327  0x00001977 fetch  0x00000002 , 0x000006c9 
+ 00011328  0x00001978 istore  0x00000002 , 0x00000005 
+ 00011329  0x00001979 fetch  0x00000002 , 0x000006cb 
+ 00011330  0x0000197a istore  0x00000002 , 0x00000005 
+ 00011331  0x0000197b rtn 
+ 00011332  0x00001980 call  0x00002e41 
+ 00011333  0x00001981 call  0x00002e4a 
+ 00011334  0x00001982 branch  0x00002c47 
+ 00011335  0x00001985 fetcht  0x00000002 , 0x000006b1 
+ 00011336  0x00001986 storet  0x00000002 , 0x00000678 
+ 00011337  0x00001987 call  0x00002cc7 
+ 00011338  0x00001988 call  0x00002cd2 
+ 00011339  0x00001989 increase  0xfffffffe , 0x00000006 
+ 00011340  0x0000198a copy  0x00000006 , 0x0000003f 
+ 00011341  0x0000198b store  0x00000002 , 0x000006c7 
+ 00011342  0x0000198d fetcht  0x00000002 , 0x000006b6 
+ 00011343  0x0000198e setarg  0x00002a00 
+ 00011344  0x0000198f isub  0x00000002 , 0x0000003e 
+ 00011345  0x00001990 branch  0x00002cb2 , 0x00000005 
+ 00011346  0x00001991 setarg  0x00002803 
+ 00011347  0x00001992 isub  0x00000002 , 0x0000003e 
+ 00011348  0x00001993 nbranch  0x00002c9c , 0x00000005 
+ 00011349  0x00001994 arg  0x00000002 , 0x0000000b 
+ 00011350  0x00001996 call  0x00002e17 
+ 00011351  0x00001997 nbranch  0x00002c79 , 0x00000002 
+ 00011352  0x00001998 fetcht  0x00000002 , 0x00000678 
+ 00011353  0x00001999 call  0x00002d02 
+ 00011354  0x0000199a nbranch  0x00002c79 , 0x00000034 
+ 00011355  0x0000199b call  0x00002e1b 
+ 00011356  0x0000199c nbranch  0x00002c77 , 0x00000005 
+ 00011357  0x0000199d nbranch  0x00002c7b , 0x00000028 
+ 00011358  0x0000199e disable  0x00000028 
+ 00011359  0x0000199f call  0x00002e46 
+ 00011360  0x000019a0 copy  0x0000003f , 0x00000011 
+ 00011361  0x000019a1 call  0x00002e10 
+ 00011362  0x000019a2 setarg  0x00000009 
+ 00011363  0x000019a3 istore  0x00000001 , 0x00000005 
+ 00011364  0x000019a4 copy  0x00000005 , 0x00000030 
+ 00011365  0x000019a5 increase  0x00000001 , 0x00000005 
+ 00011366  0x000019a7 call  0x00002c89 
+ 00011367  0x000019a8 call  0x00002e13 
+ 00011368  0x000019a9 call  0x00002d02 
+ 00011369  0x000019aa call  0x00002c90 
+ 00011370  0x000019ab fetch  0x00000001 , 0x000006cd 
+ 00011371  0x000019ac add  0x0000003f , 0x00000005 , 0x00000011 
+ 00011372  0x000019ad istorer  0x00000011 , 0x00000001 , 0x00000030 
+ 00011373  0x000019af sub  0x00000011 , 0x00000007 , 0x0000003e 
+ 00011374  0x000019b0 ncall  0x00007dbe , 0x00000005 
+ 00011375  0x000019b1 call  0x00007dc0 , 0x00000005 
+ 00011376  0x000019b2 call  0x00002e46 
+ 00011377  0x000019b3 increase  0xfffffffe , 0x0000003f 
+ 00011378  0x000019b4 idiv  0x00000011 
+ 00011379  0x000019b5 call  0x00007d62 
+ 00011380  0x000019b6 quotient  0x0000000b 
+ 00011381  0x000019b7 increase  0xffffffff , 0x0000000b 
+ 00011382  0x000019b8 branch  0x00002c79 , 0x00000005 
+ 00011383  0x000019ba call  0x00002e13 
+ 00011384  0x000019bb branch  0x00002c56 
+ 00011385  0x000019bd branch  0x00002e03 , 0x00000028 
+ 00011386  0x000019be branch  0x00002e34 
+ 00011387  0x000019c1 call  0x00002e24 
+ 00011388  0x000019c2 call  0x00002e13 
+ 00011389  0x000019c3 call  0x00002d02 
+ 00011390  0x000019c4 call  0x00002d96 
+ 00011391  0x000019c5 nbranch  0x00002c79 , 0x00000034 
+ 00011392  0x000019c7 call  0x00007c64 
+ 00011393  0x000019c8 fetch  0x00000002 , 0x00000678 
+ 00011394  0x000019c9 increase  0xffffffff , 0x0000003f 
+ 00011395  0x000019ca istore  0x00000002 , 0x00000005 
+ 00011396  0x000019cb call  0x00002e30 
+ 00011397  0x000019cc call  0x00002c90 
+ 00011398  0x000019cd increase  0xffffffff , 0x0000000b 
+ 00011399  0x000019ce branch  0x00002c79 , 0x00000005 
+ 00011400  0x000019cf branch  0x00002c77 
+ 00011401  0x000019d3 fetch  0x00000002 , 0x00000678 
+ 00011402  0x000019d4 istore  0x00000002 , 0x00000005 
+ 00011403  0x000019d6 fetch  0x00000001 , 0x000006c6 
+ 00011404  0x000019d7 copy  0x0000003f , 0x00000039 
+ 00011405  0x000019d8 call  0x00007c67 
+ 00011406  0x000019d9 call  0x00007ccc 
+ 00011407  0x000019da branch  0x00007c6a 
+ 00011408  0x000019dc call  0x00007c64 
+ 00011409  0x000019dd fetch  0x00000002 , 0x00000678 
+ 00011410  0x000019de istore  0x00000002 , 0x00000005 
+ 00011411  0x000019df call  0x00007c6a 
+ 00011412  0x000019e0 fetch  0x00000001 , 0x000006cd 
+ 00011413  0x000019e1 copy  0x0000003f , 0x00000039 
+ 00011414  0x000019e2 call  0x00007c64 
+ 00011415  0x000019e3 call  0x00007c67 
+ 00011416  0x000019e4 isub  0x00000039 , 0x00000006 
+ 00011417  0x000019e5 increase  0xffffffff , 0x00000006 
+ 00011418  0x000019e6 call  0x00007ccc 
+ 00011419  0x000019e7 branch  0x00007c6a 
+ 00011420  0x000019ea bpatchx  0x00000055 , 0x0000402a 
+ 00011421  0x000019eb call  0x00002ce0 
+ 00011422  0x000019ec branch  0x00002e03 , 0x00000034 
+ 00011423  0x000019ed copy  0x00000006 , 0x00000013 
+ 00011424  0x000019ef call  0x00002e46 
+ 00011425  0x000019f0 copy  0x00000013 , 0x00000006 
+ 00011426  0x000019f1 ifetcht  0x00000001 , 0x00000006 
+ 00011427  0x000019f2 increase  0x00000004 , 0x00000002 
+ 00011428  0x000019f3 call  0x00007db0 
+ 00011429  0x000019f4 copy  0x0000003f , 0x00000013 
+ 00011430  0x000019f5 copy  0x0000003f , 0x00000011 
+ 00011431  0x000019f6 call  0x00007c6d 
+ 00011432  0x000019f7 call  0x00002e10 
+ 00011433  0x000019f9 setarg  0x00000009 
+ 00011434  0x000019fa istore  0x00000001 , 0x00000005 
+ 00011435  0x000019fb add  0x00000013 , 0xfffffffe , 0x0000003f 
+ 00011436  0x000019fc add  0x0000003f , 0xfffffffe , 0x00000039 
+ 00011437  0x000019fd istore  0x00000001 , 0x00000005 
+ 00011438  0x000019fe fetch  0x00000002 , 0x000006de 
+ 00011439  0x000019ff istore  0x00000002 , 0x00000005 
+ 00011440  0x00001a00 call  0x00007c67 
+ 00011441  0x00001a01 branch  0x00007ccc 
+ 00011442  0x00001a05 call  0x00002ce0 
+ 00011443  0x00001a06 branch  0x00002e03 , 0x00000034 
+ 00011444  0x00001a07 increase  0xfffffffb , 0x00000006 
+ 00011445  0x00001a08 ifetch  0x00000002 , 0x00000006 
+ 00011446  0x00001a09 store  0x00000002 , 0x00000678 
+ 00011447  0x00001a0a call  0x00002e46 
+ 00011448  0x00001a0b fetcht  0x00000001 , 0x0000426b 
+ 00011449  0x00001a0c increase  0x00000004 , 0x00000002 
+ 00011450  0x00001a0d call  0x00007db0 
+ 00011451  0x00001a0e copy  0x0000003f , 0x00000013 
+ 00011452  0x00001a0f copy  0x0000003f , 0x00000011 
+ 00011453  0x00001a10 call  0x00002e10 
+ 00011454  0x00001a11 setarg  0x00000009 
+ 00011455  0x00001a12 istore  0x00000001 , 0x00000005 
+ 00011456  0x00001a13 add  0x00000013 , 0xfffffffe , 0x0000003f 
+ 00011457  0x00001a14 add  0x0000003f , 0xfffffffe , 0x00000039 
+ 00011458  0x00001a15 istore  0x00000001 , 0x00000005 
+ 00011459  0x00001a16 fetch  0x00000002 , 0x00000678 
+ 00011460  0x00001a17 istore  0x00000002 , 0x00000005 
+ 00011461  0x00001a18 arg  0x0000426c , 0x00000006 
+ 00011462  0x00001a19 branch  0x00007ccc 
+ 00011463  0x00001a1d bpatchx  0x00000056 , 0x0000402a 
+ 00011464  0x00001a1e fetch  0x00000002 , 0x000006b1 
+ 00011465  0x00001a1f iforce  0x00000012 
+ 00011466  0x00001a20 fetch  0x00000002 , 0x000006b3 
+ 00011467  0x00001a21 iforce  0x00000013 
+ 00011468  0x00001a22 fetch  0x00000002 , 0x000042f7 
+ 00011469  0x00001a23 iforce  0x00000006 
+ 00011470  0x00001a24 branch  0x00007dba 
+ 00011471  0x00001a29 call  0x00002cd2 
+ 00011472  0x00001a2a branch  0x00002cdd , 0x00000005 
+ 00011473  0x00001a2b rtn 
+ 00011474  0x00001a2e bpatchx  0x00000057 , 0x0000402a 
+ 00011475  0x00001a2f fetch  0x00000002 , 0x000042f7 
+ 00011476  0x00001a30 iforce  0x00000006 
+ 00011477  0x00001a32 ifetch  0x00000002 , 0x00000006 
+ 00011478  0x00001a33 and_into  0x000000ff , 0x0000003f 
+ 00011479  0x00001a34 rtn  0x00000034 
+ 00011480  0x00001a35 isub  0x00000002 , 0x0000003e 
+ 00011481  0x00001a36 rtn  0x00000005 
+ 00011482  0x00001a37 call  0x00002cdd 
+ 00011483  0x00001a38 call  0x00002cdd 
+ 00011484  0x00001a39 branch  0x00002cd5 
+ 00011485  0x00001a3d ifetch  0x00000001 , 0x00000006 
+ 00011486  0x00001a3e iadd  0x00000006 , 0x00000006 
+ 00011487  0x00001a3f rtn 
+ 00011488  0x00001a43 bpatchx  0x00000058 , 0x0000402b 
+ 00011489  0x00001a44 fetch  0x00000002 , 0x000042f7 
+ 00011490  0x00001a45 iforce  0x00000006 
+ 00011491  0x00001a47 ifetch  0x00000002 , 0x00000006 
+ 00011492  0x00001a48 and_into  0x000000ff , 0x0000003f 
+ 00011493  0x00001a49 rtn  0x00000034 
+ 00011494  0x00001a4a store  0x00000002 , 0x000006de 
+ 00011495  0x00001a4b ifetch  0x00000001 , 0x00000006 
+ 00011496  0x00001a4c copy  0x00000006 , 0x00000005 
+ 00011497  0x00001a4d iadd  0x00000006 , 0x00000006 
+ 00011498  0x00001a4e fetcht  0x00000001 , 0x000006b5 
+ 00011499  0x00001a4f isub  0x00000002 , 0x0000003e 
+ 00011500  0x00001a50 nbranch  0x00002cf3 , 0x00000005 
+ 00011501  0x00001a51 copy  0x0000003f , 0x00000039 
+ 00011502  0x00001a52 copy  0x00000005 , 0x00000012 
+ 00011503  0x00001a53 arg  0x000006b6 , 0x00000011 
+ 00011504  0x00001a54 call  0x00007d64 
+ 00011505  0x00001a55 rtn  0x00000005 
+ 00011506  0x00001a56 fetch  0x00000001 , 0x000006b5 
+ 00011507  0x00001a58 iadd  0x00000005 , 0x00000006 
+ 00011508  0x00001a59 call  0x00002cdd 
+ 00011509  0x00001a5a branch  0x00002ce3 
+ 00011510  0x00001a62 arg  0x00000001 , 0x00000002 
+ 00011511  0x00001a63 fetch  0x00000002 , 0x000042f7 
+ 00011512  0x00001a64 iforce  0x00000006 
+ 00011513  0x00001a65 copy  0x00000006 , 0x00000005 
+ 00011514  0x00001a67 ifetch  0x00000002 , 0x00000006 
+ 00011515  0x00001a68 and_into  0x000000ff , 0x0000003f 
+ 00011516  0x00001a69 rtn  0x00000034 
+ 00011517  0x00001a6a add  0x0000003f , 0x00000001 , 0x00000002 
+ 00011518  0x00001a6b call  0x00002cdd 
+ 00011519  0x00001a6c call  0x00002cdd 
+ 00011520  0x00001a6d copy  0x00000006 , 0x00000005 
+ 00011521  0x00001a6e branch  0x00002cfa 
+ 00011522  0x00001a72 fetch  0x00000002 , 0x000006c7 
+ 00011523  0x00001a73 branch  0x00002d06 
+ 00011524  0x00001a76 bpatchx  0x00000059 , 0x0000402b 
+ 00011525  0x00001a77 fetch  0x00000002 , 0x000042f7 
+ 00011526  0x00001a79 iforce  0x00000006 
+ 00011527  0x00001a7b ifetch  0x00000002 , 0x00000006 
+ 00011528  0x00001a7c and_into  0x000000ff , 0x0000003f 
+ 00011529  0x00001a7d branch  0x00002d0f , 0x00000034 
+ 00011530  0x00001a7e isub  0x00000002 , 0x0000003e 
+ 00011531  0x00001a7f branch  0x00002d10 , 0x00000005 
+ 00011532  0x00001a80 call  0x00002cdd 
+ 00011533  0x00001a81 call  0x00002cdd 
+ 00011534  0x00001a82 branch  0x00002d07 
+ 00011535  0x00001a85 branch  0x00007dc8 
+ 00011536  0x00001a88 ifetch  0x00000001 , 0x00000006 
+ 00011537  0x00001a89 store  0x00000001 , 0x000006cd 
+ 00011538  0x00001a8a copy  0x0000003f , 0x00000039 
+ 00011539  0x00001a8b arg  0x000006ce , 0x00000005 
+ 00011540  0x00001a8c call  0x00007ccc 
+ 00011541  0x00001a8d ifetch  0x00000001 , 0x00000006 
+ 00011542  0x00001a8e store  0x00000001 , 0x000006c6 
+ 00011543  0x00001a8f call  0x00007c6d 
+ 00011544  0x00001a90 branch  0x00007dca 
+ 00011545  0x00001a95 call  0x00002dc7 
+ 00011546  0x00001a96 fetcht  0x00000002 , 0x00004398 
+ 00011547  0x00001a97 fetch  0x00000001 , 0x00004321 
+ 00011548  0x00001a98 bbit1  0x00000003 , 0x00002d42 
+ 00011549  0x00001a9c call  0x00002cd2 
+ 00011550  0x00001a9d nbranch  0x00002e03 , 0x00000005 
+ 00011551  0x00001a9e call  0x00002d48 , 0x00000028 
+ 00011552  0x00001a9f rtn  0x00000028 
+ 00011553  0x00001aa0 call  0x00002cdd 
+ 00011554  0x00001aa1 increase  0xfffffffe , 0x00000006 
+ 00011555  0x00001aa2 ifetch  0x00000002 , 0x00000006 
+ 00011556  0x00001aa3 arg  0x00002a00 , 0x00000002 
+ 00011557  0x00001aa4 isub  0x00000002 , 0x0000003e 
+ 00011558  0x00001aa5 branch  0x00002d36 , 0x00000005 
+ 00011559  0x00001aa6 copy  0x00000006 , 0x00000013 
+ 00011560  0x00001aa7 call  0x00002e46 
+ 00011561  0x00001aa8 copy  0x00000013 , 0x00000006 
+ 00011562  0x00001aa9 ifetcht  0x00000001 , 0x00000006 
+ 00011563  0x00001aaa increase  0x00000001 , 0x00000002 
+ 00011564  0x00001aab call  0x00007db0 
+ 00011565  0x00001aad copy  0x0000003f , 0x00000013 
+ 00011566  0x00001aae copy  0x0000003f , 0x00000011 
+ 00011567  0x00001aaf call  0x00007c6d 
+ 00011568  0x00001ab0 call  0x00002e10 
+ 00011569  0x00001ab1 setarg  0x0000000b 
+ 00011570  0x00001ab2 istore  0x00000001 , 0x00000005 
+ 00011571  0x00001ab3 add  0x00000013 , 0xffffffff , 0x00000039 
+ 00011572  0x00001ab4 call  0x00007c67 
+ 00011573  0x00001ab5 branch  0x00007cda 
+ 00011574  0x00001ab8 call  0x00002e46 
+ 00011575  0x00001ab9 fetcht  0x00000001 , 0x0000426b 
+ 00011576  0x00001aba increase  0x00000001 , 0x00000002 
+ 00011577  0x00001abb call  0x00007db0 
+ 00011578  0x00001abc copy  0x0000003f , 0x00000013 
+ 00011579  0x00001abd copy  0x0000003f , 0x00000011 
+ 00011580  0x00001abf call  0x00002e10 
+ 00011581  0x00001ac0 setarg  0x0000000b 
+ 00011582  0x00001ac1 istore  0x00000001 , 0x00000005 
+ 00011583  0x00001ac2 add  0x00000013 , 0xffffffff , 0x00000039 
+ 00011584  0x00001ac3 arg  0x0000426c , 0x00000006 
+ 00011585  0x00001ac4 branch  0x00007cda 
+ 00011586  0x00001ac8 fetch  0x00000002 , 0x00004332 
+ 00011587  0x00001ac9 isub  0x00000002 , 0x0000003e 
+ 00011588  0x00001aca nbranch  0x00002d1d , 0x00000005 
+ 00011589  0x00001acb nbranch  0x00002d1d , 0x00000028 
+ 00011590  0x00001acd jam  0x00000005 , 0x000001b9 
+ 00011591  0x00001ace branch  0x00002e05 
+ 00011592  0x00001ad1 increase  0xfffffffe , 0x00000006 
+ 00011593  0x00001ad2 ifetch  0x00000002 , 0x00000006 
+ 00011594  0x00001ad3 bbit1  0x0000000e , 0x00002d46 
+ 00011595  0x00001ad4 branch  0x00007dbc 
+ 00011596  0x00001ad7 ifetch  0x00000002 , 0x00000006 
+ 00011597  0x00001ad8 store  0x00000002 , 0x000006b5 
+ 00011598  0x00001ad9 iforce  0x00000011 
+ 00011599  0x00001ada fetcht  0x00000002 , 0x00004398 
+ 00011600  0x00001adc call  0x00002ccf 
+ 00011601  0x00001add branch  0x00002e03 , 0x00000034 
+ 00011602  0x00001ade ifetch  0x00000001 , 0x00000006 
+ 00011603  0x00001adf isub  0x00000011 , 0x00000039 
+ 00011604  0x00001ae0 nbranch  0x00002e03 , 0x00000002 
+ 00011605  0x00001ae1 call  0x00007c6d 
+ 00011606  0x00001ae2 call  0x00002e46 
+ 00011607  0x00001ae3 add  0x00000039 , 0x00000001 , 0x00000002 
+ 00011608  0x00001ae4 call  0x00007db0 
+ 00011609  0x00001ae6 copy  0x0000003f , 0x00000011 
+ 00011610  0x00001ae7 copy  0x0000003f , 0x00000013 
+ 00011611  0x00001ae8 call  0x00002e10 
+ 00011612  0x00001ae9 setarg  0x0000000d 
+ 00011613  0x00001aea istore  0x00000001 , 0x00000005 
+ 00011614  0x00001aeb add  0x00000013 , 0xffffffff , 0x00000039 
+ 00011615  0x00001aec fetcht  0x00000002 , 0x000006b5 
+ 00011616  0x00001aed call  0x00007c67 
+ 00011617  0x00001aee iadd  0x00000002 , 0x00000006 
+ 00011618  0x00001aef branch  0x00007ccc 
+ 00011619  0x00001af4 call  0x00002e41 
+ 00011620  0x00001af5 call  0x00002e4a 
+ 00011621  0x00001af6 branch  0x00002d66 
+ 00011622  0x00001afd arg  0x00000002 , 0x0000000b 
+ 00011623  0x00001afe fetcht  0x00000002 , 0x000006b1 
+ 00011624  0x00001aff storet  0x00000002 , 0x00000678 
+ 00011625  0x00001b00 call  0x00002cd2 
+ 00011626  0x00001b01 increase  0xfffffffe , 0x00000006 
+ 00011627  0x00001b02 copy  0x00000006 , 0x0000003f 
+ 00011628  0x00001b03 store  0x00000002 , 0x000006c7 
+ 00011629  0x00001b05 call  0x00002e17 
+ 00011630  0x00001b06 nbranch  0x00002d9e , 0x00000002 
+ 00011631  0x00001b07 fetcht  0x00000002 , 0x00000678 
+ 00011632  0x00001b08 call  0x00002d02 
+ 00011633  0x00001b09 nbranch  0x00002da1 , 0x00000034 
+ 00011634  0x00001b0b call  0x00002e1b 
+ 00011635  0x00001b0c nbranch  0x00002d94 , 0x00000005 
+ 00011636  0x00001b0d copy  0x0000000b , 0x0000003f 
+ 00011637  0x00001b0e beq  0x00000000 , 0x00002da1 
+ 00011638  0x00001b0f nbranch  0x00002d8a , 0x00000028 
+ 00011639  0x00001b10 disable  0x00000028 
+ 00011640  0x00001b12 call  0x00002e46 
+ 00011641  0x00001b13 copy  0x0000003f , 0x00000011 
+ 00011642  0x00001b14 call  0x00002e10 
+ 00011643  0x00001b15 setarg  0x00000011 
+ 00011644  0x00001b16 istore  0x00000001 , 0x00000005 
+ 00011645  0x00001b17 fetch  0x00000001 , 0x000006c6 
+ 00011646  0x00001b18 add  0x0000003f , 0x00000004 , 0x00000011 
+ 00011647  0x00001b19 istorer  0x00000011 , 0x00000001 , 0x00000005 
+ 00011648  0x00001b1a call  0x00007c6a 
+ 00011649  0x00001b1b sub  0x00000011 , 0x00000006 , 0x0000003e 
+ 00011650  0x00001b1c ncall  0x00007dbe , 0x00000005 
+ 00011651  0x00001b1d call  0x00007dc0 , 0x00000005 
+ 00011652  0x00001b1e call  0x00002e46 
+ 00011653  0x00001b1f increase  0xfffffffe , 0x0000003f 
+ 00011654  0x00001b20 idiv  0x00000011 
+ 00011655  0x00001b21 call  0x00007d62 
+ 00011656  0x00001b22 quotient  0x0000000b 
+ 00011657  0x00001b23 branch  0x00002d90 
+ 00011658  0x00001b25 call  0x00002d98 
+ 00011659  0x00001b26 nbranch  0x00002da1 , 0x00000034 
+ 00011660  0x00001b27 fetch  0x00000002 , 0x00000678 
+ 00011661  0x00001b28 increase  0xffffffff , 0x0000003f 
+ 00011662  0x00001b29 store  0x00000002 , 0x000006cb 
+ 00011663  0x00001b2a call  0x00002e2a 
+ 00011664  0x00001b2c fetch  0x00000002 , 0x00000678 
+ 00011665  0x00001b2d store  0x00000002 , 0x000006c9 
+ 00011666  0x00001b2e call  0x00002e24 
+ 00011667  0x00001b2f increase  0xffffffff , 0x0000000b 
+ 00011668  0x00001b32 call  0x00002e13 
+ 00011669  0x00001b33 branch  0x00002d6d 
+ 00011670  0x00001b36 fetch  0x00000001 , 0x000006cd 
+ 00011671  0x00001b37 branch  0x00002d99 
+ 00011672  0x00001b3b fetch  0x00000001 , 0x000006c6 
+ 00011673  0x00001b3c branch  0x00002d9c , 0x0000002c 
+ 00011674  0x00001b3d increase  0xfffffffe , 0x0000003f 
+ 00011675  0x00001b3e rtn 
+ 00011676  0x00001b41 increase  0xfffffff0 , 0x0000003f 
+ 00011677  0x00001b42 rtn 
+ 00011678  0x00001b45 fetch  0x00000002 , 0x00000678 
+ 00011679  0x00001b46 store  0x00000002 , 0x000006cb 
+ 00011680  0x00001b47 branch  0x00002da5 
+ 00011681  0x00001b49 fetch  0x00000002 , 0x00000678 
+ 00011682  0x00001b4a increase  0xffffffff , 0x0000003f 
+ 00011683  0x00001b4b store  0x00000002 , 0x000006cb 
+ 00011684  0x00001b4c branch  0x00002da5 
+ 00011685  0x00001b4e branch  0x00002e03 , 0x00000028 
+ 00011686  0x00001b4f call  0x00002e2a 
+ 00011687  0x00001b50 branch  0x00002e34 
+ 00011688  0x00001b56 copy  0x00000006 , 0x00000011 
+ 00011689  0x00001b57 fetch  0x00000002 , 0x00004335 
+ 00011690  0x00001b58 add  0x0000003f , 0xfffffffd , 0x00000012 
+ 00011691  0x00001b59 call  0x00002929 
+ 00011692  0x00001b5b bpatchx  0x0000005a , 0x0000402b 
+ 00011693  0x00001b5c call  0x00002dc7 
+ 00011694  0x00001b5d fetcht  0x00000002 , 0x00004398 
+ 00011695  0x00001b5e call  0x00002cd2 
+ 00011696  0x00001b5f nbranch  0x00002dc5 , 0x00000005 
+ 00011697  0x00001b60 call  0x00002dc1 , 0x00000028 
+ 00011698  0x00001b61 rtn  0x00000028 
+ 00011699  0x00001b63 fetch  0x00000001 , 0x00004321 
+ 00011700  0x00001b64 bbit0  0x00000004 , 0x00002dbc 
+ 00011701  0x00001b66 fetcht  0x00000002 , 0x00004398 
+ 00011702  0x00001b67 fetch  0x00000002 , 0x00004332 
+ 00011703  0x00001b68 isub  0x00000002 , 0x0000003e 
+ 00011704  0x00001b69 nbranch  0x00002dbc , 0x00000005 
+ 00011705  0x00001b6a call  0x00002dc7 
+ 00011706  0x00001b6b nbranch  0x00002dbc , 0x00000028 
+ 00011707  0x00001b6c branch  0x00002d46 
+ 00011708  0x00001b70 force  0x00000001 , 0x00000011 
+ 00011709  0x00001b71 call  0x00002e10 
+ 00011710  0x00001b72 setarg  0x00000013 
+ 00011711  0x00001b73 istore  0x00000001 , 0x00000005 
+ 00011712  0x00001b74 rtn 
+ 00011713  0x00001b77 increase  0xfffffffe , 0x00000006 
+ 00011714  0x00001b78 ifetch  0x00000002 , 0x00000006 
+ 00011715  0x00001b79 bbit1  0x0000000f , 0x00002d46 
+ 00011716  0x00001b7a branch  0x00007dbc 
+ 00011717  0x00001b7d jam  0x00000001 , 0x000001b9 
+ 00011718  0x00001b7e branch  0x00002e05 
+ 00011719  0x00001b82 bpatchx  0x0000005b , 0x0000402b 
+ 00011720  0x00001b83 call  0x00007dbc 
+ 00011721  0x00001b84 fetch  0x00000001 , 0x000042fe 
+ 00011722  0x00001b85 rtneq  0x00000000 
+ 00011723  0x00001b86 fetch  0x00000001 , 0x00004040 
+ 00011724  0x00001b87 rtnbit1  0x00000004 
+ 00011725  0x00001b88 branch  0x00007dba 
+ 00011726  0x00001b8c add  0x00000006 , 0x00000002 , 0x00000011 
+ 00011727  0x00001b8d fetch  0x00000002 , 0x00004335 
+ 00011728  0x00001b8e add  0x0000003f , 0xfffffffb , 0x00000012 
+ 00011729  0x00001b8f call  0x00002929 
+ 00011730  0x00001b90 branch  0x00002dd3 
+ 00011731  0x00001b94 fetch  0x00000002 , 0x00004335 
+ 00011732  0x00001b95 copy  0x0000003f , 0x00000011 
+ 00011733  0x00001b96 call  0x00002e10 
+ 00011734  0x00001b97 setarg  0x00000017 
+ 00011735  0x00001b98 istore  0x00000001 , 0x00000005 
+ 00011736  0x00001b99 fetch  0x00000002 , 0x00004398 
+ 00011737  0x00001b9a istore  0x00000002 , 0x00000005 
+ 00011738  0x00001b9b fetch  0x00000002 , 0x00004335 
+ 00011739  0x00001b9c add  0x0000003f , 0xfffffffb , 0x00000039 
+ 00011740  0x00001b9d fetch  0x00000002 , 0x00004339 
+ 00011741  0x00001b9e add  0x0000003f , 0x00000007 , 0x00000006 
+ 00011742  0x00001b9f ifetch  0x00000002 , 0x00000006 
+ 00011743  0x00001ba0 istore  0x00000002 , 0x00000005 
+ 00011744  0x00001ba1 branch  0x00007ccc 
+ 00011745  0x00001ba8 force  0x00000001 , 0x00000011 
+ 00011746  0x00001ba9 call  0x00002e10 
+ 00011747  0x00001baa setarg  0x00000019 
+ 00011748  0x00001bab istore  0x00000001 , 0x00000005 
+ 00011749  0x00001bac rtn 
+ 00011750  0x00001baf fetch  0x00000001 , 0x00004396 
+ 00011751  0x00001bb0 set0  0x00000000 , 0x0000003f 
+ 00011752  0x00001bb1 store  0x00000001 , 0x00004396 
+ 00011753  0x00001bb2 rtn 
+ 00011754  0x00001bb5 copy  0x00000006 , 0x00000011 
+ 00011755  0x00001bb6 fetch  0x00000002 , 0x00004335 
+ 00011756  0x00001bb7 add  0x0000003f , 0xfffffffd , 0x00000012 
+ 00011757  0x00001bb8 branch  0x00002929 
+ 00011758  0x00001bbe copy  0x00000002 , 0x00000013 
+ 00011759  0x00001bbf increase  0x00000003 , 0x00000011 
+ 00011760  0x00001bc0 call  0x00002e10 
+ 00011761  0x00001bc1 increase  0xfffffffd , 0x00000011 
+ 00011762  0x00001bc2 setarg  0x0000001b 
+ 00011763  0x00001bc3 istore  0x00000001 , 0x00000005 
+ 00011764  0x00001bc4 copy  0x00000013 , 0x00000002 
+ 00011765  0x00001bc5 istoret  0x00000002 , 0x00000005 
+ 00011766  0x00001bc6 rtn 
+ 00011767  0x00001bca fetch  0x00000001 , 0x00004396 
+ 00011768  0x00001bcb set1  0x00000000 , 0x0000003f 
+ 00011769  0x00001bcc store  0x00000001 , 0x00004396 
+ 00011770  0x00001bcd copy  0x00000002 , 0x00000013 
+ 00011771  0x00001bce increase  0x00000003 , 0x00000011 
+ 00011772  0x00001bcf call  0x00002e10 
+ 00011773  0x00001bd0 increase  0xfffffffd , 0x00000011 
+ 00011774  0x00001bd1 setarg  0x0000001d 
+ 00011775  0x00001bd2 istore  0x00000001 , 0x00000005 
+ 00011776  0x00001bd3 copy  0x00000013 , 0x00000002 
+ 00011777  0x00001bd4 istoret  0x00000002 , 0x00000005 
+ 00011778  0x00001bd5 rtn 
+ 00011779  0x00001bdb bpatchx  0x0000005c , 0x0000402b 
+ 00011780  0x00001bdc jam  0x0000000a , 0x000001b9 
+ 00011781  0x00001bde force  0x00000005 , 0x00000011 
+ 00011782  0x00001bdf call  0x00002e10 
+ 00011783  0x00001be0 setarg  0x00000001 
+ 00011784  0x00001be1 istore  0x00000001 , 0x00000005 
+ 00011785  0x00001be2 fetch  0x00000001 , 0x00004397 
+ 00011786  0x00001be3 istore  0x00000001 , 0x00000005 
+ 00011787  0x00001be4 fetch  0x00000002 , 0x00004398 
+ 00011788  0x00001be5 istore  0x00000002 , 0x00000005 
+ 00011789  0x00001be6 fetch  0x00000001 , 0x000001b9 
+ 00011790  0x00001be7 istore  0x00000001 , 0x00000005 
+ 00011791  0x00001be8 rtn 
+ 00011792  0x00001bec bpatchx  0x0000005d , 0x0000402b 
+ 00011793  0x00001bed force  0x00000004 , 0x00000012 
+ 00011794  0x00001bee branch  0x000029fb 
+ 00011795  0x00001bf2 fetcht  0x00000002 , 0x00000678 
+ 00011796  0x00001bf3 increase  0x00000001 , 0x00000002 
+ 00011797  0x00001bf4 storet  0x00000002 , 0x00000678 
+ 00011798  0x00001bf5 rtn 
+ 00011799  0x00001bf8 fetcht  0x00000002 , 0x00000678 
+ 00011800  0x00001bf9 fetch  0x00000002 , 0x000006b3 
+ 00011801  0x00001bfa isub  0x00000002 , 0x0000003e 
+ 00011802  0x00001bfb rtn 
+ 00011803  0x00001bff bpatchx  0x0000005e , 0x0000402b 
+ 00011804  0x00001c00 fetcht  0x00000001 , 0x000006b5 
+ 00011805  0x00001c01 arg  0x000006b6 , 0x00000011 
+ 00011806  0x00001c03 fetch  0x00000001 , 0x000006cd 
+ 00011807  0x00001c04 copy  0x0000003f , 0x00000039 
+ 00011808  0x00001c05 isub  0x00000002 , 0x0000003e 
+ 00011809  0x00001c06 nrtn  0x00000005 
+ 00011810  0x00001c07 arg  0x000006ce , 0x00000012 
+ 00011811  0x00001c08 branch  0x00007d64 
+ 00011812  0x00001c0c bpatchx  0x0000005f , 0x0000402b 
+ 00011813  0x00001c0d fetch  0x00000001 , 0x000006c6 
+ 00011814  0x00001c0e store  0x00000001 , 0x000006a1 
+ 00011815  0x00001c0f copy  0x0000003f , 0x00000039 
+ 00011816  0x00001c10 call  0x00007c67 
+ 00011817  0x00001c11 branch  0x00007ccc 
+ 00011818  0x00001c15 bpatchx  0x00000060 , 0x0000402c 
+ 00011819  0x00001c16 call  0x00007c64 
+ 00011820  0x00001c17 fetch  0x00000002 , 0x000006c9 
+ 00011821  0x00001c18 istore  0x00000002 , 0x00000005 
+ 00011822  0x00001c19 fetch  0x00000002 , 0x000006cb 
+ 00011823  0x00001c1a istore  0x00000002 , 0x00000005 
+ 00011824  0x00001c1c fetch  0x00000001 , 0x000006a1 
+ 00011825  0x00001c1d copy  0x0000003f , 0x00000039 
+ 00011826  0x00001c1e call  0x00007ccc 
+ 00011827  0x00001c1f branch  0x00007c6a 
+ 00011828  0x00001c24 bpatchx  0x00000061 , 0x0000402c 
+ 00011829  0x00001c25 call  0x00007c64 
+ 00011830  0x00001c26 call  0x00002a21 
+ 00011831  0x00001c27 copy  0x00000005 , 0x0000003f 
+ 00011832  0x00001c28 isub  0x00000006 , 0x00000011 
+ 00011833  0x00001c29 call  0x00002a24 
+ 00011834  0x00001c2a copy  0x00000011 , 0x0000003f 
+ 00011835  0x00001c2b istore  0x00000002 , 0x00000006 
+ 00011836  0x00001c2c increase  0x00000004 , 0x00000011 
+ 00011837  0x00001c2d call  0x00002a16 
+ 00011838  0x00001c2e copy  0x00000011 , 0x0000003f 
+ 00011839  0x00001c2f istore  0x00000001 , 0x00000006 
+ 00011840  0x00001c30 rtn 
+ 00011841  0x00001c34 rshift8  0x0000003f , 0x0000003f 
+ 00011842  0x00001c35 store  0x00000002 , 0x000006b1 
+ 00011843  0x00001c36 ifetch  0x00000002 , 0x00000006 
+ 00011844  0x00001c37 store  0x00000002 , 0x000006b3 
+ 00011845  0x00001c38 rtn 
+ 00011846  0x00001c3c bpatchx  0x00000062 , 0x0000402c 
+ 00011847  0x00001c3d fetch  0x00000002 , 0x000042e3 
+ 00011848  0x00001c3f fetcht  0x00000002 , 0x000042e1 
+ 00011849  0x00001c43 branch  0x00007db0 
+ 00011850  0x00001c48 bpatchx  0x00000063 , 0x0000402c 
+ 00011851  0x00001c49 call  0x00007c6d 
+ 00011852  0x00001c4a arg  0x000006b5 , 0x00000005 
+ 00011853  0x00001c4c fetch  0x00000002 , 0x00004335 
+ 00011854  0x00001c4d increase  0xfffffffb , 0x0000003f 
+ 00011855  0x00001c4f istore  0x00000001 , 0x00000005 
+ 00011856  0x00001c50 copy  0x0000003f , 0x00000039 
+ 00011857  0x00001c51 call  0x00007c67 
+ 00011858  0x00001c52 branch  0x00007ccc 
+ 00011859  0x00001c57 fetch  0x00000002 , 0x00000050 
+ 00011860  0x00001c58 rtnne  0x00000004 
+ 00011861  0x00001c59 fetch  0x00000001 , 0x00004396 
+ 00011862  0x00001c5a set1  0x00000001 , 0x0000003f 
+ 00011863  0x00001c5b store  0x00000001 , 0x00004396 
+ 00011864  0x00001c5c fetch  0x00000003 , 0x00000052 
+ 00011865  0x00001c5d store  0x00000003 , 0x00004397 
+ 00011866  0x00001c5e set1  0x0000000f , 0x00000000 
+ 00011867  0x00001c5f beq  0x00000012 , 0x00002e6e 
+ 00011868  0x00001c60 beq  0x00000052 , 0x00002e73 
+ 00011869  0x00001c61 beq  0x00000018 , 0x00002de1 
+ 00011870  0x00001c62 beq  0x00000002 , 0x00002bab 
+ 00011871  0x00001c63 beq  0x0000001e , 0x00002de6 
+ 00011872  0x00001c64 set0  0x0000000f , 0x00000000 
+ 00011873  0x00001c66 fetch  0x00000001 , 0x00004396 
+ 00011874  0x00001c67 set0  0x00000001 , 0x0000003f 
+ 00011875  0x00001c68 store  0x00000001 , 0x00004396 
+ 00011876  0x00001c69 rtn 
+ 00011877  0x00001c6c fetch  0x00000001 , 0x00004396 
+ 00011878  0x00001c6d rtnbit0  0x00000001 
+ 00011879  0x00001c6e set1  0x0000000f , 0x00000000 
+ 00011880  0x00001c6f call  0x00002e7e 
+ 00011881  0x00001c70 call  0x00002e84 
+ 00011882  0x00001c71 call  0x00002e61 , 0x00000028 
+ 00011883  0x00001c72 fetch  0x00000001 , 0x00004397 
+ 00011884  0x00001c73 beq  0x00000012 , 0x00002dac 
+ 00011885  0x00001c74 rtn 
+ 00011886  0x00001c78 call  0x00002e73 
+ 00011887  0x00001c79 branch  0x00002e70 
+ 00011888  0x00001c7c call  0x00002e84 
+ 00011889  0x00001c7d nrtn  0x00000028 
+ 00011890  0x00001c7e branch  0x00002dac 
+ 00011891  0x00001c82 bpatchx  0x00000064 , 0x0000402c 
+ 00011892  0x00001c83 call  0x00002e77 
+ 00011893  0x00001c84 arg  0x00000055 , 0x00000011 
+ 00011894  0x00001c85 branch  0x00002929 
+ 00011895  0x00001c89 fetch  0x00000001 , 0x0000004d 
+ 00011896  0x00001c8a add  0x0000003f , 0xfffffff9 , 0x00000012 
+ 00011897  0x00001c8b increase  0xfffffffc , 0x0000003f 
+ 00011898  0x00001c8c store  0x00000002 , 0x00004337 
+ 00011899  0x00001c8d fetcht  0x00000002 , 0x0000004e 
+ 00011900  0x00001c8e storet  0x00000002 , 0x00004335 
+ 00011901  0x00001c8f rtn 
+ 00011902  0x00001c93 fetchr  0x00000012 , 0x00000001 , 0x0000004d 
+ 00011903  0x00001c94 fetch  0x00000002 , 0x00004337 
+ 00011904  0x00001c95 iadd  0x00000012 , 0x00000002 
+ 00011905  0x00001c96 storet  0x00000002 , 0x00004337 
+ 00011906  0x00001c97 arg  0x0000004e , 0x00000011 
+ 00011907  0x00001c98 branch  0x00002929 
+ 00011908  0x00001c9d call  0x00007dbc 
+ 00011909  0x00001c9e fetch  0x00000002 , 0x00004337 
+ 00011910  0x00001c9f fetcht  0x00000002 , 0x00004335 
+ 00011911  0x00001ca0 isub  0x00000002 , 0x0000003e 
+ 00011912  0x00001ca1 nrtn  0x00000005 
+ 00011913  0x00001ca2 branch  0x00007dba 
+ 00011914  0x00001ca9 ifetch  0x00000001 , 0x00000006 
+ 00011915  0x00001caa ifetcht  0x00000001 , 0x00000006 
+ 00011916  0x00001cab ifetcht  0x00000002 , 0x00000006 
+ 00011917  0x00001cac beq  0x00000013 , 0x00002e8f 
+ 00011918  0x00001cad rtn 
+ 00011919  0x00001caf ifetch  0x00000002 , 0x00000006 
+ 00011920  0x00001cb0 store  0x00000002 , 0x0000433c 
+ 00011921  0x00001cb1 jam  0x00000040 , 0x0000066f 
+ 00011922  0x00001cb2 branch  0x0000782b 
+ 00011923  0x00001cb9 arg  0x0000000c , 0x00000011 
+ 00011924  0x00001cba arg  0x00000012 , 0x00000013 
+ 00011925  0x00001cbb call  0x00002e9b 
+ 00011926  0x00001cbc setarg  0x00000008 
+ 00011927  0x00001cbd istore  0x00000002 , 0x00000005 
+ 00011928  0x00001cbe fetch  0x00000008 , 0x000042d3 
+ 00011929  0x00001cbf istore  0x00000008 , 0x00000005 
+ 00011930  0x00001cc0 rtn 
+ 00011931  0x00001cc5 call  0x00002ea3 
+ 00011932  0x00001cc6 arg  0x00000005 , 0x00000012 
+ 00011933  0x00001cc7 call  0x000029fb 
+ 00011934  0x00001cc8 copy  0x00000013 , 0x0000003f 
+ 00011935  0x00001cc9 istore  0x00000001 , 0x00000005 
+ 00011936  0x00001cca fetch  0x00000001 , 0x0000433b 
+ 00011937  0x00001ccb istore  0x00000001 , 0x00000005 
+ 00011938  0x00001ccc rtn 
+ 00011939  0x00001cd0 fetch  0x00000001 , 0x0000433b 
+ 00011940  0x00001cd2 pincrease  0x00000001 
+ 00011941  0x00001cd3 store  0x00000001 , 0x0000433b 
+ 00011942  0x00001cd4 rtnne  0x00000000 
+ 00011943  0x00001cd7 jam  0x00000001 , 0x0000433b 
+ 00011944  0x00001cd8 rtn 
+ 00011945  0x00001cde fetch  0x00000001 , 0x000042fe 
+ 00011946  0x00001cdf beq  0x00000000 , 0x00002eb8 
+ 00011947  0x00001ce0 beq  0x00000001 , 0x00002ebb 
+ 00011948  0x00001ce1 beq  0x00000002 , 0x00002ebd 
+ 00011949  0x00001ce2 beq  0x00000081 , 0x00002eb1 
+ 00011950  0x00001ce3 beq  0x00000082 , 0x00002eb3 
+ 00011951  0x00001ce4 beq  0x00000083 , 0x00002eb6 
+ 00011952  0x00001ce5 rtn 
+ 00011953  0x00001ce8 jam  0x0000000d , 0x000042c7 
+ 00011954  0x00001ce9 branch  0x00002eb9 
+ 00011955  0x00001ceb jam  0x0000000d , 0x000042c7 
+ 00011956  0x00001cec jam  0x00000001 , 0x000042c5 
+ 00011957  0x00001ced rtn 
+ 00011958  0x00001cef jam  0x0000000d , 0x000042c7 
+ 00011959  0x00001cf0 branch  0x00002ebe 
+ 00011960  0x00001cf3 jam  0x00000000 , 0x000042c7 
+ 00011961  0x00001cf5 jam  0x00000003 , 0x000042c5 
+ 00011962  0x00001cf6 rtn 
+ 00011963  0x00001cf8 jam  0x00000005 , 0x000042c7 
+ 00011964  0x00001cf9 branch  0x00002eb9 
+ 00011965  0x00001cfb jam  0x00000005 , 0x000042c7 
+ 00011966  0x00001cfd jam  0x00000000 , 0x000042c5 
+ 00011967  0x00001cfe rtn 
+ 00011968  0x00001d01 fetch  0x00000001 , 0x0000446c 
+ 00011969  0x00001d02 set1  0x00000000 , 0x0000003f 
+ 00011970  0x00001d03 store  0x00000001 , 0x0000446c 
+ 00011971  0x00001d04 rtn 
+ 00011972  0x00001d07 fetch  0x00000001 , 0x0000446c 
+ 00011973  0x00001d08 set0  0x00000000 , 0x0000003f 
+ 00011974  0x00001d09 store  0x00000001 , 0x0000446c 
+ 00011975  0x00001d0a rtn 
+ 00011976  0x00001d0d ifetch  0x00000001 , 0x00000006 
+ 00011977  0x00001d0e beq  0x00000001 , 0x00002edc 
+ 00011978  0x00001d10 beq  0x00000003 , 0x00002f03 
+ 00011979  0x00001d11 beq  0x00000004 , 0x00002f24 
+ 00011980  0x00001d12 beq  0x00000005 , 0x00002f31 
+ 00011981  0x00001d14 beq  0x00000007 , 0x00002f9a 
+ 00011982  0x00001d15 beq  0x00000008 , 0x00002f86 
+ 00011983  0x00001d16 beq  0x00000009 , 0x00002f96 
+ 00011984  0x00001d17 beq  0x0000000a , 0x00002f9a 
+ 00011985  0x00001d18 beq  0x0000000b , 0x00002f9a 
+ 00011986  0x00001d19 beq  0x0000000c , 0x00002f9b 
+ 00011987  0x00001d1a beq  0x0000000d , 0x00002fa0 
+ 00011988  0x00001d1b rtn 
+ 00011989  0x00001d20 force  0x00000002 , 0x00000011 
+ 00011990  0x00001d21 call  0x00003047 
+ 00011991  0x00001d22 setarg  0x0000000b 
+ 00011992  0x00001d23 istore  0x00000001 , 0x00000005 
+ 00011993  0x00001d24 fetch  0x00000001 , 0x000042c7 
+ 00011994  0x00001d25 istore  0x00000001 , 0x00000005 
+ 00011995  0x00001d26 rtn 
+ 00011996  0x00001d29 store  0x00000001 , 0x000042bd 
+ 00011997  0x00001d2a ifetch  0x00000006 , 0x00000006 
+ 00011998  0x00001d2b istore  0x00000006 , 0x00000005 
+ 00011999  0x00001d2c fetch  0x00000001 , 0x000042fe 
+ 00012000  0x00001d2d beq  0x00000000 , 0x00002f37 
+ 00012001  0x00001d2e call  0x00002efe 
+ 00012002  0x00001d2f fetch  0x00000001 , 0x0000446a 
+ 00012003  0x00001d30 branch  0x00002ee8 , 0x00000034 
+ 00012004  0x00001d31 fetch  0x00000001 , 0x000042c0 
+ 00012005  0x00001d32 bbit0  0x00000003 , 0x0000431f 
+ 00012006  0x00001d33 fetch  0x00000001 , 0x000042fe 
+ 00012007  0x00001d34 bbit0  0x00000007 , 0x0000431f 
+ 00012008  0x00001d36 jam  0x00000003 , 0x000042fc 
+ 00012009  0x00001d37 fetch  0x00000001 , 0x000042be 
+ 00012010  0x00001d38 beq  0x00000000 , 0x00002ef0 
+ 00012011  0x00001d39 beq  0x00000001 , 0x00002ef0 
+ 00012012  0x00001d3a beq  0x00000003 , 0x00002ef0 
+ 00012013  0x00001d3b fetch  0x00000001 , 0x000042fe 
+ 00012014  0x00001d3c beq  0x00000002 , 0x00002ef3 
+ 00012015  0x00001d3d rtneq  0x00000083 
+ 00012016  0x00001d3f arg  0x00000000 , 0x0000003f 
+ 00012017  0x00001d40 store  0x00000004 , 0x000042ff 
+ 00012018  0x00001d41 rtn 
+ 00012019  0x00001d44 fetch  0x00000001 , 0x00004321 
+ 00012020  0x00001d45 bbit1  0x00000000 , 0x00002efc 
+ 00012021  0x00001d47 arg  0x000042ff , 0x00000011 
+ 00012022  0x00001d48 copy  0x00000011 , 0x00000005 
+ 00012023  0x00001d49 arg  0x00000003 , 0x00000039 
+ 00012024  0x00001d4a call  0x00007de8 
+ 00012025  0x00001d4b fetch  0x00000002 , 0x00004301 
+ 00012026  0x00001d4c and_into  0x00000007 , 0x0000003f 
+ 00012027  0x00001d4d store  0x00000002 , 0x00004301 
+ 00012028  0x00001d4f jam  0x00000034 , 0x0000066f 
+ 00012029  0x00001d50 branch  0x0000782b 
+ 00012030  0x00001d55 force  0x00000007 , 0x00000011 
+ 00012031  0x00001d56 call  0x00003047 
+ 00012032  0x00001d57 fetch  0x00000007 , 0x000042c4 
+ 00012033  0x00001d58 istore  0x00000007 , 0x00000005 
+ 00012034  0x00001d59 rtn 
+ 00012035  0x00001d5d jam  0x00000005 , 0x000042fc 
+ 00012036  0x00001d5e arg  0x0000429b , 0x00000005 
+ 00012037  0x00001d5f call  0x00007c8f 
+ 00012038  0x00001d60 fetch  0x00000001 , 0x000042fe 
+ 00012039  0x00001d61 beq  0x00000004 , 0x00002f0b 
+ 00012040  0x00001d62 beq  0x00000083 , 0x00002f0d 
+ 00012041  0x00001d63 beq  0x00000084 , 0x00002f10 
+ 00012042  0x00001d64 branch  0x00002f13 
+ 00012043  0x00001d68 jam  0x00000043 , 0x0000066f 
+ 00012044  0x00001d69 branch  0x0000782b 
+ 00012045  0x00001d6c jam  0x00000002 , 0x000042f9 
+ 00012046  0x00001d6d jam  0x00000008 , 0x000042fa 
+ 00012047  0x00001d6e rtn 
+ 00012048  0x00001d71 fetch  0x00000004 , 0x000042ff 
+ 00012049  0x00001d72 branch  0x00002f0b , 0x00000034 
+ 00012050  0x00001d73 branch  0x00002f0d 
+ 00012051  0x00001d76 jam  0x00000006 , 0x000042fc 
+ 00012052  0x00001d77 fetch  0x00000001 , 0x000042fe 
+ 00012053  0x00001d78 bbit1  0x00000007 , 0x00002f1c 
+ 00012054  0x00001d79 call  0x00007256 
+ 00012055  0x00001d7a force  0x00000011 , 0x00000011 
+ 00012056  0x00001d7b call  0x00003047 
+ 00012057  0x00001d7c setarg  0x00000003 
+ 00012058  0x00001d7d istore  0x00000001 , 0x00000005 
+ 00012059  0x00001d7e branch  0x00007375 
+ 00012060  0x00001d81 arg  0x000042ab , 0x00000005 
+ 00012061  0x00001d82 call  0x00007de7 
+ 00012062  0x00001d83 call  0x000071b6 
+ 00012063  0x00001d84 force  0x00000011 , 0x00000011 
+ 00012064  0x00001d85 call  0x00003047 
+ 00012065  0x00001d86 setarg  0x00000003 
+ 00012066  0x00001d87 istore  0x00000001 , 0x00000005 
+ 00012067  0x00001d88 branch  0x000071f2 
+ 00012068  0x00001d8b copy  0x00000006 , 0x00000011 
+ 00012069  0x00001d8c fetch  0x00000001 , 0x000042fe 
+ 00012070  0x00001d8d bbit1  0x00000007 , 0x00002f39 
+ 00012071  0x00001d8e copy  0x00000011 , 0x00000006 
+ 00012072  0x00001d8f call  0x0000724e 
+ 00012073  0x00001d90 branch  0x00002f4e , 0x00000005 
+ 00012074  0x00001d92 jam  0x00000004 , 0x000001ba 
+ 00012075  0x00001d94 force  0x00000002 , 0x00000011 
+ 00012076  0x00001d95 call  0x00003047 
+ 00012077  0x00001d96 setarg  0x00000005 
+ 00012078  0x00001d97 istore  0x00000001 , 0x00000005 
+ 00012079  0x00001d98 fetch  0x00000001 , 0x000001ba 
+ 00012080  0x00001d99 istore  0x00000001 , 0x00000005 
+ 00012081  0x00001d9b bpatchx  0x00000065 , 0x0000402c 
+ 00012082  0x00001d9c force  0x00000007 , 0x00000007 
+ 00012083  0x00001d9d call  0x00007ce0 
+ 00012084  0x00001d9e jam  0x00000000 , 0x000042fc 
+ 00012085  0x00001d9f jam  0x00000030 , 0x0000066f 
+ 00012086  0x00001da0 branch  0x0000782b 
+ 00012087  0x00001da3 jam  0x00000005 , 0x000001ba 
+ 00012088  0x00001da4 branch  0x00002f2b 
+ 00012089  0x00001da7 arg  0x00000158 , 0x00000005 
+ 00012090  0x00001da8 copy  0x00000011 , 0x00000006 
+ 00012091  0x00001da9 call  0x00007c8f 
+ 00012092  0x00001daa fetch  0x00000001 , 0x000042fe 
+ 00012093  0x00001dab beq  0x00000083 , 0x00002f45 
+ 00012094  0x00001dac beq  0x00000084 , 0x00002f45 
+ 00012095  0x00001dad call  0x00007140 
+ 00012096  0x00001dae call  0x00002f53 
+ 00012097  0x00001daf fetch  0x00000001 , 0x000042fe 
+ 00012098  0x00001db0 rtnne  0x00000082 
+ 00012099  0x00001db1 jam  0x0000003b , 0x0000066f 
+ 00012100  0x00001db2 branch  0x0000782b 
+ 00012101  0x00001db5 call  0x000071ab 
+ 00012102  0x00001db6 arg  0x000006d1 , 0x00000005 
+ 00012103  0x00001db7 call  0x000071f2 
+ 00012104  0x00001db8 arg  0x000006d1 , 0x00000011 
+ 00012105  0x00001db9 arg  0x0000429b , 0x00000012 
+ 00012106  0x00001dba arg  0x00000010 , 0x00000039 
+ 00012107  0x00001dbb call  0x00007d64 
+ 00012108  0x00001dbc nbranch  0x00002f2a , 0x00000005 
+ 00012109  0x00001dbd branch  0x00002f53 
+ 00012110  0x00001dc0 call  0x0000724a 
+ 00012111  0x00001dc1 jam  0x00000031 , 0x0000066f 
+ 00012112  0x00001dc2 call  0x0000782b 
+ 00012113  0x00001dc3 jam  0x00000001 , 0x0000429a 
+ 00012114  0x00001dc4 jam  0x00000009 , 0x000042fc 
+ 00012115  0x00001dc7 force  0x00000011 , 0x00000011 
+ 00012116  0x00001dc8 call  0x00003047 
+ 00012117  0x00001dc9 setarg  0x00000004 
+ 00012118  0x00001dca istore  0x00000001 , 0x00000005 
+ 00012119  0x00001dcb arg  0x000042ab , 0x00000006 
+ 00012120  0x00001dcc branch  0x00007c8f 
+ 00012121  0x00001dcf force  0x00000011 , 0x00000011 
+ 00012122  0x00001dd0 call  0x00003047 
+ 00012123  0x00001dd1 setarg  0x00000006 
+ 00012124  0x00001dd2 istore  0x00000001 , 0x00000005 
+ 00012125  0x00001dd3 fetch  0x00000001 , 0x00004321 
+ 00012126  0x00001dd4 bbit1  0x00000001 , 0x00002f61 
+ 00012127  0x00001dd5 arg  0x0000428a , 0x00000006 
+ 00012128  0x00001dd6 branch  0x00007c8f 
+ 00012129  0x00001dd9 arg  0x00004322 , 0x00000006 
+ 00012130  0x00001dda branch  0x00007c8f 
+ 00012131  0x00001dde arg  0x00004303 , 0x00000005 
+ 00012132  0x00001ddf force  0x0000000a , 0x00000039 
+ 00012133  0x00001de0 call  0x00007de8 
+ 00012134  0x00001de1 force  0x0000000b , 0x00000011 
+ 00012135  0x00001de2 call  0x00003047 
+ 00012136  0x00001de3 setarg  0x00000007 
+ 00012137  0x00001de4 istore  0x00000001 , 0x00000005 
+ 00012138  0x00001de5 fetch  0x00000002 , 0x00004303 
+ 00012139  0x00001de6 istore  0x00000002 , 0x00000005 
+ 00012140  0x00001de7 fetch  0x00000008 , 0x00004305 
+ 00012141  0x00001de8 istore  0x00000008 , 0x00000005 
+ 00012142  0x00001de9 rtn 
+ 00012143  0x00001dec force  0x00000011 , 0x00000011 
+ 00012144  0x00001ded call  0x00003047 
+ 00012145  0x00001dee setarg  0x00000008 
+ 00012146  0x00001def istore  0x00000001 , 0x00000005 
+ 00012147  0x00001df0 setarg  0x00000000 
+ 00012148  0x00001df1 istore  0x00000008 , 0x00000005 
+ 00012149  0x00001df2 istore  0x00000008 , 0x00000005 
+ 00012150  0x00001df3 rtn 
+ 00012151  0x00001df7 force  0x00000008 , 0x00000011 
+ 00012152  0x00001df8 call  0x00003047 
+ 00012153  0x00001df9 setarg  0x00000009 
+ 00012154  0x00001dfa istore  0x00000001 , 0x00000005 
+ 00012155  0x00001dfb fetch  0x00000001 , 0x000042d2 
+ 00012156  0x00001dfc istore  0x00000001 , 0x00000005 
+ 00012157  0x00001dfd fetch  0x00000006 , 0x000042db 
+ 00012158  0x00001dfe istore  0x00000006 , 0x00000005 
+ 00012159  0x00001dff rtn 
+ 00012160  0x00001e03 jam  0x00000008 , 0x000001ba 
+ 00012161  0x00001e04 branch  0x00002f2b 
+ 00012162  0x00001e07 fetch  0x00000001 , 0x000042c9 
+ 00012163  0x00001e08 fetcht  0x00000001 , 0x000042c9 
+ 00012164  0x00001e09 iand  0x00000002 , 0x0000003f 
+ 00012165  0x00001e0a rtn 
+ 00012166  0x00001e0d arg  0x0000430d , 0x00000005 
+ 00012167  0x00001e0e call  0x00007c8f 
+ 00012168  0x00001e0f call  0x00002f82 
+ 00012169  0x00001e10 isolate0  0x00000001 , 0x0000003f 
+ 00012170  0x00001e11 branch  0x00002f80 , 0x00000001 
+ 00012171  0x00001e12 fetch  0x00000001 , 0x000043cb 
+ 00012172  0x00001e13 rtnne  0x0000000a 
+ 00012173  0x00001e14 call  0x00002f90 
+ 00012174  0x00001e15 nrtn  0x00000028 
+ 00012175  0x00001e16 branch  0x00004329 
+ 00012176  0x00001e1a call  0x00007dbc 
+ 00012177  0x00001e1b fetch  0x00000001 , 0x000042cb 
+ 00012178  0x00001e1c rtneq  0x00000000 
+ 00012179  0x00001e1d fetch  0x00000001 , 0x000042c2 
+ 00012180  0x00001e1e rtnbit0  0x00000001 
+ 00012181  0x00001e1f branch  0x00007dba 
+ 00012182  0x00001e22 call  0x00002f82 
+ 00012183  0x00001e23 isolate0  0x00000001 , 0x0000003f 
+ 00012184  0x00001e24 branch  0x00002f80 , 0x00000001 
+ 00012185  0x00001e25 rtn 
+ 00012186  0x00001e2a rtn 
+ 00012187  0x00001e2d arg  0x000005fe , 0x00000005 
+ 00012188  0x00001e2e call  0x00007c81 
+ 00012189  0x00001e2f jam  0x00000002 , 0x000042f9 
+ 00012190  0x00001e30 jam  0x00000001 , 0x000042fa 
+ 00012191  0x00001e31 rtn 
+ 00012192  0x00001e34 arg  0x0000065e , 0x00000005 
+ 00012193  0x00001e35 call  0x00007c8f 
+ 00012194  0x00001e36 jam  0x00000006 , 0x000042fa 
+ 00012195  0x00001e37 jam  0x00000002 , 0x000042f9 
+ 00012196  0x00001e38 rtn 
+ 00012197  0x00001e3b force  0x00000041 , 0x00000011 
+ 00012198  0x00001e3c call  0x00003047 
+ 00012199  0x00001e3d setarg  0x0000000c 
+ 00012200  0x00001e3e istore  0x00000001 , 0x00000005 
+ 00012201  0x00001e3f arg  0x0000448f , 0x00000006 
+ 00012202  0x00001e40 branch  0x00007c81 
+ 00012203  0x00001e43 call  0x00007157 
+ 00012204  0x00001e44 force  0x00000011 , 0x00000011 
+ 00012205  0x00001e45 call  0x00003047 
+ 00012206  0x00001e46 setarg  0x0000000d 
+ 00012207  0x00001e47 istore  0x00000001 , 0x00000005 
+ 00012208  0x00001e48 branch  0x000071f2 
+ 00012209  0x00001e4b fetch  0x00000001 , 0x000042fc 
+ 00012210  0x00001e4c rtneq  0x000000ff 
+ 00012211  0x00001e4d arg  0x00000003 , 0x00000002 
+ 00012212  0x00001e4e isub  0x00000002 , 0x0000003e 
+ 00012213  0x00001e4f nrtn  0x00000002 
+ 00012214  0x00001e50 arg  0x00000007 , 0x00000007 
+ 00012215  0x00001e51 call  0x00007cef 
+ 00012216  0x00001e52 nrtn  0x00000034 
+ 00012217  0x00001e53 branch  0x00002f80 
+ 00012218  0x00001e56 bpatchx  0x00000066 , 0x0000402c 
+ 00012219  0x00001e57 call  0x00002a28 
+ 00012220  0x00001e58 nrtn  0x00000034 
+ 00012221  0x00001e59 fetch  0x00000001 , 0x000042fc 
+ 00012222  0x00001e5a beq  0x00000000 , 0x00002fc7 
+ 00012223  0x00001e5b beq  0x00000001 , 0x00002fcd 
+ 00012224  0x00001e5c beq  0x00000002 , 0x00002fc7 
+ 00012225  0x00001e5d beq  0x00000003 , 0x00002fcf 
+ 00012226  0x00001e5e beq  0x00000009 , 0x00002fd3 
+ 00012227  0x00001e5f beq  0x0000000b , 0x00002fe3 
+ 00012228  0x00001e60 beq  0x0000000c , 0x00002fe5 
+ 00012229  0x00001e61 beq  0x0000000d , 0x00002fec 
+ 00012230  0x00001e62 rtn 
+ 00012231  0x00001e66 fetch  0x00000001 , 0x000042fd 
+ 00012232  0x00001e67 rtnne  0x00000004 
+ 00012233  0x00001e68 jam  0x000000ff , 0x000042fd 
+ 00012234  0x00001e69 jam  0x000000ff , 0x000042fc 
+ 00012235  0x00001e6a jam  0x0000003f , 0x0000066f 
+ 00012236  0x00001e6b branch  0x0000782b 
+ 00012237  0x00001e6f jam  0x00000002 , 0x000042fc 
+ 00012238  0x00001e70 branch  0x00002ed5 
+ 00012239  0x00001e73 jam  0x00000004 , 0x000042fc 
+ 00012240  0x00001e74 setarg  0x00017700 
+ 00012241  0x00001e75 arg  0x00000007 , 0x00000007 
+ 00012242  0x00001e76 branch  0x00007ce1 
+ 00012243  0x00001e79 fetch  0x00000001 , 0x000042fd 
+ 00012244  0x00001e7a beq  0x00000004 , 0x00002fd6 
+ 00012245  0x00001e7b rtn 
+ 00012246  0x00001e7e fetch  0x00000001 , 0x000042fe 
+ 00012247  0x00001e7f bbit1  0x00000007 , 0x00002fe1 
+ 00012248  0x00001e81 jam  0x0000000b , 0x000042fc 
+ 00012249  0x00001e82 call  0x00002f59 
+ 00012250  0x00001e84 jam  0x00000029 , 0x0000066f 
+ 00012251  0x00001e85 call  0x0000782b 
+ 00012252  0x00001e86 fetch  0x00000001 , 0x000043cb 
+ 00012253  0x00001e87 rtnne  0x0000000a 
+ 00012254  0x00001e88 call  0x00002f90 
+ 00012255  0x00001e89 rtn  0x00000028 
+ 00012256  0x00001e8a branch  0x00004329 
+ 00012257  0x00001e8d jam  0x0000000c , 0x000042fc 
+ 00012258  0x00001e8e branch  0x00002fda 
+ 00012259  0x00001e91 jam  0x0000000c , 0x000042fc 
+ 00012260  0x00001e92 branch  0x00002f63 
+ 00012261  0x00001e95 fetch  0x00000001 , 0x000042c3 
+ 00012262  0x00001e96 fetcht  0x00000001 , 0x000042ca 
+ 00012263  0x00001e97 iand  0x00000002 , 0x0000003f 
+ 00012264  0x00001e98 isolate0  0x00000001 , 0x0000003f 
+ 00012265  0x00001e99 branch  0x00002fee , 0x00000001 
+ 00012266  0x00001e9a jam  0x0000000d , 0x000042fc 
+ 00012267  0x00001e9b branch  0x00002f6f 
+ 00012268  0x00001e9e call  0x00002f77 
+ 00012269  0x00001e9f branch  0x00002fee 
+ 00012270  0x00001ea3 bpatchx  0x00000067 , 0x0000402c 
+ 00012271  0x00001ea4 force  0x00000007 , 0x00000007 
+ 00012272  0x00001ea5 call  0x00007ce0 
+ 00012273  0x00001ea6 jam  0x000000ff , 0x000042fd 
+ 00012274  0x00001ea7 jam  0x000000ff , 0x000042fc 
+ 00012275  0x00001ea8 jam  0x0000003e , 0x0000066f 
+ 00012276  0x00001ea9 branch  0x0000782b 
+ 00012277  0x00001eae bpatchx  0x00000068 , 0x0000402d 
+ 00012278  0x00001eaf fetch  0x00000001 , 0x000042fe 
+ 00012279  0x00001eb0 rtnbit0  0x00000007 
+ 00012280  0x00001eb1 fetch  0x00000001 , 0x000042f9 
+ 00012281  0x00001eb2 rtnne  0x00000002 
+ 00012282  0x00001eb3 jam  0x00000000 , 0x000042f9 
+ 00012283  0x00001eb4 fetch  0x00000001 , 0x000042fa 
+ 00012284  0x00001eb5 beq  0x00000001 , 0x0000303d 
+ 00012285  0x00001eb6 beq  0x00000002 , 0x00003044 
+ 00012286  0x00001eb7 beq  0x00000003 , 0x00003035 
+ 00012287  0x00001eb8 beq  0x00000006 , 0x0000301a 
+ 00012288  0x00001eb9 beq  0x00000007 , 0x00003011 
+ 00012289  0x00001eba beq  0x00000008 , 0x00003007 
+ 00012290  0x00001ebb rtn 
+ 00012291  0x00001ebe jam  0x00000000 , 0x000042f9 
+ 00012292  0x00001ebf jam  0x00000000 , 0x000042fa 
+ 00012293  0x00001ec0 jam  0x00000000 , 0x000042fb 
+ 00012294  0x00001ec1 rtn 
+ 00012295  0x00001ec4 fetch  0x00000001 , 0x000044cf 
+ 00012296  0x00001ec5 copy  0x0000003f , 0x00000007 
+ 00012297  0x00001ec6 increase  0x00000001 , 0x0000003f 
+ 00012298  0x00001ec7 store  0x00000001 , 0x000044cf 
+ 00012299  0x00001ec8 fetch  0x00000004 , 0x000042ff 
+ 00012300  0x00001ec9 qisolate1  0x0000003f 
+ 00012301  0x00001eca setarg  0x00000080 
+ 00012302  0x00001ecb setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00012303  0x00001ecc store  0x00000001 , 0x000044d0 
+ 00012304  0x00001ecd branch  0x00003039 
+ 00012305  0x00001ed0 fetch  0x00000001 , 0x000042fb 
+ 00012306  0x00001ed1 jam  0x00000000 , 0x000042fb 
+ 00012307  0x00001ed2 beq  0x00000001 , 0x00003016 
+ 00012308  0x00001ed3 jam  0x00000002 , 0x000042f9 
+ 00012309  0x00001ed4 rtn 
+ 00012310  0x00001ed7 jam  0x00000031 , 0x0000066f 
+ 00012311  0x00001ed8 call  0x0000782b 
+ 00012312  0x00001ed9 jam  0x00000009 , 0x000042fc 
+ 00012313  0x00001eda branch  0x00002fab 
+ 00012314  0x00001edd fetch  0x00000001 , 0x000005f9 
+ 00012315  0x00001ede beq  0x00000003 , 0x0000301e 
+ 00012316  0x00001edf jam  0x00000002 , 0x000042f9 
+ 00012317  0x00001ee0 rtn 
+ 00012318  0x00001ee3 call  0x0000717e 
+ 00012319  0x00001ee4 fetch  0x00000001 , 0x000042fe 
+ 00012320  0x00001ee5 beq  0x00000083 , 0x00003023 
+ 00012321  0x00001ee6 beq  0x00000084 , 0x00003023 
+ 00012322  0x00001ee7 call  0x00002ef0 
+ 00012323  0x00001ee9 call  0x0000716b 
+ 00012324  0x00001eea arg  0x000006d1 , 0x00000011 
+ 00012325  0x00001eeb arg  0x0000065e , 0x00000012 
+ 00012326  0x00001eec arg  0x00000010 , 0x00000039 
+ 00012327  0x00001eed call  0x00007d64 
+ 00012328  0x00001eee branch  0x0000302b , 0x00000005 
+ 00012329  0x00001ef0 jam  0x0000000b , 0x000001ba 
+ 00012330  0x00001ef1 branch  0x00002f2b 
+ 00012331  0x00001ef5 call  0x0000745b 
+ 00012332  0x00001ef6 nbranch  0x00003029 , 0x00000005 
+ 00012333  0x00001ef7 jam  0x00000001 , 0x0000429a 
+ 00012334  0x00001ef8 fetch  0x00000001 , 0x000042fe 
+ 00012335  0x00001ef9 beq  0x00000081 , 0x00003016 
+ 00012336  0x00001efa beq  0x00000083 , 0x00003016 
+ 00012337  0x00001efb beq  0x00000084 , 0x00003016 
+ 00012338  0x00001efc jam  0x00000002 , 0x000042f9 
+ 00012339  0x00001efd jam  0x00000007 , 0x000042fa 
+ 00012340  0x00001efe rtn 
+ 00012341  0x00001f01 fetch  0x00000001 , 0x000042fe 
+ 00012342  0x00001f02 beq  0x00000083 , 0x0000303a 
+ 00012343  0x00001f03 beq  0x00000084 , 0x0000303a 
+ 00012344  0x00001f04 jam  0x00000000 , 0x000044d0 
+ 00012345  0x00001f06 branch  0x00002f13 
+ 00012346  0x00001f09 jam  0x00000000 , 0x000044cf 
+ 00012347  0x00001f0a rtneq  0x00000084 
+ 00012348  0x00001f0b branch  0x00002ef3 
+ 00012349  0x00001f0f jam  0x00000002 , 0x000042f9 
+ 00012350  0x00001f10 fetch  0x00000001 , 0x0000446e 
+ 00012351  0x00001f11 beq  0x00000003 , 0x00003041 
+ 00012352  0x00001f12 rtn 
+ 00012353  0x00001f15 jam  0x00000002 , 0x000042fa 
+ 00012354  0x00001f16 jam  0x00000000 , 0x000005f9 
+ 00012355  0x00001f17 branch  0x0000753c 
+ 00012356  0x00001f1a jam  0x00000002 , 0x000042f9 
+ 00012357  0x00001f1b jam  0x00000003 , 0x000042fa 
+ 00012358  0x00001f1c branch  0x00002fa5 
+ 00012359  0x00001f21 bpatchx  0x00000069 , 0x0000402d 
+ 00012360  0x00001f22 force  0x00000006 , 0x00000012 
+ 00012361  0x00001f23 branch  0x000029fb 
+ 00012362  0x00001f28 fetch  0x00000001 , 0x0000004e 
+ 00012363  0x00001f29 beq  0x00000000 , 0x00003061 
+ 00012364  0x00001f2a beq  0x00000001 , 0x00003069 
+ 00012365  0x00001f2b beq  0x00000002 , 0x00003071 
+ 00012366  0x00001f2c beq  0x00000003 , 0x00003075 
+ 00012367  0x00001f2d beq  0x00000004 , 0x00003093 
+ 00012368  0x00001f2e beq  0x00000005 , 0x00003098 
+ 00012369  0x00001f2f beq  0x00000006 , 0x0000309c 
+ 00012370  0x00001f30 beq  0x00000007 , 0x000030a1 
+ 00012371  0x00001f31 beq  0x00000008 , 0x000030a2 
+ 00012372  0x00001f32 beq  0x00000009 , 0x000030a3 
+ 00012373  0x00001f33 beq  0x0000000a , 0x000030a4 
+ 00012374  0x00001f34 beq  0x0000000b , 0x000030a8 
+ 00012375  0x00001f35 beq  0x0000000c , 0x000030a9 
+ 00012376  0x00001f36 beq  0x0000000d , 0x000030ab 
+ 00012377  0x00001f37 beq  0x00000012 , 0x000030ac 
+ 00012378  0x00001f38 beq  0x00000013 , 0x000030ad 
+ 00012379  0x00001f39 beq  0x00000014 , 0x000030ae 
+ 00012380  0x00001f3a beq  0x00000015 , 0x000030b0 
+ 00012381  0x00001f3b beq  0x00000016 , 0x000030bb 
+ 00012382  0x00001f3c beq  0x00000018 , 0x000030bc 
+ 00012383  0x00001f3d fetchr  0x00000013 , 0x00000001 , 0x0000004e 
+ 00012384  0x00001f3e branch  0x000030df 
+ 00012385  0x00001f43 ifetch  0x00000009 , 0x00000006 
+ 00012386  0x00001f44 store  0x00000009 , 0x0000019f 
+ 00012387  0x00001f45 ifetch  0x00000002 , 0x00000006 
+ 00012388  0x00001f46 store  0x00000002 , 0x00000188 
+ 00012389  0x00001f47 fetch  0x00000001 , 0x00000168 
+ 00012390  0x00001f48 set1  0x00000005 , 0x0000003f 
+ 00012391  0x00001f49 store  0x00000001 , 0x00000168 
+ 00012392  0x00001f4a rtn 
+ 00012393  0x00001f4f ifetch  0x00000005 , 0x00000006 
+ 00012394  0x00001f50 store  0x00000005 , 0x0000019f 
+ 00012395  0x00001f51 ifetch  0x00000002 , 0x00000006 
+ 00012396  0x00001f52 store  0x00000002 , 0x00000188 
+ 00012397  0x00001f54 fetch  0x00000001 , 0x00000168 
+ 00012398  0x00001f55 set1  0x00000006 , 0x0000003f 
+ 00012399  0x00001f56 store  0x00000001 , 0x00000168 
+ 00012400  0x00001f57 rtn 
+ 00012401  0x00001f5c setarg  0x00000014 
+ 00012402  0x00001f5d store  0x00000002 , 0x00000196 
+ 00012403  0x00001f5e store  0x00000002 , 0x000042f5 
+ 00012404  0x00001f5f rtn 
+ 00012405  0x00001f64 ifetch  0x00000008 , 0x00000006 
+ 00012406  0x00001f65 store  0x00000008 , 0x00004305 
+ 00012407  0x00001f66 ifetch  0x00000002 , 0x00000006 
+ 00012408  0x00001f67 store  0x00000002 , 0x00004303 
+ 00012409  0x00001f68 ifetch  0x00000008 , 0x00000006 
+ 00012410  0x00001f69 store  0x00000008 , 0x000042e5 
+ 00012411  0x00001f6a ifetch  0x00000004 , 0x00000006 
+ 00012412  0x00001f6b store  0x00000004 , 0x0000445e 
+ 00012413  0x00001f6c call  0x000030cc 
+ 00012414  0x00001f6d bpatchx  0x0000006a , 0x0000402d 
+ 00012415  0x00001f6e fetch  0x00000001 , 0x000042fc 
+ 00012416  0x00001f6f beq  0x00000009 , 0x00003087 
+ 00012417  0x00001f70 fetch  0x00000001 , 0x00004321 
+ 00012418  0x00001f71 bbit1  0x00000001 , 0x0000308a 
+ 00012419  0x00001f72 fetch  0x00000001 , 0x000043fa 
+ 00012420  0x00001f73 ncall  0x00006e96 , 0x00000034 
+ 00012421  0x00001f74 fetch  0x00000001 , 0x0000429a 
+ 00012422  0x00001f75 beq  0x00000000 , 0x0000308f 
+ 00012423  0x00001f77 jam  0x00000001 , 0x000042fd 
+ 00012424  0x00001f78 call  0x000030da 
+ 00012425  0x00001f79 branch  0x0000725c 
+ 00012426  0x00001f7b jam  0x00000001 , 0x0000429a 
+ 00012427  0x00001f7c arg  0x00004322 , 0x00000006 
+ 00012428  0x00001f7d arg  0x0000428a , 0x00000005 
+ 00012429  0x00001f7e call  0x00007c8f 
+ 00012430  0x00001f7f branch  0x00003087 
+ 00012431  0x00001f82 jam  0x00000000 , 0x000042fd 
+ 00012432  0x00001f83 jam  0x00000000 , 0x000042fc 
+ 00012433  0x00001f84 jam  0x00000041 , 0x0000066f 
+ 00012434  0x00001f85 branch  0x0000782b 
+ 00012435  0x00001f89 ifetch  0x00000008 , 0x00000006 
+ 00012436  0x00001f8a store  0x00000008 , 0x000042ed 
+ 00012437  0x00001f8b ifetch  0x00000004 , 0x00000006 
+ 00012438  0x00001f8c store  0x00000004 , 0x00004462 
+ 00012439  0x00001f8d branch  0x0000725c 
+ 00012440  0x00001f92 fetch  0x00000001 , 0x00000168 
+ 00012441  0x00001f93 set1  0x00000004 , 0x0000003f 
+ 00012442  0x00001f94 store  0x00000001 , 0x00000168 
+ 00012443  0x00001f95 rtn 
+ 00012444  0x00001f99 rtn  0x00000029 
+ 00012445  0x00001f9a jam  0x00000032 , 0x0000066f 
+ 00012446  0x00001f9b call  0x0000782b 
+ 00012447  0x00001f9c jam  0x00000004 , 0x000042fd 
+ 00012448  0x00001f9d branch  0x000030dd 
+ 00012449  0x00001fa2 rtn 
+ 00012450  0x00001fa7 branch  0x000030e4 
+ 00012451  0x00001fac rtn 
+ 00012452  0x00001fb1 jam  0x00000002 , 0x000042fd 
+ 00012453  0x00001fb2 call  0x000030eb 
+ 00012454  0x00001fb3 jam  0x00000033 , 0x0000066f 
+ 00012455  0x00001fb4 branch  0x0000782b 
+ 00012456  0x00001fb9 rtn 
+ 00012457  0x00001fbe rtn  0x00000029 
+ 00012458  0x00001fbf branch  0x000030ed 
+ 00012459  0x00001fc4 rtn 
+ 00012460  0x00001fc9 branch  0x000030f9 
+ 00012461  0x00001fce rtn 
+ 00012462  0x00001fd2 call  0x000030b0 
+ 00012463  0x00001fd3 branch  0x000030fd 
+ 00012464  0x00001fd6 ifetch  0x00000008 , 0x00000006 
+ 00012465  0x00001fd7 store  0x00000008 , 0x000043b8 
+ 00012466  0x00001fd8 fetch  0x00000002 , 0x000043b8 
+ 00012467  0x00001fd9 fetcht  0x00000002 , 0x000043c4 
+ 00012468  0x00001fda call  0x00007db0 
+ 00012469  0x00001fdb store  0x00000002 , 0x000043b8 
+ 00012470  0x00001fdd fetch  0x00000002 , 0x000043bc 
+ 00012471  0x00001fde fetcht  0x00000002 , 0x000043c0 
+ 00012472  0x00001fdf call  0x00007db0 
+ 00012473  0x00001fe0 store  0x00000002 , 0x000043bc 
+ 00012474  0x00001fe1 rtn 
+ 00012475  0x00001fe6 branch  0x00003103 
+ 00012476  0x00001feb ifetch  0x00000002 , 0x00000006 
+ 00012477  0x00001fec store  0x00000002 , 0x0000019f 
+ 00012478  0x00001fed ifetch  0x00000002 , 0x00000006 
+ 00012479  0x00001fee store  0x00000002 , 0x00000188 
+ 00012480  0x00001fef rtn  0x00000034 
+ 00012481  0x00001ff0 fetch  0x00000001 , 0x00000168 
+ 00012482  0x00001ff1 set1  0x00000007 , 0x0000003f 
+ 00012483  0x00001ff2 store  0x00000001 , 0x00000168 
+ 00012484  0x00001ff3 rtn 
+ 00012485  0x00001ff9 arg  0x00000013 , 0x00000013 
+ 00012486  0x00001ffd arg  0x00000002 , 0x00000011 
+ 00012487  0x00001ffe arg  0x00000002 , 0x00000012 
+ 00012488  0x00001fff call  0x000029f5 
+ 00012489  0x00002000 copy  0x00000013 , 0x0000003f 
+ 00012490  0x00002001 istore  0x00000001 , 0x00000005 
+ 00012491  0x00002002 rtn 
+ 00012492  0x00002007 arg  0x000042ed , 0x00000005 
+ 00012493  0x00002008 force  0x00000008 , 0x00000039 
+ 00012494  0x00002009 call  0x00007de8 
+ 00012495  0x0000200a arg  0x00004462 , 0x00000005 
+ 00012496  0x0000200b force  0x00000004 , 0x00000039 
+ 00012497  0x0000200c call  0x00007de8 
+ 00012498  0x0000200d arg  0x0000000d , 0x00000011 
+ 00012499  0x0000200e arg  0x00000004 , 0x00000012 
+ 00012500  0x0000200f call  0x000029f5 
+ 00012501  0x00002010 fetch  0x00000008 , 0x000042ed 
+ 00012502  0x00002011 istore  0x00000008 , 0x00000005 
+ 00012503  0x00002012 fetch  0x00000004 , 0x00004462 
+ 00012504  0x00002013 istore  0x00000004 , 0x00000005 
+ 00012505  0x00002014 rtn 
+ 00012506  0x00002019 jam  0x00000005 , 0x000042fd 
+ 00012507  0x0000201a arg  0x00000005 , 0x00000012 
+ 00012508  0x0000201b branch  0x0000310d 
+ 00012509  0x00002020 arg  0x00000006 , 0x00000012 
+ 00012510  0x00002021 branch  0x0000310d 
+ 00012511  0x00002027 arg  0x00000002 , 0x00000011 
+ 00012512  0x00002028 arg  0x00000007 , 0x00000012 
+ 00012513  0x00002029 call  0x000029f5 
+ 00012514  0x0000202a istorer  0x00000013 , 0x00000001 , 0x00000005 
+ 00012515  0x0000202b rtn 
+ 00012516  0x00002030 arg  0x00000009 , 0x00000011 
+ 00012517  0x00002031 arg  0x00000009 , 0x00000012 
+ 00012518  0x00002032 call  0x000029f5 
+ 00012519  0x00002033 fetch  0x00000008 , 0x000043ae 
+ 00012520  0x00002034 or  0x0000003f , 0x00000001 , 0x0000003f 
+ 00012521  0x00002035 istore  0x00000008 , 0x00000005 
+ 00012522  0x00002036 rtn 
+ 00012523  0x0000203b arg  0x0000000b , 0x00000012 
+ 00012524  0x0000203c branch  0x0000310d 
+ 00012525  0x00002041 arg  0x00000006 , 0x00000011 
+ 00012526  0x00002042 arg  0x0000000c , 0x00000012 
+ 00012527  0x00002043 call  0x000029f5 
+ 00012528  0x00002044 fetch  0x00000005 , 0x0000415e 
+ 00012529  0x00002045 istore  0x00000005 , 0x00000005 
+ 00012530  0x00002046 rtn 
+ 00012531  0x0000204a arg  0x00000002 , 0x00000011 
+ 00012532  0x0000204b arg  0x0000000d , 0x00000012 
+ 00012533  0x0000204c call  0x000029f5 
+ 00012534  0x0000204d setarg  0x00000006 
+ 00012535  0x0000204e istore  0x00000001 , 0x00000005 
+ 00012536  0x0000204f rtn 
+ 00012537  0x00002054 arg  0x00000013 , 0x00000012 
+ 00012538  0x00002055 branch  0x0000310d 
+ 00012539  0x00002058 arg  0x00000014 , 0x00000012 
+ 00012540  0x00002059 branch  0x000030fe 
+ 00012541  0x0000205c arg  0x00000015 , 0x00000012 
+ 00012542  0x0000205e arg  0x00000009 , 0x00000011 
+ 00012543  0x0000205f call  0x000029f5 
+ 00012544  0x00002060 fetch  0x00000008 , 0x000043c0 
+ 00012545  0x00002061 istore  0x00000008 , 0x00000005 
+ 00012546  0x00002062 rtn 
+ 00012547  0x00002067 arg  0x00000003 , 0x00000011 
+ 00012548  0x00002068 arg  0x00000017 , 0x00000012 
+ 00012549  0x00002069 call  0x000029f5 
+ 00012550  0x0000206a fetch  0x00000001 , 0x000043b6 
+ 00012551  0x0000206b and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00012552  0x0000206c istore  0x00000001 , 0x00000005 
+ 00012553  0x0000206d fetch  0x00000001 , 0x000043b7 
+ 00012554  0x0000206e and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00012555  0x0000206f istore  0x00000001 , 0x00000005 
+ 00012556  0x00002070 rtn 
+ 00012557  0x00002075 arg  0x00000001 , 0x00000011 
+ 00012558  0x00002076 branch  0x000029f5 
+ 00012559  0x0000207c bpatchx  0x0000006b , 0x0000402d 
+ 00012560  0x0000207d bmark1  0x00000027 , 0x000033a3 
+ 00012561  0x0000207e branch  0x00003603 
+ 00012562  0x00002084 bpatchx  0x0000006c , 0x0000402d 
+ 00012563  0x00002085 disable  0x00000009 
+ 00012564  0x00002086 disable  0x00000007 
+ 00012565  0x00002087 setarg  0x00555555 
+ 00012566  0x00002088 iforce  0x0000000f 
+ 00012567  0x00002089 fetch  0x00000001 , 0x0000458d 
+ 00012568  0x0000208a branch  0x000025c8 
+ 00012569  0x0000208d bpatchx  0x0000006d , 0x0000402d 
+ 00012570  0x0000208e fetch  0x00000001 , 0x000045b7 
+ 00012571  0x0000208f call  0x000025a4 
+ 00012572  0x00002090 fetch  0x00000004 , 0x0000458f 
+ 00012573  0x00002091 iforce  0x00000009 
+ 00012574  0x00002092 call  0x00002160 
+ 00012575  0x00002093 fetcht  0x00000001 , 0x0000458d 
+ 00012576  0x00002094 call  0x000025cd 
+ 00012577  0x00002096 call  0x00003112 
+ 00012578  0x00002097 bmark0  0x0000002f , 0x00003126 
+ 00012579  0x00002098 pulse  0x00000039 
+ 00012580  0x00002099 nop  0x0000001e 
+ 00012581  0x0000209a call  0x00003112 
+ 00012582  0x0000209c disable  0x0000002f 
+ 00012583  0x0000209d enable  0x0000000d 
+ 00012584  0x0000209e enable  0x00000021 
+ 00012585  0x0000209f disable  0x00000020 
+ 00012586  0x000020a0 enable  0x00000010 
+ 00012587  0x000020a1 fetch  0x00000002 , 0x0000458b 
+ 00012588  0x000020a2 iforce  0x0000001b 
+ 00012589  0x000020a3 correlate  0x0000003e , 0x00000003 
+ 00012590  0x000020a4 nbranch  0x00003180 , 0x00000018 
+ 00012591  0x000020a5 call  0x00006877 
+ 00012592  0x000020a6 bmark1  0x0000002f , 0x00003135 
+ 00012593  0x000020a7 fetch  0x00000001 , 0x000045ca 
+ 00012594  0x000020a8 nbranch  0x00003135 , 0x00000034 
+ 00012595  0x000020a9 disable  0x0000000d 
+ 00012596  0x000020aa enable  0x0000000b 
+ 00012597  0x000020ac enable  0x00000007 
+ 00012598  0x000020ad enable  0x00000009 
+ 00012599  0x000020ae call  0x0000317d 
+ 00012600  0x000020af store  0x00000001 , 0x000045ad 
+ 00012601  0x000020b0 fetcht  0x00000001 , 0x000045ac 
+ 00012602  0x000020b1 isub  0x00000002 , 0x0000003e 
+ 00012603  0x000020b2 nbranch  0x00003188 , 0x00000005 
+ 00012604  0x000020b3 bpatchx  0x0000006e , 0x0000402d 
+ 00012605  0x000020b4 disable  0x00000031 
+ 00012606  0x000020b5 isolate1  0x0000002f , 0x00000000 
+ 00012607  0x000020b6 call  0x0000316f , 0x00000001 
+ 00012608  0x000020b7 branch  0x0000318a , 0x00000031 
+ 00012609  0x000020b8 call  0x0000317d 
+ 00012610  0x000020b9 store  0x00000001 , 0x000044f7 
+ 00012611  0x000020ba bmark1  0x00000027 , 0x00003148 
+ 00012612  0x000020bb fetch  0x00000001 , 0x000044f7 
+ 00012613  0x000020bc fetcht  0x00000001 , 0x00004589 
+ 00012614  0x000020bd icompare  0x00000007 , 0x00000002 
+ 00012615  0x000020be nbranch  0x0000318c , 0x00000001 
+ 00012616  0x000020c0 call  0x0000317d 
+ 00012617  0x000020c1 isolate1  0x0000002f , 0x00000000 
+ 00012618  0x000020c2 call  0x00003178 , 0x00000001 
+ 00012619  0x000020c3 istore  0x00000001 , 0x00000005 
+ 00012620  0x000020c4 rshift3  0x0000003f , 0x0000003f 
+ 00012621  0x000020c5 sub  0x0000003f , 0x0000001f , 0x0000003e 
+ 00012622  0x000020c6 nbranch  0x0000318e , 0x00000002 
+ 00012623  0x000020c7 copy  0x0000003f , 0x00000039 
+ 00012624  0x000020c8 branch  0x00003154 , 0x00000005 
+ 00012625  0x000020ca call  0x0000317d 
+ 00012626  0x000020cb istore  0x00000001 , 0x00000005 
+ 00012627  0x000020cc loop  0x00003151 
+ 00012628  0x000020ce bmark1  0x00000027 , 0x00003159 
+ 00012629  0x000020cf copy  0x00000005 , 0x00000011 
+ 00012630  0x000020d0 call  0x0000317d 
+ 00012631  0x000020d1 store  0x00000001 , 0x000045d3 
+ 00012632  0x000020d2 copy  0x00000011 , 0x00000005 
+ 00012633  0x000020d4 parse  0x00000003 , 0x00000000 , 0x00000018 
+ 00012634  0x000020d5 rshift32  0x0000003f , 0x0000003f 
+ 00012635  0x000020d6 rshift16  0x0000003f , 0x0000003f 
+ 00012636  0x000020d7 istore  0x00000003 , 0x00000005 
+ 00012637  0x000020d8 fetch  0x00000001 , 0x000045ca 
+ 00012638  0x000020d9 nbranch  0x0000316d , 0x00000034 
+ 00012639  0x000020da disable  0x0000000b 
+ 00012640  0x000020dc isolate1  0x00000027 , 0x00000000 
+ 00012641  0x000020dd call  0x000035c8 , 0x00000001 
+ 00012642  0x000020de branch  0x00003190 , 0x00000006 
+ 00012643  0x000020df call  0x00006876 
+ 00012644  0x000020e0 bpatchx  0x0000006f , 0x0000402d 
+ 00012645  0x000020e1 enable  0x0000002f 
+ 00012646  0x000020e2 call  0x000026bb 
+ 00012647  0x000020e3 rtnmark1  0x00000027 
+ 00012648  0x000020e4 fetch  0x00000001 , 0x000045d3 
+ 00012649  0x000020e5 fetcht  0x00000001 , 0x0000462a 
+ 00012650  0x000020e6 isub  0x00000002 , 0x0000003e 
+ 00012651  0x000020e7 call  0x00007db2 , 0x00000002 
+ 00012652  0x000020e8 branch  0x000035cb 
+ 00012653  0x000020eb disable  0x0000000d 
+ 00012654  0x000020ec branch  0x00003160 
+ 00012655  0x000020f0 call  0x0000317d 
+ 00012656  0x000020f1 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00012657  0x000020f2 branch  0x00007dc2 , 0x00000002 
+ 00012658  0x000020f3 increase  0xfffffffe , 0x0000003f 
+ 00012659  0x000020f4 bmark1  0x00000027 , 0x00003176 
+ 00012660  0x000020f5 branch  0x00007dc2 , 0x00000034 
+ 00012661  0x000020f6 increase  0xffffffff , 0x0000003f 
+ 00012662  0x000020f8 store  0x00000001 , 0x00000678 
+ 00012663  0x000020f9 rtn 
+ 00012664  0x000020fc and_into  0x00000007 , 0x0000003f 
+ 00012665  0x000020fd fetcht  0x00000001 , 0x00000678 
+ 00012666  0x000020fe lshift3  0x00000002 , 0x00000002 
+ 00012667  0x000020ff ior  0x00000002 , 0x0000003f 
+ 00012668  0x00002100 rtn 
+ 00012669  0x00002103 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00012670  0x00002104 rshift3  0x0000000c , 0x0000003f 
+ 00012671  0x00002105 rtn 
+ 00012672  0x00002108 jam  0x00000001 , 0x000045cb 
+ 00012673  0x00002109 isolate1  0x00000027 , 0x00000000 
+ 00012674  0x0000210a call  0x000035e3 , 0x00000001 
+ 00012675  0x0000210c bpatchx  0x00000070 , 0x0000402e 
+ 00012676  0x0000210d call  0x000025bc 
+ 00012677  0x0000210e disable  0x0000001b 
+ 00012678  0x0000210f disable  0x0000000b 
+ 00012679  0x00002110 branch  0x000020cf 
+ 00012680  0x00002113 jam  0x00000002 , 0x000045cb 
+ 00012681  0x00002114 branch  0x00003183 
+ 00012682  0x00002117 jam  0x00000003 , 0x000045cb 
+ 00012683  0x00002118 branch  0x00003183 
+ 00012684  0x0000211b jam  0x00000004 , 0x000045cb 
+ 00012685  0x0000211c branch  0x00003183 
+ 00012686  0x0000211f jam  0x00000005 , 0x000045cb 
+ 00012687  0x00002120 branch  0x00003183 
+ 00012688  0x00002123 jam  0x00000006 , 0x000045cb 
+ 00012689  0x00002124 branch  0x00003183 
+ 00012690  0x00002127 call  0x00002160 
+ 00012691  0x00002128 fetcht  0x00000001 , 0x0000458d 
+ 00012692  0x00002129 branch  0x000021f9 
+ 00012693  0x0000212c bpatchx  0x00000071 , 0x0000402e 
+ 00012694  0x0000212d fetch  0x00000001 , 0x000045b8 
+ 00012695  0x0000212e call  0x000025a4 
+ 00012696  0x0000212f fetch  0x00000004 , 0x0000458f 
+ 00012697  0x00002130 iforce  0x00000009 
+ 00012698  0x00002131 call  0x00003112 
+ 00012699  0x00002132 call  0x00003192 
+ 00012700  0x00002133 set1  0x00000000 , 0x00000015 
+ 00012701  0x00002134 enable  0x0000001d 
+ 00012702  0x00002135 enable  0x00000020 
+ 00012703  0x00002136 disable  0x00000021 
+ 00012704  0x00002137 call  0x0000687d 
+ 00012705  0x00002138 disable  0x0000003a 
+ 00012706  0x00002139 bmark1  0x0000002f , 0x000031c7 
+ 00012707  0x0000213a bmark1  0x0000002d , 0x000031d9 
+ 00012708  0x0000213b rshift16  0x00000009 , 0x0000003f 
+ 00012709  0x0000213c rshift8  0x0000003f , 0x0000003f 
+ 00012710  0x0000213d rshift4  0x0000003f , 0x0000003f 
+ 00012711  0x0000213e inject  0x00000003 , 0x00000028 
+ 00012712  0x00002140 bpatchx  0x00000072 , 0x0000402e 
+ 00012713  0x00002141 bmark1  0x0000002f , 0x000031ae 
+ 00012714  0x00002142 fetch  0x00000001 , 0x000045ca 
+ 00012715  0x00002143 nbranch  0x000031ae , 0x00000034 
+ 00012716  0x00002144 disable  0x0000001d 
+ 00012717  0x00002145 enable  0x0000001b 
+ 00012718  0x00002147 enable  0x00000007 
+ 00012719  0x00002148 enable  0x00000009 
+ 00012720  0x00002149 fetch  0x00000001 , 0x0000458a 
+ 00012721  0x0000214a iforce  0x00000039 
+ 00012722  0x0000214b arg  0x00004539 , 0x00000006 
+ 00012723  0x0000214d ifetch  0x00000001 , 0x00000006 
+ 00012724  0x0000214e inject  0x00000003 , 0x00000008 
+ 00012725  0x0000214f loop  0x000031b3 
+ 00012726  0x00002150 enable  0x00000008 
+ 00012727  0x00002151 inject  0x00000003 , 0x00000018 
+ 00012728  0x00002152 disable  0x00000008 
+ 00012729  0x00002153 bmark0  0x0000002f , 0x000031bd 
+ 00012730  0x00002154 disable  0x00000007 
+ 00012731  0x00002155 setarg  0x00000000 
+ 00012732  0x00002156 inject  0x00000003 , 0x00000003 
+ 00012733  0x00002158 until  0x0000003e , 0x00000027 
+ 00012734  0x00002159 nop  0x00000064 
+ 00012735  0x0000215a disable  0x0000003a 
+ 00012736  0x0000215b disable  0x0000001d 
+ 00012737  0x0000215c fetch  0x00000001 , 0x000045ca 
+ 00012738  0x0000215d nbranch  0x000031c4 , 0x00000034 
+ 00012739  0x0000215e disable  0x0000001b 
+ 00012740  0x00002160 disable  0x00000038 
+ 00012741  0x00002161 call  0x00002160 
+ 00012742  0x00002162 branch  0x0000687b 
+ 00012743  0x00002165 arg  0x0000000a , 0x00000039 
+ 00012744  0x00002167 setarg  0x0000003c 
+ 00012745  0x00002168 inject  0x00000003 , 0x00000008 
+ 00012746  0x00002169 loop  0x000031c8 
+ 00012747  0x0000216a disable  0x0000001d 
+ 00012748  0x0000216b enable  0x00000038 
+ 00012749  0x0000216c rshift16  0x00000009 , 0x0000003f 
+ 00012750  0x0000216d rshift16  0x0000003f , 0x0000003f 
+ 00012751  0x0000216e rshift4  0x0000003f , 0x0000003f 
+ 00012752  0x0000216f inject  0x00000003 , 0x00000020 
+ 00012753  0x00002170 bmark1  0x0000002e , 0x000031d6 
+ 00012754  0x00002172 setarg  0x00000001 
+ 00012755  0x00002173 inject  0x00000003 , 0x00000005 
+ 00012756  0x00002174 enable  0x0000003a 
+ 00012757  0x00002175 branch  0x000031a8 
+ 00012758  0x00002178 setarg  0x00000000 
+ 00012759  0x00002179 inject  0x00000003 , 0x00000005 
+ 00012760  0x0000217a branch  0x000031a8 
+ 00012761  0x0000217d fetch  0x00000001 , 0x00004148 
+ 00012762  0x0000217e rshift  0x0000003f , 0x00000039 
+ 00012763  0x00002180 nop  0x00000002 
+ 00012764  0x00002181 loop  0x000031db 
+ 00012765  0x00002183 rshift16  0x00000009 , 0x0000003f 
+ 00012766  0x00002184 rshift8  0x0000003f , 0x0000003f 
+ 00012767  0x00002185 rshift4  0x0000003f , 0x00000002 
+ 00012768  0x00002186 copy  0x00000002 , 0x0000003f 
+ 00012769  0x00002187 inject  0x00000003 , 0x00000008 
+ 00012770  0x00002188 copy  0x00000002 , 0x0000003f 
+ 00012771  0x00002189 inject  0x00000003 , 0x00000028 
+ 00012772  0x0000218a branch  0x000031a8 
+ 00012773  0x00002193 bpatchx  0x00000073 , 0x0000402e 
+ 00012774  0x00002194 fetch  0x00000001 , 0x000045b8 
+ 00012775  0x00002195 bbit1  0x00000002 , 0x00003206 
+ 00012776  0x00002197 fetch  0x00000001 , 0x00004588 
+ 00012777  0x00002198 increase  0x00000003 , 0x0000003f 
+ 00012778  0x00002199 store  0x00000001 , 0x0000458a 
+ 00012779  0x0000219b fetch  0x00000001 , 0x000045ac 
+ 00012780  0x0000219c store  0x00000001 , 0x00004539 
+ 00012781  0x0000219e fetch  0x00000001 , 0x00004589 
+ 00012782  0x0000219f istore  0x00000001 , 0x00000005 
+ 00012783  0x000021a1 fetch  0x00000001 , 0x00004588 
+ 00012784  0x000021a3 lshift3  0x0000003f , 0x0000003f 
+ 00012785  0x000021a4 fetcht  0x00000001 , 0x0000457e 
+ 00012786  0x000021a5 and  0x00000002 , 0x00000003 , 0x00000002 
+ 00012787  0x000021a6 lshift  0x00000002 , 0x00000002 
+ 00012788  0x000021a7 ior  0x00000002 , 0x0000003f 
+ 00012789  0x000021a8 fetcht  0x00000001 , 0x0000457f 
+ 00012790  0x000021a9 iadd  0x00000002 , 0x0000003f 
+ 00012791  0x000021aa istore  0x00000001 , 0x00000005 
+ 00012792  0x000021ac fetch  0x00000001 , 0x00004588 
+ 00012793  0x000021ad iforce  0x00000039 
+ 00012794  0x000021ae arg  0x00004519 , 0x00000006 
+ 00012795  0x000021af call  0x00007cda 
+ 00012796  0x000021b0 bpatchx  0x00000074 , 0x0000402e 
+ 00012797  0x000021b2 rtnmark0  0x00000027 
+ 00012798  0x000021b3 fetch  0x00000001 , 0x00000035 
+ 00012799  0x000021b4 istore  0x00000001 , 0x00000005 
+ 00012800  0x000021b5 fetch  0x00000001 , 0x000045b8 
+ 00012801  0x000021b6 rtnbit1  0x00000002 
+ 00012802  0x000021b7 fetch  0x00000001 , 0x0000458a 
+ 00012803  0x000021b8 increase  0x00000001 , 0x0000003f 
+ 00012804  0x000021b9 store  0x00000001 , 0x0000458a 
+ 00012805  0x000021ba rtn 
+ 00012806  0x000021be fetch  0x00000001 , 0x00004588 
+ 00012807  0x000021bf increase  0x00000004 , 0x0000003f 
+ 00012808  0x000021c0 bmark0  0x00000027 , 0x0000320a 
+ 00012809  0x000021c1 increase  0x00000001 , 0x0000003f 
+ 00012810  0x000021c3 store  0x00000001 , 0x0000458a 
+ 00012811  0x000021c5 fetch  0x00000001 , 0x000045ac 
+ 00012812  0x000021c6 store  0x00000001 , 0x00004539 
+ 00012813  0x000021c8 fetch  0x00000001 , 0x0000458a 
+ 00012814  0x000021c9 increase  0xfffffffe , 0x0000003f 
+ 00012815  0x000021ca istore  0x00000001 , 0x00000005 
+ 00012816  0x000021cc fetch  0x00000001 , 0x00004589 
+ 00012817  0x000021cd istore  0x00000001 , 0x00000005 
+ 00012818  0x000021ce setarg  0x00000000 
+ 00012819  0x000021cf branch  0x000031f0 
+ 00012820  0x000021d2 bpatchx  0x00000075 , 0x0000402e 
+ 00012821  0x000021d4 fetch  0x00000001 , 0x000044f8 
+ 00012822  0x000021d5 rshift3  0x0000003f , 0x0000003f 
+ 00012823  0x000021d6 store  0x00000001 , 0x0000457d 
+ 00012824  0x000021d8 increase  0x00000001 , 0x0000003f 
+ 00012825  0x000021d9 arg  0x000044f8 , 0x00000006 
+ 00012826  0x000021da iadd  0x00000006 , 0x00000006 
+ 00012827  0x000021db ifetch  0x00000003 , 0x00000006 
+ 00012828  0x000021dc store  0x00000003 , 0x00004580 
+ 00012829  0x000021de fetch  0x00000001 , 0x000044f8 
+ 00012830  0x000021df rshift  0x0000003f , 0x0000003f 
+ 00012831  0x000021e0 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00012832  0x000021e1 store  0x00000001 , 0x00004586 
+ 00012833  0x000021e2 rtn 
+ 00012834  0x000021e6 bpatchx  0x00000076 , 0x0000402e 
+ 00012835  0x000021e7 fetcht  0x00000001 , 0x0000458e 
+ 00012836  0x000021e8 call  0x00003227 
+ 00012837  0x000021e9 storet  0x00000001 , 0x0000458e 
+ 00012838  0x000021ea rtn 
+ 00012839  0x000021ed bpatchx  0x00000077 , 0x0000402e 
+ 00012840  0x000021ee call  0x0000322c 
+ 00012841  0x000021ef increase  0x00000001 , 0x00000002 
+ 00012842  0x000021f0 and_into  0x00000003 , 0x00000002 
+ 00012843  0x000021f1 rtn 
+ 00012844  0x000021f4 bpatchx  0x00000078 , 0x0000402f 
+ 00012845  0x000021f5 fetch  0x00000001 , 0x0000458f 
+ 00012846  0x000021f6 and_into  0x00000003 , 0x0000003f 
+ 00012847  0x000021f7 mul32  0x0000003f , 0x00000004 , 0x00000011 
+ 00012848  0x000021f8 setarg  0x00004593 
+ 00012849  0x000021f9 iadd  0x00000011 , 0x0000003f 
+ 00012850  0x000021fa iadd  0x00000002 , 0x00000006 
+ 00012851  0x000021fb ifetch  0x00000001 , 0x00000006 
+ 00012852  0x000021fc store  0x00000001 , 0x0000458d 
+ 00012853  0x000021fd rtn 
+ 00012854  0x00002201 store  0x00000004 , 0x0000458f 
+ 00012855  0x00002203 bpatchx  0x00000079 , 0x0000402f 
+ 00012856  0x00002205 arg  0x00000000 , 0x00000011 
+ 00012857  0x00002206 arg  0x00000004 , 0x00000039 
+ 00012858  0x00002207 arg  0x0000458f , 0x00000006 
+ 00012859  0x00002209 ifetch  0x00000001 , 0x00000006 
+ 00012860  0x0000220a iadd  0x00000011 , 0x00000011 
+ 00012861  0x0000220b loop  0x0000323b 
+ 00012862  0x0000220c copy  0x00000011 , 0x0000003f 
+ 00012863  0x0000220d store  0x00000002 , 0x000045aa 
+ 00012864  0x0000220e fetch  0x00000001 , 0x000045aa 
+ 00012865  0x0000220f fetcht  0x00000001 , 0x000045ab 
+ 00012866  0x00002210 iadd  0x00000002 , 0x0000003f 
+ 00012867  0x00002211 store  0x00000001 , 0x000045ac 
+ 00012868  0x00002212 rtn 
+ 00012869  0x00002216 bpatchx  0x0000007a , 0x0000402f 
+ 00012870  0x00002217 call  0x00007dbc 
+ 00012871  0x00002218 fetcht  0x00000004 , 0x000045a3 
+ 00012872  0x00002219 copy  0x00000022 , 0x0000003f 
+ 00012873  0x0000221a isub  0x00000002 , 0x0000003e 
+ 00012874  0x0000221b ncall  0x00003255 , 0x00000002 
+ 00012875  0x0000221c copy  0x0000003f , 0x00000012 
+ 00012876  0x0000221d fetch  0x00000004 , 0x000045a3 
+ 00012877  0x0000221e fetcht  0x00000001 , 0x000045a7 
+ 00012878  0x0000221f iadd  0x00000002 , 0x00000002 
+ 00012879  0x00002220 copy  0x00000012 , 0x0000003f 
+ 00012880  0x00002221 isub  0x00000002 , 0x0000003e 
+ 00012881  0x00002222 nrtn  0x00000002 
+ 00012882  0x00002223 set0  0x0000001c , 0x0000003f 
+ 00012883  0x00002224 store  0x00000004 , 0x000045a3 
+ 00012884  0x00002225 branch  0x00007dba 
+ 00012885  0x00002228 rtn  0x00000005 
+ 00012886  0x00002229 set1  0x0000001c , 0x0000003f 
+ 00012887  0x0000222a rtn 
+ 00012888  0x0000222d setarg  0x00000000 
+ 00012889  0x0000222e store  0x00000004 , 0x000045a3 
+ 00012890  0x0000222f rtn 
+ 00012891  0x00002238 bpatchx  0x0000007b , 0x0000402f 
+ 00012892  0x00002239 setsect  0x00000000 , 0x00001300 
+ 00012893  0x0000223a setsect  0x00000001 , 0x0001908b 
+ 00012894  0x0000223b setsect  0x00000002 , 0x00036150 
+ 00012895  0x0000223c setsect  0x00000003 , 0x00003d20 
+ 00012896  0x0000223d store  0x00000009 , 0x00004593 
+ 00012897  0x0000223e setsect  0x00000000 , 0x00003a1a 
+ 00012898  0x0000223f setsect  0x00000001 , 0x0000c453 
+ 00012899  0x00002240 setsect  0x00000002 , 0x0000d312 
+ 00012900  0x00002241 setsect  0x00000003 , 0x00000001 
+ 00012901  0x00002242 istore  0x00000007 , 0x00000005 
+ 00012902  0x00002243 fetch  0x00000001 , 0x000045b9 
+ 00012903  0x00002244 rtn  0x00000034 
+ 00012904  0x00002245 arg  0x000045ba , 0x00000006 
+ 00012905  0x00002246 arg  0x00004593 , 0x00000005 
+ 00012906  0x00002247 branch  0x00007c8f 
+ 00012907  0x00002250 bpatchx  0x0000007c , 0x0000402f 
+ 00012908  0x00002251 setarg  0x004e001e 
+ 00012909  0x00002252 store  0x00000003 , 0x000045bb 
+ 00012910  0x00002253 setarg  0x00032303 
+ 00012911  0x00002254 istore  0x00000003 , 0x00000005 
+ 00012912  0x00002255 setarg  0x00250642 
+ 00012913  0x00002256 istore  0x00000003 , 0x00000005 
+ 00012914  0x00002257 setarg  0x00094c06 
+ 00012915  0x00002258 istore  0x00000003 , 0x00000005 
+ 00012916  0x00002259 setarg  0x003c0927 
+ 00012917  0x0000225a istore  0x00000003 , 0x00000005 
+ 00012918  0x0000225b jam  0x00000001 , 0x000045b9 
+ 00012919  0x0000225c rtn 
+ 00012920  0x00002260 bpatchx  0x0000007d , 0x0000402f 
+ 00012921  0x00002261 arg  0x00006978 , 0x00000002 
+ 00012922  0x00002262 bmark1  0x00000027 , 0x0000327f 
+ 00012923  0x00002263 arg  0x000012c0 , 0x00000002 
+ 00012924  0x00002264 fetch  0x00000001 , 0x000045b7 
+ 00012925  0x00002265 bbit0  0x00000002 , 0x0000327f 
+ 00012926  0x00002266 arg  0x00002ee0 , 0x00000002 
+ 00012927  0x00002268 storet  0x00000002 , 0x0000458b 
+ 00012928  0x00002269 rtn 
+ 00012929  0x0000226c jam  0x00000001 , 0x000045b7 
+ 00012930  0x0000226d jam  0x00000001 , 0x000045b8 
+ 00012931  0x0000226e rtn 
+ 00012932  0x00002271 jam  0x00000002 , 0x000045b7 
+ 00012933  0x00002272 jam  0x00000002 , 0x000045b8 
+ 00012934  0x00002273 rtn 
+ 00012935  0x0000228c bpatchx  0x0000007e , 0x0000402f 
+ 00012936  0x0000228d jam  0x0000004e , 0x000045d0 
+ 00012937  0x0000228e setarg  0x00101520 
+ 00012938  0x0000228f store  0x00000003 , 0x000045cc 
+ 00012939  0x00002290 setarg  0x00000005 
+ 00012940  0x00002291 istore  0x00000001 , 0x00000005 
+ 00012941  0x00002292 rtn 
+ 00012942  0x00002299 arg  0x000045d8 , 0x00000013 
+ 00012943  0x0000229a arg  0x0000367a , 0x00000012 
+ 00012944  0x0000229b branch  0x000042e7 
+ 00012945  0x0000229e set1  0x00000026 , 0x00000000 
+ 00012946  0x0000229f fetch  0x00000001 , 0x000045fc 
+ 00012947  0x000022a0 set0  0x00000002 , 0x0000003f 
+ 00012948  0x000022a1 set1  0x00000001 , 0x0000003f 
+ 00012949  0x000022a2 store  0x00000001 , 0x000045fc 
+ 00012950  0x000022a3 setarg  0x00000000 
+ 00012951  0x000022a4 store  0x00000002 , 0x000045de 
+ 00012952  0x000022a5 fetch  0x00000002 , 0x000045d6 
+ 00012953  0x000022a6 store  0x00000002 , 0x000045d8 
+ 00012954  0x000022a7 jam  0x00000000 , 0x000045d5 
+ 00012955  0x000022a8 call  0x000032d6 
+ 00012956  0x000022aa jam  0x00000000 , 0x0000457e 
+ 00012957  0x000022ab fetch  0x00000001 , 0x000045d0 
+ 00012958  0x000022ac store  0x00000001 , 0x0000458d 
+ 00012959  0x000022ad fetch  0x00000001 , 0x000045d1 
+ 00012960  0x000022ae store  0x00000001 , 0x00004141 
+ 00012961  0x000022af fetch  0x00000004 , 0x000045cc 
+ 00012962  0x000022b0 branch  0x00003236 
+ 00012963  0x000022b4 bpatchx  0x0000007f , 0x0000402f 
+ 00012964  0x000022b5 jam  0x00000000 , 0x000045e2 
+ 00012965  0x000022b6 fetch  0x00000002 , 0x000045da 
+ 00012966  0x000022b7 increase  0x00000001 , 0x0000003f 
+ 00012967  0x000022b8 store  0x00000002 , 0x000045da 
+ 00012968  0x000022b9 fetch  0x00000001 , 0x000045da 
+ 00012969  0x000022ba and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00012970  0x000022bb nrtn  0x00000034 
+ 00012971  0x000022bc fetch  0x00000001 , 0x000045d4 
+ 00012972  0x000022bd beq  0x000000ff , 0x000032f8 
+ 00012973  0x000022be beq  0x00000001 , 0x000032b2 
+ 00012974  0x000022bf beq  0x00000002 , 0x000032b4 
+ 00012975  0x000022c0 beq  0x00000003 , 0x000032ba 
+ 00012976  0x000022c1 beq  0x00000004 , 0x000032c0 
+ 00012977  0x000022c2 rtn 
+ 00012978  0x000022c5 jam  0x000000ff , 0x00004519 
+ 00012979  0x000022c6 branch  0x000032c1 
+ 00012980  0x000022c9 fetch  0x00000001 , 0x000045ae 
+ 00012981  0x000022ca branch  0x000032b8 , 0x00000034 
+ 00012982  0x000022cb fetch  0x00000004 , 0x00004604 
+ 00012983  0x000022cc call  0x00003236 
+ 00012984  0x000022ce jam  0x000000aa , 0x00004519 
+ 00012985  0x000022cf branch  0x000032c1 
+ 00012986  0x000022d2 jam  0x00000055 , 0x00004519 
+ 00012987  0x000022d3 fetch  0x00000001 , 0x000045ae 
+ 00012988  0x000022d4 branch  0x000032c1 , 0x00000034 
+ 00012989  0x000022d5 fetch  0x00000004 , 0x000045e8 
+ 00012990  0x000022d6 store  0x00000004 , 0x0000451b 
+ 00012991  0x000022d7 branch  0x000032c3 
+ 00012992  0x000022da jam  0x00000022 , 0x00004519 
+ 00012993  0x000022dc fetch  0x00000004 , 0x00004604 
+ 00012994  0x000022dd store  0x00000004 , 0x0000451b 
+ 00012995  0x000022df fetch  0x00000001 , 0x00004589 
+ 00012996  0x000022e0 and_into  0x00000007 , 0x0000003f 
+ 00012997  0x000022e1 store  0x00000001 , 0x0000451a 
+ 00012998  0x000022e2 jam  0x00000000 , 0x0000451f 
+ 00012999  0x000022e3 jam  0x00000007 , 0x00004588 
+ 00013000  0x000022e4 call  0x000031e5 
+ 00013001  0x000022e5 call  0x00003651 
+ 00013002  0x000022e6 nrtn  0x00000018 
+ 00013003  0x000022e7 nrtn  0x0000002f 
+ 00013004  0x000022e8 call  0x0000357b 
+ 00013005  0x000022e9 call  0x0000366e 
+ 00013006  0x000022ea bpatchx  0x00000080 , 0x00004030 
+ 00013007  0x000022eb fetch  0x00000001 , 0x000045d4 
+ 00013008  0x000022ec rtneq  0x000000ff 
+ 00013009  0x000022ed beq  0x00000001 , 0x000032db 
+ 00013010  0x000022ee beq  0x00000002 , 0x000032dd 
+ 00013011  0x000022ef beq  0x00000003 , 0x000032e3 
+ 00013012  0x000022f0 beq  0x00000004 , 0x000032eb 
+ 00013013  0x000022f1 rtn 
+ 00013014  0x000022f4 jam  0x00000002 , 0x000045d4 
+ 00013015  0x000022f5 fetch  0x00000001 , 0x000045ae 
+ 00013016  0x000022f6 rtn  0x00000034 
+ 00013017  0x000022f7 jam  0x00000001 , 0x000045d4 
+ 00013018  0x000022f8 rtn 
+ 00013019  0x000022fb jam  0x00000002 , 0x000045d4 
+ 00013020  0x000022fc branch  0x0000364c 
+ 00013021  0x000022ff fetch  0x00000001 , 0x000045ae 
+ 00013022  0x00002300 branch  0x000032e1 , 0x00000034 
+ 00013023  0x00002301 fetch  0x00000004 , 0x0000455f 
+ 00013024  0x00002302 store  0x00000004 , 0x000045e8 
+ 00013025  0x00002304 jam  0x00000003 , 0x000045d4 
+ 00013026  0x00002305 branch  0x0000364c 
+ 00013027  0x00002308 fetch  0x00000001 , 0x000045ae 
+ 00013028  0x00002309 branch  0x000032e9 , 0x00000034 
+ 00013029  0x0000230a fetch  0x00000004 , 0x0000455f 
+ 00013030  0x0000230b fetcht  0x00000004 , 0x00004604 
+ 00013031  0x0000230c isub  0x00000002 , 0x0000003e 
+ 00013032  0x0000230d nrtn  0x00000005 
+ 00013033  0x0000230f jam  0x00000004 , 0x000045d4 
+ 00013034  0x00002310 branch  0x0000364c 
+ 00013035  0x00002313 fetch  0x00000001 , 0x000045ae 
+ 00013036  0x00002314 branch  0x000032f1 , 0x00000034 
+ 00013037  0x00002315 fetch  0x00000004 , 0x0000455f 
+ 00013038  0x00002316 fetcht  0x00000004 , 0x000045e8 
+ 00013039  0x00002317 isub  0x00000002 , 0x0000003e 
+ 00013040  0x00002318 nrtn  0x00000005 
+ 00013041  0x0000231a jam  0x000000ff , 0x000045d4 
+ 00013042  0x0000231b jam  0x00000039 , 0x0000066f 
+ 00013043  0x0000231c call  0x0000782b 
+ 00013044  0x0000231d setarg  0x00000000 
+ 00013045  0x0000231e store  0x00000002 , 0x000045d8 
+ 00013046  0x0000231f fetch  0x00000004 , 0x0000455f 
+ 00013047  0x00002320 call  0x00003236 
+ 00013048  0x00002322 fetch  0x00000001 , 0x000045fc 
+ 00013049  0x00002323 set0  0x00000001 , 0x0000003f 
+ 00013050  0x00002324 store  0x00000001 , 0x000045fc 
+ 00013051  0x00002325 branch  0x0000364c 
+ 00013052  0x00002340 jam  0x00000001 , 0x00004616 
+ 00013053  0x00002341 jam  0x00000000 , 0x00004615 
+ 00013054  0x00002342 rtn 
+ 00013055  0x00002345 fetch  0x00000001 , 0x00004615 
+ 00013056  0x00002346 rtnbit1  0x00000001 
+ 00013057  0x00002347 set1  0x00000001 , 0x0000003f 
+ 00013058  0x00002348 store  0x00000001 , 0x00004615 
+ 00013059  0x00002349 setarg  0x00000000 
+ 00013060  0x0000234a store  0x00000003 , 0x000045d3 
+ 00013061  0x0000234b store  0x00000001 , 0x000045de 
+ 00013062  0x0000234c store  0x00000001 , 0x000045df 
+ 00013063  0x0000234d store  0x00000004 , 0x0000462c 
+ 00013064  0x0000234e jam  0x00000001 , 0x00004611 
+ 00013065  0x0000234f branch  0x0000329c 
+ 00013066  0x00002353 jam  0x00000001 , 0x00004611 
+ 00013067  0x00002354 jam  0x00000008 , 0x00004588 
+ 00013068  0x00002355 arg  0x000045d6 , 0x00000006 
+ 00013069  0x00002356 arg  0x00004519 , 0x00000005 
+ 00013070  0x00002357 branch  0x00007c89 
+ 00013071  0x0000235b bpatchx  0x00000081 , 0x00004030 
+ 00013072  0x0000235c call  0x000033be 
+ 00013073  0x0000235d call  0x00003119 
+ 00013074  0x0000235e nbranch  0x000033be , 0x0000002f 
+ 00013075  0x0000235f call  0x0000331e 
+ 00013076  0x00002360 call  0x000033f4 
+ 00013077  0x00002361 call  0x00003399 
+ 00013078  0x00002362 call  0x0000493d 
+ 00013079  0x00002363 fetch  0x00000001 , 0x000045ae 
+ 00013080  0x00002364 rtn  0x00000034 
+ 00013081  0x00002365 fetch  0x00000004 , 0x0000462c 
+ 00013082  0x00002366 rtn  0x00000034 
+ 00013083  0x00002367 branch  0x00003236 
+ 00013084  0x0000236a call  0x000033be 
+ 00013085  0x0000236b branch  0x00003183 
+ 00013086  0x0000236e jam  0x00000005 , 0x00004622 
+ 00013087  0x0000236f arg  0x000044f7 , 0x00000006 
+ 00013088  0x00002370 arg  0x000045e8 , 0x00000005 
+ 00013089  0x00002371 call  0x00007c89 
+ 00013090  0x00002372 bpatchx  0x00000082 , 0x00004030 
+ 00013091  0x00002373 fetch  0x00000001 , 0x000045ea 
+ 00013092  0x00002374 beq  0x000000aa , 0x00003329 
+ 00013093  0x00002375 beq  0x00000055 , 0x0000333a 
+ 00013094  0x00002376 beq  0x00000022 , 0x0000335b 
+ 00013095  0x00002377 beq  0x000000ff , 0x0000359b 
+ 00013096  0x00002378 rtn 
+ 00013097  0x0000237c fetch  0x00000001 , 0x000045eb 
+ 00013098  0x0000237d beq  0x00000001 , 0x0000332d 
+ 00013099  0x0000237e beq  0x00000002 , 0x00003335 
+ 00013100  0x0000237f rtn 
+ 00013101  0x00002382 fetch  0x00000001 , 0x000045de 
+ 00013102  0x00002383 nrtn  0x00000034 
+ 00013103  0x00002384 jam  0x00000001 , 0x000045d3 
+ 00013104  0x00002386 jam  0x00000001 , 0x000045d6 
+ 00013105  0x00002388 jam  0x00000080 , 0x000045d7 
+ 00013106  0x00002389 fetch  0x00000006 , 0x000044f1 
+ 00013107  0x0000238a store  0x00000006 , 0x000045d8 
+ 00013108  0x0000238b rtn 
+ 00013109  0x0000238e fetch  0x00000001 , 0x000045df 
+ 00013110  0x0000238f nrtn  0x00000034 
+ 00013111  0x00002390 jam  0x00000001 , 0x000045d4 
+ 00013112  0x00002392 jam  0x00000002 , 0x000045d6 
+ 00013113  0x00002393 branch  0x00003331 
+ 00013114  0x00002397 fetch  0x00000001 , 0x000045ae 
+ 00013115  0x00002398 branch  0x00003340 , 0x00000034 
+ 00013116  0x00002399 fetch  0x00000004 , 0x000045ec 
+ 00013117  0x0000239a fetcht  0x00000004 , 0x000044f1 
+ 00013118  0x0000239b isub  0x00000002 , 0x0000003e 
+ 00013119  0x0000239c nrtn  0x00000005 
+ 00013120  0x0000239e fetch  0x00000001 , 0x000045eb 
+ 00013121  0x0000239f beq  0x00000001 , 0x00003344 
+ 00013122  0x000023a0 beq  0x00000002 , 0x00003351 
+ 00013123  0x000023a1 rtn 
+ 00013124  0x000023a4 fetch  0x00000001 , 0x000045de 
+ 00013125  0x000023a5 nrtn  0x00000034 
+ 00013126  0x000023a6 fetch  0x00000001 , 0x000045d3 
+ 00013127  0x000023a7 beq  0x00000001 , 0x00003349 
+ 00013128  0x000023a8 rtn 
+ 00013129  0x000023aa jam  0x00000002 , 0x000045d3 
+ 00013130  0x000023ab fetch  0x00000001 , 0x000045ae 
+ 00013131  0x000023ac branch  0x00003330 , 0x00000034 
+ 00013132  0x000023ae jam  0x00000001 , 0x000045d6 
+ 00013133  0x000023b0 jam  0x00000080 , 0x000045d7 
+ 00013134  0x000023b1 fetch  0x00000004 , 0x0000462c 
+ 00013135  0x000023b2 store  0x00000004 , 0x000045d8 
+ 00013136  0x000023b3 branch  0x00007dba 
+ 00013137  0x000023b6 fetch  0x00000001 , 0x000045df 
+ 00013138  0x000023b7 nrtn  0x00000034 
+ 00013139  0x000023b8 fetch  0x00000001 , 0x000045d4 
+ 00013140  0x000023b9 beq  0x00000001 , 0x00003356 
+ 00013141  0x000023ba rtn 
+ 00013142  0x000023bc jam  0x00000002 , 0x000045d4 
+ 00013143  0x000023bd fetch  0x00000001 , 0x000045ae 
+ 00013144  0x000023be branch  0x00003338 , 0x00000034 
+ 00013145  0x000023bf jam  0x00000002 , 0x000045d6 
+ 00013146  0x000023c0 branch  0x0000334d 
+ 00013147  0x000023c4 fetch  0x00000001 , 0x000045ae 
+ 00013148  0x000023c5 branch  0x00003361 , 0x00000034 
+ 00013149  0x000023c6 fetch  0x00000004 , 0x000045ec 
+ 00013150  0x000023c7 fetcht  0x00000004 , 0x0000462c 
+ 00013151  0x000023c8 isub  0x00000002 , 0x0000003e 
+ 00013152  0x000023c9 nrtn  0x00000005 
+ 00013153  0x000023cb fetch  0x00000001 , 0x000045eb 
+ 00013154  0x000023cc beq  0x00000001 , 0x00003365 
+ 00013155  0x000023cd beq  0x00000002 , 0x00003372 
+ 00013156  0x000023ce rtn 
+ 00013157  0x000023d1 fetch  0x00000001 , 0x000045de 
+ 00013158  0x000023d2 nrtn  0x00000034 
+ 00013159  0x000023d3 fetch  0x00000001 , 0x000045d3 
+ 00013160  0x000023d4 beq  0x00000002 , 0x0000336a 
+ 00013161  0x000023d5 rtn 
+ 00013162  0x000023d7 jam  0x00000001 , 0x000045de 
+ 00013163  0x000023d9 call  0x00003330 
+ 00013164  0x000023da fetch  0x00000001 , 0x000045d5 
+ 00013165  0x000023db or_into  0x00000001 , 0x0000003f 
+ 00013166  0x000023dc store  0x00000001 , 0x000045d5 
+ 00013167  0x000023de setarg  0x00000000 
+ 00013168  0x000023df store  0x00000002 , 0x000045d3 
+ 00013169  0x000023e0 rtn 
+ 00013170  0x000023e3 fetch  0x00000001 , 0x000045df 
+ 00013171  0x000023e4 nrtn  0x00000034 
+ 00013172  0x000023e5 fetch  0x00000001 , 0x000045d4 
+ 00013173  0x000023e6 bne  0x00000000 , 0x00003377 
+ 00013174  0x000023e7 rtn 
+ 00013175  0x000023e9 jam  0x00000001 , 0x000045df 
+ 00013176  0x000023eb call  0x00003338 
+ 00013177  0x000023ec fetch  0x00000001 , 0x000045d5 
+ 00013178  0x000023ed or_into  0x00000002 , 0x0000003f 
+ 00013179  0x000023ee store  0x00000001 , 0x000045d5 
+ 00013180  0x000023ef call  0x0000336f 
+ 00013181  0x000023f0 branch  0x00004937 
+ 00013182  0x000023f3 fetch  0x00000001 , 0x00004616 
+ 00013183  0x000023f4 rtnne  0x00000001 
+ 00013184  0x000023f5 fetch  0x00000001 , 0x00004610 
+ 00013185  0x000023f6 nrtn  0x00000034 
+ 00013186  0x000023f7 fetch  0x00000001 , 0x000044fa 
+ 00013187  0x000023f8 beq  0x00000001 , 0x00003386 
+ 00013188  0x000023f9 beq  0x00000002 , 0x0000338a 
+ 00013189  0x000023fa rtn 
+ 00013190  0x000023fc fetch  0x00000001 , 0x0000462b 
+ 00013191  0x000023fd rtnbit0  0x00000000 
+ 00013192  0x000023ff disable  0x0000002f 
+ 00013193  0x00002400 rtn 
+ 00013194  0x00002402 fetch  0x00000001 , 0x0000462b 
+ 00013195  0x00002403 rtnbit0  0x00000001 
+ 00013196  0x00002404 branch  0x00003388 
+ 00013197  0x00002407 fetch  0x00000001 , 0x00004610 
+ 00013198  0x00002408 nrtn  0x00000034 
+ 00013199  0x00002409 fetch  0x00000001 , 0x0000462b 
+ 00013200  0x0000240a or_into  0x00000001 , 0x0000003f 
+ 00013201  0x0000240b store  0x00000001 , 0x0000462b 
+ 00013202  0x0000240c rtn 
+ 00013203  0x0000240f fetch  0x00000001 , 0x00004610 
+ 00013204  0x00002410 nrtn  0x00000034 
+ 00013205  0x00002411 fetch  0x00000001 , 0x0000462b 
+ 00013206  0x00002412 or_into  0x00000002 , 0x0000003f 
+ 00013207  0x00002413 store  0x00000001 , 0x0000462b 
+ 00013208  0x00002414 rtn 
+ 00013209  0x00002418 fetch  0x00000001 , 0x000045d5 
+ 00013210  0x00002419 rtn  0x00000034 
+ 00013211  0x0000241b fetch  0x00000001 , 0x000045eb 
+ 00013212  0x0000241c beq  0x00000001 , 0x0000338d 
+ 00013213  0x0000241d beq  0x00000002 , 0x00003393 
+ 00013214  0x0000241e rtn 
+ 00013215  0x00002432 set1  0x00000027 , 0x00000000 
+ 00013216  0x00002433 fetch  0x00000001 , 0x00004141 
+ 00013217  0x00002434 store  0x00000001 , 0x00004623 
+ 00013218  0x00002435 branch  0x000035d6 
+ 00013219  0x00002438 fetch  0x00000002 , 0x000045e0 
+ 00013220  0x00002439 branch  0x00007d79 
+ 00013221  0x0000243c bpatchx  0x00000083 , 0x00004030 
+ 00013222  0x0000243d jam  0x00000000 , 0x00004588 
+ 00013223  0x0000243e fetch  0x00000001 , 0x00004611 
+ 00013224  0x0000243f rtn  0x00000034 
+ 00013225  0x00002440 fetch  0x00000002 , 0x000045e2 
+ 00013226  0x00002441 branch  0x00007d79 
+ 00013227  0x00002445 call  0x000033f1 
+ 00013228  0x00002446 nbranch  0x000033be , 0x0000002f 
+ 00013229  0x00002448 call  0x000033e3 
+ 00013230  0x00002449 nbranch  0x000033be , 0x00000028 
+ 00013231  0x0000244a fetch  0x00000001 , 0x0000457d 
+ 00013232  0x0000244b branch  0x000033be , 0x00000034 
+ 00013233  0x0000244c increase  0x00000002 , 0x0000003f 
+ 00013234  0x0000244d iforce  0x00000039 
+ 00013235  0x0000244e arg  0x000044f7 , 0x00000006 
+ 00013236  0x0000244f arg  0x000045e8 , 0x00000005 
+ 00013237  0x00002450 call  0x00007cda 
+ 00013238  0x00002451 jam  0x00000000 , 0x00004613 
+ 00013239  0x00002452 fetch  0x00000001 , 0x00004610 
+ 00013240  0x00002453 call  0x000033fe , 0x00000034 
+ 00013241  0x00002454 bpatchx  0x00000084 , 0x00004030 
+ 00013242  0x00002455 fetch  0x00000001 , 0x000045ea 
+ 00013243  0x00002456 beq  0x00000001 , 0x000033c4 
+ 00013244  0x00002457 beq  0x00000002 , 0x000033d3 
+ 00013245  0x00002458 beq  0x000000ff , 0x000033c2 
+ 00013246  0x0000245a bpatchx  0x00000085 , 0x00004030 
+ 00013247  0x0000245b arg  0x000044f7 , 0x00000005 
+ 00013248  0x0000245c arg  0x00000042 , 0x00000039 
+ 00013249  0x0000245d branch  0x00007ca1 
+ 00013250  0x00002460 call  0x0000339b 
+ 00013251  0x00002461 branch  0x0000359b 
+ 00013252  0x00002464 call  0x0000338d 
+ 00013253  0x00002465 call  0x0000352e 
+ 00013254  0x00002466 fetch  0x00000001 , 0x0000460a 
+ 00013255  0x00002467 fetcht  0x00000001 , 0x000045e8 
+ 00013256  0x00002468 isolate1  0x00000003 , 0x00000002 
+ 00013257  0x00002469 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00013258  0x0000246a store  0x00000001 , 0x0000460a 
+ 00013259  0x0000246b beq  0x00000001 , 0x000033d9 
+ 00013260  0x0000246c fetch  0x00000001 , 0x00004612 
+ 00013261  0x0000246d fetcht  0x00000001 , 0x000045e8 
+ 00013262  0x0000246e isolate1  0x00000004 , 0x00000002 
+ 00013263  0x0000246f setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00013264  0x00002470 store  0x00000001 , 0x00004612 
+ 00013265  0x00002471 fetch  0x00000002 , 0x000045e4 
+ 00013266  0x00002472 branch  0x00007d79 
+ 00013267  0x00002475 call  0x00003393 
+ 00013268  0x00002476 fetcht  0x00000001 , 0x000045e8 
+ 00013269  0x00002477 isolate1  0x00000003 , 0x00000002 
+ 00013270  0x00002478 branch  0x000033e1 , 0x00000001 
+ 00013271  0x00002479 fetch  0x00000002 , 0x000045e6 
+ 00013272  0x0000247a branch  0x00007d79 
+ 00013273  0x0000247d fetch  0x00000001 , 0x000043cb 
+ 00013274  0x0000247e sub  0x0000003f , 0x0000000e , 0x0000003e 
+ 00013275  0x0000247f call  0x00004469 , 0x00000005 
+ 00013276  0x00002480 fetch  0x00000001 , 0x000045de 
+ 00013277  0x00002481 nrtn  0x00000034 
+ 00013278  0x00002482 jam  0x00000001 , 0x000045de 
+ 00013279  0x00002483 fetch  0x00000004 , 0x000045f2 
+ 00013280  0x00002484 branch  0x000035a3 
+ 00013281  0x00002486 fetch  0x00000004 , 0x000045f2 
+ 00013282  0x00002487 branch  0x000035a9 
+ 00013283  0x0000248b call  0x00007dbc 
+ 00013284  0x0000248c fetch  0x00000001 , 0x00004586 
+ 00013285  0x0000248d fetcht  0x00000001 , 0x00004587 
+ 00013286  0x0000248e isub  0x00000002 , 0x0000003e 
+ 00013287  0x0000248f ncall  0x00007dba , 0x00000005 
+ 00013288  0x00002490 fetch  0x00000001 , 0x00004586 
+ 00013289  0x00002491 store  0x00000001 , 0x00004587 
+ 00013290  0x00002492 fetch  0x00000003 , 0x00004580 
+ 00013291  0x00002493 fetcht  0x00000003 , 0x00004583 
+ 00013292  0x00002494 isub  0x00000002 , 0x0000003e 
+ 00013293  0x00002495 ncall  0x00007dba , 0x00000005 
+ 00013294  0x00002496 fetch  0x00000003 , 0x00004580 
+ 00013295  0x00002497 store  0x00000003 , 0x00004583 
+ 00013296  0x00002498 rtn 
+ 00013297  0x0000249b call  0x000033be 
+ 00013298  0x0000249c call  0x00003119 
+ 00013299  0x0000249d nrtn  0x0000002f 
+ 00013300  0x000024a0 fetch  0x00000001 , 0x000044f7 
+ 00013301  0x000024a1 store  0x00000001 , 0x00004589 
+ 00013302  0x000024a3 call  0x00003214 
+ 00013303  0x000024a5 fetch  0x00000001 , 0x000044f8 
+ 00013304  0x000024a6 isolate1  0x00000000 , 0x0000003f 
+ 00013305  0x000024a7 branch  0x000033fd , 0x00000001 
+ 00013306  0x000024a9 call  0x000033a5 
+ 00013307  0x000024aa call  0x000031e5 
+ 00013308  0x000024ab call  0x00003195 
+ 00013309  0x000024ad branch  0x00003183 
+ 00013310  0x000024b1 jam  0x00000001 , 0x00004614 
+ 00013311  0x000024b3 setarg  0x00000280 
+ 00013312  0x000024b4 arg  0x00000008 , 0x00000007 
+ 00013313  0x000024b5 branch  0x00007ce1 
+ 00013314  0x000024bc bpatchx  0x00000086 , 0x00004030 
+ 00013315  0x000024bd jam  0x00000001 , 0x00004613 
+ 00013316  0x000024be jam  0x00000000 , 0x00004617 
+ 00013317  0x000024bf jam  0x000000ff , 0x000045a7 
+ 00013318  0x000024c0 branch  0x00003258 
+ 00013319  0x000024c3 bpatchx  0x00000087 , 0x00004030 
+ 00013320  0x000024c4 fetch  0x00000001 , 0x00004613 
+ 00013321  0x000024c5 rtn  0x00000034 
+ 00013322  0x000024c6 call  0x00003245 
+ 00013323  0x000024c7 nrtn  0x00000028 
+ 00013324  0x000024c8 call  0x00003414 
+ 00013325  0x000024c9 fetch  0x00000001 , 0x00004617 
+ 00013326  0x000024ca increase  0x00000001 , 0x0000003f 
+ 00013327  0x000024cb and_into  0x00000001 , 0x0000003f 
+ 00013328  0x000024cc store  0x00000001 , 0x00004617 
+ 00013329  0x000024cd beq  0x00000000 , 0x00003419 
+ 00013330  0x000024ce beq  0x00000001 , 0x0000341c 
+ 00013331  0x000024cf rtn 
+ 00013332  0x000024d2 fetch  0x00000001 , 0x00004622 
+ 00013333  0x000024d3 rtn  0x00000034 
+ 00013334  0x000024d4 increase  0xffffffff , 0x0000003f 
+ 00013335  0x000024d5 store  0x00000001 , 0x00004622 
+ 00013336  0x000024d6 rtn 
+ 00013337  0x000024d9 fetch  0x00000001 , 0x00004622 
+ 00013338  0x000024da nrtn  0x00000034 
+ 00013339  0x000024db branch  0x00003460 
+ 00013340  0x000024de fetch  0x00000001 , 0x00004622 
+ 00013341  0x000024df nrtn  0x00000034 
+ 00013342  0x000024e0 branch  0x000032fc 
+ 00013343  0x000024e4 fetch  0x00000001 , 0x0000462a 
+ 00013344  0x000024e5 nrtn  0x00000034 
+ 00013345  0x000024e6 fetch  0x00000001 , 0x00004628 
+ 00013346  0x000024e7 call  0x0000344f , 0x00000034 
+ 00013347  0x000024e8 fetch  0x00000001 , 0x00004625 
+ 00013348  0x000024e9 rtnbit1  0x00000000 
+ 00013349  0x000024ea set1  0x00000000 , 0x0000003f 
+ 00013350  0x000024eb store  0x00000001 , 0x00004625 
+ 00013351  0x000024ec jam  0x00000001 , 0x00004624 
+ 00013352  0x000024ed jam  0x00000000 , 0x00004629 
+ 00013353  0x000024ee setarg  0x00000000 
+ 00013354  0x000024ef store  0x00000002 , 0x00004626 
+ 00013355  0x000024f0 jam  0x00000060 , 0x000045a7 
+ 00013356  0x000024f1 branch  0x00003258 
+ 00013357  0x000024f4 bpatchx  0x00000088 , 0x00004031 
+ 00013358  0x000024f5 fetch  0x00000001 , 0x00004616 
+ 00013359  0x000024f6 rtneq  0x00000000 
+ 00013360  0x000024f7 fetch  0x00000001 , 0x0000462a 
+ 00013361  0x000024f8 nrtn  0x00000034 
+ 00013362  0x000024f9 fetch  0x00000001 , 0x00004628 
+ 00013363  0x000024fa nrtn  0x00000034 
+ 00013364  0x000024fb fetch  0x00000001 , 0x00004624 
+ 00013365  0x000024fc rtn  0x00000034 
+ 00013366  0x000024fd fetch  0x00000001 , 0x0000462b 
+ 00013367  0x000024fe compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00013368  0x000024ff branch  0x0000344b , 0x00000001 
+ 00013369  0x00002500 call  0x00003245 
+ 00013370  0x00002501 nrtn  0x00000028 
+ 00013371  0x00002502 fetch  0x00000002 , 0x00004626 
+ 00013372  0x00002503 increase  0x00000001 , 0x0000003f 
+ 00013373  0x00002504 store  0x00000002 , 0x00004626 
+ 00013374  0x00002505 arg  0x000007d0 , 0x00000002 
+ 00013375  0x00002506 isub  0x00000002 , 0x0000003e 
+ 00013376  0x00002507 branch  0x0000344b , 0x00000002 
+ 00013377  0x00002508 fetch  0x00000001 , 0x00004629 
+ 00013378  0x00002509 increase  0x00000001 , 0x0000003f 
+ 00013379  0x0000250a and_into  0x00000001 , 0x0000003f 
+ 00013380  0x0000250b store  0x00000001 , 0x00004629 
+ 00013381  0x0000250c beq  0x00000000 , 0x00003514 
+ 00013382  0x0000250d beq  0x00000001 , 0x000032fc 
+ 00013383  0x0000250e rtn 
+ 00013384  0x00002511 fetch  0x00000001 , 0x00004622 
+ 00013385  0x00002512 nbranch  0x000032fc , 0x00000034 
+ 00013386  0x00002513 branch  0x00003514 
+ 00013387  0x00002516 jam  0x00000001 , 0x00004628 
+ 00013388  0x00002517 branch  0x00003514 
+ 00013389  0x0000251a jam  0x00000000 , 0x00004624 
+ 00013390  0x0000251b rtn 
+ 00013391  0x0000251d jam  0x00000001 , 0x00004624 
+ 00013392  0x0000251e rtn 
+ 00013393  0x0000252a bpatchx  0x00000089 , 0x00004031 
+ 00013394  0x0000252b fetch  0x00000001 , 0x00004615 
+ 00013395  0x0000252c rtnbit1  0x00000000 
+ 00013396  0x0000252d set1  0x00000000 , 0x0000003f 
+ 00013397  0x0000252e store  0x00000001 , 0x00004615 
+ 00013398  0x0000252f fetch  0x00000001 , 0x00004623 
+ 00013399  0x00002530 store  0x00000001 , 0x00004141 
+ 00013400  0x00002531 jam  0x00000000 , 0x00004611 
+ 00013401  0x00002532 jam  0x00000000 , 0x0000090d 
+ 00013402  0x00002533 jam  0x00000001 , 0x0000460a 
+ 00013403  0x00002534 jam  0x00000000 , 0x0000457e 
+ 00013404  0x00002535 fetch  0x00000004 , 0x000044f1 
+ 00013405  0x00002536 call  0x00003236 
+ 00013406  0x00002537 call  0x00003222 
+ 00013407  0x00002538 branch  0x000033be 
+ 00013408  0x0000253c jam  0x00000000 , 0x00004611 
+ 00013409  0x0000253e jam  0x00000000 , 0x00004616 
+ 00013410  0x0000253f jam  0x00000000 , 0x00004615 
+ 00013411  0x00002540 rtn 
+ 00013412  0x00002544 fetch  0x00000001 , 0x00004616 
+ 00013413  0x00002545 rtnne  0x00000000 
+ 00013414  0x00002546 call  0x00003451 
+ 00013415  0x00002547 call  0x00003518 
+ 00013416  0x00002548 branch  0x000033ab 
+ 00013417  0x00002556 bpatchx  0x0000008a , 0x00004031 
+ 00013418  0x00002557 fetch  0x00000001 , 0x00004616 
+ 00013419  0x00002558 rtnne  0x00000001 
+ 00013420  0x00002559 call  0x000032ff 
+ 00013421  0x0000255a call  0x0000330f 
+ 00013422  0x0000255b fetch  0x00000001 , 0x00004610 
+ 00013423  0x0000255c nrtn  0x00000034 
+ 00013424  0x0000255d fetch  0x00000001 , 0x000045d5 
+ 00013425  0x0000255e rtn  0x00000034 
+ 00013426  0x0000255f jam  0x00000000 , 0x00004613 
+ 00013427  0x00002560 call  0x00003460 
+ 00013428  0x00002561 call  0x000033fe 
+ 00013429  0x00002562 branch  0x00003258 
+ 00013430  0x0000256f fetch  0x00000001 , 0x00004615 
+ 00013431  0x00002570 rtnbit1  0x00000007 
+ 00013432  0x00002571 set1  0x00000007 , 0x0000003f 
+ 00013433  0x00002572 store  0x00000001 , 0x00004615 
+ 00013434  0x00002573 fetch  0x00000001 , 0x00004623 
+ 00013435  0x00002574 store  0x00000001 , 0x00004141 
+ 00013436  0x00002576 jam  0x00000000 , 0x00004617 
+ 00013437  0x00002577 jam  0x00000001 , 0x00004611 
+ 00013438  0x00002578 setarg  0x00000000 
+ 00013439  0x00002579 store  0x00000003 , 0x0000463d 
+ 00013440  0x0000257a store  0x00000007 , 0x0000461a 
+ 00013441  0x0000257b call  0x00003506 
+ 00013442  0x0000257c nrtn  0x00000005 
+ 00013443  0x0000257d fetch  0x00000001 , 0x0000458e 
+ 00013444  0x0000257e store  0x00000001 , 0x00004619 
+ 00013445  0x0000257f fetch  0x00000001 , 0x0000458d 
+ 00013446  0x00002580 store  0x00000001 , 0x00004618 
+ 00013447  0x00002581 rtn 
+ 00013448  0x00002585 bpatchx  0x0000008b , 0x00004031 
+ 00013449  0x00002586 fetch  0x00000001 , 0x00004616 
+ 00013450  0x00002587 rtnne  0x00000007 
+ 00013451  0x00002588 call  0x00003476 
+ 00013452  0x00002589 call  0x000034ae 
+ 00013453  0x0000258a call  0x000033f1 
+ 00013454  0x0000258b nbranch  0x000033be , 0x0000002f 
+ 00013455  0x0000258d call  0x00003506 
+ 00013456  0x0000258e call  0x000033ad , 0x00000005 
+ 00013457  0x00002590 fetch  0x00000001 , 0x0000460a 
+ 00013458  0x00002591 call  0x0000344d , 0x00000034 
+ 00013459  0x00002594 jam  0x00000000 , 0x00004616 
+ 00013460  0x00002595 fetch  0x00000001 , 0x00004615 
+ 00013461  0x00002596 set1  0x00000000 , 0x0000003f 
+ 00013462  0x00002597 store  0x00000001 , 0x00004615 
+ 00013463  0x00002599 fetch  0x00000001 , 0x00004611 
+ 00013464  0x0000259a sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00013465  0x0000259b ncall  0x00003504 , 0x00000005 
+ 00013466  0x0000259d call  0x000033be 
+ 00013467  0x0000259e call  0x000033fe 
+ 00013468  0x0000259f call  0x00003506 
+ 00013469  0x000025a0 branch  0x000034a7 , 0x00000005 
+ 00013470  0x000025a1 fetch  0x00000004 , 0x0000458f 
+ 00013471  0x000025a2 fetcht  0x00000004 , 0x00004634 
+ 00013472  0x000025a3 isub  0x00000002 , 0x0000003e 
+ 00013473  0x000025a4 branch  0x000034aa , 0x00000005 
+ 00013474  0x000025a5 fetch  0x00000004 , 0x0000458f 
+ 00013475  0x000025a6 fetcht  0x00000004 , 0x00004630 
+ 00013476  0x000025a7 isub  0x00000002 , 0x0000003e 
+ 00013477  0x000025a8 branch  0x000034ac , 0x00000005 
+ 00013478  0x000025a9 rtn 
+ 00013479  0x000025ad fetch  0x00000001 , 0x00004619 
+ 00013480  0x000025af store  0x00000001 , 0x0000458e 
+ 00013481  0x000025b0 rtn 
+ 00013482  0x000025b3 fetch  0x00000001 , 0x0000461f 
+ 00013483  0x000025b4 branch  0x000034a8 
+ 00013484  0x000025b7 fetch  0x00000001 , 0x0000461c 
+ 00013485  0x000025b8 branch  0x000034a8 
+ 00013486  0x000025bc bpatchx  0x0000008c , 0x00004031 
+ 00013487  0x000025bd fetch  0x00000001 , 0x00004617 
+ 00013488  0x000025be increase  0x00000001 , 0x0000003f 
+ 00013489  0x000025bf and_into  0x00000003 , 0x0000003f 
+ 00013490  0x000025c0 store  0x00000001 , 0x00004617 
+ 00013491  0x000025c2 beq  0x00000000 , 0x000034d2 
+ 00013492  0x000025c3 beq  0x00000001 , 0x000034ec 
+ 00013493  0x000025c4 beq  0x00000002 , 0x000034b8 
+ 00013494  0x000025c5 beq  0x00000003 , 0x000034ec 
+ 00013495  0x000025c6 rtn 
+ 00013496  0x000025c9 call  0x00003330 
+ 00013497  0x000025ca fetch  0x00000004 , 0x00004630 
+ 00013498  0x000025cb branch  0x000034ae , 0x00000034 
+ 00013499  0x000025cc call  0x00003236 
+ 00013500  0x000025cd fetch  0x00000001 , 0x0000461d 
+ 00013501  0x000025ce call  0x000034cd , 0x00000034 
+ 00013502  0x000025cf fetch  0x00000001 , 0x0000461b 
+ 00013503  0x000025d0 store  0x00000001 , 0x0000458d 
+ 00013504  0x000025d1 fetcht  0x00000001 , 0x0000463e 
+ 00013505  0x000025d2 fetchr  0x00000011 , 0x00000002 , 0x00004644 
+ 00013506  0x000025d3 call  0x000035ab 
+ 00013507  0x000025d4 storet  0x00000001 , 0x0000463e 
+ 00013508  0x000025d5 call  0x000035b4 
+ 00013509  0x000025d6 storet  0x00000001 , 0x0000463b 
+ 00013510  0x000025d7 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013511  0x000025d8 nrtn  0x00000002 
+ 00013512  0x000025d9 fetcht  0x00000001 , 0x0000461c 
+ 00013513  0x000025da call  0x00003227 
+ 00013514  0x000025db storet  0x00000001 , 0x0000461c 
+ 00013515  0x000025dc store  0x00000001 , 0x0000461b 
+ 00013516  0x000025dd rtn 
+ 00013517  0x000025e0 jam  0x00000001 , 0x0000461d 
+ 00013518  0x000025e1 arg  0x00000000 , 0x00000002 
+ 00013519  0x000025e2 call  0x0000322c 
+ 00013520  0x000025e3 store  0x00000001 , 0x0000461b 
+ 00013521  0x000025e4 rtn 
+ 00013522  0x000025e7 call  0x00003338 
+ 00013523  0x000025e8 fetch  0x00000004 , 0x00004634 
+ 00013524  0x000025e9 branch  0x000034ae , 0x00000034 
+ 00013525  0x000025ea call  0x00003236 
+ 00013526  0x000025eb fetch  0x00000001 , 0x00004620 
+ 00013527  0x000025ec call  0x000034e7 , 0x00000034 
+ 00013528  0x000025ed fetch  0x00000001 , 0x0000461e 
+ 00013529  0x000025ee store  0x00000001 , 0x0000458d 
+ 00013530  0x000025ef fetcht  0x00000001 , 0x0000463f 
+ 00013531  0x000025f0 fetchr  0x00000011 , 0x00000002 , 0x00004646 
+ 00013532  0x000025f1 call  0x000035ab 
+ 00013533  0x000025f2 storet  0x00000001 , 0x0000463f 
+ 00013534  0x000025f3 call  0x000035b4 
+ 00013535  0x000025f4 storet  0x00000001 , 0x0000463c 
+ 00013536  0x000025f5 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013537  0x000025f6 nrtn  0x00000002 
+ 00013538  0x000025f7 fetcht  0x00000001 , 0x0000461f 
+ 00013539  0x000025f8 call  0x00003227 
+ 00013540  0x000025f9 storet  0x00000001 , 0x0000461f 
+ 00013541  0x000025fa store  0x00000001 , 0x0000461e 
+ 00013542  0x000025fb rtn 
+ 00013543  0x000025fe jam  0x00000001 , 0x00004620 
+ 00013544  0x000025ff arg  0x00000000 , 0x00000002 
+ 00013545  0x00002600 call  0x0000322c 
+ 00013546  0x00002601 store  0x00000001 , 0x0000461e 
+ 00013547  0x00002602 rtn 
+ 00013548  0x00002605 call  0x00003330 
+ 00013549  0x00002606 fetch  0x00000004 , 0x000044f1 
+ 00013550  0x00002607 call  0x00003236 
+ 00013551  0x00002608 fetch  0x00000001 , 0x0000461a 
+ 00013552  0x00002609 call  0x00003500 , 0x00000034 
+ 00013553  0x0000260a fetch  0x00000001 , 0x00004618 
+ 00013554  0x0000260b store  0x00000001 , 0x0000458d 
+ 00013555  0x0000260c fetcht  0x00000001 , 0x0000463d 
+ 00013556  0x0000260d fetchr  0x00000011 , 0x00000002 , 0x00004642 
+ 00013557  0x0000260e call  0x000035ab 
+ 00013558  0x0000260f storet  0x00000001 , 0x0000463d 
+ 00013559  0x00002610 call  0x000035b4 
+ 00013560  0x00002611 storet  0x00000001 , 0x0000463a 
+ 00013561  0x00002612 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013562  0x00002613 nrtn  0x00000002 
+ 00013563  0x00002614 fetcht  0x00000001 , 0x00004619 
+ 00013564  0x00002615 call  0x00003227 
+ 00013565  0x00002616 storet  0x00000001 , 0x00004619 
+ 00013566  0x00002617 store  0x00000001 , 0x00004618 
+ 00013567  0x00002618 rtn 
+ 00013568  0x0000261b jam  0x00000001 , 0x0000461a 
+ 00013569  0x0000261c fetch  0x00000001 , 0x00004618 
+ 00013570  0x0000261d store  0x00000001 , 0x0000458d 
+ 00013571  0x0000261e rtn 
+ 00013572  0x00002622 jam  0x00000000 , 0x00004611 
+ 00013573  0x00002623 rtn 
+ 00013574  0x00002627 fetch  0x00000004 , 0x0000458f 
+ 00013575  0x00002628 fetcht  0x00000004 , 0x000044f1 
+ 00013576  0x00002629 isub  0x00000002 , 0x0000003e 
+ 00013577  0x0000262a rtn 
+ 00013578  0x00002637 fetch  0x00000001 , 0x00004611 
+ 00013579  0x00002638 rtneq  0x00000002 
+ 00013580  0x00002639 fetch  0x00000001 , 0x00004614 
+ 00013581  0x0000263a rtn  0x00000034 
+ 00013582  0x0000263b arg  0x00000008 , 0x00000007 
+ 00013583  0x0000263c call  0x00007cef 
+ 00013584  0x0000263d nrtn  0x00000034 
+ 00013585  0x0000263e jam  0x00000000 , 0x00004614 
+ 00013586  0x0000263f jam  0x00000000 , 0x00004622 
+ 00013587  0x00002640 call  0x0000341f 
+ 00013588  0x00002643 bpatchx  0x0000008d , 0x00004031 
+ 00013589  0x00002644 jam  0x00000007 , 0x00004616 
+ 00013590  0x00002645 jam  0x00000000 , 0x00004615 
+ 00013591  0x00002646 branch  0x000033be 
+ 00013592  0x0000264d bpatchx  0x0000008e , 0x00004031 
+ 00013593  0x0000264e fetch  0x00000001 , 0x0000460a 
+ 00013594  0x0000264f beq  0x00000001 , 0x000035ea 
+ 00013595  0x00002650 fetch  0x00000001 , 0x00004612 
+ 00013596  0x00002651 beq  0x00000001 , 0x0000352c 
+ 00013597  0x00002652 fetcht  0x00000004 , 0x0000460b 
+ 00013598  0x00002653 copy  0x00000022 , 0x0000003f 
+ 00013599  0x00002654 isub  0x00000002 , 0x0000003e 
+ 00013600  0x00002655 ncall  0x00003255 , 0x00000002 
+ 00013601  0x00002656 copy  0x0000003f , 0x00000012 
+ 00013602  0x00002657 fetch  0x00000004 , 0x0000460b 
+ 00013603  0x00002658 fetcht  0x00000001 , 0x0000460f 
+ 00013604  0x00002659 iadd  0x00000002 , 0x00000002 
+ 00013605  0x0000265a copy  0x00000012 , 0x0000003f 
+ 00013606  0x0000265b isub  0x00000002 , 0x0000003e 
+ 00013607  0x0000265c nrtn  0x00000002 
+ 00013608  0x0000265d set0  0x0000001c , 0x0000003f 
+ 00013609  0x0000265e store  0x00000004 , 0x0000460b 
+ 00013610  0x0000265f jam  0x00000001 , 0x0000460a 
+ 00013611  0x00002660 branch  0x00003222 
+ 00013612  0x00002663 jam  0x00000000 , 0x00004612 
+ 00013613  0x00002664 branch  0x00003222 
+ 00013614  0x00002667 copy  0x00000022 , 0x0000003f 
+ 00013615  0x00002668 store  0x00000004 , 0x0000460b 
+ 00013616  0x00002669 rtn 
+ 00013617  0x0000266f arg  0x000045de , 0x00000013 
+ 00013618  0x00002670 arg  0x0000367a , 0x00000012 
+ 00013619  0x00002671 branch  0x000042e7 
+ 00013620  0x00002675 bpatchx  0x0000008f , 0x00004031 
+ 00013621  0x00002676 set1  0x00000026 , 0x00000000 
+ 00013622  0x00002677 fetch  0x00000001 , 0x000045fc 
+ 00013623  0x00002678 set0  0x00000001 , 0x0000003f 
+ 00013624  0x00002679 set1  0x00000002 , 0x0000003f 
+ 00013625  0x0000267a store  0x00000001 , 0x000045fc 
+ 00013626  0x0000267b fetch  0x00000001 , 0x000045e3 
+ 00013627  0x0000267c branch  0x00003549 , 0x00000034 
+ 00013628  0x0000267d fetch  0x00000001 , 0x000045e2 
+ 00013629  0x0000267e beq  0x00000001 , 0x00003541 
+ 00013630  0x0000267f beq  0x00000002 , 0x00003541 
+ 00013631  0x00002680 beq  0x00000003 , 0x00003550 
+ 00013632  0x00002681 beq  0x00000004 , 0x00003550 
+ 00013633  0x00002683 fetch  0x00000001 , 0x000045d1 
+ 00013634  0x00002684 store  0x00000001 , 0x00004141 
+ 00013635  0x00002685 fetcht  0x00000001 , 0x000045ec 
+ 00013636  0x00002686 storet  0x00000001 , 0x0000458e 
+ 00013637  0x00002687 fetch  0x00000004 , 0x000045e4 
+ 00013638  0x00002688 call  0x0000355a 
+ 00013639  0x00002689 storet  0x00000001 , 0x000045ec 
+ 00013640  0x0000268a rtn 
+ 00013641  0x0000268d jam  0x00000003 , 0x00004141 
+ 00013642  0x0000268e fetcht  0x00000001 , 0x000045ed 
+ 00013643  0x0000268f storet  0x00000001 , 0x0000458e 
+ 00013644  0x00002690 fetch  0x00000004 , 0x000045e8 
+ 00013645  0x00002691 call  0x0000355a 
+ 00013646  0x00002692 storet  0x00000001 , 0x000045ed 
+ 00013647  0x00002693 rtn 
+ 00013648  0x00002696 jam  0x00000003 , 0x00004141 
+ 00013649  0x00002697 fetcht  0x00000001 , 0x000045ee 
+ 00013650  0x00002698 storet  0x00000001 , 0x0000458e 
+ 00013651  0x00002699 fetch  0x00000004 , 0x00004604 
+ 00013652  0x0000269a call  0x0000355a 
+ 00013653  0x0000269b storet  0x00000001 , 0x000045ee 
+ 00013654  0x0000269c rtn 
+ 00013655  0x0000269f fetch  0x00000004 , 0x0000455f 
+ 00013656  0x000026a0 rtn  0x00000034 
+ 00013657  0x000026a1 store  0x00000004 , 0x000045e8 
+ 00013658  0x000026a3 call  0x00003236 
+ 00013659  0x000026a4 branch  0x00003222 
+ 00013660  0x000026a8 bpatchx  0x00000090 , 0x00004032 
+ 00013661  0x000026a9 fetch  0x00000002 , 0x000045e0 
+ 00013662  0x000026aa arg  0x000001f8 , 0x00000002 
+ 00013663  0x000026ab iand  0x00000002 , 0x0000003f 
+ 00013664  0x000026ac branch  0x00003565 , 0x00000034 
+ 00013665  0x000026ad fetch  0x00000002 , 0x000045e0 
+ 00013666  0x000026ae increase  0x00000001 , 0x0000003f 
+ 00013667  0x000026af store  0x00000002 , 0x000045e0 
+ 00013668  0x000026b0 rtn 
+ 00013669  0x000026b3 call  0x0000357f 
+ 00013670  0x000026b4 call  0x00003651 
+ 00013671  0x000026b5 nbranch  0x00003586 , 0x00000018 
+ 00013672  0x000026b6 nbranch  0x00003586 , 0x0000002f 
+ 00013673  0x000026b7 call  0x0000366e 
+ 00013674  0x000026b8 fetch  0x00000004 , 0x000045cc 
+ 00013675  0x000026b9 fetcht  0x00000004 , 0x0000458f 
+ 00013676  0x000026ba isub  0x00000002 , 0x0000003e 
+ 00013677  0x000026bb branch  0x00003291 , 0x00000005 
+ 00013678  0x000026bc fetch  0x00000004 , 0x00004604 
+ 00013679  0x000026bd fetcht  0x00000004 , 0x0000458f 
+ 00013680  0x000026be isub  0x00000002 , 0x0000003e 
+ 00013681  0x000026bf call  0x00003557 , 0x00000005 
+ 00013682  0x000026c0 fetch  0x00000001 , 0x000045fc 
+ 00013683  0x000026c1 set0  0x00000002 , 0x0000003f 
+ 00013684  0x000026c2 store  0x00000001 , 0x000045fc 
+ 00013685  0x000026c3 setarg  0x00000000 
+ 00013686  0x000026c4 store  0x00000002 , 0x000045d8 
+ 00013687  0x000026c5 store  0x00000002 , 0x000045e0 
+ 00013688  0x000026c6 store  0x00000002 , 0x000045de 
+ 00013689  0x000026c7 jam  0x0000003c , 0x0000066f 
+ 00013690  0x000026c8 call  0x0000782b 
+ 00013691  0x000026ca bpatchx  0x00000091 , 0x00004032 
+ 00013692  0x000026cb arg  0x00000020 , 0x00000039 
+ 00013693  0x000026cc arg  0x00004519 , 0x00000005 
+ 00013694  0x000026cd branch  0x00007ca3 
+ 00013695  0x000026d0 jam  0x000000ff , 0x00004519 
+ 00013696  0x000026d1 fetch  0x00000001 , 0x00004589 
+ 00013697  0x000026d2 store  0x00000001 , 0x0000451a 
+ 00013698  0x000026d3 fetch  0x00000004 , 0x00004604 
+ 00013699  0x000026d4 store  0x00000004 , 0x0000451b 
+ 00013700  0x000026d5 jam  0x00000006 , 0x00004588 
+ 00013701  0x000026d6 branch  0x000031e5 
+ 00013702  0x000026d9 bpatchx  0x00000092 , 0x00004032 
+ 00013703  0x000026da fetch  0x00000001 , 0x000045e3 
+ 00013704  0x000026db branch  0x00003222 , 0x00000034 
+ 00013705  0x000026dc fetch  0x00000002 , 0x000045e0 
+ 00013706  0x000026dd increase  0x00000001 , 0x0000003f 
+ 00013707  0x000026de store  0x00000002 , 0x000045e0 
+ 00013708  0x000026df isolate1  0x00000009 , 0x0000003f 
+ 00013709  0x000026e0 fetch  0x00000001 , 0x000045e2 
+ 00013710  0x000026e1 beq  0x00000001 , 0x00003593 
+ 00013711  0x000026e2 beq  0x00000002 , 0x00003595 
+ 00013712  0x000026e3 beq  0x00000003 , 0x00003597 
+ 00013713  0x000026e4 beq  0x00000004 , 0x00003599 
+ 00013714  0x000026e5 branch  0x00003549 
+ 00013715  0x000026e9 branch  0x00003549 , 0x00000001 
+ 00013716  0x000026ea branch  0x00003541 
+ 00013717  0x000026ed branch  0x00003550 , 0x00000001 
+ 00013718  0x000026ee branch  0x00003541 
+ 00013719  0x000026f1 branch  0x00003550 , 0x00000001 
+ 00013720  0x000026f2 branch  0x00003549 
+ 00013721  0x000026f5 branch  0x00003550 , 0x00000001 
+ 00013722  0x000026f6 branch  0x0000329c 
+ 00013723  0x00002701 fetch  0x00000001 , 0x000045eb 
+ 00013724  0x00002702 beq  0x00000001 , 0x0000359f 
+ 00013725  0x00002703 beq  0x00000002 , 0x000035a5 
+ 00013726  0x00002704 rtn 
+ 00013727  0x00002706 fetch  0x00000001 , 0x000045de 
+ 00013728  0x00002707 nrtn  0x00000034 
+ 00013729  0x00002708 fetch  0x00000004 , 0x000045ec 
+ 00013730  0x00002709 store  0x00000004 , 0x0000462c 
+ 00013731  0x0000270b store  0x00000004 , 0x00004630 
+ 00013732  0x0000270c rtn 
+ 00013733  0x0000270e fetch  0x00000001 , 0x000045df 
+ 00013734  0x0000270f nrtn  0x00000034 
+ 00013735  0x00002710 fetch  0x00000004 , 0x000045ec 
+ 00013736  0x00002711 store  0x00000004 , 0x0000462c 
+ 00013737  0x00002713 store  0x00000004 , 0x00004634 
+ 00013738  0x00002714 rtn 
+ 00013739  0x0000271f bpatchx  0x00000093 , 0x00004032 
+ 00013740  0x00002720 copy  0x00000011 , 0x0000003f 
+ 00013741  0x00002721 iadd  0x00000002 , 0x00000005 
+ 00013742  0x00002722 fetch  0x00000001 , 0x00000009 
+ 00013743  0x00002723 istore  0x00000001 , 0x00000005 
+ 00013744  0x00002724 increase  0x00000001 , 0x00000002 
+ 00013745  0x00002725 fetch  0x00000001 , 0x000045d2 
+ 00013746  0x00002726 iand  0x00000002 , 0x00000002 
+ 00013747  0x00002727 rtn 
+ 00013748  0x0000272a bpatchx  0x00000094 , 0x00004032 
+ 00013749  0x0000272b fetch  0x00000001 , 0x000045d2 
+ 00013750  0x0000272c increase  0x00000001 , 0x0000003f 
+ 00013751  0x0000272d store  0x00000002 , 0x0000069b 
+ 00013752  0x0000272e copy  0x0000003f , 0x00000039 
+ 00013753  0x0000272f copy  0x00000011 , 0x00000006 
+ 00013754  0x00002730 arg  0x00000000 , 0x0000003f 
+ 00013755  0x00002732 ifetcht  0x00000001 , 0x00000006 
+ 00013756  0x00002733 iadd  0x00000002 , 0x0000003f 
+ 00013757  0x00002734 loop  0x000035bb 
+ 00013758  0x00002735 fetcht  0x00000002 , 0x0000069b 
+ 00013759  0x00002736 idiv  0x00000002 
+ 00013760  0x00002737 call  0x00007d62 
+ 00013761  0x00002738 quotient  0x00000002 
+ 00013762  0x00002739 rtnmark1  0x00000027 
+ 00013763  0x0000273a copy  0x00000002 , 0x0000003f 
+ 00013764  0x0000273b rtnmark0  0x00000026 
+ 00013765  0x0000273c call  0x00002308 
+ 00013766  0x0000273d copy  0x0000003f , 0x00000002 
+ 00013767  0x0000273e rtn 
+ 00013768  0x00002741 branch  0x000022e9 
+ 00013769  0x0000274c fetch  0x00000002 , 0x000045f0 
+ 00013770  0x0000274d branch  0x000035dd 
+ 00013771  0x00002750 copy  0x0000003f , 0x00000011 
+ 00013772  0x00002751 fetcht  0x00000001 , 0x000045ef 
+ 00013773  0x00002752 fetch  0x00000002 , 0x000045f0 
+ 00013774  0x00002753 iadd  0x00000002 , 0x00000005 
+ 00013775  0x00002754 copy  0x00000011 , 0x0000003f 
+ 00013776  0x00002755 istore  0x00000001 , 0x00000005 
+ 00013777  0x00002756 increase  0x00000001 , 0x00000002 
+ 00013778  0x00002757 fetch  0x00000001 , 0x000045d2 
+ 00013779  0x00002758 iand  0x00000002 , 0x00000002 
+ 00013780  0x00002759 storet  0x00000001 , 0x000045ef 
+ 00013781  0x0000275a rtn 
+ 00013782  0x00002765 fetch  0x00000002 , 0x00004640 
+ 00013783  0x00002766 call  0x000035dd 
+ 00013784  0x00002767 fetch  0x00000002 , 0x00004642 
+ 00013785  0x00002768 call  0x000035dd 
+ 00013786  0x00002769 fetch  0x00000002 , 0x00004644 
+ 00013787  0x0000276a call  0x000035dd 
+ 00013788  0x0000276b fetch  0x00000002 , 0x00004646 
+ 00013789  0x0000276d rtn  0x00000034 
+ 00013790  0x0000276e copy  0x0000003f , 0x00000005 
+ 00013791  0x0000276f fetch  0x00000001 , 0x000045d2 
+ 00013792  0x00002770 increase  0x00000001 , 0x0000003f 
+ 00013793  0x00002771 copy  0x0000003f , 0x00000039 
+ 00013794  0x00002772 branch  0x00007ca1 
+ 00013795  0x00002776 call  0x000035c8 
+ 00013796  0x00002777 rtn  0x00000034 
+ 00013797  0x00002778 fetcht  0x00000001 , 0x00004639 
+ 00013798  0x00002779 fetchr  0x00000011 , 0x00000002 , 0x00004640 
+ 00013799  0x0000277a call  0x000035ab 
+ 00013800  0x0000277b storet  0x00000001 , 0x00004639 
+ 00013801  0x0000277c rtn 
+ 00013802  0x00002780 fetchr  0x00000011 , 0x00000002 , 0x00004640 
+ 00013803  0x00002781 call  0x000035b4 
+ 00013804  0x00002782 storet  0x00000001 , 0x00004638 
+ 00013805  0x00002783 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013806  0x00002784 nrtn  0x00000002 
+ 00013807  0x00002785 branch  0x00003222 
+ 00013808  0x0000278e fetch  0x00000004 , 0x000044f1 
+ 00013809  0x0000278f store  0x00000004 , 0x00004604 
+ 00013810  0x00002790 branch  0x000035c9 
+ 00013811  0x00002793 setarg  0x00002fb2 
+ 00013812  0x00002794 store  0x00000003 , 0x00004608 
+ 00013813  0x00002795 setarg  0x00100c0c 
+ 00013814  0x00002796 store  0x00000003 , 0x000045a7 
+ 00013815  0x00002797 setarg  0x0000bb80 
+ 00013816  0x00002798 store  0x00000003 , 0x0000460b 
+ 00013817  0x00002799 jam  0x00000005 , 0x00004621 
+ 00013818  0x0000279a rtn 
+ 00013819  0x0000279d setarg  0x0000f80c 
+ 00013820  0x0000279e store  0x00000003 , 0x00004608 
+ 00013821  0x0000279f setarg  0x001c1919 
+ 00013822  0x000027a0 store  0x00000003 , 0x000045a7 
+ 00013823  0x000027a1 setarg  0x00017700 
+ 00013824  0x000027a2 store  0x00000003 , 0x0000460b 
+ 00013825  0x000027a3 jam  0x0000000b , 0x00004621 
+ 00013826  0x000027a4 rtn 
+ 00013827  0x000027a8 rtnmark0  0x00000026 
+ 00013828  0x000027a9 fetch  0x00000001 , 0x000045fc 
+ 00013829  0x000027aa bbit1  0x00000001 , 0x000032a3 
+ 00013830  0x000027ab bbit1  0x00000002 , 0x0000355c 
+ 00013831  0x000027ac fetch  0x00000001 , 0x00004618 
+ 00013832  0x000027ad beq  0x00000001 , 0x000036c0 
+ 00013833  0x000027af bpatchx  0x00000095 , 0x00004032 
+ 00013834  0x000027b0 call  0x00003625 
+ 00013835  0x000027b1 nbranch  0x0000369f , 0x00000028 
+ 00013836  0x000027b3 call  0x0000363a 
+ 00013837  0x000027b4 call  0x000036e8 
+ 00013838  0x000027b5 fetch  0x00000001 , 0x000043cb 
+ 00013839  0x000027b6 beq  0x00000008 , 0x0000600a 
+ 00013840  0x000027b8 fetch  0x00000008 , 0x0000460b 
+ 00013841  0x000027b9 store  0x00000008 , 0x000045af 
+ 00013842  0x000027ba fetch  0x00000002 , 0x0000461d 
+ 00013843  0x000027bb store  0x00000002 , 0x0000461f 
+ 00013844  0x000027bc fetch  0x00000002 , 0x000045f8 
+ 00013845  0x000027bd branch  0x00007d79 
+ 00013846  0x000027c0 bpatchx  0x00000096 , 0x00004032 
+ 00013847  0x000027c1 call  0x000036b4 
+ 00013848  0x000027c2 nrtn  0x00000028 
+ 00013849  0x000027c3 call  0x000036be 
+ 00013850  0x000027c4 call  0x00007de2 
+ 00013851  0x000027c5 fetch  0x00000003 , 0x00004608 
+ 00013852  0x000027c6 branch  0x00003622 
+ 00013853  0x000027c9 bpatchx  0x00000097 , 0x00004032 
+ 00013854  0x000027ca call  0x000036b4 
+ 00013855  0x000027cb nrtn  0x00000028 
+ 00013856  0x000027cc call  0x000036be 
+ 00013857  0x000027cd fetch  0x00000008 , 0x000045af 
+ 00013858  0x000027cf call  0x00007d25 
+ 00013859  0x000027d0 storet  0x00000004 , 0x000040a9 
+ 00013860  0x000027d1 branch  0x0000241e 
+ 00013861  0x000027d6 call  0x00003628 
+ 00013862  0x000027d7 nrtn  0x00000028 
+ 00013863  0x000027d8 branch  0x000031e5 
+ 00013864  0x000027dc fetch  0x00000002 , 0x000045f2 
+ 00013865  0x000027dd call  0x00007d79 
+ 00013866  0x000027de branch  0x0000362e , 0x00000028 
+ 00013867  0x000027df fetch  0x00000007 , 0x0000451a 
+ 00013868  0x000027e0 rtn  0x00000034 
+ 00013869  0x000027e1 branch  0x00007dba 
+ 00013870  0x000027e4 jam  0x00000000 , 0x00004602 
+ 00013871  0x000027e5 add  0x00000011 , 0x00000001 , 0x0000003f 
+ 00013872  0x000027e6 store  0x00000001 , 0x00004588 
+ 00013873  0x000027e7 call  0x00003636 
+ 00013874  0x000027e8 store  0x00000001 , 0x00004519 
+ 00013875  0x000027e9 copy  0x00000012 , 0x00000006 
+ 00013876  0x000027ea copy  0x00000011 , 0x00000039 
+ 00013877  0x000027eb branch  0x00007cda 
+ 00013878  0x000027ee fetch  0x00000001 , 0x00004589 
+ 00013879  0x000027ef and_into  0x00000007 , 0x0000003f 
+ 00013880  0x000027f0 store  0x00000001 , 0x00004589 
+ 00013881  0x000027f1 rtn 
+ 00013882  0x000027fb setarg  0x00000000 
+ 00013883  0x000027fc store  0x00000001 , 0x00004601 
+ 00013884  0x000027fd store  0x00000002 , 0x00004622 
+ 00013885  0x000027ff call  0x00003651 
+ 00013886  0x00002800 fetch  0x00000001 , 0x0000457f 
+ 00013887  0x00002801 beq  0x00000001 , 0x00003646 
+ 00013888  0x00002802 nbranch  0x0000365f , 0x00000018 
+ 00013889  0x00002803 nbranch  0x0000365f , 0x0000002f 
+ 00013890  0x00002804 call  0x0000366e 
+ 00013891  0x00002805 fetch  0x00000001 , 0x000043cb 
+ 00013892  0x00002806 sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00013893  0x00002807 call  0x00006262 , 0x00000005 
+ 00013894  0x00002809 call  0x0000371a 
+ 00013895  0x0000280b call  0x0000357b 
+ 00013896  0x0000280c fetch  0x00000001 , 0x0000457e 
+ 00013897  0x0000280d increase  0x00000001 , 0x0000003f 
+ 00013898  0x0000280e store  0x00000001 , 0x0000457e 
+ 00013899  0x0000280f call  0x00003692 
+ 00013900  0x00002811 bpatchx  0x00000098 , 0x00004033 
+ 00013901  0x00002812 setarg  0x00000000 
+ 00013902  0x00002813 store  0x00000001 , 0x000045fd 
+ 00013903  0x00002814 store  0x00000002 , 0x000045fe 
+ 00013904  0x00002815 rtn 
+ 00013905  0x00002818 bpatchx  0x00000099 , 0x00004033 
+ 00013906  0x00002819 disable  0x0000002f 
+ 00013907  0x0000281a call  0x00003195 
+ 00013908  0x0000281b fetch  0x00000001 , 0x0000457f 
+ 00013909  0x0000281c beq  0x00000001 , 0x00003183 
+ 00013910  0x0000281d force  0x00000000 , 0x00000015 
+ 00013911  0x0000281e fetch  0x00000004 , 0x0000458f 
+ 00013912  0x0000281f iforce  0x00000009 
+ 00013913  0x00002820 fetcht  0x00000001 , 0x00000008 
+ 00013914  0x00002821 call  0x0000216f 
+ 00013915  0x00002822 call  0x000021a6 
+ 00013916  0x00002823 call  0x00003121 
+ 00013917  0x00002824 call  0x00003183 , 0x0000002f 
+ 00013918  0x00002825 rtn 
+ 00013919  0x00002828 bpatchx  0x0000009a , 0x00004033 
+ 00013920  0x00002829 fetch  0x00000001 , 0x000043cb 
+ 00013921  0x0000282a beq  0x00000008 , 0x000060f9 
+ 00013922  0x0000282c fetch  0x00000001 , 0x00004602 
+ 00013923  0x0000282d nrtn  0x00000034 
+ 00013924  0x0000282e fetch  0x00000002 , 0x000045fe 
+ 00013925  0x0000282f increase  0x00000001 , 0x0000003f 
+ 00013926  0x00002830 store  0x00000002 , 0x000045fe 
+ 00013927  0x00002831 fetch  0x00000001 , 0x000045ff 
+ 00013928  0x00002832 bbit1  0x00000004 , 0x00003676 
+ 00013929  0x00002833 call  0x0000367c 
+ 00013930  0x00002834 fetch  0x00000002 , 0x00004622 
+ 00013931  0x00002835 increase  0x00000001 , 0x0000003f 
+ 00013932  0x00002836 store  0x00000002 , 0x00004622 
+ 00013933  0x00002837 branch  0x0000363d 
+ 00013934  0x0000283a bpatchx  0x0000009b , 0x00004033 
+ 00013935  0x0000283b call  0x00003214 
+ 00013936  0x0000283c fetch  0x00000001 , 0x0000457d 
+ 00013937  0x0000283d rtn  0x00000034 
+ 00013938  0x0000283e iforce  0x00000039 
+ 00013939  0x0000283f arg  0x000044f9 , 0x00000006 
+ 00013940  0x00002840 arg  0x0000455d , 0x00000005 
+ 00013941  0x00002841 branch  0x00007cda 
+ 00013942  0x00002845 bpatchx  0x0000009c , 0x00004033 
+ 00013943  0x00002846 setarg  0x00000000 
+ 00013944  0x00002847 store  0x00000002 , 0x000045fe 
+ 00013945  0x00002848 jam  0x00000001 , 0x00004600 
+ 00013946  0x0000284a jam  0x0000003a , 0x0000066f 
+ 00013947  0x0000284b branch  0x0000782b 
+ 00013948  0x00002856 bpatchx  0x0000009d , 0x00004033 
+ 00013949  0x00002857 fetcht  0x00000001 , 0x00004601 
+ 00013950  0x00002858 fetch  0x00000001 , 0x00004621 
+ 00013951  0x00002859 isub  0x00000002 , 0x0000003e 
+ 00013952  0x0000285a nbranch  0x0000369a , 0x00000002 
+ 00013953  0x0000285b increase  0x00000001 , 0x00000002 
+ 00013954  0x0000285c storet  0x00000001 , 0x00004601 
+ 00013955  0x0000285d fetch  0x00000001 , 0x00004621 
+ 00013956  0x0000285e beq  0x00000005 , 0x00003689 
+ 00013957  0x0000285f fetch  0x00000001 , 0x00004601 
+ 00013958  0x00002860 beq  0x00000006 , 0x00003694 
+ 00013959  0x00002861 beq  0x0000000c , 0x00003694 
+ 00013960  0x00002862 rtn 
+ 00013961  0x00002866 fetch  0x00000001 , 0x00004601 
+ 00013962  0x00002867 beq  0x00000003 , 0x00003694 
+ 00013963  0x00002868 beq  0x00000006 , 0x00003694 
+ 00013964  0x00002869 rtn 
+ 00013965  0x00002873 bmark1  0x0000002f , 0x00003690 
+ 00013966  0x00002874 store  0x00000001 , 0x0000453a 
+ 00013967  0x00002875 rtn 
+ 00013968  0x00002877 store  0x00000001 , 0x0000453b 
+ 00013969  0x00002878 rtn 
+ 00013970  0x0000287b fetch  0x00000001 , 0x00004589 
+ 00013971  0x0000287c rtnbit0  0x00000004 
+ 00013972  0x0000287e fetch  0x00000001 , 0x00004589 
+ 00013973  0x0000287f set0  0x00000004 , 0x0000003f 
+ 00013974  0x00002880 store  0x00000001 , 0x00004589 
+ 00013975  0x00002881 call  0x0000368d 
+ 00013976  0x00002882 call  0x0000371e 
+ 00013977  0x00002883 branch  0x00003222 
+ 00013978  0x00002886 call  0x0000370e 
+ 00013979  0x00002887 call  0x0000371e 
+ 00013980  0x00002888 branch  0x00003222 
+ 00013981  0x0000289b fetch  0x00000002 , 0x000045f4 
+ 00013982  0x0000289c branch  0x00007d79 
+ 00013983  0x0000289f fetch  0x00000001 , 0x00004602 
+ 00013984  0x000028a0 call  0x000036a6 , 0x00000034 
+ 00013985  0x000028a1 fetch  0x00000001 , 0x00004618 
+ 00013986  0x000028a2 rtneq  0x00000001 
+ 00013987  0x000028a3 call  0x0000369d 
+ 00013988  0x000028a4 fetch  0x00000002 , 0x000045fa 
+ 00013989  0x000028a5 branch  0x00007d79 
+ 00013990  0x000028a8 jam  0x00000001 , 0x00004589 
+ 00013991  0x000028a9 jam  0x00000001 , 0x00004602 
+ 00013992  0x000028aa call  0x00003636 
+ 00013993  0x000028ab store  0x00000001 , 0x00004519 
+ 00013994  0x000028ac setarg  0x00000000 
+ 00013995  0x000028ad store  0x00000007 , 0x0000451a 
+ 00013996  0x000028ae fetch  0x00000004 , 0x00004604 
+ 00013997  0x000028af store  0x00000004 , 0x00004521 
+ 00013998  0x000028b0 jam  0x0000000c , 0x00004588 
+ 00013999  0x000028b1 fetch  0x00000001 , 0x00004589 
+ 00014000  0x000028b2 set1  0x00000003 , 0x0000003f 
+ 00014001  0x000028b3 store  0x00000001 , 0x00004589 
+ 00014002  0x000028b4 call  0x000031e5 
+ 00014003  0x000028b5 branch  0x0000360c 
+ 00014004  0x000028ba bpatchx  0x0000009e , 0x00004033 
+ 00014005  0x000028bb enable  0x00000028 
+ 00014006  0x000028bc call  0x00002408 
+ 00014007  0x000028bd fetch  0x00000003 , 0x000040bd 
+ 00014008  0x000028be branch  0x00007dbc , 0x00000034 
+ 00014009  0x000028bf fetch  0x00000001 , 0x00004094 
+ 00014010  0x000028c0 branch  0x00007dbc , 0x00000034 
+ 00014011  0x000028c1 fetch  0x00000001 , 0x00004618 
+ 00014012  0x000028c2 beq  0x00000001 , 0x00007dbc 
+ 00014013  0x000028c3 rtn 
+ 00014014  0x000028c6 fetch  0x00000002 , 0x000045f6 
+ 00014015  0x000028c7 branch  0x00007d79 
+ 00014016  0x000028d5 call  0x00003245 
+ 00014017  0x000028d6 nrtn  0x00000028 
+ 00014018  0x000028d7 call  0x000036d5 
+ 00014019  0x000028d8 fetch  0x00000002 , 0x00004619 
+ 00014020  0x000028d9 increase  0x00000001 , 0x0000003f 
+ 00014021  0x000028da store  0x00000002 , 0x00004619 
+ 00014022  0x000028db fetcht  0x00000002 , 0x0000461b 
+ 00014023  0x000028dc isub  0x00000002 , 0x0000003e 
+ 00014024  0x000028dd call  0x000036ca , 0x00000005 
+ 00014025  0x000028de branch  0x00003609 
+ 00014026  0x000028e2 jam  0x00000000 , 0x00004618 
+ 00014027  0x000028e3 setarg  0x00000000 
+ 00014028  0x000028e4 store  0x00000002 , 0x00004619 
+ 00014029  0x000028e5 setarg  0x00000064 
+ 00014030  0x000028e6 store  0x00000002 , 0x0000461b 
+ 00014031  0x000028e8 jam  0x00000000 , 0x00004617 
+ 00014032  0x000028e9 fetch  0x00000001 , 0x000045a8 
+ 00014033  0x000028eb store  0x00000001 , 0x000045a7 
+ 00014034  0x000028ec rtn 
+ 00014035  0x000028ee fetch  0x00000001 , 0x000045a9 
+ 00014036  0x000028ef branch  0x000036d1 
+ 00014037  0x000028f2 fetch  0x00000001 , 0x00004617 
+ 00014038  0x000028f3 increase  0x00000001 , 0x0000003f 
+ 00014039  0x000028f4 store  0x00000001 , 0x00004617 
+ 00014040  0x000028f5 beq  0x00000004 , 0x000036d3 
+ 00014041  0x000028f6 beq  0x00000005 , 0x000036cf 
+ 00014042  0x000028f7 rtn 
+ 00014043  0x000028fa jam  0x00000001 , 0x00004618 
+ 00014044  0x000028fb setarg  0x00000000 
+ 00014045  0x000028fc store  0x00000002 , 0x00004619 
+ 00014046  0x000028fd rtn 
+ 00014047  0x00002908 arg  0x00000002 , 0x00000039 
+ 00014048  0x00002909 arg  0x0000458f , 0x00000006 
+ 00014049  0x0000290b call  0x00007dba 
+ 00014050  0x0000290c setarg  0x0000ffff 
+ 00014051  0x0000290e ifetcht  0x00000002 , 0x00000006 
+ 00014052  0x0000290f isub  0x00000002 , 0x0000003e 
+ 00014053  0x00002910 ncall  0x00007dbc , 0x00000005 
+ 00014054  0x00002911 loop  0x000036e3 
+ 00014055  0x00002912 rtn 
+ 00014056  0x0000291d bpatchx  0x0000009f , 0x00004033 
+ 00014057  0x0000291e fetch  0x00000001 , 0x00004437 
+ 00014058  0x0000291f nrtn  0x00000034 
+ 00014059  0x00002920 fetch  0x00000002 , 0x000044e9 
+ 00014060  0x00002921 rtnbit1  0x0000000b 
+ 00014061  0x00002924 fetchr  0x00000011 , 0x00000002 , 0x000045f0 
+ 00014062  0x00002925 call  0x000035b4 
+ 00014063  0x00002926 storet  0x00000001 , 0x00004624 
+ 00014064  0x00002927 fetch  0x00000001 , 0x00004629 
+ 00014065  0x00002928 bmark1  0x00000026 , 0x000036f3 
+ 00014066  0x00002929 fetch  0x00000001 , 0x0000462c 
+ 00014067  0x0000292b isub  0x00000002 , 0x0000003e 
+ 00014068  0x0000292c nbranch  0x0000370d , 0x00000002 
+ 00014069  0x0000292d fetch  0x00000001 , 0x00004626 
+ 00014070  0x0000292e sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00014071  0x0000292f nbranch  0x000036fb , 0x00000002 
+ 00014072  0x00002930 fetch  0x00000001 , 0x00004626 
+ 00014073  0x00002931 beq  0x00000000 , 0x0000370e 
+ 00014074  0x00002932 rtn 
+ 00014075  0x00002935 fetch  0x00000001 , 0x00004626 
+ 00014076  0x00002936 fetcht  0x00000001 , 0x00004627 
+ 00014077  0x00002937 isub  0x00000002 , 0x0000003e 
+ 00014078  0x00002938 nrtn  0x00000005 
+ 00014079  0x00002939 jam  0x00000000 , 0x00004626 
+ 00014080  0x0000293b fetcht  0x00000001 , 0x00004624 
+ 00014081  0x0000293c fetch  0x00000001 , 0x00004628 
+ 00014082  0x0000293d bmark1  0x00000026 , 0x00003704 
+ 00014083  0x0000293e fetch  0x00000001 , 0x0000462b 
+ 00014084  0x00002940 isub  0x00000002 , 0x0000003e 
+ 00014085  0x00002941 nrtn  0x00000002 
+ 00014086  0x00002942 fetch  0x00000001 , 0x00004625 
+ 00014087  0x00002943 beq  0x00000000 , 0x00003715 
+ 00014088  0x00002944 increase  0xffffffff , 0x0000003f 
+ 00014089  0x00002945 store  0x00000001 , 0x00004625 
+ 00014090  0x00002946 beq  0x00000000 , 0x00003715 
+ 00014091  0x00002949 jam  0x00000000 , 0x00004141 
+ 00014092  0x0000294a rtn 
+ 00014093  0x0000294d jam  0x00000000 , 0x00004626 
+ 00014094  0x0000294f fetch  0x00000001 , 0x00004625 
+ 00014095  0x00002950 beq  0x00000002 , 0x00003713 
+ 00014096  0x00002951 increase  0x00000001 , 0x0000003f 
+ 00014097  0x00002952 store  0x00000001 , 0x00004625 
+ 00014098  0x00002953 beq  0x00000001 , 0x0000370b 
+ 00014099  0x00002955 jam  0x00000006 , 0x00004141 
+ 00014100  0x00002956 rtn 
+ 00014101  0x00002959 jam  0x00000085 , 0x00004141 
+ 00014102  0x0000295a rtn 
+ 00014103  0x0000295d jam  0x00000001 , 0x00004625 
+ 00014104  0x0000295e jam  0x00000000 , 0x00004626 
+ 00014105  0x0000295f rtn 
+ 00014106  0x00002962 fetch  0x00000001 , 0x00004626 
+ 00014107  0x00002963 increase  0x00000001 , 0x0000003f 
+ 00014108  0x00002964 store  0x00000001 , 0x00004626 
+ 00014109  0x00002965 rtn 
+ 00014110  0x00002968 fetch  0x00000001 , 0x00004626 
+ 00014111  0x00002969 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00014112  0x0000296a ncall  0x00003726 , 0x00000002 
+ 00014113  0x0000296b fetch  0x00000001 , 0x00004626 
+ 00014114  0x0000296c rtneq  0x00000000 
+ 00014115  0x0000296d increase  0xffffffff , 0x0000003f 
+ 00014116  0x0000296e store  0x00000001 , 0x00004626 
+ 00014117  0x0000296f rtn 
+ 00014118  0x00002972 jam  0x00000003 , 0x00004626 
+ 00014119  0x00002973 rtn 
+ 00014120  0x0000297e fetch  0x00000001 , 0x000008f3 
+ 00014121  0x0000297f store  0x00000001 , 0x00000709 
+ 00014122  0x00002980 copy  0x00000030 , 0x00000006 
+ 00014123  0x00002981 call  0x00007c8e 
+ 00014124  0x00002982 fetch  0x00000002 , 0x00004826 
+ 00014125  0x00002983 branch  0x00007d79 
+ 00014126  0x00002986 jam  0x0000001e , 0x000049b8 
+ 00014127  0x00002987 call  0x0000378c 
+ 00014128  0x0000298a fetch  0x00000001 , 0x0000070a 
+ 00014129  0x0000298b beq  0x00000000 , 0x00003739 
+ 00014130  0x0000298c beq  0x00000080 , 0x00003d67 
+ 00014131  0x0000298d beq  0x00000082 , 0x00003ed4 
+ 00014132  0x0000298e beq  0x000000d1 , 0x00003799 
+ 00014133  0x0000298f beq  0x000000d0 , 0x000037ba 
+ 00014134  0x00002990 beq  0x000000d2 , 0x00003799 
+ 00014135  0x00002991 beq  0x000000d5 , 0x000037bb 
+ 00014136  0x00002992 rtn 
+ 00014137  0x00002996 arg  0x0000070e , 0x00000006 
+ 00014138  0x00002997 arg  0x00004959 , 0x00000005 
+ 00014139  0x00002998 call  0x00007c8f 
+ 00014140  0x00002999 jam  0x00000000 , 0x000047e4 
+ 00014141  0x0000299a call  0x00003bbf 
+ 00014142  0x0000299b call  0x00003bb1 
+ 00014143  0x0000299c call  0x0000375e 
+ 00014144  0x0000299d call  0x0000374f 
+ 00014145  0x0000299e call  0x00003754 
+ 00014146  0x0000299f jam  0x00000000 , 0x000047e4 
+ 00014147  0x000029a0 fetch  0x00000002 , 0x00004828 
+ 00014148  0x000029a1 branch  0x00007d79 
+ 00014149  0x000029a4 setarg  0x00000000 
+ 00014150  0x000029a5 store  0x00000002 , 0x00004806 
+ 00014151  0x000029a7 random  0x0000003f 
+ 00014152  0x000029a8 and  0x0000003f , 0x0000001f , 0x0000003f 
+ 00014153  0x000029a9 add  0x0000003f , 0x0000001e , 0x0000003f 
+ 00014154  0x000029aa store  0x00000001 , 0x00004804 
+ 00014155  0x000029ab add  0x0000003f , 0x00000005 , 0x0000003f 
+ 00014156  0x000029ac store  0x00000001 , 0x00004803 
+ 00014157  0x000029ad call  0x00003e53 
+ 00014158  0x000029ae branch  0x00003a71 
+ 00014159  0x000029b1 fetch  0x00000001 , 0x00000951 
+ 00014160  0x000029b2 jam  0x00000004 , 0x000047e4 
+ 00014161  0x000029b3 rtneq  0x00000001 
+ 00014162  0x000029b4 jam  0x00000000 , 0x000047e4 
+ 00014163  0x000029b5 rtn 
+ 00014164  0x000029b8 setarg  0x00000080 
+ 00014165  0x000029b9 store  0x00000001 , 0x00000723 
+ 00014166  0x000029ba setarg  0x00000003 
+ 00014167  0x000029bb istore  0x00000001 , 0x00000005 
+ 00014168  0x000029bc setarg  0x00000000 
+ 00014169  0x000029bd istore  0x00000001 , 0x00000005 
+ 00014170  0x000029be fetch  0x00000003 , 0x0000070b 
+ 00014171  0x000029bf istore  0x00000003 , 0x00000005 
+ 00014172  0x000029c0 jam  0x00000006 , 0x00000722 
+ 00014173  0x000029c1 branch  0x000041b5 
+ 00014174  0x000029c5 fetch  0x00000002 , 0x0000484c 
+ 00014175  0x000029c6 rtnbit1  0x00000002 
+ 00014176  0x000029c7 call  0x00003e3e 
+ 00014177  0x000029c9 add  0x00000011 , 0x00000006 , 0x00000013 
+ 00014178  0x000029ca setarg  0xffffffff 
+ 00014179  0x000029cb istore  0x00000008 , 0x00000013 
+ 00014180  0x000029cc istore  0x00000008 , 0x00000005 
+ 00014181  0x000029cd ifetch  0x00000002 , 0x00000011 
+ 00014182  0x000029ce istore  0x00000002 , 0x00000013 
+ 00014183  0x000029cf copy  0x00000012 , 0x0000003f 
+ 00014184  0x000029d0 iadd  0x00000011 , 0x00000011 
+ 00014185  0x000029d1 loop  0x00003761 
+ 00014186  0x000029d2 fetch  0x00000002 , 0x00004848 
+ 00014187  0x000029d3 branch  0x00007d79 
+ 00014188  0x000029d7 setarg  0x00000082 
+ 00014189  0x000029d8 store  0x00000001 , 0x00000723 
+ 00014190  0x000029d9 setarg  0x00000004 
+ 00014191  0x000029da istore  0x00000001 , 0x00000005 
+ 00014192  0x000029db fetch  0x00000001 , 0x0000070c 
+ 00014193  0x000029dc istore  0x00000001 , 0x00000005 
+ 00014194  0x000029dd jam  0x00000003 , 0x00000722 
+ 00014195  0x000029de branch  0x000041b5 
+ 00014196  0x000029e2 setarg  0x00000082 
+ 00014197  0x000029e3 store  0x00000001 , 0x00000723 
+ 00014198  0x000029e4 setarg  0x0000004e 
+ 00014199  0x000029e5 istore  0x00000001 , 0x00000005 
+ 00014200  0x000029e6 fetch  0x00000002 , 0x0000070c 
+ 00014201  0x000029e7 istore  0x00000002 , 0x00000005 
+ 00014202  0x000029e8 jam  0x00000004 , 0x00000722 
+ 00014203  0x000029e9 branch  0x000041b5 
+ 00014204  0x000029ed setarg  0x00000082 
+ 00014205  0x000029ee store  0x00000001 , 0x00000723 
+ 00014206  0x000029ef setarg  0x00000060 
+ 00014207  0x000029f0 istore  0x00000001 , 0x00000005 
+ 00014208  0x000029f1 fetch  0x00000004 , 0x0000070c 
+ 00014209  0x000029f2 istore  0x00000004 , 0x00000005 
+ 00014210  0x000029f3 jam  0x00000006 , 0x00000722 
+ 00014211  0x000029f4 branch  0x000041b5 
+ 00014212  0x000029f9 setarg  0x0000005e 
+ 00014213  0x000029fa store  0x00000001 , 0x00000723 
+ 00014214  0x000029fb setarg  0x00000000 
+ 00014215  0x000029fc istore  0x00000001 , 0x00000005 
+ 00014216  0x000029fd fetch  0x00000002 , 0x0000070c 
+ 00014217  0x000029fe istore  0x00000002 , 0x00000005 
+ 00014218  0x000029ff jam  0x00000004 , 0x00000722 
+ 00014219  0x00002a00 branch  0x000041b5 
+ 00014220  0x00002a06 fetch  0x00000001 , 0x00004804 
+ 00014221  0x00002a07 rtn  0x00000034 
+ 00014222  0x00002a08 pincrease  0x0000001e 
+ 00014223  0x00002a09 store  0x00000001 , 0x00004804 
+ 00014224  0x00002a0a rtn 
+ 00014225  0x00002a0d arg  0x00004803 , 0x00000013 
+ 00014226  0x00002a0e arg  0x000037e4 , 0x00000012 
+ 00014227  0x00002a0f branch  0x000042e0 
+ 00014228  0x00002a12 arg  0x00004804 , 0x00000013 
+ 00014229  0x00002a13 arg  0x00003797 , 0x00000012 
+ 00014230  0x00002a14 branch  0x000042e0 
+ 00014231  0x00002a17 fetch  0x00000002 , 0x00004855 
+ 00014232  0x00002a18 branch  0x00007d79 
+ 00014233  0x00002a20 call  0x000037c4 
+ 00014234  0x00002a21 nrtn  0x00000028 
+ 00014235  0x00002a22 bpatchx  0x000000a0 , 0x00004034 
+ 00014236  0x00002a23 fetch  0x00000002 , 0x0000070e 
+ 00014237  0x00002a24 arg  0x0000f01f , 0x00000002 
+ 00014238  0x00002a25 isub  0x00000002 , 0x0000003e 
+ 00014239  0x00002a26 branch  0x000037d8 , 0x00000005 
+ 00014240  0x00002a28 arg  0x0000f014 , 0x00000002 
+ 00014241  0x00002a29 isub  0x00000002 , 0x0000003e 
+ 00014242  0x00002a2a branch  0x0000391c , 0x00000005 
+ 00014243  0x00002a2c arg  0x0000f013 , 0x00000002 
+ 00014244  0x00002a2d isub  0x00000002 , 0x0000003e 
+ 00014245  0x00002a2e branch  0x00003907 , 0x00000005 
+ 00014246  0x00002a30 arg  0x0000f017 , 0x00000002 
+ 00014247  0x00002a31 isub  0x00000002 , 0x0000003e 
+ 00014248  0x00002a32 branch  0x00003819 , 0x00000005 
+ 00014249  0x00002a33 arg  0x0000f018 , 0x00000002 
+ 00014250  0x00002a34 isub  0x00000002 , 0x0000003e 
+ 00014251  0x00002a35 branch  0x00003845 , 0x00000005 
+ 00014252  0x00002a36 arg  0x0000f016 , 0x00000002 
+ 00014253  0x00002a37 isub  0x00000002 , 0x0000003e 
+ 00014254  0x00002a38 branch  0x0000386a , 0x00000005 
+ 00014255  0x00002a3b arg  0x00000534 , 0x00000002 
+ 00014256  0x00002a3c isub  0x00000002 , 0x0000003e 
+ 00014257  0x00002a3d branch  0x000037cf , 0x00000005 
+ 00014258  0x00002a3e arg  0x00000533 , 0x00000002 
+ 00014259  0x00002a3f isub  0x00000002 , 0x0000003e 
+ 00014260  0x00002a40 branch  0x000037d2 , 0x00000005 
+ 00014261  0x00002a41 arg  0x00000123 , 0x00000002 
+ 00014262  0x00002a42 isub  0x00000002 , 0x0000003e 
+ 00014263  0x00002a43 branch  0x000037d5 , 0x00000005 
+ 00014264  0x00002a44 fetch  0x00000002 , 0x0000482c 
+ 00014265  0x00002a45 branch  0x00007d79 
+ 00014266  0x00002a48 rtn 
+ 00014267  0x00002a4a ifetch  0x00000002 , 0x00000006 
+ 00014268  0x00002a4b arg  0x000001a8 , 0x00000002 
+ 00014269  0x00002a4c isub  0x00000002 , 0x0000003e 
+ 00014270  0x00002a4d nrtn  0x00000005 
+ 00014271  0x00002a4e ifetch  0x00000001 , 0x00000006 
+ 00014272  0x00002a4f fetcht  0x00000001 , 0x000049b6 
+ 00014273  0x00002a50 isub  0x00000002 , 0x0000003e 
+ 00014274  0x00002a51 nrtn  0x00000005 
+ 00014275  0x00002a52 branch  0x00003b2a 
+ 00014276  0x00002a55 call  0x00007dbc 
+ 00014277  0x00002a56 fetch  0x00000002 , 0x0000070b 
+ 00014278  0x00002a57 arg  0x000001a8 , 0x00000002 
+ 00014279  0x00002a58 isub  0x00000002 , 0x0000003e 
+ 00014280  0x00002a59 nrtn  0x00000005 
+ 00014281  0x00002a5a fetcht  0x00000001 , 0x000044f1 
+ 00014282  0x00002a5b fetch  0x00000001 , 0x0000070d 
+ 00014283  0x00002a5c isub  0x00000002 , 0x0000003e 
+ 00014284  0x00002a5d rtn  0x00000005 
+ 00014285  0x00002a5e store  0x00000001 , 0x000044f1 
+ 00014286  0x00002a5f branch  0x00007dba 
+ 00014287  0x00002a62 call  0x000037f4 
+ 00014288  0x00002a63 fetch  0x00000002 , 0x0000483c 
+ 00014289  0x00002a64 branch  0x00007d79 
+ 00014290  0x00002a68 call  0x000037f4 
+ 00014291  0x00002a69 fetch  0x00000002 , 0x0000483e 
+ 00014292  0x00002a6a branch  0x00007d79 
+ 00014293  0x00002a6d call  0x000037ee 
+ 00014294  0x00002a6e fetch  0x00000002 , 0x00004840 
+ 00014295  0x00002a6f branch  0x00007d79 
+ 00014296  0x00002a73 call  0x000037f0 
+ 00014297  0x00002a75 fetch  0x00000004 , 0x00000710 
+ 00014298  0x00002a76 store  0x00000004 , 0x000044f3 
+ 00014299  0x00002a77 branch  0x00003889 
+ 00014300  0x00002a7c setarg  0x000000d3 
+ 00014301  0x00002a7d store  0x00000001 , 0x00000723 
+ 00014302  0x00002a7e setarg  0x000001a8 
+ 00014303  0x00002a7f istore  0x00000002 , 0x00000005 
+ 00014304  0x00002a80 fetch  0x00000001 , 0x000044f1 
+ 00014305  0x00002a81 istore  0x00000001 , 0x00000005 
+ 00014306  0x00002a82 istoret  0x00000002 , 0x00000005 
+ 00014307  0x00002a83 rtn 
+ 00014308  0x00002a87 arg  0x00000000 , 0x00000007 
+ 00014309  0x00002a88 arg  0x00000003 , 0x00000002 
+ 00014310  0x00002a89 arg  0x0000f009 , 0x00000011 
+ 00014311  0x00002a8a branch  0x000037fc 
+ 00014312  0x00002a96 arg  0x00000100 , 0x00000011 
+ 00014313  0x00002a97 branch  0x000037fc 
+ 00014314  0x00002a9c arg  0x00000008 , 0x00000039 
+ 00014315  0x00002a9d branch  0x000037f6 
+ 00014316  0x00002aa0 arg  0x00000008 , 0x00000039 
+ 00014317  0x00002aa1 branch  0x000037f6 
+ 00014318  0x00002aa4 arg  0x00000006 , 0x00000039 
+ 00014319  0x00002aa5 branch  0x000037f6 
+ 00014320  0x00002aa8 arg  0x00000004 , 0x00000039 
+ 00014321  0x00002aa9 branch  0x000037f6 
+ 00014322  0x00002aac arg  0x00000002 , 0x00000039 
+ 00014323  0x00002aad branch  0x000037f6 
+ 00014324  0x00002ab0 arg  0x00000001 , 0x00000039 
+ 00014325  0x00002ab1 branch  0x000037f6 
+ 00014326  0x00002ab5 add  0x00000039 , 0x00000006 , 0x0000003f 
+ 00014327  0x00002ab6 store  0x00000001 , 0x00000722 
+ 00014328  0x00002ab7 call  0x000037dc 
+ 00014329  0x00002ab8 arg  0x00000710 , 0x00000006 
+ 00014330  0x00002ab9 call  0x00007cda 
+ 00014331  0x00002aba branch  0x000041b5 
+ 00014332  0x00002ac2 call  0x00003808 
+ 00014333  0x00002ac3 istorer  0x00000011 , 0x00000002 , 0x00000005 
+ 00014334  0x00002ac4 istoret  0x00000001 , 0x00000005 
+ 00014335  0x00002ac5 jam  0x00000007 , 0x00000722 
+ 00014336  0x00002ac6 branch  0x00003806 
+ 00014337  0x00002acd call  0x00003808 
+ 00014338  0x00002ace istorer  0x00000011 , 0x00000002 , 0x00000005 
+ 00014339  0x00002acf istoret  0x00000002 , 0x00000005 
+ 00014340  0x00002ad0 jam  0x00000008 , 0x00000722 
+ 00014341  0x00002ad1 branch  0x00003806 
+ 00014342  0x00002ad6 call  0x00003f6e 
+ 00014343  0x00002ad7 branch  0x000041b5 
+ 00014344  0x00002adb fetch  0x00000001 , 0x000047ae 
+ 00014345  0x00002adc store  0x00000001 , 0x0000092b 
+ 00014346  0x00002add setarg  0x000000f0 
+ 00014347  0x00002ade store  0x00000002 , 0x0000094c 
+ 00014348  0x00002adf fetch  0x00000001 , 0x000044f2 
+ 00014349  0x00002ae0 pincrease  0x00000001 
+ 00014350  0x00002ae1 store  0x00000001 , 0x000044f2 
+ 00014351  0x00002ae2 beq  0x000000c0 , 0x00003817 
+ 00014352  0x00002ae3 setarg  0x000000d4 
+ 00014353  0x00002ae4 store  0x00000001 , 0x00000723 
+ 00014354  0x00002ae5 setarg  0x000001a8 
+ 00014355  0x00002ae6 istore  0x00000002 , 0x00000005 
+ 00014356  0x00002ae7 fetch  0x00000001 , 0x000044f2 
+ 00014357  0x00002ae8 istore  0x00000001 , 0x00000005 
+ 00014358  0x00002ae9 rtn 
+ 00014359  0x00002aec jam  0x00000080 , 0x000044f2 
+ 00014360  0x00002aed rtn 
+ 00014361  0x00002af1 copy  0x00000006 , 0x00000011 
+ 00014362  0x00002af2 fetch  0x00000001 , 0x00000709 
+ 00014363  0x00002af3 arg  0x00000006 , 0x00000002 
+ 00014364  0x00002af4 isub  0x00000002 , 0x0000003f 
+ 00014365  0x00002af5 store  0x00000001 , 0x00004608 
+ 00014366  0x00002af6 copy  0x0000003f , 0x00000039 
+ 00014367  0x00002af7 copy  0x00000011 , 0x00000006 
+ 00014368  0x00002af8 arg  0x00004609 , 0x00000005 
+ 00014369  0x00002af9 call  0x00007cda 
+ 00014370  0x00002afa arg  0x00000000 , 0x00000012 
+ 00014371  0x00002afc arg  0x00004609 , 0x0000003f 
+ 00014372  0x00002afd iadd  0x00000012 , 0x00000002 
+ 00014373  0x00002afe ifetch  0x00000001 , 0x00000002 
+ 00014374  0x00002aff beq  0x000000ff , 0x0000383f 
+ 00014375  0x00002b00 and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00014376  0x00002b01 call  0x00003837 
+ 00014377  0x00002b02 increase  0x00000001 , 0x00000012 
+ 00014378  0x00002b03 fetch  0x00000001 , 0x00004608 
+ 00014379  0x00002b04 isub  0x00000012 , 0x0000003e 
+ 00014380  0x00002b05 branch  0x00003823 , 0x00000002 
+ 00014381  0x00002b06 call  0x0000394a 
+ 00014382  0x00002b08 arg  0x0000f017 , 0x00000002 
+ 00014383  0x00002b09 call  0x000037dc 
+ 00014384  0x00002b0a arg  0x00000000 , 0x00000002 
+ 00014385  0x00002b0b istoret  0x00000001 , 0x00000005 
+ 00014386  0x00002b0c copy  0x00000005 , 0x00000002 
+ 00014387  0x00002b0d call  0x0000393b 
+ 00014388  0x00002b0e pincrease  0x00000007 
+ 00014389  0x00002b0f store  0x00000001 , 0x00000722 
+ 00014390  0x00002b10 branch  0x000041b5 
+ 00014391  0x00002b13 rtn  0x00000034 
+ 00014392  0x00002b14 pincrease  0xffffffff 
+ 00014393  0x00002b15 mul32  0x0000003f , 0x00000012 , 0x0000003f 
+ 00014394  0x00002b16 arg  0x00004503 , 0x00000011 
+ 00014395  0x00002b17 iadd  0x00000011 , 0x00000011 
+ 00014396  0x00002b18 setarg  0x00000000 
+ 00014397  0x00002b19 istore  0x00000001 , 0x00000011 
+ 00014398  0x00002b1a rtn 
+ 00014399  0x00002b1d arg  0x00000012 , 0x00000039 
+ 00014400  0x00002b1e mul32  0x00000039 , 0x0000000d , 0x00000039 
+ 00014401  0x00002b1f arg  0x00004503 , 0x00000005 
+ 00014402  0x00002b20 call  0x00007ca1 
+ 00014403  0x00002b21 call  0x0000394a 
+ 00014404  0x00002b22 branch  0x0000382e 
+ 00014405  0x00002b25 ifetch  0x00000001 , 0x00000006 
+ 00014406  0x00002b26 beq  0x000000ff , 0x0000385e 
+ 00014407  0x00002b27 store  0x00000001 , 0x000045ff 
+ 00014408  0x00002b28 ifetch  0x00000001 , 0x00000006 
+ 00014409  0x00002b29 pincrease  0xffffffff 
+ 00014410  0x00002b2a mul32  0x0000003f , 0x00000012 , 0x0000003f 
+ 00014411  0x00002b2b arg  0x00004503 , 0x00000006 
+ 00014412  0x00002b2c iadd  0x00000006 , 0x00000006 
+ 00014413  0x00002b2d arg  0x000045ed , 0x00000005 
+ 00014414  0x00002b2e arg  0x00000012 , 0x00000039 
+ 00014415  0x00002b2f call  0x00007cda 
+ 00014416  0x00002b30 arg  0x0000f018 , 0x00000002 
+ 00014417  0x00002b31 call  0x000037dc 
+ 00014418  0x00002b32 fetch  0x00000001 , 0x000045ed 
+ 00014419  0x00002b33 branch  0x00003867 , 0x00000034 
+ 00014420  0x00002b34 arg  0x00000000 , 0x00000002 
+ 00014421  0x00002b35 istoret  0x00000001 , 0x00000005 
+ 00014422  0x00002b37 fetch  0x00000001 , 0x000045ff 
+ 00014423  0x00002b38 istore  0x00000001 , 0x00000005 
+ 00014424  0x00002b39 fetch  0x00000001 , 0x000045ed 
+ 00014425  0x00002b3a istore  0x00000001 , 0x00000005 
+ 00014426  0x00002b3b fetch  0x00000008 , 0x000045ee 
+ 00014427  0x00002b3c istore  0x00000008 , 0x00000005 
+ 00014428  0x00002b3d jam  0x00000011 , 0x00000722 
+ 00014429  0x00002b3e branch  0x000041b5 
+ 00014430  0x00002b42 arg  0x0000f018 , 0x00000002 
+ 00014431  0x00002b43 call  0x000037dc 
+ 00014432  0x00002b44 arg  0x000000ff , 0x00000002 
+ 00014433  0x00002b45 istoret  0x00000002 , 0x00000005 
+ 00014434  0x00002b48 copy  0x00000005 , 0x00000002 
+ 00014435  0x00002b49 call  0x0000393b 
+ 00014436  0x00002b4a pincrease  0x00000008 
+ 00014437  0x00002b4b store  0x00000001 , 0x00000722 
+ 00014438  0x00002b4c branch  0x000041b5 
+ 00014439  0x00002b52 arg  0x00000080 , 0x00000002 
+ 00014440  0x00002b53 istore  0x00000001 , 0x00000005 
+ 00014441  0x00002b54 branch  0x00003856 
+ 00014442  0x00002b57 ifetch  0x00000001 , 0x00000006 
+ 00014443  0x00002b58 store  0x00000001 , 0x000045ff 
+ 00014444  0x00002b59 and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00014445  0x00002b5a pincrease  0xffffffff 
+ 00014446  0x00002b5b mul32  0x0000003f , 0x00000012 , 0x0000003f 
+ 00014447  0x00002b5c arg  0x00004503 , 0x00000005 
+ 00014448  0x00002b5d iadd  0x00000005 , 0x00000005 
+ 00014449  0x00002b5e fetch  0x00000001 , 0x000045ff 
+ 00014450  0x00002b5f istore  0x00000001 , 0x00000005 
+ 00014451  0x00002b60 call  0x0000394a 
+ 00014452  0x00002b61 arg  0x0000f016 , 0x00000002 
+ 00014453  0x00002b62 call  0x000037dc 
+ 00014454  0x00002b63 setarg  0x00000000 
+ 00014455  0x00002b64 istore  0x00000001 , 0x00000005 
+ 00014456  0x00002b65 copy  0x00000005 , 0x00000002 
+ 00014457  0x00002b66 call  0x0000393b 
+ 00014458  0x00002b67 pincrease  0x00000007 
+ 00014459  0x00002b68 store  0x00000001 , 0x00000722 
+ 00014460  0x00002b69 branch  0x000041b5 
+ 00014461  0x00002b6f copy  0x00000022 , 0x00000002 
+ 00014462  0x00002b70 fetch  0x00000004 , 0x000044f7 
+ 00014463  0x00002b71 isub  0x00000002 , 0x0000003e 
+ 00014464  0x00002b72 call  0x0000388f , 0x00000002 
+ 00014465  0x00002b73 call  0x00003896 
+ 00014466  0x00002b74 isub  0x00000002 , 0x0000003e 
+ 00014467  0x00002b75 rtn  0x00000002 
+ 00014468  0x00002b76 call  0x0000388a 
+ 00014469  0x00002b77 fetch  0x00000004 , 0x000044f3 
+ 00014470  0x00002b78 pincrease  0x00000001 
+ 00014471  0x00002b79 store  0x00000004 , 0x000044f3 
+ 00014472  0x00002b7a branch  0x0000389a 
+ 00014473  0x00002b7e copy  0x00000022 , 0x0000003f 
+ 00014474  0x00002b80 store  0x00000004 , 0x000044f7 
+ 00014475  0x00002b81 fetch  0x00000001 , 0x000044fa 
+ 00014476  0x00002b82 and_into  0x0000000f , 0x0000003f 
+ 00014477  0x00002b83 store  0x00000001 , 0x000044fa 
+ 00014478  0x00002b84 rtn 
+ 00014479  0x00002b87 rtn  0x00000005 
+ 00014480  0x00002b88 copy  0x0000003f , 0x00000012 
+ 00014481  0x00002b89 setarg  0x00100000 
+ 00014482  0x00002b8a lshift8  0x0000003f , 0x0000003f 
+ 00014483  0x00002b8b iadd  0x00000002 , 0x00000002 
+ 00014484  0x00002b8c copy  0x00000012 , 0x0000003f 
+ 00014485  0x00002b8d rtn 
+ 00014486  0x00002b90 arg  0x00000014 , 0x00000039 
+ 00014487  0x00002b92 pincrease  0x000000a0 
+ 00014488  0x00002b93 loop  0x00003897 
+ 00014489  0x00002b94 rtn 
+ 00014490  0x00002b97 setarg  0x0000000d 
+ 00014491  0x00002b98 store  0x00000001 , 0x00004602 
+ 00014492  0x00002b99 pincrease  0xffffffff 
+ 00014493  0x00002b9a mul32  0x0000003f , 0x00000012 , 0x0000003f 
+ 00014494  0x00002b9b arg  0x00004503 , 0x00000030 
+ 00014495  0x00002b9c iadd  0x00000030 , 0x00000030 
+ 00014496  0x00002b9e ifetch  0x00000001 , 0x00000030 
+ 00014497  0x00002b9f ncall  0x000038a8 , 0x00000034 
+ 00014498  0x00002ba0 increase  0xffffffee , 0x00000030 
+ 00014499  0x00002ba2 fetch  0x00000001 , 0x00004602 
+ 00014500  0x00002ba3 pincrease  0xffffffff 
+ 00014501  0x00002ba4 rtn  0x00000034 
+ 00014502  0x00002ba5 store  0x00000001 , 0x00004602 
+ 00014503  0x00002ba6 branch  0x000038a0 
+ 00014504  0x00002ba9 arg  0x00000007 , 0x00000007 
+ 00014505  0x00002baa qisolate0  0x0000003f 
+ 00014506  0x00002bab rtn  0x00000001 
+ 00014507  0x00002bac and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00014508  0x00002bad arg  0x0000000d , 0x00000002 
+ 00014509  0x00002bae isub  0x00000002 , 0x0000003e 
+ 00014510  0x00002baf rtn  0x00000002 
+ 00014511  0x00002bb0 copy  0x00000030 , 0x00000006 
+ 00014512  0x00002bb1 arg  0x000045ed , 0x00000005 
+ 00014513  0x00002bb2 arg  0x00000012 , 0x00000039 
+ 00014514  0x00002bb3 call  0x00007cda 
+ 00014515  0x00002bb4 fetch  0x00000001 , 0x000045fe 
+ 00014516  0x00002bb5 beq  0x00000059 , 0x000038bf 
+ 00014517  0x00002bb7 fetcht  0x00000004 , 0x000044f3 
+ 00014518  0x00002bb8 fetch  0x00000004 , 0x000045ee 
+ 00014519  0x00002bb9 isub  0x00000002 , 0x0000003e 
+ 00014520  0x00002bba fetch  0x00000001 , 0x000045f5 
+ 00014521  0x00002bbb branch  0x000038e3 , 0x00000005 
+ 00014522  0x00002bbc nbranch  0x000038bc , 0x00000002 
+ 00014523  0x00002bbd rtn 
+ 00014524  0x00002bc0 setarg  0x00000000 
+ 00014525  0x00002bc1 istore  0x00000001 , 0x00000030 
+ 00014526  0x00002bc2 rtn 
+ 00014527  0x00002bc6 fetch  0x00000004 , 0x000044f3 
+ 00014528  0x00002bc7 arg  0x0000003c , 0x00000002 
+ 00014529  0x00002bc8 idiv  0x00000002 
+ 00014530  0x00002bc9 call  0x00007d62 
+ 00014531  0x00002bca remainder  0x0000003f 
+ 00014532  0x00002bcb nrtn  0x00000034 
+ 00014533  0x00002bcd fetch  0x00000004 , 0x000044f3 
+ 00014534  0x00002bce arg  0x00054600 , 0x00000002 
+ 00014535  0x00002bcf isub  0x00000002 , 0x0000003f 
+ 00014536  0x00002bd1 arg  0x00093a80 , 0x00000002 
+ 00014537  0x00002bd2 idiv  0x00000002 
+ 00014538  0x00002bd3 call  0x00007d62 
+ 00014539  0x00002bd4 remainder  0x0000003f 
+ 00014540  0x00002bd5 arg  0x00015180 , 0x00000002 
+ 00014541  0x00002bd6 idiv  0x00000002 
+ 00014542  0x00002bd7 call  0x00007d62 
+ 00014543  0x00002bd8 remainder  0x00000011 
+ 00014544  0x00002bd9 quotient  0x00000007 
+ 00014545  0x00002bda fetch  0x00000001 , 0x000045f2 
+ 00014546  0x00002bdb branch  0x000038d5 , 0x00000034 
+ 00014547  0x00002bdc qisolate1  0x0000003f 
+ 00014548  0x00002bdd nrtn  0x00000001 
+ 00014549  0x00002be0 deposit  0x00000011 
+ 00014550  0x00002be1 arg  0x0000003c , 0x00000002 
+ 00014551  0x00002be2 idiv  0x00000002 
+ 00014552  0x00002be3 call  0x00007d62 
+ 00014553  0x00002be4 quotient  0x00000002 
+ 00014554  0x00002be5 setarg  0x000001e0 
+ 00014555  0x00002be6 iadd  0x00000002 , 0x00000002 
+ 00014556  0x00002be7 fetch  0x00000002 , 0x000045ee 
+ 00014557  0x00002be8 arg  0x00000fff , 0x00000011 
+ 00014558  0x00002be9 iand  0x00000011 , 0x0000003f 
+ 00014559  0x00002bea isub  0x00000002 , 0x0000003e 
+ 00014560  0x00002beb nrtn  0x00000005 
+ 00014561  0x00002bec fetch  0x00000001 , 0x000045f6 
+ 00014562  0x00002bed branch  0x000038e3 
+ 00014563  0x00002bf0 store  0x00000001 , 0x0000070c 
+ 00014564  0x00002bf1 jam  0x00000001 , 0x00004602 
+ 00014565  0x00002bf3 copy  0x00000030 , 0x0000003f 
+ 00014566  0x00002bf4 store  0x00000002 , 0x0000091f 
+ 00014567  0x00002bf6 fetcht  0x00000001 , 0x0000070c 
+ 00014568  0x00002bf7 fetchr  0x00000007 , 0x00000001 , 0x00004869 
+ 00014569  0x00002bf8 call  0x000037e8 
+ 00014570  0x00002bfa fetch  0x00000002 , 0x0000091f 
+ 00014571  0x00002bfb copy  0x0000003f , 0x00000030 
+ 00014572  0x00002bfc add  0x00000030 , 0x00000011 , 0x00000006 
+ 00014573  0x00002bfd ifetch  0x00000001 , 0x00000006 
+ 00014574  0x00002bfe beq  0x00000059 , 0x000038f4 
+ 00014575  0x00002c00 setarg  0x00000000 
+ 00014576  0x00002c01 istore  0x00000001 , 0x00000030 
+ 00014577  0x00002c02 fetchr  0x00000007 , 0x00000001 , 0x00004869 
+ 00014578  0x00002c03 call  0x000038ff 
+ 00014579  0x00002c04 branch  0x0000394a 
+ 00014580  0x00002c09 fetch  0x00000001 , 0x000045f2 
+ 00014581  0x00002c0a branch  0x000038ef , 0x00000034 
+ 00014582  0x00002c0b arg  0x0000f009 , 0x00000002 
+ 00014583  0x00002c0c call  0x000037dc 
+ 00014584  0x00002c0d setarg  0x00000011 
+ 00014585  0x00002c0e istore  0x00000001 , 0x00000005 
+ 00014586  0x00002c0f ifetch  0x00000001 , 0x00000030 
+ 00014587  0x00002c10 or  0x0000003f , 0x00000080 , 0x0000003f 
+ 00014588  0x00002c11 istore  0x00000001 , 0x00000005 
+ 00014589  0x00002c12 jam  0x00000008 , 0x00000723 
+ 00014590  0x00002c13 branch  0x00003806 
+ 00014591  0x00002c16 arg  0x0000f020 , 0x00000002 
+ 00014592  0x00002c17 call  0x000037dc 
+ 00014593  0x00002c18 copy  0x00000005 , 0x00000002 
+ 00014594  0x00002c19 call  0x0000393b 
+ 00014595  0x00002c1b pincrease  0x00000006 
+ 00014596  0x00002c1c store  0x00000001 , 0x00000722 
+ 00014597  0x00002c1d jam  0x000000d3 , 0x00000723 
+ 00014598  0x00002c1e branch  0x00003806 
+ 00014599  0x00002c22 arg  0x000045ed , 0x00000005 
+ 00014600  0x00002c23 arg  0x00000010 , 0x00000039 
+ 00014601  0x00002c24 call  0x00007cda 
+ 00014602  0x00002c25 fetch  0x00000001 , 0x000045ed 
+ 00014603  0x00002c26 and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00014604  0x00002c27 store  0x00000001 , 0x000045ff 
+ 00014605  0x00002c28 sub  0x0000003f , 0x0000000d , 0x0000003e 
+ 00014606  0x00002c29 nrtn  0x00000002 
+ 00014607  0x00002c2a fetch  0x00000004 , 0x000045ee 
+ 00014608  0x00002c2b arg  0x0000003c , 0x00000002 
+ 00014609  0x00002c2c idiv  0x00000002 
+ 00014610  0x00002c2d call  0x00007d62 
+ 00014611  0x00002c2e remainder  0x00000002 
+ 00014612  0x00002c2f isub  0x00000002 , 0x0000003f 
+ 00014613  0x00002c30 store  0x00000004 , 0x000045ee 
+ 00014614  0x00002c31 setarg  0x00000000 
+ 00014615  0x00002c32 store  0x00000002 , 0x000045fd 
+ 00014616  0x00002c33 arg  0x000045ed , 0x00000011 
+ 00014617  0x00002c34 call  0x00003930 
+ 00014618  0x00002c35 arg  0x0000f013 , 0x00000002 
+ 00014619  0x00002c36 branch  0x00003928 
+ 00014620  0x00002c3d arg  0x000045ed , 0x00000005 
+ 00014621  0x00002c3e arg  0x00000011 , 0x00000039 
+ 00014622  0x00002c3f call  0x00007cda 
+ 00014623  0x00002c42 fetch  0x00000001 , 0x000045ed 
+ 00014624  0x00002c43 and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00014625  0x00002c44 store  0x00000001 , 0x000045ff 
+ 00014626  0x00002c45 sub  0x0000003f , 0x0000000d , 0x0000003e 
+ 00014627  0x00002c46 nrtn  0x00000002 
+ 00014628  0x00002c48 jam  0x00000059 , 0x000045fe 
+ 00014629  0x00002c49 arg  0x000045ed , 0x00000011 
+ 00014630  0x00002c4a call  0x00003930 
+ 00014631  0x00002c4b arg  0x0000f014 , 0x00000002 
+ 00014632  0x00002c50 call  0x000037dc 
+ 00014633  0x00002c51 setarg  0x00000000 
+ 00014634  0x00002c52 store  0x00000001 , 0x00000729 
+ 00014635  0x00002c53 copy  0x00000005 , 0x00000002 
+ 00014636  0x00002c54 call  0x0000393b 
+ 00014637  0x00002c55 pincrease  0x00000007 
+ 00014638  0x00002c56 store  0x00000001 , 0x00000722 
+ 00014639  0x00002c57 branch  0x000041b5 
+ 00014640  0x00002c5b call  0x00003937 
+ 00014641  0x00002c5c copy  0x00000011 , 0x00000006 
+ 00014642  0x00002c5d arg  0x00004503 , 0x00000005 
+ 00014643  0x00002c5e iadd  0x00000005 , 0x00000005 
+ 00014644  0x00002c5f arg  0x00000012 , 0x00000039 
+ 00014645  0x00002c60 call  0x00007cda 
+ 00014646  0x00002c61 branch  0x0000394a 
+ 00014647  0x00002c64 fetch  0x00000001 , 0x000045ff 
+ 00014648  0x00002c65 pincrease  0xffffffff 
+ 00014649  0x00002c66 mul32  0x0000003f , 0x00000012 , 0x0000003f 
+ 00014650  0x00002c67 rtn 
+ 00014651  0x00002c6a arg  0x00004503 , 0x00000011 
+ 00014652  0x00002c6b arg  0x00000000 , 0x00000012 
+ 00014653  0x00002c6c copy  0x00000002 , 0x00000005 
+ 00014654  0x00002c6d arg  0x0000000d , 0x00000039 
+ 00014655  0x00002c6e increase  0xffffffff , 0x00000039 
+ 00014656  0x00002c70 ifetch  0x00000001 , 0x00000011 
+ 00014657  0x00002c71 beq  0x000000ff , 0x00003945 
+ 00014658  0x00002c72 branch  0x00003945 , 0x00000034 
+ 00014659  0x00002c73 increase  0x00000001 , 0x00000012 
+ 00014660  0x00002c74 istore  0x00000001 , 0x00000005 
+ 00014661  0x00002c76 setarg  0x00000012 
+ 00014662  0x00002c77 iadd  0x00000011 , 0x00000011 
+ 00014663  0x00002c78 loop  0x00003940 
+ 00014664  0x00002c79 copy  0x00000012 , 0x0000003f 
+ 00014665  0x00002c7a rtn 
+ 00014666  0x00002c7d fetch  0x00000002 , 0x0000484a 
+ 00014667  0x00002c7e branch  0x00007d79 
+ 00014668  0x00002c89 bpatchx  0x000000a1 , 0x00004034 
+ 00014669  0x00002c8a setarg  0x00004a5e 
+ 00014670  0x00002c8b store  0x00000002 , 0x00004aed 
+ 00014671  0x00002c8c setarg  0x00004aeb 
+ 00014672  0x00002c8d store  0x00000002 , 0x00000919 
+ 00014673  0x00002c8e jam  0x00000014 , 0x00000787 
+ 00014674  0x00002c8f fetch  0x00000001 , 0x00004808 
+ 00014675  0x00002c90 store  0x00000001 , 0x00000788 
+ 00014676  0x00002c92 fetch  0x00000001 , 0x00000916 
+ 00014677  0x00002c93 pincrease  0x0000000b 
+ 00014678  0x00002c94 add  0x0000003f , 0xfffffffe , 0x00000039 
+ 00014679  0x00002c9d store  0x00000001 , 0x00000789 
+ 00014680  0x00002c9e pincrease  0xffffffff 
+ 00014681  0x00002ca1 istore  0x00000001 , 0x00000005 
+ 00014682  0x00002ca2 setarg  0x0000002a 
+ 00014683  0x00002ca3 istore  0x00000001 , 0x00000005 
+ 00014684  0x00002ca4 arg  0x00004998 , 0x00000006 
+ 00014685  0x00002ca5 call  0x00007ccc 
+ 00014686  0x00002ca6 fetchr  0x00000011 , 0x00000002 , 0x00000919 
+ 00014687  0x00002ca7 call  0x00003967 
+ 00014688  0x00002ca8 call  0x000078b2 
+ 00014689  0x00002caa fetch  0x00000002 , 0x000044e9 
+ 00014690  0x00002cab isolate1  0x00000009 , 0x0000003f 
+ 00014691  0x00002cac nrtn  0x00000001 
+ 00014692  0x00002cae call  0x00003e5e 
+ 00014693  0x00002caf arg  0x00000787 , 0x00000011 
+ 00014694  0x00002cb0 branch  0x000078b2 
+ 00014695  0x00002cb3 add  0x00000011 , 0x00000002 , 0x00000006 
+ 00014696  0x00002cb4 ifetch  0x00000002 , 0x00000006 
+ 00014697  0x00002cb5 store  0x00000002 , 0x000043fb 
+ 00014698  0x00002cb6 arg  0x00000787 , 0x00000011 
+ 00014699  0x00002cb7 rtn 
+ 00014700  0x00002cbb setarg  0x00004a5e 
+ 00014701  0x00002cbc store  0x00000002 , 0x000043fb 
+ 00014702  0x00002cbd rtn 
+ 00014703  0x00002cc2 fetch  0x00000001 , 0x000049b5 
+ 00014704  0x00002cc3 rtnne  0x00000001 
+ 00014705  0x00002cc4 jam  0x00000002 , 0x000049b5 
+ 00014706  0x00002cc5 branch  0x00003ace 
+ 00014707  0x00002cc8 arg  0x0000078c , 0x00000011 
+ 00014708  0x00002cc9 arg  0x00000012 , 0x00000002 
+ 00014709  0x00002cca setarg  0x00000021 
+ 00014710  0x00002ccb nrtn  0x00000001 
+ 00014711  0x00002ccc arg  0x0000079e , 0x00000011 
+ 00014712  0x00002ccd fetcht  0x00000001 , 0x00000789 
+ 00014713  0x00002cce increase  0xffffffee , 0x00000002 
+ 00014714  0x00002ccf setarg  0x00000022 
+ 00014715  0x00002cd0 rtn 
+ 00014716  0x00002cd9 arg  0x0000462b , 0x00000005 
+ 00014717  0x00002cda setarg  0x00000002 
+ 00014718  0x00002cdb istore  0x00000001 , 0x00000005 
+ 00014719  0x00002cdc setarg  0x00000001 
+ 00014720  0x00002cdd istore  0x00000001 , 0x00000005 
+ 00014721  0x00002cde setarg  0x00000002 
+ 00014722  0x00002cdf istore  0x00000001 , 0x00000005 
+ 00014723  0x00002ce0 rtn 
+ 00014724  0x00002ce5 arg  0x00001827 , 0x00000002 
+ 00014725  0x00002ce6 setarg  0x00000003 
+ 00014726  0x00002ce7 istore  0x00000001 , 0x00000005 
+ 00014727  0x00002ce8 setarg  0x00000003 
+ 00014728  0x00002ce9 istore  0x00000001 , 0x00000005 
+ 00014729  0x00002cea istoret  0x00000002 , 0x00000005 
+ 00014730  0x00002ceb rtn 
+ 00014731  0x00002cef call  0x000025b8 
+ 00014732  0x00002cf0 call  0x00002af5 
+ 00014733  0x00002cf1 call  0x0000264e 
+ 00014734  0x00002cf2 nrtn  0x0000002d 
+ 00014735  0x00002cf4 fetch  0x00000001 , 0x00000002 
+ 00014736  0x00002cf5 pincrease  0x00000001 
+ 00014737  0x00002cf6 store  0x00000001 , 0x00000002 
+ 00014738  0x00002cf7 fetch  0x00000002 , 0x00004824 
+ 00014739  0x00002cf8 call  0x00007d79 
+ 00014740  0x00002cf9 branch  0x000025bc 
+ 00014741  0x00002cfc call  0x000039a1 
+ 00014742  0x00002cfd rtn  0x00000028 
+ 00014743  0x00002cff call  0x0000398b 
+ 00014744  0x00002d00 call  0x00002018 
+ 00014745  0x00002d01 fetcht  0x00000002 , 0x00004344 
+ 00014746  0x00002d02 arg  0x0000000a , 0x00000007 
+ 00014747  0x00002d03 call  0x000020dc 
+ 00014748  0x00002d04 rtn  0x00000028 
+ 00014749  0x00002d05 arg  0x0000000d , 0x00000007 
+ 00014750  0x00002d06 call  0x00007cef 
+ 00014751  0x00002d07 nbranch  0x00003997 , 0x00000034 
+ 00014752  0x00002d08 rtn 
+ 00014753  0x00002d0b fetcht  0x00000002 , 0x00004344 
+ 00014754  0x00002d0c arg  0x00000004 , 0x00000007 
+ 00014755  0x00002d0d call  0x000020dc 
+ 00014756  0x00002d0e rtn  0x00000028 
+ 00014757  0x00002d0f call  0x000039a9 
+ 00014758  0x00002d10 fetch  0x00000002 , 0x00004344 
+ 00014759  0x00002d11 arg  0x0000000d , 0x00000007 
+ 00014760  0x00002d12 branch  0x00007ce1 
+ 00014761  0x00002d16 fetch  0x00000001 , 0x0000464a 
+ 00014762  0x00002d17 pincrease  0x00000001 
+ 00014763  0x00002d18 store  0x00000001 , 0x0000464a 
+ 00014764  0x00002d19 store  0x00000001 , 0x00000007 
+ 00014765  0x00002d1a rtnne  0x00000028 
+ 00014766  0x00002d1b jam  0x00000025 , 0x0000464a 
+ 00014767  0x00002d1c jam  0x00000025 , 0x00000007 
+ 00014768  0x00002d1d rtn 
+ 00014769  0x00002d20 fetch  0x00000001 , 0x0000004c 
+ 00014770  0x00002d21 and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00014771  0x00002d22 beq  0x00000000 , 0x000039b6 
+ 00014772  0x00002d23 beq  0x00000002 , 0x000039b6 
+ 00014773  0x00002d24 rtn 
+ 00014774  0x00002d27 ifetcht  0x00000001 , 0x00000006 
+ 00014775  0x00002d28 sub  0x00000002 , 0x00000006 , 0x0000003e 
+ 00014776  0x00002d29 rtn  0x00000002 
+ 00014777  0x00002d2a sub  0x00000002 , 0x00000025 , 0x0000003e 
+ 00014778  0x00002d2b nrtn  0x00000002 
+ 00014779  0x00002d2c add  0x00000002 , 0xfffffffa , 0x00000011 
+ 00014780  0x00002d2d add  0x00000006 , 0x00000006 , 0x00000012 
+ 00014781  0x00002d30 ifetcht  0x00000001 , 0x00000012 
+ 00014782  0x00002d31 sub  0x00000002 , 0x00000001 , 0x0000003e 
+ 00014783  0x00002d32 rtn  0x00000002 
+ 00014784  0x00002d33 sub  0x00000002 , 0x0000001e , 0x0000003e 
+ 00014785  0x00002d34 nrtn  0x00000002 
+ 00014786  0x00002d35 copy  0x00000002 , 0x0000003f 
+ 00014787  0x00002d36 rtn  0x00000034 
+ 00014788  0x00002d37 bpatchx  0x000000a2 , 0x00004034 
+ 00014789  0x00002d38 ifetch  0x00000001 , 0x00000006 
+ 00014790  0x00002d39 beq  0x000000ff , 0x000039d1 
+ 00014791  0x00002d3a beq  0x0000002a , 0x00003f7c 
+ 00014792  0x00002d3d add  0x00000002 , 0x00000001 , 0x0000003f 
+ 00014793  0x00002d3e isub  0x00000011 , 0x0000003e 
+ 00014794  0x00002d3f rtn  0x00000002 
+ 00014795  0x00002d40 iadd  0x00000012 , 0x00000012 
+ 00014796  0x00002d41 sub  0x00000002 , 0xffffffff , 0x0000003f 
+ 00014797  0x00002d42 iadd  0x00000011 , 0x00000011 
+ 00014798  0x00002d43 copy  0x00000011 , 0x0000003f 
+ 00014799  0x00002d44 rtn  0x00000034 
+ 00014800  0x00002d45 branch  0x000039bd 
+ 00014801  0x00002d48 jam  0x00000000 , 0x000007aa 
+ 00014802  0x00002d49 branch  0x00003cfa 
+ 00014803  0x00002d4d fetch  0x00000001 , 0x00000000 
+ 00014804  0x00002d4e pincrease  0x00000001 
+ 00014805  0x00002d4f store  0x00000001 , 0x00000000 
+ 00014806  0x00002d51 bpatchx  0x000000a3 , 0x00004034 
+ 00014807  0x00002d52 call  0x000025b8 
+ 00014808  0x00002d53 arg  0x00000027 , 0x00000039 
+ 00014809  0x00002d54 arg  0x00004169 , 0x00000006 
+ 00014810  0x00002d55 arg  0x000007aa , 0x00000005 
+ 00014811  0x00002d56 call  0x00007ccc 
+ 00014812  0x00002d57 jam  0x00000025 , 0x00000007 
+ 00014813  0x00002d58 arg  0x00000708 , 0x0000001b 
+ 00014814  0x00002d59 enable  0x00000010 
+ 00014815  0x00002d5a disable  0x0000002d 
+ 00014816  0x00002d5d call  0x00002af5 
+ 00014817  0x00002d5e call  0x000039f0 
+ 00014818  0x00002d5f random  0x0000003f 
+ 00014819  0x00002d60 arg  0x000001ff , 0x00000002 
+ 00014820  0x00002d61 iand  0x00000002 , 0x0000003f 
+ 00014821  0x00002d62 add  0x0000003f , 0x00000064 , 0x0000003f 
+ 00014822  0x00002d63 call  0x00007c91 
+ 00014823  0x00002d64 fetch  0x00000001 , 0x00000007 
+ 00014824  0x00002d65 pincrease  0x00000001 
+ 00014825  0x00002d66 store  0x00000001 , 0x00000007 
+ 00014826  0x00002d67 bne  0x00000028 , 0x000039e0 
+ 00014827  0x00002d69 arg  0x00000027 , 0x00000039 
+ 00014828  0x00002d6a arg  0x00004169 , 0x00000005 
+ 00014829  0x00002d6b arg  0x000007aa , 0x00000006 
+ 00014830  0x00002d6c call  0x00007ccc 
+ 00014831  0x00002d6d branch  0x000025bc 
+ 00014832  0x00002d70 arg  0x00000002 , 0x00000002 
+ 00014833  0x00002d71 storet  0x00000001 , 0x00004169 
+ 00014834  0x00002d72 fetcht  0x00000001 , 0x0000462a 
+ 00014835  0x00002d73 add  0x00000002 , 0x00000006 , 0x0000003f 
+ 00014836  0x00002d74 store  0x00000001 , 0x0000416a 
+ 00014837  0x00002d75 fetch  0x00000006 , 0x000042db 
+ 00014838  0x00002d76 store  0x00000006 , 0x0000416b 
+ 00014839  0x00002d77 copy  0x00000002 , 0x00000039 
+ 00014840  0x00002d78 arg  0x0000462b , 0x00000006 
+ 00014841  0x00002d79 call  0x00007ccc 
+ 00014842  0x00002d7b branch  0x0000273e 
+ 00014843  0x00002d87 bpatchx  0x000000a4 , 0x00004034 
+ 00014844  0x00002d88 fetcht  0x00000002 , 0x000008f4 
+ 00014845  0x00002d89 fetch  0x00000001 , 0x000008f3 
+ 00014846  0x00002d8a copy  0x00000002 , 0x00000006 
+ 00014847  0x00002d8b arg  0x0000476e , 0x00000011 
+ 00014848  0x00002d8c arg  0x0000477e , 0x00000030 
+ 00014849  0x00002d8d call  0x00003c5a 
+ 00014850  0x00002d8e call  0x00007dbc 
+ 00014851  0x00002d8f copy  0x00000013 , 0x0000003f 
+ 00014852  0x00002d90 iadd  0x00000030 , 0x00000006 
+ 00014853  0x00002d91 fetcht  0x00000004 , 0x0000477e 
+ 00014854  0x00002d92 fetch  0x00000002 , 0x00000910 
+ 00014855  0x00002d93 copy  0x0000003f , 0x00000011 
+ 00014856  0x00002d95 arg  0x0000000a , 0x00000039 
+ 00014857  0x00002d97 ifetch  0x00000004 , 0x00000011 
+ 00014858  0x00002d98 branch  0x00003a16 , 0x00000034 
+ 00014859  0x00002d99 isub  0x00000002 , 0x0000003e 
+ 00014860  0x00002d9a rtn  0x00000005 
+ 00014861  0x00002d9b increase  0x00000004 , 0x00000011 
+ 00014862  0x00002d9c loop  0x00003a09 
+ 00014863  0x00002d9d fetch  0x00000002 , 0x00000910 
+ 00014864  0x00002d9e copy  0x0000003f , 0x00000005 
+ 00014865  0x00002d9f add  0x0000003f , 0x00000004 , 0x00000006 
+ 00014866  0x00002da2 arg  0x00000024 , 0x00000039 
+ 00014867  0x00002da3 call  0x00007ccc 
+ 00014868  0x00002da4 istoret  0x00000004 , 0x00000005 
+ 00014869  0x00002da5 branch  0x00007dba 
+ 00014870  0x00002da7 istoret  0x00000004 , 0x00000011 
+ 00014871  0x00002da8 branch  0x00007dba 
+ 00014872  0x00002dab fetch  0x00000001 , 0x00004857 
+ 00014873  0x00002dac beq  0x00000001 , 0x00003a43 
+ 00014874  0x00002dae call  0x00003a21 
+ 00014875  0x00002daf call  0x00003a25 
+ 00014876  0x00002db0 call  0x00003a2c 
+ 00014877  0x00002db1 call  0x00003a30 
+ 00014878  0x00002db2 call  0x00003a34 
+ 00014879  0x00002db3 call  0x00003a35 
+ 00014880  0x00002db4 branch  0x00003a39 
+ 00014881  0x00002db7 arg  0x0000001a , 0x00000002 
+ 00014882  0x00002db8 arg  0x0000480a , 0x00000011 
+ 00014883  0x00002db9 setarg  0x0001ffa0 
+ 00014884  0x00002dba branch  0x00006c4d 
+ 00014885  0x00002dbc arg  0x00000013 , 0x00000002 
+ 00014886  0x00002dbd arg  0x000047ef , 0x00000011 
+ 00014887  0x00002dbe setarg  0x0001e000 
+ 00014888  0x00002dbf call  0x00006c4d 
+ 00014889  0x00002dc0 fetch  0x00000001 , 0x000047ff 
+ 00014890  0x00002dc1 store  0x00000001 , 0x00004871 
+ 00014891  0x00002dc2 rtn 
+ 00014892  0x00002dc4 arg  0x00000010 , 0x00000002 
+ 00014893  0x00002dc5 arg  0x00004959 , 0x00000011 
+ 00014894  0x00002dc6 setarg  0x0001e100 
+ 00014895  0x00002dc7 branch  0x00006c4d 
+ 00014896  0x00002dc9 arg  0x00000010 , 0x00000002 
+ 00014897  0x00002dca arg  0x000046a0 , 0x00000011 
+ 00014898  0x00002dcb setarg  0x0001e200 
+ 00014899  0x00002dcc branch  0x00006c4d 
+ 00014900  0x00002dce rtn 
+ 00014901  0x00002dd0 arg  0x00000003 , 0x00000002 
+ 00014902  0x00002dd1 arg  0x00004992 , 0x00000011 
+ 00014903  0x00002dd2 setarg  0x0001f000 
+ 00014904  0x00002dd3 branch  0x00006c4d 
+ 00014905  0x00002dd5 fetch  0x00000002 , 0x0000484c 
+ 00014906  0x00002dd6 rtnbit1  0x00000002 
+ 00014907  0x00002dd7 arg  0x00000040 , 0x00000002 
+ 00014908  0x00002dd8 arg  0x000006a1 , 0x00000011 
+ 00014909  0x00002dd9 setarg  0x0001e400 
+ 00014910  0x00002dda call  0x00006c4d 
+ 00014911  0x00002ddb call  0x00003e3e 
+ 00014912  0x00002ddc arg  0x000006a1 , 0x00000006 
+ 00014913  0x00002ddd add  0x00000011 , 0x00000006 , 0x00000011 
+ 00014914  0x00002dde branch  0x00003a6b 
+ 00014915  0x00002de2 call  0x00003a4a 
+ 00014916  0x00002de3 call  0x00003a4e 
+ 00014917  0x00002de4 call  0x00003a55 
+ 00014918  0x00002de5 call  0x00003a59 
+ 00014919  0x00002de6 call  0x00003a5d 
+ 00014920  0x00002de7 call  0x00003a5e 
+ 00014921  0x00002de8 branch  0x00003a62 
+ 00014922  0x00002deb arg  0x0000001a , 0x00000002 
+ 00014923  0x00002dec arg  0x0000480a , 0x00000011 
+ 00014924  0x00002ded arg  0x00000000 , 0x00000012 
+ 00014925  0x00002dee branch  0x00006ce1 
+ 00014926  0x00002df1 arg  0x00000013 , 0x00000002 
+ 00014927  0x00002df2 arg  0x000047ef , 0x00000011 
+ 00014928  0x00002df3 arg  0x0000001a , 0x00000012 
+ 00014929  0x00002df4 call  0x00006ce1 
+ 00014930  0x00002df5 fetch  0x00000001 , 0x000047ff 
+ 00014931  0x00002df6 store  0x00000001 , 0x00004871 
+ 00014932  0x00002df7 rtn 
+ 00014933  0x00002dfa arg  0x00000010 , 0x00000002 
+ 00014934  0x00002dfb arg  0x00004959 , 0x00000011 
+ 00014935  0x00002dfc arg  0x0000002d , 0x00000012 
+ 00014936  0x00002dfd branch  0x00006ce1 
+ 00014937  0x00002e00 arg  0x00000010 , 0x00000002 
+ 00014938  0x00002e01 arg  0x000046a0 , 0x00000011 
+ 00014939  0x00002e02 arg  0x0000003d , 0x00000012 
+ 00014940  0x00002e03 branch  0x00006ce1 
+ 00014941  0x00002e06 rtn 
+ 00014942  0x00002e09 arg  0x00000003 , 0x00000002 
+ 00014943  0x00002e0a arg  0x00004992 , 0x00000011 
+ 00014944  0x00002e0b arg  0x0000004e , 0x00000012 
+ 00014945  0x00002e0c branch  0x00006ce1 
+ 00014946  0x00002e0f fetch  0x00000002 , 0x0000484c 
+ 00014947  0x00002e10 rtnbit1  0x00000002 
+ 00014948  0x00002e11 arg  0x00000040 , 0x00000002 
+ 00014949  0x00002e12 arg  0x000006a1 , 0x00000011 
+ 00014950  0x00002e13 arg  0x00000051 , 0x00000012 
+ 00014951  0x00002e14 call  0x00006ce1 
+ 00014952  0x00002e15 call  0x00003e3e 
+ 00014953  0x00002e16 arg  0x000006a1 , 0x00000006 
+ 00014954  0x00002e17 add  0x00000011 , 0x00000006 , 0x00000011 
+ 00014955  0x00002e19 copy  0x00000011 , 0x00000005 
+ 00014956  0x00002e1a call  0x00007c8f 
+ 00014957  0x00002e1b copy  0x00000012 , 0x0000003f 
+ 00014958  0x00002e1c iadd  0x00000011 , 0x00000011 
+ 00014959  0x00002e1d loop  0x00003a6b 
+ 00014960  0x00002e1e rtn 
+ 00014961  0x00002e21 fetch  0x00000001 , 0x00004857 
+ 00014962  0x00002e22 beq  0x00000001 , 0x00003a83 
+ 00014963  0x00002e23 beq  0x00000002 , 0x00003a74 
+ 00014964  0x00002e25 call  0x00003a77 
+ 00014965  0x00002e26 call  0x00003a7b 
+ 00014966  0x00002e27 branch  0x00003a7f 
+ 00014967  0x00002e29 arg  0x00000013 , 0x00000002 
+ 00014968  0x00002e2a arg  0x000047ef , 0x00000011 
+ 00014969  0x00002e2b setarg  0x0001e000 
+ 00014970  0x00002e2c branch  0x00006c33 
+ 00014971  0x00002e2e arg  0x00000010 , 0x00000002 
+ 00014972  0x00002e2f arg  0x00004959 , 0x00000011 
+ 00014973  0x00002e30 setarg  0x0001e100 
+ 00014974  0x00002e31 branch  0x00006c33 
+ 00014975  0x00002e33 arg  0x00000010 , 0x00000002 
+ 00014976  0x00002e34 arg  0x000046a0 , 0x00000011 
+ 00014977  0x00002e35 setarg  0x0001e200 
+ 00014978  0x00002e36 branch  0x00006c33 
+ 00014979  0x00002e39 call  0x00003a86 
+ 00014980  0x00002e3a call  0x00003a8a 
+ 00014981  0x00002e3b branch  0x00003a8e 
+ 00014982  0x00002e3e arg  0x00000013 , 0x00000002 
+ 00014983  0x00002e3f arg  0x000047ef , 0x00000011 
+ 00014984  0x00002e40 arg  0x0000001a , 0x00000012 
+ 00014985  0x00002e41 branch  0x00006cd3 
+ 00014986  0x00002e44 arg  0x00000010 , 0x00000002 
+ 00014987  0x00002e45 arg  0x00004959 , 0x00000011 
+ 00014988  0x00002e46 arg  0x0000002d , 0x00000012 
+ 00014989  0x00002e47 branch  0x00006cd3 
+ 00014990  0x00002e4a arg  0x00000010 , 0x00000002 
+ 00014991  0x00002e4b arg  0x000046a0 , 0x00000011 
+ 00014992  0x00002e4c arg  0x0000003d , 0x00000012 
+ 00014993  0x00002e4d branch  0x00006cd3 
+ 00014994  0x00002e50 fetch  0x00000003 , 0x00004992 
+ 00014995  0x00002e51 fetcht  0x00000003 , 0x00004c24 
+ 00014996  0x00002e52 isub  0x00000002 , 0x0000003e 
+ 00014997  0x00002e53 nrtn  0x00000002 
+ 00014998  0x00002e54 add  0x0000003f , 0x00000080 , 0x0000003f 
+ 00014999  0x00002e55 store  0x00000003 , 0x00004c24 
+ 00015000  0x00002e56 fetch  0x00000001 , 0x00004857 
+ 00015001  0x00002e57 beq  0x00000001 , 0x00003a9e 
+ 00015002  0x00002e59 arg  0x00000003 , 0x00000002 
+ 00015003  0x00002e5a arg  0x00004c24 , 0x00000011 
+ 00015004  0x00002e5b setarg  0x0001f000 
+ 00015005  0x00002e5c branch  0x00006c33 
+ 00015006  0x00002e5e arg  0x00000003 , 0x00000002 
+ 00015007  0x00002e5f arg  0x00004c24 , 0x00000011 
+ 00015008  0x00002e60 arg  0x0000004e , 0x00000012 
+ 00015009  0x00002e61 branch  0x00006cd3 
+ 00015010  0x00002e64 call  0x00003aad 
+ 00015011  0x00002e65 fetch  0x00000001 , 0x00004857 
+ 00015012  0x00002e66 beq  0x00000002 , 0x00003aa9 
+ 00015013  0x00002e67 arg  0x00000040 , 0x00000002 
+ 00015014  0x00002e68 arg  0x000006a1 , 0x00000011 
+ 00015015  0x00002e69 arg  0x00000051 , 0x00000012 
+ 00015016  0x00002e6a branch  0x00006cd3 
+ 00015017  0x00002e6c arg  0x00000040 , 0x00000002 
+ 00015018  0x00002e6d arg  0x000006a1 , 0x00000011 
+ 00015019  0x00002e6e setarg  0x0001e400 
+ 00015020  0x00002e6f branch  0x00006c33 
+ 00015021  0x00002e72 call  0x00003e3e 
+ 00015022  0x00002e73 arg  0x000006a1 , 0x00000005 
+ 00015023  0x00002e74 add  0x00000011 , 0x00000006 , 0x00000011 
+ 00015024  0x00002e76 copy  0x00000011 , 0x00000006 
+ 00015025  0x00002e77 call  0x00007c8f 
+ 00015026  0x00002e78 copy  0x00000012 , 0x0000003f 
+ 00015027  0x00002e79 iadd  0x00000011 , 0x00000011 
+ 00015028  0x00002e7a loop  0x00003ab0 
+ 00015029  0x00002e7b rtn 
+ 00015030  0x00002e7e fetch  0x00000001 , 0x00004857 
+ 00015031  0x00002e7f beq  0x00000001 , 0x00003abb 
+ 00015032  0x00002e81 setarg  0x0001e000 
+ 00015033  0x00002e82 store  0x00000003 , 0x00004419 
+ 00015034  0x00002e83 branch  0x00006bfa 
+ 00015035  0x00002e85 rtn 
+ 00015036  0x00002e88 fetch  0x00000001 , 0x00004857 
+ 00015037  0x00002e89 rtnne  0x00000002 
+ 00015038  0x00002e8a setarg  0x0001d000 
+ 00015039  0x00002e8b arg  0x00004503 , 0x00000011 
+ 00015040  0x00002e8c arg  0x0000000d , 0x00000002 
+ 00015041  0x00002e8d mul32  0x00000002 , 0x00000012 , 0x00000002 
+ 00015042  0x00002e8e branch  0x00006c33 
+ 00015043  0x00002e91 fetch  0x00000001 , 0x00004857 
+ 00015044  0x00002e92 rtnne  0x00000002 
+ 00015045  0x00002e93 arg  0x00004503 , 0x00000011 
+ 00015046  0x00002e94 arg  0x0000000d , 0x00000002 
+ 00015047  0x00002e95 mul32  0x00000002 , 0x00000012 , 0x00000002 
+ 00015048  0x00002e96 setarg  0x0001d000 
+ 00015049  0x00002e97 branch  0x00006c4d 
+ 00015050  0x00002e9e call  0x00004073 
+ 00015051  0x00002e9f branch  0x00003ad2 
+ 00015052  0x00002ea4 call  0x00003b23 
+ 00015053  0x00002ea5 branch  0x00003b19 
+ 00015054  0x00002ea9 jam  0x00000001 , 0x0000464b 
+ 00015055  0x00002eaa rtn 
+ 00015056  0x00002eae jam  0x00000000 , 0x0000464b 
+ 00015057  0x00002eaf rtn 
+ 00015058  0x00002eb3 arg  0x00003ad6 , 0x00000012 
+ 00015059  0x00002eb4 arg  0x0000001d , 0x00000011 
+ 00015060  0x00002eb5 arg  0x0000000e , 0x00000007 
+ 00015061  0x00002eb6 branch  0x00003b0e 
+ 00015062  0x00002ebd fetch  0x00000001 , 0x000047e4 
+ 00015063  0x00002ebe beq  0x00000001 , 0x00003afd 
+ 00015064  0x00002ebf beq  0x00000003 , 0x00003adc 
+ 00015065  0x00002ec0 beq  0x00000002 , 0x00003b0d 
+ 00015066  0x00002ec1 beq  0x00000000 , 0x00003ade 
+ 00015067  0x00002ec2 branch  0x00003ade 
+ 00015068  0x00002ec5 jam  0x00000000 , 0x00004388 
+ 00015069  0x00002ec6 branch  0x00003ad0 
+ 00015070  0x00002ec9 call  0x0000396c 
+ 00015071  0x00002eca arg  0x00000787 , 0x00000011 
+ 00015072  0x00002ecb call  0x000078dc 
+ 00015073  0x00002ecc nrtn  0x00000028 
+ 00015074  0x00002ecd fetch  0x00000001 , 0x000049b7 
+ 00015075  0x00002ece bbit1  0x00000002 , 0x00003aef 
+ 00015076  0x00002ecf fetch  0x00000001 , 0x00000787 
+ 00015077  0x00002ed0 pincrease  0xffffffff 
+ 00015078  0x00002ed1 istore  0x00000001 , 0x00000012 
+ 00015079  0x00002ed2 and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00015080  0x00002ed3 call  0x00003af5 , 0x00000034 
+ 00015081  0x00002ed4 fetch  0x00000001 , 0x000049b7 
+ 00015082  0x00002ed5 rtnbit0  0x00000000 
+ 00015083  0x00002ed6 arg  0x0000462a , 0x00000005 
+ 00015084  0x00002ed7 arg  0x00000789 , 0x00000006 
+ 00015085  0x00002ed8 call  0x00007c8d 
+ 00015086  0x00002ed9 branch  0x000039d3 
+ 00015087  0x00002edc arg  0x00000787 , 0x00000011 
+ 00015088  0x00002edd call  0x000078ca 
+ 00015089  0x00002ede call  0x000078fa 
+ 00015090  0x00002edf nrtn  0x00000034 
+ 00015091  0x00002ee1 call  0x00003afb 
+ 00015092  0x00002ee2 branch  0x00003ad0 
+ 00015093  0x00002ee6 arg  0x00000787 , 0x00000011 
+ 00015094  0x00002ee7 call  0x000078ca 
+ 00015095  0x00002ee8 call  0x000078fa 
+ 00015096  0x00002ee9 nrtn  0x00000034 
+ 00015097  0x00002eeb jam  0x00000004 , 0x0000464f 
+ 00015098  0x00002eec branch  0x00003ad0 
+ 00015099  0x00002eef jam  0x00000000 , 0x000049b5 
+ 00015100  0x00002ef0 rtn 
+ 00015101  0x00002ef4 call  0x00003ce0 
+ 00015102  0x00002ef5 call  0x00003cec 
+ 00015103  0x00002ef6 call  0x00003b05 
+ 00015104  0x00002ef7 nrtn  0x00000005 
+ 00015105  0x00002ef8 fetch  0x00000001 , 0x000047e4 
+ 00015106  0x00002ef9 beq  0x00000003 , 0x00003b09 
+ 00015107  0x00002efa beq  0x00000001 , 0x00003b0b 
+ 00015108  0x00002efb rtn 
+ 00015109  0x00002f01 fetch  0x00000001 , 0x0000464e 
+ 00015110  0x00002f02 add  0x0000003f , 0xffffffff , 0x0000003f 
+ 00015111  0x00002f03 store  0x00000001 , 0x0000464e 
+ 00015112  0x00002f04 rtn 
+ 00015113  0x00002f08 jam  0x00000258 , 0x0000464f 
+ 00015114  0x00002f09 branch  0x00003ad0 
+ 00015115  0x00002f0d jam  0x00000006 , 0x0000464f 
+ 00015116  0x00002f0e branch  0x00003ad0 
+ 00015117  0x00002f12 branch  0x000039d3 
+ 00015118  0x00002f15 fetch  0x00000001 , 0x0000464b 
+ 00015119  0x00002f16 rtnne  0x00000001 
+ 00015120  0x00002f18 random  0x0000003f 
+ 00015121  0x00002f19 and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00015122  0x00002f1a iadd  0x00000011 , 0x00000011 
+ 00015123  0x00002f1f call  0x00007cef 
+ 00015124  0x00002f20 nrtn  0x00000034 
+ 00015125  0x00002f21 copy  0x00000011 , 0x0000003f 
+ 00015126  0x00002f22 call  0x00007ce1 
+ 00015127  0x00002f23 copy  0x00000012 , 0x0000003f 
+ 00015128  0x00002f24 branch  0x00007d79 
+ 00015129  0x00002f29 arg  0x0000464c , 0x00000013 
+ 00015130  0x00002f2a arg  0x00003b1c , 0x00000012 
+ 00015131  0x00002f2b branch  0x000042e7 
+ 00015132  0x00002f2f fetch  0x00000001 , 0x000047e4 
+ 00015133  0x00002f30 rtnne  0x00000001 
+ 00015134  0x00002f31 fetch  0x00000001 , 0x000047e7 
+ 00015135  0x00002f32 set1  0x00000000 , 0x0000003f 
+ 00015136  0x00002f33 store  0x00000001 , 0x000047e7 
+ 00015137  0x00002f34 jam  0x00000003 , 0x000047e4 
+ 00015138  0x00002f35 branch  0x00003b31 
+ 00015139  0x00002f3b arg  0x0000464f , 0x00000013 
+ 00015140  0x00002f3c arg  0x00003b26 , 0x00000012 
+ 00015141  0x00002f3d branch  0x000042e0 
+ 00015142  0x00002f43 fetch  0x00000001 , 0x000047e4 
+ 00015143  0x00002f45 beq  0x00000001 , 0x00003b2f 
+ 00015144  0x00002f46 beq  0x00000000 , 0x00003afb 
+ 00015145  0x00002f47 rtn 
+ 00015146  0x00002f4a call  0x00003e5a 
+ 00015147  0x00002f4b call  0x0000420b 
+ 00015148  0x00002f4c jam  0x00000000 , 0x0000464f 
+ 00015149  0x00002f4d call  0x00003ad0 
+ 00015150  0x00002f4e branch  0x00003afb 
+ 00015151  0x00002f52 jam  0x00000006 , 0x0000464e 
+ 00015152  0x00002f53 branch  0x00003ace 
+ 00015153  0x00002f57 jam  0x00000006 , 0x0000464e 
+ 00015154  0x00002f58 branch  0x00003ace 
+ 00015155  0x00002f5b arg  0x00003b37 , 0x00000012 
+ 00015156  0x00002f5c arg  0x00000020 , 0x00000011 
+ 00015157  0x00002f5d arg  0x0000000f , 0x00000007 
+ 00015158  0x00002f5e branch  0x00003b10 
+ 00015159  0x00002f61 fetch  0x00000001 , 0x000049b5 
+ 00015160  0x00002f62 nrtn  0x00000034 
+ 00015161  0x00002f63 call  0x0000406e 
+ 00015162  0x00002f64 arg  0x00000787 , 0x00000011 
+ 00015163  0x00002f65 call  0x000078dc 
+ 00015164  0x00002f66 nrtn  0x00000028 
+ 00015165  0x00002f67 fetch  0x00000001 , 0x00000787 
+ 00015166  0x00002f68 pincrease  0xffffffff 
+ 00015167  0x00002f69 istore  0x00000001 , 0x00000012 
+ 00015168  0x00002f6a call  0x000078ca , 0x00000034 
+ 00015169  0x00002f6b arg  0x0000462a , 0x00000005 
+ 00015170  0x00002f6c arg  0x00000789 , 0x00000006 
+ 00015171  0x00002f6d call  0x00007c8d 
+ 00015172  0x00002f6e branch  0x000039d3 
+ 00015173  0x00002f76 call  0x00003b4b 
+ 00015174  0x00002f77 call  0x00003b53 
+ 00015175  0x00002f78 call  0x00003b59 
+ 00015176  0x00002f79 call  0x00003b5f 
+ 00015177  0x00002f7a call  0x00003b67 
+ 00015178  0x00002f7b branch  0x00003b6b 
+ 00015179  0x00002f81 call  0x00003b78 
+ 00015180  0x00002f82 arg  0x000046c0 , 0x00000006 
+ 00015181  0x00002f83 arg  0x0000000f , 0x00000039 
+ 00015182  0x00002f84 call  0x00003be7 
+ 00015183  0x00002f85 call  0x00003c01 
+ 00015184  0x00002f86 arg  0x000001bd , 0x00000006 
+ 00015185  0x00002f87 arg  0x000046b0 , 0x00000005 
+ 00015186  0x00002f88 branch  0x00007c8f 
+ 00015187  0x00002f8e call  0x00003b7b 
+ 00015188  0x00002f8f call  0x00003b75 
+ 00015189  0x00002f90 call  0x00003c01 
+ 00015190  0x00002f91 arg  0x000001bd , 0x00000006 
+ 00015191  0x00002f92 arg  0x00004660 , 0x00000005 
+ 00015192  0x00002f93 branch  0x00007c8f 
+ 00015193  0x00002f98 call  0x00003b7b 
+ 00015194  0x00002f99 call  0x00003b78 
+ 00015195  0x00002f9a call  0x00003c01 
+ 00015196  0x00002f9b arg  0x000001bd , 0x00000006 
+ 00015197  0x00002f9c arg  0x00004690 , 0x00000005 
+ 00015198  0x00002f9d branch  0x00007c8f 
+ 00015199  0x00002fa3 fetch  0x00000008 , 0x00004680 
+ 00015200  0x00002fa4 store  0x00000008 , 0x00004658 
+ 00015201  0x00002fa5 fetch  0x00000008 , 0x00004688 
+ 00015202  0x00002fa6 store  0x00000008 , 0x00004650 
+ 00015203  0x00002fa8 arg  0x00004650 , 0x00000006 
+ 00015204  0x00002fa9 arg  0x000046b0 , 0x00000011 
+ 00015205  0x00002faa arg  0x00004670 , 0x00000030 
+ 00015206  0x00002fab branch  0x00003c48 
+ 00015207  0x00002fb2 arg  0x00004680 , 0x00000006 
+ 00015208  0x00002fb3 arg  0x000046b0 , 0x00000011 
+ 00015209  0x00002fb4 arg  0x00004680 , 0x00000030 
+ 00015210  0x00002fb5 branch  0x00003c48 
+ 00015211  0x00002fbc arg  0x00004670 , 0x00000006 
+ 00015212  0x00002fbd arg  0x00000010 , 0x00000039 
+ 00015213  0x00002fbe call  0x00003be4 
+ 00015214  0x00002fbf arg  0x000046d9 , 0x00000006 
+ 00015215  0x00002fc0 arg  0x00000009 , 0x00000039 
+ 00015216  0x00002fc1 call  0x00003be7 
+ 00015217  0x00002fc2 call  0x00003c01 
+ 00015218  0x00002fc3 arg  0x000001bd , 0x00000006 
+ 00015219  0x00002fc4 arg  0x000046a0 , 0x00000005 
+ 00015220  0x00002fc5 branch  0x00007c8f 
+ 00015221  0x00002fc9 call  0x00003b79 
+ 00015222  0x00002fcb arg  0x00004680 , 0x00000006 
+ 00015223  0x00002fcc branch  0x00003be3 
+ 00015224  0x00002fcf call  0x00003b76 
+ 00015225  0x00002fd1 arg  0x00004688 , 0x00000006 
+ 00015226  0x00002fd2 branch  0x00003be3 
+ 00015227  0x00002fd6 arg  0x0000480a , 0x00000006 
+ 00015228  0x00002fd7 arg  0x00000004 , 0x00000039 
+ 00015229  0x00002fd8 call  0x00003bea 
+ 00015230  0x00002fd9 arg  0x0000480e , 0x00000006 
+ 00015231  0x00002fda arg  0x00000006 , 0x00000039 
+ 00015232  0x00002fdb call  0x00003bea 
+ 00015233  0x00002fdc arg  0x00004814 , 0x00000006 
+ 00015234  0x00002fdd arg  0x00000010 , 0x00000039 
+ 00015235  0x00002fde call  0x00003be4 
+ 00015236  0x00002fdf call  0x00003bf1 
+ 00015237  0x00002fe0 branch  0x00003bec 
+ 00015238  0x00002fe6 call  0x00003b92 
+ 00015239  0x00002fe9 arg  0x000047ec , 0x00000011 
+ 00015240  0x00002fea arg  0x000001bd , 0x00000012 
+ 00015241  0x00002feb arg  0x0000000b , 0x00000039 
+ 00015242  0x00002fed ifetch  0x00000002 , 0x00000011 
+ 00015243  0x00002fee ifetcht  0x00000002 , 0x00000012 
+ 00015244  0x00002fef ixor  0x00000002 , 0x0000003f 
+ 00015245  0x00002ff0 istore  0x00000002 , 0x00000011 
+ 00015246  0x00002ff1 increase  0x00000002 , 0x00000011 
+ 00015247  0x00002ff2 increase  0x00000002 , 0x00000012 
+ 00015248  0x00002ff3 loop  0x00003b8a 
+ 00015249  0x00002ff4 rtn 
+ 00015250  0x00002ffb arg  0x00004670 , 0x00000006 
+ 00015251  0x00002ffc arg  0x00000010 , 0x00000039 
+ 00015252  0x00002ffd call  0x00003be4 
+ 00015253  0x00002ffe arg  0x000046cf , 0x00000006 
+ 00015254  0x00002fff arg  0x0000000a , 0x00000039 
+ 00015255  0x00003000 call  0x00003be7 
+ 00015256  0x00003001 branch  0x00003c01 
+ 00015257  0x00003006 arg  0x000047ef , 0x00000006 
+ 00015258  0x00003007 arg  0x0000470d , 0x00000005 
+ 00015259  0x00003008 call  0x00007c8f 
+ 00015260  0x0000300e arg  0x0000470d , 0x00000006 
+ 00015261  0x0000300f arg  0x0000471d , 0x00000011 
+ 00015262  0x00003010 arg  0x0000472d , 0x00000030 
+ 00015263  0x00003011 call  0x00003c4a 
+ 00015264  0x00003013 arg  0x0000473d , 0x00000030 
+ 00015265  0x00003014 arg  0x00000001 , 0x00000012 
+ 00015266  0x00003015 setarg  0x00000000 
+ 00015267  0x00003016 call  0x00003c4c 
+ 00015268  0x00003017 fetch  0x00000001 , 0x0000474c 
+ 00015269  0x00003018 and  0x0000003f , 0x0000007f , 0x0000003f 
+ 00015270  0x00003019 store  0x00000001 , 0x0000474d 
+ 00015271  0x0000301b arg  0x0000475e , 0x00000030 
+ 00015272  0x0000301c arg  0x00000002 , 0x00000012 
+ 00015273  0x0000301d setarg  0x00000010 
+ 00015274  0x0000301e arg  0x0000473d , 0x00000011 
+ 00015275  0x0000301f call  0x00003c4c 
+ 00015276  0x00003021 arg  0x0000474e , 0x00000030 
+ 00015277  0x00003022 arg  0x00000003 , 0x00000012 
+ 00015278  0x00003023 setarg  0x00000010 
+ 00015279  0x00003024 arg  0x0000475e , 0x00000011 
+ 00015280  0x00003025 branch  0x00003c4c 
+ 00015281  0x00003029 arg  0x00004959 , 0x00000006 
+ 00015282  0x0000302a arg  0x0000476e , 0x00000011 
+ 00015283  0x0000302b arg  0x0000477e , 0x00000030 
+ 00015284  0x0000302c call  0x00003c4a 
+ 00015285  0x0000302d arg  0x0000478e , 0x00000006 
+ 00015286  0x0000302e arg  0x0000477e , 0x00000011 
+ 00015287  0x0000302f arg  0x0000479e , 0x00000030 
+ 00015288  0x00003030 setarg  0x00000004 
+ 00015289  0x00003031 call  0x00003c5a 
+ 00015290  0x00003032 fetch  0x00000001 , 0x000047ad 
+ 00015291  0x00003033 and  0x0000003f , 0x0000003f , 0x0000003f 
+ 00015292  0x00003034 set1  0x00000006 , 0x0000003f 
+ 00015293  0x00003035 store  0x00000001 , 0x000047ae 
+ 00015294  0x00003036 rtn 
+ 00015295  0x0000303a arg  0x000047ef , 0x00000006 
+ 00015296  0x0000303b arg  0x000047af , 0x00000011 
+ 00015297  0x0000303c arg  0x000047bf , 0x00000030 
+ 00015298  0x0000303d call  0x00003c4a 
+ 00015299  0x0000303e arg  0x000047cf , 0x00000006 
+ 00015300  0x0000303f arg  0x000047bf , 0x00000011 
+ 00015301  0x00003040 arg  0x000047d4 , 0x00000030 
+ 00015302  0x00003041 setarg  0x00000005 
+ 00015303  0x00003042 call  0x00003c5a 
+ 00015304  0x00003046 fetch  0x00000002 , 0x000044e9 
+ 00015305  0x00003047 rtnbit1  0x00000009 
+ 00015306  0x00003048 jam  0x00000001 , 0x00004388 
+ 00015307  0x00003049 rtn 
+ 00015308  0x0000304e arg  0x00004999 , 0x00000011 
+ 00015309  0x0000304f fetch  0x00000007 , 0x0000499f 
+ 00015310  0x00003050 branch  0x00003bd1 
+ 00015311  0x00003052 arg  0x00000923 , 0x00000011 
+ 00015312  0x00003053 fetch  0x00000007 , 0x00000929 
+ 00015313  0x00003055 store  0x00000007 , 0x000008da 
+ 00015314  0x00003056 setarg  0x00000000 
+ 00015315  0x00003057 store  0x00000005 , 0x000008d1 
+ 00015316  0x00003058 call  0x00003bda 
+ 00015317  0x00003059 fetch  0x00000006 , 0x000008e1 
+ 00015318  0x0000305a ifetcht  0x00000006 , 0x00000011 
+ 00015319  0x0000305b ixor  0x00000002 , 0x0000003f 
+ 00015320  0x0000305c istore  0x00000006 , 0x00000011 
+ 00015321  0x0000305d rtn 
+ 00015322  0x00003061 fetch  0x00000004 , 0x0000486e 
+ 00015323  0x00003062 store  0x00000004 , 0x000008d6 
+ 00015324  0x00003065 arg  0x0000474e , 0x00000006 
+ 00015325  0x00003066 call  0x0000735f 
+ 00015326  0x00003067 arg  0x000008d1 , 0x00000006 
+ 00015327  0x00003068 call  0x00007361 
+ 00015328  0x00003069 call  0x000072d1 
+ 00015329  0x0000306a arg  0x000008e1 , 0x00000005 
+ 00015330  0x0000306b branch  0x00007375 
+ 00015331  0x00003073 arg  0x00000008 , 0x00000039 
+ 00015332  0x00003079 call  0x00003bf1 
+ 00015333  0x0000307a call  0x00003c39 
+ 00015334  0x0000307b branch  0x00003bee 
+ 00015335  0x0000307d call  0x00003bf1 
+ 00015336  0x0000307e call  0x00007cda 
+ 00015337  0x0000307f branch  0x00003bee 
+ 00015338  0x00003081 call  0x00003bf1 
+ 00015339  0x00003082 call  0x00003c39 
+ 00015340  0x00003083 setarg  0x0000002c 
+ 00015341  0x00003084 istore  0x00000001 , 0x00000005 
+ 00015342  0x00003086 copy  0x00000005 , 0x0000003f 
+ 00015343  0x00003087 store  0x00000002 , 0x000046f3 
+ 00015344  0x00003088 rtn 
+ 00015345  0x0000308a copy  0x00000006 , 0x00000002 
+ 00015346  0x0000308b copy  0x00000039 , 0x00000011 
+ 00015347  0x0000308c fetch  0x00000002 , 0x000046f3 
+ 00015348  0x0000308d copy  0x0000003f , 0x00000005 
+ 00015349  0x0000308e fetch  0x00000001 , 0x000046e2 
+ 00015350  0x0000308f call  0x00003bfa , 0x00000034 
+ 00015351  0x00003090 copy  0x00000002 , 0x00000006 
+ 00015352  0x00003091 copy  0x00000011 , 0x00000039 
+ 00015353  0x00003092 rtn 
+ 00015354  0x00003094 jam  0x00000001 , 0x000046e2 
+ 00015355  0x00003095 call  0x00003bfe 
+ 00015356  0x00003096 arg  0x000007d1 , 0x00000005 
+ 00015357  0x00003097 rtn 
+ 00015358  0x0000309a arg  0x00000100 , 0x00000039 
+ 00015359  0x0000309b arg  0x000007d1 , 0x00000005 
+ 00015360  0x0000309c branch  0x00007ca3 
+ 00015361  0x000030a1 call  0x00003c17 
+ 00015362  0x000030a2 call  0x00003c32 
+ 00015363  0x000030a4 setarg  0x000007d1 
+ 00015364  0x000030a5 store  0x00000002 , 0x000046fa 
+ 00015365  0x000030a6 call  0x00004134 
+ 00015366  0x000030a9 fetch  0x00000002 , 0x000046fa 
+ 00015367  0x000030aa copy  0x0000003f , 0x00000006 
+ 00015368  0x000030ab arg  0x00000231 , 0x00000005 
+ 00015369  0x000030ac call  0x00007c81 
+ 00015370  0x000030ad call  0x0000413b 
+ 00015371  0x000030ae fetch  0x00000002 , 0x000046fa 
+ 00015372  0x000030af pincrease  0x00000040 
+ 00015373  0x000030b0 store  0x00000002 , 0x000046fa 
+ 00015374  0x000030b1 fetch  0x00000001 , 0x000046f7 
+ 00015375  0x000030b2 pincrease  0xffffffff 
+ 00015376  0x000030b3 store  0x00000001 , 0x000046f7 
+ 00015377  0x000030b4 nbranch  0x00003c06 , 0x00000034 
+ 00015378  0x000030b5 call  0x00004176 
+ 00015379  0x000030b6 arg  0x000001bd , 0x00000011 
+ 00015380  0x000030b7 arg  0x00000020 , 0x00000039 
+ 00015381  0x000030b8 call  0x00007cb1 
+ 00015382  0x000030b9 rtn 
+ 00015383  0x000030bd jam  0x00000000 , 0x000046e2 
+ 00015384  0x000030be fetch  0x00000002 , 0x000046f3 
+ 00015385  0x000030bf copy  0x0000003f , 0x00000005 
+ 00015386  0x000030c0 arg  0x00000080 , 0x00000002 
+ 00015387  0x000030c1 istoret  0x00000001 , 0x00000005 
+ 00015388  0x000030c2 arg  0x000007d1 , 0x00000002 
+ 00015389  0x000030c3 isub  0x00000002 , 0x0000003f 
+ 00015390  0x000030c4 store  0x00000008 , 0x000046e3 
+ 00015391  0x000030c6 lshift3  0x0000003f , 0x00000002 
+ 00015392  0x000030c7 storet  0x00000008 , 0x000046eb 
+ 00015393  0x000030c8 rshift4  0x0000003f , 0x00000013 
+ 00015394  0x000030c9 rshift2  0x00000013 , 0x00000013 
+ 00015395  0x000030ca and  0x0000003f , 0x0000003f , 0x0000003f 
+ 00015396  0x000030cb sub  0x0000003f , 0x00000037 , 0x0000003e 
+ 00015397  0x000030cd ncall  0x00003c30 , 0x00000002 
+ 00015398  0x000030ce add  0x00000013 , 0x00000001 , 0x0000003f 
+ 00015399  0x000030cf store  0x00000001 , 0x000046f7 
+ 00015400  0x000030d0 mul32  0x0000003f , 0x00000040 , 0x00000011 
+ 00015401  0x000030d1 lshift4  0x0000003f , 0x00000013 
+ 00015402  0x000030d2 increase  0xffffffff , 0x00000013 
+ 00015403  0x000030d3 setarg  0x000007cd 
+ 00015404  0x000030d4 iadd  0x00000011 , 0x00000011 
+ 00015405  0x000030d5 fetch  0x00000004 , 0x000046eb 
+ 00015406  0x000030d6 istore  0x00000004 , 0x00000011 
+ 00015407  0x000030d7 rtn 
+ 00015408  0x000030dc increase  0x00000001 , 0x00000013 
+ 00015409  0x000030dd rtn 
+ 00015410  0x000030e0 arg  0x000007d1 , 0x00000011 
+ 00015411  0x000030e6 arg  0x00000004 , 0x00000039 
+ 00015412  0x000030e7 call  0x00007cb1 
+ 00015413  0x000030e8 increase  0x00000002 , 0x00000011 
+ 00015414  0x000030e9 add  0x00000013 , 0xffffffff , 0x00000013 
+ 00015415  0x000030ea nbranch  0x00003c33 , 0x00000005 
+ 00015416  0x000030eb rtn 
+ 00015417  0x000030f3 ifetch  0x00000001 , 0x00000006 
+ 00015418  0x000030f4 rshift4  0x0000003f , 0x00000002 
+ 00015419  0x000030f5 call  0x00003c42 
+ 00015420  0x000030f6 istoret  0x00000001 , 0x00000005 
+ 00015421  0x000030f7 and  0x0000003f , 0x0000000f , 0x00000002 
+ 00015422  0x000030f8 call  0x00003c42 
+ 00015423  0x000030f9 istoret  0x00000001 , 0x00000005 
+ 00015424  0x000030fa loop  0x00003c39 
+ 00015425  0x000030fb rtn 
+ 00015426  0x000030fd sub  0x00000002 , 0x00000009 , 0x0000003e 
+ 00015427  0x000030fe branch  0x00003c46 , 0x00000002 
+ 00015428  0x000030ff add  0x00000002 , 0x00000057 , 0x00000002 
+ 00015429  0x00003100 rtn 
+ 00015430  0x00003102 add  0x00000002 , 0x00000030 , 0x00000002 
+ 00015431  0x00003103 rtn 
+ 00015432  0x00003107 setarg  0x00000020 
+ 00015433  0x00003108 branch  0x00003c5a 
+ 00015434  0x0000310b setarg  0x00000010 
+ 00015435  0x0000310c branch  0x00003c5a 
+ 00015436  0x00003112 fetcht  0x00000001 , 0x000046fc 
+ 00015437  0x00003113 increase  0x00000001 , 0x00000002 
+ 00015438  0x00003114 iadd  0x00000002 , 0x00000002 
+ 00015439  0x00003115 storet  0x00000001 , 0x00000230 
+ 00015440  0x00003116 copy  0x00000011 , 0x00000006 
+ 00015441  0x00003117 copy  0x0000003f , 0x00000039 
+ 00015442  0x00003118 call  0x00007ccc 
+ 00015443  0x00003119 fetcht  0x00000001 , 0x000046fc 
+ 00015444  0x0000311a copy  0x00000002 , 0x00000039 
+ 00015445  0x0000311b call  0x00007cda 
+ 00015446  0x0000311c copy  0x00000012 , 0x0000003f 
+ 00015447  0x0000311d istore  0x00000001 , 0x00000005 
+ 00015448  0x0000311e arg  0x0000472d , 0x00000011 
+ 00015449  0x0000311f branch  0x00003c5d 
+ 00015450  0x00003129 store  0x00000001 , 0x00000230 
+ 00015451  0x0000312a copy  0x0000003f , 0x00000039 
+ 00015452  0x0000312b call  0x00007ccc 
+ 00015453  0x0000312c copy  0x00000011 , 0x00000006 
+ 00015454  0x0000312d arg  0x000006a1 , 0x00000005 
+ 00015455  0x0000312e call  0x00007c8f 
+ 00015456  0x0000312f call  0x000071c1 
+ 00015457  0x00003130 copy  0x00000030 , 0x00000005 
+ 00015458  0x00003131 call  0x00007375 
+ 00015459  0x00003132 rtn 
+ 00015460  0x00003137 fetcht  0x00000001 , 0x000008fe 
+ 00015461  0x00003138 branch  0x00003c67 
+ 00015462  0x0000313a force  0x00000001 , 0x00000002 
+ 00015463  0x0000313c force  0x00000000 , 0x00000038 
+ 00015464  0x0000313d fetch  0x00000002 , 0x000008f1 
+ 00015465  0x0000313e copy  0x0000003f , 0x00000006 
+ 00015466  0x0000313f ifetch  0x00000003 , 0x00000006 
+ 00015467  0x00003140 lshift8  0x0000003f , 0x0000003f 
+ 00015468  0x00003141 ior  0x00000002 , 0x0000002f 
+ 00015469  0x00003142 increase  0x00000001 , 0x00000038 
+ 00015470  0x00003143 ifetch  0x00000004 , 0x00000006 
+ 00015471  0x00003144 copy  0x0000003f , 0x0000002f 
+ 00015472  0x00003145 increase  0x00000001 , 0x00000038 
+ 00015473  0x00003146 ifetch  0x00000004 , 0x00000006 
+ 00015474  0x00003147 copy  0x0000003f , 0x0000002f 
+ 00015475  0x00003148 increase  0x00000001 , 0x00000038 
+ 00015476  0x00003149 byteswap  0x00000011 , 0x0000002f 
+ 00015477  0x0000314a lshift16  0x0000002f , 0x0000002f 
+ 00015478  0x0000314b ifetch  0x00000002 , 0x00000006 
+ 00015479  0x0000314c ior  0x0000002f , 0x0000002f 
+ 00015480  0x0000314d rtn 
+ 00015481  0x0000314f fetch  0x00000001 , 0x000008f3 
+ 00015482  0x00003150 copy  0x0000003f , 0x00000011 
+ 00015483  0x00003151 call  0x00003c64 
+ 00015484  0x00003152 call  0x000072d1 
+ 00015485  0x00003153 force  0x0000000c , 0x00000038 
+ 00015486  0x00003154 deposit  0x0000002f 
+ 00015487  0x00003155 copy  0x00000011 , 0x00000039 
+ 00015488  0x00003156 fetcht  0x00000002 , 0x000008f4 
+ 00015489  0x00003157 copy  0x00000002 , 0x00000006 
+ 00015490  0x00003158 call  0x00007349 
+ 00015491  0x00003159 branch  0x0000728c 
+ 00015492  0x0000315b jam  0x00000019 , 0x000008fe 
+ 00015493  0x0000315c branch  0x00003c88 
+ 00015494  0x0000315e jam  0x00000009 , 0x000008fe 
+ 00015495  0x0000315f branch  0x00003c88 
+ 00015496  0x00003161 store  0x00000001 , 0x000008f3 
+ 00015497  0x00003162 storet  0x00000002 , 0x000008f4 
+ 00015498  0x00003163 bpatchx  0x000000a5 , 0x00004034 
+ 00015499  0x00003164 call  0x00003c79 
+ 00015500  0x00003165 force  0x00000008 , 0x00000038 
+ 00015501  0x00003166 iforce  0x0000002f 
+ 00015502  0x00003167 force  0x0000000d , 0x00000038 
+ 00015503  0x00003168 copy  0x0000002f , 0x0000003f 
+ 00015504  0x00003169 force  0x00000009 , 0x00000038 
+ 00015505  0x0000316a iforce  0x0000002f 
+ 00015506  0x0000316b force  0x00000000 , 0x00000011 
+ 00015507  0x0000316c copy  0x00000002 , 0x00000013 
+ 00015508  0x0000316d call  0x00003c66 
+ 00015509  0x0000316e call  0x000072d7 
+ 00015510  0x0000316f call  0x00003cc7 
+ 00015511  0x00003170 storet  0x00000008 , 0x000008f6 
+ 00015512  0x00003171 fetch  0x00000001 , 0x000008f3 
+ 00015513  0x00003172 copy  0x0000003f , 0x00000012 
+ 00015514  0x00003173 call  0x00003ccf 
+ 00015515  0x00003174 fetcht  0x00000001 , 0x000008f3 
+ 00015516  0x00003175 fetch  0x00000002 , 0x000008f4 
+ 00015517  0x00003176 iadd  0x00000002 , 0x00000011 
+ 00015518  0x00003177 fetcht  0x00000008 , 0x000008f6 
+ 00015519  0x00003178 istoret  0x00000004 , 0x00000011 
+ 00015520  0x00003179 fetch  0x00000001 , 0x000008fe 
+ 00015521  0x0000317a sub  0x0000003f , 0x00000009 , 0x0000003f 
+ 00015522  0x0000317b rtn  0x00000034 
+ 00015523  0x0000317c istoret  0x00000008 , 0x00000011 
+ 00015524  0x0000317d rtn 
+ 00015525  0x0000317f jam  0x00000019 , 0x000008fe 
+ 00015526  0x00003180 branch  0x00003ca9 
+ 00015527  0x00003182 jam  0x00000009 , 0x000008fe 
+ 00015528  0x00003183 branch  0x00003ca9 
+ 00015529  0x00003186 store  0x00000001 , 0x000008f3 
+ 00015530  0x00003187 storet  0x00000002 , 0x000008f4 
+ 00015531  0x00003188 copy  0x00000002 , 0x00000013 
+ 00015532  0x00003189 copy  0x0000003f , 0x00000012 
+ 00015533  0x0000318a iadd  0x00000013 , 0x00000006 
+ 00015534  0x0000318b bpatchx  0x000000a6 , 0x00004034 
+ 00015535  0x0000318c ifetch  0x00000008 , 0x00000006 
+ 00015536  0x0000318d force  0x00000008 , 0x00000038 
+ 00015537  0x0000318e iforce  0x0000002f 
+ 00015538  0x0000318f force  0x00000009 , 0x00000038 
+ 00015539  0x00003190 rshift32  0x0000003f , 0x0000003f 
+ 00015540  0x00003191 iforce  0x0000002f 
+ 00015541  0x00003192 force  0x00000000 , 0x00000011 
+ 00015542  0x00003193 call  0x00003c66 
+ 00015543  0x00003194 call  0x000072d7 
+ 00015544  0x00003195 call  0x00003cc7 
+ 00015545  0x00003196 storet  0x00000008 , 0x000008f6 
+ 00015546  0x00003197 call  0x00003ccf 
+ 00015547  0x00003198 call  0x00003c79 
+ 00015548  0x00003199 call  0x00003cc7 
+ 00015549  0x0000319a fetch  0x00000001 , 0x000008fe 
+ 00015550  0x0000319b beq  0x00000019 , 0x00003cc4 
+ 00015551  0x0000319c storet  0x00000004 , 0x000008fa 
+ 00015552  0x0000319d fetch  0x00000004 , 0x000008f6 
+ 00015553  0x0000319e fetcht  0x00000004 , 0x000008fa 
+ 00015554  0x0000319f isub  0x00000002 , 0x0000003f 
+ 00015555  0x000031a0 rtn 
+ 00015556  0x000031a3 fetch  0x00000008 , 0x000008f6 
+ 00015557  0x000031a4 isub  0x00000002 , 0x0000003f 
+ 00015558  0x000031a5 rtn 
+ 00015559  0x000031a8 force  0x0000000c , 0x00000038 
+ 00015560  0x000031a9 deposit  0x0000002f 
+ 00015561  0x000031aa force  0x0000000d , 0x00000038 
+ 00015562  0x000031ab copy  0x0000002f , 0x00000002 
+ 00015563  0x000031ac lshift16  0x00000002 , 0x00000002 
+ 00015564  0x000031ad lshift16  0x00000002 , 0x00000002 
+ 00015565  0x000031ae ior  0x00000002 , 0x00000002 
+ 00015566  0x000031af rtn 
+ 00015567  0x000031b1 increase  0x00000001 , 0x00000011 
+ 00015568  0x000031b2 call  0x00003c66 
+ 00015569  0x000031b3 copy  0x00000013 , 0x00000006 
+ 00015570  0x000031b4 call  0x0000735d 
+ 00015571  0x000031b5 call  0x000072d7 
+ 00015572  0x000031b6 call  0x0000737c 
+ 00015573  0x000031b7 increase  0x00000010 , 0x00000013 
+ 00015574  0x000031b8 increase  0xfffffff0 , 0x00000012 
+ 00015575  0x000031b9 branch  0x00003ccf , 0x00000002 
+ 00015576  0x000031ba rtn 
+ 00015577  0x000031c5 bpatchx  0x000000a7 , 0x00004034 
+ 00015578  0x000031c6 jam  0x00000001 , 0x000047e4 
+ 00015579  0x000031c7 jam  0x00000000 , 0x000047e5 
+ 00015580  0x000031c8 jam  0x00000001 , 0x0000464b 
+ 00015581  0x000031c9 setarg  0x00001770 
+ 00015582  0x000031ca store  0x00000002 , 0x0000464c 
+ 00015583  0x000031cb rtn 
+ 00015584  0x000031cf setarg  0x000001a8 
+ 00015585  0x000031d0 store  0x00000002 , 0x000008ff 
+ 00015586  0x000031d1 fetch  0x00000001 , 0x000047e6 
+ 00015587  0x000031d2 istore  0x00000001 , 0x00000005 
+ 00015588  0x000031d3 fetch  0x00000004 , 0x0000480a 
+ 00015589  0x000031d4 call  0x00007cc6 
+ 00015590  0x000031d5 istore  0x00000004 , 0x00000005 
+ 00015591  0x000031d6 fetch  0x00000006 , 0x000042db 
+ 00015592  0x000031d7 istore  0x00000006 , 0x00000005 
+ 00015593  0x000031d8 fetch  0x00000003 , 0x000047e7 
+ 00015594  0x000031d9 istore  0x00000003 , 0x00000005 
+ 00015595  0x000031da rtn 
+ 00015596  0x000031dd call  0x00003cee 
+ 00015597  0x000031de branch  0x000039d3 
+ 00015598  0x000031e2 jam  0x00000015 , 0x0000462a 
+ 00015599  0x000031e3 setarg  0x00000014 
+ 00015600  0x000031e4 store  0x00000001 , 0x0000462b 
+ 00015601  0x000031e5 setarg  0x0000002b 
+ 00015602  0x000031e6 istore  0x00000001 , 0x00000005 
+ 00015603  0x000031e7 setarg  0x00000000 
+ 00015604  0x000031e8 istore  0x00000001 , 0x00000005 
+ 00015605  0x000031ea arg  0x000008ff , 0x00000006 
+ 00015606  0x000031eb call  0x00007c8f 
+ 00015607  0x000031ec fetch  0x00000002 , 0x000047ea 
+ 00015608  0x000031ed istore  0x00000002 , 0x00000005 
+ 00015609  0x000031ee rtn 
+ 00015610  0x000031f2 call  0x00003d5a 
+ 00015611  0x000031f3 nrtn  0x00000028 
+ 00015612  0x000031f4 ifetch  0x00000001 , 0x00000006 
+ 00015613  0x000031f5 beq  0x00000000 , 0x00003d01 
+ 00015614  0x000031f6 beq  0x00000002 , 0x00003d1c 
+ 00015615  0x000031f7 bpatchx  0x000000a8 , 0x00004035 
+ 00015616  0x000031f8 rtn 
+ 00015617  0x000031fd call  0x00003d0f 
+ 00015618  0x000031fe nrtn  0x00000028 
+ 00015619  0x00003200 call  0x00003b45 
+ 00015620  0x00003202 call  0x00003d07 
+ 00015621  0x00003203 call  0x000040fa 
+ 00015622  0x00003204 rtn 
+ 00015623  0x00003207 arg  0x00000012 , 0x00000002 
+ 00015624  0x00003208 call  0x00003d46 
+ 00015625  0x00003209 setarg  0x00000001 
+ 00015626  0x0000320a istore  0x00000001 , 0x00000005 
+ 00015627  0x0000320b fetch  0x00000002 , 0x00004812 
+ 00015628  0x0000320c istore  0x00000002 , 0x00000005 
+ 00015629  0x0000320d arg  0x00004680 , 0x00000006 
+ 00015630  0x0000320e branch  0x00007c8f 
+ 00015631  0x00003212 call  0x00007dbc 
+ 00015632  0x00003213 ifetcht  0x00000002 , 0x00000006 
+ 00015633  0x00003214 arg  0x00004680 , 0x00000005 
+ 00015634  0x00003215 call  0x00007c8f 
+ 00015635  0x00003216 fetch  0x00000002 , 0x00004812 
+ 00015636  0x00003217 isub  0x00000002 , 0x0000003e 
+ 00015637  0x00003218 nrtn  0x00000005 
+ 00015638  0x0000321b fetch  0x00000001 , 0x000047e5 
+ 00015639  0x0000321c rtnbit1  0x00000001 
+ 00015640  0x0000321d set1  0x00000001 , 0x0000003f 
+ 00015641  0x0000321e store  0x00000001 , 0x000047e5 
+ 00015642  0x00003220 jam  0x00000002 , 0x000047e4 
+ 00015643  0x00003221 branch  0x00007dba 
+ 00015644  0x00003224 call  0x00003d27 
+ 00015645  0x00003225 fetcht  0x00000002 , 0x000047ec 
+ 00015646  0x00003226 fetch  0x00000002 , 0x00004812 
+ 00015647  0x00003227 isub  0x00000002 , 0x0000003e 
+ 00015648  0x00003228 nrtn  0x00000005 
+ 00015649  0x00003229 call  0x00003bbf 
+ 00015650  0x0000322a call  0x000040fa 
+ 00015651  0x0000322b fetch  0x00000001 , 0x000007aa 
+ 00015652  0x0000322c rtnne  0x00000002 
+ 00015653  0x0000322d jam  0x00000005 , 0x000047e4 
+ 00015654  0x0000322e rtn 
+ 00015655  0x00003232 bpatchx  0x000000a9 , 0x00004035 
+ 00015656  0x00003233 copy  0x00000006 , 0x00000011 
+ 00015657  0x00003234 fetch  0x00000001 , 0x000047e4 
+ 00015658  0x00003235 rtneq  0x00000000 
+ 00015659  0x00003236 fetch  0x00000001 , 0x000047e5 
+ 00015660  0x00003237 rtnbit0  0x00000001 
+ 00015661  0x00003238 rtnbit1  0x00000002 
+ 00015662  0x00003239 copy  0x00000011 , 0x00000006 
+ 00015663  0x0000323a arg  0x00000016 , 0x00000039 
+ 00015664  0x0000323b arg  0x000047ec , 0x00000005 
+ 00015665  0x0000323c call  0x00007cda 
+ 00015666  0x0000323e call  0x00003b86 
+ 00015667  0x00003240 fetcht  0x00000002 , 0x000047ec 
+ 00015668  0x00003241 fetch  0x00000002 , 0x00004812 
+ 00015669  0x00003242 isub  0x00000002 , 0x0000003e 
+ 00015670  0x00003243 nrtn  0x00000005 
+ 00015671  0x00003245 fetch  0x00000001 , 0x000047e5 
+ 00015672  0x00003246 set1  0x00000002 , 0x0000003f 
+ 00015673  0x00003247 store  0x00000001 , 0x000047e5 
+ 00015674  0x00003249 call  0x00003b99 
+ 00015675  0x0000324b fetch  0x00000001 , 0x000047ff 
+ 00015676  0x0000324c store  0x00000001 , 0x00004871 
+ 00015677  0x0000324d call  0x00003d3f 
+ 00015678  0x0000324e rtn 
+ 00015679  0x00003253 arg  0x00000006 , 0x00000002 
+ 00015680  0x00003254 call  0x00003d46 
+ 00015681  0x00003255 setarg  0x00000003 
+ 00015682  0x00003256 istore  0x00000001 , 0x00000005 
+ 00015683  0x00003257 fetch  0x00000006 , 0x0000480e 
+ 00015684  0x00003258 istore  0x00000006 , 0x00000005 
+ 00015685  0x00003259 rtn 
+ 00015686  0x0000325d bpatchx  0x000000aa , 0x00004035 
+ 00015687  0x0000325e setarg  0x0000012c 
+ 00015688  0x0000325f store  0x00000002 , 0x00004806 
+ 00015689  0x00003260 fetch  0x00000001 , 0x000007aa 
+ 00015690  0x00003261 sub  0x0000003f , 0x00000000 , 0x0000003e 
+ 00015691  0x00003262 call  0x00003ace , 0x00000005 
+ 00015692  0x00003263 ncall  0x00003ad0 , 0x00000005 
+ 00015693  0x00003264 add  0x00000002 , 0x00000009 , 0x0000003f 
+ 00015694  0x00003265 store  0x00000001 , 0x0000462a 
+ 00015695  0x00003266 call  0x0000397c 
+ 00015696  0x00003267 add  0x00000002 , 0x00000005 , 0x0000003f 
+ 00015697  0x00003268 istore  0x00000001 , 0x00000005 
+ 00015698  0x00003269 setarg  0x000000ff 
+ 00015699  0x0000326a istore  0x00000001 , 0x00000005 
+ 00015700  0x0000326b setarg  0x000001a8 
+ 00015701  0x0000326c byteswap  0x0000003f , 0x0000003f 
+ 00015702  0x0000326d istore  0x00000002 , 0x00000005 
+ 00015703  0x0000326e fetch  0x00000001 , 0x0000090f 
+ 00015704  0x0000326f istore  0x00000001 , 0x00000005 
+ 00015705  0x00003270 rtn 
+ 00015706  0x0000327c call  0x00007dbc 
+ 00015707  0x0000327d ifetcht  0x00000002 , 0x00000006 
+ 00015708  0x0000327e setarg  0x000001a8 
+ 00015709  0x0000327f byteswap  0x0000003f , 0x0000003f 
+ 00015710  0x00003280 isub  0x00000002 , 0x0000003e 
+ 00015711  0x00003281 nrtn  0x00000005 
+ 00015712  0x00003282 ifetch  0x00000001 , 0x00000006 
+ 00015713  0x00003283 store  0x00000001 , 0x0000090f 
+ 00015714  0x00003284 branch  0x00007dba 
+ 00015715  0x00003288 arg  0x00004806 , 0x00000013 
+ 00015716  0x00003289 arg  0x00003d66 , 0x00000012 
+ 00015717  0x0000328a branch  0x000042e7 
+ 00015718  0x0000328e branch  0x00003e61 
+ 00015719  0x00003297 fetch  0x00000001 , 0x0000070b 
+ 00015720  0x00003298 beq  0x00000008 , 0x00003d92 
+ 00015721  0x00003299 beq  0x00000049 , 0x00003db1 
+ 00015722  0x0000329a beq  0x0000001b , 0x00003dbd 
+ 00015723  0x0000329b beq  0x0000001c , 0x00003dc4 
+ 00015724  0x0000329d beq  0x000000f2 , 0x00003d6e 
+ 00015725  0x0000329f rtn 
+ 00015726  0x000032a2 call  0x00003dec 
+ 00015727  0x000032a3 call  0x00003d83 
+ 00015728  0x000032a4 call  0x00003dc2 
+ 00015729  0x000032a5 setarg  0x00000080 
+ 00015730  0x000032a6 store  0x00000001 , 0x00000723 
+ 00015731  0x000032a7 setarg  0x000000f3 
+ 00015732  0x000032a8 istore  0x00000001 , 0x00000005 
+ 00015733  0x000032aa setarg  0x00000000 
+ 00015734  0x000032ab istore  0x00000001 , 0x00000005 
+ 00015735  0x000032ac fetch  0x00000002 , 0x0000070c 
+ 00015736  0x000032ad istore  0x00000002 , 0x00000005 
+ 00015737  0x000032af fetch  0x00000001 , 0x00000709 
+ 00015738  0x000032b0 arg  0x00000004 , 0x00000002 
+ 00015739  0x000032b1 isub  0x00000002 , 0x00000039 
+ 00015740  0x000032b2 arg  0x0000070e , 0x00000006 
+ 00015741  0x000032b3 call  0x00007cda 
+ 00015742  0x000032b4 fetch  0x00000001 , 0x00000709 
+ 00015743  0x000032b5 pincrease  0x00000001 
+ 00015744  0x000032b6 store  0x00000001 , 0x00000722 
+ 00015745  0x000032b9 arg  0x00000000 , 0x00000007 
+ 00015746  0x000032ba branch  0x00003806 
+ 00015747  0x000032bd fetch  0x00000001 , 0x0000070e 
+ 00015748  0x000032be rtn  0x00000034 
+ 00015749  0x000032bf sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00015750  0x000032c0 ncall  0x00003d90 , 0x00000002 
+ 00015751  0x000032c1 iforce  0x00000039 
+ 00015752  0x000032c2 arg  0x0000070f , 0x00000006 
+ 00015753  0x000032c3 add  0x00000011 , 0x00000002 , 0x00000005 
+ 00015754  0x000032c4 branch  0x00003d8b 
+ 00015755  0x000032c7 ifetch  0x00000002 , 0x00000006 
+ 00015756  0x000032c8 byteswap  0x0000003f , 0x0000003f 
+ 00015757  0x000032c9 istore  0x00000002 , 0x00000005 
+ 00015758  0x000032ca loop  0x00003d8b 
+ 00015759  0x000032cb rtn 
+ 00015760  0x000032cf setarg  0x00000008 
+ 00015761  0x000032d0 rtn 
+ 00015762  0x000032d3 jam  0x00000006 , 0x000047e4 
+ 00015763  0x000032d4 setarg  0x00000002 
+ 00015764  0x000032d5 store  0x00000001 , 0x00000723 
+ 00015765  0x000032d6 setarg  0x00000000 
+ 00015766  0x000032d7 istore  0x00000001 , 0x00000005 
+ 00015767  0x000032d8 setarg  0x000001a8 
+ 00015768  0x000032d9 istore  0x00000002 , 0x00000005 
+ 00015769  0x000032da setarg  0x00000000 
+ 00015770  0x000032db istore  0x00000002 , 0x00000005 
+ 00015771  0x000032dc setarg  0x00000001 
+ 00015772  0x000032dd istore  0x00000002 , 0x00000005 
+ 00015773  0x000032de setarg  0x00000005 
+ 00015774  0x000032df istore  0x00000002 , 0x00000005 
+ 00015775  0x000032e0 setarg  0x00000003 
+ 00015776  0x000032e1 istore  0x00000002 , 0x00000005 
+ 00015777  0x000032e2 setarg  0x00000000 
+ 00015778  0x000032e3 istore  0x00000002 , 0x00000005 
+ 00015779  0x000032e4 setarg  0x00000002 
+ 00015780  0x000032e5 istore  0x00000001 , 0x00000005 
+ 00015781  0x000032e6 setarg  0x00000002 
+ 00015782  0x000032e7 istore  0x00000001 , 0x00000005 
+ 00015783  0x000032e8 setarg  0x00000000 
+ 00015784  0x000032e9 istore  0x00000002 , 0x00000005 
+ 00015785  0x000032ea setarg  0x00001000 
+ 00015786  0x000032eb istore  0x00000002 , 0x00000005 
+ 00015787  0x000032ec setarg  0x000001a8 
+ 00015788  0x000032ed istore  0x00000004 , 0x00000005 
+ 00015789  0x000032ee setarg  0x000101a8 
+ 00015790  0x000032ef istore  0x00000004 , 0x00000005 
+ 00015791  0x000032f0 jam  0x0000001c , 0x00000722 
+ 00015792  0x000032f1 branch  0x000041b5 
+ 00015793  0x000032f5 jam  0x00000014 , 0x00004805 
+ 00015794  0x000032fa setarg  0x00000080 
+ 00015795  0x000032fb store  0x00000001 , 0x00000723 
+ 00015796  0x000032fc setarg  0x0000004a 
+ 00015797  0x000032fd istore  0x00000001 , 0x00000005 
+ 00015798  0x000032fe jam  0x00000002 , 0x00000722 
+ 00015799  0x000032ff branch  0x000041b5 
+ 00015800  0x00003302 arg  0x00004805 , 0x00000013 
+ 00015801  0x00003303 arg  0x00003dbb , 0x00000012 
+ 00015802  0x00003304 branch  0x000042e0 
+ 00015803  0x00003308 call  0x00003e50 
+ 00015804  0x0000330b branch  0x00006ca3 
+ 00015805  0x0000330f call  0x00003de2 
+ 00015806  0x00003310 fetch  0x00000002 , 0x0000484c 
+ 00015807  0x00003311 rtnbit1  0x00000002 
+ 00015808  0x00003312 call  0x00003dec 
+ 00015809  0x00003313 call  0x00003df5 
+ 00015810  0x00003315 fetch  0x00000002 , 0x00004848 
+ 00015811  0x00003316 branch  0x00007d79 
+ 00015812  0x0000331a call  0x00003de2 
+ 00015813  0x0000331b fetch  0x00000002 , 0x0000484c 
+ 00015814  0x0000331c rtnbit1  0x00000002 
+ 00015815  0x0000331d call  0x00003dec 
+ 00015816  0x0000331e fetcht  0x00000002 , 0x0000070e 
+ 00015817  0x0000331f rshift8  0x00000002 , 0x0000003f 
+ 00015818  0x00003320 rshift4  0x0000003f , 0x0000003f 
+ 00015819  0x00003321 beq  0x0000000c , 0x00003dd3 
+ 00015820  0x00003322 byteswap  0x00000002 , 0x00000002 
+ 00015821  0x00003324 call  0x00003dd8 
+ 00015822  0x00003325 nrtn  0x00000028 
+ 00015823  0x00003326 setarg  0x00000000 
+ 00015824  0x00003327 istore  0x00000002 , 0x00000011 
+ 00015825  0x00003328 fetch  0x00000002 , 0x00004848 
+ 00015826  0x00003329 branch  0x00007d79 
+ 00015827  0x0000332c setarg  0xffffffff 
+ 00015828  0x0000332d istore  0x00000008 , 0x00000011 
+ 00015829  0x0000332e istore  0x00000008 , 0x00000005 
+ 00015830  0x0000332f fetch  0x00000002 , 0x00004848 
+ 00015831  0x00003330 branch  0x00007d79 
+ 00015832  0x00003333 arg  0x00000008 , 0x00000039 
+ 00015833  0x00003335 ifetch  0x00000002 , 0x00000011 
+ 00015834  0x00003336 arg  0x0000ffff , 0x00000012 
+ 00015835  0x00003337 isub  0x00000012 , 0x0000003e 
+ 00015836  0x00003338 branch  0x00007dba , 0x00000005 
+ 00015837  0x00003339 isub  0x00000002 , 0x0000003e 
+ 00015838  0x0000333a branch  0x00007dba , 0x00000005 
+ 00015839  0x0000333c increase  0x00000002 , 0x00000011 
+ 00015840  0x0000333d loop  0x00003dd9 
+ 00015841  0x0000333e branch  0x00007dbc 
+ 00015842  0x00003342 setarg  0x00000080 
+ 00015843  0x00003343 store  0x00000001 , 0x00000723 
+ 00015844  0x00003344 setarg  0x0000001f 
+ 00015845  0x00003345 istore  0x00000001 , 0x00000005 
+ 00015846  0x00003346 setarg  0x00000000 
+ 00015847  0x00003347 istore  0x00000001 , 0x00000005 
+ 00015848  0x00003348 fetch  0x00000006 , 0x0000070c 
+ 00015849  0x00003349 istore  0x00000006 , 0x00000005 
+ 00015850  0x0000334a jam  0x00000009 , 0x00000722 
+ 00015851  0x0000334b branch  0x000041b5 
+ 00015852  0x0000334e call  0x00003e3e 
+ 00015853  0x0000334f add  0x00000011 , 0x00000006 , 0x00000011 
+ 00015854  0x00003350 fetch  0x00000002 , 0x0000070c 
+ 00015855  0x00003351 fetcht  0x00000002 , 0x00004800 
+ 00015856  0x00003352 byteswap  0x00000002 , 0x00000002 
+ 00015857  0x00003353 isub  0x00000002 , 0x0000003f 
+ 00015858  0x00003354 imul32  0x00000012 , 0x0000003f 
+ 00015859  0x00003355 iadd  0x00000011 , 0x00000011 
+ 00015860  0x00003356 rtn 
+ 00015861  0x00003359 fetcht  0x00000002 , 0x0000070e 
+ 00015862  0x0000335a arg  0x00000008 , 0x00000039 
+ 00015863  0x0000335c ifetch  0x00000002 , 0x00000011 
+ 00015864  0x0000335d branch  0x00003dff , 0x00000034 
+ 00015865  0x0000335e arg  0x0000ffff , 0x00000012 
+ 00015866  0x0000335f isub  0x00000012 , 0x0000003e 
+ 00015867  0x00003360 branch  0x00003dff , 0x00000005 
+ 00015868  0x00003361 increase  0x00000002 , 0x00000011 
+ 00015869  0x00003362 loop  0x00003df7 
+ 00015870  0x00003363 rtn 
+ 00015871  0x00003366 byteswap  0x00000002 , 0x00000002 
+ 00015872  0x00003367 istoret  0x00000002 , 0x00000011 
+ 00015873  0x00003368 rtn 
+ 00015874  0x0000336f call  0x00007396 
+ 00015875  0x00003370 call  0x0000739e 
+ 00015876  0x00003371 setarg  0x000039b1 
+ 00015877  0x00003372 store  0x00000002 , 0x00004824 
+ 00015878  0x00003374 setarg  0x00003e42 
+ 00015879  0x00003375 store  0x00000002 , 0x000043db 
+ 00015880  0x00003377 setarg  0x00004016 
+ 00015881  0x00003378 store  0x00000002 , 0x00004842 
+ 00015882  0x0000337a setarg  0x00003745 
+ 00015883  0x0000337b store  0x00000002 , 0x00004828 
+ 00015884  0x0000337d setarg  0x00003aa2 
+ 00015885  0x0000337e store  0x00000002 , 0x00004848 
+ 00015886  0x00003380 setarg  0x00003a92 
+ 00015887  0x00003381 store  0x00000002 , 0x00004846 
+ 00015888  0x00003383 setarg  0x00003e4a 
+ 00015889  0x00003384 store  0x00000002 , 0x000043e3 
+ 00015890  0x00003386 setarg  0x0000372e 
+ 00015891  0x00003387 store  0x00000002 , 0x00004826 
+ 00015892  0x00003389 setarg  0x00004090 
+ 00015893  0x0000338a store  0x00000002 , 0x000043df 
+ 00015894  0x0000338c setarg  0x000040e3 
+ 00015895  0x0000338d store  0x00000002 , 0x000043dd 
+ 00015896  0x0000338f setarg  0x00003ab6 
+ 00015897  0x00003390 store  0x00000002 , 0x00004853 
+ 00015898  0x00003392 setarg  0x00003abc 
+ 00015899  0x00003393 store  0x00000002 , 0x0000484a 
+ 00015900  0x00003394 call  0x00003ac3 
+ 00015901  0x00003396 jam  0x00000024 , 0x0000464a 
+ 00015902  0x00003397 call  0x00003817 
+ 00015903  0x0000339a bpatchx  0x000000ab , 0x00004035 
+ 00015904  0x0000339c setarg  0x00000428 
+ 00015905  0x0000339d store  0x00000002 , 0x000049b9 
+ 00015906  0x0000339e call  0x00003e58 
+ 00015907  0x000033a0 setarg  0x00000422 
+ 00015908  0x000033a1 store  0x00000002 , 0x00004a5e 
+ 00015909  0x000033a2 call  0x00003e5a 
+ 00015910  0x000033a4 setarg  0x00000a22 
+ 00015911  0x000033a5 store  0x00000002 , 0x00000a8d 
+ 00015912  0x000033a6 call  0x00003e5c 
+ 00015913  0x000033a7 call  0x00004071 
+ 00015914  0x000033ab call  0x00004071 
+ 00015915  0x000033ad call  0x00003a18 
+ 00015916  0x000033ae call  0x00003e3a 
+ 00015917  0x000033b0 fetch  0x00000001 , 0x000047ef 
+ 00015918  0x000033b1 beq  0x000000ff , 0x00003cd9 
+ 00015919  0x000033b2 call  0x00004291 
+ 00015920  0x000033b3 call  0x00003bbf 
+ 00015921  0x000033b4 call  0x00003bb1 
+ 00015922  0x000033b5 call  0x00003b99 
+ 00015923  0x000033b7 random  0x0000003f 
+ 00015924  0x000033b8 and  0x0000003f , 0x0000001f , 0x0000003f 
+ 00015925  0x000033b9 add  0x0000003f , 0x00000032 , 0x0000003f 
+ 00015926  0x000033ba store  0x00000002 , 0x00004804 
+ 00015927  0x000033bb add  0x0000003f , 0x00000005 , 0x0000003f 
+ 00015928  0x000033bc store  0x00000001 , 0x00004803 
+ 00015929  0x000033bd rtn 
+ 00015930  0x000033c2 fetch  0x00000006 , 0x0000480e 
+ 00015931  0x000033c3 call  0x00007cc0 
+ 00015932  0x000033c4 store  0x00000006 , 0x000042db 
+ 00015933  0x000033c5 rtn 
+ 00015934  0x000033c8 fetchr  0x00000039 , 0x00000001 , 0x0000484e 
+ 00015935  0x000033c9 fetchr  0x00000011 , 0x00000002 , 0x0000484f 
+ 00015936  0x000033ca fetchr  0x00000012 , 0x00000002 , 0x00004851 
+ 00015937  0x000033cb rtn 
+ 00015938  0x000033cf bpatchx  0x000000ac , 0x00004035 
+ 00015939  0x000033d0 call  0x0000387d 
+ 00015940  0x000033d1 call  0x00003aca 
+ 00015941  0x000033d2 call  0x000041d8 
+ 00015942  0x000033d3 call  0x0000396f 
+ 00015943  0x000033d4 call  0x00003b33 
+ 00015944  0x000033d5 call  0x00004060 
+ 00015945  0x000033d6 branch  0x00003995 
+ 00015946  0x000033da call  0x00003acc 
+ 00015947  0x000033db call  0x00003db8 
+ 00015948  0x000033dc call  0x00003d63 
+ 00015949  0x000033df call  0x00003794 
+ 00015950  0x000033e0 call  0x00003791 
+ 00015951  0x000033e1 branch  0x00004289 
+ 00015952  0x000033e5 call  0x00003e53 
+ 00015953  0x000033e6 fetch  0x00000002 , 0x00004853 
+ 00015954  0x000033e7 branch  0x00007d79 
+ 00015955  0x000033ec fetch  0x00000001 , 0x00004857 
+ 00015956  0x000033ed rtnne  0x00000002 
+ 00015957  0x000033ee setarg  0x0001d000 
+ 00015958  0x000033ef store  0x00000003 , 0x00004419 
+ 00015959  0x000033f0 branch  0x00006bfa 
+ 00015960  0x000033f5 call  0x00004292 
+ 00015961  0x000033f6 branch  0x000078ad 
+ 00015962  0x000033f9 call  0x0000396c 
+ 00015963  0x000033fa branch  0x000078ad 
+ 00015964  0x000033fd call  0x00003e5e 
+ 00015965  0x000033fe branch  0x000078ad 
+ 00015966  0x00003401 setarg  0x00000a8d 
+ 00015967  0x00003402 store  0x00000002 , 0x000043fb 
+ 00015968  0x00003403 rtn 
+ 00015969  0x00003406 jam  0x00000001 , 0x00004388 
+ 00015970  0x00003407 setarg  0x00001770 
+ 00015971  0x00003408 store  0x00000002 , 0x0000464c 
+ 00015972  0x00003409 fetch  0x00000001 , 0x000047e7 
+ 00015973  0x0000340a set0  0x00000000 , 0x0000003f 
+ 00015974  0x0000340b store  0x00000001 , 0x000047e7 
+ 00015975  0x0000340c jam  0x00000001 , 0x000047e4 
+ 00015976  0x0000340d jam  0x00000000 , 0x000047e5 
+ 00015977  0x0000340e jam  0x00000000 , 0x0000474d 
+ 00015978  0x0000340f branch  0x00003b2f 
+ 00015979  0x00003414 bpatchx  0x000000ad , 0x00004035 
+ 00015980  0x00003415 fetch  0x00000001 , 0x0000092b 
+ 00015981  0x00003416 bbit1  0x00000007 , 0x00003e70 
+ 00015982  0x00003417 jam  0x00000000 , 0x00004969 
+ 00015983  0x00003418 branch  0x0000417d 
+ 00015984  0x0000341c call  0x00003e76 
+ 00015985  0x0000341d rtn  0x00000028 
+ 00015986  0x0000341e call  0x00003e97 
+ 00015987  0x0000341f rtn  0x00000028 
+ 00015988  0x00003420 call  0x00003ea7 
+ 00015989  0x00003421 branch  0x00003eb4 
+ 00015990  0x00003426 call  0x00007dbc 
+ 00015991  0x00003427 arg  0x00000003 , 0x00000039 
+ 00015992  0x00003428 arg  0x0000092c , 0x00000011 
+ 00015993  0x00003429 call  0x00007cb1 
+ 00015994  0x0000342a fetchr  0x00000011 , 0x00000003 , 0x0000092c 
+ 00015995  0x0000342b and  0x00000011 , 0x0000001f , 0x00000002 
+ 00015996  0x0000342c storet  0x00000001 , 0x0000485c 
+ 00015997  0x0000342d fetch  0x00000001 , 0x00004863 
+ 00015998  0x0000342e isub  0x00000002 , 0x0000003e 
+ 00015999  0x0000342f nbranch  0x00007dba , 0x00000002 
+ 00016000  0x00003431 rshift4  0x00000011 , 0x0000003f 
+ 00016001  0x00003432 rshift  0x0000003f , 0x0000003f 
+ 00016002  0x00003433 and  0x0000003f , 0x0000001f , 0x00000002 
+ 00016003  0x00003434 storet  0x00000001 , 0x0000485b 
+ 00016004  0x00003435 rshift4  0x0000003f , 0x0000003f 
+ 00016005  0x00003436 rshift  0x0000003f , 0x0000003f 
+ 00016006  0x00003437 arg  0x00001fff , 0x00000011 
+ 00016007  0x00003438 iand  0x00000011 , 0x00000002 
+ 00016008  0x00003439 copy  0x0000003f , 0x00000012 
+ 00016009  0x0000343a fetch  0x00000002 , 0x00004859 
+ 00016010  0x0000343b isub  0x00000002 , 0x0000003e 
+ 00016011  0x0000343c ncall  0x00003e93 , 0x00000005 
+ 00016012  0x0000343d storet  0x00000002 , 0x00004859 
+ 00016013  0x0000343e rshift8  0x00000012 , 0x0000003f 
+ 00016014  0x0000343f rshift4  0x0000003f , 0x0000003f 
+ 00016015  0x00003440 rshift  0x0000003f , 0x0000003f 
+ 00016016  0x00003441 store  0x00000001 , 0x00004858 
+ 00016017  0x00003442 store  0x00000001 , 0x00004969 
+ 00016018  0x00003443 rtn 
+ 00016019  0x00003446 setarg  0x00000000 
+ 00016020  0x00003447 store  0x00000004 , 0x0000485d 
+ 00016021  0x00003448 jam  0x00000000 , 0x00004862 
+ 00016022  0x00003449 rtn 
+ 00016023  0x0000344f call  0x00007dbc 
+ 00016024  0x00003450 fetch  0x00000001 , 0x0000485b 
+ 00016025  0x00003451 copy  0x0000003f , 0x00000007 
+ 00016026  0x00003452 fetch  0x00000004 , 0x0000485d 
+ 00016027  0x00003453 qisolate1  0x0000003f 
+ 00016028  0x00003454 branch  0x00007dba , 0x00000001 
+ 00016029  0x00003455 qset1  0x0000003f 
+ 00016030  0x00003456 store  0x00000004 , 0x0000485d 
+ 00016031  0x00003457 fetcht  0x00000001 , 0x0000485c 
+ 00016032  0x00003458 add  0x00000002 , 0x00000001 , 0x00000039 
+ 00016033  0x0000345a add  0x00000039 , 0xffffffff , 0x00000007 
+ 00016034  0x0000345b qisolate1  0x0000003f 
+ 00016035  0x0000345c nrtn  0x00000001 
+ 00016036  0x0000345d loop  0x00003ea1 
+ 00016037  0x0000345e jam  0x00000001 , 0x00004861 
+ 00016038  0x0000345f rtn 
+ 00016039  0x00003464 fetch  0x00000001 , 0x00000921 
+ 00016040  0x00003465 pincrease  0xfffffffa 
+ 00016041  0x00003466 copy  0x0000003f , 0x00000039 
+ 00016042  0x00003467 fetcht  0x00000001 , 0x00004862 
+ 00016043  0x00003468 iadd  0x00000002 , 0x00000002 
+ 00016044  0x00003469 storet  0x00000001 , 0x00004862 
+ 00016045  0x0000346a fetch  0x00000002 , 0x00004864 
+ 00016046  0x0000346b iforce  0x00000005 
+ 00016047  0x0000346c fetch  0x00000001 , 0x0000485b 
+ 00016048  0x0000346d mul32  0x0000003f , 0x0000000c , 0x0000003f 
+ 00016049  0x0000346e iadd  0x00000005 , 0x00000005 
+ 00016050  0x0000346f arg  0x0000092f , 0x00000006 
+ 00016051  0x00003470 branch  0x00007cda 
+ 00016052  0x00003474 fetch  0x00000001 , 0x00004861 
+ 00016053  0x00003475 rtneq  0x00000000 
+ 00016054  0x00003476 setarg  0x00000000 
+ 00016055  0x00003477 store  0x00000005 , 0x0000485d 
+ 00016056  0x00003478 fetcht  0x00000002 , 0x00000925 
+ 00016057  0x00003479 byteswap  0x00000002 , 0x00000002 
+ 00016058  0x0000347a setarg  0x0000e000 
+ 00016059  0x0000347b iand  0x00000002 , 0x00000002 
+ 00016060  0x0000347c fetch  0x00000002 , 0x00004859 
+ 00016061  0x0000347d ior  0x00000002 , 0x0000003f 
+ 00016062  0x0000347e byteswap  0x0000003f , 0x0000003f 
+ 00016063  0x0000347f store  0x00000002 , 0x00000925 
+ 00016064  0x00003480 branch  0x00004187 
+ 00016065  0x00003485 fetch  0x00000001 , 0x00000722 
+ 00016066  0x00003486 add  0x0000003f , 0x00000001 , 0x00000002 
+ 00016067  0x00003487 copy  0x0000003f , 0x00000039 
+ 00016068  0x00003488 storet  0x00000001 , 0x00000916 
+ 00016069  0x00003489 fetch  0x00000001 , 0x0000092b 
+ 00016070  0x0000348a set0  0x00000007 , 0x0000003f 
+ 00016071  0x0000348b store  0x00000001 , 0x000049a1 
+ 00016072  0x0000348c arg  0x00000723 , 0x00000006 
+ 00016073  0x0000348d call  0x00007ccc 
+ 00016074  0x0000348e branch  0x00004052 
+ 00016075  0x00003494 add  0x00000011 , 0x00000004 , 0x00000002 
+ 00016076  0x00003495 copy  0x00000011 , 0x00000039 
+ 00016077  0x00003496 storet  0x00000001 , 0x00000916 
+ 00016078  0x00003497 arg  0x000049a5 , 0x00000005 
+ 00016079  0x00003498 call  0x00007ccc 
+ 00016080  0x00003499 fetch  0x00000001 , 0x0000092b 
+ 00016081  0x0000349a set1  0x00000007 , 0x0000003f 
+ 00016082  0x0000349b store  0x00000001 , 0x000049a1 
+ 00016083  0x0000349c branch  0x00004052 
+ 00016084  0x000034a2 fetch  0x00000001 , 0x0000070b 
+ 00016085  0x000034a4 beq  0x00000001 , 0x00003edb 
+ 00016086  0x000034a5 beq  0x00000002 , 0x00003ee1 
+ 00016087  0x000034a6 beq  0x00000042 , 0x00003ee6 
+ 00016088  0x000034a7 beq  0x0000004c , 0x00003ee9 
+ 00016089  0x000034a8 beq  0x0000005e , 0x00003eef 
+ 00016090  0x000034a9 rtn 
+ 00016091  0x000034ad arg  0x00003edd , 0x00000013 
+ 00016092  0x000034ae branch  0x00003f53 
+ 00016093  0x000034b2 fetch  0x00000002 , 0x00004830 
+ 00016094  0x000034b3 call  0x00007d79 
+ 00016095  0x000034b4 store  0x00000001 , 0x0000070c 
+ 00016096  0x000034b5 branch  0x0000376c 
+ 00016097  0x000034b9 arg  0x00003ee3 , 0x00000013 
+ 00016098  0x000034ba branch  0x00003f53 
+ 00016099  0x000034bc call  0x0000376c 
+ 00016100  0x000034bd fetch  0x00000002 , 0x00004832 
+ 00016101  0x000034be branch  0x00007d79 
+ 00016102  0x000034c3 call  0x00003784 
+ 00016103  0x000034c4 fetch  0x00000002 , 0x00004834 
+ 00016104  0x000034c5 branch  0x00007d79 
+ 00016105  0x000034c9 fetch  0x00000002 , 0x0000070c 
+ 00016106  0x000034ca call  0x00003efe 
+ 00016107  0x000034cb store  0x00000001 , 0x00000711 
+ 00016108  0x000034cc call  0x00003774 
+ 00016109  0x000034cd fetch  0x00000002 , 0x00004836 
+ 00016110  0x000034ce branch  0x00007d79 
+ 00016111  0x000034d2 fetch  0x00000002 , 0x00004866 
+ 00016112  0x000034d3 fetcht  0x00000002 , 0x0000070e 
+ 00016113  0x000034d4 isub  0x00000002 , 0x0000003e 
+ 00016114  0x000034d5 rtn  0x00000005 
+ 00016115  0x000034d7 fetch  0x00000002 , 0x0000070e 
+ 00016116  0x000034d8 call  0x00003f10 
+ 00016117  0x000034d9 store  0x00000001 , 0x00000716 
+ 00016118  0x000034db fetch  0x00000002 , 0x0000070e 
+ 00016119  0x000034dc store  0x00000002 , 0x00004866 
+ 00016120  0x000034dd fetch  0x00000002 , 0x00004838 
+ 00016121  0x000034de call  0x00007d79 
+ 00016122  0x000034df storet  0x00000002 , 0x0000070c 
+ 00016123  0x000034e0 call  0x0000377c 
+ 00016124  0x000034e1 fetch  0x00000002 , 0x0000483a 
+ 00016125  0x000034e2 branch  0x00007d79 
+ 00016126  0x000034e8 rtn  0x00000034 
+ 00016127  0x000034e9 mul32  0x0000003f , 0x00000064 , 0x0000003f 
+ 00016128  0x000034ea arg  0x0000ffff , 0x00000002 
+ 00016129  0x000034eb idiv  0x00000002 
+ 00016130  0x000034ec call  0x00007d62 
+ 00016131  0x000034ed remainder  0x00000002 
+ 00016132  0x000034ee rshift8  0x00000002 , 0x00000002 
+ 00016133  0x000034ef quotient  0x0000003f 
+ 00016134  0x000034f0 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00016135  0x000034f1 nrtn  0x00000005 
+ 00016136  0x000034f2 pincrease  0x00000001 
+ 00016137  0x000034f3 rtn 
+ 00016138  0x000034f9 arg  0x0000ffff , 0x0000003f 
+ 00016139  0x000034fa imul32  0x00000002 , 0x0000003f 
+ 00016140  0x000034fb div  0x0000003f , 0x00000064 
+ 00016141  0x000034fc call  0x00007d62 
+ 00016142  0x000034fd quotient  0x00000002 
+ 00016143  0x000034fe rtn 
+ 00016144  0x00003503 arg  0x00000320 , 0x00000002 
+ 00016145  0x00003504 isub  0x00000002 , 0x00000011 
+ 00016146  0x00003505 call  0x00003f1f 
+ 00016147  0x00003506 copy  0x00000011 , 0x0000003f 
+ 00016148  0x00003507 idiv  0x00000002 
+ 00016149  0x00003508 call  0x00007d62 
+ 00016150  0x00003509 quotient  0x0000003f 
+ 00016151  0x0000350a rtn 
+ 00016152  0x00003510 copy  0x00000002 , 0x00000011 
+ 00016153  0x00003511 call  0x00003f1f 
+ 00016154  0x00003512 copy  0x00000011 , 0x0000003f 
+ 00016155  0x00003513 imul32  0x00000002 , 0x0000003f 
+ 00016156  0x00003514 arg  0x00000320 , 0x00000002 
+ 00016157  0x00003515 iadd  0x00000002 , 0x00000002 
+ 00016158  0x00003516 rtn 
+ 00016159  0x00003519 setarg  0x00004e20 
+ 00016160  0x0000351a arg  0x00000320 , 0x00000002 
+ 00016161  0x0000351b isub  0x00000002 , 0x0000003f 
+ 00016162  0x0000351c div  0x0000003f , 0x00000064 
+ 00016163  0x0000351d call  0x00007d62 
+ 00016164  0x0000351e quotient  0x00000002 
+ 00016165  0x0000351f rtn 
+ 00016166  0x00003525 arg  0x00000000 , 0x00000007 
+ 00016167  0x00003526 fetchr  0x00000039 , 0x00000001 , 0x0000484e 
+ 00016168  0x00003527 call  0x00007dbc 
+ 00016169  0x00003528 fetch  0x00000002 , 0x00004800 
+ 00016170  0x0000352a isub  0x00000002 , 0x0000003e 
+ 00016171  0x0000352b branch  0x00003f32 , 0x00000005 
+ 00016172  0x0000352c byteswap  0x0000003f , 0x0000003f 
+ 00016173  0x0000352d pincrease  0x00000001 
+ 00016174  0x0000352e byteswap  0x0000003f , 0x0000003f 
+ 00016175  0x0000352f increase  0x00000001 , 0x00000007 
+ 00016176  0x00003530 loop  0x00003f2a 
+ 00016177  0x00003531 rtn 
+ 00016178  0x00003534 jam  0x00000000 , 0x00004868 
+ 00016179  0x00003535 storer  0x00000007 , 0x00000001 , 0x00004869 
+ 00016180  0x00003536 call  0x00003f6e 
+ 00016181  0x00003537 branch  0x00007dba 
+ 00016182  0x0000353b arg  0x00000000 , 0x00000007 
+ 00016183  0x0000353c arg  0x00000000 , 0x00000013 
+ 00016184  0x0000353d call  0x00003e3e 
+ 00016185  0x0000353e call  0x00007dbc 
+ 00016186  0x00003540 fetch  0x00000002 , 0x0000484c 
+ 00016187  0x00003541 bbit0  0x00000002 , 0x00003f49 
+ 00016188  0x00003542 ifetch  0x00000002 , 0x00000011 
+ 00016189  0x00003543 isub  0x00000002 , 0x0000003e 
+ 00016190  0x00003544 call  0x00003f47 , 0x00000005 
+ 00016191  0x00003546 copy  0x00000012 , 0x0000003f 
+ 00016192  0x00003547 iadd  0x00000011 , 0x00000011 
+ 00016193  0x00003548 increase  0x00000001 , 0x00000007 
+ 00016194  0x00003549 loop  0x00003f3a 
+ 00016195  0x0000354a copy  0x00000013 , 0x0000003f 
+ 00016196  0x0000354b rtn  0x00000034 
+ 00016197  0x0000354c store  0x00000001 , 0x00004868 
+ 00016198  0x0000354d branch  0x00007dba 
+ 00016199  0x00003550 qset1  0x00000013 
+ 00016200  0x00003551 rtn 
+ 00016201  0x00003554 add  0x00000011 , 0x00000006 , 0x00000006 
+ 00016202  0x00003555 arg  0x00000008 , 0x00000030 
+ 00016203  0x00003557 ifetch  0x00000002 , 0x00000006 
+ 00016204  0x00003558 isub  0x00000002 , 0x0000003e 
+ 00016205  0x00003559 branch  0x00003f51 , 0x00000005 
+ 00016206  0x0000355a increase  0xffffffff , 0x00000030 
+ 00016207  0x0000355b branch  0x00003f3f , 0x00000005 
+ 00016208  0x0000355c branch  0x00003f4b 
+ 00016209  0x0000355f call  0x00003f47 
+ 00016210  0x00003560 branch  0x00003f3f 
+ 00016211  0x00003563 arg  0x00000000 , 0x00000007 
+ 00016212  0x00003564 fetch  0x00000001 , 0x00004868 
+ 00016213  0x00003565 branch  0x00003f5f , 0x00000034 
+ 00016214  0x00003566 copy  0x0000003f , 0x00000012 
+ 00016215  0x00003567 fetchr  0x00000039 , 0x00000001 , 0x0000484e 
+ 00016216  0x00003569 storer  0x00000007 , 0x00000001 , 0x00004869 
+ 00016217  0x0000356b qisolate1  0x00000012 
+ 00016218  0x0000356c call  0x00003f5f , 0x00000001 
+ 00016219  0x0000356d fetchr  0x00000007 , 0x00000001 , 0x00004869 
+ 00016220  0x0000356e increase  0x00000001 , 0x00000007 
+ 00016221  0x0000356f loop  0x00003f58 
+ 00016222  0x00003570 rtn 
+ 00016223  0x00003573 call  0x00003f64 
+ 00016224  0x00003574 call  0x00003f6e 
+ 00016225  0x00003575 copy  0x00000013 , 0x0000003f 
+ 00016226  0x00003576 call  0x00007d79 
+ 00016227  0x00003577 branch  0x00003f69 
+ 00016228  0x0000357a storer  0x00000039 , 0x00000002 , 0x00000917 
+ 00016229  0x0000357b storer  0x00000011 , 0x00000002 , 0x00000919 
+ 00016230  0x0000357c storer  0x00000012 , 0x00000002 , 0x0000091b 
+ 00016231  0x0000357d storer  0x00000013 , 0x00000002 , 0x0000091d 
+ 00016232  0x0000357e rtn 
+ 00016233  0x00003581 fetchr  0x00000039 , 0x00000002 , 0x00000917 
+ 00016234  0x00003582 fetchr  0x00000011 , 0x00000002 , 0x00000919 
+ 00016235  0x00003583 fetchr  0x00000012 , 0x00000002 , 0x0000091b 
+ 00016236  0x00003584 fetchr  0x00000013 , 0x00000002 , 0x0000091d 
+ 00016237  0x00003585 rtn 
+ 00016238  0x00003589 bpatchx  0x000000ae , 0x00004035 
+ 00016239  0x0000358a fetch  0x00000002 , 0x00004800 
+ 00016240  0x0000358b byteswap  0x0000003f , 0x0000003f 
+ 00016241  0x0000358c iadd  0x00000007 , 0x0000003f 
+ 00016242  0x0000358d byteswap  0x0000003f , 0x0000003f 
+ 00016243  0x0000358e store  0x00000002 , 0x00004995 
+ 00016244  0x0000358f call  0x00003e3e 
+ 00016245  0x00003590 copy  0x00000007 , 0x0000003f 
+ 00016246  0x00003591 imul32  0x00000012 , 0x0000003f 
+ 00016247  0x00003592 iadd  0x00000011 , 0x00000011 
+ 00016248  0x00003593 add  0x00000011 , 0x00000017 , 0x00000006 
+ 00016249  0x00003594 ifetch  0x00000002 , 0x00000006 
+ 00016250  0x00003595 store , 0x00000002 , 0x000043fb 
+ 00016251  0x00003596 rtn 
+ 00016252  0x0000359c jam  0x00000000 , 0x00000951 
+ 00016253  0x000035a0 sub  0x00000002 , 0x0000000c , 0x0000003e 
+ 00016254  0x000035a1 rtn  0x00000002 
+ 00016255  0x000035a2 sub  0x00000002 , 0x0000001e , 0x0000003e 
+ 00016256  0x000035a3 nrtn  0x00000002 
+ 00016257  0x000035a4 bpatchx  0x000000af , 0x00004035 
+ 00016258  0x000035a5 call  0x0000400e 
+ 00016259  0x000035a6 call  0x00003f8c 
+ 00016260  0x000035a7 nrtn  0x00000028 
+ 00016261  0x000035a8 call  0x00003fdd 
+ 00016262  0x000035a9 nrtn  0x00000028 
+ 00016263  0x000035aa call  0x00003bcf 
+ 00016264  0x000035ab call  0x00003fa1 
+ 00016265  0x000035ac nrtn  0x00000028 
+ 00016266  0x000035ad call  0x00003fb2 
+ 00016267  0x000035af branch  0x00003fb7 
+ 00016268  0x000035b2 call  0x00007dba 
+ 00016269  0x000035b3 fetch  0x00000001 , 0x00000921 
+ 00016270  0x000035b4 arg  0x00000925 , 0x00000006 
+ 00016271  0x000035b5 iadd  0x00000006 , 0x00000006 
+ 00016272  0x000035b6 ifetch  0x00000004 , 0x00000006 
+ 00016273  0x000035b7 ifetcht  0x00000004 , 0x00000006 
+ 00016274  0x000035b8 ixor  0x00000002 , 0x00000002 
+ 00016275  0x000035b9 arg  0x00000010 , 0x00000039 
+ 00016276  0x000035ba arg  0x000009fd , 0x00000006 
+ 00016277  0x000035bc ifetch  0x00000004 , 0x00000006 
+ 00016278  0x000035bd isub  0x00000002 , 0x0000003e 
+ 00016279  0x000035be branch  0x00007dbc , 0x00000005 
+ 00016280  0x000035bf loop  0x00003f95 
+ 00016281  0x000035c0 fetch  0x00000001 , 0x0000486a 
+ 00016282  0x000035c1 pincrease  0x00000004 
+ 00016283  0x000035c2 arg  0x000009fd , 0x00000005 
+ 00016284  0x000035c3 iadd  0x00000005 , 0x00000005 
+ 00016285  0x000035c4 istoret  0x00000004 , 0x00000005 
+ 00016286  0x000035c5 and  0x0000003f , 0x0000003f , 0x0000003f 
+ 00016287  0x000035c6 store  0x00000001 , 0x0000486a 
+ 00016288  0x000035c7 rtn 
+ 00016289  0x000035ca call  0x00007dba 
+ 00016290  0x000035cb fetcht  0x00000005 , 0x00000924 
+ 00016291  0x000035cc arg  0x00000010 , 0x00000039 
+ 00016292  0x000035cd arg  0x00000a3d , 0x00000006 
+ 00016293  0x000035cf ifetch  0x00000005 , 0x00000006 
+ 00016294  0x000035d0 isub  0x00000002 , 0x0000003e 
+ 00016295  0x000035d1 branch  0x00007dbc , 0x00000005 
+ 00016296  0x000035d2 loop  0x00003fa5 
+ 00016297  0x000035d3 fetch  0x00000001 , 0x0000486b 
+ 00016298  0x000035d4 pincrease  0x00000001 
+ 00016299  0x000035d5 and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00016300  0x000035d6 store  0x00000001 , 0x0000486b 
+ 00016301  0x000035d7 mul32  0x0000003f , 0x00000005 , 0x0000003f 
+ 00016302  0x000035d8 arg  0x00000a3d , 0x00000005 
+ 00016303  0x000035d9 iadd  0x00000005 , 0x00000005 
+ 00016304  0x000035da istoret  0x00000005 , 0x00000005 
+ 00016305  0x000035db rtn 
+ 00016306  0x000035de fetch  0x00000001 , 0x00000951 
+ 00016307  0x000035df rtneq  0x00000000 
+ 00016308  0x000035e0 fetch  0x00000002 , 0x00000927 
+ 00016309  0x000035e1 store  0x00000002 , 0x0000486c 
+ 00016310  0x000035e2 rtn 
+ 00016311  0x000035ef call  0x00004005 
+ 00016312  0x000035f0 fetch  0x00000001 , 0x00000921 
+ 00016313  0x000035f1 arg  0x00000929 , 0x00000002 
+ 00016314  0x000035f2 call  0x00003ca7 
+ 00016315  0x000035f3 nrtn  0x00000005 
+ 00016316  0x000035f7 bpatchx  0x000000b0 , 0x00004036 
+ 00016317  0x000035f8 fetch  0x00000001 , 0x00000951 
+ 00016318  0x000035f9 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00016319  0x000035fa call  0x00004106 , 0x00000005 
+ 00016320  0x000035fb fetcht  0x00000002 , 0x00000929 
+ 00016321  0x000035fc call  0x00003f26 
+ 00016322  0x000035fd call  0x00003fcf , 0x00000028 
+ 00016323  0x000035fe branch  0x00003fea , 0x00000028 
+ 00016324  0x000035ff arg  0x0000001d , 0x00000039 
+ 00016325  0x00003600 arg  0x000007ab , 0x00000005 
+ 00016326  0x00003601 arg  0x00000922 , 0x00000006 
+ 00016327  0x00003602 call  0x00007cda 
+ 00016328  0x00003603 call  0x00003fd3 
+ 00016329  0x00003604 arg  0x0000001d , 0x00000039 
+ 00016330  0x00003605 arg  0x000007ab , 0x00000006 
+ 00016331  0x00003606 arg  0x00000922 , 0x00000005 
+ 00016332  0x00003607 call  0x00007cda 
+ 00016333  0x00003608 fetch  0x00000002 , 0x00004842 
+ 00016334  0x00003609 branch  0x00007d79 
+ 00016335  0x0000360c jam  0x00000001 , 0x00000952 
+ 00016336  0x0000360d fetch  0x00000002 , 0x00004995 
+ 00016337  0x0000360e store  0x00000002 , 0x00000953 
+ 00016338  0x0000360f rtn 
+ 00016339  0x00003612 call  0x00003f36 
+ 00016340  0x00003613 branch  0x00003fea , 0x00000028 
+ 00016341  0x00003614 jam  0x000000ff , 0x00004868 
+ 00016342  0x00003615 setarg  0x0000ffcf 
+ 00016343  0x00003616 isub  0x00000002 , 0x0000003e 
+ 00016344  0x00003617 branch  0x00003fea , 0x00000005 
+ 00016345  0x00003618 setarg  0x0000ffff 
+ 00016346  0x00003619 isub  0x00000002 , 0x0000003e 
+ 00016347  0x0000361a branch  0x00003fea , 0x00000005 
+ 00016348  0x0000361b rtn 
+ 00016349  0x0000361f call  0x00007dbc 
+ 00016350  0x00003620 fetcht  0x00000001 , 0x00000922 
+ 00016351  0x00003621 rshift4  0x00000002 , 0x0000003f 
+ 00016352  0x00003622 rshift3  0x0000003f , 0x0000003f 
+ 00016353  0x00003623 fetchr  0x00000011 , 0x00000001 , 0x00004871 
+ 00016354  0x00003624 and  0x00000011 , 0x00000001 , 0x00000011 
+ 00016355  0x00003625 isub  0x00000011 , 0x0000003e 
+ 00016356  0x00003626 nrtn  0x00000005 
+ 00016357  0x00003627 and  0x00000002 , 0x0000007f , 0x00000002 
+ 00016358  0x00003628 fetch  0x00000001 , 0x0000474d 
+ 00016359  0x00003629 isub  0x00000002 , 0x0000003e 
+ 00016360  0x0000362a nrtn  0x00000005 
+ 00016361  0x0000362b branch  0x00007dba 
+ 00016362  0x00003630 arg  0x00004872 , 0x00000011 
+ 00016363  0x00003631 arg  0x0000000a , 0x00000039 
+ 00016364  0x00003633 fetcht  0x00000002 , 0x00000927 
+ 00016365  0x00003634 ifetch  0x00000002 , 0x00000011 
+ 00016366  0x00003636 branch  0x00003ff4 , 0x00000034 
+ 00016367  0x00003638 isub  0x00000002 , 0x0000003e 
+ 00016368  0x0000363a branch  0x00003ff5 , 0x00000005 
+ 00016369  0x0000363b increase  0x00000005 , 0x00000011 
+ 00016370  0x0000363c loop  0x00003fec 
+ 00016371  0x0000363d arg  0x00004872 , 0x00000011 
+ 00016372  0x00003640 istoret  0x00000002 , 0x00000011 
+ 00016373  0x00003642 storet  0x00000002 , 0x0000094c 
+ 00016374  0x00003644 add  0x00000011 , 0x00000002 , 0x00000013 
+ 00016375  0x00003645 ifetch  0x00000003 , 0x00000013 
+ 00016376  0x00003646 store  0x00000003 , 0x0000094e 
+ 00016377  0x00003647 branch  0x00003ffa 
+ 00016378  0x0000364d call  0x00004002 
+ 00016379  0x0000364f fetch  0x00000003 , 0x0000094e 
+ 00016380  0x00003650 fetcht  0x00000003 , 0x00000924 
+ 00016381  0x00003651 isub  0x00000002 , 0x0000003e 
+ 00016382  0x00003652 rtn  0x00000002 
+ 00016383  0x00003653 istoret  0x00000003 , 0x00000013 
+ 00016384  0x00003654 call  0x00004002 
+ 00016385  0x00003655 branch  0x00003e6b 
+ 00016386  0x00003658 arg  0x00000924 , 0x00000011 
+ 00016387  0x00003659 arg  0x00000003 , 0x00000039 
+ 00016388  0x0000365a branch  0x00007cb1 
+ 00016389  0x0000365f call  0x00004008 
+ 00016390  0x00003661 arg  0x0000475e , 0x00000006 
+ 00016391  0x00003662 branch  0x0000735f 
+ 00016392  0x00003664 arg  0x0000093f , 0x00000005 
+ 00016393  0x00003665 setarg  0x00000000 
+ 00016394  0x00003666 istore  0x00000001 , 0x00000005 
+ 00016395  0x00003667 fetch  0x00000006 , 0x00000923 
+ 00016396  0x00003668 istore  0x00000008 , 0x00000005 
+ 00016397  0x00003669 branch  0x00004069 
+ 00016398  0x0000366d add  0x00000002 , 0xfffffff4 , 0x0000003f 
+ 00016399  0x00003677 store  0x00000001 , 0x00000921 
+ 00016400  0x00003678 arg  0x0000001d , 0x00000039 
+ 00016401  0x00003679 arg  0x00000922 , 0x00000005 
+ 00016402  0x0000367a call  0x00007ca1 
+ 00016403  0x0000367b add  0x00000002 , 0xffffffff , 0x00000039 
+ 00016404  0x0000367c arg  0x00000922 , 0x00000005 
+ 00016405  0x0000367d branch  0x00007ccc 
+ 00016406  0x00003680 call  0x0000406e 
+ 00016407  0x00003681 call  0x00004036 
+ 00016408  0x00003682 nrtn  0x00000028 
+ 00016409  0x00003683 call  0x0000404a 
+ 00016410  0x00003684 jam  0x0000001e , 0x00000787 
+ 00016411  0x00003685 fetch  0x00000001 , 0x00000921 
+ 00016412  0x00003686 add  0x0000003f , 0x0000000d , 0x00000002 
+ 00016413  0x00003687 storet  0x00000001 , 0x00000789 
+ 00016414  0x00003688 increase  0xffffffff , 0x00000002 
+ 00016415  0x00003689 istoret  0x00000001 , 0x00000005 
+ 00016416  0x0000368a setarg  0x0000002a 
+ 00016417  0x0000368b istore  0x00000001 , 0x00000005 
+ 00016418  0x0000368c add  0x00000002 , 0xffffffff , 0x00000039 
+ 00016419  0x0000368d fetch  0x00000007 , 0x00000922 
+ 00016420  0x0000368e arg  0x00000922 , 0x00000006 
+ 00016421  0x0000368f call  0x00007cda 
+ 00016422  0x00003690 arg  0x00000787 , 0x00000011 
+ 00016423  0x00003691 call  0x000078b2 
+ 00016424  0x00003692 call  0x0000402b 
+ 00016425  0x00003693 nrtn  0x00000028 
+ 00016426  0x00003694 branch  0x00003961 
+ 00016427  0x00003697 fetcht  0x00000002 , 0x000007b2 
+ 00016428  0x00003699 call  0x00007dbc 
+ 00016429  0x0000369a fetch  0x00000001 , 0x00000978 
+ 00016430  0x0000369b rtn  0x00000034 
+ 00016431  0x0000369c iforce  0x00000039 
+ 00016432  0x0000369d arg  0x00000968 , 0x00000006 
+ 00016433  0x0000369f ifetch  0x00000002 , 0x00000006 
+ 00016434  0x000036a0 isub  0x00000002 , 0x0000003e 
+ 00016435  0x000036a1 branch  0x00007dba , 0x00000005 
+ 00016436  0x000036a2 loop  0x00004031 
+ 00016437  0x000036a3 rtn 
+ 00016438  0x000036a7 call  0x00007dbc 
+ 00016439  0x000036a8 fetch  0x00000001 , 0x00000951 
+ 00016440  0x000036a9 rtneq  0x00000001 
+ 00016441  0x000036aa fetch  0x00000002 , 0x0000484c 
+ 00016442  0x000036ab rtnbit1  0x00000001 
+ 00016443  0x000036ac fetch  0x00000001 , 0x000047e4 
+ 00016444  0x000036ad rtnne  0x00000000 
+ 00016445  0x000036ae fetcht  0x00000002 , 0x00000927 
+ 00016446  0x000036af call  0x00003f26 
+ 00016447  0x000036b0 branch  0x00007dbc , 0x00000028 
+ 00016448  0x000036b1 call  0x0000404f 
+ 00016449  0x000036b2 nrtn  0x00000028 
+ 00016450  0x000036b3 fetch  0x00000001 , 0x00000923 
+ 00016451  0x000036b4 branch  0x00007dbc , 0x00000034 
+ 00016452  0x000036b5 pincrease  0xffffffff 
+ 00016453  0x000036b6 branch  0x00007dbc , 0x00000034 
+ 00016454  0x000036b7 store  0x00000001 , 0x00000923 
+ 00016455  0x000036b8 setarg  0x000048cc 
+ 00016456  0x000036b9 store  0x00000002 , 0x000043fb 
+ 00016457  0x000036ba branch  0x00007dba 
+ 00016458  0x000036bd call  0x00004005 
+ 00016459  0x000036be fetch  0x00000001 , 0x00000921 
+ 00016460  0x000036bf arg  0x00000929 , 0x00000002 
+ 00016461  0x000036c0 call  0x00003c86 
+ 00016462  0x000036c1 branch  0x00003bcf 
+ 00016463  0x000036c6 setarg  0x000048a4 
+ 00016464  0x000036c7 store  0x00000002 , 0x00000910 
+ 00016465  0x000036c8 branch  0x000039fb 
+ 00016466  0x000036cd bpatchx  0x000000b1 , 0x00004036 
+ 00016467  0x000036ce call  0x00004056 
+ 00016468  0x000036cf call  0x0000405f 
+ 00016469  0x000036d0 branch  0x0000394c 
+ 00016470  0x000036d6 fetch  0x00000001 , 0x00000916 
+ 00016471  0x000036d7 add  0x0000003f , 0x00000002 , 0x00000011 
+ 00016472  0x000036d8 pincrease  0x00000004 
+ 00016473  0x000036d9 store  0x00000001 , 0x00000916 
+ 00016474  0x000036da arg  0x0000499f , 0x00000002 
+ 00016475  0x000036db branch  0x0000405c 
+ 00016476  0x000036e1 call  0x00004005 
+ 00016477  0x000036e2 copy  0x00000011 , 0x0000003f 
+ 00016478  0x000036e3 branch  0x00003c86 
+ 00016479  0x000036e7 branch  0x00003bcc 
+ 00016480  0x000036eb call  0x00003e5e 
+ 00016481  0x000036ec call  0x000078fa 
+ 00016482  0x000036ed rtn  0x00000034 
+ 00016483  0x000036ee call  0x00002a28 
+ 00016484  0x000036ef nrtn  0x00000034 
+ 00016485  0x000036f0 arg  0x00000787 , 0x00000011 
+ 00016486  0x000036f1 call  0x000078ca 
+ 00016487  0x000036f2 nrtn  0x00000028 
+ 00016488  0x000036f3 branch  0x000040f0 
+ 00016489  0x000036f8 fetch  0x00000004 , 0x0000486e 
+ 00016490  0x000036f9 istore  0x00000004 , 0x00000005 
+ 00016491  0x000036fa add  0x00000005 , 0xfffffff3 , 0x0000003f 
+ 00016492  0x000036fb store  0x00000002 , 0x000008f1 
+ 00016493  0x000036fc rtn 
+ 00016494  0x00003701 setarg  0x000048cc 
+ 00016495  0x00003702 store  0x00000002 , 0x000043fb 
+ 00016496  0x00003703 rtn 
+ 00016497  0x00003706 call  0x0000406e 
+ 00016498  0x00003707 branch  0x000078ad 
+ 00016499  0x0000370b call  0x000029c9 
+ 00016500  0x0000370c fetch  0x00000001 , 0x000047e4 
+ 00016501  0x0000370d beq  0x00000001 , 0x00004083 
+ 00016502  0x0000370e beq  0x00000000 , 0x00004079 
+ 00016503  0x0000370f beq  0x00000005 , 0x00004079 
+ 00016504  0x00003710 rtn 
+ 00016505  0x00003714 setsect  0x00000000 , 0x00010214 
+ 00016506  0x00003715 setsect  0x00000001 , 0x0000c080 
+ 00016507  0x00003716 setsect  0x00000002 , 0x00028030 
+ 00016508  0x00003717 setsect  0x00000003 , 0x00003060 
+ 00016509  0x00003718 store  0x00000009 , 0x00004348 
+ 00016510  0x00003719 setarg  0x00182816 
+ 00016511  0x0000371a istore  0x00000004 , 0x00000005 
+ 00016512  0x0000371b fetch  0x00000008 , 0x000047dc 
+ 00016513  0x0000371c istore  0x00000008 , 0x00000005 
+ 00016514  0x0000371d rtn 
+ 00016515  0x00003720 call  0x00003ce0 
+ 00016516  0x00003722 setsect  0x00000000 , 0x0001021d 
+ 00016517  0x00003723 setsect  0x00000001 , 0x0000c080 
+ 00016518  0x00003724 setsect  0x00000002 , 0x00027030 
+ 00016519  0x00003725 setsect  0x00000003 , 0x00005460 
+ 00016520  0x00003726 store  0x00000009 , 0x00004348 
+ 00016521  0x00003727 setarg  0x00182716 
+ 00016522  0x00003728 istore  0x00000003 , 0x00000005 
+ 00016523  0x00003729 arg  0x000008ff , 0x00000006 
+ 00016524  0x0000372a call  0x00007c8f 
+ 00016525  0x0000372b fetch  0x00000002 , 0x000047ea 
+ 00016526  0x0000372c istore  0x00000002 , 0x00000005 
+ 00016527  0x0000372d rtn 
+ 00016528  0x00003734 bpatchx  0x000000b2 , 0x00004036 
+ 00016529  0x00003735 fetch  0x00000002 , 0x00004398 
+ 00016530  0x00003736 beq  0x0000000e , 0x00004095 
+ 00016531  0x00003737 beq  0x00000014 , 0x000040d6 
+ 00016532  0x00003738 rtn 
+ 00016533  0x0000373b copy  0x00000012 , 0x00000002 
+ 00016534  0x0000373c ifetch  0x00000001 , 0x00000011 
+ 00016535  0x0000373d beq  0x00000000 , 0x000040e1 
+ 00016536  0x0000373e beq  0x00000002 , 0x0000409a 
+ 00016537  0x0000373f rtn 
+ 00016538  0x00003748 call  0x0000400e 
+ 00016539  0x00003749 fetch  0x00000001 , 0x00000921 
+ 00016540  0x0000374a pincrease  0xfffffffc 
+ 00016541  0x0000374b store  0x00000001 , 0x00000921 
+ 00016542  0x0000374c call  0x00003fdd 
+ 00016543  0x0000374d nrtn  0x00000028 
+ 00016544  0x0000374e call  0x00003bcf 
+ 00016545  0x0000374f fetch  0x00000001 , 0x00000923 
+ 00016546  0x00003750 bbit1  0x00000007 , 0x000040a4 
+ 00016547  0x00003751 rtn 
+ 00016548  0x00003754 call  0x000040da 
+ 00016549  0x00003755 fetch  0x00000001 , 0x00000921 
+ 00016550  0x00003756 arg  0x00000929 , 0x00000002 
+ 00016551  0x00003757 call  0x00003ca5 
+ 00016552  0x00003758 nrtn  0x00000005 
+ 00016553  0x0000375b call  0x00004106 
+ 00016554  0x0000375c fetch  0x00000001 , 0x0000092b 
+ 00016555  0x0000375d beq  0x00000000 , 0x000040bd 
+ 00016556  0x0000375e beq  0x00000001 , 0x000040ae 
+ 00016557  0x0000375f rtn 
+ 00016558  0x00003762 fetchr  0x00000039 , 0x00000001 , 0x00000921 
+ 00016559  0x00003763 increase  0xfffffffd , 0x00000039 
+ 00016560  0x00003765 rshift  0x00000039 , 0x0000003f 
+ 00016561  0x00003766 fetcht  0x00000002 , 0x00000978 
+ 00016562  0x00003767 iadd  0x00000002 , 0x0000003f 
+ 00016563  0x00003768 sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00016564  0x00003769 nrtn  0x00000002 
+ 00016565  0x0000376a store  0x00000002 , 0x00000978 
+ 00016566  0x0000376b arg  0x00000968 , 0x00000005 
+ 00016567  0x0000376c lshift  0x00000002 , 0x0000003f 
+ 00016568  0x0000376d iadd  0x00000005 , 0x00000005 
+ 00016569  0x0000376e arg  0x0000092c , 0x00000006 
+ 00016570  0x0000376f call  0x00007cda 
+ 00016571  0x00003770 fetch  0x00000001 , 0x0000097a 
+ 00016572  0x00003771 branch  0x000040bf 
+ 00016573  0x00003774 ifetch  0x00000001 , 0x00000006 
+ 00016574  0x00003775 store  0x00000001 , 0x0000097a 
+ 00016575  0x00003777 store  0x00000001 , 0x000049a2 
+ 00016576  0x00003778 fetch  0x00000002 , 0x00000978 
+ 00016577  0x00003779 byteswap  0x0000003f , 0x0000003f 
+ 00016578  0x0000377a store  0x00000002 , 0x000049a3 
+ 00016579  0x0000377c jam  0x00000003 , 0x000049a1 
+ 00016580  0x0000377e fetch  0x00000009 , 0x00000922 
+ 00016581  0x0000377f store  0x00000009 , 0x00004998 
+ 00016582  0x00003780 fetch  0x00000002 , 0x00004995 
+ 00016583  0x00003781 store  0x00000002 , 0x0000499d 
+ 00016584  0x00003783 call  0x00004253 
+ 00016585  0x00003784 call  0x00004267 
+ 00016586  0x00003786 call  0x000040da 
+ 00016587  0x00003787 setarg  0x00000006 
+ 00016588  0x00003788 arg  0x0000499f , 0x00000002 
+ 00016589  0x00003789 call  0x00003c84 
+ 00016590  0x0000378a call  0x0000405f 
+ 00016591  0x0000378d arg  0x00000016 , 0x00000011 
+ 00016592  0x0000378e arg  0x00000010 , 0x00000002 
+ 00016593  0x0000378f call  0x00002dee 
+ 00016594  0x00003790 setarg  0x00000002 
+ 00016595  0x00003791 istore  0x00000001 , 0x00000005 
+ 00016596  0x00003792 arg  0x00004998 , 0x00000006 
+ 00016597  0x00003793 branch  0x00007c8d 
+ 00016598  0x00003796 jam  0x00000002 , 0x000007aa 
+ 00016599  0x00003797 copy  0x00000012 , 0x00000002 
+ 00016600  0x00003798 copy  0x00000011 , 0x00000006 
+ 00016601  0x00003799 branch  0x00003cfa 
+ 00016602  0x0000379d arg  0x0000095b , 0x00000005 
+ 00016603  0x0000379e setarg  0x00000003 
+ 00016604  0x0000379f istore  0x00000002 , 0x00000005 
+ 00016605  0x000037a0 fetch  0x00000005 , 0x00000924 
+ 00016606  0x000037a1 istore  0x00000007 , 0x00000005 
+ 00016607  0x000037a2 call  0x00004069 
+ 00016608  0x000037a4 branch  0x00004006 
+ 00016609  0x000037a7 jam  0x00000002 , 0x00000951 
+ 00016610  0x000037a8 branch  0x00003f7d 
+ 00016611  0x000037ac copy  0x00000013 , 0x0000003f 
+ 00016612  0x000037ad beq  0x00000015 , 0x000040e8 
+ 00016613  0x000037ae beq  0x00000014 , 0x000040e7 
+ 00016614  0x000037af rtn 
+ 00016615  0x000037b2 branch  0x000040eb 
+ 00016616  0x000037b7 setarg  0x00000000 
+ 00016617  0x000037b8 store  0x00000002 , 0x0000486c 
+ 00016618  0x000037b9 branch  0x00004317 
+ 00016619  0x000037bc setarg  0x00000000 
+ 00016620  0x000037bd store  0x00000002 , 0x00000978 
+ 00016621  0x000037be arg  0x00000968 , 0x00000005 
+ 00016622  0x000037bf arg  0x00000010 , 0x00000039 
+ 00016623  0x000037c0 branch  0x00007ca3 
+ 00016624  0x000037c9 call  0x00002a28 
+ 00016625  0x000037ca nrtn  0x00000034 
+ 00016626  0x000037cc fetch  0x00000001 , 0x00000789 
+ 00016627  0x000037cd add  0x0000003f , 0xffffffff , 0x00000011 
+ 00016628  0x000037ce arg  0x00000010 , 0x00000002 
+ 00016629  0x000037cf call  0x00002dee 
+ 00016630  0x000037d0 setarg  0x00000000 
+ 00016631  0x000037d1 istore  0x00000001 , 0x00000005 
+ 00016632  0x000037d2 arg  0x0000078c , 0x00000006 
+ 00016633  0x000037d3 branch  0x00007c8d 
+ 00016634  0x000037d6 fetch  0x00000001 , 0x000007aa 
+ 00016635  0x000037d7 rtneq  0x00000000 
+ 00016636  0x000037d8 fetch  0x00000002 , 0x000044e9 
+ 00016637  0x000037d9 rtnbit0  0x00000009 
+ 00016638  0x000037da call  0x00002a28 
+ 00016639  0x000037db nrtn  0x00000034 
+ 00016640  0x000037dc fetch  0x00000001 , 0x0000462a 
+ 00016641  0x000037dd add  0x0000003f , 0xfffffffb , 0x00000011 
+ 00016642  0x000037de arg  0x00000016 , 0x00000002 
+ 00016643  0x000037df call  0x00002dee 
+ 00016644  0x000037e0 arg  0x00004630 , 0x00000006 
+ 00016645  0x000037e1 branch  0x00007c8d 
+ 00016646  0x000037e4 fetch  0x00000002 , 0x00000968 
+ 00016647  0x000037e5 nrtn  0x00000034 
+ 00016648  0x000037e6 fetch  0x00000002 , 0x00000927 
+ 00016649  0x000037e7 store  0x00000002 , 0x00000968 
+ 00016650  0x000037e9 fetch  0x00000002 , 0x00000978 
+ 00016651  0x000037ea pincrease  0x00000001 
+ 00016652  0x000037eb store  0x00000002 , 0x00000978 
+ 00016653  0x000037ec rtn 
+ 00016654  0x000037f0 ifetch  0x00000004 , 0x00000006 
+ 00016655  0x000037f1 force  0x00000004 , 0x00000011 
+ 00016656  0x000037f2 increase  0x00000003 , 0x00000005 
+ 00016657  0x000037f4 istore  0x00000001 , 0x00000005 
+ 00016658  0x000037f5 rshift8  0x0000003f , 0x0000003f 
+ 00016659  0x000037f6 increase  0xfffffffe , 0x00000005 
+ 00016660  0x000037f7 increase  0xffffffff , 0x00000011 
+ 00016661  0x000037f8 nbranch  0x00004111 , 0x00000005 
+ 00016662  0x000037f9 increase  0x00000005 , 0x00000005 
+ 00016663  0x000037fa loop  0x0000410e 
+ 00016664  0x000037fb rtn 
+ 00016665  0x000037ff lshift2  0x00000007 , 0x0000003f 
+ 00016666  0x00003800 iadd  0x0000000b , 0x00000006 
+ 00016667  0x00003801 ifetch  0x00000004 , 0x00000006 
+ 00016668  0x00003802 rtn 
+ 00016669  0x00003805 force  0x00000010 , 0x00000030 
+ 00016670  0x00003806 arg  0x00000231 , 0x0000000b 
+ 00016671  0x00003808 add  0x00000030 , 0xfffffff9 , 0x00000007 
+ 00016672  0x00003809 call  0x00004119 
+ 00016673  0x0000380a iforce  0x00000002 
+ 00016674  0x0000380b add  0x00000030 , 0xfffffff0 , 0x00000007 
+ 00016675  0x0000380c call  0x00004119 
+ 00016676  0x0000380d iadd  0x00000002 , 0x00000002 
+ 00016677  0x0000380e add  0x00000030 , 0xfffffffe , 0x00000007 
+ 00016678  0x0000380f call  0x00004119 
+ 00016679  0x00003810 shasx  0x0000003f , 0x00000001 , 0x0000003f 
+ 00016680  0x00003811 iadd  0x00000002 , 0x00000002 
+ 00016681  0x00003812 add  0x00000030 , 0xfffffff1 , 0x00000007 
+ 00016682  0x00003813 call  0x00004119 
+ 00016683  0x00003814 shasx  0x0000003f , 0x00000000 , 0x0000003f 
+ 00016684  0x00003815 iadd  0x00000002 , 0x00000002 
+ 00016685  0x00003816 lshift2  0x00000030 , 0x0000003f 
+ 00016686  0x00003817 iadd  0x0000000b , 0x00000005 
+ 00016687  0x00003818 istoret  0x00000004 , 0x00000005 
+ 00016688  0x00003819 increase  0x00000001 , 0x00000030 
+ 00016689  0x0000381a compare  0x00000040 , 0x00000030 , 0x000000ff 
+ 00016690  0x0000381b nbranch  0x0000411f , 0x00000001 
+ 00016691  0x0000381c rtn 
+ 00016692  0x00003820 arg  0x00000549 , 0x00000006 
+ 00016693  0x00003821 force  0x00000007 , 0x00000038 
+ 00016694  0x00003823 ifetch  0x00000004 , 0x00000006 
+ 00016695  0x00003824 iforce  0x0000002f 
+ 00016696  0x00003825 increase  0xffffffff , 0x00000038 
+ 00016697  0x00003826 branch  0x00004136 , 0x00000002 
+ 00016698  0x00003827 rtn 
+ 00016699  0x0000382a bpatchx  0x000000b3 , 0x00004036 
+ 00016700  0x0000382b call  0x0000411d 
+ 00016701  0x0000382c arg  0x00000331 , 0x00000005 
+ 00016702  0x0000382d force  0x00000000 , 0x00000038 
+ 00016703  0x0000382f deposit  0x0000002f 
+ 00016704  0x00003830 istore  0x00000004 , 0x00000005 
+ 00016705  0x00003831 increase  0x00000001 , 0x00000038 
+ 00016706  0x00003832 compare  0x00000008 , 0x00000038 , 0x000000ff 
+ 00016707  0x00003833 nbranch  0x0000413f , 0x00000001 
+ 00016708  0x00003836 arg  0x000095ed , 0x0000000b 
+ 00016709  0x00003839 arg  0x00000231 , 0x00000030 
+ 00016710  0x0000383a force  0x00000040 , 0x00000039 
+ 00016711  0x0000383c ifetcht  0x00000004 , 0x00000030 
+ 00016712  0x0000383d ifetch  0x00000004 , 0x0000000b 
+ 00016713  0x0000383e increase  0x00000004 , 0x0000000b 
+ 00016714  0x0000383f increase  0x00000004 , 0x00000030 
+ 00016715  0x00003840 iadd  0x00000002 , 0x0000003f 
+ 00016716  0x00003841 force  0x00000007 , 0x00000038 
+ 00016717  0x00003842 iadd  0x0000002f , 0x00000002 
+ 00016718  0x00003843 force  0x00000004 , 0x00000038 
+ 00016719  0x00003844 shasx  0x0000002f , 0x00000003 , 0x0000003f 
+ 00016720  0x00003845 iadd  0x00000002 , 0x00000002 
+ 00016721  0x00003846 force  0x00000005 , 0x00000038 
+ 00016722  0x00003847 deposit  0x0000002f 
+ 00016723  0x00003848 force  0x00000006 , 0x00000038 
+ 00016724  0x00003849 ixor  0x0000002f , 0x0000003f 
+ 00016725  0x0000384a force  0x00000004 , 0x00000038 
+ 00016726  0x0000384b iand  0x0000002f , 0x0000003f 
+ 00016727  0x0000384c force  0x00000006 , 0x00000038 
+ 00016728  0x0000384d ixor  0x0000002f , 0x0000003f 
+ 00016729  0x0000384e iadd  0x00000002 , 0x00000002 
+ 00016730  0x0000384f force  0x00000007 , 0x00000038 
+ 00016731  0x00003850 copy  0x00000002 , 0x0000002f 
+ 00016732  0x00003851 force  0x00000003 , 0x00000038 
+ 00016733  0x00003852 deposit  0x0000002f 
+ 00016734  0x00003853 iadd  0x00000002 , 0x0000002f 
+ 00016735  0x00003854 force  0x00000000 , 0x00000038 
+ 00016736  0x00003855 deposit  0x0000002f 
+ 00016737  0x00003856 force  0x00000001 , 0x00000038 
+ 00016738  0x00003857 iand  0x0000002f , 0x00000002 
+ 00016739  0x00003858 ior  0x0000002f , 0x0000003f 
+ 00016740  0x00003859 force  0x00000002 , 0x00000038 
+ 00016741  0x0000385a iand  0x0000002f , 0x0000003f 
+ 00016742  0x0000385b ior  0x00000002 , 0x00000002 
+ 00016743  0x0000385c force  0x00000000 , 0x00000038 
+ 00016744  0x0000385d shasx  0x0000002f , 0x00000002 , 0x0000003f 
+ 00016745  0x0000385e iadd  0x00000002 , 0x0000003f 
+ 00016746  0x0000385f force  0x00000007 , 0x00000038 
+ 00016747  0x00003860 iadd  0x0000002f , 0x0000002f 
+ 00016748  0x00003861 regexrot 
+ 00016749  0x00003862 loop  0x00004147 
+ 00016750  0x00003863 arg  0x00000331 , 0x00000006 
+ 00016751  0x00003864 force  0x00000000 , 0x00000038 
+ 00016752  0x00003866 ifetch  0x00000004 , 0x00000006 
+ 00016753  0x00003867 iadd  0x0000002f , 0x0000002f 
+ 00016754  0x00003868 increase  0x00000001 , 0x00000038 
+ 00016755  0x00003869 compare  0x00000008 , 0x00000038 , 0x000000ff 
+ 00016756  0x0000386a nbranch  0x00004170 , 0x00000001 
+ 00016757  0x0000386b rtn 
+ 00016758  0x00003870 arg  0x000001bd , 0x00000005 
+ 00016759  0x00003871 force  0x00000007 , 0x00000038 
+ 00016760  0x00003873 deposit  0x0000002f 
+ 00016761  0x00003874 istore  0x00000004 , 0x00000005 
+ 00016762  0x00003875 increase  0xffffffff , 0x00000038 
+ 00016763  0x00003876 branch  0x00004178 , 0x00000002 
+ 00016764  0x00003877 rtn 
+ 00016765  0x0000387d bbit0  0x00000006 , 0x00004180 
+ 00016766  0x00003880 call  0x000041a2 
+ 00016767  0x00003881 branch  0x00004182 
+ 00016768  0x00003884 call  0x000041af 
+ 00016769  0x00003885 branch  0x00004182 
+ 00016770  0x0000388a fetch  0x00000001 , 0x00000921 
+ 00016771  0x0000388b pincrease  0xfffffff9 
+ 00016772  0x0000388f arg  0x0000092c , 0x00000030 
+ 00016773  0x00003890 call  0x00007dbc 
+ 00016774  0x00003891 branch  0x00004194 
+ 00016775  0x00003896 fetch  0x00000001 , 0x0000092b 
+ 00016776  0x00003897 bbit0  0x00000006 , 0x0000418b 
+ 00016777  0x00003899 call  0x000041a2 
+ 00016778  0x0000389a branch  0x0000418d 
+ 00016779  0x0000389c call  0x000041af 
+ 00016780  0x0000389d branch  0x0000418d 
+ 00016781  0x000038a1 fetch  0x00000001 , 0x00004969 
+ 00016782  0x000038a2 ncall  0x00007dba , 0x00000034 
+ 00016783  0x000038a3 call  0x00007dbc , 0x00000034 
+ 00016784  0x000038a4 fetch  0x00000001 , 0x00004862 
+ 00016785  0x000038a5 pincrease  0xfffffffc 
+ 00016786  0x000038a6 jam  0x00000000 , 0x00004862 
+ 00016787  0x000038a7 arg  0x00004b3c , 0x00000030 
+ 00016788  0x000038ac copy  0x00000030 , 0x00000002 
+ 00016789  0x000038ad call  0x0000419c 
+ 00016790  0x000038ae nrtn  0x00000005 
+ 00016791  0x000038af call  0x0000419f 
+ 00016792  0x000038b0 nrtn  0x00000028 
+ 00016793  0x000038b1 fetch  0x00000002 , 0x000008f4 
+ 00016794  0x000038b2 copy  0x0000003f , 0x00000030 
+ 00016795  0x000038b3 branch  0x00003728 
+ 00016796  0x000038b6 nbranch  0x00003ca7 , 0x00000028 
+ 00016797  0x000038b7 pincrease  0xfffffffc 
+ 00016798  0x000038b8 branch  0x00003ca5 
+ 00016799  0x000038bc setarg  0x0000496a 
+ 00016800  0x000038bd store  0x00000002 , 0x00000910 
+ 00016801  0x000038be branch  0x000039fb 
+ 00016802  0x000038c3 call  0x000041a5 
+ 00016803  0x000038c5 arg  0x00004959 , 0x00000006 
+ 00016804  0x000038c6 branch  0x0000735f 
+ 00016805  0x000038c8 arg  0x0000093f , 0x00000005 
+ 00016806  0x000038c9 setarg  0x00000001 
+ 00016807  0x000038ca istore  0x00000001 , 0x00000005 
+ 00016808  0x000038cb fetch  0x00000001 , 0x00004969 
+ 00016809  0x000038cc arg  0x00000000 , 0x00000002 
+ 00016810  0x000038cd nsetflag  0x00000034 , 0x00000007 , 0x00000002 
+ 00016811  0x000038ce istoret  0x00000001 , 0x00000005 
+ 00016812  0x000038cf fetch  0x00000007 , 0x00000924 
+ 00016813  0x000038d0 istore  0x00000007 , 0x00000005 
+ 00016814  0x000038d1 branch  0x00004069 
+ 00016815  0x000038d6 call  0x000041b2 
+ 00016816  0x000038d8 arg  0x000046a0 , 0x00000006 
+ 00016817  0x000038d9 branch  0x0000735f 
+ 00016818  0x000038db arg  0x0000093f , 0x00000005 
+ 00016819  0x000038dc setarg  0x00000002 
+ 00016820  0x000038dd branch  0x000041a7 
+ 00016821  0x000038e3 bpatchx  0x000000b4 , 0x00004036 
+ 00016822  0x000038e5 call  0x0000425b 
+ 00016823  0x000038e8 call  0x000041bd 
+ 00016824  0x000038e9 rtn  0x00000028 
+ 00016825  0x000038ea call  0x000041d0 
+ 00016826  0x000038ec call  0x00004292 
+ 00016827  0x000038ee arg  0x00000983 , 0x00000011 
+ 00016828  0x000038ef branch  0x000078b2 
+ 00016829  0x000038f4 call  0x00007dbc 
+ 00016830  0x000038f5 arg  0x00000001 , 0x00000002 
+ 00016831  0x000038f7 fetch  0x00000001 , 0x00000951 
+ 00016832  0x000038f8 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00016833  0x000038f9 setflag  0x00000005 , 0x00000007 , 0x00000002 
+ 00016834  0x000038fa storet  0x00000001 , 0x00000983 
+ 00016835  0x000038fb fetch  0x00000009 , 0x00004998 
+ 00016836  0x000038fc store  0x00000009 , 0x00000987 
+ 00016837  0x000038fd fetch  0x00000001 , 0x00000723 
+ 00016838  0x000038fe rtnne  0x000000d4 
+ 00016839  0x000038ff fetch  0x00000001 , 0x000047e4 
+ 00016840  0x00003900 bne  0x00000000 , 0x00007dba 
+ 00016841  0x00003901 fetch  0x00000001 , 0x00000726 
+ 00016842  0x00003902 store  0x00000001 , 0x00000986 
+ 00016843  0x00003903 fetch  0x00000001 , 0x00000983 
+ 00016844  0x00003904 pincrease  0x00000001 
+ 00016845  0x00003905 set1  0x00000005 , 0x0000003f 
+ 00016846  0x00003906 store  0x00000001 , 0x00000983 
+ 00016847  0x00003907 rtn 
+ 00016848  0x0000390b fetch  0x00000001 , 0x00000722 
+ 00016849  0x0000390c copy  0x0000003f , 0x00000039 
+ 00016850  0x0000390d store  0x00000001 , 0x00000990 
+ 00016851  0x0000390e fetch  0x00000001 , 0x0000092b 
+ 00016852  0x0000390f store  0x00000001 , 0x00000991 
+ 00016853  0x00003910 arg  0x00000996 , 0x00000005 
+ 00016854  0x00003911 arg  0x00000723 , 0x00000006 
+ 00016855  0x00003912 branch  0x00007cda 
+ 00016856  0x0000391c fetch  0x00000001 , 0x000049b5 
+ 00016857  0x0000391d nrtn  0x00000034 
+ 00016858  0x0000391e call  0x00004292 
+ 00016859  0x0000391f arg  0x00000983 , 0x00000011 
+ 00016860  0x00003920 call  0x000078dc 
+ 00016861  0x00003921 nrtn  0x00000028 
+ 00016862  0x00003923 fetcht  0x00000001 , 0x00000983 
+ 00016863  0x00003924 and  0x00000002 , 0x0000000f , 0x0000003f 
+ 00016864  0x00003925 branch  0x0000420b , 0x00000034 
+ 00016865  0x00003927 jam  0x00000001 , 0x000049b5 
+ 00016866  0x00003929 call  0x000041fc 
+ 00016867  0x0000392b fetcht  0x00000001 , 0x00000983 
+ 00016868  0x0000392c call  0x00004202 
+ 00016869  0x0000392d store  0x00000001 , 0x000049b6 
+ 00016870  0x0000392f fetch  0x00000001 , 0x000049b7 
+ 00016871  0x00003930 isolate1  0x00000007 , 0x00000002 
+ 00016872  0x00003931 setflag  0x00000001 , 0x00000002 , 0x0000003f 
+ 00016873  0x00003932 store  0x00000001 , 0x000049b7 
+ 00016874  0x0000393a set1  0x00000004 , 0x00000002 
+ 00016875  0x0000393c increase  0xffffffff , 0x00000002 
+ 00016876  0x0000393d istoret  0x00000001 , 0x00000012 
+ 00016877  0x0000393f fetcht  0x00000001 , 0x00000983 
+ 00016878  0x00003940 isolate1  0x00000004 , 0x00000002 
+ 00016879  0x00003941 nbranch  0x0000420f , 0x00000001 
+ 00016880  0x00003942 fetcht  0x00000001 , 0x00000990 
+ 00016881  0x00003943 storet  0x00000001 , 0x00000722 
+ 00016882  0x00003944 copy  0x00000002 , 0x00000039 
+ 00016883  0x00003945 arg  0x00000723 , 0x00000005 
+ 00016884  0x00003946 arg  0x00000996 , 0x00000006 
+ 00016885  0x00003947 call  0x00007cda 
+ 00016886  0x00003949 sub  0x00000002 , 0x0000000f , 0x0000003e 
+ 00016887  0x0000394a nbranch  0x000041f9 , 0x00000002 
+ 00016888  0x0000394c branch  0x00003ec1 
+ 00016889  0x00003950 fetch  0x00000004 , 0x00000992 
+ 00016890  0x00003951 store  0x00000004 , 0x0000097e 
+ 00016891  0x00003952 branch  0x00004230 
+ 00016892  0x00003956 fetch  0x00000001 , 0x00000991 
+ 00016893  0x00003957 store  0x00000001 , 0x0000092b 
+ 00016894  0x00003959 fetch  0x00000009 , 0x00000987 
+ 00016895  0x0000395a store  0x00000009 , 0x00004998 
+ 00016896  0x0000395b store  0x00000009 , 0x00000922 
+ 00016897  0x0000395c rtn 
+ 00016898  0x00003960 jam  0x00000001 , 0x000049b7 
+ 00016899  0x00003961 fetch  0x00000001 , 0x00000986 
+ 00016900  0x00003962 isolate1  0x00000005 , 0x00000002 
+ 00016901  0x00003963 rtn  0x00000001 
+ 00016902  0x00003964 setarg  0x00000000 
+ 00016903  0x00003965 rtn 
+ 00016904  0x00003968 add  0x00000011 , 0x0000001a , 0x00000005 
+ 00016905  0x00003969 istore  0x00000001 , 0x00000005 
+ 00016906  0x0000396a rtn 
+ 00016907  0x0000396e jam  0x00000000 , 0x000049b6 
+ 00016908  0x0000396f call  0x00004292 
+ 00016909  0x00003970 arg  0x00000983 , 0x00000011 
+ 00016910  0x00003971 branch  0x000078ca 
+ 00016911  0x00003974 call  0x00004253 
+ 00016912  0x00003975 call  0x00004267 
+ 00016913  0x00003976 fetch  0x00000009 , 0x00004998 
+ 00016914  0x00003977 store  0x00000009 , 0x00000987 
+ 00016915  0x00003978 call  0x00004228 
+ 00016916  0x00003979 setarg  0x00000000 
+ 00016917  0x0000397a store  0x00000001 , 0x00004969 
+ 00016918  0x0000397b call  0x00004249 
+ 00016919  0x0000397d fetcht  0x00000001 , 0x00000722 
+ 00016920  0x0000397e storet  0x00000001 , 0x00000990 
+ 00016921  0x0000397f copy  0x00000002 , 0x00000039 
+ 00016922  0x00003980 arg  0x00000723 , 0x00000006 
+ 00016923  0x00003981 arg  0x00000996 , 0x00000005 
+ 00016924  0x00003982 call  0x00007cda 
+ 00016925  0x00003984 sub  0x00000002 , 0x0000000f , 0x0000003e 
+ 00016926  0x00003985 nbranch  0x00004222 , 0x00000002 
+ 00016927  0x00003987 arg  0x00000984 , 0x00000011 
+ 00016928  0x00003988 call  0x000078eb 
+ 00016929  0x00003989 branch  0x00003ec1 
+ 00016930  0x0000398c call  0x0000426f 
+ 00016931  0x0000398d fetch  0x00000004 , 0x0000097e 
+ 00016932  0x0000398e store  0x00000004 , 0x00000992 
+ 00016933  0x0000398f arg  0x00000984 , 0x00000011 
+ 00016934  0x00003990 call  0x000078eb 
+ 00016935  0x00003991 branch  0x00004230 
+ 00016936  0x00003994 fetch  0x00000001 , 0x00000990 
+ 00016937  0x00003995 copy  0x0000003f , 0x00000039 
+ 00016938  0x00003996 store  0x00000001 , 0x00000722 
+ 00016939  0x00003997 fetch  0x00000001 , 0x00000991 
+ 00016940  0x00003998 store  0x00000001 , 0x0000092b 
+ 00016941  0x00003999 arg  0x00000996 , 0x00000006 
+ 00016942  0x0000399a arg  0x00000723 , 0x00000005 
+ 00016943  0x0000399b branch  0x00007cda 
+ 00016944  0x0000399e call  0x0000427c 
+ 00016945  0x0000399f setarg  0x00000723 
+ 00016946  0x000039a0 store  0x00000002 , 0x0000097b 
+ 00016947  0x000039a2 call  0x000041fc 
+ 00016948  0x000039a3 call  0x00004253 
+ 00016949  0x000039a4 call  0x00004267 
+ 00016950  0x000039a6 fetcht  0x00000001 , 0x00000722 
+ 00016951  0x000039a7 setarg  0x0000000c 
+ 00016952  0x000039a8 call  0x00007db0 
+ 00016953  0x000039a9 copy  0x0000003f , 0x00000011 
+ 00016954  0x000039aa copy  0x00000002 , 0x0000003f 
+ 00016955  0x000039ab isub  0x00000011 , 0x0000003f 
+ 00016956  0x000039ac store  0x00000001 , 0x00000722 
+ 00016957  0x000039ad fetch  0x00000002 , 0x0000097b 
+ 00016958  0x000039ae copy  0x0000003f , 0x00000006 
+ 00016959  0x000039af iadd  0x00000011 , 0x00000002 
+ 00016960  0x000039b0 storet  0x00000002 , 0x0000097b 
+ 00016961  0x000039b1 call  0x00003ecb 
+ 00016962  0x000039b2 fetch  0x00000001 , 0x00000722 
+ 00016963  0x000039b3 rtn  0x00000034 
+ 00016964  0x000039b4 fetch  0x00000001 , 0x00000980 
+ 00016965  0x000039b5 pincrease  0x00000001 
+ 00016966  0x000039b6 store  0x00000001 , 0x00000980 
+ 00016967  0x000039b7 call  0x0000427c 
+ 00016968  0x000039b8 branch  0x00004233 
+ 00016969  0x000039be fetch  0x00000001 , 0x0000092b 
+ 00016970  0x000039bf bbit0  0x00000006 , 0x0000424d 
+ 00016971  0x000039c1 call  0x000041a2 
+ 00016972  0x000039c2 branch  0x0000424e 
+ 00016973  0x000039c4 call  0x000041af 
+ 00016974  0x000039c6 fetch  0x00000001 , 0x00000722 
+ 00016975  0x000039c7 add  0x0000003f , 0x00000004 , 0x00000002 
+ 00016976  0x000039c8 storet  0x00000001 , 0x00000722 
+ 00016977  0x000039c9 arg  0x00000723 , 0x00000002 
+ 00016978  0x000039ca branch  0x00003c86 
+ 00016979  0x000039d0 fetch  0x00000003 , 0x00004992 
+ 00016980  0x000039d1 pincrease  0x00000001 
+ 00016981  0x000039d2 store  0x00000003 , 0x00004992 
+ 00016982  0x000039d3 fetch  0x00000001 , 0x00004808 
+ 00016983  0x000039d4 pincrease  0x00000001 
+ 00016984  0x000039d5 store  0x00000001 , 0x00004808 
+ 00016985  0x000039d6 fetch  0x00000002 , 0x00004846 
+ 00016986  0x000039d7 branch  0x00007d79 
+ 00016987  0x000039dc fetch  0x00000001 , 0x00004871 
+ 00016988  0x000039dd lshift4  0x0000003f , 0x0000003f 
+ 00016989  0x000039de lshift3  0x0000003f , 0x0000003f 
+ 00016990  0x000039df fetcht  0x00000001 , 0x0000474d 
+ 00016991  0x000039e0 ior  0x00000002 , 0x0000003f 
+ 00016992  0x000039e1 store  0x00000001 , 0x00004998 
+ 00016993  0x000039e2 fetch  0x00000001 , 0x00004997 
+ 00016994  0x000039e3 store  0x00000001 , 0x00004999 
+ 00016995  0x000039e4 fetch  0x00000002 , 0x00004995 
+ 00016996  0x000039e5 store  0x00000002 , 0x0000499d 
+ 00016997  0x000039e6 fetch  0x00000002 , 0x0000094c 
+ 00016998  0x000039e7 store  0x00000002 , 0x0000499f 
+ 00016999  0x000039ea fetch  0x00000003 , 0x00004992 
+ 00017000  0x000039eb store  0x00000003 , 0x0000499a 
+ 00017001  0x000039ec arg  0x0000499a , 0x00000011 
+ 00017002  0x000039ed arg  0x00000003 , 0x00000039 
+ 00017003  0x000039ee call  0x00007cb1 
+ 00017004  0x000039ef fetch  0x00000008 , 0x00004999 
+ 00017005  0x000039f0 store  0x00000008 , 0x00000923 
+ 00017006  0x000039f1 rtn 
+ 00017007  0x000039f4 fetch  0x00000001 , 0x00000722 
+ 00017008  0x000039f5 div  0x0000003f , 0x0000000c 
+ 00017009  0x000039f6 call  0x00007d62 
+ 00017010  0x000039f7 quotient  0x00000002 
+ 00017011  0x000039f8 remainder  0x0000003f 
+ 00017012  0x000039f9 call  0x0000428f , 0x00000034 
+ 00017013  0x000039fa storet  0x00000001 , 0x00000981 
+ 00017014  0x000039fb jam  0x00000000 , 0x00000980 
+ 00017015  0x000039fc fetch  0x00000003 , 0x00004992 
+ 00017016  0x000039fd arg  0x00001fff , 0x00000002 
+ 00017017  0x000039fe iand  0x00000002 , 0x0000003f 
+ 00017018  0x000039ff store  0x00000002 , 0x0000097e 
+ 00017019  0x00003a00 rtn 
+ 00017020  0x00003a03 fetch  0x00000002 , 0x0000097e 
+ 00017021  0x00003a04 lshift4  0x0000003f , 0x0000003f 
+ 00017022  0x00003a05 lshift  0x0000003f , 0x0000003f 
+ 00017023  0x00003a06 fetcht  0x00000001 , 0x00000980 
+ 00017024  0x00003a07 ior  0x00000002 , 0x0000003f 
+ 00017025  0x00003a08 lshift4  0x0000003f , 0x0000003f 
+ 00017026  0x00003a09 lshift  0x0000003f , 0x0000003f 
+ 00017027  0x00003a0a fetcht  0x00000001 , 0x00000981 
+ 00017028  0x00003a0b ior  0x00000002 , 0x0000003f 
+ 00017029  0x00003a0c store  0x00000003 , 0x000049a2 
+ 00017030  0x00003a0d arg  0x00000003 , 0x00000039 
+ 00017031  0x00003a0e arg  0x000049a2 , 0x00000011 
+ 00017032  0x00003a0f branch  0x00007cb1 
+ 00017033  0x00003a12 arg  0x000049b8 , 0x00000013 
+ 00017034  0x00003a13 arg  0x0000428c , 0x00000012 
+ 00017035  0x00003a14 branch  0x000042e0 
+ 00017036  0x00003a17 arg  0x00000028 , 0x00000039 
+ 00017037  0x00003a18 arg  0x0000496a , 0x00000005 
+ 00017038  0x00003a19 branch  0x00007ca1 
+ 00017039  0x00003a1d increase  0xffffffff , 0x00000002 
+ 00017040  0x00003a1e rtn 
+ 00017041  0x00003a21 branch  0x00003b2a 
+ 00017042  0x00003a25 setarg  0x000049b9 
+ 00017043  0x00003a26 store  0x00000002 , 0x000043fb 
+ 00017044  0x00003a27 rtn 
+ 00017045  0x00003a2b bpatch  0x000000b1 , 0x00004016 
+ 00017046  0x00003a2c fetch  0x00000001 , 0x000043cb 
+ 00017047  0x00003a2d branch  0x00004295 , 0x00000034 
+ 00017048  0x00003a2e beq  0x00000004 , 0x000047b7 
+ 00017049  0x00003a2f beq  0x00000009 , 0x000062ae 
+ 00017050  0x00003a30 beq  0x0000000a , 0x00005099 
+ 00017051  0x00003a31 beq  0x0000000e , 0x000043b2 
+ 00017052  0x00003a32 beq  0x00000006 , 0x0000646e 
+ 00017053  0x00003a33 beq  0x0000000d , 0x00004672 
+ 00017054  0x00003a34 beq  0x0000000f , 0x00004959 
+ 00017055  0x00003a35 beq  0x0000000c , 0x00006882 
+ 00017056  0x00003a37 beq  0x00000008 , 0x000053e0 
+ 00017057  0x00003a38 beq  0x0000000b , 0x00003e02 
+ 00017058  0x00003a39 rtn 
+ 00017059  0x00003a3d rtn  0x0000002b 
+ 00017060  0x00003a3e call  0x00006f74 
+ 00017061  0x00003a3f fetch  0x00000001 , 0x000043cb 
+ 00017062  0x00003a40 beq  0x00000009 , 0x000063d9 
+ 00017063  0x00003a41 beq  0x00000006 , 0x000063d9 
+ 00017064  0x00003a42 beq  0x00000004 , 0x000047c2 
+ 00017065  0x00003a43 beq  0x00000008 , 0x00005428 
+ 00017066  0x00003a44 beq  0x0000000f , 0x0000542c 
+ 00017067  0x00003a45 beq  0x0000000d , 0x00004772 
+ 00017068  0x00003a46 rtn 
+ 00017069  0x00003a49 call  0x00007774 
+ 00017070  0x00003a4a call  0x00007841 
+ 00017071  0x00003a4b call  0x000042b4 
+ 00017072  0x00003a4c fetch  0x00000002 , 0x000043db 
+ 00017073  0x00003a4d branch  0x00007d79 
+ 00017074  0x00003a50 fetch  0x00000002 , 0x000043d9 
+ 00017075  0x00003a51 branch  0x00007d79 
+ 00017076  0x00003a54 bpatch  0x000000b2 , 0x00004016 
+ 00017077  0x00003a56 arg  0x000044d3 , 0x00000011 
+ 00017078  0x00003a57 call  0x00007d97 
+ 00017079  0x00003a58 rtn  0x00000034 
+ 00017080  0x00003a5a copy  0x0000003f , 0x00000013 
+ 00017081  0x00003a5b call  0x000042bd 
+ 00017082  0x00003a5c branch  0x000042c1 
+ 00017083  0x00003a5f arg  0x00000000 , 0x00000013 
+ 00017084  0x00003a60 rtn 
+ 00017085  0x00003a66 beq  0x00000010 , 0x000042d0 
+ 00017086  0x00003a67 beq  0x00000014 , 0x000042c7 
+ 00017087  0x00003a68 beq  0x00000015 , 0x000042cb 
+ 00017088  0x00003a69 rtn 
+ 00017089  0x00003a6e fetch  0x00000002 , 0x000043dd 
+ 00017090  0x00003a6f branch  0x00007d79 
+ 00017091  0x00003a72 fetch  0x00000002 , 0x000043d3 
+ 00017092  0x00003a73 branch  0x00007d79 
+ 00017093  0x00003a76 fetch  0x00000002 , 0x000043d7 
+ 00017094  0x00003a77 branch  0x00007d79 
+ 00017095  0x00003a7a fetch  0x00000002 , 0x000044e9 
+ 00017096  0x00003a7b set1  0x00000009 , 0x0000003f 
+ 00017097  0x00003a7c store  0x00000002 , 0x000044e9 
+ 00017098  0x00003a7d rtn 
+ 00017099  0x00003a80 jam  0x00000000 , 0x00004396 
+ 00017100  0x00003a81 fetch  0x00000002 , 0x000044e9 
+ 00017101  0x00003a82 set0  0x00000009 , 0x0000003f 
+ 00017102  0x00003a83 store  0x00000002 , 0x000044e9 
+ 00017103  0x00003a84 branch  0x0000432d 
+ 00017104  0x00003a88 fetch  0x00000002 , 0x000043f1 
+ 00017105  0x00003a89 set1  0x00000000 , 0x0000003f 
+ 00017106  0x00003a8a store  0x00000002 , 0x000043f1 
+ 00017107  0x00003a8b rtn 
+ 00017108  0x00003a8f store  0x00000001 , 0x0000021d 
+ 00017109  0x00003a91 bpatch  0x000000b3 , 0x00004016 
+ 00017110  0x00003a92 fetch  0x00000001 , 0x0000021d 
+ 00017111  0x00003a93 rtn  0x00000034 
+ 00017112  0x00003a94 increase  0xffffffff , 0x0000003f 
+ 00017113  0x00003a95 store  0x00000001 , 0x0000021d 
+ 00017114  0x00003a96 call  0x00007780 
+ 00017115  0x00003a97 call  0x0000430e 
+ 00017116  0x00003a98 call  0x00006beb 
+ 00017117  0x00003a99 fetch  0x00000002 , 0x000043e3 
+ 00017118  0x00003a9a call  0x00007d79 
+ 00017119  0x00003a9b branch  0x000042d5 
+ 00017120  0x00003aa1 ifetch  0x00000001 , 0x00000013 
+ 00017121  0x00003aa2 rtn  0x00000034 
+ 00017122  0x00003aa3 pincrease  0xffffffff 
+ 00017123  0x00003aa4 istore  0x00000001 , 0x00000013 
+ 00017124  0x00003aa5 nrtn  0x00000034 
+ 00017125  0x00003aa6 copy  0x00000012 , 0x0000003f 
+ 00017126  0x00003aa7 branch  0x00007d79 
+ 00017127  0x00003aac ifetch  0x00000002 , 0x00000013 
+ 00017128  0x00003aad rtn  0x00000034 
+ 00017129  0x00003aae pincrease  0xffffffff 
+ 00017130  0x00003aaf istore  0x00000002 , 0x00000013 
+ 00017131  0x00003ab0 nrtn  0x00000034 
+ 00017132  0x00003ab1 copy  0x00000012 , 0x0000003f 
+ 00017133  0x00003ab2 branch  0x00007d79 
+ 00017134  0x00003ab5 fetcht  0x00000002 , 0x00004430 
+ 00017135  0x00003ab6 add  0x00000002 , 0x00000001 , 0x00000013 
+ 00017136  0x00003ab7 arg  0x000042f2 , 0x00000012 
+ 00017137  0x00003ab8 branch  0x000042e0 
+ 00017138  0x00003abb call  0x00004343 
+ 00017139  0x00003abc beq  0x00000001 , 0x000042f5 
+ 00017140  0x00003abe branch  0x00004327 
+ 00017141  0x00003ac0 setarg  0x00000002 
+ 00017142  0x00003ac1 istore  0x00000001 , 0x00000013 
+ 00017143  0x00003ac2 add  0x00000002 , 0x00000008 , 0x00000012 
+ 00017144  0x00003ac4 ifetch  0x00000002 , 0x00000012 
+ 00017145  0x00003ac5 branch  0x00007d79 
+ 00017146  0x00003ac9 call  0x000042fc 
+ 00017147  0x00003aca branch  0x00004327 
+ 00017148  0x00003ace setarg  0x00000000 
+ 00017149  0x00003acf store  0x00000002 , 0x000043ef 
+ 00017150  0x00003ad0 rtn 
+ 00017151  0x00003ad2 setarg  0x00000000 
+ 00017152  0x00003ad3 store  0x00000002 , 0x000043f1 
+ 00017153  0x00003ad4 rtn 
+ 00017154  0x00003ad9 fetch  0x00000002 , 0x000043f1 
+ 00017155  0x00003ada set1  0x00000007 , 0x0000003f 
+ 00017156  0x00003adb store  0x00000002 , 0x000043ef 
+ 00017157  0x00003adc setarg  0x00000000 
+ 00017158  0x00003add store  0x00000002 , 0x000043f1 
+ 00017159  0x00003ade rtn 
+ 00017160  0x00003ae7 arg  0x00000009 , 0x00000007 
+ 00017161  0x00003ae8 branch  0x000024e7 
+ 00017162  0x00003aeb arg  0x00000009 , 0x00000007 
+ 00017163  0x00003aec branch  0x000024eb 
+ 00017164  0x00003aef jam  0x00000005 , 0x000043ed 
+ 00017165  0x00003af0 branch  0x00004308 
+ 00017166  0x00003af3 arg  0x000043ed , 0x00000013 
+ 00017167  0x00003af4 arg  0x0000430a , 0x00000012 
+ 00017168  0x00003af5 branch  0x000042e0 
+ 00017169  0x00003af9 jam  0x0000000f , 0x0000066f 
+ 00017170  0x00003afa branch  0x00007834 
+ 00017171  0x00003afd jam  0x00000010 , 0x0000066f 
+ 00017172  0x00003afe branch  0x00007834 
+ 00017173  0x00003b01 jam  0x0000000e , 0x0000066f 
+ 00017174  0x00003b02 branch  0x00007834 
+ 00017175  0x00003b05 jam  0x0000000d , 0x0000066f 
+ 00017176  0x00003b06 branch  0x00007834 
+ 00017177  0x00003b09 jam  0x00000017 , 0x0000066f 
+ 00017178  0x00003b0a branch  0x00007834 
+ 00017179  0x00003b0d jam  0x00000018 , 0x0000066f 
+ 00017180  0x00003b0e branch  0x00007834 
+ 00017181  0x00003b11 jam  0x00000016 , 0x0000066f 
+ 00017182  0x00003b12 branch  0x00007834 
+ 00017183  0x00003b15 jam  0x00000011 , 0x0000066f 
+ 00017184  0x00003b16 branch  0x00007834 
+ 00017185  0x00003b19 jam  0x00000015 , 0x0000066f 
+ 00017186  0x00003b1a branch  0x00007834 
+ 00017187  0x00003b1d jam  0x00000014 , 0x0000066f 
+ 00017188  0x00003b1e branch  0x00007834 
+ 00017189  0x00003b22 jam  0x00000013 , 0x0000066f 
+ 00017190  0x00003b23 branch  0x00007834 
+ 00017191  0x00003b26 jam  0x00000019 , 0x0000066f 
+ 00017192  0x00003b27 branch  0x00007834 
+ 00017193  0x00003b2b jam  0x0000001f , 0x0000066f 
+ 00017194  0x00003b2c branch  0x00007834 
+ 00017195  0x00003b30 set1  0x0000000d , 0x00000000 
+ 00017196  0x00003b31 rtn 
+ 00017197  0x00003b34 set0  0x0000000d , 0x00000000 
+ 00017198  0x00003b35 rtn 
+ 00017199  0x00003b39 call  0x00004343 
+ 00017200  0x00003b3a beq  0x00000002 , 0x00004339 
+ 00017201  0x00003b3c setarg  0x00000001 
+ 00017202  0x00003b3d istore  0x00000001 , 0x00000013 
+ 00017203  0x00003b3e add  0x00000002 , 0x00000003 , 0x00000011 
+ 00017204  0x00003b3f add  0x00000002 , 0x00000006 , 0x00000012 
+ 00017205  0x00003b41 ifetcht  0x00000001 , 0x00000011 
+ 00017206  0x00003b42 increase  0x00000001 , 0x00000013 
+ 00017207  0x00003b43 istoret  0x00000001 , 0x00000013 
+ 00017208  0x00003b44 branch  0x000042f8 
+ 00017209  0x00003b47 setarg  0x00000000 
+ 00017210  0x00003b48 istore  0x00000001 , 0x00000013 
+ 00017211  0x00003b49 fetch  0x00000002 , 0x000044e9 
+ 00017212  0x00003b4a bbit0  0x00000009 , 0x0000433f 
+ 00017213  0x00003b4b call  0x000030c5 
+ 00017214  0x00003b4c call  0x0000431f 
+ 00017215  0x00003b4e fetcht  0x00000002 , 0x00004430 
+ 00017216  0x00003b4f add  0x00000002 , 0x00000002 , 0x00000011 
+ 00017217  0x00003b50 add  0x00000002 , 0x00000004 , 0x00000012 
+ 00017218  0x00003b51 branch  0x00004335 
+ 00017219  0x00003b54 fetcht  0x00000002 , 0x00004430 
+ 00017220  0x00003b55 add  0x00000002 , 0x00000000 , 0x00000013 
+ 00017221  0x00003b56 ifetch  0x00000001 , 0x00000013 
+ 00017222  0x00003b57 rtn 
+ 00017223  0x00003b5a call  0x00004343 
+ 00017224  0x00003b5b bne  0x00000000 , 0x0000434a 
+ 00017225  0x00003b5c branch  0x00004327 
+ 00017226  0x00003b5e add  0x00000002 , 0x0000000a , 0x00000012 
+ 00017227  0x00003b5f branch  0x000042f8 
+ 00017228  0x00003b66 fetch  0x00000008 , 0x00004ceb 
+ 00017229  0x00003b67 store  0x00000008 , 0x00004cfe 
+ 00017230  0x00003b68 jam  0x00000000 , 0x00004d0e 
+ 00017231  0x00003b69 fetch  0x00000001 , 0x00004d02 
+ 00017232  0x00003b6a lshift2  0x0000003f , 0x0000003f 
+ 00017233  0x00003b6b arg  0x00004b87 , 0x00000002 
+ 00017234  0x00003b6c iadd  0x00000002 , 0x00000002 
+ 00017235  0x00003b6d ifetch  0x00000004 , 0x00000002 
+ 00017236  0x00003b6e store  0x00000004 , 0x00004cfa 
+ 00017237  0x00003b70 fetch  0x00000001 , 0x00004d0e 
+ 00017238  0x00003b71 nbranch  0x0000435f , 0x00000034 
+ 00017239  0x00003b72 fetcht  0x00000002 , 0x00004cf4 
+ 00017240  0x00003b73 ifetch  0x00000001 , 0x00000002 
+ 00017241  0x00003b74 store  0x00000001 , 0x00004d0a 
+ 00017242  0x00003b75 increase  0x00000001 , 0x00000002 
+ 00017243  0x00003b76 storet  0x00000002 , 0x00004cf4 
+ 00017244  0x00003b77 rshift4  0x0000003f , 0x0000003f 
+ 00017245  0x00003b78 store  0x00000001 , 0x00004cf9 
+ 00017246  0x00003b79 branch  0x00004362 
+ 00017247  0x00003b7b fetch  0x00000001 , 0x00004d0a 
+ 00017248  0x00003b7c and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00017249  0x00003b7d store  0x00000001 , 0x00004cf9 
+ 00017250  0x00003b7f fetch  0x00000001 , 0x00004d0e 
+ 00017251  0x00003b80 setflip  0x00000000 , 0x0000003f 
+ 00017252  0x00003b81 store  0x00000001 , 0x00004d0e 
+ 00017253  0x00003b82 arg  0x00004b77 , 0x00000002 
+ 00017254  0x00003b83 fetch  0x00000001 , 0x00004cf9 
+ 00017255  0x00003b84 iadd  0x00000002 , 0x00000002 
+ 00017256  0x00003b85 ifetch  0x00000001 , 0x00000002 
+ 00017257  0x00003b86 fetcht  0x00000001 , 0x00004d02 
+ 00017258  0x00003b87 call  0x0000439a 
+ 00017259  0x00003b88 store  0x00000001 , 0x00004d02 
+ 00017260  0x00003b8a fetch  0x00000001 , 0x00004cf9 
+ 00017261  0x00003b8b and  0x0000003f , 0x00000008 , 0x00000002 
+ 00017262  0x00003b8c storet  0x00000001 , 0x00004cf8 
+ 00017263  0x00003b8d and  0x0000003f , 0x00000007 , 0x00000002 
+ 00017264  0x00003b8e storet  0x00000001 , 0x00004cf9 
+ 00017265  0x00003b90 call  0x000043a3 
+ 00017266  0x00003b91 storet  0x00000004 , 0x00004d06 
+ 00017267  0x00003b93 fetch  0x00000001 , 0x00004cf8 
+ 00017268  0x00003b94 branch  0x00004379 , 0x00000034 
+ 00017269  0x00003b95 fetch  0x00000004 , 0x00004cfe 
+ 00017270  0x00003b96 fetcht  0x00000004 , 0x00004d06 
+ 00017271  0x00003b97 isub  0x00000002 , 0x0000003f 
+ 00017272  0x00003b98 branch  0x0000437c 
+ 00017273  0x00003b9a fetch  0x00000004 , 0x00004cfe 
+ 00017274  0x00003b9b fetcht  0x00000004 , 0x00004d06 
+ 00017275  0x00003b9c iadd  0x00000002 , 0x0000003f 
+ 00017276  0x00003b9e store  0x00000004 , 0x00004cfe 
+ 00017277  0x00003b9f arg  0x00007fff , 0x00000002 
+ 00017278  0x00003ba0 isub  0x00000002 , 0x0000003f 
+ 00017279  0x00003ba1 bbit1  0x0000001f , 0x00004382 
+ 00017280  0x00003ba2 storet  0x00000004 , 0x00004cfe 
+ 00017281  0x00003ba3 branch  0x00004388 
+ 00017282  0x00003ba5 fetch  0x00000004 , 0x00004cfe 
+ 00017283  0x00003ba6 arg  0x00008000 , 0x00000002 
+ 00017284  0x00003ba7 iadd  0x00000002 , 0x0000003f 
+ 00017285  0x00003ba8 bbit0  0x0000001f , 0x00004388 
+ 00017286  0x00003ba9 arg  0xffff8000 , 0x00000002 
+ 00017287  0x00003baa storet  0x00000004 , 0x00004cfe 
+ 00017288  0x00003bac fetch  0x00000001 , 0x00004d02 
+ 00017289  0x00003bad lshift2  0x0000003f , 0x0000003f 
+ 00017290  0x00003bae arg  0x00004b87 , 0x00000002 
+ 00017291  0x00003baf iadd  0x00000002 , 0x00000002 
+ 00017292  0x00003bb0 ifetch  0x00000004 , 0x00000002 
+ 00017293  0x00003bb1 store  0x00000004 , 0x00004cfa 
+ 00017294  0x00003bb3 fetch  0x00000002 , 0x00004cf6 
+ 00017295  0x00003bb4 fetcht  0x00000002 , 0x00004cfe 
+ 00017296  0x00003bb5 istoret  0x00000002 , 0x0000003f 
+ 00017297  0x00003bb6 increase  0x00000002 , 0x0000003f 
+ 00017298  0x00003bb7 store  0x00000002 , 0x00004cf6 
+ 00017299  0x00003bb9 fetch  0x00000001 , 0x00004cf3 
+ 00017300  0x00003bba increase  0xffffffff , 0x0000003f 
+ 00017301  0x00003bbb store  0x00000001 , 0x00004cf3 
+ 00017302  0x00003bbc nbranch  0x00004355 , 0x00000034 
+ 00017303  0x00003bbd fetch  0x00000008 , 0x00004cfe 
+ 00017304  0x00003bbe store  0x00000008 , 0x00004ceb 
+ 00017305  0x00003bbf rtn 
+ 00017306  0x00003bc2 iadd  0x00000002 , 0x0000003f 
+ 00017307  0x00003bc3 bbit0  0x00000007 , 0x0000439e 
+ 00017308  0x00003bc4 setarg  0x00000000 
+ 00017309  0x00003bc5 rtn 
+ 00017310  0x00003bc7 and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00017311  0x00003bc8 sub  0x0000003f , 0x00000058 , 0x0000003e 
+ 00017312  0x00003bc9 rtn  0x00000002 
+ 00017313  0x00003bca setarg  0x00000058 
+ 00017314  0x00003bcb rtn 
+ 00017315  0x00003bce fetchr  0x00000011 , 0x00000004 , 0x00004cfa 
+ 00017316  0x00003bcf rshift3  0x00000011 , 0x00000002 
+ 00017317  0x00003bd0 fetch  0x00000001 , 0x00004cf9 
+ 00017318  0x00003bd1 bbit0  0x00000002 , 0x000043a9 
+ 00017319  0x00003bd2 copy  0x00000011 , 0x0000003f 
+ 00017320  0x00003bd3 iadd  0x00000002 , 0x00000002 
+ 00017321  0x00003bd5 fetch  0x00000001 , 0x00004cf9 
+ 00017322  0x00003bd6 bbit0  0x00000001 , 0x000043ad 
+ 00017323  0x00003bd7 rshift  0x00000011 , 0x0000003f 
+ 00017324  0x00003bd8 iadd  0x00000002 , 0x00000002 
+ 00017325  0x00003bda fetch  0x00000001 , 0x00004cf9 
+ 00017326  0x00003bdb rtnbit0  0x00000000 
+ 00017327  0x00003bdc rshift2  0x00000011 , 0x0000003f 
+ 00017328  0x00003bdd iadd  0x00000002 , 0x00000002 
+ 00017329  0x00003bde rtn 
+ 00017330  0x00003be4 call  0x00007396 
+ 00017331  0x00003be5 rtn  0x0000002b 
+ 00017332  0x00003be6 setarg  0x000045be 
+ 00017333  0x00003be7 store  0x00000002 , 0x000045e0 
+ 00017334  0x00003be9 setarg  0x0000330a 
+ 00017335  0x00003bea store  0x00000002 , 0x000045e2 
+ 00017336  0x00003bec setarg  0x0000465e 
+ 00017337  0x00003bed store  0x00000002 , 0x000045e4 
+ 00017338  0x00003bef setarg  0x0000442e 
+ 00017339  0x00003bf0 store  0x00000002 , 0x000043d5 
+ 00017340  0x00003bf2 setarg  0x00004430 
+ 00017341  0x00003bf3 store  0x00000002 , 0x000043d7 
+ 00017342  0x00003bf5 setarg  0x00004455 
+ 00017343  0x00003bf6 store  0x00000002 , 0x000043db 
+ 00017344  0x00003bf8 setarg  0x00004476 
+ 00017345  0x00003bf9 store  0x00000002 , 0x000043dd 
+ 00017346  0x00003bfb setarg  0x00004308 
+ 00017347  0x00003bfc store  0x00000002 , 0x000043d3 
+ 00017348  0x00003bfe setarg  0x000044d1 
+ 00017349  0x00003bff store  0x00000002 , 0x000043df 
+ 00017350  0x00003c01 setarg  0x00004494 
+ 00017351  0x00003c02 store  0x00000002 , 0x000043e3 
+ 00017352  0x00003c04 bpatch  0x0000002e , 0x00004005 
+ 00017353  0x00003c05 call  0x00004412 
+ 00017354  0x00003c06 call  0x00004463 
+ 00017355  0x00003c07 call  0x000078ad 
+ 00017356  0x00003c08 jam  0x00000002 , 0x000040c0 
+ 00017357  0x00003c09 jam  0x00000000 , 0x000049b7 
+ 00017358  0x00003c0a fetch  0x00000001 , 0x00004779 
+ 00017359  0x00003c0b store  0x00000001 , 0x00004648 
+ 00017360  0x00003c0c beq  0x00000000 , 0x000043db 
+ 00017361  0x00003c0d fetch  0x00000001 , 0x0000477a 
+ 00017362  0x00003c0e store  0x00000001 , 0x000044ec 
+ 00017363  0x00003c0f jam  0x00000000 , 0x00004388 
+ 00017364  0x00003c11 call  0x00007776 
+ 00017365  0x00003c12 call  0x00007780 
+ 00017366  0x00003c13 jam  0x00000001 , 0x000047a1 
+ 00017367  0x00003c14 fetch  0x00000002 , 0x000044e9 
+ 00017368  0x00003c15 rtnbit1  0x0000000c 
+ 00017369  0x00003c16 branch  0x00004327 
+ 00017370  0x00003c1a branch  0x000043f9 
+ 00017371  0x00003c1d jam  0x00000002 , 0x000047a1 
+ 00017372  0x00003c1f jam  0x00000001 , 0x00004388 
+ 00017373  0x00003c20 setarg  0x00000020 
+ 00017374  0x00003c21 call  0x000063c7 
+ 00017375  0x00003c23 arg  0x00004273 , 0x00000005 
+ 00017376  0x00003c24 fetch  0x00000001 , 0x000042db 
+ 00017377  0x00003c26 and  0x0000003f , 0x000000f0 , 0x00000002 
+ 00017378  0x00003c27 rshift4  0x00000002 , 0x00000002 
+ 00017379  0x00003c28 call  0x000043f3 
+ 00017380  0x00003c29 istoret  0x00000001 , 0x00000005 
+ 00017381  0x00003c2a and  0x0000003f , 0x0000000f , 0x00000002 
+ 00017382  0x00003c2b call  0x000043f3 
+ 00017383  0x00003c2c istoret  0x00000001 , 0x00000005 
+ 00017384  0x00003c2d call  0x00002955 
+ 00017385  0x00003c2e fetcht  0x00000001 , 0x0000426b 
+ 00017386  0x00003c2f copy  0x00000002 , 0x00000039 
+ 00017387  0x00003c30 arg  0x0000434b , 0x00000005 
+ 00017388  0x00003c31 arg  0x0000426c , 0x00000006 
+ 00017389  0x00003c32 call  0x00007cda 
+ 00017390  0x00003c34 fetcht  0x00000001 , 0x0000426b 
+ 00017391  0x00003c35 copy  0x00000002 , 0x00000039 
+ 00017392  0x00003c36 arg  0x0000436b , 0x00000005 
+ 00017393  0x00003c37 arg  0x0000426c , 0x00000006 
+ 00017394  0x00003c38 branch  0x00007cda 
+ 00017395  0x00003c3a sub  0x00000002 , 0x00000009 , 0x0000003e 
+ 00017396  0x00003c3b branch  0x000043f7 , 0x00000002 
+ 00017397  0x00003c3c add  0x00000002 , 0x00000037 , 0x00000002 
+ 00017398  0x00003c3d rtn 
+ 00017399  0x00003c3f add  0x00000002 , 0x00000030 , 0x00000002 
+ 00017400  0x00003c40 rtn 
+ 00017401  0x00003c43 fetch  0x00000001 , 0x0000476e 
+ 00017402  0x00003c44 bne  0x000000ff , 0x0000440b 
+ 00017403  0x00003c46 fetch  0x00000001 , 0x0000476c 
+ 00017404  0x00003c47 bne  0x000000ff , 0x0000440e 
+ 00017405  0x00003c49 fetch  0x00000001 , 0x00004777 
+ 00017406  0x00003c4a bne  0x000000ff , 0x00004410 
+ 00017407  0x00003c4c fetch  0x00000001 , 0x000046da 
+ 00017408  0x00003c4d copy  0x0000003f , 0x00000039 
+ 00017409  0x00003c4e setarg  0x000046db 
+ 00017410  0x00003c4f copy  0x0000003f , 0x00000011 
+ 00017411  0x00003c51 copy  0x00000011 , 0x00000006 
+ 00017412  0x00003c52 ifetch  0x00000001 , 0x00000006 
+ 00017413  0x00003c53 copy  0x00000006 , 0x00000011 
+ 00017414  0x00003c54 beq  0x000000ff , 0x00004409 
+ 00017415  0x00003c55 copy  0x0000003f , 0x00000002 
+ 00017416  0x00003c56 call  0x00006ef7 
+ 00017417  0x00003c58 loop  0x00004403 
+ 00017418  0x00003c5a rtn 
+ 00017419  0x00003c5c fetch  0x00000008 , 0x0000476e 
+ 00017420  0x00003c5d store  0x00000008 , 0x000046dd 
+ 00017421  0x00003c5e branch  0x000043fb 
+ 00017422  0x00003c60 store  0x00000001 , 0x000046db 
+ 00017423  0x00003c61 branch  0x000043fd 
+ 00017424  0x00003c63 store  0x00000001 , 0x000046dc 
+ 00017425  0x00003c64 branch  0x000043ff 
+ 00017426  0x00003c68 call  0x000045ba 
+ 00017427  0x00003c69 call  0x00004640 
+ 00017428  0x00003c6a arg  0x00000000 , 0x00000011 
+ 00017429  0x00003c6b call  0x00007055 
+ 00017430  0x00003c6c call  0x000043f9 
+ 00017431  0x00003c6d call  0x0000446b 
+ 00017432  0x00003c6e call  0x0000442c 
+ 00017433  0x00003c6f branch  0x0000441b 
+ 00017434  0x00003c71 rtn 
+ 00017435  0x00003c73 fetch  0x00000001 , 0x000049a4 
+ 00017436  0x00003c74 copy  0x0000003f , 0x00000039 
+ 00017437  0x00003c75 setarg  0x000049a5 
+ 00017438  0x00003c76 copy  0x0000003f , 0x00000011 
+ 00017439  0x00003c78 copy  0x00000011 , 0x00000006 
+ 00017440  0x00003c79 ifetch  0x00000001 , 0x00000006 
+ 00017441  0x00003c7a copy  0x00000006 , 0x00000011 
+ 00017442  0x00003c7b beq  0x000000ff , 0x00004426 
+ 00017443  0x00003c7c copy  0x0000003f , 0x00000002 
+ 00017444  0x00003c7d store  0x00000001 , 0x000049a9 
+ 00017445  0x00003c7e call  0x00004428 
+ 00017446  0x00003c80 loop  0x0000441f 
+ 00017447  0x00003c82 rtn 
+ 00017448  0x00003c85 fetch  0x00000001 , 0x000049a9 
+ 00017449  0x00003c86 rtneq  0x000000ff 
+ 00017450  0x00003c87 iforce  0x00000002 
+ 00017451  0x00003c88 branch  0x00006ef7 
+ 00017452  0x00003c8c jam  0x00000064 , 0x0000477d 
+ 00017453  0x00003c8d rtn 
+ 00017454  0x00003c90 call  0x00004431 
+ 00017455  0x00003c91 call  0x00007de2 
+ 00017456  0x00003c93 branch  0x0000701b 
+ 00017457  0x00003c96 call  0x0000788b 
+ 00017458  0x00003c98 arg  0x00000010 , 0x00000039 
+ 00017459  0x00003c99 arg  0x00008070 , 0x00000006 
+ 00017460  0x00003c9b copy  0x00000006 , 0x00000005 
+ 00017461  0x00003c9c ifetch  0x00000001 , 0x00000006 
+ 00017462  0x00003c9d beq  0x0000001f , 0x00004445 
+ 00017463  0x00003c9e beq  0x00000020 , 0x00004445 
+ 00017464  0x00003c9f beq  0x00000021 , 0x00004445 
+ 00017465  0x00003ca0 beq  0x00000022 , 0x00004445 
+ 00017466  0x00003ca1 beq  0x00000023 , 0x00004445 
+ 00017467  0x00003ca2 beq  0x0000002c , 0x00004445 
+ 00017468  0x00003ca3 beq  0x0000002d , 0x00004445 
+ 00017469  0x00003ca4 beq  0x00000000 , 0x00004445 
+ 00017470  0x00003ca6 loop  0x00004434 
+ 00017471  0x00003ca7 arg  0x000080dc , 0x0000003f 
+ 00017472  0x00003ca8 isub  0x00000006 , 0x0000003e 
+ 00017473  0x00003ca9 branch  0x0000444b , 0x00000005 
+ 00017474  0x00003cab arg  0x00000008 , 0x00000039 
+ 00017475  0x00003cac arg  0x000080d4 , 0x00000006 
+ 00017476  0x00003cad branch  0x00004434 
+ 00017477  0x00003cb0 setarg  0x00000040 
+ 00017478  0x00003cb1 istore  0x00000001 , 0x00000005 
+ 00017479  0x00003cb2 branch  0x0000443e 
+ 00017480  0x00003cb4 setarg  0x00000080 
+ 00017481  0x00003cb5 istore  0x00000001 , 0x00000005 
+ 00017482  0x00003cb6 branch  0x0000443e 
+ 00017483  0x00003cb8 fetch  0x00000001 , 0x000049a4 
+ 00017484  0x00003cb9 copy  0x0000003f , 0x00000039 
+ 00017485  0x00003cba arg  0x000049a5 , 0x00000006 
+ 00017486  0x00003cbc ifetch  0x00000001 , 0x00000006 
+ 00017487  0x00003cbd set1  0x00000007 , 0x0000003f 
+ 00017488  0x00003cbe arg  0x0000003e , 0x00000002 
+ 00017489  0x00003cbf call  0x00006f20 
+ 00017490  0x00003cc0 loop  0x0000444e 
+ 00017491  0x00003cc1 rtn 
+ 00017492  0x00003cc4 branch  0x00007027 
+ 00017493  0x00003cc7 call  0x0000446d 
+ 00017494  0x00003cc8 call  0x00004458 
+ 00017495  0x00003cc9 branch  0x00004454 
+ 00017496  0x00003ccc fetch  0x00000002 , 0x000044e9 
+ 00017497  0x00003ccd rtnbit1  0x00000009 
+ 00017498  0x00003cce fetch  0x00000001 , 0x000049b7 
+ 00017499  0x00003ccf beq  0x00000001 , 0x0000445d 
+ 00017500  0x00003cd0 rtn 
+ 00017501  0x00003cd2 fetch  0x00000001 , 0x00004798 
+ 00017502  0x00003cd3 rtneq  0x00000001 
+ 00017503  0x00003cd4 jam  0x00000001 , 0x00004798 
+ 00017504  0x00003cd5 call  0x00004467 
+ 00017505  0x00003cd6 call  0x00004469 
+ 00017506  0x00003cd7 branch  0x00004480 
+ 00017507  0x00003cda fetch  0x00000002 , 0x000049bc 
+ 00017508  0x00003cdb store  0x00000002 , 0x000049be 
+ 00017509  0x00003cdc jam  0x00000000 , 0x000049c0 
+ 00017510  0x00003cdd rtn 
+ 00017511  0x00003ce1 setarg  0x00000000 
+ 00017512  0x00003ce2 branch  0x00004464 
+ 00017513  0x00003ce6 arg  0x00000000 , 0x00000011 
+ 00017514  0x00003ce7 branch  0x000077bf 
+ 00017515  0x00003ceb arg  0x00000000 , 0x00000011 
+ 00017516  0x00003cec branch  0x000077c4 
+ 00017517  0x00003cf3 fetch  0x00000002 , 0x000044e9 
+ 00017518  0x00003cf4 rtnbit0  0x00000009 
+ 00017519  0x00003cf5 call  0x00002a28 
+ 00017520  0x00003cf6 nrtn  0x00000034 
+ 00017521  0x00003cf7 arg  0x000046c6 , 0x00000011 
+ 00017522  0x00003cf8 call  0x000078ca 
+ 00017523  0x00003cf9 nrtn  0x00000028 
+ 00017524  0x00003cfa arg  0x000046c6 , 0x00000006 
+ 00017525  0x00003cfb branch  0x000063cb 
+ 00017526  0x00003cfe copy  0x00000013 , 0x0000003f 
+ 00017527  0x00003cff beq  0x0000002d , 0x00004347 
+ 00017528  0x00003d00 beq  0x00000010 , 0x0000432f 
+ 00017529  0x00003d01 beq  0x00000014 , 0x0000447c 
+ 00017530  0x00003d02 beq  0x00000015 , 0x00004486 
+ 00017531  0x00003d03 rtn 
+ 00017532  0x00003d06 call  0x00004467 
+ 00017533  0x00003d07 call  0x00004469 
+ 00017534  0x00003d08 set0  0x00000027 , 0x00000000 
+ 00017535  0x00003d09 branch  0x00004482 
+ 00017536  0x00003d0b fetch  0x00000002 , 0x00004799 
+ 00017537  0x00003d0c store  0x00000002 , 0x0000479b 
+ 00017538  0x00003d0e jam  0x00000014 , 0x0000477c 
+ 00017539  0x00003d0f jam  0x00000000 , 0x00004094 
+ 00017540  0x00003d10 call  0x00004315 
+ 00017541  0x00003d11 branch  0x0000432b 
+ 00017542  0x00003d15 set1  0x00000027 , 0x00000000 
+ 00017543  0x00003d16 call  0x00004463 
+ 00017544  0x00003d17 call  0x0000456e 
+ 00017545  0x00003d18 call  0x00004562 
+ 00017546  0x00003d1a setarg  0x00000000 
+ 00017547  0x00003d1b store  0x00000005 , 0x0000474a 
+ 00017548  0x00003d1c call  0x000078ad 
+ 00017549  0x00003d1d jam  0x0000000a , 0x0000470c 
+ 00017550  0x00003d1e jam  0x0000000a , 0x0000470e 
+ 00017551  0x00003d1f jam  0x0000000a , 0x00004710 
+ 00017552  0x00003d21 jam  0x00000002 , 0x000040c0 
+ 00017553  0x00003d22 setarg  0x00000020 
+ 00017554  0x00003d23 call  0x000063c7 
+ 00017555  0x00003d24 branch  0x00004317 
+ 00017556  0x00003d27 call  0x0000450f 
+ 00017557  0x00003d28 call  0x00004512 
+ 00017558  0x00003d29 call  0x00004515 
+ 00017559  0x00003d2c call  0x000044a1 
+ 00017560  0x00003d2d branch  0x00004499 
+ 00017561  0x00003d31 arg  0x000049b8 , 0x00000013 
+ 00017562  0x00003d32 arg  0x00000000 , 0x00000012 
+ 00017563  0x00003d33 branch  0x000042e0 
+ 00017564  0x00003d36 arg  0x000049be , 0x00000013 
+ 00017565  0x00003d37 arg  0x0000449f , 0x00000012 
+ 00017566  0x00003d38 branch  0x000042e7 
+ 00017567  0x00003d3a jam  0x00000001 , 0x000049c0 
+ 00017568  0x00003d3b rtn 
+ 00017569  0x00003d3e arg  0x0000479b , 0x00000013 
+ 00017570  0x00003d3f arg  0x000044a4 , 0x00000012 
+ 00017571  0x00003d40 branch  0x000042e7 
+ 00017572  0x00003d42 jam  0x00000002 , 0x00004798 
+ 00017573  0x00003d43 jam  0x00000000 , 0x000049b7 
+ 00017574  0x00003d44 branch  0x0000448a 
+ 00017575  0x00003d47 fetch  0x00000001 , 0x00004776 
+ 00017576  0x00003d48 rtn  0x00000034 
+ 00017577  0x00003d49 arg  0x0000477c , 0x00000013 
+ 00017578  0x00003d4a arg  0x000044ac , 0x00000012 
+ 00017579  0x00003d4b branch  0x000042e0 
+ 00017580  0x00003d4d fetch  0x00000001 , 0x0000477b 
+ 00017581  0x00003d4e store  0x00000001 , 0x0000477c 
+ 00017582  0x00003d4f fetch  0x00000001 , 0x0000477f 
+ 00017583  0x00003d50 nrtn  0x00000034 
+ 00017584  0x00003d52 call  0x00006fb0 
+ 00017585  0x00003d53 store  0x00000002 , 0x00004796 
+ 00017586  0x00003d54 arg  0x00004790 , 0x00000011 
+ 00017587  0x00003d55 call  0x00006fd7 
+ 00017588  0x00003d56 fetcht  0x00000001 , 0x0000477d 
+ 00017589  0x00003d57 isub  0x00000002 , 0x0000003e 
+ 00017590  0x00003d58 branch  0x000044b9 , 0x00000002 
+ 00017591  0x00003d59 store  0x00000001 , 0x0000477d 
+ 00017592  0x00003d5a copy  0x0000003f , 0x00000002 
+ 00017593  0x00003d5c storet  0x00000001 , 0x0000477e 
+ 00017594  0x00003d5d fetch  0x00000001 , 0x00004778 
+ 00017595  0x00003d5e isub  0x00000002 , 0x0000003e 
+ 00017596  0x00003d5f call  0x000044c4 , 0x00000002 
+ 00017597  0x00003d60 storet  0x00000001 , 0x00004789 
+ 00017598  0x00003d61 arg  0x00000006 , 0x00000039 
+ 00017599  0x00003d62 arg  0x00004784 , 0x00000006 
+ 00017600  0x00003d63 call  0x000044cb 
+ 00017601  0x00003d64 store  0x00000001 , 0x0000478a 
+ 00017602  0x00003d65 arg  0x00004781 , 0x00000011 
+ 00017603  0x00003d66 branch  0x000078b2 
+ 00017604  0x00003d68 fetch  0x00000001 , 0x00004780 
+ 00017605  0x00003d69 nrtn  0x00000034 
+ 00017606  0x00003d6a jam  0x00000001 , 0x00004780 
+ 00017607  0x00003d6b arg  0x00000001 , 0x00000011 
+ 00017608  0x00003d6c branch  0x000077c4 
+ 00017609  0x00003d6e arg  0x00000001 , 0x00000011 
+ 00017610  0x00003d6f branch  0x000077bf 
+ 00017611  0x00003d74 arg  0x00000000 , 0x00000011 
+ 00017612  0x00003d76 ifetch  0x00000001 , 0x00000006 
+ 00017613  0x00003d77 iadd  0x00000011 , 0x00000011 
+ 00017614  0x00003d78 loop  0x000044cc 
+ 00017615  0x00003d7a and  0x00000011 , 0x000000ff , 0x0000003f 
+ 00017616  0x00003d7b rtn 
+ 00017617  0x00003d7e fetch  0x00000001 , 0x00004397 
+ 00017618  0x00003d7f beq  0x00000012 , 0x000044d4 
+ 00017619  0x00003d80 rtn 
+ 00017620  0x00003d82 fetch  0x00000002 , 0x00004398 
+ 00017621  0x00003d83 beq  0x00000019 , 0x000044eb 
+ 00017622  0x00003d84 rtn 
+ 00017623  0x00003d87 bpatch  0x0000002f , 0x00004005 
+ 00017624  0x00003d88 ifetch  0x00000005 , 0x00000011 
+ 00017625  0x00003d89 store  0x00000005 , 0x000006f1 
+ 00017626  0x00003d8a fetch  0x00000002 , 0x000006f1 
+ 00017627  0x00003d8b arg  0x00006b5a , 0x00000002 
+ 00017628  0x00003d8c isub  0x00000002 , 0x0000003e 
+ 00017629  0x00003d8d nrtn  0x00000005 
+ 00017630  0x00003d8e fetch  0x00000002 , 0x000006f4 
+ 00017631  0x00003d8f byteswap  0x0000003f , 0x0000003f 
+ 00017632  0x00003d90 store  0x00000002 , 0x000006f4 
+ 00017633  0x00003d91 copy  0x0000003f , 0x00000039 
+ 00017634  0x00003d92 increase  0x00000005 , 0x00000011 
+ 00017635  0x00003d93 copy  0x00000011 , 0x00000006 
+ 00017636  0x00003d94 arg  0x000006f6 , 0x00000005 
+ 00017637  0x00003d95 call  0x00007cda 
+ 00017638  0x00003d96 ifetch  0x00000001 , 0x00000006 
+ 00017639  0x00003d97 store  0x00000001 , 0x00000700 
+ 00017640  0x00003d98 arg  0x000006f3 , 0x00000011 
+ 00017641  0x00003d99 arg  0x000006f6 , 0x00000012 
+ 00017642  0x00003d9a rtn 
+ 00017643  0x00003d9d setarg  0x00000000 
+ 00017644  0x00003d9e store  0x00000005 , 0x00004700 
+ 00017645  0x00003d9f store  0x00000005 , 0x00004705 
+ 00017646  0x00003da0 call  0x000044d7 
+ 00017647  0x00003da1 copy  0x00000012 , 0x00000006 
+ 00017648  0x00003da2 arg  0x00004700 , 0x00000005 
+ 00017649  0x00003da3 arg  0x0000000a , 0x00000039 
+ 00017650  0x00003da4 call  0x00007cda 
+ 00017651  0x00003da6 bpatch  0x00000030 , 0x00004006 
+ 00017652  0x00003da7 ifetch  0x00000001 , 0x00000011 
+ 00017653  0x00003da8 beq  0x00000002 , 0x0000451e 
+ 00017654  0x00003da9 beq  0x00000003 , 0x00004533 
+ 00017655  0x00003daa beq  0x00000004 , 0x0000453a 
+ 00017656  0x00003dab beq  0x00000005 , 0x0000453a 
+ 00017657  0x00003dac beq  0x00000006 , 0x000045aa 
+ 00017658  0x00003dad beq  0x00000007 , 0x000045ab 
+ 00017659  0x00003dae beq  0x00000008 , 0x000045ae 
+ 00017660  0x00003daf rtn 
+ 00017661  0x00003db2 call  0x000044eb 
+ 00017662  0x00003db3 fetch  0x00000001 , 0x000006f3 
+ 00017663  0x00003db4 beq  0x00000004 , 0x00004502 
+ 00017664  0x00003db5 beq  0x00000005 , 0x00004502 
+ 00017665  0x00003db6 rtn 
+ 00017666  0x00003db8 fetch  0x00000001 , 0x00004700 
+ 00017667  0x00003db9 ncall  0x00004509 , 0x00000034 
+ 00017668  0x00003dba fetch  0x00000001 , 0x00004702 
+ 00017669  0x00003dbb ncall  0x0000450b , 0x00000034 
+ 00017670  0x00003dbc fetch  0x00000001 , 0x00004704 
+ 00017671  0x00003dbd ncall  0x0000450d , 0x00000034 
+ 00017672  0x00003dbe rtn 
+ 00017673  0x00003dc1 jam  0x00000005 , 0x000049a1 
+ 00017674  0x00003dc2 rtn 
+ 00017675  0x00003dc4 jam  0x00000005 , 0x000049a2 
+ 00017676  0x00003dc5 rtn 
+ 00017677  0x00003dc7 jam  0x00000005 , 0x000049a3 
+ 00017678  0x00003dc8 rtn 
+ 00017679  0x00003dcb arg  0x000049a1 , 0x00000013 
+ 00017680  0x00003dcc arg  0x00004518 , 0x00000012 
+ 00017681  0x00003dcd branch  0x000042e0 
+ 00017682  0x00003dcf arg  0x000049a2 , 0x00000013 
+ 00017683  0x00003dd0 arg  0x0000451a , 0x00000012 
+ 00017684  0x00003dd1 branch  0x000042e0 
+ 00017685  0x00003dd3 arg  0x000049a3 , 0x00000013 
+ 00017686  0x00003dd4 arg  0x0000451c , 0x00000012 
+ 00017687  0x00003dd5 branch  0x000042e0 
+ 00017688  0x00003dd8 jam  0x00000000 , 0x00004700 
+ 00017689  0x00003dd9 branch  0x0000453a 
+ 00017690  0x00003ddb jam  0x00000000 , 0x00004702 
+ 00017691  0x00003ddc branch  0x0000453a 
+ 00017692  0x00003dde jam  0x00000000 , 0x00004704 
+ 00017693  0x00003ddf branch  0x0000453a 
+ 00017694  0x00003de5 fetch  0x00000001 , 0x00004700 
+ 00017695  0x00003de6 store  0x00000001 , 0x0000470b 
+ 00017696  0x00003de7 fetch  0x00000001 , 0x00004701 
+ 00017697  0x00003de8 store  0x00000001 , 0x0000470d 
+ 00017698  0x00003de9 branch  0x00004544 
+ 00017699  0x00003dee fetch  0x00000001 , 0x00004700 
+ 00017700  0x00003def store  0x00000001 , 0x0000470d 
+ 00017701  0x00003df0 branch  0x00004552 
+ 00017702  0x00003df2 fetch  0x00000001 , 0x0000470c 
+ 00017703  0x00003df3 call  0x0000452b 
+ 00017704  0x00003df4 fetch  0x00000001 , 0x00004701 
+ 00017705  0x00003df5 store  0x00000001 , 0x0000470b 
+ 00017706  0x00003df6 branch  0x00004550 
+ 00017707  0x00003df8 beq  0x00000002 , 0x0000452f 
+ 00017708  0x00003df9 beq  0x00000003 , 0x00004531 
+ 00017709  0x00003dfa store  0x00000001 , 0x0000470c 
+ 00017710  0x00003dfb rtn 
+ 00017711  0x00003dfd jam  0x00000005 , 0x0000470c 
+ 00017712  0x00003dfe rtn 
+ 00017713  0x00003e00 jam  0x0000000a , 0x0000470c 
+ 00017714  0x00003e01 rtn 
+ 00017715  0x00003e03 fetch  0x00000001 , 0x00004700 
+ 00017716  0x00003e04 call  0x0000452b 
+ 00017717  0x00003e05 fetch  0x00000001 , 0x0000470c 
+ 00017718  0x00003e06 call  0x0000459e 
+ 00017719  0x00003e07 call  0x000045a1 
+ 00017720  0x00003e08 jam  0x00000000 , 0x00000671 
+ 00017721  0x00003e09 branch  0x0000707a 
+ 00017722  0x00003e0c fetch  0x00000001 , 0x0000479e 
+ 00017723  0x00003e0d nrtn  0x00000034 
+ 00017724  0x00003e0e fetch  0x00000006 , 0x00004700 
+ 00017725  0x00003e0f store  0x00000006 , 0x0000470b 
+ 00017726  0x00003e10 fetch  0x00000001 , 0x0000470c 
+ 00017727  0x00003e11 fetcht  0x00000001 , 0x0000470e 
+ 00017728  0x00003e12 iand  0x00000002 , 0x0000003f 
+ 00017729  0x00003e13 fetcht  0x00000001 , 0x00004710 
+ 00017730  0x00003e14 iand  0x00000002 , 0x0000003f 
+ 00017731  0x00003e15 call  0x00004556 , 0x00000034 
+ 00017732  0x00003e17 bpatch  0x00000031 , 0x00004006 
+ 00017733  0x00003e18 fetch  0x00000002 , 0x000044e9 
+ 00017734  0x00003e19 isolate1  0x00000009 , 0x0000003f 
+ 00017735  0x00003e1a ncall  0x00004463 , 0x00000001 
+ 00017736  0x00003e1b call  0x00004550 
+ 00017737  0x00003e1c call  0x00004552 
+ 00017738  0x00003e1d branch  0x0000454b 
+ 00017739  0x00003e20 fetch  0x00000001 , 0x0000470b 
+ 00017740  0x00003e21 fetcht  0x00000001 , 0x0000470d 
+ 00017741  0x00003e22 iadd  0x00000002 , 0x0000003f 
+ 00017742  0x00003e23 nbranch  0x0000788d , 0x00000034 
+ 00017743  0x00003e24 branch  0x0000788b 
+ 00017744  0x00003e27 arg  0x0000470b , 0x00000006 
+ 00017745  0x00003e28 branch  0x00004558 
+ 00017746  0x00003e2a arg  0x0000470d , 0x00000006 
+ 00017747  0x00003e2b branch  0x0000455d 
+ 00017748  0x00003e2d arg  0x0000470f , 0x00000006 
+ 00017749  0x00003e2e branch  0x0000457a 
+ 00017750  0x00003e30 jam  0x00000000 , 0x0000477f 
+ 00017751  0x00003e31 rtn 
+ 00017752  0x00003e34 ifetch  0x00000001 , 0x00000006 
+ 00017753  0x00003e35 beq  0x00000000 , 0x00004562 
+ 00017754  0x00003e36 beq  0x00000001 , 0x00004566 
+ 00017755  0x00003e37 beq  0x00000002 , 0x0000456a 
+ 00017756  0x00003e38 rtn 
+ 00017757  0x00003e3a ifetch  0x00000001 , 0x00000006 
+ 00017758  0x00003e3b beq  0x00000000 , 0x0000456e 
+ 00017759  0x00003e3c beq  0x00000002 , 0x00004572 
+ 00017760  0x00003e3d beq  0x00000001 , 0x00004576 
+ 00017761  0x00003e3e rtn 
+ 00017762  0x00003e41 fetcht  0x00000001 , 0x000049a5 
+ 00017763  0x00003e42 call  0x00006ef3 
+ 00017764  0x00003e43 fetcht  0x00000001 , 0x000049a6 
+ 00017765  0x00003e44 branch  0x00006ef3 
+ 00017766  0x00003e46 fetcht  0x00000001 , 0x000049a5 
+ 00017767  0x00003e47 call  0x00006ef7 
+ 00017768  0x00003e48 fetcht  0x00000001 , 0x000049a6 
+ 00017769  0x00003e49 branch  0x00006ef3 
+ 00017770  0x00003e4b fetcht  0x00000001 , 0x000049a5 
+ 00017771  0x00003e4c call  0x00006ef3 
+ 00017772  0x00003e4d fetcht  0x00000001 , 0x000049a6 
+ 00017773  0x00003e4e branch  0x00006ef7 
+ 00017774  0x00003e50 fetcht  0x00000001 , 0x000049a7 
+ 00017775  0x00003e51 call  0x00006ef3 
+ 00017776  0x00003e52 fetcht  0x00000001 , 0x000049a8 
+ 00017777  0x00003e53 branch  0x00006ef3 
+ 00017778  0x00003e55 fetcht  0x00000001 , 0x000049a7 
+ 00017779  0x00003e56 call  0x00006ef7 
+ 00017780  0x00003e57 fetcht  0x00000001 , 0x000049a8 
+ 00017781  0x00003e58 branch  0x00006ef3 
+ 00017782  0x00003e5a fetcht  0x00000001 , 0x000049a7 
+ 00017783  0x00003e5b call  0x00006ef3 
+ 00017784  0x00003e5c fetcht  0x00000001 , 0x000049a8 
+ 00017785  0x00003e5d branch  0x00006ef7 
+ 00017786  0x00003e63 bpatch  0x00000032 , 0x00004006 
+ 00017787  0x00003e64 ifetch  0x00000001 , 0x00000006 
+ 00017788  0x00003e65 beq  0x00000000 , 0x00004587 
+ 00017789  0x00003e66 beq  0x00000001 , 0x00004580 
+ 00017790  0x00003e67 beq  0x00000002 , 0x00004582 
+ 00017791  0x00003e68 rtn 
+ 00017792  0x00003e6a jam  0x00000000 , 0x00004729 
+ 00017793  0x00003e6b branch  0x00004583 
+ 00017794  0x00003e6d jam  0x00000001 , 0x00004729 
+ 00017795  0x00003e6e ifetch  0x00000001 , 0x00000006 
+ 00017796  0x00003e6f store  0x00000001 , 0x0000472b 
+ 00017797  0x00003e70 ifetch  0x00000008 , 0x00000012 
+ 00017798  0x00003e71 branch  0x0000458c 
+ 00017799  0x00003e74 ifetch  0x00000001 , 0x00000012 
+ 00017800  0x00003e75 call  0x000070bd 
+ 00017801  0x00003e76 increase  0x00000001 , 0x00000012 
+ 00017802  0x00003e77 ifetch  0x00000001 , 0x00000012 
+ 00017803  0x00003e78 branch  0x000070bd 
+ 00017804  0x00003e7a store  0x00000008 , 0x0000472c 
+ 00017805  0x00003e7b jam  0x00000001 , 0x0000477f 
+ 00017806  0x00003e7c fetch  0x00000001 , 0x00004729 
+ 00017807  0x00003e7d beq  0x00000000 , 0x0000459a 
+ 00017808  0x00003e7f fetch  0x00000001 , 0x0000472d 
+ 00017809  0x00003e80 store  0x00000001 , 0x0000472e 
+ 00017810  0x00003e81 fetch  0x00000001 , 0x0000472c 
+ 00017811  0x00003e83 call  0x000070bd 
+ 00017812  0x00003e84 fetch  0x00000001 , 0x0000472b 
+ 00017813  0x00003e85 call  0x0000459e 
+ 00017814  0x00003e86 store  0x00000001 , 0x00004733 
+ 00017815  0x00003e87 fetch  0x00000006 , 0x0000472e 
+ 00017816  0x00003e88 store  0x00000006 , 0x00000670 
+ 00017817  0x00003e89 branch  0x00007066 
+ 00017818  0x00003e8b fetch  0x00000001 , 0x0000472c 
+ 00017819  0x00003e8c store  0x00000001 , 0x0000472e 
+ 00017820  0x00003e8d fetch  0x00000001 , 0x0000472d 
+ 00017821  0x00003e8e branch  0x00004593 
+ 00017822  0x00003e91 mul32  0x0000003f , 0x00000005 , 0x0000003f 
+ 00017823  0x00003e92 add  0x0000003f , 0x00000032 , 0x0000003f 
+ 00017824  0x00003e93 rtn 
+ 00017825  0x00003e95 arg  0x00002ee0 , 0x00000002 
+ 00017826  0x00003e96 imul32  0x00000002 , 0x0000003f 
+ 00017827  0x00003e97 div  0x0000003f , 0x00000064 
+ 00017828  0x00003e98 call  0x00007d62 
+ 00017829  0x00003e99 quotient  0x00000002 
+ 00017830  0x00003e9a copy  0x00000002 , 0x00000011 
+ 00017831  0x00003e9b setarg  0x00002ee0 
+ 00017832  0x00003e9c isub  0x00000002 , 0x00000012 
+ 00017833  0x00003e9d rtn 
+ 00017834  0x00003ea0 rtn 
+ 00017835  0x00003ea3 fetch  0x00000008 , 0x00004700 
+ 00017836  0x00003ea4 store  0x00000008 , 0x0000474a 
+ 00017837  0x00003ea5 rtn 
+ 00017838  0x00003ea8 fetch  0x00000001 , 0x00004767 
+ 00017839  0x00003ea9 store  0x00000001 , 0x0000475d 
+ 00017840  0x00003eaa fetch  0x00000001 , 0x00004768 
+ 00017841  0x00003eab store  0x00000001 , 0x0000475e 
+ 00017842  0x00003eac fetch  0x00000001 , 0x00004769 
+ 00017843  0x00003ead store  0x00000001 , 0x0000475f 
+ 00017844  0x00003eae arg  0x0000000d , 0x00000039 
+ 00017845  0x00003eaf arg  0x00004758 , 0x00000006 
+ 00017846  0x00003eb0 call  0x000044cb 
+ 00017847  0x00003eb1 store  0x00000001 , 0x00004765 
+ 00017848  0x00003eb2 arg  0x00004755 , 0x00000011 
+ 00017849  0x00003eb3 branch  0x000078b2 
+ 00017850  0x00003eb8 setarg  0x00000000 
+ 00017851  0x00003eb9 store  0x00000008 , 0x000045d6 
+ 00017852  0x00003eba call  0x0000339f 
+ 00017853  0x00003ebb branch  0x00003402 
+ 00017854  0x00003ebe call  0x000045c2 
+ 00017855  0x00003ebf call  0x000045ca 
+ 00017856  0x00003ec0 call  0x0000460e 
+ 00017857  0x00003ec1 branch  0x00004665 
+ 00017858  0x00003ec4 call  0x00003407 
+ 00017859  0x00003ec6 fetch  0x00000001 , 0x00004616 
+ 00017860  0x00003ec7 rtnne  0x00000001 
+ 00017861  0x00003ec8 fetch  0x00000001 , 0x000049b8 
+ 00017862  0x00003ec9 nbranch  0x00003460 , 0x00000034 
+ 00017863  0x00003eca fetch  0x00000001 , 0x00004798 
+ 00017864  0x00003ecb beq  0x00000002 , 0x00003460 
+ 00017865  0x00003ecc rtn 
+ 00017866  0x00003ecf fetch  0x00000001 , 0x00004616 
+ 00017867  0x00003ed0 rtnne  0x00000000 
+ 00017868  0x00003ed1 call  0x000045d9 
+ 00017869  0x00003ed2 branch  0x000045d7 , 0x0000002f 
+ 00017870  0x00003ed4 fetch  0x00000001 , 0x000049c0 
+ 00017871  0x00003ed5 rtn  0x00000034 
+ 00017872  0x00003ed6 fetch  0x00000001 , 0x000049c1 
+ 00017873  0x00003ed7 increase  0x00000001 , 0x0000003f 
+ 00017874  0x00003ed8 store  0x00000001 , 0x000049c1 
+ 00017875  0x00003ed9 beq  0x00000004 , 0x000045d7 
+ 00017876  0x00003eda call  0x00003222 
+ 00017877  0x00003edb call  0x000045ea 
+ 00017878  0x00003edc nbranch  0x000045ce , 0x0000002f 
+ 00017879  0x00003ede jam  0x00000000 , 0x000049c1 
+ 00017880  0x00003edf rtn 
+ 00017881  0x00003ee1 fetch  0x00000001 , 0x00004616 
+ 00017882  0x00003ee2 rtnne  0x00000000 
+ 00017883  0x00003ee3 call  0x000045de 
+ 00017884  0x00003ee4 call  0x00003518 
+ 00017885  0x00003ee5 branch  0x000045ea 
+ 00017886  0x00003ee7 fetch  0x00000001 , 0x00004615 
+ 00017887  0x00003ee8 rtnbit1  0x00000000 
+ 00017888  0x00003ee9 set1  0x00000000 , 0x0000003f 
+ 00017889  0x00003eea store  0x00000001 , 0x00004615 
+ 00017890  0x00003eeb fetch  0x00000001 , 0x00004623 
+ 00017891  0x00003eec store  0x00000001 , 0x00004141 
+ 00017892  0x00003eed jam  0x00000000 , 0x00004611 
+ 00017893  0x00003eee jam  0x00000000 , 0x0000090d 
+ 00017894  0x00003eef jam  0x00000001 , 0x0000460a 
+ 00017895  0x00003ef0 jam  0x00000000 , 0x0000457e 
+ 00017896  0x00003ef2 fetch  0x00000004 , 0x000049da 
+ 00017897  0x00003ef3 branch  0x0000345d 
+ 00017898  0x00003ef5 call  0x000033f1 
+ 00017899  0x00003ef6 nbranch  0x000033be , 0x0000002f 
+ 00017900  0x00003ef8 call  0x000033e3 
+ 00017901  0x00003ef9 nbranch  0x000033be , 0x00000028 
+ 00017902  0x00003efa fetch  0x00000001 , 0x0000457d 
+ 00017903  0x00003efb branch  0x000033be , 0x00000034 
+ 00017904  0x00003efc increase  0x00000002 , 0x0000003f 
+ 00017905  0x00003efd iforce  0x00000039 
+ 00017906  0x00003efe arg  0x000044f7 , 0x00000006 
+ 00017907  0x00003eff arg  0x000045e8 , 0x00000005 
+ 00017908  0x00003f00 call  0x00007cda 
+ 00017909  0x00003f01 jam  0x00000000 , 0x00004613 
+ 00017910  0x00003f02 fetch  0x00000001 , 0x00004610 
+ 00017911  0x00003f03 call  0x000033fe , 0x00000034 
+ 00017912  0x00003f04 fetch  0x00000001 , 0x000045ea 
+ 00017913  0x00003f05 beq  0x000000ff , 0x000045fc 
+ 00017914  0x00003f06 beq  0x00000001 , 0x00004601 
+ 00017915  0x00003f07 branch  0x000033bb 
+ 00017916  0x00003f09 fetch  0x00000001 , 0x00004610 
+ 00017917  0x00003f0a nrtn  0x00000034 
+ 00017918  0x00003f0b fetch  0x00000001 , 0x000045d5 
+ 00017919  0x00003f0c rtn  0x00000034 
+ 00017920  0x00003f0e branch  0x0000359b 
+ 00017921  0x00003f10 call  0x0000352e 
+ 00017922  0x00003f11 fetch  0x00000001 , 0x0000460a 
+ 00017923  0x00003f12 fetcht  0x00000001 , 0x000045e8 
+ 00017924  0x00003f13 isolate1  0x00000003 , 0x00000002 
+ 00017925  0x00003f14 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00017926  0x00003f15 store  0x00000001 , 0x0000460a 
+ 00017927  0x00003f16 beq  0x00000001 , 0x00004609 
+ 00017928  0x00003f17 branch  0x000033cb 
+ 00017929  0x00003f19 fetch  0x00000001 , 0x000043cb 
+ 00017930  0x00003f1a sub  0x0000003f , 0x0000000e , 0x0000003e 
+ 00017931  0x00003f1b call  0x0000788d , 0x00000005 
+ 00017932  0x00003f1c fetch  0x00000004 , 0x000045f2 
+ 00017933  0x00003f1d branch  0x000035a3 
+ 00017934  0x00003f20 fetch  0x00000001 , 0x00004616 
+ 00017935  0x00003f21 rtnne  0x00000001 
+ 00017936  0x00003f22 call  0x000032ff 
+ 00017937  0x00003f23 call  0x0000465b 
+ 00017938  0x00003f25 call  0x000033be 
+ 00017939  0x00003f26 call  0x00003119 
+ 00017940  0x00003f27 nbranch  0x000033be , 0x0000002f 
+ 00017941  0x00003f28 call  0x0000331e 
+ 00017942  0x00003f29 call  0x000033f4 
+ 00017943  0x00003f2a call  0x00003399 
+ 00017944  0x00003f2b call  0x00003317 
+ 00017945  0x00003f2d fetch  0x00000001 , 0x000045d5 
+ 00017946  0x00003f2e nbranch  0x00004621 , 0x00000034 
+ 00017947  0x00003f2f call  0x0000350a 
+ 00017948  0x00003f30 fetch  0x00000001 , 0x00004614 
+ 00017949  0x00003f31 rtn  0x00000034 
+ 00017950  0x00003f32 setarg  0x00000000 
+ 00017951  0x00003f33 store  0x00000004 , 0x00004630 
+ 00017952  0x00003f34 rtn 
+ 00017953  0x00003f36 jam  0x00000000 , 0x00004613 
+ 00017954  0x00003f37 arg  0x00000000 , 0x00000011 
+ 00017955  0x00003f38 call  0x0000788d 
+ 00017956  0x00003f39 call  0x00003460 
+ 00017957  0x00003f3a call  0x00003258 
+ 00017958  0x00003f3c fetch  0x00000004 , 0x000044f1 
+ 00017959  0x00003f3d store  0x00000004 , 0x000049da 
+ 00017960  0x00003f3e fetch  0x00000001 , 0x000049e6 
+ 00017961  0x00003f3f ncall  0x0000462c , 0x00000034 
+ 00017962  0x00003f41 fetch  0x00000004 , 0x000049da 
+ 00017963  0x00003f42 branch  0x00003236 
+ 00017964  0x00003f46 fetch  0x00000001 , 0x000049e6 
+ 00017965  0x00003f47 rtn  0x00000034 
+ 00017966  0x00003f48 fetch  0x00000001 , 0x0000462d 
+ 00017967  0x00003f49 store  0x00000001 , 0x000049dd 
+ 00017968  0x00003f4b fetch  0x00000001 , 0x000044f2 
+ 00017969  0x00003f4c store  0x00000001 , 0x000049dc 
+ 00017970  0x00003f4e fetch  0x00000001 , 0x0000462c 
+ 00017971  0x00003f4f store  0x00000001 , 0x000049db 
+ 00017972  0x00003f51 fetch  0x00000001 , 0x000044f1 
+ 00017973  0x00003f52 store  0x00000001 , 0x000049da 
+ 00017974  0x00003f53 rtn 
+ 00017975  0x00003f54 call  0x0000464a 
+ 00017976  0x00003f55 fetch  0x00000004 , 0x000049da 
+ 00017977  0x00003f56 fetcht  0x00000004 , 0x000049de 
+ 00017978  0x00003f57 isub  0x00000002 , 0x0000003e 
+ 00017979  0x00003f58 rtn  0x00000005 
+ 00017980  0x00003f59 copy  0x00000013 , 0x00000012 
+ 00017981  0x00003f5a arg  0x000049da , 0x00000011 
+ 00017982  0x00003f5b arg  0x00000004 , 0x00000039 
+ 00017983  0x00003f5c branch  0x00006b45 
+ 00017984  0x00003f60 fetch  0x00000004 , 0x000044f1 
+ 00017985  0x00003f61 store  0x00000004 , 0x000049da 
+ 00017986  0x00003f62 fetch  0x00000001 , 0x000049e6 
+ 00017987  0x00003f63 rtn  0x00000034 
+ 00017988  0x00003f64 rtn 
+ 00017989  0x00003f65 call  0x0000464a 
+ 00017990  0x00003f66 fetch  0x00000004 , 0x000049de 
+ 00017991  0x00003f67 rtn  0x00000034 
+ 00017992  0x00003f68 store  0x00000004 , 0x000049da 
+ 00017993  0x00003f69 rtn 
+ 00017994  0x00003f6d rtn 
+ 00017995  0x00003f6e fetch  0x00000001 , 0x000049e6 
+ 00017996  0x00003f6f rtn  0x00000034 
+ 00017997  0x00003f70 arg  0x00000700 , 0x00000013 
+ 00017998  0x00003f72 copy  0x00000013 , 0x00000012 
+ 00017999  0x00003f73 arg  0x000049e2 , 0x00000011 
+ 00018000  0x00003f74 arg  0x00000004 , 0x00000039 
+ 00018001  0x00003f75 call  0x00006b74 
+ 00018002  0x00003f76 fetch  0x00000004 , 0x000049e2 
+ 00018003  0x00003f77 rtn  0x00000034 
+ 00018004  0x00003f78 store  0x00000004 , 0x000049de 
+ 00018005  0x00003f79 copy  0x00000013 , 0x0000003f 
+ 00018006  0x00003f7a arg  0x000007cc , 0x00000002 
+ 00018007  0x00003f7b isub  0x00000002 , 0x0000003e 
+ 00018008  0x00003f7c rtn  0x00000002 
+ 00018009  0x00003f7d increase  0x00000004 , 0x00000013 
+ 00018010  0x00003f7e branch  0x0000464e 
+ 00018011  0x00003f81 fetch  0x00000004 , 0x00004630 
+ 00018012  0x00003f82 rtn  0x00000034 
+ 00018013  0x00003f83 branch  0x00003236 
+ 00018014  0x00003f86 fetch  0x00000002 , 0x000044e9 
+ 00018015  0x00003f87 rtnbit1  0x00000009 
+ 00018016  0x00003f88 fetch  0x00000002 , 0x00004799 
+ 00018017  0x00003f89 store  0x00000002 , 0x0000479b 
+ 00018018  0x00003f8a jam  0x00000001 , 0x000049b7 
+ 00018019  0x00003f8b arg  0x000045eb , 0x00000011 
+ 00018020  0x00003f8c branch  0x000044fd 
+ 00018021  0x00003f8f fetch  0x00000001 , 0x000049c0 
+ 00018022  0x00003f90 rtn  0x00000034 
+ 00018023  0x00003f91 call  0x0000466d 
+ 00018024  0x00003f92 nrtn  0x00000028 
+ 00018025  0x00003f93 fetch  0x00000003 , 0x000045af 
+ 00018026  0x00003f94 call  0x00007d25 
+ 00018027  0x00003f95 storet  0x00000004 , 0x000040a9 
+ 00018028  0x00003f96 branch  0x0000241e 
+ 00018029  0x00003f98 enable  0x00000028 
+ 00018030  0x00003f99 call  0x00002408 
+ 00018031  0x00003f9a fetch  0x00000003 , 0x000040bd 
+ 00018032  0x00003f9b branch  0x00007dbc , 0x00000034 
+ 00018033  0x00003f9c branch  0x00004430 
+ 00018034  0x00003fa3 rtn  0x0000002b 
+ 00018035  0x00003fa4 call  0x00004772 
+ 00018036  0x00003fa5 call  0x00006ff7 
+ 00018037  0x00003fa6 setarg  0x00004756 
+ 00018038  0x00003fa7 store  0x00000002 , 0x000045f2 
+ 00018039  0x00003fa9 setarg  0x000046b6 
+ 00018040  0x00003faa store  0x00000002 , 0x000045f6 
+ 00018041  0x00003fac setarg  0x000046b1 
+ 00018042  0x00003fad store  0x00000002 , 0x000043d5 
+ 00018043  0x00003faf setarg  0x000046f0 
+ 00018044  0x00003fb0 store  0x00000002 , 0x000043db 
+ 00018045  0x00003fb2 setarg  0x000046f2 
+ 00018046  0x00003fb3 store  0x00000002 , 0x000043dd 
+ 00018047  0x00003fb5 setarg  0x0000473b 
+ 00018048  0x00003fb6 store  0x00000002 , 0x000043e3 
+ 00018049  0x00003fb8 setarg  0x000046a6 
+ 00018050  0x00003fb9 store  0x00000002 , 0x000046ee 
+ 00018051  0x00003fbb setarg  0x00004696 
+ 00018052  0x00003fbc store  0x00000002 , 0x000046f2 
+ 00018053  0x00003fbf bpatch  0x00000033 , 0x00004006 
+ 00018054  0x00003fc0 call  0x00006cc1 
+ 00018055  0x00003fc1 call  0x000046ad 
+ 00018056  0x00003fc3 call  0x000078ad 
+ 00018057  0x00003fc4 fetch  0x00000001 , 0x000046be 
+ 00018058  0x00003fc5 store  0x00000001 , 0x0000462d 
+ 00018059  0x00003fc6 beq  0x00000000 , 0x00004695 
+ 00018060  0x00003fc7 fetch  0x00000001 , 0x000046bf 
+ 00018061  0x00003fc8 store  0x00000001 , 0x000044ec 
+ 00018062  0x00003fca call  0x000046a6 
+ 00018063  0x00003fcb call  0x00007776 
+ 00018064  0x00003fcc call  0x00007780 
+ 00018065  0x00003fcd jam  0x00000001 , 0x000046ea 
+ 00018066  0x00003fce fetch  0x00000002 , 0x000044e9 
+ 00018067  0x00003fcf rtnbit1  0x0000000c 
+ 00018068  0x00003fd0 branch  0x00004327 
+ 00018069  0x00003fd5 jam  0x00000002 , 0x000046ea 
+ 00018070  0x00003fd7 call  0x000046a6 
+ 00018071  0x00003fd8 arg  0x00000000 , 0x00000011 
+ 00018072  0x00003fd9 call  0x000077c4 
+ 00018073  0x00003fda call  0x00004719 
+ 00018074  0x00003fdb fetch  0x00000004 , 0x00004700 
+ 00018075  0x00003fdc store  0x00000004 , 0x0000458f 
+ 00018076  0x00003fdd branch  0x00003291 , 0x00000034 
+ 00018077  0x00003fde fetch  0x00000004 , 0x0000458f 
+ 00018078  0x00003fdf store  0x00000004 , 0x000045e8 
+ 00018079  0x00003fe0 fetch  0x00000002 , 0x000045dc 
+ 00018080  0x00003fe1 store  0x00000002 , 0x000045de 
+ 00018081  0x00003fe2 branch  0x00003534 
+ 00018082  0x00003fe5 arg  0x00000004 , 0x00000002 
+ 00018083  0x00003fe6 arg  0x0000458f , 0x00000011 
+ 00018084  0x00003fe7 arg  0x00000000 , 0x00000012 
+ 00018085  0x00003fe8 rtn 
+ 00018086  0x00003fed bpatch  0x00000034 , 0x00004006 
+ 00018087  0x00003fee fetch  0x00000001 , 0x000046bc 
+ 00018088  0x00003fef bne  0x000000ff , 0x000046ab 
+ 00018089  0x00003ff1 fetcht  0x00000001 , 0x00004699 
+ 00018090  0x00003ff2 branch  0x00006ef7 
+ 00018091  0x00003ff4 store  0x00000001 , 0x00004699 
+ 00018092  0x00003ff5 branch  0x000046a9 
+ 00018093  0x00003ff9 call  0x000035f0 
+ 00018094  0x00003ffb fetch  0x00000002 , 0x000046e6 
+ 00018095  0x00003ffc store  0x00000002 , 0x000046e8 
+ 00018096  0x00003ffd rtn 
+ 00018097  0x00004000 call  0x000046b6 
+ 00018098  0x00004002 fetch  0x00000001 , 0x0000468f 
+ 00018099  0x00004003 set1  0x00000007 , 0x0000003f 
+ 00018100  0x00004004 arg  0x0000003f , 0x00000002 
+ 00018101  0x00004005 branch  0x00006f20 
+ 00018102  0x00004008 call  0x00006f35 
+ 00018103  0x00004009 branch  0x0000701b 
+ 00018104  0x0000400c call  0x00007027 
+ 00018105  0x0000400d call  0x000046c9 
+ 00018106  0x0000400e call  0x000046bc 
+ 00018107  0x0000400f branch  0x000046d7 
+ 00018108  0x00004012 fetch  0x00000001 , 0x000046f5 
+ 00018109  0x00004013 rtnne  0x00000001 
+ 00018110  0x00004014 fetch  0x00000004 , 0x000046f9 
+ 00018111  0x00004015 branch  0x000046c3 , 0x00000034 
+ 00018112  0x00004016 jam  0x00000000 , 0x000046ff 
+ 00018113  0x00004017 enable  0x00000028 
+ 00018114  0x00004018 branch  0x0000788d 
+ 00018115  0x0000401a fetch  0x00000001 , 0x000046ff 
+ 00018116  0x0000401b rtneq  0x000000ff 
+ 00018117  0x0000401c pincrease  0x00000001 
+ 00018118  0x0000401d store  0x00000001 , 0x000046ff 
+ 00018119  0x0000401e disable  0x00000028 
+ 00018120  0x0000401f branch  0x0000788b 
+ 00018121  0x00004023 fetcht  0x00000002 , 0x0000442e 
+ 00018122  0x00004024 and  0x00000002 , 0x00000001 , 0x0000003f 
+ 00018123  0x00004025 rshift  0x00000002 , 0x00000002 
+ 00018124  0x00004026 store  0x00000001 , 0x000046f9 
+ 00018125  0x00004027 and  0x00000002 , 0x00000001 , 0x0000003f 
+ 00018126  0x00004028 rshift  0x00000002 , 0x00000002 
+ 00018127  0x00004029 store  0x00000001 , 0x000046fa 
+ 00018128  0x0000402a and  0x00000002 , 0x00000001 , 0x0000003f 
+ 00018129  0x0000402b rshift  0x00000002 , 0x00000002 
+ 00018130  0x0000402c store  0x00000001 , 0x000046fb 
+ 00018131  0x0000402d and  0x00000002 , 0x00000001 , 0x0000003f 
+ 00018132  0x0000402e rshift  0x00000002 , 0x00000002 
+ 00018133  0x0000402f store  0x00000001 , 0x000046fc 
+ 00018134  0x00004030 rtn 
+ 00018135  0x00004032 bpatch  0x00000035 , 0x00004006 
+ 00018136  0x00004033 call  0x000046e6 
+ 00018137  0x00004034 call  0x000046eb 
+ 00018138  0x00004035 call  0x000046dd 
+ 00018139  0x00004036 nrtn  0x00000028 
+ 00018140  0x00004037 branch  0x00004752 
+ 00018141  0x0000403b fetch  0x00000001 , 0x000046f5 
+ 00018142  0x0000403c rtnne  0x00000001 
+ 00018143  0x0000403d fetch  0x00000001 , 0x000046ff 
+ 00018144  0x0000403e rtn  0x00000034 
+ 00018145  0x0000403f sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00018146  0x00004040 nrtn  0x00000002 
+ 00018147  0x00004041 fetch  0x00000002 , 0x000045dc 
+ 00018148  0x00004042 store  0x00000002 , 0x000045de 
+ 00018149  0x00004043 branch  0x00007dba 
+ 00018150  0x00004048 fetch  0x00000001 , 0x000046f9 
+ 00018151  0x00004049 nbranch  0x00004746 , 0x00000034 
+ 00018152  0x0000404a fetch  0x00000001 , 0x000046fa 
+ 00018153  0x0000404b nbranch  0x00004748 , 0x00000034 
+ 00018154  0x0000404c branch  0x0000474e 
+ 00018155  0x0000404f fetch  0x00000001 , 0x000046fb 
+ 00018156  0x00004050 nbranch  0x0000474a , 0x00000034 
+ 00018157  0x00004051 fetch  0x00000001 , 0x000046fc 
+ 00018158  0x00004052 nbranch  0x0000474c , 0x00000034 
+ 00018159  0x00004053 branch  0x00004750 
+ 00018160  0x00004057 call  0x00004730 
+ 00018161  0x00004058 branch  0x000046b8 
+ 00018162  0x0000405b copy  0x00000013 , 0x0000003f 
+ 00018163  0x0000405c beq  0x0000002d , 0x00004347 
+ 00018164  0x0000405d beq  0x00000010 , 0x0000432f 
+ 00018165  0x0000405e beq  0x00000039 , 0x000046fa 
+ 00018166  0x0000405f beq  0x0000003c , 0x00004701 
+ 00018167  0x00004060 beq  0x0000003a , 0x000046f9 
+ 00018168  0x00004061 rtn 
+ 00018169  0x00004064 branch  0x0000357b 
+ 00018170  0x00004067 bpatch  0x00000036 , 0x00004006 
+ 00018171  0x00004068 fetch  0x00000004 , 0x000045e8 
+ 00018172  0x00004069 store  0x00000004 , 0x00004700 
+ 00018173  0x0000406a fetch  0x00000001 , 0x0000470c 
+ 00018174  0x0000406b ncall  0x00004706 , 0x00000034 
+ 00018175  0x0000406c fetch  0x00000004 , 0x00004700 
+ 00018176  0x0000406d call  0x00003236 
+ 00018177  0x00004071 jam  0x00000000 , 0x000045fc 
+ 00018178  0x00004072 jam  0x00000001 , 0x000046f6 
+ 00018179  0x00004073 jam  0x00000001 , 0x000046f7 
+ 00018180  0x00004074 jam  0x00000000 , 0x000045de 
+ 00018181  0x00004075 rtn 
+ 00018182  0x00004079 fetch  0x00000001 , 0x0000470c 
+ 00018183  0x0000407a rtn  0x00000034 
+ 00018184  0x0000407b fetch  0x00000001 , 0x000044f2 
+ 00018185  0x0000407c store  0x00000001 , 0x00004703 
+ 00018186  0x0000407e fetch  0x00000001 , 0x000045e9 
+ 00018187  0x0000407f store  0x00000001 , 0x00004702 
+ 00018188  0x00004081 fetch  0x00000001 , 0x000044f1 
+ 00018189  0x00004082 store  0x00000001 , 0x00004701 
+ 00018190  0x00004084 fetch  0x00000001 , 0x000045e8 
+ 00018191  0x00004085 store  0x00000001 , 0x00004700 
+ 00018192  0x00004086 call  0x00004720 
+ 00018193  0x00004087 fetch  0x00000004 , 0x00004700 
+ 00018194  0x00004088 fetcht  0x00000004 , 0x00004704 
+ 00018195  0x00004089 isub  0x00000002 , 0x0000003e 
+ 00018196  0x0000408a rtn  0x00000005 
+ 00018197  0x0000408b copy  0x00000013 , 0x00000012 
+ 00018198  0x0000408c arg  0x00004700 , 0x00000011 
+ 00018199  0x0000408d arg  0x00000004 , 0x00000039 
+ 00018200  0x0000408e branch  0x00006b45 
+ 00018201  0x00004091 fetch  0x00000001 , 0x0000470c 
+ 00018202  0x00004092 rtn  0x00000034 
+ 00018203  0x00004093 call  0x00004720 
+ 00018204  0x00004094 fetch  0x00000004 , 0x00004704 
+ 00018205  0x00004095 rtn  0x00000034 
+ 00018206  0x00004096 store  0x00000004 , 0x00004700 
+ 00018207  0x00004097 rtn 
+ 00018208  0x0000409b fetch  0x00000001 , 0x0000470c 
+ 00018209  0x0000409c rtn  0x00000034 
+ 00018210  0x0000409d arg  0x00000700 , 0x00000013 
+ 00018211  0x0000409f copy  0x00000013 , 0x00000012 
+ 00018212  0x000040a0 arg  0x00004704 , 0x00000011 
+ 00018213  0x000040a1 arg  0x00000004 , 0x00000039 
+ 00018214  0x000040a2 call  0x00006b74 
+ 00018215  0x000040a3 fetch  0x00000004 , 0x00004708 
+ 00018216  0x000040a4 rtn  0x00000034 
+ 00018217  0x000040a5 store  0x00000004 , 0x00004704 
+ 00018218  0x000040a6 copy  0x00000013 , 0x0000003f 
+ 00018219  0x000040a7 arg  0x000007cc , 0x00000002 
+ 00018220  0x000040a8 isub  0x00000002 , 0x0000003e 
+ 00018221  0x000040a9 rtn  0x00000002 
+ 00018222  0x000040aa increase  0x00000004 , 0x00000013 
+ 00018223  0x000040ab branch  0x00004723 
+ 00018224  0x000040ae fetch  0x00000001 , 0x000046f6 
+ 00018225  0x000040af rtneq  0x00000000 
+ 00018226  0x000040b0 fetch  0x00000001 , 0x000046f5 
+ 00018227  0x000040b1 rtneq  0x00000001 
+ 00018228  0x000040b2 jam  0x00000001 , 0x000046f5 
+ 00018229  0x000040b4 arg  0x00000000 , 0x00000011 
+ 00018230  0x000040b5 branch  0x000077bf 
+ 00018231  0x000040b7 arg  0x00000000 , 0x00000011 
+ 00018232  0x000040b8 call  0x000077bf 
+ 00018233  0x000040b9 call  0x000046a6 
+ 00018234  0x000040ba branch  0x00004327 
+ 00018235  0x000040bd call  0x000042ee 
+ 00018236  0x000040be call  0x0000328e 
+ 00018237  0x000040bf call  0x00003531 
+ 00018238  0x000040c0 branch  0x0000473f 
+ 00018239  0x000040c3 fetch  0x00000001 , 0x000046c0 
+ 00018240  0x000040c4 rtn  0x00000034 
+ 00018241  0x000040c5 fetch  0x00000001 , 0x0000442e 
+ 00018242  0x000040c6 nbranch  0x000046ae , 0x00000034 
+ 00018243  0x000040c7 arg  0x000046e8 , 0x00000013 
+ 00018244  0x000040c8 arg  0x00004737 , 0x00000012 
+ 00018245  0x000040c9 branch  0x000042e7 
+ 00018246  0x000040ce jam  0x00000001 , 0x000046c7 
+ 00018247  0x000040cf rtn 
+ 00018248  0x000040d1 jam  0x00000002 , 0x000046c7 
+ 00018249  0x000040d2 rtn 
+ 00018250  0x000040d4 jam  0x00000001 , 0x000046c9 
+ 00018251  0x000040d5 rtn 
+ 00018252  0x000040d7 jam  0x00000002 , 0x000046c9 
+ 00018253  0x000040d8 rtn 
+ 00018254  0x000040dd jam  0x00000000 , 0x000046c7 
+ 00018255  0x000040de rtn 
+ 00018256  0x000040e1 jam  0x00000000 , 0x000046c9 
+ 00018257  0x000040e2 rtn 
+ 00018258  0x000040e5 arg  0x000046c1 , 0x00000011 
+ 00018259  0x000040e6 branch  0x000078b2 
+ 00018260  0x000040e8 arg  0x000046ce , 0x00000011 
+ 00018261  0x000040e9 branch  0x000078b2 
+ 00018262  0x000040ec fetch  0x00000001 , 0x000046f7 
+ 00018263  0x000040ed beq  0x00000001 , 0x00004760 
+ 00018264  0x000040ee arg  0x000046d7 , 0x00000011 
+ 00018265  0x000040ef call  0x000078ca 
+ 00018266  0x000040f0 nbranch  0x00004765 , 0x00000028 
+ 00018267  0x000040f2 arg  0x000046d7 , 0x00000006 
+ 00018268  0x000040f3 ifetch  0x00000001 , 0x00000006 
+ 00018269  0x000040f4 copy  0x0000003f , 0x00000011 
+ 00018270  0x000040f5 arg  0x000046d8 , 0x00000012 
+ 00018271  0x000040f8 rtn 
+ 00018272  0x000040fb jam  0x00000000 , 0x000046f7 
+ 00018273  0x000040fc enable  0x00000028 
+ 00018274  0x000040fd arg  0x00000001 , 0x00000011 
+ 00018275  0x000040fe arg  0x000046f8 , 0x00000012 
+ 00018276  0x000040ff rtn 
+ 00018277  0x00004102 fetch  0x00000001 , 0x000046da 
+ 00018278  0x00004103 beq  0x00000004 , 0x00004769 
+ 00018279  0x00004104 beq  0x00000005 , 0x00004769 
+ 00018280  0x00004105 rtn 
+ 00018281  0x00004107 fetch  0x00000001 , 0x000046dd 
+ 00018282  0x00004108 nbranch  0x00004770 , 0x00000034 
+ 00018283  0x00004109 fetch  0x00000001 , 0x000046df 
+ 00018284  0x0000410a nbranch  0x00004770 , 0x00000034 
+ 00018285  0x0000410b fetch  0x00000001 , 0x000046e1 
+ 00018286  0x0000410c nbranch  0x00004770 , 0x00000034 
+ 00018287  0x0000410d rtn 
+ 00018288  0x0000410f enable  0x00000028 
+ 00018289  0x00004110 branch  0x0000475b 
+ 00018290  0x00004116 jam  0x00000014 , 0x000044eb 
+ 00018291  0x00004117 jam  0x00000001 , 0x000044e4 
+ 00018292  0x00004118 setarg  0x0000060f 
+ 00018293  0x00004119 store  0x00000002 , 0x0000462e 
+ 00018294  0x0000411a setarg  0x0000462e 
+ 00018295  0x0000411b store  0x00000002 , 0x000043fb 
+ 00018296  0x0000411c jam  0x00000001 , 0x00004094 
+ 00018297  0x0000411d jam  0x00000006 , 0x000040a6 
+ 00018298  0x0000411e jam  0x00000002 , 0x000040c1 
+ 00018299  0x0000411f jam  0x00000000 , 0x0000462d 
+ 00018300  0x00004120 setarg  0x0000468d 
+ 00018301  0x00004121 store  0x00000002 , 0x000044ef 
+ 00018302  0x00004122 jam  0x00000001 , 0x000044ee 
+ 00018303  0x00004123 jam  0x000000ff , 0x0000468e 
+ 00018304  0x00004124 setarg  0x00000296 
+ 00018305  0x00004125 store  0x00000002 , 0x00004690 
+ 00018306  0x00004126 setarg  0x0000073a 
+ 00018307  0x00004127 store  0x00000002 , 0x00004692 
+ 00018308  0x00004128 setarg  0x000046ea 
+ 00018309  0x00004129 store  0x00000002 , 0x00004430 
+ 00018310  0x0000412a setarg  0x00000c0c 
+ 00018311  0x0000412b store  0x00000002 , 0x000046ec 
+ 00018312  0x0000412c setarg  0x000046a1 
+ 00018313  0x0000412d store  0x00000002 , 0x0000442c 
+ 00018314  0x0000412e jam  0x00000000 , 0x000046be 
+ 00018315  0x0000412f jam  0x000000ff , 0x000046bc 
+ 00018316  0x00004130 jam  0x000000ff , 0x000046bf 
+ 00018317  0x00004131 jam  0x00000000 , 0x000046ba 
+ 00018318  0x00004132 jam  0x00000000 , 0x000046bb 
+ 00018319  0x00004133 jam  0x00000000 , 0x000046bd 
+ 00018320  0x00004134 jam  0x00000001 , 0x000046c0 
+ 00018321  0x00004135 setarg  0x00004e55 
+ 00018322  0x00004136 store  0x00000002 , 0x000046ad 
+ 00018323  0x00004137 store  0x00000002 , 0x000046af 
+ 00018324  0x00004138 setarg  0x00000007 
+ 00018325  0x00004139 store  0x00000002 , 0x000046b3 
+ 00018326  0x0000413a jam  0x00000002 , 0x00004407 
+ 00018327  0x0000413b setsect  0x00000000 , 0x00035a0c 
+ 00018328  0x0000413c setsect  0x00000001 , 0x0000011a 
+ 00018329  0x0000413d setsect  0x00000002 , 0x00000060 
+ 00018330  0x0000413e setsect  0x00000003 , 0x00000028 
+ 00018331  0x0000413f store  0x00000009 , 0x000046c1 
+ 00018332  0x00004140 setsect  0x00000000 , 0x0002000a 
+ 00018333  0x00004141 setsect  0x00000001 , 0x00000002 
+ 00018334  0x00004142 istore  0x00000004 , 0x00000005 
+ 00018335  0x00004143 setsect  0x00000000 , 0x00035a08 
+ 00018336  0x00004144 setsect  0x00000001 , 0x0000019a 
+ 00018337  0x00004145 setsect  0x00000002 , 0x00000000 
+ 00018338  0x00004146 setsect  0x00000003 , 0x00000000 
+ 00018339  0x00004147 store  0x00000009 , 0x000046ce 
+ 00018340  0x00004148 setarg  0x00000064 
+ 00018341  0x00004149 store  0x00000002 , 0x000046e6 
+ 00018342  0x0000414a jam  0x00000000 , 0x00004141 
+ 00018343  0x0000414b jam  0x00000001 , 0x00004589 
+ 00018344  0x0000414c jam  0x00000006 , 0x00004603 
+ 00018345  0x0000414d jam  0x00000001 , 0x000045ae 
+ 00018346  0x0000414e jam  0x00000000 , 0x000045e3 
+ 00018347  0x0000414f call  0x00003278 
+ 00018348  0x00004150 call  0x000035fb 
+ 00018349  0x00004151 call  0x0000325b 
+ 00018350  0x00004154 setarg  0x00000708 
+ 00018351  0x00004155 store  0x00000002 , 0x000045d6 
+ 00018352  0x00004156 setarg  0x00000050 
+ 00018353  0x00004157 store  0x00000002 , 0x000045dc 
+ 00018354  0x00004158 setarg  0x000a7700 
+ 00018355  0x00004159 store  0x00000003 , 0x0000460b 
+ 00018356  0x0000415a setarg  0x00604800 
+ 00018357  0x0000415b store  0x00000003 , 0x000045af 
+ 00018358  0x0000415c rtn 
+ 00018359  0x00004164 setarg  0x000047ea 
+ 00018360  0x00004165 store  0x00000002 , 0x000045e0 
+ 00018361  0x00004166 setarg  0x000048d4 
+ 00018362  0x00004167 store  0x00000002 , 0x000045e4 
+ 00018363  0x00004168 setarg  0x000048e5 
+ 00018364  0x00004169 store  0x00000002 , 0x000045e6 
+ 00018365  0x0000416a setarg  0x000048ab 
+ 00018366  0x0000416b store  0x00000002 , 0x000045e2 
+ 00018367  0x0000416c setarg  0x000047f9 
+ 00018368  0x0000416d store  0x00000002 , 0x00000859 
+ 00018369  0x0000416e branch  0x00007912 
+ 00018370  0x00004172 bpatch  0x00000037 , 0x00004006 
+ 00018371  0x00004174 call  0x000047ef 
+ 00018372  0x00004175 call  0x000047e5 
+ 00018373  0x00004176 fetch  0x00000001 , 0x00004669 
+ 00018374  0x00004177 isolate1  0x00000005 , 0x0000003f 
+ 00018375  0x00004178 branch  0x000047cb , 0x00000001 
+ 00018376  0x00004179 fetch  0x00000001 , 0x00004669 
+ 00018377  0x0000417a isolate1  0x00000006 , 0x0000003f 
+ 00018378  0x0000417b call  0x0000326b , 0x00000001 
+ 00018379  0x0000417d fetch  0x00000001 , 0x00004694 
+ 00018380  0x0000417e store  0x00000001 , 0x00004141 
+ 00018381  0x00004180 jam  0x000000ff , 0x000045d2 
+ 00018382  0x00004181 setarg  0x0000099f 
+ 00018383  0x00004182 store  0x00000002 , 0x00004640 
+ 00018384  0x00004183 setarg  0x00000a9f 
+ 00018385  0x00004184 store  0x00000002 , 0x00004642 
+ 00018386  0x00004185 setarg  0x00000b9f 
+ 00018387  0x00004186 store  0x00000002 , 0x00004644 
+ 00018388  0x00004187 setarg  0x00000c9f 
+ 00018389  0x00004188 store  0x00000002 , 0x00004646 
+ 00018390  0x00004189 jam  0x00000085 , 0x000045d1 
+ 00018391  0x0000418a jam  0x00000000 , 0x00004692 
+ 00018392  0x0000418b jam  0x00000000 , 0x0000462b 
+ 00018393  0x0000418c call  0x00003281 
+ 00018394  0x0000418d fetch  0x00000001 , 0x00004669 
+ 00018395  0x0000418e isolate1  0x00000003 , 0x0000003f 
+ 00018396  0x0000418f call  0x00003284 , 0x00000001 
+ 00018397  0x00004190 call  0x0000339f 
+ 00018398  0x00004191 call  0x00003287 
+ 00018399  0x00004192 call  0x0000325b 
+ 00018400  0x00004194 fetch  0x00000001 , 0x00004673 
+ 00018401  0x00004195 store  0x00000001 , 0x0000085b 
+ 00018402  0x00004196 fetch  0x00000009 , 0x0000466a 
+ 00018403  0x00004197 store  0x00000009 , 0x0000085c 
+ 00018404  0x00004198 rtn 
+ 00018405  0x0000419b jam  0x00000018 , 0x00004099 
+ 00018406  0x0000419c fetch  0x00000001 , 0x00004669 
+ 00018407  0x0000419d rtnbit0  0x00000007 
+ 00018408  0x0000419e jam  0x00000010 , 0x00004099 
+ 00018409  0x0000419f rtn 
+ 00018410  0x000041a2 fetch  0x00000001 , 0x00004610 
+ 00018411  0x000041a3 beq  0x00000000 , 0x0000489b 
+ 00018412  0x000041a4 beq  0x00000001 , 0x00004822 
+ 00018413  0x000041a5 beq  0x0000000f , 0x0000481e 
+ 00018414  0x000041a6 rtn 
+ 00018415  0x000041aa bpatch  0x00000038 , 0x00004007 
+ 00018416  0x000041ab arg  0x00001fdf , 0x00000012 
+ 00018417  0x000041ac arg  0x00004648 , 0x00000011 
+ 00018418  0x000041ad arg  0x00000001 , 0x00000039 
+ 00018419  0x000041ae branch  0x00006b74 
+ 00018420  0x000041b1 bpatch  0x00000039 , 0x00004007 
+ 00018421  0x000041b2 arg  0x00000001 , 0x00000039 
+ 00018422  0x000041b3 arg  0x00004648 , 0x00000011 
+ 00018423  0x000041b4 arg  0x00001fdf , 0x00000012 
+ 00018424  0x000041b5 branch  0x00006b45 
+ 00018425  0x000041b8 fetch  0x00000001 , 0x00004669 
+ 00018426  0x000041b9 bbit1  0x00000004 , 0x000047fd 
+ 00018427  0x000041ba fetch  0x00000001 , 0x00004648 
+ 00018428  0x000041bb bne  0x0000005a , 0x00004801 
+ 00018429  0x000041bd jam  0x0000005a , 0x00004648 
+ 00018430  0x000041be fetch  0x00000004 , 0x0000937a 
+ 00018431  0x000041bf set1  0x0000001d , 0x0000003f 
+ 00018432  0x000041c0 store  0x00000004 , 0x000007b4 
+ 00018433  0x000041c2 call  0x00004818 
+ 00018434  0x000041c3 call  0x00007966 
+ 00018435  0x000041c4 call  0x00004805 
+ 00018436  0x000041c5 branch  0x0000480e 
+ 00018437  0x000041c8 fetch  0x00000001 , 0x0000085c 
+ 00018438  0x000041c9 rtn  0x00000034 
+ 00018439  0x000041ca fetch  0x00000001 , 0x00004648 
+ 00018440  0x000041cb beq  0x0000005a , 0x0000480c 
+ 00018441  0x000041cd fetch  0x00000004 , 0x0000085d 
+ 00018442  0x000041cf store  0x00000004 , 0x000007b4 
+ 00018443  0x000041d0 rtn 
+ 00018444  0x000041d2 fetch  0x00000004 , 0x00000861 
+ 00018445  0x000041d3 branch  0x0000480a 
+ 00018446  0x000041d6 fetch  0x00000001 , 0x00004648 
+ 00018447  0x000041d7 beq  0x0000005a , 0x00004814 
+ 00018448  0x000041d8 setarg  0x00009272 
+ 00018449  0x000041d9 store  0x00000002 , 0x000007a7 
+ 00018450  0x000041da jam  0x0000001a , 0x000007d8 
+ 00018451  0x000041db rtn 
+ 00018452  0x000041dd setarg  0x0000928d 
+ 00018453  0x000041de store  0x00000002 , 0x000007a7 
+ 00018454  0x000041df jam  0x0000003f , 0x000007d8 
+ 00018455  0x000041e0 rtn 
+ 00018456  0x000041e3 fetch  0x00000001 , 0x00004674 
+ 00018457  0x000041e4 rtn  0x00000034 
+ 00018458  0x000041e5 arg  0x00004674 , 0x00000006 
+ 00018459  0x000041e6 arg  0x0000081d , 0x00000005 
+ 00018460  0x000041e7 arg  0x0000001e , 0x00000039 
+ 00018461  0x000041e8 branch  0x00007cda 
+ 00018462  0x000041ec call  0x00003460 
+ 00018463  0x000041ee call  0x000048a3 
+ 00018464  0x000041ef call  0x00004867 
+ 00018465  0x000041f0 branch  0x0000481f 
+ 00018466  0x000041f3 call  0x00003460 
+ 00018467  0x000041f5 call  0x000048a3 
+ 00018468  0x000041f6 call  0x00003469 
+ 00018469  0x000041f7 call  0x00004867 
+ 00018470  0x000041f8 branch  0x00004823 
+ 00018471  0x000041fb call  0x0000482b 
+ 00018472  0x000041fc call  0x0000483b 
+ 00018473  0x000041fd call  0x0000484c 
+ 00018474  0x000041fe branch  0x00004859 
+ 00018475  0x00004201 bpatch  0x0000003a , 0x00004007 
+ 00018476  0x00004202 fetch  0x00000001 , 0x00004668 
+ 00018477  0x00004203 rtn  0x00000034 
+ 00018478  0x00004204 arg  0x0000000d , 0x00000007 
+ 00018479  0x00004205 call  0x00007cef 
+ 00018480  0x00004206 nrtn  0x00000034 
+ 00018481  0x00004207 jam  0x00000000 , 0x00004668 
+ 00018482  0x00004208 setarg  0x00000001 
+ 00018483  0x00004209 store  0x00000001 , 0x00000913 
+ 00018484  0x0000420a setarg  0x00000000 
+ 00018485  0x0000420b istore  0x00000007 , 0x00000005 
+ 00018486  0x0000420d jam  0x00000020 , 0x0000090c 
+ 00018487  0x0000420f fetch  0x00000001 , 0x0000090d 
+ 00018488  0x00004210 set1  0x00000002 , 0x0000003f 
+ 00018489  0x00004211 store  0x00000001 , 0x0000090d 
+ 00018490  0x00004212 rtn 
+ 00018491  0x00004215 bpatch  0x0000003b , 0x00004007 
+ 00018492  0x00004216 fetch  0x00000001 , 0x00004665 
+ 00018493  0x00004217 rtn  0x00000034 
+ 00018494  0x00004218 arg  0x0000000e , 0x00000007 
+ 00018495  0x00004219 call  0x00007cef 
+ 00018496  0x0000421a nrtn  0x00000034 
+ 00018497  0x0000421b jam  0x00000000 , 0x00004665 
+ 00018498  0x0000421c arg  0x00000923 , 0x00000005 
+ 00018499  0x0000421d call  0x00007c99 
+ 00018500  0x0000421e fetch  0x00000008 , 0x00000923 
+ 00018501  0x0000421f store  0x00000008 , 0x00004651 
+ 00018502  0x00004221 jam  0x00000000 , 0x00000923 
+ 00018503  0x00004223 jam  0x00000010 , 0x0000090b 
+ 00018504  0x00004224 fetch  0x00000001 , 0x0000090d 
+ 00018505  0x00004225 set1  0x00000001 , 0x0000003f 
+ 00018506  0x00004226 store  0x00000001 , 0x0000090d 
+ 00018507  0x00004227 rtn 
+ 00018508  0x0000422a fetch  0x00000001 , 0x00004667 
+ 00018509  0x0000422b rtn  0x00000034 
+ 00018510  0x0000422c arg  0x0000000a , 0x00000007 
+ 00018511  0x0000422d call  0x00007cef 
+ 00018512  0x0000422e nrtn  0x00000034 
+ 00018513  0x0000422f jam  0x00000000 , 0x00004667 
+ 00018514  0x00004230 arg  0x00000943 , 0x00000005 
+ 00018515  0x00004231 call  0x00007c99 
+ 00018516  0x00004232 jam  0x00000002 , 0x00000943 
+ 00018517  0x00004233 fetch  0x00000002 , 0x00000943 
+ 00018518  0x00004234 store  0x00000002 , 0x0000465f 
+ 00018519  0x00004236 jam  0x00000022 , 0x0000090c 
+ 00018520  0x00004237 branch  0x00004837 
+ 00018521  0x0000423a bpatch  0x0000003c , 0x00004007 
+ 00018522  0x0000423b fetch  0x00000001 , 0x00004666 
+ 00018523  0x0000423c rtn  0x00000034 
+ 00018524  0x0000423d arg  0x0000000c , 0x00000007 
+ 00018525  0x0000423e call  0x00007cef 
+ 00018526  0x0000423f nrtn  0x00000034 
+ 00018527  0x00004240 jam  0x00000000 , 0x00004666 
+ 00018528  0x00004241 arg  0x00000933 , 0x00000005 
+ 00018529  0x00004242 call  0x00007c99 
+ 00018530  0x00004243 jam  0x00000003 , 0x00000933 
+ 00018531  0x00004244 fetch  0x00000003 , 0x00000933 
+ 00018532  0x00004245 store  0x00000003 , 0x0000465c 
+ 00018533  0x00004247 jam  0x00000021 , 0x0000090c 
+ 00018534  0x00004248 branch  0x00004837 
+ 00018535  0x0000424b bpatch  0x0000003d , 0x00004007 
+ 00018536  0x0000424c fetch  0x00000001 , 0x00000901 
+ 00018537  0x0000424d call  0x000048b5 , 0x00000034 
+ 00018538  0x0000424e call  0x00007906 
+ 00018539  0x0000424f fetch  0x00000001 , 0x000008f7 
+ 00018540  0x00004250 rtn  0x00000034 
+ 00018541  0x00004251 jam  0x00000000 , 0x000008f7 
+ 00018542  0x00004252 fetch  0x00000002 , 0x000008f5 
+ 00018543  0x00004253 arg  0x000002ba , 0x00000002 
+ 00018544  0x00004254 isub  0x00000002 , 0x0000003e 
+ 00018545  0x00004255 nrtn  0x00000005 
+ 00018546  0x00004257 fetch  0x00000001 , 0x00000875 
+ 00018547  0x00004258 rtnne  0x000000ba 
+ 00018548  0x00004259 fetch  0x00000001 , 0x00000876 
+ 00018549  0x0000425a beq  0x000000a0 , 0x0000487c 
+ 00018550  0x0000425b beq  0x000000a1 , 0x00004882 
+ 00018551  0x0000425c beq  0x000000a6 , 0x0000488e 
+ 00018552  0x0000425d beq  0x000000a7 , 0x00004890 
+ 00018553  0x0000425e beq  0x000000a9 , 0x00004896 
+ 00018554  0x00004261 jam  0x00000000 , 0x000008f8 
+ 00018555  0x00004262 rtn 
+ 00018556  0x00004265 fetch  0x00000001 , 0x00000877 
+ 00018557  0x00004266 beq  0x00000081 , 0x0000487f 
+ 00018558  0x00004267 branch  0x0000487a 
+ 00018559  0x00004269 call  0x000032fc 
+ 00018560  0x0000426b jam  0x00000001 , 0x000008f8 
+ 00018561  0x0000426c rtn 
+ 00018562  0x0000426f fetch  0x00000001 , 0x00000877 
+ 00018563  0x00004270 beq  0x00000001 , 0x00004887 
+ 00018564  0x00004271 beq  0x00000084 , 0x0000488a 
+ 00018565  0x00004272 beq  0x000000a7 , 0x0000488c 
+ 00018566  0x00004273 branch  0x0000487a 
+ 00018567  0x00004275 fetch  0x00000001 , 0x000045d5 
+ 00018568  0x00004276 store  0x00000001 , 0x000008b6 
+ 00018569  0x00004277 branch  0x00004880 
+ 00018570  0x00004279 call  0x00003461 
+ 00018571  0x0000427a branch  0x00004887 
+ 00018572  0x0000427d jam  0x000000a1 , 0x000008b6 
+ 00018573  0x0000427e branch  0x00004880 
+ 00018574  0x00004281 jam  0x00000015 , 0x000008b6 
+ 00018575  0x00004282 branch  0x00004880 
+ 00018576  0x00004285 fetch  0x00000001 , 0x00004616 
+ 00018577  0x00004286 beq  0x00000000 , 0x00004894 
+ 00018578  0x00004287 beq  0x00000001 , 0x0000488c 
+ 00018579  0x00004288 rtn 
+ 00018580  0x0000428a jam  0x000000a0 , 0x000008b6 
+ 00018581  0x0000428b branch  0x00004880 
+ 00018582  0x0000428e jam  0x00000000 , 0x000008b6 
+ 00018583  0x0000428f jam  0x00000000 , 0x000008b7 
+ 00018584  0x00004290 jam  0x00000001 , 0x000008b8 
+ 00018585  0x00004291 jam  0x00000007 , 0x000008b9 
+ 00018586  0x00004292 branch  0x00004880 
+ 00018587  0x0000429b call  0x00003402 
+ 00018588  0x0000429d call  0x00003407 
+ 00018589  0x0000429e call  0x0000342d 
+ 00018590  0x0000429f call  0x000048a3 
+ 00018591  0x000042a0 call  0x00003469 
+ 00018592  0x000042a1 call  0x00003488 
+ 00018593  0x000042a2 call  0x00004867 
+ 00018594  0x000042a3 branch  0x0000489c 
+ 00018595  0x000042a6 bpatch  0x0000003e , 0x00004007 
+ 00018596  0x000042a7 fetch  0x00000001 , 0x00004616 
+ 00018597  0x000042a8 rtnne  0x00000000 
+ 00018598  0x000042a9 call  0x00003464 
+ 00018599  0x000042aa call  0x00004827 
+ 00018600  0x000042ab fetch  0x00000001 , 0x00004610 
+ 00018601  0x000042ac nrtn  0x00000034 
+ 00018602  0x000042ad branch  0x0000350a 
+ 00018603  0x000042b0 fetch  0x00000001 , 0x00004589 
+ 00018604  0x000042b1 beq  0x00000001 , 0x000048ae 
+ 00018605  0x000042b2 beq  0x00000002 , 0x000048b7 
+ 00018606  0x000042b4 fetch  0x00000001 , 0x00004693 
+ 00018607  0x000042b5 bbit1  0x00000000 , 0x000048bd 
+ 00018608  0x000042b6 branch  0x000048b9 
+ 00018609  0x000042b9 fetch  0x00000001 , 0x000043cb 
+ 00018610  0x000042ba rtnne  0x00000004 
+ 00018611  0x000042bb jam  0x00000003 , 0x00004693 
+ 00018612  0x000042bc rtn 
+ 00018613  0x000042be jam  0x00000000 , 0x00004693 
+ 00018614  0x000042bf rtn 
+ 00018615  0x000042c2 fetch  0x00000001 , 0x00004693 
+ 00018616  0x000042c3 bbit1  0x00000001 , 0x000048c1 
+ 00018617  0x000042c5 fetch  0x00000001 , 0x00004611 
+ 00018618  0x000042c6 beq  0x00000001 , 0x000048c8 
+ 00018619  0x000042c7 beq  0x00000003 , 0x000048cc 
+ 00018620  0x000042c8 rtn 
+ 00018621  0x000042cb fetch  0x00000001 , 0x00004693 
+ 00018622  0x000042cc set0  0x00000000 , 0x0000003f 
+ 00018623  0x000042cd store  0x00000001 , 0x00004693 
+ 00018624  0x000042ce branch  0x000048c4 
+ 00018625  0x000042d1 fetch  0x00000001 , 0x00004693 
+ 00018626  0x000042d2 set0  0x00000001 , 0x0000003f 
+ 00018627  0x000042d3 store  0x00000001 , 0x00004693 
+ 00018628  0x000042d5 jam  0x00000001 , 0x00004588 
+ 00018629  0x000042d6 setarg  0x000000ff 
+ 00018630  0x000042d7 store  0x00000001 , 0x00004519 
+ 00018631  0x000042d8 rtn 
+ 00018632  0x000042dc jam  0x00000001 , 0x00004611 
+ 00018633  0x000042dd call  0x0000337e 
+ 00018634  0x000042de nrtn  0x0000002f 
+ 00018635  0x000042df branch  0x0000330a 
+ 00018636  0x000042e2 fetch  0x00000001 , 0x000044f9 
+ 00018637  0x000042e3 beq  0x00000001 , 0x000048c8 
+ 00018638  0x000042e4 beq  0x000000ff , 0x000048c8 
+ 00018639  0x000042e5 jam  0x00000000 , 0x000008f9 
+ 00018640  0x000042e6 jam  0x00000001 , 0x00004588 
+ 00018641  0x000042e7 fetch  0x00000001 , 0x00004621 
+ 00018642  0x000042e8 store  0x00000001 , 0x00004519 
+ 00018643  0x000042e9 rtn 
+ 00018644  0x000042ec setarg  0x00000001 
+ 00018645  0x000042ed store  0x00000001 , 0x00000913 
+ 00018646  0x000042ee fetch  0x00000007 , 0x000045eb 
+ 00018647  0x000042ef istore  0x00000007 , 0x00000005 
+ 00018648  0x000042f0 fetch  0x00000001 , 0x000045eb 
+ 00018649  0x000042f1 ncall  0x000048dd , 0x00000034 
+ 00018650  0x000042f2 fetch  0x00000001 , 0x000045eb 
+ 00018651  0x000042f3 call  0x000048e1 , 0x00000034 
+ 00018652  0x000042f4 branch  0x00004836 
+ 00018653  0x000042f7 jam  0x00000001 , 0x00004668 
+ 00018654  0x000042f8 setarg  0x00000180 
+ 00018655  0x000042f9 arg  0x0000000d , 0x00000007 
+ 00018656  0x000042fa branch  0x00007ce1 
+ 00018657  0x000042fd jam  0x00000000 , 0x00004668 
+ 00018658  0x000042fe setarg  0x00000000 
+ 00018659  0x000042ff arg  0x0000000d , 0x00000007 
+ 00018660  0x00004300 branch  0x00007ce1 
+ 00018661  0x00004303 fetch  0x00000001 , 0x000045eb 
+ 00018662  0x00004304 beq  0x00000000 , 0x000048ea 
+ 00018663  0x00004305 beq  0x00000002 , 0x0000491d 
+ 00018664  0x00004306 beq  0x00000003 , 0x00004905 
+ 00018665  0x00004307 branch  0x000033be 
+ 00018666  0x0000430a fetch  0x00000001 , 0x000045ed 
+ 00018667  0x0000430b store  0x00000001 , 0x00004611 
+ 00018668  0x0000430c jam  0x00000000 , 0x000045ed 
+ 00018669  0x0000430d arg  0x00000923 , 0x00000005 
+ 00018670  0x0000430e arg  0x000045ec , 0x00000006 
+ 00018671  0x0000430f arg  0x00000008 , 0x00000039 
+ 00018672  0x00004310 call  0x00007cda 
+ 00018673  0x00004311 fetch  0x00000008 , 0x00000923 
+ 00018674  0x00004312 ncall  0x000048fd , 0x00000034 
+ 00018675  0x00004313 fetch  0x00000008 , 0x00000923 
+ 00018676  0x00004314 call  0x00004901 , 0x00000034 
+ 00018677  0x00004315 fetch  0x00000008 , 0x00000923 
+ 00018678  0x00004316 store  0x00000008 , 0x00004649 
+ 00018679  0x00004317 fetcht  0x00000008 , 0x00004651 
+ 00018680  0x00004318 isub  0x00000002 , 0x0000003e 
+ 00018681  0x00004319 ncall  0x00004847 , 0x00000005 
+ 00018682  0x0000431a fetch  0x00000008 , 0x00004649 
+ 00018683  0x0000431b store  0x00000008 , 0x00004651 
+ 00018684  0x0000431c branch  0x000033be 
+ 00018685  0x0000431f jam  0x00000001 , 0x00004665 
+ 00018686  0x00004320 setarg  0x00000180 
+ 00018687  0x00004321 arg  0x0000000e , 0x00000007 
+ 00018688  0x00004322 branch  0x00007ce1 
+ 00018689  0x00004325 jam  0x00000000 , 0x00004665 
+ 00018690  0x00004326 setarg  0x00000000 
+ 00018691  0x00004327 arg  0x0000000e , 0x00000007 
+ 00018692  0x00004328 branch  0x00007ce1 
+ 00018693  0x0000432b arg  0x00000933 , 0x00000005 
+ 00018694  0x0000432c arg  0x000045eb , 0x00000006 
+ 00018695  0x0000432d arg  0x00000003 , 0x00000039 
+ 00018696  0x0000432e call  0x00007cda 
+ 00018697  0x0000432f fetch  0x00000002 , 0x00000934 
+ 00018698  0x00004330 ncall  0x00004915 , 0x00000034 
+ 00018699  0x00004331 fetch  0x00000002 , 0x00000934 
+ 00018700  0x00004332 call  0x00004919 , 0x00000034 
+ 00018701  0x00004333 fetch  0x00000003 , 0x00000933 
+ 00018702  0x00004334 store  0x00000003 , 0x00004659 
+ 00018703  0x00004335 fetcht  0x00000003 , 0x0000465c 
+ 00018704  0x00004336 isub  0x00000002 , 0x0000003e 
+ 00018705  0x00004337 ncall  0x00004865 , 0x00000005 
+ 00018706  0x00004338 fetch  0x00000003 , 0x00004659 
+ 00018707  0x00004339 store  0x00000003 , 0x0000465c 
+ 00018708  0x0000433a branch  0x000033be 
+ 00018709  0x0000433d jam  0x00000001 , 0x00004666 
+ 00018710  0x0000433e setarg  0x00000180 
+ 00018711  0x0000433f arg  0x0000000c , 0x00000007 
+ 00018712  0x00004340 branch  0x00007ce1 
+ 00018713  0x00004343 jam  0x00000000 , 0x00004666 
+ 00018714  0x00004344 setarg  0x00000000 
+ 00018715  0x00004345 arg  0x0000000c , 0x00000007 
+ 00018716  0x00004346 branch  0x00007ce1 
+ 00018717  0x00004349 arg  0x00000943 , 0x00000005 
+ 00018718  0x0000434a arg  0x000045eb , 0x00000006 
+ 00018719  0x0000434b arg  0x00000002 , 0x00000039 
+ 00018720  0x0000434c call  0x00007cda 
+ 00018721  0x0000434d fetch  0x00000002 , 0x00000943 
+ 00018722  0x0000434e ncall  0x0000492d , 0x00000034 
+ 00018723  0x0000434f fetch  0x00000002 , 0x00000943 
+ 00018724  0x00004350 call  0x00004931 , 0x00000034 
+ 00018725  0x00004351 fetch  0x00000002 , 0x00000943 
+ 00018726  0x00004352 store  0x00000002 , 0x0000465f 
+ 00018727  0x00004353 fetcht  0x00000002 , 0x00004662 
+ 00018728  0x00004354 isub  0x00000002 , 0x0000003e 
+ 00018729  0x00004355 ncall  0x00004935 , 0x00000005 
+ 00018730  0x00004356 fetch  0x00000002 , 0x0000465f 
+ 00018731  0x00004357 store  0x00000002 , 0x00004662 
+ 00018732  0x00004358 branch  0x000033be 
+ 00018733  0x0000435b jam  0x00000001 , 0x00004667 
+ 00018734  0x0000435c setarg  0x00000180 
+ 00018735  0x0000435d arg  0x0000000a , 0x00000007 
+ 00018736  0x0000435e branch  0x00007ce1 
+ 00018737  0x00004360 jam  0x00000000 , 0x00004667 
+ 00018738  0x00004361 setarg  0x00000000 
+ 00018739  0x00004362 arg  0x0000000a , 0x00000007 
+ 00018740  0x00004363 branch  0x00007ce1 
+ 00018741  0x00004366 jam  0x00000022 , 0x0000090c 
+ 00018742  0x00004367 branch  0x00004837 
+ 00018743  0x0000436b fetch  0x00000001 , 0x000043cb 
+ 00018744  0x0000436c rtnne  0x00000004 
+ 00018745  0x0000436d fetch  0x00000001 , 0x00004648 
+ 00018746  0x0000436e rtneq  0x0000005a 
+ 00018747  0x00004370 jam  0x00000001 , 0x00004692 
+ 00018748  0x00004371 rtn 
+ 00018749  0x00004375 fetch  0x00000001 , 0x000043cb 
+ 00018750  0x00004376 rtnne  0x00000004 
+ 00018751  0x00004377 fetch  0x00000001 , 0x00004692 
+ 00018752  0x00004378 rtn  0x00000034 
+ 00018753  0x00004379 jam  0x00000000 , 0x00000678 
+ 00018754  0x0000437b jam  0x0000005a , 0x00004648 
+ 00018755  0x0000437c call  0x000047f4 
+ 00018756  0x0000437d call  0x000047ef 
+ 00018757  0x0000437e fetch  0x00000001 , 0x00000678 
+ 00018758  0x0000437f increase  0x00000001 , 0x0000003f 
+ 00018759  0x00004380 store  0x00000001 , 0x00000678 
+ 00018760  0x00004381 beq  0x000000ff , 0x00006ca3 
+ 00018761  0x00004382 fetch  0x00000001 , 0x00004648 
+ 00018762  0x00004383 bne  0x0000005a , 0x00004942 
+ 00018763  0x00004384 branch  0x00006ca3 
+ 00018764  0x00004391 fetch  0x00000001 , 0x000043cb 
+ 00018765  0x00004392 rtnne  0x0000000f 
+ 00018766  0x00004393 call  0x000054ac 
+ 00018767  0x00004394 nbranch  0x00002002 , 0x00000028 
+ 00018768  0x00004395 fetch  0x00000001 , 0x00004846 
+ 00018769  0x00004396 branch  0x00002002 , 0x00000034 
+ 00018770  0x00004397 fetch  0x00000001 , 0x00004655 
+ 00018771  0x00004398 rtneq  0x000000ff 
+ 00018772  0x00004399 copy  0x0000003f , 0x00000007 
+ 00018773  0x0000439a fetch  0x00000004 , 0x0000069d 
+ 00018774  0x0000439b qisolate0  0x0000003f 
+ 00018775  0x0000439c call  0x00004e45 , 0x00000001 
+ 00018776  0x0000439d branch  0x00002003 
+ 00018777  0x000043a0 call  0x00007396 
+ 00018778  0x000043a1 call  0x000049a1 
+ 00018779  0x000043a3 call  0x000049c8 
+ 00018780  0x000043a4 call  0x000049ea 
+ 00018781  0x000043a5 rtn  0x0000002b 
+ 00018782  0x000043a6 call  0x00004966 
+ 00018783  0x000043a7 call  0x00004a7a 
+ 00018784  0x000043a8 fetch  0x00000001 , 0x00004663 
+ 00018785  0x000043a9 rtnbit1  0x00000007 
+ 00018786  0x000043ab fetch  0x00000002 , 0x000044e9 
+ 00018787  0x000043ac bbit1  0x0000000c , 0x00004b95 
+ 00018788  0x000043ad call  0x00005eb6 
+ 00018789  0x000043ae branch  0x00004bcf 
+ 00018790  0x000043b2 fetch  0x00000008 , 0x00004713 
+ 00018791  0x000043b3 rtnbit0  0x0000000d 
+ 00018792  0x000043b4 setarg  0x0000496c 
+ 00018793  0x000043b5 store  0x00000002 , 0x00000859 
+ 00018794  0x000043b6 jam  0x000000a5 , 0x00004664 
+ 00018795  0x000043b7 branch  0x0000498e 
+ 00018796  0x000043ba call  0x0000496f 
+ 00018797  0x000043bb call  0x00004974 
+ 00018798  0x000043bc branch  0x00004984 
+ 00018799  0x000043bf jam  0x00000000 , 0x00004665 
+ 00018800  0x000043c0 fetch  0x00000008 , 0x00004713 
+ 00018801  0x000043c1 rtnbit0  0x00000016 
+ 00018802  0x000043c2 jam  0x0000005a , 0x00004665 
+ 00018803  0x000043c3 rtn 
+ 00018804  0x000043c6 fetch  0x00000008 , 0x00004713 
+ 00018805  0x000043c7 bbit1  0x0000001d , 0x0000497b 
+ 00018806  0x000043c8 bbit1  0x0000001e , 0x0000497e 
+ 00018807  0x000043c9 bbit1  0x0000001f , 0x00004981 
+ 00018808  0x000043ca jam  0x00000019 , 0x00004662 
+ 00018809  0x000043cb jam  0x00000008 , 0x0000085b 
+ 00018810  0x000043cc rtn 
+ 00018811  0x000043ce jam  0x0000000c , 0x00004662 
+ 00018812  0x000043cf jam  0x00000004 , 0x0000085b 
+ 00018813  0x000043d0 rtn 
+ 00018814  0x000043d2 jam  0x00000006 , 0x00004662 
+ 00018815  0x000043d3 jam  0x00000002 , 0x0000085b 
+ 00018816  0x000043d4 rtn 
+ 00018817  0x000043d6 jam  0x00000003 , 0x00004662 
+ 00018818  0x000043d7 jam  0x00000001 , 0x0000085b 
+ 00018819  0x000043d8 rtn 
+ 00018820  0x000043db call  0x00007966 
+ 00018821  0x000043dc call  0x00004987 
+ 00018822  0x000043dd branch  0x0000498c 
+ 00018823  0x000043e0 fetch  0x00000001 , 0x0000085c 
+ 00018824  0x000043e1 rtn  0x00000034 
+ 00018825  0x000043e2 fetch  0x00000001 , 0x00004665 
+ 00018826  0x000043e3 beq  0x0000005a , 0x0000480c 
+ 00018827  0x000043e4 branch  0x00004809 
+ 00018828  0x000043e7 fetch  0x00000001 , 0x00004665 
+ 00018829  0x000043e8 branch  0x0000480f 
+ 00018830  0x000043ed bpatch  0x00000041 , 0x00004008 
+ 00018831  0x000043ee fetcht  0x00000001 , 0x0000086c 
+ 00018832  0x000043ef call  0x00006ee6 
+ 00018833  0x000043f0 branch  0x00004993 , 0x00000001 
+ 00018834  0x000043f1 branch  0x0000499a 
+ 00018835  0x000043f5 fetch  0x00000001 , 0x00004664 
+ 00018836  0x000043f6 rtneq  0x000000a5 
+ 00018837  0x000043f7 jam  0x000000a5 , 0x00004664 
+ 00018838  0x000043f8 jam  0x00000000 , 0x0000090e 
+ 00018839  0x000043f9 jam  0x00000000 , 0x00000709 
+ 00018840  0x000043fa jam  0x00000000 , 0x00000900 
+ 00018841  0x000043fb branch  0x00004962 
+ 00018842  0x000043ff fetch  0x00000001 , 0x00004664 
+ 00018843  0x00004400 rtneq  0x0000005a 
+ 00018844  0x00004401 jam  0x0000005a , 0x00004664 
+ 00018845  0x00004402 call  0x00006018 
+ 00018846  0x00004403 call  0x00005aaa 
+ 00018847  0x00004404 call  0x00004f70 
+ 00018848  0x00004405 branch  0x00007912 
+ 00018849  0x0000440a rtn  0x0000002b 
+ 00018850  0x0000440c call  0x000035f0 
+ 00018851  0x0000440d call  0x0000325b 
+ 00018852  0x0000440f call  0x000049af 
+ 00018853  0x00004410 fetcht  0x00000001 , 0x00004865 
+ 00018854  0x00004411 call  0x00006ef3 
+ 00018855  0x00004413 call  0x00004b6d 
+ 00018856  0x00004414 call  0x00006177 
+ 00018857  0x00004415 call  0x00002a41 
+ 00018858  0x00004417 fetch  0x00000008 , 0x00004713 
+ 00018859  0x00004418 bbit1  0x00000014 , 0x000049fd 
+ 00018860  0x00004419 bbit1  0x00000013 , 0x00005d60 
+ 00018861  0x0000441a bbit1  0x00000012 , 0x00005d6e 
+ 00018862  0x0000441b rtn 
+ 00018863  0x00004422 call  0x0000543b 
+ 00018864  0x00004424 jam  0x00000000 , 0x000048eb 
+ 00018865  0x00004425 setarg  0x00230170 
+ 00018866  0x00004426 store  0x00000003 , 0x0000462d 
+ 00018867  0x00004427 setarg  0x00015301 
+ 00018868  0x00004428 istore  0x00000003 , 0x00000005 
+ 00018869  0x00004429 arg  0x000047a0 , 0x00000005 
+ 00018870  0x0000442a arg  0x00000014 , 0x00000039 
+ 00018871  0x0000442b call  0x00007ca1 
+ 00018872  0x0000442d fetch  0x00000001 , 0x0000426b 
+ 00018873  0x0000442e sub  0x0000003f , 0x0000000c , 0x0000003e 
+ 00018874  0x0000442f nbranch  0x000049c6 , 0x00000002 
+ 00018875  0x00004430 setarg  0x0006ff06 
+ 00018876  0x00004431 store  0x00000003 , 0x000047a0 
+ 00018877  0x00004432 setarg  0x00000300 
+ 00018878  0x00004433 istore  0x00000003 , 0x00000005 
+ 00018879  0x00004434 setarg  0x00000080 
+ 00018880  0x00004435 istore  0x00000001 , 0x00000005 
+ 00018881  0x00004437 fetch  0x00000001 , 0x0000426b 
+ 00018882  0x00004438 increase  0x00000001 , 0x0000003f 
+ 00018883  0x00004439 copy  0x0000003f , 0x00000039 
+ 00018884  0x0000443a arg  0x00004369 , 0x00000006 
+ 00018885  0x0000443b branch  0x00007cda 
+ 00018886  0x0000443e arg  0x000047a0 , 0x00000005 
+ 00018887  0x0000443f branch  0x000049c1 
+ 00018888  0x00004445 fetcht  0x00000001 , 0x00004864 
+ 00018889  0x00004446 call  0x00006f0f 
+ 00018890  0x00004447 fetcht  0x00000001 , 0x00004863 
+ 00018891  0x00004448 call  0x00006f0f 
+ 00018892  0x00004449 fetcht  0x00000001 , 0x00004865 
+ 00018893  0x0000444a call  0x00006f0f 
+ 00018894  0x0000444c setarg  0x0000486e 
+ 00018895  0x0000444d store  0x00000002 , 0x00004896 
+ 00018896  0x0000444f setarg  0x00004876 
+ 00018897  0x00004450 store  0x00000002 , 0x00004898 
+ 00018898  0x00004452 setarg  0x0000488a 
+ 00018899  0x00004453 store  0x00000002 , 0x0000489a 
+ 00018900  0x00004455 fetch  0x00000002 , 0x00004896 
+ 00018901  0x00004456 copy  0x0000003f , 0x00000012 
+ 00018902  0x00004457 arg  0x00000008 , 0x00000039 
+ 00018903  0x0000445a ifetcht  0x00000001 , 0x00000012 
+ 00018904  0x0000445b sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00018905  0x0000445c ncall  0x000049e7 , 0x00000005 
+ 00018906  0x0000445d increase  0x00000001 , 0x00000012 
+ 00018907  0x0000445e loop  0x000049d7 
+ 00018908  0x0000445f call  0x000023fd 
+ 00018909  0x00004460 fetch  0x00000002 , 0x00004898 
+ 00018910  0x00004461 copy  0x0000003f , 0x00000012 
+ 00018911  0x00004462 copy  0x0000003f , 0x00000013 
+ 00018912  0x00004463 arg  0x0000000b , 0x00000039 
+ 00018913  0x00004466 ifetcht  0x00000001 , 0x00000012 
+ 00018914  0x00004467 isolate1  0x00000007 , 0x00000002 
+ 00018915  0x00004468 ncall  0x00006f0f , 0x00000001 
+ 00018916  0x00004469 increase  0x00000001 , 0x00000012 
+ 00018917  0x0000446a loop  0x000049e1 
+ 00018918  0x0000446b rtn 
+ 00018919  0x0000446e call  0x00006f0f 
+ 00018920  0x0000446f ifetcht  0x00000001 , 0x00000012 
+ 00018921  0x00004470 branch  0x00006ec6 
+ 00018922  0x00004475 fetch  0x00000001 , 0x00004666 
+ 00018923  0x00004476 beq  0x00000001 , 0x000049f1 
+ 00018924  0x00004477 setarg  0x005d4800 
+ 00018925  0x00004478 store  0x00000004 , 0x00004613 
+ 00018926  0x00004479 fetch  0x00000001 , 0x0000440c 
+ 00018927  0x0000447a rtnbit0  0x00000000 
+ 00018928  0x0000447b branch  0x00005fe4 
+ 00018929  0x0000447d jam  0x0000000c , 0x0000496b 
+ 00018930  0x0000447e fetch  0x00000001 , 0x0000440c 
+ 00018931  0x0000447f rtnbit0  0x00000000 
+ 00018932  0x00004480 jam  0x00000010 , 0x0000496b 
+ 00018933  0x00004481 fetch  0x00000001 , 0x0000477e 
+ 00018934  0x00004482 branch  0x00005c01 , 0x00000034 
+ 00018935  0x00004483 rtn 
+ 00018936  0x00004487 fetch  0x00000002 , 0x000049df 
+ 00018937  0x00004488 arg  0x00000528 , 0x00000002 
+ 00018938  0x00004489 isub  0x00000002 , 0x0000003e 
+ 00018939  0x0000448a nrtn  0x00000002 
+ 00018940  0x0000448b branch  0x0000235a 
+ 00018941  0x0000448e bpatch  0x00000042 , 0x00004008 
+ 00018942  0x0000448f fetch  0x00000001 , 0x00004666 
+ 00018943  0x00004490 beq  0x00000000 , 0x00004a02 
+ 00018944  0x00004491 beq  0x00000001 , 0x00004a0c 
+ 00018945  0x00004492 rtn 
+ 00018946  0x00004495 arg  0x00000050 , 0x00000018 
+ 00018947  0x00004496 setarg  0x00000400 
+ 00018948  0x00004497 idiv  0x00000018 
+ 00018949  0x00004498 call  0x00007d62 
+ 00018950  0x00004499 quotient  0x0000003f 
+ 00018951  0x0000449a store  0x00000002 , 0x00000670 
+ 00018952  0x0000449b arg  0x00001fcc , 0x0000003f 
+ 00018953  0x0000449c arg  0x00000004 , 0x00000002 
+ 00018954  0x0000449d arg  0x00000004 , 0x0000002b 
+ 00018955  0x0000449e branch  0x00004a16 
+ 00018956  0x000044a0 arg  0x00000118 , 0x00000018 
+ 00018957  0x000044a1 setarg  0x00000400 
+ 00018958  0x000044a2 idiv  0x00000018 
+ 00018959  0x000044a3 call  0x00007d62 
+ 00018960  0x000044a4 quotient  0x0000003f 
+ 00018961  0x000044a5 store  0x00000002 , 0x00000670 
+ 00018962  0x000044a6 arg  0x00001fc2 , 0x0000003f 
+ 00018963  0x000044a7 arg  0x0000000e , 0x00000002 
+ 00018964  0x000044a8 arg  0x0000000e , 0x0000002b 
+ 00018965  0x000044a9 branch  0x00004a16 
+ 00018966  0x000044ab storet  0x00000001 , 0x00000678 
+ 00018967  0x000044ac arg  0x000049c7 , 0x00000011 
+ 00018968  0x000044ad arg  0x00000000 , 0x00000013 
+ 00018969  0x000044af copy  0x0000003f , 0x00000012 
+ 00018970  0x000044b0 fetchr  0x00000039 , 0x00000001 , 0x00000678 
+ 00018971  0x000044b1 call  0x00006b74 
+ 00018972  0x000044b2 fetch  0x00000008 , 0x000049c7 
+ 00018973  0x000044b3 fetcht  0x00000008 , 0x000049cf 
+ 00018974  0x000044b4 ior  0x00000002 , 0x0000003f 
+ 00018975  0x000044b5 fetcht  0x00000008 , 0x000049d7 
+ 00018976  0x000044b6 ior  0x00000002 , 0x0000003f 
+ 00018977  0x000044b7 branch  0x00004a28 , 0x00000034 
+ 00018978  0x000044b8 increase  0x00000001 , 0x00000013 
+ 00018979  0x000044b9 fetch  0x00000002 , 0x00000670 
+ 00018980  0x000044ba isub  0x00000013 , 0x0000003e 
+ 00018981  0x000044bc copy  0x00000012 , 0x0000003f 
+ 00018982  0x000044bd isub  0x00000018 , 0x0000003f 
+ 00018983  0x000044be branch  0x00004a19 
+ 00018984  0x000044c1 sub  0x00000013 , 0x00000000 , 0x0000003e 
+ 00018985  0x000044c2 branch  0x00004a38 , 0x00000005 
+ 00018986  0x000044c4 copy  0x00000012 , 0x0000003f 
+ 00018987  0x000044c5 iadd  0x00000018 , 0x0000003f 
+ 00018988  0x000044c7 isub  0x0000002b , 0x0000003f 
+ 00018989  0x000044c8 copy  0x0000003f , 0x00000012 
+ 00018990  0x000044c9 fetchr  0x00000039 , 0x00000001 , 0x00000678 
+ 00018991  0x000044ca call  0x00006b74 
+ 00018992  0x000044cb fetch  0x00000008 , 0x000049c7 
+ 00018993  0x000044cc fetcht  0x00000008 , 0x000049cf 
+ 00018994  0x000044cd ior  0x00000002 , 0x0000003f 
+ 00018995  0x000044ce fetcht  0x00000008 , 0x000049d7 
+ 00018996  0x000044cf ior  0x00000002 , 0x0000003f 
+ 00018997  0x000044d0 branch  0x00004a3a , 0x00000034 
+ 00018998  0x000044d1 copy  0x00000012 , 0x0000003f 
+ 00018999  0x000044d2 branch  0x00004a2c 
+ 00019000  0x000044d4 storer  0x0000002b , 0x00000001 , 0x000049df 
+ 00019001  0x000044d5 rtn 
+ 00019002  0x000044d7 bpatch  0x00000043 , 0x00004008 
+ 00019003  0x000044d8 setarg  0x00001fd0 
+ 00019004  0x000044d9 isub  0x00000012 , 0x0000003f 
+ 00019005  0x000044da store  0x00000002 , 0x000049df 
+ 00019006  0x000044db copy  0x00000012 , 0x0000003f 
+ 00019007  0x000044dc iadd  0x0000002b , 0x00000012 
+ 00019008  0x000044dd fetchr  0x00000039 , 0x00000001 , 0x00000678 
+ 00019009  0x000044de arg  0x000049c7 , 0x00000011 
+ 00019010  0x000044df call  0x00006b74 
+ 00019011  0x000044e0 fetch  0x00000001 , 0x00004666 
+ 00019012  0x000044e1 beq  0x00000000 , 0x00004a47 
+ 00019013  0x000044e2 beq  0x00000001 , 0x00004a4a 
+ 00019014  0x000044e3 rtn 
+ 00019015  0x000044e6 fetch  0x00000006 , 0x000049c7 
+ 00019016  0x000044e7 store  0x00000004 , 0x00004691 
+ 00019017  0x000044e8 branch  0x00004a76 
+ 00019018  0x000044eb fetch  0x00000001 , 0x000049c7 
+ 00019019  0x000044ec sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00019020  0x000044ed ncall  0x00007dca , 0x00000002 
+ 00019021  0x000044ee store  0x00000001 , 0x000049c6 
+ 00019022  0x000044ef fetch  0x00000001 , 0x000049c8 
+ 00019023  0x000044f0 store  0x00000001 , 0x00004667 
+ 00019024  0x000044f1 fetch  0x00000006 , 0x000049c9 
+ 00019025  0x000044f2 store  0x00000006 , 0x00004668 
+ 00019026  0x000044f3 fetch  0x00000006 , 0x000049cf 
+ 00019027  0x000044f4 store  0x00000006 , 0x0000466e 
+ 00019028  0x000044f5 branch  0x00005c6f 
+ 00019029  0x000044f9 branch  0x0000235a 
+ 00019030  0x000044fd bpatch  0x00000044 , 0x00004008 
+ 00019031  0x000044fe fetch  0x00000008 , 0x00004713 
+ 00019032  0x000044ff bbit1  0x00000014 , 0x00004a5c 
+ 00019033  0x00004500 bbit1  0x00000013 , 0x00005cb1 
+ 00019034  0x00004501 bbit1  0x00000012 , 0x00005cb9 
+ 00019035  0x00004502 rtn 
+ 00019036  0x00004505 rtn 
+ 00019037  0x00004506 fetch  0x00000001 , 0x00004666 
+ 00019038  0x00004507 beq  0x00000000 , 0x00004a61 
+ 00019039  0x00004508 beq  0x00000001 , 0x00004a6b 
+ 00019040  0x00004509 rtn 
+ 00019041  0x0000450c fetcht  0x00000002 , 0x000049df 
+ 00019042  0x0000450d setarg  0x00001fd0 
+ 00019043  0x0000450e isub  0x00000002 , 0x00000012 
+ 00019044  0x0000450f arg  0x00004691 , 0x00000011 
+ 00019045  0x00004510 arg  0x00000004 , 0x00000039 
+ 00019046  0x00004511 call  0x00006b45 
+ 00019047  0x00004512 fetcht  0x00000002 , 0x000049df 
+ 00019048  0x00004513 increase  0x00000004 , 0x00000002 
+ 00019049  0x00004514 storet  0x00000002 , 0x000049df 
+ 00019050  0x00004515 rtn 
+ 00019051  0x00004518 fetcht  0x00000002 , 0x000049df 
+ 00019052  0x00004519 setarg  0x00001fd0 
+ 00019053  0x0000451a isub  0x00000002 , 0x00000012 
+ 00019054  0x0000451d add  0x00000012 , 0x00000001 , 0x00000012 
+ 00019055  0x0000451e arg  0x00004668 , 0x00000011 
+ 00019056  0x0000451f arg  0x00000006 , 0x00000039 
+ 00019057  0x00004520 call  0x00006b45 
+ 00019058  0x00004522 add  0x00000012 , 0x00000007 , 0x00000012 
+ 00019059  0x00004523 arg  0x0000466e , 0x00000011 
+ 00019060  0x00004524 arg  0x00000006 , 0x00000039 
+ 00019061  0x00004525 branch  0x00006b45 
+ 00019062  0x00004528 fetch  0x00000004 , 0x00004691 
+ 00019063  0x00004529 store  0x00000004 , 0x000045e8 
+ 00019064  0x0000452a store  0x00000004 , 0x0000458f 
+ 00019065  0x0000452b rtn 
+ 00019066  0x0000452f bpatch  0x00000045 , 0x00004008 
+ 00019067  0x00004530 setarg  0x00006109 
+ 00019068  0x00004531 store  0x00000002 , 0x000043e9 
+ 00019069  0x00004532 setarg  0x00004fe5 
+ 00019070  0x00004533 store  0x00000002 , 0x000045f2 
+ 00019071  0x00004534 setarg  0x00004ff8 
+ 00019072  0x00004535 store  0x00000002 , 0x000045f4 
+ 00019073  0x00004536 setarg  0x00004f41 
+ 00019074  0x00004537 store  0x00000002 , 0x000045f6 
+ 00019075  0x00004538 setarg  0x00004be6 
+ 00019076  0x00004539 store  0x00000002 , 0x000043d9 
+ 00019077  0x0000453b setarg  0x00004f5d 
+ 00019078  0x0000453c store  0x00000002 , 0x000043d7 
+ 00019079  0x0000453e setarg  0x00004a9a 
+ 00019080  0x0000453f store  0x00000002 , 0x000043dd 
+ 00019081  0x00004540 setarg  0x00004bcc 
+ 00019082  0x00004541 store  0x00000002 , 0x000043db 
+ 00019083  0x00004542 setarg  0x00004f62 
+ 00019084  0x00004543 store  0x00000002 , 0x000043d5 
+ 00019085  0x00004544 setarg  0x00005b08 
+ 00019086  0x00004545 store  0x00000002 , 0x000043df 
+ 00019087  0x00004546 setarg  0x00004b19 
+ 00019088  0x00004547 store  0x00000002 , 0x000043e3 
+ 00019089  0x00004548 setarg  0x000055fa 
+ 00019090  0x00004549 store  0x00000002 , 0x000043e7 
+ 00019091  0x0000454a setarg  0x000054c5 
+ 00019092  0x0000454b store  0x00000002 , 0x000043d3 
+ 00019093  0x0000454c setarg  0x00006221 
+ 00019094  0x0000454d store  0x00000002 , 0x000043e1 
+ 00019095  0x0000454e setarg  0x00006228 
+ 00019096  0x0000454f store  0x00000002 , 0x000043e5 
+ 00019097  0x00004550 rtn 
+ 00019098  0x00004555 bpatch  0x00000046 , 0x00004008 
+ 00019099  0x00004556 copy  0x00000013 , 0x0000003f 
+ 00019100  0x00004558 beq  0x00000032 , 0x00004acb 
+ 00019101  0x00004559 beq  0x00000044 , 0x00004ad3 
+ 00019102  0x0000455a beq  0x00000040 , 0x00004add 
+ 00019103  0x0000455b beq  0x00000015 , 0x00004ab8 
+ 00019104  0x0000455d beq  0x00000014 , 0x00004aaa 
+ 00019105  0x0000455e beq  0x00000010 , 0x00004b90 
+ 00019106  0x0000455f beq  0x00000031 , 0x00005aed 
+ 00019107  0x00004560 beq  0x00000029 , 0x00005aef 
+ 00019108  0x00004562 beq  0x0000003e , 0x00004329 
+ 00019109  0x00004563 beq  0x00000044 , 0x00005b10 
+ 00019110  0x00004565 beq  0x00000039 , 0x00004ae2 
+ 00019111  0x00004566 beq  0x0000003c , 0x00004ae5 
+ 00019112  0x00004567 beq  0x0000003a , 0x00004afe 
+ 00019113  0x0000456a rtn 
+ 00019114  0x00004571 jam  0x00000000 , 0x0000477d 
+ 00019115  0x00004573 jam  0x00000001 , 0x00004794 
+ 00019116  0x00004574 call  0x00006042 
+ 00019117  0x00004575 fetch  0x00000001 , 0x00004795 
+ 00019118  0x00004576 nbranch  0x00004ab0 , 0x00000034 
+ 00019119  0x00004577 jam  0x00000014 , 0x00004796 
+ 00019120  0x00004579 fetch  0x00000002 , 0x000043f1 
+ 00019121  0x0000457a set0  0x00000000 , 0x0000003f 
+ 00019122  0x0000457b store  0x00000002 , 0x000043f1 
+ 00019123  0x0000457c jam  0x00000000 , 0x00004845 
+ 00019124  0x0000457d fetch  0x00000002 , 0x000047be 
+ 00019125  0x0000457e store  0x00000002 , 0x000047c0 
+ 00019126  0x0000457f call  0x00005c0b 
+ 00019127  0x00004580 branch  0x00004bbd 
+ 00019128  0x00004584 setarg  0x00000000 
+ 00019129  0x00004585 store  0x00000002 , 0x000047c0 
+ 00019130  0x00004586 store  0x00000001 , 0x00004860 
+ 00019131  0x00004587 store  0x00000001 , 0x00004861 
+ 00019132  0x00004588 store  0x00000001 , 0x00004794 
+ 00019133  0x0000458a jam  0x00000000 , 0x000047c2 
+ 00019134  0x0000458b jam  0x00000000 , 0x00004956 
+ 00019135  0x0000458c call  0x000029cb 
+ 00019136  0x0000458d branch  0x00004ac1 
+ 00019137  0x0000458f call  0x00005b7b 
+ 00019138  0x00004590 fetch  0x00000002 , 0x000043ef 
+ 00019139  0x00004591 bbit1  0x00000007 , 0x00004ac6 
+ 00019140  0x00004592 bbit1  0x00000000 , 0x000042fc 
+ 00019141  0x00004593 branch  0x00004b95 
+ 00019142  0x00004595 call  0x00005b21 
+ 00019143  0x00004596 fetch  0x00000002 , 0x000043ef 
+ 00019144  0x00004597 bbit1  0x00000000 , 0x000042fc 
+ 00019145  0x00004598 call  0x00007d7c 
+ 00019146  0x00004599 branch  0x00004f6c 
+ 00019147  0x0000459d fetch  0x00000001 , 0x00004795 
+ 00019148  0x0000459e beq  0x00000001 , 0x00004ad0 
+ 00019149  0x0000459f jam  0x00000014 , 0x00004844 
+ 00019150  0x000045a0 jam  0x00000005 , 0x00004862 
+ 00019151  0x000045a1 branch  0x00005af6 
+ 00019152  0x000045a3 call  0x00005aef 
+ 00019153  0x000045a4 jam  0x00000005 , 0x00004844 
+ 00019154  0x000045a5 branch  0x00005af6 
+ 00019155  0x000045a8 fetch  0x00000001 , 0x000001a2 
+ 00019156  0x000045a9 sub  0x0000003f , 0x0000000c , 0x0000003e 
+ 00019157  0x000045aa nbranch  0x00005b06 , 0x00000002 
+ 00019158  0x000045ab fetch  0x00000001 , 0x000001a4 
+ 00019159  0x000045ac fetcht  0x00000001 , 0x0000496b 
+ 00019160  0x000045ad isub  0x00000002 , 0x0000003e 
+ 00019161  0x000045ae branch  0x00005b1d , 0x00000002 
+ 00019162  0x000045af fetch  0x00000001 , 0x000001a4 
+ 00019163  0x000045b0 store  0x00000001 , 0x000040c0 
+ 00019164  0x000045b1 branch  0x00005b1f 
+ 00019165  0x000045b4 fetch  0x00000001 , 0x00004860 
+ 00019166  0x000045b5 nrtn  0x00000034 
+ 00019167  0x000045b6 jam  0x00000001 , 0x00004860 
+ 00019168  0x000045b7 jam  0x0000001e , 0x00004861 
+ 00019169  0x000045b8 rtn 
+ 00019170  0x000045bb call  0x00004af9 
+ 00019171  0x000045bc call  0x00005c0b 
+ 00019172  0x000045bd branch  0x00006086 
+ 00019173  0x000045c0 call  0x00004af9 
+ 00019174  0x000045c1 fetch  0x00000004 , 0x0000458f 
+ 00019175  0x000045c2 store  0x00000004 , 0x000045e8 
+ 00019176  0x000045c3 store  0x00000004 , 0x00004691 
+ 00019177  0x000045c4 call  0x0000355a 
+ 00019178  0x000045c5 call  0x0000618e 
+ 00019179  0x000045c6 call  0x00005c0b 
+ 00019180  0x000045c7 branch  0x00006075 
+ 00019181  0x000045ca jam  0x00000002 , 0x0000485f 
+ 00019182  0x000045cb call  0x00004f3e 
+ 00019183  0x000045cc jam  0x00000003 , 0x0000472c 
+ 00019184  0x000045cd rtn 
+ 00019185  0x000045d0 arg  0x00000006 , 0x00000039 
+ 00019186  0x000045d1 arg  0x00004858 , 0x00000006 
+ 00019187  0x000045d3 ifetch  0x00000001 , 0x00000006 
+ 00019188  0x000045d4 beq  0x00000053 , 0x00004af9 
+ 00019189  0x000045d5 beq  0x00000039 , 0x00004af9 
+ 00019190  0x000045d6 beq  0x00000047 , 0x00004af9 
+ 00019191  0x000045d7 loop  0x00004af3 
+ 00019192  0x000045d8 rtn 
+ 00019193  0x000045db jam  0x00000003 , 0x000049ab 
+ 00019194  0x000045dc jam  0x00000001 , 0x000048f4 
+ 00019195  0x000045dd rtn 
+ 00019196  0x000045e0 jam  0x00000001 , 0x000049a9 
+ 00019197  0x000045e1 rtn 
+ 00019198  0x000045e5 fetch  0x00000001 , 0x00004600 
+ 00019199  0x000045e6 nbranch  0x00004b11 , 0x00000034 
+ 00019200  0x000045e7 fetch  0x00000001 , 0x000045e2 
+ 00019201  0x000045e8 beq  0x00000002 , 0x00004b0a 
+ 00019202  0x000045e9 beq  0x00000003 , 0x00004b04 
+ 00019203  0x000045ea branch  0x00004b04 
+ 00019204  0x000045ed call  0x00006018 
+ 00019205  0x000045ee fetch  0x00000001 , 0x0000477f 
+ 00019206  0x000045ef nbranch  0x00005f1b , 0x00000034 
+ 00019207  0x000045f0 fetch  0x00000001 , 0x00004666 
+ 00019208  0x000045f1 beq  0x00000000 , 0x00004f6c 
+ 00019209  0x000045f2 rtn 
+ 00019210  0x000045f5 fetch  0x00000008 , 0x00004713 
+ 00019211  0x000045f6 bbit1  0x0000003e , 0x00006034 
+ 00019212  0x000045f7 bbit1  0x00000030 , 0x00006034 
+ 00019213  0x000045f8 bbit0  0x0000003a , 0x00006067 
+ 00019214  0x000045f9 fetch  0x00000004 , 0x00004691 
+ 00019215  0x000045fa branch  0x00004e39 , 0x00000034 
+ 00019216  0x000045fb branch  0x00006067 
+ 00019217  0x000045fe jam  0x00000000 , 0x00004600 
+ 00019218  0x000045ff call  0x00003647 
+ 00019219  0x00004600 setarg  0xffffffff 
+ 00019220  0x00004601 store  0x00000008 , 0x000045af 
+ 00019221  0x00004602 setarg  0x00000000 
+ 00019222  0x00004603 store  0x00000007 , 0x00004846 
+ 00019223  0x00004604 jam  0x00000001 , 0x0000473f 
+ 00019224  0x00004605 branch  0x00004f9a 
+ 00019225  0x0000460b bpatch  0x00000047 , 0x00004008 
+ 00019226  0x0000460c call  0x0000553d 
+ 00019227  0x0000460d call  0x00004b4f 
+ 00019228  0x0000460e call  0x0000614d 
+ 00019229  0x00004610 call  0x0000328e 
+ 00019230  0x00004611 call  0x00003531 
+ 00019231  0x00004612 call  0x00005fdd 
+ 00019232  0x00004613 call  0x00004b62 
+ 00019233  0x00004614 call  0x00004b68 
+ 00019234  0x00004618 call  0x00004b43 
+ 00019235  0x0000461a call  0x00004b58 
+ 00019236  0x0000461b call  0x00005be1 
+ 00019237  0x0000461c call  0x00004b5c 
+ 00019238  0x0000461d call  0x00005be4 
+ 00019239  0x0000461e call  0x00004b5f 
+ 00019240  0x0000461f call  0x00004b55 
+ 00019241  0x00004621 call  0x00005bfe 
+ 00019242  0x00004622 call  0x000056b6 
+ 00019243  0x00004623 call  0x00004b48 
+ 00019244  0x00004624 call  0x00004b72 
+ 00019245  0x00004625 call  0x00004b82 
+ 00019246  0x00004626 call  0x00004b87 
+ 00019247  0x00004627 fetch  0x00000001 , 0x00004666 
+ 00019248  0x00004628 beq  0x00000000 , 0x00004b8a 
+ 00019249  0x00004629 branch  0x00005c05 
+ 00019250  0x0000462d fetch  0x00000001 , 0x00004980 
+ 00019251  0x0000462e rtnne  0x00000001 
+ 00019252  0x0000462f arg  0x00004981 , 0x00000013 
+ 00019253  0x00004630 arg  0x00005a94 , 0x00000012 
+ 00019254  0x00004631 branch  0x000042e0 
+ 00019255  0x00004634 fetch  0x00000002 , 0x000048fa 
+ 00019256  0x00004635 fetcht  0x00000002 , 0x000049ff 
+ 00019257  0x00004636 isub  0x00000002 , 0x0000003e 
+ 00019258  0x00004637 branch  0x00004b3f , 0x00000005 
+ 00019259  0x00004638 byteswap  0x00000002 , 0x00000002 
+ 00019260  0x00004639 isub  0x00000002 , 0x0000003e 
+ 00019261  0x0000463a branch  0x00004b3f , 0x00000005 
+ 00019262  0x0000463b branch  0x00005bba 
+ 00019263  0x0000463e fetch  0x00000001 , 0x00004980 
+ 00019264  0x0000463f rtneq  0x00000001 
+ 00019265  0x00004640 jam  0x00000001 , 0x00004980 
+ 00019266  0x00004641 rtn 
+ 00019267  0x00004645 arg  0x00004790 , 0x00000013 
+ 00019268  0x00004646 arg  0x00004b46 , 0x00000012 
+ 00019269  0x00004647 branch  0x000042e7 
+ 00019270  0x0000464a call  0x00004bbd 
+ 00019271  0x0000464b branch  0x00004f6c 
+ 00019272  0x00004651 arg  0x000046f3 , 0x00000013 
+ 00019273  0x00004652 arg  0x00004b4b , 0x00000012 
+ 00019274  0x00004653 branch  0x000042e0 
+ 00019275  0x00004656 call  0x00004a56 
+ 00019276  0x00004657 fetch  0x00000001 , 0x00004793 
+ 00019277  0x00004658 nbranch  0x00005ed1 , 0x00000034 
+ 00019278  0x00004659 rtn 
+ 00019279  0x0000465c fetch  0x00000001 , 0x00004637 
+ 00019280  0x0000465d branch  0x00004b53 , 0x00000034 
+ 00019281  0x0000465e jam  0x0000003a , 0x00004631 
+ 00019282  0x0000465f rtn 
+ 00019283  0x00004661 jam  0x00000035 , 0x00004631 
+ 00019284  0x00004662 rtn 
+ 00019285  0x00004666 arg  0x00004862 , 0x00000013 
+ 00019286  0x00004667 arg  0x0000502f , 0x00000012 
+ 00019287  0x00004668 branch  0x000042e0 
+ 00019288  0x0000466b arg  0x00004845 , 0x00000013 
+ 00019289  0x0000466c arg  0x00005bd9 , 0x00000012 
+ 00019290  0x0000466d call  0x000042e0 
+ 00019291  0x0000466e branch  0x00005bd6 
+ 00019292  0x00004671 fetch  0x00000008 , 0x00004713 
+ 00019293  0x00004672 rtnbit1  0x0000003b 
+ 00019294  0x00004673 branch  0x00005bee 
+ 00019295  0x00004676 arg  0x00004861 , 0x00000013 
+ 00019296  0x00004677 arg  0x00005aef , 0x00000012 
+ 00019297  0x00004678 branch  0x000042e0 
+ 00019298  0x0000467b fetch  0x00000001 , 0x000049a9 
+ 00019299  0x0000467c rtn  0x00000034 
+ 00019300  0x0000467d jam  0x00000000 , 0x000049a9 
+ 00019301  0x0000467e jam  0x00000001 , 0x000048f4 
+ 00019302  0x0000467f call  0x00003625 
+ 00019303  0x00004680 branch  0x00004fa0 
+ 00019304  0x00004683 arg  0x000049ac , 0x00000013 
+ 00019305  0x00004684 arg  0x00004b6b , 0x00000012 
+ 00019306  0x00004685 branch  0x000042e0 
+ 00019307  0x00004688 jam  0x00000000 , 0x000049ab 
+ 00019308  0x00004689 rtn 
+ 00019309  0x00004690 call  0x000061ea 
+ 00019310  0x00004691 call  0x00004b7c 
+ 00019311  0x00004693 fetcht  0x00000001 , 0x00004868 
+ 00019312  0x00004694 branch  0x00006ef3 
+ 00019313  0x00004696 rtn 
+ 00019314  0x0000469a fetch  0x00000001 , 0x00004866 
+ 00019315  0x0000469b rtneq  0x000000ff 
+ 00019316  0x0000469c fetch  0x00000002 , 0x00004781 
+ 00019317  0x0000469d rtn  0x00000034 
+ 00019318  0x0000469e fetch  0x00000002 , 0x00004725 
+ 00019319  0x0000469f fetcht  0x00000002 , 0x00004781 
+ 00019320  0x000046a0 isub  0x00000002 , 0x00000002 
+ 00019321  0x000046a1 fetch  0x00000002 , 0x00004869 
+ 00019322  0x000046a2 isub  0x00000002 , 0x0000003f 
+ 00019323  0x000046a3 branch  0x00004b7e , 0x00000002 
+ 00019324  0x000046a5 fetcht  0x00000001 , 0x00004866 
+ 00019325  0x000046a6 branch  0x00006ef3 
+ 00019326  0x000046ab fetch  0x00000001 , 0x000049aa 
+ 00019327  0x000046ac bbit0  0x00000001 , 0x00004b7c 
+ 00019328  0x000046ad fetcht  0x00000001 , 0x00004866 
+ 00019329  0x000046ae branch  0x00006ef7 
+ 00019330  0x000046b1 arg  0x000048ee , 0x00000013 
+ 00019331  0x000046b2 arg  0x00004b85 , 0x00000012 
+ 00019332  0x000046b3 branch  0x000042e7 
+ 00019333  0x000046b6 jam  0x00000001 , 0x000048eb 
+ 00019334  0x000046b7 branch  0x00004327 
+ 00019335  0x000046ba arg  0x000049c4 , 0x00000013 
+ 00019336  0x000046bb arg  0x00004d9e , 0x00000012 
+ 00019337  0x000046bc branch  0x000042e0 
+ 00019338  0x000046c0 arg  0x00004781 , 0x00000013 
+ 00019339  0x000046c1 arg  0x00004b8d , 0x00000012 
+ 00019340  0x000046c2 branch  0x000042e7 
+ 00019341  0x000046c5 fetch  0x00000001 , 0x00004666 
+ 00019342  0x000046c6 beq  0x00000000 , 0x00004b11 
+ 00019343  0x000046c7 branch  0x00005aad 
+ 00019344  0x000046cb isolate1  0x00000026 , 0x00000000 
+ 00019345  0x000046cc call  0x00006018 , 0x00000001 
+ 00019346  0x000046cd call  0x00005aad 
+ 00019347  0x000046ce call  0x00005b21 
+ 00019348  0x000046cf branch  0x00004b95 
+ 00019349  0x000046d2 bpatch  0x00000048 , 0x00004009 
+ 00019350  0x000046d3 call  0x000061ab 
+ 00019351  0x000046d4 fetch  0x00000002 , 0x000044e9 
+ 00019352  0x000046d5 isolate1  0x0000000b , 0x0000003f 
+ 00019353  0x000046d6 call  0x00005c3e , 0x00000001 
+ 00019354  0x000046d8 setarg  0x00000000 
+ 00019355  0x000046d9 store  0x00000002 , 0x000047c0 
+ 00019356  0x000046da call  0x00004b7c 
+ 00019357  0x000046db jam  0x000000ff , 0x000049c6 
+ 00019358  0x000046dd fetch  0x00000002 , 0x000044e9 
+ 00019359  0x000046de isolate1  0x0000000b , 0x0000003f 
+ 00019360  0x000046df call  0x00005c3e , 0x00000001 
+ 00019361  0x000046e0 call  0x00005aa8 
+ 00019362  0x000046e1 fetch  0x00000002 , 0x000044e9 
+ 00019363  0x000046e2 bbit1  0x0000000b , 0x00004bac 
+ 00019364  0x000046e3 fetch  0x00000008 , 0x00004713 
+ 00019365  0x000046e4 bbit0  0x00000008 , 0x00004bac 
+ 00019366  0x000046e5 fetcht  0x00000002 , 0x00004695 
+ 00019367  0x000046e6 increase  0x00000001 , 0x00000002 
+ 00019368  0x000046e7 storet  0x00000002 , 0x00004695 
+ 00019369  0x000046e8 storet  0x00000002 , 0x000042dc 
+ 00019370  0x000046e9 random  0x0000003f 
+ 00019371  0x000046ea store  0x00000001 , 0x000042db 
+ 00019372  0x000046ec fetch  0x00000003 , 0x00004797 
+ 00019373  0x000046ed store  0x00000003 , 0x000042de 
+ 00019374  0x000046ee call  0x0000432d 
+ 00019375  0x000046ef fetch  0x00000002 , 0x00004638 
+ 00019376  0x000046f0 store  0x00000002 , 0x00004790 
+ 00019377  0x000046f1 setarg  0x00000000 
+ 00019378  0x000046f2 store  0x00000002 , 0x00004781 
+ 00019379  0x000046f3 store  0x00000002 , 0x000047c0 
+ 00019380  0x000046f4 store  0x00000001 , 0x00004845 
+ 00019381  0x000046f5 store  0x00000001 , 0x00004792 
+ 00019382  0x000046f6 store  0x00000001 , 0x00004956 
+ 00019383  0x000046f7 arg  0x00000002 , 0x00000007 
+ 00019384  0x000046f8 call  0x00005f00 
+ 00019385  0x000046f9 call  0x00005ef4 
+ 00019386  0x000046fa branch  0x00005b62 
+ 00019387  0x000046fe jam  0x00000000 , 0x00004637 
+ 00019388  0x000046ff branch  0x0000616e 
+ 00019389  0x00004702 bpatch  0x00000049 , 0x00004009 
+ 00019390  0x00004703 setarg  0x00000000 
+ 00019391  0x00004704 store  0x00000002 , 0x00004790 
+ 00019392  0x00004705 arg  0x00000006 , 0x00000007 
+ 00019393  0x00004706 call  0x00005f04 
+ 00019394  0x00004707 jam  0x00000000 , 0x00004792 
+ 00019395  0x00004708 call  0x00005c3e 
+ 00019396  0x00004709 branch  0x00004b6d 
+ 00019397  0x0000470d bpatch  0x0000004a , 0x00004009 
+ 00019398  0x0000470e fetch  0x00000008 , 0x00004713 
+ 00019399  0x0000470f rtnbit0  0x00000002 
+ 00019400  0x00004710 arg  0x00000002 , 0x00000007 
+ 00019401  0x00004711 call  0x00005f04 
+ 00019402  0x00004712 call  0x00005c4a 
+ 00019403  0x00004713 branch  0x00005c48 
+ 00019404  0x00004717 bpatch  0x0000004b , 0x00004009 
+ 00019405  0x00004718 call  0x0000620e 
+ 00019406  0x00004719 branch  0x000078aa 
+ 00019407  0x0000471e bpatch  0x0000004c , 0x00004009 
+ 00019408  0x0000471f fetch  0x00000008 , 0x00004713 
+ 00019409  0x00004720 bbit0  0x00000015 , 0x00004bdc 
+ 00019410  0x00004721 call  0x00006f82 
+ 00019411  0x00004722 call  0x00006fb0 
+ 00019412  0x00004723 store  0x00000002 , 0x00004633 
+ 00019413  0x00004725 fetch  0x00000002 , 0x0000440a 
+ 00019414  0x00004726 isub  0x00000002 , 0x0000003e 
+ 00019415  0x00004727 branch  0x00004bcf , 0x00000002 
+ 00019416  0x00004728 arg  0x0000462d , 0x00000011 
+ 00019417  0x00004729 call  0x00005563 
+ 00019418  0x0000472a fetch  0x00000001 , 0x0000440c 
+ 00019419  0x0000472b bbit1  0x00000001 , 0x00004f6b 
+ 00019420  0x0000472e fetch  0x00000001 , 0x000049a4 
+ 00019421  0x0000472f call  0x00004e24 , 0x00000034 
+ 00019422  0x00004730 fetch  0x00000001 , 0x000049a3 
+ 00019423  0x00004731 nrtn  0x00000034 
+ 00019424  0x00004732 fetch  0x00000001 , 0x00004666 
+ 00019425  0x00004733 beq  0x00000000 , 0x0000602f 
+ 00019426  0x00004734 call  0x00005aa8 
+ 00019427  0x00004735 fetch  0x00000006 , 0x00004668 
+ 00019428  0x00004736 branch  0x00005a94 , 0x00000034 
+ 00019429  0x00004737 branch  0x000054a0 
+ 00019430  0x00004744 bpatch  0x0000004d , 0x00004009 
+ 00019431  0x00004745 call  0x00002a28 
+ 00019432  0x00004746 nrtn  0x00000034 
+ 00019433  0x00004747 fetch  0x00000001 , 0x0000478f 
+ 00019434  0x00004748 beq  0x000000ff , 0x00004bee 
+ 00019435  0x00004749 fetch  0x00000001 , 0x00004843 
+ 00019436  0x0000474a and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00019437  0x0000474b rtnne  0x00000003 
+ 00019438  0x0000474d fetch  0x00000008 , 0x00004713 
+ 00019439  0x0000474e bbit1  0x00000001 , 0x00005b5b 
+ 00019440  0x0000474f bbit1  0x00000000 , 0x00005b5b 
+ 00019441  0x00004750 bbit1  0x00000005 , 0x00005b5b 
+ 00019442  0x00004751 bbit1  0x00000006 , 0x00005b5b 
+ 00019443  0x00004752 call  0x00004e47 
+ 00019444  0x00004753 nrtn  0x00000028 
+ 00019445  0x00004754 call  0x00005abc 
+ 00019446  0x00004755 call  0x000056b1 
+ 00019447  0x00004756 fetch  0x00000008 , 0x00004713 
+ 00019448  0x00004757 bbit0  0x00000016 , 0x00005b3c 
+ 00019449  0x00004758 fetch  0x00000001 , 0x0000496c 
+ 00019450  0x00004759 branch  0x00005b3d 
+ 00019451  0x00004761 fetch  0x00000001 , 0x000043cb 
+ 00019452  0x00004762 rtnne  0x0000000f 
+ 00019453  0x00004763 call  0x00004c00 
+ 00019454  0x00004764 call  0x00004c8b 
+ 00019455  0x00004765 branch  0x00004df5 
+ 00019456  0x0000476d bpatch  0x0000004e , 0x00004009 
+ 00019457  0x0000476e call  0x00004c85 
+ 00019458  0x0000476f setarg  0x00000000 
+ 00019459  0x00004770 store  0x00000002 , 0x000048e9 
+ 00019460  0x00004771 arg  0x0000489c , 0x00000006 
+ 00019461  0x00004772 arg  0x000048b0 , 0x00000005 
+ 00019462  0x00004773 arg  0x00000014 , 0x00000039 
+ 00019463  0x00004774 call  0x00007cda 
+ 00019464  0x00004775 setarg  0x0000489c 
+ 00019465  0x00004776 store  0x00000002 , 0x000048e3 
+ 00019466  0x00004777 setarg  0x000048d8 
+ 00019467  0x00004778 store  0x00000002 , 0x000048e5 
+ 00019468  0x00004779 call  0x00004c2f 
+ 00019469  0x0000477a call  0x00004c53 
+ 00019470  0x0000477b call  0x00004c83 
+ 00019471  0x0000477d fetch  0x00000002 , 0x0000489a 
+ 00019472  0x0000477e copy  0x0000003f , 0x00000012 
+ 00019473  0x0000477f jam  0x00000000 , 0x000048e8 
+ 00019474  0x00004781 ifetcht  0x00000001 , 0x00000012 
+ 00019475  0x00004782 fetch  0x00000002 , 0x00004898 
+ 00019476  0x00004783 copy  0x0000003f , 0x00000011 
+ 00019477  0x00004784 copy  0x00000011 , 0x00000013 
+ 00019478  0x00004785 arg  0x00000014 , 0x00000039 
+ 00019479  0x00004787 ifetch  0x00000001 , 0x00000011 
+ 00019480  0x00004788 isub  0x00000002 , 0x0000003e 
+ 00019481  0x00004789 branch  0x00004c23 , 0x00000005 
+ 00019482  0x0000478a increase  0x00000001 , 0x00000011 
+ 00019483  0x0000478b loop  0x00004c17 
+ 00019484  0x0000478d increase  0x00000001 , 0x00000012 
+ 00019485  0x0000478e fetch  0x00000001 , 0x000048e8 
+ 00019486  0x0000478f increase  0x00000001 , 0x0000003f 
+ 00019487  0x00004790 store  0x00000001 , 0x000048e8 
+ 00019488  0x00004791 sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00019489  0x00004792 branch  0x00004c12 , 0x00000002 
+ 00019490  0x00004794 rtn 
+ 00019491  0x00004797 fetch  0x00000002 , 0x000048e3 
+ 00019492  0x00004798 copy  0x0000003f , 0x00000005 
+ 00019493  0x00004799 copy  0x00000011 , 0x0000003f 
+ 00019494  0x0000479a isub  0x00000013 , 0x0000003f 
+ 00019495  0x0000479b iadd  0x00000005 , 0x00000005 
+ 00019496  0x0000479c fetch  0x00000002 , 0x000048e5 
+ 00019497  0x0000479d copy  0x0000003f , 0x00000013 
+ 00019498  0x0000479e fetch  0x00000001 , 0x000048e8 
+ 00019499  0x0000479f iadd  0x00000013 , 0x00000013 
+ 00019500  0x000047a0 ifetch  0x00000001 , 0x00000013 
+ 00019501  0x000047a1 istore  0x00000001 , 0x00000005 
+ 00019502  0x000047a2 branch  0x00004c1c 
+ 00019503  0x000047a5 bpatch  0x0000004f , 0x00004009 
+ 00019504  0x000047a6 call  0x00004c83 
+ 00019505  0x000047a7 call  0x00004c81 
+ 00019506  0x000047a9 fetch  0x00000002 , 0x000048e9 
+ 00019507  0x000047aa increase  0x00000001 , 0x0000003f 
+ 00019508  0x000047ab store  0x00000002 , 0x000048e9 
+ 00019509  0x000047ac bbit1  0x00000009 , 0x00004c71 
+ 00019510  0x000047ad fetcht  0x00000001 , 0x00004864 
+ 00019511  0x000047ae call  0x00006ee6 
+ 00019512  0x000047af nbranch  0x00004c32 , 0x00000001 
+ 00019513  0x000047b0 nop  0x00000014 
+ 00019514  0x000047b1 call  0x00004c79 
+ 00019515  0x000047b2 call  0x00004c85 
+ 00019516  0x000047b3 jam  0x00000000 , 0x000048e8 
+ 00019517  0x000047b5 call  0x00004c7b 
+ 00019518  0x000047b6 call  0x00004c46 
+ 00019519  0x000047b7 call  0x00004c79 
+ 00019520  0x000047b8 call  0x00004c46 
+ 00019521  0x000047b9 sub  0x0000003f , 0x00000009 , 0x0000003e 
+ 00019522  0x000047ba branch  0x00004c3d , 0x00000002 
+ 00019523  0x000047bb call  0x00004c7b 
+ 00019524  0x000047bc call  0x00004c46 
+ 00019525  0x000047bd branch  0x00004c79 
+ 00019526  0x000047c0 jam  0x00000000 , 0x000048e7 
+ 00019527  0x000047c1 nop  0x00000032 
+ 00019528  0x000047c2 call  0x00004c65 
+ 00019529  0x000047c3 fetch  0x00000002 , 0x000048e5 
+ 00019530  0x000047c5 copy  0x0000003f , 0x00000005 
+ 00019531  0x000047c6 fetch  0x00000001 , 0x000048e8 
+ 00019532  0x000047c7 iadd  0x00000005 , 0x00000005 
+ 00019533  0x000047c8 fetch  0x00000001 , 0x000048e7 
+ 00019534  0x000047c9 istore  0x00000001 , 0x00000005 
+ 00019535  0x000047ca fetch  0x00000001 , 0x000048e8 
+ 00019536  0x000047cb increase  0x00000001 , 0x0000003f 
+ 00019537  0x000047cc store  0x00000001 , 0x000048e8 
+ 00019538  0x000047cd rtn 
+ 00019539  0x000047d1 nop  0x00000014 
+ 00019540  0x000047d2 fetch  0x00000002 , 0x00004898 
+ 00019541  0x000047d3 copy  0x0000003f , 0x00000012 
+ 00019542  0x000047d4 jam  0x00000000 , 0x000048e8 
+ 00019543  0x000047d6 jam  0x00000000 , 0x000048e7 
+ 00019544  0x000047d7 ifetcht  0x00000001 , 0x00000012 
+ 00019545  0x000047d8 isolate1  0x00000007 , 0x00000002 
+ 00019546  0x000047d9 branch  0x00004c5f , 0x00000001 
+ 00019547  0x000047da call  0x00006ef7 
+ 00019548  0x000047db call  0x00004c65 
+ 00019549  0x000047dc ifetcht  0x00000001 , 0x00000012 
+ 00019550  0x000047dd call  0x00006f0f 
+ 00019551  0x000047df increase  0x00000001 , 0x00000012 
+ 00019552  0x000047e0 fetch  0x00000002 , 0x000048e3 
+ 00019553  0x000047e1 call  0x00004c4a 
+ 00019554  0x000047e2 sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00019555  0x000047e3 branch  0x00004c57 , 0x00000002 
+ 00019556  0x000047e4 rtn 
+ 00019557  0x000047e8 fetch  0x00000002 , 0x00004896 
+ 00019558  0x000047e9 copy  0x0000003f , 0x00000013 
+ 00019559  0x000047ea arg  0x00000008 , 0x00000039 
+ 00019560  0x000047ed ifetcht  0x00000001 , 0x00000013 
+ 00019561  0x000047ee call  0x00006ee6 
+ 00019562  0x000047ef fetch  0x00000001 , 0x000048e7 
+ 00019563  0x000047f0 rshift  0x0000003f , 0x0000003f 
+ 00019564  0x000047f1 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00019565  0x000047f2 store  0x00000001 , 0x000048e7 
+ 00019566  0x000047f3 increase  0x00000001 , 0x00000013 
+ 00019567  0x000047f4 loop  0x00004c68 
+ 00019568  0x000047f5 rtn 
+ 00019569  0x000047f7 fetcht  0x00000001 , 0x00004865 
+ 00019570  0x000047f8 call  0x00006ef7 
+ 00019571  0x000047f9 nop  0x00000014 
+ 00019572  0x000047fa fetcht  0x00000001 , 0x00004865 
+ 00019573  0x000047fb call  0x00006ef3 
+ 00019574  0x000047fc nop  0x00001770 
+ 00019575  0x000047fd rtn 
+ 00019576  0x000047fe branch  0x00004c00 
+ 00019577  0x00004800 fetcht  0x00000001 , 0x00004864 
+ 00019578  0x00004801 branch  0x00006ef3 
+ 00019579  0x00004804 fetcht  0x00000001 , 0x00004864 
+ 00019580  0x00004805 branch  0x00006ef7 
+ 00019581  0x00004807 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00019582  0x00004808 rtn  0x00000005 
+ 00019583  0x00004809 set0  0x00000007 , 0x00000002 
+ 00019584  0x0000480a branch  0x00006edd 
+ 00019585  0x0000480c fetcht  0x00000001 , 0x00004864 
+ 00019586  0x0000480d branch  0x00006edd 
+ 00019587  0x00004810 fetcht  0x00000001 , 0x00004863 
+ 00019588  0x00004811 branch  0x00006ef3 
+ 00019589  0x00004814 fetcht  0x00000001 , 0x00004863 
+ 00019590  0x00004815 branch  0x00006ef7 
+ 00019591  0x00004821 jam  0x00000000 , 0x000048eb 
+ 00019592  0x00004822 fetch  0x00000002 , 0x000048ec 
+ 00019593  0x00004823 store  0x00000002 , 0x000048ee 
+ 00019594  0x00004824 rtn 
+ 00019595  0x00004828 bpatch  0x00000050 , 0x0000400a 
+ 00019596  0x00004829 arg  0x0000489c , 0x00000011 
+ 00019597  0x0000482a arg  0x000048b0 , 0x00000012 
+ 00019598  0x0000482b arg  0x00000014 , 0x00000039 
+ 00019599  0x0000482c call  0x00007d64 
+ 00019600  0x0000482d nbranch  0x00004c87 , 0x00000005 
+ 00019601  0x0000482e call  0x00004cc5 
+ 00019602  0x0000482f call  0x00004c87 , 0x00000034 
+ 00019603  0x00004831 call  0x00004ccd 
+ 00019604  0x00004832 fetch  0x00000001 , 0x0000497b 
+ 00019605  0x00004833 nrtn  0x00000034 
+ 00019606  0x00004834 fetch  0x00000001 , 0x000049c1 
+ 00019607  0x00004835 rtneq  0x00000001 
+ 00019608  0x00004836 rtneq  0x00000002 
+ 00019609  0x00004837 rtneq  0x00000004 
+ 00019610  0x0000483a jam  0x00000000 , 0x000048e8 
+ 00019611  0x0000483b arg  0x0000489c , 0x00000011 
+ 00019612  0x0000483c arg  0x000048c4 , 0x00000012 
+ 00019613  0x0000483e ifetcht  0x00000001 , 0x00000011 
+ 00019614  0x0000483f ifetch  0x00000001 , 0x00000012 
+ 00019615  0x00004840 ixor  0x00000002 , 0x0000003f 
+ 00019616  0x00004841 branch  0x00004cbd , 0x00000034 
+ 00019617  0x00004842 store  0x00000001 , 0x000048e7 
+ 00019618  0x00004843 storet  0x00000001 , 0x000048f6 
+ 00019619  0x00004844 istoret  0x00000001 , 0x00000012 
+ 00019620  0x00004845 jam  0x00000001 , 0x000048f4 
+ 00019621  0x00004846 jam  0x00000000 , 0x000048f7 
+ 00019622  0x00004848 fetch  0x00000001 , 0x000048e7 
+ 00019623  0x00004849 bbit0  0x00000000 , 0x00004cb3 
+ 00019624  0x0000484a fetch  0x00000001 , 0x000048e8 
+ 00019625  0x0000484b mul32  0x0000003f , 0x00000008 , 0x0000003f 
+ 00019626  0x0000484c fetcht  0x00000001 , 0x000048f7 
+ 00019627  0x0000484d iadd  0x00000002 , 0x0000003f 
+ 00019628  0x0000484e arg  0x00004901 , 0x00000006 
+ 00019629  0x0000484f iadd  0x00000006 , 0x00000006 
+ 00019630  0x00004850 ifetch  0x00000001 , 0x00000006 
+ 00019631  0x00004851 store  0x00000001 , 0x000048f5 
+ 00019632  0x00004852 call  0x00004cfc 
+ 00019633  0x00004853 call  0x00004d3a 
+ 00019634  0x00004854 call  0x00004dbb 
+ 00019635  0x00004856 fetch  0x00000001 , 0x000048e7 
+ 00019636  0x00004857 rshift  0x0000003f , 0x0000003f 
+ 00019637  0x00004858 store  0x00000001 , 0x000048e7 
+ 00019638  0x00004859 fetch  0x00000001 , 0x000048f6 
+ 00019639  0x0000485a rshift  0x0000003f , 0x0000003f 
+ 00019640  0x0000485b store  0x00000001 , 0x000048f6 
+ 00019641  0x0000485c fetch  0x00000001 , 0x000048f7 
+ 00019642  0x0000485d increase  0x00000001 , 0x0000003f 
+ 00019643  0x0000485e store  0x00000001 , 0x000048f7 
+ 00019644  0x0000485f loop  0x00004ca6 
+ 00019645  0x00004861 increase  0x00000001 , 0x00000011 
+ 00019646  0x00004862 increase  0x00000001 , 0x00000012 
+ 00019647  0x00004863 fetch  0x00000001 , 0x000048e8 
+ 00019648  0x00004864 increase  0x00000001 , 0x0000003f 
+ 00019649  0x00004865 store  0x00000001 , 0x000048e8 
+ 00019650  0x00004866 sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00019651  0x00004867 branch  0x00004c9d , 0x00000002 
+ 00019652  0x00004868 rtn 
+ 00019653  0x0000486b fetch  0x00000008 , 0x0000489c 
+ 00019654  0x0000486c nrtn  0x00000034 
+ 00019655  0x0000486d fetch  0x00000008 , 0x000048a4 
+ 00019656  0x0000486e nrtn  0x00000034 
+ 00019657  0x0000486f fetch  0x00000004 , 0x000048ac 
+ 00019658  0x00004870 nrtn  0x00000034 
+ 00019659  0x00004871 jam  0x00000000 , 0x000049c1 
+ 00019660  0x00004872 rtn 
+ 00019661  0x00004877 bpatch  0x00000051 , 0x0000400a 
+ 00019662  0x00004878 jam  0x00000000 , 0x0000497b 
+ 00019663  0x00004879 jam  0x00000000 , 0x000048f1 
+ 00019664  0x0000487a arg  0x0000489c , 0x00000011 
+ 00019665  0x0000487b arg  0x00000014 , 0x00000039 
+ 00019666  0x0000487d jam  0x00000000 , 0x000048f0 
+ 00019667  0x0000487e ifetch  0x00000001 , 0x00000011 
+ 00019668  0x0000487f branch  0x00004cf7 , 0x00000034 
+ 00019669  0x00004881 fetcht  0x00000001 , 0x000048f0 
+ 00019670  0x00004882 increase  0x00000001 , 0x00000002 
+ 00019671  0x00004883 storet  0x00000001 , 0x000048f0 
+ 00019672  0x00004884 copy  0x0000003f , 0x00000002 
+ 00019673  0x00004885 increase  0xffffffff , 0x0000003f 
+ 00019674  0x00004886 iand  0x00000002 , 0x0000003f 
+ 00019675  0x00004887 nbranch  0x00004cd5 , 0x00000005 
+ 00019676  0x00004888 fetch  0x00000001 , 0x000048f0 
+ 00019677  0x00004889 fetcht  0x00000001 , 0x000048f1 
+ 00019678  0x0000488a iadd  0x00000002 , 0x00000002 
+ 00019679  0x0000488b storet  0x00000001 , 0x000048f1 
+ 00019680  0x0000488c sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00019681  0x0000488d branch  0x00004cf7 , 0x00000002 
+ 00019682  0x0000488e sub  0x00000002 , 0x00000002 , 0x0000003e 
+ 00019683  0x0000488f branch  0x00004cf7 , 0x00000002 
+ 00019684  0x00004890 jam  0x00000000 , 0x000048e8 
+ 00019685  0x00004891 jam  0x00000000 , 0x000048f2 
+ 00019686  0x00004892 ifetcht  0x00000001 , 0x00000011 
+ 00019687  0x00004893 arg  0x0000489c , 0x00000012 
+ 00019688  0x00004895 fetch  0x00000001 , 0x000048e8 
+ 00019689  0x00004896 increase  0x00000001 , 0x0000003f 
+ 00019690  0x00004897 store  0x00000001 , 0x000048e8 
+ 00019691  0x00004898 sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00019692  0x00004899 nbranch  0x00004cf7 , 0x00000002 
+ 00019693  0x0000489a ifetch  0x00000001 , 0x00000012 
+ 00019694  0x0000489b iand  0x00000002 , 0x0000003e 
+ 00019695  0x0000489c branch  0x00004cfa , 0x00000005 
+ 00019696  0x0000489d fetch  0x00000001 , 0x000048f2 
+ 00019697  0x0000489e increase  0x00000001 , 0x0000003f 
+ 00019698  0x0000489f store  0x00000001 , 0x000048f2 
+ 00019699  0x000048a0 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00019700  0x000048a1 branch  0x00004cfa , 0x00000002 
+ 00019701  0x000048a2 jam  0x00000001 , 0x0000497b 
+ 00019702  0x000048a3 rtn 
+ 00019703  0x000048a6 increase  0x00000001 , 0x00000011 
+ 00019704  0x000048a7 loop  0x00004cd2 
+ 00019705  0x000048a8 rtn 
+ 00019706  0x000048ab increase  0x00000001 , 0x00000012 
+ 00019707  0x000048ac branch  0x00004ce8 
+ 00019708  0x000048b5 bpatch  0x00000052 , 0x0000400a 
+ 00019709  0x000048b6 fetch  0x00000001 , 0x000048f6 
+ 00019710  0x000048b7 ncall  0x00004d4e , 0x00000034 
+ 00019711  0x000048b8 fetch  0x00000001 , 0x000049a1 
+ 00019712  0x000048b9 ncall  0x00004d11 , 0x00000034 
+ 00019713  0x000048ba fetch  0x00000001 , 0x000049ae 
+ 00019714  0x000048bb fetcht  0x00000001 , 0x000049a1 
+ 00019715  0x000048bc ixor  0x00000002 , 0x0000003f 
+ 00019716  0x000048bd rtn  0x00000005 
+ 00019717  0x000048be fetch  0x00000001 , 0x000048f5 
+ 00019718  0x000048bf beq  0x00000029 , 0x00004d19 
+ 00019719  0x000048c0 beq  0x0000004c , 0x00004d1b 
+ 00019720  0x000048c1 sub  0x0000003f , 0x00000045 , 0x0000003e 
+ 00019721  0x000048c2 nrtn  0x00000002 
+ 00019722  0x000048c3 arg  0x0000003a , 0x00000002 
+ 00019723  0x000048c4 isub  0x00000002 , 0x0000003f 
+ 00019724  0x000048c5 nrtn  0x00000002 
+ 00019725  0x000048c6 arg  0x000049b0 , 0x00000006 
+ 00019726  0x000048c7 iadd  0x00000006 , 0x00000006 
+ 00019727  0x000048c8 ifetch  0x00000001 , 0x00000006 
+ 00019728  0x000048c9 branch  0x00004d38 
+ 00019729  0x000048cc fetch  0x00000001 , 0x000048f5 
+ 00019730  0x000048cd beq  0x00000052 , 0x00004d1d 
+ 00019731  0x000048ce beq  0x00000051 , 0x00004d21 
+ 00019732  0x000048cf beq  0x00000050 , 0x00004d25 
+ 00019733  0x000048d0 beq  0x0000004f , 0x00004d29 
+ 00019734  0x000048d1 beq  0x000000e0 , 0x00004d2d 
+ 00019735  0x000048d2 beq  0x0000002c , 0x00004d35 
+ 00019736  0x000048d3 rtn 
+ 00019737  0x000048d6 fetch  0x00000001 , 0x000049af 
+ 00019738  0x000048d7 branch  0x00004d38 
+ 00019739  0x000048da fetch  0x00000001 , 0x000049bc 
+ 00019740  0x000048db branch  0x00004d38 
+ 00019741  0x000048de fetch  0x00000001 , 0x000049bd 
+ 00019742  0x000048df rtn  0x00000034 
+ 00019743  0x000048e0 setarg  0x0000004b 
+ 00019744  0x000048e1 branch  0x00004d38 
+ 00019745  0x000048e4 fetch  0x00000001 , 0x000049bd 
+ 00019746  0x000048e5 rtn  0x00000034 
+ 00019747  0x000048e6 setarg  0x0000004e 
+ 00019748  0x000048e7 branch  0x00004d38 
+ 00019749  0x000048ea fetch  0x00000001 , 0x000049bd 
+ 00019750  0x000048eb rtn  0x00000034 
+ 00019751  0x000048ec setarg  0x0000004a 
+ 00019752  0x000048ed branch  0x00004d38 
+ 00019753  0x000048f0 fetch  0x00000001 , 0x000049bd 
+ 00019754  0x000048f1 rtn  0x00000034 
+ 00019755  0x000048f2 setarg  0x0000004d 
+ 00019756  0x000048f3 branch  0x00004d38 
+ 00019757  0x000048f6 fetch  0x00000001 , 0x000049be 
+ 00019758  0x000048f7 rtn  0x00000034 
+ 00019759  0x000048f8 fetch  0x00000001 , 0x000049c6 
+ 00019760  0x000048f9 beq  0x00000000 , 0x00004d33 
+ 00019761  0x000048fa setarg  0x000000fd 
+ 00019762  0x000048fb branch  0x00004d38 
+ 00019763  0x000048fd setarg  0x000000aa 
+ 00019764  0x000048fe branch  0x00004d38 
+ 00019765  0x00004901 fetch  0x00000001 , 0x000049bf 
+ 00019766  0x00004902 rtn  0x00000034 
+ 00019767  0x00004903 setarg  0x000000ab 
+ 00019768  0x00004905 store  0x00000001 , 0x000048f5 
+ 00019769  0x00004906 rtn 
+ 00019770  0x0000490d bpatch  0x00000053 , 0x0000400a 
+ 00019771  0x0000490e fetch  0x00000001 , 0x000048f5 
+ 00019772  0x0000490f beq  0x00000046 , 0x00004d50 
+ 00019773  0x00004910 beq  0x0000004b , 0x00004d56 
+ 00019774  0x00004911 beq  0x0000004e , 0x00004d5c 
+ 00019775  0x00004912 beq  0x0000004a , 0x00004d5e 
+ 00019776  0x00004913 beq  0x0000004d , 0x00004d60 
+ 00019777  0x00004914 beq  0x000000a5 , 0x00004d62 
+ 00019778  0x00004915 beq  0x000000a6 , 0x00004d69 
+ 00019779  0x00004916 beq  0x000000a7 , 0x00004d6b 
+ 00019780  0x00004917 beq  0x000000a8 , 0x00004d6d 
+ 00019781  0x00004918 beq  0x000000a9 , 0x00004d6f 
+ 00019782  0x00004919 beq  0x000000aa , 0x00004d7a 
+ 00019783  0x0000491a beq  0x000000ab , 0x00004d81 
+ 00019784  0x0000491b beq  0x000000ac , 0x00004d8c 
+ 00019785  0x0000491c rtn 
+ 00019786  0x0000491f fetch  0x00000001 , 0x000048f6 
+ 00019787  0x00004920 nrtn  0x00000034 
+ 00019788  0x00004921 jam  0x0000000a , 0x000049c4 
+ 00019789  0x00004922 rtn 
+ 00019790  0x00004925 jam  0x00000000 , 0x000049c4 
+ 00019791  0x00004926 rtn 
+ 00019792  0x00004929 fetch  0x00000001 , 0x000049c6 
+ 00019793  0x0000492a rtneq  0x00000000 
+ 00019794  0x0000492b rtneq  0x00000001 
+ 00019795  0x0000492c jam  0x0000000a , 0x000049c2 
+ 00019796  0x0000492d jam  0x00000020 , 0x000049c3 
+ 00019797  0x0000492e branch  0x00004d95 
+ 00019798  0x00004931 jam  0x00000052 , 0x000049c3 
+ 00019799  0x00004933 fetch  0x00000001 , 0x000049c6 
+ 00019800  0x00004934 rtneq  0x00000000 
+ 00019801  0x00004935 rtneq  0x00000001 
+ 00019802  0x00004936 jam  0x00000008 , 0x000049c2 
+ 00019803  0x00004937 branch  0x00004d95 
+ 00019804  0x0000493a jam  0x00000051 , 0x000049c3 
+ 00019805  0x0000493b branch  0x00004d57 
+ 00019806  0x0000493e jam  0x00000050 , 0x000049c3 
+ 00019807  0x0000493f branch  0x00004d57 
+ 00019808  0x00004942 jam  0x0000004f , 0x000049c3 
+ 00019809  0x00004943 branch  0x00004d57 
+ 00019810  0x00004946 jam  0x00000004 , 0x000049c3 
+ 00019811  0x00004948 jam  0x00000001 , 0x000049c2 
+ 00019812  0x00004949 fetch  0x00000001 , 0x000049c6 
+ 00019813  0x0000494a beq  0x00000000 , 0x00004d95 
+ 00019814  0x0000494b beq  0x00000001 , 0x00004d95 
+ 00019815  0x0000494c jam  0x00000008 , 0x000049c2 
+ 00019816  0x0000494d branch  0x00004d95 
+ 00019817  0x00004950 jam  0x00000006 , 0x000049c3 
+ 00019818  0x00004951 branch  0x00004d63 
+ 00019819  0x00004954 jam  0x00000019 , 0x000049c3 
+ 00019820  0x00004955 branch  0x00004d63 
+ 00019821  0x00004958 jam  0x0000001b , 0x000049c3 
+ 00019822  0x00004959 branch  0x00004d63 
+ 00019823  0x0000495c fetch  0x00000001 , 0x000049c6 
+ 00019824  0x0000495d beq  0x00000000 , 0x00004d74 
+ 00019825  0x0000495e beq  0x00000003 , 0x00004d77 
+ 00019826  0x0000495f setarg  0x000000fc 
+ 00019827  0x00004960 branch  0x00004d38 
+ 00019828  0x00004962 jam  0x00000008 , 0x000049c2 
+ 00019829  0x00004963 jam  0x0000000f , 0x000049c3 
+ 00019830  0x00004964 branch  0x00004d95 
+ 00019831  0x00004966 jam  0x00000009 , 0x000049c2 
+ 00019832  0x00004967 jam  0x00000014 , 0x000049c3 
+ 00019833  0x00004968 branch  0x00004d95 
+ 00019834  0x0000496b fetch  0x00000001 , 0x000049c6 
+ 00019835  0x0000496c beq  0x00000000 , 0x00004d7e 
+ 00019836  0x0000496d setarg  0x000000fd 
+ 00019837  0x0000496e branch  0x00004d38 
+ 00019838  0x00004970 jam  0x00000009 , 0x000049c2 
+ 00019839  0x00004971 jam  0x00000012 , 0x000049c3 
+ 00019840  0x00004972 branch  0x00004d95 
+ 00019841  0x00004975 fetch  0x00000001 , 0x000049c6 
+ 00019842  0x00004976 beq  0x00000000 , 0x00004d88 
+ 00019843  0x00004977 beq  0x00000001 , 0x00004d8a 
+ 00019844  0x00004978 jam  0x00000001 , 0x000049c2 
+ 00019845  0x0000497a jam  0x0000002c , 0x000049c3 
+ 00019846  0x0000497b call  0x00004d4a 
+ 00019847  0x0000497c branch  0x00004d95 
+ 00019848  0x0000497e jam  0x00000008 , 0x000049c2 
+ 00019849  0x0000497f branch  0x00004d85 
+ 00019850  0x00004981 jam  0x00000002 , 0x000049c2 
+ 00019851  0x00004982 branch  0x00004d85 
+ 00019852  0x00004985 fetch  0x00000001 , 0x000049c6 
+ 00019853  0x00004986 beq  0x00000000 , 0x00004d92 
+ 00019854  0x00004987 beq  0x00000001 , 0x00004d92 
+ 00019855  0x00004988 jam  0x00000001 , 0x000049c2 
+ 00019856  0x00004989 jam  0x00000052 , 0x000049c3 
+ 00019857  0x0000498a branch  0x00004d95 
+ 00019858  0x0000498c jam  0x00000008 , 0x000049c2 
+ 00019859  0x0000498d jam  0x0000002b , 0x000049c3 
+ 00019860  0x0000498e branch  0x00004d95 
+ 00019861  0x00004991 jam  0x00000000 , 0x000048f5 
+ 00019862  0x00004992 fetch  0x00000001 , 0x000048f6 
+ 00019863  0x00004993 bbit0  0x00000000 , 0x00004d9c 
+ 00019864  0x00004994 fetch  0x00000001 , 0x000049c1 
+ 00019865  0x00004995 beq  0x00000003 , 0x00004da8 
+ 00019866  0x00004997 jam  0x00000001 , 0x000049c1 
+ 00019867  0x00004998 rtn 
+ 00019868  0x0000499b jam  0x00000004 , 0x000049c1 
+ 00019869  0x0000499c rtn 
+ 00019870  0x0000499f jam  0x00000006 , 0x000049c1 
+ 00019871  0x000049a0 rtn 
+ 00019872  0x000049a4 store  0x00000001 , 0x00004856 
+ 00019873  0x000049a5 storet  0x00000001 , 0x00004858 
+ 00019874  0x000049a6 call  0x00007dba 
+ 00019875  0x000049a7 jam  0x00000000 , 0x00004855 
+ 00019876  0x000049a8 branch  0x00004e89 
+ 00019877  0x000049ab fetch  0x00000001 , 0x000049c2 
+ 00019878  0x000049ac arg  0x00000000 , 0x00000002 
+ 00019879  0x000049ad call  0x00004da0 
+ 00019880  0x000049af jam  0x00000002 , 0x000049c1 
+ 00019881  0x000049b0 rtn 
+ 00019882  0x000049b3 jam  0x00000003 , 0x000049c1 
+ 00019883  0x000049b4 fetch  0x00000001 , 0x000049c2 
+ 00019884  0x000049b5 fetcht  0x00000001 , 0x000049c3 
+ 00019885  0x000049b6 branch  0x00004da0 
+ 00019886  0x000049b9 jam  0x00000000 , 0x00004855 
+ 00019887  0x000049ba fetch  0x00000001 , 0x000049c2 
+ 00019888  0x000049bb arg  0x00000000 , 0x00000002 
+ 00019889  0x000049bc call  0x00004da0 
+ 00019890  0x000049bd fetch  0x00000001 , 0x000049c4 
+ 00019891  0x000049be branch  0x00004d9e , 0x00000034 
+ 00019892  0x000049c0 jam  0x00000005 , 0x000049c1 
+ 00019893  0x000049c1 rtn 
+ 00019894  0x000049c4 branch  0x00004da2 
+ 00019895  0x000049c7 jam  0x00000000 , 0x000049c1 
+ 00019896  0x000049c8 arg  0x00000000 , 0x0000003f 
+ 00019897  0x000049c9 arg  0x00000000 , 0x00000002 
+ 00019898  0x000049ca branch  0x00004da0 
+ 00019899  0x000049cf bpatch  0x00000054 , 0x0000400a 
+ 00019900  0x000049d0 fetch  0x00000001 , 0x000048f5 
+ 00019901  0x000049d1 sub  0x0000003f , 0x000000e7 , 0x0000003e 
+ 00019902  0x000049d2 branch  0x00004dc3 , 0x00000002 
+ 00019903  0x000049d3 jam  0x00000001 , 0x000049c5 
+ 00019904  0x000049d4 fetch  0x00000001 , 0x000048f6 
+ 00019905  0x000049d5 bbit1  0x00000000 , 0x00004dc3 
+ 00019906  0x000049d6 jam  0x00000002 , 0x000049c5 
+ 00019907  0x000049d8 jam  0x00000000 , 0x00004900 
+ 00019908  0x000049d9 fetch  0x00000001 , 0x000048f6 
+ 00019909  0x000049da bbit1  0x00000000 , 0x00004ddd 
+ 00019910  0x000049dc fetcht  0x00000001 , 0x000048f5 
+ 00019911  0x000049dd arg  0x00000006 , 0x00000039 
+ 00019912  0x000049de arg  0x000048fa , 0x00000006 
+ 00019913  0x000049e0 ifetch  0x00000001 , 0x00000006 
+ 00019914  0x000049e1 branch  0x00004dd4 , 0x00000034 
+ 00019915  0x000049e2 isub  0x00000002 , 0x0000003e 
+ 00019916  0x000049e3 nbranch  0x00004dd3 , 0x00000005 
+ 00019917  0x000049e4 ifetch  0x00000001 , 0x00000006 
+ 00019918  0x000049e5 increase  0xfffffffe , 0x00000006 
+ 00019919  0x000049e6 istore  0x00000001 , 0x00000006 
+ 00019920  0x000049e7 rtn  0x00000034 
+ 00019921  0x000049e8 increase  0x00000001 , 0x00000006 
+ 00019922  0x000049e9 istoret  0x00000001 , 0x00000006 
+ 00019923  0x000049eb loop  0x00004dc9 
+ 00019924  0x000049ec sub  0x00000002 , 0x000000e7 , 0x0000003e 
+ 00019925  0x000049ed nrtn  0x00000002 
+ 00019926  0x000049ee sub  0x00000002 , 0x000000bf , 0x0000003e 
+ 00019927  0x000049ef rtn  0x00000002 
+ 00019928  0x000049f1 and  0x00000002 , 0x00000007 , 0x00000007 
+ 00019929  0x000049f2 fetch  0x00000001 , 0x000048f8 
+ 00019930  0x000049f3 qset0  0x0000003f 
+ 00019931  0x000049f4 store  0x00000001 , 0x000048f8 
+ 00019932  0x000049f5 rtn 
+ 00019933  0x000049f8 fetcht  0x00000001 , 0x000048f5 
+ 00019934  0x000049f9 arg  0x00000006 , 0x00000039 
+ 00019935  0x000049fa arg  0x000048fa , 0x00000006 
+ 00019936  0x000049fc ifetch  0x00000001 , 0x00000006 
+ 00019937  0x000049fd branch  0x00004dee , 0x00000034 
+ 00019938  0x000049fe isub  0x00000002 , 0x0000003e 
+ 00019939  0x000049ff rtn  0x00000005 
+ 00019940  0x00004a00 loop  0x00004de0 
+ 00019941  0x00004a01 sub  0x00000002 , 0x000000e7 , 0x0000003e 
+ 00019942  0x00004a02 nrtn  0x00000002 
+ 00019943  0x00004a03 sub  0x00000002 , 0x000000bf , 0x0000003e 
+ 00019944  0x00004a04 rtn  0x00000002 
+ 00019945  0x00004a06 and  0x00000002 , 0x00000007 , 0x00000007 
+ 00019946  0x00004a07 fetch  0x00000001 , 0x000048f8 
+ 00019947  0x00004a08 qset1  0x0000003f 
+ 00019948  0x00004a09 store  0x00000001 , 0x000048f8 
+ 00019949  0x00004a0a rtn 
+ 00019950  0x00004a0d sub  0x00000002 , 0x000000e7 , 0x0000003e 
+ 00019951  0x00004a0e nbranch  0x00004df2 , 0x00000002 
+ 00019952  0x00004a0f sub  0x00000002 , 0x000000bf , 0x0000003e 
+ 00019953  0x00004a10 nbranch  0x00004de9 , 0x00000002 
+ 00019954  0x00004a12 increase  0xffffffff , 0x00000006 
+ 00019955  0x00004a13 istoret  0x00000001 , 0x00000006 
+ 00019956  0x00004a14 rtn 
+ 00019957  0x00004a19 bpatch  0x00000055 , 0x0000400a 
+ 00019958  0x00004a1a call  0x00004e14 
+ 00019959  0x00004a1b jam  0x00000000 , 0x000049a1 
+ 00019960  0x00004a1c jam  0x00000000 , 0x000049a2 
+ 00019961  0x00004a1d jam  0x00000000 , 0x000049a3 
+ 00019962  0x00004a1e fetch  0x00000001 , 0x000048f8 
+ 00019963  0x00004a1f ncall  0x00004e41 , 0x00000034 
+ 00019964  0x00004a20 arg  0x000048fa , 0x00000006 
+ 00019965  0x00004a21 arg  0x00000006 , 0x00000039 
+ 00019966  0x00004a23 ifetch  0x00000001 , 0x00000006 
+ 00019967  0x00004a24 sub  0x0000003f , 0x0000007f , 0x0000003e 
+ 00019968  0x00004a25 call  0x00004e43 , 0x00000005 
+ 00019969  0x00004a26 sub  0x0000003f , 0x000000de , 0x0000003e 
+ 00019970  0x00004a27 call  0x00004e45 , 0x00000005 
+ 00019971  0x00004a28 loop  0x00004dfe 
+ 00019972  0x00004a29 fetch  0x00000001 , 0x00004666 
+ 00019973  0x00004a2a beq  0x00000000 , 0x00004e11 
+ 00019974  0x00004a2c call  0x00004b37 
+ 00019975  0x00004a2d fetch  0x00000001 , 0x000049a4 
+ 00019976  0x00004a2e branch  0x00004e24 , 0x00000034 
+ 00019977  0x00004a2f fetch  0x00000002 , 0x000048fa 
+ 00019978  0x00004a30 fetcht  0x00000002 , 0x000049a5 
+ 00019979  0x00004a31 isub  0x00000002 , 0x0000003e 
+ 00019980  0x00004a32 branch  0x00004e29 , 0x00000005 
+ 00019981  0x00004a33 byteswap  0x00000002 , 0x00000002 
+ 00019982  0x00004a34 isub  0x00000002 , 0x0000003e 
+ 00019983  0x00004a35 branch  0x00004e29 , 0x00000005 
+ 00019984  0x00004a36 rtn 
+ 00019985  0x00004a38 fetch  0x00000001 , 0x000049a4 
+ 00019986  0x00004a39 branch  0x00004e24 , 0x00000034 
+ 00019987  0x00004a3a branch  0x00004e32 
+ 00019988  0x00004a3d fetch  0x00000001 , 0x000049a4 
+ 00019989  0x00004a3e nrtn  0x00000034 
+ 00019990  0x00004a3f fetcht  0x00000001 , 0x00004655 
+ 00019991  0x00004a40 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00019992  0x00004a41 rtn  0x00000005 
+ 00019993  0x00004a42 call  0x00006ee6 
+ 00019994  0x00004a43 nbranch  0x00004e20 , 0x00000001 
+ 00019995  0x00004a44 arg  0x00000008 , 0x00000039 
+ 00019996  0x00004a45 arg  0x000048f8 , 0x00000005 
+ 00019997  0x00004a46 call  0x00007ca1 
+ 00019998  0x00004a47 jam  0x000000de , 0x000048fa 
+ 00019999  0x00004a48 rtn 
+ 00020000  0x00004a4b fetch  0x00000001 , 0x000048fa 
+ 00020001  0x00004a4c rtnne  0x000000de 
+ 00020002  0x00004a4d jam  0x00000000 , 0x000048fa 
+ 00020003  0x00004a4e rtn 
+ 00020004  0x00004a51 bpatch  0x00000056 , 0x0000400a 
+ 00020005  0x00004a52 fetch  0x00000001 , 0x000049a3 
+ 00020006  0x00004a53 rtn  0x00000034 
+ 00020007  0x00004a54 fetch  0x00000001 , 0x00004666 
+ 00020008  0x00004a55 beq  0x00000000 , 0x00004e39 
+ 00020009  0x00004a58 jam  0x00000000 , 0x000048f4 
+ 00020010  0x00004a59 fetch  0x00000001 , 0x00004666 
+ 00020011  0x00004a5a rtneq  0x00000000 
+ 00020012  0x00004a5b fetch  0x00000008 , 0x00004713 
+ 00020013  0x00004a5c rtnbit1  0x00000006 
+ 00020014  0x00004a5d arg  0x00000006 , 0x00000007 
+ 00020015  0x00004a5e call  0x00005f00 
+ 00020016  0x00004a5f call  0x000042d0 
+ 00020017  0x00004a60 branch  0x00004b90 
+ 00020018  0x00004a65 fetch  0x00000002 , 0x000048fa 
+ 00020019  0x00004a66 fetcht  0x00000002 , 0x000049a7 
+ 00020020  0x00004a67 isub  0x00000002 , 0x0000003e 
+ 00020021  0x00004a68 branch  0x00004e39 , 0x00000005 
+ 00020022  0x00004a69 byteswap  0x00000002 , 0x00000002 
+ 00020023  0x00004a6a isub  0x00000002 , 0x0000003e 
+ 00020024  0x00004a6b nrtn  0x00000005 
+ 00020025  0x00004a6d call  0x000049f8 
+ 00020026  0x00004a6e jam  0x00000000 , 0x000048f4 
+ 00020027  0x00004a6f fetch  0x00000002 , 0x000045d8 
+ 00020028  0x00004a70 nrtn  0x00000034 
+ 00020029  0x00004a71 setarg  0x00000000 
+ 00020030  0x00004a72 store  0x00000002 , 0x00004781 
+ 00020031  0x00004a73 call  0x00004b7c 
+ 00020032  0x00004a74 branch  0x00006047 
+ 00020033  0x00004a78 jam  0x00000001 , 0x000049a2 
+ 00020034  0x00004a79 rtn 
+ 00020035  0x00004a7c jam  0x00000001 , 0x000049a1 
+ 00020036  0x00004a7d rtn 
+ 00020037  0x00004a80 jam  0x00000001 , 0x000049a3 
+ 00020038  0x00004a81 rtn 
+ 00020039  0x00004a87 bpatch  0x00000057 , 0x0000400a 
+ 00020040  0x00004a88 disable  0x00000028 
+ 00020041  0x00004a89 jam  0x00000000 , 0x0000496c 
+ 00020042  0x00004a8a jam  0x00000000 , 0x0000496d 
+ 00020043  0x00004a8b jam  0x00000000 , 0x0000496e 
+ 00020044  0x00004a8c fetch  0x00000001 , 0x000049c1 
+ 00020045  0x00004a8d beq  0x00000001 , 0x00004da5 
+ 00020046  0x00004a8e beq  0x00000002 , 0x00004daa 
+ 00020047  0x00004a8f beq  0x00000003 , 0x00004daa 
+ 00020048  0x00004a90 beq  0x00000004 , 0x00004dae 
+ 00020049  0x00004a91 beq  0x00000006 , 0x00004db7 
+ 00020050  0x00004a92 fetch  0x00000001 , 0x000048f4 
+ 00020051  0x00004a93 branch  0x00004e64 , 0x00000034 
+ 00020052  0x00004a94 increase  0xffffffff , 0x0000003f 
+ 00020053  0x00004a95 store  0x00000001 , 0x000048f4 
+ 00020054  0x00004a96 call  0x00004e61 
+ 00020055  0x00004a97 jam  0x0000000a , 0x000049ac 
+ 00020056  0x00004a98 call  0x00005c0b 
+ 00020057  0x00004a99 fetch  0x00000001 , 0x000049c1 
+ 00020058  0x00004a9a beq  0x00000005 , 0x00004db6 
+ 00020059  0x00004a9b arg  0x00004855 , 0x00000005 
+ 00020060  0x00004a9c arg  0x0000000a , 0x00000039 
+ 00020061  0x00004a9d call  0x00007ca1 
+ 00020062  0x00004a9e call  0x00004e74 
+ 00020063  0x00004a9f jam  0x00000000 , 0x0000485f 
+ 00020064  0x00004aa0 rtn 
+ 00020065  0x00004aa3 jam  0x00000003 , 0x000040c0 
+ 00020066  0x00004aa4 jam  0x0000000a , 0x0000477e 
+ 00020067  0x00004aa5 rtn 
+ 00020068  0x00004aaa fetch  0x00000001 , 0x00004666 
+ 00020069  0x00004aab rtneq  0x00000001 
+ 00020070  0x00004aac fetch  0x00000001 , 0x000049ab 
+ 00020071  0x00004aad rtn  0x00000034 
+ 00020072  0x00004aae fetch  0x00000001 , 0x000049a9 
+ 00020073  0x00004aaf nrtn  0x00000034 
+ 00020074  0x00004ab0 fetcht  0x00000001 , 0x000049ad 
+ 00020075  0x00004ab1 fetch  0x00000001 , 0x000049ac 
+ 00020076  0x00004ab2 isub  0x00000002 , 0x0000003e 
+ 00020077  0x00004ab3 store  0x00000001 , 0x000049ad 
+ 00020078  0x00004ab4 rtn  0x00000005 
+ 00020079  0x00004ab5 arg  0x00004855 , 0x00000005 
+ 00020080  0x00004ab6 arg  0x0000000a , 0x00000039 
+ 00020081  0x00004ab7 call  0x00007ca1 
+ 00020082  0x00004ab8 call  0x00007dba 
+ 00020083  0x00004ab9 branch  0x00004e89 
+ 00020084  0x00004abe fetch  0x00000001 , 0x000049c5 
+ 00020085  0x00004abf beq  0x00000002 , 0x00004f05 
+ 00020086  0x00004ac0 arg  0x000048fa , 0x00000006 
+ 00020087  0x00004ac1 arg  0x00000006 , 0x00000039 
+ 00020088  0x00004ac3 ifetch  0x00000001 , 0x00000006 
+ 00020089  0x00004ac4 sub  0x0000003f , 0x000000e7 , 0x0000003e 
+ 00020090  0x00004ac5 nbranch  0x00004e9c , 0x00000002 
+ 00020091  0x00004ac7 loop  0x00004e78 
+ 00020092  0x00004ac9 fetch  0x00000001 , 0x000048f1 
+ 00020093  0x00004aca call  0x00004e92 , 0x00000034 
+ 00020094  0x00004acb jam  0x00000000 , 0x00004855 
+ 00020095  0x00004acc fetch  0x00000001 , 0x000048fa 
+ 00020096  0x00004acd sub  0x0000003f , 0x0000007f , 0x0000003e 
+ 00020097  0x00004ace branch  0x00004e95 , 0x00000005 
+ 00020098  0x00004acf arg  0x000048f8 , 0x00000006 
+ 00020099  0x00004ad0 arg  0x00004856 , 0x00000005 
+ 00020100  0x00004ad1 arg  0x00000008 , 0x00000039 
+ 00020101  0x00004ad3 ifetch  0x00000001 , 0x00000006 
+ 00020102  0x00004ad4 beq  0x0000007f , 0x00004e9a 
+ 00020103  0x00004ad6 istore  0x00000001 , 0x00000005 
+ 00020104  0x00004ad7 loop  0x00004e85 
+ 00020105  0x00004ada call  0x00004f10 
+ 00020106  0x00004adc fetch  0x00000001 , 0x0000485f 
+ 00020107  0x00004add beq  0x00000001 , 0x00007dba 
+ 00020108  0x00004ade beq  0x00000002 , 0x00004e90 
+ 00020109  0x00004adf beq  0x00000003 , 0x00004e90 
+ 00020110  0x00004ae0 beq  0x00000004 , 0x00004e90 
+ 00020111  0x00004ae1 beq  0x00000005 , 0x00004e90 
+ 00020112  0x00004ae3 call  0x00005917 
+ 00020113  0x00004ae4 branch  0x00007dba 
+ 00020114  0x00004ae7 arg  0x000048f8 , 0x00000005 
+ 00020115  0x00004ae8 arg  0x00000009 , 0x00000039 
+ 00020116  0x00004ae9 branch  0x00007ca1 
+ 00020117  0x00004aed fetch  0x00000002 , 0x000048f8 
+ 00020118  0x00004aee store  0x00000002 , 0x00004856 
+ 00020119  0x00004aef fetch  0x00000006 , 0x000048fb 
+ 00020120  0x00004af0 store  0x00000006 , 0x00004858 
+ 00020121  0x00004af1 branch  0x00004e89 
+ 00020122  0x00004af4 setarg  0x00000000 
+ 00020123  0x00004af5 branch  0x00004e87 
+ 00020124  0x00004af9 copy  0x0000003f , 0x00000002 
+ 00020125  0x00004afa bpatch  0x00000058 , 0x0000400b 
+ 00020126  0x00004afb copy  0x00000002 , 0x0000003f 
+ 00020127  0x00004afc jam  0x00000003 , 0x00004855 
+ 00020128  0x00004afd fetcht  0x00000001 , 0x000048f1 
+ 00020129  0x00004afe sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00020130  0x00004aff branch  0x00004f05 , 0x00000005 
+ 00020131  0x00004b00 beq  0x000000e8 , 0x00004ebb 
+ 00020132  0x00004b01 beq  0x000000e9 , 0x00004ebe 
+ 00020133  0x00004b02 beq  0x000000ea , 0x00004ec1 
+ 00020134  0x00004b03 beq  0x000000eb , 0x00004ec4 
+ 00020135  0x00004b04 beq  0x000000ec , 0x00004ec7 
+ 00020136  0x00004b05 beq  0x000000ed , 0x00004eca 
+ 00020137  0x00004b06 beq  0x000000ee , 0x00004ecd 
+ 00020138  0x00004b07 beq  0x000000ef , 0x00004ed0 
+ 00020139  0x00004b08 beq  0x000000f0 , 0x00004ed3 
+ 00020140  0x00004b09 beq  0x000000f1 , 0x00004ed6 
+ 00020141  0x00004b0a beq  0x000000f2 , 0x00004ed9 
+ 00020142  0x00004b0b beq  0x000000f3 , 0x00004edc 
+ 00020143  0x00004b0c beq  0x000000f4 , 0x00004edf 
+ 00020144  0x00004b0d beq  0x000000f5 , 0x00004ee2 
+ 00020145  0x00004b0e beq  0x000000f6 , 0x00004ee5 
+ 00020146  0x00004b0f beq  0x000000f7 , 0x00004ee8 
+ 00020147  0x00004b10 beq  0x000000f8 , 0x00004eeb 
+ 00020148  0x00004b11 beq  0x000000f9 , 0x00004eee 
+ 00020149  0x00004b12 beq  0x000000fa , 0x00004ef1 
+ 00020150  0x00004b13 beq  0x000000fb , 0x00004ef7 
+ 00020151  0x00004b14 beq  0x000000fc , 0x00004efa 
+ 00020152  0x00004b15 beq  0x000000fd , 0x00004efd 
+ 00020153  0x00004b16 beq  0x000000ff , 0x00004f0c 
+ 00020154  0x00004b17 branch  0x00004e89 
+ 00020155  0x00004b1a setarg  0x00000183 
+ 00020156  0x00004b1b store  0x00000002 , 0x00004856 
+ 00020157  0x00004b1c branch  0x00004e89 
+ 00020158  0x00004b1e setarg  0x000000cd 
+ 00020159  0x00004b1f store  0x00000002 , 0x00004856 
+ 00020160  0x00004b20 branch  0x00004e89 
+ 00020161  0x00004b22 setarg  0x000000b7 
+ 00020162  0x00004b23 store  0x00000002 , 0x00004856 
+ 00020163  0x00004b24 branch  0x00004e89 
+ 00020164  0x00004b26 setarg  0x000000b6 
+ 00020165  0x00004b27 store  0x00000002 , 0x00004856 
+ 00020166  0x00004b28 branch  0x00004e89 
+ 00020167  0x00004b2a setarg  0x000000b5 
+ 00020168  0x00004b2b store  0x00000002 , 0x00004856 
+ 00020169  0x00004b2c branch  0x00004e89 
+ 00020170  0x00004b2e setarg  0x000000ea 
+ 00020171  0x00004b2f store  0x00000002 , 0x00004856 
+ 00020172  0x00004b30 branch  0x00004e89 
+ 00020173  0x00004b32 setarg  0x000000e9 
+ 00020174  0x00004b33 store  0x00000002 , 0x00004856 
+ 00020175  0x00004b34 branch  0x00004e89 
+ 00020176  0x00004b36 setarg  0x000000e2 
+ 00020177  0x00004b37 store  0x00000002 , 0x00004856 
+ 00020178  0x00004b38 branch  0x00004e89 
+ 00020179  0x00004b3a setarg  0x00000194 
+ 00020180  0x00004b3b store  0x00000002 , 0x00004856 
+ 00020181  0x00004b3c branch  0x00004e89 
+ 00020182  0x00004b3e setarg  0x0000018a 
+ 00020183  0x00004b3f store  0x00000002 , 0x00004856 
+ 00020184  0x00004b40 branch  0x00004e89 
+ 00020185  0x00004b42 setarg  0x00000192 
+ 00020186  0x00004b43 store  0x00000002 , 0x00004856 
+ 00020187  0x00004b44 branch  0x00004e89 
+ 00020188  0x00004b46 setarg  0x00000070 
+ 00020189  0x00004b47 store  0x00000002 , 0x00004856 
+ 00020190  0x00004b48 branch  0x00004e89 
+ 00020191  0x00004b4a setarg  0x0000006f 
+ 00020192  0x00004b4b store  0x00000002 , 0x00004856 
+ 00020193  0x00004b4c branch  0x00004e89 
+ 00020194  0x00004b4e setarg  0x0000022a 
+ 00020195  0x00004b4f store  0x00000002 , 0x00004856 
+ 00020196  0x00004b50 branch  0x00004e89 
+ 00020197  0x00004b52 setarg  0x00000225 
+ 00020198  0x00004b53 store  0x00000002 , 0x00004856 
+ 00020199  0x00004b54 branch  0x00004e89 
+ 00020200  0x00004b56 setarg  0x00000224 
+ 00020201  0x00004b57 store  0x00000002 , 0x00004856 
+ 00020202  0x00004b58 branch  0x00004e89 
+ 00020203  0x00004b5a setarg  0x00000226 
+ 00020204  0x00004b5b store  0x00000002 , 0x00004856 
+ 00020205  0x00004b5c branch  0x00004e89 
+ 00020206  0x00004b5e setarg  0x00000227 
+ 00020207  0x00004b5f store  0x00000002 , 0x00004856 
+ 00020208  0x00004b60 branch  0x00004e89 
+ 00020209  0x00004b62 fetch  0x00000001 , 0x000049c6 
+ 00020210  0x00004b63 beq  0x00000002 , 0x00004ef7 
+ 00020211  0x00004b64 beq  0x00000003 , 0x00004ef7 
+ 00020212  0x00004b65 setarg  0x00000221 
+ 00020213  0x00004b66 store  0x00000002 , 0x00004856 
+ 00020214  0x00004b67 branch  0x00004e89 
+ 00020215  0x00004b69 setarg  0x00000223 
+ 00020216  0x00004b6a store  0x00000002 , 0x00004856 
+ 00020217  0x00004b6b branch  0x00004e89 
+ 00020218  0x00004b6d setarg  0x00000030 
+ 00020219  0x00004b6e store  0x00000002 , 0x00004856 
+ 00020220  0x00004b6f branch  0x00004e89 
+ 00020221  0x00004b71 fetch  0x00000001 , 0x000049c6 
+ 00020222  0x00004b72 beq  0x00000001 , 0x00004f02 
+ 00020223  0x00004b73 setarg  0x000001ae 
+ 00020224  0x00004b74 store  0x00000002 , 0x00004856 
+ 00020225  0x00004b75 branch  0x00004e89 
+ 00020226  0x00004b77 setarg  0x00000307 
+ 00020227  0x00004b78 store  0x00000002 , 0x00004856 
+ 00020228  0x00004b79 branch  0x00004e89 
+ 00020229  0x00004b7d jam  0x00000002 , 0x000048f4 
+ 00020230  0x00004b7e fetch  0x00000001 , 0x000048f1 
+ 00020231  0x00004b7f call  0x00004e92 , 0x00000034 
+ 00020232  0x00004b80 jam  0x00000000 , 0x000049c5 
+ 00020233  0x00004b81 setarg  0x00000003 
+ 00020234  0x00004b82 store  0x00000003 , 0x00004855 
+ 00020235  0x00004b83 branch  0x00004e89 
+ 00020236  0x00004b85 jam  0x00000002 , 0x00004855 
+ 00020237  0x00004b86 setarg  0x00000002 
+ 00020238  0x00004b87 store  0x00000001 , 0x00004856 
+ 00020239  0x00004b88 branch  0x00004e89 
+ 00020240  0x00004b90 bpatch  0x00000059 , 0x0000400b 
+ 00020241  0x00004b91 fetch  0x00000001 , 0x00004666 
+ 00020242  0x00004b92 bne  0x00000000 , 0x00004f18 
+ 00020243  0x00004b93 jam  0x00000000 , 0x000049a9 
+ 00020244  0x00004b94 fetch  0x00000002 , 0x00004855 
+ 00020245  0x00004b95 ncall  0x00004afc , 0x00000034 
+ 00020246  0x00004b96 fetch  0x00000006 , 0x00004858 
+ 00020247  0x00004b97 ncall  0x00004afc , 0x00000034 
+ 00020248  0x00004b9a fetch  0x00000001 , 0x00004855 
+ 00020249  0x00004b9b beq  0x00000000 , 0x00004f23 
+ 00020250  0x00004b9c beq  0x00000001 , 0x00004f1e 
+ 00020251  0x00004b9d beq  0x00000003 , 0x00004f2e 
+ 00020252  0x00004b9e beq  0x00000002 , 0x00004f36 
+ 00020253  0x00004b9f rtn 
+ 00020254  0x00004ba2 jam  0x00000001 , 0x0000485f 
+ 00020255  0x00004ba3 arg  0x00004855 , 0x00000006 
+ 00020256  0x00004ba4 arg  0x00004846 , 0x00000005 
+ 00020257  0x00004ba5 arg  0x00000007 , 0x00000039 
+ 00020258  0x00004ba6 branch  0x00007cda 
+ 00020259  0x00004ba9 jam  0x00000002 , 0x0000485f 
+ 00020260  0x00004baa call  0x00004f3e 
+ 00020261  0x00004bab fetch  0x00000001 , 0x00004666 
+ 00020262  0x00004bac beq  0x00000001 , 0x00004f2a 
+ 00020263  0x00004bad call  0x00004af1 
+ 00020264  0x00004bae fetch  0x00000001 , 0x000049ab 
+ 00020265  0x00004baf store  0x00000001 , 0x00004857 
+ 00020266  0x00004bb1 arg  0x00004855 , 0x00000006 
+ 00020267  0x00004bb2 arg  0x0000472a , 0x00000005 
+ 00020268  0x00004bb3 arg  0x00000009 , 0x00000039 
+ 00020269  0x00004bb4 branch  0x00007cda 
+ 00020270  0x00004bb7 jam  0x00000004 , 0x0000485f 
+ 00020271  0x00004bb8 call  0x00004f3e 
+ 00020272  0x00004bb9 setarg  0x00000003 
+ 00020273  0x00004bba call  0x00005f15 
+ 00020274  0x00004bbb arg  0x00004856 , 0x00000006 
+ 00020275  0x00004bbc arg  0x0000472b , 0x00000005 
+ 00020276  0x00004bbd arg  0x00000002 , 0x00000039 
+ 00020277  0x00004bbe branch  0x00007cda 
+ 00020278  0x00004bc1 jam  0x00000005 , 0x0000485f 
+ 00020279  0x00004bc2 call  0x00004f3e 
+ 00020280  0x00004bc3 setarg  0x00000002 
+ 00020281  0x00004bc4 store  0x00000008 , 0x0000472a 
+ 00020282  0x00004bc5 store  0x00000008 , 0x00004733 
+ 00020283  0x00004bc6 fetch  0x00000001 , 0x00004856 
+ 00020284  0x00004bc7 store  0x00000001 , 0x0000472b 
+ 00020285  0x00004bc8 rtn 
+ 00020286  0x00004bcc arg  0x00000012 , 0x00000039 
+ 00020287  0x00004bcd arg  0x0000472a , 0x00000005 
+ 00020288  0x00004bce branch  0x00007ca1 
+ 00020289  0x00004bd4 call  0x00007de2 
+ 00020290  0x00004bd5 call  0x0000561c 
+ 00020291  0x00004bd6 fetcht  0x00000001 , 0x0000464a 
+ 00020292  0x00004bd7 call  0x00006eb2 
+ 00020293  0x00004bd8 fetcht  0x00000001 , 0x0000464b 
+ 00020294  0x00004bd9 call  0x00006eb2 
+ 00020295  0x00004bdb fetcht  0x00000001 , 0x00004655 
+ 00020296  0x00004bdc call  0x00006eb6 
+ 00020297  0x00004bde fetch  0x00000002 , 0x00004898 
+ 00020298  0x00004bdf copy  0x0000003f , 0x00000012 
+ 00020299  0x00004be0 arg  0x00000014 , 0x00000039 
+ 00020300  0x00004be2 ifetcht  0x00000001 , 0x00000012 
+ 00020301  0x00004be3 isolate1  0x00000007 , 0x00000002 
+ 00020302  0x00004be4 ncall  0x00006ef7 , 0x00000001 
+ 00020303  0x00004be5 increase  0x00000001 , 0x00000012 
+ 00020304  0x00004be6 loop  0x00004f4c 
+ 00020305  0x00004be8 fetch  0x00000002 , 0x00004896 
+ 00020306  0x00004be9 copy  0x0000003f , 0x00000012 
+ 00020307  0x00004bea arg  0x00000008 , 0x00000039 
+ 00020308  0x00004bec ifetcht  0x00000001 , 0x00000012 
+ 00020309  0x00004bed sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00020310  0x00004bee ncall  0x00006eb2 , 0x00000005 
+ 00020311  0x00004bef increase  0x00000001 , 0x00000012 
+ 00020312  0x00004bf0 loop  0x00004f54 
+ 00020313  0x00004bf1 rtn 
+ 00020314  0x00004bf4 fetch  0x00000001 , 0x000048eb 
+ 00020315  0x00004bf5 branch  0x00006eb6 , 0x00000034 
+ 00020316  0x00004bf6 branch  0x00006eb2 
+ 00020317  0x00004bf8 rtnmark1  0x00000026 
+ 00020318  0x00004bf9 call  0x00004f41 
+ 00020319  0x00004bfa fetch  0x00000001 , 0x00000015 
+ 00020320  0x00004bfb nrtn  0x00000034 
+ 00020321  0x00004bfc branch  0x00006ed3 
+ 00020322  0x00004bfe bpatch  0x0000005a , 0x0000400b 
+ 00020323  0x00004bff jam  0x000000ff , 0x00004659 
+ 00020324  0x00004c00 call  0x0000739a 
+ 00020325  0x00004c01 call  0x00004f70 
+ 00020326  0x00004c02 call  0x000056a9 
+ 00020327  0x00004c03 call  0x000054dc 
+ 00020328  0x00004c04 call  0x00005d9e 
+ 00020329  0x00004c05 fetcht  0x00000001 , 0x00004659 
+ 00020330  0x00004c06 branch  0x00006ed3 
+ 00020331  0x00004c09 call  0x00004f70 
+ 00020332  0x00004c0b bpatch  0x0000005b , 0x0000400b 
+ 00020333  0x00004c0c call  0x00004f75 
+ 00020334  0x00004c0d call  0x00007d7c 
+ 00020335  0x00004c0e branch  0x00004327 
+ 00020336  0x00004c11 bpatch  0x0000005c , 0x0000400b 
+ 00020337  0x00004c12 call  0x00004b6d 
+ 00020338  0x00004c13 call  0x00004b71 
+ 00020339  0x00004c14 call  0x00004b7c 
+ 00020340  0x00004c15 branch  0x00004b6f 
+ 00020341  0x00004c1d bpatch  0x0000005d , 0x0000400b 
+ 00020342  0x00004c1e call  0x00007de2 
+ 00020343  0x00004c1f call  0x00004f70 
+ 00020344  0x00004c20 call  0x00005a92 
+ 00020345  0x00004c21 call  0x00004f41 
+ 00020346  0x00004c22 call  0x000054f9 
+ 00020347  0x00004c23 fetcht  0x00000001 , 0x0000465b 
+ 00020348  0x00004c24 call  0x000055b5 
+ 00020349  0x00004c25 call  0x000055b9 
+ 00020350  0x00004c26 branch  0x000054f2 
+ 00020351  0x00004c33 fetch  0x00000002 , 0x000045e0 
+ 00020352  0x00004c34 and_into  0x000000e0 , 0x0000003f 
+ 00020353  0x00004c35 branch  0x00004f86 , 0x00000034 
+ 00020354  0x00004c36 fetch  0x00000002 , 0x000045e0 
+ 00020355  0x00004c37 increase  0x00000001 , 0x0000003f 
+ 00020356  0x00004c38 store  0x00000002 , 0x000045e0 
+ 00020357  0x00004c39 rtn 
+ 00020358  0x00004c3b call  0x0000357f 
+ 00020359  0x00004c3c call  0x00003651 
+ 00020360  0x00004c3d nbranch  0x00003586 , 0x00000018 
+ 00020361  0x00004c3e nbranch  0x00003586 , 0x0000002f 
+ 00020362  0x00004c3f call  0x00005028 
+ 00020363  0x00004c40 branch  0x0000356a 
+ 00020364  0x00004c46 call  0x00003625 
+ 00020365  0x00004c47 nbranch  0x00004f91 , 0x00000028 
+ 00020366  0x00004c49 call  0x00004fa0 
+ 00020367  0x00004c4a call  0x00004fd5 
+ 00020368  0x00004c4b branch  0x00004fdb 
+ 00020369  0x00004c4e fetch  0x00000008 , 0x0000489c 
+ 00020370  0x00004c4f nbranch  0x00004f8e , 0x00000034 
+ 00020371  0x00004c50 fetch  0x00000008 , 0x000048a4 
+ 00020372  0x00004c51 nbranch  0x00004f8e , 0x00000034 
+ 00020373  0x00004c52 fetch  0x00000004 , 0x000048ac 
+ 00020374  0x00004c53 nbranch  0x00004f8e , 0x00000034 
+ 00020375  0x00004c55 fetch  0x00000001 , 0x00004618 
+ 00020376  0x00004c56 rtneq  0x00000001 
+ 00020377  0x00004c57 call  0x0000369d 
+ 00020378  0x00004c59 call  0x00004fc8 
+ 00020379  0x00004c5a nrtn  0x00000028 
+ 00020380  0x00004c5b fetch  0x00000001 , 0x0000473f 
+ 00020381  0x00004c5c ncall  0x00004f75 , 0x00000034 
+ 00020382  0x00004c5d fetch  0x00000004 , 0x000045af 
+ 00020383  0x00004c5e branch  0x00003622 
+ 00020384  0x00004c61 bpatch  0x0000005e , 0x0000400b 
+ 00020385  0x00004c62 jam  0x00000000 , 0x00004601 
+ 00020386  0x00004c64 fetchr  0x0000000b , 0x00000002 , 0x00000040 
+ 00020387  0x00004c65 until  0x00000023 , 0x00000026 
+ 00020388  0x00004c66 call  0x00004df5 
+ 00020389  0x00004c67 fetch  0x00000001 , 0x000049a3 
+ 00020390  0x00004c68 nbranch  0x00005ed1 , 0x00000034 
+ 00020391  0x00004c69 call  0x00003651 
+ 00020392  0x00004c6a fetch  0x00000001 , 0x0000457f 
+ 00020393  0x00004c6b beq  0x00000001 , 0x00003646 
+ 00020394  0x00004c6c nbranch  0x00004faf , 0x00000018 
+ 00020395  0x00004c6d nbranch  0x00004faf , 0x0000002f 
+ 00020396  0x00004c6e call  0x00005028 
+ 00020397  0x00004c6f jam  0x00000000 , 0x0000473f 
+ 00020398  0x00004c70 branch  0x00003646 
+ 00020399  0x00004c74 fetch  0x00000001 , 0x00004602 
+ 00020400  0x00004c75 nrtn  0x00000034 
+ 00020401  0x00004c76 fetch  0x00000002 , 0x000045fe 
+ 00020402  0x00004c77 increase  0x00000001 , 0x0000003f 
+ 00020403  0x00004c78 store  0x00000002 , 0x000045fe 
+ 00020404  0x00004c79 fetch  0x00000001 , 0x000045fe 
+ 00020405  0x00004c7a beq  0x000000ff , 0x00003676 
+ 00020406  0x00004c7b call  0x00004fb8 
+ 00020407  0x00004c7c branch  0x00004fa2 
+ 00020408  0x00004c80 fetcht  0x00000001 , 0x00004601 
+ 00020409  0x00004c81 sub  0x00000002 , 0x00000014 , 0x0000003e 
+ 00020410  0x00004c82 branch  0x00004fbe , 0x00000002 
+ 00020411  0x00004c83 arg  0x00000019 , 0x00000039 
+ 00020412  0x00004c84 call  0x00007c96 
+ 00020413  0x00004c85 branch  0x00003694 
+ 00020414  0x00004c88 increase  0x00000001 , 0x00000002 
+ 00020415  0x00004c89 storet  0x00000001 , 0x00004601 
+ 00020416  0x00004c8a fetch  0x00000004 , 0x0000458f 
+ 00020417  0x00004c8b fetcht  0x00000004 , 0x000045e4 
+ 00020418  0x00004c8c isub  0x00000002 , 0x0000003e 
+ 00020419  0x00004c8d branch  0x00003222 , 0x00000005 
+ 00020420  0x00004c8e fetch  0x00000001 , 0x00004601 
+ 00020421  0x00004c8f sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00020422  0x00004c90 rtn  0x00000002 
+ 00020423  0x00004c91 branch  0x0000369a 
+ 00020424  0x00004c95 enable  0x00000028 
+ 00020425  0x00004c96 call  0x00002408 
+ 00020426  0x00004c97 fetch  0x00000003 , 0x000040bd 
+ 00020427  0x00004c98 branch  0x00007dbc , 0x00000034 
+ 00020428  0x00004c99 fetch  0x00000001 , 0x000049a1 
+ 00020429  0x00004c9a nbranch  0x00007dbc , 0x00000034 
+ 00020430  0x00004c9b fetch  0x00000001 , 0x000049a2 
+ 00020431  0x00004c9c nbranch  0x00007dbc , 0x00000034 
+ 00020432  0x00004c9d fetch  0x00000001 , 0x000049c4 
+ 00020433  0x00004c9e nbranch  0x00007dbc , 0x00000034 
+ 00020434  0x00004c9f fetch  0x00000001 , 0x00004618 
+ 00020435  0x00004ca0 beq  0x00000001 , 0x00007dbc 
+ 00020436  0x00004ca1 branch  0x000036b9 
+ 00020437  0x00004ca4 fetch  0x00000004 , 0x0000458f 
+ 00020438  0x00004ca5 fetcht  0x00000004 , 0x000045e4 
+ 00020439  0x00004ca6 isub  0x00000002 , 0x0000003e 
+ 00020440  0x00004ca7 nbranch  0x000036e9 , 0x00000005 
+ 00020441  0x00004ca8 jam  0x0000009e , 0x00004141 
+ 00020442  0x00004ca9 rtn 
+ 00020443  0x00004cab fetch  0x00000008 , 0x0000460b 
+ 00020444  0x00004cac store  0x00000008 , 0x000045af 
+ 00020445  0x00004cad fetch  0x00000002 , 0x0000461d 
+ 00020446  0x00004cae store  0x00000002 , 0x0000461f 
+ 00020447  0x00004cb0 bpatch  0x0000005f , 0x0000400b 
+ 00020448  0x00004cb1 call  0x000036b4 
+ 00020449  0x00004cb2 nrtn  0x00000028 
+ 00020450  0x00004cb3 call  0x00007de2 
+ 00020451  0x00004cb4 fetch  0x00000003 , 0x00004608 
+ 00020452  0x00004cb5 branch  0x00003622 
+ 00020453  0x00004cbe rtnmark0  0x00000026 
+ 00020454  0x00004cbf call  0x00004e47 
+ 00020455  0x00004cc0 nrtn  0x00000028 
+ 00020456  0x00004cc1 fetch  0x00000008 , 0x00004713 
+ 00020457  0x00004cc2 bbit0  0x00000016 , 0x000060a1 
+ 00020458  0x00004cc3 fetch  0x00000001 , 0x0000496c 
+ 00020459  0x00004cc4 nbranch  0x00004fed , 0x00000034 
+ 00020460  0x00004cc5 branch  0x000060a1 
+ 00020461  0x00004cc8 jam  0x00000002 , 0x00004589 
+ 00020462  0x00004cc9 arg  0x00000009 , 0x00000011 
+ 00020463  0x00004cca fetch  0x00000001 , 0x0000496d 
+ 00020464  0x00004ccb nbranch  0x00004ff3 , 0x00000034 
+ 00020465  0x00004ccc arg  0x00004733 , 0x00000012 
+ 00020466  0x00004ccd rtn 
+ 00020467  0x00004ccf arg  0x0000472a , 0x00000012 
+ 00020468  0x00004cd0 rtn 
+ 00020469  0x00004cd6 setarg  0x00000000 
+ 00020470  0x00004cd7 store  0x00000003 , 0x000046f8 
+ 00020471  0x00004cd8 rtn 
+ 00020472  0x00004cdb bpatch  0x00000060 , 0x0000400c 
+ 00020473  0x00004cdc fetch  0x00000008 , 0x00004713 
+ 00020474  0x00004cdd rtnbit0  0x0000000e 
+ 00020475  0x00004cde fetch  0x00000001 , 0x0000477d 
+ 00020476  0x00004cdf rtn  0x00000034 
+ 00020477  0x00004ce0 fetch  0x00000001 , 0x00004602 
+ 00020478  0x00004ce1 rtn  0x00000034 
+ 00020479  0x00004ce2 fetch  0x00000001 , 0x000046f5 
+ 00020480  0x00004ce3 increase  0x00000001 , 0x0000003f 
+ 00020481  0x00004ce4 and_into  0x00000003 , 0x0000003f 
+ 00020482  0x00004ce5 store  0x00000001 , 0x000046f5 
+ 00020483  0x00004ce6 nrtn  0x00000034 
+ 00020484  0x00004ce7 jam  0x00000000 , 0x000046f6 
+ 00020485  0x00004cea fetch  0x00000001 , 0x000046f6 
+ 00020486  0x00004ceb increase  0x00000001 , 0x0000003f 
+ 00020487  0x00004cec store  0x00000001 , 0x000046f6 
+ 00020488  0x00004ced sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00020489  0x00004cee nbranch  0x00005010 , 0x00000002 
+ 00020490  0x00004cef call  0x0000357f 
+ 00020491  0x00004cf0 call  0x00003651 
+ 00020492  0x00004cf1 nbranch  0x00005016 , 0x00000018 
+ 00020493  0x00004cf2 nbranch  0x00005016 , 0x0000002f 
+ 00020494  0x00004cf3 call  0x00005028 
+ 00020495  0x00004cf4 call  0x00005020 
+ 00020496  0x00004cf6 call  0x0000357b 
+ 00020497  0x00004cf7 fetch  0x00000001 , 0x000046f7 
+ 00020498  0x00004cf8 increase  0x00000001 , 0x0000003f 
+ 00020499  0x00004cf9 store  0x00000001 , 0x000046f7 
+ 00020500  0x00004cfa beq  0x00000010 , 0x00005018 
+ 00020501  0x00004cfb rtn 
+ 00020502  0x00004cfe call  0x00003222 
+ 00020503  0x00004cff branch  0x00005005 
+ 00020504  0x00004d02 jam  0x00000000 , 0x000046f7 
+ 00020505  0x00004d03 fetch  0x00000001 , 0x000046f8 
+ 00020506  0x00004d04 rtnbit1  0x00000000 
+ 00020507  0x00004d05 set1  0x00000000 , 0x0000003f 
+ 00020508  0x00004d06 store  0x00000001 , 0x000046f8 
+ 00020509  0x00004d07 fetch  0x00000002 , 0x00004723 
+ 00020510  0x00004d08 store  0x00000002 , 0x00004781 
+ 00020511  0x00004d09 rtn 
+ 00020512  0x00004d0d fetch  0x00000001 , 0x00004602 
+ 00020513  0x00004d0e branch  0x00004ff5 , 0x00000034 
+ 00020514  0x00004d0f jam  0x00000000 , 0x000046f7 
+ 00020515  0x00004d10 fetch  0x00000001 , 0x000046f8 
+ 00020516  0x00004d11 rtnbit0  0x00000000 
+ 00020517  0x00004d12 set0  0x00000000 , 0x0000003f 
+ 00020518  0x00004d13 store  0x00000001 , 0x000046f8 
+ 00020519  0x00004d14 branch  0x00005c0b 
+ 00020520  0x00004d18 call  0x0000366e 
+ 00020521  0x00004d19 fetch  0x00000001 , 0x000044f8 
+ 00020522  0x00004d1a compare  0x00000008 , 0x0000003f , 0x000000f8 
+ 00020523  0x00004d1b nrtn  0x00000001 
+ 00020524  0x00004d1c fetch  0x00000001 , 0x000044f9 
+ 00020525  0x00004d1d beq  0x000000ff , 0x00004b11 
+ 00020526  0x00004d1e rtn 
+ 00020527  0x00004d24 jam  0x00000001 , 0x000049f1 
+ 00020528  0x00004d25 arg  0x00000017 , 0x00000011 
+ 00020529  0x00004d26 arg  0x00000004 , 0x00000012 
+ 00020530  0x00004d27 call  0x000029fb 
+ 00020531  0x00004d28 setarg  0x00000006 
+ 00020532  0x00004d29 istore  0x00000001 , 0x00000005 
+ 00020533  0x00004d2a setarg  0x00000001 
+ 00020534  0x00004d2b istore  0x00000002 , 0x00000005 
+ 00020535  0x00004d2c setarg  0x0000ffff 
+ 00020536  0x00004d2d istore  0x00000002 , 0x00000005 
+ 00020537  0x00004d2e setarg  0x00002800 
+ 00020538  0x00004d2f istore  0x00000002 , 0x00000005 
+ 00020539  0x00004d30 arg  0x000049e1 , 0x00000006 
+ 00020540  0x00004d31 branch  0x00007c8f 
+ 00020541  0x00004d33 bpatch  0x00000061 , 0x0000400c 
+ 00020542  0x00004d34 fetch  0x00000001 , 0x000049f1 
+ 00020543  0x00004d35 rtn  0x00000034 
+ 00020544  0x00004d36 copy  0x00000011 , 0x00000006 
+ 00020545  0x00004d37 ifetch  0x00000003 , 0x00000006 
+ 00020546  0x00004d38 store  0x00000003 , 0x00004397 
+ 00020547  0x00004d39 beq  0x0000000b , 0x00005091 
+ 00020548  0x00004d3a beq  0x00000009 , 0x00005078 
+ 00020549  0x00004d3b beq  0x00000007 , 0x00005048 
+ 00020550  0x00004d3c beq  0x00000001 , 0x0000505b 
+ 00020551  0x00004d3d branch  0x00002b96 
+ 00020552  0x00004d40 fetch  0x00000001 , 0x000049f1 
+ 00020553  0x00004d41 beq  0x00000002 , 0x0000506c 
+ 00020554  0x00004d43 jam  0x00000002 , 0x000049c6 
+ 00020555  0x00004d44 branch  0x00005050 
+ 00020556  0x00004d47 fetch  0x00000001 , 0x000042cb 
+ 00020557  0x00004d48 store  0x00000001 , 0x000049c6 
+ 00020558  0x00004d49 branch  0x00005050 
+ 00020559  0x00004d4b jam  0x00000003 , 0x000049c6 
+ 00020560  0x00004d4d jam  0x00000000 , 0x000049f1 
+ 00020561  0x00004d4e fetcht  0x00000002 , 0x000049df 
+ 00020562  0x00004d4f setarg  0x00001fd0 
+ 00020563  0x00004d50 isub  0x00000002 , 0x00000012 
+ 00020564  0x00004d51 arg  0x000049c6 , 0x00000011 
+ 00020565  0x00004d53 arg  0x00000001 , 0x00000039 
+ 00020566  0x00004d54 call  0x00006b45 
+ 00020567  0x00004d55 fetcht  0x00000002 , 0x000049df 
+ 00020568  0x00004d56 increase  0x0000000e , 0x00000002 
+ 00020569  0x00004d57 storet  0x00000002 , 0x000049df 
+ 00020570  0x00004d58 rtn 
+ 00020571  0x00004d5d fetch  0x00000001 , 0x000049f1 
+ 00020572  0x00004d5e beq  0x00000002 , 0x0000504c 
+ 00020573  0x00004d5f jam  0x00000002 , 0x000049f1 
+ 00020574  0x00004d60 arg  0x00000009 , 0x00000011 
+ 00020575  0x00004d61 arg  0x00000004 , 0x00000012 
+ 00020576  0x00004d62 call  0x000029fb 
+ 00020577  0x00004d63 setarg  0x00000006 
+ 00020578  0x00004d64 istore  0x00000001 , 0x00000005 
+ 00020579  0x00004d65 setarg  0x00000001 
+ 00020580  0x00004d66 istore  0x00000002 , 0x00000005 
+ 00020581  0x00004d67 setarg  0x0000ffff 
+ 00020582  0x00004d68 istore  0x00000002 , 0x00000005 
+ 00020583  0x00004d69 setarg  0x00002800 
+ 00020584  0x00004d6a istore  0x00000002 , 0x00000005 
+ 00020585  0x00004d6b arg  0x00000002 , 0x00000039 
+ 00020586  0x00004d6c arg  0x000049f2 , 0x00000006 
+ 00020587  0x00004d6d branch  0x00007cda 
+ 00020588  0x00004d70 arg  0x00000007 , 0x00000011 
+ 00020589  0x00004d71 arg  0x00000004 , 0x00000012 
+ 00020590  0x00004d72 call  0x000029fb 
+ 00020591  0x00004d73 setarg  0x00000008 
+ 00020592  0x00004d74 istore  0x00000001 , 0x00000005 
+ 00020593  0x00004d75 fetcht  0x00000002 , 0x00004339 
+ 00020594  0x00004d76 increase  0x00000005 , 0x00000002 
+ 00020595  0x00004d77 ifetch  0x00000004 , 0x00000002 
+ 00020596  0x00004d78 istore  0x00000004 , 0x00000005 
+ 00020597  0x00004d79 setarg  0x00002803 
+ 00020598  0x00004d7a istore  0x00000002 , 0x00000005 
+ 00020599  0x00004d7b rtn 
+ 00020600  0x00004d7e fetch  0x00000002 , 0x00004335 
+ 00020601  0x00004d7f increase  0xfffffffe , 0x0000003f 
+ 00020602  0x00004d80 div  0x0000003f , 0x00000007 
+ 00020603  0x00004d81 call  0x00007d62 
+ 00020604  0x00004d82 quotient  0x00000039 
+ 00020605  0x00004d83 fetch  0x00000002 , 0x00004339 
+ 00020606  0x00004d84 add  0x0000003f , 0x00000006 , 0x00000006 
+ 00020607  0x00004d85 branch  0x00005080 
+ 00020608  0x00004d88 increase  0x00000003 , 0x00000006 
+ 00020609  0x00004d89 ifetch  0x00000002 , 0x00000006 
+ 00020610  0x00004d8a copy  0x0000003f , 0x00000013 
+ 00020611  0x00004d8b ifetch  0x00000002 , 0x00000006 
+ 00020612  0x00004d8c arg  0x00002a29 , 0x00000002 
+ 00020613  0x00004d8d isub  0x00000002 , 0x0000003e 
+ 00020614  0x00004d8e branch  0x00005089 , 0x00000005 
+ 00020615  0x00004d8f loop  0x00005080 
+ 00020616  0x00004d90 branch  0x0000504c 
+ 00020617  0x00004d92 arg  0x00000003 , 0x00000011 
+ 00020618  0x00004d93 arg  0x00000004 , 0x00000012 
+ 00020619  0x00004d94 call  0x000029fb 
+ 00020620  0x00004d95 setarg  0x0000000a 
+ 00020621  0x00004d96 istore  0x00000001 , 0x00000005 
+ 00020622  0x00004d97 copy  0x00000013 , 0x0000003f 
+ 00020623  0x00004d98 istore  0x00000002 , 0x00000005 
+ 00020624  0x00004d99 rtn 
+ 00020625  0x00004d9c fetch  0x00000002 , 0x00004335 
+ 00020626  0x00004d9d arg  0x00000009 , 0x00000039 
+ 00020627  0x00004d9e fetch  0x00000002 , 0x00004339 
+ 00020628  0x00004d9f add  0x0000003f , 0x00000005 , 0x00000011 
+ 00020629  0x00004da0 arg  0x000049f4 , 0x00000012 
+ 00020630  0x00004da1 call  0x00007d64 
+ 00020631  0x00004da2 branch  0x0000504f , 0x00000005 
+ 00020632  0x00004da3 branch  0x0000504c 
+ 00020633  0x00004dac branch  0x000050bd , 0x0000002b 
+ 00020634  0x00004dad call  0x00002952 
+ 00020635  0x00004dae setarg  0x000050c7 
+ 00020636  0x00004daf store  0x00000002 , 0x000043db 
+ 00020637  0x00004db0 setarg  0x000050ca 
+ 00020638  0x00004db1 store  0x00000002 , 0x000043dd 
+ 00020639  0x00004db2 setarg  0x000050c3 
+ 00020640  0x00004db3 store  0x00000002 , 0x000043d3 
+ 00020641  0x00004db4 setarg  0x00005180 
+ 00020642  0x00004db5 store  0x00000002 , 0x000043e1 
+ 00020643  0x00004db6 setarg  0x000053b0 
+ 00020644  0x00004db7 store  0x00000002 , 0x000043df 
+ 00020645  0x00004db8 setarg  0x000053c1 
+ 00020646  0x00004db9 store  0x00000002 , 0x000043e3 
+ 00020647  0x00004dbb bpatch  0x00000062 , 0x0000400c 
+ 00020648  0x00004dbc call  0x000050ab 
+ 00020649  0x00004dbd call  0x000050be 
+ 00020650  0x00004dbe branch  0x0000533b 
+ 00020651  0x00004dc1 fetch  0x00000001 , 0x00008060 
+ 00020652  0x00004dc2 set0  0x00000000 , 0x0000003f 
+ 00020653  0x00004dc3 store  0x00000001 , 0x00008060 
+ 00020654  0x00004dc4 fetch  0x00000008 , 0x00004500 
+ 00020655  0x00004dc5 call  0x00006d68 
+ 00020656  0x00004dc6 fetch  0x00000002 , 0x00004508 
+ 00020657  0x00004dc7 call  0x00006d73 
+ 00020658  0x00004dc8 call  0x00006d82 
+ 00020659  0x00004dc9 jam  0x00000008 , 0x00008077 
+ 00020660  0x00004dca jam  0x00000049 , 0x00008076 
+ 00020661  0x00004dcb jam  0x0000000a , 0x00008079 
+ 00020662  0x00004dcc jam  0x0000000b , 0x0000807a 
+ 00020663  0x00004dce arg  0x00000081 , 0x00000002 
+ 00020664  0x00004dcf fetch  0x00000002 , 0x0000450f 
+ 00020665  0x00004dd0 isolate1  0x00000000 , 0x0000003f 
+ 00020666  0x00004dd1 setflag  0x00000001 , 0x00000004 , 0x00000002 
+ 00020667  0x00004dd2 storet  0x00000001 , 0x00008060 
+ 00020668  0x00004dd3 rtn 
+ 00020669  0x00004dd6 branch  0x000050ab 
+ 00020670  0x00004ddb fetcht  0x00000001 , 0x000044f5 
+ 00020671  0x00004ddc call  0x00006ef7 
+ 00020672  0x00004ddd call  0x000050ed 
+ 00020673  0x00004dde fetcht  0x00000001 , 0x000044f3 
+ 00020674  0x00004ddf branch  0x00006edd 
+ 00020675  0x00004de2 fetcht  0x00000001 , 0x000044f3 
+ 00020676  0x00004de3 call  0x00006ee6 
+ 00020677  0x00004de4 nbranch  0x0000430a , 0x00000001 
+ 00020678  0x00004de5 branch  0x00004308 
+ 00020679  0x00004de9 call  0x000069a9 
+ 00020680  0x00004dea nrtn  0x00000034 
+ 00020681  0x00004deb branch  0x000050ef 
+ 00020682  0x00004def copy  0x00000013 , 0x0000003f 
+ 00020683  0x00004df0 beq  0x00000014 , 0x000050dc 
+ 00020684  0x00004df1 beq  0x00000015 , 0x000050d8 
+ 00020685  0x00004df2 beq  0x00000030 , 0x00005375 
+ 00020686  0x00004df3 beq  0x00000031 , 0x00005377 
+ 00020687  0x00004df4 beq  0x00000032 , 0x00005381 
+ 00020688  0x00004df5 beq  0x00000033 , 0x0000537f 
+ 00020689  0x00004df6 beq  0x00000034 , 0x0000536f 
+ 00020690  0x00004df7 beq  0x0000003d , 0x0000534f 
+ 00020691  0x00004df8 beq  0x00000041 , 0x000050e2 
+ 00020692  0x00004df9 beq  0x00000042 , 0x000050e4 
+ 00020693  0x00004dfa beq  0x00000043 , 0x0000536d 
+ 00020694  0x00004dfb beq  0x0000003b , 0x00005358 
+ 00020695  0x00004dfc rtn 
+ 00020696  0x00004e01 call  0x000029cb 
+ 00020697  0x00004e02 jam  0x00000000 , 0x00004511 
+ 00020698  0x00004e03 call  0x000050e0 
+ 00020699  0x00004e04 branch  0x00005321 
+ 00020700  0x00004e0b call  0x000050e7 
+ 00020701  0x00004e0c fetch  0x00000001 , 0x000044fe 
+ 00020702  0x00004e0d store  0x00000001 , 0x000040c0 
+ 00020703  0x00004e0e branch  0x0000531f 
+ 00020704  0x00004e13 call  0x00005149 
+ 00020705  0x00004e14 branch  0x000050e5 
+ 00020706  0x00004e18 call  0x000030f3 
+ 00020707  0x00004e19 branch  0x00002ed5 
+ 00020708  0x00004e1c branch  0x00005391 
+ 00020709  0x00004e20 fetcht  0x00000001 , 0x000044f5 
+ 00020710  0x00004e21 branch  0x00006ef7 
+ 00020711  0x00004e24 call  0x000050e9 
+ 00020712  0x00004e25 branch  0x000050ed 
+ 00020713  0x00004e28 fetch  0x00000001 , 0x000044f8 
+ 00020714  0x00004e29 isolate1  0x00000001 , 0x0000003f 
+ 00020715  0x00004e2a call  0x00004315 , 0x00000001 
+ 00020716  0x00004e2b rtn 
+ 00020717  0x00004e2d fetcht  0x00000001 , 0x000044f5 
+ 00020718  0x00004e2e branch  0x00006ef3 
+ 00020719  0x00004e32 fetch  0x00000001 , 0x0000810b 
+ 00020720  0x00004e33 rtnbit1  0x00000002 
+ 00020721  0x00004e34 call  0x00006d96 
+ 00020722  0x00004e35 ifetch  0x00000001 , 0x00000003 
+ 00020723  0x00004e36 bne  0x00000001 , 0x00005105 
+ 00020724  0x00004e37 fetch  0x00000002 , 0x00008112 
+ 00020725  0x00004e38 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00020726  0x00004e39 rtn  0x00000002 
+ 00020727  0x00004e3a ifetch  0x00000001 , 0x00000003 
+ 00020728  0x00004e3b store  0x00000001 , 0x000006e2 
+ 00020729  0x00004e3c ifetcht  0x00000001 , 0x00000003 
+ 00020730  0x00004e3d copy  0x00000003 , 0x00000011 
+ 00020731  0x00004e3e storet  0x00000001 , 0x000006e3 
+ 00020732  0x00004e3f add  0x00000002 , 0x00000003 , 0x00000002 
+ 00020733  0x00004e40 fetch  0x00000002 , 0x00008112 
+ 00020734  0x00004e41 isub  0x00000002 , 0x00000002 
+ 00020735  0x00004e42 nrtn  0x00000002 
+ 00020736  0x00004e43 jam  0x00000001 , 0x000006e4 
+ 00020737  0x00004e44 call  0x00005113 
+ 00020738  0x00004e45 fetch  0x00000001 , 0x000006e4 
+ 00020739  0x00004e46 rtneq  0x00000000 
+ 00020740  0x00004e47 branch  0x0000510e 
+ 00020741  0x00004e4a call  0x00007c95 
+ 00020742  0x00004e4b call  0x0000535e 
+ 00020743  0x00004e4c branch  0x00005108 
+ 00020744  0x00004e50 bpatch  0x00000063 , 0x0000400c 
+ 00020745  0x00004e51 call  0x00006d96 
+ 00020746  0x00004e52 fetch  0x00000002 , 0x00008112 
+ 00020747  0x00004e53 rtn  0x00000034 
+ 00020748  0x00004e54 iadd  0x00000003 , 0x00000003 
+ 00020749  0x00004e55 branch  0x00005112 
+ 00020750  0x00004e58 call  0x00006d96 
+ 00020751  0x00004e59 increase  0x00000002 , 0x00000003 
+ 00020752  0x00004e5a ifetch  0x00000001 , 0x00000003 
+ 00020753  0x00004e5b iadd  0x00000003 , 0x00000003 
+ 00020754  0x00004e5d branch  0x00006d9c 
+ 00020755  0x00004e61 bpatch  0x00000064 , 0x0000400c 
+ 00020756  0x00004e62 fetch  0x00000001 , 0x000006e2 
+ 00020757  0x00004e63 beq  0x00000001 , 0x0000513d 
+ 00020758  0x00004e64 beq  0x00000002 , 0x00005142 
+ 00020759  0x00004e65 beq  0x00000004 , 0x00005150 
+ 00020760  0x00004e66 beq  0x00000009 , 0x00005154 
+ 00020761  0x00004e67 beq  0x0000000b , 0x000051ab 
+ 00020762  0x00004e68 beq  0x0000000e , 0x000051ac 
+ 00020763  0x00004e69 beq  0x0000000f , 0x000051b4 
+ 00020764  0x00004e6a beq  0x00000010 , 0x000051bc 
+ 00020765  0x00004e6b beq  0x00000012 , 0x000051c0 
+ 00020766  0x00004e6c beq  0x00000026 , 0x000051c4 
+ 00020767  0x00004e6d beq  0x00000028 , 0x000051c9 
+ 00020768  0x00004e6e beq  0x0000002a , 0x000051cc 
+ 00020769  0x00004e6f beq  0x0000002b , 0x000051ff 
+ 00020770  0x00004e70 beq  0x0000002c , 0x00005205 
+ 00020771  0x00004e71 beq  0x00000030 , 0x0000520c 
+ 00020772  0x00004e72 beq  0x00000031 , 0x00005211 
+ 00020773  0x00004e73 beq  0x00000032 , 0x00005222 
+ 00020774  0x00004e74 beq  0x00000033 , 0x0000522d 
+ 00020775  0x00004e75 beq  0x00000034 , 0x0000525a 
+ 00020776  0x00004e76 beq  0x00000035 , 0x0000525d 
+ 00020777  0x00004e77 beq  0x00000036 , 0x00005266 
+ 00020778  0x00004e78 beq  0x00000037 , 0x0000526f 
+ 00020779  0x00004e79 beq  0x00000038 , 0x00005275 
+ 00020780  0x00004e7a beq  0x00000040 , 0x0000527d 
+ 00020781  0x00004e7b beq  0x00000042 , 0x00005287 
+ 00020782  0x00004e7c beq  0x00000048 , 0x0000528c 
+ 00020783  0x00004e7e beq  0x00000051 , 0x00005297 
+ 00020784  0x00004e7f beq  0x00000061 , 0x0000529b 
+ 00020785  0x00004e80 beq  0x00000076 , 0x000052aa 
+ 00020786  0x00004e81 beq  0x00000077 , 0x000052b0 
+ 00020787  0x00004e82 beq  0x00000078 , 0x000052b5 
+ 00020788  0x00004e83 beq  0x0000007a , 0x000052eb 
+ 00020789  0x00004e84 beq  0x0000007b , 0x000052f9 
+ 00020790  0x00004e85 beq  0x00000090 , 0x000052ff 
+ 00020791  0x00004e86 beq  0x00000091 , 0x00005304 
+ 00020792  0x00004e87 beq  0x00000092 , 0x00005308 
+ 00020793  0x00004e88 beq  0x00000093 , 0x0000530d 
+ 00020794  0x00004e89 beq  0x00000094 , 0x00005311 
+ 00020795  0x00004e8a beq  0x000000ff , 0x00005317 
+ 00020796  0x00004e8b branch  0x00005319 
+ 00020797  0x00004e92 fetch  0x00000001 , 0x000006e3 
+ 00020798  0x00004e93 bne  0x00000006 , 0x00005319 
+ 00020799  0x00004e94 ifetch  0x00000006 , 0x00000003 
+ 00020800  0x00004e95 store  0x00000006 , 0x000042db 
+ 00020801  0x00004e96 branch  0x0000531c 
+ 00020802  0x00004e9b fetch  0x00000001 , 0x000006e3 
+ 00020803  0x00004e9c bne  0x00000001 , 0x00005319 
+ 00020804  0x00004e9d ifetcht  0x00000001 , 0x00000003 
+ 00020805  0x00004e9e storet  0x00000001 , 0x000044ff 
+ 00020806  0x00004e9f call  0x0000531c 
+ 00020807  0x00004ea0 fetch  0x00000002 , 0x000044e9 
+ 00020808  0x00004ea1 rtnbit1  0x00000009 
+ 00020809  0x00004ea5 fetch  0x00000001 , 0x000044f8 
+ 00020810  0x00004ea6 isolate1  0x00000001 , 0x0000003f 
+ 00020811  0x00004ea7 nrtn  0x00000001 
+ 00020812  0x00004ea8 fetcht  0x00000001 , 0x000044ff 
+ 00020813  0x00004ea9 isolate1  0x00000002 , 0x00000002 
+ 00020814  0x00004eaa branch  0x00004317 , 0x00000001 
+ 00020815  0x00004eab branch  0x00004315 
+ 00020816  0x00004eb1 arg  0x0000001d , 0x0000003f 
+ 00020817  0x00004eb2 arg  0x0000426b , 0x00000005 
+ 00020818  0x00004eb3 call  0x00005260 
+ 00020819  0x00004eb4 branch  0x00002952 
+ 00020820  0x00004eba fetch  0x00000002 , 0x000044e9 
+ 00020821  0x00004ebb bbit0  0x00000009 , 0x00005319 
+ 00020822  0x00004ebc call  0x000051a8 
+ 00020823  0x00004ebd branch  0x00005319 , 0x00000028 
+ 00020824  0x00004ebe jam  0x00000000 , 0x000006e4 
+ 00020825  0x00004ebf fetch  0x00000002 , 0x0000450f 
+ 00020826  0x00004ec0 bbit1  0x00000008 , 0x00005179 
+ 00020827  0x00004ec1 fetch  0x00000001 , 0x00004511 
+ 00020828  0x00004ec2 nrtn  0x00000034 
+ 00020829  0x00004ec3 jam  0x00000001 , 0x000006e4 
+ 00020830  0x00004ec4 ifetch  0x00000002 , 0x00000003 
+ 00020831  0x00004ec5 store  0x00000002 , 0x00004512 
+ 00020832  0x00004ec6 storer  0x00000003 , 0x00000002 , 0x00004514 
+ 00020833  0x00004ec7 fetch  0x00000001 , 0x000006e3 
+ 00020834  0x00004ec8 pincrease  0xfffffffe 
+ 00020835  0x00004ec9 nbranch  0x00005319 , 0x00000002 
+ 00020836  0x00004eca branch  0x00005319 , 0x00000005 
+ 00020837  0x00004ecb store  0x00000001 , 0x00004511 
+ 00020838  0x00004ecc fetcht  0x00000002 , 0x00004512 
+ 00020839  0x00004ecd increase  0xffffffff , 0x00000002 
+ 00020840  0x00004ece call  0x00002cd2 
+ 00020841  0x00004ecf branch  0x0000517c , 0x00000034 
+ 00020842  0x00004ed0 ifetcht  0x00000004 , 0x00000006 
+ 00020843  0x00004ed1 setarg  0x01280302 
+ 00020844  0x00004ed2 isub  0x00000002 , 0x0000003e 
+ 00020845  0x00004ed3 nbranch  0x0000517c , 0x00000005 
+ 00020846  0x00004ed4 ifetch  0x00000001 , 0x00000006 
+ 00020847  0x00004ed5 store  0x00000001 , 0x00004516 
+ 00020848  0x00004ed6 and_into  0x00000030 , 0x0000003f 
+ 00020849  0x00004ed7 branch  0x0000517c , 0x00000034 
+ 00020850  0x00004ed8 jam  0x00000000 , 0x000006e4 
+ 00020851  0x00004ed9 call  0x000029c9 
+ 00020852  0x00004eda call  0x00005180 
+ 00020853  0x00004edb call  0x00005180 
+ 00020854  0x00004edc call  0x00005180 
+ 00020855  0x00004edd fetch  0x00000002 , 0x0000450f 
+ 00020856  0x00004ede rtnbit0  0x00000008 
+ 00020857  0x00004ee0 jam  0x00000001 , 0x000006e4 
+ 00020858  0x00004ee1 call  0x000053d6 
+ 00020859  0x00004ee2 branch  0x0000531c 
+ 00020860  0x00004ee5 jam  0x00000000 , 0x00004511 
+ 00020861  0x00004ee6 jam  0x00000001 , 0x000006e4 
+ 00020862  0x00004ee7 call  0x000053d6 
+ 00020863  0x00004ee8 branch  0x00005319 
+ 00020864  0x00004eeb fetch  0x00000001 , 0x00004511 
+ 00020865  0x00004eec rtn  0x00000034 
+ 00020866  0x00004eed call  0x00002a28 
+ 00020867  0x00004eee nrtn  0x00000034 
+ 00020868  0x00004eef call  0x000051a3 
+ 00020869  0x00004ef0 bpatch  0x00000065 , 0x0000400c 
+ 00020870  0x00004ef1 fetch  0x00000002 , 0x000042e1 
+ 00020871  0x00004ef2 call  0x00007db0 
+ 00020872  0x00004ef3 copy  0x0000003f , 0x00000002 
+ 00020873  0x00004ef4 fetch  0x00000001 , 0x00004396 
+ 00020874  0x00004ef5 rtnbit1  0x00000000 
+ 00020875  0x00004ef6 add  0x00000002 , 0xfffffffd , 0x0000003f 
+ 00020876  0x00004ef7 arg  0x000000fb , 0x00000002 
+ 00020877  0x00004ef8 call  0x00007db0 
+ 00020878  0x00004ef9 fetcht  0x00000001 , 0x00004511 
+ 00020879  0x00004efa call  0x00007db0 
+ 00020880  0x00004efb copy  0x0000003f , 0x00000011 
+ 00020881  0x00004efc copy  0x00000002 , 0x0000003f 
+ 00020882  0x00004efd isub  0x00000011 , 0x0000003f 
+ 00020883  0x00004efe store  0x00000001 , 0x00004511 
+ 00020884  0x00004eff call  0x0000519e 
+ 00020885  0x00004f00 fetch  0x00000002 , 0x00004514 
+ 00020886  0x00004f01 copy  0x0000003f , 0x00000003 
+ 00020887  0x00004f02 copy  0x00000011 , 0x00000039 
+ 00020888  0x00004f03 call  0x00006dca 
+ 00020889  0x00004f04 copy  0x00000003 , 0x0000003f 
+ 00020890  0x00004f05 store  0x00000002 , 0x00004514 
+ 00020891  0x00004f06 fetch  0x00000001 , 0x00004511 
+ 00020892  0x00004f07 nrtn  0x00000034 
+ 00020893  0x00004f08 branch  0x000053d4 
+ 00020894  0x00004f0b fetcht  0x00000002 , 0x00004512 
+ 00020895  0x00004f0c fetch  0x00000001 , 0x00004516 
+ 00020896  0x00004f0d bbit1  0x00000005 , 0x00002df7 
+ 00020897  0x00004f0e bbit1  0x00000004 , 0x00002dee 
+ 00020898  0x00004f0f rtn 
+ 00020899  0x00004f14 arg  0x00000017 , 0x00000002 
+ 00020900  0x00004f15 fetch  0x00000002 , 0x0000450f 
+ 00020901  0x00004f16 rtnbit1  0x00000001 
+ 00020902  0x00004f17 fetcht  0x00000002 , 0x000042e3 
+ 00020903  0x00004f18 rtn 
+ 00020904  0x00004f1b fetch  0x00000002 , 0x0000450f 
+ 00020905  0x00004f1c bbit1  0x00000002 , 0x00002dc7 
+ 00020906  0x00004f1d branch  0x00007dbc 
+ 00020907  0x00004f22 branch  0x0000533f 
+ 00020908  0x00004f29 ifetch  0x00000001 , 0x00000003 
+ 00020909  0x00004f2a fetcht  0x00000001 , 0x0000450f 
+ 00020910  0x00004f2b nsetflag  0x00000034 , 0x00000000 , 0x00000002 
+ 00020911  0x00004f2c storet  0x00000001 , 0x0000450f 
+ 00020912  0x00004f2d fetcht  0x00000001 , 0x00008060 
+ 00020913  0x00004f2e nsetflag  0x00000034 , 0x00000004 , 0x00000002 
+ 00020914  0x00004f2f storet  0x00000001 , 0x00008060 
+ 00020915  0x00004f30 branch  0x0000531c 
+ 00020916  0x00004f35 fetchr  0x00000039 , 0x00000001 , 0x000006e3 
+ 00020917  0x00004f36 call  0x00007d33 
+ 00020918  0x00004f37 call  0x00006d77 
+ 00020919  0x00004f38 store  0x00000002 , 0x00004508 
+ 00020920  0x00004f39 call  0x0000531c 
+ 00020921  0x00004f3a call  0x00006dae 
+ 00020922  0x00004f3b fetch  0x00000002 , 0x00004508 
+ 00020923  0x00004f3c branch  0x00006d73 
+ 00020924  0x00004f41 arg  0x00000002 , 0x00000011 
+ 00020925  0x00004f42 arg  0x000044f1 , 0x00000012 
+ 00020926  0x00004f43 arg  0x00000000 , 0x00000002 
+ 00020927  0x00004f44 branch  0x00005323 
+ 00020928  0x00004f4a fetch  0x00000002 , 0x000044e9 
+ 00020929  0x00004f4b bbit0  0x00000009 , 0x00005319 
+ 00020930  0x00004f4d call  0x0000531c 
+ 00020931  0x00004f4e branch  0x0000431f 
+ 00020932  0x00004f55 fetchr  0x00000039 , 0x00000001 , 0x000006e3 
+ 00020933  0x00004f56 fetch  0x00000002 , 0x000043f8 
+ 00020934  0x00004f57 icopy  0x00000005 
+ 00020935  0x00004f58 call  0x00006dca 
+ 00020936  0x00004f59 branch  0x0000531c 
+ 00020937  0x00004f5e fetch  0x00000002 , 0x000044e9 
+ 00020938  0x00004f5f bbit1  0x00000009 , 0x0000528c 
+ 00020939  0x00004f60 branch  0x00005319 
+ 00020940  0x00004f65 arg  0x00000040 , 0x00000039 
+ 00020941  0x00004f66 arg  0x00004348 , 0x00000005 
+ 00020942  0x00004f67 call  0x00007ca1 
+ 00020943  0x00004f68 setarg  0x00000000 
+ 00020944  0x00004f69 store  0x00000001 , 0x00000688 
+ 00020945  0x00004f6a copy  0x00000011 , 0x00000003 
+ 00020946  0x00004f6c copy  0x00000003 , 0x0000003f 
+ 00020947  0x00004f6d store  0x00000002 , 0x0000068c 
+ 00020948  0x00004f6e call  0x000051fa 
+ 00020949  0x00004f70 fetch  0x00000001 , 0x00000688 
+ 00020950  0x00004f71 fetcht  0x00000001 , 0x00000678 
+ 00020951  0x00004f72 increase  0x00000001 , 0x00000002 
+ 00020952  0x00004f73 iadd  0x00000002 , 0x0000003f 
+ 00020953  0x00004f74 store  0x00000001 , 0x00000688 
+ 00020954  0x00004f76 sub  0x0000003f , 0x0000001f , 0x0000003e 
+ 00020955  0x00004f77 nbranch  0x000051e6 , 0x00000002 
+ 00020956  0x00004f79 fetcht  0x00000001 , 0x00004348 
+ 00020957  0x00004f7a setarg  0x00004349 
+ 00020958  0x00004f7b iadd  0x00000002 , 0x0000003f 
+ 00020959  0x00004f7c store  0x00000002 , 0x00000691 
+ 00020960  0x00004f7d fetcht  0x00000001 , 0x00000678 
+ 00020961  0x00004f7e increase  0x00000001 , 0x00000002 
+ 00020962  0x00004f7f fetch  0x00000001 , 0x00004348 
+ 00020963  0x00004f80 iadd  0x00000002 , 0x0000003f 
+ 00020964  0x00004f81 store  0x00000001 , 0x00004348 
+ 00020965  0x00004f82 branch  0x000051ef 
+ 00020966  0x00004f84 fetcht  0x00000001 , 0x00004368 
+ 00020967  0x00004f85 setarg  0x00004369 
+ 00020968  0x00004f86 iadd  0x00000002 , 0x0000003f 
+ 00020969  0x00004f87 store  0x00000002 , 0x00000691 
+ 00020970  0x00004f88 fetcht  0x00000001 , 0x00000678 
+ 00020971  0x00004f89 increase  0x00000001 , 0x00000002 
+ 00020972  0x00004f8a fetch  0x00000001 , 0x00004368 
+ 00020973  0x00004f8b iadd  0x00000002 , 0x0000003f 
+ 00020974  0x00004f8c store  0x00000001 , 0x00004368 
+ 00020975  0x00004f8e fetch  0x00000002 , 0x00000691 
+ 00020976  0x00004f8f copy  0x0000003f , 0x00000005 
+ 00020977  0x00004f90 fetch  0x00000002 , 0x0000068c 
+ 00020978  0x00004f91 copy  0x0000003f , 0x00000003 
+ 00020979  0x00004f93 copy  0x00000002 , 0x00000039 
+ 00020980  0x00004f94 call  0x00006dca 
+ 00020981  0x00004f96 fetch  0x00000001 , 0x000006e3 
+ 00020982  0x00004f97 fetcht  0x00000001 , 0x00000688 
+ 00020983  0x00004f98 isub  0x00000002 , 0x0000003e 
+ 00020984  0x00004f99 nbranch  0x000051d2 , 0x00000005 
+ 00020985  0x00004f9a branch  0x0000531c 
+ 00020986  0x00004f9e ifetch  0x00000001 , 0x00000003 
+ 00020987  0x00004f9f store  0x00000001 , 0x00000678 
+ 00020988  0x00004fa0 ifetch  0x00000001 , 0x00000003 
+ 00020989  0x00004fa1 store  0x00000001 , 0x00000684 
+ 00020990  0x00004fa2 rtn 
+ 00020991  0x00004fa7 arg  0x00000000 , 0x00000002 
+ 00020992  0x00004fa8 arg  0x00000002 , 0x00000011 
+ 00020993  0x00004fa9 fetch  0x00000002 , 0x0000450c 
+ 00020994  0x00004faa store  0x00000002 , 0x000006a1 
+ 00020995  0x00004fab arg  0x000006a1 , 0x00000012 
+ 00020996  0x00004fac branch  0x00005323 
+ 00020997  0x00004fb1 fetch  0x00000001 , 0x000006e3 
+ 00020998  0x00004fb2 bne  0x00000001 , 0x00005319 
+ 00020999  0x00004fb3 ifetch  0x00000001 , 0x00000003 
+ 00021000  0x00004fb4 store  0x00000001 , 0x0000450a 
+ 00021001  0x00004fb5 setarg  0x00000000 
+ 00021002  0x00004fb6 store  0x00000002 , 0x0000450c 
+ 00021003  0x00004fb7 branch  0x0000531c 
+ 00021004  0x00004fbc fetch  0x00000001 , 0x000006e3 
+ 00021005  0x00004fbd bne  0x00000004 , 0x00005319 
+ 00021006  0x00004fbe fetch  0x00000002 , 0x000044e9 
+ 00021007  0x00004fbf bbit1  0x00000009 , 0x000052eb 
+ 00021008  0x00004fc0 branch  0x00005319 
+ 00021009  0x00004fc6 fetch  0x00000001 , 0x000006e3 
+ 00021010  0x00004fc7 bne  0x00000003 , 0x00005319 
+ 00021011  0x00004fc8 ifetch  0x00000001 , 0x00000003 
+ 00021012  0x00004fc9 beq  0x00000000 , 0x00005217 
+ 00021013  0x00004fca beq  0x00000001 , 0x0000521d 
+ 00021014  0x00004fcb branch  0x00005319 
+ 00021015  0x00004fce call  0x0000531c 
+ 00021016  0x00004fcf ifetcht  0x00000001 , 0x00000003 
+ 00021017  0x00004fd0 ifetch  0x00000001 , 0x00000003 
+ 00021018  0x00004fd1 beq  0x00000002 , 0x00006f0f 
+ 00021019  0x00004fd2 nsetflag  0x00000034 , 0x00000007 , 0x00000002 
+ 00021020  0x00004fd3 branch  0x00006edd 
+ 00021021  0x00004fd6 call  0x0000531c 
+ 00021022  0x00004fd7 ifetcht  0x00000001 , 0x00000003 
+ 00021023  0x00004fd8 ifetch  0x00000001 , 0x00000003 
+ 00021024  0x00004fd9 branch  0x00006ef7 , 0x00000034 
+ 00021025  0x00004fda branch  0x00006ef3 
+ 00021026  0x00004fdf fetch  0x00000001 , 0x000006e3 
+ 00021027  0x00004fe0 bne  0x00000001 , 0x00005319 
+ 00021028  0x00004fe1 ifetcht  0x00000001 , 0x00000003 
+ 00021029  0x00004fe2 call  0x00006ee6 
+ 00021030  0x00004fe3 setarg  0x00000000 
+ 00021031  0x00004fe4 nsetflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00021032  0x00004fe5 arg  0x00000001 , 0x00000011 
+ 00021033  0x00004fe6 store  0x00000002 , 0x000006a1 
+ 00021034  0x00004fe7 arg  0x000006a1 , 0x00000012 
+ 00021035  0x00004fe8 arg  0x00000000 , 0x00000002 
+ 00021036  0x00004fe9 branch  0x00005323 
+ 00021037  0x00004fee ifetch  0x00000001 , 0x00000003 
+ 00021038  0x00004fef copy  0x0000003f , 0x00000002 
+ 00021039  0x00004ff0 beq  0x00000081 , 0x0000523c 
+ 00021040  0x00004ff1 beq  0x00000082 , 0x00005240 
+ 00021041  0x00004ff2 beq  0x00000083 , 0x00005245 
+ 00021042  0x00004ff3 beq  0x00000084 , 0x00005249 
+ 00021043  0x00004ff4 store  0x00000001 , 0x000042fe 
+ 00021044  0x00004ff5 call  0x000074ff 
+ 00021045  0x00004ff6 call  0x00002ec4 
+ 00021046  0x00004ff7 fetch  0x00000001 , 0x000042fe 
+ 00021047  0x00004ff8 beq  0x00000000 , 0x0000524d 
+ 00021048  0x00004ff9 beq  0x00000001 , 0x00005250 
+ 00021049  0x00004ffa beq  0x00000002 , 0x00005252 
+ 00021050  0x00004ffb beq  0x00000004 , 0x00005254 
+ 00021051  0x00004ffc branch  0x00005319 
+ 00021052  0x00004fff storet  0x00000001 , 0x000042fe 
+ 00021053  0x00005000 call  0x00002ec0 
+ 00021054  0x00005001 jam  0x0000000d , 0x000042c7 
+ 00021055  0x00005002 branch  0x0000524e 
+ 00021056  0x00005004 storet  0x00000001 , 0x000042fe 
+ 00021057  0x00005005 call  0x00002ec0 
+ 00021058  0x00005006 jam  0x0000000d , 0x000042c7 
+ 00021059  0x00005007 jam  0x00000001 , 0x000042c5 
+ 00021060  0x00005008 branch  0x0000531c 
+ 00021061  0x0000500a storet  0x00000001 , 0x000042fe 
+ 00021062  0x0000500b call  0x00002ec0 
+ 00021063  0x0000500c jam  0x0000000d , 0x000042c7 
+ 00021064  0x0000500d branch  0x00005258 
+ 00021065  0x0000500f storet  0x00000001 , 0x000042fe 
+ 00021066  0x00005010 call  0x00002ec0 
+ 00021067  0x00005011 jam  0x0000000d , 0x000042c7 
+ 00021068  0x00005012 branch  0x00005256 
+ 00021069  0x00005016 jam  0x00000000 , 0x000042c7 
+ 00021070  0x00005018 jam  0x00000003 , 0x000042c5 
+ 00021071  0x00005019 branch  0x0000531c 
+ 00021072  0x0000501b jam  0x00000001 , 0x000042c7 
+ 00021073  0x0000501c branch  0x0000524e 
+ 00021074  0x0000501e jam  0x00000005 , 0x000042c7 
+ 00021075  0x0000501f branch  0x00005258 
+ 00021076  0x00005021 jam  0x00000005 , 0x000042c7 
+ 00021077  0x00005022 branch  0x00005256 
+ 00021078  0x00005024 jam  0x00000002 , 0x000042c5 
+ 00021079  0x00005025 branch  0x0000531c 
+ 00021080  0x00005027 jam  0x00000000 , 0x000042c5 
+ 00021081  0x00005028 branch  0x0000531c 
+ 00021082  0x0000502d arg  0x0000001f , 0x0000003f 
+ 00021083  0x0000502e arg  0x00004348 , 0x00000005 
+ 00021084  0x0000502f branch  0x00005260 
+ 00021085  0x00005034 arg  0x0000001f , 0x0000003f 
+ 00021086  0x00005035 arg  0x00004368 , 0x00000005 
+ 00021087  0x00005036 branch  0x00005260 
+ 00021088  0x00005039 fetchr  0x00000039 , 0x00000001 , 0x000006e3 
+ 00021089  0x0000503a isub  0x00000039 , 0x0000003e 
+ 00021090  0x0000503b nbranch  0x00005319 , 0x00000002 
+ 00021091  0x0000503c istorer  0x00000039 , 0x00000001 , 0x00000005 
+ 00021092  0x0000503d call  0x00006dca 
+ 00021093  0x0000503e branch  0x0000531c 
+ 00021094  0x00005043 fetch  0x00000002 , 0x000044e9 
+ 00021095  0x00005044 bbit0  0x00000009 , 0x00005319 
+ 00021096  0x00005045 fetch  0x00000001 , 0x000006e3 
+ 00021097  0x00005046 bne  0x00000008 , 0x00005319 
+ 00021098  0x00005047 ifetch  0x00000008 , 0x00000003 
+ 00021099  0x00005048 store  0x00000008 , 0x000042d3 
+ 00021100  0x00005049 jam  0x00000012 , 0x0000066f 
+ 00021101  0x0000504a call  0x00007834 
+ 00021102  0x0000504b branch  0x0000531c 
+ 00021103  0x00005050 ifetch  0x00000002 , 0x00000003 
+ 00021104  0x00005051 store  0x00000002 , 0x00004389 
+ 00021105  0x00005052 storet  0x00000001 , 0x000040a6 
+ 00021106  0x00005053 iadd  0x00000002 , 0x0000003f 
+ 00021107  0x00005054 store  0x00000002 , 0x000040a4 
+ 00021108  0x00005055 branch  0x0000531c 
+ 00021109  0x0000505a fetch  0x00000001 , 0x000042fe 
+ 00021110  0x0000505b branch  0x00005319 , 0x00000034 
+ 00021111  0x0000505c fetch  0x00000001 , 0x000042fc 
+ 00021112  0x0000505d bne  0x00000000 , 0x00005319 
+ 00021113  0x0000505e fetch  0x00000001 , 0x000042fd 
+ 00021114  0x0000505f bne  0x00000000 , 0x00005319 
+ 00021115  0x00005060 call  0x000078a9 
+ 00021116  0x00005061 branch  0x0000531c 
+ 00021117  0x00005066 fetch  0x00000001 , 0x000006e3 
+ 00021118  0x00005067 bne  0x00000005 , 0x00005319 
+ 00021119  0x00005068 ifetch  0x00000001 , 0x00000003 
+ 00021120  0x00005069 store  0x00000001 , 0x000044f9 
+ 00021121  0x0000506a ifetch  0x00000004 , 0x00000003 
+ 00021122  0x0000506b store  0x00000004 , 0x000044fa 
+ 00021123  0x0000506c fetcht  0x00000001 , 0x000044f9 
+ 00021124  0x0000506d call  0x00006ef7 
+ 00021125  0x0000506e call  0x000053ae 
+ 00021126  0x0000506f branch  0x0000531c 
+ 00021127  0x00005074 fetch  0x00000001 , 0x000006e3 
+ 00021128  0x00005075 bne  0x00000001 , 0x00005319 
+ 00021129  0x00005076 ifetch  0x00000001 , 0x00000003 
+ 00021130  0x00005077 store  0x00000001 , 0x00004141 
+ 00021131  0x00005078 branch  0x0000531c 
+ 00021132  0x0000507d ifetch  0x00000001 , 0x00000003 
+ 00021133  0x0000507e beq  0x00000001 , 0x00005295 
+ 00021134  0x0000507f fetch  0x00000001 , 0x000042fa 
+ 00021135  0x00005080 beq  0x00000003 , 0x00005293 
+ 00021136  0x00005081 beq  0x00000006 , 0x00005293 
+ 00021137  0x00005082 beq  0x00000007 , 0x00005293 
+ 00021138  0x00005083 branch  0x00005319 
+ 00021139  0x00005085 jam  0x00000001 , 0x000042fb 
+ 00021140  0x00005086 branch  0x0000531c 
+ 00021141  0x00005089 call  0x00002f2a 
+ 00021142  0x0000508a branch  0x0000531c 
+ 00021143  0x00005091 call  0x0000531c 
+ 00021144  0x00005092 call  0x00006dae 
+ 00021145  0x00005093 jam  0x00000001 , 0x00008010 
+ 00021146  0x00005094 branch  0x0000235a 
+ 00021147  0x00005099 fetch  0x00000001 , 0x000006e3 
+ 00021148  0x0000509a beq  0x00000000 , 0x00005319 
+ 00021149  0x0000509b ifetch  0x00000001 , 0x00000003 
+ 00021150  0x0000509c branch  0x000052a8 , 0x00000034 
+ 00021151  0x0000509d fetch  0x00000001 , 0x000006e3 
+ 00021152  0x0000509e bne  0x00000005 , 0x00005319 
+ 00021153  0x0000509f ifetch  0x00000004 , 0x00000003 
+ 00021154  0x000050a0 arg  0x000f4240 , 0x00000002 
+ 00021155  0x000050a1 isub  0x00000002 , 0x0000003e 
+ 00021156  0x000050a2 branch  0x00005319 , 0x00000002 
+ 00021157  0x000050a3 store  0x00000004 , 0x000042ff 
+ 00021158  0x000050a4 call  0x000029c1 
+ 00021159  0x000050a5 branch  0x0000531c 
+ 00021160  0x000050a8 call  0x000029c3 
+ 00021161  0x000050a9 branch  0x0000531c 
+ 00021162  0x000050ae arg  0x00000001 , 0x00000002 
+ 00021163  0x000050af call  0x00002cd2 
+ 00021164  0x000050b0 add  0x00000006 , 0xfffffffe , 0x00000005 
+ 00021165  0x000050b1 setarg  0x00000000 
+ 00021166  0x000050b2 istore  0x00000002 , 0x00000005 
+ 00021167  0x000050b3 branch  0x0000531c 
+ 00021168  0x000050b8 call  0x000052b9 
+ 00021169  0x000050b9 call  0x000052e7 
+ 00021170  0x000050ba setarg  0x00000000 
+ 00021171  0x000050bb istore  0x00000002 , 0x00000005 
+ 00021172  0x000050bc branch  0x00005388 
+ 00021173  0x000050c2 ifetch  0x00000001 , 0x00000003 
+ 00021174  0x000050c3 call  0x000052bd 
+ 00021175  0x000050c4 call  0x000052c4 
+ 00021176  0x000050c5 branch  0x00005388 
+ 00021177  0x000050c9 call  0x000052e4 
+ 00021178  0x000050ca setarg  0x00280002 
+ 00021179  0x000050cb istore  0x00000003 , 0x00000005 
+ 00021180  0x000050cc rtn 
+ 00021181  0x000050d0 store  0x00000001 , 0x00000670 
+ 00021182  0x000050d1 call  0x000052e4 
+ 00021183  0x000050d2 setarg  0x01280302 
+ 00021184  0x000050d3 istore  0x00000004 , 0x00000005 
+ 00021185  0x000050d4 fetch  0x00000001 , 0x00000670 
+ 00021186  0x000050d5 istore  0x00000003 , 0x00000005 
+ 00021187  0x000050d6 rtn 
+ 00021188  0x000050da call  0x00002cf6 
+ 00021189  0x000050db ifetch  0x00000001 , 0x00000003 
+ 00021190  0x000050dc and  0x0000003f , 0x0000001f , 0x00000039 
+ 00021191  0x000050dd copy  0x0000003f , 0x00000011 
+ 00021192  0x000050de isolate1  0x00000007 , 0x00000011 
+ 00021193  0x000050df setflag  0x00000001 , 0x0000000f , 0x00000002 
+ 00021194  0x000050e0 isolate1  0x00000006 , 0x00000011 
+ 00021195  0x000050e1 setflag  0x00000001 , 0x0000000e , 0x00000002 
+ 00021196  0x000050e2 istoret  0x00000002 , 0x00000005 
+ 00021197  0x000050e3 copy  0x00000039 , 0x0000003f 
+ 00021198  0x000050e4 istore  0x00000001 , 0x00000005 
+ 00021199  0x000050e5 call  0x00006ddd 
+ 00021200  0x000050e6 call  0x000052e7 
+ 00021201  0x000050e7 setarg  0x00000000 
+ 00021202  0x000050e8 istore  0x00000002 , 0x00000005 
+ 00021203  0x000050e9 and  0x00000002 , 0x000000ff , 0x00000002 
+ 00021204  0x000050ea increase  0xffffffff , 0x00000002 
+ 00021205  0x000050eb call  0x00002cd2 
+ 00021206  0x000050ec add  0x00000006 , 0x00000004 , 0x00000006 
+ 00021207  0x000050ed ifetch  0x00000001 , 0x00000006 
+ 00021208  0x000050ee bbit1  0x00000004 , 0x000052dc 
+ 00021209  0x000050ef bbit1  0x00000005 , 0x000052dc 
+ 00021210  0x000050f0 increase  0x00000001 , 0x00000002 
+ 00021211  0x000050f1 rtn 
+ 00021212  0x000050f5 call  0x00002cf6 
+ 00021213  0x000050f6 isolate1  0x00000005 , 0x00000011 
+ 00021214  0x000050f7 setflag  0x00000001 , 0x0000000f , 0x00000002 
+ 00021215  0x000050f8 istoret  0x00000002 , 0x00000005 
+ 00021216  0x000050f9 setarg  0x02290202 
+ 00021217  0x000050fa istore  0x00000008 , 0x00000005 
+ 00021218  0x000050fb increase  0xffffffff , 0x00000002 
+ 00021219  0x000050fc rtn 
+ 00021220  0x00005100 call  0x00002cf6 
+ 00021221  0x00005101 istoret  0x00000002 , 0x00000005 
+ 00021222  0x00005102 rtn 
+ 00021223  0x00005106 ifetch  0x00000001 , 0x00000003 
+ 00021224  0x00005107 copy  0x0000003f , 0x00000039 
+ 00021225  0x00005108 istore  0x00000001 , 0x00000005 
+ 00021226  0x00005109 branch  0x00006ddd 
+ 00021227  0x0000510e fetch  0x00000001 , 0x000042fc 
+ 00021228  0x0000510f bne  0x00000005 , 0x00005319 
+ 00021229  0x00005110 fetch  0x00000001 , 0x000042fe 
+ 00021230  0x00005111 beq  0x00000004 , 0x000052f7 
+ 00021231  0x00005112 beq  0x00000084 , 0x000052f1 
+ 00021232  0x00005113 branch  0x00005319 
+ 00021233  0x00005116 jam  0x00000002 , 0x000042f9 
+ 00021234  0x00005117 jam  0x00000008 , 0x000042fa 
+ 00021235  0x00005118 branch  0x000052f4 
+ 00021236  0x0000511b ifetch  0x00000004 , 0x00000003 
+ 00021237  0x0000511c store  0x00000004 , 0x000042ff 
+ 00021238  0x0000511d branch  0x0000531c 
+ 00021239  0x00005120 call  0x000052f4 
+ 00021240  0x00005121 branch  0x00002f13 
+ 00021241  0x00005126 ifetch  0x00000006 , 0x00000003 
+ 00021242  0x00005127 store  0x00000006 , 0x000042cc 
+ 00021243  0x00005128 jam  0x0000001b , 0x000001bc 
+ 00021244  0x00005129 jam  0x00000001 , 0x00004517 
+ 00021245  0x0000512a jam  0x00000001 , 0x00004343 
+ 00021246  0x0000512b branch  0x0000531c 
+ 00021247  0x00005131 fetch  0x00000001 , 0x000006e3 
+ 00021248  0x00005132 bne  0x00000002 , 0x00005319 
+ 00021249  0x00005133 ifetcht  0x00000002 , 0x00000003 
+ 00021250  0x00005134 call  0x00002a2d 
+ 00021251  0x00005135 branch  0x0000531c 
+ 00021252  0x0000513a arg  0x00000000 , 0x00000002 
+ 00021253  0x0000513b arg  0x00000002 , 0x00000011 
+ 00021254  0x0000513c arg  0x00004075 , 0x00000012 
+ 00021255  0x0000513d branch  0x00005323 
+ 00021256  0x00005142 fetch  0x00000001 , 0x000006e3 
+ 00021257  0x00005143 bne  0x00000008 , 0x00005319 
+ 00021258  0x00005144 ifetch  0x00000008 , 0x00000003 
+ 00021259  0x00005145 call  0x00002a2b 
+ 00021260  0x00005146 branch  0x0000531c 
+ 00021261  0x0000514b ifetchr  0x00000011 , 0x00000001 , 0x00000003 
+ 00021262  0x0000514c ifetchr  0x00000012 , 0x00000002 , 0x00000003 
+ 00021263  0x0000514d arg  0x00000000 , 0x00000002 
+ 00021264  0x0000514e branch  0x00005323 
+ 00021265  0x00005153 fetchr  0x00000039 , 0x00000001 , 0x000006e3 
+ 00021266  0x00005154 increase  0xfffffffe , 0x00000039 
+ 00021267  0x00005155 ifetch  0x00000002 , 0x00000003 
+ 00021268  0x00005156 copy  0x0000003f , 0x00000005 
+ 00021269  0x00005157 call  0x00006dca 
+ 00021270  0x00005158 branch  0x0000531c 
+ 00021271  0x0000515e jam  0x00000000 , 0x00004094 
+ 00021272  0x0000515f branch  0x0000531c 
+ 00021273  0x00005165 arg  0x00000001 , 0x00000002 
+ 00021274  0x00005166 arg  0x00000000 , 0x00000011 
+ 00021275  0x00005167 branch  0x00005323 
+ 00021276  0x0000516b arg  0x00000000 , 0x00000002 
+ 00021277  0x0000516c arg  0x00000000 , 0x00000011 
+ 00021278  0x0000516d branch  0x00005323 
+ 00021279  0x00005172 jam  0x00000002 , 0x000006e2 
+ 00021280  0x00005173 branch  0x0000533c 
+ 00021281  0x00005179 jam  0x00000005 , 0x000006e2 
+ 00021282  0x0000517a branch  0x0000533c 
+ 00021283  0x00005183 fetch  0x00000001 , 0x000006e2 
+ 00021284  0x00005184 copy  0x0000003f , 0x00000013 
+ 00021285  0x00005185 jam  0x00000006 , 0x000006e2 
+ 00021286  0x00005186 setarg  0x00000002 
+ 00021287  0x00005187 iadd  0x00000011 , 0x0000003f 
+ 00021288  0x00005188 call  0x00005397 
+ 00021289  0x00005189 copy  0x00000013 , 0x0000003f 
+ 00021290  0x0000518a istore  0x00000001 , 0x00000003 
+ 00021291  0x0000518b istoret  0x00000001 , 0x00000003 
+ 00021292  0x0000518c copy  0x00000011 , 0x00000039 
+ 00021293  0x0000518d copy  0x00000012 , 0x00000006 
+ 00021294  0x0000518e call  0x00006dc4 
+ 00021295  0x0000518f branch  0x000053a1 
+ 00021296  0x00005197 jam  0x00000008 , 0x000006e2 
+ 00021297  0x00005198 add  0x00000039 , 0x00000002 , 0x0000003f 
+ 00021298  0x00005199 call  0x00005397 
+ 00021299  0x0000519a fetch  0x00000002 , 0x0000070d 
+ 00021300  0x0000519b istore  0x00000002 , 0x00000003 
+ 00021301  0x0000519c fetch  0x00000002 , 0x0000070b 
+ 00021302  0x0000519d icopy  0x00000006 
+ 00021303  0x0000519e call  0x00006db1 
+ 00021304  0x0000519f copy  0x00000006 , 0x0000003f 
+ 00021305  0x000051a0 store  0x00000002 , 0x0000070b 
+ 00021306  0x000051a1 branch  0x000053a1 
+ 00021307  0x000051a6 jam  0x00000009 , 0x000006e2 
+ 00021308  0x000051a8 setarg  0x00000000 
+ 00021309  0x000051a9 call  0x00005397 
+ 00021310  0x000051aa branch  0x000053a1 
+ 00021311  0x000051af jam  0x0000000a , 0x000006e2 
+ 00021312  0x000051b0 setarg  0x00000001 
+ 00021313  0x000051b1 call  0x00005397 
+ 00021314  0x000051b3 call  0x00005349 
+ 00021315  0x000051b5 fetch  0x00000002 , 0x000044e9 
+ 00021316  0x000051b6 arg  0x00000009 , 0x00000007 
+ 00021317  0x000051b7 qisolate1  0x0000003f 
+ 00021318  0x000051b8 setflag  0x00000001 , 0x00000005 , 0x00000002 
+ 00021319  0x000051bc istoret  0x00000001 , 0x00000003 
+ 00021320  0x000051bd branch  0x000053a1 
+ 00021321  0x000051c2 arg  0x00000000 , 0x00000002 
+ 00021322  0x000051c3 fetch  0x00000001 , 0x00004388 
+ 00021323  0x000051c4 arg  0x00000000 , 0x00000007 
+ 00021324  0x000051c5 qisolate1  0x0000003f 
+ 00021325  0x000051c6 setflag  0x00000001 , 0x00000002 , 0x00000002 
+ 00021326  0x000051c7 rtn 
+ 00021327  0x000051cc jam  0x0000000d , 0x000006e2 
+ 00021328  0x000051cd fetch  0x00000001 , 0x000043fa 
+ 00021329  0x000051ce mul32  0x0000003f , 0x00000022 , 0x0000003f 
+ 00021330  0x000051cf icopy  0x00000039 
+ 00021331  0x000051d0 call  0x00005397 
+ 00021332  0x000051d1 fetch  0x00000002 , 0x000043f8 
+ 00021333  0x000051d2 icopy  0x00000006 
+ 00021334  0x000051d3 call  0x00006db1 
+ 00021335  0x000051d4 branch  0x000053a1 
+ 00021336  0x000051d8 jam  0x0000000e , 0x000006e2 
+ 00021337  0x000051d9 setarg  0x00000004 
+ 00021338  0x000051da call  0x00005397 
+ 00021339  0x000051db fetch  0x00000004 , 0x000005fa 
+ 00021340  0x000051dc istore  0x00000004 , 0x00000003 
+ 00021341  0x000051dd branch  0x000053a1 
+ 00021342  0x000051e1 jam  0x0000000f , 0x000006e2 
+ 00021343  0x000051e2 fetch  0x00000002 , 0x00008112 
+ 00021344  0x000051e3 arg  0x00000040 , 0x00000002 
+ 00021345  0x000051e4 call  0x00007db0 
+ 00021346  0x000051e5 copy  0x0000003f , 0x00000011 
+ 00021347  0x000051e6 copy  0x0000003f , 0x00000039 
+ 00021348  0x000051e7 call  0x00006d96 
+ 00021349  0x000051e8 arg  0x000006a1 , 0x00000005 
+ 00021350  0x000051e9 call  0x00006dca 
+ 00021351  0x000051ea copy  0x00000011 , 0x0000003f 
+ 00021352  0x000051eb copy  0x00000011 , 0x00000039 
+ 00021353  0x000051ec call  0x00005397 
+ 00021354  0x000051ed arg  0x000006a1 , 0x00000006 
+ 00021355  0x000051ee call  0x00006db1 
+ 00021356  0x000051ef branch  0x000053a1 
+ 00021357  0x000051f4 jam  0x00000010 , 0x000006e2 
+ 00021358  0x000051f5 branch  0x0000533c 
+ 00021359  0x000051fa jam  0x00000011 , 0x000006e2 
+ 00021360  0x000051fb setarg  0x00000004 
+ 00021361  0x000051fc call  0x00005397 
+ 00021362  0x000051fd fetch  0x00000004 , 0x000042ff 
+ 00021363  0x000051fe istore  0x00000004 , 0x00000003 
+ 00021364  0x000051ff branch  0x000053a1 
+ 00021365  0x00005204 arg  0x00000180 , 0x00000011 
+ 00021366  0x00005205 branch  0x00005379 
+ 00021367  0x00005208 arg  0x00000080 , 0x00000011 
+ 00021368  0x00005209 branch  0x00005379 
+ 00021369  0x0000520d jam  0x00000014 , 0x000006e2 
+ 00021370  0x0000520e setarg  0x00000002 
+ 00021371  0x0000520f call  0x00005397 
+ 00021372  0x00005210 copy  0x00000011 , 0x0000003f 
+ 00021373  0x00005211 istore  0x00000002 , 0x00000003 
+ 00021374  0x00005212 branch  0x000053a1 
+ 00021375  0x00005217 arg  0x00000000 , 0x00000013 
+ 00021376  0x00005218 branch  0x00005382 
+ 00021377  0x0000521b arg  0x00000001 , 0x00000013 
+ 00021378  0x0000521e jam  0x00000015 , 0x000006e2 
+ 00021379  0x0000521f setarg  0x00000001 
+ 00021380  0x00005220 call  0x00005397 
+ 00021381  0x00005221 copy  0x00000013 , 0x0000003f 
+ 00021382  0x00005222 istore  0x00000001 , 0x00000003 
+ 00021383  0x00005223 branch  0x000053a1 
+ 00021384  0x0000522a storet  0x00000002 , 0x00000678 
+ 00021385  0x0000522b jam  0x00000029 , 0x000006e2 
+ 00021386  0x0000522c setarg  0x00000002 
+ 00021387  0x0000522d call  0x00005397 
+ 00021388  0x0000522e fetcht  0x00000002 , 0x00000678 
+ 00021389  0x0000522f istoret  0x00000002 , 0x00000003 
+ 00021390  0x00005230 branch  0x000053a1 
+ 00021391  0x00005235 jam  0x0000002b , 0x000006e2 
+ 00021392  0x00005236 branch  0x0000533c 
+ 00021393  0x0000523b jam  0x00000040 , 0x000006e2 
+ 00021394  0x0000523c setarg  0x00000002 
+ 00021395  0x0000523d call  0x00005397 
+ 00021396  0x0000523e fetch  0x00000002 , 0x00004075 
+ 00021397  0x0000523f istore  0x00000002 , 0x00000003 
+ 00021398  0x00005240 branch  0x000053a1 
+ 00021399  0x0000524d jam  0x00000002 , 0x000006e1 
+ 00021400  0x0000524e store  0x00000001 , 0x000006e3 
+ 00021401  0x0000524f storet  0x00000008 , 0x00000678 
+ 00021402  0x00005250 bpatch  0x00000066 , 0x0000400c 
+ 00021403  0x00005251 call  0x000053a3 
+ 00021404  0x00005252 fetcht  0x00000008 , 0x00000678 
+ 00021405  0x00005253 call  0x00006da2 
+ 00021406  0x00005254 fetch  0x00000003 , 0x000006e1 
+ 00021407  0x00005255 istore  0x00000003 , 0x00000003 
+ 00021408  0x00005256 rtn 
+ 00021409  0x00005259 bpatch  0x00000067 , 0x0000400c 
+ 00021410  0x0000525a branch  0x00006da4 
+ 00021411  0x0000525d call  0x000053ac 
+ 00021412  0x0000525e rtn  0x00000001 
+ 00021413  0x00005260 call  0x000053aa 
+ 00021414  0x00005261 fetch  0x00000004 , 0x000044fa 
+ 00021415  0x00005262 rshift2  0x0000003f , 0x0000003f 
+ 00021416  0x00005263 rtn  0x00000034 
+ 00021417  0x00005264 branch  0x00007c91 
+ 00021418  0x00005267 fetcht  0x00000001 , 0x000044f9 
+ 00021419  0x00005268 branch  0x00006ef7 
+ 00021420  0x0000526b fetcht  0x00000001 , 0x000044f9 
+ 00021421  0x0000526c branch  0x00006f02 
+ 00021422  0x0000526f fetcht  0x00000001 , 0x000044f9 
+ 00021423  0x00005270 branch  0x00006ef3 
+ 00021424  0x0000527c storer  0x00000011 , 0x00000002 , 0x0000070b 
+ 00021425  0x0000527d storer  0x00000012 , 0x00000002 , 0x00000709 
+ 00021426  0x0000527e fetch  0x00000002 , 0x00004398 
+ 00021427  0x0000527f store  0x00000002 , 0x0000070d 
+ 00021428  0x00005280 call  0x000051a8 
+ 00021429  0x00005281 rtn  0x00000028 
+ 00021430  0x00005284 fetcht  0x00000002 , 0x00000709 
+ 00021431  0x00005285 fetch  0x00000001 , 0x0000450e 
+ 00021432  0x00005286 call  0x00007db0 
+ 00021433  0x00005287 copy  0x0000003f , 0x00000039 
+ 00021434  0x00005288 copy  0x00000002 , 0x0000003f 
+ 00021435  0x00005289 isub  0x00000039 , 0x0000003f 
+ 00021436  0x0000528a store  0x00000002 , 0x00000709 
+ 00021437  0x0000528b call  0x00005330 
+ 00021438  0x0000528c fetch  0x00000002 , 0x00000709 
+ 00021439  0x0000528d rtn  0x00000034 
+ 00021440  0x0000528e branch  0x000053b6 
+ 00021441  0x00005294 rtn 
+ 00021442  0x00005297 fetch  0x00000001 , 0x0000450a 
+ 00021443  0x00005298 rtn  0x00000034 
+ 00021444  0x00005299 fetch  0x00000001 , 0x0000450b 
+ 00021445  0x0000529a rtn  0x00000034 
+ 00021446  0x0000529b increase  0xffffffff , 0x0000003f 
+ 00021447  0x0000529c store  0x00000001 , 0x0000450b 
+ 00021448  0x0000529d nrtn  0x00000034 
+ 00021449  0x0000529e jam  0x00000005 , 0x0000450b 
+ 00021450  0x0000529f call  0x00006f82 
+ 00021451  0x000052a0 call  0x00006fb0 
+ 00021452  0x000052a1 div  0x0000003f , 0x0000000a 
+ 00021453  0x000052a2 call  0x00007d5f 
+ 00021454  0x000052a3 div  0x0000003f , 0x00000064 
+ 00021455  0x000052a4 call  0x00007d5f 
+ 00021456  0x000052a5 remainder  0x00000002 
+ 00021457  0x000052a6 store  0x00000001 , 0x0000450c 
+ 00021458  0x000052a7 storet  0x00000001 , 0x0000450d 
+ 00021459  0x000052a8 rtn 
+ 00021460  0x000052af arg  0x00000008 , 0x00000007 
+ 00021461  0x000052b0 branch  0x000053dc 
+ 00021462  0x000052b3 arg  0x00000008 , 0x00000007 
+ 00021463  0x000052b4 branch  0x000053d8 
+ 00021464  0x000052b7 fetch  0x00000002 , 0x0000450f 
+ 00021465  0x000052b8 qset0  0x0000003f 
+ 00021466  0x000052b9 store  0x00000002 , 0x0000450f 
+ 00021467  0x000052ba rtn 
+ 00021468  0x000052bd fetch  0x00000002 , 0x0000450f 
+ 00021469  0x000052be qset1  0x0000003f 
+ 00021470  0x000052bf store  0x00000002 , 0x0000450f 
+ 00021471  0x000052c0 rtn 
+ 00021472  0x000052c6 call  0x00007396 
+ 00021473  0x000052c7 call  0x00005410 
+ 00021474  0x000052c8 call  0x00005949 
+ 00021475  0x000052c9 rtn  0x0000002b 
+ 00021476  0x000052ca call  0x00005747 
+ 00021477  0x000052cb call  0x00005f37 
+ 00021478  0x000052cc call  0x000053ec 
+ 00021479  0x000052cd call  0x000059ed 
+ 00021480  0x000052cf fetch  0x00000002 , 0x000044e9 
+ 00021481  0x000052d0 bbit1  0x0000000c , 0x00005c1a 
+ 00021482  0x000052d1 call  0x00005eb6 
+ 00021483  0x000052d2 branch  0x0000548c 
+ 00021484  0x000052d6 bpatch  0x00000068 , 0x0000400d 
+ 00021485  0x000052d7 setarg  0x00006235 
+ 00021486  0x000052d8 store  0x00000002 , 0x000045f8 
+ 00021487  0x000052d9 setarg  0x0000622b 
+ 00021488  0x000052da store  0x00000002 , 0x000045fa 
+ 00021489  0x000052db setarg  0x00006109 
+ 00021490  0x000052dc store  0x00000002 , 0x000043e9 
+ 00021491  0x000052dd setarg  0x00006096 
+ 00021492  0x000052de store  0x00000002 , 0x000045f2 
+ 00021493  0x000052df setarg  0x000060c1 
+ 00021494  0x000052e0 store  0x00000002 , 0x000045f4 
+ 00021495  0x000052e1 setarg  0x0000550c 
+ 00021496  0x000052e2 store  0x00000002 , 0x000045f6 
+ 00021497  0x000052e3 setarg  0x00005b23 
+ 00021498  0x000052e4 store  0x00000002 , 0x000043d9 
+ 00021499  0x000052e5 setarg  0x00005507 
+ 00021500  0x000052e6 store  0x00000002 , 0x000043d7 
+ 00021501  0x000052e7 setarg  0x00005ac1 
+ 00021502  0x000052e8 store  0x00000002 , 0x000043dd 
+ 00021503  0x000052e9 setarg  0x00005e5d 
+ 00021504  0x000052ea store  0x00000002 , 0x000043db 
+ 00021505  0x000052eb setarg  0x000054d5 
+ 00021506  0x000052ec store  0x00000002 , 0x000043d5 
+ 00021507  0x000052ed setarg  0x00005b08 
+ 00021508  0x000052ee store  0x00000002 , 0x000043df 
+ 00021509  0x000052ef setarg  0x00005b85 
+ 00021510  0x000052f0 store  0x00000002 , 0x000043e3 
+ 00021511  0x000052f1 setarg  0x000055fa 
+ 00021512  0x000052f2 store  0x00000002 , 0x000043e7 
+ 00021513  0x000052f3 setarg  0x000054c5 
+ 00021514  0x000052f4 store  0x00000002 , 0x000043d3 
+ 00021515  0x000052f5 setarg  0x00006221 
+ 00021516  0x000052f6 store  0x00000002 , 0x000043e1 
+ 00021517  0x000052f7 setarg  0x00006228 
+ 00021518  0x000052f8 store  0x00000002 , 0x000043e5 
+ 00021519  0x000052f9 rtn 
+ 00021520  0x000052fd rtn  0x0000002b 
+ 00021521  0x000052fe call  0x000035f0 
+ 00021522  0x000052ff call  0x0000325b 
+ 00021523  0x00005300 call  0x000062aa 
+ 00021524  0x00005301 call  0x00005589 
+ 00021525  0x00005302 call  0x000055c6 
+ 00021526  0x00005303 call  0x0000544a 
+ 00021527  0x00005304 call  0x00006177 
+ 00021528  0x00005305 call  0x00002a41 
+ 00021529  0x00005307 bpatch  0x00000069 , 0x0000400d 
+ 00021530  0x00005308 fetch  0x00000008 , 0x00004713 
+ 00021531  0x00005309 bbit1  0x00000013 , 0x00005d60 
+ 00021532  0x0000530a bbit1  0x00000012 , 0x00005d6e 
+ 00021533  0x0000530b bbit1  0x00000014 , 0x00005da6 
+ 00021534  0x0000530c rtn 
+ 00021535  0x0000530f jam  0x00000010 , 0x00004099 
+ 00021536  0x00005310 fetch  0x00000008 , 0x00004713 
+ 00021537  0x00005311 rtnbit1  0x0000000c 
+ 00021538  0x00005312 jam  0x00000018 , 0x00004099 
+ 00021539  0x00005313 rtn 
+ 00021540  0x00005316 call  0x00003281 
+ 00021541  0x00005317 fetch  0x00000008 , 0x00004713 
+ 00021542  0x00005318 rtnbit0  0x0000003d 
+ 00021543  0x00005319 branch  0x00003284 
+ 00021544  0x0000531c bpatch  0x0000006a , 0x0000400d 
+ 00021545  0x0000531d fetch  0x00000008 , 0x00004713 
+ 00021546  0x0000531e isolate1  0x00000005 , 0x0000003f 
+ 00021547  0x0000531f call  0x00005f08 , 0x00000001 
+ 00021548  0x00005322 fetch  0x00000002 , 0x0000463a 
+ 00021549  0x00005323 store  0x00000002 , 0x000045d6 
+ 00021550  0x00005325 fetch  0x00000001 , 0x0000463d 
+ 00021551  0x00005326 store  0x00000002 , 0x000045dc 
+ 00021552  0x00005328 fetch  0x00000005 , 0x0000463f 
+ 00021553  0x00005329 store  0x00000005 , 0x00004628 
+ 00021554  0x0000532b fetch  0x00000001 , 0x0000463e 
+ 00021555  0x0000532c store  0x00000001 , 0x000045d1 
+ 00021556  0x0000532e fetch  0x00000001 , 0x000045b9 
+ 00021557  0x0000532f ncall  0x0000326b , 0x00000034 
+ 00021558  0x00005331 bpatch  0x0000006b , 0x0000400d 
+ 00021559  0x00005332 call  0x0000541f 
+ 00021560  0x00005333 call  0x00005424 
+ 00021561  0x00005334 call  0x00005fe4 
+ 00021562  0x00005335 branch  0x00003287 
+ 00021563  0x00005338 setarg  0x00009000 
+ 00021564  0x00005339 store  0x00000002 , 0x000042f7 
+ 00021565  0x0000533a jam  0x00000003 , 0x000040c1 
+ 00021566  0x0000533b jam  0x00000008 , 0x000040a6 
+ 00021567  0x0000533c jam  0x00000000 , 0x0000497f 
+ 00021568  0x0000533d jam  0x00000000 , 0x00004980 
+ 00021569  0x0000533e setarg  0x00000200 
+ 00021570  0x0000533f store  0x00000002 , 0x000040a4 
+ 00021571  0x00005340 jam  0x00000017 , 0x000042e1 
+ 00021572  0x00005341 jam  0x00000017 , 0x000042e3 
+ 00021573  0x00005343 setarg  0x000047c3 
+ 00021574  0x00005344 store  0x00000002 , 0x0000433f 
+ 00021575  0x00005345 setarg  0x00000010 
+ 00021576  0x00005346 store  0x00000002 , 0x00004341 
+ 00021577  0x00005347 branch  0x00005539 
+ 00021578  0x0000534a bpatch  0x0000006c , 0x0000400d 
+ 00021579  0x0000534b call  0x0000543b 
+ 00021580  0x0000534c jam  0x00000000 , 0x0000487a 
+ 00021581  0x0000534e setarg  0x00000a77 
+ 00021582  0x0000534f store  0x00000002 , 0x000043f5 
+ 00021583  0x00005350 setsect  0x00000000 , 0x00001224 
+ 00021584  0x00005351 setsect  0x00000001 , 0x00004000 
+ 00021585  0x00005352 setsect  0x00000002 , 0x00000000 
+ 00021586  0x00005353 istore  0x00000005 , 0x00000005 
+ 00021587  0x00005356 fetch  0x00000008 , 0x00004713 
+ 00021588  0x00005357 bbit0  0x0000001b , 0x00005458 
+ 00021589  0x00005358 setarg  0x00000006 
+ 00021590  0x00005359 store  0x00000002 , 0x000042d3 
+ 00021591  0x0000535a store  0x00000002 , 0x000042d5 
+ 00021592  0x0000535c call  0x00005481 
+ 00021593  0x0000535d fetch  0x00000008 , 0x00004713 
+ 00021594  0x0000535e bbit0  0x00000018 , 0x0000545c 
+ 00021595  0x0000535f call  0x00005476 
+ 00021596  0x00005361 fetch  0x00000003 , 0x00004608 
+ 00021597  0x00005362 store  0x00000003 , 0x0000475d 
+ 00021598  0x00005363 fetch  0x00000001 , 0x00004666 
+ 00021599  0x00005364 store  0x00000001 , 0x000049a1 
+ 00021600  0x00005365 fetch  0x00000003 , 0x000042de 
+ 00021601  0x00005366 store  0x00000003 , 0x00004797 
+ 00021602  0x00005367 setarg  0x00000000 
+ 00021603  0x00005368 store  0x00000007 , 0x00004846 
+ 00021604  0x00005369 fetch  0x00000001 , 0x000044eb 
+ 00021605  0x0000536a store  0x00000001 , 0x0000497c 
+ 00021606  0x0000536b store  0x00000001 , 0x0000497d 
+ 00021607  0x0000536c call  0x00002969 
+ 00021608  0x0000536e bpatch  0x0000006d , 0x0000400d 
+ 00021609  0x0000536f fetch  0x00000001 , 0x0000464f 
+ 00021610  0x00005370 store  0x00000001 , 0x00004958 
+ 00021611  0x00005371 fetch  0x00000001 , 0x0000464e 
+ 00021612  0x00005372 rtneq  0x000000ff 
+ 00021613  0x00005373 fetcht  0x00000001 , 0x0000464e 
+ 00021614  0x00005374 call  0x000055b5 
+ 00021615  0x00005375 fetcht  0x00000001 , 0x0000464e 
+ 00021616  0x00005376 call  0x00006ee6 
+ 00021617  0x00005377 call  0x00005473 , 0x00000001 
+ 00021618  0x00005378 branch  0x000055b1 
+ 00021619  0x0000537a fetch  0x00000001 , 0x00004650 
+ 00021620  0x0000537b store  0x00000001 , 0x00004958 
+ 00021621  0x0000537c rtn 
+ 00021622  0x0000537f fetch  0x00000003 , 0x00004743 
+ 00021623  0x00005380 store  0x00000003 , 0x00004608 
+ 00021624  0x00005381 fetch  0x00000003 , 0x00004746 
+ 00021625  0x00005382 store  0x00000003 , 0x0000460b 
+ 00021626  0x00005383 fetch  0x00000001 , 0x00004749 
+ 00021627  0x00005384 store  0x00000001 , 0x00004621 
+ 00021628  0x00005385 fetch  0x00000004 , 0x00004755 
+ 00021629  0x00005386 store  0x00000004 , 0x00004751 
+ 00021630  0x00005388 setarg  0x00100c0c 
+ 00021631  0x00005389 store  0x00000003 , 0x000045a7 
+ 00021632  0x0000538a rtn 
+ 00021633  0x0000538d fetch  0x00000003 , 0x0000474a 
+ 00021634  0x0000538e store  0x00000003 , 0x00004608 
+ 00021635  0x0000538f fetch  0x00000003 , 0x0000474d 
+ 00021636  0x00005390 store  0x00000003 , 0x0000460b 
+ 00021637  0x00005391 fetch  0x00000001 , 0x00004750 
+ 00021638  0x00005392 store  0x00000001 , 0x00004621 
+ 00021639  0x00005393 fetch  0x00000004 , 0x00004759 
+ 00021640  0x00005394 store  0x00000004 , 0x00004751 
+ 00021641  0x00005396 setarg  0x001c1919 
+ 00021642  0x00005397 store  0x00000003 , 0x000045a7 
+ 00021643  0x00005398 rtn 
+ 00021644  0x000053a5 bpatch  0x0000006e , 0x0000400d 
+ 00021645  0x000053a6 fetch  0x00000008 , 0x00004713 
+ 00021646  0x000053a7 bbit1  0x0000003e , 0x0000602d 
+ 00021647  0x000053a8 fetch  0x00000001 , 0x00004666 
+ 00021648  0x000053a9 beq  0x00000000 , 0x0000601c 
+ 00021649  0x000053ab call  0x00005aa8 
+ 00021650  0x000053ac fetch  0x00000001 , 0x00004666 
+ 00021651  0x000053ad beq  0x00000001 , 0x00005496 
+ 00021652  0x000053ae beq  0x00000002 , 0x0000549b 
+ 00021653  0x000053af rtn 
+ 00021654  0x000053b1 fetch  0x00000006 , 0x00004668 
+ 00021655  0x000053b2 fetcht  0x00000006 , 0x000046e6 
+ 00021656  0x000053b3 isub  0x00000002 , 0x0000003e 
+ 00021657  0x000053b4 branch  0x00005a94 , 0x00000005 
+ 00021658  0x000053b5 branch  0x000054a0 
+ 00021659  0x000053b8 fetch  0x00000006 , 0x00004675 
+ 00021660  0x000053b9 fetcht  0x00000006 , 0x000046e6 
+ 00021661  0x000053ba isub  0x00000002 , 0x0000003e 
+ 00021662  0x000053bb branch  0x00005a94 , 0x00000005 
+ 00021663  0x000053bc branch  0x000054a0 
+ 00021664  0x000053bf bpatch  0x0000006f , 0x0000400d 
+ 00021665  0x000053c0 call  0x0000619f 
+ 00021666  0x000053c1 arg  0x00004667 , 0x00000011 
+ 00021667  0x000053c2 fetch  0x00000001 , 0x00004666 
+ 00021668  0x000053c3 increase  0xffffffff , 0x0000003f 
+ 00021669  0x000053c4 mul32  0x0000003f , 0x0000001d , 0x0000003f 
+ 00021670  0x000053c5 iadd  0x00000011 , 0x00000011 
+ 00021671  0x000053c6 ifetch  0x00000001 , 0x00000011 
+ 00021672  0x000053c7 store  0x00000001 , 0x000043f3 
+ 00021673  0x000053c9 fetch  0x00000001 , 0x000043f3 
+ 00021674  0x000053ca beq  0x00000034 , 0x000054b6 
+ 00021675  0x000053cb branch  0x00005a94 
+ 00021676  0x000053ce bpatch  0x00000070 , 0x0000400e 
+ 00021677  0x000053cf disable  0x00000028 
+ 00021678  0x000053d0 fetch  0x00000008 , 0x00004713 
+ 00021679  0x000053d1 bbit0  0x0000000b , 0x000054b3 
+ 00021680  0x000053d2 fetch  0x00000001 , 0x00008132 
+ 00021681  0x000053d3 bbit1  0x00000004 , 0x000054b3 
+ 00021682  0x000053d4 enable  0x00000028 
+ 00021683  0x000053d6 fetch  0x00000001 , 0x00004780 
+ 00021684  0x000053d7 store  0x00000001 , 0x0000477f 
+ 00021685  0x000053d8 rtn 
+ 00021686  0x000053db jam  0x00000001 , 0x00004795 
+ 00021687  0x000053dc fetcht  0x00000001 , 0x0000471e 
+ 00021688  0x000053dd fetch  0x00000001 , 0x0000478f 
+ 00021689  0x000053de beq  0x000000ff , 0x000054bb 
+ 00021690  0x000053df fetcht  0x00000001 , 0x0000463c 
+ 00021691  0x000053e1 storet  0x00000001 , 0x00004845 
+ 00021692  0x000053e2 call  0x0000432d 
+ 00021693  0x000053e3 fetch  0x00000003 , 0x0000479d 
+ 00021694  0x000053e4 store  0x00000003 , 0x0000434d 
+ 00021695  0x000053e5 call  0x00005b6b 
+ 00021696  0x000053e6 setarg  0x00000004 
+ 00021697  0x000053e7 istore  0x00000001 , 0x00000006 
+ 00021698  0x000053e8 arg  0x00004369 , 0x00000006 
+ 00021699  0x000053e9 call  0x00005b72 
+ 00021700  0x000053ea branch  0x00007870 
+ 00021701  0x000053ef bmark1  0x00000026 , 0x00004308 
+ 00021702  0x000053f0 fetch  0x00000001 , 0x00004956 
+ 00021703  0x000053f1 branch  0x00004308 , 0x00000034 
+ 00021704  0x000053f2 fetch  0x00000001 , 0x000047c2 
+ 00021705  0x000053f3 beq  0x00000001 , 0x00004308 
+ 00021706  0x000053f4 fetch  0x00000001 , 0x00004857 
+ 00021707  0x000053f5 nbranch  0x00004308 , 0x00000034 
+ 00021708  0x000053f6 branch  0x0000430a 
+ 00021709  0x00005400 bpatch  0x00000071 , 0x0000400e 
+ 00021710  0x00005401 setarg  0x00000006 
+ 00021711  0x00005402 call  0x000069e5 
+ 00021712  0x00005403 bbit1  0x00000003 , 0x000054d3 
+ 00021713  0x00005404 call  0x000059da 
+ 00021714  0x00005405 call  0x000059ed 
+ 00021715  0x00005407 call  0x000054dc 
+ 00021716  0x00005408 branch  0x00004327 
+ 00021717  0x0000540b bpatch  0x00000072 , 0x0000400e 
+ 00021718  0x0000540c call  0x0000739a 
+ 00021719  0x0000540d call  0x000056a9 
+ 00021720  0x0000540e call  0x000054dc 
+ 00021721  0x0000540f call  0x00005d9e 
+ 00021722  0x00005410 fetcht  0x00000001 , 0x00004659 
+ 00021723  0x00005411 branch  0x00006ed3 
+ 00021724  0x00005415 bpatch  0x00000073 , 0x0000400e 
+ 00021725  0x00005416 call  0x00005a92 
+ 00021726  0x00005417 call  0x00007de2 
+ 00021727  0x00005418 call  0x0000611a 
+ 00021728  0x00005419 call  0x0000550c 
+ 00021729  0x0000541a call  0x000054f9 
+ 00021730  0x0000541b fetcht  0x00000001 , 0x0000465b 
+ 00021731  0x0000541c call  0x000055b5 
+ 00021732  0x0000541d call  0x000055b9 
+ 00021733  0x0000541e call  0x000061fd 
+ 00021734  0x0000541f call  0x000054f2 
+ 00021735  0x00005420 branch  0x000054e8 
+ 00021736  0x00005423 fetch  0x00000008 , 0x00004713 
+ 00021737  0x00005424 rtnbit0  0x0000003c 
+ 00021738  0x00005426 fetcht  0x00000001 , 0x0000464a 
+ 00021739  0x00005427 call  0x00006ed3 
+ 00021740  0x00005428 fetcht  0x00000001 , 0x0000464b 
+ 00021741  0x00005429 call  0x00006ed3 
+ 00021742  0x0000542a fetcht  0x00000001 , 0x0000464a 
+ 00021743  0x0000542b call  0x000055b1 
+ 00021744  0x0000542c fetcht  0x00000001 , 0x0000464b 
+ 00021745  0x0000542d branch  0x000055b1 
+ 00021746  0x00005430 fetch  0x00000008 , 0x00004713 
+ 00021747  0x00005431 rtnbit0  0x00000015 
+ 00021748  0x00005432 fetch  0x00000001 , 0x00004407 
+ 00021749  0x00005433 rtnne  0x00000002 
+ 00021750  0x00005434 fetch  0x00000001 , 0x00004635 
+ 00021751  0x00005435 arg  0x000000c0 , 0x00000002 
+ 00021752  0x00005436 branch  0x00006f21 
+ 00021753  0x0000543b arg  0x00008070 , 0x00000006 
+ 00021754  0x0000543c arg  0x00000010 , 0x00000039 
+ 00021755  0x0000543e ifetch  0x00000001 , 0x00000006 
+ 00021756  0x0000543f nbranch  0x00005500 , 0x00000034 
+ 00021757  0x00005440 setarg  0x00000080 
+ 00021758  0x00005441 add  0x00000006 , 0xffffffff , 0x00000005 
+ 00021759  0x00005442 istore  0x00000001 , 0x00000005 
+ 00021760  0x00005444 loop  0x000054fb 
+ 00021761  0x00005445 arg  0x000080dc , 0x0000003f 
+ 00021762  0x00005446 isub  0x00000006 , 0x0000003e 
+ 00021763  0x00005447 rtn  0x00000005 
+ 00021764  0x00005449 arg  0x00000008 , 0x00000039 
+ 00021765  0x0000544a arg  0x000080d4 , 0x00000006 
+ 00021766  0x0000544b branch  0x000054fb 
+ 00021767  0x0000544e rtnmark1  0x00000026 
+ 00021768  0x0000544f call  0x0000550c 
+ 00021769  0x00005450 fetch  0x00000001 , 0x00000015 
+ 00021770  0x00005451 nrtn  0x00000034 
+ 00021771  0x00005452 branch  0x00006ed3 
+ 00021772  0x00005455 bpatch  0x00000074 , 0x0000400e 
+ 00021773  0x00005456 fetcht  0x00000001 , 0x0000464a 
+ 00021774  0x00005457 call  0x00006edd 
+ 00021775  0x00005458 fetcht  0x00000001 , 0x0000464b 
+ 00021776  0x00005459 call  0x00006edd 
+ 00021777  0x0000545b call  0x0000561c 
+ 00021778  0x0000545c fetch  0x00000001 , 0x0000464c 
+ 00021779  0x0000545d call  0x00005943 
+ 00021780  0x0000545e call  0x000069dc 
+ 00021781  0x00005460 fetcht  0x00000001 , 0x00004644 
+ 00021782  0x00005461 call  0x00006eb6 
+ 00021783  0x00005462 fetcht  0x00000001 , 0x00004646 
+ 00021784  0x00005463 call  0x00006eb6 
+ 00021785  0x00005464 fetcht  0x00000001 , 0x00004645 
+ 00021786  0x00005465 call  0x00006eb6 
+ 00021787  0x00005467 fetcht  0x00000001 , 0x00004647 
+ 00021788  0x00005468 call  0x00006eb6 
+ 00021789  0x00005469 fetcht  0x00000001 , 0x00004648 
+ 00021790  0x0000546a call  0x00006eb6 
+ 00021791  0x0000546b fetcht  0x00000001 , 0x00004649 
+ 00021792  0x0000546c call  0x00006eb6 
+ 00021793  0x0000546d fetcht  0x00000001 , 0x00004655 
+ 00021794  0x0000546e call  0x00006eb6 
+ 00021795  0x00005470 fetcht  0x00000001 , 0x00004656 
+ 00021796  0x00005471 call  0x00006eb6 
+ 00021797  0x00005473 fetcht  0x00000001 , 0x0000464a 
+ 00021798  0x00005474 call  0x00006eb2 
+ 00021799  0x00005475 fetcht  0x00000001 , 0x0000464b 
+ 00021800  0x00005476 call  0x00006eb2 
+ 00021801  0x00005477 fetcht  0x00000001 , 0x00004652 
+ 00021802  0x00005478 call  0x00006eb2 
+ 00021803  0x00005479 fetcht  0x00000001 , 0x00004653 
+ 00021804  0x0000547a call  0x00006eb2 
+ 00021805  0x0000547b fetcht  0x00000001 , 0x00004659 
+ 00021806  0x0000547c branch  0x00006eb6 
+ 00021807  0x00005481 fetch  0x00000002 , 0x000044e9 
+ 00021808  0x00005482 rtnbit0  0x00000009 
+ 00021809  0x00005483 copy  0x00000011 , 0x0000003f 
+ 00021810  0x00005484 nbranch  0x000029d5 , 0x00000034 
+ 00021811  0x00005485 branch  0x000029da 
+ 00021812  0x0000548a bpatch  0x00000075 , 0x0000400e 
+ 00021813  0x0000548b fetch  0x00000001 , 0x00004407 
+ 00021814  0x0000548c rtnne  0x00000002 
+ 00021815  0x0000548d fetcht  0x00000001 , 0x00004635 
+ 00021816  0x0000548e branch  0x00006f0f 
+ 00021817  0x00005491 fetch  0x00000008 , 0x00004713 
+ 00021818  0x00005492 rtnbit0  0x00000015 
+ 00021819  0x00005493 jam  0x00000001 , 0x00004636 
+ 00021820  0x00005494 rtn 
+ 00021821  0x00005497 bpatch  0x00000076 , 0x0000400e 
+ 00021822  0x00005498 fetch  0x00000008 , 0x00004713 
+ 00021823  0x00005499 rtnbit0  0x00000015 
+ 00021824  0x0000549a call  0x00005534 
+ 00021825  0x0000549b fetch  0x00000001 , 0x00004407 
+ 00021826  0x0000549c beq  0x00000002 , 0x00005545 
+ 00021827  0x0000549d jam  0x00000003 , 0x00004636 
+ 00021828  0x0000549e branch  0x00005547 
+ 00021829  0x000054a1 jam  0x00000002 , 0x00004636 
+ 00021830  0x000054a2 branch  0x00005547 
+ 00021831  0x000054a5 bpatch  0x00000077 , 0x0000400e 
+ 00021832  0x000054a6 call  0x00006f82 
+ 00021833  0x000054a7 call  0x00006fb0 
+ 00021834  0x000054a8 store  0x00000002 , 0x00004633 
+ 00021835  0x000054a9 fetch  0x00000001 , 0x00004407 
+ 00021836  0x000054aa bne  0x00000002 , 0x00005553 
+ 00021837  0x000054ab fetcht  0x00000002 , 0x00004633 
+ 00021838  0x000054ac mul32  0x00000002 , 0x00000008 , 0x0000003f 
+ 00021839  0x000054ad div  0x0000003f , 0x0000000a 
+ 00021840  0x000054ae call  0x00007d5f 
+ 00021841  0x000054af iadd  0x00000002 , 0x0000003f 
+ 00021842  0x000054b0 store  0x00000002 , 0x00004633 
+ 00021843  0x000054b2 arg  0x0000462d , 0x00000011 
+ 00021844  0x000054b3 call  0x00005563 
+ 00021845  0x000054b4 fetch  0x00000001 , 0x0000440c 
+ 00021846  0x000054b5 bbit1  0x00000001 , 0x000054cd 
+ 00021847  0x000054b6 bbit0  0x00000000 , 0x0000555c 
+ 00021848  0x000054b7 jam  0x00000001 , 0x00004637 
+ 00021849  0x000054b8 branch  0x0000555a 
+ 00021850  0x000054bb arg  0x00000004 , 0x00000007 
+ 00021851  0x000054bc branch  0x00005f00 
+ 00021852  0x000054be arg  0x00000004 , 0x00000007 
+ 00021853  0x000054bf call  0x00005f04 
+ 00021854  0x000054c0 jam  0x00000001 , 0x00004709 
+ 00021855  0x000054c1 fetch  0x00000001 , 0x00004637 
+ 00021856  0x000054c2 rtn  0x00000034 
+ 00021857  0x000054c3 jam  0x00000000 , 0x00004637 
+ 00021858  0x000054c4 branch  0x0000616e 
+ 00021859  0x000054c8 bpatch  0x00000078 , 0x0000400f 
+ 00021860  0x000054c9 ifetch  0x00000008 , 0x00000011 
+ 00021861  0x000054ca store  0x00000008 , 0x00000670 
+ 00021862  0x000054cb fetch  0x00000001 , 0x00004636 
+ 00021863  0x000054cc beq  0x00000000 , 0x0000556a 
+ 00021864  0x000054cd beq  0x00000002 , 0x0000556a 
+ 00021865  0x000054ce beq  0x00000003 , 0x00005588 
+ 00021866  0x000054d0 call  0x00006ff3 
+ 00021867  0x000054d1 call  0x00006feb 
+ 00021868  0x000054d2 fetch  0x00000002 , 0x00000676 
+ 00021869  0x000054d3 fetcht  0x00000002 , 0x00000672 
+ 00021870  0x000054d4 isub  0x00000002 , 0x0000003e 
+ 00021871  0x000054d5 ncall  0x00006fef , 0x00000002 
+ 00021872  0x000054d6 fetcht  0x00000002 , 0x00000674 
+ 00021873  0x000054d7 isub  0x00000002 , 0x0000003e 
+ 00021874  0x000054d8 ncall  0x00006fe7 , 0x00000002 
+ 00021875  0x000054da fetch  0x00000002 , 0x00000676 
+ 00021876  0x000054db fetcht  0x00000002 , 0x00000670 
+ 00021877  0x000054dc isub  0x00000002 , 0x0000003e 
+ 00021878  0x000054dd branch  0x00005584 , 0x00000002 
+ 00021879  0x000054de fetcht  0x00000002 , 0x00000672 
+ 00021880  0x000054df isub  0x00000002 , 0x0000003f 
+ 00021881  0x000054e0 nbranch  0x00005586 , 0x00000002 
+ 00021882  0x000054e1 branch  0x00005586 , 0x00000034 
+ 00021883  0x000054e2 mul32  0x0000003f , 0x00000064 , 0x00000011 
+ 00021884  0x000054e3 fetch  0x00000002 , 0x00000670 
+ 00021885  0x000054e4 fetcht  0x00000002 , 0x00000672 
+ 00021886  0x000054e5 isub  0x00000002 , 0x00000002 
+ 00021887  0x000054e6 copy  0x00000011 , 0x0000003f 
+ 00021888  0x000054e7 idiv  0x00000002 
+ 00021889  0x000054e8 call  0x00007d5f 
+ 00021890  0x000054e9 store  0x00000001 , 0x000047bd 
+ 00021891  0x000054ea rtn 
+ 00021892  0x000054ed jam  0x00000064 , 0x000047bd 
+ 00021893  0x000054ee rtn 
+ 00021894  0x000054f0 jam  0x00000000 , 0x000047bd 
+ 00021895  0x000054f1 rtn 
+ 00021896  0x000054f4 branch  0x0000556a 
+ 00021897  0x000054fb fetcht  0x00000001 , 0x00004427 
+ 00021898  0x000054fc call  0x00006ef7 
+ 00021899  0x000054fe fetcht  0x00000001 , 0x00004644 
+ 00021900  0x000054ff call  0x000055b5 
+ 00021901  0x00005500 fetcht  0x00000001 , 0x00004646 
+ 00021902  0x00005501 call  0x000055b5 
+ 00021903  0x00005502 fetcht  0x00000001 , 0x00004645 
+ 00021904  0x00005503 call  0x000055b5 
+ 00021905  0x00005504 fetcht  0x00000001 , 0x00004647 
+ 00021906  0x00005505 call  0x000055b5 
+ 00021907  0x00005506 fetcht  0x00000001 , 0x00004648 
+ 00021908  0x00005507 call  0x000055b5 
+ 00021909  0x00005508 fetcht  0x00000001 , 0x00004649 
+ 00021910  0x00005509 call  0x000055b5 
+ 00021911  0x0000550b fetcht  0x00000001 , 0x00004654 
+ 00021912  0x0000550c call  0x000055b5 
+ 00021913  0x0000550e fetcht  0x00000001 , 0x00004655 
+ 00021914  0x0000550f call  0x000055b5 
+ 00021915  0x00005511 fetcht  0x00000001 , 0x00004656 
+ 00021916  0x00005512 call  0x000055b5 
+ 00021917  0x00005514 fetcht  0x00000001 , 0x0000464a 
+ 00021918  0x00005515 call  0x000055b5 
+ 00021919  0x00005517 fetcht  0x00000001 , 0x0000464b 
+ 00021920  0x00005518 call  0x000055b5 
+ 00021921  0x0000551a fetcht  0x00000001 , 0x00004652 
+ 00021922  0x0000551b call  0x000055b5 
+ 00021923  0x0000551c fetcht  0x00000001 , 0x00004653 
+ 00021924  0x0000551d call  0x000055b5 
+ 00021925  0x0000551f fetcht  0x00000001 , 0x00004659 
+ 00021926  0x00005520 call  0x000055b5 
+ 00021927  0x00005522 fetcht  0x00000001 , 0x0000465a 
+ 00021928  0x00005523 call  0x000055b5 
+ 00021929  0x00005525 fetcht  0x00000001 , 0x0000464e 
+ 00021930  0x00005526 branch  0x000055b5 
+ 00021931  0x0000552a sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00021932  0x0000552b rtn  0x00000005 
+ 00021933  0x0000552c and  0x00000002 , 0x0000007f , 0x00000007 
+ 00021934  0x0000552d fetch  0x00000004 , 0x0000811c 
+ 00021935  0x0000552e qisolate1  0x0000003f 
+ 00021936  0x0000552f branch  0x000055b5 , 0x00000001 
+ 00021937  0x00005531 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00021938  0x00005532 rtn  0x00000005 
+ 00021939  0x00005533 set1  0x00000007 , 0x00000002 
+ 00021940  0x00005534 branch  0x00006edd 
+ 00021941  0x00005537 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00021942  0x00005538 rtn  0x00000005 
+ 00021943  0x00005539 set0  0x00000007 , 0x00000002 
+ 00021944  0x0000553a branch  0x00006edd 
+ 00021945  0x0000553d fetch  0x00000003 , 0x0000473c 
+ 00021946  0x0000553e store  0x00000003 , 0x00000670 
+ 00021947  0x0000553f arg  0x0000000d , 0x00000039 
+ 00021948  0x00005540 arg  0x00000000 , 0x00000002 
+ 00021949  0x00005542 fetch  0x00000003 , 0x00000670 
+ 00021950  0x00005543 isolate1  0x00000000 , 0x0000003f 
+ 00021951  0x00005544 call  0x00006f0f , 0x00000001 
+ 00021952  0x00005545 fetch  0x00000003 , 0x00000670 
+ 00021953  0x00005546 lshift  0x0000003f , 0x0000003f 
+ 00021954  0x00005547 store  0x00000003 , 0x00000670 
+ 00021955  0x00005548 increase  0x00000001 , 0x00000002 
+ 00021956  0x00005549 loop  0x000055bd 
+ 00021957  0x0000554a rtn 
+ 00021958  0x00005551 bpatch  0x00000079 , 0x0000400f 
+ 00021959  0x00005552 fetch  0x00000008 , 0x0000498d 
+ 00021960  0x00005553 rtn  0x00000034 
+ 00021961  0x00005554 fetch  0x00000001 , 0x0000498c 
+ 00021962  0x00005555 copy  0x0000003f , 0x00000011 
+ 00021963  0x00005556 sub  0x0000003f , 0x0000000b , 0x0000003e 
+ 00021964  0x00005557 nbranch  0x000055dd , 0x00000002 
+ 00021965  0x00005559 call  0x000055d6 
+ 00021966  0x0000555b arg  0x000047a9 , 0x00000005 
+ 00021967  0x0000555c call  0x000055d3 
+ 00021968  0x0000555e arg  0x0000436b , 0x00000005 
+ 00021969  0x0000555f call  0x000055d3 
+ 00021970  0x00005561 arg  0x0000426c , 0x00000005 
+ 00021971  0x00005563 arg  0x0000498d , 0x00000006 
+ 00021972  0x00005564 copy  0x00000011 , 0x00000039 
+ 00021973  0x00005565 branch  0x00007cda 
+ 00021974  0x00005568 arg  0x000047a9 , 0x00000005 
+ 00021975  0x00005569 call  0x000055db 
+ 00021976  0x0000556b arg  0x0000436b , 0x00000005 
+ 00021977  0x0000556c call  0x000055db 
+ 00021978  0x0000556e arg  0x0000426c , 0x00000005 
+ 00021979  0x00005570 arg  0x0000000b , 0x00000039 
+ 00021980  0x00005571 branch  0x00007ca1 
+ 00021981  0x00005574 call  0x000055f3 
+ 00021982  0x00005576 fetch  0x00000001 , 0x0000498c 
+ 00021983  0x00005577 increase  0x00000001 , 0x0000003f 
+ 00021984  0x00005578 store  0x00000001 , 0x000047a0 
+ 00021985  0x00005579 jam  0x00000009 , 0x000047a1 
+ 00021986  0x0000557a arg  0x0000498d , 0x00000006 
+ 00021987  0x0000557b arg  0x000047a2 , 0x00000005 
+ 00021988  0x0000557c copy  0x00000011 , 0x00000039 
+ 00021989  0x0000557d call  0x00007cda 
+ 00021990  0x0000557f fetch  0x00000001 , 0x0000498c 
+ 00021991  0x00005580 increase  0x00000001 , 0x0000003f 
+ 00021992  0x00005581 store  0x00000001 , 0x00004369 
+ 00021993  0x00005582 jam  0x00000009 , 0x0000436a 
+ 00021994  0x00005583 arg  0x0000498d , 0x00000006 
+ 00021995  0x00005584 arg  0x0000436b , 0x00000005 
+ 00021996  0x00005585 copy  0x00000011 , 0x00000039 
+ 00021997  0x00005586 call  0x00007cda 
+ 00021998  0x00005588 arg  0x0000498c , 0x00000006 
+ 00021999  0x00005589 arg  0x0000426b , 0x00000005 
+ 00022000  0x0000558a copy  0x00000011 , 0x00000039 
+ 00022001  0x0000558b increase  0x00000001 , 0x00000039 
+ 00022002  0x0000558c branch  0x00007cda 
+ 00022003  0x0000558f arg  0x000047a0 , 0x00000005 
+ 00022004  0x00005590 arg  0x00000014 , 0x00000039 
+ 00022005  0x00005591 branch  0x00007ca1 
+ 00022006  0x00005598 call  0x000055fb 
+ 00022007  0x00005599 jam  0x00000073 , 0x000043f5 
+ 00022008  0x0000559b call  0x000055fa 
+ 00022009  0x0000559c branch  0x000069e0 
+ 00022010  0x000055a0 branch  0x00006bc6 
+ 00022011  0x000055a3 fetch  0x00000001 , 0x0000464c 
+ 00022012  0x000055a4 arg  0x00000021 , 0x00000002 
+ 00022013  0x000055a5 call  0x00006f21 
+ 00022014  0x000055a6 fetch  0x00000001 , 0x0000464d 
+ 00022015  0x000055a7 arg  0x00000023 , 0x00000002 
+ 00022016  0x000055a8 branch  0x00006f21 
+ 00022017  0x000055ae bpatch  0x0000007a , 0x0000400f 
+ 00022018  0x000055af disable  0x00000028 
+ 00022019  0x000055b0 setarg  0x00000000 
+ 00022020  0x000055b1 store  0x00000006 , 0x00004847 
+ 00022021  0x000055b2 call  0x000059f6 
+ 00022022  0x000055b3 setarg  0x00000089 
+ 00022023  0x000055b4 call  0x000069e4 
+ 00022024  0x000055b5 call  0x00005747 
+ 00022025  0x000055b6 call  0x00005612 
+ 00022026  0x000055b7 call  0x00005617 
+ 00022027  0x000055b8 call  0x000057a6 
+ 00022028  0x000055b9 fetch  0x00000001 , 0x00004846 
+ 00022029  0x000055ba and_into  0x0000001f , 0x0000003f 
+ 00022030  0x000055bb store  0x00000001 , 0x00004846 
+ 00022031  0x000055bc nbranch  0x00005f37 , 0x00000028 
+ 00022032  0x000055bd call  0x00005f26 
+ 00022033  0x000055be branch  0x00005c0b 
+ 00022034  0x000055c3 fetch  0x00000001 , 0x00004856 
+ 00022035  0x000055c4 rtn  0x00000034 
+ 00022036  0x000055c5 store  0x00000001 , 0x0000484b 
+ 00022037  0x000055c6 jam  0x00000000 , 0x00004856 
+ 00022038  0x000055c7 branch  0x00007dba 
+ 00022039  0x000055ca fetch  0x00000001 , 0x00004852 
+ 00022040  0x000055cb rtn  0x00000034 
+ 00022041  0x000055cc store  0x00000001 , 0x0000484c 
+ 00022042  0x000055cd jam  0x00000000 , 0x00004852 
+ 00022043  0x000055ce branch  0x00007dba 
+ 00022044  0x000055d1 call  0x00005629 
+ 00022045  0x000055d2 call  0x00005665 
+ 00022046  0x000055d3 fetch  0x00000001 , 0x00004850 
+ 00022047  0x000055d4 fetcht  0x00000001 , 0x0000484f 
+ 00022048  0x000055d5 store  0x00000001 , 0x0000484f 
+ 00022049  0x000055d6 isub  0x00000002 , 0x0000003e 
+ 00022050  0x000055d7 nbranch  0x0000430c , 0x00000005 
+ 00022051  0x000055d8 fetch  0x00000001 , 0x00004854 
+ 00022052  0x000055d9 fetcht  0x00000001 , 0x00004853 
+ 00022053  0x000055da store  0x00000001 , 0x00004853 
+ 00022054  0x000055db isub  0x00000002 , 0x0000003e 
+ 00022055  0x000055dc nbranch  0x0000430c , 0x00000005 
+ 00022056  0x000055dd rtn 
+ 00022057  0x000055df fetch  0x00000001 , 0x00004652 
+ 00022058  0x000055e0 rtneq  0x000000ff 
+ 00022059  0x000055e1 arg  0x00000000 , 0x00000011 
+ 00022060  0x000055e2 fetcht  0x00000001 , 0x00004652 
+ 00022061  0x000055e3 call  0x00006ee6 
+ 00022062  0x000055e4 setflag  0x00000001 , 0x00000000 , 0x00000011 
+ 00022063  0x000055e5 fetcht  0x00000001 , 0x00004653 
+ 00022064  0x000055e6 call  0x00006ee6 
+ 00022065  0x000055e7 setflag  0x00000001 , 0x00000001 , 0x00000011 
+ 00022066  0x000055e8 copy  0x00000011 , 0x0000003f 
+ 00022067  0x000055e9 store  0x00000001 , 0x00004850 
+ 00022068  0x000055ea beq  0x00000001 , 0x00005639 
+ 00022069  0x000055eb beq  0x00000002 , 0x0000563d 
+ 00022070  0x000055ec fetch  0x00000001 , 0x00004851 
+ 00022071  0x000055ed bbit1  0x00000007 , 0x00005649 
+ 00022072  0x000055ee rtn 
+ 00022073  0x000055f1 fetch  0x00000001 , 0x0000484f 
+ 00022074  0x000055f2 beq  0x00000000 , 0x00005641 
+ 00022075  0x000055f3 beq  0x00000003 , 0x00005643 
+ 00022076  0x000055f4 rtn 
+ 00022077  0x000055f6 fetch  0x00000001 , 0x0000484f 
+ 00022078  0x000055f7 beq  0x00000000 , 0x00005645 
+ 00022079  0x000055f8 beq  0x00000003 , 0x00005647 
+ 00022080  0x000055f9 rtn 
+ 00022081  0x000055fb jam  0x00000082 , 0x00004851 
+ 00022082  0x000055fc rtn 
+ 00022083  0x000055fe jam  0x00000081 , 0x00004851 
+ 00022084  0x000055ff rtn 
+ 00022085  0x00005601 jam  0x00000080 , 0x00004851 
+ 00022086  0x00005602 rtn 
+ 00022087  0x00005604 jam  0x00000083 , 0x00004851 
+ 00022088  0x00005605 rtn 
+ 00022089  0x00005607 fetch  0x00000001 , 0x00004851 
+ 00022090  0x00005608 set0  0x00000007 , 0x0000003f 
+ 00022091  0x00005609 store  0x00000001 , 0x00004851 
+ 00022092  0x0000560a beq  0x00000000 , 0x00005651 
+ 00022093  0x0000560b beq  0x00000001 , 0x00005654 
+ 00022094  0x0000560c beq  0x00000002 , 0x00005657 
+ 00022095  0x0000560d beq  0x00000003 , 0x0000565a 
+ 00022096  0x0000560e rtn 
+ 00022097  0x00005610 fetch  0x00000001 , 0x00004850 
+ 00022098  0x00005611 beq  0x00000003 , 0x0000565d 
+ 00022099  0x00005612 rtn 
+ 00022100  0x00005614 fetch  0x00000001 , 0x00004850 
+ 00022101  0x00005615 beq  0x00000000 , 0x0000565d 
+ 00022102  0x00005616 rtn 
+ 00022103  0x00005618 fetch  0x00000001 , 0x00004850 
+ 00022104  0x00005619 beq  0x00000003 , 0x00005661 
+ 00022105  0x0000561a rtn 
+ 00022106  0x0000561c fetch  0x00000001 , 0x00004850 
+ 00022107  0x0000561d beq  0x00000000 , 0x00005661 
+ 00022108  0x0000561e rtn 
+ 00022109  0x00005620 fetch  0x00000001 , 0x00004852 
+ 00022110  0x00005621 increase  0x00000001 , 0x0000003f 
+ 00022111  0x00005622 store  0x00000001 , 0x00004852 
+ 00022112  0x00005623 rtn 
+ 00022113  0x00005625 fetch  0x00000001 , 0x00004852 
+ 00022114  0x00005626 increase  0xffffffff , 0x0000003f 
+ 00022115  0x00005627 store  0x00000001 , 0x00004852 
+ 00022116  0x00005628 rtn 
+ 00022117  0x0000562c fetch  0x00000001 , 0x0000464a 
+ 00022118  0x0000562d rtneq  0x000000ff 
+ 00022119  0x0000562e arg  0x00000000 , 0x00000011 
+ 00022120  0x0000562f fetcht  0x00000001 , 0x0000464a 
+ 00022121  0x00005630 call  0x00006ee6 
+ 00022122  0x00005631 setflag  0x00000001 , 0x00000000 , 0x00000011 
+ 00022123  0x00005632 fetcht  0x00000001 , 0x0000464b 
+ 00022124  0x00005633 call  0x00006ee6 
+ 00022125  0x00005634 setflag  0x00000001 , 0x00000001 , 0x00000011 
+ 00022126  0x00005635 copy  0x00000011 , 0x0000003f 
+ 00022127  0x00005636 store  0x00000001 , 0x00004854 
+ 00022128  0x00005637 beq  0x00000001 , 0x00005675 
+ 00022129  0x00005638 beq  0x00000002 , 0x00005679 
+ 00022130  0x00005639 fetch  0x00000001 , 0x00004855 
+ 00022131  0x0000563a bbit1  0x00000007 , 0x00005685 
+ 00022132  0x0000563b rtn 
+ 00022133  0x0000563e fetch  0x00000001 , 0x00004853 
+ 00022134  0x0000563f beq  0x00000000 , 0x0000567d 
+ 00022135  0x00005640 beq  0x00000003 , 0x0000567f 
+ 00022136  0x00005641 rtn 
+ 00022137  0x00005643 fetch  0x00000001 , 0x00004853 
+ 00022138  0x00005644 beq  0x00000000 , 0x00005681 
+ 00022139  0x00005645 beq  0x00000003 , 0x00005683 
+ 00022140  0x00005646 rtn 
+ 00022141  0x00005648 jam  0x00000082 , 0x00004855 
+ 00022142  0x00005649 rtn 
+ 00022143  0x0000564b jam  0x00000081 , 0x00004855 
+ 00022144  0x0000564c rtn 
+ 00022145  0x0000564e jam  0x00000080 , 0x00004855 
+ 00022146  0x0000564f rtn 
+ 00022147  0x00005651 jam  0x00000083 , 0x00004855 
+ 00022148  0x00005652 rtn 
+ 00022149  0x00005654 fetch  0x00000001 , 0x00004855 
+ 00022150  0x00005655 set0  0x00000007 , 0x0000003f 
+ 00022151  0x00005656 store  0x00000001 , 0x00004855 
+ 00022152  0x00005657 beq  0x00000000 , 0x0000568d 
+ 00022153  0x00005658 beq  0x00000001 , 0x00005690 
+ 00022154  0x00005659 beq  0x00000002 , 0x00005693 
+ 00022155  0x0000565a beq  0x00000003 , 0x00005696 
+ 00022156  0x0000565b rtn 
+ 00022157  0x0000565d fetch  0x00000001 , 0x00004854 
+ 00022158  0x0000565e beq  0x00000003 , 0x00005699 
+ 00022159  0x0000565f rtn 
+ 00022160  0x00005661 fetch  0x00000001 , 0x00004854 
+ 00022161  0x00005662 beq  0x00000000 , 0x00005699 
+ 00022162  0x00005663 rtn 
+ 00022163  0x00005665 fetch  0x00000001 , 0x00004854 
+ 00022164  0x00005666 beq  0x00000003 , 0x0000569d 
+ 00022165  0x00005667 rtn 
+ 00022166  0x00005669 fetch  0x00000001 , 0x00004854 
+ 00022167  0x0000566a beq  0x00000000 , 0x0000569d 
+ 00022168  0x0000566b rtn 
+ 00022169  0x0000566d fetch  0x00000001 , 0x00004856 
+ 00022170  0x0000566e increase  0x00000001 , 0x0000003f 
+ 00022171  0x0000566f store  0x00000001 , 0x00004856 
+ 00022172  0x00005670 rtn 
+ 00022173  0x00005672 fetch  0x00000001 , 0x00004856 
+ 00022174  0x00005673 increase  0xffffffff , 0x0000003f 
+ 00022175  0x00005674 store  0x00000001 , 0x00004856 
+ 00022176  0x00005675 rtn 
+ 00022177  0x00005679 fetcht  0x00000001 , 0x0000464a 
+ 00022178  0x0000567a call  0x00006eb2 
+ 00022179  0x0000567b fetcht  0x00000001 , 0x0000464b 
+ 00022180  0x0000567c call  0x00006eb2 
+ 00022181  0x0000567d fetcht  0x00000001 , 0x00004652 
+ 00022182  0x0000567e call  0x00006eb2 
+ 00022183  0x0000567f fetcht  0x00000001 , 0x00004653 
+ 00022184  0x00005680 branch  0x00006eb2 
+ 00022185  0x00005683 fetcht  0x00000001 , 0x0000464a 
+ 00022186  0x00005684 call  0x000055ab 
+ 00022187  0x00005685 fetcht  0x00000001 , 0x0000464b 
+ 00022188  0x00005686 call  0x000055ab 
+ 00022189  0x00005687 fetcht  0x00000001 , 0x00004652 
+ 00022190  0x00005688 call  0x000055ab 
+ 00022191  0x00005689 fetcht  0x00000001 , 0x00004653 
+ 00022192  0x0000568a branch  0x000055ab 
+ 00022193  0x0000568d fetch  0x00000002 , 0x0000484b 
+ 00022194  0x0000568e rtn  0x00000034 
+ 00022195  0x0000568f jam  0x00000001 , 0x00004857 
+ 00022196  0x00005690 jam  0x0000000a , 0x00004858 
+ 00022197  0x00005691 rtn 
+ 00022198  0x00005694 arg  0x00004858 , 0x00000013 
+ 00022199  0x00005695 arg  0x000056b9 , 0x00000012 
+ 00022200  0x00005696 branch  0x000042e0 
+ 00022201  0x00005698 jam  0x00000000 , 0x00004857 
+ 00022202  0x00005699 rtn 
+ 00022203  0x000056a2 fetch  0x00000001 , 0x00004649 
+ 00022204  0x000056a3 rtneq  0x000000ff 
+ 00022205  0x000056a4 arg  0x00000000 , 0x00000011 
+ 00022206  0x000056a5 jam  0x00000005 , 0x00004977 
+ 00022207  0x000056a6 fetcht  0x00000001 , 0x00004649 
+ 00022208  0x000056a7 call  0x000056c8 
+ 00022209  0x000056a9 store  0x00000001 , 0x00004974 
+ 00022210  0x000056aa fetch  0x00000001 , 0x00004654 
+ 00022211  0x000056ab beq  0x000000ff , 0x000056d8 
+ 00022212  0x000056ac call  0x000058df 
+ 00022213  0x000056ae copy  0x00000011 , 0x0000003f 
+ 00022214  0x000056af bbit1  0x00000005 , 0x000056e0 
+ 00022215  0x000056b0 branch  0x000056e7 
+ 00022216  0x000056b3 fetch  0x00000008 , 0x00004713 
+ 00022217  0x000056b4 bbit1  0x0000002b , 0x000056de 
+ 00022218  0x000056b5 fetch  0x00000001 , 0x00004974 
+ 00022219  0x000056b6 copy  0x0000003f , 0x00000013 
+ 00022220  0x000056b7 fetch  0x00000001 , 0x00004654 
+ 00022221  0x000056b8 beq  0x000000ff , 0x00005931 
+ 00022222  0x000056ba fetch  0x00000001 , 0x0000497b 
+ 00022223  0x000056bb nbranch  0x000056db , 0x00000034 
+ 00022224  0x000056bd call  0x00006ee6 
+ 00022225  0x000056be fetcht  0x00000001 , 0x00004654 
+ 00022226  0x000056bf branch  0x000056de , 0x00000001 
+ 00022227  0x000056c0 fetcht  0x00000001 , 0x00004654 
+ 00022228  0x000056c1 call  0x00006ef7 
+ 00022229  0x000056c2 fetcht  0x00000001 , 0x00004649 
+ 00022230  0x000056c3 fetch  0x00000001 , 0x00004974 
+ 00022231  0x000056c4 branch  0x00005925 
+ 00022232  0x000056c7 fetcht  0x00000001 , 0x00004649 
+ 00022233  0x000056c8 call  0x000055b5 
+ 00022234  0x000056c9 branch  0x000056c5 
+ 00022235  0x000056cc jam  0x00000000 , 0x0000487a 
+ 00022236  0x000056cd jam  0x00000000 , 0x00004974 
+ 00022237  0x000056ce rtn 
+ 00022238  0x000056d1 fetch  0x00000001 , 0x00004974 
+ 00022239  0x000056d2 branch  0x00005925 
+ 00022240  0x000056d5 fetch  0x00000001 , 0x0000487a 
+ 00022241  0x000056d6 rtneq  0x00000001 
+ 00022242  0x000056d7 jam  0x00000001 , 0x0000487a 
+ 00022243  0x000056d8 fetch  0x00000008 , 0x00004713 
+ 00022244  0x000056d9 rtnbit1  0x00000028 
+ 00022245  0x000056da rtnbit1  0x00000036 
+ 00022246  0x000056db branch  0x000056f7 
+ 00022247  0x000056de fetch  0x00000001 , 0x0000487a 
+ 00022248  0x000056df rtneq  0x00000000 
+ 00022249  0x000056e0 jam  0x00000000 , 0x0000487a 
+ 00022250  0x000056e1 fetch  0x00000008 , 0x00004713 
+ 00022251  0x000056e2 bbit1  0x00000028 , 0x000056ee 
+ 00022252  0x000056e3 bbit1  0x00000036 , 0x000056ee 
+ 00022253  0x000056e4 rtn 
+ 00022254  0x000056e6 fetch  0x00000001 , 0x0000487b 
+ 00022255  0x000056e7 nbranch  0x000056f2 , 0x00000034 
+ 00022256  0x000056e8 fetch  0x00000001 , 0x0000497d 
+ 00022257  0x000056e9 ncall  0x000056f7 , 0x00000034 
+ 00022258  0x000056eb jam  0x00000000 , 0x0000487b 
+ 00022259  0x000056ec fetch  0x00000001 , 0x000044eb 
+ 00022260  0x000056ed store  0x00000001 , 0x0000497d 
+ 00022261  0x000056ee store  0x00000001 , 0x0000497c 
+ 00022262  0x000056ef rtn 
+ 00022263  0x000056f2 bpatch  0x0000007b , 0x0000400f 
+ 00022264  0x000056f3 call  0x00005728 
+ 00022265  0x000056f4 rtn  0x00000028 
+ 00022266  0x000056f5 fetch  0x00000001 , 0x00004690 
+ 00022267  0x000056f7 copy  0x0000003f , 0x00000002 
+ 00022268  0x000056f8 fetch  0x00000008 , 0x00004713 
+ 00022269  0x000056f9 bbit1  0x00000017 , 0x00005704 
+ 00022270  0x000056fa copy  0x00000002 , 0x0000003f 
+ 00022271  0x000056fc increase  0x00000001 , 0x0000003f 
+ 00022272  0x000056fd and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00022273  0x000056ff store  0x00000001 , 0x00004690 
+ 00022274  0x00005700 call  0x00005744 
+ 00022275  0x00005701 branch  0x00005cac 
+ 00022276  0x00005707 fetch  0x00000001 , 0x0000498a 
+ 00022277  0x00005708 nbranch  0x00005721 , 0x00000034 
+ 00022278  0x0000570a fetch  0x00000008 , 0x00004713 
+ 00022279  0x0000570b bbit1  0x0000001c , 0x00005715 
+ 00022280  0x0000570c copy  0x00000002 , 0x0000003f 
+ 00022281  0x0000570d rtneq  0x00000001 
+ 00022282  0x0000570f beq  0x00000000 , 0x00005711 
+ 00022283  0x00005710 beq  0x00000002 , 0x0000570f 
+ 00022284  0x00005711 rtn 
+ 00022285  0x00005714 setarg  0x00000002 
+ 00022286  0x00005715 branch  0x00005701 
+ 00022287  0x00005717 setarg  0x00000000 
+ 00022288  0x00005718 branch  0x00005701 
+ 00022289  0x0000571a setarg  0x00000001 
+ 00022290  0x0000571b branch  0x00005701 
+ 00022291  0x0000571d setarg  0x00000003 
+ 00022292  0x0000571e branch  0x00005701 
+ 00022293  0x00005721 copy  0x00000002 , 0x0000003f 
+ 00022294  0x00005722 rtneq  0x00000001 
+ 00022295  0x00005723 beq  0x00000000 , 0x00005711 
+ 00022296  0x00005724 beq  0x00000002 , 0x00005713 
+ 00022297  0x00005725 beq  0x00000003 , 0x0000570f 
+ 00022298  0x00005726 rtn 
+ 00022299  0x00005728 copy  0x00000002 , 0x0000003f 
+ 00022300  0x00005729 rtneq  0x00000002 
+ 00022301  0x0000572a beq  0x00000000 , 0x00005713 
+ 00022302  0x0000572b beq  0x00000001 , 0x0000570f 
+ 00022303  0x0000572c beq  0x00000003 , 0x0000570d 
+ 00022304  0x0000572d rtn 
+ 00022305  0x00005731 fetch  0x00000008 , 0x00004713 
+ 00022306  0x00005732 bbit1  0x0000001c , 0x0000571b 
+ 00022307  0x00005733 copy  0x00000002 , 0x0000003f 
+ 00022308  0x00005734 rtneq  0x00000002 
+ 00022309  0x00005736 beq  0x00000000 , 0x0000570d 
+ 00022310  0x00005737 beq  0x00000001 , 0x0000570f 
+ 00022311  0x00005738 rtn 
+ 00022312  0x0000573e disable  0x00000028 
+ 00022313  0x0000573f fetch  0x00000008 , 0x00004713 
+ 00022314  0x00005740 rtnbit1  0x0000002b 
+ 00022315  0x00005741 branch  0x00005eb1 
+ 00022316  0x00005744 fetch  0x00000008 , 0x00004713 
+ 00022317  0x00005745 bbit1  0x00000028 , 0x00005730 
+ 00022318  0x00005746 bbit1  0x00000036 , 0x00005737 
+ 00022319  0x00005747 rtn 
+ 00022320  0x0000574a fetch  0x00000001 , 0x0000487a 
+ 00022321  0x0000574b rtnne  0x00000001 
+ 00022322  0x0000574c arg  0x0000497d , 0x00000013 
+ 00022323  0x0000574d arg  0x00005735 , 0x00000012 
+ 00022324  0x0000574e branch  0x000042e0 
+ 00022325  0x00005751 jam  0x00000001 , 0x0000487b 
+ 00022326  0x00005752 branch  0x00005ec6 
+ 00022327  0x00005755 fetch  0x00000001 , 0x0000487a 
+ 00022328  0x00005756 rtnne  0x00000001 
+ 00022329  0x00005757 arg  0x0000497c , 0x00000013 
+ 00022330  0x00005758 arg  0x0000573c , 0x00000012 
+ 00022331  0x00005759 branch  0x000042e0 
+ 00022332  0x0000575c jam  0x00000001 , 0x0000487b 
+ 00022333  0x0000575d branch  0x00005ba3 
+ 00022334  0x00005760 fetch  0x00000008 , 0x00004713 
+ 00022335  0x00005761 rtnbit1  0x0000001c 
+ 00022336  0x00005762 fetch  0x00000001 , 0x00004690 
+ 00022337  0x00005763 rtnne  0x00000003 
+ 00022338  0x00005764 jam  0x00000000 , 0x00004690 
+ 00022339  0x00005765 rtn 
+ 00022340  0x00005768 bpatch  0x0000007c , 0x0000400f 
+ 00022341  0x00005769 call  0x0000573e 
+ 00022342  0x0000576a call  0x0000613a 
+ 00022343  0x0000576c bpatch  0x0000007d , 0x0000400f 
+ 00022344  0x0000576d fetch  0x00000001 , 0x00004957 
+ 00022345  0x0000576e beq  0x0000000c , 0x0000576b 
+ 00022346  0x0000576f beq  0x00000003 , 0x00005785 
+ 00022347  0x00005770 beq  0x0000000b , 0x00005799 
+ 00022348  0x00005771 fetch  0x00000001 , 0x00004690 
+ 00022349  0x00005772 beq  0x00000000 , 0x00005753 
+ 00022350  0x00005773 beq  0x00000001 , 0x00005751 
+ 00022351  0x00005774 beq  0x00000002 , 0x00005755 
+ 00022352  0x00005775 beq  0x00000003 , 0x00005757 
+ 00022353  0x00005777 fetcht  0x00000001 , 0x00004869 
+ 00022354  0x00005778 branch  0x00005758 
+ 00022355  0x0000577a fetcht  0x00000001 , 0x00004868 
+ 00022356  0x0000577b branch  0x00005758 
+ 00022357  0x0000577d fetcht  0x00000001 , 0x0000486a 
+ 00022358  0x0000577e branch  0x00005758 
+ 00022359  0x00005780 fetcht  0x00000001 , 0x0000486b 
+ 00022360  0x00005782 fetch  0x00000001 , 0x00004957 
+ 00022361  0x00005783 beq  0x00000004 , 0x00005767 
+ 00022362  0x00005784 beq  0x00000005 , 0x00005767 
+ 00022363  0x00005785 beq  0x00000008 , 0x00005769 
+ 00022364  0x00005786 beq  0x00000007 , 0x00005769 
+ 00022365  0x00005787 beq  0x00000006 , 0x00005767 
+ 00022366  0x00005789 storet  0x00000001 , 0x00004879 
+ 00022367  0x0000578a setarg  0x00000006 
+ 00022368  0x0000578b call  0x000069e5 
+ 00022369  0x0000578c and  0x0000003f , 0x000000f8 , 0x00000002 
+ 00022370  0x0000578d fetch  0x00000001 , 0x00004879 
+ 00022371  0x0000578e iadd  0x00000002 , 0x0000003f 
+ 00022372  0x0000578f lshift8  0x0000003f , 0x0000003f 
+ 00022373  0x00005790 add  0x0000003f , 0x00000006 , 0x0000003f 
+ 00022374  0x00005791 branch  0x000069e4 
+ 00022375  0x00005794 increase  0xffffffff , 0x00000002 
+ 00022376  0x00005795 branch  0x0000575e 
+ 00022377  0x00005798 increase  0x00000002 , 0x00000002 
+ 00022378  0x00005799 branch  0x0000575e 
+ 00022379  0x0000579c fetch  0x00000001 , 0x00004690 
+ 00022380  0x0000579d beq  0x00000000 , 0x0000576f 
+ 00022381  0x0000579e beq  0x00000001 , 0x00005775 
+ 00022382  0x0000579f beq  0x00000002 , 0x00005778 
+ 00022383  0x000057a1 fetch  0x00000001 , 0x00004874 
+ 00022384  0x000057a2 copy  0x0000003f , 0x00000011 
+ 00022385  0x000057a3 branch  0x0000577d 
+ 00022386  0x000057a6 fetch  0x00000001 , 0x00004875 
+ 00022387  0x000057a7 copy  0x0000003f , 0x00000011 
+ 00022388  0x000057a8 branch  0x0000577d 
+ 00022389  0x000057ab fetch  0x00000001 , 0x00004876 
+ 00022390  0x000057ac copy  0x0000003f , 0x00000011 
+ 00022391  0x000057ad branch  0x0000577d 
+ 00022392  0x000057b0 fetch  0x00000001 , 0x00004877 
+ 00022393  0x000057b1 copy  0x0000003f , 0x00000011 
+ 00022394  0x000057b2 branch  0x0000577d 
+ 00022395  0x000057b5 fetch  0x00000001 , 0x00004878 
+ 00022396  0x000057b6 copy  0x0000003f , 0x00000011 
+ 00022397  0x000057b8 setarg  0x0000c309 
+ 00022398  0x000057b9 call  0x000069e4 
+ 00022399  0x000057ba copy  0x00000011 , 0x0000003f 
+ 00022400  0x000057bb lshift8  0x0000003f , 0x0000003f 
+ 00022401  0x000057bc add  0x0000003f , 0x00000023 , 0x0000003f 
+ 00022402  0x000057bd call  0x000069e4 
+ 00022403  0x000057be setarg  0x00000009 
+ 00022404  0x000057bf branch  0x000069e4 
+ 00022405  0x000057c2 fetch  0x00000001 , 0x00004690 
+ 00022406  0x000057c3 beq  0x00000000 , 0x0000578c 
+ 00022407  0x000057c4 beq  0x00000001 , 0x0000578a 
+ 00022408  0x000057c5 beq  0x00000002 , 0x0000578e 
+ 00022409  0x000057c6 beq  0x00000003 , 0x00005790 
+ 00022410  0x000057c8 fetch  0x00000001 , 0x0000486d 
+ 00022411  0x000057c9 branch  0x00005791 
+ 00022412  0x000057cb fetch  0x00000001 , 0x0000486c 
+ 00022413  0x000057cc branch  0x00005791 
+ 00022414  0x000057ce fetch  0x00000001 , 0x0000486e 
+ 00022415  0x000057cf branch  0x00005791 
+ 00022416  0x000057d1 fetch  0x00000001 , 0x0000486f 
+ 00022417  0x000057d3 store  0x00000001 , 0x00004879 
+ 00022418  0x000057d4 lshift8  0x0000003f , 0x0000003f 
+ 00022419  0x000057d5 copy  0x0000003f , 0x00000011 
+ 00022420  0x000057d6 add  0x0000003f , 0x0000000d , 0x0000003f 
+ 00022421  0x000057d7 call  0x000069e4 
+ 00022422  0x000057d8 copy  0x00000011 , 0x0000003f 
+ 00022423  0x000057d9 add  0x0000003f , 0x0000000e , 0x0000003f 
+ 00022424  0x000057da branch  0x000069e4 
+ 00022425  0x000057dd fetch  0x00000001 , 0x00004690 
+ 00022426  0x000057de beq  0x00000000 , 0x000057a0 
+ 00022427  0x000057df beq  0x00000001 , 0x0000579e 
+ 00022428  0x000057e0 beq  0x00000002 , 0x000057a2 
+ 00022429  0x000057e1 beq  0x00000003 , 0x000057a4 
+ 00022430  0x000057e3 fetch  0x00000001 , 0x00004871 
+ 00022431  0x000057e4 branch  0x00005791 
+ 00022432  0x000057e7 fetch  0x00000001 , 0x00004870 
+ 00022433  0x000057e8 branch  0x00005791 
+ 00022434  0x000057eb fetch  0x00000001 , 0x00004872 
+ 00022435  0x000057ec branch  0x00005791 
+ 00022436  0x000057ef fetch  0x00000001 , 0x00004873 
+ 00022437  0x000057f0 branch  0x00005791 
+ 00022438  0x000057f9 call  0x0000584c 
+ 00022439  0x000057fa fetch  0x00000001 , 0x00004987 
+ 00022440  0x000057fb nbranch  0x00005860 , 0x00000034 
+ 00022441  0x000057fc fetch  0x00000001 , 0x00004982 
+ 00022442  0x000057fd nbranch  0x0000585f , 0x00000034 
+ 00022443  0x000057ff call  0x00005888 
+ 00022444  0x00005800 call  0x000057bc 
+ 00022445  0x00005801 call  0x0000552f 
+ 00022446  0x00005802 call  0x000057b7 
+ 00022447  0x00005803 copy  0x00000011 , 0x0000003f 
+ 00022448  0x00005804 fetcht  0x00000001 , 0x0000484e 
+ 00022449  0x00005805 store  0x00000001 , 0x0000484e 
+ 00022450  0x00005806 store  0x00000001 , 0x00004846 
+ 00022451  0x00005807 ixor  0x00000002 , 0x0000003f 
+ 00022452  0x00005808 sub  0x0000003f , 0x00000000 , 0x0000003e 
+ 00022453  0x00005809 rtn  0x00000005 
+ 00022454  0x0000580a branch  0x00007dba 
+ 00022455  0x0000580d rtnmark0  0x00000026 
+ 00022456  0x0000580e copy  0x00000011 , 0x0000003f 
+ 00022457  0x0000580f rtn  0x00000034 
+ 00022458  0x00005810 store  0x00000001 , 0x00004846 
+ 00022459  0x00005811 branch  0x00007dba 
+ 00022460  0x00005817 jam  0x00000000 , 0x00004979 
+ 00022461  0x00005818 jam  0x00000000 , 0x0000497a 
+ 00022462  0x00005819 jam  0x00000000 , 0x0000497b 
+ 00022463  0x0000581a copy  0x0000003f , 0x00000012 
+ 00022464  0x0000581b fetcht  0x00000001 , 0x00004644 
+ 00022465  0x0000581c fetch  0x00000001 , 0x00004647 
+ 00022466  0x0000581d isub  0x00000002 , 0x0000003e 
+ 00022467  0x0000581e branch  0x000057cc , 0x00000005 
+ 00022468  0x0000581f fetch  0x00000001 , 0x00004648 
+ 00022469  0x00005820 isub  0x00000002 , 0x0000003e 
+ 00022470  0x00005821 branch  0x000057d1 , 0x00000005 
+ 00022471  0x00005822 fetcht  0x00000001 , 0x00004645 
+ 00022472  0x00005823 fetch  0x00000001 , 0x00004647 
+ 00022473  0x00005824 isub  0x00000002 , 0x0000003e 
+ 00022474  0x00005825 branch  0x000057e0 , 0x00000005 
+ 00022475  0x00005826 branch  0x000057e3 
+ 00022476  0x00005829 fetcht  0x00000001 , 0x00004645 
+ 00022477  0x0000582a fetch  0x00000001 , 0x00004648 
+ 00022478  0x0000582b isub  0x00000002 , 0x0000003e 
+ 00022479  0x0000582c branch  0x000057d6 , 0x00000005 
+ 00022480  0x0000582d branch  0x000057d9 
+ 00022481  0x00005830 fetcht  0x00000001 , 0x00004645 
+ 00022482  0x00005831 fetch  0x00000001 , 0x00004647 
+ 00022483  0x00005832 isub  0x00000002 , 0x0000003e 
+ 00022484  0x00005833 branch  0x000057db , 0x00000005 
+ 00022485  0x00005834 branch  0x000057de 
+ 00022486  0x00005837 call  0x000057ef 
+ 00022487  0x00005838 call  0x000057fb 
+ 00022488  0x00005839 branch  0x000057e5 
+ 00022489  0x0000583c call  0x000057ef 
+ 00022490  0x0000583d branch  0x000057e1 
+ 00022491  0x00005840 call  0x000057f8 
+ 00022492  0x00005841 call  0x000057f2 
+ 00022493  0x00005842 branch  0x000057e5 
+ 00022494  0x00005845 call  0x000057f8 
+ 00022495  0x00005846 branch  0x000057e4 
+ 00022496  0x00005849 call  0x000057f2 
+ 00022497  0x0000584b call  0x000057fe 
+ 00022498  0x0000584c branch  0x000057e5 
+ 00022499  0x0000584f call  0x000057fb 
+ 00022500  0x00005851 call  0x000057f5 
+ 00022501  0x00005853 call  0x00005801 
+ 00022502  0x00005854 call  0x00005804 
+ 00022503  0x00005855 fetch  0x00000001 , 0x0000497a 
+ 00022504  0x00005856 rtn  0x00000034 
+ 00022505  0x00005857 fetch  0x00000001 , 0x00004979 
+ 00022506  0x00005858 rtn  0x00000034 
+ 00022507  0x00005859 jam  0x00000001 , 0x0000497b 
+ 00022508  0x0000585a fetch  0x00000001 , 0x0000484e 
+ 00022509  0x0000585b copy  0x0000003f , 0x00000011 
+ 00022510  0x0000585c rtn 
+ 00022511  0x0000585f and  0x00000012 , 0x00000009 , 0x0000003f 
+ 00022512  0x00005860 beq  0x00000009 , 0x0000580c 
+ 00022513  0x00005861 rtn 
+ 00022514  0x00005863 and  0x00000012 , 0x00000009 , 0x0000003f 
+ 00022515  0x00005864 beq  0x00000012 , 0x0000580c 
+ 00022516  0x00005865 rtn 
+ 00022517  0x00005867 and  0x00000012 , 0x00000009 , 0x0000003f 
+ 00022518  0x00005868 beq  0x0000000a , 0x0000580c 
+ 00022519  0x00005869 rtn 
+ 00022520  0x0000586b and  0x00000012 , 0x00000009 , 0x0000003f 
+ 00022521  0x0000586c beq  0x00000011 , 0x0000580c 
+ 00022522  0x0000586d rtn 
+ 00022523  0x0000586f and  0x00000012 , 0x00000014 , 0x0000003f 
+ 00022524  0x00005870 beq  0x00000014 , 0x0000580c 
+ 00022525  0x00005871 rtn 
+ 00022526  0x00005873 and  0x00000012 , 0x00000014 , 0x0000003f 
+ 00022527  0x00005874 beq  0x00000012 , 0x0000580c 
+ 00022528  0x00005875 rtn 
+ 00022529  0x00005878 and  0x00000012 , 0x00000018 , 0x0000003f 
+ 00022530  0x00005879 beq  0x00000018 , 0x0000580a 
+ 00022531  0x0000587a rtn 
+ 00022532  0x0000587d and  0x00000002 , 0x00000007 , 0x0000003f 
+ 00022533  0x0000587e beq  0x00000003 , 0x0000580a 
+ 00022534  0x0000587f beq  0x00000005 , 0x0000580a 
+ 00022535  0x00005880 beq  0x00000006 , 0x0000580a 
+ 00022536  0x00005881 beq  0x00000007 , 0x0000580a 
+ 00022537  0x00005882 rtn 
+ 00022538  0x00005886 jam  0x00000001 , 0x0000497a 
+ 00022539  0x00005887 rtn 
+ 00022540  0x0000588a jam  0x00000001 , 0x00004979 
+ 00022541  0x0000588b rtn 
+ 00022542  0x00005894 fetch  0x00000008 , 0x00004713 
+ 00022543  0x00005895 rtnbit0  0x00000017 
+ 00022544  0x00005896 bbit0  0x0000002c , 0x00005816 
+ 00022545  0x00005898 fetch  0x00000001 , 0x00004658 
+ 00022546  0x00005899 call  0x00005943 
+ 00022547  0x0000589a call  0x00005824 
+ 00022548  0x0000589b fetcht  0x00000001 , 0x00004658 
+ 00022549  0x0000589c branch  0x000055b5 
+ 00022550  0x0000589f fetch  0x00000001 , 0x00004658 
+ 00022551  0x000058a0 call  0x00005946 
+ 00022552  0x000058a1 jam  0x00000000 , 0x0000498b 
+ 00022553  0x000058a2 fetcht  0x00000001 , 0x00004658 
+ 00022554  0x000058a3 fetch  0x00000001 , 0x00004988 
+ 00022555  0x000058a4 call  0x0000583d 
+ 00022556  0x000058a5 call  0x00005828 
+ 00022557  0x000058a6 fetcht  0x00000001 , 0x00004658 
+ 00022558  0x000058a7 branch  0x000055b5 
+ 00022559  0x000058aa call  0x000055b5 
+ 00022560  0x000058ab fetch  0x00000001 , 0x00004989 
+ 00022561  0x000058ac rtneq  0x00000001 
+ 00022562  0x000058ad jam  0x00000001 , 0x00004989 
+ 00022563  0x000058ae branch  0x000056f7 
+ 00022564  0x000058b1 jam  0x00000000 , 0x0000498b 
+ 00022565  0x000058b2 fetcht  0x00000001 , 0x00004658 
+ 00022566  0x000058b3 fetch  0x00000001 , 0x00004988 
+ 00022567  0x000058b4 call  0x00005833 
+ 00022568  0x000058b6 store  0x00000001 , 0x00004988 
+ 00022569  0x000058b7 fetch  0x00000001 , 0x0000498a 
+ 00022570  0x000058b8 branch  0x0000582f , 0x00000034 
+ 00022571  0x000058ba fetch  0x00000001 , 0x00004989 
+ 00022572  0x000058bb rtneq  0x00000001 
+ 00022573  0x000058bc jam  0x00000001 , 0x00004989 
+ 00022574  0x000058bd branch  0x000056f7 
+ 00022575  0x000058c0 fetch  0x00000001 , 0x00004989 
+ 00022576  0x000058c1 rtneq  0x00000000 
+ 00022577  0x000058c2 jam  0x00000000 , 0x00004989 
+ 00022578  0x000058c3 rtn 
+ 00022579  0x000058c6 lshift  0x0000003f , 0x0000003f 
+ 00022580  0x000058c7 copy  0x0000003f , 0x00000012 
+ 00022581  0x000058c8 call  0x00006ee6 
+ 00022582  0x000058c9 setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022583  0x000058ca and  0x00000012 , 0x00000007 , 0x0000003f 
+ 00022584  0x000058cb fetcht  0x00000001 , 0x0000498b 
+ 00022585  0x000058cc copy  0x00000002 , 0x00000007 
+ 00022586  0x000058cd beq  0x00000007 , 0x00005848 
+ 00022587  0x000058ce beq  0x00000000 , 0x0000584a 
+ 00022588  0x000058cf rtn 
+ 00022589  0x000058d2 lshift  0x0000003f , 0x0000003f 
+ 00022590  0x000058d3 copy  0x0000003f , 0x00000012 
+ 00022591  0x000058d4 call  0x000055b1 
+ 00022592  0x000058d5 call  0x00006ee6 
+ 00022593  0x000058d6 setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022594  0x000058d7 and  0x00000012 , 0x00000007 , 0x0000003f 
+ 00022595  0x000058d8 fetcht  0x00000001 , 0x0000498b 
+ 00022596  0x000058d9 copy  0x00000002 , 0x00000007 
+ 00022597  0x000058da beq  0x00000007 , 0x00005848 
+ 00022598  0x000058db beq  0x00000000 , 0x0000584a 
+ 00022599  0x000058dc rtn 
+ 00022600  0x000058df jam  0x00000001 , 0x0000498a 
+ 00022601  0x000058e0 rtn 
+ 00022602  0x000058e2 jam  0x00000000 , 0x0000498a 
+ 00022603  0x000058e3 rtn 
+ 00022604  0x000058ec arg  0x00000000 , 0x00000012 
+ 00022605  0x000058ed fetch  0x00000001 , 0x00004657 
+ 00022606  0x000058ee rtneq  0x000000ff 
+ 00022607  0x000058ef fetch  0x00000008 , 0x00004713 
+ 00022608  0x000058f0 bbit0  0x0000002e , 0x00005859 
+ 00022609  0x000058f2 fetcht  0x00000001 , 0x00004657 
+ 00022610  0x000058f3 call  0x000055b5 
+ 00022611  0x000058f4 fetcht  0x00000001 , 0x00004657 
+ 00022612  0x000058f5 call  0x00006ee6 
+ 00022613  0x000058f6 setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022614  0x000058f8 copy  0x00000012 , 0x0000003f 
+ 00022615  0x000058f9 store  0x00000001 , 0x00004987 
+ 00022616  0x000058fa rtn 
+ 00022617  0x000058fd fetcht  0x00000001 , 0x00004657 
+ 00022618  0x000058fe call  0x000055b1 
+ 00022619  0x000058ff fetcht  0x00000001 , 0x00004657 
+ 00022620  0x00005900 call  0x00006ee6 
+ 00022621  0x00005901 nsetflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022622  0x00005902 branch  0x00005856 
+ 00022623  0x00005905 beq  0x00000004 , 0x00005878 
+ 00022624  0x00005907 call  0x0000587b 
+ 00022625  0x00005908 fetch  0x00000004 , 0x00004983 
+ 00022626  0x00005909 arg  0x000000a0 , 0x00000002 
+ 00022627  0x0000590a iadd  0x00000002 , 0x00000002 
+ 00022628  0x0000590b copy  0x00000022 , 0x0000003f 
+ 00022629  0x0000590c isub  0x00000002 , 0x0000003e 
+ 00022630  0x0000590d nrtn  0x00000002 
+ 00022631  0x0000590e store  0x00000004 , 0x00004983 
+ 00022632  0x0000590f fetch  0x00000001 , 0x00004982 
+ 00022633  0x00005910 beq  0x00000000 , 0x0000586e 
+ 00022634  0x00005911 beq  0x00000001 , 0x00005871 
+ 00022635  0x00005912 beq  0x00000002 , 0x00005874 
+ 00022636  0x00005913 beq  0x00000003 , 0x00005876 
+ 00022637  0x00005914 rtn 
+ 00022638  0x00005917 jam  0x00000001 , 0x00004982 
+ 00022639  0x00005919 jam  0x00000001 , 0x00004846 
+ 00022640  0x0000591a branch  0x00007dba 
+ 00022641  0x0000591d jam  0x00000002 , 0x00004982 
+ 00022642  0x0000591f jam  0x00000000 , 0x00004846 
+ 00022643  0x00005920 branch  0x00007dba 
+ 00022644  0x00005923 jam  0x00000003 , 0x00004982 
+ 00022645  0x00005924 branch  0x0000586f 
+ 00022646  0x00005927 jam  0x00000000 , 0x00004982 
+ 00022647  0x00005928 branch  0x00005872 
+ 00022648  0x0000592b jam  0x00000000 , 0x00004982 
+ 00022649  0x0000592c jam  0x00000000 , 0x00004846 
+ 00022650  0x0000592d rtn 
+ 00022651  0x00005930 fetcht  0x00000004 , 0x00004983 
+ 00022652  0x00005931 copy  0x00000022 , 0x0000003f 
+ 00022653  0x00005932 isub  0x00000002 , 0x0000003e 
+ 00022654  0x00005933 ncall  0x00005880 , 0x00000002 
+ 00022655  0x00005934 rtn 
+ 00022656  0x00005936 setarg  0x00000000 
+ 00022657  0x00005937 store  0x00000004 , 0x00004983 
+ 00022658  0x00005938 rtn 
+ 00022659  0x00005941 call  0x00005895 
+ 00022660  0x00005942 call  0x00005888 
+ 00022661  0x00005943 setarg  0x00000000 
+ 00022662  0x00005944 store  0x00000003 , 0x0000496f 
+ 00022663  0x00005945 rtn 
+ 00022664  0x00005948 bpatch  0x0000007e , 0x0000400f 
+ 00022665  0x00005949 fetch  0x00000001 , 0x0000473f 
+ 00022666  0x0000594a ncall  0x00005895 , 0x00000034 
+ 00022667  0x0000594b arg  0x00000000 , 0x00000011 
+ 00022668  0x0000594c call  0x00005898 
+ 00022669  0x0000594d call  0x000058a1 
+ 00022670  0x0000594e call  0x000058aa 
+ 00022671  0x0000594f call  0x000058b3 
+ 00022672  0x00005950 call  0x000058cf 
+ 00022673  0x00005951 call  0x0000584c 
+ 00022674  0x00005952 call  0x000058ec 
+ 00022675  0x00005953 copy  0x00000011 , 0x0000003f 
+ 00022676  0x00005954 rtn 
+ 00022677  0x00005957 setarg  0x00030303 
+ 00022678  0x00005958 store  0x00000003 , 0x0000496f 
+ 00022679  0x00005959 rtn 
+ 00022680  0x0000595c fetch  0x00000001 , 0x00004644 
+ 00022681  0x0000595d call  0x00005943 
+ 00022682  0x0000595e jam  0x00000000 , 0x00004977 
+ 00022683  0x0000595f fetcht  0x00000001 , 0x00004644 
+ 00022684  0x00005960 fetch  0x00000001 , 0x0000496f 
+ 00022685  0x00005961 call  0x00005925 
+ 00022686  0x00005962 store  0x00000001 , 0x0000496f 
+ 00022687  0x00005963 fetcht  0x00000001 , 0x00004644 
+ 00022688  0x00005964 branch  0x000055b5 
+ 00022689  0x00005967 fetch  0x00000001 , 0x00004646 
+ 00022690  0x00005968 call  0x00005943 
+ 00022691  0x00005969 jam  0x00000001 , 0x00004977 
+ 00022692  0x0000596a fetcht  0x00000001 , 0x00004646 
+ 00022693  0x0000596b fetch  0x00000001 , 0x00004970 
+ 00022694  0x0000596c call  0x00005925 
+ 00022695  0x0000596d store  0x00000001 , 0x00004970 
+ 00022696  0x0000596e fetcht  0x00000001 , 0x00004646 
+ 00022697  0x0000596f branch  0x000055b5 
+ 00022698  0x00005972 fetch  0x00000001 , 0x00004645 
+ 00022699  0x00005973 call  0x00005943 
+ 00022700  0x00005974 jam  0x00000002 , 0x00004977 
+ 00022701  0x00005975 fetcht  0x00000001 , 0x00004645 
+ 00022702  0x00005976 fetch  0x00000001 , 0x00004971 
+ 00022703  0x00005977 call  0x00005925 
+ 00022704  0x00005978 store  0x00000001 , 0x00004971 
+ 00022705  0x00005979 fetcht  0x00000001 , 0x00004645 
+ 00022706  0x0000597a branch  0x000055b5 
+ 00022707  0x0000597d fetch  0x00000001 , 0x00004647 
+ 00022708  0x0000597e rtneq  0x000000ff 
+ 00022709  0x0000597f jam  0x00000003 , 0x00004977 
+ 00022710  0x00005980 fetch  0x00000001 , 0x00004972 
+ 00022711  0x00005981 copy  0x0000003f , 0x00000013 
+ 00022712  0x00005982 fetcht  0x00000001 , 0x00004647 
+ 00022713  0x00005983 fetch  0x00000001 , 0x00004654 
+ 00022714  0x00005984 beq  0x000000ff , 0x000058c8 
+ 00022715  0x00005985 call  0x00006ee6 
+ 00022716  0x00005986 branch  0x000058c4 , 0x00000001 
+ 00022717  0x00005987 fetcht  0x00000001 , 0x00004654 
+ 00022718  0x00005988 call  0x00006ef7 
+ 00022719  0x00005989 fetcht  0x00000001 , 0x00004647 
+ 00022720  0x0000598a fetch  0x00000001 , 0x00004972 
+ 00022721  0x0000598b call  0x00005925 
+ 00022722  0x0000598d store  0x00000001 , 0x00004972 
+ 00022723  0x0000598e branch  0x000058df 
+ 00022724  0x00005991 fetcht  0x00000001 , 0x00004654 
+ 00022725  0x00005992 fetch  0x00000001 , 0x00004972 
+ 00022726  0x00005993 call  0x00005925 
+ 00022727  0x00005994 branch  0x000058c2 
+ 00022728  0x00005997 fetch  0x00000001 , 0x00004647 
+ 00022729  0x00005998 call  0x00005946 
+ 00022730  0x00005999 fetcht  0x00000001 , 0x00004647 
+ 00022731  0x0000599a call  0x00005931 
+ 00022732  0x0000599b store  0x00000001 , 0x00004972 
+ 00022733  0x0000599c fetcht  0x00000001 , 0x00004647 
+ 00022734  0x0000599d branch  0x000055b5 
+ 00022735  0x000059a1 fetch  0x00000001 , 0x00004648 
+ 00022736  0x000059a2 rtneq  0x000000ff 
+ 00022737  0x000059a3 jam  0x00000004 , 0x00004977 
+ 00022738  0x000059a4 fetch  0x00000001 , 0x00004973 
+ 00022739  0x000059a5 copy  0x0000003f , 0x00000013 
+ 00022740  0x000059a6 fetcht  0x00000001 , 0x00004648 
+ 00022741  0x000059a7 fetch  0x00000001 , 0x00004654 
+ 00022742  0x000059a8 beq  0x000000ff , 0x000058e5 
+ 00022743  0x000059a9 call  0x00006ee6 
+ 00022744  0x000059aa branch  0x000058e1 , 0x00000001 
+ 00022745  0x000059ab fetcht  0x00000001 , 0x00004654 
+ 00022746  0x000059ac call  0x00006ef7 
+ 00022747  0x000059ad fetcht  0x00000001 , 0x00004648 
+ 00022748  0x000059ae fetch  0x00000001 , 0x00004973 
+ 00022749  0x000059af call  0x00005925 
+ 00022750  0x000059b1 store  0x00000001 , 0x00004973 
+ 00022751  0x000059b3 fetcht  0x00000001 , 0x00004654 
+ 00022752  0x000059b4 branch  0x000055b5 
+ 00022753  0x000059b7 fetcht  0x00000001 , 0x00004654 
+ 00022754  0x000059b8 fetch  0x00000001 , 0x00004973 
+ 00022755  0x000059b9 call  0x00005925 
+ 00022756  0x000059ba branch  0x000058de 
+ 00022757  0x000059bd fetch  0x00000001 , 0x00004648 
+ 00022758  0x000059be call  0x00005946 
+ 00022759  0x000059bf fetcht  0x00000001 , 0x00004648 
+ 00022760  0x000059c0 call  0x00005931 
+ 00022761  0x000059c1 store  0x00000001 , 0x00004973 
+ 00022762  0x000059c2 fetcht  0x00000001 , 0x00004648 
+ 00022763  0x000059c3 branch  0x000055b5 
+ 00022764  0x000059c6 jam  0x00000000 , 0x0000496c 
+ 00022765  0x000059c7 fetch  0x00000001 , 0x00004656 
+ 00022766  0x000059c8 rtneq  0x000000ff 
+ 00022767  0x000059c9 fetch  0x00000008 , 0x00004713 
+ 00022768  0x000059ca rtnbit0  0x00000016 
+ 00022769  0x000059cb bbit1  0x0000002f , 0x000058fd 
+ 00022770  0x000059cd jam  0x00000007 , 0x00004977 
+ 00022771  0x000059ce fetcht  0x00000001 , 0x00004656 
+ 00022772  0x000059cf fetch  0x00000001 , 0x00004976 
+ 00022773  0x000059d0 call  0x00005925 
+ 00022774  0x000059d1 store  0x00000001 , 0x00004976 
+ 00022775  0x000059d3 copy  0x00000011 , 0x0000003f 
+ 00022776  0x000059d4 bbit1  0x00000007 , 0x00005917 
+ 00022777  0x000059d5 call  0x0000591a 
+ 00022778  0x000059d7 fetch  0x00000001 , 0x0000496d 
+ 00022779  0x000059d8 store  0x00000001 , 0x0000496e 
+ 00022780  0x000059d9 rtn 
+ 00022781  0x000059dc jam  0x00000007 , 0x00004977 
+ 00022782  0x000059dd fetch  0x00000001 , 0x00004976 
+ 00022783  0x000059de copy  0x0000003f , 0x00000013 
+ 00022784  0x000059df fetcht  0x00000001 , 0x00004656 
+ 00022785  0x000059e0 fetch  0x00000001 , 0x00004654 
+ 00022786  0x000059e1 beq  0x000000ff , 0x0000590f 
+ 00022787  0x000059e2 call  0x00006ee6 
+ 00022788  0x000059e3 branch  0x0000590b , 0x00000001 
+ 00022789  0x000059e4 fetcht  0x00000001 , 0x00004654 
+ 00022790  0x000059e5 call  0x00006ef7 
+ 00022791  0x000059e6 fetcht  0x00000001 , 0x00004656 
+ 00022792  0x000059e7 fetch  0x00000001 , 0x00004976 
+ 00022793  0x000059e8 call  0x00005925 
+ 00022794  0x000059e9 branch  0x00005913 
+ 00022795  0x000059ec fetcht  0x00000001 , 0x00004654 
+ 00022796  0x000059ed fetch  0x00000001 , 0x00004976 
+ 00022797  0x000059ee call  0x00005925 
+ 00022798  0x000059ef branch  0x00005913 
+ 00022799  0x000059f2 fetch  0x00000001 , 0x00004656 
+ 00022800  0x000059f3 call  0x00005946 
+ 00022801  0x000059f4 fetcht  0x00000001 , 0x00004656 
+ 00022802  0x000059f5 call  0x00005931 
+ 00022803  0x000059f7 store  0x00000001 , 0x00004976 
+ 00022804  0x000059f8 call  0x000058f7 
+ 00022805  0x000059f9 fetcht  0x00000001 , 0x00004656 
+ 00022806  0x000059fa branch  0x000055b5 
+ 00022807  0x000059fe jam  0x00000001 , 0x0000496d 
+ 00022808  0x000059ff call  0x0000591d 
+ 00022809  0x00005a00 branch  0x000058fa 
+ 00022810  0x00005a03 jam  0x00000000 , 0x0000496d 
+ 00022811  0x00005a04 fetch  0x00000001 , 0x0000496e 
+ 00022812  0x00005a05 rtn  0x00000034 
+ 00022813  0x00005a07 jam  0x00000001 , 0x0000496c 
+ 00022814  0x00005a08 rtn 
+ 00022815  0x00005a0d call  0x00006ee6 
+ 00022816  0x00005a0e fetcht  0x00000001 , 0x00004977 
+ 00022817  0x00005a0f copy  0x00000002 , 0x00000007 
+ 00022818  0x00005a10 branch  0x0000592f , 0x00000001 
+ 00022819  0x00005a12 qset0  0x00000011 
+ 00022820  0x00005a13 rtn 
+ 00022821  0x00005a16 lshift  0x0000003f , 0x0000003f 
+ 00022822  0x00005a17 copy  0x0000003f , 0x00000012 
+ 00022823  0x00005a18 call  0x00006ee6 
+ 00022824  0x00005a19 setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022825  0x00005a1b and  0x00000012 , 0x00000007 , 0x0000003f 
+ 00022826  0x00005a1d fetcht  0x00000001 , 0x00004977 
+ 00022827  0x00005a1e copy  0x00000002 , 0x00000007 
+ 00022828  0x00005a1f beq  0x00000007 , 0x0000592f 
+ 00022829  0x00005a20 beq  0x00000000 , 0x00005923 
+ 00022830  0x00005a21 rtn 
+ 00022831  0x00005a24 qset1  0x00000011 
+ 00022832  0x00005a25 rtn 
+ 00022833  0x00005a28 bpatch  0x0000007f , 0x0000400f 
+ 00022834  0x00005a29 copy  0x00000013 , 0x0000003f 
+ 00022835  0x00005a2a store  0x00000001 , 0x00004978 
+ 00022836  0x00005a2b lshift  0x0000003f , 0x0000003f 
+ 00022837  0x00005a2c copy  0x0000003f , 0x00000012 
+ 00022838  0x00005a2d copy  0x00000002 , 0x00000013 
+ 00022839  0x00005a2e call  0x000055b1 
+ 00022840  0x00005a2f copy  0x00000013 , 0x00000002 
+ 00022841  0x00005a30 call  0x00006ee6 
+ 00022842  0x00005a31 nsetflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00022843  0x00005a32 call  0x0000593d 
+ 00022844  0x00005a33 branch  0x0000592a 
+ 00022845  0x00005a36 fetcht  0x00000001 , 0x00004978 
+ 00022846  0x00005a37 and_into  0x00000001 , 0x00000002 
+ 00022847  0x00005a38 and  0x00000012 , 0x00000001 , 0x0000003f 
+ 00022848  0x00005a39 isub  0x00000002 , 0x0000003e 
+ 00022849  0x00005a3a nbranch  0x00005abc , 0x00000005 
+ 00022850  0x00005a3b rtn 
+ 00022851  0x00005a40 rtneq  0x000000ff 
+ 00022852  0x00005a41 arg  0x0000003f , 0x00000002 
+ 00022853  0x00005a42 branch  0x00006f21 
+ 00022854  0x00005a46 rtneq  0x000000ff 
+ 00022855  0x00005a47 arg  0x0000003e , 0x00000002 
+ 00022856  0x00005a48 branch  0x00006f21 
+ 00022857  0x00005a4e bpatch  0x00000080 , 0x00004010 
+ 00022858  0x00005a4f call  0x000055f6 
+ 00022859  0x00005a50 rtn  0x0000002b 
+ 00022860  0x00005a52 call  0x000059e7 
+ 00022861  0x00005a54 bpatch  0x00000081 , 0x00004010 
+ 00022862  0x00005a55 call  0x00005958 
+ 00022863  0x00005a56 beq  0x00000030 , 0x0000595f 
+ 00022864  0x00005a57 beq  0x00000031 , 0x000059c6 
+ 00022865  0x00005a58 beq  0x00000058 , 0x000059cf 
+ 00022866  0x00005a59 call  0x00005955 
+ 00022867  0x00005a5a nop  0x00001af4 
+ 00022868  0x00005a5b branch  0x0000594d 
+ 00022869  0x00005a5d fetcht  0x00000001 , 0x0000464c 
+ 00022870  0x00005a5e call  0x000069c7 
+ 00022871  0x00005a5f branch  0x000055fb 
+ 00022872  0x00005a62 setarg  0x00000001 
+ 00022873  0x00005a63 call  0x000069e5 
+ 00022874  0x00005a64 store  0x00000001 , 0x0000485a 
+ 00022875  0x00005a65 setarg  0x00000000 
+ 00022876  0x00005a66 call  0x000069e5 
+ 00022877  0x00005a67 store  0x00000001 , 0x00004859 
+ 00022878  0x00005a68 rtn 
+ 00022879  0x00005a6b fetch  0x00000001 , 0x0000485a 
+ 00022880  0x00005a6c beq  0x0000005a , 0x0000596e 
+ 00022881  0x00005a6d beq  0x000000d8 , 0x00005974 
+ 00022882  0x00005a6e beq  0x000000d1 , 0x00005968 
+ 00022883  0x00005a6f beq  0x000000d2 , 0x0000598c 
+ 00022884  0x00005a70 beq  0x00000002 , 0x00005993 
+ 00022885  0x00005a71 beq  0x00000054 , 0x0000599c 
+ 00022886  0x00005a72 beq  0x00000050 , 0x000059c3 
+ 00022887  0x00005a73 branch  0x0000594d 
+ 00022888  0x00005a76 setarg  0x00000049 
+ 00022889  0x00005a77 call  0x000069e5 
+ 00022890  0x00005a78 beq  0x000000a1 , 0x0000596c 
+ 00022891  0x00005a79 branch  0x00005983 
+ 00022892  0x00005a7c jam  0x0000000c , 0x00004957 
+ 00022893  0x00005a7d rtn 
+ 00022894  0x00005a80 jam  0x00000005 , 0x00004957 
+ 00022895  0x00005a81 call  0x000059da 
+ 00022896  0x00005a82 call  0x00007c95 
+ 00022897  0x00005a83 arg  0x000048d6 , 0x00000013 
+ 00022898  0x00005a84 call  0x00005995 
+ 00022899  0x00005a85 branch  0x00005747 
+ 00022900  0x00005a88 setarg  0x00000016 
+ 00022901  0x00005a89 call  0x000069e5 
+ 00022902  0x00005a8a sub  0x0000003f , 0x000000bd , 0x0000003e 
+ 00022903  0x00005a8b nbranch  0x00005949 , 0x00000005 
+ 00022904  0x00005a8c setarg  0x00000019 
+ 00022905  0x00005a8d call  0x000069e5 
+ 00022906  0x00005a8e sub  0x0000003f , 0x00000055 , 0x0000003e 
+ 00022907  0x00005a8f nbranch  0x00005949 , 0x00000005 
+ 00022908  0x00005a90 setarg  0x0000001b 
+ 00022909  0x00005a91 call  0x000069e5 
+ 00022910  0x00005a92 sub  0x0000003f , 0x0000001d , 0x0000003e 
+ 00022911  0x00005a93 nbranch  0x00005949 , 0x00000005 
+ 00022912  0x00005a94 jam  0x00000006 , 0x00004957 
+ 00022913  0x00005a95 arg  0x0000491a , 0x00000013 
+ 00022914  0x00005a96 branch  0x00005995 
+ 00022915  0x00005a99 jam  0x00000000 , 0x00004957 
+ 00022916  0x00005a9a arg  0x00004890 , 0x00000013 
+ 00022917  0x00005a9b call  0x00005995 
+ 00022918  0x00005a9c arg  0x0000489a , 0x00000013 
+ 00022919  0x00005a9d call  0x00005995 
+ 00022920  0x00005a9e setarg  0x00000943 
+ 00022921  0x00005a9f call  0x000069e4 
+ 00022922  0x00005aa0 arg  0x000048b4 , 0x00000013 
+ 00022923  0x00005aa1 branch  0x00005995 
+ 00022924  0x00005aa4 jam  0x00000002 , 0x00004957 
+ 00022925  0x00005aa5 arg  0x00004886 , 0x00000013 
+ 00022926  0x00005aa6 call  0x00005995 
+ 00022927  0x00005aa7 arg  0x0000489a , 0x00000013 
+ 00022928  0x00005aa8 call  0x00005995 
+ 00022929  0x00005aa9 arg  0x000048b4 , 0x00000013 
+ 00022930  0x00005aaa branch  0x00005995 
+ 00022931  0x00005aad jam  0x00000003 , 0x00004957 
+ 00022932  0x00005aae arg  0x0000487c , 0x00000013 
+ 00022933  0x00005ab0 ifetch  0x00000002 , 0x00000013 
+ 00022934  0x00005ab1 arg  0x0000ffff , 0x00000002 
+ 00022935  0x00005ab2 isub  0x00000002 , 0x0000003e 
+ 00022936  0x00005ab3 rtn  0x00000005 
+ 00022937  0x00005ab4 call  0x000069e4 
+ 00022938  0x00005ab5 increase  0x00000002 , 0x00000013 
+ 00022939  0x00005ab6 branch  0x00005995 
+ 00022940  0x00005ab9 call  0x000059d8 
+ 00022941  0x00005aba setarg  0x00009a5b 
+ 00022942  0x00005abb call  0x000069e4 
+ 00022943  0x00005abc setarg  0x0000000d 
+ 00022944  0x00005abd call  0x000069e5 
+ 00022945  0x00005abe sub  0x0000003f , 0x00000012 , 0x0000003e 
+ 00022946  0x00005abf branch  0x000059b0 , 0x00000005 
+ 00022947  0x00005ac0 sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00022948  0x00005ac1 nbranch  0x000059b3 , 0x00000005 
+ 00022949  0x00005ac2 setarg  0x0000000e 
+ 00022950  0x00005ac3 call  0x000069e5 
+ 00022951  0x00005ac4 sub  0x0000003f , 0x000000e5 , 0x0000003e 
+ 00022952  0x00005ac5 nbranch  0x0000594d , 0x00000005 
+ 00022953  0x00005ac6 setarg  0x00000010 
+ 00022954  0x00005ac7 call  0x000069e5 
+ 00022955  0x00005ac8 sub  0x0000003f , 0x000000a5 , 0x0000003e 
+ 00022956  0x00005ac9 branch  0x000059b0 , 0x00000005 
+ 00022957  0x00005aca call  0x000059c0 
+ 00022958  0x00005acc jam  0x00000008 , 0x00004957 
+ 00022959  0x00005acd rtn 
+ 00022960  0x00005acf jam  0x00000009 , 0x00004957 
+ 00022961  0x00005ad0 arg  0x000048fc , 0x00000013 
+ 00022962  0x00005ad1 branch  0x00005995 
+ 00022963  0x00005ad3 sub  0x0000003f , 0x00000010 , 0x0000003e 
+ 00022964  0x00005ad4 nbranch  0x0000594d , 0x00000005 
+ 00022965  0x00005ad5 setarg  0x0000000e 
+ 00022966  0x00005ad6 call  0x000069e5 
+ 00022967  0x00005ad7 sub  0x0000003f , 0x000000c5 , 0x0000003e 
+ 00022968  0x00005ad8 nbranch  0x0000594d , 0x00000005 
+ 00022969  0x00005ad9 setarg  0x00000010 
+ 00022970  0x00005ada call  0x000069e5 
+ 00022971  0x00005adb sub  0x0000003f , 0x00000038 , 0x0000003e 
+ 00022972  0x00005adc nbranch  0x0000594d , 0x00000005 
+ 00022973  0x00005ade call  0x000059c0 
+ 00022974  0x00005adf jam  0x0000000a , 0x00004957 
+ 00022975  0x00005ae0 rtn 
+ 00022976  0x00005ae2 setarg  0x0000005b 
+ 00022977  0x00005ae3 call  0x000069e4 
+ 00022978  0x00005ae4 branch  0x000059d6 
+ 00022979  0x00005ae7 jam  0x00000007 , 0x00004957 
+ 00022980  0x00005ae8 arg  0x0000493a , 0x00000013 
+ 00022981  0x00005ae9 branch  0x00005995 
+ 00022982  0x00005aec call  0x000059e7 
+ 00022983  0x00005aed fetch  0x00000001 , 0x0000485a 
+ 00022984  0x00005aee beq  0x00000070 , 0x000059cd 
+ 00022985  0x00005aef beq  0x00000000 , 0x000059cb 
+ 00022986  0x00005af0 branch  0x0000594d 
+ 00022987  0x00005af3 jam  0x00000001 , 0x00004957 
+ 00022988  0x00005af4 rtn 
+ 00022989  0x00005af7 jam  0x00000004 , 0x00004957 
+ 00022990  0x00005af8 rtn 
+ 00022991  0x00005afb call  0x000059e7 
+ 00022992  0x00005afc fetch  0x00000001 , 0x0000485a 
+ 00022993  0x00005afd beq  0x00000059 , 0x000059d3 
+ 00022994  0x00005afe branch  0x0000595f 
+ 00022995  0x00005b00 jam  0x0000000b , 0x00004957 
+ 00022996  0x00005b01 arg  0x0000492a , 0x00000013 
+ 00022997  0x00005b02 branch  0x00005995 
+ 00022998  0x00005b05 setarg  0x00000009 
+ 00022999  0x00005b06 branch  0x000069e4 
+ 00023000  0x00005b08 setarg  0x00005a09 
+ 00023001  0x00005b09 branch  0x000069e4 
+ 00023002  0x00005b0c arg  0x00008006 , 0x00000002 
+ 00023003  0x00005b0d fetch  0x00000001 , 0x00004957 
+ 00023004  0x00005b0e bne  0x0000000b , 0x000059de 
+ 00023005  0x00005b0f arg  0x00009706 , 0x00000002 
+ 00023006  0x00005b11 copy  0x00000002 , 0x0000003f 
+ 00023007  0x00005b12 call  0x000069e4 
+ 00023008  0x00005b13 nop  0x00002ee0 
+ 00023009  0x00005b14 rtn 
+ 00023010  0x00005b17 arg  0x00004946 , 0x00000013 
+ 00023011  0x00005b18 fetch  0x00000001 , 0x00004957 
+ 00023012  0x00005b19 rtnne  0x0000000b 
+ 00023013  0x00005b1a arg  0x0000494e , 0x00000013 
+ 00023014  0x00005b1b rtn 
+ 00023015  0x00005b1e bpatch  0x00000082 , 0x00004010 
+ 00023016  0x00005b1f call  0x000055f6 
+ 00023017  0x00005b20 call  0x000059da 
+ 00023018  0x00005b21 call  0x000059e2 
+ 00023019  0x00005b22 call  0x00005995 
+ 00023020  0x00005b23 branch  0x00005747 
+ 00023021  0x00005b26 bpatch  0x00000083 , 0x00004010 
+ 00023022  0x00005b27 call  0x00005949 
+ 00023023  0x00005b28 call  0x000055f6 
+ 00023024  0x00005b29 arg  0x00000806 , 0x00000002 
+ 00023025  0x00005b2a fetch  0x00000001 , 0x00004957 
+ 00023026  0x00005b2b bne  0x0000000b , 0x000059f4 
+ 00023027  0x00005b2c arg  0x00001f06 , 0x00000002 
+ 00023028  0x00005b2e copy  0x00000002 , 0x0000003f 
+ 00023029  0x00005b2f branch  0x000069e4 
+ 00023030  0x00005b36 fetch  0x00000001 , 0x00004420 
+ 00023031  0x00005b37 rtnne  0x00000000 
+ 00023032  0x00005b38 fetch  0x00000001 , 0x00004957 
+ 00023033  0x00005b39 beq  0x00000000 , 0x00005a02 
+ 00023034  0x00005b3a beq  0x00000001 , 0x00005a02 
+ 00023035  0x00005b3b beq  0x00000008 , 0x00005a02 
+ 00023036  0x00005b3c beq  0x00000002 , 0x00005a02 
+ 00023037  0x00005b3d beq  0x00000003 , 0x00005a26 
+ 00023038  0x00005b3e beq  0x00000004 , 0x00005a02 
+ 00023039  0x00005b3f beq  0x00000006 , 0x00005a4b 
+ 00023040  0x00005b40 beq  0x0000000b , 0x00005a44 
+ 00023041  0x00005b41 branch  0x00005a02 
+ 00023042  0x00005b45 call  0x00005a6d 
+ 00023043  0x00005b46 disable  0x00000028 
+ 00023044  0x00005b47 fetch  0x00000001 , 0x00004659 
+ 00023045  0x00005b48 beq  0x000000ff , 0x00005a09 
+ 00023046  0x00005b49 fetcht  0x00000001 , 0x00004659 
+ 00023047  0x00005b4a call  0x00006ee6 
+ 00023048  0x00005b4b nrtn  0x00000001 
+ 00023049  0x00005b4d setarg  0x00000000 
+ 00023050  0x00005b4e call  0x000069e5 
+ 00023051  0x00005b4f bne  0x00000030 , 0x00005a1c 
+ 00023052  0x00005b51 setarg  0x00000002 
+ 00023053  0x00005b52 call  0x000069e5 
+ 00023054  0x00005b53 rtnbit0  0x00000007 
+ 00023055  0x00005b54 call  0x00005a84 
+ 00023056  0x00005b55 fetch  0x00000001 , 0x00004847 
+ 00023057  0x00005b56 call  0x00005a7c 
+ 00023058  0x00005b57 store  0x00000002 , 0x00004847 
+ 00023059  0x00005b58 fetch  0x00000001 , 0x00004849 
+ 00023060  0x00005b59 call  0x00005a7c 
+ 00023061  0x00005b5a store  0x00000002 , 0x00004849 
+ 00023062  0x00005b5b fetch  0x00000001 , 0x00004958 
+ 00023063  0x00005b5c beq  0x00000000 , 0x00005a1e 
+ 00023064  0x00005b5d beq  0x00000001 , 0x00005a20 
+ 00023065  0x00005b5e beq  0x00000002 , 0x00005a22 
+ 00023066  0x00005b5f beq  0x00000003 , 0x00005a24 
+ 00023067  0x00005b60 rtn 
+ 00023068  0x00005b63 beq  0x00000031 , 0x00005a0c 
+ 00023069  0x00005b64 branch  0x00005955 
+ 00023070  0x00005b67 call  0x00005a56 
+ 00023071  0x00005b68 branch  0x00005a8b 
+ 00023072  0x00005b6a call  0x00005a5e 
+ 00023073  0x00005b6b branch  0x00005a8b 
+ 00023074  0x00005b6d call  0x00005a5a 
+ 00023075  0x00005b6e branch  0x00005a8b 
+ 00023076  0x00005b70 call  0x00005a66 
+ 00023077  0x00005b71 branch  0x00005a8b 
+ 00023078  0x00005b76 call  0x00005a6d 
+ 00023079  0x00005b77 fetch  0x00000001 , 0x00004659 
+ 00023080  0x00005b78 beq  0x000000ff , 0x00005a2c 
+ 00023081  0x00005b79 fetcht  0x00000001 , 0x00004659 
+ 00023082  0x00005b7a call  0x00006ee6 
+ 00023083  0x00005b7b nrtn  0x00000001 
+ 00023084  0x00005b7d setarg  0x00000000 
+ 00023085  0x00005b7e call  0x000069e5 
+ 00023086  0x00005b7f bne  0x00000030 , 0x00005955 
+ 00023087  0x00005b81 setarg  0x00000002 
+ 00023088  0x00005b82 call  0x000069e5 
+ 00023089  0x00005b83 rtnbit0  0x00000007 
+ 00023090  0x00005b84 call  0x00005a84 
+ 00023091  0x00005b85 call  0x00005a42 
+ 00023092  0x00005b86 store  0x00000001 , 0x0000484d 
+ 00023093  0x00005b87 rshift4  0x0000003f , 0x0000003f 
+ 00023094  0x00005b88 call  0x00005a80 
+ 00023095  0x00005b89 store  0x00000001 , 0x00004848 
+ 00023096  0x00005b8a fetch  0x00000001 , 0x0000484d 
+ 00023097  0x00005b8b and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00023098  0x00005b8c call  0x00005a80 
+ 00023099  0x00005b8d store  0x00000001 , 0x0000484a 
+ 00023100  0x00005b8e fetch  0x00000001 , 0x00004958 
+ 00023101  0x00005b8f beq  0x00000000 , 0x00005a56 
+ 00023102  0x00005b90 beq  0x00000001 , 0x00005a5e 
+ 00023103  0x00005b91 beq  0x00000002 , 0x00005a5a 
+ 00023104  0x00005b92 beq  0x00000003 , 0x00005a66 
+ 00023105  0x00005b93 rtn 
+ 00023106  0x00005b96 setarg  0x00000012 
+ 00023107  0x00005b97 branch  0x000069e5 
+ 00023108  0x00005b9a call  0x00005a6d 
+ 00023109  0x00005b9b fetch  0x00000001 , 0x00004659 
+ 00023110  0x00005b9c beq  0x000000ff , 0x00005a4a 
+ 00023111  0x00005b9d fetcht  0x00000001 , 0x00004659 
+ 00023112  0x00005b9e call  0x00006ee6 
+ 00023113  0x00005b9f nrtn  0x00000001 
+ 00023114  0x00005ba1 branch  0x00005a2f 
+ 00023115  0x00005ba5 call  0x00005a6d 
+ 00023116  0x00005ba6 disable  0x00000028 
+ 00023117  0x00005ba7 setarg  0x00000002 
+ 00023118  0x00005ba8 call  0x000069e5 
+ 00023119  0x00005ba9 rtnbit0  0x00000007 
+ 00023120  0x00005baa setarg  0x00000008 
+ 00023121  0x00005bab call  0x000069e5 
+ 00023122  0x00005bac branch  0x00005a0f , 0x00000034 
+ 00023123  0x00005bad setarg  0x00000000 
+ 00023124  0x00005bae store  0x00000006 , 0x00004847 
+ 00023125  0x00005baf rtn 
+ 00023126  0x00005bb2 fetch  0x00000002 , 0x00004847 
+ 00023127  0x00005bb3 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00023128  0x00005bb4 store  0x00000002 , 0x00004847 
+ 00023129  0x00005bb5 branch  0x00007dba 
+ 00023130  0x00005bb7 fetch  0x00000002 , 0x00004849 
+ 00023131  0x00005bb8 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00023132  0x00005bb9 store  0x00000002 , 0x00004849 
+ 00023133  0x00005bba branch  0x00007dba 
+ 00023134  0x00005bbc fetch  0x00000002 , 0x00004849 
+ 00023135  0x00005bbd sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00023136  0x00005bbe store  0x00000002 , 0x00004849 
+ 00023137  0x00005bbf fetch  0x00000002 , 0x00004847 
+ 00023138  0x00005bc0 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00023139  0x00005bc1 store  0x00000002 , 0x00004847 
+ 00023140  0x00005bc2 call  0x00005a68 
+ 00023141  0x00005bc3 branch  0x00007dba 
+ 00023142  0x00005bc5 call  0x00005a68 
+ 00023143  0x00005bc6 branch  0x00007dba 
+ 00023144  0x00005bc9 fetch  0x00000002 , 0x00004849 
+ 00023145  0x00005bca fetcht  0x00000002 , 0x00004847 
+ 00023146  0x00005bcb store  0x00000002 , 0x00004847 
+ 00023147  0x00005bcc storet  0x00000002 , 0x00004849 
+ 00023148  0x00005bcd rtn 
+ 00023149  0x00005bd1 fetch  0x00000001 , 0x00004860 
+ 00023150  0x00005bd2 call  0x00005a84 , 0x00000034 
+ 00023151  0x00005bd3 jam  0x00000001 , 0x00004860 
+ 00023152  0x00005bd4 rtn 
+ 00023153  0x00005bd7 jam  0x00000001 , 0x00004956 
+ 00023154  0x00005bd8 call  0x000029c9 
+ 00023155  0x00005bda branch  0x00005949 
+ 00023156  0x00005bdd fetch  0x00000001 , 0x00004659 
+ 00023157  0x00005bde rtnne  0x000000ff 
+ 00023158  0x00005bdf fetch  0x00000001 , 0x0000477d 
+ 00023159  0x00005be0 rtnne  0x00000001 
+ 00023160  0x00005be1 setarg  0x00000000 
+ 00023161  0x00005be2 store  0x00000001 , 0x0000477d 
+ 00023162  0x00005be3 store  0x00000004 , 0x00004847 
+ 00023163  0x00005be4 branch  0x00005a73 
+ 00023164  0x00005be7 rtnbit0  0x00000007 
+ 00023165  0x00005be8 arg  0x0000ff00 , 0x00000002 
+ 00023166  0x00005be9 ior  0x00000002 , 0x0000003f 
+ 00023167  0x00005bea rtn 
+ 00023168  0x00005bed rtnbit0  0x00000003 
+ 00023169  0x00005bee arg  0x000000f0 , 0x00000002 
+ 00023170  0x00005bef ior  0x00000002 , 0x0000003f 
+ 00023171  0x00005bf0 rtn 
+ 00023172  0x00005bf3 arg  0x00000003 , 0x0000003f 
+ 00023173  0x00005bf4 call  0x000069e5 
+ 00023174  0x00005bf5 store  0x00000002 , 0x00004847 
+ 00023175  0x00005bf6 arg  0x00000004 , 0x0000003f 
+ 00023176  0x00005bf7 call  0x000069e5 
+ 00023177  0x00005bf8 store  0x00000002 , 0x00004849 
+ 00023178  0x00005bf9 rtn 
+ 00023179  0x00005bfd fetcht  0x00000001 , 0x0000464d 
+ 00023180  0x00005bfe call  0x00006ee6 
+ 00023181  0x00005bff rtn  0x00000001 
+ 00023182  0x00005c00 setarg  0x0000000a 
+ 00023183  0x00005c01 call  0x000069e5 
+ 00023184  0x00005c02 nop  0x000003e8 
+ 00023185  0x00005c03 branch  0x00005a8b 
+ 00023186  0x00005c06 setarg  0x00008100 
+ 00023187  0x00005c07 branch  0x000069e4 
+ 00023188  0x00005c0d jam  0x000000ff , 0x0000478f 
+ 00023189  0x00005c0f jam  0x00000034 , 0x000043f3 
+ 00023190  0x00005c10 setarg  0x000f0f0f 
+ 00023191  0x00005c11 store  0x00000003 , 0x000042db 
+ 00023192  0x00005c12 store  0x00000003 , 0x000042de 
+ 00023193  0x00005c13 branch  0x000054a9 
+ 00023194  0x00005c16 bpatch  0x00000084 , 0x00004010 
+ 00023195  0x00005c17 call  0x00005c6f 
+ 00023196  0x00005c18 call  0x00005aa8 
+ 00023197  0x00005c19 fetch  0x00000001 , 0x00004666 
+ 00023198  0x00005c1a beq  0x00000001 , 0x00005aa1 
+ 00023199  0x00005c1b beq  0x00000002 , 0x00005aa3 
+ 00023200  0x00005c1c rtn 
+ 00023201  0x00005c1e fetch  0x00000006 , 0x00004668 
+ 00023202  0x00005c1f branch  0x00005aa4 
+ 00023203  0x00005c21 fetch  0x00000006 , 0x00004675 
+ 00023204  0x00005c23 fetcht  0x00000006 , 0x000046e6 
+ 00023205  0x00005c24 isub  0x00000002 , 0x0000003e 
+ 00023206  0x00005c25 branch  0x00005c1a , 0x00000005 
+ 00023207  0x00005c26 branch  0x000054a0 
+ 00023208  0x00005c29 jam  0x0000005a , 0x0000478f 
+ 00023209  0x00005c2a rtn 
+ 00023210  0x00005c2e fetch  0x00000002 , 0x000044e9 
+ 00023211  0x00005c2f bbit1  0x00000009 , 0x0000431f 
+ 00023212  0x00005c30 branch  0x00005c39 
+ 00023213  0x00005c32 setarg  0x00000000 
+ 00023214  0x00005c33 store  0x00000002 , 0x00004781 
+ 00023215  0x00005c34 fetch  0x00000002 , 0x000044e9 
+ 00023216  0x00005c35 bbit1  0x00000009 , 0x0000431f 
+ 00023217  0x00005c36 rtn 
+ 00023218  0x00005c39 fetch  0x00000008 , 0x00004713 
+ 00023219  0x00005c3a rtnbit0  0x0000001b 
+ 00023220  0x00005c3c nbranch  0x00005aba , 0x00000028 
+ 00023221  0x00005c3d fetch  0x00000001 , 0x00004959 
+ 00023222  0x00005c3e increase  0x00000001 , 0x0000003f 
+ 00023223  0x00005c3f and_into  0x0000000f , 0x0000003f 
+ 00023224  0x00005c40 store  0x00000001 , 0x00004959 
+ 00023225  0x00005c41 nrtn  0x00000034 
+ 00023226  0x00005c43 jam  0x00000000 , 0x00004959 
+ 00023227  0x00005c44 branch  0x00007dbc 
+ 00023228  0x00005c47 fetch  0x00000001 , 0x00004659 
+ 00023229  0x00005c48 rtnne  0x000000ff 
+ 00023230  0x00005c49 jam  0x00000000 , 0x000040c0 
+ 00023231  0x00005c4a jam  0x0000001e , 0x0000477e 
+ 00023232  0x00005c4b rtn 
+ 00023233  0x00005c4f bpatch  0x00000085 , 0x00004010 
+ 00023234  0x00005c50 copy  0x00000013 , 0x0000003f 
+ 00023235  0x00005c51 beq  0x00000014 , 0x00005ad0 
+ 00023236  0x00005c52 beq  0x00000015 , 0x00005ae0 
+ 00023237  0x00005c53 beq  0x00000010 , 0x00005c15 
+ 00023238  0x00005c54 beq  0x00000031 , 0x00005aed 
+ 00023239  0x00005c55 beq  0x00000029 , 0x00005aef 
+ 00023240  0x00005c56 beq  0x00000032 , 0x00005af1 
+ 00023241  0x00005c57 beq  0x0000003e , 0x00004329 
+ 00023242  0x00005c58 beq  0x00000040 , 0x00005afc 
+ 00023243  0x00005c59 beq  0x00000039 , 0x00006084 
+ 00023244  0x00005c5a beq  0x0000003a , 0x00006053 
+ 00023245  0x00005c5b beq  0x0000003c , 0x00006075 
+ 00023246  0x00005c5c beq  0x00000044 , 0x00005b10 
+ 00023247  0x00005c5d rtn 
+ 00023248  0x00005c61 call  0x0000618e 
+ 00023249  0x00005c62 jam  0x00000000 , 0x0000477d 
+ 00023250  0x00005c63 call  0x00005a73 
+ 00023251  0x00005c64 jam  0x00000001 , 0x00004794 
+ 00023252  0x00005c65 call  0x00006042 
+ 00023253  0x00005c66 fetch  0x00000001 , 0x00004795 
+ 00023254  0x00005c67 nbranch  0x00005ad8 , 0x00000034 
+ 00023255  0x00005c68 jam  0x00000014 , 0x00004796 
+ 00023256  0x00005c6a fetch  0x00000002 , 0x000043f1 
+ 00023257  0x00005c6b set0  0x00000000 , 0x0000003f 
+ 00023258  0x00005c6c store  0x00000002 , 0x000043f1 
+ 00023259  0x00005c6d jam  0x00000000 , 0x00004845 
+ 00023260  0x00005c6e fetch  0x00000002 , 0x000047be 
+ 00023261  0x00005c6f store  0x00000002 , 0x000047c0 
+ 00023262  0x00005c70 call  0x00005c0b 
+ 00023263  0x00005c71 branch  0x00005c39 
+ 00023264  0x00005c74 setarg  0x00000000 
+ 00023265  0x00005c75 store  0x00000002 , 0x000047c0 
+ 00023266  0x00005c76 jam  0x00000000 , 0x00004794 
+ 00023267  0x00005c77 arg  0x00000006 , 0x00000002 
+ 00023268  0x00005c78 fetch  0x00000008 , 0x00004713 
+ 00023269  0x00005c79 bbit1  0x0000001b , 0x00005ae7 
+ 00023270  0x00005c7a arg  0x00000007 , 0x00000002 
+ 00023271  0x00005c7c storet  0x00000002 , 0x000042d3 
+ 00023272  0x00005c7d storet  0x00000002 , 0x000042d5 
+ 00023273  0x00005c7e jam  0x00000000 , 0x000047c2 
+ 00023274  0x00005c7f jam  0x00000000 , 0x00004956 
+ 00023275  0x00005c80 call  0x000029cb 
+ 00023276  0x00005c81 branch  0x00005b76 
+ 00023277  0x00005c84 arg  0x00000002 , 0x00000007 
+ 00023278  0x00005c85 branch  0x00005af8 
+ 00023279  0x00005c89 jam  0x00000012 , 0x0000066f 
+ 00023280  0x00005c8a branch  0x00007834 
+ 00023281  0x00005c8d fetch  0x00000001 , 0x00004795 
+ 00023282  0x00005c8e beq  0x00000001 , 0x00005af4 
+ 00023283  0x00005c8f branch  0x00005af6 
+ 00023284  0x00005c91 call  0x00005aef 
+ 00023285  0x00005c92 jam  0x00000014 , 0x00004844 
+ 00023286  0x00005c94 arg  0x00000001 , 0x00000007 
+ 00023287  0x00005c95 branch  0x00005af8 
+ 00023288  0x00005c98 fetch  0x00000001 , 0x00004843 
+ 00023289  0x00005c99 qset1  0x0000003f 
+ 00023290  0x00005c9a store  0x00000001 , 0x00004843 
+ 00023291  0x00005c9b rtn 
+ 00023292  0x00005c9e fetch  0x00000002 , 0x0000433c 
+ 00023293  0x00005c9f rtneq  0x00000000 
+ 00023294  0x00005ca0 fetch  0x00000001 , 0x0000016a 
+ 00023295  0x00005ca1 rshift2  0x0000003f , 0x0000003f 
+ 00023296  0x00005ca2 sub  0x0000003f , 0x0000000c , 0x0000003e 
+ 00023297  0x00005ca3 rtn  0x00000002 
+ 00023298  0x00005ca4 setarg  0x00000009 
+ 00023299  0x00005ca5 store  0x00000002 , 0x000042d3 
+ 00023300  0x00005ca6 store  0x00000002 , 0x000042d5 
+ 00023301  0x00005ca7 call  0x00005aef 
+ 00023302  0x00005ca9 jam  0x00000001 , 0x000047c2 
+ 00023303  0x00005caa rtn 
+ 00023304  0x00005cad fetch  0x00000001 , 0x00004795 
+ 00023305  0x00005cae nrtn  0x00000034 
+ 00023306  0x00005caf fetch  0x00000001 , 0x00004398 
+ 00023307  0x00005cb0 sub  0x0000003f , 0x00000022 , 0x0000003f 
+ 00023308  0x00005cb1 nrtn  0x00000005 
+ 00023309  0x00005cb2 jam  0x00000000 , 0x00004844 
+ 00023310  0x00005cb4 arg  0x00000000 , 0x00000007 
+ 00023311  0x00005cb5 branch  0x00005af8 
+ 00023312  0x00005cb8 fetch  0x00000001 , 0x000001a2 
+ 00023313  0x00005cb9 sub  0x0000003f , 0x0000000c , 0x0000003e 
+ 00023314  0x00005cba nbranch  0x00005b06 , 0x00000002 
+ 00023315  0x00005cbb store  0x00000002 , 0x000042d3 
+ 00023316  0x00005cbc store  0x00000002 , 0x000042d5 
+ 00023317  0x00005cbd fetch  0x00000001 , 0x000001a4 
+ 00023318  0x00005cbe branch  0x00005b1d , 0x00000034 
+ 00023319  0x00005cbf fetcht  0x00000001 , 0x0000496b 
+ 00023320  0x00005cc0 isub  0x00000002 , 0x0000003e 
+ 00023321  0x00005cc1 branch  0x00005b1d , 0x00000002 
+ 00023322  0x00005cc2 fetch  0x00000001 , 0x000001a4 
+ 00023323  0x00005cc3 store  0x00000001 , 0x000040c0 
+ 00023324  0x00005cc4 branch  0x00005b1f 
+ 00023325  0x00005cc6 fetch  0x00000001 , 0x0000496b 
+ 00023326  0x00005cc7 store  0x00000001 , 0x000040c0 
+ 00023327  0x00005cc9 jam  0x00000000 , 0x000047c2 
+ 00023328  0x00005cca rtn 
+ 00023329  0x00005ccd jam  0x00000000 , 0x00004843 
+ 00023330  0x00005cce rtn 
+ 00023331  0x00005cd1 bpatch  0x00000086 , 0x00004010 
+ 00023332  0x00005cd2 call  0x00002a28 
+ 00023333  0x00005cd3 nrtn  0x00000034 
+ 00023334  0x00005cd4 fetch  0x00000001 , 0x0000478f 
+ 00023335  0x00005cd5 beq  0x000000ff , 0x00005b2b 
+ 00023336  0x00005cd6 fetch  0x00000001 , 0x00004843 
+ 00023337  0x00005cd7 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00023338  0x00005cd8 rtnne  0x00000003 
+ 00023339  0x00005cda fetch  0x00000001 , 0x00004956 
+ 00023340  0x00005cdb call  0x00005a71 , 0x00000034 
+ 00023341  0x00005cdc fetch  0x00000008 , 0x00004713 
+ 00023342  0x00005cdd bbit1  0x00000001 , 0x00005b5b 
+ 00023343  0x00005cde bbit1  0x00000000 , 0x00005b5b 
+ 00023344  0x00005cdf bbit1  0x00000005 , 0x00005b5b 
+ 00023345  0x00005ce0 bbit1  0x00000006 , 0x00005b5b 
+ 00023346  0x00005ce1 call  0x00005601 
+ 00023347  0x00005ce2 call  0x00005ab2 
+ 00023348  0x00005ce3 nrtn  0x00000028 
+ 00023349  0x00005ce4 call  0x00005abc 
+ 00023350  0x00005ce5 call  0x00005a74 
+ 00023351  0x00005ce6 call  0x000056b1 
+ 00023352  0x00005ce7 fetch  0x00000008 , 0x00004713 
+ 00023353  0x00005ce8 bbit0  0x00000016 , 0x00005b3c 
+ 00023354  0x00005ce9 fetch  0x00000001 , 0x0000496c 
+ 00023355  0x00005cea beq  0x00000001 , 0x00005b3d 
+ 00023356  0x00005cec branch  0x00005b5d 
+ 00023357  0x00005cf0 fetch  0x00000001 , 0x0000496d 
+ 00023358  0x00005cf1 branch  0x00005b4d , 0x00000034 
+ 00023359  0x00005cf2 fetch  0x00000008 , 0x0000472b 
+ 00023360  0x00005cf4 store  0x00000008 , 0x00000670 
+ 00023361  0x00005cf5 fetch  0x00000001 , 0x0000472a 
+ 00023362  0x00005cf6 beq  0x00000003 , 0x00005b4f 
+ 00023363  0x00005cf7 beq  0x00000002 , 0x00005b52 
+ 00023364  0x00005cf8 jam  0x00000008 , 0x000047b4 
+ 00023365  0x00005cf9 fetcht  0x00000002 , 0x000047b5 
+ 00023366  0x00005cfb fetch  0x00000001 , 0x000047b4 
+ 00023367  0x00005cfc copy  0x0000003f , 0x00000011 
+ 00023368  0x00005cfd call  0x00002dee 
+ 00023369  0x00005cfe fetcht  0x00000001 , 0x000047b4 
+ 00023370  0x00005cff copy  0x00000002 , 0x00000039 
+ 00023371  0x00005d00 arg  0x00000670 , 0x00000006 
+ 00023372  0x00005d01 branch  0x00007cda 
+ 00023373  0x00005d04 fetch  0x00000008 , 0x00004734 
+ 00023374  0x00005d05 branch  0x00005b40 
+ 00023375  0x00005d08 jam  0x00000003 , 0x000047b4 
+ 00023376  0x00005d09 fetcht  0x00000002 , 0x000047b7 
+ 00023377  0x00005d0a branch  0x00005b46 
+ 00023378  0x00005d0d jam  0x00000002 , 0x000047b4 
+ 00023379  0x00005d0e fetcht  0x00000002 , 0x000047b9 
+ 00023380  0x00005d0f branch  0x00005b46 
+ 00023381  0x00005d12 arg  0x00000001 , 0x00000011 
+ 00023382  0x00005d13 fetcht  0x00000002 , 0x000047bb 
+ 00023383  0x00005d14 call  0x00002dee 
+ 00023384  0x00005d15 fetch  0x00000001 , 0x000047bd 
+ 00023385  0x00005d16 istore  0x00000001 , 0x00000005 
+ 00023386  0x00005d17 rtn 
+ 00023387  0x00005d1a setarg  0x00000000 
+ 00023388  0x00005d1b store  0x00000007 , 0x00004846 
+ 00023389  0x00005d1d jam  0x00000007 , 0x000047b4 
+ 00023390  0x00005d1e fetch  0x00000007 , 0x00004846 
+ 00023391  0x00005d1f store  0x00000007 , 0x00000670 
+ 00023392  0x00005d20 fetcht  0x00000002 , 0x0000439b 
+ 00023393  0x00005d21 branch  0x00005b46 
+ 00023394  0x00005d24 jam  0x00000000 , 0x00004795 
+ 00023395  0x00005d25 fetch  0x00000003 , 0x0000479a 
+ 00023396  0x00005d26 store  0x00000003 , 0x0000434d 
+ 00023397  0x00005d27 call  0x00005b6b 
+ 00023398  0x00005d28 setarg  0x00000005 
+ 00023399  0x00005d29 istore  0x00000001 , 0x00000006 
+ 00023400  0x00005d2a arg  0x000047a0 , 0x00000006 
+ 00023401  0x00005d2b call  0x00005b72 
+ 00023402  0x00005d2c branch  0x00007870 
+ 00023403  0x00005d2f arg  0x00004349 , 0x00000011 
+ 00023404  0x00005d31 ifetch  0x00000001 , 0x00000011 
+ 00023405  0x00005d32 rtn  0x00000034 
+ 00023406  0x00005d33 iadd  0x00000006 , 0x00000011 
+ 00023407  0x00005d34 ifetch  0x00000001 , 0x00000006 
+ 00023408  0x00005d35 rtneq  0x00000001 
+ 00023409  0x00005d36 branch  0x00005b6c 
+ 00023410  0x00005d39 arg  0x00004354 , 0x00000005 
+ 00023411  0x00005d3a arg  0x00000013 , 0x00000039 
+ 00023412  0x00005d3b call  0x00007cda 
+ 00023413  0x00005d3c branch  0x00002969 
+ 00023414  0x00005d43 call  0x00005b7b 
+ 00023415  0x00005d44 fetch  0x00000002 , 0x000043ef 
+ 00023416  0x00005d45 bbit1  0x00000007 , 0x00005b81 
+ 00023417  0x00005d46 bbit1  0x00000000 , 0x000042fc 
+ 00023418  0x00005d47 branch  0x00005c1a 
+ 00023419  0x00005d4a setarg  0x00000000 
+ 00023420  0x00005d4b store  0x00000008 , 0x0000484f 
+ 00023421  0x00005d4c istore  0x00000004 , 0x00000005 
+ 00023422  0x00005d4d jam  0x00000000 , 0x00004860 
+ 00023423  0x00005d4e jam  0x00000000 , 0x0000429a 
+ 00023424  0x00005d4f rtn 
+ 00023425  0x00005d52 call  0x00005b21 
+ 00023426  0x00005d53 fetch  0x00000002 , 0x000043ef 
+ 00023427  0x00005d54 bbit1  0x00000000 , 0x000042fc 
+ 00023428  0x00005d55 branch  0x000054cd 
+ 00023429  0x00005d5a bpatch  0x00000087 , 0x00004010 
+ 00023430  0x00005d5c call  0x0000614d 
+ 00023431  0x00005d5d call  0x0000553d 
+ 00023432  0x00005d5f call  0x00006110 
+ 00023433  0x00005d60 call  0x000061b1 
+ 00023434  0x00005d61 call  0x0000611e 
+ 00023435  0x00005d63 call  0x0000328e 
+ 00023436  0x00005d64 call  0x00003531 
+ 00023437  0x00005d65 call  0x00005fdd 
+ 00023438  0x00005d67 call  0x0000572c 
+ 00023439  0x00005d68 call  0x00005b9b 
+ 00023440  0x00005d69 call  0x00005bab 
+ 00023441  0x00005d6a call  0x00005bce 
+ 00023442  0x00005d6c call  0x00005bd3 
+ 00023443  0x00005d6d call  0x00005be1 
+ 00023444  0x00005d6e call  0x00005bee 
+ 00023445  0x00005d6f call  0x00005be4 
+ 00023446  0x00005d71 call  0x00005bfb 
+ 00023447  0x00005d72 call  0x00005bfe 
+ 00023448  0x00005d73 call  0x000056b6 
+ 00023449  0x00005d74 call  0x00005c0e 
+ 00023450  0x00005d75 branch  0x00005c05 
+ 00023451  0x00005d78 fetch  0x00000008 , 0x00004713 
+ 00023452  0x00005d79 bbit1  0x00000037 , 0x00005b9e 
+ 00023453  0x00005d7a rtn 
+ 00023454  0x00005d7d fetch  0x00000001 , 0x0000497f 
+ 00023455  0x00005d7e rtnne  0x00000001 
+ 00023456  0x00005d7f arg  0x0000497c , 0x00000013 
+ 00023457  0x00005d80 arg  0x00005ba3 , 0x00000012 
+ 00023458  0x00005d81 branch  0x000042e0 
+ 00023459  0x00005d84 fetch  0x00000001 , 0x00004666 
+ 00023460  0x00005d85 rtneq  0x00000000 
+ 00023461  0x00005d86 fetch  0x00000008 , 0x00004713 
+ 00023462  0x00005d87 rtnbit1  0x00000006 
+ 00023463  0x00005d88 arg  0x00000006 , 0x00000007 
+ 00023464  0x00005d89 call  0x00005f00 
+ 00023465  0x00005d8a call  0x000042d0 
+ 00023466  0x00005d8b branch  0x00005c15 
+ 00023467  0x00005d8e fetch  0x00000001 , 0x00004666 
+ 00023468  0x00005d8f beq  0x00000000 , 0x00005bb1 
+ 00023469  0x00005d90 fetch  0x00000008 , 0x00004713 
+ 00023470  0x00005d91 rtnbit0  0x00000035 
+ 00023471  0x00005d92 fetcht  0x00000001 , 0x00004727 
+ 00023472  0x00005d93 branch  0x00005bb4 
+ 00023473  0x00005d96 fetch  0x00000008 , 0x00004713 
+ 00023474  0x00005d97 rtnbit0  0x00000032 
+ 00023475  0x00005d98 fetcht  0x00000001 , 0x00004728 
+ 00023476  0x00005d9a storet  0x00000001 , 0x0000497e 
+ 00023477  0x00005d9b call  0x00005888 
+ 00023478  0x00005d9c and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00023479  0x00005d9d fetcht  0x00000001 , 0x0000497e 
+ 00023480  0x00005d9e isub  0x00000002 , 0x0000003e 
+ 00023481  0x00005d9f branch  0x00005bc0 , 0x00000005 
+ 00023482  0x00005da1 fetch  0x00000001 , 0x000044eb 
+ 00023483  0x00005da2 store  0x00000001 , 0x00004981 
+ 00023484  0x00005da3 fetch  0x00000001 , 0x00004980 
+ 00023485  0x00005da4 rtneq  0x00000000 
+ 00023486  0x00005da5 jam  0x00000000 , 0x00004980 
+ 00023487  0x00005da6 rtn 
+ 00023488  0x00005da9 call  0x00005bc5 
+ 00023489  0x00005daa fetch  0x00000001 , 0x00004980 
+ 00023490  0x00005dab rtneq  0x00000001 
+ 00023491  0x00005dac jam  0x00000001 , 0x00004980 
+ 00023492  0x00005dad rtn 
+ 00023493  0x00005db0 arg  0x00006047 , 0x00000012 
+ 00023494  0x00005db1 arg  0x00004981 , 0x00000013 
+ 00023495  0x00005db2 fetch  0x00000001 , 0x00004666 
+ 00023496  0x00005db3 beq  0x00000000 , 0x000042e0 
+ 00023497  0x00005db4 arg  0x00005ba3 , 0x00000012 
+ 00023498  0x00005db5 call  0x000042e0 
+ 00023499  0x00005db6 fetch  0x00000001 , 0x00004981 
+ 00023500  0x00005db7 beq  0x00000001 , 0x00005ef2 
+ 00023501  0x00005db8 rtn 
+ 00023502  0x00005dbb arg  0x00004790 , 0x00000013 
+ 00023503  0x00005dbc arg  0x00005bd1 , 0x00000012 
+ 00023504  0x00005dbd branch  0x000042e7 
+ 00023505  0x00005dc0 call  0x00005c39 
+ 00023506  0x00005dc1 branch  0x000054cd 
+ 00023507  0x00005dc4 arg  0x00004845 , 0x00000013 
+ 00023508  0x00005dc5 arg  0x00005bd9 , 0x00000012 
+ 00023509  0x00005dc6 call  0x000042e0 
+ 00023510  0x00005dc7 fetch  0x00000001 , 0x00004845 
+ 00023511  0x00005dc8 beq  0x00000001 , 0x00004313 
+ 00023512  0x00005dc9 rtn 
+ 00023513  0x00005dcc fetch  0x00000001 , 0x0000478f 
+ 00023514  0x00005dcd beq  0x000000ff , 0x00005a9a 
+ 00023515  0x00005dce fetch  0x00000001 , 0x0000477f 
+ 00023516  0x00005dcf nbranch  0x00005f1b , 0x00000034 
+ 00023517  0x00005dd0 fetch  0x00000008 , 0x00004713 
+ 00023518  0x00005dd1 bbit1  0x00000033 , 0x00005c1a 
+ 00023519  0x00005dd2 bbit1  0x0000003e , 0x0000603f 
+ 00023520  0x00005dd3 branch  0x000054cd 
+ 00023521  0x00005dd6 arg  0x00004844 , 0x00000013 
+ 00023522  0x00005dd7 arg  0x00005b0e , 0x00000012 
+ 00023523  0x00005dd8 branch  0x000042e0 
+ 00023524  0x00005ddb fetch  0x00000001 , 0x00004794 
+ 00023525  0x00005ddc rtn  0x00000034 
+ 00023526  0x00005ddd arg  0x00004796 , 0x00000013 
+ 00023527  0x00005dde arg  0x00005be9 , 0x00000012 
+ 00023528  0x00005ddf branch  0x000042e0 
+ 00023529  0x00005de1 fetch  0x00000001 , 0x00004795 
+ 00023530  0x00005de2 nrtn  0x00000034 
+ 00023531  0x00005de3 fetch  0x00000001 , 0x000042fc 
+ 00023532  0x00005de4 rtnne  0x00000000 
+ 00023533  0x00005de5 branch  0x00002fcd 
+ 00023534  0x00005de8 fetch  0x00000008 , 0x00004713 
+ 00023535  0x00005de9 rtnbit1  0x0000003b 
+ 00023536  0x00005dea arg  0x000047c0 , 0x00000013 
+ 00023537  0x00005deb arg  0x00005bf3 , 0x00000012 
+ 00023538  0x00005dec branch  0x000042e0 
+ 00023539  0x00005def fetch  0x00000002 , 0x000047be 
+ 00023540  0x00005df0 store  0x00000002 , 0x000047c0 
+ 00023541  0x00005df1 branch  0x00005b55 
+ 00023542  0x00005df4 fetch  0x00000001 , 0x00004843 
+ 00023543  0x00005df5 rtnbit1  0x00000002 
+ 00023544  0x00005df6 call  0x00005aef 
+ 00023545  0x00005df7 arg  0x00000000 , 0x00000007 
+ 00023546  0x00005df8 branch  0x00005af8 
+ 00023547  0x00005dfb arg  0x00004792 , 0x00000013 
+ 00023548  0x00005dfc arg  0x000054cd , 0x00000012 
+ 00023549  0x00005dfd branch  0x000042e0 
+ 00023550  0x00005e00 arg  0x0000477e , 0x00000013 
+ 00023551  0x00005e01 arg  0x00005c01 , 0x00000012 
+ 00023552  0x00005e02 branch  0x000042e0 
+ 00023553  0x00005e04 fetch  0x00000001 , 0x0000496b 
+ 00023554  0x00005e05 store  0x00000001 , 0x000040c0 
+ 00023555  0x00005e06 jam  0x00000001 , 0x0000477d 
+ 00023556  0x00005e07 rtn 
+ 00023557  0x00005e0b arg  0x00004781 , 0x00000013 
+ 00023558  0x00005e0c arg  0x00005c08 , 0x00000012 
+ 00023559  0x00005e0d branch  0x000042e7 
+ 00023560  0x00005e10 fetch  0x00000001 , 0x00004666 
+ 00023561  0x00005e11 beq  0x00000000 , 0x00005ff2 
+ 00023562  0x00005e12 branch  0x00005aad 
+ 00023563  0x00005e15 fetch  0x00000002 , 0x00004725 
+ 00023564  0x00005e16 store  0x00000002 , 0x00004781 
+ 00023565  0x00005e17 rtn 
+ 00023566  0x00005e1a arg  0x000046f3 , 0x00000013 
+ 00023567  0x00005e1b arg  0x00005c11 , 0x00000012 
+ 00023568  0x00005e1c branch  0x000042e0 
+ 00023569  0x00005e1f call  0x00005ca6 
+ 00023570  0x00005e20 fetch  0x00000001 , 0x00004793 
+ 00023571  0x00005e21 nbranch  0x00005ed1 , 0x00000034 
+ 00023572  0x00005e22 rtn 
+ 00023573  0x00005e25 isolate1  0x00000026 , 0x00000000 
+ 00023574  0x00005e26 call  0x00006018 , 0x00000001 
+ 00023575  0x00005e27 call  0x00005aad 
+ 00023576  0x00005e28 call  0x00005b21 
+ 00023577  0x00005e29 branch  0x00005c1a 
+ 00023578  0x00005e2c bpatch  0x00000088 , 0x00004011 
+ 00023579  0x00005e2d call  0x000061ab 
+ 00023580  0x00005e2e fetch  0x00000002 , 0x000044e9 
+ 00023581  0x00005e2f isolate1  0x0000000b , 0x0000003f 
+ 00023582  0x00005e30 call  0x00005c3e , 0x00000001 
+ 00023583  0x00005e31 call  0x00005aa8 
+ 00023584  0x00005e32 fetch  0x00000002 , 0x000044e9 
+ 00023585  0x00005e33 bbit1  0x0000000b , 0x00005c2a 
+ 00023586  0x00005e34 fetch  0x00000008 , 0x00004713 
+ 00023587  0x00005e35 bbit0  0x00000008 , 0x00005c2a 
+ 00023588  0x00005e36 fetcht  0x00000002 , 0x00004695 
+ 00023589  0x00005e37 increase  0x00000001 , 0x00000002 
+ 00023590  0x00005e38 storet  0x00000002 , 0x00004695 
+ 00023591  0x00005e39 storet  0x00000002 , 0x000042dc 
+ 00023592  0x00005e3a random  0x0000003f 
+ 00023593  0x00005e3b store  0x00000001 , 0x000042db 
+ 00023594  0x00005e3d fetch  0x00000003 , 0x00004797 
+ 00023595  0x00005e3e store  0x00000003 , 0x000042de 
+ 00023596  0x00005e3f call  0x0000432d 
+ 00023597  0x00005e40 fetch  0x00000002 , 0x00004638 
+ 00023598  0x00005e41 store  0x00000002 , 0x00004790 
+ 00023599  0x00005e42 setarg  0x00000000 
+ 00023600  0x00005e43 store  0x00000002 , 0x00004781 
+ 00023601  0x00005e44 store  0x00000002 , 0x000047c0 
+ 00023602  0x00005e45 store  0x00000001 , 0x00004845 
+ 00023603  0x00005e46 store  0x00000001 , 0x00004792 
+ 00023604  0x00005e47 store  0x00000001 , 0x00004956 
+ 00023605  0x00005e48 arg  0x00000002 , 0x00000007 
+ 00023606  0x00005e49 call  0x00005f00 
+ 00023607  0x00005e4a call  0x00005ef4 
+ 00023608  0x00005e4b branch  0x00005b62 
+ 00023609  0x00005e4e bpatch  0x00000089 , 0x00004011 
+ 00023610  0x00005e4f arg  0x00000006 , 0x00000007 
+ 00023611  0x00005e50 call  0x00005f04 
+ 00023612  0x00005e51 jam  0x00000000 , 0x00004792 
+ 00023613  0x00005e52 branch  0x00005c3e 
+ 00023614  0x00005e54 setarg  0x00000000 
+ 00023615  0x00005e55 store  0x00000001 , 0x00004845 
+ 00023616  0x00005e56 store  0x00000002 , 0x00004790 
+ 00023617  0x00005e57 branch  0x00007876 
+ 00023618  0x00005e5a bpatch  0x0000008a , 0x00004011 
+ 00023619  0x00005e5b fetch  0x00000008 , 0x00004713 
+ 00023620  0x00005e5c rtnbit0  0x00000002 
+ 00023621  0x00005e5d arg  0x00000002 , 0x00000007 
+ 00023622  0x00005e5e call  0x00005f04 
+ 00023623  0x00005e5f call  0x00005c4a 
+ 00023624  0x00005e61 call  0x00005c59 
+ 00023625  0x00005e62 branch  0x00005ca3 
+ 00023626  0x00005e65 fetch  0x00000001 , 0x00000032 
+ 00023627  0x00005e66 beq  0x00000034 , 0x00005c4d 
+ 00023628  0x00005e67 rtn 
+ 00023629  0x00005e69 store  0x00000001 , 0x0000495a 
+ 00023630  0x00005e6a fetch  0x00000006 , 0x00000178 
+ 00023631  0x00005e6c store  0x00000006 , 0x0000495b 
+ 00023632  0x00005e6d fetch  0x00000007 , 0x0000495a 
+ 00023633  0x00005e6e arg  0x00004667 , 0x00000006 
+ 00023634  0x00005e6f arg  0x00000003 , 0x00000039 
+ 00023635  0x00005e71 ifetcht  0x00000007 , 0x00000006 
+ 00023636  0x00005e72 isub  0x00000002 , 0x0000003e 
+ 00023637  0x00005e73 branch  0x00005c69 , 0x00000005 
+ 00023638  0x00005e74 increase  0x00000016 , 0x00000006 
+ 00023639  0x00005e75 loop  0x00005c53 
+ 00023640  0x00005e76 rtn 
+ 00023641  0x00005e78 arg  0x00004667 , 0x00000011 
+ 00023642  0x00005e79 fetch  0x00000001 , 0x00004666 
+ 00023643  0x00005e7a increase  0xffffffff , 0x0000003f 
+ 00023644  0x00005e7b mul32  0x0000003f , 0x0000001d , 0x0000003f 
+ 00023645  0x00005e7c iadd  0x00000011 , 0x00000011 
+ 00023646  0x00005e7d fetch  0x00000001 , 0x00000032 
+ 00023647  0x00005e7e istore  0x00000001 , 0x00000011 
+ 00023648  0x00005e7f beq  0x00000034 , 0x00005c62 
+ 00023649  0x00005e80 rtn 
+ 00023650  0x00005e83 fetch  0x00000006 , 0x00000178 
+ 00023651  0x00005e84 istore  0x00000006 , 0x00000005 
+ 00023652  0x00005e85 arg  0x0000428a , 0x00000006 
+ 00023653  0x00005e86 call  0x00007c8f 
+ 00023654  0x00005e87 fetch  0x00000006 , 0x000042db 
+ 00023655  0x00005e88 istore  0x00000006 , 0x00000005 
+ 00023656  0x00005e89 rtn 
+ 00023657  0x00005e8c increase  0xfffffffa , 0x00000006 
+ 00023658  0x00005e8d copy  0x00000006 , 0x00000005 
+ 00023659  0x00005e8e fetcht  0x00000006 , 0x0000495b 
+ 00023660  0x00005e8f increase  0x00000003 , 0x00000002 
+ 00023661  0x00005e90 istoret  0x00000006 , 0x00000005 
+ 00023662  0x00005e91 rtn 
+ 00023663  0x00005e94 arg  0x00004667 , 0x00000011 
+ 00023664  0x00005e95 fetch  0x00000001 , 0x00004666 
+ 00023665  0x00005e96 rtneq  0x00000000 
+ 00023666  0x00005e97 increase  0xffffffff , 0x0000003f 
+ 00023667  0x00005e98 mul32  0x0000003f , 0x0000001d , 0x0000003f 
+ 00023668  0x00005e99 iadd  0x00000011 , 0x00000011 
+ 00023669  0x00005e9a ifetch  0x00000001 , 0x00000011 
+ 00023670  0x00005e9b store  0x00000001 , 0x000043f3 
+ 00023671  0x00005e9c beq  0x00000034 , 0x00005c79 
+ 00023672  0x00005e9d rtn 
+ 00023673  0x00005ea0 ifetch  0x00000006 , 0x00000006 
+ 00023674  0x00005ea2 store  0x00000006 , 0x00004116 
+ 00023675  0x00005ea3 arg  0x0000428a , 0x00000005 
+ 00023676  0x00005ea4 call  0x00007c8f 
+ 00023677  0x00005ea5 ifetch  0x00000006 , 0x00000006 
+ 00023678  0x00005ea6 store  0x00000006 , 0x000042db 
+ 00023679  0x00005ea7 rtn 
+ 00023680  0x00005eaa bpatch  0x0000008b , 0x00004011 
+ 00023681  0x00005eab fetch  0x00000002 , 0x0000468e 
+ 00023682  0x00005eac arg  0x0000aa55 , 0x00000002 
+ 00023683  0x00005ead isub  0x00000002 , 0x0000003e 
+ 00023684  0x00005eae branch  0x00005c8f , 0x00000005 
+ 00023685  0x00005eb0 storet  0x00000002 , 0x0000468e 
+ 00023686  0x00005eb1 call  0x00005c9c 
+ 00023687  0x00005eb2 fetch  0x00000001 , 0x000049a1 
+ 00023688  0x00005eb3 store  0x00000001 , 0x00004666 
+ 00023689  0x00005eb4 fetch  0x00000004 , 0x000045e4 
+ 00023690  0x00005eb5 store  0x00000004 , 0x000045e8 
+ 00023691  0x00005eb6 store  0x00000004 , 0x0000458f 
+ 00023692  0x00005eb8 fetch  0x00000001 , 0x00004651 
+ 00023693  0x00005eb9 store  0x00000001 , 0x00004690 
+ 00023694  0x00005eba rtn 
+ 00023695  0x00005ebd call  0x00005c94 
+ 00023696  0x00005ebf fetch  0x00000004 , 0x00004691 
+ 00023697  0x00005ec0 store  0x00000004 , 0x000045e8 
+ 00023698  0x00005ec1 store  0x00000004 , 0x0000458f 
+ 00023699  0x00005ec2 rtn 
+ 00023700  0x00005ec5 fetch  0x00000008 , 0x00004713 
+ 00023701  0x00005ec6 rtnbit0  0x0000000f 
+ 00023702  0x00005ec7 fetch  0x00000002 , 0x000049fa 
+ 00023703  0x00005ec8 copy  0x0000003f , 0x00000012 
+ 00023704  0x00005ec9 call  0x00005e51 
+ 00023705  0x00005eca fetch  0x00000001 , 0x000049d4 
+ 00023706  0x00005ecb call  0x00005c8c , 0x00000034 
+ 00023707  0x00005ecc rtn 
+ 00023708  0x00005ecf fetch  0x00000006 , 0x000042db 
+ 00023709  0x00005ed0 store  0x00000006 , 0x0000466e 
+ 00023710  0x00005ed1 add  0x0000003f , 0x00000100 , 0x0000003f 
+ 00023711  0x00005ed2 store  0x00000006 , 0x0000467b 
+ 00023712  0x00005ed3 add  0x0000003f , 0x00000100 , 0x0000003f 
+ 00023713  0x00005ed4 store  0x00000006 , 0x00004688 
+ 00023714  0x00005ed5 rtn 
+ 00023715  0x00005eda fetch  0x00000001 , 0x000046f4 
+ 00023716  0x00005edb store  0x00000001 , 0x000046f3 
+ 00023717  0x00005edc rtn 
+ 00023718  0x00005edf bpatch  0x0000008c , 0x00004011 
+ 00023719  0x00005ee0 fetch  0x00000008 , 0x00004713 
+ 00023720  0x00005ee1 bbit1  0x00000013 , 0x00005cb1 
+ 00023721  0x00005ee2 bbit1  0x00000012 , 0x00005cb9 
+ 00023722  0x00005ee3 bbit1  0x00000014 , 0x00005cc0 
+ 00023723  0x00005ee4 rtn 
+ 00023724  0x00005ee7 bpatch  0x0000008d , 0x00004011 
+ 00023725  0x00005ee8 fetch  0x00000008 , 0x00004713 
+ 00023726  0x00005ee9 bbit1  0x00000013 , 0x00005cb5 
+ 00023727  0x00005eea bbit1  0x00000014 , 0x00005d3c 
+ 00023728  0x00005eeb rtn 
+ 00023729  0x00005ef0 arg  0x00000080 , 0x00000002 
+ 00023730  0x00005ef1 arg  0x00004666 , 0x00000011 
+ 00023731  0x00005ef2 arg  0x00000000 , 0x00000012 
+ 00023732  0x00005ef3 branch  0x00006cd3 
+ 00023733  0x00005ef6 arg  0x00000001 , 0x00000002 
+ 00023734  0x00005ef7 arg  0x00004690 , 0x00000011 
+ 00023735  0x00005ef8 arg  0x0000005a , 0x00000012 
+ 00023736  0x00005ef9 branch  0x00006cd3 
+ 00023737  0x00005efe call  0x00006c20 
+ 00023738  0x00005eff call  0x00005d7b 
+ 00023739  0x00005f00 call  0x00005d90 
+ 00023740  0x00005f02 call  0x00005d75 
+ 00023741  0x00005f03 call  0x00005d93 
+ 00023742  0x00005f04 call  0x00005d82 
+ 00023743  0x00005f05 branch  0x000055f6 
+ 00023744  0x00005f0b call  0x00005cc3 
+ 00023745  0x00005f0c call  0x00005ce5 
+ 00023746  0x00005f0d branch  0x00005d26 
+ 00023747  0x00005f12 fetchr  0x00000012 , 0x00000002 , 0x000049e2 
+ 00023748  0x00005f13 copy  0x00000012 , 0x00000013 
+ 00023749  0x00005f15 call  0x00005dc0 
+ 00023750  0x00005f16 fetch  0x00000001 , 0x000049a1 
+ 00023751  0x00005f17 branch  0x00005ccf , 0x00000034 
+ 00023752  0x00005f18 store  0x00000001 , 0x000049a0 
+ 00023753  0x00005f19 increase  0x00000001 , 0x00000013 
+ 00023754  0x00005f1a fetch  0x00000002 , 0x000049e4 
+ 00023755  0x00005f1b isub  0x00000013 , 0x0000003e 
+ 00023756  0x00005f1c nrtn  0x00000002 
+ 00023757  0x00005f1d copy  0x00000013 , 0x00000012 
+ 00023758  0x00005f1e branch  0x00005cc5 
+ 00023759  0x00005f21 fetch  0x00000001 , 0x000049a0 
+ 00023760  0x00005f22 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00023761  0x00005f23 branch  0x00005cd8 , 0x00000034 
+ 00023762  0x00005f24 fetch  0x00000001 , 0x00004666 
+ 00023763  0x00005f25 store  0x00000001 , 0x000049a2 
+ 00023764  0x00005f27 arg  0x00000001 , 0x00000039 
+ 00023765  0x00005f28 copy  0x00000013 , 0x00000012 
+ 00023766  0x00005f29 arg  0x000049a2 , 0x00000011 
+ 00023767  0x00005f2a branch  0x00006b45 
+ 00023768  0x00005f2d fetch  0x00000001 , 0x000049a0 
+ 00023769  0x00005f2e fetcht  0x00000001 , 0x00004666 
+ 00023770  0x00005f2f isub  0x00000002 , 0x0000003e 
+ 00023771  0x00005f30 rtn  0x00000005 
+ 00023772  0x00005f31 lshift4  0x00000002 , 0x00000002 
+ 00023773  0x00005f32 iadd  0x00000002 , 0x0000003f 
+ 00023774  0x00005f33 store  0x00000001 , 0x000049a2 
+ 00023775  0x00005f35 copy  0x00000013 , 0x0000003f 
+ 00023776  0x00005f36 fetcht  0x00000002 , 0x000049e2 
+ 00023777  0x00005f37 isub  0x00000002 , 0x0000003e 
+ 00023778  0x00005f38 branch  0x00005cd4 , 0x00000005 
+ 00023779  0x00005f3a increase  0xffffffff , 0x00000013 
+ 00023780  0x00005f3b branch  0x00005cd4 
+ 00023781  0x00005f40 fetch  0x00000001 , 0x00004666 
+ 00023782  0x00005f41 beq  0x00000000 , 0x00005cea 
+ 00023783  0x00005f42 beq  0x00000001 , 0x00005cfe 
+ 00023784  0x00005f43 beq  0x00000002 , 0x00005d12 
+ 00023785  0x00005f44 rtn 
+ 00023786  0x00005f47 fetchr  0x00000012 , 0x00000002 , 0x000049e6 
+ 00023787  0x00005f48 copy  0x00000012 , 0x00000013 
+ 00023788  0x00005f4a call  0x00005e29 
+ 00023789  0x00005f4b fetch  0x00000004 , 0x000049da 
+ 00023790  0x00005f4c branch  0x00005cf6 , 0x00000034 
+ 00023791  0x00005f4d store  0x00000004 , 0x000049d6 
+ 00023792  0x00005f4e increase  0x00000004 , 0x00000013 
+ 00023793  0x00005f4f fetch  0x00000002 , 0x000049e8 
+ 00023794  0x00005f50 isub  0x00000013 , 0x0000003e 
+ 00023795  0x00005f51 nrtn  0x00000002 
+ 00023796  0x00005f52 copy  0x00000013 , 0x00000012 
+ 00023797  0x00005f53 branch  0x00005cec 
+ 00023798  0x00005f56 fetch  0x00000004 , 0x000049d6 
+ 00023799  0x00005f57 fetcht  0x00000004 , 0x00004691 
+ 00023800  0x00005f58 isub  0x00000002 , 0x0000003e 
+ 00023801  0x00005f59 rtn  0x00000005 
+ 00023802  0x00005f5a arg  0x00000004 , 0x00000039 
+ 00023803  0x00005f5b arg  0x00004691 , 0x00000011 
+ 00023804  0x00005f5c copy  0x00000013 , 0x00000012 
+ 00023805  0x00005f5d branch  0x00006b45 
+ 00023806  0x00005f60 fetchr  0x00000012 , 0x00000002 , 0x000049ea 
+ 00023807  0x00005f61 copy  0x00000012 , 0x00000013 
+ 00023808  0x00005f63 call  0x00005de1 
+ 00023809  0x00005f64 fetch  0x00000006 , 0x000049a9 
+ 00023810  0x00005f65 branch  0x00005d0a , 0x00000034 
+ 00023811  0x00005f66 store  0x00000006 , 0x000049a3 
+ 00023812  0x00005f67 increase  0x00000006 , 0x00000013 
+ 00023813  0x00005f68 fetch  0x00000002 , 0x000049ec 
+ 00023814  0x00005f69 isub  0x00000013 , 0x0000003e 
+ 00023815  0x00005f6a nrtn  0x00000002 
+ 00023816  0x00005f6b copy  0x00000013 , 0x00000012 
+ 00023817  0x00005f6c branch  0x00005d00 
+ 00023818  0x00005f6f fetch  0x00000006 , 0x000049a3 
+ 00023819  0x00005f70 fetcht  0x00000006 , 0x00004668 
+ 00023820  0x00005f71 isub  0x00000002 , 0x0000003e 
+ 00023821  0x00005f72 rtn  0x00000005 
+ 00023822  0x00005f73 arg  0x00000006 , 0x00000039 
+ 00023823  0x00005f74 arg  0x00004668 , 0x00000011 
+ 00023824  0x00005f75 copy  0x00000013 , 0x00000012 
+ 00023825  0x00005f76 branch  0x00006b45 
+ 00023826  0x00005f7a fetchr  0x00000012 , 0x00000002 , 0x000049f2 
+ 00023827  0x00005f7b copy  0x00000012 , 0x00000013 
+ 00023828  0x00005f7d call  0x00005e05 
+ 00023829  0x00005f7e fetch  0x00000006 , 0x000049c1 
+ 00023830  0x00005f7f branch  0x00005d1e , 0x00000034 
+ 00023831  0x00005f80 store  0x00000006 , 0x000049bb 
+ 00023832  0x00005f81 increase  0x00000006 , 0x00000013 
+ 00023833  0x00005f82 fetch  0x00000002 , 0x000049f4 
+ 00023834  0x00005f83 isub  0x00000013 , 0x0000003e 
+ 00023835  0x00005f84 nrtn  0x00000002 
+ 00023836  0x00005f85 copy  0x00000013 , 0x00000012 
+ 00023837  0x00005f86 branch  0x00005d14 
+ 00023838  0x00005f89 fetch  0x00000006 , 0x000049bb 
+ 00023839  0x00005f8a fetcht  0x00000006 , 0x00004675 
+ 00023840  0x00005f8b isub  0x00000002 , 0x0000003e 
+ 00023841  0x00005f8c rtn  0x00000005 
+ 00023842  0x00005f8d arg  0x00000006 , 0x00000039 
+ 00023843  0x00005f8e arg  0x00004675 , 0x00000011 
+ 00023844  0x00005f8f copy  0x00000013 , 0x00000012 
+ 00023845  0x00005f90 branch  0x00006b45 
+ 00023846  0x00005f95 fetch  0x00000001 , 0x00004666 
+ 00023847  0x00005f96 rtneq  0x00000000 
+ 00023848  0x00005f97 fetchr  0x00000012 , 0x00000002 , 0x000049fe 
+ 00023849  0x00005f98 copy  0x00000012 , 0x00000013 
+ 00023850  0x00005f9a call  0x00005e3d 
+ 00023851  0x00005f9b fetch  0x00000002 , 0x000049e0 
+ 00023852  0x00005f9c branch  0x00005d34 , 0x00000034 
+ 00023853  0x00005f9d store  0x00000002 , 0x000049de 
+ 00023854  0x00005f9e increase  0x00000002 , 0x00000013 
+ 00023855  0x00005f9f fetch  0x00000002 , 0x00004a00 
+ 00023856  0x00005fa0 isub  0x00000013 , 0x0000003e 
+ 00023857  0x00005fa1 nrtn  0x00000002 
+ 00023858  0x00005fa2 copy  0x00000013 , 0x00000012 
+ 00023859  0x00005fa3 branch  0x00005d2a 
+ 00023860  0x00005fa6 fetch  0x00000002 , 0x000049de 
+ 00023861  0x00005fa7 fetcht  0x00000002 , 0x00004695 
+ 00023862  0x00005fa8 isub  0x00000002 , 0x0000003e 
+ 00023863  0x00005fa9 rtn  0x00000005 
+ 00023864  0x00005faa arg  0x00000002 , 0x00000039 
+ 00023865  0x00005fab arg  0x00004695 , 0x00000011 
+ 00023866  0x00005fac copy  0x00000013 , 0x00000012 
+ 00023867  0x00005fad branch  0x00006b45 
+ 00023868  0x00005fb2 fetch  0x00000008 , 0x00004713 
+ 00023869  0x00005fb3 rtnbit0  0x0000000f 
+ 00023870  0x00005fb4 fetchr  0x00000012 , 0x00000002 , 0x000049fa 
+ 00023871  0x00005fb5 copy  0x00000012 , 0x00000013 
+ 00023872  0x00005fb7 call  0x00005e51 
+ 00023873  0x00005fb8 fetch  0x00000001 , 0x000049d4 
+ 00023874  0x00005fb9 branch  0x00005d4a , 0x00000034 
+ 00023875  0x00005fba store  0x00000001 , 0x000049d3 
+ 00023876  0x00005fbb increase  0x00000001 , 0x00000013 
+ 00023877  0x00005fbc fetch  0x00000002 , 0x000049fc 
+ 00023878  0x00005fbd isub  0x00000013 , 0x0000003e 
+ 00023879  0x00005fbe nrtn  0x00000002 
+ 00023880  0x00005fbf copy  0x00000013 , 0x00000012 
+ 00023881  0x00005fc0 branch  0x00005d40 
+ 00023882  0x00005fc3 fetch  0x00000001 , 0x000049d3 
+ 00023883  0x00005fc4 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00023884  0x00005fc5 branch  0x00005d53 , 0x00000034 
+ 00023885  0x00005fc6 fetch  0x00000001 , 0x00004690 
+ 00023886  0x00005fc7 store  0x00000001 , 0x000049d5 
+ 00023887  0x00005fc9 arg  0x00000001 , 0x00000039 
+ 00023888  0x00005fca copy  0x00000013 , 0x00000012 
+ 00023889  0x00005fcb arg  0x000049d5 , 0x00000011 
+ 00023890  0x00005fcc branch  0x00006b45 
+ 00023891  0x00005fcf fetch  0x00000001 , 0x000049d3 
+ 00023892  0x00005fd0 fetcht  0x00000001 , 0x00004690 
+ 00023893  0x00005fd1 isub  0x00000002 , 0x0000003e 
+ 00023894  0x00005fd2 rtn  0x00000005 
+ 00023895  0x00005fd3 lshift4  0x00000002 , 0x00000002 
+ 00023896  0x00005fd4 iadd  0x00000002 , 0x0000003f 
+ 00023897  0x00005fd5 store  0x00000001 , 0x000049d5 
+ 00023898  0x00005fd7 copy  0x00000013 , 0x0000003f 
+ 00023899  0x00005fd8 fetcht  0x00000002 , 0x000049fa 
+ 00023900  0x00005fd9 isub  0x00000002 , 0x0000003e 
+ 00023901  0x00005fda branch  0x00005d4f , 0x00000005 
+ 00023902  0x00005fdc increase  0xffffffff , 0x00000013 
+ 00023903  0x00005fdd branch  0x00005d4f 
+ 00023904  0x00005fe7 call  0x00006cbc 
+ 00023905  0x00005fe8 fetch  0x00000008 , 0x00004713 
+ 00023906  0x00005fe9 isolate1  0x00000009 , 0x0000003f 
+ 00023907  0x00005fea ncall  0x00006cc4 , 0x00000001 
+ 00023908  0x00005feb call  0x00005d66 
+ 00023909  0x00005fec branch  0x00005c80 
+ 00023910  0x00005fef arg  0x00000080 , 0x00000002 
+ 00023911  0x00005ff0 arg  0x00004666 , 0x00000011 
+ 00023912  0x00005ff1 arg  0x00000000 , 0x00000012 
+ 00023913  0x00005ff2 branch  0x00006ce1 
+ 00023914  0x00005ff5 arg  0x00000001 , 0x00000002 
+ 00023915  0x00005ff6 arg  0x00004690 , 0x00000011 
+ 00023916  0x00005ff7 arg  0x0000005a , 0x00000012 
+ 00023917  0x00005ff8 branch  0x00006ce1 
+ 00023918  0x00005ffd call  0x00006c20 
+ 00023919  0x00005ffe call  0x00005d7b 
+ 00023920  0x00005fff call  0x00005d75 
+ 00023921  0x00006000 call  0x00006c4d 
+ 00023922  0x00006001 call  0x00005d82 
+ 00023923  0x00006002 call  0x00005c80 
+ 00023924  0x00006003 branch  0x000055f6 
+ 00023925  0x00006006 setarg  0x000046e6 
+ 00023926  0x00006007 arg  0x00004666 , 0x00000002 
+ 00023927  0x00006008 isub  0x00000002 , 0x00000002 
+ 00023928  0x00006009 fetch  0x00000003 , 0x000046ec 
+ 00023929  0x0000600a arg  0x00004666 , 0x00000011 
+ 00023930  0x0000600b rtn 
+ 00023931  0x0000600e jam  0x000000ab , 0x00000678 
+ 00023932  0x00006010 call  0x0000705b 
+ 00023933  0x00006011 call  0x00006c26 
+ 00023934  0x00006012 arg  0x000046ef , 0x00000011 
+ 00023935  0x00006013 fetcht  0x00000001 , 0x00000678 
+ 00023936  0x00006014 call  0x00005d84 
+ 00023937  0x00006015 branch  0x0000705b 
+ 00023938  0x00006018 jam  0x000000b9 , 0x00000678 
+ 00023939  0x00006019 branch  0x00005d7c 
+ 00023940  0x0000601c istoret  0x00000001 , 0x00000011 
+ 00023941  0x0000601d rshift16  0x0000003f , 0x00000002 
+ 00023942  0x0000601e istoret  0x00000001 , 0x00000005 
+ 00023943  0x0000601f rshift8  0x0000003f , 0x00000002 
+ 00023944  0x00006020 istoret  0x00000001 , 0x00000005 
+ 00023945  0x00006021 istore  0x00000001 , 0x00000005 
+ 00023946  0x00006022 deposit  0x00000011 
+ 00023947  0x00006023 store  0x00000002 , 0x00008084 
+ 00023948  0x00006024 setarg  0x00000000 
+ 00023949  0x00006025 store  0x00000002 , 0x00008088 
+ 00023950  0x00006026 jam  0x00000002 , 0x00008006 
+ 00023951  0x00006027 branch  0x00006be0 
+ 00023952  0x0000602a fetch  0x00000003 , 0x000046ec 
+ 00023953  0x0000602b store  0x00000003 , 0x00004419 
+ 00023954  0x0000602c branch  0x00006bfa 
+ 00023955  0x0000602f copy  0x0000003f , 0x00000013 
+ 00023956  0x00006030 copy  0x00000011 , 0x0000003f 
+ 00023957  0x00006031 increase  0xfffffffc , 0x0000003f 
+ 00023958  0x00006032 copy  0x0000003f , 0x00000012 
+ 00023959  0x00006033 ifetch  0x00000004 , 0x00000012 
+ 00023960  0x00006034 store  0x00000004 , 0x000046ef 
+ 00023961  0x00006035 copy  0x00000013 , 0x0000003f 
+ 00023962  0x00006036 call  0x00006c3c 
+ 00023963  0x00006037 fetch  0x00000004 , 0x000046ef 
+ 00023964  0x00006038 istore  0x00000004 , 0x00000012 
+ 00023965  0x00006039 rtn 
+ 00023966  0x0000603c fetch  0x00000008 , 0x00004713 
+ 00023967  0x0000603d rtnbit0  0x00000012 
+ 00023968  0x0000603e call  0x00005d82 
+ 00023969  0x0000603f call  0x000069e0 
+ 00023970  0x00006040 fetcht  0x00000001 , 0x00004421 
+ 00023971  0x00006041 call  0x00006ef3 
+ 00023972  0x00006042 fetcht  0x00000001 , 0x00004426 
+ 00023973  0x00006043 branch  0x000055b1 
+ 00023974  0x00006048 call  0x00005e43 
+ 00023975  0x00006049 call  0x00005db4 
+ 00023976  0x0000604a call  0x00005dcc 
+ 00023977  0x0000604b call  0x00005e2f 
+ 00023978  0x0000604d arg  0x00000002 , 0x00000039 
+ 00023979  0x0000604e fetch  0x00000002 , 0x00004a02 
+ 00023980  0x0000604f copy  0x0000003f , 0x00000012 
+ 00023981  0x00006050 arg  0x0000468e , 0x00000011 
+ 00023982  0x00006051 call  0x00006b74 
+ 00023983  0x00006052 call  0x00005c80 
+ 00023984  0x00006054 arg  0x00000002 , 0x00000039 
+ 00023985  0x00006055 arg  0x0000468e , 0x00000011 
+ 00023986  0x00006056 fetchr  0x00000012 , 0x00000002 , 0x00004a02 
+ 00023987  0x00006057 branch  0x00006b45 
+ 00023988  0x0000605c fetchr  0x00000012 , 0x00000002 , 0x000049e2 
+ 00023989  0x0000605d copy  0x00000012 , 0x00000013 
+ 00023990  0x0000605f call  0x00005dc0 
+ 00023991  0x00006060 fetch  0x00000001 , 0x000049a1 
+ 00023992  0x00006061 branch  0x00005dc3 , 0x00000034 
+ 00023993  0x00006062 store  0x00000001 , 0x000049a0 
+ 00023994  0x00006063 increase  0x00000001 , 0x00000013 
+ 00023995  0x00006064 fetch  0x00000002 , 0x000049e4 
+ 00023996  0x00006065 isub  0x00000013 , 0x0000003e 
+ 00023997  0x00006066 nbranch  0x00005dc3 , 0x00000002 
+ 00023998  0x00006067 copy  0x00000013 , 0x00000012 
+ 00023999  0x00006068 branch  0x00005db6 
+ 00024000  0x0000606b arg  0x00000001 , 0x00000039 
+ 00024001  0x0000606c arg  0x000049a1 , 0x00000011 
+ 00024002  0x0000606d branch  0x00006b74 
+ 00024003  0x00006070 fetch  0x00000001 , 0x000049a0 
+ 00024004  0x00006071 copy  0x0000003f , 0x00000002 
+ 00024005  0x00006072 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00024006  0x00006073 branch  0x00005dc9 , 0x00000034 
+ 00024007  0x00006074 rshift4  0x0000003f , 0x0000003f 
+ 00024008  0x00006075 branch  0x00005dca 
+ 00024009  0x00006078 copy  0x00000002 , 0x0000003f 
+ 00024010  0x0000607a store  0x00000001 , 0x00004666 
+ 00024011  0x0000607b rtn 
+ 00024012  0x0000607f fetch  0x00000001 , 0x00004666 
+ 00024013  0x00006080 beq  0x00000000 , 0x00005e1d 
+ 00024014  0x00006081 beq  0x00000001 , 0x00005dd1 
+ 00024015  0x00006082 beq  0x00000002 , 0x00005dd3 
+ 00024016  0x00006083 rtn 
+ 00024017  0x00006086 call  0x00005dd5 
+ 00024018  0x00006087 branch  0x00005de7 
+ 00024019  0x0000608a call  0x00005df9 
+ 00024020  0x0000608b branch  0x00005e0b 
+ 00024021  0x0000608f fetchr  0x00000012 , 0x00000002 , 0x000049ea 
+ 00024022  0x00006090 copy  0x00000012 , 0x00000013 
+ 00024023  0x00006092 call  0x00005de1 
+ 00024024  0x00006093 fetch  0x00000006 , 0x000049a9 
+ 00024025  0x00006094 branch  0x00005de4 , 0x00000034 
+ 00024026  0x00006095 store  0x00000006 , 0x000049a3 
+ 00024027  0x00006096 increase  0x00000006 , 0x00000013 
+ 00024028  0x00006097 fetch  0x00000002 , 0x000049ec 
+ 00024029  0x00006098 isub  0x00000013 , 0x0000003e 
+ 00024030  0x00006099 nbranch  0x00005de4 , 0x00000002 
+ 00024031  0x0000609a copy  0x00000013 , 0x00000012 
+ 00024032  0x0000609b branch  0x00005dd7 
+ 00024033  0x0000609e arg  0x00000006 , 0x00000039 
+ 00024034  0x0000609f arg  0x000049a9 , 0x00000011 
+ 00024035  0x000060a0 branch  0x00006b74 
+ 00024036  0x000060a3 fetch  0x00000006 , 0x000049a3 
+ 00024037  0x000060a4 store  0x00000006 , 0x00004668 
+ 00024038  0x000060a5 rtn 
+ 00024039  0x000060a9 fetchr  0x00000012 , 0x00000002 , 0x000049ee 
+ 00024040  0x000060aa copy  0x00000012 , 0x00000013 
+ 00024041  0x000060ac call  0x00005df3 
+ 00024042  0x000060ad fetch  0x00000006 , 0x000049b5 
+ 00024043  0x000060ae branch  0x00005df6 , 0x00000034 
+ 00024044  0x000060af store  0x00000006 , 0x000049af 
+ 00024045  0x000060b0 increase  0x00000006 , 0x00000013 
+ 00024046  0x000060b1 fetch  0x00000002 , 0x000049f0 
+ 00024047  0x000060b2 isub  0x00000013 , 0x0000003e 
+ 00024048  0x000060b3 nbranch  0x00005df6 , 0x00000002 
+ 00024049  0x000060b4 copy  0x00000013 , 0x00000012 
+ 00024050  0x000060b5 branch  0x00005de9 
+ 00024051  0x000060b8 arg  0x00000006 , 0x00000039 
+ 00024052  0x000060b9 arg  0x000049b5 , 0x00000011 
+ 00024053  0x000060ba branch  0x00006b74 
+ 00024054  0x000060bd fetch  0x00000006 , 0x000049af 
+ 00024055  0x000060be store  0x00000006 , 0x0000466e 
+ 00024056  0x000060bf rtn 
+ 00024057  0x000060c4 fetchr  0x00000012 , 0x00000002 , 0x000049f2 
+ 00024058  0x000060c5 copy  0x00000012 , 0x00000013 
+ 00024059  0x000060c7 call  0x00005e05 
+ 00024060  0x000060c8 fetch  0x00000006 , 0x000049c1 
+ 00024061  0x000060c9 branch  0x00005e08 , 0x00000034 
+ 00024062  0x000060ca store  0x00000006 , 0x000049bb 
+ 00024063  0x000060cb increase  0x00000006 , 0x00000013 
+ 00024064  0x000060cc fetch  0x00000002 , 0x000049f4 
+ 00024065  0x000060cd isub  0x00000013 , 0x0000003e 
+ 00024066  0x000060ce nbranch  0x00005e08 , 0x00000002 
+ 00024067  0x000060cf copy  0x00000013 , 0x00000012 
+ 00024068  0x000060d0 branch  0x00005dfb 
+ 00024069  0x000060d3 arg  0x00000006 , 0x00000039 
+ 00024070  0x000060d4 arg  0x000049c1 , 0x00000011 
+ 00024071  0x000060d5 branch  0x00006b74 
+ 00024072  0x000060d8 fetch  0x00000006 , 0x000049bb 
+ 00024073  0x000060d9 store  0x00000006 , 0x00004675 
+ 00024074  0x000060da rtn 
+ 00024075  0x000060de fetchr  0x00000012 , 0x00000002 , 0x000049f6 
+ 00024076  0x000060df copy  0x00000012 , 0x00000013 
+ 00024077  0x000060e1 call  0x00005e17 
+ 00024078  0x000060e2 fetch  0x00000006 , 0x000049cd 
+ 00024079  0x000060e3 branch  0x00005e1a , 0x00000034 
+ 00024080  0x000060e4 store  0x00000006 , 0x000049c7 
+ 00024081  0x000060e5 increase  0x00000006 , 0x00000013 
+ 00024082  0x000060e6 fetch  0x00000002 , 0x000049f8 
+ 00024083  0x000060e7 isub  0x00000013 , 0x0000003e 
+ 00024084  0x000060e8 nbranch  0x00005e1a , 0x00000002 
+ 00024085  0x000060e9 copy  0x00000013 , 0x00000012 
+ 00024086  0x000060ea branch  0x00005e0d 
+ 00024087  0x000060ed arg  0x00000006 , 0x00000039 
+ 00024088  0x000060ee arg  0x000049cd , 0x00000011 
+ 00024089  0x000060ef branch  0x00006b74 
+ 00024090  0x000060f2 fetch  0x00000006 , 0x000049c7 
+ 00024091  0x000060f3 store  0x00000006 , 0x0000467b 
+ 00024092  0x000060f4 rtn 
+ 00024093  0x000060f9 fetchr  0x00000012 , 0x00000002 , 0x000049e6 
+ 00024094  0x000060fa copy  0x00000012 , 0x00000013 
+ 00024095  0x000060fc call  0x00005e29 
+ 00024096  0x000060fd fetch  0x00000004 , 0x000049da 
+ 00024097  0x000060fe branch  0x00005e2c , 0x00000034 
+ 00024098  0x000060ff store  0x00000004 , 0x000049d6 
+ 00024099  0x00006100 increase  0x00000004 , 0x00000013 
+ 00024100  0x00006101 fetch  0x00000002 , 0x000049e8 
+ 00024101  0x00006102 isub  0x00000013 , 0x0000003e 
+ 00024102  0x00006103 nbranch  0x00005e2c , 0x00000002 
+ 00024103  0x00006104 copy  0x00000013 , 0x00000012 
+ 00024104  0x00006105 branch  0x00005e1f 
+ 00024105  0x00006108 arg  0x00000004 , 0x00000039 
+ 00024106  0x00006109 arg  0x000049da , 0x00000011 
+ 00024107  0x0000610a branch  0x00006b74 
+ 00024108  0x0000610d fetch  0x00000004 , 0x000049d6 
+ 00024109  0x0000610e store  0x00000004 , 0x00004691 
+ 00024110  0x0000610f rtn 
+ 00024111  0x00006113 fetch  0x00000001 , 0x00004666 
+ 00024112  0x00006114 rtneq  0x00000000 
+ 00024113  0x00006115 fetchr  0x00000012 , 0x00000002 , 0x000049fe 
+ 00024114  0x00006116 copy  0x00000012 , 0x00000013 
+ 00024115  0x00006118 call  0x00005e3d 
+ 00024116  0x00006119 fetch  0x00000002 , 0x000049e0 
+ 00024117  0x0000611a branch  0x00005e40 , 0x00000034 
+ 00024118  0x0000611b store  0x00000002 , 0x000049de 
+ 00024119  0x0000611c increase  0x00000002 , 0x00000013 
+ 00024120  0x0000611d fetch  0x00000002 , 0x00004a00 
+ 00024121  0x0000611e isub  0x00000013 , 0x0000003e 
+ 00024122  0x0000611f nbranch  0x00005e40 , 0x00000002 
+ 00024123  0x00006120 copy  0x00000013 , 0x00000012 
+ 00024124  0x00006121 branch  0x00005e33 
+ 00024125  0x00006124 arg  0x00000002 , 0x00000039 
+ 00024126  0x00006125 arg  0x000049e0 , 0x00000011 
+ 00024127  0x00006126 branch  0x00006b74 
+ 00024128  0x00006129 fetch  0x00000002 , 0x000049e0 
+ 00024129  0x0000612a store  0x00000002 , 0x00004695 
+ 00024130  0x0000612b rtn 
+ 00024131  0x0000612f fetch  0x00000008 , 0x00004713 
+ 00024132  0x00006130 bbit0  0x0000000f , 0x00005c8c 
+ 00024133  0x00006131 fetchr  0x00000012 , 0x00000002 , 0x000049fa 
+ 00024134  0x00006132 copy  0x00000012 , 0x00000013 
+ 00024135  0x00006134 call  0x00005e51 
+ 00024136  0x00006135 fetch  0x00000001 , 0x000049d4 
+ 00024137  0x00006136 branch  0x00005e54 , 0x00000034 
+ 00024138  0x00006137 store  0x00000001 , 0x000049d3 
+ 00024139  0x00006138 increase  0x00000001 , 0x00000013 
+ 00024140  0x00006139 fetch  0x00000002 , 0x000049fc 
+ 00024141  0x0000613a isub  0x00000013 , 0x0000003e 
+ 00024142  0x0000613b nbranch  0x00005e54 , 0x00000002 
+ 00024143  0x0000613c copy  0x00000013 , 0x00000012 
+ 00024144  0x0000613d branch  0x00005e47 
+ 00024145  0x00006140 arg  0x00000001 , 0x00000039 
+ 00024146  0x00006141 arg  0x000049d4 , 0x00000011 
+ 00024147  0x00006142 branch  0x00006b74 
+ 00024148  0x00006145 fetch  0x00000001 , 0x000049d3 
+ 00024149  0x00006146 copy  0x0000003f , 0x00000002 
+ 00024150  0x00006147 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00024151  0x00006148 branch  0x00005e5a , 0x00000034 
+ 00024152  0x00006149 rshift4  0x0000003f , 0x0000003f 
+ 00024153  0x0000614a branch  0x00005e5b 
+ 00024154  0x0000614d copy  0x00000002 , 0x0000003f 
+ 00024155  0x0000614f store  0x00000001 , 0x00004690 
+ 00024156  0x00006150 rtn 
+ 00024157  0x00006156 bpatch  0x0000008e , 0x00004011 
+ 00024158  0x00006157 call  0x0000620e 
+ 00024159  0x00006158 call  0x000078aa 
+ 00024160  0x00006159 call  0x000056bb 
+ 00024161  0x0000615a call  0x0000580e 
+ 00024162  0x0000615b call  0x00005e66 
+ 00024163  0x0000615c call  0x00005eb6 
+ 00024164  0x0000615d call  0x00005ee7 
+ 00024165  0x0000615e branch  0x0000561c 
+ 00024166  0x00006161 fetch  0x00000008 , 0x00004713 
+ 00024167  0x00006162 bbit1  0x00000029 , 0x00005e6b 
+ 00024168  0x00006163 bbit1  0x00000037 , 0x00005e6b 
+ 00024169  0x00006164 rtn 
+ 00024170  0x00006167 jam  0x00000003 , 0x00004975 
+ 00024171  0x00006169 call  0x00005e6d 
+ 00024172  0x0000616a branch  0x00005e7e 
+ 00024173  0x0000616d bpatch  0x0000008f , 0x00004011 
+ 00024174  0x0000616e fetch  0x00000001 , 0x00004655 
+ 00024175  0x0000616f rtneq  0x000000ff 
+ 00024176  0x00006170 arg  0x00000000 , 0x00000011 
+ 00024177  0x00006171 jam  0x00000006 , 0x00004977 
+ 00024178  0x00006172 fetcht  0x00000001 , 0x00004655 
+ 00024179  0x00006173 call  0x00005e81 
+ 00024180  0x00006174 store  0x00000001 , 0x00004975 
+ 00024181  0x00006175 fetch  0x00000001 , 0x00004654 
+ 00024182  0x00006176 beq  0x000000ff , 0x00005e7c 
+ 00024183  0x00006177 branch  0x000058df 
+ 00024184  0x0000617a call  0x00005e6d 
+ 00024185  0x0000617b copy  0x00000011 , 0x0000003f 
+ 00024186  0x0000617c bbit1  0x00000006 , 0x00005ea4 
+ 00024187  0x0000617d branch  0x00005e97 
+ 00024188  0x00006180 fetcht  0x00000001 , 0x00004655 
+ 00024189  0x00006181 call  0x000055b5 
+ 00024190  0x00006183 copy  0x00000011 , 0x0000003f 
+ 00024191  0x00006184 bbit1  0x00000006 , 0x00005ea2 
+ 00024192  0x00006185 branch  0x00005e97 
+ 00024193  0x00006188 fetch  0x00000008 , 0x00004713 
+ 00024194  0x00006189 bbit1  0x0000002d , 0x00005e8d 
+ 00024195  0x0000618a fetch  0x00000001 , 0x00004975 
+ 00024196  0x0000618b copy  0x0000003f , 0x00000013 
+ 00024197  0x0000618c fetch  0x00000001 , 0x00004654 
+ 00024198  0x0000618d beq  0x000000ff , 0x00005931 
+ 00024199  0x0000618e fetch  0x00000001 , 0x0000497b 
+ 00024200  0x0000618f nbranch  0x00005e8a , 0x00000034 
+ 00024201  0x00006190 branch  0x00005e8f 
+ 00024202  0x00006193 jam  0x00000000 , 0x0000497f 
+ 00024203  0x00006194 jam  0x00000000 , 0x00004975 
+ 00024204  0x00006195 rtn 
+ 00024205  0x00006198 fetch  0x00000001 , 0x00004975 
+ 00024206  0x00006199 branch  0x00005925 
+ 00024207  0x0000619c call  0x00006ee6 
+ 00024208  0x0000619d fetcht  0x00000001 , 0x00004654 
+ 00024209  0x0000619e branch  0x00005e8d , 0x00000001 
+ 00024210  0x0000619f fetcht  0x00000001 , 0x00004654 
+ 00024211  0x000061a0 call  0x00006ef7 
+ 00024212  0x000061a1 fetcht  0x00000001 , 0x00004655 
+ 00024213  0x000061a2 fetch  0x00000001 , 0x00004975 
+ 00024214  0x000061a3 branch  0x00005925 
+ 00024215  0x000061a6 fetch  0x00000001 , 0x0000497f 
+ 00024216  0x000061a7 rtneq  0x00000000 
+ 00024217  0x000061a8 jam  0x00000000 , 0x0000497f 
+ 00024218  0x000061a9 fetch  0x00000008 , 0x00004713 
+ 00024219  0x000061aa rtnbit1  0x00000034 
+ 00024220  0x000061ab fetch  0x00000001 , 0x0000497c 
+ 00024221  0x000061ac sub  0x0000003f , 0x00000014 , 0x0000003e 
+ 00024222  0x000061ad ncall  0x00005ec6 , 0x00000002 
+ 00024223  0x000061ae fetch  0x00000001 , 0x000044eb 
+ 00024224  0x000061af store  0x00000001 , 0x0000497c 
+ 00024225  0x000061b0 rtn 
+ 00024226  0x000061b3 call  0x00005eae 
+ 00024227  0x000061b4 rtn  0x00000028 
+ 00024228  0x000061b5 fetch  0x00000001 , 0x0000497f 
+ 00024229  0x000061b6 rtneq  0x00000001 
+ 00024230  0x000061b7 jam  0x00000001 , 0x0000497f 
+ 00024231  0x000061b8 fetch  0x00000008 , 0x00004713 
+ 00024232  0x000061b9 bbit1  0x00000034 , 0x00005ba3 
+ 00024233  0x000061ba fetch  0x00000001 , 0x00004845 
+ 00024234  0x000061bb rtn  0x00000034 
+ 00024235  0x000061bc fetch  0x00000001 , 0x0000463c 
+ 00024236  0x000061bd store  0x00000001 , 0x00004845 
+ 00024237  0x000061be rtn 
+ 00024238  0x000061c1 disable  0x00000028 
+ 00024239  0x000061c2 fetch  0x00000008 , 0x00004713 
+ 00024240  0x000061c3 rtnbit1  0x0000002d 
+ 00024241  0x000061c5 fetch  0x00000001 , 0x0000496f 
+ 00024242  0x000061c6 rtn  0x00000034 
+ 00024243  0x000061c7 fetch  0x00000001 , 0x00004970 
+ 00024244  0x000061c8 rtn  0x00000034 
+ 00024245  0x000061c9 branch  0x00007dba 
+ 00024246  0x000061cc bpatch  0x00000090 , 0x00004012 
+ 00024247  0x000061cd fetch  0x00000008 , 0x00004713 
+ 00024248  0x000061ce rtnbit0  0x0000002a 
+ 00024249  0x000061cf fetcht  0x00000001 , 0x0000465a 
+ 00024250  0x000061d0 call  0x000055b5 
+ 00024251  0x000061d1 fetcht  0x00000001 , 0x0000465a 
+ 00024252  0x000061d2 call  0x00006ee6 
+ 00024253  0x000061d3 branch  0x00005ec2 , 0x00000001 
+ 00024254  0x000061d5 fetch  0x00000001 , 0x00004666 
+ 00024255  0x000061d6 rtneq  0x00000001 
+ 00024256  0x000061d7 jam  0x00000001 , 0x00004666 
+ 00024257  0x000061d8 branch  0x00005aaa 
+ 00024258  0x000061db fetch  0x00000001 , 0x00004666 
+ 00024259  0x000061dc rtneq  0x00000000 
+ 00024260  0x000061dd jam  0x00000000 , 0x00004666 
+ 00024261  0x000061de branch  0x00006018 
+ 00024262  0x000061e1 bpatch  0x00000091 , 0x00004012 
+ 00024263  0x000061e2 fetch  0x00000001 , 0x0000471b 
+ 00024264  0x000061e3 rtneq  0x00000001 
+ 00024265  0x000061e4 call  0x00005ed3 
+ 00024266  0x000061e5 storet  0x00000001 , 0x00004666 
+ 00024267  0x000061e8 call  0x00005eea 
+ 00024268  0x000061e9 call  0x00005aaa 
+ 00024269  0x000061ea call  0x000042d0 
+ 00024270  0x000061eb call  0x00005eec 
+ 00024271  0x000061ec jam  0x00000001 , 0x00004793 
+ 00024272  0x000061ed branch  0x00005ca3 
+ 00024273  0x000061f0 call  0x00005eea 
+ 00024274  0x000061f1 branch  0x00006ca3 
+ 00024275  0x000061f4 fetcht  0x00000001 , 0x00004666 
+ 00024276  0x000061f5 increase  0x00000001 , 0x00000002 
+ 00024277  0x000061f6 fetch  0x00000008 , 0x00004713 
+ 00024278  0x000061f7 bbit1  0x00000011 , 0x00005eda 
+ 00024279  0x000061f8 sub  0x00000002 , 0x00000002 , 0x0000003e 
+ 00024280  0x000061f9 ncall  0x00005ee1 , 0x00000002 
+ 00024281  0x000061fa rtn 
+ 00024282  0x000061fd fetch  0x00000001 , 0x0000471b 
+ 00024283  0x000061fe increase  0xffffffff , 0x0000003f 
+ 00024284  0x000061ff isub  0x00000002 , 0x0000003e 
+ 00024285  0x00006200 ncall  0x00005edf , 0x00000002 
+ 00024286  0x00006201 rtn 
+ 00024287  0x00006204 arg  0x00000000 , 0x00000002 
+ 00024288  0x00006205 rtn 
+ 00024289  0x00006207 arg  0x00000001 , 0x00000002 
+ 00024290  0x00006208 rtn 
+ 00024291  0x0000620b arg  0x00000001 , 0x00000002 
+ 00024292  0x0000620c arg  0x00004666 , 0x00000011 
+ 00024293  0x0000620d arg  0x00000000 , 0x00000012 
+ 00024294  0x0000620e branch  0x00006cd3 
+ 00024295  0x00006211 fetch  0x00000008 , 0x00004713 
+ 00024296  0x00006212 rtnbit0  0x00000034 
+ 00024297  0x00006213 branch  0x00005e6b 
+ 00024298  0x00006216 arg  0x00000000 , 0x00000007 
+ 00024299  0x00006217 branch  0x00005f00 
+ 00024300  0x00006219 arg  0x00000000 , 0x00000007 
+ 00024301  0x0000621a branch  0x00005f04 
+ 00024302  0x0000621c arg  0x00000003 , 0x00000007 
+ 00024303  0x0000621d branch  0x00005f00 
+ 00024304  0x0000621f arg  0x00000003 , 0x00000007 
+ 00024305  0x00006220 branch  0x00005f04 
+ 00024306  0x00006222 arg  0x00000005 , 0x00000007 
+ 00024307  0x00006223 branch  0x00005f00 
+ 00024308  0x00006225 arg  0x00000005 , 0x00000007 
+ 00024309  0x00006226 branch  0x00005f04 
+ 00024310  0x00006229 arg  0x00000015 , 0x00000007 
+ 00024311  0x0000622a branch  0x00005f00 
+ 00024312  0x0000622d arg  0x00000018 , 0x00000007 
+ 00024313  0x0000622e branch  0x00005f00 
+ 00024314  0x00006231 arg  0x0000000e , 0x00000007 
+ 00024315  0x00006232 branch  0x00005f00 
+ 00024316  0x00006235 arg  0x0000000c , 0x00000007 
+ 00024317  0x00006236 branch  0x00005f00 
+ 00024318  0x00006239 arg  0x0000001c , 0x00000007 
+ 00024319  0x0000623a branch  0x00005f00 
+ 00024320  0x0000623d fetch  0x00000008 , 0x00004713 
+ 00024321  0x0000623e qset1  0x0000003f 
+ 00024322  0x0000623f store  0x00000008 , 0x00004713 
+ 00024323  0x00006240 rtn 
+ 00024324  0x00006243 fetch  0x00000008 , 0x00004713 
+ 00024325  0x00006244 qset0  0x0000003f 
+ 00024326  0x00006245 store  0x00000008 , 0x00004713 
+ 00024327  0x00006246 rtn 
+ 00024328  0x00006249 setarg  0x00000000 
+ 00024329  0x0000624a store  0x00000008 , 0x0000472a 
+ 00024330  0x0000624b store  0x00000008 , 0x00004733 
+ 00024331  0x0000624c fetch  0x00000001 , 0x00004729 
+ 00024332  0x0000624d beq  0x00000002 , 0x00005f12 
+ 00024333  0x0000624e beq  0x00000003 , 0x00005f14 
+ 00024334  0x0000624f beq  0x00000004 , 0x00005f19 
+ 00024335  0x00006250 setarg  0x00070008 
+ 00024336  0x00006252 store  0x00000008 , 0x0000472b 
+ 00024337  0x00006253 rtn 
+ 00024338  0x00006256 setarg  0x00040005 
+ 00024339  0x00006257 branch  0x00005f10 
+ 00024340  0x0000625a setarg  0x00022303 
+ 00024341  0x0000625c store  0x00000008 , 0x0000472a 
+ 00024342  0x0000625d setarg  0x00000003 
+ 00024343  0x0000625e store  0x00000008 , 0x00004733 
+ 00024344  0x0000625f rtn 
+ 00024345  0x00006262 setarg  0x0000cd03 
+ 00024346  0x00006263 branch  0x00005f15 
+ 00024347  0x00006267 bpatch  0x00000092 , 0x00004012 
+ 00024348  0x00006268 fetch  0x00000001 , 0x0000477f 
+ 00024349  0x00006269 increase  0xffffffff , 0x0000003f 
+ 00024350  0x0000626a store  0x00000001 , 0x0000477f 
+ 00024351  0x0000626b fetcht  0x00000001 , 0x00004666 
+ 00024352  0x0000626c sub  0x00000002 , 0x00000001 , 0x0000003e 
+ 00024353  0x0000626d ncall  0x00005ed3 , 0x00000005 
+ 00024354  0x0000626e storet  0x00000001 , 0x00004666 
+ 00024355  0x0000626f call  0x00005ee3 
+ 00024356  0x00006270 call  0x00005c59 
+ 00024357  0x00006271 branch  0x000054a0 
+ 00024358  0x00006276 bpatch  0x00000093 , 0x00004012 
+ 00024359  0x00006277 fetch  0x00000001 , 0x00004957 
+ 00024360  0x00006278 rtneq  0x00000003 
+ 00024361  0x00006279 fetch  0x00000008 , 0x00004713 
+ 00024362  0x0000627a rtnbit0  0x00000038 
+ 00024363  0x0000627b fetch  0x00000004 , 0x00004847 
+ 00024364  0x0000627c rtn  0x00000034 
+ 00024365  0x0000627d call  0x00005fcd 
+ 00024366  0x0000627e setarg  0x00000003 
+ 00024367  0x0000627f call  0x00005fc3 
+ 00024368  0x00006280 call  0x00005fbf , 0x00000034 
+ 00024369  0x00006281 ncall  0x00005fc1 , 0x00000034 
+ 00024370  0x00006282 setarg  0x00000002 
+ 00024371  0x00006283 call  0x00005fc8 
+ 00024372  0x00006284 call  0x00005fbf , 0x00000034 
+ 00024373  0x00006285 fetch  0x00000001 , 0x00004861 
+ 00024374  0x00006286 beq  0x00000001 , 0x00005f3c 
+ 00024375  0x00006288 fetch  0x00000008 , 0x00004713 
+ 00024376  0x00006289 rtnbit0  0x00000038 
+ 00024377  0x0000628a arg  0x00000005 , 0x00000039 
+ 00024378  0x0000628b arg  0x00004861 , 0x00000005 
+ 00024379  0x0000628c branch  0x00007ca1 
+ 00024380  0x0000628f call  0x00005f50 
+ 00024381  0x00006290 fetch  0x00000002 , 0x00004862 
+ 00024382  0x00006291 store  0x00000002 , 0x0000070b 
+ 00024383  0x00006292 fetch  0x00000002 , 0x00004847 
+ 00024384  0x00006293 store  0x00000002 , 0x0000070d 
+ 00024385  0x00006294 call  0x00005f89 
+ 00024386  0x00006295 fetch  0x00000002 , 0x0000070b 
+ 00024387  0x00006296 store  0x00000002 , 0x00004862 
+ 00024388  0x00006297 fetch  0x00000002 , 0x0000070d 
+ 00024389  0x00006298 store  0x00000002 , 0x00004847 
+ 00024390  0x0000629a fetch  0x00000002 , 0x00004864 
+ 00024391  0x0000629b store  0x00000002 , 0x0000070b 
+ 00024392  0x0000629c fetch  0x00000002 , 0x00004849 
+ 00024393  0x0000629d store  0x00000002 , 0x0000070d 
+ 00024394  0x0000629e call  0x00005f91 
+ 00024395  0x0000629f fetch  0x00000002 , 0x0000070b 
+ 00024396  0x000062a0 store  0x00000002 , 0x00004864 
+ 00024397  0x000062a1 fetch  0x00000002 , 0x0000070d 
+ 00024398  0x000062a2 store  0x00000002 , 0x00004849 
+ 00024399  0x000062a3 rtn 
+ 00024400  0x000062a6 fetch  0x00000008 , 0x00004713 
+ 00024401  0x000062a7 rtnbit0  0x00000039 
+ 00024402  0x000062a8 bpatch  0x00000094 , 0x00004012 
+ 00024403  0x000062a9 fetch  0x00000002 , 0x00004862 
+ 00024404  0x000062aa store  0x00000002 , 0x00000712 
+ 00024405  0x000062ab call  0x00005f64 
+ 00024406  0x000062ac store  0x00000002 , 0x00004862 
+ 00024407  0x000062ad fetch  0x00000002 , 0x00004847 
+ 00024408  0x000062ae store  0x00000002 , 0x00000712 
+ 00024409  0x000062af call  0x00005f72 
+ 00024410  0x000062b0 store  0x00000002 , 0x00004847 
+ 00024411  0x000062b1 fetch  0x00000002 , 0x00004864 
+ 00024412  0x000062b2 store  0x00000002 , 0x00000712 
+ 00024413  0x000062b3 call  0x00005f64 
+ 00024414  0x000062b4 store  0x00000002 , 0x00004864 
+ 00024415  0x000062b5 fetch  0x00000002 , 0x00004849 
+ 00024416  0x000062b6 store  0x00000002 , 0x00000712 
+ 00024417  0x000062b7 call  0x00005f72 
+ 00024418  0x000062b8 store  0x00000002 , 0x00004849 
+ 00024419  0x000062b9 rtn 
+ 00024420  0x000062bc fetch  0x00000001 , 0x00000713 
+ 00024421  0x000062bd branch  0x00005f67 , 0x00000034 
+ 00024422  0x000062be branch  0x00005f6c 
+ 00024423  0x000062c1 fetch  0x00000001 , 0x00000712 
+ 00024424  0x000062c2 call  0x00005f7f 
+ 00024425  0x000062c3 store  0x00000001 , 0x00000712 
+ 00024426  0x000062c5 fetch  0x00000002 , 0x00000712 
+ 00024427  0x000062c6 rtn 
+ 00024428  0x000062c8 fetch  0x00000001 , 0x00000712 
+ 00024429  0x000062c9 call  0x00005fbb 
+ 00024430  0x000062ca call  0x00005f7f 
+ 00024431  0x000062cb call  0x00007dc8 , 0x00000034 
+ 00024432  0x000062cc call  0x00005fb7 
+ 00024433  0x000062cd branch  0x00005f6a 
+ 00024434  0x000062d0 fetch  0x00000001 , 0x00000713 
+ 00024435  0x000062d1 branch  0x00005f75 , 0x00000034 
+ 00024436  0x000062d2 branch  0x00005f79 
+ 00024437  0x000062d4 fetch  0x00000001 , 0x00000712 
+ 00024438  0x000062d5 call  0x00005f84 
+ 00024439  0x000062d6 store  0x00000001 , 0x00000712 
+ 00024440  0x000062d7 branch  0x00005f6a 
+ 00024441  0x000062d9 fetch  0x00000001 , 0x00000712 
+ 00024442  0x000062da call  0x00005fbb 
+ 00024443  0x000062db call  0x00005f84 
+ 00024444  0x000062dc call  0x00007dc8 , 0x00000034 
+ 00024445  0x000062dd call  0x00005fb7 
+ 00024446  0x000062de branch  0x00005f6a 
+ 00024447  0x000062e1 mul32  0x0000003f , 0x00000004 , 0x0000003f 
+ 00024448  0x000062e2 div  0x0000003f , 0x00000005 
+ 00024449  0x000062e3 call  0x00007d62 
+ 00024450  0x000062e4 quotient  0x0000003f 
+ 00024451  0x000062e5 rtn 
+ 00024452  0x000062e7 mul32  0x0000003f , 0x0000000c , 0x0000003f 
+ 00024453  0x000062e8 div  0x0000003f , 0x0000000a 
+ 00024454  0x000062e9 call  0x00007d62 
+ 00024455  0x000062ea quotient  0x0000003f 
+ 00024456  0x000062eb rtn 
+ 00024457  0x000062ee fetch  0x00000002 , 0x0000070b 
+ 00024458  0x000062ef fetcht  0x00000002 , 0x0000070d 
+ 00024459  0x000062f0 iadd  0x00000002 , 0x0000003f 
+ 00024460  0x000062f1 fetcht  0x00000001 , 0x00004866 
+ 00024461  0x000062f2 iadd  0x00000002 , 0x0000003f 
+ 00024462  0x000062f3 and  0x0000003f , 0x00000001 , 0x00000002 
+ 00024463  0x000062f4 storet  0x00000001 , 0x00004866 
+ 00024464  0x000062f5 branch  0x00005f99 
+ 00024465  0x000062f8 fetch  0x00000002 , 0x0000070b 
+ 00024466  0x000062f9 fetcht  0x00000002 , 0x0000070d 
+ 00024467  0x000062fa iadd  0x00000002 , 0x0000003f 
+ 00024468  0x000062fb fetcht  0x00000001 , 0x00004867 
+ 00024469  0x000062fc iadd  0x00000002 , 0x0000003f 
+ 00024470  0x000062fd and  0x0000003f , 0x00000001 , 0x00000002 
+ 00024471  0x000062fe storet  0x00000001 , 0x00004867 
+ 00024472  0x000062ff branch  0x00005f99 
+ 00024473  0x00006302 store  0x00000003 , 0x0000070f 
+ 00024474  0x00006303 isolate1  0x00000010 , 0x0000003f 
+ 00024475  0x00006304 branch  0x00005fa3 , 0x00000001 
+ 00024476  0x00006305 fetch  0x00000001 , 0x00000710 
+ 00024477  0x00006306 beq  0x000000ff , 0x00005faa 
+ 00024478  0x00006307 fetch  0x00000001 , 0x0000070f 
+ 00024479  0x00006309 rshift  0x0000003f , 0x0000003f 
+ 00024480  0x0000630a store  0x00000002 , 0x0000070b 
+ 00024481  0x0000630b store  0x00000002 , 0x0000070d 
+ 00024482  0x0000630c rtn 
+ 00024483  0x0000630e fetch  0x00000001 , 0x00000710 
+ 00024484  0x0000630f beq  0x00000000 , 0x00005fa7 
+ 00024485  0x00006310 fetch  0x00000003 , 0x0000070f 
+ 00024486  0x00006311 branch  0x00005f9f 
+ 00024487  0x00006313 jam  0x00000000 , 0x00000711 
+ 00024488  0x00006314 fetch  0x00000001 , 0x0000070f 
+ 00024489  0x00006315 branch  0x00005f9f 
+ 00024490  0x00006318 fetch  0x00000001 , 0x0000070f 
+ 00024491  0x00006319 call  0x00005fb5 
+ 00024492  0x0000631a store  0x00000001 , 0x0000070b 
+ 00024493  0x0000631b store  0x00000001 , 0x0000070d 
+ 00024494  0x0000631c branch  0x00005fb3 , 0x00000034 
+ 00024495  0x0000631d setarg  0x000000ff 
+ 00024496  0x0000631f store  0x00000001 , 0x0000070c 
+ 00024497  0x00006320 store  0x00000001 , 0x0000070e 
+ 00024498  0x00006321 rtn 
+ 00024499  0x00006323 setarg  0x00000000 
+ 00024500  0x00006324 branch  0x00005fb0 
+ 00024501  0x00006327 call  0x00005fbb 
+ 00024502  0x00006328 rshift  0x0000003f , 0x0000003f 
+ 00024503  0x0000632a call  0x00005fbc 
+ 00024504  0x0000632b sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00024505  0x0000632c store  0x00000001 , 0x00000712 
+ 00024506  0x0000632d rtn 
+ 00024507  0x00006330 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00024508  0x00006332 store  0x00000001 , 0x00000684 
+ 00024509  0x00006333 fetch  0x00000001 , 0x00000684 
+ 00024510  0x00006334 rtn 
+ 00024511  0x00006337 jam  0x00000000 , 0x00004861 
+ 00024512  0x00006338 rtn 
+ 00024513  0x0000633a jam  0x00000001 , 0x00004861 
+ 00024514  0x0000633b rtn 
+ 00024515  0x0000633f isub  0x00000011 , 0x0000003e 
+ 00024516  0x00006340 nbranch  0x00007dc8 , 0x00000002 
+ 00024517  0x00006341 isub  0x00000012 , 0x0000003e 
+ 00024518  0x00006342 nbranch  0x00007dc8 , 0x00000002 
+ 00024519  0x00006343 branch  0x00007dca 
+ 00024520  0x00006345 isub  0x00000011 , 0x0000003e 
+ 00024521  0x00006346 nrtn  0x00000002 
+ 00024522  0x00006347 isub  0x00000012 , 0x0000003e 
+ 00024523  0x00006348 nrtn  0x00000002 
+ 00024524  0x00006349 branch  0x00007dca 
+ 00024525  0x0000634c fetch  0x00000002 , 0x00004847 
+ 00024526  0x0000634d call  0x00005fd4 
+ 00024527  0x0000634e copy  0x0000003f , 0x00000011 
+ 00024528  0x0000634f fetch  0x00000002 , 0x00004849 
+ 00024529  0x00006350 call  0x00005fd4 
+ 00024530  0x00006351 copy  0x0000003f , 0x00000012 
+ 00024531  0x00006352 rtn 
+ 00024532  0x00006355 store  0x00000002 , 0x0000070d 
+ 00024533  0x00006356 fetch  0x00000001 , 0x0000070e 
+ 00024534  0x00006357 beq  0x000000ff , 0x00005fda 
+ 00024535  0x00006358 fetch  0x00000001 , 0x0000070d 
+ 00024536  0x0000635a and_into  0x000000ff , 0x0000003f 
+ 00024537  0x0000635c rtn 
+ 00024538  0x0000635e fetch  0x00000002 , 0x0000070d 
+ 00024539  0x0000635f sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00024540  0x00006360 branch  0x00005fd8 
+ 00024541  0x00006363 arg  0x0000461f , 0x00000013 
+ 00024542  0x00006364 arg  0x00005fe0 , 0x00000012 
+ 00024543  0x00006365 branch  0x000042e0 
+ 00024544  0x00006367 fetch  0x00000004 , 0x00004613 
+ 00024545  0x00006368 store  0x00000004 , 0x000045af 
+ 00024546  0x00006369 jam  0x00000001 , 0x0000477d 
+ 00024547  0x0000636a rtn 
+ 00024548  0x0000636e fetch  0x00000001 , 0x00004740 
+ 00024549  0x0000636f beq  0x00000000 , 0x00005fec 
+ 00024550  0x00006370 beq  0x00000001 , 0x00005fee 
+ 00024551  0x00006371 beq  0x00000002 , 0x00005fe9 
+ 00024552  0x00006372 beq  0x00000003 , 0x00005ff0 
+ 00024553  0x00006374 setarg  0x000ea600 
+ 00024554  0x00006376 store  0x00000004 , 0x00004613 
+ 00024555  0x00006377 rtn 
+ 00024556  0x00006379 setarg  0x0005e740 
+ 00024557  0x0000637a branch  0x00005fea 
+ 00024558  0x0000637c setarg  0x000927c0 
+ 00024559  0x0000637d branch  0x00005fea 
+ 00024560  0x0000637f setarg  0x00124f80 
+ 00024561  0x00006380 branch  0x00005fea 
+ 00024562  0x00006383 bpatch  0x00000095 , 0x00004012 
+ 00024563  0x00006384 jam  0x00000000 , 0x00004600 
+ 00024564  0x00006385 call  0x00003647 
+ 00024565  0x00006386 setarg  0xffffffff 
+ 00024566  0x00006387 store  0x00000004 , 0x000045af 
+ 00024567  0x00006388 setarg  0x00000000 
+ 00024568  0x00006389 store  0x00000007 , 0x00004846 
+ 00024569  0x0000638a jam  0x00000001 , 0x0000473f 
+ 00024570  0x0000638b call  0x000059ed 
+ 00024571  0x0000638c call  0x000054dc 
+ 00024572  0x0000638d branch  0x0000622b 
+ 00024573  0x00006390 fetch  0x00000001 , 0x0000473f 
+ 00024574  0x00006391 ncall  0x00006001 , 0x00000034 
+ 00024575  0x00006392 jam  0x00000000 , 0x0000473f 
+ 00024576  0x00006393 rtn 
+ 00024577  0x00006396 call  0x0000594c 
+ 00024578  0x00006397 fetch  0x00000008 , 0x00004713 
+ 00024579  0x00006398 rtnbit0  0x0000003c 
+ 00024580  0x0000639a fetch  0x00000001 , 0x0000464a 
+ 00024581  0x0000639b arg  0x00000040 , 0x00000002 
+ 00024582  0x0000639c call  0x00006f21 
+ 00024583  0x0000639d fetch  0x00000001 , 0x0000464b 
+ 00024584  0x0000639e arg  0x00000040 , 0x00000002 
+ 00024585  0x0000639f branch  0x00006f21 
+ 00024586  0x000063a2 call  0x0000600e 
+ 00024587  0x000063a3 fetch  0x00000001 , 0x0000473f 
+ 00024588  0x000063a4 nbranch  0x00006235 , 0x00000034 
+ 00024589  0x000063a5 branch  0x00003610 
+ 00024590  0x000063a8 fetch  0x00000004 , 0x000045e8 
+ 00024591  0x000063a9 fetcht  0x00000004 , 0x000045e4 
+ 00024592  0x000063aa isub  0x00000002 , 0x0000003e 
+ 00024593  0x000063ab branch  0x00006013 , 0x00000005 
+ 00024594  0x000063ac branch  0x00006016 
+ 00024595  0x000063af jam  0x00000000 , 0x00004143 
+ 00024596  0x000063b0 jam  0x000000aa , 0x00004141 
+ 00024597  0x000063b1 rtn 
+ 00024598  0x000063b3 jam  0x000000ff , 0x00004143 
+ 00024599  0x000063b4 rtn 
+ 00024600  0x000063b7 set0  0x00000026 , 0x00000000 
+ 00024601  0x000063b8 jam  0x00000000 , 0x000045fc 
+ 00024602  0x000063b9 arg  0x00000001 , 0x00000007 
+ 00024603  0x000063ba branch  0x00005f04 
+ 00024604  0x000063bd fetch  0x00000008 , 0x00004713 
+ 00024605  0x000063be bbit0  0x00000011 , 0x0000602a 
+ 00024606  0x000063bf call  0x00006195 
+ 00024607  0x000063c0 call  0x000054ac 
+ 00024608  0x000063c1 branch  0x00006067 , 0x00000028 
+ 00024609  0x000063c2 fetch  0x00000008 , 0x00004713 
+ 00024610  0x000063c3 bbit1  0x00000030 , 0x0000602f 
+ 00024611  0x000063c4 bbit0  0x00000031 , 0x0000602f 
+ 00024612  0x000063c5 call  0x00005883 
+ 00024613  0x000063c6 and  0x00000011 , 0x00000007 , 0x0000003f 
+ 00024614  0x000063c7 fetcht  0x00000001 , 0x00004728 
+ 00024615  0x000063c8 isub  0x00000002 , 0x0000003e 
+ 00024616  0x000063c9 branch  0x00006047 , 0x00000005 
+ 00024617  0x000063ca branch  0x0000602f 
+ 00024618  0x000063cd fetch  0x00000001 , 0x0000477f 
+ 00024619  0x000063ce nbranch  0x00005f1b , 0x00000034 
+ 00024620  0x000063cf rtn 
+ 00024621  0x000063d2 call  0x000054ac 
+ 00024622  0x000063d3 branch  0x00006038 , 0x00000028 
+ 00024623  0x000063d5 jam  0x00000000 , 0x00004666 
+ 00024624  0x000063d6 fetch  0x00000002 , 0x00004721 
+ 00024625  0x000063d7 store  0x00000002 , 0x000045de 
+ 00024626  0x000063d8 jam  0x00000002 , 0x000045e2 
+ 00024627  0x000063d9 branch  0x00003534 
+ 00024628  0x000063dc fetch  0x00000002 , 0x000045d6 
+ 00024629  0x000063dd store  0x00000002 , 0x000045de 
+ 00024630  0x000063de jam  0x00000004 , 0x000045e2 
+ 00024631  0x000063df branch  0x00003534 
+ 00024632  0x000063e2 fetch  0x00000001 , 0x00004666 
+ 00024633  0x000063e3 beq  0x00000000 , 0x00006067 
+ 00024634  0x000063e4 call  0x00005aa8 
+ 00024635  0x000063e6 call  0x00006018 
+ 00024636  0x000063e7 jam  0x00000001 , 0x00004666 
+ 00024637  0x000063e8 call  0x00005c6f 
+ 00024638  0x000063e9 branch  0x000054a0 
+ 00024639  0x000063ec call  0x000054ac 
+ 00024640  0x000063ed branch  0x000054cd , 0x00000028 
+ 00024641  0x000063ee branch  0x00005c1a 
+ 00024642  0x000063f1 call  0x000054ac 
+ 00024643  0x000063f2 rtn  0x00000028 
+ 00024644  0x000063f3 fetch  0x00000008 , 0x00004713 
+ 00024645  0x000063f4 bbit1  0x0000003e , 0x00005ca3 
+ 00024646  0x000063f5 rtn 
+ 00024647  0x000063f8 call  0x00006195 
+ 00024648  0x000063f9 jam  0x00000000 , 0x000045e2 
+ 00024649  0x000063fa arg  0x00000001 , 0x00000007 
+ 00024650  0x000063fb call  0x00005f00 
+ 00024651  0x000063fc setarg  0x00000000 
+ 00024652  0x000063fd store  0x00000002 , 0x000045de 
+ 00024653  0x000063fe call  0x00005c39 
+ 00024654  0x000063ff jam  0x00000001 , 0x00004589 
+ 00024655  0x00006400 fetch  0x00000008 , 0x00004713 
+ 00024656  0x00006401 bbit0  0x00000016 , 0x00003291 
+ 00024657  0x00006402 jam  0x00000002 , 0x00004589 
+ 00024658  0x00006403 branch  0x00003291 
+ 00024659  0x00006406 fetch  0x00000001 , 0x00004600 
+ 00024660  0x00006407 nbranch  0x00005ff2 , 0x00000034 
+ 00024661  0x00006408 fetch  0x00000001 , 0x000045e2 
+ 00024662  0x00006409 beq  0x00000002 , 0x0000605f 
+ 00024663  0x0000640a beq  0x00000004 , 0x0000606b 
+ 00024664  0x0000640b beq  0x00000003 , 0x00006070 
+ 00024665  0x0000640d call  0x00006018 
+ 00024666  0x0000640e fetch  0x00000001 , 0x0000477f 
+ 00024667  0x0000640f nbranch  0x00005f1b , 0x00000034 
+ 00024668  0x00006410 fetch  0x00000001 , 0x00004666 
+ 00024669  0x00006411 beq  0x00000000 , 0x000054cd 
+ 00024670  0x00006412 rtn 
+ 00024671  0x00006415 fetch  0x00000008 , 0x00004713 
+ 00024672  0x00006416 bbit1  0x0000003e , 0x00006034 
+ 00024673  0x00006417 bbit1  0x00000030 , 0x00006034 
+ 00024674  0x00006418 bbit0  0x0000003a , 0x00006067 
+ 00024675  0x00006419 fetch  0x00000004 , 0x00004691 
+ 00024676  0x0000641a fetcht  0x00000004 , 0x000046e6 
+ 00024677  0x0000641b isub  0x00000002 , 0x0000003e 
+ 00024678  0x0000641c branch  0x00006047 , 0x00000005 
+ 00024679  0x0000641e fetch  0x00000002 , 0x000045dc 
+ 00024680  0x0000641f store  0x00000002 , 0x000045de 
+ 00024681  0x00006420 jam  0x00000003 , 0x000045e2 
+ 00024682  0x00006421 branch  0x00003534 
+ 00024683  0x00006424 fetch  0x00000008 , 0x00004713 
+ 00024684  0x00006425 bbit0  0x0000003e , 0x00006059 
+ 00024685  0x00006426 fetch  0x00000001 , 0x0000471b 
+ 00024686  0x00006427 beq  0x00000001 , 0x00006059 
+ 00024687  0x00006428 branch  0x0000603b 
+ 00024688  0x0000642b fetch  0x00000008 , 0x00004713 
+ 00024689  0x0000642c bbit0  0x0000003e , 0x00006059 
+ 00024690  0x0000642d bbit1  0x00000013 , 0x00006059 
+ 00024691  0x0000642e bbit1  0x00000012 , 0x00006059 
+ 00024692  0x0000642f branch  0x00006035 
+ 00024693  0x00006432 fetch  0x00000004 , 0x0000458f 
+ 00024694  0x00006433 store  0x00000004 , 0x000045e8 
+ 00024695  0x00006434 store  0x00000004 , 0x00004691 
+ 00024696  0x00006435 call  0x0000355a 
+ 00024697  0x00006436 call  0x00005c0b 
+ 00024698  0x00006437 call  0x0000618e 
+ 00024699  0x00006438 call  0x00005a73 
+ 00024700  0x00006439 jam  0x00000000 , 0x0000477d 
+ 00024701  0x0000643a jam  0x00000000 , 0x000045fc 
+ 00024702  0x0000643b jam  0x00000000 , 0x000045e2 
+ 00024703  0x0000643c fetch  0x00000004 , 0x000045e8 
+ 00024704  0x0000643d fetch  0x00000004 , 0x000045e4 
+ 00024705  0x0000643e isub  0x00000002 , 0x0000003e 
+ 00024706  0x0000643f rtn  0x00000005 
+ 00024707  0x00006440 branch  0x00006042 
+ 00024708  0x00006443 call  0x00005a73 
+ 00024709  0x00006444 call  0x00005a84 
+ 00024710  0x00006446 call  0x0000618e 
+ 00024711  0x00006447 call  0x00005c0b 
+ 00024712  0x00006448 arg  0x00000001 , 0x00000007 
+ 00024713  0x00006449 call  0x00005f04 
+ 00024714  0x0000644a setarg  0x00000000 
+ 00024715  0x0000644b store  0x00000002 , 0x000045d8 
+ 00024716  0x0000644c store  0x00000002 , 0x000045de 
+ 00024717  0x0000644d store  0x00000001 , 0x000045fc 
+ 00024718  0x0000644e store  0x00000001 , 0x00004860 
+ 00024719  0x0000644f store  0x00000001 , 0x000045e2 
+ 00024720  0x00006452 fetch  0x00000004 , 0x0000458f 
+ 00024721  0x00006453 store  0x00000004 , 0x000045e8 
+ 00024722  0x00006454 store  0x00000004 , 0x00004691 
+ 00024723  0x00006455 branch  0x00005ca3 
+ 00024724  0x00006458 call  0x00007de2 
+ 00024725  0x00006459 branch  0x000023fd 
+ 00024726  0x0000645c bpatch  0x00000096 , 0x00004012 
+ 00024727  0x0000645d rtnmark0  0x00000026 
+ 00024728  0x0000645e call  0x00005601 
+ 00024729  0x0000645f nrtn  0x00000028 
+ 00024730  0x00006460 fetch  0x00000001 , 0x0000477c 
+ 00024731  0x00006461 jam  0x00000000 , 0x0000477c 
+ 00024732  0x00006462 ncall  0x00006094 , 0x00000034 
+ 00024733  0x00006464 fetch  0x00000008 , 0x00004713 
+ 00024734  0x00006465 bbit0  0x00000016 , 0x000060a1 
+ 00024735  0x00006466 fetch  0x00000001 , 0x0000496c 
+ 00024736  0x00006467 nbranch  0x000060b6 , 0x00000034 
+ 00024737  0x00006469 call  0x00005a74 
+ 00024738  0x0000646a fetch  0x00000001 , 0x00004589 
+ 00024739  0x0000646b bbit1  0x00000001 , 0x000060b0 
+ 00024740  0x0000646c fetcht  0x00000001 , 0x0000451a 
+ 00024741  0x0000646d fetch  0x00000001 , 0x00004846 
+ 00024742  0x0000646e ior  0x00000002 , 0x0000003f 
+ 00024743  0x0000646f store  0x00000001 , 0x00004846 
+ 00024744  0x00006470 fetcht  0x00000001 , 0x0000451f 
+ 00024745  0x00006471 fetch  0x00000001 , 0x0000484b 
+ 00024746  0x00006472 iadd  0x00000002 , 0x0000003f 
+ 00024747  0x00006473 store  0x00000001 , 0x0000484b 
+ 00024748  0x00006474 fetcht  0x00000001 , 0x00004520 
+ 00024749  0x00006475 fetch  0x00000001 , 0x0000484c 
+ 00024750  0x00006476 iadd  0x00000002 , 0x0000003f 
+ 00024751  0x00006477 store  0x00000001 , 0x0000484c 
+ 00024752  0x00006479 jam  0x00000001 , 0x00004589 
+ 00024753  0x0000647a arg  0x00000007 , 0x00000011 
+ 00024754  0x0000647b arg  0x00004846 , 0x00000012 
+ 00024755  0x0000647c fetch  0x00000002 , 0x0000484b 
+ 00024756  0x0000647d rtn  0x00000034 
+ 00024757  0x0000647e branch  0x000036db 
+ 00024758  0x00006481 jam  0x00000002 , 0x00004589 
+ 00024759  0x00006482 arg  0x00000009 , 0x00000011 
+ 00024760  0x00006483 fetch  0x00000001 , 0x0000496d 
+ 00024761  0x00006484 nbranch  0x000060bc , 0x00000034 
+ 00024762  0x00006485 arg  0x00004733 , 0x00000012 
+ 00024763  0x00006486 rtn 
+ 00024764  0x00006488 arg  0x0000472a , 0x00000012 
+ 00024765  0x00006489 rtn 
+ 00024766  0x0000648f setarg  0x00000000 
+ 00024767  0x00006490 store  0x00000003 , 0x000046f8 
+ 00024768  0x00006491 rtn 
+ 00024769  0x00006494 fetch  0x00000008 , 0x00004713 
+ 00024770  0x00006495 rtnbit0  0x0000000e 
+ 00024771  0x00006496 fetch  0x00000001 , 0x0000477d 
+ 00024772  0x00006497 rtn  0x00000034 
+ 00024773  0x00006498 fetch  0x00000001 , 0x00004602 
+ 00024774  0x00006499 rtn  0x00000034 
+ 00024775  0x0000649a fetch  0x00000001 , 0x000046f5 
+ 00024776  0x0000649b increase  0x00000001 , 0x0000003f 
+ 00024777  0x0000649c and_into  0x00000003 , 0x0000003f 
+ 00024778  0x0000649d store  0x00000001 , 0x000046f5 
+ 00024779  0x0000649e nrtn  0x00000034 
+ 00024780  0x0000649f jam  0x00000000 , 0x000046f6 
+ 00024781  0x000064a1 bpatch  0x00000097 , 0x00004012 
+ 00024782  0x000064a2 fetch  0x00000001 , 0x000046f6 
+ 00024783  0x000064a3 increase  0x00000001 , 0x0000003f 
+ 00024784  0x000064a4 store  0x00000001 , 0x000046f6 
+ 00024785  0x000064a5 sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00024786  0x000064a6 nbranch  0x000060d9 , 0x00000002 
+ 00024787  0x000064a7 call  0x0000357f 
+ 00024788  0x000064a8 call  0x00003651 
+ 00024789  0x000064a9 nbranch  0x000060df , 0x00000018 
+ 00024790  0x000064aa nbranch  0x000060df , 0x0000002f 
+ 00024791  0x000064ab call  0x000060f2 
+ 00024792  0x000064ac call  0x000060e9 
+ 00024793  0x000064ae call  0x0000357b 
+ 00024794  0x000064af fetch  0x00000001 , 0x000046f7 
+ 00024795  0x000064b0 increase  0x00000001 , 0x0000003f 
+ 00024796  0x000064b1 store  0x00000001 , 0x000046f7 
+ 00024797  0x000064b2 beq  0x00000010 , 0x000060e1 
+ 00024798  0x000064b3 rtn 
+ 00024799  0x000064b6 call  0x00003222 
+ 00024800  0x000064b7 branch  0x000060cd 
+ 00024801  0x000064ba jam  0x00000000 , 0x000046f7 
+ 00024802  0x000064bb fetch  0x00000001 , 0x000046f8 
+ 00024803  0x000064bc rtnbit1  0x00000000 
+ 00024804  0x000064bd set1  0x00000000 , 0x0000003f 
+ 00024805  0x000064be store  0x00000001 , 0x000046f8 
+ 00024806  0x000064bf fetch  0x00000002 , 0x00004723 
+ 00024807  0x000064c0 store  0x00000002 , 0x00004781 
+ 00024808  0x000064c1 branch  0x000059ed 
+ 00024809  0x000064c4 fetch  0x00000001 , 0x00004602 
+ 00024810  0x000064c5 branch  0x000060be , 0x00000034 
+ 00024811  0x000064c6 jam  0x00000000 , 0x000046f7 
+ 00024812  0x000064c7 fetch  0x00000001 , 0x000046f8 
+ 00024813  0x000064c8 rtnbit0  0x00000000 
+ 00024814  0x000064c9 set0  0x00000000 , 0x0000003f 
+ 00024815  0x000064ca store  0x00000001 , 0x000046f8 
+ 00024816  0x000064cb call  0x00005c0b 
+ 00024817  0x000064cc branch  0x0000594c 
+ 00024818  0x000064cf call  0x0000366e 
+ 00024819  0x000064d0 fetch  0x00000001 , 0x000044f8 
+ 00024820  0x000064d1 compare  0x00000008 , 0x0000003f , 0x000000f8 
+ 00024821  0x000064d2 nrtn  0x00000001 
+ 00024822  0x000064d3 fetch  0x00000001 , 0x000044f9 
+ 00024823  0x000064d4 beq  0x000000ff , 0x00005ff2 
+ 00024824  0x000064d5 rtn 
+ 00024825  0x000064db fetch  0x00000001 , 0x00004793 
+ 00024826  0x000064dc nrtn  0x00000034 
+ 00024827  0x000064dd call  0x00005e78 
+ 00024828  0x000064de call  0x000060fe 
+ 00024829  0x000064df branch  0x00003662 
+ 00024830  0x000064e2 arg  0x0000000c , 0x00000007 
+ 00024831  0x000064e3 call  0x00007cef 
+ 00024832  0x000064e4 nrtn  0x00000034 
+ 00024833  0x000064e5 call  0x00006106 
+ 00024834  0x000064e6 call  0x0000572c 
+ 00024835  0x000064e8 arg  0x0000000c , 0x00000007 
+ 00024836  0x000064e9 setarg  0x000000a0 
+ 00024837  0x000064ea branch  0x00007ce1 
+ 00024838  0x000064ed fetch  0x00000008 , 0x00004713 
+ 00024839  0x000064ee rtnbit0  0x00000028 
+ 00024840  0x000064f0 branch  0x000056bb 
+ 00024841  0x000064f4 fetch  0x00000001 , 0x00004666 
+ 00024842  0x000064f5 bne  0x00000000 , 0x00002421 
+ 00024843  0x000064f6 fetch  0x00000001 , 0x000045ca 
+ 00024844  0x000064f7 rtn  0x00000034 
+ 00024845  0x000064f9 jam  0x00000002 , 0x00008042 
+ 00024846  0x000064fa jam  0x000000f8 , 0x00008130 
+ 00024847  0x000064fb rtn 
+ 00024848  0x00006501 fetch  0x00000001 , 0x0000465c 
+ 00024849  0x00006502 rtneq  0x000000ff 
+ 00024850  0x00006503 fetch  0x00000002 , 0x00004781 
+ 00024851  0x00006504 rtn  0x00000034 
+ 00024852  0x00006505 fetch  0x00000002 , 0x00004725 
+ 00024853  0x00006506 fetcht  0x00000002 , 0x00004781 
+ 00024854  0x00006507 isub  0x00000002 , 0x00000002 
+ 00024855  0x00006508 fetch  0x00000002 , 0x0000470f 
+ 00024856  0x00006509 isub  0x00000002 , 0x0000003f 
+ 00024857  0x0000650a branch  0x0000611c , 0x00000002 
+ 00024858  0x0000650c fetcht  0x00000001 , 0x0000465c 
+ 00024859  0x0000650d branch  0x000061e5 
+ 00024860  0x0000650f fetcht  0x00000001 , 0x0000465c 
+ 00024861  0x00006510 branch  0x000061e4 
+ 00024862  0x00006518 arg  0x00004711 , 0x00000013 
+ 00024863  0x00006519 arg  0x00006121 , 0x00000012 
+ 00024864  0x0000651a branch  0x000042e0 
+ 00024865  0x0000651d bpatch  0x00000098 , 0x00004013 
+ 00024866  0x0000651e fetch  0x00000001 , 0x00004957 
+ 00024867  0x0000651f beq  0x00000003 , 0x00006131 
+ 00024868  0x00006520 beq  0x0000000b , 0x00006131 
+ 00024869  0x00006521 fetcht  0x00000001 , 0x00004690 
+ 00024870  0x00006522 increase  0x00000002 , 0x00000002 
+ 00024871  0x00006524 sub  0x00000002 , 0x00000003 , 0x0000003e 
+ 00024872  0x00006525 call  0x00006134 , 0x00000002 
+ 00024873  0x00006526 ncall  0x00006138 , 0x00000002 
+ 00024874  0x00006527 copy  0x00000002 , 0x0000003f 
+ 00024875  0x00006528 iadd  0x0000003f , 0x0000003f 
+ 00024876  0x00006529 store  0x00000001 , 0x0000470c 
+ 00024877  0x0000652b jam  0x00000004 , 0x000046fe 
+ 00024878  0x0000652c call  0x00006185 
+ 00024879  0x0000652d jam  0x00000001 , 0x000046fc 
+ 00024880  0x0000652e branch  0x00006192 
+ 00024881  0x00006531 fetcht  0x00000001 , 0x00004690 
+ 00024882  0x00006532 increase  0x00000001 , 0x00000002 
+ 00024883  0x00006533 branch  0x00006127 
+ 00024884  0x00006536 fetch  0x00000008 , 0x00004713 
+ 00024885  0x00006537 rtnbit0  0x0000001c 
+ 00024886  0x00006538 increase  0x00000001 , 0x00000002 
+ 00024887  0x00006539 rtn 
+ 00024888  0x0000653b increase  0xfffffffd , 0x00000002 
+ 00024889  0x0000653c rtn 
+ 00024890  0x00006540 fetch  0x00000001 , 0x00004661 
+ 00024891  0x00006541 rtneq  0x000000ff 
+ 00024892  0x00006542 fetch  0x00000002 , 0x00004790 
+ 00024893  0x00006543 nrtn  0x00000034 
+ 00024894  0x00006544 fetch  0x00000002 , 0x000045d8 
+ 00024895  0x00006545 nrtn  0x00000034 
+ 00024896  0x00006546 fetch  0x00000002 , 0x000045de 
+ 00024897  0x00006547 nrtn  0x00000034 
+ 00024898  0x00006548 fetch  0x00000001 , 0x00004701 
+ 00024899  0x00006549 nrtn  0x00000034 
+ 00024900  0x0000654a fetch  0x00000001 , 0x00004712 
+ 00024901  0x0000654b branch  0x00006121 , 0x00000034 
+ 00024902  0x0000654c store  0x00000001 , 0x00004711 
+ 00024903  0x0000654d rtn 
+ 00024904  0x00006556 disable  0x00000028 
+ 00024905  0x00006557 fetch  0x00000001 , 0x000046fe 
+ 00024906  0x00006558 sub  0x0000003f , 0x00000004 , 0x0000003e 
+ 00024907  0x00006559 nrtn  0x00000005 
+ 00024908  0x0000655a branch  0x00007dba 
+ 00024909  0x0000655d fetch  0x00000008 , 0x00004713 
+ 00024910  0x0000655e rtnbit0  0x00000023 
+ 00024911  0x0000655f rtnbit0  0x00000004 
+ 00024912  0x00006560 fetch  0x00000002 , 0x00004790 
+ 00024913  0x00006561 nrtn  0x00000034 
+ 00024914  0x00006562 fetch  0x00000002 , 0x000045d8 
+ 00024915  0x00006563 nrtn  0x00000034 
+ 00024916  0x00006564 fetch  0x00000002 , 0x000045de 
+ 00024917  0x00006565 nrtn  0x00000034 
+ 00024918  0x00006566 fetch  0x00000001 , 0x00004701 
+ 00024919  0x00006567 nrtn  0x00000034 
+ 00024920  0x00006568 call  0x00006148 
+ 00024921  0x00006569 rtn  0x00000028 
+ 00024922  0x0000656b fetch  0x00000001 , 0x0000470e 
+ 00024923  0x0000656c branch  0x00006173 , 0x00000034 
+ 00024924  0x0000656e fetcht  0x00000001 , 0x00004709 
+ 00024925  0x0000656f increase  0x00000001 , 0x00000002 
+ 00024926  0x00006570 storet  0x00000001 , 0x00004709 
+ 00024927  0x00006571 fetch  0x00000001 , 0x00004707 
+ 00024928  0x00006572 isub  0x00000002 , 0x0000003e 
+ 00024929  0x00006573 ncall  0x0000616a , 0x00000002 
+ 00024930  0x00006574 fetch  0x00000001 , 0x00004708 
+ 00024931  0x00006575 isub  0x00000002 , 0x0000003e 
+ 00024932  0x00006576 nbranch  0x0000616e , 0x00000002 
+ 00024933  0x00006578 fetch  0x00000008 , 0x00004713 
+ 00024934  0x00006579 bbit1  0x00000024 , 0x000061d9 
+ 00024935  0x0000657a bbit1  0x00000026 , 0x000061d9 
+ 00024936  0x0000657c fetcht  0x00000001 , 0x00004660 
+ 00024937  0x0000657d branch  0x000061e4 
+ 00024938  0x00006580 jam  0x00000001 , 0x00004709 
+ 00024939  0x00006581 fetch  0x00000001 , 0x0000470e 
+ 00024940  0x00006582 increase  0xffffffff , 0x0000003f 
+ 00024941  0x00006583 store  0x00000001 , 0x0000470e 
+ 00024942  0x00006585 fetch  0x00000008 , 0x00004713 
+ 00024943  0x00006586 bbit1  0x00000024 , 0x000061eb 
+ 00024944  0x00006587 bbit1  0x00000026 , 0x000061eb 
+ 00024945  0x00006589 fetcht  0x00000001 , 0x00004660 
+ 00024946  0x0000658a branch  0x000061e5 
+ 00024947  0x0000658d fetch  0x00000008 , 0x00004713 
+ 00024948  0x0000658e bbit1  0x00000022 , 0x0000616e 
+ 00024949  0x0000658f call  0x0000617e 
+ 00024950  0x00006590 branch  0x0000615c 
+ 00024951  0x00006599 jam  0x00000000 , 0x000046fb 
+ 00024952  0x0000659a call  0x000061fd 
+ 00024953  0x0000659b jam  0x00000000 , 0x000046fe 
+ 00024954  0x0000659c fetch  0x00000001 , 0x00004707 
+ 00024955  0x0000659d rshift  0x0000003f , 0x0000003f 
+ 00024956  0x0000659e store  0x00000001 , 0x00004708 
+ 00024957  0x0000659f rtn 
+ 00024958  0x000065a1 fetch  0x00000001 , 0x0000470d 
+ 00024959  0x000065a2 store  0x00000001 , 0x0000470e 
+ 00024960  0x000065a3 rtn 
+ 00024961  0x000065a6 fetch  0x00000001 , 0x000046fe 
+ 00024962  0x000065a7 beq  0x00000001 , 0x00006188 
+ 00024963  0x000065a8 beq  0x00000002 , 0x0000618a 
+ 00024964  0x000065a9 beq  0x00000003 , 0x0000618c 
+ 00024965  0x000065ab fetch  0x00000001 , 0x00004705 
+ 00024966  0x000065ad store  0x00000001 , 0x00004706 
+ 00024967  0x000065ae rtn 
+ 00024968  0x000065b0 fetch  0x00000001 , 0x00004702 
+ 00024969  0x000065b1 branch  0x00006186 
+ 00024970  0x000065b3 fetch  0x00000001 , 0x00004703 
+ 00024971  0x000065b4 branch  0x00006186 
+ 00024972  0x000065b6 fetch  0x00000001 , 0x00004704 
+ 00024973  0x000065b7 branch  0x00006186 
+ 00024974  0x000065bb bpatch  0x00000099 , 0x00004013 
+ 00024975  0x000065bc fetch  0x00000001 , 0x00004700 
+ 00024976  0x000065bd store  0x00000001 , 0x00004701 
+ 00024977  0x000065be jam  0x00000000 , 0x000046fc 
+ 00024978  0x000065c0 jam  0x00000000 , 0x000046fd 
+ 00024979  0x000065c1 jam  0x00000001 , 0x000046fb 
+ 00024980  0x000065c2 rtn 
+ 00024981  0x000065c6 bpatch  0x0000009a , 0x00004013 
+ 00024982  0x000065c7 fetch  0x00000001 , 0x00004666 
+ 00024983  0x000065c8 rtnne  0x00000000 
+ 00024984  0x000065c9 call  0x000061ae 
+ 00024985  0x000065ca jam  0x00000001 , 0x000046fe 
+ 00024986  0x000065cb call  0x00006188 
+ 00024987  0x000065cc fetch  0x00000001 , 0x000046ff 
+ 00024988  0x000065cd rtn  0x00000034 
+ 00024989  0x000065ce fetch  0x00000001 , 0x0000470a 
+ 00024990  0x000065cf branch  0x000061a9 
+ 00024991  0x000065d2 fetch  0x00000001 , 0x00004666 
+ 00024992  0x000065d3 rtneq  0x00000000 
+ 00024993  0x000065d4 call  0x000061ae 
+ 00024994  0x000065d5 fetch  0x00000008 , 0x00004713 
+ 00024995  0x000065d6 rtnbit0  0x00000021 
+ 00024996  0x000065d7 jam  0x00000003 , 0x000046fe 
+ 00024997  0x000065d8 call  0x0000618c 
+ 00024998  0x000065d9 fetch  0x00000001 , 0x000046ff 
+ 00024999  0x000065da rtn  0x00000034 
+ 00025000  0x000065db fetch  0x00000001 , 0x0000470b 
+ 00025001  0x000065dd store  0x00000001 , 0x0000470c 
+ 00025002  0x000065de rtn 
+ 00025003  0x000065e1 jam  0x00000000 , 0x000046ff 
+ 00025004  0x000065e2 jam  0x00000002 , 0x000046fe 
+ 00025005  0x000065e3 call  0x0000618a 
+ 00025006  0x000065e5 jam  0x00000001 , 0x000046fb 
+ 00025007  0x000065e6 jam  0x00000001 , 0x000046fc 
+ 00025008  0x000065e7 branch  0x000061d8 
+ 00025009  0x000065ec fetch  0x00000001 , 0x000046fb 
+ 00025010  0x000065ed rtn  0x00000034 
+ 00025011  0x000065ee fetch  0x00000001 , 0x000046fc 
+ 00025012  0x000065ef beq  0x00000001 , 0x000061bd 
+ 00025013  0x000065f1 fetch  0x00000001 , 0x00004701 
+ 00025014  0x000065f2 branch  0x000061ba , 0x00000034 
+ 00025015  0x000065f3 increase  0xffffffff 
+ 00025016  0x000065f4 store  0x00000001 , 0x00004701 
+ 00025017  0x000065f5 branch  0x000061d9 
+ 00025018  0x000065f8 jam  0x00000000 , 0x000046fb 
+ 00025019  0x000065f9 call  0x0000617e 
+ 00025020  0x000065fa branch  0x000061eb 
+ 00025021  0x000065fd bpatch  0x0000009b , 0x00004013 
+ 00025022  0x000065fe fetch  0x00000001 , 0x000046fe 
+ 00025023  0x000065ff rtn  0x00000034 
+ 00025024  0x00006600 beq  0x00000004 , 0x000061c5 
+ 00025025  0x00006601 branch  0x000061c2 
+ 00025026  0x00006604 fetch  0x00000001 , 0x000046ff 
+ 00025027  0x00006605 beq  0x00000001 , 0x000061c5 
+ 00025028  0x00006606 branch  0x000061c7 
+ 00025029  0x00006609 fetch  0x00000001 , 0x0000470c 
+ 00025030  0x0000660a branch  0x000061e6 , 0x00000034 
+ 00025031  0x0000660c arg  0x00004706 , 0x00000013 
+ 00025032  0x0000660d arg  0x000061ca , 0x00000012 
+ 00025033  0x0000660e branch  0x000042e0 
+ 00025034  0x00006611 fetch  0x00000001 , 0x000046fe 
+ 00025035  0x00006612 beq  0x00000004 , 0x000061d2 
+ 00025036  0x00006613 fetch  0x00000001 , 0x000046ff 
+ 00025037  0x00006614 beq  0x00000001 , 0x000061d2 
+ 00025038  0x00006616 call  0x00006181 
+ 00025039  0x00006617 fetch  0x00000001 , 0x000046fd 
+ 00025040  0x00006618 beq  0x00000001 , 0x000061e8 
+ 00025041  0x00006619 branch  0x000061d6 
+ 00025042  0x0000661c fetch  0x00000001 , 0x0000470c 
+ 00025043  0x0000661d increase  0xffffffff 
+ 00025044  0x0000661e store  0x00000001 , 0x0000470c 
+ 00025045  0x0000661f branch  0x000061ce 
+ 00025046  0x00006623 fetch  0x00000001 , 0x000046fe 
+ 00025047  0x00006624 beq  0x00000004 , 0x00006208 
+ 00025048  0x00006626 jam  0x00000001 , 0x000046fd 
+ 00025049  0x00006628 bpatch  0x0000009c , 0x00004013 
+ 00025050  0x00006629 fetch  0x00000001 , 0x00004666 
+ 00025051  0x0000662a beq  0x00000000 , 0x000061df 
+ 00025052  0x0000662b beq  0x00000001 , 0x000061e1 
+ 00025053  0x0000662c beq  0x00000002 , 0x000061e3 
+ 00025054  0x0000662d rtn 
+ 00025055  0x0000662f fetcht  0x00000001 , 0x0000465d 
+ 00025056  0x00006630 branch  0x000061e4 
+ 00025057  0x00006632 fetcht  0x00000001 , 0x0000465e 
+ 00025058  0x00006633 branch  0x000061e4 
+ 00025059  0x00006635 fetcht  0x00000001 , 0x0000465f 
+ 00025060  0x00006637 branch  0x00006ef7 
+ 00025061  0x0000663a branch  0x00006ef3 
+ 00025062  0x0000663d jam  0x00000000 , 0x000046fb 
+ 00025063  0x0000663e jam  0x00000000 , 0x000046fe 
+ 00025064  0x00006640 fetch  0x00000001 , 0x000046fe 
+ 00025065  0x00006641 beq  0x00000004 , 0x00006202 
+ 00025066  0x00006643 jam  0x00000000 , 0x000046fd 
+ 00025067  0x00006645 bpatch  0x0000009d , 0x00004013 
+ 00025068  0x00006646 fetch  0x00000001 , 0x00004666 
+ 00025069  0x00006647 beq  0x00000000 , 0x000061f1 
+ 00025070  0x00006648 beq  0x00000001 , 0x000061f5 
+ 00025071  0x00006649 beq  0x00000002 , 0x000061f9 
+ 00025072  0x0000664a rtn 
+ 00025073  0x0000664c fetcht  0x00000001 , 0x0000465d 
+ 00025074  0x0000664d fetch  0x00000008 , 0x00004713 
+ 00025075  0x0000664e bbit0  0x00000020 , 0x000061e5 
+ 00025076  0x0000664f branch  0x00006f0f 
+ 00025077  0x00006651 fetcht  0x00000001 , 0x0000465e 
+ 00025078  0x00006652 fetch  0x00000008 , 0x00004713 
+ 00025079  0x00006653 bbit0  0x00000020 , 0x000061e5 
+ 00025080  0x00006654 branch  0x00006f0f 
+ 00025081  0x00006656 fetcht  0x00000001 , 0x0000465f 
+ 00025082  0x00006657 fetch  0x00000008 , 0x00004713 
+ 00025083  0x00006658 bbit0  0x00000020 , 0x000061e5 
+ 00025084  0x00006659 branch  0x00006f0f 
+ 00025085  0x0000665c call  0x000061f1 
+ 00025086  0x0000665d call  0x000061f5 
+ 00025087  0x0000665e call  0x000061f9 
+ 00025088  0x0000665f call  0x0000616e 
+ 00025089  0x00006660 branch  0x00006202 
+ 00025090  0x00006663 jam  0x00000000 , 0x000046fd 
+ 00025091  0x00006664 fetch  0x00000008 , 0x00004713 
+ 00025092  0x00006665 bbit1  0x00000025 , 0x000061ea 
+ 00025093  0x00006666 bbit1  0x00000026 , 0x000061ea 
+ 00025094  0x00006668 fetcht  0x00000001 , 0x00004661 
+ 00025095  0x00006669 branch  0x000061e5 
+ 00025096  0x0000666c jam  0x00000001 , 0x000046fd 
+ 00025097  0x0000666d fetch  0x00000008 , 0x00004713 
+ 00025098  0x0000666e bbit1  0x00000025 , 0x000061d8 
+ 00025099  0x0000666f bbit1  0x00000026 , 0x000061d8 
+ 00025100  0x00006671 fetcht  0x00000001 , 0x00004661 
+ 00025101  0x00006672 branch  0x000061e4 
+ 00025102  0x00006677 fetch  0x00000008 , 0x00004713 
+ 00025103  0x00006678 rtnbit0  0x00000004 
+ 00025104  0x00006679 fetch  0x00000001 , 0x00004709 
+ 00025105  0x0000667a fetcht  0x00000001 , 0x00004708 
+ 00025106  0x0000667b sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00025107  0x0000667c branch  0x0000621b , 0x00000002 
+ 00025108  0x0000667e fetch  0x00000001 , 0x00004666 
+ 00025109  0x0000667f beq  0x00000000 , 0x00006218 
+ 00025110  0x00006680 jam  0x00000001 , 0x00004094 
+ 00025111  0x00006681 rtn 
+ 00025112  0x00006684 fetch  0x00000008 , 0x00004713 
+ 00025113  0x00006685 rtnbit1  0x00000018 
+ 00025114  0x00006686 branch  0x000036ca 
+ 00025115  0x00006689 fetch  0x00000001 , 0x00004666 
+ 00025116  0x0000668a beq  0x00000000 , 0x000036db 
+ 00025117  0x0000668b jam  0x00000000 , 0x00004094 
+ 00025118  0x0000668c rtn 
+ 00025119  0x00006691 fetch  0x00000001 , 0x00000009 
+ 00025120  0x00006692 branch  0x000035cb 
+ 00025121  0x00006695 call  0x0000621f 
+ 00025122  0x00006696 branch  0x000036e8 
+ 00025123  0x00006699 fetch  0x00000001 , 0x00004843 
+ 00025124  0x0000669a compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00025125  0x0000669b nbranch  0x00007dc8 , 0x00000001 
+ 00025126  0x0000669c call  0x0000432b 
+ 00025127  0x0000669d branch  0x00007dca 
+ 00025128  0x000066a0 fetch  0x00000002 , 0x000044e9 
+ 00025129  0x000066a1 bbit1  0x00000009 , 0x00006223 
+ 00025130  0x000066a2 rtn 
+ 00025131  0x000066a5 call  0x000036b4 
+ 00025132  0x000066a6 nrtn  0x00000028 
+ 00025133  0x000066a7 jam  0x00000001 , 0x0000477c 
+ 00025134  0x000066a8 call  0x000036be 
+ 00025135  0x000066a9 jam  0x00000000 , 0x00004772 
+ 00025136  0x000066aa call  0x000062aa 
+ 00025137  0x000066ab fetch  0x00000001 , 0x0000473f 
+ 00025138  0x000066ac ncall  0x000054dc , 0x00000034 
+ 00025139  0x000066ad fetch  0x00000004 , 0x000045af 
+ 00025140  0x000066ae branch  0x00003622 
+ 00025141  0x000066b1 fetch  0x00000001 , 0x0000477b 
+ 00025142  0x000066b2 branch  0x00003616 , 0x00000034 
+ 00025143  0x000066b3 call  0x000036b4 
+ 00025144  0x000066b4 nrtn  0x00000028 
+ 00025145  0x000066b5 fetch  0x00000001 , 0x00004772 
+ 00025146  0x000066b6 jam  0x00000000 , 0x00004772 
+ 00025147  0x000066b7 sub  0x0000003f , 0x00000000 , 0x0000003e 
+ 00025148  0x000066b8 nbranch  0x0000625c , 0x00000005 
+ 00025149  0x000066b9 fetcht  0x00000002 , 0x00004622 
+ 00025150  0x000066ba sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00025151  0x000066bb branch  0x00006252 , 0x00000005 
+ 00025152  0x000066bd fetch  0x00000004 , 0x00004767 
+ 00025153  0x000066be branch  0x00006252 , 0x00000034 
+ 00025154  0x000066c0 fetcht  0x00000004 , 0x00004751 
+ 00025155  0x000066c1 isub  0x00000002 , 0x00000002 
+ 00025156  0x000066c2 storet  0x00000004 , 0x00004777 
+ 00025157  0x000066c3 nbranch  0x00006255 , 0x00000002 
+ 00025158  0x000066c4 fetch  0x00000003 , 0x00004608 
+ 00025159  0x000066c5 isub  0x00000002 , 0x0000003f 
+ 00025160  0x000066c6 nbranch  0x00006260 , 0x00000002 
+ 00025161  0x000066c7 arg  0x00000600 , 0x00000002 
+ 00025162  0x000066c8 isub  0x00000002 , 0x0000003e 
+ 00025163  0x000066c9 nbranch  0x00006260 , 0x00000002 
+ 00025164  0x000066cb store  0x00000004 , 0x00004773 
+ 00025165  0x000066cc call  0x00006259 
+ 00025166  0x000066cd fetch  0x00000004 , 0x00004773 
+ 00025167  0x000066cf call  0x00007d25 
+ 00025168  0x000066d0 storet  0x00000004 , 0x000040a9 
+ 00025169  0x000066d1 branch  0x0000241e 
+ 00025170  0x000066d4 call  0x00006259 
+ 00025171  0x000066d5 fetch  0x00000003 , 0x00004608 
+ 00025172  0x000066d6 branch  0x0000624c 
+ 00025173  0x000066d9 sub  0x00000002 , 0x00000000 , 0x00000002 
+ 00025174  0x000066da fetch  0x00000003 , 0x00004608 
+ 00025175  0x000066db iadd  0x00000002 , 0x0000003f 
+ 00025176  0x000066dc branch  0x0000624c 
+ 00025177  0x000066df setarg  0x00000000 
+ 00025178  0x000066e0 store  0x00000004 , 0x00004777 
+ 00025179  0x000066e1 rtn 
+ 00025180  0x000066e4 fetch  0x00000004 , 0x00004767 
+ 00025181  0x000066e5 fetcht  0x00000004 , 0x00004777 
+ 00025182  0x000066e6 iadd  0x00000002 , 0x0000003f 
+ 00025183  0x000066e7 branch  0x00006242 
+ 00025184  0x000066ea jam  0x00000001 , 0x00004772 
+ 00025185  0x000066eb rtn 
+ 00025186  0x000066ef call  0x00006264 
+ 00025187  0x000066f0 branch  0x00005ffd 
+ 00025188  0x000066f3 fetch  0x00000001 , 0x0000477b 
+ 00025189  0x000066f4 rtn  0x00000034 
+ 00025190  0x000066f5 fetch  0x00000001 , 0x00004618 
+ 00025191  0x000066f6 beq  0x00000001 , 0x000062a6 
+ 00025192  0x000066f7 fetch  0x00000001 , 0x00004760 
+ 00025193  0x000066f8 branch  0x000062a6 , 0x00000034 
+ 00025194  0x000066f9 copy  0x00000019 , 0x0000003f 
+ 00025195  0x000066fa fetcht  0x00000006 , 0x00004761 
+ 00025196  0x000066fb store  0x00000006 , 0x00004761 
+ 00025197  0x000066fc call  0x00007d10 
+ 00025198  0x000066fd store  0x00000004 , 0x00004767 
+ 00025199  0x000066ff fetch  0x00000001 , 0x00004772 
+ 00025200  0x00006700 nrtn  0x00000034 
+ 00025201  0x00006701 fetch  0x00000002 , 0x00004622 
+ 00025202  0x00006702 nrtn  0x00000034 
+ 00025203  0x00006703 fetch  0x00000004 , 0x00004767 
+ 00025204  0x00006705 fetcht  0x00000005 , 0x0000476b 
+ 00025205  0x00006706 iadd  0x00000002 , 0x0000003f 
+ 00025206  0x00006707 store  0x00000005 , 0x0000476b 
+ 00025207  0x00006708 fetcht  0x00000001 , 0x00004760 
+ 00025208  0x00006709 fetch  0x00000001 , 0x00004770 
+ 00025209  0x0000670a isub  0x00000002 , 0x0000003e 
+ 00025210  0x0000670b branch  0x0000627e , 0x00000005 
+ 00025211  0x0000670c increase  0x00000001 , 0x00000002 
+ 00025212  0x0000670d storet  0x00000001 , 0x00004760 
+ 00025213  0x0000670e rtn 
+ 00025214  0x00006711 jam  0x00000001 , 0x00004760 
+ 00025215  0x00006712 arg  0x00000000 , 0x00000002 
+ 00025216  0x00006713 fetch  0x00000005 , 0x0000476b 
+ 00025217  0x00006714 storet  0x00000005 , 0x0000476b 
+ 00025218  0x00006715 fetcht  0x00000001 , 0x00004770 
+ 00025219  0x00006716 idiv  0x00000002 
+ 00025220  0x00006717 call  0x00007d62 
+ 00025221  0x00006718 quotient  0x00000011 
+ 00025222  0x0000671a fetch  0x00000004 , 0x00004751 
+ 00025223  0x0000671b fetcht  0x00000001 , 0x00004771 
+ 00025224  0x0000671c isub  0x00000002 , 0x00000002 
+ 00025225  0x0000671d increase  0xffffffd8 , 0x00000002 
+ 00025226  0x0000671f copy  0x00000011 , 0x0000003f 
+ 00025227  0x00006720 isub  0x00000002 , 0x0000003f 
+ 00025228  0x00006721 branch  0x00006299 , 0x00000002 
+ 00025229  0x00006722 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00025230  0x00006724 rshift2  0x0000003f , 0x0000003f 
+ 00025231  0x00006725 fetcht  0x00000003 , 0x00004608 
+ 00025232  0x00006726 iadd  0x00000002 , 0x00000002 
+ 00025233  0x00006727 bpatch  0x0000009e , 0x00004013 
+ 00025234  0x00006728 fetch  0x00000003 , 0x0000475d 
+ 00025235  0x00006729 arg  0x00001800 , 0x00000011 
+ 00025236  0x0000672a iadd  0x00000011 , 0x0000003f 
+ 00025237  0x0000672b isub  0x00000002 , 0x0000003e 
+ 00025238  0x0000672c nbranch  0x000062a4 , 0x00000002 
+ 00025239  0x0000672d storet  0x00000003 , 0x00004608 
+ 00025240  0x0000672e rtn 
+ 00025241  0x00006731 rshift2  0x0000003f , 0x00000002 
+ 00025242  0x00006732 fetch  0x00000003 , 0x00004608 
+ 00025243  0x00006733 isub  0x00000002 , 0x00000002 
+ 00025244  0x00006734 bpatch  0x0000009f , 0x00004013 
+ 00025245  0x00006735 fetch  0x00000003 , 0x0000475d 
+ 00025246  0x00006736 arg  0x00001800 , 0x00000011 
+ 00025247  0x00006737 isub  0x00000011 , 0x0000003f 
+ 00025248  0x00006738 isub  0x00000002 , 0x0000003e 
+ 00025249  0x00006739 branch  0x000062a4 , 0x00000002 
+ 00025250  0x0000673a storet  0x00000003 , 0x00004608 
+ 00025251  0x0000673b rtn 
+ 00025252  0x0000673e store  0x00000003 , 0x00004608 
+ 00025253  0x0000673f rtn 
+ 00025254  0x00006742 jam  0x00000001 , 0x00004760 
+ 00025255  0x00006743 copy  0x00000019 , 0x0000003f 
+ 00025256  0x00006744 store  0x00000006 , 0x00004761 
+ 00025257  0x00006745 rtn 
+ 00025258  0x00006748 setarg  0x00000000 
+ 00025259  0x00006749 store  0x00000001 , 0x00004760 
+ 00025260  0x0000674a store  0x00000005 , 0x0000476b 
+ 00025261  0x0000674b rtn 
+ 00025262  0x00006755 call  0x00007396 
+ 00025263  0x00006756 rtn  0x0000002b 
+ 00025264  0x00006758 setarg  0x00006327 
+ 00025265  0x00006759 store  0x00000002 , 0x000043db 
+ 00025266  0x0000675b setarg  0x000062d9 
+ 00025267  0x0000675c store  0x00000002 , 0x000043dd 
+ 00025268  0x0000675e setarg  0x0000638a 
+ 00025269  0x0000675f store  0x00000002 , 0x000043df 
+ 00025270  0x00006761 setarg  0x0000630e 
+ 00025271  0x00006762 store  0x00000002 , 0x000043e3 
+ 00025272  0x00006764 setarg  0x00006365 
+ 00025273  0x00006765 store  0x00000002 , 0x00004524 
+ 00025274  0x00006767 call  0x000062c2 
+ 00025275  0x00006769 bpatch  0x000000a0 , 0x00004014 
+ 00025276  0x0000676a call  0x00006396 
+ 00025277  0x0000676d fetch  0x00000001 , 0x0000451a 
+ 00025278  0x0000676e beq  0x00000000 , 0x000062d0 
+ 00025279  0x0000676f fetch  0x00000001 , 0x0000451b 
+ 00025280  0x00006770 store  0x00000001 , 0x000044ec 
+ 00025281  0x00006771 branch  0x000063a1 
+ 00025282  0x00006775 setarg  0x0000632b 
+ 00025283  0x00006776 store  0x00000002 , 0x000043d5 
+ 00025284  0x00006778 setarg  0x00006329 
+ 00025285  0x00006779 store  0x00000002 , 0x000043d7 
+ 00025286  0x0000677b setarg  0x00006340 
+ 00025287  0x0000677c store  0x00000002 , 0x0000451f 
+ 00025288  0x0000677e setarg  0x0000639a 
+ 00025289  0x0000677f store  0x00000002 , 0x00004521 
+ 00025290  0x00006781 jam  0x00000007 , 0x0000415e 
+ 00025291  0x00006782 call  0x00002969 
+ 00025292  0x00006783 call  0x0000638d 
+ 00025293  0x00006784 call  0x00006ff7 
+ 00025294  0x00006785 call  0x000078ad 
+ 00025295  0x00006786 branch  0x000077ac 
+ 00025296  0x0000678b jam  0x000000ff , 0x000044ec 
+ 00025297  0x0000678c jam  0x00000001 , 0x0000451c 
+ 00025298  0x0000678d branch  0x00006340 
+ 00025299  0x00006792 fetch  0x00000001 , 0x0000451c 
+ 00025300  0x00006793 beq  0x00000002 , 0x00004308 
+ 00025301  0x00006794 call  0x000069b9 
+ 00025302  0x00006795 fetch  0x00000001 , 0x00004441 
+ 00025303  0x00006796 nbranch  0x00004308 , 0x00000034 
+ 00025304  0x00006797 branch  0x0000430a 
+ 00025305  0x0000679c copy  0x00000013 , 0x0000003f 
+ 00025306  0x0000679f beq  0x00000014 , 0x000062e2 
+ 00025307  0x000067a0 beq  0x00000015 , 0x000062e6 
+ 00025308  0x000067a1 beq  0x0000003f , 0x000062e9 
+ 00025309  0x000067a2 beq  0x00000040 , 0x000062ef 
+ 00025310  0x000067a4 beq  0x00000010 , 0x000063b6 
+ 00025311  0x000067a5 beq  0x0000002c , 0x000062f5 
+ 00025312  0x000067a6 beq  0x0000002d , 0x00006300 
+ 00025313  0x000067a7 rtn 
+ 00025314  0x000067ad call  0x0000632d 
+ 00025315  0x000067ae setarg  0x00000000 
+ 00025316  0x000067af store  0x00000002 , 0x000044f8 
+ 00025317  0x000067b0 branch  0x00004325 
+ 00025318  0x000067b4 call  0x000078ad 
+ 00025319  0x000067b5 jam  0x00000000 , 0x000044f1 
+ 00025320  0x000067b6 branch  0x00006340 
+ 00025321  0x000067ba call  0x000078ad 
+ 00025322  0x000067bb jam  0x00000001 , 0x000044f1 
+ 00025323  0x000067bc fetch  0x00000008 , 0x00004502 
+ 00025324  0x000067bd store  0x00000008 , 0x000042d3 
+ 00025325  0x000067be call  0x0000432b 
+ 00025326  0x000067bf branch  0x00002e93 
+ 00025327  0x000067c3 fetch  0x00000002 , 0x0000433c 
+ 00025328  0x000067c4 rtneq  0x00000000 
+ 00025329  0x000067c5 fetch  0x00000008 , 0x0000450a 
+ 00025330  0x000067c6 rtn  0x00000034 
+ 00025331  0x000067c7 store  0x00000008 , 0x000042d3 
+ 00025332  0x000067c8 branch  0x00002e93 
+ 00025333  0x000067d0 fetch  0x00000001 , 0x0000451a 
+ 00025334  0x000067d1 rtneq  0x00000000 
+ 00025335  0x000067d2 fetch  0x00000001 , 0x0000451c 
+ 00025336  0x000067d3 rtnne  0x00000001 
+ 00025337  0x000067d4 call  0x000062fb 
+ 00025338  0x000067d5 branch  0x00004323 
+ 00025339  0x000067d8 jam  0x00000001 , 0x000046bd 
+ 00025340  0x000067d9 arg  0x0000000b , 0x00000039 
+ 00025341  0x000067da arg  0x000046be , 0x00000005 
+ 00025342  0x000067db arg  0x000046a7 , 0x00000006 
+ 00025343  0x000067dc branch  0x00007cda 
+ 00025344  0x000067df fetch  0x00000001 , 0x0000451a 
+ 00025345  0x000067e0 rtneq  0x00000000 
+ 00025346  0x000067e1 fetch  0x00000001 , 0x0000451c 
+ 00025347  0x000067e2 beq  0x00000001 , 0x00006305 
+ 00025348  0x000067e3 branch  0x000063b2 
+ 00025349  0x000067e6 fetch  0x00000001 , 0x000046bd 
+ 00025350  0x000067e7 rtnne  0x00000001 
+ 00025351  0x000067e8 jam  0x00000000 , 0x000046bd 
+ 00025352  0x000067e9 fetch  0x00000002 , 0x000044e9 
+ 00025353  0x000067ea bbit1  0x00000009 , 0x00004325 
+ 00025354  0x000067eb arg  0x0000000b , 0x00000039 
+ 00025355  0x000067ec arg  0x000046be , 0x00000006 
+ 00025356  0x000067ed arg  0x000046a7 , 0x00000005 
+ 00025357  0x000067ee branch  0x00007cda 
+ 00025358  0x000067f5 call  0x00006311 
+ 00025359  0x000067f8 call  0x00006318 
+ 00025360  0x000067fc branch  0x00006322 
+ 00025361  0x00006801 arg  0x00004518 , 0x00000013 
+ 00025362  0x00006802 arg  0x00006314 , 0x00000012 
+ 00025363  0x00006803 branch  0x000042e7 
+ 00025364  0x00006805 jam  0x00000002 , 0x0000451c 
+ 00025365  0x00006806 call  0x00004325 
+ 00025366  0x00006807 call  0x0000634e 
+ 00025367  0x00006808 branch  0x0000639e 
+ 00025368  0x0000680c arg  0x000046ca , 0x00000013 
+ 00025369  0x0000680d arg  0x0000631b , 0x00000012 
+ 00025370  0x0000680e branch  0x000042e0 
+ 00025371  0x00006811 fetch  0x00000002 , 0x000044e9 
+ 00025372  0x00006812 bbit1  0x00000009 , 0x0000639e 
+ 00025373  0x00006813 fetch  0x00000001 , 0x000046a7 
+ 00025374  0x00006814 beq  0x00000001 , 0x0000639e 
+ 00025375  0x00006815 beq  0x00000004 , 0x0000639e 
+ 00025376  0x00006816 beq  0x00000005 , 0x0000639e 
+ 00025377  0x00006817 branch  0x00004327 
+ 00025378  0x0000681c fetch  0x00000001 , 0x0000451c 
+ 00025379  0x0000681d rtnne  0x00000001 
+ 00025380  0x0000681e arg  0x000044f8 , 0x00000013 
+ 00025381  0x0000681f arg  0x00006331 , 0x00000012 
+ 00025382  0x00006820 branch  0x000042e7 
+ 00025383  0x00006824 call  0x00006376 
+ 00025384  0x00006825 branch  0x00007027 
+ 00025385  0x00006829 call  0x00006f35 
+ 00025386  0x0000682a branch  0x0000701b 
+ 00025387  0x0000682d call  0x00006f35 
+ 00025388  0x0000682e branch  0x0000739a 
+ 00025389  0x00006839 fetch  0x00000002 , 0x00004514 
+ 00025390  0x0000683a store  0x00000002 , 0x00004516 
+ 00025391  0x0000683b store  0x00000002 , 0x00004518 
+ 00025392  0x0000683c branch  0x00004315 
+ 00025393  0x00006840 fetch  0x00000001 , 0x0000451c 
+ 00025394  0x00006841 rtnne  0x00000001 
+ 00025395  0x00006846 fetch  0x00000002 , 0x000044e9 
+ 00025396  0x00006847 rtnbit1  0x00000009 
+ 00025397  0x00006848 fetch  0x00000002 , 0x00004512 
+ 00025398  0x00006849 store  0x00000002 , 0x00004516 
+ 00025399  0x0000684a store  0x00000002 , 0x00004518 
+ 00025400  0x0000684b fetch  0x00000002 , 0x000044f4 
+ 00025401  0x0000684c call  0x000063c7 
+ 00025402  0x0000684d call  0x00004321 
+ 00025403  0x0000684e fetch  0x00000004 , 0x000044fe 
+ 00025404  0x0000684f store  0x00000004 , 0x000046aa 
+ 00025405  0x00006850 fetch  0x00000002 , 0x000044e9 
+ 00025406  0x00006851 rtnbit1  0x0000000b 
+ 00025407  0x00006852 branch  0x00004317 
+ 00025408  0x00006856 fetch  0x00000001 , 0x0000451c 
+ 00025409  0x00006857 rtnne  0x00000001 
+ 00025410  0x0000685c fetch  0x00000002 , 0x000044f8 
+ 00025411  0x0000685d fetcht  0x00000002 , 0x000044f6 
+ 00025412  0x0000685e storet  0x00000002 , 0x000044f8 
+ 00025413  0x0000685f nrtn  0x00000034 
+ 00025414  0x00006860 fetch  0x00000002 , 0x000044f2 
+ 00025415  0x00006861 call  0x000063c7 
+ 00025416  0x00006862 call  0x00004321 
+ 00025417  0x00006863 fetch  0x00000004 , 0x000044fa 
+ 00025418  0x00006864 store  0x00000004 , 0x000046aa 
+ 00025419  0x00006865 fetch  0x00000002 , 0x000044e9 
+ 00025420  0x00006866 rtnbit1  0x0000000b 
+ 00025421  0x00006867 branch  0x00004317 
+ 00025422  0x0000686a fetch  0x00000002 , 0x000044e9 
+ 00025423  0x0000686b bbit1  0x00000009 , 0x0000431f 
+ 00025424  0x0000686c branch  0x0000632d 
+ 00025425  0x00006871 call  0x00007dbc 
+ 00025426  0x00006872 fetch  0x00000002 , 0x000044e9 
+ 00025427  0x00006873 bbit1  0x00000009 , 0x00006355 
+ 00025428  0x00006874 rtn 
+ 00025429  0x00006877 fetch  0x00000001 , 0x000044f1 
+ 00025430  0x00006878 rtn  0x00000034 
+ 00025431  0x00006879 branch  0x00007dba 
+ 00025432  0x0000687f call  0x00007dbc 
+ 00025433  0x00006880 fetch  0x00000002 , 0x000044e9 
+ 00025434  0x00006881 rtnbit1  0x00000009 
+ 00025435  0x00006882 branch  0x00007dba 
+ 00025436  0x0000688b branch  0x00006340 
+ 00025437  0x00006890 disable  0x0000002c 
+ 00025438  0x00006891 fetch  0x00000002 , 0x00004516 
+ 00025439  0x00006892 store  0x00000002 , 0x00004518 
+ 00025440  0x00006894 call  0x00006358 
+ 00025441  0x00006895 branch  0x0000635c , 0x00000028 
+ 00025442  0x00006897 call  0x00006351 
+ 00025443  0x00006898 nrtn  0x00000028 
+ 00025444  0x00006899 branch  0x00007dbe 
+ 00025445  0x0000689e call  0x0000635d 
+ 00025446  0x0000689f nrtn  0x0000002c 
+ 00025447  0x000068a0 deposit  0x00000011 
+ 00025448  0x000068a1 branch  0x0000636c , 0x00000034 
+ 00025449  0x000068a3 call  0x00004323 
+ 00025450  0x000068a4 arg  0x0000452e , 0x00000013 
+ 00025451  0x000068a5 branch  0x0000636e 
+ 00025452  0x000068a8 call  0x00004325 
+ 00025453  0x000068a9 arg  0x00004556 , 0x00000013 
+ 00025454  0x000068ac arg  0x00000005 , 0x0000003f 
+ 00025455  0x000068ad imul32  0x00000007 , 0x0000003f 
+ 00025456  0x000068ae iadd  0x00000013 , 0x00000013 
+ 00025457  0x000068b2 ifetch  0x00000001 , 0x00000013 
+ 00025458  0x000068b3 rtn  0x00000034 
+ 00025459  0x000068b4 call  0x00006382 
+ 00025460  0x000068b5 increase  0x00000001 , 0x00000013 
+ 00025461  0x000068b6 branch  0x00006371 
+ 00025462  0x000068ba fetch  0x00000002 , 0x000044e9 
+ 00025463  0x000068bb bbit1  0x00000009 , 0x00006379 
+ 00025464  0x000068bc rtn 
+ 00025465  0x000068bf call  0x00002a28 
+ 00025466  0x000068c0 nrtn  0x00000034 
+ 00025467  0x000068c1 call  0x00006385 
+ 00025468  0x000068c2 nrtn  0x00000028 
+ 00025469  0x000068c3 pincrease  0xffffffff 
+ 00025470  0x000068c4 mul32  0x0000003f , 0x00000005 , 0x0000003f 
+ 00025471  0x000068c5 arg  0x0000457e , 0x00000002 
+ 00025472  0x000068c6 iadd  0x00000002 , 0x00000006 
+ 00025473  0x000068c7 branch  0x000063cb 
+ 00025474  0x000068cc store  0x00000001 , 0x00000670 
+ 00025475  0x000068cd arg  0x00000670 , 0x00000011 
+ 00025476  0x000068ce branch  0x000078b2 
+ 00025477  0x000068d1 arg  0x00000670 , 0x00000011 
+ 00025478  0x000068d2 call  0x000078ca 
+ 00025479  0x000068d3 nrtn  0x00000028 
+ 00025480  0x000068d4 fetch  0x00000001 , 0x00000670 
+ 00025481  0x000068d5 rtn 
+ 00025482  0x000068d9 fetch  0x00000002 , 0x00004398 
+ 00025483  0x000068da beq  0x00000018 , 0x000062e9 
+ 00025484  0x000068db rtn 
+ 00025485  0x000068de jam  0x00000002 , 0x000046c9 
+ 00025486  0x000068e0 setarg  0x00200008 
+ 00025487  0x000068e1 store  0x00000004 , 0x00004502 
+ 00025488  0x000068e2 setarg  0x012c0005 
+ 00025489  0x000068e3 istore  0x00000004 , 0x00000005 
+ 00025490  0x000068e6 jam  0x00000017 , 0x000042e1 
+ 00025491  0x000068e9 setarg  0x0000001b 
+ 00025492  0x000068ea store  0x00000002 , 0x00004332 
+ 00025493  0x000068eb branch  0x00002a41 
+ 00025494  0x000068f0 arg  0x00000028 , 0x00000039 
+ 00025495  0x000068f1 arg  0x0000457e , 0x00000005 
+ 00025496  0x000068f2 arg  0x000094f9 , 0x00000006 
+ 00025497  0x000068f3 branch  0x00007ccc 
+ 00025498  0x00006908 arg  0x00000000 , 0x00000011 
+ 00025499  0x00006909 arg  0x000046b2 , 0x00000013 
+ 00025500  0x0000690a call  0x000077ca 
+ 00025501  0x0000690b call  0x0000634e 
+ 00025502  0x0000690d fetch  0x00000001 , 0x000046c9 
+ 00025503  0x0000690e store  0x00000001 , 0x000046ca 
+ 00025504  0x0000690f rtn 
+ 00025505  0x00006914 setarg  0x00000000 
+ 00025506  0x00006915 call  0x000063ad 
+ 00025507  0x00006916 jam  0x00000001 , 0x000044e4 
+ 00025508  0x00006917 call  0x00007776 
+ 00025509  0x00006918 call  0x00007780 
+ 00025510  0x0000691a fetch  0x00000001 , 0x000046d0 
+ 00025511  0x0000691b branch  0x000063aa , 0x00000034 
+ 00025512  0x0000691c fetch  0x00000001 , 0x00008132 
+ 00025513  0x0000691d bbit1  0x00000004 , 0x000063b9 
+ 00025514  0x0000691f fetch  0x00000002 , 0x000044e9 
+ 00025515  0x00006920 rtnbit1  0x0000000c 
+ 00025516  0x00006921 branch  0x00004327 
+ 00025517  0x00006924 fetcht  0x00000002 , 0x00004430 
+ 00025518  0x00006925 istore  0x00000001 , 0x00000002 
+ 00025519  0x00006926 ifetch  0x00000001 , 0x00000005 
+ 00025520  0x00006927 store  0x00000001 , 0x000044eb 
+ 00025521  0x00006928 rtn 
+ 00025522  0x0000692c fetch  0x00000002 , 0x00004430 
+ 00025523  0x0000692d ifetch  0x00000001 , 0x0000003f 
+ 00025524  0x0000692e rtnne  0x00000000 
+ 00025525  0x0000692f branch  0x00004327 
+ 00025526  0x00006933 fetcht  0x00000002 , 0x00004430 
+ 00025527  0x00006934 ifetch  0x00000001 , 0x00000002 
+ 00025528  0x00006935 beq  0x00000001 , 0x000063c1 
+ 00025529  0x00006937 setarg  0x00000001 
+ 00025530  0x00006938 fetcht  0x00000002 , 0x00004430 
+ 00025531  0x00006939 istore  0x00000001 , 0x00000002 
+ 00025532  0x0000693a add  0x00000002 , 0x00000002 , 0x00000006 
+ 00025533  0x0000693b ifetch  0x00000001 , 0x00000006 
+ 00025534  0x0000693c istore  0x00000001 , 0x000044eb 
+ 00025535  0x0000693d ifetch  0x00000002 , 0x00000006 
+ 00025536  0x0000693e branch  0x00007d79 
+ 00025537  0x00006941 setarg  0x00000002 
+ 00025538  0x00006942 call  0x000063ad 
+ 00025539  0x00006943 add  0x00000002 , 0x00000005 , 0x00000006 
+ 00025540  0x00006944 ifetch  0x00000002 , 0x00000006 
+ 00025541  0x00006945 branch  0x00004327 , 0x00000034 
+ 00025542  0x00006946 branch  0x00007d79 
+ 00025543  0x0000694c store  0x00000002 , 0x000040a4 
+ 00025544  0x0000694d increase  0xfffffffc , 0x0000003f 
+ 00025545  0x0000694e store  0x00000002 , 0x00004389 
+ 00025546  0x0000694f rtn 
+ 00025547  0x00006952 ifetch  0x00000001 , 0x00000006 
+ 00025548  0x00006953 copy  0x0000003f , 0x00000011 
+ 00025549  0x00006954 ifetcht  0x00000002 , 0x00000006 
+ 00025550  0x00006955 call  0x00007c6d 
+ 00025551  0x00006956 call  0x00002dee 
+ 00025552  0x00006957 copy  0x00000011 , 0x00000039 
+ 00025553  0x00006958 call  0x00007c67 
+ 00025554  0x00006959 branch  0x00007cda 
+ 00025555  0x0000695c setarg  0x000093c0 
+ 00025556  0x0000695d store  0x00000002 , 0x000042f7 
+ 00025557  0x0000695e rtn 
+ 00025558  0x00006961 setarg  0x000046d2 
+ 00025559  0x00006962 store  0x00000002 , 0x000042f7 
+ 00025560  0x00006963 rtn 
+ 00025561  0x00006967 fetch  0x00000002 , 0x000046cb 
+ 00025562  0x00006968 store  0x00000002 , 0x00004526 
+ 00025563  0x00006969 fetch  0x00000001 , 0x000046cd 
+ 00025564  0x0000696a store  0x00000001 , 0x000046a9 
+ 00025565  0x0000696b store  0x00000001 , 0x000046b4 
+ 00025566  0x0000696c fetch  0x00000001 , 0x000046ce 
+ 00025567  0x0000696d store  0x00000001 , 0x0000451a 
+ 00025568  0x0000696e fetch  0x00000001 , 0x000046cf 
+ 00025569  0x0000696f store  0x00000001 , 0x0000451b 
+ 00025570  0x00006975 setarg  0x00000002 
+ 00025571  0x00006976 store  0x00000002 , 0x0000452e 
+ 00025572  0x00006977 store  0x00000002 , 0x00004533 
+ 00025573  0x00006978 setarg  0x00000006 
+ 00025574  0x00006979 store  0x00000002 , 0x00004556 
+ 00025575  0x0000697a store  0x00000002 , 0x0000455b 
+ 00025576  0x0000697b setarg  0x00000007 
+ 00025577  0x0000697c store  0x00000002 , 0x00004538 
+ 00025578  0x0000697d setarg  0x00000008 
+ 00025579  0x0000697e store  0x00000002 , 0x00004560 
+ 00025580  0x0000697f setarg  0x0000451c 
+ 00025581  0x00006980 store  0x00000002 , 0x00004430 
+ 00025582  0x00006981 setarg  0x00201400 
+ 00025583  0x00006982 store  0x00000003 , 0x0000451c 
+ 00025584  0x00006983 jam  0x00000001 , 0x00004094 
+ 00025585  0x00006984 setarg  0x00000100 
+ 00025586  0x00006985 store  0x00000002 , 0x000040a4 
+ 00025587  0x00006986 jam  0x00000008 , 0x000040a6 
+ 00025588  0x00006987 jam  0x00000005 , 0x000040c0 
+ 00025589  0x00006988 jam  0x00000002 , 0x000040c1 
+ 00025590  0x00006989 setarg  0x00000096 
+ 00025591  0x0000698a store  0x00000002 , 0x000044fa 
+ 00025592  0x0000698b istore  0x00000002 , 0x00000005 
+ 00025593  0x0000698c setarg  0x00000296 
+ 00025594  0x0000698d store  0x00000002 , 0x000044fe 
+ 00025595  0x0000698e istore  0x00000002 , 0x00000005 
+ 00025596  0x0000698f setsect  0x00000000 , 0x00000010 
+ 00025597  0x00006990 setsect  0x00000001 , 0x00008008 
+ 00025598  0x00006991 setsect  0x00000002 , 0x0002c000 
+ 00025599  0x00006992 setsect  0x00000003 , 0x00000004 
+ 00025600  0x00006993 store  0x00000008 , 0x0000450a 
+ 00025601  0x00006994 jam  0x00000001 , 0x000044ee 
+ 00025602  0x00006995 setarg  0x000046a7 
+ 00025603  0x00006996 store  0x00000002 , 0x000044ef 
+ 00025604  0x00006997 setarg  0x00000000 
+ 00025605  0x00006998 store  0x00000002 , 0x000046a7 
+ 00025606  0x00006999 setsect  0x00000000 , 0x000001a0 
+ 00025607  0x0000699a setsect  0x00000001 , 0x00000068 
+ 00025608  0x0000699b setsect  0x00000002 , 0x00000000 
+ 00025609  0x0000699c setsect  0x00000003 , 0x00000000 
+ 00025610  0x0000699d store  0x00000008 , 0x000046aa 
+ 00025611  0x0000699e setarg  0x00000301 
+ 00025612  0x0000699f store  0x00000002 , 0x000046b2 
+ 00025613  0x000069a0 setsect  0x00000000 , 0x000001a0 
+ 00025614  0x000069a1 setsect  0x00000001 , 0x000000e8 
+ 00025615  0x000069a2 setsect  0x00000002 , 0x00000000 
+ 00025616  0x000069a3 setsect  0x00000003 , 0x00000000 
+ 00025617  0x000069a4 store  0x00000008 , 0x000046b5 
+ 00025618  0x000069a5 setarg  0x0000000e 
+ 00025619  0x000069a6 store  0x00000002 , 0x000044f2 
+ 00025620  0x000069a7 setarg  0x00000140 
+ 00025621  0x000069a8 store  0x00000002 , 0x000044f4 
+ 00025622  0x000069a9 store  0x00000002 , 0x00004389 
+ 00025623  0x000069aa setarg  0x00000050 
+ 00025624  0x000069ab store  0x00000002 , 0x000044f6 
+ 00025625  0x000069ac jam  0x00000007 , 0x00004393 
+ 00025626  0x000069ad jam  0x00000000 , 0x00004388 
+ 00025627  0x000069ae setsect  0x00000000 , 0x000000fb 
+ 00025628  0x000069af setsect  0x00000001 , 0x0002c212 
+ 00025629  0x000069b0 setsect  0x00000002 , 0x0000800f 
+ 00025630  0x000069b1 setsect  0x00000003 , 0x00000021 
+ 00025631  0x000069b2 store  0x00000008 , 0x000043c0 
+ 00025632  0x000069b3 setsect  0x00000000 , 0x00000bb8 
+ 00025633  0x000069b4 setsect  0x00000001 , 0x000002ee 
+ 00025634  0x000069b5 store  0x00000004 , 0x00004512 
+ 00025635  0x000069b6 setarg  0x000045d8 
+ 00025636  0x000069b7 store  0x00000002 , 0x000043fb 
+ 00025637  0x000069b8 setarg  0x00002001 
+ 00025638  0x000069b9 store  0x00000002 , 0x000045d8 
+ 00025639  0x000069ba jam  0x0000001f , 0x00004348 
+ 00025640  0x000069bb setsect  0x00000000 , 0x00010102 
+ 00025641  0x000069bc setsect  0x00000001 , 0x000080c1 
+ 00025642  0x000069bd setsect  0x00000002 , 0x00018120 
+ 00025643  0x000069be setsect  0x00000003 , 0x0000640c 
+ 00025644  0x000069bf store  0x00000009 , 0x00004349 
+ 00025645  0x000069c0 setsect  0x00000000 , 0x000003c1 
+ 00025646  0x000069c1 istore  0x00000002 , 0x00000005 
+ 00025647  0x000069c2 jam  0x0000001f , 0x00004368 
+ 00025648  0x000069c3 setsect  0x00000000 , 0x0002090d 
+ 00025649  0x000069c4 setsect  0x00000001 , 0x00034c15 
+ 00025650  0x000069c5 setsect  0x00000002 , 0x00028532 
+ 00025651  0x000069c6 setsect  0x00000003 , 0x0001d1d5 
+ 00025652  0x000069c7 store  0x00000009 , 0x00004369 
+ 00025653  0x000069c8 setsect  0x00000000 , 0x00026574 
+ 00025654  0x000069c9 setsect  0x00000001 , 0x0000001c 
+ 00025655  0x000069ca istore  0x00000003 , 0x00000005 
+ 00025656  0x000069cb setarg  0x00004523 
+ 00025657  0x000069cc store  0x00000002 , 0x0000442c 
+ 00025658  0x000069cd jam  0x00000002 , 0x00004523 
+ 00025659  0x000069ce setarg  0x000045fd 
+ 00025660  0x000069cf store  0x00000002 , 0x000043f8 
+ 00025661  0x000069d0 jam  0x00000005 , 0x000043fa 
+ 00025662  0x000069d1 fetch  0x00000001 , 0x000046d1 
+ 00025663  0x000069d2 beq  0x00000000 , 0x000063d3 
+ 00025664  0x000069d3 beq  0x00000001 , 0x000063d6 
+ 00025665  0x000069d4 rtn 
+ 00025666  0x000069e2 fetch  0x00000006 , 0x00004ef4 
+ 00025667  0x000069e3 store  0x00000006 , 0x00004526 
+ 00025668  0x000069e4 jam  0x00000006 , 0x00004523 
+ 00025669  0x000069e5 setarg  0x00004523 
+ 00025670  0x000069e6 store  0x00000002 , 0x0000442c 
+ 00025671  0x000069e7 rtn 
+ 00025672  0x000069eb fetch  0x00000007 , 0x00004ef4 
+ 00025673  0x000069ec store  0x00000007 , 0x00004526 
+ 00025674  0x000069ed jam  0x00000007 , 0x00004523 
+ 00025675  0x000069ee setarg  0x00004523 
+ 00025676  0x000069ef store  0x00000002 , 0x0000442c 
+ 00025677  0x000069f0 rtn 
+ 00025678  0x000069f4 fetch  0x00000008 , 0x00004ef4 
+ 00025679  0x000069f5 store  0x00000008 , 0x00004526 
+ 00025680  0x000069f6 jam  0x00000008 , 0x00004523 
+ 00025681  0x000069f7 setarg  0x00004523 
+ 00025682  0x000069f8 store  0x00000002 , 0x0000442c 
+ 00025683  0x000069f9 rtn 
+ 00025684  0x000069fc fetch  0x00000001 , 0x00004ef3 
+ 00025685  0x000069fd beq  0x00000006 , 0x00006442 
+ 00025686  0x000069fe beq  0x00000007 , 0x00006448 
+ 00025687  0x000069ff beq  0x00000008 , 0x0000644e 
+ 00025688  0x00006a00 rtn 
+ 00025689  0x00006a03 bpatch  0x000000a1 , 0x00004014 
+ 00025690  0x00006a05 fetch  0x00000008 , 0x00004f1a 
+ 00025691  0x00006a06 store  0x00000008 , 0x00004512 
+ 00025692  0x00006a07 setarg  0x00000096 
+ 00025693  0x00006a08 store  0x00000002 , 0x000044f6 
+ 00025694  0x00006a0a fetch  0x00000007 , 0x00004f6a 
+ 00025695  0x00006a0b store  0x00000007 , 0x000046a7 
+ 00025696  0x00006a0c fetch  0x00000007 , 0x00004f71 
+ 00025697  0x00006a0d store  0x00000007 , 0x000046b2 
+ 00025698  0x00006a0f fetch  0x00000004 , 0x00004f78 
+ 00025699  0x00006a10 store  0x00000004 , 0x000044fa 
+ 00025700  0x00006a11 fetch  0x00000004 , 0x00004f7c 
+ 00025701  0x00006a12 store  0x00000004 , 0x000044fe 
+ 00025702  0x00006a14 setarg  0x0000000e 
+ 00025703  0x00006a15 store  0x00000002 , 0x000044f2 
+ 00025704  0x00006a16 setarg  0x00000140 
+ 00025705  0x00006a17 store  0x00000002 , 0x000044f4 
+ 00025706  0x00006a18 store  0x00000002 , 0x00004389 
+ 00025707  0x00006a1f fetch  0x00000008 , 0x00004f12 
+ 00025708  0x00006a20 store  0x00000008 , 0x0000450a 
+ 00025709  0x00006a21 rtn 
+ 00025710  0x00006a26 call  0x00007396 
+ 00025711  0x00006a27 rtn  0x0000002b 
+ 00025712  0x00006a29 call  0x00006454 
+ 00025713  0x00006a2a call  0x00006459 
+ 00025714  0x00006a2d setarg  0x00006484 
+ 00025715  0x00006a2e store  0x00000002 , 0x000043db 
+ 00025716  0x00006a30 setarg  0x000064df 
+ 00025717  0x00006a31 store  0x00000002 , 0x000043dd 
+ 00025718  0x00006a33 setarg  0x000066c5 
+ 00025719  0x00006a34 store  0x00000002 , 0x000043df 
+ 00025720  0x00006a36 setarg  0x000064b5 
+ 00025721  0x00006a37 store  0x00000002 , 0x000043e3 
+ 00025722  0x00006a39 setarg  0x00006505 
+ 00025723  0x00006a3a store  0x00000002 , 0x00004524 
+ 00025724  0x00006a3c call  0x000062c2 
+ 00025725  0x00006a3e fetch  0x00000002 , 0x00004f97 
+ 00025726  0x00006a3f store  0x00000002 , 0x00004332 
+ 00025727  0x00006a40 fetch  0x00000008 , 0x0000450a 
+ 00025728  0x00006a41 store  0x00000008 , 0x00004502 
+ 00025729  0x00006a42 call  0x0000648e 
+ 00025730  0x00006a43 bpatch  0x000000a2 , 0x00004014 
+ 00025731  0x00006a44 branch  0x000062bd 
+ 00025732  0x00006a48 call  0x0000649b 
+ 00025733  0x00006a49 arg  0x00000009 , 0x00000007 
+ 00025734  0x00006a4a call  0x00007cef 
+ 00025735  0x00006a4b nrtn  0x00000034 
+ 00025736  0x00006a4c setarg  0x00000020 
+ 00025737  0x00006a4d arg  0x00000009 , 0x00000007 
+ 00025738  0x00006a4e call  0x00007ce1 
+ 00025739  0x00006a4f disable  0x00000028 
+ 00025740  0x00006a50 call  0x0000701b 
+ 00025741  0x00006a51 branch  0x0000656e 
+ 00025742  0x00006a54 setarg  0x0000001f 
+ 00025743  0x00006a55 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025744  0x00006a56 arg  0x00004c12 , 0x00000002 
+ 00025745  0x00006a57 iadd  0x00000002 , 0x00000011 
+ 00025746  0x00006a58 increase  0x00000003 , 0x00000011 
+ 00025747  0x00006a59 arg  0x00000062 , 0x00000002 
+ 00025748  0x00006a5a istoret  0x00000001 , 0x00000011 
+ 00025749  0x00006a5b increase  0x0000000b , 0x00000011 
+ 00025750  0x00006a5c arg  0x00000fff , 0x0000003f 
+ 00025751  0x00006a5d isub  0x00000002 , 0x0000003f 
+ 00025752  0x00006a5e lshift4  0x0000003f , 0x0000003f 
+ 00025753  0x00006a5f istore  0x00000002 , 0x00000011 
+ 00025754  0x00006a60 rtn 
+ 00025755  0x00006a63 fetch  0x00000002 , 0x000044e9 
+ 00025756  0x00006a64 bbit1  0x00000009 , 0x000064a0 
+ 00025757  0x00006a65 arg  0x000045da , 0x00000005 
+ 00025758  0x00006a66 arg  0x00000023 , 0x00000039 
+ 00025759  0x00006a67 branch  0x00007ca1 
+ 00025760  0x00006a6a call  0x00002a28 
+ 00025761  0x00006a6b nrtn  0x00000034 
+ 00025762  0x00006a6c call  0x000078fa 
+ 00025763  0x00006a6d rtn  0x00000034 
+ 00025764  0x00006a6e fetcht  0x00000004 , 0x000049f6 
+ 00025765  0x00006a6f copy  0x00000022 , 0x0000003f 
+ 00025766  0x00006a70 isub  0x00000002 , 0x00000002 
+ 00025767  0x00006a71 rtn  0x00000005 
+ 00025768  0x00006a72 nbranch  0x000064ac , 0x00000002 
+ 00025769  0x00006a73 fetch  0x00000001 , 0x000049f5 
+ 00025770  0x00006a74 isub  0x00000002 , 0x0000003e 
+ 00025771  0x00006a75 rtn  0x00000002 
+ 00025772  0x00006a77 copy  0x00000022 , 0x0000003f 
+ 00025773  0x00006a78 store  0x00000004 , 0x000049f6 
+ 00025774  0x00006a79 call  0x00006385 
+ 00025775  0x00006a7a nrtn  0x00000028 
+ 00025776  0x00006a7b pincrease  0xffffffff 
+ 00025777  0x00006a7c mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025778  0x00006a7d arg  0x00004c12 , 0x00000002 
+ 00025779  0x00006a7e iadd  0x00000002 , 0x00000006 
+ 00025780  0x00006a7f branch  0x000063cb 
+ 00025781  0x00006a83 call  0x00006858 
+ 00025782  0x00006a84 call  0x0000676c 
+ 00025783  0x00006a85 call  0x0000675a 
+ 00025784  0x00006a86 call  0x000064bc 
+ 00025785  0x00006a87 call  0x000064d3 
+ 00025786  0x00006a88 call  0x00006311 
+ 00025787  0x00006a89 branch  0x000064d9 
+ 00025788  0x00006a8c arg  0x00004ed1 , 0x00000013 
+ 00025789  0x00006a8d arg  0x000064bf , 0x00000012 
+ 00025790  0x00006a8e branch  0x000042e0 
+ 00025791  0x00006a91 call  0x000078fa 
+ 00025792  0x00006a92 nrtn  0x00000034 
+ 00025793  0x00006a93 fetch  0x00000002 , 0x000048bc 
+ 00025794  0x00006a94 nrtn  0x00000034 
+ 00025795  0x00006a96 call  0x00006730 
+ 00025796  0x00006a97 branch  0x000064cd , 0x00000034 
+ 00025797  0x00006a98 copy  0x00000007 , 0x0000003f 
+ 00025798  0x00006a99 compare  0x00000004 , 0x0000003f , 0x00000007 
+ 00025799  0x00006a9a branch  0x000064cf , 0x00000001 
+ 00025800  0x00006a9c copy  0x00000007 , 0x0000003f 
+ 00025801  0x00006a9d compare  0x00000001 , 0x0000003f , 0x00000007 
+ 00025802  0x00006a9e branch  0x000064d1 , 0x00000001 
+ 00025803  0x00006a9f arg  0x00004ec6 , 0x00000013 
+ 00025804  0x00006aa0 branch  0x00006371 
+ 00025805  0x00006aa3 arg  0x00004eda , 0x00000013 
+ 00025806  0x00006aa4 branch  0x00006371 
+ 00025807  0x00006aa7 arg  0x00004edf , 0x00000013 
+ 00025808  0x00006aa8 branch  0x00006371 
+ 00025809  0x00006aab arg  0x00004ee9 , 0x00000013 
+ 00025810  0x00006aac branch  0x00006371 
+ 00025811  0x00006aaf arg  0x00004c0f , 0x00000013 
+ 00025812  0x00006ab0 arg  0x000064d6 , 0x00000012 
+ 00025813  0x00006ab1 branch  0x000042e0 
+ 00025814  0x00006ab4 arg  0x0000000a , 0x00000039 
+ 00025815  0x00006ab5 arg  0x00004a04 , 0x00000005 
+ 00025816  0x00006ab6 branch  0x00007ca1 
+ 00025817  0x00006aba arg  0x000046ca , 0x00000013 
+ 00025818  0x00006abb arg  0x000064dc , 0x00000012 
+ 00025819  0x00006abc branch  0x000042e0 
+ 00025820  0x00006abe fetch  0x00000002 , 0x000044e9 
+ 00025821  0x00006abf bbit1  0x00000009 , 0x0000639e 
+ 00025822  0x00006ac0 branch  0x00004327 
+ 00025823  0x00006ac3 copy  0x00000013 , 0x0000003f 
+ 00025824  0x00006ac4 beq  0x00000014 , 0x000064f4 
+ 00025825  0x00006ac5 beq  0x00000015 , 0x000064ef 
+ 00025826  0x00006ac6 beq  0x00000031 , 0x000064e6 
+ 00025827  0x00006ac7 rtneq  0x00000040 
+ 00025828  0x00006ac8 beq  0x00000032 , 0x000066c8 
+ 00025829  0x00006ac9 branch  0x000062d9 
+ 00025830  0x00006acc jam  0x00000001 , 0x00004ed2 
+ 00025831  0x00006acd call  0x00006783 
+ 00025832  0x00006acf fetch  0x00000002 , 0x00004f84 
+ 00025833  0x00006ad0 store  0x00000002 , 0x00004ebe 
+ 00025834  0x00006ad2 fetcht  0x00000002 , 0x00004f86 
+ 00025835  0x00006ad3 setarg  0x00000fff 
+ 00025836  0x00006ad4 isub  0x00000002 , 0x0000003f 
+ 00025837  0x00006ad5 store  0x00000002 , 0x00004ec0 
+ 00025838  0x00006ad6 rtn 
+ 00025839  0x00006ad9 jam  0x00000000 , 0x00004ebb 
+ 00025840  0x00006ada jam  0x00000000 , 0x00004ed2 
+ 00025841  0x00006adb call  0x000065ad 
+ 00025842  0x00006adc call  0x00006500 
+ 00025843  0x00006add branch  0x000062e6 
+ 00025844  0x00006ae0 copy  0x00000022 , 0x0000003f 
+ 00025845  0x00006ae1 store  0x00000004 , 0x000049f6 
+ 00025846  0x00006ae2 call  0x00006729 
+ 00025847  0x00006ae3 branch  0x000062e2 
+ 00025848  0x00006ae7 disable  0x0000002c 
+ 00025849  0x00006ae8 fetch  0x00000002 , 0x00004516 
+ 00025850  0x00006ae9 store  0x00000002 , 0x00004518 
+ 00025851  0x00006aea call  0x00006358 
+ 00025852  0x00006aeb branch  0x0000635c , 0x00000028 
+ 00025853  0x00006aec call  0x00006351 
+ 00025854  0x00006aed nrtn  0x00000028 
+ 00025855  0x00006aee branch  0x00007dbe 
+ 00025856  0x00006af1 jam  0x00000000 , 0x00004ed5 
+ 00025857  0x00006af2 rtn 
+ 00025858  0x00006af5 copy  0x00000007 , 0x0000003f 
+ 00025859  0x00006af6 rtnne  0x00000001 
+ 00025860  0x00006af7 branch  0x0000650c 
+ 00025861  0x00006afa call  0x000064f8 
+ 00025862  0x00006afb nrtn  0x0000002c 
+ 00025863  0x00006afc deposit  0x00000011 
+ 00025864  0x00006afd branch  0x00006537 , 0x00000034 
+ 00025865  0x00006aff bpatch  0x000000a3 , 0x00004014 
+ 00025866  0x00006b00 fetch  0x00000001 , 0x00004faf 
+ 00025867  0x00006b01 nbranch  0x00006502 , 0x00000034 
+ 00025868  0x00006b03 jam  0x00000001 , 0x00004c10 
+ 00025869  0x00006b04 call  0x00004323 
+ 00025870  0x00006b05 call  0x0000652c 
+ 00025871  0x00006b06 call  0x00006561 
+ 00025872  0x00006b07 branch  0x00006500 , 0x00000002 
+ 00025873  0x00006b08 copy  0x00000007 , 0x0000003f 
+ 00025874  0x00006b09 fetcht  0x00000001 , 0x00004ed5 
+ 00025875  0x00006b0a isub  0x00000002 , 0x0000003e 
+ 00025876  0x00006b0b ncall  0x00006526 , 0x00000005 
+ 00025877  0x00006b0c copy  0x00000007 , 0x0000003f 
+ 00025878  0x00006b0d store  0x00000001 , 0x00004ed5 
+ 00025879  0x00006b0e fetcht  0x00000001 , 0x00004ed8 
+ 00025880  0x00006b0f isub  0x00000002 , 0x0000003e 
+ 00025881  0x00006b10 branch  0x00006524 , 0x00000005 
+ 00025882  0x00006b11 fetch  0x00000001 , 0x00004ed9 
+ 00025883  0x00006b12 nbranch  0x0000651f , 0x00000034 
+ 00025884  0x00006b14 call  0x00006732 
+ 00025885  0x00006b15 arg  0x0000000a , 0x0000003f 
+ 00025886  0x00006b16 branch  0x0000655a 
+ 00025887  0x00006b19 call  0x0000677f 
+ 00025888  0x00006b1a copy  0x00000007 , 0x0000003f 
+ 00025889  0x00006b1b beq  0x00000001 , 0x0000651c 
+ 00025890  0x00006b1c call  0x00006642 
+ 00025891  0x00006b1d branch  0x000065f4 
+ 00025892  0x00006b20 jam  0x00000001 , 0x00004ed6 
+ 00025893  0x00006b21 branch  0x000065f4 
+ 00025894  0x00006b24 bpatch  0x000000a4 , 0x00004014 
+ 00025895  0x00006b25 fetch  0x00000001 , 0x00004ed9 
+ 00025896  0x00006b26 branch  0x000064c3 , 0x00000034 
+ 00025897  0x00006b27 copy  0x00000007 , 0x0000003f 
+ 00025898  0x00006b28 beq  0x00000001 , 0x000064c3 
+ 00025899  0x00006b29 rtn 
+ 00025900  0x00006b2b arg  0x0000000a , 0x0000003f 
+ 00025901  0x00006b2c imul32  0x00000007 , 0x0000003f 
+ 00025902  0x00006b2d arg  0x000049fa , 0x00000013 
+ 00025903  0x00006b2e iadd  0x00000013 , 0x00000013 
+ 00025904  0x00006b2f copy  0x00000022 , 0x0000003f 
+ 00025905  0x00006b30 istore  0x00000004 , 0x00000013 
+ 00025906  0x00006b31 increase  0x00000004 , 0x00000013 
+ 00025907  0x00006b32 ifetch  0x00000001 , 0x00000013 
+ 00025908  0x00006b33 increase  0x00000001 , 0x0000003f 
+ 00025909  0x00006b34 istore  0x00000001 , 0x00000013 
+ 00025910  0x00006b35 rtn 
+ 00025911  0x00006b37 bpatch  0x000000a5 , 0x00004014 
+ 00025912  0x00006b38 fetch  0x00000001 , 0x00004ed9 
+ 00025913  0x00006b39 call  0x0000654b , 0x00000034 
+ 00025914  0x00006b3b arg  0x0000000a , 0x0000003f 
+ 00025915  0x00006b3c imul32  0x00000007 , 0x0000003f 
+ 00025916  0x00006b3d arg  0x000049fa , 0x00000013 
+ 00025917  0x00006b3e iadd  0x00000013 , 0x00000013 
+ 00025918  0x00006b3f ifetcht  0x00000004 , 0x00000013 
+ 00025919  0x00006b40 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00025920  0x00006b41 rtn  0x00000005 
+ 00025921  0x00006b42 copy  0x00000022 , 0x0000003f 
+ 00025922  0x00006b43 isub  0x00000002 , 0x00000002 
+ 00025923  0x00006b44 ncall  0x00007806 , 0x00000002 
+ 00025924  0x00006b45 add  0x00000013 , 0x00000009 , 0x00000006 
+ 00025925  0x00006b46 ifetch  0x00000001 , 0x00000006 
+ 00025926  0x00006b47 nbranch  0x00006566 , 0x00000034 
+ 00025927  0x00006b48 increase  0x00000005 , 0x00000013 
+ 00025928  0x00006b49 copy  0x00000022 , 0x0000003f 
+ 00025929  0x00006b4a istore  0x00000004 , 0x00000013 
+ 00025930  0x00006b4b rtn 
+ 00025931  0x00006b4e fetch  0x00000001 , 0x00004faf 
+ 00025932  0x00006b4f nbranch  0x00004323 , 0x00000034 
+ 00025933  0x00006b50 branch  0x00004325 
+ 00025934  0x00006b53 add  0x00000013 , 0x00000004 , 0x00000006 
+ 00025935  0x00006b54 ifetch  0x00000001 , 0x00000006 
+ 00025936  0x00006b55 branch  0x00006551 
+ 00025937  0x00006b58 call  0x0000656b 
+ 00025938  0x00006b59 fetch  0x00000001 , 0x00004ed9 
+ 00025939  0x00006b5a nbranch  0x0000655d , 0x00000034 
+ 00025940  0x00006b5c call  0x00006561 
+ 00025941  0x00006b5d branch  0x00006500 , 0x00000002 
+ 00025942  0x00006b5e call  0x00006738 
+ 00025943  0x00006b5f copy  0x00000007 , 0x0000003f 
+ 00025944  0x00006b60 beq  0x00000003 , 0x00006740 
+ 00025945  0x00006b61 arg  0x0000000f , 0x0000003f 
+ 00025946  0x00006b63 imul32  0x00000007 , 0x0000003f 
+ 00025947  0x00006b64 iadd  0x00000013 , 0x00000013 
+ 00025948  0x00006b65 branch  0x00006371 
+ 00025949  0x00006b68 copy  0x00000007 , 0x0000003f 
+ 00025950  0x00006b69 beq  0x00000001 , 0x00006554 
+ 00025951  0x00006b6a beq  0x00000003 , 0x00006554 
+ 00025952  0x00006b6b rtn 
+ 00025953  0x00006b6e call  0x00007902 
+ 00025954  0x00006b6f ifetcht  0x00000001 , 0x00000006 
+ 00025955  0x00006b70 isub  0x00000002 , 0x0000003f 
+ 00025956  0x00006b71 sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00025957  0x00006b72 rtn 
+ 00025958  0x00006b75 jam  0x00000001 , 0x00004ed0 
+ 00025959  0x00006b76 call  0x0000656b 
+ 00025960  0x00006b77 arg  0x00004abe , 0x00000013 
+ 00025961  0x00006b78 arg  0x00000003 , 0x0000003f 
+ 00025962  0x00006b79 branch  0x0000655a 
+ 00025963  0x00006b7c arg  0x0000000a , 0x00000039 
+ 00025964  0x00006b7d copy  0x00000013 , 0x00000005 
+ 00025965  0x00006b7e branch  0x00007ca1 
+ 00025966  0x00006b81 fetch  0x00000002 , 0x000048bc 
+ 00025967  0x00006b82 store  0x00000002 , 0x0000442e 
+ 00025968  0x00006b83 call  0x000065be 
+ 00025969  0x00006b84 fetch  0x00000002 , 0x0000442e 
+ 00025970  0x00006b85 store  0x00000002 , 0x000048bc 
+ 00025971  0x00006b87 arg  0x00000000 , 0x00000007 
+ 00025972  0x00006b88 fetch  0x00000001 , 0x00004523 
+ 00025973  0x00006b89 copy  0x0000003f , 0x00000039 
+ 00025974  0x00006b8a arg  0x000049fa , 0x00000013 
+ 00025975  0x00006b8c copy  0x00000039 , 0x0000003f 
+ 00025976  0x00006b8d store  0x00000002 , 0x00000678 
+ 00025977  0x00006b8e copy  0x00000013 , 0x0000003f 
+ 00025978  0x00006b8f store  0x00000002 , 0x0000068c 
+ 00025979  0x00006b90 copy  0x00000007 , 0x0000003f 
+ 00025980  0x00006b91 store  0x00000002 , 0x0000067a 
+ 00025981  0x00006b92 call  0x000065b4 
+ 00025982  0x00006b94 fetch  0x00000002 , 0x0000068c 
+ 00025983  0x00006b95 copy  0x0000003f , 0x00000013 
+ 00025984  0x00006b96 fetch  0x00000002 , 0x0000067a 
+ 00025985  0x00006b97 copy  0x0000003f , 0x00000007 
+ 00025986  0x00006b98 call  0x0000658b 
+ 00025987  0x00006b9a fetch  0x00000002 , 0x0000067a 
+ 00025988  0x00006b9b add  0x0000003f , 0x00000001 , 0x00000007 
+ 00025989  0x00006b9c fetch  0x00000002 , 0x0000068c 
+ 00025990  0x00006b9d add  0x0000003f , 0x0000000a , 0x00000013 
+ 00025991  0x00006b9e fetch  0x00000002 , 0x00000678 
+ 00025992  0x00006b9f copy  0x0000003f , 0x00000039 
+ 00025993  0x00006ba0 loop  0x00006577 
+ 00025994  0x00006ba1 rtn 
+ 00025995  0x00006ba4 ifetch  0x00000004 , 0x00000013 
+ 00025996  0x00006ba5 rtn  0x00000034 
+ 00025997  0x00006ba6 copy  0x0000003f , 0x00000002 
+ 00025998  0x00006ba7 copy  0x00000022 , 0x0000003f 
+ 00025999  0x00006ba8 isub  0x00000002 , 0x00000002 
+ 00026000  0x00006ba9 nrtn  0x00000002 
+ 00026001  0x00006baa setarg  0x000009c4 
+ 00026002  0x00006bab isub  0x00000002 , 0x0000003e 
+ 00026003  0x00006bac rtn  0x00000002 
+ 00026004  0x00006bad copy  0x00000022 , 0x0000003f 
+ 00026005  0x00006bae istore  0x00000004 , 0x00000013 
+ 00026006  0x00006baf increase  0x00000009 , 0x00000013 
+ 00026007  0x00006bb0 setarg  0x00000001 
+ 00026008  0x00006bb1 istore  0x00000001 , 0x00000013 
+ 00026009  0x00006bb2 fetch  0x00000001 , 0x00004ed0 
+ 00026010  0x00006bb3 rtn  0x00000034 
+ 00026011  0x00006bb4 jam  0x00000000 , 0x00004ed0 
+ 00026012  0x00006bb5 bpatch  0x000000a6 , 0x00004014 
+ 00026013  0x00006bb6 call  0x00006755 
+ 00026014  0x00006bb7 fetch  0x00000001 , 0x00004ed7 
+ 00026015  0x00006bb8 beq  0x00000000 , 0x000065a2 
+ 00026016  0x00006bb9 beq  0x00000001 , 0x000065a5 
+ 00026017  0x00006bba rtn 
+ 00026018  0x00006bbd call  0x000065af 
+ 00026019  0x00006bbe arg  0x00000003 , 0x0000003f 
+ 00026020  0x00006bbf branch  0x0000655a 
+ 00026021  0x00006bc2 copy  0x00000007 , 0x0000003f 
+ 00026022  0x00006bc3 fetcht  0x00000001 , 0x00004ed8 
+ 00026023  0x00006bc4 isub  0x00000002 , 0x0000003e 
+ 00026024  0x00006bc5 nbranch  0x000065a2 , 0x00000005 
+ 00026025  0x00006bc6 fetch  0x00000001 , 0x00004ed9 
+ 00026026  0x00006bc7 setflip  0x00000000 , 0x0000003f 
+ 00026027  0x00006bc8 store  0x00000001 , 0x00004ed9 
+ 00026028  0x00006bc9 nrtn  0x00000034 
+ 00026029  0x00006bcb jam  0x00000000 , 0x00004ed9 
+ 00026030  0x00006bcc branch  0x00004325 
+ 00026031  0x00006bcf arg  0x00004aa9 , 0x00000013 
+ 00026032  0x00006bd0 call  0x00006730 
+ 00026033  0x00006bd1 rtn  0x00000034 
+ 00026034  0x00006bd2 arg  0x00004bd0 , 0x00000013 
+ 00026035  0x00006bd3 rtn 
+ 00026036  0x00006bd6 add  0x00000013 , 0x00000005 , 0x00000012 
+ 00026037  0x00006bd7 ifetch  0x00000004 , 0x00000012 
+ 00026038  0x00006bd8 rtn  0x00000034 
+ 00026039  0x00006bd9 copy  0x0000003f , 0x00000002 
+ 00026040  0x00006bda copy  0x00000022 , 0x0000003f 
+ 00026041  0x00006bdb isub  0x00000002 , 0x00000002 
+ 00026042  0x00006bdc ncall  0x00007806 , 0x00000002 
+ 00026043  0x00006bdd setarg  0x000003e8 
+ 00026044  0x00006bde isub  0x00000002 , 0x0000003e 
+ 00026045  0x00006bdf branch  0x0000654e 
+ 00026046  0x00006be1 fetch  0x00000002 , 0x0000442c 
+ 00026047  0x00006be2 ifetch  0x00000001 , 0x0000003f 
+ 00026048  0x00006be3 rtn  0x00000034 
+ 00026049  0x00006be5 setarg  0x00000000 
+ 00026050  0x00006be6 store  0x00000002 , 0x000006f1 
+ 00026051  0x00006be7 call  0x00007003 
+ 00026052  0x00006be8 nbranch  0x000077a5 , 0x00000028 
+ 00026053  0x00006be9 call  0x000077a3 
+ 00026054  0x00006bea disable  0x00000028 
+ 00026055  0x00006beb fetch  0x00000001 , 0x00004388 
+ 00026056  0x00006bec nrtn  0x00000034 
+ 00026057  0x00006bed bpatch  0x000000a7 , 0x00004014 
+ 00026058  0x00006bee fetch  0x00000001 , 0x00004ed7 
+ 00026059  0x00006bef beq  0x00000001 , 0x000065cf 
+ 00026060  0x00006bf0 call  0x00006628 
+ 00026061  0x00006bf1 call  0x000065dc 
+ 00026062  0x00006bf2 rtn  0x00000028 
+ 00026063  0x00006bf4 call  0x000065d5 
+ 00026064  0x00006bf5 fetch  0x00000002 , 0x000006f1 
+ 00026065  0x00006bf6 store  0x00000002 , 0x000006f8 
+ 00026066  0x00006bf7 jam  0x00000000 , 0x000006fa 
+ 00026067  0x00006bf8 force  0x00000000 , 0x00000007 
+ 00026068  0x00006bf9 branch  0x0000703b 
+ 00026069  0x00006bfc fetch  0x00000001 , 0x00004ed5 
+ 00026070  0x00006bfd fetcht  0x00000001 , 0x00004ed8 
+ 00026071  0x00006bfe isub  0x00000002 , 0x0000003e 
+ 00026072  0x00006bff branch  0x00004323 , 0x00000005 
+ 00026073  0x00006c00 fetch  0x00000001 , 0x00004ed9 
+ 00026074  0x00006c01 nbranch  0x00004325 , 0x00000034 
+ 00026075  0x00006c02 rtn 
+ 00026076  0x00006c05 arg  0x00000000 , 0x00000007 
+ 00026077  0x00006c07 arg  0x00004ad3 , 0x00000012 
+ 00026078  0x00006c08 arg  0x00000002 , 0x0000003f 
+ 00026079  0x00006c09 imul32  0x00000007 , 0x0000003f 
+ 00026080  0x00006c0a iadd  0x00000012 , 0x00000012 
+ 00026081  0x00006c0b ifetch  0x00000002 , 0x00000012 
+ 00026082  0x00006c0d rtn  0x00000034 
+ 00026083  0x00006c0e fetcht  0x00000002 , 0x000006f1 
+ 00026084  0x00006c0f ixor  0x00000002 , 0x0000003e 
+ 00026085  0x00006c10 branch  0x000065e8 , 0x00000005 
+ 00026086  0x00006c11 increase  0x00000001 , 0x00000007 
+ 00026087  0x00006c12 branch  0x000065dd 
+ 00026088  0x00006c15 store  0x00000002 , 0x00004adf 
+ 00026089  0x00006c16 call  0x00004323 
+ 00026090  0x00006c17 arg  0x00004ae1 , 0x00000013 
+ 00026091  0x00006c18 arg  0x0000000a , 0x0000003f 
+ 00026092  0x00006c19 imul32  0x00000007 , 0x0000003f 
+ 00026093  0x00006c1a iadd  0x00000013 , 0x00000013 
+ 00026094  0x00006c1b call  0x000065f0 
+ 00026095  0x00006c1c branch  0x00006633 
+ 00026096  0x00006c1f call  0x0000677f 
+ 00026097  0x00006c20 ifetch  0x00000001 , 0x00000013 
+ 00026098  0x00006c21 rtn  0x00000034 
+ 00026099  0x00006c22 call  0x00006642 
+ 00026100  0x00006c24 call  0x0000677f 
+ 00026101  0x00006c25 call  0x00006609 
+ 00026102  0x00006c26 call  0x00006614 
+ 00026103  0x00006c27 call  0x0000661e 
+ 00026104  0x00006c28 arg  0x00000005 , 0x0000003f 
+ 00026105  0x00006c29 call  0x00006382 
+ 00026106  0x00006c2a call  0x00006730 
+ 00026107  0x00006c2b rtn  0x00000034 
+ 00026108  0x00006c2c jam  0x00000078 , 0x000049f5 
+ 00026109  0x00006c2d arg  0x00000006 , 0x0000003f 
+ 00026110  0x00006c2e branch  0x00006382 
+ 00026111  0x00006c31 fetcht  0x00000001 , 0x00004eba 
+ 00026112  0x00006c32 call  0x00006730 
+ 00026113  0x00006c33 rtn  0x00000034 
+ 00026114  0x00006c34 fetcht  0x00000001 , 0x00004ebd 
+ 00026115  0x00006c35 increase  0x00000001 , 0x00000002 
+ 00026116  0x00006c36 fetch  0x00000001 , 0x00004ed6 
+ 00026117  0x00006c37 rtn  0x00000034 
+ 00026118  0x00006c38 fetcht  0x00000001 , 0x00004eba 
+ 00026119  0x00006c39 jam  0x00000000 , 0x00004ed6 
+ 00026120  0x00006c3a rtn 
+ 00026121  0x00006c3d call  0x000065ff 
+ 00026122  0x00006c3e copy  0x00000002 , 0x0000003f 
+ 00026123  0x00006c3f rtn  0x00000034 
+ 00026124  0x00006c40 store  0x00000001 , 0x00004ec3 
+ 00026125  0x00006c42 arg  0x00000013 , 0x0000003f 
+ 00026126  0x00006c43 call  0x00006382 
+ 00026127  0x00006c44 fetch  0x00000001 , 0x00004ec3 
+ 00026128  0x00006c45 increase  0xffffffff , 0x0000003f 
+ 00026129  0x00006c46 store  0x00000001 , 0x00004ec3 
+ 00026130  0x00006c47 rtn  0x00000034 
+ 00026131  0x00006c48 branch  0x0000660d 
+ 00026132  0x00006c4b fetch  0x00000001 , 0x00004ebc 
+ 00026133  0x00006c4c rtn  0x00000034 
+ 00026134  0x00006c4d store  0x00000001 , 0x00004ec4 
+ 00026135  0x00006c4f arg  0x00000020 , 0x0000003f 
+ 00026136  0x00006c50 call  0x00006382 
+ 00026137  0x00006c51 fetch  0x00000001 , 0x00004ec4 
+ 00026138  0x00006c52 increase  0xffffffff , 0x0000003f 
+ 00026139  0x00006c53 store  0x00000001 , 0x00004ec4 
+ 00026140  0x00006c54 rtn  0x00000034 
+ 00026141  0x00006c55 branch  0x00006617 
+ 00026142  0x00006c58 fetch  0x00000001 , 0x00004ebd 
+ 00026143  0x00006c59 rtn  0x00000034 
+ 00026144  0x00006c5a store  0x00000001 , 0x00004ec5 
+ 00026145  0x00006c5c arg  0x00000021 , 0x0000003f 
+ 00026146  0x00006c5d call  0x00006382 
+ 00026147  0x00006c5e fetch  0x00000001 , 0x00004ec5 
+ 00026148  0x00006c5f increase  0xffffffff , 0x0000003f 
+ 00026149  0x00006c60 store  0x00000001 , 0x00004ec5 
+ 00026150  0x00006c61 rtn  0x00000034 
+ 00026151  0x00006c62 branch  0x00006621 
+ 00026152  0x00006c65 fetch  0x00000002 , 0x00004adf 
+ 00026153  0x00006c66 rtn  0x00000034 
+ 00026154  0x00006c67 fetcht  0x00000002 , 0x000006f1 
+ 00026155  0x00006c68 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00026156  0x00006c69 branch  0x00006636 , 0x00000005 
+ 00026157  0x00006c6a isub  0x00000002 , 0x0000003e 
+ 00026158  0x00006c6b rtn  0x00000005 
+ 00026159  0x00006c6c storet  0x00000002 , 0x00004adf 
+ 00026160  0x00006c6d fetch  0x00000002 , 0x00004ed3 
+ 00026161  0x00006c6e isub  0x00000002 , 0x0000003e 
+ 00026162  0x00006c6f call  0x00004325 , 0x00000005 
+ 00026163  0x00006c71 fetch  0x00000002 , 0x000006f1 
+ 00026164  0x00006c72 store  0x00000002 , 0x0000442e 
+ 00026165  0x00006c73 branch  0x00007dba 
+ 00026166  0x00006c75 jam  0x00000001 , 0x00004ed0 
+ 00026167  0x00006c76 call  0x00004325 
+ 00026168  0x00006c77 arg  0x00004b1d , 0x00000013 
+ 00026169  0x00006c78 call  0x000065f0 
+ 00026170  0x00006c79 setarg  0x00000000 
+ 00026171  0x00006c7a store  0x00000002 , 0x00004adf 
+ 00026172  0x00006c7b jam  0x00000032 , 0x000048ae 
+ 00026173  0x00006c7c call  0x00006633 
+ 00026174  0x00006c7d fetch  0x00000001 , 0x00004523 
+ 00026175  0x00006c7e mul32  0x0000003f , 0x0000000a , 0x00000039 
+ 00026176  0x00006c7f arg  0x000049fa , 0x00000005 
+ 00026177  0x00006c80 branch  0x00007ca1 
+ 00026178  0x00006c82 bpatch  0x000000a8 , 0x00004015 
+ 00026179  0x00006c83 fetch  0x00000001 , 0x00004ed7 
+ 00026180  0x00006c84 beq  0x00000001 , 0x00006647 
+ 00026181  0x00006c85 beq  0x00000000 , 0x0000664d 
+ 00026182  0x00006c86 rtn 
+ 00026183  0x00006c88 copy  0x00000007 , 0x0000003f 
+ 00026184  0x00006c89 beq  0x00000005 , 0x00006676 
+ 00026185  0x00006c8a beq  0x00000000 , 0x00006693 
+ 00026186  0x00006c8b beq  0x00000004 , 0x0000669b 
+ 00026187  0x00006c8c beq  0x00000002 , 0x000066be 
+ 00026188  0x00006c8d rtn 
+ 00026189  0x00006c8f ifetch  0x00000001 , 0x00000013 
+ 00026190  0x00006c90 beq  0x00000001 , 0x00006676 
+ 00026191  0x00006c91 beq  0x00000002 , 0x00006693 
+ 00026192  0x00006c92 beq  0x00000003 , 0x0000669b 
+ 00026193  0x00006c93 beq  0x00000004 , 0x000066be 
+ 00026194  0x00006c94 beq  0x00000005 , 0x00006654 
+ 00026195  0x00006c95 rtn 
+ 00026196  0x00006c97 call  0x00006730 
+ 00026197  0x00006c98 nbranch  0x0000665e , 0x00000034 
+ 00026198  0x00006c99 setarg  0x00000004 
+ 00026199  0x00006c9a mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00026200  0x00006c9b arg  0x00004c12 , 0x00000002 
+ 00026201  0x00006c9c iadd  0x00000002 , 0x00000005 
+ 00026202  0x00006c9d increase  0x00000003 , 0x00000005 
+ 00026203  0x00006c9e fetch  0x00000003 , 0x00004b27 
+ 00026204  0x00006c9f istore  0x00000003 , 0x00000005 
+ 00026205  0x00006ca0 rtn 
+ 00026206  0x00006ca2 setarg  0x00000004 
+ 00026207  0x00006ca3 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00026208  0x00006ca4 arg  0x00004c12 , 0x00000002 
+ 00026209  0x00006ca5 iadd  0x00000002 , 0x00000005 
+ 00026210  0x00006ca6 increase  0x00000003 , 0x00000005 
+ 00026211  0x00006ca7 fetch  0x00000002 , 0x00004ebe 
+ 00026212  0x00006ca8 istore  0x00000003 , 0x00000005 
+ 00026213  0x00006ca9 increase  0x00000007 , 0x00000005 
+ 00026214  0x00006caa fetch  0x00000002 , 0x00004ec0 
+ 00026215  0x00006cab lshift4  0x0000003f , 0x0000003f 
+ 00026216  0x00006cac lshift8  0x0000003f , 0x0000003f 
+ 00026217  0x00006cad istore  0x00000003 , 0x00000005 
+ 00026218  0x00006cae rtn 
+ 00026219  0x00006cb1 fetch  0x00000001 , 0x00004ebc 
+ 00026220  0x00006cb2 rtn  0x00000034 
+ 00026221  0x00006cb3 increase  0xffffffff , 0x0000003f 
+ 00026222  0x00006cb4 store  0x00000001 , 0x00004ebc 
+ 00026223  0x00006cb5 arg  0x00000062 , 0x0000003f 
+ 00026224  0x00006cb6 rtn 
+ 00026225  0x00006cb8 arg  0x0000000a , 0x00000002 
+ 00026226  0x00006cb9 call  0x00006730 
+ 00026227  0x00006cba rtn  0x00000034 
+ 00026228  0x00006cbb arg  0x00000007 , 0x00000002 
+ 00026229  0x00006cbc rtn 
+ 00026230  0x00006cbe call  0x00006671 
+ 00026231  0x00006cbf fetch  0x00000002 , 0x00004ebe 
+ 00026232  0x00006cc0 isub  0x00000002 , 0x0000003e 
+ 00026233  0x00006cc1 ncall  0x0000666b , 0x00000002 
+ 00026234  0x00006cc2 nrtn  0x00000002 
+ 00026235  0x00006cc3 isub  0x00000002 , 0x0000003f 
+ 00026236  0x00006cc5 store  0x00000002 , 0x00004ebe 
+ 00026237  0x00006cc7 bpatch  0x000000a9 , 0x00004015 
+ 00026238  0x00006cc8 fetch  0x00000002 , 0x00004ebe 
+ 00026239  0x00006cc9 fetcht  0x00000002 , 0x00004ec0 
+ 00026240  0x00006cca lshift8  0x00000002 , 0x00000002 
+ 00026241  0x00006ccb lshift4  0x00000002 , 0x00000002 
+ 00026242  0x00006ccc iadd  0x00000002 , 0x0000003f 
+ 00026243  0x00006ccd store  0x00000003 , 0x00004b27 
+ 00026244  0x00006cce branch  0x00006654 
+ 00026245  0x00006cd0 fetch  0x00000002 , 0x00004ebe 
+ 00026246  0x00006cd1 arg  0x00000062 , 0x00000002 
+ 00026247  0x00006cd2 isub  0x00000002 , 0x00000002 
+ 00026248  0x00006cd3 nrtn  0x00000002 
+ 00026249  0x00006cd4 copy  0x00000002 , 0x0000003f 
+ 00026250  0x00006cd5 fetcht  0x00000001 , 0x00004ebc 
+ 00026251  0x00006cd6 sub  0x00000002 , 0x00000003 , 0x0000003e 
+ 00026252  0x00006cd7 branch  0x00006690 , 0x00000005 
+ 00026253  0x00006cd8 increase  0x00000001 , 0x00000002 
+ 00026254  0x00006cd9 storet  0x00000001 , 0x00004ebc 
+ 00026255  0x00006cda branch  0x0000667c 
+ 00026256  0x00006cdc jam  0x00000000 , 0x00004ebc 
+ 00026257  0x00006cdd arg  0x00000000 , 0x0000003f 
+ 00026258  0x00006cde branch  0x0000667c 
+ 00026259  0x00006ce0 call  0x00006730 
+ 00026260  0x00006ce1 ncall  0x00006685 , 0x00000034 
+ 00026261  0x00006ce2 call  0x00006671 
+ 00026262  0x00006ce3 fetch  0x00000002 , 0x00004ebe 
+ 00026263  0x00006ce5 iadd  0x00000002 , 0x0000003f 
+ 00026264  0x00006ce6 arg  0x00000fff , 0x00000002 
+ 00026265  0x00006ce7 call  0x00007d6c 
+ 00026266  0x00006ce8 branch  0x0000667c 
+ 00026267  0x00006ceb call  0x00006671 
+ 00026268  0x00006cec fetch  0x00000002 , 0x00004ec0 
+ 00026269  0x00006ced isub  0x00000002 , 0x0000003f 
+ 00026270  0x00006cee store  0x00000002 , 0x00004ec0 
+ 00026271  0x00006cf0 fetcht  0x00000002 , 0x00004ec0 
+ 00026272  0x00006cf1 call  0x00006730 
+ 00026273  0x00006cf2 branch  0x0000667d , 0x00000034 
+ 00026274  0x00006cf3 setarg  0x00000fff 
+ 00026275  0x00006cf4 isub  0x00000002 , 0x0000003f 
+ 00026276  0x00006cf5 arg  0x00000062 , 0x00000002 
+ 00026277  0x00006cf6 isub  0x00000002 , 0x00000002 
+ 00026278  0x00006cf7 nbranch  0x0000667d , 0x00000002 
+ 00026279  0x00006cf8 setarg  0x00000fff 
+ 00026280  0x00006cf9 isub  0x00000002 , 0x0000003f 
+ 00026281  0x00006cfa fetcht  0x00000001 , 0x00004ebd 
+ 00026282  0x00006cfb sub  0x00000002 , 0x00000005 , 0x0000003e 
+ 00026283  0x00006cfc branch  0x000066af , 0x00000005 
+ 00026284  0x00006cfd increase  0x00000001 , 0x00000002 
+ 00026285  0x00006cfe storet  0x00000001 , 0x00004ebd 
+ 00026286  0x00006cff branch  0x000066bc 
+ 00026287  0x00006d01 jam  0x00000000 , 0x00004ebd 
+ 00026288  0x00006d03 setarg  0x00000fff 
+ 00026289  0x00006d04 branch  0x000066bc 
+ 00026290  0x00006d07 call  0x00006730 
+ 00026291  0x00006d08 branch  0x000066b0 , 0x00000034 
+ 00026292  0x00006d09 fetch  0x00000001 , 0x00004ebd 
+ 00026293  0x00006d0a branch  0x000066b0 , 0x00000034 
+ 00026294  0x00006d0b increase  0xffffffff , 0x0000003f 
+ 00026295  0x00006d0c store  0x00000001 , 0x00004ebd 
+ 00026296  0x00006d0d setarg  0x00000fff 
+ 00026297  0x00006d0e arg  0x00000062 , 0x00000002 
+ 00026298  0x00006d0f isub  0x00000002 , 0x0000003f 
+ 00026299  0x00006d10 iadd  0x00000011 , 0x0000003f 
+ 00026300  0x00006d12 store  0x00000002 , 0x00004ec0 
+ 00026301  0x00006d13 branch  0x0000667d 
+ 00026302  0x00006d15 call  0x00006671 
+ 00026303  0x00006d16 fetch  0x00000002 , 0x00004ec0 
+ 00026304  0x00006d18 iadd  0x00000002 , 0x0000003f 
+ 00026305  0x00006d19 arg  0x00000fff , 0x00000002 
+ 00026306  0x00006d1a isub  0x00000002 , 0x00000011 
+ 00026307  0x00006d1b branch  0x000066b2 , 0x00000002 
+ 00026308  0x00006d1c branch  0x000066bc 
+ 00026309  0x00006d20 fetch  0x00000002 , 0x00004398 
+ 00026310  0x00006d21 beq  0x00000024 , 0x000062e9 
+ 00026311  0x00006d22 rtn 
+ 00026312  0x00006d25 arg  0x00000017 , 0x00000011 
+ 00026313  0x00006d26 arg  0x00000004 , 0x00000012 
+ 00026314  0x00006d27 call  0x000029fb 
+ 00026315  0x00006d28 setarg  0x00000006 
+ 00026316  0x00006d29 istore  0x00000001 , 0x00000005 
+ 00026317  0x00006d2a setarg  0x00000001 
+ 00026318  0x00006d2b istore  0x00000002 , 0x00000005 
+ 00026319  0x00006d2c setarg  0x0000ffff 
+ 00026320  0x00006d2d istore  0x00000002 , 0x00000005 
+ 00026321  0x00006d2e setarg  0x00002800 
+ 00026322  0x00006d2f istore  0x00000002 , 0x00000005 
+ 00026323  0x00006d30 arg  0x000049e4 , 0x00000006 
+ 00026324  0x00006d31 branch  0x00007c8f 
+ 00026325  0x00006d35 bpatch  0x000000aa , 0x00004015 
+ 00026326  0x00006d36 copy  0x00000011 , 0x00000006 
+ 00026327  0x00006d37 ifetch  0x00000003 , 0x00000006 
+ 00026328  0x00006d38 store  0x00000003 , 0x00004397 
+ 00026329  0x00006d39 beq  0x00000007 , 0x00006704 
+ 00026330  0x00006d3a beq  0x00000001 , 0x00006725 
+ 00026331  0x00006d3b beq  0x0000000a , 0x000066f4 
+ 00026332  0x00006d3c beq  0x0000000c , 0x000066de 
+ 00026333  0x00006d3d branch  0x00002b96 
+ 00026334  0x00006d40 ifetch  0x00000002 , 0x00000006 
+ 00026335  0x00006d41 store  0x00000002 , 0x000006b5 
+ 00026336  0x00006d42 iforce  0x00000011 
+ 00026337  0x00006d43 fetcht  0x00000002 , 0x00004398 
+ 00026338  0x00006d44 fetch  0x00000002 , 0x00004332 
+ 00026339  0x00006d45 isub  0x00000002 , 0x0000003e 
+ 00026340  0x00006d46 nbranch  0x00002d50 , 0x00000005 
+ 00026341  0x00006d47 call  0x00006730 
+ 00026342  0x00006d48 nbranch  0x000066e9 , 0x00000034 
+ 00026343  0x00006d49 fetcht  0x00000002 , 0x000049e0 
+ 00026344  0x00006d4a branch  0x000066ea 
+ 00026345  0x00006d4d fetcht  0x00000002 , 0x000049e2 
+ 00026346  0x00006d4f arg  0x000048be , 0x00000006 
+ 00026347  0x00006d50 call  0x00007c6d 
+ 00026348  0x00006d51 copy  0x00000002 , 0x0000003f 
+ 00026349  0x00006d52 isub  0x00000011 , 0x0000003f 
+ 00026350  0x00006d53 nbranch  0x00002e03 , 0x00000002 
+ 00026351  0x00006d54 increase  0x00000001 , 0x0000003f 
+ 00026352  0x00006d55 sub  0x0000003f , 0x00000017 , 0x0000003e 
+ 00026353  0x00006d56 branch  0x00002d59 , 0x00000002 
+ 00026354  0x00006d57 force  0x00000017 , 0x0000003f 
+ 00026355  0x00006d58 branch  0x00002d59 
+ 00026356  0x00006d5b fetcht  0x00000002 , 0x00004398 
+ 00026357  0x00006d5c fetch  0x00000001 , 0x00004321 
+ 00026358  0x00006d5d bbit1  0x00000003 , 0x000066f8 
+ 00026359  0x00006d5e branch  0x00002d1d 
+ 00026360  0x00006d60 fetch  0x00000002 , 0x00004332 
+ 00026361  0x00006d61 isub  0x00000002 , 0x0000003e 
+ 00026362  0x00006d62 nbranch  0x00002d1d , 0x00000005 
+ 00026363  0x00006d63 call  0x00002dc7 
+ 00026364  0x00006d64 nbranch  0x000066fe , 0x00000028 
+ 00026365  0x00006d65 branch  0x00002d46 
+ 00026366  0x00006d68 fetch  0x00000002 , 0x00004332 
+ 00026367  0x00006d69 isub  0x00000002 , 0x0000003e 
+ 00026368  0x00006d6a nbranch  0x00002d1d , 0x00000005 
+ 00026369  0x00006d6b arg  0x000048be , 0x00000006 
+ 00026370  0x00006d6c force  0x00000017 , 0x0000003f 
+ 00026371  0x00006d6d branch  0x00002d2d 
+ 00026372  0x00006d71 bpatch  0x000000ab , 0x00004015 
+ 00026373  0x00006d72 jam  0x00000005 , 0x00004eba 
+ 00026374  0x00006d73 jam  0x00000001 , 0x000049f4 
+ 00026375  0x00006d74 jam  0x00000001 , 0x00004ec2 
+ 00026376  0x00006d75 jam  0x000000f0 , 0x000049f5 
+ 00026377  0x00006d76 jam  0x0000000a , 0x00004ed1 
+ 00026378  0x00006d77 jam  0x00000001 , 0x00004ed6 
+ 00026379  0x00006d78 call  0x000067bf 
+ 00026380  0x00006d79 fetch  0x00000001 , 0x00004ed2 
+ 00026381  0x00006d7a rtn  0x00000034 
+ 00026382  0x00006d7b call  0x00006783 
+ 00026383  0x00006d7c arg  0x00000062 , 0x00000002 
+ 00026384  0x00006d7e fetch  0x00000002 , 0x00004f88 
+ 00026385  0x00006d7f arg  0x00004ebe , 0x00000011 
+ 00026386  0x00006d80 arg  0x00004ebc , 0x00000012 
+ 00026387  0x00006d81 call  0x0000671e 
+ 00026388  0x00006d82 arg  0x00000062 , 0x00000002 
+ 00026389  0x00006d84 fetch  0x00000002 , 0x00004f8a 
+ 00026390  0x00006d85 arg  0x00004ec0 , 0x00000011 
+ 00026391  0x00006d86 arg  0x00004ebd , 0x00000012 
+ 00026392  0x00006d87 call  0x0000671e 
+ 00026393  0x00006d88 setarg  0x00000fff 
+ 00026394  0x00006d89 fetcht  0x00000002 , 0x00004ec0 
+ 00026395  0x00006d8a isub  0x00000002 , 0x0000003f 
+ 00026396  0x00006d8b store  0x00000002 , 0x00004ec0 
+ 00026397  0x00006d8c rtn 
+ 00026398  0x00006d8e idiv  0x00000002 
+ 00026399  0x00006d8f call  0x00007d62 
+ 00026400  0x00006d90 quotient  0x0000003f 
+ 00026401  0x00006d91 remainder  0x00000002 
+ 00026402  0x00006d92 istore  0x00000001 , 0x00000012 
+ 00026403  0x00006d93 istoret  0x00000002 , 0x00000011 
+ 00026404  0x00006d94 rtn 
+ 00026405  0x00006d96 increase  0xfffffffe , 0x00000006 
+ 00026406  0x00006d97 ifetch  0x00000001 , 0x00000006 
+ 00026407  0x00006d98 beq  0x00000006 , 0x0000672e 
+ 00026408  0x00006d99 rtn 
+ 00026409  0x00006d9b jam  0x00000001 , 0x00004eba 
+ 00026410  0x00006d9c jam  0x00000000 , 0x000049f4 
+ 00026411  0x00006d9d jam  0x00000000 , 0x00004ec2 
+ 00026412  0x00006d9e jam  0x0000000a , 0x000049f5 
+ 00026413  0x00006d9f rtn 
+ 00026414  0x00006da2 call  0x00006729 
+ 00026415  0x00006da3 branch  0x000067bf 
+ 00026416  0x00006da6 fetch  0x00000001 , 0x000049f4 
+ 00026417  0x00006da7 rtn 
+ 00026418  0x00006dab arg  0x00004f24 , 0x00000013 
+ 00026419  0x00006dac call  0x00006730 
+ 00026420  0x00006dad rtn  0x00000034 
+ 00026421  0x00006dae jam  0x00000078 , 0x000049f5 
+ 00026422  0x00006daf arg  0x00004b2b , 0x00000013 
+ 00026423  0x00006db0 rtn 
+ 00026424  0x00006db3 arg  0x00004a40 , 0x00000013 
+ 00026425  0x00006db4 call  0x00006730 
+ 00026426  0x00006db5 rtn  0x00000034 
+ 00026427  0x00006db6 arg  0x00004b67 , 0x00000013 
+ 00026428  0x00006db7 jam  0x0000000c , 0x000049f5 
+ 00026429  0x00006db8 copy  0x00000007 , 0x0000003f 
+ 00026430  0x00006db9 rtneq  0x00000001 
+ 00026431  0x00006dba rtn 
+ 00026432  0x00006dbc bpatch  0x000000ac , 0x00004015 
+ 00026433  0x00006dbd fetch  0x00000001 , 0x00004c0e 
+ 00026434  0x00006dbe setflip  0x00000000 , 0x0000003f 
+ 00026435  0x00006dbf store  0x00000001 , 0x00004c0e 
+ 00026436  0x00006dc0 beq  0x00000000 , 0x00006749 
+ 00026437  0x00006dc1 beq  0x00000001 , 0x00006747 
+ 00026438  0x00006dc2 rtn 
+ 00026439  0x00006dc4 call  0x00006750 
+ 00026440  0x00006dc5 branch  0x00006371 
+ 00026441  0x00006dc7 call  0x0000674b 
+ 00026442  0x00006dc8 branch  0x00006371 
+ 00026443  0x00006dca arg  0x00004a6d , 0x00000013 
+ 00026444  0x00006dcb call  0x00006730 
+ 00026445  0x00006dcc rtn  0x00000034 
+ 00026446  0x00006dcd arg  0x00004b94 , 0x00000013 
+ 00026447  0x00006dce rtn 
+ 00026448  0x00006dd0 arg  0x00004bfa , 0x00000013 
+ 00026449  0x00006dd1 call  0x00006730 
+ 00026450  0x00006dd2 rtn  0x00000034 
+ 00026451  0x00006dd3 arg  0x00004c04 , 0x00000013 
+ 00026452  0x00006dd4 rtn 
+ 00026453  0x00006dd8 copy  0x00000007 , 0x0000003f 
+ 00026454  0x00006dd9 beq  0x00000001 , 0x00006777 
+ 00026455  0x00006dda beq  0x00000002 , 0x00006765 
+ 00026456  0x00006ddb beq  0x00000004 , 0x00006761 
+ 00026457  0x00006ddc rtn 
+ 00026458  0x00006de0 arg  0x00004f9d , 0x00000013 
+ 00026459  0x00006de1 arg  0x0000675d , 0x00000012 
+ 00026460  0x00006de2 branch  0x000042e0 
+ 00026461  0x00006de4 jam  0x00000004 , 0x00004f9d 
+ 00026462  0x00006de5 fetch  0x00000001 , 0x00004c0e 
+ 00026463  0x00006de6 branch  0x00006761 , 0x00000034 
+ 00026464  0x00006de7 branch  0x00006765 
+ 00026465  0x00006deb jam  0x00000000 , 0x00004c0e 
+ 00026466  0x00006dec jam  0x00000004 , 0x00004f9d 
+ 00026467  0x00006ded arg  0x00004ab5 , 0x00000013 
+ 00026468  0x00006dee branch  0x00006371 
+ 00026469  0x00006df1 jam  0x00000001 , 0x00004c0e 
+ 00026470  0x00006df2 jam  0x00000004 , 0x00004f9d 
+ 00026471  0x00006df3 arg  0x00004aaf , 0x00000013 
+ 00026472  0x00006df4 branch  0x00006371 
+ 00026473  0x00006df6 jam  0x00000000 , 0x00004c0e 
+ 00026474  0x00006df7 jam  0x00000000 , 0x00004f9d 
+ 00026475  0x00006df8 rtn 
+ 00026476  0x00006dfc arg  0x00004f9e , 0x00000013 
+ 00026477  0x00006dfd arg  0x0000676f , 0x00000012 
+ 00026478  0x00006dfe branch  0x000042e0 
+ 00026479  0x00006e00 jam  0x00000002 , 0x00004f9e 
+ 00026480  0x00006e01 call  0x00006772 
+ 00026481  0x00006e02 branch  0x00006371 
+ 00026482  0x00006e05 arg  0x00004f9f , 0x00000013 
+ 00026483  0x00006e06 call  0x00006730 
+ 00026484  0x00006e07 rtn  0x00000034 
+ 00026485  0x00006e08 arg  0x00004fa7 , 0x00000013 
+ 00026486  0x00006e09 rtn 
+ 00026487  0x00006e0c fetch  0x00000001 , 0x00004faf 
+ 00026488  0x00006e0d nbranch  0x0000677c , 0x00000034 
+ 00026489  0x00006e0e jam  0x00000001 , 0x00004faf 
+ 00026490  0x00006e0f jam  0x00000002 , 0x00004f9e 
+ 00026491  0x00006e10 rtn 
+ 00026492  0x00006e13 jam  0x00000000 , 0x00004faf 
+ 00026493  0x00006e14 jam  0x00000000 , 0x00004f9e 
+ 00026494  0x00006e15 rtn 
+ 00026495  0x00006e18 fetch  0x00000001 , 0x00004ebb 
+ 00026496  0x00006e19 nrtn  0x00000034 
+ 00026497  0x00006e1a jam  0x00000001 , 0x00004ebb 
+ 00026498  0x00006e1b branch  0x0000667d 
+ 00026499  0x00006e1e setarg  0x00000000 
+ 00026500  0x00006e1f store  0x00000007 , 0x00004ebc 
+ 00026501  0x00006e20 rtn 
+ 00026502  0x00006e23 call  0x00006730 
+ 00026503  0x00006e24 beq  0x00000001 , 0x0000678e 
+ 00026504  0x00006e25 beq  0x00000000 , 0x000067a0 
+ 00026505  0x00006e26 rtn 
+ 00026506  0x00006e29 fetch  0x00000001 , 0x00004f90 
+ 00026507  0x00006e2a beq  0x00000001 , 0x000067a7 
+ 00026508  0x00006e2b beq  0x00000000 , 0x000067b9 
+ 00026509  0x00006e2c rtn 
+ 00026510  0x00006e2f fetch  0x00000001 , 0x00004ebc 
+ 00026511  0x00006e30 mul32  0x0000003f , 0x00000062 , 0x0000003f 
+ 00026512  0x00006e31 copy  0x0000003f , 0x00000002 
+ 00026513  0x00006e32 fetch  0x00000002 , 0x00004ebe 
+ 00026514  0x00006e33 iadd  0x00000002 , 0x0000003f 
+ 00026515  0x00006e34 store  0x00000002 , 0x00004f8c 
+ 00026516  0x00006e36 fetch  0x00000001 , 0x00004ebd 
+ 00026517  0x00006e37 mul32  0x0000003f , 0x00000062 , 0x0000003f 
+ 00026518  0x00006e38 copy  0x0000003f , 0x00000002 
+ 00026519  0x00006e39 fetch  0x00000002 , 0x00004ec0 
+ 00026520  0x00006e3a copy  0x0000003f , 0x00000011 
+ 00026521  0x00006e3b setarg  0x00000fff 
+ 00026522  0x00006e3c isub  0x00000011 , 0x0000003f 
+ 00026523  0x00006e3d iadd  0x00000002 , 0x0000003f 
+ 00026524  0x00006e3e store  0x00000002 , 0x00004f8e 
+ 00026525  0x00006e40 call  0x00006730 
+ 00026526  0x00006e42 store  0x00000001 , 0x00004f90 
+ 00026527  0x00006e43 rtn 
+ 00026528  0x00006e46 fetch  0x00000002 , 0x00004ebe 
+ 00026529  0x00006e47 store  0x00000002 , 0x00004f8c 
+ 00026530  0x00006e48 fetch  0x00000002 , 0x00004ec0 
+ 00026531  0x00006e49 store  0x00000002 , 0x00004f8e 
+ 00026532  0x00006e4a call  0x00006730 
+ 00026533  0x00006e4b store  0x00000001 , 0x00004f90 
+ 00026534  0x00006e4c rtn 
+ 00026535  0x00006e4e fetch  0x00000002 , 0x00004f8c 
+ 00026536  0x00006e4f div  0x0000003f , 0x00000062 
+ 00026537  0x00006e50 call  0x00007d62 
+ 00026538  0x00006e51 quotient  0x0000003f 
+ 00026539  0x00006e52 remainder  0x00000002 
+ 00026540  0x00006e53 store  0x00000001 , 0x00004ebc 
+ 00026541  0x00006e54 copy  0x00000002 , 0x0000003f 
+ 00026542  0x00006e55 store  0x00000002 , 0x00004ebe 
+ 00026543  0x00006e56 fetch  0x00000002 , 0x00004f8e 
+ 00026544  0x00006e57 div  0x0000003f , 0x00000062 
+ 00026545  0x00006e58 call  0x00007d62 
+ 00026546  0x00006e59 quotient  0x0000003f 
+ 00026547  0x00006e5a remainder  0x00000002 
+ 00026548  0x00006e5b store  0x00000001 , 0x00004ebd 
+ 00026549  0x00006e5d setarg  0x00000fff 
+ 00026550  0x00006e5e isub  0x00000002 , 0x0000003f 
+ 00026551  0x00006e5f store  0x00000002 , 0x00004ec0 
+ 00026552  0x00006e62 rtn 
+ 00026553  0x00006e64 fetch  0x00000002 , 0x00004f8c 
+ 00026554  0x00006e65 store  0x00000002 , 0x00004ebe 
+ 00026555  0x00006e66 fetch  0x00000002 , 0x00004f8e 
+ 00026556  0x00006e67 store  0x00000002 , 0x00004ec0 
+ 00026557  0x00006e6a rtn 
+ 00026558  0x00006e6d branch  0x0000683c 
+ 00026559  0x00006e70 branch  0x00006823 
+ 00026560  0x00006e74 call  0x000067e2 
+ 00026561  0x00006e75 fetch  0x00000002 , 0x00004f93 
+ 00026562  0x00006e76 call  0x0000684f 
+ 00026563  0x00006e77 jam  0x00000000 , 0x00004f9b 
+ 00026564  0x00006e78 fetch  0x00000005 , 0x00004f8c 
+ 00026565  0x00006e79 jam  0x00000000 , 0x00004f9c 
+ 00026566  0x00006e7a jam  0x00000000 , 0x00004f99 
+ 00026567  0x00006e7b call  0x000067e6 
+ 00026568  0x00006e7c fetch  0x00000001 , 0x00004f99 
+ 00026569  0x00006e7d rtneq  0x00000000 
+ 00026570  0x00006e7e branch  0x000067c0 
+ 00026571  0x00006e83 fetch  0x00000002 , 0x00004f80 
+ 00026572  0x00006e84 increase  0xfffffffb , 0x0000003f 
+ 00026573  0x00006e85 store  0x00000002 , 0x00004f93 
+ 00026574  0x00006e86 rtn 
+ 00026575  0x00006e8a fetch  0x00000002 , 0x00004f93 
+ 00026576  0x00006e8b increase  0xfffffffb , 0x0000003f 
+ 00026577  0x00006e8c store  0x00000002 , 0x00004f93 
+ 00026578  0x00006e8d rtn 
+ 00026579  0x00006e91 fetch  0x00000002 , 0x00004f93 
+ 00026580  0x00006e92 pincrease  0x00000005 
+ 00026581  0x00006e93 store  0x00000002 , 0x00004f93 
+ 00026582  0x00006e94 rtn 
+ 00026583  0x00006e97 fetch  0x00000002 , 0x00004f95 
+ 00026584  0x00006e98 pincrease  0x00000005 
+ 00026585  0x00006e99 store  0x00000002 , 0x00004f95 
+ 00026586  0x00006e9b fetch  0x00000002 , 0x00004f95 
+ 00026587  0x00006e9c copy  0x0000003f , 0x00000002 
+ 00026588  0x00006e9e fetch  0x00000002 , 0x00004f80 
+ 00026589  0x00006e9f isub  0x00000002 , 0x0000003f 
+ 00026590  0x00006ea0 arg  0x00000005 , 0x00000002 
+ 00026591  0x00006ea1 isub  0x00000002 , 0x0000003e 
+ 00026592  0x00006ea3 nbranch  0x00006806 , 0x00000002 
+ 00026593  0x00006ea4 rtn 
+ 00026594  0x00006ea7 fetch  0x00000001 , 0x00004f9b 
+ 00026595  0x00006ea8 beq  0x00000001 , 0x000067cb 
+ 00026596  0x00006ea9 beq  0x00000000 , 0x000067cf 
+ 00026597  0x00006eaa rtn 
+ 00026598  0x00006eae arg  0x00000000 , 0x00000012 
+ 00026599  0x00006eaf copy  0x00000012 , 0x00000002 
+ 00026600  0x00006eb0 fetch  0x00000002 , 0x00004f8c 
+ 00026601  0x00006eb1 icompare  0x0000ffff , 0x00000002 
+ 00026602  0x00006eb3 ncall  0x000067f6 , 0x00000001 
+ 00026603  0x00006eb4 arg  0x00000000 , 0x00000012 
+ 00026604  0x00006eb5 copy  0x00000012 , 0x00000002 
+ 00026605  0x00006eb6 fetch  0x00000002 , 0x00004f8e 
+ 00026606  0x00006eb7 icompare  0x0000ffff , 0x00000002 
+ 00026607  0x00006eb8 ncall  0x000067f6 , 0x00000001 
+ 00026608  0x00006eb9 arg  0x00000000 , 0x00000012 
+ 00026609  0x00006eba copy  0x00000012 , 0x00000002 
+ 00026610  0x00006ebb fetch  0x00000001 , 0x00004f90 
+ 00026611  0x00006ebc icompare  0x000000ff , 0x00000002 
+ 00026612  0x00006ebd ncall  0x000067f6 , 0x00000001 
+ 00026613  0x00006ebe rtn 
+ 00026614  0x00006ec2 fetch  0x00000001 , 0x00004f99 
+ 00026615  0x00006ec3 pincrease  0x00000001 
+ 00026616  0x00006ec4 store  0x00000001 , 0x00004f99 
+ 00026617  0x00006ec5 rtn 
+ 00026618  0x00006ec7 jam  0x00000001 , 0x00004f99 
+ 00026619  0x00006ec8 call  0x000067d7 
+ 00026620  0x00006ec9 fetch  0x00000002 , 0x00004f95 
+ 00026621  0x00006eca call  0x0000684f 
+ 00026622  0x00006ecb call  0x00006730 
+ 00026623  0x00006ecc copy  0x0000003f , 0x00000002 
+ 00026624  0x00006ecd fetch  0x00000001 , 0x00004f90 
+ 00026625  0x00006ece icompare  0x000000ff , 0x00000002 
+ 00026626  0x00006ecf call  0x00006821 , 0x00000001 
+ 00026627  0x00006ed1 fetch  0x00000001 , 0x00004f99 
+ 00026628  0x00006ed2 rtneq  0x00000000 
+ 00026629  0x00006ed3 branch  0x000067fa 
+ 00026630  0x00006ed7 bpatch  0x000000ad , 0x00004015 
+ 00026631  0x00006ed8 call  0x00006821 
+ 00026632  0x00006ed9 call  0x00006730 
+ 00026633  0x00006eda branch  0x0000680b , 0x00000034 
+ 00026634  0x00006edb branch  0x00006812 
+ 00026635  0x00006ede fetch  0x00000002 , 0x00004f84 
+ 00026636  0x00006edf store  0x00000002 , 0x00004ebe 
+ 00026637  0x00006ee1 fetcht  0x00000002 , 0x00004f86 
+ 00026638  0x00006ee2 setarg  0x00000fff 
+ 00026639  0x00006ee3 isub  0x00000002 , 0x0000003f 
+ 00026640  0x00006ee4 store  0x00000002 , 0x00004ec0 
+ 00026641  0x00006ee5 branch  0x000067be 
+ 00026642  0x00006ee8 arg  0x00000062 , 0x00000002 
+ 00026643  0x00006eea fetch  0x00000002 , 0x00004f88 
+ 00026644  0x00006eeb arg  0x00004ebe , 0x00000011 
+ 00026645  0x00006eec arg  0x00004ebc , 0x00000012 
+ 00026646  0x00006eed call  0x0000671e 
+ 00026647  0x00006eee arg  0x00000062 , 0x00000002 
+ 00026648  0x00006ef0 fetch  0x00000002 , 0x00004f8a 
+ 00026649  0x00006ef1 arg  0x00004ec0 , 0x00000011 
+ 00026650  0x00006ef2 arg  0x00004ebd , 0x00000012 
+ 00026651  0x00006ef3 call  0x0000671e 
+ 00026652  0x00006ef4 setarg  0x00000fff 
+ 00026653  0x00006ef5 fetcht  0x00000002 , 0x00004ec0 
+ 00026654  0x00006ef6 isub  0x00000002 , 0x0000003f 
+ 00026655  0x00006ef7 store  0x00000002 , 0x00004ec0 
+ 00026656  0x00006ef8 branch  0x000067be 
+ 00026657  0x00006efb jam  0x00000000 , 0x00004f99 
+ 00026658  0x00006efc rtn 
+ 00026659  0x00006eff bpatch  0x000000ae , 0x00004015 
+ 00026660  0x00006f00 jam  0x00000001 , 0x00004f9b 
+ 00026661  0x00006f01 call  0x000067c0 
+ 00026662  0x00006f05 fetch  0x00000002 , 0x00004f82 
+ 00026663  0x00006f06 copy  0x0000003f , 0x00000002 
+ 00026664  0x00006f07 fetch  0x00000002 , 0x00004f93 
+ 00026665  0x00006f08 isub  0x00000002 , 0x0000003f 
+ 00026666  0x00006f09 arg  0x00000000 , 0x00000002 
+ 00026667  0x00006f0a isub  0x00000002 , 0x0000003e 
+ 00026668  0x00006f0b nrtn  0x00000002 
+ 00026669  0x00006f0c fetch  0x00000002 , 0x00004f93 
+ 00026670  0x00006f0d copy  0x0000003f , 0x00000002 
+ 00026671  0x00006f0f fetch  0x00000002 , 0x00004f80 
+ 00026672  0x00006f10 increase  0xfffffffb , 0x0000003f 
+ 00026673  0x00006f11 isub  0x00000002 , 0x0000003f 
+ 00026674  0x00006f14 fetch  0x00000002 , 0x00004f93 
+ 00026675  0x00006f15 store  0x00000002 , 0x00004f95 
+ 00026676  0x00006f16 call  0x000067fa 
+ 00026677  0x00006f17 fetch  0x00000002 , 0x00004f95 
+ 00026678  0x00006f18 ncall  0x0000684f , 0x00000005 
+ 00026679  0x00006f1b jam  0x00000000 , 0x00004f99 
+ 00026680  0x00006f1c call  0x000067e6 
+ 00026681  0x00006f1d fetch  0x00000001 , 0x00004f99 
+ 00026682  0x00006f1e rtneq  0x00000000 
+ 00026683  0x00006f1f branch  0x0000678a 
+ 00026684  0x00006f23 bpatch  0x000000af , 0x00004015 
+ 00026685  0x00006f24 jam  0x00000001 , 0x00004f9b 
+ 00026686  0x00006f25 call  0x000067c0 
+ 00026687  0x00006f29 fetcht  0x00000002 , 0x00004f82 
+ 00026688  0x00006f2b fetch  0x00000002 , 0x00004f93 
+ 00026689  0x00006f2c isub  0x00000002 , 0x0000003f 
+ 00026690  0x00006f2d arg  0x00000000 , 0x00000002 
+ 00026691  0x00006f2e isub  0x00000002 , 0x0000003e 
+ 00026692  0x00006f2f nrtn  0x00000002 
+ 00026693  0x00006f31 fetcht  0x00000002 , 0x00004f93 
+ 00026694  0x00006f33 fetch  0x00000002 , 0x00004f80 
+ 00026695  0x00006f34 isub  0x00000002 , 0x0000003f 
+ 00026696  0x00006f35 arg  0x00000000 , 0x00000002 
+ 00026697  0x00006f36 isub  0x00000002 , 0x0000003e 
+ 00026698  0x00006f37 nrtn  0x00000002 
+ 00026699  0x00006f38 fetch  0x00000002 , 0x00004f93 
+ 00026700  0x00006f39 store  0x00000002 , 0x00004f91 
+ 00026701  0x00006f3a call  0x00006786 
+ 00026702  0x00006f3c branch  0x00006854 
+ 00026703  0x00006f40 bpatch  0x000000b0 , 0x00004016 
+ 00026704  0x00006f41 copy  0x0000003f , 0x00000012 
+ 00026705  0x00006f42 arg  0x00000005 , 0x00000039 
+ 00026706  0x00006f44 arg  0x00004f8c , 0x00000011 
+ 00026707  0x00006f45 branch  0x00006b74 
+ 00026708  0x00006f49 arg  0x00000005 , 0x00000039 
+ 00026709  0x00006f4a arg  0x00004f8c , 0x00000011 
+ 00026710  0x00006f4b fetchr  0x00000012 , 0x00000002 , 0x00004f91 
+ 00026711  0x00006f4c branch  0x00006b45 
+ 00026712  0x00006f4f arg  0x000048ae , 0x00000013 
+ 00026713  0x00006f50 arg  0x000067be , 0x00000012 
+ 00026714  0x00006f51 branch  0x000042e0 
+ 00026715  0x00006f60 fetch  0x00000002 , 0x00000912 
+ 00026716  0x00006f63 ifetcht  0x00000001 , 0x00000013 
+ 00026717  0x00006f64 increase  0x00000001 , 0x00000013 
+ 00026718  0x00006f65 lshift8  0x00000002 , 0x00000002 
+ 00026719  0x00006f66 ixor  0x00000002 , 0x0000003f 
+ 00026720  0x00006f69 copy  0x00000039 , 0x00000012 
+ 00026721  0x00006f6a arg  0x00000008 , 0x00000039 
+ 00026722  0x00006f6c isolate1  0x0000000f , 0x0000003f 
+ 00026723  0x00006f6d lshift  0x0000003f , 0x0000003f 
+ 00026724  0x00006f6e nbranch  0x00006867 , 0x00000001 
+ 00026725  0x00006f6f fetcht  0x00000002 , 0x00000914 
+ 00026726  0x00006f70 ixor  0x00000002 , 0x0000003f 
+ 00026727  0x00006f72 loop  0x00006862 
+ 00026728  0x00006f73 copy  0x00000012 , 0x00000039 
+ 00026729  0x00006f75 loop  0x0000685c 
+ 00026730  0x00006f76 store  0x00000002 , 0x00000912 
+ 00026731  0x00006f77 rtn 
+ 00026732  0x00006f7d fetch  0x00000001 , 0x0000443f 
+ 00026733  0x00006f7f arg  0x0000003e , 0x00000002 
+ 00026734  0x00006f80 branch  0x00006f20 
+ 00026735  0x00006f84 fetch  0x00000001 , 0x0000443f 
+ 00026736  0x00006f86 arg  0x0000003f , 0x00000002 
+ 00026737  0x00006f87 branch  0x00006f20 
+ 00026738  0x00006f8a call  0x0000686f 
+ 00026739  0x00006f8c call  0x0000686c 
+ 00026740  0x00006f8d branch  0x0000686f 
+ 00026741  0x00006f91 call  0x00006873 
+ 00026742  0x00006f93 branch  0x0000686c 
+ 00026743  0x00006f96 branch  0x00006873 
+ 00026744  0x00006f99 call  0x00006873 
+ 00026745  0x00006f9a branch  0x00006875 
+ 00026746  0x00006f9f branch  0x0000686c 
+ 00026747  0x00006fa4 fetch  0x00000001 , 0x00004440 
+ 00026748  0x00006fa5 branch  0x0000686d 
+ 00026749  0x00006fa9 fetch  0x00000001 , 0x00004440 
+ 00026750  0x00006faa branch  0x00006870 
+ 00026751  0x00006fad call  0x0000687b 
+ 00026752  0x00006fae call  0x0000687d 
+ 00026753  0x00006faf branch  0x0000687b 
+ 00026754  0x00006fb7 clear_stack 
+ 00026755  0x00006fb8 call  0x000070d7 
+ 00026756  0x00006fb9 call  0x0000688d 
+ 00026757  0x00006fba call  0x0000688f 
+ 00026758  0x00006fbb call  0x000068a3 
+ 00026759  0x00006fbc call  0x000068bf 
+ 00026760  0x00006fbd call  0x000068c3 
+ 00026761  0x00006fbf jam  0x00000001 , 0x0000070f 
+ 00026762  0x00006fc0 jam  0x00000004 , 0x0000070c 
+ 00026763  0x00006fc3 call  0x000068ce 
+ 00026764  0x00006fc4 branch  0x0000688b 
+ 00026765  0x00006fc7 jam  0x00000004 , 0x00008042 
+ 00026766  0x00006fc8 rtn 
+ 00026767  0x00006fcb call  0x00006893 
+ 00026768  0x00006fcc call  0x00006897 
+ 00026769  0x00006fcd call  0x0000689b 
+ 00026770  0x00006fce branch  0x0000689f 
+ 00026771  0x00006fd1 fetch  0x00000001 , 0x000044f1 
+ 00026772  0x00006fd2 nrtn  0x00000034 
+ 00026773  0x00006fd3 jam  0x00000007 , 0x000044f1 
+ 00026774  0x00006fd4 rtn 
+ 00026775  0x00006fd7 fetch  0x00000001 , 0x000044f2 
+ 00026776  0x00006fd8 nrtn  0x00000034 
+ 00026777  0x00006fd9 jam  0x00000006 , 0x000044f2 
+ 00026778  0x00006fda rtn 
+ 00026779  0x00006fdc fetch  0x00000001 , 0x000044f3 
+ 00026780  0x00006fdd nrtn  0x00000034 
+ 00026781  0x00006fde jam  0x00000009 , 0x000044f3 
+ 00026782  0x00006fdf rtn 
+ 00026783  0x00006fe1 fetch  0x00000001 , 0x000044f4 
+ 00026784  0x00006fe2 nrtn  0x00000034 
+ 00026785  0x00006fe3 jam  0x0000000a , 0x000044f4 
+ 00026786  0x00006fe4 rtn 
+ 00026787  0x00006fe8 setarg  0x00000c00 
+ 00026788  0x00006fe9 store  0x00000002 , 0x00000670 
+ 00026789  0x00006fea setarg  0x00000eff 
+ 00026790  0x00006feb istore  0x00000002 , 0x00000005 
+ 00026791  0x00006fec setarg  0x00000f00 
+ 00026792  0x00006fed istore  0x00000002 , 0x00000005 
+ 00026793  0x00006fee setarg  0x00000fff 
+ 00026794  0x00006fef istore  0x00000002 , 0x00000005 
+ 00026795  0x00006ff0 fetch  0x00000008 , 0x00000670 
+ 00026796  0x00006ff1 call  0x00006d68 
+ 00026797  0x00006ff2 call  0x00006d82 
+ 00026798  0x00006ff3 arg  0x0001c200 , 0x00000002 
+ 00026799  0x00006ff4 call  0x00006d75 
+ 00026800  0x00006ff5 fetch  0x00000001 , 0x000044f1 
+ 00026801  0x00006ff6 arg  0x00000008 , 0x00000002 
+ 00026802  0x00006ff7 call  0x00006f21 
+ 00026803  0x00006ff8 fetch  0x00000001 , 0x000044f2 
+ 00026804  0x00006ff9 arg  0x00000049 , 0x00000002 
+ 00026805  0x00006ffa call  0x00006f21 
+ 00026806  0x00006ffb fetch  0x00000001 , 0x000044f3 
+ 00026807  0x00006ffc arg  0x0000000a , 0x00000002 
+ 00026808  0x00006ffd call  0x00006f21 
+ 00026809  0x00006ffe fetch  0x00000001 , 0x000044f4 
+ 00026810  0x00006fff arg  0x0000000b , 0x00000002 
+ 00026811  0x00007000 call  0x00006f21 
+ 00026812  0x00007002 arg  0x00000081 , 0x00000002 
+ 00026813  0x00007003 storet  0x00000001 , 0x00008060 
+ 00026814  0x00007004 branch  0x00007d76 
+ 00026815  0x00007007 fetch  0x00000001 , 0x000044f5 
+ 00026816  0x00007008 nrtn  0x00000034 
+ 00026817  0x00007009 jam  0x0000000c , 0x000044f5 
+ 00026818  0x0000700a rtn 
+ 00026819  0x0000700d fetch  0x00000001 , 0x000044f5 
+ 00026820  0x0000700e arg  0x00000010 , 0x00000002 
+ 00026821  0x0000700f call  0x00006f21 
+ 00026822  0x00007010 arg  0x00000040 , 0x00000011 
+ 00026823  0x00007011 call  0x00007055 
+ 00026824  0x00007012 arg  0x00000000 , 0x00000011 
+ 00026825  0x00007013 arg  0x00000000 , 0x00000012 
+ 00026826  0x00007014 setarg  0x00000000 
+ 00026827  0x00007015 call  0x0000707a 
+ 00026828  0x00007016 arg  0x00000000 , 0x00000007 
+ 00026829  0x00007017 branch  0x000070c0 
+ 00026830  0x0000701b fetch  0x00000002 , 0x00008112 
+ 00026831  0x0000701c add  0x0000003f , 0xfffffffc , 0x00000011 
+ 00026832  0x0000701d nrtn  0x00000002 
+ 00026833  0x0000701e call  0x00006d96 
+ 00026834  0x0000701f ifetch  0x00000001 , 0x00000003 
+ 00026835  0x00007020 beq  0x00000001 , 0x000068d6 
+ 00026836  0x00007022 call  0x00007c95 
+ 00026837  0x00007023 branch  0x00006d9e 
+ 00026838  0x00007028 ifetch  0x00000002 , 0x00000003 
+ 00026839  0x00007029 store  0x00000002 , 0x00000710 
+ 00026840  0x0000702a arg  0x000003ff , 0x00000002 
+ 00026841  0x0000702b iand  0x00000002 , 0x00000002 
+ 00026842  0x0000702c storet  0x00000002 , 0x00000709 
+ 00026843  0x0000702d rshift2  0x0000003f , 0x0000003f 
+ 00026844  0x0000702e rshift8  0x0000003f , 0x0000003f 
+ 00026845  0x0000702f store  0x00000001 , 0x0000070b 
+ 00026846  0x00007030 ifetch  0x00000001 , 0x00000003 
+ 00026847  0x00007031 pincrease  0xffffffff 
+ 00026848  0x00007032 isub  0x00000011 , 0x0000003e 
+ 00026849  0x00007033 rtn  0x00000002 
+ 00026850  0x00007034 call  0x000068e4 
+ 00026851  0x00007035 branch  0x0000693f 
+ 00026852  0x00007038 fetch  0x00000001 , 0x0000070b 
+ 00026853  0x00007040 beq  0x0000003f , 0x000068e7 
+ 00026854  0x00007041 branch  0x0000692b 
+ 00026855  0x0000704c bpatch  0x000000b4 , 0x00004016 
+ 00026856  0x0000704d fetch  0x00000001 , 0x00000709 
+ 00026857  0x0000704e beq  0x00000000 , 0x0000692a 
+ 00026858  0x0000704f beq  0x00000001 , 0x000068f2 
+ 00026859  0x00007050 beq  0x00000002 , 0x000068f7 
+ 00026860  0x00007051 beq  0x00000003 , 0x00006905 
+ 00026861  0x00007052 beq  0x00000004 , 0x0000690f 
+ 00026862  0x00007053 beq  0x00000005 , 0x0000692a 
+ 00026863  0x00007054 beq  0x00000010 , 0x00006920 
+ 00026864  0x00007055 beq  0x00000014 , 0x00006926 
+ 00026865  0x00007056 branch  0x0000692a 
+ 00026866  0x0000705a jam  0x00000000 , 0x00000712 
+ 00026867  0x0000705b fetch  0x00000002 , 0x00008000 
+ 00026868  0x0000705c store  0x00000002 , 0x00000713 
+ 00026869  0x0000705d arg  0x00000003 , 0x00000039 
+ 00026870  0x0000705e branch  0x00006932 
+ 00026871  0x00007061 ifetch  0x00000002 , 0x00000003 
+ 00026872  0x00007062 store  0x00000002 , 0x00008052 
+ 00026873  0x00007063 rtn 
+ 00026874  0x00007067 ifetch  0x00000001 , 0x00000003 
+ 00026875  0x00007068 copy  0x0000003f , 0x00000002 
+ 00026876  0x00007069 store  0x00000001 , 0x00008024 
+ 00026877  0x0000706a ifetch  0x00000001 , 0x00000003 
+ 00026878  0x0000706b iadd  0x00000002 , 0x00000002 
+ 00026879  0x0000706c set1  0x00000007 , 0x0000003f 
+ 00026880  0x0000706d store  0x00000001 , 0x00008023 
+ 00026881  0x0000706e ifetch  0x00000001 , 0x00000003 
+ 00026882  0x0000706f iadd  0x00000002 , 0x00000002 
+ 00026883  0x00007070 copy  0x0000003f , 0x00000039 
+ 00026884  0x00007071 rtn 
+ 00026885  0x00007074 call  0x000068fa 
+ 00026886  0x00007076 ifetch  0x00000001 , 0x00000003 
+ 00026887  0x00007077 store  0x00000001 , 0x00008025 
+ 00026888  0x00007078 iadd  0x00000002 , 0x00000002 
+ 00026889  0x00007079 loop  0x00006906 
+ 00026890  0x0000707b and  0x00000002 , 0x000000ff , 0x00000002 
+ 00026891  0x0000707c ifetch  0x00000001 , 0x00000003 
+ 00026892  0x0000707d isub  0x00000002 , 0x0000003e 
+ 00026893  0x0000707e nbranch  0x0000691e , 0x00000005 
+ 00026894  0x0000707f branch  0x0000692a 
+ 00026895  0x00007082 arg  0x00000020 , 0x00000039 
+ 00026896  0x00007083 arg  0x00004000 , 0x00000005 
+ 00026897  0x00007084 arg  0x00000000 , 0x00000002 
+ 00026898  0x00007086 ifetch  0x00000001 , 0x00000003 
+ 00026899  0x00007087 istore  0x00000001 , 0x00000005 
+ 00026900  0x00007088 iadd  0x00000002 , 0x00000002 
+ 00026901  0x00007089 loop  0x00006912 
+ 00026902  0x0000708a and  0x00000002 , 0x000000ff , 0x00000002 
+ 00026903  0x0000708b ifetch  0x00000001 , 0x00000003 
+ 00026904  0x0000708c isub  0x00000002 , 0x0000003e 
+ 00026905  0x0000708d nbranch  0x0000691e , 0x00000005 
+ 00026906  0x0000708e jam  0x00000000 , 0x00008023 
+ 00026907  0x0000708f call  0x0000692a 
+ 00026908  0x00007090 call  0x00006dae 
+ 00026909  0x00007091 branch  0x00002001 
+ 00026910  0x00007094 jam  0x00000000 , 0x00008023 
+ 00026911  0x00007095 branch  0x0000692b 
+ 00026912  0x00007099 ifetch  0x00000001 , 0x00000003 
+ 00026913  0x0000709a copy  0x0000003f , 0x00000039 
+ 00026914  0x0000709b ifetch  0x00000002 , 0x00000003 
+ 00026915  0x0000709c copy  0x0000003f , 0x00000005 
+ 00026916  0x0000709d call  0x00006ddd 
+ 00026917  0x0000709e branch  0x0000692a 
+ 00026918  0x000070a1 fetch  0x00000001 , 0x00008060 
+ 00026919  0x000070a2 set1  0x00000004 , 0x0000003f 
+ 00026920  0x000070a3 store  0x00000001 , 0x00008060 
+ 00026921  0x000070a4 branch  0x0000692a 
+ 00026922  0x000070a8 branch  0x0000692f 
+ 00026923  0x000070ab jam  0x00000001 , 0x00000712 
+ 00026924  0x000070ac branch  0x00006930 
+ 00026925  0x000070ae jam  0x0000000c , 0x00000712 
+ 00026926  0x000070af branch  0x00006930 
+ 00026927  0x000070b1 jam  0x00000000 , 0x00000712 
+ 00026928  0x000070b2 arg  0x00000001 , 0x00000039 
+ 00026929  0x000070b3 branch  0x00006932 
+ 00026930  0x000070b6 jam  0x0000000e , 0x0000070d 
+ 00026931  0x000070b7 add  0x00000039 , 0x00000003 , 0x0000003f 
+ 00026932  0x000070b8 store  0x00000001 , 0x0000070e 
+ 00026933  0x000070b9 call  0x0000693b 
+ 00026934  0x000070ba fetch  0x00000003 , 0x0000070f 
+ 00026935  0x000070bb istore  0x00000003 , 0x00000003 
+ 00026936  0x000070bd arg  0x00000712 , 0x00000006 
+ 00026937  0x000070be call  0x00006dc4 
+ 00026938  0x000070bf branch  0x00006da4 
+ 00026939  0x000070c4 call  0x00006da2 
+ 00026940  0x000070c5 fetch  0x00000003 , 0x0000070c 
+ 00026941  0x000070c6 istore  0x00000003 , 0x00000003 
+ 00026942  0x000070c7 rtn 
+ 00026943  0x000070ca call  0x00006d96 
+ 00026944  0x000070cb increase  0x00000003 , 0x00000003 
+ 00026945  0x000070cc ifetch  0x00000001 , 0x00000003 
+ 00026946  0x000070cd iadd  0x00000003 , 0x00000003 
+ 00026947  0x000070ce branch  0x00006d9c 
+ 00026948  0x000070d1 jam  0x00000000 , 0x00004114 
+ 00026949  0x000070d2 rtn 
+ 00026950  0x000070da branch  0x0000694b , 0x0000002b 
+ 00026951  0x000070db setarg  0x00004450 
+ 00026952  0x000070dc arg  0x00004441 , 0x00000005 
+ 00026953  0x000070dd isub  0x00000005 , 0x00000039 
+ 00026954  0x000070de call  0x00007ca1 
+ 00026955  0x000070e1 rtn 
+ 00026956  0x000070e6 arg  0x00000000 , 0x00000007 
+ 00026957  0x000070e7 arg  0x00000000 , 0x00000012 
+ 00026958  0x000070ea sub  0x00000007 , 0x00000007 , 0x0000003e 
+ 00026959  0x000070eb nrtn  0x00000002 
+ 00026960  0x000070ec qisolate1  0x00000011 
+ 00026961  0x000070ed branch  0x00006953 , 0x00000001 
+ 00026962  0x000070ee branch  0x00006957 
+ 00026963  0x000070f1 copy  0x00000002 , 0x0000003f 
+ 00026964  0x000070f2 branch  0x00006957 , 0x00000034 
+ 00026965  0x000070f3 qset1  0x00000012 
+ 00026966  0x000070f4 increase  0xffffffff , 0x00000002 
+ 00026967  0x000070f7 increase  0x00000001 , 0x00000007 
+ 00026968  0x000070f8 branch  0x0000694e 
+ 00026969  0x00007106 fetchr  0x00000018 , 0x00000002 , 0x0000433f 
+ 00026970  0x00007107 fetchr  0x0000002b , 0x00000002 , 0x00004341 
+ 00026971  0x00007108 call  0x00007dbc 
+ 00026972  0x00007109 branch  0x0000695d 
+ 00026973  0x0000710c bpatch  0x000000b6 , 0x00004016 
+ 00026974  0x0000710d call  0x000069a9 
+ 00026975  0x0000710e nbranch  0x0000235a , 0x00000034 
+ 00026976  0x0000710f call  0x000069b9 
+ 00026977  0x00007110 arg  0x00000008 , 0x00000039 
+ 00026978  0x00007112 fetcht  0x00000001 , 0x00004441 
+ 00026979  0x00007113 sub  0x00000039 , 0x00000008 , 0x00000007 
+ 00026980  0x00007114 qisolate1  0x00000002 
+ 00026981  0x00007115 branch  0x0000696a , 0x00000001 
+ 00026982  0x00007116 call  0x00006971 
+ 00026983  0x00007117 nbranch  0x0000696a , 0x00000002 
+ 00026984  0x00007118 call  0x00006987 
+ 00026985  0x00007119 branch  0x0000696e 
+ 00026986  0x0000711b copy  0x0000002b , 0x0000003f 
+ 00026987  0x0000711c iadd  0x00000018 , 0x00000018 
+ 00026988  0x0000711d loop  0x00006962 
+ 00026989  0x0000711e branch  0x0000235a 
+ 00026990  0x00007120 copy  0x00000018 , 0x0000003f 
+ 00026991  0x00007121 copy  0x00000018 , 0x00000005 
+ 00026992  0x00007122 rtn 
+ 00026993  0x0000712c bpatch  0x000000b7 , 0x00004016 
+ 00026994  0x0000712d sub  0x00000039 , 0x00000008 , 0x00000007 
+ 00026995  0x0000712e arg  0x00000000 , 0x00000002 
+ 00026996  0x0000712f arg  0x00000000 , 0x0000000b 
+ 00026997  0x00007131 copy  0x00000007 , 0x0000003f 
+ 00026998  0x00007132 beq  0x00000008 , 0x00006982 
+ 00026999  0x00007133 fetch  0x00000001 , 0x00004441 
+ 00027000  0x00007134 qisolate1  0x0000003f 
+ 00027001  0x00007135 branch  0x00006982 , 0x00000001 
+ 00027002  0x00007136 qset1  0x0000000b 
+ 00027003  0x00007137 copy  0x0000002b , 0x0000003f 
+ 00027004  0x00007138 iadd  0x00000002 , 0x00000002 
+ 00027005  0x00007139 increase  0x00000001 , 0x00000007 
+ 00027006  0x0000713a copy  0x00000011 , 0x0000003f 
+ 00027007  0x0000713b isub  0x00000002 , 0x0000003e 
+ 00027008  0x0000713c branch  0x00006982 , 0x00000005 
+ 00027009  0x0000713d branch  0x00006975 , 0x00000002 
+ 00027010  0x0000713f copy  0x00000002 , 0x0000003f 
+ 00027011  0x00007140 isub  0x00000011 , 0x0000003e 
+ 00027012  0x00007141 nrtn  0x00000005 
+ 00027013  0x00007142 qset1  0x0000000b 
+ 00027014  0x00007143 rtn 
+ 00027015  0x0000714d bpatch  0x000000b8 , 0x00004017 
+ 00027016  0x0000714e call  0x000069a9 
+ 00027017  0x0000714f nbranch  0x0000235a , 0x00000034 
+ 00027018  0x00007150 call  0x000069af 
+ 00027019  0x00007151 branch  0x00006990 , 0x00000034 
+ 00027020  0x00007152 fetch  0x00000009 , 0x00004445 
+ 00027021  0x00007153 store  0x00000009 , 0x00004442 
+ 00027022  0x00007154 setarg  0x00000000 
+ 00027023  0x00007155 istore  0x00000003 , 0x00000005 
+ 00027024  0x00007157 storer  0x0000000b , 0x00000001 , 0x0000444b 
+ 00027025  0x00007158 storer  0x00000018 , 0x00000002 , 0x0000444c 
+ 00027026  0x00007159 rtn 
+ 00027027  0x00007163 bpatch  0x000000b9 , 0x00004017 
+ 00027028  0x00007164 call  0x000069b2 
+ 00027029  0x00007165 increase  0x00000001 , 0x00000006 
+ 00027030  0x00007166 ifetch  0x00000002 , 0x00000006 
+ 00027031  0x00007167 rtn 
+ 00027032  0x0000716f bpatch  0x000000ba , 0x00004017 
+ 00027033  0x00007170 call  0x000069b2 
+ 00027034  0x00007171 copy  0x00000006 , 0x00000005 
+ 00027035  0x00007172 copy  0x00000006 , 0x00000002 
+ 00027036  0x00007173 setarg  0x00000000 
+ 00027037  0x00007174 istore  0x00000003 , 0x00000005 
+ 00027038  0x00007175 rtn 
+ 00027039  0x0000717d bpatch  0x000000bb , 0x00004017 
+ 00027040  0x0000717e call  0x000069af 
+ 00027041  0x0000717f branch  0x0000235a , 0x00000034 
+ 00027042  0x00007180 fetch  0x00000003 , 0x00004448 
+ 00027043  0x00007181 store  0x00000003 , 0x0000444b 
+ 00027044  0x00007182 fetch  0x00000003 , 0x00004445 
+ 00027045  0x00007183 store  0x00000003 , 0x00004448 
+ 00027046  0x00007184 fetch  0x00000003 , 0x00004442 
+ 00027047  0x00007185 store  0x00000003 , 0x00004445 
+ 00027048  0x00007186 rtn 
+ 00027049  0x0000718f bpatch  0x000000bc , 0x00004017 
+ 00027050  0x00007190 fetch  0x00000003 , 0x00004442 
+ 00027051  0x00007191 rtn 
+ 00027052  0x0000719a bpatch  0x000000bd , 0x00004017 
+ 00027053  0x0000719b fetch  0x00000003 , 0x00004445 
+ 00027054  0x0000719c rtn 
+ 00027055  0x000071a5 bpatch  0x000000be , 0x00004017 
+ 00027056  0x000071a6 fetch  0x00000003 , 0x0000444b 
+ 00027057  0x000071a7 rtn 
+ 00027058  0x000071af call  0x000069af 
+ 00027059  0x000071b0 branch  0x000069b7 , 0x00000034 
+ 00027060  0x000071b1 arg  0x00004442 , 0x00000006 
+ 00027061  0x000071b3 ifetch  0x00000003 , 0x00000006 
+ 00027062  0x000071b4 branch  0x000069b5 , 0x00000034 
+ 00027063  0x000071b6 increase  0xfffffffd , 0x00000006 
+ 00027064  0x000071b7 rtn 
+ 00027065  0x000071c0 bpatch  0x000000bf , 0x00004017 
+ 00027066  0x000071c1 arg  0x00000004 , 0x00000039 
+ 00027067  0x000071c2 arg  0x00004442 , 0x00000006 
+ 00027068  0x000071c3 arg  0x00000000 , 0x00000002 
+ 00027069  0x000071c5 ifetch  0x00000003 , 0x00000006 
+ 00027070  0x000071c6 and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00027071  0x000071c7 ior  0x00000002 , 0x00000002 
+ 00027072  0x000071c8 loop  0x000069bd 
+ 00027073  0x000071c9 storet  0x00000001 , 0x00004441 
+ 00027074  0x000071ca rtn 
+ 00027075  0x000071ce arg  0x0000000c , 0x00000007 
+ 00027076  0x000071cf branch  0x000024e7 
+ 00027077  0x000071d2 arg  0x0000000c , 0x00000007 
+ 00027078  0x000071d3 branch  0x000024eb 
+ 00027079  0x000071df bpatch  0x000000c1 , 0x00004018 
+ 00027080  0x000071e0 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00027081  0x000071e1 rtn  0x00000005 
+ 00027082  0x000071e2 copy  0x00000002 , 0x0000003f 
+ 00027083  0x000071e3 and_into  0x000000ff , 0x0000003f 
+ 00027084  0x000071e4 sub  0x0000003f , 0x0000000f , 0x0000003e 
+ 00027085  0x000071e5 nbranch  0x000069d9 , 0x00000002 
+ 00027086  0x000071e6 arg  0x00008070 , 0x00000005 
+ 00027087  0x000071e8 iadd  0x00000005 , 0x00000005 
+ 00027088  0x000071e9 copy  0x00000005 , 0x00000011 
+ 00027089  0x000071ea arg  0x0000003e , 0x00000002 
+ 00027090  0x000071eb istoret  0x00000001 , 0x00000005 
+ 00027091  0x000071ec call  0x000069dc 
+ 00027092  0x000071ed nop  0x0000001e 
+ 00027093  0x000071ee copy  0x00000011 , 0x00000005 
+ 00027094  0x000071ef arg  0x0000003f , 0x00000002 
+ 00027095  0x000071f0 istoret  0x00000001 , 0x00000005 
+ 00027096  0x000071f1 branch  0x000069e0 
+ 00027097  0x000071f4 arg  0x000080d4 , 0x00000005 
+ 00027098  0x000071f5 increase  0xfffffff0 , 0x0000003f 
+ 00027099  0x000071f6 branch  0x000069cf 
+ 00027100  0x000071fa fetch  0x00000001 , 0x00008081 
+ 00027101  0x000071fb and_into  0x0000007f , 0x0000003f 
+ 00027102  0x000071fc store  0x00000001 , 0x00008081 
+ 00027103  0x000071fd rtn 
+ 00027104  0x00007200 fetch  0x00000001 , 0x00008081 
+ 00027105  0x00007201 or_into  0x00000080 , 0x0000003f 
+ 00027106  0x00007202 store  0x00000001 , 0x00008081 
+ 00027107  0x00007203 rtn 
+ 00027108  0x00007206 branch  0x00006bd0 
+ 00027109  0x00007209 branch  0x00006bd7 
+ 00027110  0x0000720e fetch  0x00000001 , 0x0000806f 
+ 00027111  0x0000720f set0  0x00000007 , 0x0000003f 
+ 00027112  0x00007210 store  0x00000001 , 0x0000806f 
+ 00027113  0x00007211 rtn 
+ 00027114  0x00007214 nbranch  0x000069ee , 0x00000028 
+ 00027115  0x00007215 fetch  0x00000001 , 0x0000806f 
+ 00027116  0x00007216 set1  0x00000007 , 0x0000003f 
+ 00027117  0x00007217 store  0x00000001 , 0x0000806f 
+ 00027118  0x00007219 copy  0x00000002 , 0x0000003e 
+ 00027119  0x0000721a branch  0x000069f1 , 0x00000005 
+ 00027120  0x0000721b copy  0x00000013 , 0x0000003d 
+ 00027121  0x0000721e isolate0  0x00000000 , 0x0000003e 
+ 00027122  0x0000721f branch  0x00006b00 
+ 00027123  0x00007223 force  0x00000004 , 0x00000002 
+ 00027124  0x00007225 arg  0x000001e7 , 0x00000011 
+ 00027125  0x00007226 call  0x000069e6 
+ 00027126  0x00007227 call  0x000069ee 
+ 00027127  0x00007228 arg  0x000055aa , 0x00000011 
+ 00027128  0x00007229 fetch  0x00000002 , 0x000001e7 
+ 00027129  0x0000722a ifetcht  0x00000002 , 0x00000006 
+ 00027130  0x0000722b isub  0x00000011 , 0x0000003e 
+ 00027131  0x0000722c rtn 
+ 00027132  0x00007230 call  0x00006a0e , 0x00000028 
+ 00027133  0x00007231 arg  0x00000002 , 0x00000002 
+ 00027134  0x00007232 arg  0x000043c8 , 0x00000011 
+ 00027135  0x00007233 call  0x000069ee 
+ 00027136  0x00007234 fetch  0x00000002 , 0x000043c8 
+ 00027137  0x00007236 store  0x00000002 , 0x000001e0 
+ 00027138  0x00007237 call  0x00006a04 , 0x00000028 
+ 00027139  0x00007238 rtn 
+ 00027140  0x0000723b arg  0x00000010 , 0x00000002 
+ 00027141  0x0000723c arg  0x000001ed , 0x00000011 
+ 00027142  0x0000723d call  0x000069e6 
+ 00027143  0x0000723e call  0x000069ee 
+ 00027144  0x00007240 arg  0x000001ed , 0x00000006 
+ 00027145  0x00007241 arg  0x00000010 , 0x00000039 
+ 00027146  0x00007242 call  0x00007353 
+ 00027147  0x00007243 call  0x000072da 
+ 00027148  0x00007244 call  0x0000736f 
+ 00027149  0x00007245 branch  0x000072d4 
+ 00027150  0x00007248 jam  0x00000000 , 0x00008023 
+ 00027151  0x00007249 call  0x000069e6 
+ 00027152  0x0000724a branch  0x0000736f 
+ 00027153  0x0000724d setarg  0x00000000 
+ 00027154  0x0000724e store  0x00000002 , 0x00000699 
+ 00027155  0x0000724f disable  0x0000002d 
+ 00027156  0x00007250 call  0x000069f3 
+ 00027157  0x00007251 nrtn  0x00000005 
+ 00027158  0x00007252 enable  0x0000002d 
+ 00027159  0x00007253 setarg  0x00008000 
+ 00027160  0x00007254 store  0x00000003 , 0x00008022 
+ 00027161  0x00007255 arg  0x00008025 , 0x00000011 
+ 00027162  0x00007256 call  0x000069ea 
+ 00027163  0x00007257 jam  0x00000000 , 0x00008023 
+ 00027164  0x00007258 fetch  0x00000001 , 0x000001dd 
+ 00027165  0x00007259 rtnbit0  0x00000000 
+ 00027166  0x0000725b arg  0x00000006 , 0x00000002 
+ 00027167  0x0000725c call  0x000069f4 
+ 00027168  0x0000725d nbranch  0x00006a2e , 0x00000005 
+ 00027169  0x0000725e ifetchr  0x00000011 , 0x00000002 , 0x00000006 
+ 00027170  0x0000725f call  0x000069ee 
+ 00027171  0x00007260 call  0x00006a25 
+ 00027172  0x00007261 branch  0x00006a1e 
+ 00027173  0x00007265 fetch  0x00000002 , 0x00000699 
+ 00027174  0x00007266 arg  0x00000006 , 0x00000039 
+ 00027175  0x00007267 arg  0x000001e7 , 0x00000006 
+ 00027176  0x00007268 call  0x00007dcc 
+ 00027177  0x00007269 fetchr  0x00000039 , 0x00000002 , 0x000001e9 
+ 00027178  0x0000726a copy  0x00000011 , 0x00000006 
+ 00027179  0x0000726b call  0x00007dcc 
+ 00027180  0x0000726c store  0x00000002 , 0x00000699 
+ 00027181  0x0000726d rtn 
+ 00027182  0x00007270 fetch  0x00000001 , 0x0000021c 
+ 00027183  0x00007271 beq  0x0000005a , 0x00006a3c 
+ 00027184  0x00007272 arg  0x0000aa55 , 0x00000011 
+ 00027185  0x00007273 fetch  0x00000002 , 0x000001e7 
+ 00027186  0x00007274 isub  0x00000011 , 0x0000003e 
+ 00027187  0x00007275 nbranch  0x00006a3e , 0x00000005 
+ 00027188  0x00007276 arg  0x000055aa , 0x00000011 
+ 00027189  0x00007277 fetch  0x00000002 , 0x000001e9 
+ 00027190  0x00007278 isub  0x00000011 , 0x0000003e 
+ 00027191  0x00007279 nbranch  0x00006a3e , 0x00000005 
+ 00027192  0x0000727a fetch  0x00000002 , 0x000001eb 
+ 00027193  0x0000727b fetcht  0x00000002 , 0x00000699 
+ 00027194  0x0000727c isub  0x00000002 , 0x0000003e 
+ 00027195  0x0000727d nbranch  0x00006a3e , 0x00000005 
+ 00027196  0x0000727f set1  0x0000000f , 0x00000011 
+ 00027197  0x00007280 branch  0x000069f1 
+ 00027198  0x00007283 jam  0x00000000 , 0x000001dd 
+ 00027199  0x00007284 rtn 
+ 00027200  0x0000728a and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00027201  0x0000728b rshift4  0x0000003f , 0x0000003f 
+ 00027202  0x0000728c store  0x00000001 , 0x000043cb 
+ 00027203  0x0000728d branch  0x00006a59 
+ 00027204  0x00007290 fetch  0x00000002 , 0x00008143 
+ 00027205  0x00007291 nbranch  0x00006a40 , 0x00000034 
+ 00027206  0x00007292 call  0x00006a59 
+ 00027207  0x00007293 fetch  0x00000002 , 0x000043cb 
+ 00027208  0x00007294 rtn  0x00000034 
+ 00027209  0x00007295 call  0x00006a4b 
+ 00027210  0x00007296 branch  0x000023ba 
+ 00027211  0x00007299 fetch  0x00000001 , 0x000043cb 
+ 00027212  0x0000729a rtn  0x00000034 
+ 00027213  0x0000729b and  0x0000003f , 0x0000000f , 0x00000002 
+ 00027214  0x0000729c storet  0x00000001 , 0x000043cb 
+ 00027215  0x0000729d rshift4  0x0000003f , 0x0000003f 
+ 00027216  0x0000729e ixor  0x00000002 , 0x0000003f 
+ 00027217  0x0000729f bne  0x0000000f , 0x00006bc2 
+ 00027218  0x000072a0 branch  0x00006b8d 
+ 00027219  0x000072a3 fetch  0x00000001 , 0x00000219 
+ 00027220  0x000072a4 ncall  0x000023e0 , 0x00000034 
+ 00027221  0x000072a5 fetch  0x00000001 , 0x0000021a 
+ 00027222  0x000072a6 rtn  0x00000034 
+ 00027223  0x000072a7 store  0x00000001 , 0x000040c9 
+ 00027224  0x000072a8 branch  0x000023e4 
+ 00027225  0x000072ab disable  0x00000028 
+ 00027226  0x000072ac fetch  0x00000001 , 0x000043ca 
+ 00027227  0x000072ad rtnbit0  0x00000003 
+ 00027228  0x000072ae call  0x00006aad 
+ 00027229  0x000072af arg  0x00000ff0 , 0x0000003f 
+ 00027230  0x000072b0 iadd  0x00000012 , 0x00000012 
+ 00027231  0x000072b1 force  0x00000010 , 0x00000039 
+ 00027232  0x000072b2 arg  0x000001ed , 0x00000011 
+ 00027233  0x000072b3 call  0x00006b74 
+ 00027234  0x000072b4 jam  0x00000008 , 0x00008006 
+ 00027235  0x000072b5 arg  0x000001ed , 0x00000006 
+ 00027236  0x000072b6 call  0x0000735f 
+ 00027237  0x000072b8 arg  0x000001ed , 0x00000005 
+ 00027238  0x000072b9 call  0x00007c99 
+ 00027239  0x000072ba branch  0x00007dba 
+ 00027240  0x000072be jam  0x00000025 , 0x00008050 
+ 00027241  0x000072bf call  0x00006b3a 
+ 00027242  0x000072c0 arg  0x00000000 , 0x00000012 
+ 00027243  0x000072c1 force  0x0000000b , 0x00000039 
+ 00027244  0x000072c2 arg  0x000043c8 , 0x00000011 
+ 00027245  0x000072c3 call  0x00006b75 
+ 00027246  0x000072c4 fetchr  0x00000037 , 0x00000005 , 0x000043c8 
+ 00027247  0x000072c5 fetch  0x00000001 , 0x000043ca 
+ 00027248  0x000072c6 bbit0  0x00000004 , 0x00006a78 
+ 00027249  0x000072c7 jam  0x00000007 , 0x0000806f 
+ 00027250  0x000072c9 fetch  0x00000001 , 0x0000815e 
+ 00027251  0x000072ca bne  0x00000007 , 0x00006a72 
+ 00027252  0x000072cb fetch  0x00000001 , 0x00008160 
+ 00027253  0x000072cc lshift4  0x0000003f , 0x0000003f 
+ 00027254  0x000072cd store  0x00000001 , 0x0000806f 
+ 00027255  0x000072ce branch  0x00006a7b 
+ 00027256  0x000072d1 call  0x00006af5 
+ 00027257  0x000072d2 call  0x00007d76 
+ 00027258  0x000072d3 call  0x00007d74 
+ 00027259  0x000072d5 storer  0x00000037 , 0x00000005 , 0x000043c8 
+ 00027260  0x000072d7 call  0x00006aad 
+ 00027261  0x000072d8 arg  0x00000fd0 , 0x0000003f 
+ 00027262  0x000072d9 iadd  0x00000012 , 0x00000012 
+ 00027263  0x000072da arg  0x00000020 , 0x00000039 
+ 00027264  0x000072db arg  0x000001fd , 0x00000011 
+ 00027265  0x000072dc call  0x00006b74 
+ 00027266  0x000072de call  0x00006a53 
+ 00027267  0x000072df call  0x00006a44 
+ 00027268  0x000072e1 fetch  0x00000001 , 0x000043ca 
+ 00027269  0x000072e2 bbit0  0x00000003 , 0x00006a8f 
+ 00027270  0x000072e3 fetcht  0x00000001 , 0x000043cc 
+ 00027271  0x000072e4 arg  0x00000000 , 0x0000003f 
+ 00027272  0x000072e5 set1  0x00000006 , 0x0000003f 
+ 00027273  0x000072e6 set1  0x00000007 , 0x0000003f 
+ 00027274  0x000072e7 iand  0x00000002 , 0x00000011 
+ 00027275  0x000072e8 sub  0x00000011 , 0x00000000 , 0x0000003e 
+ 00027276  0x000072e9 branch  0x00006af1 , 0x00000005 
+ 00027277  0x000072ea isub  0x00000011 , 0x0000003e 
+ 00027278  0x000072eb branch  0x00006af1 , 0x00000005 
+ 00027279  0x000072ed jam  0x00000000 , 0x00000030 
+ 00027280  0x000072ee arg  0x00006b1e , 0x00000013 
+ 00027281  0x000072f0 call  0x00006ae5 
+ 00027282  0x000072f1 nbranch  0x00006af1 , 0x00000002 
+ 00027283  0x000072f2 fetch  0x00000002 , 0x000043c8 
+ 00027284  0x000072f3 branch  0x00006a9c , 0x00000034 
+ 00027285  0x000072f4 call  0x00006a01 
+ 00027286  0x000072f5 call  0x00006a11 
+ 00027287  0x000072f6 nbranch  0x00006a9c , 0x0000002d 
+ 00027288  0x000072f7 fetch  0x00000001 , 0x000001dd 
+ 00027289  0x000072f8 compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027290  0x000072f9 nbranch  0x00006a91 , 0x00000001 
+ 00027291  0x000072fa call  0x00006aaa 
+ 00027292  0x000072fc call  0x00006b37 
+ 00027293  0x000072fd jam  0x00000000 , 0x00000030 
+ 00027294  0x000072ff call  0x00006ae5 
+ 00027295  0x00007300 nbranch  0x00006af1 , 0x00000002 
+ 00027296  0x00007301 call  0x00006ad7 
+ 00027297  0x00007302 call  0x00006cc4 
+ 00027298  0x00007303 fetch  0x00000001 , 0x000043ca 
+ 00027299  0x00007304 bbit1  0x00000002 , 0x00006abd 
+ 00027300  0x00007305 call  0x00006adf 
+ 00027301  0x00007306 nbranch  0x00006ab4 , 0x0000002d 
+ 00027302  0x00007307 fetch  0x00000001 , 0x000001dd 
+ 00027303  0x00007308 compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027304  0x00007309 nbranch  0x00006a9e , 0x00000001 
+ 00027305  0x0000730a branch  0x00006abd 
+ 00027306  0x0000730d setarg  0x000001ff 
+ 00027307  0x0000730e arg  0x00000000 , 0x0000003d 
+ 00027308  0x0000730f rtn 
+ 00027309  0x00007312 arg  0x00001000 , 0x00000012 
+ 00027310  0x00007313 fetch  0x00000001 , 0x00008144 
+ 00027311  0x00007314 bbit1  0x00000007 , 0x00006ab2 
+ 00027312  0x00007315 fetch  0x00000001 , 0x000043cc 
+ 00027313  0x00007316 rtnbit0  0x00000007 
+ 00027314  0x00007318 arg  0x00000000 , 0x00000012 
+ 00027315  0x00007319 rtn 
+ 00027316  0x0000731d call  0x00006cc1 
+ 00027317  0x0000731e fetch  0x00000001 , 0x000043ca 
+ 00027318  0x0000731f bbit1  0x00000002 , 0x00006abd 
+ 00027319  0x00007320 call  0x00006adf 
+ 00027320  0x00007321 nbranch  0x00006abd , 0x0000002d 
+ 00027321  0x00007322 fetch  0x00000001 , 0x000001dd 
+ 00027322  0x00007323 compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027323  0x00007324 nbranch  0x00006a9e , 0x00000001 
+ 00027324  0x00007325 branch  0x00006acd 
+ 00027325  0x00007328 jam  0x00000000 , 0x00000030 
+ 00027326  0x0000732a call  0x00006ae5 
+ 00027327  0x0000732b nbranch  0x00006af1 , 0x00000002 
+ 00027328  0x0000732c fetch  0x00000001 , 0x000043ca 
+ 00027329  0x0000732d bbit1  0x00000001 , 0x00006acd 
+ 00027330  0x0000732e call  0x00006c20 
+ 00027331  0x0000732f nop  0x000000c8 
+ 00027332  0x00007330 call  0x00006c2f 
+ 00027333  0x00007331 nop  0x00000064 
+ 00027334  0x00007332 arg  0x00006c6c , 0x00000013 
+ 00027335  0x00007333 call  0x000069fc 
+ 00027336  0x00007334 call  0x00006a11 
+ 00027337  0x00007335 nbranch  0x00006acd , 0x0000002d 
+ 00027338  0x00007336 fetch  0x00000001 , 0x000001dd 
+ 00027339  0x00007337 compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027340  0x00007338 nbranch  0x00006abe , 0x00000001 
+ 00027341  0x0000733b call  0x00006ad1 
+ 00027342  0x0000733c fetch  0x00000001 , 0x000043ca 
+ 00027343  0x0000733d rtnbit0  0x00000000 
+ 00027344  0x0000733e branch  0x00006882 
+ 00027345  0x00007341 arg  0x000001ed , 0x00000005 
+ 00027346  0x00007342 call  0x00007c99 
+ 00027347  0x00007343 force  0x00000004 , 0x00000038 
+ 00027348  0x00007344 call  0x00007370 
+ 00027349  0x00007345 jam  0x00000021 , 0x00008050 
+ 00027350  0x00007346 rtn 
+ 00027351  0x00007349 fetch  0x00000001 , 0x00004429 
+ 00027352  0x0000734a fetcht  0x00000001 , 0x00004428 
+ 00027353  0x0000734b isub  0x00000002 , 0x0000003e 
+ 00027354  0x0000734c nbranch  0x00006cbc , 0x00000005 
+ 00027355  0x0000734e jam  0x00000004 , 0x00004427 
+ 00027356  0x0000734f jam  0x00000017 , 0x00004428 
+ 00027357  0x00007350 jam  0x00000016 , 0x00004429 
+ 00027358  0x00007351 branch  0x00006cbc 
+ 00027359  0x00007356 setarg  0x00000000 
+ 00027360  0x00007357 store  0x00000002 , 0x000001e0 
+ 00027361  0x00007358 arg  0x00006ce7 , 0x00000013 
+ 00027362  0x00007359 call  0x00006ca5 
+ 00027363  0x0000735a call  0x000069fc 
+ 00027364  0x0000735b branch  0x00006a11 
+ 00027365  0x00007361 call  0x00006aeb 
+ 00027366  0x00007362 fetch  0x00000001 , 0x00000030 
+ 00027367  0x00007363 increase  0x00000001 , 0x0000003f 
+ 00027368  0x00007364 sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00027369  0x00007365 store  0x00000001 , 0x00000030 
+ 00027370  0x00007366 rtn 
+ 00027371  0x00007369 fetch  0x00000001 , 0x00000030 
+ 00027372  0x0000736a rtn  0x00000034 
+ 00027373  0x0000736b fetch  0x00000001 , 0x0000021b 
+ 00027374  0x0000736c rtn  0x00000034 
+ 00027375  0x0000736d copy  0x0000003f , 0x00000039 
+ 00027376  0x0000736e branch  0x00007c96 
+ 00027377  0x00007372 call  0x00006ad1 
+ 00027378  0x00007373 call  0x000069e6 
+ 00027379  0x00007375 call  0x00007d7c 
+ 00027380  0x00007376 rtn 
+ 00027381  0x00007379 and_into  0x000000e0 , 0x0000003f 
+ 00027382  0x0000737a rshift  0x0000003f , 0x0000003f 
+ 00027383  0x0000737b store  0x00000001 , 0x0000806f 
+ 00027384  0x0000737c setarg  0x00000001 
+ 00027385  0x0000737d arg  0x000043cd , 0x00000006 
+ 00027386  0x0000737f ifetcht  0x00000002 , 0x00000006 
+ 00027387  0x00007380 storet  0x00000002 , 0x0000804c 
+ 00027388  0x00007381 store  0x00000001 , 0x00008020 
+ 00027389  0x00007382 lshift  0x0000003f , 0x0000003f 
+ 00027390  0x00007383 bbit0  0x00000003 , 0x00006afa 
+ 00027391  0x00007384 rtn 
+ 00027392  0x00007388 fetch  0x00000001 , 0x000001dd 
+ 00027393  0x00007389 lshift  0x0000003f , 0x0000003f 
+ 00027394  0x0000738a setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00027395  0x0000738b isolate0  0x0000000f , 0x00000011 
+ 00027396  0x0000738c rtn  0x00000001 
+ 00027397  0x0000738d store  0x00000001 , 0x000001dd 
+ 00027398  0x0000738e rtn 
+ 00027399  0x00007392 fetch  0x00000001 , 0x0000806f 
+ 00027400  0x00007393 rtnbit0  0x00000007 
+ 00027401  0x00007394 branch  0x00006b0d 
+ 00027402  0x00007396 fetch  0x00000001 , 0x00008128 
+ 00027403  0x00007397 qisolate1  0x0000003f 
+ 00027404  0x00007398 rtn  0x00000001 
+ 00027405  0x0000739a fetch  0x00000001 , 0x00008108 
+ 00027406  0x0000739b bbit0  0x00000001 , 0x00006b0a 
+ 00027407  0x0000739c call  0x000072d4 
+ 00027408  0x0000739d branch  0x00006b0a 
+ 00027409  0x000073b2 fetch  0x00000002 , 0x000040f0 
+ 00027410  0x000073b3 rtn  0x00000034 
+ 00027411  0x000073b4 jam  0x00000080 , 0x00008023 
+ 00027412  0x000073b5 jam  0x00000000 , 0x00008022 
+ 00027413  0x000073b6 jam  0x00000000 , 0x00008024 
+ 00027414  0x000073b7 fetcht  0x00000002 , 0x000040f2 
+ 00027415  0x000073b8 lshift2  0x00000002 , 0x00000039 
+ 00027416  0x000073b9 iforce  0x00000006 
+ 00027417  0x000073bb ifetch  0x00000001 , 0x00000006 
+ 00027418  0x000073bc store  0x00000001 , 0x00008025 
+ 00027419  0x000073bd loop  0x00006b19 
+ 00027420  0x000073be jam  0x00000000 , 0x00008023 
+ 00027421  0x000073bf rtn 
+ 00027422  0x000073c7 copy  0x00000002 , 0x00000039 
+ 00027423  0x000073c8 fetch  0x00000002 , 0x000001e0 
+ 00027424  0x000073c9 iadd  0x00000002 , 0x00000002 
+ 00027425  0x000073ca storet  0x00000002 , 0x000001e0 
+ 00027426  0x000073cb iforce  0x00000012 
+ 00027427  0x000073cc copy  0x00000011 , 0x0000002e 
+ 00027428  0x000073cd jam  0x00000010 , 0x00008006 
+ 00027429  0x000073ce call  0x00006b74 
+ 00027430  0x000073cf copy  0x0000002e , 0x00000011 
+ 00027431  0x000073d0 isolate0  0x0000000f , 0x00000011 
+ 00027432  0x000073d1 rtn  0x00000001 
+ 00027433  0x000073d2 call  0x00007dc6 , 0x00000034 
+ 00027434  0x000073d3 branch  0x00006b00 
+ 00027435  0x000073d7 jam  0x00000001 , 0x00008ac8 
+ 00027436  0x000073d8 nop  0x0000012c 
+ 00027437  0x000073d9 jam  0x00000005 , 0x00008ac8 
+ 00027438  0x000073da nop  0x00000064 
+ 00027439  0x000073db jam  0x00000025 , 0x00008ac8 
+ 00027440  0x000073dc nop  0x000003e8 
+ 00027441  0x000073dd jam  0x00000027 , 0x00008ac8 
+ 00027442  0x000073de nop  0x0000012c 
+ 00027443  0x000073df rtn 
+ 00027444  0x000073e2 call  0x00006b2b 
+ 00027445  0x000073e3 jam  0x0000003f , 0x00008ac8 
+ 00027446  0x000073e4 rtn 
+ 00027447  0x000073e7 jam  0x00000083 , 0x00008047 
+ 00027448  0x000073e9 jam  0x00000000 , 0x00008ac8 
+ 00027449  0x000073ea rtn 
+ 00027450  0x000073ed call  0x00006b2b 
+ 00027451  0x000073f0 jam  0x00000082 , 0x00008047 
+ 00027452  0x000073f1 nop  0x0000000c 
+ 00027453  0x000073f2 jam  0x00000080 , 0x00008047 
+ 00027454  0x000073f3 jam  0x00000082 , 0x00008047 
+ 00027455  0x000073f4 nop  0x00000096 
+ 00027456  0x000073f5 rtn 
+ 00027457  0x000073f9 lshift3  0x00000012 , 0x00000012 
+ 00027458  0x000073fa storer  0x00000012 , 0x00000002 , 0x00008044 
+ 00027459  0x000073fb jam  0x00000000 , 0x00008046 
+ 00027460  0x000073fc rtn 
+ 00027461  0x00007400 bpatch  0x000000c4 , 0x00004018 
+ 00027462  0x00007401 call  0x00006b34 
+ 00027463  0x00007402 call  0x00006b41 
+ 00027464  0x00007403 call  0x00006b3b 
+ 00027465  0x00007405 ifetcht  0x00000001 , 0x00000011 
+ 00027466  0x00007406 increase  0x00000001 , 0x00000011 
+ 00027467  0x00007407 force  0x00000000 , 0x00000007 
+ 00027468  0x00007409 qisolate0  0x00000002 
+ 00027469  0x0000740a branch  0x00006b6c , 0x00000001 
+ 00027470  0x0000740b fetch  0x00000001 , 0x00008046 
+ 00027471  0x0000740c set1  0x00000006 , 0x0000003f 
+ 00027472  0x0000740d set1  0x00000007 , 0x0000003f 
+ 00027473  0x0000740e store  0x00000001 , 0x00008046 
+ 00027474  0x0000740f jam  0x00000002 , 0x00008047 
+ 00027475  0x00007410 jam  0x00000082 , 0x00008047 
+ 00027476  0x00007411 set0  0x00000007 , 0x0000003f 
+ 00027477  0x00007412 store  0x00000001 , 0x00008046 
+ 00027478  0x00007413 jam  0x0000008a , 0x00008047 
+ 00027479  0x00007414 nop  0x0000000b 
+ 00027480  0x00007415 jam  0x000000ca , 0x00008047 
+ 00027481  0x00007416 nop  0x00000021 
+ 00027482  0x00007417 jam  0x0000004a , 0x00008047 
+ 00027483  0x00007418 nop  0x0000002c 
+ 00027484  0x00007419 jam  0x000000ca , 0x00008047 
+ 00027485  0x0000741a nop  0x00000016 
+ 00027486  0x0000741b jam  0x0000008a , 0x00008047 
+ 00027487  0x0000741c nop  0x00000021 
+ 00027488  0x0000741d jam  0x00000082 , 0x00008047 
+ 00027489  0x0000741e nop  0x00000001 
+ 00027490  0x0000741f jam  0x00000092 , 0x00008047 
+ 00027491  0x00007420 nop  0x0000000a 
+ 00027492  0x00007421 jam  0x000000b2 , 0x00008047 
+ 00027493  0x00007422 fetch  0x00000001 , 0x00008007 
+ 00027494  0x00007423 jam  0x00000092 , 0x00008047 
+ 00027495  0x00007424 nop  0x00000001 
+ 00027496  0x00007425 jam  0x00000082 , 0x00008047 
+ 00027497  0x00007426 nop  0x00000001 
+ 00027498  0x00007427 qisolate0  0x0000003f 
+ 00027499  0x00007428 branch  0x00006b4c , 0x00000001 
+ 00027500  0x0000742a fetch  0x00000002 , 0x00008044 
+ 00027501  0x0000742b increase  0x00000001 , 0x0000003f 
+ 00027502  0x0000742c store  0x00000002 , 0x00008044 
+ 00027503  0x0000742d increase  0x00000001 , 0x00000007 
+ 00027504  0x0000742e compare  0x00000008 , 0x00000007 , 0x0000000f 
+ 00027505  0x0000742f nbranch  0x00006b4c , 0x00000001 
+ 00027506  0x00007430 loop  0x00006b49 
+ 00027507  0x00007431 branch  0x00006b38 
+ 00027508  0x00007438 bpatch  0x000000c5 , 0x00004018 
+ 00027509  0x0000743a call  0x00006b41 
+ 00027510  0x0000743b jam  0x000000a2 , 0x00008047 
+ 00027511  0x0000743c increase  0x00000008 , 0x00000012 
+ 00027512  0x0000743d arg  0x00000000 , 0x00000007 
+ 00027513  0x0000743e setarg  0xffffffff 
+ 00027514  0x00007440 fetcht  0x00000001 , 0x00008007 
+ 00027515  0x00007441 istoret  0x00000001 , 0x00000011 
+ 00027516  0x00007442 bcrc  0x00000002 
+ 00027517  0x00007443 jam  0x00000020 , 0x00008006 
+ 00027518  0x00007444 storer  0x00000012 , 0x00000002 , 0x00008044 
+ 00027519  0x00007445 isolate1  0x0000000f , 0x00000011 
+ 00027520  0x00007446 branch  0x00006b83 , 0x00000001 
+ 00027521  0x00007447 increase  0x00000001 , 0x00000011 
+ 00027522  0x00007448 branch  0x00006b89 
+ 00027523  0x0000744b nbranch  0x00006b89 , 0x00000028 
+ 00027524  0x0000744c increase  0x00000001 , 0x00000007 
+ 00027525  0x0000744d compare  0x00000000 , 0x00000007 , 0x0000000f 
+ 00027526  0x0000744e nbranch  0x00006b89 , 0x00000001 
+ 00027527  0x0000744f call  0x000072d4 
+ 00027528  0x00007450 jam  0x00000010 , 0x00008006 
+ 00027529  0x00007452 increase  0x00000008 , 0x00000012 
+ 00027530  0x00007453 loop  0x00006b7a 
+ 00027531  0x00007454 jam  0x00000082 , 0x00008047 
+ 00027532  0x00007455 rtn 
+ 00027533  0x00007461 fetch  0x00000001 , 0x000043cb 
+ 00027534  0x00007462 beq  0x0000000a , 0x00006b9e 
+ 00027535  0x00007463 beq  0x00000004 , 0x00006b9f 
+ 00027536  0x00007465 beq  0x00000008 , 0x00006ba3 
+ 00027537  0x00007466 beq  0x00000009 , 0x00006ba7 
+ 00027538  0x00007467 beq  0x00000006 , 0x00006ba7 
+ 00027539  0x00007468 beq  0x0000000c , 0x00006b9e 
+ 00027540  0x00007469 beq  0x0000000d , 0x00006bb1 
+ 00027541  0x0000746a beq  0x0000000e , 0x00006bab 
+ 00027542  0x0000746b beq  0x0000000b , 0x00006b99 
+ 00027543  0x0000746c beq  0x0000000f , 0x00006b9d 
+ 00027544  0x0000746d branch  0x00006bc2 
+ 00027545  0x00007471 arg  0x000043b2 , 0x0000003f 
+ 00027546  0x00007472 arg  0x00006858 , 0x00000002 
+ 00027547  0x00007473 call  0x00006bb7 
+ 00027548  0x00007474 branch  0x00006bae 
+ 00027549  0x00007477 branch  0x00006bae 
+ 00027550  0x0000747c branch  0x00006bbf 
+ 00027551  0x00007480 arg  0x00005099 , 0x0000003f 
+ 00027552  0x00007481 arg  0x00006858 , 0x00000002 
+ 00027553  0x00007482 call  0x00006bb7 
+ 00027554  0x00007483 branch  0x00006bae 
+ 00027555  0x00007486 arg  0x000043b2 , 0x0000003f 
+ 00027556  0x00007487 arg  0x000053dc , 0x00000002 
+ 00027557  0x00007488 call  0x00006bb7 
+ 00027558  0x00007489 branch  0x00006bae 
+ 00027559  0x0000748c arg  0x000043b2 , 0x0000003f 
+ 00027560  0x0000748d arg  0x00004770 , 0x00000002 
+ 00027561  0x0000748e call  0x00006bb7 
+ 00027562  0x0000748f branch  0x00006bae 
+ 00027563  0x00007492 arg  0x000047b7 , 0x0000003f 
+ 00027564  0x00007493 arg  0x00006858 , 0x00000002 
+ 00027565  0x00007494 call  0x00006bb7 
+ 00027566  0x00007496 arg  0x00003728 , 0x0000003f 
+ 00027567  0x00007497 arg  0x00004292 , 0x00000002 
+ 00027568  0x00007498 branch  0x00006bbc 
+ 00027569  0x0000749b arg  0x000047b7 , 0x0000003f 
+ 00027570  0x0000749c arg  0x00006858 , 0x00000002 
+ 00027571  0x0000749d call  0x00006bb7 
+ 00027572  0x0000749e arg  0x00002acb , 0x0000003f 
+ 00027573  0x0000749f arg  0x0000310d , 0x00000002 
+ 00027574  0x000074a0 branch  0x00006bbc 
+ 00027575  0x000074a4 lshift16  0x00000002 , 0x00000002 
+ 00027576  0x000074a5 ior  0x00000002 , 0x0000003f 
+ 00027577  0x000074a6 branch  0x000023cf 
+ 00027578  0x000074aa arg  0x00002b8f , 0x0000003f 
+ 00027579  0x000074ab arg  0x0000310d , 0x00000002 
+ 00027580  0x000074ad lshift16  0x00000002 , 0x00000002 
+ 00027581  0x000074ae ior  0x00000002 , 0x0000003f 
+ 00027582  0x000074af branch  0x000023d6 
+ 00027583  0x000074b2 arg  0x00003112 , 0x0000003f 
+ 00027584  0x000074b3 arg  0x000036df , 0x00000002 
+ 00027585  0x000074b4 branch  0x00006bbc 
+ 00027586  0x000074b7 call  0x00006bbf 
+ 00027587  0x000074b8 arg  0x00002b8f , 0x0000003f 
+ 00027588  0x000074b9 arg  0x0000310d , 0x00000002 
+ 00027589  0x000074ba branch  0x00006bb7 
+ 00027590  0x000074c1 bpatch  0x000000c6 , 0x00004018 
+ 00027591  0x000074c3 fetch  0x00000001 , 0x000043f5 
+ 00027592  0x000074c4 store  0x00000001 , 0x00008080 
+ 00027593  0x000074c5 fetch  0x00000001 , 0x000043f6 
+ 00027594  0x000074c6 store  0x00000001 , 0x00008081 
+ 00027595  0x000074c7 setarg  0x000001de 
+ 00027596  0x000074c8 store  0x00000002 , 0x00008084 
+ 00027597  0x000074c9 setarg  0x000001e3 
+ 00027598  0x000074ca store  0x00000002 , 0x00008086 
+ 00027599  0x000074cb branch  0x000069dc 
+ 00027600  0x000074d1 set1  0x00000007 , 0x0000003f 
+ 00027601  0x000074d2 store  0x00000002 , 0x000001de 
+ 00027602  0x000074d3 bpatch  0x000000c7 , 0x00004018 
+ 00027603  0x000074d4 jam  0x00000002 , 0x00008082 
+ 00027604  0x000074d5 jam  0x00000000 , 0x00008088 
+ 00027605  0x000074d6 jam  0x00000002 , 0x00008006 
+ 00027606  0x000074d7 branch  0x00006be0 
+ 00027607  0x000074db force  0x00000001 , 0x00000002 
+ 00027608  0x000074dd store  0x00000001 , 0x000001de 
+ 00027609  0x000074de bpatch  0x000000c8 , 0x00004019 
+ 00027610  0x000074df jam  0x00000001 , 0x00008082 
+ 00027611  0x000074e0 storet  0x00000002 , 0x00008088 
+ 00027612  0x000074e1 jam  0x00000002 , 0x00008006 
+ 00027613  0x000074e2 call  0x00006be0 
+ 00027614  0x000074e3 fetch  0x00000001 , 0x000001e3 
+ 00027615  0x000074e4 rtn 
+ 00027616  0x000074eb nop  0x00000005 
+ 00027617  0x000074ec fetch  0x00000001 , 0x00008128 
+ 00027618  0x000074ed bbit0  0x00000003 , 0x00006be0 
+ 00027619  0x000074ee rtn 
+ 00027620  0x000074f7 disable  0x00000028 
+ 00027621  0x000074f8 copy  0x0000003f , 0x00000012 
+ 00027622  0x000074f9 fetch  0x00000001 , 0x00004420 
+ 00027623  0x000074fa rtnne  0x00000000 
+ 00027624  0x000074fb enable  0x00000028 
+ 00027625  0x000074fc copy  0x00000012 , 0x0000003f 
+ 00027626  0x000074fd branch  0x00006bf2 
+ 00027627  0x00007501 fetch  0x00000001 , 0x00004420 
+ 00027628  0x00007502 beq  0x00000001 , 0x00006bf2 
+ 00027629  0x00007503 beq  0x00000002 , 0x00006bf8 
+ 00027630  0x00007504 beq  0x00000003 , 0x00006c00 
+ 00027631  0x00007505 beq  0x00000004 , 0x00006c04 
+ 00027632  0x00007506 beq  0x00000005 , 0x00006c0b 
+ 00027633  0x00007507 rtn 
+ 00027634  0x0000750a store  0x00000003 , 0x00004419 
+ 00027635  0x0000750b copy  0x00000011 , 0x0000003f 
+ 00027636  0x0000750c store  0x00000002 , 0x0000441c 
+ 00027637  0x0000750d storet  0x00000002 , 0x0000441e 
+ 00027638  0x0000750e jam  0x00000002 , 0x00004420 
+ 00027639  0x0000750f branch  0x00006c20 
+ 00027640  0x00007512 call  0x00006c20 
+ 00027641  0x00007513 jam  0x00000003 , 0x00004420 
+ 00027642  0x00007514 call  0x00006c26 
+ 00027643  0x00007515 arg  0x000001de , 0x00000011 
+ 00027644  0x00007516 jam  0x00000004 , 0x00008082 
+ 00027645  0x00007517 fetch  0x00000003 , 0x00004419 
+ 00027646  0x00007518 arg  0x00000020 , 0x00000002 
+ 00027647  0x00007519 branch  0x00006c40 
+ 00027648  0x0000751c call  0x00006c20 
+ 00027649  0x0000751d call  0x00006c63 
+ 00027650  0x0000751e jam  0x00000004 , 0x00004420 
+ 00027651  0x0000751f rtn 
+ 00027652  0x00007523 bpatch  0x000000c9 , 0x00004019 
+ 00027653  0x00007524 call  0x00006c20 
+ 00027654  0x00007525 jam  0x00000005 , 0x00004420 
+ 00027655  0x00007526 call  0x00006c26 
+ 00027656  0x00007527 call  0x00006c18 
+ 00027657  0x00007528 call  0x00006c3c 
+ 00027658  0x00007529 branch  0x00006c13 
+ 00027659  0x0000752b call  0x00006c20 
+ 00027660  0x0000752c call  0x00006c26 
+ 00027661  0x0000752d setarg  0x00000005 
+ 00027662  0x0000752e call  0x00006bd7 
+ 00027663  0x0000752f rtnbit1  0x00000000 
+ 00027664  0x00007530 jam  0x00000000 , 0x00004420 
+ 00027665  0x00007531 fetch  0x00000002 , 0x000043e7 
+ 00027666  0x00007532 branch  0x00007d79 
+ 00027667  0x00007534 fetch  0x00000004 , 0x00000678 
+ 00027668  0x00007535 fetcht  0x00000002 , 0x0000441c 
+ 00027669  0x00007537 increase  0xfffffffc , 0x00000002 
+ 00027670  0x00007538 istore  0x00000004 , 0x00000002 
+ 00027671  0x00007539 rtn 
+ 00027672  0x0000753c fetcht  0x00000002 , 0x0000441c 
+ 00027673  0x0000753d copy  0x00000002 , 0x00000011 
+ 00027674  0x0000753e increase  0xfffffffc , 0x00000002 
+ 00027675  0x0000753f ifetch  0x00000004 , 0x00000002 
+ 00027676  0x00007540 store  0x00000004 , 0x00000678 
+ 00027677  0x00007541 fetcht  0x00000002 , 0x0000441e 
+ 00027678  0x00007542 fetch  0x00000003 , 0x00004419 
+ 00027679  0x00007543 rtn 
+ 00027680  0x00007546 bpatch  0x000000ca , 0x00004019 
+ 00027681  0x00007547 call  0x00006c8b 
+ 00027682  0x00007548 call  0x000069dc 
+ 00027683  0x00007549 setarg  0x00000000 
+ 00027684  0x0000754a store  0x00000004 , 0x000001de 
+ 00027685  0x0000754b rtn 
+ 00027686  0x0000754e jam  0x00000006 , 0x000001de 
+ 00027687  0x00007550 setarg  0x00000000 
+ 00027688  0x00007551 store  0x00000002 , 0x00008088 
+ 00027689  0x00007552 setarg  0x00000001 
+ 00027690  0x00007553 store  0x00000002 , 0x00008082 
+ 00027691  0x00007554 setarg  0x000001de 
+ 00027692  0x00007555 store  0x00000002 , 0x00008084 
+ 00027693  0x00007556 jam  0x00000002 , 0x00008006 
+ 00027694  0x00007557 branch  0x00006be0 
+ 00027695  0x0000755a jam  0x000000ab , 0x000001de 
+ 00027696  0x0000755b branch  0x00006c27 
+ 00027697  0x0000755e jam  0x000000b9 , 0x000001de 
+ 00027698  0x0000755f branch  0x00006c27 
+ 00027699  0x00007562 store  0x00000003 , 0x00000670 
+ 00027700  0x00007563 storet  0x00000002 , 0x00000678 
+ 00027701  0x00007564 storer  0x00000011 , 0x00000002 , 0x00000684 
+ 00027702  0x00007565 bpatchx  0x000000b5 , 0x00004036 
+ 00027703  0x00007566 call  0x00006c26 
+ 00027704  0x00007567 fetch  0x00000003 , 0x00000670 
+ 00027705  0x00007568 fetcht  0x00000002 , 0x00000678 
+ 00027706  0x00007569 fetchr  0x00000011 , 0x00000002 , 0x00000684 
+ 00027707  0x0000756a branch  0x00006c3c 
+ 00027708  0x0000756e increase  0x00000004 , 0x00000002 
+ 00027709  0x0000756f storet  0x00000002 , 0x00008082 
+ 00027710  0x00007570 arg  0x00000002 , 0x00000002 
+ 00027711  0x00007571 increase  0xfffffffc , 0x00000011 
+ 00027712  0x00007574 istoret  0x00000001 , 0x00000011 
+ 00027713  0x00007575 rshift16  0x0000003f , 0x00000002 
+ 00027714  0x00007576 istoret  0x00000001 , 0x00000005 
+ 00027715  0x00007577 rshift8  0x0000003f , 0x00000002 
+ 00027716  0x00007578 istoret  0x00000001 , 0x00000005 
+ 00027717  0x00007579 istore  0x00000001 , 0x00000005 
+ 00027718  0x0000757a deposit  0x00000011 
+ 00027719  0x0000757b store  0x00000002 , 0x00008084 
+ 00027720  0x0000757c setarg  0x00000000 
+ 00027721  0x0000757d store  0x00000002 , 0x00008088 
+ 00027722  0x0000757e jam  0x00000002 , 0x00008006 
+ 00027723  0x0000757f call  0x00006be0 
+ 00027724  0x00007580 branch  0x00006c63 
+ 00027725  0x00007585 storet  0x00000002 , 0x00008088 
+ 00027726  0x00007586 rshift16  0x0000003f , 0x00000002 
+ 00027727  0x00007587 storet  0x00000001 , 0x000001df 
+ 00027728  0x00007588 rshift8  0x0000003f , 0x00000002 
+ 00027729  0x00007589 storet  0x00000001 , 0x000001e0 
+ 00027730  0x0000758a store  0x00000001 , 0x000001e1 
+ 00027731  0x0000758b setarg  0x00000004 
+ 00027732  0x0000758c store  0x00000002 , 0x00008082 
+ 00027733  0x0000758d jam  0x00000003 , 0x000001de 
+ 00027734  0x0000758e setarg  0x000001de 
+ 00027735  0x0000758f store  0x00000002 , 0x00008084 
+ 00027736  0x00007590 deposit  0x00000011 
+ 00027737  0x00007591 store  0x00000002 , 0x00008086 
+ 00027738  0x00007592 fetch  0x00000001 , 0x00008080 
+ 00027739  0x00007593 isolate0  0x0000000f , 0x00000011 
+ 00027740  0x00007594 setflag  0x00000001 , 0x00000006 , 0x0000003f 
+ 00027741  0x00007595 store  0x00000001 , 0x00008080 
+ 00027742  0x00007596 jam  0x00000002 , 0x00008006 
+ 00027743  0x00007598 fetch  0x00000001 , 0x00008128 
+ 00027744  0x00007599 bbit1  0x00000007 , 0x00006c5f 
+ 00027745  0x0000759a arg  0x00000003 , 0x00000007 
+ 00027746  0x0000759b branch  0x00006be0 
+ 00027747  0x0000759e setarg  0x000007d0 
+ 00027748  0x0000759f call  0x0000235c 
+ 00027749  0x000075a0 call  0x00006c26 
+ 00027750  0x000075a1 setarg  0x000001e3 
+ 00027751  0x000075a2 store  0x00000002 , 0x00008086 
+ 00027752  0x000075a3 setarg  0x00000005 
+ 00027753  0x000075a4 call  0x00006bd7 
+ 00027754  0x000075a5 bbit1  0x00000000 , 0x00006c63 
+ 00027755  0x000075a6 rtn 
+ 00027756  0x000075ad storet  0x00000002 , 0x00008088 
+ 00027757  0x000075ae setarg  0x00000004 
+ 00027758  0x000075af store  0x00000002 , 0x00008082 
+ 00027759  0x000075b0 jam  0x00000003 , 0x000001de 
+ 00027760  0x000075b1 setarg  0x000001de 
+ 00027761  0x000075b2 store  0x00000002 , 0x00008084 
+ 00027762  0x000075b3 deposit  0x00000011 
+ 00027763  0x000075b4 store  0x00000002 , 0x00008086 
+ 00027764  0x000075b5 fetch  0x00000001 , 0x00008080 
+ 00027765  0x000075b6 isolate0  0x0000000f , 0x00000011 
+ 00027766  0x000075b7 setflag  0x00000001 , 0x00000006 , 0x0000003f 
+ 00027767  0x000075b8 store  0x00000001 , 0x00008080 
+ 00027768  0x000075b9 jam  0x00000002 , 0x00008006 
+ 00027769  0x000075bb fetch  0x00000001 , 0x00008128 
+ 00027770  0x000075bc bbit1  0x00000007 , 0x00006c79 
+ 00027771  0x000075bd arg  0x00000003 , 0x00000007 
+ 00027772  0x000075be call  0x00006b07 
+ 00027773  0x000075bf call  0x00006be0 
+ 00027774  0x000075c0 isolate1  0x00000002 , 0x0000003f 
+ 00027775  0x000075c1 call  0x00006b00 
+ 00027776  0x000075c2 fetch  0x00000001 , 0x000001df 
+ 00027777  0x000075c3 lshift16  0x0000003f , 0x00000012 
+ 00027778  0x000075c4 fetch  0x00000002 , 0x000001e0 
+ 00027779  0x000075c5 byteswap  0x0000003f , 0x0000003f 
+ 00027780  0x000075c6 ior  0x00000012 , 0x0000003f 
+ 00027781  0x000075c7 iadd  0x00000002 , 0x0000003f 
+ 00027782  0x000075c8 store  0x00000001 , 0x000001e1 
+ 00027783  0x000075c9 rshift8  0x0000003f , 0x0000003f 
+ 00027784  0x000075ca byteswap  0x0000003f , 0x0000003f 
+ 00027785  0x000075cb store  0x00000002 , 0x000001df 
+ 00027786  0x000075cc rtn 
+ 00027787  0x000075cf fetch  0x00000001 , 0x00004421 
+ 00027788  0x000075d0 fetcht  0x00000001 , 0x00004423 
+ 00027789  0x000075d1 isub  0x00000002 , 0x0000003e 
+ 00027790  0x000075d2 nbranch  0x00006c90 , 0x00000005 
+ 00027791  0x000075d3 call  0x00006c9c 
+ 00027792  0x000075d6 fetch  0x00000001 , 0x00004421 
+ 00027793  0x000075d7 arg  0x00000020 , 0x00000002 
+ 00027794  0x000075d8 call  0x00006f21 
+ 00027795  0x000075d9 fetch  0x00000001 , 0x00004424 
+ 00027796  0x000075da arg  0x00000021 , 0x00000002 
+ 00027797  0x000075db call  0x00006f21 
+ 00027798  0x000075dc fetch  0x00000001 , 0x00004422 
+ 00027799  0x000075dd arg  0x00000022 , 0x00000002 
+ 00027800  0x000075de call  0x00006f21 
+ 00027801  0x000075df fetch  0x00000001 , 0x00004423 
+ 00027802  0x000075e0 arg  0x0000001f , 0x00000002 
+ 00027803  0x000075e1 branch  0x00006f21 
+ 00027804  0x000075e4 jam  0x00000001 , 0x00004421 
+ 00027805  0x000075e5 jam  0x00000003 , 0x00004422 
+ 00027806  0x000075e6 jam  0x00000000 , 0x00004423 
+ 00027807  0x000075e7 jam  0x00000002 , 0x00004424 
+ 00027808  0x000075e8 jam  0x0000000b , 0x00004425 
+ 00027809  0x000075e9 jam  0x0000000a , 0x00004426 
+ 00027810  0x000075ea rtn 
+ 00027811  0x000075ee jam  0x00000001 , 0x00008010 
+ 00027812  0x000075ef rtn 
+ 00027813  0x000075f6 jam  0x00000005 , 0x0000808b 
+ 00027814  0x000075f7 jam  0x00000007 , 0x0000808c 
+ 00027815  0x000075f8 jam  0x00000007 , 0x0000808d 
+ 00027816  0x000075f9 jam  0x00000007 , 0x0000808e 
+ 00027817  0x000075fa jam  0x00000007 , 0x0000808f 
+ 00027818  0x000075fb jam  0x00000005 , 0x00008090 
+ 00027819  0x000075fc jam  0x00000000 , 0x00008091 
+ 00027820  0x000075fd rtn 
+ 00027821  0x00007600 jam  0x0000000c , 0x0000808b 
+ 00027822  0x00007601 jam  0x0000000d , 0x0000808c 
+ 00027823  0x00007602 jam  0x0000000d , 0x0000808d 
+ 00027824  0x00007603 jam  0x0000000d , 0x0000808e 
+ 00027825  0x00007604 jam  0x0000000d , 0x0000808f 
+ 00027826  0x00007605 jam  0x0000000c , 0x00008090 
+ 00027827  0x00007606 jam  0x00000000 , 0x00008091 
+ 00027828  0x00007607 rtn 
+ 00027829  0x0000760a call  0x00006cd8 
+ 00027830  0x0000760c fetch  0x00000001 , 0x00004428 
+ 00027831  0x0000760d arg  0x0000006c , 0x00000002 
+ 00027832  0x0000760e call  0x00006f21 
+ 00027833  0x0000760f fetch  0x00000001 , 0x00004429 
+ 00027834  0x00007610 arg  0x0000006d , 0x00000002 
+ 00027835  0x00007611 branch  0x00006f21 
+ 00027836  0x00007614 call  0x00006cdf 
+ 00027837  0x00007615 branch  0x00006cb6 
+ 00027838  0x00007618 fetch  0x00000001 , 0x00008128 
+ 00027839  0x00007619 bbit0  0x00000005 , 0x00006cbe 
+ 00027840  0x0000761a rtn 
+ 00027841  0x00007635 set1  0x00000028 , 0x00000000 
+ 00027842  0x00007636 jam  0x00000008 , 0x000043f4 
+ 00027843  0x00007637 rtn 
+ 00027844  0x0000763a set0  0x00000028 , 0x00000000 
+ 00027845  0x0000763b jam  0x00000020 , 0x000043f4 
+ 00027846  0x0000763c rtn 
+ 00027847  0x00007640 fetch  0x00000001 , 0x000043eb 
+ 00027848  0x00007641 iadd  0x00000012 , 0x0000003f 
+ 00027849  0x00007642 store  0x00000001 , 0x000001e0 
+ 00027850  0x00007643 branch  0x00006cce 
+ 00027851  0x00007646 fetch  0x00000002 , 0x000001e0 
+ 00027852  0x00007647 byteswap  0x0000003f , 0x0000003f 
+ 00027853  0x00007648 store  0x00000001 , 0x000001e0 
+ 00027854  0x0000764e setarg  0x00000003 
+ 00027855  0x0000764f store  0x00000002 , 0x00008092 
+ 00027856  0x00007650 jam  0x000000a0 , 0x000001df 
+ 00027857  0x00007651 jam  0x000000a1 , 0x000001e1 
+ 00027858  0x00007652 branch  0x00006ced 
+ 00027859  0x00007659 storet  0x00000002 , 0x00000678 
+ 00027860  0x0000765a call  0x00006cd8 
+ 00027861  0x0000765b fetcht  0x00000002 , 0x00000678 
+ 00027862  0x0000765c call  0x00006d07 
+ 00027863  0x0000765d branch  0x00006cdf 
+ 00027864  0x00007660 fetch  0x00000001 , 0x00004427 
+ 00027865  0x00007661 rtneq  0x000000ff 
+ 00027866  0x00007662 bbit0  0x00000006 , 0x00006cdd 
+ 00027867  0x00007663 setarg  0x000249f0 
+ 00027868  0x00007664 call  0x0000235c 
+ 00027869  0x00007666 fetcht  0x00000001 , 0x00004427 
+ 00027870  0x00007667 branch  0x00006ef7 
+ 00027871  0x0000766a fetcht  0x00000001 , 0x00004427 
+ 00027872  0x0000766b branch  0x00006ef3 
+ 00027873  0x00007671 bpatch  0x000000cb , 0x00004019 
+ 00027874  0x00007672 bmark1  0x00000028 , 0x00006cc7 
+ 00027875  0x00007673 fetch  0x00000002 , 0x000043eb 
+ 00027876  0x00007674 iadd  0x00000012 , 0x0000003f 
+ 00027877  0x00007675 byteswap  0x0000003f , 0x0000003f 
+ 00027878  0x00007676 store  0x00000002 , 0x000001e0 
+ 00027879  0x0000767a bpatch  0x000000cc , 0x00004019 
+ 00027880  0x0000767b bmark1  0x00000028 , 0x00006ccb 
+ 00027881  0x0000767c setarg  0x00000004 
+ 00027882  0x0000767d store  0x00000002 , 0x00008092 
+ 00027883  0x0000767e jam  0x000000a0 , 0x000001df 
+ 00027884  0x0000767f jam  0x000000a1 , 0x000001e2 
+ 00027885  0x00007681 setarg  0x000001df 
+ 00027886  0x00007682 store  0x00000002 , 0x00008094 
+ 00027887  0x00007683 storet  0x00000002 , 0x00008098 
+ 00027888  0x00007684 storer  0x00000011 , 0x00000002 , 0x00008096 
+ 00027889  0x00007685 setarg  0x00000002 
+ 00027890  0x00007686 isolate0  0x0000000f , 0x00000011 
+ 00027891  0x00007687 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00027892  0x00007688 store  0x00000001 , 0x0000808a 
+ 00027893  0x00007689 jam  0x00000004 , 0x00008006 
+ 00027894  0x0000768a arg  0x00000005 , 0x00000007 
+ 00027895  0x0000768b call  0x00006b07 
+ 00027896  0x0000768c call  0x00006cbe 
+ 00027897  0x0000768d isolate1  0x00000004 , 0x0000003f 
+ 00027898  0x0000768e call  0x00006b00 
+ 00027899  0x0000768f bmark1  0x00000028 , 0x00006d02 
+ 00027900  0x00007691 fetch  0x00000002 , 0x000001e0 
+ 00027901  0x00007692 byteswap  0x0000003f , 0x0000003f 
+ 00027902  0x00007693 iadd  0x00000002 , 0x0000003f 
+ 00027903  0x00007694 byteswap  0x0000003f , 0x0000003f 
+ 00027904  0x00007695 store  0x00000002 , 0x000001e0 
+ 00027905  0x00007696 rtn 
+ 00027906  0x00007699 fetch  0x00000001 , 0x000001e0 
+ 00027907  0x0000769a iadd  0x00000002 , 0x0000003f 
+ 00027908  0x0000769b byteswap  0x0000003f , 0x0000003f 
+ 00027909  0x0000769c store  0x00000002 , 0x000001e0 
+ 00027910  0x0000769d rtn 
+ 00027911  0x000076a4 fetch  0x00000002 , 0x000043eb 
+ 00027912  0x000076a5 iadd  0x00000012 , 0x0000003f 
+ 00027913  0x000076a8 store  0x00000002 , 0x00000670 
+ 00027914  0x000076a9 bpatch  0x000000cd , 0x00004019 
+ 00027915  0x000076aa storet  0x00000002 , 0x00000678 
+ 00027916  0x000076ab storer  0x00000011 , 0x00000002 , 0x0000068f 
+ 00027917  0x000076ad call  0x00006d1c 
+ 00027918  0x000076af fetcht  0x00000002 , 0x00000688 
+ 00027919  0x000076b0 fetchr  0x00000011 , 0x00000002 , 0x0000068f 
+ 00027920  0x000076b1 fetch  0x00000002 , 0x00000670 
+ 00027921  0x000076b3 call  0x00006d3d 
+ 00027922  0x000076b5 fetch  0x00000002 , 0x00000688 
+ 00027923  0x000076b6 fetcht  0x00000002 , 0x0000068f 
+ 00027924  0x000076b7 iadd  0x00000002 , 0x00000002 
+ 00027925  0x000076b8 storet  0x00000002 , 0x0000068f 
+ 00027926  0x000076b9 fetcht  0x00000002 , 0x00000670 
+ 00027927  0x000076ba iadd  0x00000002 , 0x00000002 
+ 00027928  0x000076bb storet  0x00000002 , 0x00000670 
+ 00027929  0x000076bc fetch  0x00000002 , 0x00000678 
+ 00027930  0x000076bd nbranch  0x00006d0d , 0x00000034 
+ 00027931  0x000076be rtn 
+ 00027932  0x000076c7 bpatch  0x000000ce , 0x00004019 
+ 00027933  0x000076c8 fetch  0x00000001 , 0x000043f4 
+ 00027934  0x000076c9 increase  0xffffffff , 0x0000003f 
+ 00027935  0x000076ca fetcht  0x00000002 , 0x00000670 
+ 00027936  0x000076cb ior  0x00000002 , 0x0000003f 
+ 00027937  0x000076cc increase  0x00000001 , 0x0000003f 
+ 00027938  0x000076cd store  0x00000003 , 0x0000068c 
+ 00027939  0x000076cf fetch  0x00000002 , 0x00000678 
+ 00027940  0x000076d0 iadd  0x00000002 , 0x0000003f 
+ 00027941  0x000076d2 fetcht  0x00000003 , 0x0000068c 
+ 00027942  0x000076d3 isub  0x00000002 , 0x0000003f 
+ 00027943  0x000076d4 nbranch  0x00006d2e , 0x00000002 
+ 00027944  0x000076d5 store  0x00000002 , 0x00000678 
+ 00027945  0x000076d6 fetch  0x00000003 , 0x0000068c 
+ 00027946  0x000076d7 fetcht  0x00000002 , 0x00000670 
+ 00027947  0x000076d8 isub  0x00000002 , 0x0000003f 
+ 00027948  0x000076d9 store  0x00000002 , 0x00000688 
+ 00027949  0x000076da rtn 
+ 00027950  0x000076dd fetch  0x00000002 , 0x00000678 
+ 00027951  0x000076de store  0x00000002 , 0x00000688 
+ 00027952  0x000076df setarg  0x00000000 
+ 00027953  0x000076e0 store  0x00000002 , 0x00000678 
+ 00027954  0x000076e1 rtn 
+ 00027955  0x000076e4 copy  0x00000012 , 0x0000003f 
+ 00027956  0x000076e5 increase  0x00000002 , 0x00000002 
+ 00027957  0x000076e6 storet  0x00000002 , 0x00008092 
+ 00027958  0x000076e7 increase  0xfffffffe , 0x00000011 
+ 00027959  0x000076e8 ifetcht  0x00000003 , 0x00000011 
+ 00027960  0x000076e9 copy  0x00000002 , 0x00000012 
+ 00027961  0x000076ea arg  0x000000a0 , 0x00000002 
+ 00027962  0x000076eb istoret  0x00000001 , 0x00000011 
+ 00027963  0x000076ec istore  0x00000001 , 0x00000005 
+ 00027964  0x000076ed branch  0x00006d4a 
+ 00027965  0x000076f1 copy  0x0000003f , 0x00000012 
+ 00027966  0x000076f2 bpatch  0x000000cf , 0x00004019 
+ 00027967  0x000076f3 bmark1  0x00000028 , 0x00006d33 
+ 00027968  0x000076f4 copy  0x00000012 , 0x0000003f 
+ 00027969  0x000076f5 increase  0x00000003 , 0x00000002 
+ 00027970  0x000076f6 storet  0x00000002 , 0x00008092 
+ 00027971  0x000076f7 increase  0xfffffffd , 0x00000011 
+ 00027972  0x000076f8 ifetcht  0x00000003 , 0x00000011 
+ 00027973  0x000076f9 copy  0x00000002 , 0x00000012 
+ 00027974  0x000076fa arg  0x000000a0 , 0x00000002 
+ 00027975  0x000076fb istoret  0x00000001 , 0x00000011 
+ 00027976  0x000076fc byteswap  0x0000003f , 0x0000003f 
+ 00027977  0x000076fd istore  0x00000002 , 0x00000005 
+ 00027978  0x000076ff storer  0x00000011 , 0x00000002 , 0x00008094 
+ 00027979  0x00007700 setarg  0x00000000 
+ 00027980  0x00007701 store  0x00000002 , 0x00008098 
+ 00027981  0x00007702 jam  0x00000001 , 0x0000808a 
+ 00027982  0x00007703 jam  0x00000004 , 0x00008006 
+ 00027983  0x00007704 call  0x00006cbe 
+ 00027984  0x00007705 istorer  0x00000012 , 0x00000003 , 0x00000011 
+ 00027985  0x00007707 bpatch  0x000000d0 , 0x0000401a 
+ 00027986  0x00007708 jam  0x00000000 , 0x000001e2 
+ 00027987  0x0000770a setarg  0x00000001 
+ 00027988  0x0000770b store  0x00000002 , 0x00008092 
+ 00027989  0x0000770c jam  0x000000a0 , 0x000001df 
+ 00027990  0x0000770d setarg  0x000001df 
+ 00027991  0x0000770e store  0x00000002 , 0x00008094 
+ 00027992  0x0000770f setarg  0x00000000 
+ 00027993  0x00007710 store  0x00000002 , 0x00008098 
+ 00027994  0x00007711 store  0x00000002 , 0x00008096 
+ 00027995  0x00007712 setarg  0x00000003 
+ 00027996  0x00007713 store  0x00000001 , 0x0000808a 
+ 00027997  0x00007714 jam  0x00000004 , 0x00008006 
+ 00027998  0x00007715 call  0x00006cbe 
+ 00027999  0x00007716 fetch  0x00000001 , 0x00008128 
+ 00028000  0x00007717 rtnbit0  0x00000006 
+ 00028001  0x00007718 nop  0x000005dc 
+ 00028002  0x00007719 fetch  0x00000001 , 0x000001e2 
+ 00028003  0x0000771a increase  0x00000001 , 0x0000003f 
+ 00028004  0x0000771b store  0x00000001 , 0x000001e2 
+ 00028005  0x0000771c sub  0x0000003f , 0x00000028 , 0x0000003e 
+ 00028006  0x0000771d nrtn  0x00000002 
+ 00028007  0x0000771e branch  0x00006d53 
+ 00028008  0x00007723 call  0x00007dba 
+ 00028009  0x00007724 branch  0x00006d6a 
+ 00028010  0x00007727 rshift16  0x0000003f , 0x00000002 
+ 00028011  0x00007728 call  0x00006d8e , 0x00000028 
+ 00028012  0x00007729 rshift32  0x0000003f , 0x0000003f 
+ 00028013  0x0000772a rshift16  0x0000003f , 0x00000002 
+ 00028014  0x0000772b call  0x00006d8a , 0x00000028 
+ 00028015  0x0000772c fetch  0x00000002 , 0x00008050 
+ 00028016  0x0000772d set0  0x0000000f , 0x0000003f 
+ 00028017  0x0000772e store  0x00000002 , 0x00008050 
+ 00028018  0x0000772f rtn 
+ 00028019  0x00007733 store  0x00000002 , 0x00008052 
+ 00028020  0x00007734 rtn 
+ 00028021  0x00007738 call  0x00006d77 
+ 00028022  0x00007739 branch  0x00006d73 
+ 00028023  0x0000773d call  0x00006d7c 
+ 00028024  0x0000773e idiv  0x00000002 
+ 00028025  0x0000773f call  0x00007d62 
+ 00028026  0x00007740 quotient  0x0000003f 
+ 00028027  0x00007741 rtn 
+ 00028028  0x00007744 fetch  0x00000001 , 0x00008043 
+ 00028029  0x00007745 bbit0  0x00000000 , 0x00006d80 
+ 00028030  0x00007746 setarg  0x02dc6c00 
+ 00028031  0x00007747 rtn 
+ 00028032  0x00007749 setarg  0x016e3600 
+ 00028033  0x0000774a rtn 
+ 00028034  0x0000774d fetch  0x00000001 , 0x00008043 
+ 00028035  0x0000774e and  0x0000003f , 0x000000fe , 0x0000003f 
+ 00028036  0x0000774f store  0x00000001 , 0x00008043 
+ 00028037  0x00007750 rtn 
+ 00028038  0x00007753 fetch  0x00000001 , 0x00008043 
+ 00028039  0x00007754 or  0x0000003f , 0x00000001 , 0x0000003f 
+ 00028040  0x00007755 store  0x00000001 , 0x00008043 
+ 00028041  0x00007756 rtn 
+ 00028042  0x0000775b store  0x00000002 , 0x0000805a 
+ 00028043  0x0000775c store  0x00000002 , 0x0000805e 
+ 00028044  0x0000775d storet  0x00000002 , 0x0000805c 
+ 00028045  0x0000775e rtn 
+ 00028046  0x00007762 store  0x00000002 , 0x00008054 
+ 00028047  0x00007763 store  0x00000002 , 0x00008058 
+ 00028048  0x00007764 storet  0x00000002 , 0x00008056 
+ 00028049  0x00007765 rtn 
+ 00028050  0x00007768 fetchr  0x0000000a , 0x00000002 , 0x0000805a 
+ 00028051  0x00007769 fetchr  0x00000010 , 0x00000002 , 0x0000805c 
+ 00028052  0x0000776a fetchr  0x00000003 , 0x00000002 , 0x0000805e 
+ 00028053  0x0000776b rtn 
+ 00028054  0x0000776e fetchr  0x0000000a , 0x00000002 , 0x00008054 
+ 00028055  0x0000776f fetchr  0x00000010 , 0x00000002 , 0x00008056 
+ 00028056  0x00007770 fetchr  0x00000003 , 0x00000002 , 0x00008058 
+ 00028057  0x00007771 rtn 
+ 00028058  0x00007774 storer  0x00000003 , 0x00000002 , 0x0000805e 
+ 00028059  0x00007775 rtn 
+ 00028060  0x00007778 storer  0x00000003 , 0x00000002 , 0x00008058 
+ 00028061  0x00007779 rtn 
+ 00028062  0x0000777c call  0x00006d96 
+ 00028063  0x0000777d fetch  0x00000002 , 0x00008112 
+ 00028064  0x0000777e iadd  0x00000003 , 0x00000003 
+ 00028065  0x0000777f branch  0x00006d9c 
+ 00028066  0x00007782 call  0x00006da6 
+ 00028067  0x00007783 branch  0x00006d92 
+ 00028068  0x00007786 call  0x00006d9a 
+ 00028069  0x00007787 branch  0x00006daa 
+ 00028070  0x0000778b storer  0x00000003 , 0x00000002 , 0x00000697 
+ 00028071  0x0000778c storer  0x0000000a , 0x00000002 , 0x00000695 
+ 00028072  0x0000778d storer  0x00000010 , 0x00000002 , 0x00000693 
+ 00028073  0x0000778e rtn 
+ 00028074  0x00007791 fetchr  0x00000003 , 0x00000002 , 0x00000697 
+ 00028075  0x00007792 fetchr  0x0000000a , 0x00000002 , 0x00000695 
+ 00028076  0x00007793 fetchr  0x00000010 , 0x00000002 , 0x00000693 
+ 00028077  0x00007794 rtn 
+ 00028078  0x00007797 fetch  0x00000002 , 0x0000810e 
+ 00028079  0x00007798 nbranch  0x00006dae , 0x00000034 
+ 00028080  0x00007799 rtn 
+ 00028081  0x0000779c deposit  0x00000039 
+ 00028082  0x0000779d rtn  0x00000034 
+ 00028083  0x0000779f increase  0xfffffff8 , 0x00000039 
+ 00028084  0x000077a0 call  0x00006dbe , 0x00000002 
+ 00028085  0x000077a1 rtn  0x00000005 
+ 00028086  0x000077a2 branch  0x00006db3 , 0x00000002 
+ 00028087  0x000077a3 increase  0x00000008 , 0x00000039 
+ 00028088  0x000077a5 increase  0xfffffffc , 0x00000039 
+ 00028089  0x000077a6 call  0x00006dc1 , 0x00000002 
+ 00028090  0x000077a7 rtn  0x00000005 
+ 00028091  0x000077a8 branch  0x00006db8 , 0x00000002 
+ 00028092  0x000077a9 increase  0x00000004 , 0x00000039 
+ 00028093  0x000077aa branch  0x00006dc4 
+ 00028094  0x000077ad ifetch  0x00000008 , 0x00000006 
+ 00028095  0x000077ae istore  0x00000008 , 0x00000003 
+ 00028096  0x000077af rtn 
+ 00028097  0x000077b2 ifetch  0x00000004 , 0x00000006 
+ 00028098  0x000077b3 istore  0x00000004 , 0x00000003 
+ 00028099  0x000077b4 rtn 
+ 00028100  0x000077b7 deposit  0x00000039 
+ 00028101  0x000077b8 rtn  0x00000034 
+ 00028102  0x000077ba ifetch  0x00000001 , 0x00000006 
+ 00028103  0x000077bb istore  0x00000001 , 0x00000003 
+ 00028104  0x000077bc loop  0x00006dc6 
+ 00028105  0x000077bd rtn 
+ 00028106  0x000077c0 deposit  0x00000039 
+ 00028107  0x000077c1 rtn  0x00000034 
+ 00028108  0x000077c3 increase  0xfffffff8 , 0x00000039 
+ 00028109  0x000077c4 call  0x00006dd7 , 0x00000002 
+ 00028110  0x000077c5 rtn  0x00000005 
+ 00028111  0x000077c6 branch  0x00006dcc , 0x00000002 
+ 00028112  0x000077c7 increase  0x00000008 , 0x00000039 
+ 00028113  0x000077c9 increase  0xfffffffc , 0x00000039 
+ 00028114  0x000077ca call  0x00006dda , 0x00000002 
+ 00028115  0x000077cb rtn  0x00000005 
+ 00028116  0x000077cc branch  0x00006dd1 , 0x00000002 
+ 00028117  0x000077cd increase  0x00000004 , 0x00000039 
+ 00028118  0x000077ce branch  0x00006ddd 
+ 00028119  0x000077d2 ifetch  0x00000008 , 0x00000003 
+ 00028120  0x000077d3 istore  0x00000008 , 0x00000005 
+ 00028121  0x000077d4 rtn 
+ 00028122  0x000077d7 ifetch  0x00000004 , 0x00000003 
+ 00028123  0x000077d8 istore  0x00000004 , 0x00000005 
+ 00028124  0x000077d9 rtn 
+ 00028125  0x000077dd deposit  0x00000039 
+ 00028126  0x000077de rtn  0x00000034 
+ 00028127  0x000077e0 ifetch  0x00000001 , 0x00000003 
+ 00028128  0x000077e1 istore  0x00000001 , 0x00000005 
+ 00028129  0x000077e2 loop  0x00006ddf 
+ 00028130  0x000077e3 rtn 
+ 00028131  0x000077e9 jam  0x0000003d , 0x0000066f 
+ 00028132  0x000077ea branch  0x0000782b 
+ 00028133  0x000077ed bpatch  0x000000d1 , 0x0000401a 
+ 00028134  0x000077ee fetch  0x00000001 , 0x000043fa 
+ 00028135  0x000077ef rtn  0x00000034 
+ 00028136  0x000077f0 call  0x00006e87 
+ 00028137  0x000077f1 call  0x00006e8d , 0x00000005 
+ 00028138  0x000077f2 call  0x00007dc0 
+ 00028139  0x000077f3 call  0x00006e18 
+ 00028140  0x000077f5 fetch  0x00000001 , 0x000043fa 
+ 00028141  0x000077f6 icopy  0x00000013 
+ 00028142  0x000077f7 fetcht  0x00000002 , 0x000043f8 
+ 00028143  0x000077f8 storet  0x00000002 , 0x00000033 
+ 00028144  0x000077fa copy  0x00000013 , 0x0000003f 
+ 00028145  0x000077fb branch  0x00006de3 , 0x00000034 
+ 00028146  0x000077fc increase  0xffffffff , 0x00000013 
+ 00028147  0x000077fd copy  0x00000002 , 0x00000011 
+ 00028148  0x000077fe ifetch  0x00000001 , 0x00000011 
+ 00028149  0x000077ff fetcht  0x00000001 , 0x00000031 
+ 00028150  0x00007800 isub  0x00000002 , 0x0000003e 
+ 00028151  0x00007801 call  0x00006e00 , 0x00000005 
+ 00028152  0x00007802 branch  0x00006dfc , 0x00000002 
+ 00028153  0x00007803 ifetch  0x00000001 , 0x00000011 
+ 00028154  0x00007804 increase  0x00000001 , 0x0000003f 
+ 00028155  0x00007805 istore  0x00000001 , 0x00000011 
+ 00028156  0x00007807 fetcht  0x00000002 , 0x00000033 
+ 00028157  0x00007808 increase  0x00000022 , 0x00000002 
+ 00028158  0x00007809 storet  0x00000002 , 0x00000033 
+ 00028159  0x0000780a branch  0x00006df0 
+ 00028160  0x0000780d setarg  0x00000000 
+ 00028161  0x0000780e istore  0x00000001 , 0x00000011 
+ 00028162  0x0000780f fetch  0x00000001 , 0x00000032 
+ 00028163  0x00007810 istore  0x00000001 , 0x00000005 
+ 00028164  0x00007811 bne  0x00000033 , 0x00006e0d 
+ 00028165  0x00007814 ifetch  0x00000006 , 0x00000006 
+ 00028166  0x00007815 istore  0x00000008 , 0x00000005 
+ 00028167  0x00007816 setarg  0x00000000 
+ 00028168  0x00007817 istore  0x00000008 , 0x00000005 
+ 00028169  0x00007818 copy  0x00000012 , 0x00000006 
+ 00028170  0x0000781a call  0x00007c8f 
+ 00028171  0x0000781b force  0x00000001 , 0x0000003e 
+ 00028172  0x0000781c rtn 
+ 00028173  0x0000781f beq  0x00000036 , 0x00006e11 
+ 00028174  0x00007820 beq  0x00000037 , 0x00006e15 
+ 00028175  0x00007821 arg  0x0000428a , 0x00000012 
+ 00028176  0x00007822 branch  0x00006e05 
+ 00028177  0x00007825 arg  0x0000430d , 0x00000006 
+ 00028178  0x00007826 call  0x00007c8f 
+ 00028179  0x00007828 arg  0x0000428a , 0x00000006 
+ 00028180  0x00007829 branch  0x00006e0a 
+ 00028181  0x0000782c arg  0x00004305 , 0x00000006 
+ 00028182  0x0000782d call  0x00007c8f 
+ 00028183  0x0000782e branch  0x00006e13 
+ 00028184  0x00007834 bpatch  0x000000d2 , 0x0000401a 
+ 00028185  0x00007835 call  0x00007dbc 
+ 00028186  0x00007836 fetch  0x00000001 , 0x000043fa 
+ 00028187  0x00007837 rtn  0x00000034 
+ 00028188  0x00007838 bpatch  0x000000d3 , 0x0000401a 
+ 00028189  0x00007839 fetch  0x00000002 , 0x000044e9 
+ 00028190  0x0000783a rtnbit0  0x00000009 
+ 00028191  0x0000783c fetch  0x00000001 , 0x000042cb 
+ 00028192  0x0000783d beq  0x00000000 , 0x00006e34 
+ 00028193  0x0000783e fetch  0x00000001 , 0x0000017d 
+ 00028194  0x0000783f compare  0x000000c0 , 0x0000003f , 0x000000c0 
+ 00028195  0x00007840 branch  0x00006e27 , 0x00000001 
+ 00028196  0x00007841 compare  0x00000040 , 0x0000003f , 0x000000c0 
+ 00028197  0x00007842 branch  0x00006e39 , 0x00000001 
+ 00028198  0x00007843 branch  0x00006e2e 
+ 00028199  0x00007846 branch  0x00006e2b , 0x0000002c 
+ 00028200  0x00007847 fetch  0x00000001 , 0x000042c2 
+ 00028201  0x00007848 bbit0  0x00000001 , 0x00006e34 
+ 00028202  0x00007849 branch  0x00006e2e 
+ 00028203  0x0000784c call  0x00006e34 
+ 00028204  0x0000784d rtn  0x00000028 
+ 00028205  0x0000784e branch  0x00006e2e 
+ 00028206  0x00007853 fetch  0x00000001 , 0x000042fe 
+ 00028207  0x00007854 bbit1  0x00000007 , 0x00006e31 
+ 00028208  0x00007855 branch  0x00006e37 
+ 00028209  0x00007859 fetch  0x00000006 , 0x00000178 
+ 00028210  0x0000785a store  0x00000008 , 0x00004305 
+ 00028211  0x0000785b branch  0x00006e37 
+ 00028212  0x0000785f jam  0x00000035 , 0x00000032 
+ 00028213  0x00007860 fetch  0x00000006 , 0x00000178 
+ 00028214  0x00007861 branch  0x00006e3b 
+ 00028215  0x00007864 jam  0x00000037 , 0x00000032 
+ 00028216  0x00007865 branch  0x00006e3b 
+ 00028217  0x00007869 jam  0x00000036 , 0x00000032 
+ 00028218  0x0000786a branch  0x00006e3b 
+ 00028219  0x0000786d bpatch  0x000000d4 , 0x0000401a 
+ 00028220  0x0000786f fetch  0x00000002 , 0x000043f8 
+ 00028221  0x00007870 ifetcht  0x00000001 , 0x0000003f 
+ 00028222  0x00007871 pincrease  0x00000001 
+ 00028223  0x00007872 store  0x00000002 , 0x00000033 
+ 00028224  0x00007873 storet  0x00000001 , 0x00000031 
+ 00028225  0x00007874 fetch  0x00000001 , 0x000043fa 
+ 00028226  0x00007875 icopy  0x00000013 
+ 00028227  0x00007877 fetch  0x00000002 , 0x00000033 
+ 00028228  0x00007878 copy  0x0000003f , 0x00000011 
+ 00028229  0x00007879 call  0x00006e53 
+ 00028230  0x0000787a rtn  0x00000028 
+ 00028231  0x0000787b fetcht  0x00000002 , 0x00000033 
+ 00028232  0x0000787c increase  0x00000022 , 0x00000002 
+ 00028233  0x0000787d storet  0x00000002 , 0x00000033 
+ 00028234  0x0000787e increase  0xffffffff , 0x00000002 
+ 00028235  0x0000787f ifetch  0x00000001 , 0x00000002 
+ 00028236  0x00007880 store  0x00000001 , 0x00000031 
+ 00028237  0x00007881 increase  0xffffffff , 0x00000013 
+ 00028238  0x00007882 nbranch  0x00006e43 , 0x00000005 
+ 00028239  0x00007883 fetch  0x00000001 , 0x000043fa 
+ 00028240  0x00007884 pincrease  0xffffffff 
+ 00028241  0x00007885 store  0x00000001 , 0x00000031 
+ 00028242  0x00007886 rtn 
+ 00028243  0x00007888 fetch  0x00000001 , 0x00000032 
+ 00028244  0x00007889 bne  0x00000033 , 0x00006e5a 
+ 00028245  0x0000788b arg  0x00000032 , 0x00000012 
+ 00028246  0x0000788c arg  0x00000007 , 0x00000039 
+ 00028247  0x0000788d call  0x00007d64 
+ 00028248  0x0000788e branch  0x00007dba , 0x00000005 
+ 00028249  0x0000788f rtn 
+ 00028250  0x00007892 beq  0x00000036 , 0x00006e5d 
+ 00028251  0x00007893 beq  0x00000037 , 0x00006e78 
+ 00028252  0x00007894 branch  0x00006e55 
+ 00028253  0x00007897 ifetcht  0x00000001 , 0x00000011 
+ 00028254  0x00007898 isub  0x00000002 , 0x0000003e 
+ 00028255  0x00007899 nrtn  0x00000005 
+ 00028256  0x0000789a arg  0x000006a1 , 0x00000005 
+ 00028257  0x0000789b arg  0x00000010 , 0x00000039 
+ 00028258  0x0000789c call  0x00007ca1 
+ 00028259  0x0000789d fetch  0x00000003 , 0x0000017b 
+ 00028260  0x0000789e store  0x00000003 , 0x000006a1 
+ 00028261  0x0000789f call  0x00006e6f 
+ 00028262  0x000078a0 fetch  0x00000002 , 0x000006be 
+ 00028263  0x000078a1 byteswap  0x0000003f , 0x0000003f 
+ 00028264  0x000078a2 lshift8  0x0000003f , 0x00000002 
+ 00028265  0x000078a3 ifetch  0x00000001 , 0x00000006 
+ 00028266  0x000078a4 iadd  0x00000002 , 0x0000003f 
+ 00028267  0x000078a5 fetcht  0x00000003 , 0x00000178 
+ 00028268  0x000078a6 isub  0x00000002 , 0x0000003e 
+ 00028269  0x000078a7 branch  0x00007dba , 0x00000005 
+ 00028270  0x000078a8 rtn 
+ 00028271  0x000078ac arg  0x000006a1 , 0x00000006 
+ 00028272  0x000078ad call  0x00007361 
+ 00028273  0x000078af ifetch  0x00000001 , 0x00000011 
+ 00028274  0x000078b0 call  0x00007362 
+ 00028275  0x000078b1 force  0x00000038 , 0x00000036 
+ 00028276  0x000078b2 force  0x00000000 , 0x00000036 
+ 00028277  0x000078b3 call  0x000072cf 
+ 00028278  0x000078b4 arg  0x000006b1 , 0x00000005 
+ 00028279  0x000078b5 branch  0x00007375 
+ 00028280  0x000078b8 ifetcht  0x00000001 , 0x00000011 
+ 00028281  0x000078b9 isub  0x00000002 , 0x0000003e 
+ 00028282  0x000078ba nrtn  0x00000005 
+ 00028283  0x000078bb copy  0x00000006 , 0x00000011 
+ 00028284  0x000078bc add  0x00000006 , 0x00000008 , 0x00000013 
+ 00028285  0x000078bd arg  0x00004305 , 0x00000012 
+ 00028286  0x000078be arg  0x00000008 , 0x00000039 
+ 00028287  0x000078bf call  0x00007d64 
+ 00028288  0x000078c0 branch  0x00007dba , 0x00000005 
+ 00028289  0x000078c1 copy  0x00000013 , 0x00000011 
+ 00028290  0x000078c2 arg  0x0000430d , 0x00000012 
+ 00028291  0x000078c3 arg  0x00000008 , 0x00000039 
+ 00028292  0x000078c4 call  0x00007d64 
+ 00028293  0x000078c5 branch  0x00007dba , 0x00000005 
+ 00028294  0x000078c6 rtn 
+ 00028295  0x000078c9 fetch  0x00000002 , 0x000043f8 
+ 00028296  0x000078ca ifetcht  0x00000001 , 0x0000003f 
+ 00028297  0x000078cb pincrease  0x00000022 
+ 00028298  0x000078cc ifetch  0x00000001 , 0x0000003f 
+ 00028299  0x000078cd isub  0x00000002 , 0x0000003e 
+ 00028300  0x000078ce rtn 
+ 00028301  0x000078d1 fetch  0x00000001 , 0x000043fa 
+ 00028302  0x000078d2 icopy  0x00000039 
+ 00028303  0x000078d3 fetcht  0x00000002 , 0x000043f8 
+ 00028304  0x000078d4 setarg  0x00000000 
+ 00028305  0x000078d6 istore  0x00000001 , 0x00000002 
+ 00028306  0x000078d7 increase  0x00000022 , 0x00000002 
+ 00028307  0x000078d8 pincrease  0x00000001 
+ 00028308  0x000078d9 loop  0x00006e91 
+ 00028309  0x000078da rtn 
+ 00028310  0x000078df call  0x00007dbe 
+ 00028311  0x000078e0 call  0x00006e18 
+ 00028312  0x000078e1 nbranch  0x00006ea1 , 0x00000028 
+ 00028313  0x000078e2 fetch  0x00000002 , 0x00000033 
+ 00028314  0x000078e3 add  0x0000003f , 0x00000001 , 0x00000006 
+ 00028315  0x000078e4 arg  0x0000430d , 0x00000005 
+ 00028316  0x000078e5 call  0x00007c8f 
+ 00028317  0x000078e6 arg  0x0000428a , 0x00000005 
+ 00028318  0x000078e7 call  0x00007c8f 
+ 00028319  0x000078e8 jam  0x00000001 , 0x0000429a 
+ 00028320  0x000078e9 rtn 
+ 00028321  0x000078ec jam  0x00000000 , 0x0000429a 
+ 00028322  0x000078ed rtn 
+ 00028323  0x000078f1 jam  0x00000034 , 0x00000032 
+ 00028324  0x000078f2 branch  0x00006ea5 
+ 00028325  0x000078f5 fetch  0x00000001 , 0x000043cb 
+ 00028326  0x000078f6 beq  0x0000000a , 0x00006de5 
+ 00028327  0x000078f7 beq  0x00000008 , 0x00005c42 
+ 00028328  0x000078f8 rtn 
+ 00028329  0x000078ff and  0x00000002 , 0x0000001f , 0x0000003f 
+ 00028330  0x00007900 rshift  0x0000003f , 0x0000003f 
+ 00028331  0x00007901 arg  0x00000016 , 0x00000005 
+ 00028332  0x00007902 iadd  0x00000005 , 0x00000005 
+ 00028333  0x00007903 arg  0x000000f0 , 0x00000030 
+ 00028334  0x00007904 isolate0  0x00000000 , 0x00000002 
+ 00028335  0x00007905 rtn  0x00000001 
+ 00028336  0x00007906 arg  0x0000000f , 0x00000030 
+ 00028337  0x00007907 rtn 
+ 00028338  0x0000790b bpatch  0x000000d5 , 0x0000401a 
+ 00028339  0x0000790c set1  0x00000007 , 0x00000002 
+ 00028340  0x0000790d call  0x00006ee6 
+ 00028341  0x0000790e nsetflag  0x00000001 , 0x00000007 , 0x00000002 
+ 00028342  0x00007912 bpatch  0x000000d6 , 0x0000401a 
+ 00028343  0x00007913 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028344  0x00007914 rtn  0x00000005 
+ 00028345  0x00007915 arg  0x00000004 , 0x00000008 
+ 00028346  0x00007916 isolate1  0x00000007 , 0x00000002 
+ 00028347  0x00007917 branch  0x00006ebd , 0x00000001 
+ 00028348  0x00007918 arg  0x00000002 , 0x00000008 
+ 00028349  0x0000791a call  0x00006ea9 
+ 00028350  0x0000791b isolate0  0x00000000 , 0x00000002 
+ 00028351  0x0000791c branch  0x00006ec1 , 0x00000001 
+ 00028352  0x0000791d lshift4  0x00000008 , 0x00000008 
+ 00028353  0x0000791f ifetch  0x00000001 , 0x00000005 
+ 00028354  0x00007920 iand  0x00000030 , 0x0000003f 
+ 00028355  0x00007921 ior  0x00000008 , 0x0000003f 
+ 00028356  0x00007922 istore  0x00000001 , 0x00000005 
+ 00028357  0x00007923 rtn 
+ 00028358  0x00007927 bpatch  0x000000d7 , 0x0000401a 
+ 00028359  0x00007928 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028360  0x00007929 rtn  0x00000005 
+ 00028361  0x0000792a arg  0x00000001 , 0x00000008 
+ 00028362  0x0000792b call  0x00006ea9 
+ 00028363  0x0000792c isolate0  0x00000000 , 0x00000002 
+ 00028364  0x0000792d branch  0x00006ece , 0x00000001 
+ 00028365  0x0000792e lshift4  0x00000008 , 0x00000008 
+ 00028366  0x00007930 ifetch  0x00000001 , 0x00000005 
+ 00028367  0x00007931 iand  0x00000030 , 0x0000003f 
+ 00028368  0x00007932 ior  0x00000008 , 0x0000003f 
+ 00028369  0x00007933 istore  0x00000001 , 0x00000005 
+ 00028370  0x00007934 rtn 
+ 00028371  0x0000793a bpatch  0x000000d8 , 0x0000401b 
+ 00028372  0x0000793b sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028373  0x0000793c rtn  0x00000005 
+ 00028374  0x0000793d call  0x00006ea9 
+ 00028375  0x0000793e ifetch  0x00000001 , 0x00000005 
+ 00028376  0x0000793f iand  0x00000030 , 0x0000003f 
+ 00028377  0x00007940 istore  0x00000001 , 0x00000005 
+ 00028378  0x00007941 rtn 
+ 00028379  0x00007944 call  0x00006ed3 
+ 00028380  0x00007945 branch  0x00006ee0 
+ 00028381  0x00007949 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028382  0x0000794a rtn  0x00000005 
+ 00028383  0x0000794b ncall  0x00006eb6 , 0x0000002b 
+ 00028384  0x0000794d call  0x00006f14 
+ 00028385  0x0000794e setarg  0x00000000 
+ 00028386  0x0000794f isolate1  0x00000007 , 0x00000002 
+ 00028387  0x00007950 nsetflag  0x00000001 , 0x00000006 , 0x0000003f 
+ 00028388  0x00007951 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00028389  0x00007952 branch  0x00006f0d 
+ 00028390  0x00007956 bpatch  0x000000d9 , 0x0000401b 
+ 00028391  0x00007957 arg  0x0000811c , 0x00000005 
+ 00028392  0x00007958 and  0x00000002 , 0x00000007 , 0x00000007 
+ 00028393  0x00007959 rshift3  0x00000002 , 0x0000003f 
+ 00028394  0x0000795a and_into  0x00000003 , 0x0000003f 
+ 00028395  0x0000795b iadd  0x00000005 , 0x00000005 
+ 00028396  0x0000795c ifetch  0x00000001 , 0x00000005 
+ 00028397  0x0000795d isolate1  0x00000007 , 0x00000002 
+ 00028398  0x0000795e branch  0x00006ef1 , 0x00000001 
+ 00028399  0x0000795f qisolate0  0x0000003f 
+ 00028400  0x00007960 rtn 
+ 00028401  0x00007962 qisolate1  0x0000003f 
+ 00028402  0x00007963 rtn 
+ 00028403  0x00007967 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028404  0x00007968 rtn  0x00000005 
+ 00028405  0x00007969 isolate1  0x00000007 , 0x0000003e 
+ 00028406  0x0000796a branch  0x00006efa 
+ 00028407  0x0000796e sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028408  0x0000796f rtn  0x00000005 
+ 00028409  0x00007970 isolate0  0x00000007 , 0x0000003e 
+ 00028410  0x00007974 setarg  0x00000000 
+ 00028411  0x00007975 nsetflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00028412  0x00007976 ixor  0x00000002 , 0x00000002 
+ 00028413  0x0000797a call  0x00006f14 
+ 00028414  0x0000797b setarg  0x0000003f 
+ 00028415  0x0000797c isolate1  0x00000007 , 0x00000002 
+ 00028416  0x0000797d setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00028417  0x0000797e branch  0x00006f0d 
+ 00028418  0x00007982 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028419  0x00007983 branch  0x00007dc4 , 0x00000005 
+ 00028420  0x00007984 call  0x00006f14 
+ 00028421  0x00007985 ifetch  0x00000001 , 0x00000005 
+ 00028422  0x00007986 bbit1  0x00000000 , 0x00006f09 
+ 00028423  0x00007987 isolate0  0x00000007 , 0x00000002 
+ 00028424  0x00007988 rtn 
+ 00028425  0x0000798a isolate1  0x00000007 , 0x00000002 
+ 00028426  0x0000798b rtn 
+ 00028427  0x0000798e call  0x00006f14 
+ 00028428  0x0000798f setarg  0x000000c0 
+ 00028429  0x00007991 istore  0x00000001 , 0x00000005 
+ 00028430  0x00007992 rtn 
+ 00028431  0x00007995 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028432  0x00007996 rtn  0x00000005 
+ 00028433  0x00007997 call  0x00006f14 
+ 00028434  0x00007998 setarg  0x00000000 
+ 00028435  0x00007999 branch  0x00006f0d 
+ 00028436  0x0000799c and  0x00000002 , 0x0000003f , 0x0000003f 
+ 00028437  0x0000799d sub  0x0000003f , 0x0000000f , 0x0000003e 
+ 00028438  0x0000799e nbranch  0x00006f1a , 0x00000002 
+ 00028439  0x0000799f arg  0x00008070 , 0x00000005 
+ 00028440  0x000079a1 iadd  0x00000005 , 0x00000005 
+ 00028441  0x000079a2 rtn 
+ 00028442  0x000079a4 arg  0x000080d4 , 0x00000005 
+ 00028443  0x000079a5 increase  0xfffffff0 , 0x0000003f 
+ 00028444  0x000079a6 branch  0x00006f18 
+ 00028445  0x000079aa and  0x0000003f , 0x000000ff , 0x00000002 
+ 00028446  0x000079ab rshift8  0x0000003f , 0x0000003f 
+ 00028447  0x000079ac branch  0x00006f21 
+ 00028448  0x000079b0 rtnbit0  0x00000007 
+ 00028449  0x000079b2 and_into  0x0000003f , 0x0000003f 
+ 00028450  0x000079b3 sub  0x0000003f , 0x0000000f , 0x0000003e 
+ 00028451  0x000079b4 nbranch  0x00006f28 , 0x00000002 
+ 00028452  0x000079b5 arg  0x00008070 , 0x00000005 
+ 00028453  0x000079b7 iadd  0x00000005 , 0x00000005 
+ 00028454  0x000079b8 istoret  0x00000001 , 0x00000005 
+ 00028455  0x000079b9 rtn 
+ 00028456  0x000079bb arg  0x000080d4 , 0x00000005 
+ 00028457  0x000079bc increase  0xfffffff0 , 0x0000003f 
+ 00028458  0x000079bd branch  0x00006f25 
+ 00028459  0x000079c2 and_into  0x0000003f , 0x00000002 
+ 00028460  0x000079c3 sub  0x00000002 , 0x0000000f , 0x0000003e 
+ 00028461  0x000079c4 nbranch  0x00006f32 , 0x00000002 
+ 00028462  0x000079c5 setarg  0x00008070 
+ 00028463  0x000079c7 iadd  0x00000002 , 0x00000006 
+ 00028464  0x000079c8 ifetch  0x00000001 , 0x00000006 
+ 00028465  0x000079c9 rtn 
+ 00028466  0x000079cb setarg  0x000080d4 
+ 00028467  0x000079cc increase  0xfffffff0 , 0x00000002 
+ 00028468  0x000079cd branch  0x00006f2f 
+ 00028469  0x000079d2 arg  0x00000010 , 0x00000039 
+ 00028470  0x000079d3 arg  0x00008070 , 0x00000006 
+ 00028471  0x000079d5 copy  0x00000006 , 0x00000005 
+ 00028472  0x000079d6 ifetch  0x00000001 , 0x00000006 
+ 00028473  0x000079d7 beq  0x0000001f , 0x00006f48 
+ 00028474  0x000079d8 beq  0x00000020 , 0x00006f48 
+ 00028475  0x000079d9 beq  0x00000021 , 0x00006f48 
+ 00028476  0x000079da beq  0x00000022 , 0x00006f48 
+ 00028477  0x000079db beq  0x00000023 , 0x00006f48 
+ 00028478  0x000079dc beq  0x0000002c , 0x00006f48 
+ 00028479  0x000079dd beq  0x0000002d , 0x00006f48 
+ 00028480  0x000079de beq  0x00000000 , 0x00006f48 
+ 00028481  0x000079e0 loop  0x00006f37 
+ 00028482  0x000079e1 arg  0x000080dc , 0x0000003f 
+ 00028483  0x000079e2 isub  0x00000006 , 0x0000003e 
+ 00028484  0x000079e3 rtn  0x00000005 
+ 00028485  0x000079e5 arg  0x00000008 , 0x00000039 
+ 00028486  0x000079e6 arg  0x000080d4 , 0x00000006 
+ 00028487  0x000079e7 branch  0x00006f37 
+ 00028488  0x000079eb setarg  0x00000040 
+ 00028489  0x000079ec istore  0x00000001 , 0x00000005 
+ 00028490  0x000079ed branch  0x00006f41 
+ 00028491  0x000079ef setarg  0x00000080 
+ 00028492  0x000079f0 istore  0x00000001 , 0x00000005 
+ 00028493  0x000079f1 branch  0x00006f41 
+ 00028494  0x000079f6 bpatch  0x000000da , 0x0000401b 
+ 00028495  0x000079f7 rtn  0x0000002b 
+ 00028496  0x000079f8 jam  0x00000077 , 0x00008a07 
+ 00028497  0x000079f9 jam  0x000000c9 , 0x00008a08 
+ 00028498  0x000079fa jam  0x00000001 , 0x00008a0b 
+ 00028499  0x000079fb fetch  0x00000001 , 0x00004409 
+ 00028500  0x000079fc store  0x00000001 , 0x000080cd 
+ 00028501  0x000079fd call  0x00006f97 
+ 00028502  0x000079fe jam  0x000000c1 , 0x00008a08 
+ 00028503  0x00007a00 arg  0x00000007 , 0x00000039 
+ 00028504  0x00007a01 arg  0x00004412 , 0x00000011 
+ 00028505  0x00007a02 jam  0x00000005 , 0x00008a0a 
+ 00028506  0x00007a04 fetch  0x00000001 , 0x00008a0c 
+ 00028507  0x00007a05 istore  0x00000001 , 0x00000011 
+ 00028508  0x00007a06 increase  0x00000001 , 0x00000011 
+ 00028509  0x00007a07 fetch  0x00000001 , 0x00008a0a 
+ 00028510  0x00007a08 increase  0x00000020 , 0x0000003f 
+ 00028511  0x00007a09 store  0x00000001 , 0x00008a0a 
+ 00028512  0x00007a0a loop  0x00006f5a 
+ 00028513  0x00007a0b jam  0x00000000 , 0x00008a07 
+ 00028514  0x00007a0c rtn 
+ 00028515  0x00007a0f fetch  0x00000001 , 0x000080cc 
+ 00028516  0x00007a10 set1  0x00000001 , 0x0000003f 
+ 00028517  0x00007a11 store  0x00000001 , 0x000080cc 
+ 00028518  0x00007a12 arg  0x00000007 , 0x00000039 
+ 00028519  0x00007a13 arg  0x00004412 , 0x00000011 
+ 00028520  0x00007a14 jam  0x00000015 , 0x00008a0a 
+ 00028521  0x00007a16 ifetch  0x00000001 , 0x00000011 
+ 00028522  0x00007a17 store  0x00000001 , 0x00008a09 
+ 00028523  0x00007a18 increase  0x00000001 , 0x00000011 
+ 00028524  0x00007a19 fetch  0x00000001 , 0x00008a0a 
+ 00028525  0x00007a1a increase  0x00000020 , 0x0000003f 
+ 00028526  0x00007a1b store  0x00000001 , 0x00008a0a 
+ 00028527  0x00007a1c loop  0x00006f69 
+ 00028528  0x00007a1d fetch  0x00000001 , 0x000080cc 
+ 00028529  0x00007a1e set0  0x00000001 , 0x0000003f 
+ 00028530  0x00007a1f store  0x00000001 , 0x000080cc 
+ 00028531  0x00007a20 rtn 
+ 00028532  0x00007a25 bpatch  0x000000db , 0x0000401b 
+ 00028533  0x00007a26 fetch  0x00000008 , 0x000001fd 
+ 00028534  0x00007a27 branch  0x00006f79 , 0x00000034 
+ 00028535  0x00007a28 store  0x00000008 , 0x000043fd 
+ 00028536  0x00007a29 rtn 
+ 00028537  0x00007a2c setarg  0x00000bbe 
+ 00028538  0x00007a2d store  0x00000002 , 0x000043fd 
+ 00028539  0x00007a2e setarg  0x000003f0 
+ 00028540  0x00007a2f store  0x00000002 , 0x00004401 
+ 00028541  0x00007a30 setarg  0x0000027e 
+ 00028542  0x00007a31 store  0x00000002 , 0x000043ff 
+ 00028543  0x00007a32 setarg  0x000003c4 
+ 00028544  0x00007a33 store  0x00000002 , 0x00004403 
+ 00028545  0x00007a34 rtn 
+ 00028546  0x00007a37 bpatch  0x000000dc , 0x0000401b 
+ 00028547  0x00007a38 call  0x00006f63 
+ 00028548  0x00007a39 fetch  0x00000001 , 0x00008a09 
+ 00028549  0x00007a3a set0  0x00000007 , 0x0000003f 
+ 00028550  0x00007a3b store  0x00000001 , 0x00008a09 
+ 00028551  0x00007a3c jam  0x00000077 , 0x00008a07 
+ 00028552  0x00007a3d jam  0x000000c1 , 0x00008a08 
+ 00028553  0x00007a3e jam  0x00000001 , 0x00008a0b 
+ 00028554  0x00007a3f call  0x00006f90 
+ 00028555  0x00007a40 fetch  0x00000001 , 0x00004409 
+ 00028556  0x00007a41 store  0x00000001 , 0x000080cd 
+ 00028557  0x00007a42 call  0x00006f97 
+ 00028558  0x00007a43 jam  0x00000000 , 0x000080cd 
+ 00028559  0x00007a44 branch  0x00006fa1 
+ 00028560  0x00007a47 fetch  0x00000001 , 0x00004408 
+ 00028561  0x00007a48 lshift4  0x0000003f , 0x0000003f 
+ 00028562  0x00007a49 fetcht  0x00000001 , 0x00008a0b 
+ 00028563  0x00007a4a and_into  0x0000000f , 0x00000002 
+ 00028564  0x00007a4b ior  0x00000002 , 0x00000002 
+ 00028565  0x00007a4c storet  0x00000001 , 0x00008a0b 
+ 00028566  0x00007a4d rtn 
+ 00028567  0x00007a50 jam  0x00000003 , 0x000080cc 
+ 00028568  0x00007a52 fetch  0x00000001 , 0x00008129 
+ 00028569  0x00007a53 bbit0  0x00000005 , 0x00006f98 
+ 00028570  0x00007a54 fetcht  0x00000002 , 0x00008164 
+ 00028571  0x00007a55 storet  0x00000002 , 0x0000440a 
+ 00028572  0x00007a56 jam  0x00000006 , 0x000080cc 
+ 00028573  0x00007a58 fetch  0x00000001 , 0x00008129 
+ 00028574  0x00007a59 bbit1  0x00000005 , 0x00006f9d 
+ 00028575  0x00007a5a jam  0x00000000 , 0x000080cc 
+ 00028576  0x00007a5b rtn 
+ 00028577  0x00007a5e fetch  0x00000001 , 0x00004411 
+ 00028578  0x00007a5f rtn  0x00000034 
+ 00028579  0x00007a60 fetch  0x00000001 , 0x00008a09 
+ 00028580  0x00007a61 set1  0x00000007 , 0x0000003f 
+ 00028581  0x00007a62 store  0x00000001 , 0x00008a09 
+ 00028582  0x00007a63 fetch  0x00000001 , 0x00004409 
+ 00028583  0x00007a64 store  0x00000001 , 0x000080cd 
+ 00028584  0x00007a65 fetch  0x00000002 , 0x0000440d 
+ 00028585  0x00007a66 store  0x00000002 , 0x000080ce 
+ 00028586  0x00007a67 fetch  0x00000002 , 0x0000440f 
+ 00028587  0x00007a68 store  0x00000002 , 0x000080d0 
+ 00028588  0x00007a69 jam  0x0000000b , 0x000080cc 
+ 00028589  0x00007a6a nop  0x000003e8 
+ 00028590  0x00007a6b jam  0x00000003 , 0x000080cc 
+ 00028591  0x00007a6c rtn 
+ 00028592  0x00007a6f bpatch  0x000000dd , 0x0000401b 
+ 00028593  0x00007a70 fetch  0x00000001 , 0x00004407 
+ 00028594  0x00007a71 beq  0x00000001 , 0x00006fb5 
+ 00028595  0x00007a72 beq  0x00000002 , 0x00006fbb 
+ 00028596  0x00007a73 rtn 
+ 00028597  0x00007a76 setarg  0x000003e8 
+ 00028598  0x00007a77 store  0x00000002 , 0x00004405 
+ 00028599  0x00007a78 fetcht  0x00000002 , 0x00004403 
+ 00028600  0x00007a79 fetch  0x00000002 , 0x000043ff 
+ 00028601  0x00007a7a arg  0x000007d0 , 0x00000013 
+ 00028602  0x00007a7b branch  0x00006fc0 
+ 00028603  0x00007a7e setarg  0x000007d0 
+ 00028604  0x00007a7f store  0x00000002 , 0x00004405 
+ 00028605  0x00007a80 fetcht  0x00000002 , 0x000043fd 
+ 00028606  0x00007a81 fetch  0x00000002 , 0x00004401 
+ 00028607  0x00007a82 arg  0x000003e8 , 0x00000013 
+ 00028608  0x00007a84 isub  0x00000002 , 0x00000011 
+ 00028609  0x00007a85 fetch  0x00000002 , 0x0000440a 
+ 00028610  0x00007a86 isub  0x00000002 , 0x0000003f 
+ 00028611  0x00007a87 nbranch  0x00006fcd , 0x00000002 
+ 00028612  0x00007a88 fetcht  0x00000002 , 0x00004405 
+ 00028613  0x00007a89 imul32  0x00000002 , 0x00000012 
+ 00028614  0x00007a8a copy  0x00000013 , 0x0000003f 
+ 00028615  0x00007a8b imul32  0x00000011 , 0x0000003f 
+ 00028616  0x00007a8c iadd  0x00000012 , 0x0000003f 
+ 00028617  0x00007a8e idiv  0x00000011 
+ 00028618  0x00007a8f call  0x00007d62 
+ 00028619  0x00007a90 quotient  0x0000003f 
+ 00028620  0x00007a91 rtn 
+ 00028621  0x00007a94 copy  0x00000002 , 0x0000003f 
+ 00028622  0x00007a95 fetcht  0x00000002 , 0x0000440a 
+ 00028623  0x00007a96 isub  0x00000002 , 0x0000003f 
+ 00028624  0x00007a97 fetcht  0x00000002 , 0x00004405 
+ 00028625  0x00007a98 imul32  0x00000002 , 0x00000012 
+ 00028626  0x00007a99 copy  0x00000013 , 0x0000003f 
+ 00028627  0x00007a9a imul32  0x00000011 , 0x0000003f 
+ 00028628  0x00007a9b isub  0x00000012 , 0x0000003f 
+ 00028629  0x00007a9c nbranch  0x00007dca , 0x00000002 
+ 00028630  0x00007a9d branch  0x00006fc9 
+ 00028631  0x00007aa2 ifetch  0x00000008 , 0x00000011 
+ 00028632  0x00007aa3 store  0x00000008 , 0x00000670 
+ 00028633  0x00007aa4 fetch  0x00000002 , 0x00000670 
+ 00028634  0x00007aa5 fetcht  0x00000002 , 0x00000672 
+ 00028635  0x00007aa6 isub  0x00000002 , 0x00000011 
+ 00028636  0x00007aa7 fetch  0x00000002 , 0x00000676 
+ 00028637  0x00007aa8 isub  0x00000002 , 0x00000012 
+ 00028638  0x00007aa9 fetcht  0x00000002 , 0x00000674 
+ 00028639  0x00007aaa isub  0x00000002 , 0x0000003e 
+ 00028640  0x00007aab ncall  0x00006fe7 , 0x00000002 
+ 00028641  0x00007aac mul32  0x00000012 , 0x00000064 , 0x0000003f 
+ 00028642  0x00007aad idiv  0x00000011 
+ 00028643  0x00007aae call  0x00007d62 
+ 00028644  0x00007aaf quotient  0x0000003f 
+ 00028645  0x00007ab0 call  0x00006fef , 0x00000034 
+ 00028646  0x00007ab1 rtn 
+ 00028647  0x00007ab4 fetch  0x00000001 , 0x0000440c 
+ 00028648  0x00007ab5 set1  0x00000000 , 0x0000003f 
+ 00028649  0x00007ab6 store  0x00000001 , 0x0000440c 
+ 00028650  0x00007ab7 rtn 
+ 00028651  0x00007aba fetch  0x00000001 , 0x0000440c 
+ 00028652  0x00007abb set0  0x00000000 , 0x0000003f 
+ 00028653  0x00007abc store  0x00000001 , 0x0000440c 
+ 00028654  0x00007abd rtn 
+ 00028655  0x00007ac0 fetcht  0x00000001 , 0x0000440c 
+ 00028656  0x00007ac1 set1  0x00000001 , 0x00000002 
+ 00028657  0x00007ac2 storet  0x00000001 , 0x0000440c 
+ 00028658  0x00007ac3 rtn 
+ 00028659  0x00007ac6 fetcht  0x00000001 , 0x0000440c 
+ 00028660  0x00007ac7 set0  0x00000001 , 0x00000002 
+ 00028661  0x00007ac8 storet  0x00000001 , 0x0000440c 
+ 00028662  0x00007ac9 rtn 
+ 00028663  0x00007acf fetch  0x00000002 , 0x0000442c 
+ 00028664  0x00007ad0 ifetch  0x00000001 , 0x0000003f 
+ 00028665  0x00007ad2 rtn  0x00000034 
+ 00028666  0x00007ad3 copy  0x0000003f , 0x00000039 
+ 00028667  0x00007ad5 fetch  0x00000002 , 0x0000442c 
+ 00028668  0x00007ad6 increase  0x00000003 , 0x0000003f 
+ 00028669  0x00007ad7 copy  0x0000003f , 0x00000011 
+ 00028670  0x00007ad9 ifetcht  0x00000001 , 0x00000011 
+ 00028671  0x00007ada call  0x00006edd 
+ 00028672  0x00007adb increase  0x00000001 , 0x00000011 
+ 00028673  0x00007adc loop  0x00006ffe 
+ 00028674  0x00007ade rtn 
+ 00028675  0x00007ae1 fetch  0x00000002 , 0x0000442c 
+ 00028676  0x00007ae2 increase  0x00000003 , 0x0000003f 
+ 00028677  0x00007ae3 copy  0x0000003f , 0x00000011 
+ 00028678  0x00007ae5 force  0x00000000 , 0x00000012 
+ 00028679  0x00007ae6 setarg  0x00000000 
+ 00028680  0x00007ae7 store  0x00000002 , 0x000006f1 
+ 00028681  0x00007ae9 ifetcht  0x00000001 , 0x00000011 
+ 00028682  0x00007aea call  0x00006ee6 
+ 00028683  0x00007aeb bpatch  0x000000de , 0x0000401b 
+ 00028684  0x00007aec fetch  0x00000002 , 0x000006f1 
+ 00028685  0x00007aed copy  0x00000012 , 0x00000007 
+ 00028686  0x00007aee qsetflag  0x00000001 , 0x0000003f 
+ 00028687  0x00007aef store  0x00000002 , 0x000006f1 
+ 00028688  0x00007af0 increase  0x00000001 , 0x00000011 
+ 00028689  0x00007af1 increase  0x00000001 , 0x00000012 
+ 00028690  0x00007af2 fetch  0x00000002 , 0x0000442c 
+ 00028691  0x00007af3 ifetch  0x00000001 , 0x0000003f 
+ 00028692  0x00007af5 ixor  0x00000012 , 0x0000003e 
+ 00028693  0x00007af6 nbranch  0x00007009 , 0x00000005 
+ 00028694  0x00007af7 fetch  0x00000002 , 0x000006f1 
+ 00028695  0x00007af8 fetcht  0x00000002 , 0x0000442e 
+ 00028696  0x00007af9 ixor  0x00000002 , 0x0000003e 
+ 00028697  0x00007afa rtn  0x00000005 
+ 00028698  0x00007afb branch  0x00007dba 
+ 00028699  0x00007afe fetch  0x00000002 , 0x0000442c 
+ 00028700  0x00007aff ifetch  0x00000001 , 0x0000003f 
+ 00028701  0x00007b01 rtn  0x00000034 
+ 00028702  0x00007b02 copy  0x0000003f , 0x00000039 
+ 00028703  0x00007b03 fetch  0x00000002 , 0x0000442c 
+ 00028704  0x00007b04 increase  0x00000003 , 0x0000003f 
+ 00028705  0x00007b05 copy  0x0000003f , 0x00000011 
+ 00028706  0x00007b07 ifetcht  0x00000001 , 0x00000011 
+ 00028707  0x00007b08 call  0x00006eb2 
+ 00028708  0x00007b09 increase  0x00000001 , 0x00000011 
+ 00028709  0x00007b0a loop  0x00007022 
+ 00028710  0x00007b0c rtn 
+ 00028711  0x00007b0f arg  0x00000009 , 0x00000007 
+ 00028712  0x00007b10 call  0x00007cef 
+ 00028713  0x00007b11 nrtn  0x00000034 
+ 00028714  0x00007b12 setarg  0x00000020 
+ 00028715  0x00007b13 arg  0x00000009 , 0x00000007 
+ 00028716  0x00007b14 call  0x00007ce1 
+ 00028717  0x00007b15 disable  0x00000028 
+ 00028718  0x00007b16 call  0x0000701b 
+ 00028719  0x00007b17 bpatch  0x000000df , 0x0000401b 
+ 00028720  0x00007b18 fetch  0x00000002 , 0x0000442c 
+ 00028721  0x00007b19 ifetch  0x00000001 , 0x0000003f 
+ 00028722  0x00007b1b rtn  0x00000034 
+ 00028723  0x00007b1c call  0x00007003 
+ 00028724  0x00007b1d nbranch  0x000077a5 , 0x00000028 
+ 00028725  0x00007b1e call  0x000077a3 
+ 00028726  0x00007b1f disable  0x00000028 
+ 00028727  0x00007b20 fetch  0x00000002 , 0x000006f1 
+ 00028728  0x00007b21 store  0x00000002 , 0x000006f8 
+ 00028729  0x00007b22 jam  0x00000000 , 0x000006fa 
+ 00028730  0x00007b23 force  0x00000000 , 0x00000007 
+ 00028731  0x00007b25 fetch  0x00000002 , 0x0000442e 
+ 00028732  0x00007b26 rshift  0x0000003f , 0x00000002 
+ 00028733  0x00007b27 storet  0x00000002 , 0x0000442e 
+ 00028734  0x00007b28 and  0x0000003f , 0x00000001 , 0x0000003f 
+ 00028735  0x00007b29 fetcht  0x00000002 , 0x000006f8 
+ 00028736  0x00007b2a and  0x00000002 , 0x00000001 , 0x00000011 
+ 00028737  0x00007b2b rshift  0x00000002 , 0x00000002 
+ 00028738  0x00007b2c storet  0x00000002 , 0x000006f8 
+ 00028739  0x00007b2d ixor  0x00000011 , 0x0000003e 
+ 00028740  0x00007b2e ncall  0x00007050 , 0x00000005 
+ 00028741  0x00007b2f fetch  0x00000002 , 0x0000442c 
+ 00028742  0x00007b30 ifetch  0x00000001 , 0x0000003f 
+ 00028743  0x00007b32 fetcht  0x00000001 , 0x000006fa 
+ 00028744  0x00007b33 increase  0x00000001 , 0x00000002 
+ 00028745  0x00007b34 storet  0x00000001 , 0x000006fa 
+ 00028746  0x00007b35 copy  0x00000002 , 0x00000007 
+ 00028747  0x00007b36 ixor  0x00000007 , 0x0000003e 
+ 00028748  0x00007b37 nbranch  0x0000703b , 0x00000005 
+ 00028749  0x00007b38 fetch  0x00000002 , 0x000006f1 
+ 00028750  0x00007b39 store  0x00000002 , 0x0000442e 
+ 00028751  0x00007b3a rtn 
+ 00028752  0x00007b3c bpatch  0x000000e0 , 0x0000401c 
+ 00028753  0x00007b3d fetch  0x00000002 , 0x0000442c 
+ 00028754  0x00007b3e increase  0x00000001 , 0x0000003f 
+ 00028755  0x00007b3f ifetch  0x00000002 , 0x0000003f 
+ 00028756  0x00007b40 branch  0x00007d79 
+ 00028757  0x00007b47 fetch  0x00000001 , 0x00008042 
+ 00028758  0x00007b48 ior  0x00000011 , 0x0000003f 
+ 00028759  0x00007b49 store  0x00000001 , 0x00008042 
+ 00028760  0x00007b4a fetch  0x00000002 , 0x00008050 
+ 00028761  0x00007b4b set0  0x0000000d , 0x0000003f 
+ 00028762  0x00007b4c store  0x00000002 , 0x00008050 
+ 00028763  0x00007b4e nop  0x00000064 
+ 00028764  0x00007b4f rtn 
+ 00028765  0x00007b52 fetch  0x00000001 , 0x00008042 
+ 00028766  0x00007b53 bbit1  0x00000006 , 0x00007062 
+ 00028767  0x00007b54 bbit1  0x00000007 , 0x00007064 
+ 00028768  0x00007b56 setarg  0x00b71b00 
+ 00028769  0x00007b57 rtn 
+ 00028770  0x00007b59 setarg  0x016e3600 
+ 00028771  0x00007b5a rtn 
+ 00028772  0x00007b5c setarg  0x000080e8 
+ 00028773  0x00007b5d rtn 
+ 00028774  0x00007b61 fetcht  0x00000003 , 0x00000672 
+ 00028775  0x00007b62 call  0x0000705d 
+ 00028776  0x00007b63 idiv  0x00000002 
+ 00028777  0x00007b64 call  0x00007d62 
+ 00028778  0x00007b65 quotient  0x00000002 
+ 00028779  0x00007b66 fetch  0x00000001 , 0x00000675 
+ 00028780  0x00007b67 imul32  0x00000002 , 0x0000003f 
+ 00028781  0x00007b68 div  0x0000003f , 0x00000064 
+ 00028782  0x00007b69 call  0x00007d62 
+ 00028783  0x00007b6a quotient  0x00000011 
+ 00028784  0x00007b6b copy  0x00000002 , 0x0000003f 
+ 00028785  0x00007b6c isub  0x00000011 , 0x00000012 
+ 00028786  0x00007b6e fetch  0x00000001 , 0x00000671 
+ 00028787  0x00007b6f call  0x0000707a 
+ 00028788  0x00007b70 fetch  0x00000001 , 0x00000670 
+ 00028789  0x00007b71 fetcht  0x00000001 , 0x00000671 
+ 00028790  0x00007b72 and_into  0x0000000f , 0x00000002 
+ 00028791  0x00007b73 lshift8  0x00000002 , 0x00000002 
+ 00028792  0x00007b74 ior  0x00000002 , 0x0000003f 
+ 00028793  0x00007b75 branch  0x000070ba 
+ 00028794  0x00007b78 iforce  0x00000007 
+ 00028795  0x00007b79 call  0x00007088 
+ 00028796  0x00007b7a branch  0x0000707d 
+ 00028797  0x00007b7d fetch  0x00000001 , 0x000080be 
+ 00028798  0x00007b7e qset1  0x0000003f 
+ 00028799  0x00007b7f store  0x00000001 , 0x000080be 
+ 00028800  0x00007b80 fetcht  0x00000001 , 0x00008042 
+ 00028801  0x00007b81 isolate1  0x00000007 , 0x00000002 
+ 00028802  0x00007b82 call  0x00007086 , 0x00000001 
+ 00028803  0x00007b83 qset0  0x0000003f 
+ 00028804  0x00007b84 store  0x00000001 , 0x000080be 
+ 00028805  0x00007b85 rtn 
+ 00028806  0x00007b89 nop  0x000001e0 
+ 00028807  0x00007b8a rtn 
+ 00028808  0x00007b8d and_into  0x0000000f , 0x0000003f 
+ 00028809  0x00007b8e arg  0x0000809c , 0x00000005 
+ 00028810  0x00007b8f mul32  0x0000003f , 0x00000004 , 0x0000003f 
+ 00028811  0x00007b90 iadd  0x00000005 , 0x00000005 
+ 00028812  0x00007b91 copy  0x00000011 , 0x0000003f 
+ 00028813  0x00007b92 istore  0x00000002 , 0x00000005 
+ 00028814  0x00007b93 copy  0x00000012 , 0x0000003f 
+ 00028815  0x00007b94 istore  0x00000002 , 0x00000005 
+ 00028816  0x00007b95 rtn 
+ 00028817  0x00007b9b rshift8  0x00000012 , 0x00000007 
+ 00028818  0x00007b9c call  0x000070af 
+ 00028819  0x00007b9d rshift8  0x00000012 , 0x00000007 
+ 00028820  0x00007b9e call  0x000070a9 
+ 00028821  0x00007b9f rshift8  0x00000011 , 0x00000007 
+ 00028822  0x00007ba0 enable  0x00000001 
+ 00028823  0x00007ba1 call  0x000070aa 
+ 00028824  0x00007ba3 deposit  0x00000011 
+ 00028825  0x00007ba4 call  0x000070b5 
+ 00028826  0x00007ba5 deposit  0x00000012 
+ 00028827  0x00007ba6 branch  0x000070ba 
+ 00028828  0x00007ba9 deposit  0x00000011 
+ 00028829  0x00007baa call  0x000070bd 
+ 00028830  0x00007bab deposit  0x00000012 
+ 00028831  0x00007bac call  0x000070bd 
+ 00028832  0x00007bae rshift8  0x00000011 , 0x00000007 
+ 00028833  0x00007baf disable  0x00000001 
+ 00028834  0x00007bb0 call  0x000070aa 
+ 00028835  0x00007bb1 rshift8  0x00000012 , 0x00000007 
+ 00028836  0x00007bb2 disable  0x00000001 
+ 00028837  0x00007bb3 call  0x000070b0 
+ 00028838  0x00007bb4 rshift8  0x00000012 , 0x00000007 
+ 00028839  0x00007bb5 disable  0x00000001 
+ 00028840  0x00007bb6 branch  0x000070aa 
+ 00028841  0x00007bba isolate1  0x00000007 , 0x00000007 
+ 00028842  0x00007bbc and  0x00000007 , 0x0000000f , 0x00000007 
+ 00028843  0x00007bbd fetch  0x00000001 , 0x000080bc 
+ 00028844  0x00007bbe qsetflag  0x00000001 , 0x0000003f 
+ 00028845  0x00007bbf store  0x00000001 , 0x000080bc 
+ 00028846  0x00007bc0 rtn 
+ 00028847  0x00007bc3 isolate1  0x00000006 , 0x00000007 
+ 00028848  0x00007bc5 and  0x00000007 , 0x0000000f , 0x00000007 
+ 00028849  0x00007bc6 fetch  0x00000001 , 0x0000809b 
+ 00028850  0x00007bc7 qsetflag  0x00000001 , 0x0000003f 
+ 00028851  0x00007bc8 store  0x00000001 , 0x0000809b 
+ 00028852  0x00007bc9 rtn 
+ 00028853  0x00007bcb call  0x000070c5 
+ 00028854  0x00007bcd lshift8  0x0000003f , 0x0000003f 
+ 00028855  0x00007bce add  0x00000007 , 0x00000010 , 0x00000002 
+ 00028856  0x00007bcf ior  0x00000002 , 0x0000003f 
+ 00028857  0x00007bd0 branch  0x00006f1d 
+ 00028858  0x00007bd3 enable  0x00000028 
+ 00028859  0x00007bd4 call  0x000070b5 
+ 00028860  0x00007bd5 branch  0x000070c0 
+ 00028861  0x00007bd8 disable  0x00000028 
+ 00028862  0x00007bd9 call  0x000070c5 
+ 00028863  0x00007bda branch  0x000070c0 
+ 00028864  0x00007bdd and  0x00000007 , 0x0000000f , 0x00000007 
+ 00028865  0x00007bde fetch  0x00000001 , 0x0000809a 
+ 00028866  0x00007bdf qsetflag  0x00000028 , 0x0000003f 
+ 00028867  0x00007be0 store  0x00000001 , 0x0000809a 
+ 00028868  0x00007be1 rtn 
+ 00028869  0x00007be3 rshift8  0x0000003f , 0x00000007 
+ 00028870  0x00007be4 and  0x00000007 , 0x0000000f , 0x00000007 
+ 00028871  0x00007be5 rtn 
+ 00028872  0x00007bea copy  0x0000003f , 0x00000002 
+ 00028873  0x00007beb bpatch  0x000000e1 , 0x0000401c 
+ 00028874  0x00007bec call  0x000070d5 
+ 00028875  0x00007bed setarg  0x00000800 
+ 00028876  0x00007bee isub  0x00000002 , 0x0000003f 
+ 00028877  0x00007bef copy  0x0000003f , 0x00000002 
+ 00028878  0x00007bf0 rshift4  0x00000002 , 0x00000002 
+ 00028879  0x00007bf1 storet  0x00000001 , 0x00008004 
+ 00028880  0x00007bf2 nop  0x00000578 
+ 00028881  0x00007bf3 copy  0x0000003f , 0x00000002 
+ 00028882  0x00007bf4 and_into  0x0000000f , 0x00000002 
+ 00028883  0x00007bf5 storet  0x00000001 , 0x0000800b 
+ 00028884  0x00007bf6 rtn 
+ 00028885  0x00007bfa enable  0x0000002c 
+ 00028886  0x00007bfb branch  0x000070d9 
+ 00028887  0x00007bff bpatch  0x000000e2 , 0x0000401c 
+ 00028888  0x00007c00 disable  0x0000002c 
+ 00028889  0x00007c02 fetch  0x00000001 , 0x00008043 
+ 00028890  0x00007c03 setflag  0x0000002c , 0x00000003 , 0x0000003f 
+ 00028891  0x00007c04 store  0x00000001 , 0x00008043 
+ 00028892  0x00007c05 rtn 
+ 00028893  0x00007c0b arg  0x00000031 , 0x00000002 
+ 00028894  0x00007c0f store  0x00000004 , 0x00008062 
+ 00028895  0x00007c10 store  0x00000002 , 0x00008066 
+ 00028896  0x00007c11 storet  0x00000001 , 0x00008061 
+ 00028897  0x00007c12 rtn 
+ 00028898  0x00007c16 fetch  0x00000002 , 0x0000812c 
+ 00028899  0x00007c17 rtn 
+ 00028900  0x00007c1a fetchr  0x00000003 , 0x00000002 , 0x00008066 
+ 00028901  0x00007c1b fetchr  0x0000000a , 0x00000002 , 0x00008062 
+ 00028902  0x00007c1c fetchr  0x00000010 , 0x00000002 , 0x00008064 
+ 00028903  0x00007c1d rtn 
+ 00028904  0x00007c20 storer  0x00000003 , 0x00000002 , 0x00008066 
+ 00028905  0x00007c21 rtn 
+ 00028906  0x00007c29 call  0x00007dba 
+ 00028907  0x00007c2a arg  0x00000000 , 0x0000002b 
+ 00028908  0x00007c2b call  0x000070e2 
+ 00028909  0x00007c2c beq  0x00000002 , 0x0000712c 
+ 00028910  0x00007c2d sub  0x0000003f , 0x00000004 , 0x0000003e 
+ 00028911  0x00007c2e rtn  0x00000002 
+ 00028912  0x00007c2f call  0x000070e4 
+ 00028913  0x00007c30 ifetcht  0x00000002 , 0x00000003 
+ 00028914  0x00007c31 setarg  0x0000a654 
+ 00028915  0x00007c32 call  0x00007135 
+ 00028916  0x00007c33 nbranch  0x0000711a , 0x00000002 
+ 00028917  0x00007c34 copy  0x00000018 , 0x00000002 
+ 00028918  0x00007c35 setarg  0x00017f8e 
+ 00028919  0x00007c36 call  0x00007135 
+ 00028920  0x00007c37 nbranch  0x0000711a , 0x00000002 
+ 00028921  0x00007c39 copy  0x00000018 , 0x00000002 
+ 00028922  0x00007c3a setarg  0x00002328 
+ 00028923  0x00007c3b call  0x00007135 
+ 00028924  0x00007c3c branch  0x00007111 , 0x00000002 
+ 00028925  0x00007c3d ifetcht  0x00000002 , 0x00000003 
+ 00028926  0x00007c3e setarg  0x00001194 
+ 00028927  0x00007c3f call  0x00007135 
+ 00028928  0x00007c40 branch  0x00007111 , 0x00000002 
+ 00028929  0x00007c41 call  0x000070e2 
+ 00028930  0x00007c42 sub  0x0000003f , 0x00000085 , 0x0000003e 
+ 00028931  0x00007c43 rtn  0x00000002 
+ 00028932  0x00007c44 arg  0x00000020 , 0x00000039 
+ 00028933  0x00007c46 ifetcht  0x00000002 , 0x00000003 
+ 00028934  0x00007c47 setarg  0x00000230 
+ 00028935  0x00007c48 call  0x00007135 
+ 00028936  0x00007c49 branch  0x00007111 , 0x00000002 
+ 00028937  0x00007c4a ifetcht  0x00000002 , 0x00000003 
+ 00028938  0x00007c4b setarg  0x0000069a 
+ 00028939  0x00007c4c call  0x00007135 
+ 00028940  0x00007c4d nbranch  0x00007116 , 0x00000002 
+ 00028941  0x00007c4e copy  0x00000018 , 0x00000002 
+ 00028942  0x00007c4f setarg  0x00000230 
+ 00028943  0x00007c50 call  0x00007135 
+ 00028944  0x00007c51 nbranch  0x00007117 , 0x00000002 
+ 00028945  0x00007c55 copy  0x00000018 , 0x00000002 
+ 00028946  0x00007c56 setarg  0x0000ffff 
+ 00028947  0x00007c57 isub  0x00000002 , 0x0000003e 
+ 00028948  0x00007c58 branch  0x00007131 , 0x00000005 
+ 00028949  0x00007c59 branch  0x000070e8 
+ 00028950  0x00007c5c set1  0x00000020 , 0x0000002b 
+ 00028951  0x00007c5e rshift  0x0000002b , 0x0000002b 
+ 00028952  0x00007c5f loop  0x00007105 
+ 00028953  0x00007c60 branch  0x00007125 
+ 00028954  0x00007c63 call  0x000070e2 
+ 00028955  0x00007c64 sub  0x0000003f , 0x00000007 , 0x0000003e 
+ 00028956  0x00007c65 rtn  0x00000002 
+ 00028957  0x00007c66 ifetcht  0x00000002 , 0x00000003 
+ 00028958  0x00007c67 setarg  0x00002328 
+ 00028959  0x00007c68 call  0x00007135 
+ 00028960  0x00007c69 branch  0x00007111 , 0x00000002 
+ 00028961  0x00007c6a ifetcht  0x00000002 , 0x00000003 
+ 00028962  0x00007c6b setarg  0x000008ca 
+ 00028963  0x00007c6c call  0x00007135 
+ 00028964  0x00007c6d branch  0x00007111 , 0x00000002 
+ 00028965  0x00007c6f ifetcht  0x00000002 , 0x00000003 
+ 00028966  0x00007c70 setarg  0x00000230 
+ 00028967  0x00007c71 call  0x00007135 
+ 00028968  0x00007c72 branch  0x00007111 , 0x00000002 
+ 00028969  0x00007c73 call  0x000070e8 
+ 00028970  0x00007c74 copy  0x00000013 , 0x0000003f 
+ 00028971  0x00007c75 branch  0x00007d79 
+ 00028972  0x00007c78 call  0x000070e4 
+ 00028973  0x00007c79 ifetcht  0x00000002 , 0x00000003 
+ 00028974  0x00007c7a setarg  0x0000ffff 
+ 00028975  0x00007c7b isub  0x00000002 , 0x0000003e 
+ 00028976  0x00007c7c nrtn  0x00000005 
+ 00028977  0x00007c7e call  0x000070e8 
+ 00028978  0x00007c7f call  0x00007dbc 
+ 00028979  0x00007c80 copy  0x00000013 , 0x0000003f 
+ 00028980  0x00007c81 branch  0x00007d79 
+ 00028981  0x00007c89 fetchr  0x00000012 , 0x00000001 , 0x00004435 
+ 00028982  0x00007c93 copy  0x00000002 , 0x00000018 
+ 00028983  0x00007c94 imul32  0x00000012 , 0x00000012 
+ 00028984  0x00007c95 lshift  0x00000002 , 0x00000002 
+ 00028985  0x00007c96 isub  0x00000002 , 0x00000011 
+ 00028986  0x00007c97 ncall  0x0000713e , 0x00000002 
+ 00028987  0x00007c98 mul32  0x00000011 , 0x00000064 , 0x0000003f 
+ 00028988  0x00007c99 isub  0x00000012 , 0x0000003e 
+ 00028989  0x00007c9a rtn 
+ 00028990  0x00007c9d sub  0x00000011 , 0x00000000 , 0x00000011 
+ 00028991  0x00007c9e rtn 
+ 00028992  0x00007caa bpatch  0x000000e3 , 0x0000401c 
+ 00028993  0x00007cab jam  0x00000050 , 0x00000230 
+ 00028994  0x00007cac arg  0x00000231 , 0x00000005 
+ 00028995  0x00007cad arg  0x000042ab , 0x00000006 
+ 00028996  0x00007cae call  0x00007c8f 
+ 00028997  0x00007caf arg  0x0000448f , 0x00000006 
+ 00028998  0x00007cb0 call  0x00007c8d 
+ 00028999  0x00007cb1 arg  0x000005fe , 0x00000006 
+ 00029000  0x00007cb2 call  0x00007c8d 
+ 00029001  0x00007cb3 call  0x000071fb 
+ 00029002  0x00007cb4 arg  0x00000158 , 0x00000006 
+ 00029003  0x00007cb5 call  0x000071f6 
+ 00029004  0x00007cb6 call  0x000071c1 
+ 00029005  0x00007cb8 arg  0x000006d1 , 0x00000005 
+ 00029006  0x00007cb9 call  0x000071f2 
+ 00029007  0x00007cba setarg  0x000f4240 
+ 00029008  0x00007cbb copy  0x0000003f , 0x00000011 
+ 00029009  0x00007cbc fetch  0x00000004 , 0x000006d1 
+ 00029010  0x00007cbd idiv  0x00000011 
+ 00029011  0x00007cbe call  0x00007d62 
+ 00029012  0x00007cbf remainder  0x0000003f 
+ 00029013  0x00007cc0 store  0x00000004 , 0x000005fa 
+ 00029014  0x00007cc2 rtn 
+ 00029015  0x00007cc5 jam  0x00000041 , 0x00000230 
+ 00029016  0x00007cc6 arg  0x00000231 , 0x00000005 
+ 00029017  0x00007cc7 call  0x000071a6 
+ 00029018  0x00007cc8 call  0x000071a1 
+ 00029019  0x00007cc9 fetch  0x00000003 , 0x000042c5 
+ 00029020  0x00007cca istore  0x00000003 , 0x00000005 
+ 00029021  0x00007ccd call  0x00007167 
+ 00029022  0x00007ccf arg  0x00000158 , 0x00000006 
+ 00029023  0x00007cd0 call  0x00007c8f 
+ 00029024  0x00007cd1 arg  0x000042ab , 0x00000006 
+ 00029025  0x00007cd2 call  0x00007c8f 
+ 00029026  0x00007cd3 call  0x000071fb 
+ 00029027  0x00007cd4 arg  0x000006f1 , 0x00000006 
+ 00029028  0x00007cd5 arg  0x000006a1 , 0x00000005 
+ 00029029  0x00007cd6 call  0x00007c8f 
+ 00029030  0x00007cd8 branch  0x000071c1 
+ 00029031  0x00007cdd fetch  0x00000004 , 0x000042ff 
+ 00029032  0x00007cde istore  0x00000004 , 0x00000005 
+ 00029033  0x00007cdf call  0x00007c9b 
+ 00029034  0x00007ce0 branch  0x00007c9a 
+ 00029035  0x00007ce3 bpatch  0x000000e4 , 0x0000401c 
+ 00029036  0x00007ce4 jam  0x00000041 , 0x00000230 
+ 00029037  0x00007ce5 arg  0x00000231 , 0x00000005 
+ 00029038  0x00007ce6 call  0x000071a1 
+ 00029039  0x00007ce7 call  0x000071a6 
+ 00029040  0x00007ce8 fetch  0x00000003 , 0x000042be 
+ 00029041  0x00007ce9 istore  0x00000003 , 0x00000005 
+ 00029042  0x00007cec call  0x00007167 
+ 00029043  0x00007ced arg  0x000042ab , 0x00000006 
+ 00029044  0x00007cee call  0x00007c8f 
+ 00029045  0x00007cef arg  0x00000158 , 0x00000006 
+ 00029046  0x00007cf0 call  0x00007c8f 
+ 00029047  0x00007cf1 call  0x000071fb 
+ 00029048  0x00007cf2 arg  0x000006f1 , 0x00000006 
+ 00029049  0x00007cf3 arg  0x000006a1 , 0x00000005 
+ 00029050  0x00007cf4 call  0x00007c8f 
+ 00029051  0x00007cf6 call  0x000071c1 
+ 00029052  0x00007cf7 arg  0x000006d1 , 0x00000005 
+ 00029053  0x00007cf8 branch  0x000071f2 
+ 00029054  0x00007cfb jam  0x00000020 , 0x00000230 
+ 00029055  0x00007cfc arg  0x0000063e , 0x00000006 
+ 00029056  0x00007cfd arg  0x00000231 , 0x00000005 
+ 00029057  0x00007cfe call  0x00007c8d 
+ 00029058  0x00007cff call  0x000071fb 
+ 00029059  0x00007d00 arg  0x000005e9 , 0x00000006 
+ 00029060  0x00007d01 call  0x000071f6 
+ 00029061  0x00007d02 call  0x000071c1 
+ 00029062  0x00007d03 arg  0x000006a1 , 0x00000005 
+ 00029063  0x00007d04 call  0x00007375 
+ 00029064  0x00007d05 arg  0x00000001 , 0x00000002 
+ 00029065  0x00007d06 call  0x00007190 
+ 00029066  0x00007d07 arg  0x0000428a , 0x00000005 
+ 00029067  0x00007d08 call  0x000071f2 
+ 00029068  0x00007d09 arg  0x00000000 , 0x00000002 
+ 00029069  0x00007d0a call  0x00007190 
+ 00029070  0x00007d0b arg  0x000006f1 , 0x00000005 
+ 00029071  0x00007d0d branch  0x00007375 
+ 00029072  0x00007d11 bpatch  0x000000e5 , 0x0000401c 
+ 00029073  0x00007d12 jam  0x00000035 , 0x00000230 
+ 00029074  0x00007d13 setarg  0x00000100 
+ 00029075  0x00007d14 store  0x00000002 , 0x00000231 
+ 00029076  0x00007d15 call  0x000071a1 
+ 00029077  0x00007d16 call  0x000071a6 
+ 00029078  0x00007d17 arg  0x000042ab , 0x00000006 
+ 00029079  0x00007d18 call  0x00007c8f 
+ 00029080  0x00007d19 arg  0x00000158 , 0x00000006 
+ 00029081  0x00007d1a call  0x00007c8f 
+ 00029082  0x00007d1c setarg  0x00006c65 
+ 00029083  0x00007d1d istore  0x00000002 , 0x00000005 
+ 00029084  0x00007d1e setarg  0x00006274 
+ 00029085  0x00007d1f istore  0x00000002 , 0x00000005 
+ 00029086  0x00007d20 istoret  0x00000001 , 0x00000005 
+ 00029087  0x00007d21 call  0x000071fb 
+ 00029088  0x00007d22 branch  0x000071c1 
+ 00029089  0x00007d25 fetch  0x00000006 , 0x000042db 
+ 00029090  0x00007d26 istore  0x00000006 , 0x00000005 
+ 00029091  0x00007d27 fetch  0x00000001 , 0x000042d2 
+ 00029092  0x00007d28 istore  0x00000001 , 0x00000005 
+ 00029093  0x00007d29 rtn 
+ 00029094  0x00007d2c fetch  0x00000006 , 0x00000178 
+ 00029095  0x00007d2d istore  0x00000006 , 0x00000005 
+ 00029096  0x00007d32 fetch  0x00000001 , 0x000042cb 
+ 00029097  0x00007d33 istore  0x00000001 , 0x00000005 
+ 00029098  0x00007d34 rtn 
+ 00029099  0x00007d37 jam  0x00000041 , 0x00000230 
+ 00029100  0x00007d38 fetch  0x00000001 , 0x000044d0 
+ 00029101  0x00007d39 store  0x00000001 , 0x00000231 
+ 00029102  0x00007d3a arg  0x0000448f , 0x00000006 
+ 00029103  0x00007d3b call  0x00007c8d 
+ 00029104  0x00007d3c arg  0x000005fe , 0x00000006 
+ 00029105  0x00007d3d call  0x00007c8d 
+ 00029106  0x00007d3e call  0x000071fb 
+ 00029107  0x00007d3f arg  0x00000158 , 0x00000006 
+ 00029108  0x00007d40 call  0x000071f6 
+ 00029109  0x00007d41 branch  0x000071c1 
+ 00029110  0x00007d45 jam  0x00000041 , 0x00000230 
+ 00029111  0x00007d46 fetch  0x00000001 , 0x000044d0 
+ 00029112  0x00007d47 store  0x00000001 , 0x00000231 
+ 00029113  0x00007d48 arg  0x000005fe , 0x00000006 
+ 00029114  0x00007d49 call  0x00007c8d 
+ 00029115  0x00007d4a arg  0x0000448f , 0x00000006 
+ 00029116  0x00007d4b call  0x00007c8d 
+ 00029117  0x00007d4c call  0x000071fb 
+ 00029118  0x00007d4d arg  0x000042ab , 0x00000006 
+ 00029119  0x00007d4e call  0x000071f6 
+ 00029120  0x00007d4f branch  0x000071c1 
+ 00029121  0x00007d52 bpatch  0x000000e6 , 0x0000401c 
+ 00029122  0x00007d53 call  0x00007210 
+ 00029123  0x00007d57 fetch  0x00000001 , 0x00000230 
+ 00029124  0x00007d58 copy  0x0000003f , 0x00000002 
+ 00029125  0x00007d5a increase  0x0000000f , 0x0000003f 
+ 00029126  0x00007d5b rshift4  0x0000003f , 0x0000003f 
+ 00029127  0x00007d5c copy  0x0000003f , 0x00000012 
+ 00029128  0x00007d5d branch  0x000071d3 , 0x00000034 
+ 00029129  0x00007d5e and  0x00000002 , 0x0000000f , 0x0000003f 
+ 00029130  0x00007d5f nbranch  0x000071d6 , 0x00000034 
+ 00029131  0x00007d61 arg  0x000006b1 , 0x00000013 
+ 00029132  0x00007d62 arg  0x00000231 , 0x0000003f 
+ 00029133  0x00007d63 increase  0xfffffff0 , 0x0000003f 
+ 00029134  0x00007d66 iadd  0x00000002 , 0x00000011 
+ 00029135  0x00007d67 arg  0x000006e1 , 0x00000005 
+ 00029136  0x00007d68 arg  0x00000004 , 0x00000039 
+ 00029137  0x00007d69 call  0x00007ca9 
+ 00029138  0x00007d6d branch  0x000071e1 
+ 00029139  0x00007d70 arg  0x00000001 , 0x00000012 
+ 00029140  0x00007d71 arg  0x00000000 , 0x00000011 
+ 00029141  0x00007d73 branch  0x000071d7 
+ 00029142  0x00007d78 and  0x00000002 , 0x0000000f , 0x00000011 
+ 00029143  0x00007d7a arg  0x00000231 , 0x0000003f 
+ 00029144  0x00007d7b iadd  0x00000002 , 0x0000003f 
+ 00029145  0x00007d7c isub  0x00000011 , 0x00000006 
+ 00029146  0x00007d7e arg  0x000006d1 , 0x00000005 
+ 00029147  0x00007d7f call  0x00007236 
+ 00029148  0x00007d81 arg  0x000006c1 , 0x00000013 
+ 00029149  0x00007d82 arg  0x000006d1 , 0x00000011 
+ 00029150  0x00007d83 arg  0x000006e1 , 0x00000005 
+ 00029151  0x00007d84 arg  0x00000004 , 0x00000039 
+ 00029152  0x00007d85 call  0x00007ca9 
+ 00029153  0x00007d91 call  0x0000736f 
+ 00029154  0x00007d92 call  0x000072da 
+ 00029155  0x00007d95 arg  0x00000231 , 0x00000006 
+ 00029156  0x00007d98 increase  0xffffffff , 0x00000012 
+ 00029157  0x00007d99 deposit  0x00000012 
+ 00029158  0x00007d9a branch  0x000071ea , 0x00000034 
+ 00029159  0x00007d9b call  0x00007361 
+ 00029160  0x00007d9c call  0x000072d4 
+ 00029161  0x00007d9d branch  0x000071e4 
+ 00029162  0x00007da0 arg  0x000006d1 , 0x00000005 
+ 00029163  0x00007da1 call  0x00007375 
+ 00029164  0x00007da2 arg  0x000006e1 , 0x00000006 
+ 00029165  0x00007da3 call  0x00007361 
+ 00029166  0x00007da4 call  0x000072da 
+ 00029167  0x00007da5 arg  0x000006d1 , 0x00000006 
+ 00029168  0x00007da6 call  0x00007361 
+ 00029169  0x00007da7 branch  0x000072d4 
+ 00029170  0x00007dad copy  0x00000005 , 0x00000011 
+ 00029171  0x00007dae call  0x00007375 
+ 00029172  0x00007db0 arg  0x00000010 , 0x00000039 
+ 00029173  0x00007db1 branch  0x00007cb1 
+ 00029174  0x00007db4 arg  0x000006a1 , 0x00000005 
+ 00029175  0x00007db5 call  0x00007c8f 
+ 00029176  0x00007db7 arg  0x00000010 , 0x00000039 
+ 00029177  0x00007db8 arg  0x000006a1 , 0x00000011 
+ 00029178  0x00007db9 branch  0x00007cb1 
+ 00029179  0x00007dbc fetch  0x00000001 , 0x00000230 
+ 00029180  0x00007dbd copy  0x0000003f , 0x00000039 
+ 00029181  0x00007dbe arg  0x00000231 , 0x00000011 
+ 00029182  0x00007dbf branch  0x00007cb1 
+ 00029183  0x00007dc2 ifetch  0x00000001 , 0x00000011 
+ 00029184  0x00007dc3 lshift  0x0000003f , 0x0000003f 
+ 00029185  0x00007dc4 isolate1  0x00000000 , 0x00000013 
+ 00029186  0x00007dc5 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00029187  0x00007dc6 isolate1  0x00000008 , 0x0000003f 
+ 00029188  0x00007dc7 setflag  0x00000001 , 0x00000000 , 0x00000013 
+ 00029189  0x00007dc8 istore  0x00000001 , 0x00000011 
+ 00029190  0x00007dc9 increase  0xffffffff , 0x00000011 
+ 00029191  0x00007dca loop  0x000071ff 
+ 00029192  0x00007dcb rtn 
+ 00029193  0x00007dce arg  0x000006b1 , 0x00000011 
+ 00029194  0x00007dd0 increase  0x0000000f , 0x00000011 
+ 00029195  0x00007dd1 force  0x00000010 , 0x00000039 
+ 00029196  0x00007dd2 force  0x00000000 , 0x00000013 
+ 00029197  0x00007dd3 branch  0x000071ff 
+ 00029198  0x00007dd6 arg  0x000006c1 , 0x00000011 
+ 00029199  0x00007dd7 branch  0x0000720a 
+ 00029200  0x00007ddb arg  0x000006a1 , 0x00000006 
+ 00029201  0x00007ddc call  0x0000735f 
+ 00029202  0x00007ddf force  0x00000008 , 0x00000038 
+ 00029203  0x00007de0 call  0x00007370 
+ 00029204  0x00007de1 call  0x0000736f 
+ 00029205  0x00007de2 call  0x000072d1 
+ 00029206  0x00007de7 arg  0x000006b1 , 0x00000005 
+ 00029207  0x00007de8 call  0x00007375 
+ 00029208  0x00007dea bpatch  0x000000e7 , 0x0000401c 
+ 00029209  0x00007deb fetch  0x00000001 , 0x000006b1 
+ 00029210  0x00007dec isolate1  0x00000007 , 0x0000003f 
+ 00029211  0x00007ded nbranch  0x00007221 , 0x00000001 
+ 00029212  0x00007dee call  0x00007209 
+ 00029213  0x00007df1 arg  0x000006b1 , 0x00000013 
+ 00029214  0x00007df3 arg  0x000006b1 , 0x00000005 
+ 00029215  0x00007df6 call  0x0000722b 
+ 00029216  0x00007df7 branch  0x00007222 
+ 00029217  0x00007df9 call  0x00007209 
+ 00029218  0x00007dfc arg  0x000006b1 , 0x00000006 
+ 00029219  0x00007dfd arg  0x000006c1 , 0x00000005 
+ 00029220  0x00007dfe call  0x00007c8f 
+ 00029221  0x00007dff fetch  0x00000001 , 0x000006c1 
+ 00029222  0x00007e00 isolate1  0x00000007 , 0x0000003f 
+ 00029223  0x00007e01 nbranch  0x0000720e , 0x00000001 
+ 00029224  0x00007e02 call  0x0000720e 
+ 00029225  0x00007e04 arg  0x000006c1 , 0x00000013 
+ 00029226  0x00007e06 arg  0x000006c1 , 0x00000005 
+ 00029227  0x00007e0d arg  0x00000003 , 0x00000039 
+ 00029228  0x00007e0f arg  0x00000000 , 0x00000002 
+ 00029229  0x00007e10 call  0x00007232 
+ 00029230  0x00007e11 increase  0x00000004 , 0x00000013 
+ 00029231  0x00007e12 loop  0x0000722c 
+ 00029232  0x00007e13 arg  0x00008700 , 0x00000002 
+ 00029233  0x00007e14 lshift16  0x00000002 , 0x00000002 
+ 00029234  0x00007e16 ifetch  0x00000004 , 0x00000013 
+ 00029235  0x00007e17 ixor  0x00000002 , 0x0000003f 
+ 00029236  0x00007e18 istore  0x00000004 , 0x00000005 
+ 00029237  0x00007e19 rtn 
+ 00029238  0x00007e20 bpatch  0x000000e8 , 0x0000401d 
+ 00029239  0x00007e21 arg  0x00000010 , 0x00000039 
+ 00029240  0x00007e22 arg  0x00000000 , 0x0000003f 
+ 00029241  0x00007e24 isub  0x00000011 , 0x0000003e 
+ 00029242  0x00007e25 branch  0x00007241 , 0x00000005 
+ 00029243  0x00007e26 branch  0x00007244 , 0x00000002 
+ 00029244  0x00007e27 ifetcht  0x00000001 , 0x00000006 
+ 00029245  0x00007e28 istoret  0x00000001 , 0x00000005 
+ 00029246  0x00007e2a increase  0x00000001 , 0x0000003f 
+ 00029247  0x00007e2b loop  0x00007239 
+ 00029248  0x00007e2c rtn 
+ 00029249  0x00007e2e arg  0x00000080 , 0x00000002 
+ 00029250  0x00007e30 istoret  0x00000001 , 0x00000005 
+ 00029251  0x00007e31 branch  0x0000723e 
+ 00029252  0x00007e34 arg  0x00000000 , 0x00000002 
+ 00029253  0x00007e35 branch  0x00007242 
+ 00029254  0x00007e3b lshift8  0x00000002 , 0x00000002 
+ 00029255  0x00007e3d lshift16  0x00000002 , 0x00000002 
+ 00029256  0x00007e3e ior  0x00000002 , 0x00000002 
+ 00029257  0x00007e3f rtn 
+ 00029258  0x00007e45 bpatch  0x000000e9 , 0x0000401d 
+ 00029259  0x00007e46 call  0x00007306 
+ 00029260  0x00007e47 arg  0x0000428a , 0x00000005 
+ 00029261  0x00007e48 branch  0x00007375 
+ 00029262  0x00007e4c arg  0x000042ab , 0x00000005 
+ 00029263  0x00007e4d branch  0x00007251 , 0x00000029 
+ 00029264  0x00007e4e arg  0x00000158 , 0x00000005 
+ 00029265  0x00007e50 copy  0x00000006 , 0x00000011 
+ 00029266  0x00007e51 call  0x00007c8f 
+ 00029267  0x00007e52 call  0x0000731b 
+ 00029268  0x00007e53 arg  0x0000429b , 0x00000006 
+ 00029269  0x00007e54 branch  0x0000738e 
+ 00029270  0x00007e57 arg  0x00000158 , 0x00000011 
+ 00029271  0x00007e58 branch  0x00007259 , 0x00000029 
+ 00029272  0x00007e59 arg  0x000042ab , 0x00000011 
+ 00029273  0x00007e5b copy  0x00000011 , 0x00000005 
+ 00029274  0x00007e5c call  0x00007de7 
+ 00029275  0x00007e5d branch  0x0000731b 
+ 00029276  0x00007e60 arg  0x000042e5 , 0x00000006 
+ 00029277  0x00007e61 call  0x00007361 
+ 00029278  0x00007e62 arg  0x0000428a , 0x00000006 
+ 00029279  0x00007e63 call  0x00007362 
+ 00029280  0x00007e64 force  0x00000038 , 0x00000036 
+ 00029281  0x00007e65 force  0x00000000 , 0x00000036 
+ 00029282  0x00007e66 call  0x000072cf 
+ 00029283  0x00007e67 arg  0x000001a8 , 0x00000005 
+ 00029284  0x00007e68 branch  0x00007375 
+ 00029285  0x00007e6d force  0x00000008 , 0x00000038 
+ 00029286  0x00007e6e force  0x00000049 , 0x0000003f 
+ 00029287  0x00007e6f branch  0x0000726c 
+ 00029288  0x00007e73 force  0x00000049 , 0x0000003f 
+ 00029289  0x00007e74 branch  0x0000726b 
+ 00029290  0x00007e76 force  0x00000001 , 0x0000003f 
+ 00029291  0x00007e78 force  0x00000000 , 0x00000038 
+ 00029292  0x00007e7a lshift8  0x00000002 , 0x0000002f 
+ 00029293  0x00007e7b ior  0x0000002f , 0x0000002f 
+ 00029294  0x00007e7c increase  0x00000001 , 0x00000038 
+ 00029295  0x00007e7d rshift8  0x00000002 , 0x0000002f 
+ 00029296  0x00007e7e rshift16  0x0000002f , 0x0000002f 
+ 00029297  0x00007e7f fetch  0x00000002 , 0x0000445e 
+ 00029298  0x00007e80 lshift16  0x0000003f , 0x0000003f 
+ 00029299  0x00007e81 ior  0x0000002f , 0x0000002f 
+ 00029300  0x00007e82 increase  0x00000001 , 0x00000038 
+ 00029301  0x00007e83 ifetchr  0x0000002f , 0x00000004 , 0x00000006 
+ 00029302  0x00007e84 increase  0x00000001 , 0x00000038 
+ 00029303  0x00007e85 ifetch  0x00000002 , 0x00000006 
+ 00029304  0x00007e86 byteswap  0x00000011 , 0x0000002f 
+ 00029305  0x00007e87 lshift16  0x0000002f , 0x0000002f 
+ 00029306  0x00007e88 ior  0x0000002f , 0x0000002f 
+ 00029307  0x00007e89 increase  0x00000001 , 0x00000038 
+ 00029308  0x00007e8a rtn 
+ 00029309  0x00007e8f add  0x00000013 , 0x00000001 , 0x00000006 
+ 00029310  0x00007e90 ifetch  0x00000001 , 0x00000006 
+ 00029311  0x00007e91 iforce  0x00000011 
+ 00029312  0x00007e92 call  0x00007268 
+ 00029313  0x00007e93 call  0x000072d1 
+ 00029314  0x00007e95 force  0x00000000 , 0x00000038 
+ 00029315  0x00007e96 ifetch  0x00000001 , 0x00000013 
+ 00029316  0x00007e97 and_into  0x00000003 , 0x0000003f 
+ 00029317  0x00007e98 lshift16  0x0000003f , 0x0000002f 
+ 00029318  0x00007e99 set1  0x00000008 , 0x0000002f 
+ 00029319  0x00007e9a call  0x0000736a 
+ 00029320  0x00007e9b call  0x000072d4 
+ 00029321  0x00007e9d copy  0x00000011 , 0x00000039 
+ 00029322  0x00007e9e add  0x00000013 , 0x00000002 , 0x00000006 
+ 00029323  0x00007e9f call  0x00007349 
+ 00029324  0x00007ea1 call  0x00007353 
+ 00029325  0x00007ea2 call  0x000072d4 
+ 00029326  0x00007ea3 deposit  0x00000039 
+ 00029327  0x00007ea4 branch  0x00007291 , 0x00000034 
+ 00029328  0x00007ea5 branch  0x0000728c 
+ 00029329  0x00007ea7 force  0x0000000c , 0x00000038 
+ 00029330  0x00007ea8 deposit  0x0000002f 
+ 00029331  0x00007ea9 store  0x00000004 , 0x00000150 
+ 00029332  0x00007eaa rtn 
+ 00029333  0x00007ead increase  0x00000001 , 0x00000011 
+ 00029334  0x00007eae call  0x0000726a 
+ 00029335  0x00007eaf copy  0x00000013 , 0x00000006 
+ 00029336  0x00007eb0 call  0x0000735d 
+ 00029337  0x00007eb1 call  0x000072d7 
+ 00029338  0x00007eb2 call  0x0000737c 
+ 00029339  0x00007eb3 increase  0x00000010 , 0x00000013 
+ 00029340  0x00007eb4 increase  0xfffffff0 , 0x00000012 
+ 00029341  0x00007eb5 branch  0x00007295 , 0x00000002 
+ 00029342  0x00007eb6 rtn 
+ 00029343  0x00007ebc call  0x000072c4 
+ 00029344  0x00007ebd bpatch  0x000000ea , 0x0000401d 
+ 00029345  0x00007ebe jam  0x00000000 , 0x0000806c 
+ 00029346  0x00007ebf jam  0x00000001 , 0x0000806d 
+ 00029347  0x00007ec0 fetch  0x00000001 , 0x00004169 
+ 00029348  0x00007ec1 and_into  0x00000003 , 0x0000003f 
+ 00029349  0x00007ec2 store  0x00000001 , 0x0000806e 
+ 00029350  0x00007ec3 fetch  0x00000002 , 0x0000068f 
+ 00029351  0x00007ec4 store  0x00000002 , 0x00008068 
+ 00029352  0x00007ec5 setarg  0x0000416b 
+ 00029353  0x00007ec6 store  0x00000002 , 0x0000806a 
+ 00029354  0x00007ec8 fetchr  0x00000011 , 0x00000001 , 0x0000416a 
+ 00029355  0x00007ec9 fetcht  0x00000005 , 0x00004450 
+ 00029356  0x00007eca call  0x00007265 
+ 00029357  0x00007ecb jam  0x00000002 , 0x0000800a 
+ 00029358  0x00007ecc jam  0x00000003 , 0x0000800a 
+ 00029359  0x00007ece fetch  0x00000001 , 0x0000416a 
+ 00029360  0x00007ecf store  0x00000002 , 0x000080c0 
+ 00029361  0x00007ed0 increase  0x00000004 , 0x0000003f 
+ 00029362  0x00007ed1 store  0x00000001 , 0x0000416a 
+ 00029363  0x00007ed2 fetch  0x00000005 , 0x00004450 
+ 00029364  0x00007ed3 increase  0x00000001 , 0x0000003f 
+ 00029365  0x00007ed4 set0  0x00000027 , 0x0000003f 
+ 00029366  0x00007ed5 store  0x00000005 , 0x00004450 
+ 00029367  0x00007ed6 rtn 
+ 00029368  0x00007eda fetch  0x00000002 , 0x0000811a 
+ 00029369  0x00007edb isub  0x00000002 , 0x0000003e 
+ 00029370  0x00007edc rtn  0x00000005 
+ 00029371  0x00007edd nrtn  0x00000034 
+ 00029372  0x00007edf branch  0x000072b8 
+ 00029373  0x00007ee2 fetch  0x00000001 , 0x00008108 
+ 00029374  0x00007ee3 bbit0  0x00000006 , 0x0000235a 
+ 00029375  0x00007ee5 setarg  0x0000416b 
+ 00029376  0x00007ee6 iadd  0x00000002 , 0x00000005 
+ 00029377  0x00007ee7 arg  0x0000000c , 0x00000038 
+ 00029378  0x00007ee8 istorer  0x0000002f , 0x00000004 , 0x00000005 
+ 00029379  0x00007ee9 branch  0x000072cd 
+ 00029380  0x00007eec bpatch  0x000000eb , 0x0000401d 
+ 00029381  0x00007eed force  0x0000000c , 0x00000038 
+ 00029382  0x00007eee call  0x00007370 
+ 00029383  0x00007eef call  0x0000736f 
+ 00029384  0x00007ef0 setarg  0x00000000 
+ 00029385  0x00007ef1 store  0x00000002 , 0x000080c0 
+ 00029386  0x00007ef2 rtn 
+ 00029387  0x00007ef5 fetch  0x00000001 , 0x00008108 
+ 00029388  0x00007ef6 bbit0  0x00000006 , 0x000072cb 
+ 00029389  0x00007ef8 jam  0x00000000 , 0x0000800a 
+ 00029390  0x00007ef9 rtn 
+ 00029391  0x00007efd nbranch  0x000072cf , 0x00000037 
+ 00029392  0x00007efe rtn 
+ 00029393  0x00007f01 force  0x00000030 , 0x00000036 
+ 00029394  0x00007f02 force  0x00000000 , 0x00000036 
+ 00029395  0x00007f03 branch  0x000072cf 
+ 00029396  0x00007f06 force  0x00000032 , 0x00000036 
+ 00029397  0x00007f07 force  0x00000002 , 0x00000036 
+ 00029398  0x00007f08 branch  0x000072cf 
+ 00029399  0x00007f0b force  0x00000034 , 0x00000036 
+ 00029400  0x00007f0c force  0x00000004 , 0x00000036 
+ 00029401  0x00007f0d branch  0x000072cf 
+ 00029402  0x00007f11 force  0x00000001 , 0x00000036 
+ 00029403  0x00007f12 force  0x00000000 , 0x00000036 
+ 00029404  0x00007f13 rtn 
+ 00029405  0x00007f17 fetch  0x00000001 , 0x00008155 
+ 00029406  0x00007f18 bbit0  0x00000002 , 0x000072dd 
+ 00029407  0x00007f19 rtn 
+ 00029408  0x00007f1d store  0x00000002 , 0x000080d2 
+ 00029409  0x00007f1e force  0x000000c0 , 0x00000036 
+ 00029410  0x00007f1f force  0x00000080 , 0x00000036 
+ 00029411  0x00007f20 branch  0x000072dd 
+ 00029412  0x00007f23 force  0x00000000 , 0x00000038 
+ 00029413  0x00007f24 copy  0x00000012 , 0x00000006 
+ 00029414  0x00007f25 force  0x00000004 , 0x00000039 
+ 00029415  0x00007f26 call  0x000072f3 
+ 00029416  0x00007f28 force  0x00000180 , 0x00000036 
+ 00029417  0x00007f29 force  0x00000080 , 0x00000036 
+ 00029418  0x00007f2a call  0x000072cf 
+ 00029419  0x00007f2c force  0x0000000c , 0x00000038 
+ 00029420  0x00007f2d copy  0x00000013 , 0x00000005 
+ 00029421  0x00007f2e force  0x00000004 , 0x00000039 
+ 00029422  0x00007f30 copy  0x0000002f , 0x0000003f 
+ 00029423  0x00007f31 istore  0x00000004 , 0x00000005 
+ 00029424  0x00007f32 increase  0x00000001 , 0x00000038 
+ 00029425  0x00007f33 loop  0x000072ee 
+ 00029426  0x00007f34 rtn 
+ 00029427  0x00007f37 ifetch  0x00000002 , 0x00000006 
+ 00029428  0x00007f38 ifetcht  0x00000002 , 0x00000006 
+ 00029429  0x00007f39 lshift16  0x00000002 , 0x00000002 
+ 00029430  0x00007f3a ior  0x00000002 , 0x0000002f 
+ 00029431  0x00007f3b increase  0x00000001 , 0x00000038 
+ 00029432  0x00007f3c loop  0x000072f3 
+ 00029433  0x00007f3d rtn 
+ 00029434  0x00007f41 force  0x00000008 , 0x00000038 
+ 00029435  0x00007f42 copy  0x00000011 , 0x00000006 
+ 00029436  0x00007f43 force  0x00000004 , 0x00000039 
+ 00029437  0x00007f44 call  0x000072f3 
+ 00029438  0x00007f46 force  0x00000000 , 0x00000038 
+ 00029439  0x00007f47 copy  0x00000012 , 0x00000006 
+ 00029440  0x00007f48 force  0x00000004 , 0x00000039 
+ 00029441  0x00007f49 call  0x000072f3 
+ 00029442  0x00007f4a force  0x00000182 , 0x00000036 
+ 00029443  0x00007f4b force  0x00000082 , 0x00000036 
+ 00029444  0x00007f4c call  0x000072cf 
+ 00029445  0x00007f4d branch  0x000072eb 
+ 00029446  0x00007f51 force  0x00000000 , 0x00000038 
+ 00029447  0x00007f52 fetch  0x00000004 , 0x00000158 
+ 00029448  0x00007f53 iforce  0x0000002f 
+ 00029449  0x00007f54 increase  0x00000001 , 0x00000038 
+ 00029450  0x00007f55 ifetch  0x00000004 , 0x00000006 
+ 00029451  0x00007f56 iforce  0x0000002f 
+ 00029452  0x00007f57 increase  0x00000001 , 0x00000038 
+ 00029453  0x00007f58 fetch  0x00000004 , 0x000042ab 
+ 00029454  0x00007f59 iforce  0x0000002f 
+ 00029455  0x00007f5a increase  0x00000001 , 0x00000038 
+ 00029456  0x00007f5b ifetch  0x00000004 , 0x00000006 
+ 00029457  0x00007f5c iforce  0x0000002f 
+ 00029458  0x00007f5d increase  0x00000001 , 0x00000038 
+ 00029459  0x00007f5e call  0x00007370 
+ 00029460  0x00007f5f increase  0xfffffffc , 0x00000038 
+ 00029461  0x00007f60 fetch  0x00000004 , 0x000042ff 
+ 00029462  0x00007f61 copy  0x0000003f , 0x0000002f 
+ 00029463  0x00007f62 increase  0x00000004 , 0x00000038 
+ 00029464  0x00007f63 force  0x00000038 , 0x00000036 
+ 00029465  0x00007f64 force  0x00000008 , 0x00000036 
+ 00029466  0x00007f65 branch  0x000072cf 
+ 00029467  0x00007f69 bpatch  0x000000ec , 0x0000401d 
+ 00029468  0x00007f6a fetch  0x00000006 , 0x000042db 
+ 00029469  0x00007f6b fetcht  0x00000006 , 0x00000178 
+ 00029470  0x00007f6c branch  0x00007321 , 0x00000029 
+ 00029471  0x00007f6d fetch  0x00000006 , 0x00000178 
+ 00029472  0x00007f6e fetcht  0x00000006 , 0x000042db 
+ 00029473  0x00007f70 force  0x00000008 , 0x00000038 
+ 00029474  0x00007f71 copy  0x00000002 , 0x0000002f 
+ 00029475  0x00007f72 increase  0x00000001 , 0x00000038 
+ 00029476  0x00007f73 rshift32  0x00000002 , 0x0000002f 
+ 00029477  0x00007f74 lshift16  0x0000003f , 0x0000003f 
+ 00029478  0x00007f75 ior  0x0000002f , 0x0000002f 
+ 00029479  0x00007f76 increase  0x00000001 , 0x00000038 
+ 00029480  0x00007f77 rshift32  0x0000003f , 0x0000002f 
+ 00029481  0x00007f78 increase  0x00000001 , 0x00000038 
+ 00029482  0x00007f79 force  0x00000000 , 0x0000002f 
+ 00029483  0x00007f7a force  0x00000000 , 0x0000003f 
+ 00029484  0x00007f7b fetch  0x00000001 , 0x000042cb 
+ 00029485  0x00007f7c fetcht  0x00000001 , 0x0000438c 
+ 00029486  0x00007f7d nbranch  0x00007331 , 0x00000029 
+ 00029487  0x00007f7f fetch  0x00000001 , 0x000042d2 
+ 00029488  0x00007f80 fetcht  0x00000001 , 0x000042cb 
+ 00029489  0x00007f82 store  0x00000001 , 0x000042bb 
+ 00029490  0x00007f83 storet  0x00000001 , 0x000042bc 
+ 00029491  0x00007f84 force  0x00000000 , 0x00000038 
+ 00029492  0x00007f85 arg  0x000042bb , 0x00000012 
+ 00029493  0x00007f86 force  0x00000004 , 0x00000039 
+ 00029494  0x00007f88 ifetch  0x00000004 , 0x00000011 
+ 00029495  0x00007f89 ifetcht  0x00000004 , 0x00000012 
+ 00029496  0x00007f8a ixor  0x00000002 , 0x0000002f 
+ 00029497  0x00007f8b increase  0x00000001 , 0x00000038 
+ 00029498  0x00007f8c increase  0x00000004 , 0x00000011 
+ 00029499  0x00007f8d increase  0x00000004 , 0x00000012 
+ 00029500  0x00007f8e loop  0x00007336 
+ 00029501  0x00007f8f call  0x00007370 
+ 00029502  0x00007f90 increase  0xfffffffc , 0x00000038 
+ 00029503  0x00007f91 fetch  0x00000004 , 0x000042ff 
+ 00029504  0x00007f92 copy  0x0000003f , 0x0000002f 
+ 00029505  0x00007f93 increase  0x00000004 , 0x00000038 
+ 00029506  0x00007f94 force  0x00000038 , 0x00000036 
+ 00029507  0x00007f95 force  0x0000000c , 0x00000036 
+ 00029508  0x00007f96 call  0x000072cf 
+ 00029509  0x00007f98 call  0x0000736f 
+ 00029510  0x00007f99 force  0x0000003a , 0x00000036 
+ 00029511  0x00007f9a force  0x00000008 , 0x00000036 
+ 00029512  0x00007f9b branch  0x000072cf 
+ 00029513  0x00007f9e compare  0x00000000 , 0x00000039 , 0x00000003 
+ 00029514  0x00007f9f rtn  0x00000001 
+ 00029515  0x00007fa0 deposit  0x00000006 
+ 00029516  0x00007fa1 iadd  0x00000039 , 0x00000005 
+ 00029517  0x00007fa2 force  0x00000000 , 0x0000003f 
+ 00029518  0x00007fa4 istore  0x00000001 , 0x00000005 
+ 00029519  0x00007fa5 increase  0x00000001 , 0x00000039 
+ 00029520  0x00007fa6 compare  0x00000000 , 0x00000039 , 0x00000003 
+ 00029521  0x00007fa7 rtn  0x00000001 
+ 00029522  0x00007fa8 branch  0x0000734e 
+ 00029523  0x00007fab force  0x00000000 , 0x00000038 
+ 00029524  0x00007fad deposit  0x00000039 
+ 00029525  0x00007fae branch  0x00007358 , 0x00000034 
+ 00029526  0x00007faf ifetch  0x00000004 , 0x00000006 
+ 00029527  0x00007fb0 increase  0xfffffffc , 0x00000039 
+ 00029528  0x00007fb2 iforce  0x0000002f 
+ 00029529  0x00007fb3 increase  0x00000001 , 0x00000038 
+ 00029530  0x00007fb4 compare  0x00000004 , 0x00000038 , 0x0000000f 
+ 00029531  0x00007fb5 rtn  0x00000001 
+ 00029532  0x00007fb6 branch  0x00007354 
+ 00029533  0x00007fb9 force  0x00000008 , 0x00000038 
+ 00029534  0x00007fba branch  0x00007362 
+ 00029535  0x00007fbc force  0x00000004 , 0x00000038 
+ 00029536  0x00007fbd branch  0x00007362 
+ 00029537  0x00007fbf force  0x00000000 , 0x00000038 
+ 00029538  0x00007fc1 force  0x00000004 , 0x00000039 
+ 00029539  0x00007fc3 ifetch  0x00000004 , 0x00000006 
+ 00029540  0x00007fc4 iforce  0x0000002f 
+ 00029541  0x00007fc5 increase  0x00000001 , 0x00000038 
+ 00029542  0x00007fc6 loop  0x00007363 
+ 00029543  0x00007fc7 rtn 
+ 00029544  0x00007fca arg  0x000001a8 , 0x00000006 
+ 00029545  0x00007fcb branch  0x0000735f 
+ 00029546  0x00007fce force  0x00000004 , 0x00000039 
+ 00029547  0x00007fcf branch  0x00007372 
+ 00029548  0x00007fd2 force  0x00000000 , 0x00000038 
+ 00029549  0x00007fd3 force  0x00000010 , 0x00000039 
+ 00029550  0x00007fd4 branch  0x00007371 
+ 00029551  0x00007fd7 force  0x00000000 , 0x00000038 
+ 00029552  0x00007fd9 force  0x00000004 , 0x00000039 
+ 00029553  0x00007fdb force  0x00000000 , 0x0000002f 
+ 00029554  0x00007fdd increase  0x00000001 , 0x00000038 
+ 00029555  0x00007fde loop  0x00007371 
+ 00029556  0x00007fdf rtn 
+ 00029557  0x00007fe2 force  0x0000000c , 0x00000038 
+ 00029558  0x00007fe3 force  0x00000004 , 0x00000039 
+ 00029559  0x00007fe5 deposit  0x0000002f 
+ 00029560  0x00007fe6 istore  0x00000004 , 0x00000005 
+ 00029561  0x00007fe7 increase  0x00000001 , 0x00000038 
+ 00029562  0x00007fe8 loop  0x00007377 
+ 00029563  0x00007fe9 rtn 
+ 00029564  0x00007fec force  0x0000000c , 0x00000038 
+ 00029565  0x00007fed copy  0x00000013 , 0x00000005 
+ 00029566  0x00007fee add  0x00000012 , 0x00000001 , 0x00000039 
+ 00029567  0x00007fef sub  0x00000039 , 0x0000000f , 0x0000003e 
+ 00029568  0x00007ff0 branch  0x00007382 , 0x00000002 
+ 00029569  0x00007ff1 force  0x00000010 , 0x00000039 
+ 00029570  0x00007ff3 deposit  0x0000002f 
+ 00029571  0x00007ff4 sub  0x00000039 , 0x00000003 , 0x0000003e 
+ 00029572  0x00007ff5 branch  0x0000738a , 0x00000002 
+ 00029573  0x00007ff6 istore  0x00000004 , 0x00000005 
+ 00029574  0x00007ff7 increase  0xfffffffc , 0x00000039 
+ 00029575  0x00007ff8 rtn  0x00000005 
+ 00029576  0x00007ff9 increase  0x00000001 , 0x00000038 
+ 00029577  0x00007ffa branch  0x00007382 
+ 00029578  0x00007ffc istore  0x00000001 , 0x00000005 
+ 00029579  0x00007ffd rshift8  0x0000003f , 0x0000003f 
+ 00029580  0x00007ffe loop  0x0000738a 
+ 00029581  0x00007fff rtn 
+ 00029582  0x00008003 force  0x0000000c , 0x00000038 
+ 00029583  0x00008004 force  0x00000004 , 0x00000039 
+ 00029584  0x00008006 ifetch  0x00000004 , 0x00000006 
+ 00029585  0x00008007 isub  0x0000002f , 0x0000003e 
+ 00029586  0x00008008 nrtn  0x00000005 
+ 00029587  0x00008009 increase  0x00000001 , 0x00000038 
+ 00029588  0x0000800a loop  0x00007390 
+ 00029589  0x0000800b branch  0x00007db8 
+ 00029590  0x0000800e fetch  0x00000001 , 0x00008050 
+ 00029591  0x0000800f set0  0x00000000 , 0x0000003f 
+ 00029592  0x00008010 store  0x00000001 , 0x00008050 
+ 00029593  0x00008011 rtn 
+ 00029594  0x00008014 fetch  0x00000001 , 0x00008050 
+ 00029595  0x00008015 set1  0x00000000 , 0x0000003f 
+ 00029596  0x00008016 store  0x00000001 , 0x00008050 
+ 00029597  0x00008017 rtn 
+ 00029598  0x00008020 arg  0x000004d1 , 0x00000005 
+ 00029599  0x00008021 setsect  0x00000000 , 0x0003ffff 
+ 00029600  0x00008022 setsect  0x00000001 , 0x0003ffff 
+ 00029601  0x00008023 setsect  0x00000002 , 0x0003ffff 
+ 00029602  0x00008024 setsect  0x00000003 , 0x0003fbff 
+ 00029603  0x00008025 istore  0x00000009 , 0x00000005 
+ 00029604  0x00008026 setsect  0x00000000 , 0x0003ffff 
+ 00029605  0x00008027 setsect  0x00000001 , 0x0003ffff 
+ 00029606  0x00008028 setsect  0x00000002 , 0x0003ffff 
+ 00029607  0x00008029 setsect  0x00000003 , 0x0003ffff 
+ 00029608  0x0000802a istore  0x00000009 , 0x00000005 
+ 00029609  0x0000802b setsect  0x00000000 , 0x0003ffff 
+ 00029610  0x0000802c setsect  0x00000001 , 0x0003ffff 
+ 00029611  0x0000802d setsect  0x00000002 , 0x0003cfff 
+ 00029612  0x0000802e setsect  0x00000003 , 0x0003ffff 
+ 00029613  0x0000802f istore  0x00000009 , 0x00000005 
+ 00029614  0x00008030 setsect  0x00000000 , 0x0003ffff 
+ 00029615  0x00008031 setsect  0x00000001 , 0x0003ffff 
+ 00029616  0x00008032 setsect  0x00000002 , 0x0003ffef 
+ 00029617  0x00008033 setsect  0x00000003 , 0x0003ffff 
+ 00029618  0x00008034 istore  0x00000009 , 0x00000005 
+ 00029619  0x00008035 setsect  0x00000000 , 0x0003ffff 
+ 00029620  0x00008036 setsect  0x00000001 , 0x0003ffff 
+ 00029621  0x00008037 setsect  0x00000002 , 0x0003ffff 
+ 00029622  0x00008038 setsect  0x00000003 , 0x0003ffff 
+ 00029623  0x00008039 istore  0x00000009 , 0x00000005 
+ 00029624  0x0000803a setsect  0x00000000 , 0x0003ffff 
+ 00029625  0x0000803b setsect  0x00000001 , 0x00026c7f 
+ 00029626  0x0000803c setsect  0x00000002 , 0x0000146b 
+ 00029627  0x0000803d setsect  0x00000003 , 0x00037bb3 
+ 00029628  0x0000803e istore  0x00000009 , 0x00000005 
+ 00029629  0x0000803f setsect  0x00000000 , 0x0001feb8 
+ 00029630  0x00008040 setsect  0x00000001 , 0x00010c12 
+ 00029631  0x00008041 setsect  0x00000002 , 0x0002b722 
+ 00029632  0x00008042 setsect  0x00000003 , 0x00029fa6 
+ 00029633  0x00008043 istore  0x00000009 , 0x00000005 
+ 00029634  0x00008044 setsect  0x00000000 , 0x0000e70f 
+ 00029635  0x00008045 setsect  0x00000001 , 0x00016720 
+ 00029636  0x00008046 setsect  0x00000002 , 0x0000519e 
+ 00029637  0x00008047 setsect  0x00000003 , 0x00019084 
+ 00029638  0x00008048 istore  0x00000009 , 0x00000005 
+ 00029639  0x00008049 setsect  0x00000000 , 0x00031012 
+ 00029640  0x0000804a setsect  0x00000001 , 0x000360bf 
+ 00029641  0x0000804b setsect  0x00000002 , 0x0003f0af 
+ 00029642  0x0000804c setsect  0x00000003 , 0x000003d3 
+ 00029643  0x0000804d istore  0x00000009 , 0x00000005 
+ 00029644  0x0000804e setsect  0x00000000 , 0x0003a188 
+ 00029645  0x0000804f setsect  0x00000001 , 0x00003ad0 
+ 00029646  0x00008050 setsect  0x00000002 , 0x0003cbf2 
+ 00029647  0x00008051 setsect  0x00000003 , 0x000243d9 
+ 00029648  0x00008052 istore  0x00000009 , 0x00000005 
+ 00029649  0x00008053 setsect  0x00000000 , 0x0002b030 
+ 00029650  0x00008054 setsect  0x00000001 , 0x00036a03 
+ 00029651  0x00008055 setsect  0x00000002 , 0x00011188 
+ 00029652  0x00008056 setsect  0x00000003 , 0x0001e520 
+ 00029653  0x00008057 istore  0x00000009 , 0x00000005 
+ 00029654  0x00008058 setsect  0x00000000 , 0x0003a11e 
+ 00029655  0x00008059 setsect  0x00000001 , 0x0000fe5d 
+ 00029656  0x0000805a setsect  0x00000002 , 0x0000dd57 
+ 00029657  0x0000805b setsect  0x00000003 , 0x0001ac93 
+ 00029658  0x0000805c istore  0x00000009 , 0x00000005 
+ 00029659  0x0000805d setsect  0x00000000 , 0x000011ed 
+ 00029660  0x0000805e setsect  0x00000001 , 0x000218c4 
+ 00029661  0x0000805f setsect  0x00000002 , 0x00008da7 
+ 00029662  0x00008060 setsect  0x00000003 , 0x000257ff 
+ 00029663  0x00008061 istore  0x00000009 , 0x00000005 
+ 00029664  0x00008062 setsect  0x00000000 , 0x0003192b 
+ 00029665  0x00008063 setsect  0x00000001 , 0x00034641 
+ 00029666  0x00008064 setsect  0x00000002 , 0x0001be0c 
+ 00029667  0x00008065 setsect  0x00000003 , 0x000366ad 
+ 00029668  0x00008066 istore  0x00000009 , 0x00000005 
+ 00029669  0x00008067 setsect  0x00000000 , 0x00001f83 
+ 00029670  0x00008068 setsect  0x00000001 , 0x00015a23 
+ 00029671  0x00008069 setsect  0x00000002 , 0x0003f9b0 
+ 00029672  0x0000806a setsect  0x00000003 , 0x00003949 
+ 00029673  0x0000806b istore  0x00000009 , 0x00000005 
+ 00029674  0x0000806c setsect  0x00000000 , 0x00013a51 
+ 00029675  0x0000806d setsect  0x00000001 , 0x000153fd 
+ 00029676  0x0000806e setsect  0x00000002 , 0x0003372a 
+ 00029677  0x0000806f setsect  0x00000003 , 0x0000f1bb 
+ 00029678  0x00008070 istore  0x00000009 , 0x00000005 
+ 00029679  0x00008071 setsect  0x00000000 , 0x0003ae85 
+ 00029680  0x00008072 setsect  0x00000001 , 0x0001eed9 
+ 00029681  0x00008073 setsect  0x00000002 , 0x00009e66 
+ 00029682  0x00008074 setsect  0x00000003 , 0x000001a8 
+ 00029683  0x00008075 istore  0x00000008 , 0x00000005 
+ 00029684  0x00008076 rtn 
+ 00029685  0x0000807f arg  0x00000569 , 0x00000005 
+ 00029686  0x00008080 setsect  0x00000000 , 0x0003ffff 
+ 00029687  0x00008081 setsect  0x00000001 , 0x0003ffff 
+ 00029688  0x00008082 setsect  0x00000002 , 0x0003ffff 
+ 00029689  0x00008083 setsect  0x00000003 , 0x0003ffff 
+ 00029690  0x00008084 istore  0x00000009 , 0x00000005 
+ 00029691  0x00008085 setsect  0x00000000 , 0x0003ffff 
+ 00029692  0x00008086 setsect  0x00000001 , 0x0000003f 
+ 00029693  0x00008087 setsect  0x00000002 , 0x00000000 
+ 00029694  0x00008088 setsect  0x00000003 , 0x00000000 
+ 00029695  0x00008089 istore  0x00000009 , 0x00000005 
+ 00029696  0x0000808a setsect  0x00000000 , 0x00000000 
+ 00029697  0x0000808b setsect  0x00000001 , 0x00000000 
+ 00029698  0x0000808c setsect  0x00000002 , 0x00001000 
+ 00029699  0x0000808d setsect  0x00000003 , 0x00000000 
+ 00029700  0x0000808e istore  0x00000009 , 0x00000005 
+ 00029701  0x0000808f setsect  0x00000000 , 0x0003ff00 
+ 00029702  0x00008090 setsect  0x00000001 , 0x0003ffff 
+ 00029703  0x00008091 setsect  0x00000002 , 0x0003ffcf 
+ 00029704  0x00008092 setsect  0x00000003 , 0x0003ffff 
+ 00029705  0x00008093 istore  0x00000009 , 0x00000005 
+ 00029706  0x00008094 setsect  0x00000000 , 0x0003ffff 
+ 00029707  0x00008095 setsect  0x00000001 , 0x0003ffff 
+ 00029708  0x00008096 setsect  0x00000002 , 0x0003ffff 
+ 00029709  0x00008097 setsect  0x00000003 , 0x000003ff 
+ 00029710  0x00008098 istore  0x00000009 , 0x00000005 
+ 00029711  0x00008099 setsect  0x00000000 , 0x00000000 
+ 00029712  0x0000809a setsect  0x00000001 , 0x00000000 
+ 00029713  0x0000809b setsect  0x00000002 , 0x00000000 
+ 00029714  0x0000809c setsect  0x00000003 , 0x00000000 
+ 00029715  0x0000809d istore  0x00000009 , 0x00000005 
+ 00029716  0x0000809e setsect  0x00000000 , 0x00010000 
+ 00029717  0x0000809f setsect  0x00000001 , 0x00000000 
+ 00029718  0x000080a0 setsect  0x00000002 , 0x0003f000 
+ 00029719  0x000080a1 setsect  0x00000003 , 0x0003ffff 
+ 00029720  0x000080a2 istore  0x00000009 , 0x00000005 
+ 00029721  0x000080a3 setsect  0x00000000 , 0x000296ff 
+ 00029722  0x000080a4 setsect  0x00000001 , 0x00022630 
+ 00029723  0x000080a5 setsect  0x00000002 , 0x0003945d 
+ 00029724  0x000080a6 setsect  0x00000003 , 0x0003d284 
+ 00029725  0x000080a7 istore  0x00000009 , 0x00000005 
+ 00029726  0x000080a8 setsect  0x00000000 , 0x000333a0 
+ 00029727  0x000080a9 setsect  0x00000001 , 0x00004b7a 
+ 00029728  0x000080aa setsect  0x00000002 , 0x000037d8 
+ 00029729  0x000080ab setsect  0x00000003 , 0x0003c9dc 
+ 00029730  0x000080ac istore  0x00000009 , 0x00000005 
+ 00029731  0x000080ad setsect  0x00000000 , 0x0003a440 
+ 00029732  0x000080ae setsect  0x00000001 , 0x0001b958 
+ 00029733  0x000080af setsect  0x00000002 , 0x00038bce 
+ 00029734  0x000080b0 setsect  0x00000003 , 0x0001091f 
+ 00029735  0x000080b1 istore  0x00000009 , 0x00000005 
+ 00029736  0x000080b2 setsect  0x00000000 , 0x0002e12c 
+ 00029737  0x000080b3 setsect  0x00000001 , 0x0001f47c 
+ 00029738  0x000080b4 setsect  0x00000002 , 0x000356b1 
+ 00029739  0x000080b5 setsect  0x00000003 , 0x0002fd47 
+ 00029740  0x000080b6 istore  0x00000009 , 0x00000005 
+ 00029741  0x000080b7 setsect  0x00000000 , 0x00006837 
+ 00029742  0x000080b8 setsect  0x00000001 , 0x0002ed90 
+ 00029743  0x000080b9 setsect  0x00000002 , 0x0001ecec 
+ 00029744  0x000080ba setsect  0x00000003 , 0x0001acc5 
+ 00029745  0x000080bb istore  0x00000009 , 0x00000005 
+ 00029746  0x000080bc setsect  0x00000000 , 0x00023357 
+ 00029747  0x000080bd setsect  0x00000001 , 0x00018af3 
+ 00029748  0x000080be setsect  0x00000002 , 0x0000f9e1 
+ 00029749  0x000080bf setsect  0x00000003 , 0x000129f0 
+ 00029750  0x000080c0 istore  0x00000009 , 0x00000005 
+ 00029751  0x000080c1 setsect  0x00000000 , 0x0002e7eb 
+ 00029752  0x000080c2 setsect  0x00000001 , 0x0003e6e3 
+ 00029753  0x000080c3 setsect  0x00000002 , 0x0003e1a7 
+ 00029754  0x000080c4 setsect  0x00000003 , 0x00010b8b 
+ 00029755  0x000080c5 istore  0x00000009 , 0x00000005 
+ 00029756  0x000080c6 setsect  0x00000000 , 0x00024fe3 
+ 00029757  0x000080c7 setsect  0x00000001 , 0x000020ef 
+ 00029758  0x000080c8 setsect  0x00000002 , 0x0001b5a6 
+ 00029759  0x000080c9 setsect  0x00000003 , 0x0000dc2f 
+ 00029760  0x000080ca istore  0x00000009 , 0x00000005 
+ 00029761  0x000080cb setsect  0x00000000 , 0x00013860 
+ 00029762  0x000080cc setsect  0x00000001 , 0x0002bd69 
+ 00029763  0x000080cd setsect  0x00000002 , 0x0000391a 
+ 00029764  0x000080ce setsect  0x00000003 , 0x0001b222 
+ 00029765  0x000080cf istore  0x00000009 , 0x00000005 
+ 00029766  0x000080d0 rtn 
+ 00029767  0x000080d9 branch  0x000074fc 
+ 00029768  0x000080dc bpatch  0x000000ed , 0x0000401d 
+ 00029769  0x000080e1 fetch  0x00000001 , 0x0000446c 
+ 00029770  0x000080e2 rtn  0x00000034 
+ 00029771  0x000080e3 fetch  0x00000001 , 0x0000446e 
+ 00029772  0x000080e4 rtneq  0x00000003 
+ 00029773  0x000080e7 fetch  0x00000001 , 0x0000446d 
+ 00029774  0x000080e8 beq  0x00000000 , 0x000074fc 
+ 00029775  0x000080e9 rtn 
+ 00029776  0x000080eb jam  0x00000000 , 0x0000446d 
+ 00029777  0x000080ec rtn 
+ 00029778  0x000080f2 bpatch  0x000000ee , 0x0000401d 
+ 00029779  0x000080f3 setarg  0x000005fe 
+ 00029780  0x000080f4 arg  0x000005f9 , 0x00000005 
+ 00029781  0x000080f5 isub  0x00000005 , 0x00000039 
+ 00029782  0x000080f6 call  0x00007ca1 
+ 00029783  0x000080f7 setarg  0x000044d1 
+ 00029784  0x000080f8 arg  0x000044cf , 0x00000005 
+ 00029785  0x000080f9 isub  0x00000005 , 0x00000039 
+ 00029786  0x000080fa branch  0x00007ca1 
+ 00029787  0x000080ff call  0x00007476 
+ 00029788  0x00008100 arg  0x0000061e , 0x00000011 
+ 00029789  0x00008101 arg  0x000004b1 , 0x00000005 
+ 00029790  0x00008102 call  0x0000771c 
+ 00029791  0x00008103 arg  0x000005fe , 0x00000011 
+ 00029792  0x00008104 arg  0x00000471 , 0x00000005 
+ 00029793  0x00008105 call  0x0000771c 
+ 00029794  0x00008106 arg  0x00000471 , 0x00000011 
+ 00029795  0x00008107 arg  0x000005fe , 0x00000012 
+ 00029796  0x00008108 arg  0x00000471 , 0x00000005 
+ 00029797  0x00008109 call  0x00007684 
+ 00029798  0x0000810a arg  0x00000589 , 0x00000011 
+ 00029799  0x0000810b arg  0x000005fe , 0x00000012 
+ 00029800  0x0000810c arg  0x00000491 , 0x00000005 
+ 00029801  0x0000810d call  0x00007684 
+ 00029802  0x0000810e arg  0x00000491 , 0x00000011 
+ 00029803  0x0000810f arg  0x00000471 , 0x00000012 
+ 00029804  0x00008110 arg  0x00000471 , 0x00000005 
+ 00029805  0x00008111 call  0x00007720 
+ 00029806  0x00008112 arg  0x00000451 , 0x00000011 
+ 00029807  0x00008113 arg  0x00000471 , 0x00000012 
+ 00029808  0x00008114 arg  0x00000451 , 0x00000005 
+ 00029809  0x00008115 call  0x00007720 
+ 00029810  0x00008116 arg  0x00000020 , 0x00000039 
+ 00029811  0x00008117 arg  0x000004b1 , 0x00000011 
+ 00029812  0x00008118 arg  0x00000451 , 0x00000012 
+ 00029813  0x00008119 branch  0x00007d64 
+ 00029814  0x0000811c arg  0x000005c9 , 0x00000011 
+ 00029815  0x0000811d arg  0x00000451 , 0x00000005 
+ 00029816  0x0000811e call  0x0000771c 
+ 00029817  0x0000811f arg  0x000005a9 , 0x00000011 
+ 00029818  0x00008120 arg  0x00000471 , 0x00000005 
+ 00029819  0x00008121 call  0x0000771c 
+ 00029820  0x00008122 arg  0x00000471 , 0x00000011 
+ 00029821  0x00008123 arg  0x000005a9 , 0x00000012 
+ 00029822  0x00008124 arg  0x00000471 , 0x00000005 
+ 00029823  0x00008125 call  0x00007684 
+ 00029824  0x00008126 arg  0x00000589 , 0x00000011 
+ 00029825  0x00008127 arg  0x000005a9 , 0x00000012 
+ 00029826  0x00008128 arg  0x00000491 , 0x00000005 
+ 00029827  0x00008129 call  0x00007684 
+ 00029828  0x0000812a arg  0x00000491 , 0x00000011 
+ 00029829  0x0000812b arg  0x00000471 , 0x00000012 
+ 00029830  0x0000812c arg  0x00000471 , 0x00000005 
+ 00029831  0x0000812d call  0x00007720 
+ 00029832  0x0000812e arg  0x00000451 , 0x00000011 
+ 00029833  0x0000812f arg  0x00000471 , 0x00000012 
+ 00029834  0x00008130 arg  0x00000451 , 0x00000005 
+ 00029835  0x00008131 branch  0x00007739 
+ 00029836  0x00008137 increase  0xffffffff , 0x00000007 
+ 00029837  0x00008138 nrtn  0x00000002 
+ 00029838  0x00008139 random  0x0000003f 
+ 00029839  0x0000813a istore  0x00000002 , 0x00000005 
+ 00029840  0x0000813b branch  0x0000748c 
+ 00029841  0x0000813d increase  0xffffffff , 0x00000007 
+ 00029842  0x0000813e nbranch  0x0000749c , 0x00000002 
+ 00029843  0x0000813f ifetch  0x00000004 , 0x00000011 
+ 00029844  0x00008140 copy  0x0000003f , 0x00000002 
+ 00029845  0x00008141 ifetch  0x00000004 , 0x00000012 
+ 00029846  0x00008142 iflip  0x00000002 , 0x0000003f 
+ 00029847  0x00008143 nbranch  0x0000749b , 0x00000005 
+ 00029848  0x00008144 increase  0x00000004 , 0x00000011 
+ 00029849  0x00008145 increase  0x00000004 , 0x00000012 
+ 00029850  0x00008146 branch  0x00007491 
+ 00029851  0x00008148 branch  0x00007dc4 
+ 00029852  0x0000814b branch  0x00007dc6 
+ 00029853  0x00008151 and  0x0000003f , 0x00000007 , 0x00000007 
+ 00029854  0x00008152 rshift3  0x0000003f , 0x0000003f 
+ 00029855  0x00008153 iadd  0x00000006 , 0x00000006 
+ 00029856  0x00008154 ifetch  0x00000001 , 0x00000006 
+ 00029857  0x00008155 qisolate0  0x0000003f 
+ 00029858  0x00008156 rtn 
+ 00029859  0x0000815a ifetch  0x00000008 , 0x00000006 
+ 00029860  0x0000815b nrtn  0x00000034 
+ 00029861  0x0000815c ifetch  0x00000008 , 0x00000006 
+ 00029862  0x0000815d nrtn  0x00000034 
+ 00029863  0x0000815e ifetch  0x00000008 , 0x00000006 
+ 00029864  0x0000815f rtn 
+ 00029865  0x00008165 ifetch  0x00000004 , 0x00000011 
+ 00029866  0x00008166 iforce  0x00000002 
+ 00029867  0x00008167 ifetch  0x00000004 , 0x00000012 
+ 00029868  0x00008168 isub  0x00000002 , 0x0000003e 
+ 00029869  0x00008169 nrtn  0x00000005 
+ 00029870  0x0000816a increase  0x00000004 , 0x00000011 
+ 00029871  0x0000816b increase  0x00000004 , 0x00000012 
+ 00029872  0x0000816c loop  0x000074a9 
+ 00029873  0x0000816d rtn 
+ 00029874  0x00008170 force  0x00000006 , 0x00000039 
+ 00029875  0x00008171 increase  0x00000014 , 0x00000011 
+ 00029876  0x00008172 increase  0x00000014 , 0x00000012 
+ 00029877  0x00008174 ifetch  0x00000004 , 0x00000012 
+ 00029878  0x00008175 iforce  0x00000002 
+ 00029879  0x00008176 ifetch  0x00000004 , 0x00000011 
+ 00029880  0x00008177 isub  0x00000002 , 0x0000003f 
+ 00029881  0x00008178 nrtn  0x00000002 
+ 00029882  0x00008179 nrtn  0x00000034 
+ 00029883  0x0000817a increase  0xfffffffc , 0x00000011 
+ 00029884  0x0000817b increase  0xfffffffc , 0x00000012 
+ 00029885  0x0000817c loop  0x000074b5 
+ 00029886  0x0000817d rtn 
+ 00029887  0x0000817f force  0x00000006 , 0x00000039 
+ 00029888  0x00008180 force  0x00000000 , 0x00000013 
+ 00029889  0x00008182 ifetch  0x00000004 , 0x00000011 
+ 00029890  0x00008183 iforce  0x00000002 
+ 00029891  0x00008184 ifetch  0x00000004 , 0x00000012 
+ 00029892  0x00008185 iadd  0x00000002 , 0x0000003f 
+ 00029893  0x00008186 iadd  0x00000013 , 0x0000003f 
+ 00029894  0x00008187 istore  0x00000004 , 0x00000005 
+ 00029895  0x00008188 isolate1  0x00000020 , 0x0000003f 
+ 00029896  0x00008189 setflag  0x00000001 , 0x00000000 , 0x00000013 
+ 00029897  0x0000818a increase  0x00000004 , 0x00000011 
+ 00029898  0x0000818b increase  0x00000004 , 0x00000012 
+ 00029899  0x0000818c loop  0x000074c1 
+ 00029900  0x0000818d rtn 
+ 00029901  0x00008190 force  0x00000006 , 0x00000039 
+ 00029902  0x00008191 force  0x00000000 , 0x00000013 
+ 00029903  0x00008193 ifetch  0x00000004 , 0x00000012 
+ 00029904  0x00008194 iforce  0x00000002 
+ 00029905  0x00008195 ifetch  0x00000004 , 0x00000011 
+ 00029906  0x00008196 isub  0x00000002 , 0x0000003f 
+ 00029907  0x00008197 isub  0x00000013 , 0x0000003f 
+ 00029908  0x00008198 istore  0x00000004 , 0x00000005 
+ 00029909  0x00008199 isolate1  0x00000020 , 0x0000003f 
+ 00029910  0x0000819a setflag  0x00000001 , 0x00000000 , 0x00000013 
+ 00029911  0x0000819b increase  0x00000004 , 0x00000011 
+ 00029912  0x0000819c increase  0x00000004 , 0x00000012 
+ 00029913  0x0000819d loop  0x000074cf 
+ 00029914  0x0000819e rtn 
+ 00029915  0x000081a1 force  0x00000006 , 0x00000039 
+ 00029916  0x000081a2 increase  0x00000014 , 0x00000011 
+ 00029917  0x000081a4 force  0x00000000 , 0x00000013 
+ 00029918  0x000081a6 ifetch  0x00000004 , 0x00000011 
+ 00029919  0x000081a7 isolate1  0x00000000 , 0x0000003f 
+ 00029920  0x000081a8 setflag  0x00000001 , 0x00000001 , 0x00000013 
+ 00029921  0x000081a9 rshift  0x0000003f , 0x0000003f 
+ 00029922  0x000081aa isolate1  0x00000000 , 0x00000013 
+ 00029923  0x000081ab setflag  0x00000001 , 0x0000001f , 0x0000003f 
+ 00029924  0x000081ac istore  0x00000004 , 0x00000011 
+ 00029925  0x000081ad increase  0xfffffffc , 0x00000011 
+ 00029926  0x000081ae rshift  0x00000013 , 0x00000013 
+ 00029927  0x000081af loop  0x000074de 
+ 00029928  0x000081b0 rtn 
+ 00029929  0x000081b2 force  0x00000006 , 0x00000039 
+ 00029930  0x000081b3 force  0x00000000 , 0x00000013 
+ 00029931  0x000081b5 ifetch  0x00000004 , 0x00000011 
+ 00029932  0x000081b6 isolate1  0x0000001f , 0x0000003f 
+ 00029933  0x000081b7 setflag  0x00000001 , 0x00000001 , 0x00000013 
+ 00029934  0x000081b8 lshift  0x0000003f , 0x0000003f 
+ 00029935  0x000081b9 isolate1  0x00000000 , 0x00000013 
+ 00029936  0x000081ba setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00029937  0x000081bb istore  0x00000004 , 0x00000011 
+ 00029938  0x000081bc increase  0x00000004 , 0x00000011 
+ 00029939  0x000081bd rshift  0x00000013 , 0x00000013 
+ 00029940  0x000081be loop  0x000074eb 
+ 00029941  0x000081bf rtn 
+ 00029942  0x000081c3 force  0x00000006 , 0x00000039 
+ 00029943  0x000081c5 ifetch  0x00000004 , 0x00000006 
+ 00029944  0x000081c6 iforce  0x0000002f 
+ 00029945  0x000081c7 increase  0x00000001 , 0x00000038 
+ 00029946  0x000081c8 loop  0x000074f7 
+ 00029947  0x000081c9 rtn 
+ 00029948  0x000081ce bpatch  0x000000ef , 0x0000401d 
+ 00029949  0x000081cf fetch  0x00000001 , 0x0000446c 
+ 00029950  0x000081d0 nbranch  0x0000751d , 0x00000034 
+ 00029951  0x000081d3 jam  0x00000000 , 0x0000446d 
+ 00029952  0x000081d4 jam  0x00000000 , 0x0000446e 
+ 00029953  0x000081d5 rtn 
+ 00029954  0x000081da fetch  0x00000001 , 0x0000446c 
+ 00029955  0x000081db rtn  0x00000034 
+ 00029956  0x000081dc fetch  0x00000001 , 0x0000446e 
+ 00029957  0x000081dd rtneq  0x00000003 
+ 00029958  0x000081de call  0x00007552 
+ 00029959  0x000081df branch  0x00007502 
+ 00029960  0x000081e4 arg  0x0000446f , 0x00000005 
+ 00029961  0x000081e5 setsect  0x00000000 , 0x00001abd 
+ 00029962  0x000081e6 setsect  0x00000001 , 0x0001b34f 
+ 00029963  0x000081e7 setsect  0x00000002 , 0x00019b8a 
+ 00029964  0x000081e8 setsect  0x00000003 , 0x00026562 
+ 00029965  0x000081e9 istore  0x00000009 , 0x00000005 
+ 00029966  0x000081ea setsect  0x00000000 , 0x000340b7 
+ 00029967  0x000081eb setsect  0x00000001 , 0x00001efa 
+ 00029968  0x000081ec setsect  0x00000002 , 0x0000aff6 
+ 00029969  0x000081ed setsect  0x00000003 , 0x0000fd41 
+ 00029970  0x000081ee istore  0x00000009 , 0x00000005 
+ 00029971  0x000081ef setsect  0x00000000 , 0x0003d210 
+ 00029972  0x000081f0 setsect  0x00000001 , 0x00026cf8 
+ 00029973  0x000081f1 setsect  0x00000002 , 0x0003874c 
+ 00029974  0x000081f2 setsect  0x00000003 , 0x0003157c 
+ 00029975  0x000081f3 istore  0x00000009 , 0x00000005 
+ 00029976  0x000081f4 setsect  0x00000000 , 0x0002d4a3 
+ 00029977  0x000081f5 setsect  0x00000001 , 0x0003d27d 
+ 00029978  0x000081f6 setsect  0x00000002 , 0x00000003 
+ 00029979  0x000081f7 istore  0x00000005 , 0x00000005 
+ 00029980  0x000081f8 rtn 
+ 00029981  0x000081fc fetch  0x00000001 , 0x0000446e 
+ 00029982  0x000081fd rtnne  0x00000000 
+ 00029983  0x000081fe fetch  0x00000001 , 0x0000446d 
+ 00029984  0x000081ff rtnne  0x00000000 
+ 00029985  0x00008200 call  0x000073f5 
+ 00029986  0x00008201 arg  0x0000446f , 0x00000005 
+ 00029987  0x00008202 force  0x0000000f , 0x00000007 
+ 00029988  0x00008203 call  0x0000748c 
+ 00029989  0x00008204 random  0x0000003f 
+ 00029990  0x00008205 rshift  0x0000003f , 0x0000003f 
+ 00029991  0x00008206 istore  0x00000002 , 0x00000005 
+ 00029992  0x00008208 fetch  0x00000001 , 0x0000446b 
+ 00029993  0x00008209 ncall  0x00007508 , 0x00000034 
+ 00029994  0x0000820b arg  0x000003b1 , 0x00000005 
+ 00029995  0x0000820c arg  0x0000446f , 0x00000006 
+ 00029996  0x0000820d call  0x00007c8d 
+ 00029997  0x0000820f arg  0x00000291 , 0x00000005 
+ 00029998  0x00008210 arg  0x000005a9 , 0x00000006 
+ 00029999  0x00008211 call  0x00007c81 
+ 00030000  0x00008213 arg  0x000002d1 , 0x00000005 
+ 00030001  0x00008214 call  0x00007c9d 
+ 00030002  0x00008215 jam  0x00000001 , 0x000002d1 
+ 00030003  0x00008217 call  0x0000756a 
+ 00030004  0x00008218 jam  0x00000003 , 0x0000446d 
+ 00030005  0x00008219 rtn 
+ 00030006  0x0000821c arg  0x0000448f , 0x00000005 
+ 00030007  0x0000821d arg  0x000002f1 , 0x00000006 
+ 00030008  0x0000821e call  0x00007c81 
+ 00030009  0x0000821f jam  0x00000003 , 0x0000446e 
+ 00030010  0x00008220 jam  0x00000000 , 0x0000446d 
+ 00030011  0x00008221 rtn 
+ 00030012  0x00008226 fetch  0x00000001 , 0x000005f9 
+ 00030013  0x00008227 rtnne  0x00000000 
+ 00030014  0x00008228 fetch  0x00000001 , 0x0000446d 
+ 00030015  0x00008229 rtnne  0x00000000 
+ 00030016  0x0000822b arg  0x000003b1 , 0x00000005 
+ 00030017  0x0000822c arg  0x0000446f , 0x00000006 
+ 00030018  0x0000822d call  0x00007c8d 
+ 00030019  0x0000822f arg  0x00000291 , 0x00000005 
+ 00030020  0x00008230 arg  0x000005fe , 0x00000006 
+ 00030021  0x00008231 call  0x00007c81 
+ 00030022  0x00008233 arg  0x000002d1 , 0x00000005 
+ 00030023  0x00008234 call  0x00007c9d 
+ 00030024  0x00008235 jam  0x00000001 , 0x000002d1 
+ 00030025  0x00008237 call  0x0000756a 
+ 00030026  0x00008238 jam  0x00000004 , 0x0000446d 
+ 00030027  0x00008239 rtn 
+ 00030028  0x0000823e arg  0x0000063e , 0x00000005 
+ 00030029  0x0000823f arg  0x000002f1 , 0x00000006 
+ 00030030  0x00008240 call  0x00007c8d 
+ 00030031  0x00008241 jam  0x00000003 , 0x000005f9 
+ 00030032  0x00008242 jam  0x00000000 , 0x0000446d 
+ 00030033  0x00008243 rtn 
+ 00030034  0x00008248 fetch  0x00000001 , 0x0000446c 
+ 00030035  0x00008249 rtn  0x00000034 
+ 00030036  0x0000824a fetch  0x00000001 , 0x0000446d 
+ 00030037  0x0000824b rtn  0x00000034 
+ 00030038  0x0000824c increase  0x00000080 , 0x0000003f 
+ 00030039  0x0000824d store  0x00000001 , 0x0000446d 
+ 00030040  0x0000824e rtnbit1  0x00000007 
+ 00030041  0x0000824f fetch  0x00000002 , 0x0000022e 
+ 00030042  0x00008250 branch  0x0000755c , 0x00000034 
+ 00030043  0x00008251 branch  0x00007562 
+ 00030044  0x00008254 bpatch  0x000000f0 , 0x0000401e 
+ 00030045  0x00008255 call  0x00007577 
+ 00030046  0x00008256 fetch  0x00000001 , 0x0000446d 
+ 00030047  0x00008257 beq  0x00000003 , 0x00007536 
+ 00030048  0x00008258 beq  0x00000004 , 0x0000754c 
+ 00030049  0x00008259 rtn 
+ 00030050  0x0000825d call  0x00007589 
+ 00030051  0x0000825e fetch  0x00000002 , 0x0000022e 
+ 00030052  0x0000825f increase  0xffffffff , 0x0000003f 
+ 00030053  0x00008260 store  0x00000002 , 0x0000022e 
+ 00030054  0x00008261 arg  0x000003b1 , 0x00000006 
+ 00030055  0x00008262 call  0x0000749d 
+ 00030056  0x00008263 rtn  0x00000001 
+ 00030057  0x00008264 branch  0x000075da 
+ 00030058  0x00008267 bpatch  0x000000f1 , 0x0000401e 
+ 00030059  0x00008268 setarg  0x00000100 
+ 00030060  0x00008269 store  0x00000002 , 0x0000022e 
+ 00030061  0x0000826b fetch  0x00000002 , 0x0000022e 
+ 00030062  0x0000826c rtn  0x00000034 
+ 00030063  0x0000826d increase  0xffffffff , 0x0000003f 
+ 00030064  0x0000826e store  0x00000002 , 0x0000022e 
+ 00030065  0x0000826f arg  0x000003b1 , 0x00000006 
+ 00030066  0x00008270 call  0x0000749d 
+ 00030067  0x00008271 branch  0x0000756d , 0x00000001 
+ 00030068  0x00008272 arg  0x00000291 , 0x00000006 
+ 00030069  0x00008273 arg  0x00000351 , 0x00000005 
+ 00030070  0x00008274 branch  0x00007c80 
+ 00030071  0x00008278 arg  0x00000391 , 0x00000011 
+ 00030072  0x00008279 arg  0x00000491 , 0x00000005 
+ 00030073  0x0000827a call  0x00007646 
+ 00030074  0x0000827b arg  0x00000491 , 0x00000011 
+ 00030075  0x0000827c arg  0x00000431 , 0x00000005 
+ 00030076  0x0000827d call  0x0000771c 
+ 00030077  0x0000827e arg  0x00000351 , 0x00000011 
+ 00030078  0x0000827f arg  0x00000431 , 0x00000012 
+ 00030079  0x00008280 arg  0x000002f1 , 0x00000005 
+ 00030080  0x00008281 call  0x00007684 
+ 00030081  0x00008282 arg  0x00000491 , 0x00000011 
+ 00030082  0x00008283 arg  0x00000431 , 0x00000012 
+ 00030083  0x00008284 arg  0x00000471 , 0x00000005 
+ 00030084  0x00008285 call  0x00007684 
+ 00030085  0x00008286 arg  0x00000371 , 0x00000011 
+ 00030086  0x00008287 arg  0x00000471 , 0x00000012 
+ 00030087  0x00008288 arg  0x00000311 , 0x00000005 
+ 00030088  0x00008289 branch  0x00007684 
+ 00030089  0x0000828c arg  0x00000391 , 0x00000011 
+ 00030090  0x0000828d arg  0x00000471 , 0x00000005 
+ 00030091  0x0000828e call  0x0000771c 
+ 00030092  0x0000828f arg  0x00000471 , 0x00000011 
+ 00030093  0x00008290 arg  0x00000491 , 0x00000005 
+ 00030094  0x00008291 call  0x0000771c 
+ 00030095  0x00008293 arg  0x00000589 , 0x00000011 
+ 00030096  0x00008294 arg  0x00000491 , 0x00000012 
+ 00030097  0x00008295 arg  0x00000491 , 0x00000005 
+ 00030098  0x00008296 call  0x00007684 
+ 00030099  0x00008297 arg  0x00000351 , 0x00000011 
+ 00030100  0x00008298 arg  0x00000471 , 0x00000005 
+ 00030101  0x00008299 call  0x0000771c 
+ 00030102  0x0000829b arg  0x00000471 , 0x00000006 
+ 00030103  0x0000829c arg  0x00000431 , 0x00000005 
+ 00030104  0x0000829d call  0x00007c8d 
+ 00030105  0x0000829e arg  0x00000431 , 0x00000011 
+ 00030106  0x0000829f call  0x00007723 
+ 00030107  0x000082a0 arg  0x00000471 , 0x00000011 
+ 00030108  0x000082a1 arg  0x00000431 , 0x00000012 
+ 00030109  0x000082a2 arg  0x00000471 , 0x00000005 
+ 00030110  0x000082a3 call  0x00007720 
+ 00030111  0x000082a5 arg  0x00000471 , 0x00000011 
+ 00030112  0x000082a6 arg  0x00000491 , 0x00000012 
+ 00030113  0x000082a7 arg  0x00000471 , 0x00000005 
+ 00030114  0x000082a8 call  0x00007720 
+ 00030115  0x000082aa arg  0x00000351 , 0x00000006 
+ 00030116  0x000082ab arg  0x00000431 , 0x00000005 
+ 00030117  0x000082ac call  0x00007c8d 
+ 00030118  0x000082ad arg  0x00000371 , 0x00000011 
+ 00030119  0x000082ae arg  0x00000491 , 0x00000005 
+ 00030120  0x000082af call  0x0000771c 
+ 00030121  0x000082b0 arg  0x00000431 , 0x00000011 
+ 00030122  0x000082b1 call  0x00007723 
+ 00030123  0x000082b2 arg  0x00000431 , 0x00000011 
+ 00030124  0x000082b3 call  0x00007723 
+ 00030125  0x000082b4 arg  0x00000431 , 0x00000011 
+ 00030126  0x000082b5 arg  0x00000491 , 0x00000012 
+ 00030127  0x000082b6 arg  0x00000431 , 0x00000005 
+ 00030128  0x000082b7 call  0x00007684 
+ 00030129  0x000082b8 arg  0x00000491 , 0x00000011 
+ 00030130  0x000082b9 arg  0x00000451 , 0x00000005 
+ 00030131  0x000082ba call  0x0000771c 
+ 00030132  0x000082bb arg  0x00000451 , 0x00000011 
+ 00030133  0x000082bc call  0x00007723 
+ 00030134  0x000082bd arg  0x00000451 , 0x00000011 
+ 00030135  0x000082be call  0x00007723 
+ 00030136  0x000082bf arg  0x00000451 , 0x00000011 
+ 00030137  0x000082c0 call  0x00007723 
+ 00030138  0x000082c1 arg  0x00000371 , 0x00000006 
+ 00030139  0x000082c2 arg  0x00000491 , 0x00000005 
+ 00030140  0x000082c3 call  0x00007c8d 
+ 00030141  0x000082c4 arg  0x00000491 , 0x00000011 
+ 00030142  0x000082c5 call  0x00007723 
+ 00030143  0x000082c6 arg  0x00000491 , 0x00000011 
+ 00030144  0x000082c7 arg  0x00000391 , 0x00000012 
+ 00030145  0x000082c8 arg  0x00000391 , 0x00000005 
+ 00030146  0x000082c9 call  0x00007684 
+ 00030147  0x000082cc arg  0x00000471 , 0x00000011 
+ 00030148  0x000082cd arg  0x00000491 , 0x00000005 
+ 00030149  0x000082ce call  0x0000771c 
+ 00030150  0x000082d0 arg  0x00000491 , 0x00000011 
+ 00030151  0x000082d1 arg  0x00000431 , 0x00000012 
+ 00030152  0x000082d2 arg  0x00000491 , 0x00000005 
+ 00030153  0x000082d3 call  0x00007739 
+ 00030154  0x000082d4 arg  0x00000491 , 0x00000011 
+ 00030155  0x000082d5 arg  0x00000431 , 0x00000012 
+ 00030156  0x000082d6 arg  0x00000351 , 0x00000005 
+ 00030157  0x000082d7 call  0x00007739 
+ 00030158  0x000082d8 arg  0x00000431 , 0x00000011 
+ 00030159  0x000082d9 arg  0x00000351 , 0x00000012 
+ 00030160  0x000082da arg  0x00000491 , 0x00000005 
+ 00030161  0x000082db call  0x00007739 
+ 00030162  0x000082dc arg  0x00000491 , 0x00000011 
+ 00030163  0x000082dd arg  0x00000471 , 0x00000012 
+ 00030164  0x000082de arg  0x00000491 , 0x00000005 
+ 00030165  0x000082df call  0x00007684 
+ 00030166  0x000082e0 arg  0x00000491 , 0x00000011 
+ 00030167  0x000082e1 arg  0x00000451 , 0x00000012 
+ 00030168  0x000082e2 arg  0x00000371 , 0x00000005 
+ 00030169  0x000082e3 branch  0x00007739 
+ 00030170  0x000082e7 arg  0x000002d1 , 0x00000011 
+ 00030171  0x000082e8 arg  0x000004b1 , 0x00000005 
+ 00030172  0x000082e9 call  0x0000771c 
+ 00030173  0x000082ea arg  0x00000351 , 0x00000011 
+ 00030174  0x000082eb arg  0x000004b1 , 0x00000012 
+ 00030175  0x000082ec arg  0x00000451 , 0x00000005 
+ 00030176  0x000082ed call  0x00007684 
+ 00030177  0x000082f0 arg  0x000002d1 , 0x00000011 
+ 00030178  0x000082f1 arg  0x000004b1 , 0x00000012 
+ 00030179  0x000082f2 arg  0x000004b1 , 0x00000005 
+ 00030180  0x000082f3 call  0x00007684 
+ 00030181  0x000082f4 arg  0x00000371 , 0x00000011 
+ 00030182  0x000082f5 arg  0x000004b1 , 0x00000012 
+ 00030183  0x000082f6 arg  0x00000431 , 0x00000005 
+ 00030184  0x000082f7 call  0x00007684 
+ 00030185  0x000082fa arg  0x00000391 , 0x00000011 
+ 00030186  0x000082fb arg  0x000004b1 , 0x00000005 
+ 00030187  0x000082fc call  0x0000771c 
+ 00030188  0x000082fd arg  0x00000291 , 0x00000011 
+ 00030189  0x000082fe arg  0x000004b1 , 0x00000012 
+ 00030190  0x000082ff arg  0x00000471 , 0x00000005 
+ 00030191  0x00008300 call  0x00007684 
+ 00030192  0x00008302 arg  0x00000391 , 0x00000011 
+ 00030193  0x00008303 arg  0x000004b1 , 0x00000012 
+ 00030194  0x00008304 arg  0x000004b1 , 0x00000005 
+ 00030195  0x00008305 call  0x00007684 
+ 00030196  0x00008306 arg  0x000002b1 , 0x00000011 
+ 00030197  0x00008307 arg  0x000004b1 , 0x00000012 
+ 00030198  0x00008308 arg  0x00000491 , 0x00000005 
+ 00030199  0x00008309 call  0x00007684 
+ 00030200  0x0000830e arg  0x00000451 , 0x00000012 
+ 00030201  0x0000830f arg  0x00000471 , 0x00000011 
+ 00030202  0x00008310 arg  0x000004b1 , 0x00000005 
+ 00030203  0x00008311 call  0x00007739 
+ 00030204  0x00008312 arg  0x00000451 , 0x00000011 
+ 00030205  0x00008313 arg  0x00000471 , 0x00000012 
+ 00030206  0x00008314 arg  0x00000451 , 0x00000005 
+ 00030207  0x00008315 call  0x00007720 
+ 00030208  0x00008318 arg  0x00000431 , 0x00000012 
+ 00030209  0x00008319 arg  0x00000491 , 0x00000011 
+ 00030210  0x0000831a arg  0x00000471 , 0x00000005 
+ 00030211  0x0000831b call  0x00007739 
+ 00030212  0x0000831c arg  0x00000431 , 0x00000011 
+ 00030213  0x0000831d arg  0x00000491 , 0x00000012 
+ 00030214  0x0000831e arg  0x00000431 , 0x00000005 
+ 00030215  0x0000831f call  0x00007720 
+ 00030216  0x00008320 arg  0x00000431 , 0x00000011 
+ 00030217  0x00008321 arg  0x000004b1 , 0x00000012 
+ 00030218  0x00008322 arg  0x00000431 , 0x00000005 
+ 00030219  0x00008323 call  0x00007684 
+ 00030220  0x00008324 arg  0x00000391 , 0x00000011 
+ 00030221  0x00008325 arg  0x000002d1 , 0x00000012 
+ 00030222  0x00008326 arg  0x00000491 , 0x00000005 
+ 00030223  0x00008327 call  0x00007684 
+ 00030224  0x00008328 arg  0x00000491 , 0x00000011 
+ 00030225  0x00008329 arg  0x000004b1 , 0x00000012 
+ 00030226  0x0000832a arg  0x00000391 , 0x00000005 
+ 00030227  0x0000832b call  0x00007684 
+ 00030228  0x0000832d arg  0x000004b1 , 0x00000011 
+ 00030229  0x0000832e arg  0x000004b1 , 0x00000005 
+ 00030230  0x0000832f call  0x0000771c 
+ 00030231  0x00008330 arg  0x000004b1 , 0x00000011 
+ 00030232  0x00008331 arg  0x00000451 , 0x00000012 
+ 00030233  0x00008332 arg  0x00000491 , 0x00000005 
+ 00030234  0x00008333 call  0x00007684 
+ 00030235  0x00008334 arg  0x000004b1 , 0x00000011 
+ 00030236  0x00008335 arg  0x00000431 , 0x00000012 
+ 00030237  0x00008336 arg  0x00000431 , 0x00000005 
+ 00030238  0x00008337 call  0x00007684 
+ 00030239  0x00008338 arg  0x00000471 , 0x00000011 
+ 00030240  0x00008339 arg  0x00000351 , 0x00000005 
+ 00030241  0x0000833a call  0x0000771c 
+ 00030242  0x0000833b arg  0x00000351 , 0x00000011 
+ 00030243  0x0000833c arg  0x00000491 , 0x00000012 
+ 00030244  0x0000833d arg  0x00000351 , 0x00000005 
+ 00030245  0x0000833e call  0x00007739 
+ 00030246  0x0000833f arg  0x00000351 , 0x00000006 
+ 00030247  0x00008340 arg  0x000004b1 , 0x00000005 
+ 00030248  0x00008341 call  0x00007c8d 
+ 00030249  0x00008342 arg  0x000004b1 , 0x00000011 
+ 00030250  0x00008343 call  0x00007723 
+ 00030251  0x00008344 arg  0x00000491 , 0x00000011 
+ 00030252  0x00008345 arg  0x000004b1 , 0x00000012 
+ 00030253  0x00008346 arg  0x00000491 , 0x00000005 
+ 00030254  0x00008347 call  0x00007739 
+ 00030255  0x00008348 arg  0x00000491 , 0x00000011 
+ 00030256  0x00008349 arg  0x00000471 , 0x00000012 
+ 00030257  0x0000834a arg  0x00000471 , 0x00000005 
+ 00030258  0x0000834b call  0x00007684 
+ 00030259  0x0000834c arg  0x00000471 , 0x00000011 
+ 00030260  0x0000834d arg  0x00000431 , 0x00000012 
+ 00030261  0x0000834e arg  0x00000371 , 0x00000005 
+ 00030262  0x0000834f call  0x00007739 
+ 00030263  0x00008350 arg  0x00000371 , 0x00000011 
+ 00030264  0x00008351 arg  0x00000569 , 0x00000012 
+ 00030265  0x00008352 arg  0x00000371 , 0x00000005 
+ 00030266  0x00008353 force  0x00000000 , 0x00000013 
+ 00030267  0x00008354 fetch  0x00000001 , 0x00000371 
+ 00030268  0x00008355 isolate1  0x00000000 , 0x0000003f 
+ 00030269  0x00008356 call  0x0000771e , 0x00000001 
+ 00030270  0x00008357 copy  0x00000013 , 0x00000030 
+ 00030271  0x00008358 arg  0x00000371 , 0x00000011 
+ 00030272  0x00008359 call  0x0000774e 
+ 00030273  0x0000835a fetch  0x00000001 , 0x00000390 
+ 00030274  0x0000835b isolate1  0x00000000 , 0x00000030 
+ 00030275  0x0000835c setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00030276  0x0000835d store  0x00000001 , 0x00000390 
+ 00030277  0x0000835e rtn 
+ 00030278  0x00008361 copy  0x00000005 , 0x0000000b 
+ 00030279  0x00008362 arg  0x00000451 , 0x00000005 
+ 00030280  0x00008363 call  0x00007c9d 
+ 00030281  0x00008364 force  0x00000000 , 0x0000003f 
+ 00030282  0x00008366 store  0x00000004 , 0x00000471 
+ 00030283  0x00008367 jam  0x00000001 , 0x00000451 
+ 00030284  0x00008368 arg  0x000003d1 , 0x00000005 
+ 00030285  0x00008369 call  0x00007c9f 
+ 00030286  0x0000836a arg  0x00000569 , 0x00000006 
+ 00030287  0x0000836b arg  0x00000411 , 0x00000005 
+ 00030288  0x0000836c call  0x00007c8d 
+ 00030289  0x0000836d copy  0x00000011 , 0x00000006 
+ 00030290  0x0000836e arg  0x00000431 , 0x00000005 
+ 00030291  0x0000836f call  0x00007c8d 
+ 00030292  0x00008376 arg  0x00000431 , 0x00000006 
+ 00030293  0x00008377 call  0x00007758 
+ 00030294  0x00008378 branch  0x0000767d , 0x00000034 
+ 00030295  0x0000837d arg  0x00000431 , 0x00000011 
+ 00030296  0x0000837e arg  0x00000451 , 0x00000012 
+ 00030297  0x0000837f call  0x0000775b 
+ 00030298  0x00008380 arg  0x00000411 , 0x00000011 
+ 00030299  0x00008381 arg  0x000003d1 , 0x00000012 
+ 00030300  0x00008382 call  0x0000775b 
+ 00030301  0x00008384 arg  0x00000431 , 0x00000011 
+ 00030302  0x00008385 arg  0x00000411 , 0x00000012 
+ 00030303  0x00008386 call  0x00007754 
+ 00030304  0x00008387 branch  0x0000766f , 0x00000002 
+ 00030305  0x00008388 arg  0x00000411 , 0x00000011 
+ 00030306  0x00008389 arg  0x00000431 , 0x00000012 
+ 00030307  0x0000838a copy  0x00000011 , 0x00000005 
+ 00030308  0x0000838b call  0x0000774c 
+ 00030309  0x0000838c arg  0x00000451 , 0x00000011 
+ 00030310  0x0000838d arg  0x000003d1 , 0x00000012 
+ 00030311  0x0000838e copy  0x00000012 , 0x00000005 
+ 00030312  0x0000838f call  0x0000771e 
+ 00030313  0x00008390 ifetch  0x00000001 , 0x00000011 
+ 00030314  0x00008391 iadd  0x00000013 , 0x00000013 
+ 00030315  0x00008392 ifetch  0x00000001 , 0x00000012 
+ 00030316  0x00008393 iadd  0x00000013 , 0x0000003f 
+ 00030317  0x00008394 istore  0x00000001 , 0x00000012 
+ 00030318  0x00008395 branch  0x00007654 
+ 00030319  0x00008397 arg  0x00000431 , 0x00000011 
+ 00030320  0x00008398 arg  0x00000411 , 0x00000012 
+ 00030321  0x00008399 copy  0x00000011 , 0x00000005 
+ 00030322  0x0000839a call  0x0000774c 
+ 00030323  0x0000839b arg  0x000003d1 , 0x00000011 
+ 00030324  0x0000839c arg  0x00000451 , 0x00000012 
+ 00030325  0x0000839d copy  0x00000012 , 0x00000005 
+ 00030326  0x0000839e call  0x0000771e 
+ 00030327  0x0000839f ifetch  0x00000001 , 0x00000011 
+ 00030328  0x000083a0 iadd  0x00000013 , 0x00000013 
+ 00030329  0x000083a1 ifetch  0x00000001 , 0x00000012 
+ 00030330  0x000083a2 iadd  0x00000013 , 0x0000003f 
+ 00030331  0x000083a3 istore  0x00000001 , 0x00000012 
+ 00030332  0x000083a4 branch  0x00007654 
+ 00030333  0x000083a7 arg  0x000003d1 , 0x00000011 
+ 00030334  0x000083a8 copy  0x0000000b , 0x00000005 
+ 00030335  0x000083a9 call  0x000076ad 
+ 00030336  0x000083ab arg  0x00000569 , 0x00000011 
+ 00030337  0x000083ac copy  0x0000000b , 0x00000012 
+ 00030338  0x000083ad copy  0x0000000b , 0x00000005 
+ 00030339  0x000083ae branch  0x00007739 
+ 00030340  0x000083b2 copy  0x00000005 , 0x0000000b 
+ 00030341  0x000083b4 force  0x00000000 , 0x00000038 
+ 00030342  0x000083b6 arg  0x000003d1 , 0x00000005 
+ 00030343  0x000083b7 call  0x00007c9f 
+ 00030344  0x000083b8 arg  0x000006b1 , 0x00000005 
+ 00030345  0x000083b9 call  0x00007c9f 
+ 00030346  0x000083bd copy  0x00000011 , 0x00000006 
+ 00030347  0x000083bf jam  0x00000000 , 0x000006b1 
+ 00030348  0x000083c0 setarg  0x00000000 
+ 00030349  0x000083c1 call  0x00007716 
+ 00030350  0x000083c2 copy  0x00000012 , 0x00000006 
+ 00030351  0x000083c3 call  0x0000771a 
+ 00030352  0x000083c6 force  0x00000000 , 0x00000007 
+ 00030353  0x000083c7 arg  0x000003d1 , 0x00000005 
+ 00030354  0x000083cb arg  0x000006b1 , 0x00000002 
+ 00030355  0x000083cc copy  0x00000007 , 0x00000012 
+ 00030356  0x000083cd lshift2  0x00000012 , 0x0000003f 
+ 00030357  0x000083cf iadd  0x00000002 , 0x00000012 
+ 00030358  0x000083d0 force  0x00000000 , 0x00000002 
+ 00030359  0x000083d1 force  0x00000000 , 0x00000013 
+ 00030360  0x000083d7 ifetch  0x00000004 , 0x00000005 
+ 00030361  0x000083d8 iforce  0x00000011 
+ 00030362  0x000083db ifetch  0x00000004 , 0x00000012 
+ 00030363  0x000083dc copy  0x00000013 , 0x00000038 
+ 00030364  0x000083dd imul32  0x0000002f , 0x0000003f 
+ 00030365  0x000083de iadd  0x00000011 , 0x0000003f 
+ 00030366  0x000083df iadd  0x00000002 , 0x0000003f 
+ 00030367  0x000083e0 istore  0x00000004 , 0x00000005 
+ 00030368  0x000083e1 rshift32  0x0000003f , 0x00000002 
+ 00030369  0x000083e2 increase  0x00000001 , 0x00000013 
+ 00030370  0x000083e3 compare  0x00000008 , 0x00000013 , 0x000000ff 
+ 00030371  0x000083e4 nbranch  0x00007698 , 0x00000001 
+ 00030372  0x000083e6 deposit  0x00000002 
+ 00030373  0x000083e7 istore  0x00000004 , 0x00000005 
+ 00030374  0x000083e8 increase  0xffffffe0 , 0x00000005 
+ 00030375  0x000083eb increase  0x00000001 , 0x00000007 
+ 00030376  0x000083ec compare  0x00000008 , 0x00000007 , 0x000000ff 
+ 00030377  0x000083ed nbranch  0x00007692 , 0x00000001 
+ 00030378  0x000083ee arg  0x000003d1 , 0x00000011 
+ 00030379  0x000083ef copy  0x0000000b , 0x00000005 
+ 00030380  0x000083f0 branch  0x000076ad 
+ 00030381  0x000083f3 bpatch  0x000000f2 , 0x0000401e 
+ 00030382  0x000083f4 copy  0x00000005 , 0x0000000b 
+ 00030383  0x000083f5 copy  0x00000011 , 0x00000030 
+ 00030384  0x000083f6 arg  0x00000411 , 0x00000012 
+ 00030385  0x000083f7 copy  0x00000012 , 0x00000005 
+ 00030386  0x000083f8 call  0x00007c9b 
+ 00030387  0x000083f9 istore  0x00000008 , 0x00000005 
+ 00030388  0x000083fa add  0x00000011 , 0x0000002c , 0x00000006 
+ 00030389  0x000083fb call  0x00007c89 
+ 00030390  0x000083fc call  0x00007c83 
+ 00030391  0x000083fd copy  0x00000012 , 0x00000011 
+ 00030392  0x000083fe call  0x00007723 
+ 00030393  0x000083ff arg  0x00000411 , 0x00000012 
+ 00030394  0x00008400 copy  0x00000030 , 0x00000011 
+ 00030395  0x00008401 copy  0x0000000b , 0x00000005 
+ 00030396  0x00008402 call  0x00007720 
+ 00030397  0x00008404 arg  0x00000411 , 0x00000012 
+ 00030398  0x00008405 copy  0x00000012 , 0x00000005 
+ 00030399  0x00008406 call  0x00007c9b 
+ 00030400  0x00008407 istore  0x00000008 , 0x00000005 
+ 00030401  0x00008408 add  0x00000030 , 0x00000030 , 0x00000006 
+ 00030402  0x00008409 call  0x00007c8f 
+ 00030403  0x0000840a call  0x00007c9b 
+ 00030404  0x0000840b copy  0x00000012 , 0x00000011 
+ 00030405  0x0000840c call  0x00007723 
+ 00030406  0x00008410 arg  0x00000411 , 0x00000012 
+ 00030407  0x00008411 copy  0x0000000b , 0x00000011 
+ 00030408  0x00008412 copy  0x00000011 , 0x00000005 
+ 00030409  0x00008413 call  0x00007720 
+ 00030410  0x00008417 arg  0x00000411 , 0x00000012 
+ 00030411  0x00008418 copy  0x00000012 , 0x00000005 
+ 00030412  0x00008419 add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030413  0x0000841a call  0x00007c83 
+ 00030414  0x0000841b call  0x00007c9b 
+ 00030415  0x0000841c istore  0x00000008 , 0x00000005 
+ 00030416  0x0000841d add  0x00000030 , 0x00000038 , 0x00000006 
+ 00030417  0x0000841e call  0x00007c89 
+ 00030418  0x0000841f copy  0x0000000b , 0x00000011 
+ 00030419  0x00008420 copy  0x00000011 , 0x00000005 
+ 00030420  0x00008421 call  0x00007720 
+ 00030421  0x00008425 arg  0x00000411 , 0x00000012 
+ 00030422  0x00008426 copy  0x00000012 , 0x00000005 
+ 00030423  0x00008427 add  0x00000030 , 0x00000024 , 0x00000006 
+ 00030424  0x00008428 call  0x00007c83 
+ 00030425  0x00008429 add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030426  0x0000842a call  0x00007c83 
+ 00030427  0x0000842b add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030428  0x0000842c call  0x00007c84 
+ 00030429  0x0000842d add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030430  0x0000842e call  0x00007c84 
+ 00030431  0x0000842f copy  0x0000000b , 0x00000011 
+ 00030432  0x00008430 copy  0x00000011 , 0x00000005 
+ 00030433  0x00008431 call  0x00007720 
+ 00030434  0x00008434 arg  0x00000411 , 0x00000012 
+ 00030435  0x00008435 copy  0x00000012 , 0x00000005 
+ 00030436  0x00008436 add  0x00000030 , 0x0000002c , 0x00000006 
+ 00030437  0x00008437 call  0x00007c83 
+ 00030438  0x00008438 call  0x00007c9b 
+ 00030439  0x00008439 istore  0x00000008 , 0x00000005 
+ 00030440  0x0000843a add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030441  0x0000843b call  0x00007c84 
+ 00030442  0x0000843c add  0x00000030 , 0x00000028 , 0x00000006 
+ 00030443  0x0000843d call  0x00007c84 
+ 00030444  0x0000843e copy  0x0000000b , 0x00000011 
+ 00030445  0x0000843f copy  0x00000011 , 0x00000005 
+ 00030446  0x00008440 call  0x00007739 
+ 00030447  0x00008443 arg  0x00000411 , 0x00000012 
+ 00030448  0x00008444 copy  0x00000012 , 0x00000005 
+ 00030449  0x00008445 add  0x00000030 , 0x00000030 , 0x00000006 
+ 00030450  0x00008446 call  0x00007c89 
+ 00030451  0x00008447 call  0x00007c89 
+ 00030452  0x00008448 force  0x00000000 , 0x0000003f 
+ 00030453  0x00008449 istore  0x00000008 , 0x00000005 
+ 00030454  0x0000844a add  0x00000030 , 0x00000024 , 0x00000006 
+ 00030455  0x0000844b call  0x00007c84 
+ 00030456  0x0000844c add  0x00000030 , 0x0000002c , 0x00000006 
+ 00030457  0x0000844d call  0x00007c84 
+ 00030458  0x0000844e copy  0x0000000b , 0x00000011 
+ 00030459  0x0000844f copy  0x00000011 , 0x00000005 
+ 00030460  0x00008450 call  0x00007739 
+ 00030461  0x00008453 arg  0x00000411 , 0x00000012 
+ 00030462  0x00008454 copy  0x00000012 , 0x00000005 
+ 00030463  0x00008455 add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030464  0x00008456 call  0x00007c83 
+ 00030465  0x00008457 add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030466  0x00008458 call  0x00007c83 
+ 00030467  0x00008459 call  0x00007c9b 
+ 00030468  0x0000845a add  0x00000030 , 0x00000030 , 0x00000006 
+ 00030469  0x0000845b call  0x00007c84 
+ 00030470  0x0000845c copy  0x0000000b , 0x00000011 
+ 00030471  0x0000845d copy  0x00000011 , 0x00000005 
+ 00030472  0x0000845e call  0x00007739 
+ 00030473  0x00008461 arg  0x00000411 , 0x00000012 
+ 00030474  0x00008462 copy  0x00000012 , 0x00000005 
+ 00030475  0x00008463 add  0x00000030 , 0x00000038 , 0x00000006 
+ 00030476  0x00008464 call  0x00007c89 
+ 00030477  0x00008465 call  0x00007c9b 
+ 00030478  0x00008466 add  0x00000030 , 0x00000024 , 0x00000006 
+ 00030479  0x00008467 call  0x00007c83 
+ 00030480  0x00008468 call  0x00007c9b 
+ 00030481  0x00008469 add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030482  0x0000846a call  0x00007c84 
+ 00030483  0x0000846b copy  0x0000000b , 0x00000011 
+ 00030484  0x0000846c copy  0x00000011 , 0x00000005 
+ 00030485  0x0000846d branch  0x00007739 
+ 00030486  0x00008471 force  0x00000020 , 0x00000039 
+ 00030487  0x00008472 arg  0x000006b1 , 0x00000005 
+ 00030488  0x00008473 iadd  0x00000005 , 0x00000005 
+ 00030489  0x00008474 branch  0x00007cda 
+ 00030490  0x00008477 force  0x00000008 , 0x00000039 
+ 00030491  0x00008478 branch  0x000074f7 
+ 00030492  0x0000847b copy  0x00000011 , 0x00000012 
+ 00030493  0x0000847c branch  0x00007684 
+ 00030494  0x0000847f force  0x00000008 , 0x00000039 
+ 00030495  0x00008480 branch  0x000074c0 
+ 00030496  0x00008483 call  0x0000771e 
+ 00030497  0x00008484 copy  0x00000005 , 0x00000011 
+ 00030498  0x00008485 branch  0x00007724 
+ 00030499  0x00008488 call  0x00007751 
+ 00030500  0x0000848a isolate1  0x00000000 , 0x00000013 
+ 00030501  0x0000848b branch  0x0000772d , 0x00000001 
+ 00030502  0x0000848c arg  0x00000569 , 0x00000012 
+ 00030503  0x0000848d copy  0x00000011 , 0x00000013 
+ 00030504  0x0000848e increase  0xffffffe0 , 0x00000011 
+ 00030505  0x0000848f call  0x00007754 
+ 00030506  0x00008490 nrtn  0x00000002 
+ 00030507  0x00008491 copy  0x00000013 , 0x00000011 
+ 00030508  0x00008492 branch  0x00007735 
+ 00030509  0x00008495 call  0x00007735 
+ 00030510  0x00008497 copy  0x00000011 , 0x00000013 
+ 00030511  0x00008498 increase  0xffffffe0 , 0x00000011 
+ 00030512  0x00008499 arg  0x00000569 , 0x00000012 
+ 00030513  0x0000849a call  0x00007754 
+ 00030514  0x0000849b nrtn  0x00000002 
+ 00030515  0x0000849c copy  0x00000013 , 0x00000011 
+ 00030516  0x0000849d branch  0x00007735 
+ 00030517  0x000084a1 increase  0xffffffe0 , 0x00000011 
+ 00030518  0x000084a2 arg  0x00000569 , 0x00000012 
+ 00030519  0x000084a3 copy  0x00000011 , 0x00000005 
+ 00030520  0x000084a4 branch  0x0000774c 
+ 00030521  0x000084aa call  0x0000774c 
+ 00030522  0x000084ac branch  0x00007743 , 0x00000001 
+ 00030523  0x000084af add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030524  0x000084b0 arg  0x00000569 , 0x00000012 
+ 00030525  0x000084b1 call  0x00007754 
+ 00030526  0x000084b2 nrtn  0x00000002 
+ 00030527  0x000084b3 arg  0x00000569 , 0x00000012 
+ 00030528  0x000084b4 add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030529  0x000084b6 copy  0x00000011 , 0x00000005 
+ 00030530  0x000084b7 branch  0x0000774c 
+ 00030531  0x000084b9 add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030532  0x000084ba arg  0x00000569 , 0x00000012 
+ 00030533  0x000084bb copy  0x00000011 , 0x00000005 
+ 00030534  0x000084bc call  0x0000771e 
+ 00030535  0x000084be rtn  0x00000001 
+ 00030536  0x000084bf add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030537  0x000084c0 arg  0x00000569 , 0x00000012 
+ 00030538  0x000084c1 copy  0x00000011 , 0x00000005 
+ 00030539  0x000084c2 branch  0x0000771e 
+ 00030540  0x000084c7 force  0x00000008 , 0x00000039 
+ 00030541  0x000084c8 branch  0x000074ce 
+ 00030542  0x000084cb force  0x00000008 , 0x00000039 
+ 00030543  0x000084cc increase  0x0000001c , 0x00000011 
+ 00030544  0x000084cd branch  0x000074dd 
+ 00030545  0x000084d0 force  0x00000008 , 0x00000039 
+ 00030546  0x000084d1 force  0x00000000 , 0x00000013 
+ 00030547  0x000084d2 branch  0x000074eb 
+ 00030548  0x000084d5 force  0x00000008 , 0x00000039 
+ 00030549  0x000084d6 increase  0x0000001c , 0x00000011 
+ 00030550  0x000084d7 increase  0x0000001c , 0x00000012 
+ 00030551  0x000084d8 branch  0x000074b5 
+ 00030552  0x000084dc ifetch  0x00000008 , 0x00000006 
+ 00030553  0x000084dd nrtn  0x00000034 
+ 00030554  0x000084de branch  0x000074a3 
+ 00030555  0x000084e4 copy  0x00000011 , 0x00000030 
+ 00030556  0x000084e6 copy  0x00000030 , 0x00000011 
+ 00030557  0x000084e7 ifetch  0x00000001 , 0x00000011 
+ 00030558  0x000084e8 isolate1  0x00000000 , 0x0000003f 
+ 00030559  0x000084e9 rtn  0x00000001 
+ 00030560  0x000084ea call  0x0000774e 
+ 00030561  0x000084eb ifetch  0x00000001 , 0x00000012 
+ 00030562  0x000084ec isolate0  0x00000000 , 0x0000003f 
+ 00030563  0x000084ed branch  0x0000776b , 0x00000001 
+ 00030564  0x000084ee arg  0x00000569 , 0x00000011 
+ 00030565  0x000084ef copy  0x00000012 , 0x00000005 
+ 00030566  0x000084f0 call  0x0000771e 
+ 00030567  0x000084f1 ifetch  0x00000001 , 0x00000012 
+ 00030568  0x000084f2 iadd  0x00000013 , 0x0000003f 
+ 00030569  0x000084f3 istore  0x00000001 , 0x00000012 
+ 00030570  0x000084f4 increase  0xffffffe0 , 0x00000012 
+ 00030571  0x000084f6 add  0x00000012 , 0x00000020 , 0x00000011 
+ 00030572  0x000084f7 force  0x00000009 , 0x00000039 
+ 00030573  0x000084f8 call  0x000074dd 
+ 00030574  0x000084f9 branch  0x0000775c 
+ 00030575  0x000084fd rtn  0x0000002b 
+ 00030576  0x000084fe call  0x000023d8 
+ 00030577  0x000084ff call  0x00007776 
+ 00030578  0x00008500 call  0x0000781b 
+ 00030579  0x00008501 branch  0x000077ac 
+ 00030580  0x00008504 call  0x000077cf 
+ 00030581  0x00008505 branch  0x0000780a 
+ 00030582  0x00008508 fetch  0x00000001 , 0x000044ec 
+ 00030583  0x00008509 rtneq  0x000000ff 
+ 00030584  0x0000850a iforce  0x00000002 
+ 00030585  0x0000850b call  0x00006ef7 
+ 00030586  0x0000850c fetcht  0x00000001 , 0x000044ec 
+ 00030587  0x0000850d call  0x00006ef3 
+ 00030588  0x0000850e nop  0x00000064 
+ 00030589  0x0000850f fetcht  0x00000001 , 0x000044ec 
+ 00030590  0x00008510 call  0x00006edd 
+ 00030591  0x00008511 branch  0x00007780 
+ 00030592  0x00008516 bpatch  0x000000f3 , 0x0000401e 
+ 00030593  0x00008517 fetch  0x00000001 , 0x000044ec 
+ 00030594  0x00008518 rtneq  0x000000ff 
+ 00030595  0x00008519 copy  0x0000003f , 0x00000002 
+ 00030596  0x0000851a call  0x00006ee6 
+ 00030597  0x0000851b nbranch  0x00007792 , 0x00000001 
+ 00030598  0x0000851e call  0x0000779c 
+ 00030599  0x0000851f fetch  0x00000002 , 0x000044e9 
+ 00030600  0x00008520 set1  0x0000000c , 0x0000003f 
+ 00030601  0x00008521 store  0x00000002 , 0x000044e9 
+ 00030602  0x00008522 fetch  0x00000001 , 0x000044e4 
+ 00030603  0x00008523 rtneq  0x00000000 
+ 00030604  0x00008524 jam  0x00000000 , 0x000044e4 
+ 00030605  0x00008526 fetch  0x00000001 , 0x000044eb 
+ 00030606  0x00008527 store  0x00000001 , 0x000044e3 
+ 00030607  0x00008528 call  0x000077a3 
+ 00030608  0x00008529 jam  0x0000002c , 0x0000066f 
+ 00030609  0x0000852a branch  0x0000782b 
+ 00030610  0x0000852c fetch  0x00000002 , 0x000044e9 
+ 00030611  0x0000852d set0  0x0000000c , 0x0000003f 
+ 00030612  0x0000852e store  0x00000002 , 0x000044e9 
+ 00030613  0x0000852f fetch  0x00000001 , 0x000044e4 
+ 00030614  0x00008530 rtneq  0x00000001 
+ 00030615  0x00008531 jam  0x00000001 , 0x000044e4 
+ 00030616  0x00008533 jam  0x00000000 , 0x000044e3 
+ 00030617  0x00008534 call  0x000077a5 
+ 00030618  0x00008535 jam  0x0000002d , 0x0000066f 
+ 00030619  0x00008536 branch  0x0000782b 
+ 00030620  0x00008539 fetch  0x00000001 , 0x000044e3 
+ 00030621  0x0000853a rtn  0x00000034 
+ 00030622  0x0000853b increase  0xffffffff , 0x0000003f 
+ 00030623  0x0000853c store  0x00000001 , 0x000044e3 
+ 00030624  0x0000853d nrtn  0x00000034 
+ 00030625  0x0000853f jam  0x00000010 , 0x0000066f 
+ 00030626  0x00008540 branch  0x0000782b 
+ 00030627  0x00008543 arg  0x00000007 , 0x00000007 
+ 00030628  0x00008544 branch  0x000024e7 
+ 00030629  0x00008547 arg  0x00000007 , 0x00000007 
+ 00030630  0x00008548 branch  0x000024eb 
+ 00030631  0x00008550 bpatch  0x000000f4 , 0x0000401e 
+ 00030632  0x00008551 fetch  0x00000002 , 0x000044ef 
+ 00030633  0x00008552 mul32  0x00000011 , 0x0000000b , 0x00000012 
+ 00030634  0x00008553 iadd  0x00000012 , 0x00000012 
+ 00030635  0x00008554 rtn 
+ 00030636  0x00008558 fetch  0x00000001 , 0x000044ee 
+ 00030637  0x00008559 rtn  0x00000034 
+ 00030638  0x0000855a copy  0x0000003f , 0x00000039 
+ 00030639  0x0000855b fetch  0x00000002 , 0x000044ef 
+ 00030640  0x0000855c copy  0x0000003f , 0x00000012 
+ 00030641  0x0000855e add  0x00000012 , 0x00000002 , 0x00000013 
+ 00030642  0x0000855f ifetcht  0x00000001 , 0x00000013 
+ 00030643  0x00008560 call  0x000077b7 
+ 00030644  0x00008561 increase  0x0000000b , 0x00000012 
+ 00030645  0x00008562 loop  0x000077b1 
+ 00030646  0x00008563 rtn 
+ 00030647  0x00008567 fetch  0x00000001 , 0x000044ed 
+ 00030648  0x00008568 branch  0x00006ef3 , 0x00000034 
+ 00030649  0x00008569 branch  0x00006ef7 
+ 00030650  0x0000856d call  0x000077a7 
+ 00030651  0x0000856e setarg  0x00000002 
+ 00030652  0x0000856f istore  0x00000001 , 0x00000012 
+ 00030653  0x00008570 call  0x00007804 
+ 00030654  0x00008571 branch  0x000077db 
+ 00030655  0x00008578 call  0x000077a7 
+ 00030656  0x00008579 setarg  0x00000003 
+ 00030657  0x0000857a istore  0x00000001 , 0x00000012 
+ 00030658  0x0000857c call  0x00007804 
+ 00030659  0x0000857d branch  0x000077d8 
+ 00030660  0x00008582 call  0x000077a7 
+ 00030661  0x00008583 setarg  0x00000001 
+ 00030662  0x00008584 istore  0x00000001 , 0x00000012 
+ 00030663  0x00008585 setarg  0x000000ff 
+ 00030664  0x00008586 istore  0x00000001 , 0x00000005 
+ 00030665  0x00008587 branch  0x000077d8 
+ 00030666  0x0000858d call  0x000077a7 
+ 00030667  0x0000858e arg  0x0000000b , 0x00000039 
+ 00030668  0x0000858f copy  0x00000013 , 0x00000006 
+ 00030669  0x00008590 copy  0x00000012 , 0x00000005 
+ 00030670  0x00008591 branch  0x00007ccc 
+ 00030671  0x00008596 fetch  0x00000001 , 0x000044ee 
+ 00030672  0x00008597 rtn  0x00000034 
+ 00030673  0x00008598 arg  0x00000000 , 0x00000011 
+ 00030674  0x0000859a call  0x000077de 
+ 00030675  0x0000859b increase  0x00000001 , 0x00000011 
+ 00030676  0x0000859c fetch  0x00000001 , 0x000044ee 
+ 00030677  0x0000859d isub  0x00000011 , 0x0000003e 
+ 00030678  0x0000859e rtn  0x00000005 
+ 00030679  0x0000859f branch  0x000077d2 
+ 00030680  0x000085a3 add  0x00000012 , 0x00000002 , 0x00000013 
+ 00030681  0x000085a4 ifetcht  0x00000001 , 0x00000013 
+ 00030682  0x000085a5 branch  0x00006ef3 
+ 00030683  0x000085a9 add  0x00000012 , 0x00000002 , 0x00000013 
+ 00030684  0x000085aa ifetcht  0x00000001 , 0x00000013 
+ 00030685  0x000085ab branch  0x00006ef7 
+ 00030686  0x000085b0 add  0x00000011 , 0x0000000b , 0x00000007 
+ 00030687  0x000085b1 call  0x00007cef 
+ 00030688  0x000085b2 nrtn  0x00000034 
+ 00030689  0x000085b4 call  0x000077a7 
+ 00030690  0x000085b6 ifetch  0x00000001 , 0x00000012 
+ 00030691  0x000085b8 beq  0x00000002 , 0x000077db 
+ 00030692  0x000085b9 beq  0x00000003 , 0x000077d8 
+ 00030693  0x000085ba beq  0x00000000 , 0x000077d8 
+ 00030694  0x000085bb beq  0x00000005 , 0x000077f2 
+ 00030695  0x000085bd call  0x000077db 
+ 00030696  0x000085be add  0x00000012 , 0x00000007 , 0x00000013 
+ 00030697  0x000085bf call  0x00007c49 
+ 00030698  0x000085c0 ifetch  0x00000002 , 0x00000013 
+ 00030699  0x000085c1 call  0x00007d79 
+ 00030700  0x000085c2 call  0x00007c55 
+ 00030701  0x000085c3 setarg  0x00000005 
+ 00030702  0x000085c4 istore  0x00000001 , 0x00000012 
+ 00030703  0x000085c5 add  0x00000012 , 0x00000003 , 0x00000013 
+ 00030704  0x000085c6 ifetch  0x00000002 , 0x00000013 
+ 00030705  0x000085c7 branch  0x00007802 
+ 00030706  0x000085cb call  0x000077d8 
+ 00030707  0x000085cc add  0x00000012 , 0x00000009 , 0x00000013 
+ 00030708  0x000085cd call  0x00007c49 
+ 00030709  0x000085ce ifetch  0x00000002 , 0x00000013 
+ 00030710  0x000085cf call  0x00007d79 
+ 00030711  0x000085d0 call  0x00007c55 
+ 00030712  0x000085d2 add  0x00000012 , 0x00000001 , 0x00000013 
+ 00030713  0x000085d3 ifetch  0x00000001 , 0x00000013 
+ 00030714  0x000085d4 beq  0x000000ff , 0x000077fe 
+ 00030715  0x000085d5 increase  0xffffffff , 0x0000003f 
+ 00030716  0x000085d6 istore  0x00000001 , 0x00000013 
+ 00030717  0x000085d7 branch  0x000077bf , 0x00000034 
+ 00030718  0x000085d9 setarg  0x00000004 
+ 00030719  0x000085da istore  0x00000001 , 0x00000012 
+ 00030720  0x000085db add  0x00000012 , 0x00000005 , 0x00000013 
+ 00030721  0x000085dc ifetch  0x00000002 , 0x00000013 
+ 00030722  0x000085de add  0x00000011 , 0x0000000b , 0x00000007 
+ 00030723  0x000085df branch  0x00007ce1 
+ 00030724  0x000085e2 setarg  0x00000000 
+ 00030725  0x000085e3 branch  0x00007802 
+ 00030726  0x000085ea setarg  0x00001000 
+ 00030727  0x000085eb lshift16  0x0000003f , 0x0000003f 
+ 00030728  0x000085ec iadd  0x00000012 , 0x00000012 
+ 00030729  0x000085ed rtn 
+ 00030730  0x000085f0 bpatch  0x000000f5 , 0x0000401e 
+ 00030731  0x000085f1 arg  0x00000000 , 0x00000011 
+ 00030732  0x000085f2 fetcht  0x00000004 , 0x000044e5 
+ 00030733  0x000085f3 copy  0x00000022 , 0x00000012 
+ 00030734  0x000085f4 copy  0x00000012 , 0x0000003f 
+ 00030735  0x000085f5 isub  0x00000002 , 0x0000003e 
+ 00030736  0x000085f6 ncall  0x00007806 , 0x00000002 
+ 00030737  0x000085f8 copy  0x00000012 , 0x0000003f 
+ 00030738  0x000085f9 increase  0x000000a0 , 0x00000002 
+ 00030739  0x000085fa increase  0x000000a0 , 0x00000002 
+ 00030740  0x000085fb isub  0x00000002 , 0x0000003e 
+ 00030741  0x000085fc nbranch  0x0000781e , 0x00000002 
+ 00030742  0x000085fd increase  0x00000001 , 0x00000011 
+ 00030743  0x000085fe and  0x00000011 , 0x0000000f , 0x0000003f 
+ 00030744  0x000085ff nbranch  0x00007811 , 0x00000034 
+ 00030745  0x00008600 arg  0x00000000 , 0x00000011 
+ 00030746  0x00008601 call  0x00007824 
+ 00030747  0x00008603 copy  0x00000022 , 0x0000003f 
+ 00030748  0x00008604 store  0x00000004 , 0x000044e5 
+ 00030749  0x00008605 rtn 
+ 00030750  0x00008607 copy  0x00000011 , 0x0000003f 
+ 00030751  0x00008608 rtn  0x00000034 
+ 00030752  0x00008609 increase  0xffffff60 , 0x00000002 
+ 00030753  0x0000860a increase  0xffffff60 , 0x00000002 
+ 00030754  0x0000860b set0  0x0000001c , 0x00000002 
+ 00030755  0x0000860c storet  0x00000004 , 0x000044e5 
+ 00030756  0x0000860e branch  0x000042d4 
+ 00030757  0x00008616 jam  0x00000001 , 0x000044d1 
+ 00030758  0x00008618 fetch  0x00000001 , 0x000044d2 
+ 00030759  0x00008619 nbranch  0x00007826 , 0x00000034 
+ 00030760  0x0000861a rtn 
+ 00030761  0x0000861d jam  0x00000000 , 0x000044d1 
+ 00030762  0x0000861e rtn 
+ 00030763  0x00008623 bpatch  0x000000f6 , 0x0000401e 
+ 00030764  0x00008624 call  0x00007825 
+ 00030765  0x00008625 copy  0x00000011 , 0x0000003f 
+ 00030766  0x00008626 store  0x00000004 , 0x00000684 
+ 00030767  0x00008627 arg  0x000044d3 , 0x00000011 
+ 00030768  0x00008628 call  0x00007d8b 
+ 00030769  0x00008629 fetch  0x00000004 , 0x00000684 
+ 00030770  0x0000862a copy  0x0000003f , 0x00000011 
+ 00030771  0x0000862b branch  0x00007829 
+ 00030772  0x0000862e bpatch  0x000000f7 , 0x0000401e 
+ 00030773  0x0000862f call  0x00007825 
+ 00030774  0x00008630 copy  0x00000011 , 0x0000003f 
+ 00030775  0x00008631 store  0x00000004 , 0x00000684 
+ 00030776  0x00008632 arg  0x000044db , 0x00000011 
+ 00030777  0x00008633 call  0x00007d8b 
+ 00030778  0x00008634 fetch  0x00000004 , 0x00000684 
+ 00030779  0x00008635 copy  0x0000003f , 0x00000011 
+ 00030780  0x00008636 branch  0x00007829 
+ 00030781  0x00008639 setarg  0x00000000 
+ 00030782  0x0000863a store  0x00000008 , 0x000044db 
+ 00030783  0x0000863b store  0x00000008 , 0x000044d3 
+ 00030784  0x0000863c rtn 
+ 00030785  0x0000863f bpatch  0x000000f8 , 0x0000401f 
+ 00030786  0x00008640 fetch  0x00000001 , 0x00004114 
+ 00030787  0x00008641 nrtn  0x00000034 
+ 00030788  0x00008642 arg  0x000044db , 0x00000011 
+ 00030789  0x00008643 call  0x00007da3 
+ 00030790  0x00008644 rtn  0x00000034 
+ 00030791  0x00008645 jam  0x00000000 , 0x0000066e 
+ 00030792  0x00008646 call  0x0000784c 
+ 00030793  0x00008647 fetch  0x00000001 , 0x0000066e 
+ 00030794  0x00008648 branch  0x00007841 , 0x00000034 
+ 00030795  0x00008649 rtn 
+ 00030796  0x0000864c call  0x00007825 
+ 00030797  0x0000864d arg  0x000044db , 0x00000011 
+ 00030798  0x0000864e call  0x00007d97 
+ 00030799  0x0000864f copy  0x0000003f , 0x00000002 
+ 00030800  0x00008650 call  0x00007829 
+ 00030801  0x00008651 bpatch  0x000000f9 , 0x0000401f 
+ 00030802  0x00008652 copy  0x00000002 , 0x0000003f 
+ 00030803  0x00008653 rtn  0x00000034 
+ 00030804  0x00008654 beq  0x0000000d , 0x00007870 
+ 00030805  0x00008655 beq  0x0000000e , 0x00007876 
+ 00030806  0x00008656 beq  0x0000000f , 0x0000787b 
+ 00030807  0x00008657 beq  0x00000010 , 0x00007881 
+ 00030808  0x00008658 beq  0x00000013 , 0x0000788b 
+ 00030809  0x00008659 beq  0x00000014 , 0x0000788d 
+ 00030810  0x0000865a beq  0x00000015 , 0x0000788f 
+ 00030811  0x0000865b beq  0x00000016 , 0x00007899 
+ 00030812  0x0000865c beq  0x00000017 , 0x0000789c 
+ 00030813  0x0000865d beq  0x00000018 , 0x0000789e 
+ 00030814  0x0000865e beq  0x00000019 , 0x000078a1 
+ 00030815  0x00008660 store  0x00000001 , 0x0000066f 
+ 00030816  0x00008664 fetch  0x00000001 , 0x0000066f 
+ 00030817  0x00008665 bmark0  0x00000009 , 0x00007869 
+ 00030818  0x00008666 bpatch  0x000000fa , 0x0000401f 
+ 00030819  0x00008667 fetch  0x00000001 , 0x0000066f 
+ 00030820  0x00008668 beq  0x00000011 , 0x00007886 
+ 00030821  0x00008669 beq  0x0000001b , 0x000078a9 
+ 00030822  0x0000866a beq  0x00000012 , 0x0000788a 
+ 00030823  0x0000866b beq  0x0000001f , 0x00006ea3 
+ 00030824  0x0000866c rtn 
+ 00030825  0x0000866f store  0x00000001 , 0x0000066f 
+ 00030826  0x00008670 call  0x0000205d 
+ 00030827  0x00008671 branch  0x0000786e , 0x00000005 
+ 00030828  0x00008672 call  0x00002062 
+ 00030829  0x00008673 nrtn  0x00000005 
+ 00030830  0x00008675 jam  0x00000001 , 0x0000066e 
+ 00030831  0x00008676 branch  0x00007834 
+ 00030832  0x0000867e jam  0x00000001 , 0x00004388 
+ 00030833  0x0000867f jam  0x00000000 , 0x0000438b 
+ 00030834  0x00008680 fetch  0x00000002 , 0x000044e9 
+ 00030835  0x00008681 set1  0x0000000b , 0x0000003f 
+ 00030836  0x00008682 store  0x00000002 , 0x000044e9 
+ 00030837  0x00008683 rtn 
+ 00030838  0x00008688 fetch  0x00000002 , 0x000044e9 
+ 00030839  0x00008689 set0  0x0000000b , 0x0000003f 
+ 00030840  0x0000868a store  0x00000002 , 0x000044e9 
+ 00030841  0x0000868b jam  0x00000000 , 0x00004388 
+ 00030842  0x0000868c rtn 
+ 00030843  0x00008691 jam  0x00000001 , 0x00004388 
+ 00030844  0x00008692 jam  0x00000001 , 0x0000438b 
+ 00030845  0x00008693 fetch  0x00000002 , 0x000044e9 
+ 00030846  0x00008694 set1  0x0000000b , 0x0000003f 
+ 00030847  0x00008695 store  0x00000002 , 0x000044e9 
+ 00030848  0x00008696 rtn 
+ 00030849  0x0000869b fetch  0x00000002 , 0x000044e9 
+ 00030850  0x0000869c set0  0x0000000b , 0x0000003f 
+ 00030851  0x0000869d store  0x00000002 , 0x000044e9 
+ 00030852  0x0000869e jam  0x00000000 , 0x00004388 
+ 00030853  0x0000869f rtn 
+ 00030854  0x000086a4 setarg  0x00000014 
+ 00030855  0x000086a5 store  0x00000002 , 0x00000196 
+ 00030856  0x000086a6 store  0x00000002 , 0x000042f5 
+ 00030857  0x000086a7 branch  0x000030c5 
+ 00030858  0x000086ac branch  0x00002e93 
+ 00030859  0x000086b1 arg  0x00000000 , 0x00000011 
+ 00030860  0x000086b2 branch  0x000077bf 
+ 00030861  0x000086b7 arg  0x00000000 , 0x00000011 
+ 00030862  0x000086b8 branch  0x000077ba 
+ 00030863  0x000086bd arg  0x00000000 , 0x00000011 
+ 00030864  0x000086be call  0x000077a7 
+ 00030865  0x000086bf ifetch  0x00000001 , 0x00000012 
+ 00030866  0x000086c0 beq  0x00000001 , 0x00007896 
+ 00030867  0x000086c1 beq  0x00000004 , 0x00007896 
+ 00030868  0x000086c2 beq  0x00000005 , 0x00007896 
+ 00030869  0x000086c3 branch  0x000077c4 
+ 00030870  0x000086c6 ifetch  0x00000001 , 0x00000006 
+ 00030871  0x000086c7 rtneq  0x000000ff 
+ 00030872  0x000086c8 branch  0x000077c4 
+ 00030873  0x000086cd jam  0x00000001 , 0x00004343 
+ 00030874  0x000086ce jam  0x0000001b , 0x00004114 
+ 00030875  0x000086d1 rtn 
+ 00030876  0x000086d6 jam  0x00000001 , 0x00004343 
+ 00030877  0x000086d7 rtn 
+ 00030878  0x000086dc jam  0x00000000 , 0x00004343 
+ 00030879  0x000086dd jam  0x00000000 , 0x00004114 
+ 00030880  0x000086de rtn 
+ 00030881  0x000086e3 fetch  0x00000002 , 0x000043d5 
+ 00030882  0x000086e4 call  0x00007d79 
+ 00030883  0x000086e5 fetch  0x00000001 , 0x000044ec 
+ 00030884  0x000086e6 beq  0x000000ff , 0x000078a7 
+ 00030885  0x000086e7 copy  0x0000003f , 0x00000002 
+ 00030886  0x000086e8 call  0x00006edd 
+ 00030887  0x000086ea call  0x0000783d 
+ 00030888  0x000086eb branch  0x00002417 
+ 00030889  0x000086f0 branch  0x00002ed5 
+ 00030890  0x000086f6 fetch  0x00000001 , 0x000044e9 
+ 00030891  0x000086f7 rtnbit0  0x0000000c 
+ 00030892  0x000086f8 rtn 
+ 00030893  0x000086fe fetch  0x00000002 , 0x000043fb 
+ 00030894  0x000086ff add  0x0000003f , 0x00000002 , 0x00000005 
+ 00030895  0x00008700 setarg  0x00000000 
+ 00030896  0x00008701 istore  0x00000003 , 0x00000005 
+ 00030897  0x00008702 rtn 
+ 00030898  0x00008707 bpatch  0x000000fb , 0x0000401f 
+ 00030899  0x00008708 call  0x00007dbc 
+ 00030900  0x00008709 call  0x000078fe 
+ 00030901  0x0000870a rtn  0x00000034 
+ 00030902  0x0000870b fetch  0x00000002 , 0x000043fb 
+ 00030903  0x0000870c add  0x0000003f , 0x00000002 , 0x00000012 
+ 00030904  0x0000870d ifetcht  0x00000001 , 0x00000012 
+ 00030905  0x0000870e increase  0x00000001 , 0x00000002 
+ 00030906  0x0000870f istoret  0x00000001 , 0x00000012 
+ 00030907  0x00008711 ifetcht  0x00000001 , 0x0000003f 
+ 00030908  0x00008712 copy  0x00000002 , 0x00000039 
+ 00030909  0x00008713 add  0x0000003f , 0x00000004 , 0x00000012 
+ 00030910  0x00008714 ifetch  0x00000001 , 0x00000012 
+ 00030911  0x00008715 imul32  0x00000002 , 0x0000003f 
+ 00030912  0x00008716 iadd  0x00000006 , 0x00000005 
+ 00030913  0x00008717 copy  0x00000011 , 0x00000006 
+ 00030914  0x00008719 call  0x00007cda 
+ 00030915  0x0000871a call  0x00007902 
+ 00030916  0x0000871b pincrease  0xffffffff 
+ 00030917  0x0000871c ifetcht  0x00000001 , 0x00000012 
+ 00030918  0x0000871d increase  0x00000001 , 0x00000002 
+ 00030919  0x0000871e iand  0x00000002 , 0x00000002 
+ 00030920  0x0000871f istoret  0x00000001 , 0x00000012 
+ 00030921  0x00008720 branch  0x00007dba 
+ 00030922  0x00008726 bpatch  0x000000fc , 0x0000401f 
+ 00030923  0x00008727 call  0x00007dbc 
+ 00030924  0x00008728 call  0x000078fa 
+ 00030925  0x00008729 rtn  0x00000034 
+ 00030926  0x0000872a fetch  0x00000002 , 0x000043fb 
+ 00030927  0x0000872b add  0x0000003f , 0x00000002 , 0x00000012 
+ 00030928  0x0000872c ifetcht  0x00000001 , 0x00000012 
+ 00030929  0x0000872d increase  0xffffffff , 0x00000002 
+ 00030930  0x0000872e istoret  0x00000001 , 0x00000012 
+ 00030931  0x0000872f ifetcht  0x00000001 , 0x0000003f 
+ 00030932  0x00008730 copy  0x00000002 , 0x00000039 
+ 00030933  0x00008731 add  0x0000003f , 0x00000003 , 0x00000012 
+ 00030934  0x00008732 ifetch  0x00000001 , 0x00000012 
+ 00030935  0x00008733 imul32  0x00000002 , 0x0000003f 
+ 00030936  0x00008734 iadd  0x00000006 , 0x00000006 
+ 00030937  0x00008735 increase  0x00000001 , 0x00000006 
+ 00030938  0x00008736 copy  0x00000011 , 0x00000005 
+ 00030939  0x00008737 branch  0x000078c2 
+ 00030940  0x0000873f call  0x00007dbc 
+ 00030941  0x00008740 call  0x000078fa 
+ 00030942  0x00008741 rtn  0x00000034 
+ 00030943  0x00008742 fetch  0x00000002 , 0x000043fb 
+ 00030944  0x00008743 ifetcht  0x00000001 , 0x0000003f 
+ 00030945  0x00008744 copy  0x00000002 , 0x00000039 
+ 00030946  0x00008745 add  0x0000003f , 0x00000003 , 0x00000012 
+ 00030947  0x00008746 ifetch  0x00000001 , 0x00000012 
+ 00030948  0x00008747 imul32  0x00000002 , 0x0000003f 
+ 00030949  0x00008748 iadd  0x00000006 , 0x00000006 
+ 00030950  0x00008749 increase  0x00000001 , 0x00000006 
+ 00030951  0x0000874a copy  0x00000006 , 0x00000012 
+ 00030952  0x0000874b copy  0x00000011 , 0x00000005 
+ 00030953  0x0000874c call  0x00007cda 
+ 00030954  0x0000874d branch  0x00007dba 
+ 00030955  0x00008750 call  0x00007dbc 
+ 00030956  0x00008751 call  0x000078fa 
+ 00030957  0x00008752 rtn  0x00000034 
+ 00030958  0x00008753 fetch  0x00000002 , 0x000043fb 
+ 00030959  0x00008754 ifetcht  0x00000001 , 0x0000003f 
+ 00030960  0x00008755 copy  0x00000002 , 0x00000039 
+ 00030961  0x00008756 add  0x0000003f , 0x00000003 , 0x00000012 
+ 00030962  0x00008757 ifetch  0x00000001 , 0x00000012 
+ 00030963  0x00008758 imul32  0x00000002 , 0x0000003f 
+ 00030964  0x00008759 iadd  0x00000006 , 0x00000006 
+ 00030965  0x0000875a add  0x00000006 , 0x00000002 , 0x00000005 
+ 00030966  0x0000875b copy  0x00000011 , 0x00000006 
+ 00030967  0x0000875c increase  0xffffffff , 0x00000039 
+ 00030968  0x0000875d call  0x00007cda 
+ 00030969  0x0000875e branch  0x00007dba 
+ 00030970  0x00008762 fetch  0x00000002 , 0x000043fb 
+ 00030971  0x00008763 add  0x0000003f , 0x00000002 , 0x00000006 
+ 00030972  0x00008764 ifetch  0x00000001 , 0x00000006 
+ 00030973  0x00008765 rtn 
+ 00030974  0x00008769 call  0x00007902 
+ 00030975  0x0000876a ifetcht  0x00000001 , 0x00000006 
+ 00030976  0x0000876b isub  0x00000002 , 0x0000003f 
+ 00030977  0x0000876c rtn 
+ 00030978  0x00008770 fetch  0x00000002 , 0x000043fb 
+ 00030979  0x00008771 add  0x0000003f , 0x00000001 , 0x00000006 
+ 00030980  0x00008772 ifetch  0x00000001 , 0x00000006 
+ 00030981  0x00008773 rtn 
+ 00030982  0x0000877c bpatch  0x000000fd , 0x0000401f 
+ 00030983  0x0000877d fetch  0x00000001 , 0x00008c22 
+ 00030984  0x0000877e isolate1  0x00000003 , 0x0000003f 
+ 00030985  0x0000877f call  0x00007915 , 0x00000001 
+ 00030986  0x00008780 fetch  0x00000002 , 0x00008c22 
+ 00030987  0x00008781 store  0x00000002 , 0x00008c22 
+ 00030988  0x00008782 store  0x00000002 , 0x00000709 
+ 00030989  0x00008783 call  0x00007973 
+ 00030990  0x00008784 call  0x000079a2 
+ 00030991  0x00008785 call  0x00007b96 
+ 00030992  0x00008786 call  0x00007bdf 
+ 00030993  0x00008787 branch  0x0000796b 
+ 00030994  0x0000878a bpatch  0x000000fe , 0x0000401f 
+ 00030995  0x0000878b call  0x00007396 
+ 00030996  0x0000878c call  0x00007932 
+ 00030997  0x0000878e jam  0x00000000 , 0x00008c00 
+ 00030998  0x0000878f nop  0x00002710 
+ 00030999  0x00008790 jam  0x00000000 , 0x00008c12 
+ 00031000  0x00008791 fetch  0x00000002 , 0x00008050 
+ 00031001  0x00008792 set0  0x0000000a , 0x0000003f 
+ 00031002  0x00008793 store  0x00000002 , 0x00008050 
+ 00031003  0x00008794 jam  0x00000021 , 0x00008c10 
+ 00031004  0x00008795 jam  0x0000009d , 0x00008c11 
+ 00031005  0x00008796 jam  0x0000003c , 0x00008c00 
+ 00031006  0x00008797 setarg  0x00000763 
+ 00031007  0x00008798 store  0x00000002 , 0x00008c02 
+ 00031008  0x00008799 store  0x00000002 , 0x00008c06 
+ 00031009  0x0000879a setarg  0x000007a3 
+ 00031010  0x0000879b store  0x00000002 , 0x00008c04 
+ 00031011  0x0000879c jam  0x00000080 , 0x00008c12 
+ 00031012  0x0000879d jam  0x00000000 , 0x00008c01 
+ 00031013  0x0000879e jam  0x000000ff , 0x00008c22 
+ 00031014  0x0000879f setarg  0x0000095f 
+ 00031015  0x000087a0 arg  0x0000086d , 0x00000005 
+ 00031016  0x000087a1 isub  0x00000005 , 0x00000039 
+ 00031017  0x000087a2 branch  0x00007ca1 
+ 00031018  0x000087a5 fetcht  0x00000001 , 0x0000086c 
+ 00031019  0x000087a6 branch  0x00006edd 
+ 00031020  0x000087a8 fetch  0x00000001 , 0x0000090e 
+ 00031021  0x000087a9 rtn  0x00000034 
+ 00031022  0x000087aa fetcht  0x00000001 , 0x0000086c 
+ 00031023  0x000087ab call  0x00006ee6 
+ 00031024  0x000087ac branch  0x00007915 , 0x00000001 
+ 00031025  0x000087ad rtn 
+ 00031026  0x000087b0 jam  0x00000002 , 0x0000086b 
+ 00031027  0x000087b1 setarg  0x00000000 
+ 00031028  0x000087b2 store  0x00000001 , 0x000007a6 
+ 00031029  0x000087b3 store  0x00000002 , 0x00000865 
+ 00031030  0x000087b4 pincrease  0x00000001 
+ 00031031  0x000087b5 store  0x00000002 , 0x00000867 
+ 00031032  0x000087b6 pincrease  0x00000001 
+ 00031033  0x000087b7 store  0x00000002 , 0x00000869 
+ 00031034  0x000087b8 arg  0x000007fa , 0x00000005 
+ 00031035  0x000087b9 setarg  0x00030404 
+ 00031036  0x000087ba istore  0x00000003 , 0x00000005 
+ 00031037  0x000087bb setarg  0x00000409 
+ 00031038  0x000087bc istore  0x00000002 , 0x00000005 
+ 00031039  0x000087bd arg  0x000007ff , 0x00000005 
+ 00031040  0x000087be setsect  0x00000000 , 0x00015906 
+ 00031041  0x000087bf setsect  0x00000001 , 0x000210d2 
+ 00031042  0x000087c0 setsect  0x00000002 , 0x00010494 
+ 00031043  0x000087c1 setsect  0x00000003 , 0x00000001 
+ 00031044  0x000087c2 istore  0x00000009 , 0x00000005 
+ 00031045  0x000087c3 arg  0x0000081d , 0x00000005 
+ 00031046  0x000087c4 setsect  0x00000000 , 0x0001570f 
+ 00031047  0x000087c5 setsect  0x00000001 , 0x00015c9a 
+ 00031048  0x000087c6 setsect  0x00000002 , 0x000256c6 
+ 00031049  0x000087c7 setsect  0x00000003 , 0x0001cdcd 
+ 00031050  0x000087c8 istore  0x00000009 , 0x00000005 
+ 00031051  0x000087c9 setsect  0x00000000 , 0x00014420 
+ 00031052  0x000087ca setsect  0x00000001 , 0x00025d99 
+ 00031053  0x000087cb setsect  0x00000002 , 0x00025636 
+ 00031054  0x000087cc setsect  0x00000003 , 0x00000001 
+ 00031055  0x000087cd istore  0x00000007 , 0x00000005 
+ 00031056  0x000087ce arg  0x0000083b , 0x00000005 
+ 00031057  0x000087cf setsect  0x00000000 , 0x0001620a 
+ 00031058  0x000087d0 setsect  0x00000001 , 0x00000c8c 
+ 00031059  0x000087d1 setsect  0x00000002 , 0x00030333 
+ 00031060  0x000087d2 setsect  0x00000003 , 0x0000c0c0 
+ 00031061  0x000087d3 istore  0x00000009 , 0x00000005 
+ 00031062  0x000087d4 setsect  0x00000000 , 0x00003130 
+ 00031063  0x000087d5 istore  0x00000002 , 0x00000005 
+ 00031064  0x000087d6 setarg  0x00009272 
+ 00031065  0x000087d7 store  0x00000002 , 0x000007a7 
+ 00031066  0x000087d8 setarg  0x000092cd 
+ 00031067  0x000087d9 store  0x00000002 , 0x000007a9 
+ 00031068  0x000087da arg  0x00009371 , 0x00000006 
+ 00031069  0x000087db arg  0x000007ab , 0x00000005 
+ 00031070  0x000087dc arg  0x00000013 , 0x00000039 
+ 00031071  0x000087dd call  0x00007cda 
+ 00031072  0x000087de arg  0x00009384 , 0x00000006 
+ 00031073  0x000087df arg  0x000007be , 0x00000005 
+ 00031074  0x000087e0 arg  0x0000003c , 0x00000039 
+ 00031075  0x000087e1 call  0x00007cda 
+ 00031076  0x000087e3 fetch  0x00000002 , 0x00000859 
+ 00031077  0x000087e4 branch  0x00007d79 
+ 00031078  0x000087e7 fetch  0x00000001 , 0x0000085b 
+ 00031079  0x000087e8 rtn  0x00000034 
+ 00031080  0x000087e9 store  0x00000001 , 0x000007e0 
+ 00031081  0x000087ea store  0x00000001 , 0x000007f9 
+ 00031082  0x000087eb rtn 
+ 00031083  0x000087ee arg  0x00000001 , 0x00000007 
+ 00031084  0x000087ef call  0x00007cef 
+ 00031085  0x000087f0 nrtn  0x00000034 
+ 00031086  0x000087f1 fetch  0x00000001 , 0x0000090f 
+ 00031087  0x000087f2 nrtn  0x00000034 
+ 00031088  0x000087f3 fetch  0x00000001 , 0x0000090e 
+ 00031089  0x000087f4 ncall  0x00007c38 , 0x00000034 
+ 00031090  0x000087f5 rtn 
+ 00031091  0x000087f8 fetch  0x00000001 , 0x00000709 
+ 00031092  0x000087f9 bbit1  0x00000002 , 0x00007976 
+ 00031093  0x000087fa rtn 
+ 00031094  0x000087fd call  0x0000797b 
+ 00031095  0x000087fe call  0x00007cee 
+ 00031096  0x000087ff setarg  0x00000280 
+ 00031097  0x00008800 arg  0x00000001 , 0x00000007 
+ 00031098  0x00008801 branch  0x00007ce1 
+ 00031099  0x00008804 fetch  0x00000001 , 0x00000900 
+ 00031100  0x00008805 bne  0x00000002 , 0x00007980 
+ 00031101  0x00008806 jam  0x00000000 , 0x0000090f 
+ 00031102  0x00008807 jam  0x00000000 , 0x00000910 
+ 00031103  0x00008808 rtn 
+ 00031104  0x0000880b fetch  0x00000001 , 0x00000912 
+ 00031105  0x0000880c rtn  0x00000034 
+ 00031106  0x0000880d jam  0x00000000 , 0x00000912 
+ 00031107  0x0000880e jam  0x00000002 , 0x00000900 
+ 00031108  0x0000880f jam  0x00000001 , 0x0000090e 
+ 00031109  0x00008810 rtn 
+ 00031110  0x00008813 fetch  0x00000001 , 0x00000709 
+ 00031111  0x00008814 bbit1  0x00000000 , 0x000079af 
+ 00031112  0x00008815 rtn 
+ 00031113  0x00008818 fetchr  0x0000000a , 0x00000002 , 0x00008c02 
+ 00031114  0x00008819 fetchr  0x00000010 , 0x00000002 , 0x00008c04 
+ 00031115  0x0000881a fetchr  0x00000003 , 0x00000002 , 0x00008c06 
+ 00031116  0x0000881b ifetch  0x00000002 , 0x00000003 
+ 00031117  0x0000881c rshift8  0x0000003f , 0x00000002 
+ 00031118  0x0000881d rshift4  0x00000002 , 0x00000002 
+ 00031119  0x0000881e arg  0x00000fff , 0x00000006 
+ 00031120  0x0000881f iand  0x00000006 , 0x00000039 
+ 00031121  0x00008820 storer  0x00000039 , 0x00000002 , 0x0000070c 
+ 00031122  0x00008821 rtn 
+ 00031123  0x00008825 call  0x00007989 
+ 00031124  0x00008827 ifetch  0x00000001 , 0x00000003 
+ 00031125  0x00008828 istore  0x00000001 , 0x00000005 
+ 00031126  0x00008829 loop  0x00007994 
+ 00031127  0x0000882a storer  0x00000003 , 0x00000002 , 0x00008c06 
+ 00031128  0x0000882b rtn 
+ 00031129  0x0000882e arg  0x0000095f , 0x00000005 
+ 00031130  0x0000882f call  0x00007994 
+ 00031131  0x00008830 arg  0x00000963 , 0x00000002 
+ 00031132  0x00008831 storet  0x00000002 , 0x00008c0e 
+ 00031133  0x00008832 fetch  0x00000001 , 0x00000960 
+ 00031134  0x00008833 pincrease  0x00000006 
+ 00031135  0x00008834 istore  0x00000001 , 0x00000002 
+ 00031136  0x00008835 jam  0x00000008 , 0x00008c18 
+ 00031137  0x00008836 rtn 
+ 00031138  0x0000883a bpatch  0x000000ff , 0x0000401f 
+ 00031139  0x0000883b fetch  0x00000001 , 0x00000709 
+ 00031140  0x0000883c rtnbit0  0x00000005 
+ 00031141  0x0000883d call  0x00007989 
+ 00031142  0x0000883e compare  0x0000000d , 0x00000002 , 0x000000ff 
+ 00031143  0x0000883f branch  0x00007999 , 0x00000001 
+ 00031144  0x00008840 arg  0x0000086d , 0x00000005 
+ 00031145  0x00008841 call  0x00007994 
+ 00031146  0x00008842 fetch  0x00000001 , 0x0000070c 
+ 00031147  0x00008843 beq  0x00000000 , 0x00007986 
+ 00031148  0x00008844 beq  0x00000001 , 0x000079b6 
+ 00031149  0x00008845 sub  0x0000003f , 0x00000007 , 0x0000003e 
+ 00031150  0x00008846 rtn  0x00000002 
+ 00031151  0x00008848 bpatchx  0x00000000 , 0x00004020 
+ 00031152  0x00008849 set0  0x00000023 , 0x00000000 
+ 00031153  0x0000884a fetch  0x00000001 , 0x0000086d 
+ 00031154  0x0000884b and_into  0x00000080 , 0x0000003f 
+ 00031155  0x0000884c beq  0x00000080 , 0x000079ba 
+ 00031156  0x0000884d beq  0x00000000 , 0x000079c2 
+ 00031157  0x0000884e branch  0x0000235a 
+ 00031158  0x00008851 fetch  0x00000001 , 0x0000086d 
+ 00031159  0x00008852 rtnbit1  0x00000007 
+ 00031160  0x00008853 call  0x00007b6a 
+ 00031161  0x00008854 branch  0x000079e9 
+ 00031162  0x00008858 fetch  0x00000001 , 0x0000086d 
+ 00031163  0x00008859 rshift4  0x0000003f , 0x0000003f 
+ 00031164  0x0000885a rshift  0x0000003f , 0x0000003f 
+ 00031165  0x0000885b and_into  0x00000003 , 0x0000003f 
+ 00031166  0x0000885c beq  0x00000000 , 0x000079ca 
+ 00031167  0x0000885d beq  0x00000001 , 0x000079d0 
+ 00031168  0x0000885e beq  0x00000002 , 0x000079d5 
+ 00031169  0x0000885f branch  0x0000235a 
+ 00031170  0x00008862 fetch  0x00000001 , 0x0000086d 
+ 00031171  0x00008863 rshift4  0x0000003f , 0x0000003f 
+ 00031172  0x00008864 rshift  0x0000003f , 0x0000003f 
+ 00031173  0x00008865 and_into  0x00000003 , 0x0000003f 
+ 00031174  0x00008866 beq  0x00000000 , 0x000079d6 
+ 00031175  0x00008867 beq  0x00000001 , 0x000079de 
+ 00031176  0x00008868 beq  0x00000002 , 0x000079e3 
+ 00031177  0x00008869 branch  0x0000235a 
+ 00031178  0x0000886c fetch  0x00000001 , 0x0000086e 
+ 00031179  0x0000886d beq  0x00000008 , 0x000079eb 
+ 00031180  0x0000886e beq  0x00000006 , 0x00007a01 
+ 00031181  0x0000886f beq  0x0000000a , 0x00007a46 
+ 00031182  0x00008870 beq  0x00000000 , 0x00007a58 
+ 00031183  0x00008871 branch  0x000079e4 
+ 00031184  0x00008874 fetch  0x00000001 , 0x0000086e 
+ 00031185  0x00008875 beq  0x00000002 , 0x00007a8d 
+ 00031186  0x00008876 beq  0x00000001 , 0x00007a91 
+ 00031187  0x00008877 beq  0x00000003 , 0x00007aa2 
+ 00031188  0x00008878 branch  0x000079e4 
+ 00031189  0x0000887b branch  0x000079e4 
+ 00031190  0x0000887e fetch  0x00000001 , 0x0000086e 
+ 00031191  0x0000887f beq  0x00000001 , 0x00007aac 
+ 00031192  0x00008880 beq  0x00000003 , 0x00007adb 
+ 00031193  0x00008881 beq  0x00000005 , 0x00007b06 
+ 00031194  0x00008882 beq  0x00000009 , 0x00007b1f 
+ 00031195  0x00008883 beq  0x0000000b , 0x00007b3a 
+ 00031196  0x00008884 beq  0x00000007 , 0x000079e4 
+ 00031197  0x00008885 branch  0x000079e4 
+ 00031198  0x00008888 fetch  0x00000001 , 0x0000086e 
+ 00031199  0x00008889 beq  0x0000000a , 0x00007b4b 
+ 00031200  0x0000888a beq  0x00000009 , 0x00007b5d 
+ 00031201  0x0000888b beq  0x0000000b , 0x00007b7c 
+ 00031202  0x0000888c branch  0x000079e4 
+ 00031203  0x0000888f branch  0x000079e4 
+ 00031204  0x00008892 bpatchx  0x00000001 , 0x00004020 
+ 00031205  0x00008893 fetch  0x00000001 , 0x00008c19 
+ 00031206  0x00008894 set1  0x00000000 , 0x0000003f 
+ 00031207  0x00008895 store  0x00000001 , 0x00008c19 
+ 00031208  0x00008896 branch  0x000079e9 
+ 00031209  0x00008899 jam  0x00000001 , 0x00008c1b 
+ 00031210  0x0000889a rtn 
+ 00031211  0x0000889d fetch  0x00000001 , 0x0000086d 
+ 00031212  0x0000889e bne  0x00000080 , 0x000079e4 
+ 00031213  0x0000889f fetch  0x00000001 , 0x00000871 
+ 00031214  0x000088a0 bne  0x00000000 , 0x000079e4 
+ 00031215  0x000088a1 fetch  0x00000001 , 0x00000872 
+ 00031216  0x000088a2 bne  0x00000000 , 0x000079e4 
+ 00031217  0x000088a3 fetch  0x00000001 , 0x00000873 
+ 00031218  0x000088a4 bne  0x00000001 , 0x000079e4 
+ 00031219  0x000088a5 fetch  0x00000001 , 0x00000874 
+ 00031220  0x000088a6 bne  0x00000000 , 0x000079e4 
+ 00031221  0x000088a7 fetch  0x00000001 , 0x0000086f 
+ 00031222  0x000088a8 bne  0x00000000 , 0x000079e4 
+ 00031223  0x000088a9 fetch  0x00000001 , 0x00000870 
+ 00031224  0x000088aa bne  0x00000000 , 0x000079e4 
+ 00031225  0x000088ab fetch  0x00000001 , 0x0000086b 
+ 00031226  0x000088ac beq  0x00000004 , 0x000079fd 
+ 00031227  0x000088ad beq  0x00000003 , 0x000079ff 
+ 00031228  0x000088ae branch  0x000079e4 
+ 00031229  0x000088b1 arg  0x00000001 , 0x00000012 
+ 00031230  0x000088b2 branch  0x00007a72 
+ 00031231  0x000088b5 arg  0x00000001 , 0x00000012 
+ 00031232  0x000088b6 branch  0x00007a70 
+ 00031233  0x000088b9 bpatchx  0x00000002 , 0x00004020 
+ 00031234  0x000088bb fetch  0x00000001 , 0x00000870 
+ 00031235  0x000088bc beq  0x00000001 , 0x00007a14 
+ 00031236  0x000088bd beq  0x00000002 , 0x00007a2d 
+ 00031237  0x000088be beq  0x00000003 , 0x00007a30 
+ 00031238  0x000088bf beq  0x00000021 , 0x00007a09 
+ 00031239  0x000088c0 beq  0x00000022 , 0x00007a3e 
+ 00031240  0x000088c1 branch  0x000079e4 
+ 00031241  0x000088c4 jam  0x00000000 , 0x000008fd 
+ 00031242  0x000088c5 fetch  0x00000001 , 0x00000871 
+ 00031243  0x000088c6 beq  0x00000000 , 0x00007a0e 
+ 00031244  0x000088c7 beq  0x00000001 , 0x00007a11 
+ 00031245  0x000088c8 branch  0x000079e4 
+ 00031246  0x000088cb fetchr  0x00000012 , 0x00000001 , 0x000007d1 
+ 00031247  0x000088cc arg  0x000007d1 , 0x00000011 
+ 00031248  0x000088cd branch  0x00007b8b 
+ 00031249  0x000088d0 fetchr  0x00000012 , 0x00000001 , 0x000007ea 
+ 00031250  0x000088d1 arg  0x000007ea , 0x00000011 
+ 00031251  0x000088d2 branch  0x00007b8b 
+ 00031252  0x000088d8 fetch  0x00000001 , 0x00000911 
+ 00031253  0x000088d9 ncall  0x00007a25 , 0x00000034 
+ 00031254  0x000088da setarg  0x000007ab 
+ 00031255  0x000088db fetcht  0x00000001 , 0x000007ab 
+ 00031256  0x000088dd store  0x00000002 , 0x00000908 
+ 00031257  0x000088de storet  0x00000001 , 0x0000090a 
+ 00031258  0x000088df fetch  0x00000001 , 0x00000873 
+ 00031259  0x000088e0 isub  0x00000002 , 0x0000003e 
+ 00031260  0x000088e1 nbranch  0x00007a23 , 0x00000002 
+ 00031261  0x000088e3 fetch  0x00000001 , 0x0000090a 
+ 00031262  0x000088e5 iforce  0x00000012 
+ 00031263  0x000088e6 fetch  0x00000002 , 0x00000908 
+ 00031264  0x000088e7 add  0x0000003f , 0x00000001 , 0x0000003f 
+ 00031265  0x000088e8 iforce  0x00000011 
+ 00031266  0x000088e9 branch  0x00007b8b 
+ 00031267  0x000088eb fetch  0x00000001 , 0x00000873 
+ 00031268  0x000088ec branch  0x00007a1e 
+ 00031269  0x000088ef fetch  0x00000001 , 0x00008c01 
+ 00031270  0x000088f0 ncall  0x00007a29 , 0x00000034 
+ 00031271  0x000088f1 jam  0x00000000 , 0x00000911 
+ 00031272  0x000088f2 rtn 
+ 00031273  0x000088f4 fetch  0x00000001 , 0x00008c01 
+ 00031274  0x000088f5 set1  0x00000007 , 0x0000003f 
+ 00031275  0x000088f6 store  0x00000001 , 0x00008c01 
+ 00031276  0x000088f7 rtn 
+ 00031277  0x000088fa setarg  0x000007be 
+ 00031278  0x000088fb fetcht  0x00000001 , 0x000007be 
+ 00031279  0x000088fc branch  0x00007a18 
+ 00031280  0x000088ff fetch  0x00000001 , 0x0000086f 
+ 00031281  0x00008900 sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00031282  0x00008901 nbranch  0x000079e4 , 0x00000002 
+ 00031283  0x00008902 fetch  0x00000001 , 0x0000086f 
+ 00031284  0x00008903 arg  0x000007fa , 0x00000011 
+ 00031285  0x00008904 beq  0x00000000 , 0x00007b89 
+ 00031286  0x00008905 set1  0x00000023 , 0x00000000 
+ 00031287  0x00008906 arg  0x000007ff , 0x00000011 
+ 00031288  0x00008907 beq  0x00000001 , 0x00007b89 
+ 00031289  0x00008908 arg  0x0000081d , 0x00000011 
+ 00031290  0x00008909 beq  0x00000002 , 0x00007b89 
+ 00031291  0x0000890a arg  0x0000083b , 0x00000011 
+ 00031292  0x0000890b beq  0x00000003 , 0x00007b89 
+ 00031293  0x0000890c rtn 
+ 00031294  0x0000890f fetch  0x00000002 , 0x00000871 
+ 00031295  0x00008910 beq  0x00000001 , 0x00007a42 
+ 00031296  0x00008911 fetchr  0x00000011 , 0x00000002 , 0x000007a7 
+ 00031297  0x00008912 branch  0x00007b89 
+ 00031298  0x00008914 jam  0x00000001 , 0x0000090e 
+ 00031299  0x00008915 jam  0x00000001 , 0x00000900 
+ 00031300  0x00008916 fetchr  0x00000011 , 0x00000002 , 0x000007a9 
+ 00031301  0x00008917 branch  0x00007b89 
+ 00031302  0x0000891b fetch  0x00000001 , 0x0000086b 
+ 00031303  0x0000891c bne  0x00000004 , 0x000079e4 
+ 00031304  0x0000891d fetch  0x00000001 , 0x0000086d 
+ 00031305  0x0000891e bne  0x00000081 , 0x000079e4 
+ 00031306  0x0000891f fetch  0x00000001 , 0x0000086f 
+ 00031307  0x00008920 bne  0x00000000 , 0x000079e4 
+ 00031308  0x00008921 fetch  0x00000001 , 0x00000870 
+ 00031309  0x00008922 bne  0x00000000 , 0x000079e4 
+ 00031310  0x00008923 fetch  0x00000001 , 0x00000873 
+ 00031311  0x00008924 bne  0x00000001 , 0x000079e4 
+ 00031312  0x00008925 fetch  0x00000001 , 0x00000874 
+ 00031313  0x00008926 bne  0x00000000 , 0x000079e4 
+ 00031314  0x00008927 fetch  0x00000001 , 0x00000871 
+ 00031315  0x00008928 bne  0x00000000 , 0x000079e4 
+ 00031316  0x00008929 fetch  0x00000001 , 0x00000872 
+ 00031317  0x0000892a bne  0x00000000 , 0x000079e4 
+ 00031318  0x0000892b arg  0x00000001 , 0x00000012 
+ 00031319  0x0000892c branch  0x00007a70 
+ 00031320  0x00008930 fetch  0x00000001 , 0x0000086b 
+ 00031321  0x00008931 beq  0x00000002 , 0x000079e4 
+ 00031322  0x00008932 fetch  0x00000001 , 0x0000086f 
+ 00031323  0x00008933 bne  0x00000000 , 0x000079e4 
+ 00031324  0x00008934 fetch  0x00000001 , 0x00000870 
+ 00031325  0x00008935 bne  0x00000000 , 0x000079e4 
+ 00031326  0x00008936 fetch  0x00000001 , 0x00000873 
+ 00031327  0x00008937 bne  0x00000002 , 0x000079e4 
+ 00031328  0x00008938 fetch  0x00000001 , 0x00000874 
+ 00031329  0x00008939 bne  0x00000000 , 0x000079e4 
+ 00031330  0x0000893a fetch  0x00000001 , 0x00000872 
+ 00031331  0x0000893b bne  0x00000000 , 0x000079e4 
+ 00031332  0x0000893c fetch  0x00000001 , 0x0000086d 
+ 00031333  0x0000893d beq  0x00000080 , 0x00007a6b 
+ 00031334  0x0000893e beq  0x00000081 , 0x00007a76 
+ 00031335  0x0000893f beq  0x00000082 , 0x00007a7a 
+ 00031336  0x00008940 branch  0x000079e4 
+ 00031337  0x00008944 jam  0x00000001 , 0x00000903 
+ 00031338  0x00008945 branch  0x00007a74 
+ 00031339  0x00008948 fetch  0x00000001 , 0x00000871 
+ 00031340  0x00008949 bne  0x00000000 , 0x000079e4 
+ 00031341  0x0000894a arg  0x00000002 , 0x00000012 
+ 00031342  0x0000894b fetch  0x00000001 , 0x00000901 
+ 00031343  0x0000894c beq  0x00000001 , 0x00007a69 
+ 00031344  0x0000894f arg  0x00000865 , 0x00000011 
+ 00031345  0x00008950 branch  0x00007b8b 
+ 00031346  0x00008952 arg  0x00000867 , 0x00000011 
+ 00031347  0x00008953 branch  0x00007b8b 
+ 00031348  0x00008955 arg  0x00000869 , 0x00000011 
+ 00031349  0x00008956 branch  0x00007b8b 
+ 00031350  0x00008959 fetch  0x00000001 , 0x0000086b 
+ 00031351  0x0000895a bne  0x00000004 , 0x000079e4 
+ 00031352  0x0000895b arg  0x00000002 , 0x00000012 
+ 00031353  0x0000895c branch  0x00007a70 
+ 00031354  0x0000895f fetch  0x00000001 , 0x0000086b 
+ 00031355  0x00008960 bne  0x00000004 , 0x000079e4 
+ 00031356  0x00008961 fetch  0x00000001 , 0x00000871 
+ 00031357  0x00008962 beq  0x00000081 , 0x00007a87 
+ 00031358  0x00008963 beq  0x00000082 , 0x00007a89 
+ 00031359  0x00008964 beq  0x00000083 , 0x00007a8b 
+ 00031360  0x00008965 and_into  0x0000007f , 0x0000003f 
+ 00031361  0x00008966 beq  0x00000000 , 0x00007a83 
+ 00031362  0x00008967 branch  0x000079e4 
+ 00031363  0x0000896a fetch  0x00000001 , 0x00000904 
+ 00031364  0x0000896c arg  0x00000002 , 0x00000012 
+ 00031365  0x0000896d beq  0x00000001 , 0x00007a72 
+ 00031366  0x0000896e branch  0x00007a70 
+ 00031367  0x00008970 fetch  0x00000001 , 0x00000905 
+ 00031368  0x00008971 branch  0x00007a84 
+ 00031369  0x00008973 fetch  0x00000001 , 0x00000906 
+ 00031370  0x00008974 branch  0x00007a84 
+ 00031371  0x00008976 fetch  0x00000001 , 0x00000907 
+ 00031372  0x00008977 branch  0x00007a84 
+ 00031373  0x0000897a jam  0x00000001 , 0x000008fb 
+ 00031374  0x0000897b arg  0x000008fc , 0x00000011 
+ 00031375  0x0000897c arg  0x00000001 , 0x00000012 
+ 00031376  0x0000897d branch  0x00007b8b 
+ 00031377  0x00008980 fetch  0x00000002 , 0x0000086f 
+ 00031378  0x00008981 arg  0x000001ba , 0x00000002 
+ 00031379  0x00008982 isub  0x00000002 , 0x0000003e 
+ 00031380  0x00008983 nbranch  0x000079e4 , 0x00000005 
+ 00031381  0x00008986 fetch  0x00000001 , 0x000008f8 
+ 00031382  0x00008987 nbranch  0x00007a9f , 0x00000034 
+ 00031383  0x00008988 jam  0x00000000 , 0x000008b5 
+ 00031384  0x0000898a fetch  0x00000001 , 0x00000873 
+ 00031385  0x0000898b iforce  0x00000012 
+ 00031386  0x0000898c arg  0x000008b5 , 0x00000011 
+ 00031387  0x0000898d call  0x00007b8b 
+ 00031388  0x0000898f arg  0x000008b5 , 0x00000005 
+ 00031389  0x00008990 arg  0x00000040 , 0x00000039 
+ 00031390  0x00008991 branch  0x00007ca3 
+ 00031391  0x00008993 jam  0x00000000 , 0x000008f8 
+ 00031392  0x00008994 jam  0x00000001 , 0x000008b5 
+ 00031393  0x00008995 branch  0x00007a98 
+ 00031394  0x00008998 fetch  0x00000001 , 0x00000873 
+ 00031395  0x00008999 bne  0x00000001 , 0x000079e4 
+ 00031396  0x0000899a jam  0x00000001 , 0x000008fd 
+ 00031397  0x0000899b arg  0x00000001 , 0x00000012 
+ 00031398  0x0000899c fetch  0x00000001 , 0x000008ff 
+ 00031399  0x0000899d beq  0x00000000 , 0x00007aaa 
+ 00031400  0x0000899e beq  0x00000001 , 0x00007aab 
+ 00031401  0x0000899f branch  0x00007a70 
+ 00031402  0x000089a1 branch  0x00007a72 
+ 00031403  0x000089a3 branch  0x00007a70 
+ 00031404  0x000089a9 fetch  0x00000001 , 0x0000086b 
+ 00031405  0x000089aa bne  0x00000004 , 0x000079e4 
+ 00031406  0x000089ab fetch  0x00000001 , 0x00000873 
+ 00031407  0x000089ac bne  0x00000000 , 0x000079e4 
+ 00031408  0x000089ad fetch  0x00000001 , 0x00000874 
+ 00031409  0x000089ae bne  0x00000000 , 0x000079e4 
+ 00031410  0x000089af fetch  0x00000001 , 0x00000870 
+ 00031411  0x000089b0 bne  0x00000000 , 0x000079e4 
+ 00031412  0x000089b1 fetch  0x00000001 , 0x00000872 
+ 00031413  0x000089b2 bne  0x00000000 , 0x000079e4 
+ 00031414  0x000089b3 fetch  0x00000001 , 0x0000086d 
+ 00031415  0x000089b4 beq  0x00000000 , 0x00007abb 
+ 00031416  0x000089b5 beq  0x00000001 , 0x00007ac8 
+ 00031417  0x000089b6 beq  0x00000002 , 0x00007ac9 
+ 00031418  0x000089b7 branch  0x000079e4 
+ 00031419  0x000089ba fetch  0x00000001 , 0x0000086f 
+ 00031420  0x000089bb bne  0x00000001 , 0x000079e4 
+ 00031421  0x000089bc fetch  0x00000001 , 0x00008c00 
+ 00031422  0x000089bd set0  0x00000007 , 0x0000003f 
+ 00031423  0x000089be store  0x00000001 , 0x00008c00 
+ 00031424  0x000089bf jam  0x00000000 , 0x00000901 
+ 00031425  0x000089c0 jam  0x00000001 , 0x00000902 
+ 00031426  0x000089c1 fetch  0x00000001 , 0x00000903 
+ 00031427  0x000089c2 branch  0x000079e9 , 0x00000034 
+ 00031428  0x000089c3 jam  0x00000000 , 0x00000903 
+ 00031429  0x000089c4 jam  0x00000000 , 0x00000902 
+ 00031430  0x000089c5 jam  0x00000002 , 0x00000900 
+ 00031431  0x000089c6 branch  0x000079e9 
+ 00031432  0x000089c9 branch  0x000079e4 
+ 00031433  0x000089cc fetch  0x00000001 , 0x0000086f 
+ 00031434  0x000089cd bne  0x00000000 , 0x000079e4 
+ 00031435  0x000089ce fetch  0x00000001 , 0x00000871 
+ 00031436  0x000089cf beq  0x00000081 , 0x00007ad4 
+ 00031437  0x000089d0 beq  0x00000082 , 0x00007ad7 
+ 00031438  0x000089d1 beq  0x00000083 , 0x00007ad9 
+ 00031439  0x000089d2 and_into  0x0000007f , 0x0000003f 
+ 00031440  0x000089d3 beq  0x00000000 , 0x00007ad2 
+ 00031441  0x000089d4 branch  0x000079e4 
+ 00031442  0x000089d7 jam  0x00000000 , 0x00000904 
+ 00031443  0x000089d8 branch  0x000079e9 
+ 00031444  0x000089da jam  0x00000000 , 0x00000905 
+ 00031445  0x000089dc jam  0x00000001 , 0x00000912 
+ 00031446  0x000089dd branch  0x000079e9 
+ 00031447  0x000089df jam  0x00000000 , 0x00000906 
+ 00031448  0x000089e0 branch  0x00007ad5 
+ 00031449  0x000089e2 jam  0x00000000 , 0x00000907 
+ 00031450  0x000089e3 branch  0x00007ad5 
+ 00031451  0x000089e7 fetch  0x00000001 , 0x00000873 
+ 00031452  0x000089e8 bne  0x00000000 , 0x000079e4 
+ 00031453  0x000089e9 fetch  0x00000001 , 0x00000874 
+ 00031454  0x000089ea bne  0x00000000 , 0x000079e4 
+ 00031455  0x000089eb fetch  0x00000001 , 0x0000086d 
+ 00031456  0x000089ec beq  0x00000000 , 0x00007ae4 
+ 00031457  0x000089ed beq  0x00000001 , 0x00007af2 
+ 00031458  0x000089ee beq  0x00000002 , 0x00007af3 
+ 00031459  0x000089ef branch  0x000079e4 
+ 00031460  0x000089f2 fetch  0x00000001 , 0x0000086f 
+ 00031461  0x000089f3 bne  0x00000001 , 0x000079e4 
+ 00031462  0x000089f4 call  0x000048b1 
+ 00031463  0x000089f5 fetch  0x00000001 , 0x00008c00 
+ 00031464  0x000089f6 set1  0x00000007 , 0x0000003f 
+ 00031465  0x000089f7 store  0x00000001 , 0x00008c00 
+ 00031466  0x000089f8 jam  0x00000001 , 0x00000901 
+ 00031467  0x000089f9 jam  0x00000003 , 0x00000900 
+ 00031468  0x000089fa jam  0x00000000 , 0x000008f9 
+ 00031469  0x000089fb call  0x000079e9 
+ 00031470  0x000089fd call  0x00007cee 
+ 00031471  0x000089fe setarg  0x00001388 
+ 00031472  0x000089ff arg  0x0000000f , 0x00000007 
+ 00031473  0x00008a00 branch  0x00007ce1 
+ 00031474  0x00008a03 branch  0x000079e4 
+ 00031475  0x00008a06 fetch  0x00000001 , 0x0000086f 
+ 00031476  0x00008a07 bne  0x00000000 , 0x000079e4 
+ 00031477  0x00008a08 fetch  0x00000001 , 0x00000870 
+ 00031478  0x00008a09 bne  0x00000000 , 0x000079e4 
+ 00031479  0x00008a0a fetch  0x00000001 , 0x00000871 
+ 00031480  0x00008a0b beq  0x00000081 , 0x00007b00 
+ 00031481  0x00008a0c beq  0x00000082 , 0x00007b02 
+ 00031482  0x00008a0d beq  0x00000083 , 0x00007b04 
+ 00031483  0x00008a0e and_into  0x0000007f , 0x0000003f 
+ 00031484  0x00008a0f beq  0x00000000 , 0x00007afe 
+ 00031485  0x00008a10 branch  0x000079e4 
+ 00031486  0x00008a13 jam  0x00000001 , 0x00000904 
+ 00031487  0x00008a14 branch  0x000079e9 
+ 00031488  0x00008a16 jam  0x00000001 , 0x00000905 
+ 00031489  0x00008a17 branch  0x000079e9 
+ 00031490  0x00008a19 jam  0x00000001 , 0x00000906 
+ 00031491  0x00008a1a branch  0x000079e9 
+ 00031492  0x00008a1c jam  0x00000001 , 0x00000907 
+ 00031493  0x00008a1d branch  0x000079e9 
+ 00031494  0x00008a21 fetch  0x00000001 , 0x0000086d 
+ 00031495  0x00008a22 bne  0x00000000 , 0x000079e4 
+ 00031496  0x00008a23 fetch  0x00000001 , 0x00000871 
+ 00031497  0x00008a24 bne  0x00000000 , 0x000079e4 
+ 00031498  0x00008a25 fetch  0x00000001 , 0x00000872 
+ 00031499  0x00008a26 bne  0x00000000 , 0x000079e4 
+ 00031500  0x00008a27 fetch  0x00000001 , 0x00000873 
+ 00031501  0x00008a28 bne  0x00000000 , 0x000079e4 
+ 00031502  0x00008a29 fetch  0x00000001 , 0x00000874 
+ 00031503  0x00008a2a bne  0x00000000 , 0x000079e4 
+ 00031504  0x00008a2b fetch  0x00000001 , 0x00000870 
+ 00031505  0x00008a2c bne  0x00000000 , 0x000079e4 
+ 00031506  0x00008a2d fetch  0x00000001 , 0x0000086f 
+ 00031507  0x00008a2e and_into  0x00000080 , 0x0000003f 
+ 00031508  0x00008a2f bne  0x00000000 , 0x000079e4 
+ 00031509  0x00008a30 fetch  0x00000001 , 0x0000086f 
+ 00031510  0x00008a31 bne  0x00000000 , 0x00007b1d 
+ 00031511  0x00008a33 jam  0x00000002 , 0x0000086b 
+ 00031512  0x00008a35 fetch  0x00000001 , 0x0000086f 
+ 00031513  0x00008a36 store  0x00000001 , 0x00008c01 
+ 00031514  0x00008a37 call  0x000079e9 
+ 00031515  0x00008a38 jam  0x00000001 , 0x00000911 
+ 00031516  0x00008a39 rtn 
+ 00031517  0x00008a3b jam  0x00000003 , 0x0000086b 
+ 00031518  0x00008a3c branch  0x00007b18 
+ 00031519  0x00008a40 fetch  0x00000001 , 0x0000086b 
+ 00031520  0x00008a41 beq  0x00000002 , 0x000079e4 
+ 00031521  0x00008a42 fetch  0x00000001 , 0x0000086d 
+ 00031522  0x00008a43 bne  0x00000000 , 0x000079e4 
+ 00031523  0x00008a44 fetch  0x00000001 , 0x00000871 
+ 00031524  0x00008a45 bne  0x00000000 , 0x000079e4 
+ 00031525  0x00008a46 fetch  0x00000001 , 0x00000872 
+ 00031526  0x00008a47 bne  0x00000000 , 0x000079e4 
+ 00031527  0x00008a48 fetch  0x00000001 , 0x00000873 
+ 00031528  0x00008a49 bne  0x00000000 , 0x000079e4 
+ 00031529  0x00008a4a fetch  0x00000001 , 0x00000874 
+ 00031530  0x00008a4b bne  0x00000000 , 0x000079e4 
+ 00031531  0x00008a4c fetch  0x00000001 , 0x00000870 
+ 00031532  0x00008a4d bne  0x00000000 , 0x000079e4 
+ 00031533  0x00008a4e fetch  0x00000001 , 0x0000086f 
+ 00031534  0x00008a4f sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00031535  0x00008a50 nbranch  0x000079e4 , 0x00000002 
+ 00031536  0x00008a51 fetch  0x00000001 , 0x0000086b 
+ 00031537  0x00008a52 beq  0x00000003 , 0x00007b34 
+ 00031538  0x00008a53 beq  0x00000004 , 0x00007b34 
+ 00031539  0x00008a54 branch  0x000079e4 
+ 00031540  0x00008a58 fetch  0x00000001 , 0x0000086f 
+ 00031541  0x00008a59 beq  0x00000000 , 0x00007b38 
+ 00031542  0x00008a5a jam  0x00000004 , 0x0000086b 
+ 00031543  0x00008a5b branch  0x000079e9 
+ 00031544  0x00008a5d jam  0x00000003 , 0x0000086b 
+ 00031545  0x00008a5e branch  0x000079e9 
+ 00031546  0x00008a62 fetch  0x00000001 , 0x0000086b 
+ 00031547  0x00008a63 bne  0x00000004 , 0x000079e4 
+ 00031548  0x00008a64 fetch  0x00000001 , 0x0000086d 
+ 00031549  0x00008a65 bne  0x00000001 , 0x000079e4 
+ 00031550  0x00008a66 fetch  0x00000001 , 0x0000086f 
+ 00031551  0x00008a67 bne  0x00000000 , 0x000079e4 
+ 00031552  0x00008a68 fetch  0x00000001 , 0x00000870 
+ 00031553  0x00008a69 bne  0x00000000 , 0x000079e4 
+ 00031554  0x00008a6a fetch  0x00000001 , 0x00000873 
+ 00031555  0x00008a6b bne  0x00000000 , 0x000079e4 
+ 00031556  0x00008a6c fetch  0x00000001 , 0x00000874 
+ 00031557  0x00008a6d bne  0x00000000 , 0x000079e4 
+ 00031558  0x00008a6e fetch  0x00000001 , 0x00000871 
+ 00031559  0x00008a6f bne  0x00000000 , 0x000079e4 
+ 00031560  0x00008a70 fetch  0x00000001 , 0x00000872 
+ 00031561  0x00008a71 bne  0x00000000 , 0x000079e4 
+ 00031562  0x00008a72 branch  0x000079e9 
+ 00031563  0x00008a76 bpatchx  0x00000003 , 0x00004020 
+ 00031564  0x00008a77 jam  0x00000001 , 0x000008fb 
+ 00031565  0x00008a78 fetch  0x00000001 , 0x00000870 
+ 00031566  0x00008a79 store  0x00000001 , 0x000008fc 
+ 00031567  0x00008a7a fetch  0x00000001 , 0x00000871 
+ 00031568  0x00008a7b sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00031569  0x00008a7c call  0x00007b59 , 0x00000005 
+ 00031570  0x00008a7d fetch  0x00000001 , 0x00000900 
+ 00031571  0x00008a7e bne  0x00000004 , 0x000079e9 
+ 00031572  0x00008a7f jam  0x00000002 , 0x00000900 
+ 00031573  0x00008a80 call  0x000079e9 
+ 00031574  0x00008a81 nop  0x00007530 
+ 00031575  0x00008a82 nop  0x00007530 
+ 00031576  0x00008a83 rtn 
+ 00031577  0x00008a85 jam  0x00000001 , 0x0000090e 
+ 00031578  0x00008a86 jam  0x00000000 , 0x00000902 
+ 00031579  0x00008a87 jam  0x00000004 , 0x00000900 
+ 00031580  0x00008a88 rtn 
+ 00031581  0x00008a8c nop  0x00003a98 
+ 00031582  0x00008a8d arg  0x00000875 , 0x00000005 
+ 00031583  0x00008a8e call  0x00007993 
+ 00031584  0x00008a8f jam  0x00000001 , 0x000008f7 
+ 00031585  0x00008a90 call  0x00007b6e 
+ 00031586  0x00008a91 fetch  0x00000002 , 0x0000086f 
+ 00031587  0x00008a92 store  0x00000002 , 0x000008f5 
+ 00031588  0x00008a93 call  0x000079e9 
+ 00031589  0x00008a94 fetch  0x00000001 , 0x000043cb 
+ 00031590  0x00008a95 rtnne  0x00000004 
+ 00031591  0x00008a96 fetch  0x00000001 , 0x000008f9 
+ 00031592  0x00008a97 rtn  0x00000034 
+ 00031593  0x00008a98 fetch  0x00000001 , 0x00000875 
+ 00031594  0x00008a9a store  0x00000001 , 0x00004621 
+ 00031595  0x00008a9b jam  0x00000000 , 0x000008f9 
+ 00031596  0x00008a9c jam  0x00000003 , 0x00004611 
+ 00031597  0x00008a9d rtn 
+ 00031598  0x00008aa1 fetch  0x00000002 , 0x0000086f 
+ 00031599  0x00008aa2 arg  0x00000200 , 0x00000002 
+ 00031600  0x00008aa3 isub  0x00000002 , 0x0000003e 
+ 00031601  0x00008aa4 nrtn  0x00000005 
+ 00031602  0x00008aa5 fetch  0x00000002 , 0x00000871 
+ 00031603  0x00008aa6 arg  0x00000000 , 0x00000002 
+ 00031604  0x00008aa7 isub  0x00000002 , 0x0000003e 
+ 00031605  0x00008aa8 nrtn  0x00000005 
+ 00031606  0x00008aa9 fetch  0x00000002 , 0x00000873 
+ 00031607  0x00008aaa arg  0x00000001 , 0x00000002 
+ 00031608  0x00008aab isub  0x00000002 , 0x0000003e 
+ 00031609  0x00008aac nrtn  0x00000005 
+ 00031610  0x00008aad jam  0x00000001 , 0x000008f9 
+ 00031611  0x00008aae rtn 
+ 00031612  0x00008ab2 fetch  0x00000001 , 0x00000873 
+ 00031613  0x00008ab3 bne  0x00000000 , 0x000079e4 
+ 00031614  0x00008ab4 fetch  0x00000001 , 0x0000086f 
+ 00031615  0x00008ab5 beq  0x00000000 , 0x00007b82 
+ 00031616  0x00008ab6 beq  0x00000001 , 0x00007b85 
+ 00031617  0x00008ab7 branch  0x000079e4 
+ 00031618  0x00008ab9 jam  0x00000000 , 0x000008fe 
+ 00031619  0x00008aba jam  0x00000001 , 0x000008ff 
+ 00031620  0x00008abb branch  0x000079e9 
+ 00031621  0x00008abd jam  0x00000001 , 0x000008fa 
+ 00031622  0x00008abe jam  0x00000001 , 0x000008fe 
+ 00031623  0x00008abf jam  0x00000000 , 0x000008ff 
+ 00031624  0x00008ac0 branch  0x000079e9 
+ 00031625  0x00008ac4 ifetchr  0x00000012 , 0x00000001 , 0x00000011 
+ 00031626  0x00008ac5 increase  0x00000001 , 0x00000011 
+ 00031627  0x00008ac8 bpatchx  0x00000004 , 0x00004020 
+ 00031628  0x00008ac9 set1  0x0000000e , 0x00000000 
+ 00031629  0x00008aca bmark0  0x00000023 , 0x00007b90 
+ 00031630  0x00008acb increase  0x00000001 , 0x00000012 
+ 00031631  0x00008acc lshift  0x00000012 , 0x00000012 
+ 00031632  0x00008ace storer  0x00000011 , 0x00000002 , 0x000007a4 
+ 00031633  0x00008acf storer  0x00000012 , 0x00000001 , 0x000007a6 
+ 00031634  0x00008ad0 branch  0x00007b96 
+ 00031635  0x00008ad1 rtn 
+ 00031636  0x00008ad4 arg  0x00000000 , 0x00000007 
+ 00031637  0x00008ad5 branch  0x00007bd7 
+ 00031638  0x00008adb bpatchx  0x00000005 , 0x00004020 
+ 00031639  0x00008adc fetch  0x00000001 , 0x00008c25 
+ 00031640  0x00008add rtnbit1  0x00000000 
+ 00031641  0x00008ade fetch  0x00000001 , 0x000007a6 
+ 00031642  0x00008adf rtn  0x00000034 
+ 00031643  0x00008ae0 copy  0x0000003f , 0x00000039 
+ 00031644  0x00008ae1 iforce  0x00000002 
+ 00031645  0x00008ae2 fetch  0x00000002 , 0x00000873 
+ 00031646  0x00008ae3 sub  0x0000003f , 0x00000040 , 0x0000003e 
+ 00031647  0x00008ae4 branch  0x00007ba4 , 0x00000002 
+ 00031648  0x00008ae5 sub  0x00000039 , 0x00000040 , 0x0000003e 
+ 00031649  0x00008ae6 branch  0x00007ba8 , 0x00000002 
+ 00031650  0x00008ae7 force  0x00000040 , 0x00000039 
+ 00031651  0x00008ae8 branch  0x00007ba8 
+ 00031652  0x00008aea isub  0x00000039 , 0x0000003e 
+ 00031653  0x00008aeb branch  0x00007ba8 , 0x00000002 
+ 00031654  0x00008aec iforce  0x00000039 
+ 00031655  0x00008aed store  0x00000001 , 0x000007a6 
+ 00031656  0x00008aef fetch  0x00000001 , 0x000007a6 
+ 00031657  0x00008af0 isub  0x00000039 , 0x0000003f 
+ 00031658  0x00008af1 store  0x00000001 , 0x000007a6 
+ 00031659  0x00008af2 add  0x00000039 , 0xffffffff , 0x0000003f 
+ 00031660  0x00008af3 store  0x00000001 , 0x0000070e 
+ 00031661  0x00008af4 bmark0  0x00000023 , 0x00007bba 
+ 00031662  0x00008af5 rshift  0x0000003f , 0x0000003f 
+ 00031663  0x00008af6 add  0x00000039 , 0xffffffff , 0x0000003f 
+ 00031664  0x00008af7 store  0x00000001 , 0x0000070e 
+ 00031665  0x00008af8 bmark0  0x0000000e , 0x00007bba 
+ 00031666  0x00008af9 set0  0x0000000e , 0x00000000 
+ 00031667  0x00008afa istoret  0x00000001 , 0x00000005 
+ 00031668  0x00008afb setarg  0x00000003 
+ 00031669  0x00008afc istore  0x00000001 , 0x00000005 
+ 00031670  0x00008afd increase  0xffffffff , 0x00000039 
+ 00031671  0x00008afe copy  0x00000039 , 0x0000003f 
+ 00031672  0x00008aff nbranch  0x00007bba , 0x00000005 
+ 00031673  0x00008b00 increase  0x00000001 , 0x00000039 
+ 00031674  0x00008b02 fetch  0x00000002 , 0x000007a4 
+ 00031675  0x00008b03 copy  0x0000003f , 0x00000006 
+ 00031676  0x00008b05 ifetch  0x00000001 , 0x00000006 
+ 00031677  0x00008b06 istore  0x00000001 , 0x00000005 
+ 00031678  0x00008b07 bmark0  0x00000023 , 0x00007bc1 
+ 00031679  0x00008b08 setarg  0x00000000 
+ 00031680  0x00008b09 istore  0x00000001 , 0x00000005 
+ 00031681  0x00008b0b loop  0x00007bbc 
+ 00031682  0x00008b0c copy  0x00000006 , 0x0000003f 
+ 00031683  0x00008b0d store  0x00000002 , 0x000007a4 
+ 00031684  0x00008b0e setarg  0x0000070e 
+ 00031685  0x00008b0f store  0x00000002 , 0x00008c08 
+ 00031686  0x00008b10 arg  0x00000000 , 0x00000007 
+ 00031687  0x00008b11 call  0x00007bd7 
+ 00031688  0x00008b12 fetch  0x00000001 , 0x000007a6 
+ 00031689  0x00008b13 nrtn  0x00000034 
+ 00031690  0x00008b14 jam  0x00000002 , 0x00008c1b 
+ 00031691  0x00008b15 fetch  0x00000001 , 0x00000900 
+ 00031692  0x00008b16 rtnne  0x00000001 
+ 00031693  0x00008b17 jam  0x00000002 , 0x00000900 
+ 00031694  0x00008b18 rtn 
+ 00031695  0x00008b1d arg  0x0000074f , 0x00000011 
+ 00031696  0x00008b1e arg  0x00000001 , 0x00000007 
+ 00031697  0x00008b1f storer  0x00000011 , 0x00000002 , 0x00008c0a 
+ 00031698  0x00008b21 add  0x00000039 , 0xffffffff , 0x0000003f 
+ 00031699  0x00008b22 istore  0x00000001 , 0x00000011 
+ 00031700  0x00008b24 ifetch  0x00000001 , 0x00000006 
+ 00031701  0x00008b25 istore  0x00000001 , 0x00000005 
+ 00031702  0x00008b26 loop  0x00007bd4 
+ 00031703  0x00008b28 setarg  0x00000000 
+ 00031704  0x00008b29 qset1  0x0000003f 
+ 00031705  0x00008b2a store  0x00000001 , 0x00008c18 
+ 00031706  0x00008b2b rtn 
+ 00031707  0x00008b2e arg  0x00000002 , 0x00000007 
+ 00031708  0x00008b2f arg  0x00000759 , 0x00000011 
+ 00031709  0x00008b30 storer  0x00000011 , 0x00000002 , 0x00008c0c 
+ 00031710  0x00008b31 branch  0x00007bd2 
+ 00031711  0x00008b34 bpatchx  0x00000006 , 0x00004020 
+ 00031712  0x00008b35 fetch  0x00000001 , 0x0000090d 
+ 00031713  0x00008b36 rtn  0x00000034 
+ 00031714  0x00008b37 fetch  0x00000001 , 0x00008c25 
+ 00031715  0x00008b38 and_into  0x0000000f , 0x0000003f 
+ 00031716  0x00008b39 nbranch  0x00007c30 , 0x00000034 
+ 00031717  0x00008b3a fetch  0x00000001 , 0x0000090e 
+ 00031718  0x00008b3b branch  0x00007c06 , 0x00000034 
+ 00031719  0x00008b3c fetch  0x00000001 , 0x00000900 
+ 00031720  0x00008b3d beq  0x00000003 , 0x00007c40 
+ 00031721  0x00008b3e bne  0x00000002 , 0x00007c06 
+ 00031722  0x00008b3f fetch  0x00000001 , 0x00000902 
+ 00031723  0x00008b40 nbranch  0x00007c06 , 0x00000034 
+ 00031724  0x00008b41 call  0x00007bee 
+ 00031725  0x00008b42 branch  0x00007bf9 
+ 00031726  0x00008b45 fetch  0x00000001 , 0x00008c25 
+ 00031727  0x00008b46 rtnbit1  0x00000001 
+ 00031728  0x00008b47 fetch  0x00000001 , 0x0000090d 
+ 00031729  0x00008b48 rtnbit0  0x00000001 
+ 00031730  0x00008b49 fetch  0x00000001 , 0x0000090d 
+ 00031731  0x00008b4a set0  0x00000001 , 0x0000003f 
+ 00031732  0x00008b4b store  0x00000001 , 0x0000090d 
+ 00031733  0x00008b4c fetch  0x00000001 , 0x0000090b 
+ 00031734  0x00008b4d rtn  0x00000034 
+ 00031735  0x00008b4e beq  0x00000010 , 0x00007c28 
+ 00031736  0x00008b4f branch  0x0000235a 
+ 00031737  0x00008b52 fetch  0x00000001 , 0x00008c25 
+ 00031738  0x00008b53 rtnbit1  0x00000002 
+ 00031739  0x00008b54 fetch  0x00000001 , 0x0000090d 
+ 00031740  0x00008b55 rtnbit0  0x00000002 
+ 00031741  0x00008b56 fetch  0x00000001 , 0x0000090d 
+ 00031742  0x00008b57 set0  0x00000002 , 0x0000003f 
+ 00031743  0x00008b58 store  0x00000001 , 0x0000090d 
+ 00031744  0x00008b59 fetch  0x00000001 , 0x0000090c 
+ 00031745  0x00008b5a rtn  0x00000034 
+ 00031746  0x00008b5b beq  0x00000020 , 0x00007c09 
+ 00031747  0x00008b5c beq  0x00000021 , 0x00007c24 
+ 00031748  0x00008b5d beq  0x00000022 , 0x00007c2c 
+ 00031749  0x00008b5e branch  0x0000235a 
+ 00031750  0x00008b62 arg  0x00000913 , 0x00000005 
+ 00031751  0x00008b63 arg  0x00000040 , 0x00000039 
+ 00031752  0x00008b64 branch  0x00007ca3 
+ 00031753  0x00008b67 fetch  0x00000001 , 0x000008fb 
+ 00031754  0x00008b68 fetcht  0x00000001 , 0x000008fd 
+ 00031755  0x00008b69 iand  0x00000002 , 0x0000003f 
+ 00031756  0x00008b6a branch  0x00007c20 , 0x00000034 
+ 00031757  0x00008b6b fetcht  0x00000001 , 0x000008fe 
+ 00031758  0x00008b6c iadd  0x00000002 , 0x0000003f 
+ 00031759  0x00008b6d beq  0x00000001 , 0x00007c11 
+ 00031760  0x00008b6e branch  0x00007c20 
+ 00031761  0x00008b71 jam  0x00000000 , 0x0000090c 
+ 00031762  0x00008b73 fetch  0x00000001 , 0x00000914 
+ 00031763  0x00008b74 beq  0x00000002 , 0x00007c21 
+ 00031764  0x00008b75 beq  0x00000003 , 0x00007c21 
+ 00031765  0x00008b76 fetch  0x00000001 , 0x00000914 
+ 00031766  0x00008b77 store  0x00000001 , 0x00000913 
+ 00031767  0x00008b78 fetch  0x00000001 , 0x00000915 
+ 00031768  0x00008b79 istore  0x00000001 , 0x00000005 
+ 00031769  0x00008b7a fetch  0x00000001 , 0x00000917 
+ 00031770  0x00008b7b istore  0x00000001 , 0x00000005 
+ 00031771  0x00008b7c fetch  0x00000001 , 0x00000919 
+ 00031772  0x00008b7d istore  0x00000001 , 0x00000005 
+ 00031773  0x00008b7e arg  0x00000004 , 0x00000039 
+ 00031774  0x00008b7f arg  0x00000913 , 0x00000006 
+ 00031775  0x00008b80 branch  0x00007bdb 
+ 00031776  0x00008b83 jam  0x00000000 , 0x0000090c 
+ 00031777  0x00008b85 arg  0x00000008 , 0x00000039 
+ 00031778  0x00008b86 arg  0x00000913 , 0x00000006 
+ 00031779  0x00008b87 branch  0x00007bdb 
+ 00031780  0x00008b8a jam  0x00000000 , 0x0000090c 
+ 00031781  0x00008b8b arg  0x00000003 , 0x00000039 
+ 00031782  0x00008b8c arg  0x00000933 , 0x00000006 
+ 00031783  0x00008b8d branch  0x00007bdb 
+ 00031784  0x00008b90 jam  0x00000000 , 0x0000090b 
+ 00031785  0x00008b91 arg  0x00000008 , 0x00000039 
+ 00031786  0x00008b92 arg  0x00000923 , 0x00000006 
+ 00031787  0x00008b93 branch  0x00007bcf 
+ 00031788  0x00008b96 jam  0x00000000 , 0x0000090c 
+ 00031789  0x00008b97 arg  0x00000002 , 0x00000039 
+ 00031790  0x00008b98 arg  0x00000943 , 0x00000006 
+ 00031791  0x00008b99 branch  0x00007bdb 
+ 00031792  0x00008b9c fetch  0x00000001 , 0x00000900 
+ 00031793  0x00008b9d beq  0x00000002 , 0x00007c33 
+ 00031794  0x00008b9e rtn 
+ 00031795  0x00008ba0 fetch  0x00000001 , 0x00008c00 
+ 00031796  0x00008ba1 set1  0x00000007 , 0x0000003f 
+ 00031797  0x00008ba2 store  0x00000001 , 0x00008c00 
+ 00031798  0x00008ba3 jam  0x00000001 , 0x00000910 
+ 00031799  0x00008ba4 rtn 
+ 00031800  0x00008ba7 fetch  0x00000001 , 0x00000900 
+ 00031801  0x00008ba8 rtneq  0x00000003 
+ 00031802  0x00008ba9 beq  0x00000002 , 0x00007c3c 
+ 00031803  0x00008baa rtn 
+ 00031804  0x00008bac fetch  0x00000001 , 0x00000910 
+ 00031805  0x00008bad rtn  0x00000034 
+ 00031806  0x00008bae jam  0x00000001 , 0x0000090f 
+ 00031807  0x00008baf branch  0x00007c43 
+ 00031808  0x00008bb2 arg  0x0000000f , 0x00000007 
+ 00031809  0x00008bb3 call  0x00007cef 
+ 00031810  0x00008bb4 nrtn  0x00000034 
+ 00031811  0x00008bb6 fetch  0x00000001 , 0x00008c00 
+ 00031812  0x00008bb7 rtnbit0  0x00000007 
+ 00031813  0x00008bb8 jam  0x000000fc , 0x00008c00 
+ 00031814  0x00008bb9 nop  0x00007530 
+ 00031815  0x00008bba jam  0x0000003c , 0x00008c00 
+ 00031816  0x00008bbb rtn 
+ 00031817  0x00008bc3 storer  0x00000005 , 0x00000002 , 0x00000691 
+ 00031818  0x00008bc4 storet  0x00000008 , 0x00000678 
+ 00031819  0x00008bc5 storer  0x0000000b , 0x00000004 , 0x00000680 
+ 00031820  0x00008bc6 call  0x00007c51 
+ 00031821  0x00008bc7 storer  0x00000006 , 0x00000002 , 0x0000068f 
+ 00031822  0x00008bc8 storer  0x00000039 , 0x00000002 , 0x0000069b 
+ 00031823  0x00008bc9 storer  0x00000007 , 0x00000002 , 0x00000699 
+ 00031824  0x00008bca rtn 
+ 00031825  0x00008bcd storer  0x00000011 , 0x00000004 , 0x00000684 
+ 00031826  0x00008bce storer  0x00000012 , 0x00000004 , 0x00000688 
+ 00031827  0x00008bcf storer  0x00000013 , 0x00000003 , 0x0000068c 
+ 00031828  0x00008bd0 rtn 
+ 00031829  0x00008bd3 bpatchx  0x00000007 , 0x00004020 
+ 00031830  0x00008bd4 fetch  0x00000002 , 0x00000691 
+ 00031831  0x00008bd5 iforce  0x00000005 
+ 00031832  0x00008bd6 fetcht  0x00000008 , 0x00000678 
+ 00031833  0x00008bd7 fetchr  0x0000000b , 0x00000004 , 0x00000680 
+ 00031834  0x00008bd8 call  0x00007c60 
+ 00031835  0x00008bd9 fetchr  0x00000039 , 0x00000002 , 0x0000069b 
+ 00031836  0x00008bda fetchr  0x00000007 , 0x00000002 , 0x00000699 
+ 00031837  0x00008bdb fetch  0x00000002 , 0x0000068f 
+ 00031838  0x00008bdc iforce  0x00000006 
+ 00031839  0x00008bdd rtn 
+ 00031840  0x00008be0 fetchr  0x00000011 , 0x00000004 , 0x00000684 
+ 00031841  0x00008be1 fetchr  0x00000012 , 0x00000004 , 0x00000688 
+ 00031842  0x00008be2 fetchr  0x00000013 , 0x00000003 , 0x0000068c 
+ 00031843  0x00008be3 rtn 
+ 00031844  0x00008be6 fetch  0x00000002 , 0x00000691 
+ 00031845  0x00008be7 copy  0x0000003f , 0x00000005 
+ 00031846  0x00008be8 rtn 
+ 00031847  0x00008bea fetch  0x00000002 , 0x0000068f 
+ 00031848  0x00008beb copy  0x0000003f , 0x00000006 
+ 00031849  0x00008bec rtn 
+ 00031850  0x00008bef copy  0x00000005 , 0x0000003f 
+ 00031851  0x00008bf0 store  0x00000002 , 0x00000691 
+ 00031852  0x00008bf1 rtn 
+ 00031853  0x00008bf3 copy  0x00000006 , 0x0000003f 
+ 00031854  0x00008bf4 store  0x00000002 , 0x0000068f 
+ 00031855  0x00008bf5 rtn 
+ 00031856  0x00008bfa copy  0x00000005 , 0x0000003f 
+ 00031857  0x00008bfb store  0x00000002 , 0x00000691 
+ 00031858  0x00008bfc copy  0x00000006 , 0x0000003f 
+ 00031859  0x00008bfd store  0x00000002 , 0x0000068f 
+ 00031860  0x00008bfe rtn 
+ 00031861  0x00008c01 fetch  0x00000002 , 0x00000691 
+ 00031862  0x00008c02 copy  0x0000003f , 0x00000005 
+ 00031863  0x00008c03 fetch  0x00000002 , 0x0000068f 
+ 00031864  0x00008c04 copy  0x0000003f , 0x00000006 
+ 00031865  0x00008c05 rtn 
+ 00031866  0x00008c0b isub  0x00000002 , 0x00000011 
+ 00031867  0x00008c0c rtn  0x00000002 
+ 00031868  0x00008c0d arg  0x00000100 , 0x00000011 
+ 00031869  0x00008c0e iadd  0x00000011 , 0x0000003f 
+ 00031870  0x00008c0f isub  0x00000002 , 0x00000011 
+ 00031871  0x00008c10 rtn 
+ 00031872  0x00008c13 call  0x00007c8d 
+ 00031873  0x00008c15 call  0x00007c8d 
+ 00031874  0x00008c16 branch  0x00007c8d 
+ 00031875  0x00008c1a call  0x00007c89 
+ 00031876  0x00008c1c ifetch  0x00000001 , 0x00000006 
+ 00031877  0x00008c1d istore  0x00000001 , 0x00000005 
+ 00031878  0x00008c1f ifetch  0x00000003 , 0x00000006 
+ 00031879  0x00008c20 istore  0x00000003 , 0x00000005 
+ 00031880  0x00008c21 rtn 
+ 00031881  0x00008c23 ifetch  0x00000008 , 0x00000006 
+ 00031882  0x00008c24 istore  0x00000008 , 0x00000005 
+ 00031883  0x00008c25 rtn 
+ 00031884  0x00008c28 call  0x00007c8f 
+ 00031885  0x00008c2a call  0x00007c89 
+ 00031886  0x00008c2c call  0x00007c89 
+ 00031887  0x00008c2e call  0x00007c89 
+ 00031888  0x00008c2f branch  0x00007c89 
+ 00031889  0x00008c32 increase  0xffffffff , 0x0000003f 
+ 00031890  0x00008c33 nop  0x00000026 
+ 00031891  0x00008c34 nbranch  0x00007c91 , 0x00000034 
+ 00031892  0x00008c35 rtn 
+ 00031893  0x00008c39 arg  0x0000000a , 0x00000039 
+ 00031894  0x00008c3b nop  0x00002ee0 
+ 00031895  0x00008c3c loop  0x00007c96 
+ 00031896  0x00008c3d rtn 
+ 00031897  0x00008c41 call  0x00007c9a 
+ 00031898  0x00008c43 call  0x00007c9b 
+ 00031899  0x00008c45 force  0x00000004 , 0x00000039 
+ 00031900  0x00008c46 branch  0x00007ca3 
+ 00031901  0x00008c49 force  0x00000020 , 0x00000039 
+ 00031902  0x00008c4a branch  0x00007ca3 
+ 00031903  0x00008c4c force  0x00000040 , 0x00000039 
+ 00031904  0x00008c4d branch  0x00007ca3 
+ 00031905  0x00008c50 deposit  0x00000039 
+ 00031906  0x00008c51 rtn  0x00000034 
+ 00031907  0x00008c53 force  0x00000000 , 0x0000003f 
+ 00031908  0x00008c54 lstore  0x00000005 
+ 00031909  0x00008c55 rtn 
+ 00031910  0x00008c58 arg  0x00000020 , 0x00000039 
+ 00031911  0x00008c59 arg  0x000006a1 , 0x00000005 
+ 00031912  0x00008c5a branch  0x00007ca1 
+ 00031913  0x00008c5d ifetch  0x00000004 , 0x00000013 
+ 00031914  0x00008c5e ifetcht  0x00000004 , 0x00000011 
+ 00031915  0x00008c5f ixor  0x00000002 , 0x0000003f 
+ 00031916  0x00008c60 istore  0x00000004 , 0x00000005 
+ 00031917  0x00008c61 increase  0x00000004 , 0x00000011 
+ 00031918  0x00008c62 increase  0x00000004 , 0x00000013 
+ 00031919  0x00008c63 loop  0x00007ca9 
+ 00031920  0x00008c64 rtn 
+ 00031921  0x00008c69 bpatchx  0x00000008 , 0x00004021 
+ 00031922  0x00008c6a copy  0x00000039 , 0x0000003f 
+ 00031923  0x00008c6b sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00031924  0x00008c6c rtn  0x00000002 
+ 00031925  0x00008c6d iadd  0x00000011 , 0x00000012 
+ 00031926  0x00008c6e increase  0xffffffff , 0x00000012 
+ 00031927  0x00008c6f rshift  0x00000039 , 0x00000039 
+ 00031928  0x00008c71 ifetcht  0x00000001 , 0x00000011 
+ 00031929  0x00008c72 ifetch  0x00000001 , 0x00000012 
+ 00031930  0x00008c73 istore  0x00000001 , 0x00000011 
+ 00031931  0x00008c74 istoret  0x00000001 , 0x00000012 
+ 00031932  0x00008c75 increase  0xffffffff , 0x00000012 
+ 00031933  0x00008c76 increase  0x00000001 , 0x00000011 
+ 00031934  0x00008c77 loop  0x00007cb8 
+ 00031935  0x00008c78 rtn 
+ 00031936  0x00008c7c rshift32  0x0000003f , 0x00000002 
+ 00031937  0x00008c7d call  0x00007cc6 
+ 00031938  0x00008c7e byteswap  0x00000002 , 0x00000002 
+ 00031939  0x00008c7f lshift16  0x0000003f , 0x0000003f 
+ 00031940  0x00008c80 ior  0x00000002 , 0x0000003f 
+ 00031941  0x00008c81 rtn 
+ 00031942  0x00008c86 rshift16  0x0000003f , 0x00000006 
+ 00031943  0x00008c87 byteswap  0x00000006 , 0x00000006 
+ 00031944  0x00008c88 byteswap  0x0000003f , 0x0000003f 
+ 00031945  0x00008c89 lshift16  0x0000003f , 0x0000003f 
+ 00031946  0x00008c8a ior  0x00000006 , 0x0000003f 
+ 00031947  0x00008c8b rtn 
+ 00031948  0x00008c8f bpatchx  0x00000009 , 0x00004021 
+ 00031949  0x00008c90 deposit  0x00000039 
+ 00031950  0x00008c91 rtn  0x00000034 
+ 00031951  0x00008c93 increase  0xfffffff8 , 0x00000039 
+ 00031952  0x00008c94 call  0x00007c89 , 0x00000002 
+ 00031953  0x00008c95 rtn  0x00000005 
+ 00031954  0x00008c96 branch  0x00007ccf , 0x00000002 
+ 00031955  0x00008c97 increase  0x00000008 , 0x00000039 
+ 00031956  0x00008c99 increase  0xfffffffc , 0x00000039 
+ 00031957  0x00008c9a call  0x00007c84 , 0x00000002 
+ 00031958  0x00008c9b rtn  0x00000005 
+ 00031959  0x00008c9c branch  0x00007cd4 , 0x00000002 
+ 00031960  0x00008c9d increase  0x00000004 , 0x00000039 
+ 00031961  0x00008c9e branch  0x00007cda 
+ 00031962  0x00008ca1 deposit  0x00000039 
+ 00031963  0x00008ca2 rtn  0x00000034 
+ 00031964  0x00008ca4 ifetch  0x00000001 , 0x00000006 
+ 00031965  0x00008ca5 istore  0x00000001 , 0x00000005 
+ 00031966  0x00008ca6 loop  0x00007cdc 
+ 00031967  0x00008ca7 rtn 
+ 00031968  0x00008caa setarg  0x00000000 
+ 00031969  0x00008cae store  0x00000002 , 0x00000670 
+ 00031970  0x00008caf bpatchx  0x0000000a , 0x00004021 
+ 00031971  0x00008cb0 call  0x00007cef 
+ 00031972  0x00008cb1 fetcht  0x00000002 , 0x00000670 
+ 00031973  0x00008cb2 arg  0x000040f4 , 0x00000005 
+ 00031974  0x00008cb4 lshift  0x00000007 , 0x0000003f 
+ 00031975  0x00008cb5 iadd  0x00000005 , 0x00000005 
+ 00031976  0x00008cb6 istoret  0x00000002 , 0x00000005 
+ 00031977  0x00008cb7 rtn 
+ 00031978  0x00008cba arg  0x00000800 , 0x0000000b 
+ 00031979  0x00008cbb lshift16  0x0000000b , 0x0000000b 
+ 00031980  0x00008cbc iadd  0x0000000b , 0x0000003f 
+ 00031981  0x00008cbd rtn 
+ 00031982  0x00008cc1 arg  0x00000000 , 0x00000007 
+ 00031983  0x00008cc3 bpatchx  0x0000000b , 0x00004021 
+ 00031984  0x00008cc4 fetcht  0x00000004 , 0x00004095 
+ 00031985  0x00008cc5 rshift  0x00000022 , 0x0000003f 
+ 00031986  0x00008cc6 store  0x00000004 , 0x00004095 
+ 00031987  0x00008cc7 isub  0x00000002 , 0x0000003e 
+ 00031988  0x00008cc8 ncall  0x00007cea , 0x00000002 
+ 00031989  0x00008cc9 isub  0x00000002 , 0x0000000b 
+ 00031990  0x00008cca copy  0x0000000b , 0x00000002 
+ 00031991  0x00008ccb arg  0x000040f4 , 0x00000006 
+ 00031992  0x00008ccc copy  0x00000006 , 0x00000005 
+ 00031993  0x00008ccd arg  0x00000010 , 0x00000039 
+ 00031994  0x00008ccf ifetch  0x00000002 , 0x00000006 
+ 00031995  0x00008cd0 isub  0x00000002 , 0x0000003f 
+ 00031996  0x00008cd1 branch  0x00007cfe , 0x00000002 
+ 00031997  0x00008cd2 force  0x00000000 , 0x0000003f 
+ 00031998  0x00008cd4 istore  0x00000002 , 0x00000005 
+ 00031999  0x00008cd5 loop  0x00007cfa 
+ 00032000  0x00008cd6 arg  0x000040f4 , 0x00000006 
+ 00032001  0x00008cd7 lshift  0x00000007 , 0x0000003f 
+ 00032002  0x00008cd8 iadd  0x00000006 , 0x00000006 
+ 00032003  0x00008cd9 ifetch  0x00000002 , 0x00000006 
+ 00032004  0x00008cda rtn 
+ 00032005  0x00008ce0 iadd  0x00000002 , 0x00000002 
+ 00032006  0x00008ce1 copy  0x00000002 , 0x00000039 
+ 00032007  0x00008ce2 fetch  0x00000002 , 0x00000044 
+ 00032008  0x00008ce3 isub  0x00000039 , 0x0000003f 
+ 00032009  0x00008ce4 rtn  0x00000002 
+ 00032010  0x00008ce5 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00032011  0x00008ce6 rshift16  0x00000002 , 0x00000002 
+ 00032012  0x00008ce7 increase  0x00000001 , 0x00000002 
+ 00032013  0x00008ce8 lshift16  0x00000002 , 0x00000002 
+ 00032014  0x00008ce9 ior  0x00000002 , 0x00000002 
+ 00032015  0x00008cea rtn 
+ 00032016  0x00008ced call  0x00007d12 
+ 00032017  0x00008cee branch  0x00007d1f 
+ 00032018  0x00008cf2 disable  0x00000028 
+ 00032019  0x00008cf3 isub  0x00000002 , 0x0000003f 
+ 00032020  0x00008cf4 branch  0x00007d17 , 0x00000002 
+ 00032021  0x00008cf5 enable  0x00000028 
+ 00032022  0x00008cf6 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00032023  0x00008cf8 rtnbit0  0x0000000f 
+ 00032024  0x00008cf9 copy  0x0000003f , 0x00000014 
+ 00032025  0x00008cfa arg  0x00010000 , 0x00000002 
+ 00032026  0x00008cfb fetch  0x00000002 , 0x00000044 
+ 00032027  0x00008cfc isub  0x00000002 , 0x0000003f 
+ 00032028  0x00008cfd iadd  0x00000014 , 0x0000003f 
+ 00032029  0x00008cfe set0  0x00000040 , 0x0000003f 
+ 00032030  0x00008cff rtn 
+ 00032031  0x00008d04 fetcht  0x00000002 , 0x00000044 
+ 00032032  0x00008d05 iforce  0x00000006 
+ 00032033  0x00008d06 rshift16  0x0000003f , 0x0000003f 
+ 00032034  0x00008d07 imul32  0x00000002 , 0x0000003f 
+ 00032035  0x00008d08 iadd  0x00000006 , 0x0000003f 
+ 00032036  0x00008d09 rtn 
+ 00032037  0x00008d0d lshift8  0x0000003f , 0x0000003f 
+ 00032038  0x00008d0e lshift4  0x0000003f , 0x0000003f 
+ 00032039  0x00008d0f fetcht  0x00000003 , 0x000040bd 
+ 00032040  0x00008d10 idiv  0x00000002 
+ 00032041  0x00008d11 call  0x00007d62 
+ 00032042  0x00008d12 quotient  0x00000002 
+ 00032043  0x00008d13 rtn 
+ 00032044  0x00008d17 fetcht  0x00000002 , 0x00000044 
+ 00032045  0x00008d18 idiv  0x00000002 
+ 00032046  0x00008d19 call  0x00007d5f 
+ 00032047  0x00008d1a lshift16  0x0000003f , 0x0000003f 
+ 00032048  0x00008d1b remainder  0x00000002 
+ 00032049  0x00008d1c ior  0x00000002 , 0x00000002 
+ 00032050  0x00008d1d rtn 
+ 00032051  0x00008d25 arg  0x00000000 , 0x00000002 
+ 00032052  0x00008d27 copy  0x00000002 , 0x00000014 
+ 00032053  0x00008d28 ifetch  0x00000001 , 0x00000003 
+ 00032054  0x00008d29 call  0x00007d3f 
+ 00032055  0x00008d2a copy  0x00000014 , 0x00000002 
+ 00032056  0x00008d2b call  0x00007d70 
+ 00032057  0x00008d2c arg  0x0000000a , 0x00000012 
+ 00032058  0x00008d2d imul32  0x00000012 , 0x0000003f 
+ 00032059  0x00008d2e iadd  0x00000002 , 0x0000003f 
+ 00032060  0x00008d2f copy  0x0000003f , 0x00000002 
+ 00032061  0x00008d30 loop  0x00007d34 
+ 00032062  0x00008d31 rtn 
+ 00032063  0x00008d36 arg  0x0000003a , 0x00000002 
+ 00032064  0x00008d37 isub  0x00000002 , 0x0000003e 
+ 00032065  0x00008d38 nbranch  0x00007d48 , 0x00000002 
+ 00032066  0x00008d39 arg  0x00000061 , 0x00000002 
+ 00032067  0x00008d3a isub  0x00000002 , 0x0000003e 
+ 00032068  0x00008d3b branch  0x00007d4b , 0x00000002 
+ 00032069  0x00008d3c arg  0x00000037 , 0x00000002 
+ 00032070  0x00008d3d isub  0x00000002 , 0x0000003f 
+ 00032071  0x00008d3e rtn 
+ 00032072  0x00008d40 arg  0x00000030 , 0x00000002 
+ 00032073  0x00008d41 isub  0x00000002 , 0x0000003f 
+ 00032074  0x00008d42 rtn 
+ 00032075  0x00008d44 arg  0x00000057 , 0x00000002 
+ 00032076  0x00008d45 isub  0x00000002 , 0x0000003f 
+ 00032077  0x00008d46 rtn 
+ 00032078  0x00008d4a sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00032079  0x00008d4b rtn  0x00000005 
+ 00032080  0x00008d4d rshift  0x0000003f , 0x0000003f 
+ 00032081  0x00008d4e loop  0x00007d50 
+ 00032082  0x00008d4f rtn 
+ 00032083  0x00008d53 force  0x00000001 , 0x0000003f 
+ 00032084  0x00008d54 sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00032085  0x00008d55 rtn  0x00000005 
+ 00032086  0x00008d57 lshift  0x0000003f , 0x0000003f 
+ 00032087  0x00008d58 loop  0x00007d56 
+ 00032088  0x00008d59 rtn 
+ 00032089  0x00008d5e setarg  0x00000000 
+ 00032090  0x00008d5f copy  0x00000039 , 0x00000011 
+ 00032091  0x00008d61 ifetcht  0x00000002 , 0x00000006 
+ 00032092  0x00008d62 iadd  0x00000002 , 0x0000003f 
+ 00032093  0x00008d63 loop  0x00007d5b 
+ 00032094  0x00008d64 idiv  0x00000011 
+ 00032095  0x00008d66 call  0x00007d62 
+ 00032096  0x00008d67 quotient  0x0000003f 
+ 00032097  0x00008d68 rtn 
+ 00032098  0x00008d6b rtn  0x00000035 
+ 00032099  0x00008d6c branch  0x00007d62 
+ 00032100  0x00008d78 ifetch  0x00000001 , 0x00000011 
+ 00032101  0x00008d79 ifetcht  0x00000001 , 0x00000012 
+ 00032102  0x00008d7a isub  0x00000002 , 0x0000003e 
+ 00032103  0x00008d7b nrtn  0x00000005 
+ 00032104  0x00008d7c increase  0x00000001 , 0x00000011 
+ 00032105  0x00008d7d increase  0x00000001 , 0x00000012 
+ 00032106  0x00008d7e loop  0x00007d64 
+ 00032107  0x00008d7f branch  0x00007db8 
+ 00032108  0x00008d84 isub  0x00000002 , 0x0000003e 
+ 00032109  0x00008d85 nrtn  0x00000002 
+ 00032110  0x00008d86 deposit  0x00000002 
+ 00032111  0x00008d87 rtn 
+ 00032112  0x00008d8a iadd  0x00000002 , 0x0000003f 
+ 00032113  0x00008d8b isub  0x00000002 , 0x00000002 
+ 00032114  0x00008d8c isub  0x00000002 , 0x0000003f 
+ 00032115  0x00008d8d rtn 
+ 00032116  0x00008d90 arg  0x00000000 , 0x00000005 
+ 00032117  0x00008d91 branch  0x00007d77 
+ 00032118  0x00008d94 arg  0x00004000 , 0x00000005 
+ 00032119  0x00008d96 arg  0x00001000 , 0x00000039 
+ 00032120  0x00008d97 branch  0x00007ca3 
+ 00032121  0x00008d9b rtn  0x00000034 
+ 00032122  0x00008d9c copy  0x0000003f , 0x0000003d 
+ 00032123  0x00008da0 call  0x000070d7 
+ 00032124  0x00008da3 jam  0x00000001 , 0x00008203 
+ 00032125  0x00008da4 rtn 
+ 00032126  0x00008da7 store  0x00000002 , 0x00008205 
+ 00032127  0x00008da8 fetch  0x00000001 , 0x00008203 
+ 00032128  0x00008da9 set1  0x00000004 , 0x0000003f 
+ 00032129  0x00008daa store  0x00000001 , 0x00008203 
+ 00032130  0x00008dab rtn 
+ 00032131  0x00008dad store  0x00000002 , 0x00008207 
+ 00032132  0x00008dae fetch  0x00000001 , 0x00008203 
+ 00032133  0x00008daf set1  0x00000006 , 0x0000003f 
+ 00032134  0x00008db0 store  0x00000001 , 0x00008203 
+ 00032135  0x00008db1 rtn 
+ 00032136  0x00008db4 store  0x00000002 , 0x00008205 
+ 00032137  0x00008db5 jam  0x00000030 , 0x00008203 
+ 00032138  0x00008db6 rtn 
+ 00032139  0x00008dbf bpatchx  0x0000000c , 0x00004021 
+ 00032140  0x00008dc0 ifetcht  0x00000008 , 0x00000011 
+ 00032141  0x00008dc1 and  0x00000002 , 0x000000ff , 0x0000003f 
+ 00032142  0x00008dc2 nbranch  0x00007d91 , 0x00000034 
+ 00032143  0x00008dc3 rshift8  0x00000002 , 0x0000003f 
+ 00032144  0x00008dc4 istore  0x00000008 , 0x00000011 
+ 00032145  0x00008dc6 increase  0x00000007 , 0x00000011 
+ 00032146  0x00008dc7 ifetch  0x00000001 , 0x00000011 
+ 00032147  0x00008dc8 nbranch  0x0000235a , 0x00000034 
+ 00032148  0x00008dc9 fetch  0x00000001 , 0x0000066f 
+ 00032149  0x00008dca istore  0x00000001 , 0x00000011 
+ 00032150  0x00008dcb rtn 
+ 00032151  0x00008dd1 bpatchx  0x0000000d , 0x00004021 
+ 00032152  0x00008dd2 arg  0x00000008 , 0x00000039 
+ 00032153  0x00008dd3 ifetch  0x00000008 , 0x00000011 
+ 00032154  0x00008dd4 rtn  0x00000034 
+ 00032155  0x00008dd6 ifetch  0x00000001 , 0x00000011 
+ 00032156  0x00008dd7 nbranch  0x00007da0 , 0x00000034 
+ 00032157  0x00008dd8 increase  0x00000001 , 0x00000011 
+ 00032158  0x00008dd9 loop  0x00007d9b 
+ 00032159  0x00008dda branch  0x0000235a 
+ 00032160  0x00008ddc arg  0x00000000 , 0x00000002 
+ 00032161  0x00008ddd istoret  0x00000001 , 0x00000011 
+ 00032162  0x00008dde rtn 
+ 00032163  0x00008de4 ifetch  0x00000008 , 0x00000011 
+ 00032164  0x00008de5 rtn 
+ 00032165  0x00008deb ifetch  0x00000001 , 0x00000011 
+ 00032166  0x00008dec rtn 
+ 00032167  0x00008df0 ifetch  0x00000002 , 0x00000011 
+ 00032168  0x00008df1 rtn 
+ 00032169  0x00008df6 arg  0x00000000 , 0x00000002 
+ 00032170  0x00008df8 fetch  0x00000001 , 0x00000006 
+ 00032171  0x00008df9 loop  0x00007daa , 0x00000034 
+ 00032172  0x00008dfa increase  0x00000001 , 0x00000002 
+ 00032173  0x00008dfb loop  0x00007daa 
+ 00032174  0x00008dfc copy  0x00000002 , 0x0000003f 
+ 00032175  0x00008dfd rtn 
+ 00032176  0x00008e01 isub  0x00000002 , 0x0000003e 
+ 00032177  0x00008e02 nrtn  0x00000002 
+ 00032178  0x00008e04 copy  0x00000002 , 0x0000003f 
+ 00032179  0x00008e05 rtn 
+ 00032180  0x00008e09 force  0xffffffff , 0x0000003e 
+ 00032181  0x00008e0a rtn 
+ 00032182  0x00008e0d force  0x00000001 , 0x0000003e 
+ 00032183  0x00008e0e rtn 
+ 00032184  0x00008e10 force  0x00000000 , 0x0000003e 
+ 00032185  0x00008e11 rtn 
+ 00032186  0x00008e14 enable  0x00000028 
+ 00032187  0x00008e15 rtn 
+ 00032188  0x00008e18 disable  0x00000028 
+ 00032189  0x00008e19 rtn 
+ 00032190  0x00008e1c enable  0x0000002c 
+ 00032191  0x00008e1d rtn 
+ 00032192  0x00008e20 disable  0x0000002c 
+ 00032193  0x00008e21 rtn 
+ 00032194  0x00008e24 enable  0x00000031 
+ 00032195  0x00008e25 rtn 
+ 00032196  0x00008e28 disable  0x00000001 
+ 00032197  0x00008e29 rtn 
+ 00032198  0x00008e2c enable  0x00000001 
+ 00032199  0x00008e2d rtn 
+ 00032200  0x00008e30 setarg  0x00000001 
+ 00032201  0x00008e31 rtn 
+ 00032202  0x00008e35 setarg  0x00000000 
+ 00032203  0x00008e36 rtn 
+ 00032204  0x00008e3b sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00032205  0x00008e3c rtn  0x00000005 
+ 00032206  0x00008e3e ifetcht  0x00000001 , 0x00000006 
+ 00032207  0x00008e3f iadd  0x00000002 , 0x0000003f 
+ 00032208  0x00008e40 loop  0x00007dce 
+ 00032209  0x00008e41 rtn 
+ 00032210  0x00008e45 copy  0x00000039 , 0x0000003f 
+ 00032211  0x00008e46 rtn  0x00000034 
+ 00032212  0x00008e47 copy  0x00000006 , 0x0000003f 
+ 00032213  0x00008e48 iadd  0x00000039 , 0x0000003f 
+ 00032214  0x00008e49 increase  0xffffffff , 0x0000003f 
+ 00032215  0x00008e4a copy  0x0000003f , 0x00000006 
+ 00032216  0x00008e4c ifetch  0x00000001 , 0x00000006 
+ 00032217  0x00008e4d increase  0xfffffffe , 0x00000006 
+ 00032218  0x00008e4e istore  0x00000001 , 0x00000005 
+ 00032219  0x00008e4f loop  0x00007dd8 
+ 00032220  0x00008e50 rtn 
+ 00032221  0x00008e54 lshift16  0x0000003f , 0x0000003f 
+ 00032222  0x00008e56 rshift2  0x0000003f , 0x0000003f 
+ 00032223  0x00008e57 rtn 
+ 00032224  0x00008e5a lshift8  0x0000003f , 0x0000003f 
+ 00032225  0x00008e5b branch  0x00007dde 
+ 00032226  0x00008e5f setarg  0x00000000 
+ 00032227  0x00008e60 store  0x00000008 , 0x00000016 
+ 00032228  0x00008e61 set1  0x00000019 , 0x0000003f 
+ 00032229  0x00008e62 istore  0x00000004 , 0x00000005 
+ 00032230  0x00008e63 rtn 
+ 00032231  0x00008e67 arg  0x00000010 , 0x00000039 
+ 00032232  0x00008e69 random  0x0000003f 
+ 00032233  0x00008e6a istore  0x00000001 , 0x00000005 
+ 00032234  0x00008e6b loop  0x00007de8 
+ 00032235  0x00008e6c rtn 
Index: output/bt_program23.list
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/bt_program23.list	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/bt_program23.list	(working copy)
@@ -0,0 +1,30126 @@
+              include "bt_format "
+              org 0x0000
+0x0 000039 bbit1 8 ,pf_patch_ext 
+0x1 000040 beq patch00_0 ,p_soft_reset 
+0x2 000041 beq patch00_2 ,p_main_loop 
+0x3 000042 beq patch02_0 ,p_shutdown_radio 
+0x4 000043 beq patch02_1 ,p_set_sync_on 
+0x5 000044 beq patch02_4 ,p_set_lemode 
+0x6 000045 beq patch02_5 ,p_rf_rx_enable 
+0x7 000046 beq patch03_0 ,p_txon 
+0x8 000047 beq patch03_1 ,p_set_tx_power 
+0x9 000048 beq patch03_2 ,p_initialize_radio_cont 
+0xa 000049 beq patch04_5 ,p_lpm_sleep 
+0xb 000050 beq patch05_0 ,p_lpm_dispatch 
+0xc 000051 beq patch08_2 ,p_keyboard_load_otp_info_check 
+0xd 000052 beq patch08_4 ,p_keyboard_store_device_info 
+0xe 000053 beq patch08_5 ,p_keyboard_cb_fuction 
+0xf 000054 beq patch08_6 ,p_keyboard_priority_bb_event 
+0x10 000055 beq patch08_7 ,p_keyboard_bb_event_timer 
+0x11 000056 beq patch09_0 ,p_keyboard_start_discovery 
+0x12 000057 beq patch09_1 ,p_keyboard_stop_discovery 
+0x13 000058 beq patch09_2 ,p_keyboard_store_remote_bdaddr 
+0x14 000059 beq patch09_3 ,p_keyboard_idle 
+0x15 000060 beq patch09_4 ,p_keyboard_start_work 
+0x16 000061 beq patch09_5 ,p_keyboard_le 
+0x17 000062 beq patch09_6 ,p_keyboard_keyscan 
+0x18 000063 beq patch0a_0 ,p_keyboard_key_process 
+0x19 000064 beq patch0a_2 ,p_keyboard_keyvalue_fn_replace 
+0x1a 000065 beq patch0a_5 ,p_keyboard_special_key_check 
+0x1b 000066 beq patch0a_7 ,p_keyboard_motion 
+0x1c 000067 beq patch0b_1 ,p_keyboard_device_data_tpye_check 
+0x1d 000068 beq patch0b_2 ,p_keyboard_before_hibernate 
+0x1e 000069 beq patch0b_3 ,p_keyboard_app_enter_hibernate 
+0x1f 000070 beq patch0b_4 ,p_keyboard_device_led_all_off 
+0x20 000071 beq patch0b_5 ,p_keyboard_setgpio_hibernate 
+0x21 000072 beq patch0c_1 ,p_le_parse_att 
+0x22 000073 beq patch0d_7 ,p_keyboard_start_reconnect_device 
+0x23 000074 beq patch0e_1 ,p_keyboard_app_enter_hibernate 
+0x24 000075 beq patch0e_6 ,p_keyboard_adc_read 
+0x25 000076 beq patch0e_7 ,p_keyboard_adc_read_start 
+0x26 000077 beq patch10_0 ,p_mouse_init_sunt 
+0x27 000078 beq patch10_4 ,p_keyboard_app_enter_hibernate 
+0x28 000079 beq patch13_2 ,p_keyboard_discover_setting_led_gpio 
+0x29 000080 beq patch16_1 ,p_keyboard_init 
+0x2a 000081 beq patch18_5 ,p_otp_read_data 
+0x2b 000082 beq patch1a_5 ,p_gpio_set_wake_by_current_state 
+0x2c 000083 beq patch1b_2 ,p_sadc_calibration 
+0x2d 000084 beq patch1b_3 ,p_adc_init_data 
+0x2e 000085 beq patch1b_4 ,p_enable_adc 
+0x2f 000086 beq patch1b_5 ,p_vdd_calculate_by_mode 
+0x30 000087 beq patch1e_6 ,p_ui_ipc_send_event 
+0x31 000088 beq patch1f_2 ,p_check_51cmd_once_continue 
+0x32 000089 branch assert 
+:      000091 pf_patch_ext:
+0x33 000092 beq patch22_4 ,p_le_slave_match 
+0x34 000093 beq patch23_2 ,p_le_got_first_packet 
+0x35 000094 beq patch24_5 ,p_le_rx_dec 
+0x36 000095 beq patch24_6 ,p_le_rx_nopayload 
+0x37 000096 beq patch29_4 ,p_le_adv_not_match 
+0x38 000097 beq patch29_5 ,p_le_init_adv 
+0x39 000098 rtneq patch3f_7 
+0x3a 000099 branch assert 
+:      000103 p_soft_reset:
+0x3b 000104 nbranch p_soft_reset_next ,wake 
+0x3c 000105 until null ,lpo_edge 
+0x3d 000106 until null ,lpo_edge 
+:      000107 p_soft_reset_next:
+0x3e 000108 call mouse_wakeup_from_power_check 
+0x3f 000109 nbranch soft_reset + 1 ,user 
+0x40 000110 fetch 1 ,mem_power_on_flag_new 
+0x41 000111 branch soft_reset + 1 ,blank 
+0x42 000112 jam 0 ,mem_power_on_flag_new 
+0x43 000113 fetch 1 ,mem_config_select_device_button_gpio 
+0x44 000114 beq ui_button_gpio_disable ,soft_reset + 1 
+0x45 000115 copy pdata ,queue 
+0x46 000116 fetch 4 ,mem_saved_gpio_in 
+0x47 000117 qisolate0 pdata 
+0x48 000118 call keyboard_pb_set ,true 
+0x49 000119 branch soft_reset + 1 
+:      000121 p_keyboard_adc_read:
+0x4a 000122 fetch mouse_flag_len ,mem_mouse_flag 
+0x4b 000123 rtnbit0 mouse_enable_adc 
+0x4c 000124 call p_keyboard_adc_gpio_set 
+0x4d 000125 branch mouse_adc_read + 4 
+:      000127 p_keyboard_adc_gpio_set:
+0x4e 000128 fetch 1 ,mem_adc_config_flag 
+0x4f 000129 rtnne adc_config_gpio 
+0x50 000130 fetch 1 ,mem_adc_channel 
+0x51 000131 call p_adc_channel_set_gpio 
+0x52 000132 copy temp ,pdata 
+0x53 000133 store 1 ,mem_adc_channel_gpio 
+0x54 000134 set1 gpio_active_bit ,pdata 
+0x55 000135 arg gpcfg_input ,temp 
+0x56 000136 branch gpio_config_function 
+:      000138 p_adc_channel_set_gpio:
+0x57 000139 arg 18 ,temp 
+0x58 000140 rtneq 0x6 
+0x59 000141 arg 10 ,temp 
+0x5a 000142 rtneq 0x7 
+0x5b 000143 arg 9 ,temp 
+0x5c 000144 rtneq 0x8 
+0x5d 000145 arg 12 ,temp 
+0x5e 000146 rtneq 0x9 
+0x5f 000147 arg 6 ,temp 
+0x60 000148 rtneq 0xa 
+0x61 000149 arg 20 ,temp 
+0x62 000150 rtneq 0xb 
+0x63 000151 arg 21 ,temp 
+0x64 000152 rtneq 0xc 
+0x65 000153 arg 22 ,temp 
+0x66 000154 rtneq 0xd 
+0x67 000155 arg 13 ,temp 
+0x68 000157 rtn 
+:      000159 p_main_loop:
+0x69 000160 call sp_calc_sequence_256 
+0x6a 000161 call sp_calc_sequence_256_check 
+0x6b 000162 call kscan_dispatch 
+0x6c 000163 call le_advertising_dispatch 
+0x6d 000164 call idle_dispatch 
+0x6e 000165 call app_process_idle 
+0x6f 000166 call connection_dispatch 
+0x70 000167 call g24_dispatch 
+0x71 000168 call lpm_dispatch 
+0x72 000169 branch p_main_loop 
+:      000170 p_shutdown_radio:
+0x73 000171 jam 0 ,0x8900 
+0x74 000172 branch shutdown_radio + 1 
+:      000173 p_set_sync_on:
+0x75 000174 jam 0x60 ,0x8a0f 
+0x76 000175 jam 0xaa ,0x8a10 
+0x77 000176 jam 0x7a ,0x8a12 
+0x78 000177 jam 0x00 ,0x8a25 
+0x79 000178 jam 0x00 ,0x8a26 
+0x7a 000179 nop 60 
+0x7b 000180 jam 0x20 ,0x8a20 
+0x7c 000181 jam 0xf5 ,0x8a23 
+0x7d 000182 jam 0x12 ,0x8a24 
+0x7e 000183 jam 0x10 ,0x8a24 
+0x7f 000184 nop 60 
+0x80 000185 jam 0x60 ,0x8a12 
+0x81 000186 jam 0xdd ,0x8a23 
+0x82 000187 rtn 
+:      000189 p_initialize_radio_cont:
+0x83 000190 jam 0 ,mem_le_testtype 
+0x84 000191 jam 0 ,mem_cmd_le_create_conn 
+0x85 000192 until null ,lpo_edge 
+0x86 000194 jam 0x0d ,0x8946 
+0x87 000195 jam 0x10 ,0x896f 
+0x88 000196 jam 0xcd ,0x8a13 
+0x89 000197 jam 0x10 ,0x8a06 
+0x8a 000198 jam 0x4a ,0x8a84 
+0x8b 000199 jam 0x40 ,0x8a85 
+0x8c 000200 jam 0xfe ,0x8a16 
+0x8d 000201 call p_set_otp_config 
+0x8e 000204 call wdt_set_disable 
+0x8f 000206 until null ,lpo_edge 
+0x90 000207 jam 0x5f ,0x813b 
+0x91 000208 until null ,lpo_edge 
+0x92 000209 jam 0x88 ,0x813c 
+0x93 000210 until null ,lpo_edge 
+0x94 000211 fetch 1 ,mem_fcomp_div 
+0x95 000212 beq xtal_16m ,p_initialize_radio_16m 
+0x96 000213 fetch 1 ,mem_ring_ibias_trim 
+0x97 000214 or_into 0x04 ,pdata 
+0x98 000215 store 1 ,0x8a02 
+0x99 000216 jam 0x01 ,0x890f 
+0x9a 000217 jam 0x24 ,0x8a80 
+0x9b 000218 jam 0x62 ,0x8a81 
+0x9c 000219 setarg 0xe61212 
+0x9d 000220 store 3 ,0x8a73 
+:      000221 p_initialize_radio2:
+0x9e 000222 jam 0x60 ,0x8a86 
+0x9f 000223 jam 0x3b ,0x8a8b 
+0xa0 000224 call p_dpll_on 
+0xa1 000225 jam 0 ,core_config 
+0xa2 000226 jam clksel_dpll ,core_clksel 
+0xa3 000227 setarg 0x557474 
+0xa4 000228 store 3 ,0x8968 
+0xa5 000229 jam 0x6e ,0x8960 
+0xa6 000230 call p_rx_dcoc 
+0xa7 000231 call p_rfpll_aac_ghpc 
+0xa8 000232 call p_set_xtal_cap 
+0xa9 000233 jam system_clk_12m ,mem_system_clk 
+0xaa 000234 branch sadc_calibration 
+:      000237 p_set_xtal_cap:
+0xab 000238 rtn wake 
+0xac 000239 until null ,lpo_edge 
+0xad 000240 fetch 1 ,mem_xtal_c_sel 
+0xae 000241 store 1 ,core_xtal_cap 
+0xaf 000242 until null ,lpo_edge 
+0xb0 000243 rtn 
+:      000245 p_dpll_on:
+0xb1 000246 fetch 1 ,mem_fcomp_div 
+0xb2 000247 beq xtal_24m ,p_dpll_on_24m 
+0xb3 000248 fetch 1 ,mem_ring_ibias_trim 
+0xb4 000249 or_into 0x06 ,pdata 
+0xb5 000250 store 1 ,0x8a02 
+0xb6 000251 jam 0xe0 ,0x8a05 
+:      000252 p_dpll_on_24m:
+0xb7 000253 jam 0xd8 ,0x8a00 
+0xb8 000254 nop 60 
+0xb9 000255 jam 0xa0 ,0x8a01 
+0xba 000256 jam 0xdf ,0x8a00 
+0xbb 000257 jam 0xfa ,0x8a01 
+0xbc 000258 nop 20 
+0xbd 000259 jam 0x9f ,0x8a00 
+0xbe 000260 rtn 
+:      000262 p_initialize_radio_16m:
+0xbf 000263 fetch 1 ,mem_ring_ibias_trim 
+0xc0 000264 or_into 0x06 ,pdata 
+0xc1 000265 store 1 ,0x8a02 
+0xc2 000266 jam 0x00 ,0x890f 
+0xc3 000267 jam 0x23 ,0x8a80 
+0xc4 000268 jam 0xb0 ,0x8a81 
+0xc5 000269 setarg 0xe40909 
+0xc6 000270 store 3 ,0x8a73 
+0xc7 000271 jam 0x2a ,0x8a76 
+0xc8 000272 jam 0x04 ,0x8902 
+0xc9 000273 branch p_initialize_radio2 
+:      000275 p_set_otp_config:
+0xca 000276 branch p_set_otp_config_wake ,wake 
+0xcb 000277 fetch 4 ,mem_otp_core_ldo 
+0xcc 000278 rtn blank 
+0xcd 000279 until null ,lpo_edge 
+0xce 000280 fetch 1 ,0x8136 
+0xcf 000281 and pdata ,0xf0 ,pdata 
+0xd0 000282 fetcht 1 ,mem_otp_core_ldo 
+0xd1 000283 ior temp ,pdata 
+0xd2 000284 increase -3 ,pdata 
+0xd3 000285 store 1 ,0x8136 
+0xd4 000286 until null ,lpo_edge 
+0xd5 000288 fetch 1 ,0x8138 
+0xd6 000289 and pdata ,0x7 ,pdata 
+0xd7 000290 fetcht 1 ,mem_otp_verf_bg 
+0xd8 000291 lshift3 temp ,temp 
+0xd9 000292 ior temp ,pdata 
+0xda 000293 store 1 ,0x8138 
+0xdb 000294 until null ,lpo_edge 
+:      000296 p_set_otp_config2:
+0xdc 000297 fetch 1 ,0x8acb 
+0xdd 000298 and pdata ,0xf0 ,pdata 
+0xde 000299 fetcht 1 ,mem_otp_charge_pump 
+0xdf 000300 storet 1 ,mem_otp_charge_pump_x 
+0xe0 000301 ior temp ,pdata 
+0xe1 000302 store 1 ,0x8acb 
+0xe2 000304 fetch 1 ,mem_otp_dpll_ibais 
+0xe3 000305 store 1 ,mem_otp_dpll_ibais_x 
+0xe4 000306 isolate1 3 ,pdata 
+0xe5 000307 fetch 1 ,0x8a06 
+0xe6 000308 setflag true ,7 ,pdata 
+0xe7 000309 store 1 ,0x8a06 
+0xe8 000311 fetch 1 ,mem_otp_dpll_ibais 
+0xe9 000312 and pdata ,7 ,temp 
+0xea 000313 lshift4 temp ,temp 
+0xeb 000314 lshift temp ,temp 
+0xec 000315 storet 1 ,mem_ring_ibias_trim 
+0xed 000316 fetch 1 ,0x8a02 
+0xee 000317 and pdata ,0x1f ,pdata 
+0xef 000318 ior temp ,pdata 
+0xf0 000319 store 1 ,0x8a02 
+0xf1 000320 rtn 
+:      000322 p_set_otp_config_wake:
+0xf2 000323 fetch 2 ,mem_otp_charge_pump_x 
+0xf3 000324 rtn blank 
+0xf4 000325 store 2 ,mem_otp_charge_pump 
+0xf5 000326 branch p_set_otp_config2 
+:      000328 p_rf_rx_enable:
+0xf6 000329 call rf_rx_agc_set 
+0xf7 000330 force 8 ,radio_ctrl 
+0xf8 000331 force 0 ,radio_ctrl 
+0xf9 000333 setarg 0x0aaada 
+0xfa 000334 store 3 ,0x8a0f 
+0xfb 000335 jam 0x40 ,0x8a25 
+0xfc 000336 jam 0x10 ,0x8a26 
+0xfd 000337 nop 60 
+0xfe 000338 jam 0xfb ,0x8a01 
+0xff 000339 jam 0xff ,0x8a25 
+0x100 000340 jam 0x30 ,0x8a26 
+0x101 000341 jam 0xfe ,0x8a16 
+0x102 000342 branch rf_rx_enable + 14 
+:      000344 p_txon:
+0x103 000345 setarg 0x0aaa7e 
+0x104 000346 store 3 ,0x8a0f 
+0x105 000347 nop 60 
+0x106 000348 jam 0x00 ,0x8a25 
+0x107 000349 jam 0x0d ,0x8a26 
+0x108 000350 jam 0xf6 ,0x8a16 
+0x109 000351 branch txon + 7 
+:      000353 p_set_tx_power:
+0x10a 000354 fetch 1 ,mem_tx_power 
+0x10b 000355 beq tx_power_10db ,p_set_tx_power_10db 
+0x10c 000356 branch set_tx_power + 2 
+:      000358 p_set_tx_power_10db:
+0x10d 000359 jam 0x25 ,0x8a14 
+0x10e 000360 setarg 0xa93f3f 
+0x10f 000361 store 3 ,0x8a60 
+0x110 000362 jam 0x1f ,0x8a63 
+0x111 000363 rtn 
+:      000366 p_rx_dcoc:
+0x112 000367 rtn wake 
+0x113 000368 call set_sync_on 
+0x114 000369 arg 39 ,temp 
+0x115 000370 call set_freq_rx 
+0x116 000371 call rf_rx_enable 
+0x117 000372 jam 0x7f ,0x8a25 
+0x118 000373 jam 0x1a ,0x8a30 
+0x119 000374 jam 0x78 ,0x8a31 
+0x11a 000375 jam 0xb2 ,0x8a8f 
+0x11b 000376 jam 0 ,0x8ac2 
+0x11c 000377 jam 0 ,0x8ac3 
+0x11d 000378 arg 6 ,queue 
+0x11e 000379 call p_rx_dcoc_avg 
+0x11f 000380 isolate1 13 ,rega 
+0x120 000381 call qset_start 
+0x121 000382 isolate1 13 ,regb 
+0x122 000383 call qset_p 
+0x123 000384 arg 5 ,queue 
+:      000385 p_rx_dcoc_loop2:
+0x124 000386 call qset1_p 
+0x125 000387 call qset_p 
+0x126 000388 call p_rx_dcoc_avg 
+0x127 000389 arg 0x8ac2 ,contw 
+0x128 000390 rshift4 rega ,pdata 
+0x129 000391 call qsetxor 
+0x12a 000392 rshift4 regb ,pdata 
+0x12b 000393 call qsetxor 
+0x12c 000394 increase -1 ,queue 
+0x12d 000395 branch p_rx_dcoc_loop2 ,positive 
+0x12e 000396 branch rx_dcoc_loop2 + 10 
+:      000398 p_rx_dcoc_avg:
+0x12f 000399 nop 60 
+0x130 000400 setarg mem_dcoc_buf 
+0x131 000401 store 2 ,0x8982 
+0x132 000402 setarg mem_dcoc_buf_end 
+0x133 000403 store 2 ,0x8984 
+0x134 000404 jam 0x9 ,0x8981 
+0x135 000405 jam 0x3 ,0x8981 
+0x136 000406 jam 0x6 ,0x8980 
+0x137 000407 nop 60 
+0x138 000408 arg 0 ,rega 
+0x139 000409 arg 0 ,regb 
+0x13a 000410 arg 16 ,loopcnt 
+0x13b 000411 arg mem_dcoc_buf ,contr 
+0x13c 000412 branch rx_dcoc_loop 
+:      000414 p_rfpll_aac_ghpc:
+0x13d 000415 rtn wake 
+0x13e 000416 branch rfpll_aac_ghpc + 1 
+:      000418 p_keyboard_clear_pdata:
+0x13f 000419 setarg 0 
+:      000420 p_mouse_init_sunt:
+:      000421 p_dpll_ring_ibias_calc:
+0x140 000422 rtn 
+:      000424 p_sadc_calibration:
+0x141 000425 rtn wake 
+0x142 000426 jam 0x77 ,core_gpadc_ctrl 
+0x143 000427 jam 0xc9 ,core_gpadc_cfg0 
+0x144 000428 jam 0x01 ,core_gpadc_cfg3 
+0x145 000429 fetch 1 ,mem_adc_clkdiv 
+0x146 000430 store 1 ,core_sadc_clkdiv 
+0x147 000431 nop 3000 
+0x148 000432 call p_sadc_read 
+0x149 000433 jam 0xc1 ,core_gpadc_cfg0 
+0x14a 000434 fetchr regb ,1 ,mem_spi_write_addr 
+0x14b 000435 arg 8 ,loopcnt 
+0x14c 000436 call sadc_cal_read + 1 
+0x14d 000437 fetch 1 ,mem_spi_write_addr 
+0x14e 000438 store 1 ,mem_adc_cal_c7 
+0x14f 000439 storer regb ,1 ,mem_spi_write_addr 
+0x150 000440 rtn 
+:      000443 p_sadc_read:
+0x151 000444 jam 0x03 ,core_sadc_ctrl 
+:      000445 p_sadc_read_wait:
+0x152 000446 fetch 1 ,core_perf_status 
+0x153 000447 bbit0 saradc_done ,p_sadc_read_wait 
+0x154 000448 fetcht 2 ,core_sadc_data 
+0x155 000449 storet 2 ,mem_adc_current_value 
+0x156 000450 jam 0x00 ,core_sadc_ctrl 
+0x157 000451 rtn 
+:      000454 p_set_lemode:
+0x158 000455 jam 0x11 ,0x8a82 
+0x159 000456 jam 0x12 ,0x8a8d 
+0x15a 000457 jam 0x0a ,0x8a8e 
+0x15b 000458 fetch 1 ,mem_fcomp_div 
+0x15c 000459 beq xtal_16m ,p_set_lemode_2m_16m 
+0x15d 000460 setarg 0x5762 
+0x15e 000461 store 2 ,0x8907 
+:      000462 p_set_lemode_2m:
+0x15f 000463 jam 3 ,0x8901 
+0x160 000464 jam 3 ,0x8930 
+0x161 000465 rtnmark1 mark_ble_2m 
+0x162 000466 jam 1 ,0x8901 
+0x163 000467 jam 0x07 ,0x8a82 
+0x164 000468 jam 0x44 ,0x8a8d 
+0x165 000469 jam 0x0a ,0x8a8e 
+0x166 000470 fetch 1 ,mem_fcomp_div 
+0x167 000471 beq xtal_16m ,p_set_lemode_1m_16m 
+0x168 000472 setarg 0x2bb1 
+0x169 000473 store 2 ,0x8907 
+:      000474 p_set_lemode_1m:
+0x16a 000475 rtnmark0 mark_ble_lr 
+0x16b 000476 jam 0x24 ,0x8930 
+0x16c 000477 jam 5 ,0x8901 
+0x16d 000478 rtn 
+:      000480 p_set_lemode_1m_16m:
+0x16e 000481 setarg 0x4189 
+0x16f 000482 store 2 ,0x8907 
+0x170 000483 branch p_set_lemode_1m 
+:      000485 p_set_lemode_2m_16m:
+0x171 000486 setarg 0x8312 
+0x172 000487 store 2 ,0x8907 
+0x173 000488 branch p_set_lemode_2m 
+:      000490 p_otp_read_data:
+0x174 000491 call enable_otp_read 
+0x175 000492 call otp_read_data + 1 
+0x176 000493 branch otp_disable_chgpump 
+:      000495 p_keyboard_load_otp_info_check:
+0x177 000496 fetch 1 ,mem_device_flag 
+0x178 000497 beq mode_24g_device ,p_keyboard_load_otp_device_info_g24_init 
+0x179 000498 beq mode_bt_device1 ,p_keyboard_load_otp_device_info_ble_init 
+0x17a 000499 rtn 
+:      000501 p_keyboard_load_otp_device_info_g24_init:
+0x17b 000502 arg 80 ,regd 
+0x17c 000503 setarg 0x400 
+0x17d 000504 idiv regd 
+0x17e 000505 call wait_div_end 
+0x17f 000506 quotient pdata 
+0x180 000507 store 2 ,mem_pdatatemp 
+0x181 000508 arg 0x1fbc ,pdata 
+0x182 000509 arg 4 ,temp 
+0x183 000510 arg 4 ,rege 
+0x184 000511 branch p_keyboard_load_otp_device_info 
+:      000513 p_keyboard_load_otp_device_info_ble_init:
+0x185 000514 arg 320 ,regd 
+0x186 000515 setarg 0x400 
+0x187 000516 idiv regd 
+0x188 000517 call wait_div_end 
+0x189 000518 quotient pdata 
+0x18a 000519 store 2 ,mem_pdatatemp 
+0x18b 000520 arg 0x1fb0 ,pdata 
+0x18c 000521 arg 16 ,temp 
+0x18d 000522 arg 16 ,rege 
+0x18e 000523 branch p_keyboard_load_otp_device_info 
+:      000525 p_keyboard_load_otp_device_info:
+0x18f 000526 store 2 ,mem_pdatatemp + 2 
+0x190 000527 storet 1 ,mem_temp 
+0x191 000528 arg mem_otp_read_retention_memory ,rega 
+0x192 000529 arg 0 ,regc 
+:      000530 p_keyboard_load_otp_info_check_page_loop:
+0x193 000531 fetch 2 ,mem_pdatatemp + 2 
+0x194 000532 copy pdata ,regb 
+0x195 000533 fetchr loopcnt ,1 ,mem_temp 
+0x196 000534 arg mem_otp_read_retention_memory ,rega 
+0x197 000535 call otp_read_data 
+0x198 000536 fetch 8 ,mem_otp_read_retention_memory 
+0x199 000537 fetcht 8 ,mem_otp_read_retention_memory + 8 
+0x19a 000538 ior temp ,pdata 
+0x19b 000539 fetcht 8 ,mem_otp_read_retention_memory + 16 
+0x19c 000540 ior temp ,pdata 
+0x19d 000541 branch p_keyboard_load_otp_info_check_first_time ,blank 
+0x19e 000542 increase 1 ,regc 
+0x19f 000543 fetch 2 ,mem_pdatatemp 
+0x1a0 000544 isub regc ,null 
+0x1a1 000546 fetch 2 ,mem_pdatatemp + 2 
+0x1a2 000547 isub regd ,pdata 
+0x1a3 000548 store 2 ,mem_pdatatemp + 2 
+0x1a4 000549 branch p_keyboard_load_otp_info_check_page_loop 
+:      000550 p_keyboard_load_otp_info_check_first_time:
+0x1a5 000551 sub regc ,0 ,null 
+0x1a6 000552 branch keyboard_load_otp_info_check_first_time_process ,zero 
+:      000553 p_keyboard_load_otp_info_check_first_time_loop_init:
+0x1a7 000554 fetch 2 ,mem_pdatatemp + 2 
+0x1a8 000555 iadd regd ,pdata 
+:      000556 p_keyboard_load_otp_info_check_first_time_loop:
+0x1a9 000557 isub rege ,pdata 
+0x1aa 000558 store 2 ,mem_pdatatemp + 2 
+0x1ab 000559 fetch 2 ,mem_pdatatemp + 2 
+0x1ac 000560 copy pdata ,regb 
+0x1ad 000561 fetchr loopcnt ,1 ,mem_temp 
+0x1ae 000562 arg mem_otp_read_retention_memory ,rega 
+0x1af 000563 call otp_read_data 
+0x1b0 000564 fetch 8 ,mem_otp_read_retention_memory 
+0x1b1 000565 fetcht 8 ,mem_otp_read_retention_memory + 8 
+0x1b2 000566 ior temp ,pdata 
+0x1b3 000567 fetcht 8 ,mem_otp_read_retention_memory + 16 
+0x1b4 000568 ior temp ,pdata 
+0x1b5 000569 branch p_keyboard_load_otp_info_check_offset_process ,blank 
+0x1b6 000570 fetch 2 ,mem_pdatatemp + 2 
+0x1b7 000571 branch p_keyboard_load_otp_info_check_first_time_loop 
+:      000573 p_keyboard_load_otp_info_check_offset_process:
+0x1b8 000574 setarg 0x1fc0 
+0x1b9 000575 fetcht 2 ,mem_pdatatemp + 2 
+0x1ba 000576 isub temp ,pdata 
+0x1bb 000577 store 2 ,mem_otp_read_retention_offset 
+0x1bc 000578 copy temp ,pdata 
+0x1bd 000579 iadd rege ,regb 
+0x1be 000580 fetchr loopcnt ,1 ,mem_temp 
+0x1bf 000581 arg mem_otp_read_retention_memory ,rega 
+0x1c0 000582 call otp_read_data 
+0x1c1 000583 fetch 1 ,mem_device_flag 
+0x1c2 000584 beq mode_24g_device ,keyboard_load_otp_info_check_offset_process_g24 
+0x1c3 000585 beq mode_bt_device1 ,p_keyboard_load_otp_info_check_offset_process_ble 
+0x1c4 000586 rtn 
+:      000588 p_keyboard_load_otp_info_check_offset_process_ble:
+0x1c5 000589 fetch 1 ,mem_otp_read_retention_memory 
+0x1c6 000590 sub pdata ,system_os_mac ,null 
+0x1c7 000591 ncall set_pdata_0 ,positive 
+0x1c8 000592 store 1 ,mem_kb_computer_system 
+0x1c9 000593 fetch 1 ,mem_otp_read_retention_memory + 1 
+0x1ca 000594 store 1 ,mem_device1_type 
+0x1cb 000595 fetch 6 ,mem_otp_read_retention_memory + 2 
+0x1cc 000596 store 6 ,mem_device1_addr 
+0x1cd 000597 fetch 6 ,mem_otp_read_retention_memory + 8 
+0x1ce 000598 store 6 ,mem_device1_locall_addr 
+0x1cf 000599 fetcht 2 ,mem_otp_read_retention_memory + 14 
+0x1d0 000600 random pdata 
+0x1d1 000601 iadd temp ,pdata 
+0x1d2 000602 store 2 ,mem_random_addr_increase_count 
+0x1d3 000603 branch p_keyboard_select_reconn_device 
+:      000605 p_keyboard_store_otp_device_info:
+0x1d4 000606 fetch 1 ,mem_device_flag 
+0x1d5 000607 beq mode_24g_device ,p_keyboard_store_otp_device_info_g24 
+0x1d6 000608 beq mode_bt_device1 ,p_keyboard_store_otp_device_info_ble 
+0x1d7 000609 rtn 
+:      000611 p_keyboard_store_otp_device_info_g24:
+0x1d8 000612 fetcht 2 ,mem_otp_read_retention_offset 
+0x1d9 000613 setarg 0x1fc0 
+0x1da 000614 branch keyboard_store_otp_device_info_g24 + 2 
+:      000616 p_keyboard_store_otp_device_info_ble:
+0x1db 000617 jam 1 ,mem_otp_store_device_info_flag 
+0x1dc 000618 fetch 1 ,mem_otp_store_system_flag 
+0x1dd 000619 rtn blank 
+:      000620 p_keyboard_wirte_otp_ble:
+0x1de 000621 fetcht 2 ,mem_otp_read_retention_offset 
+0x1df 000622 setarg 0x1fc0 
+0x1e0 000623 isub temp ,pdata 
+0x1e1 000624 store 2 ,mem_pdatatemp 
+0x1e2 000626 copy pdata ,regb 
+0x1e3 000627 arg mem_kb_computer_system ,rega 
+0x1e4 000628 arg 1 ,loopcnt 
+0x1e5 000629 call otp_write 
+0x1e6 000631 fetch 2 ,mem_pdatatemp 
+0x1e7 000632 add pdata ,1 ,regb 
+0x1e8 000633 arg mem_device1_type ,rega 
+0x1e9 000634 arg 13 ,loopcnt 
+0x1ea 000635 call otp_write 
+0x1eb 000637 fetch 2 ,mem_pdatatemp 
+0x1ec 000638 add pdata ,14 ,regb 
+0x1ed 000639 arg mem_random_addr_increase_count ,rega 
+0x1ee 000640 arg 2 ,loopcnt 
+0x1ef 000641 call otp_write 
+0x1f0 000643 fetcht 2 ,mem_otp_read_retention_offset 
+0x1f1 000644 increase 16 ,temp 
+0x1f2 000645 storet 2 ,mem_otp_read_retention_offset 
+0x1f3 000646 rtn 
+:      000648 p_keyboard_store_device_info:
+0x1f4 000649 fetch mouse_flag_len ,mem_mouse_flag 
+0x1f5 000650 bbit1 mouse_enable_otp ,p_keyboard_store_otp_device_info 
+0x1f6 000651 branch keyboard_store_device_info + 2 
+:      000655 p_keyboard_priority_bb_event:
+0x1f7 000656 copy regc ,pdata 
+0x1f8 000657 beq bt_evt_le_disconnected ,p_keyboard_le_bb_disconnected 
+0x1f9 000658 branch keyboard_priority_bb_event + 2 
+:      000661 p_keyboard_le_bb_disconnected:
+0x1fa 000662 setarg 0 
+0x1fb 000663 store 2 ,mem_le_battery_level_updata_timer 
+0x1fc 000664 store 1 ,mem_keyboard_le_send_conn_param_update 
+0x1fd 000665 store 1 ,mem_keyboard_le_send_conn_param_update_timer 
+0x1fe 000666 store 1 ,mem_mouse_le_bb_connected_flag 
+0x1ff 000667 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+0x200 000668 call le_clr_config_more_data 
+0x201 000669 jam 0 ,mem_ltk_exists 
+0x202 000670 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x203 000671 bbit1 app_disc_ble ,p_keyboard4_0_event_bb_disconn 
+0x204 000672 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x205 000673 branch keyboard_start_discovery 
+:      000674 p_keyboard4_0_event_bb_disconn:
+0x206 000675 call mouse_le_clean_connect_flag 
+0x207 000676 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x208 000677 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x209 000678 branch p_keyboard_app_enter_hibernate 
+:      000683 p_keyboard_bb_event_timer:
+0x20a 000684 call mouse_adc_read 
+0x20b 000685 call p_keyboard_low_voltage_led_timer 
+0x20c 000687 call g24_pair_timeout_timer 
+0x20d 000688 call g24_reconn_timeout_timer 
+0x20e 000689 call mouse_24g_long_sleep_param_update_timer 
+0x20f 000690 call p_keyboard_24g_repeat_send_data 
+0x210 000691 call keyboard_24g_led_status_get_timer 
+0x211 000694 call p_keyboard_num_capslock_led_on_timer 
+0x212 000695 call p_keyboard_device_poweron_timer 
+0x213 000696 call p_keyboard_device_pair_discovery_led_timer 
+0x214 000697 call p_keyboard_mode_led_timer 
+0x215 000698 call keyboard_check_discovery_timeout_timer 
+0x216 000699 call keyboard_check_direct_timeout_timer 
+0x217 000700 call mouse_le_enable_att_list_timer 
+0x218 000701 call keyboard_le_battery_updata_timer 
+0x219 000702 call mouse_le_send_smp_security_request_timer 
+0x21a 000703 call keyboard_le_send_conn_param_update_timer 
+0x21b 000704 call keyboard_le_auto_recognize_timer 
+0x21c 000706 call p_keyboard_key_press_timer 
+0x21d 000707 call keyboard_commbination_key_process 
+0x21e 000708 call mouse_current_mult_update_timer 
+0x21f 000709 call keyboard_store_information_delay_timer 
+0x220 000711 call p_keyboard_long_press_timer 
+0x221 000712 call keyboard_commbination_delay_release_timer 
+0x222 000713 branch p_keyboard_check_no_data_timeout_timer 
+:      000715 p_keyboard_adc_read_start:
+0x223 000716 call p_keyboard_low_voltage_param_set 
+0x224 000717 call enable_adc 
+0x225 000718 call vdd_calculate_by_mode 
+0x226 000719 div pdata ,10 
+0x227 000720 call get_div_result 
+0x228 000721 store 2 ,mem_mouse_vdd_now_vol 
+0x229 000722 arg mem_mouse_vdd_calculate_set ,rega 
+0x22a 000723 call mouse_adc_bat_percent_lowpower_out 
+0x22b 000724 fetch 1 ,mem_adc_power_flag 
+0x22c 000725 bbit1 1 ,keyboard_power_down 
+0x22d 000726 bbit0 0 ,p_keyboard_adc_no_low_voltage 
+0x22e 000727 jam 1 ,mem_mouse_adc_last_low_voltage_flag 
+0x22f 000728 branch mouse_adc_low_voltage 
+:      000730 p_keyboard_adc_no_low_voltage:
+0x230 000731 arg mouse_low_voltage_flag ,queue 
+0x231 000732 call mouse_disable_function_flag 
+0x232 000733 jam 12 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0x233 000734 branch mouse_adc_no_low_voltage + 3 
+:      000737 p_keyboard_low_voltage_param_set:
+0x234 000738 call mouse_adc_gpio_set_before_hibernate 
+:      000739 p_keyboard_low_voltage_param_set_backlight_off:
+0x235 000740 setarg 0x560094 
+0x236 000741 store 3 ,mem_mouse_vdd_full_vol 
+0x237 000742 setarg 0x006d00 
+0x238 000743 istore 3 ,contw 
+0x239 000744 fetch 1 ,mem_mouse_adc_last_low_voltage_flag 
+0x23a 000745 branch p_keyboard_low_voltage_param_set_backligh_off_1v0 ,blank 
+0x23b 000746 jam 0x73 ,mem_mouse_vdd_low_vol 
+0x23c 000747 rtn 
+:      000748 p_keyboard_low_voltage_param_set_backligh_off_1v0:
+0x23d 000749 jam 0x6d ,mem_mouse_vdd_low_vol 
+0x23e 000750 rtn 
+:      000752 p_keyboard_24g_repeat_send_data:
+0x23f 000753 fetch 1 ,mem_same_keyvalue_timerout_flag 
+0x240 000754 nrtn blank 
+0x241 000755 branch keyboard_24g_repeat_send_data 
+:      000757 p_keyboard_num_capslock_led_on_timer:
+0x242 000758 fetch 2 ,mem_mouse_no_data_timer 
+0x243 000759 rtn blank 
+0x244 000760 fetch 2 ,mem_mouse_no_data_timeout 
+0x245 000761 fetcht 2 ,mem_mouse_no_data_timer 
+0x246 000762 isub temp ,temp 
+0x247 000763 fetch 2 ,mem_keyboard_caps_led_on_timer 
+0x248 000764 isub temp ,pdata 
+0x249 000765 branch p_keyboard_num_cap_led_on ,positive 
+0x24a 000766 call p_keyboard_numlock_led_off 
+0x24b 000767 call p_keyboard_scrolllock_led_off 
+0x24c 000768 branch keyboard_capslock_led_off 
+:      000769 p_keyboard_num_cap_led_on:
+0x24d 000770 call p_keyboard_numlock_led_check_on 
+0x24e 000771 call p_keyboard_scrolllock_led_check_on 
+0x24f 000772 branch keyboard_capslock_led_check_on 
+:      000773 p_keyboard_numlock_led_check_on:
+0x250 000774 fetch 1 ,mem_keyboard_led_status 
+0x251 000775 bbit0 kb_pc_keysel_numlock ,p_keyboard_numlock_led_off 
+0x252 000776 fetcht 1 ,mem_keyboard_num_led_gpio 
+0x253 000777 branch gpio_out_active 
+:      000778 p_keyboard_numlock_led_off:
+0x254 000779 fetcht 1 ,mem_keyboard_num_led_gpio 
+0x255 000780 branch gpio_out_inactive 
+:      000781 p_keyboard_scrolllock_led_off:
+0x256 000782 fetch 1 ,mem_keyboard_device_poweron_timer_count 
+0x257 000783 nrtn blank 
+0x258 000784 fetch 1 ,mem_adc_power_flag 
+0x259 000785 rtnbit1 0 
+0x25a 000786 fetcht 1 ,mem_keyboard_scroll_led_gpio 
+0x25b 000787 branch gpio_out_inactive 
+:      000789 p_keyboard_scrolllock_led_check_on:
+0x25c 000790 fetch 1 ,mem_keyboard_device_poweron_timer_count 
+0x25d 000791 nrtn blank 
+0x25e 000792 fetch 1 ,mem_adc_power_flag 
+0x25f 000793 rtnbit1 0 
+0x260 000794 fetch 1 ,mem_keyboard_led_status 
+0x261 000795 bbit0 kb_pc_keysel_scrolllock ,p_keyboard_scrolllock_led_off 
+0x262 000796 fetcht 1 ,mem_keyboard_scroll_led_gpio 
+0x263 000797 branch gpio_out_active 
+:      000800 p_keyboard_usb_led_check:
+0x264 000801 fetch 1 ,mem_24g_led_status 
+0x265 000802 store 1 ,mem_keyboard_led_status 
+0x266 000803 branch p_keyboard_num_cap_led_on 
+:      000805 p_keyboard_device_poweron_timer:
+0x267 000806 fetch 1 ,mem_keyboard_device_poweron_timer_count 
+0x268 000807 rtn blank 
+0x269 000808 increase -1 ,pdata 
+0x26a 000809 store 1 ,mem_keyboard_device_poweron_timer_count 
+0x26b 000810 branch p_keyboard_device_led_off ,blank 
+0x26c 000811 branch p_keyboard_device_led_on 
+:      000813 p_keyboard_device_led_off:
+0x26d 000814 fetch 1 ,mem_device_flag 
+0x26e 000815 beq mode_24g_device ,p_keyboard_device_24g_led_off 
+0x26f 000816 beq mode_bt_device1 ,p_keyboard_device_bt1_led_off 
+0x270 000817 beq mode_bt_device2 ,p_keyboard_device_bt2_led_off 
+0x271 000818 beq mode_bt_device3 ,p_keyboard_device_bt3_led_off 
+0x272 000819 rtn 
+:      000821 p_keyboard_device_led_on:
+0x273 000822 fetch 1 ,mem_device_flag 
+0x274 000823 beq mode_24g_device ,p_keyboard_device_24g_led_on 
+0x275 000824 beq mode_bt_device1 ,p_keyboard_device_bt1_led_on 
+0x276 000825 beq mode_bt_device2 ,p_keyboard_device_bt2_led_on 
+0x277 000826 beq mode_bt_device3 ,p_keyboard_device_bt3_led_on 
+0x278 000827 rtn 
+:      000829 p_keyboard_device_24g_led_off:
+0x279 000830 fetcht 1 ,mem_keyboard_24g_led_gpio 
+0x27a 000831 branch gpio_out_inactive 
+:      000833 p_keyboard_device_bt1_led_off:
+0x27b 000834 fetcht 1 ,mem_keyboard_bt1_led_gpio 
+0x27c 000835 branch gpio_out_inactive 
+:      000837 p_keyboard_device_bt2_led_off:
+0x27d 000838 fetcht 1 ,mem_keyboard_bt2_led_gpio 
+0x27e 000839 branch gpio_out_inactive 
+:      000841 p_keyboard_device_bt3_led_off:
+0x27f 000842 fetcht 1 ,mem_keyboard_bt3_led_gpio 
+0x280 000843 branch gpio_out_inactive 
+:      000845 p_keyboard_device_24g_led_on:
+0x281 000846 fetcht 1 ,mem_keyboard_24g_led_gpio 
+0x282 000847 branch gpio_out_active 
+:      000849 p_keyboard_device_bt1_led_on:
+0x283 000850 fetcht 1 ,mem_keyboard_bt1_led_gpio 
+0x284 000851 branch gpio_out_active 
+:      000853 p_keyboard_device_bt2_led_on:
+0x285 000854 fetcht 1 ,mem_keyboard_bt2_led_gpio 
+0x286 000855 branch gpio_out_active 
+:      000857 p_keyboard_device_bt3_led_on:
+0x287 000858 fetcht 1 ,mem_keyboard_bt3_led_gpio 
+0x288 000859 branch gpio_out_active 
+:      000861 p_keyboard_mode_led_timer:
+0x289 000862 fetch 2 ,mem_mouse_no_data_timer 
+0x28a 000863 rtn blank 
+0x28b 000864 fetch 1 ,mem_keyboard_mode_led_on_timer 
+0x28c 000865 rtn blank 
+0x28d 000866 increase -1 ,pdata 
+0x28e 000867 store 1 ,mem_keyboard_mode_led_on_timer 
+0x28f 000868 bbit1 0 ,p_keyboard_device_led_on 
+0x290 000869 branch p_keyboard_device_led_off 
+:      000871 p_keyboard_device_pair_discovery_led_timer:
+0x291 000872 fetch 1 ,mem_device_flag 
+0x292 000873 beq mode_24g_device ,p_keyboard_device_pair_led 
+0x293 000874 fetch 2 ,mem_mouse_discovery_timer 
+0x294 000875 rtn blank 
+0x295 000876 branch p_keyboard_device_pair_led + 2 
+:      000878 p_keyboard_device_pair_led:
+0x296 000879 fetch 2 ,mem_24g_pair_timeout 
+0x297 000880 rtn blank 
+0x298 000881 fetch 1 ,mem_keyboard_pair_led_flag 
+0x299 000882 increase 1 ,pdata 
+0x29a 000883 store 1 ,mem_keyboard_pair_led_flag 
+0x29b 000884 bbit1 2 ,p_keyboard_device_led_on 
+0x29c 000885 branch p_keyboard_device_led_off 
+:      000888 p_keyboard_low_voltage_led_timer:
+0x29d 000889 jam 0 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+0x29e 000890 fetch 2 ,mem_mouse_discovery_timer 
+0x29f 000891 nrtn blank 
+0x2a0 000892 fetch 2 ,mem_24g_pair_timeout 
+0x2a1 000893 nrtn blank 
+0x2a2 000894 fetch 2 ,mem_24g_reconn_timeout 
+0x2a3 000895 nrtn blank 
+0x2a4 000896 fetch 1 ,mem_keyboard_device_poweron_timer_count 
+0x2a5 000897 nrtn blank 
+0x2a6 000898 fetch mouse_flag_len ,mem_mouse_flag 
+0x2a7 000899 rtnbit0 mouse_enable_low_led 
+0x2a8 000900 rtnbit0 mouse_low_voltage_flag 
+0x2a9 000901 bbit1 mouse_enable_low_voltage_led_blink_n_second ,p_keyboard_low_voltage_led_blink_new_data 
+0x2aa 000902 fetch 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0x2ab 000903 increase 1 ,pdata 
+0x2ac 000904 store 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0x2ad 000905 sub pdata ,20 ,null 
+0x2ae 000906 ncall p_keyboard_adc_low_volatage_led_timer_count_clean ,positive 
+0x2af 000907 beq 2 ,p_keyboard_low_voltage_led_on 
+0x2b0 000908 beq 4 ,p_keyboard_low_voltage_led_off 
+0x2b1 000909 beq 6 ,p_keyboard_low_voltage_led_on 
+0x2b2 000910 beq 8 ,p_keyboard_low_voltage_led_off 
+0x2b3 000911 rtn 
+:      000912 p_keyboard_adc_low_volatage_led_timer_count_clean:
+0x2b4 000913 jam 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0x2b5 000914 branch p_keyboard_low_voltage_led_off 
+:      000915 p_keyboard_low_voltage_led_on:
+0x2b6 000916 fetcht 1 ,mem_keyboard_low_voltage_alarm_gpio 
+0x2b7 000917 branch gpio_out_active 
+:      000918 p_keyboard_low_voltage_led_off:
+0x2b8 000919 fetcht 1 ,mem_keyboard_low_voltage_alarm_gpio 
+0x2b9 000920 branch gpio_out_inactive 
+:      000922 p_keyboard_low_voltage_led_blink_new_data:
+0x2ba 000923 fetch 2 ,mem_mouse_no_data_timeout 
+0x2bb 000924 fetcht 2 ,mem_mouse_no_data_timer 
+0x2bc 000925 isub temp ,temp 
+0x2bd 000926 fetch 2 ,mem_adc_low_volatage_led_blink_timer 
+0x2be 000927 isub temp ,null 
+0x2bf 000928 nbranch p_keyboard_low_voltage_led_off ,positive 
+0x2c0 000929 jam 1 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+0x2c1 000930 fetch 1 ,mem_keyboard_low_volatage_led_flag 
+0x2c2 000931 increase 1 ,pdata 
+0x2c3 000932 store 1 ,mem_keyboard_low_volatage_led_flag 
+0x2c4 000933 bbit1 1 ,p_keyboard_low_voltage_led_on 
+0x2c5 000934 branch p_keyboard_low_voltage_led_off 
+:      000936 p_keyboard_low_voltage_led_no_enter_lpm:
+0x2c6 000937 fetch mouse_flag_len ,mem_mouse_flag 
+0x2c7 000938 rtnbit0 mouse_enable_low_led 
+0x2c8 000939 rtnbit0 mouse_low_voltage_flag 
+0x2c9 000940 bbit1 mouse_enable_low_voltage_led_blink_n_second ,p_mouse_low_voltage_led_no_enter_lpm_blink 
+0x2ca 000941 fetch 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0x2cb 000942 sub pdata ,10 ,null 
+0x2cc 000943 branch mouse_lpm_mode_clear ,positive 
+0x2cd 000944 branch mouse_low_voltage_led_no_enter_lpm_next 
+:      000946 p_mouse_low_voltage_led_no_enter_lpm_blink:
+0x2ce 000947 fetch 1 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+0x2cf 000948 nbranch mouse_lpm_mode_clear ,blank 
+0x2d0 000949 branch mouse_low_voltage_led_no_enter_lpm_next 
+:      000954 p_keyboard_discover_setting_led_gpio:
+0x2d1 000955 rtn 
+:      000957 p_keyboard_long_press_timer:
+0x2d2 000958 arg mem_same_keyvalue_timer ,regc 
+0x2d3 000959 arg p_keyboard_long_press_timerout ,regb 
+0x2d4 000960 branch timer_single_step_2b 
+:      000962 p_keyboard_long_press_timerout:
+0x2d5 000963 jam 1 ,mem_same_keyvalue_timerout_flag 
+0x2d6 000964 branch keyboard_app_enter_hibernate 
+:      000967 p_keyboard_check_no_data_timeout_timer:
+0x2d7 000968 arg mem_mouse_no_data_timer ,regc 
+0x2d8 000969 arg keyboard_check_no_data_timeout ,regb 
+0x2d9 000970 branch timer_single_step_2b 
+:      000973 p_keyboard_key_press_timer:
+0x2da 000974 fetch 1 ,mem_keyboard_switch_device_flag 
+0x2db 000975 bbit1 keyboard_flag_bt_device_button ,p_keyboard_device_select_bt_press_timer 
+0x2dc 000976 branch p_keyboard_device_select_bt_nopress_timer 
+:      000979 p_keyboard_device_select_bt_press_timer:
+0x2dd 000980 fetch 1 ,mem_keyboard_switch_bt_press_timer 
+0x2de 000981 sub pdata ,100 ,null 
+0x2df 000982 nrtn positive 
+0x2e0 000983 increase 1 ,pdata 
+0x2e1 000984 store 1 ,mem_keyboard_switch_bt_press_timer 
+0x2e2 000985 rtnne 25 
+0x2e3 000986 jam 0 ,mem_keyboard_switch_bt_enable 
+0x2e4 000987 fetch 1 ,mem_device_flag 
+0x2e5 000988 rtneq mode_usb_device 
+0x2e6 000989 branch keyboard_long_button_bt_discovery + 3 
+:      000991 p_keyboard_device_select_bt_nopress_timer:
+0x2e7 000992 jam 0 ,mem_keyboard_switch_bt_press_timer 
+0x2e8 000993 rtn 
+:      000996 p_keyboard_idle:
+0x2e9 000997 call p_keyboard_low_voltage_led_no_enter_lpm 
+0x2ea 000998 branch ui_check_paring_button 
+:      001000 p_keyboard_start_work:
+:      001001 p_keyboard_start_work_adc_check:
+0x2eb 001002 fetch mouse_flag_len ,mem_mouse_flag 
+0x2ec 001003 bbit0 mouse_enable_adc ,p_keyboard_start_work_next 
+0x2ed 001004 call mouse_adc_gpio_set 
+0x2ee 001005 call p_keyboard_low_voltage_param_set 
+0x2ef 001006 call enable_adc 
+0x2f0 001007 call vdd_calculate_by_mode 
+0x2f1 001008 div pdata ,10 
+0x2f2 001009 call get_div_result 
+0x2f3 001010 store 2 ,mem_mouse_vdd_now_vol 
+0x2f4 001011 fetch 2 ,mem_mouse_vdd_empty_vol 
+0x2f5 001012 div pdata ,2 
+0x2f6 001013 call get_div_result 
+0x2f7 001014 fetcht 2 ,mem_mouse_vdd_now_vol 
+0x2f8 001015 isub temp ,null 
+0x2f9 001016 branch p_keyboard_start_work_adc_check ,positive 
+0x2fa 001017 arg mem_mouse_vdd_calculate_set ,rega 
+0x2fb 001018 call mouse_adc_bat_percent_lowpower_out 
+0x2fc 001019 fetch 1 ,mem_adc_power_flag 
+0x2fd 001020 bbit1 1 ,keyboard_power_down 
+:      001021 p_keyboard_start_work_next:
+0x2fe 001022 fetch 1 ,mem_keyboard_pairing_type 
+0x2ff 001023 call keyboard_enable_bt_button_pairing ,blank 
+0x300 001024 fetch 1 ,mem_keyboard_bt_button_flag 
+0x301 001025 nrtn blank 
+0x302 001026 fetch 1 ,mem_device_flag 
+0x303 001027 beq mode_24g_device ,mouse_24g_reconn_general_dongle 
+0x304 001028 call mouse_bluetooth_fast_conn_disable 
+:      001029 p_keyboard_start_ble1_reconnect:
+0x305 001030 fetch 6 ,mem_device1_addr 
+:      001031 p_keyboard_start_ble_reconnect:
+0x306 001032 branch mouse_bluetooth_fast_conn_init ,blank 
+0x307 001033 branch mouse_start_reconnect_device 
+:      001037 p_keyboard_keyscan:
+0x308 001038 call p_keyboard_gpio_init 
+0x309 001039 call keyboard_stb_state_low 
+0x30a 001040 setarg 0 
+0x30b 001041 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x30c 001042 arg mem_keyscan_value_current ,contr 
+0x30d 001043 arg mem_keyscan_value_check ,contw 
+0x30e 001044 arg 20 ,loopcnt 
+0x30f 001045 call memcpy 
+0x310 001046 setarg mem_keyscan_value_current 
+0x311 001047 store 2 ,mem_keyscan_value_ptr 
+0x312 001048 setarg mem_keyscan_exmcu_value_new 
+0x313 001049 store 2 ,mem_keyscan_exmcu_value_ptr 
+0x314 001050 call keyboard_stb_state_high 
+0x315 001052 call keyboard_clk_input 
+:      001053 p_keyboard_keyscan_exmcu_start_check:
+0x316 001054 fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x317 001055 increase 1 ,pdata 
+0x318 001056 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x319 001057 bbit1 9 ,p_keyboard_keyscan_reset_exmcu 
+0x31a 001058 fetcht 1 ,mem_mcu_clk_gpio 
+0x31b 001059 call gpio_get_bit 
+0x31c 001060 nbranch p_keyboard_keyscan_exmcu_start_check ,true 
+0x31d 001061 call keyboard_stb_state_low 
+:      001062 p_keyboard_keyscan_wait_wake_next:
+0x31e 001063 fetcht 1 ,mem_mcu_clk_gpio 
+0x31f 001064 call gpio_get_bit 
+0x320 001065 branch p_keyboard_keyscan_wait_wake_next ,true 
+0x321 001067 call p_keyboard_keyscan_get_exmcu_value 
+0x322 001068 call p_keyboard_keyscan_get_mcu_value 
+0x323 001069 call keyboard_clk_input 
+0x324 001070 call keyboard_stb_state_high 
+:      001071 p_keyboard_keyscan_copy_value:
+0x325 001072 fetch 2 ,mem_kb_excol_ptr 
+0x326 001073 copy pdata ,regb 
+0x327 001074 jam 0 ,mem_keyscan_col_loop_count 
+:      001075 p_keyboard_compare_col_excol_gpio_loop:
+0x328 001076 ifetcht 1 ,regb 
+0x329 001077 fetch 2 ,mem_kb_col_ptr 
+0x32a 001078 copy pdata ,rega 
+0x32b 001079 copy rega ,regc 
+0x32c 001080 arg 20 ,loopcnt 
+:      001081 p_keyboard_compare_col_gpio_loop:
+0x32d 001082 ifetch 1 ,rega 
+0x32e 001083 isub temp ,null 
+0x32f 001084 branch p_keyboard_copy_value_exmcu_to_mcu ,zero 
+0x330 001085 increase 1 ,rega 
+0x331 001086 loop p_keyboard_compare_col_gpio_loop 
+:      001087 p_keyboard_compare_col_excol_gpio_loop_next:
+0x332 001088 increase 1 ,regb 
+0x333 001089 fetch 1 ,mem_keyscan_col_loop_count 
+0x334 001090 increase 1 ,pdata 
+0x335 001091 store 1 ,mem_keyscan_col_loop_count 
+0x336 001092 sub pdata ,11 ,null 
+0x337 001093 branch p_keyboard_compare_col_excol_gpio_loop ,positive 
+0x338 001094 call p_keyboard_gpio_pu_idle 
+0x339 001095 branch p_keyboard_key_row_init 
+:      001098 p_keyboard_copy_value_exmcu_to_mcu:
+0x33a 001099 fetch 2 ,mem_keyscan_value_ptr 
+0x33b 001100 copy pdata ,contw 
+0x33c 001101 copy rega ,pdata 
+0x33d 001102 isub regc ,pdata 
+0x33e 001103 iadd contw ,contw 
+0x33f 001104 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+0x340 001105 copy pdata ,regc 
+0x341 001106 fetch 1 ,mem_keyscan_col_loop_count 
+0x342 001107 iadd regc ,regc 
+0x343 001108 ifetch 1 ,regc 
+0x344 001109 istore 1 ,contw 
+0x345 001110 branch p_keyboard_compare_col_excol_gpio_loop_next 
+:      001112 p_keyboard_keyscan_get_exmcu_value:
+0x346 001113 jam 0 ,mem_keyscan_exmcu_reset_count 
+0x347 001114 jam 0 ,mem_keyscan_col_loop_count 
+:      001115 p_keyboard_keyscan_exmcu_start_loop:
+0x348 001116 call keyboard_clk_state_low 
+0x349 001117 call p_keyboard_keyscan_exmcu_get_col_value 
+0x34a 001118 call keyboard_clk_state_high 
+0x34b 001119 call p_keyboard_keyscan_exmcu_get_col_value 
+0x34c 001120 sub pdata ,11 ,null 
+0x34d 001121 branch p_keyboard_keyscan_exmcu_start_loop ,positive 
+0x34e 001122 branch keyboard_clk_state_low 
+:      001124 p_keyboard_keyscan_reset_exmcu:
+0x34f 001125 branch p_keyboard_keyscan 
+:      001129 p_keyboard_keyscan_exmcu_get_col_value:
+0x350 001130 jam 0 ,mem_keyscan_value_temp 
+0x351 001131 call p_keyboard_keyscan_get_col_value 
+0x352 001132 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+0x353 001133 branch keyboard_keyscan_value_store 
+:      001135 p_keyboard_keyscan_get_col_value:
+0x354 001136 nop 120 
+0x355 001137 branch keyboard_keyscan_get_col_value 
+:      001139 p_keyboard_keyscan_get_mcu_value:
+0x356 001140 fetch 2 ,mem_kb_col_ptr 
+0x357 001141 copy pdata ,regb 
+0x358 001142 jam 0 ,mem_keyscan_col_loop_count 
+:      001143 p_keyboard_keyscan_mcu_start:
+0x359 001144 jam 0 ,mem_keyscan_value_temp 
+0x35a 001145 ifetcht 1 ,regb 
+0x35b 001146 isolate1 7 ,temp 
+0x35c 001147 branch p_keyboard_keyscan_mcu_start_loop ,true 
+0x35d 001148 call gpio_out_active 
+0x35e 001149 call p_keyboard_keyscan_get_col_value 
+0x35f 001150 ifetcht 1 ,regb 
+0x360 001151 call gpio_out_inactive 
+0x361 001152 ifetcht 1 ,regb 
+0x362 001153 call keyboard_gpio_config_input_pu 
+:      001154 p_keyboard_keyscan_mcu_start_loop:
+0x363 001155 increase 1 ,regb 
+0x364 001156 fetch 2 ,mem_keyscan_value_ptr 
+0x365 001157 call keyboard_keyscan_value_store 
+0x366 001158 sub pdata ,19 ,null 
+0x367 001159 branch p_keyboard_keyscan_mcu_start ,positive 
+0x368 001160 rtn 
+:      001162 p_keyboard_key_process:
+0x369 001163 arg mem_keyscan_value_current ,rega 
+0x36a 001164 arg mem_keyscan_value_check ,regb 
+0x36b 001165 arg 20 ,loopcnt 
+0x36c 001166 call string_compare 
+0x36d 001167 nbranch keyboard_press_change_or_no_key ,zero 
+0x36e 001168 call p_keyboard_keyscan_value_current_zero_check 
+0x36f 001169 call keyboard_press_change_or_no_key ,blank 
+0x370 001171 call keyboard_ghost_key_check 
+0x371 001172 fetch 1 ,mem_mouse_ghost_flag 
+0x372 001173 nrtn blank 
+0x373 001174 fetch 1 ,mem_keyboard_commbination_key_step 
+0x374 001175 rtneq cammbination_key_press 
+0x375 001176 rtneq cammbination_key_hold 
+0x376 001177 rtneq cammbination_key_wait_release 
+0x377 001180 jam 0 ,mem_keyscan_col_loop_count 
+0x378 001181 arg mem_keyscan_value_current ,rega 
+0x379 001182 arg mem_keyscan_value_old ,regb 
+:      001183 p_keyboard_keyvalue_process:
+0x37a 001184 ifetcht 1 ,rega 
+0x37b 001185 ifetch 1 ,regb 
+0x37c 001186 ixor temp ,pdata 
+0x37d 001187 branch p_keyboard_keyvalue_process_loop ,blank 
+0x37e 001188 store 1 ,mem_keyscan_value_temp 
+0x37f 001189 storet 1 ,mem_keyboard_press_flag_temp 
+0x380 001190 istoret 1 ,regb 
+0x381 001191 jam 1 ,mem_keyboard_data_change_flag 
+0x382 001192 jam 0 ,mem_keyboard_keyvalue_bit_loop_count 
+:      001193 p_keyboard_keyvalue_change:
+0x383 001194 fetch 1 ,mem_keyscan_value_temp 
+0x384 001195 bbit0 0 ,p_keyboard_keyvalue_change_loop 
+0x385 001196 fetch 1 ,mem_keyscan_col_loop_count 
+0x386 001197 mul32 pdata ,8 ,pdata 
+0x387 001198 fetcht 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x388 001199 iadd temp ,pdata 
+0x389 001200 arg mem_keyboard_keyvalue_map_new ,contr 
+0x38a 001201 iadd contr ,contr 
+0x38b 001202 ifetch 1 ,contr 
+0x38c 001203 store 1 ,mem_keyboard_keyvalue_temp 
+0x38d 001204 call keyboard_keyvalue_fn_replace 
+0x38e 001205 call p_keyboard_keyvalue_commbination_replace 
+0x38f 001206 call p_keyboard_keyvalue_in_out 
+:      001207 p_keyboard_keyvalue_change_loop:
+0x390 001208 fetch 1 ,mem_keyscan_value_temp 
+0x391 001209 rshift pdata ,pdata 
+0x392 001210 store 1 ,mem_keyscan_value_temp 
+0x393 001211 fetch 1 ,mem_keyboard_press_flag_temp 
+0x394 001212 rshift pdata ,pdata 
+0x395 001213 store 1 ,mem_keyboard_press_flag_temp 
+0x396 001214 fetch 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x397 001215 increase 1 ,pdata 
+0x398 001216 store 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x399 001217 sub pdata ,7 ,null 
+0x39a 001218 branch p_keyboard_keyvalue_change ,positive 
+:      001219 p_keyboard_keyvalue_process_loop:
+0x39b 001220 increase 1 ,rega 
+0x39c 001221 increase 1 ,regb 
+0x39d 001222 fetch 1 ,mem_keyscan_col_loop_count 
+0x39e 001223 increase 1 ,pdata 
+0x39f 001224 store 1 ,mem_keyscan_col_loop_count 
+0x3a0 001225 sub pdata ,19 ,null 
+0x3a1 001226 branch p_keyboard_keyvalue_process ,positive 
+0x3a2 001227 rtn 
+:      001229 p_keyboard_keyscan_value_current_zero_check:
+0x3a3 001230 fetch 8 ,mem_keyscan_value_current 
+0x3a4 001231 nrtn blank 
+0x3a5 001232 fetch 8 ,mem_keyscan_value_current + 8 
+0x3a6 001233 nrtn blank 
+0x3a7 001234 fetch 4 ,mem_keyscan_value_current + 16 
+0x3a8 001235 nrtn blank 
+0x3a9 001236 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x3aa 001237 nrtn blank 
+0x3ab 001238 fetch 1 ,mem_keyboard_commbination_key_step 
+0x3ac 001239 rtneq cammbination_key_null 
+0x3ad 001240 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+0x3ae 001241 rtn 
+:      001243 p_keyboard_keyvalue_commbination_replace:
+0x3af 001244 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x3b0 001245 beq hid_key_search ,p_keyboard_commbination_search 
+0x3b1 001246 branch keyboard_keyvalue_commbination_replace + 2 
+:      001248 p_keyboard_commbination_search:
+0x3b2 001249 fetch 1 ,mem_kb_computer_system 
+0x3b3 001250 beq system_os_mac ,p_keyboard_commbination_mac_search 
+0x3b4 001251 setarg hid_key_ac_search 
+0x3b5 001252 branch keyboard_keyvalue_store_temp 
+:      001253 p_keyboard_commbination_mac_search:
+0x3b6 001254 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x3b7 001255 jam hid_key_space ,mem_keyboard_commbination_standard_key_value 
+0x3b8 001256 branch keyboard_commbination_keypress 
+:      001258 p_keyboard_keyvalue_in_out:
+0x3b9 001259 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x3ba 001260 arg hid_key_left_ctrl ,temp 
+0x3bb 001261 isub temp ,null 
+0x3bc 001262 nbranch p_keyboard_keyvalue_standard ,positive 
+0x3bd 001263 sub pdata ,hid_key_right_gui ,null 
+0x3be 001264 nbranch p_keyboard_keyvalue_consumer ,positive 
+0x3bf 001265 and_into 0x07 ,pdata 
+0x3c0 001266 copy pdata ,queue 
+0x3c1 001267 fetch 1 ,mem_keyboard_press_flag_temp 
+0x3c2 001268 bbit1 0 ,p_keyboard_keyvalue_control_key_in 
+:      001269 p_keyboard_keyvalue_control_key_out:
+0x3c3 001270 fetch 1 ,mem_keyboard_keyvalue_buffer 
+0x3c4 001271 qset0 pdata 
+0x3c5 001272 store 1 ,mem_keyboard_keyvalue_buffer 
+0x3c6 001273 rtn 
+:      001274 p_keyboard_keyvalue_control_key_in:
+0x3c7 001275 fetch 1 ,mem_keyboard_keyvalue_buffer 
+0x3c8 001276 qset1 pdata 
+0x3c9 001277 store 1 ,mem_keyboard_keyvalue_buffer 
+0x3ca 001278 rtn 
+:      001280 p_keyboard_keyvalue_standard:
+0x3cb 001281 jam 0 ,mem_keyboard_keyvalue_buffer + 8 
+0x3cc 001282 fetch 1 ,mem_keyboard_press_flag_temp 
+0x3cd 001283 bbit1 0 ,p_keyboard_keyvalue_standard_in 
+:      001284 p_keyboard_keyvalue_standard_out:
+0x3ce 001285 fetcht 1 ,mem_keyboard_keyvalue_temp 
+0x3cf 001286 arg 6 ,loopcnt 
+0x3d0 001287 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+:      001288 p_keyboard_keyvalue_standard_out_loop:
+0x3d1 001289 ifetch 1 ,contr 
+0x3d2 001290 isub temp ,null 
+0x3d3 001291 nbranch p_keyboard_keyvalue_standard_out_next ,zero 
+0x3d4 001292 ifetch 1 ,contr 
+0x3d5 001293 increase -2 ,contr 
+0x3d6 001294 istore 1 ,contr 
+0x3d7 001295 rtn blank 
+0x3d8 001296 increase 1 ,contr 
+0x3d9 001297 istoret 1 ,contr 
+:      001298 p_keyboard_keyvalue_standard_out_next:
+0x3da 001299 loop p_keyboard_keyvalue_standard_out_loop 
+0x3db 001300 rtn 
+:      001302 p_keyboard_keyvalue_standard_in:
+0x3dc 001303 fetcht 1 ,mem_keyboard_keyvalue_temp 
+0x3dd 001304 arg 6 ,loopcnt 
+0x3de 001305 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+:      001306 p_keyboard_keyvalue_standard_in_loop:
+0x3df 001307 ifetch 1 ,contr 
+0x3e0 001308 branch p_keyboard_keyvalue_standard_in_data ,blank 
+0x3e1 001309 isub temp ,null 
+0x3e2 001310 rtn zero 
+0x3e3 001311 loop p_keyboard_keyvalue_standard_in_loop 
+0x3e4 001312 rtn 
+:      001313 p_keyboard_keyvalue_standard_in_data:
+0x3e5 001314 increase -1 ,contr 
+0x3e6 001315 istoret 1 ,contr 
+0x3e7 001316 rtn 
+:      001318 p_keyboard_keyvalue_consumer:
+0x3e8 001319 jam keyboard_consumer_key_press ,mem_keyboard_consumer_key_status 
+0x3e9 001320 fetch 1 ,mem_keyboard_press_flag_temp 
+0x3ea 001321 isolate0 0 ,pdata 
+0x3eb 001322 call p_keyboard_consumer_key_release ,true 
+0x3ec 001323 branch p_keyboard_keyvalue_standard 
+:      001325 p_keyboard_consumer_key_release:
+0x3ed 001326 jam keyboard_consumer_key_release ,mem_keyboard_consumer_key_status 
+0x3ee 001327 rtn 
+:      001329 p_keyboard_keyvalue_fn_replace:
+0x3ef 001330 fetch 1 ,mem_keyboard_press_flag_temp 
+0x3f0 001331 isolate1 0 ,pdata 
+0x3f1 001332 call keyboard_commbination_delay_release_clear ,true 
+0x3f2 001333 fetch 1 ,mem_keyboard_fn_flag 
+0x3f3 001334 ncall p_keyboard_keyvalue_fn_replace_press ,blank 
+0x3f4 001335 branch keyboard_keyvalue_fn_replace + 5 
+:      001337 p_keyboard_keyvalue_fn_replace_press:
+0x3f5 001338 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x3f6 001339 beq hid_key_q ,p_keyboard_keyvalue_os_andriod 
+0x3f7 001340 beq hid_key_w ,p_keyboard_keyvalue_os_windows 
+0x3f8 001341 beq hid_key_e ,p_keyboard_keyvalue_os_ios 
+0x3f9 001342 branch keyboard_keyvalue_fn_replace_press + 1 
+:      001345 p_keyboard_keyvalue_os_andriod:
+0x3fa 001346 fetch 1 ,mem_keyboard_press_flag_temp 
+0x3fb 001347 bbit0 0 ,p_keyboard_keyvalue_clear_temp_end 
+0x3fc 001348 jam system_os_andriod ,mem_kb_computer_system 
+:      001349 p_keyboard_keyvalue_clear_temp:
+0x3fd 001350 jam 6 ,mem_keyboard_mode_led_on_timer 
+:      001351 p_keyboard_keyvalue_clear_temp_end:
+0x3fe 001352 setarg 0 
+0x3ff 001353 branch keyboard_keyvalue_store_temp 
+:      001355 p_keyboard_keyvalue_os_windows:
+0x400 001356 fetch 1 ,mem_keyboard_press_flag_temp 
+0x401 001357 bbit0 0 ,p_keyboard_keyvalue_clear_temp_end 
+0x402 001358 jam system_os_windows ,mem_kb_computer_system 
+0x403 001359 branch p_keyboard_keyvalue_clear_temp 
+:      001361 p_keyboard_keyvalue_os_ios:
+0x404 001362 fetch 1 ,mem_keyboard_press_flag_temp 
+0x405 001363 bbit0 0 ,p_keyboard_keyvalue_clear_temp_end 
+0x406 001364 jam system_os_ios ,mem_kb_computer_system 
+0x407 001365 branch p_keyboard_keyvalue_clear_temp 
+:      001367 p_keyboard_special_key_check:
+0x408 001369 branch keyboard_special_key_check + 1 
+:      001373 p_keyboard_motion:
+0x409 001374 disable user 
+0x40a 001375 jam 0 ,mem_customer_key 
+0x40b 001376 jam 0 ,mem_customer_data_trigger 
+0x40c 001377 jam 0 ,mem_customer_data_trigger_last 
+0x40d 001378 fetch 1 ,mem_keyboard_commbination_key_step 
+0x40e 001379 beq cammbination_key_press ,keyboard_commbination_key_press_process 
+0x40f 001380 beq cammbination_key_hold ,keyboard_commbination_key_hold_process 
+0x410 001381 beq cammbination_key_complete ,keyboard_commbination_key_hold_process 
+0x411 001382 beq cammbination_key_wait_release ,keyboard_commbination_key_wait_release_process 
+0x412 001383 beq cammbination_key_null ,keyboard_commbination_key_null_process 
+0x413 001384 fetch 1 ,mem_keyboard_data_change_flag 
+0x414 001385 branch p_keyboard_no_key_press ,blank 
+0x415 001386 branch keyboard_motion + 13 
+:      001388 p_keyboard_no_key_press:
+0x416 001389 fetch 1 ,mem_device_flag 
+0x417 001390 rtnne mode_24g_device 
+0x418 001391 branch keyboard_no_key_press + 2 
+:      001393 p_keyboard_device_data_tpye_check:
+0x419 001394 fetch 1 ,mem_device_flag 
+0x41a 001395 bne mode_24g_device ,p_keyboard_device_data_tpye_check_next 
+0x41b 001396 jam 0 ,mem_24g_repeat_send_flag 
+0x41c 001397 fetch 2 ,mem_keyboard_tx_data 
+0x41d 001398 ncall keyboard_set_repeat_send_flag ,blank 
+0x41e 001399 fetch 6 ,mem_keyboard_tx_data + 3 
+0x41f 001400 ncall keyboard_set_repeat_send_flag ,blank 
+:      001402 p_keyboard_device_data_tpye_check_next:
+0x420 001403 fetch 1 ,mem_keyboard_tx_data 
+0x421 001404 beq hid_reportid_key_standard ,p_keyboard_standard_data_send 
+0x422 001405 branch keyboard_device_data_tpye_check_next + 1 
+:      001407 p_keyboard_standard_data_send:
+0x423 001408 jam device_data_tpye_standard_keyboard ,mem_keyboard_data_send_flag 
+0x424 001409 call keyboard_clear_key_data 
+0x425 001410 fetch 1 ,mem_device_flag 
+0x426 001411 bne mode_24g_device ,keyboard_standard_data_send_end 
+0x427 001412 branch keyboard_standard_data_send + 4 
+:      001415 p_keyboard_cb_fuction:
+0x428 001416 setarg p_keyboard_24g_before_lpm_sleep 
+0x429 001417 store 2 ,mem_cb_before_lpm_sleep 
+0x42a 001418 setarg keyboard_24g_package_data 
+0x42b 001419 store 2 ,mem_cb_24g_transmit_data 
+0x42c 001420 setarg keyboard_24g_search_dongle 
+0x42d 001421 store 2 ,mem_cb_24g_search_receiver 
+0x42e 001422 setarg p_keyboard_lpm_before_common 
+0x42f 001423 store 2 ,mem_cb_24g_lpm_before 
+0x430 001424 setarg p_keyboard_le 
+0x431 001425 store 2 ,mem_cb_le_process 
+0x432 001426 setarg p_keyboard_process_lpm_before 
+0x433 001427 store 2 ,mem_cb_before_lpm 
+0x434 001429 setarg keyboard_priority_bb_event 
+0x435 001430 store 2 ,mem_cb_bb_event_process 
+0x436 001431 setarg keyboard_idle 
+0x437 001432 store 2 ,mem_cb_idle_process 
+0x438 001433 setarg keyboard_before_hibernate 
+0x439 001434 store 2 ,mem_cb_before_hibernate 
+0x43a 001435 setarg mouse_le_bb_event_connect_complete 
+0x43b 001436 store 2 ,mem_cb_att_write 
+0x43c 001437 setarg keyboard_bb_event_timer 
+0x43d 001438 store 2 ,mem_cb_event_timer 
+0x43e 001439 setarg mouse_spi_write_flash_cb 
+0x43f 001440 store 2 ,mem_cb_spi_flash_write_complate 
+0x440 001443 setarg mouse_le_transmit 
+0x441 001444 store 2 ,mem_cb_ble_transmit 
+0x442 001445 setarg mouse_set_lpm_mult 
+0x443 001446 store 2 ,mem_cb_bt_set_mult 
+0x444 001447 rtn 
+:      001449 p_keyboard_24g_before_lpm_sleep:
+0x445 001450 fetch 1 ,mem_device_flag 
+0x446 001451 rtnne mode_24g_device 
+0x447 001452 branch mouse_24g_before_lpm_sleep + 2 
+:      001454 p_keyboard_lpm_before_common:
+0x448 001455 call p_clear_wake 
+0x449 001456 fetcht 1 ,mem_config_select_device_button_gpio 
+0x44a 001457 call gpio_set_wake 
+0x44b 001459 fetcht 1 ,mem_usb_level_check_gpio 
+0x44c 001460 set1 7 ,temp 
+0x44d 001461 call gpio_set_wake 
+0x44e 001463 fetch 2 ,mem_kb_col_ptr 
+0x44f 001464 copy pdata ,regb 
+0x450 001465 arg 20 ,loopcnt 
+:      001466 p_keyboard_key_col_wake_init:
+0x451 001467 ifetcht 1 ,regb 
+0x452 001468 isolate1 7 ,temp 
+0x453 001469 ncall gpio_out_active ,true 
+0x454 001470 increase 1 ,regb 
+0x455 001471 loop p_keyboard_key_col_wake_init 
+0x456 001473 call p_keyboard_gpio_pu_idle 
+0x457 001474 jam 0 ,mem_qdec_set_flag 
+0x458 001475 fetch 2 ,mem_kb_row_ptr 
+0x459 001476 copy pdata ,regb 
+0x45a 001477 arg 8 ,loopcnt 
+:      001478 p_keyboard_key_row_wake_init:
+0x45b 001479 ifetcht 1 ,regb 
+0x45c 001480 sub temp ,ui_button_gpio_disable ,null 
+0x45d 001481 ncall keyboard_key_row_wake_set ,zero 
+0x45e 001482 increase 1 ,regb 
+0x45f 001483 loop p_keyboard_key_row_wake_init 
+0x460 001484 call p_keyboard_puchk_set_check 
+0x461 001485 fetcht 1 ,mem_mouse_reuse_2ice_gpio 
+0x462 001486 call mouse_gpio_config_input_pu 
+0x463 001487 call mouse_gpio_set_high_impedance 
+0x464 001488 branch mouse_adc_gpio_set_before_hibernate 
+:      001490 p_gpio_set_wake_by_current_state:
+0x465 001491 sub temp ,gpio_disable ,null 
+0x466 001492 rtn zero 
+0x467 001493 set1 gpio_active_bit ,temp 
+0x468 001494 call gpio_get_bit 
+0x469 001495 nbranch p_gpio_set_low_pullup ,true 
+0x46a 001496 nsetflag true ,gpio_active_bit ,temp 
+0x46b 001497 branch gpio_set_wake 
+:      001500 p_gpio_set_low_pullup:
+0x46c 001501 jam 1 ,mem_qdec_set_flag 
+0x46d 001502 call gpio_set_high_impedance 
+0x46e 001503 arg 6 ,debug 
+0x46f 001504 branch gpio_set_wake_high 
+:      001507 p_clear_wake:
+0x470 001508 setarg 0 
+0x471 001509 set1 21 ,pdata 
+0x472 001510 store 8 ,mem_gpio_wakeup_cfg 
+0x473 001511 setarg 0 
+0x474 001512 istore 4 ,contw 
+0x475 001513 rtn 
+:      001515 p_keyboard_process_lpm_before:
+0x476 001516 rtnmark1 mark_24g 
+0x477 001517 branch p_keyboard_lpm_before_common 
+:      001520 p_keyboard_before_hibernate:
+0x478 001521 jam 0xff ,mem_sensor_motion_gpio 
+0x479 001522 call disable_authrom 
+0x47a 001523 call keyboard_device_led_all_off 
+0x47b 001524 branch p_keyboard_setgpio_hibernate 
+:      001526 p_keyboard_device_led_all_off:
+0x47c 001527 call keyboard_power_led_off 
+0x47d 001528 call p_keyboard_device_led_off 
+0x47e 001529 call p_keyboard_numlock_led_off 
+0x47f 001530 branch keyboard_capslock_led_off 
+:      001533 p_keyboard_app_enter_hibernate:
+0x480 001534 call p_keyboard_setgpio_hibernate 
+0x481 001535 branch app_enter_hibernate 
+:      001538 p_keyboard_setgpio_hibernate:
+0x482 001539 call p_clear_wake 
+0x483 001540 call keyboard_device_led_all_off 
+0x484 001541 branch p_keyboard_lpm_before_common 
+:      001543 p_keyboard_gpio_pu_idle:
+0x485 001544 arg core_gpio_conf ,contr 
+0x486 001545 arg gpio_number ,loopcnt 
+:      001546 p_keyboard_gpio_pu_idle_loop:
+0x487 001547 ifetch 1 ,contr 
+0x488 001548 nbranch p_keyboard_gpio_pu_idle_configured ,blank 
+0x489 001549 setarg gpcfg_pullup 
+0x48a 001550 add contr ,-1 ,contw 
+0x48b 001551 istore 1 ,contw 
+:      001552 p_keyboard_gpio_pu_idle_configured:
+0x48c 001553 loop p_keyboard_gpio_pu_idle_loop 
+0x48d 001554 arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+0x48e 001555 isub contr ,null 
+0x48f 001556 rtn zero 
+0x490 001557 arg gpio_number_ext ,loopcnt 
+0x491 001558 arg core_gpio_conf_hi ,contr 
+0x492 001559 branch p_keyboard_gpio_pu_idle_loop 
+:      001561 p_keyboard_puchk_set_check:
+0x493 001562 fetch 1 ,mem_qdec_set_flag 
+0x494 001563 branch p_keyboard_puchk_disable ,blank 
+0x495 001564 branch p_keyboard_puchk_enable 
+:      001567 p_keyboard_puchk_disable:
+0x496 001568 setarg 0x10 
+:      001569 p_keyboard_puchk_set:
+0x497 001570 store 1 ,core_puwakeup 
+0x498 001571 until null ,lpo_edge 
+0x499 001572 rtn 
+:      001574 p_keyboard_puchk_enable:
+0x49a 001575 setarg 0x80 
+0x49b 001576 branch p_keyboard_puchk_set 
+:      001579 p_lpm_dispatch:
+0x49c 001580 call lpo_calibration 
+0x49d 001581 fetch 3 ,mem_clks_per_lpo 
+0x49e 001582 rtn blank 
+0x49f 001583 fetch 1 ,mem_keyboard_fn_flag 
+0x4a0 001584 nrtn blank 
+0x4a1 001585 fetch 1 ,mem_keyboard_control_key_flag 
+0x4a2 001586 nrtn blank 
+0x4a3 001587 fetch 1 ,mem_mouse_direct_timer 
+0x4a4 001588 nrtn blank 
+0x4a5 001589 fetch 2 ,mem_mouse_discovery_timer 
+0x4a6 001590 nrtn blank 
+0x4a7 001591 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x4a8 001592 nrtn blank 
+0x4a9 001593 branch lpm_dispatch + 4 
+:      001596 p_lpm_sleep:
+0x4aa 001598 fetch 2 ,mem_cb_before_lpm_sleep 
+0x4ab 001599 call callback_func 
+:      001600 p_lpm_sleep_skip_cb_function:
+0x4ac 001601 fetch 4 ,mem_sleep_counter_all 
+0x4ad 001602 iadd temp ,pdata 
+0x4ae 001603 store 4 ,mem_sleep_counter_all 
+0x4af 001604 call p_lpm_save_context 
+0x4b0 001606 branch lpm_sleep_skip_cb_function + 4 
+:      001608 p_lpm_save_context:
+0x4b1 001609 storer mark ,8 ,mem_saved_mark 
+0x4b2 001610 arg core_gpio_conf ,contr 
+0x4b3 001611 arg mem_saved_gpio ,contw 
+0x4b4 001612 call memcpy16 
+0x4b5 001613 arg core_gpio_conf_hi ,contr 
+0x4b6 001614 call memcpy8 
+0x4b7 001615 fetch 1 ,core_spid_ctrl 
+0x4b8 001616 store 1 ,mem_saved_spidctrl 
+0x4b9 001617 copy temp ,regb 
+:      001618 p_lpm_write_gpio_wakeup:
+0x4ba 001619 arg 12 ,loopcnt 
+0x4bb 001620 arg mem_gpio_wakeup_cfg ,rega 
+0x4bc 001621 arg core_gpio_wakeup_cfg ,regc 
+0x4bd 001622 until null ,lpo_edge 
+:      001623 p_lpm_write_gpio_loop:
+0x4be 001624 ifetch 1 ,rega 
+0x4bf 001625 ifetcht 1 ,regc 
+0x4c0 001626 isub temp ,null 
+0x4c1 001627 branch p_lpm_write_gpio_loop_next ,zero 
+0x4c2 001628 istore 1 ,regc 
+0x4c3 001629 until null ,lpo_edge 
+:      001630 p_lpm_write_gpio_loop_next:
+0x4c4 001631 increase 1 ,rega 
+0x4c5 001632 increase 1 ,regc 
+0x4c6 001633 loop p_lpm_write_gpio_loop 
+0x4c7 001634 copy regb ,temp 
+0x4c8 001635 rtn 
+:      001637 p_app_init:
+:      001638 p_keyboard_init:
+0x4c9 001639 call enable_authrom 
+0x4ca 001640 call p_le_exchange_hid_map 
+0x4cb 001641 call p_keyboard_setting_config 
+0x4cc 001642 call p_keyboard_gpio_init 
+0x4cd 001643 call p_keyboard_low_vol_mult_set 
+0x4ce 001644 rtn wake 
+0x4cf 001645 call p_keyboard_device_led_all_off 
+0x4d0 001646 fetch 1 ,mem_keyboard_device_poweron_timer_count_init 
+0x4d1 001647 store 1 ,mem_keyboard_device_poweron_timer_count 
+0x4d2 001648 call keyboard_cb_fuction 
+0x4d3 001649 branch keyboard_init_wireless 
+:      001651 p_keyboard_setting_config:
+0x4d4 001652 call app_param_init 
+0x4d5 001653 call p_keyboard_puchk_disable 
+0x4d6 001654 rtn wake 
+0x4d7 001655 call g24_transmit_init 
+0x4d8 001656 fetch 1 ,mem_device_flag 
+0x4d9 001657 store 1 ,mem_device_flag_temp_new 
+0x4da 001658 fetch 3 ,mem_le_lap + 3 
+0x4db 001659 store 3 ,mem_mouse_le_lap_temp 
+0x4dc 001660 call keyboard_param_init 
+0x4dd 001661 setarg mem_le_tx_buffer0_omemalloc_new 
+0x4de 001662 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+0x4df 001663 setarg mouse_ble_l2cap_txbuff_size_new 
+0x4e0 001664 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0x4e1 001665 call le_set_fixed_ltk_justwork 
+0x4e2 001667 fetch mouse_flag_len ,mem_mouse_flag 
+0x4e3 001668 bbit1 mouse_enable_otp ,keyboard_load_otp_info_check 
+0x4e4 001669 bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
+0x4e5 001670 rtn 
+:      001672 p_keyboard_select_reconn_device:
+0x4e6 001673 arg mem_device1_type ,rega 
+0x4e7 001674 fetch 1 ,mem_device_flag 
+0x4e8 001675 rtneq mode_24g_device 
+0x4e9 001676 increase -1 ,pdata 
+0x4ea 001677 mul32 pdata ,13 ,pdata 
+0x4eb 001678 iadd rega ,rega 
+0x4ec 001679 ifetch 1 ,rega 
+0x4ed 001680 store 1 ,mem_xrecord_mode 
+0x4ee 001681 beq rec_4_mode ,p_keyboard_load_le_device 
+0x4ef 001682 rtn 
+:      001684 p_keyboard_load_le_device:
+0x4f0 001685 ifetch 6 ,contr 
+0x4f1 001686 store 6 ,mem_hci_plap 
+0x4f2 001687 branch mouse_load_le_device_end + 3 
+:      001689 p_keyboard_gpio_init:
+0x4f3 001690 call p_clear_wake 
+0x4f4 001691 fetcht 1 ,mem_config_select_device_button_gpio 
+0x4f5 001692 storet 1 ,mem_sensor_motion_gpio 
+0x4f6 001693 call keyboard_gpio_config_input_pu 
+0x4f7 001695 setarg mem_key_row_gpio 
+0x4f8 001696 store 2 ,mem_kb_row_ptr 
+0x4f9 001698 setarg mem_key_col_gpio 
+0x4fa 001699 store 2 ,mem_kb_col_ptr 
+0x4fb 001701 setarg mem_key_excol_gpio 
+0x4fc 001702 store 2 ,mem_kb_excol_ptr 
+0x4fd 001704 call p_keyboard_key_row_init 
+0x4fe 001706 fetch 2 ,mem_kb_col_ptr 
+0x4ff 001707 copy pdata ,regb 
+0x500 001708 arg 20 ,loopcnt 
+0x501 001709 branch keyboard_key_cow_init 
+:      001711 p_keyboard_key_row_init:
+0x502 001712 fetch 2 ,mem_kb_row_ptr 
+0x503 001713 copy pdata ,regb 
+0x504 001714 arg 8 ,loopcnt 
+:      001715 p_keyboard_key_row_init_loop:
+0x505 001716 ifetcht 1 ,regb 
+0x506 001717 sub temp ,ui_button_gpio_disable ,null 
+0x507 001718 ncall keboard_gpio_set_high_impedance ,zero 
+0x508 001719 increase 1 ,regb 
+0x509 001720 loop p_keyboard_key_row_init_loop 
+0x50a 001721 branch p_lpm_write_gpio_wakeup 
+:      001723 p_keyboard_low_vol_mult_set:
+0x50b 001724 fetch 1 ,mem_device_flag 
+0x50c 001725 bne mode_24g_device ,p_keyboard_low_vol_mult_ble_set 
+0x50d 001726 call g24_interval_param_8ms 
+0x50e 001727 branch keyboard_low_vol_mult_set + 2 
+:      001729 p_keyboard_low_vol_mult_ble_set:
+0x50f 001730 setarg 160 
+0x510 001731 call p_keyboard_mult_auto_get 
+0x511 001732 fetch 1 ,mem_adc_power_flag 
+0x512 001733 rtnbit0 0 
+0x513 001734 setarg 80 
+0x514 001735 branch p_keyboard_mult_auto_get 
+:      001737 p_keyboard_mult_auto_get:
+0x515 001738 fetcht 2 ,mem_le_interval_min 
+0x516 001739 idiv temp 
+0x517 001740 call get_div_result 
+0x518 001741 store 1 ,mem_lpm_mult_init 
+0x519 001742 branch keyboard_low_vol_mult_ble_set + 4 
+0x51a 001743 fetch 1 ,mem_mouse_current_mult_timer 
+0x51b 001744 branch mouse_current_mult_reinit ,blank 
+0x51c 001745 rtn 
+:      001747 p_ui_ipc_send_event:
+0x51d 001748 fetch 1 ,mem_fifo_temp 
+0x51e 001749 arg 8 ,loopcnt 
+0x51f 001750 arg mem_ipc_fifo_bt2c51 ,contr 
+:      001751 p_ui_ipc_fifo_check:
+0x520 001752 ifetcht 1 ,contr 
+0x521 001753 isub temp ,null 
+0x522 001754 rtn zero 
+0x523 001755 loop p_ui_ipc_fifo_check 
+0x524 001756 branch ui_ipc_send_event + 1 
+:      001758 p_check_51cmd_once_continue:
+0x525 001759 fetch 1 ,mem_fifo_temp 
+0x526 001760 beq bt_cmd_store_reconn_info_le ,p_eeprom_store_le_reconn_info 
+0x527 001761 branch check_51cmd_once_continue + 4 
+:      001763 p_eeprom_store_le_reconn_info:
+0x528 001764 jam rec_4_mode ,mem_record_bt_mode 
+:      001765 p_eeprom_store_reconn_info:
+0x529 001766 fetch 1 ,mem_device_option 
+0x52a 001767 beq dvc_op_keyboard ,keyboard_store_remote_bdaddr 
+0x52b 001768 branch eeprom_store_reconn_info + 1 
+:      001771 p_keyboard_start_discovery:
+0x52c 001772 call p_keyboard_device_led_all_off + 1 
+0x52d 001773 setarg 0 
+0x52e 001774 store 2 ,mem_otp_store_device_info_flag 
+0x52f 001775 branch keyboard_start_discovery + 5 
+:      001777 p_keyboard_stop_discovery:
+0x530 001778 setarg 0 
+0x531 001779 store 2 ,mem_mouse_discovery_timer 
+0x532 001780 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0x533 001781 call mouse_disable_function_flag 
+0x534 001782 jam 0 ,mem_mouse_bluetooth_reconnect_timeout 
+0x535 001783 call mouse_stop_le_adv 
+0x536 001784 fetch 1 ,mem_keyboard_device_poweron_timer_count 
+0x537 001785 branch p_keyboard_device_led_all_off + 1 ,blank 
+0x538 001786 rtn 
+:      001788 p_keyboard_le:
+0x539 001789 call le_fifo_check_nearly_full 
+0x53a 001790 nrtn blank 
+0x53b 001791 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0x53c 001792 beq 0xff ,p_keyboard_le_next 
+0x53d 001793 fetch 1 ,mem_le_connect_status_flag 
+0x53e 001794 and pdata ,0x03 ,pdata 
+0x53f 001795 rtnne 0x03 
+:      001796 p_keyboard_le_next:
+0x540 001797 fetch mouse_flag_len ,mem_mouse_flag 
+0x541 001798 bbit1 mouse_24g_pairing_flag ,p_keyboard_le_send_empty_packet 
+0x542 001799 bbit1 mouse_select_device_flag ,p_keyboard_le_send_empty_packet 
+0x543 001800 bbit1 mouse_bt_discovery_button_down_flag ,p_keyboard_le_send_empty_packet 
+0x544 001801 bbit1 mouse_bt_discovery_button_long_down_flag ,p_keyboard_le_send_empty_packet 
+0x545 001802 call keyboard_motion 
+0x546 001803 nrtn user 
+0x547 001805 fetch 1 ,mem_customer_key 
+0x548 001806 beq 1 ,mouse_le_send_keyboard_package_data 
+0x549 001807 rtn 
+:      001809 p_keyboard_le_send_empty_packet:
+0x54a 001810 jam 0 ,mem_customer_data_trigger 
+0x54b 001811 branch mouse_le_send_keyboard_package_data 
+:      001814 p_le_check_retransmit_timesout:
+0x54c 001815 fetch 1 ,mem_le_conn_rcv_new 
+0x54d 001816 arg 256 ,regc 
+0x54e 001817 iadd regc ,pdata 
+0x54f 001818 rtn 
+:      001819 p_le_got_first_packet:
+0x550 001820 branch p_le_got_first_packet_new 
+:      001821 p_le_slave_match:
+0x551 001822 call p_le_check_retransmit 
+0x552 001823 branch le_slave_match + 1 
+:      001825 p_le_check_retransmit:
+0x553 001826 fetch 1 ,mem_le_conn_first_rcv 
+0x554 001827 rtn blank 
+0x555 001828 fetch 1 ,mem_le_check_retransmit_flag 
+0x556 001829 nrtn blank 
+0x557 001830 fetcht 1 ,mem_le_conn_first_rcv 
+0x558 001831 fetch 1 ,mem_le_conn_rcv_new 
+0x559 001832 isub temp ,null 
+0x55a 001833 ncall p_le_check_retransmit_timesout ,positive 
+0x55b 001834 isub temp ,pdata 
+0x55c 001835 sub pdata ,100 ,null 
+0x55d 001836 branch p_le_check_retransmit_count ,positive 
+0x55e 001837 fetch 1 ,mem_le_retransmit_cnt 
+0x55f 001838 sub pdata ,20 ,null 
+0x560 001839 ncall p_app_ble_disconnect ,positive 
+0x561 001840 jam 1 ,mem_le_check_retransmit_flag 
+0x562 001841 rtn 
+:      001842 p_app_ble_disconnect:
+0x563 001843 jam 1 ,mem_le_check_retransmit_discon_flag 
+0x564 001844 branch app_ble_disconnect 
+:      001845 p_le_check_retransmit_count:
+0x565 001846 fetcht 1 ,mem_le_arq 
+0x566 001847 fetch 1 ,mem_le_rxbuf_data_header 
+0x567 001848 rshift pdata ,pdata 
+0x568 001849 ixor temp ,pdata 
+0x569 001850 isolate1 nesn ,pdata 
+0x56a 001851 setarg 0 
+0x56b 001852 fetcht 1 ,mem_le_retransmit_cnt 
+0x56c 001853 setflag true ,0 ,pdata 
+0x56d 001854 iadd temp ,temp 
+0x56e 001855 storet 1 ,mem_le_retransmit_cnt 
+0x56f 001856 rtn 
+:      001858 p_le_got_first_packet_new:
+0x570 001859 fetch 1 ,mem_le_conn_rcv 
+0x571 001860 increase 1 ,pdata 
+0x572 001861 store 1 ,mem_le_conn_rcv 
+0x573 001862 nbranch p_le_got_first_packet_new + 7 ,match 
+0x574 001863 fetch 1 ,mem_le_conn_rcv_new 
+0x575 001864 increase 1 ,pdata 
+0x576 001865 store 1 ,mem_le_conn_rcv_new 
+0x577 001866 fetch 1 ,mem_le_state 
+0x578 001867 rtnbit1 lestate_got_first_packet 
+0x579 001868 set1 lestate_got_first_packet ,pdata 
+0x57a 001869 store 1 ,mem_le_state 
+0x57b 001870 fetch 2 ,mem_le_init_superto 
+0x57c 001871 store 2 ,mem_le_superto 
+0x57d 001872 setarg 0 
+0x57e 001873 store 4 ,mem_le_transmit_window 
+0x57f 001876 rtn 
+:      001878 p_le_rx_dec:
+0x580 001879 call le_check_retransmit 
+0x581 001881 fetchr rega ,1 ,mem_le_rxbuf_data_length 
+0x582 001882 increase -4 ,rega 
+0x583 001883 nbranch le_crc_fail_consecutive ,positive 
+0x584 001884 branch le_rx_dec + 6 
+:      001886 p_le_rx_nopayload:
+0x585 001887 parse demod ,bucket ,24 
+0x586 001888 rshift32 pdata ,pdata 
+0x587 001889 rshift16 pdata ,pdata 
+0x588 001890 istore 3 ,contw 
+0x589 001891 enable swfine 
+0x58a 001892 call le_set_until_tx_timer 
+0x58b 001893 branch le_crc_fail ,crc_failed 
+0x58c 001894 bmark0 mark_ble_encryption ,le_rx_match 
+0x58d 001895 fetch 1 ,mem_le_rxbuf_data_length 
+0x58e 001896 branch le_rx_match ,blank 
+0x58f 001897 increase -4 ,pdata 
+0x590 001898 store 1 ,mem_le_rxbuf_data_length 
+0x591 001899 call wait_ccm_done 
+0x592 001900 fetch 1 ,core_misc_status 
+0x593 001901 bbit0 7 ,le_crc_fail_consecutive 
+0x594 001902 force regidx_result ,regext_index 
+0x595 001903 storer regext ,4 ,mem_le_peer_mic 
+0x596 001904 branch le_rx_match 
+:      001907 p_le_adv_not_match:
+0x597 001908 call shutdown_radio 
+0x598 001909 jam 0 ,0x8900 
+0x599 001910 set0 mark_ble_crc_fail ,mark 
+0x59a 001911 branch le_adv_not_match + 1 
+:      001913 p_le_init_adv:
+0x59b 001914 set0 mark_ble_crc_fail ,mark 
+0x59c 001915 branch le_init_adv + 1 
+:      001919 p_keyboard_start_reconnect_device:
+0x59d 001920 arg mem_device1_type ,rega 
+0x59e 001921 fetch 1 ,mem_device_flag 
+0x59f 001922 increase -1 ,pdata 
+0x5a0 001923 mul32 pdata ,13 ,pdata 
+0x5a1 001924 branch mouse_start_reconnect_device + 6 
+:      001926 p_keyboard_store_remote_bdaddr:
+0x5a2 001927 fetch mouse_flag_len ,mem_mouse_flag 
+0x5a3 001928 rtnbit0 mouse_store_eeprom_flag 
+0x5a4 001929 arg mouse_store_eeprom_flag ,queue 
+0x5a5 001930 call mouse_disable_function_flag 
+0x5a6 001931 call p_keyboard_check_device_addr 
+0x5a7 001932 call p_keyboard_unplug_clean_bdaddr 
+0x5a8 001933 branch mouse_store_device_info_delay 
+:      001934 p_keyboard_unplug_clean_bdaddr:
+0x5a9 001935 arg mem_device1_type ,rega 
+0x5aa 001936 fetch 1 ,mem_device_flag 
+0x5ab 001937 increase -1 ,pdata 
+0x5ac 001938 mul32 pdata ,13 ,pdata 
+0x5ad 001939 iadd rega ,rega 
+0x5ae 001940 fetch 1 ,mem_record_bt_mode 
+0x5af 001941 istore 1 ,rega 
+0x5b0 001942 beq rec_4_mode ,p_keyboard_store_le_device 
+0x5b1 001943 rtn 
+:      001945 p_keyboard_store_le_device:
+0x5b2 001946 fetch 6 ,mem_le_plap 
+0x5b3 001947 istore 6 ,contw 
+0x5b4 001948 branch mouse_store_le_device + 4 
+:      001950 p_keyboard_check_device_addr:
+0x5b5 001951 fetch 1 ,mem_record_bt_mode 
+0x5b6 001952 beq rec_4_mode ,p_keyboard_check_le_device_addr 
+0x5b7 001953 rtn 
+:      001954 p_keyboard_check_le_device_addr:
+0x5b8 001955 store 1 ,mem_device_addr_temp 
+0x5b9 001956 fetch 6 ,mem_le_plap 
+:      001957 p_keyboard_check_bt_device_addr_common:
+0x5ba 001958 store 6 ,mem_device_addr_temp + 1 
+0x5bb 001959 fetch 7 ,mem_device_addr_temp 
+0x5bc 001960 arg mem_device1_type ,contr 
+0x5bd 001961 arg 3 ,loopcnt 
+:      001962 p_keyboard_check_device_addr_end:
+0x5be 001963 ifetcht 7 ,contr 
+0x5bf 001964 isub temp ,null 
+0x5c0 001965 branch mouse_clean_addr ,zero 
+0x5c1 001966 increase 6 ,contr 
+0x5c2 001967 loop p_keyboard_check_device_addr_end 
+0x5c3 001968 rtn 
+:      001971 p_le_parse_att:
+0x5c4 001972 copy rega ,contr 
+0x5c5 001973 ifetch 3 ,contr 
+0x5c6 001974 store 3 ,mem_le_att_opcode 
+0x5c7 001975 beq attop_read_response ,p_keyboard_le_parse_att_manu_resp 
+0x5c8 001976 beq attop_read_by_type_request ,p_le_parse_att_read_by_type_request 
+0x5c9 001977 beq attop_read_by_type_response ,p_keyboard_le_send_att_read_by_type_rsp_mac 
+0x5ca 001978 beq attop_find_by_type_value_response ,p_keyboard_le_parse_att_find_by_type_value_rsp 
+0x5cb 001979 beq attop_error_response ,p_keyboard_le_send_att_find_by_type_value_request_mac 
+0x5cc 001980 beq attop_read_blob_request ,p_le_parse_att_read_blob_request 
+0x5cd 001981 beq attop_read_request ,p_le_parse_att_read_request 
+0x5ce 001982 beq attop_write_request ,p_le_parse_att_write_request 
+0x5cf 001983 beq attop_write_command ,p_le_parse_att_write_command 
+0x5d0 001984 branch le_parse_att2 
+:      001986 p_keyboard_le_parse_att_manu_resp:
+0x5d1 001987 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x5d2 001988 rtn blank 
+:      001989 p_keyboard_le_parse_att_manu_resp_next:
+0x5d3 001990 fetch 2 ,mem_le_l2cap_size 
+0x5d4 001991 arg 9 ,loopcnt 
+0x5d5 001992 fetch 2 ,mem_le_payload_ptr 
+0x5d6 001993 add pdata ,5 ,rega 
+0x5d7 001994 arg mem_le_search_mac_manu_name ,regb 
+0x5d8 001995 call string_compare 
+0x5d9 001996 branch p_keyboard_le_parse_att_find_mac_report ,zero 
+0x5da 001997 branch p_keyboard_le_parse_att_not_find_mac_report 
+:      001998 p_keyboard_le_parse_att_not_find_mac_report:
+0x5db 001999 fetch 1 ,mem_le_conn_peer_addr_type 
+0x5dc 002000 store 1 ,mem_kb_computer_system 
+0x5dd 002001 branch p_keyboard_store_computer_system_ble 
+:      002003 p_keyboard_le_parse_att_find_mac_report:
+0x5de 002004 jam system_os_mac ,mem_kb_computer_system 
+:      002005 p_keyboard_store_computer_system_ble:
+0x5df 002006 jam 0 ,mem_le_connect_ios_mac_flag 
+0x5e0 002007 jam 1 ,mem_otp_store_system_flag 
+0x5e1 002008 fetch 1 ,mem_otp_store_device_info_flag 
+0x5e2 002009 rtn blank 
+0x5e3 002010 branch p_keyboard_wirte_otp_ble 
+:      002012 p_keyboard_le_send_att_read_by_type_rsp_mac:
+0x5e4 002013 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x5e5 002014 rtn blank 
+:      002015 p_keyboard_le_send_att_read_by_type_rsp_mac_next:
+0x5e6 002016 fetch 2 ,mem_le_l2cap_size 
+0x5e7 002017 increase -2 ,pdata 
+0x5e8 002018 div pdata ,7 
+0x5e9 002019 call wait_div_end 
+0x5ea 002020 quotient loopcnt 
+0x5eb 002021 fetch 2 ,mem_le_payload_ptr 
+0x5ec 002022 add pdata ,6 ,contr 
+:      002023 p_keyboard_le_check_att_read_type_manu_loop:
+0x5ed 002024 increase 3 ,contr 
+0x5ee 002025 ifetch 2 ,contr 
+0x5ef 002026 copy pdata ,regc 
+0x5f0 002027 ifetch 2 ,contr 
+0x5f1 002028 arg 0x2a29 ,temp 
+0x5f2 002029 isub temp ,null 
+0x5f3 002030 branch keyboard_le_send_att_read_by_type_rsp_manufactory ,zero 
+0x5f4 002031 loop p_keyboard_le_check_att_read_type_manu_loop 
+0x5f5 002032 branch p_keyboard_le_parse_att_not_find_mac_report 
+:      002034 p_keyboard_le_parse_att_find_by_type_value_rsp:
+0x5f6 002035 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x5f7 002036 rtn blank 
+:      002037 p_keyboard_le_parse_att_find_by_type_value_rsp_next:
+0x5f8 002038 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x5f9 002039 beq 2 ,keyboard_le_parse_att_find_by_type_value_rsp_mac 
+:      002040 p_keyboard_le_parse_att_find_ios_report:
+0x5fa 002041 jam system_os_ios ,mem_kb_computer_system 
+0x5fb 002042 branch p_keyboard_store_computer_system_ble 
+:      002044 p_keyboard_le_send_att_find_by_type_value_request_mac:
+0x5fc 002045 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x5fd 002046 rtn blank 
+:      002047 p_keyboard_le_send_att_find_by_type_value_request_mac_next:
+0x5fe 002048 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x5ff 002049 beq 2 ,p_keyboard_le_parse_att_not_find_mac_report 
+0x600 002050 branch keyboard_le_send_att_find_by_type_value_request_mac + 2 
+:      002052 p_le_parse_att_read_by_type_request:
+0x601 002053 call le_get_search_handle_start_end_common 
+0x602 002054 call le_get_search_att_type 
+:      002055 p_le_send_att_read_by_type_response:
+0x603 002056 fetcht 2 ,mem_le_search_handle_start 
+0x604 002057 storet 2 ,mem_temp 
+0x605 002058 call le_init_attlist_search 
+0x606 002059 call le_att_get_handle_ptr2 
+0x607 002060 increase -2 ,contr 
+0x608 002061 copy contr ,pdata 
+0x609 002062 store 2 ,mem_le_cur_attlist_start_ptr 
+0x60a 002064 fetcht 2 ,mem_le_search_att_type 
+0x60b 002065 setarg uuid_chrctr_pnp_id 
+0x60c 002066 isub temp ,null 
+0x60d 002067 branch p_le_send_att_read_by_type_res_pnp_id ,zero 
+0x60e 002068 branch le_send_att_read_by_type_response + 8 
+:      002070 p_le_send_att_read_by_type_res_pnp_id:
+0x60f 002071 fetch 1 ,mem_keyboard_change_vid_pid_flag 
+0x610 002072 branch le_send_att_read_by_type_response + 8 ,blank 
+0x611 002073 call le_att_get_uuid_ptr 
+0x612 002074 branch le_send_att_error_response_notfound ,blank 
+0x613 002075 arg mem_keyboard_change_vid_pid_flag + 1 ,contr 
+0x614 002076 force 11 ,pdata 
+0x615 002077 branch le_send_att_read_by_type_res_not_characteristic + 9 
+:      002080 p_le_parse_att_read_blob_request:
+0x616 002081 ifetch 2 ,contr 
+0x617 002082 store 2 ,mem_le_att_offset 
+0x618 002083 iforce rega 
+0x619 002084 fetcht 2 ,mem_le_att_handle 
+0x61a 002085 fetch 2 ,mem_le_pairing_handle 
+0x61b 002086 isub temp ,null 
+0x61c 002087 nbranch le_send_att_read_blob_response ,zero 
+0x61d 002088 fetch 2 ,mem_keyboard_le_map_len 
+0x61e 002089 arg mem_keyboard_le_hid_map ,contr 
+0x61f 002090 branch le_send_att_read_blob_response + 3 
+:      002092 p_le_parse_att_read_request:
+0x620 002093 fetcht 2 ,mem_le_att_handle 
+0x621 002094 fetch 1 ,mem_le_configuration 
+0x622 002095 bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
+:      002097 p_le_send_att_read_response:
+0x623 002098 fetch mouse_flag_len ,mem_mouse_flag 
+0x624 002099 bbit0 mouse_enable_adc ,p_le_send_att_read_response + 3 
+0x625 002100 bbit0 mouse_enable_le_battery_service_cancel ,p_le_send_att_read_response_next 
+0x626 002101 fetch 2 ,mem_le_att_handle 
+0x627 002102 beq 0x30 ,le_send_att_error_response_notfound 
+:      002103 p_le_send_att_read_response_next:
+0x628 002104 fetch 2 ,mem_le_att_handle 
+0x629 002105 beq 0x05 ,p_le_send_att_appearance 
+0x62a 002106 beq 0x10 ,p_le_send_att_pnp_id 
+:      002107 p_le_send_att_read_response_next_1:
+0x62b 002108 fetcht 2 ,mem_le_att_handle 
+0x62c 002109 fetch 2 ,mem_le_pairing_handle 
+0x62d 002110 isub temp ,null 
+0x62e 002111 nbranch le_send_att_read_response ,zero 
+0x62f 002112 call le_get_search_max_mtu_data 
+0x630 002113 fetcht 2 ,mem_keyboard_le_map_len 
+0x631 002114 arg mem_keyboard_le_hid_map ,contr 
+0x632 002115 branch le_send_att_read_response + 14 
+:      002117 p_le_send_att_appearance:
+0x633 002118 arg mem_keybord_appearance ,contr 
+0x634 002119 force 3 ,pdata 
+0x635 002120 branch le_send_att_read_response_less 
+:      002122 p_le_send_att_pnp_id:
+0x636 002123 fetch 1 ,mem_keyboard_change_vid_pid_flag 
+0x637 002124 branch p_le_send_att_read_response_next_1 ,blank 
+0x638 002125 arg mem_keyboard_change_vid_pid_flag + 1 ,contr 
+0x639 002126 force 8 ,pdata 
+0x63a 002127 branch le_send_att_read_response_less 
+:      002129 p_le_send_att_read_response_check_auth:
+0x63b 002130 fetch 2 ,mem_le_pairing_handle 
+0x63c 002131 isub temp ,null 
+0x63d 002132 nbranch p_le_send_att_read_response ,zero 
+0x63e 002133 call le_check_encrypt_state 
+0x63f 002134 nbranch p_le_send_att_read_response_next ,user 
+0x640 002135 branch le_send_att_read_response_error_insufficient_auth 
+:      002138 p_le_parse_att_write_request:
+0x641 002139 copy contr ,rega 
+0x642 002140 fetch 2 ,mem_le_l2cap_size 
+0x643 002141 add pdata ,-3 ,regb 
+0x644 002142 call le_writeatt_cb 
+0x645 002143 call p_le_parse_att_write_command + 1 
+0x646 002144 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0x647 002145 beq 0xff ,le_send_att_write_response_check_auth 
+0x648 002146 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x649 002147 branch le_send_att_write_response_check_auth ,blank 
+0x64a 002148 fetch 1 ,mem_le_connect_status_flag 
+0x64b 002149 bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
+0x64c 002150 setarg 0x001a 
+0x64d 002151 fetcht 2 ,mem_le_att_handle 
+0x64e 002152 isub temp ,null 
+0x64f 002153 nbranch le_send_att_write_response_check_auth ,zero 
+0x650 002154 jam att_err_insufficient_authentication ,mem_le_err_code 
+0x651 002155 branch le_send_att_error_response 
+:      002158 p_le_parse_att_write_command:
+0x652 002159 call le_parse_att_write_command 
+0x653 002160 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0x654 002161 beq 0xff ,p_keyboard_le_fast_conn_led_get 
+0x655 002162 fetch 2 ,mem_le_att_handle 
+0x656 002163 beq 0x25 ,p_keyboard_le_led_get 
+0x657 002164 rtn 
+:      002165 p_keyboard_le_fast_conn_led_get:
+0x658 002166 fetch 2 ,mem_le_att_handle 
+0x659 002167 beq 0x21 ,p_keyboard_le_led_get 
+0x65a 002168 rtn 
+:      002170 p_keyboard_le_led_get:
+0x65b 002171 fetch 1 ,mem_le_rxbuf + 9 
+0x65c 002172 store 1 ,mem_keyboard_led_status 
+0x65d 002173 rtn 
+:      002175 p_le_exchange_hid_map:
+0x65e 002176 arg 0x919f ,contr 
+0x65f 002177 arg mem_keyboard_le_hid_map ,contw 
+0x660 002178 arg 66 ,loopcnt 
+0x661 002179 call memcpy 
+0x662 002180 arg 0x91e1 ,contr 
+0x663 002181 arg mem_keyboard_le_hid_map + 66 ,contw 
+0x664 002182 arg 54 ,loopcnt 
+0x665 002183 branch memcpy 
+:      002190 p_adc_init_data:
+0x666 002191 fetch 8 ,mem_otp_adc 
+0x667 002192 branch adc_init_cal_data_default ,blank 
+0x668 002193 store 8 ,mem_reference_inter1p8v_2v_adc_io_data 
+0x669 002194 call enable_otp_read 
+0x66a 002195 call loadcode_check_otp_lock 
+0x66b 002196 arg otp_offset_adc_param_l_c0 ,pdata 
+0x66c 002197 iadd regb ,regb 
+0x66d 002198 arg 10 ,loopcnt 
+0x66e 002199 arg mem_otp_temp ,rega 
+0x66f 002200 call otp_read_data 
+0x670 002201 call disable_otp 
+0x671 002202 fetch 8 ,mem_otp_temp 
+0x672 002203 rtn blank 
+0x673 002204 store 8 ,mem_adc_reference3v_gpio1v_ft_data 
+0x674 002205 ifetch 2 ,contr 
+0x675 002206 istore 2 ,contw 
+0x676 002208 rtn 
+:      002210 p_sadc_cal_write:
+0x677 002211 fetch 1 ,core_sadc_ctrl 
+0x678 002212 set1 1 ,pdata 
+0x679 002213 store 1 ,core_sadc_ctrl 
+0x67a 002214 fetchr regb ,1 ,mem_spi_write_addr 
+0x67b 002215 fetch 1 ,mem_adc_cal_c7 
+0x67c 002216 store 1 ,mem_spi_write_addr 
+0x67d 002217 arg 8 ,loopcnt 
+0x67e 002218 call sadc_cal_write + 4 
+0x67f 002219 storer regb ,1 ,mem_spi_write_addr 
+0x680 002220 fetch 1 ,core_gpadc_cfg2 
+0x681 002221 set0 4 ,pdata 
+0x682 002222 store 1 ,core_gpadc_cfg2 
+0x683 002223 rtn 
+:      002227 p_vdd_calculate_by_mode:
+:      002229 p_vdd_reference_inter3v_calculate:
+0x684 002230 fetch 1 ,mem_adc_config_flag 
+0x685 002231 beq adc_config_hvin ,p_vdd_reference_inter3v_calculate_by_mode_vdcdc 
+0x686 002232 beq adc_config_gpio ,p_vdd_reference_inter3v_calculate_by_mode_gpio 
+0x687 002233 rtn 
+:      002235 p_vdd_reference_inter3v_calculate_by_mode_vdcdc:
+0x688 002236 setarg 1000 
+0x689 002237 store 2 ,mem_reference_voltage 
+0x68a 002238 fetcht 2 ,mem_adc_reference3v_vdcdc3p6v_ft_data 
+0x68b 002239 fetch 2 ,mem_adc_reference3v_vdcdc4p6v_ft_data 
+0x68c 002240 arg 3600 ,regc 
+0x68d 002241 call vdd_calculate 
+0x68e 002242 branch p_mul1v_div1v_to_cal 
+:      002244 p_vdd_reference_inter3v_calculate_by_mode_gpio:
+0x68f 002245 setarg 1000 
+0x690 002246 store 2 ,mem_reference_voltage 
+0x691 002247 fetcht 2 ,mem_adc_reference3v_gpio1v_ft_data 
+0x692 002248 fetch 2 ,mem_adc_reference3v_gpio2v_ft_data 
+0x693 002249 arg 1000 ,regc 
+0x694 002250 call vdd_calculate 
+:      002251 p_mul1v_div1v_to_cal:
+0x695 002252 fetcht 2 ,mem_adc_reference3v_inter1v_ft_data 
+0x696 002253 imul32 temp ,pdata 
+0x697 002254 fetcht 2 ,mem_adc_reference3v_inter1v_now_data 
+0x698 002255 idiv temp 
+0x699 002256 branch get_div_result 
+:      002258 p_enable_adc_init_config:
+0x69a 002259 call p_sadc_cal_write 
+0x69b 002260 fetch 1 ,core_gpadc_cfg1 
+0x69c 002261 set0 7 ,pdata 
+0x69d 002262 store 1 ,core_gpadc_cfg1 
+0x69e 002263 jam 0x77 ,core_gpadc_ctrl 
+0x69f 002264 jam 0xc1 ,core_gpadc_cfg0 
+0x6a0 002265 jam 0x61 ,core_vtest_ctrl0 
+0x6a1 002266 jam 0x00 ,core_gpadc_cfg3 
+0x6a2 002267 rtn 
+:      002269 p_enable_adc:
+:      002271 p_enable_adc_reference_source_inter3v:
+0x6a3 002272 call p_enable_adc_init_config 
+0x6a4 002273 call sadc_channel 
+0x6a5 002274 fetch 1 ,mem_adc_clkdiv 
+0x6a6 002275 store 1 ,core_sadc_clkdiv 
+0x6a7 002276 call sadc_read 
+0x6a8 002277 jam 0x60 ,core_vtest_ctrl0 
+0x6a9 002278 jam 0x00 ,core_sadc_clkdiv 
+:      002281 p_read_adc_inter1v:
+0x6aa 002282 call p_enable_adc_init_config 
+0x6ab 002283 fetch 1 ,mem_adc_clkdiv 
+0x6ac 002284 store 1 ,core_sadc_clkdiv 
+0x6ad 002285 jam 0x50 ,core_gpadc_cfg3 
+0x6ae 002286 jam 0xc0 ,core_vtest_ctrl1 
+0x6af 002288 arg 0xb ,regext_index 
+0x6b0 002289 fetchr regext ,2 ,mem_adc_current_value 
+0x6b1 002291 jam 0x03 ,core_sadc_ctrl 
+0x6b2 002292 call p_sar_adc_read_wait 
+0x6b3 002293 fetcht 2 ,core_sadc_data 
+0x6b4 002294 storet 2 ,mem_adc_reference3v_inter1v_now_data 
+0x6b5 002295 call sadc_read_wait + 4 
+0x6b6 002297 arg 0xb ,regext_index 
+0x6b7 002298 storer regext ,2 ,mem_adc_current_value 
+0x6b8 002300 jam 0x60 ,core_vtest_ctrl0 
+0x6b9 002301 jam 0x00 ,core_sadc_clkdiv 
+0x6ba 002302 jam 0x00 ,core_sadc_ctrl 
+0x6bb 002303 rtn 
+:      002307 p_sar_adc_read_wait:
+0x6bc 002308 fetch 1 ,core_perf_status 
+0x6bd 002309 bbit0 saradc_done ,p_sar_adc_read_wait 
+0x6be 002310 rtn 
+              org 0x2000
+:      002322 start:
+0x2000 002323 call lpmstate 
+:      002325 soft_reset:
+0x2001 002326 bpatch patch00_0 ,mem_patch00 
+0x2002 002327 clear_stack 
+0x2003 002329 call app_param_init 
+0x2004 002330 call initialize_radio 
+0x2005 002331 call iic_init_360khz 
+0x2006 002332 call init_param 
+0x2007 002333 call l2cap_init 
+0x2008 002334 bpatch patch00_1 ,mem_patch00 
+0x2009 002335 call ui_init 
+0x200a 002336 call app_init 
+0x200b 002337 call publickey_init 
+0x200c 002339 call lpm_recover_clk ,wake 
+:      002340 main_loop:
+0x200d 002341 bpatch patch00_2 ,mem_patch00 
+0x200e 002342 call sp_calc_sequence_256 
+0x200f 002343 call sp_calc_sequence_256_check 
+0x2010 002344 call le_advertising_dispatch 
+0x2011 002345 call idle_dispatch 
+0x2012 002346 call app_process_idle 
+0x2013 002347 call connection_dispatch 
+0x2014 002348 call g24_dispatch 
+0x2015 002349 call lpm_dispatch 
+0x2016 002350 call kscan_dispatch 
+0x2017 002351 branch main_loop 
+:      002353 connection_dispatch:
+0x2018 002354 call connection_incontext 
+0x2019 002355 rtnmark0 mark_context 
+0x201a 002356 set0 mark_context ,mark 
+0x201b 002357 call context_save 
+0x201c 002358 branch le_disable 
+:      002360 connection_incontext:
+0x201d 002361 bpatch patch00_3 ,mem_patch00 
+0x201e 002362 call context_search_insniff 
+0x201f 002363 nbranch connection_nosniff ,zero 
+0x2020 002364 call context_load 
+0x2021 002365 add rega ,coffset_mode ,contr 
+0x2022 002366 ifetch 1 ,contr 
+0x2023 002367 bbit1 mode_le ,le_conn_dispatch 
+0x2024 002370 rtn 
+:      002372 connection_nosniff:
+0x2025 002373 jam 0 ,mem_current_context 
+0x2026 002374 call context_get_next 
+0x2027 002375 copy loopcnt ,null 
+0x2028 002376 rtn zero 
+0x2029 002377 branch assert 
+:      002384 idle_dispatch:
+0x202a 002385 fetch 1 ,mem_hci_cmd 
+0x202b 002386 rtn blank 
+0x202c 002387 beq hci_cmd_le_create_conn ,idle_le_create_conn 
+0x202d 002388 call context_search_conn_handle 
+0x202e 002389 rtn zero 
+0x202f 002390 call context_search_plap 
+0x2030 002391 rtn zero 
+:      002392 idle_exit:
+0x2031 002393 jam 0 ,mem_hci_cmd 
+0x2032 002394 rtn 
+:      002396 idle_le_create_conn:
+0x2033 002397 jam hci_cmd_le_create_conn ,mem_cmd_le_create_conn 
+0x2034 002398 jam 0 ,mem_hci_cmd 
+0x2035 002399 rtn 
+:      002403 context_load:
+0x2036 002404 bpatch patch00_4 ,mem_patch00 
+0x2037 002405 set1 mark_context ,mark 
+0x2038 002406 deposit rega 
+0x2039 002407 store 2 ,mem_context_ptr 
+0x203a 002408 force context_size ,loopcnt 
+0x203b 002409 arg mem_le_state ,contw 
+0x203c 002410 add rega ,coffset_mode ,contr 
+0x203d 002411 ifetch 1 ,contr 
+0x203e 002412 copy rega ,contr 
+0x203f 002413 bbit1 mode_le ,memcpy 
+0x2040 002414 rtn 
+:      002416 context_save:
+0x2041 002417 bpatch patch00_5 ,mem_patch00 
+0x2042 002418 fetch 2 ,mem_context_ptr 
+0x2043 002419 iforce contw 
+0x2044 002420 force context_size ,loopcnt 
+0x2045 002421 arg mem_le_state ,contr 
+0x2046 002422 branch memcpy 
+:      002426 context_get_next:
+0x2047 002427 arg context_num ,loopcnt 
+0x2048 002428 fetcht 1 ,mem_current_context 
+:      002429 context_get_next_loop:
+0x2049 002430 increase 1 ,temp 
+0x204a 002431 compare context_num ,temp ,0xff 
+0x204b 002432 nbranch context_get_next_cont ,true 
+0x204c 002433 arg 0 ,temp 
+:      002434 context_get_next_cont:
+0x204d 002435 storet 1 ,mem_current_context 
+0x204e 002436 mul32 temp ,context_size ,pdata 
+0x204f 002437 arg mem_context ,rega 
+0x2050 002438 iadd rega ,rega 
+0x2051 002439 ifetch 1 ,rega 
+0x2052 002440 bbit1 state_insniff ,context_get_next_sniff 
+0x2053 002441 rtnbit1 state_inconn 
+:      002442 context_get_next_sniff:
+0x2054 002443 loop context_get_next_loop 
+0x2055 002444 rtn 
+:      002446 context_new:
+0x2056 002447 bpatch patch00_6 ,mem_patch00 
+0x2057 002448 arg context_search_empty ,regc 
+0x2058 002449 call context_search 
+0x2059 002450 nrtn zero 
+0x205a 002451 deposit rega 
+0x205b 002452 store 2 ,mem_context_ptr 
+0x205c 002453 branch enable_zero 
+:      002458 context_check_idle:
+0x205d 002459 arg context_check_inconn ,regc 
+0x205e 002460 branch context_search 
+:      002465 context_search_conn_handle:
+0x205f 002466 fetcht 1 ,mem_hci_conn_handle 
+:      002467 context_search_conn_handle2:
+0x2060 002468 arg context_search_handle ,regc 
+0x2061 002469 branch context_search 
+:      002472 context_search_plap:
+0x2062 002473 bpatch patch00_7 ,mem_patch00 
+0x2063 002474 fetcht 6 ,mem_hci_plap 
+:      002475 context_search_plap2:
+0x2064 002476 arg context_search_lap ,regc 
+0x2065 002477 branch context_search 
+:      002479 context_search_insniff:
+0x2066 002480 arg context_search_sniff ,regc 
+0x2067 002481 branch context_search 
+:      002483 context_search_sniff_window:
+0x2068 002484 arg context_search_window ,regc 
+:      002485 context_search:
+0x2069 002486 bpatch patch01_0 ,mem_patch01 
+0x206a 002487 arg mem_context ,rega 
+0x206b 002488 arg context_num ,loopcnt 
+:      002489 context_search_loop:
+0x206c 002490 ifetch 1 ,rega 
+0x206d 002491 copy regc ,pc 
+:      002492 context_search_next:
+0x206e 002493 bpatch patch01_1 ,mem_patch01 
+0x206f 002494 increase context_size ,rega 
+0x2070 002495 loop context_search_loop 
+0x2071 002496 force 1 ,null 
+0x2072 002497 rtn 
+:      002499 context_search_empty:
+0x2073 002500 bbit1 state_inconn ,context_search_next 
+0x2074 002501 branch enable_zero 
+:      002503 context_search_lap:
+0x2075 002504 bbit0 state_inconn ,context_search_next 
+:      002505 context_search_lap_cont:
+0x2076 002506 add rega ,coffset_plap ,contr 
+0x2077 002507 ifetch 6 ,contr 
+0x2078 002508 isub temp ,null 
+0x2079 002509 rtn zero 
+0x207a 002510 branch context_search_next 
+:      002512 context_search_handle:
+0x207b 002513 bbit0 state_inconn ,context_search_next 
+0x207c 002514 add rega ,coffset_conn_handle ,contr 
+0x207d 002515 ifetch 1 ,contr 
+0x207e 002516 isub temp ,null 
+0x207f 002517 rtn zero 
+0x2080 002518 branch context_search_next 
+:      002520 context_search_sniff:
+0x2081 002521 bbit0 state_insniff ,context_search_next 
+:      002522 context_search_sniff_loop:
+0x2082 002523 call context_get_anchor 
+0x2083 002524 call sign_pdata_temp 
+0x2084 002525 isub temp ,pdata 
+0x2085 002526 increase 1 ,pdata 
+0x2086 002527 branch context_search_sniff_miss ,positive 
+0x2087 002528 copy contr ,regb 
+0x2088 002529 store 9 ,mem_temp 
+0x2089 002530 bpatch patch01_2 ,mem_patch01 
+0x208a 002531 fetch 1 ,mem_sc_calc 
+0x208b 002532 nbranch context_search_sniff_sc ,blank 
+0x208c 002533 fetch 9 ,mem_temp 
+0x208d 002534 copy regb ,contr 
+0x208e 002535 increase 5 ,pdata 
+0x208f 002536 branch context_search_meet1 
+:      002538 context_search_sniff_sc:
+0x2090 002539 fetch 9 ,mem_temp 
+0x2091 002540 copy regb ,contr 
+0x2092 002541 increase 20 ,pdata 
+:      002542 context_search_meet1:
+0x2093 002543 nbranch context_search_next ,positive 
+:      002544 context_search_meet:
+0x2094 002545 copy temp ,bt_clk 
+0x2095 002546 call context_next_anchor 
+0x2096 002547 branch enable_zero 
+:      002550 context_search_sniff_miss:
+0x2097 002551 iforce regb 
+0x2098 002552 add rega ,coffset_tsniff ,contr 
+0x2099 002553 ifetch 2 ,contr 
+0x209a 002554 branch context_search_meet ,blank 
+0x209b 002555 call context_next_anchor 
+0x209c 002556 branch context_search_sniff_loop 
+:      002558 sign_pdata_temp:
+0x209d 002559 rshift16 pdata ,timeup 
+0x209e 002560 rshift8 timeup ,timeup 
+0x209f 002561 branch sign_pdata_temp_p0 ,zero 
+0x20a0 002562 compare 0xf ,timeup ,0xf 
+0x20a1 002563 nrtn true 
+0x20a2 002564 rshift16 temp ,timeup 
+0x20a3 002565 rshift8 timeup ,timeup 
+0x20a4 002566 nrtn zero 
+0x20a5 002567 set1 28 ,temp 
+0x20a6 002568 rtn 
+:      002569 sign_pdata_temp_p0:
+0x20a7 002570 rshift16 temp ,timeup 
+0x20a8 002571 rshift8 timeup ,timeup 
+0x20a9 002572 compare 0xf ,timeup ,0xf 
+0x20aa 002573 nrtn true 
+0x20ab 002574 set1 28 ,pdata 
+0x20ac 002575 rtn 
+:      002577 context_check_inconn:
+0x20ad 002578 bbit0 state_inconn ,context_search_next 
+0x20ae 002579 branch enable_zero 
+:      002582 context_check_a_wack:
+0x20af 002583 bbit0 state_inconn ,context_search_next 
+0x20b0 002584 add rega ,coffset_mode ,contr 
+0x20b1 002585 ifetch 1 ,contr 
+0x20b2 002586 bbit1 mode_le ,context_search_next 
+0x20b3 002587 rtn 
+:      002589 context_get_anchor:
+0x20b4 002590 add rega ,coffset_mode ,contr 
+0x20b5 002591 ifetcht 1 ,contr 
+0x20b6 002592 deposit clkn_bt 
+0x20b7 002593 isolate1 mode_master ,temp 
+0x20b8 002594 add rega ,coffset_sniff_anchor ,contr 
+0x20b9 002595 ifetcht 4 ,contr 
+0x20ba 002596 rtn true 
+0x20bb 002597 add rega ,coffset_clk_offset ,contr 
+0x20bc 002598 ifetch 6 ,contr 
+0x20bd 002599 call calc_clke2 
+0x20be 002600 deposit clke_bt 
+0x20bf 002601 rtn 
+:      002603 context_next_anchor:
+0x20c0 002604 add rega ,coffset_tsniff ,contr 
+0x20c1 002605 add rega ,coffset_sniff_anchor ,contw 
+0x20c2 002606 ifetch 2 ,contr 
+0x20c3 002607 iadd temp ,timeup 
+0x20c4 002608 deposit timeup 
+0x20c5 002609 istore 4 ,contw 
+0x20c6 002610 branch le_context_nextevent 
+:      002613 context_search_window:
+0x20c7 002614 bbit0 state_insniff ,context_search_next 
+0x20c8 002615 call context_get_anchor 
+0x20c9 002616 iadd stop_watch ,pdata 
+0x20ca 002617 iadd stop_watch ,pdata 
+0x20cb 002618 iadd queue ,pdata 
+0x20cc 002619 isub temp ,null 
+0x20cd 002620 nbranch context_search_next ,positive 
+0x20ce 002621 branch enable_zero 
+:      002625 end_of_packet:
+0x20cf 002626 bpatch patch01_3 ,mem_patch01 
+0x20d0 002627 disable lr_s2en 
+0x20d1 002628 disable encode_fec0 
+0x20d2 002629 disable encode_fec2 
+0x20d3 002630 disable decode_fec0 
+0x20d4 002631 disable decode_fec2 
+0x20d5 002632 disable enable_crc 
+0x20d6 002633 disable encrypt 
+0x20d7 002634 disable enable_white 
+0x20d8 002635 branch shutdown_radio ,is_rx 
+0x20d9 002636 until null ,tx_clear 
+0x20da 002637 nop 100 
+0x20db 002638 branch shutdown_radio 
+:      002643 sniff_check_window:
+0x20dc 002644 bpatch patch01_4 ,mem_patch01 
+0x20dd 002645 disable swfine 
+0x20de 002646 copy temp ,stop_watch 
+0x20df 002647 call context_search_sniff_window 
+0x20e0 002648 disable user 
+0x20e1 002649 nrtn zero 
+0x20e2 002650 force 0 ,stop_watch 
+0x20e3 002651 branch enable_user 
+:      002654 calc_slot_offset:
+0x20e4 002655 bpatch patch01_5 ,mem_patch01 
+0x20e5 002656 until null ,halfslot 
+0x20e6 002657 deposit clke 
+0x20e7 002658 iforce contr 
+0x20e8 002659 rshift16 ,pdata ,pdata 
+0x20e9 002660 isub clkn_bt ,loopcnt 
+0x20ea 002661 and_into 3 ,loopcnt 
+0x20eb 002662 nbranch calc_bt_portion ,zero 
+0x20ec 002663 force 0 ,pdata 
+0x20ed 002664 branch calc_skip_bt 
+:      002665 calc_bt_portion:
+0x20ee 002666 fetcht 2 ,mem_param_rt_rthalfslot 
+0x20ef 002667 force 0 ,pdata 
+:      002668 calc_slot_offset_loop:
+0x20f0 002669 iadd temp ,pdata 
+0x20f1 002670 loop calc_slot_offset_loop 
+:      002671 calc_skip_bt:
+0x20f2 002672 iadd contr ,pdata 
+0x20f3 002673 div pdata ,12 
+0x20f4 002674 call get_div_result 
+0x20f5 002675 store 2 ,mem_slot_offset 
+0x20f6 002676 rtn 
+:      002678 calc_clke_offset:
+0x20f7 002679 bpatch patch01_6 ,mem_patch01 
+0x20f8 002680 deposit clke 
+0x20f9 002681 copy clkn ,temp 
+0x20fa 002682 isub temp ,null 
+0x20fb 002683 nsetflag positive ,44 ,pdata 
+0x20fc 002684 isub temp ,temp 
+0x20fd 002685 fetch 2 ,mem_param_rt_rthalfslot 
+0x20fe 002686 isolate0 15 ,temp 
+0x20ff 002687 branch calc_clke_pos ,true 
+0x2100 002688 copy temp ,alarm 
+0x2101 002689 arg 0x10000 ,temp 
+0x2102 002690 fetch 2 ,mem_param_rt_rthalfslot 
+0x2103 002691 isub temp ,pdata 
+0x2104 002692 iadd alarm ,temp 
+:      002694 calc_clke_pos:
+0x2105 002695 storet 6 ,mem_le_clk_offset 
+0x2106 002696 rtn 
+:      002698 calc_clke:
+0x2107 002699 disable clknt 
+0x2108 002700 fetch 6 ,mem_le_clk_offset 
+:      002701 calc_clke2:
+0x2109 002702 iadd clkn ,alarm 
+0x210a 002703 increase 10 ,alarm 
+0x210b 002704 fetch 2 ,mem_param_rt_rthalfslot 
+0x210c 002705 isub alarm ,pdata 
+0x210d 002706 isolate0 15 ,pdata 
+0x210e 002707 branch calc_clke_pos_adj ,true 
+0x210f 002708 setarg 0x10000 
+0x2110 002709 fetchr regd ,2 ,mem_param_rt_rthalfslot 
+0x2111 002710 isub regd ,pdata 
+0x2112 002711 iadd alarm ,alarm 
+:      002712 calc_clke_pos2:
+0x2113 002713 copy alarm ,clke 
+0x2114 002714 rtn 
+:      002715 calc_clke_pos_adj:
+0x2115 002716 force 0 ,null 
+0x2116 002717 branch calc_clke_pos2 
+:      002724 qsetxor:
+0x2117 002725 rshift3 pdata ,pdata 
+0x2118 002726 ifetchr rega ,1 ,contw 
+0x2119 002727 ixor rega ,pdata 
+0x211a 002728 isolate0 6 ,pdata 
+0x211b 002729 branch qset_p 
+:      002731 qset1_p:
+0x211c 002732 isolate0 0 ,null 
+:      002733 qset_start:
+0x211d 002734 arg 0x8ac2 ,contw 
+:      002735 qset_p:
+0x211e 002736 ifetch 1 ,contw 
+0x211f 002737 qsetflag true ,pdata 
+0x2120 002738 istore 1 ,contw 
+0x2121 002739 rtn 
+:      002741 rx_dcoc_avg:
+0x2122 002742 nop 60 
+:      002743 btdma:
+0x2123 002745 jam 8 ,0x8983 
+0x2124 002746 jam 9 ,0x8985 
+0x2125 002747 jam 0x9 ,0x8981 
+0x2126 002748 jam 0x3 ,0x8981 
+0x2127 002749 jam 0x6 ,0x8980 
+0x2128 002750 nop 60 
+0x2129 002751 arg 0 ,rega 
+0x212a 002752 arg 0 ,regb 
+0x212b 002753 arg 16 ,loopcnt 
+0x212c 002754 arg 0x800 ,contr 
+:      002755 rx_dcoc_loop:
+0x212d 002756 ifetch 2 ,contr 
+0x212e 002757 iadd rega ,rega 
+0x212f 002758 ifetch 2 ,contr 
+0x2130 002759 iadd regb ,regb 
+0x2131 002760 loop rx_dcoc_loop 
+0x2132 002761 rtn 
+:      002763 rx_dcoc:
+0x2133 002764 bpatch patch01_7 ,mem_patch01 
+0x2134 002765 call set_sync_on 
+0x2135 002766 arg 39 ,temp 
+0x2136 002767 call set_freq_rx 
+0x2137 002768 call rf_rx_enable 
+0x2138 002769 jam 0x7f ,0x8a25 
+0x2139 002770 jam 0x1a ,0x8a30 
+0x213a 002771 jam 0x78 ,0x8a31 
+0x213b 002772 jam 0xb2 ,0x8a8f 
+0x213c 002773 jam 0 ,0x8ac2 
+0x213d 002774 jam 0 ,0x8ac3 
+0x213e 002775 arg 6 ,queue 
+0x213f 002776 call rx_dcoc_avg 
+0x2140 002777 isolate1 13 ,rega 
+0x2141 002778 call qset_start 
+0x2142 002779 isolate1 13 ,regb 
+0x2143 002780 call qset_p 
+0x2144 002781 arg 5 ,queue 
+:      002782 rx_dcoc_loop2:
+0x2145 002783 call qset1_p 
+0x2146 002784 call qset_p 
+0x2147 002785 call rx_dcoc_avg 
+0x2148 002786 arg 0x8ac2 ,contw 
+0x2149 002787 rshift4 rega ,pdata 
+0x214a 002788 call qsetxor 
+0x214b 002789 rshift4 regb ,pdata 
+0x214c 002790 call qsetxor 
+0x214d 002791 increase -1 ,queue 
+0x214e 002792 branch rx_dcoc_loop2 ,positive 
+0x214f 002793 jam 0x52 ,0x8a8f 
+0x2150 002794 jam 2 ,0x8a30 
+0x2151 002795 jam 0 ,0x8981 
+:      002797 shutdown_radio:
+0x2152 002798 bpatch patch02_0 ,mem_patch02 
+0x2153 002799 call rf_debug_shutdown_radio_line 
+0x2154 002800 disable is_tx 
+0x2155 002801 disable is_rx 
+0x2156 002802 setarg 0x0200 
+0x2157 002803 store 4 ,0x8a23 
+0x2158 002804 jam 0xfa ,0x8a01 
+0x2159 002805 nop 12 
+0x215a 002806 jam 0 ,0x8a0f 
+0x215b 002807 jam 0x1a ,0x8a12 
+0x215c 002808 jam 0x2b ,0x8a14 
+0x215d 002809 force 8 ,radio_ctrl 
+0x215e 002810 force 0 ,radio_ctrl 
+0x215f 002812 branch gain_control 
+:      002814 set_sync_on:
+0x2160 002815 bpatch patch02_1 ,mem_patch02 
+0x2161 002816 jam 0x60 ,0x8a0f 
+0x2162 002817 jam 0xaa ,0x8a10 
+0x2163 002818 jam 0x7a ,0x8a12 
+0x2164 002819 jam 0x00 ,0x8a25 
+0x2165 002820 jam 0x00 ,0x8a26 
+0x2166 002821 nop 60 
+0x2167 002822 jam 0x20 ,0x8a20 
+0x2168 002823 jam 0xfd ,0x8a23 
+0x2169 002824 jam 0x12 ,0x8a24 
+0x216a 002825 jam 0x10 ,0x8a24 
+0x216b 002826 nop 60 
+0x216c 002827 jam 0x60 ,0x8a12 
+0x216d 002828 jam 0xdd ,0x8a23 
+0x216e 002829 rtn 
+:      002831 set_freq_rx:
+0x216f 002832 bpatch patch02_2 ,mem_patch02 
+0x2170 002833 jam 0x01 ,0x8900 
+0x2171 002834 jam 0x9d ,0x8a23 
+0x2172 002835 jam 0x02 ,0x8a24 
+0x2173 002836 nop 20 
+0x2174 002837 jam 0x65 ,0x8a70 
+0x2175 002838 jam 0x9f ,0x8a23 
+0x2176 002839 call set_lemode 
+0x2177 002840 storet 1 ,mem_last_freq 
+0x2178 002841 increase 1 ,temp 
+:      002845 aac_res_lookup:
+0x2179 002846 bpatch patch02_3 ,mem_patch02 
+0x217a 002847 rshift4 temp ,pdata 
+0x217b 002848 arg mem_aac_res_table ,contr 
+0x217c 002849 iadd contr ,contr 
+0x217d 002850 ifetch 1 ,contr 
+0x217e 002851 fetchr rega ,1 ,0x8a71 
+0x217f 002852 and_into 0xf ,rega 
+0x2180 002853 ior rega ,pdata 
+0x2181 002854 store 1 ,0x8a71 
+0x2182 002855 call calc_freq 
+0x2183 002856 nop 144 
+0x2184 002857 fetch 1 ,mem_fcomp_div 
+0x2185 002858 beq xtal_24m ,aac_res_lookup_end 
+0x2186 002859 nop 36 
+:      002860 aac_res_lookup_end:
+0x2187 002861 jam 0x80 ,0x8a20 
+0x2188 002862 rtn 
+:      002865 set_lemode_2m_16m:
+0x2189 002866 setarg 0x8312 
+0x218a 002867 store 2 ,0x8907 
+0x218b 002868 branch set_lemode_2m 
+:      002870 set_lemode_1m_16m:
+0x218c 002871 setarg 0x4189 
+0x218d 002872 store 2 ,0x8907 
+0x218e 002873 branch set_lemode_1m 
+:      002876 set_lemode:
+0x218f 002877 bpatch patch02_4 ,mem_patch02 
+0x2190 002878 jam 0x11 ,0x8a82 
+0x2191 002879 jam 0x12 ,0x8a8d 
+0x2192 002880 jam 0x0a ,0x8a8e 
+0x2193 002881 fetch 1 ,mem_fcomp_div 
+0x2194 002882 beq xtal_16m ,set_lemode_2m_16m 
+0x2195 002883 setarg 0x5762 
+0x2196 002884 store 2 ,0x8907 
+:      002885 set_lemode_2m:
+0x2197 002886 jam 3 ,0x8901 
+0x2198 002887 jam 0x84 ,0x8920 
+0x2199 002888 rtnmark1 mark_ble_2m 
+0x219a 002889 jam 1 ,0x8901 
+0x219b 002890 jam 0x80 ,0x8920 
+0x219c 002891 jam 0x07 ,0x8a82 
+0x219d 002892 jam 0x44 ,0x8a8d 
+0x219e 002893 jam 0x0a ,0x8a8e 
+0x219f 002894 fetch 1 ,mem_fcomp_div 
+0x21a0 002895 beq xtal_16m ,set_lemode_1m_16m 
+0x21a1 002896 setarg 0x2bb1 
+0x21a2 002897 store 2 ,0x8907 
+:      002898 set_lemode_1m:
+0x21a3 002899 rtnmark0 mark_ble_lr 
+0x21a4 002900 jam 5 ,0x8901 
+0x21a5 002901 rtn 
+:      002903 rf_rx_enable:
+0x21a6 002904 bpatch patch02_5 ,mem_patch02 
+0x21a7 002905 call rf_debug_rx_gpio_high 
+0x21a8 002906 call rf_rx_agc_set 
+0x21a9 002907 force 8 ,radio_ctrl 
+0x21aa 002908 force 0 ,radio_ctrl 
+0x21ab 002910 setarg 0x0aaada 
+0x21ac 002911 store 3 ,0x8a0f 
+0x21ad 002912 jam 0x40 ,0x8a25 
+0x21ae 002913 jam 0x10 ,0x8a26 
+0x21af 002914 nop 60 
+0x21b0 002915 jam 0xfb ,0x8a01 
+0x21b1 002916 jam 0xff ,0x8a25 
+0x21b2 002917 jam 0x30 ,0x8a26 
+0x21b3 002918 jam 0x5e ,0x8a16 
+0x21b4 002919 nop 20 
+0x21b5 002920 jam 0x00 ,0x8a10 
+0x21b6 002921 jam 0x08 ,0x8a11 
+0x21b7 002922 nop 120 
+0x21b8 002923 jam 0xd ,0x8900 
+0x21b9 002924 rtn 
+:      002927 rf_rx_agc_set:
+0x21ba 002928 fetch 1 ,mem_gain_fix 
+0x21bb 002929 beq 0xff ,rf_rx_enable_no_soft_agc 
+0x21bc 002930 arg mem_gain_table ,contr 
+0x21bd 002931 iadd contr ,contr 
+0x21be 002932 ifetch 1 ,contr 
+0x21bf 002933 store 1 ,core_rf_rx_gain_fix 
+0x21c0 002934 jam 0x27 ,core_rf_rx_agc_ctrl 
+:      002936 rf_rx_enable_no_soft_agc:
+0x21c1 002937 fetcht 1 ,mem_gain_second_agc_en 
+0x21c2 002938 fetch 1 ,core_rf_rx_agc_ctrl 
+0x21c3 002939 ior temp ,pdata 
+0x21c4 002940 store 1 ,core_rf_rx_agc_ctrl 
+0x21c5 002941 rtn 
+:      002944 set_freq_tx_int:
+0x21c6 002945 jam 0x03 ,0x8900 
+0x21c7 002946 jam 0x02 ,0x8a24 
+0x21c8 002947 nop 20 
+0x21c9 002948 jam 0x65 ,0x8a70 
+0x21ca 002949 jam 0xdf ,0x8a23 
+0x21cb 002950 call set_lemode 
+0x21cc 002951 call ghp_lookup 
+0x21cd 002952 storet 1 ,mem_last_freq 
+0x21ce 002953 increase 2 ,temp 
+0x21cf 002954 branch aac_res_lookup 
+:      002958 calc_freq:
+0x21d0 002959 bpatch patch02_6 ,mem_patch02 
+0x21d1 002960 setarg 2400 
+0x21d2 002961 iadd temp ,pdata 
+0x21d3 002962 copy pdata ,rega 
+0x21d4 002963 fetcht 1 ,mem_fcomp_div 
+0x21d5 002964 rshift temp ,temp 
+0x21d6 002965 idiv temp 
+0x21d7 002967 call wait_div_end 
+0x21d8 002968 quotient pdata 
+0x21d9 002969 store 2 ,0x8909 
+0x21da 002970 remainder pdata 
+0x21db 002971 lshift16 pdata ,pdata 
+0x21dc 002972 lshift8 pdata ,pdata 
+0x21dd 002973 idiv temp 
+0x21de 002974 call wait_div_end 
+0x21df 002975 quotient pdata 
+0x21e0 002976 store 3 ,0x890b 
+0x21e1 002981 storer rega ,1 ,0x8a22 
+0x21e2 002982 rshift8 rega ,rega 
+0x21e3 002983 storer rega ,1 ,0x8a21 
+0x21e4 002984 jam 0xa0 ,0x8a20 
+0x21e5 002985 jam 0xe0 ,0x8a20 
+0x21e6 002986 jam 0xa0 ,0x8a20 
+0x21e7 002987 rtn 
+:      002989 ghp_lookup:
+0x21e8 002990 add temp ,2 ,pdata 
+0x21e9 002991 rshift3 pdata ,pdata 
+0x21ea 002992 and_into -2 ,pdata 
+0x21eb 002993 arg mem_ghpc_table ,contr 
+0x21ec 002994 bmark0 mark_ble_2m ,ghp_1m 
+0x21ed 002995 increase 12 ,contr 
+:      002996 ghp_1m:
+0x21ee 002997 iadd contr ,contr 
+0x21ef 002998 ifetchr rega ,2 ,contr 
+0x21f0 002999 ifetch 2 ,contr 
+0x21f1 003000 isub rega ,pdata 
+0x21f2 003001 add temp ,2 ,contr 
+0x21f3 003002 and_into 0xf ,contr 
+0x21f4 003003 imul32 contr ,pdata 
+0x21f5 003004 rshift4 pdata ,pdata 
+0x21f6 003005 iadd rega ,pdata 
+0x21f7 003006 store 2 ,0x8905 
+0x21f8 003007 rtn 
+:      003011 set_freq_tx:
+0x21f9 003012 bpatch patch02_7 ,mem_patch02 
+0x21fa 003013 call set_freq_tx_int 
+0x21fb 003014 nop 600 
+:      003016 txon:
+0x21fc 003017 bpatch patch03_0 ,mem_patch03 
+0x21fd 003018 setarg 0x0aaa7e 
+0x21fe 003019 store 3 ,0x8a0f 
+0x21ff 003020 nop 60 
+0x2200 003021 jam 0x00 ,0x8a25 
+0x2201 003022 jam 0x0d ,0x8a26 
+0x2202 003023 jam 0x56 ,0x8a16 
+0x2203 003024 nop 30 
+0x2204 003025 jam 0x1b ,0x8a15 
+0x2205 003026 call set_tx_power 
+0x2206 003027 nop 20 
+0x2207 003028 jam 0x0f ,0x8a26 
+0x2208 003029 nop 20 
+0x2209 003030 jam 0xa8 ,0x8a10 
+0x220a 003031 jam 0x00 ,0x8a11 
+0x220b 003032 rtn 
+:      003034 set_tx_power:
+0x220c 003035 bpatch patch03_1 ,mem_patch03 
+0x220d 003036 fetch 1 ,mem_tx_power 
+0x220e 003037 beq tx_power_0db ,set_tx_power_0db 
+0x220f 003038 beq tx_power_3db ,set_tx_power_3db 
+0x2210 003039 beq tx_power_5db ,set_tx_power_5db 
+0x2211 003040 beq tx_power_7db ,set_tx_power_7db 
+0x2212 003041 beq tx_power_10db ,set_tx_power_10db 
+0x2213 003042 beq tx_power_f3db ,set_tx_power_f3db 
+0x2214 003043 beq tx_power_f5db ,set_tx_power_f5db 
+0x2215 003044 beq tx_power_f10db ,set_tx_power_f10db 
+0x2216 003045 beq tx_power_f20db ,set_tx_power_f20db 
+:      003046 set_tx_power_0db:
+0x2217 003047 jam 0x17 ,0x8a14 
+0x2218 003048 setarg 0x251a3f 
+0x2219 003049 store 3 ,0x8a60 
+:      003050 set_tx_power_8a63_28:
+0x221a 003051 jam 0x28 ,0x8a63 
+0x221b 003052 rtn 
+:      003054 set_tx_power_3db:
+0x221c 003055 jam 0x25 ,0x8a14 
+0x221d 003056 setarg 0xa91c2d 
+0x221e 003057 store 3 ,0x8a60 
+:      003058 set_tx_power_8a63_2f:
+0x221f 003059 jam 0x2f ,0x8a63 
+0x2220 003060 rtn 
+:      003062 set_tx_power_5db:
+0x2221 003063 jam 0x25 ,0x8a14 
+0x2222 003064 setarg 0xa91c3f 
+0x2223 003065 store 3 ,0x8a60 
+0x2224 003066 branch set_tx_power_8a63_2f 
+:      003068 set_tx_power_7db:
+0x2225 003069 jam 0x25 ,0x8a14 
+0x2226 003070 setarg 0xa9383f 
+0x2227 003071 store 3 ,0x8a60 
+0x2228 003072 branch set_tx_power_8a63_2f 
+:      003074 set_tx_power_10db:
+0x2229 003075 jam 0x25 ,0x8a14 
+0x222a 003076 setarg 0xa93f3f 
+0x222b 003077 store 3 ,0x8a60 
+0x222c 003078 branch set_tx_power_8a63_2f 
+:      003081 set_tx_power_f3db:
+0x222d 003082 jam 0x17 ,0x8a14 
+0x222e 003083 setarg 0x251827 
+0x222f 003084 store 3 ,0x8a60 
+0x2230 003085 branch set_tx_power_8a63_28 
+:      003087 set_tx_power_f5db:
+0x2231 003088 jam 0x17 ,0x8a14 
+0x2232 003089 setarg 0x25181c 
+0x2233 003090 store 3 ,0x8a60 
+0x2234 003091 branch set_tx_power_8a63_28 
+:      003093 set_tx_power_f10db:
+0x2235 003094 jam 0x17 ,0x8a14 
+0x2236 003095 setarg 0x25180b 
+0x2237 003096 store 3 ,0x8a60 
+0x2238 003097 branch set_tx_power_8a63_28 
+:      003099 set_tx_power_f20db:
+0x2239 003100 jam 0x17 ,0x8a14 
+0x223a 003101 setarg 0x251000 
+0x223b 003102 store 3 ,0x8a60 
+0x223c 003103 branch set_tx_power_8a63_28 
+:      003107 initialize_radio:
+0x223d 003108 jam clksel_rc ,core_clksel 
+:      003109 initialize_radio_wait:
+0x223e 003110 fetch 2 ,mem_rf_init_ptr 
+0x223f 003111 bbit0 14 ,initialize_radio_wait 
+0x2240 003112 iforce contr 
+0x2241 003113 arg 0x8a00 ,temp 
+:      003114 initialize_radio_loop:
+0x2242 003115 ifetch 1 ,contr 
+0x2243 003116 beq 0xff ,initialize_radio_cont 
+0x2244 003117 ior temp ,contw 
+0x2245 003118 ifetch 1 ,contr 
+0x2246 003119 istore 1 ,contw 
+0x2247 003120 branch initialize_radio_loop 
+:      003122 initialize_radio_cont:
+0x2248 003123 bpatch patch03_2 ,mem_patch03 
+0x2249 003124 fetch 1 ,mem_wdt_always_work 
+0x224a 003125 call wdt_set_disable ,blank 
+0x224b 003127 until null ,lpo_edge 
+0x224c 003128 jam 0x5f ,0x813b 
+0x224d 003129 fetch 1 ,mem_fcomp_div 
+0x224e 003130 beq xtal_16m ,initialize_radio_16m 
+0x224f 003131 fetch 1 ,mem_ring_ibias_trim 
+0x2250 003132 or_into 0x04 ,pdata 
+0x2251 003133 store 1 ,0x8a02 
+0x2252 003134 jam 0x01 ,0x890f 
+0x2253 003135 jam 0x24 ,0x8a80 
+0x2254 003136 jam 0x62 ,0x8a81 
+0x2255 003137 setarg 0xe61212 
+0x2256 003138 store 3 ,0x8a73 
+:      003139 initialize_radio2:
+0x2257 003141 jam 0x60 ,0x8a86 
+0x2258 003142 jam 0x3b ,0x8a8b 
+0x2259 003144 call dpll_on 
+0x225a 003145 jam 0 ,core_config 
+0x225b 003146 jam clksel_dpll ,core_clksel 
+0x225c 003147 setarg 0x557474 
+0x225d 003148 store 3 ,0x8968 
+0x225e 003149 jam 0x6e ,0x8960 
+0x225f 003150 call rx_dcoc 
+0x2260 003151 call rfpll_aac_ghpc 
+0x2261 003152 fetch 1 ,mem_xtal_c_sel 
+0x2262 003153 store 1 ,core_xtal_cap 
+0x2263 003155 jam system_clk_12m ,mem_system_clk 
+0x2264 003156 call sadc_calibration 
+0x2265 003157 branch dpll_ring_ibias_calc 
+:      003159 initialize_radio_16m:
+0x2266 003160 fetch 1 ,mem_ring_ibias_trim 
+0x2267 003161 or_into 0x06 ,pdata 
+0x2268 003162 store 1 ,0x8a02 
+0x2269 003163 jam 0x00 ,0x890f 
+0x226a 003164 jam 0x23 ,0x8a80 
+0x226b 003165 jam 0xb0 ,0x8a81 
+0x226c 003166 setarg 0xe40909 
+0x226d 003167 store 3 ,0x8a73 
+0x226e 003168 jam 0x2a ,0x8a76 
+0x226f 003169 jam 0x04 ,0x8902 
+0x2270 003170 branch initialize_radio2 
+:      003172 rfpll_aac_ghpc:
+0x2271 003173 bpatch patch03_3 ,mem_patch03 
+0x2272 003174 call set_sync_on 
+0x2273 003175 jam 3 ,0x8900 
+0x2274 003176 jam 0x1 ,0x8a70 
+0x2275 003177 arg mem_ghpc_table ,regb 
+0x2276 003178 arg mem_aac_res_table ,regd 
+0x2277 003179 call rfpll_aac_ghpc_once 
+0x2278 003180 set1 mark_ble_2m ,mark 
+0x2279 003181 call rfpll_aac_ghpc_once 
+0x227a 003182 jam 0x61 ,0x8a70 
+0x227b 003183 branch shutdown_radio 
+:      003185 rfpll_aac_ghpc_once:
+0x227c 003186 call set_lemode 
+0x227d 003187 arg 6 ,loopcnt 
+0x227e 003188 arg 0 ,regc 
+:      003189 rfpll_cal_loop:
+0x227f 003190 copy regc ,temp 
+0x2280 003191 call aac_ghpc 
+0x2281 003192 increase 2 ,regb 
+0x2282 003193 increase 1 ,regd 
+0x2283 003194 increase 16 ,regc 
+0x2284 003195 loop rfpll_cal_loop 
+0x2285 003196 rtn 
+:      003198 dpll_on:
+0x2286 003199 fetch 1 ,mem_fcomp_div 
+0x2287 003200 beq xtal_24m ,dpll_on_24m 
+0x2288 003201 fetch 1 ,mem_ring_ibias_trim 
+0x2289 003202 or_into 0x06 ,pdata 
+0x228a 003203 store 1 ,0x8a02 
+0x228b 003204 jam 0xe0 ,0x8a05 
+:      003205 dpll_on_24m:
+0x228c 003206 jam 0xc8 ,0x8a00 
+0x228d 003207 nop 60 
+0x228e 003208 jam 0xa0 ,0x8a01 
+0x228f 003209 jam 0xcf ,0x8a00 
+0x2290 003210 jam 0xfa ,0x8a01 
+0x2291 003211 nop 20 
+0x2292 003212 jam 0x8f ,0x8a00 
+0x2293 003213 rtn 
+:      003215 aac_ghpc:
+0x2294 003216 bpatch patch03_4 ,mem_patch03 
+0x2295 003217 jam 0x30 ,0x8a20 
+0x2296 003218 jam 0xdd ,0x8a23 
+0x2297 003219 call calc_freq 
+:      003220 wait_cal_done:
+0x2298 003221 fetch 1 ,0x8a7c 
+0x2299 003222 bbit0 0 ,wait_cal_done 
+0x229a 003223 jam 0x30 ,0x8a7b 
+0x229b 003224 call read_cal_result 
+0x229c 003225 iforce rega 
+0x229d 003226 jam 0x40 ,0x8a7b 
+0x229e 003227 call read_cal_result 
+0x229f 003228 isub rega ,pdata 
+0x22a0 003229 mul32 pdata ,125 ,temp 
+0x22a1 003230 setarg 0xb00000 
+0x22a2 003231 idiv temp 
+0x22a3 003232 call wait_div_end 
+0x22a4 003233 quotient pdata 
+0x22a5 003234 bmark0 mark_ble_2m ,aac_ghpc_1m 
+0x22a6 003235 lshift pdata ,pdata 
+:      003236 aac_ghpc_1m:
+0x22a7 003237 istore 2 ,regb 
+0x22a8 003238 jam 0x20 ,0x8a7b 
+0x22a9 003239 fetch 1 ,0x8a7e 
+0x22aa 003240 lshift4 pdata ,pdata 
+0x22ab 003241 istore 1 ,regd 
+0x22ac 003242 jam 0 ,0x8a7b 
+0x22ad 003243 rtn 
+:      003245 read_cal_result:
+0x22ae 003246 fetch 2 ,0x8a7d 
+0x22af 003247 byteswap pdata ,pdata 
+0x22b0 003248 fetcht 1 ,0x8a7c 
+0x22b1 003249 lshift16 temp ,temp 
+0x22b2 003250 ior temp ,pdata 
+0x22b3 003251 rtn 
+:      003254 dpll_ring_ibias_calc:
+0x22b4 003255 bpatch patch03_5 ,mem_patch03 
+0x22b5 003256 fetch 1 ,core_vtest_ctrl0 
+0x22b6 003257 set1 0 ,pdata 
+0x22b7 003258 store 1 ,core_vtest_ctrl0 
+0x22b8 003259 jam 0xf0 ,core_vtest_ctrl1 
+0x22b9 003260 fetch 1 ,core_bbpll_cfg3 
+0x22ba 003261 or_into 0x16 ,pdata 
+0x22bb 003262 store 1 ,core_bbpll_cfg3 
+0x22bc 003264 fetch 1 ,mem_adc_dma_enable 
+0x22bd 003265 store 1 ,mem_temp 
+0x22be 003266 fetch 1 ,mem_adc_channel 
+0x22bf 003267 store 1 ,mem_temp + 1 
+0x22c0 003268 jam 0 ,mem_adc_dma_enable 
+0x22c1 003269 fetch 1 ,mem_ring_ibias_calc_adc_channel 
+0x22c2 003270 store 1 ,mem_adc_channel 
+0x22c3 003271 fetcht 1 ,mem_ring_ibias_calc_adc_gpio 
+0x22c4 003272 call gpio_set_high_impedance 
+0x22c5 003274 arg 0 ,rega 
+0x22c6 003275 arg 8 ,loopcnt 
+:      003276 dpll_ring_ibias_read_adc:
+0x22c7 003277 call enable_adc 
+0x22c8 003278 fetch 2 ,mem_adc_current_value 
+0x22c9 003279 iadd rega ,rega 
+0x22ca 003280 loop dpll_ring_ibias_read_adc 
+0x22cb 003281 rshift3 rega ,rega 
+0x22cc 003282 store 2 ,mem_adc_current_value 
+0x22cd 003284 fetch 1 ,mem_temp 
+0x22ce 003285 store 1 ,mem_adc_dma_enable 
+0x22cf 003286 fetch 1 ,mem_temp + 1 
+0x22d0 003287 store 1 ,mem_adc_channel 
+0x22d1 003289 fetch 1 ,core_bbpll_cfg3 
+0x22d2 003290 and_into 0xe0 ,pdata 
+0x22d3 003291 store 1 ,core_bbpll_cfg3 
+0x22d4 003292 jam 0x00 ,core_vtest_ctrl1 
+0x22d5 003293 fetch 1 ,core_vtest_ctrl0 
+0x22d6 003294 set0 0 ,pdata 
+0x22d7 003295 store 1 ,core_vtest_ctrl0 
+0x22d8 003297 call vdd_calculate_by_mode 
+0x22d9 003298 fetcht 2 ,mem_ring_ibias_vtune_high 
+0x22da 003299 isub temp ,null 
+0x22db 003300 branch ring_ibias_trim_incrs ,positive 
+0x22dc 003301 fetcht 2 ,mem_ring_ibias_vtune_low 
+0x22dd 003302 isub temp ,null 
+0x22de 003303 rtn positive 
+:      003304 ring_ibias_trim_decrs:
+0x22df 003305 fetch 1 ,mem_ring_ibias_trim 
+0x22e0 003306 rtneq 0x00 
+0x22e1 003307 increase -32 ,pdata 
+0x22e2 003308 store 1 ,mem_ring_ibias_trim 
+0x22e3 003309 rtn 
+:      003311 ring_ibias_trim_incrs:
+0x22e4 003312 fetch 1 ,mem_ring_ibias_trim 
+0x22e5 003313 rtneq 0xe0 
+0x22e6 003314 increase 32 ,pdata 
+0x22e7 003315 store 1 ,mem_ring_ibias_trim 
+0x22e8 003316 rtn 
+:      003319 save_rssi:
+0x22e9 003320 bpatch patch03_6 ,mem_patch03 
+0x22ea 003322 fetch 1 ,modem_nb_pow 
+0x22eb 003323 isolate1 6 ,pdata 
+0x22ec 003324 setflag true ,7 ,pdata 
+0x22ed 003325 store 1 ,mem_modem_rssi 
+0x22ee 003327 fetch 1 ,modem_gain 
+0x22ef 003328 and pdata ,0x0f ,temp 
+0x22f0 003329 lshift temp ,temp 
+0x22f1 003330 rshift4 pdata ,pdata 
+0x22f2 003331 iadd temp ,temp 
+0x22f3 003332 mul32 temp ,3 ,rega 
+0x22f4 003334 fetch 1 ,mem_modem_rssi 
+0x22f5 003335 call byte_sign_extern 
+0x22f6 003336 sub pdata ,0 ,pdata 
+0x22f7 003337 iadd rega ,pdata 
+0x22f8 003338 increase -9 ,pdata 
+0x22f9 003339 and pdata ,0x1ff ,pdata 
+0x22fa 003340 isolate1 8 ,pdata 
+0x22fb 003341 nbranch save_rssi_store ,true 
+0x22fc 003342 setarg 0 
+:      003343 save_rssi_store:
+0x22fd 003344 store 1 ,mem_rssi_hex 
+0x22fe 003345 branch rssi_hex2dec 
+:      003347 byte_sign_extern:
+0x22ff 003348 isolate1 7 ,pdata 
+0x2300 003349 nrtn true 
+0x2301 003350 arg 0xff00 ,temp 
+0x2302 003351 ior temp ,pdata 
+0x2303 003352 rtn 
+:      003354 rssi_hex2dec:
+0x2304 003355 fetch 1 ,mem_rssi_hex 
+0x2305 003356 call bcd 
+0x2306 003357 store 1 ,mem_rssi 
+0x2307 003358 rtn 
+:      003360 bcd:
+0x2308 003361 and_into 0xff ,pdata 
+0x2309 003362 div pdata ,10 
+0x230a 003363 call get_div_result 
+0x230b 003364 lshift4 pdata ,pdata 
+0x230c 003365 remainder temp 
+0x230d 003366 ior temp ,pdata 
+0x230e 003367 rtn 
+:      003369 gain_control:
+0x230f 003370 bpatch patch03_7 ,mem_patch03 
+0x2310 003371 fetch 1 ,mem_gain_fix 
+0x2311 003372 rtneq 0xff 
+0x2312 003373 nbranch gain_increase ,sync 
+0x2313 003374 fetch 1 ,mem_modem_rssi 
+0x2314 003375 sub pdata ,0xf0 ,null 
+0x2315 003376 nbranch gain_descend ,positive 
+0x2316 003377 sub pdata ,0x7f ,null 
+0x2317 003378 branch gain_descend ,positive 
+0x2318 003380 fetchr rega ,1 ,core_rf_rx_gain_fix 
+0x2319 003381 fetch 1 ,mem_gain_fix 
+0x231a 003382 rtneq 0 
+0x231b 003383 arg mem_gain_table ,contr 
+0x231c 003384 iadd contr ,contr 
+0x231d 003385 ifetch 1 ,contr 
+0x231e 003386 isub rega ,null 
+0x231f 003387 nrtn zero 
+0x2320 003388 increase -2 ,contr 
+0x2321 003389 ifetcht 1 ,contr 
+0x2322 003390 rshift4 temp ,pdata 
+0x2323 003391 rshift4 rega ,regb 
+0x2324 003392 isub regb ,regb 
+0x2325 003393 and temp ,0xf ,pdata 
+0x2326 003394 and rega ,0xf ,rega 
+0x2327 003395 isub rega ,rega 
+0x2328 003396 lshift rega ,pdata 
+0x2329 003397 iadd regb ,regb 
+0x232a 003398 mul32 regb ,3 ,regb 
+0x232b 003399 fetcht 1 ,mem_modem_rssi 
+0x232c 003400 and temp ,0x80 ,pdata 
+0x232d 003401 rtn blank 
+:      003402 add_negative:
+0x232e 003403 setarg 0x100 
+0x232f 003404 isub temp ,temp 
+0x2330 003405 copy regb ,pdata 
+0x2331 003406 isub temp ,pdata 
+0x2332 003407 rtn positive 
+0x2333 003408 and pdata ,0xff ,pdata 
+0x2334 003409 rtneq 0xff 
+0x2335 003410 rtneq 0xfe 
+:      003412 gain_increase:
+0x2336 003413 fetch 1 ,mem_gain_fix 
+0x2337 003414 beq 1 ,set_rx_gain0 
+0x2338 003415 beq 2 ,set_rx_gain1 
+0x2339 003417 branch set_rx_gain0 
+:      003419 gain_descend:
+0x233a 003420 fetch 1 ,mem_gain_fix 
+0x233b 003421 beq 0 ,set_rx_gain1 
+0x233c 003422 beq 1 ,set_rx_gain2 
+:      003424 set_rx_gain2:
+0x233d 003425 jam 2 ,mem_gain_fix 
+0x233e 003426 rtn 
+:      003428 set_rx_gain0:
+0x233f 003429 jam 0 ,mem_gain_fix 
+0x2340 003430 rtn 
+:      003432 set_rx_gain1:
+0x2341 003433 jam 1 ,mem_gain_fix 
+0x2342 003434 rtn 
+:      003441 ahead_window:
+0x2343 003442 copy pdata ,temp 
+0x2344 003443 bpatch patch04_0 ,mem_patch04 
+0x2345 003444 copy temp ,pdata 
+0x2346 003445 call clk2bt 
+0x2347 003446 lshift16 bt_clk ,pdata 
+0x2348 003447 set1 44 ,pdata 
+0x2349 003448 call clk_diff 
+0x234a 003449 set0 44 ,pdata 
+0x234b 003450 call get_clk 
+0x234c 003451 call clk_diff 
+0x234d 003452 rtn user 
+0x234e 003453 call clk2rt 
+0x234f 003454 iforce stop_watch 
+0x2350 003455 until null ,timeout 
+0x2351 003456 rtn 
+:      003459 get_clk:
+0x2352 003460 copy clkn ,temp 
+0x2353 003461 rtn master 
+0x2354 003462 copy clke ,temp 
+0x2355 003463 rtn 
+:      003465 get_clkbt:
+0x2356 003466 deposit clkn_bt 
+0x2357 003467 rtn master 
+0x2358 003468 deposit clke_bt 
+0x2359 003469 rtn 
+:      003472 assert:
+0x235a 003473 bpatch patch04_1 ,mem_patch04 
+0x235b 003474 branch assert 
+:      003477 sleep:
+0x235c 003478 rtn blank 
+0x235d 003480 rshift pdata ,pdata 
+0x235e 003481 increase -3 ,pdata 
+:      003482 sleep_loop:
+0x235f 003483 increase -1 ,pdata 
+0x2360 003484 nbranch sleep_loop ,zero 
+0x2361 003485 force 0 ,pdata 
+0x2362 003486 rtn 
+:      003490 init_param:
+0x2363 003492 setarg param_tx_setup 
+0x2364 003493 store 2 ,mem_param_tx_setup 
+0x2365 003494 setarg param_rf_setup 
+0x2366 003495 store 2 ,mem_param_rf_setup 
+0x2367 003496 setarg param_conn_access 
+0x2368 003497 store 2 ,mem_param_conn_access 
+0x2369 003498 setarg param_rx_setup 
+0x236a 003499 store 2 ,mem_param_rx_setup 
+0x236b 003500 setarg param_clke_cal 
+0x236c 003501 store 2 ,mem_param_clke_cal 
+0x236d 003502 setarg param_pll_setup 
+0x236e 003503 store 2 ,mem_param_pll_setup 
+0x236f 003504 setarg param_dpll_start_delay 
+0x2370 003505 store 2 ,mem_param_dpll_start_delay 
+0x2371 003506 setarg param_rt_rthalfslot 
+0x2372 003507 store 2 ,mem_param_rt_rthalfslot 
+0x2373 003508 setarg param_clke_cal_le_1m 
+0x2374 003509 store 2 ,mem_param_clke_cal_le_1m 
+0x2375 003510 setarg param_clke_cal_le_2m 
+0x2376 003511 store 2 ,mem_param_clke_cal_le_2m 
+0x2377 003512 setarg param_clke_cal_le_coded 
+0x2378 003513 store 2 ,mem_param_clke_cal_le_coded 
+0x2379 003515 bpatch patch04_2 ,mem_patch04 
+0x237a 003516 rtn wake 
+0x237b 003517 setarg att_default_mtu 
+0x237c 003518 store 2 ,mem_le_remote_mtu 
+0x237d 003519 jam param_t_ifs_150us + param_sync_time_difference ,mem_le_tx_ifs_defference 
+0x237e 003520 setarg mem_ble_tx_buff0 
+0x237f 003521 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+0x2380 003522 setarg mem_ble_l2cap_tx_buff_size 
+0x2381 003523 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0x2382 003524 rshift clkn_bt ,pdata 
+0x2383 003525 store 4 ,mem_last_clkn 
+0x2384 003526 rtn 
+:      003533 lpmstate:
+0x2385 003534 setarg 0xee21 
+0x2386 003535 store 2 ,core_clkoff 
+0x2387 003536 fetchr alarm ,4 ,core_gpio_in 
+0x2388 003537 fetch 1 ,core_lpm_isogate 
+0x2389 003538 bbit0 gpio_latch ,power_up 
+0x238a 003539 enable wake 
+0x238b 003540 bbit1 cold_wake ,lpmwake 
+0x238c 003541 disable wake 
+0x238d 003542 deposit auxcnt 
+0x238e 003543 nbranch lpmwake ,blank 
+0x238f 003544 fetch 1 ,core_lpm_sysctl 
+0x2390 003545 bbit1 reload_code ,lpmwake 
+0x2391 003546 arg param_hibernate_clks ,temp 
+0x2392 003547 branch lpm_enter_sleep 
+:      003548 lpmwake:
+0x2393 003549 call lpm_poweron_retmem 
+0x2394 003550 call lpm_load_context ,wake 
+0x2395 003551 fetch 1 ,core_lpm_isogate 
+0x2396 003552 set0 gpio_latch ,pdata 
+0x2397 003553 store 1 ,core_lpm_isogate 
+0x2398 003554 nbranch boot_load ,wake 
+0x2399 003555 nop 1 
+0x239a 003556 storer alarm ,4 ,mem_saved_gpio_in 
+0x239b 003557 rtn 
+:      003559 power_up:
+0x239c 003560 call lpm_poweron_retmem 
+:      003561 boot_load:
+0x239d 003562 call loadcode 
+0x239e 003563 storer alarm ,4 ,mem_saved_gpio_in 
+0x239f 003564 rtn 
+:      003566 lpm_poweron_retmem:
+0x23a0 003567 until null ,lpo_edge 
+0x23a1 003568 fetch 1 ,core_lpm_ldosel 
+0x23a2 003569 and_into 0x88 ,pdata 
+0x23a3 003570 store 1 ,core_lpm_ldosel 
+0x23a4 003571 until null ,lpo_edge 
+0x23a5 003572 fetch 1 ,core_lpm_isogate 
+0x23a6 003573 or_into 0xf ,pdata 
+0x23a7 003574 store 1 ,core_lpm_isogate 
+0x23a8 003575 until null ,lpo_edge 
+0x23a9 003576 set1 isogate ,pdata 
+0x23aa 003577 store 1 ,core_lpm_isogate 
+0x23ab 003578 until null ,lpo_edge 
+0x23ac 003579 set1 retmem_cs ,pdata 
+0x23ad 003580 store 1 ,core_lpm_isogate 
+0x23ae 003581 until null ,lpo_edge 
+0x23af 003582 rtn 
+:      003584 lpm_xtal_default:
+0x23b0 003585 until null ,lpo_edge 
+0x23b1 003586 jam 0x76 ,core_xtal_ib 
+0x23b2 003587 until null ,lpo_edge 
+0x23b3 003588 jam 0x37 ,core_xtal_cap 
+0x23b4 003589 rtn 
+:      003591 xtal_fast_wake:
+0x23b5 003592 until null ,lpo_edge 
+0x23b6 003593 jam 0x76 ,core_xtal_ib 
+0x23b7 003594 until null ,lpo_edge 
+0x23b8 003595 jam 0x37 ,core_xtal_cap 
+0x23b9 003596 rtn 
+:      003598 lpm_write_lock:
+0x23ba 003601 fetch 1 ,mem_device_option 
+0x23bb 003602 lshift4 pdata ,pdata 
+0x23bc 003604 store 1 ,core_ucode_flag 
+0x23bd 003605 until null ,lpo_edge 
+0x23be 003606 fetch 1 ,mem_peripheral_lock_flag 
+0x23bf 003607 set1 rom_lock_bit ,pdata 
+0x23c0 003608 set1 option_lock ,pdata 
+0x23c1 003609 store 1 ,core_peripheral_lock 
+0x23c2 003610 branch lpm_write_wait 
+:      003612 lpm_write_ice_disable:
+0x23c3 003613 fetch 1 ,core_lpm_sysctl 
+0x23c4 003614 set0 ice_mode ,pdata 
+0x23c5 003615 store 1 ,core_lpm_sysctl 
+0x23c6 003616 rtn 
+:      003618 lpm_write_ice_enable:
+0x23c7 003619 fetch 1 ,core_lpm_sysctl 
+0x23c8 003620 set1 ice_mode ,pdata 
+0x23c9 003621 store 1 ,core_lpm_sysctl 
+0x23ca 003622 rtn 
+:      003624 lpm_preon_counter:
+0x23cb 003625 fetch 3 ,mem_lpm_xtalcnt 
+0x23cc 003626 arg core_lpm_xtalcnt ,contw 
+:      003627 lpm_write_3bytes:
+0x23cd 003628 arg 3 ,loopcnt 
+0x23ce 003629 branch lpm_write_loop 
+:      003631 lpm_write_mpu_s0:
+0x23cf 003632 arg core_mpu_s0_saddr ,contw 
+:      003633 lpm_write_dword:
+0x23d0 003634 arg 4 ,loopcnt 
+:      003635 lpm_write_loop:
+0x23d1 003636 until null ,lpo_edge 
+0x23d2 003637 istore 1 ,contw 
+0x23d3 003638 rshift8 pdata ,pdata 
+0x23d4 003639 loop lpm_write_loop 
+0x23d5 003640 branch lpm_write_wait 
+:      003642 lpm_write_mpu_s1:
+0x23d6 003643 arg core_mpu_s1_saddr ,contw 
+0x23d7 003644 branch lpm_write_dword 
+:      003647 lpm_disable_exen_output:
+0x23d8 003648 fetch 1 ,core_lpm_ldosel 
+0x23d9 003649 set0 3 ,pdata 
+0x23da 003650 store 1 ,core_lpm_ldosel 
+0x23db 003651 rtn 
+:      003653 lpm_disable_io_dozed:
+0x23dc 003654 fetch 1 ,mem_lpm_hv_sel 
+0x23dd 003655 rtn blank 
+0x23de 003656 set0 lpm_doze_en_bit ,pdata 
+0x23df 003657 branch lpm_write_sel_hv 
+:      003659 lpm_save_sel_hv:
+0x23e0 003660 store 1 ,mem_lpm_hv_sel 
+:      003661 lpm_write_sel_hv:
+0x23e1 003662 store 1 ,core_io_doze_en 
+:      003663 lpm_write_wait:
+0x23e2 003664 until null ,lpo_edge 
+0x23e3 003665 rtn 
+:      003668 lpm_write_io_vsel:
+0x23e4 003669 store 1 ,core_io_vsel 
+0x23e5 003670 branch lpm_write_wait 
+:      003673 lpm_load_context:
+0x23e6 003674 call lpm_disable_io_dozed 
+0x23e7 003675 fetch 1 ,mem_saved_spidctrl 
+0x23e8 003676 store 1 ,core_spid_ctrl 
+0x23e9 003677 arg mem_saved_gpio ,contr 
+0x23ea 003678 arg core_gpio_conf ,contw 
+0x23eb 003679 call memcpy16 
+0x23ec 003680 arg core_gpio_conf_hi ,contw 
+0x23ed 003681 call memcpy8 
+0x23ee 003682 fetchr mark ,8 ,mem_saved_mark 
+0x23ef 003683 arg core_gpio_wakeup_cfg ,contr 
+0x23f0 003684 arg mem_gpio_wakeup_cfg ,contw 
+0x23f1 003685 arg 12 ,loopcnt 
+0x23f2 003686 call memcpy 
+0x23f3 003687 branch load_ucode 
+:      003689 lpm_save_context:
+0x23f4 003690 storer mark ,8 ,mem_saved_mark 
+0x23f5 003691 arg core_gpio_conf ,contr 
+0x23f6 003692 arg mem_saved_gpio ,contw 
+0x23f7 003693 call memcpy16 
+0x23f8 003694 arg core_gpio_conf_hi ,contr 
+0x23f9 003695 call memcpy8 
+0x23fa 003696 fetch 1 ,core_spid_ctrl 
+0x23fb 003697 store 1 ,mem_saved_spidctrl 
+0x23fc 003698 branch lpm_write_gpio_wakeup 
+:      003700 lpm_write_gpio_wakeup:
+0x23fd 003701 arg 12 ,loopcnt 
+0x23fe 003702 arg mem_gpio_wakeup_cfg ,contr 
+0x23ff 003703 arg core_gpio_wakeup_cfg ,rega 
+:      003704 lpm_write_gpio_loop:
+0x2400 003705 ifetch 1 ,contr 
+0x2401 003706 ncall lpm_write_gpio ,blank 
+0x2402 003707 increase 1 ,rega 
+0x2403 003708 loop lpm_write_gpio_loop 
+0x2404 003709 rtn 
+:      003710 lpm_write_gpio:
+0x2405 003711 istore 1 ,rega 
+0x2406 003712 until null ,lpo_edge 
+0x2407 003713 rtn 
+:      003715 lpo_calibration:
+0x2408 003716 bpatch patch04_3 ,mem_patch04 
+0x2409 003717 fetch 1 ,core_ccnt_bit 
+0x240a 003718 nbranch lpo_cal_inited ,blank 
+0x240b 003719 fetch 3 ,mem_clks_per_lpo 
+0x240c 003720 nrtn blank 
+0x240d 003721 jam 0xc ,core_ccnt_bit 
+0x240e 003722 jam ccnt_start ,core_misc_ctrl 
+:      003723 lpo_cal_inited:
+0x240f 003724 fetch 1 ,core_perf_status 
+0x2410 003725 rtnbit0 1 
+0x2411 003726 fetch 3 ,core_clk_counter 
+0x2412 003727 store 3 ,mem_clks_per_lpo 
+0x2413 003728 rtn 
+:      003732 lpm_doze:
+0x2414 003733 fetch 1 ,mem_lpm_sysctl 
+0x2415 003734 set1 reload_code ,pdata 
+0x2416 003735 store 1 ,mem_lpm_sysctl 
+:      003738 lpm_hibernate:
+0x2417 003739 bpatch patch04_4 ,mem_patch04 
+0x2418 003740 arg param_hibernate_clks ,temp 
+0x2419 003741 fetch 1 ,mem_lpm_hibernate_switch 
+0x241a 003742 store 1 ,mem_lpm_isogate_final 
+0x241b 003743 fetch 1 ,mem_lpm_sysctl 
+0x241c 003744 store 1 ,core_lpm_sysctl 
+0x241d 003745 until null ,lpo_edge 
+:      003747 lpm_sleep:
+0x241e 003748 bpatch patch04_5 ,mem_patch04 
+0x241f 003750 fetch 2 ,mem_cb_before_lpm_sleep 
+0x2420 003751 call callback_func 
+:      003752 lpm_sleep_skip_cb_function:
+0x2421 003753 fetch 4 ,mem_sleep_counter_all 
+0x2422 003754 iadd temp ,pdata 
+0x2423 003755 store 4 ,mem_sleep_counter_all 
+0x2424 003756 call lpm_save_context 
+0x2425 003757 fetch 1 ,mem_lpm_hv_sel 
+0x2426 003758 set1 lpm_doze_en_bit ,pdata 
+0x2427 003759 call lpm_write_sel_hv 
+0x2428 003760 ncall lpm_preon_counter ,wake 
+0x2429 003761 until null ,lpo_edge 
+0x242a 003762 storer clkn ,6 ,mem_sleep_clkn 
+0x242b 003763 fetch 3 ,mem_lpm_isogate 
+0x242c 003764 fetchr rega ,1 ,mem_lpm_ldo_sel 
+0x242d 003765 arg 3 ,loopcnt 
+:      003766 lpm_sleep_loop:
+0x242e 003767 until null ,lpo_edge 
+0x242f 003768 store 1 ,core_lpm_isogate 
+0x2430 003769 rshift8 pdata ,pdata 
+0x2431 003770 loop lpm_sleep_loop 
+0x2432 003771 until null ,lpo_edge 
+0x2433 003772 storer rega ,1 ,core_lpm_ldosel 
+:      003773 lpm_enter_sleep:
+0x2434 003774 until null ,lpo_edge 
+0x2435 003775 storet 4 ,core_lpm_reg 
+0x2436 003776 jam lpmreg_sel_counter ,core_lpm_wr 
+0x2437 003777 until null ,never 
+:      003779 lpm_cal_xtal_startup:
+0x2438 003780 fetch 1 ,mem_lpm_xtalcnt 
+0x2439 003781 nrtn blank 
+0x243a 003782 jam clksel_rc ,core_clksel 
+0x243b 003783 jam 0xf8 ,core_lpm_ctrl 
+0x243c 003784 setarg 200000 
+0x243d 003785 call sleep 
+0x243e 003786 call xtal_fast_wake 
+0x243f 003787 until null ,lpo_edge 
+0x2440 003788 jam 0xff ,core_lpm_ctrl 
+0x2441 003789 copy lpo_time ,alarm 
+0x2442 003790 jam clksel_xtal ,core_clksel 
+0x2443 003791 nop 10 
+0x2444 003792 until null ,lpo_edge 
+0x2445 003793 deposit lpo_time 
+0x2446 003794 isub alarm ,pdata 
+0x2447 003795 increase 0x30 ,pdata 
+0x2448 003796 arg 0xff ,temp 
+0x2449 003797 call ceiling 
+0x244a 003798 store 1 ,mem_lpm_xtalcnt 
+0x244b 003799 nop 30000 
+0x244c 003800 nop 30000 
+0x244d 003801 nop 30000 
+0x244e 003802 rtn 
+:      003805 lpm_recover_clk:
+0x244f 003806 bpatch patch04_6 ,mem_patch04 
+0x2450 003807 setarg 0 
+0x2451 003808 copy auxcnt ,null 
+0x2452 003809 branch lpm_recover_timeout ,zero 
+0x2453 003810 fetch 1 ,core_lpm_xtalcnt 
+0x2454 003811 fetcht 1 ,core_lpm_buckcnt 
+0x2455 003812 isub temp ,null 
+0x2456 003813 branch lpm_recover_xtal ,positive 
+0x2457 003814 deposit temp 
+:      003815 lpm_recover_xtal:
+0x2458 003816 isub auxcnt ,pdata 
+0x2459 003817 increase 1 ,pdata 
+:      003818 lpm_recover_timeout:
+0x245a 003819 increase 8 ,pdata 
+0x245b 003820 until null ,lpo_edge 
+0x245c 003821 iadd lpo_time ,pdata 
+0x245d 003822 fetcht 4 ,mem_sleep_counter 
+0x245e 003823 iadd temp ,pdata 
+0x245f 003824 fetcht 3 ,mem_clks_per_lpo 
+0x2460 003825 imul32 temp ,pdata 
+0x2461 003826 rshift8 pdata ,pdata 
+0x2462 003827 rshift4 pdata ,pdata 
+0x2463 003828 increase param_lpm_fix ,pdata 
+0x2464 003829 fetcht 2 ,mem_param_rt_rthalfslot 
+0x2465 003830 idiv temp 
+0x2466 003831 call get_div_result 
+0x2467 003832 lshift16 pdata ,pdata 
+0x2468 003833 remainder temp 
+0x2469 003834 ior temp ,pdata 
+0x246a 003835 fetcht 6 ,mem_sleep_clkn 
+0x246b 003836 call clk_add 
+0x246c 003837 copy temp ,clkn 
+0x246d 003838 fetch 6 ,mem_context + coffset_clk_offset 
+0x246e 003839 call calc_clke2 
+0x246f 003840 deposit clke 
+0x2470 003841 store 6 ,mem_pdatatemp 
+0x2471 003842 deposit auxcnt 
+0x2472 003843 istore 1 ,contw 
+0x2473 003844 fetch 1 ,core_gpio_in1 
+0x2474 003845 or_into 0xf0 ,pdata 
+0x2475 003846 istore 1 ,contw 
+0x2476 003847 rtn 
+:      003850 lpm_adjust_clk:
+0x2477 003851 bpatch patch04_7 ,mem_patch04 
+0x2478 003852 deposit clke 
+0x2479 003853 call clk_diff_rt 
+0x247a 003854 fetcht 4 ,mem_sleep_counter_all 
+0x247b 003855 sub temp ,0xff ,null 
+0x247c 003856 rtn positive 
+0x247d 003857 lshift8 pdata ,pdata 
+0x247e 003858 lshift4 pdata ,pdata 
+0x247f 003859 idiv temp 
+0x2480 003860 call get_div_result 
+0x2481 003861 arg param_lpm_adjmax ,temp 
+0x2482 003862 call ceiling 
+0x2483 003863 store 1 ,mem_lpm_adjust 
+0x2484 003864 nbranch lpm_adjust_positive ,user 
+0x2485 003865 sub pdata ,0 ,pdata 
+:      003866 lpm_adjust_positive:
+0x2486 003867 fetcht 3 ,mem_clks_per_lpo 
+0x2487 003868 iadd temp ,pdata 
+0x2488 003869 store 3 ,mem_clks_per_lpo 
+:      003870 lpm_clear_counter:
+0x2489 003871 setarg 0 
+0x248a 003872 store 4 ,mem_sleep_counter_all 
+0x248b 003873 rtn 
+:      003876 lpm_dispatch:
+0x248c 003877 bpatch patch05_0 ,mem_patch05 
+0x248d 003878 call lpo_calibration 
+0x248e 003879 fetch 3 ,mem_clks_per_lpo 
+0x248f 003880 rtn blank 
+0x2490 003881 fetch 1 ,mem_lpm_mode 
+0x2491 003882 rtn blank 
+0x2492 003883 fetch 1 ,mem_secure_connections_enable 
+0x2493 003884 branch lpm_dispatch_next ,blank 
+0x2494 003885 fetch 1 ,mem_sc_local_key_invalid 
+0x2495 003886 rtn blank 
+:      003887 lpm_dispatch_next:
+0x2496 003888 fetch 1 ,mem_sc_calc 
+0x2497 003889 nrtn blank 
+0x2498 003890 arg context_check_a_wack ,regc 
+0x2499 003891 call context_search 
+0x249a 003892 rtn zero 
+0x249b 003893 call lpm_check_wake_lock 
+0x249c 003894 nrtn blank 
+0x249d 003895 call context_check_idle 
+0x249e 003896 nbranch lpm_dispatch_unconn ,zero 
+0x249f 003897 rtn wake 
+0x24a0 003898 bpatch patch05_1 ,mem_patch05 
+0x24a1 003899 fetcht 1 ,mem_lpm_current_mult 
+0x24a2 003900 fetch 2 ,mem_context + coffset_tsniff 
+0x24a3 003901 imul32 temp ,pdata 
+0x24a4 003902 rshift4 temp ,temp 
+0x24a5 003903 rshift2 temp ,temp 
+0x24a6 003904 isub temp ,pdata 
+0x24a7 003905 fetcht 4 ,mem_context + coffset_sniff_anchor 
+0x24a8 003906 iadd temp ,pdata 
+0x24a9 003907 fetcht 1 ,mem_lpm_overhead 
+0x24aa 003908 isub temp ,pdata 
+0x24ab 003909 lshift16 pdata ,alarm 
+0x24ac 003910 fetch 2 ,mem_context + coffset_rx_window 
+0x24ad 003911 rshift pdata ,pdata 
+0x24ae 003912 call clk2bt 
+0x24af 003913 deposit alarm 
+0x24b0 003914 call clk_diff 
+0x24b1 003915 copy clke ,temp 
+0x24b2 003916 call clk_diff_rt 
+0x24b3 003917 rtn user 
+:      003918 lpm_dispatch_sleep:
+0x24b4 003919 call clk2lpo 
+:      003920 lpm_dispatch_lpo:
+0x24b5 003921 bpatch patch05_2 ,mem_patch05 
+0x24b6 003922 fetch 1 ,mem_lpm_xtalcnt 
+0x24b7 003923 isub temp ,null 
+0x24b8 003924 branch lpm_clear_counter ,positive 
+0x24b9 003925 storet 4 ,mem_sleep_counter 
+0x24ba 003926 call app_will_enter_lpm 
+0x24bb 003928 fetcht 4 ,mem_sleep_counter 
+0x24bc 003929 branch lpm_sleep 
+:      003931 lpm_dispatch_unconn:
+0x24bd 003932 bpatch patch05_3 ,mem_patch05 
+0x24be 003933 fetch 1 ,mem_le_adv_enable 
+0x24bf 003934 nbranch lpm_unconn_cont ,blank 
+0x24c0 003935 rtn 
+:      003937 lpm_unconn_cont:
+0x24c1 003938 fetch 2 ,mem_lpm_interval 
+0x24c2 003939 rtn blank 
+:      003940 lpm_sleep_btclk:
+0x24c3 003941 fetcht 1 ,mem_lpm_overhead 
+0x24c4 003942 isub temp ,pdata 
+0x24c5 003943 arg 7500 ,temp 
+0x24c6 003944 imul32 temp ,pdata 
+0x24c7 003945 branch lpm_dispatch_sleep 
+:      003948 lpm_mult_wait_timeout:
+0x24c8 003949 fetch 2 ,mem_cb_bt_set_mult 
+0x24c9 003950 call callback_func 
+0x24ca 003951 nbranch lpm_mult_short ,blank 
+0x24cb 003952 jam 0 ,mem_lpm_current_mult 
+0x24cc 003953 bmark0 mark_lpm_mult_enable ,lpm_mult_short 
+0x24cd 003954 fetch 1 ,mem_lpm_mult_cnt 
+0x24ce 003955 branch lpm_mult_long ,blank 
+0x24cf 003956 increase -1 ,pdata 
+0x24d0 003957 store 1 ,mem_lpm_mult_cnt 
+0x24d1 003958 rtn 
+:      003963 lpm_match:
+0x24d2 003964 jam 0 ,mem_sniff_unint_lost 
+0x24d3 003965 fetch 3 ,mem_sniff_rcv 
+0x24d4 003966 increase 1 ,pdata 
+0x24d5 003967 store 3 ,mem_sniff_rcv 
+0x24d6 003968 rtn 
+:      003971 lpm_lost:
+0x24d7 003972 bpatch patch05_4 ,mem_patch05 
+0x24d8 003973 jam 0 ,mem_lpm_current_mult 
+0x24d9 003974 fetch 3 ,mem_sniff_lost 
+0x24da 003975 increase 1 ,pdata 
+0x24db 003976 store 3 ,mem_sniff_lost 
+0x24dc 003977 fetch 1 ,mem_sniff_unint_lost 
+0x24dd 003978 increase 1 ,pdata 
+0x24de 003979 store 1 ,mem_sniff_unint_lost 
+0x24df 003980 rtn 
+:      003982 lpm_mult_short:
+0x24e0 003983 jam 0 ,mem_lpm_current_mult 
+0x24e1 003984 fetch 1 ,mem_lpm_mult_timeout 
+0x24e2 003985 store 1 ,mem_lpm_mult_cnt 
+0x24e3 003986 rtn 
+:      003988 lpm_mult_long:
+0x24e4 003989 fetcht 1 ,mem_lpm_mult 
+0x24e5 003990 storet 1 ,mem_lpm_current_mult 
+0x24e6 003991 rtn 
+:      003995 lpm_get_wake_lock:
+0x24e7 003996 fetch 2 ,mem_lpm_wake_lock 
+0x24e8 003997 qset1 pdata 
+0x24e9 003998 store 2 ,mem_lpm_wake_lock 
+0x24ea 003999 rtn 
+:      004001 lpm_put_wake_lock:
+0x24eb 004002 fetch 2 ,mem_lpm_wake_lock 
+0x24ec 004003 qset0 pdata 
+0x24ed 004004 store 2 ,mem_lpm_wake_lock 
+0x24ee 004005 rtn 
+:      004009 lpm_check_wake_lock:
+0x24ef 004010 bpatch patch05_5 ,mem_patch05 
+0x24f0 004011 call app_check_wake_lock 
+0x24f1 004012 fetch 2 ,mem_lpm_wake_lock 
+0x24f2 004013 copy pdata ,rega 
+0x24f3 004014 fetch 3 ,mem_tx_fifo3 
+0x24f4 004015 nsetflag blank ,wake_lock_ble_tx ,rega 
+0x24f5 004016 fetch util_fifo_len ,mem_ipc_fifo_bt2c51 
+0x24f6 004017 nsetflag blank ,wake_lock_ipc_bt2c51 ,rega 
+0x24f7 004018 fetch util_fifo_len ,mem_ipc_fifo_c512bt 
+0x24f8 004019 nsetflag blank ,wake_lock_ipc_c512bt ,rega 
+0x24f9 004020 fetch 1 ,mem_hci_cmd 
+0x24fa 004021 nsetflag blank ,wake_lock_cmd ,rega 
+0x24fb 004022 fetch 1 ,mem_device_option 
+0x24fc 004023 compare dvc_op_module ,pdata ,0xff 
+0x24fd 004024 call lpm_uart_wake_lock ,true 
+0x24fe 004025 copy rega ,pdata 
+0x24ff 004026 store 2 ,mem_lpm_wake_lock 
+0x2500 004027 rtn 
+:      004029 lpm_uart_wake_lock:
+0x2501 004030 fetch 2 ,core_uart_rxitems 
+0x2502 004031 nsetflag blank ,wake_lock_uart_rx ,rega 
+0x2503 004032 fetch 2 ,core_uart_txitems 
+0x2504 004033 nsetflag blank ,wake_lock_uart_tx ,rega 
+0x2505 004034 rtn 
+:      004043 le_init_conn:
+0x2506 004044 bpatchx patch21_6 ,mem_patch21 
+0x2507 004045 disable wake 
+0x2508 004046 jam 1 ,mem_le_conn_handle 
+0x2509 004047 jam 3 ,mem_le_state 
+0x250a 004048 jam 1 ,mem_le_arq 
+0x250b 004049 setarg -1 
+0x250c 004050 store 2 ,mem_le_event_count 
+0x250d 004051 force 0 ,pdata 
+0x250e 004052 store 1 ,mem_le_ch 
+0x250f 004053 store 1 ,mem_le_op 
+0x2510 004054 store 3 ,mem_sniff_rcv 
+0x2511 004055 store 3 ,mem_sniff_lost 
+0x2512 004056 call le_clear_enc 
+0x2513 004057 jam 1 ,mem_le_txheader 
+0x2514 004058 jam 0 ,mem_le_txlen 
+0x2515 004059 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
+0x2516 004060 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
+0x2517 004061 jam 0 ,mem_le_l2cap_att_states 
+0x2518 004062 branch le_supervision_flush 
+:      004064 le_init_master:
+0x2519 004065 bpatchx patch21_7 ,mem_patch21 
+0x251a 004066 enable master 
+0x251b 004067 jam lemode_master ,mem_le_mode 
+0x251c 004068 jam 1 ,mem_le_att_handle 
+0x251d 004069 jam 1 ,mem_le_search_handle_start 
+0x251e 004070 setarg 0xffff 
+0x251f 004071 store 2 ,mem_le_search_handle_end 
+0x2520 004072 force 0 ,pdata 
+0x2521 004073 store 5 ,mem_ccm_pcnt_rx 
+0x2522 004074 set1 le_ccm_directionbit ,pdata 
+0x2523 004075 store 5 ,mem_ccm_pcnt_tx 
+0x2524 004076 branch le_init_conn 
+:      004079 le_init_slave:
+0x2525 004080 bpatchx patch22_0 ,mem_patch22 
+0x2526 004081 disable master 
+0x2527 004082 setarg 0x17 
+0x2528 004083 store 2 ,mem_le_remote_mtu 
+0x2529 004084 increase 4 ,pdata 
+0x252a 004085 store 2 ,mem_remote_rx_max_octets 
+0x252b 004086 jam lemode_slave ,mem_le_mode 
+0x252c 004087 jam 0 ,mem_le_adv_enable 
+0x252d 004088 jam 0 ,mem_lpm_current_mult 
+0x252e 004089 call le_clear_pairing_state 
+0x252f 004090 fetch 2 ,mem_le_superto 
+0x2530 004091 store 2 ,mem_le_init_superto 
+0x2531 004092 fetch 2 ,mem_le_tsniff 
+0x2532 004093 mul32 pdata ,5 ,pdata 
+0x2533 004094 rshift4 pdata ,pdata 
+0x2534 004095 store 2 ,mem_le_superto 
+0x2535 004096 branch le_init_conn 
+:      004103 le_conn_dispatch:
+0x2536 004104 bpatchx patch22_1 ,mem_patch22 
+0x2537 004105 call le_enable 
+0x2538 004106 fetch 1 ,mem_le_state 
+0x2539 004107 isolate1 lestate_encryption ,pdata 
+0x253a 004108 setflag true ,mark_ble_encryption ,mark 
+0x253b 004109 call app_process_ble 
+0x253c 004110 fetch 1 ,mem_le_mode 
+0x253d 004111 bbit1 mode_master ,le_master_dispatch 
+0x253e 004112 branch le_slave_dispatch 
+:      004118 le_master_dispatch:
+0x253f 004119 bpatchx patch22_2 ,mem_patch22 
+0x2540 004120 enable master 
+0x2541 004121 call le_supervision_update 
+0x2542 004122 branch le_master_disconn ,positive 
+0x2543 004123 call le_setup 
+0x2544 004124 call le_prepare_tx 
+0x2545 004125 disable match 
+0x2546 004126 call le_transmit_receive_sifs 
+0x2547 004127 nrtn match 
+0x2548 004128 fetch 1 ,mem_le_conn_rcv 
+0x2549 004129 increase 1 ,pdata 
+0x254a 004130 store 1 ,mem_le_conn_rcv 
+0x254b 004131 call le_acknowledge 
+0x254c 004132 disable master 
+0x254d 004133 rtn 
+:      004135 le_master_disconn:
+0x254e 004136 call le_disconnect 
+0x254f 004137 disable master 
+0x2550 004138 rtn 
+:      004143 le_slave_dispatch:
+0x2551 004144 bpatchx patch22_3 ,mem_patch22 
+0x2552 004145 jam 0 ,mem_le_md_count 
+0x2553 004146 set0 mark_ble_crc_fail ,mark 
+0x2554 004147 call sp_calc_sequence_256 
+0x2555 004148 call le_secure_connect_sm 
+0x2556 004149 disable attempt 
+0x2557 004150 call le_supervision_update 
+0x2558 004151 branch le_slave_disconn ,positive 
+0x2559 004152 fetch 1 ,mem_le_rx_phy 
+0x255a 004153 call le_enable_phy_by_pdata 
+0x255b 004154 call le_setup 
+0x255c 004155 call le_receive_slave 
+0x255d 004156 nbranch le_slave_unsync ,sync 
+0x255e 004157 call le_got_first_packet 
+0x255f 004158 branch le_slave_match ,match 
+0x2560 004159 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
+0x2561 004160 branch le_slave_cont 
+:      004163 le_slave_crc_fail:
+:      004164 le_slave_match:
+0x2562 004165 bpatchx patch22_4 ,mem_patch22 
+0x2563 004166 fetch 1 ,mem_le_md_count 
+0x2564 004167 pincrease 1 
+0x2565 004168 store 1 ,mem_le_md_count 
+0x2566 004169 beq le_md_max_count ,le_slave_cont 
+0x2567 004170 call le_acknowledge 
+0x2568 004171 call le_prepare_tx 
+0x2569 004172 fetch 1 ,mem_le_tx_phy 
+0x256a 004173 call le_enable_phy_by_pdata 
+0x256b 004174 call le_transmit 
+0x256c 004175 call le_parse 
+0x256d 004176 fetch 2 ,mem_cb_ble_transmit 
+0x256e 004177 call callback_func 
+0x256f 004178 call le_check_md 
+0x2570 004179 branch le_slave_more_data ,user 
+:      004180 le_slave_cont:
+0x2571 004181 bpatchx patch22_5 ,mem_patch22 
+0x2572 004182 call le_pairing_sm 
+0x2573 004183 call le_check_paring_time 
+0x2574 004184 call check_51cmd 
+0x2575 004185 fetch 1 ,mem_le_op 
+0x2576 004186 bbit1 op_disconn ,le_slave_disconn 
+:      004187 le_slave_unsync:
+0x2577 004188 bpatchx patch22_6 ,mem_patch22 
+0x2578 004189 call end_of_packet 
+0x2579 004190 call le_lpm_set_mult 
+0x257a 004191 branch calc_clke_offset 
+:      004194 le_check_md:
+0x257b 004195 disable user 
+0x257c 004196 bmark1 mark_ble_rx_md ,enable_user 
+0x257d 004197 bmark1 mark_ble_tx_md ,enable_user 
+0x257e 004198 bmark1 mark_ble_crc_fail ,enable_user 
+0x257f 004199 rtn 
+:      004202 le_slave_more_data:
+0x2580 004203 bpatchx patch22_7 ,mem_patch22 
+0x2581 004204 enable attempt 
+0x2582 004205 call le_transmit_receive_sifs_notx 
+0x2583 004206 branch le_slave_match ,match 
+0x2584 004207 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
+0x2585 004208 branch le_slave_cont 
+:      004210 le_slave_disconn:
+:      004212 le_disconnect:
+0x2586 004213 bpatchx patch23_0 ,mem_patch23 
+0x2587 004214 call le_clear_connection_info 
+0x2588 004215 call app_disconn_reason_collect_ble 
+0x2589 004216 call le_clear_pairing_state 
+0x258a 004217 call le_sc_state_clear 
+0x258b 004218 jam bt_evt_le_disconnected ,mem_fifo_temp 
+0x258c 004219 branch ui_ipc_send_event 
+:      004221 le_clear_connection_info:
+0x258d 004222 arg mem_used_map ,contw 
+0x258e 004223 call memset0_16 
+0x258f 004224 jam 0 ,mem_le_conn_handle 
+0x2590 004225 jam lemode_idle ,mem_le_mode 
+0x2591 004226 jam 0 ,mem_le_state 
+:      004227 le_clear_pairing_state:
+0x2592 004228 bpatchx patch23_1 ,mem_patch23 
+0x2593 004229 jam flag_le_enc_null ,mem_le_enc_state 
+0x2594 004230 jam flag_le_pairing_null ,mem_le_pairing_state 
+0x2595 004231 call sp_clear_flags 
+0x2596 004232 rtn 
+:      004234 le_got_first_packet:
+0x2597 004235 bpatchx patch23_2 ,mem_patch23 
+0x2598 004236 fetch 1 ,mem_le_conn_rcv 
+0x2599 004237 increase 1 ,pdata 
+0x259a 004238 store 1 ,mem_le_conn_rcv 
+0x259b 004239 fetch 1 ,mem_le_state 
+0x259c 004240 rtnbit1 lestate_got_first_packet 
+0x259d 004241 set1 lestate_got_first_packet ,pdata 
+0x259e 004242 store 1 ,mem_le_state 
+0x259f 004243 fetch 2 ,mem_le_init_superto 
+0x25a0 004244 store 2 ,mem_le_superto 
+0x25a1 004245 setarg 0 
+0x25a2 004246 store 4 ,mem_le_transmit_window 
+0x25a3 004247 rtn 
+:      004255 le_enable_phy_by_pdata:
+0x25a4 004256 copy pdata ,temp 
+0x25a5 004257 bpatchx patch23_3 ,mem_patch23 
+:      004258 le_enable_phy_by_pdata1:
+0x25a6 004259 copy temp ,pdata 
+0x25a7 004260 bbit1 bit_le_1m_phy ,le_enable 
+0x25a8 004261 bbit1 bit_le_2m_phy ,le_enable_2m 
+0x25a9 004262 bbit0 bit_le_coded_phy ,le_enable 
+0x25aa 004263 bbit1 bit_le_coded_phy_s8 ,le_enable_coded_s8 
+0x25ab 004264 bbit1 bit_le_coded_phy_s2 ,le_enable_coded_s2 
+0x25ac 004265 branch le_enable 
+:      004267 le_enable_2m:
+0x25ad 004268 set0 mark_ble_lr ,mark 
+0x25ae 004269 set1 mark_ble_2m ,mark 
+0x25af 004270 rtn 
+:      004272 le_enable_coded_s2:
+:      004273 le_enable_coded:
+0x25b0 004274 set0 mark_ble_2m ,mark 
+0x25b1 004275 set1 mark_ble_lr ,mark 
+0x25b2 004276 set0 mark_ble_lr_s8 ,mark 
+0x25b3 004277 rtn 
+:      004280 le_enable_coded_s8:
+0x25b4 004281 set0 mark_ble_2m ,mark 
+0x25b5 004282 set1 mark_ble_lr ,mark 
+0x25b6 004283 set1 mark_ble_lr_s8 ,mark 
+0x25b7 004284 rtn 
+:      004286 le_enable:
+0x25b8 004287 bpatchx patch23_4 ,mem_patch23 
+0x25b9 004288 set0 mark_ble_2m ,mark 
+0x25ba 004289 set0 mark_ble_lr ,mark 
+0x25bb 004290 rtn 
+:      004293 le_disable:
+0x25bc 004294 bpatchx patch23_5 ,mem_patch23 
+0x25bd 004295 set0 mark_ble_encryption ,mark 
+0x25be 004296 jam 0x01 ,0x8901 
+0x25bf 004297 jam 0x80 ,0x8920 
+0x25c0 004298 jam 0x03 ,0x8930 
+0x25c1 004299 rtn 
+:      004301 le_prep:
+0x25c2 004302 bpatchx patch23_6 ,mem_patch23 
+0x25c3 004303 disable enable_crc 
+0x25c4 004304 disable enable_white 
+0x25c5 004305 fetch 3 ,mem_le_crcinit 
+0x25c6 004306 iforce crc24_init 
+0x25c7 004307 fetch 1 ,mem_le_ch_mapped 
+:      004308 le_prep_next:
+0x25c8 004309 reverse pdata ,temp 
+0x25c9 004310 set1 1 ,temp 
+0x25ca 004311 rshift temp ,white_init 
+0x25cb 004312 rtn 
+:      004315 le_rx_setfreq:
+0x25cc 004316 call le_setfreq 
+:      004317 le_rf_rx_enable:
+0x25cd 004318 call set_freq_rx 
+0x25ce 004319 fetch 2 ,mem_param_pll_setup 
+0x25cf 004320 call sleep 
+0x25d0 004321 branch rf_rx_enable 
+:      004323 le_tx_setfreq:
+0x25d1 004324 branch txon ,match 
+0x25d2 004325 bmark1 mark_ble_crc_fail ,txon 
+:      004326 le_tx_setfreq0:
+0x25d3 004327 call le_setfreq 
+0x25d4 004328 branch set_freq_tx 
+:      004330 le_setfreq:
+0x25d5 004331 bpatchx patch23_7 ,mem_patch23 
+0x25d6 004332 call set_sync_on 
+0x25d7 004333 fetch 1 ,mem_le_testtype 
+0x25d8 004334 nbranch le_ctf_test ,blank 
+0x25d9 004335 fetch 1 ,mem_le_ch_mapped 
+0x25da 004336 sub pdata ,36 ,null 
+0x25db 004337 branch le_ctf_normal ,positive 
+0x25dc 004338 force 0 ,temp 
+0x25dd 004339 rtneq 37 
+0x25de 004340 force 24 ,temp 
+0x25df 004341 rtneq 38 
+0x25e0 004342 force 78 ,temp 
+0x25e1 004343 rtn 
+:      004345 le_ctf_normal:
+0x25e2 004346 sub pdata ,10 ,null 
+0x25e3 004347 branch le_ctf_low ,positive 
+0x25e4 004348 increase 1 ,pdata 
+:      004350 le_ctf_low:
+0x25e5 004351 lshift pdata ,pdata 
+0x25e6 004352 add pdata ,2 ,temp 
+0x25e7 004353 rtn 
+:      004355 le_ctf_test:
+0x25e8 004356 fetch 1 ,mem_le_ch_mapped 
+0x25e9 004357 lshift pdata ,temp 
+0x25ea 004358 rtn 
+:      004360 le_sca_map:
+0x25eb 004361 arg 500 ,temp 
+0x25ec 004362 rtn blank 
+0x25ed 004363 arg 250 ,temp 
+0x25ee 004364 rtneq 1 
+0x25ef 004365 arg 150 ,temp 
+0x25f0 004366 rtneq 2 
+0x25f1 004367 arg 100 ,temp 
+0x25f2 004368 rtneq 3 
+0x25f3 004369 arg 75 ,temp 
+0x25f4 004370 rtneq 4 
+0x25f5 004371 arg 50 ,temp 
+0x25f6 004372 rtneq 5 
+0x25f7 004373 arg 40 ,temp 
+0x25f8 004374 rtneq 6 
+0x25f9 004375 arg 20 ,temp 
+0x25fa 004376 rtn 
+:      004380 le_setup:
+0x25fb 004381 bpatchx patch24_0 ,mem_patch24 
+0x25fc 004382 enable swfine 
+0x25fd 004383 fetch 4 ,mem_le_access 
+0x25fe 004384 iforce access 
+0x25ff 004385 call le_map_channel 
+0x2600 004386 setarg 0x200 
+0x2601 004387 branch le_setup_master ,master 
+0x2602 004388 fetch 2 ,mem_le_receive_window 
+0x2603 004389 rshift pdata ,pdata 
+:      004390 le_setup_master:
+0x2604 004391 fetcht 2 ,mem_param_pll_setup 
+0x2605 004392 iadd temp ,pdata 
+0x2606 004393 call ahead_window 
+0x2607 004394 deposit clke 
+0x2608 004395 rtn 
+:      004398 le_context_nextevent:
+0x2609 004399 bpatchx patch24_1 ,mem_patch24 
+0x260a 004400 call push_stack_rega_b_c 
+0x260b 004401 storer loopcnt ,2 ,mem_loopcnt 
+0x260c 004402 add rega ,coffset_mode ,contr 
+0x260d 004403 ifetch 1 ,contr 
+0x260e 004404 rtnbit0 mode_le 
+0x260f 004405 add rega ,coffset_le_event_cnt ,contw 
+0x2610 004406 ifetch 2 ,contw 
+0x2611 004407 increase 1 ,pdata 
+0x2612 004408 istore 2 ,contw 
+0x2613 004409 call le_update_param 
+0x2614 004410 call le_update_channel_map 
+0x2615 004411 call le_update_phy 
+0x2616 004412 call le_context_nexthop 
+0x2617 004413 call pop_stack_rega_b_c 
+0x2618 004414 fetchr loopcnt ,2 ,mem_loopcnt 
+0x2619 004415 rtn 
+:      004417 le_context_nexthop:
+0x261a 004418 add rega ,coffset_le_hop ,contr 
+0x261b 004419 ifetch 1 ,contr 
+0x261c 004420 add rega ,coffset_le_ch ,contw 
+0x261d 004421 ifetcht 1 ,contw 
+0x261e 004422 iadd temp ,pdata 
+0x261f 004423 sub pdata ,36 ,null 
+0x2620 004424 branch le_nexthop_nowrap ,positive 
+0x2621 004425 increase -37 ,pdata 
+:      004426 le_nexthop_nowrap:
+0x2622 004427 istore 1 ,contw 
+0x2623 004428 rtn 
+:      004431 le_calc_channel_map:
+0x2624 004432 add rega ,coffset_le_channel_map ,contr 
+0x2625 004433 ifetch 5 ,contr 
+0x2626 004434 force 0 ,temp 
+0x2627 004435 force 37 ,loopcnt 
+:      004436 le_count_channels_loop:
+0x2628 004437 bbit0 0 ,le_count_channels_notused 
+0x2629 004438 increase 1 ,temp 
+:      004439 le_count_channels_notused:
+0x262a 004440 rshift pdata ,pdata 
+0x262b 004441 loop le_count_channels_loop 
+0x262c 004442 add temp ,-1 ,pdata 
+0x262d 004443 add rega ,coffset_le_channels ,contw 
+0x262e 004444 istore 1 ,contw 
+0x262f 004445 rtn 
+:      004447 le_map_channel:
+0x2630 004448 bpatchx patch24_2 ,mem_patch24 
+0x2631 004449 fetch 1 ,mem_le_ch 
+0x2632 004450 iforce queue 
+0x2633 004451 fetcht 5 ,mem_le_channel_map 
+0x2634 004452 qisolate1 temp 
+0x2635 004453 branch le_map_channel_end ,true 
+:      004454 le_map_channel_next:
+0x2636 004455 fetch 1 ,mem_le_channels 
+0x2637 004456 isub queue ,pdata 
+0x2638 004457 branch le_map_channel_cont ,positive 
+0x2639 004458 sub pdata ,-1 ,queue 
+0x263a 004459 branch le_map_channel_next 
+:      004460 le_map_channel_cont:
+0x263b 004461 copy queue ,loopcnt 
+0x263c 004462 force 0 ,queue 
+:      004463 le_map_channel_loop:
+0x263d 004464 qisolate1 temp 
+0x263e 004465 branch le_map_channel_skip ,true 
+0x263f 004466 increase 1 ,loopcnt 
+:      004467 le_map_channel_skip:
+0x2640 004468 deposit loopcnt 
+0x2641 004469 branch le_map_channel_end ,blank 
+0x2642 004470 increase 1 ,queue 
+0x2643 004471 increase -1 ,loopcnt 
+0x2644 004472 branch le_map_channel_loop 
+:      004473 le_map_channel_end:
+0x2645 004474 deposit queue 
+0x2646 004475 store 1 ,mem_le_ch_mapped 
+0x2647 004476 rtn 
+:      004479 le_wait_tx:
+0x2648 004480 branch le_wait_master ,master 
+0x2649 004481 until null ,timeout 
+0x264a 004482 rtn 
+:      004484 le_wait_master:
+0x264b 004485 arg 0xea0 ,timeup 
+0x264c 004486 until clkn_rt ,meet 
+0x264d 004487 rtn 
+:      004489 le_receive_adv:
+0x264e 004490 disable swfine 
+0x264f 004491 fetch 2 ,mem_le_scan_window 
+0x2650 004492 copy pdata ,timeup 
+0x2651 004493 branch le_receive_packet 
+:      004496 le_receive_slave:
+0x2652 004497 bpatchx patch24_3 ,mem_patch24 
+0x2653 004498 call le_dec_init 
+0x2654 004499 enable swfine 
+0x2655 004500 fetch 2 ,mem_le_receive_window 
+0x2656 004501 fetcht 4 ,mem_le_transmit_window 
+0x2657 004502 iadd temp ,timeup 
+:      004503 le_receive_packet:
+0x2658 004504 call le_rx_setfreq 
+:      004505 le_receive_rxon:
+0x2659 004506 bpatchx patch24_4 ,mem_patch24 
+0x265a 004507 call le_prep 
+0x265b 004508 bmark0 mark_ble_lr ,le_receive_nolr 
+0x265c 004509 pulse dewhiten_code_calc 
+0x265d 004510 nop 30 
+0x265e 004511 call le_prep 
+0x265f 004512 lshift3 timeup ,timeup 
+:      004513 le_receive_nolr:
+0x2660 004514 disable match 
+0x2661 004515 enable decode_fec0 
+0x2662 004516 enable is_rx 
+0x2663 004517 disable is_tx 
+0x2664 004518 copy timeup ,stop_watch 
+0x2665 004519 correlate null ,timeout 
+0x2666 004520 branch le_receive_on_attempt ,attempt 
+0x2667 004521 copy clke ,temp 
+0x2668 004522 storet 6 ,mem_sync_clke 
+:      004523 le_receive_on_attempt:
+0x2669 004524 nbranch le_unsync_end ,sync 
+0x266a 004525 enable swfine 
+0x266b 004526 fetch 1 ,mem_le_tx_ifs_defference 
+0x266c 004527 arg param_20ms_init ,temp 
+0x266d 004528 iadd temp ,temp 
+0x266e 004529 fetch 1 ,mem_system_clk 
+0x266f 004530 imul32 temp ,stop_watch 
+0x2670 004531 call rf_debug_rx_sync_line 
+0x2671 004532 branch le_receive_skip ,attempt 
+0x2672 004533 call calc_clke_all_modem 
+0x2673 004534 fetch 1 ,mem_le_state 
+0x2674 004535 bbit0 lestate_got_first_packet ,le_receive_skip 
+0x2675 004536 fetcht 6 ,mem_sync_clke 
+0x2676 004537 call lpm_adjust_clk ,wake 
+:      004538 le_receive_skip:
+0x2677 004539 call save_rssi 
+0x2678 004540 enable enable_white 
+0x2679 004541 enable enable_crc 
+0x267a 004542 parse demod ,bucket ,8 
+0x267b 004543 rshift3 pwindow ,pdata 
+0x267c 004544 store 1 ,mem_le_rxbuf_data_header 
+0x267d 004545 parse demod ,bucket ,8 
+0x267e 004546 rshift3 pwindow ,pdata 
+0x267f 004547 store 1 ,mem_le_rxbuf_data_length 
+0x2680 004548 copy pdata ,loopcnt 
+0x2681 004549 branch le_rx_nopayload ,zero 
+0x2682 004551 bmark1 mark_ble_encryption ,le_rx_dec 
+:      004553 le_rx_loop:
+0x2683 004554 parse demod ,bucket ,8 
+0x2684 004555 rshift3 pwindow ,pdata 
+0x2685 004556 istore 1 ,contw 
+0x2686 004557 loop le_rx_loop 
+0x2687 004558 branch le_rx_nopayload 
+:      004560 le_rx_dec:
+0x2688 004561 copy contw ,regb 
+0x2689 004562 bpatchx patch24_5 ,mem_patch24 
+0x268a 004563 call le_check_retransmit 
+0x268b 004565 fetchr rega ,1 ,mem_le_rxbuf_data_length 
+0x268c 004566 increase -4 ,rega 
+0x268d 004567 nbranch le_mic_error ,positive 
+0x268e 004569 call le_dec_start 
+0x268f 004570 copy regb ,contw 
+0x2690 004571 arg 0 ,temp 
+0x2691 004572 fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+0x2692 004573 increase -4 ,loopcnt 
+0x2693 004574 branch le_rx_dec_loop_end ,zero 
+:      004575 le_rx_dec_loop:
+0x2694 004577 parse demod ,bucket ,8 
+0x2695 004578 rshift3 pwindow ,pdata 
+0x2696 004579 istore 1 ,contw 
+0x2697 004580 increase 1 ,temp 
+0x2698 004581 and temp ,0xf ,null 
+0x2699 004582 call le_dec ,zero 
+0x269a 004583 loop le_rx_dec_loop 
+:      004584 le_rx_dec_loop_end:
+0x269b 004585 call le_dec_end 
+0x269c 004586 copy regb ,contw 
+:      004589 le_rx_nopayload:
+0x269d 004590 bpatchx patch24_6 ,mem_patch24 
+0x269e 004591 parse demod ,bucket ,24 
+0x269f 004592 rshift32 pdata ,pdata 
+0x26a0 004593 rshift16 pdata ,pdata 
+0x26a1 004594 istore 3 ,contw 
+0x26a2 004595 enable swfine 
+0x26a3 004596 call le_set_until_tx_timer 
+0x26a4 004597 branch le_crc_fail ,crc_failed 
+0x26a5 004598 bmark0 mark_ble_encryption ,le_rx_match 
+0x26a6 004599 fetch 1 ,mem_le_rxbuf_data_length 
+0x26a7 004600 branch le_rx_match ,blank 
+0x26a8 004601 increase -4 ,pdata 
+0x26a9 004602 store 1 ,mem_le_rxbuf_data_length 
+0x26aa 004603 call wait_ccm_done 
+0x26ab 004604 fetch 1 ,core_misc_status 
+0x26ac 004605 bbit0 7 ,le_mic_error 
+0x26ad 004606 force regidx_result ,regext_index 
+0x26ae 004607 storer regext ,4 ,mem_le_peer_mic 
+:      004608 le_rx_match:
+0x26af 004609 call rf_debug_rx_crc_line 
+0x26b0 004610 enable match 
+0x26b1 004611 set0 mark_ble_crc_fail ,mark 
+:      004612 le_crc_fail_tx:
+0x26b2 004613 bpatchx patch24_7 ,mem_patch24 
+0x26b3 004614 call ccm_ctrl_clr 
+0x26b4 004615 fetch 1 ,mem_le_rx_phy 
+0x26b5 004616 nsetflag ble_coded_info ,bit_le_coded_phy_s8 ,pdata 
+0x26b6 004617 store 1 ,mem_le_rx_phy 
+0x26b7 004618 call le_match_set_sync_on 
+0x26b8 004619 branch le_match_set_txfreq 
+:      004621 le_match_set_sync_on:
+0x26b9 004622 disable decode_fec0 
+0x26ba 004623 branch set_sync_on 
+:      004625 le_match_set_txfreq:
+0x26bb 004626 bpatchx patch25_0 ,mem_patch25 
+0x26bc 004627 fetcht 1 ,mem_last_freq 
+0x26bd 004628 branch set_freq_tx_int 
+:      004631 le_dec_init:
+0x26be 004632 rtnmark0 mark_ble_encryption 
+0x26bf 004633 call load_sk 
+0x26c0 004634 force regidx_result ,regext_index 
+0x26c1 004635 call aes_clear 
+0x26c2 004636 branch aes_clear_data 
+:      004639 le_dec_start:
+0x26c3 004640 bpatchx patch25_1 ,mem_patch25 
+0x26c4 004641 jam 0 ,core_ccm_aad0 
+0x26c5 004642 jam 1 ,core_ccm_aad1 
+0x26c6 004643 fetch 1 ,mem_le_rxbuf_data_header 
+0x26c7 004644 and_into 0x3 ,pdata 
+0x26c8 004645 store 1 ,core_ccm_aad2 
+0x26c9 004647 setarg mem_le_rxbuf_data_payload 
+0x26ca 004648 store 2 ,core_ccm_input_playload_addr 
+0x26cb 004649 store 2 ,core_ccm_output_playload_addr 
+0x26cc 004651 fetchr rega ,1 ,mem_le_rxbuf_data_length 
+0x26cd 004652 increase -4 ,rega 
+0x26ce 004654 fetcht 5 ,mem_ccm_pcnt_rx 
+0x26cf 004655 isolate1 mark_old_packet ,mark 
+0x26d0 004656 call le_pcnt_rx_sub1 ,true 
+0x26d1 004657 call ccm_b0 
+0x26d2 004658 setarg 0 
+0x26d3 004659 store 2 ,core_ccm_inptr 
+0x26d4 004660 jam 6 ,core_ccm_ctrl 
+0x26d5 004661 jam 7 ,core_ccm_ctrl 
+0x26d6 004662 rtn 
+:      004664 le_pcnt_rx_sub1:
+0x26d7 004665 sub temp ,0 ,null 
+0x26d8 004666 branch le_pcnt_rx_sub1_0 ,zero 
+0x26d9 004667 increase -1 ,temp 
+0x26da 004668 set1 le_ccm_directionbit ,temp 
+0x26db 004669 rtn 
+:      004671 le_pcnt_rx_sub1_0:
+0x26dc 004672 setarg 0xffffff 
+0x26dd 004673 lshift16 pdata ,pdata 
+0x26de 004674 arg 0xffff ,temp 
+0x26df 004675 ior temp ,temp 
+0x26e0 004676 rtn 
+:      004678 le_dec:
+0x26e1 004679 copy contw ,regb 
+0x26e2 004680 fetch 1 ,mem_le_rxbuf_data_length 
+0x26e3 004681 increase -4 ,pdata 
+0x26e4 004682 isub temp ,null 
+0x26e5 004683 rtn zero 
+0x26e6 004684 storet 2 ,core_ccm_inptr 
+0x26e7 004685 copy regb ,contw 
+0x26e8 004686 rtn 
+:      004688 le_dec_end:
+0x26e9 004689 parse demod ,bucket ,32 
+0x26ea 004690 rshift32 pdata ,pdata 
+0x26eb 004691 rshift8 pdata ,pdata 
+0x26ec 004692 istore 4 ,contw 
+0x26ed 004693 copy contw ,regb 
+0x26ee 004695 force regidx_data ,regext_index 
+0x26ef 004696 copy pdata ,regext 
+0x26f0 004697 storet 2 ,core_ccm_inptr 
+0x26f1 004698 rtn 
+:      004700 le_mic_error:
+0x26f2 004701 branch le_end_of_packet 
+:      004703 le_retransmit_end_of_packet:
+0x26f3 004704 call le_set_until_tx_timer 
+0x26f4 004705 call end_of_packet 
+0x26f5 004706 branch le_rx_match 
+:      004708 le_crc_fail:
+0x26f6 004709 call rf_debug_rx_crc_fail_line 
+0x26f7 004710 bmark1 mark_ble_crc_fail ,le_crc_fail_consecutive 
+0x26f8 004711 set1 mark_ble_crc_fail ,mark 
+0x26f9 004712 branch le_crc_fail_tx 
+:      004714 le_unsync_end:
+:      004715 le_crc_fail_consecutive:
+0x26fa 004716 set0 mark_ble_crc_fail ,mark 
+0x26fb 004717 branch le_end_of_packet 
+:      004719 le_end_of_packet:
+0x26fc 004720 bpatchx patch25_2 ,mem_patch25 
+0x26fd 004721 call ccm_ctrl_clr 
+0x26fe 004722 branch end_of_packet 
+:      004724 calc_clke_all_modem:
+0x26ff 004725 bmark1 mark_ble_lr ,calc_clke_modem_coded 
+0x2700 004726 bmark1 mark_ble_2m ,calc_clke_modem_2m 
+0x2701 004727 fetch 2 ,mem_param_clke_cal_le_1m 
+0x2702 004728 copy pdata ,clke_rt 
+0x2703 004729 copy bt_clk ,clke_bt 
+0x2704 004730 rtn 
+:      004733 calc_clke_modem_coded:
+0x2705 004734 fetch 2 ,mem_param_clke_cal_le_coded 
+0x2706 004735 copy pdata ,clke_rt 
+0x2707 004736 add bt_clk ,1 ,clke_bt 
+0x2708 004737 rtn 
+:      004739 calc_clke_modem_2m:
+0x2709 004740 fetch 2 ,mem_param_clke_cal_le_2m 
+0x270a 004741 copy pdata ,clke_rt 
+0x270b 004742 copy bt_clk ,clke_bt 
+0x270c 004743 rtn 
+:      004746 le_set_until_tx_timer:
+0x270d 004747 fetch 1 ,mem_le_rxbuf_data_length 
+0x270e 004748 add pdata ,5 ,temp 
+0x270f 004749 lshift3 temp ,temp 
+0x2710 004750 fetch 1 ,mem_le_rx_phy 
+0x2711 004751 bmark1 mark_ble_lr ,le_set_until_tx_timer_rx_lr 
+0x2712 004752 bbit1 bit_le_1m_phy ,le_set_until_tx_timer_rx_1m 
+0x2713 004753 bbit1 bit_le_2m_phy ,le_set_until_tx_timer_rx_2m 
+:      004754 le_set_until_tx_timer_rx_lr:
+0x2714 004755 branch le_set_until_tx_timer_rx_coded_s2 ,ble_coded_info 
+0x2715 004756 branch le_set_until_tx_timer_rx_coded_s8 
+:      004758 le_set_until_tx_timer_rx_1m:
+0x2716 004759 branch le_calc_stop_watch 
+:      004761 le_set_until_tx_timer_rx_2m:
+0x2717 004762 rshift temp ,temp 
+0x2718 004763 branch le_calc_stop_watch 
+:      004765 le_set_until_tx_timer_rx_coded_s2:
+0x2719 004766 add temp ,3 ,temp 
+0x271a 004767 lshift temp ,temp 
+0x271b 004768 branch le_set_until_tx_timer_rx_coded 
+:      004770 le_set_until_tx_timer_rx_coded_s8:
+0x271c 004771 add temp ,3 ,temp 
+0x271d 004772 lshift3 temp ,temp 
+:      004773 le_set_until_tx_timer_rx_coded:
+0x271e 004774 setarg param_coded_c1_term1_time_40us 
+0x271f 004775 iadd temp ,temp 
+0x2720 004776 branch le_calc_stop_watch 
+:      004778 le_calc_stop_watch:
+0x2721 004779 fetch 1 ,mem_system_clk 
+0x2722 004780 imul32 temp ,temp 
+0x2723 004781 arg param_20ms_init ,rega 
+0x2724 004782 imul32 rega ,pdata 
+0x2725 004783 isub temp ,temp 
+0x2726 004784 copy stop_watch ,pdata 
+0x2727 004785 isub temp ,stop_watch 
+0x2728 004786 rtn 
+:      004788 le_transmit_receive_sifs_without_change_mode:
+0x2729 004789 call le_transmit 
+0x272a 004790 fetcht 1 ,mem_last_freq 
+0x272b 004791 call set_freq_rx 
+0x272c 004792 call rf_rx_enable 
+0x272d 004793 enable swfine 
+0x272e 004794 arg 5500 ,timeup 
+0x272f 004795 branch le_receive_rxon 
+:      004798 le_transmit_receive_sifs:
+0x2730 004799 bpatchx patch25_3 ,mem_patch25 
+0x2731 004800 fetch 1 ,mem_le_tx_phy 
+0x2732 004801 call le_enable_phy_by_pdata 
+0x2733 004802 call le_transmit 
+:      004803 le_transmit_receive_sifs_notx:
+0x2734 004804 fetch 1 ,mem_le_rx_phy 
+0x2735 004805 call le_enable_phy_by_pdata 
+0x2736 004807 fetcht 1 ,mem_last_freq 
+0x2737 004808 call set_freq_rx 
+0x2738 004809 call rf_rx_enable 
+0x2739 004810 enable swfine 
+0x273a 004811 arg 5500 ,timeup 
+0x273b 004812 bmark0 mark_ble_lr ,le_receive_rxon 
+0x273c 004813 arg 8500 ,timeup 
+0x273d 004814 branch le_receive_rxon 
+:      004816 le_transmit_norx:
+0x273e 004817 bpatchx patch25_4 ,mem_patch25 
+0x273f 004818 call le_transmit 
+0x2740 004819 branch end_of_packet 
+:      004821 le_transmit:
+0x2741 004822 bpatchx patch25_5 ,mem_patch25 
+0x2742 004823 call le_prep 
+0x2743 004824 call le_tx_setfreq 
+0x2744 004825 call rf_debug_tx_on_line 
+0x2745 004826 set1 txgfsk ,radio_ctrl 
+0x2746 004827 enable encode_fec0 
+0x2747 004828 enable is_tx 
+0x2748 004829 disable is_rx 
+0x2749 004830 call le_wait_tx 
+0x274a 004831 disable lr_s2en 
+0x274b 004832 bmark1 mark_ble_lr ,le_transmit_lr 
+0x274c 004833 bmark1 mark_ble_2m ,le_transmit_2m 
+0x274d 004834 rshift16 access ,pdata 
+0x274e 004835 rshift8 pdata ,pdata 
+0x274f 004836 rshift4 pdata ,pdata 
+0x2750 004837 inject mod ,40 
+:      004838 le_transmit_packet:
+0x2751 004839 enable enable_white 
+0x2752 004840 enable enable_crc 
+0x2753 004841 bpatchx patch25_6 ,mem_patch25 
+0x2754 004842 fetch 1 ,mem_le_txheader 
+0x2755 004843 inject mod ,8 
+0x2756 004844 ifetch 1 ,contr 
+0x2757 004845 copy pdata ,loopcnt 
+0x2758 004846 inject mod ,8 
+0x2759 004847 sub loopcnt ,0 ,null 
+0x275a 004848 branch le_tr_nopayload ,zero 
+0x275b 004850 fetch 1 ,core_ccm_ctrl 
+0x275c 004851 branch le_transmit_packet_not_enc ,blank 
+0x275d 004852 bmark1 mark_ble_encryption ,le_transmit_packet_enc 
+:      004853 le_transmit_packet_not_enc:
+0x275e 004854 arg mem_le_txpayload ,contr 
+:      004855 le_tr_loop:
+0x275f 004856 ifetch 1 ,contr 
+0x2760 004857 inject mod ,8 
+0x2761 004858 loop le_tr_loop 
+:      004860 le_tr_nopayload:
+0x2762 004861 enable enable_parity 
+0x2763 004862 inject mod ,24 
+0x2764 004863 disable enable_parity 
+0x2765 004864 bmark0 mark_ble_lr ,le_transmit_skip 
+0x2766 004865 disable enable_white 
+0x2767 004866 setarg 0 
+0x2768 004867 inject mod ,3 
+:      004868 le_transmit_skip:
+0x2769 004869 until null ,tx_clear 
+0x276a 004870 nop 100 
+0x276b 004871 bpatchx patch25_7 ,mem_patch25 
+0x276c 004872 disable encode_fec0 
+0x276d 004873 disable encode_fec3 
+0x276e 004874 call set_sync_on 
+0x276f 004875 call rf_debug_tx_off_line 
+:      004876 le_check_start_pause_enc:
+0x2770 004877 fetch 1 ,mem_le_txheader 
+0x2771 004878 and pdata ,llid_le_ll ,pdata 
+0x2772 004879 rtnne llid_le_ll 
+0x2773 004880 fetch 1 ,mem_le_enc_state 
+0x2774 004881 beq flag_le_enc_pause ,le_clear_enc 
+0x2775 004882 rtnne flag_le_send_start_enc_req 
+0x2776 004883 fetch 1 ,mem_le_txpayload 
+0x2777 004884 beq ll_start_enc_req ,le_set_enc 
+0x2778 004885 rtn 
+:      004888 le_transmit_packet_enc:
+0x2779 004889 increase -4 ,loopcnt 
+0x277a 004890 copy loopcnt ,temp 
+0x277b 004891 call ccm_wait_enc 
+0x277c 004892 arg mem_le_txpayload ,contr 
+:      004893 le_transmit_packet_enc_loop:
+0x277d 004894 ifetch 1 ,contr 
+0x277e 004895 inject mod ,8 
+0x277f 004896 loop le_transmit_packet_enc_loop 
+0x2780 004897 call ccm_check_enc_done 
+0x2781 004898 copy regext ,pdata 
+0x2782 004899 inject mod ,32 
+0x2783 004900 branch le_tr_nopayload 
+:      004902 le_transmit_lr:
+0x2784 004903 arg 10 ,loopcnt 
+:      004904 le_transmit_lr_preamble_loop:
+0x2785 004905 setarg 0x3c 
+0x2786 004906 inject mod ,8 
+0x2787 004907 loop le_transmit_lr_preamble_loop 
+0x2788 004908 disable encode_fec0 
+0x2789 004909 enable encode_fec3 
+0x278a 004910 rshift16 access ,pdata 
+0x278b 004911 rshift16 pdata ,pdata 
+0x278c 004912 rshift4 pdata ,pdata 
+0x278d 004913 inject mod ,32 
+0x278e 004914 bmark1 mark_ble_lr_s8 ,le_transmit_lr_s8 
+:      004915 le_transmit_lr_s2:
+0x278f 004916 setarg 1 
+0x2790 004917 inject mod ,5 
+0x2791 004918 enable lr_s2en 
+0x2792 004919 branch le_transmit_packet 
+:      004921 le_transmit_lr_s8:
+0x2793 004922 setarg 0 
+0x2794 004923 inject mod ,5 
+0x2795 004924 branch le_transmit_packet 
+:      004926 le_transmit_2m:
+0x2796 004927 fetch 1 ,mem_system_clk 
+0x2797 004928 fetcht 1 ,mem_le_tx2m_delay 
+0x2798 004929 iadd temp ,pdata 
+0x2799 004930 call sleep 
+0x279a 004931 rshift16 access ,pdata 
+0x279b 004932 rshift8 pdata ,pdata 
+0x279c 004933 rshift4 pdata ,temp 
+0x279d 004934 copy temp ,pdata 
+0x279e 004935 inject mod ,8 
+0x279f 004936 copy temp ,pdata 
+0x27a0 004937 inject mod ,40 
+0x27a1 004938 branch le_transmit_packet 
+:      004941 le_update_param:
+0x27a2 004942 arg le_update_param_ahead1_cb ,regc 
+0x27a3 004943 arg le_update_param_cb ,regb 
+0x27a4 004944 arg lestate_update_param ,queue 
+0x27a5 004945 branch le_check_update_flag 
+:      004947 le_update_param_ahead1_cb:
+0x27a6 004948 add rega ,coffset_sniff_anchor ,contr 
+0x27a7 004949 ifetcht 4 ,contr 
+0x27a8 004950 add rega ,coffest_le_new_transmitwindowsize ,contr 
+0x27a9 004951 ifetch 1 ,contr 
+0x27aa 004952 add rega ,coffset_le_window_size ,contw 
+0x27ab 004953 istore 1 ,contw 
+0x27ac 004954 ifetch 2 ,contr 
+0x27ad 004955 lshift2 pdata ,pdata 
+0x27ae 004956 iadd temp ,timeup 
+0x27af 004957 add rega ,coffset_sniff_anchor ,contw 
+0x27b0 004958 deposit timeup 
+0x27b1 004959 istore 4 ,contw 
+0x27b2 004960 ifetch 2 ,contr 
+0x27b3 004961 lshift2 pdata ,pdata 
+0x27b4 004962 add rega ,coffset_tsniff ,contw 
+0x27b5 004963 istore 2 ,contw 
+0x27b6 004964 ifetch 2 ,contr 
+0x27b7 004965 add rega ,coffset_le_slave_latency ,contw 
+0x27b8 004966 istore 2 ,contw 
+0x27b9 004967 ifetch 2 ,contr 
+0x27ba 004968 store 2 ,mem_le_init_superto 
+0x27bb 004969 branch le_receive_window_size 
+:      004971 le_update_param_cb:
+0x27bc 004972 ifetch 1 ,rega 
+0x27bd 004973 set0 lestate_got_first_packet ,pdata 
+0x27be 004974 istore 1 ,rega 
+0x27bf 004975 storer rega ,2 ,mem_rega 
+0x27c0 004976 jam bt_evt_le_parse_conn_param_accepted ,mem_fifo_temp 
+0x27c1 004977 call ui_ipc_send_event 
+0x27c2 004978 fetchr rega ,2 ,mem_rega 
+0x27c3 004979 rtn 
+:      004981 le_update_channel_map:
+0x27c4 004982 arg 0 ,regc 
+0x27c5 004983 arg le_update_channel_map_cb ,regb 
+0x27c6 004984 arg lestate_update_map ,queue 
+0x27c7 004985 branch le_check_update_flag 
+:      004987 le_update_channel_map_cb:
+0x27c8 004988 add rega ,coffset_le_new_map ,contr 
+0x27c9 004989 ifetch 5 ,contr 
+0x27ca 004990 add rega ,coffset_le_channel_map ,contw 
+0x27cb 004991 istore 5 ,contw 
+0x27cc 004992 branch le_calc_channel_map 
+:      004995 le_update_phy:
+0x27cd 004996 arg 0 ,regc 
+0x27ce 004997 arg le_update_phy_cb ,regb 
+0x27cf 004998 arg lestate_update_phy ,queue 
+0x27d0 004999 branch le_check_update_flag 
+:      005001 le_update_phy_cb:
+0x27d1 005002 add rega ,coffset_le_new_m2s_phy ,contr 
+0x27d2 005003 ifetch 1 ,contr 
+0x27d3 005004 call le_update_phy_cb_m2s 
+0x27d4 005005 istore 1 ,contw 
+0x27d5 005006 add rega ,coffset_le_new_s2m_phy ,contr 
+0x27d6 005007 ifetch 1 ,contr 
+0x27d7 005008 call le_update_phy_cb_s2m 
+0x27d8 005009 istore 1 ,contw 
+0x27d9 005010 storer rega ,2 ,mem_rega 
+0x27da 005011 jam bt_evt_le_update_phy ,mem_fifo_temp 
+0x27db 005012 call ui_ipc_send_event 
+0x27dc 005013 fetchr rega ,2 ,mem_rega 
+0x27dd 005014 rtn 
+:      005016 le_update_phy_cb_m2s:
+0x27de 005017 call le_update_phy_cb_m2s_no_change ,blank 
+0x27df 005018 add rega ,coffset_le_rx_phy ,contw 
+0x27e0 005019 nrtn master 
+0x27e1 005020 fetcht 1 ,mem_le_tx_phys 
+0x27e2 005021 isolate1 bit_le_coded_phy_s8 ,temp 
+0x27e3 005022 setflag true ,bit_le_coded_phy_s8 ,pdata 
+0x27e4 005023 add rega ,coffset_le_tx_phy ,contw 
+0x27e5 005024 rtn 
+:      005026 le_update_phy_cb_m2s_no_change:
+0x27e6 005027 add rega ,coffset_le_rx_phy ,contr 
+0x27e7 005028 ifetch 1 ,contr 
+0x27e8 005029 nrtn master 
+0x27e9 005030 add rega ,coffset_le_tx_phy ,contr 
+0x27ea 005031 ifetch 1 ,contr 
+0x27eb 005032 rtn 
+:      005034 le_update_phy_cb_s2m:
+0x27ec 005035 call le_update_phy_cb_s2m_no_change ,blank 
+0x27ed 005036 fetcht 1 ,mem_le_tx_phys 
+0x27ee 005037 isolate1 bit_le_coded_phy_s8 ,temp 
+0x27ef 005038 setflag true ,bit_le_coded_phy_s8 ,pdata 
+0x27f0 005039 add rega ,coffset_le_tx_phy ,contw 
+0x27f1 005040 nrtn master 
+0x27f2 005041 set0 bit_le_coded_phy_s8 ,pdata 
+0x27f3 005042 add rega ,coffset_le_rx_phy ,contw 
+0x27f4 005043 rtn 
+:      005045 le_update_phy_cb_s2m_no_change:
+0x27f5 005046 add rega ,coffset_le_tx_phy ,contr 
+0x27f6 005047 ifetch 1 ,contr 
+0x27f7 005048 nrtn master 
+0x27f8 005049 add rega ,coffset_le_rx_phy ,contr 
+0x27f9 005050 ifetch 1 ,contr 
+0x27fa 005051 rtn 
+:      005056 le_check_update_flag:
+0x27fb 005057 bpatchx patch26_0 ,mem_patch26 
+0x27fc 005058 ifetch 1 ,rega 
+0x27fd 005059 qisolate0 pdata 
+0x27fe 005060 rtn true 
+0x27ff 005061 add rega ,coffset_le_event_cnt ,contr 
+0x2800 005062 ifetcht 2 ,contr 
+0x2801 005063 add rega ,coffset_le_instant ,contr 
+0x2802 005064 ifetch 2 ,contr 
+0x2803 005066 isub temp ,pdata 
+0x2804 005067 branch le_update ,zero 
+0x2805 005068 nbranch le_check_update_small ,positive 
+0x2806 005069 sub pdata ,1 ,null 
+0x2807 005070 branch le_update_ahead1 ,zero 
+0x2808 005071 rtn 
+:      005073 le_update_ahead1:
+0x2809 005074 copy regc ,pdata 
+0x280a 005075 branch callback_func 
+:      005077 le_update:
+0x280b 005078 ifetch 1 ,rega 
+0x280c 005079 qset0 pdata 
+0x280d 005080 istore 1 ,rega 
+0x280e 005081 copy regb ,pdata 
+0x280f 005082 branch callback_func 
+:      005084 le_check_update_small:
+0x2810 005085 add rega ,coffset_le_event_cnt ,contr 
+0x2811 005086 ifetch 2 ,contr 
+0x2812 005087 add rega ,coffset_le_instant ,contr 
+0x2813 005088 ifetch 2 ,contr 
+0x2814 005089 isub temp ,pdata 
+0x2815 005090 arg 0xffff ,temp 
+0x2816 005091 isub temp ,null 
+0x2817 005092 branch le_update ,zero 
+0x2818 005093 arg 0xf000 ,temp 
+0x2819 005094 isub temp ,null 
+0x281a 005095 nbranch le_update ,positive 
+0x281b 005096 rtn 
+:      005099 le_check_retransmit:
+0x281c 005100 fetcht 1 ,mem_le_arq 
+0x281d 005101 fetch 1 ,mem_le_rxbuf_data_header 
+0x281e 005104 rshift pdata ,pdata 
+0x281f 005105 ixor temp ,pdata 
+0x2820 005106 isolate1 nesn ,pdata 
+0x2821 005107 setflag true ,mark_old_packet ,mark 
+0x2822 005108 rtn 
+:      005111 le_acknowledge:
+0x2823 005112 bpatchx patch26_1 ,mem_patch26 
+0x2824 005113 call le_supervision_flush 
+0x2825 005114 rtnmark1 mark_ble_crc_fail 
+0x2826 005115 call le_check_wak 
+0x2827 005116 fetch 1 ,mem_le_rxbuf_data_header 
+0x2828 005117 isolate1 md ,pdata 
+0x2829 005118 setflag true ,mark_ble_rx_md ,mark 
+0x282a 005119 rshift pdata ,pdata 
+0x282b 005120 ixor temp ,pdata 
+0x282c 005121 isolate1 nesn ,pdata 
+0x282d 005122 setflag true ,mark_old_packet ,mark 
+0x282e 005123 rtnmark1 mark_old_packet 
+0x282f 005124 fetch 1 ,mem_le_rxbuf_data_length 
+0x2830 005125 branch le_ack_unenc ,blank 
+0x2831 005126 fetch 1 ,mem_le_state 
+0x2832 005127 bbit0 lestate_encryption ,le_ack_unenc 
+0x2833 005128 fetcht 4 ,mem_le_peer_mic 
+0x2834 005129 fetch 4 ,mem_ccm_last_mic 
+0x2835 005130 isub temp ,null 
+0x2836 005131 branch assert ,zero 
+0x2837 005132 storet 4 ,mem_ccm_last_mic 
+0x2838 005133 fetch 5 ,mem_ccm_pcnt_rx 
+0x2839 005134 increase 1 ,pdata 
+0x283a 005135 set1 le_ccm_directionbit ,pdata 
+0x283b 005136 store 5 ,mem_ccm_pcnt_rx 
+:      005138 le_ack_unenc:
+0x283c 005139 fetcht 1 ,mem_le_arq 
+0x283d 005140 setflip nesn ,temp 
+0x283e 005141 storet 1 ,mem_le_arq 
+0x283f 005142 fetch 1 ,mem_le_configuration 
+0x2840 005143 rtnbit0 bit_ble_deal_bb_packet 
+0x2841 005144 bpatchx patch26_2 ,mem_patch26 
+0x2842 005145 fetch 1 ,mem_le_rxbuf_data_length 
+0x2843 005146 rtn blank 
+0x2844 005147 fetch 1 ,mem_le_rxbuf_data_header 
+0x2845 005148 compare llid_continue ,pdata ,3 
+0x2846 005149 branch le_parse_writing_attribute_continue ,true 
+0x2847 005150 compare llid_start ,pdata ,3 
+0x2848 005151 branch le_parse_writing_attribute_start ,true 
+0x2849 005152 rtn 
+:      005155 le_check_wak:
+0x284a 005156 bpatchx patch26_3 ,mem_patch26 
+0x284b 005157 fetcht 1 ,mem_le_arq 
+0x284c 005158 isolate0 wak ,temp 
+0x284d 005159 rtn true 
+0x284e 005160 fetch 1 ,mem_le_rxbuf_data_header 
+0x284f 005161 lshift pdata ,pdata 
+0x2850 005162 ixor temp ,pdata 
+0x2851 005163 rtnbit0 sn 
+0x2852 005164 set0 wak ,temp 
+0x2853 005165 setflip sn ,temp 
+0x2854 005166 storet 1 ,mem_le_arq 
+0x2855 005167 compare 3 ,temp ,3 
+0x2856 005169 rtn 
+:      005172 le_set_enc:
+0x2857 005173 fetch 1 ,mem_le_state 
+0x2858 005174 set1 lestate_encryption ,pdata 
+0x2859 005175 store 1 ,mem_le_state 
+0x285a 005176 set1 mark_ble_encryption ,mark 
+0x285b 005177 rtn 
+:      005179 le_clear_enc:
+0x285c 005180 bpatchx patch26_4 ,mem_patch26 
+0x285d 005181 jam flag_le_enc_null ,mem_le_enc_state 
+0x285e 005182 arg 0 ,pdata 
+0x285f 005183 store 4 ,mem_ccm_last_mic 
+0x2860 005184 store 5 ,mem_ccm_pcnt_tx 
+0x2861 005185 set1 le_ccm_directionbit ,pdata 
+0x2862 005186 store 5 ,mem_ccm_pcnt_rx 
+0x2863 005187 fetch 1 ,mem_le_state 
+0x2864 005188 set0 lestate_encryption ,pdata 
+0x2865 005189 store 1 ,mem_le_state 
+0x2866 005190 set0 mark_ble_encryption ,mark 
+0x2867 005191 rtn 
+:      005196 le_scan_check_sender_addr_type:
+0x2868 005197 arg 1 ,rega 
+0x2869 005198 fetch 1 ,mem_le_rxbuf_adv_connect_ind_header 
+0x286a 005199 rtnbit1 le_sender_addr_bit 
+0x286b 005200 arg 0 ,rega 
+0x286c 005201 rtn 
+:      005204 le_get_master_rx_max:
+0x286d 005205 copy contr ,contw 
+0x286e 005206 fetcht 2 ,mem_remote_rx_max_octets 
+0x286f 005207 copy contw ,contr 
+0x2870 005208 rtn 
+:      005211 le_prepare_tx:
+0x2871 005212 bpatchx patch26_5 ,mem_patch26 
+0x2872 005213 fetch 1 ,mem_le_arq 
+0x2873 005214 rtnbit1 wak 
+0x2874 005215 call le_check_tx_md 
+0x2875 005216 call le_fifo_get_first_tx_ptr 
+0x2876 005217 branch le_send_empty ,blank 
+0x2877 005218 ifetch 2 ,contr 
+0x2878 005219 ifetcht 2 ,contr 
+0x2879 005220 copy temp ,rega 
+0x287a 005221 isub rega ,pdata 
+0x287b 005222 call le_get_master_rx_max 
+0x287c 005223 call not_greater_than 
+0x287d 005224 copy pdata ,temp 
+0x287e 005225 ifetchr type ,1 ,contr 
+0x287f 005226 copy rega ,pdata 
+0x2880 005227 iadd contr ,pdata 
+0x2881 005228 store 2 ,mem_contr 
+0x2882 005229 call le_update_tx_type 
+0x2883 005230 call le_send_packet 
+0x2884 005232 call le_fifo_get_first_tx_ptr 
+0x2885 005233 ifetch 2 ,contr 
+0x2886 005234 copy pdata ,rega 
+0x2887 005235 copy contr ,regc 
+0x2888 005236 ifetcht 2 ,contr 
+0x2889 005237 copy temp ,regb 
+0x288a 005238 isub regb ,pdata 
+0x288b 005239 call le_get_master_rx_max 
+0x288c 005240 call not_greater_than 
+0x288d 005241 iadd regb ,pdata 
+0x288e 005242 istore 2 ,regc 
+0x288f 005243 isub rega ,null 
+0x2890 005244 nrtn zero 
+0x2891 005245 branch le_fifo_release_first_node 
+:      005248 le_check_tx_md:
+0x2892 005249 call le_check_continue 
+0x2893 005250 rtnmark1 mark_ble_tx_md 
+0x2894 005251 fetch 1 ,mem_le_configuration 
+0x2895 005252 bbit0 bit_ble_transmit_packet_by_md ,le_clear_md 
+0x2896 005253 call le_fifo_get_second_tx_ptr 
+0x2897 005254 branch le_clear_md ,blank 
+0x2898 005255 branch le_set_md 
+:      005258 le_check_continue:
+0x2899 005259 call le_fifo_get_first_tx_ptr 
+0x289a 005260 branch le_clear_md ,blank 
+0x289b 005261 ifetch 2 ,contr 
+0x289c 005262 ifetcht 2 ,contr 
+0x289d 005263 isub temp ,rega 
+0x289e 005264 call le_get_master_rx_max 
+0x289f 005265 copy temp ,pdata 
+0x28a0 005266 isub rega ,null 
+0x28a1 005267 branch le_clear_md ,positive 
+:      005268 le_set_md:
+0x28a2 005269 set1 mark_ble_tx_md ,mark 
+0x28a3 005270 rtn 
+:      005272 le_clear_md:
+0x28a4 005273 set0 mark_ble_tx_md ,mark 
+0x28a5 005274 rtn 
+:      005276 le_update_tx_type:
+0x28a6 005277 copy rega ,pdata 
+0x28a7 005278 rtn blank 
+0x28a8 005279 arg llid_continue ,type 
+0x28a9 005280 rtn 
+:      005283 le_att_check_notification_enable:
+0x28aa 005284 bpatchx patch26_6 ,mem_patch26 
+0x28ab 005285 increase 1 ,temp 
+0x28ac 005286 call le_att_get_handle_ptr 
+0x28ad 005287 increase -2 ,contr 
+0x28ae 005288 ifetch 2 ,contr 
+0x28af 005289 arg client_charactertic_configuration ,temp 
+0x28b0 005290 isub temp ,null 
+0x28b1 005291 nrtn zero 
+0x28b2 005292 increase 1 ,contr 
+0x28b3 005293 copy contr ,rega 
+0x28b4 005294 ifetch 1 ,contr 
+0x28b5 005295 rtn 
+:      005298 le_send_empty:
+0x28b6 005299 force 0 ,temp 
+0x28b7 005300 force 1 ,type 
+:      005302 le_send_packet:
+0x28b8 005303 bpatchx patch26_7 ,mem_patch26 
+0x28b9 005304 storet 1 ,mem_le_txlen 
+0x28ba 005305 fetcht 1 ,mem_le_arq 
+0x28bb 005306 set1 wak ,temp 
+0x28bc 005307 and temp ,0xfc ,pdata 
+0x28bd 005308 ior type ,pdata 
+0x28be 005309 store 1 ,mem_le_arq 
+0x28bf 005310 and_into 0x1f ,pdata 
+0x28c0 005311 isolate1 mark_ble_tx_md ,mark 
+0x28c1 005312 setflag true ,md ,pdata 
+0x28c2 005313 store 1 ,mem_le_txheader 
+0x28c3 005315 fetch 1 ,mem_le_txheader 
+0x28c4 005316 compare 1 ,type ,3 
+0x28c5 005317 nbranch le_send_no_txlen ,true 
+0x28c6 005318 fetch 1 ,mem_le_txlen 
+0x28c7 005319 rtn blank 
+:      005321 le_send_no_txlen:
+0x28c8 005322 bmark1 mark_ble_encryption ,le_send_packet_enc 
+0x28c9 005323 fetchr loopcnt ,1 ,mem_le_txlen 
+0x28ca 005324 fetch 2 ,mem_contr 
+0x28cb 005325 copy pdata ,contr 
+0x28cc 005326 arg mem_le_txpayload ,contw 
+0x28cd 005327 branch memcpy_fast 
+:      005329 le_send_packet_enc:
+0x28ce 005330 call load_sk 
+0x28cf 005331 branch le_encrypt_new_start 
+:      005333 get_lpm_wake_ble_rx_lock:
+0x28d0 005334 arg wake_lock_ble_rx ,queue 
+0x28d1 005335 branch lpm_get_wake_lock 
+:      005337 put_lpm_wake_ble_rx_lock:
+0x28d2 005338 arg wake_lock_ble_rx ,queue 
+0x28d3 005339 branch lpm_put_wake_lock 
+:      005342 le_parse:
+0x28d4 005343 bpatchx patch27_0 ,mem_patch27 
+0x28d5 005344 rtnmark1 mark_old_packet 
+0x28d6 005345 rtnmark1 mark_ble_crc_fail 
+0x28d7 005346 fetch 1 ,mem_le_rxbuf_data_header 
+0x28d8 005347 and pdata ,0x3 ,pdata 
+0x28d9 005348 store 1 ,mem_le_packet_llid 
+0x28da 005349 fetch 1 ,mem_le_rxbuf_data_length 
+0x28db 005350 rtn blank 
+0x28dc 005351 setarg mem_le_rxbuf_data_payload 
+0x28dd 005352 store 2 ,mem_le_payload_ptr 
+0x28de 005353 bpatchx patch27_1 ,mem_patch27 
+0x28df 005354 fetch 1 ,mem_le_packet_llid 
+0x28e0 005355 beq llid_le_ll ,le_parse_ll 
+:      005356 le_parse_l2cap:
+0x28e1 005357 call le_check_l2cap_complete 
+0x28e2 005358 nbranch get_lpm_wake_ble_rx_lock ,user 
+0x28e3 005359 call put_lpm_wake_ble_rx_lock 
+0x28e4 005360 setarg 0 
+0x28e5 005361 store 2 ,mem_le_packet_len_recved 
+0x28e6 005362 fetch 2 ,mem_le_payload_ptr 
+0x28e7 005363 add pdata ,2 ,contr 
+0x28e8 005364 bpatchx patch27_2 ,mem_patch27 
+:      005365 le_parse_l2cap_next:
+0x28e9 005366 ifetch 2 ,contr 
+0x28ea 005367 beq le_l2cap_cid_att ,le_parse_att 
+0x28eb 005368 beq le_l2cap_cid_smp ,le_parse_smp 
+0x28ec 005369 beq le_l2cap_cid_signal ,le_parse_signaling 
+0x28ed 005370 rtn 
+:      005373 le_check_l2cap_complete:
+0x28ee 005374 fetch 1 ,mem_le_packet_llid 
+0x28ef 005375 beq llid_start ,le_check_l2cap_llid_start 
+0x28f0 005376 beq llid_continue ,le_check_l2cap_llid_continue 
+0x28f1 005377 rtn 
+:      005382 le_check_l2cap_cid_legal:
+0x28f2 005383 call enable_user 
+0x28f3 005384 arg le_l2cap_cid_att ,temp 
+0x28f4 005385 isub pdata ,null 
+0x28f5 005386 rtn zero 
+0x28f6 005387 arg le_l2cap_cid_signal ,temp 
+0x28f7 005388 isub pdata ,null 
+0x28f8 005389 rtn zero 
+0x28f9 005390 arg le_l2cap_cid_smp ,temp 
+0x28fa 005391 isub pdata ,null 
+0x28fb 005392 rtn zero 
+0x28fc 005393 branch disable_user 
+:      005396 le_check_l2cap_llid_start:
+0x28fd 005397 fetch 2 ,mem_le_payload_ptr 
+0x28fe 005398 copy pdata ,contr 
+0x28ff 005399 ifetch 2 ,contr 
+0x2900 005400 store 2 ,mem_le_l2cap_size 
+0x2901 005401 ifetch 2 ,contr 
+0x2902 005402 call le_check_l2cap_cid_legal 
+0x2903 005403 nrtn user 
+0x2904 005404 fetcht 1 ,mem_le_rxbuf_data_length 
+0x2905 005405 storet 2 ,mem_le_packet_len_recved 
+0x2906 005406 fetch 2 ,mem_le_l2cap_size 
+0x2907 005407 increase 4 ,pdata 
+0x2908 005408 isub temp ,null 
+0x2909 005409 branch enable_user ,zero 
+0x290a 005410 fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+0x290b 005411 arg mem_le_l2cap_buf ,contw 
+0x290c 005412 fetch 2 ,mem_le_payload_ptr 
+0x290d 005413 copy pdata ,contr 
+0x290e 005414 call memcpy_fast 
+0x290f 005415 branch disable_user 
+:      005420 le_check_l2cap_continue_legal:
+0x2910 005421 call enable_user 
+0x2911 005422 fetch 2 ,mem_le_packet_len_recved 
+0x2912 005423 nrtn blank 
+0x2913 005424 branch disable_user 
+:      005426 le_check_l2cap_llid_continue:
+0x2914 005427 call le_check_l2cap_continue_legal 
+0x2915 005428 nrtn user 
+0x2916 005429 fetch 2 ,mem_le_packet_len_recved 
+0x2917 005430 arg mem_le_l2cap_buf ,contw 
+0x2918 005431 iadd contw ,rega 
+0x2919 005432 fetcht 1 ,mem_le_rxbuf_data_length 
+0x291a 005433 iadd temp ,pdata 
+0x291b 005434 store 2 ,mem_le_packet_len_recved 
+0x291c 005435 fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+0x291d 005436 copy rega ,contw 
+0x291e 005437 fetch 2 ,mem_le_payload_ptr 
+0x291f 005438 copy pdata ,contr 
+0x2920 005439 call memcpy_fast 
+0x2921 005440 setarg mem_le_l2cap_buf 
+0x2922 005441 store 2 ,mem_le_payload_ptr 
+0x2923 005442 fetch 2 ,mem_le_l2cap_size 
+0x2924 005443 increase 4 ,pdata 
+0x2925 005444 fetcht 2 ,mem_le_packet_len_recved 
+0x2926 005445 isub temp ,null 
+0x2927 005446 branch enable_user ,zero 
+0x2928 005447 branch disable_user 
+:      005452 le_writeatt_cb:
+0x2929 005453 fetch 2 ,mem_cb_att_write 
+0x292a 005454 branch callback_func 
+:      005456 le_supervision_update:
+0x292b 005457 bpatchx patch27_3 ,mem_patch27 
+0x292c 005458 fetcht 4 ,mem_le_supervision_timer 
+0x292d 005459 call get_clkbt 
+0x292e 005460 isub temp ,timeup 
+0x292f 005461 deposit timeup 
+0x2930 005462 fetcht 2 ,mem_le_superto 
+0x2931 005463 lshift4 temp ,temp 
+0x2932 005464 lshift temp ,temp 
+0x2933 005465 isub temp ,pdata 
+0x2934 005466 rtn 
+:      005468 le_supervision_flush:
+0x2935 005469 call get_clkbt 
+0x2936 005470 store 4 ,mem_le_supervision_timer 
+0x2937 005471 rtn 
+:      005475 le_receive_window_size:
+0x2938 005476 bpatchx patch27_4 ,mem_patch27 
+0x2939 005477 add rega ,coffset_le_peer_sca ,contr 
+0x293a 005478 ifetch 1 ,contr 
+0x293b 005479 call le_sca_map 
+0x293c 005480 add rega ,coffset_tsniff ,contr 
+0x293d 005481 ifetch 2 ,contr 
+0x293e 005482 imul32 temp ,pdata 
+0x293f 005483 fetcht 2 ,mem_param_rt_rthalfslot 
+0x2940 005484 imul32 temp ,pdata 
+0x2941 005485 arg 1000000 ,temp 
+0x2942 005486 idiv temp 
+0x2943 005487 arg param_windown_size ,temp 
+0x2944 005488 fetch 1 ,mem_system_clk 
+0x2945 005489 imul32 temp ,temp 
+0x2946 005490 add rega ,coffset_le_window_size ,contr 
+0x2947 005491 ifetch 1 ,contr 
+0x2948 005492 imul32 temp ,pdata 
+0x2949 005493 iadd temp ,pdata 
+0x294a 005494 store 4 ,mem_le_transmit_window 
+0x294b 005495 fetch 2 ,mem_rx_window_sniff 
+0x294c 005496 call wait_div_end 
+0x294d 005497 quotient temp 
+0x294e 005498 iadd temp ,pdata 
+0x294f 005499 add rega ,coffset_rx_window ,contw 
+0x2950 005500 istore 2 ,contw 
+0x2951 005501 rtn 
+:      005506 le_modified_name:
+0x2952 005507 bpatchx patch27_5 ,mem_patch27 
+0x2953 005508 call le_modified_name_att_list 
+0x2954 005509 branch le_modified_name_adv 
+:      005511 le_modified_name_att_list:
+0x2955 005512 jam 2 ,mem_le_search_att_type_length 
+0x2956 005513 arg uuid_chrctr_device_name ,temp 
+0x2957 005514 storet 2 ,mem_le_search_att_type 
+0x2958 005515 call le_att_get_uuid_ptr 
+0x2959 005516 rtn blank 
+0x295a 005517 ifetch 1 ,contr 
+0x295b 005518 copy contr ,contw 
+0x295c 005519 fetcht 1 ,mem_le_name_len 
+0x295d 005520 copy temp ,loopcnt 
+0x295e 005521 isub temp ,null 
+0x295f 005522 nbranch le_name_length_longer_than_att ,positive 
+0x2960 005523 isub temp ,temp 
+0x2961 005524 arg mem_le_name ,contr 
+0x2962 005525 call memcpy_fast 
+0x2963 005526 copy temp ,loopcnt 
+0x2964 005527 ncall memcpy_empty ,zero 
+0x2965 005528 rtn 
+:      005529 le_name_length_longer_than_att:
+0x2966 005530 copy pdata ,loopcnt 
+0x2967 005531 arg mem_le_name ,contr 
+0x2968 005532 branch memcpy_fast 
+:      005535 le_modified_name_adv:
+0x2969 005536 arg mem_le_adv_data_len + 32 ,regc 
+0x296a 005537 arg mem_le_adv_data ,rega 
+0x296b 005538 call le_modified_name_adv_and_scan 
+0x296c 005539 setarg 0 
+0x296d 005540 setflag user ,0 ,pdata 
+0x296e 005541 store 1 ,mem_pdatatemp 
+0x296f 005542 arg mem_le_scan_data_len + 32 ,regc 
+0x2970 005543 arg mem_le_scan_data ,rega 
+0x2971 005544 call le_modified_name_adv_and_scan 
+0x2972 005545 rtn user 
+0x2973 005546 fetch 1 ,mem_pdatatemp 
+0x2974 005547 branch assert ,blank 
+0x2975 005548 rtn 
+:      005551 le_modified_name_adv_and_scan:
+0x2976 005552 bpatchx patch27_6 ,mem_patch27 
+0x2977 005553 call enable_user 
+0x2978 005554 call clear_temp_block 
+0x2979 005555 arg 0 ,regb 
+0x297a 005556 arg mem_le_data_temp ,contw 
+0x297b 005557 call le_modified_name_adv_loop 
+0x297c 005558 fetch 1 ,mem_le_name_len 
+0x297d 005559 add pdata ,1 ,temp 
+0x297e 005560 iadd regb ,rega 
+0x297f 005561 increase 2 ,rega 
+0x2980 005562 sub rega ,0x1f ,null 
+0x2981 005563 nbranch le_modified_name_adv_and_scan_name_overflow ,positive 
+0x2982 005564 istoret 1 ,contw 
+0x2983 005565 arg gap_adtype_local_name_complete ,temp 
+0x2984 005566 istoret 1 ,contw 
+0x2985 005567 iforce loopcnt 
+0x2986 005568 call memcpy_fast 
+0x2987 005569 copy rega ,regb 
+:      005570 le_modified_name_adv_and_scan_store_data:
+0x2988 005571 deposit regb 
+0x2989 005572 store 1 ,mem_le_data_len_temp 
+0x298a 005573 arg mem_le_data_len_temp ,contr 
+0x298b 005574 setarg -32 
+0x298c 005575 iadd regc ,contw 
+0x298d 005576 branch memcpy32 
+:      005578 le_modified_name_adv_and_scan_name_overflow:
+0x298e 005579 call disable_user 
+0x298f 005580 branch le_modified_name_adv_and_scan_store_data 
+:      005582 le_modified_name_adv_loop:
+0x2990 005583 ifetch 1 ,rega 
+0x2991 005584 rtn blank 
+0x2992 005585 pincrease 1 
+0x2993 005586 ifetcht 1 ,contr 
+0x2994 005587 sub temp ,gap_adtype_local_name_complete ,null 
+0x2995 005588 branch le_modified_name_adv_found_name ,zero 
+0x2996 005589 iadd regb ,regb 
+0x2997 005590 copy rega ,contr 
+0x2998 005591 iforce loopcnt 
+0x2999 005592 call memcpy_fast 
+0x299a 005593 copy contr ,rega 
+:      005594 le_modified_name_adv_loop2:
+0x299b 005595 deposit rega 
+0x299c 005596 isub regc ,null 
+0x299d 005597 rtn positive 
+0x299e 005598 branch le_modified_name_adv_loop 
+:      005600 le_modified_name_adv_found_name:
+0x299f 005601 iadd rega ,rega 
+0x29a0 005602 branch le_modified_name_adv_loop2 
+:      005605 memcpy_empty:
+0x29a1 005606 setarg space 
+0x29a2 005607 istore 1 ,contw 
+0x29a3 005608 loop memcpy_empty 
+0x29a4 005609 rtn 
+:      005612 le_lpm_set_mult:
+0x29a5 005613 bpatchx patch27_7 ,mem_patch27 
+0x29a6 005614 disable wake 
+0x29a7 005615 branch le_lpm_set_mult_attempt ,attempt 
+0x29a8 005616 nbranch le_lpm_lost ,match 
+:      005617 le_lpm_set_mult_attempt:
+0x29a9 005618 call lpm_match 
+0x29aa 005619 fetch 2 ,mem_rx_window_sniff 
+0x29ab 005620 store 2 ,mem_le_receive_window 
+0x29ac 005621 fetch 1 ,mem_le_configuration 
+0x29ad 005622 bbit1 bit_ble_short_mult ,lpm_mult_short 
+0x29ae 005623 bmark1 mark_old_packet ,lpm_mult_short 
+0x29af 005624 fetch 1 ,mem_le_rxbuf_data_length 
+0x29b0 005625 nbranch lpm_mult_short ,blank 
+0x29b1 005626 fetch 1 ,mem_le_txlen 
+0x29b2 005627 nbranch lpm_mult_short ,blank 
+0x29b3 005629 fetch 1 ,mem_le_state 
+0x29b4 005630 bbit1 lestate_update_param ,lpm_mult_short 
+0x29b5 005631 bbit1 lestate_update_phy ,lpm_mult_short 
+0x29b6 005632 bbit1 lestate_update_map ,lpm_mult_short 
+0x29b7 005633 branch lpm_mult_wait_timeout 
+:      005635 le_lpm_lost:
+0x29b8 005636 fetch 1 ,mem_sniff_unint_lost 
+0x29b9 005637 sub pdata ,30 ,null 
+0x29ba 005638 nbranch lpm_lost ,positive 
+0x29bb 005639 fetcht 2 ,mem_rx_window_sniff 
+0x29bc 005640 rshift temp ,temp 
+0x29bd 005641 fetch 2 ,mem_le_receive_window 
+0x29be 005642 iadd temp ,pdata 
+0x29bf 005643 store 2 ,mem_le_receive_window 
+0x29c0 005644 branch lpm_lost 
+:      005647 le_set_config_fixed_tk:
+0x29c1 005648 arg bit_ble_passkey_fixed_key ,queue 
+0x29c2 005649 branch le_set_config 
+:      005651 le_clr_config_fixed_tk:
+0x29c3 005652 arg bit_ble_passkey_fixed_key ,queue 
+0x29c4 005653 branch le_clr_config 
+:      005655 le_set_config_fixed_ltk:
+0x29c5 005656 arg bit_ble_pairing_fixed_ltk ,queue 
+0x29c6 005657 branch le_set_config 
+:      005659 le_clr_config_fixed_ltk:
+0x29c7 005660 arg bit_ble_pairing_fixed_ltk ,queue 
+0x29c8 005661 branch le_clr_config 
+:      005663 le_set_config_more_data:
+0x29c9 005664 arg bit_ble_transmit_packet_by_md ,queue 
+0x29ca 005665 branch le_set_config 
+:      005667 le_clr_config_more_data:
+0x29cb 005668 arg bit_ble_transmit_packet_by_md ,queue 
+0x29cc 005669 branch le_clr_config 
+:      005671 le_set_config_read_authentication:
+0x29cd 005672 arg bit_ble_read_auth ,queue 
+0x29ce 005673 branch le_set_config 
+:      005675 le_clr_config_read_authentication:
+0x29cf 005676 arg bit_ble_read_auth ,queue 
+0x29d0 005677 branch le_clr_config 
+:      005679 le_set_config_write_authentication:
+0x29d1 005680 arg bit_ble_write_auth ,queue 
+0x29d2 005681 branch le_set_config 
+:      005683 le_clr_config_write_authentication:
+0x29d3 005684 arg bit_ble_write_auth ,queue 
+0x29d4 005685 branch le_clr_config 
+:      005687 le_set_config_short_mult:
+0x29d5 005688 arg bit_ble_short_mult ,queue 
+:      005690 le_set_config:
+0x29d6 005691 fetch 1 ,mem_le_configuration 
+0x29d7 005692 qset1 pdata 
+0x29d8 005693 store 1 ,mem_le_configuration 
+0x29d9 005694 rtn 
+:      005697 le_clr_config_short_mult:
+0x29da 005698 arg bit_ble_short_mult ,queue 
+:      005700 le_clr_config:
+0x29db 005701 fetch 1 ,mem_le_configuration 
+0x29dc 005702 qset0 pdata 
+0x29dd 005703 store 1 ,mem_le_configuration 
+0x29de 005704 rtn 
+:      005708 le_set_fixed_ltk:
+0x29df 005709 setarg 0x112233 
+0x29e0 005710 store 3 ,mem_le_fixed_ltk 
+0x29e1 005711 setarg 0x445566 
+0x29e2 005712 istore 3 ,contw 
+0x29e3 005713 setarg 0x778899 
+0x29e4 005714 istore 3 ,contw 
+0x29e5 005715 setarg 0x001122 
+0x29e6 005716 istore 3 ,contw 
+0x29e7 005717 setarg 0x334455 
+0x29e8 005718 istore 3 ,contw 
+0x29e9 005719 setarg 0x66 
+0x29ea 005720 istore 1 ,contw 
+0x29eb 005721 rtn 
+:      005724 le_set_justwork:
+0x29ec 005725 setarg 0x01000302 
+0x29ed 005726 store 4 ,mem_le_pres 
+0x29ee 005727 setarg 0x010010 
+0x29ef 005728 store 3 ,mem_le_pres_max_keysize 
+0x29f0 005729 jam 1 ,mem_le_pairing_mode 
+0x29f1 005730 rtn 
+:      005734 le_fifo_malloc_tx_empty:
+0x29f2 005735 arg 0 ,rega 
+0x29f3 005736 arg llid_empty ,type 
+0x29f4 005737 branch le_fifo_malloc_tx 
+:      005741 le_fifo_malloc_tx_ll:
+0x29f5 005742 bpatchx patch28_0 ,mem_patch28 
+0x29f6 005743 arg llid_le_ll ,type 
+0x29f7 005744 call le_fifo_malloc_tx 
+0x29f8 005745 copy regb ,pdata 
+0x29f9 005746 istore 1 ,contw 
+0x29fa 005747 rtn 
+:      005751 le_fifo_malloc_tx_l2cap:
+0x29fb 005752 bpatchx patch28_1 ,mem_patch28 
+0x29fc 005753 force llid_start ,type 
+0x29fd 005754 increase 4 ,rega 
+0x29fe 005755 call le_fifo_malloc_tx 
+0x29ff 005756 increase -4 ,rega 
+0x2a00 005757 copy rega ,pdata 
+0x2a01 005758 istore 2 ,contw 
+0x2a02 005759 copy regb ,pdata 
+0x2a03 005760 istore 2 ,contw 
+0x2a04 005761 rtn 
+:      005765 le_fifo_malloc_tx:
+0x2a05 005766 bpatchx patch28_2 ,mem_patch28 
+0x2a06 005767 increase 5 ,rega 
+0x2a07 005768 call ble_l2cap_malloc 
+0x2a08 005769 increase -5 ,rega 
+0x2a09 005770 copy rega ,pdata 
+0x2a0a 005771 istore 2 ,contw 
+0x2a0b 005772 setarg 0 
+0x2a0c 005773 istore 2 ,contw 
+0x2a0d 005774 copy type ,pdata 
+0x2a0e 005775 istore 1 ,contw 
+0x2a0f 005776 rtn 
+:      005779 le_fifo_get_first_tx_ptr:
+0x2a10 005780 bpatchx patch28_3 ,mem_patch28 
+0x2a11 005781 call l2cap_malloc_fifo_out 
+0x2a12 005782 copy pdata ,contr 
+0x2a13 005783 rtn 
+:      005785 le_fifo_get_second_tx_ptr:
+0x2a14 005786 fetch 2 ,mem_tx_fifo2_ptr 
+0x2a15 005787 rtn 
+:      005789 le_fifo_get_last_tx_ptr:
+0x2a16 005790 call le_fifo_get_last_tx_ptr0 
+0x2a17 005791 copy pdata ,contr 
+0x2a18 005792 rtn 
+:      005795 le_fifo_get_last_tx_ptr0:
+0x2a19 005796 fetch 2 ,mem_tx_fifo3_ptr 
+0x2a1a 005797 rtn 
+:      005800 le_fifo_get_first_l2cap_ptr:
+0x2a1b 005801 call le_fifo_get_first_tx_ptr 
+0x2a1c 005802 increase 5 ,contr 
+0x2a1d 005803 rtn 
+:      005805 le_fifo_get_first_att_ptr:
+0x2a1e 005806 call le_fifo_get_first_tx_ptr 
+0x2a1f 005807 increase 9 ,contr 
+0x2a20 005808 rtn 
+:      005810 le_fifo_get_last_att_ptr:
+0x2a21 005811 call le_fifo_get_last_tx_ptr 
+0x2a22 005812 increase 9 ,contr 
+0x2a23 005813 rtn 
+:      005815 le_fifo_get_last_l2cap_ptr:
+0x2a24 005816 call le_fifo_get_last_tx_ptr 
+0x2a25 005817 increase 5 ,contr 
+0x2a26 005818 rtn 
+:      005821 le_fifo_check_full:
+0x2a27 005822 branch l2cap_malloc_is_fifo_full 
+:      005825 le_fifo_check_nearly_full:
+0x2a28 005826 branch l2cap_malloc_is_fifo_nearly_full 
+:      005829 le_fifo_check_empty:
+0x2a29 005830 branch l2cap_malloc_is_fifo_empty 
+:      005833 le_fifo_release_first_node:
+0x2a2a 005834 branch l2cap_malloc_free 
+:      005837 le_set_dle:
+0x2a2b 005838 store 8 ,mem_local_rx_max_octets 
+0x2a2c 005839 branch le_set_feature_data_packet_length_extension 
+:      005842 le_set_phys:
+0x2a2d 005843 and temp ,0xff ,rega 
+0x2a2e 005844 call le_set_tx_phy 
+0x2a2f 005845 rshift8 temp ,rega 
+:      005847 le_set_rx_phy:
+0x2a30 005848 storer rega ,1 ,mem_le_rx_phys 
+0x2a31 005849 branch le_set_phy_common 
+:      005851 le_set_tx_phy:
+0x2a32 005852 storer rega ,1 ,mem_le_tx_phys 
+:      005853 le_set_phy_common:
+0x2a33 005854 isolate1 bit_le_2m_phy ,rega 
+0x2a34 005855 call le_set_feature_2m_phy ,true 
+0x2a35 005856 isolate1 bit_le_coded_phy ,rega 
+0x2a36 005857 call le_set_feature_coded_phy ,true 
+0x2a37 005858 rtn 
+:      005862 le_set_feature_2m_phy:
+0x2a38 005863 arg bit_ll_feature_le_2m_phy ,queue 
+0x2a39 005864 branch le_set_feature 
+:      005867 le_set_feature_coded_phy:
+0x2a3a 005868 arg bit_ll_feature_le_coded_phy ,queue 
+0x2a3b 005869 branch le_set_feature 
+:      005871 le_set_feature_data_packet_length_extension:
+0x2a3c 005872 arg bit_ll_feature_le_data_packet_length_extension ,queue 
+:      005874 le_set_feature:
+0x2a3d 005875 fetch 8 ,mem_le_local_feature 
+0x2a3e 005876 qset1 pdata 
+0x2a3f 005877 store 8 ,mem_le_local_feature 
+0x2a40 005878 rtn 
+:      005880 le_set_fixed_ltk_justwork:
+0x2a41 005881 call le_set_config_fixed_ltk 
+0x2a42 005882 call le_set_justwork 
+0x2a43 005883 call le_set_fixed_ltk 
+0x2a44 005884 branch le_set_config_read_authentication 
+:      005889 le_advertising_dispatch:
+0x2a45 005890 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
+0x2a46 005891 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
+0x2a47 005892 call le_enable 
+0x2a48 005893 call le_scan 
+0x2a49 005894 call le_adv 
+0x2a4a 005895 branch le_disable 
+:      005897 le_scan:
+0x2a4b 005898 bpatchx patch28_4 ,mem_patch28 
+0x2a4c 005899 fetch 1 ,mem_le_scan_enable 
+0x2a4d 005900 rtnne le_scan_enable 
+0x2a4e 005901 arg le_scan_interval_timer ,queue 
+0x2a4f 005902 call timer_check 
+0x2a50 005903 nrtn blank 
+0x2a51 005904 fetch 2 ,mem_le_scan_interval 
+0x2a52 005905 fetcht 2 ,mem_le_scan_window 
+0x2a53 005906 isub temp ,pdata 
+0x2a54 005907 arg le_scan_interval_timer ,queue 
+0x2a55 005908 call timer_init 
+0x2a56 005909 disable master 
+0x2a57 005910 call le_init_adv 
+0x2a58 005911 call le_wait_adv 
+0x2a59 005912 nrtn match 
+0x2a5a 005913 bpatchx patch28_5 ,mem_patch28 
+0x2a5b 005914 fetch 6 ,mem_le_rxbuf + 2 
+0x2a5c 005915 store 6 ,mem_le_plap 
+0x2a5d 005918 fetch 1 ,mem_le_adv_rcv 
+0x2a5e 005919 increase 1 ,pdata 
+0x2a5f 005920 store 1 ,mem_le_adv_rcv 
+0x2a60 005921 call le_create_conn 
+0x2a61 005922 rtn master 
+0x2a62 005923 call le_send_scan_request 
+0x2a63 005924 nrtn match 
+0x2a64 005925 fetch 1 ,mem_le_scanrsp_rcv 
+0x2a65 005926 increase 1 ,pdata 
+0x2a66 005927 store 1 ,mem_le_scanrsp_rcv 
+0x2a67 005928 fetch 9 ,mem_le_rxbuf + 8 
+0x2a68 005929 store 9 ,mem_temp_block0 
+0x2a69 005930 rtn 
+:      005933 le_wait_adv:
+0x2a6a 005934 bpatchx patch28_6 ,mem_patch28 
+0x2a6b 005935 call le_next_adv_channel 
+0x2a6c 005936 call le_receive_adv 
+0x2a6d 005937 fetch 1 ,mem_le_adv_waitcnt 
+0x2a6e 005938 increase 1 ,pdata 
+0x2a6f 005939 store 1 ,mem_le_adv_waitcnt 
+0x2a70 005940 rtn 
+:      005943 le_create_conn:
+0x2a71 005944 bpatchx patch28_7 ,mem_patch28 
+0x2a72 005945 fetch 1 ,mem_cmd_le_create_conn 
+0x2a73 005946 rtnne hci_cmd_le_create_conn 
+0x2a74 005947 fetch 6 ,mem_le_plap 
+0x2a75 005948 fetcht 6 ,mem_le_conn_peer_addr 
+0x2a76 005949 isub temp ,null 
+0x2a77 005950 nrtn zero 
+0x2a78 005951 call context_new 
+0x2a79 005952 nrtn zero 
+0x2a7a 005953 call le_connect_request 
+0x2a7b 005954 call le_init_master 
+0x2a7c 005955 call le_send_version_ind 
+0x2a7d 005956 jam bt_evt_le_connected ,mem_fifo_temp 
+0x2a7e 005957 call ui_ipc_send_event 
+0x2a7f 005958 jam 0 ,mem_hci_cmd 
+0x2a80 005959 jam 0 ,mem_le_peer_sca 
+0x2a81 005960 jam 0 ,mem_le_scan_enable 
+0x2a82 005961 jam 0 ,mem_cmd_le_create_conn 
+0x2a83 005962 branch context_save 
+:      005964 le_connect_request:
+0x2a84 005965 bpatchx patch29_0 ,mem_patch29 
+0x2a85 005966 force -1 ,pdata 
+0x2a86 005967 setsect 2 ,1 
+0x2a87 005968 store 5 ,mem_le_channel_map 
+0x2a88 005969 arg mem_le_state ,rega 
+0x2a89 005970 call le_calc_channel_map 
+0x2a8a 005971 force 4 ,loopcnt 
+0x2a8b 005972 arg mem_le_access ,contw 
+0x2a8c 005973 call generate_random_loop 
+0x2a8d 005974 fetch 2 ,mem_le_timeout 
+0x2a8e 005975 store 2 ,mem_le_superto 
+:      005976 le_con_req_hop_retry:
+0x2a8f 005977 random pdata 
+0x2a90 005978 and_into 0xf ,pdata 
+0x2a91 005979 sub pdata ,4 ,null 
+0x2a92 005980 branch le_con_req_hop_retry ,positive 
+0x2a93 005981 store 1 ,mem_le_hop 
+0x2a94 005983 bpatchx patch29_1 ,mem_patch29 
+0x2a95 005984 fetcht 2 ,mem_le_conn_interval 
+0x2a96 005985 storet 2 ,mem_le_tsniff 
+0x2a97 005986 copy temp ,regc 
+0x2a98 005987 add clkn_bt ,7 ,pdata 
+0x2a99 005988 idiv regc 
+0x2a9a 005989 call wait_div_end 
+0x2a9b 005990 remainder rega 
+0x2a9c 005991 isub rega ,pdata 
+0x2a9d 005992 iadd regc ,pdata 
+0x2a9e 005993 fetcht 2 ,mem_le_dsniff 
+0x2a9f 005994 iadd temp ,pdata 
+0x2aa0 005995 store 4 ,mem_le_anchor 
+0x2aa1 005996 isub clkn_bt ,rega 
+0x2aa2 005997 increase -6 ,rega 
+0x2aa3 005998 arg 0x2205 ,regb 
+0x2aa4 005999 fetch 1 ,mem_le_conn_own_addr_type 
+0x2aa5 006000 nsetflag blank ,le_sender_addr_bit ,regb 
+0x2aa6 006001 fetch 1 ,mem_le_conn_peer_addr_type 
+0x2aa7 006002 nsetflag blank ,le_receiver_addr_bit ,regb 
+0x2aa8 006003 copy regb ,pdata 
+0x2aa9 006004 store 2 ,mem_le_txheader 
+0x2aaa 006005 fetch 6 ,mem_le_lap 
+0x2aab 006006 istore 6 ,contw 
+0x2aac 006007 fetch 6 ,mem_le_plap 
+0x2aad 006008 istore 6 ,contw 
+0x2aae 006009 fetch 4 ,mem_le_access 
+0x2aaf 006010 istore 4 ,contw 
+0x2ab0 006011 random pdata 
+0x2ab1 006012 istore 2 ,contw 
+0x2ab2 006013 random pdata 
+0x2ab3 006014 istore 1 ,contw 
+0x2ab4 006015 force 2 ,pdata 
+0x2ab5 006016 istore 1 ,contw 
+0x2ab6 006017 rshift2 rega ,pdata 
+0x2ab7 006018 istore 2 ,contw 
+0x2ab8 006019 rshift2 regc ,pdata 
+0x2ab9 006020 istore 2 ,contw 
+0x2aba 006021 bpatchx patch29_2 ,mem_patch29 
+0x2abb 006022 setarg 0 
+0x2abc 006023 istore 2 ,contw 
+0x2abd 006024 fetch 2 ,mem_le_timeout 
+0x2abe 006025 istore 2 ,contw 
+0x2abf 006026 fetch 5 ,mem_le_channel_map 
+0x2ac0 006027 istore 5 ,contw 
+0x2ac1 006028 fetch 1 ,mem_le_hop 
+0x2ac2 006029 arg param_le_sca ,temp 
+0x2ac3 006030 ior temp ,pdata 
+0x2ac4 006031 istore 1 ,contw 
+0x2ac5 006032 call le_transmit_norx 
+0x2ac6 006033 setarg mem_le_txheader 
+0x2ac7 006034 add pdata ,18 ,contr 
+0x2ac8 006035 ifetch 3 ,contr 
+0x2ac9 006036 store 3 ,mem_le_crcinit 
+0x2aca 006037 rtn 
+:      006040 le_adv:
+0x2acb 006041 jam 36 ,mem_le_ch_mapped 
+0x2acc 006042 jam 0 ,mem_le_adv_channel_map_temp 
+0x2acd 006043 call le_send_adv_protect_txbuf 
+0x2ace 006044 call le_adv_loop 
+0x2acf 006045 branch le_send_adv_recover_txbuf 
+:      006047 le_adv_loop:
+0x2ad0 006048 bpatchx patch29_3 ,mem_patch29 
+0x2ad1 006049 fetch 1 ,mem_le_adv_enable 
+0x2ad2 006050 rtn blank 
+0x2ad3 006051 arg le_adv_interval_timer ,queue 
+0x2ad4 006052 call timer_check 
+0x2ad5 006053 nrtn blank 
+0x2ad6 006054 enable swfine 
+0x2ad7 006055 call le_init_adv 
+0x2ad8 006056 call le_next_adv_channel 
+0x2ad9 006057 call le_send_adv_ind 
+0x2ada 006058 nbranch le_adv_not_match ,match 
+0x2adb 006059 fetch 1 ,mem_le_req_rcv 
+0x2adc 006060 increase 1 ,pdata 
+0x2add 006061 store 1 ,mem_le_req_rcv 
+0x2ade 006062 fetch 1 ,mem_le_rxbuf_adv_header 
+0x2adf 006063 and pdata ,0x0f ,pdata 
+0x2ae0 006064 beq scan_req ,le_send_scan_response 
+0x2ae1 006065 beq connect_req ,le_parse_connect_req 
+:      006066 le_adv_not_match:
+0x2ae2 006067 bpatchx patch29_4 ,mem_patch29 
+0x2ae3 006068 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2ae4 006069 fetcht 1 ,mem_le_adv_channel_map 
+0x2ae5 006070 isub temp ,null 
+0x2ae6 006071 nbranch le_adv_loop ,zero 
+0x2ae7 006072 random pdata 
+0x2ae8 006073 arg 0x1ff ,temp 
+0x2ae9 006074 iand temp ,pdata 
+0x2aea 006075 add pdata ,250 ,pdata 
+0x2aeb 006076 call delay 
+0x2aec 006077 arg le_adv_interval_timer ,queue 
+0x2aed 006078 fetch 2 ,mem_le_adv_interval 
+0x2aee 006079 branch timer_init 
+:      006081 le_send_adv_protect_txbuf:
+0x2aef 006082 arg mem_le_tx_buf_temp ,contw 
+0x2af0 006083 arg mem_le_txheader ,contr 
+0x2af1 006084 branch memcpy48 
+:      006086 le_send_adv_recover_txbuf:
+0x2af2 006087 arg mem_le_tx_buf_temp ,contr 
+0x2af3 006088 arg mem_le_txheader ,contw 
+0x2af4 006089 branch memcpy48 
+:      006091 le_init_adv:
+0x2af5 006092 bpatchx patch29_5 ,mem_patch29 
+0x2af6 006093 disable master 
+:      006094 le_adv_access:
+0x2af7 006095 setarg 0x8e89be 
+0x2af8 006096 lshift8 pdata ,pdata 
+0x2af9 006097 or_into 0xd6 ,pdata 
+0x2afa 006098 iforce access 
+0x2afb 006099 setarg 0x555555 
+0x2afc 006100 store 3 ,mem_le_crcinit 
+0x2afd 006101 rtn 
+:      006105 le_send_adv_ind:
+0x2afe 006106 bpatchx patch29_6 ,mem_patch29 
+0x2aff 006107 fetch 1 ,mem_le_adv_type 
+0x2b00 006108 fetcht 1 ,mem_le_adv_own_addr_type 
+0x2b01 006109 lshift4 temp ,temp 
+0x2b02 006110 lshift2 temp ,temp 
+0x2b03 006111 iadd temp ,temp 
+0x2b04 006112 storet 1 ,mem_le_txheader 
+0x2b05 006113 beq adv_direct_ind ,le_send_adv_direct_ind 
+0x2b06 006114 fetcht 1 ,mem_le_adv_data_len 
+0x2b07 006115 add temp ,6 ,pdata 
+0x2b08 006116 store 1 ,mem_le_txlen 
+0x2b09 006117 fetch 6 ,mem_le_lap 
+0x2b0a 006118 store 6 ,mem_le_txpayload 
+0x2b0b 006119 copy temp ,loopcnt 
+0x2b0c 006120 arg mem_le_adv_data ,contr 
+0x2b0d 006121 call memcpy_fast 
+0x2b0e 006122 branch le_send_adv_transmit 
+:      006124 le_send_adv_direct_ind:
+0x2b0f 006125 setarg 12 
+0x2b10 006126 store 1 ,mem_le_txlen 
+0x2b11 006127 fetch 6 ,mem_le_lap 
+0x2b12 006128 store 6 ,mem_le_txpayload 
+0x2b13 006129 fetch 6 ,mem_hci_plap 
+0x2b14 006130 istore 6 ,contw 
+:      006131 le_send_adv_transmit:
+0x2b15 006132 bpatchx patch29_7 ,mem_patch29 
+0x2b16 006133 fetch 1 ,mem_le_adv_transmit 
+0x2b17 006134 increase 1 ,pdata 
+0x2b18 006135 store 1 ,mem_le_adv_transmit 
+0x2b19 006136 arg 1800 ,stop_watch 
+0x2b1a 006137 disable match 
+0x2b1b 006138 branch le_transmit_receive_sifs_without_change_mode 
+:      006141 le_send_scan_request:
+0x2b1c 006142 bpatchx patch2a_0 ,mem_patch2a 
+0x2b1d 006143 fetch 1 ,mem_le_scan_type 
+0x2b1e 006144 rtnne le_scan_type_active 
+0x2b1f 006145 fetch 1 ,mem_le_adv_transmit 
+0x2b20 006146 increase 1 ,pdata 
+0x2b21 006147 store 1 ,mem_le_adv_transmit 
+0x2b22 006148 arg 0x0c03 ,temp 
+0x2b23 006149 fetch 1 ,mem_le_scan_own_addr_type 
+0x2b24 006150 nsetflag blank ,le_sender_addr_bit ,temp 
+0x2b25 006151 copy rega ,pdata 
+0x2b26 006152 nsetflag blank ,le_receiver_addr_bit ,temp 
+0x2b27 006153 storet 2 ,mem_le_txheader 
+0x2b28 006154 fetch 6 ,mem_le_lap 
+0x2b29 006155 istore 6 ,contw 
+0x2b2a 006156 fetch 6 ,mem_le_plap 
+0x2b2b 006157 istore 6 ,contw 
+0x2b2c 006158 branch le_transmit_receive_sifs_without_change_mode 
+:      006160 le_send_scan_response:
+0x2b2d 006161 bpatchx patch2a_1 ,mem_patch2a 
+0x2b2e 006162 fetch 6 ,mem_le_rxbuf_adv_scan_req_adv_address 
+0x2b2f 006163 fetcht 6 ,mem_le_lap 
+0x2b30 006164 isub temp ,null 
+0x2b31 006165 nrtn zero 
+0x2b32 006166 arg scan_rsp ,temp 
+0x2b33 006167 fetch 1 ,mem_le_adv_own_addr_type 
+0x2b34 006168 nsetflag blank ,le_sender_addr_bit ,temp 
+0x2b35 006169 storet 1 ,mem_le_txheader 
+0x2b36 006170 fetcht 1 ,mem_le_scan_data_len 
+0x2b37 006171 add temp ,6 ,pdata 
+0x2b38 006172 store 1 ,mem_le_txlen 
+0x2b39 006173 fetch 6 ,mem_le_lap 
+0x2b3a 006174 store 6 ,mem_le_txpayload 
+0x2b3b 006175 arg mem_le_scan_data ,contr 
+0x2b3c 006176 copy temp ,loopcnt 
+0x2b3d 006177 call memcpy_fast 
+0x2b3e 006178 call le_transmit_norx 
+0x2b3f 006179 branch le_adv_not_match 
+:      006181 le_parse_connect_req:
+0x2b40 006182 fetch 6 ,mem_le_rxbuf_adv_connect_ind_adv_address 
+0x2b41 006183 fetcht 6 ,mem_le_lap 
+0x2b42 006184 isub temp ,null 
+0x2b43 006185 nrtn zero 
+0x2b44 006186 call le_scan_check_sender_addr_type 
+0x2b45 006187 storer rega ,1 ,mem_le_conn_peer_addr_type 
+0x2b46 006188 fetch 6 ,mem_le_rxbuf_adv_connect_ind_init_address 
+0x2b47 006189 store 6 ,mem_le_plap 
+0x2b48 006190 fetch 8 ,mem_le_rxbuf_adv_connect_ind_access_address 
+0x2b49 006191 store 8 ,mem_le_access 
+0x2b4a 006192 fetcht 2 ,mem_le_rxbuf_adv_connect_ind_win_offset 
+0x2b4b 006193 bpatchx patch2a_2 ,mem_patch2a 
+0x2b4c 006194 lshift2 temp ,temp 
+0x2b4d 006195 fetch 2 ,mem_le_rxbuf_adv_connect_ind_interval 
+0x2b4e 006196 lshift2 pdata ,pdata 
+0x2b4f 006197 store 2 ,mem_le_tsniff 
+0x2b50 006198 store 4 ,mem_le_anchor 
+0x2b51 006199 isub temp ,pdata 
+0x2b52 006200 add pdata ,-2 ,clke_bt 
+0x2b53 006201 fetch 9 ,mem_le_rxbuf_adv_connect_ind_latency 
+0x2b54 006202 store 9 ,mem_le_slave_latency 
+0x2b55 006203 fetch 1 ,mem_le_rxbuf_adv_connect_ind_hop_and_sca 
+0x2b56 006204 and pdata ,0x1f ,temp 
+0x2b57 006205 storet 1 ,mem_le_hop 
+0x2b58 006206 rshift4 pdata ,temp 
+0x2b59 006207 rshift temp ,temp 
+0x2b5a 006208 storet 1 ,mem_le_peer_sca 
+0x2b5b 006209 arg mem_le_state ,rega 
+0x2b5c 006210 call le_receive_window_size 
+0x2b5d 006211 arg mem_le_state ,rega 
+0x2b5e 006212 call le_calc_channel_map 
+0x2b5f 006213 call le_init_slave 
+0x2b60 006214 call context_new 
+0x2b61 006215 nrtn zero 
+0x2b62 006216 bpatchx patch2a_3 ,mem_patch2a 
+0x2b63 006217 call calc_clke_offset 
+0x2b64 006218 call le_l2cap_reset_signaling_identifier 
+0x2b65 006219 jam bt_evt_le_connected ,mem_fifo_temp 
+0x2b66 006220 call ui_ipc_send_event 
+0x2b67 006221 branch context_save 
+:      006224 le_next_adv_channel:
+0x2b68 006225 bpatchx patch2a_4 ,mem_patch2a 
+0x2b69 006226 fetch 1 ,mem_le_ch_mapped 
+0x2b6a 006227 beq 37 ,le_next_adv_channel_curr_channel_37 
+0x2b6b 006228 beq 38 ,le_next_adv_channel_curr_channel_38 
+0x2b6c 006229 beq 39 ,le_next_adv_channel_curr_channel_39 
+0x2b6d 006230 branch le_next_adv_channel_curr_channel_39 
+:      006232 le_next_adv_channel_curr_channel_37:
+0x2b6e 006233 fetcht 1 ,mem_le_adv_channel_map 
+0x2b6f 006234 isolate1 bit_adv_channel_map_38 ,temp 
+0x2b70 006235 branch set_le_next_adv_channel_38 ,true 
+0x2b71 006236 isolate1 bit_adv_channel_map_39 ,temp 
+0x2b72 006237 branch set_le_next_adv_channel_39 ,true 
+0x2b73 006238 branch set_le_next_adv_channel_37 
+:      006241 le_next_adv_channel_curr_channel_38:
+0x2b74 006242 fetcht 1 ,mem_le_adv_channel_map 
+0x2b75 006243 isolate1 bit_adv_channel_map_39 ,temp 
+0x2b76 006244 branch set_le_next_adv_channel_39 ,true 
+0x2b77 006245 isolate1 bit_adv_channel_map_37 ,temp 
+0x2b78 006246 branch set_le_next_adv_channel_37 ,true 
+0x2b79 006247 branch set_le_next_adv_channel_38 
+:      006250 le_next_adv_channel_curr_channel_39:
+0x2b7a 006251 fetcht 1 ,mem_le_adv_channel_map 
+0x2b7b 006252 isolate1 bit_adv_channel_map_37 ,temp 
+0x2b7c 006253 branch set_le_next_adv_channel_37 ,true 
+0x2b7d 006254 isolate1 bit_adv_channel_map_38 ,temp 
+0x2b7e 006255 branch set_le_next_adv_channel_38 ,true 
+0x2b7f 006256 branch set_le_next_adv_channel_39 
+:      006258 set_le_next_adv_channel_37:
+0x2b80 006259 jam 37 ,mem_le_ch_mapped 
+0x2b81 006260 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2b82 006261 set1 bit_adv_channel_map_37 ,pdata 
+0x2b83 006262 store 1 ,mem_le_adv_channel_map_temp 
+0x2b84 006263 rtn 
+:      006265 set_le_next_adv_channel_38:
+0x2b85 006266 jam 38 ,mem_le_ch_mapped 
+0x2b86 006267 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2b87 006268 set1 bit_adv_channel_map_38 ,pdata 
+0x2b88 006269 store 1 ,mem_le_adv_channel_map_temp 
+0x2b89 006270 rtn 
+:      006272 set_le_next_adv_channel_39:
+0x2b8a 006273 jam 39 ,mem_le_ch_mapped 
+0x2b8b 006274 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2b8c 006275 set1 bit_adv_channel_map_39 ,pdata 
+0x2b8d 006276 store 1 ,mem_le_adv_channel_map_temp 
+0x2b8e 006277 rtn 
+:      006282 le_parse_att:
+0x2b8f 006283 copy contr ,rega 
+0x2b90 006284 fetch 1 ,mem_device_option 
+0x2b91 006285 beq dvc_op_shutter_dy ,shutter_dy_le_parse_att 
+0x2b92 006286 beq dvc_op_keyboard ,keyboard_le_att_auto_reco_process 
+0x2b93 006287 copy rega ,contr 
+0x2b94 006288 ifetch 3 ,contr 
+0x2b95 006289 store 3 ,mem_le_att_opcode 
+:      006290 le_parse_att2:
+0x2b96 006291 beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
+0x2b97 006292 beq attop_exchange_mtu_response ,le_parse_att_exchange_mtu_response 
+0x2b98 006293 beq attop_find_information_request ,le_parse_att_find_information_request 
+0x2b99 006294 beq attop_find_by_type_value_request ,le_parse_att_find_by_type_value_request 
+0x2b9a 006295 beq attop_read_by_type_request ,le_parse_att_read_by_type_request 
+0x2b9b 006296 beq attop_read_request ,le_parse_att_read_request 
+0x2b9c 006297 beq attop_read_blob_request ,le_parse_att_read_blob_request 
+0x2b9d 006298 beq attop_read_by_group_type_request ,le_parse_att_read_by_group_type_request 
+0x2b9e 006299 beq attop_write_request ,le_parse_att_write_request 
+0x2b9f 006300 beq attop_prepare_write_request ,le_parse_att_prepare_write_request 
+0x2ba0 006301 beq attop_execute_write_request ,le_parse_att_execute_write_request 
+0x2ba1 006302 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
+0x2ba2 006303 beq attop_write_command ,le_parse_att_write_command 
+0x2ba3 006304 rtn 
+:      006307 le_send_att_exchange_mtu_requset:
+0x2ba4 006308 force 3 ,rega 
+0x2ba5 006309 call le_fifo_malloc_tx_l2cap_gatt 
+0x2ba6 006310 setarg attop_exchange_mtu_request 
+:      006311 le_send_att_exchange_mtu_common:
+0x2ba7 006312 istore 1 ,contw 
+0x2ba8 006313 fetch 2 ,mem_le_local_mtu 
+0x2ba9 006314 istore 2 ,contw 
+0x2baa 006315 rtn 
+:      006318 le_parse_att_exchange_mtu_request:
+0x2bab 006319 call le_parse_att_exchange_mtu_response 
+:      006320 le_send_att_exchange_mtu_response:
+0x2bac 006321 force 3 ,rega 
+0x2bad 006322 call le_fifo_malloc_tx_l2cap_gatt 
+0x2bae 006323 setarg attop_exchange_mtu_response 
+0x2baf 006324 branch le_send_att_exchange_mtu_common 
+:      006326 le_parse_att_exchange_mtu_response:
+0x2bb0 006327 rshift8 pdata ,pdata 
+0x2bb1 006328 store 2 ,mem_le_remote_mtu 
+0x2bb2 006329 rtn 
+:      006331 le_parse_att_find_information_request:
+0x2bb3 006332 call le_get_search_handle_start_end_common 
+0x2bb4 006333 call enable_user 
+0x2bb5 006334 branch le_send_att_find_information_response 
+:      006337 le_att_handle_inrange:
+0x2bb6 006338 ifetch 2 ,contr 
+0x2bb7 006339 and_into 0xff ,pdata 
+0x2bb8 006340 rtn blank 
+0x2bb9 006341 isub regb ,null 
+0x2bba 006342 rtn zero 
+0x2bbb 006343 nrtn positive 
+0x2bbc 006344 isub regc ,null 
+0x2bbd 006345 rtn zero 
+0x2bbe 006346 branch le_att_handle_blank ,positive 
+0x2bbf 006347 force 1 ,null 
+0x2bc0 006348 rtn 
+:      006349 le_att_handle_blank:
+0x2bc1 006350 force 0 ,pdata 
+0x2bc2 006351 rtn 
+:      006354 le_send_att_find_information_response:
+0x2bc3 006355 arg 3 ,timeup 
+0x2bc4 006356 call le_init_attlist_search 
+:      006357 le_send_att_find_information_res_loop:
+0x2bc5 006358 call le_att_handle_inrange 
+0x2bc6 006359 branch le_send_att_find_information_res_end ,blank 
+0x2bc7 006360 nbranch le_send_att_find_information_res_next ,positive 
+0x2bc8 006361 increase -2 ,contr 
+0x2bc9 006362 call store_contr 
+0x2bca 006363 call get_contw 
+0x2bcb 006364 nbranch le_send_att_find_information_res_store_info2 ,user 
+0x2bcc 006365 call push_stack_rega_b_c 
+0x2bcd 006366 storer timeup ,4 ,mem_timeup 
+0x2bce 006367 force 30 ,rega 
+0x2bcf 006368 call le_fifo_malloc_tx_l2cap_gatt 
+0x2bd0 006369 fetchr timeup ,4 ,mem_timeup 
+0x2bd1 006370 call pop_stack_rega_b_c 
+0x2bd2 006371 call disable_user 
+0x2bd3 006372 setarg attop_find_information_response 
+0x2bd4 006373 istore 1 ,contw 
+0x2bd5 006374 call get_contr 
+0x2bd6 006375 ifetch 2 ,contr 
+0x2bd7 006376 ifetchr rega ,1 ,contr 
+0x2bd8 006377 sub rega ,16 ,null 
+0x2bd9 006378 branch le_send_att_find_information_res_uuid128 ,zero 
+0x2bda 006379 sub rega ,2 ,null 
+0x2bdb 006380 nbranch le_send_att_error_response_notfound ,zero 
+:      006381 le_send_att_find_information_res_uuid16:
+0x2bdc 006382 setarg uuid_size_16bit 
+0x2bdd 006383 istore 1 ,contw 
+0x2bde 006384 branch le_send_att_find_information_res_store_info 
+:      006386 le_send_att_find_information_res_uuid128:
+0x2bdf 006387 setarg uuid_size_128bit 
+0x2be0 006388 istore 1 ,contw 
+0x2be1 006389 arg 1 ,timeup 
+0x2be2 006390 branch le_send_att_find_information_res_store_info 
+:      006392 le_send_att_find_information_res_store_info2:
+0x2be3 006393 call get_contr 
+0x2be4 006394 ifetch 2 ,contr 
+0x2be5 006395 ifetch 1 ,contr 
+0x2be6 006396 isub rega ,null 
+0x2be7 006397 nbranch le_send_att_find_information_res_end ,zero 
+:      006399 le_send_att_find_information_res_store_info:
+0x2be8 006400 call get_contr 
+0x2be9 006401 ifetch 2 ,contr 
+0x2bea 006402 and_into 0xff ,pdata 
+0x2beb 006403 istore 2 ,contw 
+0x2bec 006404 ifetchr loopcnt ,1 ,contr 
+0x2bed 006405 call memcpy 
+0x2bee 006406 call store_contw 
+0x2bef 006407 increase -1 ,timeup 
+0x2bf0 006408 branch le_send_att_find_information_res_end ,zero 
+:      006409 le_send_att_find_information_res_cont:
+0x2bf1 006410 call le_att_contr_add_len 
+0x2bf2 006411 branch le_send_att_find_information_res_loop 
+:      006413 le_send_att_find_information_res_next:
+0x2bf3 006414 call le_att_contr_add_len 
+0x2bf4 006415 branch le_send_att_find_information_res_cont 
+:      006417 le_send_att_find_information_res_end:
+0x2bf5 006418 branch le_send_att_error_response_notfound ,user 
+0x2bf6 006419 branch le_send_auto_len_by_mem 
+:      006422 le_parse_att_find_by_type_value_request:
+0x2bf7 006423 call le_get_search_handle_start_end_common 
+0x2bf8 006424 ifetch 2 ,contr 
+0x2bf9 006425 store 2 ,mem_le_search_uuid 
+0x2bfa 006426 call store_contr 
+0x2bfb 006427 arg mem_le_search_att_type_length ,contw 
+0x2bfc 006428 fetch 2 ,mem_le_l2cap_size 
+0x2bfd 006429 increase -7 ,pdata 
+0x2bfe 006430 call le_get_search_common2 
+0x2bff 006431 branch le_send_att_find_by_type_value_response 
+:      006434 le_start_end_handle_check_1:
+0x2c00 006435 disable user 
+0x2c01 006436 fetcht 2 ,mem_le_search_handle_start 
+0x2c02 006437 fetch 2 ,mem_le_search_handle_end 
+0x2c03 006438 isub temp ,null 
+0x2c04 006439 nbranch le_start_end_handle_check_1_fail ,positive 
+0x2c05 006440 deposit temp 
+0x2c06 006441 rtnne 0 
+:      006442 le_start_end_handle_check_1_fail:
+0x2c07 006443 enable user 
+0x2c08 006444 jam att_err_invalid_handle ,mem_le_err_code 
+0x2c09 006445 branch le_send_att_error_response 
+:      006448 le_send_att_find_by_type_value_response:
+0x2c0a 006449 call le_start_end_handle_check_1 
+0x2c0b 006450 rtn user 
+0x2c0c 006451 fetcht 2 ,mem_le_search_uuid 
+0x2c0d 006452 setarg uuid_gatt_primary_service 
+0x2c0e 006453 isub temp ,null 
+0x2c0f 006454 branch le_send_att_find_by_type_value_res_primary ,zero 
+0x2c10 006455 branch le_send_att_error_response_notfound 
+:      006458 le_send_att_find_by_type_value_res_primary:
+0x2c11 006459 jam le_find_by_type_val_res_not_found ,mem_le_search_res 
+0x2c12 006460 fetcht 2 ,mem_le_search_handle_start 
+0x2c13 006461 storet 2 ,mem_temp 
+0x2c14 006462 call le_att_get_handle_info 
+0x2c15 006463 nbranch le_send_att_error_response_notfound ,blank 
+:      006464 le_send_att_find_primary_search_loop:
+0x2c16 006465 fetcht 2 ,mem_temp 
+0x2c17 006466 call le_att_get_handle_info 
+0x2c18 006467 nbranch le_send_att_error_response_notfound2 ,blank 
+0x2c19 006468 copy contr ,rega 
+0x2c1a 006469 fetch 1 ,mem_le_curr_att_len 
+0x2c1b 006470 copy pdata ,loopcnt 
+0x2c1c 006471 fetcht 1 ,mem_le_search_att_type_length 
+0x2c1d 006472 isub temp ,null 
+0x2c1e 006473 nbranch le_send_att_find_primary_search_loop1 ,zero 
+0x2c1f 006474 arg mem_le_search_att_type ,regb 
+0x2c20 006475 call string_compare 
+0x2c21 006477 branch le_send_att_find_primary_search_end_start_handle_found ,zero 
+0x2c22 006479 fetch 2 ,mem_le_cur_uuid 
+0x2c23 006480 fetcht 2 ,mem_le_search_uuid 
+0x2c24 006481 isub temp ,null 
+0x2c25 006482 branch le_send_att_find_primary_search_end_ending_handle_found ,zero 
+:      006483 le_send_att_find_primary_search_loop1:
+0x2c26 006484 fetch 2 ,mem_temp 
+0x2c27 006485 increase 1 ,pdata 
+0x2c28 006486 store 2 ,mem_temp 
+0x2c29 006487 branch le_send_att_find_primary_search_loop 
+:      006489 le_send_att_error_response_notfound2:
+0x2c2a 006490 fetch 1 ,mem_le_search_res 
+0x2c2b 006491 beq le_find_by_type_val_res_found_starting_handle ,le_send_att_find_primary_search_end_ending_handle_found 
+0x2c2c 006492 branch le_send_att_error_response_notfound 
+:      006495 le_send_att_find_primary_search_end_start_handle_found:
+0x2c2d 006496 fetch 2 ,mem_le_cur_uuid 
+0x2c2e 006497 fetcht 2 ,mem_le_search_uuid 
+0x2c2f 006498 isub temp ,null 
+0x2c30 006499 nbranch le_send_att_find_primary_search_loop1 ,zero 
+0x2c31 006500 jam le_find_by_type_val_res_found_starting_handle ,mem_le_search_res 
+0x2c32 006502 fetcht 2 ,mem_temp 
+0x2c33 006503 storet 2 ,mem_le_cur_handle_start 
+0x2c34 006504 branch le_send_att_find_primary_search_loop1 
+:      006506 le_send_att_find_primary_search_end_ending_handle_found:
+0x2c35 006507 fetch 1 ,mem_le_search_res 
+0x2c36 006508 beq le_find_by_type_val_res_not_found ,le_send_att_find_primary_search_loop1 
+0x2c37 006509 jam le_find_by_type_val_res_found_ending_handle ,mem_le_search_res 
+0x2c38 006510 fetcht 2 ,mem_temp 
+0x2c39 006511 increase -1 ,temp 
+0x2c3a 006512 storet 2 ,mem_le_cur_handle_end 
+:      006514 le_send_att_find_primary_search_end:
+0x2c3b 006515 arg 5 ,rega 
+0x2c3c 006516 call le_fifo_malloc_tx_l2cap_gatt 
+0x2c3d 006517 setarg attop_find_by_type_value_response 
+0x2c3e 006518 istore 1 ,contw 
+0x2c3f 006519 fetch 2 ,mem_le_cur_handle_start 
+0x2c40 006520 istore 2 ,contw 
+0x2c41 006521 fetch 2 ,mem_le_cur_handle_end 
+0x2c42 006522 istore 2 ,contw 
+0x2c43 006523 rtn 
+:      006527 le_parse_att_read_by_type_request:
+0x2c44 006528 call le_get_search_handle_start_end_common 
+0x2c45 006529 call le_get_search_att_type 
+0x2c46 006530 branch le_send_att_read_by_type_response 
+:      006532 le_send_att_read_by_type_response:
+0x2c47 006533 fetcht 2 ,mem_le_search_handle_start 
+0x2c48 006534 storet 2 ,mem_temp 
+0x2c49 006535 call le_init_attlist_search 
+0x2c4a 006536 call le_att_get_handle_ptr2 
+0x2c4b 006537 increase -2 ,contr 
+0x2c4c 006538 copy contr ,pdata 
+0x2c4d 006539 store 2 ,mem_le_cur_attlist_start_ptr 
+0x2c4e 006541 fetcht 2 ,mem_le_search_att_type 
+0x2c4f 006542 setarg uuid_chrctr_device_name 
+0x2c50 006543 isub temp ,null 
+0x2c51 006544 branch le_send_att_read_by_type_res_device_name ,zero 
+0x2c52 006545 setarg uuid_gatt_characteristic 
+0x2c53 006546 isub temp ,null 
+0x2c54 006547 nbranch le_send_att_read_by_type_res_not_characteristic ,zero 
+0x2c55 006548 arg 2 ,timeup 
+:      006549 le_send_att_read_by_type_response_loop:
+0x2c56 006550 call le_att_check_handle_end 
+0x2c57 006551 nbranch le_send_att_read_by_type_response_end ,positive 
+0x2c58 006552 fetcht 2 ,mem_temp 
+0x2c59 006553 call le_att_get_handle_info_from_ptr 
+0x2c5a 006554 nbranch le_send_att_read_by_type_response_end ,blank 
+0x2c5b 006555 call le_att_same_type 
+0x2c5c 006556 nbranch le_send_att_read_by_type_response_next_handle ,zero 
+0x2c5d 006557 nbranch le_send_att_read_by_type_res_found_next ,user 
+0x2c5e 006558 disable user 
+0x2c5f 006559 call le_get_search_max_mtu_data 
+0x2c60 006560 copy pdata ,rega 
+0x2c61 006561 call le_fifo_malloc_tx_l2cap_gatt 
+0x2c62 006562 setarg attop_read_by_type_response 
+0x2c63 006563 istore 1 ,contw 
+0x2c64 006564 copy contw ,alarm 
+0x2c65 006565 increase 1 ,contw 
+0x2c66 006567 call le_send_att_read_by_type_write_properties 
+0x2c67 006568 call le_att_next_handle 
+0x2c68 006569 call le_att_get_handle_info_from_ptr 
+0x2c69 006570 call le_send_att_read_by_type_write_uuid 
+0x2c6a 006571 fetch 1 ,mem_le_cur_uuid_length 
+0x2c6b 006572 add pdata ,5 ,rega 
+0x2c6c 006573 istorer rega ,1 ,alarm 
+0x2c6d 006575 sub rega ,7 ,null 
+0x2c6e 006576 ncall enable_user2 ,zero 
+0x2c6f 006577 call disable_user2 ,zero 
+0x2c70 006578 call le_get_search_max_mtu_data 
+0x2c71 006579 increase -2 ,pdata 
+0x2c72 006580 idiv rega 
+0x2c73 006581 call wait_div_end 
+0x2c74 006582 quotient timeup 
+0x2c75 006583 increase -1 ,timeup 
+0x2c76 006584 branch le_send_att_read_by_type_response_end ,zero 
+:      006585 le_send_att_read_by_type_response_next_handle:
+0x2c77 006586 call le_att_next_handle 
+0x2c78 006587 branch le_send_att_read_by_type_response_loop 
+:      006588 le_send_att_read_by_type_response_end:
+0x2c79 006589 branch le_send_att_error_response_notfound ,user 
+0x2c7a 006590 branch le_send_auto_len_by_mem 
+:      006592 le_send_att_read_by_type_res_found_next:
+0x2c7b 006593 call le_store_att_record 
+0x2c7c 006594 call le_att_next_handle 
+0x2c7d 006595 call le_att_get_handle_info_from_ptr 
+0x2c7e 006596 call le_send_att_read_by_type_res_check_pair_length_type 
+0x2c7f 006597 nbranch le_send_att_read_by_type_response_end ,blank 
+0x2c80 006599 call get_contw 
+0x2c81 006600 fetch 2 ,mem_temp 
+0x2c82 006601 increase -1 ,pdata 
+0x2c83 006602 istore 2 ,contw 
+0x2c84 006603 call le_write_att_record_common 
+0x2c85 006604 call le_send_att_read_by_type_write_uuid 
+0x2c86 006605 increase -1 ,timeup 
+0x2c87 006606 branch le_send_att_read_by_type_response_end ,zero 
+0x2c88 006607 branch le_send_att_read_by_type_response_next_handle 
+:      006610 le_send_att_read_by_type_write_properties:
+0x2c89 006611 fetch 2 ,mem_temp 
+0x2c8a 006612 istore 2 ,contw 
+0x2c8b 006614 fetch 1 ,mem_le_curr_att_len 
+0x2c8c 006615 copy pdata ,loopcnt 
+0x2c8d 006616 call get_contr 
+0x2c8e 006617 call memcpy_fast 
+0x2c8f 006618 branch store_contw 
+:      006619 le_send_att_read_by_type_write_uuid:
+0x2c90 006620 call get_contw 
+0x2c91 006621 fetch 2 ,mem_temp 
+0x2c92 006622 istore 2 ,contw 
+0x2c93 006623 call store_contw 
+0x2c94 006624 fetch 1 ,mem_le_cur_uuid_length 
+0x2c95 006625 copy pdata ,loopcnt 
+0x2c96 006626 call get_contw 
+0x2c97 006627 call get_contr 
+0x2c98 006628 isub loopcnt ,contr 
+0x2c99 006629 increase -1 ,contr 
+0x2c9a 006630 call memcpy_fast 
+0x2c9b 006631 branch store_contw 
+:      006633 le_send_att_read_by_type_res_not_characteristic:
+0x2c9c 006634 bpatchx patch2a_5 ,mem_patch2a 
+0x2c9d 006635 call le_att_get_uuid_ptr 
+0x2c9e 006636 branch le_send_att_error_response_notfound ,blank 
+0x2c9f 006637 copy contr ,regc 
+0x2ca0 006639 call le_get_search_max_mtu_data 
+0x2ca1 006640 copy regc ,contr 
+0x2ca2 006641 ifetcht 1 ,contr 
+0x2ca3 006642 increase 4 ,temp 
+0x2ca4 006643 call not_greater_than 
+0x2ca5 006644 copy pdata ,regc 
+0x2ca6 006645 copy pdata ,rega 
+0x2ca7 006646 call store_contr 
+0x2ca8 006647 call le_fifo_malloc_tx_l2cap_gatt 
+0x2ca9 006649 setarg attop_read_by_type_response 
+0x2caa 006650 istore 1 ,contw 
+0x2cab 006651 add regc ,-2 ,pdata 
+0x2cac 006652 add pdata ,-2 ,loopcnt 
+0x2cad 006653 istore 1 ,contw 
+0x2cae 006654 fetch 2 ,mem_le_cur_handle 
+0x2caf 006655 istore 2 ,contw 
+0x2cb0 006656 call get_contr 
+0x2cb1 006657 branch memcpy_fast 
+:      006660 le_send_att_read_by_type_res_device_name:
+0x2cb2 006661 call le_att_get_uuid_ptr 
+0x2cb3 006662 branch le_send_att_error_response_notfound ,blank 
+0x2cb4 006663 increase -5 ,contr 
+0x2cb5 006664 ifetch 2 ,contr 
+0x2cb6 006665 store 2 ,mem_temp 
+0x2cb7 006666 call le_get_search_max_mtu_data 
+0x2cb8 006667 fetcht 1 ,mem_le_name_len 
+0x2cb9 006668 increase 4 ,temp 
+0x2cba 006669 call not_greater_than 
+0x2cbb 006670 copy pdata ,regc 
+0x2cbc 006671 copy pdata ,rega 
+0x2cbd 006672 call le_fifo_malloc_tx_l2cap_gatt 
+0x2cbe 006673 setarg attop_read_by_type_response 
+0x2cbf 006674 istore 1 ,contw 
+0x2cc0 006675 add regc ,-2 ,pdata 
+0x2cc1 006676 add pdata ,-2 ,loopcnt 
+0x2cc2 006677 istore 1 ,contw 
+0x2cc3 006678 fetch 2 ,mem_temp 
+0x2cc4 006679 istore 2 ,contw 
+0x2cc5 006680 arg mem_le_name ,contr 
+0x2cc6 006681 branch memcpy_fast 
+:      006684 le_init_attlist_search:
+0x2cc7 006685 bpatchx patch2a_6 ,mem_patch2a 
+0x2cc8 006686 fetch 2 ,mem_le_search_handle_start 
+0x2cc9 006687 iforce regb 
+0x2cca 006688 fetch 2 ,mem_le_search_handle_end 
+0x2ccb 006689 iforce regc 
+0x2ccc 006690 fetch 2 ,mem_ui_le_uuid_table 
+0x2ccd 006691 iforce contr 
+0x2cce 006692 branch enable_user 
+:      006696 le_att_get_handle_ptr:
+0x2ccf 006697 call le_att_get_handle_ptr2 
+0x2cd0 006698 branch le_att_get_handle_ptr_found ,zero 
+0x2cd1 006699 rtn 
+:      006701 le_att_get_handle_ptr2:
+0x2cd2 006702 bpatchx patch2a_7 ,mem_patch2a 
+0x2cd3 006703 fetch 2 ,mem_ui_le_uuid_table 
+0x2cd4 006704 iforce contr 
+:      006705 le_att_get_handle_loop1:
+0x2cd5 006706 ifetch 2 ,contr 
+0x2cd6 006707 and_into 0xff ,pdata 
+0x2cd7 006708 rtn blank 
+0x2cd8 006709 isub temp ,null 
+0x2cd9 006710 rtn zero 
+0x2cda 006711 call le_att_contr_add_len 
+0x2cdb 006712 call le_att_contr_add_len 
+0x2cdc 006713 branch le_att_get_handle_loop1 
+:      006715 le_att_get_handle_ptr_found:
+:      006716 le_att_contr_add_len:
+0x2cdd 006717 ifetch 1 ,contr 
+0x2cde 006718 iadd contr ,contr 
+0x2cdf 006719 rtn 
+:      006722 le_att_get_uuid_ptr:
+0x2ce0 006723 bpatchx patch2b_0 ,mem_patch2b 
+0x2ce1 006724 fetch 2 ,mem_ui_le_uuid_table 
+0x2ce2 006725 iforce contr 
+:      006726 le_att_get_uuid_loop:
+0x2ce3 006727 ifetch 2 ,contr 
+0x2ce4 006728 and_into 0xff ,pdata 
+0x2ce5 006729 rtn blank 
+0x2ce6 006730 store 2 ,mem_le_cur_handle 
+0x2ce7 006731 ifetch 1 ,contr 
+0x2ce8 006732 copy contr ,contw 
+0x2ce9 006733 iadd contr ,contr 
+0x2cea 006734 fetcht 1 ,mem_le_search_att_type_length 
+0x2ceb 006735 isub temp ,null 
+0x2cec 006736 nbranch le_att_get_uuid_ptr_next ,zero 
+0x2ced 006737 copy pdata ,loopcnt 
+0x2cee 006738 copy contw ,regb 
+0x2cef 006739 arg mem_le_search_att_type ,rega 
+0x2cf0 006740 call string_compare 
+0x2cf1 006741 rtn zero 
+0x2cf2 006742 fetch 1 ,mem_le_search_att_type_length 
+:      006743 le_att_get_uuid_ptr_next:
+0x2cf3 006744 iadd contw ,contr 
+0x2cf4 006745 call le_att_contr_add_len 
+0x2cf5 006746 branch le_att_get_uuid_loop 
+:      006753 le_att_get_last_handle:
+0x2cf6 006754 arg 0x01 ,temp 
+0x2cf7 006755 fetch 2 ,mem_ui_le_uuid_table 
+0x2cf8 006756 iforce contr 
+0x2cf9 006757 copy contr ,contw 
+:      006758 le_att_get_last_handle_loop:
+0x2cfa 006759 ifetch 2 ,contr 
+0x2cfb 006760 and_into 0xff ,pdata 
+0x2cfc 006761 rtn blank 
+0x2cfd 006762 add pdata ,1 ,temp 
+0x2cfe 006763 call le_att_contr_add_len 
+0x2cff 006764 call le_att_contr_add_len 
+0x2d00 006765 copy contr ,contw 
+0x2d01 006766 branch le_att_get_last_handle_loop 
+:      006769 le_att_get_handle_info_from_ptr:
+0x2d02 006770 fetch 2 ,mem_le_cur_attlist_start_ptr 
+0x2d03 006771 branch le_att_get_handle_info_fast 
+:      006773 le_att_get_handle_info:
+0x2d04 006774 bpatchx patch2b_1 ,mem_patch2b 
+0x2d05 006775 fetch 2 ,mem_ui_le_uuid_table 
+:      006776 le_att_get_handle_info_fast:
+0x2d06 006777 iforce contr 
+:      006778 le_att_get_handle_loop:
+0x2d07 006779 ifetch 2 ,contr 
+0x2d08 006780 and_into 0xff ,pdata 
+0x2d09 006781 branch le_att_unfind_handle ,blank 
+0x2d0a 006782 isub temp ,null 
+0x2d0b 006783 branch le_att_finded_handle ,zero 
+0x2d0c 006784 call le_att_contr_add_len 
+0x2d0d 006785 call le_att_contr_add_len 
+0x2d0e 006786 branch le_att_get_handle_loop 
+:      006788 le_att_unfind_handle:
+0x2d0f 006789 branch disable_blank 
+:      006791 le_att_finded_handle:
+0x2d10 006792 ifetch 1 ,contr 
+0x2d11 006793 store 1 ,mem_le_cur_uuid_length 
+0x2d12 006794 copy pdata ,loopcnt 
+0x2d13 006795 arg mem_le_cur_uuid ,contw 
+0x2d14 006796 call memcpy_fast 
+0x2d15 006797 ifetch 1 ,contr 
+0x2d16 006798 store 1 ,mem_le_curr_att_len 
+0x2d17 006799 call store_contr 
+0x2d18 006800 branch enable_blank 
+:      006804 le_parse_att_read_request:
+0x2d19 006805 call le_check_encrypt_state 
+0x2d1a 006806 fetcht 2 ,mem_le_att_handle 
+0x2d1b 006807 fetch 1 ,mem_le_configuration 
+0x2d1c 006808 bbit1 bit_ble_read_auth ,le_send_att_read_response_check_auth 
+:      006811 le_send_att_read_response:
+0x2d1d 006812 call le_att_get_handle_ptr2 
+0x2d1e 006813 nbranch le_send_att_error_response_notfound ,zero 
+0x2d1f 006814 call le_send_att_read_response_check_handle ,user 
+0x2d20 006815 rtn user 
+0x2d21 006816 call le_att_get_handle_ptr_found 
+0x2d22 006817 increase -2 ,contr 
+0x2d23 006818 ifetch 2 ,contr 
+0x2d24 006819 arg uuid_chrctr_device_name ,temp 
+0x2d25 006820 isub temp ,null 
+0x2d26 006821 branch le_send_device_name ,zero 
+0x2d27 006822 copy contr ,regc 
+0x2d28 006823 call le_get_search_max_mtu_data 
+0x2d29 006824 copy regc ,contr 
+0x2d2a 006825 ifetcht 1 ,contr 
+0x2d2b 006826 increase 1 ,temp 
+0x2d2c 006827 call not_greater_than 
+:      006828 le_send_att_read_response_less:
+0x2d2d 006829 copy pdata ,regc 
+0x2d2e 006830 copy pdata ,rega 
+0x2d2f 006831 call store_contr 
+0x2d30 006832 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d31 006833 setarg attop_read_response 
+0x2d32 006834 istore 1 ,contw 
+0x2d33 006835 add regc ,-1 ,loopcnt 
+0x2d34 006836 call get_contr 
+0x2d35 006837 branch memcpy 
+:      006839 le_send_device_name:
+0x2d36 006840 call le_get_search_max_mtu_data 
+0x2d37 006841 fetcht 1 ,mem_le_name_len 
+0x2d38 006842 increase 1 ,temp 
+0x2d39 006843 call not_greater_than 
+0x2d3a 006844 copy pdata ,regc 
+0x2d3b 006845 copy pdata ,rega 
+0x2d3c 006847 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d3d 006848 setarg attop_read_response 
+0x2d3e 006849 istore 1 ,contw 
+0x2d3f 006850 add regc ,-1 ,loopcnt 
+0x2d40 006851 arg mem_le_name ,contr 
+0x2d41 006852 branch memcpy 
+:      006855 le_send_att_read_response_check_auth:
+0x2d42 006856 fetch 2 ,mem_le_pairing_handle 
+0x2d43 006857 isub temp ,null 
+0x2d44 006858 nbranch le_send_att_read_response ,zero 
+0x2d45 006859 nbranch le_send_att_read_response ,user 
+:      006860 le_send_att_read_response_error_insufficient_auth:
+0x2d46 006861 jam att_err_insufficient_authentication ,mem_le_err_code 
+0x2d47 006862 branch le_send_att_error_response 
+:      006864 le_send_att_read_response_check_handle:
+0x2d48 006865 increase -2 ,contr 
+0x2d49 006866 ifetch 2 ,contr 
+0x2d4a 006867 bbit1 bit_of_att_handle_read_authenticated ,le_send_att_read_response_error_insufficient_auth 
+0x2d4b 006868 branch disable_user 
+:      006870 le_parse_att_read_blob_request:
+0x2d4c 006871 ifetch 2 ,contr 
+0x2d4d 006872 store 2 ,mem_le_att_offset 
+0x2d4e 006873 iforce rega 
+0x2d4f 006874 fetcht 2 ,mem_le_att_handle 
+:      006875 le_send_att_read_blob_response:
+0x2d50 006876 call le_att_get_handle_ptr 
+0x2d51 006877 branch le_send_att_error_response_notfound ,blank 
+0x2d52 006878 ifetch 1 ,contr 
+0x2d53 006879 isub rega ,loopcnt 
+0x2d54 006880 nbranch le_send_att_error_response_notfound ,positive 
+0x2d55 006881 call store_contr 
+0x2d56 006882 call le_get_search_max_mtu_data 
+0x2d57 006883 add loopcnt ,1 ,temp 
+0x2d58 006884 call not_greater_than 
+:      006885 le_send_att_read_blob_response_less:
+0x2d59 006886 copy pdata ,rega 
+0x2d5a 006887 copy pdata ,regc 
+0x2d5b 006888 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d5c 006889 setarg attop_read_blob_response 
+0x2d5d 006890 istore 1 ,contw 
+0x2d5e 006891 add regc ,-1 ,loopcnt 
+0x2d5f 006892 fetcht 2 ,mem_le_att_offset 
+0x2d60 006893 call get_contr 
+0x2d61 006894 iadd temp ,contr 
+0x2d62 006895 branch memcpy_fast 
+:      006899 le_parse_att_read_by_group_type_request:
+0x2d63 006900 call le_get_search_handle_start_end_common 
+0x2d64 006901 call le_get_search_att_type 
+0x2d65 006902 branch le_send_att_read_by_group_type_response 
+:      006908 le_send_att_read_by_group_type_response:
+0x2d66 006909 arg 2 ,timeup 
+0x2d67 006910 fetcht 2 ,mem_le_search_handle_start 
+0x2d68 006911 storet 2 ,mem_temp 
+0x2d69 006912 call le_att_get_handle_ptr2 
+0x2d6a 006913 increase -2 ,contr 
+0x2d6b 006914 copy contr ,pdata 
+0x2d6c 006915 store 2 ,mem_le_cur_attlist_start_ptr 
+:      006916 le_send_att_read_by_group_type_response_loop:
+0x2d6d 006917 call le_att_check_handle_end 
+0x2d6e 006918 nbranch le_send_att_read_by_group_type_end0 ,positive 
+0x2d6f 006919 fetcht 2 ,mem_temp 
+0x2d70 006920 call le_att_get_handle_info_from_ptr 
+0x2d71 006921 nbranch le_send_att_read_by_group_type_end1 ,blank 
+0x2d72 006923 call le_att_same_type 
+0x2d73 006924 nbranch le_send_att_read_by_group_type_next_handle ,zero 
+0x2d74 006925 copy timeup ,pdata 
+0x2d75 006926 beq 0 ,le_send_att_read_by_group_type_end1 
+0x2d76 006927 nbranch le_send_att_read_by_group_type_store_write_record ,user 
+0x2d77 006928 disable user 
+0x2d78 006930 call le_get_search_max_mtu_data 
+0x2d79 006931 copy pdata ,rega 
+0x2d7a 006932 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d7b 006933 setarg attop_read_by_group_type_response 
+0x2d7c 006934 istore 1 ,contw 
+0x2d7d 006935 fetch 1 ,mem_le_curr_att_len 
+0x2d7e 006936 add pdata ,4 ,rega 
+0x2d7f 006937 istorer rega ,1 ,contw 
+0x2d80 006938 call store_contw 
+0x2d81 006939 sub rega ,6 ,null 
+0x2d82 006940 ncall enable_user2 ,zero 
+0x2d83 006941 call disable_user2 ,zero 
+0x2d84 006942 call le_get_search_max_mtu_data 
+0x2d85 006943 increase -2 ,pdata 
+0x2d86 006944 idiv rega 
+0x2d87 006945 call wait_div_end 
+0x2d88 006946 quotient timeup 
+0x2d89 006947 branch le_send_att_read_by_group_type_store_record 
+:      006948 le_send_att_read_by_group_type_store_write_record:
+0x2d8a 006949 call le_send_att_read_by_group_type_check_pair_length_type 
+0x2d8b 006950 nbranch le_send_att_read_by_group_type_end1 ,blank 
+0x2d8c 006951 fetch 2 ,mem_temp 
+0x2d8d 006952 increase -1 ,pdata 
+0x2d8e 006953 store 2 ,mem_le_cur_handle_end 
+0x2d8f 006954 call le_write_att_record 
+:      006955 le_send_att_read_by_group_type_store_record:
+0x2d90 006956 fetch 2 ,mem_temp 
+0x2d91 006957 store 2 ,mem_le_cur_handle_start 
+0x2d92 006958 call le_store_att_record 
+0x2d93 006959 increase -1 ,timeup 
+:      006961 le_send_att_read_by_group_type_next_handle:
+0x2d94 006962 call le_att_next_handle 
+0x2d95 006963 branch le_send_att_read_by_group_type_response_loop 
+:      006965 le_send_att_read_by_type_res_check_pair_length_type:
+0x2d96 006966 fetch 1 ,mem_le_cur_uuid_length 
+0x2d97 006967 branch le_send_att_read_by_group_type_check_pair_length_type + 1 
+:      006970 le_send_att_read_by_group_type_check_pair_length_type:
+0x2d98 006971 fetch 1 ,mem_le_curr_att_len 
+0x2d99 006972 branch le_send_att_read_by_group_type_check_pair_length_type_16byte ,user2 
+0x2d9a 006973 increase -2 ,pdata 
+0x2d9b 006974 rtn 
+:      006976 le_send_att_read_by_group_type_check_pair_length_type_16byte:
+0x2d9c 006977 increase -16 ,pdata 
+0x2d9d 006978 rtn 
+:      006980 le_send_att_read_by_group_type_end0:
+0x2d9e 006981 fetch 2 ,mem_temp 
+0x2d9f 006982 store 2 ,mem_le_cur_handle_end 
+0x2da0 006983 branch le_send_att_read_by_group_type_end_common 
+:      006984 le_send_att_read_by_group_type_end1:
+0x2da1 006985 fetch 2 ,mem_temp 
+0x2da2 006986 increase -1 ,pdata 
+0x2da3 006987 store 2 ,mem_le_cur_handle_end 
+0x2da4 006988 branch le_send_att_read_by_group_type_end_common 
+:      006989 le_send_att_read_by_group_type_end_common:
+0x2da5 006990 branch le_send_att_error_response_notfound ,user 
+0x2da6 006991 call le_write_att_record 
+0x2da7 006992 branch le_send_auto_len_by_mem 
+:      006997 le_parse_att_write_request:
+0x2da8 006998 copy contr ,rega 
+0x2da9 006999 fetch 2 ,mem_le_l2cap_size 
+0x2daa 007000 add pdata ,-3 ,regb 
+0x2dab 007001 call le_writeatt_cb 
+:      007002 le_send_att_write_response_check_auth:
+0x2dac 007003 bpatchx patch2b_2 ,mem_patch2b 
+0x2dad 007004 call le_check_encrypt_state 
+0x2dae 007005 fetcht 2 ,mem_le_att_handle 
+0x2daf 007006 call le_att_get_handle_ptr2 
+0x2db0 007007 nbranch le_send_att_write_response_error_invalid_handle ,zero 
+0x2db1 007008 call le_send_att_write_response_check_handle ,user 
+0x2db2 007009 rtn user 
+0x2db3 007011 fetch 1 ,mem_le_configuration 
+0x2db4 007012 bbit0 bit_ble_write_auth ,le_send_att_write_response 
+0x2db5 007014 fetcht 2 ,mem_le_att_handle 
+0x2db6 007015 fetch 2 ,mem_le_pairing_handle 
+0x2db7 007016 isub temp ,null 
+0x2db8 007017 nbranch le_send_att_write_response ,zero 
+0x2db9 007018 call le_check_encrypt_state 
+0x2dba 007019 nbranch le_send_att_write_response ,user 
+0x2dbb 007020 branch le_send_att_read_response_error_insufficient_auth 
+:      007023 le_send_att_write_response:
+0x2dbc 007024 force 1 ,rega 
+0x2dbd 007025 call le_fifo_malloc_tx_l2cap_gatt 
+0x2dbe 007026 setarg attop_write_response 
+0x2dbf 007027 istore 1 ,contw 
+0x2dc0 007028 rtn 
+:      007030 le_send_att_write_response_check_handle:
+0x2dc1 007031 increase -2 ,contr 
+0x2dc2 007032 ifetch 2 ,contr 
+0x2dc3 007033 bbit1 bit_of_att_handle_write_authenticated ,le_send_att_read_response_error_insufficient_auth 
+0x2dc4 007034 branch disable_user 
+:      007036 le_send_att_write_response_error_invalid_handle:
+0x2dc5 007037 jam att_err_invalid_handle ,mem_le_err_code 
+0x2dc6 007038 branch le_send_att_error_response 
+:      007041 le_check_encrypt_state:
+0x2dc7 007042 bpatchx patch2b_3 ,mem_patch2b 
+0x2dc8 007043 call disable_user 
+0x2dc9 007044 fetch 1 ,mem_le_pairing_mode 
+0x2dca 007045 rtneq le_pairing_mode_none 
+0x2dcb 007046 fetch 1 ,mem_context 
+0x2dcc 007047 rtnbit1 lestate_encryption 
+0x2dcd 007048 branch enable_user 
+:      007051 le_parse_att_prepare_write_request:
+0x2dce 007052 add contr ,2 ,rega 
+0x2dcf 007053 fetch 2 ,mem_le_l2cap_size 
+0x2dd0 007054 add pdata ,-5 ,regb 
+0x2dd1 007055 call le_writeatt_cb 
+0x2dd2 007056 branch le_send_att_prepare_write_response 
+:      007059 le_send_att_prepare_write_response:
+0x2dd3 007060 fetch 2 ,mem_le_l2cap_size 
+0x2dd4 007061 copy pdata ,rega 
+0x2dd5 007062 call le_fifo_malloc_tx_l2cap_gatt 
+0x2dd6 007063 setarg attop_prepare_write_response 
+0x2dd7 007064 istore 1 ,contw 
+0x2dd8 007065 fetch 2 ,mem_le_att_handle 
+0x2dd9 007066 istore 2 ,contw 
+0x2dda 007067 fetch 2 ,mem_le_l2cap_size 
+0x2ddb 007068 add pdata ,-5 ,loopcnt 
+0x2ddc 007069 fetch 2 ,mem_le_payload_ptr 
+0x2ddd 007070 add pdata ,7 ,contr 
+0x2dde 007071 ifetch 2 ,contr 
+0x2ddf 007072 istore 2 ,contw 
+0x2de0 007073 branch memcpy_fast 
+:      007077 le_parse_att_execute_write_request:
+:      007079 le_send_att_execute_write_response:
+0x2de1 007080 force 1 ,rega 
+0x2de2 007081 call le_fifo_malloc_tx_l2cap_gatt 
+0x2de3 007082 setarg attop_execute_write_response 
+0x2de4 007083 istore 1 ,contw 
+0x2de5 007084 rtn 
+:      007086 le_parse_handle_value_confirmation:
+0x2de6 007087 fetch 1 ,mem_le_l2cap_att_states 
+0x2de7 007088 set0 ble_l2cap_recv_confirmation_packet ,pdata 
+0x2de8 007089 store 1 ,mem_le_l2cap_att_states 
+0x2de9 007090 rtn 
+:      007092 le_parse_att_write_command:
+0x2dea 007093 copy contr ,rega 
+0x2deb 007094 fetch 2 ,mem_le_l2cap_size 
+0x2dec 007095 add pdata ,-3 ,regb 
+0x2ded 007096 branch le_writeatt_cb 
+:      007101 le_att_malloc_tx_notify:
+0x2dee 007102 copy temp ,regc 
+0x2def 007103 increase 3 ,rega 
+0x2df0 007104 call le_fifo_malloc_tx_l2cap_gatt 
+0x2df1 007105 increase -3 ,rega 
+0x2df2 007106 setarg attop_handle_value_notification 
+0x2df3 007107 istore 1 ,contw 
+0x2df4 007108 copy regc ,temp 
+0x2df5 007109 istoret 2 ,contw 
+0x2df6 007110 rtn 
+:      007113 le_att_malloc_tx_indication:
+0x2df7 007114 fetch 1 ,mem_le_l2cap_att_states 
+0x2df8 007115 set1 ble_l2cap_send_indication_packet ,pdata 
+0x2df9 007116 store 1 ,mem_le_l2cap_att_states 
+0x2dfa 007117 copy temp ,regc 
+0x2dfb 007118 increase 3 ,rega 
+0x2dfc 007119 call le_fifo_malloc_tx_l2cap_gatt 
+0x2dfd 007120 increase -3 ,rega 
+0x2dfe 007121 setarg attop_handle_value_indication 
+0x2dff 007122 istore 1 ,contw 
+0x2e00 007123 copy regc ,temp 
+0x2e01 007124 istoret 2 ,contw 
+0x2e02 007125 rtn 
+:      007130 le_send_att_error_response_notfound:
+0x2e03 007131 bpatchx patch2b_4 ,mem_patch2b 
+0x2e04 007132 jam att_err_attribute_not_found ,mem_le_err_code 
+:      007133 le_send_att_error_response:
+0x2e05 007134 force 5 ,rega 
+0x2e06 007135 call le_fifo_malloc_tx_l2cap_gatt 
+0x2e07 007136 setarg attop_error_response 
+0x2e08 007137 istore 1 ,contw 
+0x2e09 007138 fetch 1 ,mem_le_att_opcode 
+0x2e0a 007139 istore 1 ,contw 
+0x2e0b 007140 fetch 2 ,mem_le_att_handle 
+0x2e0c 007141 istore 2 ,contw 
+0x2e0d 007142 fetch 1 ,mem_le_err_code 
+0x2e0e 007143 istore 1 ,contw 
+0x2e0f 007144 rtn 
+:      007147 le_fifo_malloc_tx_l2cap_gatt:
+0x2e10 007148 bpatchx patch2b_5 ,mem_patch2b 
+0x2e11 007149 force le_l2cap_cid_att ,regb 
+0x2e12 007150 branch le_fifo_malloc_tx_l2cap 
+:      007153 le_att_next_handle:
+0x2e13 007154 fetcht 2 ,mem_temp 
+0x2e14 007155 increase 1 ,temp 
+0x2e15 007156 storet 2 ,mem_temp 
+0x2e16 007157 rtn 
+:      007159 le_att_check_handle_end:
+0x2e17 007160 fetcht 2 ,mem_temp 
+0x2e18 007161 fetch 2 ,mem_le_search_handle_end 
+0x2e19 007162 isub temp ,null 
+0x2e1a 007163 rtn 
+:      007166 le_att_same_type:
+0x2e1b 007167 bpatchx patch2b_6 ,mem_patch2b 
+0x2e1c 007168 fetcht 1 ,mem_le_search_att_type_length 
+0x2e1d 007169 arg mem_le_search_att_type ,rega 
+:      007170 le_att_check_same_common:
+0x2e1e 007171 fetch 1 ,mem_le_cur_uuid_length 
+0x2e1f 007172 copy pdata ,loopcnt 
+0x2e20 007173 isub temp ,null 
+0x2e21 007174 nrtn zero 
+0x2e22 007175 arg mem_le_cur_uuid ,regb 
+0x2e23 007176 branch string_compare 
+:      007179 le_store_att_record:
+0x2e24 007180 bpatchx patch2b_7 ,mem_patch2b 
+0x2e25 007181 fetch 1 ,mem_le_curr_att_len 
+0x2e26 007182 store 1 ,mem_temp_block0 
+0x2e27 007183 copy pdata ,loopcnt 
+0x2e28 007184 call get_contr 
+0x2e29 007185 branch memcpy_fast 
+:      007188 le_write_att_record:
+0x2e2a 007189 bpatchx patch2c_0 ,mem_patch2c 
+0x2e2b 007190 call get_contw 
+0x2e2c 007191 fetch 2 ,mem_le_cur_handle_start 
+0x2e2d 007192 istore 2 ,contw 
+0x2e2e 007193 fetch 2 ,mem_le_cur_handle_end 
+0x2e2f 007194 istore 2 ,contw 
+:      007195 le_write_att_record_common:
+0x2e30 007196 fetch 1 ,mem_temp_block0 
+0x2e31 007197 copy pdata ,loopcnt 
+0x2e32 007198 call memcpy_fast 
+0x2e33 007199 branch store_contw 
+:      007203 le_send_auto_len_by_mem:
+0x2e34 007204 bpatchx patch2c_1 ,mem_patch2c 
+0x2e35 007205 call get_contw 
+0x2e36 007206 call le_fifo_get_last_att_ptr 
+0x2e37 007207 copy contw ,pdata 
+0x2e38 007208 isub contr ,rega 
+0x2e39 007209 call le_fifo_get_last_l2cap_ptr 
+0x2e3a 007210 copy rega ,pdata 
+0x2e3b 007211 istore 2 ,contr 
+0x2e3c 007212 increase 4 ,rega 
+0x2e3d 007213 call le_fifo_get_last_tx_ptr 
+0x2e3e 007214 copy rega ,pdata 
+0x2e3f 007215 istore 1 ,contr 
+0x2e40 007216 rtn 
+:      007219 le_get_search_handle_start_end_common:
+0x2e41 007220 rshift8 pdata ,pdata 
+0x2e42 007221 store 2 ,mem_le_search_handle_start 
+0x2e43 007222 ifetch 2 ,contr 
+0x2e44 007223 store 2 ,mem_le_search_handle_end 
+0x2e45 007224 rtn 
+:      007227 le_get_search_max_mtu_data:
+0x2e46 007228 bpatchx patch2c_2 ,mem_patch2c 
+0x2e47 007229 fetch 2 ,mem_le_remote_mtu 
+0x2e48 007231 fetcht 2 ,mem_le_local_mtu 
+0x2e49 007235 branch not_greater_than 
+:      007239 le_get_search_att_type:
+0x2e4a 007240 bpatchx patch2c_3 ,mem_patch2c 
+0x2e4b 007241 call store_contr 
+0x2e4c 007242 arg mem_le_search_att_type_length ,contw 
+:      007243 le_get_search_common:
+0x2e4d 007244 fetch 2 ,mem_le_l2cap_size 
+0x2e4e 007245 increase -5 ,pdata 
+:      007246 le_get_search_common2:
+0x2e4f 007247 istore 1 ,contw 
+0x2e50 007248 copy pdata ,loopcnt 
+0x2e51 007249 call get_contr 
+0x2e52 007250 branch memcpy_fast 
+:      007254 le_parse_writing_attribute_start:
+0x2e53 007255 fetch 2 ,mem_le_rxbuf_data_att_cid 
+0x2e54 007256 rtnne le_l2cap_cid_att 
+0x2e55 007257 fetch 1 ,mem_le_l2cap_att_states 
+0x2e56 007258 set1 ble_l2cap_deal_with_continue_packet ,pdata 
+0x2e57 007259 store 1 ,mem_le_l2cap_att_states 
+0x2e58 007260 fetch 3 ,mem_le_rxbuf_data_att_opcode 
+0x2e59 007261 store 3 ,mem_le_att_opcode 
+0x2e5a 007262 set1 mark_old_packet ,mark 
+0x2e5b 007263 beq attop_write_request ,le_parse_attribute_write_request 
+0x2e5c 007264 beq attop_write_command ,le_parse_attribute_write_command 
+0x2e5d 007265 beq attop_execute_write_request ,le_parse_att_execute_write_request 
+0x2e5e 007266 beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
+0x2e5f 007267 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
+0x2e60 007268 set0 mark_old_packet ,mark 
+:      007269 le_clear_l2cap_att_states_deal_with_contiune_packet:
+0x2e61 007270 fetch 1 ,mem_le_l2cap_att_states 
+0x2e62 007271 set0 ble_l2cap_deal_with_continue_packet ,pdata 
+0x2e63 007272 store 1 ,mem_le_l2cap_att_states 
+0x2e64 007273 rtn 
+:      007275 le_parse_writing_attribute_continue:
+0x2e65 007276 fetch 1 ,mem_le_l2cap_att_states 
+0x2e66 007277 rtnbit0 ble_l2cap_deal_with_continue_packet 
+0x2e67 007278 set1 mark_old_packet ,mark 
+0x2e68 007279 call le_parse_l2cap_continue_common 
+0x2e69 007280 call le_parse_attribute_check_complete_packet 
+0x2e6a 007281 call le_clear_l2cap_att_states_deal_with_contiune_packet ,user 
+0x2e6b 007282 fetch 1 ,mem_le_att_opcode 
+0x2e6c 007283 beq attop_write_request ,le_send_att_write_response_check_auth 
+0x2e6d 007284 rtn 
+:      007287 le_parse_attribute_write_request:
+0x2e6e 007288 call le_parse_attribute_write_command 
+0x2e6f 007289 branch le_send_attribute_write_response_check_auth 
+:      007291 le_send_attribute_write_response_check_auth:
+0x2e70 007292 call le_parse_attribute_check_complete_packet 
+0x2e71 007293 nrtn user 
+0x2e72 007294 branch le_send_att_write_response_check_auth 
+:      007297 le_parse_attribute_write_command:
+0x2e73 007298 bpatchx patch2c_4 ,mem_patch2c 
+0x2e74 007299 call le_parse_attribute_check_complete_packet_init 
+0x2e75 007300 arg mem_le_rxbuf_data_att_write_payload ,rega 
+0x2e76 007301 branch le_writeatt_cb 
+:      007304 le_parse_attribute_check_complete_packet_init:
+0x2e77 007305 fetch 1 ,mem_le_rxbuf_data_att_write_length 
+0x2e78 007306 add pdata ,-7 ,regb 
+0x2e79 007307 increase -4 ,pdata 
+0x2e7a 007308 store 2 ,mem_le_packet_len_recved 
+0x2e7b 007309 fetcht 2 ,mem_le_rxbuf_data_att_write_l2cap_length 
+0x2e7c 007310 storet 2 ,mem_le_l2cap_size 
+0x2e7d 007311 rtn 
+:      007314 le_parse_l2cap_continue_common:
+0x2e7e 007315 fetchr regb ,1 ,mem_le_rxbuf_data_continue_length 
+0x2e7f 007316 fetch 2 ,mem_le_packet_len_recved 
+0x2e80 007317 iadd regb ,temp 
+0x2e81 007318 storet 2 ,mem_le_packet_len_recved 
+0x2e82 007319 arg mem_le_rxbuf_data_continue_payload ,rega 
+0x2e83 007320 branch le_writeatt_cb 
+:      007324 le_parse_attribute_check_complete_packet:
+0x2e84 007325 call disable_user 
+0x2e85 007326 fetch 2 ,mem_le_packet_len_recved 
+0x2e86 007327 fetcht 2 ,mem_le_l2cap_size 
+0x2e87 007328 isub temp ,null 
+0x2e88 007329 nrtn zero 
+0x2e89 007330 branch enable_user 
+:      007336 le_parse_signaling:
+0x2e8a 007337 ifetch 1 ,contr 
+0x2e8b 007338 ifetcht 1 ,contr 
+0x2e8c 007339 ifetcht 2 ,contr 
+0x2e8d 007340 beq l2cap_connection_parameter_update_response ,le_l2cap_parse_conn_parameter_update_rsp 
+0x2e8e 007341 rtn 
+:      007342 le_l2cap_parse_conn_parameter_update_rsp:
+0x2e8f 007343 ifetch 2 ,contr 
+0x2e90 007344 store 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0x2e91 007345 jam bt_evt_le_parse_conn_papa_update_rsp ,mem_fifo_temp 
+0x2e92 007346 branch ui_ipc_send_event 
+:      007352 le_l2cap_tx_update_req:
+0x2e93 007353 arg 0x0c ,rega 
+0x2e94 007354 arg l2cap_connection_parameter_update_request ,regc 
+0x2e95 007355 call le_fifo_malloc_tx_l2cap_signaling 
+0x2e96 007356 setarg 0x08 
+0x2e97 007357 istore 2 ,contw 
+0x2e98 007358 fetch 8 ,mem_le_interval_min 
+0x2e99 007359 istore 8 ,contw 
+0x2e9a 007360 rtn 
+:      007364 le_fifo_malloc_tx_l2cap_signaling:
+0x2e9b 007365 call le_l2cap_update_signaling_identifier 
+0x2e9c 007366 arg le_l2cap_cid_signal ,regb 
+0x2e9d 007367 call le_fifo_malloc_tx_l2cap 
+0x2e9e 007368 copy regc ,pdata 
+0x2e9f 007369 istore 1 ,contw 
+0x2ea0 007370 fetch 1 ,mem_le_signaling_identifier 
+0x2ea1 007371 istore 1 ,contw 
+0x2ea2 007372 rtn 
+:      007375 le_l2cap_update_signaling_identifier:
+0x2ea3 007376 fetch 1 ,mem_le_signaling_identifier 
+0x2ea4 007378 pincrease 1 
+0x2ea5 007379 store 1 ,mem_le_signaling_identifier 
+0x2ea6 007380 rtnne 0 
+:      007382 le_l2cap_reset_signaling_identifier:
+0x2ea7 007383 jam 1 ,mem_le_signaling_identifier 
+0x2ea8 007384 rtn 
+:      007389 le_pairing_mode_init:
+0x2ea9 007390 fetch 1 ,mem_le_pairing_mode 
+0x2eaa 007391 beq le_pairing_mode_none ,le_set_no_pairing 
+0x2eab 007392 beq le_pairing_mode_lagacy_justwork ,le_set_pairing_mode_lagacy_just_work 
+0x2eac 007393 beq le_pairing_mode_lagacy_passkey ,le_set_pairing_mode_lagacy_passkey 
+0x2ead 007394 beq le_pairing_mode_secure_connect_justwork ,le_set_pairing_mode_secure_justwork 
+0x2eae 007395 beq le_pairing_mode_secure_connect_numeric ,le_set_pairing_mode_secure_numeric 
+0x2eaf 007396 beq le_pairing_mode_secure_connect_passkey ,le_set_pairing_mode_secure_passkey 
+0x2eb0 007397 rtn 
+:      007399 le_set_pairing_mode_secure_justwork:
+0x2eb1 007400 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x2eb2 007401 branch le_set_noinputnooutput 
+:      007402 le_set_pairing_mode_secure_numeric:
+0x2eb3 007403 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x2eb4 007404 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+0x2eb5 007405 rtn 
+:      007406 le_set_pairing_mode_secure_passkey:
+0x2eb6 007407 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x2eb7 007408 branch le_set_displayonly 
+:      007410 le_set_no_pairing:
+0x2eb8 007411 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+:      007412 le_set_noinputnooutput:
+0x2eb9 007413 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+0x2eba 007414 rtn 
+:      007415 le_set_pairing_mode_lagacy_just_work:
+0x2ebb 007416 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+0x2ebc 007417 branch le_set_noinputnooutput 
+:      007418 le_set_pairing_mode_lagacy_passkey:
+0x2ebd 007419 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+:      007420 le_set_displayonly:
+0x2ebe 007421 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+0x2ebf 007422 rtn 
+:      007424 le_secure_connection_enable:
+0x2ec0 007425 fetch 1 ,mem_secure_connections_enable 
+0x2ec1 007426 set1 secure_connections_le_bit ,pdata 
+0x2ec2 007427 store 1 ,mem_secure_connections_enable 
+0x2ec3 007428 rtn 
+:      007430 le_secure_connection_disable:
+0x2ec4 007431 fetch 1 ,mem_secure_connections_enable 
+0x2ec5 007432 set0 secure_connections_le_bit ,pdata 
+0x2ec6 007433 store 1 ,mem_secure_connections_enable 
+0x2ec7 007434 rtn 
+:      007436 le_parse_smp:
+0x2ec8 007437 ifetch 1 ,contr 
+0x2ec9 007438 beq smp_pairing_request ,le_parse_smp_pairing_request 
+0x2eca 007440 beq smp_pairing_confirm ,le_parse_smp_pairing_confirm 
+0x2ecb 007441 beq smp_pairing_random ,le_parse_smp_pairing_random 
+0x2ecc 007442 beq smp_pairing_failed ,le_parse_smp_pairing_failed 
+0x2ecd 007444 beq smp_master_identification ,le_parse_smp_master_identification 
+0x2ece 007445 beq smp_identity_information ,le_parse_smp_identity_information 
+0x2ecf 007446 beq smp_identity_address_information ,le_parse_smp_identity_address_information 
+0x2ed0 007447 beq smp_signing_information ,le_parse_smp_signing_information 
+0x2ed1 007448 beq smp_security_request ,le_parse_smp_security_request 
+0x2ed2 007449 beq smp_pairing_public_key ,le_parse_smp_public_key 
+0x2ed3 007450 beq smp_pairing_dhkey_check ,le_parse_smp_dhkey_check 
+0x2ed4 007451 rtn 
+:      007455 le_send_smp_security_request:
+0x2ed5 007456 force 2 ,rega 
+0x2ed6 007457 call le_fifo_malloc_tx_l2cap_smp 
+0x2ed7 007458 setarg smp_security_request 
+0x2ed8 007459 istore 1 ,contw 
+0x2ed9 007460 fetch 1 ,mem_le_pres_auth 
+0x2eda 007461 istore 1 ,contw 
+0x2edb 007462 rtn 
+:      007464 le_parse_smp_pairing_request:
+0x2edc 007465 store 1 ,mem_le_preq 
+0x2edd 007466 ifetch 6 ,contr 
+0x2ede 007467 istore 6 ,contw 
+0x2edf 007468 fetch 1 ,mem_le_pairing_mode 
+0x2ee0 007469 beq le_pairing_mode_none ,le_smp_pairing_fail_reason_not_support_pairing 
+0x2ee1 007470 call le_send_smp_pairing_response 
+0x2ee2 007471 fetch 1 ,mem_sc_only_mode 
+0x2ee3 007472 branch le_parse_smp_pairing_request2 ,blank 
+0x2ee4 007473 fetch 1 ,mem_le_preq_auth 
+0x2ee5 007474 bbit0 le_auth_secure_connection_pairing_bit ,app_ble_disconnect 
+0x2ee6 007475 fetch 1 ,mem_le_pairing_mode 
+0x2ee7 007476 bbit0 le_pairing_mode_secure_connect_bit ,app_ble_disconnect 
+:      007477 le_parse_smp_pairing_request2:
+0x2ee8 007478 jam flag_le_pairing_rcv_pairing_req ,mem_le_pairing_state 
+0x2ee9 007479 fetch 1 ,mem_le_preq_iocap 
+0x2eea 007480 beq flag_iocap_displayonly ,le_set_tk_0 
+0x2eeb 007481 beq flag_iocap_displayyesno ,le_set_tk_0 
+0x2eec 007482 beq flag_iocap_noinputnooutput ,le_set_tk_0 
+0x2eed 007483 fetch 1 ,mem_le_pairing_mode 
+0x2eee 007484 beq le_pairing_mode_lagacy_passkey ,le_parse_smp_pairing_req_passkey 
+0x2eef 007485 rtneq le_pairing_mode_secure_connect_passkey 
+:      007486 le_set_tk_0:
+0x2ef0 007487 arg 0 ,pdata 
+0x2ef1 007488 store 4 ,mem_le_tk 
+0x2ef2 007489 rtn 
+:      007491 le_parse_smp_pairing_req_passkey:
+0x2ef3 007492 fetch 1 ,mem_le_configuration 
+0x2ef4 007493 bbit1 bit_ble_passkey_fixed_key ,le_parse_smp_pairing_req_fixed_passkey 
+:      007494 le_genernate_tk:
+0x2ef5 007495 arg mem_le_tk ,rega 
+0x2ef6 007496 copy rega ,contw 
+0x2ef7 007497 arg 3 ,loopcnt 
+0x2ef8 007498 call generate_random_loop 
+0x2ef9 007499 fetch 2 ,mem_le_tk + 2 
+0x2efa 007500 and_into 0x7 ,pdata 
+0x2efb 007501 store 2 ,mem_le_tk + 2 
+:      007502 le_parse_smp_pairing_req_fixed_passkey:
+0x2efc 007503 jam bt_evt_le_tk_generate ,mem_fifo_temp 
+0x2efd 007504 branch ui_ipc_send_event 
+:      007508 le_send_smp_pairing_response:
+0x2efe 007509 force 7 ,rega 
+0x2eff 007510 call le_fifo_malloc_tx_l2cap_smp 
+0x2f00 007511 fetch 7 ,mem_le_pres 
+0x2f01 007512 istore 7 ,contw 
+0x2f02 007513 rtn 
+:      007516 le_parse_smp_pairing_confirm:
+0x2f03 007517 jam flag_le_pairing_receive_pairing_confirm ,mem_le_pairing_state 
+0x2f04 007518 arg mem_le_rconfirm ,contw 
+0x2f05 007519 call memcpy16 
+0x2f06 007520 fetch 1 ,mem_le_pairing_mode 
+0x2f07 007521 beq le_pairing_mode_lagacy_passkey_res_input ,le_parse_smp_pairing_confirm_passkey_res_input 
+0x2f08 007522 beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_confirm_secure_passkey 
+0x2f09 007523 beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_confirm_sc_passkey_res_input 
+0x2f0a 007524 branch le_send_smp_pairing_confirm 
+:      007527 le_parse_smp_pairing_confirm_passkey_res_input:
+0x2f0b 007528 jam bt_evt_le_get_passkey ,mem_fifo_temp 
+0x2f0c 007529 branch ui_ipc_send_event 
+:      007531 le_parse_smp_pairing_confirm_secure_passkey:
+0x2f0d 007532 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x2f0e 007533 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
+0x2f0f 007534 rtn 
+:      007536 le_parse_smp_pairing_confirm_sc_passkey_res_input:
+0x2f10 007537 fetch 4 ,mem_le_tk 
+0x2f11 007538 branch le_parse_smp_pairing_confirm_passkey_res_input ,blank 
+0x2f12 007539 branch le_parse_smp_pairing_confirm_secure_passkey 
+:      007541 le_send_smp_pairing_confirm:
+0x2f13 007542 jam flag_le_pairing_send_pairing_confirm ,mem_le_pairing_state 
+0x2f14 007543 fetch 1 ,mem_le_pairing_mode 
+0x2f15 007544 bbit1 le_pairing_mode_secure_connect_bit ,le_send_smp_pairing_confirm_sc 
+0x2f16 007545 call generate_confirm 
+0x2f17 007546 force 17 ,rega 
+0x2f18 007547 call le_fifo_malloc_tx_l2cap_smp 
+0x2f19 007548 setarg smp_pairing_confirm 
+0x2f1a 007549 istore 1 ,contw 
+0x2f1b 007550 branch store_aes_result 
+:      007552 le_send_smp_pairing_confirm_sc:
+0x2f1c 007553 arg mem_le_srand ,contw 
+0x2f1d 007554 call generate_random 
+0x2f1e 007555 call function_f4_cb 
+0x2f1f 007556 force 17 ,rega 
+0x2f20 007557 call le_fifo_malloc_tx_l2cap_smp 
+0x2f21 007558 setarg smp_pairing_confirm 
+0x2f22 007559 istore 1 ,contw 
+0x2f23 007560 branch load_inverse_result 
+:      007562 le_parse_smp_pairing_random:
+0x2f24 007563 copy contr ,rega 
+0x2f25 007564 fetch 1 ,mem_le_pairing_mode 
+0x2f26 007565 bbit1 le_pairing_mode_secure_connect_bit ,le_parse_smp_pairing_random_sc 
+0x2f27 007566 copy rega ,contr 
+0x2f28 007567 call authenticate_rconfirm 
+0x2f29 007568 branch le_parse_smp_pairing_random_success ,zero 
+:      007569 le_send_pairing_confirm_value_failed:
+0x2f2a 007570 jam pairing_failed_confirm_value_failed ,mem_le_ll_pairing_fail_reason 
+:      007571 le_send_pairing_failed:
+0x2f2b 007572 force 2 ,rega 
+0x2f2c 007573 call le_fifo_malloc_tx_l2cap_smp 
+0x2f2d 007574 setarg smp_pairing_failed 
+0x2f2e 007575 istore 1 ,contw 
+0x2f2f 007576 fetch 1 ,mem_le_ll_pairing_fail_reason 
+0x2f30 007577 istore 1 ,contw 
+:      007578 le_parse_smp_pairing_failed:
+0x2f31 007579 bpatchx patch2c_5 ,mem_patch2c 
+0x2f32 007580 force smp_pairing_timer ,queue 
+0x2f33 007581 call timer_stop 
+0x2f34 007582 jam flag_le_pairing_null ,mem_le_pairing_state 
+0x2f35 007583 jam bt_evt_le_pairing_fail ,mem_fifo_temp 
+0x2f36 007584 branch ui_ipc_send_event 
+:      007586 le_smp_pairing_fail_reason_not_support_pairing:
+0x2f37 007587 jam pairing_failed_pairing_not_supported ,mem_le_ll_pairing_fail_reason 
+0x2f38 007588 branch le_send_pairing_failed 
+:      007590 le_parse_smp_pairing_random_sc:
+0x2f39 007591 arg mem_le_mrand ,contw 
+0x2f3a 007592 copy rega ,contr 
+0x2f3b 007593 call memcpy16 
+0x2f3c 007594 fetch 1 ,mem_le_pairing_mode 
+0x2f3d 007595 beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_random_sc_passkey 
+0x2f3e 007596 beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_random_sc_passkey 
+0x2f3f 007597 call function_g2 
+0x2f40 007598 call le_send_smp_pairing_random 
+0x2f41 007599 fetch 1 ,mem_le_pairing_mode 
+0x2f42 007600 rtnne le_pairing_mode_secure_connect_numeric 
+0x2f43 007601 jam bt_evt_le_gkey_generate ,mem_fifo_temp 
+0x2f44 007602 branch ui_ipc_send_event 
+:      007604 le_parse_smp_pairing_random_sc_passkey:
+0x2f45 007605 call function_f4_ca 
+0x2f46 007606 arg mem_aes_cmac_temp ,contw 
+0x2f47 007607 call load_inverse_result 
+0x2f48 007608 arg mem_aes_cmac_temp ,rega 
+0x2f49 007609 arg mem_le_rconfirm ,regb 
+0x2f4a 007610 arg 16 ,loopcnt 
+0x2f4b 007611 call string_compare 
+0x2f4c 007612 nbranch le_send_pairing_confirm_value_failed ,zero 
+0x2f4d 007613 branch le_send_smp_pairing_random 
+:      007615 le_parse_smp_pairing_random_success:
+0x2f4e 007616 call generate_stk 
+0x2f4f 007617 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+0x2f50 007618 call ui_ipc_send_event 
+0x2f51 007619 jam 1 ,mem_ltk_exists 
+0x2f52 007620 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+:      007622 le_send_smp_pairing_random:
+0x2f53 007623 force 17 ,rega 
+0x2f54 007624 call le_fifo_malloc_tx_l2cap_smp 
+0x2f55 007625 setarg smp_pairing_random 
+0x2f56 007626 istore 1 ,contw 
+0x2f57 007627 arg mem_le_srand ,contr 
+0x2f58 007628 branch memcpy16 
+:      007630 le_send_smp_encryption_information:
+0x2f59 007631 force 17 ,rega 
+0x2f5a 007632 call le_fifo_malloc_tx_l2cap_smp 
+0x2f5b 007633 setarg smp_encryption_information 
+0x2f5c 007634 istore 1 ,contw 
+0x2f5d 007635 fetch 1 ,mem_le_configuration 
+0x2f5e 007636 bbit1 bit_ble_pairing_fixed_ltk ,le_send_fixed_ltk 
+0x2f5f 007637 arg mem_le_ltk ,contr 
+0x2f60 007638 branch memcpy16 
+:      007640 le_send_fixed_ltk:
+0x2f61 007641 arg mem_le_fixed_ltk ,contr 
+0x2f62 007642 branch memcpy16 
+:      007645 le_send_smp_master_identification:
+0x2f63 007646 arg mem_le_ediv ,contw 
+0x2f64 007647 force 10 ,loopcnt 
+0x2f65 007648 call generate_random_loop 
+0x2f66 007649 force 11 ,rega 
+0x2f67 007650 call le_fifo_malloc_tx_l2cap_smp 
+0x2f68 007651 setarg smp_master_identification 
+0x2f69 007652 istore 1 ,contw 
+0x2f6a 007653 fetch 2 ,mem_le_ediv 
+0x2f6b 007654 istore 2 ,contw 
+0x2f6c 007655 fetch 8 ,mem_le_rand 
+0x2f6d 007656 istore 8 ,contw 
+0x2f6e 007657 rtn 
+:      007659 le_send_smp_identity_information:
+0x2f6f 007660 force 17 ,rega 
+0x2f70 007661 call le_fifo_malloc_tx_l2cap_smp 
+0x2f71 007662 setarg smp_identity_information 
+0x2f72 007663 istore 1 ,contw 
+0x2f73 007664 setarg 0 
+0x2f74 007665 istore 8 ,contw 
+0x2f75 007666 istore 8 ,contw 
+0x2f76 007667 rtn 
+:      007670 le_send_smp_identity_address_information:
+0x2f77 007671 force 8 ,rega 
+0x2f78 007672 call le_fifo_malloc_tx_l2cap_smp 
+0x2f79 007673 setarg smp_identity_address_information 
+0x2f7a 007674 istore 1 ,contw 
+0x2f7b 007675 fetch 1 ,mem_le_conn_own_addr_type 
+0x2f7c 007676 istore 1 ,contw 
+0x2f7d 007677 fetch 6 ,mem_le_lap 
+0x2f7e 007678 istore 6 ,contw 
+0x2f7f 007679 rtn 
+:      007682 le_send_pairing_fail_unspecified_reason:
+0x2f80 007683 jam pairing_failed_unspecified_reason ,mem_le_ll_pairing_fail_reason 
+0x2f81 007684 branch le_send_pairing_failed 
+:      007686 le_check_init_key_distribution:
+0x2f82 007687 fetch 1 ,mem_le_pres_init_key_distribution 
+0x2f83 007688 fetcht 1 ,mem_le_pres_init_key_distribution 
+0x2f84 007689 iand temp ,pdata 
+0x2f85 007690 rtn 
+:      007692 le_parse_smp_identity_information:
+0x2f86 007693 arg mem_le_irk ,contw 
+0x2f87 007694 call memcpy16 
+0x2f88 007695 call le_check_init_key_distribution 
+0x2f89 007696 isolate0 le_initator_irk_bit ,pdata 
+0x2f8a 007697 branch le_send_pairing_fail_unspecified_reason ,true 
+0x2f8b 007698 fetch 1 ,mem_device_option 
+0x2f8c 007699 rtnne dvc_op_module 
+0x2f8d 007700 call le_check_master_addr_type 
+0x2f8e 007701 nrtn user 
+0x2f8f 007702 branch app_ble_store_reconn_info 
+:      007705 le_check_master_addr_type:
+0x2f90 007706 call disable_user 
+0x2f91 007707 fetch 1 ,mem_le_conn_peer_addr_type 
+0x2f92 007708 rtneq master_public_addr 
+0x2f93 007709 fetch 1 ,mem_le_preq_init_key_distribution 
+0x2f94 007710 rtnbit0 le_initator_irk_bit 
+0x2f95 007711 branch enable_user 
+:      007713 le_parse_smp_identity_address_information:
+0x2f96 007714 call le_check_init_key_distribution 
+0x2f97 007715 isolate0 le_initator_irk_bit ,pdata 
+0x2f98 007716 branch le_send_pairing_fail_unspecified_reason ,true 
+0x2f99 007717 rtn 
+:      007719 le_parse_smp_master_identification:
+:      007720 le_parse_smp_signing_information:
+:      007721 le_parse_smp_security_request:
+0x2f9a 007722 rtn 
+:      007724 le_parse_smp_public_key:
+0x2f9b 007725 arg mem_le_pubkey_remote_x_256 ,contw 
+0x2f9c 007726 call memcpy64 
+0x2f9d 007727 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x2f9e 007728 jam le_sc_stat_receive_public_key ,mem_le_secure_connect_state 
+0x2f9f 007729 rtn 
+:      007731 le_parse_smp_dhkey_check:
+0x2fa0 007732 arg mem_sp_confirm_remote ,contw 
+0x2fa1 007733 call memcpy16 
+0x2fa2 007734 jam le_sc_stat_receive_dhkey ,mem_le_secure_connect_state 
+0x2fa3 007735 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x2fa4 007736 rtn 
+:      007738 le_send_smp_pairing_public_key:
+0x2fa5 007739 force 65 ,rega 
+0x2fa6 007740 call le_fifo_malloc_tx_l2cap_smp 
+0x2fa7 007741 setarg smp_pairing_public_key 
+0x2fa8 007742 istore 1 ,contw 
+0x2fa9 007743 arg mem_sc_pubkey_local_x_256 ,contr 
+0x2faa 007744 branch memcpy64 
+:      007746 le_send_smp_pairing_dhkey_check:
+0x2fab 007747 call function_f6_eb 
+0x2fac 007748 force 17 ,rega 
+0x2fad 007749 call le_fifo_malloc_tx_l2cap_smp 
+0x2fae 007750 setarg smp_pairing_dhkey_check 
+0x2faf 007751 istore 1 ,contw 
+0x2fb0 007752 branch load_inverse_result 
+:      007754 le_check_paring_time:
+0x2fb1 007755 fetch 1 ,mem_le_pairing_state 
+0x2fb2 007756 rtneq flag_le_pairing_end 
+0x2fb3 007757 arg flag_le_pairing_rcv_pairing_req ,temp 
+0x2fb4 007758 isub temp ,null 
+0x2fb5 007759 nrtn positive 
+0x2fb6 007760 arg smp_pairing_timer ,queue 
+0x2fb7 007761 call timer_check 
+0x2fb8 007762 nrtn blank 
+0x2fb9 007763 branch le_send_pairing_fail_unspecified_reason 
+:      007765 le_pairing_sm:
+0x2fba 007766 bpatchx patch2c_6 ,mem_patch2c 
+0x2fbb 007767 call le_fifo_check_nearly_full 
+0x2fbc 007768 nrtn blank 
+0x2fbd 007769 fetch 1 ,mem_le_pairing_state 
+0x2fbe 007770 beq flag_le_pairing_null ,le_pairing_sm_null 
+0x2fbf 007771 beq flag_le_pairing_start ,le_pairing_sm_start 
+0x2fc0 007772 beq flag_le_pairing_send_recurity_req ,le_pairing_sm_send_sec_req 
+0x2fc1 007773 beq flag_le_pairing_rcv_pairing_req ,le_pairing_sm_rcv_pairing_req 
+0x2fc2 007774 beq flag_le_pairing_after_auth ,le_pairing_sm_after_auth 
+0x2fc3 007775 beq flag_le_paring_send_enc_information ,le_pairng_sm_send_enc_information 
+0x2fc4 007776 beq flag_le_paring_send_master_identification ,le_pairng_sm_send_master_indentification 
+0x2fc5 007777 beq flag_le_paring_send_indentity_information ,le_pairng_sm_send_indentity_information 
+0x2fc6 007778 rtn 
+:      007780 le_pairing_sm_null:
+:      007781 le_pairing_sm_send_sec_req:
+0x2fc7 007782 fetch 1 ,mem_le_enc_state 
+0x2fc8 007783 rtnne flag_le_send_start_enc_rsp 
+0x2fc9 007784 jam flag_le_enc_end ,mem_le_enc_state 
+0x2fca 007785 jam flag_le_pairing_end ,mem_le_pairing_state 
+0x2fcb 007786 jam bt_evt_le_reconnect_complete ,mem_fifo_temp 
+0x2fcc 007787 branch ui_ipc_send_event 
+:      007790 le_pairing_sm_start:
+0x2fcd 007791 jam flag_le_pairing_send_recurity_req ,mem_le_pairing_state 
+0x2fce 007792 branch le_send_smp_security_request 
+:      007794 le_pairing_sm_rcv_pairing_req:
+0x2fcf 007795 jam flag_le_pairing_wait_stk_generation ,mem_le_pairing_state 
+0x2fd0 007796 setarg timer_smp_pairing_timeout 
+0x2fd1 007797 arg smp_pairing_timer ,queue 
+0x2fd2 007798 branch timer_init 
+:      007800 le_pairing_sm_after_auth:
+0x2fd3 007801 fetch 1 ,mem_le_enc_state 
+0x2fd4 007802 beq flag_le_send_start_enc_rsp ,le_pairing_sm_after_auth_start_enc 
+0x2fd5 007803 rtn 
+:      007805 le_pairing_sm_after_auth_start_enc:
+0x2fd6 007806 fetch 1 ,mem_le_pairing_mode 
+0x2fd7 007807 bbit1 le_pairing_mode_secure_connect_bit ,le_pairing_sm_after_auth_start_enc_sc 
+0x2fd8 007809 jam flag_le_paring_send_enc_information ,mem_le_pairing_state 
+0x2fd9 007810 call le_send_smp_encryption_information 
+:      007811 le_pairing_sm_after_auth_start_enc_common:
+0x2fda 007812 jam bt_evt_le_enc_info ,mem_fifo_temp 
+0x2fdb 007813 call ui_ipc_send_event 
+0x2fdc 007814 fetch 1 ,mem_device_option 
+0x2fdd 007815 rtnne dvc_op_module 
+0x2fde 007816 call le_check_master_addr_type 
+0x2fdf 007817 rtn user 
+0x2fe0 007818 branch app_ble_store_reconn_info 
+:      007820 le_pairing_sm_after_auth_start_enc_sc:
+0x2fe1 007821 jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
+0x2fe2 007822 branch le_pairing_sm_after_auth_start_enc_common 
+:      007824 le_pairng_sm_send_enc_information:
+0x2fe3 007825 jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
+0x2fe4 007826 branch le_send_smp_master_identification 
+:      007828 le_pairng_sm_send_master_indentification:
+0x2fe5 007829 fetch 1 ,mem_le_preq_resp_key_distribution 
+0x2fe6 007830 fetcht 1 ,mem_le_pres_resp_key_distribution 
+0x2fe7 007831 iand temp ,pdata 
+0x2fe8 007832 isolate0 le_initator_irk_bit ,pdata 
+0x2fe9 007833 branch le_parse_start_enc_rsp_after_auth_end ,true 
+0x2fea 007834 jam flag_le_paring_send_indentity_information ,mem_le_pairing_state 
+0x2feb 007835 branch le_send_smp_identity_information 
+:      007837 le_pairng_sm_send_indentity_information:
+0x2fec 007838 call le_send_smp_identity_address_information 
+0x2fed 007839 branch le_parse_start_enc_rsp_after_auth_end 
+:      007842 le_parse_start_enc_rsp_after_auth_end:
+0x2fee 007843 bpatchx patch2c_7 ,mem_patch2c 
+0x2fef 007844 force smp_pairing_timer ,queue 
+0x2ff0 007845 call timer_stop 
+0x2ff1 007846 jam flag_le_enc_end ,mem_le_enc_state 
+0x2ff2 007847 jam flag_le_pairing_end ,mem_le_pairing_state 
+0x2ff3 007848 jam bt_evt_le_pairing_complete ,mem_fifo_temp 
+0x2ff4 007849 branch ui_ipc_send_event 
+:      007853 le_secure_connect_sm:
+0x2ff5 007854 bpatchx patch2d_0 ,mem_patch2d 
+0x2ff6 007855 fetch 1 ,mem_le_pairing_mode 
+0x2ff7 007856 rtnbit0 le_pairing_mode_secure_connect_bit 
+0x2ff8 007857 fetch 1 ,mem_le_secure_connect_flag 
+0x2ff9 007858 rtnne le_sp_flag_commit_256 
+0x2ffa 007859 jam sp_flag_standby ,mem_le_secure_connect_flag 
+0x2ffb 007860 fetch 1 ,mem_le_secure_connect_state 
+0x2ffc 007861 beq le_sc_stat_receive_public_key ,le_sc_sm_receive_public_key 
+0x2ffd 007862 beq le_sc_stat_wait_send_public_key ,le_sc_sm_wait_send_public_key 
+0x2ffe 007863 beq le_sc_stat_send_public_key ,le_sc_sm_send_public_key 
+0x2fff 007864 beq le_sc_stat_receive_dhkey ,le_sc_sm_receive_dhkey 
+0x3000 007865 beq le_sc_stat_wait_confirm_gkey ,le_sc_sm_wait_confirm_gkey 
+0x3001 007866 beq le_sc_stat_passkey_wait_confirm ,le_sc_sm_passkey_wait_confirm 
+0x3002 007867 rtn 
+:      007869 le_sc_state_clear:
+0x3003 007870 jam sp_flag_standby ,mem_le_secure_connect_flag 
+0x3004 007871 jam le_sc_stat_null ,mem_le_secure_connect_state 
+0x3005 007872 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
+0x3006 007873 rtn 
+:      007875 le_sc_sm_passkey_wait_confirm:
+0x3007 007876 fetch 1 ,mem_authentication_passkey_times 
+0x3008 007877 copy pdata ,queue 
+0x3009 007878 increase 1 ,pdata 
+0x300a 007879 store 1 ,mem_authentication_passkey_times 
+0x300b 007880 fetch 4 ,mem_le_tk 
+0x300c 007881 qisolate1 pdata 
+0x300d 007882 setarg 0x80 
+0x300e 007883 setflag true ,0 ,pdata 
+0x300f 007884 store 1 ,mem_passkey_1bit 
+0x3010 007885 branch le_sc_sm_ready_send_pairing_confirm 
+:      007887 le_sc_sm_wait_confirm_gkey:
+0x3011 007888 fetch 1 ,mem_le_sc_confirm_gkey_flag 
+0x3012 007889 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
+0x3013 007890 beq flag_le_sc_confrim_gkey_ok ,le_sc_confirm_gkey_ok 
+0x3014 007891 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x3015 007892 rtn 
+:      007894 le_sc_confirm_gkey_ok:
+0x3016 007895 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+0x3017 007896 call ui_ipc_send_event 
+0x3018 007897 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+0x3019 007898 branch le_send_smp_pairing_dhkey_check 
+:      007900 le_sc_sm_receive_dhkey:
+0x301a 007901 fetch 1 ,mem_sp_dhkey_invalid 
+0x301b 007902 beq sp_key_valid_256 ,le_dhkey_ready 
+0x301c 007903 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x301d 007904 rtn 
+:      007906 le_dhkey_ready:
+0x301e 007907 call function_f5 
+0x301f 007908 fetch 1 ,mem_le_pairing_mode 
+0x3020 007909 beq le_pairing_mode_secure_connect_passkey ,le_dhkey_ready_common 
+0x3021 007910 beq le_pairing_mode_secure_connect_passkey_res_input ,le_dhkey_ready_common 
+0x3022 007911 call le_set_tk_0 
+:      007912 le_dhkey_ready_common:
+0x3023 007913 call function_f6_ea 
+0x3024 007914 arg mem_aes_cmac_temp ,rega 
+0x3025 007915 arg mem_sp_confirm_remote ,regb 
+0x3026 007916 arg 16 ,loopcnt 
+0x3027 007917 call string_compare 
+0x3028 007918 branch le_dhkey_check_ok ,zero 
+:      007919 le_dhkey_check_fail:
+0x3029 007920 jam pairing_failed_dhkey_check_failed ,mem_le_ll_pairing_fail_reason 
+0x302a 007921 branch le_send_pairing_failed 
+:      007924 le_dhkey_check_ok:
+0x302b 007925 call sp_calc_check_publickey_256 
+0x302c 007926 nbranch le_dhkey_check_fail ,zero 
+0x302d 007927 jam 1 ,mem_ltk_exists 
+0x302e 007928 fetch 1 ,mem_le_pairing_mode 
+0x302f 007929 beq le_pairing_mode_secure_connect_justwork ,le_sc_confirm_gkey_ok 
+0x3030 007930 beq le_pairing_mode_secure_connect_passkey ,le_sc_confirm_gkey_ok 
+0x3031 007931 beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_confirm_gkey_ok 
+0x3032 007932 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x3033 007933 jam le_sc_stat_wait_confirm_gkey ,mem_le_secure_connect_state 
+0x3034 007934 rtn 
+:      007936 le_sc_sm_send_public_key:
+0x3035 007937 fetch 1 ,mem_le_pairing_mode 
+0x3036 007938 beq le_pairing_mode_secure_connect_passkey ,le_sc_sm_send_public_key_passkey 
+0x3037 007939 beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_sm_send_public_key_passkey 
+0x3038 007940 jam 0 ,mem_passkey_1bit 
+:      007941 le_sc_sm_ready_send_pairing_confirm:
+0x3039 007942 branch le_send_smp_pairing_confirm 
+:      007944 le_sc_sm_send_public_key_passkey:
+0x303a 007945 jam 0 ,mem_authentication_passkey_times 
+0x303b 007946 rtneq le_pairing_mode_secure_connect_passkey_res_input 
+0x303c 007947 branch le_parse_smp_pairing_req_passkey 
+:      007950 le_sc_sm_receive_public_key:
+0x303d 007951 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x303e 007952 fetch 1 ,mem_sc_local_key_invalid 
+0x303f 007953 beq sp_key_valid_256 ,le_public_key_ready 
+0x3040 007954 rtn 
+:      007956 le_public_key_ready:
+0x3041 007957 jam le_sc_stat_wait_send_public_key ,mem_le_secure_connect_state 
+0x3042 007958 jam sp_key_invalid ,mem_sp_dhkey_invalid 
+0x3043 007959 branch sp_dhkey_calc_256 
+:      007961 le_sc_sm_wait_send_public_key:
+0x3044 007962 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x3045 007963 jam le_sc_stat_send_public_key ,mem_le_secure_connect_state 
+0x3046 007964 branch le_send_smp_pairing_public_key 
+:      007968 le_fifo_malloc_tx_l2cap_smp:
+0x3047 007969 bpatchx patch2d_1 ,mem_patch2d 
+0x3048 007970 force le_l2cap_cid_smp ,regb 
+0x3049 007971 branch le_fifo_malloc_tx_l2cap 
+:      007975 le_parse_ll:
+0x304a 007976 fetch 1 ,mem_le_rxbuf_data_ll_opcode 
+0x304b 007977 beq ll_connection_update_ind ,le_parse_connection_update_ind 
+0x304c 007978 beq ll_channel_map_ind ,le_parse_channel_map_ind 
+0x304d 007979 beq ll_terminate_ind ,le_parse_terminate_ind 
+0x304e 007980 beq ll_enc_req ,le_parse_enc_req 
+0x304f 007981 beq ll_enc_rsp ,le_parse_enc_rsp 
+0x3050 007982 beq ll_start_enc_req ,le_parse_start_enc_req 
+0x3051 007983 beq ll_start_enc_rsp ,le_parse_start_enc_rsp 
+0x3052 007984 beq ll_unknown_rsp ,le_parse_unknown_rsp 
+0x3053 007985 beq ll_feature_req ,le_parse_feature_req 
+0x3054 007986 beq ll_feature_rsp ,le_parse_feature_rsp 
+0x3055 007987 beq ll_pause_enc_req ,le_parse_pause_enc_req 
+0x3056 007988 beq ll_pause_enc_rsp ,le_parse_pause_enc_rsp 
+0x3057 007989 beq ll_version_ind ,le_parse_version_ind 
+0x3058 007990 beq ll_reject_ind ,le_parse_reject_ind 
+0x3059 007991 beq ll_ping_req ,le_parse_ping_req 
+0x305a 007992 beq ll_ping_rsp ,le_parse_ping_rsp 
+0x305b 007993 beq ll_length_req ,le_parse_length_req 
+0x305c 007994 beq ll_length_rsp ,le_parse_length_rsp 
+0x305d 007995 beq ll_phy_req ,le_parse_phy_req 
+0x305e 007996 beq ll_phy_update_ind ,le_parse_phy_update_ind 
+0x305f 007997 fetchr regc ,1 ,mem_le_rxbuf_data_ll_opcode 
+0x3060 007998 branch le_send_unknown_rsp 
+:      008002 le_parse_connection_update_ind:
+0x3061 008003 ifetch 9 ,contr 
+0x3062 008004 store 9 ,mem_le_new_param 
+0x3063 008005 ifetch 2 ,contr 
+0x3064 008006 store 2 ,mem_le_instant 
+0x3065 008007 fetch 1 ,mem_le_state 
+0x3066 008008 set1 lestate_update_param ,pdata 
+0x3067 008009 store 1 ,mem_le_state 
+0x3068 008010 rtn 
+:      008014 le_parse_channel_map_ind:
+0x3069 008015 ifetch 5 ,contr 
+0x306a 008016 store 5 ,mem_le_new_map 
+0x306b 008017 ifetch 2 ,contr 
+0x306c 008018 store 2 ,mem_le_instant 
+:      008019 le_update_map_enable:
+0x306d 008020 fetch 1 ,mem_le_state 
+0x306e 008021 set1 lestate_update_map ,pdata 
+0x306f 008022 store 1 ,mem_le_state 
+0x3070 008023 rtn 
+:      008027 le_parse_terminate_ind:
+0x3071 008028 setarg 20 
+0x3072 008029 store 2 ,mem_le_superto 
+0x3073 008030 store 2 ,mem_le_init_superto 
+0x3074 008031 rtn 
+:      008035 le_parse_enc_req:
+0x3075 008036 ifetch 8 ,contr 
+0x3076 008037 store 8 ,mem_le_rand 
+0x3077 008038 ifetch 2 ,contr 
+0x3078 008039 store 2 ,mem_le_ediv 
+0x3079 008040 ifetch 8 ,contr 
+0x307a 008041 store 8 ,mem_le_skdm 
+0x307b 008042 ifetch 4 ,contr 
+0x307c 008043 store 4 ,mem_ccm_ivm 
+0x307d 008044 call le_send_enc_rsp 
+0x307e 008045 bpatchx patch2d_2 ,mem_patch2d 
+0x307f 008046 fetch 1 ,mem_le_pairing_state 
+0x3080 008047 beq flag_le_pairing_after_auth ,le_parse_enc_req_after_auth 
+0x3081 008048 fetch 1 ,mem_le_configuration 
+0x3082 008049 bbit1 bit_ble_pairing_fixed_ltk ,le_parse_enc_req_fixed_ltk 
+0x3083 008050 fetch 1 ,mem_nv_data_number 
+0x3084 008051 ncall load_device_list_mode_4 ,blank 
+0x3085 008052 fetch 1 ,mem_ltk_exists 
+0x3086 008053 beq 0 ,le_ltk_lost 
+:      008054 le_parse_enc_req_after_auth:
+0x3087 008055 jam flag_le_rcv_enc_start ,mem_le_enc_state 
+0x3088 008056 call le_send_start_enc_req 
+0x3089 008057 branch generate_sk 
+:      008058 le_parse_enc_req_fixed_ltk:
+0x308a 008059 jam 1 ,mem_ltk_exists 
+0x308b 008060 arg mem_le_fixed_ltk ,contr 
+0x308c 008061 arg mem_le_ltk ,contw 
+0x308d 008062 call memcpy16 
+0x308e 008063 branch le_parse_enc_req_after_auth 
+:      008065 le_ltk_lost:
+0x308f 008066 jam flag_le_enc_null ,mem_le_enc_state 
+0x3090 008067 jam flag_le_enc_null ,mem_le_pairing_state 
+0x3091 008068 jam bt_evt_le_ltk_lost ,mem_fifo_temp 
+0x3092 008069 branch ui_ipc_send_event 
+:      008072 le_parse_enc_rsp:
+0x3093 008073 ifetch 8 ,contr 
+0x3094 008074 store 8 ,mem_le_skds 
+0x3095 008075 ifetch 4 ,contr 
+0x3096 008076 store 4 ,mem_ccm_ivs 
+0x3097 008077 branch generate_sk 
+:      008081 le_parse_start_enc_req:
+0x3098 008082 fetch 1 ,mem_le_state 
+0x3099 008083 set1 lestate_encryption ,pdata 
+0x309a 008084 store 1 ,mem_le_state 
+0x309b 008085 rtn 
+:      008088 le_parse_start_enc_rsp:
+0x309c 008089 rtn master 
+0x309d 008090 jam bt_evt_le_start_enc ,mem_fifo_temp 
+0x309e 008091 call ui_ipc_send_event 
+0x309f 008092 jam flag_le_send_start_enc_rsp ,mem_le_enc_state 
+0x30a0 008093 branch le_send_start_enc_rsp 
+:      008097 le_parse_unknown_rsp:
+0x30a1 008098 rtn 
+:      008102 le_parse_feature_req:
+0x30a2 008103 branch le_send_feature_rsp 
+:      008107 le_parse_feature_rsp:
+0x30a3 008108 rtn 
+:      008112 le_parse_pause_enc_req:
+0x30a4 008113 jam flag_le_enc_pause ,mem_le_enc_state 
+0x30a5 008114 call le_send_pause_enc_rsp 
+0x30a6 008115 jam bt_evt_le_pause_enc ,mem_fifo_temp 
+0x30a7 008116 branch ui_ipc_send_event 
+:      008120 le_parse_pause_enc_rsp:
+0x30a8 008121 rtn 
+:      008125 le_parse_version_ind:
+0x30a9 008126 rtn master 
+0x30aa 008127 branch le_send_version_ind 
+:      008131 le_parse_reject_ind:
+0x30ab 008132 rtn 
+:      008136 le_parse_ping_req:
+0x30ac 008137 branch le_send_ping_rsp 
+:      008141 le_parse_ping_rsp:
+0x30ad 008142 rtn 
+:      008145 le_parse_length_req:
+0x30ae 008146 call le_parse_length_rsp 
+0x30af 008147 branch le_send_data_length_res 
+:      008149 le_parse_length_rsp:
+0x30b0 008150 ifetch 8 ,contr 
+0x30b1 008151 store 8 ,mem_remote_rx_max_octets 
+0x30b2 008152 fetch 2 ,mem_remote_rx_max_octets 
+0x30b3 008153 fetcht 2 ,mem_local_tx_max_octets 
+0x30b4 008154 call not_greater_than 
+0x30b5 008155 store 2 ,mem_remote_rx_max_octets 
+0x30b6 008157 fetch 2 ,mem_remote_tx_max_octets 
+0x30b7 008158 fetcht 2 ,mem_local_rx_max_octets 
+0x30b8 008159 call not_greater_than 
+0x30b9 008160 store 2 ,mem_remote_tx_max_octets 
+0x30ba 008161 rtn 
+:      008165 le_parse_phy_req:
+0x30bb 008166 branch le_send_phy_rsp 
+:      008170 le_parse_phy_update_ind:
+0x30bc 008171 ifetch 2 ,contr 
+0x30bd 008172 store 2 ,mem_le_new_m2s_phy 
+0x30be 008173 ifetch 2 ,contr 
+0x30bf 008174 store 2 ,mem_le_instant 
+0x30c0 008175 rtn blank 
+0x30c1 008176 fetch 1 ,mem_le_state 
+0x30c2 008177 set1 lestate_update_phy ,pdata 
+0x30c3 008178 store 1 ,mem_le_state 
+0x30c4 008179 rtn 
+:      008184 le_send_terminate_ind_user_terminated:
+0x30c5 008185 arg error_remote_user_terminated_connection ,regc 
+:      008188 le_send_terminate_ind:
+0x30c6 008189 arg 2 ,rega 
+0x30c7 008190 arg ll_terminate_ind ,regb 
+0x30c8 008191 call le_fifo_malloc_tx_ll 
+0x30c9 008192 copy regc ,pdata 
+0x30ca 008193 istore 1 ,contw 
+0x30cb 008194 rtn 
+:      008198 le_send_enc_rsp:
+0x30cc 008199 arg mem_le_skds ,contw 
+0x30cd 008200 force 8 ,loopcnt 
+0x30ce 008201 call generate_random_loop 
+0x30cf 008202 arg mem_ccm_ivs ,contw 
+0x30d0 008203 force 4 ,loopcnt 
+0x30d1 008204 call generate_random_loop 
+0x30d2 008205 arg 13 ,rega 
+0x30d3 008206 arg ll_enc_rsp ,regb 
+0x30d4 008207 call le_fifo_malloc_tx_ll 
+0x30d5 008208 fetch 8 ,mem_le_skds 
+0x30d6 008209 istore 8 ,contw 
+0x30d7 008210 fetch 4 ,mem_ccm_ivs 
+0x30d8 008211 istore 4 ,contw 
+0x30d9 008212 rtn 
+:      008216 le_send_start_enc_req:
+0x30da 008217 jam flag_le_send_start_enc_req ,mem_le_enc_state 
+0x30db 008218 arg ll_start_enc_req ,regb 
+0x30dc 008219 branch le_send_ll_one_lenth 
+:      008223 le_send_start_enc_rsp:
+0x30dd 008224 arg ll_start_enc_rsp ,regb 
+0x30de 008225 branch le_send_ll_one_lenth 
+:      008230 le_send_unknown_rsp:
+0x30df 008231 arg 2 ,rega 
+0x30e0 008232 arg ll_unknown_rsp ,regb 
+0x30e1 008233 call le_fifo_malloc_tx_ll 
+0x30e2 008234 istorer regc ,1 ,contw 
+0x30e3 008235 rtn 
+:      008239 le_send_feature_rsp:
+0x30e4 008240 arg 9 ,rega 
+0x30e5 008241 arg ll_feature_rsp ,regb 
+0x30e6 008242 call le_fifo_malloc_tx_ll 
+0x30e7 008243 fetch 8 ,mem_le_local_feature 
+0x30e8 008244 or pdata ,fun_ll_feature_le_encryption ,pdata 
+0x30e9 008245 istore 8 ,contw 
+0x30ea 008246 rtn 
+:      008250 le_send_pause_enc_rsp:
+0x30eb 008251 arg ll_pause_enc_rsp ,regb 
+0x30ec 008252 branch le_send_ll_one_lenth 
+:      008256 le_send_version_ind:
+0x30ed 008257 arg 6 ,rega 
+0x30ee 008258 arg ll_version_ind ,regb 
+0x30ef 008259 call le_fifo_malloc_tx_ll 
+0x30f0 008260 fetch 5 ,mem_version 
+0x30f1 008261 istore 5 ,contw 
+0x30f2 008262 rtn 
+:      008265 le_send_reject_ind:
+0x30f3 008266 arg 2 ,rega 
+0x30f4 008267 arg ll_reject_ind ,regb 
+0x30f5 008268 call le_fifo_malloc_tx_ll 
+0x30f6 008269 setarg le_err_pin_or_key_missing 
+0x30f7 008270 istore 1 ,contw 
+0x30f8 008271 rtn 
+:      008275 le_send_ping_rsp:
+0x30f9 008276 arg ll_ping_rsp ,regb 
+0x30fa 008277 branch le_send_ll_one_lenth 
+:      008279 le_send_data_length_req:
+0x30fb 008280 arg ll_length_req ,regb 
+0x30fc 008281 branch le_send_data_length 
+:      008283 le_send_data_length_res:
+0x30fd 008284 arg ll_length_rsp ,regb 
+:      008285 le_send_data_length:
+0x30fe 008286 arg 9 ,rega 
+0x30ff 008287 call le_fifo_malloc_tx_ll 
+0x3100 008288 fetch 8 ,mem_local_rx_max_octets 
+0x3101 008289 istore 8 ,contw 
+0x3102 008290 rtn 
+:      008294 le_send_phy_rsp:
+0x3103 008295 arg 3 ,rega 
+0x3104 008296 arg ll_phy_rsp ,regb 
+0x3105 008297 call le_fifo_malloc_tx_ll 
+0x3106 008298 fetch 1 ,mem_le_tx_phys 
+0x3107 008299 and pdata ,0x07 ,pdata 
+0x3108 008300 istore 1 ,contw 
+0x3109 008301 fetch 1 ,mem_le_rx_phys 
+0x310a 008302 and pdata ,0x07 ,pdata 
+0x310b 008303 istore 1 ,contw 
+0x310c 008304 rtn 
+:      008308 le_send_ll_one_lenth:
+0x310d 008309 arg 1 ,rega 
+0x310e 008310 branch le_fifo_malloc_tx_ll 
+:      008315 g24_dispatch:
+0x310f 008316 bpatchx patch2d_3 ,mem_patch2d 
+0x3110 008317 bmark1 mark_24g_rxmode ,g24_receive_dispatch 
+0x3111 008318 branch g24_transmit_dispatch 
+:      008323 g24_prep:
+0x3112 008324 bpatchx patch2d_4 ,mem_patch2d 
+0x3113 008325 disable enable_crc 
+0x3114 008326 disable enable_white 
+0x3115 008327 setarg 0x555555 
+0x3116 008328 iforce crc24_init 
+0x3117 008329 fetch 1 ,mem_24g_ch 
+0x3118 008330 branch le_prep_next 
+:      008332 g24_receive_packet:
+0x3119 008333 bpatchx patch2d_5 ,mem_patch2d 
+0x311a 008334 fetch 1 ,mem_24g_rx_phy 
+0x311b 008335 call le_enable_phy_by_pdata 
+0x311c 008336 fetch 4 ,mem_24g_addr 
+0x311d 008337 iforce access 
+0x311e 008338 call set_sync_on 
+0x311f 008339 fetcht 1 ,mem_24g_ch 
+0x3120 008340 call le_rf_rx_enable 
+:      008341 g24_receive_rxon:
+0x3121 008342 call g24_prep 
+0x3122 008343 bmark0 mark_ble_lr ,g24_receive_nolr 
+0x3123 008344 pulse dewhiten_code_calc 
+0x3124 008345 nop 30 
+0x3125 008346 call g24_prep 
+:      008347 g24_receive_nolr:
+0x3126 008348 disable user3 
+0x3127 008349 enable decode_fec0 
+0x3128 008350 enable is_rx 
+0x3129 008351 disable is_tx 
+0x312a 008352 enable swfine 
+0x312b 008353 fetch 2 ,mem_24g_rx_window 
+0x312c 008354 iforce stop_watch 
+0x312d 008355 correlate null ,timeout 
+0x312e 008356 nbranch g24_sync_timeout ,sync 
+0x312f 008357 call rf_debug_rx_sync_line 
+0x3130 008358 bmark1 mark_ble_lr ,g24_receive_skip_fec1 
+0x3131 008359 fetch 1 ,mem_24g_disable_fec1 
+0x3132 008360 nbranch g24_receive_skip_fec1 ,blank 
+0x3133 008361 disable decode_fec0 
+0x3134 008362 enable decode_fec1 
+:      008363 g24_receive_skip_fec1:
+0x3135 008364 enable enable_white 
+0x3136 008365 enable enable_crc 
+0x3137 008366 call g24_receive_byte 
+0x3138 008367 store 1 ,mem_24g_get_syncword_crc8 
+0x3139 008368 fetcht 1 ,mem_24g_syncword_crc8 
+0x313a 008369 isub temp ,null 
+0x313b 008370 nbranch g24_hec_error ,zero 
+0x313c 008371 bpatchx patch2d_6 ,mem_patch2d 
+0x313d 008372 disable user7 
+0x313e 008373 isolate1 mark_ble_lr ,mark 
+0x313f 008374 call g24_lr_receive_pdu_len ,true 
+0x3140 008375 branch g24_lr_len_error ,user7 
+0x3141 008376 call g24_receive_byte 
+0x3142 008377 store 1 ,mem_24g_rxbuf 
+0x3143 008378 bmark1 mark_24g_rxmode ,g24_receive_skip 
+0x3144 008379 fetch 1 ,mem_24g_rxbuf 
+0x3145 008380 fetcht 1 ,mem_24g_data_type 
+0x3146 008381 icompare bits_data ,temp 
+0x3147 008382 nbranch g24_type_error ,true 
+:      008383 g24_receive_skip:
+0x3148 008384 call g24_receive_byte 
+0x3149 008385 isolate1 mark_ble_lr ,mark 
+0x314a 008386 call g24_lr_receive_payload_len ,true 
+0x314b 008387 istore 1 ,contw 
+0x314c 008388 rshift3 pdata ,pdata 
+0x314d 008389 sub pdata ,0x1f ,null 
+0x314e 008390 nbranch g24_len_over_error ,positive 
+0x314f 008391 copy pdata ,loopcnt 
+0x3150 008392 branch g24rx_nopayload ,zero 
+:      008393 g24rx_loop:
+0x3151 008394 call g24_receive_byte 
+0x3152 008395 istore 1 ,contw 
+0x3153 008396 loop g24rx_loop 
+:      008397 g24rx_nopayload:
+0x3154 008398 bmark1 mark_24g_rxmode ,g24_receive_skip_rssi 
+0x3155 008399 copy contw ,rega 
+0x3156 008400 call g24_receive_byte 
+0x3157 008401 store 1 ,mem_rssi_hex_received 
+0x3158 008402 copy rega ,contw 
+:      008403 g24_receive_skip_rssi:
+0x3159 008404 parse demod ,bucket ,24 
+0x315a 008405 rshift32 pdata ,pdata 
+0x315b 008406 rshift16 pdata ,pdata 
+0x315c 008407 istore 3 ,contw 
+0x315d 008408 fetch 1 ,mem_24g_disable_fec1 
+0x315e 008409 nbranch g24_receive_skip_disable_fec1 ,blank 
+0x315f 008410 disable decode_fec1 
+:      008411 g24_receive_skip_next:
+0x3160 008412 isolate1 mark_24g_rxmode ,mark 
+0x3161 008413 call save_rssi_dec ,true 
+0x3162 008414 branch g24_crc_error ,crc_failed 
+0x3163 008415 call rf_debug_rx_crc_line 
+0x3164 008416 bpatchx patch2d_7 ,mem_patch2d 
+0x3165 008417 enable user3 
+0x3166 008418 call le_match_set_txfreq 
+0x3167 008419 rtnmark1 mark_24g_rxmode 
+0x3168 008420 fetch 1 ,mem_rssi_hex_received 
+0x3169 008421 fetcht 1 ,mem_rssi_hex_received_max_value 
+0x316a 008422 isub temp ,null 
+0x316b 008423 call copy_temp2pdata ,positive 
+0x316c 008424 branch rssi_signal 
+:      008426 g24_receive_skip_disable_fec1:
+0x316d 008427 disable decode_fec0 
+0x316e 008428 branch g24_receive_skip_next 
+:      008431 g24_lr_receive_pdu_len:
+0x316f 008432 call g24_receive_byte 
+0x3170 008433 sub pdata ,1 ,null 
+0x3171 008434 branch enable_user7 ,positive 
+0x3172 008435 increase -2 ,pdata 
+0x3173 008436 bmark1 mark_24g_rxmode ,g24_lr_receive_pdu_norssi 
+0x3174 008437 branch enable_user7 ,blank 
+0x3175 008438 increase -1 ,pdata 
+:      008439 g24_lr_receive_pdu_norssi:
+0x3176 008440 store 1 ,mem_temp 
+0x3177 008441 rtn 
+:      008443 g24_lr_receive_payload_len:
+0x3178 008444 and_into 0x07 ,pdata 
+0x3179 008445 fetcht 1 ,mem_temp 
+0x317a 008446 lshift3 temp ,temp 
+0x317b 008447 ior temp ,pdata 
+0x317c 008448 rtn 
+:      008450 g24_receive_byte:
+0x317d 008451 parse demod ,bucket ,8 
+0x317e 008452 rshift3 pwindow ,pdata 
+0x317f 008453 rtn 
+:      008455 g24_sync_timeout:
+0x3180 008456 jam err_sync_to ,mem_24g_off_type 
+0x3181 008457 isolate1 mark_24g_rxmode ,mark 
+0x3182 008458 call rssi_noise ,true 
+:      008459 g24_end_of_packet:
+0x3183 008460 bpatchx patch2e_0 ,mem_patch2e 
+0x3184 008461 call le_disable 
+0x3185 008462 disable encode_fec1 
+0x3186 008463 disable decode_fec1 
+0x3187 008464 branch end_of_packet 
+:      008466 g24_hec_error:
+0x3188 008467 jam err_hec ,mem_24g_off_type 
+0x3189 008468 branch g24_end_of_packet 
+:      008470 g24_lr_len_error:
+0x318a 008471 jam err_lr_len ,mem_24g_off_type 
+0x318b 008472 branch g24_end_of_packet 
+:      008474 g24_type_error:
+0x318c 008475 jam err_type ,mem_24g_off_type 
+0x318d 008476 branch g24_end_of_packet 
+:      008478 g24_len_over_error:
+0x318e 008479 jam err_len_over ,mem_24g_off_type 
+0x318f 008480 branch g24_end_of_packet 
+:      008482 g24_crc_error:
+0x3190 008483 jam err_crc ,mem_24g_off_type 
+0x3191 008484 branch g24_end_of_packet 
+:      008486 g24_set_freq_tx:
+0x3192 008487 call set_sync_on 
+0x3193 008488 fetcht 1 ,mem_24g_ch 
+0x3194 008489 branch set_freq_tx 
+:      008491 g24_transmit:
+0x3195 008492 bpatchx patch2e_1 ,mem_patch2e 
+0x3196 008493 fetch 1 ,mem_24g_tx_phy 
+0x3197 008494 call le_enable_phy_by_pdata 
+0x3198 008495 fetch 4 ,mem_24g_addr 
+0x3199 008496 iforce access 
+0x319a 008497 call g24_prep 
+0x319b 008498 call g24_set_freq_tx 
+0x319c 008499 set1 txgfsk ,radio_ctrl 
+0x319d 008500 enable encode_fec0 
+0x319e 008501 enable is_tx 
+0x319f 008502 disable is_rx 
+0x31a0 008503 call rf_debug_tx_on_line 
+0x31a1 008504 disable lr_s2en 
+0x31a2 008505 bmark1 mark_ble_lr ,g24_transmit_lr 
+0x31a3 008506 bmark1 mark_ble_2m ,g24_transmit_2m 
+0x31a4 008507 rshift16 access ,pdata 
+0x31a5 008508 rshift8 pdata ,pdata 
+0x31a6 008509 rshift4 pdata ,pdata 
+0x31a7 008510 inject mod ,40 
+:      008511 g24_transmit_packet:
+0x31a8 008512 bpatchx patch2e_2 ,mem_patch2e 
+0x31a9 008513 bmark1 mark_ble_lr ,g24_transmit_nolr 
+0x31aa 008514 fetch 1 ,mem_24g_disable_fec1 
+0x31ab 008515 nbranch g24_transmit_nolr ,blank 
+0x31ac 008516 disable encode_fec0 
+0x31ad 008517 enable encode_fec1 
+:      008518 g24_transmit_nolr:
+0x31ae 008519 enable enable_white 
+0x31af 008520 enable enable_crc 
+0x31b0 008521 fetch 1 ,mem_24g_txlen 
+0x31b1 008522 iforce loopcnt 
+0x31b2 008523 arg mem_24g_txpayload ,contr 
+:      008524 g24tr_loop:
+0x31b3 008525 ifetch 1 ,contr 
+0x31b4 008526 inject mod ,8 
+0x31b5 008527 loop g24tr_loop 
+0x31b6 008528 enable enable_parity 
+0x31b7 008529 inject mod ,24 
+0x31b8 008530 disable enable_parity 
+0x31b9 008531 bmark0 mark_ble_lr ,g24_transmit_skip 
+0x31ba 008532 disable enable_white 
+0x31bb 008533 setarg 0 
+0x31bc 008534 inject mod ,3 
+:      008535 g24_transmit_skip:
+0x31bd 008536 until null ,tx_clear 
+0x31be 008537 nop 100 
+0x31bf 008538 disable lr_s2en 
+0x31c0 008539 disable encode_fec0 
+0x31c1 008540 fetch 1 ,mem_24g_disable_fec1 
+0x31c2 008541 nbranch g24_transmit_skip_disable_fec1 ,blank 
+0x31c3 008542 disable encode_fec1 
+:      008543 g24_transmit_skip_disable_fec1:
+0x31c4 008544 disable encode_fec3 
+0x31c5 008545 call set_sync_on 
+0x31c6 008546 branch rf_debug_tx_off_line 
+:      008548 g24_transmit_lr:
+0x31c7 008549 arg 10 ,loopcnt 
+:      008550 g24_transmit_lr_preamble_loop:
+0x31c8 008551 setarg 0x3c 
+0x31c9 008552 inject mod ,8 
+0x31ca 008553 loop g24_transmit_lr_preamble_loop 
+0x31cb 008554 disable encode_fec0 
+0x31cc 008555 enable encode_fec3 
+0x31cd 008556 rshift16 access ,pdata 
+0x31ce 008557 rshift16 pdata ,pdata 
+0x31cf 008558 rshift4 pdata ,pdata 
+0x31d0 008559 inject mod ,32 
+0x31d1 008560 bmark1 mark_ble_lr_s8 ,g24_transmit_lr_s8 
+:      008561 g24_transmit_lr_s2:
+0x31d2 008562 setarg 1 
+0x31d3 008563 inject mod ,5 
+0x31d4 008564 enable lr_s2en 
+0x31d5 008565 branch g24_transmit_packet 
+:      008567 g24_transmit_lr_s8:
+0x31d6 008568 setarg 0 
+0x31d7 008569 inject mod ,5 
+0x31d8 008570 branch g24_transmit_packet 
+:      008572 g24_transmit_2m:
+0x31d9 008573 fetch 1 ,mem_system_clk 
+0x31da 008574 rshift pdata ,loopcnt 
+:      008575 g24_transmit_2m_dealy:
+0x31db 008576 nop 2 
+0x31dc 008577 loop g24_transmit_2m_dealy 
+0x31dd 008579 rshift16 access ,pdata 
+0x31de 008580 rshift8 pdata ,pdata 
+0x31df 008581 rshift4 pdata ,temp 
+0x31e0 008582 copy temp ,pdata 
+0x31e1 008583 inject mod ,8 
+0x31e2 008584 copy temp ,pdata 
+0x31e3 008585 inject mod ,40 
+0x31e4 008586 branch g24_transmit_packet 
+:      008594 g24_transmit_prep:
+0x31e5 008595 bpatchx patch2e_3 ,mem_patch2e 
+0x31e6 008596 fetch 1 ,mem_24g_tx_phy 
+0x31e7 008597 bbit1 bit_le_coded_phy ,g24_lr_transmit_prep 
+0x31e8 008599 fetch 1 ,mem_24g_datalen 
+0x31e9 008600 increase 3 ,pdata 
+0x31ea 008601 store 1 ,mem_24g_txlen 
+0x31eb 008603 fetch 1 ,mem_24g_syncword_crc8 
+0x31ec 008604 store 1 ,mem_24g_txpayload 
+0x31ed 008606 fetch 1 ,mem_24g_data_type 
+0x31ee 008607 istore 1 ,contw 
+0x31ef 008609 fetch 1 ,mem_24g_datalen 
+:      008610 g24_transmit_prep_pdu:
+0x31f0 008611 lshift3 pdata ,pdata 
+0x31f1 008612 fetcht 1 ,mem_24g_pid 
+0x31f2 008613 and temp ,0x03 ,temp 
+0x31f3 008614 lshift temp ,temp 
+0x31f4 008615 ior temp ,pdata 
+0x31f5 008616 fetcht 1 ,mem_24g_no_ack 
+0x31f6 008617 iadd temp ,pdata 
+0x31f7 008618 istore 1 ,contw 
+0x31f8 008620 fetch 1 ,mem_24g_datalen 
+0x31f9 008621 iforce loopcnt 
+0x31fa 008622 arg mem_24g_txbuf ,contr 
+0x31fb 008623 call memcpy 
+0x31fc 008624 bpatchx patch2e_4 ,mem_patch2e 
+0x31fd 008626 rtnmark0 mark_24g_rxmode 
+0x31fe 008627 fetch 1 ,mem_rssi_hex 
+0x31ff 008628 istore 1 ,contw 
+0x3200 008629 fetch 1 ,mem_24g_tx_phy 
+0x3201 008630 rtnbit1 bit_le_coded_phy 
+0x3202 008631 fetch 1 ,mem_24g_txlen 
+0x3203 008632 increase 1 ,pdata 
+0x3204 008633 store 1 ,mem_24g_txlen 
+0x3205 008634 rtn 
+:      008636 g24_lr_transmit_prep:
+0x3206 008638 fetch 1 ,mem_24g_datalen 
+0x3207 008639 increase 4 ,pdata 
+0x3208 008640 bmark0 mark_24g_rxmode ,g24_lr_transmit_prep_skip 
+0x3209 008641 increase 1 ,pdata 
+:      008642 g24_lr_transmit_prep_skip:
+0x320a 008643 store 1 ,mem_24g_txlen 
+0x320b 008645 fetch 1 ,mem_24g_syncword_crc8 
+0x320c 008646 store 1 ,mem_24g_txpayload 
+0x320d 008648 fetch 1 ,mem_24g_txlen 
+0x320e 008649 increase -2 ,pdata 
+0x320f 008650 istore 1 ,contw 
+0x3210 008652 fetch 1 ,mem_24g_data_type 
+0x3211 008653 istore 1 ,contw 
+0x3212 008654 setarg 0 
+0x3213 008655 branch g24_transmit_prep_pdu 
+:      008657 g24_read_len_pid_crc:
+0x3214 008658 bpatchx patch2e_5 ,mem_patch2e 
+0x3215 008660 fetch 1 ,mem_24g_rxbuf + 1 
+0x3216 008661 rshift3 pdata ,pdata 
+0x3217 008662 store 1 ,mem_24g_rxdata_length 
+0x3218 008664 increase 1 ,pdata 
+0x3219 008665 arg mem_24g_rxbuf + 1 ,contr 
+0x321a 008666 iadd contr ,contr 
+0x321b 008667 ifetch 3 ,contr 
+0x321c 008668 store 3 ,mem_24g_sta_crc 
+0x321d 008670 fetch 1 ,mem_24g_rxbuf + 1 
+0x321e 008671 rshift pdata ,pdata 
+0x321f 008672 and pdata ,0x03 ,pdata 
+0x3220 008673 store 1 ,mem_24g_sta_pid 
+0x3221 008674 rtn 
+:      008677 g24_ch:
+0x3222 008678 bpatchx patch2e_6 ,mem_patch2e 
+0x3223 008679 fetcht 1 ,mem_24g_current_ch_number 
+0x3224 008680 call g24_ch_map_size 
+0x3225 008681 storet 1 ,mem_24g_current_ch_number 
+0x3226 008682 rtn 
+:      008684 g24_ch_map_size:
+0x3227 008685 bpatchx patch2e_7 ,mem_patch2e 
+0x3228 008686 call g24_ch_calc 
+0x3229 008687 increase 1 ,temp 
+0x322a 008688 and_into 3 ,temp 
+0x322b 008689 rtn 
+:      008691 g24_ch_calc:
+0x322c 008692 bpatchx patch2f_0 ,mem_patch2f 
+0x322d 008693 fetch 1 ,mem_24g_addr 
+0x322e 008694 and_into 0x03 ,pdata 
+0x322f 008695 mul32 pdata ,4 ,rega 
+0x3230 008696 setarg mem_24g_ch_map1 
+0x3231 008697 iadd rega ,pdata 
+0x3232 008698 iadd temp ,contr 
+0x3233 008699 ifetch 1 ,contr 
+0x3234 008700 store 1 ,mem_24g_ch 
+0x3235 008701 rtn 
+:      008704 g24_update_addr_and_synccrc8:
+0x3236 008705 store 4 ,mem_24g_addr 
+0x3237 008707 bpatchx patch2f_1 ,mem_patch2f 
+:      008708 g24_syncword_crc8:
+0x3238 008709 arg 0 ,rega 
+0x3239 008710 arg 4 ,loopcnt 
+0x323a 008711 arg mem_24g_addr ,contr 
+:      008712 g24_syncword_crc8_loop:
+0x323b 008713 ifetch 1 ,contr 
+0x323c 008714 iadd rega ,rega 
+0x323d 008715 loop g24_syncword_crc8_loop 
+0x323e 008716 copy rega ,pdata 
+0x323f 008717 store 2 ,mem_24g_syncword 
+0x3240 008718 fetch 1 ,mem_24g_syncword 
+0x3241 008719 fetcht 1 ,mem_24g_syncword + 1 
+0x3242 008720 iadd temp ,pdata 
+0x3243 008721 store 1 ,mem_24g_syncword_crc8 
+0x3244 008722 rtn 
+:      008725 g24_timer_check:
+0x3245 008726 bpatchx patch2f_2 ,mem_patch2f 
+0x3246 008727 call disable_user 
+0x3247 008728 fetcht 4 ,mem_24g_tx_btclk 
+0x3248 008729 copy clkn_bt ,pdata 
+0x3249 008730 isub temp ,null 
+0x324a 008731 ncall g24_timer_timeout ,positive 
+0x324b 008732 copy pdata ,regb 
+0x324c 008733 fetch 4 ,mem_24g_tx_btclk 
+0x324d 008734 fetcht 1 ,mem_24g_interval 
+0x324e 008735 iadd temp ,temp 
+0x324f 008736 copy regb ,pdata 
+0x3250 008737 isub temp ,null 
+0x3251 008738 nrtn positive 
+0x3252 008739 set0 28 ,pdata 
+0x3253 008740 store 4 ,mem_24g_tx_btclk 
+0x3254 008741 branch enable_user 
+:      008743 g24_timer_timeout:
+0x3255 008744 rtn zero 
+0x3256 008745 set1 28 ,pdata 
+0x3257 008746 rtn 
+:      008748 g24_timer_init:
+0x3258 008749 setarg 0 
+0x3259 008750 store 4 ,mem_24g_tx_btclk 
+0x325a 008751 rtn 
+:      008759 g24_chmap_param_init:
+0x325b 008760 bpatchx patch2f_3 ,mem_patch2f 
+0x325c 008761 setsect 0 ,0x1300 
+0x325d 008762 setsect 1 ,0x1908b 
+0x325e 008763 setsect 2 ,0x36150 
+0x325f 008764 setsect 3 ,0x3d20 
+0x3260 008765 store 9 ,mem_24g_ch_map1 
+0x3261 008766 setsect 0 ,0x3a1a 
+0x3262 008767 setsect 1 ,0xc453 
+0x3263 008768 setsect 2 ,0xd312 
+0x3264 008769 setsect 3 ,0x1 
+0x3265 008770 istore 7 ,contw 
+0x3266 008771 fetch 1 ,mem_24g_ch_map_update 
+0x3267 008772 rtn blank 
+0x3268 008773 arg mem_24g_ch_update_map1 ,contr 
+0x3269 008774 arg mem_24g_ch_map1 ,contw 
+0x326a 008775 branch memcpy16 
+:      008783 g24_chamap_param_update:
+0x326b 008784 bpatchx patch2f_4 ,mem_patch2f 
+0x326c 008785 setarg 0x4e001e 
+0x326d 008786 store 3 ,mem_24g_ch_update_map1 + 1 
+0x326e 008787 setarg 0x032303 
+0x326f 008788 istore 3 ,contw 
+0x3270 008789 setarg 0x250642 
+0x3271 008790 istore 3 ,contw 
+0x3272 008791 setarg 0x094c06 
+0x3273 008792 istore 3 ,contw 
+0x3274 008793 setarg 0x3c0927 
+0x3275 008794 istore 3 ,contw 
+0x3276 008795 jam 1 ,mem_24g_ch_map_update 
+0x3277 008796 rtn 
+:      008799 g24_rx_window_init:
+0x3278 008800 bpatchx patch2f_5 ,mem_patch2f 
+0x3279 008801 arg 0x6978 ,temp 
+0x327a 008802 bmark1 mark_24g_rxmode ,g24_rx_window_store 
+0x327b 008803 arg 0x12c0 ,temp 
+0x327c 008804 fetch 1 ,mem_24g_rx_phy 
+0x327d 008805 bbit0 2 ,g24_rx_window_store 
+0x327e 008806 arg 0x2ee0 ,temp 
+:      008807 g24_rx_window_store:
+0x327f 008808 storet 2 ,mem_24g_rx_window 
+0x3280 008809 rtn 
+:      008811 g24_enable_1m:
+0x3281 008812 jam 0x01 ,mem_24g_rx_phy 
+0x3282 008813 jam 0x01 ,mem_24g_tx_phy 
+0x3283 008814 rtn 
+:      008816 g24_enable_2m:
+0x3284 008817 jam 0x02 ,mem_24g_rx_phy 
+0x3285 008818 jam 0x02 ,mem_24g_tx_phy 
+0x3286 008819 rtn 
+:      008843 g24_pair_param_init:
+0x3287 008844 bpatchx patch2f_6 ,mem_patch2f 
+0x3288 008845 jam 0x4e ,mem_24g_pair_ch 
+0x3289 008846 setarg 0x101520 
+0x328a 008847 store 3 ,mem_24g_pair_addr 
+0x328b 008848 setarg 0x05 
+0x328c 008849 istore 1 ,contw 
+0x328d 008850 rtn 
+:      008856 g24_pair_timeout_timer:
+0x328e 008857 arg mem_24g_pair_timeout ,regc 
+0x328f 008858 arg g24_stop_24g_mode ,regb 
+0x3290 008859 branch timer_single_step_2b 
+:      008861 g24_pair_start:
+0x3291 008862 set1 mark_24g ,mark 
+0x3292 008863 fetch 1 ,mem_24g_conn_sm 
+0x3293 008864 set0 state_24g_reconn ,pdata 
+0x3294 008865 set1 state_24g_pair ,pdata 
+0x3295 008866 store 1 ,mem_24g_conn_sm 
+0x3296 008867 setarg 0 
+0x3297 008868 store 2 ,mem_24g_reconn_timeout 
+0x3298 008869 fetch 2 ,mem_24g_pair_timeout_init 
+0x3299 008870 store 2 ,mem_24g_pair_timeout 
+0x329a 008871 jam 0 ,mem_24g_pair_no_ack 
+0x329b 008872 call g24_pair_sm_reinit 
+:      008873 g24_pair_init_param:
+0x329c 008874 jam 0 ,mem_24g_pid 
+0x329d 008875 fetch 1 ,mem_24g_pair_ch 
+0x329e 008876 store 1 ,mem_24g_ch 
+0x329f 008877 fetch 1 ,mem_24g_pair_tx_power 
+0x32a0 008878 store 1 ,mem_tx_power 
+0x32a1 008879 fetch 4 ,mem_24g_pair_addr 
+0x32a2 008880 branch g24_update_addr_and_synccrc8 
+:      008883 g24_pair_dispatch:
+0x32a3 008884 bpatchx patch2f_7 ,mem_patch2f 
+0x32a4 008885 jam default_24g_device ,mem_24g_reconn_type 
+0x32a5 008886 fetch 2 ,mem_24g_pair_count 
+0x32a6 008887 increase 1 ,pdata 
+0x32a7 008888 store 2 ,mem_24g_pair_count 
+0x32a8 008889 fetch 1 ,mem_24g_pair_count 
+0x32a9 008890 and pdata ,0xff ,pdata 
+0x32aa 008891 nrtn blank 
+0x32ab 008892 fetch 1 ,mem_24g_pair_sm 
+0x32ac 008893 beq state_24g_pairing_success ,g24_pair_exit 
+0x32ad 008894 beq state_24g_pairing_1 ,g24_pair_sm_1 
+0x32ae 008895 beq state_24g_pairing_2 ,g24_pair_sm_2 
+0x32af 008896 beq state_24g_pairing_3 ,g24_pair_sm_3 
+0x32b0 008897 beq state_24g_pairing_4 ,g24_pair_sm_4 
+0x32b1 008898 rtn 
+:      008900 g24_pair_sm_1:
+0x32b2 008901 jam datatype_attemp ,mem_24g_txbuf 
+0x32b3 008902 branch g24_pair_sm_prep 
+:      008904 g24_pair_sm_2:
+0x32b4 008905 fetch 1 ,mem_24g_pair_switch 
+0x32b5 008906 branch g24_pair_sm_2_skip ,blank 
+0x32b6 008907 fetch 4 ,mem_24g_device_addr 
+0x32b7 008908 call g24_update_addr_and_synccrc8 
+:      008909 g24_pair_sm_2_skip:
+0x32b8 008910 jam datatype_bind ,mem_24g_txbuf 
+0x32b9 008911 branch g24_pair_sm_prep 
+:      008913 g24_pair_sm_3:
+0x32ba 008914 jam datatype_config ,mem_24g_txbuf 
+0x32bb 008915 fetch 1 ,mem_24g_pair_switch 
+0x32bc 008916 branch g24_pair_sm_prep ,blank 
+0x32bd 008917 fetch 4 ,mem_24g_receiver_addr 
+0x32be 008918 store 4 ,mem_24g_txbuf + 2 
+0x32bf 008919 branch g24_pair_sm_common 
+:      008921 g24_pair_sm_4:
+0x32c0 008922 jam datatype_ok ,mem_24g_txbuf 
+:      008923 g24_pair_sm_prep:
+0x32c1 008924 fetch 4 ,mem_24g_device_addr 
+0x32c2 008925 store 4 ,mem_24g_txbuf + 2 
+:      008926 g24_pair_sm_common:
+0x32c3 008927 fetch 1 ,mem_24g_data_type 
+0x32c4 008928 and_into bits_data ,pdata 
+0x32c5 008929 store 1 ,mem_24g_txbuf + 1 
+0x32c6 008930 jam 0 ,mem_24g_txbuf + 6 
+0x32c7 008931 jam 7 ,mem_24g_datalen 
+0x32c8 008932 call g24_transmit_prep 
+0x32c9 008933 call g24_transmit_receive_ack 
+0x32ca 008934 nrtn sync 
+0x32cb 008935 nrtn user3 
+0x32cc 008936 call g24_txbuf_clear 
+0x32cd 008937 call g24_ackpayload_parse 
+0x32ce 008938 bpatchx patch30_0 ,mem_patch30 
+0x32cf 008939 fetch 1 ,mem_24g_pair_sm 
+0x32d0 008940 rtneq state_24g_pairing_success 
+0x32d1 008941 beq state_24g_pairing_1 ,g24_pair_sm_1_waiting_ack 
+0x32d2 008942 beq state_24g_pairing_2 ,g24_pair_sm_2_waiting_ack 
+0x32d3 008943 beq state_24g_pairing_3 ,g24_pair_sm_3_waiting_ack 
+0x32d4 008944 beq state_24g_pairing_4 ,g24_pair_sm_4_waiting_ack 
+0x32d5 008945 rtn 
+:      008947 g24_pair_sm_reinit:
+0x32d6 008948 jam state_24g_pairing_2 ,mem_24g_pair_sm 
+0x32d7 008949 fetch 1 ,mem_24g_pair_switch 
+0x32d8 008950 rtn blank 
+0x32d9 008951 jam state_24g_pairing_1 ,mem_24g_pair_sm 
+0x32da 008952 rtn 
+:      008954 g24_pair_sm_1_waiting_ack:
+0x32db 008955 jam state_24g_pairing_2 ,mem_24g_pair_sm 
+0x32dc 008956 branch g24_transmit_abandon 
+:      008958 g24_pair_sm_2_waiting_ack:
+0x32dd 008959 fetch 1 ,mem_24g_pair_switch 
+0x32de 008960 branch g24_pair_sm_2_waiting_ack_skip ,blank 
+0x32df 008961 fetch 4 ,mem_24g_rxpayload + 2 
+0x32e0 008962 store 4 ,mem_24g_receiver_addr 
+:      008963 g24_pair_sm_2_waiting_ack_skip:
+0x32e1 008964 jam state_24g_pairing_3 ,mem_24g_pair_sm 
+0x32e2 008965 branch g24_transmit_abandon 
+:      008967 g24_pair_sm_3_waiting_ack:
+0x32e3 008968 fetch 1 ,mem_24g_pair_switch 
+0x32e4 008969 branch g24_pair_sm_3_waiting_ack_skip ,blank 
+0x32e5 008970 fetch 4 ,mem_24g_rxpayload + 2 
+0x32e6 008971 fetcht 4 ,mem_24g_device_addr 
+0x32e7 008972 isub temp ,null 
+0x32e8 008973 nrtn zero 
+:      008974 g24_pair_sm_3_waiting_ack_skip:
+0x32e9 008975 jam state_24g_pairing_4 ,mem_24g_pair_sm 
+0x32ea 008976 branch g24_transmit_abandon 
+:      008978 g24_pair_sm_4_waiting_ack:
+0x32eb 008979 fetch 1 ,mem_24g_pair_switch 
+0x32ec 008980 branch g24_pair_sm_4_waiting_ack_skip ,blank 
+0x32ed 008981 fetch 4 ,mem_24g_rxpayload + 2 
+0x32ee 008982 fetcht 4 ,mem_24g_receiver_addr 
+0x32ef 008983 isub temp ,null 
+0x32f0 008984 nrtn zero 
+:      008985 g24_pair_sm_4_waiting_ack_skip:
+0x32f1 008986 jam state_24g_pairing_success ,mem_24g_pair_sm 
+0x32f2 008987 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
+0x32f3 008988 call ui_ipc_send_event 
+0x32f4 008989 setarg 0 
+0x32f5 008990 store 2 ,mem_24g_pair_timeout 
+0x32f6 008991 fetch 4 ,mem_24g_rxpayload + 2 
+0x32f7 008992 call g24_update_addr_and_synccrc8 
+:      008993 g24_pair_exit:
+0x32f8 008994 fetch 1 ,mem_24g_conn_sm 
+0x32f9 008995 set0 state_24g_pair ,pdata 
+0x32fa 008996 store 1 ,mem_24g_conn_sm 
+0x32fb 008997 branch g24_transmit_abandon 
+:      009023 g24_bind_mode_enable:
+0x32fc 009024 jam dongle_bind ,mem_24g_work_mode 
+0x32fd 009025 jam clear_init ,mem_24g_mode_init 
+0x32fe 009026 rtn 
+:      009028 g24_bind_init:
+0x32ff 009029 fetch 1 ,mem_24g_mode_init 
+0x3300 009030 rtnbit1 dongle_bind 
+0x3301 009031 set1 dongle_bind ,pdata 
+0x3302 009032 store 1 ,mem_24g_mode_init 
+0x3303 009033 setarg 0 
+0x3304 009034 store 3 ,mem_24g_device1_bind_step 
+0x3305 009035 store 1 ,mem_24g_device1_bind_disable 
+0x3306 009036 store 1 ,mem_24g_device2_bind_disable 
+0x3307 009037 store 4 ,mem_24g_transmitter_addr 
+0x3308 009038 jam 1 ,mem_24g_ackpayload_enable 
+0x3309 009039 branch g24_pair_init_param 
+:      009042 g24_bind_ackpayload_prep:
+0x330a 009043 jam 1 ,mem_24g_ackpayload_enable 
+0x330b 009044 jam 0x08 ,mem_24g_datalen 
+0x330c 009045 arg mem_24g_bind_payload ,contr 
+0x330d 009046 arg mem_24g_txbuf ,contw 
+0x330e 009047 branch memcpy8 
+:      009050 g24_bind_data_process:
+0x330f 009051 bpatchx patch30_1 ,mem_patch30 
+0x3310 009052 call g24_rx_interrupt_clear 
+0x3311 009053 call g24_receive_packet 
+0x3312 009054 nbranch g24_rx_interrupt_clear ,user3 
+0x3313 009055 call g24_bind_data_parse 
+0x3314 009056 call g24_transmit_ack 
+0x3315 009057 call g24_bind_device_status_check 
+0x3316 009058 call dongle_kb_bind_soft_reset 
+0x3317 009059 fetch 1 ,mem_24g_pair_switch 
+0x3318 009060 rtn blank 
+0x3319 009061 fetch 4 ,mem_24g_transmitter_addr 
+0x331a 009062 rtn blank 
+0x331b 009063 branch g24_update_addr_and_synccrc8 
+:      009065 g24_bind_data_error:
+0x331c 009066 call g24_rx_interrupt_clear 
+0x331d 009067 branch g24_end_of_packet 
+:      009069 g24_bind_data_parse:
+0x331e 009070 jam bind_mode_continue ,mem_24g_bind_mode_continue 
+0x331f 009071 arg mem_24g_rxbuf ,contr 
+0x3320 009072 arg mem_24g_rxdata_temp ,contw 
+0x3321 009073 call memcpy8 
+0x3322 009074 bpatchx patch30_2 ,mem_patch30 
+0x3323 009075 fetch 1 ,mem_24g_rxdata_temp + 2 
+0x3324 009076 beq datatype_bind ,g24_bind_first_step 
+0x3325 009077 beq datatype_config ,g24_bind_second_step 
+0x3326 009078 beq datatype_ok ,g24_bind_third_step 
+0x3327 009079 beq datatype_attemp ,g24_data_attemp 
+0x3328 009080 rtn 
+:      009083 g24_bind_first_step:
+0x3329 009084 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x332a 009085 beq datatype_device1 ,g24_bind_first_step_device1 
+0x332b 009086 beq datatype_device2 ,g24_bind_first_step_device2 
+0x332c 009087 rtn 
+:      009089 g24_bind_first_step_device1:
+0x332d 009090 fetch 1 ,mem_24g_device1_bind_disable 
+0x332e 009091 nrtn blank 
+0x332f 009092 jam 1 ,mem_24g_device1_bind_step 
+:      009093 g24_bind_dvc1_payload_cfg:
+0x3330 009094 jam datatype_device1 ,mem_24g_bind_payload 
+:      009095 g24_bind_payload_cfg:
+0x3331 009096 jam 0x80 ,mem_24g_bind_payload + 1 
+0x3332 009097 fetch 6 ,mem_24g_lap 
+0x3333 009098 store 6 ,mem_24g_bind_payload + 2 
+0x3334 009099 rtn 
+:      009101 g24_bind_first_step_device2:
+0x3335 009102 fetch 1 ,mem_24g_device2_bind_disable 
+0x3336 009103 nrtn blank 
+0x3337 009104 jam 1 ,mem_24g_device2_bind_step 
+:      009105 g24_bind_dvc2_payload_cfg:
+0x3338 009106 jam datatype_device2 ,mem_24g_bind_payload 
+0x3339 009107 branch g24_bind_payload_cfg 
+:      009110 g24_bind_second_step:
+0x333a 009111 fetch 1 ,mem_24g_pair_switch 
+0x333b 009112 branch g24_bind_second_step_skip ,blank 
+0x333c 009113 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x333d 009114 fetcht 4 ,mem_24g_lap 
+0x333e 009115 isub temp ,null 
+0x333f 009116 nrtn zero 
+:      009117 g24_bind_second_step_skip:
+0x3340 009118 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x3341 009119 beq datatype_device1 ,g24_bind_second_step_device1 
+0x3342 009120 beq datatype_device2 ,g24_bind_second_step_device2 
+0x3343 009121 rtn 
+:      009123 g24_bind_second_step_device1:
+0x3344 009124 fetch 1 ,mem_24g_device1_bind_disable 
+0x3345 009125 nrtn blank 
+0x3346 009126 fetch 1 ,mem_24g_device1_bind_step 
+0x3347 009127 beq 1 ,g24_bind_dvc1_step_set2 
+0x3348 009128 rtn 
+:      009129 g24_bind_dvc1_step_set2:
+0x3349 009130 jam 2 ,mem_24g_device1_bind_step 
+0x334a 009131 fetch 1 ,mem_24g_pair_switch 
+0x334b 009132 branch g24_bind_dvc1_payload_cfg ,blank 
+:      009133 g24_bind_dvc1_payload_cfg_transmitter_addr:
+0x334c 009134 jam datatype_device1 ,mem_24g_bind_payload 
+:      009135 g24_bind_payload_cfg_transmitter_addr:
+0x334d 009136 jam 0x80 ,mem_24g_bind_payload + 1 
+0x334e 009137 fetch 4 ,mem_24g_transmitter_addr 
+0x334f 009138 store 4 ,mem_24g_bind_payload + 2 
+0x3350 009139 branch enable_user 
+:      009141 g24_bind_second_step_device2:
+0x3351 009142 fetch 1 ,mem_24g_device2_bind_disable 
+0x3352 009143 nrtn blank 
+0x3353 009144 fetch 1 ,mem_24g_device2_bind_step 
+0x3354 009145 beq 1 ,g24_bind_dvc2_step_set2 
+0x3355 009146 rtn 
+:      009147 g24_bind_dvc2_step_set2:
+0x3356 009148 jam 2 ,mem_24g_device2_bind_step 
+0x3357 009149 fetch 1 ,mem_24g_pair_switch 
+0x3358 009150 branch g24_bind_dvc2_payload_cfg ,blank 
+0x3359 009151 jam datatype_device2 ,mem_24g_bind_payload 
+0x335a 009152 branch g24_bind_payload_cfg_transmitter_addr 
+:      009155 g24_bind_third_step:
+0x335b 009156 fetch 1 ,mem_24g_pair_switch 
+0x335c 009157 branch g24_bind_third_step_skip ,blank 
+0x335d 009158 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x335e 009159 fetcht 4 ,mem_24g_transmitter_addr 
+0x335f 009160 isub temp ,null 
+0x3360 009161 nrtn zero 
+:      009162 g24_bind_third_step_skip:
+0x3361 009163 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x3362 009164 beq datatype_device1 ,g24_bind_third_step_device1 
+0x3363 009165 beq datatype_device2 ,g24_bind_third_step_device2 
+0x3364 009166 rtn 
+:      009168 g24_bind_third_step_device1:
+0x3365 009169 fetch 1 ,mem_24g_device1_bind_disable 
+0x3366 009170 nrtn blank 
+0x3367 009171 fetch 1 ,mem_24g_device1_bind_step 
+0x3368 009172 beq 2 ,g24_bind_dvc1_step_success 
+0x3369 009173 rtn 
+:      009174 g24_bind_dvc1_step_success:
+0x336a 009175 jam 1 ,mem_24g_device1_bind_disable 
+0x336b 009177 call g24_bind_dvc1_payload_cfg 
+0x336c 009178 fetch 1 ,mem_24g_bind_device_status 
+0x336d 009179 or_into 0x01 ,pdata 
+0x336e 009180 store 1 ,mem_24g_bind_device_status 
+:      009181 g24_bind_exit:
+0x336f 009182 setarg 0 
+0x3370 009183 store 2 ,mem_24g_device1_bind_step 
+0x3371 009184 rtn 
+:      009186 g24_bind_third_step_device2:
+0x3372 009187 fetch 1 ,mem_24g_device2_bind_disable 
+0x3373 009188 nrtn blank 
+0x3374 009189 fetch 1 ,mem_24g_device2_bind_step 
+0x3375 009190 bne 0 ,g24_bind_dvc2_step_success 
+0x3376 009191 rtn 
+:      009192 g24_bind_dvc2_step_success:
+0x3377 009193 jam 1 ,mem_24g_device2_bind_disable 
+0x3378 009195 call g24_bind_dvc2_payload_cfg 
+0x3379 009196 fetch 1 ,mem_24g_bind_device_status 
+0x337a 009197 or_into 0x02 ,pdata 
+0x337b 009198 store 1 ,mem_24g_bind_device_status 
+0x337c 009199 call g24_bind_exit 
+0x337d 009200 branch dongle_g24_store_dvc2_bind_flag 
+:      009202 g24_binding_device_check:
+0x337e 009203 fetch 1 ,mem_24g_work_mode 
+0x337f 009204 rtnne dongle_bind 
+0x3380 009205 fetch 1 ,mem_24g_pair_mode 
+0x3381 009206 nrtn blank 
+0x3382 009207 fetch 1 ,mem_24g_rxbuf + 3 
+0x3383 009208 beq datatype_device1 ,g24_binding_dvc1_status 
+0x3384 009209 beq datatype_device2 ,g24_binding_dvc2_status 
+0x3385 009210 rtn 
+:      009211 g24_binding_dvc1_status:
+0x3386 009212 fetch 1 ,mem_24g_bind_device_living 
+0x3387 009213 rtnbit0 0 
+:      009214 disable_user3:
+0x3388 009215 disable user3 
+0x3389 009216 rtn 
+:      009217 g24_binding_dvc2_status:
+0x338a 009218 fetch 1 ,mem_24g_bind_device_living 
+0x338b 009219 rtnbit0 1 
+0x338c 009220 branch disable_user3 
+:      009222 g24_binding_dvc1_living:
+0x338d 009223 fetch 1 ,mem_24g_pair_mode 
+0x338e 009224 nrtn blank 
+0x338f 009225 fetch 1 ,mem_24g_bind_device_living 
+0x3390 009226 or_into 0x01 ,pdata 
+0x3391 009227 store 1 ,mem_24g_bind_device_living 
+0x3392 009228 rtn 
+:      009230 g24_binding_dvc2_living:
+0x3393 009231 fetch 1 ,mem_24g_pair_mode 
+0x3394 009232 nrtn blank 
+0x3395 009233 fetch 1 ,mem_24g_bind_device_living 
+0x3396 009234 or_into 0x02 ,pdata 
+0x3397 009235 store 1 ,mem_24g_bind_device_living 
+0x3398 009236 rtn 
+:      009239 g24_bind_device_status_check:
+0x3399 009240 fetch 1 ,mem_24g_bind_device_status 
+0x339a 009241 rtn blank 
+:      009242 g24_bind_device_status:
+0x339b 009243 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x339c 009244 beq datatype_device1 ,g24_binding_dvc1_living 
+0x339d 009245 beq datatype_device2 ,g24_binding_dvc2_living 
+0x339e 009246 rtn 
+:      009265 g24_receive_init:
+0x339f 009266 set1 mark_24g_rxmode ,mark 
+0x33a0 009267 fetch 1 ,mem_tx_power 
+0x33a1 009268 store 1 ,mem_tx_power_temp 
+0x33a2 009269 branch rssi_receiver_buff_init 
+:      009271 g24_receive_dispatch:
+0x33a3 009272 fetch 2 ,mem_cb_24g_receive_process 
+0x33a4 009273 branch callback_func 
+:      009275 g24_ackpayload_prep:
+0x33a5 009276 bpatchx patch30_3 ,mem_patch30 
+0x33a6 009277 jam 0 ,mem_24g_datalen 
+0x33a7 009278 fetch 1 ,mem_24g_ackpayload_enable 
+0x33a8 009279 rtn blank 
+0x33a9 009280 fetch 2 ,mem_cb_24g_ackpayload 
+0x33aa 009281 branch callback_func 
+:      009284 g24_receive_packet_start:
+0x33ab 009285 call g24_receive_transmit_ack 
+0x33ac 009286 nbranch g24_rx_interrupt_clear ,user3 
+:      009287 g24_receive_packet_parse:
+0x33ad 009288 call g24_receive_packet_parse_pid_crc 
+0x33ae 009289 nbranch g24_rx_interrupt_clear ,user 
+0x33af 009290 fetch 1 ,mem_24g_rxdata_length 
+0x33b0 009291 branch g24_rx_interrupt_clear ,blank 
+0x33b1 009292 increase 2 ,pdata 
+0x33b2 009293 iforce loopcnt 
+0x33b3 009294 arg mem_24g_rxbuf ,contr 
+0x33b4 009295 arg mem_24g_rxdata_temp ,contw 
+0x33b5 009296 call memcpy 
+0x33b6 009297 jam 0 ,mem_24g_mode_switch 
+0x33b7 009298 fetch 1 ,mem_24g_pair_mode 
+0x33b8 009299 call g24_enable_nodata_timer ,blank 
+0x33b9 009300 bpatchx patch30_4 ,mem_patch30 
+0x33ba 009301 fetch 1 ,mem_24g_rxdata_temp + 2 
+0x33bb 009302 beq datatype_device1 ,g24_data_device1 
+0x33bc 009303 beq datatype_device2 ,g24_data_device2 
+0x33bd 009304 beq datatype_attemp ,g24_data_receive_attemp 
+:      009305 g24_rx_interrupt_clear:
+0x33be 009306 bpatchx patch30_5 ,mem_patch30 
+0x33bf 009307 arg mem_24g_rxbuf ,contw 
+0x33c0 009308 arg 66 ,loopcnt 
+0x33c1 009309 branch clear_mem 
+:      009311 g24_data_receive_attemp:
+0x33c2 009312 call g24_bind_device_status 
+0x33c3 009313 branch g24_data_attemp 
+:      009315 g24_data_device1:
+0x33c4 009316 call g24_binding_dvc1_living 
+0x33c5 009317 call g24_ch_timer_reinit 
+0x33c6 009318 fetch 1 ,mem_24g_abort_packet 
+0x33c7 009319 fetcht 1 ,mem_24g_rxdata_temp 
+0x33c8 009320 isolate1 bit_abort ,temp 
+0x33c9 009321 setflag true ,0 ,pdata 
+0x33ca 009322 store 1 ,mem_24g_abort_packet 
+0x33cb 009323 beq 1 ,g24_data_attemp_device1_abort 
+0x33cc 009324 fetch 1 ,mem_24g_hop_packet 
+0x33cd 009325 fetcht 1 ,mem_24g_rxdata_temp 
+0x33ce 009326 isolate1 bit_hop ,temp 
+0x33cf 009327 setflag true ,0 ,pdata 
+0x33d0 009328 store 1 ,mem_24g_hop_packet 
+0x33d1 009329 fetch 2 ,mem_cb_24g_data_device1 
+0x33d2 009330 branch callback_func 
+:      009332 g24_data_device2:
+0x33d3 009333 call g24_binding_dvc2_living 
+0x33d4 009334 fetcht 1 ,mem_24g_rxdata_temp 
+0x33d5 009335 isolate1 bit_abort ,temp 
+0x33d6 009336 branch g24_data_attemp_device2_abort ,true 
+0x33d7 009337 fetch 2 ,mem_cb_24g_data_device2 
+0x33d8 009338 branch callback_func 
+:      009340 g24_data_attemp_device1_abort:
+0x33d9 009341 fetch 1 ,mem_device_option 
+0x33da 009342 sub pdata ,dvc_op_car ,null 
+0x33db 009343 call car_stop_blink ,zero 
+0x33dc 009344 fetch 1 ,mem_24g_device1_bind_disable 
+0x33dd 009345 nrtn blank 
+0x33de 009346 jam 1 ,mem_24g_device1_bind_disable 
+0x33df 009347 fetch 4 ,mem_24g_rxdata_temp + 10 
+0x33e0 009348 branch g24_store_device1_addr 
+:      009349 g24_data_attemp_device2_abort:
+0x33e1 009350 fetch 4 ,mem_24g_rxdata_temp + 10 
+0x33e2 009351 branch g24_store_device2_addr 
+:      009354 g24_receive_packet_parse_pid_crc:
+0x33e3 009355 call disable_user 
+0x33e4 009356 fetch 1 ,mem_24g_sta_pid 
+0x33e5 009357 fetcht 1 ,mem_24g_last_pid 
+0x33e6 009358 isub temp ,null 
+0x33e7 009359 ncall enable_user ,zero 
+0x33e8 009360 fetch 1 ,mem_24g_sta_pid 
+0x33e9 009361 store 1 ,mem_24g_last_pid 
+0x33ea 009362 fetch 3 ,mem_24g_sta_crc 
+0x33eb 009363 fetcht 3 ,mem_24g_last_crc 
+0x33ec 009364 isub temp ,null 
+0x33ed 009365 ncall enable_user ,zero 
+0x33ee 009366 fetch 3 ,mem_24g_sta_crc 
+0x33ef 009367 store 3 ,mem_24g_last_crc 
+0x33f0 009368 rtn 
+:      009370 g24_receive_transmit_ack:
+0x33f1 009371 call g24_rx_interrupt_clear 
+0x33f2 009372 call g24_receive_packet 
+0x33f3 009373 nrtn user3 
+:      009374 g24_transmit_ack:
+0x33f4 009376 fetch 1 ,mem_24g_rxbuf 
+0x33f5 009377 store 1 ,mem_24g_data_type 
+0x33f6 009379 call g24_read_len_pid_crc 
+0x33f7 009381 fetch 1 ,mem_24g_rxbuf + 1 
+0x33f8 009382 isolate1 bit_ack_24g ,pdata 
+0x33f9 009383 branch g24tx_no_ack ,true 
+:      009384 g24tx_with_ack:
+0x33fa 009385 call g24_ackpayload_prep 
+0x33fb 009386 call g24_transmit_prep 
+0x33fc 009387 call g24_transmit 
+:      009388 g24tx_no_ack:
+0x33fd 009389 branch g24_end_of_packet 
+:      009392 g24_enable_nodata_timer:
+0x33fe 009393 jam 1 ,mem_24g_nodata_timer_enable 
+:      009394 g24_enable_nodata_timer_init:
+0x33ff 009395 setarg timer_nodata_delay 
+0x3400 009396 arg g24_timer_nodata ,queue 
+0x3401 009397 branch timer_init 
+:      009403 g24_mode_switch_init:
+0x3402 009404 bpatchx patch30_6 ,mem_patch30 
+0x3403 009405 jam 1 ,mem_24g_mode_switch 
+0x3404 009406 jam 0 ,mem_24g_time_slice 
+0x3405 009407 jam 0xff ,mem_24g_interval 
+0x3406 009408 branch g24_timer_init 
+:      009410 g24_mode_switch_bind_work:
+0x3407 009411 bpatchx patch30_7 ,mem_patch30 
+0x3408 009412 fetch 1 ,mem_24g_mode_switch 
+0x3409 009413 rtn blank 
+0x340a 009414 call g24_timer_check 
+0x340b 009415 nrtn user 
+0x340c 009416 call g24_bind_mode_continue 
+0x340d 009417 fetch 1 ,mem_24g_time_slice 
+0x340e 009418 increase 1 ,pdata 
+0x340f 009419 and_into 1 ,pdata 
+0x3410 009420 store 1 ,mem_24g_time_slice 
+0x3411 009421 beq 0 ,g24_work_mode_switch 
+0x3412 009422 beq 1 ,g24_bind_mode_switch 
+0x3413 009423 rtn 
+:      009425 g24_bind_mode_continue:
+0x3414 009426 fetch 1 ,mem_24g_bind_mode_continue 
+0x3415 009427 rtn blank 
+0x3416 009428 increase -1 ,pdata 
+0x3417 009429 store 1 ,mem_24g_bind_mode_continue 
+0x3418 009430 rtn 
+:      009432 g24_work_mode_switch:
+0x3419 009433 fetch 1 ,mem_24g_bind_mode_continue 
+0x341a 009434 nrtn blank 
+0x341b 009435 branch g24_switch_work_mode 
+:      009437 g24_bind_mode_switch:
+0x341c 009438 fetch 1 ,mem_24g_bind_mode_continue 
+0x341d 009439 nrtn blank 
+0x341e 009440 branch g24_bind_mode_enable 
+:      009443 g24_mode_b_s_switch_init:
+0x341f 009444 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+0x3420 009445 nrtn blank 
+0x3421 009446 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+0x3422 009447 call g24_mode_b_s_switch_start ,blank 
+0x3423 009448 fetch 1 ,mem_24g_mode_b_s_switch_init 
+0x3424 009449 rtnbit1 0 
+0x3425 009450 set1 0 ,pdata 
+0x3426 009451 store 1 ,mem_24g_mode_b_s_switch_init 
+0x3427 009452 jam 1 ,mem_24g_mode_b_s_switch 
+0x3428 009453 jam 0 ,mem_24g_b_s_time_slice 
+0x3429 009454 setarg 0 
+0x342a 009455 store 2 ,mem_24g_mode_b_s_switch_cnt 
+0x342b 009456 jam 0x60 ,mem_24g_interval 
+0x342c 009457 branch g24_timer_init 
+:      009459 g24_mode_switch_bind_search:
+0x342d 009460 bpatchx patch31_0 ,mem_patch31 
+0x342e 009461 fetch 1 ,mem_24g_work_mode 
+0x342f 009462 rtneq dongle_work 
+0x3430 009463 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+0x3431 009464 nrtn blank 
+0x3432 009465 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+0x3433 009466 nrtn blank 
+0x3434 009467 fetch 1 ,mem_24g_mode_b_s_switch 
+0x3435 009468 rtn blank 
+0x3436 009469 fetch 1 ,mem_24g_bind_device_living 
+0x3437 009470 compare 3 ,pdata ,3 
+0x3438 009471 branch g24_mode_b_s_switch_exit ,true 
+0x3439 009472 call g24_timer_check 
+0x343a 009473 nrtn user 
+0x343b 009474 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+0x343c 009475 increase 1 ,pdata 
+0x343d 009476 store 2 ,mem_24g_mode_b_s_switch_cnt 
+0x343e 009477 arg 0x7d0 ,temp 
+0x343f 009478 isub temp ,null 
+0x3440 009479 branch g24_mode_b_s_switch_exit ,positive 
+0x3441 009480 fetch 1 ,mem_24g_b_s_time_slice 
+0x3442 009481 increase 1 ,pdata 
+0x3443 009482 and_into 1 ,pdata 
+0x3444 009483 store 1 ,mem_24g_b_s_time_slice 
+0x3445 009484 beq 0 ,g24_search_mode_enable 
+0x3446 009485 beq 1 ,g24_bind_mode_enable 
+0x3447 009486 rtn 
+:      009488 g24_mode_switch_search:
+0x3448 009489 fetch 1 ,mem_24g_bind_mode_continue 
+0x3449 009490 nbranch g24_bind_mode_enable ,blank 
+0x344a 009491 branch g24_search_mode_enable 
+:      009493 g24_mode_b_s_switch_exit:
+0x344b 009494 jam 1 ,mem_24g_mode_b_s_switch_exit 
+0x344c 009495 branch g24_search_mode_enable 
+:      009497 g24_mode_b_s_switch_stop:
+0x344d 009498 jam 0 ,mem_24g_mode_b_s_switch 
+0x344e 009499 rtn 
+:      009500 g24_mode_b_s_switch_start:
+0x344f 009501 jam 1 ,mem_24g_mode_b_s_switch 
+0x3450 009502 rtn 
+:      009513 g24_work_init:
+0x3451 009514 bpatchx patch31_1 ,mem_patch31 
+0x3452 009515 fetch 1 ,mem_24g_mode_init 
+0x3453 009516 rtnbit1 dongle_work 
+0x3454 009517 set1 dongle_work ,pdata 
+0x3455 009518 store 1 ,mem_24g_mode_init 
+0x3456 009519 fetch 1 ,mem_tx_power_temp 
+0x3457 009520 store 1 ,mem_tx_power 
+0x3458 009521 jam 0 ,mem_24g_ackpayload_enable 
+0x3459 009522 jam 0 ,mem_usb_tx_enable 
+0x345a 009523 jam 1 ,mem_24g_abort_packet 
+0x345b 009524 jam 0 ,mem_24g_pid 
+0x345c 009525 fetch 4 ,mem_24g_lap 
+0x345d 009526 call g24_update_addr_and_synccrc8 
+0x345e 009527 call g24_ch 
+0x345f 009528 branch g24_rx_interrupt_clear 
+:      009531 g24_switch_work_mode:
+0x3460 009532 jam 0 ,mem_24g_ackpayload_enable 
+:      009533 g24_work_mode_enable:
+0x3461 009534 jam dongle_work ,mem_24g_work_mode 
+0x3462 009535 jam clear_init ,mem_24g_mode_init 
+0x3463 009536 rtn 
+:      009539 g24_work_mode_start:
+0x3464 009540 fetch 1 ,mem_24g_work_mode 
+0x3465 009541 rtnne dongle_work 
+0x3466 009542 call g24_work_init 
+0x3467 009543 call g24_ch_process 
+0x3468 009544 branch g24_receive_packet_start 
+:      009557 g24_bind_mode_auto:
+0x3469 009558 bpatchx patch31_2 ,mem_patch31 
+0x346a 009559 fetch 1 ,mem_24g_work_mode 
+0x346b 009560 rtnne dongle_bind 
+0x346c 009561 call g24_bind_init 
+0x346d 009562 call g24_bind_data_process 
+0x346e 009563 fetch 1 ,mem_24g_pair_mode 
+0x346f 009564 nrtn blank 
+0x3470 009565 fetch 1 ,mem_24g_bind_device_status 
+0x3471 009566 rtn blank 
+0x3472 009567 jam 0 ,mem_24g_mode_switch 
+0x3473 009568 call g24_switch_work_mode 
+0x3474 009569 call g24_enable_nodata_timer 
+0x3475 009570 branch g24_timer_init 
+:      009582 g24_search_mode_init:
+0x3476 009583 fetch 1 ,mem_24g_mode_init 
+0x3477 009584 rtnbit1 dongle_search 
+0x3478 009585 set1 dongle_search ,pdata 
+0x3479 009586 store 1 ,mem_24g_mode_init 
+0x347a 009587 fetch 1 ,mem_tx_power_temp 
+0x347b 009588 store 1 ,mem_tx_power 
+0x347c 009590 jam 0 ,mem_24g_time_slice 
+0x347d 009591 jam 1 ,mem_24g_ackpayload_enable 
+0x347e 009592 setarg 0 
+0x347f 009593 store 3 ,mem_rssi_noise_self_index 
+0x3480 009594 store 7 ,mem_24g_self_config_ch_once 
+0x3481 009595 call g24_receiver_addr_check 
+0x3482 009596 nrtn zero 
+0x3483 009597 fetch 1 ,mem_24g_current_ch_number 
+0x3484 009598 store 1 ,mem_24g_self_ch_number 
+0x3485 009599 fetch 1 ,mem_24g_ch 
+0x3486 009600 store 1 ,mem_24g_self_last_ch 
+0x3487 009601 rtn 
+:      009604 g24_search_mode_auto:
+0x3488 009605 bpatchx patch31_3 ,mem_patch31 
+0x3489 009606 fetch 1 ,mem_24g_work_mode 
+0x348a 009607 rtnne dongle_search 
+0x348b 009608 call g24_search_mode_init 
+0x348c 009609 call g24_auto_addr_ch_search 
+0x348d 009610 call g24_receive_transmit_ack 
+0x348e 009611 nbranch g24_rx_interrupt_clear ,user3 
+0x348f 009613 call g24_receiver_addr_check 
+0x3490 009614 call g24_receive_packet_parse ,zero 
+0x3491 009616 fetch 1 ,mem_24g_abort_packet 
+0x3492 009617 call g24_mode_b_s_switch_stop ,blank 
+0x3493 009620 jam dongle_work ,mem_24g_work_mode 
+0x3494 009621 fetch 1 ,mem_24g_mode_init 
+0x3495 009622 set1 dongle_work ,pdata 
+0x3496 009623 store 1 ,mem_24g_mode_init 
+0x3497 009625 fetch 1 ,mem_24g_ackpayload_enable 
+0x3498 009626 sub pdata ,2 ,null 
+0x3499 009627 ncall g24_ackpayload_disable ,zero 
+0x349a 009629 call g24_rx_interrupt_clear 
+0x349b 009630 call g24_enable_nodata_timer 
+0x349c 009631 call g24_receiver_addr_check 
+0x349d 009632 branch g24_self_ch_num_reinit ,zero 
+0x349e 009633 fetch 4 ,mem_24g_addr 
+0x349f 009634 fetcht 4 ,mem_24g_device2_addr 
+0x34a0 009635 isub temp ,null 
+0x34a1 009636 branch g24_device2_ch_num_reinit ,zero 
+0x34a2 009637 fetch 4 ,mem_24g_addr 
+0x34a3 009638 fetcht 4 ,mem_24g_device1_addr 
+0x34a4 009639 isub temp ,null 
+0x34a5 009640 branch g24_device1_ch_num_reinit ,zero 
+0x34a6 009641 rtn 
+:      009644 g24_self_ch_num_reinit:
+0x34a7 009645 fetch 1 ,mem_24g_self_ch_number 
+:      009646 g24_current_ch_num_reinit:
+0x34a8 009647 store 1 ,mem_24g_current_ch_number 
+0x34a9 009648 rtn 
+:      009650 g24_device2_ch_num_reinit:
+0x34aa 009651 fetch 1 ,mem_24g_device2_ch_number 
+0x34ab 009652 branch g24_current_ch_num_reinit 
+:      009654 g24_device1_ch_num_reinit:
+0x34ac 009655 fetch 1 ,mem_24g_device1_ch_number 
+0x34ad 009656 branch g24_current_ch_num_reinit 
+:      009659 g24_auto_addr_ch_search:
+0x34ae 009660 bpatchx patch31_4 ,mem_patch31 
+0x34af 009661 fetch 1 ,mem_24g_time_slice 
+0x34b0 009662 increase 1 ,pdata 
+0x34b1 009663 and_into 3 ,pdata 
+0x34b2 009664 store 1 ,mem_24g_time_slice 
+0x34b3 009666 beq 0 ,g24_auto_bind_config_device2 
+0x34b4 009667 beq 1 ,g24_auto_bind_config_self 
+0x34b5 009668 beq 2 ,g24_auto_bind_config_device1 
+0x34b6 009669 beq 3 ,g24_auto_bind_config_self 
+0x34b7 009670 rtn 
+:      009672 g24_auto_bind_config_device1:
+0x34b8 009673 call g24_bind_dvc1_payload_cfg 
+0x34b9 009674 fetch 4 ,mem_24g_device1_addr 
+0x34ba 009675 branch g24_auto_addr_ch_search ,blank 
+0x34bb 009676 call g24_update_addr_and_synccrc8 
+0x34bc 009677 fetch 1 ,mem_24g_device1_config_ch_once 
+0x34bd 009678 call g24_device1_config_ch_once ,blank 
+0x34be 009679 fetch 1 ,mem_24g_device1_last_ch 
+0x34bf 009680 store 1 ,mem_24g_ch 
+0x34c0 009681 fetcht 1 ,mem_rssi_noise_device1_index 
+0x34c1 009682 fetchr rega ,2 ,mem_rssi_noise_device1_buffer_ptr 
+0x34c2 009683 call rssi_store 
+0x34c3 009684 storet 1 ,mem_rssi_noise_device1_index 
+0x34c4 009685 call rssi_average 
+0x34c5 009686 storet 1 ,mem_rssi_noise_device1_avg 
+0x34c6 009687 sub temp ,rssi_thresh_noise ,null 
+0x34c7 009688 nrtn positive 
+0x34c8 009689 fetcht 1 ,mem_24g_device1_ch_number 
+0x34c9 009690 call g24_ch_map_size 
+0x34ca 009691 storet 1 ,mem_24g_device1_ch_number 
+0x34cb 009692 store 1 ,mem_24g_device1_last_ch 
+0x34cc 009693 rtn 
+:      009695 g24_device1_config_ch_once:
+0x34cd 009696 jam 1 ,mem_24g_device1_config_ch_once 
+0x34ce 009697 arg 0 ,temp 
+0x34cf 009698 call g24_ch_calc 
+0x34d0 009699 store 1 ,mem_24g_device1_last_ch 
+0x34d1 009700 rtn 
+:      009702 g24_auto_bind_config_device2:
+0x34d2 009703 call g24_bind_dvc2_payload_cfg 
+0x34d3 009704 fetch 4 ,mem_24g_device2_addr 
+0x34d4 009705 branch g24_auto_addr_ch_search ,blank 
+0x34d5 009706 call g24_update_addr_and_synccrc8 
+0x34d6 009707 fetch 1 ,mem_24g_device2_config_ch_once 
+0x34d7 009708 call g24_device2_config_ch_once ,blank 
+0x34d8 009709 fetch 1 ,mem_24g_device2_last_ch 
+0x34d9 009710 store 1 ,mem_24g_ch 
+0x34da 009711 fetcht 1 ,mem_rssi_noise_device2_index 
+0x34db 009712 fetchr rega ,2 ,mem_rssi_noise_device2_buffer_ptr 
+0x34dc 009713 call rssi_store 
+0x34dd 009714 storet 1 ,mem_rssi_noise_device2_index 
+0x34de 009715 call rssi_average 
+0x34df 009716 storet 1 ,mem_rssi_noise_device2_avg 
+0x34e0 009717 sub temp ,rssi_thresh_noise ,null 
+0x34e1 009718 nrtn positive 
+0x34e2 009719 fetcht 1 ,mem_24g_device2_ch_number 
+0x34e3 009720 call g24_ch_map_size 
+0x34e4 009721 storet 1 ,mem_24g_device2_ch_number 
+0x34e5 009722 store 1 ,mem_24g_device2_last_ch 
+0x34e6 009723 rtn 
+:      009725 g24_device2_config_ch_once:
+0x34e7 009726 jam 1 ,mem_24g_device2_config_ch_once 
+0x34e8 009727 arg 0 ,temp 
+0x34e9 009728 call g24_ch_calc 
+0x34ea 009729 store 1 ,mem_24g_device2_last_ch 
+0x34eb 009730 rtn 
+:      009732 g24_auto_bind_config_self:
+0x34ec 009733 call g24_bind_dvc1_payload_cfg 
+0x34ed 009734 fetch 4 ,mem_24g_lap 
+0x34ee 009735 call g24_update_addr_and_synccrc8 
+0x34ef 009736 fetch 1 ,mem_24g_self_config_ch_once 
+0x34f0 009737 call g24_self_config_ch_once ,blank 
+0x34f1 009738 fetch 1 ,mem_24g_self_last_ch 
+0x34f2 009739 store 1 ,mem_24g_ch 
+0x34f3 009740 fetcht 1 ,mem_rssi_noise_self_index 
+0x34f4 009741 fetchr rega ,2 ,mem_rssi_noise_self_buffer_ptr 
+0x34f5 009742 call rssi_store 
+0x34f6 009743 storet 1 ,mem_rssi_noise_self_index 
+0x34f7 009744 call rssi_average 
+0x34f8 009745 storet 1 ,mem_rssi_noise_self_avg 
+0x34f9 009746 sub temp ,rssi_thresh_noise ,null 
+0x34fa 009747 nrtn positive 
+0x34fb 009748 fetcht 1 ,mem_24g_self_ch_number 
+0x34fc 009749 call g24_ch_map_size 
+0x34fd 009750 storet 1 ,mem_24g_self_ch_number 
+0x34fe 009751 store 1 ,mem_24g_self_last_ch 
+0x34ff 009752 rtn 
+:      009754 g24_self_config_ch_once:
+0x3500 009755 jam 1 ,mem_24g_self_config_ch_once 
+0x3501 009756 fetch 1 ,mem_24g_self_last_ch 
+0x3502 009757 store 1 ,mem_24g_ch 
+0x3503 009758 rtn 
+:      009761 g24_ackpayload_disable:
+0x3504 009762 jam 0 ,mem_24g_ackpayload_enable 
+0x3505 009763 rtn 
+:      009766 g24_receiver_addr_check:
+0x3506 009767 fetch 4 ,mem_24g_addr 
+0x3507 009768 fetcht 4 ,mem_24g_lap 
+0x3508 009769 isub temp ,null 
+0x3509 009770 rtn 
+:      009782 g24_nodata_process:
+0x350a 009783 fetch 1 ,mem_24g_ackpayload_enable 
+0x350b 009784 rtneq 2 
+0x350c 009785 fetch 1 ,mem_24g_nodata_timer_enable 
+0x350d 009786 rtn blank 
+0x350e 009787 arg g24_timer_nodata ,queue 
+0x350f 009788 call timer_check 
+0x3510 009789 nrtn blank 
+0x3511 009790 jam 0 ,mem_24g_nodata_timer_enable 
+0x3512 009791 jam 0 ,mem_24g_bind_mode_continue 
+0x3513 009792 call g24_mode_b_s_switch_init 
+:      009794 g24_search_mode_enable:
+0x3514 009795 bpatchx patch31_5 ,mem_patch31 
+0x3515 009796 jam dongle_search ,mem_24g_work_mode 
+0x3516 009797 jam clear_init ,mem_24g_mode_init 
+0x3517 009798 branch g24_rx_interrupt_clear 
+:      009804 g24_ch_process:
+0x3518 009805 bpatchx patch31_6 ,mem_patch31 
+0x3519 009806 fetch 1 ,mem_24g_abort_packet 
+0x351a 009807 beq 1 ,rssi_noise_monitor 
+0x351b 009808 fetch 1 ,mem_24g_hop_packet 
+0x351c 009809 beq 1 ,g24_ch_receive_hop_pac 
+0x351d 009810 fetcht 4 ,mem_24g_hop_btclk 
+0x351e 009811 copy clkn_bt ,pdata 
+0x351f 009812 isub temp ,null 
+0x3520 009813 ncall g24_timer_timeout ,positive 
+0x3521 009814 copy pdata ,regb 
+0x3522 009815 fetch 4 ,mem_24g_hop_btclk 
+0x3523 009816 fetcht 1 ,mem_24g_hop_interval 
+0x3524 009817 iadd temp ,temp 
+0x3525 009818 copy regb ,pdata 
+0x3526 009819 isub temp ,null 
+0x3527 009820 nrtn positive 
+0x3528 009821 set0 28 ,pdata 
+0x3529 009822 store 4 ,mem_24g_hop_btclk 
+0x352a 009823 jam 1 ,mem_24g_abort_packet 
+0x352b 009824 branch g24_ch 
+:      009826 g24_ch_receive_hop_pac:
+0x352c 009827 jam 0 ,mem_24g_hop_packet 
+0x352d 009828 branch g24_ch 
+:      009830 g24_ch_timer_reinit:
+0x352e 009831 copy clkn_bt ,pdata 
+0x352f 009832 store 4 ,mem_24g_hop_btclk 
+0x3530 009833 rtn 
+:      009838 g24_reconn_timeout_timer:
+0x3531 009839 arg mem_24g_reconn_timeout ,regc 
+0x3532 009840 arg g24_stop_24g_mode ,regb 
+0x3533 009841 branch timer_single_step_2b 
+:      009844 g24_reconn_start:
+0x3534 009845 bpatchx patch31_7 ,mem_patch31 
+0x3535 009846 set1 mark_24g ,mark 
+0x3536 009847 fetch 1 ,mem_24g_conn_sm 
+0x3537 009848 set0 state_24g_pair ,pdata 
+0x3538 009849 set1 state_24g_reconn ,pdata 
+0x3539 009850 store 1 ,mem_24g_conn_sm 
+0x353a 009851 fetch 1 ,mem_24g_fast_conn_enable 
+0x353b 009852 branch g24_reconn_receiver_addr ,blank 
+0x353c 009853 fetch 1 ,mem_24g_reconn_type 
+0x353d 009854 beq fast_conn_and_receiver ,g24_reconn_fast_conn 
+0x353e 009855 beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn 
+0x353f 009856 beq receiver_and_3_0_addr ,g24_reconn_device_3_0_addr 
+0x3540 009857 beq pair_and_3_0_addr ,g24_reconn_device_3_0_addr 
+:      009858 g24_reconn_fast_conn:
+0x3541 009859 fetch 1 ,mem_24g_pair_tx_power 
+0x3542 009860 store 1 ,mem_tx_power 
+0x3543 009861 fetcht 1 ,mem_24g_fast_conn_temp_ch 
+0x3544 009862 storet 1 ,mem_24g_current_ch_number 
+0x3545 009863 fetch 4 ,mem_24g_fast_conn_addr 
+0x3546 009864 call g24_ch_syncword_crc8_init 
+0x3547 009865 storet 1 ,mem_24g_fast_conn_temp_ch 
+0x3548 009866 rtn 
+:      009868 g24_reconn_receiver_addr:
+0x3549 009869 jam tx_power_3db ,mem_tx_power 
+0x354a 009870 fetcht 1 ,mem_24g_receiver_temp_ch 
+0x354b 009871 storet 1 ,mem_24g_current_ch_number 
+0x354c 009872 fetch 4 ,mem_24g_receiver_addr 
+0x354d 009873 call g24_ch_syncword_crc8_init 
+0x354e 009874 storet 1 ,mem_24g_receiver_temp_ch 
+0x354f 009875 rtn 
+:      009877 g24_reconn_device_3_0_addr:
+0x3550 009878 jam tx_power_3db ,mem_tx_power 
+0x3551 009879 fetcht 1 ,mem_24g_device_temp_ch 
+0x3552 009880 storet 1 ,mem_24g_current_ch_number 
+0x3553 009881 fetch 4 ,mem_24g_device_addr 
+0x3554 009882 call g24_ch_syncword_crc8_init 
+0x3555 009883 storet 1 ,mem_24g_device_temp_ch 
+0x3556 009884 rtn 
+:      009886 g24_store_receiver_addr:
+0x3557 009887 fetch 4 ,mem_24g_rxpayload + 2 
+0x3558 009888 rtn blank 
+0x3559 009889 store 4 ,mem_24g_receiver_addr 
+:      009890 g24_ch_syncword_crc8_init:
+0x355a 009891 call g24_update_addr_and_synccrc8 
+0x355b 009892 branch g24_ch 
+:      009895 g24_reconn_dispatch:
+0x355c 009896 bpatchx patch32_0 ,mem_patch32 
+0x355d 009897 fetch 2 ,mem_24g_reconn_count 
+0x355e 009898 arg 0x01f8 ,temp 
+0x355f 009899 iand temp ,pdata 
+0x3560 009900 branch g24_reconn_dispatch_next ,blank 
+0x3561 009901 fetch 2 ,mem_24g_reconn_count 
+0x3562 009902 increase 1 ,pdata 
+0x3563 009903 store 2 ,mem_24g_reconn_count 
+0x3564 009904 rtn 
+:      009906 g24_reconn_dispatch_next:
+0x3565 009907 call g24_reconn_data_prep 
+0x3566 009908 call g24_transmit_receive_ack 
+0x3567 009909 nbranch g24_reconn_device_fail ,sync 
+0x3568 009910 nbranch g24_reconn_device_fail ,user3 
+0x3569 009911 call g24_ackpayload_parse 
+0x356a 009912 fetch 4 ,mem_24g_pair_addr 
+0x356b 009913 fetcht 4 ,mem_24g_addr 
+0x356c 009914 isub temp ,null 
+0x356d 009915 branch g24_pair_start ,zero 
+0x356e 009916 fetch 4 ,mem_24g_device_addr 
+0x356f 009917 fetcht 4 ,mem_24g_addr 
+0x3570 009918 isub temp ,null 
+0x3571 009919 call g24_store_receiver_addr ,zero 
+0x3572 009920 fetch 1 ,mem_24g_conn_sm 
+0x3573 009921 set0 state_24g_reconn ,pdata 
+0x3574 009922 store 1 ,mem_24g_conn_sm 
+0x3575 009923 setarg 0 
+0x3576 009924 store 2 ,mem_24g_pair_timeout 
+0x3577 009925 store 2 ,mem_24g_reconn_count 
+0x3578 009926 store 2 ,mem_24g_reconn_timeout 
+0x3579 009927 jam bt_evt_24g_attempt_success ,mem_fifo_temp 
+0x357a 009928 call ui_ipc_send_event 
+:      009929 g24_txbuf_clear:
+0x357b 009930 bpatchx patch32_1 ,mem_patch32 
+0x357c 009931 arg 32 ,loopcnt 
+0x357d 009932 arg mem_24g_txbuf ,contw 
+0x357e 009933 branch memset0 
+:      009935 g24_reconn_data_prep:
+0x357f 009936 jam datatype_attemp ,mem_24g_txbuf 
+0x3580 009937 fetch 1 ,mem_24g_data_type 
+0x3581 009938 store 1 ,mem_24g_txbuf + 1 
+0x3582 009939 fetch 4 ,mem_24g_device_addr 
+0x3583 009940 store 4 ,mem_24g_txbuf + 2 
+0x3584 009941 jam 6 ,mem_24g_datalen 
+0x3585 009942 branch g24_transmit_prep 
+:      009944 g24_reconn_device_fail:
+0x3586 009945 bpatchx patch32_2 ,mem_patch32 
+0x3587 009946 fetch 1 ,mem_24g_fast_conn_enable 
+0x3588 009947 branch g24_ch ,blank 
+0x3589 009948 fetch 2 ,mem_24g_reconn_count 
+0x358a 009949 increase 1 ,pdata 
+0x358b 009950 store 2 ,mem_24g_reconn_count 
+0x358c 009951 isolate1 9 ,pdata 
+0x358d 009952 fetch 1 ,mem_24g_reconn_type 
+0x358e 009953 beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
+0x358f 009954 beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
+0x3590 009955 beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
+0x3591 009956 beq pair_and_3_0_addr ,g24_reconn_pair_and_3_0 
+0x3592 009957 branch g24_reconn_receiver_addr 
+:      009960 g24_reconn_fast_conn_and_receiver:
+0x3593 009961 branch g24_reconn_receiver_addr ,true 
+0x3594 009962 branch g24_reconn_fast_conn 
+:      009964 g24_reconn_fast_conn_and_3_0:
+0x3595 009965 branch g24_reconn_device_3_0_addr ,true 
+0x3596 009966 branch g24_reconn_fast_conn 
+:      009968 g24_reconn_receiver_and_3_0:
+0x3597 009969 branch g24_reconn_device_3_0_addr ,true 
+0x3598 009970 branch g24_reconn_receiver_addr 
+:      009972 g24_reconn_pair_and_3_0:
+0x3599 009973 branch g24_reconn_device_3_0_addr ,true 
+0x359a 009974 branch g24_pair_init_param 
+:      009984 g24_data_attemp:
+0x359b 009985 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x359c 009986 beq datatype_device1 ,g24_data_attemp_device1 
+0x359d 009987 beq datatype_device2 ,g24_data_attemp_device2 
+0x359e 009988 rtn 
+:      009989 g24_data_attemp_device1:
+0x359f 009990 fetch 1 ,mem_24g_device1_bind_disable 
+0x35a0 009991 nrtn blank 
+0x35a1 009992 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x35a2 009993 store 4 ,mem_24g_transmitter_addr 
+:      009994 g24_store_device1_addr:
+0x35a3 009995 store 4 ,mem_24g_device1_addr 
+0x35a4 009996 rtn 
+:      009997 g24_data_attemp_device2:
+0x35a5 009998 fetch 1 ,mem_24g_device2_bind_disable 
+0x35a6 009999 nrtn blank 
+0x35a7 010000 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x35a8 010001 store 4 ,mem_24g_transmitter_addr 
+:      010002 g24_store_device2_addr:
+0x35a9 010003 store 4 ,mem_24g_device2_addr 
+0x35aa 010004 rtn 
+:      010014 rssi_store:
+0x35ab 010015 bpatchx patch32_3 ,mem_patch32 
+0x35ac 010016 copy rega ,pdata 
+0x35ad 010017 iadd temp ,contw 
+0x35ae 010018 fetch 1 ,mem_rssi 
+0x35af 010019 istore 1 ,contw 
+0x35b0 010020 increase 1 ,temp 
+0x35b1 010021 fetch 1 ,mem_rssi_buff_index 
+0x35b2 010022 iand temp ,temp 
+0x35b3 010023 rtn 
+:      010025 rssi_average:
+0x35b4 010026 bpatchx patch32_4 ,mem_patch32 
+0x35b5 010027 fetch 1 ,mem_rssi_buff_index 
+0x35b6 010028 increase 1 ,pdata 
+0x35b7 010029 store 2 ,mem_loopcnt 
+0x35b8 010030 copy pdata ,loopcnt 
+0x35b9 010031 copy rega ,contr 
+0x35ba 010032 arg 0 ,pdata 
+:      010033 rssi_average_loop:
+0x35bb 010034 ifetcht 1 ,contr 
+0x35bc 010035 iadd temp ,pdata 
+0x35bd 010036 loop rssi_average_loop 
+0x35be 010037 fetcht 2 ,mem_loopcnt 
+0x35bf 010038 idiv temp 
+0x35c0 010039 call wait_div_end 
+0x35c1 010040 quotient temp 
+0x35c2 010041 rtnmark1 mark_24g_rxmode 
+0x35c3 010042 copy temp ,pdata 
+0x35c4 010043 rtnmark0 mark_24g 
+0x35c5 010044 call bcd 
+0x35c6 010045 copy pdata ,temp 
+0x35c7 010046 rtn 
+:      010048 save_rssi_dec:
+0x35c8 010049 branch save_rssi 
+:      010059 rssi_transmitter_buff_init:
+0x35c9 010060 fetch 2 ,mem_rssi_signal_buf_ptr 
+0x35ca 010061 branch rssi_buff_clear 
+:      010063 rssi_signal:
+0x35cb 010064 copy pdata ,rega 
+0x35cc 010065 fetcht 1 ,mem_rssi_signal_index 
+0x35cd 010066 fetch 2 ,mem_rssi_signal_buf_ptr 
+0x35ce 010067 iadd temp ,contw 
+0x35cf 010068 copy rega ,pdata 
+0x35d0 010069 istore 1 ,contw 
+0x35d1 010070 increase 1 ,temp 
+0x35d2 010071 fetch 1 ,mem_rssi_buff_index 
+0x35d3 010072 iand temp ,temp 
+0x35d4 010073 storet 1 ,mem_rssi_signal_index 
+0x35d5 010074 rtn 
+:      010084 rssi_receiver_buff_init:
+0x35d6 010085 fetch 2 ,mem_rssi_noise_buffer_ptr 
+0x35d7 010086 call rssi_buff_clear 
+0x35d8 010087 fetch 2 ,mem_rssi_noise_self_buffer_ptr 
+0x35d9 010088 call rssi_buff_clear 
+0x35da 010089 fetch 2 ,mem_rssi_noise_device1_buffer_ptr 
+0x35db 010090 call rssi_buff_clear 
+0x35dc 010091 fetch 2 ,mem_rssi_noise_device2_buffer_ptr 
+:      010092 rssi_buff_clear:
+0x35dd 010093 rtn blank 
+0x35de 010094 copy pdata ,contw 
+0x35df 010095 fetch 1 ,mem_rssi_buff_index 
+0x35e0 010096 increase 1 ,pdata 
+0x35e1 010097 copy pdata ,loopcnt 
+0x35e2 010098 branch clear_mem 
+:      010101 rssi_noise:
+0x35e3 010102 call save_rssi_dec 
+0x35e4 010103 rtn blank 
+0x35e5 010104 fetcht 1 ,mem_rssi_noise_index 
+0x35e6 010105 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
+0x35e7 010106 call rssi_store 
+0x35e8 010107 storet 1 ,mem_rssi_noise_index 
+0x35e9 010108 rtn 
+:      010111 rssi_noise_monitor:
+0x35ea 010112 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
+0x35eb 010113 call rssi_average 
+0x35ec 010114 storet 1 ,mem_rssi_noise_avg 
+0x35ed 010115 sub temp ,rssi_thresh_noise ,null 
+0x35ee 010116 nrtn positive 
+0x35ef 010117 branch g24_ch 
+:      010125 g24_transmit_init:
+0x35f0 010126 fetch 4 ,mem_24g_lap 
+0x35f1 010127 store 4 ,mem_24g_device_addr 
+0x35f2 010128 branch rssi_transmitter_buff_init 
+:      010130 g24_interval_param_4ms:
+0x35f3 010131 setarg g24_4ms_interval_param 
+0x35f4 010132 store 3 ,mem_24g_short_sleep_set 
+0x35f5 010133 setarg 0x100c0c 
+0x35f6 010134 store 3 ,mem_24g_interval 
+0x35f7 010135 setarg 0x00bb80 
+0x35f8 010136 store 3 ,mem_24g_long_sleep_set 
+0x35f9 010137 jam 5 ,mem_24g_fast_hop_count 
+0x35fa 010138 rtn 
+:      010140 g24_interval_param_8ms:
+0x35fb 010141 setarg g24_8ms_interval_param 
+0x35fc 010142 store 3 ,mem_24g_short_sleep_set 
+0x35fd 010143 setarg 0x1c1919 
+0x35fe 010144 store 3 ,mem_24g_interval 
+0x35ff 010145 setarg 0x017700 
+0x3600 010146 store 3 ,mem_24g_long_sleep_set 
+0x3601 010147 jam 11 ,mem_24g_fast_hop_count 
+0x3602 010148 rtn 
+:      010151 g24_transmit_dispatch:
+0x3603 010152 rtnmark0 mark_24g 
+0x3604 010153 fetch 1 ,mem_24g_conn_sm 
+0x3605 010154 bbit1 state_24g_pair ,g24_pair_dispatch 
+0x3606 010155 bbit1 state_24g_reconn ,g24_reconn_dispatch 
+0x3607 010156 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x3608 010157 beq g24_tx_timer_int_enable ,g24_transmit_by_interrupt 
+:      010158 g24_transmit_no_interrupt:
+0x3609 010159 bpatchx patch32_5 ,mem_patch32 
+0x360a 010160 call g24_txdata_prep 
+0x360b 010161 nbranch g24_nodata_transmit ,user 
+:      010162 g24_transmit_start:
+0x360c 010163 call g24_transmit_process 
+0x360d 010164 call power_ctrl_start 
+0x360e 010165 fetch 1 ,mem_device_option 
+0x360f 010166 beq dvc_op_mouse ,mouse_24g_transmit_start 
+:      010167 g24_transmit_start_next:
+0x3610 010168 fetch 8 ,mem_24g_long_sleep_set 
+0x3611 010169 store 8 ,mem_24g_enter_hibernate 
+0x3612 010170 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+0x3613 010171 store 2 ,mem_24g_long_sleep_param_update_timer 
+0x3614 010172 fetch 2 ,mem_cb_24g_transmit_short_sleep 
+0x3615 010173 branch callback_func 
+:      010175 g24_short_sleep:
+0x3616 010176 bpatchx patch32_6 ,mem_patch32 
+0x3617 010177 call g24_lpm_wait 
+0x3618 010178 nrtn user 
+0x3619 010179 call g24_setgpio_lpm_before 
+0x361a 010180 call clear_wake 
+0x361b 010181 fetch 3 ,mem_24g_short_sleep_set 
+0x361c 010182 branch g24_long_seep2 
+:      010184 g24_long_sleep:
+0x361d 010185 bpatchx patch32_7 ,mem_patch32 
+0x361e 010186 call g24_lpm_wait 
+0x361f 010187 nrtn user 
+0x3620 010188 call g24_setgpio_lpm_before 
+0x3621 010189 fetch 8 ,mem_24g_enter_hibernate 
+:      010190 g24_long_seep2:
+0x3622 010191 call clk2lpo 
+0x3623 010192 storet 4 ,mem_sleep_counter 
+0x3624 010193 branch lpm_sleep 
+:      010197 g24_txdata_prep:
+0x3625 010198 call g24_package_data 
+0x3626 010199 nrtn user 
+0x3627 010200 branch g24_transmit_prep 
+:      010203 g24_package_data:
+0x3628 010204 fetch 2 ,mem_cb_24g_transmit_data 
+0x3629 010205 call callback_func 
+0x362a 010206 branch g24_accumulate_data ,user 
+0x362b 010207 fetch 7 ,mem_24g_txbuf + 1 
+0x362c 010208 rtn blank 
+0x362d 010209 branch enable_user 
+:      010211 g24_accumulate_data:
+0x362e 010212 jam 0 ,mem_24g_abort_pac 
+0x362f 010213 add rega ,1 ,pdata 
+0x3630 010214 store 1 ,mem_24g_datalen 
+0x3631 010215 call g24_transmit_rf_ctrl_clear 
+0x3632 010216 store 1 ,mem_24g_txbuf 
+0x3633 010217 copy regb ,contr 
+0x3634 010218 copy rega ,loopcnt 
+0x3635 010219 branch memcpy 
+:      010221 g24_transmit_rf_ctrl_clear:
+0x3636 010222 fetch 1 ,mem_24g_data_type 
+0x3637 010223 and_into bits_data ,pdata 
+0x3638 010224 store 1 ,mem_24g_data_type 
+0x3639 010225 rtn 
+:      010234 g24_transmit_process:
+0x363a 010235 setarg 0 
+0x363b 010236 store 1 ,mem_24g_retry 
+0x363c 010237 store 2 ,mem_24g_retransmit 
+:      010238 g24_transmit_loop:
+0x363d 010239 call g24_transmit_receive_ack 
+0x363e 010240 fetch 1 ,mem_24g_no_ack 
+0x363f 010241 beq no_ack_24g ,g24_transmit_no_ack 
+0x3640 010242 nbranch g24_retransmit ,sync 
+0x3641 010243 nbranch g24_retransmit ,user3 
+0x3642 010244 call g24_ackpayload_parse 
+0x3643 010245 fetch 1 ,mem_device_option 
+0x3644 010246 sub pdata ,dvc_op_mouse ,null 
+0x3645 010247 call mouse_24g_transmit_callback ,zero 
+:      010248 g24_transmit_no_ack:
+0x3646 010249 call power_ctrl_pac_succ_incrs 
+:      010250 g24_transmit_next_packet:
+0x3647 010251 call g24_txbuf_clear 
+0x3648 010252 fetch 1 ,mem_24g_pid 
+0x3649 010253 increase 1 ,pdata 
+0x364a 010254 store 1 ,mem_24g_pid 
+0x364b 010255 call g24_hop_enable_packet 
+:      010256 g24_transmit_abandon:
+0x364c 010257 bpatchx patch33_0 ,mem_patch33 
+0x364d 010258 setarg 0 
+0x364e 010259 store 1 ,mem_24g_ensure 
+0x364f 010260 store 2 ,mem_24g_txfail_cnt 
+0x3650 010261 rtn 
+:      010263 g24_transmit_receive_ack:
+0x3651 010264 bpatchx patch33_1 ,mem_patch33 
+0x3652 010265 disable user3 
+0x3653 010266 call g24_transmit 
+0x3654 010267 fetch 1 ,mem_24g_no_ack 
+0x3655 010268 beq no_ack_24g ,g24_end_of_packet 
+0x3656 010269 force 0 ,radio_ctrl 
+0x3657 010270 fetch 4 ,mem_24g_addr 
+0x3658 010271 iforce access 
+0x3659 010272 fetcht 1 ,mem_last_freq 
+0x365a 010273 call set_freq_rx 
+0x365b 010274 call rf_rx_enable 
+0x365c 010275 call g24_receive_rxon 
+0x365d 010276 call g24_end_of_packet ,user3 
+0x365e 010277 rtn 
+:      010279 g24_retransmit:
+0x365f 010280 bpatchx patch33_2 ,mem_patch33 
+0x3660 010281 fetch 1 ,mem_device_option 
+0x3661 010282 beq dvc_op_mouse ,mouse_g24_retransmit 
+:      010283 g24_retransmit0:
+0x3662 010284 fetch 1 ,mem_24g_abort_pac 
+0x3663 010285 nrtn blank 
+0x3664 010286 fetch 2 ,mem_24g_txfail_cnt 
+0x3665 010287 increase 1 ,pdata 
+0x3666 010288 store 2 ,mem_24g_txfail_cnt 
+0x3667 010289 fetch 1 ,mem_24g_txfail_cnt + 1 
+0x3668 010290 bbit1 4 ,g24_tx_attempt_fail 
+0x3669 010291 call g24_transmit_hop_process 
+0x366a 010292 fetch 2 ,mem_24g_retransmit 
+0x366b 010293 increase 1 ,pdata 
+0x366c 010294 store 2 ,mem_24g_retransmit 
+0x366d 010295 branch g24_transmit_loop 
+:      010297 g24_ackpayload_parse:
+0x366e 010298 bpatchx patch33_3 ,mem_patch33 
+0x366f 010299 call g24_read_len_pid_crc 
+0x3670 010300 fetch 1 ,mem_24g_rxdata_length 
+0x3671 010301 rtn blank 
+0x3672 010302 iforce loopcnt 
+0x3673 010303 arg mem_24g_rxbuf + 2 ,contr 
+0x3674 010304 arg mem_24g_rxpayload ,contw 
+0x3675 010305 branch memcpy 
+:      010308 g24_tx_attempt_fail:
+0x3676 010309 bpatchx patch33_4 ,mem_patch33 
+0x3677 010310 setarg 0 
+0x3678 010311 store 2 ,mem_24g_txfail_cnt 
+0x3679 010312 jam 1 ,mem_24g_attempt_fail_flag 
+:      010313 g24_stop_24g_mode:
+0x367a 010314 jam bt_evt_24g_attempt_fail ,mem_fifo_temp 
+0x367b 010315 branch ui_ipc_send_event 
+:      010325 g24_transmit_hop_process:
+0x367c 010326 bpatchx patch33_5 ,mem_patch33 
+0x367d 010327 fetcht 1 ,mem_24g_retry 
+0x367e 010328 fetch 1 ,mem_24g_fast_hop_count 
+0x367f 010329 isub temp ,null 
+0x3680 010330 nbranch g24_tx_fast_hop ,positive 
+0x3681 010331 increase 1 ,temp 
+0x3682 010332 storet 1 ,mem_24g_retry 
+0x3683 010333 fetch 1 ,mem_24g_fast_hop_count 
+0x3684 010334 beq 5 ,g24_transmit_hop_process_4ms 
+0x3685 010335 fetch 1 ,mem_24g_retry 
+0x3686 010336 beq 6 ,g24_hop_ch_disable 
+0x3687 010337 beq 12 ,g24_hop_ch_disable 
+0x3688 010338 rtn 
+:      010341 g24_transmit_hop_process_4ms:
+0x3689 010342 fetch 1 ,mem_24g_retry 
+0x368a 010343 beq 3 ,g24_hop_ch_disable 
+0x368b 010344 beq 6 ,g24_hop_ch_disable 
+0x368c 010345 rtn 
+:      010349 g24_hop_ch_enable:
+:      010354 g24_txpayload_type_update:
+0x368d 010355 bmark1 mark_ble_lr ,g24_lr_type_update 
+0x368e 010356 store 1 ,mem_24g_txpayload + offset_data_type 
+0x368f 010357 rtn 
+:      010358 g24_lr_type_update:
+0x3690 010359 store 1 ,mem_24g_txpayload + offset_lr_data_type 
+0x3691 010360 rtn 
+:      010362 g24_hop_enable_packet:
+0x3692 010363 fetch 1 ,mem_24g_data_type 
+0x3693 010364 rtnbit0 bit_hop 
+:      010365 g24_hop_ch_disable:
+0x3694 010366 fetch 1 ,mem_24g_data_type 
+0x3695 010367 set0 bit_hop ,pdata 
+0x3696 010368 store 1 ,mem_24g_data_type 
+0x3697 010369 call g24_txpayload_type_update 
+0x3698 010370 call power_ctrl_pac_succ_decrs 
+0x3699 010371 branch g24_ch 
+:      010373 g24_tx_fast_hop:
+0x369a 010374 call power_ctrl_txpower_incrs 
+0x369b 010375 call power_ctrl_pac_succ_decrs 
+0x369c 010376 branch g24_ch 
+:      010394 g24_search_receiver:
+0x369d 010395 fetch 2 ,mem_cb_24g_search_receiver 
+0x369e 010396 branch callback_func 
+:      010398 g24_nodata_transmit:
+0x369f 010399 fetch 1 ,mem_24g_abort_pac 
+0x36a0 010400 call g24_send_abort_packet ,blank 
+0x36a1 010401 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x36a2 010402 rtneq g24_tx_timer_int_enable 
+0x36a3 010403 call g24_search_receiver 
+0x36a4 010404 fetch 2 ,mem_cb_24g_transmit_long_sleep 
+0x36a5 010405 branch callback_func 
+:      010407 g24_send_abort_packet:
+0x36a6 010408 jam type_ms ,mem_24g_data_type 
+0x36a7 010409 jam 1 ,mem_24g_abort_pac 
+0x36a8 010410 call g24_transmit_rf_ctrl_clear 
+0x36a9 010411 store 1 ,mem_24g_txbuf 
+0x36aa 010412 setarg 0 
+0x36ab 010413 store 7 ,mem_24g_txbuf + 1 
+0x36ac 010414 fetch 4 ,mem_24g_device_addr 
+0x36ad 010415 store 4 ,mem_24g_txbuf + 8 
+0x36ae 010416 jam 12 ,mem_24g_datalen 
+0x36af 010417 fetch 1 ,mem_24g_data_type 
+0x36b0 010418 set1 bit_abort ,pdata 
+0x36b1 010419 store 1 ,mem_24g_data_type 
+0x36b2 010420 call g24_transmit_prep 
+0x36b3 010421 branch g24_transmit_start 
+:      010425 g24_lpm_wait:
+0x36b4 010426 bpatchx patch33_6 ,mem_patch33 
+0x36b5 010427 enable user 
+0x36b6 010428 call lpo_calibration 
+0x36b7 010429 fetch 3 ,mem_clks_per_lpo 
+0x36b8 010430 branch disable_user ,blank 
+0x36b9 010431 fetch 1 ,mem_lpm_mode 
+0x36ba 010432 branch disable_user ,blank 
+0x36bb 010433 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x36bc 010434 beq g24_tx_timer_int_enable ,disable_user 
+0x36bd 010435 rtn 
+:      010437 g24_setgpio_lpm_before:
+0x36be 010438 fetch 2 ,mem_cb_24g_lpm_before 
+0x36bf 010439 branch callback_func 
+:      010452 g24_transmit_by_interrupt:
+0x36c0 010453 call g24_timer_check 
+0x36c1 010454 nrtn user 
+0x36c2 010455 call g24_interval_calibrate 
+0x36c3 010456 fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36c4 010457 increase 1 ,pdata 
+0x36c5 010458 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36c6 010459 fetcht 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+0x36c7 010460 isub temp ,null 
+0x36c8 010461 call g24_transmit_by_interrupt_exit ,zero 
+0x36c9 010462 branch g24_transmit_no_interrupt 
+:      010465 g24_transmit_by_interrupt_exit:
+0x36ca 010466 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
+0x36cb 010467 setarg 0 
+0x36cc 010468 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36cd 010469 setarg 100 
+0x36ce 010470 store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+:      010471 g24_interval_min:
+0x36cf 010472 jam 0 ,mem_24g_pac_index 
+0x36d0 010473 fetch 1 ,mem_24g_interval_min 
+:      010474 g24_interval_store:
+0x36d1 010475 store 1 ,mem_24g_interval 
+0x36d2 010476 rtn 
+:      010477 g24_interval_max:
+0x36d3 010478 fetch 1 ,mem_24g_interval_max 
+0x36d4 010479 branch g24_interval_store 
+:      010481 g24_interval_calibrate:
+0x36d5 010482 fetch 1 ,mem_24g_pac_index 
+0x36d6 010483 increase 1 ,pdata 
+0x36d7 010484 store 1 ,mem_24g_pac_index 
+0x36d8 010485 beq 4 ,g24_interval_max 
+0x36d9 010486 beq 5 ,g24_interval_min 
+0x36da 010487 rtn 
+:      010489 g24_transmit_by_interrupt_enable:
+0x36db 010490 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
+0x36dc 010491 setarg 0 
+0x36dd 010492 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36de 010493 rtn 
+:      010503 g24_factory_check:
+0x36df 010504 arg 2 ,loopcnt 
+0x36e0 010505 arg mem_24g_addr ,contr 
+:      010506 pdata_0xff_check:
+0x36e1 010507 call enable_user 
+0x36e2 010508 setarg 0xffff 
+:      010509 pdata_0xff_check_loop:
+0x36e3 010510 ifetcht 2 ,contr 
+0x36e4 010511 isub temp ,null 
+0x36e5 010512 ncall disable_user ,zero 
+0x36e6 010513 loop pdata_0xff_check_loop 
+0x36e7 010514 rtn 
+:      010524 power_ctrl_start:
+0x36e8 010525 bpatchx patch33_7 ,mem_patch33 
+0x36e9 010526 fetch 1 ,mem_power_ctrl_disable 
+0x36ea 010527 nrtn blank 
+0x36eb 010528 fetch 2 ,mem_ui_state_map 
+0x36ec 010529 rtnbit1 ui_state_ble_adv 
+0x36ed 010532 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
+0x36ee 010533 call rssi_average 
+0x36ef 010534 storet 1 ,mem_rssi_avg_received 
+0x36f0 010535 fetch 1 ,mem_rssi_dis_max_24g 
+0x36f1 010536 bmark1 mark_24g ,power_ctrl_start_next 
+0x36f2 010537 fetch 1 ,mem_rssi_dis_max_ble 
+:      010538 power_ctrl_start_next:
+0x36f3 010539 isub temp ,null 
+0x36f4 010540 nbranch power_ctrl_txpower_incrs_force ,positive 
+0x36f5 010541 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x36f6 010542 sub pdata ,2 ,null 
+0x36f7 010543 nbranch power_ctrl_txpower_decrs_check ,positive 
+0x36f8 010544 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x36f9 010545 beq 0 ,power_ctrl_txpower_incrs 
+0x36fa 010546 rtn 
+:      010548 power_ctrl_txpower_decrs_check:
+0x36fb 010549 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x36fc 010550 fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
+0x36fd 010551 isub temp ,null 
+0x36fe 010552 nrtn zero 
+0x36ff 010553 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+:      010554 power_ctrl_txpower_decrs:
+0x3700 010555 fetcht 1 ,mem_rssi_avg_received 
+0x3701 010556 fetch 1 ,mem_rssi_dis_min_24g 
+0x3702 010557 bmark1 mark_24g ,power_ctrl_txpower_decrs_next 
+0x3703 010558 fetch 1 ,mem_rssi_dis_min_ble 
+:      010559 power_ctrl_txpower_decrs_next:
+0x3704 010560 isub temp ,null 
+0x3705 010561 nrtn positive 
+0x3706 010562 fetch 1 ,mem_power_ctrl_level 
+0x3707 010563 beq 0 ,power_ctrl_decrs_level0 
+0x3708 010564 increase -1 ,pdata 
+0x3709 010565 store 1 ,mem_power_ctrl_level 
+0x370a 010566 beq 0 ,power_ctrl_decrs_level0 
+:      010567 power_ctrl_decrs_level1:
+:      010568 power_ctrl_incrs_level1:
+0x370b 010569 jam tx_power_0db ,mem_tx_power 
+0x370c 010570 rtn 
+:      010572 power_ctrl_txpower_incrs_force:
+0x370d 010573 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+:      010574 power_ctrl_txpower_incrs:
+0x370e 010575 fetch 1 ,mem_power_ctrl_level 
+0x370f 010576 beq 2 ,power_ctrl_incrs_level2 
+0x3710 010577 increase 1 ,pdata 
+0x3711 010578 store 1 ,mem_power_ctrl_level 
+0x3712 010579 beq 1 ,power_ctrl_incrs_level1 
+:      010580 power_ctrl_incrs_level2:
+0x3713 010581 jam tx_power_6db ,mem_tx_power 
+0x3714 010582 rtn 
+:      010584 power_ctrl_decrs_level0:
+0x3715 010585 jam tx_power_f5db ,mem_tx_power 
+0x3716 010586 rtn 
+:      010588 power_ctrl_pac_succ_cnt_init:
+0x3717 010589 jam 1 ,mem_power_ctrl_level 
+0x3718 010590 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+0x3719 010591 rtn 
+:      010593 power_ctrl_pac_succ_incrs:
+0x371a 010594 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x371b 010595 increase 1 ,pdata 
+0x371c 010596 store 1 ,mem_power_ctrl_pac_succ_cnt 
+0x371d 010597 rtn 
+:      010599 power_ctrl_pac_succ_decrs:
+0x371e 010600 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x371f 010601 sub pdata ,2 ,null 
+0x3720 010602 ncall power_ctrl_pac_succ_cnt_reinit ,positive 
+0x3721 010603 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x3722 010604 rtneq 0 
+0x3723 010605 increase -1 ,pdata 
+0x3724 010606 store 1 ,mem_power_ctrl_pac_succ_cnt 
+0x3725 010607 rtn 
+:      010609 power_ctrl_pac_succ_cnt_reinit:
+0x3726 010610 jam 3 ,mem_power_ctrl_pac_succ_cnt 
+0x3727 010611 rtn 
+:      010621 ali_mesh_access_layer_resolve_message:
+0x3728 010622 fetch 1 ,mem_ccm_data_len 
+0x3729 010623 store 1 ,mem_mesh_receive_model_message_payload_len 
+0x372a 010624 copy alarm ,contr 
+0x372b 010625 call memcpy24 
+0x372c 010626 fetch 2 ,mem_mesh_cb_receive_access_message 
+0x372d 010627 branch callback_func 
+:      010629 ali_mesh_access_layer_check_access_message_opcode:
+0x372e 010630 jam mesh_receive_new_message_timer ,mem_mesh_upper_receive_new_message_timer 
+0x372f 010631 call ali_mesh_app_recv_new_mesh_pkt 
+0x3730 010634 fetch 1 ,mem_mesh_receive_model_message_payload_opcode 
+0x3731 010635 beq mesh_message_opcode_config_appkey_add ,ali_mesh_access_layer_message_opcode_config_appkey_add 
+0x3732 010636 beq mesh_configuration_and_health_message_opcode_header ,ali_mesh_access_layer_config_or_health_message_opcode 
+0x3733 010637 beq mesh_module_message_opcode_header ,ali_mesh_model_layer_check_model_message_opcode 
+0x3734 010638 beq vendor_message_attr_set ,ali_mesh_ali_vendor_message_attribute_set 
+0x3735 010639 beq vendor_message_attr_get ,ali_mesh_ali_vendor_message_opcode_attr_get 
+0x3736 010640 beq vendor_message_attr_set_unacknowledged ,ali_mesh_ali_vendor_message_attribute_set 
+0x3737 010641 beq vendor_message_attr_confirmation ,ali_mesh_ali_vendor_message_opcode_attr_confrimation 
+0x3738 010642 rtn 
+:      010645 ali_mesh_access_layer_message_opcode_config_appkey_add:
+0x3739 010646 arg mem_mesh_receive_application_key ,contr 
+0x373a 010647 arg mem_mesh_application_key ,contw 
+0x373b 010648 call memcpy16 
+0x373c 010649 jam paired_status ,mem_mesh_provisioned_flag 
+0x373d 010650 call ali_mesh_encrypt_base_function_k3 
+0x373e 010651 call ali_mesh_encrypt_base_function_k4 
+0x373f 010652 call ali_mesh_access_layer_finish_pairing_init_subscription_list 
+0x3740 010653 call ali_mesh_accesss_layer_check_message_type 
+0x3741 010654 call ali_mesh_access_layer_send_config_appkey_status 
+0x3742 010655 jam paired_status ,mem_mesh_provisioned_flag 
+0x3743 010656 fetch 2 ,mem_mesh_cb_receive_config_appkey_add 
+0x3744 010657 branch callback_func 
+:      010659 ali_mesh_access_layer_recv_cfg_appkey_add_cb:
+0x3745 010660 setarg 0 
+0x3746 010661 store 2 ,mem_mesh_fast_pairing_timer 
+0x3747 010663 random pdata 
+0x3748 010664 and pdata ,0x1f ,pdata 
+0x3749 010665 add pdata ,30 ,pdata 
+0x374a 010666 store 1 ,mem_mesh_report_full_attribute_timer 
+0x374b 010667 add pdata ,5 ,pdata 
+0x374c 010668 store 1 ,mem_mesh_report_power_on_timer 
+0x374d 010669 call mesh_clear_timer_data 
+0x374e 010670 branch mesh_receive_config_appkey_add_cb 
+:      010672 ali_mesh_accesss_layer_check_message_type:
+0x374f 010673 fetch 1 ,mem_mesh_network_packet_type 
+0x3750 010674 jam received_config_appkey_add ,mem_mesh_provisioned_flag 
+0x3751 010675 rtneq mesh_message_app 
+0x3752 010676 jam paired_status ,mem_mesh_provisioned_flag 
+0x3753 010677 rtn 
+:      010679 ali_mesh_access_layer_send_config_appkey_status:
+0x3754 010680 setarg mesh_configuration_and_health_message_opcode_header 
+0x3755 010681 store 1 ,mem_mesh_access_layer_payload 
+0x3756 010682 setarg mesh_message_opcode_config_config_model_publication_set 
+0x3757 010683 istore 1 ,contw 
+0x3758 010684 setarg status_code_success 
+0x3759 010685 istore 1 ,contw 
+0x375a 010686 fetch 3 ,mem_mesh_netkeyindex_and_appkeyindex 
+0x375b 010687 istore 3 ,contw 
+0x375c 010688 jam 6 ,mem_mesh_access_layer_payload_len 
+0x375d 010689 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010692 ali_mesh_access_layer_finish_pairing_init_subscription_list:
+0x375e 010693 fetch 2 ,mem_mesh_core_feature 
+0x375f 010694 rtnbit1 mesh_feature_disable_subscription 
+0x3760 010695 call mesh_get_element_info_config 
+:      010696 ali_mesh_access_layer_finish_pairing_init_subscription_list_loop:
+0x3761 010697 add rega ,element_device_subscription_label ,regc 
+0x3762 010698 setarg -1 
+0x3763 010699 istore subscription_max_count ,regc 
+0x3764 010700 istore subscription_max_count ,contw 
+0x3765 010701 ifetch 2 ,rega 
+0x3766 010702 istore 2 ,regc 
+0x3767 010703 copy regb ,pdata 
+0x3768 010704 iadd rega ,rega 
+0x3769 010705 loop ali_mesh_access_layer_finish_pairing_init_subscription_list_loop 
+0x376a 010706 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+0x376b 010707 branch callback_func 
+:      010710 ali_mesh_access_layer_send_generic_onoff_status:
+0x376c 010711 setarg mesh_module_message_opcode_header 
+0x376d 010712 store 1 ,mem_mesh_access_layer_payload 
+0x376e 010713 setarg mesh_module_message_opcode_generic_onoff_status_no_head 
+0x376f 010714 istore 1 ,contw 
+0x3770 010715 fetch 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+0x3771 010716 istore 1 ,contw 
+0x3772 010717 jam 3 ,mem_mesh_access_layer_payload_len 
+0x3773 010718 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010721 ali_mesh_access_layer_send_light_lightness_status:
+0x3774 010722 setarg mesh_module_message_opcode_header 
+0x3775 010723 store 1 ,mem_mesh_access_layer_payload 
+0x3776 010724 setarg mesh_module_message_opcode_light_lightness_status_no_head 
+0x3777 010725 istore 1 ,contw 
+0x3778 010726 fetch 2 ,mem_mesh_light_lightness_set_payload_lightness 
+0x3779 010727 istore 2 ,contw 
+0x377a 010728 jam 4 ,mem_mesh_access_layer_payload_len 
+0x377b 010729 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010732 ali_mesh_access_layer_send_light_ctl_stauts:
+0x377c 010733 setarg mesh_module_message_opcode_header 
+0x377d 010734 store 1 ,mem_mesh_access_layer_payload 
+0x377e 010735 setarg mesh_module_message_opcode_light_ctl_status_no_head 
+0x377f 010736 istore 1 ,contw 
+0x3780 010737 fetch 4 ,mem_mesh_ctl_lightness 
+0x3781 010738 istore 4 ,contw 
+0x3782 010739 jam 6 ,mem_mesh_access_layer_payload_len 
+0x3783 010740 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010744 ali_mesh_access_layer_send_scene_status:
+0x3784 010745 setarg mesh_module_message_opcode_scene_status 
+0x3785 010746 store 1 ,mem_mesh_access_layer_payload 
+0x3786 010747 setarg mesh_success 
+0x3787 010748 istore 1 ,contw 
+0x3788 010749 fetch 2 ,mem_mesh_scene_recall_payload_scene_number 
+0x3789 010750 istore 2 ,contw 
+0x378a 010751 jam 4 ,mem_mesh_access_layer_payload_len 
+0x378b 010752 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010756 ali_mesh_app_recv_new_mesh_pkt:
+0x378c 010758 fetch 1 ,mem_mesh_report_full_attribute_timer 
+0x378d 010759 rtn blank 
+0x378e 010760 pincrease 30 
+0x378f 010761 store 1 ,mem_mesh_report_full_attribute_timer 
+0x3790 010762 rtn 
+:      010764 ali_mesh_report_power_on_timer:
+0x3791 010765 arg mem_mesh_report_power_on_timer ,regc 
+0x3792 010766 arg ali_mesh_ali_vendor_message_opcode_device_power_on ,regb 
+0x3793 010767 branch timer_single_step 
+:      010769 ali_mesh_report_full_attribute_timer:
+0x3794 010770 arg mem_mesh_report_full_attribute_timer ,regc 
+0x3795 010771 arg ali_mesh_app_report_device_state ,regb 
+0x3796 010772 branch timer_single_step 
+:      010774 ali_mesh_app_report_device_state:
+0x3797 010775 fetch 2 ,mem_mesh_app_deport_device_state 
+0x3798 010776 branch callback_func 
+:      010783 ali_mesh_ali_vendor_message_attribute_set:
+0x3799 010784 call ali_mesh_ali_vendor_message_attrbute_check_company_id_and_tid 
+0x379a 010785 nrtn user 
+0x379b 010786 bpatchx patch34_0 ,mem_patch34 
+0x379c 010787 fetch 2 ,mem_mesh_vendor_message_attr_type 
+0x379d 010788 arg vendor_message_attr_type_time ,temp 
+0x379e 010789 isub temp ,null 
+0x379f 010790 branch ali_mesh_ali_vendor_message_opcode_timer_set_curr_time ,zero 
+0x37a0 010792 arg vendor_mseeage_attr_type_set_time_repeat ,temp 
+0x37a1 010793 isub temp ,null 
+0x37a2 010794 branch ali_mesh_ali_vendor_message_opcode_timer_set_timing_cyclically ,zero 
+0x37a3 010796 arg vendor_mseeage_attr_type_set_time_single ,temp 
+0x37a4 010797 isub temp ,null 
+0x37a5 010798 branch ali_mesh_ali_vendor_message_opcode_timer_set_timing ,zero 
+0x37a6 010800 arg vendor_message_attr_type_timer_deleate ,temp 
+0x37a7 010801 isub temp ,null 
+0x37a8 010802 branch ali_mesh_ali_vendor_message_opcode_delete_timer ,zero 
+0x37a9 010803 arg vendor_message_attr_type_timer_inquire ,temp 
+0x37aa 010804 isub temp ,null 
+0x37ab 010805 branch ali_mesh_ali_vendor_message_opcode_timer_inquire ,zero 
+0x37ac 010806 arg vendor_mseeage_attr_type_timer_enable ,temp 
+0x37ad 010807 isub temp ,null 
+0x37ae 010808 branch ali_mesh_ali_vendor_message_opcode_timer_set_state ,zero 
+0x37af 010811 arg vendor_message_attr_type_main_light ,temp 
+0x37b0 010812 isub temp ,null 
+0x37b1 010813 branch ali_mesh_ali_vendor_message_attribute_set_main_light ,zero 
+0x37b2 010814 arg vendor_message_attr_type_background_light ,temp 
+0x37b3 010815 isub temp ,null 
+0x37b4 010816 branch ali_mesh_ali_vendor_message_attribute_set_background_light ,zero 
+0x37b5 010817 arg vendor_message_attr_type_color ,temp 
+0x37b6 010818 isub temp ,null 
+0x37b7 010819 branch ali_mesh_ali_vendor_message_attribute_set_color ,zero 
+0x37b8 010820 fetch 2 ,mem_mesh_cb_recv_vendor 
+0x37b9 010821 branch callback_func 
+:      010823 ali_mesh_ali_vendor_message_opcode_attr_get:
+0x37ba 010824 rtn 
+:      010825 ali_mesh_ali_vendor_message_opcode_attr_confrimation:
+0x37bb 010826 ifetch 2 ,contr 
+0x37bc 010827 arg vendor_message_opcode_company_id ,temp 
+0x37bd 010828 isub temp ,null 
+0x37be 010829 nrtn zero 
+0x37bf 010830 ifetch 1 ,contr 
+0x37c0 010831 fetcht 1 ,mem_mesh_upper_tran_layer_packet_tid 
+0x37c1 010832 isub temp ,null 
+0x37c2 010833 nrtn zero 
+0x37c3 010834 branch ali_mesh_stop_send_indication_packet 
+:      010836 ali_mesh_ali_vendor_message_attrbute_check_company_id_and_tid:
+0x37c4 010837 call disable_user 
+0x37c5 010838 fetch 2 ,mem_mesh_vendor_message_cid 
+0x37c6 010839 arg vendor_message_opcode_company_id ,temp 
+0x37c7 010840 isub temp ,null 
+0x37c8 010841 nrtn zero 
+0x37c9 010842 fetcht 1 ,mem_mesh_vendor_mesh_receive_tid 
+0x37ca 010843 fetch 1 ,mem_mesh_vendor_message_tid 
+0x37cb 010844 isub temp ,null 
+0x37cc 010845 rtn zero 
+0x37cd 010846 store 1 ,mem_mesh_vendor_mesh_receive_tid 
+0x37ce 010847 branch enable_user 
+:      010849 ali_mesh_ali_vendor_message_attribute_set_main_light:
+0x37cf 010850 call ali_mesh_ali_vendor_message_ack_attr_status_uint8 
+0x37d0 010851 fetch 2 ,mem_mesh_cb_main_light_onoff_set 
+0x37d1 010852 branch callback_func 
+:      010855 ali_mesh_ali_vendor_message_attribute_set_background_light:
+0x37d2 010856 call ali_mesh_ali_vendor_message_ack_attr_status_uint8 
+0x37d3 010857 fetch 2 ,mem_mesh_cb_background_onoff_set 
+0x37d4 010858 branch callback_func 
+:      010860 ali_mesh_ali_vendor_message_attribute_set_color:
+0x37d5 010861 call ali_mesh_ali_vendor_message_ack_attr_status_uint48 
+0x37d6 010862 fetch 2 ,mem_mesh_cb_color_set 
+0x37d7 010863 branch callback_func 
+:      010866 ali_mesh_ali_vendor_message_opcode_timer_set_curr_time:
+0x37d8 010867 call ali_mesh_ali_vendor_message_ack_attr_status_uint32 
+0x37d9 010869 fetch 4 ,mem_mesh_vendor_message_current_time 
+0x37da 010870 store 4 ,mem_mesh_vendor_timer_current_time 
+0x37db 010871 branch ali_mesh_time_init_system_time 
+:      010875 ali_mesh_ali_vendor_message_status_add_head:
+0x37dc 010876 setarg vendor_message_attr_status 
+0x37dd 010877 store 1 ,mem_mesh_access_layer_payload 
+0x37de 010878 setarg vendor_message_opcode_company_id 
+0x37df 010879 istore 2 ,contw 
+0x37e0 010880 fetch 1 ,mem_mesh_vendor_mesh_receive_tid 
+0x37e1 010881 istore 1 ,contw 
+0x37e2 010882 istoret 2 ,contw 
+0x37e3 010883 rtn 
+:      010886 ali_mesh_ali_vendor_message_opcode_device_power_on:
+0x37e4 010887 arg 0 ,queue 
+0x37e5 010888 arg vendor_message_event_device_power_on ,temp 
+0x37e6 010889 arg vendor_attr_type_event_trigger ,rega 
+0x37e7 010890 branch ali_mesh_ali_vendor_message_opcode_para_uint8 
+:      010901 ali_mesh_ali_vendor_message_opcode_generic_onoff:
+0x37e8 010902 arg vendor_attr_generic_onoff_server ,rega 
+0x37e9 010903 branch ali_mesh_ali_vendor_message_opcode_para_uint8 
+:      010907 ali_mesh_ali_vendor_message_ack_attr_status_uint64:
+0x37ea 010908 arg 8 ,loopcnt 
+0x37eb 010909 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010911 ali_mesh_ali_vendor_message_ack_attr_status_uint56:
+0x37ec 010912 arg 8 ,loopcnt 
+0x37ed 010913 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010915 ali_mesh_ali_vendor_message_ack_attr_status_uint48:
+0x37ee 010916 arg 6 ,loopcnt 
+0x37ef 010917 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010919 ali_mesh_ali_vendor_message_ack_attr_status_uint32:
+0x37f0 010920 arg 4 ,loopcnt 
+0x37f1 010921 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010923 ali_mesh_ali_vendor_message_ack_attr_status_uint16:
+0x37f2 010924 arg 2 ,loopcnt 
+0x37f3 010925 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010927 ali_mesh_ali_vendor_message_ack_attr_status_uint8:
+0x37f4 010928 arg 1 ,loopcnt 
+0x37f5 010929 branch ali_mesh_ali_vendor_message_ack_attr_status 
+:      010932 ali_mesh_ali_vendor_message_ack_attr_status:
+0x37f6 010933 add loopcnt ,6 ,pdata 
+0x37f7 010934 store 1 ,mem_mesh_access_layer_payload_len 
+0x37f8 010935 call ali_mesh_ali_vendor_message_status_add_head 
+0x37f9 010936 arg mem_mesh_vendor_attr_parameter ,contr 
+0x37fa 010937 call memcpy 
+0x37fb 010938 branch ali_mesh_upper_transport_layer_send_access_message 
+:      010945 ali_mesh_ali_vendor_message_opcode_para_uint8:
+0x37fc 010946 call ali_mesh_ali_vendor_message_indication_info_add_head 
+0x37fd 010947 istorer rega ,2 ,contw 
+0x37fe 010948 istoret 1 ,contw 
+0x37ff 010949 jam 7 ,mem_mesh_access_layer_payload_len 
+0x3800 010950 branch ali_mesh_ali_vendor_message_send_message 
+:      010956 ali_mesh_ali_vendor_message_opcode_para_uint16:
+0x3801 010957 call ali_mesh_ali_vendor_message_indication_info_add_head 
+0x3802 010958 istorer rega ,2 ,contw 
+0x3803 010959 istoret 2 ,contw 
+0x3804 010960 jam 8 ,mem_mesh_access_layer_payload_len 
+0x3805 010961 branch ali_mesh_ali_vendor_message_send_message 
+:      010965 ali_mesh_ali_vendor_message_send_message:
+0x3806 010966 call ali_mesh_more_element_calc_queue_address 
+0x3807 010967 branch ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer 
+:      010970 ali_mesh_ali_vendor_message_indication_info_add_head:
+0x3808 010971 fetch 1 ,mem_mesh_transport_aid 
+0x3809 010972 store 1 ,mem_mesh_message_transport_head 
+0x380a 010973 setarg vendor_message_tmall_dst 
+0x380b 010974 store 2 ,mem_mesh_send_message_dst 
+0x380c 010975 fetch 1 ,mem_mesh_vendor_mesh_send_tid 
+0x380d 010976 pincrease 1 
+0x380e 010977 store 1 ,mem_mesh_vendor_mesh_send_tid 
+0x380f 010978 beq vendor_message_send_tid_max ,ali_mesh_ali_vendor_message_indication_info_reset_tid 
+0x3810 010979 setarg vendor_message_attr_indication 
+0x3811 010980 store 1 ,mem_mesh_access_layer_payload 
+0x3812 010981 setarg vendor_message_opcode_company_id 
+0x3813 010982 istore 2 ,contw 
+0x3814 010983 fetch 1 ,mem_mesh_vendor_mesh_send_tid 
+0x3815 010984 istore 1 ,contw 
+0x3816 010985 rtn 
+:      010987 ali_mesh_ali_vendor_message_indication_info_reset_tid:
+0x3817 010988 jam vendor_message_send_tid_min ,mem_mesh_vendor_mesh_send_tid 
+0x3818 010989 rtn 
+:      010992 ali_mesh_ali_vendor_message_opcode_delete_timer:
+0x3819 010993 copy contr ,rega 
+0x381a 010994 fetch 1 ,mem_mesh_receive_model_message_payload_len 
+0x381b 010995 arg 6 ,temp 
+0x381c 010996 isub temp ,pdata 
+0x381d 010997 store 1 ,mem_mesh_timer_index_buffer_len 
+0x381e 010998 copy pdata ,loopcnt 
+0x381f 010999 copy rega ,contr 
+0x3820 011000 arg mem_mesh_timer_index_buffer ,contw 
+0x3821 011001 call memcpy 
+0x3822 011002 arg 0 ,regb 
+:      011003 ali_mesh_ali_vendor_message_opcode_delete_timer_loop:
+0x3823 011004 arg mem_mesh_timer_index_buffer ,pdata 
+0x3824 011005 iadd regb ,temp 
+0x3825 011006 ifetch 1 ,temp 
+0x3826 011007 beq 0xff ,ali_mesh_ali_vendor_aim_timer_buffer_clear_all 
+0x3827 011008 and pdata ,0x7f ,pdata 
+0x3828 011009 call ali_mesh_ali_vendor_aim_timer_buffer_clear 
+0x3829 011010 increase 1 ,regb 
+0x382a 011011 fetch 1 ,mem_mesh_timer_index_buffer_len 
+0x382b 011012 isub regb ,null 
+0x382c 011013 branch ali_mesh_ali_vendor_message_opcode_delete_timer_loop ,positive 
+0x382d 011014 call peripherals_write_mesh_timer_infmatn 
+:      011015 ali_mesh_access_layer_send_ali_vendor_message_delete_timer:
+0x382e 011016 arg vendor_message_attr_type_timer_deleate ,temp 
+0x382f 011017 call ali_mesh_ali_vendor_message_status_add_head 
+0x3830 011018 arg 0 ,temp 
+0x3831 011019 istoret 1 ,contw 
+0x3832 011020 copy contw ,temp 
+0x3833 011021 call ali_mesh_get_all_timer_index_timer 
+0x3834 011022 pincrease 7 
+0x3835 011023 store 1 ,mem_mesh_access_layer_payload_len 
+0x3836 011024 branch ali_mesh_upper_transport_layer_send_access_message 
+:      011026 ali_mesh_ali_vendor_aim_timer_buffer_clear:
+0x3837 011027 rtn blank 
+0x3838 011028 pincrease -1 
+0x3839 011029 mul32 pdata ,18 ,pdata 
+0x383a 011030 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+0x383b 011031 iadd rega ,rega 
+0x383c 011032 setarg 0 
+0x383d 011033 istore 1 ,rega 
+0x383e 011034 rtn 
+:      011036 ali_mesh_ali_vendor_aim_timer_buffer_clear_all:
+0x383f 011037 arg 18 ,loopcnt 
+0x3840 011038 mul32 loopcnt ,mesh_x_timers ,loopcnt 
+0x3841 011039 arg mem_mesh_vendor_timer_timing_buffer ,contw 
+0x3842 011040 call clear_mem 
+0x3843 011041 call peripherals_write_mesh_timer_infmatn 
+0x3844 011042 branch ali_mesh_access_layer_send_ali_vendor_message_delete_timer 
+:      011044 ali_mesh_ali_vendor_message_opcode_timer_inquire:
+0x3845 011045 ifetch 1 ,contr 
+0x3846 011046 beq 0xff ,ali_mesh_ali_vendor_message_opcode_timer_inquire_all_timer 
+0x3847 011047 store 1 ,mem_mesh_vendor_timer_timing_temp 
+0x3848 011048 ifetch 1 ,contr 
+0x3849 011049 pincrease -1 
+0x384a 011050 mul32 pdata ,18 ,pdata 
+0x384b 011051 arg mem_mesh_vendor_timer_timing_buffer ,contr 
+0x384c 011052 iadd contr ,contr 
+0x384d 011053 arg mem_mesh_vendor_timer_timing_palyload ,contw 
+0x384e 011054 arg 18 ,loopcnt 
+0x384f 011055 call memcpy 
+0x3850 011056 arg vendor_message_attr_type_timer_inquire ,temp 
+0x3851 011057 call ali_mesh_ali_vendor_message_status_add_head 
+0x3852 011058 fetch 1 ,mem_mesh_vendor_timer_timing_index 
+0x3853 011059 branch ali_mesh_ali_vendor_message_opcode_timer_inquire_time_error ,blank 
+0x3854 011060 arg 0 ,temp 
+0x3855 011061 istoret 1 ,contw 
+:      011062 ali_mesh_ali_vendor_message_opcode_timer_inquire_time:
+0x3856 011063 fetch 1 ,mem_mesh_vendor_timer_timing_temp 
+0x3857 011064 istore 1 ,contw 
+0x3858 011065 fetch 1 ,mem_mesh_vendor_timer_timing_index 
+0x3859 011066 istore 1 ,contw 
+0x385a 011067 fetch 8 ,mem_mesh_vendor_timer_timing_time 
+0x385b 011068 istore 8 ,contw 
+0x385c 011069 jam 17 ,mem_mesh_access_layer_payload_len 
+0x385d 011070 branch ali_mesh_upper_transport_layer_send_access_message 
+:      011073 ali_mesh_ali_vendor_message_opcode_timer_inquire_all_timer:
+0x385e 011074 arg vendor_message_attr_type_timer_inquire ,temp 
+0x385f 011075 call ali_mesh_ali_vendor_message_status_add_head 
+0x3860 011076 arg 0xff ,temp 
+0x3861 011077 istoret 2 ,contw 
+0x3862 011080 copy contw ,temp 
+0x3863 011081 call ali_mesh_get_all_timer_index_timer 
+0x3864 011082 pincrease 8 
+0x3865 011083 store 1 ,mem_mesh_access_layer_payload_len 
+0x3866 011084 branch ali_mesh_upper_transport_layer_send_access_message 
+:      011089 ali_mesh_ali_vendor_message_opcode_timer_inquire_time_error:
+0x3867 011090 arg 0x80 ,temp 
+0x3868 011091 istore 1 ,contw 
+0x3869 011092 branch ali_mesh_ali_vendor_message_opcode_timer_inquire_time 
+:      011094 ali_mesh_ali_vendor_message_opcode_timer_set_state:
+0x386a 011095 ifetch 1 ,contr 
+0x386b 011096 store 1 ,mem_mesh_vendor_timer_timing_temp 
+0x386c 011097 and pdata ,0x7f ,pdata 
+0x386d 011098 pincrease -1 
+0x386e 011099 mul32 pdata ,18 ,pdata 
+0x386f 011100 arg mem_mesh_vendor_timer_timing_buffer ,contw 
+0x3870 011101 iadd contw ,contw 
+0x3871 011102 fetch 1 ,mem_mesh_vendor_timer_timing_temp 
+0x3872 011103 istore 1 ,contw 
+0x3873 011104 call peripherals_write_mesh_timer_infmatn 
+0x3874 011105 arg vendor_mseeage_attr_type_timer_enable ,temp 
+0x3875 011106 call ali_mesh_ali_vendor_message_status_add_head 
+0x3876 011107 setarg 0 
+0x3877 011108 istore 1 ,contw 
+0x3878 011109 copy contw ,temp 
+0x3879 011110 call ali_mesh_get_all_timer_index_timer 
+0x387a 011111 pincrease 7 
+0x387b 011112 store 1 ,mem_mesh_access_layer_payload_len 
+0x387c 011113 branch ali_mesh_upper_transport_layer_send_access_message 
+:      011118 ali_mesh_time_function:
+0x387d 011119 copy clkn_bt ,temp 
+0x387e 011120 fetch 4 ,mem_system_time 
+0x387f 011121 isub temp ,null 
+0x3880 011122 call ali_mesh_timer_timeout ,positive 
+0x3881 011123 call ali_mesh_clkn_bt_add_1s 
+0x3882 011124 isub temp ,null 
+0x3883 011125 rtn positive 
+0x3884 011126 call ali_mesh_time_init_system_time_without_clk 
+0x3885 011127 fetch 4 ,mem_mesh_vendor_timer_current_time 
+0x3886 011128 pincrease 1 
+0x3887 011129 store 4 ,mem_mesh_vendor_timer_current_time 
+0x3888 011130 branch ali_mesh_ali_vendor_check_time 
+:      011133 ali_mesh_time_init_system_time:
+0x3889 011134 copy clkn_bt ,pdata 
+:      011135 ali_mesh_time_init_system_time_without_clk:
+0x388a 011136 store 4 ,mem_system_time 
+0x388b 011137 fetch 1 ,mem_system_time + 3 
+0x388c 011138 and_into 0x0f ,pdata 
+0x388d 011139 store 1 ,mem_system_time + 3 
+0x388e 011140 rtn 
+:      011142 ali_mesh_timer_timeout:
+0x388f 011143 rtn zero 
+0x3890 011144 copy pdata ,regb 
+0x3891 011145 setarg 0x100000 
+0x3892 011146 lshift8 pdata ,pdata 
+0x3893 011147 iadd temp ,temp 
+0x3894 011148 copy regb ,pdata 
+0x3895 011149 rtn 
+:      011151 ali_mesh_clkn_bt_add_1s:
+0x3896 011152 arg 20 ,loopcnt 
+:      011153 ali_mesh_time_loop:
+0x3897 011154 pincrease 160 
+0x3898 011155 loop ali_mesh_time_loop 
+0x3899 011156 rtn 
+:      011158 ali_mesh_ali_vendor_check_time:
+0x389a 011159 setarg mesh_x_timers 
+0x389b 011160 store 1 ,mem_mesh_vendor_timer_check_loop 
+0x389c 011161 pincrease -1 
+0x389d 011162 mul32 pdata ,18 ,pdata 
+0x389e 011163 arg mem_mesh_vendor_timer_timing_buffer ,alarm 
+0x389f 011164 iadd alarm ,alarm 
+:      011165 ali_mesh_ali_vendor_check_time_loop:
+0x38a0 011166 ifetch 1 ,alarm 
+0x38a1 011167 ncall ali_mesh_ali_vendor_had_timing ,blank 
+0x38a2 011168 increase -18 ,alarm 
+0x38a3 011170 fetch 1 ,mem_mesh_vendor_timer_check_loop 
+0x38a4 011171 pincrease -1 
+0x38a5 011172 rtn blank 
+0x38a6 011173 store 1 ,mem_mesh_vendor_timer_check_loop 
+0x38a7 011174 branch ali_mesh_ali_vendor_check_time_loop 
+:      011176 ali_mesh_ali_vendor_had_timing:
+0x38a8 011177 arg 7 ,queue 
+0x38a9 011178 qisolate0 pdata 
+0x38aa 011179 rtn true 
+0x38ab 011180 and pdata ,0x7f ,pdata 
+0x38ac 011181 arg mesh_x_timers ,temp 
+0x38ad 011182 isub temp ,null 
+0x38ae 011183 rtn positive 
+0x38af 011184 copy alarm ,contr 
+0x38b0 011185 arg mem_mesh_vendor_timer_timing_palyload ,contw 
+0x38b1 011186 arg 18 ,loopcnt 
+0x38b2 011187 call memcpy 
+0x38b3 011188 fetch 1 ,mem_mesh_vendor_timer_timing_palyload + 17 
+0x38b4 011189 beq 0x59 ,ali_mesh_ali_vendor_had_timing_cyclically 
+:      011190 ali_mesh_ali_vendor_had_timing_single_time:
+0x38b5 011191 fetcht 4 ,mem_mesh_vendor_timer_current_time 
+0x38b6 011192 fetch 4 ,mem_mesh_vendor_timer_timing_time 
+0x38b7 011193 isub temp ,null 
+0x38b8 011194 fetch 1 ,mem_mesh_vendor_timer_timing_attr_para 
+0x38b9 011195 branch ali_mesh_ali_vendor_time_timeout ,zero 
+0x38ba 011196 nbranch ali_mesh_ali_vendor_time_out_of_date ,positive 
+0x38bb 011197 rtn 
+:      011199 ali_mesh_ali_vendor_time_out_of_date:
+0x38bc 011200 setarg 0 
+0x38bd 011201 istore 1 ,alarm 
+0x38be 011202 rtn 
+:      011204 ali_mesh_ali_vendor_had_timing_cyclically:
+0x38bf 011206 fetch 4 ,mem_mesh_vendor_timer_current_time 
+0x38c0 011207 arg seconds_of_min ,temp 
+0x38c1 011208 idiv temp 
+0x38c2 011209 call wait_div_end 
+0x38c3 011210 remainder pdata 
+0x38c4 011211 nrtn blank 
+0x38c5 011213 fetch 4 ,mem_mesh_vendor_timer_current_time 
+0x38c6 011214 arg seconds_of_four_days ,temp 
+0x38c7 011215 isub temp ,pdata 
+0x38c8 011217 arg seconds_of_week ,temp 
+0x38c9 011218 idiv temp 
+0x38ca 011219 call wait_div_end 
+0x38cb 011220 remainder pdata 
+0x38cc 011221 arg seconds_of_day ,temp 
+0x38cd 011222 idiv temp 
+0x38ce 011223 call wait_div_end 
+0x38cf 011224 remainder rega 
+0x38d0 011225 quotient queue 
+0x38d1 011226 fetch 1 ,mem_mesh_vendor_timer_timing_weekdays_cyclic 
+0x38d2 011227 branch ali_mesh_ali_vendor_had_timing_cyclically_continue ,blank 
+0x38d3 011228 qisolate1 pdata 
+0x38d4 011229 nrtn true 
+:      011230 ali_mesh_ali_vendor_had_timing_cyclically_continue:
+0x38d5 011232 deposit rega 
+0x38d6 011233 arg seconds_of_min ,temp 
+0x38d7 011234 idiv temp 
+0x38d8 011235 call wait_div_end 
+0x38d9 011236 quotient temp 
+0x38da 011237 setarg eight_hours_time_zone_offset 
+0x38db 011238 iadd temp ,temp 
+0x38dc 011239 fetch 2 ,mem_mesh_vendor_timer_timing_time_cyclic 
+0x38dd 011240 arg 0xfff ,rega 
+0x38de 011241 iand rega ,pdata 
+0x38df 011242 isub temp ,null 
+0x38e0 011243 nrtn zero 
+0x38e1 011244 fetch 1 ,mem_mesh_vendor_timer_timing_attr_para_cyclic 
+0x38e2 011245 branch ali_mesh_ali_vendor_time_timeout 
+:      011247 ali_mesh_ali_vendor_time_timeout:
+0x38e3 011248 store 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+0x38e4 011249 jam 1 ,mem_mesh_vendor_timer_check_loop 
+0x38e5 011251 copy alarm ,pdata 
+0x38e6 011252 store 2 ,mem_mesh_alarm_temp 
+0x38e7 011254 fetcht 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+0x38e8 011255 fetchr queue ,1 ,mem_mesh_receive_element_number 
+0x38e9 011256 call ali_mesh_ali_vendor_message_opcode_generic_onoff 
+0x38ea 011258 fetch 2 ,mem_mesh_alarm_temp 
+0x38eb 011259 copy pdata ,alarm 
+0x38ec 011260 add alarm ,17 ,contr 
+0x38ed 011261 ifetch 1 ,contr 
+0x38ee 011262 beq timer_cyclical_falg ,ali_mesh_ali_vendor_time_timeout_cyclic 
+:      011263 ali_mesh_ali_vendor_time_timeout_continue:
+0x38ef 011264 setarg 0 
+0x38f0 011265 istore 1 ,alarm 
+0x38f1 011266 fetchr queue ,1 ,mem_mesh_receive_element_number 
+0x38f2 011267 call ali_mesh_ali_vendor_message_opcode_timing_finish 
+0x38f3 011268 branch peripherals_write_mesh_timer_infmatn 
+:      011272 ali_mesh_ali_vendor_time_timeout_cyclic:
+0x38f4 011273 fetch 1 ,mem_mesh_vendor_timer_timing_weekdays_cyclic 
+0x38f5 011274 branch ali_mesh_ali_vendor_time_timeout_continue ,blank 
+0x38f6 011275 arg vendor_attr_type_event_trigger ,temp 
+0x38f7 011276 call ali_mesh_ali_vendor_message_status_add_head 
+0x38f8 011277 setarg 0x11 
+0x38f9 011278 istore 1 ,contw 
+0x38fa 011279 ifetch 1 ,alarm 
+0x38fb 011280 or pdata ,0x80 ,pdata 
+0x38fc 011281 istore 1 ,contw 
+0x38fd 011282 jam 8 ,mem_mesh_access_layer_payload 
+0x38fe 011283 branch ali_mesh_ali_vendor_message_send_message 
+:      011285 ali_mesh_ali_vendor_message_opcode_timing_finish:
+0x38ff 011286 arg vendor_attr_type_event_index_report ,temp 
+0x3900 011287 call ali_mesh_ali_vendor_message_status_add_head 
+0x3901 011288 copy contw ,temp 
+0x3902 011289 call ali_mesh_get_all_timer_index_timer 
+0x3903 011291 pincrease 6 
+0x3904 011292 store 1 ,mem_mesh_access_layer_payload_len 
+0x3905 011293 jam vendor_message_attr_status ,mem_mesh_access_layer_payload 
+0x3906 011294 branch ali_mesh_ali_vendor_message_send_message 
+:      011297 ali_mesh_ali_vendor_message_opcode_timer_set_timing:
+0x3907 011298 arg mem_mesh_vendor_timer_timing_index ,contw 
+0x3908 011299 arg 16 ,loopcnt 
+0x3909 011300 call memcpy 
+0x390a 011301 fetch 1 ,mem_mesh_vendor_timer_timing_index 
+0x390b 011302 and pdata ,0x7f ,pdata 
+0x390c 011303 store 1 ,mem_mesh_vendor_timer_timing_temp 
+0x390d 011304 sub pdata ,mesh_x_timers ,null 
+0x390e 011305 nrtn positive 
+0x390f 011306 fetch 4 ,mem_mesh_vendor_timer_timing_time 
+0x3910 011307 arg 60 ,temp 
+0x3911 011308 idiv temp 
+0x3912 011309 call wait_div_end 
+0x3913 011310 remainder temp 
+0x3914 011311 isub temp ,pdata 
+0x3915 011312 store 4 ,mem_mesh_vendor_timer_timing_time 
+0x3916 011313 setarg 0 
+0x3917 011314 store 2 ,mem_mesh_vendor_timer_timing_flag 
+0x3918 011315 arg mem_mesh_vendor_timer_timing_index ,rega 
+0x3919 011316 call ali_mesh_ali_vendor_store_mesh_timer_infmatn 
+0x391a 011317 arg vendor_mseeage_attr_type_set_time_single ,temp 
+0x391b 011318 branch ali_mesh_access_layer_send_ali_vendor_message_current_timing 
+:      011323 ali_mesh_ali_vendor_message_opcode_timer_set_timing_cyclically:
+0x391c 011325 arg mem_mesh_vendor_timer_timing_index_cyclic ,contw 
+0x391d 011326 arg 17 ,loopcnt 
+0x391e 011327 call memcpy 
+0x391f 011330 fetch 1 ,mem_mesh_vendor_timer_timing_index_cyclic 
+0x3920 011331 and pdata ,0x7f ,pdata 
+0x3921 011332 store 1 ,mem_mesh_vendor_timer_timing_temp 
+0x3922 011333 sub pdata ,mesh_x_timers ,null 
+0x3923 011334 nrtn positive 
+0x3924 011336 jam 0x59 ,mem_mesh_vendor_timer_timing_cyclic_flag 
+0x3925 011337 arg mem_mesh_vendor_timer_timing_index_cyclic ,rega 
+0x3926 011338 call ali_mesh_ali_vendor_store_mesh_timer_infmatn 
+0x3927 011339 arg vendor_mseeage_attr_type_set_time_repeat ,temp 
+:      011342 ali_mesh_access_layer_send_ali_vendor_message_current_timing:
+0x3928 011344 call ali_mesh_ali_vendor_message_status_add_head 
+0x3929 011345 setarg 0 
+0x392a 011346 store 1 ,mem_mesh_access_layer_payload + 6 
+0x392b 011347 copy contw ,temp 
+0x392c 011348 call ali_mesh_get_all_timer_index_timer 
+0x392d 011349 pincrease 7 
+0x392e 011350 store 1 ,mem_mesh_access_layer_payload_len 
+0x392f 011351 branch ali_mesh_upper_transport_layer_send_access_message 
+:      011354 ali_mesh_ali_vendor_store_mesh_timer_infmatn:
+0x3930 011355 call ali_mesh_vendor_timer_buffer_offset_cal 
+0x3931 011356 copy rega ,contr 
+0x3932 011357 arg mem_mesh_vendor_timer_timing_buffer ,contw 
+0x3933 011358 iadd contw ,contw 
+0x3934 011359 arg 18 ,loopcnt 
+0x3935 011360 call memcpy 
+0x3936 011361 branch peripherals_write_mesh_timer_infmatn 
+:      011363 ali_mesh_vendor_timer_buffer_offset_cal:
+0x3937 011364 fetch 1 ,mem_mesh_vendor_timer_timing_temp 
+0x3938 011365 pincrease -1 
+0x3939 011366 mul32 pdata ,18 ,pdata 
+0x393a 011367 rtn 
+:      011369 ali_mesh_get_all_timer_index_timer:
+0x393b 011370 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+0x393c 011371 arg 0 ,regb 
+0x393d 011372 copy temp ,contw 
+0x393e 011373 arg mesh_x_timers ,loopcnt 
+0x393f 011374 increase -1 ,loopcnt 
+:      011375 ali_mesh_get_all_timer_index_timer_loop:
+0x3940 011376 ifetch 1 ,rega 
+0x3941 011377 beq 0xff ,ali_mesh_get_all_timer_index_timer_loop_end 
+0x3942 011378 branch ali_mesh_get_all_timer_index_timer_loop_end ,blank 
+0x3943 011379 increase 1 ,regb 
+0x3944 011380 istore 1 ,contw 
+:      011381 ali_mesh_get_all_timer_index_timer_loop_end:
+0x3945 011382 setarg 18 
+0x3946 011383 iadd rega ,rega 
+0x3947 011384 loop ali_mesh_get_all_timer_index_timer_loop 
+0x3948 011385 copy regb ,pdata 
+0x3949 011386 rtn 
+:      011388 peripherals_write_mesh_timer_infmatn:
+0x394a 011389 fetch 2 ,mem_mesh_cb_vendor_timing_changed 
+0x394b 011390 branch callback_func 
+:      011400 ali_mesh_bearer_layer_send_packet_by_network_layer:
+0x394c 011401 bpatchx patch34_1 ,mem_patch34 
+0x394d 011402 setarg mem_mesh_queue_each_size 
+0x394e 011403 store 2 ,mem_mesh_element_device_queue_buffer_ptr 
+0x394f 011404 setarg mem_mesh_element_device 
+0x3950 011405 store 2 ,mem_mesh_rega_temp 
+0x3951 011406 jam adv_pairing_mesh_message_duration ,mem_mesh_queue_ele_duration 
+0x3952 011407 fetch 1 ,mem_mesh_gatt_package_send_msg_id 
+0x3953 011408 store 1 ,mem_mesh_queue_ele_gatt_msg_id 
+0x3954 011410 fetch 1 ,mem_mesh_lower_transport_layer_payload_len 
+0x3955 011411 pincrease 11 
+0x3956 011412 add pdata ,-2 ,loopcnt 
+0x3957 011421 store 1 ,mem_mesh_queue_ele_len 
+0x3958 011422 pincrease -1 
+0x3959 011425 istore 1 ,contw 
+0x395a 011426 setarg gap_adtype_mesh_message 
+0x395b 011427 istore 1 ,contw 
+0x395c 011428 arg mem_mesh_send_upper_layer_ivi_and_nid ,contr 
+0x395d 011429 call memcpy_fast 
+0x395e 011430 fetchr rega ,2 ,mem_mesh_rega_temp 
+0x395f 011431 call ali_mesh_advertising_bearer_layer_init_queue 
+0x3960 011432 call queue_push 
+:      011433 ali_mesh_bearer_layer_gatt_send_packet_by_network_layer:
+0x3961 011434 fetch 2 ,mem_ui_state_map 
+0x3962 011435 isolate1 ui_state_ble_connected ,pdata 
+0x3963 011436 nrtn true 
+:      011437 ali_mesh_send_ble_data_control_package:
+0x3964 011438 call ali_mesh_network_layer_init_gatt_queue_param 
+0x3965 011439 arg mem_mesh_queue_ele_temp ,rega 
+0x3966 011440 branch queue_push 
+:      011442 ali_mesh_advertising_bearer_layer_init_queue:
+0x3967 011443 add rega ,element_device_queue_buffer_ptr ,contr 
+0x3968 011444 ifetch 2 ,contr 
+0x3969 011445 store 2 ,mem_queue_ptr 
+0x396a 011446 arg mem_mesh_queue_ele_temp ,rega 
+0x396b 011447 rtn 
+:      011450 ali_mesh_advertising_bearer_layer_init_queue_param:
+0x396c 011451 setarg mem_mesh_queue_each_size 
+0x396d 011452 store 2 ,mem_queue_ptr 
+0x396e 011453 rtn 
+:      011455 ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue:
+:      011457 ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue_deal:
+0x396f 011458 fetch 1 ,mem_mesh_upper_tran_layer_packet_advertising 
+0x3970 011459 rtnne packet_in_bearer 
+0x3971 011460 jam packet_in_adverting ,mem_mesh_upper_tran_layer_packet_advertising 
+0x3972 011461 branch ali_mesh_control_ble_advertising_on_advertising 
+:      011463 ali_mesh_advertising_bearer_layer_send_packet_by_app_bearer_calc_param:
+0x3973 011464 arg mem_mesh_queue_ele_payload + 2 ,rega 
+0x3974 011465 arg max_app_mssage_payload_length ,temp 
+0x3975 011466 setarg 0x21 
+0x3976 011467 nrtn true 
+0x3977 011468 arg mem_mesh_queue_ele_payload + 20 ,rega 
+0x3978 011469 fetcht 1 ,mem_mesh_queue_ele_len 
+0x3979 011470 increase -18 ,temp 
+0x397a 011471 setarg 0x22 
+0x397b 011472 rtn 
+:      011480 ali_mesh_advertising_add_adtype_flags:
+0x397c 011481 arg mem_mesh_adv_data ,contw 
+0x397d 011482 setarg 0x02 
+0x397e 011483 istore 1 ,contw 
+0x397f 011484 setarg gap_adtype_flags 
+0x3980 011485 istore 1 ,contw 
+0x3981 011486 setarg 0x02 
+0x3982 011487 istore 1 ,contw 
+0x3983 011488 rtn 
+:      011492 ali_mesh_advertising_add_adtype_16bit_complete:
+0x3984 011493 arg mesh_provisioning_uuid ,temp 
+0x3985 011494 setarg 0x03 
+0x3986 011495 istore 1 ,contw 
+0x3987 011496 setarg gap_adtype_16bit_complete 
+0x3988 011497 istore 1 ,contw 
+0x3989 011498 istoret 2 ,contw 
+0x398a 011499 rtn 
+:      011502 mesh_ble_rx_packet_only:
+0x398b 011503 call le_enable 
+0x398c 011504 call le_init_adv 
+0x398d 011505 call le_receive_adv 
+0x398e 011506 nrtn match 
+0x398f 011508 fetch 1 ,mem_le_adv_rcv 
+0x3990 011509 pincrease 1 
+0x3991 011510 store 1 ,mem_le_adv_rcv 
+0x3992 011511 fetch 2 ,mem_mesh_cb_receive_advertising 
+0x3993 011512 call callback_func 
+0x3994 011513 branch le_disable 
+:      011515 mesh_ble_rx_packet:
+0x3995 011516 call mesh_ble_rx_packet_check_and_init 
+0x3996 011517 rtn user 
+:      011518 mesh_ble_rx_packet_check_timer:
+0x3997 011519 call mesh_ble_rx_packet_only 
+0x3998 011520 call connection_dispatch 
+0x3999 011521 fetcht 2 ,mem_le_scan_interval 
+0x399a 011522 arg 10 ,queue 
+0x399b 011523 call sniff_check_window 
+0x399c 011524 rtn user 
+0x399d 011525 arg mesh_ble_rx_timer ,queue 
+0x399e 011526 call timer_check 
+0x399f 011527 nbranch mesh_ble_rx_packet_check_timer ,blank 
+0x39a0 011528 rtn 
+:      011530 mesh_ble_rx_packet_check_and_init:
+0x39a1 011531 fetcht 2 ,mem_le_scan_interval 
+0x39a2 011532 arg 4 ,queue 
+0x39a3 011533 call sniff_check_window 
+0x39a4 011534 rtn user 
+0x39a5 011535 call mesh_le_calc_next_scan_channel 
+0x39a6 011536 fetch 2 ,mem_le_scan_interval 
+0x39a7 011537 arg mesh_ble_rx_timer ,queue 
+0x39a8 011538 branch timer_init 
+:      011541 mesh_le_calc_next_scan_channel:
+0x39a9 011542 fetch 1 ,mem_mesh_adv_scan_channel 
+0x39aa 011543 pincrease 1 
+0x39ab 011544 store 1 ,mem_mesh_adv_scan_channel 
+0x39ac 011545 store 1 ,mem_le_ch_mapped 
+0x39ad 011546 rtnne 40 
+0x39ae 011547 jam 37 ,mem_mesh_adv_scan_channel 
+0x39af 011548 jam 37 ,mem_le_ch_mapped 
+0x39b0 011549 rtn 
+:      011551 mesh_check_ble_rx_packet:
+0x39b1 011552 fetch 1 ,mem_le_rxbuf 
+0x39b2 011553 and pdata ,0x0f ,pdata 
+0x39b3 011554 beq adv_ind ,ali_mesh_match_advertising_packet 
+0x39b4 011555 beq adv_nonconn_ind ,ali_mesh_match_advertising_packet 
+0x39b5 011556 rtn 
+:      011558 ali_mesh_match_advertising_packet:
+0x39b6 011559 ifetcht 1 ,contr 
+0x39b7 011560 sub temp ,adv_packet_min_length ,null 
+0x39b8 011561 rtn positive 
+0x39b9 011562 sub temp ,adv_packet_max_length ,null 
+0x39ba 011563 nrtn positive 
+0x39bb 011564 add temp ,-6 ,rega 
+0x39bc 011565 add contr ,6 ,regb 
+:      011567 ali_mesh_find_adv_ind_packet:
+0x39bd 011568 ifetcht 1 ,regb 
+0x39be 011569 sub temp ,ad_type_min_length ,null 
+0x39bf 011570 rtn positive 
+0x39c0 011571 sub temp ,ad_type_max_length ,null 
+0x39c1 011572 nrtn positive 
+0x39c2 011573 copy temp ,pdata 
+0x39c3 011574 rtn blank 
+0x39c4 011575 bpatchx patch34_2 ,mem_patch34 
+0x39c5 011576 ifetch 1 ,contr 
+0x39c6 011577 beq gap_adtype_manufacturer_specific ,ali_mesh_receive_adtype_manufacturer_specific_tmall_control 
+0x39c7 011578 beq gap_adtype_mesh_message ,ali_mesh_receive_adtype_mesh_message 
+0x39c8 011581 add temp ,1 ,pdata 
+0x39c9 011582 isub rega ,null 
+0x39ca 011583 rtn positive 
+0x39cb 011584 iadd regb ,regb 
+0x39cc 011585 sub temp ,-1 ,pdata 
+0x39cd 011586 iadd rega ,rega 
+0x39ce 011587 copy rega ,pdata 
+0x39cf 011588 rtn blank 
+0x39d0 011589 branch ali_mesh_find_adv_ind_packet 
+:      011591 ali_mesh_receive_adtype_manufacturer_specific_tmall_control:
+0x39d1 011592 jam mesh_message_tmall ,mem_mesh_fast_pair_packet_type 
+0x39d2 011593 branch ali_mesh_receive_adtype_manufacturer_specific 
+:      011596 mesh_le_send_adv:
+0x39d3 011597 fetch 1 ,mem_le_adv_transmit 
+0x39d4 011598 pincrease 1 
+0x39d5 011599 store 1 ,mem_le_adv_transmit 
+0x39d6 011601 bpatchx patch34_3 ,mem_patch34 
+0x39d7 011602 call le_enable 
+0x39d8 011603 arg 39 ,loopcnt 
+0x39d9 011604 arg mem_le_txheader ,contr 
+0x39da 011605 arg mem_le_txheader_mesh_temp ,contw 
+0x39db 011606 call memcpy_fast 
+0x39dc 011607 jam 37 ,mem_le_ch_mapped 
+0x39dd 011608 arg 1800 ,stop_watch 
+0x39de 011609 enable swfine 
+0x39df 011610 disable match 
+:      011612 mesh_le_send_adv_loop:
+0x39e0 011613 call le_init_adv 
+0x39e1 011614 call mesh_le_send_adv_nonconn_ind 
+0x39e2 011615 random pdata 
+0x39e3 011616 arg 0x1ff ,temp 
+0x39e4 011617 iand temp ,pdata 
+0x39e5 011618 add pdata ,100 ,pdata 
+0x39e6 011619 call delay 
+0x39e7 011620 fetch 1 ,mem_le_ch_mapped 
+0x39e8 011621 pincrease 1 
+0x39e9 011622 store 1 ,mem_le_ch_mapped 
+0x39ea 011623 bne 40 ,mesh_le_send_adv_loop 
+0x39eb 011625 arg 39 ,loopcnt 
+0x39ec 011626 arg mem_le_txheader ,contw 
+0x39ed 011627 arg mem_le_txheader_mesh_temp ,contr 
+0x39ee 011628 call memcpy_fast 
+0x39ef 011629 branch le_disable 
+:      011631 mesh_le_send_adv_nonconn_ind:
+0x39f0 011632 arg adv_nonconn_ind ,temp 
+0x39f1 011633 storet 1 ,mem_le_txheader 
+0x39f2 011634 fetcht 1 ,mem_mesh_adv_data_len 
+0x39f3 011635 add temp ,6 ,pdata 
+0x39f4 011636 store 1 ,mem_le_txlen 
+0x39f5 011637 fetch 6 ,mem_le_lap 
+0x39f6 011638 store 6 ,mem_le_txpayload 
+0x39f7 011639 copy temp ,loopcnt 
+0x39f8 011640 arg mem_mesh_adv_data ,contr 
+0x39f9 011641 call memcpy_fast 
+0x39fa 011643 branch le_transmit_norx 
+:      011654 ali_mesh_base_adt_cache:
+0x39fb 011655 bpatchx patch34_4 ,mem_patch34 
+0x39fc 011656 fetcht 2 ,mem_ccm_data_ptr 
+0x39fd 011657 fetch 1 ,mem_ccm_data_len 
+0x39fe 011658 copy temp ,contr 
+0x39ff 011659 arg mem_k4_salt ,rega 
+0x3a00 011660 arg mem_k4_t ,alarm 
+0x3a01 011661 call ali_mesh_encrypt_base_function_aes_cmac 
+0x3a02 011662 call disable_user 
+0x3a03 011663 copy regc ,pdata 
+0x3a04 011664 iadd alarm ,contr 
+0x3a05 011665 fetcht 4 ,mem_k4_t 
+0x3a06 011666 fetch 2 ,mem_mesh_mic_cache_ptr 
+0x3a07 011667 copy pdata ,rega 
+0x3a08 011669 arg transport_mic_cache_space_num ,loopcnt 
+:      011670 ali_mesh_base_adt_cache_loop:
+0x3a09 011671 ifetch 4 ,rega 
+0x3a0a 011672 branch ali_mesh_base_adt_cache_empty_space ,blank 
+0x3a0b 011673 isub temp ,null 
+0x3a0c 011674 rtn zero 
+0x3a0d 011675 increase transport_mic_cache_space_size ,rega 
+0x3a0e 011676 loop ali_mesh_base_adt_cache_loop 
+0x3a0f 011677 fetch 2 ,mem_mesh_mic_cache_ptr 
+0x3a10 011678 copy pdata ,contw 
+0x3a11 011679 add pdata ,transport_mic_cache_space_size ,contr 
+0x3a12 011682 arg transport_mic_cache_total_size ,loopcnt 
+0x3a13 011683 call memcpy_fast 
+0x3a14 011684 istoret 4 ,contw 
+0x3a15 011685 branch enable_user 
+:      011686 ali_mesh_base_adt_cache_empty_space:
+0x3a16 011687 istoret 4 ,rega 
+0x3a17 011688 branch enable_user 
+:      011690 ali_mesh_chip_peripherals_load_data:
+0x3a18 011691 fetch 1 ,mem_mesh_chip_select 
+0x3a19 011692 beq mesh_chip_from_eeprom ,ali_mesh_chip_peripherals_load_data_from_eep 
+:      011693 ali_mesh_chip_peripherals_load_data_from_flash:
+0x3a1a 011694 call ali_mesh_chip_peripherals_load_three_tuple_from_flash 
+0x3a1b 011695 call ali_mesh_chip_peripherals_load_network_key_from_flash 
+0x3a1c 011696 call ali_mesh_chip_peripherals_load_application_key_from_flash 
+0x3a1d 011697 call ali_mesh_chip_peripherals_load_device_key_from_flash 
+0x3a1e 011698 call ali_mesh_chip_peripherals_load_reset_count_from_flash 
+0x3a1f 011699 call ali_mesh_chip_peripherals_load_seq_from_flash 
+0x3a20 011700 branch ali_mesh_chip_peripherals_load_subscription_from_flash 
+:      011702 ali_mesh_chip_peripherals_load_three_tuple_from_flash:
+0x3a21 011703 arg mesh_eep_three_tuple_length ,temp 
+0x3a22 011704 arg mem_mesh_three_tuple_productid ,rega 
+0x3a23 011705 setarg 0x1ffa0 
+0x3a24 011706 branch spid_read_flash 
+:      011707 ali_mesh_chip_peripherals_load_network_key_from_flash:
+0x3a25 011708 arg mesh_eep_network_key_length ,temp 
+0x3a26 011709 arg mem_mesh_network_key ,rega 
+0x3a27 011710 setarg mesh_flash_network_key_addr 
+0x3a28 011711 call spid_read_flash 
+0x3a29 011712 fetch 1 ,mem_mesh_last_iv_index_byte 
+0x3a2a 011713 store 1 ,mem_mesh_iv_index + 3 
+0x3a2b 011714 rtn 
+:      011715 ali_mesh_chip_peripherals_load_application_key_from_flash:
+0x3a2c 011716 arg mesh_eep_application_key_length ,temp 
+0x3a2d 011717 arg mem_mesh_application_key ,rega 
+0x3a2e 011718 setarg mesh_flash_application_key_addr 
+0x3a2f 011719 branch spid_read_flash 
+:      011720 ali_mesh_chip_peripherals_load_device_key_from_flash:
+0x3a30 011721 arg mesh_eep_device_key_length ,temp 
+0x3a31 011722 arg mem_mesh_device_key ,rega 
+0x3a32 011723 setarg mesh_flash_device_key_addr 
+0x3a33 011724 branch spid_read_flash 
+:      011725 ali_mesh_chip_peripherals_load_reset_count_from_flash:
+0x3a34 011726 rtn 
+:      011727 ali_mesh_chip_peripherals_load_seq_from_flash:
+0x3a35 011728 arg mesh_eep_seq_length ,temp 
+0x3a36 011729 arg mem_mesh_send_message_seq ,rega 
+0x3a37 011730 setarg mesh_flash_message_seq_addr 
+0x3a38 011731 branch spid_read_flash 
+:      011732 ali_mesh_chip_peripherals_load_subscription_from_flash:
+0x3a39 011733 fetch 2 ,mem_mesh_core_feature 
+0x3a3a 011734 rtnbit1 mesh_feature_disable_subscription 
+0x3a3b 011735 arg mesh_eep_subscription_total_length ,temp 
+0x3a3c 011736 arg mem_mesh_subscription_eep_temp ,rega 
+0x3a3d 011737 setarg mesh_flash_subscription_addr 
+0x3a3e 011738 call spid_read_flash 
+0x3a3f 011739 call mesh_get_element_info_config 
+0x3a40 011740 arg mem_mesh_subscription_eep_temp ,contr 
+0x3a41 011741 add rega ,element_device_subscription_label ,rega 
+0x3a42 011742 branch ali_mesh_chip_peripherals_load_subscription_loop 
+:      011745 ali_mesh_chip_peripherals_load_data_from_eep:
+0x3a43 011746 call ali_mesh_chip_peripherals_load_three_tuple_from_eep 
+0x3a44 011747 call ali_mesh_chip_peripherals_load_network_key_from_eep 
+0x3a45 011748 call ali_mesh_chip_peripherals_load_application_key_from_eep 
+0x3a46 011749 call ali_mesh_chip_peripherals_load_device_key_from_eep 
+0x3a47 011750 call ali_mesh_chip_peripherals_load_reset_count_from_eep 
+0x3a48 011751 call ali_mesh_chip_peripherals_load_seq_from_eep 
+0x3a49 011752 branch ali_mesh_chip_peripherals_load_subscription_from_eep 
+:      011754 ali_mesh_chip_peripherals_load_three_tuple_from_eep:
+0x3a4a 011755 arg mesh_eep_three_tuple_length ,temp 
+0x3a4b 011756 arg mem_mesh_three_tuple_productid ,rega 
+0x3a4c 011757 arg mesh_eep_three_tuple_offset ,regb 
+0x3a4d 011758 branch iicd_read_eep_data 
+:      011760 ali_mesh_chip_peripherals_load_network_key_from_eep:
+0x3a4e 011761 arg mesh_eep_network_key_length ,temp 
+0x3a4f 011762 arg mem_mesh_network_key ,rega 
+0x3a50 011763 arg mesh_eep_network_key_offset ,regb 
+0x3a51 011764 call iicd_read_eep_data 
+0x3a52 011765 fetch 1 ,mem_mesh_last_iv_index_byte 
+0x3a53 011766 store 1 ,mem_mesh_iv_index + 3 
+0x3a54 011767 rtn 
+:      011769 ali_mesh_chip_peripherals_load_application_key_from_eep:
+0x3a55 011770 arg mesh_eep_application_key_length ,temp 
+0x3a56 011771 arg mem_mesh_application_key ,rega 
+0x3a57 011772 arg mesh_eep_application_key_offset ,regb 
+0x3a58 011773 branch iicd_read_eep_data 
+:      011775 ali_mesh_chip_peripherals_load_device_key_from_eep:
+0x3a59 011776 arg mesh_eep_device_key_length ,temp 
+0x3a5a 011777 arg mem_mesh_device_key ,rega 
+0x3a5b 011778 arg mesh_eep_device_key_offset ,regb 
+0x3a5c 011779 branch iicd_read_eep_data 
+:      011781 ali_mesh_chip_peripherals_load_reset_count_from_eep:
+0x3a5d 011782 rtn 
+:      011784 ali_mesh_chip_peripherals_load_seq_from_eep:
+0x3a5e 011785 arg mesh_eep_seq_length ,temp 
+0x3a5f 011786 arg mem_mesh_send_message_seq ,rega 
+0x3a60 011787 arg mesh_eep_seq_offset ,regb 
+0x3a61 011788 branch iicd_read_eep_data 
+:      011790 ali_mesh_chip_peripherals_load_subscription_from_eep:
+0x3a62 011791 fetch 2 ,mem_mesh_core_feature 
+0x3a63 011792 rtnbit1 mesh_feature_disable_subscription 
+0x3a64 011793 arg mesh_eep_subscription_total_length ,temp 
+0x3a65 011794 arg mem_mesh_subscription_eep_temp ,rega 
+0x3a66 011795 arg mesh_eep_subscription_offset ,regb 
+0x3a67 011796 call iicd_read_eep_data 
+0x3a68 011797 call mesh_get_element_info_config 
+0x3a69 011798 arg mem_mesh_subscription_eep_temp ,contr 
+0x3a6a 011799 add rega ,element_device_subscription_label ,rega 
+:      011800 ali_mesh_chip_peripherals_load_subscription_loop:
+0x3a6b 011801 copy rega ,contw 
+0x3a6c 011802 call memcpy16 
+0x3a6d 011803 copy regb ,pdata 
+0x3a6e 011804 iadd rega ,rega 
+0x3a6f 011805 loop ali_mesh_chip_peripherals_load_subscription_loop 
+0x3a70 011806 rtn 
+:      011808 mesh_receive_config_appkey_add_cb:
+0x3a71 011809 fetch 1 ,mem_mesh_chip_select 
+0x3a72 011810 beq mesh_chip_from_eeprom ,mesh_receive_config_appkey_add_eeprom_cb 
+0x3a73 011811 beq mesh_chip_from_flash ,mesh_receive_config_appkey_add_flash_cb 
+:      011812 mesh_receive_config_appkey_add_flash_cb:
+0x3a74 011813 call ali_mesh_chip_peripherals_save_network_key_from_flash 
+0x3a75 011814 call ali_mesh_chip_peripherals_save_application_key_from_flash 
+0x3a76 011815 branch ali_mesh_chip_peripherals_save_device_key_from_flash 
+:      011816 ali_mesh_chip_peripherals_save_network_key_from_flash:
+0x3a77 011817 arg mesh_eep_network_key_length ,temp 
+0x3a78 011818 arg mem_mesh_network_key ,rega 
+0x3a79 011819 setarg mesh_flash_network_key_addr 
+0x3a7a 011820 branch spid_write_flash_data 
+:      011821 ali_mesh_chip_peripherals_save_application_key_from_flash:
+0x3a7b 011822 arg mesh_eep_application_key_length ,temp 
+0x3a7c 011823 arg mem_mesh_application_key ,rega 
+0x3a7d 011824 setarg mesh_flash_application_key_addr 
+0x3a7e 011825 branch spid_write_flash_data 
+:      011826 ali_mesh_chip_peripherals_save_device_key_from_flash:
+0x3a7f 011827 arg mesh_eep_device_key_length ,temp 
+0x3a80 011828 arg mem_mesh_device_key ,rega 
+0x3a81 011829 setarg mesh_flash_device_key_addr 
+0x3a82 011830 branch spid_write_flash_data 
+:      011832 mesh_receive_config_appkey_add_eeprom_cb:
+0x3a83 011833 call ali_mesh_chip_peripherals_save_network_key_from_eep 
+0x3a84 011834 call ali_mesh_chip_peripherals_save_application_key_from_eep 
+0x3a85 011835 branch ali_mesh_chip_peripherals_save_device_key_from_eep 
+:      011837 ali_mesh_chip_peripherals_save_network_key_from_eep:
+0x3a86 011838 arg mesh_eep_network_key_length ,temp 
+0x3a87 011839 arg mem_mesh_network_key ,rega 
+0x3a88 011840 arg mesh_eep_network_key_offset ,regb 
+0x3a89 011841 branch iicd_write_protect_eep_data 
+:      011843 ali_mesh_chip_peripherals_save_application_key_from_eep:
+0x3a8a 011844 arg mesh_eep_application_key_length ,temp 
+0x3a8b 011845 arg mem_mesh_application_key ,rega 
+0x3a8c 011846 arg mesh_eep_application_key_offset ,regb 
+0x3a8d 011847 branch iicd_write_protect_eep_data 
+:      011849 ali_mesh_chip_peripherals_save_device_key_from_eep:
+0x3a8e 011850 arg mesh_eep_device_key_length ,temp 
+0x3a8f 011851 arg mem_mesh_device_key ,rega 
+0x3a90 011852 arg mesh_eep_device_key_offset ,regb 
+0x3a91 011853 branch iicd_write_protect_eep_data 
+:      011855 mesh_store_new_seq_data:
+0x3a92 011856 fetch 3 ,mem_mesh_send_message_seq 
+0x3a93 011857 fetcht 3 ,mem_mesh_send_message_seq_temp 
+0x3a94 011858 isub temp ,null 
+0x3a95 011859 nrtn positive 
+0x3a96 011860 add pdata ,128 ,pdata 
+0x3a97 011861 store 3 ,mem_mesh_send_message_seq_temp 
+0x3a98 011862 fetch 1 ,mem_mesh_chip_select 
+0x3a99 011863 beq 1 ,ali_mesh_chip_peripherals_save_seq_from_eep 
+:      011864 ali_mesh_chip_peripherals_save_seq_from_flash:
+0x3a9a 011865 arg mesh_eep_seq_length ,temp 
+0x3a9b 011866 arg mem_mesh_send_message_seq_temp ,rega 
+0x3a9c 011867 setarg mesh_flash_message_seq_addr 
+0x3a9d 011868 branch spid_write_flash_data 
+:      011869 ali_mesh_chip_peripherals_save_seq_from_eep:
+0x3a9e 011870 arg mesh_eep_seq_length ,temp 
+0x3a9f 011871 arg mem_mesh_send_message_seq_temp ,rega 
+0x3aa0 011872 arg mesh_eep_seq_offset ,regb 
+0x3aa1 011873 branch iicd_write_protect_eep_data 
+:      011875 mesh_store_new_subscriptuion_list_data:
+0x3aa2 011876 call ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep 
+0x3aa3 011877 fetch 1 ,mem_mesh_chip_select 
+0x3aa4 011878 beq 2 ,mesh_store_new_subscriptuion_list_data_from_flash 
+0x3aa5 011879 arg mesh_eep_subscription_total_length ,temp 
+0x3aa6 011880 arg mem_mesh_subscription_eep_temp ,rega 
+0x3aa7 011881 arg mesh_eep_subscription_offset ,regb 
+0x3aa8 011882 branch iicd_write_protect_eep_data 
+:      011883 mesh_store_new_subscriptuion_list_data_from_flash:
+0x3aa9 011884 arg mesh_eep_subscription_total_length ,temp 
+0x3aaa 011885 arg mem_mesh_subscription_eep_temp ,rega 
+0x3aab 011886 setarg mesh_flash_subscription_addr 
+0x3aac 011887 branch spid_write_flash_data 
+:      011889 ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep:
+0x3aad 011890 call mesh_get_element_info_config 
+0x3aae 011891 arg mem_mesh_subscription_eep_temp ,contw 
+0x3aaf 011892 add rega ,element_device_subscription_label ,rega 
+:      011893 ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep_loop:
+0x3ab0 011894 copy rega ,contr 
+0x3ab1 011895 call memcpy16 
+0x3ab2 011896 copy regb ,pdata 
+0x3ab3 011897 iadd rega ,rega 
+0x3ab4 011898 loop ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep_loop 
+0x3ab5 011899 rtn 
+:      011901 mesh_clear_pairing_key:
+0x3ab6 011902 fetch 1 ,mem_mesh_chip_select 
+0x3ab7 011903 beq 1 ,ali_mesh_chip_clear_pairing_key_from_eeprom 
+:      011904 ali_mesh_chip_clear_pairing_key_from_flash:
+0x3ab8 011905 setarg 0x1e000 
+0x3ab9 011906 store 3 ,mem_spi_write_addr 
+0x3aba 011907 branch spid_flash_erase_sector + 2 
+:      011908 ali_mesh_chip_clear_pairing_key_from_eeprom:
+0x3abb 011909 rtn 
+:      011911 mesh_vendor_timming_chage_cb:
+0x3abc 011912 fetch 1 ,mem_mesh_chip_select 
+0x3abd 011913 rtnne 2 
+0x3abe 011914 setarg 0x1d000 
+0x3abf 011915 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+0x3ac0 011916 arg mesh_x_timers ,temp 
+0x3ac1 011917 mul32 temp ,18 ,temp 
+0x3ac2 011918 branch spid_write_flash_data 
+:      011920 ali_mesh_vendor_timer_message_read:
+0x3ac3 011921 fetch 1 ,mem_mesh_chip_select 
+0x3ac4 011922 rtnne 2 
+0x3ac5 011923 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+0x3ac6 011924 arg mesh_x_timers ,temp 
+0x3ac7 011925 mul32 temp ,18 ,temp 
+0x3ac8 011926 setarg 0x1d000 
+0x3ac9 011927 branch spid_read_flash 
+:      011933 ali_mesh_control_ble_adv_process:
+0x3aca 011934 call ali_mesh_ble_adv 
+0x3acb 011935 branch ali_mesh_control_ble_adv_tmall_packet 
+:      011939 ali_mesh_control_ble_adv_timer_process:
+0x3acc 011940 call ali_mesh_advertising_unprovisioned_timer_interval_timer 
+0x3acd 011941 branch ali_mesh_advertising_unprovisioned_timer 
+:      011944 ali_mesh_control_ble_advertising_on_advertising:
+0x3ace 011945 jam device_beacon_on ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+0x3acf 011946 rtn 
+:      011949 ali_mesh_control_ble_advertising_off_advertising:
+0x3ad0 011950 jam device_beacon_off ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+0x3ad1 011951 rtn 
+:      011954 ali_mesh_control_ble_adv_tmall_packet:
+0x3ad2 011955 arg ali_mesh_control_ble_adv_tmall_packet_send_package ,regb 
+0x3ad3 011956 arg mesh_adv_tmall_message_interval ,rega 
+0x3ad4 011957 arg mesh_ble_adv_tmall ,queue 
+0x3ad5 011958 branch ali_mesh_chip_timer_check_with_random_timer 
+:      011964 ali_mesh_control_ble_adv_tmall_packet_send_package:
+0x3ad6 011965 fetch 1 ,mem_mesh_provisioned_flag 
+0x3ad7 011966 beq unprovisioned_beacon_status ,ali_mesh_control_ble_advertising_send_device_beacon_packet 
+0x3ad8 011967 beq silence_beacon_status ,ali_mesh_control_ble_advertising_send_device_silence_beacon_packet 
+0x3ad9 011968 beq pairing_status ,ali_mesh_control_ble_advertising_send_pairing_packet 
+0x3ada 011969 beq paired_status ,ali_mesh_control_ble_advertising_send_paired_packet 
+0x3adb 011970 branch ali_mesh_control_ble_advertising_send_paired_packet 
+:      011972 ali_mesh_control_ble_advertising_send_device_silence_beacon_packet:
+0x3adc 011973 jam 0 ,mem_le_adv_enable 
+0x3add 011974 branch ali_mesh_control_ble_advertising_off_advertising 
+:      011976 ali_mesh_control_ble_advertising_send_paired_packet:
+0x3ade 011977 call ali_mesh_advertising_bearer_layer_init_queue_param 
+0x3adf 011978 arg mem_mesh_queue_ele_temp ,rega 
+0x3ae0 011979 call queue_get_new_ele 
+0x3ae1 011980 nrtn user 
+0x3ae2 011981 fetch 1 ,mem_mesh_upper_tran_layer_packet_type 
+0x3ae3 011982 bbit1 bit_uuper_tran_proxy_message ,ali_mesh_control_ble_advertising_send_paired_packet_end_duration_proxy 
+0x3ae4 011983 fetch 1 ,mem_mesh_queue_ele_duration 
+0x3ae5 011984 pincrease -1 
+0x3ae6 011985 istore 1 ,regb 
+0x3ae7 011986 and pdata ,0x7f ,pdata 
+0x3ae8 011987 call ali_mesh_control_ble_advertising_send_paired_packet_end_duration ,blank 
+0x3ae9 011988 fetch 1 ,mem_mesh_upper_tran_layer_packet_type 
+0x3aea 011989 rtnbit0 bit_upper_tran_tmall_message 
+0x3aeb 011990 arg mem_mesh_adv_data_len ,contw 
+0x3aec 011991 arg mem_mesh_queue_ele_len ,contr 
+0x3aed 011992 call memcpy32 
+0x3aee 011993 branch mesh_le_send_adv 
+:      011995 ali_mesh_control_ble_advertising_send_paired_packet_end_duration_proxy:
+0x3aef 011996 arg mem_mesh_queue_ele_duration ,rega 
+0x3af0 011997 call queue_pop 
+0x3af1 011998 call queue_empty 
+0x3af2 011999 nrtn blank 
+0x3af3 012001 call ali_mesh_send_paired_packet_init_advertising 
+0x3af4 012002 branch ali_mesh_control_ble_advertising_off_advertising 
+:      012005 ali_mesh_control_ble_advertising_send_paired_packet_end_duration:
+0x3af5 012006 arg mem_mesh_queue_ele_duration ,rega 
+0x3af6 012007 call queue_pop 
+0x3af7 012008 call queue_empty 
+0x3af8 012009 nrtn blank 
+0x3af9 012011 jam adv_pairing_mesh_message_interval ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+0x3afa 012012 branch ali_mesh_control_ble_advertising_off_advertising 
+:      012014 ali_mesh_send_paired_packet_init_advertising:
+0x3afb 012015 jam null_packet_advertising ,mem_mesh_upper_tran_layer_packet_advertising 
+0x3afc 012016 rtn 
+:      012019 ali_mesh_control_ble_advertising_send_device_beacon_packet:
+0x3afd 012020 call ali_mesh_config_device_uuid_by_three_tuple 
+0x3afe 012021 call ali_mesh_send_unprovisioned_beacons_tmall 
+0x3aff 012022 call ali_mesh_control_ble_advertising_device_beacon_check_duration 
+0x3b00 012023 nrtn zero 
+0x3b01 012024 fetch 1 ,mem_mesh_provisioned_flag 
+0x3b02 012025 beq silence_beacon_status ,ali_mesh_end_advertising_silence_device_beacon_packet 
+0x3b03 012026 beq unprovisioned_beacon_status ,ali_mesh_end_advertising_unprovisioned_device_beacon_packet 
+0x3b04 012027 rtn 
+:      012032 ali_mesh_control_ble_advertising_device_beacon_check_duration:
+0x3b05 012033 fetch 1 ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+0x3b06 012034 add pdata ,-1 ,pdata 
+0x3b07 012035 store 1 ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+0x3b08 012036 rtn 
+:      012039 ali_mesh_end_advertising_silence_device_beacon_packet:
+0x3b09 012040 jam adv_silence_device_beacon_interval ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+0x3b0a 012041 branch ali_mesh_control_ble_advertising_off_advertising 
+:      012044 ali_mesh_end_advertising_unprovisioned_device_beacon_packet:
+0x3b0b 012045 jam adv_unprovisioned_device_beacon_duration ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+0x3b0c 012046 branch ali_mesh_control_ble_advertising_off_advertising 
+:      012049 ali_mesh_control_ble_advertising_send_pairing_packet:
+0x3b0d 012050 branch mesh_le_send_adv 
+:      012052 ali_mesh_chip_timer_check_with_random_timer:
+0x3b0e 012053 fetch 1 ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+0x3b0f 012054 rtnne device_beacon_on 
+:      012055 ali_mesh_chip_timer_check_with_random_timer_continue:
+0x3b10 012056 random pdata 
+0x3b11 012057 and pdata ,0x07 ,pdata 
+0x3b12 012058 iadd rega ,rega 
+:      012062 ali_mesh_chip_timer_check:
+0x3b13 012063 call timer_check 
+0x3b14 012064 nrtn blank 
+0x3b15 012065 copy rega ,pdata 
+0x3b16 012066 call timer_init 
+0x3b17 012067 copy regb ,pdata 
+0x3b18 012068 branch callback_func 
+:      012072 ali_mesh_advertising_unprovisioned_timer:
+0x3b19 012073 arg mem_mesh_advertising_unprovisioned_device_beacon_timer ,regc 
+0x3b1a 012074 arg ali_mesh_advertising_unprovisioned_timeout ,regb 
+0x3b1b 012075 branch timer_single_step_2b 
+:      012078 ali_mesh_advertising_unprovisioned_timeout:
+0x3b1c 012079 fetch 1 ,mem_mesh_provisioned_flag 
+0x3b1d 012080 rtnne unprovisioned_beacon_status 
+0x3b1e 012081 fetch 1 ,mem_mesh_uuid_featureflag 
+0x3b1f 012082 set1 bit_silence_adv_flag ,pdata 
+0x3b20 012083 store 1 ,mem_mesh_uuid_featureflag 
+0x3b21 012084 jam silence_beacon_status ,mem_mesh_provisioned_flag 
+0x3b22 012085 branch ali_mesh_send_silence_device_beacon_init_advertising 
+:      012090 ali_mesh_advertising_unprovisioned_timer_interval_timer:
+0x3b23 012091 arg mem_mesh_advertising_unprovisioned_device_beacon_interval ,regc 
+0x3b24 012092 arg ali_mesh_advertising_unprovisioned_timer_interval_timeout ,regb 
+0x3b25 012093 branch timer_single_step 
+:      012098 ali_mesh_advertising_unprovisioned_timer_interval_timeout:
+0x3b26 012099 fetch 1 ,mem_mesh_provisioned_flag 
+0x3b27 012101 beq unprovisioned_beacon_status ,ali_mesh_send_unprovisioned_device_beacon_init_advertising 
+0x3b28 012102 beq paired_status ,ali_mesh_send_paired_packet_init_advertising 
+0x3b29 012103 rtn 
+:      012105 ali_mesh_stop_send_indication_packet:
+0x3b2a 012106 call ali_mesh_advertising_bearer_layer_queue_init 
+0x3b2b 012107 call ali_mesh_upper_transport_layer_queue_pop 
+0x3b2c 012108 jam 0 ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+0x3b2d 012109 call ali_mesh_control_ble_advertising_off_advertising 
+0x3b2e 012110 branch ali_mesh_send_paired_packet_init_advertising 
+:      012113 ali_mesh_send_unprovisioned_device_beacon_init_advertising:
+0x3b2f 012114 jam adv_unprovisioned_device_beacon_duration ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+0x3b30 012115 branch ali_mesh_control_ble_advertising_on_advertising 
+:      012118 ali_mesh_send_silence_device_beacon_init_advertising:
+0x3b31 012119 jam adv_silence_device_beacon_duration ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+0x3b32 012120 branch ali_mesh_control_ble_advertising_on_advertising 
+:      012122 ali_mesh_network_layer_control_relay_packet:
+0x3b33 012123 arg ali_mesh_network_layer_control_send_relay_packet ,regb 
+0x3b34 012124 arg mesh_adv_relay_message_interval ,rega 
+0x3b35 012125 arg mesh_ble_relay_timer ,queue 
+0x3b36 012126 branch ali_mesh_chip_timer_check_with_random_timer_continue 
+:      012128 ali_mesh_network_layer_control_send_relay_packet:
+0x3b37 012129 fetch 1 ,mem_mesh_upper_tran_layer_packet_advertising 
+0x3b38 012130 nrtn blank 
+0x3b39 012131 call ali_mesh_network_layer_init_queue_param 
+0x3b3a 012132 arg mem_mesh_queue_ele_temp ,rega 
+0x3b3b 012133 call queue_get_new_ele 
+0x3b3c 012134 nrtn user 
+0x3b3d 012135 fetch 1 ,mem_mesh_queue_ele_duration 
+0x3b3e 012136 pincrease -1 
+0x3b3f 012137 istore 1 ,regb 
+0x3b40 012138 call queue_pop ,blank 
+0x3b41 012139 arg mem_mesh_adv_data_len ,contw 
+0x3b42 012140 arg mem_mesh_queue_ele_len ,contr 
+0x3b43 012141 call memcpy32 
+0x3b44 012142 branch mesh_le_send_adv 
+:      012149 ali_mesh_encrypt_calc_random_data:
+0x3b45 012150 call ali_mesh_encrypt_calc_random_data_calc_confirmationkey 
+0x3b46 012151 call ali_mesh_encrypt_calc_random_data_calc_authvalueprov 
+0x3b47 012152 call ali_mesh_encrypt_calc_random_data_calc_authvaluedevice 
+0x3b48 012153 call ali_mesh_encrypt_calc_random_data_calc_confirmationcloud 
+0x3b49 012154 call ali_mesh_encrypt_calc_random_data_calc_confirmationdevice 
+0x3b4a 012155 branch ali_mesh_encrypt_calc_random_data_calc_devicekey 
+:      012160 ali_mesh_encrypt_calc_random_data_calc_confirmationkey:
+0x3b4b 012161 call ali_mesh_encrypt_load_randomab_to_sha256 
+0x3b4c 012162 arg mem_mesh_sha256_confirmationkey_ascii ,contr 
+0x3b4d 012163 arg 0xf ,loopcnt 
+0x3b4e 012164 call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii 
+0x3b4f 012165 call ali_mesh_encrypt_base_function_sha256_calc 
+0x3b50 012166 arg memresult ,contr 
+0x3b51 012167 arg mem_mesh_confirmationkey ,contw 
+0x3b52 012168 branch memcpy16 
+:      012173 ali_mesh_encrypt_calc_random_data_calc_authvalueprov:
+0x3b53 012174 call ali_mesh_encrypt_load_three_tuple_to_sha256 
+0x3b54 012175 call ali_mesh_encrypt_load_randomba_to_sha256 
+0x3b55 012176 call ali_mesh_encrypt_base_function_sha256_calc 
+0x3b56 012177 arg memresult ,contr 
+0x3b57 012178 arg mem_mesh_authvalueprov ,contw 
+0x3b58 012179 branch memcpy16 
+:      012183 ali_mesh_encrypt_calc_random_data_calc_authvaluedevice:
+0x3b59 012184 call ali_mesh_encrypt_load_three_tuple_to_sha256 
+0x3b5a 012185 call ali_mesh_encrypt_load_randomab_to_sha256 
+0x3b5b 012186 call ali_mesh_encrypt_base_function_sha256_calc 
+0x3b5c 012187 arg memresult ,contr 
+0x3b5d 012188 arg mem_mesh_authvaluedevice ,contw 
+0x3b5e 012189 branch memcpy16 
+:      012194 ali_mesh_encrypt_calc_random_data_calc_confirmationcloud:
+0x3b5f 012195 fetch 8 ,mem_mesh_provisioning_random_a 
+0x3b60 012196 store 8 ,mem_mesh_confirmationcloud_randoma 
+0x3b61 012197 fetch 8 ,mem_mesh_provisioning_random_b 
+0x3b62 012198 store 8 ,mem_mesh_confirmationcloud_randomb 
+0x3b63 012200 arg mem_mesh_calc_confirmationcloud_data ,contr 
+0x3b64 012201 arg mem_mesh_confirmationkey ,rega 
+0x3b65 012202 arg mem_mesh_confirmationcloud ,alarm 
+0x3b66 012203 branch ali_mesh_encrypt_base_function_aes_cmac_32byte 
+:      012209 ali_mesh_encrypt_calc_random_data_calc_confirmationdevice:
+0x3b67 012210 arg mem_mesh_calc_confirmationdevice_data ,contr 
+0x3b68 012211 arg mem_mesh_confirmationkey ,rega 
+0x3b69 012212 arg mem_mesh_confirmationdevice ,alarm 
+0x3b6a 012213 branch ali_mesh_encrypt_base_function_aes_cmac_32byte 
+:      012218 ali_mesh_encrypt_calc_random_data_calc_devicekey:
+0x3b6b 012220 arg mem_mesh_confirmationcloud ,contr 
+0x3b6c 012221 arg 0x10 ,loopcnt 
+0x3b6d 012222 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii 
+0x3b6e 012223 arg mem_mesh_sha256_devicekey_ascii ,contr 
+0x3b6f 012224 arg 9 ,loopcnt 
+0x3b70 012225 call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii 
+0x3b71 012226 call ali_mesh_encrypt_base_function_sha256_calc 
+0x3b72 012227 arg memresult ,contr 
+0x3b73 012228 arg mem_mesh_device_key ,contw 
+0x3b74 012229 branch memcpy16 
+:      012232 ali_mesh_encrypt_load_randomba_to_sha256:
+0x3b75 012233 call ali_mesh_encrypt_load_randomb_to_sha256 
+:      012234 ali_mesh_encrypt_load_randoma_to_sha256:
+0x3b76 012235 arg mem_mesh_provisioning_random_a ,contr 
+0x3b77 012236 branch ali_mesh_encrypt_base_function_sha256_load_data_64bit 
+:      012238 ali_mesh_encrypt_load_randomab_to_sha256:
+0x3b78 012239 call ali_mesh_encrypt_load_randoma_to_sha256 
+:      012240 ali_mesh_encrypt_load_randomb_to_sha256:
+0x3b79 012241 arg mem_mesh_provisioning_random_b ,contr 
+0x3b7a 012242 branch ali_mesh_encrypt_base_function_sha256_load_data_64bit 
+:      012245 ali_mesh_encrypt_load_three_tuple_to_sha256:
+0x3b7b 012246 arg mem_mesh_three_tuple_productid ,contr 
+0x3b7c 012247 arg 4 ,loopcnt 
+0x3b7d 012248 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma 
+0x3b7e 012249 arg mem_mesh_three_tuple_mac ,contr 
+0x3b7f 012250 arg 6 ,loopcnt 
+0x3b80 012251 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma 
+0x3b81 012252 arg mem_mesh_three_tuple_secret ,contr 
+0x3b82 012253 arg 0x10 ,loopcnt 
+0x3b83 012254 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii 
+0x3b84 012255 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+0x3b85 012256 branch ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma + 2 
+:      012261 ali_mesh_encrypt_calc_provisioning_data:
+0x3b86 012262 call ali_mesh_encrypt_calc_provisioning_data_calc_sessionkey 
+:      012264 ali_mesh_encrypt_calc_provisioning_data_xor_prov_data:
+0x3b87 012265 arg mem_mesh_encrypt_provisioning_data ,rega 
+0x3b88 012266 arg memresult ,regb 
+0x3b89 012267 arg 0xb ,loopcnt 
+:      012268 ali_mesh_encrypt_calc_provisioning_data_xor_prov_data_loop:
+0x3b8a 012269 ifetch 2 ,rega 
+0x3b8b 012270 ifetcht 2 ,regb 
+0x3b8c 012271 ixor temp ,pdata 
+0x3b8d 012272 istore 2 ,rega 
+0x3b8e 012273 increase 2 ,rega 
+0x3b8f 012274 increase 2 ,regb 
+0x3b90 012275 loop ali_mesh_encrypt_calc_provisioning_data_xor_prov_data_loop 
+0x3b91 012276 rtn 
+:      012282 ali_mesh_encrypt_calc_provisioning_data_calc_sessionkey:
+0x3b92 012283 arg mem_mesh_confirmationcloud ,contr 
+0x3b93 012284 arg 0x10 ,loopcnt 
+0x3b94 012285 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii 
+0x3b95 012286 arg mem_mesh_sha256_sessionkey_ascii ,contr 
+0x3b96 012287 arg 0xa ,loopcnt 
+0x3b97 012288 call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii 
+0x3b98 012289 branch ali_mesh_encrypt_base_function_sha256_calc 
+:      012293 ali_mesh_encrypt_calc_network_key_by_k2:
+0x3b99 012294 arg mem_mesh_network_key ,contr 
+0x3b9a 012295 arg mem_k2_n ,contw 
+0x3b9b 012296 call memcpy16 
+:      012300 ali_mesh_encrypt_base_function_k2:
+0x3b9c 012302 arg mem_k2_n ,contr 
+0x3b9d 012303 arg mem_k2_salt ,rega 
+0x3b9e 012304 arg mem_k2_t ,alarm 
+0x3b9f 012305 call ali_mesh_encrypt_base_function_aes_cmac_16byte 
+0x3ba0 012307 arg mem_k2_t1 ,alarm 
+0x3ba1 012308 arg 0x01 ,regb 
+0x3ba2 012309 setarg 0 
+0x3ba3 012310 call ali_mesh_encrypt_base_function_k2_aes_cmac_t 
+0x3ba4 012311 fetch 1 ,mem_k2_t1 + 15 
+0x3ba5 012312 and pdata ,0x7f ,pdata 
+0x3ba6 012313 store 1 ,mem_k2_nid 
+0x3ba7 012315 arg mem_k2_t2 ,alarm 
+0x3ba8 012316 arg 0x02 ,regb 
+0x3ba9 012317 setarg 0x10 
+0x3baa 012318 arg mem_k2_t1 ,rega 
+0x3bab 012319 call ali_mesh_encrypt_base_function_k2_aes_cmac_t 
+0x3bac 012321 arg mem_k2_t3 ,alarm 
+0x3bad 012322 arg 0x03 ,regb 
+0x3bae 012323 setarg 0x10 
+0x3baf 012324 arg mem_k2_t2 ,rega 
+0x3bb0 012325 branch ali_mesh_encrypt_base_function_k2_aes_cmac_t 
+:      012327 ali_mesh_encrypt_base_function_k4:
+0x3bb1 012329 arg mem_mesh_application_key ,contr 
+0x3bb2 012330 arg mem_k4_salt ,rega 
+0x3bb3 012331 arg mem_k4_t ,alarm 
+0x3bb4 012332 call ali_mesh_encrypt_base_function_aes_cmac_16byte 
+0x3bb5 012333 arg mem_k4_id6_01 ,contr 
+0x3bb6 012334 arg mem_k4_t ,rega 
+0x3bb7 012335 arg mem_k4_k4n ,alarm 
+0x3bb8 012336 setarg 4 
+0x3bb9 012337 call ali_mesh_encrypt_base_function_aes_cmac 
+0x3bba 012338 fetch 1 ,mem_k4_k4n + 15 
+0x3bbb 012339 and pdata ,0x3f ,pdata 
+0x3bbc 012340 set1 transport_head_bit_akf ,pdata 
+0x3bbd 012341 store 1 ,mem_mesh_transport_aid 
+0x3bbe 012342 rtn 
+:      012344 ali_mesh_encrypt_base_function_k3:
+0x3bbf 012346 arg mem_mesh_network_key ,contr 
+0x3bc0 012347 arg mem_k3_salt ,rega 
+0x3bc1 012348 arg mem_k3_t ,alarm 
+0x3bc2 012349 call ali_mesh_encrypt_base_function_aes_cmac_16byte 
+0x3bc3 012350 arg mem_k3_id64_01 ,contr 
+0x3bc4 012351 arg mem_k3_t ,rega 
+0x3bc5 012352 arg mem_k3_k4n ,alarm 
+0x3bc6 012353 setarg 5 
+0x3bc7 012354 call ali_mesh_encrypt_base_function_aes_cmac 
+0x3bc8 012358 fetch 2 ,mem_ui_state_map 
+0x3bc9 012359 rtnbit1 ui_state_ble_connected 
+0x3bca 012360 jam 1 ,mem_le_adv_enable 
+0x3bcb 012361 rtn 
+:      012365 ali_mesh_encrypt_obfuscation_deceypt_send_message:
+0x3bcc 012366 arg mem_mesh_send_upper_layer_ctl_and_ttl ,rega 
+0x3bcd 012367 fetch 7 ,mem_mesh_send_upper_layer_dst 
+0x3bce 012368 branch ali_mesh_encrypt_obfuscation_deceypt 
+:      012369 ali_mesh_encrypt_obfuscation_deceypt_recevie_message:
+0x3bcf 012370 arg mem_mesh_message_ttl ,rega 
+0x3bd0 012371 fetch 7 ,mem_mesh_message_dst 
+:      012372 ali_mesh_encrypt_obfuscation_deceypt:
+0x3bd1 012373 store 7 ,mem_mesh_privacy_plaintext_privacy_random 
+0x3bd2 012374 setarg 0 
+0x3bd3 012375 store 5 ,mem_mesh_privacy_plaintext_zero_string 
+0x3bd4 012376 call ali_mesh_encrypt_generate_pecb 
+0x3bd5 012377 fetch 6 ,mem_mesh_pecb 
+0x3bd6 012378 ifetcht 6 ,rega 
+0x3bd7 012379 ixor temp ,pdata 
+0x3bd8 012380 istore 6 ,rega 
+0x3bd9 012381 rtn 
+:      012383 ali_mesh_encrypt_generate_pecb:
+:      012384 ali_mesh_encrypt_generate_privacy_random:
+0x3bda 012385 fetch 4 ,mem_mesh_iv_index 
+0x3bdb 012386 store 4 ,mem_mesh_privacy_plaintext_iv_index 
+:      012388 ali_mesh_encrypt_base_function_generate_pecb:
+0x3bdc 012389 arg mem_k2_privacykey ,contr 
+0x3bdd 012390 call load_key 
+0x3bde 012391 arg mem_mesh_privacy_plaintext ,contr 
+0x3bdf 012392 call load_data128 
+0x3be0 012393 call do_aes_ocb 
+0x3be1 012394 arg mem_mesh_pecb ,contw 
+0x3be2 012395 branch store_aes_result 
+:      012402 ali_mesh_encrypt_base_function_sha256_load_data_64bit:
+0x3be3 012403 arg 8 ,loopcnt 
+:      012408 ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii:
+0x3be4 012409 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+0x3be5 012410 call ali_mesh_encrypt_base_function_hex2ascii 
+0x3be6 012411 branch ali_mesh_encrypt_base_function_sha256_store_dataptr 
+:      012412 ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii:
+0x3be7 012413 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+0x3be8 012414 call memcpy 
+0x3be9 012415 branch ali_mesh_encrypt_base_function_sha256_store_dataptr 
+:      012416 ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma:
+0x3bea 012417 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+0x3beb 012418 call ali_mesh_encrypt_base_function_hex2ascii 
+0x3bec 012419 setarg comma 
+0x3bed 012420 istore 1 ,contw 
+:      012421 ali_mesh_encrypt_base_function_sha256_store_dataptr:
+0x3bee 012422 copy contw ,pdata 
+0x3bef 012423 store 2 ,mem_mesh_sha256_data_end_addr 
+0x3bf0 012424 rtn 
+:      012425 ali_mesh_encrypt_base_function_sha256_check_first_load_data:
+0x3bf1 012426 copy contr ,temp 
+0x3bf2 012427 copy loopcnt ,rega 
+0x3bf3 012428 fetch 2 ,mem_mesh_sha256_data_end_addr 
+0x3bf4 012429 copy pdata ,contw 
+0x3bf5 012430 fetch 1 ,mem_mesh_sha256_load_first_data_flag 
+0x3bf6 012431 call ali_mesh_encrypt_base_function_sha256_first_load_data ,blank 
+0x3bf7 012432 copy temp ,contr 
+0x3bf8 012433 copy rega ,loopcnt 
+0x3bf9 012434 rtn 
+:      012435 ali_mesh_encrypt_base_function_sha256_first_load_data:
+0x3bfa 012436 jam 1 ,mem_mesh_sha256_load_first_data_flag 
+0x3bfb 012437 call ali_mesh_encrypt_base_function_sha256_clear_data_chunk 
+0x3bfc 012438 arg mem_mesh_sha256_chunk_start ,contw 
+0x3bfd 012439 rtn 
+:      012441 ali_mesh_encrypt_base_function_sha256_clear_data_chunk:
+0x3bfe 012442 arg 0x100 ,loopcnt 
+0x3bff 012443 arg mem_mesh_sha256_chunk_start ,contw 
+0x3c00 012444 branch memset0 
+:      012448 ali_mesh_encrypt_base_function_sha256_calc:
+0x3c01 012449 call ali_mesh_encrypt_base_function_sha256_load_data_end 
+0x3c02 012450 call ali_mesh_encrypt_base_function_sha256_input_data_init_inverse 
+0x3c03 012452 setarg mem_mesh_sha256_chunk_start 
+0x3c04 012453 store 2 ,mem_mesh_sha256_chunk_ptr 
+0x3c05 012454 call sha_init 
+:      012456 ali_mesh_encrypt_base_function_sha256_calc_loop:
+0x3c06 012457 fetch 2 ,mem_mesh_sha256_chunk_ptr 
+0x3c07 012458 copy pdata ,contr 
+0x3c08 012459 arg mem_dat ,contw 
+0x3c09 012460 call memcpy64 
+0x3c0a 012461 call sha 
+0x3c0b 012462 fetch 2 ,mem_mesh_sha256_chunk_ptr 
+0x3c0c 012463 pincrease 64 
+0x3c0d 012464 store 2 ,mem_mesh_sha256_chunk_ptr 
+0x3c0e 012465 fetch 1 ,mem_mesh_sha256_chunk_count 
+0x3c0f 012466 pincrease -1 
+0x3c10 012467 store 1 ,mem_mesh_sha256_chunk_count 
+0x3c11 012468 nbranch ali_mesh_encrypt_base_function_sha256_calc_loop ,blank 
+0x3c12 012469 call sha_result 
+0x3c13 012470 arg memresult ,rega 
+0x3c14 012471 arg 0x20 ,loopcnt 
+0x3c15 012472 call inverse_data 
+0x3c16 012473 rtn 
+:      012476 ali_mesh_encrypt_base_function_sha256_load_data_end:
+0x3c17 012477 jam 0 ,mem_mesh_sha256_load_first_data_flag 
+0x3c18 012478 fetch 2 ,mem_mesh_sha256_data_end_addr 
+0x3c19 012479 copy pdata ,contw 
+0x3c1a 012480 arg 0x80 ,temp 
+0x3c1b 012481 istoret 1 ,contw 
+0x3c1c 012482 arg mem_mesh_sha256_chunk_start ,temp 
+0x3c1d 012483 isub temp ,pdata 
+0x3c1e 012484 store 8 ,mem_mesh_sha256_data_len_byte 
+0x3c1f 012486 lshift3 pdata ,temp 
+0x3c20 012487 storet 8 ,mem_mesh_sha256_data_len_bit 
+0x3c21 012488 rshift4 pdata ,regc 
+0x3c22 012489 rshift2 regc ,regc 
+0x3c23 012490 and pdata ,0x3f ,pdata 
+0x3c24 012491 sub pdata ,55 ,null 
+0x3c25 012493 ncall ali_mesh_encrypt_base_function_sha256_add_chunk ,positive 
+0x3c26 012494 add regc ,1 ,pdata 
+0x3c27 012495 store 1 ,mem_mesh_sha256_chunk_count 
+0x3c28 012496 mul32 pdata ,64 ,rega 
+0x3c29 012497 lshift4 pdata ,regc 
+0x3c2a 012498 increase -1 ,regc 
+0x3c2b 012499 setarg mem_mesh_sha256_chunk_start + decreased_four 
+0x3c2c 012500 iadd rega ,rega 
+0x3c2d 012501 fetch 4 ,mem_mesh_sha256_data_len_bit 
+0x3c2e 012502 istore 4 ,rega 
+0x3c2f 012503 rtn 
+:      012507 ali_mesh_encrypt_base_function_sha256_add_chunk:
+0x3c30 012508 increase 1 ,regc 
+0x3c31 012509 rtn 
+:      012511 ali_mesh_encrypt_base_function_sha256_input_data_init_inverse:
+0x3c32 012512 arg mem_mesh_sha256_chunk_start ,rega 
+:      012517 ali_mesh_encrypt_base_function_sha256_data_inverse_4byte:
+0x3c33 012518 arg 4 ,loopcnt 
+0x3c34 012519 call inverse_data 
+0x3c35 012520 increase 2 ,rega 
+0x3c36 012521 add regc ,-1 ,regc 
+0x3c37 012522 nbranch ali_mesh_encrypt_base_function_sha256_data_inverse_4byte ,zero 
+0x3c38 012523 rtn 
+:      012530 ali_mesh_encrypt_base_function_hex2ascii:
+0x3c39 012531 ifetch 1 ,contr 
+0x3c3a 012532 rshift4 pdata ,temp 
+0x3c3b 012533 call ali_mesh_encrypt_base_function_dialog2uchar 
+0x3c3c 012534 istoret 1 ,contw 
+0x3c3d 012535 and pdata ,0x0f ,temp 
+0x3c3e 012536 call ali_mesh_encrypt_base_function_dialog2uchar 
+0x3c3f 012537 istoret 1 ,contw 
+0x3c40 012538 loop ali_mesh_encrypt_base_function_hex2ascii 
+0x3c41 012539 rtn 
+:      012540 ali_mesh_encrypt_base_function_dialog2uchar:
+0x3c42 012541 sub temp ,9 ,null 
+0x3c43 012542 branch ali_mesh_encrypt_base_function_dialog2uchar_num ,positive 
+0x3c44 012543 add temp ,87 ,temp 
+0x3c45 012544 rtn 
+:      012545 ali_mesh_encrypt_base_function_dialog2uchar_num:
+0x3c46 012546 add temp ,48 ,temp 
+0x3c47 012547 rtn 
+:      012550 ali_mesh_encrypt_base_function_aes_cmac_32byte:
+0x3c48 012551 setarg 0x20 
+0x3c49 012552 branch ali_mesh_encrypt_base_function_aes_cmac 
+:      012554 ali_mesh_encrypt_base_function_aes_cmac_16byte:
+0x3c4a 012555 setarg 0x10 
+0x3c4b 012556 branch ali_mesh_encrypt_base_function_aes_cmac 
+:      012561 ali_mesh_encrypt_base_function_k2_aes_cmac_t:
+0x3c4c 012562 fetcht 1 ,mem_k2_p_len 
+0x3c4d 012563 increase 1 ,temp 
+0x3c4e 012564 iadd temp ,temp 
+0x3c4f 012565 storet 1 ,mem_aes_cmac_data_length 
+0x3c50 012566 copy rega ,contr 
+0x3c51 012567 copy pdata ,loopcnt 
+0x3c52 012568 call memcpy_fast 
+0x3c53 012569 fetcht 1 ,mem_k2_p_len 
+0x3c54 012570 copy temp ,loopcnt 
+0x3c55 012571 call memcpy 
+0x3c56 012572 copy regb ,pdata 
+0x3c57 012573 istore 1 ,contw 
+0x3c58 012574 arg mem_k2_t ,rega 
+0x3c59 012575 branch ali_mesh_encrypt_base_function_aes_cmac + 3 
+:      012584 ali_mesh_encrypt_base_function_aes_cmac:
+0x3c5a 012585 store 1 ,mem_aes_cmac_data_length 
+0x3c5b 012586 copy pdata ,loopcnt 
+0x3c5c 012587 call memcpy_fast 
+0x3c5d 012588 copy rega ,contr 
+0x3c5e 012589 arg mem_aes_cmac_k ,contw 
+0x3c5f 012590 call memcpy16 
+0x3c60 012591 call function_aes_cmac 
+0x3c61 012592 copy alarm ,contw 
+0x3c62 012593 call store_aes_result 
+0x3c63 012594 rtn 
+:      012598 ali_b0_block_generate:
+0x3c64 012599 fetcht 1 ,mem_ccm_type 
+0x3c65 012600 branch ali_block_generate 
+:      012601 ali_a_block_generate:
+0x3c66 012602 force 0x01 ,temp 
+:      012603 ali_block_generate:
+0x3c67 012604 force regidx_data ,regext_index 
+0x3c68 012605 fetch 2 ,mem_nonce_ptr 
+0x3c69 012606 copy pdata ,contr 
+0x3c6a 012607 ifetch 3 ,contr 
+0x3c6b 012608 lshift8 pdata ,pdata 
+0x3c6c 012609 ior temp ,regext 
+0x3c6d 012610 increase 1 ,regext_index 
+0x3c6e 012611 ifetch 4 ,contr 
+0x3c6f 012612 copy pdata ,regext 
+0x3c70 012613 increase 1 ,regext_index 
+0x3c71 012614 ifetch 4 ,contr 
+0x3c72 012615 copy pdata ,regext 
+0x3c73 012616 increase 1 ,regext_index 
+0x3c74 012617 byteswap rega ,regext 
+0x3c75 012618 lshift16 regext ,regext 
+0x3c76 012619 ifetch 2 ,contr 
+0x3c77 012620 ior regext ,regext 
+0x3c78 012621 rtn 
+:      012622 ali_generate_mic:
+0x3c79 012623 fetch 1 ,mem_ccm_data_len 
+0x3c7a 012624 copy pdata ,rega 
+0x3c7b 012625 call ali_b0_block_generate 
+0x3c7c 012626 call do_aes_ocb 
+0x3c7d 012627 force regidx_result ,regext_index 
+0x3c7e 012628 deposit regext 
+0x3c7f 012629 copy rega ,loopcnt 
+0x3c80 012630 fetcht 2 ,mem_ccm_data_ptr 
+0x3c81 012631 copy temp ,contr 
+0x3c82 012632 call padding_data 
+0x3c83 012633 branch generate_mic_loop 
+:      012634 ali_ccm_encrypt_64bit:
+0x3c84 012635 jam mic_size_64bit ,mem_ccm_type 
+0x3c85 012636 branch ali_ccm_encrypt_function 
+:      012637 ali_ccm_encrypt:
+0x3c86 012638 jam mic_size_32bit ,mem_ccm_type 
+0x3c87 012639 branch ali_ccm_encrypt_function 
+:      012640 ali_ccm_encrypt_function:
+0x3c88 012641 store 1 ,mem_ccm_data_len 
+0x3c89 012642 storet 2 ,mem_ccm_data_ptr 
+0x3c8a 012643 bpatchx patch34_5 ,mem_patch34 
+0x3c8b 012644 call ali_generate_mic 
+0x3c8c 012645 force regidx_xor ,regext_index 
+0x3c8d 012646 iforce regext 
+0x3c8e 012647 force regidx_result + 1 ,regext_index 
+0x3c8f 012648 copy regext ,pdata 
+0x3c90 012649 force regidx_xor + 1 ,regext_index 
+0x3c91 012650 iforce regext 
+0x3c92 012651 force 0 ,rega 
+0x3c93 012652 copy temp ,regc 
+0x3c94 012653 call ali_a_block_generate 
+0x3c95 012654 call do_aes_ctr 
+0x3c96 012655 call ali_fetcht_ccm_mic 
+0x3c97 012656 storet 8 ,mem_ccm_mic 
+0x3c98 012657 fetch 1 ,mem_ccm_data_len 
+0x3c99 012658 copy pdata ,regb 
+0x3c9a 012659 call ali_aes_crypt_data 
+0x3c9b 012660 fetcht 1 ,mem_ccm_data_len 
+0x3c9c 012661 fetch 2 ,mem_ccm_data_ptr 
+0x3c9d 012662 iadd temp ,rega 
+0x3c9e 012663 fetcht 8 ,mem_ccm_mic 
+0x3c9f 012664 istoret 4 ,rega 
+0x3ca0 012665 fetch 1 ,mem_ccm_type 
+0x3ca1 012666 sub pdata ,mic_size_32bit ,pdata 
+0x3ca2 012667 rtn blank 
+0x3ca3 012668 istoret 8 ,rega 
+0x3ca4 012669 rtn 
+:      012670 ali_ccm_decrypt_64bit:
+0x3ca5 012671 jam mic_size_64bit ,mem_ccm_type 
+0x3ca6 012672 branch ali_ccm_decrypt_function 
+:      012673 ali_ccm_decrypt:
+0x3ca7 012674 jam mic_size_32bit ,mem_ccm_type 
+0x3ca8 012675 branch ali_ccm_decrypt_function 
+:      012677 ali_ccm_decrypt_function:
+0x3ca9 012678 store 1 ,mem_ccm_data_len 
+0x3caa 012679 storet 2 ,mem_ccm_data_ptr 
+0x3cab 012680 copy temp ,regc 
+0x3cac 012681 copy pdata ,regb 
+0x3cad 012682 iadd regc ,contr 
+0x3cae 012683 bpatchx patch34_6 ,mem_patch34 
+0x3caf 012684 ifetch 8 ,contr 
+0x3cb0 012685 force regidx_xor ,regext_index 
+0x3cb1 012686 iforce regext 
+0x3cb2 012687 force regidx_xor + 1 ,regext_index 
+0x3cb3 012688 rshift32 pdata ,pdata 
+0x3cb4 012689 iforce regext 
+0x3cb5 012690 force 0 ,rega 
+0x3cb6 012691 call ali_a_block_generate 
+0x3cb7 012692 call do_aes_ctr 
+0x3cb8 012693 call ali_fetcht_ccm_mic 
+0x3cb9 012694 storet 8 ,mem_ccm_mic 
+0x3cba 012695 call ali_aes_crypt_data 
+0x3cbb 012696 call ali_generate_mic 
+0x3cbc 012697 call ali_fetcht_ccm_mic 
+0x3cbd 012698 fetch 1 ,mem_ccm_type 
+0x3cbe 012699 beq mic_size_64bit ,ali_ccm_decrypt_function_check_mic64 
+0x3cbf 012700 storet 4 ,mem_ccm_mic + 4 
+0x3cc0 012701 fetch 4 ,mem_ccm_mic 
+0x3cc1 012702 fetcht 4 ,mem_ccm_mic + 4 
+0x3cc2 012703 isub temp ,pdata 
+0x3cc3 012704 rtn 
+:      012706 ali_ccm_decrypt_function_check_mic64:
+0x3cc4 012707 fetch 8 ,mem_ccm_mic 
+0x3cc5 012708 isub temp ,pdata 
+0x3cc6 012709 rtn 
+:      012711 ali_fetcht_ccm_mic:
+0x3cc7 012712 force regidx_result ,regext_index 
+0x3cc8 012713 deposit regext 
+0x3cc9 012714 force regidx_result + 1 ,regext_index 
+0x3cca 012715 copy regext ,temp 
+0x3ccb 012716 lshift16 temp ,temp 
+0x3ccc 012717 lshift16 temp ,temp 
+0x3ccd 012718 ior temp ,temp 
+0x3cce 012719 rtn 
+:      012720 ali_aes_crypt_data:
+0x3ccf 012721 increase 1 ,rega 
+0x3cd0 012722 call ali_a_block_generate 
+0x3cd1 012723 copy regc ,contr 
+0x3cd2 012724 call aes_load_xor 
+0x3cd3 012725 call do_aes_ctr 
+0x3cd4 012726 call store_enc_data 
+0x3cd5 012727 increase 16 ,regc 
+0x3cd6 012728 increase -16 ,regb 
+0x3cd7 012729 branch ali_aes_crypt_data ,positive 
+0x3cd8 012730 rtn 
+:      012740 mesh_send_unprovisioned_beacons:
+0x3cd9 012741 bpatchx patch34_7 ,mem_patch34 
+0x3cda 012742 jam unprovisioned_beacon_status ,mem_mesh_provisioned_flag 
+0x3cdb 012743 jam 0x00 ,mem_mesh_provisioning_state_flag 
+0x3cdc 012744 jam 1 ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+0x3cdd 012745 setarg adv_unprovisioned_device_beacon_timeout 
+0x3cde 012746 store 2 ,mem_mesh_advertising_unprovisioned_device_beacon_timer 
+0x3cdf 012747 rtn 
+:      012750 ali_mesh_config_device_uuid_by_three_tuple:
+0x3ce0 012751 setarg company_identifiers_alibaba 
+0x3ce1 012752 store 2 ,mem_mesh_device_uuid 
+0x3ce2 012753 fetch 1 ,mem_mesh_device_pid 
+0x3ce3 012754 istore 1 ,contw 
+0x3ce4 012755 fetch 4 ,mem_mesh_three_tuple_productid 
+0x3ce5 012756 call inverse_data_4byte 
+0x3ce6 012757 istore 4 ,contw 
+0x3ce7 012758 fetch 6 ,mem_le_lap 
+0x3ce8 012759 istore 6 ,contw 
+0x3ce9 012760 fetch 3 ,mem_mesh_uuid_featureflag 
+0x3cea 012761 istore 3 ,contw 
+0x3ceb 012762 rtn 
+:      012764 ali_mesh_send_unprovisioned_beacons_tmall:
+0x3cec 012765 call ali_mesh_init_adv_data_tmall_unprovisioned_beacons_package 
+0x3ced 012766 branch mesh_le_send_adv 
+:      012768 ali_mesh_init_adv_data_tmall_unprovisioned_beacons_package:
+0x3cee 012770 jam 0x15 ,mem_mesh_adv_data_len 
+0x3cef 012771 setarg 0x14 
+0x3cf0 012772 store 1 ,mem_mesh_adv_data 
+0x3cf1 012773 setarg gap_adtype_mesh_beacon 
+0x3cf2 012774 istore 1 ,contw 
+0x3cf3 012775 setarg unprovisioned_device_beacon 
+0x3cf4 012776 istore 1 ,contw 
+:      012777 ali_mesh_advertising_send_unprovisioned_beacons_store_device_uuid:
+0x3cf5 012778 arg mem_mesh_device_uuid ,contr 
+0x3cf6 012779 call memcpy16 
+0x3cf7 012780 fetch 2 ,mem_mesh_oob_information 
+0x3cf8 012781 istore 2 ,contw 
+0x3cf9 012782 rtn 
+:      012785 ali_mesh_receive_adtype_manufacturer_specific:
+0x3cfa 012786 call ali_mesh_receive_provisioning_package_check_header 
+0x3cfb 012787 nrtn user 
+0x3cfc 012788 ifetch 1 ,contr 
+0x3cfd 012789 beq provisioning_random ,ali_mesh_advertising_receive_privisioning_random 
+0x3cfe 012790 beq provisioning_data ,ali_mesh_decrypt_tmall_privisioning_data_package 
+0x3cff 012791 bpatchx patch35_0 ,mem_patch35 
+0x3d00 012792 rtn 
+:      012796 ali_mesh_advertising_receive_privisioning_random:
+0x3d01 012797 call ali_mesh_advertising_receive_privisioning_random_check_states 
+0x3d02 012798 nrtn user 
+:      012799 ali_mesh_advertising_calc_encrypt_random_data:
+0x3d03 012800 call ali_mesh_encrypt_calc_random_data 
+0x3d04 012802 call ali_mesh_advertising_send_provisioning_confirmation 
+0x3d05 012803 call ali_mesh_send_pairing_data 
+0x3d06 012804 rtn 
+:      012806 ali_mesh_advertising_send_provisioning_confirmation:
+0x3d07 012807 arg provisioning_packet_confirmation_mac + provisioning_packet_confirmation_device ,temp 
+0x3d08 012808 call ali_mesh_advertising_send_packet_common 
+0x3d09 012809 setarg provisioning_confirmation 
+0x3d0a 012810 istore 1 ,contw 
+0x3d0b 012811 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+0x3d0c 012812 istore 2 ,contw 
+0x3d0d 012813 arg mem_mesh_confirmationdevice ,contr 
+0x3d0e 012814 branch memcpy16 
+:      012817 ali_mesh_advertising_receive_privisioning_random_check_states:
+0x3d0f 012818 call disable_user 
+0x3d10 012819 ifetcht 2 ,contr 
+0x3d11 012820 arg mem_mesh_provisioning_random_a ,contw 
+0x3d12 012821 call memcpy16 
+0x3d13 012822 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+0x3d14 012823 isub temp ,null 
+0x3d15 012824 nrtn zero 
+0x3d16 012827 fetch 1 ,mem_mesh_provisioning_state_flag 
+0x3d17 012828 rtnbit1 receive_provisioning_random 
+0x3d18 012829 set1 receive_provisioning_random ,pdata 
+0x3d19 012830 store 1 ,mem_mesh_provisioning_state_flag 
+0x3d1a 012832 jam pairing_status ,mem_mesh_provisioned_flag 
+0x3d1b 012833 branch enable_user 
+:      012835 ali_mesh_decrypt_tmall_privisioning_data_package:
+0x3d1c 012836 call ali_mesh_advertising_receive_privisioning_data 
+0x3d1d 012837 fetcht 2 ,mem_mesh_provisioning_data_mac_addr 
+0x3d1e 012838 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+0x3d1f 012839 isub temp ,null 
+0x3d20 012840 nrtn zero 
+0x3d21 012841 call ali_mesh_encrypt_base_function_k3 
+0x3d22 012842 call ali_mesh_send_pairing_data 
+0x3d23 012843 fetch 1 ,mem_mesh_fast_pair_packet_type 
+0x3d24 012844 rtnne mesh_message_proxy 
+0x3d25 012845 jam wait_receive_appkey ,mem_mesh_provisioned_flag 
+0x3d26 012846 rtn 
+:      012849 ali_mesh_advertising_receive_privisioning_data:
+0x3d27 012850 bpatchx patch35_1 ,mem_patch35 
+0x3d28 012851 copy contr ,rega 
+0x3d29 012852 fetch 1 ,mem_mesh_provisioned_flag 
+0x3d2a 012853 rtneq paired_status 
+0x3d2b 012854 fetch 1 ,mem_mesh_provisioning_state_flag 
+0x3d2c 012855 rtnbit0 receive_provisioning_random 
+0x3d2d 012856 rtnbit1 receive_provisioning_data 
+0x3d2e 012857 copy rega ,contr 
+0x3d2f 012858 arg 0x16 ,loopcnt 
+0x3d30 012859 arg mem_mesh_encrypt_provisioning_data ,contw 
+0x3d31 012860 call memcpy 
+0x3d32 012862 call ali_mesh_encrypt_calc_provisioning_data 
+0x3d33 012864 fetcht 2 ,mem_mesh_provisioning_data_mac_addr 
+0x3d34 012865 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+0x3d35 012866 isub temp ,null 
+0x3d36 012867 nrtn zero 
+:      012868 ali_mesh_resolve_privisioning_data_package:
+0x3d37 012869 fetch 1 ,mem_mesh_provisioning_state_flag 
+0x3d38 012870 set1 receive_provisioning_data ,pdata 
+0x3d39 012871 store 1 ,mem_mesh_provisioning_state_flag 
+0x3d3a 012873 call ali_mesh_encrypt_calc_network_key_by_k2 
+0x3d3b 012875 fetch 1 ,mem_mesh_last_iv_index_byte 
+0x3d3c 012876 store 1 ,mem_mesh_iv_index + 3 
+0x3d3d 012877 call ali_mesh_advertising_send_provisioning_complete 
+0x3d3e 012878 rtn 
+:      012882 ali_mesh_advertising_send_provisioning_complete:
+0x3d3f 012883 arg provisioning_packet_complete_mac ,temp 
+0x3d40 012884 call ali_mesh_advertising_send_packet_common 
+0x3d41 012885 setarg provisioning_complete 
+0x3d42 012886 istore 1 ,contw 
+0x3d43 012887 fetch 6 ,mem_mesh_three_tuple_mac 
+0x3d44 012888 istore 6 ,contw 
+0x3d45 012889 rtn 
+:      012892 ali_mesh_advertising_send_packet_common:
+0x3d46 012893 bpatchx patch35_2 ,mem_patch35 
+0x3d47 012894 setarg fast_pairing_timeout_provisioning 
+0x3d48 012895 store 2 ,mem_mesh_fast_pairing_timer 
+0x3d49 012896 fetch 1 ,mem_mesh_fast_pair_packet_type 
+0x3d4a 012897 sub pdata ,mesh_message_tmall ,null 
+0x3d4b 012898 call ali_mesh_control_ble_advertising_on_advertising ,zero 
+0x3d4c 012899 ncall ali_mesh_control_ble_advertising_off_advertising ,zero 
+0x3d4d 012900 add temp ,provisioning_packet_length_ad_type_company_id_vid_provisioning_type + provisioning_packet_length_flags ,pdata 
+0x3d4e 012901 store 1 ,mem_mesh_adv_data_len 
+0x3d4f 012902 call ali_mesh_advertising_add_adtype_flags 
+0x3d50 012903 add temp ,provisioning_packet_ad_type_company_id_vid_provisioning_type ,pdata 
+0x3d51 012904 istore 1 ,contw 
+0x3d52 012905 setarg gap_adtype_manufacturer_specific 
+0x3d53 012906 istore 1 ,contw 
+0x3d54 012907 setarg company_identifiers_alibaba 
+0x3d55 012908 byteswap pdata ,pdata 
+0x3d56 012909 istore 2 ,contw 
+0x3d57 012910 fetch 1 ,mem_mesh_receive_vid 
+0x3d58 012911 istore 1 ,contw 
+0x3d59 012912 rtn 
+:      012923 ali_mesh_receive_provisioning_package_check_header:
+0x3d5a 012924 call disable_user 
+0x3d5b 012925 ifetcht 2 ,contr 
+0x3d5c 012926 setarg company_identifiers_alibaba 
+0x3d5d 012927 byteswap pdata ,pdata 
+0x3d5e 012928 isub temp ,null 
+0x3d5f 012929 nrtn zero 
+0x3d60 012930 ifetch 1 ,contr 
+0x3d61 012931 store 1 ,mem_mesh_receive_vid 
+0x3d62 012932 branch enable_user 
+:      012935 ali_mesh_fast_pairing_timer:
+0x3d63 012936 arg mem_mesh_fast_pairing_timer ,regc 
+0x3d64 012937 arg ali_mesh_fast_pairing_timeout ,regb 
+0x3d65 012938 branch timer_single_step_2b 
+:      012940 ali_mesh_fast_pairing_timeout:
+:      012941 ali_mesh_fast_pairing_failed:
+0x3d66 012942 branch ali_mesh_advertising_init_send_unprovisioned_device_beacon 
+:      012950 ali_mesh_access_layer_config_or_health_message_opcode:
+0x3d67 012951 fetch 1 ,mem_mesh_configuration_health_message_opcode 
+0x3d68 012952 beq mesh_message_opcode_config_composition_data_get_no_head ,ali_mesh_access_layer_config_composition_data 
+0x3d69 012953 beq mesh_message_opcode_config_node_reset_no_head ,ali_mesh_access_layer_config_or_health_message_opcode_node_reset 
+0x3d6a 012954 beq mesh_message_opcode_config_model_subscription_add_no_head ,ali_mesh_message_config_modle_subscription_add 
+0x3d6b 012955 beq mesh_message_opcode_config_model_subscription_delete_no_head ,ali_mesh_message_config_modle_subscription_delete 
+0x3d6c 012957 beq mesh_message_opcode_config_model_subscription_add_ow_no_head ,ali_mesh_message_config_modle_subscription_add_overwrite 
+0x3d6d 012959 rtn 
+:      012961 ali_mesh_message_config_modle_subscription_add_overwrite:
+0x3d6e 012962 call ali_mesh_message_config_modle_subscription_check_element 
+0x3d6f 012963 call ali_mesh_message_config_modle_subscription_add_value_address_ow 
+0x3d70 012964 call ali_mesh_message_config_modle_subscription_save 
+0x3d71 012965 setarg mesh_configuration_and_health_message_opcode_header 
+0x3d72 012966 store 1 ,mem_mesh_access_layer_payload 
+0x3d73 012967 setarg mesh_message_opcode_config_model_subscription_add_ow_status 
+0x3d74 012968 istore 1 ,contw 
+0x3d75 012970 setarg mesh_success 
+0x3d76 012971 istore 1 ,contw 
+0x3d77 012972 fetch 2 ,mem_mesh_subscription_element_address_ow 
+0x3d78 012973 istore 2 ,contw 
+0x3d79 012975 fetch 1 ,mem_mesh_receive_model_message_payload_len 
+0x3d7a 012976 arg 4 ,temp 
+0x3d7b 012977 isub temp ,loopcnt 
+0x3d7c 012978 arg mem_mesh_subscription_list_num_ow ,contr 
+0x3d7d 012979 call memcpy 
+0x3d7e 012980 fetch 1 ,mem_mesh_receive_model_message_payload_len 
+0x3d7f 012981 pincrease 1 
+0x3d80 012982 store 1 ,mem_mesh_access_layer_payload_len 
+0x3d81 012985 arg 0 ,queue 
+0x3d82 012986 branch ali_mesh_ali_vendor_message_send_message 
+:      012988 ali_mesh_message_config_modle_subscription_add_value_address_ow:
+0x3d83 012989 fetch 1 ,mem_mesh_subscription_list_num_ow 
+0x3d84 012990 rtn blank 
+0x3d85 012991 sub pdata ,subscription_max_count ,null 
+0x3d86 012992 ncall ali_mesh_message_config_modle_subscription_set_addr_max ,positive 
+0x3d87 012993 iforce loopcnt 
+0x3d88 012994 arg mem_mesh_subscription_value_address_start_ow ,contr 
+0x3d89 012995 add rega ,2 ,contw 
+0x3d8a 012996 branch ali_mesh_byte_swap 
+:      012998 ali_mesh_byte_swap:
+0x3d8b 012999 ifetch 2 ,contr 
+0x3d8c 013000 byteswap pdata ,pdata 
+0x3d8d 013001 istore 2 ,contw 
+0x3d8e 013002 loop ali_mesh_byte_swap 
+0x3d8f 013003 rtn 
+:      013005 ali_mesh_message_config_modle_subscription_set_addr_max:
+0x3d90 013007 setarg subscription_max_count 
+0x3d91 013008 rtn 
+:      013010 ali_mesh_access_layer_config_composition_data:
+0x3d92 013011 jam receive_config_composition_data_get ,mem_mesh_provisioned_flag 
+0x3d93 013012 setarg mesh_message_opcode_config_composition_data_status 
+0x3d94 013013 store 1 ,mem_mesh_access_layer_payload 
+0x3d95 013014 setarg 0x00 
+0x3d96 013015 istore 1 ,contw 
+0x3d97 013016 setarg company_identifiers_alibaba 
+0x3d98 013017 istore 2 ,contw 
+0x3d99 013018 setarg 0x0000 
+0x3d9a 013019 istore 2 ,contw 
+0x3d9b 013020 setarg 0x0001 
+0x3d9c 013021 istore 2 ,contw 
+0x3d9d 013022 setarg 0x0005 
+0x3d9e 013023 istore 2 ,contw 
+0x3d9f 013024 setarg 0x0003 
+0x3da0 013025 istore 2 ,contw 
+0x3da1 013026 setarg 0x0000 
+0x3da2 013027 istore 2 ,contw 
+0x3da3 013028 setarg 0x02 
+0x3da4 013029 istore 1 ,contw 
+0x3da5 013030 setarg 0x02 
+0x3da6 013031 istore 1 ,contw 
+0x3da7 013032 setarg 0x0000 
+0x3da8 013033 istore 2 ,contw 
+0x3da9 013034 setarg 0x1000 
+0x3daa 013035 istore 2 ,contw 
+0x3dab 013036 setarg 0x000001a8 
+0x3dac 013037 istore 4 ,contw 
+0x3dad 013038 setarg 0x000101a8 
+0x3dae 013039 istore 4 ,contw 
+0x3daf 013040 jam 28 ,mem_mesh_access_layer_payload_len 
+0x3db0 013041 branch ali_mesh_upper_transport_layer_send_access_message 
+:      013044 ali_mesh_access_layer_config_or_health_message_opcode_node_reset:
+0x3db1 013045 jam health_node_reset_timeout ,mem_mesh_health_node_reset_timer 
+:      013049 ali_mesh_access_layer_send_config_node_reset_status:
+0x3db2 013050 setarg mesh_configuration_and_health_message_opcode_header 
+0x3db3 013051 store 1 ,mem_mesh_access_layer_payload 
+0x3db4 013052 setarg mesh_message_opcode_config_node_reset_status_no_head 
+0x3db5 013053 istore 1 ,contw 
+0x3db6 013054 jam 2 ,mem_mesh_access_layer_payload_len 
+0x3db7 013055 branch ali_mesh_upper_transport_layer_send_access_message 
+:      013057 ali_mesh_access_layer_health_node_reset_timer:
+0x3db8 013058 arg mem_mesh_health_node_reset_timer ,regc 
+0x3db9 013059 arg ali_mesh_access_layer_health_node_reset_timeout ,regb 
+0x3dba 013060 branch timer_single_step 
+:      013063 ali_mesh_access_layer_health_node_reset_timeout:
+0x3dbb 013064 call mesh_clear_provisioning_data_only 
+:      013066 ali_mesh_app_delete_paired:
+0x3dbc 013067 branch soft_reset_chip 
+:      013070 ali_mesh_message_config_modle_subscription_add:
+0x3dbd 013071 call ali_mesh_message_config_modle_subscription_status 
+0x3dbe 013072 fetch 2 ,mem_mesh_core_feature 
+0x3dbf 013073 rtnbit1 mesh_feature_disable_subscription 
+0x3dc0 013074 call ali_mesh_message_config_modle_subscription_check_element 
+0x3dc1 013075 call ali_mesh_message_config_modle_subscription_add_value_address 
+:      013076 ali_mesh_message_config_modle_subscription_save:
+0x3dc2 013077 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+0x3dc3 013078 branch callback_func 
+:      013081 ali_mesh_message_config_modle_subscription_delete:
+0x3dc4 013082 call ali_mesh_message_config_modle_subscription_status 
+0x3dc5 013083 fetch 2 ,mem_mesh_core_feature 
+0x3dc6 013084 rtnbit1 mesh_feature_disable_subscription 
+0x3dc7 013085 call ali_mesh_message_config_modle_subscription_check_element 
+0x3dc8 013086 fetcht 2 ,mem_mesh_subscription_value_address 
+0x3dc9 013087 rshift8 temp ,pdata 
+0x3dca 013088 rshift4 pdata ,pdata 
+0x3dcb 013089 beq 0x0c ,ali_mesh_message_config_modle_subscription_delete_group_addr 
+0x3dcc 013090 byteswap temp ,temp 
+:      013091 ali_mesh_message_config_modle_subscription_delete_next:
+0x3dcd 013092 call ali_mesh_message_config_modle_subscription_check_value_address 
+0x3dce 013093 nrtn user 
+0x3dcf 013094 setarg 0 
+0x3dd0 013095 istore 2 ,rega 
+0x3dd1 013096 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+0x3dd2 013097 branch callback_func 
+:      013099 ali_mesh_message_config_modle_subscription_delete_group_addr:
+0x3dd3 013100 setarg -1 
+0x3dd4 013101 istore subscription_max_count ,rega 
+0x3dd5 013102 istore subscription_max_count ,contw 
+0x3dd6 013103 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+0x3dd7 013104 branch callback_func 
+:      013106 ali_mesh_message_config_modle_subscription_check_value_address:
+0x3dd8 013107 arg subscription_max_count ,loopcnt 
+:      013108 ali_mesh_message_config_modle_subscription_check_value_address_loop:
+0x3dd9 013109 ifetch 2 ,rega 
+0x3dda 013110 arg 0xffff ,regb 
+0x3ddb 013111 isub regb ,null 
+0x3ddc 013112 branch enable_user ,zero 
+0x3ddd 013113 isub temp ,null 
+0x3dde 013114 branch enable_user ,zero 
+:      013115 ali_mesh_message_config_modle_subscription_check_value_address_loop_empty:
+0x3ddf 013116 increase 2 ,rega 
+0x3de0 013117 loop ali_mesh_message_config_modle_subscription_check_value_address_loop 
+0x3de1 013118 branch disable_user 
+:      013121 ali_mesh_message_config_modle_subscription_status:
+0x3de2 013122 setarg mesh_configuration_and_health_message_opcode_header 
+0x3de3 013123 store 1 ,mem_mesh_access_layer_payload 
+0x3de4 013124 setarg mesh_message_opcode_config_model_subscription_status_no_head 
+0x3de5 013125 istore 1 ,contw 
+0x3de6 013126 setarg mesh_success 
+0x3de7 013127 istore 1 ,contw 
+0x3de8 013128 fetch 6 ,mem_mesh_subscription_element_address 
+0x3de9 013129 istore 6 ,contw 
+0x3dea 013130 jam 9 ,mem_mesh_access_layer_payload_len 
+0x3deb 013131 branch ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer 
+:      013133 ali_mesh_message_config_modle_subscription_check_element:
+0x3dec 013134 call mesh_get_element_info_config 
+0x3ded 013135 add rega ,element_device_subscription_label ,rega 
+0x3dee 013136 fetch 2 ,mem_mesh_subscription_element_address 
+0x3def 013137 fetcht 2 ,mem_mesh_unicast_address 
+0x3df0 013138 byteswap temp ,temp 
+0x3df1 013139 isub temp ,pdata 
+0x3df2 013140 imul32 regb ,pdata 
+0x3df3 013141 iadd rega ,rega 
+0x3df4 013142 rtn 
+:      013144 ali_mesh_message_config_modle_subscription_add_value_address:
+0x3df5 013145 fetcht 2 ,mem_mesh_subscription_value_address 
+0x3df6 013146 arg subscription_max_count ,loopcnt 
+:      013147 ali_mesh_message_config_modle_subscription_add_value_address_loop:
+0x3df7 013148 ifetch 2 ,rega 
+0x3df8 013149 branch ali_mesh_message_config_modle_subscription_add_value_address_in ,blank 
+0x3df9 013150 arg 0xffff ,regb 
+0x3dfa 013151 isub regb ,null 
+0x3dfb 013152 branch ali_mesh_message_config_modle_subscription_add_value_address_in ,zero 
+0x3dfc 013153 increase 2 ,rega 
+0x3dfd 013154 loop ali_mesh_message_config_modle_subscription_add_value_address_loop 
+0x3dfe 013155 rtn 
+:      013157 ali_mesh_message_config_modle_subscription_add_value_address_in:
+0x3dff 013158 byteswap temp ,temp 
+0x3e00 013159 istoret 2 ,rega 
+0x3e01 013160 rtn 
+:      013165 ali_mesh_init:
+0x3e02 013167 call enable_authrom 
+0x3e03 013168 call init_memp 
+0x3e04 013169 setarg mesh_check_ble_rx_packet 
+0x3e05 013170 store 2 ,mem_mesh_cb_receive_advertising 
+0x3e06 013172 setarg mesh_idle_process 
+0x3e07 013173 store 2 ,mem_cb_idle_process 
+0x3e08 013175 setarg ali_mesh_network_layer_relay_access_message 
+0x3e09 013176 store 2 ,mem_mesh_cb_network_relay 
+0x3e0a 013178 setarg ali_mesh_access_layer_recv_cfg_appkey_add_cb 
+0x3e0b 013179 store 2 ,mem_mesh_cb_receive_config_appkey_add 
+0x3e0c 013181 setarg mesh_store_new_subscriptuion_list_data 
+0x3e0d 013182 store 2 ,mem_mesh_cb_subscriptuion_list_changed 
+0x3e0e 013184 setarg mesh_store_new_seq_data 
+0x3e0f 013185 store 2 ,mem_mesh_cb_seq_changed 
+0x3e10 013187 setarg mesh_cb_event_timer 
+0x3e11 013188 store 2 ,mem_cb_event_timer 
+0x3e12 013190 setarg ali_mesh_access_layer_check_access_message_opcode 
+0x3e13 013191 store 2 ,mem_mesh_cb_receive_access_message 
+0x3e14 013193 setarg mesh_le_receive_data 
+0x3e15 013194 store 2 ,mem_cb_att_write 
+0x3e16 013196 setarg ali_mesh_proxy_process_bb_event 
+0x3e17 013197 store 2 ,mem_cb_bb_event_process 
+0x3e18 013199 setarg mesh_clear_pairing_key 
+0x3e19 013200 store 2 ,mem_mesh_clear_provisioning_data 
+0x3e1a 013202 setarg mesh_vendor_timming_chage_cb 
+0x3e1b 013203 store 2 ,mem_mesh_cb_vendor_timing_changed 
+0x3e1c 013204 call ali_mesh_vendor_timer_message_read 
+0x3e1d 013206 jam 36 ,mem_mesh_adv_scan_channel 
+0x3e1e 013207 call ali_mesh_ali_vendor_message_indication_info_reset_tid 
+0x3e1f 013210 bpatchx patch35_3 ,mem_patch35 
+0x3e20 013212 setarg 0x0428 
+0x3e21 013213 store 2 ,mem_mesh_upper_tran_layer_queue_each_size 
+0x3e22 013214 call ali_mesh_upper_transport_layer_queue_init 
+0x3e23 013216 setarg 0x0422 
+0x3e24 013217 store 2 ,mem_mesh_queue_each_size 
+0x3e25 013218 call ali_mesh_advertising_bearer_layer_queue_init 
+0x3e26 013220 setarg 0x0a22 
+0x3e27 013221 store 2 ,mem_mesh_network_relay_gatt_queue_each_size 
+0x3e28 013222 call ali_mesh_network_layer_gatt_queue_init 
+0x3e29 013223 call ali_mesh_network_layer_queue_init 
+0x3e2a 013227 call ali_mesh_network_layer_queue_init 
+0x3e2b 013229 call ali_mesh_chip_peripherals_load_data 
+0x3e2c 013230 call mesh_inverse_three_tuple_mac 
+0x3e2d 013232 fetch 1 ,mem_mesh_network_key 
+0x3e2e 013233 beq 0xff ,mesh_send_unprovisioned_beacons 
+0x3e2f 013234 call ali_mesh_upper_transport_layer_clear_tx_buffer 
+0x3e30 013235 call ali_mesh_encrypt_base_function_k3 
+0x3e31 013236 call ali_mesh_encrypt_base_function_k4 
+0x3e32 013237 call ali_mesh_encrypt_calc_network_key_by_k2 
+0x3e33 013239 random pdata 
+0x3e34 013240 and pdata ,0x1f ,pdata 
+0x3e35 013241 add pdata ,50 ,pdata 
+0x3e36 013242 store 2 ,mem_mesh_report_full_attribute_timer 
+0x3e37 013243 add pdata ,5 ,pdata 
+0x3e38 013244 store 1 ,mem_mesh_report_power_on_timer 
+0x3e39 013245 rtn 
+:      013249 mesh_inverse_three_tuple_mac:
+0x3e3a 013250 fetch 6 ,mem_mesh_three_tuple_mac 
+0x3e3b 013251 call inverse_data_6byte 
+0x3e3c 013252 store 6 ,mem_le_lap 
+0x3e3d 013253 rtn 
+:      013255 mesh_get_element_info_config:
+0x3e3e 013256 fetchr loopcnt ,1 ,mem_mesh_element_number 
+0x3e3f 013257 fetchr rega ,2 ,mem_mesh_element_device_ptr 
+0x3e40 013258 fetchr regb ,2 ,mem_mesh_element_device_length 
+0x3e41 013259 rtn 
+:      013262 mesh_idle_process:
+0x3e42 013263 bpatchx patch35_4 ,mem_patch35 
+0x3e43 013264 call ali_mesh_time_function 
+0x3e44 013265 call ali_mesh_control_ble_adv_process 
+0x3e45 013266 call ali_mesh_upper_transport_layer_control_packet 
+0x3e46 013267 call ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue 
+0x3e47 013268 call ali_mesh_network_layer_control_relay_packet 
+0x3e48 013269 call ali_mesh_network_layer_check_gatt_relay_packet 
+0x3e49 013270 branch mesh_ble_rx_packet 
+:      013273 mesh_cb_event_timer:
+0x3e4a 013274 call ali_mesh_control_ble_adv_timer_process 
+0x3e4b 013275 call ali_mesh_access_layer_health_node_reset_timer 
+0x3e4c 013276 call ali_mesh_fast_pairing_timer 
+0x3e4d 013279 call ali_mesh_report_full_attribute_timer 
+0x3e4e 013280 call ali_mesh_report_power_on_timer 
+0x3e4f 013281 branch ali_mesh_upper_transport_layer_receive_new_msg_timer 
+:      013284 mesh_clear_provisioning_data_only:
+0x3e50 013285 call mesh_clear_timer_data 
+0x3e51 013286 fetch 2 ,mem_mesh_clear_provisioning_data 
+0x3e52 013287 branch callback_func 
+:      013291 mesh_clear_timer_data:
+0x3e53 013292 fetch 1 ,mem_mesh_chip_select 
+0x3e54 013293 rtnne 2 
+0x3e55 013294 setarg 0x1d000 
+0x3e56 013295 store 3 ,mem_spi_write_addr 
+0x3e57 013296 branch spid_flash_erase_sector + 2 
+:      013300 ali_mesh_upper_transport_layer_queue_init:
+0x3e58 013301 call ali_mesh_upper_transport_layer_init_queue_param 
+0x3e59 013302 branch queue_init 
+:      013304 ali_mesh_advertising_bearer_layer_queue_init:
+0x3e5a 013305 call ali_mesh_advertising_bearer_layer_init_queue_param 
+0x3e5b 013306 branch queue_init 
+:      013308 ali_mesh_network_layer_gatt_queue_init:
+0x3e5c 013309 call ali_mesh_network_layer_init_gatt_queue_param 
+0x3e5d 013310 branch queue_init 
+:      013312 ali_mesh_network_layer_init_gatt_queue_param:
+0x3e5e 013313 setarg mem_mesh_network_relay_gatt_queue_each_size 
+0x3e5f 013314 store 2 ,mem_queue_ptr 
+0x3e60 013315 rtn 
+:      013317 ali_mesh_advertising_init_send_unprovisioned_device_beacon:
+0x3e61 013318 jam 1 ,mem_le_adv_enable 
+0x3e62 013319 setarg adv_unprovisioned_device_beacon_timeout 
+0x3e63 013320 store 2 ,mem_mesh_advertising_unprovisioned_device_beacon_timer 
+0x3e64 013321 fetch 1 ,mem_mesh_uuid_featureflag 
+0x3e65 013322 set0 bit_silence_adv_flag ,pdata 
+0x3e66 013323 store 1 ,mem_mesh_uuid_featureflag 
+0x3e67 013324 jam unprovisioned_beacon_status ,mem_mesh_provisioned_flag 
+0x3e68 013325 jam 0x00 ,mem_mesh_provisioning_state_flag 
+0x3e69 013326 jam 0x00 ,mem_k2_nid 
+0x3e6a 013327 branch ali_mesh_send_unprovisioned_device_beacon_init_advertising 
+:      013331 ali_mesh_lower_transport_layer_receive_lower_transport_pdu:
+0x3e6b 013332 bpatchx patch35_5 ,mem_patch35 
+0x3e6c 013333 fetch 1 ,mem_mesh_message_transport_head 
+0x3e6d 013334 bbit1 transport_head_bit_seg ,ali_mesh_lower_transport_layer_receive_lower_transport_pdu_segmented_message 
+0x3e6e 013335 jam 0 ,mem_mesh_aszmic 
+0x3e6f 013336 branch ali_mesh_upper_transport_layer_receive_unsegmented_access_message 
+:      013339 ali_mesh_lower_transport_layer_receive_lower_transport_pdu_segmented_message:
+0x3e70 013340 call ali_mesh_lower_transport_layer_receive_segaccmess_resolve_szmic_seqzero_segon 
+0x3e71 013341 rtn user 
+0x3e72 013342 call ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack 
+0x3e73 013343 rtn user 
+0x3e74 013344 call ali_mesh_lower_transport_layer_receive_segmented_access_message_store_segment 
+0x3e75 013345 branch ali_mesh_lower_transport_layer_receive_segmented_access_message_decrypt_segment 
+:      013349 ali_mesh_lower_transport_layer_receive_segaccmess_resolve_szmic_seqzero_segon:
+0x3e76 013350 call disable_user 
+0x3e77 013351 arg 3 ,loopcnt 
+0x3e78 013352 arg mem_mesh_message_segment_access_szmic_seqzero_sego_segn ,rega 
+0x3e79 013353 call inverse_data 
+0x3e7a 013354 fetchr rega ,3 ,mem_mesh_message_segment_access_szmic_seqzero_sego_segn 
+0x3e7b 013355 and rega ,0x1f ,temp 
+0x3e7c 013356 storet 1 ,mem_mesh_segmented_access_message_segn 
+0x3e7d 013357 fetch 1 ,mem_mesh_segmented_access_message_segn_upper_limit 
+0x3e7e 013358 isub temp ,null 
+0x3e7f 013359 nbranch enable_user ,positive 
+0x3e80 013361 rshift4 rega ,pdata 
+0x3e81 013362 rshift pdata ,pdata 
+0x3e82 013363 and pdata ,0x1f ,temp 
+0x3e83 013364 storet 1 ,mem_mesh_segmented_access_message_sego 
+0x3e84 013365 rshift4 pdata ,pdata 
+0x3e85 013366 rshift pdata ,pdata 
+0x3e86 013367 arg 0x1fff ,rega 
+0x3e87 013368 iand rega ,temp 
+0x3e88 013369 copy pdata ,regb 
+0x3e89 013370 fetch 2 ,mem_mesh_segmented_access_message_seqzero 
+0x3e8a 013371 isub temp ,null 
+0x3e8b 013372 ncall ali_mesh_lower_transport_layer_receive_segmented_access_message_recover_seqzero ,zero 
+0x3e8c 013373 storet 2 ,mem_mesh_segmented_access_message_seqzero 
+0x3e8d 013374 rshift8 regb ,pdata 
+0x3e8e 013375 rshift4 pdata ,pdata 
+0x3e8f 013376 rshift pdata ,pdata 
+0x3e90 013377 store 1 ,mem_mesh_segmented_access_message_szmic 
+0x3e91 013378 store 1 ,mem_mesh_aszmic 
+0x3e92 013379 rtn 
+:      013381 ali_mesh_lower_transport_layer_receive_segmented_access_message_recover_seqzero:
+0x3e93 013382 setarg 0 
+0x3e94 013383 store 4 ,mem_mesh_segmented_access_message_blockack 
+0x3e95 013384 jam 0 ,mem_mesh_segmented_access_message_current_length 
+0x3e96 013385 rtn 
+:      013390 ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack:
+0x3e97 013391 call disable_user 
+0x3e98 013392 fetch 1 ,mem_mesh_segmented_access_message_sego 
+0x3e99 013393 copy pdata ,queue 
+0x3e9a 013394 fetch 4 ,mem_mesh_segmented_access_message_blockack 
+0x3e9b 013395 qisolate1 pdata 
+0x3e9c 013396 branch enable_user ,true 
+0x3e9d 013397 qset1 pdata 
+0x3e9e 013398 store 4 ,mem_mesh_segmented_access_message_blockack 
+0x3e9f 013399 fetcht 1 ,mem_mesh_segmented_access_message_segn 
+0x3ea0 013400 add temp ,1 ,loopcnt 
+:      013401 ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack_loop:
+0x3ea1 013402 add loopcnt ,-1 ,queue 
+0x3ea2 013403 qisolate1 pdata 
+0x3ea3 013404 nrtn true 
+0x3ea4 013405 loop ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack_loop 
+0x3ea5 013406 jam 1 ,mem_mesh_segmented_access_message_receive_finish 
+0x3ea6 013407 rtn 
+:      013411 ali_mesh_lower_transport_layer_receive_segmented_access_message_store_segment:
+0x3ea7 013412 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x3ea8 013413 pincrease -6 
+0x3ea9 013414 copy pdata ,loopcnt 
+0x3eaa 013415 fetcht 1 ,mem_mesh_segmented_access_message_current_length 
+0x3eab 013416 iadd temp ,temp 
+0x3eac 013417 storet 1 ,mem_mesh_segmented_access_message_current_length 
+0x3ead 013418 fetch 2 ,mem_mesh_segmented_access_message_segment_ptr 
+0x3eae 013419 iforce contw 
+0x3eaf 013420 fetch 1 ,mem_mesh_segmented_access_message_sego 
+0x3eb0 013421 mul32 pdata ,12 ,pdata 
+0x3eb1 013422 iadd contw ,contw 
+0x3eb2 013423 arg mem_mesh_message_transport_segmented_access_messagepdu_segment ,contr 
+0x3eb3 013424 branch memcpy 
+:      013427 ali_mesh_lower_transport_layer_receive_segmented_access_message_decrypt_segment:
+0x3eb4 013428 fetch 1 ,mem_mesh_segmented_access_message_receive_finish 
+0x3eb5 013429 rtneq 0 
+0x3eb6 013430 setarg 0 
+0x3eb7 013431 store 5 ,mem_mesh_segmented_access_message_blockack 
+0x3eb8 013432 fetcht 2 ,mem_mesh_message_seq + 1 
+0x3eb9 013433 byteswap temp ,temp 
+0x3eba 013434 setarg 0xe000 
+0x3ebb 013435 iand temp ,temp 
+0x3ebc 013436 fetch 2 ,mem_mesh_segmented_access_message_seqzero 
+0x3ebd 013437 ior temp ,pdata 
+0x3ebe 013438 byteswap pdata ,pdata 
+0x3ebf 013439 store 2 ,mem_mesh_message_seq + 1 
+0x3ec0 013440 branch ali_mesh_upper_transport_layer_receive_segmented_access_message 
+:      013444 ali_mesh_lower_transport_layer_send_unsegmented_access_message:
+0x3ec1 013445 fetch 1 ,mem_mesh_upper_transport_layer_payload_len 
+0x3ec2 013446 add pdata ,1 ,temp 
+0x3ec3 013447 copy pdata ,loopcnt 
+0x3ec4 013448 storet 1 ,mem_mesh_lower_transport_layer_payload_len 
+0x3ec5 013449 fetch 1 ,mem_mesh_message_transport_head 
+0x3ec6 013450 set0 transport_head_bit_seg ,pdata 
+0x3ec7 013451 store 1 ,mem_mesh_unsegmented_access_lower_transport_layer_head 
+0x3ec8 013452 arg mem_mesh_access_layer_payload ,contr 
+0x3ec9 013453 call memcpy_fast 
+0x3eca 013454 branch ali_mesh_network_layer_send_access_message 
+:      013459 ali_mesh_lower_transport_layer_send_segmented_access_message:
+0x3ecb 013460 add rega ,4 ,temp 
+0x3ecc 013461 copy rega ,loopcnt 
+0x3ecd 013462 storet 1 ,mem_mesh_lower_transport_layer_payload_len 
+0x3ece 013463 arg mem_mesh_segmented_access_lower_transport_layer_parameters ,contw 
+0x3ecf 013464 call memcpy_fast 
+0x3ed0 013465 fetch 1 ,mem_mesh_message_transport_head 
+0x3ed1 013466 set1 transport_head_bit_seg ,pdata 
+0x3ed2 013467 store 1 ,mem_mesh_segmented_access_lower_transport_layer_head 
+0x3ed3 013468 branch ali_mesh_network_layer_send_access_message 
+:      013473 ali_mesh_model_layer_check_model_message_opcode:
+0x3ed4 013474 fetch 1 ,mem_mesh_module_message_opcode 
+:      013475 ali_mesh_model_layer_check_generic_onoff_message_opcde:
+0x3ed5 013476 beq mesh_module_message_opcode_generic_onoff_get_no_head ,ali_mesh_model_layer_message_opcode_generic_onoff_get 
+0x3ed6 013477 beq mesh_module_message_opcode_generic_onoff_set_no_head ,ali_mesh_model_layer_message_opcde_generic_onoff_set 
+0x3ed7 013478 beq mesh_module_message_opcode_scene_recall_no_head ,ali_mesh_model_layer_message_opcde_scene_recall 
+0x3ed8 013479 beq mesh_module_message_opcode_light_lightness_set_no_head ,ali_mesh_model_layer_message_opcde_light_lightness_set 
+0x3ed9 013480 beq mesh_module_message_opcode_light_ctl_set_no_head ,ali_mesh_model_layer_message_opcde_light_ctl_set 
+0x3eda 013481 rtn 
+:      013484 ali_mesh_model_layer_message_opcode_generic_onoff_get:
+0x3edb 013485 arg ali_mesh_model_layer_message_opcode_generic_onoff_get_cb ,regc 
+0x3edc 013486 branch ali_mesh_more_element_check_element_address 
+:      013487 ali_mesh_model_layer_message_opcode_generic_onoff_get_cb:
+0x3edd 013490 fetch 2 ,mem_mesh_cb_generic_onoff_get 
+0x3ede 013491 call callback_func 
+0x3edf 013492 store 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+0x3ee0 013493 branch ali_mesh_access_layer_send_generic_onoff_status 
+:      013496 ali_mesh_model_layer_message_opcde_generic_onoff_set:
+0x3ee1 013497 arg ali_mesh_model_layer_message_opcde_generic_onoff_set_cb ,regc 
+0x3ee2 013498 branch ali_mesh_more_element_check_element_address 
+:      013499 ali_mesh_model_layer_message_opcde_generic_onoff_set_cb:
+0x3ee3 013500 call ali_mesh_access_layer_send_generic_onoff_status 
+0x3ee4 013501 fetch 2 ,mem_mesh_cb_generic_onoff_set 
+0x3ee5 013502 branch callback_func 
+:      013506 ali_mesh_model_layer_message_opcde_scene_recall:
+0x3ee6 013507 call ali_mesh_access_layer_send_scene_status 
+0x3ee7 013508 fetch 2 ,mem_mesh_cb_scene_recall 
+0x3ee8 013509 branch callback_func 
+:      013512 ali_mesh_model_layer_message_opcde_light_lightness_set:
+0x3ee9 013513 fetch 2 ,mem_mesh_light_lightness_set_payload_lightness 
+0x3eea 013514 call ali_mesh_model_layer_message_calc_lightness 
+0x3eeb 013515 store 1 ,mem_mesh_light_lightness_calc_lightness 
+0x3eec 013516 call ali_mesh_access_layer_send_light_lightness_status 
+0x3eed 013517 fetch 2 ,mem_mesh_cb_light_lightness_set 
+0x3eee 013518 branch callback_func 
+:      013521 ali_mesh_model_layer_message_opcde_light_ctl_set:
+0x3eef 013522 fetch 2 ,mem_mesh_last_ctl_temperature 
+0x3ef0 013523 fetcht 2 ,mem_mesh_ctl_temperature 
+0x3ef1 013524 isub temp ,null 
+0x3ef2 013525 rtn zero 
+0x3ef3 013527 fetch 2 ,mem_mesh_ctl_temperature 
+0x3ef4 013528 call ali_mesh_model_layer_message_calc_temperature 
+0x3ef5 013529 store 1 ,mem_mesh_ctl_calc_temperature 
+0x3ef6 013531 fetch 2 ,mem_mesh_ctl_temperature 
+0x3ef7 013532 store 2 ,mem_mesh_last_ctl_temperature 
+0x3ef8 013533 fetch 2 ,mem_mesh_cb_light_lightness_get 
+0x3ef9 013534 call callback_func 
+0x3efa 013535 storet 2 ,mem_mesh_ctl_lightness 
+0x3efb 013536 call ali_mesh_access_layer_send_light_ctl_stauts 
+0x3efc 013537 fetch 2 ,mem_mesh_cb_light_ctl_set 
+0x3efd 013538 branch callback_func 
+:      013543 ali_mesh_model_layer_message_calc_lightness:
+0x3efe 013544 rtn blank 
+0x3eff 013545 mul32 pdata ,ali_mesh_lightness_level ,pdata 
+0x3f00 013546 arg ali_mesh_lightness_max ,temp 
+0x3f01 013547 idiv temp 
+0x3f02 013548 call wait_div_end 
+0x3f03 013549 remainder temp 
+0x3f04 013550 rshift8 temp ,temp 
+0x3f05 013551 quotient pdata 
+0x3f06 013552 sub temp ,0xff ,null 
+0x3f07 013553 nrtn zero 
+0x3f08 013554 pincrease 1 
+0x3f09 013555 rtn 
+:      013560 ali_mesh_model_layer_message_calc_actual_lightness:
+0x3f0a 013561 arg ali_mesh_lightness_max ,pdata 
+0x3f0b 013562 imul32 temp ,pdata 
+0x3f0c 013563 div pdata ,ali_mesh_lightness_level 
+0x3f0d 013564 call wait_div_end 
+0x3f0e 013565 quotient temp 
+0x3f0f 013566 rtn 
+:      013570 ali_mesh_model_layer_message_calc_temperature:
+0x3f10 013571 arg ali_mesh_temperature_min ,temp 
+0x3f11 013572 isub temp ,rega 
+0x3f12 013573 call ali_mesh_model_layer_message_calc_temperature_k 
+0x3f13 013574 copy rega ,pdata 
+0x3f14 013575 idiv temp 
+0x3f15 013576 call wait_div_end 
+0x3f16 013577 quotient pdata 
+0x3f17 013578 rtn 
+:      013583 ali_mesh_model_layer_message_calc_actual_temperature:
+0x3f18 013584 copy temp ,rega 
+0x3f19 013585 call ali_mesh_model_layer_message_calc_temperature_k 
+0x3f1a 013586 copy rega ,pdata 
+0x3f1b 013587 imul32 temp ,pdata 
+0x3f1c 013588 arg ali_mesh_temperature_min ,temp 
+0x3f1d 013589 iadd temp ,temp 
+0x3f1e 013590 rtn 
+:      013592 ali_mesh_model_layer_message_calc_temperature_k:
+0x3f1f 013593 setarg ali_mesh_temperature_max 
+0x3f20 013594 arg ali_mesh_temperature_min ,temp 
+0x3f21 013595 isub temp ,pdata 
+0x3f22 013596 div pdata ,ali_mesh_temperature_level 
+0x3f23 013597 call wait_div_end 
+0x3f24 013598 quotient temp 
+0x3f25 013599 rtn 
+:      013604 ali_mesh_more_element_check_unicast_address:
+0x3f26 013605 arg 0 ,queue 
+0x3f27 013606 fetchr loopcnt ,1 ,mem_mesh_element_number 
+0x3f28 013607 call disable_user 
+0x3f29 013608 fetch 2 ,mem_mesh_unicast_address 
+:      013609 ali_mesh_more_element_check_unicast_address_loop:
+0x3f2a 013610 isub temp ,null 
+0x3f2b 013611 branch ali_mesh_more_element_found_unicast_address_element ,zero 
+0x3f2c 013612 byteswap pdata ,pdata 
+0x3f2d 013613 pincrease 1 
+0x3f2e 013614 byteswap pdata ,pdata 
+0x3f2f 013615 increase 1 ,queue 
+0x3f30 013616 loop ali_mesh_more_element_check_unicast_address_loop 
+0x3f31 013617 rtn 
+:      013619 ali_mesh_more_element_found_unicast_address_element:
+0x3f32 013620 jam 0 ,mem_mesh_receive_group_address 
+0x3f33 013621 storer queue ,1 ,mem_mesh_receive_element_number 
+0x3f34 013622 call ali_mesh_more_element_calc_queue_address 
+0x3f35 013623 branch enable_user 
+:      013626 ali_mesh_more_element_check_group_address:
+0x3f36 013627 arg 0 ,queue 
+0x3f37 013628 arg 0 ,regc 
+0x3f38 013629 call mesh_get_element_info_config 
+0x3f39 013630 call disable_user 
+:      013631 ali_mesh_more_element_check_group_address_loop:
+0x3f3a 013632 fetch 2 ,mem_mesh_core_feature 
+0x3f3b 013633 bbit0 mesh_feature_disable_subscription ,ali_mesh_more_element_check_subscription_address 
+0x3f3c 013634 ifetch 2 ,rega 
+0x3f3d 013635 isub temp ,null 
+0x3f3e 013636 call ali_mesh_more_element_found_group_address_element ,zero 
+:      013637 ali_mesh_more_element_check_address_common:
+0x3f3f 013638 copy regb ,pdata 
+0x3f40 013639 iadd rega ,rega 
+0x3f41 013640 increase 1 ,queue 
+0x3f42 013641 loop ali_mesh_more_element_check_group_address_loop 
+0x3f43 013642 copy regc ,pdata 
+0x3f44 013643 rtn blank 
+0x3f45 013644 store 1 ,mem_mesh_receive_group_address 
+0x3f46 013645 branch enable_user 
+:      013647 ali_mesh_more_element_found_group_address_element:
+0x3f47 013648 qset1 regc 
+0x3f48 013649 rtn 
+:      013651 ali_mesh_more_element_check_subscription_address:
+0x3f49 013652 add rega ,element_device_subscription_label ,contr 
+0x3f4a 013653 arg subscription_max_count ,alarm 
+:      013654 ali_mesh_more_element_check_subscription_address_loop:
+0x3f4b 013655 ifetch 2 ,contr 
+0x3f4c 013656 isub temp ,null 
+0x3f4d 013657 branch ali_mesh_more_element_found_subscription_address_element ,zero 
+0x3f4e 013658 increase -1 ,alarm 
+0x3f4f 013659 branch ali_mesh_more_element_check_address_common ,zero 
+0x3f50 013660 branch ali_mesh_more_element_check_subscription_address_loop 
+:      013662 ali_mesh_more_element_found_subscription_address_element:
+0x3f51 013663 call ali_mesh_more_element_found_group_address_element 
+0x3f52 013664 branch ali_mesh_more_element_check_address_common 
+:      013666 ali_mesh_more_element_check_element_address:
+0x3f53 013667 arg 0 ,queue 
+0x3f54 013668 fetch 1 ,mem_mesh_receive_group_address 
+0x3f55 013669 branch ali_mesh_more_element_check_element_address_no_group_address ,blank 
+0x3f56 013670 copy pdata ,regb 
+0x3f57 013671 fetchr loopcnt ,1 ,mem_mesh_element_number 
+:      013672 ali_mesh_more_element_check_element_address_loop:
+0x3f58 013673 storer queue ,1 ,mem_mesh_receive_element_number 
+0x3f59 013675 qisolate1 regb 
+0x3f5a 013676 call ali_mesh_more_element_check_element_address_no_group_address ,true 
+0x3f5b 013677 fetchr queue ,1 ,mem_mesh_receive_element_number 
+0x3f5c 013678 increase 1 ,queue 
+0x3f5d 013679 loop ali_mesh_more_element_check_element_address_loop 
+0x3f5e 013680 rtn 
+:      013682 ali_mesh_more_element_check_element_address_no_group_address:
+0x3f5f 013683 call ali_mesh_more_element_push_stack 
+0x3f60 013684 call ali_mesh_more_element_calc_queue_address 
+0x3f61 013685 copy regc ,pdata 
+0x3f62 013686 call callback_func 
+0x3f63 013687 branch ali_mesh_more_element_pop_stack 
+:      013689 ali_mesh_more_element_push_stack:
+0x3f64 013690 storer loopcnt ,2 ,mem_mesh_loopcnt_tmep 
+0x3f65 013691 storer rega ,2 ,mem_mesh_rega_temp 
+0x3f66 013692 storer regb ,2 ,mem_mesh_regb_temp 
+0x3f67 013693 storer regc ,2 ,mem_mesh_regc_temp 
+0x3f68 013694 rtn 
+:      013696 ali_mesh_more_element_pop_stack:
+0x3f69 013697 fetchr loopcnt ,2 ,mem_mesh_loopcnt_tmep 
+0x3f6a 013698 fetchr rega ,2 ,mem_mesh_rega_temp 
+0x3f6b 013699 fetchr regb ,2 ,mem_mesh_regb_temp 
+0x3f6c 013700 fetchr regc ,2 ,mem_mesh_regc_temp 
+0x3f6d 013701 rtn 
+:      013704 ali_mesh_more_element_calc_queue_address:
+0x3f6e 013705 bpatchx patch35_6 ,mem_patch35 
+0x3f6f 013706 fetch 2 ,mem_mesh_unicast_address 
+0x3f70 013707 byteswap pdata ,pdata 
+0x3f71 013708 iadd queue ,pdata 
+0x3f72 013709 byteswap pdata ,pdata 
+0x3f73 013710 store 2 ,mem_mesh_send_message_src 
+0x3f74 013711 call mesh_get_element_info_config 
+0x3f75 013712 copy queue ,pdata 
+0x3f76 013713 imul32 regb ,pdata 
+0x3f77 013714 iadd rega ,rega 
+0x3f78 013715 add rega ,element_device_upper_queue_ptr ,contr 
+0x3f79 013716 ifetch 2 ,contr 
+0x3f7a 013717 store ,2 ,mem_queue_ptr 
+0x3f7b 013718 rtn 
+:      013723 ali_mesh_receive_adtype_mesh_message:
+0x3f7c 013724 jam mesh_message_tmall ,mem_mesh_network_packet_type 
+:      013727 ali_mesh_network_layer_recevice_network_pdu:
+0x3f7d 013728 sub temp ,mesh_network_packet_min_length ,null 
+0x3f7e 013729 rtn positive 
+0x3f7f 013730 sub temp ,mesh_network_packet_max_length ,null 
+0x3f80 013731 nrtn positive 
+0x3f81 013732 bpatchx patch35_7 ,mem_patch35 
+0x3f82 013733 call ali_mesh_network_store_in_mem 
+0x3f83 013734 call ali_mesh_network_layer_check_dup 
+0x3f84 013735 nrtn user 
+0x3f85 013736 call ali_mesh_network_layer_check_nid_ivi 
+0x3f86 013737 nrtn user 
+0x3f87 013738 call ali_mesh_encrypt_obfuscation_deceypt_recevie_message 
+0x3f88 013739 call ali_mesh_network_layer_check_msg 
+0x3f89 013740 nrtn user 
+0x3f8a 013741 call ali_mesh_network_layer_store_proxy_unicast_address 
+0x3f8b 013743 branch ali_mesh_network_layer_recevice_network_pdu_decrypt_netmic32 
+:      013745 ali_mesh_network_layer_check_dup:
+0x3f8c 013746 call enable_user 
+0x3f8d 013747 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x3f8e 013748 arg mem_mesh_message_nid + 3 ,contr 
+0x3f8f 013749 iadd contr ,contr 
+0x3f90 013750 ifetch 4 ,contr 
+0x3f91 013751 ifetcht 4 ,contr 
+0x3f92 013752 ixor temp ,temp 
+0x3f93 013753 arg 16 ,loopcnt 
+0x3f94 013754 arg mem_mesh_network_dup_cache ,contr 
+:      013755 ali_mesh_network_layer_check_dup_loop:
+0x3f95 013756 ifetch 4 ,contr 
+0x3f96 013757 isub temp ,null 
+0x3f97 013758 branch disable_user ,zero 
+0x3f98 013759 loop ali_mesh_network_layer_check_dup_loop 
+0x3f99 013760 fetch 1 ,mem_mesh_network_dup_cache_next 
+0x3f9a 013761 pincrease 4 
+0x3f9b 013762 arg mem_mesh_network_dup_cache ,contw 
+0x3f9c 013763 iadd contw ,contw 
+0x3f9d 013764 istoret 4 ,contw 
+0x3f9e 013765 and pdata ,0x3f ,pdata 
+0x3f9f 013766 store 1 ,mem_mesh_network_dup_cache_next 
+0x3fa0 013767 rtn 
+:      013769 ali_mesh_network_layer_check_msg:
+0x3fa1 013770 call enable_user 
+0x3fa2 013771 fetcht 5 ,mem_mesh_message_seq 
+0x3fa3 013772 arg 16 ,loopcnt 
+0x3fa4 013773 arg mem_mesh_network_msg_cache ,contr 
+:      013774 ali_mesh_network_layer_check_msg_loop:
+0x3fa5 013775 ifetch 5 ,contr 
+0x3fa6 013776 isub temp ,null 
+0x3fa7 013777 branch disable_user ,zero 
+0x3fa8 013778 loop ali_mesh_network_layer_check_msg_loop 
+0x3fa9 013779 fetch 1 ,mem_mesh_network_msg_cache_next 
+0x3faa 013780 pincrease 1 
+0x3fab 013781 and pdata ,0x0f ,pdata 
+0x3fac 013782 store 1 ,mem_mesh_network_msg_cache_next 
+0x3fad 013783 mul32 pdata ,5 ,pdata 
+0x3fae 013784 arg mem_mesh_network_msg_cache ,contw 
+0x3faf 013785 iadd contw ,contw 
+0x3fb0 013786 istoret 5 ,contw 
+0x3fb1 013787 rtn 
+:      013789 ali_mesh_network_layer_store_proxy_unicast_address:
+0x3fb2 013790 fetch 1 ,mem_mesh_network_packet_type 
+0x3fb3 013791 rtneq mesh_message_tmall 
+0x3fb4 013792 fetch 2 ,mem_mesh_message_src 
+0x3fb5 013793 store 2 ,mem_mesh_network_proxy_unicast_address 
+0x3fb6 013794 rtn 
+:      013806 ali_mesh_network_layer_recevice_network_pdu_decrypt_netmic32:
+0x3fb7 013807 call ali_mesh_network_load_network_nonce_and_encryptionkey 
+0x3fb8 013808 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x3fb9 013809 arg mem_mesh_message_dst ,temp 
+0x3fba 013810 call ali_ccm_decrypt 
+0x3fbb 013811 nrtn zero 
+:      013814 ali_mesh_network_layer_recevice_network_pdu_check_dst:
+0x3fbc 013815 bpatchx patch36_0 ,mem_patch36 
+0x3fbd 013816 fetch 1 ,mem_mesh_network_packet_type 
+0x3fbe 013817 sub pdata ,mesh_message_proxy ,null 
+0x3fbf 013818 call ali_mesh_white_filter_check ,zero 
+0x3fc0 013819 fetcht 2 ,mem_mesh_message_dst 
+0x3fc1 013820 call ali_mesh_more_element_check_unicast_address 
+0x3fc2 013821 call ali_mesh_more_found_unicast_address_element ,user 
+0x3fc3 013822 branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,user 
+0x3fc4 013823 arg 29 ,loopcnt 
+0x3fc5 013824 arg mem_mesh_message_nid_temp ,contw 
+0x3fc6 013825 arg mem_mesh_message_nid ,contr 
+0x3fc7 013826 call memcpy 
+0x3fc8 013827 call ali_mesh_network_layer_recevice_network_pdu_check_dst_group_address 
+0x3fc9 013828 arg 29 ,loopcnt 
+0x3fca 013829 arg mem_mesh_message_nid_temp ,contr 
+0x3fcb 013830 arg mem_mesh_message_nid ,contw 
+0x3fcc 013831 call memcpy 
+0x3fcd 013832 fetch 2 ,mem_mesh_cb_network_relay 
+0x3fce 013833 branch callback_func 
+:      013835 ali_mesh_more_found_unicast_address_element:
+0x3fcf 013836 jam 1 ,mem_mesh_receive_message_count 
+0x3fd0 013837 fetch 2 ,mem_mesh_send_message_src 
+0x3fd1 013838 store 2 ,mem_mesh_receive_message_first_unicast_address 
+0x3fd2 013839 rtn 
+:      013841 ali_mesh_network_layer_recevice_network_pdu_check_dst_group_address:
+0x3fd3 013842 call ali_mesh_more_element_check_group_address 
+0x3fd4 013843 branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,user 
+0x3fd5 013844 jam 0xff ,mem_mesh_receive_group_address 
+0x3fd6 013845 setarg group_address_0xcfff_little_endian 
+0x3fd7 013846 isub temp ,null 
+0x3fd8 013847 branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,zero 
+0x3fd9 013848 setarg group_address_0xffff_little_endian 
+0x3fda 013849 isub temp ,null 
+0x3fdb 013850 branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,zero 
+0x3fdc 013851 rtn 
+:      013854 ali_mesh_network_layer_check_nid_ivi:
+0x3fdd 013855 call disable_user 
+0x3fde 013856 fetcht 1 ,mem_mesh_message_nid 
+0x3fdf 013857 rshift4 temp ,pdata 
+0x3fe0 013858 rshift3 pdata ,pdata 
+0x3fe1 013859 fetchr rega ,1 ,mem_mesh_iv_index + 3 
+0x3fe2 013860 and rega ,0x01 ,rega 
+0x3fe3 013861 isub rega ,null 
+0x3fe4 013862 nrtn zero 
+0x3fe5 013863 and temp ,0x7f ,temp 
+0x3fe6 013864 fetch 1 ,mem_k2_nid 
+0x3fe7 013865 isub temp ,null 
+0x3fe8 013866 nrtn zero 
+0x3fe9 013867 branch enable_user 
+:      013871 ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq:
+0x3fea 013872 arg mem_mesh_tmall_cache_start ,rega 
+0x3feb 013873 arg cache_space_num ,loopcnt 
+:      013874 ali_mesh_network_layer_raverse_src_seq_cache:
+0x3fec 013875 fetcht 2 ,mem_mesh_message_src 
+0x3fed 013876 ifetch 2 ,rega 
+0x3fee 013878 branch ali_mesh_network_layer_find_empty_space ,blank 
+0x3fef 013880 isub temp ,null 
+0x3ff0 013882 branch ali_mesh_network_layer_find_src_space ,zero 
+0x3ff1 013883 increase cache_space_size ,rega 
+0x3ff2 013884 loop ali_mesh_network_layer_raverse_src_seq_cache 
+0x3ff3 013885 arg mem_mesh_tmall_cache_start ,rega 
+:      013887 ali_mesh_network_layer_find_empty_space:
+0x3ff4 013888 istoret 2 ,rega 
+:      013889 ali_mesh_network_layer_find_src_space:
+0x3ff5 013890 storet 2 ,mem_mesh_send_message_dst 
+0x3ff6 013892 add rega ,2 ,regc 
+0x3ff7 013893 ifetch 3 ,regc 
+0x3ff8 013894 store 3 ,mem_mesh_last_message_seq 
+0x3ff9 013895 branch ali_mesh_network_layer_recevice_network_pdu_check_seq_legal 
+:      013899 ali_mesh_network_layer_recevice_network_pdu_check_seq_legal:
+0x3ffa 013901 call ali_mesh_inverse_seq 
+0x3ffb 013903 fetch 3 ,mem_mesh_last_message_seq 
+0x3ffc 013904 fetcht 3 ,mem_mesh_message_seq 
+0x3ffd 013905 isub temp ,null 
+0x3ffe 013906 rtn positive 
+0x3fff 013907 istoret 3 ,regc 
+0x4000 013908 call ali_mesh_inverse_seq 
+0x4001 013909 branch ali_mesh_lower_transport_layer_receive_lower_transport_pdu 
+:      013911 ali_mesh_inverse_seq:
+0x4002 013912 arg mem_mesh_message_seq ,rega 
+0x4003 013913 arg 3 ,loopcnt 
+0x4004 013914 branch inverse_data 
+:      013918 ali_mesh_network_load_network_nonce_and_encryptionkey:
+0x4005 013919 call ali_mesh_network_layer_load_network_nonce 
+:      013920 ali_mesh_upper_transport_layer_load_encryptionkey:
+0x4006 013921 arg mem_k2_encryptionkey ,contr 
+0x4007 013922 branch load_key 
+:      013923 ali_mesh_network_layer_load_network_nonce:
+0x4008 013924 arg mem_mesh_network_nonce ,contw 
+0x4009 013925 setarg network_nonce 
+0x400a 013926 istore 1 ,contw 
+0x400b 013927 fetch 6 ,mem_mesh_message_ttl 
+0x400c 013928 istore 8 ,contw 
+0x400d 013929 branch mesh_generate_nonce 
+:      013932 ali_mesh_network_store_in_mem:
+0x400e 013933 add temp ,-12 ,pdata 
+0x400f 013943 store 1 ,mem_mesh_message_transport_netmic_length 
+0x4010 013944 arg 29 ,loopcnt 
+0x4011 013945 arg mem_mesh_message_nid ,contw 
+0x4012 013946 call clear_mem 
+0x4013 013947 add temp ,-1 ,loopcnt 
+0x4014 013948 arg mem_mesh_message_nid ,contw 
+0x4015 013949 branch memcpy_fast 
+:      013951 ali_mesh_network_layer_relay_access_message:
+0x4016 013952 call ali_mesh_network_layer_init_queue_param 
+0x4017 013953 call ali_mesh_network_layer_check_relay_states 
+0x4018 013954 nrtn user 
+0x4019 013955 call ali_mesh_network_layer_encrypt_relay_package 
+0x401a 013956 jam adv_relay_mesh_message_duration ,mem_mesh_queue_ele_duration 
+0x401b 013957 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x401c 013958 add pdata ,13 ,temp 
+0x401d 013959 storet 1 ,mem_mesh_queue_ele_len 
+0x401e 013960 increase -1 ,temp 
+0x401f 013961 istoret 1 ,contw 
+0x4020 013962 setarg gap_adtype_mesh_message 
+0x4021 013963 istore 1 ,contw 
+0x4022 013964 add temp ,-1 ,loopcnt 
+0x4023 013965 fetch 7 ,mem_mesh_message_nid 
+0x4024 013966 arg mem_mesh_message_nid ,contr 
+0x4025 013967 call memcpy 
+0x4026 013968 arg mem_mesh_queue_ele_temp ,rega 
+0x4027 013969 call queue_push 
+0x4028 013970 call ali_mesh_network_layer_white_list_fliter 
+0x4029 013971 nrtn user 
+0x402a 013972 branch ali_mesh_bearer_layer_gatt_send_packet_by_network_layer 
+:      013974 ali_mesh_network_layer_white_list_fliter:
+0x402b 013975 fetcht 2 ,mem_mesh_message_dst_temp 
+:      013976 ali_mesh_network_layer_white_list_fliter_check:
+0x402c 013977 call disable_user 
+0x402d 013978 fetch 1 ,mem_mesh_white_list_num 
+0x402e 013979 rtn blank 
+0x402f 013980 iforce loopcnt 
+0x4030 013981 arg mem_mesh_white_list ,contr 
+:      013982 ali_mesh_network_layer_white_list_fliter_check_loop:
+0x4031 013983 ifetch 2 ,contr 
+0x4032 013984 isub temp ,null 
+0x4033 013985 branch enable_user ,zero 
+0x4034 013986 loop ali_mesh_network_layer_white_list_fliter_check_loop 
+0x4035 013987 rtn 
+:      013990 ali_mesh_network_layer_check_relay_states:
+0x4036 013991 call disable_user 
+0x4037 013992 fetch 1 ,mem_mesh_network_packet_type 
+0x4038 013993 rtneq mesh_message_app 
+0x4039 013994 fetch 2 ,mem_mesh_core_feature 
+0x403a 013995 rtnbit1 mesh_feature_disable_relay 
+0x403b 013996 fetch 1 ,mem_mesh_provisioned_flag 
+0x403c 013997 rtnne paired_status 
+0x403d 013998 fetcht 2 ,mem_mesh_message_src 
+0x403e 013999 call ali_mesh_more_element_check_unicast_address 
+0x403f 014000 branch disable_user ,user 
+0x4040 014001 call ali_mesh_network_layer_check_network_mic_cache 
+0x4041 014002 nrtn user 
+0x4042 014003 fetch 1 ,mem_mesh_message_ttl 
+0x4043 014004 branch disable_user ,blank 
+0x4044 014005 pincrease -1 
+0x4045 014006 branch disable_user ,blank 
+0x4046 014007 store 1 ,mem_mesh_message_ttl 
+0x4047 014008 setarg mem_mesh_network_relay_queue 
+0x4048 014009 store 2 ,mem_queue_ptr 
+0x4049 014010 branch enable_user 
+:      014012 ali_mesh_network_layer_encrypt_relay_package:
+0x404a 014013 call ali_mesh_network_load_network_nonce_and_encryptionkey 
+0x404b 014014 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x404c 014015 arg mem_mesh_message_dst ,temp 
+0x404d 014016 call ali_ccm_encrypt 
+0x404e 014017 branch ali_mesh_encrypt_obfuscation_deceypt_recevie_message 
+:      014021 ali_mesh_network_layer_check_network_mic_cache:
+0x404f 014022 setarg mem_mesh_transport_message_mic_cache 
+0x4050 014023 store 2 ,mem_mesh_mic_cache_ptr 
+0x4051 014024 branch ali_mesh_base_adt_cache 
+:      014028 ali_mesh_network_layer_send_access_message:
+0x4052 014029 bpatchx patch36_1 ,mem_patch36 
+0x4053 014030 call ali_mesh_network_layer_send_access_message_encrypt_netmic 
+0x4054 014031 call ali_mesh_network_layer_send_access_message_encrypt_obfuscation 
+0x4055 014032 branch ali_mesh_bearer_layer_send_packet_by_network_layer 
+:      014037 ali_mesh_network_layer_send_access_message_encrypt_netmic:
+0x4056 014038 fetch 1 ,mem_mesh_lower_transport_layer_payload_len 
+0x4057 014039 add pdata ,2 ,rega 
+0x4058 014040 pincrease 4 
+0x4059 014041 store 1 ,mem_mesh_lower_transport_layer_payload_len 
+0x405a 014042 arg mem_mesh_send_upper_layer_dst ,temp 
+0x405b 014043 branch ali_mesh_network_layer_encrypt_by_network_nonce 
+:      014048 ali_mesh_network_layer_encrypt_by_network_nonce:
+0x405c 014049 call ali_mesh_network_load_network_nonce_and_encryptionkey 
+0x405d 014050 copy rega ,pdata 
+0x405e 014051 branch ali_ccm_encrypt 
+:      014054 ali_mesh_network_layer_send_access_message_encrypt_obfuscation:
+0x405f 014055 branch ali_mesh_encrypt_obfuscation_deceypt_send_message 
+:      014058 ali_mesh_network_layer_check_gatt_relay_packet:
+0x4060 014059 call ali_mesh_network_layer_init_gatt_queue_param 
+0x4061 014060 call queue_empty 
+0x4062 014061 rtn blank 
+0x4063 014062 call le_fifo_check_nearly_full 
+0x4064 014063 nrtn blank 
+0x4065 014064 arg mem_mesh_queue_ele_temp ,rega 
+0x4066 014065 call queue_pop 
+0x4067 014066 nrtn user 
+0x4068 014067 branch ali_mesh_send_ble_data 
+:      014071 mesh_generate_nonce:
+0x4069 014072 fetch 4 ,mem_mesh_iv_index 
+0x406a 014073 istore 4 ,contw 
+0x406b 014074 add contw ,-13 ,pdata 
+0x406c 014075 store 2 ,mem_nonce_ptr 
+0x406d 014076 rtn 
+:      014080 ali_mesh_network_layer_init_queue_param:
+0x406e 014081 setarg mem_mesh_network_relay_queue_each_size 
+0x406f 014082 store 2 ,mem_queue_ptr 
+0x4070 014083 rtn 
+:      014085 ali_mesh_network_layer_queue_init:
+0x4071 014086 call ali_mesh_network_layer_init_queue_param 
+0x4072 014087 branch queue_init 
+:      014090 ali_mesh_ble_adv:
+0x4073 014091 call le_set_config_more_data 
+0x4074 014092 fetch 1 ,mem_mesh_provisioned_flag 
+0x4075 014093 beq unprovisioned_beacon_status ,ali_mesh_ble_adv_mesh_beacon 
+0x4076 014094 beq paired_status ,ali_mesh_ble_adv_network_id 
+0x4077 014095 beq wait_receive_appkey ,ali_mesh_ble_adv_network_id 
+0x4078 014096 rtn 
+:      014098 ali_mesh_ble_adv_network_id:
+0x4079 014100 setsect 0 ,0x10214 
+0x407a 014101 setsect 1 ,0xc080 
+0x407b 014102 setsect 2 ,0x28030 
+0x407c 014103 setsect 3 ,0x3060 
+0x407d 014104 store 9 ,mem_le_adv_data_len 
+0x407e 014105 setarg 0x182816 
+0x407f 014106 istore 4 ,contw 
+0x4080 014107 fetch 8 ,mem_mesh_network_id 
+0x4081 014108 istore 8 ,contw 
+0x4082 014109 rtn 
+:      014111 ali_mesh_ble_adv_mesh_beacon:
+0x4083 014112 call ali_mesh_config_device_uuid_by_three_tuple 
+0x4084 014114 setsect 0 ,0x1021d 
+0x4085 014115 setsect 1 ,0xc080 
+0x4086 014116 setsect 2 ,0x27030 
+0x4087 014117 setsect 3 ,0x5460 
+0x4088 014118 store 9 ,mem_le_adv_data_len 
+0x4089 014119 setarg 0x182716 
+0x408a 014120 istore 3 ,contw 
+0x408b 014121 arg mem_mesh_device_uuid ,contr 
+0x408c 014122 call memcpy16 
+0x408d 014123 fetch 2 ,mem_mesh_oob_information 
+0x408e 014124 istore 2 ,contw 
+0x408f 014125 rtn 
+:      014131 mesh_le_receive_data:
+0x4090 014132 bpatchx patch36_2 ,mem_patch36 
+0x4091 014133 fetch 2 ,mem_le_att_handle 
+0x4092 014134 beq mesh_proxy_data_in_handle ,ali_mesh_receive_ble_data_proxy_data_in 
+0x4093 014135 beq mesh_provisioning_data_in_handle ,ali_mesh_receive_ble_data_provisioning_data_in 
+0x4094 014136 rtn 
+:      014138 ali_mesh_receive_ble_data_proxy_data_in:
+0x4095 014139 copy regb ,temp 
+0x4096 014140 ifetch 1 ,rega 
+0x4097 014141 beq mesh_proxy_message_type_network_pdu ,ali_mesh_network_layer_recevice_network_pdu_proxy_control 
+0x4098 014142 beq mesh_proxy_message_type_proxy_configuration ,ali_mesh_network_layer_recevice_proxy_configuration_messages 
+0x4099 014143 rtn 
+:      014144 ali_mesh_network_layer_recevice_proxy_configuration_messages:
+0x409a 014152 call ali_mesh_network_store_in_mem 
+0x409b 014153 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x409c 014154 pincrease -4 
+0x409d 014155 store 1 ,mem_mesh_message_transport_netmic_length 
+0x409e 014156 call ali_mesh_network_layer_check_nid_ivi 
+0x409f 014157 nrtn user 
+0x40a0 014158 call ali_mesh_encrypt_obfuscation_deceypt_recevie_message 
+0x40a1 014159 fetch 1 ,mem_mesh_message_ttl 
+0x40a2 014160 bbit1 bit_ctl ,ali_mesh_recevice_proxy_configuration_messages_decrypt 
+0x40a3 014161 rtn 
+:      014163 ali_mesh_recevice_proxy_configuration_messages_decrypt:
+0x40a4 014164 call ali_mesh_network_load_proxy_nonce_and_encryptionkey 
+0x40a5 014165 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x40a6 014166 arg mem_mesh_message_dst ,temp 
+0x40a7 014167 call ali_ccm_decrypt_64bit 
+0x40a8 014168 nrtn zero 
+0x40a9 014171 call ali_mesh_white_filter_check 
+0x40aa 014172 fetch 1 ,mem_mesh_message_proxy_transportpdu_opcode 
+0x40ab 014173 beq proxy_opcode_set_filter_type ,ali_mesh_proxy_configuration_message_set_filter_type 
+0x40ac 014174 beq proxy_opcode_add_addr_to_filter ,ali_mesh_proxy_configuration_message_add_addr_to_filter 
+0x40ad 014175 rtn 
+:      014177 ali_mesh_proxy_configuration_message_add_addr_to_filter:
+0x40ae 014178 fetchr loopcnt ,1 ,mem_mesh_message_transport_netmic_length 
+0x40af 014179 increase -3 ,loopcnt 
+0x40b0 014181 rshift loopcnt ,pdata 
+0x40b1 014182 fetcht 2 ,mem_mesh_white_list_num 
+0x40b2 014183 iadd temp ,pdata 
+0x40b3 014184 sub pdata ,8 ,null 
+0x40b4 014185 nrtn positive 
+0x40b5 014186 store 2 ,mem_mesh_white_list_num 
+0x40b6 014187 arg mem_mesh_white_list ,contw 
+0x40b7 014188 lshift temp ,pdata 
+0x40b8 014189 iadd contw ,contw 
+0x40b9 014190 arg mem_mesh_message_proxy_transportpdu_parameters ,contr 
+0x40ba 014191 call memcpy 
+0x40bb 014192 fetch 1 ,mem_mesh_addressed_filter_type 
+0x40bc 014193 branch ali_mesh_proxy_configuration_message_filter_status 
+:      014195 ali_mesh_proxy_configuration_message_set_filter_type:
+0x40bd 014196 ifetch 1 ,contr 
+0x40be 014197 store 1 ,mem_mesh_addressed_filter_type 
+:      014198 ali_mesh_proxy_configuration_message_filter_status:
+0x40bf 014199 store 1 ,mem_mesh_filter_status_message_filtertype 
+0x40c0 014200 fetch 2 ,mem_mesh_white_list_num 
+0x40c1 014201 byteswap pdata ,pdata 
+0x40c2 014202 store 2 ,mem_mesh_filter_status_message_listsize 
+0x40c3 014204 jam proxy_opcode_filter_status ,mem_mesh_filter_status_message_opcode 
+0x40c4 014206 fetch 9 ,mem_mesh_message_nid 
+0x40c5 014207 store 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+0x40c6 014208 fetch 2 ,mem_mesh_send_message_src 
+0x40c7 014209 store 2 ,mem_mesh_send_upper_layer_src 
+0x40c8 014211 call ali_mesh_upper_transport_layer_send_access_message_calc_seq 
+0x40c9 014212 call ali_mesh_upper_transport_layer_send_access_message_add_seq 
+0x40ca 014214 call ali_mesh_network_load_proxy_nonce_and_encryptionkey 
+0x40cb 014215 setarg 6 
+0x40cc 014216 arg mem_mesh_send_upper_layer_dst ,temp 
+0x40cd 014217 call ali_ccm_encrypt_64bit 
+0x40ce 014218 call ali_mesh_network_layer_send_access_message_encrypt_obfuscation 
+0x40cf 014221 arg 22 ,rega 
+0x40d0 014222 arg mesh_proxy_data_out_handle ,temp 
+0x40d1 014223 call le_att_malloc_tx_notify 
+0x40d2 014224 setarg mesh_proxy_message_type_proxy_configuration 
+0x40d3 014225 istore 1 ,contw 
+0x40d4 014226 arg mem_mesh_send_upper_layer_ivi_and_nid ,contr 
+0x40d5 014227 branch memcpy32 
+:      014229 ali_mesh_receive_ble_data_provisioning_data_in:
+0x40d6 014230 jam mesh_message_proxy ,mem_mesh_fast_pair_packet_type 
+0x40d7 014231 copy regb ,temp 
+0x40d8 014232 copy rega ,contr 
+0x40d9 014233 branch ali_mesh_receive_adtype_manufacturer_specific 
+:      014236 ali_mesh_network_load_proxy_nonce_and_encryptionkey:
+0x40da 014237 arg mem_mesh_proxy_nonce ,contw 
+0x40db 014238 setarg proxy_nonce 
+0x40dc 014239 istore 2 ,contw 
+0x40dd 014240 fetch 5 ,mem_mesh_message_seq 
+0x40de 014241 istore 7 ,contw 
+0x40df 014242 call mesh_generate_nonce 
+0x40e0 014244 branch ali_mesh_upper_transport_layer_load_encryptionkey 
+:      014246 ali_mesh_network_layer_recevice_network_pdu_proxy_control:
+0x40e1 014247 jam mesh_message_proxy ,mem_mesh_network_packet_type 
+0x40e2 014248 branch ali_mesh_network_layer_recevice_network_pdu 
+:      014251 ali_mesh_proxy_process_bb_event:
+0x40e3 014252 copy regc ,pdata 
+0x40e4 014253 beq bt_evt_le_disconnected ,mesh_ble_start_adv 
+0x40e5 014254 beq bt_evt_le_connected ,app_ble_conn_event 
+0x40e6 014255 rtn 
+:      014257 app_ble_conn_event:
+0x40e7 014258 branch ali_mesh_proxy_white_list_clear 
+:      014262 mesh_ble_start_adv:
+0x40e8 014263 setarg 0 
+0x40e9 014264 store 2 ,mem_mesh_network_proxy_unicast_address 
+0x40ea 014265 branch app_ble_start_adv 
+:      014267 ali_mesh_proxy_white_list_clear:
+0x40eb 014268 setarg 0 
+0x40ec 014269 store 2 ,mem_mesh_white_list_num 
+0x40ed 014270 arg mem_mesh_white_list ,contw 
+0x40ee 014271 arg 16 ,loopcnt 
+0x40ef 014272 branch memset0 
+:      014279 ali_mesh_send_ble_data:
+0x40f0 014281 call le_fifo_check_nearly_full 
+0x40f1 014282 nrtn blank 
+0x40f2 014284 fetch 1 ,mem_mesh_queue_ele_len 
+0x40f3 014285 add pdata ,-1 ,rega 
+0x40f4 014286 arg mesh_proxy_data_out_handle ,temp 
+0x40f5 014287 call le_att_malloc_tx_notify 
+0x40f6 014288 setarg mesh_proxy_message_type_network_pdu 
+0x40f7 014289 istore 1 ,contw 
+0x40f8 014290 arg mem_mesh_queue_ele_payload + 2 ,contr 
+0x40f9 014291 branch memcpy32 
+:      014293 ali_mesh_send_pairing_data:
+0x40fa 014294 fetch 1 ,mem_mesh_fast_pair_packet_type 
+0x40fb 014295 rtneq mesh_message_tmall 
+0x40fc 014296 fetch 2 ,mem_ui_state_map 
+0x40fd 014297 rtnbit0 ui_state_ble_connected 
+0x40fe 014298 call le_fifo_check_nearly_full 
+0x40ff 014299 nrtn blank 
+0x4100 014300 fetch 1 ,mem_mesh_adv_data_len 
+0x4101 014301 add pdata ,-5 ,rega 
+0x4102 014302 arg mesh_provisioning_data_out_handle ,temp 
+0x4103 014303 call le_att_malloc_tx_notify 
+0x4104 014304 arg mem_mesh_adv_data + 5 ,contr 
+0x4105 014305 branch memcpy32 
+:      014307 ali_mesh_white_filter_check:
+0x4106 014308 fetch 2 ,mem_mesh_white_list 
+0x4107 014309 nrtn blank 
+0x4108 014310 fetch 2 ,mem_mesh_message_src 
+0x4109 014311 store 2 ,mem_mesh_white_list 
+:      014312 ali_mesh_white_list_num_increase:
+0x410a 014313 fetch 2 ,mem_mesh_white_list_num 
+0x410b 014314 pincrease 1 
+0x410c 014315 store 2 ,mem_mesh_white_list_num 
+0x410d 014316 rtn 
+:      014319 sha_endian_swap2:
+0x410e 014320 ifetch 4 ,contr 
+0x410f 014321 force 4 ,rega 
+0x4110 014322 increase 3 ,contw 
+:      014323 sha_endian_loop:
+0x4111 014324 istore 1 ,contw 
+0x4112 014325 rshift8 pdata ,pdata 
+0x4113 014326 increase -2 ,contw 
+0x4114 014327 increase -1 ,rega 
+0x4115 014328 nbranch sha_endian_loop ,zero 
+0x4116 014329 increase 5 ,contw 
+0x4117 014330 loop sha_endian_swap2 
+0x4118 014331 rtn 
+:      014334 sha_getw:
+0x4119 014335 lshift2 queue ,pdata 
+0x411a 014336 iadd timeup ,contr 
+0x411b 014337 ifetch 4 ,contr 
+0x411c 014338 rtn 
+:      014340 sha_r:
+0x411d 014341 force 16 ,alarm 
+0x411e 014342 arg mem_dat ,timeup 
+:      014343 sha_r_loop:
+0x411f 014344 add alarm ,-7 ,queue 
+0x4120 014345 call sha_getw 
+0x4121 014346 iforce temp 
+0x4122 014347 add alarm ,-16 ,queue 
+0x4123 014348 call sha_getw 
+0x4124 014349 iadd temp ,temp 
+0x4125 014350 add alarm ,-2 ,queue 
+0x4126 014351 call sha_getw 
+0x4127 014352 shasx pdata ,1 ,pdata 
+0x4128 014353 iadd temp ,temp 
+0x4129 014354 add alarm ,-15 ,queue 
+0x412a 014355 call sha_getw 
+0x412b 014356 shasx pdata ,0 ,pdata 
+0x412c 014357 iadd temp ,temp 
+0x412d 014358 lshift2 alarm ,pdata 
+0x412e 014359 iadd timeup ,contw 
+0x412f 014360 istoret 4 ,contw 
+0x4130 014361 increase 1 ,alarm 
+0x4131 014362 compare 64 ,alarm ,0xff 
+0x4132 014363 nbranch sha_r_loop ,true 
+0x4133 014364 rtn 
+:      014367 sha_init:
+0x4134 014368 arg memh0 ,contr 
+0x4135 014369 force 7 ,regext_index 
+:      014370 sha_init_0:
+0x4136 014371 ifetch 4 ,contr 
+0x4137 014372 iforce regext 
+0x4138 014373 increase -1 ,regext_index 
+0x4139 014374 branch sha_init_0 ,positive 
+0x413a 014375 rtn 
+:      014377 sha:
+0x413b 014378 bpatchx patch36_3 ,mem_patch36 
+0x413c 014379 call sha_r 
+0x413d 014380 arg memahbak ,contw 
+0x413e 014381 force 0 ,regext_index 
+:      014382 sha_0:
+0x413f 014383 deposit regext 
+0x4140 014384 istore 4 ,contw 
+0x4141 014385 increase 1 ,regext_index 
+0x4142 014386 compare 8 ,regext_index ,0xff 
+0x4143 014387 nbranch sha_0 ,true 
+0x4144 014390 arg ble_mesh_sha256_addr ,timeup 
+0x4145 014393 arg mem_dat ,alarm 
+0x4146 014394 force 64 ,loopcnt 
+:      014395 sha_loop:
+0x4147 014396 ifetcht 4 ,alarm 
+0x4148 014397 ifetch 4 ,timeup 
+0x4149 014398 increase 4 ,timeup 
+0x414a 014399 increase 4 ,alarm 
+0x414b 014400 iadd temp ,pdata 
+0x414c 014401 force 7 ,regext_index 
+0x414d 014402 iadd regext ,temp 
+0x414e 014403 force 4 ,regext_index 
+0x414f 014404 shasx regext ,3 ,pdata 
+0x4150 014405 iadd temp ,temp 
+0x4151 014406 force 5 ,regext_index 
+0x4152 014407 deposit regext 
+0x4153 014408 force 6 ,regext_index 
+0x4154 014409 ixor regext ,pdata 
+0x4155 014410 force 4 ,regext_index 
+0x4156 014411 iand regext ,pdata 
+0x4157 014412 force 6 ,regext_index 
+0x4158 014413 ixor regext ,pdata 
+0x4159 014414 iadd temp ,temp 
+0x415a 014415 force 7 ,regext_index 
+0x415b 014416 copy temp ,regext 
+0x415c 014417 force 3 ,regext_index 
+0x415d 014418 deposit regext 
+0x415e 014419 iadd temp ,regext 
+0x415f 014420 force 0 ,regext_index 
+0x4160 014421 deposit regext 
+0x4161 014422 force 1 ,regext_index 
+0x4162 014423 iand regext ,temp 
+0x4163 014424 ior regext ,pdata 
+0x4164 014425 force 2 ,regext_index 
+0x4165 014426 iand regext ,pdata 
+0x4166 014427 ior temp ,temp 
+0x4167 014428 force 0 ,regext_index 
+0x4168 014429 shasx regext ,2 ,pdata 
+0x4169 014430 iadd temp ,pdata 
+0x416a 014431 force 7 ,regext_index 
+0x416b 014432 iadd regext ,regext 
+0x416c 014433 regexrot 
+0x416d 014434 loop sha_loop 
+0x416e 014435 arg memahbak ,contr 
+0x416f 014436 force 0 ,regext_index 
+:      014437 sha_1:
+0x4170 014438 ifetch 4 ,contr 
+0x4171 014439 iadd regext ,regext 
+0x4172 014440 increase 1 ,regext_index 
+0x4173 014441 compare 8 ,regext_index ,0xff 
+0x4174 014442 nbranch sha_1 ,true 
+0x4175 014443 rtn 
+:      014447 sha_result:
+0x4176 014448 arg memresult ,contw 
+0x4177 014449 force 7 ,regext_index 
+:      014450 sha_regext_save:
+0x4178 014451 deposit regext 
+0x4179 014452 istore 4 ,contw 
+0x417a 014453 increase -1 ,regext_index 
+0x417b 014454 branch sha_regext_save ,positive 
+0x417c 014455 rtn 
+:      014460 ali_mesh_upper_transport_layer_receive_unsegmented_access_message:
+0x417d 014461 bbit0 transport_head_bit_akf ,ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_device_key 
+:      014463 ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_application_key:
+0x417e 014464 call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key 
+0x417f 014465 branch ali_mesh_upper_transport_layer_decrypt_unsegmented_message 
+:      014467 ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_device_key:
+0x4180 014468 call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key 
+0x4181 014469 branch ali_mesh_upper_transport_layer_decrypt_unsegmented_message 
+:      014472 ali_mesh_upper_transport_layer_decrypt_unsegmented_message:
+0x4182 014474 fetch 1 ,mem_mesh_message_transport_netmic_length 
+0x4183 014475 pincrease -7 
+0x4184 014479 arg mem_mesh_message_transport_unsegmented_access_messagepdu ,alarm 
+0x4185 014480 call disable_user 
+0x4186 014481 branch ali_mesh_upper_transport_layer_decrypt_message 
+:      014485 ali_mesh_upper_transport_layer_receive_segmented_access_message:
+0x4187 014486 fetch 1 ,mem_mesh_message_transport_head 
+0x4188 014487 bbit0 transport_head_bit_akf ,ali_mesh_uuper_transport_layer_decrypt_segment_access_by_device_key 
+:      014488 ali_mesh_uuper_transport_layer_decrypt_segment_access_by_application_key:
+0x4189 014489 call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key 
+0x418a 014490 branch ali_mesh_upper_transport_layer_decrypt_segmented_message 
+:      014491 ali_mesh_uuper_transport_layer_decrypt_segment_access_by_device_key:
+0x418b 014492 call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key 
+0x418c 014493 branch ali_mesh_upper_transport_layer_decrypt_segmented_message 
+:      014496 ali_mesh_upper_transport_layer_decrypt_segmented_message:
+0x418d 014497 fetch 1 ,mem_mesh_aszmic 
+0x418e 014498 ncall enable_user ,blank 
+0x418f 014499 call disable_user ,blank 
+0x4190 014500 fetch 1 ,mem_mesh_segmented_access_message_current_length 
+0x4191 014501 pincrease -4 
+0x4192 014502 jam 0 ,mem_mesh_segmented_access_message_current_length 
+0x4193 014503 arg mem_mesh_segmented_access_message_segment ,alarm 
+:      014507 ali_mesh_upper_transport_layer_decrypt_message:
+0x4194 014508 copy alarm ,temp 
+0x4195 014509 call ali_mesh_upper_transport_layer_decrypt_message_decrypt_transmic 
+0x4196 014510 nrtn zero 
+0x4197 014511 call ali_mesh_upper_transport_layer_check_transport_mic_cache 
+0x4198 014512 nrtn user 
+0x4199 014513 fetch 2 ,mem_ccm_data_ptr 
+0x419a 014514 copy pdata ,alarm 
+0x419b 014515 branch ali_mesh_access_layer_resolve_message 
+:      014517 ali_mesh_upper_transport_layer_decrypt_message_decrypt_transmic:
+0x419c 014518 nbranch ali_ccm_decrypt ,user 
+0x419d 014519 pincrease -4 
+0x419e 014520 branch ali_ccm_decrypt_64bit 
+:      014523 ali_mesh_upper_transport_layer_check_transport_mic_cache:
+0x419f 014524 setarg mem_mesh_access_message_mic_cache 
+0x41a0 014525 store 2 ,mem_mesh_mic_cache_ptr 
+0x41a1 014526 branch ali_mesh_base_adt_cache 
+:      014530 ali_mesh_upper_transport_layer_load_application_nonce_and_application_key:
+0x41a2 014531 call ali_mesh_upper_transport_layer_load_application_nonce 
+:      014532 ali_mesh_upper_transport_layer_load_application_key:
+0x41a3 014533 arg mem_mesh_application_key ,contr 
+0x41a4 014534 branch load_key 
+:      014535 ali_mesh_upper_transport_layer_load_application_nonce:
+0x41a5 014536 arg mem_mesh_application_nonce ,contw 
+0x41a6 014537 setarg application_nonce 
+0x41a7 014538 istore 1 ,contw 
+0x41a8 014539 fetch 1 ,mem_mesh_aszmic 
+0x41a9 014540 arg 0 ,temp 
+0x41aa 014541 nsetflag blank ,7 ,temp 
+0x41ab 014542 istoret 1 ,contw 
+0x41ac 014543 fetch 7 ,mem_mesh_message_seq 
+0x41ad 014544 istore 7 ,contw 
+0x41ae 014545 branch mesh_generate_nonce 
+:      014549 ali_mesh_upper_transport_layer_load_device_nonce_and_device_key:
+0x41af 014550 call ali_mesh_upper_transport_layer_load_device_nonce 
+:      014551 ali_mesh_upper_transport_layer_load_device_key:
+0x41b0 014552 arg mem_mesh_device_key ,contr 
+0x41b1 014553 branch load_key 
+:      014554 ali_mesh_upper_transport_layer_load_device_nonce:
+0x41b2 014555 arg mem_mesh_device_nonce ,contw 
+0x41b3 014556 setarg device_nonce 
+0x41b4 014557 branch ali_mesh_upper_transport_layer_load_application_nonce + 2 
+:      014561 ali_mesh_upper_transport_layer_send_access_message:
+:      014562 ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer:
+0x41b5 014563 bpatchx patch36_4 ,mem_patch36 
+0x41b6 014565 call ali_mesh_upper_transport_layer_send_access_message_add_nid_src_ttl_seq_dst 
+0x41b7 014568 call ali_mesh_upper_transport_layer_store_packet_header 
+0x41b8 014569 rtn user 
+0x41b9 014570 call ali_mesh_upper_transport_layer_store_unsegment_msg_original_access_pdu 
+0x41ba 014572 call ali_mesh_upper_transport_layer_init_queue_param 
+0x41bb 014574 arg mem_mesh_upper_tran_layer_queue_temp ,rega 
+0x41bc 014575 branch queue_push 
+:      014579 ali_mesh_upper_transport_layer_store_packet_header:
+0x41bd 014580 call disable_user 
+0x41be 014581 arg upper_retry_count_status ,temp 
+0x41bf 014583 fetch 1 ,mem_mesh_network_packet_type 
+0x41c0 014584 sub pdata ,mesh_message_proxy ,null 
+0x41c1 014585 setflag zero ,bit_upper_flag_proxy_control ,temp 
+0x41c2 014586 storet 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41c3 014587 fetch 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+0x41c4 014588 store 9 ,mem_mesh_upper_tran_layer_temp_packet_header_ivi_nid 
+0x41c5 014589 fetch 1 ,mem_mesh_access_layer_payload_vendor_command 
+0x41c6 014590 rtnne vendor_message_attr_indication 
+0x41c7 014591 fetch 1 ,mem_mesh_provisioned_flag 
+0x41c8 014592 bne paired_status ,enable_user 
+0x41c9 014593 fetch 1 ,mem_mesh_access_layer_payload_vendor_tid 
+0x41ca 014594 store 1 ,mem_mesh_upper_tran_layer_temp_packet_tid 
+0x41cb 014595 fetch 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41cc 014596 pincrease upper_retry_count_indication 
+0x41cd 014597 set1 bit_upper_flag_vendor_indication ,pdata 
+0x41ce 014598 store 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41cf 014599 rtn 
+:      014602 ali_mesh_upper_transport_layer_store_unsegment_msg_original_access_pdu:
+0x41d0 014603 fetch 1 ,mem_mesh_access_layer_payload_len 
+0x41d1 014604 copy pdata ,loopcnt 
+0x41d2 014605 store 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+0x41d3 014606 fetch 1 ,mem_mesh_message_transport_head 
+0x41d4 014607 store 1 ,mem_mesh_upper_tran_layer_temp_pakcet_akf_aid 
+0x41d5 014608 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contw 
+0x41d6 014609 arg mem_mesh_access_layer_payload ,contr 
+0x41d7 014610 branch memcpy 
+:      014614 ali_mesh_upper_transport_layer_control_packet:
+:      014619 ali_mesh_upper_transport_layer_control_packet_deal:
+0x41d8 014620 fetch 1 ,mem_mesh_upper_tran_layer_packet_advertising 
+0x41d9 014621 nrtn blank 
+0x41da 014622 call ali_mesh_upper_transport_layer_init_queue_param 
+0x41db 014623 arg mem_mesh_upper_tran_layer_queue_temp ,rega 
+0x41dc 014624 call queue_get_new_ele 
+0x41dd 014625 nrtn user 
+0x41de 014627 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41df 014628 and temp ,data_upper_flag_max_retry_count ,pdata 
+0x41e0 014629 branch ali_mesh_upper_transport_layer_queue_pop ,blank 
+0x41e1 014631 jam packet_in_bearer ,mem_mesh_upper_tran_layer_packet_advertising 
+0x41e2 014633 call ali_mesh_upper_transport_layer_control_packet_load_header 
+0x41e3 014635 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41e4 014636 call ali_mesh_upper_transport_layer_control_packet_load_app_control 
+0x41e5 014637 store 1 ,mem_mesh_upper_tran_layer_packet_tid 
+0x41e6 014639 fetch 1 ,mem_mesh_upper_tran_layer_packet_type 
+0x41e7 014640 isolate1 bit_upper_flag_proxy_control ,temp 
+0x41e8 014641 setflag true ,bit_uuper_tran_proxy_message ,pdata 
+0x41e9 014642 store 1 ,mem_mesh_upper_tran_layer_packet_type 
+0x41ea 014650 set1 bit_upper_flag_retransmit ,temp 
+0x41eb 014652 increase -1 ,temp 
+0x41ec 014653 istoret 1 ,regb 
+0x41ed 014655 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+0x41ee 014656 isolate1 bit_upper_flag_retransmit ,temp 
+0x41ef 014657 nbranch ali_mesh_upper_transport_layer_control_packet_encrypt_access ,true 
+0x41f0 014658 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+0x41f1 014659 storet 1 ,mem_mesh_upper_transport_layer_payload_len 
+0x41f2 014660 copy temp ,loopcnt 
+0x41f3 014661 arg mem_mesh_access_layer_payload ,contw 
+0x41f4 014662 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contr 
+0x41f5 014663 call memcpy 
+0x41f6 014665 sub temp ,unsegmented_access_message_max_upper_transport_access_pdu_len ,null 
+0x41f7 014666 nbranch ali_mesh_upper_transport_layer_control_packet_segment_msg ,positive 
+:      014667 ali_mesh_upper_transport_layer_control_packet_unsegment_msg:
+0x41f8 014668 branch ali_mesh_lower_transport_layer_send_unsegmented_access_message 
+:      014671 ali_mesh_upper_transport_layer_control_packet_segment_msg:
+0x41f9 014672 fetch 4 ,mem_mesh_upper_tran_layer_temp_segmented_pakcet_seqzero 
+0x41fa 014673 store 4 ,mem_mesh_segmented_lower_transport_layer_segzero 
+0x41fb 014674 branch ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer 
+:      014677 ali_mesh_upper_transport_layer_control_packet_load_header:
+0x41fc 014678 fetch 1 ,mem_mesh_upper_tran_layer_temp_pakcet_akf_aid 
+0x41fd 014679 store 1 ,mem_mesh_message_transport_head 
+0x41fe 014681 fetch 9 ,mem_mesh_upper_tran_layer_temp_packet_header_ivi_nid 
+0x41ff 014682 store 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+0x4200 014683 store 9 ,mem_mesh_message_nid 
+0x4201 014684 rtn 
+:      014687 ali_mesh_upper_transport_layer_control_packet_load_app_control:
+0x4202 014688 jam upper_tran_tmall_message ,mem_mesh_upper_tran_layer_packet_type 
+0x4203 014689 fetch 1 ,mem_mesh_upper_tran_layer_temp_packet_tid 
+0x4204 014690 isolate1 bit_upper_flag_vendor_indication ,temp 
+0x4205 014691 rtn true 
+0x4206 014692 setarg 0 
+0x4207 014693 rtn 
+:      014695 ali_mesh_store_tran_package_type:
+0x4208 014696 add rega ,element_device_tran_package_type ,contw 
+0x4209 014697 istore 1 ,contw 
+0x420a 014698 rtn 
+:      014701 ali_mesh_upper_transport_layer_queue_pop:
+0x420b 014702 jam 0 ,mem_mesh_upper_tran_layer_packet_tid 
+0x420c 014703 call ali_mesh_upper_transport_layer_init_queue_param 
+0x420d 014704 arg mem_mesh_upper_tran_layer_queue_temp ,rega 
+0x420e 014705 branch queue_pop 
+:      014707 ali_mesh_upper_transport_layer_control_packet_encrypt_access:
+0x420f 014708 call ali_mesh_upper_transport_layer_send_access_message_calc_seq 
+0x4210 014709 call ali_mesh_upper_transport_layer_send_access_message_add_seq 
+0x4211 014710 fetch 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+0x4212 014711 store 9 ,mem_mesh_upper_tran_layer_temp_packet_header_ivi_nid 
+0x4213 014712 call ali_mesh_upper_transport_layer_control_packet_encrypt_access_load_payload 
+0x4214 014713 setarg 0 
+0x4215 014714 store 1 ,mem_mesh_aszmic 
+0x4216 014715 call ali_mesh_upper_transport_layer_calc_transport_mic 
+0x4217 014717 fetcht 1 ,mem_mesh_upper_transport_layer_payload_len 
+0x4218 014718 storet 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+0x4219 014719 copy temp ,loopcnt 
+0x421a 014720 arg mem_mesh_access_layer_payload ,contr 
+0x421b 014721 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contw 
+0x421c 014722 call memcpy 
+0x421d 014724 sub temp ,unsegmented_access_message_max_upper_transport_access_pdu_len ,null 
+0x421e 014725 nbranch ali_mesh_upper_transport_layer_control_packet_encrypt_access_segment_msg ,positive 
+:      014726 ali_mesh_upper_transport_layer_control_packet_encrypt_access_unsegment_msg:
+0x421f 014727 arg mem_mesh_upper_tran_layer_temp_packet_transmit_delay ,rega 
+0x4220 014728 call queue_store_new_ele 
+0x4221 014729 branch ali_mesh_lower_transport_layer_send_unsegmented_access_message 
+:      014731 ali_mesh_upper_transport_layer_control_packet_encrypt_access_segment_msg:
+0x4222 014732 call ali_mesh_upper_transport_layer_send_segmented_access_message_get_seqzero_segon 
+0x4223 014733 fetch 4 ,mem_mesh_segmented_lower_transport_layer_segzero 
+0x4224 014734 store 4 ,mem_mesh_upper_tran_layer_temp_segmented_pakcet_seqzero 
+0x4225 014735 arg mem_mesh_upper_tran_layer_temp_packet_transmit_delay ,rega 
+0x4226 014736 call queue_store_new_ele 
+0x4227 014737 branch ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer 
+:      014739 ali_mesh_upper_transport_layer_control_packet_encrypt_access_load_payload:
+0x4228 014740 fetch 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+0x4229 014741 copy pdata ,loopcnt 
+0x422a 014742 store 1 ,mem_mesh_access_layer_payload_len 
+0x422b 014743 fetch 1 ,mem_mesh_upper_tran_layer_temp_pakcet_akf_aid 
+0x422c 014744 store 1 ,mem_mesh_message_transport_head 
+0x422d 014745 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contr 
+0x422e 014746 arg mem_mesh_access_layer_payload ,contw 
+0x422f 014747 branch memcpy 
+:      014749 ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer:
+0x4230 014750 call ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header 
+0x4231 014751 setarg mem_mesh_access_payload 
+0x4232 014752 store 2 ,mem_mesh_upper_transport_layer_payload_ptr 
+:      014753 ali_mesh_upper_transport_layer_send_segmented_access_message_loop:
+0x4233 014754 call ali_mesh_upper_transport_layer_control_packet_load_header 
+0x4234 014755 call ali_mesh_upper_transport_layer_send_access_message_calc_seq 
+0x4235 014756 call ali_mesh_upper_transport_layer_send_access_message_add_seq 
+0x4236 014758 fetcht 1 ,mem_mesh_access_layer_payload_len 
+0x4237 014759 setarg segmented_access_message_unint_pdu_len 
+0x4238 014760 call not_greater_than 
+0x4239 014761 copy pdata ,rega 
+0x423a 014762 copy temp ,pdata 
+0x423b 014763 isub rega ,pdata 
+0x423c 014764 store 1 ,mem_mesh_access_layer_payload_len 
+0x423d 014765 fetch 2 ,mem_mesh_upper_transport_layer_payload_ptr 
+0x423e 014766 copy pdata ,contr 
+0x423f 014767 iadd rega ,temp 
+0x4240 014768 storet 2 ,mem_mesh_upper_transport_layer_payload_ptr 
+0x4241 014769 call ali_mesh_lower_transport_layer_send_segmented_access_message 
+0x4242 014770 fetch 1 ,mem_mesh_access_layer_payload_len 
+0x4243 014771 rtn blank 
+0x4244 014772 fetch 1 ,mem_mesh_segmented_lower_transport_layer_sego 
+0x4245 014773 pincrease 1 
+0x4246 014774 store 1 ,mem_mesh_segmented_lower_transport_layer_sego 
+0x4247 014775 call ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header 
+0x4248 014776 branch ali_mesh_upper_transport_layer_send_segmented_access_message_loop 
+:      014781 ali_mesh_upper_transport_layer_calc_transport_mic:
+0x4249 014782 fetch 1 ,mem_mesh_message_transport_head 
+0x424a 014783 bbit0 transport_head_bit_akf ,ali_mesh_upper_transport_layer_calc_transport_mic_by_devicekey 
+:      014784 ali_mesh_upper_transport_layer_calc_transport_mic_by_appkey:
+0x424b 014785 call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key 
+0x424c 014786 branch ali_mesh_upper_transport_layer_calc_transport_mic_encrypt_aesccm 
+:      014787 ali_mesh_upper_transport_layer_calc_transport_mic_by_devicekey:
+0x424d 014788 call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key 
+:      014789 ali_mesh_upper_transport_layer_calc_transport_mic_encrypt_aesccm:
+0x424e 014790 fetch 1 ,mem_mesh_access_layer_payload_len 
+0x424f 014791 add pdata ,4 ,temp 
+0x4250 014792 storet 1 ,mem_mesh_upper_transport_layer_payload_len 
+0x4251 014793 arg mem_mesh_access_layer_payload ,temp 
+0x4252 014794 branch ali_ccm_encrypt 
+:      014799 ali_mesh_upper_transport_layer_send_access_message_calc_seq:
+0x4253 014800 fetch 3 ,mem_mesh_send_message_seq 
+0x4254 014801 pincrease 1 
+0x4255 014802 store 3 ,mem_mesh_send_message_seq 
+0x4256 014803 fetch 1 ,mem_mesh_gatt_package_send_msg_id 
+0x4257 014804 pincrease 1 
+0x4258 014805 store 1 ,mem_mesh_gatt_package_send_msg_id 
+0x4259 014806 fetch 2 ,mem_mesh_cb_seq_changed 
+0x425a 014807 branch callback_func 
+:      014811 ali_mesh_upper_transport_layer_send_access_message_add_nid_src_ttl_seq_dst:
+0x425b 014812 fetch 1 ,mem_mesh_iv_index + 3 
+0x425c 014813 lshift4 pdata ,pdata 
+0x425d 014814 lshift3 pdata ,pdata 
+0x425e 014815 fetcht 1 ,mem_k2_nid 
+0x425f 014816 ior temp ,pdata 
+0x4260 014817 store 1 ,mem_mesh_send_upper_layer_ivi_and_nid 
+0x4261 014818 fetch 1 ,mem_mesh_send_message_ttl 
+0x4262 014819 store 1 ,mem_mesh_send_upper_layer_ctl_and_ttl 
+0x4263 014820 fetch 2 ,mem_mesh_send_message_src 
+0x4264 014821 store 2 ,mem_mesh_send_upper_layer_src 
+0x4265 014822 fetch 2 ,mem_mesh_send_message_dst 
+0x4266 014823 store 2 ,mem_mesh_send_upper_layer_dst 
+:      014825 ali_mesh_upper_transport_layer_send_access_message_add_seq:
+0x4267 014826 fetch 3 ,mem_mesh_send_message_seq 
+0x4268 014827 store 3 ,mem_mesh_send_upper_layer_seq 
+0x4269 014828 arg mem_mesh_send_upper_layer_seq ,rega 
+0x426a 014829 arg 3 ,loopcnt 
+0x426b 014830 call inverse_data 
+0x426c 014831 fetch 8 ,mem_mesh_send_upper_layer_ctl_and_ttl 
+0x426d 014832 store 8 ,mem_mesh_message_ttl 
+0x426e 014833 rtn 
+:      014835 ali_mesh_upper_transport_layer_send_segmented_access_message_get_seqzero_segon:
+0x426f 014836 fetch 1 ,mem_mesh_upper_transport_layer_payload_len 
+0x4270 014837 div pdata ,segmented_access_message_unint_pdu_len 
+0x4271 014838 call wait_div_end 
+0x4272 014839 quotient temp 
+0x4273 014840 remainder pdata 
+0x4274 014841 call ali_mesh_upper_transport_layer_send_segmented_access_message_sub_segn_one ,blank 
+0x4275 014842 storet 1 ,mem_mesh_segmented_lower_transport_layer_segn 
+0x4276 014843 jam 0 ,mem_mesh_segmented_lower_transport_layer_sego 
+0x4277 014844 fetch 3 ,mem_mesh_send_message_seq 
+0x4278 014845 arg 0x1fff ,temp 
+0x4279 014846 iand temp ,pdata 
+0x427a 014847 store 2 ,mem_mesh_segmented_lower_transport_layer_segzero 
+0x427b 014848 rtn 
+:      014850 ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header:
+0x427c 014851 fetch 2 ,mem_mesh_segmented_lower_transport_layer_segzero 
+0x427d 014852 lshift4 pdata ,pdata 
+0x427e 014853 lshift pdata ,pdata 
+0x427f 014854 fetcht 1 ,mem_mesh_segmented_lower_transport_layer_sego 
+0x4280 014855 ior temp ,pdata 
+0x4281 014856 lshift4 pdata ,pdata 
+0x4282 014857 lshift pdata ,pdata 
+0x4283 014858 fetcht 1 ,mem_mesh_segmented_lower_transport_layer_segn 
+0x4284 014859 ior temp ,pdata 
+0x4285 014860 store 3 ,mem_mesh_segmented_access_lower_transport_layer_szmic_seqzero_sego_segn 
+0x4286 014861 arg 3 ,loopcnt 
+0x4287 014862 arg mem_mesh_segmented_access_lower_transport_layer_szmic_seqzero_sego_segn ,rega 
+0x4288 014863 branch inverse_data 
+:      014865 ali_mesh_upper_transport_layer_receive_new_msg_timer:
+0x4289 014866 arg mem_mesh_upper_receive_new_message_timer ,regc 
+0x428a 014867 arg ali_mesh_upper_transport_layer_receive_new_msg_timeout ,regb 
+0x428b 014868 branch timer_single_step 
+:      014870 ali_mesh_upper_transport_layer_receive_new_msg_timeout:
+0x428c 014871 arg 40 ,loopcnt 
+0x428d 014872 arg mem_mesh_access_message_mic_cache ,contw 
+0x428e 014873 branch clear_mem 
+:      014876 ali_mesh_upper_transport_layer_send_segmented_access_message_sub_segn_one:
+0x428f 014877 increase -1 ,temp 
+0x4290 014878 rtn 
+:      014880 ali_mesh_upper_transport_layer_clear_tx_buffer:
+0x4291 014881 branch ali_mesh_stop_send_indication_packet 
+:      014884 ali_mesh_upper_transport_layer_init_queue_param:
+0x4292 014885 setarg mem_mesh_upper_tran_layer_queue_each_size 
+0x4293 014886 store 2 ,mem_queue_ptr 
+0x4294 014887 rtn 
+:      014890 app_init:
+0x4295 014891 bpatch patch16_1 ,mem_patch16 
+0x4296 014892 fetch 1 ,mem_device_option 
+0x4297 014893 branch app_init ,blank 
+0x4298 014894 beq dvc_op_dongle ,dongle_init 
+0x4299 014895 beq dvc_op_shutter ,shutter_init 
+0x429a 014896 beq dvc_op_module ,module_init 
+0x429b 014897 beq dvc_op_car ,car_init 
+0x429c 014898 beq dvc_op_shutter_dy ,shutter_dy_init 
+0x429d 014899 beq dvc_op_remote_car ,remote_car_init 
+0x429e 014900 beq dvc_op_keyboard ,keyboard_init 
+0x429f 014901 beq dvc_op_hci_boot ,hci_init 
+0x42a0 014903 beq dvc_op_mouse ,mouse_init 
+0x42a1 014904 beq dvc_op_mesh ,ali_mesh_init 
+0x42a2 014905 rtn 
+:      014908 app_param_init:
+0x42a3 014909 rtn wake 
+0x42a4 014910 call adc_init_data 
+0x42a5 014911 fetch 1 ,mem_device_option 
+0x42a6 014912 beq dvc_op_shutter ,shutter_default_init 
+0x42a7 014913 beq dvc_op_shutter_dy ,shutter_default_init 
+0x42a8 014914 beq dvc_op_dongle ,dongle_default_init 
+0x42a9 014915 beq dvc_op_mouse ,mouse_default_init 
+0x42aa 014916 beq dvc_op_keyboard ,mouse_default_parm_init 
+0x42ab 014917 beq dvc_op_remote_car ,remote_car_default_init 
+0x42ac 014918 rtn 
+:      014920 app_process_idle:
+0x42ad 014921 call ui_dispatch 
+0x42ae 014922 call check_51cmd 
+0x42af 014923 call app_process_bb_event 
+0x42b0 014924 fetch 2 ,mem_cb_idle_process 
+0x42b1 014925 branch callback_func 
+:      014927 app_process_ble:
+0x42b2 014928 fetch 2 ,mem_cb_le_process 
+0x42b3 014929 branch callback_func 
+:      014931 app_process_bb_event:
+0x42b4 014932 bpatch patch16_2 ,mem_patch16 
+0x42b5 014934 arg mem_ipc_fifo_bt2c51 ,rega 
+0x42b6 014935 call fifo_out 
+0x42b7 014936 rtn blank 
+0x42b8 014938 copy pdata ,regc 
+0x42b9 014939 call app_event_normal_process 
+0x42ba 014940 branch app_process_bb_event_priority 
+:      014942 app_discard_event:
+0x42bb 014943 arg 0 ,regc 
+0x42bc 014944 rtn 
+:      014949 app_event_normal_process:
+0x42bd 014950 beq bt_evt_button_long_pressed ,app_evt_button_long_pressed 
+0x42be 014951 beq bt_evt_le_connected ,app_le_event_bb_connected 
+0x42bf 014952 beq bt_evt_le_disconnected ,app_le_event_bb_disconn 
+0x42c0 014953 rtn 
+:      014957 app_process_bb_event_priority:
+0x42c1 014958 fetch 2 ,mem_cb_bb_event_process 
+0x42c2 014959 branch callback_func 
+:      014961 app_check_wake_lock:
+0x42c3 014962 fetch 2 ,mem_cb_check_wakelock 
+0x42c4 014963 branch callback_func 
+:      014965 app_will_enter_lpm:
+0x42c5 014966 fetch 2 ,mem_cb_before_lpm 
+0x42c6 014967 branch callback_func 
+:      014969 app_le_event_bb_connected:
+0x42c7 014970 fetch 2 ,mem_ui_state_map 
+0x42c8 014971 set1 ui_state_ble_connected ,pdata 
+0x42c9 014972 store 2 ,mem_ui_state_map 
+0x42ca 014973 rtn 
+:      014975 app_le_event_bb_disconn:
+0x42cb 014976 jam 0 ,mem_le_l2cap_att_states 
+0x42cc 014977 fetch 2 ,mem_ui_state_map 
+0x42cd 014978 set0 ui_state_ble_connected ,pdata 
+0x42ce 014979 store 2 ,mem_ui_state_map 
+0x42cf 014980 branch app_lpm_mult_disable 
+:      014983 app_evt_button_long_pressed:
+0x42d0 014984 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x42d1 014985 set1 app_disc_by_button ,pdata 
+0x42d2 014986 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x42d3 014987 rtn 
+:      014990 app_evt_timer:
+0x42d4 014991 store 1 ,mem_app_evt_timer_count 
+:      014992 app_evt_100ms_loop:
+0x42d5 014993 bpatch patch16_3 ,mem_patch16 
+0x42d6 014994 fetch 1 ,mem_app_evt_timer_count 
+0x42d7 014995 rtn blank 
+0x42d8 014996 increase -1 ,pdata 
+0x42d9 014997 store 1 ,mem_app_evt_timer_count 
+0x42da 014998 call ui_button_polling 
+0x42db 014999 call app_lpm_wake_auto_lock_timer 
+0x42dc 015000 call flash_write_spi_sm_timer 
+0x42dd 015001 fetch 2 ,mem_cb_event_timer 
+0x42de 015002 call callback_func 
+0x42df 015003 branch app_evt_100ms_loop 
+:      015008 timer_single_step:
+0x42e0 015009 ifetch 1 ,regc 
+0x42e1 015010 rtn blank 
+0x42e2 015011 pincrease -1 
+0x42e3 015012 istore 1 ,regc 
+0x42e4 015013 nrtn blank 
+0x42e5 015014 copy regb ,pdata 
+0x42e6 015015 branch callback_func 
+:      015019 timer_single_step_2b:
+0x42e7 015020 ifetch 2 ,regc 
+0x42e8 015021 rtn blank 
+0x42e9 015022 pincrease -1 
+0x42ea 015023 istore 2 ,regc 
+0x42eb 015024 nrtn blank 
+0x42ec 015025 copy regb ,pdata 
+0x42ed 015026 branch callback_func 
+:      015028 app_power_timer:
+0x42ee 015029 fetcht 2 ,mem_power_param_ptr 
+0x42ef 015030 add temp ,power_timer_offset ,regc 
+0x42f0 015031 arg app_power_timer_timeout ,regb 
+0x42f1 015032 branch timer_single_step 
+:      015034 app_power_timer_timeout:
+0x42f2 015035 call app_got_power_state_common 
+0x42f3 015036 beq power_starting ,app_enter_power_stanby_state 
+:      015037 app_enter_power_off_state:
+0x42f4 015038 branch app_enter_hibernate 
+:      015039 app_enter_power_stanby_state:
+0x42f5 015040 setarg power_standby 
+0x42f6 015041 istore 1 ,regc 
+0x42f7 015042 add temp ,power_standby_cb_offset ,regb 
+:      015043 app_power_cb_common:
+0x42f8 015044 ifetch 2 ,regb 
+0x42f9 015045 branch callback_func 
+:      015048 app_bb_hibernate:
+0x42fa 015049 call app_disconn_reason_clear 
+0x42fb 015050 branch app_enter_hibernate 
+:      015053 app_disconn_reason_clear:
+0x42fc 015054 setarg 0 
+0x42fd 015055 store app_disc_rsn_size ,mem_app_disconn_reason 
+0x42fe 015056 rtn 
+:      015057 app_disconn_reason_flag_clear:
+0x42ff 015058 setarg 0 
+0x4300 015059 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x4301 015060 rtn 
+:      015064 app_disconn_reason_collect_ble:
+0x4302 015065 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x4303 015066 set1 app_disc_ble ,pdata 
+0x4304 015067 store app_disc_rsn_size ,mem_app_disconn_reason 
+0x4305 015068 setarg 0 
+0x4306 015069 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x4307 015070 rtn 
+:      015078 app_get_lpm_wake_lock:
+0x4308 015079 arg wake_lock_app ,queue 
+0x4309 015080 branch lpm_get_wake_lock 
+:      015082 app_put_lpm_wake_lock:
+0x430a 015083 arg wake_lock_app ,queue 
+0x430b 015084 branch lpm_put_wake_lock 
+:      015086 app_lpm_wake_auto_lock:
+0x430c 015087 jam lpm_wake_up_delay_timer ,mem_wake_up_delay_timer 
+0x430d 015088 branch app_get_lpm_wake_lock 
+:      015090 app_lpm_wake_auto_lock_timer:
+0x430e 015091 arg mem_wake_up_delay_timer ,regc 
+0x430f 015092 arg app_put_lpm_wake_lock ,regb 
+0x4310 015093 branch timer_single_step 
+:      015096 app_ble_start_direct_adv:
+0x4311 015097 jam bt_cmd_start_direct_adv ,mem_fifo_temp 
+0x4312 015098 branch ui_ipc_send_cmd 
+:      015100 app_ble_stop_direct_adv:
+0x4313 015101 jam bt_cmd_stop_direct_adv ,mem_fifo_temp 
+0x4314 015102 branch ui_ipc_send_cmd 
+:      015104 app_ble_stop_adv:
+0x4315 015105 jam bt_cmd_stop_adv ,mem_fifo_temp 
+0x4316 015106 branch ui_ipc_send_cmd 
+:      015108 app_ble_start_adv:
+0x4317 015109 jam bt_cmd_start_adv ,mem_fifo_temp 
+0x4318 015110 branch ui_ipc_send_cmd 
+:      015112 app_ble_start_scan:
+0x4319 015113 jam bt_cmd_le_start_scan ,mem_fifo_temp 
+0x431a 015114 branch ui_ipc_send_cmd 
+:      015116 app_ble_stop_scan:
+0x431b 015117 jam bt_cmd_le_stop_scan ,mem_fifo_temp 
+0x431c 015118 branch ui_ipc_send_cmd 
+:      015120 app_ble_start_conn:
+0x431d 015121 jam bt_cmd_le_start_conn ,mem_fifo_temp 
+0x431e 015122 branch ui_ipc_send_cmd 
+:      015124 app_ble_disconnect:
+0x431f 015125 jam bt_cmd_le_disconnect ,mem_fifo_temp 
+0x4320 015126 branch ui_ipc_send_cmd 
+:      015128 app_led_start_blink:
+0x4321 015129 jam bt_cmd_led_blink ,mem_fifo_temp 
+0x4322 015130 branch ui_ipc_send_cmd 
+:      015132 app_led_on:
+0x4323 015133 jam bt_cmd_led_on ,mem_fifo_temp 
+0x4324 015134 branch ui_ipc_send_cmd 
+:      015136 app_led_stop_blink:
+:      015137 app_led_off:
+0x4325 015138 jam bt_cmd_led_off ,mem_fifo_temp 
+0x4326 015139 branch ui_ipc_send_cmd 
+:      015141 app_enter_hibernate:
+0x4327 015142 jam bt_cmd_enter_hibernate ,mem_fifo_temp 
+0x4328 015143 branch ui_ipc_send_cmd 
+:      015146 app_ble_store_reconn_info:
+0x4329 015147 jam bt_cmd_store_reconn_info_le ,mem_fifo_temp 
+0x432a 015148 branch ui_ipc_send_cmd 
+:      015151 app_lpm_mult_enable:
+0x432b 015152 set1 mark_lpm_mult_enable ,mark 
+0x432c 015153 rtn 
+:      015155 app_lpm_mult_disable:
+0x432d 015156 set0 mark_lpm_mult_enable ,mark 
+0x432e 015157 rtn 
+:      015160 app_button_long_pressed:
+0x432f 015161 call app_got_power_state_common 
+0x4330 015162 beq power_standby ,app_power_shutting_down 
+:      015163 app_power_starting:
+0x4331 015164 setarg power_starting 
+0x4332 015165 istore 1 ,regc 
+0x4333 015166 add temp ,power_starting_timeout_offset ,rega 
+0x4334 015167 add temp ,power_starting_cb_offset ,regb 
+:      015168 app_power_common:
+0x4335 015169 ifetcht 1 ,rega 
+0x4336 015170 increase 1 ,regc 
+0x4337 015171 istoret 1 ,regc 
+0x4338 015172 branch app_power_cb_common 
+:      015174 app_power_shutting_down:
+0x4339 015175 setarg power_off 
+0x433a 015176 istore 1 ,regc 
+0x433b 015177 fetch 2 ,mem_ui_state_map 
+0x433c 015178 bbit0 ui_state_ble_connected ,app_power_off_end 
+0x433d 015179 call le_send_terminate_ind_user_terminated 
+0x433e 015180 call app_ble_disconnect 
+:      015181 app_power_off_end:
+0x433f 015182 fetcht 2 ,mem_power_param_ptr 
+0x4340 015183 add temp ,power_off_timeout_offset ,rega 
+0x4341 015184 add temp ,power_off_cb_offset ,regb 
+0x4342 015185 branch app_power_common 
+:      015187 app_got_power_state_common:
+0x4343 015188 fetcht 2 ,mem_power_param_ptr 
+0x4344 015189 add temp ,power_state_offset ,regc 
+0x4345 015190 ifetch 1 ,regc 
+0x4346 015191 rtn 
+:      015193 app_event_button_up:
+0x4347 015194 call app_got_power_state_common 
+0x4348 015195 bne power_off ,app_power_release 
+0x4349 015196 branch app_enter_hibernate 
+:      015197 app_power_release:
+0x434a 015198 add temp ,ui_butten_up_cb_offset ,regb 
+0x434b 015199 branch app_power_cb_common 
+:      015205 adpcm_decode:
+0x434c 015206 fetch 8 ,mem_ad_state_valpred 
+0x434d 015207 store 8 ,mem_ad_valpred 
+0x434e 015208 jam 0 ,mem_ad_bufferstep 
+0x434f 015209 fetch 1 ,mem_ad_index 
+0x4350 015210 lshift2 pdata ,pdata 
+0x4351 015211 arg mem_ad_stepsizetable ,temp 
+0x4352 015212 iadd temp ,temp 
+0x4353 015213 ifetch 4 ,temp 
+0x4354 015214 store 4 ,mem_ad_step 
+:      015215 adpcm_decode_loop:
+0x4355 015216 fetch 1 ,mem_ad_bufferstep 
+0x4356 015217 nbranch adpcm_next_byte ,blank 
+0x4357 015218 fetcht 2 ,mem_ad_in_ptr 
+0x4358 015219 ifetch 1 ,temp 
+0x4359 015220 store 1 ,mem_ad_inputbuffer 
+0x435a 015221 increase 1 ,temp 
+0x435b 015222 storet 2 ,mem_ad_in_ptr 
+0x435c 015223 rshift4 pdata ,pdata 
+0x435d 015224 store 1 ,mem_ad_delta 
+0x435e 015225 branch adpcm_cal 
+:      015226 adpcm_next_byte:
+0x435f 015227 fetch 1 ,mem_ad_inputbuffer 
+0x4360 015228 and pdata ,0x0f ,pdata 
+0x4361 015229 store 1 ,mem_ad_delta 
+:      015230 adpcm_cal:
+0x4362 015231 fetch 1 ,mem_ad_bufferstep 
+0x4363 015232 setflip 0 ,pdata 
+0x4364 015233 store 1 ,mem_ad_bufferstep 
+0x4365 015234 arg mem_ad_indextable ,temp 
+0x4366 015235 fetch 1 ,mem_ad_delta 
+0x4367 015236 iadd temp ,temp 
+0x4368 015237 ifetch 1 ,temp 
+0x4369 015238 fetcht 1 ,mem_ad_index 
+0x436a 015239 call adpcm_cal_index 
+0x436b 015240 store 1 ,mem_ad_index 
+0x436c 015242 fetch 1 ,mem_ad_delta 
+0x436d 015243 and pdata ,0x08 ,temp 
+0x436e 015244 storet 1 ,mem_ad_sign 
+0x436f 015245 and pdata ,0x07 ,temp 
+0x4370 015246 storet 1 ,mem_ad_delta 
+0x4371 015248 call adpcm_cal_vpdiff 
+0x4372 015249 storet 4 ,mem_ad_vpdiff 
+0x4373 015251 fetch 1 ,mem_ad_sign 
+0x4374 015252 branch adpcm_cal_valpred ,blank 
+0x4375 015253 fetch 4 ,mem_ad_valpred 
+0x4376 015254 fetcht 4 ,mem_ad_vpdiff 
+0x4377 015255 isub temp ,pdata 
+0x4378 015256 branch adpcm_cal_valpred_end 
+:      015257 adpcm_cal_valpred:
+0x4379 015258 fetch 4 ,mem_ad_valpred 
+0x437a 015259 fetcht 4 ,mem_ad_vpdiff 
+0x437b 015260 iadd temp ,pdata 
+:      015261 adpcm_cal_valpred_end:
+0x437c 015262 store 4 ,mem_ad_valpred 
+0x437d 015263 arg 32767 ,temp 
+0x437e 015264 isub temp ,pdata 
+0x437f 015265 bbit1 31 ,adpcm_cal_valpred_overflow 
+0x4380 015266 storet 4 ,mem_ad_valpred 
+0x4381 015267 branch adpcm_cal_valpred_overflow_end 
+:      015268 adpcm_cal_valpred_overflow:
+0x4382 015269 fetch 4 ,mem_ad_valpred 
+0x4383 015270 arg 32768 ,temp 
+0x4384 015271 iadd temp ,pdata 
+0x4385 015272 bbit0 31 ,adpcm_cal_valpred_overflow_end 
+0x4386 015273 arg -32768 ,temp 
+0x4387 015274 storet 4 ,mem_ad_valpred 
+:      015275 adpcm_cal_valpred_overflow_end:
+0x4388 015276 fetch 1 ,mem_ad_index 
+0x4389 015277 lshift2 pdata ,pdata 
+0x438a 015278 arg mem_ad_stepsizetable ,temp 
+0x438b 015279 iadd temp ,temp 
+0x438c 015280 ifetch 4 ,temp 
+0x438d 015281 store 4 ,mem_ad_step 
+0x438e 015283 fetch 2 ,mem_ad_out_ptr 
+0x438f 015284 fetcht 2 ,mem_ad_valpred 
+0x4390 015285 istoret 2 ,pdata 
+0x4391 015286 increase 2 ,pdata 
+0x4392 015287 store 2 ,mem_ad_out_ptr 
+0x4393 015289 fetch 1 ,mem_ad_in_numsamples 
+0x4394 015290 increase -1 ,pdata 
+0x4395 015291 store 1 ,mem_ad_in_numsamples 
+0x4396 015292 nbranch adpcm_decode_loop ,blank 
+0x4397 015293 fetch 8 ,mem_ad_valpred 
+0x4398 015294 store 8 ,mem_ad_state_valpred 
+0x4399 015295 rtn 
+:      015297 adpcm_cal_index:
+0x439a 015298 iadd temp ,pdata 
+0x439b 015299 bbit0 7 ,adpcm_cal_bigger_zero 
+0x439c 015300 setarg 0 
+0x439d 015301 rtn 
+:      015302 adpcm_cal_bigger_zero:
+0x439e 015303 and pdata ,0xff ,pdata 
+0x439f 015304 sub pdata ,88 ,null 
+0x43a0 015305 rtn positive 
+0x43a1 015306 setarg 88 
+0x43a2 015307 rtn 
+:      015309 adpcm_cal_vpdiff:
+0x43a3 015310 fetchr rega ,4 ,mem_ad_step 
+0x43a4 015311 rshift3 rega ,temp 
+0x43a5 015312 fetch 1 ,mem_ad_delta 
+0x43a6 015313 bbit0 2 ,adpcm_cal_vpdiff1 
+0x43a7 015314 copy rega ,pdata 
+0x43a8 015315 iadd temp ,temp 
+:      015316 adpcm_cal_vpdiff1:
+0x43a9 015317 fetch 1 ,mem_ad_delta 
+0x43aa 015318 bbit0 1 ,adpcm_cal_vpdiff2 
+0x43ab 015319 rshift rega ,pdata 
+0x43ac 015320 iadd temp ,temp 
+:      015321 adpcm_cal_vpdiff2:
+0x43ad 015322 fetch 1 ,mem_ad_delta 
+0x43ae 015323 rtnbit0 0 
+0x43af 015324 rshift2 rega ,pdata 
+0x43b0 015325 iadd temp ,temp 
+0x43b1 015326 rtn 
+:      015331 car_init:
+0x43b2 015332 call enable_authrom 
+0x43b3 015333 rtn wake 
+0x43b4 015334 setarg car_g24_receive_process 
+0x43b5 015335 store 2 ,mem_cb_24g_receive_process 
+0x43b6 015337 setarg g24_bind_ackpayload_prep 
+0x43b7 015338 store 2 ,mem_cb_24g_ackpayload 
+0x43b8 015340 setarg car_g24_cb_data_device1 
+0x43b9 015341 store 2 ,mem_cb_24g_data_device1 
+0x43ba 015343 setarg car_le_before_hibernate 
+0x43bb 015344 store 2 ,mem_cb_before_hibernate 
+0x43bc 015346 setarg car_le_process_lpm_before 
+0x43bd 015347 store 2 ,mem_cb_before_lpm 
+0x43be 015349 setarg car_scale_process_idle 
+0x43bf 015350 store 2 ,mem_cb_idle_process 
+0x43c0 015352 setarg car_scale_process_bb_event 
+0x43c1 015353 store 2 ,mem_cb_bb_event_process 
+0x43c2 015355 setarg app_get_lpm_wake_lock 
+0x43c3 015356 store 2 ,mem_cb_check_wakelock 
+0x43c4 015358 setarg car_le_receive_data 
+0x43c5 015359 store 2 ,mem_cb_att_write 
+0x43c6 015361 setarg car_le_bb_event_timer 
+0x43c7 015362 store 2 ,mem_cb_event_timer 
+0x43c8 015364 bpatch patch05_6 ,mem_patch05 
+0x43c9 015365 call car_init_environment 
+0x43ca 015366 call car_lpm_timer_enable 
+0x43cb 015367 call queue_init 
+0x43cc 015368 jam 2 ,mem_lpm_mult 
+0x43cd 015369 jam power_on ,mem_car_24g_received_pac 
+0x43ce 015370 fetch 1 ,mem_car_config_soft_switch_enable 
+0x43cf 015371 store 1 ,mem_car_hard_soft_switch 
+0x43d0 015372 beq hard_switch ,car_hard_switch_power_on_signal 
+0x43d1 015373 fetch 1 ,mem_car_config_soft_switch_gpio 
+0x43d2 015374 store 1 ,mem_ui_button_gpio 
+0x43d3 015375 jam off ,mem_le_adv_enable 
+:      015376 car_soft_switch_power_on_init:
+0x43d4 015377 call ui_button_init 
+0x43d5 015378 call ui_button_polling 
+0x43d6 015379 jam power_starting ,mem_car_power_state 
+0x43d7 015380 fetch 2 ,mem_ui_state_map 
+0x43d8 015381 rtnbit1 ui_state_btn_down 
+0x43d9 015382 branch app_enter_hibernate 
+:      015385 car_power_off_signal:
+0x43da 015386 branch car_ui_led_init 
+:      015388 car_hard_switch_power_on_signal:
+0x43db 015389 jam power_standby ,mem_car_power_state 
+:      015390 car_soft_switch_power_on_signal:
+0x43dc 015391 jam on ,mem_le_adv_enable 
+0x43dd 015392 setarg fast_adv_interval_value_car 
+0x43de 015393 call shutter_ble_adv_interval_set 
+:      015394 car_le_modified_name_adv:
+0x43df 015395 arg mem_le_name + 7 ,contw 
+0x43e0 015396 fetch 1 ,mem_le_lap 
+:      015397 car_name_loop:
+0x43e1 015398 and pdata ,0xF0 ,temp 
+0x43e2 015399 rshift4 temp ,temp 
+0x43e3 015400 call car_hex_to_ascii 
+0x43e4 015401 istoret 1 ,contw 
+0x43e5 015402 and pdata ,0x0F ,temp 
+0x43e6 015403 call car_hex_to_ascii 
+0x43e7 015404 istoret 1 ,contw 
+0x43e8 015405 call le_modified_name_att_list 
+0x43e9 015406 fetcht 1 ,mem_le_name_len 
+0x43ea 015407 copy temp ,loopcnt 
+0x43eb 015408 arg mem_le_adv_data + 2 ,contw 
+0x43ec 015409 arg mem_le_name ,contr 
+0x43ed 015410 call memcpy 
+:      015411 car_le_modified_name_scan:
+0x43ee 015412 fetcht 1 ,mem_le_name_len 
+0x43ef 015413 copy temp ,loopcnt 
+0x43f0 015414 arg mem_le_scan_data + 2 ,contw 
+0x43f1 015415 arg mem_le_name ,contr 
+0x43f2 015416 branch memcpy 
+:      015417 car_hex_to_ascii:
+0x43f3 015418 sub temp ,9 ,null 
+0x43f4 015419 branch car_hex_num ,positive 
+0x43f5 015420 add temp ,55 ,temp 
+0x43f6 015421 rtn 
+:      015422 car_hex_num:
+0x43f7 015423 add temp ,48 ,temp 
+0x43f8 015424 rtn 
+:      015426 car_ui_led_init:
+0x43f9 015427 fetch 1 ,mem_car_config_blood_led1_gpio 
+0x43fa 015428 bne invalid_pin_num ,car_blood_led_gpio_set 
+:      015429 car_ui_led_init_1:
+0x43fb 015430 fetch 1 ,mem_car_config_pairing_led_gpio 
+0x43fc 015431 bne invalid_pin_num ,car_pairing_led_gpio_set 
+:      015432 car_ui_led_init_2:
+0x43fd 015433 fetch 1 ,mem_car_config_low_voltage_led_gpio 
+0x43fe 015434 bne invalid_pin_num ,car_low_voltage_led_gpio_set 
+:      015435 car_ui_led_init_3:
+0x43ff 015436 fetch 1 ,mem_car_led_num 
+0x4400 015437 copy pdata ,loopcnt 
+0x4401 015438 setarg mem_car_led_map 
+0x4402 015439 copy pdata ,rega 
+:      015440 car_in_lp1:
+0x4403 015441 copy rega ,contr 
+0x4404 015442 ifetch 1 ,contr 
+0x4405 015443 copy contr ,rega 
+0x4406 015444 beq invalid_pin_num ,car_in_lp1_end 
+0x4407 015445 copy pdata ,temp 
+0x4408 015446 call gpio_config_output 
+:      015447 car_in_lp1_end:
+0x4409 015448 loop car_in_lp1 
+:      015449 car_ui_led_init_end:
+0x440a 015450 rtn 
+:      015451 car_blood_led_gpio_set:
+0x440b 015452 fetch 8 ,mem_car_config_blood_led1_gpio 
+0x440c 015453 store 8 ,mem_car_led_map + 2 
+0x440d 015454 branch car_ui_led_init_1 
+:      015455 car_pairing_led_gpio_set:
+0x440e 015456 store 1 ,mem_car_led_map 
+0x440f 015457 branch car_ui_led_init_2 
+:      015458 car_low_voltage_led_gpio_set:
+0x4410 015459 store 1 ,mem_car_led_map + 1 
+0x4411 015460 branch car_ui_led_init_3 
+:      015462 car_init_environment:
+0x4412 015464 call car_g24_init 
+0x4413 015465 call car_g24_load_commom_addr 
+0x4414 015466 arg 0 ,rega 
+0x4415 015467 call pwm_init 
+0x4416 015468 call car_ui_led_init 
+0x4417 015469 call car_start_blink 
+0x4418 015470 call car_init_adc_hvin 
+0x4419 015471 branch car_motor_init 
+:      015472 car_read_otp_addr:
+0x441a 015473 rtn 
+:      015474 car_motor_init:
+0x441b 015475 fetch 1 ,mem_car_motor_gpio_num 
+0x441c 015476 copy pdata ,loopcnt 
+0x441d 015477 setarg mem_car_motor_gpio_map 
+0x441e 015478 copy pdata ,rega 
+:      015479 p_in_lp1:
+0x441f 015480 copy rega ,contr 
+0x4420 015481 ifetch 1 ,contr 
+0x4421 015482 copy contr ,rega 
+0x4422 015483 beq invalid_pin_num ,p_in_lp1_end 
+0x4423 015484 copy pdata ,temp 
+0x4424 015485 store 1 ,mem_car_gpio 
+0x4425 015486 call car_ui_gpio_init 
+:      015487 p_in_lp1_end:
+0x4426 015488 loop p_in_lp1 
+:      015489 p_car_ui_led_init_end:
+0x4427 015490 rtn 
+:      015492 car_ui_gpio_init:
+0x4428 015493 fetch 1 ,mem_car_gpio 
+0x4429 015494 rtneq ui_button_gpio_disable 
+0x442a 015495 iforce temp 
+0x442b 015496 branch gpio_config_output 
+:      015499 car_init_adc_hvin:
+0x442c 015500 jam 100 ,mem_car_notify_vdd_value_last 
+0x442d 015501 rtn 
+:      015503 car_le_before_hibernate:
+0x442e 015504 call car_gpio_set_before_hibernate 
+0x442f 015505 call clear_wake 
+:      015506 car_le_process_lpm_before:
+0x4430 015507 branch keyscan_process_lpm_before 
+:      015509 car_gpio_set_before_hibernate:
+0x4431 015510 call check_51cmd_led_off 
+:      015511 car_gpio_set_before_lpm_common:
+0x4432 015512 arg gpio_number ,loopcnt 
+0x4433 015513 arg core_gpio_conf ,contr 
+:      015514 car_setgpio_loop:
+0x4434 015515 copy contr ,contw 
+0x4435 015516 ifetch 1 ,contr 
+0x4436 015517 beq gpcfg_spid_miso ,car_setgpio_pullup 
+0x4437 015518 beq gpcfg_spid_ncs ,car_setgpio_pullup 
+0x4438 015519 beq gpcfg_spid_sck ,car_setgpio_pullup 
+0x4439 015520 beq gpcfg_spid_mosi ,car_setgpio_pullup 
+0x443a 015521 beq gpcfg_spid_sdio ,car_setgpio_pullup 
+0x443b 015522 beq gpcfg_iic_scl ,car_setgpio_pullup 
+0x443c 015523 beq gpcfg_iic_sda ,car_setgpio_pullup 
+0x443d 015524 beq gpcfg_input ,car_setgpio_pullup 
+:      015525 car_setgpio_loop_end:
+0x443e 015526 loop car_setgpio_loop 
+0x443f 015527 arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+0x4440 015528 isub contr ,null 
+0x4441 015529 branch car_motor_setgpio ,zero 
+:      015530 car_setgpio_loop_ext:
+0x4442 015531 arg gpio_number_ext ,loopcnt 
+0x4443 015532 arg core_gpio_conf_hi ,contr 
+0x4444 015533 branch car_setgpio_loop 
+:      015535 car_setgpio_pullup:
+0x4445 015536 setarg gpcfg_pullup 
+0x4446 015537 istore 1 ,contw 
+0x4447 015538 branch car_setgpio_loop_end 
+:      015539 car_setgpio_pulldown:
+0x4448 015540 setarg gpcfg_pulldown 
+0x4449 015541 istore 1 ,contw 
+0x444a 015542 branch car_setgpio_loop_end 
+:      015543 car_motor_setgpio:
+0x444b 015544 fetch 1 ,mem_car_motor_gpio_num 
+0x444c 015545 copy pdata ,loopcnt 
+0x444d 015546 arg mem_car_motor_gpio_map ,contr 
+:      015547 car_motor_setgpio_loop:
+0x444e 015548 ifetch 1 ,contr 
+0x444f 015549 set1 7 ,pdata 
+0x4450 015550 arg gpcfg_output_low ,temp 
+0x4451 015551 call gpio_config_function 
+0x4452 015552 loop car_motor_setgpio_loop 
+0x4453 015553 rtn 
+:      015555 car_key_scan_process:
+0x4454 015556 branch keyscan_key_process 
+:      015558 car_scale_process_idle:
+0x4455 015559 call car_le_send_packet 
+0x4456 015560 call car_g24_status_process 
+0x4457 015561 branch car_key_scan_process 
+:      015563 car_g24_status_process:
+0x4458 015564 fetch 2 ,mem_ui_state_map 
+0x4459 015565 rtnbit1 ui_state_ble_connected 
+0x445a 015566 fetch 1 ,mem_car_24g_received_pac 
+0x445b 015567 beq work_paired ,car_g24_connected_event 
+0x445c 015568 rtn 
+:      015569 car_g24_connected_event:
+0x445d 015570 fetch 1 ,mem_car_24g_status 
+0x445e 015571 rtneq work_paired 
+0x445f 015572 jam work_paired ,mem_car_24g_status 
+0x4460 015573 call car_lpm_timer_disable 
+0x4461 015574 call car_stop_blink 
+0x4462 015575 branch car_g24_connected 
+:      015577 car_lpm_timer_enable:
+0x4463 015578 fetch 2 ,mem_car_enter_lpm_timer_count 
+0x4464 015579 store 2 ,mem_car_enter_lpm_timer 
+0x4465 015580 jam 0 ,mem_car_enter_lpm_flag 
+0x4466 015581 rtn 
+:      015584 car_lpm_timer_disable:
+0x4467 015585 setarg 0 
+0x4468 015586 branch car_lpm_timer_enable + 1 
+:      015589 car_stop_blink:
+0x4469 015590 arg 0 ,rega 
+0x446a 015591 branch ui_led_blink_stop_global 
+:      015594 car_start_blink:
+0x446b 015595 arg 0 ,rega 
+0x446c 015596 branch ui_led_blink_start_global 
+:      015602 car_le_send_packet:
+0x446d 015603 fetch 2 ,mem_ui_state_map 
+0x446e 015604 rtnbit0 ui_state_ble_connected 
+0x446f 015605 call le_fifo_check_nearly_full 
+0x4470 015606 nrtn blank 
+0x4471 015607 arg mem_car_pop_queue_buff ,rega 
+0x4472 015608 call queue_pop 
+0x4473 015609 nrtn user 
+0x4474 015610 arg mem_car_pop_queue_buff ,contr 
+0x4475 015611 branch le_send_notify_from_list 
+:      015613 car_scale_process_bb_event:
+0x4476 015614 copy regc ,pdata 
+0x4477 015615 beq bt_evt_button_up ,app_event_button_up 
+0x4478 015616 beq bt_evt_button_long_pressed ,app_button_long_pressed 
+0x4479 015617 beq bt_evt_le_connected ,car_scale_event_le_conn 
+0x447a 015618 beq bt_evt_le_disconnected ,car_scale_event_le_discon 
+0x447b 015619 rtn 
+:      015621 car_scale_event_le_conn:
+0x447c 015622 call car_lpm_timer_disable 
+0x447d 015623 call car_stop_blink 
+0x447e 015624 set0 mark_24g_rxmode ,mark 
+0x447f 015625 branch car_scale_process_conn 
+:      015626 car_g24_connected:
+0x4480 015627 fetch 2 ,mem_car_24g_no_data_timeout_count 
+0x4481 015628 store 2 ,mem_car_24g_no_data_timeout_timer 
+:      015629 car_scale_process_conn:
+0x4482 015630 jam 0x14 ,mem_car_notify_vdd_timer 
+0x4483 015631 jam 0 ,mem_lpm_mode 
+0x4484 015632 call app_ble_stop_adv 
+0x4485 015633 branch app_lpm_mult_enable 
+:      015636 car_scale_event_le_discon:
+0x4486 015637 set1 mark_24g_rxmode ,mark 
+0x4487 015638 call car_lpm_timer_enable 
+0x4488 015639 call car_fb_motor_stop 
+0x4489 015640 call car_lr_motor_stop 
+:      015641 car_g24_disconnect:
+0x448a 015642 setarg 0 
+0x448b 015643 store 5 ,mem_car_led_control 
+0x448c 015644 call queue_init 
+0x448d 015645 jam 10 ,mem_motor1_speed 
+0x448e 015646 jam 10 ,mem_motor2_speed 
+0x448f 015647 jam 10 ,mem_motor3_speed 
+0x4490 015649 jam 2 ,mem_lpm_mult 
+0x4491 015650 setarg fast_adv_interval_value_car 
+0x4492 015651 call shutter_ble_adv_interval_set 
+0x4493 015652 branch app_ble_start_adv 
+:      015654 car_le_bb_event_timer:
+0x4494 015655 call car_moto1_blank_data_timer 
+0x4495 015656 call car_moto2_blank_data_timer 
+0x4496 015657 call car_moto3_blank_data_timer 
+0x4497 015660 call car_24g_no_data_timeout_timer 
+0x4498 015661 branch car_24g_bind_enable_timer 
+:      015664 car_24g_bind_enable_timer:
+0x4499 015665 arg mem_car_24g_bind_enable_delay_count ,regc 
+0x449a 015666 arg 0 ,regb 
+0x449b 015667 branch timer_single_step 
+:      015669 car_enter_lpm_timer:
+0x449c 015670 arg mem_car_enter_lpm_timer ,regc 
+0x449d 015671 arg car_enter_lpm_enable ,regb 
+0x449e 015672 branch timer_single_step_2b 
+:      015673 car_enter_lpm_enable:
+0x449f 015674 jam 1 ,mem_car_enter_lpm_flag 
+0x44a0 015675 rtn 
+:      015677 car_24g_no_data_timeout_timer:
+0x44a1 015678 arg mem_car_24g_no_data_timeout_timer ,regc 
+0x44a2 015679 arg car_24g_no_data_timer_timeout ,regb 
+0x44a3 015680 branch timer_single_step_2b 
+:      015681 car_24g_no_data_timer_timeout:
+0x44a4 015682 jam work_search ,mem_car_24g_status 
+0x44a5 015683 jam power_on ,mem_car_24g_received_pac 
+0x44a6 015684 branch car_g24_disconnect 
+:      015686 car_notify_vdd_timer:
+0x44a7 015687 fetch 1 ,mem_car_config_bat_notify_enable 
+0x44a8 015688 rtn blank 
+0x44a9 015689 arg mem_car_notify_vdd_timer ,regc 
+0x44aa 015690 arg car_notify_vdd ,regb 
+0x44ab 015691 branch timer_single_step 
+:      015692 car_notify_vdd:
+0x44ac 015693 fetch 1 ,mem_car_notify_vdd_count 
+0x44ad 015694 store 1 ,mem_car_notify_vdd_timer 
+0x44ae 015695 fetch 1 ,mem_car_working_flag 
+0x44af 015696 nrtn blank 
+:      015697 car_read_hvin:
+0x44b0 015698 call vdd_calculate_by_mode 
+0x44b1 015699 store 2 ,mem_vdd_now_vol 
+0x44b2 015700 arg mem_vdd_calculate_set ,rega 
+0x44b3 015701 call adc_bat_percent_lowpower_out 
+0x44b4 015702 fetcht 1 ,mem_car_notify_vdd_value_last 
+0x44b5 015703 isub temp ,null 
+0x44b6 015704 branch car_notify_vdd_next2 ,positive 
+0x44b7 015705 store 1 ,mem_car_notify_vdd_value_last 
+0x44b8 015706 copy pdata ,temp 
+:      015707 car_notify_vdd_next2:
+0x44b9 015708 storet 1 ,mem_car_notify_vdd_percent 
+0x44ba 015709 fetch 1 ,mem_car_config_low_voltage_percent 
+0x44bb 015710 isub temp ,null 
+0x44bc 015711 call car_enter_low_bat ,positive 
+0x44bd 015712 storet 1 ,mem_notify_bat_payload 
+0x44be 015713 arg 6 ,loopcnt 
+0x44bf 015714 arg mem_notify_bat_head ,contr 
+0x44c0 015715 call calc_check_sum_start 
+0x44c1 015716 store 1 ,mem_notify_bat_check_sum 
+0x44c2 015717 arg mem_notify_bat_packet ,rega 
+0x44c3 015718 branch queue_push 
+:      015719 car_enter_low_bat:
+0x44c4 015720 fetch 1 ,mem_low_bat_flag 
+0x44c5 015721 nrtn blank 
+0x44c6 015722 jam 1 ,mem_low_bat_flag 
+0x44c7 015723 arg 1 ,rega 
+0x44c8 015724 branch ui_led_blink_start_global 
+:      015725 car_low_bat_led_off:
+0x44c9 015726 arg 1 ,rega 
+0x44ca 015727 branch ui_led_blink_stop_global 
+:      015731 calc_check_sum_start:
+0x44cb 015732 arg 0 ,rega 
+:      015733 calc_check_sum_loop:
+0x44cc 015734 ifetch 1 ,contr 
+0x44cd 015735 iadd rega ,rega 
+0x44ce 015736 loop calc_check_sum_loop 
+:      015737 calc_check_sum_and:
+0x44cf 015738 and rega ,0xff ,pdata 
+0x44d0 015739 rtn 
+:      015741 car_le_receive_data:
+0x44d1 015742 fetch 1 ,mem_le_att_opcode 
+0x44d2 015743 beq attop_write_request ,car_le_parse_att_write_request 
+0x44d3 015744 rtn 
+:      015745 car_le_parse_att_write_request:
+0x44d4 015746 fetch 2 ,mem_le_att_handle 
+0x44d5 015747 beq att_car_control_handle ,car_control_le_receive 
+0x44d6 015748 rtn 
+:      015750 le_app_receive_data:
+0x44d7 015751 bpatch patch05_7 ,mem_patch05 
+0x44d8 015752 ifetch 5 ,rega 
+0x44d9 015753 store 5 ,mem_app_receive_temp 
+0x44da 015754 fetch 2 ,mem_app_receive_temp 
+0x44db 015755 arg le_receive_packet_head ,temp 
+0x44dc 015756 isub temp ,null 
+0x44dd 015757 nrtn zero 
+0x44de 015758 fetch 2 ,mem_app_receive_temp + 3 
+0x44df 015759 byteswap pdata ,pdata 
+0x44e0 015760 store 2 ,mem_app_receive_temp + 3 
+0x44e1 015761 copy pdata ,loopcnt 
+0x44e2 015762 increase 5 ,rega 
+0x44e3 015763 copy rega ,contr 
+0x44e4 015764 arg mem_app_receive_temp + 5 ,contw 
+0x44e5 015765 call memcpy 
+0x44e6 015766 ifetch 1 ,contr 
+0x44e7 015767 store 1 ,mem_app_receive_temp + 15 
+0x44e8 015768 arg mem_app_receive_temp + 2 ,rega 
+0x44e9 015769 arg mem_app_receive_temp + 5 ,regb 
+0x44ea 015770 rtn 
+:      015772 car_control_le_receive:
+0x44eb 015773 setarg 0 
+0x44ec 015774 store 5 ,mem_le_receive_payload 
+0x44ed 015775 store 5 ,mem_le_receive_payload + 5 
+0x44ee 015776 call le_app_receive_data 
+0x44ef 015777 copy regb ,contr 
+0x44f0 015778 arg mem_le_receive_payload ,contw 
+0x44f1 015779 arg 10 ,loopcnt 
+0x44f2 015780 call memcpy 
+:      015781 car_receive_cmd_select:
+0x44f3 015782 bpatch patch06_0 ,mem_patch06 
+0x44f4 015783 ifetch 1 ,rega 
+0x44f5 015784 beq car_cmd_old_car_control ,car_drive_old 
+0x44f6 015785 beq car_cmd_old_speed_control ,car_speed_set_old 
+0x44f7 015786 beq car_cmd_l_r_motor_control ,car_motor_control 
+0x44f8 015787 beq car_cmd_f_b_motor_control ,car_motor_control 
+0x44f9 015788 beq car_cmd_ir_control ,car_ir_data_rx_from_app 
+0x44fa 015789 beq car_cmd_led_control ,car_led_control_receive 
+0x44fb 015790 beq car_cmd_device_info ,car_info_request 
+0x44fc 015791 rtn 
+:      015793 car_24g_receive_data:
+0x44fd 015794 call car_control_le_receive 
+0x44fe 015795 fetch 1 ,mem_app_receive_temp + 2 
+0x44ff 015796 beq car_cmd_l_r_motor_control ,car_24g_receive_data_next 
+0x4500 015797 beq car_cmd_f_b_motor_control ,car_24g_receive_data_next 
+0x4501 015798 rtn 
+:      015799 car_24g_receive_data_next:
+0x4502 015800 fetch 1 ,mem_le_receive_payload 
+0x4503 015801 ncall car_moto1_enable_blank_data_timer ,blank 
+0x4504 015802 fetch 1 ,mem_le_receive_payload + 2 
+0x4505 015803 ncall car_moto2_enable_blank_data_timer ,blank 
+0x4506 015804 fetch 1 ,mem_le_receive_payload + 4 
+0x4507 015805 ncall car_moto3_enable_blank_data_timer ,blank 
+0x4508 015806 rtn 
+:      015808 car_moto1_enable_blank_data_timer:
+0x4509 015809 jam 5 ,mem_car_moto1_blank_timer 
+0x450a 015810 rtn 
+:      015811 car_moto2_enable_blank_data_timer:
+0x450b 015812 jam 5 ,mem_car_moto2_blank_timer 
+0x450c 015813 rtn 
+:      015814 car_moto3_enable_blank_data_timer:
+0x450d 015815 jam 5 ,mem_car_moto3_blank_timer 
+0x450e 015816 rtn 
+:      015818 car_moto1_blank_data_timer:
+0x450f 015819 arg mem_car_moto1_blank_timer ,regc 
+0x4510 015820 arg car_moto1_blank_data ,regb 
+0x4511 015821 branch timer_single_step 
+:      015822 car_moto2_blank_data_timer:
+0x4512 015823 arg mem_car_moto2_blank_timer ,regc 
+0x4513 015824 arg car_moto2_blank_data ,regb 
+0x4514 015825 branch timer_single_step 
+:      015826 car_moto3_blank_data_timer:
+0x4515 015827 arg mem_car_moto3_blank_timer ,regc 
+0x4516 015828 arg car_moto3_blank_data ,regb 
+0x4517 015829 branch timer_single_step 
+:      015831 car_moto1_blank_data:
+0x4518 015832 jam 0 ,mem_le_receive_payload 
+0x4519 015833 branch car_motor_control 
+:      015834 car_moto2_blank_data:
+0x451a 015835 jam 0 ,mem_le_receive_payload + 2 
+0x451b 015836 branch car_motor_control 
+:      015837 car_moto3_blank_data:
+0x451c 015838 jam 0 ,mem_le_receive_payload + 4 
+0x451d 015839 branch car_motor_control 
+:      015844 car_drive_old:
+0x451e 015845 fetch 1 ,mem_le_receive_payload 
+0x451f 015846 store 1 ,mem_motor1_status 
+0x4520 015847 fetch 1 ,mem_le_receive_payload + 1 
+0x4521 015848 store 1 ,mem_motor2_status 
+0x4522 015849 branch car_motor_control_common 
+:      015853 car_left_right_control_old:
+0x4523 015854 fetch 1 ,mem_le_receive_payload 
+0x4524 015855 store 1 ,mem_motor2_status 
+0x4525 015856 branch car_motor2_control 
+:      015857 car_front_back_control_old:
+0x4526 015858 fetch 1 ,mem_motor1_speed 
+0x4527 015859 call car_reset_old_speed 
+0x4528 015860 fetch 1 ,mem_le_receive_payload + 1 
+0x4529 015861 store 1 ,mem_motor1_status 
+0x452a 015862 branch car_motor1_control 
+:      015863 car_reset_old_speed:
+0x452b 015864 beq speed_level_2 ,car_reset_old_speed2 
+0x452c 015865 beq speed_level_3 ,car_reset_old_speed3 
+0x452d 015866 store 1 ,mem_motor1_speed 
+0x452e 015867 rtn 
+:      015868 car_reset_old_speed2:
+0x452f 015869 jam speed_level_5 ,mem_motor1_speed 
+0x4530 015870 rtn 
+:      015871 car_reset_old_speed3:
+0x4531 015872 jam speed_level_10 ,mem_motor1_speed 
+0x4532 015873 rtn 
+:      015874 car_speed_set_old:
+0x4533 015875 fetch 1 ,mem_le_receive_payload 
+0x4534 015876 call car_reset_old_speed 
+0x4535 015877 fetch 1 ,mem_motor1_speed 
+0x4536 015878 call car_motor_speed_duty_setting 
+0x4537 015879 call car_motor_speed_duty_transform 
+0x4538 015880 jam 0x00 ,mem_pdatatemp + 1 
+0x4539 015881 branch pwm_duty_cycle_set 
+:      015883 car_motor_control:
+0x453a 015884 fetch 1 ,mem_car_24g_go_die_flag 
+0x453b 015885 nrtn blank 
+0x453c 015886 fetch 6 ,mem_le_receive_payload 
+0x453d 015887 store 6 ,mem_motor1_status 
+0x453e 015888 fetch 1 ,mem_motor1_speed 
+0x453f 015889 fetcht 1 ,mem_motor2_speed 
+0x4540 015890 iand temp ,pdata 
+0x4541 015891 fetcht 1 ,mem_motor3_speed 
+0x4542 015892 iand temp ,pdata 
+0x4543 015893 call car_motor_working_flag ,blank 
+:      015894 car_motor_control_common:
+0x4544 015895 bpatch patch06_1 ,mem_patch06 
+0x4545 015896 fetch 2 ,mem_ui_state_map 
+0x4546 015897 isolate1 ui_state_ble_connected ,pdata 
+0x4547 015898 ncall car_lpm_timer_enable ,true 
+0x4548 015899 call car_motor1_control 
+0x4549 015900 call car_motor2_control 
+0x454a 015901 branch car_conn_led_state 
+:      015903 car_conn_led_state:
+0x454b 015904 fetch 1 ,mem_motor1_status 
+0x454c 015905 fetcht 1 ,mem_motor2_status 
+0x454d 015906 iadd temp ,pdata 
+0x454e 015907 nbranch check_51cmd_led_on ,blank 
+0x454f 015908 branch check_51cmd_led_off 
+:      015910 car_motor1_control:
+0x4550 015911 arg mem_motor1_status ,contr 
+0x4551 015912 branch car_motor1_status_select 
+:      015913 car_motor2_control:
+0x4552 015914 arg mem_motor2_status ,contr 
+0x4553 015915 branch car_motor2_status_select 
+:      015916 car_motor3_control:
+0x4554 015917 arg mem_motor3_status ,contr 
+0x4555 015918 branch car_motor_status_select 
+:      015919 car_motor_working_flag:
+0x4556 015920 jam 0 ,mem_car_working_flag 
+0x4557 015921 rtn 
+:      015923 car_motor1_status_select:
+0x4558 015924 ifetch 1 ,contr 
+0x4559 015925 beq turn_front ,car_lr_motor_stop 
+0x455a 015926 beq turn_left ,car_lr_motor_left 
+0x455b 015927 beq turn_right ,car_lr_motor_right 
+0x455c 015928 rtn 
+:      015929 car_motor2_status_select:
+0x455d 015930 ifetch 1 ,contr 
+0x455e 015931 beq motor_stop ,car_fb_motor_stop 
+0x455f 015932 beq go_back ,car_fb_motor_front 
+0x4560 015933 beq go_front ,car_fb_motor_back 
+0x4561 015934 rtn 
+:      015936 car_lr_motor_stop:
+0x4562 015937 fetcht 1 ,mem_car_motor_left_gpio 
+0x4563 015938 call gpio_out_inactive 
+0x4564 015939 fetcht 1 ,mem_car_motor_right_gpio 
+0x4565 015940 branch gpio_out_inactive 
+:      015941 car_lr_motor_left:
+0x4566 015942 fetcht 1 ,mem_car_motor_left_gpio 
+0x4567 015943 call gpio_out_active 
+0x4568 015944 fetcht 1 ,mem_car_motor_right_gpio 
+0x4569 015945 branch gpio_out_inactive 
+:      015946 car_lr_motor_right:
+0x456a 015947 fetcht 1 ,mem_car_motor_left_gpio 
+0x456b 015948 call gpio_out_inactive 
+0x456c 015949 fetcht 1 ,mem_car_motor_right_gpio 
+0x456d 015950 branch gpio_out_active 
+:      015951 car_fb_motor_stop:
+0x456e 015952 fetcht 1 ,mem_car_motor_front_gpio 
+0x456f 015953 call gpio_out_inactive 
+0x4570 015954 fetcht 1 ,mem_car_motor_back_gpio 
+0x4571 015955 branch gpio_out_inactive 
+:      015956 car_fb_motor_front:
+0x4572 015957 fetcht 1 ,mem_car_motor_front_gpio 
+0x4573 015958 call gpio_out_active 
+0x4574 015959 fetcht 1 ,mem_car_motor_back_gpio 
+0x4575 015960 branch gpio_out_inactive 
+:      015961 car_fb_motor_back:
+0x4576 015962 fetcht 1 ,mem_car_motor_front_gpio 
+0x4577 015963 call gpio_out_inactive 
+0x4578 015964 fetcht 1 ,mem_car_motor_back_gpio 
+0x4579 015965 branch gpio_out_active 
+:      015970 car_motor_status_select:
+0x457a 015971 bpatch patch06_2 ,mem_patch06 
+0x457b 015972 ifetch 1 ,contr 
+0x457c 015973 beq motor_stop ,car_motor_stop 
+0x457d 015974 beq go_front ,car_motor_positive 
+0x457e 015975 beq go_back ,car_motor_negative 
+0x457f 015976 rtn 
+:      015977 car_motor_positive:
+0x4580 015978 jam 0 ,mem_motor_select_p_n 
+0x4581 015979 branch car_motor_negative + 1 
+:      015980 car_motor_negative:
+0x4582 015981 jam 1 ,mem_motor_select_p_n 
+0x4583 015982 ifetch 1 ,contr 
+0x4584 015983 store 1 ,mem_car_motor_speed 
+0x4585 015984 ifetch 8 ,regb 
+0x4586 015985 branch car_motor_work 
+:      015987 car_motor_stop:
+0x4587 015988 ifetch 1 ,regb 
+0x4588 015989 call pwm_disable 
+0x4589 015990 increase 1 ,regb 
+0x458a 015991 ifetch 1 ,regb 
+0x458b 015992 branch pwm_disable 
+:      015993 car_motor_work:
+0x458c 015994 store 8 ,mem_motor_pwm_pin1_set 
+0x458d 015995 jam 1 ,mem_car_working_flag 
+0x458e 015996 fetch 1 ,mem_motor_select_p_n 
+0x458f 015997 beq 0 ,car_motor_select_positive 
+:      015998 car_motor_select_negative:
+0x4590 015999 fetch 1 ,mem_motor_pwm_pin2_set 
+0x4591 016000 store 1 ,mem_motor_pwm_pin_set 
+0x4592 016001 fetch 1 ,mem_motor_pwm_pin1_set 
+:      016002 car_motor_work_next:
+0x4593 016003 call pwm_disable 
+0x4594 016004 fetch 1 ,mem_car_motor_speed 
+0x4595 016005 call car_motor_speed_duty_setting 
+0x4596 016006 store 1 ,mem_motor_pwm_dute_set 
+0x4597 016007 fetch 6 ,mem_motor_pwm_pin_set 
+0x4598 016008 store 6 ,mem_pdatatemp 
+0x4599 016009 branch pwm_out_set 
+:      016010 car_motor_select_positive:
+0x459a 016011 fetch 1 ,mem_motor_pwm_pin1_set 
+0x459b 016012 store 1 ,mem_motor_pwm_pin_set 
+0x459c 016013 fetch 1 ,mem_motor_pwm_pin2_set 
+0x459d 016014 branch car_motor_work_next 
+:      016016 car_motor_speed_duty_setting:
+0x459e 016017 mul32 pdata ,5 ,pdata 
+0x459f 016018 add pdata ,50 ,pdata 
+0x45a0 016019 rtn 
+:      016020 car_motor_speed_duty_transform:
+0x45a1 016021 arg 12000 ,temp 
+0x45a2 016022 imul32 temp ,pdata 
+0x45a3 016023 div pdata ,100 
+0x45a4 016024 call wait_div_end 
+0x45a5 016025 quotient temp 
+0x45a6 016026 copy temp ,rega 
+0x45a7 016027 setarg 12000 
+0x45a8 016028 isub temp ,regb 
+0x45a9 016029 rtn 
+:      016031 car_ir_data_rx_from_app:
+0x45aa 016032 rtn 
+:      016034 car_led_control_receive:
+0x45ab 016035 fetch 8 ,mem_le_receive_payload 
+0x45ac 016036 store 8 ,mem_car_led_control 
+0x45ad 016037 rtn 
+:      016039 car_info_request:
+0x45ae 016040 fetch 1 ,mem_car_config_device_select 
+0x45af 016041 store 1 ,mem_car_info_request_payload 
+0x45b0 016042 fetch 1 ,mem_car_config_motor_layout 
+0x45b1 016043 store 1 ,mem_car_info_request_payload + 1 
+0x45b2 016044 fetch 1 ,mem_car_config_ir_enable 
+0x45b3 016045 store 1 ,mem_car_info_request_payload + 2 
+0x45b4 016046 arg 13 ,loopcnt 
+0x45b5 016047 arg mem_car_info_request_head ,contr 
+0x45b6 016048 call calc_check_sum_start 
+0x45b7 016049 store 1 ,mem_car_info_request_checksum 
+0x45b8 016050 arg mem_car_info_request ,rega 
+0x45b9 016051 branch queue_push 
+:      016055 car_g24_init:
+0x45ba 016056 setarg 0 
+0x45bb 016057 store 8 ,mem_24g_bind_payload 
+0x45bc 016058 call g24_receive_init 
+0x45bd 016059 branch g24_mode_switch_init 
+:      016061 car_g24_receive_process:
+0x45be 016062 call car_g24_mode_switch 
+0x45bf 016063 call car_g24_work_mode 
+0x45c0 016064 call car_g24_bind_mode 
+0x45c1 016065 branch car_g24_lpm_dipatch 
+:      016067 car_g24_mode_switch:
+0x45c2 016068 call g24_mode_switch_bind_work 
+:      016069 car_g24_bind_mode_enable:
+0x45c3 016070 fetch 1 ,mem_24g_work_mode 
+0x45c4 016071 rtnne dongle_bind 
+0x45c5 016072 fetch 1 ,mem_car_24g_bind_enable_delay_count 
+0x45c6 016073 nbranch g24_switch_work_mode ,blank 
+0x45c7 016074 fetch 1 ,mem_car_24g_status 
+0x45c8 016075 beq work_search ,g24_switch_work_mode 
+0x45c9 016076 rtn 
+:      016078 car_g24_work_mode:
+0x45ca 016079 fetch 1 ,mem_24g_work_mode 
+0x45cb 016080 rtnne dongle_work 
+0x45cc 016081 call car_g24_work_mode_start 
+0x45cd 016082 branch car_g24_ch_polling_clear ,user3 
+:      016083 car_g24_receive_ch_polling:
+0x45ce 016084 fetch 1 ,mem_car_enter_lpm_flag 
+0x45cf 016085 rtn blank 
+0x45d0 016086 fetch 1 ,mem_car_24g_ch_polling 
+0x45d1 016087 increase 1 ,pdata 
+0x45d2 016088 store 1 ,mem_car_24g_ch_polling 
+0x45d3 016089 beq 4 ,car_g24_ch_polling_clear 
+0x45d4 016090 call g24_ch 
+0x45d5 016091 call car_g24_receive_packet_start 
+0x45d6 016092 nbranch car_g24_receive_ch_polling ,user3 
+:      016093 car_g24_ch_polling_clear:
+0x45d7 016094 jam 0 ,mem_car_24g_ch_polling 
+0x45d8 016095 rtn 
+:      016096 car_g24_work_mode_start:
+0x45d9 016097 fetch 1 ,mem_24g_work_mode 
+0x45da 016098 rtnne dongle_work 
+0x45db 016099 call car_g24_work_init 
+0x45dc 016100 call g24_ch_process 
+0x45dd 016101 branch car_g24_receive_packet_start 
+:      016102 car_g24_work_init:
+0x45de 016103 fetch 1 ,mem_24g_mode_init 
+0x45df 016104 rtnbit1 dongle_work 
+0x45e0 016105 set1 dongle_work ,pdata 
+0x45e1 016106 store 1 ,mem_24g_mode_init 
+0x45e2 016107 fetch 1 ,mem_tx_power_temp 
+0x45e3 016108 store 1 ,mem_tx_power 
+0x45e4 016109 jam 0 ,mem_24g_ackpayload_enable 
+0x45e5 016110 jam 0 ,mem_usb_tx_enable 
+0x45e6 016111 jam 1 ,mem_24g_abort_packet 
+0x45e7 016112 jam 0 ,mem_24g_pid 
+0x45e8 016114 fetch 4 ,mem_car_24g_commom_addr 
+0x45e9 016115 branch g24_work_init + 12 
+:      016116 car_g24_receive_packet_start:
+0x45ea 016117 call g24_receive_transmit_ack 
+0x45eb 016118 nbranch g24_rx_interrupt_clear ,user3 
+:      016119 p_g24_receive_packet_parse:
+0x45ec 016120 call g24_receive_packet_parse_pid_crc 
+0x45ed 016121 nbranch g24_rx_interrupt_clear ,user 
+0x45ee 016122 fetch 1 ,mem_24g_rxdata_length 
+0x45ef 016123 branch g24_rx_interrupt_clear ,blank 
+0x45f0 016124 increase 2 ,pdata 
+0x45f1 016125 iforce loopcnt 
+0x45f2 016126 arg mem_24g_rxbuf ,contr 
+0x45f3 016127 arg mem_24g_rxdata_temp ,contw 
+0x45f4 016128 call memcpy 
+0x45f5 016129 jam 0 ,mem_24g_mode_switch 
+0x45f6 016130 fetch 1 ,mem_24g_pair_mode 
+0x45f7 016131 call g24_enable_nodata_timer ,blank 
+0x45f8 016132 fetch 1 ,mem_24g_rxdata_temp + 2 
+0x45f9 016133 beq datatype_attemp ,car_g24_data_attemp 
+0x45fa 016134 beq datatype_device1 ,car_g24_data_device1 
+0x45fb 016135 branch g24_receive_packet_parse + 14 
+:      016136 car_g24_data_attemp:
+0x45fc 016137 fetch 1 ,mem_24g_pair_mode 
+0x45fd 016138 nrtn blank 
+0x45fe 016139 fetch 1 ,mem_24g_bind_device_status 
+0x45ff 016140 rtn blank 
+0x4600 016142 branch g24_data_attemp 
+:      016143 car_g24_data_device1:
+0x4601 016144 call g24_ch_timer_reinit 
+0x4602 016145 fetch 1 ,mem_24g_abort_packet 
+0x4603 016146 fetcht 1 ,mem_24g_rxdata_temp 
+0x4604 016147 isolate1 bit_abort ,temp 
+0x4605 016148 setflag true ,0 ,pdata 
+0x4606 016149 store 1 ,mem_24g_abort_packet 
+0x4607 016150 beq 1 ,car_g24_data_attemp_device1_abort 
+0x4608 016151 branch g24_data_device1 + 7 
+:      016152 car_g24_data_attemp_device1_abort:
+0x4609 016153 fetch 1 ,mem_device_option 
+0x460a 016154 sub pdata ,dvc_op_car ,null 
+0x460b 016155 call check_51cmd_led_on ,zero 
+0x460c 016156 fetch 4 ,mem_24g_rxdata_temp + 10 
+0x460d 016157 branch g24_store_device1_addr 
+:      016159 car_g24_bind_mode:
+0x460e 016160 fetch 1 ,mem_24g_work_mode 
+0x460f 016161 rtnne dongle_bind 
+0x4610 016162 call g24_bind_init 
+0x4611 016163 call car_g24_bind_device_addr 
+0x4612 016165 call g24_rx_interrupt_clear 
+0x4613 016166 call g24_receive_packet 
+0x4614 016167 nbranch g24_rx_interrupt_clear ,user3 
+0x4615 016168 call g24_bind_data_parse 
+0x4616 016169 call g24_transmit_ack 
+0x4617 016170 call g24_bind_device_status_check 
+0x4618 016171 call g24_bind_data_process + 8 
+0x4619 016173 fetch 1 ,mem_24g_bind_device_status 
+0x461a 016174 nbranch car_g24_bind_mode_exit ,blank 
+0x461b 016175 call g24_nodata_process 
+0x461c 016176 fetch 1 ,mem_24g_nodata_timer_enable 
+0x461d 016177 rtn blank 
+0x461e 016178 setarg 0 
+0x461f 016179 store 4 ,mem_24g_device1_addr 
+0x4620 016180 rtn 
+:      016181 car_g24_bind_mode_exit:
+0x4621 016182 jam 0 ,mem_24g_mode_switch 
+0x4622 016183 arg 0 ,rega 
+0x4623 016184 call check_51cmd_led_on 
+0x4624 016185 call g24_switch_work_mode 
+0x4625 016186 call g24_timer_init 
+0x4626 016188 fetch 4 ,mem_24g_lap 
+0x4627 016189 store 4 ,mem_car_24g_commom_addr 
+0x4628 016190 fetch 1 ,mem_car_save_addr_flag 
+0x4629 016191 ncall car_g24_save_commom_addr ,blank 
+0x462a 016193 fetch 4 ,mem_car_24g_commom_addr 
+0x462b 016194 branch g24_update_addr_and_synccrc8 
+:      016196 car_g24_save_commom_addr:
+0x462c 016198 fetch 1 ,mem_car_save_addr_flag 
+0x462d 016199 rtn blank 
+0x462e 016200 fetch 1 ,mem_24g_transmitter_addr + 1 
+0x462f 016201 store 1 ,mem_car_24g_commom_addr + 3 
+0x4630 016203 fetch 1 ,mem_24g_lap + 1 
+0x4631 016204 store 1 ,mem_car_24g_commom_addr + 2 
+0x4632 016206 fetch 1 ,mem_24g_transmitter_addr 
+0x4633 016207 store 1 ,mem_car_24g_commom_addr + 1 
+0x4634 016209 fetch 1 ,mem_24g_lap 
+0x4635 016210 store 1 ,mem_car_24g_commom_addr 
+0x4636 016211 rtn 
+0x4637 016212 call car_g24_search_commom_addr 
+0x4638 016213 fetch 4 ,mem_car_24g_commom_addr 
+0x4639 016214 fetcht 4 ,mem_car_24g_commom_addr_temp 
+0x463a 016215 isub temp ,null 
+0x463b 016216 rtn zero 
+0x463c 016217 copy regc ,regb 
+0x463d 016218 arg mem_car_24g_commom_addr ,rega 
+0x463e 016219 arg 4 ,loopcnt 
+0x463f 016220 branch otp_write 
+:      016222 car_g24_load_commom_addr:
+0x4640 016224 fetch 4 ,mem_24g_lap 
+0x4641 016225 store 4 ,mem_car_24g_commom_addr 
+0x4642 016226 fetch 1 ,mem_car_save_addr_flag 
+0x4643 016227 rtn blank 
+0x4644 016228 rtn 
+0x4645 016229 call car_g24_search_commom_addr 
+0x4646 016230 fetch 4 ,mem_car_24g_commom_addr_temp 
+0x4647 016231 rtn blank 
+0x4648 016232 store 4 ,mem_car_24g_commom_addr 
+0x4649 016233 rtn 
+:      016236 car_g24_search_commom_addr:
+0x464a 016237 rtn 
+0x464b 016238 fetch 1 ,mem_car_save_addr_flag 
+0x464c 016239 rtn blank 
+0x464d 016240 arg otp_offset_car_commom_start_addr ,regc 
+:      016241 car_g24_search_commom_addr_loop:
+0x464e 016242 copy regc ,regb 
+0x464f 016243 arg mem_car_24g_commom_addr_read ,rega 
+0x4650 016244 arg 4 ,loopcnt 
+0x4651 016245 call otp_read_data 
+0x4652 016246 fetch 4 ,mem_car_24g_commom_addr_read 
+0x4653 016247 rtn blank 
+0x4654 016248 store 4 ,mem_car_24g_commom_addr_temp 
+0x4655 016249 copy regc ,pdata 
+0x4656 016250 arg otp_offset_car_commom_end_addr ,temp 
+0x4657 016251 isub temp ,null 
+0x4658 016252 rtn positive 
+0x4659 016253 increase 4 ,regc 
+0x465a 016254 branch car_g24_search_commom_addr_loop 
+:      016256 car_g24_bind_device_addr:
+0x465b 016257 fetch 4 ,mem_24g_device1_addr 
+0x465c 016258 rtn blank 
+0x465d 016259 branch g24_update_addr_and_synccrc8 
+:      016261 car_g24_cb_data_device1:
+0x465e 016262 fetch 2 ,mem_ui_state_map 
+0x465f 016263 rtnbit1 ui_state_ble_connected 
+0x4660 016264 fetch 2 ,mem_car_24g_no_data_timeout_count 
+0x4661 016265 store 2 ,mem_car_24g_no_data_timeout_timer 
+0x4662 016266 jam work_paired ,mem_car_24g_received_pac 
+0x4663 016267 arg mem_24g_rxdata_temp + 3 ,rega 
+0x4664 016268 branch car_24g_receive_data 
+:      016270 car_g24_lpm_dipatch:
+0x4665 016271 fetch 1 ,mem_car_enter_lpm_flag 
+0x4666 016272 rtn blank 
+0x4667 016273 call car_g24_lpm_wait 
+0x4668 016274 nrtn user 
+0x4669 016275 fetch 3 ,mem_24g_enter_hibernate 
+0x466a 016276 call clk2lpo 
+0x466b 016277 storet 4 ,mem_sleep_counter 
+0x466c 016278 branch lpm_sleep 
+:      016279 car_g24_lpm_wait:
+0x466d 016280 enable user 
+0x466e 016281 call lpo_calibration 
+0x466f 016282 fetch 3 ,mem_clks_per_lpo 
+0x4670 016283 branch disable_user ,blank 
+0x4671 016284 branch car_le_process_lpm_before 
+:      016290 remote_car_init:
+0x4672 016291 rtn wake 
+0x4673 016292 call remote_car_default_init 
+0x4674 016293 call keyscan_key_init 
+0x4675 016294 setarg remote_car_g24_package_data 
+0x4676 016295 store 2 ,mem_cb_24g_transmit_data 
+0x4677 016297 setarg remote_car_process_lpm_before 
+0x4678 016298 store 2 ,mem_cb_24g_lpm_before 
+0x4679 016300 setarg remote_car_le_before_hibernate 
+0x467a 016301 store 2 ,mem_cb_before_hibernate 
+0x467b 016303 setarg remote_car_scale_process_idle 
+0x467c 016304 store 2 ,mem_cb_idle_process 
+0x467d 016306 setarg remote_car_scale_process_bb_event 
+0x467e 016307 store 2 ,mem_cb_bb_event_process 
+0x467f 016309 setarg remote_car_event_timer 
+0x4680 016310 store 2 ,mem_cb_event_timer 
+0x4681 016312 setarg remote_car_power_off_signal 
+0x4682 016313 store 2 ,mem_remote_car_power_off_cb 
+0x4683 016315 setarg remote_car_soft_switch_power_on_signal 
+0x4684 016316 store 2 ,mem_remote_car_power_standby_cb 
+0x4685 016319 bpatch patch06_3 ,mem_patch06 
+0x4686 016320 call set_eeprom_size_2k 
+0x4687 016321 call remote_car_init_environment 
+0x4688 016323 call queue_init 
+0x4689 016324 fetch 1 ,mem_remote_car_config_soft_switch_enable 
+0x468a 016325 store 1 ,mem_remote_car_hard_soft_switch 
+0x468b 016326 beq hard_switch ,remote_car_hard_switch_power_on_signal 
+0x468c 016327 fetch 1 ,mem_remote_car_config_soft_switch_gpio 
+0x468d 016328 store 1 ,mem_ui_button_gpio 
+:      016329 remote_car_soft_switch_power_on_init:
+0x468e 016330 call remote_car_ui_led_init 
+0x468f 016331 call ui_button_init 
+0x4690 016332 call ui_button_polling 
+0x4691 016333 jam power_starting ,mem_remote_car_power_state 
+0x4692 016334 fetch 2 ,mem_ui_state_map 
+0x4693 016335 rtnbit1 ui_state_btn_down 
+0x4694 016336 branch app_enter_hibernate 
+:      016340 remote_car_hard_switch_power_on_signal:
+0x4695 016341 jam power_standby ,mem_remote_car_power_state 
+:      016342 remote_car_soft_switch_power_on_signal:
+0x4696 016343 call remote_car_ui_led_init 
+0x4697 016344 arg 0 ,rega 
+0x4698 016345 call ui_led_blink_start_global 
+0x4699 016346 call remote_car_g24_load_commom_addr 
+0x469a 016347 fetch 4 ,mem_remote_24g_commom_addr 
+0x469b 016348 store 4 ,mem_24g_addr 
+0x469c 016349 branch g24_pair_start ,blank 
+0x469d 016350 fetch 4 ,mem_24g_addr 
+0x469e 016351 store 4 ,mem_24g_receiver_addr 
+0x469f 016352 fetch 2 ,mem_24g_reconn_timeout_init 
+0x46a0 016353 store 2 ,mem_24g_reconn_timeout 
+0x46a1 016354 branch g24_reconn_start 
+:      016356 remote_car_set_24g_addr_eeprom:
+0x46a2 016357 arg 4 ,temp 
+0x46a3 016358 arg mem_24g_addr ,rega 
+0x46a4 016359 arg remote_info_eeprom_offect ,regb 
+0x46a5 016360 rtn 
+:      016363 remote_car_power_off_signal:
+:      016364 remote_car_ui_led_init:
+0x46a6 016365 bpatch patch06_4 ,mem_patch06 
+0x46a7 016366 fetch 1 ,mem_remote_car_config_connect_led_gpio 
+0x46a8 016367 bne invalid_pin_num ,remote_car_pairing_led_gpio_set 
+:      016368 remote_car_ui_led_init_1:
+0x46a9 016369 fetcht 1 ,mem_remote_car_led_map 
+0x46aa 016370 branch gpio_config_output 
+:      016371 remote_car_pairing_led_gpio_set:
+0x46ab 016372 store 1 ,mem_remote_car_led_map 
+0x46ac 016373 branch remote_car_ui_led_init_1 
+:      016376 remote_car_init_environment:
+0x46ad 016377 call g24_transmit_init 
+:      016378 remote_no_data_timer_init:
+0x46ae 016379 fetch 2 ,mem_remote_car_no_data_timeout 
+0x46af 016380 store 2 ,mem_remote_car_no_data_timer 
+0x46b0 016381 rtn 
+:      016383 remote_car_le_before_hibernate:
+0x46b1 016384 call remote_car_process_lpm_before 
+:      016385 remote_gpio_set_before_hibernate:
+0x46b2 016386 fetch 1 ,mem_remote_style_struct_led_gpio 
+0x46b3 016387 set1 7 ,pdata 
+0x46b4 016388 arg gpcfg_output_high ,temp 
+0x46b5 016389 branch gpio_config_function 
+:      016391 remote_car_process_lpm_before:
+0x46b6 016392 call gpio_set_before_lpm 
+0x46b7 016393 branch keyscan_process_lpm_before 
+:      016395 remote_car_key_scan_process:
+0x46b8 016396 call keyscan_key_process 
+0x46b9 016397 call get_remote_key_state 
+0x46ba 016398 call remote_conn_led_state 
+0x46bb 016399 branch send_data 
+:      016401 remote_conn_led_state:
+0x46bc 016402 fetch 1 ,mem_remote_car_24g_status 
+0x46bd 016403 rtnne work_paired 
+0x46be 016404 fetch 4 ,mem_remote_car_motor1_key0_press_state 
+0x46bf 016405 branch remote_car_stop_state ,blank 
+0x46c0 016406 jam 0 ,mem_remote_car_no_data_check 
+0x46c1 016407 enable user 
+0x46c2 016408 branch check_51cmd_led_on 
+:      016409 remote_car_stop_state:
+0x46c3 016410 fetch 1 ,mem_remote_car_no_data_check 
+0x46c4 016411 rtneq 0xff 
+0x46c5 016412 pincrease 1 
+0x46c6 016413 store 1 ,mem_remote_car_no_data_check 
+0x46c7 016414 disable user 
+0x46c8 016415 branch check_51cmd_led_off 
+:      016418 get_remote_key_state:
+0x46c9 016419 fetcht 2 ,mem_key_value_retention 
+0x46ca 016420 and temp ,0x01 ,pdata 
+0x46cb 016421 rshift temp ,temp 
+0x46cc 016422 store 1 ,mem_remote_car_motor1_key0_press_state 
+0x46cd 016423 and temp ,0x01 ,pdata 
+0x46ce 016424 rshift temp ,temp 
+0x46cf 016425 store 1 ,mem_remote_car_motor1_key1_press_state 
+0x46d0 016426 and temp ,0x01 ,pdata 
+0x46d1 016427 rshift temp ,temp 
+0x46d2 016428 store 1 ,mem_remote_car_motor2_key2_press_state 
+0x46d3 016429 and temp ,0x01 ,pdata 
+0x46d4 016430 rshift temp ,temp 
+0x46d5 016431 store 1 ,mem_remote_car_motor2_key3_press_state 
+0x46d6 016432 rtn 
+:      016433 send_data:
+0x46d7 016434 bpatch patch06_5 ,mem_patch06 
+0x46d8 016435 call remote_car_fb_check 
+0x46d9 016436 call remote_car_lr_check 
+0x46da 016437 call remote_car_no_data_timeout_check 
+0x46db 016438 nrtn user 
+0x46dc 016439 branch remote_car_send_key 
+:      016442 remote_car_no_data_timeout_check:
+0x46dd 016443 fetch 1 ,mem_remote_car_24g_status 
+0x46de 016444 rtnne work_paired 
+0x46df 016445 fetch 1 ,mem_remote_car_no_data_check 
+0x46e0 016446 rtn blank 
+0x46e1 016447 sub pdata ,1 ,null 
+0x46e2 016448 nrtn positive 
+0x46e3 016449 fetch 2 ,mem_24g_reconn_timeout_init 
+0x46e4 016450 store 2 ,mem_24g_reconn_timeout 
+0x46e5 016451 branch enable_user 
+:      016455 remote_car_fb_check:
+0x46e6 016456 fetch 1 ,mem_remote_car_motor1_key0_press_state 
+0x46e7 016457 nbranch remote_car_send_motor1_key0_press ,blank 
+0x46e8 016458 fetch 1 ,mem_remote_car_motor1_key1_press_state 
+0x46e9 016459 nbranch remote_car_send_motor1_key1_press ,blank 
+0x46ea 016460 branch remote_car_send_motor1_key0_rel 
+:      016462 remote_car_lr_check:
+0x46eb 016463 fetch 1 ,mem_remote_car_motor2_key2_press_state 
+0x46ec 016464 nbranch remote_car_send_motor2_key2_press ,blank 
+0x46ed 016465 fetch 1 ,mem_remote_car_motor2_key3_press_state 
+0x46ee 016466 nbranch remote_car_send_motor2_key3_press ,blank 
+0x46ef 016467 branch remote_car_send_motor2_key2_rel 
+:      016470 remote_car_scale_process_idle:
+0x46f0 016471 call remote_car_24g_status_process 
+0x46f1 016472 branch remote_car_key_scan_process 
+:      016474 remote_car_scale_process_bb_event:
+0x46f2 016475 copy regc ,pdata 
+0x46f3 016476 beq bt_evt_button_up ,app_event_button_up 
+0x46f4 016477 beq bt_evt_button_long_pressed ,app_button_long_pressed 
+0x46f5 016478 beq bt_evt_24g_pairing_complete ,remote_car_24g_pairing_complete 
+0x46f6 016479 beq bt_evt_24g_attempt_success ,remote_car_24g_attempt_success 
+0x46f7 016480 beq bt_evt_24g_attempt_fail ,remote_car_24g_attempt_fail 
+0x46f8 016481 rtn 
+:      016483 remote_car_24g_attempt_fail:
+0x46f9 016484 branch g24_txbuf_clear 
+:      016486 remote_car_24g_pairing_complete:
+0x46fa 016487 bpatch patch06_6 ,mem_patch06 
+0x46fb 016488 fetch 4 ,mem_24g_receiver_addr 
+0x46fc 016489 store 4 ,mem_remote_24g_commom_addr 
+0x46fd 016490 fetch 1 ,mem_remote_save_addr_flag 
+0x46fe 016491 ncall remote_car_g24_save_commom_addr ,blank 
+0x46ff 016492 fetch 4 ,mem_remote_24g_commom_addr 
+0x4700 016493 call g24_update_addr_and_synccrc8 
+:      016496 remote_car_24g_attempt_success:
+0x4701 016497 jam 0 ,mem_24g_conn_sm 
+0x4702 016498 jam work_paired ,mem_remote_car_24g_auto_work_step 
+0x4703 016499 jam work_paired ,mem_remote_car_24g_pair_success_flag 
+0x4704 016500 jam 0 ,mem_24g_reconn_timeout 
+0x4705 016501 rtn 
+:      016502 remote_car_g24_save_commom_addr:
+0x4706 016505 fetch 1 ,mem_remote_save_addr_flag 
+0x4707 016506 rtn blank 
+0x4708 016507 fetch 1 ,mem_24g_lap + 1 
+0x4709 016508 store 1 ,mem_remote_24g_commom_addr + 3 
+0x470a 016510 fetch 1 ,mem_24g_receiver_addr + 1 
+0x470b 016511 store 1 ,mem_remote_24g_commom_addr + 2 
+0x470c 016513 fetch 1 ,mem_24g_lap 
+0x470d 016514 store 1 ,mem_remote_24g_commom_addr + 1 
+0x470e 016516 fetch 1 ,mem_24g_receiver_addr 
+0x470f 016517 store 1 ,mem_remote_24g_commom_addr 
+0x4710 016518 call remote_car_g24_search_commom_addr 
+0x4711 016519 fetch 4 ,mem_remote_24g_commom_addr 
+0x4712 016520 fetcht 4 ,mem_remote_24g_commom_addr_temp 
+0x4713 016521 isub temp ,null 
+0x4714 016522 rtn zero 
+0x4715 016523 copy regc ,regb 
+0x4716 016524 arg mem_remote_24g_commom_addr ,rega 
+0x4717 016525 arg 4 ,loopcnt 
+0x4718 016526 branch otp_write 
+:      016528 remote_car_g24_load_commom_addr:
+0x4719 016529 fetch 1 ,mem_remote_save_addr_flag 
+0x471a 016530 rtn blank 
+0x471b 016531 call remote_car_g24_search_commom_addr 
+0x471c 016532 fetch 4 ,mem_remote_24g_commom_addr_temp 
+0x471d 016533 rtn blank 
+0x471e 016534 store 4 ,mem_remote_24g_commom_addr 
+0x471f 016535 rtn 
+:      016538 remote_car_g24_search_commom_addr:
+0x4720 016539 fetch 1 ,mem_remote_save_addr_flag 
+0x4721 016540 rtn blank 
+0x4722 016541 arg otp_offset_remote_commom_start_addr ,regc 
+:      016542 remote_car_g24_search_commom_addr_loop:
+0x4723 016543 copy regc ,regb 
+0x4724 016544 arg mem_remote_24g_commom_addr_temp ,rega 
+0x4725 016545 arg 4 ,loopcnt 
+0x4726 016546 call otp_read_data 
+0x4727 016547 fetch 4 ,mem_remote_24g_commom_addr_read 
+0x4728 016548 rtn blank 
+0x4729 016549 store 4 ,mem_remote_24g_commom_addr_temp 
+0x472a 016550 copy regc ,pdata 
+0x472b 016551 arg otp_offset_remote_commom_end_addr ,temp 
+0x472c 016552 isub temp ,null 
+0x472d 016553 rtn positive 
+0x472e 016554 increase 4 ,regc 
+0x472f 016555 branch remote_car_g24_search_commom_addr_loop 
+:      016557 remote_car_24g_status_process:
+0x4730 016558 fetch 1 ,mem_remote_car_24g_auto_work_step 
+0x4731 016559 rtneq power_on 
+0x4732 016560 fetch 1 ,mem_remote_car_24g_status 
+0x4733 016561 rtneq work_paired 
+0x4734 016562 jam work_paired ,mem_remote_car_24g_status 
+:      016563 remote_car_scale_process_paired:
+0x4735 016564 arg 0 ,rega 
+0x4736 016565 branch ui_led_off_global 
+:      016566 remote_car_scale_process_shutdown:
+0x4737 016567 arg 0 ,rega 
+0x4738 016568 call ui_led_off_global 
+0x4739 016569 call remote_car_ui_led_init 
+0x473a 016570 branch app_enter_hibernate 
+:      016572 remote_car_event_timer:
+0x473b 016573 call app_power_timer 
+0x473c 016574 call g24_pair_timeout_timer 
+0x473d 016575 call g24_reconn_timeout_timer 
+0x473e 016576 branch remote_car_no_data_timer 
+:      016578 remote_car_no_data_timer:
+0x473f 016579 fetch 1 ,mem_remote_car_config_timeout_shutdown_enable 
+0x4740 016580 rtn blank 
+0x4741 016581 fetch 1 ,mem_key_value_retention 
+0x4742 016582 nbranch remote_no_data_timer_init ,blank 
+0x4743 016583 arg mem_remote_car_no_data_timer ,regc 
+0x4744 016584 arg remote_car_scale_process_shutdown ,regb 
+0x4745 016585 branch timer_single_step_2b 
+:      016589 remote_car_send_motor1_key0_press:
+0x4746 016590 jam motor_positive ,mem_remote_car_24g_motor1_payload 
+0x4747 016591 rtn 
+:      016592 remote_car_send_motor1_key1_press:
+0x4748 016593 jam motor_negative ,mem_remote_car_24g_motor1_payload 
+0x4749 016594 rtn 
+:      016595 remote_car_send_motor2_key2_press:
+0x474a 016596 jam motor_positive ,mem_remote_car_24g_motor2_payload 
+0x474b 016597 rtn 
+:      016598 remote_car_send_motor2_key3_press:
+0x474c 016599 jam motor_negative ,mem_remote_car_24g_motor2_payload 
+0x474d 016600 rtn 
+:      016603 remote_car_send_motor1_key0_rel:
+:      016604 remote_car_send_motor1_key1_rel:
+0x474e 016605 jam motor_stop ,mem_remote_car_24g_motor1_payload 
+0x474f 016606 rtn 
+:      016607 remote_car_send_motor2_key2_rel:
+:      016608 remote_car_send_motor2_key3_rel:
+0x4750 016609 jam motor_stop ,mem_remote_car_24g_motor2_payload 
+0x4751 016610 rtn 
+:      016612 remote_car_send_key:
+0x4752 016613 arg mem_remote_car_24g_motor_packet ,rega 
+0x4753 016614 branch queue_push 
+:      016615 remote_car_send_attack:
+0x4754 016616 arg mem_remote_car_24g_fire_packet ,rega 
+0x4755 016617 branch queue_push 
+:      016619 remote_car_g24_package_data:
+0x4756 016620 fetch 1 ,mem_remote_car_24g_pair_success_flag 
+0x4757 016621 beq work_paired ,remote_car_g24_send_empty 
+0x4758 016622 arg mem_remote_car_24g_tx_temp ,rega 
+0x4759 016623 call queue_pop 
+0x475a 016624 nbranch remote_car_moto_data ,user 
+:      016625 remote_car_g24_package_data_continue:
+0x475b 016626 arg mem_remote_car_24g_tx_temp ,contr 
+0x475c 016627 ifetch 1 ,contr 
+0x475d 016628 copy pdata ,rega 
+0x475e 016629 arg mem_remote_car_24g_tx_temp + 1 ,regb 
+0x475f 016632 rtn 
+:      016634 remote_car_g24_send_empty:
+0x4760 016635 jam 0 ,mem_remote_car_24g_pair_success_flag 
+0x4761 016636 enable user 
+0x4762 016637 arg 1 ,rega 
+0x4763 016638 arg mem_remote_car_empty_packet ,regb 
+0x4764 016639 rtn 
+:      016641 remote_car_moto_data:
+0x4765 016642 fetch 1 ,mem_remote_car_24g_tx_temp + 3 
+0x4766 016643 beq car_cmd_l_r_motor_control ,remote_car_moto_data_next 
+0x4767 016644 beq car_cmd_f_b_motor_control ,remote_car_moto_data_next 
+0x4768 016645 rtn 
+:      016646 remote_car_moto_data_next:
+0x4769 016647 fetch 1 ,mem_remote_car_24g_tx_temp + 6 
+0x476a 016648 nbranch remote_car_moto_data_enable_user ,blank 
+0x476b 016649 fetch 1 ,mem_remote_car_24g_tx_temp + 8 
+0x476c 016650 nbranch remote_car_moto_data_enable_user ,blank 
+0x476d 016651 fetch 1 ,mem_remote_car_24g_tx_temp + 10 
+0x476e 016652 nbranch remote_car_moto_data_enable_user ,blank 
+0x476f 016653 rtn 
+:      016654 remote_car_moto_data_enable_user:
+0x4770 016655 enable user 
+0x4771 016656 branch remote_car_g24_package_data_continue 
+:      016661 remote_car_default_init:
+0x4772 016662 jam 0x14 ,mem_ui_button_timeout 
+0x4773 016663 jam 0x01 ,mem_ui_button_last_state 
+0x4774 016664 setarg 0x060f 
+0x4775 016665 store 2 ,mem_remote_car_queue_each_size 
+0x4776 016666 setarg mem_remote_car_queue_each_size 
+0x4777 016667 store 2 ,mem_queue_ptr 
+0x4778 016668 jam 0x01 ,mem_lpm_mode 
+0x4779 016669 jam 0x06 ,mem_lpm_overhead 
+0x477a 016670 jam 0x02 ,mem_lpm_mult_timeout 
+0x477b 016671 jam 0x00 ,mem_remote_car_hard_soft_switch 
+0x477c 016672 setarg mem_remote_style_led_type 
+0x477d 016673 store 2 ,mem_ui_led_struct_ptr 
+0x477e 016674 jam 0x01 ,mem_ui_led_struct_num 
+0x477f 016675 jam 0xff ,mem_remote_style_blink_count 
+0x4780 016676 setarg 0x0296 
+0x4781 016677 store 2 ,mem_remote_style_on_time 
+0x4782 016678 setarg 0x073a 
+0x4783 016679 store 2 ,mem_remote_style_off_time 
+0x4784 016680 setarg mem_remote_car_soft_power 
+0x4785 016681 store 2 ,mem_power_param_ptr 
+0x4786 016682 setarg 0x0c0c 
+0x4787 016683 store 2 ,mem_remote_car_power_off_timeout 
+0x4788 016684 setarg mem_remote_car_keyscan 
+0x4789 016685 store 2 ,mem_keyscan_ptr 
+0x478a 016686 jam 0x00 ,mem_remote_car_config_soft_switch_enable 
+0x478b 016687 jam 0xff ,mem_remote_car_config_connect_led_gpio 
+0x478c 016688 jam 0xff ,mem_remote_car_config_soft_switch_gpio 
+0x478d 016689 jam 0x00 ,mem_remote_car_config_key_map 
+0x478e 016690 jam 0x00 ,mem_remote_car_config_layout 
+0x478f 016691 jam 0x00 ,mem_remote_car_config_check_way 
+0x4790 016692 jam 0x01 ,mem_remote_car_config_timeout_shutdown_enable 
+0x4791 016693 setarg 0x4e55 
+0x4792 016694 store 2 ,mem_current_vdd_value_default_mid_x 
+0x4793 016695 store 2 ,mem_current_vdd_value_default_mid_y 
+0x4794 016696 setarg 0x0007 
+0x4795 016697 store 2 ,mem_current_vdd_default_range 
+0x4796 016698 jam 0x02 ,mem_adc_config_flag 
+0x4797 016699 setsect 0 ,0x35a0c 
+0x4798 016700 setsect 1 ,0x11a 
+0x4799 016701 setsect 2 ,0x60 
+0x479a 016702 setsect 3 ,0x28 
+0x479b 016703 store 9 ,mem_remote_car_24g_motor_packet 
+0x479c 016704 setsect 0 ,0x2000a 
+0x479d 016705 setsect 1 ,0x02 
+0x479e 016706 istore 4 ,contw 
+0x479f 016707 setsect 0 ,0x35a08 
+0x47a0 016708 setsect 1 ,0x19a 
+0x47a1 016709 setsect 2 ,0x00 
+0x47a2 016710 setsect 3 ,0x00 
+0x47a3 016711 store 9 ,mem_remote_car_24g_fire_packet 
+0x47a4 016712 setarg 0x0064 
+0x47a5 016713 store 2 ,mem_remote_car_no_data_timeout 
+0x47a6 016714 jam tx_power_0db ,mem_tx_power 
+0x47a7 016715 jam 0x01 ,mem_24g_data_type 
+0x47a8 016716 jam 0x06 ,mem_24g_max_retry 
+0x47a9 016717 jam 0x01 ,mem_24g_pair_switch 
+0x47aa 016718 jam 0x00 ,mem_24g_fast_conn_enable 
+0x47ab 016719 call g24_rx_window_init 
+0x47ac 016720 call g24_interval_param_8ms 
+0x47ad 016721 call g24_chmap_param_init 
+0x47ae 016724 setarg 0x0708 
+0x47af 016725 store 2 ,mem_24g_pair_timeout_init 
+0x47b0 016726 setarg 0x0050 
+0x47b1 016727 store 2 ,mem_24g_reconn_timeout_init 
+0x47b2 016728 setarg 0x0a7700 
+0x47b3 016729 store 3 ,mem_24g_long_sleep_set 
+0x47b4 016730 setarg 0x604800 
+0x47b5 016731 store 3 ,mem_24g_enter_hibernate 
+0x47b6 016732 rtn 
+:      016739 dongle_init:
+0x47b7 016740 setarg dongle_dispatch 
+0x47b8 016741 store 2 ,mem_cb_24g_receive_process 
+0x47b9 016742 setarg dongle_g24_mouse 
+0x47ba 016743 store 2 ,mem_cb_24g_data_device1 
+0x47bb 016744 setarg dongle_g24_kb 
+0x47bc 016745 store 2 ,mem_cb_24g_data_device2 
+0x47bd 016746 setarg dongle_ackpayload_prep 
+0x47be 016747 store 2 ,mem_cb_24g_ackpayload 
+0x47bf 016748 setarg dongle_usb_config 
+0x47c0 016749 store 2 ,mem_cb_usb_config 
+0x47c1 016750 branch usb_init 
+:      016753 dongle_default_init:
+0x47c2 016754 bpatch patch06_7 ,mem_patch06 
+0x47c3 016756 call dongle_read_kb_bind_status 
+0x47c4 016757 call dongle_xtal_select 
+0x47c5 016758 fetch 1 ,mem_dg_sys_config 
+0x47c6 016759 isolate1 dg_enable_eeprom ,pdata 
+0x47c7 016760 branch dongle_default_no_eeprom ,true 
+0x47c8 016761 fetch 1 ,mem_dg_sys_config 
+0x47c9 016762 isolate1 dg_enable_new_chmap ,pdata 
+0x47ca 016763 call g24_chamap_param_update ,true 
+:      016764 dongle_default_no_eeprom:
+0x47cb 016765 fetch 1 ,mem_dg_24g_tx_power_default 
+0x47cc 016766 store 1 ,mem_tx_power 
+0x47cd 016768 jam 0xff ,mem_rssi_buff_index 
+0x47ce 016769 setarg mem_dg_rssi_noise_buffer 
+0x47cf 016770 store 2 ,mem_rssi_noise_buffer_ptr 
+0x47d0 016771 setarg mem_dg_rssi_noise_dg_buffer 
+0x47d1 016772 store 2 ,mem_rssi_noise_self_buffer_ptr 
+0x47d2 016773 setarg mem_dg_rssi_noise_ms_buffer 
+0x47d3 016774 store 2 ,mem_rssi_noise_device1_buffer_ptr 
+0x47d4 016775 setarg mem_dg_rssi_noise_kb_buffer 
+0x47d5 016776 store 2 ,mem_rssi_noise_device2_buffer_ptr 
+0x47d6 016777 jam tx_power_f5db ,mem_24g_pair_tx_power 
+0x47d7 016778 jam 0 ,mem_dg_kb_bind_success 
+0x47d8 016779 jam 0 ,mem_24g_bind_device_living 
+0x47d9 016780 call g24_enable_1m 
+0x47da 016781 fetch 1 ,mem_dg_sys_config 
+0x47db 016782 isolate1 dg_enable_24g_2m ,pdata 
+0x47dc 016783 call g24_enable_2m ,true 
+0x47dd 016784 call g24_receive_init 
+0x47de 016785 call g24_pair_param_init 
+0x47df 016786 call g24_chmap_param_init 
+0x47e0 016788 fetch 1 ,mem_dg_usb_tx_interval 
+0x47e1 016789 store 1 ,mem_usb_tx_interval 
+0x47e2 016790 fetch 9 ,mem_dg_usb_vid_pid 
+0x47e3 016791 store 9 ,mem_usb_vid_pid 
+0x47e4 016792 rtn 
+:      016794 dongle_xtal_select:
+0x47e5 016795 jam xtal_24m ,mem_fcomp_div 
+0x47e6 016796 fetch 1 ,mem_dg_sys_config 
+0x47e7 016797 rtnbit0 dg_enable_xtal_24m 
+0x47e8 016798 jam xtal_16m ,mem_fcomp_div 
+0x47e9 016799 rtn 
+:      016801 dongle_dispatch:
+0x47ea 016802 fetch 1 ,mem_24g_pair_mode 
+0x47eb 016803 beq 0x00 ,dongle_auto_bind 
+0x47ec 016804 beq 0x01 ,dongle_pc_bind 
+0x47ed 016805 beq 0x0f ,dongle_all_powerful 
+0x47ee 016806 rtn 
+:      016809 dongle_read_kb_bind_status:
+0x47ef 016810 bpatch patch07_0 ,mem_patch07 
+0x47f0 016811 arg dongle_kb_bind_efuse_offect ,regb 
+0x47f1 016812 arg mem_dg_kb_bind_flag ,rega 
+0x47f2 016813 arg 1 ,loopcnt 
+0x47f3 016814 branch otp_read_data 
+:      016816 dongle_write_kb_bind_status:
+0x47f4 016817 bpatch patch07_1 ,mem_patch07 
+0x47f5 016818 arg 1 ,loopcnt 
+0x47f6 016819 arg mem_dg_kb_bind_flag ,rega 
+0x47f7 016820 arg dongle_kb_bind_efuse_offect ,regb 
+0x47f8 016821 branch otp_write 
+:      016823 dongle_usb_config:
+0x47f9 016824 fetch 1 ,mem_dg_sys_config 
+0x47fa 016825 bbit1 dg_enable_kb_icon ,dongle_usb_config_kb 
+0x47fb 016826 fetch 1 ,mem_dg_kb_bind_flag 
+0x47fc 016827 bne dongle_kb_bind_success ,dongle_usb_config_param 
+:      016828 dongle_usb_config_kb:
+0x47fd 016829 jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+0x47fe 016830 fetch 4 ,usb_devicedata_addr + 9 
+0x47ff 016831 set1 29 ,pdata 
+0x4800 016832 store 4 ,mem_devicedesc + 9 
+:      016833 dongle_usb_config_param:
+0x4801 016834 call dongle_usb_device_name 
+0x4802 016835 call usb_tx_interval_config 
+0x4803 016836 call dongle_usb_vid_pid_config 
+0x4804 016837 branch dongle_usb_hid_icon_config 
+:      016839 dongle_usb_vid_pid_config:
+0x4805 016840 fetch 1 ,mem_usb_vid_pid 
+0x4806 016841 rtn blank 
+0x4807 016842 fetch 1 ,mem_dg_kb_bind_flag 
+0x4808 016843 beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+:      016844 dongle_usb_vid_pid_for_mouse_only_auto_pair:
+0x4809 016845 fetch 4 ,mem_usb_vid_pid + 1 
+:      016846 dongle_usb_vid_pid_store:
+0x480a 016847 store 4 ,mem_devicedesc + 9 
+0x480b 016848 rtn 
+:      016849 dongle_usb_vid_pid_for_suit:
+0x480c 016850 fetch 4 ,mem_usb_vid_pid + 5 
+0x480d 016851 branch dongle_usb_vid_pid_store 
+:      016853 dongle_usb_hid_icon_config:
+0x480e 016854 fetch 1 ,mem_dg_kb_bind_flag 
+0x480f 016855 beq dongle_kb_bind_success ,dongle_usb_kb_hidreportdesc 
+0x4810 016856 setarg usb_kbdata_vendor_define_addr 
+0x4811 016857 store 2 ,mem_hidreportdesc_kb 
+0x4812 016858 jam 0x1a ,mem_confdesc + 26 
+0x4813 016859 rtn 
+:      016860 dongle_usb_kb_hidreportdesc:
+0x4814 016861 setarg usb_kbdata_addr 
+0x4815 016862 store 2 ,mem_hidreportdesc_kb 
+0x4816 016863 jam 0x3f ,mem_confdesc + 26 
+0x4817 016864 rtn 
+:      016866 dongle_usb_device_name:
+0x4818 016867 fetch 1 ,mem_dg_usb_device_name 
+0x4819 016868 rtn blank 
+0x481a 016869 arg mem_dg_usb_device_name ,contr 
+0x481b 016870 arg mem_string2 ,contw 
+0x481c 016871 arg 30 ,loopcnt 
+0x481d 016872 branch memcpy 
+:      016875 dongle_all_powerful:
+0x481e 016876 call g24_switch_work_mode 
+:      016877 dongle_all_powerful_loop:
+0x481f 016878 call dongle_work_mode_auto 
+0x4820 016879 call dongle_usb_dispatch 
+0x4821 016880 branch dongle_all_powerful_loop 
+:      016882 dongle_pc_bind:
+0x4822 016883 call g24_switch_work_mode 
+:      016884 dongle_pc_bind_loop:
+0x4823 016885 call dongle_work_mode_auto 
+0x4824 016886 call g24_bind_mode_auto 
+0x4825 016887 call dongle_usb_dispatch 
+0x4826 016888 branch dongle_pc_bind_loop 
+:      016890 dongle_g24_blank_data_process:
+0x4827 016891 call dongle_g24_ms_blank_data 
+0x4828 016892 call dongle_g24_kb_blank_data 
+0x4829 016893 call dongle_g24_kb_sys_ctrl_blank_data 
+0x482a 016894 branch dongle_g24_kb_mul_blank_data 
+:      016896 dongle_g24_ms_blank_data:
+0x482b 016897 bpatch patch07_2 ,mem_patch07 
+0x482c 016898 fetch 1 ,mem_dg_ms_blank_data_enable 
+0x482d 016899 rtn blank 
+0x482e 016900 arg g24_timer_ms_blank ,queue 
+0x482f 016901 call timer_check 
+0x4830 016902 nrtn blank 
+0x4831 016903 jam 0 ,mem_dg_ms_blank_data_enable 
+0x4832 016904 setarg ms_report_id 
+0x4833 016905 store 1 ,mem_usb_mouse_data 
+0x4834 016906 setarg 0 
+0x4835 016907 istore 7 ,contw 
+:      016908 dongle_usb_tx_ms_data:
+0x4836 016909 jam usb_ep2_ms ,mem_usb_ep2_data 
+:      016910 dongle_usb_tx_enable_ep2:
+0x4837 016911 fetch 1 ,mem_usb_tx_enable 
+0x4838 016912 set1 2 ,pdata 
+0x4839 016913 store 1 ,mem_usb_tx_enable 
+0x483a 016914 rtn 
+:      016916 dongle_g24_kb_blank_data:
+0x483b 016917 bpatch patch07_3 ,mem_patch07 
+0x483c 016918 fetch 1 ,mem_dg_kb_blank_data_enable 
+0x483d 016919 rtn blank 
+0x483e 016920 arg g24_timer_kb_blank ,queue 
+0x483f 016921 call timer_check 
+0x4840 016922 nrtn blank 
+0x4841 016923 jam 0 ,mem_dg_kb_blank_data_enable 
+0x4842 016924 arg mem_usb_kb_data ,contw 
+0x4843 016925 call memset0_16 
+0x4844 016926 fetch 8 ,mem_usb_kb_data 
+0x4845 016927 store 8 ,mem_dg_kb_data_last_data 
+:      016928 dongle_usb_tx_kb_data:
+0x4846 016929 jam kb_normal_report_id ,mem_usb_kb_data 
+:      016930 dongle_usb_tx_enable_ep1:
+0x4847 016931 jam usb_ep1_kb ,mem_usb_ep1_data 
+0x4848 016932 fetch 1 ,mem_usb_tx_enable 
+0x4849 016933 set1 1 ,pdata 
+0x484a 016934 store 1 ,mem_usb_tx_enable 
+0x484b 016935 rtn 
+:      016937 dongle_g24_kb_sys_ctrl_blank_data:
+0x484c 016938 fetch 1 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x484d 016939 rtn blank 
+0x484e 016940 arg g24_timer_kb_sys_crtl_blank ,queue 
+0x484f 016941 call timer_check 
+0x4850 016942 nrtn blank 
+0x4851 016943 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x4852 016944 arg mem_usb_kb_system ,contw 
+0x4853 016945 call memset0_16 
+0x4854 016946 jam kb_system_conctrl_report_id ,mem_usb_kb_system 
+0x4855 016947 fetch 2 ,mem_usb_kb_system 
+0x4856 016948 store 2 ,mem_dg_kb_system_sta_data 
+:      016949 dongle_usb_tx_sys_ctrl_data:
+0x4857 016950 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+0x4858 016951 branch dongle_usb_tx_enable_ep2 
+:      016953 dongle_g24_kb_mul_blank_data:
+0x4859 016954 bpatch patch07_4 ,mem_patch07 
+0x485a 016955 fetch 1 ,mem_dg_kb_mul_blank_data_enable 
+0x485b 016956 rtn blank 
+0x485c 016957 arg g24_timer_kb_mul_blank ,queue 
+0x485d 016958 call timer_check 
+0x485e 016959 nrtn blank 
+0x485f 016960 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+0x4860 016961 arg mem_usb_kb_multikey ,contw 
+0x4861 016962 call memset0_16 
+0x4862 016963 jam kb_multikey_report_id ,mem_usb_kb_multikey 
+0x4863 016964 fetch 3 ,mem_usb_kb_multikey 
+0x4864 016965 store 3 ,mem_dg_kb_multikey_last_data 
+:      016966 dongle_usb_tx_multikey_data:
+0x4865 016967 jam usb_ep2_multikey ,mem_usb_ep2_data 
+0x4866 016968 branch dongle_usb_tx_enable_ep2 
+:      016970 dongle_usb_dispatch:
+0x4867 016971 bpatch patch07_5 ,mem_patch07 
+0x4868 016972 fetch 1 ,mem_usb_remote_wakeup 
+0x4869 016973 call dongle_clear_pc_sleep_flag ,blank 
+0x486a 016974 call usb_isr 
+0x486b 016975 fetch 1 ,mem_usb0_get_set_report 
+0x486c 016976 rtn blank 
+0x486d 016977 jam 0 ,mem_usb0_get_set_report 
+0x486e 016978 fetch 2 ,mem_usb_setup_bvalue_temp 
+0x486f 016979 arg pc_set_report ,temp 
+0x4870 016980 isub temp ,null 
+0x4871 016981 nrtn zero 
+0x4872 016983 fetch 1 ,mem_usb0_set_report_data 
+0x4873 016984 rtnne pc_report_id 
+0x4874 016985 fetch 1 ,mem_usb0_set_report_data + 1 
+0x4875 016986 beq command_mode ,dongle_dispose_cmd_mode 
+0x4876 016987 beq command_bind ,dongle_dispose_cmd_bind 
+0x4877 016988 beq command_current_project ,dongle_dispose_cmd_current_project 
+0x4878 016989 beq command_current_mode ,dongle_dispose_cmd_current_mode 
+0x4879 016990 beq command_current_fw_version ,dongle_dispose_cmd_current_fw_version 
+:      016992 dongle_usb0_data_ready_report_set0:
+0x487a 016993 jam 0 ,mem_usb0_data_ready_report 
+0x487b 016994 rtn 
+:      016996 dongle_dispose_cmd_mode:
+0x487c 016997 fetch 1 ,mem_usb0_set_report_data + 2 
+0x487d 016998 beq com_mode_bind ,dongle_enter_bind_mode 
+0x487e 016999 branch dongle_usb0_data_ready_report_set0 
+:      017000 dongle_enter_bind_mode:
+0x487f 017001 call g24_bind_mode_enable 
+:      017002 dongle_usb0_data_ready_report_set1:
+0x4880 017003 jam 1 ,mem_usb0_data_ready_report 
+0x4881 017004 rtn 
+:      017006 dongle_dispose_cmd_bind:
+0x4882 017007 fetch 1 ,mem_usb0_set_report_data + 2 
+0x4883 017008 beq com_bind_get ,dongle_dispose_cmd_get_bind 
+0x4884 017009 beq com_bind_exit ,dongle_dispose_cmd_exit_bind 
+0x4885 017010 beq com_read_mode ,dongle_dispose_cmd_read_mode 
+0x4886 017011 branch dongle_usb0_data_ready_report_set0 
+:      017012 dongle_dispose_cmd_get_bind:
+0x4887 017013 fetch 1 ,mem_24g_bind_device_status 
+0x4888 017014 store 1 ,mem_usb0_get_report_data + 1 
+0x4889 017015 branch dongle_usb0_data_ready_report_set1 
+:      017016 dongle_dispose_cmd_exit_bind:
+0x488a 017017 call g24_work_mode_enable 
+0x488b 017018 branch dongle_dispose_cmd_get_bind 
+:      017019 dongle_dispose_cmd_read_mode:
+:      017020 dongle_dispose_in_bind_mode:
+0x488c 017021 jam command_bind ,mem_usb0_get_report_data + 1 
+0x488d 017022 branch dongle_usb0_data_ready_report_set1 
+:      017024 dongle_dispose_cmd_current_project:
+0x488e 017025 jam product_id ,mem_usb0_get_report_data + 1 
+0x488f 017026 branch dongle_usb0_data_ready_report_set1 
+:      017028 dongle_dispose_cmd_current_mode:
+0x4890 017029 fetch 1 ,mem_24g_work_mode 
+0x4891 017030 beq dongle_work ,dongle_dispose_in_work_mode 
+0x4892 017031 beq dongle_bind ,dongle_dispose_in_bind_mode 
+0x4893 017032 rtn 
+:      017033 dongle_dispose_in_work_mode:
+0x4894 017034 jam command_mode ,mem_usb0_get_report_data + 1 
+0x4895 017035 branch dongle_usb0_data_ready_report_set1 
+:      017037 dongle_dispose_cmd_current_fw_version:
+0x4896 017038 jam fw_version0 ,mem_usb0_get_report_data + 1 
+0x4897 017039 jam fw_version1 ,mem_usb0_get_report_data + 2 
+0x4898 017040 jam fw_version2 ,mem_usb0_get_report_data + 3 
+0x4899 017041 jam fw_version3 ,mem_usb0_get_report_data + 4 
+0x489a 017042 branch dongle_usb0_data_ready_report_set1 
+:      017050 dongle_auto_bind:
+0x489b 017051 call g24_mode_switch_init 
+:      017052 dongle_auto_bind_loop:
+0x489c 017053 call g24_mode_switch_bind_work 
+0x489d 017054 call g24_mode_switch_bind_search 
+0x489e 017055 call dongle_work_mode_auto 
+0x489f 017056 call g24_bind_mode_auto 
+0x48a0 017057 call g24_search_mode_auto 
+0x48a1 017058 call dongle_usb_dispatch 
+0x48a2 017059 branch dongle_auto_bind_loop 
+:      017061 dongle_work_mode_auto:
+0x48a3 017062 bpatch patch07_6 ,mem_patch07 
+0x48a4 017063 fetch 1 ,mem_24g_work_mode 
+0x48a5 017064 rtnne dongle_work 
+0x48a6 017065 call g24_work_mode_start 
+0x48a7 017066 call dongle_g24_blank_data_process 
+0x48a8 017067 fetch 1 ,mem_24g_pair_mode 
+0x48a9 017068 nrtn blank 
+0x48aa 017069 branch g24_nodata_process 
+:      017071 dongle_ackpayload_prep:
+0x48ab 017072 fetch 1 ,mem_24g_data_type 
+0x48ac 017073 beq datatype_device1 ,dongle_ackpayload_prep_mouse 
+0x48ad 017074 beq datatype_device2 ,dongle_ackpayload_prep_keyboard 
+:      017075 dongle_ackpayload_prep_mouse:
+0x48ae 017076 fetch 1 ,mem_dg_pc_sleep_flag 
+0x48af 017077 bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
+0x48b0 017078 branch dongle_ackpayload_prep_end 
+:      017080 dongle_set_pc_sleep_flag:
+0x48b1 017081 fetch 1 ,mem_device_option 
+0x48b2 017082 rtnne dvc_op_dongle 
+0x48b3 017083 jam 3 ,mem_dg_pc_sleep_flag 
+0x48b4 017084 rtn 
+:      017085 dongle_clear_pc_sleep_flag:
+0x48b5 017086 jam 0 ,mem_dg_pc_sleep_flag 
+0x48b6 017087 rtn 
+:      017089 dongle_ackpayload_prep_keyboard:
+0x48b7 017090 fetch 1 ,mem_dg_pc_sleep_flag 
+0x48b8 017091 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
+:      017092 dongle_ackpayload_prep_end:
+0x48b9 017093 fetch 1 ,mem_24g_ackpayload_enable 
+0x48ba 017094 beq bind_ackpayload ,dongle_g24_bind_ackpayload_prep 
+0x48bb 017095 beq kb_led_ackpayload ,dongle_g24_kb_led_ackpayload_prep 
+0x48bc 017096 rtn 
+:      017098 dongle_pc_sleep_ackpayload_prep_mouse:
+0x48bd 017099 fetch 1 ,mem_dg_pc_sleep_flag 
+0x48be 017100 set0 0 ,pdata 
+0x48bf 017101 store 1 ,mem_dg_pc_sleep_flag 
+0x48c0 017102 branch dongle_pc_sleep_ackpayload_prep 
+:      017104 dongle_pc_sleep_ackpayload_prep_keyboard:
+0x48c1 017105 fetch 1 ,mem_dg_pc_sleep_flag 
+0x48c2 017106 set0 1 ,pdata 
+0x48c3 017107 store 1 ,mem_dg_pc_sleep_flag 
+:      017108 dongle_pc_sleep_ackpayload_prep:
+0x48c4 017109 jam 0x01 ,mem_24g_datalen 
+0x48c5 017110 setarg 0xff 
+0x48c6 017111 store 1 ,mem_24g_txbuf 
+0x48c7 017112 rtn 
+:      017115 dongle_g24_bind_ackpayload_prep:
+0x48c8 017116 jam 1 ,mem_24g_ackpayload_enable 
+0x48c9 017117 call g24_binding_device_check 
+0x48ca 017118 nrtn user3 
+0x48cb 017119 branch g24_bind_ackpayload_prep 
+:      017121 dongle_g24_kb_led_ackpayload_prep:
+0x48cc 017122 fetch 1 ,mem_24g_rxbuf + 2 
+0x48cd 017123 beq datatype_device1 ,dongle_g24_bind_ackpayload_prep 
+0x48ce 017124 beq datatype_attemp ,dongle_g24_bind_ackpayload_prep 
+0x48cf 017125 jam 0 ,mem_usb_tx_win_enable 
+0x48d0 017126 jam 0x01 ,mem_24g_datalen 
+0x48d1 017127 fetch 1 ,mem_24g_led_status 
+0x48d2 017128 store 1 ,mem_24g_txbuf 
+0x48d3 017129 rtn 
+:      017131 dongle_g24_mouse:
+0x48d4 017132 setarg ms_report_id 
+0x48d5 017133 store 1 ,mem_usb_mouse_data 
+0x48d6 017134 fetch 7 ,mem_24g_rxdata_temp + 3 
+0x48d7 017135 istore 7 ,contw 
+0x48d8 017136 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x48d9 017137 ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+0x48da 017138 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x48db 017139 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+0x48dc 017140 branch dongle_usb_tx_ms_data 
+:      017142 dongle_g24_ms_enable_blank_data_forcibly:
+0x48dd 017143 jam 1 ,mem_dg_ms_blank_data_enable 
+0x48de 017144 setarg timer_ms_blank_delay 
+0x48df 017145 arg g24_timer_ms_blank ,queue 
+0x48e0 017146 branch timer_init 
+:      017148 dongle_g24_ms_disable_blank_data_forcibly:
+0x48e1 017149 jam 0 ,mem_dg_ms_blank_data_enable 
+0x48e2 017150 setarg 0 
+0x48e3 017151 arg g24_timer_ms_blank ,queue 
+0x48e4 017152 branch timer_init 
+:      017154 dongle_g24_kb:
+0x48e5 017155 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x48e6 017156 beq 0 ,dongle_g24_kb_type0 
+0x48e7 017157 beq 2 ,dongle_g24_kb_type2 
+0x48e8 017158 beq 3 ,dongle_g24_kb_type3 
+0x48e9 017159 branch g24_rx_interrupt_clear 
+:      017161 dongle_g24_kb_type0:
+0x48ea 017162 fetch 1 ,mem_24g_rxdata_temp + 5 
+0x48eb 017163 store 1 ,mem_24g_ackpayload_enable 
+0x48ec 017164 jam 0 ,mem_24g_rxdata_temp + 5 
+0x48ed 017165 arg mem_usb_kb_data ,contw 
+0x48ee 017166 arg mem_24g_rxdata_temp + 4 ,contr 
+0x48ef 017167 arg 8 ,loopcnt 
+0x48f0 017168 call memcpy 
+0x48f1 017169 fetch 8 ,mem_usb_kb_data 
+0x48f2 017170 ncall dongle_g24_kb_enable_blank_data_forcibly ,blank 
+0x48f3 017171 fetch 8 ,mem_usb_kb_data 
+0x48f4 017172 call dongle_g24_kb_disable_blank_data_forcibly ,blank 
+0x48f5 017173 fetch 8 ,mem_usb_kb_data 
+0x48f6 017174 store 8 ,mem_dg_kb_data_sta_data 
+0x48f7 017175 fetcht 8 ,mem_dg_kb_data_last_data 
+0x48f8 017176 isub temp ,null 
+0x48f9 017177 ncall dongle_usb_tx_enable_ep1 ,zero 
+0x48fa 017178 fetch 8 ,mem_dg_kb_data_sta_data 
+0x48fb 017179 store 8 ,mem_dg_kb_data_last_data 
+0x48fc 017180 branch g24_rx_interrupt_clear 
+:      017182 dongle_g24_kb_enable_blank_data_forcibly:
+0x48fd 017183 jam 1 ,mem_dg_kb_blank_data_enable 
+0x48fe 017184 setarg timer_kb_blank_delay 
+0x48ff 017185 arg g24_timer_kb_blank ,queue 
+0x4900 017186 branch timer_init 
+:      017188 dongle_g24_kb_disable_blank_data_forcibly:
+0x4901 017189 jam 0 ,mem_dg_kb_blank_data_enable 
+0x4902 017190 setarg 0 
+0x4903 017191 arg g24_timer_kb_blank ,queue 
+0x4904 017192 branch timer_init 
+:      017194 dongle_g24_kb_type3:
+0x4905 017195 arg mem_usb_kb_multikey ,contw 
+0x4906 017196 arg mem_24g_rxdata_temp + 3 ,contr 
+0x4907 017197 arg 3 ,loopcnt 
+0x4908 017198 call memcpy 
+0x4909 017199 fetch 2 ,mem_usb_kb_multikey + 1 
+0x490a 017200 ncall dongle_g24_kb_mul_enable_blank_data_forcibly ,blank 
+0x490b 017201 fetch 2 ,mem_usb_kb_multikey + 1 
+0x490c 017202 call dongle_g24_kb_mul_disable_blank_data_forcibly ,blank 
+0x490d 017203 fetch 3 ,mem_usb_kb_multikey 
+0x490e 017204 store 3 ,mem_dg_kb_multikey_sta_data 
+0x490f 017205 fetcht 3 ,mem_dg_kb_multikey_last_data 
+0x4910 017206 isub temp ,null 
+0x4911 017207 ncall dongle_usb_tx_multikey_data ,zero 
+0x4912 017208 fetch 3 ,mem_dg_kb_multikey_sta_data 
+0x4913 017209 store 3 ,mem_dg_kb_multikey_last_data 
+0x4914 017210 branch g24_rx_interrupt_clear 
+:      017212 dongle_g24_kb_mul_enable_blank_data_forcibly:
+0x4915 017213 jam 1 ,mem_dg_kb_mul_blank_data_enable 
+0x4916 017214 setarg timer_kb_mul_blank_delay 
+0x4917 017215 arg g24_timer_kb_mul_blank ,queue 
+0x4918 017216 branch timer_init 
+:      017218 dongle_g24_kb_mul_disable_blank_data_forcibly:
+0x4919 017219 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+0x491a 017220 setarg 0 
+0x491b 017221 arg g24_timer_kb_mul_blank ,queue 
+0x491c 017222 branch timer_init 
+:      017224 dongle_g24_kb_type2:
+0x491d 017225 arg mem_usb_kb_system ,contw 
+0x491e 017226 arg mem_24g_rxdata_temp + 3 ,contr 
+0x491f 017227 arg 2 ,loopcnt 
+0x4920 017228 call memcpy 
+0x4921 017229 fetch 2 ,mem_usb_kb_system 
+0x4922 017230 ncall dongle_g24_kb_sys_enable_blank_data_forcibly ,blank 
+0x4923 017231 fetch 2 ,mem_usb_kb_system 
+0x4924 017232 call dongle_g24_kb_sys_disable_blank_data_forcibly ,blank 
+0x4925 017233 fetch 2 ,mem_usb_kb_system 
+0x4926 017234 store 2 ,mem_dg_kb_system_sta_data 
+0x4927 017235 fetcht 2 ,mem_dg_kb_system_last_data 
+0x4928 017236 isub temp ,null 
+0x4929 017237 ncall dongle_usb_tx_sys_data ,zero 
+0x492a 017238 fetch 2 ,mem_dg_kb_system_sta_data 
+0x492b 017239 store 2 ,mem_dg_kb_system_last_data 
+0x492c 017240 branch g24_rx_interrupt_clear 
+:      017242 dongle_g24_kb_sys_enable_blank_data_forcibly:
+0x492d 017243 jam 1 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x492e 017244 setarg timer_kb_sys_crtl_blank_delay 
+0x492f 017245 arg g24_timer_kb_sys_crtl_blank ,queue 
+0x4930 017246 branch timer_init 
+:      017247 dongle_g24_kb_sys_disable_blank_data_forcibly:
+0x4931 017248 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x4932 017249 setarg 0 
+0x4933 017250 arg g24_timer_kb_sys_crtl_blank ,queue 
+0x4934 017251 branch timer_init 
+:      017253 dongle_usb_tx_sys_data:
+0x4935 017254 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+0x4936 017255 branch dongle_usb_tx_enable_ep2 
+:      017258 dongle_g24_store_dvc2_bind_flag:
+0x4937 017259 fetch 1 ,mem_device_option 
+0x4938 017260 rtnne dvc_op_dongle 
+0x4939 017261 fetch 1 ,mem_dg_kb_bind_flag 
+0x493a 017262 rtneq dongle_kb_bind_success 
+:      017263 dongle_prep_soft_reset:
+0x493b 017264 jam 1 ,mem_dg_kb_bind_success 
+0x493c 017265 rtn 
+:      017268 dongle_kb_bind_soft_reset:
+0x493d 017269 fetch 1 ,mem_device_option 
+0x493e 017270 rtnne dvc_op_dongle 
+0x493f 017271 fetch 1 ,mem_dg_kb_bind_success 
+0x4940 017272 rtn blank 
+0x4941 017273 jam 0 ,mem_temp 
+:      017274 dongle_wirte_efuse_bind_status:
+0x4942 017275 jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+0x4943 017276 call dongle_write_kb_bind_status 
+0x4944 017277 call dongle_read_kb_bind_status 
+0x4945 017278 fetch 1 ,mem_temp 
+0x4946 017279 increase 1 ,pdata 
+0x4947 017280 store 1 ,mem_temp 
+0x4948 017281 beq 0xff ,soft_reset_chip 
+0x4949 017282 fetch 1 ,mem_dg_kb_bind_flag 
+0x494a 017283 bne dongle_kb_bind_success ,dongle_wirte_efuse_bind_status 
+0x494b 017284 branch soft_reset_chip 
+:      017296 keyboard_softreset_process:
+0x494c 017297 fetch 1 ,mem_device_option 
+0x494d 017298 rtnne dvc_op_keyboard 
+0x494e 017299 call mouse_wakeup_from_power_check 
+0x494f 017300 nbranch soft_reset + 1 ,user 
+0x4950 017301 fetch 1 ,mem_power_on_flag 
+0x4951 017302 branch soft_reset + 1 ,blank 
+0x4952 017303 fetch 1 ,mem_config_select_device_button_gpio 
+0x4953 017304 rtneq ui_button_gpio_disable 
+0x4954 017305 copy pdata ,queue 
+0x4955 017306 fetch 4 ,mem_saved_gpio_in 
+0x4956 017307 qisolate0 pdata 
+0x4957 017308 call keyboard_pb_set ,true 
+0x4958 017309 branch soft_reset + 2 
+:      017311 keyboard_init:
+0x4959 017312 call enable_authrom 
+0x495a 017313 call keyboard_setting_config 
+0x495b 017315 call keyboard_gpio_init 
+0x495c 017316 call keyboard_low_vol_mult_set 
+0x495d 017317 rtn wake 
+0x495e 017318 call keyboard_usb_check_enable 
+0x495f 017319 call keyboard_cb_fuction 
+0x4960 017320 fetch 1 ,mem_usb_addr 
+0x4961 017321 rtnbit1 7 
+:      017322 keyboard_init_wireless:
+0x4962 017323 fetch 2 ,mem_ui_state_map 
+0x4963 017324 bbit1 ui_state_btn_down ,keyboard_start_discovery 
+0x4964 017325 call mouse_check_select_device_by_switch 
+0x4965 017326 branch keyboard_start_work 
+:      017329 keyboard_usb_check_enable:
+0x4966 017330 fetch mouse_flag_len ,mem_mouse_flag 
+0x4967 017331 rtnbit0 mouse_enable_usb 
+0x4968 017332 setarg keyboard_usb_config_param 
+0x4969 017333 store 2 ,mem_cb_usb_config 
+0x496a 017334 jam mouse_usb_interface_remove ,mem_mouse_usb_vdd_status 
+0x496b 017335 branch keyboard_usb_interface_check 
+:      017337 keyboard_usb_config_param:
+0x496c 017338 call keyboard_usb_config_kb_check 
+0x496d 017339 call keyboard_usb_config_param_init 
+0x496e 017340 branch keyboard_usb_config_param_setup 
+:      017342 keyboard_usb_config_kb_check:
+0x496f 017343 jam dongle_kb_bind_eeprom_offect ,mem_mouse_usb_keyboard_flag 
+0x4970 017344 fetch mouse_flag_len ,mem_mouse_flag 
+0x4971 017345 rtnbit0 mouse_enable_keyboard 
+0x4972 017346 jam dongle_kb_bind_success ,mem_mouse_usb_keyboard_flag 
+0x4973 017347 rtn 
+:      017349 keyboard_usb_config_param_init:
+0x4974 017350 fetch mouse_flag_len ,mem_mouse_flag 
+0x4975 017351 bbit1 mouse_enable_usb_250 ,keyboard_usb_report_rate_set_250hz 
+0x4976 017352 bbit1 mouse_enable_usb_500 ,keyboard_usb_report_rate_set_500hz 
+0x4977 017353 bbit1 mouse_enable_usb_1000 ,keyboard_usb_report_rate_set_1000hz 
+0x4978 017354 jam 0x19 ,mem_wire_usb_interval 
+0x4979 017355 jam 0x08 ,mem_usb_tx_interval 
+0x497a 017356 rtn 
+:      017357 keyboard_usb_report_rate_set_250hz:
+0x497b 017358 jam 0x0c ,mem_wire_usb_interval 
+0x497c 017359 jam 0x04 ,mem_usb_tx_interval 
+0x497d 017360 rtn 
+:      017361 keyboard_usb_report_rate_set_500hz:
+0x497e 017362 jam 0x06 ,mem_wire_usb_interval 
+0x497f 017363 jam 0x02 ,mem_usb_tx_interval 
+0x4980 017364 rtn 
+:      017365 keyboard_usb_report_rate_set_1000hz:
+0x4981 017366 jam 0x03 ,mem_wire_usb_interval 
+0x4982 017367 jam 0x01 ,mem_usb_tx_interval 
+0x4983 017368 rtn 
+:      017370 keyboard_usb_config_param_setup:
+0x4984 017371 call usb_tx_interval_config 
+0x4985 017372 call keyboard_usb_vid_pid_config 
+0x4986 017373 branch keyboard_usb_hid_icon_config 
+:      017375 keyboard_usb_vid_pid_config:
+0x4987 017376 fetch 1 ,mem_usb_vid_pid 
+0x4988 017377 rtn blank 
+0x4989 017378 fetch 1 ,mem_mouse_usb_keyboard_flag 
+0x498a 017379 beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+0x498b 017380 branch dongle_usb_vid_pid_for_mouse_only_auto_pair 
+:      017382 keyboard_usb_hid_icon_config:
+0x498c 017383 fetch 1 ,mem_mouse_usb_keyboard_flag 
+0x498d 017384 branch dongle_usb_hid_icon_config + 1 
+:      017388 keyboard_usb_interface_check:
+0x498e 017389 bpatch patch08_1 ,mem_patch08 
+0x498f 017390 fetcht 1 ,mem_usb_offline_check_gpio 
+0x4990 017391 call gpio_get_bit 
+0x4991 017392 branch keyboard_usb_gpio_low ,true 
+0x4992 017393 branch keyboard_usb_gpio_high 
+:      017396 keyboard_usb_gpio_low:
+0x4993 017397 fetch 1 ,mem_mouse_usb_vdd_status 
+0x4994 017398 rtneq mouse_usb_interface_remove 
+0x4995 017399 jam mouse_usb_interface_remove ,mem_mouse_usb_vdd_status 
+0x4996 017400 jam 0 ,mem_usb_device_enumeration_endflag 
+0x4997 017401 jam 0 ,mem_usb_status 
+0x4998 017402 jam 0 ,mem_usb_state 
+0x4999 017403 branch keyboard_init_wireless 
+:      017406 keyboard_usb_gpio_high:
+0x499a 017407 fetch 1 ,mem_mouse_usb_vdd_status 
+0x499b 017408 rtneq mouse_usb_interface_insert 
+0x499c 017409 jam mouse_usb_interface_insert ,mem_mouse_usb_vdd_status 
+0x499d 017410 call mouse_24g_stop 
+0x499e 017411 call mouse_stop_bluetooth_mode 
+0x499f 017412 call keyboard_device_led_all_off 
+0x49a0 017413 branch usb_init 
+:      017417 keyboard_setting_config:
+0x49a1 017418 rtn wake 
+0x49a2 017420 call g24_transmit_init 
+0x49a3 017421 call g24_chmap_param_init 
+0x49a4 017423 call keyboard_param_init 
+0x49a5 017424 fetcht 1 ,mem_mcu_rstb_gpio 
+0x49a6 017425 call gpio_out_inactive 
+0x49a7 017427 call keyboard_device_led_off 
+0x49a8 017428 call mouse_device_multi_led_parm_init 
+0x49a9 017429 call le_set_fixed_ltk_justwork 
+0x49aa 017431 fetch mouse_flag_len ,mem_mouse_flag 
+0x49ab 017432 bbit1 mouse_enable_otp ,keyboard_load_otp_info_check 
+0x49ac 017433 bbit1 mouse_enable_eeprom ,mouse_load_eeprom_info_check 
+0x49ad 017434 bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
+0x49ae 017435 rtn 
+:      017440 keyboard_param_init:
+0x49af 017442 call mouse_param_common_init 
+0x49b0 017444 jam 0 ,mem_same_keyvalue_timerout_flag 
+0x49b1 017445 setarg 0x230170 
+0x49b2 017446 store 3 ,mem_mouse_vdd_full_vol 
+0x49b3 017447 setarg 0x015301 
+0x49b4 017448 istore 3 ,contw 
+0x49b5 017449 arg mem_le_adv_swift_pair ,contw 
+0x49b6 017450 arg 20 ,loopcnt 
+0x49b7 017451 call clear_mem 
+0x49b8 017453 fetch 1 ,mem_le_name_len 
+0x49b9 017454 sub pdata ,12 ,null 
+0x49ba 017455 nbranch ble_name_set_no_swift_pair ,positive 
+0x49bb 017456 setarg 0x06ff06 
+0x49bc 017457 store 3 ,mem_le_adv_swift_pair 
+0x49bd 017458 setarg 0x000300 
+0x49be 017459 istore 3 ,contw 
+0x49bf 017460 setarg 0x80 
+0x49c0 017461 istore 1 ,contw 
+:      017462 ble_store_le_name:
+0x49c1 017463 fetch 1 ,mem_le_name_len 
+0x49c2 017464 increase 1 ,pdata 
+0x49c3 017465 copy pdata ,loopcnt 
+0x49c4 017466 arg mem_le_scan_data ,contr 
+0x49c5 017467 branch memcpy 
+:      017469 ble_name_set_no_swift_pair:
+0x49c6 017470 arg mem_le_adv_swift_pair ,contw 
+0x49c7 017471 branch ble_store_le_name 
+:      017474 keyboard_gpio_init:
+0x49c8 017477 fetcht 1 ,mem_mcu_clk_gpio 
+0x49c9 017478 call gpio_set_high_impedance 
+0x49ca 017479 fetcht 1 ,mem_mcu_stb_gpio 
+0x49cb 017480 call gpio_set_high_impedance 
+0x49cc 017481 fetcht 1 ,mem_mcu_rstb_gpio 
+0x49cd 017482 call gpio_set_high_impedance 
+0x49ce 017484 setarg mem_key_row_gpio 
+0x49cf 017485 store 2 ,mem_kb_row_ptr 
+0x49d0 017487 setarg mem_key_col_gpio 
+0x49d1 017488 store 2 ,mem_kb_col_ptr 
+0x49d2 017490 setarg mem_key_excol_gpio 
+0x49d3 017491 store 2 ,mem_kb_excol_ptr 
+:      017492 keyboard_keyscan_gpio_init:
+0x49d4 017493 fetch 2 ,mem_kb_row_ptr 
+0x49d5 017494 copy pdata ,regb 
+0x49d6 017495 arg 8 ,loopcnt 
+:      017497 keyboard_key_row_init:
+0x49d7 017498 ifetcht 1 ,regb 
+0x49d8 017499 sub temp ,ui_button_gpio_disable ,null 
+0x49d9 017500 ncall keboard_gpio_set_high_impedance ,zero 
+0x49da 017501 increase 1 ,regb 
+0x49db 017502 loop keyboard_key_row_init 
+0x49dc 017503 call lpm_write_gpio_wakeup 
+0x49dd 017504 fetch 2 ,mem_kb_col_ptr 
+0x49de 017505 copy pdata ,regb 
+0x49df 017506 copy pdata ,regc 
+0x49e0 017507 arg 11 ,loopcnt 
+:      017509 keyboard_key_cow_init:
+0x49e1 017510 ifetcht 1 ,regb 
+0x49e2 017511 isolate1 7 ,temp 
+0x49e3 017512 ncall gpio_set_high_impedance ,true 
+0x49e4 017513 increase 1 ,regb 
+0x49e5 017514 loop keyboard_key_cow_init 
+0x49e6 017515 rtn 
+:      017516 keboard_gpio_set_high_impedance:
+0x49e7 017518 call gpio_set_high_impedance 
+0x49e8 017519 ifetcht 1 ,regb 
+0x49e9 017520 branch gpio_set_low_pullup 
+:      017524 keyboard_low_vol_mult_set:
+0x49ea 017525 fetch 1 ,mem_device_flag 
+0x49eb 017526 beq mode_bt_device1 ,keyboard_low_vol_mult_ble_set 
+0x49ec 017527 setarg 0x5d4800 
+0x49ed 017528 store 4 ,mem_24g_long_sleep_set1 
+0x49ee 017529 fetch 1 ,mem_adc_power_flag 
+0x49ef 017530 rtnbit0 0 
+0x49f0 017531 branch mouse_24g_long_sleep_set 
+:      017532 keyboard_low_vol_mult_ble_set:
+0x49f1 017533 jam 0x0c ,mem_lpm_mult_init 
+0x49f2 017534 fetch 1 ,mem_adc_power_flag 
+0x49f3 017535 rtnbit0 0 
+0x49f4 017536 jam 0x10 ,mem_lpm_mult_init 
+0x49f5 017537 fetch 1 ,mem_mouse_current_mult_timer 
+0x49f6 017538 branch mouse_current_mult_reinit ,blank 
+0x49f7 017539 rtn 
+:      017542 keyboard_pairing_check_otp_offset:
+0x49f8 017543 fetch 2 ,mem_otp_read_retention_offset 
+0x49f9 017544 arg 0x528 ,temp 
+0x49fa 017545 isub temp ,null 
+0x49fb 017546 nrtn positive 
+0x49fc 017547 branch assert 
+:      017549 keyboard_load_otp_info_check:
+0x49fd 017550 bpatch patch08_2 ,mem_patch08 
+0x49fe 017551 fetch 1 ,mem_device_flag 
+0x49ff 017552 beq mode_24g_device ,keyboard_load_otp_device_info_g24_init 
+0x4a00 017553 beq mode_bt_device1 ,keyboard_load_otp_device_info_ble_init 
+0x4a01 017554 rtn 
+:      017556 keyboard_load_otp_device_info_g24_init:
+0x4a02 017557 arg 80 ,regd 
+0x4a03 017558 setarg 0x400 
+0x4a04 017559 idiv regd 
+0x4a05 017560 call wait_div_end 
+0x4a06 017561 quotient pdata 
+0x4a07 017562 store 2 ,mem_pdatatemp 
+0x4a08 017563 arg 0x1fcc ,pdata 
+0x4a09 017564 arg 4 ,temp 
+0x4a0a 017565 arg 4 ,rege 
+0x4a0b 017566 branch keyboard_load_otp_device_info 
+:      017567 keyboard_load_otp_device_info_ble_init:
+0x4a0c 017568 arg 280 ,regd 
+0x4a0d 017569 setarg 0x400 
+0x4a0e 017570 idiv regd 
+0x4a0f 017571 call wait_div_end 
+0x4a10 017572 quotient pdata 
+0x4a11 017573 store 2 ,mem_pdatatemp 
+0x4a12 017574 arg 0x1fc2 ,pdata 
+0x4a13 017575 arg 14 ,temp 
+0x4a14 017576 arg 14 ,rege 
+0x4a15 017577 branch keyboard_load_otp_device_info 
+:      017578 keyboard_load_otp_device_info:
+0x4a16 017579 storet 1 ,mem_temp 
+0x4a17 017580 arg mem_otp_read_retention_memory ,rega 
+0x4a18 017581 arg 0 ,regc 
+:      017582 keyboard_load_otp_info_check_page_loop:
+0x4a19 017583 copy pdata ,regb 
+0x4a1a 017584 fetchr loopcnt ,1 ,mem_temp 
+0x4a1b 017585 call otp_read_data 
+0x4a1c 017586 fetch 8 ,mem_otp_read_retention_memory 
+0x4a1d 017587 fetcht 8 ,mem_otp_read_retention_memory + 8 
+0x4a1e 017588 ior temp ,pdata 
+0x4a1f 017589 fetcht 8 ,mem_otp_read_retention_memory + 16 
+0x4a20 017590 ior temp ,pdata 
+0x4a21 017591 branch keyboard_load_otp_info_check_first_time ,blank 
+0x4a22 017592 increase 1 ,regc 
+0x4a23 017593 fetch 2 ,mem_pdatatemp 
+0x4a24 017594 isub regc ,null 
+0x4a25 017596 copy regb ,pdata 
+0x4a26 017597 isub regd ,pdata 
+0x4a27 017598 branch keyboard_load_otp_info_check_page_loop 
+:      017599 keyboard_load_otp_info_check_first_time:
+0x4a28 017601 sub regc ,0 ,null 
+0x4a29 017602 branch keyboard_load_otp_info_check_first_time_process ,zero 
+:      017603 keyboard_load_otp_info_check_first_time_loop_init:
+0x4a2a 017604 copy regb ,pdata 
+0x4a2b 017605 iadd regd ,pdata 
+:      017606 keyboard_load_otp_info_check_first_time_loop:
+0x4a2c 017607 isub rege ,pdata 
+0x4a2d 017608 copy pdata ,regb 
+0x4a2e 017609 fetchr loopcnt ,1 ,mem_temp 
+0x4a2f 017610 call otp_read_data 
+0x4a30 017611 fetch 8 ,mem_otp_read_retention_memory 
+0x4a31 017612 fetcht 8 ,mem_otp_read_retention_memory + 8 
+0x4a32 017613 ior temp ,pdata 
+0x4a33 017614 fetcht 8 ,mem_otp_read_retention_memory + 16 
+0x4a34 017615 ior temp ,pdata 
+0x4a35 017616 branch keyboard_load_otp_info_check_offset_process ,blank 
+0x4a36 017617 copy regb ,pdata 
+0x4a37 017618 branch keyboard_load_otp_info_check_first_time_loop 
+:      017619 keyboard_load_otp_info_check_first_time_process:
+0x4a38 017620 storer rege ,1 ,mem_otp_read_retention_offset 
+0x4a39 017621 rtn 
+:      017622 keyboard_load_otp_info_check_offset_process:
+0x4a3a 017623 bpatch patch08_3 ,mem_patch08 
+0x4a3b 017624 setarg 0x1fd0 
+0x4a3c 017625 isub regb ,pdata 
+0x4a3d 017626 store 2 ,mem_otp_read_retention_offset 
+0x4a3e 017627 copy regb ,pdata 
+0x4a3f 017628 iadd rege ,regb 
+0x4a40 017629 fetchr loopcnt ,1 ,mem_temp 
+0x4a41 017630 arg mem_otp_read_retention_memory ,rega 
+0x4a42 017631 call otp_read_data 
+0x4a43 017632 fetch 1 ,mem_device_flag 
+0x4a44 017633 beq mode_24g_device ,keyboard_load_otp_info_check_offset_process_g24 
+0x4a45 017634 beq mode_bt_device1 ,keyboard_load_otp_info_check_offset_process_ble 
+0x4a46 017635 rtn 
+:      017637 keyboard_load_otp_info_check_offset_process_g24:
+0x4a47 017638 fetch 6 ,mem_otp_read_retention_memory 
+0x4a48 017639 store 4 ,mem_mouse_24g_addr 
+0x4a49 017640 branch keybaord_load_device_info 
+:      017642 keyboard_load_otp_info_check_offset_process_ble:
+0x4a4a 017643 fetch 1 ,mem_otp_read_retention_memory 
+0x4a4b 017644 sub pdata ,system_os_mac ,null 
+0x4a4c 017645 ncall set_pdata_0 ,positive 
+0x4a4d 017646 store 1 ,mem_kb_computer_system 
+0x4a4e 017647 fetch 1 ,mem_otp_read_retention_memory + 1 
+0x4a4f 017648 store 1 ,mem_device1_type 
+0x4a50 017649 fetch 6 ,mem_otp_read_retention_memory + 2 
+0x4a51 017650 store 6 ,mem_device1_addr 
+0x4a52 017651 fetch 6 ,mem_otp_read_retention_memory + 8 
+0x4a53 017652 store 6 ,mem_device1_locall_addr 
+0x4a54 017653 branch mouse_select_reconn_device 
+:      017656 keyboard_load_otp_info_check_overwise:
+0x4a55 017657 branch assert 
+:      017660 keyboard_store_device_info:
+0x4a56 017661 bpatch patch08_4 ,mem_patch08 
+0x4a57 017662 fetch mouse_flag_len ,mem_mouse_flag 
+0x4a58 017663 bbit1 mouse_enable_otp ,keyboard_store_otp_device_info 
+0x4a59 017664 bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
+0x4a5a 017665 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+0x4a5b 017666 rtn 
+:      017668 keyboard_store_otp_device_info:
+0x4a5c 017669 rtn 
+0x4a5d 017670 fetch 1 ,mem_device_flag 
+0x4a5e 017671 beq mode_24g_device ,keyboard_store_otp_device_info_g24 
+0x4a5f 017672 beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
+0x4a60 017673 rtn 
+:      017675 keyboard_store_otp_device_info_g24:
+0x4a61 017676 fetcht 2 ,mem_otp_read_retention_offset 
+0x4a62 017677 setarg 0x1fd0 
+0x4a63 017678 isub temp ,regb 
+0x4a64 017679 arg mem_mouse_24g_addr ,rega 
+0x4a65 017680 arg 4 ,loopcnt 
+0x4a66 017681 call otp_write 
+0x4a67 017682 fetcht 2 ,mem_otp_read_retention_offset 
+0x4a68 017683 increase 4 ,temp 
+0x4a69 017684 storet 2 ,mem_otp_read_retention_offset 
+0x4a6a 017685 rtn 
+:      017687 keyboard_store_otp_device_info_ble:
+0x4a6b 017688 fetcht 2 ,mem_otp_read_retention_offset 
+0x4a6c 017689 setarg 0x1fd0 
+0x4a6d 017690 isub temp ,regb 
+0x4a6e 017693 add regb ,1 ,regb 
+0x4a6f 017694 arg mem_device1_addr ,rega 
+0x4a70 017695 arg 6 ,loopcnt 
+0x4a71 017696 call otp_write 
+0x4a72 017698 add regb ,7 ,regb 
+0x4a73 017699 arg mem_device1_locall_addr ,rega 
+0x4a74 017700 arg 6 ,loopcnt 
+0x4a75 017701 branch otp_write 
+:      017703 keybaord_load_device_info:
+0x4a76 017704 fetch 4 ,mem_mouse_24g_addr 
+0x4a77 017705 store 4 ,mem_24g_receiver_addr 
+0x4a78 017706 store 4 ,mem_24g_addr 
+0x4a79 017707 rtn 
+:      017710 keyboard_cb_fuction:
+0x4a7a 017711 bpatch patch08_5 ,mem_patch08 
+0x4a7b 017712 setarg mouse_24g_before_lpm_sleep 
+0x4a7c 017713 store 2 ,mem_cb_before_lpm_sleep 
+0x4a7d 017714 setarg keyboard_24g_package_data 
+0x4a7e 017715 store 2 ,mem_cb_24g_transmit_data 
+0x4a7f 017716 setarg keyboard_24g_search_dongle 
+0x4a80 017717 store 2 ,mem_cb_24g_search_receiver 
+0x4a81 017718 setarg keyboard_lpm_before_common 
+0x4a82 017719 store 2 ,mem_cb_24g_lpm_before 
+0x4a83 017720 setarg keyboard_le 
+0x4a84 017721 store 2 ,mem_cb_le_process 
+0x4a85 017723 setarg keyboard_process_lpm_before 
+0x4a86 017724 store 2 ,mem_cb_before_lpm 
+0x4a87 017726 setarg keyboard_priority_bb_event 
+0x4a88 017727 store 2 ,mem_cb_bb_event_process 
+0x4a89 017728 setarg keyboard_idle 
+0x4a8a 017729 store 2 ,mem_cb_idle_process 
+0x4a8b 017730 setarg keyboard_before_hibernate 
+0x4a8c 017731 store 2 ,mem_cb_before_hibernate 
+0x4a8d 017732 setarg mouse_le_bb_event_connect_complete 
+0x4a8e 017733 store 2 ,mem_cb_att_write 
+0x4a8f 017734 setarg keyboard_bb_event_timer 
+0x4a90 017735 store 2 ,mem_cb_event_timer 
+0x4a91 017736 setarg mouse_spi_write_flash_cb 
+0x4a92 017737 store 2 ,mem_cb_spi_flash_write_complate 
+0x4a93 017738 setarg mouse_lpm_check_wake_lock 
+0x4a94 017739 store 2 ,mem_cb_check_wakelock 
+0x4a95 017740 setarg mouse_le_transmit 
+0x4a96 017741 store 2 ,mem_cb_ble_transmit 
+0x4a97 017742 setarg mouse_set_lpm_mult 
+0x4a98 017743 store 2 ,mem_cb_bt_set_mult 
+0x4a99 017744 rtn 
+:      017748 keyboard_priority_bb_event:
+0x4a9a 017749 bpatch patch08_6 ,mem_patch08 
+0x4a9b 017750 copy regc ,pdata 
+0x4a9c 017752 beq bt_evt_le_start_enc ,keyboard_le_ll_start_encryt 
+0x4a9d 017753 beq bt_evt_le_parse_conn_param_accepted ,keyboard_le_parse_conn_param_accepted 
+0x4a9e 017754 beq bt_evt_le_parse_conn_papa_update_rsp ,keyboard_le_conn_param_update_rsp_recieved 
+0x4a9f 017755 beq bt_evt_le_disconnected ,keyboard_le_bb_disconnected 
+0x4aa0 017757 beq bt_evt_le_connected ,keyboard_le_bb_event_connected 
+0x4aa1 017758 beq bt_evt_button_long_pressed ,keyboard_bb_event_discovery_btn 
+0x4aa2 017759 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+0x4aa3 017760 beq bt_evt_le_enc_info ,mouse_le_enc_info 
+0x4aa4 017762 beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
+0x4aa5 017763 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
+0x4aa6 017765 beq bt_evt_24g_pairing_complete ,keyboard_24g_pairing_complete 
+0x4aa7 017766 beq bt_evt_24g_attempt_success ,keyboard_24g_attempt_success 
+0x4aa8 017767 beq bt_evt_24g_attempt_fail ,keyboard_24g_attempt_fail 
+0x4aa9 017770 rtn 
+:      017776 keyboard_le_bb_event_connected:
+0x4aaa 017777 jam 0 ,mem_mouse_long_mult_flag 
+0x4aab 017779 jam 1 ,mem_mouse_le_bb_connected_flag 
+0x4aac 017780 call mouse_24g_first_store_reconn_info 
+0x4aad 017781 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x4aae 017782 nbranch keyboard_le_bb_event_connected_next ,blank 
+0x4aaf 017783 jam 0x14 ,mem_mouse_send_secutiry_request_timer 
+:      017784 keyboard_le_bb_event_connected_next:
+0x4ab0 017785 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x4ab1 017786 set0 app_disc_by_button ,pdata 
+0x4ab2 017787 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x4ab3 017788 jam 0 ,mem_mouse_direct_timer 
+0x4ab4 017789 fetch 2 ,mem_le_battery_level_updata_timer_init 
+0x4ab5 017790 store 2 ,mem_le_battery_level_updata_timer 
+0x4ab6 017791 call mouse_no_data_timer_init 
+0x4ab7 017792 branch keyboard_stop_discovery 
+:      017795 keyboard_le_bb_disconnected:
+0x4ab8 017796 setarg 0 
+0x4ab9 017797 store 2 ,mem_le_battery_level_updata_timer 
+0x4aba 017798 store 1 ,mem_keyboard_le_send_conn_param_update 
+0x4abb 017799 store 1 ,mem_keyboard_le_send_conn_param_update_timer 
+0x4abc 017800 store 1 ,mem_mouse_le_bb_connected_flag 
+:      017801 keyboard_le_bb_disconnected_next:
+0x4abd 017802 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+0x4abe 017803 jam 0 ,mem_mouse_clear_sensor_data_flag 
+0x4abf 017804 call le_clr_config_more_data 
+0x4ac0 017805 branch keyboard_bb_disconnected 
+:      017806 keyboard_bb_disconnected:
+0x4ac1 017807 call mouse_bb_discon_clear_stack 
+0x4ac2 017808 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x4ac3 017809 bbit1 app_disc_ble ,keyboard4_0_event_bb_disconn 
+0x4ac4 017810 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x4ac5 017811 branch keyboard_start_discovery 
+:      017812 keyboard4_0_event_bb_disconn:
+0x4ac6 017813 call mouse_le_clean_connect_flag 
+0x4ac7 017814 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x4ac8 017815 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x4ac9 017816 call ice_break 
+0x4aca 017817 branch keyboard_app_enter_hibernate 
+:      017820 keyboard_le_ll_start_encryt:
+0x4acb 017821 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x4acc 017822 beq 1 ,keyboard_le_ll_reconn_start_encryt 
+0x4acd 017823 jam 20 ,mem_le_start_encrypt_timer 
+0x4ace 017824 jam 5 ,mem_le_start_auto_reco_timer 
+0x4acf 017825 branch mouse_le_ll_enable_start_enc_flag 
+:      017826 keyboard_le_ll_reconn_start_encryt:
+0x4ad0 017827 call mouse_updata_le_param 
+0x4ad1 017828 jam 5 ,mem_le_start_encrypt_timer 
+0x4ad2 017829 branch mouse_le_ll_enable_start_enc_flag 
+:      017831 keyboard_le_parse_conn_param_accepted:
+0x4ad3 017832 fetch 1 ,mem_le_new_conninterval 
+0x4ad4 017833 sub pdata ,le_interval_15ms ,null 
+0x4ad5 017834 nbranch mouse_le_conn_param_lpm_disable ,positive 
+0x4ad6 017835 fetch 1 ,mem_le_new_connslavelatency 
+0x4ad7 017836 fetcht 1 ,mem_lpm_mult_init 
+0x4ad8 017837 isub temp ,null 
+0x4ad9 017838 branch mouse_le_lpm_mult_reinit ,positive 
+0x4ada 017839 fetch 1 ,mem_le_new_connslavelatency 
+0x4adb 017840 store 1 ,mem_lpm_mult 
+0x4adc 017841 branch mouse_le_conn_param_lpm_enable 
+:      017843 keyboard_le_conn_param_update_rsp_recieved:
+0x4add 017844 fetch 1 ,mem_keyboard_le_send_conn_param_update 
+0x4ade 017845 nrtn blank 
+0x4adf 017846 jam 1 ,mem_keyboard_le_send_conn_param_update 
+0x4ae0 017847 jam 30 ,mem_keyboard_le_send_conn_param_update_timer 
+0x4ae1 017848 rtn 
+:      017850 keyboard_24g_pairing_complete:
+0x4ae2 017851 call keyboard_get_24g_led_enable 
+0x4ae3 017852 call mouse_no_data_timer_init 
+0x4ae4 017853 branch mouse_24g_pairing_complete_common 
+:      017855 keyboard_24g_attempt_success:
+0x4ae5 017856 call keyboard_get_24g_led_enable 
+0x4ae6 017857 fetch 4 ,mem_24g_addr 
+0x4ae7 017858 store 4 ,mem_24g_receiver_addr 
+0x4ae8 017859 store 4 ,mem_mouse_24g_addr 
+0x4ae9 017860 call g24_ch_syncword_crc8_init 
+0x4aea 017861 call mouse_device_poweron_led_config 
+0x4aeb 017862 call mouse_no_data_timer_init 
+0x4aec 017863 branch mouse_24g_attempt_success 
+:      017865 keyboard_24g_get_led:
+0x4aed 017866 jam device_data_tpye_standard_keyboard ,mem_keyboard_data_send_flag 
+0x4aee 017867 call keyboard_clear_key_data 
+0x4aef 017868 jam 0x03 ,mem_customer_key_press + 2 
+0x4af0 017869 rtn 
+:      017871 keyboard_24g_led_get_status_check:
+0x4af1 017872 arg 6 ,loopcnt 
+0x4af2 017873 arg mem_keyboard_tx_data + 3 ,contr 
+:      017874 keyboard_24g_led_data_check:
+0x4af3 017875 ifetch 1 ,contr 
+0x4af4 017876 beq hid_key_num_lock ,keyboard_get_24g_led_enable 
+0x4af5 017877 beq hid_key_caps_lock ,keyboard_get_24g_led_enable 
+0x4af6 017878 beq hid_key_scroll_lock ,keyboard_get_24g_led_enable 
+0x4af7 017879 loop keyboard_24g_led_data_check 
+0x4af8 017880 rtn 
+:      017882 keyboard_get_24g_led_enable:
+0x4af9 017883 jam 0x03 ,mem_keyboard_led_status_get 
+0x4afa 017884 jam 1 ,mem_keyboard_data_change_flag 
+0x4afb 017885 rtn 
+:      017887 keyboard_set_repeat_send_flag:
+0x4afc 017888 jam 1 ,mem_24g_repeat_send_flag 
+0x4afd 017889 rtn 
+:      017892 keyboard_24g_attempt_fail:
+0x4afe 017893 fetch 1 ,mem_24g_attempt_fail_flag 
+0x4aff 017894 nbranch keyboard_24g_hibernate_set ,blank 
+0x4b00 017895 fetch 1 ,mem_24g_reconn_type 
+0x4b01 017896 beq fast_conn_and_3_0_addr ,keyboard_24g_fast_conn_attempt_fail 
+0x4b02 017897 beq receiver_and_3_0_addr ,keyboard_24g_attempt_fail_enter_hibernate 
+0x4b03 017898 branch keyboard_24g_attempt_fail_enter_hibernate 
+:      017900 keyboard_24g_attempt_fail_enter_hibernate:
+0x4b04 017901 call mouse_24g_stop 
+0x4b05 017902 fetch 1 ,mem_reconn_times 
+0x4b06 017903 nbranch mouse_polling_device ,blank 
+0x4b07 017904 fetch 1 ,mem_device_flag 
+0x4b08 017905 beq mode_24g_device ,keyboard_app_enter_hibernate 
+0x4b09 017906 rtn 
+:      017908 keyboard_24g_fast_conn_attempt_fail:
+0x4b0a 017909 fetch mouse_flag_len ,mem_mouse_flag 
+0x4b0b 017910 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+0x4b0c 017911 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+0x4b0d 017912 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+0x4b0e 017913 fetch 4 ,mem_mouse_24g_addr 
+0x4b0f 017914 branch keyboard_24g_start_pair_mode ,blank 
+0x4b10 017915 branch mouse_24g_reconn_dongle_start 
+:      017917 keyboard_24g_hibernate_set:
+0x4b11 017918 jam 0 ,mem_24g_attempt_fail_flag 
+0x4b12 017919 call g24_transmit_next_packet 
+0x4b13 017920 setarg -1 
+0x4b14 017921 store 8 ,mem_24g_enter_hibernate 
+0x4b15 017922 setarg 0 
+0x4b16 017923 store 7 ,mem_mouse_key 
+0x4b17 017924 jam 1 ,mem_sensor_shutdown_flag 
+0x4b18 017925 branch keyboard_g24_long_sleep 
+:      017930 keyboard_bb_event_timer:
+0x4b19 017931 bpatch patch08_7 ,mem_patch08 
+0x4b1a 017932 call mouse_adc_read 
+0x4b1b 017933 call keyboard_low_voltage_param_set 
+0x4b1c 017934 call mouse_low_voltage_led_timer 
+0x4b1d 017936 call g24_pair_timeout_timer 
+0x4b1e 017937 call g24_reconn_timeout_timer 
+0x4b1f 017938 call mouse_24g_long_sleep_param_update_timer 
+0x4b20 017939 call keyboard_24g_repeat_send_data 
+0x4b21 017940 call keyboard_24g_led_status_get_timer 
+0x4b22 017944 call keyboard_check_discovery_timeout_timer 
+0x4b23 017946 call keyboard_check_direct_timeout_timer 
+0x4b24 017947 call mouse_le_enable_att_list_timer 
+0x4b25 017948 call keyboard_le_battery_updata_timer 
+0x4b26 017949 call mouse_le_send_smp_security_request_timer 
+0x4b27 017950 call keyboard_le_send_conn_param_update_timer 
+0x4b28 017951 call keyboard_le_auto_recognize_timer 
+0x4b29 017953 call mouse_current_mult_update_timer 
+0x4b2a 017954 call mouse_wheel_trigger_timer 
+0x4b2b 017955 call keyboard_store_information_delay_timer 
+0x4b2c 017956 call keyboard_capslock_led_on_timer 
+0x4b2d 017957 call keyboard_long_press_timer 
+0x4b2e 017958 call keyboard_commbination_delay_release_timer 
+0x4b2f 017959 fetch 1 ,mem_device_flag 
+0x4b30 017960 beq mode_24g_device ,keyboard_check_no_data_timeout_timer 
+0x4b31 017961 branch mouse_check_no_data_timeout_timer 
+:      017964 keyboard_commbination_key_process:
+0x4b32 017965 fetch 1 ,mem_commbination_key_statue 
+0x4b33 017966 rtnne commbination_key_state_down 
+0x4b34 017967 arg mem_combination_ui_button_count ,regc 
+0x4b35 017968 arg mouse_bluetooth_fast_conn_init ,regb 
+0x4b36 017969 branch timer_single_step 
+:      017971 keyboard_commbination_fast_conn_bt_check:
+0x4b37 017972 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x4b38 017973 fetcht 2 ,mem_keyboard_commbination_fast_conn_bt 
+0x4b39 017974 isub temp ,null 
+0x4b3a 017975 branch keyboard_commbination_key_down ,zero 
+0x4b3b 017976 byteswap temp ,temp 
+0x4b3c 017977 isub temp ,null 
+0x4b3d 017978 branch keyboard_commbination_key_down ,zero 
+0x4b3e 017979 branch mouse_commbination_key_up 
+:      017981 keyboard_commbination_key_down:
+0x4b3f 017982 fetch 1 ,mem_commbination_key_statue 
+0x4b40 017983 rtneq commbination_key_state_down 
+0x4b41 017984 jam commbination_key_state_down ,mem_commbination_key_statue 
+0x4b42 017985 rtn 
+:      017988 keyboard_check_discovery_timeout_timer:
+0x4b43 017989 arg mem_mouse_discovery_timer ,regc 
+0x4b44 017990 arg keyboard_check_discovery_timeout ,regb 
+0x4b45 017991 branch timer_single_step_2b 
+:      017993 keyboard_check_discovery_timeout:
+0x4b46 017994 call keyboard_stop_discovery 
+0x4b47 017995 branch keyboard_app_enter_hibernate 
+:      018000 keyboard_store_information_delay_timer:
+0x4b48 018001 arg mem_store_information_delay_timer ,regc 
+0x4b49 018002 arg keyboard_store_device_info_check ,regb 
+0x4b4a 018003 branch timer_single_step 
+:      018005 keyboard_store_device_info_check:
+0x4b4b 018006 call keyboard_store_device_info 
+0x4b4c 018007 fetch 1 ,mem_mouse_need_soft_reset 
+0x4b4d 018008 nbranch mouse_soft_reset ,blank 
+0x4b4e 018009 rtn 
+:      018011 keyboard_low_voltage_param_set:
+0x4b4f 018012 fetch 1 ,mem_mouse_adc_last_low_voltage_flag 
+0x4b50 018013 branch keyboard_low_voltage_param_set_33v ,blank 
+0x4b51 018014 jam 58 ,mem_mouse_vdd_low_vol 
+0x4b52 018015 rtn 
+:      018016 keyboard_low_voltage_param_set_33v:
+0x4b53 018017 jam 53 ,mem_mouse_vdd_low_vol 
+0x4b54 018018 rtn 
+:      018020 keyboard_le_auto_recognize_timer:
+0x4b55 018022 arg mem_le_start_auto_reco_timer ,regc 
+0x4b56 018023 arg keyboard_le_send_att_find_by_type_value_request_ancs ,regb 
+0x4b57 018024 branch timer_single_step 
+:      018026 keyboard_check_direct_timeout_timer:
+0x4b58 018027 arg mem_mouse_direct_timer ,regc 
+0x4b59 018028 arg mouse_check_direct_timeout ,regb 
+0x4b5a 018029 call timer_single_step 
+0x4b5b 018030 branch mouse_check_direct_timeout_timer + 3 
+:      018032 keyboard_le_battery_updata_timer:
+0x4b5c 018033 fetch mouse_flag_len ,mem_mouse_flag 
+0x4b5d 018034 rtnbit1 mouse_enable_le_battery_service_cancel 
+0x4b5e 018035 branch mouse_le_battery_updata_timer 
+:      018037 keyboard_le_send_conn_param_update_timer:
+0x4b5f 018038 arg mem_keyboard_le_send_conn_param_update_timer ,regc 
+0x4b60 018039 arg mouse_updata_le_param ,regb 
+0x4b61 018040 branch timer_single_step 
+:      018042 keyboard_24g_repeat_send_data:
+0x4b62 018043 fetch 1 ,mem_24g_repeat_send_flag 
+0x4b63 018044 rtn blank 
+0x4b64 018045 jam 0 ,mem_24g_repeat_send_flag 
+0x4b65 018046 jam 1 ,mem_keyboard_data_change_flag 
+0x4b66 018047 call g24_txdata_prep 
+0x4b67 018048 branch keyboard_g24_transmit_process 
+:      018050 keyboard_24g_led_status_get_timer:
+0x4b68 018051 arg mem_keyboard_led_status_get_timer ,regc 
+0x4b69 018052 arg keyboard_24g_led_status_clear ,regb 
+0x4b6a 018053 branch timer_single_step 
+:      018055 keyboard_24g_led_status_clear:
+0x4b6b 018056 jam 0 ,mem_keyboard_led_status_get 
+0x4b6c 018057 rtn 
+:      018063 keyboard_device_led_off:
+0x4b6d 018064 call mouse_device_multi_led_off 
+0x4b6e 018065 call keyboard_capslock_led_off 
+:      018066 keyboard_power_led_off:
+0x4b6f 018067 fetcht 1 ,mem_keyboard_power_led_gpio 
+0x4b70 018068 branch gpio_out_inactive 
+:      018069 keyboard_numlock_led_off:
+0x4b71 018070 rtn 
+:      018073 keyboard_capslock_led_on_timer:
+0x4b72 018074 fetch 1 ,mem_keyboard_caps_led_gpio 
+0x4b73 018075 rtneq gpio_disable 
+0x4b74 018076 fetch 2 ,mem_mouse_no_data_timer 
+0x4b75 018077 rtn blank 
+0x4b76 018078 fetch 2 ,mem_mouse_no_data_timeout 
+0x4b77 018079 fetcht 2 ,mem_mouse_no_data_timer 
+0x4b78 018080 isub temp ,temp 
+0x4b79 018081 fetch 2 ,mem_keyboard_caps_led_on_timer 
+0x4b7a 018082 isub temp ,pdata 
+0x4b7b 018083 branch keyboard_capslock_led_check_on ,positive 
+:      018084 keyboard_capslock_led_off:
+0x4b7c 018085 fetcht 1 ,mem_keyboard_caps_led_gpio 
+0x4b7d 018086 branch gpio_out_inactive 
+:      018090 keyboard_capslock_led_check_on:
+0x4b7e 018091 fetch 1 ,mem_keyboard_led_status 
+0x4b7f 018092 bbit0 kb_pc_keysel_capslock ,keyboard_capslock_led_off 
+0x4b80 018093 fetcht 1 ,mem_keyboard_caps_led_gpio 
+0x4b81 018094 branch gpio_out_active 
+:      018096 keyboard_long_press_timer:
+0x4b82 018097 arg mem_same_keyvalue_timer ,regc 
+0x4b83 018098 arg keyboard_long_press_timerout ,regb 
+0x4b84 018099 branch timer_single_step_2b 
+:      018101 keyboard_long_press_timerout:
+0x4b85 018102 jam 1 ,mem_same_keyvalue_timerout_flag 
+0x4b86 018103 branch app_enter_hibernate 
+:      018105 keyboard_commbination_delay_release_timer:
+0x4b87 018106 arg mem_keyboard_commbination_control_key_delay_release_timer ,regc 
+0x4b88 018107 arg keyboard_commbination_key_null_set ,regb 
+0x4b89 018108 branch timer_single_step 
+:      018111 keyboard_check_no_data_timeout_timer:
+0x4b8a 018112 arg mem_mouse_no_data_timer ,regc 
+0x4b8b 018113 arg keyboard_check_no_data_timeout ,regb 
+0x4b8c 018114 branch timer_single_step_2b 
+:      018116 keyboard_check_no_data_timeout:
+0x4b8d 018117 fetch 1 ,mem_device_flag 
+0x4b8e 018118 beq mode_24g_device ,keyboard_24g_hibernate_set 
+0x4b8f 018119 branch mouse_disconnect 
+:      018122 keyboard_bb_event_discovery_btn:
+0x4b90 018123 isolate1 mark_24g ,mark 
+0x4b91 018124 call mouse_24g_stop ,true 
+0x4b92 018125 call mouse_disconnect 
+0x4b93 018126 call mouse_le_clean_connect_flag 
+0x4b94 018127 branch keyboard_start_discovery 
+:      018129 keyboard_start_discovery:
+0x4b95 018130 bpatch patch09_0 ,mem_patch09 
+0x4b96 018131 call mouse_device_discovery_led_config 
+0x4b97 018132 fetch 2 ,mem_ui_state_map 
+0x4b98 018133 isolate1 ui_state_ble_adv ,pdata 
+0x4b99 018134 call mouse_stop_le_adv ,true 
+0x4b9a 018136 setarg 0 
+0x4b9b 018137 store 2 ,mem_le_battery_level_updata_timer 
+0x4b9c 018138 call keyboard_capslock_led_off 
+0x4b9d 018139 jam 0xff ,mem_kb_computer_system 
+0x4b9e 018141 fetch 2 ,mem_ui_state_map 
+0x4b9f 018142 isolate1 ui_state_ble_adv ,pdata 
+0x4ba0 018143 call mouse_stop_le_adv ,true 
+0x4ba1 018144 call mouse_bluetooth_fast_conn_disable 
+0x4ba2 018145 fetch 2 ,mem_ui_state_map 
+0x4ba3 018146 bbit1 ui_state_ble_adv ,keyboard_start_discovery_norandom 
+0x4ba4 018147 fetch mouse_flag_len ,mem_mouse_flag 
+0x4ba5 018148 bbit0 mouse_enable_ble_random_addre ,keyboard_start_discovery_norandom 
+0x4ba6 018149 fetcht 2 ,mem_random_addr_increase_count 
+0x4ba7 018150 increase 1 ,temp 
+0x4ba8 018151 storet 2 ,mem_random_addr_increase_count 
+0x4ba9 018152 storet 2 ,mem_le_lap + 1 
+0x4baa 018153 random pdata 
+0x4bab 018154 store 1 ,mem_le_lap 
+:      018155 keyboard_start_discovery_norandom:
+0x4bac 018156 fetch 3 ,mem_mouse_le_lap_temp 
+0x4bad 018157 store 3 ,mem_le_lap + 3 
+0x4bae 018158 call app_lpm_mult_disable 
+0x4baf 018159 fetch 2 ,mem_mouse_discovery_timeout 
+0x4bb0 018160 store 2 ,mem_mouse_discovery_timer 
+0x4bb1 018161 setarg 0 
+0x4bb2 018162 store 2 ,mem_mouse_no_data_timer 
+0x4bb3 018163 store 2 ,mem_le_battery_level_updata_timer 
+0x4bb4 018164 store 1 ,mem_mouse_direct_timer 
+0x4bb5 018165 store 1 ,mem_mouse_bluetooth_reconnect_timeout 
+0x4bb6 018166 store 1 ,mem_mouse_clear_sensor_data_flag 
+0x4bb7 018167 arg mouse_store_eeprom_flag ,queue 
+0x4bb8 018168 call mouse_enable_function_flag 
+0x4bb9 018169 call mouse_bt_discovery_button_down_disable 
+0x4bba 018170 branch mouse_check_51cmd_adv 
+:      018173 keyboard_low_voltage_led_blink_disable:
+0x4bbb 018174 jam 0 ,mem_mouse_adc_last_low_voltage_flag 
+0x4bbc 018175 branch mouse_low_voltage_led_off_judge 
+:      018177 keyboard_stop_discovery:
+0x4bbd 018178 bpatch patch09_1 ,mem_patch09 
+0x4bbe 018179 setarg 0 
+0x4bbf 018180 store 2 ,mem_mouse_discovery_timer 
+0x4bc0 018181 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0x4bc1 018182 call mouse_disable_function_flag 
+0x4bc2 018183 jam 0 ,mem_mouse_bluetooth_reconnect_timeout 
+0x4bc3 018184 call mouse_stop_le_adv 
+0x4bc4 018185 branch keyboard_device_led_off 
+:      018188 keyboard_store_remote_bdaddr:
+0x4bc5 018189 bpatch patch09_2 ,mem_patch09 
+0x4bc6 018190 fetch mouse_flag_len ,mem_mouse_flag 
+0x4bc7 018191 rtnbit0 mouse_store_eeprom_flag 
+0x4bc8 018192 arg mouse_store_eeprom_flag ,queue 
+0x4bc9 018193 call mouse_disable_function_flag 
+0x4bca 018194 call mouse_check_device_addr 
+0x4bcb 018195 branch mouse_unplug_clean_bdaddr 
+:      018198 keyboard_idle:
+0x4bcc 018199 bpatch patch09_3 ,mem_patch09 
+0x4bcd 018200 call mouse_low_voltage_led_no_enter_lpm 
+0x4bce 018201 branch ui_check_paring_button 
+:      018205 keyboard_start_work:
+0x4bcf 018206 bpatch patch09_4 ,mem_patch09 
+0x4bd0 018207 fetch mouse_flag_len ,mem_mouse_flag 
+0x4bd1 018208 bbit0 mouse_enable_adc ,keyboard_start_work_next 
+0x4bd2 018209 call enable_adc 
+0x4bd3 018210 call vdd_calculate_by_mode 
+0x4bd4 018211 store 2 ,mem_mouse_vdd_now_vol 
+0x4bd5 018213 fetch 2 ,mem_adc_current_value 
+0x4bd6 018214 isub temp ,null 
+0x4bd7 018215 branch keyboard_start_work ,positive 
+0x4bd8 018216 arg mem_mouse_vdd_calculate_set ,rega 
+0x4bd9 018217 call mouse_adc_bat_percent_lowpower_out 
+0x4bda 018218 fetch 1 ,mem_adc_power_flag 
+0x4bdb 018219 bbit1 1 ,keyboard_power_down 
+:      018220 keyboard_start_work_next:
+0x4bdc 018222 fetch 1 ,mem_keyboard_pairing_type 
+0x4bdd 018223 call keyboard_enable_bt_button_pairing ,blank 
+0x4bde 018224 fetch 1 ,mem_keyboard_bt_button_flag 
+0x4bdf 018225 nrtn blank 
+0x4be0 018226 fetch 1 ,mem_device_flag 
+0x4be1 018227 beq mode_24g_device ,mouse_24g_reconn_general_dongle 
+0x4be2 018228 call mouse_bluetooth_fast_conn_disable 
+0x4be3 018229 fetch 6 ,mem_device1_addr 
+0x4be4 018230 branch mouse_bluetooth_fast_conn_init ,blank 
+0x4be5 018231 branch mouse_start_reconnect_device 
+:      018243 keyboard_le:
+0x4be6 018244 bpatch patch09_5 ,mem_patch09 
+0x4be7 018245 call le_fifo_check_nearly_full 
+0x4be8 018246 nrtn blank 
+0x4be9 018247 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0x4bea 018248 beq 0xff ,keyboard_le_next 
+0x4beb 018249 fetch 1 ,mem_le_connect_status_flag 
+0x4bec 018250 and pdata ,0x03 ,pdata 
+0x4bed 018251 rtnne 0x03 
+:      018252 keyboard_le_next:
+0x4bee 018253 fetch mouse_flag_len ,mem_mouse_flag 
+0x4bef 018254 bbit1 mouse_24g_pairing_flag ,mouse_le_send_empty_packet 
+0x4bf0 018255 bbit1 mouse_select_device_flag ,mouse_le_send_empty_packet 
+0x4bf1 018256 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
+0x4bf2 018257 bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_le_send_empty_packet 
+0x4bf3 018258 call keyboard_motion 
+0x4bf4 018259 nrtn user 
+0x4bf5 018260 call mouse_current_mult_update 
+0x4bf6 018261 call mouse_wheel_trigger 
+0x4bf7 018262 fetch mouse_flag_len ,mem_mouse_flag 
+0x4bf8 018263 bbit0 mouse_enable_keyboard ,mouse_le_send_mouse_data 
+0x4bf9 018264 fetch 1 ,mem_customer_key 
+0x4bfa 018265 branch mouse_le_send_keyboard_package_data 
+:      018272 kscan_dispatch:
+0x4bfb 018273 fetch 1 ,mem_device_option 
+0x4bfc 018274 rtnne dvc_op_keyboard 
+0x4bfd 018275 call keyboard_keyscan 
+0x4bfe 018276 call keyboard_key_process 
+0x4bff 018277 branch keyboard_special_key_check 
+:      018284 keyboard_keyscan:
+0x4c00 018285 bpatch patch09_6 ,mem_patch09 
+0x4c01 018286 call keyboard_stb_state_low 
+0x4c02 018287 setarg 0 
+0x4c03 018288 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x4c04 018289 arg mem_keyscan_value_current ,contr 
+0x4c05 018290 arg mem_keyscan_value_check ,contw 
+0x4c06 018291 arg 20 ,loopcnt 
+0x4c07 018292 call memcpy 
+0x4c08 018293 setarg mem_keyscan_value_current 
+0x4c09 018294 store 2 ,mem_keyscan_value_ptr 
+0x4c0a 018295 setarg mem_keyscan_exmcu_value 
+0x4c0b 018296 store 2 ,mem_keyscan_exmcu_value_ptr 
+0x4c0c 018297 call keyboard_keyscan_get_exmcu_value 
+0x4c0d 018298 call keyboard_keyscan_get_mcu_value 
+0x4c0e 018299 call keyboard_stb_state_high 
+:      018300 keyboard_keyscan_copy_value:
+0x4c0f 018301 fetch 2 ,mem_kb_excol_ptr 
+0x4c10 018302 copy pdata ,regb 
+0x4c11 018303 jam 0 ,mem_keyscan_col_loop_count 
+:      018304 keyboard_compare_col_excol_gpio_loop:
+0x4c12 018305 ifetcht 1 ,regb 
+0x4c13 018306 fetch 2 ,mem_kb_col_ptr 
+0x4c14 018307 copy pdata ,rega 
+0x4c15 018308 copy rega ,regc 
+0x4c16 018309 arg 20 ,loopcnt 
+:      018310 keyboard_compare_col_gpio_loop:
+0x4c17 018311 ifetch 1 ,rega 
+0x4c18 018312 isub temp ,null 
+0x4c19 018313 branch keyboard_copy_value_exmcu_to_mcu ,zero 
+0x4c1a 018314 increase 1 ,rega 
+0x4c1b 018315 loop keyboard_compare_col_gpio_loop 
+:      018316 keyboard_compare_col_excol_gpio_loop_next:
+0x4c1c 018317 increase 1 ,regb 
+0x4c1d 018318 fetch 1 ,mem_keyscan_col_loop_count 
+0x4c1e 018319 increase 1 ,pdata 
+0x4c1f 018320 store 1 ,mem_keyscan_col_loop_count 
+0x4c20 018321 sub pdata ,10 ,null 
+0x4c21 018322 branch keyboard_compare_col_excol_gpio_loop ,positive 
+0x4c22 018324 rtn 
+:      018326 keyboard_copy_value_exmcu_to_mcu:
+0x4c23 018327 fetch 2 ,mem_keyscan_value_ptr 
+0x4c24 018328 copy pdata ,contw 
+0x4c25 018329 copy rega ,pdata 
+0x4c26 018330 isub regc ,pdata 
+0x4c27 018331 iadd contw ,contw 
+0x4c28 018332 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+0x4c29 018333 copy pdata ,regc 
+0x4c2a 018334 fetch 1 ,mem_keyscan_col_loop_count 
+0x4c2b 018335 iadd regc ,regc 
+0x4c2c 018336 ifetch 1 ,regc 
+0x4c2d 018337 istore 1 ,contw 
+0x4c2e 018338 branch keyboard_compare_col_excol_gpio_loop_next 
+:      018340 keyboard_keyscan_get_exmcu_value:
+0x4c2f 018341 bpatch patch09_7 ,mem_patch09 
+0x4c30 018342 call keyboard_stb_state_high 
+0x4c31 018343 call keyboard_clk_input 
+:      018344 keyboard_keyscan_exmcu_start:
+0x4c32 018345 fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x4c33 018346 increase 1 ,pdata 
+0x4c34 018347 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x4c35 018348 bbit1 9 ,keyboard_keyscan_reset_exmcu 
+0x4c36 018349 fetcht 1 ,mem_mcu_clk_gpio 
+0x4c37 018350 call gpio_get_bit 
+0x4c38 018351 nbranch keyboard_keyscan_exmcu_start ,true 
+0x4c39 018352 nop 20 
+0x4c3a 018353 call keyboard_clk_state_high 
+0x4c3b 018354 call keyboard_stb_state_low 
+0x4c3c 018355 jam 0 ,mem_keyscan_col_loop_count 
+:      018356 keyboard_keyscan_exmcu_start_loop:
+0x4c3d 018357 call keyboard_clk_state_low 
+0x4c3e 018358 call keyboard_keyscan_exmcu_get_col_value 
+0x4c3f 018359 call keyboard_clk_state_high 
+0x4c40 018360 call keyboard_keyscan_exmcu_get_col_value 
+0x4c41 018361 sub pdata ,9 ,null 
+0x4c42 018362 branch keyboard_keyscan_exmcu_start_loop ,positive 
+0x4c43 018363 call keyboard_clk_state_low 
+0x4c44 018364 call keyboard_keyscan_exmcu_get_col_value 
+0x4c45 018365 branch keyboard_clk_state_high 
+:      018367 keyboard_keyscan_exmcu_get_col_value:
+0x4c46 018368 jam 0 ,mem_keyscan_value_temp 
+0x4c47 018369 nop 50 
+0x4c48 018370 call keyboard_keyscan_get_col_value 
+0x4c49 018371 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+:      018372 keyboard_keyscan_value_store:
+0x4c4a 018373 copy pdata ,contw 
+0x4c4b 018374 fetch 1 ,mem_keyscan_col_loop_count 
+0x4c4c 018375 iadd contw ,contw 
+0x4c4d 018376 fetch 1 ,mem_keyscan_value_temp 
+0x4c4e 018377 istore 1 ,contw 
+0x4c4f 018378 fetch 1 ,mem_keyscan_col_loop_count 
+0x4c50 018379 increase 1 ,pdata 
+0x4c51 018380 store 1 ,mem_keyscan_col_loop_count 
+0x4c52 018381 rtn 
+:      018384 keyboard_keyscan_get_mcu_value:
+0x4c53 018385 nop 20 
+0x4c54 018386 fetch 2 ,mem_kb_col_ptr 
+0x4c55 018387 copy pdata ,regb 
+0x4c56 018388 jam 0 ,mem_keyscan_col_loop_count 
+:      018389 keyboard_keyscan_mcu_start:
+0x4c57 018390 jam 0 ,mem_keyscan_value_temp 
+0x4c58 018391 ifetcht 1 ,regb 
+0x4c59 018392 isolate1 7 ,temp 
+0x4c5a 018393 branch keyboard_keyscan_mcu_start_loop ,true 
+0x4c5b 018394 call gpio_out_active 
+0x4c5c 018395 call keyboard_keyscan_get_col_value 
+0x4c5d 018396 ifetcht 1 ,regb 
+0x4c5e 018397 call gpio_set_high_impedance 
+:      018398 keyboard_keyscan_mcu_start_loop:
+0x4c5f 018399 increase 1 ,regb 
+0x4c60 018400 fetch 2 ,mem_keyscan_value_ptr 
+0x4c61 018401 call keyboard_keyscan_value_store 
+0x4c62 018402 sub pdata ,19 ,null 
+0x4c63 018403 branch keyboard_keyscan_mcu_start ,positive 
+0x4c64 018404 rtn 
+:      018407 keyboard_keyscan_get_col_value:
+0x4c65 018408 fetch 2 ,mem_kb_row_ptr 
+0x4c66 018409 copy pdata ,regc 
+0x4c67 018410 arg 8 ,loopcnt 
+:      018412 keyboard_keyscan_get_col_value_loop:
+0x4c68 018413 ifetcht 1 ,regc 
+0x4c69 018414 call gpio_get_bit 
+0x4c6a 018415 fetch 1 ,mem_keyscan_value_temp 
+0x4c6b 018416 rshift pdata ,pdata 
+0x4c6c 018417 setflag true ,7 ,pdata 
+0x4c6d 018418 store 1 ,mem_keyscan_value_temp 
+0x4c6e 018419 increase 1 ,regc 
+0x4c6f 018420 loop keyboard_keyscan_get_col_value_loop 
+0x4c70 018421 rtn 
+:      018422 keyboard_keyscan_reset_exmcu:
+0x4c71 018423 fetcht 1 ,mem_mcu_rstb_gpio 
+0x4c72 018424 call gpio_out_active 
+0x4c73 018425 nop 20 
+0x4c74 018426 fetcht 1 ,mem_mcu_rstb_gpio 
+0x4c75 018427 call gpio_out_inactive 
+0x4c76 018428 nop 6000 
+0x4c77 018429 rtn 
+0x4c78 018430 branch keyboard_keyscan 
+:      018431 keyboard_clk_state_high:
+0x4c79 018432 fetcht 1 ,mem_mcu_clk_gpio 
+0x4c7a 018433 branch gpio_out_inactive 
+:      018435 keyboard_clk_state_low:
+0x4c7b 018436 fetcht 1 ,mem_mcu_clk_gpio 
+0x4c7c 018437 branch gpio_out_active 
+:      018438 keyboard_gpio_config_input_pu:
+0x4c7d 018439 sub temp ,ui_button_gpio_disable ,null 
+0x4c7e 018440 rtn zero 
+0x4c7f 018441 set0 gpio_active_bit ,temp 
+0x4c80 018442 branch gpio_config_input 
+:      018443 keyboard_clk_input:
+0x4c81 018444 fetcht 1 ,mem_mcu_clk_gpio 
+0x4c82 018445 branch gpio_config_input 
+:      018447 keyboard_stb_state_high:
+0x4c83 018448 fetcht 1 ,mem_mcu_stb_gpio 
+0x4c84 018449 branch gpio_out_inactive 
+:      018451 keyboard_stb_state_low:
+0x4c85 018452 fetcht 1 ,mem_mcu_stb_gpio 
+0x4c86 018453 branch gpio_out_active 
+:      018464 keyboard_press_change_or_no_key:
+0x4c87 018465 jam 0 ,mem_same_keyvalue_timerout_flag 
+0x4c88 018466 fetch 2 ,mem_same_keyvalue_timer_init 
+0x4c89 018467 store 2 ,mem_same_keyvalue_timer 
+0x4c8a 018468 rtn 
+:      018470 keyboard_key_process:
+0x4c8b 018472 bpatch patch0a_0 ,mem_patch0a 
+0x4c8c 018473 arg mem_keyscan_value_current ,rega 
+0x4c8d 018474 arg mem_keyscan_value_check ,regb 
+0x4c8e 018475 arg 20 ,loopcnt 
+0x4c8f 018476 call string_compare 
+0x4c90 018477 nbranch keyboard_press_change_or_no_key ,zero 
+0x4c91 018478 call keyboard_keyscan_value_current_zero_check 
+0x4c92 018479 call keyboard_press_change_or_no_key ,blank 
+0x4c93 018481 call keyboard_ghost_key_check 
+0x4c94 018482 fetch 1 ,mem_mouse_ghost_flag 
+0x4c95 018483 nrtn blank 
+0x4c96 018484 fetch 1 ,mem_keyboard_commbination_key_step 
+0x4c97 018485 rtneq cammbination_key_press 
+0x4c98 018486 rtneq cammbination_key_hold 
+0x4c99 018487 rtneq cammbination_key_wait_release 
+0x4c9a 018490 jam 0 ,mem_keyscan_col_loop_count 
+0x4c9b 018491 arg mem_keyscan_value_current ,rega 
+0x4c9c 018492 arg mem_keyscan_value_old ,regb 
+:      018493 keyboard_keyvalue_process:
+0x4c9d 018494 ifetcht 1 ,rega 
+0x4c9e 018495 ifetch 1 ,regb 
+0x4c9f 018496 ixor temp ,pdata 
+0x4ca0 018497 branch keyboard_keyvalue_process_loop ,blank 
+0x4ca1 018498 store 1 ,mem_keyscan_value_temp 
+0x4ca2 018499 storet 1 ,mem_keyboard_press_flag_temp 
+0x4ca3 018500 istoret 1 ,regb 
+0x4ca4 018501 jam 1 ,mem_keyboard_data_change_flag 
+0x4ca5 018502 jam 0 ,mem_keyboard_keyvalue_bit_loop_count 
+:      018503 keyboard_keyvalue_change:
+0x4ca6 018504 fetch 1 ,mem_keyscan_value_temp 
+0x4ca7 018505 bbit0 0 ,keyboard_keyvalue_change_loop 
+0x4ca8 018506 fetch 1 ,mem_keyscan_col_loop_count 
+0x4ca9 018507 mul32 pdata ,8 ,pdata 
+0x4caa 018508 fetcht 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x4cab 018509 iadd temp ,pdata 
+0x4cac 018510 arg mem_keyboard_keyvalue_map ,contr 
+0x4cad 018511 iadd contr ,contr 
+0x4cae 018512 ifetch 1 ,contr 
+0x4caf 018513 store 1 ,mem_keyboard_keyvalue_temp 
+0x4cb0 018514 call keyboard_keyvalue_fn_replace 
+0x4cb1 018515 call keyboard_keyvalue_commbination_replace 
+0x4cb2 018516 call keyboard_keyvalue_in_out 
+:      018517 keyboard_keyvalue_change_loop:
+0x4cb3 018518 fetch 1 ,mem_keyscan_value_temp 
+0x4cb4 018519 rshift pdata ,pdata 
+0x4cb5 018520 store 1 ,mem_keyscan_value_temp 
+0x4cb6 018521 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4cb7 018522 rshift pdata ,pdata 
+0x4cb8 018523 store 1 ,mem_keyboard_press_flag_temp 
+0x4cb9 018524 fetch 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x4cba 018525 increase 1 ,pdata 
+0x4cbb 018526 store 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x4cbc 018527 loop keyboard_keyvalue_change 
+:      018528 keyboard_keyvalue_process_loop:
+0x4cbd 018529 increase 1 ,rega 
+0x4cbe 018530 increase 1 ,regb 
+0x4cbf 018531 fetch 1 ,mem_keyscan_col_loop_count 
+0x4cc0 018532 increase 1 ,pdata 
+0x4cc1 018533 store 1 ,mem_keyscan_col_loop_count 
+0x4cc2 018534 sub pdata ,19 ,null 
+0x4cc3 018535 branch keyboard_keyvalue_process ,positive 
+0x4cc4 018536 rtn 
+:      018538 keyboard_keyscan_value_current_zero_check:
+0x4cc5 018539 fetch 8 ,mem_keyscan_value_current 
+0x4cc6 018540 nrtn blank 
+0x4cc7 018541 fetch 8 ,mem_keyscan_value_current + 8 
+0x4cc8 018542 nrtn blank 
+0x4cc9 018543 fetch 4 ,mem_keyscan_value_current + 16 
+0x4cca 018544 nrtn blank 
+0x4ccb 018545 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+0x4ccc 018546 rtn 
+:      018550 keyboard_ghost_key_check:
+0x4ccd 018551 bpatch patch0a_1 ,mem_patch0a 
+0x4cce 018552 jam 0 ,mem_mouse_ghost_flag 
+0x4ccf 018553 jam 0 ,mem_keyboard_all_press_key_count 
+0x4cd0 018554 arg mem_keyscan_value_current ,rega 
+0x4cd1 018555 arg 20 ,loopcnt 
+:      018556 keyboard_ghost_key_check_loop:
+0x4cd2 018557 jam 0 ,mem_keyboard_current_col_press_key_count 
+0x4cd3 018558 ifetch 1 ,rega 
+0x4cd4 018559 branch keyboard_ghost_key_check_next_loop ,blank 
+:      018560 keyboard_current_col_press_key_count_check:
+0x4cd5 018561 fetcht 1 ,mem_keyboard_current_col_press_key_count 
+0x4cd6 018562 increase 1 ,temp 
+0x4cd7 018563 storet 1 ,mem_keyboard_current_col_press_key_count 
+0x4cd8 018564 copy pdata ,temp 
+0x4cd9 018565 increase -1 ,pdata 
+0x4cda 018566 iand temp ,pdata 
+0x4cdb 018567 nbranch keyboard_current_col_press_key_count_check ,zero 
+0x4cdc 018568 fetch 1 ,mem_keyboard_current_col_press_key_count 
+0x4cdd 018569 fetcht 1 ,mem_keyboard_all_press_key_count 
+0x4cde 018570 iadd temp ,temp 
+0x4cdf 018571 storet 1 ,mem_keyboard_all_press_key_count 
+0x4ce0 018572 sub pdata ,1 ,null 
+0x4ce1 018573 branch keyboard_ghost_key_check_next_loop ,positive 
+0x4ce2 018574 sub temp ,2 ,null 
+0x4ce3 018575 branch keyboard_ghost_key_check_next_loop ,positive 
+0x4ce4 018576 jam 0 ,mem_keyscan_col_loop_count 
+0x4ce5 018577 jam 0 ,mem_keyboard_same_row_press_key_count 
+0x4ce6 018578 ifetcht 1 ,rega 
+0x4ce7 018579 arg mem_keyscan_value_current ,regb 
+:      018580 keyboard_same_row_key_check:
+0x4ce8 018581 fetch 1 ,mem_keyscan_col_loop_count 
+0x4ce9 018582 increase 1 ,pdata 
+0x4cea 018583 store 1 ,mem_keyscan_col_loop_count 
+0x4ceb 018584 sub pdata ,19 ,null 
+0x4cec 018585 nbranch keyboard_ghost_key_check_next_loop ,positive 
+0x4ced 018586 ifetch 1 ,regb 
+0x4cee 018587 iand temp ,null 
+0x4cef 018588 branch keyboard_same_row_key_check_loop ,zero 
+0x4cf0 018589 fetch 1 ,mem_keyboard_same_row_press_key_count 
+0x4cf1 018590 increase 1 ,pdata 
+0x4cf2 018591 store 1 ,mem_keyboard_same_row_press_key_count 
+0x4cf3 018592 sub pdata ,1 ,null 
+0x4cf4 018593 branch keyboard_same_row_key_check_loop ,positive 
+0x4cf5 018594 jam 1 ,mem_mouse_ghost_flag 
+0x4cf6 018595 rtn 
+:      018597 keyboard_ghost_key_check_next_loop:
+0x4cf7 018598 increase 1 ,rega 
+0x4cf8 018599 loop keyboard_ghost_key_check_loop 
+0x4cf9 018600 rtn 
+:      018602 keyboard_same_row_key_check_loop:
+0x4cfa 018603 increase 1 ,regb 
+0x4cfb 018604 branch keyboard_same_row_key_check 
+:      018612 keyboard_keyvalue_fn_replace:
+0x4cfc 018613 bpatch patch0a_2 ,mem_patch0a 
+0x4cfd 018614 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4cfe 018615 ncall keyboard_commbination_delay_release_clear ,blank 
+0x4cff 018616 fetch 1 ,mem_keyboard_fn_flag 
+0x4d00 018617 ncall keyboard_keyvalue_fn_replace_press ,blank 
+0x4d01 018618 fetch 1 ,mem_keyboard_fn_first 
+0x4d02 018619 fetcht 1 ,mem_keyboard_fn_flag 
+0x4d03 018620 ixor temp ,pdata 
+0x4d04 018621 rtn zero 
+0x4d05 018622 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x4d06 018623 beq hid_key_esc ,keyboard_keyvalue_fn_esc 
+0x4d07 018624 beq hid_key_delete ,keyboard_keyvalue_fn_delete 
+0x4d08 018625 sub pdata ,hid_key_f12 ,null 
+0x4d09 018626 nrtn positive 
+0x4d0a 018627 arg hid_key_f1 ,temp 
+0x4d0b 018628 isub temp ,pdata 
+0x4d0c 018629 nrtn positive 
+0x4d0d 018630 arg mem_keyboard_fn_f1 ,contr 
+0x4d0e 018631 iadd contr ,contr 
+0x4d0f 018632 ifetch 1 ,contr 
+0x4d10 018633 branch keyboard_keyvalue_store_temp 
+:      018635 keyboard_keyvalue_fn_replace_press:
+0x4d11 018636 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x4d12 018637 beq hid_key_up_arrow ,keyboard_keyvalue_fn_up_arrow 
+0x4d13 018638 beq hid_key_down_arrow ,keyboard_keyvalue_fn_down_arrow 
+0x4d14 018639 beq hid_key_left_arrow ,keyboard_keyvalue_fn_left_arrow 
+0x4d15 018640 beq hid_key_right_arrow ,keyboard_keyvalue_fn_right_arrow 
+0x4d16 018641 beq hid_key_left_ctrl ,keyboard_keyvalue_fn_left_ctrl 
+0x4d17 018642 beq hid_key_space ,keyboard_keyvalue_fn_space 
+0x4d18 018643 rtn 
+:      018645 keyboard_keyvalue_fn_esc:
+0x4d19 018646 fetch 1 ,mem_keyboard_fn_esc 
+0x4d1a 018647 branch keyboard_keyvalue_store_temp 
+:      018649 keyboard_keyvalue_fn_delete:
+0x4d1b 018650 fetch 1 ,mem_keyboard_fn_del 
+0x4d1c 018651 branch keyboard_keyvalue_store_temp 
+:      018653 keyboard_keyvalue_fn_up_arrow:
+0x4d1d 018654 fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+0x4d1e 018655 rtn blank 
+0x4d1f 018656 setarg hid_key_page_up 
+0x4d20 018657 branch keyboard_keyvalue_store_temp 
+:      018659 keyboard_keyvalue_fn_down_arrow:
+0x4d21 018660 fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+0x4d22 018661 rtn blank 
+0x4d23 018662 setarg hid_key_page_down 
+0x4d24 018663 branch keyboard_keyvalue_store_temp 
+:      018665 keyboard_keyvalue_fn_left_arrow:
+0x4d25 018666 fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+0x4d26 018667 rtn blank 
+0x4d27 018668 setarg hid_key_home 
+0x4d28 018669 branch keyboard_keyvalue_store_temp 
+:      018671 keyboard_keyvalue_fn_right_arrow:
+0x4d29 018672 fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+0x4d2a 018673 rtn blank 
+0x4d2b 018674 setarg hid_key_end 
+0x4d2c 018675 branch keyboard_keyvalue_store_temp 
+:      018677 keyboard_keyvalue_fn_left_ctrl:
+0x4d2d 018678 fetch 1 ,mem_keyboard_fn_left_ctrl_enable_flag 
+0x4d2e 018679 rtn blank 
+0x4d2f 018680 fetch 1 ,mem_kb_computer_system 
+0x4d30 018681 beq system_os_windows ,keyboard_keyvalue_windows_osk 
+0x4d31 018682 setarg hid_key_os_soft_kb 
+0x4d32 018683 branch keyboard_keyvalue_store_temp 
+:      018684 keyboard_keyvalue_windows_osk:
+0x4d33 018685 setarg hid_key_osk 
+0x4d34 018686 branch keyboard_keyvalue_store_temp 
+:      018688 keyboard_keyvalue_fn_space:
+0x4d35 018689 fetch 1 ,mem_keyboard_fn_space_enable_flag 
+0x4d36 018690 rtn blank 
+0x4d37 018691 setarg hid_key_language 
+:      018692 keyboard_keyvalue_store_temp:
+0x4d38 018693 store 1 ,mem_keyboard_keyvalue_temp 
+0x4d39 018694 rtn 
+:      018700 keyboard_keyvalue_commbination_replace:
+0x4d3a 018701 bpatch patch0a_3 ,mem_patch0a 
+0x4d3b 018702 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x4d3c 018703 beq hid_key_print_screen ,keyboard_commination_screen_shot_replace 
+0x4d3d 018704 beq hid_key_page_up ,keyboard_commination_pageup_replace 
+0x4d3e 018705 beq hid_key_page_down ,keyboard_commination_pagedown_replace 
+0x4d3f 018706 beq hid_key_home ,keyboard_commination_home_replace 
+0x4d40 018707 beq hid_key_end ,keyboard_commination_end_replace 
+0x4d41 018708 beq hid_key_select_all ,keyboard_commination_select_all 
+0x4d42 018709 beq hid_key_copy ,keyboard_commbination_copy 
+0x4d43 018710 beq hid_key_paste ,keyboard_commbination_paste 
+0x4d44 018711 beq hid_key_cut ,keyboard_commbination_cut 
+0x4d45 018712 beq hid_key_all_os_lock ,keyboard_commination_os_lock 
+0x4d46 018713 beq hid_key_osk ,keyboard_commbination_osk 
+0x4d47 018714 beq hid_key_language ,keyboard_commbination_language 
+0x4d48 018715 beq hid_key_app_tiling ,keyboard_commbination_app_tiling 
+0x4d49 018716 rtn 
+:      018718 keyboard_commbination_delay_release_set:
+0x4d4a 018719 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4d4b 018720 nrtn blank 
+0x4d4c 018721 jam 10 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x4d4d 018722 rtn 
+:      018724 keyboard_commbination_delay_release_clear:
+0x4d4e 018725 jam 0 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x4d4f 018726 rtn 
+:      018728 keyboard_commination_screen_shot_replace:
+0x4d50 018729 fetch 1 ,mem_kb_computer_system 
+0x4d51 018730 rtneq system_os_windows 
+0x4d52 018731 rtneq system_os_andriod 
+0x4d53 018732 jam left_shift_gui ,mem_keyboard_commbination_control_key_value 
+0x4d54 018733 jam hid_key_3 ,mem_keyboard_commbination_standard_key_value 
+0x4d55 018734 branch keyboard_commbination_keypress 
+:      018736 keyboard_commination_pageup_replace:
+0x4d56 018737 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
+:      018738 keyboard_commination_ios_mac_command_commiation:
+0x4d57 018739 fetch 1 ,mem_kb_computer_system 
+0x4d58 018740 rtneq system_os_windows 
+0x4d59 018741 rtneq system_os_andriod 
+0x4d5a 018742 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4d5b 018743 branch keyboard_commbination_keypress 
+:      018745 keyboard_commination_pagedown_replace:
+0x4d5c 018746 jam hid_key_down_arrow ,mem_keyboard_commbination_standard_key_value 
+0x4d5d 018747 branch keyboard_commination_ios_mac_command_commiation 
+:      018749 keyboard_commination_home_replace:
+0x4d5e 018750 jam hid_key_left_arrow ,mem_keyboard_commbination_standard_key_value 
+0x4d5f 018751 branch keyboard_commination_ios_mac_command_commiation 
+:      018753 keyboard_commination_end_replace:
+0x4d60 018754 jam hid_key_right_arrow ,mem_keyboard_commbination_standard_key_value 
+0x4d61 018755 branch keyboard_commination_ios_mac_command_commiation 
+:      018757 keyboard_commination_select_all:
+0x4d62 018758 jam hid_key_a ,mem_keyboard_commbination_standard_key_value 
+:      018759 keyboard_commbination_text_edit:
+0x4d63 018760 jam left_control ,mem_keyboard_commbination_control_key_value 
+0x4d64 018761 fetch 1 ,mem_kb_computer_system 
+0x4d65 018762 beq system_os_windows ,keyboard_commbination_keypress 
+0x4d66 018763 beq system_os_andriod ,keyboard_commbination_keypress 
+0x4d67 018764 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4d68 018765 branch keyboard_commbination_keypress 
+:      018767 keyboard_commbination_copy:
+0x4d69 018768 jam hid_key_c ,mem_keyboard_commbination_standard_key_value 
+0x4d6a 018769 branch keyboard_commbination_text_edit 
+:      018771 keyboard_commbination_paste:
+0x4d6b 018772 jam hid_key_v ,mem_keyboard_commbination_standard_key_value 
+0x4d6c 018773 branch keyboard_commbination_text_edit 
+:      018775 keyboard_commbination_cut:
+0x4d6d 018776 jam hid_key_x ,mem_keyboard_commbination_standard_key_value 
+0x4d6e 018777 branch keyboard_commbination_text_edit 
+:      018779 keyboard_commination_os_lock:
+0x4d6f 018780 fetch 1 ,mem_kb_computer_system 
+0x4d70 018781 beq system_os_windows ,keyboard_commination_windows_lock 
+0x4d71 018782 beq system_os_mac ,keyboard_commination_mac_lock 
+0x4d72 018783 setarg hid_key_ios_android_os_lock 
+0x4d73 018784 branch keyboard_keyvalue_store_temp 
+:      018785 keyboard_commination_windows_lock:
+0x4d74 018786 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4d75 018787 jam hid_key_l ,mem_keyboard_commbination_standard_key_value 
+0x4d76 018788 branch keyboard_commbination_keypress 
+:      018789 keyboard_commination_mac_lock:
+0x4d77 018790 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
+0x4d78 018791 jam hid_key_q ,mem_keyboard_commbination_standard_key_value 
+0x4d79 018792 branch keyboard_commbination_keypress 
+:      018794 keyboard_commbination_osk:
+0x4d7a 018795 fetch 1 ,mem_kb_computer_system 
+0x4d7b 018796 beq system_os_windows ,keyboard_commbination_windows_osk 
+0x4d7c 018797 setarg hid_key_os_soft_kb 
+0x4d7d 018798 branch keyboard_keyvalue_store_temp 
+:      018799 keyboard_commbination_windows_osk:
+0x4d7e 018800 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
+0x4d7f 018801 jam hid_key_o ,mem_keyboard_commbination_standard_key_value 
+0x4d80 018802 branch keyboard_commbination_keypress 
+:      018804 keyboard_commbination_language:
+0x4d81 018805 fetch 1 ,mem_kb_computer_system 
+0x4d82 018806 beq system_os_windows ,keyboard_commbination_language_windows 
+0x4d83 018807 beq system_os_andriod ,keyboard_commbination_language_andriod 
+0x4d84 018808 jam left_control ,mem_keyboard_commbination_control_key_value 
+:      018809 keyboard_commbination_language_next:
+0x4d85 018810 jam hid_key_space ,mem_keyboard_commbination_standard_key_value 
+0x4d86 018811 call keyboard_commbination_delay_release_set 
+0x4d87 018812 branch keyboard_commbination_keypress 
+:      018813 keyboard_commbination_language_windows:
+0x4d88 018814 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4d89 018815 branch keyboard_commbination_language_next 
+:      018816 keyboard_commbination_language_andriod:
+0x4d8a 018817 jam left_shift ,mem_keyboard_commbination_control_key_value 
+0x4d8b 018818 branch keyboard_commbination_language_next 
+:      018820 keyboard_commbination_app_tiling:
+0x4d8c 018821 fetch 1 ,mem_kb_computer_system 
+0x4d8d 018822 beq system_os_windows ,keyboard_commbination_app_tiling_windows_android 
+0x4d8e 018823 beq system_os_andriod ,keyboard_commbination_app_tiling_windows_android 
+0x4d8f 018824 jam left_control ,mem_keyboard_commbination_control_key_value 
+0x4d90 018825 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
+0x4d91 018826 branch keyboard_commbination_keypress 
+:      018827 keyboard_commbination_app_tiling_windows_android:
+0x4d92 018828 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4d93 018829 jam hid_key_tab ,mem_keyboard_commbination_standard_key_value 
+0x4d94 018830 branch keyboard_commbination_keypress 
+:      018832 keyboard_commbination_keypress:
+0x4d95 018833 jam 0 ,mem_keyboard_keyvalue_temp 
+0x4d96 018834 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4d97 018835 bbit0 0 ,keyboard_commbination_key_wait_release_set 
+0x4d98 018836 fetch 1 ,mem_keyboard_commbination_key_step 
+0x4d99 018837 beq cammbination_key_complete ,keyboard_commbination_key_hold_set 
+:      018838 keyboard_commbination_key_press_set:
+0x4d9a 018839 jam cammbination_key_press ,mem_keyboard_commbination_key_step 
+0x4d9b 018840 rtn 
+:      018842 keyboard_commbination_key_wait_release_set:
+0x4d9c 018843 jam cammbination_key_wait_release ,mem_keyboard_commbination_key_step 
+0x4d9d 018844 rtn 
+:      018846 keyboard_commbination_key_null_set:
+0x4d9e 018847 jam cammbination_key_null ,mem_keyboard_commbination_key_step 
+0x4d9f 018848 rtn 
+:      018851 keyboard_commbination_key_value_store:
+0x4da0 018852 store 1 ,mem_keyboard_tx_data + 1 
+0x4da1 018853 storet 1 ,mem_keyboard_tx_data + 3 
+0x4da2 018854 call enable_user 
+0x4da3 018855 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+0x4da4 018856 branch keyboard_motion_data_check_next 
+:      018858 keyboard_commbination_key_press_process:
+0x4da5 018859 fetch 1 ,mem_keyboard_commbination_control_key_value 
+0x4da6 018860 arg 0 ,temp 
+0x4da7 018861 call keyboard_commbination_key_value_store 
+:      018862 keyboard_commbination_key_hold_set:
+0x4da8 018863 jam cammbination_key_hold ,mem_keyboard_commbination_key_step 
+0x4da9 018864 rtn 
+:      018866 keyboard_commbination_key_hold_process:
+0x4daa 018867 jam cammbination_key_complete ,mem_keyboard_commbination_key_step 
+0x4dab 018868 fetch 1 ,mem_keyboard_commbination_control_key_value 
+0x4dac 018869 fetcht 1 ,mem_keyboard_commbination_standard_key_value 
+0x4dad 018870 branch keyboard_commbination_key_value_store 
+:      018872 keyboard_commbination_key_wait_release_process:
+0x4dae 018873 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+0x4daf 018874 fetch 1 ,mem_keyboard_commbination_control_key_value 
+0x4db0 018875 arg 0 ,temp 
+0x4db1 018876 call keyboard_commbination_key_value_store 
+0x4db2 018877 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x4db3 018878 branch keyboard_commbination_key_null_set ,blank 
+:      018879 keyboard_commbination_key_release_set:
+0x4db4 018880 jam cammbination_key_release ,mem_keyboard_commbination_key_step 
+0x4db5 018881 rtn 
+:      018883 keyboard_commbination_key_release_process:
+0x4db6 018884 branch keyboard_commbination_key_value_store + 2 
+:      018886 keyboard_commbination_key_null_process:
+0x4db7 018887 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+0x4db8 018888 arg 0 ,pdata 
+0x4db9 018889 arg 0 ,temp 
+0x4dba 018890 branch keyboard_commbination_key_value_store 
+:      018894 keyboard_keyvalue_in_out:
+0x4dbb 018895 bpatch patch0a_4 ,mem_patch0a 
+0x4dbc 018896 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x4dbd 018897 sub pdata ,hid_key_right_gui ,null 
+0x4dbe 018898 branch keyboard_keyvalue_standard ,positive 
+0x4dbf 018899 jam keyboard_consumer_key_press ,mem_keyboard_consumer_key_status 
+0x4dc0 018900 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4dc1 018901 bbit1 0 ,keyboard_keyvalue_standard 
+0x4dc2 018902 jam keyboard_consumer_key_release ,mem_keyboard_consumer_key_status 
+:      018903 keyboard_keyvalue_standard:
+0x4dc3 018904 jam 0 ,mem_keyboard_keyvalue_buffer + 8 
+0x4dc4 018905 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4dc5 018906 bbit1 0 ,keyboard_keyvalue_standard_in 
+:      018907 keyboard_keyvalue_standard_out:
+0x4dc6 018908 fetcht 1 ,mem_keyboard_keyvalue_temp 
+0x4dc7 018909 arg 6 ,loopcnt 
+0x4dc8 018910 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+:      018911 keyboard_keyvalue_standard_out_loop:
+0x4dc9 018912 ifetch 1 ,contr 
+0x4dca 018913 branch keyboard_keyvalue_standard_out_next + 1 ,blank 
+0x4dcb 018914 isub temp ,null 
+0x4dcc 018915 nbranch keyboard_keyvalue_standard_out_next ,zero 
+0x4dcd 018916 ifetch 1 ,contr 
+0x4dce 018917 increase -2 ,contr 
+0x4dcf 018918 istore 1 ,contr 
+0x4dd0 018919 rtn blank 
+0x4dd1 018920 increase 1 ,contr 
+0x4dd2 018921 istoret 1 ,contr 
+:      018922 keyboard_keyvalue_standard_out_next:
+0x4dd3 018923 loop keyboard_keyvalue_standard_out_loop 
+0x4dd4 018924 sub temp ,hid_key_right_gui ,null 
+0x4dd5 018925 nrtn positive 
+0x4dd6 018926 sub temp ,0xbf ,null 
+0x4dd7 018927 rtn positive 
+:      018928 keyboard_keyvalue_control_key_out:
+0x4dd8 018929 and temp ,0x07 ,queue 
+0x4dd9 018930 fetch 1 ,mem_keyboard_keyvalue_buffer 
+0x4dda 018931 qset0 pdata 
+0x4ddb 018932 store 1 ,mem_keyboard_keyvalue_buffer 
+0x4ddc 018933 rtn 
+:      018935 keyboard_keyvalue_standard_in:
+0x4ddd 018936 fetcht 1 ,mem_keyboard_keyvalue_temp 
+0x4dde 018937 arg 6 ,loopcnt 
+0x4ddf 018938 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+:      018939 keyboard_keyvalue_standard_in_loop:
+0x4de0 018940 ifetch 1 ,contr 
+0x4de1 018941 branch keyboard_keyvalue_standard_in_data ,blank 
+0x4de2 018942 isub temp ,null 
+0x4de3 018943 rtn zero 
+0x4de4 018944 loop keyboard_keyvalue_standard_in_loop 
+0x4de5 018945 sub temp ,hid_key_right_gui ,null 
+0x4de6 018946 nrtn positive 
+0x4de7 018947 sub temp ,0xbf ,null 
+0x4de8 018948 rtn positive 
+:      018949 keyboard_keyvalue_control_key_in:
+0x4de9 018950 and temp ,0x07 ,queue 
+0x4dea 018951 fetch 1 ,mem_keyboard_keyvalue_buffer 
+0x4deb 018952 qset1 pdata 
+0x4dec 018953 store 1 ,mem_keyboard_keyvalue_buffer 
+0x4ded 018954 rtn 
+:      018956 keyboard_keyvalue_standard_in_data:
+0x4dee 018957 sub temp ,hid_key_right_gui ,null 
+0x4def 018958 nbranch keyboard_keyvalue_standard_in_data_next ,positive 
+0x4df0 018959 sub temp ,0xbf ,null 
+0x4df1 018960 nbranch keyboard_keyvalue_control_key_in ,positive 
+:      018961 keyboard_keyvalue_standard_in_data_next:
+0x4df2 018962 increase -1 ,contr 
+0x4df3 018963 istoret 1 ,contr 
+0x4df4 018964 rtn 
+:      018968 keyboard_special_key_check:
+0x4df5 018969 bpatch patch0a_5 ,mem_patch0a 
+0x4df6 018970 call keyboard_pairing_button_check 
+0x4df7 018971 jam 0 ,mem_keyboard_fn_flag 
+0x4df8 018972 jam 0 ,mem_keyboard_control_key_flag 
+0x4df9 018973 jam 0 ,mem_keyboard_bt_button_flag 
+0x4dfa 018974 fetch 1 ,mem_keyboard_keyvalue_buffer 
+0x4dfb 018975 ncall keyborad_control_key_set ,blank 
+0x4dfc 018976 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+0x4dfd 018977 arg 6 ,loopcnt 
+:      018978 keyboard_special_key_check_loop:
+0x4dfe 018979 ifetch 1 ,contr 
+0x4dff 018980 sub pdata ,hid_key_fn ,null 
+0x4e00 018981 call keyboard_fn_set ,zero 
+0x4e01 018982 sub pdata ,hid_key_pb ,null 
+0x4e02 018983 call keyboard_pb_set ,zero 
+0x4e03 018984 loop keyboard_special_key_check_loop 
+0x4e04 018985 fetch 1 ,mem_device_flag 
+0x4e05 018986 beq mode_24g_device ,keyboard_special_key_check_24g 
+:      018987 keyboard_special_key_check_bluetooth:
+0x4e06 018988 call keyboard_commbination_fast_conn_bt_check 
+0x4e07 018989 fetch 1 ,mem_keyboard_pairing_type 
+0x4e08 018990 branch keyboard_enable_bt_button_pairing ,blank 
+0x4e09 018991 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x4e0a 018992 fetcht 2 ,mem_keyboard_commbination_key_bt 
+0x4e0b 018993 isub temp ,null 
+0x4e0c 018994 branch keyboard_long_button_bt_discovery ,zero 
+0x4e0d 018995 byteswap temp ,temp 
+0x4e0e 018996 isub temp ,null 
+0x4e0f 018997 branch keyboard_long_button_bt_discovery ,zero 
+0x4e10 018998 rtn 
+:      018999 keyboard_special_key_check_24g:
+0x4e11 019000 fetch 1 ,mem_keyboard_pairing_type 
+0x4e12 019001 branch keyboard_enable_bt_button_pairing ,blank 
+0x4e13 019002 branch keyboard_commbination_pairing_24g_check 
+:      019004 keyboard_pairing_button_check:
+0x4e14 019005 fetch 1 ,mem_keyboard_pairing_type 
+0x4e15 019006 nrtn blank 
+0x4e16 019007 fetcht 1 ,mem_config_select_device_button_gpio 
+0x4e17 019008 sub temp ,ui_button_gpio_disable ,null 
+0x4e18 019009 rtn zero 
+0x4e19 019010 call gpio_get_bit 
+0x4e1a 019011 nbranch keyboard_pairing_button_release ,true 
+0x4e1b 019012 arg 8 ,loopcnt 
+0x4e1c 019013 arg mem_keyboard_keyvalue_buffer ,contw 
+0x4e1d 019014 call clear_mem 
+0x4e1e 019015 jam hid_key_pb ,mem_keyboard_keyvalue_buffer + 2 
+0x4e1f 019016 rtn 
+:      019018 keyboard_pairing_button_release:
+0x4e20 019019 fetch 1 ,mem_keyboard_keyvalue_buffer + 2 
+0x4e21 019020 rtnne hid_key_pb 
+0x4e22 019021 jam hid_key_null ,mem_keyboard_keyvalue_buffer + 2 
+0x4e23 019022 rtn 
+:      019024 keyboard_enable_bt_button_pairing:
+0x4e24 019025 bpatch patch0a_6 ,mem_patch0a 
+0x4e25 019026 fetch 1 ,mem_keyboard_bt_button_flag 
+0x4e26 019027 rtn blank 
+0x4e27 019028 fetch 1 ,mem_device_flag 
+0x4e28 019029 beq mode_24g_device ,keyboard_24g_start_pair_mode 
+:      019030 keyboard_long_button_bt_discovery:
+0x4e29 019032 jam 0 ,mem_keyboard_data_change_flag 
+0x4e2a 019033 fetch 1 ,mem_device_flag 
+0x4e2b 019034 rtneq mode_24g_device 
+0x4e2c 019035 fetch mouse_flag_len ,mem_mouse_flag 
+0x4e2d 019036 rtnbit1 mouse_bt_discovery_button_long_down_flag 
+0x4e2e 019037 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0x4e2f 019038 call mouse_enable_function_flag 
+0x4e30 019039 call app_evt_button_long_pressed 
+0x4e31 019040 branch keyboard_bb_event_discovery_btn 
+:      019044 keyboard_commbination_pairing_24g_check:
+0x4e32 019045 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x4e33 019046 fetcht 2 ,mem_keyboard_commbination_key_24g 
+0x4e34 019047 isub temp ,null 
+0x4e35 019048 branch keyboard_24g_start_pair_mode ,zero 
+0x4e36 019049 byteswap temp ,temp 
+0x4e37 019050 isub temp ,null 
+0x4e38 019051 nrtn zero 
+:      019052 keyboard_24g_start_pair_mode:
+0x4e39 019053 call keyboard_pairing_check_otp_offset 
+0x4e3a 019054 jam 0 ,mem_keyboard_data_change_flag 
+0x4e3b 019055 fetch 2 ,mem_24g_pair_timeout 
+0x4e3c 019056 nrtn blank 
+0x4e3d 019057 setarg 0 
+0x4e3e 019058 store 2 ,mem_mouse_no_data_timer 
+0x4e3f 019059 call keyboard_capslock_led_off 
+0x4e40 019060 branch mouse_24g_start_pair_mode 
+:      019063 keyborad_control_key_set:
+0x4e41 019064 jam 1 ,mem_keyboard_control_key_flag 
+0x4e42 019065 rtn 
+:      019067 keyboard_fn_set:
+0x4e43 019068 jam 1 ,mem_keyboard_fn_flag 
+0x4e44 019069 rtn 
+:      019071 keyboard_pb_set:
+0x4e45 019072 jam 1 ,mem_keyboard_bt_button_flag 
+0x4e46 019073 rtn 
+:      019078 keyboard_motion:
+0x4e47 019079 bpatch patch0a_7 ,mem_patch0a 
+0x4e48 019080 disable user 
+0x4e49 019081 jam 0 ,mem_customer_key 
+0x4e4a 019082 jam 0 ,mem_customer_data_trigger 
+0x4e4b 019083 jam 0 ,mem_customer_data_trigger_last 
+0x4e4c 019084 fetch 1 ,mem_keyboard_commbination_key_step 
+0x4e4d 019085 beq cammbination_key_press ,keyboard_commbination_key_press_process 
+0x4e4e 019086 beq cammbination_key_hold ,keyboard_commbination_key_hold_process 
+0x4e4f 019087 beq cammbination_key_complete ,keyboard_commbination_key_hold_process 
+0x4e50 019088 beq cammbination_key_wait_release ,keyboard_commbination_key_wait_release_process 
+0x4e51 019089 beq cammbination_key_null ,keyboard_commbination_key_null_process 
+0x4e52 019090 fetch 1 ,mem_keyboard_data_change_flag 
+0x4e53 019091 branch keyboard_no_key_press ,blank 
+0x4e54 019092 increase -1 ,pdata 
+0x4e55 019093 store 1 ,mem_keyboard_data_change_flag 
+0x4e56 019094 call keyboard_current_mult_update 
+0x4e57 019095 jam 10 ,mem_keyboard_led_status_get_timer 
+0x4e58 019096 call mouse_no_data_timer_init 
+0x4e59 019097 fetch 1 ,mem_keyboard_commbination_key_step 
+0x4e5a 019098 beq cammbination_key_release ,keyboard_commbination_key_release_process 
+0x4e5b 019099 arg mem_keyboard_tx_data ,contw 
+0x4e5c 019100 arg 10 ,loopcnt 
+0x4e5d 019101 call clear_mem 
+0x4e5e 019102 call keyboard_motion_data_check 
+0x4e5f 019103 jam 0 ,mem_keyboard_data_send_flag 
+0x4e60 019104 rtn 
+:      019106 keyboard_current_mult_update:
+0x4e61 019107 jam 3 ,mem_lpm_mult 
+0x4e62 019108 jam 10 ,mem_mouse_current_mult_timer 
+0x4e63 019109 rtn 
+:      019113 keyboard_no_key_press:
+0x4e64 019114 fetch 1 ,mem_device_flag 
+0x4e65 019115 rtneq mode_bt_device1 
+0x4e66 019116 fetch 1 ,mem_keyboard_led_status_get 
+0x4e67 019117 rtn blank 
+0x4e68 019118 fetch 1 ,mem_24g_repeat_send_flag 
+0x4e69 019119 nrtn blank 
+0x4e6a 019120 fetcht 1 ,mem_keyboard_led_status_get_timer_last 
+0x4e6b 019121 fetch 1 ,mem_keyboard_led_status_get_timer 
+0x4e6c 019122 isub temp ,null 
+0x4e6d 019123 store 1 ,mem_keyboard_led_status_get_timer_last 
+0x4e6e 019124 rtn zero 
+0x4e6f 019125 arg mem_keyboard_tx_data ,contw 
+0x4e70 019126 arg 10 ,loopcnt 
+0x4e71 019127 call clear_mem 
+0x4e72 019128 call enable_user 
+0x4e73 019129 branch keyboard_motion_data_check_next 
+:      019133 keyboard_motion_data_check:
+0x4e74 019134 fetch 1 ,mem_keyboard_consumer_key_status 
+0x4e75 019135 beq keyboard_consumer_key_release ,keyboard_value_consumer_release 
+0x4e76 019136 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+0x4e77 019137 arg 6 ,loopcnt 
+:      019138 keyboard_value_tpye_check:
+0x4e78 019139 ifetch 1 ,contr 
+0x4e79 019140 sub pdata ,hid_key_right_gui ,null 
+0x4e7a 019141 nbranch keyboard_value_tpye_consumer_set ,positive 
+:      019142 keyboard_value_tpye_check_loop:
+0x4e7b 019143 loop keyboard_value_tpye_check 
+0x4e7c 019145 fetch 1 ,mem_keyboard_all_press_key_count 
+0x4e7d 019146 call keyboard_value_release_all_key ,blank 
+0x4e7e 019147 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+0x4e7f 019148 fetch 1 ,mem_keyboard_keyvalue_buffer + 2 
+0x4e80 019149 sub pdata ,hid_key_fn ,null 
+0x4e81 019150 branch keyboard_tx_data_skip_fn ,zero 
+0x4e82 019151 arg mem_keyboard_keyvalue_buffer ,contr 
+0x4e83 019152 arg mem_keyboard_tx_data + 1 ,contw 
+0x4e84 019153 arg 8 ,loopcnt 
+:      019154 keyboard_tx_data_store:
+0x4e85 019155 ifetch 1 ,contr 
+0x4e86 019156 beq hid_key_fn ,keyboard_tx_data_clear_fn 
+:      019157 keyboard_tx_data_store_loop:
+0x4e87 019158 istore 1 ,contw 
+0x4e88 019159 loop keyboard_tx_data_store 
+:      019161 keyboard_motion_data_check_next:
+0x4e89 019162 call keyboard_device_data_tpye_check 
+0x4e8a 019164 fetch 1 ,mem_keyboard_data_send_flag 
+0x4e8b 019165 beq device_data_tpye_mouse ,enable_user 
+0x4e8c 019166 beq device_data_tpye_standard_keyboard ,device_send_keyboard_data 
+0x4e8d 019167 beq device_data_tpye_nonstarndard_keyboard ,device_send_keyboard_data 
+0x4e8e 019168 beq device_data_tpye_consumer ,device_send_keyboard_data 
+0x4e8f 019169 beq device_data_tpye_system_conctol ,device_send_keyboard_data 
+:      019170 device_send_keyboard_data:
+0x4e90 019171 call mouse_customerkey_press 
+0x4e91 019172 branch enable_user 
+:      019174 keyboard_value_release_all_key:
+0x4e92 019175 arg mem_keyboard_keyvalue_buffer ,contw 
+0x4e93 019176 arg 9 ,loopcnt 
+0x4e94 019177 branch clear_mem 
+:      019180 keyboard_tx_data_skip_fn:
+0x4e95 019181 fetch 2 ,mem_keyboard_keyvalue_buffer 
+0x4e96 019182 store 2 ,mem_keyboard_tx_data + 1 
+0x4e97 019183 fetch 6 ,mem_keyboard_keyvalue_buffer + 3 
+0x4e98 019184 store 6 ,mem_keyboard_tx_data + 3 
+0x4e99 019185 branch keyboard_motion_data_check_next 
+:      019187 keyboard_tx_data_clear_fn:
+0x4e9a 019188 setarg 0 
+0x4e9b 019189 branch keyboard_tx_data_store_loop 
+:      019192 keyboard_value_tpye_consumer_set:
+0x4e9c 019193 copy pdata ,temp 
+0x4e9d 019194 bpatch patch0b_0 ,mem_patch0b 
+0x4e9e 019195 copy temp ,pdata 
+0x4e9f 019196 jam hid_reportid_consumer_key ,mem_keyboard_tx_data 
+0x4ea0 019197 fetcht 1 ,mem_keyboard_all_press_key_count 
+0x4ea1 019198 sub temp ,hid_key_null ,null 
+0x4ea2 019199 branch keyboard_value_consumer_all_key_release ,zero 
+0x4ea3 019200 beq hid_key_multikey_media ,keyboard_value_media 
+0x4ea4 019201 beq hid_key_multikey_paly ,keyboard_value_play 
+0x4ea5 019202 beq hid_key_multikey_stop ,keyboard_value_stop 
+0x4ea6 019203 beq hid_key_multikey_pre_track ,keyboard_value_pre_track 
+0x4ea7 019204 beq hid_key_multikey_next_track ,keyboard_value_next_track 
+0x4ea8 019205 beq hid_key_multikey_vol_down ,keyboard_value_vol_down 
+0x4ea9 019206 beq hid_key_multikey_vol_up ,keyboard_value_vol_up 
+0x4eaa 019207 beq hid_key_multikey_mute ,keyboard_value_mute 
+0x4eab 019208 beq hid_key_my_computer ,keyboard_value_my_computer 
+0x4eac 019209 beq hid_key_mail ,keyboard_value_mail 
+0x4ead 019210 beq hid_key_calculator ,keyboard_value_calculator 
+0x4eae 019211 beq hid_key_light_down ,keyboard_value_light_down 
+0x4eaf 019212 beq hid_key_light_up ,keyboard_value_light_up 
+0x4eb0 019213 beq hid_key_ac_favorites ,keyboard_value_ac_favorites 
+0x4eb1 019214 beq hid_key_ac_forward ,keyboard_value_ac_forward 
+0x4eb2 019215 beq hid_key_ac_back ,keyboard_value_ac_back 
+0x4eb3 019216 beq hid_key_ac_stop ,keyboard_value_ac_stop 
+0x4eb4 019217 beq hid_key_ac_refresh ,keyboard_value_ac_refresh 
+0x4eb5 019218 beq hid_key_ac_search ,keyboard_value_ac_search 
+0x4eb6 019219 beq hid_key_ac_home ,keyboard_value_ac_home 
+0x4eb7 019220 beq hid_key_ios_android_os_lock ,keyboard_value_os_lock 
+0x4eb8 019221 beq hid_key_os_soft_kb ,keyboard_value_os_soft_kb 
+0x4eb9 019222 beq hid_key_system_sleep ,keyboard_value_system_sleep 
+0x4eba 019223 branch keyboard_motion_data_check_next 
+:      019225 keyboard_value_media:
+0x4ebb 019226 setarg 0x0183 
+0x4ebc 019227 store 2 ,mem_keyboard_tx_data + 1 
+0x4ebd 019228 branch keyboard_motion_data_check_next 
+:      019229 keyboard_value_play:
+0x4ebe 019230 setarg 0x00cd 
+0x4ebf 019231 store 2 ,mem_keyboard_tx_data + 1 
+0x4ec0 019232 branch keyboard_motion_data_check_next 
+:      019233 keyboard_value_stop:
+0x4ec1 019234 setarg 0x00b7 
+0x4ec2 019235 store 2 ,mem_keyboard_tx_data + 1 
+0x4ec3 019236 branch keyboard_motion_data_check_next 
+:      019237 keyboard_value_pre_track:
+0x4ec4 019238 setarg 0x00b6 
+0x4ec5 019239 store 2 ,mem_keyboard_tx_data + 1 
+0x4ec6 019240 branch keyboard_motion_data_check_next 
+:      019241 keyboard_value_next_track:
+0x4ec7 019242 setarg 0x00b5 
+0x4ec8 019243 store 2 ,mem_keyboard_tx_data + 1 
+0x4ec9 019244 branch keyboard_motion_data_check_next 
+:      019245 keyboard_value_vol_down:
+0x4eca 019246 setarg 0x00ea 
+0x4ecb 019247 store 2 ,mem_keyboard_tx_data + 1 
+0x4ecc 019248 branch keyboard_motion_data_check_next 
+:      019249 keyboard_value_vol_up:
+0x4ecd 019250 setarg 0x00e9 
+0x4ece 019251 store 2 ,mem_keyboard_tx_data + 1 
+0x4ecf 019252 branch keyboard_motion_data_check_next 
+:      019253 keyboard_value_mute:
+0x4ed0 019254 setarg 0x00e2 
+0x4ed1 019255 store 2 ,mem_keyboard_tx_data + 1 
+0x4ed2 019256 branch keyboard_motion_data_check_next 
+:      019257 keyboard_value_my_computer:
+0x4ed3 019258 setarg 0x0194 
+0x4ed4 019259 store 2 ,mem_keyboard_tx_data + 1 
+0x4ed5 019260 branch keyboard_motion_data_check_next 
+:      019261 keyboard_value_mail:
+0x4ed6 019262 setarg 0x018a 
+0x4ed7 019263 store 2 ,mem_keyboard_tx_data + 1 
+0x4ed8 019264 branch keyboard_motion_data_check_next 
+:      019265 keyboard_value_calculator:
+0x4ed9 019266 setarg 0x0192 
+0x4eda 019267 store 2 ,mem_keyboard_tx_data + 1 
+0x4edb 019268 branch keyboard_motion_data_check_next 
+:      019269 keyboard_value_light_down:
+0x4edc 019270 setarg 0x0070 
+0x4edd 019271 store 2 ,mem_keyboard_tx_data + 1 
+0x4ede 019272 branch keyboard_motion_data_check_next 
+:      019273 keyboard_value_light_up:
+0x4edf 019274 setarg 0x006f 
+0x4ee0 019275 store 2 ,mem_keyboard_tx_data + 1 
+0x4ee1 019276 branch keyboard_motion_data_check_next 
+:      019277 keyboard_value_ac_favorites:
+0x4ee2 019278 setarg 0x022a 
+0x4ee3 019279 store 2 ,mem_keyboard_tx_data + 1 
+0x4ee4 019280 branch keyboard_motion_data_check_next 
+:      019281 keyboard_value_ac_forward:
+0x4ee5 019282 setarg 0x0225 
+0x4ee6 019283 store 2 ,mem_keyboard_tx_data + 1 
+0x4ee7 019284 branch keyboard_motion_data_check_next 
+:      019285 keyboard_value_ac_back:
+0x4ee8 019286 setarg 0x0224 
+0x4ee9 019287 store 2 ,mem_keyboard_tx_data + 1 
+0x4eea 019288 branch keyboard_motion_data_check_next 
+:      019289 keyboard_value_ac_stop:
+0x4eeb 019290 setarg 0x0226 
+0x4eec 019291 store 2 ,mem_keyboard_tx_data + 1 
+0x4eed 019292 branch keyboard_motion_data_check_next 
+:      019293 keyboard_value_ac_refresh:
+0x4eee 019294 setarg 0x0227 
+0x4eef 019295 store 2 ,mem_keyboard_tx_data + 1 
+0x4ef0 019296 branch keyboard_motion_data_check_next 
+:      019297 keyboard_value_ac_search:
+0x4ef1 019298 fetch 1 ,mem_kb_computer_system 
+0x4ef2 019299 beq system_os_ios ,keyboard_value_ac_home 
+0x4ef3 019300 beq system_os_mac ,keyboard_value_ac_home 
+0x4ef4 019301 setarg 0x0221 
+0x4ef5 019302 store 2 ,mem_keyboard_tx_data + 1 
+0x4ef6 019303 branch keyboard_motion_data_check_next 
+:      019304 keyboard_value_ac_home:
+0x4ef7 019305 setarg 0x0223 
+0x4ef8 019306 store 2 ,mem_keyboard_tx_data + 1 
+0x4ef9 019307 branch keyboard_motion_data_check_next 
+:      019308 keyboard_value_os_lock:
+0x4efa 019309 setarg 0x0030 
+0x4efb 019310 store 2 ,mem_keyboard_tx_data + 1 
+0x4efc 019311 branch keyboard_motion_data_check_next 
+:      019312 keyboard_value_os_soft_kb:
+0x4efd 019313 fetch 1 ,mem_kb_computer_system 
+0x4efe 019314 beq system_os_andriod ,keyboard_value_os_soft_kb_andriod 
+0x4eff 019315 setarg 0x01ae 
+0x4f00 019316 store 2 ,mem_keyboard_tx_data + 1 
+0x4f01 019317 branch keyboard_motion_data_check_next 
+:      019318 keyboard_value_os_soft_kb_andriod:
+0x4f02 019319 setarg 0x0307 
+0x4f03 019320 store 2 ,mem_keyboard_tx_data + 1 
+0x4f04 019321 branch keyboard_motion_data_check_next 
+:      019323 keyboard_value_consumer_all_key_release:
+:      019324 keyboard_value_consumer_release:
+0x4f05 019325 jam 2 ,mem_keyboard_data_change_flag 
+0x4f06 019326 fetch 1 ,mem_keyboard_all_press_key_count 
+0x4f07 019327 call keyboard_value_release_all_key ,blank 
+0x4f08 019328 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
+0x4f09 019329 setarg 0x03 
+0x4f0a 019330 store 3 ,mem_keyboard_tx_data 
+0x4f0b 019331 branch keyboard_motion_data_check_next 
+:      019332 keyboard_value_system_sleep:
+0x4f0c 019333 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
+0x4f0d 019334 setarg 0x02 
+0x4f0e 019335 store 1 ,mem_keyboard_tx_data + 1 
+0x4f0f 019336 branch keyboard_motion_data_check_next 
+:      019343 keyboard_device_data_tpye_check:
+0x4f10 019344 bpatch patch0b_1 ,mem_patch0b 
+0x4f11 019345 fetch 1 ,mem_device_flag 
+0x4f12 019346 bne mode_24g_device ,keyboard_device_data_tpye_check_next 
+0x4f13 019347 jam 0 ,mem_24g_repeat_send_flag 
+0x4f14 019348 fetch 2 ,mem_keyboard_tx_data 
+0x4f15 019349 ncall keyboard_set_repeat_send_flag ,blank 
+0x4f16 019350 fetch 6 ,mem_keyboard_tx_data + 3 
+0x4f17 019351 ncall keyboard_set_repeat_send_flag ,blank 
+:      019353 keyboard_device_data_tpye_check_next:
+0x4f18 019354 fetch 1 ,mem_keyboard_tx_data 
+0x4f19 019355 beq hid_reportid_key_standard ,keyboard_standard_data_send 
+0x4f1a 019356 beq hid_reportid_mouse ,keyboard_mouse_data_send 
+0x4f1b 019357 beq hid_reportid_consumer_key ,keyboard_consumer_data_send 
+0x4f1c 019358 beq hid_reportid_system_ctrl ,keyboard_system_control_data_send 
+0x4f1d 019359 rtn 
+:      019361 keyboard_mouse_data_send:
+0x4f1e 019362 jam device_data_tpye_mouse ,mem_keyboard_data_send_flag 
+0x4f1f 019363 arg mem_keyboard_tx_data ,contr 
+0x4f20 019364 arg mem_mouse_key ,contw 
+0x4f21 019365 arg 7 ,loopcnt 
+0x4f22 019366 branch memcpy 
+:      019368 keyboard_standard_data_send:
+0x4f23 019369 jam device_data_tpye_standard_keyboard ,mem_keyboard_data_send_flag 
+0x4f24 019370 call keyboard_clear_key_data 
+0x4f25 019371 fetch 1 ,mem_device_flag 
+0x4f26 019372 beq mode_bt_device1 ,keyboard_standard_data_send_end 
+0x4f27 019373 call keyboard_24g_led_get_status_check 
+0x4f28 019374 fetch 1 ,mem_keyboard_led_status_get 
+0x4f29 019375 store 1 ,mem_keyboard_tx_data + 2 
+:      019376 keyboard_standard_data_send_end:
+0x4f2a 019377 arg mem_keyboard_tx_data ,contr 
+0x4f2b 019378 arg mem_customer_key_press ,contw 
+0x4f2c 019379 arg 9 ,loopcnt 
+0x4f2d 019380 branch memcpy 
+:      019382 keyboard_consumer_data_send:
+0x4f2e 019383 jam device_data_tpye_consumer ,mem_keyboard_data_send_flag 
+0x4f2f 019384 call keyboard_clear_key_data 
+0x4f30 019385 setarg 0x03 
+0x4f31 019386 call mouse_customer_media_key_set 
+0x4f32 019387 arg mem_keyboard_tx_data + 1 ,contr 
+0x4f33 019388 arg mem_customer_key_press + 1 ,contw 
+0x4f34 019389 arg 2 ,loopcnt 
+0x4f35 019390 branch memcpy 
+:      019392 keyboard_system_control_data_send:
+0x4f36 019393 jam device_data_tpye_system_conctol ,mem_keyboard_data_send_flag 
+0x4f37 019394 call keyboard_clear_key_data 
+0x4f38 019395 setarg 0x02 
+0x4f39 019396 store 8 ,mem_customer_key_press 
+0x4f3a 019397 store 8 ,mem_customer_key_release 
+0x4f3b 019398 fetch 1 ,mem_keyboard_tx_data + 1 
+0x4f3c 019399 store 1 ,mem_customer_key_press + 1 
+0x4f3d 019400 rtn 
+:      019403 keyboard_clear_key_data:
+0x4f3e 019404 arg 18 ,loopcnt 
+0x4f3f 019405 arg mem_customer_key_press ,contw 
+0x4f40 019406 branch clear_mem 
+:      019411 keyboard_lpm_before_common:
+0x4f41 019412 call clear_wake 
+0x4f42 019413 call mouse_wheel_check 
+0x4f43 019414 fetcht 1 ,mem_whee_a_data_gpio 
+0x4f44 019415 call gpio_set_wake_by_current_state 
+0x4f45 019416 fetcht 1 ,mem_whee_b_data_gpio 
+0x4f46 019417 call gpio_set_wake_by_current_state 
+0x4f47 019419 fetcht 1 ,mem_config_select_device_button_gpio 
+0x4f48 019420 call gpio_set_wake 
+0x4f49 019422 fetch 2 ,mem_kb_col_ptr 
+0x4f4a 019423 copy pdata ,regb 
+0x4f4b 019424 arg 20 ,loopcnt 
+:      019425 keyboard_key_col_wake_init:
+0x4f4c 019426 ifetcht 1 ,regb 
+0x4f4d 019427 isolate1 7 ,temp 
+0x4f4e 019428 ncall gpio_out_active ,true 
+0x4f4f 019429 increase 1 ,regb 
+0x4f50 019430 loop keyboard_key_col_wake_init 
+0x4f51 019432 fetch 2 ,mem_kb_row_ptr 
+0x4f52 019433 copy pdata ,regb 
+0x4f53 019434 arg 8 ,loopcnt 
+:      019435 keyboard_key_row_wake_init:
+0x4f54 019436 ifetcht 1 ,regb 
+0x4f55 019437 sub temp ,ui_button_gpio_disable ,null 
+0x4f56 019438 ncall gpio_set_wake_by_current_state ,zero 
+0x4f57 019439 increase 1 ,regb 
+0x4f58 019440 loop keyboard_key_row_wake_init 
+0x4f59 019441 rtn 
+:      019443 keyboard_key_row_wake_set:
+0x4f5a 019444 fetch 1 ,mem_same_keyvalue_timerout_flag 
+0x4f5b 019445 branch gpio_set_wake ,blank 
+0x4f5c 019446 branch gpio_set_wake_by_current_state 
+:      019447 keyboard_process_lpm_before:
+0x4f5d 019448 rtnmark1 mark_24g 
+0x4f5e 019449 call keyboard_lpm_before_common 
+0x4f5f 019450 fetch 1 ,mem_lpm_current_mult 
+0x4f60 019451 nrtn blank 
+0x4f61 019452 branch gpio_clr_wake 
+:      019453 keyboard_before_hibernate:
+0x4f62 019454 bpatch patch0b_2 ,mem_patch0b 
+0x4f63 019455 jam 0xff ,mem_sensor_motion_gpio 
+0x4f64 019456 call disable_authrom 
+0x4f65 019457 call keyboard_device_led_all_off 
+0x4f66 019458 call mouse_before_hibernate_wheel_gpio_set 
+0x4f67 019459 call mouse_setgpio_hibernate 
+0x4f68 019460 call mouse_flash_power_down 
+0x4f69 019461 fetcht 1 ,mem_sensor_motion_gpio 
+0x4f6a 019462 branch gpio_clr_wake 
+:      019464 keyboard_power_down:
+0x4f6b 019465 call keyboard_device_led_all_off 
+:      019466 keyboard_app_enter_hibernate:
+0x4f6c 019467 bpatch patch0b_3 ,mem_patch0b 
+0x4f6d 019468 call keyboard_setgpio_hibernate 
+0x4f6e 019469 call ice_break 
+0x4f6f 019470 branch app_enter_hibernate 
+:      019472 keyboard_device_led_all_off:
+0x4f70 019473 bpatch patch0b_4 ,mem_patch0b 
+0x4f71 019474 call keyboard_device_led_off 
+0x4f72 019475 call keyboard_numlock_led_off 
+0x4f73 019476 call keyboard_capslock_led_off 
+0x4f74 019477 branch keyboard_power_led_off 
+:      019484 keyboard_setgpio_hibernate:
+0x4f75 019485 bpatch patch0b_5 ,mem_patch0b 
+0x4f76 019486 call clear_wake 
+0x4f77 019487 call keyboard_device_led_all_off 
+0x4f78 019488 call mouse_set_sdio_high 
+0x4f79 019489 call keyboard_lpm_before_common 
+0x4f7a 019490 call mouse_gpio_pd_idle 
+0x4f7b 019491 fetcht 1 ,mem_mouse_reuse_2ice_gpio 
+0x4f7c 019492 call mouse_gpio_config_input_pu 
+0x4f7d 019493 call mouse_gpio_set_high_impedance 
+0x4f7e 019494 branch mouse_adc_gpio_set_before_hibernate 
+:      019506 keyboard_g24_reconn_dispatch:
+0x4f7f 019507 fetch 2 ,mem_24g_reconn_count 
+0x4f80 019508 and_into 0xe0 ,pdata 
+0x4f81 019509 branch keyboard_g24_reconn_dispatch_next ,blank 
+0x4f82 019510 fetch 2 ,mem_24g_reconn_count 
+0x4f83 019511 increase 1 ,pdata 
+0x4f84 019512 store 2 ,mem_24g_reconn_count 
+0x4f85 019513 rtn 
+:      019514 keyboard_g24_reconn_dispatch_next:
+0x4f86 019515 call g24_reconn_data_prep 
+0x4f87 019516 call g24_transmit_receive_ack 
+0x4f88 019517 nbranch g24_reconn_device_fail ,sync 
+0x4f89 019518 nbranch g24_reconn_device_fail ,user3 
+0x4f8a 019519 call keyboard_g24_ackpayload_parse 
+0x4f8b 019520 branch g24_reconn_dispatch_next + 5 
+:      019524 keyboard_g24_transmit_no_interrupt:
+0x4f8c 019526 call g24_txdata_prep 
+0x4f8d 019527 nbranch keyboard_g24_nodata_transmit ,user 
+:      019528 keyboard_g24_transmit_start:
+0x4f8e 019529 call keyboard_g24_transmit_process 
+0x4f8f 019530 call keyboard_power_ctrl_start 
+0x4f90 019531 branch keyboard_g24_transmit_start_next 
+:      019533 keyboard_g24_nodata_transmit:
+0x4f91 019534 fetch 8 ,mem_keyscan_value_current 
+0x4f92 019535 nbranch keyboard_g24_transmit_start ,blank 
+0x4f93 019536 fetch 8 ,mem_keyscan_value_current + 8 
+0x4f94 019537 nbranch keyboard_g24_transmit_start ,blank 
+0x4f95 019538 fetch 4 ,mem_keyscan_value_current + 16 
+0x4f96 019539 nbranch keyboard_g24_transmit_start ,blank 
+0x4f97 019541 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x4f98 019542 rtneq g24_tx_timer_int_enable 
+0x4f99 019543 call g24_search_receiver 
+:      019544 keyboard_g24_long_sleep:
+0x4f9a 019545 call keyboard_g24_lpm_wait 
+0x4f9b 019546 nrtn user 
+0x4f9c 019547 fetch 1 ,mem_sensor_shutdown_flag 
+0x4f9d 019548 ncall keyboard_setgpio_hibernate ,blank 
+0x4f9e 019549 fetch 4 ,mem_24g_enter_hibernate 
+0x4f9f 019550 branch g24_long_seep2 
+:      019552 keyboard_g24_transmit_process:
+0x4fa0 019553 bpatch patch0b_6 ,mem_patch0b 
+0x4fa1 019554 jam 0 ,mem_24g_retry 
+:      019555 keyboard_g24_transmit_loop:
+0x4fa2 019556 fetchr timeup ,2 ,mem_param_rx_setup 
+0x4fa3 019557 until clkn_rt ,meet 
+0x4fa4 019558 call keyboard_special_key_check 
+0x4fa5 019559 fetch 1 ,mem_keyboard_bt_button_flag 
+0x4fa6 019560 nbranch mouse_soft_reset ,blank 
+0x4fa7 019561 call g24_transmit_receive_ack 
+0x4fa8 019562 fetch 1 ,mem_24g_no_ack 
+0x4fa9 019563 beq no_ack_24g ,g24_transmit_no_ack 
+0x4faa 019564 nbranch keyboard_g24_retransmit ,sync 
+0x4fab 019565 nbranch keyboard_g24_retransmit ,user3 
+0x4fac 019566 call keyboard_g24_ackpayload_parse 
+0x4fad 019567 jam 0 ,mem_sensor_shutdown_flag 
+0x4fae 019568 branch g24_transmit_no_ack 
+:      019571 keyboard_g24_retransmit:
+0x4faf 019572 fetch 1 ,mem_24g_abort_pac 
+0x4fb0 019573 nrtn blank 
+0x4fb1 019574 fetch 2 ,mem_24g_txfail_cnt 
+0x4fb2 019575 increase 1 ,pdata 
+0x4fb3 019576 store 2 ,mem_24g_txfail_cnt 
+0x4fb4 019577 fetch 1 ,mem_24g_txfail_cnt 
+0x4fb5 019578 beq 0xff ,g24_tx_attempt_fail 
+0x4fb6 019579 call keyboard_g24_transmit_hop_process 
+0x4fb7 019580 branch keyboard_g24_transmit_loop 
+:      019583 keyboard_g24_transmit_hop_process:
+0x4fb8 019584 fetcht 1 ,mem_24g_retry 
+0x4fb9 019585 sub temp ,20 ,null 
+0x4fba 019586 branch keyboard_g24_tx_fast_hop ,positive 
+0x4fbb 019587 arg 25 ,loopcnt 
+0x4fbc 019588 call delay_ms_wait 
+0x4fbd 019589 branch g24_hop_ch_disable 
+:      019591 keyboard_g24_tx_fast_hop:
+0x4fbe 019592 increase 1 ,temp 
+0x4fbf 019593 storet 1 ,mem_24g_retry 
+0x4fc0 019594 fetch 4 ,mem_24g_addr 
+0x4fc1 019595 fetcht 4 ,mem_24g_fast_conn_addr 
+0x4fc2 019596 isub temp ,null 
+0x4fc3 019597 branch g24_ch ,zero 
+0x4fc4 019598 fetch 1 ,mem_24g_retry 
+0x4fc5 019599 sub pdata ,3 ,null 
+0x4fc6 019600 rtn positive 
+0x4fc7 019601 branch g24_tx_fast_hop 
+:      019604 keyboard_g24_lpm_wait:
+0x4fc8 019605 enable user 
+0x4fc9 019606 call lpo_calibration 
+0x4fca 019607 fetch 3 ,mem_clks_per_lpo 
+0x4fcb 019608 branch disable_user ,blank 
+0x4fcc 019609 fetch 1 ,mem_keyboard_fn_flag 
+0x4fcd 019610 nbranch disable_user ,blank 
+0x4fce 019611 fetch 1 ,mem_keyboard_control_key_flag 
+0x4fcf 019612 nbranch disable_user ,blank 
+0x4fd0 019613 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x4fd1 019614 nbranch disable_user ,blank 
+0x4fd2 019615 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x4fd3 019616 beq g24_tx_timer_int_enable ,disable_user 
+0x4fd4 019617 branch g24_lpm_wait + 5 
+:      019619 keyboard_power_ctrl_start:
+0x4fd5 019620 fetch 4 ,mem_24g_addr 
+0x4fd6 019621 fetcht 4 ,mem_24g_fast_conn_addr 
+0x4fd7 019622 isub temp ,null 
+0x4fd8 019623 nbranch power_ctrl_start + 1 ,zero 
+0x4fd9 019624 jam tx_power_f30db ,mem_tx_power 
+0x4fda 019625 rtn 
+:      019626 keyboard_g24_transmit_start_next:
+0x4fdb 019627 fetch 8 ,mem_24g_long_sleep_set 
+0x4fdc 019628 store 8 ,mem_24g_enter_hibernate 
+0x4fdd 019629 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+0x4fde 019630 store 2 ,mem_24g_long_sleep_param_update_timer 
+:      019631 keyboard_g24_short_sleep:
+0x4fdf 019632 bpatch patch0b_7 ,mem_patch0b 
+0x4fe0 019633 call g24_lpm_wait 
+0x4fe1 019634 nrtn user 
+0x4fe2 019635 call clear_wake 
+0x4fe3 019636 fetch 3 ,mem_24g_short_sleep_set 
+0x4fe4 019637 branch g24_long_seep2 
+:      019644 keyboard_24g_package_data:
+0x4fe5 019646 rtnmark0 mark_24g 
+0x4fe6 019647 call keyboard_motion 
+0x4fe7 019648 nrtn user 
+0x4fe8 019649 fetch mouse_flag_len ,mem_mouse_flag 
+0x4fe9 019650 bbit0 mouse_enable_keyboard ,mouse_24g_mouse_package_data 
+0x4fea 019651 fetch 1 ,mem_customer_key 
+0x4feb 019652 nbranch keyboard_24g_keyboard_package_data ,blank 
+0x4fec 019653 branch mouse_24g_mouse_package_data 
+:      019655 keyboard_24g_keyboard_package_data:
+0x4fed 019656 jam type_kb ,mem_24g_data_type 
+0x4fee 019657 arg 9 ,rega 
+0x4fef 019658 fetch 1 ,mem_customer_data_trigger 
+0x4ff0 019659 nbranch keyboard_customer_key_press ,blank 
+0x4ff1 019660 arg mem_customer_key_release ,regb 
+0x4ff2 019661 rtn 
+:      019662 keyboard_customer_key_press:
+0x4ff3 019663 arg mem_customer_key_press ,regb 
+0x4ff4 019664 rtn 
+:      019669 keyboard_24g_search_dongle_init:
+0x4ff5 019670 setarg 0 
+0x4ff6 019671 store 3 ,mem_mouse_search_dongle_action 
+0x4ff7 019672 rtn 
+:      019674 keyboard_24g_search_dongle:
+0x4ff8 019675 bpatch patch0c_0 ,mem_patch0c 
+0x4ff9 019676 fetch mouse_flag_len ,mem_mouse_flag 
+0x4ffa 019677 rtnbit0 mouse_enable_24g_search_dongle 
+0x4ffb 019678 fetch 1 ,mem_mouse_long_mult_flag 
+0x4ffc 019679 rtn blank 
+0x4ffd 019680 fetch 1 ,mem_24g_abort_pac 
+0x4ffe 019681 rtn blank 
+0x4fff 019682 fetch 1 ,mem_mouse_search_dongle_interval 
+0x5000 019683 increase 1 ,pdata 
+0x5001 019684 and_into 3 ,pdata 
+0x5002 019685 store 1 ,mem_mouse_search_dongle_interval 
+0x5003 019686 nrtn blank 
+0x5004 019687 jam 0 ,mem_mouse_search_dongle_ch 
+:      019688 keyboard_24g_search_dongle_loop:
+0x5005 019690 fetch 1 ,mem_mouse_search_dongle_ch 
+0x5006 019691 increase 1 ,pdata 
+0x5007 019692 store 1 ,mem_mouse_search_dongle_ch 
+0x5008 019693 sub pdata ,g24_ch_number ,null 
+0x5009 019694 nbranch keyboard_24g_search_dongle_loop_end ,positive 
+0x500a 019695 call g24_reconn_data_prep 
+0x500b 019696 call g24_transmit_receive_ack 
+0x500c 019697 nbranch keyboard_24g_search_dongle_loop_retry ,sync 
+0x500d 019698 nbranch keyboard_24g_search_dongle_loop_retry ,user3 
+0x500e 019699 call keyboard_g24_ackpayload_parse 
+0x500f 019700 call keyboard_24g_search_dongle_success 
+:      019701 keyboard_24g_search_dongle_loop_end:
+0x5010 019702 call g24_txbuf_clear 
+0x5011 019703 fetch 1 ,mem_mouse_search_dongle_count 
+0x5012 019704 increase 1 ,pdata 
+0x5013 019705 store 1 ,mem_mouse_search_dongle_count 
+0x5014 019706 beq g24_ch_poll_count ,keyboard_24g_search_dongle_check 
+0x5015 019707 rtn 
+:      019709 keyboard_24g_search_dongle_loop_retry:
+0x5016 019710 call g24_ch 
+0x5017 019711 branch keyboard_24g_search_dongle_loop 
+:      019713 keyboard_24g_search_dongle_check:
+0x5018 019714 jam 0 ,mem_mouse_search_dongle_count 
+0x5019 019715 fetch 1 ,mem_mouse_search_dongle_action 
+0x501a 019716 rtnbit1 g24_disconn_state 
+0x501b 019717 set1 g24_disconn_state ,pdata 
+0x501c 019718 store 1 ,mem_mouse_search_dongle_action 
+0x501d 019719 fetch 2 ,mem_mouse_24g_search_dongle_time_init 
+0x501e 019720 store 2 ,mem_mouse_no_data_timer 
+0x501f 019721 rtn 
+:      019724 keyboard_24g_search_dongle_success:
+0x5020 019725 fetch 1 ,mem_24g_abort_pac 
+0x5021 019726 branch keyboard_24g_search_dongle_init ,blank 
+0x5022 019727 jam 0 ,mem_mouse_search_dongle_count 
+0x5023 019728 fetch 1 ,mem_mouse_search_dongle_action 
+0x5024 019729 rtnbit0 g24_disconn_state 
+0x5025 019730 set0 g24_disconn_state ,pdata 
+0x5026 019731 store 1 ,mem_mouse_search_dongle_action 
+0x5027 019732 branch mouse_no_data_timer_init 
+:      019735 keyboard_g24_ackpayload_parse:
+0x5028 019736 call g24_ackpayload_parse 
+0x5029 019737 fetch 1 ,mem_24g_rxbuf + 1 
+0x502a 019738 compare 0x08 ,pdata ,0xf8 
+0x502b 019739 nrtn true 
+0x502c 019740 fetch 1 ,mem_24g_rxbuf + 2 
+0x502d 019741 beq 0xff ,keyboard_24g_hibernate_set 
+0x502e 019742 rtn 
+:      019747 keyboard_le_send_att_find_by_type_value_request_ancs:
+0x502f 019748 jam 1 ,mem_le_connect_ios_mac_flag 
+0x5030 019749 arg 23 ,rega 
+0x5031 019750 arg le_l2cap_cid_att ,regb 
+0x5032 019751 call le_fifo_malloc_tx_l2cap 
+0x5033 019752 setarg attop_find_by_type_value_request 
+0x5034 019753 istore 1 ,contw 
+0x5035 019754 setarg 0x0001 
+0x5036 019755 istore 2 ,contw 
+0x5037 019756 setarg 0xffff 
+0x5038 019757 istore 2 ,contw 
+0x5039 019758 setarg 0x2800 
+0x503a 019759 istore 2 ,contw 
+0x503b 019760 arg mem_le_search_service_uuid ,contr 
+0x503c 019761 branch memcpy16 
+:      019762 keyboard_le_att_auto_reco_process:
+0x503d 019763 bpatch patch0c_1 ,mem_patch0c 
+0x503e 019764 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x503f 019765 rtn blank 
+0x5040 019766 copy rega ,contr 
+0x5041 019767 ifetch 3 ,contr 
+0x5042 019768 store 3 ,mem_le_att_opcode 
+0x5043 019769 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
+0x5044 019770 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
+0x5045 019771 beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
+0x5046 019772 beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
+0x5047 019773 branch le_parse_att2 
+:      019775 keyboard_le_parse_att_find_by_type_value_rsp:
+0x5048 019776 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x5049 019777 beq 2 ,keyboard_le_parse_att_find_by_type_value_rsp_mac 
+:      019778 keyboard_le_parse_att_find_ios_report:
+0x504a 019779 jam system_os_ios ,mem_kb_computer_system 
+0x504b 019780 branch keyboard_otp_store_computer_system_ble 
+:      019781 keyboard_le_parse_att_not_find_mac_report:
+0x504c 019783 fetch 1 ,mem_le_conn_peer_addr_type 
+0x504d 019784 store 1 ,mem_kb_computer_system 
+0x504e 019785 branch keyboard_otp_store_computer_system_ble 
+:      019786 keyboard_le_parse_att_find_mac_report:
+0x504f 019787 jam system_os_mac ,mem_kb_computer_system 
+:      019788 keyboard_otp_store_computer_system_ble:
+0x5050 019789 jam 0 ,mem_le_connect_ios_mac_flag 
+0x5051 019790 fetcht 2 ,mem_otp_read_retention_offset 
+0x5052 019791 setarg 0x1fd0 
+0x5053 019792 isub temp ,regb 
+0x5054 019793 arg mem_kb_computer_system ,rega 
+0x5055 019795 arg 1 ,loopcnt 
+0x5056 019796 call otp_write 
+0x5057 019797 fetcht 2 ,mem_otp_read_retention_offset 
+0x5058 019798 increase 14 ,temp 
+0x5059 019799 storet 2 ,mem_otp_read_retention_offset 
+0x505a 019800 rtn 
+:      019804 keyboard_le_send_att_find_by_type_value_request_mac:
+0x505b 019805 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x505c 019806 beq 2 ,keyboard_le_parse_att_not_find_mac_report 
+0x505d 019807 jam 2 ,mem_le_connect_ios_mac_flag 
+0x505e 019808 arg 9 ,rega 
+0x505f 019809 arg le_l2cap_cid_att ,regb 
+0x5060 019810 call le_fifo_malloc_tx_l2cap 
+0x5061 019811 setarg attop_find_by_type_value_request 
+0x5062 019812 istore 1 ,contw 
+0x5063 019813 setarg 0x0001 
+0x5064 019814 istore 2 ,contw 
+0x5065 019815 setarg 0xffff 
+0x5066 019816 istore 2 ,contw 
+0x5067 019817 setarg 0x2800 
+0x5068 019818 istore 2 ,contw 
+0x5069 019819 arg 2 ,loopcnt 
+0x506a 019820 arg mem_le_search_mac_uuid ,contr 
+0x506b 019821 branch memcpy 
+:      019823 keyboard_le_parse_att_find_by_type_value_rsp_mac:
+0x506c 019824 arg 7 ,rega 
+0x506d 019825 arg le_l2cap_cid_att ,regb 
+0x506e 019826 call le_fifo_malloc_tx_l2cap 
+0x506f 019827 setarg attop_read_by_type_request 
+0x5070 019828 istore 1 ,contw 
+0x5071 019829 fetcht 2 ,mem_le_payload_ptr 
+0x5072 019830 increase 5 ,temp 
+0x5073 019831 ifetch 4 ,temp 
+0x5074 019832 istore 4 ,contw 
+0x5075 019833 setarg 0x2803 
+0x5076 019834 istore 2 ,contw 
+0x5077 019835 rtn 
+:      019837 keyboard_le_send_att_read_by_type_rsp_mac:
+0x5078 019838 fetch 2 ,mem_le_l2cap_size 
+0x5079 019839 increase -2 ,pdata 
+0x507a 019840 div pdata ,7 
+0x507b 019841 call wait_div_end 
+0x507c 019842 quotient loopcnt 
+0x507d 019843 fetch 2 ,mem_le_payload_ptr 
+0x507e 019844 add pdata ,6 ,contr 
+0x507f 019845 branch keyboard_le_check_att_read_type_manu_loop 
+:      019847 keyboard_le_check_att_read_type_manu_loop:
+0x5080 019848 increase 3 ,contr 
+0x5081 019849 ifetch 2 ,contr 
+0x5082 019850 copy pdata ,regc 
+0x5083 019851 ifetch 2 ,contr 
+0x5084 019852 arg 0x2a29 ,temp 
+0x5085 019853 isub temp ,null 
+0x5086 019854 branch keyboard_le_send_att_read_by_type_rsp_manufactory ,zero 
+0x5087 019855 loop keyboard_le_check_att_read_type_manu_loop 
+0x5088 019856 branch keyboard_le_parse_att_not_find_mac_report 
+:      019857 keyboard_le_send_att_read_by_type_rsp_manufactory:
+0x5089 019858 arg 3 ,rega 
+0x508a 019859 arg le_l2cap_cid_att ,regb 
+0x508b 019860 call le_fifo_malloc_tx_l2cap 
+0x508c 019861 setarg attop_read_request 
+0x508d 019862 istore 1 ,contw 
+0x508e 019863 copy regc ,pdata 
+0x508f 019864 istore 2 ,contw 
+0x5090 019865 rtn 
+:      019867 keyboard_le_parse_att_manu_resp:
+0x5091 019868 fetch 2 ,mem_le_l2cap_size 
+0x5092 019869 arg 9 ,loopcnt 
+0x5093 019870 fetch 2 ,mem_le_payload_ptr 
+0x5094 019871 add pdata ,5 ,rega 
+0x5095 019872 arg mem_le_search_mac_manu_name ,regb 
+0x5096 019873 call string_compare 
+0x5097 019874 branch keyboard_le_parse_att_find_mac_report ,zero 
+0x5098 019875 branch keyboard_le_parse_att_not_find_mac_report 
+:      019883 module_init:
+0x5099 019884 branch module_lpm_init ,wake 
+0x509a 019885 call le_modified_name 
+0x509b 019886 setarg module_process_idle 
+0x509c 019887 store 2 ,mem_cb_idle_process 
+0x509d 019888 setarg module_process_bb_event 
+0x509e 019889 store 2 ,mem_cb_bb_event_process 
+0x509f 019890 setarg module_lpm_lock 
+0x50a0 019891 store 2 ,mem_cb_check_wakelock 
+0x50a1 019892 setarg module_hci_cmd_transmit_le_notify 
+0x50a2 019893 store 2 ,mem_cb_ble_transmit 
+0x50a3 019894 setarg module_le_receive_data 
+0x50a4 019895 store 2 ,mem_cb_att_write 
+0x50a5 019896 setarg module_bb_event_timer 
+0x50a6 019897 store 2 ,mem_cb_event_timer 
+0x50a7 019899 bpatch patch0c_2 ,mem_patch0c 
+0x50a8 019900 call module_lpm_uart_init 
+0x50a9 019901 call module_gpio_init 
+0x50aa 019902 branch module_hci_event_enter_standby_mode 
+:      019904 module_lpm_uart_init:
+0x50ab 019905 fetch 1 ,core_uart_ctrl 
+0x50ac 019906 set0 bit_uart_control_enable ,pdata 
+0x50ad 019907 store 1 ,core_uart_ctrl 
+0x50ae 019908 fetch 8 ,mem_module_uart_rx_buffer 
+0x50af 019909 call uarta_init_dma_mem 
+0x50b0 019910 fetch uart_baud_len ,mem_module_uarta_baud_rate 
+0x50b1 019911 call uarta_init_baud_rate 
+0x50b2 019912 call uart_clock_select_main_freq_crystal 
+0x50b3 019913 jam gpcfg_uart_txd ,core_gpio_conf + hci_uart_tx_gpio_num 
+0x50b4 019914 jam gpcfg_uart_rxd | gpcfg_pullup ,core_gpio_conf + hci_uart_rx_gpio_num 
+0x50b5 019915 jam gpcfg_uart_rts ,core_gpio_conf + hci_uart_rts_gpio_num 
+0x50b6 019916 jam gpcfg_uart_cts ,core_gpio_conf + hci_uart_cts_gpio_num 
+0x50b7 019918 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
+0x50b8 019919 fetch 2 ,mem_module_flag 
+0x50b9 019920 isolate1 module_flag_uart_flow_control ,pdata 
+0x50ba 019921 setflag true ,bit_uart_control_flow_control ,temp 
+0x50bb 019922 storet 1 ,core_uart_ctrl 
+0x50bc 019923 rtn 
+:      019925 module_lpm_init:
+0x50bd 019926 branch module_lpm_uart_init 
+:      019930 module_gpio_init:
+0x50be 019931 fetcht 1 ,mem_module_connect_state_gpio 
+0x50bf 019932 call gpio_config_output 
+0x50c0 019933 call module_set_conn_pin_low 
+0x50c1 019934 fetcht 1 ,mem_module_wake_up_gpio 
+0x50c2 019935 branch gpio_config_input 
+:      019937 module_lpm_lock:
+0x50c3 019938 fetcht 1 ,mem_module_wake_up_gpio 
+0x50c4 019939 call gpio_get_bit 
+0x50c5 019940 nbranch app_put_lpm_wake_lock ,true 
+0x50c6 019941 branch app_get_lpm_wake_lock 
+:      019944 module_process_idle:
+0x50c7 019945 call l2cap_malloc_is_fifo_full 
+0x50c8 019946 nrtn blank 
+0x50c9 019947 branch module_process_check_hci_command_complete 
+:      019950 module_process_bb_event:
+0x50ca 019951 copy regc ,pdata 
+0x50cb 019952 beq bt_evt_le_connected ,module_process_le_conn 
+0x50cc 019953 beq bt_evt_le_disconnected ,module_process_bb_even_le_disconn 
+0x50cd 019954 beq bt_evt_le_pairing_fail ,module_hci_event_le_pairing_fail 
+0x50ce 019955 beq bt_evt_le_pairing_success ,module_hci_event_le_pairing_success 
+0x50cf 019956 beq bt_evt_le_start_enc ,module_hci_event_start_enc 
+0x50d0 019957 beq bt_evt_le_pause_enc ,module_hci_event_pause_enc 
+0x50d1 019958 beq bt_evt_le_tk_generate ,module_hci_event_le_tk 
+0x50d2 019959 beq bt_evt_store_nvram ,module_hci_event_store_device 
+0x50d3 019960 beq bt_evt_le_ltk_lost ,module_process_ble_ltk_lost 
+0x50d4 019961 beq bt_evt_le_update_phy ,module_process_ble_update_phy 
+0x50d5 019962 beq bt_evt_le_get_passkey ,module_hci_event_passkey_entry_mode 
+0x50d6 019963 beq bt_evt_le_gkey_generate ,module_hci_event_gkey_generate 
+0x50d7 019964 rtn 
+:      019968 module_process_bb_even_le_disconn:
+0x50d8 019969 call le_clr_config_more_data 
+0x50d9 019970 jam 0 ,mem_module_hci_notify_len 
+0x50da 019971 call module_disconn_start 
+0x50db 019972 branch module_hci_event_le_disconnect 
+:      019977 module_process_le_conn:
+0x50dc 019979 call module_conn_start 
+0x50dd 019980 fetch 1 ,mem_module_le_lpm_mult 
+0x50de 019981 store 1 ,mem_lpm_mult 
+0x50df 019982 branch module_hci_event_le_connect 
+:      019986 module_disconn_start:
+0x50e0 019987 call module_start_adv_discovery_by_command 
+0x50e1 019988 branch module_set_conn_pin_high 
+:      019991 module_process_ble_ltk_lost:
+0x50e2 019992 call le_send_reject_ind 
+0x50e3 019993 branch le_send_smp_security_request 
+:      019995 module_process_ble_update_phy:
+0x50e4 019996 branch module_hci_event_le_update_phy 
+:      019999 module_set_conn_pin_high:
+0x50e5 020000 fetcht 1 ,mem_module_connect_state_gpio 
+0x50e6 020001 branch gpio_out_active 
+:      020003 module_conn_start:
+0x50e7 020004 call module_stop_adv_discovery 
+0x50e8 020005 branch module_set_conn_pin_low 
+:      020007 module_stop_adv_discovery:
+0x50e9 020008 fetch 1 ,mem_module_state 
+0x50ea 020009 isolate1 moudle_state_ble_bit ,pdata 
+0x50eb 020010 call app_ble_stop_adv ,true 
+0x50ec 020011 rtn 
+:      020012 module_set_conn_pin_low:
+0x50ed 020013 fetcht 1 ,mem_module_connect_state_gpio 
+0x50ee 020014 branch gpio_out_inactive 
+:      020017 module_process_check_hci_command_complete:
+0x50ef 020018 fetch 1 ,core_uart_status 
+0x50f0 020019 rtnbit1 uart_status_rx_fifo_empty 
+0x50f1 020020 call uarta_prepare_rx 
+0x50f2 020021 ifetch 1 ,contru 
+0x50f3 020022 bne 0x01 ,module_hci_in_excp 
+0x50f4 020023 fetch 2 ,core_uart_rxitems 
+0x50f5 020024 sub pdata ,2 ,null 
+0x50f6 020025 rtn positive 
+0x50f7 020026 ifetch 1 ,contru 
+0x50f8 020027 store 1 ,mem_module_uart_opcode 
+0x50f9 020028 ifetcht 1 ,contru 
+0x50fa 020029 copy contru ,rega 
+0x50fb 020030 storet 1 ,mem_module_uart_len 
+0x50fc 020031 add temp ,3 ,temp 
+0x50fd 020032 fetch 2 ,core_uart_rxitems 
+0x50fe 020033 isub temp ,temp 
+0x50ff 020034 nrtn positive 
+0x5100 020035 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x5101 020036 call module_hci_cmd_control 
+0x5102 020037 fetch 1 ,mem_module_temp_nl_discard_packet 
+0x5103 020038 rtneq hci_not_discard_packet 
+0x5104 020039 branch module_hci_dicard_packet 
+:      020041 module_hci_in_excp:
+0x5105 020042 call delay_10ms 
+0x5106 020043 call module_hci_event_invalid_packet 
+0x5107 020044 branch module_hci_release_except 
+:      020047 module_hci_release_except:
+0x5108 020048 bpatch patch0c_3 ,mem_patch0c 
+0x5109 020049 call uarta_prepare_rx 
+0x510a 020050 fetch 2 ,core_uart_rxitems 
+0x510b 020051 rtn blank 
+0x510c 020052 iadd contru ,contru 
+0x510d 020053 branch module_hci_dicard_bytes 
+:      020055 module_hci_dicard_packet:
+0x510e 020056 call uarta_prepare_rx 
+0x510f 020057 increase 2 ,contu 
+0x5110 020058 ifetch 1 ,contu 
+0x5111 020059 iadd contu ,contu 
+:      020060 module_hci_dicard_bytes:
+0x5112 020061 branch uarta_rxdone 
+:      020064 module_hci_cmd_control:
+0x5113 020065 bpatch patch0c_4 ,mem_patch0c 
+0x5114 020066 fetch 1 ,mem_module_uart_opcode 
+0x5115 020067 beq hci_cmd_set_le_addr_req ,module_hci_cmd_set_le_addr 
+0x5116 020068 beq hci_cmd_set_visibility_req ,module_hci_cmd_set_visibility 
+0x5117 020069 beq hci_cmd_set_le_name_req ,module_hci_cmd_set_le_name 
+0x5118 020070 beq hci_cmd_le_data_req ,module_hci_cmd_receive_le_data 
+0x5119 020071 beq hci_cmd_status_irq ,module_hci_cmd_inquire_status 
+0x511a 020072 beq hci_cmd_set_uartcontrol_req ,module_hci_cmd_set_uart_control_mode 
+0x511b 020073 beq hci_cmd_set_uart_baud_req ,module_hci_cmd_set_uart_baud 
+0x511c 020074 beq hci_cmd_version_req ,module_hci_cmd_version_request 
+0x511d 020075 beq hci_cmd_ble_disconnect ,module_hci_cmd_ble_disconnect 
+0x511e 020076 beq hci_cmd_set_nvram_req ,module_hci_cmd_set_nvram 
+0x511f 020077 beq hci_cmd_confirm_gkey ,module_hci_cmd_confirm_gkey 
+0x5120 020078 beq hci_cmd_auto_adv_scan ,module_hci_cmd_auto_adv 
+0x5121 020079 beq hci_cmd_power_req ,module_hci_cmd_power_request 
+0x5122 020080 beq hci_cmd_power_set ,module_hci_cmd_power_set 
+0x5123 020081 beq hci_cmd_passkey_entry ,module_hci_cmd_passkey_entry 
+0x5124 020082 beq hci_cmd_set_gpio ,module_hci_cmd_set_gpio 
+0x5125 020083 beq hci_cmd_read_gpio ,module_hci_cmd_read_gpio 
+0x5126 020084 beq hci_cmd_le_set_pairing ,module_hci_cmd_le_set_pairing_mode 
+0x5127 020085 beq hci_cmd_le_set_adv_data ,module_hci_cmd_le_set_adv_data 
+0x5128 020086 beq hci_cmd_le_set_scan_data ,module_hci_cmd_le_set_scan_data 
+0x5129 020087 beq hci_cmd_le_send_conn_update_req ,module_hci_cmd_le_send_conn_update_req 
+0x512a 020088 beq hci_cmd_le_set_adv_parm ,module_hci_cmd_set_le_adv_parameter 
+0x512b 020089 beq hci_cmd_le_start_pairing ,module_hci_cmd_le_start_pairing 
+0x512c 020090 beq hci_cmd_set_wake_gpio ,module_hci_cmd_set_wake_gpio 
+0x512d 020091 beq hci_cmd_set_tx_power ,module_hci_cmd_set_tx_power 
+0x512e 020092 beq hci_cmd_le_confirm_gkey ,module_hci_cmd_le_confirm_gkey 
+0x512f 020094 beq hci_cmd_reset_chip_req ,module_hci_cmd_reset_chip 
+0x5130 020095 beq hci_cmd_le_set_fixed_passkey ,module_hci_cmd_le_set_fixed_passkey 
+0x5131 020096 beq hci_cmd_delete_customize_service ,module_hci_cmd_delete_customize_service 
+0x5132 020097 beq hci_cmd_add_service_uuid ,module_hci_cmd_add_service_uuid 
+0x5133 020098 beq hci_cmd_add_characteristic_uuid ,module_hci_cmd_add_characteristic_uuid 
+0x5134 020099 beq hci_cmd_passkey_entry_input ,module_hci_cmd_le_passkey_entry_input 
+0x5135 020100 beq hci_cmd_le_creat_conn ,module_hci_cmd_le_create_conn 
+0x5136 020101 beq hci_cmd_ble_set_phy ,module_hci_cmd_ble_set_phy 
+0x5137 020102 beq hci_cmd_ble_read_current_phy ,module_hci_cmd_ble_read_current_phy 
+0x5138 020103 beq hci_cmd_ble_set_dle ,module_hci_cmd_ble_set_dle 
+0x5139 020104 beq hci_cmd_read_chip_data ,module_hci_cmd_read_chip_data 
+0x513a 020105 beq hci_cmd_write_chip_data ,module_hci_cmd_write_chip_data 
+0x513b 020106 beq hci_cmd_close_lpm ,module_hci_cmd_close_lpm 
+0x513c 020107 branch module_hci_event_receive_invalid_cmd 
+:      020113 module_hci_cmd_set_le_addr:
+0x513d 020114 fetch 1 ,mem_module_uart_len 
+0x513e 020115 bne 6 ,module_hci_event_receive_invalid_cmd 
+0x513f 020116 ifetch 6 ,contru 
+0x5140 020117 store 6 ,mem_le_lap 
+0x5141 020118 branch module_hci_event_receive_valid_cmd 
+:      020122 module_hci_cmd_set_visibility:
+0x5142 020123 fetch 1 ,mem_module_uart_len 
+0x5143 020124 bne 1 ,module_hci_event_receive_invalid_cmd 
+0x5144 020125 ifetcht 1 ,contru 
+0x5145 020126 storet 1 ,mem_module_bluetooth_stauts_by_command 
+0x5146 020127 call module_hci_event_receive_valid_cmd 
+0x5147 020128 fetch 2 ,mem_ui_state_map 
+0x5148 020129 rtnbit1 ui_state_ble_connected 
+:      020131 module_start_adv_discovery_by_command:
+:      020132 moudle_start_adv_by_command:
+0x5149 020133 fetch 1 ,mem_module_state 
+0x514a 020134 isolate1 moudle_state_ble_bit ,pdata 
+0x514b 020135 nrtn true 
+0x514c 020136 fetcht 1 ,mem_module_bluetooth_stauts_by_command 
+0x514d 020137 isolate1 2 ,temp 
+0x514e 020138 branch app_ble_start_adv ,true 
+0x514f 020139 branch app_ble_stop_adv 
+:      020144 module_hci_cmd_set_le_name:
+0x5150 020145 arg 29 ,pdata 
+0x5151 020146 arg mem_le_name_len ,contw 
+0x5152 020147 call module_hci_cmd_receive_store_mem 
+0x5153 020148 branch le_modified_name 
+:      020153 module_hci_cmd_receive_le_data:
+0x5154 020154 fetch 2 ,mem_ui_state_map 
+0x5155 020155 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+0x5156 020156 call module_check_ble_encrypt_state 
+0x5157 020157 branch module_hci_event_receive_invalid_cmd ,user 
+0x5158 020158 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+0x5159 020159 fetch 2 ,mem_module_flag 
+0x515a 020160 bbit1 module_flag_ble_data_finish ,module_hci_cmd_receive_le_data_finish 
+0x515b 020161 fetch 1 ,mem_module_hci_notify_len 
+0x515c 020162 nrtn blank 
+0x515d 020163 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x515e 020164 ifetch 2 ,contru 
+0x515f 020165 store 2 ,mem_module_hci_notify_handle 
+0x5160 020166 storer contru ,2 ,mem_module_hci_nofiy_addr 
+0x5161 020167 fetch 1 ,mem_module_uart_len 
+0x5162 020168 pincrease -2 
+0x5163 020169 nbranch module_hci_event_receive_invalid_cmd ,positive 
+0x5164 020170 branch module_hci_event_receive_invalid_cmd ,zero 
+0x5165 020171 store 1 ,mem_module_hci_notify_len 
+0x5166 020172 fetcht 2 ,mem_module_hci_notify_handle 
+0x5167 020173 increase -1 ,temp 
+0x5168 020174 call le_att_get_handle_ptr2 
+0x5169 020175 branch module_hci_cmd_transmit_handle_error ,blank 
+0x516a 020176 ifetcht 4 ,contr 
+0x516b 020177 setarg 0x01280302 
+0x516c 020178 isub temp ,null 
+0x516d 020179 nbranch module_hci_cmd_transmit_handle_error ,zero 
+0x516e 020180 ifetch 1 ,contr 
+0x516f 020181 store 1 ,mem_module_hci_notify_type 
+0x5170 020182 and_into 0x30 ,pdata 
+0x5171 020183 branch module_hci_cmd_transmit_handle_error ,blank 
+0x5172 020184 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+0x5173 020185 call le_set_config_more_data 
+0x5174 020186 call module_hci_cmd_transmit_le_notify 
+0x5175 020187 call module_hci_cmd_transmit_le_notify 
+0x5176 020188 call module_hci_cmd_transmit_le_notify 
+0x5177 020189 fetch 2 ,mem_module_flag 
+0x5178 020190 rtnbit0 module_flag_ble_data_finish 
+:      020191 module_hci_cmd_receive_le_data_finish:
+0x5179 020192 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x517a 020193 call module_clear_le_tx_data_flag 
+0x517b 020194 branch module_hci_event_receive_valid_cmd 
+:      020196 module_hci_cmd_transmit_handle_error:
+0x517c 020197 jam 0 ,mem_module_hci_notify_len 
+0x517d 020198 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x517e 020199 call module_clear_le_tx_data_flag 
+0x517f 020200 branch module_hci_event_receive_invalid_cmd 
+:      020202 module_hci_cmd_transmit_le_notify:
+0x5180 020203 fetch 1 ,mem_module_hci_notify_len 
+0x5181 020204 rtn blank 
+0x5182 020205 call le_fifo_check_nearly_full 
+0x5183 020206 nrtn blank 
+0x5184 020207 call module_get_le_remote_mtu 
+0x5185 020208 bpatch patch0c_5 ,mem_patch0c 
+0x5186 020209 fetch 2 ,mem_le_local_mtu 
+0x5187 020210 call not_greater_than 
+0x5188 020211 copy pdata ,temp 
+0x5189 020212 fetch 1 ,mem_le_l2cap_att_states 
+0x518a 020213 rtnbit1 ble_l2cap_recv_confirmation_packet 
+0x518b 020214 add temp ,-3 ,pdata 
+0x518c 020215 arg 251 ,temp 
+0x518d 020216 call not_greater_than 
+0x518e 020217 fetcht 1 ,mem_module_hci_notify_len 
+0x518f 020218 call not_greater_than 
+0x5190 020219 copy pdata ,rega 
+0x5191 020220 copy temp ,pdata 
+0x5192 020221 isub rega ,pdata 
+0x5193 020222 store 1 ,mem_module_hci_notify_len 
+0x5194 020223 call module_hci_cmd_transmit_le_notify_malloc_l2cap 
+0x5195 020224 fetch 2 ,mem_module_hci_nofiy_addr 
+0x5196 020225 copy pdata ,contru 
+0x5197 020226 copy rega ,loopcnt 
+0x5198 020227 call uart_copy_rx_bytes_fast 
+0x5199 020228 copy contru ,pdata 
+0x519a 020229 store 2 ,mem_module_hci_nofiy_addr 
+0x519b 020230 fetch 1 ,mem_module_hci_notify_len 
+0x519c 020231 nrtn blank 
+0x519d 020232 branch module_set_le_tx_data_flag 
+:      020234 module_hci_cmd_transmit_le_notify_malloc_l2cap:
+0x519e 020235 fetcht 2 ,mem_module_hci_notify_handle 
+0x519f 020236 fetch 1 ,mem_module_hci_notify_type 
+0x51a0 020237 bbit1 bit_characteristic_indicate ,le_att_malloc_tx_indication 
+0x51a1 020238 bbit1 bit_characteristic_notify ,le_att_malloc_tx_notify 
+0x51a2 020239 rtn 
+:      020243 module_get_le_remote_mtu:
+0x51a3 020244 arg 0x17 ,temp 
+0x51a4 020245 fetch 2 ,mem_module_flag 
+0x51a5 020246 rtnbit1 module_flag_ble_send_mtu23 
+0x51a6 020247 fetcht 2 ,mem_le_remote_mtu 
+0x51a7 020248 rtn 
+:      020250 module_check_ble_encrypt_state:
+0x51a8 020251 fetch 2 ,mem_module_flag 
+0x51a9 020252 bbit1 module_flag_ble_data_encrypt ,le_check_encrypt_state 
+0x51aa 020253 branch disable_user 
+:      020257 module_hci_cmd_inquire_status:
+0x51ab 020258 branch module_hci_event_status_res 
+:      020264 module_hci_cmd_set_uart_control_mode:
+0x51ac 020265 ifetch 1 ,contru 
+0x51ad 020266 fetcht 1 ,mem_module_flag 
+0x51ae 020267 nsetflag blank ,module_flag_uart_flow_control ,temp 
+0x51af 020268 storet 1 ,mem_module_flag 
+0x51b0 020269 fetcht 1 ,core_uart_ctrl 
+0x51b1 020270 nsetflag blank ,bit_uart_control_flow_control ,temp 
+0x51b2 020271 storet 1 ,core_uart_ctrl 
+0x51b3 020272 branch module_hci_event_receive_valid_cmd 
+:      020276 module_hci_cmd_set_uart_baud:
+0x51b4 020277 fetchr loopcnt ,1 ,mem_module_uart_len 
+0x51b5 020278 call string2dec_from_uart 
+0x51b6 020279 call uart_calc_baud_rate_config 
+0x51b7 020280 store uart_baud_len ,mem_module_uarta_baud_rate 
+0x51b8 020281 call module_hci_event_receive_valid_cmd 
+0x51b9 020282 call wait_uarttx 
+0x51ba 020283 fetch uart_baud_len ,mem_module_uarta_baud_rate 
+0x51bb 020284 branch uarta_init_baud_rate 
+:      020288 module_hci_cmd_version_request:
+0x51bc 020289 arg 2 ,rega 
+0x51bd 020290 arg mem_soft_version_num ,regb 
+0x51be 020291 arg 0 ,temp 
+0x51bf 020292 branch module_hci_event_set_cmd 
+:      020297 module_hci_cmd_ble_disconnect:
+0x51c0 020298 fetch 2 ,mem_ui_state_map 
+0x51c1 020299 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+:      020300 module_hci_cmd_ble_disconnect_doing:
+0x51c2 020301 call module_hci_event_receive_valid_cmd 
+0x51c3 020302 branch app_ble_disconnect 
+:      020308 module_hci_cmd_set_nvram:
+0x51c4 020309 fetchr loopcnt ,1 ,mem_module_uart_len 
+0x51c5 020310 fetch 2 ,mem_nv_data_ptr 
+0x51c6 020311 icopy contw 
+0x51c7 020312 call uart_copy_rx_bytes_fast 
+0x51c8 020313 branch module_hci_event_receive_valid_cmd 
+:      020317 module_hci_cmd_confirm_gkey:
+0x51c9 020318 fetch 2 ,mem_ui_state_map 
+0x51ca 020319 bbit1 ui_state_ble_connected ,module_hci_cmd_le_confirm_gkey 
+0x51cb 020320 branch module_hci_event_receive_invalid_cmd 
+:      020324 module_hci_cmd_auto_adv:
+0x51cc 020325 arg 0x40 ,loopcnt 
+0x51cd 020326 arg mem_le_adv_data_len ,contw 
+0x51ce 020327 call clear_mem 
+0x51cf 020328 setarg 0 
+0x51d0 020329 store 1 ,mem_regb 
+0x51d1 020330 copy rega ,contru 
+:      020331 module_hci_cmd_auto_adv_loop:
+0x51d2 020332 copy contru ,pdata 
+0x51d3 020333 store 2 ,mem_regc 
+0x51d4 020334 call module_hci_cmd_auto_adv_adv_analys 
+0x51d5 020336 fetch 1 ,mem_regb 
+0x51d6 020337 fetcht 1 ,mem_temp 
+0x51d7 020338 increase 1 ,temp 
+0x51d8 020339 iadd temp ,pdata 
+0x51d9 020340 store 1 ,mem_regb 
+0x51da 020342 sub pdata ,31 ,null 
+0x51db 020343 nbranch module_hci_cmd_auto_adv_store_scan ,positive 
+:      020344 module_hci_cmd_auto_adv_store_adv:
+0x51dc 020345 fetcht 1 ,mem_le_adv_data_len 
+0x51dd 020346 setarg mem_le_adv_data 
+0x51de 020347 iadd temp ,pdata 
+0x51df 020348 store 2 ,mem_contw 
+0x51e0 020349 fetcht 1 ,mem_temp 
+0x51e1 020350 increase 1 ,temp 
+0x51e2 020351 fetch 1 ,mem_le_adv_data_len 
+0x51e3 020352 iadd temp ,pdata 
+0x51e4 020353 store 1 ,mem_le_adv_data_len 
+0x51e5 020354 branch module_hci_cmd_auto_adv_store_common 
+:      020355 module_hci_cmd_auto_adv_store_scan:
+0x51e6 020356 fetcht 1 ,mem_le_scan_data_len 
+0x51e7 020357 setarg mem_le_scan_data 
+0x51e8 020358 iadd temp ,pdata 
+0x51e9 020359 store 2 ,mem_contw 
+0x51ea 020360 fetcht 1 ,mem_temp 
+0x51eb 020361 increase 1 ,temp 
+0x51ec 020362 fetch 1 ,mem_le_scan_data_len 
+0x51ed 020363 iadd temp ,pdata 
+0x51ee 020364 store 1 ,mem_le_scan_data_len 
+:      020365 module_hci_cmd_auto_adv_store_common:
+0x51ef 020366 fetch 2 ,mem_contw 
+0x51f0 020367 copy pdata ,contw 
+0x51f1 020368 fetch 2 ,mem_regc 
+0x51f2 020369 copy pdata ,contru 
+0x51f3 020371 copy temp ,loopcnt 
+0x51f4 020372 call uart_copy_rx_bytes_fast 
+0x51f5 020374 fetch 1 ,mem_module_uart_len 
+0x51f6 020375 fetcht 1 ,mem_regb 
+0x51f7 020376 isub temp ,null 
+0x51f8 020377 nbranch module_hci_cmd_auto_adv_loop ,zero 
+0x51f9 020378 branch module_hci_event_receive_valid_cmd 
+:      020381 module_hci_cmd_auto_adv_adv_analys:
+0x51fa 020382 ifetch 1 ,contru 
+0x51fb 020383 store 1 ,mem_temp 
+0x51fc 020384 ifetch 1 ,contru 
+0x51fd 020385 store 1 ,mem_rega 
+0x51fe 020386 rtn 
+:      020390 module_hci_cmd_power_request:
+0x51ff 020391 arg 0 ,temp 
+0x5200 020392 arg 2 ,rega 
+0x5201 020393 fetch 2 ,mem_module_vdd_quotient 
+0x5202 020394 store 2 ,mem_event_cmd_response_content 
+0x5203 020395 arg mem_event_cmd_response_content ,regb 
+0x5204 020396 branch module_hci_event_set_cmd 
+:      020400 module_hci_cmd_power_set:
+0x5205 020401 fetch 1 ,mem_module_uart_len 
+0x5206 020402 bne 1 ,module_hci_event_receive_invalid_cmd 
+0x5207 020403 ifetch 1 ,contru 
+0x5208 020404 store 1 ,mem_module_read_vdd_flag 
+0x5209 020405 setarg 0x00 
+0x520a 020406 store 2 ,mem_module_vdd_quotient 
+0x520b 020407 branch module_hci_event_receive_valid_cmd 
+:      020411 module_hci_cmd_passkey_entry:
+0x520c 020412 fetch 1 ,mem_module_uart_len 
+0x520d 020413 bne 4 ,module_hci_event_receive_invalid_cmd 
+0x520e 020414 fetch 2 ,mem_ui_state_map 
+0x520f 020415 bbit1 ui_state_ble_connected ,module_hci_cmd_le_passkey_entry_input 
+0x5210 020416 branch module_hci_event_receive_invalid_cmd 
+:      020421 module_hci_cmd_set_gpio:
+0x5211 020422 fetch 1 ,mem_module_uart_len 
+0x5212 020423 bne 3 ,module_hci_event_receive_invalid_cmd 
+0x5213 020424 ifetch 1 ,contru 
+0x5214 020425 beq hci_cmd_config_gpio_input ,module_set_gpio_input 
+0x5215 020426 beq hci_cmd_config_gpio_output ,module_set_gpio_output 
+0x5216 020427 branch module_hci_event_receive_invalid_cmd 
+:      020429 module_set_gpio_input:
+0x5217 020430 call module_hci_event_receive_valid_cmd 
+0x5218 020431 ifetcht 1 ,contru 
+0x5219 020432 ifetch 1 ,contru 
+0x521a 020433 beq gpio_input_high_impedance ,gpio_set_high_impedance 
+0x521b 020434 nsetflag blank ,7 ,temp 
+0x521c 020435 branch gpio_config_input 
+:      020437 module_set_gpio_output:
+0x521d 020438 call module_hci_event_receive_valid_cmd 
+0x521e 020439 ifetcht 1 ,contru 
+0x521f 020440 ifetch 1 ,contru 
+0x5220 020441 branch gpio_out_active ,blank 
+0x5221 020442 branch gpio_out_inactive 
+:      020446 module_hci_cmd_read_gpio:
+0x5222 020447 fetch 1 ,mem_module_uart_len 
+0x5223 020448 bne 1 ,module_hci_event_receive_invalid_cmd 
+0x5224 020449 ifetcht 1 ,contru 
+0x5225 020450 call gpio_get_bit 
+0x5226 020451 setarg 0x0 
+0x5227 020452 nsetflag true ,0 ,pdata 
+0x5228 020453 arg 1 ,rega 
+0x5229 020454 store 2 ,mem_event_cmd_response_content 
+0x522a 020455 arg mem_event_cmd_response_content ,regb 
+0x522b 020456 arg 0 ,temp 
+0x522c 020457 branch module_hci_event_set_cmd 
+:      020461 module_hci_cmd_le_set_pairing_mode:
+0x522d 020462 ifetch 1 ,contru 
+0x522e 020463 copy pdata ,temp 
+0x522f 020464 beq le_pairing_mode_secure_connect_justwork ,module_le_set_pairing_mode_secure_justwork 
+0x5230 020465 beq le_pairing_mode_secure_connect_numeric ,module_le_set_pairing_mode_secure_numeric 
+0x5231 020466 beq le_pairing_mode_secure_connect_passkey ,module_le_set_pairing_mode_secure_passkey 
+0x5232 020467 beq le_pairing_mode_secure_connect_passkey_res_input ,module_le_set_pairing_mode_secure_passkey_res_input 
+0x5233 020468 store 1 ,mem_le_pairing_mode 
+0x5234 020469 call sc_reset 
+0x5235 020470 call le_secure_connection_disable 
+0x5236 020471 fetch 1 ,mem_le_pairing_mode 
+0x5237 020472 beq le_pairing_mode_none ,module_le_set_no_pairing 
+0x5238 020473 beq le_pairing_mode_lagacy_justwork ,module_le_set_pairing_mode_lagacy_just_work 
+0x5239 020474 beq le_pairing_mode_lagacy_passkey ,module_le_set_pairing_mode_lagacy_passkey 
+0x523a 020475 beq le_pairing_mode_lagacy_passkey_res_input ,module_le_set_pairing_mode_lagacy_passkey_res_input 
+0x523b 020476 branch module_hci_event_receive_invalid_cmd 
+:      020478 module_le_set_pairing_mode_secure_justwork:
+0x523c 020479 storet 1 ,mem_le_pairing_mode 
+0x523d 020480 call le_secure_connection_enable 
+0x523e 020481 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x523f 020482 branch module_le_set_noinputnooutput 
+:      020483 module_le_set_pairing_mode_secure_numeric:
+0x5240 020484 storet 1 ,mem_le_pairing_mode 
+0x5241 020485 call le_secure_connection_enable 
+0x5242 020486 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x5243 020487 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+0x5244 020488 branch module_hci_event_receive_valid_cmd 
+:      020489 module_le_set_pairing_mode_secure_passkey:
+0x5245 020490 storet 1 ,mem_le_pairing_mode 
+0x5246 020491 call le_secure_connection_enable 
+0x5247 020492 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x5248 020493 branch module_le_set_displayonly 
+:      020494 module_le_set_pairing_mode_secure_passkey_res_input:
+0x5249 020495 storet 1 ,mem_le_pairing_mode 
+0x524a 020496 call le_secure_connection_enable 
+0x524b 020497 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x524c 020498 branch module_le_set_keboadonly 
+:      020501 module_le_set_no_pairing:
+0x524d 020502 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+:      020503 module_le_set_noinputnooutput:
+0x524e 020504 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+0x524f 020505 branch module_hci_event_receive_valid_cmd 
+:      020506 module_le_set_pairing_mode_lagacy_just_work:
+0x5250 020507 jam flag_le_bonding_no_mitm ,mem_le_pres_auth 
+0x5251 020508 branch module_le_set_noinputnooutput 
+:      020509 module_le_set_pairing_mode_lagacy_passkey:
+0x5252 020510 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+0x5253 020511 branch module_le_set_displayonly 
+:      020512 module_le_set_pairing_mode_lagacy_passkey_res_input:
+0x5254 020513 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+0x5255 020514 branch module_le_set_keboadonly 
+:      020515 module_le_set_keboadonly:
+0x5256 020516 jam flag_iocap_keyboardonly ,mem_le_pres_iocap 
+0x5257 020517 branch module_hci_event_receive_valid_cmd 
+:      020518 module_le_set_displayonly:
+0x5258 020519 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+0x5259 020520 branch module_hci_event_receive_valid_cmd 
+:      020524 module_hci_cmd_le_set_adv_data:
+0x525a 020525 arg 31 ,pdata 
+0x525b 020526 arg mem_le_adv_data_len ,contw 
+0x525c 020527 branch module_hci_cmd_receive_store_mem 
+:      020531 module_hci_cmd_le_set_scan_data:
+0x525d 020532 arg 31 ,pdata 
+0x525e 020533 arg mem_le_scan_data_len ,contw 
+0x525f 020534 branch module_hci_cmd_receive_store_mem 
+:      020536 module_hci_cmd_receive_store_mem:
+0x5260 020537 fetchr loopcnt ,1 ,mem_module_uart_len 
+0x5261 020538 isub loopcnt ,null 
+0x5262 020539 nbranch module_hci_event_receive_invalid_cmd ,positive 
+0x5263 020540 istorer loopcnt ,1 ,contw 
+0x5264 020541 call uart_copy_rx_bytes_fast 
+0x5265 020542 branch module_hci_event_receive_valid_cmd 
+:      020546 module_hci_cmd_le_send_conn_update_req:
+0x5266 020547 fetch 2 ,mem_ui_state_map 
+0x5267 020548 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+0x5268 020549 fetch 1 ,mem_module_uart_len 
+0x5269 020550 bne 0x08 ,module_hci_event_receive_invalid_cmd 
+0x526a 020551 ifetch 8 ,contru 
+0x526b 020552 store 8 ,mem_le_interval_min 
+0x526c 020553 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+0x526d 020554 call ui_ipc_send_cmd 
+0x526e 020555 branch module_hci_event_receive_valid_cmd 
+:      020559 module_hci_cmd_set_le_adv_parameter:
+0x526f 020560 ifetch 2 ,contru 
+0x5270 020561 store 2 ,mem_le_adv_interval 
+0x5271 020562 storet 1 ,mem_lpm_overhead 
+0x5272 020563 iadd temp ,pdata 
+0x5273 020564 store 2 ,mem_lpm_interval 
+0x5274 020565 branch module_hci_event_receive_valid_cmd 
+:      020569 module_hci_cmd_le_start_pairing:
+0x5275 020570 fetch 1 ,mem_le_pairing_mode 
+0x5276 020571 branch module_hci_event_receive_invalid_cmd ,blank 
+0x5277 020572 fetch 1 ,mem_le_pairing_state 
+0x5278 020573 bne flag_le_pairing_null ,module_hci_event_receive_invalid_cmd 
+0x5279 020574 fetch 1 ,mem_le_enc_state 
+0x527a 020575 bne flag_le_enc_null ,module_hci_event_receive_invalid_cmd 
+0x527b 020576 call check_51cmd_le_smp_sec_req 
+0x527c 020577 branch module_hci_event_receive_valid_cmd 
+:      020581 module_hci_cmd_set_wake_gpio:
+0x527d 020582 fetch 1 ,mem_module_uart_len 
+0x527e 020583 bne 5 ,module_hci_event_receive_invalid_cmd 
+0x527f 020584 ifetch 1 ,contru 
+0x5280 020585 store 1 ,mem_module_mcu_wake_pin 
+0x5281 020586 ifetch 4 ,contru 
+0x5282 020587 store 4 ,mem_module_mcu_wake_delay_us 
+0x5283 020588 fetcht 1 ,mem_module_mcu_wake_pin 
+0x5284 020589 call gpio_config_output 
+0x5285 020590 call module_set_mcu_wake_pin_low 
+0x5286 020591 branch module_hci_event_receive_valid_cmd 
+:      020595 module_hci_cmd_set_tx_power:
+0x5287 020596 fetch 1 ,mem_module_uart_len 
+0x5288 020597 bne 0x01 ,module_hci_event_receive_invalid_cmd 
+0x5289 020598 ifetch 1 ,contru 
+0x528a 020599 store 1 ,mem_tx_power 
+0x528b 020600 branch module_hci_event_receive_valid_cmd 
+:      020604 module_hci_cmd_le_confirm_gkey:
+0x528c 020605 ifetch 1 ,contru 
+0x528d 020606 beq 0x01 ,module_hci_cmd_le_confirm_gkey_fail 
+0x528e 020607 fetch 1 ,mem_le_secure_connect_state 
+0x528f 020608 beq le_sc_stat_send_public_key ,module_hci_cmd_le_confirm_gkey_ok 
+0x5290 020609 beq le_sc_stat_receive_dhkey ,module_hci_cmd_le_confirm_gkey_ok 
+0x5291 020610 beq le_sc_stat_wait_confirm_gkey ,module_hci_cmd_le_confirm_gkey_ok 
+0x5292 020611 branch module_hci_event_receive_invalid_cmd 
+:      020612 module_hci_cmd_le_confirm_gkey_ok:
+0x5293 020613 jam flag_le_sc_confrim_gkey_ok ,mem_le_sc_confirm_gkey_flag 
+0x5294 020614 branch module_hci_event_receive_valid_cmd 
+:      020616 module_hci_cmd_le_confirm_gkey_fail:
+0x5295 020617 call le_send_pairing_confirm_value_failed 
+0x5296 020618 branch module_hci_event_receive_valid_cmd 
+:      020624 module_hci_cmd_reset_chip:
+0x5297 020625 call module_hci_event_receive_valid_cmd 
+0x5298 020626 call wait_uarttx 
+0x5299 020627 jam 0x01 ,core_reset 
+0x529a 020628 branch assert 
+:      020632 module_hci_cmd_le_set_fixed_passkey:
+0x529b 020633 fetch 1 ,mem_module_uart_len 
+0x529c 020634 beq 0 ,module_hci_event_receive_invalid_cmd 
+0x529d 020635 ifetch 1 ,contru 
+0x529e 020636 branch module_hci_cmd_le_set_random_passkey ,blank 
+0x529f 020637 fetch 1 ,mem_module_uart_len 
+0x52a0 020638 bne 5 ,module_hci_event_receive_invalid_cmd 
+0x52a1 020639 ifetch 4 ,contru 
+0x52a2 020640 arg 1000000 ,temp 
+0x52a3 020641 isub temp ,null 
+0x52a4 020642 branch module_hci_event_receive_invalid_cmd ,positive 
+0x52a5 020643 store 4 ,mem_le_tk 
+0x52a6 020644 call le_set_config_fixed_tk 
+0x52a7 020645 branch module_hci_event_receive_valid_cmd 
+:      020647 module_hci_cmd_le_set_random_passkey:
+0x52a8 020648 call le_clr_config_fixed_tk 
+0x52a9 020649 branch module_hci_event_receive_valid_cmd 
+:      020653 module_hci_cmd_delete_customize_service:
+0x52aa 020654 arg 0x0001 ,temp 
+0x52ab 020655 call le_att_get_handle_ptr2 
+0x52ac 020656 add contr ,-2 ,contw 
+0x52ad 020657 setarg 0x0000 
+0x52ae 020658 istore 2 ,contw 
+0x52af 020659 branch module_hci_event_receive_valid_cmd 
+:      020663 module_hci_cmd_add_service_uuid:
+0x52b0 020664 call module_hci_cmd_add_service_uuid_set_uuid 
+0x52b1 020665 call uart_copy_rx_bytes_len_data 
+0x52b2 020666 setarg 0x0000 
+0x52b3 020667 istore 2 ,contw 
+0x52b4 020668 branch module_hci_event_uuid_handle 
+:      020673 module_hci_cmd_add_characteristic_uuid:
+0x52b5 020674 ifetch 1 ,contru 
+0x52b6 020675 call module_hci_cmd_add_characteristic_uuid_set_handle 
+0x52b7 020676 call module_hci_cmd_add_characteristic_uuid_set_uuid 
+0x52b8 020677 branch module_hci_event_uuid_handle 
+:      020680 module_hci_cmd_add_service_uuid_set_uuid:
+0x52b9 020681 call le_att_creat_new_handle 
+0x52ba 020682 setarg 0x280002 
+0x52bb 020683 istore 3 ,contw 
+0x52bc 020684 rtn 
+:      020687 module_hci_cmd_add_characteristic_uuid_set_handle:
+0x52bd 020688 store 1 ,mem_pdatatemp 
+0x52be 020689 call le_att_creat_new_handle 
+0x52bf 020690 setarg 0x01280302 
+0x52c0 020691 istore 4 ,contw 
+0x52c1 020692 fetch 1 ,mem_pdatatemp 
+0x52c2 020693 istore 3 ,contw 
+0x52c3 020694 rtn 
+:      020697 module_hci_cmd_add_characteristic_uuid_set_uuid:
+0x52c4 020698 call le_att_get_last_handle 
+0x52c5 020699 ifetch 1 ,contru 
+0x52c6 020700 and pdata ,0x1f ,loopcnt 
+0x52c7 020701 copy pdata ,rega 
+0x52c8 020702 isolate1 bit_of_write_authenticated ,rega 
+0x52c9 020703 setflag true ,bit_of_att_handle_write_authenticated ,temp 
+0x52ca 020704 isolate1 bit_of_read_authenticated ,rega 
+0x52cb 020705 setflag true ,bit_of_att_handle_read_authenticated ,temp 
+0x52cc 020706 istoret 2 ,contw 
+0x52cd 020707 copy loopcnt ,pdata 
+0x52ce 020708 istore 1 ,contw 
+0x52cf 020709 call uart_copy_rx_bytes 
+0x52d0 020710 call uart_copy_rx_bytes_len_data 
+0x52d1 020711 setarg 0 
+0x52d2 020712 istore 2 ,contw 
+0x52d3 020713 and temp ,0xff ,temp 
+0x52d4 020714 increase -1 ,temp 
+0x52d5 020715 call le_att_get_handle_ptr2 
+0x52d6 020716 add contr ,4 ,contr 
+0x52d7 020717 ifetch 1 ,contr 
+0x52d8 020718 bbit1 bit_characteristic_notify ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
+0x52d9 020719 bbit1 bit_characteristic_indicate ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
+0x52da 020720 increase 1 ,temp 
+0x52db 020721 rtn 
+:      020724 module_hci_cmd_add_characteristic_uuid_set_ccc_uuid:
+0x52dc 020725 call le_att_get_last_handle 
+0x52dd 020726 isolate1 bit_of_notify_authenticated ,rega 
+0x52de 020727 setflag true ,bit_of_att_handle_write_authenticated ,temp 
+0x52df 020728 istoret 2 ,contw 
+0x52e0 020729 setarg 0x02290202 
+0x52e1 020730 istore 8 ,contw 
+0x52e2 020731 increase -1 ,temp 
+0x52e3 020732 rtn 
+:      020735 le_att_creat_new_handle:
+0x52e4 020736 call le_att_get_last_handle 
+0x52e5 020737 istoret 2 ,contw 
+0x52e6 020738 rtn 
+:      020741 uart_copy_rx_bytes_len_data:
+0x52e7 020742 ifetch 1 ,contru 
+0x52e8 020743 copy pdata ,loopcnt 
+0x52e9 020744 istore 1 ,contw 
+0x52ea 020745 branch uart_copy_rx_bytes 
+:      020749 module_hci_cmd_le_passkey_entry_input:
+0x52eb 020750 fetch 1 ,mem_le_pairing_state 
+0x52ec 020751 bne flag_le_pairing_receive_pairing_confirm ,module_hci_event_receive_invalid_cmd 
+0x52ed 020752 fetch 1 ,mem_le_pairing_mode 
+0x52ee 020753 beq le_pairing_mode_lagacy_passkey_res_input ,module_hci_cmd_passkey_entry_res_input 
+0x52ef 020754 beq le_pairing_mode_secure_connect_passkey_res_input ,module_hci_cmd_passkey_entry_sc_res_input 
+0x52f0 020755 branch module_hci_event_receive_invalid_cmd 
+:      020757 module_hci_cmd_passkey_entry_sc_res_input:
+0x52f1 020758 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x52f2 020759 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
+0x52f3 020760 branch module_hci_cmd_receive_ble_passkey 
+:      020762 module_hci_cmd_receive_ble_passkey:
+0x52f4 020763 ifetch 4 ,contru 
+0x52f5 020764 store 4 ,mem_le_tk 
+0x52f6 020765 branch module_hci_event_receive_valid_cmd 
+:      020767 module_hci_cmd_passkey_entry_res_input:
+0x52f7 020768 call module_hci_cmd_receive_ble_passkey 
+0x52f8 020769 branch le_send_smp_pairing_confirm 
+:      020773 module_hci_cmd_le_create_conn:
+0x52f9 020774 ifetch 6 ,contru 
+0x52fa 020775 store 6 ,mem_le_conn_peer_addr 
+0x52fb 020776 jam hci_cmd_le_create_conn ,mem_cmd_le_create_conn 
+0x52fc 020777 jam on ,mem_le_conn_flag 
+0x52fd 020778 jam on ,mem_le_scan_enable 
+0x52fe 020779 branch module_hci_event_receive_valid_cmd 
+:      020784 module_hci_cmd_ble_set_phy:
+0x52ff 020785 fetch 1 ,mem_module_uart_len 
+0x5300 020786 bne 2 ,module_hci_event_receive_invalid_cmd 
+0x5301 020787 ifetcht 2 ,contru 
+0x5302 020788 call le_set_phys 
+0x5303 020789 branch module_hci_event_receive_valid_cmd 
+:      020793 module_hci_cmd_ble_read_current_phy:
+0x5304 020794 arg 0 ,temp 
+0x5305 020795 arg 2 ,rega 
+0x5306 020796 arg mem_context + coffset_le_rx_phy ,regb 
+0x5307 020797 branch module_hci_event_set_cmd 
+:      020801 module_hci_cmd_ble_set_dle:
+0x5308 020802 fetch 1 ,mem_module_uart_len 
+0x5309 020803 bne 8 ,module_hci_event_receive_invalid_cmd 
+0x530a 020804 ifetch 8 ,contru 
+0x530b 020805 call le_set_dle 
+0x530c 020806 branch module_hci_event_receive_valid_cmd 
+:      020810 module_hci_cmd_read_chip_data:
+0x530d 020811 ifetchr rega ,1 ,contru 
+0x530e 020812 ifetchr regb ,2 ,contru 
+0x530f 020813 arg 0 ,temp 
+0x5310 020814 branch module_hci_event_set_cmd 
+:      020818 module_hci_cmd_write_chip_data:
+0x5311 020819 fetchr loopcnt ,1 ,mem_module_uart_len 
+0x5312 020820 increase -2 ,loopcnt 
+0x5313 020821 ifetch 2 ,contru 
+0x5314 020822 copy pdata ,contw 
+0x5315 020823 call uart_copy_rx_bytes_fast 
+0x5316 020824 branch module_hci_event_receive_valid_cmd 
+:      020829 module_hci_cmd_close_lpm:
+0x5317 020830 jam 0 ,mem_lpm_mode 
+0x5318 020831 branch module_hci_event_receive_valid_cmd 
+:      020836 module_hci_event_receive_invalid_cmd:
+0x5319 020837 arg 1 ,temp 
+0x531a 020838 arg 0 ,rega 
+0x531b 020839 branch module_hci_event_set_cmd 
+:      020842 module_hci_event_receive_valid_cmd:
+0x531c 020843 arg 0 ,temp 
+0x531d 020844 arg 0 ,rega 
+0x531e 020845 branch module_hci_event_set_cmd 
+:      020849 module_hci_event_le_connect:
+0x531f 020850 jam hci_event_le_conn_rep ,mem_module_uart_opcode 
+0x5320 020851 branch module_hci_event_enter_standby_mode_len0 
+:      020856 module_hci_event_le_disconnect:
+0x5321 020857 jam hci_event_le_dis_rep ,mem_module_uart_opcode 
+0x5322 020858 branch module_hci_event_enter_standby_mode_len0 
+:      020866 module_hci_event_set_cmd:
+0x5323 020867 fetch 1 ,mem_module_uart_opcode 
+0x5324 020868 copy pdata ,regc 
+0x5325 020869 jam hci_event_cmd_res ,mem_module_uart_opcode 
+0x5326 020870 setarg 2 
+0x5327 020871 iadd rega ,pdata 
+0x5328 020872 call module_hci_prepare_tx 
+0x5329 020873 copy regc ,pdata 
+0x532a 020874 istore 1 ,contwu 
+0x532b 020875 istoret 1 ,contwu 
+0x532c 020876 copy rega ,loopcnt 
+0x532d 020877 copy regb ,contr 
+0x532e 020878 call uart_copy_tx_bytes 
+0x532f 020879 branch module_hci_transmit_tx 
+:      020886 module_hci_event_receive_le_data:
+0x5330 020887 jam hci_event_le_data_rep ,mem_module_uart_opcode 
+0x5331 020888 add loopcnt ,2 ,pdata 
+0x5332 020889 call module_hci_prepare_tx 
+0x5333 020890 fetch 2 ,mem_module_le_rx_data_handle 
+0x5334 020891 istore 2 ,contwu 
+0x5335 020892 fetch 2 ,mem_module_le_rx_data_address 
+0x5336 020893 icopy contr 
+0x5337 020894 call uart_copy_tx_bytes_fast 
+0x5338 020895 copy contr ,pdata 
+0x5339 020896 store 2 ,mem_module_le_rx_data_address 
+0x533a 020897 branch module_hci_transmit_tx 
+:      020901 module_hci_event_enter_standby_mode:
+0x533b 020902 jam hci_event_standby_rep ,mem_module_uart_opcode 
+:      020903 module_hci_event_enter_standby_mode_len0:
+0x533c 020904 setarg 0 
+0x533d 020905 call module_hci_prepare_tx 
+0x533e 020906 branch module_hci_transmit_tx 
+:      020910 module_hci_event_status_res:
+0x533f 020911 jam hci_event_status_res ,mem_module_uart_opcode 
+0x5340 020912 setarg 1 
+0x5341 020913 call module_hci_prepare_tx 
+0x5342 020915 call module_hci_read_bt_status 
+0x5343 020917 fetch 2 ,mem_ui_state_map 
+0x5344 020918 arg ui_state_ble_connected ,queue 
+0x5345 020919 qisolate1 pdata 
+0x5346 020920 setflag true ,5 ,temp 
+0x5347 020924 istoret 1 ,contwu 
+0x5348 020925 branch module_hci_transmit_tx 
+:      020929 module_hci_read_bt_status:
+0x5349 020930 arg 0 ,temp 
+0x534a 020931 fetch 1 ,mem_le_adv_enable 
+0x534b 020932 arg 0 ,queue 
+0x534c 020933 qisolate1 pdata 
+0x534d 020934 setflag true ,2 ,temp 
+0x534e 020935 rtn 
+:      020939 module_hci_event_store_device:
+0x534f 020940 jam hci_event_nvram_rep ,mem_module_uart_opcode 
+0x5350 020941 fetch 1 ,mem_nv_data_number 
+0x5351 020942 mul32 pdata ,34 ,pdata 
+0x5352 020943 icopy loopcnt 
+0x5353 020944 call module_hci_prepare_tx 
+0x5354 020945 fetch 2 ,mem_nv_data_ptr 
+0x5355 020946 icopy contr 
+0x5356 020947 call uart_copy_tx_bytes_fast 
+0x5357 020948 branch module_hci_transmit_tx 
+:      020951 module_hci_event_gkey_generate:
+0x5358 020952 jam hci_event_gkey ,mem_module_uart_opcode 
+0x5359 020953 setarg 4 
+0x535a 020954 call module_hci_prepare_tx 
+0x535b 020955 fetch 4 ,mem_gkey 
+0x535c 020956 istore 4 ,contwu 
+0x535d 020957 branch module_hci_transmit_tx 
+:      020960 module_hci_event_invalid_packet:
+0x535e 020961 jam hci_event_invalid_packet ,mem_module_uart_opcode 
+0x535f 020962 fetch 2 ,core_uart_rxitems 
+0x5360 020963 arg 0x40 ,temp 
+0x5361 020964 call not_greater_than 
+0x5362 020965 copy pdata ,rega 
+0x5363 020966 copy pdata ,loopcnt 
+0x5364 020967 call uarta_prepare_rx 
+0x5365 020968 arg mem_module_rx_error_data_buffer ,contw 
+0x5366 020969 call uart_copy_rx_bytes_fast 
+0x5367 020970 copy rega ,pdata 
+0x5368 020971 copy rega ,loopcnt 
+0x5369 020972 call module_hci_prepare_tx 
+0x536a 020973 arg mem_module_rx_error_data_buffer ,contr 
+0x536b 020974 call uart_copy_tx_bytes_fast 
+0x536c 020975 branch module_hci_transmit_tx 
+:      020979 module_hci_event_passkey_entry_mode:
+0x536d 020980 jam hci_event_get_passkey ,mem_module_uart_opcode 
+0x536e 020981 branch module_hci_event_enter_standby_mode_len0 
+:      020985 module_hci_event_le_tk:
+0x536f 020986 jam hci_event_le_tk ,mem_module_uart_opcode 
+0x5370 020987 setarg 4 
+0x5371 020988 call module_hci_prepare_tx 
+0x5372 020989 fetch 4 ,mem_le_tk 
+0x5373 020990 istore 4 ,contwu 
+0x5374 020991 branch module_hci_transmit_tx 
+:      020995 module_hci_event_le_pairing_fail:
+0x5375 020996 arg flag_ble_pairing_fail ,rega 
+0x5376 020997 branch module_hci_event_pairing_completed 
+:      020999 module_hci_event_le_pairing_success:
+0x5377 021000 arg flag_ble_pairing_success ,rega 
+0x5378 021001 branch module_hci_event_pairing_completed 
+:      021004 module_hci_event_pairing_completed:
+0x5379 021005 jam hci_event_le_pairing_state ,mem_module_uart_opcode 
+0x537a 021006 setarg 2 
+0x537b 021007 call module_hci_prepare_tx 
+0x537c 021008 copy rega ,pdata 
+0x537d 021009 istore 2 ,contwu 
+0x537e 021010 branch module_hci_transmit_tx 
+:      021014 module_hci_event_pause_enc:
+0x537f 021015 arg flag_event_pause_enc ,regc 
+0x5380 021016 branch module_hci_event_enc 
+:      021018 module_hci_event_start_enc:
+0x5381 021019 arg flag_event_start_enc ,regc 
+:      021021 module_hci_event_enc:
+0x5382 021022 jam hci_event_le_encryption_state ,mem_module_uart_opcode 
+0x5383 021023 setarg 1 
+0x5384 021024 call module_hci_prepare_tx 
+0x5385 021025 copy regc ,pdata 
+0x5386 021026 istore 1 ,contwu 
+0x5387 021027 branch module_hci_transmit_tx 
+:      021033 module_hci_event_uuid_handle:
+0x5388 021034 storet 2 ,mem_temp 
+0x5389 021035 jam hci_event_uuid_handle ,mem_module_uart_opcode 
+0x538a 021036 setarg 2 
+0x538b 021037 call module_hci_prepare_tx 
+0x538c 021038 fetcht 2 ,mem_temp 
+0x538d 021039 istoret 2 ,contwu 
+0x538e 021040 branch module_hci_transmit_tx 
+:      021044 module_hci_event_le_input_passkey:
+0x538f 021045 jam hci_event_le_input_gkey ,mem_module_uart_opcode 
+0x5390 021046 branch module_hci_event_enter_standby_mode_len0 
+:      021050 module_hci_event_le_update_phy:
+0x5391 021051 jam hci_ble_update_phy_event ,mem_module_uart_opcode 
+0x5392 021052 setarg 2 
+0x5393 021053 call module_hci_prepare_tx 
+0x5394 021054 fetch 2 ,mem_context + coffset_le_rx_phy 
+0x5395 021055 istore 2 ,contwu 
+0x5396 021056 branch module_hci_transmit_tx 
+:      021068 module_hci_prepare_tx:
+0x5397 021069 jam 0x02 ,mem_module_uart_cmd 
+0x5398 021070 store 1 ,mem_module_uart_len 
+0x5399 021071 storet 8 ,mem_temp 
+0x539a 021072 bpatch patch0c_6 ,mem_patch0c 
+0x539b 021073 call module_set_mcu_wake_pin_high_delay 
+0x539c 021074 fetcht 8 ,mem_temp 
+0x539d 021075 call uarta_prepare_tx_register_push 
+0x539e 021076 fetch 3 ,mem_module_uart_cmd 
+0x539f 021077 istore 3 ,contwu 
+0x53a0 021078 rtn 
+:      021080 module_hci_transmit_tx:
+0x53a1 021081 bpatch patch0c_7 ,mem_patch0c 
+0x53a2 021082 branch uarta_send_register_pop 
+:      021084 module_set_mcu_wake_pin_high_delay:
+0x53a3 021085 call module_check_mcu_wake_pin_high 
+0x53a4 021086 rtn true 
+:      021087 module_set_mcu_wake_pin_h_delay:
+0x53a5 021088 call module_set_mcu_wake_pin_high 
+0x53a6 021089 fetch 4 ,mem_module_mcu_wake_delay_us 
+0x53a7 021090 rshift2 pdata ,pdata 
+0x53a8 021091 rtn blank 
+0x53a9 021092 branch delay 
+:      021094 module_set_mcu_wake_pin_high:
+0x53aa 021095 fetcht 1 ,mem_module_mcu_wake_pin 
+0x53ab 021096 branch gpio_out_active 
+:      021098 module_check_mcu_wake_pin_high:
+0x53ac 021099 fetcht 1 ,mem_module_mcu_wake_pin 
+0x53ad 021100 branch gpio_check_active 
+:      021102 module_set_mcu_wake_pin_low:
+0x53ae 021103 fetcht 1 ,mem_module_mcu_wake_pin 
+0x53af 021104 branch gpio_out_inactive 
+:      021115 module_le_receive_data:
+0x53b0 021116 storer rega ,2 ,mem_module_le_rx_data_address 
+0x53b1 021117 storer regb ,2 ,mem_module_le_rx_data_len 
+0x53b2 021118 fetch 2 ,mem_le_att_handle 
+0x53b3 021119 store 2 ,mem_module_le_rx_data_handle 
+0x53b4 021120 call module_check_ble_encrypt_state 
+0x53b5 021121 rtn user 
+:      021123 module_le_receive_data_ok:
+0x53b6 021124 fetcht 2 ,mem_module_le_rx_data_len 
+0x53b7 021125 fetch 1 ,mem_module_ble_data_uart_max_length 
+0x53b8 021126 call not_greater_than 
+0x53b9 021127 copy pdata ,loopcnt 
+0x53ba 021128 copy temp ,pdata 
+0x53bb 021129 isub loopcnt ,pdata 
+0x53bc 021130 store 2 ,mem_module_le_rx_data_len 
+0x53bd 021131 call module_hci_event_receive_le_data 
+0x53be 021132 fetch 2 ,mem_module_le_rx_data_len 
+0x53bf 021133 rtn blank 
+0x53c0 021134 branch module_le_receive_data_ok 
+:      021139 module_bb_event_timer:
+0x53c1 021140 rtn 
+:      021142 module_read_vdd_timer:
+0x53c2 021143 fetch 1 ,mem_module_read_vdd_flag 
+0x53c3 021144 rtn blank 
+0x53c4 021145 fetch 1 ,mem_module_read_vdd_count 
+0x53c5 021146 rtn blank 
+0x53c6 021147 increase -1 ,pdata 
+0x53c7 021148 store 1 ,mem_module_read_vdd_count 
+0x53c8 021149 nrtn blank 
+0x53c9 021150 jam flag_module_read_vdd_count ,mem_module_read_vdd_count 
+0x53ca 021151 call enable_adc 
+0x53cb 021152 call vdd_calculate_by_mode 
+0x53cc 021153 div pdata ,10 
+0x53cd 021154 call get_div_result 
+0x53ce 021155 div pdata ,100 
+0x53cf 021156 call get_div_result 
+0x53d0 021157 remainder temp 
+0x53d1 021158 store 1 ,mem_module_vdd_quotient 
+0x53d2 021159 storet 1 ,mem_module_vdd_remainder 
+0x53d3 021160 rtn 
+:      021166 module_set_le_tx_data_flag:
+0x53d4 021167 arg module_flag_ble_data_finish ,queue 
+0x53d5 021168 branch module_set_state 
+:      021170 module_clear_le_tx_data_flag:
+0x53d6 021171 arg module_flag_ble_data_finish ,queue 
+0x53d7 021172 branch module_clr_state 
+:      021174 module_clr_state:
+0x53d8 021175 fetch 2 ,mem_module_flag 
+0x53d9 021176 qset0 pdata 
+0x53da 021177 store 2 ,mem_module_flag 
+0x53db 021178 rtn 
+:      021180 module_set_state:
+0x53dc 021181 fetch 2 ,mem_module_flag 
+0x53dd 021182 qset1 pdata 
+0x53de 021183 store 2 ,mem_module_flag 
+0x53df 021184 rtn 
+:      021189 mouse_init:
+0x53e0 021190 call enable_authrom 
+0x53e1 021191 call mouse_setting_config 
+0x53e2 021192 call mouse_init_sunt 
+0x53e3 021193 rtn wake 
+0x53e4 021194 call mouse_setting_sensor_type 
+0x53e5 021195 call mouse_drawing_optima_init 
+0x53e6 021196 call mouse_cb_fuction 
+0x53e7 021197 call mouse_sensor_powerdown 
+:      021198 mouse_init_wireless:
+0x53e8 021199 fetch 2 ,mem_ui_state_map 
+0x53e9 021200 bbit1 ui_state_btn_down ,mouse_start_discovery 
+0x53ea 021201 call mouse_check_select_device_by_switch 
+0x53eb 021202 branch mouse_start_work 
+:      021205 mouse_cb_fuction:
+0x53ec 021206 bpatch patch0d_0 ,mem_patch0d 
+0x53ed 021207 setarg mouse_24g_short_sleep 
+0x53ee 021208 store 2 ,mem_cb_24g_transmit_short_sleep 
+0x53ef 021209 setarg mouse_24g_long_sleep 
+0x53f0 021210 store 2 ,mem_cb_24g_transmit_long_sleep 
+0x53f1 021211 setarg mouse_24g_before_lpm_sleep 
+0x53f2 021212 store 2 ,mem_cb_before_lpm_sleep 
+0x53f3 021213 setarg mouse_24g_package_data 
+0x53f4 021214 store 2 ,mem_cb_24g_transmit_data 
+0x53f5 021215 setarg mouse_24g_search_dongle 
+0x53f6 021216 store 2 ,mem_cb_24g_search_receiver 
+0x53f7 021217 setarg mouse_lpm_before_common 
+0x53f8 021218 store 2 ,mem_cb_24g_lpm_before 
+0x53f9 021219 setarg mouse_le 
+0x53fa 021220 store 2 ,mem_cb_le_process 
+0x53fb 021221 setarg mouse_process_lpm_before 
+0x53fc 021222 store 2 ,mem_cb_before_lpm 
+0x53fd 021223 setarg mouse_priority_bb_event 
+0x53fe 021224 store 2 ,mem_cb_bb_event_process 
+0x53ff 021225 setarg mouse_idle 
+0x5400 021226 store 2 ,mem_cb_idle_process 
+0x5401 021227 setarg mouse_before_hibernate 
+0x5402 021228 store 2 ,mem_cb_before_hibernate 
+0x5403 021229 setarg mouse_le_bb_event_connect_complete 
+0x5404 021230 store 2 ,mem_cb_att_write 
+0x5405 021231 setarg mouse_bb_event_timer 
+0x5406 021232 store 2 ,mem_cb_event_timer 
+0x5407 021233 setarg mouse_spi_write_flash_cb 
+0x5408 021234 store 2 ,mem_cb_spi_flash_write_complate 
+0x5409 021235 setarg mouse_lpm_check_wake_lock 
+0x540a 021236 store 2 ,mem_cb_check_wakelock 
+0x540b 021237 setarg mouse_le_transmit 
+0x540c 021238 store 2 ,mem_cb_ble_transmit 
+0x540d 021239 setarg mouse_set_lpm_mult 
+0x540e 021240 store 2 ,mem_cb_bt_set_mult 
+0x540f 021241 rtn 
+:      021244 mouse_setting_config:
+0x5410 021245 rtn wake 
+0x5411 021246 call g24_transmit_init 
+0x5412 021247 call g24_chmap_param_init 
+0x5413 021248 call mouse_24g_send_time_long_wake 
+0x5414 021249 call mouse_gpio_init 
+0x5415 021250 call mouse_le_name_modify 
+0x5416 021251 call mouse_param_init 
+0x5417 021252 call mouse_device_multi_led_parm_init 
+0x5418 021253 call le_set_fixed_ltk_justwork 
+:      021254 mouse_load_device_info_check:
+0x5419 021255 bpatch patch0d_1 ,mem_patch0d 
+0x541a 021256 fetch mouse_flag_len ,mem_mouse_flag 
+0x541b 021257 bbit1 mouse_enable_eeprom ,mouse_load_eeprom_info_check 
+0x541c 021258 bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
+0x541d 021259 bbit1 mouse_enable_otp ,mouse_load_otp_info_check 
+0x541e 021260 rtn 
+:      021262 mouse_xtal_init:
+0x541f 021263 jam xtal_16m ,mem_fcomp_div 
+0x5420 021264 fetch mouse_flag_len ,mem_mouse_flag 
+0x5421 021265 rtnbit1 mouse_enable_16m 
+0x5422 021266 jam xtal_24m ,mem_fcomp_div 
+0x5423 021267 rtn 
+:      021269 mouse_24g_phy_select:
+0x5424 021270 call g24_enable_1m 
+0x5425 021271 fetch mouse_flag_len ,mem_mouse_flag 
+0x5426 021272 rtnbit0 mouse_enable_24g_2m_phy 
+0x5427 021273 branch g24_enable_2m 
+:      021275 mouse_default_init:
+0x5428 021276 bpatch patch0d_2 ,mem_patch0d 
+0x5429 021277 fetch mouse_flag_len ,mem_mouse_flag 
+0x542a 021278 isolate1 mouse_keyboard_enable ,pdata 
+0x542b 021279 call mouse_customer_key_enable ,true 
+:      021281 mouse_default_parm_init:
+0x542c 021282 fetch 2 ,mem_mouse_24g_pair_timeout_init 
+0x542d 021283 store 2 ,mem_24g_pair_timeout_init 
+0x542e 021285 fetch 1 ,mem_mouse_24g_reconn_timeout_init 
+0x542f 021286 store 2 ,mem_24g_reconn_timeout_init 
+0x5430 021288 fetch 5 ,mem_rssi_dis_min_24g_init 
+0x5431 021289 store 5 ,mem_rssi_dis_min_24g 
+0x5432 021291 fetch 1 ,mem_mouse_24g_pair_tx_power 
+0x5433 021292 store 1 ,mem_24g_pair_tx_power 
+0x5434 021294 fetch 1 ,mem_24g_ch_map_update 
+0x5435 021295 ncall g24_chamap_param_update ,blank 
+:      021296 mouse_default_parm_init_next:
+0x5436 021297 bpatch patch0d_3 ,mem_patch0d 
+0x5437 021298 call mouse_xtal_init 
+0x5438 021299 call mouse_24g_phy_select 
+0x5439 021300 call mouse_24g_long_sleep_set 
+0x543a 021301 branch g24_pair_param_init 
+:      021303 mouse_param_common_init:
+0x543b 021304 setarg mouse_ble_att_list_addr 
+0x543c 021305 store 2 ,mem_ui_le_uuid_table 
+0x543d 021306 jam 3 ,mem_lpm_mult_timeout 
+0x543e 021307 jam 8 ,mem_lpm_overhead 
+0x543f 021308 jam pb_button_state_up ,mem_select_device_button_statue 
+0x5440 021309 jam commbination_key_state_up ,mem_commbination_key_statue 
+0x5441 021310 setarg 0x0200 
+0x5442 021311 store 2 ,mem_lpm_interval 
+0x5443 021312 jam 0x17 ,mem_le_local_mtu 
+0x5444 021313 jam 0x17 ,mem_le_remote_mtu 
+0x5445 021315 setarg mem_le_tx_buffer0_omemalloc 
+0x5446 021316 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+0x5447 021317 setarg mouse_ble_l2cap_txbuff_size 
+0x5448 021318 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0x5449 021319 branch mouse_adc_gpio_mux_init 
+:      021321 mouse_param_init:
+0x544a 021322 bpatch patch0d_4 ,mem_patch0d 
+0x544b 021323 call mouse_param_common_init 
+0x544c 021324 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+0x544d 021326 setarg 0x0a77 
+0x544e 021327 store 2 ,mem_spi_init_clk 
+0x544f 021328 setsect 0 ,0x1224 
+0x5450 021329 setsect 1 ,0x4000 
+0x5451 021330 setsect 2 ,0x0 
+0x5452 021331 istore 5 ,contw 
+0x5453 021334 fetch mouse_flag_len ,mem_mouse_flag 
+0x5454 021335 bbit0 mouse_enable_bt_125hz ,mouse_param_init_intervl_end 
+0x5455 021336 setarg le_interval_7_5ms 
+0x5456 021337 store 2 ,mem_le_interval_min 
+0x5457 021338 store 2 ,mem_le_interval_min + 2 
+:      021339 mouse_param_init_intervl_end:
+0x5458 021340 call mouse_g24_interval_param_8ms 
+0x5459 021341 fetch mouse_flag_len ,mem_mouse_flag 
+0x545a 021342 bbit0 mouse_enable_24g_250hz ,mouse_24g_short_sleep_set_end 
+0x545b 021343 call mouse_g24_interval_param_4ms 
+:      021344 mouse_24g_short_sleep_set_end:
+0x545c 021345 fetch 3 ,mem_24g_short_sleep_set 
+0x545d 021346 store 3 ,mem_mouse_24g_short_sleep_set_init 
+0x545e 021347 fetch 1 ,mem_device_flag 
+0x545f 021348 store 1 ,mem_device_flag_temp 
+0x5460 021349 fetch 3 ,mem_le_lap + 3 
+0x5461 021350 store 3 ,mem_mouse_le_lap_temp 
+0x5462 021351 setarg 0 
+0x5463 021352 store 7 ,mem_mouse_key 
+0x5464 021353 fetch 1 ,mem_ui_button_timeout 
+0x5465 021354 store 1 ,mem_bt_discovery_count 
+0x5466 021355 store 1 ,mem_select_device_count 
+0x5467 021356 call le_modified_name_adv 
+:      021357 mouse_sensor_set_angle:
+0x5468 021358 bpatch patch0d_5 ,mem_patch0d 
+0x5469 021359 fetch 1 ,mem_sensor_angle_default 
+0x546a 021360 store 1 ,mem_config_sensor_angle 
+0x546b 021361 fetch 1 ,mem_select_sensor_angle_gpio 
+0x546c 021362 rtneq gpio_disable 
+0x546d 021363 fetcht 1 ,mem_select_sensor_angle_gpio 
+0x546e 021364 call mouse_gpio_config_input_pu 
+0x546f 021365 fetcht 1 ,mem_select_sensor_angle_gpio 
+0x5470 021366 call gpio_get_bit 
+0x5471 021367 call mouse_sensor_switch_angle ,true 
+0x5472 021368 branch mouse_gpio_config_input_pd 
+:      021369 mouse_sensor_switch_angle:
+0x5473 021370 fetch 1 ,mem_sensor_angle_switch 
+0x5474 021371 store 1 ,mem_config_sensor_angle 
+0x5475 021372 rtn 
+:      021374 mouse_g24_interval_param_4ms:
+0x5476 021375 fetch 3 ,mem_mouse_24g_short_sleep_set_4ms 
+0x5477 021376 store 3 ,mem_24g_short_sleep_set 
+0x5478 021377 fetch 3 ,mem_mouse_24g_long_sleep_set_4ms 
+0x5479 021378 store 3 ,mem_24g_long_sleep_set 
+0x547a 021379 fetch 1 ,mem_mouse_24g_fast_hop_count_4ms 
+0x547b 021380 store 1 ,mem_24g_fast_hop_count 
+0x547c 021381 fetch 4 ,mem_mouse_24g_tsniff_4ms 
+0x547d 021382 store 4 ,mem_mouse_24g_tsniff 
+:      021383 mouse_report_rate_set_250hz:
+0x547e 021384 setarg 0x100c0c 
+0x547f 021385 store 3 ,mem_24g_interval 
+0x5480 021386 rtn 
+:      021388 mouse_g24_interval_param_8ms:
+0x5481 021389 fetch 3 ,mem_mouse_24g_short_sleep_set_8ms 
+0x5482 021390 store 3 ,mem_24g_short_sleep_set 
+0x5483 021391 fetch 3 ,mem_mouse_24g_long_sleep_set_8ms 
+0x5484 021392 store 3 ,mem_24g_long_sleep_set 
+0x5485 021393 fetch 1 ,mem_mouse_24g_fast_hop_count_8ms 
+0x5486 021394 store 1 ,mem_24g_fast_hop_count 
+0x5487 021395 fetch 4 ,mem_mouse_24g_tsniff_8ms 
+0x5488 021396 store 4 ,mem_mouse_24g_tsniff 
+:      021397 mouse_report_rate_set_125hz:
+0x5489 021398 setarg 0x1c1919 
+0x548a 021399 store 3 ,mem_24g_interval 
+0x548b 021400 rtn 
+:      021412 mouse_start_work:
+0x548c 021413 bpatch patch0d_6 ,mem_patch0d 
+0x548d 021414 fetch mouse_flag_len ,mem_mouse_flag 
+0x548e 021415 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
+0x548f 021416 fetch 1 ,mem_device_flag 
+0x5490 021417 beq mode_24g_device ,mouse_24g_start_mode 
+:      021418 mouse_le_fast_conn_judge:
+0x5491 021419 call mouse_bluetooth_fast_conn_disable 
+0x5492 021420 fetch 1 ,mem_device_flag 
+0x5493 021421 beq mode_bt_device1 ,mouse_le_device1_judge 
+0x5494 021422 beq mode_bt_device2 ,mouse_le_device2_judge 
+0x5495 021423 rtn 
+:      021424 mouse_le_device1_judge:
+0x5496 021425 fetch 6 ,mem_device1_addr 
+0x5497 021426 fetcht 6 ,mem_mouse_compare_addr 
+0x5498 021427 isub temp ,null 
+0x5499 021428 branch mouse_bluetooth_fast_conn_init ,zero 
+0x549a 021429 branch mouse_start_reconnect_device 
+:      021431 mouse_le_device2_judge:
+0x549b 021432 fetch 6 ,mem_device2_addr 
+0x549c 021433 fetcht 6 ,mem_mouse_compare_addr 
+0x549d 021434 isub temp ,null 
+0x549e 021435 branch mouse_bluetooth_fast_conn_init ,zero 
+0x549f 021436 branch mouse_start_reconnect_device 
+:      021438 mouse_start_reconnect_device:
+0x54a0 021439 bpatch patch0d_7 ,mem_patch0d 
+0x54a1 021440 call mouse_device_le_reconn_led_config 
+0x54a2 021441 arg mem_device1_type ,rega 
+0x54a3 021442 fetch 1 ,mem_device_flag 
+0x54a4 021443 increase -1 ,pdata 
+0x54a5 021444 mul32 pdata ,29 ,pdata 
+0x54a6 021445 iadd rega ,rega 
+0x54a7 021446 ifetch 1 ,rega 
+0x54a8 021447 store 1 ,mem_xrecord_mode 
+:      021448 mouse_start_reconnect:
+0x54a9 021449 fetch 1 ,mem_xrecord_mode 
+0x54aa 021450 beq rec_4_mode ,mouse4_0_check_reconn_target 
+0x54ab 021451 branch mouse_bluetooth_fast_conn_init 
+:      021453 mouse_wakeup_from_power_check:
+0x54ac 021454 bpatch patch0e_0 ,mem_patch0e 
+0x54ad 021455 disable user 
+0x54ae 021456 fetch mouse_flag_len ,mem_mouse_flag 
+0x54af 021457 bbit0 mouse_enable_wakeup_from_power ,mouse_wakeup_from_poweron 
+0x54b0 021458 fetch 1 ,core_lpm_isogate 
+0x54b1 021459 bbit1 cold_wake ,mouse_wakeup_from_poweron 
+0x54b2 021460 enable user 
+:      021461 mouse_wakeup_from_poweron:
+0x54b3 021462 fetch 1 ,mem_reconn_times_init 
+0x54b4 021463 store 1 ,mem_reconn_times 
+0x54b5 021464 rtn 
+:      021466 mouse4_0_check_reconn_target:
+0x54b6 021467 jam 1 ,mem_mouse_le_reconnect_flag 
+0x54b7 021468 fetcht 1 ,mem_mouse_fast_direct_timeout 
+0x54b8 021469 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0x54b9 021470 beq 0xff ,mouse4_0_check_reconn_target_next 
+0x54ba 021471 fetcht 1 ,mem_mouse_direct_timeout 
+:      021472 mouse4_0_check_reconn_target_next:
+0x54bb 021473 storet 1 ,mem_mouse_direct_timer 
+0x54bc 021474 call app_lpm_mult_disable 
+0x54bd 021475 fetch 3 ,mem_le_adv_direct_ind 
+0x54be 021476 store 3 ,mem_le_adv_data + 4 
+0x54bf 021477 call mouse_le_check_adv_flag 
+0x54c0 021478 setarg adv_flag_bredr_not_supported 
+0x54c1 021479 istore 1 ,contr 
+0x54c2 021480 arg mem_le_scan_data ,contr 
+0x54c3 021481 call mouse_le_adv_data_update 
+0x54c4 021482 branch check_51cmd_adv 
+:      021486 mouse_lpm_check_wake_lock:
+0x54c5 021487 bmark1 mark_24g ,app_get_lpm_wake_lock 
+0x54c6 021488 fetch 1 ,mem_mouse_clear_sensor_data_flag 
+0x54c7 021489 branch app_get_lpm_wake_lock ,blank 
+0x54c8 021490 fetch 1 ,mem_mouse_le_conn_param_reject 
+0x54c9 021491 beq le_lpm_disable ,app_get_lpm_wake_lock 
+0x54ca 021492 fetch 1 ,mem_mouse_wheel_trigger 
+0x54cb 021493 nbranch app_get_lpm_wake_lock ,blank 
+0x54cc 021494 branch app_put_lpm_wake_lock 
+:      021503 mouse_app_enter_hibernate:
+0x54cd 021504 bpatch patch0e_1 ,mem_patch0e 
+0x54ce 021505 setarg pan_reg_config 
+0x54cf 021506 call twspi_read 
+0x54d0 021507 bbit1 3 ,mouse_app_enter_hibernate_next 
+0x54d1 021508 call mouse_sensor_reset 
+0x54d2 021509 call mouse_sensor_powerdown 
+:      021510 mouse_app_enter_hibernate_next:
+0x54d3 021511 call mouse_setgpio_hibernate 
+0x54d4 021512 branch app_enter_hibernate 
+:      021514 mouse_before_hibernate:
+0x54d5 021515 bpatch patch0e_2 ,mem_patch0e 
+0x54d6 021516 call disable_authrom 
+0x54d7 021517 call mouse_before_hibernate_wheel_gpio_set 
+0x54d8 021518 call mouse_setgpio_hibernate 
+0x54d9 021519 call mouse_flash_power_down 
+0x54da 021520 fetcht 1 ,mem_sensor_motion_gpio 
+0x54db 021521 branch gpio_clr_wake 
+:      021524 mouse_setgpio_hibernate:
+0x54dc 021525 bpatch patch0e_3 ,mem_patch0e 
+0x54dd 021526 call mouse_set_sdio_high 
+0x54de 021527 call clear_wake 
+0x54df 021528 call mouse_logo_led_off 
+0x54e0 021529 call mouse_lpm_before_common 
+0x54e1 021530 call mouse_gpio_pd_idle 
+0x54e2 021531 fetcht 1 ,mem_mouse_reuse_2ice_gpio 
+0x54e3 021532 call mouse_gpio_config_input_pu 
+0x54e4 021533 call mouse_gpio_set_high_impedance 
+0x54e5 021534 call mouse_device_multi_led_all_off 
+0x54e6 021535 call mouse_adc_gpio_set_before_hibernate 
+0x54e7 021536 branch mouse_wheel_gpio_set_before_hibernate 
+:      021538 mouse_wheel_gpio_set_before_hibernate:
+0x54e8 021539 fetch mouse_flag_len ,mem_mouse_flag 
+0x54e9 021540 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+:      021541 mouse_wheel_gpio_clr_wakeup:
+0x54ea 021542 fetcht 1 ,mem_whee_a_data_gpio 
+0x54eb 021543 call gpio_clr_wake 
+0x54ec 021544 fetcht 1 ,mem_whee_b_data_gpio 
+0x54ed 021545 call gpio_clr_wake 
+0x54ee 021546 fetcht 1 ,mem_whee_a_data_gpio 
+0x54ef 021547 call mouse_gpio_config_input_pd 
+0x54f0 021548 fetcht 1 ,mem_whee_b_data_gpio 
+0x54f1 021549 branch mouse_gpio_config_input_pd 
+:      021551 mouse_adc_gpio_set_before_hibernate:
+0x54f2 021552 fetch mouse_flag_len ,mem_mouse_flag 
+0x54f3 021553 rtnbit0 mouse_enable_adc 
+0x54f4 021554 fetch 1 ,mem_adc_config_flag 
+0x54f5 021555 rtnne adc_config_gpio 
+0x54f6 021556 fetch 1 ,mem_adc_channel_gpio 
+0x54f7 021557 arg gpcfg_no_ie ,temp 
+0x54f8 021558 branch gpio_config_function_int 
+:      021562 mouse_gpio_pd_idle:
+0x54f9 021563 arg core_gpio_conf ,contr 
+0x54fa 021564 arg gpio_number ,loopcnt 
+:      021565 mouse_gpio_pd_idle_loop:
+0x54fb 021566 ifetch 1 ,contr 
+0x54fc 021567 nbranch mouse_gpio_pd_idle_configured ,blank 
+0x54fd 021568 setarg gpcfg_pulldown 
+0x54fe 021569 add contr ,-1 ,contw 
+0x54ff 021570 istore 1 ,contw 
+:      021571 mouse_gpio_pd_idle_configured:
+0x5500 021572 loop mouse_gpio_pd_idle_loop 
+0x5501 021573 arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+0x5502 021574 isub contr ,null 
+0x5503 021575 rtn zero 
+:      021576 mouse_gpio_pd_idle_ext:
+0x5504 021577 arg gpio_number_ext ,loopcnt 
+0x5505 021578 arg core_gpio_conf_hi ,contr 
+0x5506 021579 branch mouse_gpio_pd_idle_loop 
+:      021581 mouse_process_lpm_before:
+0x5507 021582 rtnmark1 mark_24g 
+0x5508 021583 call mouse_lpm_before_common 
+0x5509 021584 fetch 1 ,mem_lpm_current_mult 
+0x550a 021585 nrtn blank 
+0x550b 021586 branch gpio_clr_wake 
+:      021588 mouse_lpm_before_common:
+0x550c 021589 bpatch patch0e_4 ,mem_patch0e 
+0x550d 021590 fetcht 1 ,mem_whee_a_data_gpio 
+0x550e 021591 call gpio_config_input 
+0x550f 021592 fetcht 1 ,mem_whee_b_data_gpio 
+0x5510 021593 call gpio_config_input 
+0x5511 021595 call mouse_wheel_check 
+0x5512 021596 fetch 1 ,mem_mouse_sensor_sclk_gpio 
+0x5513 021597 call mouse_gpio_config_output_high 
+0x5514 021598 call twspi_disable 
+0x5515 021600 fetcht 1 ,mem_lbutton_gpio 
+0x5516 021601 call gpio_set_wake 
+0x5517 021602 fetcht 1 ,mem_rbutton_gpio 
+0x5518 021603 call gpio_set_wake 
+0x5519 021604 fetcht 1 ,mem_mbutton_gpio 
+0x551a 021605 call gpio_set_wake 
+0x551b 021607 fetcht 1 ,mem_bk_button_gpio 
+0x551c 021608 call gpio_set_wake 
+0x551d 021609 fetcht 1 ,mem_fw_button_gpio 
+0x551e 021610 call gpio_set_wake 
+0x551f 021611 fetcht 1 ,mem_dpi_button_gpio 
+0x5520 021612 call gpio_set_wake 
+0x5521 021613 fetcht 1 ,mem_config_select_device_button_gpio 
+0x5522 021614 call gpio_set_wake 
+0x5523 021616 fetcht 1 ,mem_customer_key_gpio 
+0x5524 021617 call gpio_set_wake 
+0x5525 021619 fetcht 1 ,mem_whee_a_data_gpio 
+0x5526 021620 call gpio_set_wake_by_current_state 
+0x5527 021621 fetcht 1 ,mem_whee_b_data_gpio 
+0x5528 021622 call gpio_set_wake_by_current_state 
+0x5529 021623 fetcht 1 ,mem_whee_ta_data_gpio 
+0x552a 021624 call gpio_set_wake_by_current_state 
+0x552b 021625 fetcht 1 ,mem_whee_tb_data_gpio 
+0x552c 021626 call gpio_set_wake_by_current_state 
+0x552d 021627 fetcht 1 ,mem_sensor_motion_gpio 
+0x552e 021628 branch gpio_set_wake 
+:      021632 mouse_set_mult:
+0x552f 021633 fetch 2 ,mem_ui_state_map 
+0x5530 021634 rtnbit0 ui_state_ble_connected 
+0x5531 021635 copy rega ,pdata 
+0x5532 021636 nbranch le_set_config_short_mult ,blank 
+0x5533 021637 branch le_clr_config_short_mult 
+:      021641 mouse_adc_gpio_set:
+0x5534 021642 bpatch patch0e_5 ,mem_patch0e 
+0x5535 021643 fetch 1 ,mem_adc_config_flag 
+0x5536 021644 rtnne adc_config_gpio 
+0x5537 021645 fetcht 1 ,mem_adc_channel_gpio 
+0x5538 021646 branch gpio_set_high_impedance 
+:      021648 mouse_adc_gpio_mux_init:
+0x5539 021649 fetch mouse_flag_len ,mem_mouse_flag 
+0x553a 021650 rtnbit0 mouse_enable_adc 
+0x553b 021651 jam mouse_adc_check_multiple ,mem_adc_mux_status 
+0x553c 021652 rtn 
+:      021654 mouse_adc_read:
+0x553d 021655 bpatch patch0e_6 ,mem_patch0e 
+0x553e 021656 fetch mouse_flag_len ,mem_mouse_flag 
+0x553f 021657 rtnbit0 mouse_enable_adc 
+0x5540 021658 call mouse_adc_gpio_set 
+0x5541 021659 fetch 1 ,mem_adc_config_flag 
+0x5542 021660 beq adc_config_gpio ,mouse_adc_read_gpio_mux_start 
+0x5543 021661 jam mouse_adc_check_hvin_multiple ,mem_adc_mux_status 
+0x5544 021662 branch mouse_adc_read_start 
+:      021664 mouse_adc_read_gpio_mux_start:
+0x5545 021665 jam mouse_adc_check_gpio_multiple ,mem_adc_mux_status 
+0x5546 021666 branch mouse_adc_read_start 
+:      021668 mouse_adc_read_start:
+0x5547 021669 bpatch patch0e_7 ,mem_patch0e 
+0x5548 021670 call enable_adc 
+0x5549 021671 call vdd_calculate_by_mode 
+0x554a 021672 store 2 ,mem_mouse_vdd_now_vol 
+0x554b 021673 fetch 1 ,mem_adc_config_flag 
+0x554c 021674 bne adc_config_gpio ,mouse_adc_data_process 
+0x554d 021675 fetcht 2 ,mem_mouse_vdd_now_vol 
+0x554e 021676 mul32 temp ,8 ,pdata 
+0x554f 021677 div pdata ,10 
+0x5550 021678 call get_div_result 
+0x5551 021679 iadd temp ,pdata 
+0x5552 021680 store 2 ,mem_mouse_vdd_now_vol 
+:      021681 mouse_adc_data_process:
+0x5553 021682 arg mem_mouse_vdd_calculate_set ,rega 
+0x5554 021683 call mouse_adc_bat_percent_lowpower_out 
+0x5555 021684 fetch 1 ,mem_adc_power_flag 
+0x5556 021685 bbit1 1 ,mouse_app_enter_hibernate 
+0x5557 021686 bbit0 0 ,mouse_adc_no_low_voltage 
+0x5558 021687 jam 1 ,mem_mouse_adc_last_low_voltage_flag 
+0x5559 021688 branch mouse_adc_low_voltage 
+:      021690 mouse_adc_low_voltage:
+0x555a 021691 arg mouse_low_voltage_flag ,queue 
+0x555b 021692 branch mouse_enable_function_flag 
+:      021693 mouse_adc_no_low_voltage:
+0x555c 021694 arg mouse_low_voltage_flag ,queue 
+0x555d 021695 call mouse_disable_function_flag 
+0x555e 021696 jam 1 ,mem_adc_low_volatage_led_timer_count 
+0x555f 021697 fetch 1 ,mem_mouse_adc_last_low_voltage_flag 
+0x5560 021698 rtn blank 
+0x5561 021699 jam 0 ,mem_mouse_adc_last_low_voltage_flag 
+0x5562 021700 branch mouse_low_voltage_led_off_judge 
+:      021703 mouse_adc_bat_percent_lowpower_out:
+0x5563 021704 bpatch patch0f_0 ,mem_patch0f 
+0x5564 021705 ifetch 8 ,rega 
+0x5565 021706 store 8 ,mem_pdatatemp 
+0x5566 021707 fetch 1 ,mem_adc_mux_status 
+0x5567 021708 beq mouse_adc_check_battery_only ,mouse_adc_bat_percent_lowpower_out_battery 
+0x5568 021709 beq mouse_adc_check_gpio_multiple ,mouse_adc_bat_percent_lowpower_out_battery 
+0x5569 021710 beq mouse_adc_check_hvin_multiple ,mouse_adc_bat_percent_lowpower_out_hvin_multiple 
+:      021711 mouse_adc_bat_percent_lowpower_out_battery:
+0x556a 021712 call adc_clear_no_power_flag 
+0x556b 021713 call adc_clear_low_power_flag 
+0x556c 021714 fetch 2 ,mem_pdatatemp + 6 
+0x556d 021715 fetcht 2 ,mem_pdatatemp + 2 
+0x556e 021716 isub temp ,null 
+0x556f 021717 ncall adc_set_no_power_flag ,positive 
+0x5570 021718 fetcht 2 ,mem_pdatatemp + 4 
+0x5571 021719 isub temp ,null 
+0x5572 021720 ncall adc_set_low_power_flag ,positive 
+:      021721 mouse_adc_bat_level_set:
+0x5573 021722 fetch 2 ,mem_pdatatemp + 6 
+0x5574 021723 fetcht 2 ,mem_pdatatemp 
+0x5575 021724 isub temp ,null 
+0x5576 021725 branch mouse_adc_bat_level_100_percent ,positive 
+0x5577 021726 fetcht 2 ,mem_pdatatemp + 2 
+0x5578 021727 isub temp ,pdata 
+0x5579 021728 nbranch mouse_adc_bat_level_0_percent ,positive 
+0x557a 021729 branch mouse_adc_bat_level_0_percent ,blank 
+0x557b 021730 mul32 pdata ,100 ,rega 
+0x557c 021731 fetch 2 ,mem_pdatatemp 
+0x557d 021732 fetcht 2 ,mem_pdatatemp + 2 
+0x557e 021733 isub temp ,temp 
+0x557f 021734 copy rega ,pdata 
+0x5580 021735 idiv temp 
+0x5581 021736 call get_div_result 
+0x5582 021737 store 1 ,mem_le_battery_level_percentage 
+0x5583 021738 rtn 
+:      021740 mouse_adc_bat_level_100_percent:
+0x5584 021741 jam 100 ,mem_le_battery_level_percentage 
+0x5585 021742 rtn 
+:      021743 mouse_adc_bat_level_0_percent:
+0x5586 021744 jam 0 ,mem_le_battery_level_percentage 
+0x5587 021745 rtn 
+:      021747 mouse_adc_bat_percent_lowpower_out_hvin_multiple:
+0x5588 021748 branch mouse_adc_bat_percent_lowpower_out_battery 
+:      021754 mouse_gpio_init:
+0x5589 021755 fetcht 1 ,mem_eeprom_wp_gpio 
+0x558a 021756 call gpio_config_output 
+0x558b 021758 fetcht 1 ,mem_lbutton_gpio 
+0x558c 021759 call mouse_gpio_config_input_pu 
+0x558d 021760 fetcht 1 ,mem_rbutton_gpio 
+0x558e 021761 call mouse_gpio_config_input_pu 
+0x558f 021762 fetcht 1 ,mem_mbutton_gpio 
+0x5590 021763 call mouse_gpio_config_input_pu 
+0x5591 021764 fetcht 1 ,mem_bk_button_gpio 
+0x5592 021765 call mouse_gpio_config_input_pu 
+0x5593 021766 fetcht 1 ,mem_fw_button_gpio 
+0x5594 021767 call mouse_gpio_config_input_pu 
+0x5595 021768 fetcht 1 ,mem_dpi_button_gpio 
+0x5596 021769 call mouse_gpio_config_input_pu 
+0x5597 021771 fetcht 1 ,mem_matrix_public_gpio 
+0x5598 021772 call mouse_gpio_config_input_pu 
+0x5599 021774 fetcht 1 ,mem_config_select_device_button_gpio 
+0x559a 021775 call mouse_gpio_config_input_pu 
+0x559b 021777 fetcht 1 ,mem_customer_key_gpio 
+0x559c 021778 call mouse_gpio_config_input_pu 
+0x559d 021780 fetcht 1 ,mem_whee_a_data_gpio 
+0x559e 021781 call mouse_gpio_config_input_pu 
+0x559f 021783 fetcht 1 ,mem_whee_b_data_gpio 
+0x55a0 021784 call mouse_gpio_config_input_pu 
+0x55a1 021786 fetcht 1 ,mem_whee_ta_data_gpio 
+0x55a2 021787 call mouse_gpio_config_input_pu 
+0x55a3 021788 fetcht 1 ,mem_whee_tb_data_gpio 
+0x55a4 021789 call mouse_gpio_config_input_pu 
+0x55a5 021791 fetcht 1 ,mem_sensor_motion_gpio 
+0x55a6 021792 call mouse_gpio_config_input_pu 
+0x55a7 021794 fetcht 1 ,mem_device_switch_gpio 
+0x55a8 021795 call mouse_gpio_config_input_pu 
+0x55a9 021797 fetcht 1 ,mem_select_sensor_angle_gpio 
+0x55aa 021798 branch mouse_gpio_config_input_pu 
+:      021801 mouse_gpio_set_pupd_by_input:
+0x55ab 021802 sub temp ,ui_button_gpio_disable ,null 
+0x55ac 021803 rtn zero 
+0x55ad 021804 and temp ,0x7f ,queue 
+0x55ae 021805 fetch 4 ,core_gpio_in 
+0x55af 021806 qisolate1 pdata 
+0x55b0 021807 branch mouse_gpio_config_input_pu ,true 
+:      021808 mouse_gpio_config_input_pd:
+0x55b1 021809 sub temp ,ui_button_gpio_disable ,null 
+0x55b2 021810 rtn zero 
+0x55b3 021811 set1 gpio_active_bit ,temp 
+0x55b4 021812 branch gpio_config_input 
+:      021814 mouse_gpio_config_input_pu:
+0x55b5 021815 sub temp ,ui_button_gpio_disable ,null 
+0x55b6 021816 rtn zero 
+0x55b7 021817 set0 gpio_active_bit ,temp 
+0x55b8 021818 branch gpio_config_input 
+:      021820 mouse_gpio_set_high_impedance:
+0x55b9 021821 fetch 3 ,mem_mouse_set_high_impedance_bit_set 
+0x55ba 021822 store 3 ,mem_pdatatemp 
+0x55bb 021823 arg 13 ,loopcnt 
+0x55bc 021824 arg 0 ,temp 
+:      021825 mouse_gpio_set_high_impedance_bit_loop:
+0x55bd 021826 fetch 3 ,mem_pdatatemp 
+0x55be 021827 isolate1 0 ,pdata 
+0x55bf 021828 call gpio_set_high_impedance ,true 
+0x55c0 021829 fetch 3 ,mem_pdatatemp 
+0x55c1 021830 lshift pdata ,pdata 
+0x55c2 021831 store 3 ,mem_pdatatemp 
+0x55c3 021832 increase 1 ,temp 
+0x55c4 021833 loop mouse_gpio_set_high_impedance_bit_loop 
+0x55c5 021834 rtn 
+:      021840 mouse_le_name_modify:
+0x55c6 021841 bpatch patch0f_1 ,mem_patch0f 
+0x55c7 021842 fetch 8 ,mem_le_name_patch 
+0x55c8 021843 rtn blank 
+0x55c9 021844 fetch 1 ,mem_le_name_patch_len 
+0x55ca 021845 copy pdata ,rega 
+0x55cb 021846 sub pdata ,11 ,null 
+0x55cc 021847 nbranch mouse_le_name_patch_len_overflow ,positive 
+0x55cd 021849 call mouse_le_name_clear 
+0x55ce 021851 arg mem_le_adv_swift_pair + 9 ,contw 
+0x55cf 021852 call mouse_le_name_modify_next 
+0x55d0 021854 arg mem_le_scan_data + 2 ,contw 
+0x55d1 021855 call mouse_le_name_modify_next 
+0x55d2 021857 arg mem_le_name ,contw 
+:      021858 mouse_le_name_modify_next:
+0x55d3 021859 arg mem_le_name_patch ,contr 
+0x55d4 021860 copy rega ,loopcnt 
+0x55d5 021861 branch memcpy 
+:      021863 mouse_le_name_clear:
+0x55d6 021864 arg mem_le_adv_swift_pair + 9 ,contw 
+0x55d7 021865 call mouse_le_name_clear_next 
+0x55d8 021867 arg mem_le_scan_data + 2 ,contw 
+0x55d9 021868 call mouse_le_name_clear_next 
+0x55da 021870 arg mem_le_name ,contw 
+:      021871 mouse_le_name_clear_next:
+0x55db 021872 arg 11 ,loopcnt 
+0x55dc 021873 branch clear_mem 
+:      021875 mouse_le_name_patch_len_overflow:
+0x55dd 021876 call mouse_le_swift_pair_disable 
+0x55de 021878 fetch 1 ,mem_le_name_patch_len 
+0x55df 021879 increase 1 ,pdata 
+0x55e0 021880 store 1 ,mem_le_adv_swift_pair 
+0x55e1 021881 jam 9 ,mem_le_adv_swift_pair + 1 
+0x55e2 021882 arg mem_le_name_patch ,contr 
+0x55e3 021883 arg mem_le_adv_swift_pair + 2 ,contw 
+0x55e4 021884 copy rega ,loopcnt 
+0x55e5 021885 call memcpy 
+0x55e6 021887 fetch 1 ,mem_le_name_patch_len 
+0x55e7 021888 increase 1 ,pdata 
+0x55e8 021889 store 1 ,mem_le_scan_data 
+0x55e9 021890 jam 9 ,mem_le_scan_data + 1 
+0x55ea 021891 arg mem_le_name_patch ,contr 
+0x55eb 021892 arg mem_le_scan_data + 2 ,contw 
+0x55ec 021893 copy rega ,loopcnt 
+0x55ed 021894 call memcpy 
+0x55ee 021896 arg mem_le_name_patch_len ,contr 
+0x55ef 021897 arg mem_le_name_len ,contw 
+0x55f0 021898 copy rega ,loopcnt 
+0x55f1 021899 increase 1 ,loopcnt 
+0x55f2 021900 branch memcpy 
+:      021902 mouse_le_swift_pair_disable:
+0x55f3 021903 arg mem_le_adv_swift_pair ,contw 
+0x55f4 021904 arg 20 ,loopcnt 
+0x55f5 021905 branch clear_mem 
+:      021911 mouse_sensor_spi_init:
+0x55f6 021912 call mouse_spid_init_pin 
+0x55f7 021913 jam 0x73 ,mem_spi_init_clk 
+0x55f8 021915 call mouse_spi_init 
+0x55f9 021916 branch twspi_enable 
+:      021918 mouse_spi_write_flash_cb:
+:      021919 mouse_spi_init:
+0x55fa 021920 branch spid_init 
+:      021922 mouse_spid_init_pin:
+0x55fb 021923 fetch 1 ,mem_mouse_sensor_sclk_gpio 
+0x55fc 021924 arg gpcfg_spid_sck ,temp 
+0x55fd 021925 call gpio_config_function_int 
+0x55fe 021926 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+0x55ff 021927 arg gpcfg_spid_sdio ,temp 
+0x5600 021928 branch gpio_config_function_int 
+:      021933 mouse_motion:
+0x5601 021934 bpatch patch0f_2 ,mem_patch0f 
+0x5602 021935 disable user 
+0x5603 021936 setarg 0 
+0x5604 021937 store 6 ,mem_mouse_x 
+0x5605 021938 call mouse_check_sensor_data 
+0x5606 021939 setarg 0x0089 
+0x5607 021940 call twspi_write 
+0x5608 021941 call mouse_setting_sensor_type 
+0x5609 021942 call mouse_zwheel 
+0x560a 021943 call mouse_t_zwheel 
+0x560b 021944 call mouse_key 
+0x560c 021945 fetch 1 ,mem_mouse_key 
+0x560d 021946 and_into 0x1f ,pdata 
+0x560e 021947 store 1 ,mem_mouse_key 
+0x560f 021948 nbranch mouse_drawing_optima_init ,user 
+0x5610 021949 call mouse_drawing_optima 
+0x5611 021950 branch mouse_no_data_timer_init 
+:      021954 mouse_zwheel:
+0x5612 021955 fetch 1 ,mem_mouse_z_data 
+0x5613 021956 rtn blank 
+0x5614 021957 store 1 ,mem_mouse_z 
+0x5615 021958 jam 0 ,mem_mouse_z_data 
+0x5616 021959 branch enable_user 
+:      021961 mouse_t_zwheel:
+0x5617 021962 fetch 1 ,mem_mouse_tz_data 
+0x5618 021963 rtn blank 
+0x5619 021964 store 1 ,mem_mouse_tz 
+0x561a 021965 jam 0 ,mem_mouse_tz_data 
+0x561b 021966 branch enable_user 
+:      021968 mouse_wheel_check:
+0x561c 021969 call mouse_t_wheel_scan 
+0x561d 021970 call mouse_wheel_scan 
+0x561e 021971 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x561f 021972 fetcht 1 ,mem_wheel_tb_old_pinlevel 
+0x5620 021973 store 1 ,mem_wheel_tb_old_pinlevel 
+0x5621 021974 isub temp ,null 
+0x5622 021975 nbranch app_lpm_wake_auto_lock ,zero 
+0x5623 021976 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x5624 021977 fetcht 1 ,mem_mwheel_b_old_pinlevel 
+0x5625 021978 store 1 ,mem_mwheel_b_old_pinlevel 
+0x5626 021979 isub temp ,null 
+0x5627 021980 nbranch app_lpm_wake_auto_lock ,zero 
+0x5628 021981 rtn 
+:      021982 mouse_t_wheel_scan:
+0x5629 021983 fetch 1 ,mem_whee_ta_data_gpio 
+0x562a 021984 rtneq gpio_disable 
+0x562b 021985 arg 0 ,rega 
+0x562c 021986 fetcht 1 ,mem_whee_ta_data_gpio 
+0x562d 021987 call gpio_get_bit 
+0x562e 021988 setflag true ,0 ,rega 
+0x562f 021989 fetcht 1 ,mem_whee_tb_data_gpio 
+0x5630 021990 call gpio_get_bit 
+0x5631 021991 setflag true ,1 ,rega 
+0x5632 021992 copy rega ,pdata 
+0x5633 021993 store 1 ,mem_wheel_tb_new_pinlevel 
+0x5634 021994 beq 0x01 ,mouse_t_wheel_scan_judge1 
+0x5635 021995 beq 0x02 ,mouse_t_wheel_scan_judge2 
+0x5636 021996 fetch 1 ,mem_wheel_tog 
+0x5637 021997 bbit1 7 ,mouse_t_wheel_scan_judge3 
+0x5638 021998 rtn 
+:      022000 mouse_t_wheel_scan_judge1:
+0x5639 022001 fetch 1 ,mem_wheel_tb_old_pinlevel 
+0x563a 022002 beq 0 ,mouse_t_wheel_scan_judge11 
+0x563b 022003 beq 3 ,mouse_t_wheel_scan_judge12 
+0x563c 022004 rtn 
+:      022005 mouse_t_wheel_scan_judge2:
+0x563d 022006 fetch 1 ,mem_wheel_tb_old_pinlevel 
+0x563e 022007 beq 0 ,mouse_t_wheel_scan_judge21 
+0x563f 022008 beq 3 ,mouse_t_wheel_scan_judge22 
+0x5640 022009 rtn 
+:      022010 mouse_t_wheel_scan_judge11:
+0x5641 022011 jam 0x82 ,mem_wheel_tog 
+0x5642 022012 rtn 
+:      022013 mouse_t_wheel_scan_judge12:
+0x5643 022014 jam 0x81 ,mem_wheel_tog 
+0x5644 022015 rtn 
+:      022016 mouse_t_wheel_scan_judge21:
+0x5645 022017 jam 0x80 ,mem_wheel_tog 
+0x5646 022018 rtn 
+:      022019 mouse_t_wheel_scan_judge22:
+0x5647 022020 jam 0x83 ,mem_wheel_tog 
+0x5648 022021 rtn 
+:      022022 mouse_t_wheel_scan_judge3:
+0x5649 022023 fetch 1 ,mem_wheel_tog 
+0x564a 022024 set0 7 ,pdata 
+0x564b 022025 store 1 ,mem_wheel_tog 
+0x564c 022026 beq 0 ,mouse_t_wheel_scan_judge30 
+0x564d 022027 beq 1 ,mouse_t_wheel_scan_judge31 
+0x564e 022028 beq 2 ,mouse_t_wheel_scan_judge32 
+0x564f 022029 beq 3 ,mouse_t_wheel_scan_judge33 
+0x5650 022030 rtn 
+:      022031 mouse_t_wheel_scan_judge30:
+0x5651 022032 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x5652 022033 beq 3 ,mouse_wheel_t_forward 
+0x5653 022034 rtn 
+:      022035 mouse_t_wheel_scan_judge31:
+0x5654 022036 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x5655 022037 beq 0 ,mouse_wheel_t_forward 
+0x5656 022038 rtn 
+:      022039 mouse_t_wheel_scan_judge32:
+0x5657 022040 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x5658 022041 beq 3 ,mouse_wheel_t_back 
+0x5659 022042 rtn 
+:      022043 mouse_t_wheel_scan_judge33:
+0x565a 022044 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x565b 022045 beq 0 ,mouse_wheel_t_back 
+0x565c 022046 rtn 
+:      022047 mouse_wheel_t_forward:
+0x565d 022048 fetch 1 ,mem_mouse_tz_data 
+0x565e 022049 increase 1 ,pdata 
+0x565f 022050 store 1 ,mem_mouse_tz_data 
+0x5660 022051 rtn 
+:      022052 mouse_wheel_t_back:
+0x5661 022053 fetch 1 ,mem_mouse_tz_data 
+0x5662 022054 increase -1 ,pdata 
+0x5663 022055 store 1 ,mem_mouse_tz_data 
+0x5664 022056 rtn 
+:      022059 mouse_wheel_scan:
+0x5665 022060 fetch 1 ,mem_whee_a_data_gpio 
+0x5666 022061 rtneq gpio_disable 
+0x5667 022062 arg 0 ,rega 
+0x5668 022063 fetcht 1 ,mem_whee_a_data_gpio 
+0x5669 022064 call gpio_get_bit 
+0x566a 022065 setflag true ,0 ,rega 
+0x566b 022066 fetcht 1 ,mem_whee_b_data_gpio 
+0x566c 022067 call gpio_get_bit 
+0x566d 022068 setflag true ,1 ,rega 
+0x566e 022069 copy rega ,pdata 
+0x566f 022070 store 1 ,mem_mwheel_b_new_pinlevel 
+0x5670 022071 beq 0x01 ,mouse_wheel_scan_judge1 
+0x5671 022072 beq 0x02 ,mouse_wheel_scan_judge2 
+0x5672 022073 fetch 1 ,mem_mwheel_tog 
+0x5673 022074 bbit1 7 ,mouse_wheel_scan_judge3 
+0x5674 022075 rtn 
+:      022077 mouse_wheel_scan_judge1:
+0x5675 022078 fetch 1 ,mem_mwheel_b_old_pinlevel 
+0x5676 022079 beq 0 ,mouse_wheel_scan_judge11 
+0x5677 022080 beq 3 ,mouse_wheel_scan_judge12 
+0x5678 022081 rtn 
+:      022082 mouse_wheel_scan_judge2:
+0x5679 022083 fetch 1 ,mem_mwheel_b_old_pinlevel 
+0x567a 022084 beq 0 ,mouse_wheel_scan_judge21 
+0x567b 022085 beq 3 ,mouse_wheel_scan_judge22 
+0x567c 022086 rtn 
+:      022087 mouse_wheel_scan_judge11:
+0x567d 022088 jam 0x82 ,mem_mwheel_tog 
+0x567e 022089 rtn 
+:      022090 mouse_wheel_scan_judge12:
+0x567f 022091 jam 0x81 ,mem_mwheel_tog 
+0x5680 022092 rtn 
+:      022093 mouse_wheel_scan_judge21:
+0x5681 022094 jam 0x80 ,mem_mwheel_tog 
+0x5682 022095 rtn 
+:      022096 mouse_wheel_scan_judge22:
+0x5683 022097 jam 0x83 ,mem_mwheel_tog 
+0x5684 022098 rtn 
+:      022099 mouse_wheel_scan_judge3:
+0x5685 022100 fetch 1 ,mem_mwheel_tog 
+0x5686 022101 set0 7 ,pdata 
+0x5687 022102 store 1 ,mem_mwheel_tog 
+0x5688 022103 beq 0 ,mouse_wheel_scan_judge30 
+0x5689 022104 beq 1 ,mouse_wheel_scan_judge31 
+0x568a 022105 beq 2 ,mouse_wheel_scan_judge32 
+0x568b 022106 beq 3 ,mouse_wheel_scan_judge33 
+0x568c 022107 rtn 
+:      022108 mouse_wheel_scan_judge30:
+0x568d 022109 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x568e 022110 beq 3 ,mouse_wheel_forward 
+0x568f 022111 rtn 
+:      022112 mouse_wheel_scan_judge31:
+0x5690 022113 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x5691 022114 beq 0 ,mouse_wheel_forward 
+0x5692 022115 rtn 
+:      022116 mouse_wheel_scan_judge32:
+0x5693 022117 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x5694 022118 beq 3 ,mouse_wheel_back 
+0x5695 022119 rtn 
+:      022120 mouse_wheel_scan_judge33:
+0x5696 022121 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x5697 022122 beq 0 ,mouse_wheel_back 
+0x5698 022123 rtn 
+:      022124 mouse_wheel_forward:
+0x5699 022125 fetch 1 ,mem_mouse_z_data 
+0x569a 022126 increase 1 ,pdata 
+0x569b 022127 store 1 ,mem_mouse_z_data 
+0x569c 022128 rtn 
+:      022129 mouse_wheel_back:
+0x569d 022130 fetch 1 ,mem_mouse_z_data 
+0x569e 022131 increase -1 ,pdata 
+0x569f 022132 store 1 ,mem_mouse_z_data 
+0x56a0 022133 rtn 
+:      022136 mouse_wheel_gpio_set_wake:
+0x56a1 022137 fetcht 1 ,mem_whee_a_data_gpio 
+0x56a2 022138 call gpio_set_wake_by_current_state 
+0x56a3 022139 fetcht 1 ,mem_whee_b_data_gpio 
+0x56a4 022140 call gpio_set_wake_by_current_state 
+0x56a5 022141 fetcht 1 ,mem_whee_ta_data_gpio 
+0x56a6 022142 call gpio_set_wake_by_current_state 
+0x56a7 022143 fetcht 1 ,mem_whee_tb_data_gpio 
+0x56a8 022144 branch gpio_set_wake_by_current_state 
+:      022146 mouse_before_hibernate_wheel_gpio_set:
+0x56a9 022147 fetcht 1 ,mem_whee_a_data_gpio 
+0x56aa 022148 call mouse_gpio_set_pupd_by_input 
+0x56ab 022149 fetcht 1 ,mem_whee_b_data_gpio 
+0x56ac 022150 call mouse_gpio_set_pupd_by_input 
+0x56ad 022151 fetcht 1 ,mem_whee_ta_data_gpio 
+0x56ae 022152 call mouse_gpio_set_pupd_by_input 
+0x56af 022153 fetcht 1 ,mem_whee_tb_data_gpio 
+0x56b0 022154 branch mouse_gpio_set_pupd_by_input 
+:      022156 mouse_wheel_trigger:
+0x56b1 022157 fetch 2 ,mem_mouse_z 
+0x56b2 022158 rtn blank 
+0x56b3 022159 jam 1 ,mem_mouse_wheel_trigger 
+0x56b4 022160 jam 10 ,mem_mouse_wheel_trigger_timer 
+0x56b5 022161 rtn 
+:      022163 mouse_wheel_trigger_timer:
+0x56b6 022164 arg mem_mouse_wheel_trigger_timer ,regc 
+0x56b7 022165 arg mouse_wheel_trigger_disable ,regb 
+0x56b8 022166 branch timer_single_step 
+:      022167 mouse_wheel_trigger_disable:
+0x56b9 022168 jam 0 ,mem_mouse_wheel_trigger 
+0x56ba 022169 rtn 
+:      022177 mouse_dpi_check:
+0x56bb 022178 fetch 1 ,mem_dpi_button_gpio 
+0x56bc 022179 rtneq gpio_disable 
+0x56bd 022180 arg 0 ,rega 
+0x56be 022181 jam mouse_dpi_key ,mem_mouse_key_temp 
+0x56bf 022182 fetcht 1 ,mem_dpi_button_gpio 
+0x56c0 022183 call mouse_dpi_key_check 
+:      022184 mouse_dpi_check_next:
+0x56c1 022185 store 1 ,mem_mouse_dpikey_press_status 
+0x56c2 022186 fetch 1 ,mem_matrix_public_gpio 
+0x56c3 022187 beq gpio_disable ,mouse_3io6key_dpi_check_end 
+0x56c4 022188 call mouse_matrix_public_gpio_reset 
+:      022189 mouse_dpi_check_exit:
+0x56c5 022190 copy rega ,pdata 
+0x56c6 022191 bbit1 mouse_dpi_key ,mouse_dpi_down 
+0x56c7 022192 branch mouse_dpi_up 
+:      022194 mouse_dpi_key_check:
+0x56c8 022195 fetch mouse_flag_len ,mem_mouse_flag 
+0x56c9 022196 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+0x56ca 022197 fetch 1 ,mem_mouse_dpikey_press_status 
+0x56cb 022198 copy pdata ,regc 
+0x56cc 022199 fetch 1 ,mem_matrix_public_gpio 
+0x56cd 022200 beq gpio_disable ,mouse_3io6key_check 
+:      022201 mouse_dpi_key_check_next:
+0x56ce 022202 fetch 1 ,mem_mouse_ghost_flag 
+0x56cf 022203 nbranch mouse_dpi_check_end ,blank 
+:      022204 mouse_dpi_key_connect_matrix:
+0x56d0 022205 call gpio_get_bit 
+0x56d1 022206 fetcht 1 ,mem_matrix_public_gpio 
+0x56d2 022207 branch mouse_dpi_key_connect_gnd ,true 
+0x56d3 022208 fetcht 1 ,mem_matrix_public_gpio 
+0x56d4 022209 call gpio_out_active 
+0x56d5 022210 fetcht 1 ,mem_dpi_button_gpio 
+0x56d6 022211 fetch 1 ,mem_mouse_dpikey_press_status 
+0x56d7 022212 branch mouse_check_key_connect_gnd 
+:      022214 mouse_3io6key_dpi_check_end:
+0x56d8 022215 fetcht 1 ,mem_dpi_button_gpio 
+0x56d9 022216 call mouse_gpio_config_input_pu 
+0x56da 022217 branch mouse_dpi_check_exit 
+:      022219 mouse_dpi_check_end:
+0x56db 022220 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+0x56dc 022221 jam 0 ,mem_mouse_dpikey_press_status 
+0x56dd 022222 rtn 
+:      022224 mouse_dpi_key_connect_gnd:
+0x56de 022225 fetch 1 ,mem_mouse_dpikey_press_status 
+0x56df 022226 branch mouse_check_key_connect_gnd 
+:      022228 mouse_dpi_down:
+0x56e0 022229 fetch 1 ,mem_mouse_dpi_button_state 
+0x56e1 022230 rtneq dpi_button_state_down 
+0x56e2 022231 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
+0x56e3 022232 fetch mouse_flag_len ,mem_mouse_flag 
+0x56e4 022233 rtnbit1 mouse_enable_select_device_by_dpi_button 
+0x56e5 022234 rtnbit1 mouse_enable_dpi_key_long_press_disconvery 
+0x56e6 022235 branch mouse_dpi_process 
+:      022237 mouse_dpi_up:
+0x56e7 022238 fetch 1 ,mem_mouse_dpi_button_state 
+0x56e8 022239 rtneq dpi_button_state_up 
+0x56e9 022240 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+0x56ea 022241 fetch mouse_flag_len ,mem_mouse_flag 
+0x56eb 022242 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_dpi_up_next 
+0x56ec 022243 bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_dpi_up_next 
+0x56ed 022244 rtn 
+:      022245 mouse_dpi_up_next:
+0x56ee 022246 fetch 1 ,mem_mouse_dpi_long_press_flag 
+0x56ef 022247 nbranch mouse_dpi_up_after_long_press ,blank 
+0x56f0 022248 fetch 1 ,mem_select_device_count 
+0x56f1 022249 ncall mouse_dpi_process ,blank 
+:      022250 mouse_dpi_up_after_long_press:
+0x56f2 022251 jam 0 ,mem_mouse_dpi_long_press_flag 
+0x56f3 022252 fetch 1 ,mem_ui_button_timeout 
+0x56f4 022253 store 1 ,mem_select_device_count 
+0x56f5 022254 store 1 ,mem_bt_discovery_count 
+0x56f6 022255 rtn 
+:      022257 mouse_dpi_process:
+0x56f7 022258 bpatch patch0f_3 ,mem_patch0f 
+0x56f8 022259 call mouse_dpi_ghost_check 
+0x56f9 022260 rtn user 
+0x56fa 022261 fetch 1 ,mem_mouse_dpi 
+0x56fb 022263 copy pdata ,temp 
+0x56fc 022264 fetch mouse_flag_len ,mem_mouse_flag 
+0x56fd 022265 bbit1 mouse_enable_double_dpi_key ,mouse_double_dpi_check 
+0x56fe 022266 copy temp ,pdata 
+0x56ff 022268 increase 1 ,pdata 
+0x5700 022269 and pdata ,0x03 ,pdata 
+:      022270 mouse_dpi_level_store:
+0x5701 022271 store 1 ,mem_mouse_dpi 
+0x5702 022272 call mouse_setting_dpi 
+0x5703 022273 branch mouse_store_dpi_info_check 
+:      022278 mouse_double_dpi_check:
+0x5704 022279 fetch 1 ,mem_dpi_another_button_down_enable 
+0x5705 022280 nbranch mouse_another_dpi_button_down ,blank 
+:      022281 mouse_dpi_increase:
+0x5706 022282 fetch mouse_flag_len ,mem_mouse_flag 
+0x5707 022283 bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_increase_level_4 
+0x5708 022284 copy temp ,pdata 
+0x5709 022285 rtneq mouse_dpi_level2 
+:      022286 mouse_dpi_increase_level:
+0x570a 022287 beq mouse_dpi_level1 ,mouse_dpi_level_3 
+0x570b 022288 beq mouse_dpi_level3 ,mouse_dpi_level_2 
+0x570c 022289 rtn 
+:      022291 mouse_dpi_level_1:
+0x570d 022292 setarg 2 
+0x570e 022293 branch mouse_dpi_level_store 
+:      022294 mouse_dpi_level_2:
+0x570f 022295 setarg 0 
+0x5710 022296 branch mouse_dpi_level_store 
+:      022297 mouse_dpi_level_3:
+0x5711 022298 setarg 1 
+0x5712 022299 branch mouse_dpi_level_store 
+:      022300 mouse_dpi_level_4:
+0x5713 022301 setarg 3 
+0x5714 022302 branch mouse_dpi_level_store 
+:      022304 mouse_dpi_increase_level_4:
+0x5715 022305 copy temp ,pdata 
+0x5716 022306 rtneq mouse_dpi_level2 
+0x5717 022307 beq mouse_dpi_level1 ,mouse_dpi_level_3 
+0x5718 022308 beq mouse_dpi_level3 ,mouse_dpi_level_4 
+0x5719 022309 beq mouse_dpi_level4 ,mouse_dpi_level_2 
+0x571a 022310 rtn 
+:      022311 mouse_dpi_decrease_level_4:
+0x571b 022312 copy temp ,pdata 
+0x571c 022313 rtneq mouse_dpi_level3 
+0x571d 022314 beq mouse_dpi_level1 ,mouse_dpi_level_4 
+0x571e 022315 beq mouse_dpi_level2 ,mouse_dpi_level_2 
+0x571f 022316 beq mouse_dpi_level4 ,mouse_dpi_level_1 
+0x5720 022317 rtn 
+:      022319 mouse_another_dpi_button_down:
+:      022320 mouse_dpi_decrease:
+0x5721 022321 fetch mouse_flag_len ,mem_mouse_flag 
+0x5722 022322 bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_decrease_level_4 
+0x5723 022323 copy temp ,pdata 
+0x5724 022324 rtneq mouse_dpi_level3 
+:      022325 mouse_dpi_decrease_level:
+0x5725 022326 beq mouse_dpi_level1 ,mouse_dpi_level_1 
+0x5726 022327 beq mouse_dpi_level2 ,mouse_dpi_level_2 
+0x5727 022328 rtn 
+:      022333 mouse_dpi_ghost_check:
+0x5728 022334 disable user 
+0x5729 022335 fetch mouse_flag_len ,mem_mouse_flag 
+0x572a 022336 rtnbit1 mouse_enable_dpi_key_connect_gnd 
+0x572b 022337 branch mouse_ghost_key_value_check 
+:      022339 mouse_dpi_key_check_long_press:
+0x572c 022340 fetch mouse_flag_len ,mem_mouse_flag 
+0x572d 022341 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_select_device_by_dpi_button 
+0x572e 022342 bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_discovery_by_dpi_button 
+0x572f 022343 rtn 
+:      022345 mouse_select_device_by_dpi_button:
+0x5730 022346 fetch 1 ,mem_mouse_dpi_button_state 
+0x5731 022347 rtnne dpi_button_state_down 
+0x5732 022348 arg mem_select_device_count ,regc 
+0x5733 022349 arg mouse_ready_reconnection_by_dpi_button ,regb 
+0x5734 022350 branch timer_single_step 
+:      022352 mouse_ready_reconnection_by_dpi_button:
+0x5735 022353 jam 1 ,mem_mouse_dpi_long_press_flag 
+0x5736 022354 branch mouse_ready_reconnection_by_button 
+:      022356 mouse_discovery_by_dpi_button:
+0x5737 022357 fetch 1 ,mem_mouse_dpi_button_state 
+0x5738 022358 rtnne dpi_button_state_down 
+0x5739 022359 arg mem_bt_discovery_count ,regc 
+0x573a 022360 arg mouse_long_dpi_button_bt_discovery ,regb 
+0x573b 022361 branch timer_single_step 
+:      022363 mouse_long_dpi_button_bt_discovery:
+0x573c 022364 jam 1 ,mem_mouse_dpi_long_press_flag 
+0x573d 022365 branch mouse_long_button_bt_discovery 
+:      022367 mouse_setting_dpi_4_level:
+0x573e 022368 fetch mouse_flag_len ,mem_mouse_flag 
+0x573f 022369 rtnbit1 mouse_enable_dpi_level_4 
+0x5740 022370 fetch 1 ,mem_mouse_dpi 
+0x5741 022371 rtnne mouse_dpi_level4 
+0x5742 022372 jam mouse_dpi_level1 ,mem_mouse_dpi 
+0x5743 022373 rtn 
+:      022375 mouse_setting_dpi:
+0x5744 022376 bpatch patch0f_4 ,mem_patch0f 
+0x5745 022377 call mouse_setting_dpi_4_level 
+0x5746 022378 call mouse_dpi_led_blink_delay 
+:      022379 mouse_setting_sensor_type:
+0x5747 022380 bpatch patch0f_5 ,mem_patch0f 
+0x5748 022381 fetch 1 ,mem_config_sensor_type 
+0x5749 022382 beq s201x ,mouse_seting_s201_dpi 
+0x574a 022383 beq p3212 ,mouse_seting_3212_dpi 
+0x574b 022384 beq ka8g2 ,mouse_seting_ka8g2_dpi 
+0x574c 022385 fetch 1 ,mem_mouse_dpi 
+0x574d 022386 beq mouse_dpi_level1 ,mouse_set_cpi0 
+0x574e 022387 beq mouse_dpi_level2 ,mouse_set_cpi1 
+0x574f 022388 beq mouse_dpi_level3 ,mouse_set_cpi2 
+0x5750 022389 beq mouse_dpi_level4 ,mouse_set_cpi3 
+:      022390 mouse_set_cpi1:
+0x5751 022391 fetcht 1 ,mem_320x_dpi_1 
+0x5752 022392 branch mouse_dpi_store 
+:      022393 mouse_set_cpi0:
+0x5753 022394 fetcht 1 ,mem_320x_dpi_0 
+0x5754 022395 branch mouse_dpi_store 
+:      022396 mouse_set_cpi2:
+0x5755 022397 fetcht 1 ,mem_320x_dpi_2 
+0x5756 022398 branch mouse_dpi_store 
+:      022399 mouse_set_cpi3:
+0x5757 022400 fetcht 1 ,mem_320x_dpi_3 
+:      022401 mouse_dpi_store:
+0x5758 022402 fetch 1 ,mem_config_sensor_type 
+0x5759 022403 beq p3065_xy ,mouse_3065xy_set_dpi 
+0x575a 022404 beq mx8650 ,mouse_3065xy_set_dpi 
+0x575b 022405 beq ka8 ,mouse_ka8_set_dpi 
+0x575c 022406 beq p6520 ,mouse_ka8_set_dpi 
+0x575d 022407 beq p8009 ,mouse_3065xy_set_dpi 
+:      022408 mouse_dpi_write:
+0x575e 022409 storet 1 ,mem_mouse_cpi_count 
+0x575f 022410 setarg mouse_dpi_address 
+0x5760 022411 call twspi_read 
+0x5761 022412 and pdata ,0xf8 ,temp 
+0x5762 022413 fetch 1 ,mem_mouse_cpi_count 
+0x5763 022414 iadd temp ,pdata 
+0x5764 022415 lshift8 pdata ,pdata 
+0x5765 022416 add pdata ,mouse_dpi_address ,pdata 
+0x5766 022417 branch twspi_write 
+:      022419 mouse_3065xy_set_dpi:
+0x5767 022420 increase -1 ,temp 
+0x5768 022421 branch mouse_dpi_write 
+:      022423 mouse_ka8_set_dpi:
+0x5769 022424 increase 2 ,temp 
+0x576a 022425 branch mouse_dpi_write 
+:      022427 mouse_seting_s201_dpi:
+0x576b 022428 fetch 1 ,mem_mouse_dpi 
+0x576c 022429 beq mouse_dpi_level1 ,mouse_set_s201_dpi_0 
+0x576d 022430 beq mouse_dpi_level2 ,mouse_set_s201_dpi_2 
+0x576e 022431 beq mouse_dpi_level3 ,mouse_set_s201_dpi_3 
+:      022432 mouse_set_s201_dpi_0:
+0x576f 022433 fetch 1 ,mem_sensor_s201_dpi_0 
+0x5770 022434 copy pdata ,rega 
+0x5771 022435 branch mouse_dpi_s201_store 
+:      022437 mouse_set_s201_dpi_1:
+0x5772 022438 fetch 1 ,mem_sensor_s201_dpi_1 
+0x5773 022439 copy pdata ,rega 
+0x5774 022440 branch mouse_dpi_s201_store 
+:      022442 mouse_set_s201_dpi_2:
+0x5775 022443 fetch 1 ,mem_sensor_s201_dpi_2 
+0x5776 022444 copy pdata ,rega 
+0x5777 022445 branch mouse_dpi_s201_store 
+:      022447 mouse_set_s201_dpi_3:
+0x5778 022448 fetch 1 ,mem_sensor_s201_dpi_3 
+0x5779 022449 copy pdata ,rega 
+0x577a 022450 branch mouse_dpi_s201_store 
+:      022452 mouse_set_s201_dpi_4:
+0x577b 022453 fetch 1 ,mem_sensor_s201_dpi_4 
+0x577c 022454 copy pdata ,rega 
+:      022455 mouse_dpi_s201_store:
+0x577d 022456 setarg 0xc309 
+0x577e 022457 call twspi_write 
+0x577f 022458 copy rega ,pdata 
+0x5780 022459 lshift8 pdata ,pdata 
+0x5781 022460 add pdata ,0x23 ,pdata 
+0x5782 022461 call twspi_write 
+0x5783 022462 setarg 0x0009 
+0x5784 022463 branch twspi_write 
+:      022465 mouse_seting_3212_dpi:
+0x5785 022466 fetch 1 ,mem_mouse_dpi 
+0x5786 022467 beq mouse_dpi_level1 ,mouse_set_p3212_cpi0 
+0x5787 022468 beq mouse_dpi_level2 ,mouse_set_p3212_cpi1 
+0x5788 022469 beq mouse_dpi_level3 ,mouse_set_p3212_cpi2 
+0x5789 022470 beq mouse_dpi_level4 ,mouse_set_p3212_cpi3 
+:      022471 mouse_set_p3212_cpi1:
+0x578a 022472 fetch 1 ,mem_3212_dpi_1 
+0x578b 022473 branch mouse_p3212_dpi 
+:      022474 mouse_set_p3212_cpi0:
+0x578c 022475 fetch 1 ,mem_3212_dpi_0 
+0x578d 022476 branch mouse_p3212_dpi 
+:      022477 mouse_set_p3212_cpi2:
+0x578e 022478 fetch 1 ,mem_3212_dpi_2 
+0x578f 022479 branch mouse_p3212_dpi 
+:      022480 mouse_set_p3212_cpi3:
+0x5790 022481 fetch 1 ,mem_3212_dpi_3 
+:      022482 mouse_p3212_dpi:
+0x5791 022483 store 1 ,mem_mouse_cpi_count 
+0x5792 022484 lshift8 pdata ,pdata 
+0x5793 022485 copy pdata ,rega 
+0x5794 022486 add pdata ,mouse_p3212_dpi_xaddress ,pdata 
+0x5795 022487 call twspi_write 
+0x5796 022488 copy rega ,pdata 
+0x5797 022489 add pdata ,mouse_p3212_dpi_yaddress ,pdata 
+0x5798 022490 branch twspi_write 
+:      022492 mouse_seting_ka8g2_dpi:
+0x5799 022493 fetch 1 ,mem_mouse_dpi 
+0x579a 022494 beq mouse_dpi_level1 ,mouse_set_pka8g2_cpi0 
+0x579b 022495 beq mouse_dpi_level2 ,mouse_set_pka8g2_cpi1 
+0x579c 022496 beq mouse_dpi_level3 ,mouse_set_pka8g2_cpi2 
+0x579d 022497 beq mouse_dpi_level4 ,mouse_set_pka8g2_cpi3 
+:      022498 mouse_set_pka8g2_cpi1:
+0x579e 022499 fetch 1 ,mem_ka8g2_dpi_1 
+0x579f 022500 branch mouse_p3212_dpi 
+:      022502 mouse_set_pka8g2_cpi0:
+0x57a0 022503 fetch 1 ,mem_ka8g2_dpi_0 
+0x57a1 022504 branch mouse_p3212_dpi 
+:      022506 mouse_set_pka8g2_cpi2:
+0x57a2 022507 fetch 1 ,mem_ka8g2_dpi_2 
+0x57a3 022508 branch mouse_p3212_dpi 
+:      022510 mouse_set_pka8g2_cpi3:
+0x57a4 022511 fetch 1 ,mem_ka8g2_dpi_3 
+0x57a5 022512 branch mouse_p3212_dpi 
+:      022520 mouse_key:
+0x57a6 022521 call mouse_check_firekey_gpio 
+0x57a7 022522 fetch 1 ,mem_fire_key_flag 
+0x57a8 022523 nbranch fire_key_press ,blank 
+0x57a9 022524 fetch 1 ,mem_fire_key_status 
+0x57aa 022525 nbranch fire_key_process ,blank 
+0x57ab 022527 call mouse_check_key_gpio 
+0x57ac 022528 call mouse_ghost_key_check 
+0x57ad 022529 call mouse_set_mult 
+0x57ae 022530 call mouse_24g_key 
+0x57af 022531 copy rega ,pdata 
+0x57b0 022532 fetcht 1 ,mem_mouse_key_last 
+0x57b1 022533 store 1 ,mem_mouse_key_last 
+0x57b2 022534 store 1 ,mem_mouse_key 
+0x57b3 022535 ixor temp ,pdata 
+0x57b4 022536 sub pdata ,0 ,null 
+0x57b5 022537 rtn zero 
+0x57b6 022538 branch enable_user 
+:      022540 mouse_24g_key:
+0x57b7 022541 rtnmark0 mark_24g 
+0x57b8 022542 copy rega ,pdata 
+0x57b9 022543 rtn blank 
+0x57ba 022544 store 1 ,mem_mouse_key 
+0x57bb 022545 branch enable_user 
+:      022550 mouse_ghost_key_check:
+0x57bc 022551 jam 0 ,mem_mouse_matrix_key_cow_count 
+0x57bd 022552 jam 0 ,mem_mouse_matrix_key_row_count 
+0x57be 022553 jam 0 ,mem_mouse_ghost_flag 
+0x57bf 022554 copy pdata ,regb 
+0x57c0 022555 fetcht 1 ,mem_lbutton_gpio 
+0x57c1 022556 fetch 1 ,mem_bk_button_gpio 
+0x57c2 022557 isub temp ,null 
+0x57c3 022558 branch mouse_matrix_ghost_key_l_bk ,zero 
+0x57c4 022559 fetch 1 ,mem_fw_button_gpio 
+0x57c5 022560 isub temp ,null 
+0x57c6 022561 branch mouse_matrix_ghost_key_l_fw ,zero 
+0x57c7 022562 fetcht 1 ,mem_mbutton_gpio 
+0x57c8 022563 fetch 1 ,mem_bk_button_gpio 
+0x57c9 022564 isub temp ,null 
+0x57ca 022565 branch mouse_ghost_key_mbk_rfw ,zero 
+0x57cb 022566 branch mouse_ghost_key_mfw_rbk 
+:      022568 mouse_matrix_ghost_key_l_bk:
+0x57cc 022569 fetcht 1 ,mem_mbutton_gpio 
+0x57cd 022570 fetch 1 ,mem_fw_button_gpio 
+0x57ce 022571 isub temp ,null 
+0x57cf 022572 branch mouse_ghost_key_lbk_mfw ,zero 
+0x57d0 022573 branch mouse_ghost_key_lbk_rfw 
+:      022575 mouse_matrix_ghost_key_l_fw:
+0x57d1 022576 fetcht 1 ,mem_mbutton_gpio 
+0x57d2 022577 fetch 1 ,mem_bk_button_gpio 
+0x57d3 022578 isub temp ,null 
+0x57d4 022579 branch mouse_ghost_key_lfw_mbk ,zero 
+0x57d5 022580 branch mouse_ghost_key_lfw_rbk 
+:      022582 mouse_ghost_key_lbk_mfw:
+0x57d6 022583 call mouse_ghost_key_check_l_bk 
+0x57d7 022584 call mouse_ghost_key_check_m_fw 
+0x57d8 022585 branch mouse_ghost_key_check_next 
+:      022587 mouse_ghost_key_lbk_rfw:
+0x57d9 022588 call mouse_ghost_key_check_l_bk 
+0x57da 022589 branch mouse_ghost_key_rfw 
+:      022591 mouse_ghost_key_lfw_mbk:
+0x57db 022592 call mouse_ghost_key_check_l_fw 
+0x57dc 022593 call mouse_ghost_key_check_m_bk 
+0x57dd 022594 branch mouse_ghost_key_check_next 
+:      022596 mouse_ghost_key_lfw_rbk:
+0x57de 022597 call mouse_ghost_key_check_l_fw 
+0x57df 022598 branch mouse_ghost_key_rbk 
+:      022600 mouse_ghost_key_mbk_rfw:
+0x57e0 022601 call mouse_ghost_key_check_m_bk 
+:      022602 mouse_ghost_key_rfw:
+0x57e1 022603 call mouse_ghost_key_check_r_fw 
+0x57e2 022604 branch mouse_ghost_key_check_next 
+:      022606 mouse_ghost_key_mfw_rbk:
+0x57e3 022607 call mouse_ghost_key_check_m_fw 
+:      022608 mouse_ghost_key_rbk:
+0x57e4 022609 call mouse_ghost_key_check_r_bk 
+:      022610 mouse_ghost_key_check_next:
+0x57e5 022611 call mouse_ghost_key_check_bk_fw 
+0x57e6 022612 call mouse_ghost_key_check_lmr 
+0x57e7 022613 fetch 1 ,mem_mouse_matrix_key_row_count 
+0x57e8 022614 rtn blank 
+0x57e9 022615 fetch 1 ,mem_mouse_matrix_key_cow_count 
+0x57ea 022616 rtn blank 
+0x57eb 022617 jam 1 ,mem_mouse_ghost_flag 
+0x57ec 022618 fetch 1 ,mem_mouse_key_last 
+0x57ed 022619 copy pdata ,rega 
+0x57ee 022620 rtn 
+:      022622 mouse_ghost_key_check_l_bk:
+0x57ef 022623 and regb ,mouse_l_bk_button ,pdata 
+0x57f0 022624 beq mouse_l_bk_button ,mouse_matrix_cow_more_than_one_key 
+0x57f1 022625 rtn 
+:      022626 mouse_ghost_key_check_m_bk:
+0x57f2 022627 and regb ,mouse_l_bk_button ,pdata 
+0x57f3 022628 beq mouse_m_bk_button ,mouse_matrix_cow_more_than_one_key 
+0x57f4 022629 rtn 
+:      022630 mouse_ghost_key_check_r_bk:
+0x57f5 022631 and regb ,mouse_l_bk_button ,pdata 
+0x57f6 022632 beq mouse_r_bk_button ,mouse_matrix_cow_more_than_one_key 
+0x57f7 022633 rtn 
+:      022634 mouse_ghost_key_check_l_fw:
+0x57f8 022635 and regb ,mouse_l_bk_button ,pdata 
+0x57f9 022636 beq mouse_l_fw_button ,mouse_matrix_cow_more_than_one_key 
+0x57fa 022637 rtn 
+:      022638 mouse_ghost_key_check_m_fw:
+0x57fb 022639 and regb ,mouse_m_fw_button ,pdata 
+0x57fc 022640 beq mouse_m_fw_button ,mouse_matrix_cow_more_than_one_key 
+0x57fd 022641 rtn 
+:      022642 mouse_ghost_key_check_r_fw:
+0x57fe 022643 and regb ,mouse_m_fw_button ,pdata 
+0x57ff 022644 beq mouse_r_fw_button ,mouse_matrix_cow_more_than_one_key 
+0x5800 022645 rtn 
+:      022647 mouse_ghost_key_check_bk_fw:
+0x5801 022648 and regb ,mouse_bk_fw_button ,pdata 
+0x5802 022649 beq mouse_bk_fw_button ,mouse_matrix_row_more_than_one_key 
+0x5803 022650 rtn 
+:      022652 mouse_ghost_key_check_lmr:
+0x5804 022653 and temp ,mouse_lmr_button ,pdata 
+0x5805 022654 beq mouse_lr_button ,mouse_matrix_row_more_than_one_key 
+0x5806 022655 beq mouse_lm_button ,mouse_matrix_row_more_than_one_key 
+0x5807 022656 beq mouse_rm_button ,mouse_matrix_row_more_than_one_key 
+0x5808 022657 beq mouse_lmr_button ,mouse_matrix_row_more_than_one_key 
+0x5809 022658 rtn 
+:      022661 mouse_matrix_row_more_than_one_key:
+0x580a 022662 jam 1 ,mem_mouse_matrix_key_row_count 
+0x580b 022663 rtn 
+:      022665 mouse_matrix_cow_more_than_one_key:
+0x580c 022666 jam 1 ,mem_mouse_matrix_key_cow_count 
+0x580d 022667 rtn 
+:      022675 mouse_dpi_another_gpio_check:
+0x580e 022676 fetch mouse_flag_len ,mem_mouse_flag 
+0x580f 022677 rtnbit0 mouse_enable_double_dpi_key 
+0x5810 022678 bbit0 mouse_enable_another_dpi_key_connect_gnd ,mouse_dpi_another_gpio_connect_vin_check 
+:      022679 mouse_dpi_another_gpio_connect_gnd_check:
+0x5811 022680 fetch 1 ,mem_dpi_another_button_gpio 
+0x5812 022681 call mouse_gpio_config_output_high 
+0x5813 022682 call mouse_dpi_another_check 
+0x5814 022683 fetcht 1 ,mem_dpi_another_button_gpio 
+0x5815 022684 branch mouse_gpio_config_input_pu 
+:      022686 mouse_dpi_another_gpio_connect_vin_check:
+0x5816 022687 fetch 1 ,mem_dpi_another_button_gpio 
+0x5817 022688 call mouse_gpio_config_output_low 
+0x5818 022689 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+0x5819 022690 fetcht 1 ,mem_dpi_another_button_gpio 
+0x581a 022691 fetch 1 ,mem_dpi_another_press_status 
+0x581b 022692 call mouse_check_key_connect_vin_new 
+0x581c 022693 call mouse_dpi_another_state_check 
+0x581d 022694 fetcht 1 ,mem_dpi_another_button_gpio 
+0x581e 022695 branch mouse_gpio_config_input_pu 
+:      022697 mouse_dpi_another_down_new:
+0x581f 022698 call mouse_gpio_config_input_pu 
+0x5820 022699 fetch 1 ,mem_dpi_another_button_state 
+0x5821 022700 rtneq dpi_button_state_down 
+0x5822 022701 jam dpi_button_state_down ,mem_dpi_another_button_state 
+0x5823 022702 branch mouse_dpi_process 
+:      022704 mouse_dpi_another_check:
+0x5824 022705 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+0x5825 022706 fetcht 1 ,mem_dpi_another_button_gpio 
+0x5826 022707 fetch 1 ,mem_dpi_another_press_status 
+0x5827 022708 call mouse_check_key_connect_gnd_new 
+:      022709 mouse_dpi_another_state_check:
+0x5828 022710 store 1 ,mem_dpi_another_press_status 
+0x5829 022711 fetch 1 ,mem_dpi_another_button_down_enable 
+0x582a 022712 branch mouse_dpi_another_up ,blank 
+:      022713 mouse_dpi_another_down:
+0x582b 022714 fetch 1 ,mem_dpi_another_button_state 
+0x582c 022715 rtneq dpi_button_state_down 
+0x582d 022716 jam dpi_button_state_down ,mem_dpi_another_button_state 
+0x582e 022717 branch mouse_dpi_process 
+:      022719 mouse_dpi_another_up:
+0x582f 022720 fetch 1 ,mem_dpi_another_button_state 
+0x5830 022721 rtneq dpi_button_state_up 
+0x5831 022722 jam dpi_button_state_up ,mem_dpi_another_button_state 
+0x5832 022723 rtn 
+:      022725 mouse_check_key_connect_gnd_new:
+0x5833 022726 lshift pdata ,pdata 
+0x5834 022727 copy pdata ,regb 
+0x5835 022728 call gpio_get_bit 
+0x5836 022729 setflag true ,0 ,regb 
+0x5837 022730 and regb ,0x07 ,pdata 
+0x5838 022731 fetcht 1 ,mem_mouse_key_temp_patch 
+0x5839 022732 copy temp ,queue 
+0x583a 022733 beq 0x07 ,mouse_another_dpi_key_press 
+0x583b 022734 beq 0x00 ,mouse_another_dpi_key_release 
+0x583c 022735 rtn 
+:      022737 mouse_check_key_connect_vin_new:
+0x583d 022738 lshift pdata ,pdata 
+0x583e 022739 copy pdata ,regb 
+0x583f 022740 call mouse_gpio_config_input_pd 
+0x5840 022741 call gpio_get_bit 
+0x5841 022742 setflag true ,0 ,regb 
+0x5842 022743 and regb ,0x07 ,pdata 
+0x5843 022744 fetcht 1 ,mem_mouse_key_temp_patch 
+0x5844 022745 copy temp ,queue 
+0x5845 022746 beq 0x07 ,mouse_another_dpi_key_press 
+0x5846 022747 beq 0x00 ,mouse_another_dpi_key_release 
+0x5847 022748 rtn 
+:      022750 mouse_another_dpi_key_press:
+0x5848 022751 jam 1 ,mem_dpi_another_button_down_enable 
+0x5849 022752 rtn 
+:      022753 mouse_another_dpi_key_release:
+0x584a 022754 jam 0 ,mem_dpi_another_button_down_enable 
+0x584b 022755 rtn 
+:      022763 mouse_check_firekey_gpio:
+0x584c 022764 arg 0 ,regb 
+0x584d 022765 fetch 1 ,mem_firebutton_gpio 
+0x584e 022766 rtneq gpio_disable 
+0x584f 022767 fetch mouse_flag_len ,mem_mouse_flag 
+0x5850 022768 bbit0 mouse_enable_fire_key_connect_gnd ,mouse_check_firekey_connect_vin 
+:      022769 mouse_check_firekey_connect_gnd:
+0x5851 022770 fetcht 1 ,mem_firebutton_gpio 
+0x5852 022771 call mouse_gpio_config_input_pu 
+0x5853 022772 fetcht 1 ,mem_firebutton_gpio 
+0x5854 022773 call gpio_get_bit 
+0x5855 022774 setflag true ,0 ,regb 
+:      022775 mouse_firekey_state_store:
+0x5856 022776 copy regb ,pdata 
+0x5857 022777 store 1 ,mem_fire_key_flag 
+0x5858 022778 rtn 
+:      022780 mouse_check_firekey_connect_vin:
+0x5859 022781 fetcht 1 ,mem_firebutton_gpio 
+0x585a 022782 call mouse_gpio_config_input_pd 
+0x585b 022783 fetcht 1 ,mem_firebutton_gpio 
+0x585c 022784 call gpio_get_bit 
+0x585d 022785 nsetflag true ,0 ,regb 
+0x585e 022786 branch mouse_firekey_state_store 
+:      022788 fire_key_process:
+0x585f 022789 beq 4 ,fire_key_process_end 
+:      022790 fire_key_press:
+0x5860 022791 call firekey_clkn_bt_timer_check 
+0x5861 022792 fetch 4 ,mem_fire_key_delay 
+0x5862 022793 arg 0xa0 ,temp 
+0x5863 022794 iadd temp ,temp 
+0x5864 022795 copy clkn_bt ,pdata 
+0x5865 022796 isub temp ,null 
+0x5866 022797 nrtn positive 
+0x5867 022798 store 4 ,mem_fire_key_delay 
+0x5868 022799 fetch 1 ,mem_fire_key_status 
+0x5869 022800 beq 0 ,fire_key_process_start 
+0x586a 022801 beq 1 ,fire_key_process_release1 
+0x586b 022802 beq 2 ,fire_key_process_start2 
+0x586c 022803 beq 3 ,fire_key_process_release2 
+0x586d 022804 rtn 
+:      022806 fire_key_process_start:
+0x586e 022807 jam 1 ,mem_fire_key_status 
+:      022808 fire_key_down:
+0x586f 022809 jam 1 ,mem_mouse_key 
+0x5870 022810 branch enable_user 
+:      022812 fire_key_process_release1:
+0x5871 022813 jam 2 ,mem_fire_key_status 
+:      022814 fire_key_release:
+0x5872 022815 jam 0 ,mem_mouse_key 
+0x5873 022816 branch enable_user 
+:      022818 fire_key_process_start2:
+0x5874 022819 jam 3 ,mem_fire_key_status 
+0x5875 022820 branch fire_key_down 
+:      022822 fire_key_process_release2:
+0x5876 022823 jam 0 ,mem_fire_key_status 
+0x5877 022824 branch fire_key_release 
+:      022826 fire_key_process_end:
+0x5878 022827 jam 0 ,mem_fire_key_status 
+0x5879 022828 jam 0 ,mem_mouse_key 
+0x587a 022829 rtn 
+:      022831 firekey_clkn_bt_timer_check:
+0x587b 022832 fetcht 4 ,mem_fire_key_delay 
+0x587c 022833 copy clkn_bt ,pdata 
+0x587d 022834 isub temp ,null 
+0x587e 022835 ncall firekey_clkn_bt_timer_timeout ,positive 
+0x587f 022836 rtn 
+:      022837 firekey_clkn_bt_timer_timeout:
+0x5880 022838 setarg 0 
+0x5881 022839 store 4 ,mem_fire_key_delay 
+0x5882 022840 rtn 
+:      022848 mouse_key_check_once:
+0x5883 022849 call mouse_check_key_gpio_once 
+0x5884 022850 call mouse_check_key_gpio 
+0x5885 022851 setarg 0x00 
+0x5886 022852 store 3 ,mem_mouse_lkey_press_status 
+0x5887 022853 rtn 
+:      022855 mouse_check_key_gpio:
+0x5888 022856 bpatch patch0f_6 ,mem_patch0f 
+0x5889 022857 fetch 1 ,mem_sensor_shutdown_flag 
+0x588a 022858 ncall mouse_check_key_gpio_once ,blank 
+0x588b 022859 arg 0 ,rega 
+0x588c 022860 call mouse_check_lkey_gpio 
+0x588d 022861 call mouse_check_rkey_gpio 
+0x588e 022862 call mouse_check_mkey_gpio 
+0x588f 022863 call mouse_check_bkkey_gpio 
+0x5890 022864 call mouse_check_fwkey_gpio 
+0x5891 022865 call mouse_check_firekey_gpio 
+0x5892 022866 call mouse_check_customerkey_gpio 
+0x5893 022867 copy rega ,pdata 
+0x5894 022868 rtn 
+:      022870 mouse_check_key_gpio_once:
+0x5895 022871 setarg 0x030303 
+0x5896 022872 store 3 ,mem_mouse_lkey_press_status 
+0x5897 022873 rtn 
+:      022875 mouse_check_lkey_gpio:
+0x5898 022876 fetch 1 ,mem_lbutton_gpio 
+0x5899 022877 call mouse_gpio_config_output_high 
+0x589a 022878 jam mouse_l_key ,mem_mouse_key_temp 
+0x589b 022879 fetcht 1 ,mem_lbutton_gpio 
+0x589c 022880 fetch 1 ,mem_mouse_lkey_press_status 
+0x589d 022881 call mouse_check_key_connect_gnd 
+0x589e 022882 store 1 ,mem_mouse_lkey_press_status 
+0x589f 022883 fetcht 1 ,mem_lbutton_gpio 
+0x58a0 022884 branch mouse_gpio_config_input_pu 
+:      022886 mouse_check_rkey_gpio:
+0x58a1 022887 fetch 1 ,mem_rbutton_gpio 
+0x58a2 022888 call mouse_gpio_config_output_high 
+0x58a3 022889 jam mouse_r_key ,mem_mouse_key_temp 
+0x58a4 022890 fetcht 1 ,mem_rbutton_gpio 
+0x58a5 022891 fetch 1 ,mem_mouse_rkey_press_status 
+0x58a6 022892 call mouse_check_key_connect_gnd 
+0x58a7 022893 store 1 ,mem_mouse_rkey_press_status 
+0x58a8 022894 fetcht 1 ,mem_rbutton_gpio 
+0x58a9 022895 branch mouse_gpio_config_input_pu 
+:      022897 mouse_check_mkey_gpio:
+0x58aa 022898 fetch 1 ,mem_mbutton_gpio 
+0x58ab 022899 call mouse_gpio_config_output_high 
+0x58ac 022900 jam mouse_m_key ,mem_mouse_key_temp 
+0x58ad 022901 fetcht 1 ,mem_mbutton_gpio 
+0x58ae 022902 fetch 1 ,mem_mouse_mkey_press_status 
+0x58af 022903 call mouse_check_key_connect_gnd 
+0x58b0 022904 store 1 ,mem_mouse_mkey_press_status 
+0x58b1 022905 fetcht 1 ,mem_mbutton_gpio 
+0x58b2 022906 branch mouse_gpio_config_input_pu 
+:      022908 mouse_check_bkkey_gpio:
+0x58b3 022909 fetch 1 ,mem_bk_button_gpio 
+0x58b4 022910 rtneq gpio_disable 
+0x58b5 022911 jam mouse_bk_key ,mem_mouse_key_temp 
+0x58b6 022912 fetch 1 ,mem_mouse_bkkey_press_status 
+0x58b7 022913 copy pdata ,regc 
+0x58b8 022914 fetcht 1 ,mem_bk_button_gpio 
+0x58b9 022915 fetch 1 ,mem_matrix_public_gpio 
+0x58ba 022916 beq gpio_disable ,mouse_3io6key_bk_check 
+0x58bb 022917 call gpio_get_bit 
+0x58bc 022918 branch mouse_check_bk_button_connect_gnd ,true 
+0x58bd 022919 fetcht 1 ,mem_matrix_public_gpio 
+0x58be 022920 call gpio_out_active 
+0x58bf 022921 fetcht 1 ,mem_bk_button_gpio 
+0x58c0 022922 fetch 1 ,mem_mouse_bkkey_press_status 
+0x58c1 022923 call mouse_check_key_connect_gnd 
+:      022924 mouse_check_bkkey_gpio_end:
+0x58c2 022925 store 1 ,mem_mouse_bkkey_press_status 
+0x58c3 022926 branch mouse_matrix_public_gpio_reset 
+:      022928 mouse_check_bk_button_connect_gnd:
+0x58c4 022929 fetcht 1 ,mem_matrix_public_gpio 
+0x58c5 022930 fetch 1 ,mem_mouse_bkkey_press_status 
+0x58c6 022931 call mouse_check_key_connect_gnd 
+0x58c7 022932 branch mouse_check_bkkey_gpio_end 
+:      022934 mouse_3io6key_bk_check:
+0x58c8 022935 fetch 1 ,mem_bk_button_gpio 
+0x58c9 022936 call mouse_gpio_config_output_low 
+0x58ca 022937 fetcht 1 ,mem_bk_button_gpio 
+0x58cb 022938 call mouse_3io6key_check 
+0x58cc 022939 store 1 ,mem_mouse_bkkey_press_status 
+0x58cd 022940 fetcht 1 ,mem_bk_button_gpio 
+0x58ce 022941 branch mouse_gpio_config_input_pu 
+:      022944 mouse_check_fwkey_gpio:
+0x58cf 022945 fetch 1 ,mem_fw_button_gpio 
+0x58d0 022946 rtneq gpio_disable 
+0x58d1 022947 jam mouse_fw_key ,mem_mouse_key_temp 
+0x58d2 022948 fetch 1 ,mem_mouse_fwkey_press_status 
+0x58d3 022949 copy pdata ,regc 
+0x58d4 022950 fetcht 1 ,mem_fw_button_gpio 
+0x58d5 022951 fetch 1 ,mem_matrix_public_gpio 
+0x58d6 022952 beq gpio_disable ,mouse_3io6key_fw_check 
+0x58d7 022953 call gpio_get_bit 
+0x58d8 022954 branch mouse_check_fw_button_connect_gnd ,true 
+0x58d9 022955 fetcht 1 ,mem_matrix_public_gpio 
+0x58da 022956 call gpio_out_active 
+0x58db 022957 fetcht 1 ,mem_fw_button_gpio 
+0x58dc 022958 fetch 1 ,mem_mouse_fwkey_press_status 
+0x58dd 022959 call mouse_check_key_connect_gnd 
+:      022960 mouse_check_fwkey_gpio_end:
+0x58de 022961 store 1 ,mem_mouse_fwkey_press_status 
+:      022962 mouse_matrix_public_gpio_reset:
+0x58df 022963 fetcht 1 ,mem_matrix_public_gpio 
+0x58e0 022964 branch mouse_gpio_config_input_pu 
+:      022966 mouse_check_fw_button_connect_gnd:
+0x58e1 022967 fetcht 1 ,mem_matrix_public_gpio 
+0x58e2 022968 fetch 1 ,mem_mouse_fwkey_press_status 
+0x58e3 022969 call mouse_check_key_connect_gnd 
+0x58e4 022970 branch mouse_check_fwkey_gpio_end 
+:      022972 mouse_3io6key_fw_check:
+0x58e5 022973 fetch 1 ,mem_fw_button_gpio 
+0x58e6 022974 call mouse_gpio_config_output_low 
+0x58e7 022975 fetcht 1 ,mem_fw_button_gpio 
+0x58e8 022976 call mouse_3io6key_check 
+0x58e9 022977 store 1 ,mem_mouse_fwkey_press_status 
+0x58ea 022978 fetcht 1 ,mem_fw_button_gpio 
+0x58eb 022979 branch mouse_gpio_config_input_pu 
+:      022981 mouse_check_customerkey_gpio:
+0x58ec 022982 jam 0 ,mem_customer_key 
+0x58ed 022983 fetch 1 ,mem_customer_key_gpio 
+0x58ee 022984 rtneq gpio_disable 
+0x58ef 022985 fetch mouse_flag_len ,mem_mouse_flag 
+0x58f0 022986 rtnbit0 mouse_enable_keyboard 
+0x58f1 022987 bbit1 mouse_enable_customer_key_connect_vin_or_matrix ,mouse_customer_key_connect_vin 
+:      022988 mouse_customer_key_connect_gnd:
+0x58f2 022989 jam mouse_customer_key ,mem_mouse_key_temp 
+0x58f3 022990 fetcht 1 ,mem_customer_key_gpio 
+0x58f4 022991 fetch 1 ,mem_mouse_customerkey_press_status 
+0x58f5 022992 call mouse_check_key_connect_gnd 
+0x58f6 022993 store 1 ,mem_mouse_customerkey_press_status 
+:      022994 mouse_check_customerkey_gpio_next:
+0x58f7 022995 copy rega ,pdata 
+0x58f8 022996 bbit1 mouse_customer_key ,mouse_customerkey_press 
+0x58f9 022997 call mouse_customerkey_release 
+:      022998 mouse_check_customerkey_gpio_exit:
+0x58fa 022999 fetch 1 ,mem_customer_data_trigger 
+0x58fb 023000 store 1 ,mem_customer_data_trigger_last 
+0x58fc 023001 rtn 
+:      023003 mouse_customer_key_connect_vin:
+0x58fd 023004 jam mouse_customer_key ,mem_mouse_key_temp 
+0x58fe 023005 fetch 1 ,mem_mouse_customerkey_press_status 
+0x58ff 023006 copy pdata ,regc 
+0x5900 023007 fetcht 1 ,mem_customer_key_gpio 
+0x5901 023008 fetch 1 ,mem_matrix_public_gpio 
+0x5902 023009 beq gpio_disable ,mouse_3io6key_customer_key_check_vin 
+0x5903 023010 call gpio_get_bit 
+0x5904 023011 branch mouse_check_customer_button_connect_gnd ,true 
+0x5905 023012 fetcht 1 ,mem_matrix_public_gpio 
+0x5906 023013 call gpio_out_active 
+0x5907 023014 fetcht 1 ,mem_customer_key_gpio 
+0x5908 023015 fetch 1 ,mem_mouse_customerkey_press_status 
+0x5909 023016 call mouse_check_key_connect_gnd 
+0x590a 023017 branch mouse_check_customerkey_gpio_over 
+:      023019 mouse_check_customer_button_connect_gnd:
+0x590b 023020 fetcht 1 ,mem_matrix_public_gpio 
+0x590c 023021 fetch 1 ,mem_mouse_customerkey_press_status 
+0x590d 023022 call mouse_check_key_connect_gnd 
+0x590e 023023 branch mouse_check_customerkey_gpio_over 
+:      023025 mouse_3io6key_customer_key_check_vin:
+0x590f 023026 fetch 1 ,mem_customer_key_gpio 
+0x5910 023027 call mouse_gpio_config_output_low 
+0x5911 023028 fetcht 1 ,mem_customer_key_gpio 
+0x5912 023029 call mouse_3io6key_check 
+:      023030 mouse_check_customerkey_gpio_over:
+0x5913 023031 store 1 ,mem_mouse_customerkey_press_status 
+0x5914 023032 call mouse_check_customerkey_gpio_next 
+0x5915 023033 fetcht 1 ,mem_customer_key_gpio 
+0x5916 023034 branch mouse_gpio_config_input_pu 
+:      023037 mouse_customerkey_press:
+0x5917 023038 jam 1 ,mem_customer_data_trigger 
+0x5918 023039 call mouse_customer_key_need_send 
+0x5919 023040 branch mouse_check_customerkey_gpio_exit 
+:      023042 mouse_customerkey_release:
+0x591a 023043 jam 0 ,mem_customer_data_trigger 
+0x591b 023044 fetch 1 ,mem_customer_data_trigger_last 
+0x591c 023045 rtn blank 
+:      023046 mouse_customer_key_need_send:
+0x591d 023047 jam 1 ,mem_customer_key 
+0x591e 023048 rtn 
+:      023052 mouse_check_matrix_button_connect_gnd:
+0x591f 023053 call gpio_get_bit 
+0x5920 023054 fetcht 1 ,mem_mouse_key_temp 
+0x5921 023055 copy temp ,queue 
+0x5922 023056 branch mouse_key_press ,true 
+:      023057 mouse_key_release:
+0x5923 023058 qset0 rega 
+0x5924 023059 rtn 
+:      023061 mouse_check_key_connect_gnd:
+0x5925 023062 lshift pdata ,pdata 
+0x5926 023063 copy pdata ,regb 
+0x5927 023064 call gpio_get_bit 
+0x5928 023065 setflag true ,0 ,regb 
+:      023066 mouse_check_key_connect_gnd_1:
+0x5929 023067 and regb ,0x07 ,pdata 
+:      023068 mouse_check_key_connect_gnd_next:
+0x592a 023069 fetcht 1 ,mem_mouse_key_temp 
+0x592b 023070 copy temp ,queue 
+0x592c 023071 beq 0x07 ,mouse_key_press 
+0x592d 023072 beq 0x00 ,mouse_key_release 
+0x592e 023073 rtn 
+:      023075 mouse_key_press:
+0x592f 023076 qset1 rega 
+0x5930 023077 rtn 
+:      023079 mouse_3io6key_check:
+0x5931 023080 bpatch patch0f_7 ,mem_patch0f 
+0x5932 023081 copy regc ,pdata 
+0x5933 023082 store 1 ,mem_mouse_key_status 
+0x5934 023083 lshift pdata ,pdata 
+0x5935 023084 copy pdata ,regb 
+0x5936 023085 copy temp ,regc 
+0x5937 023086 call mouse_gpio_config_input_pd 
+0x5938 023087 copy regc ,temp 
+0x5939 023088 call gpio_get_bit 
+0x593a 023089 nsetflag true ,0 ,regb 
+0x593b 023090 call mouse_check_press 
+0x593c 023091 branch mouse_check_key_connect_gnd_next 
+:      023093 mouse_check_press:
+0x593d 023094 fetcht 1 ,mem_mouse_key_status 
+0x593e 023095 and_into 0x01 ,temp 
+0x593f 023096 and regb ,0x01 ,pdata 
+0x5940 023097 isub temp ,null 
+0x5941 023098 nbranch mouse_current_mult_update ,zero 
+0x5942 023099 rtn 
+:      023103 mouse_gpio_config_output_high:
+0x5943 023104 rtneq gpio_disable 
+0x5944 023105 arg gpcfg_output_high ,temp 
+0x5945 023106 branch gpio_config_function_int 
+:      023109 mouse_gpio_config_output_low:
+0x5946 023110 rtneq gpio_disable 
+0x5947 023111 arg gpcfg_output_low ,temp 
+0x5948 023112 branch gpio_config_function_int 
+:      023117 mouse_init_sunt:
+0x5949 023118 bpatch patch10_0 ,mem_patch10 
+0x594a 023119 call mouse_sensor_spi_init 
+0x594b 023120 rtn wake 
+:      023121 mouse_init_sensor_wakeup:
+0x594c 023122 call mouse_sensor_poweron 
+:      023123 mouse_init_sensor:
+0x594d 023124 bpatch patch10_1 ,mem_patch10 
+0x594e 023125 call mouse_read_sensor_id 
+0x594f 023126 beq p32xx_id1 ,mouse_init_p32xx_id2_judge 
+0x5950 023127 beq p3065_id1 ,mouse_init_p3065 
+0x5951 023128 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
+0x5952 023129 call mouse_twspi_reset 
+0x5953 023130 nop 6900 
+0x5954 023131 branch mouse_init_sensor 
+:      023132 mouse_twspi_reset:
+0x5955 023133 fetcht 1 ,mem_mouse_sensor_sclk_gpio 
+0x5956 023134 call twspi_reset 
+0x5957 023135 branch mouse_spid_init_pin 
+:      023137 mouse_read_sensor_id:
+0x5958 023138 setarg pan_reg_pid_h 
+0x5959 023139 call twspi_read 
+0x595a 023140 store 1 ,mem_sensor_id2 
+0x595b 023141 setarg pan_reg_pid_l 
+0x595c 023142 call twspi_read 
+0x595d 023143 store 1 ,mem_sensor_id1 
+0x595e 023144 rtn 
+:      023146 mouse_init_p32xx_id2_judge:
+0x595f 023147 fetch 1 ,mem_sensor_id2 
+0x5960 023148 beq p_mx8650 ,mouse_mx8650_init_param 
+0x5961 023149 beq p8009_id2 ,mouse_8009_init_param 
+0x5962 023150 beq p3205_tj3t_id2 ,mouse_s210x_3205_3t_judge 
+0x5963 023151 beq p3204_tj3l_id2 ,mouse_3204_3l_init_param 
+0x5964 023152 beq p3212_id2 ,mouse_3212_init_param 
+0x5965 023153 beq pka8_id2 ,mouse_ka8_init_param_check 
+0x5966 023154 beq p6520a_id2 ,mouse_p6520_init_param 
+0x5967 023155 branch mouse_init_sensor 
+:      023157 mouse_s210x_3205_3t_judge:
+0x5968 023158 setarg 0x49 
+0x5969 023159 call twspi_read 
+0x596a 023160 beq 0xa1 ,mouse_s201x_init_param 
+0x596b 023161 branch mouse_3205_3t_init_param 
+:      023163 mouse_s201x_init_param:
+0x596c 023164 jam s201x ,mem_config_sensor_type 
+0x596d 023165 rtn 
+:      023167 mouse_mx8650_init_param:
+0x596e 023168 jam mx8650 ,mem_config_sensor_type 
+0x596f 023169 call mouse_sensor_reset 
+0x5970 023170 call delay_10ms 
+0x5971 023171 arg mem_sensor_8650_init ,regc 
+0x5972 023172 call mouse_sensor_wr_seq 
+0x5973 023173 branch mouse_setting_sensor_type 
+:      023175 mouse_8009_init_param:
+0x5974 023176 setarg 0x16 
+0x5975 023177 call twspi_read 
+0x5976 023178 sub pdata ,0xbd ,null 
+0x5977 023179 nbranch mouse_init_sunt ,zero 
+0x5978 023180 setarg 0x19 
+0x5979 023181 call twspi_read 
+0x597a 023182 sub pdata ,0x55 ,null 
+0x597b 023183 nbranch mouse_init_sunt ,zero 
+0x597c 023184 setarg 0x1b 
+0x597d 023185 call twspi_read 
+0x597e 023186 sub pdata ,0x1d ,null 
+0x597f 023187 nbranch mouse_init_sunt ,zero 
+0x5980 023188 jam p8009 ,mem_config_sensor_type 
+0x5981 023189 arg mem_sensor_8009_init ,regc 
+0x5982 023190 branch mouse_sensor_wr_seq 
+:      023192 mouse_3205_3t_init_param:
+0x5983 023193 jam p3205 ,mem_config_sensor_type 
+0x5984 023194 arg mem_sensor_3205_init ,regc 
+0x5985 023195 call mouse_sensor_wr_seq 
+0x5986 023196 arg mem_sensor_32xx_init ,regc 
+0x5987 023197 call mouse_sensor_wr_seq 
+0x5988 023198 setarg 0x0943 
+0x5989 023199 call twspi_write 
+0x598a 023200 arg mem_sensor_32xx_init_1 ,regc 
+0x598b 023201 branch mouse_sensor_wr_seq 
+:      023203 mouse_3204_3l_init_param:
+0x598c 023204 jam p3204 ,mem_config_sensor_type 
+0x598d 023205 arg mem_sensor_3204_init ,regc 
+0x598e 023206 call mouse_sensor_wr_seq 
+0x598f 023207 arg mem_sensor_32xx_init ,regc 
+0x5990 023208 call mouse_sensor_wr_seq 
+0x5991 023209 arg mem_sensor_32xx_init_1 ,regc 
+0x5992 023210 branch mouse_sensor_wr_seq 
+:      023212 mouse_3212_init_param:
+0x5993 023213 jam p3212 ,mem_config_sensor_type 
+0x5994 023214 arg mem_sensor_3212_init ,regc 
+:      023215 mouse_sensor_wr_seq:
+0x5995 023216 ifetch 2 ,regc 
+0x5996 023217 arg 0xffff ,temp 
+0x5997 023218 isub temp ,null 
+0x5998 023219 rtn zero 
+0x5999 023220 call twspi_write 
+0x599a 023221 increase 2 ,regc 
+0x599b 023222 branch mouse_sensor_wr_seq 
+:      023224 mouse_ka8_init_param_check:
+0x599c 023225 call mouse_sensor_disable_wp 
+0x599d 023226 setarg 0x9a5b 
+0x599e 023227 call twspi_write 
+0x599f 023228 setarg 0x0d 
+0x59a0 023229 call twspi_read 
+0x59a1 023230 sub pdata ,0x12 ,null 
+0x59a2 023231 branch mouse_ka8ul_init_param ,zero 
+0x59a3 023232 sub pdata ,0x0a ,null 
+0x59a4 023233 nbranch mouse_ka8hd_sensor_judge ,zero 
+0x59a5 023234 setarg 0x0e 
+0x59a6 023235 call twspi_read 
+0x59a7 023236 sub pdata ,0xe5 ,null 
+0x59a8 023237 nbranch mouse_init_sensor ,zero 
+0x59a9 023238 setarg 0x10 
+0x59aa 023239 call twspi_read 
+0x59ab 023240 sub pdata ,0xa5 ,null 
+0x59ac 023241 branch mouse_ka8ul_init_param ,zero 
+0x59ad 023242 call mouse_enable_ka8_sensor_wp 
+:      023243 mouse_ka8_init_param:
+0x59ae 023244 jam ka8 ,mem_config_sensor_type 
+0x59af 023245 rtn 
+:      023246 mouse_ka8ul_init_param:
+0x59b0 023247 jam ka8_ul ,mem_config_sensor_type 
+0x59b1 023248 arg mem_sensor_ka8ul_init ,regc 
+0x59b2 023249 branch mouse_sensor_wr_seq 
+:      023250 mouse_ka8hd_sensor_judge:
+0x59b3 023251 sub pdata ,0x10 ,null 
+0x59b4 023252 nbranch mouse_init_sensor ,zero 
+0x59b5 023253 setarg 0x0e 
+0x59b6 023254 call twspi_read 
+0x59b7 023255 sub pdata ,0xc5 ,null 
+0x59b8 023256 nbranch mouse_init_sensor ,zero 
+0x59b9 023257 setarg 0x10 
+0x59ba 023258 call twspi_read 
+0x59bb 023259 sub pdata ,0x38 ,null 
+0x59bc 023260 nbranch mouse_init_sensor ,zero 
+:      023261 mouse_ka8hd_init_param:
+0x59bd 023262 call mouse_enable_ka8_sensor_wp 
+0x59be 023263 jam ka8_hd ,mem_config_sensor_type 
+0x59bf 023264 rtn 
+:      023265 mouse_enable_ka8_sensor_wp:
+0x59c0 023266 setarg 0x005b 
+0x59c1 023267 call twspi_write 
+0x59c2 023268 branch mouse_sensor_enable_wp 
+:      023270 mouse_p6520_init_param:
+0x59c3 023271 jam p6520 ,mem_config_sensor_type 
+0x59c4 023272 arg mem_sensor_p6520_init ,regc 
+0x59c5 023273 branch mouse_sensor_wr_seq 
+:      023275 mouse_init_p3065:
+0x59c6 023276 call mouse_sensor_poweron 
+0x59c7 023277 fetch 1 ,mem_sensor_id2 
+0x59c8 023278 beq p3065_xy_id2 ,mouse_p3065xy_init_param 
+0x59c9 023279 beq p3065_id2 ,mouse_p3065_init_param 
+0x59ca 023280 branch mouse_init_sensor 
+:      023282 mouse_p3065_init_param:
+0x59cb 023283 jam p3065 ,mem_config_sensor_type 
+0x59cc 023284 rtn 
+:      023286 mouse_p3065xy_init_param:
+0x59cd 023287 jam p3065_xy ,mem_config_sensor_type 
+0x59ce 023288 rtn 
+:      023290 mouse_ka8g2_id2_judge:
+0x59cf 023291 call mouse_sensor_poweron 
+0x59d0 023292 fetch 1 ,mem_sensor_id2 
+0x59d1 023293 beq pka8g2_id2 ,mouse_ka8g2_init_param 
+0x59d2 023294 branch mouse_init_p32xx_id2_judge 
+:      023295 mouse_ka8g2_init_param:
+0x59d3 023296 jam ka8g2 ,mem_config_sensor_type 
+0x59d4 023297 arg mem_sensor_ka8g2_init ,regc 
+0x59d5 023298 branch mouse_sensor_wr_seq 
+:      023300 mouse_sensor_enable_wp:
+0x59d6 023301 setarg 0x0009 
+0x59d7 023302 branch twspi_write 
+:      023303 mouse_sensor_disable_wp:
+0x59d8 023304 setarg 0x5a09 
+0x59d9 023305 branch twspi_write 
+:      023307 mouse_sensor_reset:
+0x59da 023308 arg 0x8006 ,temp 
+0x59db 023309 fetch 1 ,mem_config_sensor_type 
+0x59dc 023310 bne ka8g2 ,mouse_sensor_reset_end 
+0x59dd 023311 arg 0x9706 ,temp 
+:      023312 mouse_sensor_reset_end:
+0x59de 023313 copy temp ,pdata 
+0x59df 023314 call twspi_write 
+0x59e0 023315 nop 12000 
+0x59e1 023316 rtn 
+:      023318 mouse_sensor_poweron_init:
+0x59e2 023319 arg mem_sensor_poweron_init ,regc 
+0x59e3 023320 fetch 1 ,mem_config_sensor_type 
+0x59e4 023321 rtnne ka8g2 
+0x59e5 023322 arg mem_sensor_ka8g2_poweron_init ,regc 
+0x59e6 023323 rtn 
+:      023325 mouse_sensor_poweron:
+0x59e7 023326 bpatch patch10_2 ,mem_patch10 
+0x59e8 023327 call mouse_sensor_spi_init 
+0x59e9 023328 call mouse_sensor_reset 
+0x59ea 023329 call mouse_sensor_poweron_init 
+0x59eb 023330 call mouse_sensor_wr_seq 
+0x59ec 023331 branch mouse_setting_sensor_type 
+:      023333 mouse_sensor_powerdown:
+0x59ed 023334 bpatch patch10_3 ,mem_patch10 
+0x59ee 023335 call mouse_init_sunt 
+0x59ef 023336 call mouse_sensor_spi_init 
+0x59f0 023337 arg 0x0806 ,temp 
+0x59f1 023338 fetch 1 ,mem_config_sensor_type 
+0x59f2 023339 bne ka8g2 ,mouse_sensor_powerdown_end 
+0x59f3 023340 arg 0x1f06 ,temp 
+:      023341 mouse_sensor_powerdown_end:
+0x59f4 023342 copy temp ,pdata 
+0x59f5 023343 branch twspi_write 
+:      023349 mouse_check_sensor_data:
+0x59f6 023350 fetch 1 ,mem_spi_write_flash_sm 
+0x59f7 023351 rtnne flash_sm_no_buys 
+0x59f8 023352 fetch 1 ,mem_config_sensor_type 
+0x59f9 023353 beq p3205 ,mouse_p32xx_sensor_motion 
+0x59fa 023354 beq p3065 ,mouse_p32xx_sensor_motion 
+0x59fb 023355 beq ka8 ,mouse_p32xx_sensor_motion 
+0x59fc 023356 beq p3204 ,mouse_p32xx_sensor_motion 
+0x59fd 023357 beq p3212 ,mouse_p3212_sensor_motion 
+0x59fe 023358 beq p3065_xy ,mouse_p32xx_sensor_motion 
+0x59ff 023359 beq p8009 ,mouse_p8009_sensor_motion 
+0x5a00 023360 beq ka8g2 ,mouse_pka8g2_sensor_motion 
+0x5a01 023361 branch mouse_p32xx_sensor_motion 
+:      023364 mouse_p32xx_sensor_motion:
+0x5a02 023365 call mouse_clear_sensor_data 
+0x5a03 023366 disable user 
+0x5a04 023367 fetch 1 ,mem_sensor_motion_gpio 
+0x5a05 023368 beq gpio_disable ,mouse_p32xx_sensor_motion_2 
+0x5a06 023369 fetcht 1 ,mem_sensor_motion_gpio 
+0x5a07 023370 call gpio_get_bit 
+0x5a08 023371 nrtn true 
+:      023372 mouse_p32xx_sensor_motion_2:
+0x5a09 023373 setarg pan_reg_pid_l 
+0x5a0a 023374 call twspi_read 
+0x5a0b 023375 bne p32xx_id1 ,mouse_p3065_judge 
+:      023376 mouse_p32xx_sensor_motion_1:
+0x5a0c 023377 setarg pan_reg_motion_staus 
+0x5a0d 023378 call twspi_read 
+0x5a0e 023379 rtnbit0 7 
+0x5a0f 023380 call mouse_read_sensor_common 
+0x5a10 023381 fetch 1 ,mem_mouse_x 
+0x5a11 023382 call mouse_data_extsign 
+0x5a12 023383 store 2 ,mem_mouse_x 
+0x5a13 023384 fetch 1 ,mem_mouse_y 
+0x5a14 023385 call mouse_data_extsign 
+0x5a15 023386 store 2 ,mem_mouse_y 
+0x5a16 023387 fetch 1 ,mem_config_sensor_angle 
+0x5a17 023388 beq mouse_6clk_angle ,mouse_motion32xx_6clk_direction_selection 
+0x5a18 023389 beq mouse_9clk_angle ,mouse_motion32xx_9clk_direction_selection 
+0x5a19 023390 beq mouse_12clk_angle ,mouse_motion32xx_12clk_direction_selection 
+0x5a1a 023391 beq mouse_3clk_angle ,mouse_motion32xx_3clk_direction_selection 
+0x5a1b 023392 rtn 
+:      023394 mouse_p3065_judge:
+0x5a1c 023395 beq p3065_id1 ,mouse_p32xx_sensor_motion_1 
+0x5a1d 023396 branch mouse_twspi_reset 
+:      023398 mouse_motion32xx_6clk_direction_selection:
+0x5a1e 023399 call mouse_motion_6clk_direction_dispose 
+0x5a1f 023400 branch mouse_sensor_sdio_low 
+:      023401 mouse_motion32xx_9clk_direction_selection:
+0x5a20 023402 call mouse_motion_9clk_direction_dispose 
+0x5a21 023403 branch mouse_sensor_sdio_low 
+:      023404 mouse_motion32xx_12clk_direction_selection:
+0x5a22 023405 call mouse_motion_12clk_direction_dispose 
+0x5a23 023406 branch mouse_sensor_sdio_low 
+:      023407 mouse_motion32xx_3clk_direction_selection:
+0x5a24 023408 call mouse_motion_3clk_direction_dispose 
+0x5a25 023409 branch mouse_sensor_sdio_low 
+:      023413 mouse_p3212_sensor_motion:
+0x5a26 023414 call mouse_clear_sensor_data 
+0x5a27 023415 fetch 1 ,mem_sensor_motion_gpio 
+0x5a28 023416 beq gpio_disable ,mouse_p3212_sensor_motion_1 
+0x5a29 023417 fetcht 1 ,mem_sensor_motion_gpio 
+0x5a2a 023418 call gpio_get_bit 
+0x5a2b 023419 nrtn true 
+:      023420 mouse_p3212_sensor_motion_1:
+0x5a2c 023421 setarg pan_reg_pid_l 
+0x5a2d 023422 call twspi_read 
+0x5a2e 023423 bne p32xx_id1 ,mouse_twspi_reset 
+:      023424 mouse_p3212_sensor_motion_2:
+0x5a2f 023425 setarg pan_reg_motion_staus 
+0x5a30 023426 call twspi_read 
+0x5a31 023427 rtnbit0 7 
+0x5a32 023428 call mouse_read_sensor_common 
+0x5a33 023429 call mouse_read_3212sensor_xy_high 
+0x5a34 023430 store 1 ,mem_mouse_xy_h 
+0x5a35 023431 rshift4 pdata ,pdata 
+0x5a36 023432 call mouse_data_extsign_bit3 
+0x5a37 023433 store 1 ,mem_mouse_x + 1 
+0x5a38 023434 fetch 1 ,mem_mouse_xy_h 
+0x5a39 023435 and pdata ,0x0f ,pdata 
+0x5a3a 023436 call mouse_data_extsign_bit3 
+0x5a3b 023437 store 1 ,mem_mouse_y + 1 
+0x5a3c 023438 fetch 1 ,mem_config_sensor_angle 
+0x5a3d 023439 beq mouse_6clk_angle ,mouse_motion_6clk_direction_dispose 
+0x5a3e 023440 beq mouse_9clk_angle ,mouse_motion_9clk_direction_dispose 
+0x5a3f 023441 beq mouse_12clk_angle ,mouse_motion_12clk_direction_dispose 
+0x5a40 023442 beq mouse_3clk_angle ,mouse_motion_3clk_direction_dispose 
+0x5a41 023443 rtn 
+:      023445 mouse_read_3212sensor_xy_high:
+0x5a42 023446 setarg 0x12 
+0x5a43 023447 branch twspi_read 
+:      023449 mouse_pka8g2_sensor_motion:
+0x5a44 023450 call mouse_clear_sensor_data 
+0x5a45 023451 fetch 1 ,mem_sensor_motion_gpio 
+0x5a46 023452 beq gpio_disable ,mouse_pka8g2_sensor_motion_1 
+0x5a47 023453 fetcht 1 ,mem_sensor_motion_gpio 
+0x5a48 023454 call gpio_get_bit 
+0x5a49 023455 nrtn true 
+:      023456 mouse_pka8g2_sensor_motion_1:
+0x5a4a 023457 branch mouse_p3212_sensor_motion_2 
+:      023460 mouse_p8009_sensor_motion:
+0x5a4b 023461 call mouse_clear_sensor_data 
+0x5a4c 023462 disable user 
+0x5a4d 023463 setarg pan_reg_motion_staus 
+0x5a4e 023464 call twspi_read 
+0x5a4f 023465 rtnbit0 7 
+0x5a50 023466 setarg pan_reg_opration_state 
+0x5a51 023467 call twspi_read 
+0x5a52 023468 branch mouse_p32xx_sensor_motion_1 + 3 ,blank 
+0x5a53 023469 setarg 0 
+0x5a54 023470 store 6 ,mem_mouse_x 
+0x5a55 023471 rtn 
+:      023473 mouse_motion_6clk_direction_dispose:
+0x5a56 023474 fetch 2 ,mem_mouse_x 
+0x5a57 023475 sub pdata ,0 ,pdata 
+0x5a58 023476 store 2 ,mem_mouse_x 
+0x5a59 023477 branch enable_user 
+:      023478 mouse_motion_12clk_direction_dispose:
+0x5a5a 023479 fetch 2 ,mem_mouse_y 
+0x5a5b 023480 sub pdata ,0 ,pdata 
+0x5a5c 023481 store 2 ,mem_mouse_y 
+0x5a5d 023482 branch enable_user 
+:      023483 mouse_motion_9clk_direction_dispose:
+0x5a5e 023484 fetch 2 ,mem_mouse_y 
+0x5a5f 023485 sub pdata ,0 ,pdata 
+0x5a60 023486 store 2 ,mem_mouse_y 
+0x5a61 023487 fetch 2 ,mem_mouse_x 
+0x5a62 023488 sub pdata ,0 ,pdata 
+0x5a63 023489 store 2 ,mem_mouse_x 
+0x5a64 023490 call mouse_sensor_data_swap_places 
+0x5a65 023491 branch enable_user 
+:      023492 mouse_motion_3clk_direction_dispose:
+0x5a66 023493 call mouse_sensor_data_swap_places 
+0x5a67 023494 branch enable_user 
+:      023496 mouse_sensor_data_swap_places:
+0x5a68 023497 fetch 2 ,mem_mouse_y 
+0x5a69 023498 fetcht 2 ,mem_mouse_x 
+0x5a6a 023499 store 2 ,mem_mouse_x 
+0x5a6b 023500 storet 2 ,mem_mouse_y 
+0x5a6c 023501 rtn 
+:      023504 mouse_clear_sensor_data:
+0x5a6d 023505 fetch 1 ,mem_mouse_move_flag 
+0x5a6e 023506 call mouse_read_sensor_common ,blank 
+0x5a6f 023507 jam 1 ,mem_mouse_move_flag 
+0x5a70 023508 rtn 
+:      023510 mouse_clear_sensor_data_by_reset:
+0x5a71 023511 jam 1 ,mem_mouse_clear_sensor_data_flag 
+0x5a72 023512 call le_set_config_more_data 
+:      023513 mouse_init_sensor_reset:
+0x5a73 023514 branch mouse_init_sunt 
+:      023516 mouse_data_xy_release:
+0x5a74 023517 fetch 1 ,mem_sensor_motion_gpio 
+0x5a75 023518 rtnne gpio_disable 
+0x5a76 023519 fetch 1 ,mem_mouse_long_mult_flag 
+0x5a77 023520 rtnne 1 
+0x5a78 023521 setarg 0 
+0x5a79 023522 store 1 ,mem_mouse_long_mult_flag 
+0x5a7a 023523 store 4 ,mem_mouse_x 
+0x5a7b 023524 branch mouse_init_sensor_reset 
+:      023526 mouse_data_extsign:
+0x5a7c 023527 rtnbit0 7 
+0x5a7d 023528 arg 0xff00 ,temp 
+0x5a7e 023529 ior temp ,pdata 
+0x5a7f 023530 rtn 
+:      023532 mouse_data_extsign_bit3:
+0x5a80 023533 rtnbit0 3 
+0x5a81 023534 arg 0xf0 ,temp 
+0x5a82 023535 ior temp ,pdata 
+0x5a83 023536 rtn 
+:      023538 mouse_read_sensor_common:
+0x5a84 023539 arg pan_reg_delta_x ,pdata 
+0x5a85 023540 call twspi_read 
+0x5a86 023541 store 2 ,mem_mouse_x 
+0x5a87 023542 arg pan_reg_delta_y ,pdata 
+0x5a88 023543 call twspi_read 
+0x5a89 023544 store 2 ,mem_mouse_y 
+0x5a8a 023545 rtn 
+:      023548 mouse_sensor_sdio_low:
+0x5a8b 023549 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+0x5a8c 023550 call gpio_get_bit 
+0x5a8d 023551 rtn true 
+0x5a8e 023552 setarg 0x0a 
+0x5a8f 023553 call twspi_read 
+0x5a90 023554 nop 1000 
+0x5a91 023555 branch mouse_sensor_sdio_low 
+:      023557 mouse_set_sdio_high:
+0x5a92 023558 setarg 0x8100 
+0x5a93 023559 branch twspi_write 
+:      023564 mouse_bluetooth_fast_conn_init:
+0x5a94 023565 jam 0xff ,mem_mouse_bluetooth_fast_conn_flag 
+:      023566 mouse_ble_fast_conn_init:
+0x5a95 023567 jam 0x34 ,mem_xrecord_mode 
+0x5a96 023568 setarg 0x0f0f0f 
+0x5a97 023569 store 3 ,mem_le_lap 
+0x5a98 023570 store 3 ,mem_le_lap + 3 
+0x5a99 023571 branch mouse_start_reconnect 
+:      023573 mouse_buletooth_fast_conn_end:
+0x5a9a 023574 bpatch patch10_4 ,mem_patch10 
+0x5a9b 023575 call mouse_select_reconn_device 
+0x5a9c 023576 call mouse_bluetooth_fast_conn_disable 
+0x5a9d 023577 fetch 1 ,mem_device_flag 
+0x5a9e 023578 beq mode_bt_device1 ,mouse_device1_check_auto_discover 
+0x5a9f 023579 beq mode_bt_device2 ,mouse_device2_check_auto_discover 
+0x5aa0 023580 rtn 
+:      023581 mouse_device1_check_auto_discover:
+0x5aa1 023582 fetch 6 ,mem_device1_addr 
+0x5aa2 023583 branch mouse_device_check_auto_discover 
+:      023584 mouse_device2_check_auto_discover:
+0x5aa3 023585 fetch 6 ,mem_device2_addr 
+:      023586 mouse_device_check_auto_discover:
+0x5aa4 023587 fetcht 6 ,mem_mouse_compare_addr 
+0x5aa5 023588 isub temp ,null 
+0x5aa6 023589 branch mouse_start_discovery ,zero 
+0x5aa7 023590 branch mouse_start_reconnect_device 
+:      023592 mouse_bluetooth_fast_conn_disable:
+0x5aa8 023593 jam 0x5a ,mem_mouse_bluetooth_fast_conn_flag 
+0x5aa9 023594 rtn 
+:      023597 mouse_stop_bluetooth_mode:
+0x5aaa 023598 fetch 2 ,mem_ui_state_map 
+0x5aab 023599 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+0x5aac 023600 branch mouse_stop_discovery 
+:      023601 mouse_disconnect:
+0x5aad 023602 setarg 0 
+0x5aae 023603 store 2 ,mem_mouse_no_data_timer 
+0x5aaf 023604 fetch 2 ,mem_ui_state_map 
+0x5ab0 023605 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+0x5ab1 023606 rtn 
+:      023608 mouse_check_125hz:
+0x5ab2 023609 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ab3 023610 rtnbit0 mouse_enable_bt_125hz 
+:      023611 mouse_bluetooth_125hz:
+0x5ab4 023612 nbranch mouse_bluetooth_125hz_clear ,user 
+0x5ab5 023613 fetch 1 ,mem_bluetooth_125hz_cnt 
+0x5ab6 023614 increase 1 ,pdata 
+0x5ab7 023615 and_into 0x0f ,pdata 
+0x5ab8 023616 store 1 ,mem_bluetooth_125hz_cnt 
+0x5ab9 023617 nrtn blank 
+:      023618 mouse_bluetooth_125hz_clear:
+0x5aba 023619 jam 0 ,mem_bluetooth_125hz_cnt 
+0x5abb 023620 branch disable_user 
+:      023622 mouse_current_mult_update:
+0x5abc 023623 fetch 1 ,mem_sensor_motion_gpio 
+0x5abd 023624 rtnne gpio_disable 
+0x5abe 023625 jam 0 ,mem_lpm_mult 
+0x5abf 023626 jam 30 ,mem_mouse_current_mult_timer 
+0x5ac0 023627 rtn 
+:      023630 mouse_priority_bb_event:
+0x5ac1 023631 bpatch patch10_5 ,mem_patch10 
+0x5ac2 023632 copy regc ,pdata 
+0x5ac3 023633 beq bt_evt_le_connected ,mouse_le_bb_event_connected 
+0x5ac4 023634 beq bt_evt_le_disconnected ,mouse_le_bb_disconnected 
+0x5ac5 023635 beq bt_evt_button_long_pressed ,mouse_bb_event_discovery_btn 
+0x5ac6 023636 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+0x5ac7 023637 beq bt_evt_le_enc_info ,mouse_le_enc_info 
+0x5ac8 023638 beq bt_evt_le_start_enc ,mouse_le_ll_start_encryt 
+0x5ac9 023639 beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
+0x5aca 023640 beq bt_evt_le_parse_conn_papa_update_rsp ,mouse_le_conn_param_update_rsp_recieved 
+0x5acb 023641 beq bt_evt_24g_pairing_complete ,mouse_24g_pairing_complete 
+0x5acc 023642 beq bt_evt_24g_attempt_fail ,mouse_24g_attempt_fail 
+0x5acd 023643 beq bt_evt_24g_attempt_success ,mouse_24g_attempt_success 
+0x5ace 023644 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
+0x5acf 023645 rtn 
+:      023648 mouse_le_bb_event_connected:
+0x5ad0 023649 call mouse_device_poweron_led_config 
+0x5ad1 023650 jam 0 ,mem_mouse_long_mult_flag 
+0x5ad2 023651 call mouse_init_sensor_reset 
+0x5ad3 023652 jam 1 ,mem_mouse_le_bb_connected_flag 
+0x5ad4 023653 call mouse_24g_first_store_reconn_info 
+0x5ad5 023654 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x5ad6 023655 nbranch mouse_le_bb_event_connected_next ,blank 
+0x5ad7 023656 jam 0x14 ,mem_mouse_send_secutiry_request_timer 
+:      023657 mouse_le_bb_event_connected_next:
+0x5ad8 023658 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x5ad9 023659 set0 app_disc_by_button ,pdata 
+0x5ada 023660 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x5adb 023661 jam 0 ,mem_mouse_direct_timer 
+0x5adc 023662 fetch 2 ,mem_le_battery_level_updata_timer_init 
+0x5add 023663 store 2 ,mem_le_battery_level_updata_timer 
+0x5ade 023664 call mouse_no_data_timer_init 
+0x5adf 023665 branch mouse_stop_discovery 
+:      023667 mouse_le_bb_disconnected:
+0x5ae0 023668 setarg 0 
+0x5ae1 023669 store 2 ,mem_le_battery_level_updata_timer 
+0x5ae2 023670 jam 0 ,mem_mouse_le_bb_connected_flag 
+0x5ae3 023671 arg le_interval_7_5ms ,temp 
+0x5ae4 023672 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ae5 023673 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next 
+0x5ae6 023674 arg le_interval_8_75ms ,temp 
+:      023675 mouse_le_bb_disconnected_next:
+0x5ae7 023676 storet 2 ,mem_le_interval_min 
+0x5ae8 023677 storet 2 ,mem_le_interval_min + 2 
+0x5ae9 023678 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+0x5aea 023679 jam 0 ,mem_mouse_clear_sensor_data_flag 
+0x5aeb 023680 call le_clr_config_more_data 
+0x5aec 023681 branch mouse_bb_disconnected 
+:      023683 mouse_le_pairing_success:
+0x5aed 023684 arg ll_pairing_success_flag ,queue 
+0x5aee 023685 branch mouse_le_enable_connect_flag 
+:      023687 mouse_le_enc_info:
+:      023688 mouse_updata_le_param:
+0x5aef 023689 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+0x5af0 023690 branch ui_ipc_send_cmd 
+:      023692 mouse_le_ll_start_encryt:
+0x5af1 023693 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x5af2 023694 beq 1 ,mouse_le_ll_reconn_start_encryt 
+0x5af3 023695 branch mouse_le_ll_enable_start_enc_flag 
+:      023696 mouse_le_ll_reconn_start_encryt:
+0x5af4 023697 call mouse_updata_le_param 
+0x5af5 023698 jam 20 ,mem_le_start_encrypt_timer 
+:      023699 mouse_le_ll_enable_start_enc_flag:
+0x5af6 023700 arg ll_start_enc_flag ,queue 
+0x5af7 023701 branch mouse_le_enable_connect_flag 
+:      023703 mouse_le_enable_connect_flag:
+0x5af8 023704 fetch 1 ,mem_le_connect_status_flag 
+0x5af9 023705 qset1 pdata 
+0x5afa 023706 store 1 ,mem_le_connect_status_flag 
+0x5afb 023707 rtn 
+:      023709 mouse_le_conn_param_update_rsp_recieved:
+0x5afc 023710 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0x5afd 023711 rtneq ble_signaling_connect_parameter_update_accepted 
+0x5afe 023712 fetch 1 ,mem_le_tsniff 
+0x5aff 023713 rshift2 pdata ,pdata 
+0x5b00 023714 sub pdata ,le_interval_15ms ,null 
+0x5b01 023715 rtn positive 
+0x5b02 023716 setarg le_interval_11_25ms 
+0x5b03 023717 store 2 ,mem_le_interval_min 
+0x5b04 023718 store 2 ,mem_le_interval_min + 2 
+0x5b05 023719 call mouse_updata_le_param 
+:      023720 mouse_le_conn_param_lpm_disable:
+0x5b06 023721 jam le_lpm_disable ,mem_mouse_le_conn_param_reject 
+0x5b07 023722 rtn 
+:      023724 mouse_le_bb_event_connect_complete:
+0x5b08 023725 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x5b09 023726 nrtn blank 
+0x5b0a 023727 fetch 1 ,mem_le_att_handle 
+0x5b0b 023728 sub pdata ,34 ,pdata 
+0x5b0c 023729 nrtn zero 
+0x5b0d 023730 jam 0 ,mem_le_start_encrypt_timer 
+:      023731 mouse_le_write_enable:
+0x5b0e 023732 arg write_req_enable_flag ,queue 
+0x5b0f 023733 branch mouse_le_enable_connect_flag 
+:      023735 mouse_le_parse_conn_param_accepted:
+0x5b10 023736 fetch 1 ,mem_le_new_conninterval 
+0x5b11 023737 sub pdata ,le_interval_15ms ,null 
+0x5b12 023738 nbranch mouse_le_conn_param_lpm_disable ,positive 
+0x5b13 023739 store 2 ,mem_le_interval_min 
+0x5b14 023740 store 2 ,mem_le_interval_min + 2 
+0x5b15 023741 fetch 1 ,mem_le_new_connslavelatency 
+0x5b16 023742 branch mouse_le_lpm_mult_reinit ,blank 
+0x5b17 023743 fetcht 1 ,mem_lpm_mult_init 
+0x5b18 023744 isub temp ,null 
+0x5b19 023745 branch mouse_le_lpm_mult_reinit ,positive 
+0x5b1a 023746 fetch 1 ,mem_le_new_connslavelatency 
+0x5b1b 023747 store 1 ,mem_lpm_mult 
+0x5b1c 023748 branch mouse_le_conn_param_lpm_enable 
+:      023749 mouse_le_lpm_mult_reinit:
+0x5b1d 023750 fetch 1 ,mem_lpm_mult_init 
+0x5b1e 023751 store 1 ,mem_lpm_mult 
+:      023752 mouse_le_conn_param_lpm_enable:
+0x5b1f 023753 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+0x5b20 023754 rtn 
+:      023756 mouse_le_clean_connect_flag:
+0x5b21 023757 jam 0 ,mem_le_connect_status_flag 
+0x5b22 023758 rtn 
+:      023760 mouse_le:
+0x5b23 023761 bpatch patch10_6 ,mem_patch10 
+0x5b24 023762 call le_fifo_check_nearly_full 
+0x5b25 023763 nrtn blank 
+0x5b26 023764 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0x5b27 023765 beq 0xff ,mouse_le_next 
+0x5b28 023766 fetch 1 ,mem_le_connect_status_flag 
+0x5b29 023767 and pdata ,0x03 ,pdata 
+0x5b2a 023768 rtnne 0x03 
+:      023769 mouse_le_next:
+0x5b2b 023770 fetch 1 ,mem_mouse_clear_sensor_data_flag 
+0x5b2c 023771 call mouse_clear_sensor_data_by_reset ,blank 
+0x5b2d 023772 fetch mouse_flag_len ,mem_mouse_flag 
+0x5b2e 023773 bbit1 mouse_24g_pairing_flag ,mouse_le_send_empty_packet 
+0x5b2f 023774 bbit1 mouse_select_device_flag ,mouse_le_send_empty_packet 
+0x5b30 023775 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
+0x5b31 023776 bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_le_send_empty_packet 
+0x5b32 023777 call mouse_motion 
+0x5b33 023778 call mouse_check_125hz 
+0x5b34 023779 nrtn user 
+0x5b35 023780 call mouse_current_mult_update 
+0x5b36 023781 call mouse_data_xy_release 
+0x5b37 023782 call mouse_wheel_trigger 
+0x5b38 023783 fetch mouse_flag_len ,mem_mouse_flag 
+0x5b39 023784 bbit0 mouse_enable_keyboard ,mouse_le_send_mouse_data 
+0x5b3a 023785 fetch 1 ,mem_customer_key 
+0x5b3b 023786 beq 1 ,mouse_le_send_keyboard_package_data 
+:      023787 mouse_le_send_mouse_data:
+0x5b3c 023788 branch mouse_fill_mouse_data_le 
+:      023791 mouse_le_send_keyboard_package_data:
+0x5b3d 023792 fetch 1 ,mem_customer_data_trigger 
+0x5b3e 023793 branch mouse_le_release_keyboard_data ,blank 
+0x5b3f 023794 fetch 8 ,mem_customer_key_press + 1 
+:      023795 mouse_fill_keyboard_package_data_le:
+0x5b40 023796 store 8 ,mem_pdatatemp 
+0x5b41 023797 fetch 1 ,mem_customer_key_press 
+0x5b42 023798 beq kb_multikey_report_id ,mouse_fill_multimedia_key_data_le 
+0x5b43 023799 beq kb_system_conctrl_report_id ,mouse_fill_systemctrl_key_data_le 
+0x5b44 023800 jam 8 ,mem_le_data_len 
+0x5b45 023801 fetcht 2 ,mem_le_keyboard_handle 
+:      023802 mouse_fill_data_le:
+0x5b46 023803 fetch 1 ,mem_le_data_len 
+0x5b47 023804 copy pdata ,rega 
+0x5b48 023805 call le_att_malloc_tx_notify 
+0x5b49 023806 fetcht 1 ,mem_le_data_len 
+0x5b4a 023807 copy temp ,loopcnt 
+0x5b4b 023808 arg mem_pdatatemp ,contr 
+0x5b4c 023809 branch memcpy 
+:      023811 mouse_le_release_keyboard_data:
+0x5b4d 023812 fetch 8 ,mem_customer_key_release + 1 
+0x5b4e 023813 branch mouse_fill_keyboard_package_data_le 
+:      023815 mouse_fill_multimedia_key_data_le:
+0x5b4f 023816 jam 3 ,mem_le_data_len 
+0x5b50 023817 fetcht 2 ,mem_le_multimedia_handle 
+0x5b51 023818 branch mouse_fill_data_le 
+:      023820 mouse_fill_systemctrl_key_data_le:
+0x5b52 023821 jam 2 ,mem_le_data_len 
+0x5b53 023822 fetcht 2 ,mem_le_systemctrl_handle 
+0x5b54 023823 branch mouse_fill_data_le 
+:      023825 mouse_fill_battery_level_le:
+0x5b55 023826 arg 1 ,rega 
+0x5b56 023827 fetcht 2 ,mem_le_battery_level_handle 
+0x5b57 023828 call le_att_malloc_tx_notify 
+0x5b58 023829 fetch 1 ,mem_le_battery_level_percentage 
+0x5b59 023830 istore 1 ,contw 
+0x5b5a 023831 rtn 
+:      023833 mouse_le_send_empty_packet:
+0x5b5b 023834 setarg 0 
+0x5b5c 023835 store 7 ,mem_mouse_key 
+:      023836 mouse_fill_mouse_data_le:
+0x5b5d 023837 jam 7 ,mem_le_data_len 
+0x5b5e 023838 fetch 7 ,mem_mouse_key 
+0x5b5f 023839 store 7 ,mem_pdatatemp 
+0x5b60 023840 fetcht 2 ,mem_le_notify_handle 
+0x5b61 023841 branch mouse_fill_data_le 
+:      023843 mouse_check_51cmd_adv:
+0x5b62 023844 jam 0 ,mem_mouse_le_reconnect_flag 
+0x5b63 023845 fetch 3 ,mem_le_adv_ind 
+0x5b64 023846 store 3 ,mem_le_adv_data + 4 
+0x5b65 023847 call mouse_le_check_adv_flag 
+0x5b66 023848 setarg adv_flag_bredr_not_supported | adv_flag_limited_discoverable 
+0x5b67 023849 istore 1 ,contr 
+0x5b68 023850 arg mem_le_adv_swift_pair ,contr 
+0x5b69 023851 call mouse_le_adv_data_update 
+0x5b6a 023852 branch check_51cmd_adv 
+:      023854 mouse_le_check_adv_flag:
+0x5b6b 023855 arg mem_le_adv_data ,rega 
+:      023856 mouse_le_check_adv_flag_loop:
+0x5b6c 023857 ifetch 1 ,rega 
+0x5b6d 023858 rtn blank 
+0x5b6e 023859 iadd contr ,rega 
+0x5b6f 023860 ifetch 1 ,contr 
+0x5b70 023861 rtneq 0x01 
+0x5b71 023862 branch mouse_le_check_adv_flag_loop 
+:      023864 mouse_le_adv_data_update:
+0x5b72 023865 arg mem_le_adv_data + 11 ,contw 
+0x5b73 023866 arg 19 ,loopcnt 
+0x5b74 023867 call memcpy 
+0x5b75 023868 branch le_modified_name_adv 
+:      023874 mouse_bb_disconnected:
+0x5b76 023875 call mouse_bb_discon_clear_stack 
+0x5b77 023876 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x5b78 023877 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
+0x5b79 023878 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x5b7a 023879 branch mouse_start_discovery 
+:      023881 mouse_bb_discon_clear_stack:
+0x5b7b 023882 setarg 0 
+0x5b7c 023883 store 8 ,mem_wheel_tb_old_pinlevel 
+0x5b7d 023884 istore 4 ,contw 
+0x5b7e 023885 jam 0 ,mem_mouse_move_flag 
+0x5b7f 023886 jam 0 ,mem_ltk_exists 
+0x5b80 023887 rtn 
+:      023889 mouse4_0_event_bb_disconn:
+0x5b81 023890 call mouse_le_clean_connect_flag 
+0x5b82 023891 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x5b83 023892 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x5b84 023893 branch mouse_app_enter_hibernate 
+:      023897 mouse_bb_event_timer:
+0x5b85 023898 bpatch patch10_7 ,mem_patch10 
+0x5b86 023900 call mouse_low_voltage_led_timer 
+0x5b87 023901 call mouse_adc_read 
+0x5b88 023903 call mouse_logo_led_on_timer 
+0x5b89 023904 call mouse_led_multi_timer 
+0x5b8a 023905 call mouse_dpi_led_blink_delay_timer 
+0x5b8b 023907 call g24_pair_timeout_timer 
+0x5b8c 023908 call g24_reconn_timeout_timer 
+0x5b8d 023909 call mouse_24g_long_sleep_param_update_timer 
+0x5b8e 023911 call mouse_dpi_key_check_long_press 
+0x5b8f 023912 call mouse_bt_discovery_check 
+0x5b90 023913 call mouse_commbination_key_process 
+0x5b91 023914 call mouse_check_discovery_timeout_timer 
+0x5b92 023916 call mouse_check_direct_timeout_timer 
+0x5b93 023917 call mouse_le_enable_att_list_timer 
+0x5b94 023918 call mouse_le_battery_updata_timer 
+0x5b95 023919 call mouse_le_send_smp_security_request_timer 
+0x5b96 023921 call mouse_check_reconnect_delay_long_sleep 
+0x5b97 023922 call mouse_current_mult_update_timer 
+0x5b98 023923 call mouse_wheel_trigger_timer 
+0x5b99 023924 call mouse_store_information_delay_timer 
+0x5b9a 023925 branch mouse_check_no_data_timeout_timer 
+:      023927 mouse_bt_discovery_check:
+0x5b9b 023928 fetch mouse_flag_len ,mem_mouse_flag 
+0x5b9c 023929 bbit1 mouse_enable_pb_button_long_press_disconvery ,mouse_bt_discovery_by_pb_button 
+0x5b9d 023930 rtn 
+:      023932 mouse_bt_discovery_by_pb_button:
+0x5b9e 023933 fetch 1 ,mem_select_device_button_statue 
+0x5b9f 023934 rtnne pb_button_state_down 
+0x5ba0 023935 arg mem_bt_discovery_count ,regc 
+0x5ba1 023936 arg mouse_long_button_bt_discovery ,regb 
+0x5ba2 023937 branch timer_single_step 
+:      023939 mouse_long_button_bt_discovery:
+0x5ba3 023940 fetch 1 ,mem_device_flag 
+0x5ba4 023941 rtneq mode_24g_device 
+0x5ba5 023942 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ba6 023943 rtnbit1 mouse_bt_discovery_button_long_down_flag 
+0x5ba7 023944 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0x5ba8 023945 call mouse_enable_function_flag 
+0x5ba9 023946 call app_evt_button_long_pressed 
+0x5baa 023947 branch mouse_bb_event_discovery_btn 
+:      023949 mouse_commbination_key_process:
+0x5bab 023950 fetch 1 ,mem_device_flag 
+0x5bac 023951 beq mode_24g_device ,mouse_24g_commbination_key_process 
+0x5bad 023952 fetch mouse_flag_len ,mem_mouse_flag 
+0x5bae 023953 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
+0x5baf 023954 fetcht 1 ,mem_mouse_commbination_key_bt 
+0x5bb0 023955 branch mouse_commbination_key_start 
+:      023957 mouse_24g_commbination_key_process:
+0x5bb1 023958 fetch mouse_flag_len ,mem_mouse_flag 
+0x5bb2 023959 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
+0x5bb3 023960 fetcht 1 ,mem_mouse_commbination_key_24g 
+:      023961 mouse_commbination_key_start:
+0x5bb4 023962 storet 1 ,mem_mouse_commbination_key 
+0x5bb5 023963 call mouse_check_key_gpio 
+0x5bb6 023964 and pdata ,0x07 ,pdata 
+0x5bb7 023965 fetcht 1 ,mem_mouse_commbination_key 
+0x5bb8 023966 isub temp ,null 
+0x5bb9 023967 branch mouse_commbination_key_down ,zero 
+:      023968 mouse_commbination_key_up:
+0x5bba 023969 fetch 1 ,mem_ui_button_timeout 
+0x5bbb 023970 store 1 ,mem_combination_ui_button_count 
+0x5bbc 023971 fetch 1 ,mem_commbination_key_statue 
+0x5bbd 023972 rtneq commbination_key_state_up 
+0x5bbe 023973 jam commbination_key_state_up ,mem_commbination_key_statue 
+0x5bbf 023974 rtn 
+:      023976 mouse_commbination_key_down:
+0x5bc0 023977 call mouse_combination_ui_timer 
+0x5bc1 023978 fetch 1 ,mem_commbination_key_statue 
+0x5bc2 023979 rtneq commbination_key_state_down 
+0x5bc3 023980 jam commbination_key_state_down ,mem_commbination_key_statue 
+0x5bc4 023981 rtn 
+:      023983 mouse_combination_ui_timer:
+0x5bc5 023984 arg mouse_24g_start_pair_mode ,regb 
+0x5bc6 023985 arg mem_combination_ui_button_count ,regc 
+0x5bc7 023986 fetch 1 ,mem_device_flag 
+0x5bc8 023987 beq mode_24g_device ,timer_single_step 
+0x5bc9 023988 arg mouse_long_button_bt_discovery ,regb 
+0x5bca 023989 call timer_single_step 
+0x5bcb 023990 fetch 1 ,mem_combination_ui_button_count 
+0x5bcc 023991 beq 1 ,mouse_bt_discovery_button_down_enable 
+0x5bcd 023992 rtn 
+:      023994 mouse_check_discovery_timeout_timer:
+0x5bce 023995 arg mem_mouse_discovery_timer ,regc 
+0x5bcf 023996 arg mouse_check_discovery_timeout ,regb 
+0x5bd0 023997 branch timer_single_step_2b 
+:      023999 mouse_check_discovery_timeout:
+0x5bd1 024000 call mouse_stop_discovery 
+0x5bd2 024001 branch mouse_app_enter_hibernate 
+:      024003 mouse_check_direct_timeout_timer:
+0x5bd3 024004 arg mem_mouse_direct_timer ,regc 
+0x5bd4 024005 arg mouse_check_direct_timeout ,regb 
+0x5bd5 024006 call timer_single_step 
+0x5bd6 024007 fetch 1 ,mem_mouse_direct_timer 
+0x5bd7 024008 beq 1 ,app_ble_stop_direct_adv 
+0x5bd8 024009 rtn 
+:      024011 mouse_check_direct_timeout:
+0x5bd9 024012 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0x5bda 024013 beq 0xff ,mouse_buletooth_fast_conn_end 
+0x5bdb 024014 fetch 1 ,mem_reconn_times 
+0x5bdc 024015 nbranch mouse_polling_device ,blank 
+0x5bdd 024016 fetch mouse_flag_len ,mem_mouse_flag 
+0x5bde 024017 bbit1 mouse_enable_bt_reconnect_timeout_enter_discovery ,mouse_start_discovery 
+0x5bdf 024018 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_bb_event_reconn_timeout 
+0x5be0 024019 branch mouse_app_enter_hibernate 
+:      024021 mouse_le_enable_att_list_timer:
+0x5be1 024022 arg mem_le_start_encrypt_timer ,regc 
+0x5be2 024023 arg mouse_le_write_enable ,regb 
+0x5be3 024024 branch timer_single_step 
+:      024026 mouse_le_send_smp_security_request_timer:
+0x5be4 024027 fetch 1 ,mem_mouse_le_bb_connected_flag 
+0x5be5 024028 rtn blank 
+0x5be6 024029 arg mem_mouse_send_secutiry_request_timer ,regc 
+0x5be7 024030 arg mouse_le_pairing_sm_start_check ,regb 
+0x5be8 024031 branch timer_single_step 
+:      024032 mouse_le_pairing_sm_start_check:
+0x5be9 024033 fetch 1 ,mem_mouse_le_reconnect_flag 
+0x5bea 024034 nrtn blank 
+0x5beb 024035 fetch 1 ,mem_le_pairing_state 
+0x5bec 024036 rtnne flag_le_pairing_null 
+0x5bed 024037 branch le_pairing_sm_start 
+:      024039 mouse_le_battery_updata_timer:
+0x5bee 024040 fetch mouse_flag_len ,mem_mouse_flag 
+0x5bef 024041 rtnbit1 mouse_enable_le_battery_service_cancel 
+0x5bf0 024042 arg mem_le_battery_level_updata_timer ,regc 
+0x5bf1 024043 arg mouse_le_battery_level_updata ,regb 
+0x5bf2 024044 branch timer_single_step 
+:      024046 mouse_le_battery_level_updata:
+0x5bf3 024047 fetch 2 ,mem_le_battery_level_updata_timer_init 
+0x5bf4 024048 store 2 ,mem_le_battery_level_updata_timer 
+0x5bf5 024049 branch mouse_fill_battery_level_le 
+:      024051 mouse_le_enable_att_list:
+0x5bf6 024052 fetch 1 ,mem_le_connect_status_flag 
+0x5bf7 024053 rtnbit1 ll_pairing_success_flag 
+0x5bf8 024054 call mouse_updata_le_param 
+0x5bf9 024055 arg write_req_enable_flag ,queue 
+0x5bfa 024056 branch mouse_le_enable_connect_flag 
+:      024058 mouse_check_reconnect_delay_long_sleep:
+0x5bfb 024059 arg mem_mouse_bluetooth_reconnect_timeout ,regc 
+0x5bfc 024060 arg mouse_app_enter_hibernate ,regb 
+0x5bfd 024061 branch timer_single_step 
+:      024063 mouse_current_mult_update_timer:
+0x5bfe 024064 arg mem_mouse_current_mult_timer ,regc 
+0x5bff 024065 arg mouse_current_mult_reinit ,regb 
+0x5c00 024066 branch timer_single_step 
+:      024067 mouse_current_mult_reinit:
+0x5c01 024068 fetch 1 ,mem_lpm_mult_init 
+0x5c02 024069 store 1 ,mem_lpm_mult 
+0x5c03 024070 jam 1 ,mem_mouse_long_mult_flag 
+0x5c04 024071 rtn 
+:      024074 mouse_check_no_data_timeout_timer:
+0x5c05 024075 arg mem_mouse_no_data_timer ,regc 
+0x5c06 024076 arg mouse_check_no_data_timeout ,regb 
+0x5c07 024077 branch timer_single_step_2b 
+:      024079 mouse_check_no_data_timeout:
+0x5c08 024080 fetch 1 ,mem_device_flag 
+0x5c09 024081 beq mode_24g_device ,mouse_24g_hibernate_set 
+0x5c0a 024082 branch mouse_disconnect 
+:      024084 mouse_no_data_timer_init:
+0x5c0b 024085 fetch 2 ,mem_mouse_no_data_timeout 
+0x5c0c 024086 store 2 ,mem_mouse_no_data_timer 
+0x5c0d 024087 rtn 
+:      024089 mouse_store_information_delay_timer:
+0x5c0e 024090 arg mem_store_information_delay_timer ,regc 
+0x5c0f 024091 arg mouse_store_device_info_check ,regb 
+0x5c10 024092 branch timer_single_step 
+:      024094 mouse_store_device_info_check:
+0x5c11 024095 call mouse_store_device_info 
+0x5c12 024096 fetch 1 ,mem_mouse_need_soft_reset 
+0x5c13 024097 nbranch mouse_soft_reset ,blank 
+0x5c14 024098 rtn 
+:      024100 mouse_bb_event_discovery_btn:
+0x5c15 024101 isolate1 mark_24g ,mark 
+0x5c16 024102 call mouse_24g_stop ,true 
+0x5c17 024103 call mouse_disconnect 
+0x5c18 024104 call mouse_le_clean_connect_flag 
+0x5c19 024105 branch mouse_start_discovery 
+:      024107 mouse_start_discovery:
+0x5c1a 024108 bpatch patch11_0 ,mem_patch11 
+0x5c1b 024109 call mouse_device_discovery_led_config 
+0x5c1c 024110 fetch 2 ,mem_ui_state_map 
+0x5c1d 024111 isolate1 ui_state_ble_adv ,pdata 
+0x5c1e 024112 call mouse_stop_le_adv ,true 
+0x5c1f 024113 call mouse_bluetooth_fast_conn_disable 
+0x5c20 024114 fetch 2 ,mem_ui_state_map 
+0x5c21 024115 bbit1 ui_state_ble_adv ,mouse_start_discovery_norandom 
+0x5c22 024116 fetch mouse_flag_len ,mem_mouse_flag 
+0x5c23 024117 bbit0 mouse_enable_ble_random_addre ,mouse_start_discovery_norandom 
+0x5c24 024118 fetcht 2 ,mem_random_addr_increase_count 
+0x5c25 024119 increase 1 ,temp 
+0x5c26 024120 storet 2 ,mem_random_addr_increase_count 
+0x5c27 024121 storet 2 ,mem_le_lap + 1 
+0x5c28 024122 random pdata 
+0x5c29 024123 store 1 ,mem_le_lap 
+:      024124 mouse_start_discovery_norandom:
+0x5c2a 024125 fetch 3 ,mem_mouse_le_lap_temp 
+0x5c2b 024126 store 3 ,mem_le_lap + 3 
+0x5c2c 024127 call app_lpm_mult_disable 
+0x5c2d 024128 fetch 2 ,mem_mouse_discovery_timeout 
+0x5c2e 024129 store 2 ,mem_mouse_discovery_timer 
+0x5c2f 024130 setarg 0 
+0x5c30 024131 store 2 ,mem_mouse_no_data_timer 
+0x5c31 024132 store 2 ,mem_le_battery_level_updata_timer 
+0x5c32 024133 store 1 ,mem_mouse_direct_timer 
+0x5c33 024134 store 1 ,mem_mouse_bluetooth_reconnect_timeout 
+0x5c34 024135 store 1 ,mem_mouse_clear_sensor_data_flag 
+0x5c35 024136 arg mouse_store_eeprom_flag ,queue 
+0x5c36 024137 call mouse_enable_function_flag 
+0x5c37 024138 call mouse_bt_discovery_button_down_disable 
+0x5c38 024139 branch mouse_check_51cmd_adv 
+:      024141 mouse_stop_discovery:
+0x5c39 024142 bpatch patch11_1 ,mem_patch11 
+0x5c3a 024143 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0x5c3b 024144 call mouse_disable_function_flag 
+0x5c3c 024145 jam 0 ,mem_mouse_bluetooth_reconnect_timeout 
+0x5c3d 024146 branch mouse_stop_le_adv 
+:      024147 mouse_stop_le_adv:
+0x5c3e 024148 setarg 0 
+0x5c3f 024149 store 1 ,mem_mouse_direct_timer 
+0x5c40 024150 store 2 ,mem_mouse_discovery_timer 
+0x5c41 024151 branch check_51cmd_stop_adv 
+:      024153 mouse_store_remote_bdaddr:
+0x5c42 024154 bpatch patch11_2 ,mem_patch11 
+0x5c43 024155 fetch mouse_flag_len ,mem_mouse_flag 
+0x5c44 024156 rtnbit0 mouse_store_eeprom_flag 
+0x5c45 024157 arg mouse_store_eeprom_flag ,queue 
+0x5c46 024158 call mouse_disable_function_flag 
+0x5c47 024159 call mouse_check_device_addr 
+:      024160 mouse_unplug_clean_bdaddr:
+0x5c48 024161 call mouse_before_store_reconn_info 
+0x5c49 024162 branch mouse_store_device_info_delay 
+:      024164 mouse_check_device_addr:
+0x5c4a 024165 fetch 1 ,mem_record_bt_mode 
+0x5c4b 024166 beq rec_4_mode ,mouse_check_le_device_addr 
+0x5c4c 024167 rtn 
+:      024168 mouse_check_le_device_addr:
+0x5c4d 024169 store 1 ,mem_device_addr_temp 
+0x5c4e 024170 fetch 6 ,mem_le_plap 
+:      024171 mouse_check_bt_device_addr_common:
+0x5c4f 024172 store 6 ,mem_device_addr_temp + 1 
+0x5c50 024173 fetch 7 ,mem_device_addr_temp 
+0x5c51 024174 arg mem_device1_type ,contr 
+0x5c52 024175 arg 3 ,loopcnt 
+:      024176 mouse_check_device_addr_end:
+0x5c53 024177 ifetcht 7 ,contr 
+0x5c54 024178 isub temp ,null 
+0x5c55 024179 branch mouse_clean_addr ,zero 
+0x5c56 024180 increase 22 ,contr 
+0x5c57 024181 loop mouse_check_device_addr_end 
+0x5c58 024182 rtn 
+:      024183 mouse_before_store_reconn_info:
+0x5c59 024184 arg mem_device1_type ,rega 
+0x5c5a 024185 fetch 1 ,mem_device_flag 
+0x5c5b 024186 increase -1 ,pdata 
+0x5c5c 024187 mul32 pdata ,29 ,pdata 
+0x5c5d 024188 iadd rega ,rega 
+0x5c5e 024189 fetch 1 ,mem_record_bt_mode 
+0x5c5f 024190 istore 1 ,rega 
+0x5c60 024191 beq rec_4_mode ,mouse_store_le_device 
+0x5c61 024192 rtn 
+:      024194 mouse_store_le_device:
+0x5c62 024195 fetch 6 ,mem_le_plap 
+0x5c63 024196 istore 6 ,contw 
+0x5c64 024197 arg mem_le_ltk ,contr 
+0x5c65 024198 call memcpy16 
+0x5c66 024199 fetch 6 ,mem_le_lap 
+0x5c67 024200 istore 6 ,contw 
+0x5c68 024201 rtn 
+:      024203 mouse_clean_addr:
+0x5c69 024204 increase -6 ,contr 
+0x5c6a 024205 copy contr ,contw 
+0x5c6b 024206 fetcht 6 ,mem_device_addr_temp + 1 
+0x5c6c 024207 increase 3 ,temp 
+0x5c6d 024208 istoret 6 ,contw 
+0x5c6e 024209 rtn 
+:      024211 mouse_select_reconn_device:
+0x5c6f 024212 arg mem_device1_type ,rega 
+0x5c70 024213 fetch 1 ,mem_device_flag 
+0x5c71 024214 rtneq mode_24g_device 
+0x5c72 024215 increase -1 ,pdata 
+0x5c73 024216 mul32 pdata ,29 ,pdata 
+0x5c74 024217 iadd rega ,rega 
+0x5c75 024218 ifetch 1 ,rega 
+0x5c76 024219 store 1 ,mem_xrecord_mode 
+0x5c77 024220 beq rec_4_mode ,mouse_load_le_device 
+0x5c78 024221 rtn 
+:      024223 mouse_load_le_device:
+0x5c79 024224 ifetch 6 ,contr 
+:      024225 mouse_load_le_device_end:
+0x5c7a 024226 store 6 ,mem_hci_plap 
+0x5c7b 024227 arg mem_le_ltk ,contw 
+0x5c7c 024228 call memcpy16 
+0x5c7d 024229 ifetch 6 ,contr 
+0x5c7e 024230 store 6 ,mem_le_lap 
+0x5c7f 024231 rtn 
+:      024233 mouse_app_initflag_check:
+0x5c80 024234 bpatch patch11_3 ,mem_patch11 
+0x5c81 024235 fetch 2 ,mem_store_flag 
+0x5c82 024236 arg eeprom_init_flag ,temp 
+0x5c83 024237 isub temp ,null 
+0x5c84 024238 branch mouse_load_device_info ,zero 
+:      024239 mouse_app_initflag_check_next:
+0x5c85 024240 storet 2 ,mem_store_flag 
+0x5c86 024241 call mouse_ble_init_address 
+0x5c87 024242 fetch 1 ,mem_device_flag_temp 
+0x5c88 024243 store 1 ,mem_device_flag 
+0x5c89 024244 fetch 4 ,mem_24g_fast_conn_addr 
+0x5c8a 024245 store 4 ,mem_24g_receiver_addr 
+0x5c8b 024246 store 4 ,mem_24g_addr 
+:      024247 mouse_load_default_dpi:
+0x5c8c 024248 fetch 1 ,mem_config_sensor_dpi 
+0x5c8d 024249 store 1 ,mem_mouse_dpi 
+0x5c8e 024250 rtn 
+:      024252 mouse_load_device_info:
+0x5c8f 024253 call mouse_otp_load_dpi 
+0x5c90 024255 fetch 4 ,mem_mouse_24g_addr 
+0x5c91 024256 store 4 ,mem_24g_receiver_addr 
+0x5c92 024257 store 4 ,mem_24g_addr 
+0x5c93 024258 rtn 
+:      024260 mouse_otp_load_dpi:
+0x5c94 024261 fetch mouse_flag_len ,mem_mouse_flag 
+0x5c95 024262 rtnbit0 mouse_enable_load_and_store_dpi 
+0x5c96 024263 fetch 2 ,mem_otp_offset_dpi 
+0x5c97 024264 copy pdata ,regb 
+0x5c98 024265 call mouse_read_otp_dpi_common 
+0x5c99 024266 fetch 1 ,mem_mouse_dpi_temp 
+0x5c9a 024267 call mouse_load_default_dpi ,blank 
+0x5c9b 024268 rtn 
+:      024270 mouse_ble_init_address:
+0x5c9c 024271 fetch 6 ,mem_le_lap 
+0x5c9d 024272 store 6 ,mem_device1_locall_addr 
+0x5c9e 024273 add pdata ,0x0100 ,pdata 
+0x5c9f 024274 store 6 ,mem_device2_locall_addr 
+0x5ca0 024275 add pdata ,0x0100 ,pdata 
+0x5ca1 024276 store 6 ,mem_device3_locall_addr 
+0x5ca2 024277 rtn 
+:      024281 mouse_store_device_info_delay:
+0x5ca3 024282 fetch 1 ,mem_store_information_delay_timer_init 
+0x5ca4 024283 store 1 ,mem_store_information_delay_timer 
+0x5ca5 024284 rtn 
+:      024286 mouse_store_device_info:
+0x5ca6 024287 bpatch patch11_4 ,mem_patch11 
+0x5ca7 024288 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ca8 024289 bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
+0x5ca9 024290 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+0x5caa 024291 bbit1 mouse_enable_otp ,mouse_store_otp_device_info 
+0x5cab 024292 rtn 
+:      024294 mouse_store_dpi_info_check:
+0x5cac 024295 bpatch patch11_5 ,mem_patch11 
+0x5cad 024296 fetch mouse_flag_len ,mem_mouse_flag 
+0x5cae 024297 bbit1 mouse_enable_eeprom ,mouse_store_eerpom_dpi 
+0x5caf 024298 bbit1 mouse_enable_otp ,mouse_store_otp_dpi 
+0x5cb0 024299 rtn 
+:      024303 mouse_store_eeprom_device_info:
+0x5cb1 024304 arg 128 ,temp 
+0x5cb2 024305 arg mem_device_flag ,rega 
+0x5cb3 024306 arg mouse_info_eeprom_offect ,regb 
+0x5cb4 024307 branch iicd_write_protect_eep_data 
+:      024309 mouse_store_eerpom_dpi:
+0x5cb5 024310 arg 1 ,temp 
+0x5cb6 024311 arg mem_mouse_dpi ,rega 
+0x5cb7 024312 arg mouse_dpi_eeprom_offect ,regb 
+0x5cb8 024313 branch iicd_write_protect_eep_data 
+:      024317 mouse_store_flash_device_info:
+0x5cb9 024318 call spid_init_flash 
+0x5cba 024319 call mouse_spid_flash_release_form_powerdown 
+0x5cbb 024320 call mouse_flash_erase_sector 
+0x5cbc 024322 call mouse_information_flash_parameters 
+0x5cbd 024323 call mouse_spid_write_flash 
+0x5cbe 024324 call mouse_spid_flash_powerdown 
+0x5cbf 024325 branch mouse_sensor_spi_init 
+:      024330 mouse_store_otp_device_info:
+0x5cc0 024331 call mouse_write_otp_device_flag 
+0x5cc1 024332 call mouse_write_otp_device_info 
+0x5cc2 024333 branch mouse_write_otp_le_addr_increase_count_info 
+:      024337 mouse_write_otp_device_flag:
+0x5cc3 024338 fetchr regb ,2 ,mem_otp_offset_device_flag 
+0x5cc4 024339 copy regb ,regc 
+:      024340 mouse_write_otp_device_flag_loop:
+0x5cc5 024341 call mouse_read_otp_device_flag_common 
+0x5cc6 024342 fetch 1 ,mem_device_flag_temp 
+0x5cc7 024343 branch mouse_device_flag_store ,blank 
+0x5cc8 024344 store 1 ,mem_device_flag_last 
+0x5cc9 024345 increase 1 ,regc 
+0x5cca 024346 fetch 2 ,mem_otp_offset_device_flag_end 
+0x5ccb 024347 isub regc ,null 
+0x5ccc 024348 nrtn positive 
+0x5ccd 024349 copy regc ,regb 
+0x5cce 024350 branch mouse_write_otp_device_flag_loop 
+:      024352 mouse_device_flag_store:
+0x5ccf 024353 fetch 1 ,mem_device_flag_last 
+0x5cd0 024354 and pdata ,0xf0 ,pdata 
+0x5cd1 024355 branch mouse_device_flag_store_check ,blank 
+0x5cd2 024356 fetch 1 ,mem_device_flag 
+0x5cd3 024357 store 1 ,mem_device_flag_value 
+:      024358 mouse_devoce_flag_store_end:
+0x5cd4 024359 arg 1 ,loopcnt 
+0x5cd5 024360 copy regc ,regb 
+0x5cd6 024361 arg mem_device_flag_value ,rega 
+0x5cd7 024362 branch otp_write 
+:      024364 mouse_device_flag_store_check:
+0x5cd8 024365 fetch 1 ,mem_device_flag_last 
+0x5cd9 024366 fetcht 1 ,mem_device_flag 
+0x5cda 024367 isub temp ,null 
+0x5cdb 024368 rtn zero 
+0x5cdc 024369 lshift4 temp ,temp 
+0x5cdd 024370 iadd temp ,pdata 
+0x5cde 024371 store 1 ,mem_device_flag_value 
+0x5cdf 024373 copy regc ,pdata 
+0x5ce0 024374 fetcht 2 ,mem_otp_offset_device_flag 
+0x5ce1 024375 isub temp ,null 
+0x5ce2 024376 branch mouse_devoce_flag_store_end ,zero 
+0x5ce3 024378 increase -1 ,regc 
+0x5ce4 024379 branch mouse_devoce_flag_store_end 
+:      024383 mouse_write_otp_device_info:
+0x5ce5 024384 fetch 1 ,mem_device_flag 
+0x5ce6 024385 beq mode_24g_device ,mouse_write_otp_24g_addr 
+0x5ce7 024386 beq mode_bt_device1 ,mouse_write_otp_le_device1 
+0x5ce8 024387 beq mode_bt_device2 ,mouse_write_otp_le_device2 
+0x5ce9 024388 rtn 
+:      024390 mouse_write_otp_24g_addr:
+0x5cea 024391 fetchr regb ,2 ,mem_otp_offset_24g_addr 
+0x5ceb 024392 copy regb ,regc 
+:      024393 mouse_otp_store_24g_addr_loop:
+0x5cec 024394 call mouse_read_otp_24g_addr_common 
+0x5ced 024395 fetch 4 ,mem_mouse_24g_addr_temp 
+0x5cee 024396 branch mouse_24g_addr_store ,blank 
+0x5cef 024397 store 4 ,mem_mouse_24g_addr_last 
+0x5cf0 024398 increase 4 ,regc 
+0x5cf1 024399 fetch 2 ,mem_otp_offset_24g_addr_end 
+0x5cf2 024400 isub regc ,null 
+0x5cf3 024401 nrtn positive 
+0x5cf4 024402 copy regc ,regb 
+0x5cf5 024403 branch mouse_otp_store_24g_addr_loop 
+:      024405 mouse_24g_addr_store:
+0x5cf6 024406 fetch 4 ,mem_mouse_24g_addr_last 
+0x5cf7 024407 fetcht 4 ,mem_mouse_24g_addr 
+0x5cf8 024408 isub temp ,null 
+0x5cf9 024409 rtn zero 
+0x5cfa 024410 arg 4 ,loopcnt 
+0x5cfb 024411 arg mem_mouse_24g_addr ,rega 
+0x5cfc 024412 copy regc ,regb 
+0x5cfd 024413 branch otp_write 
+:      024415 mouse_write_otp_le_device1:
+0x5cfe 024416 fetchr regb ,2 ,mem_otp_offset_le_addr1 
+0x5cff 024417 copy regb ,regc 
+:      024418 mouse_otp_store_le_addr1_loop:
+0x5d00 024419 call mouse_read_otp_le_addr1_common 
+0x5d01 024420 fetch 6 ,mem_mouse_le_addr1_temp 
+0x5d02 024421 branch mouse_le_addr1_store ,blank 
+0x5d03 024422 store 6 ,mem_mouse_le_addr1_last 
+0x5d04 024423 increase 6 ,regc 
+0x5d05 024424 fetch 2 ,mem_otp_offset_le_addr1_end 
+0x5d06 024425 isub regc ,null 
+0x5d07 024426 nrtn positive 
+0x5d08 024427 copy regc ,regb 
+0x5d09 024428 branch mouse_otp_store_le_addr1_loop 
+:      024430 mouse_le_addr1_store:
+0x5d0a 024431 fetch 6 ,mem_mouse_le_addr1_last 
+0x5d0b 024432 fetcht 6 ,mem_device1_addr 
+0x5d0c 024433 isub temp ,null 
+0x5d0d 024434 rtn zero 
+0x5d0e 024435 arg 6 ,loopcnt 
+0x5d0f 024436 arg mem_device1_addr ,rega 
+0x5d10 024437 copy regc ,regb 
+0x5d11 024438 branch otp_write 
+:      024441 mouse_write_otp_le_device2:
+0x5d12 024442 fetchr regb ,2 ,mem_otp_offset_le_addr2 
+0x5d13 024443 copy regb ,regc 
+:      024444 mouse_otp_store_le_addr2_loop:
+0x5d14 024445 call mouse_read_otp_le_addr2_common 
+0x5d15 024446 fetch 6 ,mem_mouse_le_addr2_temp 
+0x5d16 024447 branch mouse_le_addr2_store ,blank 
+0x5d17 024448 store 6 ,mem_mouse_le_addr2_last 
+0x5d18 024449 increase 6 ,regc 
+0x5d19 024450 fetch 2 ,mem_otp_offset_le_addr2_end 
+0x5d1a 024451 isub regc ,null 
+0x5d1b 024452 nrtn positive 
+0x5d1c 024453 copy regc ,regb 
+0x5d1d 024454 branch mouse_otp_store_le_addr2_loop 
+:      024456 mouse_le_addr2_store:
+0x5d1e 024457 fetch 6 ,mem_mouse_le_addr2_last 
+0x5d1f 024458 fetcht 6 ,mem_device2_addr 
+0x5d20 024459 isub temp ,null 
+0x5d21 024460 rtn zero 
+0x5d22 024461 arg 6 ,loopcnt 
+0x5d23 024462 arg mem_device2_addr ,rega 
+0x5d24 024463 copy regc ,regb 
+0x5d25 024464 branch otp_write 
+:      024468 mouse_write_otp_le_addr_increase_count_info:
+0x5d26 024469 fetch 1 ,mem_device_flag 
+0x5d27 024470 rtneq mode_24g_device 
+0x5d28 024471 fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
+0x5d29 024472 copy regb ,regc 
+:      024473 mouse_otp_store_le_addr_increase_count_loop:
+0x5d2a 024474 call mouse_read_otp_le_addr_increase_count_common 
+0x5d2b 024475 fetch 2 ,mem_random_addr_increase_count_temp 
+0x5d2c 024476 branch mouse_le_addr_increase_count_store ,blank 
+0x5d2d 024477 store 2 ,mem_random_addr_increase_count_last 
+0x5d2e 024478 increase 2 ,regc 
+0x5d2f 024479 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
+0x5d30 024480 isub regc ,null 
+0x5d31 024481 nrtn positive 
+0x5d32 024482 copy regc ,regb 
+0x5d33 024483 branch mouse_otp_store_le_addr_increase_count_loop 
+:      024485 mouse_le_addr_increase_count_store:
+0x5d34 024486 fetch 2 ,mem_random_addr_increase_count_last 
+0x5d35 024487 fetcht 2 ,mem_random_addr_increase_count 
+0x5d36 024488 isub temp ,null 
+0x5d37 024489 rtn zero 
+0x5d38 024490 arg 2 ,loopcnt 
+0x5d39 024491 arg mem_random_addr_increase_count ,rega 
+0x5d3a 024492 copy regc ,regb 
+0x5d3b 024493 branch otp_write 
+:      024497 mouse_store_otp_dpi:
+0x5d3c 024498 fetch mouse_flag_len ,mem_mouse_flag 
+0x5d3d 024499 rtnbit0 mouse_enable_load_and_store_dpi 
+0x5d3e 024500 fetchr regb ,2 ,mem_otp_offset_dpi 
+0x5d3f 024501 copy regb ,regc 
+:      024502 mouse_otp_store_dpi_loop:
+0x5d40 024503 call mouse_read_otp_dpi_common 
+0x5d41 024504 fetch 1 ,mem_mouse_dpi_temp 
+0x5d42 024505 branch mouse_otp_dpi_store ,blank 
+0x5d43 024506 store 1 ,mem_mouse_dpi_last 
+0x5d44 024507 increase 1 ,regc 
+0x5d45 024508 fetch 2 ,mem_otp_offset_dpi_end 
+0x5d46 024509 isub regc ,null 
+0x5d47 024510 nrtn positive 
+0x5d48 024511 copy regc ,regb 
+0x5d49 024512 branch mouse_otp_store_dpi_loop 
+:      024514 mouse_otp_dpi_store:
+0x5d4a 024515 fetch 1 ,mem_mouse_dpi_last 
+0x5d4b 024516 and pdata ,0xf0 ,pdata 
+0x5d4c 024517 branch mouse_dpi_store_last ,blank 
+0x5d4d 024518 fetch 1 ,mem_mouse_dpi 
+0x5d4e 024519 store 1 ,mem_mouse_otp_dpi_value 
+:      024520 mouse_dpi_store_end:
+0x5d4f 024521 arg 1 ,loopcnt 
+0x5d50 024522 copy regc ,regb 
+0x5d51 024523 arg mem_mouse_otp_dpi_value ,rega 
+0x5d52 024524 branch otp_write 
+:      024526 mouse_dpi_store_last:
+0x5d53 024527 fetch 1 ,mem_mouse_dpi_last 
+0x5d54 024528 fetcht 1 ,mem_mouse_dpi 
+0x5d55 024529 isub temp ,null 
+0x5d56 024530 rtn zero 
+0x5d57 024531 lshift4 temp ,temp 
+0x5d58 024532 iadd temp ,pdata 
+0x5d59 024533 store 1 ,mem_mouse_otp_dpi_value 
+0x5d5a 024535 copy regc ,pdata 
+0x5d5b 024536 fetcht 2 ,mem_otp_offset_dpi 
+0x5d5c 024537 isub temp ,null 
+0x5d5d 024538 branch mouse_dpi_store_end ,zero 
+0x5d5e 024540 increase -1 ,regc 
+0x5d5f 024541 branch mouse_dpi_store_end 
+:      024550 mouse_load_eeprom_info_check:
+0x5d60 024551 call iicd_read_init_pin 
+0x5d61 024552 fetch mouse_flag_len ,mem_mouse_flag 
+0x5d62 024553 isolate1 mouse_enable_2k_eeprom ,pdata 
+0x5d63 024554 ncall clear_eeprom_size_2k ,true 
+0x5d64 024555 call mouse_eeprom_load_recon_info 
+0x5d65 024556 branch mouse_app_initflag_check 
+:      024558 mouse_eeprom_load_recon_info:
+0x5d66 024559 arg 128 ,temp 
+0x5d67 024560 arg mem_device_flag ,rega 
+0x5d68 024561 arg mouse_info_eeprom_offect ,regb 
+0x5d69 024562 branch iicd_read_eep_data 
+:      024564 mouse_load_eeprom_dpi:
+0x5d6a 024565 arg 1 ,temp 
+0x5d6b 024566 arg mem_mouse_dpi ,rega 
+0x5d6c 024567 arg mouse_dpi_eeprom_offect ,regb 
+0x5d6d 024568 branch iicd_read_eep_data 
+:      024572 mouse_load_flash_info_check:
+0x5d6e 024573 call spid_init_flash 
+0x5d6f 024574 call mouse_spid_flash_release_form_powerdown 
+0x5d70 024575 call mouse_information_flash_parameters 
+0x5d71 024576 call spid_read_flash 
+0x5d72 024577 call mouse_spid_flash_powerdown 
+0x5d73 024578 call mouse_app_initflag_check 
+0x5d74 024579 branch mouse_sensor_spi_init 
+:      024581 mouse_information_flash_parameters:
+0x5d75 024582 setarg mem_mouse_information_end 
+0x5d76 024583 arg mem_mouse_information_start ,temp 
+0x5d77 024584 isub temp ,temp 
+0x5d78 024585 fetch 3 ,mem_flash_base 
+0x5d79 024586 arg mem_mouse_information_start ,rega 
+0x5d7a 024587 rtn 
+:      024589 mouse_spid_flash_release_form_powerdown:
+0x5d7b 024590 jam flash_command_release_from_powerdown ,mem_temp 
+:      024591 mouse_spid_write_flash_cmd:
+0x5d7c 024592 call delay_nop100 
+0x5d7d 024593 call spid_unlock_flash 
+0x5d7e 024594 arg mem_write_flash_head_temp ,rega 
+0x5d7f 024595 fetcht 1 ,mem_temp 
+0x5d80 024596 call mouse_spid_write_flash_cmd_common 
+0x5d81 024597 branch delay_nop100 
+:      024599 mouse_spid_flash_powerdown:
+0x5d82 024600 jam flash_command_powerdown ,mem_temp 
+0x5d83 024601 branch mouse_spid_write_flash_cmd 
+:      024603 mouse_spid_write_flash_cmd_common:
+0x5d84 024604 istoret 1 ,rega 
+0x5d85 024605 rshift16 pdata ,temp 
+0x5d86 024606 istoret 1 ,contw 
+0x5d87 024607 rshift8 pdata ,temp 
+0x5d88 024608 istoret 1 ,contw 
+0x5d89 024609 istore 1 ,contw 
+0x5d8a 024610 deposit rega 
+0x5d8b 024611 store 2 ,core_spid_txaddr 
+0x5d8c 024612 setarg 0 
+0x5d8d 024613 store 2 ,core_spid_rxlen 
+0x5d8e 024614 jam spid_start ,core_misc_ctrl 
+0x5d8f 024615 branch wait_spid_done 
+:      024617 mouse_flash_erase_sector:
+0x5d90 024618 fetch 3 ,mem_flash_base 
+0x5d91 024619 store 3 ,mem_spi_write_addr 
+0x5d92 024620 branch spid_flash_erase_sector + 2 
+:      024622 mouse_spid_write_flash:
+0x5d93 024623 copy pdata ,regc 
+0x5d94 024624 copy rega ,pdata 
+0x5d95 024625 increase -4 ,pdata 
+0x5d96 024626 copy pdata ,regb 
+0x5d97 024627 ifetch 4 ,regb 
+0x5d98 024628 store 4 ,mem_write_flash_head_temp 
+0x5d99 024629 copy regc ,pdata 
+0x5d9a 024630 call spid_write_flash 
+0x5d9b 024631 fetch 4 ,mem_write_flash_head_temp 
+0x5d9c 024632 istore 4 ,regb 
+0x5d9d 024633 rtn 
+:      024635 mouse_flash_power_down:
+0x5d9e 024636 fetch mouse_flag_len ,mem_mouse_flag 
+0x5d9f 024637 rtnbit0 mouse_enable_flash 
+0x5da0 024638 call mouse_spid_flash_powerdown 
+0x5da1 024639 call twspi_enable 
+0x5da2 024640 fetcht 1 ,mem_spi_cs_gpio 
+0x5da3 024641 call gpio_out_inactive 
+0x5da4 024642 fetcht 1 ,mem_spi_hold_gpio 
+0x5da5 024643 branch mouse_gpio_config_input_pd 
+:      024647 mouse_load_otp_info_check:
+0x5da6 024648 call mouse_read_otp_dpi 
+0x5da7 024649 call mouse_read_otp_device_flag 
+0x5da8 024650 call mouse_read_otp_device_info 
+0x5da9 024651 call mouse_read_otp_le_addr_increase_count_info 
+:      024652 mouse_otp_load_app_initflag:
+0x5daa 024653 arg 2 ,loopcnt 
+0x5dab 024654 fetch 2 ,mem_otp_offset_app_initflag 
+0x5dac 024655 copy pdata ,regb 
+0x5dad 024656 arg mem_store_flag ,rega 
+0x5dae 024657 call otp_read_data 
+0x5daf 024658 call mouse_app_initflag_check 
+:      024659 mouse_otp_store_app_initflag:
+0x5db0 024660 arg 2 ,loopcnt 
+0x5db1 024661 arg mem_store_flag ,rega 
+0x5db2 024662 fetchr regb ,2 ,mem_otp_offset_app_initflag 
+0x5db3 024663 branch otp_write 
+:      024667 mouse_read_otp_device_flag:
+0x5db4 024668 fetchr regb ,2 ,mem_otp_offset_device_flag 
+0x5db5 024669 copy regb ,regc 
+:      024670 mouse_read_otp_device_flag_loop:
+0x5db6 024671 call mouse_read_otp_device_flag_common 
+0x5db7 024672 fetch 1 ,mem_device_flag_temp 
+0x5db8 024673 branch mouse_device_flag_load ,blank 
+0x5db9 024674 store 1 ,mem_device_flag_last 
+0x5dba 024675 increase 1 ,regc 
+0x5dbb 024676 fetch 2 ,mem_otp_offset_device_flag_end 
+0x5dbc 024677 isub regc ,null 
+0x5dbd 024678 nbranch mouse_device_flag_load ,positive 
+0x5dbe 024679 copy regc ,regb 
+0x5dbf 024680 branch mouse_read_otp_device_flag_loop 
+:      024682 mouse_read_otp_device_flag_common:
+0x5dc0 024683 arg 1 ,loopcnt 
+0x5dc1 024684 arg mem_device_flag_temp ,rega 
+0x5dc2 024685 branch otp_read_data 
+:      024687 mouse_device_flag_load:
+0x5dc3 024688 fetch 1 ,mem_device_flag_last 
+0x5dc4 024689 copy pdata ,temp 
+0x5dc5 024690 and pdata ,0xf0 ,pdata 
+0x5dc6 024691 branch mouse_device_flag_load_last ,blank 
+0x5dc7 024692 rshift4 pdata ,pdata 
+0x5dc8 024693 branch mouse_device_flag_load_end 
+:      024695 mouse_device_flag_load_last:
+0x5dc9 024696 copy temp ,pdata 
+:      024697 mouse_device_flag_load_end:
+0x5dca 024698 store 1 ,mem_device_flag 
+0x5dcb 024699 rtn 
+:      024702 mouse_read_otp_device_info:
+0x5dcc 024703 fetch 1 ,mem_device_flag 
+0x5dcd 024704 beq mode_24g_device ,mouse_read_otp_24g_addr 
+0x5dce 024705 beq mode_bt_device1 ,mouse_read_otp_le_device1 
+0x5dcf 024706 beq mode_bt_device2 ,mouse_read_otp_le_device2 
+0x5dd0 024707 rtn 
+:      024709 mouse_read_otp_le_device1:
+0x5dd1 024710 call mouse_read_otp_le_device1_addr 
+0x5dd2 024711 branch mouse_read_otp_le_device1_locall_addr 
+:      024713 mouse_read_otp_le_device2:
+0x5dd3 024714 call mouse_read_otp_le_device2_addr 
+0x5dd4 024715 branch mouse_read_otp_le_device2_locall_addr 
+:      024718 mouse_read_otp_le_device1_addr:
+0x5dd5 024719 fetchr regb ,2 ,mem_otp_offset_le_addr1 
+0x5dd6 024720 copy regb ,regc 
+:      024721 mouse_read_otp_le_device1_addr_loop:
+0x5dd7 024722 call mouse_read_otp_le_addr1_common 
+0x5dd8 024723 fetch 6 ,mem_mouse_le_addr1_temp 
+0x5dd9 024724 branch mouse_le_addr1_load ,blank 
+0x5dda 024725 store 6 ,mem_mouse_le_addr1_last 
+0x5ddb 024726 increase 6 ,regc 
+0x5ddc 024727 fetch 2 ,mem_otp_offset_le_addr1_end 
+0x5ddd 024728 isub regc ,null 
+0x5dde 024729 nbranch mouse_le_addr1_load ,positive 
+0x5ddf 024730 copy regc ,regb 
+0x5de0 024731 branch mouse_read_otp_le_device1_addr_loop 
+:      024733 mouse_read_otp_le_addr1_common:
+0x5de1 024734 arg 6 ,loopcnt 
+0x5de2 024735 arg mem_mouse_le_addr1_temp ,rega 
+0x5de3 024736 branch otp_read_data 
+:      024738 mouse_le_addr1_load:
+0x5de4 024739 fetch 6 ,mem_mouse_le_addr1_last 
+0x5de5 024740 store 6 ,mem_device1_addr 
+0x5de6 024741 rtn 
+:      024744 mouse_read_otp_le_device1_locall_addr:
+0x5de7 024745 fetchr regb ,2 ,mem_otp_offset_le_locall_addr1 
+0x5de8 024746 copy regb ,regc 
+:      024747 mouse_read_otp_le_device1_locall_addr_loop:
+0x5de9 024748 call mouse_read_otp_le_locall_addr1_common 
+0x5dea 024749 fetch 6 ,mem_mouse_le_locall_addr1_temp 
+0x5deb 024750 branch mouse_le_locall_addr1_load ,blank 
+0x5dec 024751 store 6 ,mem_mouse_le_locall_addr1_last 
+0x5ded 024752 increase 6 ,regc 
+0x5dee 024753 fetch 2 ,mem_otp_offset_le_locall_addr1_end 
+0x5def 024754 isub regc ,null 
+0x5df0 024755 nbranch mouse_le_locall_addr1_load ,positive 
+0x5df1 024756 copy regc ,regb 
+0x5df2 024757 branch mouse_read_otp_le_device1_locall_addr_loop 
+:      024759 mouse_read_otp_le_locall_addr1_common:
+0x5df3 024760 arg 6 ,loopcnt 
+0x5df4 024761 arg mem_mouse_le_locall_addr1_temp ,rega 
+0x5df5 024762 branch otp_read_data 
+:      024764 mouse_le_locall_addr1_load:
+0x5df6 024765 fetch 6 ,mem_mouse_le_locall_addr1_last 
+0x5df7 024766 store 6 ,mem_device1_locall_addr 
+0x5df8 024767 rtn 
+:      024771 mouse_read_otp_le_device2_addr:
+0x5df9 024772 fetchr regb ,2 ,mem_otp_offset_le_addr2 
+0x5dfa 024773 copy regb ,regc 
+:      024774 mouse_read_otp_le_device2_addr_loop:
+0x5dfb 024775 call mouse_read_otp_le_addr2_common 
+0x5dfc 024776 fetch 6 ,mem_mouse_le_addr2_temp 
+0x5dfd 024777 branch mouse_le_addr2_load ,blank 
+0x5dfe 024778 store 6 ,mem_mouse_le_addr2_last 
+0x5dff 024779 increase 6 ,regc 
+0x5e00 024780 fetch 2 ,mem_otp_offset_le_addr2_end 
+0x5e01 024781 isub regc ,null 
+0x5e02 024782 nbranch mouse_le_addr2_load ,positive 
+0x5e03 024783 copy regc ,regb 
+0x5e04 024784 branch mouse_read_otp_le_device2_addr_loop 
+:      024786 mouse_read_otp_le_addr2_common:
+0x5e05 024787 arg 6 ,loopcnt 
+0x5e06 024788 arg mem_mouse_le_addr2_temp ,rega 
+0x5e07 024789 branch otp_read_data 
+:      024791 mouse_le_addr2_load:
+0x5e08 024792 fetch 6 ,mem_mouse_le_addr2_last 
+0x5e09 024793 store 6 ,mem_device2_addr 
+0x5e0a 024794 rtn 
+:      024797 mouse_read_otp_le_device2_locall_addr:
+0x5e0b 024798 fetchr regb ,2 ,mem_otp_offset_le_locall_addr2 
+0x5e0c 024799 copy regb ,regc 
+:      024800 mouse_read_otp_le_device2_locall_addr_loop:
+0x5e0d 024801 call mouse_read_otp_le_locall_addr2_common 
+0x5e0e 024802 fetch 6 ,mem_mouse_le_locall_addr2_temp 
+0x5e0f 024803 branch mouse_le_locall_addr2_load ,blank 
+0x5e10 024804 store 6 ,mem_mouse_le_locall_addr2_last 
+0x5e11 024805 increase 6 ,regc 
+0x5e12 024806 fetch 2 ,mem_otp_offset_le_locall_addr2_end 
+0x5e13 024807 isub regc ,null 
+0x5e14 024808 nbranch mouse_le_locall_addr2_load ,positive 
+0x5e15 024809 copy regc ,regb 
+0x5e16 024810 branch mouse_read_otp_le_device2_locall_addr_loop 
+:      024812 mouse_read_otp_le_locall_addr2_common:
+0x5e17 024813 arg 6 ,loopcnt 
+0x5e18 024814 arg mem_mouse_le_locall_addr2_temp ,rega 
+0x5e19 024815 branch otp_read_data 
+:      024817 mouse_le_locall_addr2_load:
+0x5e1a 024818 fetch 6 ,mem_mouse_le_locall_addr2_last 
+0x5e1b 024819 store 6 ,mem_device2_locall_addr 
+0x5e1c 024820 rtn 
+:      024824 mouse_read_otp_24g_addr:
+0x5e1d 024825 fetchr regb ,2 ,mem_otp_offset_24g_addr 
+0x5e1e 024826 copy regb ,regc 
+:      024827 mouse_read_otp_24g_addr_loop:
+0x5e1f 024828 call mouse_read_otp_24g_addr_common 
+0x5e20 024829 fetch 4 ,mem_mouse_24g_addr_temp 
+0x5e21 024830 branch mouse_24g_addr_load ,blank 
+0x5e22 024831 store 4 ,mem_mouse_24g_addr_last 
+0x5e23 024832 increase 4 ,regc 
+0x5e24 024833 fetch 2 ,mem_otp_offset_24g_addr_end 
+0x5e25 024834 isub regc ,null 
+0x5e26 024835 nbranch mouse_24g_addr_load ,positive 
+0x5e27 024836 copy regc ,regb 
+0x5e28 024837 branch mouse_read_otp_24g_addr_loop 
+:      024839 mouse_read_otp_24g_addr_common:
+0x5e29 024840 arg 4 ,loopcnt 
+0x5e2a 024841 arg mem_mouse_24g_addr_temp ,rega 
+0x5e2b 024842 branch otp_read_data 
+:      024844 mouse_24g_addr_load:
+0x5e2c 024845 fetch 4 ,mem_mouse_24g_addr_last 
+0x5e2d 024846 store 4 ,mem_mouse_24g_addr 
+0x5e2e 024847 rtn 
+:      024850 mouse_read_otp_le_addr_increase_count_info:
+0x5e2f 024851 fetch 1 ,mem_device_flag 
+0x5e30 024852 rtneq mode_24g_device 
+0x5e31 024853 fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
+0x5e32 024854 copy regb ,regc 
+:      024855 mouse_read_otp_le_addr_increase_count_loop:
+0x5e33 024856 call mouse_read_otp_le_addr_increase_count_common 
+0x5e34 024857 fetch 2 ,mem_random_addr_increase_count_temp 
+0x5e35 024858 branch mouse_le_addr_increase_count_load ,blank 
+0x5e36 024859 store 2 ,mem_random_addr_increase_count_last 
+0x5e37 024860 increase 2 ,regc 
+0x5e38 024861 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
+0x5e39 024862 isub regc ,null 
+0x5e3a 024863 nbranch mouse_le_addr_increase_count_load ,positive 
+0x5e3b 024864 copy regc ,regb 
+0x5e3c 024865 branch mouse_read_otp_le_addr_increase_count_loop 
+:      024867 mouse_read_otp_le_addr_increase_count_common:
+0x5e3d 024868 arg 2 ,loopcnt 
+0x5e3e 024869 arg mem_random_addr_increase_count_temp ,rega 
+0x5e3f 024870 branch otp_read_data 
+:      024872 mouse_le_addr_increase_count_load:
+0x5e40 024873 fetch 2 ,mem_random_addr_increase_count_temp 
+0x5e41 024874 store 2 ,mem_random_addr_increase_count 
+0x5e42 024875 rtn 
+:      024878 mouse_read_otp_dpi:
+0x5e43 024879 fetch mouse_flag_len ,mem_mouse_flag 
+0x5e44 024880 bbit0 mouse_enable_load_and_store_dpi ,mouse_load_default_dpi 
+0x5e45 024881 fetchr regb ,2 ,mem_otp_offset_dpi 
+0x5e46 024882 copy regb ,regc 
+:      024883 mouse_read_otp_dpi_loop:
+0x5e47 024884 call mouse_read_otp_dpi_common 
+0x5e48 024885 fetch 1 ,mem_mouse_dpi_temp 
+0x5e49 024886 branch mouse_dpi_load ,blank 
+0x5e4a 024887 store 1 ,mem_mouse_dpi_last 
+0x5e4b 024888 increase 1 ,regc 
+0x5e4c 024889 fetch 2 ,mem_otp_offset_dpi_end 
+0x5e4d 024890 isub regc ,null 
+0x5e4e 024891 nbranch mouse_dpi_load ,positive 
+0x5e4f 024892 copy regc ,regb 
+0x5e50 024893 branch mouse_read_otp_dpi_loop 
+:      024895 mouse_read_otp_dpi_common:
+0x5e51 024896 arg 1 ,loopcnt 
+0x5e52 024897 arg mem_mouse_dpi_temp ,rega 
+0x5e53 024898 branch otp_read_data 
+:      024900 mouse_dpi_load:
+0x5e54 024901 fetch 1 ,mem_mouse_dpi_last 
+0x5e55 024902 copy pdata ,temp 
+0x5e56 024903 and pdata ,0xf0 ,pdata 
+0x5e57 024904 branch mouse_dpi_load_last ,blank 
+0x5e58 024905 rshift4 pdata ,pdata 
+0x5e59 024906 branch mouse_dpi_load_end 
+:      024908 mouse_dpi_load_last:
+0x5e5a 024909 copy temp ,pdata 
+:      024910 mouse_dpi_load_end:
+0x5e5b 024911 store 1 ,mem_mouse_dpi 
+0x5e5c 024912 rtn 
+:      024917 mouse_idle:
+0x5e5d 024918 bpatch patch11_6 ,mem_patch11 
+0x5e5e 024919 call mouse_low_voltage_led_no_enter_lpm 
+0x5e5f 024920 call ui_check_paring_button 
+0x5e60 024921 call mouse_dpi_check 
+0x5e61 024922 call mouse_dpi_another_gpio_check 
+0x5e62 024923 call mouse_select_device_check 
+0x5e63 024924 call mouse_check_select_device_by_switch 
+0x5e64 024925 call mouse_bt_button_check 
+0x5e65 024926 branch mouse_wheel_check 
+:      024928 mouse_select_device_check:
+0x5e66 024929 fetch mouse_flag_len ,mem_mouse_flag 
+0x5e67 024930 bbit1 mouse_enable_select_device_by_pb_button ,mouse_select_device_by_pb_button 
+0x5e68 024931 bbit1 mouse_enable_pb_button_long_press_disconvery ,mouse_select_device_by_pb_button 
+0x5e69 024932 rtn 
+:      024934 mouse_select_device_by_pb_button_check_once:
+0x5e6a 024935 jam 0x03 ,mem_mouse_pbkey_press_status 
+:      024936 mouse_select_device_by_pb_button:
+0x5e6b 024937 call mouse_select_device_by_pb_button_check 
+0x5e6c 024938 branch mouse_select_device_by_pb_button_exit 
+:      024940 mouse_select_device_by_pb_button_check:
+0x5e6d 024941 bpatch patch11_7 ,mem_patch11 
+0x5e6e 024942 fetch 1 ,mem_config_select_device_button_gpio 
+0x5e6f 024943 rtneq gpio_disable 
+0x5e70 024944 arg 0 ,rega 
+0x5e71 024945 jam mouse_pb_key ,mem_mouse_key_temp 
+0x5e72 024946 fetcht 1 ,mem_config_select_device_button_gpio 
+0x5e73 024947 call mouse_pb_button_check 
+0x5e74 024948 store 1 ,mem_mouse_pbkey_press_status 
+0x5e75 024949 fetch 1 ,mem_matrix_public_gpio 
+0x5e76 024950 beq gpio_disable ,mouse_3io6key_pb_button_check_end 
+0x5e77 024951 branch mouse_matrix_public_gpio_reset 
+:      024953 mouse_retransmit_select_device_by_pb_button:
+0x5e78 024954 call mouse_select_device_by_pb_button_check 
+0x5e79 024955 copy rega ,pdata 
+0x5e7a 024956 bbit1 mouse_pb_key ,mouse_select_device_button_down + 2 
+0x5e7b 024957 branch mouse_select_device_button_up 
+:      024959 mouse_3io6key_pb_button_check_end:
+0x5e7c 024960 fetcht 1 ,mem_config_select_device_button_gpio 
+0x5e7d 024961 call mouse_gpio_config_input_pu 
+:      024962 mouse_select_device_by_pb_button_exit:
+0x5e7e 024963 copy rega ,pdata 
+0x5e7f 024964 bbit1 mouse_pb_key ,mouse_select_device_button_down 
+0x5e80 024965 branch mouse_select_device_button_up 
+:      024967 mouse_pb_button_check:
+0x5e81 024968 fetch mouse_flag_len ,mem_mouse_flag 
+0x5e82 024969 bbit1 mouse_enable_pb_button_connect_gnd ,mouse_pb_button_connect_gnd 
+0x5e83 024970 fetch 1 ,mem_mouse_pbkey_press_status 
+0x5e84 024971 copy pdata ,regc 
+0x5e85 024972 fetch 1 ,mem_matrix_public_gpio 
+0x5e86 024973 beq gpio_disable ,mouse_3io6key_check 
+0x5e87 024974 fetch 1 ,mem_mouse_ghost_flag 
+0x5e88 024975 nbranch mouse_select_device_by_pb_button_end ,blank 
+0x5e89 024976 branch mouse_pb_button_connect_matrix 
+:      024978 mouse_select_device_by_pb_button_end:
+0x5e8a 024979 jam pb_button_state_up ,mem_select_device_button_statue 
+0x5e8b 024980 jam 0 ,mem_mouse_pbkey_press_status 
+0x5e8c 024981 rtn 
+:      024983 mouse_pb_button_connect_gnd:
+0x5e8d 024984 fetch 1 ,mem_mouse_pbkey_press_status 
+0x5e8e 024985 branch mouse_check_key_connect_gnd 
+:      024987 mouse_pb_button_connect_matrix:
+0x5e8f 024988 call gpio_get_bit 
+0x5e90 024989 fetcht 1 ,mem_matrix_public_gpio 
+0x5e91 024990 branch mouse_pb_button_connect_gnd ,true 
+0x5e92 024991 fetcht 1 ,mem_matrix_public_gpio 
+0x5e93 024992 call gpio_out_active 
+0x5e94 024993 fetcht 1 ,mem_config_select_device_button_gpio 
+0x5e95 024994 fetch 1 ,mem_mouse_pbkey_press_status 
+0x5e96 024995 branch mouse_check_key_connect_gnd 
+:      024997 mouse_select_device_button_up:
+0x5e97 024998 fetch 1 ,mem_select_device_button_statue 
+0x5e98 024999 rtneq pb_button_state_up 
+0x5e99 025000 jam pb_button_state_up ,mem_select_device_button_statue 
+0x5e9a 025001 fetch mouse_flag_len ,mem_mouse_flag 
+0x5e9b 025002 rtnbit1 mouse_enable_pb_button_short_press_enter_discovery 
+0x5e9c 025003 fetch 1 ,mem_bt_discovery_count 
+0x5e9d 025004 sub pdata ,20 ,null 
+0x5e9e 025005 ncall mouse_ready_reconnection_by_button ,positive 
+0x5e9f 025006 fetch 1 ,mem_ui_button_timeout 
+0x5ea0 025007 store 1 ,mem_bt_discovery_count 
+0x5ea1 025008 rtn 
+:      025010 mouse_select_device_button_down:
+0x5ea2 025011 call mouse_select_device_ghost_check 
+0x5ea3 025012 rtn user 
+0x5ea4 025013 fetch 1 ,mem_select_device_button_statue 
+0x5ea5 025014 rtneq pb_button_state_down 
+0x5ea6 025015 jam pb_button_state_down ,mem_select_device_button_statue 
+0x5ea7 025016 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ea8 025017 bbit1 mouse_enable_pb_button_short_press_enter_discovery ,mouse_long_button_bt_discovery 
+0x5ea9 025018 fetch 1 ,mem_mouse_direct_timer 
+0x5eaa 025019 rtn blank 
+0x5eab 025020 fetch 1 ,mem_mouse_direct_timeout 
+0x5eac 025021 store 1 ,mem_mouse_direct_timer 
+0x5ead 025022 rtn 
+:      025024 mouse_select_device_ghost_check:
+0x5eae 025025 disable user 
+0x5eaf 025026 fetch mouse_flag_len ,mem_mouse_flag 
+0x5eb0 025027 rtnbit1 mouse_enable_pb_button_connect_gnd 
+:      025028 mouse_ghost_key_value_check:
+0x5eb1 025029 fetch 1 ,mem_mouse_lkey_press_status 
+0x5eb2 025030 rtn blank 
+0x5eb3 025031 fetch 1 ,mem_mouse_rkey_press_status 
+0x5eb4 025032 rtn blank 
+0x5eb5 025033 branch enable_user 
+:      025035 mouse_check_select_device_by_switch:
+0x5eb6 025036 bpatch patch12_0 ,mem_patch12 
+0x5eb7 025037 fetch mouse_flag_len ,mem_mouse_flag 
+0x5eb8 025038 rtnbit0 mouse_enable_select_device_by_switch_gpio 
+0x5eb9 025039 fetcht 1 ,mem_device_switch_gpio 
+0x5eba 025040 call mouse_gpio_config_input_pu 
+0x5ebb 025041 fetcht 1 ,mem_device_switch_gpio 
+0x5ebc 025042 call gpio_get_bit 
+0x5ebd 025043 branch mouse_check_select_24g_device ,true 
+:      025044 mouse_select_btdevice:
+0x5ebe 025045 fetch 1 ,mem_device_flag 
+0x5ebf 025046 rtneq mode_bt_device1 
+0x5ec0 025047 jam mode_bt_device1 ,mem_device_flag 
+0x5ec1 025048 branch mouse_stop_bluetooth_mode 
+:      025050 mouse_check_select_24g_device:
+0x5ec2 025051 fetch 1 ,mem_device_flag 
+0x5ec3 025052 rtneq mode_24g_device 
+0x5ec4 025053 jam mode_24g_device ,mem_device_flag 
+0x5ec5 025054 branch mouse_24g_stop 
+:      025056 mouse_ready_reconnection_by_button:
+0x5ec6 025057 bpatch patch12_1 ,mem_patch12 
+0x5ec7 025058 fetch 1 ,mem_device_number 
+0x5ec8 025059 rtneq 1 
+0x5ec9 025060 call mouse_select_device_number 
+0x5eca 025061 storet 1 ,mem_device_flag 
+:      025062 mouse_store_device_number_before_reset:
+0x5ecb 025064 call mouse_select_device_enable 
+0x5ecc 025065 call mouse_stop_bluetooth_mode 
+0x5ecd 025066 call app_evt_button_long_pressed 
+0x5ece 025067 call mouse_select_device_disable 
+0x5ecf 025068 jam 1 ,mem_mouse_need_soft_reset 
+0x5ed0 025069 branch mouse_store_device_info_delay 
+:      025071 mouse_soft_reset:
+0x5ed1 025072 call mouse_select_device_enable 
+0x5ed2 025073 branch soft_reset_chip 
+:      025075 mouse_select_device_number:
+0x5ed3 025076 fetcht 1 ,mem_device_flag 
+0x5ed4 025077 increase 1 ,temp 
+0x5ed5 025078 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ed6 025079 bbit1 mouse_enable_24g ,mouse_select_device_number_24g 
+0x5ed7 025080 sub temp ,2 ,null 
+0x5ed8 025081 ncall mouse_select_device_count_clean_bt ,positive 
+0x5ed9 025082 rtn 
+:      025084 mouse_select_device_number_24g:
+0x5eda 025085 fetch 1 ,mem_device_number 
+0x5edb 025086 increase -1 ,pdata 
+0x5edc 025087 isub temp ,null 
+0x5edd 025088 ncall mouse_select_device_count_clean_24g ,positive 
+0x5ede 025089 rtn 
+:      025091 mouse_select_device_count_clean_24g:
+0x5edf 025092 arg 0 ,temp 
+0x5ee0 025093 rtn 
+:      025094 mouse_select_device_count_clean_bt:
+0x5ee1 025095 arg 1 ,temp 
+0x5ee2 025096 rtn 
+:      025098 mouse_store_device_number2eeprom:
+0x5ee3 025099 arg 1 ,temp 
+0x5ee4 025100 arg mem_device_flag ,rega 
+0x5ee5 025101 arg 0 ,regb 
+0x5ee6 025102 branch iicd_write_protect_eep_data 
+:      025104 mouse_bt_button_check:
+0x5ee7 025105 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ee8 025106 rtnbit0 mouse_enable_pb_button_short_press_enter_discovery 
+0x5ee9 025107 branch mouse_select_device_by_pb_button 
+:      025109 mouse_select_device_enable:
+0x5eea 025110 arg mouse_select_device_flag ,queue 
+0x5eeb 025111 branch mouse_enable_function_flag 
+:      025112 mouse_select_device_disable:
+0x5eec 025113 arg mouse_select_device_flag ,queue 
+0x5eed 025114 branch mouse_disable_function_flag 
+:      025115 mouse_bt_cannel_reconn_enable:
+0x5eee 025116 arg mouse_bt_cannel_reconn_flag ,queue 
+0x5eef 025117 branch mouse_enable_function_flag 
+:      025118 mouse_bt_cannel_reconn_disable:
+0x5ef0 025119 arg mouse_bt_cannel_reconn_flag ,queue 
+0x5ef1 025120 branch mouse_disable_function_flag 
+:      025121 mouse_bt_discovery_button_down_enable:
+0x5ef2 025122 arg mouse_bt_discovery_button_down_flag ,queue 
+0x5ef3 025123 branch mouse_enable_function_flag 
+:      025124 mouse_bt_discovery_button_down_disable:
+0x5ef4 025125 arg mouse_bt_discovery_button_down_flag ,queue 
+0x5ef5 025126 branch mouse_disable_function_flag 
+:      025128 mouse_adc_read_enable:
+0x5ef6 025129 arg mouse_enable_adc ,queue 
+0x5ef7 025130 branch mouse_enable_function_flag 
+:      025132 mouse_24g_set_250hz:
+0x5ef8 025133 arg mouse_enable_24g_250hz ,queue 
+0x5ef9 025134 branch mouse_enable_function_flag 
+:      025136 mouse_24g_search_dongle_enable:
+0x5efa 025137 arg mouse_enable_24g_search_dongle ,queue 
+0x5efb 025138 branch mouse_enable_function_flag 
+:      025140 mouse_16m_enable:
+0x5efc 025141 arg mouse_enable_16m ,queue 
+0x5efd 025142 branch mouse_enable_function_flag 
+:      025144 mouse_dpi_4level_enable:
+0x5efe 025145 arg mouse_enable_dpi_level_4 ,queue 
+0x5eff 025146 branch mouse_enable_function_flag 
+:      025148 mouse_enable_function_flag:
+0x5f00 025149 fetch mouse_flag_len ,mem_mouse_flag 
+0x5f01 025150 qset1 pdata 
+0x5f02 025151 store mouse_flag_len ,mem_mouse_flag 
+0x5f03 025152 rtn 
+:      025154 mouse_disable_function_flag:
+0x5f04 025155 fetch mouse_flag_len ,mem_mouse_flag 
+0x5f05 025156 qset0 pdata 
+0x5f06 025157 store mouse_flag_len ,mem_mouse_flag 
+0x5f07 025158 rtn 
+:      025160 mouse_customer_key_enable:
+0x5f08 025161 setarg 0 
+0x5f09 025162 store 8 ,mem_customer_key_press 
+0x5f0a 025163 store 8 ,mem_customer_key_release 
+0x5f0b 025164 fetch 1 ,mem_mouse_customer_function 
+0x5f0c 025165 beq 2 ,mouse_customer_key_ctrl_alt_a 
+0x5f0d 025166 beq 3 ,mouse_customer_ac_home 
+0x5f0e 025167 beq 4 ,mouse_customer_key_play 
+0x5f0f 025168 setarg 0x070008 
+:      025169 mouse_customer_standrad_key_set:
+0x5f10 025170 store 8 ,mem_customer_key_press + 1 
+0x5f11 025171 rtn 
+:      025173 mouse_customer_key_ctrl_alt_a:
+0x5f12 025174 setarg 0x040005 
+0x5f13 025175 branch mouse_customer_standrad_key_set 
+:      025177 mouse_customer_ac_home:
+0x5f14 025178 setarg 0x022303 
+:      025179 mouse_customer_media_key_set:
+0x5f15 025180 store 8 ,mem_customer_key_press 
+0x5f16 025181 setarg 0x03 
+0x5f17 025182 store 8 ,mem_customer_key_release 
+0x5f18 025183 rtn 
+:      025185 mouse_customer_key_play:
+0x5f19 025186 setarg 0x00cd03 
+0x5f1a 025187 branch mouse_customer_media_key_set 
+:      025190 mouse_polling_device:
+0x5f1b 025191 bpatch patch12_2 ,mem_patch12 
+0x5f1c 025192 fetch 1 ,mem_reconn_times 
+0x5f1d 025193 increase -1 ,pdata 
+0x5f1e 025194 store 1 ,mem_reconn_times 
+0x5f1f 025195 fetcht 1 ,mem_device_flag 
+0x5f20 025196 sub temp ,1 ,null 
+0x5f21 025197 ncall mouse_select_device_number ,zero 
+0x5f22 025198 storet 1 ,mem_device_flag 
+0x5f23 025199 call mouse_store_device_number2eeprom 
+0x5f24 025200 call mouse_before_store_reconn_info 
+0x5f25 025201 branch mouse_start_reconnect_device 
+:      025205 mouse_drawing_optima:
+0x5f26 025206 bpatch patch12_3 ,mem_patch12 
+0x5f27 025207 fetch 1 ,mem_config_sensor_type 
+0x5f28 025208 rtneq p3212 
+0x5f29 025209 fetch mouse_flag_len ,mem_mouse_flag 
+0x5f2a 025210 rtnbit0 mouse_enable_smoother 
+0x5f2b 025211 fetch 4 ,mem_mouse_x 
+0x5f2c 025212 rtn blank 
+0x5f2d 025213 call mouse_data_abs_check 
+0x5f2e 025214 setarg 0x03 
+0x5f2f 025215 call mouse_pdata_greater_than_check 
+0x5f30 025216 call mouse_disable_asm ,blank 
+0x5f31 025217 ncall mouse_enable_asm ,blank 
+0x5f32 025218 setarg 0x02 
+0x5f33 025219 call mouse_data_less_than_check 
+0x5f34 025220 call mouse_disable_asm ,blank 
+0x5f35 025221 fetch 1 ,mem_mouse_asm_flag 
+0x5f36 025222 beq 1 ,mouse_drawing_optima_modify 
+:      025223 mouse_drawing_optima_init:
+0x5f37 025224 fetch mouse_flag_len ,mem_mouse_flag 
+0x5f38 025225 rtnbit0 mouse_enable_smoother 
+0x5f39 025226 arg 5 ,loopcnt 
+0x5f3a 025227 arg mem_mouse_asm_flag ,contw 
+0x5f3b 025228 branch clear_mem 
+:      025230 mouse_drawing_optima_modify:
+0x5f3c 025231 call mouse_drawing_optima_xy_offset_modify 
+0x5f3d 025232 fetch 2 ,mem_mouse_x_pre 
+0x5f3e 025233 store 2 ,mem_data_pre 
+0x5f3f 025234 fetch 2 ,mem_mouse_x 
+0x5f40 025235 store 2 ,mem_data_current 
+0x5f41 025236 call mouse_drawing_optima_data_x 
+0x5f42 025237 fetch 2 ,mem_data_pre 
+0x5f43 025238 store 2 ,mem_mouse_x_pre 
+0x5f44 025239 fetch 2 ,mem_data_current 
+0x5f45 025240 store 2 ,mem_mouse_x 
+0x5f46 025242 fetch 2 ,mem_mouse_y_pre 
+0x5f47 025243 store 2 ,mem_data_pre 
+0x5f48 025244 fetch 2 ,mem_mouse_y 
+0x5f49 025245 store 2 ,mem_data_current 
+0x5f4a 025246 call mouse_drawing_optima_data_y 
+0x5f4b 025247 fetch 2 ,mem_data_pre 
+0x5f4c 025248 store 2 ,mem_mouse_y_pre 
+0x5f4d 025249 fetch 2 ,mem_data_current 
+0x5f4e 025250 store 2 ,mem_mouse_y 
+0x5f4f 025251 rtn 
+:      025253 mouse_drawing_optima_xy_offset_modify:
+0x5f50 025254 fetch mouse_flag_len ,mem_mouse_flag 
+0x5f51 025255 rtnbit0 mouse_enable_xy_offset 
+0x5f52 025256 bpatch patch12_4 ,mem_patch12 
+0x5f53 025257 fetch 2 ,mem_mouse_x_pre 
+0x5f54 025258 store 2 ,mem_data_value 
+0x5f55 025259 call mouse_pre_xy_data_judge 
+0x5f56 025260 store 2 ,mem_mouse_x_pre 
+0x5f57 025261 fetch 2 ,mem_mouse_x 
+0x5f58 025262 store 2 ,mem_data_value 
+0x5f59 025263 call mouse_current_xy_data_judge 
+0x5f5a 025264 store 2 ,mem_mouse_x 
+0x5f5b 025265 fetch 2 ,mem_mouse_y_pre 
+0x5f5c 025266 store 2 ,mem_data_value 
+0x5f5d 025267 call mouse_pre_xy_data_judge 
+0x5f5e 025268 store 2 ,mem_mouse_y_pre 
+0x5f5f 025269 fetch 2 ,mem_mouse_y 
+0x5f60 025270 store 2 ,mem_data_value 
+0x5f61 025271 call mouse_current_xy_data_judge 
+0x5f62 025272 store 2 ,mem_mouse_y 
+0x5f63 025273 rtn 
+:      025275 mouse_pre_xy_data_judge:
+0x5f64 025276 fetch 1 ,mem_data_value + 1 
+0x5f65 025277 branch mouse_pre_xy_pdata_offset ,blank 
+0x5f66 025278 branch mouse_pre_xy_ndata_offset 
+:      025280 mouse_pre_xy_pdata_offset:
+0x5f67 025281 fetch 1 ,mem_data_value 
+0x5f68 025282 call mouse_pre_xy_get_0_4_times 
+0x5f69 025283 store 1 ,mem_data_value 
+:      025284 mouse_xy_data_offset_new:
+0x5f6a 025285 fetch 2 ,mem_data_value 
+0x5f6b 025286 rtn 
+:      025287 mouse_pre_xy_ndata_offset:
+0x5f6c 025288 fetch 1 ,mem_data_value 
+0x5f6d 025289 call mouse_pdata_invert 
+0x5f6e 025290 call mouse_pre_xy_get_0_4_times 
+0x5f6f 025291 call disable_blank ,blank 
+0x5f70 025292 call mouse_pdata_get_new_value 
+0x5f71 025293 branch mouse_xy_data_offset_new 
+:      025295 mouse_current_xy_data_judge:
+0x5f72 025296 fetch 1 ,mem_data_value + 1 
+0x5f73 025297 branch mouse_current_xy_pdata_offset ,blank 
+0x5f74 025298 branch mouse_current_xy_ndata_offset 
+:      025299 mouse_current_xy_pdata_offset:
+0x5f75 025300 fetch 1 ,mem_data_value 
+0x5f76 025301 call mouse_current_xy_get_0_6_times 
+0x5f77 025302 store 1 ,mem_data_value 
+0x5f78 025303 branch mouse_xy_data_offset_new 
+:      025304 mouse_current_xy_ndata_offset:
+0x5f79 025305 fetch 1 ,mem_data_value 
+0x5f7a 025306 call mouse_pdata_invert 
+0x5f7b 025307 call mouse_current_xy_get_0_6_times 
+0x5f7c 025308 call disable_blank ,blank 
+0x5f7d 025309 call mouse_pdata_get_new_value 
+0x5f7e 025310 branch mouse_xy_data_offset_new 
+:      025312 mouse_pre_xy_get_0_4_times:
+0x5f7f 025313 mul32 pdata ,4 ,pdata 
+0x5f80 025314 div pdata ,5 
+0x5f81 025315 call wait_div_end 
+0x5f82 025316 quotient pdata 
+0x5f83 025317 rtn 
+:      025318 mouse_current_xy_get_0_6_times:
+0x5f84 025319 mul32 pdata ,12 ,pdata 
+0x5f85 025320 div pdata ,10 
+0x5f86 025321 call wait_div_end 
+0x5f87 025322 quotient pdata 
+0x5f88 025323 rtn 
+:      025325 mouse_drawing_optima_data_x:
+0x5f89 025326 fetch 2 ,mem_data_pre 
+0x5f8a 025327 fetcht 2 ,mem_data_current 
+0x5f8b 025328 iadd temp ,pdata 
+0x5f8c 025329 fetcht 1 ,mem_mouse_data_xtemp 
+0x5f8d 025330 iadd temp ,pdata 
+0x5f8e 025331 and pdata ,0x01 ,temp 
+0x5f8f 025332 storet 1 ,mem_mouse_data_xtemp 
+0x5f90 025333 branch mouse_drawing_optima_data 
+:      025335 mouse_drawing_optima_data_y:
+0x5f91 025336 fetch 2 ,mem_data_pre 
+0x5f92 025337 fetcht 2 ,mem_data_current 
+0x5f93 025338 iadd temp ,pdata 
+0x5f94 025339 fetcht 1 ,mem_mouse_data_ytemp 
+0x5f95 025340 iadd temp ,pdata 
+0x5f96 025341 and pdata ,0x01 ,temp 
+0x5f97 025342 storet 1 ,mem_mouse_data_ytemp 
+0x5f98 025343 branch mouse_drawing_optima_data 
+:      025345 mouse_drawing_optima_data:
+0x5f99 025346 store 3 ,mem_data_sum 
+0x5f9a 025347 isolate1 16 ,pdata 
+0x5f9b 025348 branch mouse_data_sum_overflow ,true 
+0x5f9c 025349 fetch 1 ,mem_data_sum + 1 
+0x5f9d 025350 beq 0xff ,mouse_data_sum_n 
+0x5f9e 025351 fetch 1 ,mem_data_sum 
+:      025352 mouse_data_store_pre:
+0x5f9f 025353 rshift pdata ,pdata 
+0x5fa0 025354 store 2 ,mem_data_pre 
+0x5fa1 025355 store 2 ,mem_data_current 
+0x5fa2 025356 rtn 
+:      025357 mouse_data_sum_overflow:
+0x5fa3 025358 fetch 1 ,mem_data_sum + 1 
+0x5fa4 025359 beq 0 ,mouse_data_sum_overflow_p 
+0x5fa5 025360 fetch 3 ,mem_data_sum 
+0x5fa6 025361 branch mouse_data_store_pre 
+:      025362 mouse_data_sum_overflow_p:
+0x5fa7 025363 jam 0 ,mem_data_sum + 2 
+0x5fa8 025364 fetch 1 ,mem_data_sum 
+0x5fa9 025365 branch mouse_data_store_pre 
+:      025367 mouse_data_sum_n:
+0x5faa 025368 fetch 1 ,mem_data_sum 
+0x5fab 025369 call mouse_pdata_get_half 
+0x5fac 025370 store 1 ,mem_data_pre 
+0x5fad 025371 store 1 ,mem_data_current 
+0x5fae 025372 branch mouse_data_zero ,blank 
+0x5faf 025373 setarg 0xff 
+:      025374 mouse_data_set_direction:
+0x5fb0 025375 store 1 ,mem_data_pre + 1 
+0x5fb1 025376 store 1 ,mem_data_current + 1 
+0x5fb2 025377 rtn 
+:      025378 mouse_data_zero:
+0x5fb3 025379 setarg 0 
+0x5fb4 025380 branch mouse_data_set_direction 
+:      025382 mouse_pdata_get_half:
+0x5fb5 025383 call mouse_pdata_invert 
+0x5fb6 025384 rshift pdata ,pdata 
+:      025385 mouse_pdata_get_new_value:
+0x5fb7 025386 call mouse_rega_in_out 
+0x5fb8 025387 sub pdata ,0 ,pdata 
+0x5fb9 025388 store 1 ,mem_data_value 
+0x5fba 025389 rtn 
+:      025391 mouse_pdata_invert:
+0x5fbb 025392 sub pdata ,0 ,pdata 
+:      025393 mouse_rega_in_out:
+0x5fbc 025394 store 1 ,mem_rega 
+0x5fbd 025395 fetch 1 ,mem_rega 
+0x5fbe 025396 rtn 
+:      025398 mouse_disable_asm:
+0x5fbf 025399 jam 0 ,mem_mouse_asm_flag 
+0x5fc0 025400 rtn 
+:      025401 mouse_enable_asm:
+0x5fc1 025402 jam 1 ,mem_mouse_asm_flag 
+0x5fc2 025403 rtn 
+:      025406 mouse_pdata_greater_than_check:
+0x5fc3 025407 isub rega ,null 
+0x5fc4 025408 nbranch disable_blank ,positive 
+0x5fc5 025409 isub regb ,null 
+0x5fc6 025410 nbranch disable_blank ,positive 
+0x5fc7 025411 branch enable_blank 
+:      025412 mouse_data_less_than_check:
+0x5fc8 025413 isub rega ,null 
+0x5fc9 025414 nrtn positive 
+0x5fca 025415 isub regb ,null 
+0x5fcb 025416 nrtn positive 
+0x5fcc 025417 branch enable_blank 
+:      025419 mouse_data_abs_check:
+0x5fcd 025420 fetch 2 ,mem_mouse_x 
+0x5fce 025421 call mouse_data_abs 
+0x5fcf 025422 copy pdata ,rega 
+0x5fd0 025423 fetch 2 ,mem_mouse_y 
+0x5fd1 025424 call mouse_data_abs 
+0x5fd2 025425 copy pdata ,regb 
+0x5fd3 025426 rtn 
+:      025428 mouse_data_abs:
+0x5fd4 025429 store 2 ,mem_data_current 
+0x5fd5 025430 fetch 1 ,mem_data_current + 1 
+0x5fd6 025431 beq 0xff ,mouse_data_reversal 
+0x5fd7 025432 fetch 1 ,mem_data_current 
+:      025433 mouse_data_abs_store:
+0x5fd8 025434 and_into 0xff ,pdata 
+0x5fd9 025436 rtn 
+:      025437 mouse_data_reversal:
+0x5fda 025438 fetch 2 ,mem_data_current 
+0x5fdb 025439 sub pdata ,0 ,pdata 
+0x5fdc 025440 branch mouse_data_abs_store 
+:      025442 mouse_24g_long_sleep_param_update_timer:
+0x5fdd 025443 arg mem_24g_long_sleep_param_update_timer ,regc 
+0x5fde 025444 arg mouse_24g_long_sleep_normal_param ,regb 
+0x5fdf 025445 branch timer_single_step 
+:      025446 mouse_24g_long_sleep_normal_param:
+0x5fe0 025447 fetch 4 ,mem_24g_long_sleep_set1 
+0x5fe1 025448 store 4 ,mem_24g_enter_hibernate 
+0x5fe2 025449 jam 1 ,mem_mouse_long_mult_flag 
+0x5fe3 025450 rtn 
+:      025453 mouse_24g_long_sleep_set:
+0x5fe4 025454 fetch 1 ,mem_24g_long_sleep_set_level 
+0x5fe5 025455 beq 0x00 ,mouse_24g_long_sleep_set_30ms 
+0x5fe6 025456 beq 0x01 ,mouse_24g_long_sleep_set_50ms 
+0x5fe7 025457 beq 0x02 ,mouse_24g_long_sleep_set_80ms 
+0x5fe8 025458 beq 0x03 ,mouse_24g_long_sleep_set_100ms 
+:      025459 mouse_24g_long_sleep_set_80ms:
+0x5fe9 025460 setarg 0x0ea600 
+:      025461 mouse_24g_long_sleep_set_end:
+0x5fea 025462 store 4 ,mem_24g_long_sleep_set1 
+0x5feb 025463 rtn 
+:      025464 mouse_24g_long_sleep_set_30ms:
+0x5fec 025465 setarg 0x05e740 
+0x5fed 025466 branch mouse_24g_long_sleep_set_end 
+:      025467 mouse_24g_long_sleep_set_50ms:
+0x5fee 025468 setarg 0x0927c0 
+0x5fef 025469 branch mouse_24g_long_sleep_set_end 
+:      025470 mouse_24g_long_sleep_set_100ms:
+0x5ff0 025471 setarg 0x124f80 
+0x5ff1 025472 branch mouse_24g_long_sleep_set_end 
+:      025474 mouse_24g_hibernate_set:
+0x5ff2 025475 bpatch patch12_5 ,mem_patch12 
+0x5ff3 025476 jam 0 ,mem_24g_attempt_fail_flag 
+0x5ff4 025477 call g24_transmit_next_packet 
+0x5ff5 025478 setarg -1 
+0x5ff6 025479 store 4 ,mem_24g_enter_hibernate 
+0x5ff7 025480 setarg 0 
+0x5ff8 025481 store 7 ,mem_mouse_key 
+0x5ff9 025482 jam 1 ,mem_sensor_shutdown_flag 
+0x5ffa 025483 call mouse_sensor_powerdown 
+0x5ffb 025484 call mouse_setgpio_hibernate 
+0x5ffc 025485 branch mouse_24g_long_sleep 
+:      025487 mouse_wakeup_24g:
+0x5ffd 025488 fetch 1 ,mem_sensor_shutdown_flag 
+0x5ffe 025489 ncall mouse_wakeup_24g_from_long_sleep ,blank 
+0x5fff 025490 jam 0 ,mem_sensor_shutdown_flag 
+0x6000 025491 rtn 
+:      025493 mouse_wakeup_24g_from_long_sleep:
+0x6001 025494 call mouse_init_sensor_wakeup 
+0x6002 025495 fetch mouse_flag_len ,mem_mouse_flag 
+0x6003 025496 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+:      025497 mouse_wheel_gpio_init:
+0x6004 025498 fetch 1 ,mem_whee_a_data_gpio 
+0x6005 025499 arg gpcfg_pullup ,temp 
+0x6006 025500 call gpio_config_function_int 
+0x6007 025501 fetch 1 ,mem_whee_b_data_gpio 
+0x6008 025502 arg gpcfg_pullup ,temp 
+0x6009 025503 branch gpio_config_function_int 
+:      025505 mouse_24g_transmit_start:
+0x600a 025506 call mouse_24g_fast_conn_mode_check 
+0x600b 025507 fetch 1 ,mem_sensor_shutdown_flag 
+0x600c 025508 nbranch mouse_24g_short_sleep ,blank 
+0x600d 025509 branch g24_transmit_start_next 
+:      025511 mouse_24g_fast_conn_mode_check:
+0x600e 025512 fetch 4 ,mem_24g_receiver_addr 
+0x600f 025513 fetcht 4 ,mem_24g_fast_conn_addr 
+0x6010 025514 isub temp ,null 
+0x6011 025515 branch mouse_soft_agc_enable ,zero 
+0x6012 025516 branch mouse_soft_agc_disable 
+:      025518 mouse_soft_agc_enable:
+0x6013 025519 jam 0 ,mem_gain_fix 
+0x6014 025520 jam tx_power_factory ,mem_tx_power 
+0x6015 025521 rtn 
+:      025522 mouse_soft_agc_disable:
+0x6016 025523 jam 0xff ,mem_gain_fix 
+0x6017 025524 rtn 
+:      025526 mouse_24g_stop:
+0x6018 025527 set0 mark_24g ,mark 
+0x6019 025528 jam state_24g_stop ,mem_24g_conn_sm 
+0x601a 025529 arg mouse_24g_pairing_flag ,queue 
+0x601b 025530 branch mouse_disable_function_flag 
+:      025532 mouse_24g_start_mode:
+0x601c 025533 fetch mouse_flag_len ,mem_mouse_flag 
+0x601d 025534 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+0x601e 025535 call mouse_device_24g_pair_led_config 
+0x601f 025536 call mouse_wakeup_from_power_check 
+0x6020 025537 branch mouse_24g_reconn_dongle_start ,user 
+0x6021 025538 fetch mouse_flag_len ,mem_mouse_flag 
+0x6022 025539 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
+0x6023 025540 bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
+0x6024 025541 call mouse_key_check_once 
+0x6025 025542 and rega ,0x07 ,pdata 
+0x6026 025543 fetcht 1 ,mem_mouse_commbination_key_24g 
+0x6027 025544 isub temp ,null 
+0x6028 025545 branch mouse_24g_start_pair_mode ,zero 
+0x6029 025546 branch mouse_24g_reconn_general_dongle 
+:      025548 mouse_24g_mode_setup_error:
+0x602a 025549 fetch 1 ,mem_reconn_times 
+0x602b 025550 nbranch mouse_polling_device ,blank 
+0x602c 025551 rtn 
+:      025553 mouse_24g_first_start_auto_pair_mode:
+0x602d 025554 call mouse_wakeup_from_power_check 
+0x602e 025555 branch mouse_24g_first_start_reconn ,user 
+:      025556 mouse_24g_reconn_general_dongle:
+0x602f 025557 jam mode_24g_device ,mem_device_flag 
+0x6030 025558 fetch 2 ,mem_mouse_24g_power_on_fast_conn_timer 
+0x6031 025559 store 2 ,mem_24g_reconn_timeout 
+0x6032 025560 jam fast_conn_and_3_0_addr ,mem_24g_reconn_type 
+0x6033 025561 branch g24_reconn_start 
+:      025563 mouse_24g_start_auto_pair:
+0x6034 025564 fetch 2 ,mem_24g_pair_timeout_init 
+0x6035 025565 store 2 ,mem_24g_reconn_timeout 
+0x6036 025566 jam pair_and_3_0_addr ,mem_24g_reconn_type 
+0x6037 025567 branch g24_reconn_start 
+:      025569 mouse_24g_first_start_reconn:
+0x6038 025570 fetch 1 ,mem_device_flag 
+0x6039 025571 beq mode_24g_device ,mouse_24g_reconn_dongle_start 
+0x603a 025572 call mouse_bluetooth_fast_conn_disable 
+:      025573 mouse_24g_first_bluetooth_reconnect:
+0x603b 025574 call mouse_24g_stop 
+0x603c 025575 jam mode_bt_device1 ,mem_device_flag 
+0x603d 025576 call mouse_select_reconn_device 
+0x603e 025577 branch mouse_start_reconnect_device 
+:      025579 mouse_24g_first_bb_event_reconn_timeout:
+0x603f 025580 call mouse_wakeup_from_power_check 
+0x6040 025581 branch mouse_app_enter_hibernate ,user 
+0x6041 025582 branch mouse_start_discovery 
+:      025584 mouse_24g_first_store_reconn_info:
+0x6042 025585 call mouse_wakeup_from_power_check 
+0x6043 025586 rtn user 
+0x6044 025587 fetch mouse_flag_len ,mem_mouse_flag 
+0x6045 025588 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_store_device_info_delay 
+0x6046 025589 rtn 
+:      025591 mouse_24g_start_pair_mode:
+0x6047 025592 call mouse_device_24g_pair_led_config 
+0x6048 025593 jam 0 ,mem_24g_reconn_type 
+0x6049 025594 arg mouse_24g_pairing_flag ,queue 
+0x604a 025595 call mouse_enable_function_flag 
+0x604b 025596 setarg 0 
+0x604c 025597 store 2 ,mem_24g_reconn_timeout 
+0x604d 025598 call mouse_stop_discovery 
+0x604e 025599 jam type_ms ,mem_24g_data_type 
+0x604f 025600 fetch mouse_flag_len ,mem_mouse_flag 
+0x6050 025601 bbit0 mouse_enable_keyboard ,g24_pair_start 
+0x6051 025602 jam type_kb ,mem_24g_data_type 
+0x6052 025603 branch g24_pair_start 
+:      025605 mouse_24g_attempt_fail:
+0x6053 025606 fetch 1 ,mem_24g_attempt_fail_flag 
+0x6054 025607 nbranch mouse_24g_hibernate_set ,blank 
+0x6055 025608 fetch 1 ,mem_24g_reconn_type 
+0x6056 025609 beq fast_conn_and_3_0_addr ,mouse_24g_fast_conn_attempt_fail 
+0x6057 025610 beq pair_and_3_0_addr ,mouse_24g_auto_pair_attempt_fail 
+0x6058 025611 beq receiver_and_3_0_addr ,mouse_reconn_dongle_attempt_fail 
+:      025612 mouse_24g_attempt_fail_enter_hibernate:
+0x6059 025613 call mouse_24g_stop 
+0x605a 025614 fetch 1 ,mem_reconn_times 
+0x605b 025615 nbranch mouse_polling_device ,blank 
+0x605c 025616 fetch 1 ,mem_device_flag 
+0x605d 025617 beq mode_24g_device ,mouse_app_enter_hibernate 
+0x605e 025618 rtn 
+:      025620 mouse_24g_fast_conn_attempt_fail:
+0x605f 025621 fetch mouse_flag_len ,mem_mouse_flag 
+0x6060 025622 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+0x6061 025623 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+0x6062 025624 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+0x6063 025625 fetch 4 ,mem_mouse_24g_addr 
+0x6064 025626 fetcht 4 ,mem_mouse_compare_addr 
+0x6065 025627 isub temp ,null 
+0x6066 025628 branch mouse_24g_start_pair_mode ,zero 
+:      025629 mouse_24g_reconn_dongle_start:
+0x6067 025630 fetch 2 ,mem_24g_reconn_timeout_init 
+0x6068 025631 store 2 ,mem_24g_reconn_timeout 
+0x6069 025632 jam receiver_and_3_0_addr ,mem_24g_reconn_type 
+0x606a 025633 branch g24_reconn_start 
+:      025635 mouse_24g_auto_pair_attempt_fail:
+0x606b 025636 fetch mouse_flag_len ,mem_mouse_flag 
+0x606c 025637 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+0x606d 025638 fetch 1 ,mem_device_number 
+0x606e 025639 beq 1 ,mouse_24g_attempt_fail_enter_hibernate 
+0x606f 025640 branch mouse_24g_first_bluetooth_reconnect 
+:      025642 mouse_reconn_dongle_attempt_fail:
+0x6070 025643 fetch mouse_flag_len ,mem_mouse_flag 
+0x6071 025644 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+0x6072 025645 bbit1 mouse_enable_eeprom ,mouse_24g_attempt_fail_enter_hibernate 
+0x6073 025646 bbit1 mouse_enable_flash ,mouse_24g_attempt_fail_enter_hibernate 
+0x6074 025647 branch mouse_24g_start_auto_pair + 1 
+:      025649 mouse_24g_attempt_success:
+0x6075 025650 fetch 4 ,mem_24g_addr 
+0x6076 025651 store 4 ,mem_24g_receiver_addr 
+0x6077 025652 store 4 ,mem_mouse_24g_addr 
+0x6078 025653 call g24_ch_syncword_crc8_init 
+0x6079 025654 call mouse_no_data_timer_init 
+0x607a 025655 call mouse_device_poweron_led_config 
+0x607b 025656 call mouse_init_sensor_reset 
+0x607c 025657 jam 0 ,mem_mouse_long_mult_flag 
+0x607d 025658 jam 0 ,mem_24g_conn_sm 
+0x607e 025659 jam 0 ,mem_24g_reconn_type 
+0x607f 025660 fetch 4 ,mem_24g_receiver_addr 
+0x6080 025661 fetch 4 ,mem_24g_fast_conn_addr 
+0x6081 025662 isub temp ,null 
+0x6082 025663 rtn zero 
+0x6083 025664 branch mouse_24g_first_store_reconn_info 
+:      025666 mouse_24g_pairing_complete:
+0x6084 025667 call mouse_init_sensor_reset 
+0x6085 025668 call mouse_read_sensor_common 
+:      025669 mouse_24g_pairing_complete_common:
+0x6086 025670 call mouse_device_poweron_led_config 
+0x6087 025671 call mouse_no_data_timer_init 
+0x6088 025672 arg mouse_24g_pairing_flag ,queue 
+0x6089 025673 call mouse_disable_function_flag 
+0x608a 025674 setarg 0 
+0x608b 025675 store 2 ,mem_24g_pair_timeout 
+0x608c 025676 store 2 ,mem_24g_reconn_timeout 
+0x608d 025677 store 1 ,mem_24g_conn_sm 
+0x608e 025678 store 1 ,mem_mouse_move_flag 
+0x608f 025679 store 1 ,mem_24g_reconn_type 
+0x6090 025682 fetch 4 ,mem_24g_addr 
+0x6091 025683 store 4 ,mem_24g_receiver_addr 
+0x6092 025684 store 4 ,mem_mouse_24g_addr 
+0x6093 025685 branch mouse_store_device_info_delay 
+:      025687 mouse_24g_short_sleep_clear_wake:
+0x6094 025688 call clear_wake 
+0x6095 025689 branch lpm_write_gpio_wakeup 
+:      025691 mouse_24g_package_data:
+0x6096 025692 bpatch patch12_6 ,mem_patch12 
+0x6097 025693 rtnmark0 mark_24g 
+0x6098 025694 call mouse_motion 
+0x6099 025695 nrtn user 
+0x609a 025696 fetch 1 ,mem_mouse_24g_long_sleep_flag 
+0x609b 025697 jam 0 ,mem_mouse_24g_long_sleep_flag 
+0x609c 025698 ncall mouse_24g_short_sleep_clear_wake ,blank 
+0x609d 025700 fetch mouse_flag_len ,mem_mouse_flag 
+0x609e 025701 bbit0 mouse_enable_keyboard ,mouse_24g_mouse_package_data 
+0x609f 025702 fetch 1 ,mem_customer_key 
+0x60a0 025703 nbranch mouse_24g_keyboard_package_data ,blank 
+:      025704 mouse_24g_mouse_package_data:
+0x60a1 025705 call mouse_data_xy_release 
+0x60a2 025706 fetch 1 ,mem_24g_data_type 
+0x60a3 025707 bbit1 1 ,mouse_24g_mouse_package_data_now 
+0x60a4 025708 fetcht 1 ,mem_24g_txbuf + 1 
+0x60a5 025709 fetch 1 ,mem_mouse_key 
+0x60a6 025710 ior temp ,pdata 
+0x60a7 025711 store 1 ,mem_mouse_key 
+0x60a8 025712 fetcht 1 ,mem_24g_txbuf + 6 
+0x60a9 025713 fetch 1 ,mem_mouse_z 
+0x60aa 025714 iadd temp ,pdata 
+0x60ab 025715 store 1 ,mem_mouse_z 
+0x60ac 025716 fetcht 1 ,mem_24g_txbuf + 7 
+0x60ad 025717 fetch 1 ,mem_mouse_tz 
+0x60ae 025718 iadd temp ,pdata 
+0x60af 025719 store 1 ,mem_mouse_tz 
+:      025720 mouse_24g_mouse_package_data_now:
+0x60b0 025721 jam type_ms ,mem_24g_data_type 
+0x60b1 025722 arg 7 ,rega 
+0x60b2 025723 arg mem_mouse_key ,regb 
+0x60b3 025724 fetch 2 ,mem_mouse_z 
+0x60b4 025725 rtn blank 
+0x60b5 025726 branch g24_transmit_by_interrupt_enable 
+:      025728 mouse_24g_keyboard_package_data:
+0x60b6 025729 jam type_kb ,mem_24g_data_type 
+0x60b7 025730 arg 9 ,rega 
+0x60b8 025731 fetch 1 ,mem_customer_data_trigger 
+0x60b9 025732 nbranch mouse_customer_key_press ,blank 
+0x60ba 025733 arg mem_customer_key_release ,regb 
+0x60bb 025734 rtn 
+:      025735 mouse_customer_key_press:
+0x60bc 025736 arg mem_customer_key_press ,regb 
+0x60bd 025737 rtn 
+:      025742 mouse_24g_search_dongle_init:
+0x60be 025743 setarg 0 
+0x60bf 025744 store 3 ,mem_mouse_search_dongle_action 
+0x60c0 025745 rtn 
+:      025747 mouse_24g_search_dongle:
+0x60c1 025748 fetch mouse_flag_len ,mem_mouse_flag 
+0x60c2 025749 rtnbit0 mouse_enable_24g_search_dongle 
+0x60c3 025750 fetch 1 ,mem_mouse_long_mult_flag 
+0x60c4 025751 rtn blank 
+0x60c5 025752 fetch 1 ,mem_24g_abort_pac 
+0x60c6 025753 rtn blank 
+0x60c7 025754 fetch 1 ,mem_mouse_search_dongle_interval 
+0x60c8 025755 increase 1 ,pdata 
+0x60c9 025756 and_into 3 ,pdata 
+0x60ca 025757 store 1 ,mem_mouse_search_dongle_interval 
+0x60cb 025758 nrtn blank 
+0x60cc 025759 jam 0 ,mem_mouse_search_dongle_ch 
+:      025760 mouse_24g_search_dongle_loop:
+0x60cd 025761 bpatch patch12_7 ,mem_patch12 
+0x60ce 025762 fetch 1 ,mem_mouse_search_dongle_ch 
+0x60cf 025763 increase 1 ,pdata 
+0x60d0 025764 store 1 ,mem_mouse_search_dongle_ch 
+0x60d1 025765 sub pdata ,g24_ch_number ,null 
+0x60d2 025766 nbranch mouse_24g_search_dongle_loop_end ,positive 
+0x60d3 025767 call g24_reconn_data_prep 
+0x60d4 025768 call g24_transmit_receive_ack 
+0x60d5 025769 nbranch mouse_24g_search_dongle_loop_retry ,sync 
+0x60d6 025770 nbranch mouse_24g_search_dongle_loop_retry ,user3 
+0x60d7 025771 call mouse_g24_ackpayload_parse 
+0x60d8 025772 call mouse_24g_search_dongle_success 
+:      025773 mouse_24g_search_dongle_loop_end:
+0x60d9 025774 call g24_txbuf_clear 
+0x60da 025775 fetch 1 ,mem_mouse_search_dongle_count 
+0x60db 025776 increase 1 ,pdata 
+0x60dc 025777 store 1 ,mem_mouse_search_dongle_count 
+0x60dd 025778 beq g24_ch_poll_count ,mouse_24g_search_dongle_check 
+0x60de 025779 rtn 
+:      025781 mouse_24g_search_dongle_loop_retry:
+0x60df 025782 call g24_ch 
+0x60e0 025783 branch mouse_24g_search_dongle_loop 
+:      025785 mouse_24g_search_dongle_check:
+0x60e1 025786 jam 0 ,mem_mouse_search_dongle_count 
+0x60e2 025787 fetch 1 ,mem_mouse_search_dongle_action 
+0x60e3 025788 rtnbit1 g24_disconn_state 
+0x60e4 025789 set1 g24_disconn_state ,pdata 
+0x60e5 025790 store 1 ,mem_mouse_search_dongle_action 
+0x60e6 025791 fetch 2 ,mem_mouse_24g_search_dongle_time_init 
+0x60e7 025792 store 2 ,mem_mouse_no_data_timer 
+0x60e8 025793 branch mouse_sensor_powerdown 
+:      025795 mouse_24g_search_dongle_success:
+0x60e9 025796 fetch 1 ,mem_24g_abort_pac 
+0x60ea 025797 branch mouse_24g_search_dongle_init ,blank 
+0x60eb 025798 jam 0 ,mem_mouse_search_dongle_count 
+0x60ec 025799 fetch 1 ,mem_mouse_search_dongle_action 
+0x60ed 025800 rtnbit0 g24_disconn_state 
+0x60ee 025801 set0 g24_disconn_state ,pdata 
+0x60ef 025802 store 1 ,mem_mouse_search_dongle_action 
+0x60f0 025803 call mouse_no_data_timer_init 
+0x60f1 025804 branch mouse_init_sensor_wakeup 
+:      025806 mouse_g24_ackpayload_parse:
+0x60f2 025807 call g24_ackpayload_parse 
+0x60f3 025808 fetch 1 ,mem_24g_rxbuf + 1 
+0x60f4 025809 compare 0x08 ,pdata ,0xf8 
+0x60f5 025810 nrtn true 
+0x60f6 025811 fetch 1 ,mem_24g_rxbuf + 2 
+0x60f7 025812 beq 0xff ,mouse_24g_hibernate_set 
+0x60f8 025813 rtn 
+:      025818 mouse_g24_retransmit:
+0x60f9 025819 fetch 1 ,mem_mouse_need_soft_reset 
+0x60fa 025820 nrtn blank 
+0x60fb 025821 call mouse_retransmit_select_device_by_pb_button 
+0x60fc 025822 call mouse_select_device_by_dpi_button_once 
+0x60fd 025823 branch g24_retransmit0 
+:      025825 mouse_select_device_by_dpi_button_once:
+0x60fe 025826 arg 12 ,queue 
+0x60ff 025827 call timer_check 
+0x6100 025828 nrtn blank 
+0x6101 025829 call mouse_dpi_check_once 
+0x6102 025830 call mouse_dpi_key_check_long_press 
+:      025831 mouse_g24_retransmit_100ms_timer_init:
+0x6103 025832 arg 12 ,queue 
+0x6104 025833 setarg 160 
+0x6105 025834 branch timer_init 
+:      025836 mouse_dpi_check_once:
+0x6106 025837 fetch mouse_flag_len ,mem_mouse_flag 
+0x6107 025838 rtnbit0 mouse_enable_select_device_by_dpi_button 
+0x6108 025840 branch mouse_dpi_check 
+:      025843 mouse_24g_before_lpm_sleep:
+0x6109 025844 fetch 1 ,mem_device_flag 
+0x610a 025845 bne mode_24g_device ,lpm_sleep_skip_cb_function 
+0x610b 025846 fetch 1 ,mem_24g_disable_fec1 
+0x610c 025847 rtn blank 
+:      025848 mouse_peripheral_clock_off:
+0x610d 025849 jam 2 ,core_clksel 
+0x610e 025850 jam 0xf8 ,core_lpm_ctrl 
+0x610f 025851 rtn 
+:      025856 mouse_logo_led_on_timer:
+0x6110 025857 fetch 1 ,mem_mouse_logo_led_gpio 
+0x6111 025858 rtneq gpio_disable 
+0x6112 025859 fetch 2 ,mem_mouse_no_data_timer 
+0x6113 025860 rtn blank 
+0x6114 025861 fetch 2 ,mem_mouse_no_data_timeout 
+0x6115 025862 fetcht 2 ,mem_mouse_no_data_timer 
+0x6116 025863 isub temp ,temp 
+0x6117 025864 fetch 2 ,mem_mouse_logo_led_on_time_init 
+0x6118 025865 isub temp ,pdata 
+0x6119 025866 branch mouse_logo_led_on ,positive 
+:      025867 mouse_logo_led_off:
+0x611a 025868 fetcht 1 ,mem_mouse_logo_led_gpio 
+0x611b 025869 branch mouse_led_off 
+:      025870 mouse_logo_led_on:
+0x611c 025871 fetcht 1 ,mem_mouse_logo_led_gpio 
+0x611d 025872 branch mouse_led_on 
+:      025879 mouse_dpi_led_blink_delay_timer:
+0x611e 025880 arg mem_mouse_dpi_led_delay_count ,regc 
+0x611f 025881 arg mouse_dpi_led_blink_init ,regb 
+0x6120 025882 branch timer_single_step 
+:      025884 mouse_dpi_led_blink_init:
+0x6121 025885 bpatch patch13_0 ,mem_patch13 
+0x6122 025886 fetch 1 ,mem_config_sensor_type 
+0x6123 025887 beq p3212 ,mouse_dpi_led_blink_init_another 
+0x6124 025888 beq ka8g2 ,mouse_dpi_led_blink_init_another 
+0x6125 025889 fetcht 1 ,mem_mouse_dpi 
+0x6126 025890 increase 2 ,temp 
+:      025891 mouse_dpi_led_blink_init_next:
+0x6127 025892 sub temp ,3 ,null 
+0x6128 025893 call mouse_dpi_led_blink_init_level_4 ,positive 
+0x6129 025894 ncall mouse_dpi_led_blink_count_clean ,positive 
+0x612a 025895 copy temp ,pdata 
+0x612b 025896 iadd pdata ,pdata 
+0x612c 025897 store 1 ,mem_mouse_multi_led_blink_count 
+:      025898 mouse_multi_dpi_led_blink_enable:
+0x612d 025899 jam 4 ,mem_mouse_multi_led_blink_type 
+0x612e 025900 call mouse_multi_dpi_led_blink_timer_init 
+0x612f 025901 jam multi_led_blink ,mem_mouse_multi_led_type 
+0x6130 025902 branch mouse_multi_led_enable 
+:      025904 mouse_dpi_led_blink_init_another:
+0x6131 025905 fetcht 1 ,mem_mouse_dpi 
+0x6132 025906 increase 1 ,temp 
+0x6133 025907 branch mouse_dpi_led_blink_init_next 
+:      025909 mouse_dpi_led_blink_init_level_4:
+0x6134 025910 fetch mouse_flag_len ,mem_mouse_flag 
+0x6135 025911 rtnbit0 mouse_enable_dpi_level_4 
+0x6136 025912 increase 1 ,temp 
+0x6137 025913 rtn 
+:      025914 mouse_dpi_led_blink_count_clean:
+0x6138 025915 increase -3 ,temp 
+0x6139 025916 rtn 
+:      025919 mouse_dpi_led_blink_delay:
+0x613a 025920 fetch 1 ,mem_mouse_dpi_gpio 
+0x613b 025921 rtneq gpio_disable 
+0x613c 025922 fetch 2 ,mem_mouse_discovery_timer 
+0x613d 025923 nrtn blank 
+0x613e 025924 fetch 2 ,mem_24g_pair_timeout 
+0x613f 025925 nrtn blank 
+0x6140 025926 fetch 2 ,mem_24g_reconn_timeout 
+0x6141 025927 nrtn blank 
+0x6142 025928 fetch 1 ,mem_mouse_multi_led_powon_timer 
+0x6143 025929 nrtn blank 
+0x6144 025930 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
+0x6145 025931 branch mouse_dpi_led_blink_init ,blank 
+0x6146 025932 store 1 ,mem_mouse_dpi_led_delay_count 
+0x6147 025933 rtn 
+:      025941 mouse_check_dpi_blink:
+0x6148 025942 disable user 
+0x6149 025943 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x614a 025944 sub pdata ,4 ,null 
+0x614b 025945 nrtn zero 
+0x614c 025946 branch enable_user 
+:      025948 mouse_low_voltage_led_timer:
+0x614d 025949 fetch mouse_flag_len ,mem_mouse_flag 
+0x614e 025950 rtnbit0 mouse_enable_low_led 
+0x614f 025951 rtnbit0 mouse_low_voltage_flag 
+0x6150 025952 fetch 2 ,mem_mouse_discovery_timer 
+0x6151 025953 nrtn blank 
+0x6152 025954 fetch 2 ,mem_24g_pair_timeout 
+0x6153 025955 nrtn blank 
+0x6154 025956 fetch 2 ,mem_24g_reconn_timeout 
+0x6155 025957 nrtn blank 
+0x6156 025958 fetch 1 ,mem_mouse_multi_led_powon_timer 
+0x6157 025959 nrtn blank 
+0x6158 025960 call mouse_check_dpi_blink 
+0x6159 025961 rtn user 
+0x615a 025963 fetch 1 ,mem_mouse_multi_low_led_blink_count 
+0x615b 025964 branch mouse_low_led_blink_count_init_judge ,blank 
+:      025965 mouse_low_led_blink_timer:
+0x615c 025966 fetcht 1 ,mem_adc_low_volatage_led_timer_count 
+0x615d 025967 increase 1 ,temp 
+0x615e 025968 storet 1 ,mem_adc_low_volatage_led_timer_count 
+0x615f 025969 fetch 1 ,mem_mouse_low_led_blink_timer 
+0x6160 025970 isub temp ,null 
+0x6161 025971 ncall mouse_low_led_timer_count_clean ,positive 
+0x6162 025972 fetch 1 ,mem_mouse_low_led_blink_half_timer 
+0x6163 025973 isub temp ,null 
+0x6164 025974 nbranch mouse_low_voltage_led_off_judge ,positive 
+:      025975 mouse_low_voltage_led_on_judge:
+0x6165 025976 fetch mouse_flag_len ,mem_mouse_flag 
+0x6166 025977 bbit1 mouse_enable_low_for_led ,mouse_device_led_on 
+0x6167 025978 bbit1 mouse_enable_dpi_low_for_led ,mouse_device_led_on 
+:      025979 mouse_low_voltage_led_on:
+0x6168 025980 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
+0x6169 025981 branch mouse_led_on 
+:      025983 mouse_low_led_timer_count_clean:
+0x616a 025984 jam 1 ,mem_adc_low_volatage_led_timer_count 
+0x616b 025985 fetch 1 ,mem_mouse_multi_low_led_blink_count 
+0x616c 025986 increase -1 ,pdata 
+0x616d 025987 store 1 ,mem_mouse_multi_low_led_blink_count 
+:      025988 mouse_low_voltage_led_off_judge:
+0x616e 025989 fetch mouse_flag_len ,mem_mouse_flag 
+0x616f 025990 bbit1 mouse_enable_low_for_led ,mouse_device_led_off 
+0x6170 025991 bbit1 mouse_enable_dpi_low_for_led ,mouse_device_led_off 
+:      025992 mouse_low_voltage_led_off:
+0x6171 025993 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
+0x6172 025994 branch mouse_led_off 
+:      025996 mouse_low_led_blink_count_init_judge:
+0x6173 025997 fetch mouse_flag_len ,mem_mouse_flag 
+0x6174 025998 bbit1 mouse_enable_low_led_blink_limit ,mouse_low_voltage_led_off_judge 
+0x6175 025999 call mouse_multi_low_led_blink_count_init 
+0x6176 026000 branch mouse_low_led_blink_timer 
+:      026008 mouse_device_multi_led_parm_init:
+0x6177 026009 jam 0 ,mem_mouse_multi_led_blink_enable 
+0x6178 026010 call mouse_device_multi_led_all_off 
+0x6179 026011 jam 0 ,mem_mouse_multi_led_blink_type 
+0x617a 026012 fetch 1 ,mem_mouse_low_led_blink_timer 
+0x617b 026013 rshift pdata ,pdata 
+0x617c 026014 store 1 ,mem_mouse_low_led_blink_half_timer 
+0x617d 026015 rtn 
+:      026016 mouse_multi_low_led_blink_count_init:
+0x617e 026017 fetch 1 ,mem_mouse_multi_lowled_blink_count_init 
+0x617f 026018 store 1 ,mem_mouse_multi_low_led_blink_count 
+0x6180 026019 rtn 
+:      026021 mouse_multi_led_blink_timer_init:
+0x6181 026022 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x6182 026023 beq 1 ,mouse_device_24g_led_blink_timer_init 
+0x6183 026024 beq 2 ,mouse_device_le_discovery_led_blink_timer_init 
+0x6184 026025 beq 3 ,mouse_device_le_reconn_led_blink_timer_init 
+:      026026 mouse_multi_dpi_led_blink_timer_init:
+0x6185 026027 fetch 1 ,mem_mouse_dpi_led_blink_timer_init 
+:      026028 mouse_store_multi_led_blink_timer:
+0x6186 026029 store 1 ,mem_mouse_multi_led_blink_timer 
+0x6187 026030 rtn 
+:      026031 mouse_device_24g_led_blink_timer_init:
+0x6188 026032 fetch 1 ,mem_mouse_multi_24gled_blink_timer_init 
+0x6189 026033 branch mouse_store_multi_led_blink_timer 
+:      026034 mouse_device_le_discovery_led_blink_timer_init:
+0x618a 026035 fetch 1 ,mem_mouse_multi_le_discovery_blink_timer_init 
+0x618b 026036 branch mouse_store_multi_led_blink_timer 
+:      026037 mouse_device_le_reconn_led_blink_timer_init:
+0x618c 026038 fetch 1 ,mem_mouse_multi_le_reconn_blink_timer_init 
+0x618d 026039 branch mouse_store_multi_led_blink_timer 
+:      026042 mouse_device_poweron_led_config:
+0x618e 026043 bpatch patch13_1 ,mem_patch13 
+0x618f 026044 fetch 1 ,mem_mouse_multi_led_powon_timer_init 
+0x6190 026045 store 1 ,mem_mouse_multi_led_powon_timer 
+0x6191 026046 jam multi_led_on ,mem_mouse_multi_led_type 
+:      026047 mouse_multi_led_enable:
+0x6192 026048 jam off ,mem_mouse_multi_led_state 
+0x6193 026049 jam on ,mem_mouse_multi_led_blink_enable 
+0x6194 026050 rtn 
+:      026053 mouse_device_24g_pair_led_config:
+0x6195 026054 bpatch patch13_2 ,mem_patch13 
+0x6196 026055 fetch 1 ,mem_device_flag 
+0x6197 026056 rtnne mode_24g_device 
+0x6198 026057 call mouse_multi_led_blink_enable_init 
+0x6199 026058 jam 1 ,mem_mouse_multi_led_blink_type 
+0x619a 026059 call mouse_device_24g_led_blink_timer_init 
+0x619b 026060 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x619c 026061 rtn blank 
+0x619d 026062 fetch 1 ,mem_mouse_multi_24gled_blink_count_init 
+0x619e 026063 branch mouse_device_led_blink_count_init 
+:      026065 mouse_device_le_reconn_led_config:
+0x619f 026066 fetch 1 ,mem_device_flag 
+0x61a0 026067 rtneq mode_24g_device 
+0x61a1 026068 call mouse_multi_led_blink_enable_init 
+0x61a2 026069 fetch mouse_flag_len ,mem_mouse_flag 
+0x61a3 026070 rtnbit0 mouse_enable_bt_reconn_led_effect 
+0x61a4 026071 jam 3 ,mem_mouse_multi_led_blink_type 
+0x61a5 026072 call mouse_device_le_reconn_led_blink_timer_init 
+0x61a6 026073 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x61a7 026074 rtn blank 
+0x61a8 026075 fetch 1 ,mem_mouse_multi_le_reconn_blink_count_init 
+:      026076 mouse_device_led_blink_count_init:
+0x61a9 026077 store 1 ,mem_mouse_multi_led_blink_count 
+0x61aa 026078 rtn 
+:      026080 mouse_device_discovery_led_config:
+0x61ab 026081 jam 0 ,mem_mouse_le_reconn_blink_limit 
+0x61ac 026082 jam 2 ,mem_mouse_multi_led_blink_type 
+0x61ad 026083 call mouse_device_le_discovery_led_blink_timer_init 
+:      026084 mouse_multi_led_blink_enable_init:
+0x61ae 026085 jam 1 ,mem_mouse_multi_led_blink_enable 
+0x61af 026086 jam multi_led_blink ,mem_mouse_multi_led_type 
+0x61b0 026087 branch mouse_device_multi_led_on 
+:      026091 mouse_led_multi_timer:
+0x61b1 026092 fetch 1 ,mem_mouse_multi_led_blink_enable 
+0x61b2 026093 rtn blank 
+0x61b3 026094 fetch 1 ,mem_mouse_multi_led_type 
+0x61b4 026095 beq multi_led_blink ,mouse_multi_led_type_blink 
+:      026096 mouse_device_multi_led_type_on:
+0x61b5 026097 fetch 1 ,mem_mouse_multi_led_powon_timer 
+0x61b6 026098 branch mouse_device_poweron_led_off ,blank 
+0x61b7 026099 increase -1 
+0x61b8 026100 store 1 ,mem_mouse_multi_led_powon_timer 
+0x61b9 026101 branch mouse_device_led_on 
+:      026103 mouse_device_poweron_led_off:
+0x61ba 026104 jam 0 ,mem_mouse_multi_led_blink_enable 
+0x61bb 026105 call mouse_multi_low_led_blink_count_init 
+0x61bc 026106 branch mouse_device_led_off 
+:      026108 mouse_multi_led_type_blink:
+0x61bd 026109 bpatch patch13_3 ,mem_patch13 
+0x61be 026110 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x61bf 026111 rtn blank 
+0x61c0 026112 beq 4 ,mouse_device_led_blink_limit 
+0x61c1 026113 branch mouse_device_led_blink_judge 
+:      026115 mouse_device_led_blink_judge:
+0x61c2 026116 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x61c3 026117 beq 1 ,mouse_device_led_blink_limit 
+0x61c4 026118 branch mouse_multi_led_type_blink_next 
+:      026120 mouse_device_led_blink_limit:
+0x61c5 026121 fetch 1 ,mem_mouse_multi_led_blink_count 
+0x61c6 026122 branch mouse_multi_led_off_judge ,blank 
+:      026123 mouse_multi_led_type_blink_next:
+0x61c7 026124 arg mem_mouse_multi_led_blink_timer ,regc 
+0x61c8 026125 arg mouse_multi_led_type_blink_start ,regb 
+0x61c9 026126 branch timer_single_step 
+:      026128 mouse_multi_led_type_blink_start:
+0x61ca 026129 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x61cb 026130 beq 4 ,mouse_multi_led_blink_count_decrease 
+0x61cc 026131 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x61cd 026132 beq 1 ,mouse_multi_led_blink_count_decrease 
+:      026133 mouse_multi_led_blink:
+0x61ce 026134 call mouse_multi_led_blink_timer_init 
+0x61cf 026135 fetch 1 ,mem_mouse_multi_led_state 
+0x61d0 026136 beq on ,mouse_multi_led_off_judge_next 
+0x61d1 026137 branch mouse_multi_led_on_judge 
+:      026139 mouse_multi_led_blink_count_decrease:
+0x61d2 026140 fetch 1 ,mem_mouse_multi_led_blink_count 
+0x61d3 026141 increase -1 
+0x61d4 026142 store 1 ,mem_mouse_multi_led_blink_count 
+0x61d5 026143 branch mouse_multi_led_blink 
+:      026146 mouse_multi_led_on_judge:
+0x61d6 026147 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x61d7 026148 beq 4 ,mouse_multi_dpi_led_on_judge 
+:      026149 mouse_device_multi_led_on:
+0x61d8 026150 jam on ,mem_mouse_multi_led_state 
+:      026151 mouse_device_led_on:
+0x61d9 026152 bpatch patch13_4 ,mem_patch13 
+0x61da 026153 fetch 1 ,mem_device_flag 
+0x61db 026154 beq mode_24g_device ,mouse_device_24g_led_on 
+0x61dc 026155 beq mode_bt_device1 ,mouse_device_bt1_led_on 
+0x61dd 026156 beq mode_bt_device2 ,mouse_device_bt2_led_on 
+0x61de 026157 rtn 
+:      026158 mouse_device_24g_led_on:
+0x61df 026159 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+0x61e0 026160 branch mouse_led_on 
+:      026161 mouse_device_bt1_led_on:
+0x61e1 026162 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+0x61e2 026163 branch mouse_led_on 
+:      026164 mouse_device_bt2_led_on:
+0x61e3 026165 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+:      026166 mouse_led_on:
+0x61e4 026167 branch gpio_out_active 
+:      026169 mouse_led_off:
+0x61e5 026170 branch gpio_out_inactive 
+:      026172 mouse_multi_led_off_judge:
+0x61e6 026173 jam 0 ,mem_mouse_multi_led_blink_enable 
+0x61e7 026174 jam 0 ,mem_mouse_multi_led_blink_type 
+:      026175 mouse_multi_led_off_judge_next:
+0x61e8 026176 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x61e9 026177 beq 4 ,mouse_multi_dpi_led_off_judge 
+:      026178 mouse_device_multi_led_off:
+0x61ea 026179 jam off ,mem_mouse_multi_led_state 
+:      026180 mouse_device_led_off:
+0x61eb 026181 bpatch patch13_5 ,mem_patch13 
+0x61ec 026182 fetch 1 ,mem_device_flag 
+0x61ed 026183 beq mode_24g_device ,mouse_device_24g_led_off 
+0x61ee 026184 beq mode_bt_device1 ,mouse_device_bt1_led_off 
+0x61ef 026185 beq mode_bt_device2 ,mouse_device_bt2_led_off 
+0x61f0 026186 rtn 
+:      026187 mouse_device_24g_led_off:
+0x61f1 026188 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+0x61f2 026189 fetch mouse_flag_len ,mem_mouse_flag 
+0x61f3 026190 bbit0 mouse_enable_1io2led ,mouse_led_off 
+0x61f4 026191 branch gpio_set_high_impedance 
+:      026192 mouse_device_bt1_led_off:
+0x61f5 026193 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+0x61f6 026194 fetch mouse_flag_len ,mem_mouse_flag 
+0x61f7 026195 bbit0 mouse_enable_1io2led ,mouse_led_off 
+0x61f8 026196 branch gpio_set_high_impedance 
+:      026197 mouse_device_bt2_led_off:
+0x61f9 026198 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+0x61fa 026199 fetch mouse_flag_len ,mem_mouse_flag 
+0x61fb 026200 bbit0 mouse_enable_1io2led ,mouse_led_off 
+0x61fc 026201 branch gpio_set_high_impedance 
+:      026203 mouse_device_multi_led_all_off:
+0x61fd 026204 call mouse_device_24g_led_off 
+0x61fe 026205 call mouse_device_bt1_led_off 
+0x61ff 026206 call mouse_device_bt2_led_off 
+0x6200 026207 call mouse_low_voltage_led_off_judge 
+0x6201 026208 branch mouse_multi_dpi_led_off_judge 
+:      026210 mouse_multi_dpi_led_off_judge:
+0x6202 026211 jam off ,mem_mouse_multi_led_state 
+0x6203 026212 fetch mouse_flag_len ,mem_mouse_flag 
+0x6204 026213 bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_off 
+0x6205 026214 bbit1 mouse_enable_dpi_low_for_led ,mouse_device_multi_led_off 
+:      026215 mouse_multi_dpi_led_off:
+0x6206 026216 fetcht 1 ,mem_mouse_dpi_gpio 
+0x6207 026217 branch mouse_led_off 
+:      026219 mouse_multi_dpi_led_on_judge:
+0x6208 026220 jam on ,mem_mouse_multi_led_state 
+0x6209 026221 fetch mouse_flag_len ,mem_mouse_flag 
+0x620a 026222 bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_on 
+0x620b 026223 bbit1 mouse_enable_dpi_low_for_led ,mouse_device_multi_led_on 
+:      026224 mouse_multi_dpi_led_on:
+0x620c 026225 fetcht 1 ,mem_mouse_dpi_gpio 
+0x620d 026226 branch mouse_led_on 
+:      026230 mouse_low_voltage_led_no_enter_lpm:
+0x620e 026231 fetch mouse_flag_len ,mem_mouse_flag 
+0x620f 026232 rtnbit0 mouse_low_voltage_flag 
+0x6210 026233 fetch 1 ,mem_adc_low_volatage_led_timer_count 
+0x6211 026234 fetcht 1 ,mem_mouse_low_led_blink_half_timer 
+0x6212 026235 sub pdata ,temp ,null 
+0x6213 026236 branch mouse_lpm_mode_clear ,positive 
+:      026237 mouse_low_voltage_led_no_enter_lpm_next:
+0x6214 026238 fetch 1 ,mem_device_flag 
+0x6215 026239 beq mode_24g_device ,g24_transmit_by_interrupt_exit_check 
+0x6216 026240 jam 1 ,mem_lpm_mode 
+0x6217 026241 rtn 
+:      026243 g24_transmit_by_interrupt_exit_check:
+0x6218 026244 fetch mouse_flag_len ,mem_mouse_flag 
+0x6219 026245 rtnbit1 mouse_enable_24g_250hz 
+0x621a 026246 branch g24_transmit_by_interrupt_exit 
+:      026248 mouse_lpm_mode_clear:
+0x621b 026249 fetch 1 ,mem_device_flag 
+0x621c 026250 beq mode_24g_device ,g24_transmit_by_interrupt_enable 
+0x621d 026251 jam 0 ,mem_lpm_mode 
+0x621e 026252 rtn 
+:      026255 mouse_store_signal_rssi:
+0x621f 026257 fetch 1 ,mem_rssi 
+0x6220 026258 branch rssi_signal 
+:      026260 mouse_le_transmit:
+0x6221 026261 call mouse_store_signal_rssi 
+0x6222 026262 branch power_ctrl_start 
+:      026264 mouse_le_set_lpm_mult:
+0x6223 026265 fetch 1 ,mem_le_connect_status_flag 
+0x6224 026266 compare 3 ,pdata ,3 
+0x6225 026267 nbranch disable_blank ,true 
+0x6226 026268 call app_lpm_mult_enable 
+0x6227 026269 branch enable_blank 
+:      026271 mouse_set_lpm_mult:
+0x6228 026272 fetch 2 ,mem_ui_state_map 
+0x6229 026273 bbit1 ui_state_ble_connected ,mouse_le_set_lpm_mult 
+0x622a 026274 rtn 
+:      026276 mouse_24g_long_sleep:
+0x622b 026277 call g24_lpm_wait 
+0x622c 026278 nrtn user 
+0x622d 026279 jam 1 ,mem_mouse_24g_long_sleep_flag 
+0x622e 026280 call g24_setgpio_lpm_before 
+0x622f 026281 jam 0 ,mem_mouse_24g_sleep_miss 
+0x6230 026282 call mouse_24g_send_time_long_wake 
+0x6231 026283 fetch 1 ,mem_sensor_shutdown_flag 
+0x6232 026284 ncall mouse_setgpio_hibernate ,blank 
+0x6233 026285 fetch 4 ,mem_24g_enter_hibernate 
+0x6234 026286 branch g24_long_seep2 
+:      026288 mouse_24g_short_sleep:
+0x6235 026289 fetch 1 ,mem_mouse_sleep_deal_type 
+0x6236 026290 branch g24_short_sleep ,blank 
+0x6237 026291 call g24_lpm_wait 
+0x6238 026292 nrtn user 
+0x6239 026293 fetch 1 ,mem_mouse_24g_sleep_miss 
+0x623a 026294 jam 0 ,mem_mouse_24g_sleep_miss 
+0x623b 026295 sub pdata ,0 ,null 
+0x623c 026296 nbranch mouse_24g_short_sleep_last_miss ,zero 
+0x623d 026297 fetcht 2 ,mem_24g_retransmit 
+0x623e 026298 sub temp ,0 ,null 
+0x623f 026299 branch mouse_24g_short_sleep_default ,zero 
+0x6240 026301 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+0x6241 026302 branch mouse_24g_short_sleep_default ,blank 
+:      026303 mouse_24g_short_sleep_notify:
+0x6242 026304 fetcht 4 ,mem_mouse_24g_tsniff 
+0x6243 026305 isub temp ,temp 
+0x6244 026306 storet 4 ,mem_mouse_24g_sleep_miss_temp 
+0x6245 026307 nbranch mouse_24g_short_sleep_long ,positive 
+0x6246 026308 fetch 3 ,mem_24g_short_sleep_set 
+0x6247 026309 isub temp ,pdata 
+0x6248 026310 nbranch mouse_24g_short_sleep_2 ,positive 
+0x6249 026311 arg 0x600 ,temp 
+0x624a 026312 isub temp ,null 
+0x624b 026313 nbranch mouse_24g_short_sleep_2 ,positive 
+:      026314 mouse_24g_short_sleep2:
+0x624c 026315 store 4 ,mem_mouse_24g_sleep_time_temp 
+0x624d 026316 call mouse_24g_miss_temp_clear 
+0x624e 026317 fetch 4 ,mem_mouse_24g_sleep_time_temp 
+:      026318 mouse_24g_short_sleep3:
+0x624f 026319 call clk2lpo 
+0x6250 026320 storet 4 ,mem_sleep_counter 
+0x6251 026321 branch lpm_sleep 
+:      026323 mouse_24g_short_sleep_default:
+0x6252 026324 call mouse_24g_miss_temp_clear 
+0x6253 026325 fetch 3 ,mem_24g_short_sleep_set 
+0x6254 026326 branch mouse_24g_short_sleep2 
+:      026328 mouse_24g_short_sleep_long:
+0x6255 026329 sub temp ,0 ,temp 
+0x6256 026330 fetch 3 ,mem_24g_short_sleep_set 
+0x6257 026331 iadd temp ,pdata 
+0x6258 026332 branch mouse_24g_short_sleep2 
+:      026334 mouse_24g_miss_temp_clear:
+0x6259 026335 setarg 0 
+0x625a 026336 store 4 ,mem_mouse_24g_sleep_miss_temp 
+0x625b 026337 rtn 
+:      026339 mouse_24g_short_sleep_last_miss:
+0x625c 026340 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+0x625d 026341 fetcht 4 ,mem_mouse_24g_sleep_miss_temp 
+0x625e 026342 iadd temp ,pdata 
+0x625f 026343 branch mouse_24g_short_sleep_notify 
+:      026345 mouse_24g_short_sleep_2:
+0x6260 026346 jam 1 ,mem_mouse_24g_sleep_miss 
+0x6261 026347 rtn 
+:      026350 mouse_24g_transmit_callback:
+0x6262 026351 call mouse_24g_send_time_check 
+0x6263 026352 branch mouse_wakeup_24g 
+:      026354 mouse_24g_send_time_check:
+0x6264 026355 fetch 1 ,mem_mouse_sleep_deal_type 
+0x6265 026356 rtn blank 
+0x6266 026357 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x6267 026358 beq g24_tx_timer_int_enable ,mouse_24g_send_timer_first 
+0x6268 026359 fetch 1 ,mem_mouse_24g_tx_count 
+0x6269 026360 branch mouse_24g_send_timer_first ,blank 
+0x626a 026361 copy clkn ,pdata 
+0x626b 026362 fetcht 6 ,mem_mouse_24g_tx_time_last 
+0x626c 026363 store 6 ,mem_mouse_24g_tx_time_last 
+0x626d 026364 call clk_diff_rt 
+0x626e 026365 store 4 ,mem_mouse_24g_tx_time_last_delt 
+0x626f 026367 fetch 1 ,mem_mouse_24g_sleep_miss 
+0x6270 026368 nrtn blank 
+0x6271 026369 fetch 2 ,mem_24g_retransmit 
+0x6272 026370 nrtn blank 
+0x6273 026371 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+:      026372 mouse_24g_send_time_check_1:
+0x6274 026373 fetcht 5 ,mem_mouse_24g_tx_time_sum 
+0x6275 026374 iadd temp ,pdata 
+0x6276 026375 store 5 ,mem_mouse_24g_tx_time_sum 
+0x6277 026376 fetcht 1 ,mem_mouse_24g_tx_count 
+0x6278 026377 fetch 1 ,mem_mouse_24g_tx_time_sum_count 
+0x6279 026378 isub temp ,null 
+0x627a 026379 branch mouse_24g_send_time_check_average ,zero 
+0x627b 026380 increase 1 ,temp 
+0x627c 026381 storet 1 ,mem_mouse_24g_tx_count 
+0x627d 026382 rtn 
+:      026384 mouse_24g_send_time_check_average:
+0x627e 026385 jam 1 ,mem_mouse_24g_tx_count 
+0x627f 026386 arg 0 ,temp 
+0x6280 026387 fetch 5 ,mem_mouse_24g_tx_time_sum 
+0x6281 026388 storet 5 ,mem_mouse_24g_tx_time_sum 
+0x6282 026389 fetcht 1 ,mem_mouse_24g_tx_time_sum_count 
+0x6283 026390 idiv temp 
+0x6284 026391 call wait_div_end 
+0x6285 026392 quotient rega 
+0x6286 026394 fetch 4 ,mem_mouse_24g_tsniff 
+0x6287 026395 fetcht 1 ,mem_mouse_24g_tx_time_offset 
+0x6288 026396 isub temp ,temp 
+0x6289 026397 increase -40 ,temp 
+0x628a 026399 copy rega ,pdata 
+0x628b 026400 isub temp ,pdata 
+0x628c 026401 branch mouse_24g_send_time_check_average_late ,positive 
+0x628d 026402 sub pdata ,0 ,pdata 
+0x628e 026404 rshift2 pdata ,pdata 
+0x628f 026405 fetcht 3 ,mem_24g_short_sleep_set 
+0x6290 026406 iadd temp ,temp 
+0x6291 026407 bpatch patch13_6 ,mem_patch13 
+0x6292 026408 fetch 3 ,mem_mouse_24g_short_sleep_set_init 
+0x6293 026409 arg 0x1800 ,rega 
+0x6294 026410 iadd rega ,pdata 
+0x6295 026411 isub temp ,null 
+0x6296 026412 nbranch mouse_24g_send_time_check_average_min ,positive 
+0x6297 026413 storet 3 ,mem_24g_short_sleep_set 
+0x6298 026414 rtn 
+:      026416 mouse_24g_send_time_check_average_late:
+0x6299 026417 rshift2 pdata ,temp 
+0x629a 026418 fetch 3 ,mem_24g_short_sleep_set 
+0x629b 026419 isub temp ,temp 
+0x629c 026420 bpatch patch13_7 ,mem_patch13 
+0x629d 026421 fetch 3 ,mem_mouse_24g_short_sleep_set_init 
+0x629e 026422 arg 0x1800 ,rega 
+0x629f 026423 isub rega ,pdata 
+0x62a0 026424 isub temp ,null 
+0x62a1 026425 branch mouse_24g_send_time_check_average_min ,positive 
+0x62a2 026426 storet 3 ,mem_24g_short_sleep_set 
+0x62a3 026427 rtn 
+:      026429 mouse_24g_send_time_check_average_min:
+0x62a4 026430 store 3 ,mem_24g_short_sleep_set 
+0x62a5 026431 rtn 
+:      026433 mouse_24g_send_timer_first:
+0x62a6 026434 jam 1 ,mem_mouse_24g_tx_count 
+0x62a7 026435 copy clkn ,pdata 
+0x62a8 026436 store 6 ,mem_mouse_24g_tx_time_last 
+0x62a9 026437 rtn 
+:      026439 mouse_24g_send_time_long_wake:
+0x62aa 026440 setarg 0 
+0x62ab 026441 store 1 ,mem_mouse_24g_tx_count 
+0x62ac 026442 store 5 ,mem_mouse_24g_tx_time_sum 
+0x62ad 026443 rtn 
+:      026452 shutter_init:
+0x62ae 026453 call enable_authrom 
+0x62af 026454 rtn wake 
+0x62b0 026456 setarg shutter_process_idle 
+0x62b1 026457 store 2 ,mem_cb_idle_process 
+0x62b2 026459 setarg shutter_process_bb_event 
+0x62b3 026460 store 2 ,mem_cb_bb_event_process 
+0x62b4 026462 setarg ble_shutter_receive_data 
+0x62b5 026463 store 2 ,mem_cb_att_write 
+0x62b6 026465 setarg shutter_le_bb_event_timer 
+0x62b7 026466 store 2 ,mem_cb_event_timer 
+0x62b8 026468 setarg shutter_key_change 
+0x62b9 026469 store 2 ,mem_cb_shutter_keycan 
+0x62ba 026471 call shutter_common_init 
+0x62bb 026473 bpatch patch14_0 ,mem_patch14 
+0x62bc 026474 call shutter_load_buffer_config_form_datarom 
+:      026476 shutter_power_switch:
+0x62bd 026477 fetch 1 ,mem_shutter_hard_soft_switch_case 
+0x62be 026478 beq hard_switch ,shutter_hart_swtich_power_on 
+0x62bf 026479 fetch 1 ,mem_shutter_soft_switch_button_gpio 
+0x62c0 026480 store 1 ,mem_ui_button_gpio 
+0x62c1 026481 branch ui_soft_swtich_init 
+:      026484 shutter_common_init:
+0x62c2 026485 setarg shutter_le_before_hibernate 
+0x62c3 026486 store 2 ,mem_cb_before_hibernate 
+0x62c4 026488 setarg shutter_process_lpm_before 
+0x62c5 026489 store 2 ,mem_cb_before_lpm 
+0x62c6 026491 setarg shutter_soft_swtich_power_on 
+0x62c7 026492 store 2 ,mem_shutter_soft_switch_poweron_callback_function 
+0x62c8 026494 setarg shutter_soft_swtich_power_off 
+0x62c9 026495 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
+0x62ca 026497 jam 7 ,mem_version 
+0x62cb 026498 call le_modified_name_adv 
+0x62cc 026499 call shutter_init_param 
+0x62cd 026500 call keyscan_key_init 
+0x62ce 026501 call queue_init 
+0x62cf 026502 branch ui_led_init_global 
+:      026506 shutter_hart_swtich_power_on:
+0x62d0 026507 jam ui_button_gpio_disable ,mem_ui_button_gpio 
+0x62d1 026508 jam ss_state_power_on ,mem_shutter_soft_switch_power_state 
+0x62d2 026509 branch shutter_start_reconnect 
+:      026513 shutter_le_scale_lpm_lock:
+0x62d3 026514 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x62d4 026515 beq ss_state_power_off ,app_get_lpm_wake_lock 
+0x62d5 026516 call l2cap_malloc_get_full_map 
+0x62d6 026517 fetch 1 ,mem_used_map 
+0x62d7 026518 nbranch app_get_lpm_wake_lock ,blank 
+0x62d8 026519 branch app_put_lpm_wake_lock 
+:      026523 shutter_process_bb_event:
+0x62d9 026524 copy regc ,pdata 
+0x62da 026527 beq bt_evt_le_connected ,ble_shutter_process_baseband_connect 
+0x62db 026528 beq bt_evt_le_disconnected ,ble_shutter_process_baseband_disconnect 
+0x62dc 026529 beq bt_evt_le_reconnect_complete ,ble_shutter_process_reconnect_complete 
+0x62dd 026530 beq bt_evt_le_parse_conn_papa_update_rsp ,ble_shutter_process_parse_connect_parameter_update_response 
+0x62de 026532 beq bt_evt_button_long_pressed ,ui_soft_switch_botton_long_press 
+0x62df 026533 beq bt_evt_button_down ,shutter_process_soft_swtich_button_down 
+0x62e0 026534 beq bt_evt_button_up ,shutter_process_soft_swtich_button_up 
+0x62e1 026535 rtn 
+:      026540 ble_shutter_process_baseband_connect:
+0x62e2 026541 call shutter_stop_bluetooth_discovery 
+0x62e3 026542 setarg 0 
+0x62e4 026543 store 2 ,mem_ble_shutter_reconn_timer 
+0x62e5 026544 branch app_led_off 
+:      026547 ble_shutter_process_baseband_disconnect:
+0x62e6 026548 call queue_init 
+0x62e7 026549 jam 0 ,mem_ble_shutter_enable_notify 
+0x62e8 026550 branch shutter_start_reconnect 
+:      026553 ble_shutter_process_reconnect_complete:
+0x62e9 026554 call queue_init 
+0x62ea 026555 jam 1 ,mem_ble_shutter_enable_notify 
+0x62eb 026556 fetch 8 ,mem_ble_shutter_interval_min 
+0x62ec 026557 store 8 ,mem_le_interval_min 
+0x62ed 026558 call app_lpm_mult_enable 
+0x62ee 026559 branch le_l2cap_tx_update_req 
+:      026562 ble_shutter_process_parse_connect_parameter_update_response:
+0x62ef 026563 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0x62f0 026564 rtneq ble_signaling_connect_parameter_update_accepted 
+0x62f1 026565 fetch 8 ,mem_ble_shutter_interval_min_new 
+0x62f2 026566 rtn blank 
+0x62f3 026567 store 8 ,mem_le_interval_min 
+0x62f4 026568 branch le_l2cap_tx_update_req 
+:      026575 shutter_process_soft_swtich_button_down:
+0x62f5 026576 fetch 1 ,mem_shutter_hard_soft_switch_case 
+0x62f6 026577 rtneq hard_switch 
+0x62f7 026578 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x62f8 026579 rtnne ss_state_power_on 
+0x62f9 026580 call shutter_store_currenct_led_state 
+0x62fa 026581 branch app_led_on 
+:      026583 shutter_store_currenct_led_state:
+0x62fb 026584 jam 1 ,mem_shutter_soft_swtich_botton_down 
+0x62fc 026585 arg 11 ,loopcnt 
+0x62fd 026586 arg mem_shutter_soft_swtich_led_struct_temp ,contw 
+0x62fe 026587 arg mem_shutter_led_struct_app_led ,contr 
+0x62ff 026588 branch memcpy 
+:      026590 shutter_process_soft_swtich_button_up:
+0x6300 026591 fetch 1 ,mem_shutter_hard_soft_switch_case 
+0x6301 026592 rtneq hard_switch 
+0x6302 026593 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x6303 026594 beq ss_state_power_on ,shutter_load_currenct_led_state 
+0x6304 026595 branch ui_soft_switch_botton_up 
+:      026597 shutter_load_currenct_led_state:
+0x6305 026598 fetch 1 ,mem_shutter_soft_swtich_botton_down 
+0x6306 026599 rtnne 1 
+0x6307 026600 jam 0 ,mem_shutter_soft_swtich_botton_down 
+0x6308 026601 fetch 2 ,mem_ui_state_map 
+0x6309 026602 bbit1 ui_state_ble_connected ,app_led_off 
+0x630a 026603 arg 11 ,loopcnt 
+0x630b 026604 arg mem_shutter_soft_swtich_led_struct_temp ,contr 
+0x630c 026605 arg mem_shutter_led_struct_app_led ,contw 
+0x630d 026606 branch memcpy 
+:      026611 shutter_le_bb_event_timer:
+0x630e 026613 call shutter_check_sleep_timer 
+0x630f 026616 call shutter_check_power_off_timer 
+0x6310 026620 branch ble_shutter_reconn_timer 
+:      026624 shutter_check_sleep_timer:
+0x6311 026625 arg mem_shutter_sleep_timer ,regc 
+0x6312 026626 arg shutter_sleep_timeout ,regb 
+0x6313 026627 branch timer_single_step_2b 
+:      026628 shutter_sleep_timeout:
+0x6314 026629 jam ss_state_power_off ,mem_shutter_soft_switch_power_state 
+0x6315 026630 call app_led_off 
+0x6316 026631 call shutter_disconnect_current_connection 
+0x6317 026632 branch shutter_wait_power_off 
+:      026635 shutter_check_power_off_timer:
+0x6318 026636 arg mem_shutter_power_off_timer ,regc 
+0x6319 026637 arg shutter_check_power_off_timeout ,regb 
+0x631a 026638 branch timer_single_step 
+:      026640 shutter_check_power_off_timeout:
+0x631b 026641 fetch 2 ,mem_ui_state_map 
+0x631c 026642 bbit1 ui_state_ble_connected ,shutter_wait_power_off 
+0x631d 026643 fetch 1 ,mem_shutter_led_struct_app_led_type 
+0x631e 026644 beq ui_led_state_blink_start ,shutter_wait_power_off 
+0x631f 026645 beq ui_led_state_blink_lighting ,shutter_wait_power_off 
+0x6320 026646 beq ui_led_state_blink_darking ,shutter_wait_power_off 
+0x6321 026647 branch app_enter_hibernate 
+:      026651 ble_shutter_reconn_timer:
+0x6322 026652 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x6323 026653 rtnne ss_state_power_on 
+0x6324 026654 arg mem_ble_shutter_reconn_timer ,regc 
+0x6325 026655 arg shutter_start_bluetooth_discovery ,regb 
+0x6326 026656 branch timer_single_step_2b 
+:      026659 shutter_process_idle:
+0x6327 026660 call shutter_send_data_to_master 
+0x6328 026661 branch keyscan_key_process 
+:      026664 shutter_process_lpm_before:
+0x6329 026665 call gpio_set_before_lpm 
+0x632a 026666 branch keyscan_process_lpm_before 
+:      026668 shutter_le_before_hibernate:
+0x632b 026669 call gpio_set_before_lpm 
+0x632c 026670 branch disable_authrom 
+:      026676 shutter_stop_bluetooth_discovery:
+:      026680 ble_shutter_stop_bluetooth_discovery:
+0x632d 026681 fetch 2 ,mem_ble_shutter_connect_timeout 
+0x632e 026682 store 2 ,mem_shutter_sleep_timeout 
+0x632f 026683 store 2 ,mem_shutter_sleep_timer 
+0x6330 026684 branch app_ble_stop_adv 
+:      026687 shutter_start_bluetooth_discovery:
+0x6331 026688 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x6332 026689 rtnne ss_state_power_on 
+:      026693 ble_shutter_start_discovery:
+0x6333 026694 fetch 2 ,mem_ui_state_map 
+0x6334 026695 rtnbit1 ui_state_ble_connected 
+0x6335 026696 fetch 2 ,mem_ble_shutter_discovery_timeout 
+0x6336 026697 store 2 ,mem_shutter_sleep_timeout 
+0x6337 026698 store 2 ,mem_shutter_sleep_timer 
+0x6338 026699 fetch 2 ,mem_ble_shutter_discovery_adv_interval 
+0x6339 026700 call shutter_ble_adv_interval_set 
+0x633a 026701 call app_led_start_blink 
+0x633b 026702 fetch 4 ,mem_ble_shutter_discovery_blink_on_time 
+0x633c 026703 store 4 ,mem_shutter_led_struct_app_led_on_time 
+0x633d 026704 fetch 2 ,mem_ui_state_map 
+0x633e 026705 rtnbit1 ui_state_ble_adv 
+0x633f 026706 branch app_ble_start_adv 
+:      026708 shutter_soft_swtich_power_on:
+:      026709 shutter_start_reconnect:
+0x6340 026710 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x6341 026711 rtnne ss_state_power_on 
+:      026715 ble_shutter_start_reconnect:
+0x6342 026716 fetch 2 ,mem_ble_shutter_reconn_timer 
+0x6343 026717 fetcht 2 ,mem_ble_shutter_reconn_timeout 
+0x6344 026718 storet 2 ,mem_ble_shutter_reconn_timer 
+0x6345 026719 nrtn blank 
+0x6346 026720 fetch 2 ,mem_ble_shutter_reconn_adv_interval 
+0x6347 026721 call shutter_ble_adv_interval_set 
+0x6348 026722 call app_led_start_blink 
+0x6349 026723 fetch 4 ,mem_ble_shutter_reconn_blink_on_time 
+0x634a 026724 store 4 ,mem_shutter_led_struct_app_led_on_time 
+0x634b 026725 fetch 2 ,mem_ui_state_map 
+0x634c 026726 rtnbit1 ui_state_ble_adv 
+0x634d 026727 branch app_ble_start_adv 
+:      026729 shutter_disconnect_current_connection:
+0x634e 026730 fetch 2 ,mem_ui_state_map 
+0x634f 026731 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+0x6350 026732 branch shutter_stop_bluetooth_discovery 
+:      026736 shutter_check_data_enable:
+0x6351 026737 call disable_user 
+0x6352 026738 fetch 2 ,mem_ui_state_map 
+0x6353 026739 bbit1 ui_state_ble_connected ,shutter_check_ble_data_enable 
+0x6354 026740 rtn 
+:      026742 shutter_check_ble_data_enable:
+0x6355 026743 fetch 1 ,mem_ble_shutter_enable_notify 
+0x6356 026744 rtn blank 
+0x6357 026745 branch enable_user 
+:      026750 shutter_check_bluetooth_conn:
+0x6358 026751 call disable_user 
+0x6359 026752 fetch 2 ,mem_ui_state_map 
+0x635a 026753 rtnbit1 ui_state_ble_connected 
+0x635b 026754 branch enable_user 
+:      026758 shutter_change_bluetooth_status_bt_disconn:
+:      026762 ble_shutter_change_bluetooth_status_bt_disconn:
+0x635c 026763 branch shutter_start_reconnect 
+:      026767 shutter_check_send_data:
+0x635d 026768 disable user2 
+0x635e 026769 fetch 2 ,mem_shutter_sleep_timeout 
+0x635f 026770 store 2 ,mem_shutter_sleep_timer 
+0x6360 026772 call shutter_check_bluetooth_conn 
+0x6361 026773 branch shutter_change_bluetooth_status_bt_disconn ,user 
+0x6362 026775 call shutter_check_data_enable 
+0x6363 026776 nrtn user 
+0x6364 026777 branch enable_user2 
+:      026781 shutter_key_change:
+0x6365 026782 call shutter_check_send_data 
+0x6366 026783 nrtn user2 
+0x6367 026784 deposit rega 
+0x6368 026785 branch shutter_key_release ,blank 
+:      026786 shutter_key_press:
+0x6369 026787 call app_led_on 
+0x636a 026788 arg mem_key0_press ,regc 
+0x636b 026789 branch push_queue_press_or_release 
+:      026791 shutter_key_release:
+0x636c 026792 call app_led_off 
+0x636d 026793 arg mem_key0_release ,regc 
+:      026795 push_queue_press_or_release:
+0x636e 026796 arg max_queue_num ,pdata 
+0x636f 026797 imul32 queue ,pdata 
+0x6370 026798 iadd regc ,regc 
+:      026801 push_buffer_in_queue:
+0x6371 026802 ifetch 1 ,regc 
+0x6372 026803 rtn blank 
+0x6373 026804 call queue_push_one_byte 
+0x6374 026805 increase 1 ,regc 
+0x6375 026806 branch push_buffer_in_queue 
+:      026809 shutter_send_data_to_master:
+0x6376 026810 fetch 2 ,mem_ui_state_map 
+0x6377 026811 bbit1 ui_state_ble_connected ,pop_queue_to_ble_data 
+0x6378 026812 rtn 
+:      026814 pop_queue_to_ble_data:
+0x6379 026815 call le_fifo_check_nearly_full 
+0x637a 026816 nrtn blank 
+0x637b 026817 call queue_pop_one_byte 
+0x637c 026818 nrtn user 
+0x637d 026819 pincrease -1 
+0x637e 026820 mul32 pdata ,shutter_ble_data_buffer ,pdata 
+0x637f 026821 arg mem_ble_data_buffer1 ,temp 
+0x6380 026822 iadd temp ,contr 
+0x6381 026823 branch le_send_notify_from_list 
+:      026827 queue_push_one_byte:
+0x6382 026828 store 1 ,mem_pdatatemp 
+0x6383 026829 arg mem_pdatatemp ,rega 
+0x6384 026830 branch queue_push 
+:      026832 queue_pop_one_byte:
+0x6385 026833 arg mem_pdatatemp ,rega 
+0x6386 026834 call queue_pop 
+0x6387 026835 nrtn user 
+0x6388 026836 fetch 1 ,mem_pdatatemp 
+0x6389 026837 rtn 
+:      026840 ble_shutter_receive_data:
+0x638a 026841 fetch 2 ,mem_le_att_handle 
+0x638b 026842 beq gatt_keyboard_write_handle ,ble_shutter_process_reconnect_complete 
+0x638c 026843 rtn 
+:      026845 shutter_init_param:
+0x638d 026846 jam 0x02 ,mem_shutter_power_off_timeout 
+0x638e 026848 setarg 0x00200008 
+0x638f 026849 store 4 ,mem_ble_shutter_interval_min 
+0x6390 026850 setarg 0x012c0005 
+0x6391 026851 istore 4 ,contw 
+0x6392 026854 jam 0x17 ,mem_le_local_mtu 
+0x6393 026857 setarg 0x1b 
+0x6394 026858 store 2 ,mem_le_pairing_handle 
+0x6395 026859 branch le_set_fixed_ltk_justwork 
+:      026862 shutter_load_buffer_config_form_datarom:
+0x6396 026864 arg ble_key_value_list_size ,loopcnt 
+0x6397 026865 arg mem_ble_data_buffer1 ,contw 
+0x6398 026866 arg ble_shutter_key_value_list_addr ,contr 
+0x6399 026867 branch memcpy_fast 
+:      026887 shutter_soft_swtich_power_off:
+0x639a 026888 arg 0 ,rega 
+0x639b 026889 arg mem_shutter_power_off_led_style ,regc 
+0x639c 026890 call ui_led_set_style_global 
+0x639d 026891 call shutter_disconnect_current_connection 
+:      026892 shutter_wait_power_off:
+0x639e 026893 fetch 1 ,mem_shutter_power_off_timeout 
+0x639f 026894 store 1 ,mem_shutter_power_off_timer 
+0x63a0 026895 rtn 
+:      026899 ui_soft_swtich_init:
+0x63a1 026900 setarg ss_state_power_up 
+0x63a2 026901 call ui_soft_swtich_init_power_on_time 
+0x63a3 026902 jam ui_button_state_up ,mem_ui_button_last_state 
+0x63a4 026903 call ui_button_init 
+0x63a5 026904 call ui_button_polling 
+:      026905 ui_soft_switch_first_power_on:
+0x63a6 026906 fetch 1 ,mem_shutter_soft_switch_first_power_on 
+0x63a7 026907 branch ui_soft_swtich_init_next ,blank 
+0x63a8 026908 fetch 1 ,core_lpm_isogate 
+0x63a9 026909 bbit1 cold_wake ,ui_soft_switch_power_on 
+:      026910 ui_soft_swtich_init_next:
+0x63aa 026911 fetch 2 ,mem_ui_state_map 
+0x63ab 026912 rtnbit1 ui_state_btn_down 
+0x63ac 026913 branch app_enter_hibernate 
+:      026915 ui_soft_swtich_init_power_on_time:
+0x63ad 026916 fetcht 2 ,mem_power_param_ptr 
+0x63ae 026917 istore 1 ,temp 
+0x63af 026918 ifetch 1 ,contw 
+0x63b0 026919 store 1 ,mem_ui_button_timeout 
+0x63b1 026920 rtn 
+:      026923 ui_soft_switch_botton_up:
+0x63b2 026924 fetch 2 ,mem_power_param_ptr 
+0x63b3 026925 ifetch 1 ,pdata 
+0x63b4 026926 rtnne ss_state_power_up 
+0x63b5 026927 branch app_enter_hibernate 
+:      026930 ui_soft_switch_botton_long_press:
+0x63b6 026931 fetcht 2 ,mem_power_param_ptr 
+0x63b7 026932 ifetch 1 ,temp 
+0x63b8 026933 beq ss_state_power_on ,ui_soft_switch_power_off 
+:      026934 ui_soft_switch_power_on:
+0x63b9 026935 setarg ss_state_power_on 
+0x63ba 026936 fetcht 2 ,mem_power_param_ptr 
+0x63bb 026937 istore 1 ,temp 
+0x63bc 026938 add temp ,ss_power_off_time ,contr 
+0x63bd 026939 ifetch 1 ,contr 
+0x63be 026940 istore 1 ,mem_ui_button_timeout 
+0x63bf 026941 ifetch 2 ,contr 
+0x63c0 026942 branch callback_func 
+:      026944 ui_soft_switch_power_off:
+0x63c1 026945 setarg ss_state_power_off 
+0x63c2 026946 call ui_soft_swtich_init_power_on_time 
+0x63c3 026947 add temp ,ss_power_off_cb ,contr 
+0x63c4 026948 ifetch 2 ,contr 
+0x63c5 026949 branch app_enter_hibernate ,blank 
+0x63c6 026950 branch callback_func 
+:      026955 shutter_ble_adv_interval_set:
+0x63c7 026956 store 2 ,mem_lpm_interval 
+0x63c8 026957 increase -4 ,pdata 
+0x63c9 026958 store 2 ,mem_le_adv_interval 
+0x63ca 026959 rtn 
+:      026961 le_send_notify_from_list:
+0x63cb 026962 ifetch 1 ,contr 
+0x63cc 026963 copy pdata ,rega 
+0x63cd 026964 ifetcht 2 ,contr 
+0x63ce 026965 call store_contr 
+0x63cf 026966 call le_att_malloc_tx_notify 
+0x63d0 026967 copy rega ,loopcnt 
+0x63d1 026968 call get_contr 
+0x63d2 026969 branch memcpy 
+:      026971 shutter_le_uuid_table_conf:
+0x63d3 026972 setarg ble_shutter_gatt_list_addr 
+0x63d4 026973 store 2 ,mem_ui_le_uuid_table 
+0x63d5 026974 rtn 
+:      026976 shutter_dy_le_uuid_table_conf:
+0x63d6 026977 setarg mem_shutter_le_uuid_sup 
+0x63d7 026978 store 2 ,mem_ui_le_uuid_table 
+0x63d8 026979 rtn 
+:      026982 shutter_default_init:
+0x63d9 026983 fetch 2 ,mem_shutter_key_conf0_temp 
+0x63da 026984 store 2 ,mem_shutter_key_conf0 
+0x63db 026985 fetch 1 ,mem_shutter_led_struct_app_led_gpio_temp 
+0x63dc 026986 store 1 ,mem_shutter_led_struct_app_led_gpio 
+0x63dd 026987 store 1 ,mem_shutter_power_off_led_style_gpio 
+0x63de 026988 fetch 1 ,mem_shutter_hard_soft_switch_case_temp 
+0x63df 026989 store 1 ,mem_shutter_hard_soft_switch_case 
+0x63e0 026990 fetch 1 ,mem_shutter_soft_switch_button_gpio_temp 
+0x63e1 026991 store 1 ,mem_shutter_soft_switch_button_gpio 
+0x63e2 026997 setarg 0x0002 
+0x63e3 026998 store 2 ,mem_key0_press 
+0x63e4 026999 store 2 ,mem_key1_press 
+0x63e5 027000 setarg 0x0006 
+0x63e6 027001 store 2 ,mem_key0_release 
+0x63e7 027002 store 2 ,mem_key1_release 
+0x63e8 027003 setarg 0x0007 
+0x63e9 027004 store 2 ,mem_key2_press 
+0x63ea 027005 setarg 0x0008 
+0x63eb 027006 store 2 ,mem_key2_release 
+0x63ec 027007 setarg mem_shutter_soft_switch_power_state 
+0x63ed 027008 store 2 ,mem_power_param_ptr 
+0x63ee 027009 setarg 0x201400 
+0x63ef 027010 store 3 ,mem_shutter_soft_switch_power_state 
+0x63f0 027011 jam 0x01 ,mem_lpm_mode 
+0x63f1 027012 setarg 0x0100 
+0x63f2 027013 store 2 ,mem_lpm_interval 
+0x63f3 027014 jam 0x08 ,mem_lpm_overhead 
+0x63f4 027015 jam 0x05 ,mem_lpm_mult 
+0x63f5 027016 jam 0x02 ,mem_lpm_mult_timeout 
+0x63f6 027017 setarg 0x0096 
+0x63f7 027018 store 2 ,mem_ble_shutter_reconn_blink_on_time 
+0x63f8 027019 istore 2 ,contw 
+0x63f9 027020 setarg 0x0296 
+0x63fa 027021 store 2 ,mem_ble_shutter_discovery_blink_on_time 
+0x63fb 027022 istore 2 ,contw 
+0x63fc 027023 setsect 0 ,0x10 
+0x63fd 027024 setsect 1 ,0x8008 
+0x63fe 027025 setsect 2 ,0x2c000 
+0x63ff 027026 setsect 3 ,0x04 
+0x6400 027027 store 8 ,mem_ble_shutter_interval_min_new 
+0x6401 027028 jam 0x01 ,mem_ui_led_struct_num 
+0x6402 027029 setarg mem_shutter_led_struct_app_led 
+0x6403 027030 store 2 ,mem_ui_led_struct_ptr 
+0x6404 027031 setarg 0x0000 
+0x6405 027032 store 2 ,mem_shutter_led_struct_app_led 
+0x6406 027033 setsect 0 ,0x1a0 
+0x6407 027034 setsect 1 ,0x68 
+0x6408 027035 setsect 2 ,0x00 
+0x6409 027036 setsect 3 ,0x00 
+0x640a 027037 store 8 ,mem_shutter_led_struct_app_led_on_time 
+0x640b 027038 setarg 0x0301 
+0x640c 027039 store 2 ,mem_shutter_power_off_led_style 
+0x640d 027040 setsect 0 ,0x1a0 
+0x640e 027041 setsect 1 ,0xe8 
+0x640f 027042 setsect 2 ,0x00 
+0x6410 027043 setsect 3 ,0x00 
+0x6411 027044 store 8 ,mem_shutter_power_off_led_style_on_time 
+0x6412 027045 setarg 0x000e 
+0x6413 027046 store 2 ,mem_ble_shutter_reconn_adv_interval 
+0x6414 027047 setarg 0x0140 
+0x6415 027048 store 2 ,mem_ble_shutter_discovery_adv_interval 
+0x6416 027049 store 2 ,mem_le_adv_interval 
+0x6417 027050 setarg 0x0050 
+0x6418 027051 store 2 ,mem_ble_shutter_reconn_timeout 
+0x6419 027052 jam 0x07 ,mem_le_adv_channel_map 
+0x641a 027053 jam 0x00 ,mem_le_adv_enable 
+0x641b 027054 setsect 0 ,0xfb 
+0x641c 027055 setsect 1 ,0x2c212 
+0x641d 027056 setsect 2 ,0x800f 
+0x641e 027057 setsect 3 ,0x21 
+0x641f 027058 store 8 ,mem_local_rx_max_octets 
+0x6420 027059 setsect 0 ,0x0bb8 
+0x6421 027060 setsect 1 ,0x02ee 
+0x6422 027061 store 4 ,mem_ble_shutter_discovery_timeout 
+0x6423 027062 setarg mem_queue_each_size 
+0x6424 027063 store 2 ,mem_queue_ptr 
+0x6425 027064 setarg 0x2001 
+0x6426 027065 store 2 ,mem_queue_each_size 
+0x6427 027066 jam 0x1f ,mem_le_adv_data_len 
+0x6428 027067 setsect 0 ,0x10102 
+0x6429 027068 setsect 1 ,0x80c1 
+0x642a 027069 setsect 2 ,0x18120 
+0x642b 027070 setsect 3 ,0x640c 
+0x642c 027071 store 9 ,mem_le_adv_data 
+0x642d 027072 setsect 0 ,0x3c1 
+0x642e 027073 istore 2 ,contw 
+0x642f 027074 jam 0x1f ,mem_le_scan_data_len 
+0x6430 027075 setsect 0 ,0x2090d 
+0x6431 027076 setsect 1 ,0x34c15 
+0x6432 027077 setsect 2 ,0x28532 
+0x6433 027078 setsect 3 ,0x1d1d5 
+0x6434 027079 store 9 ,mem_le_scan_data 
+0x6435 027080 setsect 0 ,0x26574 
+0x6436 027081 setsect 1 ,0x1c 
+0x6437 027082 istore 3 ,contw 
+0x6438 027083 setarg mem_shutter_keyscan 
+0x6439 027084 store 2 ,mem_keyscan_ptr 
+0x643a 027085 jam 0x02 ,mem_shutter_key_num 
+0x643b 027086 setarg mem_shutter_nv_data 
+0x643c 027087 store 2 ,mem_nv_data_ptr 
+0x643d 027088 jam 0x05 ,mem_nv_data_number 
+0x643e 027089 fetch 1 ,mem_shutter_dy_conf 
+0x643f 027090 beq shutter_type ,shutter_le_uuid_table_conf 
+0x6440 027091 beq shutter_dy_type ,shutter_dy_le_uuid_table_conf 
+0x6441 027092 rtn 
+:      027104 shutter_dy_6_key_conf:
+0x6442 027106 fetch shutter_six_key ,mem_shutter_dy_key_conf 
+0x6443 027107 store shutter_six_key ,mem_shutter_key_conf0 
+0x6444 027108 jam shutter_six_key ,mem_shutter_key_num 
+0x6445 027109 setarg mem_shutter_key_num 
+0x6446 027110 store 2 ,mem_keyscan_ptr 
+0x6447 027111 rtn 
+:      027113 shutter_dy_7_key_conf:
+0x6448 027115 fetch shutter_seven_key ,mem_shutter_dy_key_conf 
+0x6449 027116 store shutter_seven_key ,mem_shutter_key_conf0 
+0x644a 027117 jam shutter_seven_key ,mem_shutter_key_num 
+0x644b 027118 setarg mem_shutter_key_num 
+0x644c 027119 store 2 ,mem_keyscan_ptr 
+0x644d 027120 rtn 
+:      027122 shutter_dy_8_key_conf:
+0x644e 027124 fetch shutter_eight_key ,mem_shutter_dy_key_conf 
+0x644f 027125 store shutter_eight_key ,mem_shutter_key_conf0 
+0x6450 027126 jam shutter_eight_key ,mem_shutter_key_num 
+0x6451 027127 setarg mem_shutter_key_num 
+0x6452 027128 store 2 ,mem_keyscan_ptr 
+0x6453 027129 rtn 
+:      027131 shutter_dy_key_conf:
+0x6454 027132 fetch 1 ,mem_shutter_key_num_conf 
+0x6455 027133 beq shutter_six_key ,shutter_dy_6_key_conf 
+0x6456 027134 beq shutter_seven_key ,shutter_dy_7_key_conf 
+0x6457 027135 beq shutter_eight_key ,shutter_dy_8_key_conf 
+0x6458 027136 rtn 
+:      027138 shutter_dy_adv_conf:
+0x6459 027139 bpatch patch14_1 ,mem_patch14 
+0x645a 027141 fetch 8 ,mem_shutter_ble_discovery_time_conf 
+0x645b 027142 store 8 ,mem_ble_shutter_discovery_timeout 
+0x645c 027143 setarg 0x0096 
+0x645d 027144 store 2 ,mem_ble_shutter_reconn_timeout 
+0x645e 027146 fetch 7 ,mem_shutter_led_on_light_dark_led_conf 
+0x645f 027147 store 7 ,mem_shutter_led_struct_app_led 
+0x6460 027148 fetch 7 ,mem_shutter_led_off_light_dark_led_conf 
+0x6461 027149 store 7 ,mem_shutter_power_off_led_style 
+0x6462 027151 fetch 4 ,mem_shutter_reconn_blink_on_time_conf 
+0x6463 027152 store 4 ,mem_ble_shutter_reconn_blink_on_time 
+0x6464 027153 fetch 4 ,mem_shutter_discovery_blink_on_time_conf 
+0x6465 027154 store 4 ,mem_ble_shutter_discovery_blink_on_time 
+0x6466 027156 setarg 0x000e 
+0x6467 027157 store 2 ,mem_ble_shutter_reconn_adv_interval 
+0x6468 027158 setarg 0x0140 
+0x6469 027159 store 2 ,mem_ble_shutter_discovery_adv_interval 
+0x646a 027160 store 2 ,mem_le_adv_interval 
+0x646b 027167 fetch 8 ,mem_ble_shutter_dy_interval_min_new 
+0x646c 027168 store 8 ,mem_ble_shutter_interval_min_new 
+0x646d 027169 rtn 
+:      027173 shutter_dy_init:
+0x646e 027174 call enable_authrom 
+0x646f 027175 rtn wake 
+0x6470 027177 call shutter_dy_key_conf 
+0x6471 027178 call shutter_dy_adv_conf 
+0x6472 027181 setarg shutter_dy_process_idle 
+0x6473 027182 store 2 ,mem_cb_idle_process 
+0x6474 027184 setarg shutter_dy_process_bb_event 
+0x6475 027185 store 2 ,mem_cb_bb_event_process 
+0x6476 027187 setarg ble_shutter_dy_receive_data 
+0x6477 027188 store 2 ,mem_cb_att_write 
+0x6478 027190 setarg shutter_dy_le_bb_event_timer 
+0x6479 027191 store 2 ,mem_cb_event_timer 
+0x647a 027193 setarg shutter_dy_key_change 
+0x647b 027194 store 2 ,mem_cb_shutter_keycan 
+0x647c 027196 call shutter_common_init 
+0x647d 027198 fetch 2 ,mem_shutter_le_pairing_handle 
+0x647e 027199 store 2 ,mem_le_pairing_handle 
+0x647f 027200 fetch 8 ,mem_ble_shutter_interval_min_new 
+0x6480 027201 store 8 ,mem_ble_shutter_interval_min 
+0x6481 027202 call shutter_dy_iphone_every_move_max_set 
+0x6482 027203 bpatch patch14_2 ,mem_patch14 
+0x6483 027204 branch shutter_power_switch 
+:      027207 shutter_dy_process_idle:
+0x6484 027208 call shutter_dy_shutter_send_data_to_master 
+0x6485 027209 arg key_scan_timer ,queue 
+0x6486 027210 call timer_check 
+0x6487 027211 nrtn blank 
+0x6488 027212 setarg 0x20 
+0x6489 027213 arg key_scan_timer ,queue 
+0x648a 027214 call timer_init 
+0x648b 027215 disable user 
+0x648c 027216 call keyscan_process_lpm_before 
+0x648d 027217 branch shutter_dy_keyscan_key_process 
+:      027219 shutter_dy_iphone_every_move_max_set:
+0x648e 027220 setarg 0x1f 
+0x648f 027221 mul32 pdata ,every_payload_len ,pdata 
+0x6490 027222 arg mem_shutter_mousekey_value_list ,temp 
+0x6491 027223 iadd temp ,rega 
+0x6492 027224 increase 3 ,rega 
+0x6493 027225 arg iphone_once_max_move_value ,temp 
+0x6494 027226 istoret 1 ,rega 
+0x6495 027227 increase 11 ,rega 
+0x6496 027228 arg 0xfff ,pdata 
+0x6497 027229 isub temp ,pdata 
+0x6498 027230 lshift4 pdata ,pdata 
+0x6499 027231 istore 2 ,rega 
+0x649a 027232 rtn 
+:      027234 shutter_dy_shutter_send_data_to_master:
+0x649b 027235 fetch 2 ,mem_ui_state_map 
+0x649c 027236 bbit1 ui_state_ble_connected ,shutter_dy_pop_queue_to_ble_data 
+0x649d 027237 arg mem_queue_curr_num ,contw 
+0x649e 027238 arg 35 ,loopcnt 
+0x649f 027239 branch clear_mem 
+:      027241 shutter_dy_pop_queue_to_ble_data:
+0x64a0 027242 call le_fifo_check_nearly_full 
+0x64a1 027243 nrtn blank 
+0x64a2 027244 call queue_empty 
+0x64a3 027245 rtn blank 
+0x64a4 027246 fetcht 4 ,mem_key_send_clk 
+0x64a5 027247 copy clkn_bt ,pdata 
+0x64a6 027248 isub temp ,temp 
+0x64a7 027249 rtn zero 
+0x64a8 027250 nbranch shutter_dy_pop_queue_to_ble_data2 ,positive 
+0x64a9 027251 fetch 1 ,mem_send_data_delay 
+0x64aa 027252 isub temp ,null 
+0x64ab 027253 rtn positive 
+:      027254 shutter_dy_pop_queue_to_ble_data2:
+0x64ac 027255 copy clkn_bt ,pdata 
+0x64ad 027256 store 4 ,mem_key_send_clk 
+0x64ae 027257 call queue_pop_one_byte 
+0x64af 027258 nrtn user 
+0x64b0 027259 pincrease -1 
+0x64b1 027260 mul32 pdata ,10 ,pdata 
+0x64b2 027261 arg mem_shutter_mousekey_value_list ,temp 
+0x64b3 027262 iadd temp ,contr 
+0x64b4 027263 branch le_send_notify_from_list 
+:      027266 shutter_dy_le_bb_event_timer:
+0x64b5 027267 call shutter_dy_shutter_1s_timer 
+0x64b6 027268 call shutter_dy_link_key_loop_timer 
+0x64b7 027269 call shutter_dy_long_key_volume_timer 
+0x64b8 027270 call shutter_dy_iphone_move_mid_timer 
+0x64b9 027271 call shutter_dy_clear_key_state_timer 
+0x64ba 027272 call shutter_check_sleep_timer 
+0x64bb 027273 branch shutter_dy_check_power_off_timer 
+:      027275 shutter_dy_iphone_move_mid_timer:
+0x64bc 027276 arg mem_shutter_move_mid_timer ,regc 
+0x64bd 027277 arg shutter_dy_iphone_move_mid_timeout ,regb 
+0x64be 027278 branch timer_single_step 
+:      027280 shutter_dy_iphone_move_mid_timeout:
+0x64bf 027281 call queue_empty 
+0x64c0 027282 nrtn blank 
+0x64c1 027283 fetch 2 ,mem_key_value_xmem 
+0x64c2 027284 nrtn blank 
+:      027285 shutter_dy_iphone_move_mid:
+0x64c3 027286 call shutter_dy_check_iphone 
+0x64c4 027287 branch shutter_dy_android_like_loaction_mid ,blank 
+0x64c5 027288 copy queue ,pdata 
+0x64c6 027289 compare 0x04 ,pdata ,0x07 
+0x64c7 027290 branch shutter_dy_iphone_up_mid ,true 
+0x64c8 027292 copy queue ,pdata 
+0x64c9 027293 compare 0x01 ,pdata ,0x07 
+0x64ca 027294 branch shutter_dy_iphone_like_mid ,true 
+0x64cb 027295 arg mem_shutter_iphone_move_mid ,regc 
+0x64cc 027296 branch push_buffer_in_queue 
+:      027298 shutter_dy_android_like_loaction_mid:
+0x64cd 027299 arg mem_shutter_android_move_mid ,regc 
+0x64ce 027300 branch push_buffer_in_queue 
+:      027302 shutter_dy_iphone_up_mid:
+0x64cf 027303 arg mem_shutter_iphone_up_mid ,regc 
+0x64d0 027304 branch push_buffer_in_queue 
+:      027306 shutter_dy_iphone_like_mid:
+0x64d1 027307 arg mem_shutter_iphone_like_mid ,regc 
+0x64d2 027308 branch push_buffer_in_queue 
+:      027310 shutter_dy_clear_key_state_timer:
+0x64d3 027311 arg mem_shutter_like_timeout ,regc 
+0x64d4 027312 arg shutter_dy_clear_key_state_timeout ,regb 
+0x64d5 027313 branch timer_single_step 
+:      027315 shutter_dy_clear_key_state_timeout:
+0x64d6 027316 arg shutter_key_conf_sate_bytes ,loopcnt 
+0x64d7 027317 arg mem_shutter_key_state1 ,contw 
+0x64d8 027318 branch clear_mem 
+:      027321 shutter_dy_check_power_off_timer:
+0x64d9 027322 arg mem_shutter_power_off_timer ,regc 
+0x64da 027323 arg shutter_dy_check_power_off_timeout ,regb 
+0x64db 027324 branch timer_single_step 
+:      027325 shutter_dy_check_power_off_timeout:
+0x64dc 027326 fetch 2 ,mem_ui_state_map 
+0x64dd 027327 bbit1 ui_state_ble_connected ,shutter_wait_power_off 
+0x64de 027328 branch app_enter_hibernate 
+:      027330 shutter_dy_process_bb_event:
+0x64df 027331 copy regc ,pdata 
+0x64e0 027332 beq bt_evt_le_connected ,ble_shutter_dy_process_baseband_connect 
+0x64e1 027333 beq bt_evt_le_disconnected ,ble_shutter_dy_process_baseband_disconnect 
+0x64e2 027334 beq bt_evt_le_pairing_success ,ble_shutter_dy_pairing_success 
+0x64e3 027335 rtneq bt_evt_le_parse_conn_papa_update_rsp 
+0x64e4 027336 beq bt_evt_le_start_enc ,shutter_dy_le_find_service_hand_by_uuid 
+0x64e5 027337 branch shutter_process_bb_event 
+:      027339 ble_shutter_dy_pairing_success:
+0x64e6 027340 jam 1 ,mem_shutter_pairing_success 
+0x64e7 027341 call shutter_dy_clear_move_config 
+0x64e8 027343 fetch 2 ,mem_android_initial_move_x 
+0x64e9 027344 store 2 ,mem_shutter_move_data_x 
+0x64ea 027346 fetcht 2 ,mem_android_initial_move_y 
+0x64eb 027347 setarg 0xfff 
+0x64ec 027348 isub temp ,pdata 
+0x64ed 027349 store 2 ,mem_shutter_move_data_y 
+0x64ee 027350 rtn 
+:      027352 ble_shutter_dy_process_baseband_disconnect:
+0x64ef 027353 jam 0 ,mem_shutter_le_conned 
+0x64f0 027354 jam 0 ,mem_shutter_pairing_success 
+0x64f1 027355 call shutter_dy_move_mode_disable 
+0x64f2 027356 call shutter_dy_over_clear 
+0x64f3 027357 branch ble_shutter_process_baseband_disconnect 
+:      027359 ble_shutter_dy_process_baseband_connect:
+0x64f4 027360 copy clkn_bt ,pdata 
+0x64f5 027361 store 4 ,mem_key_send_clk 
+0x64f6 027362 call shutter_dy_remote_not_iphone 
+0x64f7 027363 branch ble_shutter_process_baseband_connect 
+:      027366 shutter_dy_check_send_data:
+0x64f8 027367 disable user2 
+0x64f9 027368 fetch 2 ,mem_shutter_sleep_timeout 
+0x64fa 027369 store 2 ,mem_shutter_sleep_timer 
+0x64fb 027370 call shutter_check_bluetooth_conn 
+0x64fc 027371 branch shutter_change_bluetooth_status_bt_disconn ,user 
+0x64fd 027372 call shutter_check_data_enable 
+0x64fe 027373 nrtn user 
+0x64ff 027374 branch enable_user2 
+:      027376 shutter_dy_over_clear:
+0x6500 027377 jam 0 ,mem_last_press_key_value 
+0x6501 027378 rtn 
+:      027380 shutter_dy_key_value_filter:
+0x6502 027381 copy queue ,pdata 
+0x6503 027382 rtnne shutter_like_key_num 
+0x6504 027383 branch shutter_dy_key_press_next 
+:      027385 shutter_dy_key_change:
+0x6505 027386 call shutter_dy_check_send_data 
+0x6506 027387 nrtn user2 
+0x6507 027388 deposit rega 
+0x6508 027389 branch shutter_dy_shutter_key_release ,blank 
+:      027390 shutter_dy_key_press:
+0x6509 027391 bpatch patch14_3 ,mem_patch14 
+0x650a 027392 fetch 1 ,mem_shutter_link_loop_flag 
+0x650b 027393 nbranch shutter_dy_key_value_filter ,blank 
+:      027394 shutter_dy_key_press_next:
+0x650c 027395 jam 1 ,mem_shutter_key_pressed 
+0x650d 027396 call app_led_on 
+0x650e 027397 call shutter_dy_key_press_clk 
+0x650f 027398 call shutter_dy_jude_queue_size 
+0x6510 027399 branch shutter_dy_over_clear ,positive 
+0x6511 027400 copy queue ,pdata 
+0x6512 027401 fetcht 1 ,mem_last_press_key_value 
+0x6513 027402 isub temp ,null 
+0x6514 027403 ncall shutter_dy_iphone_check_move_mid ,zero 
+0x6515 027404 copy queue ,pdata 
+0x6516 027405 store 1 ,mem_last_press_key_value 
+0x6517 027406 fetcht 1 ,mem_move_mode_key_index 
+0x6518 027407 isub temp ,null 
+0x6519 027408 branch shutter_dy_key_move_to_specify_location ,zero 
+0x651a 027409 fetch 1 ,mem_move_mode_trigger_enable 
+0x651b 027410 nbranch shutter_dy_move_set ,blank 
+:      027411 shutter_dy_page_set:
+0x651c 027412 call shutter_dy_le_get_press_ptr 
+0x651d 027413 arg max_queue_new_press ,pdata 
+0x651e 027414 branch shutter_dy_push_queue_press_or_release 
+:      027416 shutter_dy_move_set:
+0x651f 027417 call shutter_dy_jude_clear_move_config 
+0x6520 027418 copy queue ,pdata 
+0x6521 027419 beq shutter_like_key_num ,shutter_dy_page_set 
+0x6522 027420 call shutter_dy_check_move_data 
+0x6523 027421 branch shutter_dy_move_to_specify_location 
+:      027423 shutter_dy_key_move_to_specify_location:
+0x6524 027424 jam 1 ,mem_shutter_first_move 
+0x6525 027425 branch shutter_dy_move_to_specify_location 
+:      027427 shutter_dy_iphone_check_move_mid:
+0x6526 027428 bpatch patch14_4 ,mem_patch14 
+0x6527 027429 fetch 1 ,mem_move_mode_trigger_enable 
+0x6528 027430 branch shutter_dy_iphone_move_mid ,blank 
+0x6529 027431 copy queue ,pdata 
+0x652a 027432 beq shutter_like_key_num ,shutter_dy_iphone_move_mid 
+0x652b 027433 rtn 
+:      027434 shutter_dy_key_press_clk:
+0x652c 027435 arg shutter_key_conf_sate_bytes ,pdata 
+0x652d 027436 imul32 queue ,pdata 
+0x652e 027437 arg mem_shutter_key_state0 ,regc 
+0x652f 027438 iadd regc ,regc 
+0x6530 027439 copy clkn_bt ,pdata 
+0x6531 027440 istore key_state_press_clk_length ,regc 
+0x6532 027441 increase key_state_press_count_offset ,regc 
+0x6533 027442 ifetch 1 ,regc 
+0x6534 027443 increase 1 ,pdata 
+0x6535 027444 istore 1 ,regc 
+0x6536 027445 rtn 
+:      027446 shutter_dy_shutter_key_release:
+0x6537 027447 bpatch patch14_5 ,mem_patch14 
+0x6538 027448 fetch 1 ,mem_move_mode_trigger_enable 
+0x6539 027449 call shutter_dy_key_release_led ,blank 
+:      027450 shutter_dy_shutter_key_release_time:
+0x653a 027451 arg shutter_key_conf_sate_bytes ,pdata 
+0x653b 027452 imul32 queue ,pdata 
+0x653c 027453 arg mem_shutter_key_state0 ,regc 
+0x653d 027454 iadd regc ,regc 
+0x653e 027455 ifetcht 4 ,regc 
+0x653f 027456 sub temp ,0 ,null 
+0x6540 027457 rtn zero 
+0x6541 027458 copy clkn_bt ,pdata 
+0x6542 027459 isub temp ,temp 
+0x6543 027460 ncall ui_timer_timeout ,positive 
+0x6544 027461 add regc ,key_state_longpress_offset ,contr 
+0x6545 027462 ifetch 1 ,contr 
+0x6546 027463 nbranch shutter_dy_push_queue_long_release ,blank 
+0x6547 027464 increase key_state_release_clk_offset ,regc 
+0x6548 027465 copy clkn_bt ,pdata 
+0x6549 027466 istore key_state_release_clk_length ,regc 
+0x654a 027467 rtn 
+:      027469 shutter_dy_key_release_led:
+0x654b 027470 fetch 1 ,mem_shutter_link_loop_flag 
+0x654c 027471 nbranch app_led_on ,blank 
+0x654d 027472 branch app_led_off 
+:      027474 shutter_dy_push_queue_release:
+0x654e 027475 add regc ,4 ,contr 
+0x654f 027476 ifetch 1 ,contr 
+0x6550 027477 branch shutter_dy_push_queue_release1 
+:      027479 shutter_dy_push_queue_release1:
+0x6551 027480 call shutter_clear_dy_key_state 
+0x6552 027481 fetch 1 ,mem_move_mode_trigger_enable 
+0x6553 027482 nbranch shutter_dy_move_mode_queue_release ,blank 
+:      027483 shutter_dy_push_queue_release1_next:
+0x6554 027484 call shutter_dy_jude_queue_size 
+0x6555 027485 branch shutter_dy_over_clear ,positive 
+0x6556 027486 call shutter_dy_le_get_release_ptr 
+0x6557 027487 copy queue ,pdata 
+0x6558 027488 beq shutter_photo_key_num ,shutter_dy_le_get_release_ptr_volume 
+0x6559 027489 arg max_queue_num_release ,pdata 
+:      027490 shutter_dy_push_queue_press_or_release:
+0x655a 027491 imul32 queue ,pdata 
+0x655b 027492 iadd regc ,regc 
+0x655c 027493 branch push_buffer_in_queue 
+:      027495 shutter_dy_move_mode_queue_release:
+0x655d 027496 copy queue ,pdata 
+0x655e 027497 beq shutter_like_key_num ,shutter_dy_push_queue_release1_next 
+0x655f 027498 beq shutter_photo_key_num ,shutter_dy_push_queue_release1_next 
+0x6560 027499 rtn 
+:      027501 shutter_dy_jude_queue_size:
+0x6561 027502 call queue_get_size 
+0x6562 027503 ifetcht 1 ,contr 
+0x6563 027504 isub temp ,pdata 
+0x6564 027505 sub pdata ,max_queue_new_press ,null 
+0x6565 027506 rtn 
+:      027508 shutter_dy_push_queue_long_release:
+0x6566 027509 jam 1 ,mem_shutter_long_key_released_flag 
+0x6567 027510 call shutter_clear_dy_key_state 
+0x6568 027511 arg mem_key0_long_release ,regc 
+0x6569 027512 arg max_queue_num_long_release ,pdata 
+0x656a 027513 branch shutter_dy_push_queue_press_or_release 
+:      027515 shutter_clear_dy_key_state:
+0x656b 027516 arg shutter_key_conf_sate_bytes ,loopcnt 
+0x656c 027517 copy regc ,contw 
+0x656d 027518 branch clear_mem 
+:      027520 shutter_dy_keyscan_key_process:
+0x656e 027521 fetch 2 ,mem_key_value_xmem 
+0x656f 027522 store 2 ,mem_key_value_retention 
+0x6570 027523 call shutter_dy_keyscan_key_process_next 
+0x6571 027524 fetch 2 ,mem_key_value_retention 
+0x6572 027525 store 2 ,mem_key_value_xmem 
+0x6573 027527 arg 0 ,queue 
+0x6574 027528 fetch 1 ,mem_shutter_key_num 
+0x6575 027529 copy pdata ,loopcnt 
+0x6576 027530 arg mem_shutter_key_state0 ,regc 
+:      027531 shutter_dy_keyscan_key_check_release_loop:
+0x6577 027532 copy loopcnt ,pdata 
+0x6578 027533 store 2 ,mem_temp 
+0x6579 027534 copy regc ,pdata 
+0x657a 027535 store 2 ,mem_regc 
+0x657b 027536 copy queue ,pdata 
+0x657c 027537 store 2 ,mem_temp + 2 
+0x657d 027538 call shutter_dy_keyscan_key_check_release 
+0x657e 027540 fetch 2 ,mem_regc 
+0x657f 027541 copy pdata ,regc 
+0x6580 027542 fetch 2 ,mem_temp + 2 
+0x6581 027543 copy pdata ,queue 
+0x6582 027544 call shutter_dy_keyscan_key_check_long_press 
+0x6583 027546 fetch 2 ,mem_temp + 2 
+0x6584 027547 add pdata ,1 ,queue 
+0x6585 027548 fetch 2 ,mem_regc 
+0x6586 027549 add pdata ,shutter_key_conf_sate_bytes ,regc 
+0x6587 027550 fetch 2 ,mem_temp 
+0x6588 027551 copy pdata ,loopcnt 
+0x6589 027552 loop shutter_dy_keyscan_key_check_release_loop 
+0x658a 027553 rtn 
+:      027555 shutter_dy_keyscan_key_check_long_press:
+0x658b 027556 ifetch key_state_press_clk_length ,regc 
+0x658c 027557 rtn blank 
+0x658d 027558 copy pdata ,temp 
+0x658e 027559 copy clkn_bt ,pdata 
+0x658f 027560 isub temp ,temp 
+0x6590 027561 nrtn positive 
+0x6591 027562 setarg 2500 
+0x6592 027563 isub temp ,null 
+0x6593 027564 rtn positive 
+0x6594 027565 copy clkn_bt ,pdata 
+0x6595 027566 istore 4 ,regc 
+0x6596 027567 increase key_state_longpress_offset ,regc 
+0x6597 027568 setarg 1 
+0x6598 027569 istore key_state_longpress_length ,regc 
+0x6599 027570 fetch 1 ,mem_shutter_long_key_released_flag 
+0x659a 027571 rtn blank 
+0x659b 027572 jam 0 ,mem_shutter_long_key_released_flag 
+0x659c 027573 bpatch patch14_6 ,mem_patch14 
+0x659d 027574 call shutter_dy_long_key_function 
+0x659e 027575 fetch 1 ,mem_move_mode_set 
+0x659f 027576 beq move_combine_key ,shutter_dy_key_long_press_set_key_normal 
+0x65a0 027577 beq move_single_key ,shutter_dy_key_long_press_set_move_trigger 
+0x65a1 027578 rtn 
+:      027580 shutter_dy_key_long_press_set_key_normal:
+0x65a2 027581 call shutter_dy_long_press_android_or_ios 
+0x65a3 027582 arg max_queue_num_long ,pdata 
+0x65a4 027583 branch shutter_dy_push_queue_press_or_release 
+:      027585 shutter_dy_key_long_press_set_move_trigger:
+0x65a5 027586 copy queue ,pdata 
+0x65a6 027587 fetcht 1 ,mem_move_mode_key_index 
+0x65a7 027588 isub temp ,null 
+0x65a8 027589 nbranch shutter_dy_key_long_press_set_key_normal ,zero 
+0x65a9 027590 fetch 1 ,mem_move_mode_trigger_enable 
+0x65aa 027591 setflip 0 ,pdata 
+0x65ab 027592 store 1 ,mem_move_mode_trigger_enable 
+0x65ac 027593 nrtn blank 
+:      027594 shutter_dy_move_mode_disable:
+0x65ad 027595 jam 0 ,mem_move_mode_trigger_enable 
+0x65ae 027596 branch app_led_off 
+:      027598 shutter_dy_long_press_android_or_ios:
+0x65af 027599 arg mem_key0_long_press ,regc 
+0x65b0 027600 call shutter_dy_check_iphone 
+0x65b1 027601 rtn blank 
+0x65b2 027602 arg mem_key0_long_press_i ,regc 
+0x65b3 027603 rtn 
+:      027605 shutter_dy_keyscan_key_check_release:
+0x65b4 027606 add regc ,key_state_release_clk_offset ,regb 
+0x65b5 027607 ifetch key_state_release_clk_length ,regb 
+0x65b6 027608 rtn blank 
+0x65b7 027609 copy pdata ,temp 
+0x65b8 027610 copy clkn_bt ,pdata 
+0x65b9 027611 isub temp ,temp 
+0x65ba 027612 ncall ui_timer_timeout ,positive 
+0x65bb 027613 setarg 1000 
+0x65bc 027614 isub temp ,null 
+0x65bd 027615 branch shutter_dy_push_queue_release 
+:      027616 shutter_dy_keyscan_key_process_next:
+0x65be 027617 fetch 2 ,mem_key_num_ptr 
+0x65bf 027618 ifetch 1 ,pdata 
+0x65c0 027619 rtn blank 
+0x65c1 027621 setarg 0 
+0x65c2 027622 store 2 ,mem_key_value_temp 
+0x65c3 027623 call keyscan_scan_key 
+0x65c4 027624 nbranch lpm_button_clean_wake_lock ,user 
+0x65c5 027625 call lpm_button_get_wake_lock 
+0x65c6 027626 disable user 
+0x65c7 027627 fetch 1 ,mem_le_adv_enable 
+0x65c8 027628 nrtn blank 
+0x65c9 027629 bpatch patch14_7 ,mem_patch14 
+0x65ca 027630 fetch 1 ,mem_move_mode_set 
+0x65cb 027631 beq move_single_key ,shutter_dy_skip_check_combine_key 
+0x65cc 027632 call shutter_dy_check_combine_key_release 
+0x65cd 027633 call shutter_dy_check_combine_key 
+0x65ce 027634 rtn user 
+:      027635 shutter_dy_skip_check_combine_key:
+0x65cf 027636 call shutter_dy_single_key_led 
+0x65d0 027637 fetch 2 ,mem_key_value_temp 
+0x65d1 027638 store 2 ,mem_key_value_temp4 
+0x65d2 027639 jam 0 ,mem_key_value_temp6 
+0x65d3 027640 force 0 ,queue 
+0x65d4 027641 branch keyscan_key_lp1 
+:      027643 shutter_dy_single_key_led:
+0x65d5 027644 fetch 1 ,mem_last_press_key_value 
+0x65d6 027645 fetcht 1 ,mem_move_mode_key_index 
+0x65d7 027646 isub temp ,null 
+0x65d8 027647 branch app_led_on ,zero 
+0x65d9 027648 fetch 1 ,mem_move_mode_trigger_enable 
+0x65da 027649 nbranch app_led_off ,blank 
+0x65db 027650 rtn 
+:      027652 shutter_dy_check_combine_key:
+0x65dc 027653 arg 0 ,queue 
+:      027654 shutter_dy_check_combine_key_loop:
+0x65dd 027655 arg mem_combine_key0 ,regb 
+0x65de 027656 arg 2 ,pdata 
+0x65df 027657 imul32 queue ,pdata 
+0x65e0 027658 iadd regb ,regb 
+0x65e1 027659 ifetch 2 ,regb 
+0x65e2 027661 rtn blank 
+0x65e3 027662 fetcht 2 ,mem_key_value_temp 
+0x65e4 027663 ixor temp ,null 
+0x65e5 027664 branch shutter_dy_check_combine_key_parse ,zero 
+0x65e6 027665 increase 1 ,queue 
+0x65e7 027666 branch shutter_dy_check_combine_key_loop 
+:      027668 shutter_dy_check_combine_key_parse:
+0x65e8 027669 store 2 ,mem_combine_key_state0 
+0x65e9 027670 call app_led_on 
+0x65ea 027671 arg mem_combine_key0_press ,regc 
+0x65eb 027672 arg max_queue_num_combinekey ,pdata 
+0x65ec 027673 imul32 queue ,pdata 
+0x65ed 027674 iadd regc ,regc 
+0x65ee 027675 call shutter_dy_push_buffer_in_queue 
+0x65ef 027676 branch shutter_dy_combine_key_enableuser 
+:      027678 shutter_dy_push_buffer_in_queue:
+0x65f0 027679 call shutter_dy_jude_clear_move_config 
+0x65f1 027680 ifetch 1 ,regc 
+0x65f2 027681 rtn blank 
+0x65f3 027682 call shutter_dy_check_move_data 
+:      027683 shutter_dy_move_to_specify_location:
+0x65f4 027684 call shutter_dy_jude_clear_move_config 
+0x65f5 027685 call shutter_dy_move_down_left_corner 
+0x65f6 027686 call shutter_dy_move_x_max 
+0x65f7 027687 call shutter_dy_move_y_max 
+0x65f8 027688 arg 0x05 ,pdata 
+0x65f9 027689 call queue_push_one_byte 
+0x65fa 027690 call shutter_dy_check_iphone 
+0x65fb 027691 rtn blank 
+0x65fc 027692 jam 120 ,mem_send_data_delay 
+0x65fd 027693 arg 0x06 ,pdata 
+0x65fe 027694 branch queue_push_one_byte 
+:      027696 shutter_dy_move_down_left_corner_count_set:
+0x65ff 027697 fetcht 1 ,mem_shutter_back_count 
+0x6600 027698 call shutter_dy_check_iphone 
+0x6601 027699 rtn blank 
+0x6602 027700 fetcht 1 ,mem_shutter_iphone_beyond_y_count 
+0x6603 027701 increase 1 ,temp 
+0x6604 027702 fetch 1 ,mem_shutter_first_move 
+0x6605 027703 rtn blank 
+0x6606 027704 fetcht 1 ,mem_shutter_back_count 
+0x6607 027705 jam 0 ,mem_shutter_first_move 
+0x6608 027706 rtn 
+:      027708 shutter_dy_move_down_left_corner:
+0x6609 027709 call shutter_dy_move_down_left_corner_count_set 
+0x660a 027710 copy temp ,pdata 
+0x660b 027711 rtn blank 
+0x660c 027712 store 1 ,mem_shutter_back_count_cache 
+:      027713 shutter_dy_move_down_left_corner_loop:
+0x660d 027714 arg 0x13 ,pdata 
+0x660e 027715 call queue_push_one_byte 
+0x660f 027716 fetch 1 ,mem_shutter_back_count_cache 
+0x6610 027717 increase -1 ,pdata 
+0x6611 027718 store 1 ,mem_shutter_back_count_cache 
+0x6612 027719 rtn blank 
+0x6613 027720 branch shutter_dy_move_down_left_corner_loop 
+:      027722 shutter_dy_move_x_max:
+0x6614 027723 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+0x6615 027724 rtn blank 
+0x6616 027725 store 1 ,mem_shutter_iphone_beyond_x_cache 
+:      027726 shutter_dy_move_x_max_number:
+0x6617 027727 arg 0x20 ,pdata 
+0x6618 027728 call queue_push_one_byte 
+0x6619 027729 fetch 1 ,mem_shutter_iphone_beyond_x_cache 
+0x661a 027730 increase -1 ,pdata 
+0x661b 027731 store 1 ,mem_shutter_iphone_beyond_x_cache 
+0x661c 027732 rtn blank 
+0x661d 027733 branch shutter_dy_move_x_max_number 
+:      027735 shutter_dy_move_y_max:
+0x661e 027736 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+0x661f 027737 rtn blank 
+0x6620 027738 store 1 ,mem_shutter_iphone_beyond_y_cache 
+:      027739 shutter_dy_move_y_max_number:
+0x6621 027740 arg 0x21 ,pdata 
+0x6622 027741 call queue_push_one_byte 
+0x6623 027742 fetch 1 ,mem_shutter_iphone_beyond_y_cache 
+0x6624 027743 increase -1 ,pdata 
+0x6625 027744 store 1 ,mem_shutter_iphone_beyond_y_cache 
+0x6626 027745 rtn blank 
+0x6627 027746 branch shutter_dy_move_y_max_number 
+:      027748 shutter_dy_check_combine_key_release:
+0x6628 027749 fetch 2 ,mem_combine_key_state0 
+0x6629 027750 rtn blank 
+0x662a 027751 fetcht 2 ,mem_key_value_temp 
+0x662b 027752 sub temp ,0 ,null 
+0x662c 027753 branch shutter_dy_check_combine_key_release_all ,zero 
+0x662d 027754 isub temp ,null 
+0x662e 027755 rtn zero 
+0x662f 027756 storet 2 ,mem_combine_key_state0 
+0x6630 027757 fetch 2 ,mem_combine_key_release_value 
+0x6631 027758 isub temp ,null 
+0x6632 027759 call app_led_off ,zero 
+:      027760 shutter_dy_combine_key_enableuser:
+0x6633 027761 fetch 2 ,mem_key_value_temp 
+0x6634 027762 store 2 ,mem_key_value_retention 
+0x6635 027763 branch enable_user 
+:      027764 shutter_dy_check_combine_key_release_all:
+0x6636 027765 jam 1 ,mem_shutter_long_key_released_flag 
+0x6637 027766 call app_led_off 
+0x6638 027767 arg mem_combine_key_release ,regc 
+0x6639 027768 call shutter_dy_push_buffer_in_queue 
+0x663a 027769 setarg 0 
+0x663b 027770 store 2 ,mem_combine_key_state0 
+0x663c 027771 jam 50 ,mem_shutter_1s_timer 
+0x663d 027772 call shutter_dy_combine_key_enableuser 
+0x663e 027773 fetch 1 ,mem_shutter_key_num 
+0x663f 027774 mul32 pdata ,shutter_key_conf_sate_bytes ,loopcnt 
+0x6640 027775 arg mem_shutter_key_state0 ,contw 
+0x6641 027776 branch clear_mem 
+:      027777 shutter_dy_check_move_data:
+0x6642 027778 bpatch patch15_0 ,mem_patch15 
+0x6643 027779 fetch 1 ,mem_move_mode_set 
+0x6644 027780 beq move_single_key ,shutter_dy_check_move_data_single_key 
+0x6645 027781 beq move_combine_key ,shutter_dy_check_move_data_combine_key 
+0x6646 027782 rtn 
+:      027783 shutter_dy_check_move_data_single_key:
+0x6647 027784 copy queue ,pdata 
+0x6648 027785 beq shutter_left_key_num ,shutter_dy_move_left 
+0x6649 027786 beq shutter_right_key_num ,shutter_dy_move_right 
+0x664a 027787 beq shutter_up_key_num ,shutter_dy_move_up 
+0x664b 027788 beq shutter_down_key_num ,shutter_dy_move_down 
+0x664c 027789 rtn 
+:      027790 shutter_dy_check_move_data_combine_key:
+0x664d 027791 ifetch 1 ,regc 
+0x664e 027792 beq 0x01 ,shutter_dy_move_left 
+0x664f 027793 beq 0x02 ,shutter_dy_move_right 
+0x6650 027794 beq 0x03 ,shutter_dy_move_up 
+0x6651 027795 beq 0x04 ,shutter_dy_move_down 
+0x6652 027796 beq 0x05 ,shutter_dy_get_move_data 
+0x6653 027797 rtn 
+:      027798 shutter_dy_get_move_data:
+0x6654 027799 call shutter_dy_check_iphone 
+0x6655 027800 nbranch shutter_dy_get_move_data_iphone ,blank 
+0x6656 027801 setarg 4 
+0x6657 027802 mul32 pdata ,every_payload_len ,pdata 
+0x6658 027803 arg mem_shutter_mousekey_value_list ,temp 
+0x6659 027804 iadd temp ,contw 
+0x665a 027805 increase 3 ,contw 
+0x665b 027806 fetch 3 ,mem_shutter_move_data 
+0x665c 027807 istore 3 ,contw 
+0x665d 027808 rtn 
+:      027809 shutter_dy_get_move_data_iphone:
+0x665e 027810 setarg 4 
+0x665f 027811 mul32 pdata ,every_payload_len ,pdata 
+0x6660 027812 arg mem_shutter_mousekey_value_list ,temp 
+0x6661 027813 iadd temp ,contw 
+0x6662 027814 increase 3 ,contw 
+0x6663 027815 fetch 2 ,mem_shutter_move_data_x 
+0x6664 027816 istore 3 ,contw 
+0x6665 027817 increase 7 ,contw 
+0x6666 027818 fetch 2 ,mem_shutter_move_data_y 
+0x6667 027819 lshift4 pdata ,pdata 
+0x6668 027820 lshift8 pdata ,pdata 
+0x6669 027821 istore 3 ,contw 
+0x666a 027822 rtn 
+:      027824 shutter_dy_move_x_empty_check:
+0x666b 027825 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+0x666c 027826 rtn blank 
+0x666d 027827 increase -1 ,pdata 
+0x666e 027828 store 1 ,mem_shutter_iphone_beyond_x_count 
+0x666f 027829 arg iphone_once_max_move_value ,pdata 
+0x6670 027830 rtn 
+:      027831 shutter_dy_every_move_size_set:
+0x6671 027832 arg android_every_move_size ,temp 
+0x6672 027833 call shutter_dy_check_iphone 
+0x6673 027834 rtn blank 
+0x6674 027835 arg iphone_every_move_size ,temp 
+0x6675 027836 rtn 
+:      027837 shutter_dy_move_left:
+0x6676 027838 call shutter_dy_every_move_size_set 
+0x6677 027839 fetch 2 ,mem_shutter_move_data_x 
+0x6678 027840 isub temp ,null 
+0x6679 027841 ncall shutter_dy_move_x_empty_check ,positive 
+0x667a 027842 nrtn positive 
+0x667b 027843 isub temp ,pdata 
+:      027844 shutter_dy_move_store_x:
+0x667c 027845 store 2 ,mem_shutter_move_data_x 
+:      027846 shutter_dy_move_data_store:
+0x667d 027847 bpatch patch15_1 ,mem_patch15 
+0x667e 027848 fetch 2 ,mem_shutter_move_data_x 
+0x667f 027849 fetcht 2 ,mem_shutter_move_data_y 
+0x6680 027850 lshift8 temp ,temp 
+0x6681 027851 lshift4 temp ,temp 
+0x6682 027852 iadd temp ,pdata 
+0x6683 027853 store 3 ,mem_shutter_move_data 
+0x6684 027854 branch shutter_dy_get_move_data 
+:      027855 shutter_dy_move_x_check_max:
+0x6685 027856 fetch 2 ,mem_shutter_move_data_x 
+0x6686 027857 arg iphone_once_max_move_value ,temp 
+0x6687 027858 isub temp ,temp 
+0x6688 027859 nrtn positive 
+0x6689 027860 copy temp ,pdata 
+0x668a 027861 fetcht 1 ,mem_shutter_iphone_beyond_x_count 
+0x668b 027862 sub temp ,0x03 ,null 
+0x668c 027863 branch shutter_dy_clear_move_x ,zero 
+0x668d 027864 increase 1 ,temp 
+0x668e 027865 storet 1 ,mem_shutter_iphone_beyond_x_count 
+0x668f 027866 branch shutter_dy_move_store_x 
+:      027867 shutter_dy_clear_move_x:
+0x6690 027868 jam 0 ,mem_shutter_iphone_beyond_x_count 
+0x6691 027869 arg 0 ,pdata 
+0x6692 027870 branch shutter_dy_move_store_x 
+:      027871 shutter_dy_move_right:
+0x6693 027872 call shutter_dy_check_iphone 
+0x6694 027873 ncall shutter_dy_move_x_check_max ,blank 
+0x6695 027874 call shutter_dy_every_move_size_set 
+0x6696 027875 fetch 2 ,mem_shutter_move_data_x 
+:      027876 shutter_dy_move_right_next:
+0x6697 027877 iadd temp ,pdata 
+0x6698 027878 arg 0xfff ,temp 
+0x6699 027879 call ceiling 
+0x669a 027880 branch shutter_dy_move_store_x 
+:      027882 shutter_dy_move_up:
+0x669b 027883 call shutter_dy_every_move_size_set 
+0x669c 027884 fetch 2 ,mem_shutter_move_data_y 
+0x669d 027885 isub temp ,pdata 
+0x669e 027886 store 2 ,mem_shutter_move_data_y 
+:      027887 shutter_dy_move_y_check_max:
+0x669f 027888 fetcht 2 ,mem_shutter_move_data_y 
+0x66a0 027889 call shutter_dy_check_iphone 
+0x66a1 027890 branch shutter_dy_move_data_store ,blank 
+0x66a2 027891 setarg 0xfff 
+0x66a3 027892 isub temp ,pdata 
+0x66a4 027893 arg iphone_once_max_move_value ,temp 
+0x66a5 027894 isub temp ,temp 
+0x66a6 027895 nbranch shutter_dy_move_data_store ,positive 
+0x66a7 027896 setarg 0xfff 
+0x66a8 027897 isub temp ,pdata 
+0x66a9 027898 fetcht 1 ,mem_shutter_iphone_beyond_y_count 
+0x66aa 027899 sub temp ,0x05 ,null 
+0x66ab 027900 branch shutter_dy_clear_move_y ,zero 
+0x66ac 027901 increase 1 ,temp 
+0x66ad 027902 storet 1 ,mem_shutter_iphone_beyond_y_count 
+0x66ae 027903 branch shutter_dy_move_store_y 
+:      027904 shutter_dy_clear_move_y:
+0x66af 027905 jam 0 ,mem_shutter_iphone_beyond_y_count 
+:      027906 shutter_dy_android_move_y_empty_check:
+0x66b0 027907 setarg 0xfff 
+0x66b1 027908 branch shutter_dy_move_store_y 
+:      027910 shutter_dy_move_y_empty_check:
+0x66b2 027911 call shutter_dy_check_iphone 
+0x66b3 027912 branch shutter_dy_android_move_y_empty_check ,blank 
+0x66b4 027913 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+0x66b5 027914 branch shutter_dy_android_move_y_empty_check ,blank 
+0x66b6 027915 increase -1 ,pdata 
+0x66b7 027916 store 1 ,mem_shutter_iphone_beyond_y_count 
+0x66b8 027917 setarg 0xfff 
+0x66b9 027918 arg iphone_once_max_move_value ,temp 
+0x66ba 027919 isub temp ,pdata 
+0x66bb 027920 iadd rega ,pdata 
+:      027921 shutter_dy_move_store_y:
+0x66bc 027922 store 2 ,mem_shutter_move_data_y 
+0x66bd 027923 branch shutter_dy_move_data_store 
+:      027924 shutter_dy_move_down:
+0x66be 027925 call shutter_dy_every_move_size_set 
+0x66bf 027926 fetch 2 ,mem_shutter_move_data_y 
+:      027927 shutter_dy_move_down_next:
+0x66c0 027928 iadd temp ,pdata 
+0x66c1 027929 arg 0xfff ,temp 
+0x66c2 027930 isub temp ,rega 
+0x66c3 027931 branch shutter_dy_move_y_empty_check ,positive 
+0x66c4 027932 branch shutter_dy_move_store_y 
+:      027935 ble_shutter_dy_receive_data:
+0x66c5 027936 fetch 2 ,mem_le_att_handle 
+0x66c6 027937 beq gatt_keyboard_write_handle_new ,ble_shutter_process_reconnect_complete 
+0x66c7 027938 rtn 
+:      027940 shutter_dy_le_find_service_hand_by_uuid:
+0x66c8 027941 arg 23 ,rega 
+0x66c9 027942 arg le_l2cap_cid_att ,regb 
+0x66ca 027943 call le_fifo_malloc_tx_l2cap 
+0x66cb 027944 setarg attop_find_by_type_value_request 
+0x66cc 027945 istore 1 ,contw 
+0x66cd 027946 setarg 0x0001 
+0x66ce 027947 istore 2 ,contw 
+0x66cf 027948 setarg 0xffff 
+0x66d0 027949 istore 2 ,contw 
+0x66d1 027950 setarg 0x2800 
+0x66d2 027951 istore 2 ,contw 
+0x66d3 027952 arg mem_dy_le_search_service_uuid ,contr 
+0x66d4 027953 branch memcpy16 
+:      027956 shutter_dy_le_parse_att:
+0x66d5 027957 bpatch patch15_2 ,mem_patch15 
+0x66d6 027958 copy rega ,contr 
+0x66d7 027959 ifetch 3 ,contr 
+0x66d8 027960 store 3 ,mem_le_att_opcode 
+0x66d9 027961 beq attop_find_by_type_value_response ,shutter_dy_le_parse_att_find_by_type_value_rsp 
+0x66da 027962 beq attop_error_response ,shutter_dy_le_parse_error_rsp 
+0x66db 027963 beq attop_read_request ,shutter_dy_le_parse_att_read_request 
+0x66dc 027964 beq attop_read_blob_request ,shutter_dy_le_parse_att_read_blob_request 
+0x66dd 027965 branch le_parse_att2 
+:      027967 shutter_dy_le_parse_att_read_blob_request:
+0x66de 027968 ifetch 2 ,contr 
+0x66df 027969 store 2 ,mem_le_att_offset 
+0x66e0 027970 iforce rega 
+0x66e1 027971 fetcht 2 ,mem_le_att_handle 
+0x66e2 027972 fetch 2 ,mem_le_pairing_handle 
+0x66e3 027973 isub temp ,null 
+0x66e4 027974 nbranch le_send_att_read_blob_response ,zero 
+0x66e5 027975 call shutter_dy_check_iphone 
+0x66e6 027976 nbranch shutter_dy_le_parse_att_read_blob_request_ios ,blank 
+0x66e7 027977 fetcht 2 ,mem_shutter_le_map_len_android 
+0x66e8 027978 branch shutter_dy_le_parse_att_read_blob_request2 
+:      027980 shutter_dy_le_parse_att_read_blob_request_ios:
+0x66e9 027981 fetcht 2 ,mem_shutter_le_map_len_ios 
+:      027982 shutter_dy_le_parse_att_read_blob_request2:
+0x66ea 027983 arg mem_shutter_le_hid_map ,contr 
+0x66eb 027984 call store_contr 
+0x66ec 027985 copy temp ,pdata 
+0x66ed 027986 isub rega ,pdata 
+0x66ee 027987 nbranch le_send_att_error_response_notfound ,positive 
+0x66ef 027988 increase 1 ,pdata 
+0x66f0 027989 sub pdata ,23 ,null 
+0x66f1 027990 branch le_send_att_read_blob_response_less ,positive 
+0x66f2 027991 force 23 ,pdata 
+0x66f3 027992 branch le_send_att_read_blob_response_less 
+:      027994 shutter_dy_le_parse_att_read_request:
+0x66f4 027995 fetcht 2 ,mem_le_att_handle 
+0x66f5 027996 fetch 1 ,mem_le_configuration 
+0x66f6 027997 bbit1 bit_ble_read_auth ,shutter_dy_le_send_att_read_response_check_auth 
+0x66f7 027998 branch le_send_att_read_response 
+:      027999 shutter_dy_le_send_att_read_response_check_auth:
+0x66f8 028000 fetch 2 ,mem_le_pairing_handle 
+0x66f9 028001 isub temp ,null 
+0x66fa 028002 nbranch le_send_att_read_response ,zero 
+0x66fb 028003 call le_check_encrypt_state 
+0x66fc 028004 nbranch shutter_dy_le_send_att_read_response ,user 
+0x66fd 028005 branch le_send_att_read_response_error_insufficient_auth 
+:      028007 shutter_dy_le_send_att_read_response:
+0x66fe 028008 fetch 2 ,mem_le_pairing_handle 
+0x66ff 028009 isub temp ,null 
+0x6700 028010 nbranch le_send_att_read_response ,zero 
+0x6701 028011 arg mem_shutter_le_hid_map ,contr 
+0x6702 028012 force 23 ,pdata 
+0x6703 028013 branch le_send_att_read_response_less 
+:      028015 shutter_dy_le_parse_att_find_by_type_value_rsp:
+:      028016 shutter_dy_le_remote_iphone:
+0x6704 028017 bpatch patch15_3 ,mem_patch15 
+0x6705 028018 jam 5 ,mem_shutter_back_count 
+0x6706 028019 jam 1 ,mem_iphone_flag 
+0x6707 028020 jam 1 ,mem_last_shutter_le_iphone_flag 
+0x6708 028021 jam 240 ,mem_send_data_delay 
+0x6709 028022 jam 10 ,mem_shutter_move_mid_timer 
+0x670a 028023 jam 1 ,mem_shutter_first_move 
+0x670b 028024 call shutter_dy_load_move_config_info 
+0x670c 028025 fetch 1 ,mem_shutter_pairing_success 
+0x670d 028026 rtn blank 
+0x670e 028027 call shutter_dy_clear_move_config 
+0x670f 028028 arg iphone_once_max_move_value ,temp 
+0x6710 028030 fetch 2 ,mem_iphone_initial_move_x 
+0x6711 028031 arg mem_shutter_move_data_x ,rega 
+0x6712 028032 arg mem_shutter_iphone_beyond_x_count ,regb 
+0x6713 028033 call shutter_dy_iphone_move_initial_set 
+0x6714 028034 arg iphone_once_max_move_value ,temp 
+0x6715 028036 fetch 2 ,mem_iphone_initial_move_y 
+0x6716 028037 arg mem_shutter_move_data_y ,rega 
+0x6717 028038 arg mem_shutter_iphone_beyond_y_count ,regb 
+0x6718 028039 call shutter_dy_iphone_move_initial_set 
+0x6719 028040 setarg 0xfff 
+0x671a 028041 fetcht 2 ,mem_shutter_move_data_y 
+0x671b 028042 isub temp ,pdata 
+0x671c 028043 store 2 ,mem_shutter_move_data_y 
+0x671d 028044 rtn 
+:      028045 shutter_dy_iphone_move_initial_set:
+0x671e 028046 idiv temp 
+0x671f 028047 call wait_div_end 
+0x6720 028048 quotient pdata 
+0x6721 028049 remainder temp 
+0x6722 028050 istore 1 ,regb 
+0x6723 028051 istoret 2 ,rega 
+0x6724 028052 rtn 
+:      028053 shutter_dy_le_parse_error_rsp:
+0x6725 028054 increase -2 ,contr 
+0x6726 028055 ifetch 1 ,contr 
+0x6727 028056 beq attop_find_by_type_value_request ,shutter_dy_not_iphone_read_conf 
+0x6728 028057 rtn 
+:      028058 shutter_dy_remote_not_iphone:
+0x6729 028059 jam 1 ,mem_shutter_back_count 
+0x672a 028060 jam 0 ,mem_iphone_flag 
+0x672b 028061 jam 0 ,mem_last_shutter_le_iphone_flag 
+0x672c 028062 jam 10 ,mem_send_data_delay 
+0x672d 028063 rtn 
+:      028065 shutter_dy_not_iphone_read_conf:
+0x672e 028066 call shutter_dy_remote_not_iphone 
+0x672f 028067 branch shutter_dy_load_move_config_info 
+:      028069 shutter_dy_check_iphone:
+0x6730 028070 fetch 1 ,mem_iphone_flag 
+0x6731 028071 rtn 
+:      028074 shutter_dy_le_get_press_ptr:
+0x6732 028075 arg mem_dy_key0_press ,regc 
+0x6733 028076 call shutter_dy_check_iphone 
+0x6734 028077 rtn blank 
+0x6735 028078 jam 120 ,mem_send_data_delay 
+0x6736 028079 arg mem_key0_press_i ,regc 
+0x6737 028080 rtn 
+:      028081 shutter_dy_le_get_release_ptr:
+:      028082 shutter_dy_le_get_release_ptr_set:
+0x6738 028083 arg mem_key0_release_new ,regc 
+0x6739 028084 call shutter_dy_check_iphone 
+0x673a 028085 rtn blank 
+0x673b 028086 arg mem_key0_release_new_i ,regc 
+0x673c 028087 jam 12 ,mem_send_data_delay 
+0x673d 028088 copy queue ,pdata 
+0x673e 028089 rtneq shutter_like_key_num 
+0x673f 028090 rtn 
+:      028091 shutter_dy_le_get_release_ptr_volume:
+0x6740 028092 bpatch patch15_4 ,mem_patch15 
+0x6741 028093 fetch 1 ,mem_key3_press_count 
+0x6742 028094 setflip 0 ,pdata 
+0x6743 028095 store 1 ,mem_key3_press_count 
+0x6744 028096 beq 0 ,shutter_dy_le_get_release_ptr_set_volume_inc 
+0x6745 028097 beq 1 ,shutter_dy_le_get_release_ptr_set_volume_dec 
+0x6746 028098 rtn 
+:      028099 shutter_dy_le_get_release_ptr_set_volume_dec:
+0x6747 028100 call shutter_dy_le_get_vol_dec_ptr 
+0x6748 028101 branch push_buffer_in_queue 
+:      028102 shutter_dy_le_get_release_ptr_set_volume_inc:
+0x6749 028103 call shutter_dy_le_get_vol_inc_ptr 
+0x674a 028104 branch push_buffer_in_queue 
+:      028105 shutter_dy_le_get_vol_inc_ptr:
+0x674b 028106 arg mem_key3_release_new ,regc 
+0x674c 028107 call shutter_dy_check_iphone 
+0x674d 028108 rtn blank 
+0x674e 028109 arg mem_key3_release_new_i ,regc 
+0x674f 028110 rtn 
+:      028111 shutter_dy_le_get_vol_dec_ptr:
+0x6750 028112 arg mem_key3_release_new_t ,regc 
+0x6751 028113 call shutter_dy_check_iphone 
+0x6752 028114 rtn blank 
+0x6753 028115 arg mem_key3_release_new_i_t ,regc 
+0x6754 028116 rtn 
+:      028119 shutter_dy_long_key_function:
+0x6755 028120 copy queue ,pdata 
+0x6756 028121 beq shutter_like_key_num ,shutter_dy_link_key_long_press 
+0x6757 028122 beq shutter_down_key_num ,shutter_dy_loop_send_volume_dec_page 
+0x6758 028123 beq shutter_up_key_num ,shutter_dy_loop_send_volume_inc_page 
+0x6759 028124 rtn 
+:      028127 shutter_dy_long_key_volume_timer:
+0x675a 028128 arg mem_shutter_volume_timer ,regc 
+0x675b 028129 arg shutter_dy_long_key_volume_timeout ,regb 
+0x675c 028130 branch timer_single_step 
+:      028131 shutter_dy_long_key_volume_timeout:
+0x675d 028132 jam 4 ,mem_shutter_volume_timer 
+0x675e 028133 fetch 1 ,mem_key3_press_count 
+0x675f 028134 branch shutter_dy_loop_send_volume_inc_page ,blank 
+0x6760 028135 branch shutter_dy_loop_send_volume_dec_page 
+:      028138 shutter_dy_loop_send_volume_inc_page:
+0x6761 028139 jam 0 ,mem_key3_press_count 
+0x6762 028140 jam 4 ,mem_shutter_volume_timer 
+0x6763 028141 arg mem_key4_long_press ,regc 
+0x6764 028142 branch push_buffer_in_queue 
+:      028144 shutter_dy_loop_send_volume_dec_page:
+0x6765 028145 jam 1 ,mem_key3_press_count 
+0x6766 028146 jam 4 ,mem_shutter_volume_timer 
+0x6767 028147 arg mem_key2_long_press ,regc 
+0x6768 028148 branch push_buffer_in_queue 
+:      028149 shutter_dy_clear_volume_timer:
+0x6769 028150 jam 0 ,mem_key3_press_count 
+0x676a 028151 jam 0 ,mem_shutter_volume_timer 
+0x676b 028152 rtn 
+:      028155 shutter_dy_link_key_loop_timer:
+0x676c 028156 arg mem_shutter_link_timer ,regc 
+0x676d 028157 arg shutter_dy_link_key_loop_timeout ,regb 
+0x676e 028158 branch timer_single_step 
+:      028159 shutter_dy_link_key_loop_timeout:
+0x676f 028160 jam 2 ,mem_shutter_link_timer 
+0x6770 028161 call shutter_dy_link_data_android_or_ios 
+0x6771 028162 branch push_buffer_in_queue 
+:      028164 shutter_dy_link_data_android_or_ios:
+0x6772 028165 arg mem_shutter_link_data ,regc 
+0x6773 028166 call shutter_dy_check_iphone 
+0x6774 028167 rtn blank 
+0x6775 028168 arg mem_shutter_link_data_i ,regc 
+0x6776 028169 rtn 
+:      028171 shutter_dy_link_key_long_press:
+0x6777 028172 fetch 1 ,mem_shutter_link_loop_flag 
+0x6778 028173 nbranch shutter_dy_clear_link_key_timer ,blank 
+0x6779 028174 jam 1 ,mem_shutter_link_loop_flag 
+0x677a 028175 jam 2 ,mem_shutter_link_timer 
+0x677b 028176 rtn 
+:      028178 shutter_dy_clear_link_key_timer:
+0x677c 028179 jam 0 ,mem_shutter_link_loop_flag 
+0x677d 028180 jam 0 ,mem_shutter_link_timer 
+0x677e 028181 rtn 
+:      028183 shutter_dy_jude_clear_move_config:
+0x677f 028184 fetch 1 ,mem_shutter_le_conned 
+0x6780 028185 nrtn blank 
+0x6781 028186 jam 1 ,mem_shutter_le_conned 
+0x6782 028187 branch shutter_dy_move_data_store 
+:      028189 shutter_dy_clear_move_config:
+0x6783 028190 setarg 0 
+0x6784 028191 store 7 ,mem_move_config 
+0x6785 028192 rtn 
+:      028194 shutter_dy_write_otp_convert_data:
+0x6786 028195 call shutter_dy_check_iphone 
+0x6787 028196 beq 0x01 ,shutter_dy_store_ios_config_data 
+0x6788 028197 beq 0x00 ,shutter_dy_store_android_config 
+0x6789 028198 rtn 
+:      028200 shutter_dy_read_otp_convert_data:
+0x678a 028201 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x678b 028202 beq 0x01 ,shutter_dy_get_ios_config 
+0x678c 028203 beq 0x00 ,shutter_dy_get_android_config 
+0x678d 028204 rtn 
+:      028206 shutter_dy_store_ios_config_data:
+0x678e 028207 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+0x678f 028208 mul32 pdata ,iphone_once_max_move_value ,pdata 
+0x6790 028209 copy pdata ,temp 
+0x6791 028210 fetch 2 ,mem_shutter_move_data_x 
+0x6792 028211 iadd temp ,pdata 
+0x6793 028212 store 2 ,mem_otp_shutter_move_data_x 
+0x6794 028214 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+0x6795 028215 mul32 pdata ,iphone_once_max_move_value ,pdata 
+0x6796 028216 copy pdata ,temp 
+0x6797 028217 fetch 2 ,mem_shutter_move_data_y 
+0x6798 028218 copy pdata ,rega 
+0x6799 028219 setarg 0xfff 
+0x679a 028220 isub rega ,pdata 
+0x679b 028221 iadd temp ,pdata 
+0x679c 028222 store 2 ,mem_otp_shutter_move_data_y 
+0x679d 028224 call shutter_dy_check_iphone 
+0x679e 028226 store 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x679f 028227 rtn 
+:      028229 shutter_dy_store_android_config:
+0x67a0 028230 fetch 2 ,mem_shutter_move_data_x 
+0x67a1 028231 store 2 ,mem_otp_shutter_move_data_x 
+0x67a2 028232 fetch 2 ,mem_shutter_move_data_y 
+0x67a3 028233 store 2 ,mem_otp_shutter_move_data_y 
+0x67a4 028234 call shutter_dy_check_iphone 
+0x67a5 028235 store 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x67a6 028236 rtn 
+:      028237 shutter_dy_get_ios_config:
+0x67a7 028238 fetch 2 ,mem_otp_shutter_move_data_x 
+0x67a8 028239 div pdata ,iphone_once_max_move_value 
+0x67a9 028240 call wait_div_end 
+0x67aa 028241 quotient pdata 
+0x67ab 028242 remainder temp 
+0x67ac 028243 store 1 ,mem_shutter_iphone_beyond_x_count 
+0x67ad 028244 copy temp ,pdata 
+0x67ae 028245 store 2 ,mem_shutter_move_data_x 
+0x67af 028246 fetch 2 ,mem_otp_shutter_move_data_y 
+0x67b0 028247 div pdata ,iphone_once_max_move_value 
+0x67b1 028248 call wait_div_end 
+0x67b2 028249 quotient pdata 
+0x67b3 028250 remainder temp 
+0x67b4 028251 store 1 ,mem_shutter_iphone_beyond_y_count 
+0x67b5 028253 setarg 0xfff 
+0x67b6 028254 isub temp ,pdata 
+0x67b7 028255 store 2 ,mem_shutter_move_data_y 
+0x67b8 028258 rtn 
+:      028259 shutter_dy_get_android_config:
+0x67b9 028260 fetch 2 ,mem_otp_shutter_move_data_x 
+0x67ba 028261 store 2 ,mem_shutter_move_data_x 
+0x67bb 028262 fetch 2 ,mem_otp_shutter_move_data_y 
+0x67bc 028263 store 2 ,mem_shutter_move_data_y 
+0x67bd 028266 rtn 
+:      028268 shutter_dy_store_move_config_info:
+0x67be 028269 branch shutter_dy_campare_effective_addr_write_otp 
+:      028271 shutter_dy_load_move_config_info:
+0x67bf 028272 branch shutter_dy_campare_effective_addr_read_otp 
+:      028275 shutter_dy_shutter_uart_config_loop:
+0x67c0 028276 call shutter_dy_update_read_check_addr 
+0x67c1 028277 fetch 2 ,mem_otp_read_offset_addr 
+0x67c2 028278 call shutter_dy_shutter_read_move_config_from_otp_addr 
+0x67c3 028279 jam 0 ,mem_shutter_first_read_flag 
+0x67c4 028280 fetch 5 ,mem_otp_move_config 
+0x67c5 028281 jam 0 ,mem_shutter_valid_data_flag 
+0x67c6 028282 jam 0 ,mem_shutter_temp_count 
+0x67c7 028283 call shutter_dy_campare_otp_data 
+0x67c8 028284 fetch 1 ,mem_shutter_temp_count 
+0x67c9 028285 rtneq 0 
+0x67ca 028286 branch shutter_dy_shutter_uart_config_loop 
+:      028289 shutter_dy_shutter_get_first_read_addr:
+0x67cb 028291 fetch 2 ,mem_shutter_efuse_start_offset 
+0x67cc 028292 increase -5 ,pdata 
+0x67cd 028293 store 2 ,mem_otp_read_offset_addr 
+0x67ce 028294 rtn 
+:      028297 shutter_dy_shutter_next_read_addr:
+0x67cf 028298 fetch 2 ,mem_otp_read_offset_addr 
+0x67d0 028299 increase -5 ,pdata 
+0x67d1 028300 store 2 ,mem_otp_read_offset_addr 
+0x67d2 028301 rtn 
+:      028304 shutter_dy_shutter_last_read_addr:
+0x67d3 028305 fetch 2 ,mem_otp_read_offset_addr 
+0x67d4 028306 pincrease 5 
+0x67d5 028307 store 2 ,mem_otp_read_offset_addr 
+0x67d6 028308 rtn 
+:      028310 shutter_dy_shutter_read_ios_android_addr:
+0x67d7 028311 fetch 2 ,mem_otp_read_ios_android_addr 
+0x67d8 028312 pincrease 5 
+0x67d9 028313 store 2 ,mem_otp_read_ios_android_addr 
+0x67da 028315 fetch 2 ,mem_otp_read_ios_android_addr 
+0x67db 028316 copy pdata ,temp 
+0x67dc 028318 fetch 2 ,mem_shutter_efuse_start_offset 
+0x67dd 028319 isub temp ,pdata 
+0x67de 028320 arg shutter_para_total_num ,temp 
+0x67df 028321 isub temp ,null 
+0x67e0 028323 nbranch shutter_dy_shutter_not_find_ios_or_android ,positive 
+0x67e1 028324 rtn 
+:      028326 shutter_dy_update_read_check_addr:
+0x67e2 028327 fetch 1 ,mem_shutter_first_read_flag 
+0x67e3 028328 beq 0x01 ,shutter_dy_shutter_get_first_read_addr 
+0x67e4 028329 beq 0x00 ,shutter_dy_shutter_next_read_addr 
+0x67e5 028330 rtn 
+:      028333 shutter_dy_campare_otp_data:
+0x67e6 028334 arg 0x0 ,regb 
+0x67e7 028335 copy regb ,temp 
+0x67e8 028336 fetch 2 ,mem_otp_shutter_move_data_x 
+0x67e9 028337 icompare 0xffff ,temp 
+0x67ea 028339 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+0x67eb 028340 arg 0x0 ,regb 
+0x67ec 028341 copy regb ,temp 
+0x67ed 028342 fetch 2 ,mem_otp_shutter_move_data_y 
+0x67ee 028343 icompare 0xffff ,temp 
+0x67ef 028344 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+0x67f0 028345 arg 0x0 ,regb 
+0x67f1 028346 copy regb ,temp 
+0x67f2 028347 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x67f3 028348 icompare 0xff ,temp 
+0x67f4 028349 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+0x67f5 028350 rtn 
+:      028353 shutter_dy_set_shutter_valid_data_flag:
+0x67f6 028354 fetch 1 ,mem_shutter_temp_count 
+0x67f7 028355 pincrease 1 
+0x67f8 028356 store 1 ,mem_shutter_temp_count 
+0x67f9 028357 rtn 
+:      028358 shutter_dy_shutter_judge_ios_or_android:
+0x67fa 028359 jam 1 ,mem_shutter_temp_count 
+0x67fb 028360 call shutter_dy_shutter_read_ios_android_addr 
+0x67fc 028361 fetch 2 ,mem_otp_read_ios_android_addr 
+0x67fd 028362 call shutter_dy_shutter_read_move_config_from_otp_addr 
+0x67fe 028363 call shutter_dy_check_iphone 
+0x67ff 028364 copy pdata ,temp 
+0x6800 028365 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x6801 028366 icompare 0xff ,temp 
+0x6802 028367 call shutter_dy_clear_temp_count ,true 
+0x6803 028369 fetch 1 ,mem_shutter_temp_count 
+0x6804 028370 rtneq 0 
+0x6805 028371 branch shutter_dy_shutter_judge_ios_or_android 
+:      028374 shutter_dy_shutter_not_find_ios_or_android:
+0x6806 028375 bpatch patch15_5 ,mem_patch15 
+0x6807 028376 call shutter_dy_clear_temp_count 
+0x6808 028377 call shutter_dy_check_iphone 
+0x6809 028378 branch shutter_dy_shutter_android_save_init_loaction ,blank 
+0x680a 028379 branch shutter_dy_shutter_ios_save_init_loaction 
+:      028380 shutter_dy_shutter_android_save_init_loaction:
+0x680b 028382 fetch 2 ,mem_android_initial_move_x 
+0x680c 028383 store 2 ,mem_shutter_move_data_x 
+0x680d 028385 fetcht 2 ,mem_android_initial_move_y 
+0x680e 028386 setarg 0xfff 
+0x680f 028387 isub temp ,pdata 
+0x6810 028388 store 2 ,mem_shutter_move_data_y 
+0x6811 028389 branch shutter_dy_store_move_config_info 
+:      028391 shutter_dy_shutter_ios_save_init_loaction:
+0x6812 028392 arg iphone_once_max_move_value ,temp 
+0x6813 028394 fetch 2 ,mem_iphone_initial_move_x 
+0x6814 028395 arg mem_shutter_move_data_x ,rega 
+0x6815 028396 arg mem_shutter_iphone_beyond_x_count ,regb 
+0x6816 028397 call shutter_dy_iphone_move_initial_set 
+0x6817 028398 arg iphone_once_max_move_value ,temp 
+0x6818 028400 fetch 2 ,mem_iphone_initial_move_y 
+0x6819 028401 arg mem_shutter_move_data_y ,rega 
+0x681a 028402 arg mem_shutter_iphone_beyond_y_count ,regb 
+0x681b 028403 call shutter_dy_iphone_move_initial_set 
+0x681c 028404 setarg 0xfff 
+0x681d 028405 fetcht 2 ,mem_shutter_move_data_y 
+0x681e 028406 isub temp ,pdata 
+0x681f 028407 store 2 ,mem_shutter_move_data_y 
+0x6820 028408 branch shutter_dy_store_move_config_info 
+:      028410 shutter_dy_clear_temp_count:
+0x6821 028411 jam 0 ,mem_shutter_temp_count 
+0x6822 028412 rtn 
+:      028414 shutter_dy_campare_effective_addr_read_otp:
+0x6823 028415 bpatch patch15_6 ,mem_patch15 
+0x6824 028416 jam 1 ,mem_shutter_first_read_flag 
+0x6825 028417 call shutter_dy_shutter_uart_config_loop 
+0x6826 028421 fetch 2 ,mem_shutter_efuse_end_offset 
+0x6827 028422 copy pdata ,temp 
+0x6828 028423 fetch 2 ,mem_otp_read_offset_addr 
+0x6829 028424 isub temp ,pdata 
+0x682a 028425 arg 0x0 ,temp 
+0x682b 028426 isub temp ,null 
+0x682c 028427 nrtn positive 
+0x682d 028428 fetch 2 ,mem_otp_read_offset_addr 
+0x682e 028429 copy pdata ,temp 
+0x682f 028431 fetch 2 ,mem_shutter_efuse_start_offset 
+0x6830 028432 increase -5 ,pdata 
+0x6831 028433 isub temp ,pdata 
+0x6832 028436 fetch 2 ,mem_otp_read_offset_addr 
+0x6833 028437 store 2 ,mem_otp_read_ios_android_addr 
+0x6834 028438 call shutter_dy_shutter_judge_ios_or_android 
+0x6835 028439 fetch 2 ,mem_otp_read_ios_android_addr 
+0x6836 028440 ncall shutter_dy_shutter_read_move_config_from_otp_addr ,zero 
+0x6837 028443 jam 0 ,mem_shutter_temp_count 
+0x6838 028444 call shutter_dy_campare_otp_data 
+0x6839 028445 fetch 1 ,mem_shutter_temp_count 
+0x683a 028446 rtneq 0 
+0x683b 028447 branch shutter_dy_read_otp_convert_data 
+:      028450 shutter_dy_campare_effective_addr_write_otp:
+0x683c 028451 bpatch patch15_7 ,mem_patch15 
+0x683d 028452 jam 1 ,mem_shutter_first_read_flag 
+0x683e 028453 call shutter_dy_shutter_uart_config_loop 
+0x683f 028457 fetcht 2 ,mem_shutter_efuse_end_offset 
+0x6840 028459 fetch 2 ,mem_otp_read_offset_addr 
+0x6841 028460 isub temp ,pdata 
+0x6842 028461 arg 0x0 ,temp 
+0x6843 028462 isub temp ,null 
+0x6844 028463 nrtn positive 
+0x6845 028465 fetcht 2 ,mem_otp_read_offset_addr 
+0x6846 028467 fetch 2 ,mem_shutter_efuse_start_offset 
+0x6847 028468 isub temp ,pdata 
+0x6848 028469 arg 0x0 ,temp 
+0x6849 028470 isub temp ,null 
+0x684a 028471 nrtn positive 
+0x684b 028472 fetch 2 ,mem_otp_read_offset_addr 
+0x684c 028473 store 2 ,mem_otp_write_offset_addr 
+0x684d 028474 call shutter_dy_write_otp_convert_data 
+0x684e 028476 branch shutter_dy_shutter_write_move_config_to_otp_addr 
+:      028479 shutter_dy_shutter_read_move_config_from_otp_addr:
+0x684f 028480 bpatch patch16_0 ,mem_patch16 
+0x6850 028481 copy pdata ,regb 
+0x6851 028482 arg shutter_para_total_num ,loopcnt 
+0x6852 028484 arg mem_otp_move_config ,rega 
+0x6853 028485 branch otp_read_data 
+:      028488 shutter_dy_shutter_write_move_config_to_otp_addr:
+0x6854 028489 arg shutter_para_total_num ,loopcnt 
+0x6855 028490 arg mem_otp_move_config ,rega 
+0x6856 028491 fetchr regb ,2 ,mem_otp_write_offset_addr 
+0x6857 028492 branch otp_write 
+:      028494 shutter_dy_shutter_1s_timer:
+0x6858 028495 arg mem_shutter_1s_timer ,regc 
+0x6859 028496 arg shutter_dy_store_move_config_info ,regb 
+0x685a 028497 branch timer_single_step 
+:      028511 p_crc16_ccitt_false:
+0x685b 028512 fetch 2 ,mem_adv_crc_false_initvalue 
+:      028514 p_crc16_ccitt_false_loop:
+0x685c 028515 ifetcht 1 ,regc 
+0x685d 028516 increase 1 ,regc 
+0x685e 028517 lshift8 temp ,temp 
+0x685f 028518 ixor temp ,pdata 
+:      028520 p_crc16_for_byte:
+0x6860 028521 copy loopcnt ,regb 
+0x6861 028522 arg 8 ,loopcnt 
+:      028523 p_crc16_for_byte_loop:
+0x6862 028524 isolate1 15 ,pdata 
+0x6863 028525 lshift pdata ,pdata 
+0x6864 028526 nbranch p_crc16_for_byte_continue ,true 
+0x6865 028527 fetcht 2 ,mem_crc16_polynomial 
+0x6866 028528 ixor temp ,pdata 
+:      028529 p_crc16_for_byte_continue:
+0x6867 028530 loop p_crc16_for_byte_loop 
+0x6868 028531 copy regb ,loopcnt 
+0x6869 028533 loop p_crc16_ccitt_false_loop 
+0x686a 028534 store 2 ,mem_adv_crc_false_initvalue 
+0x686b 028535 rtn 
+:      028540 rf_debug_rx_gpio_low:
+0x686c 028541 fetch 1 ,mem_rf_debug_rx_gpio 
+:      028542 rf_debug_gpio_low:
+0x686d 028543 arg gpcfg_output_low ,temp 
+0x686e 028544 branch gpio_config_function 
+:      028546 rf_debug_rx_on_line:
+:      028547 rf_debug_rx_gpio_high:
+0x686f 028548 fetch 1 ,mem_rf_debug_rx_gpio 
+:      028549 rf_debug_gpio_high:
+0x6870 028550 arg gpcfg_output_high ,temp 
+0x6871 028551 branch gpio_config_function 
+:      028553 rf_debug_rx_gpio_h_l_h:
+0x6872 028554 call rf_debug_rx_gpio_high 
+:      028555 rf_debug_rx_gpio_l_h:
+0x6873 028556 call rf_debug_rx_gpio_low 
+0x6874 028557 branch rf_debug_rx_gpio_high 
+:      028559 rf_debug_rx_gpio_l_h_l:
+:      028560 rf_debug_shutdown_radio_line:
+0x6875 028561 call rf_debug_rx_gpio_l_h 
+:      028562 rf_debug_rx_crc_line:
+0x6876 028563 branch rf_debug_rx_gpio_low 
+:      028565 rf_debug_rx_sync_line:
+0x6877 028566 branch rf_debug_rx_gpio_l_h 
+:      028568 rf_debug_rx_crc_fail_line:
+0x6878 028569 call rf_debug_rx_gpio_l_h 
+0x6879 028570 branch rf_debug_rx_gpio_l_h_l 
+:      028572 rf_debug_rx_match_line:
+:      028573 rf_debug_rx_crc_error_line:
+:      028574 rf_debug_rx_sync_timeout_line:
+0x687a 028575 branch rf_debug_rx_gpio_low 
+:      028578 rf_debug_tx_off_line:
+:      028579 rf_debug_tx_gpio_low:
+0x687b 028580 fetch 1 ,mem_rf_debug_tx_gpio 
+0x687c 028581 branch rf_debug_gpio_low 
+:      028583 rf_debug_tx_on_line:
+:      028584 rf_debug_tx_gpio_high:
+0x687d 028585 fetch 1 ,mem_rf_debug_tx_gpio 
+0x687e 028586 branch rf_debug_gpio_high 
+:      028588 rf_debug_tx_gpio_l_h_l:
+0x687f 028589 call rf_debug_tx_gpio_low 
+0x6880 028590 call rf_debug_tx_gpio_high 
+0x6881 028591 branch rf_debug_tx_gpio_low 
+:      028598 hci_init:
+0x6882 028599 clear_stack 
+0x6883 028600 call wdt_set_disable 
+0x6884 028601 call hci_init_clksel_xtal 
+0x6885 028602 call hci_init_uart_default_config 
+0x6886 028603 call hci_init_uart_config 
+0x6887 028604 call hci_init_pwm_default_config 
+0x6888 028605 call hci_init_pwm 
+0x6889 028607 jam 1 ,mem_hci_command_complete_num_hci_command_packet 
+0x688a 028608 jam hci_h4_type_event ,mem_hci_event_head_type 
+:      028610 hci_process_loop:
+0x688b 028611 call hci_process_check_uart_rx 
+0x688c 028612 branch hci_process_loop 
+:      028614 hci_init_clksel_xtal:
+0x688d 028615 jam clksel_xtal ,core_clksel 
+0x688e 028616 rtn 
+:      028618 hci_init_uart_default_config:
+0x688f 028619 call hci_init_uart_default_config_tx 
+0x6890 028620 call hci_init_uart_default_config_rx 
+0x6891 028621 call hci_init_uart_default_config_rts 
+0x6892 028622 branch hci_init_uart_default_config_cts 
+:      028624 hci_init_uart_default_config_tx:
+0x6893 028625 fetch 1 ,mem_hci_uart_tx_gpio 
+0x6894 028626 nrtn blank 
+0x6895 028627 jam hci_uart_tx_gpio_num ,mem_hci_uart_tx_gpio 
+0x6896 028628 rtn 
+:      028630 hci_init_uart_default_config_rx:
+0x6897 028631 fetch 1 ,mem_hci_uart_rx_gpio 
+0x6898 028632 nrtn blank 
+0x6899 028633 jam hci_uart_rx_gpio_num ,mem_hci_uart_rx_gpio 
+0x689a 028634 rtn 
+:      028635 hci_init_uart_default_config_rts:
+0x689b 028636 fetch 1 ,mem_hci_uart_rts_gpio 
+0x689c 028637 nrtn blank 
+0x689d 028638 jam hci_uart_rts_gpio_num ,mem_hci_uart_rts_gpio 
+0x689e 028639 rtn 
+:      028640 hci_init_uart_default_config_cts:
+0x689f 028641 fetch 1 ,mem_hci_uart_cts_gpio 
+0x68a0 028642 nrtn blank 
+0x68a1 028643 jam hci_uart_cts_gpio_num ,mem_hci_uart_cts_gpio 
+0x68a2 028644 rtn 
+:      028647 hci_init_uart_config:
+0x68a3 028648 setarg mem_h5rx_buf 
+0x68a4 028649 store 2 ,mem_pdatatemp 
+0x68a5 028650 setarg mem_h5rx_buf_end 
+0x68a6 028651 istore 2 ,contw 
+0x68a7 028652 setarg mem_h5tx_buf 
+0x68a8 028653 istore 2 ,contw 
+0x68a9 028654 setarg mem_h5tx_buf_end 
+0x68aa 028655 istore 2 ,contw 
+0x68ab 028656 fetch 8 ,mem_pdatatemp 
+0x68ac 028657 call uarta_init_dma_mem 
+0x68ad 028658 call uart_clock_select_main_freq_crystal 
+0x68ae 028659 arg 115200 ,temp 
+0x68af 028660 call uarta_calc_baud_rate_config 
+0x68b0 028661 fetch 1 ,mem_hci_uart_tx_gpio 
+0x68b1 028662 arg gpcfg_uart_txd ,temp 
+0x68b2 028663 call gpio_config_function_int 
+0x68b3 028664 fetch 1 ,mem_hci_uart_rx_gpio 
+0x68b4 028665 arg gpcfg_uart_rxd | gpcfg_pullup ,temp 
+0x68b5 028666 call gpio_config_function_int 
+0x68b6 028667 fetch 1 ,mem_hci_uart_rts_gpio 
+0x68b7 028668 arg gpcfg_uart_rts ,temp 
+0x68b8 028669 call gpio_config_function_int 
+0x68b9 028670 fetch 1 ,mem_hci_uart_cts_gpio 
+0x68ba 028671 arg gpcfg_uart_cts ,temp 
+0x68bb 028672 call gpio_config_function_int 
+0x68bc 028674 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
+0x68bd 028675 storet 1 ,core_uart_ctrl 
+0x68be 028676 branch clean_xmem 
+:      028678 hci_init_pwm_default_config:
+0x68bf 028679 fetch 1 ,mem_hci_pwm_12mhz_gpio 
+0x68c0 028680 nrtn blank 
+0x68c1 028681 jam hci_pmw_12mhz_gpio_num ,mem_hci_pwm_12mhz_gpio 
+0x68c2 028682 rtn 
+:      028684 hci_init_pwm:
+0x68c3 028685 fetch 1 ,mem_hci_pwm_12mhz_gpio 
+0x68c4 028686 arg gpcfg_pwm_out0 ,temp 
+0x68c5 028687 call gpio_config_function_int 
+0x68c6 028688 arg 0x40 ,rega 
+0x68c7 028689 call pwm_init 
+0x68c8 028690 arg 0 ,rega 
+0x68c9 028691 arg 0 ,regb 
+0x68ca 028692 setarg 0 
+0x68cb 028693 call pwm_duty_cycle_set 
+0x68cc 028694 arg 0 ,queue 
+0x68cd 028695 branch pwm_set_select 
+:      028698 hci_process_check_uart_rx:
+0x68ce 028699 fetch 2 ,core_uart_rxitems 
+0x68cf 028700 add pdata ,-4 ,rega 
+0x68d0 028701 nrtn positive 
+0x68d1 028702 call uarta_prepare_rx 
+0x68d2 028703 ifetch 1 ,contru 
+0x68d3 028704 beq hci_h4_type_cmd ,hci_parse_packet_cmd 
+0x68d4 028706 call delay_10ms 
+0x68d5 028707 branch uarta_clear_current_rx 
+:      028711 hci_parse_packet_cmd:
+0x68d6 028712 ifetch 2 ,contru 
+0x68d7 028713 store 2 ,mem_hci_opcode 
+0x68d8 028714 arg 0x3ff ,temp 
+0x68d9 028715 iand temp ,temp 
+0x68da 028716 storet 2 ,mem_hci_opcode_ocf 
+0x68db 028717 rshift2 pdata ,pdata 
+0x68dc 028718 rshift8 pdata ,pdata 
+0x68dd 028719 store 1 ,mem_hci_opcode_ogf 
+0x68de 028720 ifetch 1 ,contru 
+0x68df 028721 pincrease -1 
+0x68e0 028722 isub rega ,null 
+0x68e1 028723 rtn positive 
+0x68e2 028724 call hci_parse_complete_packet 
+0x68e3 028725 branch hci_drop_current_packet 
+:      028727 hci_parse_complete_packet:
+0x68e4 028728 fetch 1 ,mem_hci_opcode_ogf 
+0x68e5 028736 beq hci_ogf_vendor_specific_debug ,hci_parse_packet_cmd_ogf_vendorspecific_debug 
+0x68e6 028737 branch hci_send_event_command_complete_error_command_nuknown 
+:      028747 hci_parse_packet_cmd_ogf_vendorspecific_debug:
+0x68e7 028748 bpatch patch16_4 ,mem_patch16 
+0x68e8 028749 fetch 1 ,mem_hci_opcode_ocf 
+0x68e9 028750 beq hci_vendor_cmd_reset ,hci_normal_reply 
+0x68ea 028751 beq hci_vendor_cmd_chipid ,phci_grp_vendor_chipid 
+0x68eb 028752 beq hci_vendor_cmd_baud ,phci_grp_vendor_baud 
+0x68ec 028753 beq hci_vendor_cmd_patch ,phci_grp_vendor_patch 
+0x68ed 028754 beq hci_vendor_cmd_patch_done ,phci_grp_vendor_done 
+0x68ee 028755 beq hci_vendor_cmd_echo ,hci_normal_reply 
+0x68ef 028756 beq hci_vendor_cmd_mem ,phci_grp_vendor_mem 
+0x68f0 028757 beq hci_vendor_cmd_set_flow_control ,phci_grp_vendor_flow_control 
+0x68f1 028758 branch hci_normal_reply 
+:      028761 phci_grp_vendor_chipid:
+0x68f2 028762 jam command_succeeded ,mem_hci_command_complete_return_parameter 
+0x68f3 028763 fetch 2 ,core_chipid 
+0x68f4 028764 store 2 ,mem_hci_command_complete_return_parameter_chip_id 
+0x68f5 028765 arg 3 ,loopcnt 
+0x68f6 028766 branch hci_send_event_command_complete 
+:      028768 phci_grp_vendor_baud:
+0x68f7 028769 ifetch 2 ,contu 
+0x68f8 028770 store 2 ,core_uart_baud 
+0x68f9 028771 rtn 
+:      028774 phci_grp_vendor_patch_common:
+0x68fa 028775 ifetch 1 ,contu 
+0x68fb 028776 copy pdata ,temp 
+0x68fc 028777 store 1 ,core_ucode_low 
+0x68fd 028778 ifetch 1 ,contu 
+0x68fe 028779 iadd temp ,temp 
+0x68ff 028780 set1 7 ,pdata 
+0x6900 028781 store 1 ,core_ucode_ctrl 
+0x6901 028782 ifetch 1 ,contu 
+0x6902 028783 iadd temp ,temp 
+0x6903 028784 copy pdata ,loopcnt 
+0x6904 028785 rtn 
+:      028787 phci_grp_vendor_patch:
+0x6905 028788 call phci_grp_vendor_patch_common 
+:      028789 phci_grp_vendor_patch_loop:
+0x6906 028790 ifetch 1 ,contu 
+0x6907 028791 store 1 ,core_ucode_data 
+0x6908 028792 iadd temp ,temp 
+0x6909 028793 loop phci_grp_vendor_patch_loop 
+:      028794 phci_grp_vendor_patch_check_sum:
+0x690a 028795 and temp ,0xff ,temp 
+0x690b 028796 ifetch 1 ,contu 
+0x690c 028797 isub temp ,null 
+0x690d 028798 nbranch phci_grp_vendor_patch_bad ,zero 
+0x690e 028799 branch hci_normal_reply 
+:      028801 phci_grp_vendor_done:
+0x690f 028802 arg 0x20 ,loopcnt 
+0x6910 028803 arg mem_patch00 ,contw 
+0x6911 028804 arg 0 ,temp 
+:      028805 phci_grp_vendor_done_loop:
+0x6912 028806 ifetch 1 ,contu 
+0x6913 028807 istore 1 ,contw 
+0x6914 028808 iadd temp ,temp 
+0x6915 028809 loop phci_grp_vendor_done_loop 
+0x6916 028810 and temp ,0xff ,temp 
+0x6917 028811 ifetch 1 ,contu 
+0x6918 028812 isub temp ,null 
+0x6919 028813 nbranch phci_grp_vendor_patch_bad ,zero 
+0x691a 028814 jam 0 ,core_ucode_ctrl 
+0x691b 028815 call hci_normal_reply 
+0x691c 028816 call wait_uarttx 
+0x691d 028817 branch soft_reset 
+:      028819 phci_grp_vendor_patch_bad:
+0x691e 028820 jam 0 ,core_ucode_ctrl 
+0x691f 028821 branch hci_send_event_command_complete_error_command_nuknown 
+:      028824 phci_grp_vendor_mem:
+0x6920 028825 ifetch 1 ,contu 
+0x6921 028826 copy pdata ,loopcnt 
+0x6922 028827 ifetch 2 ,contu 
+0x6923 028828 copy pdata ,contw 
+0x6924 028829 call uart_copy_rx_bytes 
+0x6925 028830 branch hci_normal_reply 
+:      028832 phci_grp_vendor_flow_control:
+0x6926 028833 fetch 1 ,core_uart_ctrl 
+0x6927 028834 set1 bit_uart_control_flow_control ,pdata 
+0x6928 028835 store 1 ,core_uart_ctrl 
+0x6929 028836 branch hci_normal_reply 
+:      028839 hci_normal_reply:
+0x692a 028840 branch hci_send_event_command_complete_without_payload 
+:      028842 hci_send_event_command_complete_error_command_nuknown:
+0x692b 028843 jam command_unknown ,mem_hci_command_complete_return_parameter 
+0x692c 028844 branch hci_send_event_command_complete_without_payload + 1 
+:      028845 hci_send_event_command_complete_error_command_disallowed:
+0x692d 028846 jam command_disallowed ,mem_hci_command_complete_return_parameter 
+0x692e 028847 branch hci_send_event_command_complete_without_payload + 1 
+:      028848 hci_send_event_command_complete_without_payload:
+0x692f 028849 jam command_succeeded ,mem_hci_command_complete_return_parameter 
+0x6930 028850 arg 1 ,loopcnt 
+0x6931 028851 branch hci_send_event_command_complete 
+:      028853 hci_send_event_command_complete:
+0x6932 028854 jam hci_event_command_complete ,mem_hci_event_head_event_code 
+0x6933 028855 add loopcnt ,3 ,pdata 
+0x6934 028856 store 1 ,mem_hci_event_para_total_length 
+0x6935 028857 call hci_prepare_send_event 
+0x6936 028858 fetch 3 ,mem_hci_command_complete_num_hci_command_packet 
+0x6937 028859 istore 3 ,contwu 
+0x6938 028861 arg mem_hci_command_complete_return_parameter ,contr 
+0x6939 028862 call uart_copy_tx_bytes 
+0x693a 028863 branch uarta_send_register_pop 
+:      028867 hci_prepare_send_event:
+0x693b 028868 call uarta_prepare_tx_register_push 
+0x693c 028869 fetch 3 ,mem_hci_event_head_type 
+0x693d 028870 istore 3 ,contwu 
+0x693e 028871 rtn 
+:      028873 hci_drop_current_packet:
+0x693f 028874 call uarta_prepare_rx 
+0x6940 028875 increase 3 ,contru 
+0x6941 028876 ifetch 1 ,contru 
+0x6942 028877 iadd contru ,contru 
+0x6943 028878 branch uarta_rxdone 
+:      028880 cmd_exit:
+0x6944 028881 jam 0 ,mem_hci_cmd 
+0x6945 028882 rtn 
+:      028889 l2cap_init:
+0x6946 028890 branch l2cap_init_wake ,wake 
+0x6947 028891 setarg mem_l2cap_xmem_end 
+0x6948 028892 arg mem_l2cap_xmem_start ,contw 
+0x6949 028893 isub contw ,loopcnt 
+0x694a 028894 call clear_mem 
+:      028895 l2cap_init_wake:
+0x694b 028897 rtn 
+:      028901 check_l2cap_map:
+0x694c 028902 arg 0 ,queue 
+0x694d 028903 arg 0 ,regb 
+:      028905 check_l2cap_map_loop:
+0x694e 028906 sub queue ,7 ,null 
+0x694f 028907 nrtn positive 
+0x6950 028908 qisolate1 rega 
+0x6951 028909 branch check_l2cap_map_used ,true 
+0x6952 028910 branch check_l2cap_map_used2 
+:      028912 check_l2cap_map_used:
+0x6953 028913 copy temp ,pdata 
+0x6954 028914 branch check_l2cap_map_used2 ,blank 
+0x6955 028915 qset1 regb 
+0x6956 028916 increase -1 ,temp 
+:      028918 check_l2cap_map_used2:
+0x6957 028919 increase 1 ,queue 
+0x6958 028920 branch check_l2cap_map_loop 
+:      028933 ble_l2cap_malloc:
+0x6959 028934 fetchr regd ,2 ,mem_ble_l2cap_tx_buff0_ptr 
+0x695a 028935 fetchr rege ,2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0x695b 028936 call disable_user 
+0x695c 028937 branch host_l2cap_malloc 
+:      028939 host_l2cap_malloc:
+0x695d 028940 bpatch patch16_6 ,mem_patch16 
+0x695e 028941 call l2cap_malloc_is_fifo_full 
+0x695f 028942 nbranch assert ,blank 
+0x6960 028943 call l2cap_malloc_get_full_map 
+0x6961 028944 arg 8 ,loopcnt 
+:      028945 host_l2cap_malloc_loop:
+0x6962 028946 fetcht 1 ,mem_used_map 
+0x6963 028947 sub loopcnt ,8 ,queue 
+0x6964 028948 qisolate1 temp 
+0x6965 028949 branch host_l2cap_malloc_next_buffer ,true 
+0x6966 028950 call host_l2cap_malloc_check_buffer_enough 
+0x6967 028951 nbranch host_l2cap_malloc_next_buffer ,positive 
+0x6968 028952 call host_l2cap_malloc_into_fifo 
+0x6969 028953 branch host_l2cap_malloc_succ 
+:      028954 host_l2cap_malloc_next_buffer:
+0x696a 028955 copy rege ,pdata 
+0x696b 028956 iadd regd ,regd 
+0x696c 028957 loop host_l2cap_malloc_loop 
+0x696d 028958 branch assert 
+:      028959 host_l2cap_malloc_succ:
+0x696e 028960 copy regd ,pdata 
+0x696f 028961 copy regd ,contw 
+0x6970 028962 rtn 
+:      028971 host_l2cap_malloc_check_buffer_enough:
+0x6971 028972 bpatch patch16_7 ,mem_patch16 
+0x6972 028973 sub loopcnt ,8 ,queue 
+0x6973 028974 arg 0 ,temp 
+0x6974 028975 arg 0 ,timeup 
+:      028976 host_l2cap_malloc_check_buffer_enough_loop:
+0x6975 028977 copy queue ,pdata 
+0x6976 028978 beq 8 ,host_l2cap_malloc_check_buffer_enough_end 
+0x6977 028979 fetch 1 ,mem_used_map 
+0x6978 028980 qisolate1 pdata 
+0x6979 028981 branch host_l2cap_malloc_check_buffer_enough_end ,true 
+0x697a 028982 qset1 timeup 
+0x697b 028983 copy rege ,pdata 
+0x697c 028984 iadd temp ,temp 
+0x697d 028985 increase 1 ,queue 
+0x697e 028986 copy rega ,pdata 
+0x697f 028987 isub temp ,null 
+0x6980 028988 branch host_l2cap_malloc_check_buffer_enough_end ,zero 
+0x6981 028989 branch host_l2cap_malloc_check_buffer_enough_loop ,positive 
+:      028990 host_l2cap_malloc_check_buffer_enough_end:
+0x6982 028991 copy temp ,pdata 
+0x6983 028992 isub rega ,null 
+0x6984 028993 nrtn zero 
+0x6985 028994 qset1 timeup 
+0x6986 028995 rtn 
+:      029004 host_l2cap_malloc_into_fifo:
+0x6987 029005 bpatch patch17_0 ,mem_patch17 
+0x6988 029006 call l2cap_malloc_is_fifo_full 
+0x6989 029007 nbranch assert ,blank 
+0x698a 029008 call l2cap_malloc_is_fifo_empty 
+0x698b 029009 branch host_l2cap_malloc_into_fifo_no_push ,blank 
+0x698c 029010 fetch 9 ,mem_tx_fifo1 
+0x698d 029011 store 9 ,mem_tx_fifo0 
+0x698e 029012 setarg 0 
+0x698f 029013 istore 3 ,contw 
+:      029014 host_l2cap_malloc_into_fifo_no_push:
+0x6990 029015 storer timeup ,1 ,mem_tx_fifo3_map 
+0x6991 029016 storer regd ,2 ,mem_tx_fifo3_ptr 
+0x6992 029017 rtn 
+:      029026 l2cap_malloc_fifo_out:
+0x6993 029027 bpatch patch17_1 ,mem_patch17 
+0x6994 029028 call l2cap_malloc_fifo_get_first_ptr 
+0x6995 029029 increase 1 ,contr 
+0x6996 029030 ifetch 2 ,contr 
+0x6997 029031 rtn 
+:      029038 l2cap_malloc_free:
+0x6998 029039 bpatch patch17_2 ,mem_patch17 
+0x6999 029040 call l2cap_malloc_fifo_get_first_ptr 
+0x699a 029041 copy contr ,contw 
+0x699b 029042 copy contr ,temp 
+0x699c 029043 setarg 0 
+0x699d 029044 istore 3 ,contw 
+0x699e 029045 rtn 
+:      029052 l2cap_malloc_discard:
+0x699f 029053 bpatch patch17_3 ,mem_patch17 
+0x69a0 029054 call l2cap_malloc_is_fifo_empty 
+0x69a1 029055 branch assert ,blank 
+0x69a2 029056 fetch 3 ,mem_tx_fifo2 
+0x69a3 029057 store 3 ,mem_tx_fifo3 
+0x69a4 029058 fetch 3 ,mem_tx_fifo1 
+0x69a5 029059 store 3 ,mem_tx_fifo2 
+0x69a6 029060 fetch 3 ,mem_tx_fifo0 
+0x69a7 029061 store 3 ,mem_tx_fifo1 
+0x69a8 029062 rtn 
+:      029070 l2cap_malloc_is_fifo_full:
+0x69a9 029071 bpatch patch17_4 ,mem_patch17 
+0x69aa 029072 fetch 3 ,mem_tx_fifo0 
+0x69ab 029073 rtn 
+:      029081 l2cap_malloc_is_fifo_nearly_full:
+0x69ac 029082 bpatch patch17_5 ,mem_patch17 
+0x69ad 029083 fetch 3 ,mem_tx_fifo1 
+0x69ae 029084 rtn 
+:      029092 l2cap_malloc_is_fifo_empty:
+0x69af 029093 bpatch patch17_6 ,mem_patch17 
+0x69b0 029094 fetch 3 ,mem_tx_fifo3 
+0x69b1 029095 rtn 
+:      029102 l2cap_malloc_fifo_get_first_ptr:
+0x69b2 029103 call l2cap_malloc_is_fifo_empty 
+0x69b3 029104 branch l2cap_malloc_fifo_get_first_ptr_empty ,blank 
+0x69b4 029105 arg mem_tx_fifo0 ,contr 
+:      029106 l2cap_malloc_free_loop:
+0x69b5 029107 ifetch 3 ,contr 
+0x69b6 029108 branch l2cap_malloc_free_loop ,blank 
+:      029109 l2cap_malloc_fifo_get_first_ptr_empty:
+0x69b7 029110 increase -3 ,contr 
+0x69b8 029111 rtn 
+:      029119 l2cap_malloc_get_full_map:
+0x69b9 029120 bpatch patch17_7 ,mem_patch17 
+0x69ba 029121 arg 4 ,loopcnt 
+0x69bb 029122 arg mem_tx_fifo0_map ,contr 
+0x69bc 029123 arg 0 ,temp 
+:      029124 l2cap_malloc_get_full_map_loop:
+0x69bd 029125 ifetch 3 ,contr 
+0x69be 029126 and pdata ,0xff ,pdata 
+0x69bf 029127 ior temp ,temp 
+0x69c0 029128 loop l2cap_malloc_get_full_map_loop 
+0x69c1 029129 storet 1 ,mem_used_map 
+0x69c2 029130 rtn 
+:      029133 l2cap_lpm_get_wake_lock:
+0x69c3 029134 arg wake_lock_l2cap_tx ,queue 
+0x69c4 029135 branch lpm_get_wake_lock 
+:      029137 l2cap_lpm_put_wake_lock:
+0x69c5 029138 arg wake_lock_l2cap_tx ,queue 
+0x69c6 029139 branch lpm_put_wake_lock 
+:      029150 twspi_reset:
+0x69c7 029151 bpatch patch18_1 ,mem_patch18 
+0x69c8 029152 sub temp ,ui_button_gpio_disable ,null 
+0x69c9 029153 rtn zero 
+0x69ca 029154 copy temp ,pdata 
+0x69cb 029155 and_into 0xff ,pdata 
+0x69cc 029156 sub pdata ,gpio_number + -1 ,null 
+0x69cd 029157 nbranch twspi_reset_ext ,positive 
+0x69ce 029158 arg core_gpio_conf ,contw 
+:      029159 twspi_reset_next:
+0x69cf 029160 iadd contw ,contw 
+0x69d0 029161 copy contw ,rega 
+0x69d1 029162 arg gpcfg_output_low ,temp 
+0x69d2 029163 istoret 1 ,contw 
+0x69d3 029164 call twspi_disable 
+0x69d4 029165 nop 30 
+0x69d5 029166 copy rega ,contw 
+0x69d6 029167 arg gpcfg_output_high ,temp 
+0x69d7 029168 istoret 1 ,contw 
+0x69d8 029169 branch twspi_enable 
+:      029171 twspi_reset_ext:
+0x69d9 029172 arg core_gpio_conf_hi ,contw 
+0x69da 029173 increase -16 ,pdata 
+0x69db 029174 branch twspi_reset_next 
+:      029177 twspi_disable:
+0x69dc 029178 fetch 1 ,core_spid_delay 
+0x69dd 029179 and_into 0x7f ,pdata 
+0x69de 029180 store 1 ,core_spid_delay 
+0x69df 029181 rtn 
+:      029183 twspi_enable:
+0x69e0 029184 fetch 1 ,core_spid_delay 
+0x69e1 029185 or_into 0x80 ,pdata 
+0x69e2 029186 store 1 ,core_spid_delay 
+0x69e3 029187 rtn 
+:      029189 twspi_write:
+0x69e4 029190 branch spid_write_reg 
+:      029192 twspi_read:
+0x69e5 029193 branch spid_read_reg 
+:      029197 aes_disable:
+0x69e6 029198 fetch 1 ,core_bist_ctrl 
+0x69e7 029199 set0 aes_en ,pdata 
+0x69e8 029200 store 1 ,core_bist_ctrl 
+0x69e9 029201 rtn 
+:      029203 read_function_aes:
+0x69ea 029204 nbranch read_function ,user 
+0x69eb 029205 fetch 1 ,core_bist_ctrl 
+0x69ec 029206 set1 aes_en ,pdata 
+0x69ed 029207 store 1 ,core_bist_ctrl 
+:      029208 read_function:
+0x69ee 029209 copy temp ,null 
+0x69ef 029210 branch read_fuction_zero ,zero 
+0x69f0 029211 copy regc ,pc 
+:      029213 read_fuction_zero:
+0x69f1 029214 isolate0 0 ,null 
+0x69f2 029215 branch set_ucode_status 
+:      029218 get_block_header:
+0x69f3 029219 force 4 ,temp 
+:      029220 get_block_header0:
+0x69f4 029221 arg mem_ucode_buf ,rega 
+0x69f5 029222 call aes_disable 
+0x69f6 029223 call read_function 
+0x69f7 029224 arg 0x55aa ,rega 
+0x69f8 029225 fetch 2 ,mem_ucode_buf 
+0x69f9 029226 ifetcht 2 ,contr 
+0x69fa 029227 isub rega ,null 
+0x69fb 029228 rtn 
+:      029231 read_first_block:
+0x69fc 029232 call load_aes_reinit ,user 
+0x69fd 029233 arg 2 ,temp 
+0x69fe 029234 arg mem_ucode_ptr ,rega 
+0x69ff 029235 call read_function 
+0x6a00 029236 fetch 2 ,mem_ucode_ptr 
+:      029237 read_first_block_cont:
+0x6a01 029238 store 2 ,mem_addr_mi 
+0x6a02 029239 call get_iv ,user 
+0x6a03 029240 rtn 
+:      029242 get_iv:
+0x6a04 029243 arg 16 ,temp 
+0x6a05 029244 arg mem_ucode_keybuf ,rega 
+0x6a06 029245 call aes_disable 
+0x6a07 029246 call read_function 
+:      029247 set_iv:
+0x6a08 029248 arg mem_ucode_keybuf ,contr 
+0x6a09 029249 arg 16 ,loopcnt 
+0x6a0a 029250 call aes_load_data 
+0x6a0b 029251 call aes_init 
+0x6a0c 029252 call aes_clear_data 
+0x6a0d 029253 branch do_aes_cbc 
+:      029255 load_aes_reinit:
+0x6a0e 029256 jam 0x0 ,core_ucode_ctrl 
+0x6a0f 029257 call aes_disable 
+0x6a10 029258 branch aes_clear_data 
+:      029260 load_storage:
+0x6a11 029261 setarg 0 
+0x6a12 029262 store 2 ,mem_queue 
+0x6a13 029263 disable match 
+0x6a14 029264 call get_block_header 
+0x6a15 029265 nrtn zero 
+0x6a16 029266 enable match 
+0x6a17 029267 setarg 0x8000 
+0x6a18 029268 store 3 ,core_ucode_hi 
+0x6a19 029269 arg core_ucode_data ,rega 
+0x6a1a 029270 call read_function_aes 
+0x6a1b 029271 jam 0x0 ,core_ucode_ctrl 
+0x6a1c 029272 fetch 1 ,mem_ucode_status 
+0x6a1d 029273 rtnbit0 0 
+:      029274 load_storage_loop:
+0x6a1e 029275 arg 6 ,temp 
+0x6a1f 029276 call get_block_header0 
+0x6a20 029277 nbranch load_data_checksum_compare ,zero 
+0x6a21 029278 ifetchr rega ,2 ,contr 
+0x6a22 029279 call read_function 
+0x6a23 029280 call load_data_checksum_calc 
+0x6a24 029281 branch load_storage_loop 
+:      029284 load_data_checksum_calc:
+0x6a25 029285 fetch 2 ,mem_queue 
+0x6a26 029286 arg 6 ,loopcnt 
+0x6a27 029287 arg mem_ucode_buf ,contr 
+0x6a28 029288 call cal_sum 
+0x6a29 029289 fetchr loopcnt ,2 ,mem_ucode_len 
+0x6a2a 029290 copy rega ,contr 
+0x6a2b 029291 call cal_sum 
+0x6a2c 029292 store 2 ,mem_queue 
+0x6a2d 029293 rtn 
+:      029295 load_data_checksum_compare:
+0x6a2e 029296 fetch 1 ,mem_otp_load_check_sum 
+0x6a2f 029297 beq 0x5a ,load_data_checksum_ok 
+0x6a30 029298 arg 0xaa55 ,rega 
+0x6a31 029299 fetch 2 ,mem_ucode_buf 
+0x6a32 029300 isub rega ,null 
+0x6a33 029301 nbranch load_data_checksum_compare_fail ,zero 
+0x6a34 029302 arg 0x55aa ,rega 
+0x6a35 029303 fetch 2 ,mem_ucode_len 
+0x6a36 029304 isub rega ,null 
+0x6a37 029305 nbranch load_data_checksum_compare_fail ,zero 
+0x6a38 029306 fetch 2 ,mem_sched_addr 
+0x6a39 029307 fetcht 2 ,mem_queue 
+0x6a3a 029308 isub temp ,null 
+0x6a3b 029309 nbranch load_data_checksum_compare_fail ,zero 
+:      029310 load_data_checksum_ok:
+0x6a3c 029311 set1 15 ,rega 
+0x6a3d 029312 branch read_fuction_zero 
+:      029314 load_data_checksum_compare_fail:
+0x6a3e 029315 jam 0 ,mem_ucode_status 
+0x6a3f 029316 rtn 
+:      029319 loadcode_lock_load_ucode:
+0x6a40 029322 and pdata ,0xff ,pdata 
+0x6a41 029323 rshift4 pdata ,pdata 
+0x6a42 029324 store 1 ,mem_device_option 
+0x6a43 029325 branch loadcode_load_key 
+:      029327 loadcode_lock:
+0x6a44 029328 fetch 2 ,core_ucode_flag 
+0x6a45 029329 nbranch loadcode_lock_load_ucode ,blank 
+0x6a46 029330 call loadcode_load_key 
+0x6a47 029331 fetch 2 ,mem_device_option 
+0x6a48 029332 rtn blank 
+0x6a49 029333 call loadcode_set_lock 
+0x6a4a 029334 branch lpm_write_lock 
+:      029336 loadcode_set_lock:
+0x6a4b 029337 fetch 1 ,mem_device_option 
+0x6a4c 029338 rtn blank 
+0x6a4d 029339 and pdata ,0xf ,temp 
+0x6a4e 029340 storet 1 ,mem_device_option 
+0x6a4f 029341 rshift4 pdata ,pdata 
+0x6a50 029342 ixor temp ,pdata 
+0x6a51 029343 bne 0xf ,app_lpm_mpu_lock_24g_ble 
+0x6a52 029344 branch app_lpm_lock_check 
+:      029346 load_otp_hv_vsel:
+0x6a53 029347 fetch 1 ,mem_otp_hv_sel 
+0x6a54 029348 ncall lpm_save_sel_hv ,blank 
+0x6a55 029349 fetch 1 ,mem_otp_ldo_vsel 
+0x6a56 029350 rtn blank 
+0x6a57 029351 store 1 ,mem_lpm_ldo_sel 
+0x6a58 029352 branch lpm_write_io_vsel 
+:      029354 loadcode_load_key:
+0x6a59 029355 disable user 
+0x6a5a 029356 fetch 1 ,mem_ucode_flag 
+0x6a5b 029357 rtnbit0 otp_uflag_aes 
+0x6a5c 029358 call loadcode_check_otp_lock 
+0x6a5d 029359 arg otp_offset_ucode_key_l ,pdata 
+0x6a5e 029360 iadd regb ,regb 
+0x6a5f 029361 force 16 ,loopcnt 
+0x6a60 029362 arg mem_ucode_keybuf ,rega 
+0x6a61 029363 call otp_read_data 
+0x6a62 029364 jam otp_key_lock ,core_misc_ctrl 
+0x6a63 029365 arg mem_ucode_keybuf ,contr 
+0x6a64 029366 call load_key 
+0x6a65 029368 arg mem_ucode_keybuf ,contw 
+0x6a66 029369 call memset0_16 
+0x6a67 029370 branch enable_user 
+:      029373 loadcode:
+0x6a68 029374 jam 0x25 ,core_clkoff 
+0x6a69 029375 call enable_otp_read 
+0x6a6a 029376 arg otp_offset_patch_ptr ,regb 
+0x6a6b 029377 force 11 ,loopcnt 
+0x6a6c 029378 arg mem_ucode_ptr ,rega 
+0x6a6d 029379 call otp_read_data1 
+0x6a6e 029380 fetchr regf ,5 ,mem_ucode_ptr 
+0x6a6f 029381 fetch 1 ,mem_ucode_flag 
+0x6a70 029382 bbit0 otp_uflag_bist ,loadcode_nobist 
+0x6a71 029383 jam 0x7 ,core_bist_ctrl 
+:      029384 loadcode_bistwait:
+0x6a72 029385 fetch 1 ,core_bist_done 
+0x6a73 029386 bne 7 ,loadcode_bistwait 
+0x6a74 029387 fetch 1 ,core_bist_fail 
+0x6a75 029388 lshift4 pdata ,pdata 
+0x6a76 029389 store 1 ,core_bist_ctrl 
+0x6a77 029390 branch loadcode_otp 
+:      029392 loadcode_nobist:
+0x6a78 029393 call set_bistfix 
+0x6a79 029394 call clean_xmem 
+0x6a7a 029395 call clean_smem 
+:      029396 loadcode_otp:
+0x6a7b 029397 storer regf ,5 ,mem_ucode_ptr 
+0x6a7c 029399 call loadcode_check_otp_lock 
+0x6a7d 029400 arg otp_offset_adc_param_l ,pdata 
+0x6a7e 029401 iadd regb ,regb 
+0x6a7f 029402 arg 32 ,loopcnt 
+0x6a80 029403 arg mem_otp_temp ,rega 
+0x6a81 029404 call otp_read_data 
+0x6a82 029406 call load_otp_hv_vsel 
+0x6a83 029407 call loadcode_lock 
+0x6a84 029409 fetch 1 ,mem_ucode_flag 
+0x6a85 029410 bbit0 otp_uflag_aes ,loadcode_unenc 
+0x6a86 029411 fetcht 1 ,mem_peripheral_lock_flag 
+0x6a87 029412 arg 0 ,pdata 
+0x6a88 029413 set1 otp_not_limit ,pdata 
+0x6a89 029414 set1 otp_limit ,pdata 
+0x6a8a 029415 iand temp ,rega 
+0x6a8b 029416 sub rega ,0 ,null 
+0x6a8c 029417 branch loadcode_error ,zero 
+0x6a8d 029418 isub rega ,null 
+0x6a8e 029419 branch loadcode_error ,zero 
+:      029420 loadcode_unenc:
+0x6a8f 029421 jam 0 ,mem_loadcode_times 
+0x6a90 029422 arg otp_load_code ,regc 
+:      029423 loadcode_otp_loop:
+0x6a91 029424 call loadcode_timeout 
+0x6a92 029425 nbranch loadcode_error ,positive 
+0x6a93 029426 fetch 2 ,mem_ucode_ptr 
+0x6a94 029427 branch loadcode_otp_end ,blank 
+0x6a95 029428 call read_first_block_cont 
+0x6a96 029429 call load_storage 
+0x6a97 029430 nbranch loadcode_otp_end ,match 
+0x6a98 029431 fetch 1 ,mem_ucode_status 
+0x6a99 029432 compare 3 ,pdata ,3 
+0x6a9a 029433 nbranch loadcode_otp_loop ,true 
+0x6a9b 029434 call run_otp_code 
+:      029435 loadcode_otp_end:
+0x6a9c 029436 call disable_otp 
+0x6a9d 029437 jam 0 ,mem_loadcode_times 
+:      029438 loadcode_iic_loop:
+0x6a9e 029439 call loadcode_timeout 
+0x6a9f 029440 nbranch loadcode_error ,positive 
+0x6aa0 029441 call iicd_load_gpio_init 
+0x6aa1 029442 call clear_eeprom_size_2k 
+0x6aa2 029443 fetch 1 ,mem_ucode_flag 
+0x6aa3 029444 bbit1 otp_uflag_skip_eep ,loadcode_spi 
+0x6aa4 029445 call loadcode_iic_by_eeprom 
+0x6aa5 029446 nbranch loadcode_iic_eeprom_2k ,match 
+0x6aa6 029447 fetch 1 ,mem_ucode_status 
+0x6aa7 029448 compare 3 ,pdata ,3 
+0x6aa8 029449 nbranch loadcode_iic_loop ,true 
+0x6aa9 029450 branch loadcode_spi 
+:      029452 run_otp_code:
+0x6aaa 029453 setarg 0x1ff 
+0x6aab 029454 arg 0 ,pc 
+0x6aac 029455 rtn 
+:      029457 loadcode_check_otp_lock:
+0x6aad 029458 arg otp_offset_h ,regb 
+0x6aae 029459 fetch 1 ,core_peripheral_lock 
+0x6aaf 029460 bbit1 otp_limit ,loadcode_otp_lock 
+0x6ab0 029461 fetch 1 ,mem_peripheral_lock_flag 
+0x6ab1 029462 rtnbit0 otp_limit 
+:      029463 loadcode_otp_lock:
+0x6ab2 029464 arg 0 ,regb 
+0x6ab3 029465 rtn 
+:      029468 loadcode_iic_eeprom_2k:
+0x6ab4 029469 call set_eeprom_size_2k 
+0x6ab5 029470 fetch 1 ,mem_ucode_flag 
+0x6ab6 029471 bbit1 otp_uflag_skip_eep ,loadcode_spi 
+0x6ab7 029472 call loadcode_iic_by_eeprom 
+0x6ab8 029473 nbranch loadcode_spi ,match 
+0x6ab9 029474 fetch 1 ,mem_ucode_status 
+0x6aba 029475 compare 3 ,pdata ,3 
+0x6abb 029476 nbranch loadcode_iic_loop ,true 
+0x6abc 029477 branch loadcode_hci 
+:      029479 loadcode_spi:
+0x6abd 029480 jam 0 ,mem_loadcode_times 
+:      029481 loadcode_spi_loop:
+0x6abe 029482 call loadcode_timeout 
+0x6abf 029483 nbranch loadcode_error ,positive 
+0x6ac0 029484 fetch 1 ,mem_ucode_flag 
+0x6ac1 029485 bbit1 otp_uflag_skip_flash ,loadcode_hci 
+0x6ac2 029486 call spid_init_flash 
+0x6ac3 029487 nop 200 
+0x6ac4 029488 call spid_flash_release_form_powerdown 
+0x6ac5 029489 nop 100 
+0x6ac6 029490 arg spid_load_flash ,regc 
+0x6ac7 029491 call read_first_block 
+0x6ac8 029492 call load_storage 
+0x6ac9 029493 nbranch loadcode_hci ,match 
+0x6aca 029494 fetch 1 ,mem_ucode_status 
+0x6acb 029495 compare 3 ,pdata ,3 
+0x6acc 029496 nbranch loadcode_spi_loop ,true 
+:      029498 loadcode_hci:
+0x6acd 029499 call clear_key_buf 
+0x6ace 029500 fetch 1 ,mem_ucode_flag 
+0x6acf 029501 rtnbit0 otp_uflag_hci 
+0x6ad0 029502 branch hci_init 
+:      029504 clear_key_buf:
+0x6ad1 029505 arg mem_ucode_keybuf ,contw 
+0x6ad2 029506 call memset0_16 
+0x6ad3 029507 force regidx_key ,regext_index 
+0x6ad4 029508 call aes_clear 
+0x6ad5 029509 jam 0x21 ,core_clkoff 
+0x6ad6 029510 rtn 
+:      029512 iicd_load_gpio_init:
+0x6ad7 029513 fetch 1 ,mem_eeprom_sda_gpio 
+0x6ad8 029514 fetcht 1 ,mem_eeprom_scl_gpio 
+0x6ad9 029515 isub temp ,null 
+0x6ada 029516 nbranch iicd_read_init_pin ,zero 
+:      029517 iicd_load_default_gpio:
+0x6adb 029518 jam 4 ,mem_eeprom_wp_gpio 
+0x6adc 029519 jam 23 ,mem_eeprom_scl_gpio 
+0x6add 029520 jam 22 ,mem_eeprom_sda_gpio 
+0x6ade 029521 branch iicd_read_init_pin 
+:      029525 loadcode_iic_by_eeprom:
+0x6adf 029526 setarg 0x0 
+0x6ae0 029527 store 2 ,mem_addr_mi 
+0x6ae1 029528 arg iicd_read_eep ,regc 
+0x6ae2 029529 call iic_init_600khz 
+0x6ae3 029530 call read_first_block 
+0x6ae4 029531 branch load_storage 
+:      029536 loadcode_timeout:
+0x6ae5 029537 call loadcode_error_delay 
+0x6ae6 029538 fetch 1 ,mem_loadcode_times 
+0x6ae7 029539 increase 1 ,pdata 
+0x6ae8 029540 sub pdata ,3 ,null 
+0x6ae9 029541 store 1 ,mem_loadcode_times 
+0x6aea 029542 rtn 
+:      029544 loadcode_error_delay:
+0x6aeb 029545 fetch 1 ,mem_loadcode_times 
+0x6aec 029546 rtn blank 
+0x6aed 029547 fetch 1 ,mem_otp_load_delay 
+0x6aee 029548 rtn blank 
+0x6aef 029549 copy pdata ,loopcnt 
+0x6af0 029550 branch delay_ms_wait 
+:      029553 loadcode_error:
+0x6af1 029554 call clear_key_buf 
+0x6af2 029555 call aes_disable 
+0x6af3 029557 call ice_break 
+0x6af4 029558 rtn 
+:      029560 set_bistfix:
+0x6af5 029561 and_into 0xe0 ,pdata 
+0x6af6 029562 rshift pdata ,pdata 
+0x6af7 029563 store 1 ,core_bist_ctrl 
+0x6af8 029564 setarg 1 
+0x6af9 029565 arg mem_bistfix_val ,contr 
+:      029566 set_bistfix_loop:
+0x6afa 029567 ifetcht 2 ,contr 
+0x6afb 029568 storet 2 ,core_lpm_reg 
+0x6afc 029569 store 1 ,core_set_bistfix 
+0x6afd 029570 lshift pdata ,pdata 
+0x6afe 029571 bbit0 3 ,set_bistfix_loop 
+0x6aff 029572 rtn 
+:      029575 set_ucode_status:
+0x6b00 029576 fetch 1 ,mem_ucode_status 
+0x6b01 029577 lshift pdata ,pdata 
+0x6b02 029578 setflag true ,0 ,pdata 
+0x6b03 029579 isolate0 15 ,rega 
+0x6b04 029580 rtn true 
+0x6b05 029581 store 1 ,mem_ucode_status 
+0x6b06 029582 rtn 
+:      029585 decrypt_code:
+0x6b07 029586 fetch 1 ,core_bist_ctrl 
+0x6b08 029587 rtnbit0 aes_en 
+0x6b09 029588 branch decrypt_code_skip 
+:      029589 decrypt_code_loop:
+0x6b0a 029590 fetch 1 ,core_dma_status 
+0x6b0b 029591 qisolate1 pdata 
+0x6b0c 029592 rtn true 
+:      029593 decrypt_code_skip:
+0x6b0d 029594 fetch 1 ,core_misc_status 
+0x6b0e 029595 bbit0 1 ,decrypt_code_loop 
+0x6b0f 029596 call do_aes_cbc 
+0x6b10 029597 branch decrypt_code_loop 
+:      029617 load_ucode:
+0x6b11 029618 fetch 2 ,mem_patch_ptr 
+0x6b12 029619 rtn blank 
+0x6b13 029620 jam 0x80 ,core_ucode_ctrl 
+0x6b14 029621 jam 0 ,core_ucode_hi 
+0x6b15 029622 jam 0 ,core_ucode_low 
+0x6b16 029623 fetcht 2 ,mem_patch_len 
+0x6b17 029624 lshift2 temp ,loopcnt 
+0x6b18 029625 iforce contr 
+:      029626 load_ucode_loop:
+0x6b19 029627 ifetch 1 ,contr 
+0x6b1a 029628 store 1 ,core_ucode_data 
+0x6b1b 029629 loop load_ucode_loop 
+0x6b1c 029630 jam 0x0 ,core_ucode_ctrl 
+0x6b1d 029631 rtn 
+:      029638 otp_load_code:
+0x6b1e 029639 copy temp ,loopcnt 
+0x6b1f 029640 fetch 2 ,mem_addr_mi 
+0x6b20 029641 iadd temp ,temp 
+0x6b21 029642 storet 2 ,mem_addr_mi 
+0x6b22 029643 iforce regb 
+0x6b23 029644 copy rega ,nap 
+0x6b24 029645 jam init_key ,core_misc_ctrl 
+0x6b25 029646 call otp_read_data 
+0x6b26 029647 copy nap ,rega 
+0x6b27 029648 isolate0 15 ,rega 
+0x6b28 029649 rtn true 
+0x6b29 029650 call enable_true ,blank 
+0x6b2a 029651 branch set_ucode_status 
+:      029654 otp_enable_chgpump25:
+0x6b2b 029655 jam 0x1 ,core_chgpump_ctrl 
+0x6b2c 029656 nop 300 
+0x6b2d 029657 jam 0x5 ,core_chgpump_ctrl 
+0x6b2e 029658 nop 100 
+0x6b2f 029659 jam 0x25 ,core_chgpump_ctrl 
+0x6b30 029660 nop 1000 
+0x6b31 029661 jam 0x27 ,core_chgpump_ctrl 
+0x6b32 029662 nop 300 
+0x6b33 029663 rtn 
+:      029665 otp_enable_chgpump65:
+0x6b34 029666 call otp_enable_chgpump25 
+0x6b35 029667 jam 0x3f ,core_chgpump_ctrl 
+0x6b36 029668 rtn 
+:      029670 disable_otp:
+0x6b37 029671 jam 0x83 ,core_otp_ctrl 
+:      029672 otp_disable_chgpump:
+0x6b38 029673 jam 0 ,core_chgpump_ctrl 
+0x6b39 029674 rtn 
+:      029676 enable_otp_read:
+0x6b3a 029677 call otp_enable_chgpump25 
+:      029679 otp_reset:
+0x6b3b 029680 jam 0x82 ,core_otp_ctrl 
+0x6b3c 029681 nop 12 
+0x6b3d 029682 jam 0x80 ,core_otp_ctrl 
+0x6b3e 029683 jam 0x82 ,core_otp_ctrl 
+0x6b3f 029684 nop 150 
+0x6b40 029685 rtn 
+:      029688 otp_set_addr:
+0x6b41 029689 lshift3 regb ,regb 
+0x6b42 029690 storer regb ,2 ,core_otp_addr 
+0x6b43 029691 jam 0 ,core_otp_din 
+0x6b44 029692 rtn 
+:      029695 otp_write:
+0x6b45 029696 bpatch patch18_4 ,mem_patch18 
+0x6b46 029697 call otp_enable_chgpump65 
+0x6b47 029698 call otp_set_addr 
+0x6b48 029699 call otp_reset 
+:      029700 otp_program:
+0x6b49 029701 ifetcht 1 ,rega 
+0x6b4a 029702 increase 1 ,rega 
+0x6b4b 029703 force 0 ,queue 
+:      029704 otp_program_bit:
+0x6b4c 029705 qisolate0 temp 
+0x6b4d 029706 branch otp_skip_0 ,true 
+0x6b4e 029707 fetch 1 ,core_otp_din 
+0x6b4f 029708 set1 6 ,pdata 
+0x6b50 029709 set1 7 ,pdata 
+0x6b51 029710 store 1 ,core_otp_din 
+0x6b52 029711 jam 0x02 ,core_otp_ctrl 
+0x6b53 029712 jam 0x82 ,core_otp_ctrl 
+0x6b54 029713 set0 7 ,pdata 
+0x6b55 029714 store 1 ,core_otp_din 
+0x6b56 029715 jam 0x8a ,core_otp_ctrl 
+0x6b57 029716 nop 11 
+0x6b58 029717 jam 0xca ,core_otp_ctrl 
+0x6b59 029718 nop 33 
+0x6b5a 029719 jam 0x4a ,core_otp_ctrl 
+0x6b5b 029720 nop 44 
+0x6b5c 029721 jam 0xca ,core_otp_ctrl 
+0x6b5d 029722 nop 22 
+0x6b5e 029723 jam 0x8a ,core_otp_ctrl 
+0x6b5f 029724 nop 33 
+0x6b60 029725 jam 0x82 ,core_otp_ctrl 
+0x6b61 029726 nop 1 
+0x6b62 029727 jam 0x92 ,core_otp_ctrl 
+0x6b63 029728 nop 10 
+0x6b64 029729 jam 0xb2 ,core_otp_ctrl 
+0x6b65 029730 fetch 1 ,core_otp_rdata 
+0x6b66 029731 jam 0x92 ,core_otp_ctrl 
+0x6b67 029732 nop 1 
+0x6b68 029733 jam 0x82 ,core_otp_ctrl 
+0x6b69 029734 nop 1 
+0x6b6a 029735 qisolate0 pdata 
+0x6b6b 029736 branch otp_program_bit ,true 
+:      029737 otp_skip_0:
+0x6b6c 029738 fetch 2 ,core_otp_addr 
+0x6b6d 029739 increase 1 ,pdata 
+0x6b6e 029740 store 2 ,core_otp_addr 
+0x6b6f 029741 increase 1 ,queue 
+0x6b70 029742 compare 8 ,queue ,0xf 
+0x6b71 029743 nbranch otp_program_bit ,true 
+0x6b72 029744 loop otp_program 
+0x6b73 029745 branch otp_disable_chgpump 
+:      029751 otp_read_data:
+0x6b74 029752 bpatch patch18_5 ,mem_patch18 
+:      029753 otp_read_data1:
+0x6b75 029754 call otp_set_addr 
+0x6b76 029755 jam 0xa2 ,core_otp_ctrl 
+0x6b77 029756 increase 8 ,regb 
+0x6b78 029757 arg 0 ,queue 
+0x6b79 029758 setarg -1 
+:      029759 otp_read_data_loop:
+0x6b7a 029760 fetcht 1 ,core_otp_rdata 
+0x6b7b 029761 istoret 1 ,rega 
+0x6b7c 029762 bcrc temp 
+0x6b7d 029763 jam shift_key ,core_misc_ctrl 
+0x6b7e 029764 storer regb ,2 ,core_otp_addr 
+0x6b7f 029765 isolate1 15 ,rega 
+0x6b80 029766 branch otp_read_noinc ,true 
+0x6b81 029767 increase 1 ,rega 
+0x6b82 029768 branch otp_read_unenc 
+:      029770 otp_read_noinc:
+0x6b83 029771 nbranch otp_read_unenc ,user 
+0x6b84 029772 increase 1 ,queue 
+0x6b85 029773 compare 0 ,queue ,0xf 
+0x6b86 029774 nbranch otp_read_unenc ,true 
+0x6b87 029775 call do_aes_cbc 
+0x6b88 029776 jam init_key ,core_misc_ctrl 
+:      029777 otp_read_unenc:
+0x6b89 029778 increase 8 ,regb 
+0x6b8a 029779 loop otp_read_data_loop 
+0x6b8b 029780 jam 0x82 ,core_otp_ctrl 
+0x6b8c 029781 rtn 
+:      029792 app_lpm_lock_check:
+0x6b8d 029793 fetch 1 ,mem_device_option 
+0x6b8e 029794 beq dvc_op_module ,app_lpm_module_lock 
+0x6b8f 029795 beq dvc_op_dongle ,app_lpm_dongle_lock 
+0x6b90 029797 beq dvc_op_mouse ,app_lpm_mouse_lock 
+0x6b91 029798 beq dvc_op_shutter ,app_lpm_shutter_lock 
+0x6b92 029799 beq dvc_op_shutter_dy ,app_lpm_shutter_lock 
+0x6b93 029800 beq dvc_op_hci_boot ,app_lpm_hciboot_lock 
+0x6b94 029801 beq dvc_op_remote_car ,app_lpm_car_lock_application_and_ble 
+0x6b95 029802 beq dvc_op_car ,app_lpm_car_lock 
+0x6b96 029803 beq dvc_op_mesh ,app_lpm_mesh_lock 
+0x6b97 029804 beq dvc_op_keyboard ,app_lpm_kb_lock 
+0x6b98 029805 branch app_lpm_mpu_lock_24g_ble 
+:      029808 app_lpm_mesh_lock:
+0x6b99 029809 arg car_init ,pdata 
+0x6b9a 029810 arg shutter_dy_shutter_1s_timer ,temp 
+0x6b9b 029811 call app_mpu_s0_lock 
+0x6b9c 029812 branch app_lpm_lock_mesh 
+:      029814 app_lpm_kb_lock:
+0x6b9d 029815 branch app_lpm_lock_mesh 
+:      029818 app_lpm_module_lock:
+:      029819 app_lpm_hciboot_lock:
+0x6b9e 029820 branch app_lpm_mpu_lock_24g 
+:      029823 app_lpm_dongle_lock:
+0x6b9f 029824 arg module_init ,pdata 
+0x6ba0 029825 arg shutter_dy_shutter_1s_timer ,temp 
+0x6ba1 029826 call app_mpu_s0_lock 
+0x6ba2 029827 branch app_lpm_lock_mesh 
+:      029829 app_lpm_mouse_lock:
+0x6ba3 029830 arg car_init ,pdata 
+0x6ba4 029831 arg module_set_state ,temp 
+0x6ba5 029832 call app_mpu_s0_lock 
+0x6ba6 029833 branch app_lpm_lock_mesh 
+:      029835 app_lpm_shutter_lock:
+0x6ba7 029836 arg car_init ,pdata 
+0x6ba8 029837 arg remote_car_moto_data_enable_user ,temp 
+0x6ba9 029838 call app_mpu_s0_lock 
+0x6baa 029839 branch app_lpm_lock_mesh 
+:      029841 app_lpm_car_lock:
+0x6bab 029842 arg dongle_init ,pdata 
+0x6bac 029843 arg shutter_dy_shutter_1s_timer ,temp 
+0x6bad 029844 call app_mpu_s0_lock 
+:      029845 app_lpm_lock_mesh:
+0x6bae 029846 arg ali_mesh_access_layer_resolve_message ,pdata 
+0x6baf 029847 arg ali_mesh_upper_transport_layer_init_queue_param ,temp 
+0x6bb0 029848 branch app_mpu_s1_lock 
+:      029850 app_lpm_car_lock_application_and_ble:
+0x6bb1 029851 arg dongle_init ,pdata 
+0x6bb2 029852 arg shutter_dy_shutter_1s_timer ,temp 
+0x6bb3 029853 call app_mpu_s0_lock 
+0x6bb4 029854 arg le_adv ,pdata 
+0x6bb5 029855 arg le_send_ll_one_lenth ,temp 
+0x6bb6 029856 branch app_mpu_s1_lock 
+:      029859 app_mpu_s0_lock:
+0x6bb7 029860 lshift16 temp ,temp 
+0x6bb8 029861 ior temp ,pdata 
+0x6bb9 029862 branch lpm_write_mpu_s0 
+:      029865 app_lpm_mpu_lock_ble:
+0x6bba 029866 arg le_parse_att ,pdata 
+0x6bbb 029867 arg le_send_ll_one_lenth ,temp 
+:      029868 app_mpu_s1_lock:
+0x6bbc 029869 lshift16 temp ,temp 
+0x6bbd 029870 ior temp ,pdata 
+0x6bbe 029871 branch lpm_write_mpu_s1 
+:      029873 app_lpm_mpu_lock_24g:
+0x6bbf 029874 arg g24_prep ,pdata 
+0x6bc0 029875 arg g24_factory_check ,temp 
+0x6bc1 029876 branch app_mpu_s1_lock 
+:      029878 app_lpm_mpu_lock_24g_ble:
+0x6bc2 029879 call app_lpm_mpu_lock_24g 
+0x6bc3 029880 arg le_parse_att ,pdata 
+0x6bc4 029881 arg le_send_ll_one_lenth ,temp 
+0x6bc5 029882 branch app_mpu_s0_lock 
+:      029888 spid_init:
+0x6bc6 029889 bpatch patch18_6 ,mem_patch18 
+:      029890 spid_init_common:
+0x6bc7 029891 fetch 1 ,mem_spi_init_clk 
+0x6bc8 029892 store 1 ,core_spid_ctrl 
+0x6bc9 029893 fetch 1 ,mem_spi_init_delay_time 
+0x6bca 029894 store 1 ,core_spid_delay 
+0x6bcb 029895 setarg mem_spid_tbuf 
+0x6bcc 029896 store 2 ,core_spid_txaddr 
+0x6bcd 029897 setarg mem_spid_rbuf 
+0x6bce 029898 store 2 ,core_spid_rxaddr 
+0x6bcf 029899 branch twspi_disable 
+:      029904 spid_write_reg:
+0x6bd0 029905 set1 7 ,pdata 
+0x6bd1 029906 store 2 ,mem_spid_tbuf 
+0x6bd2 029907 bpatch patch18_7 ,mem_patch18 
+0x6bd3 029908 jam 2 ,core_spid_txlen 
+0x6bd4 029909 jam 0 ,core_spid_rxlen 
+0x6bd5 029910 jam spid_start ,core_misc_ctrl 
+0x6bd6 029911 branch wait_spid_done 
+:      029914 spid_read_reg:
+0x6bd7 029915 force 1 ,temp 
+:      029916 spid_read_regs:
+0x6bd8 029917 store 1 ,mem_spid_tbuf 
+0x6bd9 029918 bpatch patch19_0 ,mem_patch19 
+0x6bda 029919 jam 1 ,core_spid_txlen 
+0x6bdb 029920 storet 2 ,core_spid_rxlen 
+0x6bdc 029921 jam spid_start ,core_misc_ctrl 
+0x6bdd 029922 call wait_spid_done 
+0x6bde 029923 fetch 1 ,mem_spid_rbuf 
+0x6bdf 029924 rtn 
+:      029927 wait_spid_done:
+0x6be0 029931 nop 5 
+0x6be1 029932 fetch 1 ,core_dma_status 
+0x6be2 029933 bbit0 spid_done ,wait_spid_done 
+0x6be3 029934 rtn 
+:      029942 flash_write:
+0x6be4 029943 disable user 
+0x6be5 029944 copy pdata ,regb 
+0x6be6 029945 fetch 1 ,mem_spi_write_flash_sm 
+0x6be7 029946 rtnne flash_sm_no_buys 
+0x6be8 029947 enable user 
+0x6be9 029948 copy regb ,pdata 
+0x6bea 029949 branch spid_flash_write_start 
+:      029952 flash_write_spi_sm_timer:
+0x6beb 029953 fetch 1 ,mem_spi_write_flash_sm 
+0x6bec 029954 beq flash_sm_start ,spid_flash_write_start 
+0x6bed 029955 beq flash_sm_erase_sector ,spid_flash_erase_sector 
+0x6bee 029956 beq flash_sm_wait_erase_sector ,spid_flash_wait_erase_sector 
+0x6bef 029957 beq flash_sm_write_data ,spid_flash_write_data 
+0x6bf0 029958 beq flash_sm_wait_write_data ,spid_flash_wait_write_data 
+0x6bf1 029959 rtn 
+:      029961 spid_flash_write_start:
+0x6bf2 029962 store 3 ,mem_spi_write_addr 
+0x6bf3 029963 copy rega ,pdata 
+0x6bf4 029964 store 2 ,mem_spi_write_ptr 
+0x6bf5 029965 storet 2 ,mem_spi_write_len 
+0x6bf6 029966 jam flash_sm_erase_sector ,mem_spi_write_flash_sm 
+0x6bf7 029967 branch spid_init_flash 
+:      029969 spid_flash_erase_sector:
+0x6bf8 029970 call spid_init_flash 
+0x6bf9 029971 jam flash_sm_wait_erase_sector ,mem_spi_write_flash_sm 
+0x6bfa 029972 call spid_unlock_flash 
+0x6bfb 029973 arg mem_spid_tbuf ,rega 
+0x6bfc 029974 jam 4 ,core_spid_txlen 
+0x6bfd 029975 fetch 3 ,mem_spi_write_addr 
+0x6bfe 029976 arg flash_command_sector_erase ,temp 
+0x6bff 029977 branch spid_write_flash_common 
+:      029979 spid_flash_wait_erase_sector:
+0x6c00 029980 call spid_init_flash 
+0x6c01 029981 call wait_spid_flash_done 
+0x6c02 029982 jam flash_sm_write_data ,mem_spi_write_flash_sm 
+0x6c03 029983 rtn 
+:      029986 spid_flash_write_data:
+0x6c04 029987 bpatch patch19_1 ,mem_patch19 
+0x6c05 029988 call spid_init_flash 
+0x6c06 029989 jam flash_sm_wait_write_data ,mem_spi_write_flash_sm 
+0x6c07 029990 call spid_unlock_flash 
+0x6c08 029991 call spid_flash_data_preserve 
+0x6c09 029992 call spid_write_flash 
+0x6c0a 029993 branch spid_flash_data_recover 
+:      029994 spid_flash_wait_write_data:
+0x6c0b 029995 call spid_init_flash 
+0x6c0c 029996 call spid_unlock_flash 
+0x6c0d 029997 setarg flash_read_satus 
+0x6c0e 029998 call spid_read_reg 
+0x6c0f 029999 rtnbit1 flash_status_wip 
+0x6c10 030000 jam flash_sm_no_buys ,mem_spi_write_flash_sm 
+0x6c11 030001 fetch 2 ,mem_cb_spi_flash_write_complate 
+0x6c12 030002 branch callback_func 
+:      030003 spid_flash_data_recover:
+0x6c13 030004 fetch 4 ,mem_temp 
+0x6c14 030005 fetcht 2 ,mem_spi_write_ptr 
+:      030006 spid_flash_data_recover_comm:
+0x6c15 030007 increase -4 ,temp 
+0x6c16 030008 istore 4 ,temp 
+0x6c17 030009 rtn 
+:      030011 spid_flash_data_preserve:
+0x6c18 030012 fetcht 2 ,mem_spi_write_ptr 
+0x6c19 030013 copy temp ,rega 
+0x6c1a 030014 increase -4 ,temp 
+0x6c1b 030015 ifetch 4 ,temp 
+0x6c1c 030016 store 4 ,mem_temp 
+0x6c1d 030017 fetcht 2 ,mem_spi_write_len 
+0x6c1e 030018 fetch 3 ,mem_spi_write_addr 
+0x6c1f 030019 rtn 
+:      030021 spid_init_flash:
+0x6c20 030022 bpatch patch19_2 ,mem_patch19 
+0x6c21 030023 call spi_gpio_init 
+0x6c22 030024 call twspi_disable 
+0x6c23 030025 setarg 0 
+0x6c24 030026 store 4 ,mem_spid_tbuf 
+0x6c25 030027 rtn 
+:      030029 spid_unlock_flash:
+0x6c26 030030 jam flash_command_write_enable ,mem_spid_tbuf 
+:      030031 spid_sendcmd_common:
+0x6c27 030032 setarg 0 
+0x6c28 030033 store 2 ,core_spid_rxlen 
+0x6c29 030034 setarg 1 
+0x6c2a 030035 store 2 ,core_spid_txlen 
+0x6c2b 030036 setarg mem_spid_tbuf 
+0x6c2c 030037 store 2 ,core_spid_txaddr 
+0x6c2d 030038 jam spid_start ,core_misc_ctrl 
+0x6c2e 030039 branch wait_spid_done 
+:      030041 spid_flash_release_form_powerdown:
+0x6c2f 030042 jam flash_command_release_from_powerdown ,mem_spid_tbuf 
+0x6c30 030043 branch spid_sendcmd_common 
+:      030045 spid_flash_powerdown:
+0x6c31 030046 jam flash_command_powerdown ,mem_spid_tbuf 
+0x6c32 030047 branch spid_sendcmd_common 
+:      030049 spid_write_flash_data:
+0x6c33 030050 store 3 ,mem_pdatatemp 
+0x6c34 030051 storet 2 ,mem_temp 
+0x6c35 030052 storer rega ,2 ,mem_rega 
+0x6c36 030053 bpatchx patch36_5 ,mem_patch36 
+0x6c37 030054 call spid_unlock_flash 
+0x6c38 030055 fetch 3 ,mem_pdatatemp 
+0x6c39 030056 fetcht 2 ,mem_temp 
+0x6c3a 030057 fetchr rega ,2 ,mem_rega 
+0x6c3b 030058 branch spid_write_flash 
+:      030061 spid_write_flash:
+0x6c3c 030062 increase 4 ,temp 
+0x6c3d 030063 storet 2 ,core_spid_txlen 
+0x6c3e 030064 arg flash_command_write_data ,temp 
+0x6c3f 030065 increase -4 ,rega 
+:      030067 spid_write_flash_common:
+0x6c40 030068 istoret 1 ,rega 
+0x6c41 030069 rshift16 pdata ,temp 
+0x6c42 030070 istoret 1 ,contw 
+0x6c43 030071 rshift8 pdata ,temp 
+0x6c44 030072 istoret 1 ,contw 
+0x6c45 030073 istore 1 ,contw 
+0x6c46 030074 deposit rega 
+0x6c47 030075 store 2 ,core_spid_txaddr 
+0x6c48 030076 setarg 0 
+0x6c49 030077 store 2 ,core_spid_rxlen 
+0x6c4a 030078 jam spid_start ,core_misc_ctrl 
+0x6c4b 030079 call wait_spid_done 
+0x6c4c 030080 branch wait_spid_flash_done 
+:      030084 spid_read_flash:
+0x6c4d 030085 storet 2 ,core_spid_rxlen 
+0x6c4e 030086 rshift16 pdata ,temp 
+0x6c4f 030087 storet 1 ,mem_addr_hi 
+0x6c50 030088 rshift8 pdata ,temp 
+0x6c51 030089 storet 1 ,mem_addr_mi 
+0x6c52 030090 store 1 ,mem_addr_lo 
+0x6c53 030091 setarg 4 
+0x6c54 030092 store 2 ,core_spid_txlen 
+0x6c55 030093 jam flash_command_read_data ,mem_spid_tbuf 
+0x6c56 030094 setarg mem_spid_tbuf 
+0x6c57 030095 store 2 ,core_spid_txaddr 
+0x6c58 030096 deposit rega 
+0x6c59 030097 store 2 ,core_spid_rxaddr 
+0x6c5a 030098 fetch 1 ,core_spid_ctrl 
+0x6c5b 030099 isolate0 15 ,rega 
+0x6c5c 030100 setflag true ,6 ,pdata 
+0x6c5d 030101 store 1 ,core_spid_ctrl 
+0x6c5e 030102 jam spid_start ,core_misc_ctrl 
+:      030103 spid_read_flash_wait:
+0x6c5f 030104 fetch 1 ,core_dma_status 
+0x6c60 030105 bbit1 7 ,spid_read_flash_wait 
+0x6c61 030106 arg spid_done ,queue 
+0x6c62 030107 branch wait_spid_done 
+:      030109 wait_spid_flash_done:
+0x6c63 030110 setarg 2000 
+0x6c64 030111 call sleep 
+0x6c65 030112 call spid_unlock_flash 
+0x6c66 030113 setarg mem_spid_rbuf 
+0x6c67 030114 store 2 ,core_spid_rxaddr 
+0x6c68 030115 setarg flash_read_satus 
+0x6c69 030116 call spid_read_reg 
+0x6c6a 030117 bbit1 flash_status_wip ,wait_spid_flash_done 
+0x6c6b 030118 rtn 
+:      030124 spid_load_flash:
+0x6c6c 030125 storet 2 ,core_spid_rxlen 
+0x6c6d 030126 setarg 4 
+0x6c6e 030127 store 2 ,core_spid_txlen 
+0x6c6f 030128 jam 3 ,mem_spid_tbuf 
+0x6c70 030129 setarg mem_spid_tbuf 
+0x6c71 030130 store 2 ,core_spid_txaddr 
+0x6c72 030131 deposit rega 
+0x6c73 030132 store 2 ,core_spid_rxaddr 
+0x6c74 030133 fetch 1 ,core_spid_ctrl 
+0x6c75 030134 isolate0 15 ,rega 
+0x6c76 030135 setflag true ,6 ,pdata 
+0x6c77 030136 store 1 ,core_spid_ctrl 
+0x6c78 030137 jam spid_start ,core_misc_ctrl 
+:      030138 spi_load_flash_wait:
+0x6c79 030139 fetch 1 ,core_dma_status 
+0x6c7a 030140 bbit1 7 ,spi_load_flash_wait 
+0x6c7b 030141 arg spid_done ,queue 
+0x6c7c 030142 call decrypt_code 
+0x6c7d 030143 call wait_spid_done 
+0x6c7e 030144 isolate1 spid_crcok ,pdata 
+0x6c7f 030145 call set_ucode_status 
+0x6c80 030146 fetch 1 ,mem_addr_hi 
+0x6c81 030147 lshift16 pdata ,regb 
+0x6c82 030148 fetch 2 ,mem_addr_mi 
+0x6c83 030149 byteswap pdata ,pdata 
+0x6c84 030150 ior regb ,pdata 
+0x6c85 030151 iadd temp ,pdata 
+0x6c86 030152 store 1 ,mem_addr_lo 
+0x6c87 030153 rshift8 pdata ,pdata 
+0x6c88 030154 byteswap pdata ,pdata 
+0x6c89 030155 store 2 ,mem_addr_hi 
+0x6c8a 030156 rtn 
+:      030158 spi_gpio_init:
+0x6c8b 030159 fetch 1 ,mem_spi_cs_gpio 
+0x6c8c 030160 fetcht 1 ,mem_spi_so_gpio 
+0x6c8d 030161 isub temp ,null 
+0x6c8e 030162 nbranch spi_pin_set ,zero 
+0x6c8f 030163 call spi_gpio_default_init 
+:      030165 spi_pin_set:
+0x6c90 030166 fetch 1 ,mem_spi_cs_gpio 
+0x6c91 030167 arg gpcfg_spid_ncs ,temp 
+0x6c92 030168 call gpio_config_function_int 
+0x6c93 030169 fetch 1 ,mem_spi_sclk_gpio 
+0x6c94 030170 arg gpcfg_spid_sck ,temp 
+0x6c95 030171 call gpio_config_function_int 
+0x6c96 030172 fetch 1 ,mem_spi_si_gpio 
+0x6c97 030173 arg gpcfg_spid_mosi ,temp 
+0x6c98 030174 call gpio_config_function_int 
+0x6c99 030175 fetch 1 ,mem_spi_so_gpio 
+0x6c9a 030176 arg gpcfg_spid_miso ,temp 
+0x6c9b 030177 branch gpio_config_function_int 
+:      030179 spi_gpio_default_init:
+0x6c9c 030180 jam 1 ,mem_spi_cs_gpio 
+0x6c9d 030181 jam 3 ,mem_spi_si_gpio 
+0x6c9e 030182 jam 0 ,mem_spi_so_gpio 
+0x6c9f 030183 jam 2 ,mem_spi_sclk_gpio 
+0x6ca0 030184 jam 11 ,mem_spi_wp_gpio 
+0x6ca1 030185 jam 10 ,mem_spi_hold_gpio 
+0x6ca2 030186 rtn 
+:      030189 soft_reset_chip:
+0x6ca3 030190 jam 1 ,core_reset 
+0x6ca4 030191 rtn 
+:      030197 iic_init_600khz:
+0x6ca5 030198 jam 5 ,core_iicd_scl_low 
+0x6ca6 030199 jam 7 ,core_iicd_scl_high 
+0x6ca7 030200 jam 7 ,core_iicd_start_setup 
+0x6ca8 030201 jam 7 ,core_iicd_start_hold 
+0x6ca9 030202 jam 7 ,core_iicd_stop_setup 
+0x6caa 030203 jam 5 ,core_iicd_data_setup 
+0x6cab 030204 jam 0 ,core_iicd_data_hold 
+0x6cac 030205 rtn 
+:      030207 iic_init_360khz:
+0x6cad 030208 jam 12 ,core_iicd_scl_low 
+0x6cae 030209 jam 13 ,core_iicd_scl_high 
+0x6caf 030210 jam 13 ,core_iicd_start_setup 
+0x6cb0 030211 jam 13 ,core_iicd_start_hold 
+0x6cb1 030212 jam 13 ,core_iicd_stop_setup 
+0x6cb2 030213 jam 12 ,core_iicd_data_setup 
+0x6cb3 030214 jam 0 ,core_iicd_data_hold 
+0x6cb4 030215 rtn 
+:      030217 iicd_init_pin:
+0x6cb5 030218 call iicd_eeprom_write_enable 
+:      030219 iicd_init_pin_scl_sda:
+0x6cb6 030220 fetch 1 ,mem_eeprom_scl_gpio 
+0x6cb7 030221 arg gpcfg_iic_scl | gpcfg_pullup ,temp 
+0x6cb8 030222 call gpio_config_function_int 
+0x6cb9 030223 fetch 1 ,mem_eeprom_sda_gpio 
+0x6cba 030224 arg gpcfg_iic_sda | gpcfg_pullup ,temp 
+0x6cbb 030225 branch gpio_config_function_int 
+:      030227 iicd_read_init_pin:
+0x6cbc 030228 call iicd_eeprom_write_disable 
+0x6cbd 030229 branch iicd_init_pin_scl_sda 
+:      030231 wait_iicd_done:
+0x6cbe 030232 fetch 1 ,core_dma_status 
+0x6cbf 030233 bbit0 iicd_done ,wait_iicd_done 
+0x6cc0 030234 rtn 
+:      030260 set_eeprom_size_2k:
+0x6cc1 030261 set1 mark_eeprom_size ,mark 
+0x6cc2 030262 jam 0x08 ,mem_eeprom_block_size 
+0x6cc3 030263 rtn 
+:      030265 clear_eeprom_size_2k:
+0x6cc4 030266 set0 mark_eeprom_size ,mark 
+0x6cc5 030267 jam 0x20 ,mem_eeprom_block_size 
+0x6cc6 030268 rtn 
+:      030271 iicd_read_eep_data_size_2k:
+0x6cc7 030272 fetch 1 ,mem_eeprom_base 
+0x6cc8 030273 iadd regb ,pdata 
+0x6cc9 030274 store 1 ,mem_addr_mi 
+0x6cca 030275 branch iicd_read_eep_size_2k 
+:      030277 iicd_read_eep_size_2k_lcadcode:
+0x6ccb 030278 fetch 2 ,mem_addr_mi 
+0x6ccc 030279 byteswap pdata ,pdata 
+0x6ccd 030280 store 1 ,mem_addr_mi 
+:      030285 iicd_read_eep_size_2k:
+0x6cce 030286 setarg 3 
+0x6ccf 030287 store 2 ,core_iicd_txlen 
+0x6cd0 030288 jam 0xa0 ,mem_iicd_tbuf 
+0x6cd1 030289 jam 0xa1 ,mem_iicd_tbuf + 2 
+0x6cd2 030290 branch iicd_read_eep_common 
+:      030296 iicd_write_protect_eep_data:
+0x6cd3 030297 storet 2 ,mem_temp 
+0x6cd4 030298 call iicd_eeprom_write_enable 
+0x6cd5 030299 fetcht 2 ,mem_temp 
+0x6cd6 030300 call iicd_write_eep_data 
+0x6cd7 030301 branch iicd_eeprom_write_disable 
+:      030303 iicd_eeprom_write_enable:
+0x6cd8 030304 fetch 1 ,mem_eeprom_wp_gpio 
+0x6cd9 030305 rtneq gpio_disable 
+0x6cda 030306 bbit0 6 ,iicd_wp_gpio_output_low 
+0x6cdb 030307 setarg 150000 
+0x6cdc 030308 call sleep 
+:      030309 iicd_wp_gpio_output_low:
+0x6cdd 030310 fetcht 1 ,mem_eeprom_wp_gpio 
+0x6cde 030311 branch gpio_out_active 
+:      030313 iicd_eeprom_write_disable:
+0x6cdf 030314 fetcht 1 ,mem_eeprom_wp_gpio 
+0x6ce0 030315 branch gpio_out_inactive 
+:      030320 iicd_read_eep_data:
+0x6ce1 030321 bpatch patch19_3 ,mem_patch19 
+0x6ce2 030322 bmark1 mark_eeprom_size ,iicd_read_eep_data_size_2k 
+0x6ce3 030323 fetch 2 ,mem_eeprom_base 
+0x6ce4 030324 iadd regb ,pdata 
+0x6ce5 030325 byteswap pdata ,pdata 
+0x6ce6 030326 store 2 ,mem_addr_mi 
+:      030329 iicd_read_eep:
+0x6ce7 030330 bpatch patch19_4 ,mem_patch19 
+0x6ce8 030331 bmark1 mark_eeprom_size ,iicd_read_eep_size_2k_lcadcode 
+0x6ce9 030332 setarg 4 
+0x6cea 030333 store 2 ,core_iicd_txlen 
+0x6ceb 030334 jam 0xa0 ,mem_iicd_tbuf 
+0x6cec 030335 jam 0xa1 ,mem_iicd_tbuf + 3 
+:      030336 iicd_read_eep_common:
+0x6ced 030337 setarg mem_iicd_tbuf 
+0x6cee 030338 store 2 ,core_iicd_txaddr 
+0x6cef 030339 storet 2 ,core_iicd_rxlen 
+0x6cf0 030340 storer rega ,2 ,core_iicd_rxaddr 
+0x6cf1 030341 setarg 2 
+0x6cf2 030342 isolate0 15 ,rega 
+0x6cf3 030343 setflag true ,0 ,pdata 
+0x6cf4 030344 store 1 ,core_iicd_ctrl 
+0x6cf5 030345 jam iicd_start ,core_misc_ctrl 
+0x6cf6 030346 arg iicd_done ,queue 
+0x6cf7 030347 call decrypt_code 
+0x6cf8 030348 call wait_iicd_done 
+0x6cf9 030349 isolate1 iicd_crcok ,pdata 
+0x6cfa 030350 call set_ucode_status 
+0x6cfb 030351 bmark1 mark_eeprom_size ,iicd_read_eep_load_code_size_2k 
+:      030352 iicd_inc_addr:
+0x6cfc 030353 fetch 2 ,mem_addr_mi 
+0x6cfd 030354 byteswap pdata ,pdata 
+0x6cfe 030355 iadd temp ,pdata 
+0x6cff 030356 byteswap pdata ,pdata 
+0x6d00 030357 store 2 ,mem_addr_mi 
+0x6d01 030358 rtn 
+:      030360 iicd_read_eep_load_code_size_2k:
+0x6d02 030361 fetch 1 ,mem_addr_mi 
+0x6d03 030362 iadd temp ,pdata 
+0x6d04 030363 byteswap pdata ,pdata 
+0x6d05 030364 store 2 ,mem_addr_mi 
+0x6d06 030365 rtn 
+:      030371 iicd_write_eep_data:
+0x6d07 030372 fetch 2 ,mem_eeprom_base 
+0x6d08 030373 iadd regb ,pdata 
+0x6d09 030376 store 2 ,mem_pdatatemp 
+0x6d0a 030377 bpatch patch19_5 ,mem_patch19 
+0x6d0b 030378 storet 2 ,mem_temp 
+0x6d0c 030379 storer rega ,2 ,mem_contr 
+:      030380 iicd_write_eep_loop:
+0x6d0d 030381 call iicd_eep_transparency 
+0x6d0e 030383 fetcht 2 ,mem_regb 
+0x6d0f 030384 fetchr rega ,2 ,mem_contr 
+0x6d10 030385 fetch 2 ,mem_pdatatemp 
+0x6d11 030387 call iicd_write_eep 
+0x6d12 030389 fetch 2 ,mem_regb 
+0x6d13 030390 fetcht 2 ,mem_contr 
+0x6d14 030391 iadd temp ,temp 
+0x6d15 030392 storet 2 ,mem_contr 
+0x6d16 030393 fetcht 2 ,mem_pdatatemp 
+0x6d17 030394 iadd temp ,temp 
+0x6d18 030395 storet 2 ,mem_pdatatemp 
+0x6d19 030396 fetch 2 ,mem_temp 
+0x6d1a 030397 nbranch iicd_write_eep_loop ,blank 
+0x6d1b 030398 rtn 
+:      030406 iicd_eep_transparency:
+0x6d1c 030407 bpatch patch19_6 ,mem_patch19 
+0x6d1d 030408 fetch 1 ,mem_eeprom_block_size 
+0x6d1e 030409 increase -1 ,pdata 
+0x6d1f 030410 fetcht 2 ,mem_pdatatemp 
+0x6d20 030411 ior temp ,pdata 
+0x6d21 030412 increase 1 ,pdata 
+0x6d22 030413 store 3 ,mem_regc 
+0x6d23 030415 fetch 2 ,mem_temp 
+0x6d24 030416 iadd temp ,pdata 
+0x6d25 030418 fetcht 3 ,mem_regc 
+0x6d26 030419 isub temp ,pdata 
+0x6d27 030420 nbranch iicd_eep_deal_short_packet ,positive 
+0x6d28 030421 store 2 ,mem_temp 
+0x6d29 030422 fetch 3 ,mem_regc 
+0x6d2a 030423 fetcht 2 ,mem_pdatatemp 
+0x6d2b 030424 isub temp ,pdata 
+0x6d2c 030425 store 2 ,mem_regb 
+0x6d2d 030426 rtn 
+:      030428 iicd_eep_deal_short_packet:
+0x6d2e 030429 fetch 2 ,mem_temp 
+0x6d2f 030430 store 2 ,mem_regb 
+0x6d30 030431 setarg 0 
+0x6d31 030432 store 2 ,mem_temp 
+0x6d32 030433 rtn 
+:      030435 iicd_write_eep_size_2k:
+0x6d33 030436 copy regb ,pdata 
+0x6d34 030437 increase 2 ,temp 
+0x6d35 030438 storet 2 ,core_iicd_txlen 
+0x6d36 030439 increase -2 ,rega 
+0x6d37 030440 ifetcht 3 ,rega 
+0x6d38 030441 copy temp ,regb 
+0x6d39 030442 arg 0xa0 ,temp 
+0x6d3a 030443 istoret 1 ,rega 
+0x6d3b 030444 istore 1 ,contw 
+0x6d3c 030445 branch iicd_write_eep_common 
+:      030448 iicd_write_eep:
+0x6d3d 030449 copy pdata ,regb 
+0x6d3e 030450 bpatch patch19_7 ,mem_patch19 
+0x6d3f 030451 bmark1 mark_eeprom_size ,iicd_write_eep_size_2k 
+0x6d40 030452 copy regb ,pdata 
+0x6d41 030453 increase 3 ,temp 
+0x6d42 030454 storet 2 ,core_iicd_txlen 
+0x6d43 030455 increase -3 ,rega 
+0x6d44 030456 ifetcht 3 ,rega 
+0x6d45 030457 copy temp ,regb 
+0x6d46 030458 arg 0xa0 ,temp 
+0x6d47 030459 istoret 1 ,rega 
+0x6d48 030460 byteswap pdata ,pdata 
+0x6d49 030461 istore 2 ,contw 
+:      030462 iicd_write_eep_common:
+0x6d4a 030463 storer rega ,2 ,core_iicd_txaddr 
+0x6d4b 030464 setarg 0 
+0x6d4c 030465 store 2 ,core_iicd_rxlen 
+0x6d4d 030466 jam 1 ,core_iicd_ctrl 
+0x6d4e 030467 jam iicd_start ,core_misc_ctrl 
+0x6d4f 030468 call wait_iicd_done 
+0x6d50 030469 istorer regb ,3 ,rega 
+:      030470 iic_check_eeprom_standby:
+0x6d51 030471 bpatch patch1a_0 ,mem_patch1a 
+0x6d52 030472 jam 0 ,mem_iicd_tbuf + 3 
+:      030473 iic_check_eeprom_standby_wait:
+0x6d53 030474 setarg 1 
+0x6d54 030475 store 2 ,core_iicd_txlen 
+0x6d55 030476 jam 0xa0 ,mem_iicd_tbuf 
+0x6d56 030477 setarg mem_iicd_tbuf 
+0x6d57 030478 store 2 ,core_iicd_txaddr 
+0x6d58 030479 setarg 0 
+0x6d59 030480 store 2 ,core_iicd_rxlen 
+0x6d5a 030481 store 2 ,core_iicd_rxaddr 
+0x6d5b 030482 setarg 3 
+0x6d5c 030483 store 1 ,core_iicd_ctrl 
+0x6d5d 030484 jam iicd_start ,core_misc_ctrl 
+0x6d5e 030485 call wait_iicd_done 
+0x6d5f 030486 fetch 1 ,core_dma_status 
+0x6d60 030487 rtnbit0 iicd_ack 
+0x6d61 030488 nop 1500 
+0x6d62 030489 fetch 1 ,mem_iicd_tbuf + 3 
+0x6d63 030490 increase 1 ,pdata 
+0x6d64 030491 store 1 ,mem_iicd_tbuf + 3 
+0x6d65 030492 sub pdata ,40 ,null 
+0x6d66 030493 nrtn positive 
+0x6d67 030494 branch iic_check_eeprom_standby_wait 
+:      030498 uarta_init_dma_mem:
+0x6d68 030499 call enable_user 
+0x6d69 030500 branch uart_init_dma_mem 
+:      030502 uart_init_dma_mem:
+0x6d6a 030503 rshift16 pdata ,temp 
+0x6d6b 030504 call uarta_init_rx ,user 
+0x6d6c 030505 rshift32 pdata ,pdata 
+0x6d6d 030506 rshift16 pdata ,temp 
+0x6d6e 030507 call uarta_init_tx ,user 
+0x6d6f 030508 fetch 2 ,core_clkoff 
+0x6d70 030509 set0 clock_off_uart ,pdata 
+0x6d71 030510 store 2 ,core_clkoff 
+0x6d72 030511 rtn 
+:      030514 uarta_init_baud_rate:
+0x6d73 030515 store uart_baud_len ,core_uart_baud 
+0x6d74 030516 rtn 
+:      030519 uarta_calc_baud_rate_config:
+0x6d75 030520 call uart_calc_baud_rate_config 
+0x6d76 030521 branch uarta_init_baud_rate 
+:      030524 uart_calc_baud_rate_config:
+0x6d77 030525 call uart_calc_baud_rate_config_choice_uart_clock 
+0x6d78 030526 idiv temp 
+0x6d79 030527 call wait_div_end 
+0x6d7a 030528 quotient pdata 
+0x6d7b 030529 rtn 
+:      030531 uart_calc_baud_rate_config_choice_uart_clock:
+0x6d7c 030532 fetch 1 ,core_uart_clksel 
+0x6d7d 030533 bbit0 uart_clock_select_bit ,uart_calc_baud_rate_config_choice_uart_clock_crystal 
+0x6d7e 030534 setarg uart_clock_freq_48m 
+0x6d7f 030535 rtn 
+:      030536 uart_calc_baud_rate_config_choice_uart_clock_crystal:
+0x6d80 030537 setarg uart_clock_freq_24m 
+0x6d81 030538 rtn 
+:      030540 uart_clock_select_main_freq_crystal:
+0x6d82 030541 fetch 1 ,core_uart_clksel 
+0x6d83 030542 and pdata ,uart_clock_select_crystal ,pdata 
+0x6d84 030543 store 1 ,core_uart_clksel 
+0x6d85 030544 rtn 
+:      030546 uart_clock_select_main_freq_dpll:
+0x6d86 030547 fetch 1 ,core_uart_clksel 
+0x6d87 030548 or pdata ,uart_clock_select_dpll ,pdata 
+0x6d88 030549 store 1 ,core_uart_clksel 
+0x6d89 030550 rtn 
+:      030554 uarta_init_tx:
+0x6d8a 030555 store 2 ,core_uart_tsaddr 
+0x6d8b 030556 store 2 ,core_uart_twptr 
+0x6d8c 030557 storet 2 ,core_uart_teaddr 
+0x6d8d 030558 rtn 
+:      030561 uarta_init_rx:
+0x6d8e 030562 store 2 ,core_uart_rsaddr 
+0x6d8f 030563 store 2 ,core_uart_rrptr 
+0x6d90 030564 storet 2 ,core_uart_readdr 
+0x6d91 030565 rtn 
+:      030567 uarta_prepare_tx:
+0x6d92 030568 fetchr contus ,2 ,core_uart_tsaddr 
+0x6d93 030569 fetchr contue ,2 ,core_uart_teaddr 
+0x6d94 030570 fetchr contu ,2 ,core_uart_twptr 
+0x6d95 030571 rtn 
+:      030573 uarta_prepare_rx:
+0x6d96 030574 fetchr contus ,2 ,core_uart_rsaddr 
+0x6d97 030575 fetchr contue ,2 ,core_uart_readdr 
+0x6d98 030576 fetchr contu ,2 ,core_uart_rrptr 
+0x6d99 030577 rtn 
+:      030579 uarta_send:
+0x6d9a 030580 storer contu ,2 ,core_uart_twptr 
+0x6d9b 030581 rtn 
+:      030583 uarta_rxdone:
+0x6d9c 030584 storer contu ,2 ,core_uart_rrptr 
+0x6d9d 030585 rtn 
+:      030587 uarta_clear_current_rx:
+0x6d9e 030588 call uarta_prepare_rx 
+0x6d9f 030589 fetch 2 ,core_uart_rxitems 
+0x6da0 030590 iadd contu ,contu 
+0x6da1 030591 branch uarta_rxdone 
+:      030593 uarta_prepare_tx_register_push:
+0x6da2 030594 call uart_register_push 
+0x6da3 030595 branch uarta_prepare_tx 
+:      030597 uarta_send_register_pop:
+0x6da4 030598 call uarta_send 
+0x6da5 030599 branch uart_register_pop 
+:      030602 uart_register_push:
+0x6da6 030603 storer contu ,2 ,mem_contu 
+0x6da7 030604 storer contus ,2 ,mem_contue 
+0x6da8 030605 storer contue ,2 ,mem_contus 
+0x6da9 030606 rtn 
+:      030608 uart_register_pop:
+0x6daa 030609 fetchr contu ,2 ,mem_contu 
+0x6dab 030610 fetchr contus ,2 ,mem_contue 
+0x6dac 030611 fetchr contue ,2 ,mem_contus 
+0x6dad 030612 rtn 
+:      030614 wait_uarttx:
+0x6dae 030615 fetch 2 ,core_uart_txitems 
+0x6daf 030616 nbranch wait_uarttx ,blank 
+0x6db0 030617 rtn 
+:      030619 uart_copy_tx_bytes_fast:
+0x6db1 030620 deposit loopcnt 
+0x6db2 030621 rtn blank 
+:      030622 uart_copy_tx_bytes_fast_loop:
+0x6db3 030623 increase -8 ,loopcnt 
+0x6db4 030624 call uart_tx_8_bytes ,positive 
+0x6db5 030625 rtn zero 
+0x6db6 030626 branch uart_copy_tx_bytes_fast_loop ,positive 
+0x6db7 030627 increase 8 ,loopcnt 
+:      030628 uart_copy_tx_bytes_fast_loop_four:
+0x6db8 030629 increase -4 ,loopcnt 
+0x6db9 030630 call uart_tx_4_bytes ,positive 
+0x6dba 030631 rtn zero 
+0x6dbb 030632 branch uart_copy_tx_bytes_fast_loop_four ,positive 
+0x6dbc 030633 increase 4 ,loopcnt 
+0x6dbd 030634 branch uart_copy_tx_bytes 
+:      030636 uart_tx_8_bytes:
+0x6dbe 030637 ifetch 8 ,contr 
+0x6dbf 030638 istore 8 ,contu 
+0x6dc0 030639 rtn 
+:      030641 uart_tx_4_bytes:
+0x6dc1 030642 ifetch 4 ,contr 
+0x6dc2 030643 istore 4 ,contu 
+0x6dc3 030644 rtn 
+:      030646 uart_copy_tx_bytes:
+0x6dc4 030647 deposit loopcnt 
+0x6dc5 030648 rtn blank 
+:      030649 uart_copy_tx_bytes_loop:
+0x6dc6 030650 ifetch 1 ,contr 
+0x6dc7 030651 istore 1 ,contu 
+0x6dc8 030652 loop uart_copy_tx_bytes_loop 
+0x6dc9 030653 rtn 
+:      030655 uart_copy_rx_bytes_fast:
+0x6dca 030656 deposit loopcnt 
+0x6dcb 030657 rtn blank 
+:      030658 uart_copy_rx_bytes_fast_loop:
+0x6dcc 030659 increase -8 ,loopcnt 
+0x6dcd 030660 call uart_rx_8_bytes ,positive 
+0x6dce 030661 rtn zero 
+0x6dcf 030662 branch uart_copy_rx_bytes_fast_loop ,positive 
+0x6dd0 030663 increase 8 ,loopcnt 
+:      030664 uart_copy_rx_bytes_fast_loop_four:
+0x6dd1 030665 increase -4 ,loopcnt 
+0x6dd2 030666 call uart_rx_4_bytes ,positive 
+0x6dd3 030667 rtn zero 
+0x6dd4 030668 branch uart_copy_rx_bytes_fast_loop_four ,positive 
+0x6dd5 030669 increase 4 ,loopcnt 
+0x6dd6 030670 branch uart_copy_rx_bytes 
+:      030673 uart_rx_8_bytes:
+0x6dd7 030674 ifetch 8 ,contu 
+0x6dd8 030675 istore 8 ,contw 
+0x6dd9 030676 rtn 
+:      030678 uart_rx_4_bytes:
+0x6dda 030679 ifetch 4 ,contu 
+0x6ddb 030680 istore 4 ,contw 
+0x6ddc 030681 rtn 
+:      030684 uart_copy_rx_bytes:
+0x6ddd 030685 deposit loopcnt 
+0x6dde 030686 rtn blank 
+:      030687 uart_copy_rx_bytes_loop:
+0x6ddf 030688 ifetch 1 ,contu 
+0x6de0 030689 istore 1 ,contw 
+0x6de1 030690 loop uart_copy_rx_bytes_loop 
+0x6de2 030691 rtn 
+:      030696 app_store_nvram_event:
+0x6de3 030697 jam bt_evt_store_nvram ,mem_fifo_temp 
+0x6de4 030698 branch ui_ipc_send_event 
+:      030700 check_51cmd_update_device_record:
+0x6de5 030701 bpatch patch1a_1 ,mem_patch1a 
+0x6de6 030702 fetch 1 ,mem_nv_data_number 
+0x6de7 030703 rtn blank 
+0x6de8 030704 call check_nvram 
+0x6de9 030705 call init_device_list ,zero 
+0x6dea 030706 call disable_user2 
+0x6deb 030707 call nvram_find_addr_from_bd_list 
+:      030708 write_device_record:
+0x6dec 030709 fetch 1 ,mem_nv_data_number 
+0x6ded 030710 icopy regc 
+0x6dee 030711 fetcht 2 ,mem_nv_data_ptr 
+0x6def 030712 storet 2 ,mem_list_item_ptr 
+:      030713 write_device_loop_find:
+0x6df0 030714 copy regc ,pdata 
+0x6df1 030715 branch app_store_nvram_event ,blank 
+0x6df2 030716 increase -1 ,regc 
+0x6df3 030717 copy temp ,rega 
+0x6df4 030718 ifetch 1 ,rega 
+0x6df5 030719 fetcht 1 ,mem_select_list_item 
+0x6df6 030720 isub temp ,null 
+0x6df7 030721 call set_index_finded_device ,zero 
+0x6df8 030722 branch write_device_loop_find0 ,positive 
+0x6df9 030723 ifetch 1 ,rega 
+0x6dfa 030724 increase 1 ,pdata 
+0x6dfb 030725 istore 1 ,rega 
+:      030726 write_device_loop_find0:
+0x6dfc 030727 fetcht 2 ,mem_list_item_ptr 
+0x6dfd 030728 increase nv_data_len ,temp 
+0x6dfe 030729 storet 2 ,mem_list_item_ptr 
+0x6dff 030730 branch write_device_loop_find 
+:      030732 set_index_finded_device:
+0x6e00 030733 setarg 0 
+0x6e01 030734 istore 1 ,rega 
+0x6e02 030735 fetch 1 ,mem_temp_reconn_record 
+0x6e03 030736 istore 1 ,contw 
+0x6e04 030737 bne rec_3_mode ,set_index_finded_device_ble_mode 
+:      030739 set_index_find_device_master_addr:
+0x6e05 030740 ifetch 6 ,contr 
+0x6e06 030741 istore 8 ,contw 
+0x6e07 030742 setarg 0 
+0x6e08 030743 istore 8 ,contw 
+0x6e09 030744 copy regb ,contr 
+:      030745 store_rec_data_common:
+0x6e0a 030746 call memcpy16 
+0x6e0b 030747 force 1 ,null 
+0x6e0c 030748 rtn 
+:      030750 set_index_finded_device_ble_mode:
+0x6e0d 030751 beq rec_4_mode_random_resolvable_private_address ,set_index_finded_device_irk 
+0x6e0e 030752 beq rec_4_mode_random_non_resolvable_private_address ,set_index_finded_device_ediv 
+0x6e0f 030753 arg mem_le_ltk ,regb 
+0x6e10 030754 branch set_index_find_device_master_addr 
+:      030756 set_index_finded_device_irk:
+0x6e11 030757 arg mem_le_irk ,contr 
+0x6e12 030758 call memcpy16 
+:      030759 store_ble_rec_data_common:
+0x6e13 030760 arg mem_le_ltk ,contr 
+0x6e14 030761 branch store_rec_data_common 
+:      030763 set_index_finded_device_ediv:
+0x6e15 030764 arg mem_le_rand ,contr 
+0x6e16 030765 call memcpy16 
+0x6e17 030766 branch store_ble_rec_data_common 
+:      030771 nvram_find_addr_from_bd_list:
+0x6e18 030772 bpatch patch1a_2 ,mem_patch1a 
+0x6e19 030773 call disable_user 
+0x6e1a 030774 fetch 1 ,mem_nv_data_number 
+0x6e1b 030775 rtn blank 
+0x6e1c 030776 bpatch patch1a_3 ,mem_patch1a 
+0x6e1d 030777 fetch 2 ,mem_ui_state_map 
+0x6e1e 030778 rtnbit0 ui_state_ble_connected 
+:      030779 find_addr_from_bd_list_ble_mode:
+0x6e1f 030780 fetch 1 ,mem_le_conn_peer_addr_type 
+0x6e20 030781 beq master_public_addr ,find_addr_from_bd_list_public_device_addr 
+0x6e21 030782 fetch 1 ,mem_le_plap + 5 
+0x6e22 030783 compare 0xc0 ,pdata ,0xc0 
+0x6e23 030784 branch find_addr_from_bd_list_static_addr ,true 
+0x6e24 030785 compare 0x40 ,pdata ,0xc0 
+0x6e25 030786 branch find_addr_from_bd_list_random_addr ,true 
+0x6e26 030787 branch find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy 
+:      030789 find_addr_from_bd_list_static_addr:
+0x6e27 030790 branch find_addr_from_bd_list_static_addr_reconnect ,user2 
+0x6e28 030791 fetch 1 ,mem_le_preq_init_key_distribution 
+0x6e29 030792 bbit0 le_initator_irk_bit ,find_addr_from_bd_list_public_device_addr 
+0x6e2a 030793 branch find_addr_from_bd_list_static_addr_sc_or_legacy 
+:      030795 find_addr_from_bd_list_static_addr_reconnect:
+0x6e2b 030796 call find_addr_from_bd_list_public_device_addr 
+0x6e2c 030797 rtn user 
+0x6e2d 030798 branch find_addr_from_bd_list_static_addr_sc_or_legacy 
+:      030801 find_addr_from_bd_list_static_addr_sc_or_legacy:
+:      030802 find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy:
+0x6e2e 030803 fetch 1 ,mem_le_pairing_mode 
+0x6e2f 030804 bbit1 le_pairing_mode_secure_connect_bit ,find_addr_from_bd_list_random_non_resolvable_private_address_sc 
+0x6e30 030805 branch find_addr_from_bd_list_random_non_resolvable_private_address 
+:      030807 find_addr_from_bd_list_static_addr_sc:
+:      030808 find_addr_from_bd_list_random_non_resolvable_private_address_sc:
+0x6e31 030809 fetch 6 ,mem_le_plap 
+0x6e32 030810 store 8 ,mem_le_rand 
+0x6e33 030811 branch find_addr_from_bd_list_random_non_resolvable_private_address 
+:      030814 find_addr_from_bd_list_public_device_addr:
+0x6e34 030815 jam rec_4_mode_static_address ,mem_temp_reconn_record 
+0x6e35 030816 fetch 6 ,mem_le_plap 
+0x6e36 030817 branch find_addr_from_bd_list_common 
+:      030819 find_addr_from_bd_list_random_non_resolvable_private_address:
+0x6e37 030820 jam rec_4_mode_random_non_resolvable_private_address ,mem_temp_reconn_record 
+0x6e38 030821 branch find_addr_from_bd_list_common 
+:      030824 find_addr_from_bd_list_random_addr:
+0x6e39 030825 jam rec_4_mode_random_resolvable_private_address ,mem_temp_reconn_record 
+0x6e3a 030826 branch find_addr_from_bd_list_common 
+:      030828 find_addr_from_bd_list_common:
+0x6e3b 030829 bpatch patch1a_4 ,mem_patch1a 
+0x6e3c 030831 fetch 2 ,mem_nv_data_ptr 
+0x6e3d 030832 ifetcht 1 ,pdata 
+0x6e3e 030833 pincrease 1 
+0x6e3f 030834 store 2 ,mem_list_item_ptr 
+0x6e40 030835 storet 1 ,mem_select_list_item 
+0x6e41 030836 fetch 1 ,mem_nv_data_number 
+0x6e42 030837 icopy regc 
+:      030838 nvram_find_addr_from_list:
+0x6e43 030839 fetch 2 ,mem_list_item_ptr 
+0x6e44 030840 copy pdata ,rega 
+0x6e45 030841 call nvram_find_addr_from_list_compare 
+0x6e46 030842 rtn user 
+0x6e47 030843 fetcht 2 ,mem_list_item_ptr 
+0x6e48 030844 increase nv_data_len ,temp 
+0x6e49 030845 storet 2 ,mem_list_item_ptr 
+0x6e4a 030846 increase -1 ,temp 
+0x6e4b 030847 ifetch 1 ,temp 
+0x6e4c 030848 store 1 ,mem_select_list_item 
+0x6e4d 030849 increase -1 ,regc 
+0x6e4e 030850 nbranch nvram_find_addr_from_list ,zero 
+0x6e4f 030851 fetch 1 ,mem_nv_data_number 
+0x6e50 030852 pincrease decreased_one 
+0x6e51 030853 store 1 ,mem_select_list_item 
+0x6e52 030854 rtn 
+:      030855 nvram_find_addr_from_list_compare:
+0x6e53 030856 fetch 1 ,mem_temp_reconn_record 
+0x6e54 030857 bne rec_3_mode ,find_addr_from_list_compare_ble_mode 
+:      030858 find_master_addr_from_list_compare:
+0x6e55 030859 arg mem_temp_reconn_record ,regb 
+0x6e56 030860 arg 7 ,loopcnt 
+0x6e57 030861 call string_compare 
+0x6e58 030862 branch enable_user ,zero 
+0x6e59 030863 rtn 
+:      030865 find_addr_from_list_compare_ble_mode:
+0x6e5a 030866 beq rec_4_mode_random_resolvable_private_address ,find_irk_form_list_compare 
+0x6e5b 030867 beq rec_4_mode_random_non_resolvable_private_address ,find_ediv_form_list_compare 
+0x6e5c 030868 branch find_master_addr_from_list_compare 
+:      030870 find_irk_form_list_compare:
+0x6e5d 030871 ifetcht 1 ,rega 
+0x6e5e 030872 isub temp ,null 
+0x6e5f 030873 nrtn zero 
+0x6e60 030874 arg mem_le_prand ,contw 
+0x6e61 030875 arg 16 ,loopcnt 
+0x6e62 030876 call clear_mem 
+0x6e63 030877 fetch 3 ,mem_le_plap + 3 
+0x6e64 030878 store 3 ,mem_le_prand 
+0x6e65 030879 call genernate_master_macaddress 
+0x6e66 030880 fetch 2 ,mem_le_aes_128 + 13 
+0x6e67 030881 byteswap pdata ,pdata 
+0x6e68 030882 lshift8 pdata ,temp 
+0x6e69 030883 ifetch 1 ,contr 
+0x6e6a 030884 iadd temp ,pdata 
+0x6e6b 030885 fetcht 3 ,mem_le_plap 
+0x6e6c 030886 isub temp ,null 
+0x6e6d 030887 branch enable_user ,zero 
+0x6e6e 030888 rtn 
+:      030891 genernate_master_macaddress:
+0x6e6f 030892 arg mem_le_prand ,contr 
+0x6e70 030893 call load_data128 
+0x6e71 030895 ifetch 1 ,rega 
+0x6e72 030896 call load_regext 
+0x6e73 030897 force 0x38 ,aes_ctrl 
+0x6e74 030898 force 0x0 ,aes_ctrl 
+0x6e75 030899 call wait_aes 
+0x6e76 030900 arg mem_le_aes_128 ,contw 
+0x6e77 030901 branch store_aes_result 
+:      030903 find_ediv_form_list_compare:
+0x6e78 030904 ifetcht 1 ,rega 
+0x6e79 030905 isub temp ,null 
+0x6e7a 030906 nrtn zero 
+0x6e7b 030907 copy contr ,rega 
+0x6e7c 030908 add contr ,8 ,regc 
+0x6e7d 030909 arg mem_le_rand ,regb 
+0x6e7e 030910 arg 8 ,loopcnt 
+0x6e7f 030911 call string_compare 
+0x6e80 030912 branch enable_user ,zero 
+0x6e81 030913 copy regc ,rega 
+0x6e82 030914 arg mem_le_irk ,regb 
+0x6e83 030915 arg 8 ,loopcnt 
+0x6e84 030916 call string_compare 
+0x6e85 030917 branch enable_user ,zero 
+0x6e86 030918 rtn 
+:      030920 check_nvram:
+0x6e87 030921 fetch 2 ,mem_nv_data_ptr 
+0x6e88 030922 ifetcht 1 ,pdata 
+0x6e89 030923 pincrease nv_data_len 
+0x6e8a 030924 ifetch 1 ,pdata 
+0x6e8b 030925 isub temp ,null 
+0x6e8c 030926 rtn 
+:      030928 init_device_list:
+0x6e8d 030929 fetch 1 ,mem_nv_data_number 
+0x6e8e 030930 icopy loopcnt 
+0x6e8f 030931 fetcht 2 ,mem_nv_data_ptr 
+0x6e90 030932 setarg 0 
+:      030933 init_device_list_loop:
+0x6e91 030934 istore 1 ,temp 
+0x6e92 030935 increase nv_data_len ,temp 
+0x6e93 030936 pincrease 1 
+0x6e94 030937 loop init_device_list_loop 
+0x6e95 030938 rtn 
+:      030940 load_device_list_mode_4:
+0x6e96 030943 call enable_user2 
+0x6e97 030944 call nvram_find_addr_from_bd_list 
+0x6e98 030945 nbranch clear_ltk_exists ,user 
+0x6e99 030946 fetch 2 ,mem_list_item_ptr 
+0x6e9a 030947 add pdata ,1 ,contr 
+0x6e9b 030948 arg mem_le_irk ,contw 
+0x6e9c 030949 call memcpy16 
+0x6e9d 030950 arg mem_le_ltk ,contw 
+0x6e9e 030951 call memcpy16 
+0x6e9f 030952 jam 1 ,mem_ltk_exists 
+0x6ea0 030953 rtn 
+:      030955 clear_ltk_exists:
+0x6ea1 030956 jam 0 ,mem_ltk_exists 
+0x6ea2 030957 rtn 
+:      030960 eeprom_store_le_reconn_info:
+0x6ea3 030961 jam rec_4_mode ,mem_record_bt_mode 
+0x6ea4 030962 branch eeprom_store_reconn_info 
+:      030964 eeprom_store_reconn_info:
+0x6ea5 030965 fetch 1 ,mem_device_option 
+0x6ea6 030966 beq dvc_op_module ,check_51cmd_update_device_record 
+0x6ea7 030967 beq dvc_op_mouse ,mouse_store_remote_bdaddr 
+0x6ea8 030968 rtn 
+:      030974 get_gpio_wakeup_index:
+0x6ea9 030975 and temp ,0x1f ,pdata 
+0x6eaa 030976 rshift pdata ,pdata 
+0x6eab 030977 arg mem_gpio_wakeup_cfg ,contw 
+0x6eac 030978 iadd contw ,contw 
+0x6ead 030979 arg 0xf0 ,alarm 
+0x6eae 030980 isolate0 0 ,temp 
+0x6eaf 030981 rtn true 
+0x6eb0 030982 arg 0xf ,alarm 
+0x6eb1 030983 rtn 
+:      030986 gpio_set_wake_by_current_state:
+0x6eb2 030987 bpatch patch1a_5 ,mem_patch1a 
+0x6eb3 030988 set1 gpio_active_bit ,temp 
+0x6eb4 030989 call gpio_get_bit 
+0x6eb5 030990 nsetflag true ,gpio_active_bit ,temp 
+:      030993 gpio_set_wake:
+0x6eb6 030994 bpatch patch1a_6 ,mem_patch1a 
+0x6eb7 030995 sub temp ,ui_button_gpio_disable ,null 
+0x6eb8 030996 rtn zero 
+0x6eb9 030997 arg 4 ,debug 
+0x6eba 030998 isolate1 gpio_active_bit ,temp 
+0x6ebb 030999 branch gpio_set_wake_high ,true 
+0x6ebc 031000 arg 2 ,debug 
+:      031001 gpio_set_wake_high:
+0x6ebd 031002 call get_gpio_wakeup_index 
+0x6ebe 031003 isolate0 0 ,temp 
+0x6ebf 031004 branch gpio_set_wake_low4bit ,true 
+0x6ec0 031005 lshift4 debug ,debug 
+:      031006 gpio_set_wake_low4bit:
+0x6ec1 031007 ifetch 1 ,contw 
+0x6ec2 031008 iand alarm ,pdata 
+0x6ec3 031009 ior debug ,pdata 
+0x6ec4 031010 istore 1 ,contw 
+0x6ec5 031011 rtn 
+:      031014 gpio_set_low_pullup:
+0x6ec6 031015 bpatch patch1a_7 ,mem_patch1a 
+0x6ec7 031016 sub temp ,ui_button_gpio_disable ,null 
+0x6ec8 031017 rtn zero 
+0x6ec9 031018 arg 1 ,debug 
+0x6eca 031019 call get_gpio_wakeup_index 
+0x6ecb 031020 isolate0 0 ,temp 
+0x6ecc 031021 branch gpio_set_low_pullup_low4bit ,true 
+0x6ecd 031022 lshift4 debug ,debug 
+:      031023 gpio_set_low_pullup_low4bit:
+0x6ece 031024 ifetch 1 ,contw 
+0x6ecf 031025 iand alarm ,pdata 
+0x6ed0 031026 ior debug ,pdata 
+0x6ed1 031027 istore 1 ,contw 
+0x6ed2 031028 rtn 
+:      031033 gpio_clr_wake:
+0x6ed3 031034 bpatch patch1b_0 ,mem_patch1b 
+0x6ed4 031035 sub temp ,ui_button_gpio_disable ,null 
+0x6ed5 031036 rtn zero 
+0x6ed6 031037 call get_gpio_wakeup_index 
+0x6ed7 031038 ifetch 1 ,contw 
+0x6ed8 031039 iand alarm ,pdata 
+0x6ed9 031040 istore 1 ,contw 
+0x6eda 031041 rtn 
+:      031043 gpio_config_input_nowake:
+0x6edb 031044 call gpio_clr_wake 
+0x6edc 031045 branch gpio_config_input_without_wake 
+:      031048 gpio_config_input:
+0x6edd 031049 sub temp ,ui_button_gpio_disable ,null 
+0x6ede 031050 rtn zero 
+0x6edf 031051 ncall gpio_set_wake ,wake 
+:      031052 gpio_config_input_without_wake:
+0x6ee0 031053 call gpio_addr 
+0x6ee1 031054 setarg 0 
+0x6ee2 031055 isolate1 gpio_active_bit ,temp 
+0x6ee3 031056 nsetflag true ,6 ,pdata 
+0x6ee4 031057 setflag true ,7 ,pdata 
+0x6ee5 031058 branch gpio_write 
+:      031061 gpio_get_bit:
+0x6ee6 031062 bpatch patch1b_1 ,mem_patch1b 
+0x6ee7 031063 arg core_gpio_in ,contw 
+0x6ee8 031064 and temp ,0x07 ,queue 
+0x6ee9 031065 rshift3 temp ,pdata 
+0x6eea 031066 and_into 3 ,pdata 
+0x6eeb 031067 iadd contw ,contw 
+0x6eec 031068 ifetch 1 ,contw 
+0x6eed 031069 isolate1 gpio_active_bit ,temp 
+0x6eee 031070 branch gpio_get_bit_reverse ,true 
+0x6eef 031071 qisolate0 pdata 
+0x6ef0 031072 rtn 
+:      031073 gpio_get_bit_reverse:
+0x6ef1 031074 qisolate1 pdata 
+0x6ef2 031075 rtn 
+:      031078 gpio_out_inactive:
+0x6ef3 031079 sub temp ,ui_button_gpio_disable ,null 
+0x6ef4 031080 rtn zero 
+0x6ef5 031081 isolate1 gpio_active_bit ,null 
+0x6ef6 031082 branch gpio_out_flag 
+:      031084 gpio_config_output:
+:      031085 gpio_out_active:
+0x6ef7 031086 sub temp ,ui_button_gpio_disable ,null 
+0x6ef8 031087 rtn zero 
+0x6ef9 031088 isolate0 gpio_active_bit ,null 
+:      031091 gpio_out_flag:
+0x6efa 031092 setarg 0 
+0x6efb 031093 nsetflag true ,gpio_active_bit ,pdata 
+0x6efc 031094 ixor temp ,temp 
+:      031097 gpio_out:
+0x6efd 031098 call gpio_addr 
+0x6efe 031099 setarg gpcfg_output_high 
+0x6eff 031100 isolate1 gpio_active_bit ,temp 
+0x6f00 031101 setflag true ,0 ,pdata 
+0x6f01 031102 branch gpio_write 
+:      031105 gpio_check_active:
+0x6f02 031106 sub temp ,ui_button_gpio_disable ,null 
+0x6f03 031107 branch disable_true ,zero 
+0x6f04 031108 call gpio_addr 
+0x6f05 031109 ifetch 1 ,contw 
+0x6f06 031110 bbit1 0 ,gpio_check_active_high 
+0x6f07 031111 isolate0 gpio_active_bit ,temp 
+0x6f08 031112 rtn 
+:      031113 gpio_check_active_high:
+0x6f09 031114 isolate1 gpio_active_bit ,temp 
+0x6f0a 031115 rtn 
+:      031117 gpio_set_analog:
+0x6f0b 031118 call gpio_addr 
+0x6f0c 031119 setarg gpcfg_no_ie 
+:      031120 gpio_write:
+0x6f0d 031121 istore 1 ,contw 
+0x6f0e 031122 rtn 
+:      031124 gpio_set_high_impedance:
+0x6f0f 031125 sub temp ,ui_button_gpio_disable ,null 
+0x6f10 031126 rtn zero 
+0x6f11 031127 call gpio_addr 
+0x6f12 031128 setarg gpcfg_high_impedance 
+0x6f13 031129 branch gpio_write 
+:      031131 gpio_addr:
+0x6f14 031132 and temp ,0x3f ,pdata 
+0x6f15 031133 sub pdata ,gpio_number + -1 ,null 
+0x6f16 031134 nbranch gpio_addr_ext ,positive 
+0x6f17 031135 arg core_gpio_conf ,contw 
+:      031136 gpio_addr_next:
+0x6f18 031137 iadd contw ,contw 
+0x6f19 031138 rtn 
+:      031139 gpio_addr_ext:
+0x6f1a 031140 arg core_gpio_conf_hi ,contw 
+0x6f1b 031141 increase -16 ,pdata 
+0x6f1c 031142 branch gpio_addr_next 
+:      031145 gpio_config_param:
+0x6f1d 031146 and pdata ,0xff ,temp 
+0x6f1e 031147 rshift8 pdata ,pdata 
+0x6f1f 031148 branch gpio_config_function_int 
+:      031151 gpio_config_function:
+0x6f20 031152 rtnbit0 gpio_active_bit 
+:      031153 gpio_config_function_int:
+0x6f21 031154 and_into 0x3f ,pdata 
+0x6f22 031155 sub pdata ,gpio_number + -1 ,null 
+0x6f23 031156 nbranch gpio_config_function_int_ext ,positive 
+0x6f24 031157 arg core_gpio_conf ,contw 
+:      031158 gpio_config_function_int_next:
+0x6f25 031159 iadd contw ,contw 
+0x6f26 031160 istoret 1 ,contw 
+0x6f27 031161 rtn 
+:      031162 gpio_config_function_int_ext:
+0x6f28 031163 arg core_gpio_conf_hi ,contw 
+0x6f29 031164 increase -16 ,pdata 
+0x6f2a 031165 branch gpio_config_function_int_next 
+:      031169 gpio_get_config:
+0x6f2b 031170 and_into 0x3f ,temp 
+0x6f2c 031171 sub temp ,gpio_number + -1 ,null 
+0x6f2d 031172 nbranch gpio_get_config_ext ,positive 
+0x6f2e 031173 setarg core_gpio_conf 
+:      031174 gpio_get_config_next:
+0x6f2f 031175 iadd temp ,contr 
+0x6f30 031176 ifetch 1 ,contr 
+0x6f31 031177 rtn 
+:      031178 gpio_get_config_ext:
+0x6f32 031179 setarg core_gpio_conf_hi 
+0x6f33 031180 increase -16 ,temp 
+0x6f34 031181 branch gpio_get_config_next 
+:      031185 gpio_set_before_lpm:
+0x6f35 031186 arg gpio_number ,loopcnt 
+0x6f36 031187 arg core_gpio_conf ,contr 
+:      031188 setgpio_loop:
+0x6f37 031189 copy contr ,contw 
+0x6f38 031190 ifetch 1 ,contr 
+0x6f39 031191 beq gpcfg_spid_miso ,setgpio_pullup 
+0x6f3a 031192 beq gpcfg_spid_ncs ,setgpio_pullup 
+0x6f3b 031193 beq gpcfg_spid_sck ,setgpio_pullup 
+0x6f3c 031194 beq gpcfg_spid_mosi ,setgpio_pullup 
+0x6f3d 031195 beq gpcfg_spid_sdio ,setgpio_pullup 
+0x6f3e 031196 beq gpcfg_iic_scl ,setgpio_pullup 
+0x6f3f 031197 beq gpcfg_iic_sda ,setgpio_pullup 
+0x6f40 031198 beq gpcfg_input ,setgpio_pullup 
+:      031199 setgpio_loop_end:
+0x6f41 031200 loop setgpio_loop 
+0x6f42 031201 arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+0x6f43 031202 isub contr ,null 
+0x6f44 031203 rtn zero 
+:      031204 gpio_set_before_lpm_ext:
+0x6f45 031205 arg gpio_number_ext ,loopcnt 
+0x6f46 031206 arg core_gpio_conf_hi ,contr 
+0x6f47 031207 branch setgpio_loop 
+:      031210 setgpio_pullup:
+0x6f48 031211 setarg gpcfg_pullup 
+0x6f49 031212 istore 1 ,contw 
+0x6f4a 031213 branch setgpio_loop_end 
+:      031214 setgpio_pulldown:
+0x6f4b 031215 setarg gpcfg_pulldown 
+0x6f4c 031216 istore 1 ,contw 
+0x6f4d 031217 branch setgpio_loop_end 
+:      031221 sadc_calibration:
+0x6f4e 031222 bpatch patch1b_2 ,mem_patch1b 
+0x6f4f 031223 rtn wake 
+0x6f50 031224 jam 0x77 ,core_gpadc_ctrl 
+0x6f51 031225 jam 0xc9 ,core_gpadc_cfg0 
+0x6f52 031226 jam 0x01 ,core_gpadc_cfg3 
+0x6f53 031227 fetch 1 ,mem_adc_clkdiv 
+0x6f54 031228 store 1 ,core_sadc_clkdiv 
+0x6f55 031229 call sadc_read 
+0x6f56 031230 jam 0xc1 ,core_gpadc_cfg0 
+:      031231 sadc_cal_read:
+0x6f57 031232 arg 7 ,loopcnt 
+0x6f58 031233 arg mem_adc_cal_c0 ,rega 
+0x6f59 031234 jam 0x05 ,core_gpadc_cfg2 
+:      031235 sadc_cal_read_loop:
+0x6f5a 031236 fetch 1 ,core_gpadc_status 
+0x6f5b 031237 istore 1 ,rega 
+0x6f5c 031238 increase 1 ,rega 
+0x6f5d 031239 fetch 1 ,core_gpadc_cfg2 
+0x6f5e 031240 increase 0x20 ,pdata 
+0x6f5f 031241 store 1 ,core_gpadc_cfg2 
+0x6f60 031242 loop sadc_cal_read_loop 
+0x6f61 031243 jam 0x00 ,core_gpadc_ctrl 
+0x6f62 031244 rtn 
+:      031246 sadc_cal_write:
+0x6f63 031247 fetch 1 ,core_sadc_ctrl 
+0x6f64 031248 set1 1 ,pdata 
+0x6f65 031249 store 1 ,core_sadc_ctrl 
+0x6f66 031250 arg 7 ,loopcnt 
+0x6f67 031251 arg mem_adc_cal_c0 ,rega 
+0x6f68 031252 jam 0x15 ,core_gpadc_cfg2 
+:      031253 sadc_cal_write_loop:
+0x6f69 031254 ifetch 1 ,rega 
+0x6f6a 031255 store 1 ,core_gpadc_cfg1 
+0x6f6b 031256 increase 1 ,rega 
+0x6f6c 031257 fetch 1 ,core_gpadc_cfg2 
+0x6f6d 031258 increase 0x20 ,pdata 
+0x6f6e 031259 store 1 ,core_gpadc_cfg2 
+0x6f6f 031260 loop sadc_cal_write_loop 
+0x6f70 031261 fetch 1 ,core_sadc_ctrl 
+0x6f71 031262 set0 1 ,pdata 
+0x6f72 031263 store 1 ,core_sadc_ctrl 
+0x6f73 031264 rtn 
+:      031268 adc_init_data:
+0x6f74 031269 bpatch patch1b_3 ,mem_patch1b 
+0x6f75 031270 fetch 8 ,mem_otp_adc 
+0x6f76 031271 branch adc_init_cal_data_default ,blank 
+0x6f77 031272 store 8 ,mem_3v_adc_io_data 
+0x6f78 031273 rtn 
+:      031275 adc_init_cal_data_default:
+0x6f79 031276 setarg 0x0bbe 
+0x6f7a 031277 store 2 ,mem_3v_adc_io_data 
+0x6f7b 031278 setarg 0x03f0 
+0x6f7c 031279 store 2 ,mem_1v_adc_io_data 
+0x6f7d 031280 setarg 0x027e 
+0x6f7e 031281 store 2 ,mem_2v_adc_hvin_data 
+0x6f7f 031282 setarg 0x03c4 
+0x6f80 031283 store 2 ,mem_3v_adc_hvin_data 
+0x6f81 031284 rtn 
+:      031286 enable_adc:
+0x6f82 031287 bpatch patch1b_4 ,mem_patch1b 
+0x6f83 031288 call sadc_cal_write 
+0x6f84 031289 fetch 1 ,core_gpadc_cfg1 
+0x6f85 031290 set0 7 ,pdata 
+0x6f86 031291 store 1 ,core_gpadc_cfg1 
+0x6f87 031292 jam 0x77 ,core_gpadc_ctrl 
+0x6f88 031293 jam 0xc1 ,core_gpadc_cfg0 
+0x6f89 031294 jam 0x01 ,core_gpadc_cfg3 
+0x6f8a 031295 call sadc_channel 
+0x6f8b 031296 fetch 1 ,mem_adc_clkdiv 
+0x6f8c 031297 store 1 ,core_sadc_clkdiv 
+0x6f8d 031298 call sadc_read 
+0x6f8e 031299 jam 0 ,core_sadc_clkdiv 
+0x6f8f 031300 branch sadc_dma 
+:      031302 sadc_channel:
+0x6f90 031303 fetch 1 ,mem_adc_channel 
+0x6f91 031304 lshift4 pdata ,pdata 
+0x6f92 031305 fetcht 1 ,core_gpadc_cfg3 
+0x6f93 031306 and_into 0x0f ,temp 
+0x6f94 031307 ior temp ,temp 
+0x6f95 031308 storet 1 ,core_gpadc_cfg3 
+0x6f96 031309 rtn 
+:      031311 sadc_read:
+0x6f97 031312 jam 0x03 ,core_sadc_ctrl 
+:      031313 sadc_read_wait:
+0x6f98 031314 fetch 1 ,core_perf_status 
+0x6f99 031315 bbit0 saradc_done ,sadc_read_wait 
+0x6f9a 031316 fetcht 2 ,core_sadc_data 
+0x6f9b 031317 storet 2 ,mem_adc_current_value 
+0x6f9c 031318 jam 0x06 ,core_sadc_ctrl 
+:      031319 sadc_read_wait2:
+0x6f9d 031320 fetch 1 ,core_perf_status 
+0x6f9e 031321 bbit1 saradc_done ,sadc_read_wait2 
+0x6f9f 031322 jam 0x00 ,core_sadc_ctrl 
+0x6fa0 031323 rtn 
+:      031325 sadc_dma:
+0x6fa1 031326 fetch 1 ,mem_adc_dma_enable 
+0x6fa2 031327 rtn blank 
+0x6fa3 031328 fetch 1 ,core_gpadc_cfg1 
+0x6fa4 031329 set1 7 ,pdata 
+0x6fa5 031330 store 1 ,core_gpadc_cfg1 
+0x6fa6 031331 fetch 1 ,mem_adc_clkdiv 
+0x6fa7 031332 store 1 ,core_sadc_clkdiv 
+0x6fa8 031333 fetch 2 ,mem_adc_saddr_ptr 
+0x6fa9 031334 store 2 ,core_sadc_saddr 
+0x6faa 031335 fetch 2 ,mem_adc_eaddr_ptr 
+0x6fab 031336 store 2 ,core_sadc_eaddr 
+0x6fac 031337 jam 0x0b ,core_sadc_ctrl 
+0x6fad 031338 nop 1000 
+0x6fae 031339 jam 0x03 ,core_sadc_ctrl 
+0x6faf 031340 rtn 
+:      031342 vdd_calculate_by_mode:
+0x6fb0 031343 bpatch patch1b_5 ,mem_patch1b 
+0x6fb1 031344 fetch 1 ,mem_adc_config_flag 
+0x6fb2 031345 beq adc_config_hvin ,vdd_calculate_hvin 
+0x6fb3 031346 beq adc_config_gpio ,vdd_calculate_io 
+0x6fb4 031347 rtn 
+:      031349 vdd_calculate_hvin:
+0x6fb5 031350 setarg 1000 
+0x6fb6 031351 store 2 ,mem_reference_voltage 
+0x6fb7 031352 fetcht 2 ,mem_3v_adc_hvin_data 
+0x6fb8 031353 fetch 2 ,mem_2v_adc_hvin_data 
+0x6fb9 031354 arg 2000 ,regc 
+0x6fba 031355 branch vdd_calculate 
+:      031357 vdd_calculate_io:
+0x6fbb 031358 setarg 2000 
+0x6fbc 031359 store 2 ,mem_reference_voltage 
+0x6fbd 031360 fetcht 2 ,mem_3v_adc_io_data 
+0x6fbe 031361 fetch 2 ,mem_1v_adc_io_data 
+0x6fbf 031362 arg 1000 ,regc 
+:      031363 vdd_calculate:
+0x6fc0 031364 isub temp ,rega 
+0x6fc1 031365 fetch 2 ,mem_adc_current_value 
+0x6fc2 031366 isub temp ,pdata 
+0x6fc3 031367 nbranch vdd_calculate1 ,positive 
+0x6fc4 031368 fetcht 2 ,mem_reference_voltage 
+0x6fc5 031369 imul32 temp ,regb 
+0x6fc6 031370 copy regc ,pdata 
+0x6fc7 031371 imul32 rega ,pdata 
+0x6fc8 031372 iadd regb ,pdata 
+:      031373 vdd_calculate2:
+0x6fc9 031374 idiv rega 
+0x6fca 031375 call wait_div_end 
+0x6fcb 031376 quotient pdata 
+0x6fcc 031377 rtn 
+:      031379 vdd_calculate1:
+0x6fcd 031380 copy temp ,pdata 
+0x6fce 031381 fetcht 2 ,mem_adc_current_value 
+0x6fcf 031382 isub temp ,pdata 
+0x6fd0 031383 fetcht 2 ,mem_reference_voltage 
+0x6fd1 031384 imul32 temp ,regb 
+0x6fd2 031385 copy regc ,pdata 
+0x6fd3 031386 imul32 rega ,pdata 
+0x6fd4 031387 isub regb ,pdata 
+0x6fd5 031388 nbranch set_pdata_0 ,positive 
+0x6fd6 031389 branch vdd_calculate2 
+:      031393 adc_bat_percent_lowpower_out:
+0x6fd7 031394 ifetch 8 ,rega 
+0x6fd8 031395 store 8 ,mem_pdatatemp 
+0x6fd9 031396 fetch 2 ,mem_pdatatemp 
+0x6fda 031397 fetcht 2 ,mem_pdatatemp + 2 
+0x6fdb 031398 isub temp ,rega 
+0x6fdc 031399 fetch 2 ,mem_pdatatemp + 6 
+0x6fdd 031400 isub temp ,regb 
+0x6fde 031401 fetcht 2 ,mem_pdatatemp + 4 
+0x6fdf 031402 isub temp ,null 
+0x6fe0 031403 ncall adc_set_low_power_flag ,positive 
+0x6fe1 031404 mul32 regb ,100 ,pdata 
+0x6fe2 031405 idiv rega 
+0x6fe3 031406 call wait_div_end 
+0x6fe4 031407 quotient pdata 
+0x6fe5 031408 call adc_set_no_power_flag ,blank 
+0x6fe6 031409 rtn 
+:      031411 adc_set_low_power_flag:
+0x6fe7 031412 fetch 1 ,mem_adc_power_flag 
+0x6fe8 031413 set1 0 ,pdata 
+0x6fe9 031414 store 1 ,mem_adc_power_flag 
+0x6fea 031415 rtn 
+:      031417 adc_clear_low_power_flag:
+0x6feb 031418 fetch 1 ,mem_adc_power_flag 
+0x6fec 031419 set0 0 ,pdata 
+0x6fed 031420 store 1 ,mem_adc_power_flag 
+0x6fee 031421 rtn 
+:      031423 adc_set_no_power_flag:
+0x6fef 031424 fetcht 1 ,mem_adc_power_flag 
+0x6ff0 031425 set1 1 ,temp 
+0x6ff1 031426 storet 1 ,mem_adc_power_flag 
+0x6ff2 031427 rtn 
+:      031429 adc_clear_no_power_flag:
+0x6ff3 031430 fetcht 1 ,mem_adc_power_flag 
+0x6ff4 031431 set0 1 ,temp 
+0x6ff5 031432 storet 1 ,mem_adc_power_flag 
+0x6ff6 031433 rtn 
+:      031438 keyscan_key_init:
+0x6ff7 031439 fetch 2 ,mem_key_num_ptr 
+0x6ff8 031440 ifetch 1 ,pdata 
+:      031441 keyscan_key_init_next:
+0x6ff9 031442 rtn blank 
+0x6ffa 031443 copy pdata ,loopcnt 
+0x6ffb 031445 fetch 2 ,mem_keyscan_ptr 
+0x6ffc 031446 increase 3 ,pdata 
+0x6ffd 031447 copy pdata ,rega 
+:      031448 keyscan_key_init_lp1:
+0x6ffe 031449 ifetcht 1 ,rega 
+0x6fff 031450 call gpio_config_input 
+0x7000 031451 increase key_conf_struct_len ,rega 
+0x7001 031452 loop keyscan_key_init_lp1 
+:      031453 keyscan_key_init_end:
+0x7002 031454 rtn 
+:      031456 keyscan_scan_key:
+0x7003 031457 fetch 2 ,mem_keyscan_ptr 
+0x7004 031458 increase 3 ,pdata 
+0x7005 031459 copy pdata ,rega 
+0x7006 031461 force 0 ,regb 
+0x7007 031462 setarg 0 
+0x7008 031463 store 2 ,mem_key_value_temp 
+:      031464 keyscan_scan_key_lp1:
+0x7009 031465 ifetcht 1 ,rega 
+0x700a 031466 call gpio_get_bit 
+0x700b 031467 bpatch patch1b_6 ,mem_patch1b 
+0x700c 031468 fetch 2 ,mem_key_value_temp 
+0x700d 031469 copy regb ,queue 
+0x700e 031470 qsetflag true ,pdata 
+0x700f 031471 store 2 ,mem_key_value_temp 
+0x7010 031472 increase key_conf_struct_len ,rega 
+0x7011 031473 increase 1 ,regb 
+0x7012 031474 fetch 2 ,mem_key_num_ptr 
+0x7013 031475 ifetch 1 ,pdata 
+:      031476 keyscan_scan_key_lp1_next:
+0x7014 031477 ixor regb ,null 
+0x7015 031478 nbranch keyscan_scan_key_lp1 ,zero 
+0x7016 031479 fetch 2 ,mem_key_value_temp 
+0x7017 031480 fetcht 2 ,mem_key_value_retention 
+0x7018 031481 ixor temp ,null 
+0x7019 031482 rtn zero 
+0x701a 031483 branch enable_user 
+:      031485 keyscan_process_lpm_before:
+0x701b 031486 fetch 2 ,mem_key_num_ptr 
+0x701c 031487 ifetch 1 ,pdata 
+:      031488 keyscan_process_lpm_before_next:
+0x701d 031489 rtn blank 
+0x701e 031490 copy pdata ,loopcnt 
+0x701f 031491 fetch 2 ,mem_keyscan_ptr 
+0x7020 031492 increase 3 ,pdata 
+0x7021 031493 copy pdata ,rega 
+:      031494 keyscan_process_lpm_before_lp1:
+0x7022 031495 ifetcht 1 ,rega 
+0x7023 031496 call gpio_set_wake_by_current_state 
+0x7024 031497 increase key_conf_struct_len ,rega 
+0x7025 031498 loop keyscan_process_lpm_before_lp1 
+:      031499 keyscan_process_lpm_before_end:
+0x7026 031500 rtn 
+:      031502 keyscan_key_process:
+0x7027 031503 arg key_scan_timer ,queue 
+0x7028 031504 call timer_check 
+0x7029 031505 nrtn blank 
+0x702a 031506 setarg 0x20 
+0x702b 031507 arg key_scan_timer ,queue 
+0x702c 031508 call timer_init 
+0x702d 031509 disable user 
+0x702e 031510 call keyscan_process_lpm_before 
+0x702f 031511 bpatch patch1b_7 ,mem_patch1b 
+0x7030 031512 fetch 2 ,mem_key_num_ptr 
+0x7031 031513 ifetch 1 ,pdata 
+:      031514 keyscan_key_process_next:
+0x7032 031515 rtn blank 
+0x7033 031516 call keyscan_scan_key 
+0x7034 031517 nbranch lpm_button_clean_wake_lock ,user 
+0x7035 031518 call lpm_button_get_wake_lock 
+0x7036 031519 disable user 
+0x7037 031520 fetch 2 ,mem_key_value_temp 
+0x7038 031521 store 2 ,mem_key_value_temp4 
+0x7039 031522 jam 0 ,mem_key_value_temp6 
+0x703a 031523 force 0 ,queue 
+:      031524 keyscan_key_lp1:
+0x703b 031525 fetch 2 ,mem_key_value_retention 
+0x703c 031526 rshift pdata ,temp 
+0x703d 031527 storet 2 ,mem_key_value_retention 
+0x703e 031528 and pdata ,0x01 ,pdata 
+0x703f 031529 fetcht 2 ,mem_key_value_temp4 
+0x7040 031530 and temp ,0x01 ,rega 
+0x7041 031531 rshift temp ,temp 
+0x7042 031532 storet 2 ,mem_key_value_temp4 
+0x7043 031533 ixor rega ,null 
+0x7044 031534 ncall keyscan_send_key_data ,zero 
+0x7045 031535 fetch 2 ,mem_key_num_ptr 
+0x7046 031536 ifetch 1 ,pdata 
+:      031537 keyscan_key_lp1_next:
+0x7047 031538 fetcht 1 ,mem_key_value_temp6 
+0x7048 031539 increase 1 ,temp 
+0x7049 031540 storet 1 ,mem_key_value_temp6 
+0x704a 031541 copy temp ,queue 
+0x704b 031542 ixor queue ,null 
+0x704c 031543 nbranch keyscan_key_lp1 ,zero 
+0x704d 031544 fetch 2 ,mem_key_value_temp 
+0x704e 031545 store 2 ,mem_key_value_retention 
+0x704f 031546 rtn 
+:      031547 keyscan_send_key_data:
+0x7050 031548 bpatch patch1c_0 ,mem_patch1c 
+0x7051 031549 fetch 2 ,mem_keyscan_ptr 
+0x7052 031550 increase 1 ,pdata 
+0x7053 031551 ifetch 2 ,pdata 
+0x7054 031552 branch callback_func 
+:      031558 pwm_init:
+0x7055 031559 fetch 1 ,core_clksel 
+0x7056 031560 ior rega ,pdata 
+0x7057 031561 store 1 ,core_clksel 
+0x7058 031562 fetch 2 ,core_clkoff 
+0x7059 031563 set0 clock_off_pwm ,pdata 
+0x705a 031564 store 2 ,core_clkoff 
+:      031565 delay_nop100:
+0x705b 031566 nop 100 
+0x705c 031567 rtn 
+:      031569 pwm_clk_set:
+0x705d 031570 fetch 1 ,core_clksel 
+0x705e 031571 bbit1 6 ,pwm_24m_clk_set 
+0x705f 031572 bbit1 7 ,pwm_33k_clk_set 
+:      031573 pwm_12m_clk_set:
+0x7060 031574 setarg pwm_12mhz 
+0x7061 031575 rtn 
+:      031576 pwm_24m_clk_set:
+0x7062 031577 setarg pwm_24mhz 
+0x7063 031578 rtn 
+:      031579 pwm_33k_clk_set:
+0x7064 031580 setarg pwm_33khz 
+0x7065 031581 rtn 
+:      031584 pwm_out_set:
+0x7066 031585 fetcht 3 ,mem_pdatatemp + 2 
+0x7067 031586 call pwm_clk_set 
+0x7068 031587 idiv temp 
+0x7069 031588 call wait_div_end 
+0x706a 031589 quotient temp 
+0x706b 031590 fetch 1 ,mem_pdatatemp + 5 
+0x706c 031591 imul32 temp ,pdata 
+0x706d 031592 div pdata ,100 
+0x706e 031593 call wait_div_end 
+0x706f 031594 quotient rega 
+0x7070 031595 copy temp ,pdata 
+0x7071 031596 isub rega ,regb 
+0x7072 031598 fetch 1 ,mem_pdatatemp + 1 
+0x7073 031599 call pwm_duty_cycle_set 
+0x7074 031600 fetch 1 ,mem_pdatatemp 
+0x7075 031601 fetcht 1 ,mem_pdatatemp + 1 
+0x7076 031602 and_into 0x0f ,temp 
+0x7077 031603 lshift8 temp ,temp 
+0x7078 031604 ior temp ,pdata 
+0x7079 031605 branch pwm_enable 
+:      031607 pwm_duty_cycle_set:
+0x707a 031608 iforce queue 
+0x707b 031609 call pwm_duty_cycle_set_without_autoload 
+0x707c 031610 branch pwm_autoload_set 
+:      031612 pwm_autoload_set:
+0x707d 031613 fetch 1 ,core_pwm_autoload 
+0x707e 031614 qset1 pdata 
+0x707f 031615 store 1 ,core_pwm_autoload 
+0x7080 031616 fetcht 1 ,core_clksel 
+0x7081 031617 isolate1 7 ,temp 
+0x7082 031618 call delay_1clk_of_33k ,true 
+0x7083 031619 qset0 pdata 
+0x7084 031620 store 1 ,core_pwm_autoload 
+0x7085 031621 rtn 
+:      031624 delay_1clk_of_33k:
+0x7086 031625 nop 480 
+0x7087 031626 rtn 
+:      031628 pwm_duty_cycle_set_without_autoload:
+0x7088 031629 and_into 0x0f ,pdata 
+0x7089 031630 arg core_pwm_pcnt0 ,contw 
+0x708a 031631 mul32 pdata ,4 ,pdata 
+0x708b 031632 iadd contw ,contw 
+0x708c 031633 copy rega ,pdata 
+0x708d 031634 istore 2 ,contw 
+0x708e 031635 copy regb ,pdata 
+0x708f 031636 istore 2 ,contw 
+0x7090 031637 rtn 
+:      031642 pwm_enable_in_syncmode:
+0x7091 031643 rshift8 regb ,queue 
+0x7092 031644 call pwm_init_bit_set 
+0x7093 031645 rshift8 regb ,queue 
+0x7094 031646 call pwm_syncmode_set 
+0x7095 031647 rshift8 rega ,queue 
+0x7096 031648 enable true 
+0x7097 031649 call pwm_syncmode_set_process 
+0x7098 031651 deposit rega 
+0x7099 031652 call pwm_gpio_select 
+0x709a 031653 deposit regb 
+0x709b 031654 branch pwm_enable 
+:      031656 pwm_disable_in_syncmode:
+0x709c 031657 deposit rega 
+0x709d 031658 call pwm_disable 
+0x709e 031659 deposit regb 
+0x709f 031660 call pwm_disable 
+0x70a0 031662 rshift8 rega ,queue 
+0x70a1 031663 disable true 
+0x70a2 031664 call pwm_syncmode_set_process 
+0x70a3 031665 rshift8 regb ,queue 
+0x70a4 031666 disable true 
+0x70a5 031667 call pwm_init_bit_set_process 
+0x70a6 031668 rshift8 regb ,queue 
+0x70a7 031669 disable true 
+0x70a8 031670 branch pwm_syncmode_set_process 
+:      031673 pwm_syncmode_set:
+0x70a9 031674 isolate1 7 ,queue 
+:      031675 pwm_syncmode_set_process:
+0x70aa 031676 and queue ,0x0f ,queue 
+0x70ab 031677 fetch 1 ,core_pwm_sync 
+0x70ac 031678 qsetflag true ,pdata 
+0x70ad 031679 store 1 ,core_pwm_sync 
+0x70ae 031680 rtn 
+:      031682 pwm_init_bit_set:
+0x70af 031683 isolate1 6 ,queue 
+:      031684 pwm_init_bit_set_process:
+0x70b0 031685 and queue ,0x0f ,queue 
+0x70b1 031686 fetch 1 ,core_pwm_init 
+0x70b2 031687 qsetflag true ,pdata 
+0x70b3 031688 store 1 ,core_pwm_init 
+0x70b4 031689 rtn 
+:      031690 pwm_gpio_select:
+0x70b5 031691 call pwm_select_channel 
+:      031692 pwm_gpio_select_process:
+0x70b6 031693 lshift8 pdata ,pdata 
+0x70b7 031694 add queue ,gpcfg_pwm_out0 ,temp 
+0x70b8 031695 ior temp ,pdata 
+0x70b9 031696 branch gpio_config_param 
+:      031698 pwm_enable:
+0x70ba 031699 enable user 
+0x70bb 031700 call pwm_gpio_select 
+0x70bc 031701 branch pwm_set_select 
+:      031703 pwm_disable:
+0x70bd 031704 disable user 
+0x70be 031705 call pwm_select_channel 
+0x70bf 031706 branch pwm_set_select 
+:      031708 pwm_set_select:
+0x70c0 031709 and queue ,0x0f ,queue 
+0x70c1 031710 fetch 1 ,core_pwm_en 
+0x70c2 031711 qsetflag user ,pdata 
+0x70c3 031712 store 1 ,core_pwm_en 
+0x70c4 031713 rtn 
+:      031714 pwm_select_channel:
+0x70c5 031715 rshift8 pdata ,queue 
+0x70c6 031716 and queue ,0x0f ,queue 
+0x70c7 031717 rtn 
+:      031721 wdt_init_config:
+0x70c8 031722 copy pdata ,temp 
+0x70c9 031723 bpatch patch1c_1 ,mem_patch1c 
+0x70ca 031724 call wdt_set_enable 
+0x70cb 031725 setarg 2048 
+0x70cc 031726 isub temp ,pdata 
+0x70cd 031727 copy pdata ,temp 
+0x70ce 031728 rshift4 temp ,temp 
+0x70cf 031729 storet 1 ,core_write_wdt 
+0x70d0 031730 nop 1400 
+0x70d1 031731 copy pdata ,temp 
+0x70d2 031732 and_into 0x0f ,temp 
+0x70d3 031733 storet 1 ,core_write_wdt2 
+0x70d4 031734 rtn 
+:      031737 wdt_set_enable:
+0x70d5 031738 enable user2 
+0x70d6 031739 branch wdt_init_set 
+:      031742 wdt_set_disable:
+0x70d7 031743 bpatch patch1c_2 ,mem_patch1c 
+0x70d8 031744 disable user2 
+:      031745 wdt_init_set:
+0x70d9 031746 fetch 1 ,core_config 
+0x70da 031747 setflag user2 ,3 ,pdata 
+0x70db 031748 store 1 ,core_config 
+0x70dc 031749 rtn 
+:      031754 nec61212_init:
+0x70dd 031755 arg fun_nec_enable | fun_nec_clk_divide_24 ,temp 
+:      031758 nec_init_config:
+0x70de 031759 store 4 ,core_nec_start_addr 
+0x70df 031760 store 2 ,core_nec_rptr 
+0x70e0 031761 storet 1 ,core_nec_ctrl 
+0x70e1 031762 rtn 
+:      031765 nec_check_rxbuff_size:
+0x70e2 031766 fetch 2 ,core_nec_rxitem 
+0x70e3 031767 rtn 
+:      031769 nec_prepare_read:
+0x70e4 031770 fetchr contu ,2 ,core_nec_rptr 
+0x70e5 031771 fetchr contus ,2 ,core_nec_start_addr 
+0x70e6 031772 fetchr contue ,2 ,core_nec_end_addr 
+0x70e7 031773 rtn 
+:      031775 nec_read_done:
+0x70e8 031776 storer contu ,2 ,core_nec_rptr 
+0x70e9 031777 rtn 
+:      031784 nec_parse_nec61212:
+0x70ea 031785 call enable_user 
+0x70eb 031786 arg 0 ,rege 
+0x70ec 031787 call nec_check_rxbuff_size 
+0x70ed 031788 beq 2 ,nec_parse_nec61212_check_timeout 
+0x70ee 031789 sub pdata ,4 ,null 
+0x70ef 031790 rtn positive 
+0x70f0 031791 call nec_prepare_read 
+0x70f1 031792 ifetcht 2 ,contu 
+0x70f2 031793 setarg nec61212_data2repeat_time 
+0x70f3 031794 call nec_check_pulse_range_legal_default_deviation 
+0x70f4 031795 nbranch nec_parse_nec61212_check_repeat_data ,positive 
+0x70f5 031796 copy regd ,temp 
+0x70f6 031797 setarg nec61212_repeat2repeat_time 
+0x70f7 031798 call nec_check_pulse_range_legal_default_deviation 
+0x70f8 031799 nbranch nec_parse_nec61212_check_repeat_data ,positive 
+0x70f9 031801 copy regd ,temp 
+0x70fa 031802 setarg nec61212_boot_code_start_time 
+0x70fb 031803 call nec_check_pulse_range_legal_default_deviation 
+0x70fc 031804 branch nec_parse_nec61212_error_data ,positive 
+0x70fd 031805 ifetcht 2 ,contu 
+0x70fe 031806 setarg nec61212_boot_code_end_time 
+0x70ff 031807 call nec_check_pulse_range_legal_default_deviation 
+0x7100 031808 branch nec_parse_nec61212_error_data ,positive 
+0x7101 031809 call nec_check_rxbuff_size 
+0x7102 031810 sub pdata ,133 ,null 
+0x7103 031811 rtn positive 
+0x7104 031812 arg 32 ,loopcnt 
+:      031813 nec_parse_nec61212_data:
+0x7105 031814 ifetcht 2 ,contu 
+0x7106 031815 setarg nec61212_data_bit_1_start_time 
+0x7107 031816 call nec_check_pulse_range_legal_default_deviation 
+0x7108 031817 branch nec_parse_nec61212_error_data ,positive 
+0x7109 031818 ifetcht 2 ,contu 
+0x710a 031819 setarg nec61212_data_bit_1_end_time 
+0x710b 031820 call nec_check_pulse_range_legal_default_deviation 
+0x710c 031821 nbranch nec_parse_nec61212_add_bit1 ,positive 
+0x710d 031822 copy regd ,temp 
+0x710e 031823 setarg nec61212_data_bit_0_end_time 
+0x710f 031824 call nec_check_pulse_range_legal_default_deviation 
+0x7110 031825 nbranch nec_parse_nec61212_add_bit0 ,positive 
+:      031828 nec_parse_nec61212_error_data:
+0x7111 031829 copy regd ,temp 
+0x7112 031830 setarg nec61212_timeout_time 
+0x7113 031831 isub temp ,null 
+0x7114 031832 branch nec_parse_nec61212_check_timeout_cb ,zero 
+0x7115 031833 branch nec_read_done 
+:      031835 nec_parse_nec61212_add_bit1:
+0x7116 031836 set1 32 ,rege 
+:      031837 nec_parse_nec61212_add_bit0:
+0x7117 031838 rshift rege ,rege 
+0x7118 031839 loop nec_parse_nec61212_data 
+0x7119 031840 branch nec_parse_nec61212_check_stop_bit 
+:      031842 nec_parse_nec61212_check_repeat_data:
+0x711a 031843 call nec_check_rxbuff_size 
+0x711b 031844 sub pdata ,7 ,null 
+0x711c 031845 rtn positive 
+0x711d 031846 ifetcht 2 ,contu 
+0x711e 031847 setarg nec61212_repeat_start_time 
+0x711f 031848 call nec_check_pulse_range_legal_default_deviation 
+0x7120 031849 branch nec_parse_nec61212_error_data ,positive 
+0x7121 031850 ifetcht 2 ,contu 
+0x7122 031851 setarg nec61212_repeat_end_time 
+0x7123 031852 call nec_check_pulse_range_legal_default_deviation 
+0x7124 031853 branch nec_parse_nec61212_error_data ,positive 
+:      031854 nec_parse_nec61212_check_stop_bit:
+0x7125 031855 ifetcht 2 ,contu 
+0x7126 031856 setarg nec61212_stop_time 
+0x7127 031857 call nec_check_pulse_range_legal_default_deviation 
+0x7128 031858 branch nec_parse_nec61212_error_data ,positive 
+0x7129 031859 call nec_read_done 
+0x712a 031860 copy regc ,pdata 
+0x712b 031861 branch callback_func 
+:      031863 nec_parse_nec61212_check_timeout:
+0x712c 031864 call nec_prepare_read 
+0x712d 031865 ifetcht 2 ,contu 
+0x712e 031866 setarg nec61212_timeout_time 
+0x712f 031867 isub temp ,null 
+0x7130 031868 nrtn zero 
+:      031869 nec_parse_nec61212_check_timeout_cb:
+0x7131 031870 call nec_read_done 
+0x7132 031871 call disable_user 
+0x7133 031872 copy regc ,pdata 
+0x7134 031873 branch callback_func 
+:      031880 nec_check_pulse_range_legal_default_deviation:
+0x7135 031881 fetchr regb ,1 ,mem_nec_decode_error_value 
+:      031890 nec_check_pulse_range_legal:
+0x7136 031891 copy temp ,regd 
+0x7137 031892 imul32 regb ,regb 
+0x7138 031893 lshift temp ,temp 
+0x7139 031894 isub temp ,rega 
+0x713a 031895 ncall nec_check_pulse_range_legal_data_negative ,positive 
+0x713b 031896 mul32 rega ,100 ,pdata 
+0x713c 031897 isub regb ,null 
+0x713d 031898 rtn 
+:      031900 nec_check_pulse_range_legal_data_negative:
+0x713e 031901 sub rega ,0 ,rega 
+0x713f 031902 rtn 
+:      031913 function_g2:
+0x7140 031914 bpatch patch1c_3 ,mem_patch1c 
+0x7141 031915 jam 80 ,mem_aes_cmac_data_length 
+0x7142 031916 arg mem_dat ,contw 
+0x7143 031917 arg mem_le_srand ,contr 
+0x7144 031918 call memcpy16 
+0x7145 031919 arg mem_sc_pubkey_local_x_256 ,contr 
+0x7146 031920 call memcpy32 
+0x7147 031921 arg mem_le_pubkey_remote_x_256 ,contr 
+0x7148 031922 call memcpy32 
+0x7149 031923 call inverse_memdat 
+0x714a 031924 arg mem_le_mrand ,contr 
+0x714b 031925 call store_inverse_k 
+0x714c 031926 call function_aes_cmac 
+0x714d 031928 arg mem_aes_cmac_temp ,contw 
+0x714e 031929 call load_inverse_result 
+0x714f 031930 setarg 1000000 
+0x7150 031931 copy pdata ,rega 
+0x7151 031932 fetch 4 ,mem_aes_cmac_temp 
+0x7152 031933 idiv rega 
+0x7153 031934 call wait_div_end 
+0x7154 031935 remainder pdata 
+0x7155 031936 store 4 ,mem_gkey 
+0x7156 031938 rtn 
+:      031940 function_f6_eb:
+0x7157 031941 jam 65 ,mem_aes_cmac_data_length 
+0x7158 031942 arg mem_dat ,contw 
+0x7159 031943 call store_addr_common_a 
+0x715a 031944 call store_addr_common_b 
+0x715b 031945 fetch 3 ,mem_le_pres + 1 
+0x715c 031946 istore 3 ,contw 
+0x715d 031949 call get_r 
+0x715e 031951 arg mem_le_mrand ,contr 
+0x715f 031952 call memcpy16 
+0x7160 031953 arg mem_le_srand ,contr 
+0x7161 031954 call memcpy16 
+0x7162 031955 call inverse_memdat 
+0x7163 031956 arg mem_le_mackey ,contr 
+0x7164 031957 arg mem_aes_cmac_k ,contw 
+0x7165 031958 call memcpy16 
+0x7166 031960 branch function_aes_cmac 
+:      031964 get_r:
+0x7167 031965 fetch 4 ,mem_le_tk 
+0x7168 031966 istore 4 ,contw 
+0x7169 031967 call memset0_4 
+0x716a 031968 branch memset0_8 
+:      031970 function_f6_ea:
+0x716b 031971 bpatch patch1c_4 ,mem_patch1c 
+0x716c 031972 jam 65 ,mem_aes_cmac_data_length 
+0x716d 031973 arg mem_dat ,contw 
+0x716e 031974 call store_addr_common_b 
+0x716f 031975 call store_addr_common_a 
+0x7170 031976 fetch 3 ,mem_le_preq + 1 
+0x7171 031977 istore 3 ,contw 
+0x7172 031980 call get_r 
+0x7173 031981 arg mem_le_srand ,contr 
+0x7174 031982 call memcpy16 
+0x7175 031983 arg mem_le_mrand ,contr 
+0x7176 031984 call memcpy16 
+0x7177 031985 call inverse_memdat 
+0x7178 031986 arg mem_le_mackey ,contr 
+0x7179 031987 arg mem_aes_cmac_k ,contw 
+0x717a 031988 call memcpy16 
+0x717b 031990 call function_aes_cmac 
+0x717c 031991 arg mem_aes_cmac_temp ,contw 
+0x717d 031992 branch load_inverse_result 
+:      031994 function_f5:
+0x717e 031995 jam 32 ,mem_aes_cmac_data_length 
+0x717f 031996 arg mem_le_dhkey_256 ,contr 
+0x7180 031997 arg mem_dat ,contw 
+0x7181 031998 call memcpy32 
+0x7182 031999 call inverse_memdat 
+0x7183 032000 arg mem_le_slat ,contr 
+0x7184 032001 call store_inverse_k 
+0x7185 032002 call function_aes_cmac 
+0x7186 032003 arg mem_aes_cmac_k ,contw 
+0x7187 032004 call store_aes_result 
+0x7188 032005 arg 1 ,temp 
+0x7189 032006 call function_f5_common 
+0x718a 032007 arg mem_le_ltk ,contw 
+0x718b 032008 call load_inverse_result 
+0x718c 032009 arg 0 ,temp 
+0x718d 032010 call function_f5_common 
+0x718e 032011 arg mem_le_mackey ,contw 
+0x718f 032013 branch store_aes_result 
+:      032016 function_f5_common:
+0x7190 032017 bpatch patch1c_5 ,mem_patch1c 
+0x7191 032018 jam 53 ,mem_aes_cmac_data_length 
+0x7192 032019 setarg 0x100 
+0x7193 032020 store 2 ,mem_dat 
+0x7194 032021 call store_addr_common_b 
+0x7195 032022 call store_addr_common_a 
+0x7196 032023 arg mem_le_srand ,contr 
+0x7197 032024 call memcpy16 
+0x7198 032025 arg mem_le_mrand ,contr 
+0x7199 032026 call memcpy16 
+0x719a 032028 setarg 0x6c65 
+0x719b 032029 istore 2 ,contw 
+0x719c 032030 setarg 0x6274 
+0x719d 032031 istore 2 ,contw 
+0x719e 032032 istoret 1 ,contw 
+0x719f 032033 call inverse_memdat 
+0x71a0 032034 branch function_aes_cmac 
+:      032036 store_addr_common_b:
+0x71a1 032037 fetch 6 ,mem_le_lap 
+0x71a2 032038 istore 6 ,contw 
+0x71a3 032039 fetch 1 ,mem_le_conn_own_addr_type 
+0x71a4 032040 istore 1 ,contw 
+0x71a5 032041 rtn 
+:      032043 store_addr_common_a:
+0x71a6 032044 fetch 6 ,mem_le_plap 
+0x71a7 032045 istore 6 ,contw 
+0x71a8 032050 fetch 1 ,mem_le_conn_peer_addr_type 
+0x71a9 032051 istore 1 ,contw 
+0x71aa 032052 rtn 
+:      032054 function_f4_ca:
+0x71ab 032055 jam 65 ,mem_aes_cmac_data_length 
+0x71ac 032056 fetch 1 ,mem_passkey_1bit 
+0x71ad 032057 store 1 ,mem_dat 
+0x71ae 032058 arg mem_sc_pubkey_local_x_256 ,contr 
+0x71af 032059 call memcpy32 
+0x71b0 032060 arg mem_le_pubkey_remote_x_256 ,contr 
+0x71b1 032061 call memcpy32 
+0x71b2 032062 call inverse_memdat 
+0x71b3 032063 arg mem_le_mrand ,contr 
+0x71b4 032064 call store_inverse_k 
+0x71b5 032065 branch function_aes_cmac 
+:      032068 function_f4_cb:
+0x71b6 032069 jam 65 ,mem_aes_cmac_data_length 
+0x71b7 032070 fetch 1 ,mem_passkey_1bit 
+0x71b8 032071 store 1 ,mem_dat 
+0x71b9 032072 arg mem_le_pubkey_remote_x_256 ,contr 
+0x71ba 032073 call memcpy32 
+0x71bb 032074 arg mem_sc_pubkey_local_x_256 ,contr 
+0x71bc 032075 call memcpy32 
+0x71bd 032076 call inverse_memdat 
+0x71be 032077 arg mem_le_srand ,contr 
+0x71bf 032078 call store_inverse_k 
+0x71c0 032079 branch function_aes_cmac 
+:      032081 function_aes_cmac:
+0x71c1 032082 bpatch patch1c_6 ,mem_patch1c 
+0x71c2 032083 call function_aes_cmac_generate_subkey 
+0x71c3 032087 fetch 1 ,mem_aes_cmac_data_length 
+0x71c4 032088 copy pdata ,temp 
+:      032089 function_ceil16:
+0x71c5 032090 increase 15 ,pdata 
+0x71c6 032091 rshift4 pdata ,pdata 
+0x71c7 032092 copy pdata ,regb 
+0x71c8 032093 branch function_aes_cmac_set_flag_0_balnk ,blank 
+0x71c9 032094 and temp ,0x0f ,pdata 
+0x71ca 032095 nbranch function_aes_cmac_set_flag_0 ,blank 
+0x71cb 032097 arg mem_aes_cmac_k1 ,regc 
+0x71cc 032098 arg mem_dat ,pdata 
+0x71cd 032099 increase -16 ,pdata 
+0x71ce 032102 iadd temp ,rega 
+0x71cf 032103 arg mem_aes_cmac_m_last ,contw 
+0x71d0 032104 arg 4 ,loopcnt 
+0x71d1 032105 call xor_loop 
+0x71d2 032109 branch function_aes_cmac_aes 
+:      032111 function_aes_cmac_set_flag_0_balnk:
+0x71d3 032112 arg 1 ,regb 
+0x71d4 032113 arg 0 ,rega 
+0x71d5 032115 branch function_aes_cmac_set_flag_0_common 
+:      032118 function_aes_cmac_set_flag_0:
+0x71d6 032120 and temp ,0x0f ,rega 
+:      032121 function_aes_cmac_set_flag_0_common:
+0x71d7 032122 arg mem_dat ,pdata 
+0x71d8 032123 iadd temp ,pdata 
+0x71d9 032124 isub rega ,contr 
+0x71da 032126 arg mem_aes_cmac_temp ,contw 
+0x71db 032127 call function_aes_cmac_padding 
+0x71dc 032129 arg mem_aes_cmac_k2 ,regc 
+0x71dd 032130 arg mem_aes_cmac_temp ,rega 
+0x71de 032131 arg mem_aes_cmac_m_last ,contw 
+0x71df 032132 arg 4 ,loopcnt 
+0x71e0 032133 call xor_loop 
+:      032140 function_aes_cmac_aes:
+0x71e1 032145 call aes_clear_data 
+0x71e2 032146 call aes_init 
+0x71e3 032149 arg mem_dat ,contr 
+:      032150 function_aes_cmac_aes_loop:
+0x71e4 032152 increase -1 ,regb 
+0x71e5 032153 deposit regb 
+0x71e6 032154 branch function_aes_cmac_aes_loop_end ,blank 
+0x71e7 032155 call load_data128 
+0x71e8 032156 call do_aes_cbc 
+0x71e9 032157 branch function_aes_cmac_aes_loop 
+:      032159 function_aes_cmac_aes_loop_end:
+0x71ea 032160 arg mem_aes_cmac_temp ,contw 
+0x71eb 032161 call store_aes_result 
+0x71ec 032162 arg mem_aes_cmac_m_last ,contr 
+0x71ed 032163 call load_data128 
+0x71ee 032164 call aes_init 
+0x71ef 032165 arg mem_aes_cmac_temp ,contr 
+0x71f0 032166 call load_data128 
+0x71f1 032167 branch do_aes_cbc 
+:      032171 load_inverse_result:
+0x71f2 032173 copy contw ,rega 
+0x71f3 032174 call store_aes_result 
+0x71f4 032176 arg 16 ,loopcnt 
+0x71f5 032177 branch inverse_data 
+:      032179 store_inverse_k:
+0x71f6 032180 arg mem_aes_cmac_k ,contw 
+0x71f7 032181 call memcpy16 
+:      032182 inverse_k:
+0x71f8 032183 arg 16 ,loopcnt 
+0x71f9 032184 arg mem_aes_cmac_k ,rega 
+0x71fa 032185 branch inverse_data 
+:      032187 inverse_memdat:
+0x71fb 032188 fetch 1 ,mem_aes_cmac_data_length 
+0x71fc 032189 copy pdata ,loopcnt 
+0x71fd 032190 arg mem_dat ,rega 
+0x71fe 032191 branch inverse_data 
+:      032193 bn_lshift_0_inverse:
+0x71ff 032194 ifetch 1 ,rega 
+0x7200 032195 lshift pdata ,pdata 
+0x7201 032196 isolate1 0 ,regc 
+0x7202 032197 setflag true ,0 ,pdata 
+0x7203 032198 isolate1 8 ,pdata 
+0x7204 032199 setflag true ,0 ,regc 
+0x7205 032200 istore 1 ,rega 
+0x7206 032201 increase -1 ,rega 
+0x7207 032202 loop bn_lshift_0_inverse 
+0x7208 032203 rtn 
+:      032205 function_aes_cmac_k1_inverse:
+0x7209 032206 arg mem_aes_cmac_k1 ,rega 
+:      032207 function_aes_cmac_inverse_common:
+0x720a 032208 increase 15 ,rega 
+0x720b 032209 force 16 ,loopcnt 
+0x720c 032210 force 0 ,regc 
+0x720d 032211 branch bn_lshift_0_inverse 
+:      032213 function_aes_cmac_k2_inverse:
+0x720e 032214 arg mem_aes_cmac_k2 ,rega 
+0x720f 032215 branch function_aes_cmac_inverse_common 
+:      032218 function_aes_cmac_generate_subkey:
+0x7210 032219 arg mem_aes_cmac_k ,contr 
+0x7211 032220 call load_key 
+0x7212 032223 force regidx_xor ,regext_index 
+0x7213 032224 call aes_clear 
+0x7214 032225 call aes_clear_data 
+0x7215 032226 call do_aes_ocb 
+0x7216 032231 arg mem_aes_cmac_k1 ,contw 
+0x7217 032232 call store_aes_result 
+:      032233 function_aes_cmac_k1:
+0x7218 032234 bpatch patch1c_7 ,mem_patch1c 
+0x7219 032235 fetch 1 ,mem_aes_cmac_k1 
+0x721a 032236 isolate1 7 ,pdata 
+0x721b 032237 nbranch function_aes_cmac_k1_0 ,true 
+0x721c 032238 call function_aes_cmac_k1_inverse 
+0x721d 032241 arg mem_aes_cmac_k1 ,regc 
+0x721e 032243 arg mem_aes_cmac_k1 ,contw 
+0x721f 032246 call function_aes_cmac_xor_rb 
+0x7220 032247 branch function_aes_cmac_k2 
+:      032248 function_aes_cmac_k1_0:
+0x7221 032249 call function_aes_cmac_k1_inverse 
+:      032250 function_aes_cmac_k2:
+0x7222 032252 arg mem_aes_cmac_k1 ,contr 
+0x7223 032253 arg mem_aes_cmac_k2 ,contw 
+0x7224 032254 call memcpy16 
+0x7225 032255 fetch 1 ,mem_aes_cmac_k2 
+0x7226 032256 isolate1 7 ,pdata 
+0x7227 032257 nbranch function_aes_cmac_k2_inverse ,true 
+0x7228 032258 call function_aes_cmac_k2_inverse 
+0x7229 032260 arg mem_aes_cmac_k2 ,regc 
+0x722a 032262 arg mem_aes_cmac_k2 ,contw 
+:      032268 function_aes_cmac_xor_rb:
+0x722b 032269 arg 3 ,loopcnt 
+:      032270 function_aes_cmac_xor_rb_loop:
+0x722c 032271 arg 0 ,temp 
+0x722d 032272 call function_aes_cmac_xor_loop_common 
+0x722e 032273 increase 4 ,regc 
+0x722f 032274 loop function_aes_cmac_xor_rb_loop 
+0x7230 032275 arg 0x8700 ,temp 
+0x7231 032276 lshift16 temp ,temp 
+:      032277 function_aes_cmac_xor_loop_common:
+0x7232 032278 ifetch 4 ,regc 
+0x7233 032279 ixor temp ,pdata 
+0x7234 032280 istore 4 ,contw 
+0x7235 032281 rtn 
+:      032287 function_aes_cmac_padding:
+0x7236 032288 bpatch patch1d_0 ,mem_patch1d 
+0x7237 032289 arg 16 ,loopcnt 
+0x7238 032290 arg 0 ,pdata 
+:      032291 function_aes_cmac_padding_loop:
+0x7239 032292 isub rega ,null 
+0x723a 032293 branch function_aes_cmac_padding_beq_length ,zero 
+0x723b 032294 branch function_aes_cmac_padding_big_length ,positive 
+0x723c 032295 ifetcht 1 ,contr 
+0x723d 032296 istoret 1 ,contw 
+:      032297 function_aes_cmac_padding_loop2:
+0x723e 032298 increase 1 ,pdata 
+0x723f 032299 loop function_aes_cmac_padding_loop 
+0x7240 032300 rtn 
+:      032301 function_aes_cmac_padding_beq_length:
+0x7241 032302 arg 0x80 ,temp 
+:      032303 function_aes_cmac_padding_common:
+0x7242 032304 istoret 1 ,contw 
+0x7243 032305 branch function_aes_cmac_padding_loop2 
+:      032307 function_aes_cmac_padding_big_length:
+0x7244 032308 arg 0 ,temp 
+0x7245 032309 branch function_aes_cmac_padding_common 
+:      032314 concatenate_temp24:
+0x7246 032315 lshift8 temp ,temp 
+:      032316 concatenate_temp16:
+0x7247 032317 lshift16 temp ,temp 
+0x7248 032318 ior temp ,temp 
+0x7249 032319 rtn 
+:      032324 generate_stk:
+0x724a 032325 bpatch patch1d_1 ,mem_patch1d 
+0x724b 032326 call function_s1 
+0x724c 032327 arg mem_le_ltk ,contw 
+0x724d 032328 branch store_aes_result 
+:      032331 authenticate_rconfirm:
+0x724e 032332 arg mem_le_srand ,contw 
+0x724f 032333 branch authenticate_mconfirm ,master 
+0x7250 032334 arg mem_le_mrand ,contw 
+:      032335 authenticate_mconfirm:
+0x7251 032336 copy contr ,rega 
+0x7252 032337 call memcpy16 
+0x7253 032338 call function_c1 
+0x7254 032339 arg mem_le_rconfirm ,contr 
+0x7255 032340 branch compare_res 
+:      032342 generate_confirm:
+0x7256 032343 arg mem_le_mrand ,rega 
+0x7257 032344 branch generate_mrand ,master 
+0x7258 032345 arg mem_le_srand ,rega 
+:      032346 generate_mrand:
+0x7259 032347 copy rega ,contw 
+0x725a 032348 call generate_random 
+0x725b 032349 branch function_c1 
+:      032351 generate_sk:
+0x725c 032352 arg mem_le_skdm ,contr 
+0x725d 032353 call load_data128 
+0x725e 032354 arg mem_le_ltk ,contr 
+0x725f 032355 call load_regext 
+0x7260 032356 force 0x38 ,aes_ctrl 
+0x7261 032357 force 0x0 ,aes_ctrl 
+0x7262 032358 call wait_aes 
+0x7263 032359 arg mem_le_sk ,contw 
+0x7264 032360 branch store_aes_result 
+:      032364 ccm_b0:
+0x7265 032365 force regidx_xor ,regext_index 
+0x7266 032366 force 0x49 ,pdata 
+0x7267 032367 branch iv_common 
+:      032370 first_block_counter:
+0x7268 032371 force 0x49 ,pdata 
+0x7269 032372 branch first_block 
+:      032373 first_block_data:
+0x726a 032374 force 1 ,pdata 
+:      032375 first_block:
+0x726b 032376 force regidx_data ,regext_index 
+:      032377 iv_common:
+0x726c 032378 lshift8 temp ,regext 
+0x726d 032379 ior regext ,regext 
+0x726e 032380 increase 1 ,regext_index 
+0x726f 032381 rshift8 temp ,regext 
+0x7270 032382 rshift16 regext ,regext 
+0x7271 032383 fetch 2 ,mem_ccm_iv 
+0x7272 032384 lshift16 pdata ,pdata 
+0x7273 032385 ior regext ,regext 
+0x7274 032386 increase 1 ,regext_index 
+0x7275 032387 ifetchr regext ,4 ,contr 
+0x7276 032388 increase 1 ,regext_index 
+0x7277 032389 ifetch 2 ,contr 
+0x7278 032390 byteswap rega ,regext 
+0x7279 032391 lshift16 regext ,regext 
+0x727a 032392 ior regext ,regext 
+0x727b 032393 increase 1 ,regext_index 
+0x727c 032394 rtn 
+:      032398 generate_mic:
+0x727d 032399 add regc ,1 ,contr 
+0x727e 032400 ifetch 1 ,contr 
+0x727f 032401 iforce rega 
+0x7280 032402 call first_block_counter 
+0x7281 032403 call do_aes_ocb 
+0x7282 032405 force regidx_data ,regext_index 
+0x7283 032406 ifetch 1 ,regc 
+0x7284 032407 and_into 0x3 ,pdata 
+0x7285 032408 lshift16 pdata ,regext 
+0x7286 032409 set1 8 ,regext 
+0x7287 032410 call clear_hidata 
+0x7288 032411 call do_aes_cbc 
+0x7289 032413 copy rega ,loopcnt 
+0x728a 032414 add regc ,2 ,contr 
+0x728b 032415 call padding_data 
+:      032416 generate_mic_loop:
+0x728c 032417 call aes_load_data 
+0x728d 032418 call do_aes_cbc 
+0x728e 032419 deposit loopcnt 
+0x728f 032420 branch generate_mic_end ,blank 
+0x7290 032421 branch generate_mic_loop 
+:      032422 generate_mic_end:
+0x7291 032423 force regidx_result ,regext_index 
+0x7292 032424 deposit regext 
+0x7293 032425 store 4 ,mem_le_mic 
+0x7294 032426 rtn 
+:      032428 aes_crypt_data:
+0x7295 032429 increase 1 ,rega 
+0x7296 032430 call first_block_data 
+0x7297 032431 copy regc ,contr 
+0x7298 032432 call aes_load_xor 
+0x7299 032433 call do_aes_ctr 
+0x729a 032434 call store_enc_data 
+0x729b 032435 increase 16 ,regc 
+0x729c 032436 increase -16 ,regb 
+0x729d 032437 branch aes_crypt_data ,positive 
+0x729e 032438 rtn 
+:      032443 le_encrypt_new_start:
+0x729f 032444 call ccm_init_common 
+0x72a0 032445 bpatch patch1d_2 ,mem_patch1d 
+0x72a1 032446 jam 0 ,core_ccm_aad0 
+0x72a2 032447 jam 1 ,core_ccm_aad1 
+0x72a3 032448 fetch 1 ,mem_le_txheader 
+0x72a4 032449 and_into 0x3 ,pdata 
+0x72a5 032450 store 1 ,core_ccm_aad2 
+0x72a6 032451 fetch 2 ,mem_contr 
+0x72a7 032452 store 2 ,core_ccm_input_playload_addr 
+0x72a8 032453 setarg mem_le_txpayload 
+0x72a9 032454 store 2 ,core_ccm_output_playload_addr 
+0x72aa 032456 fetchr rega ,1 ,mem_le_txlen 
+0x72ab 032457 fetcht 5 ,mem_ccm_pcnt_tx 
+0x72ac 032458 call ccm_b0 
+0x72ad 032459 jam 2 ,core_ccm_ctrl 
+0x72ae 032460 jam 3 ,core_ccm_ctrl 
+0x72af 032462 fetch 1 ,mem_le_txlen 
+0x72b0 032463 store 2 ,core_ccm_inptr 
+0x72b1 032464 increase 4 ,pdata 
+0x72b2 032465 store 1 ,mem_le_txlen 
+0x72b3 032466 fetch 5 ,mem_ccm_pcnt_tx 
+0x72b4 032467 increase 1 ,pdata 
+0x72b5 032468 set0 le_ccm_directionbit ,pdata 
+0x72b6 032469 store 5 ,mem_ccm_pcnt_tx 
+0x72b7 032470 rtn 
+:      032473 ccm_wait_enc:
+0x72b8 032474 fetch 2 ,core_ccm_outptr 
+0x72b9 032475 isub temp ,null 
+0x72ba 032476 rtn zero 
+0x72bb 032477 nrtn blank 
+0x72bc 032479 branch ccm_wait_enc 
+:      032481 ccm_check_enc_done:
+0x72bd 032482 fetch 1 ,core_misc_status 
+0x72be 032483 bbit0 6 ,assert 
+:      032484 ccm_enc_done:
+0x72bf 032485 setarg mem_le_txpayload 
+0x72c0 032486 iadd temp ,contw 
+0x72c1 032487 arg regidx_result ,regext_index 
+0x72c2 032488 istorer regext ,4 ,contw 
+0x72c3 032489 branch ccm_ctrl_clr 
+:      032491 ccm_init_common:
+0x72c4 032492 bpatch patch1d_3 ,mem_patch1d 
+0x72c5 032493 force regidx_result ,regext_index 
+0x72c6 032494 call aes_clear 
+0x72c7 032495 call aes_clear_data 
+0x72c8 032496 setarg 0 
+0x72c9 032497 store 2 ,core_ccm_inptr 
+0x72ca 032498 rtn 
+:      032500 wait_ccm_done:
+0x72cb 032501 fetch 1 ,core_misc_status 
+0x72cc 032502 bbit0 6 ,wait_ccm_done 
+:      032503 ccm_ctrl_clr:
+0x72cd 032504 jam 0 ,core_ccm_ctrl 
+0x72ce 032505 rtn 
+:      032508 wait_aes:
+0x72cf 032509 nbranch wait_aes ,aes_ready 
+0x72d0 032510 rtn 
+:      032512 do_aes_ocb:
+0x72d1 032513 force 0x30 ,aes_ctrl 
+0x72d2 032514 force 0x0 ,aes_ctrl 
+0x72d3 032515 branch wait_aes 
+:      032517 do_aes_cbc:
+0x72d4 032518 force 0x32 ,aes_ctrl 
+0x72d5 032519 force 0x2 ,aes_ctrl 
+0x72d6 032520 branch wait_aes 
+:      032522 do_aes_ctr:
+0x72d7 032523 force 0x34 ,aes_ctrl 
+0x72d8 032524 force 0x4 ,aes_ctrl 
+0x72d9 032525 branch wait_aes 
+:      032528 aes_init:
+0x72da 032529 force 1 ,aes_ctrl 
+0x72db 032530 force 0 ,aes_ctrl 
+0x72dc 032531 rtn 
+:      032534 wait_keyinit_done:
+0x72dd 032535 fetch 1 ,core_aes_decode_key_init 
+0x72de 032536 bbit0 2 ,wait_keyinit_done 
+0x72df 032537 rtn 
+:      032540 dec_key_initial:
+0x72e0 032541 store 2 ,core_keybuf_saddr 
+0x72e1 032542 force 0xc0 ,aes_ctrl 
+0x72e2 032543 force 0x80 ,aes_ctrl 
+0x72e3 032544 branch wait_keyinit_done 
+:      032546 do_aes_ecb_dec:
+0x72e4 032547 force regidx_data ,regext_index 
+0x72e5 032548 copy regb ,contr 
+0x72e6 032549 force 4 ,loopcnt 
+0x72e7 032550 call aes_ecb_dec_loop 
+0x72e8 032552 force 0x180 ,aes_ctrl 
+0x72e9 032553 force 0x80 ,aes_ctrl 
+0x72ea 032554 call wait_aes 
+:      032555 ecb_dec_generate:
+0x72eb 032556 force regidx_result ,regext_index 
+0x72ec 032557 copy regc ,contw 
+0x72ed 032558 force 4 ,loopcnt 
+:      032559 ecb_dec_generate_loop:
+0x72ee 032560 copy regext ,pdata 
+0x72ef 032561 istore 4 ,contw 
+0x72f0 032562 increase 1 ,regext_index 
+0x72f1 032563 loop ecb_dec_generate_loop 
+0x72f2 032564 rtn 
+:      032566 aes_ecb_dec_loop:
+0x72f3 032567 ifetch 2 ,contr 
+0x72f4 032568 ifetcht 2 ,contr 
+0x72f5 032569 lshift16 temp ,temp 
+0x72f6 032570 ior temp ,regext 
+0x72f7 032571 increase 1 ,regext_index 
+0x72f8 032572 loop aes_ecb_dec_loop 
+0x72f9 032573 rtn 
+:      032576 do_aes_cbc_dec:
+0x72fa 032577 force regidx_xor ,regext_index 
+0x72fb 032578 copy rega ,contr 
+0x72fc 032579 force 4 ,loopcnt 
+0x72fd 032580 call aes_ecb_dec_loop 
+0x72fe 032582 force regidx_data ,regext_index 
+0x72ff 032583 copy regb ,contr 
+0x7300 032584 force 4 ,loopcnt 
+0x7301 032585 call aes_ecb_dec_loop 
+0x7302 032586 force 0x182 ,aes_ctrl 
+0x7303 032587 force 0x82 ,aes_ctrl 
+0x7304 032588 call wait_aes 
+0x7305 032589 branch ecb_dec_generate 
+:      032592 function_s1:
+0x7306 032593 force regidx_data ,regext_index 
+0x7307 032594 fetch 4 ,mem_le_mrand 
+0x7308 032595 iforce regext 
+0x7309 032596 increase 1 ,regext_index 
+0x730a 032597 ifetch 4 ,contr 
+0x730b 032598 iforce regext 
+0x730c 032599 increase 1 ,regext_index 
+0x730d 032600 fetch 4 ,mem_le_srand 
+0x730e 032601 iforce regext 
+0x730f 032602 increase 1 ,regext_index 
+0x7310 032603 ifetch 4 ,contr 
+0x7311 032604 iforce regext 
+0x7312 032605 increase 1 ,regext_index 
+0x7313 032606 call aes_clear 
+0x7314 032607 increase -4 ,regext_index 
+0x7315 032608 fetch 4 ,mem_le_tk 
+0x7316 032609 copy pdata ,regext 
+0x7317 032610 increase 4 ,regext_index 
+0x7318 032611 force 0x38 ,aes_ctrl 
+0x7319 032612 force 0x8 ,aes_ctrl 
+0x731a 032613 branch wait_aes 
+:      032616 function_c1:
+0x731b 032617 bpatch patch1d_4 ,mem_patch1d 
+0x731c 032618 fetch 6 ,mem_le_lap 
+0x731d 032619 fetcht 6 ,mem_le_plap 
+0x731e 032620 branch function_c1_master ,master 
+0x731f 032621 fetch 6 ,mem_le_plap 
+0x7320 032622 fetcht 6 ,mem_le_lap 
+:      032623 function_c1_master:
+0x7321 032624 force regidx_xor ,regext_index 
+0x7322 032625 copy temp ,regext 
+0x7323 032626 increase 1 ,regext_index 
+0x7324 032627 rshift32 temp ,regext 
+0x7325 032628 lshift16 pdata ,pdata 
+0x7326 032629 ior regext ,regext 
+0x7327 032630 increase 1 ,regext_index 
+0x7328 032631 rshift32 pdata ,regext 
+0x7329 032632 increase 1 ,regext_index 
+0x732a 032633 force 0 ,regext 
+0x732b 032634 force 0 ,pdata 
+0x732c 032635 fetch 1 ,mem_le_conn_peer_addr_type 
+0x732d 032636 fetcht 1 ,mem_le_adv_own_addr_type 
+0x732e 032637 nbranch function_c1_irat ,master 
+0x732f 032639 fetch 1 ,mem_le_conn_own_addr_type 
+0x7330 032640 fetcht 1 ,mem_le_conn_peer_addr_type 
+:      032641 function_c1_irat:
+0x7331 032642 store 1 ,mem_le_iat 
+0x7332 032643 storet 1 ,mem_le_rat 
+0x7333 032644 force regidx_data ,regext_index 
+0x7334 032645 arg mem_le_iat ,regb 
+0x7335 032646 force 4 ,loopcnt 
+:      032647 function_c1_loop1:
+0x7336 032648 ifetch 4 ,rega 
+0x7337 032649 ifetcht 4 ,regb 
+0x7338 032650 ixor temp ,regext 
+0x7339 032651 increase 1 ,regext_index 
+0x733a 032652 increase 4 ,rega 
+0x733b 032653 increase 4 ,regb 
+0x733c 032654 loop function_c1_loop1 
+0x733d 032655 call aes_clear 
+0x733e 032656 increase -4 ,regext_index 
+0x733f 032657 fetch 4 ,mem_le_tk 
+0x7340 032658 copy pdata ,regext 
+0x7341 032659 increase 4 ,regext_index 
+0x7342 032660 force 0x38 ,aes_ctrl 
+0x7343 032661 force 0xc ,aes_ctrl 
+0x7344 032662 call wait_aes 
+0x7345 032664 call aes_clear_data 
+0x7346 032665 force 0x3a ,aes_ctrl 
+0x7347 032666 force 0x8 ,aes_ctrl 
+0x7348 032667 branch wait_aes 
+:      032669 padding_data:
+0x7349 032670 compare 0 ,loopcnt ,3 
+0x734a 032671 rtn true 
+0x734b 032672 deposit contr 
+0x734c 032673 iadd loopcnt ,contw 
+0x734d 032674 force 0 ,pdata 
+:      032675 padding_loop:
+0x734e 032676 istore 1 ,contw 
+0x734f 032677 increase 1 ,loopcnt 
+0x7350 032678 compare 0 ,loopcnt ,3 
+0x7351 032679 rtn true 
+0x7352 032680 branch padding_loop 
+:      032682 aes_load_data:
+0x7353 032683 force regidx_data ,regext_index 
+:      032684 load_data_loop:
+0x7354 032685 deposit loopcnt 
+0x7355 032686 branch load_data_padding ,blank 
+0x7356 032687 ifetch 4 ,contr 
+0x7357 032688 increase -4 ,loopcnt 
+:      032689 load_data_padding:
+0x7358 032690 iforce regext 
+0x7359 032691 increase 1 ,regext_index 
+0x735a 032692 compare regidx_key ,regext_index ,0xf 
+0x735b 032693 rtn true 
+0x735c 032694 branch load_data_loop 
+:      032696 aes_load_xor:
+0x735d 032697 force regidx_xor ,regext_index 
+0x735e 032698 branch load_regext 
+:      032699 load_key:
+0x735f 032700 force regidx_key ,regext_index 
+0x7360 032701 branch load_regext 
+:      032702 load_data128:
+0x7361 032703 force regidx_data ,regext_index 
+:      032704 load_regext:
+0x7362 032705 force 4 ,loopcnt 
+:      032706 load_regext_loop:
+0x7363 032707 ifetch 4 ,contr 
+0x7364 032708 iforce regext 
+0x7365 032709 increase 1 ,regext_index 
+0x7366 032710 loop load_regext_loop 
+0x7367 032711 rtn 
+:      032713 load_sk:
+0x7368 032714 arg mem_le_sk ,contr 
+0x7369 032715 branch load_key 
+:      032717 clear_hidata:
+0x736a 032718 force 4 ,loopcnt 
+0x736b 032719 branch clear_data_rest 
+:      032721 regext_clear:
+0x736c 032722 force 0 ,regext_index 
+0x736d 032723 force 16 ,loopcnt 
+0x736e 032724 branch clear_loop 
+:      032726 aes_clear_data:
+0x736f 032727 force regidx_data ,regext_index 
+:      032728 aes_clear:
+0x7370 032729 force 4 ,loopcnt 
+:      032730 clear_loop:
+0x7371 032731 force 0 ,regext 
+:      032732 clear_data_rest:
+0x7372 032733 increase 1 ,regext_index 
+0x7373 032734 loop clear_loop 
+0x7374 032735 rtn 
+:      032737 store_aes_result:
+0x7375 032738 force regidx_result ,regext_index 
+0x7376 032739 force 4 ,loopcnt 
+:      032740 send_aes_result_loop:
+0x7377 032741 deposit regext 
+0x7378 032742 istore 4 ,contw 
+0x7379 032743 increase 1 ,regext_index 
+0x737a 032744 loop send_aes_result_loop 
+0x737b 032745 rtn 
+:      032747 store_enc_data:
+0x737c 032748 force regidx_result ,regext_index 
+0x737d 032749 copy regc ,contw 
+0x737e 032750 add regb ,1 ,loopcnt 
+0x737f 032751 sub loopcnt ,15 ,null 
+0x7380 032752 branch store_enc_loop ,positive 
+0x7381 032753 force 16 ,loopcnt 
+:      032754 store_enc_loop:
+0x7382 032755 deposit regext 
+0x7383 032756 sub loopcnt ,3 ,null 
+0x7384 032757 branch store_enc_byte ,positive 
+0x7385 032758 istore 4 ,contw 
+0x7386 032759 increase -4 ,loopcnt 
+0x7387 032760 rtn zero 
+0x7388 032761 increase 1 ,regext_index 
+0x7389 032762 branch store_enc_loop 
+:      032763 store_enc_byte:
+0x738a 032764 istore 1 ,contw 
+0x738b 032765 rshift8 pdata ,pdata 
+0x738c 032766 loop store_enc_byte 
+0x738d 032767 rtn 
+:      032770 compare_res:
+0x738e 032771 force regidx_result ,regext_index 
+0x738f 032772 force 4 ,loopcnt 
+:      032773 compare_res_loop:
+0x7390 032774 ifetch 4 ,contr 
+0x7391 032775 isub regext ,null 
+0x7392 032776 nrtn zero 
+0x7393 032777 increase 1 ,regext_index 
+0x7394 032778 loop compare_res_loop 
+0x7395 032779 branch enable_zero 
+:      032781 enable_authrom:
+0x7396 032782 fetch 1 ,core_clkoff 
+0x7397 032783 set0 clock_off_auth_rom ,pdata 
+0x7398 032784 store 1 ,core_clkoff 
+0x7399 032785 rtn 
+:      032787 disable_authrom:
+0x739a 032788 fetch 1 ,core_clkoff 
+0x739b 032789 set1 clock_off_auth_rom ,pdata 
+0x739c 032790 store 1 ,core_clkoff 
+0x739d 032791 rtn 
+:      032799 init_memp:
+0x739e 032800 arg mem_p ,contw 
+0x739f 032801 setsect 0 ,0x3ffff 
+0x73a0 032802 setsect 1 ,0x3ffff 
+0x73a1 032803 setsect 2 ,0x3ffff 
+0x73a2 032804 setsect 3 ,0x3fbff 
+0x73a3 032805 istore 9 ,contw 
+0x73a4 032806 setsect 0 ,0x3ffff 
+0x73a5 032807 setsect 1 ,0x3ffff 
+0x73a6 032808 setsect 2 ,0x3ffff 
+0x73a7 032809 setsect 3 ,0x3ffff 
+0x73a8 032810 istore 9 ,contw 
+0x73a9 032811 setsect 0 ,0x3ffff 
+0x73aa 032812 setsect 1 ,0x3ffff 
+0x73ab 032813 setsect 2 ,0x3cfff 
+0x73ac 032814 setsect 3 ,0x3ffff 
+0x73ad 032815 istore 9 ,contw 
+0x73ae 032816 setsect 0 ,0x3ffff 
+0x73af 032817 setsect 1 ,0x3ffff 
+0x73b0 032818 setsect 2 ,0x3ffef 
+0x73b1 032819 setsect 3 ,0x3ffff 
+0x73b2 032820 istore 9 ,contw 
+0x73b3 032821 setsect 0 ,0x3ffff 
+0x73b4 032822 setsect 1 ,0x3ffff 
+0x73b5 032823 setsect 2 ,0x3ffff 
+0x73b6 032824 setsect 3 ,0x3ffff 
+0x73b7 032825 istore 9 ,contw 
+0x73b8 032826 setsect 0 ,0x3ffff 
+0x73b9 032827 setsect 1 ,0x26c7f 
+0x73ba 032828 setsect 2 ,0x146b 
+0x73bb 032829 setsect 3 ,0x37bb3 
+0x73bc 032830 istore 9 ,contw 
+0x73bd 032831 setsect 0 ,0x1feb8 
+0x73be 032832 setsect 1 ,0x10c12 
+0x73bf 032833 setsect 2 ,0x2b722 
+0x73c0 032834 setsect 3 ,0x29fa6 
+0x73c1 032835 istore 9 ,contw 
+0x73c2 032836 setsect 0 ,0xe70f 
+0x73c3 032837 setsect 1 ,0x16720 
+0x73c4 032838 setsect 2 ,0x519e 
+0x73c5 032839 setsect 3 ,0x19084 
+0x73c6 032840 istore 9 ,contw 
+0x73c7 032841 setsect 0 ,0x31012 
+0x73c8 032842 setsect 1 ,0x360bf 
+0x73c9 032843 setsect 2 ,0x3f0af 
+0x73ca 032844 setsect 3 ,0x3d3 
+0x73cb 032845 istore 9 ,contw 
+0x73cc 032846 setsect 0 ,0x3a188 
+0x73cd 032847 setsect 1 ,0x3ad0 
+0x73ce 032848 setsect 2 ,0x3cbf2 
+0x73cf 032849 setsect 3 ,0x243d9 
+0x73d0 032850 istore 9 ,contw 
+0x73d1 032851 setsect 0 ,0x2b030 
+0x73d2 032852 setsect 1 ,0x36a03 
+0x73d3 032853 setsect 2 ,0x11188 
+0x73d4 032854 setsect 3 ,0x1e520 
+0x73d5 032855 istore 9 ,contw 
+0x73d6 032856 setsect 0 ,0x3a11e 
+0x73d7 032857 setsect 1 ,0xfe5d 
+0x73d8 032858 setsect 2 ,0xdd57 
+0x73d9 032859 setsect 3 ,0x1ac93 
+0x73da 032860 istore 9 ,contw 
+0x73db 032861 setsect 0 ,0x11ed 
+0x73dc 032862 setsect 1 ,0x218c4 
+0x73dd 032863 setsect 2 ,0x8da7 
+0x73de 032864 setsect 3 ,0x257ff 
+0x73df 032865 istore 9 ,contw 
+0x73e0 032866 setsect 0 ,0x3192b 
+0x73e1 032867 setsect 1 ,0x34641 
+0x73e2 032868 setsect 2 ,0x1be0c 
+0x73e3 032869 setsect 3 ,0x366ad 
+0x73e4 032870 istore 9 ,contw 
+0x73e5 032871 setsect 0 ,0x1f83 
+0x73e6 032872 setsect 1 ,0x15a23 
+0x73e7 032873 setsect 2 ,0x3f9b0 
+0x73e8 032874 setsect 3 ,0x3949 
+0x73e9 032875 istore 9 ,contw 
+0x73ea 032876 setsect 0 ,0x13a51 
+0x73eb 032877 setsect 1 ,0x153fd 
+0x73ec 032878 setsect 2 ,0x3372a 
+0x73ed 032879 setsect 3 ,0xf1bb 
+0x73ee 032880 istore 9 ,contw 
+0x73ef 032881 setsect 0 ,0x3ae85 
+0x73f0 032882 setsect 1 ,0x1eed9 
+0x73f1 032883 setsect 2 ,0x9e66 
+0x73f2 032884 setsect 3 ,0x1a8 
+0x73f3 032885 istore 8 ,contw 
+0x73f4 032886 rtn 
+:      032894 init_memp_256:
+0x73f5 032895 arg mem_p_256 ,contw 
+0x73f6 032896 setsect 0 ,0x3ffff 
+0x73f7 032897 setsect 1 ,0x3ffff 
+0x73f8 032898 setsect 2 ,0x3ffff 
+0x73f9 032899 setsect 3 ,0x3ffff 
+0x73fa 032900 istore 9 ,contw 
+0x73fb 032901 setsect 0 ,0x3ffff 
+0x73fc 032902 setsect 1 ,0x3f 
+0x73fd 032903 setsect 2 ,0x0 
+0x73fe 032904 setsect 3 ,0x0 
+0x73ff 032905 istore 9 ,contw 
+0x7400 032906 setsect 0 ,0x0 
+0x7401 032907 setsect 1 ,0x0 
+0x7402 032908 setsect 2 ,0x1000 
+0x7403 032909 setsect 3 ,0x0 
+0x7404 032910 istore 9 ,contw 
+0x7405 032911 setsect 0 ,0x3ff00 
+0x7406 032912 setsect 1 ,0x3ffff 
+0x7407 032913 setsect 2 ,0x3ffcf 
+0x7408 032914 setsect 3 ,0x3ffff 
+0x7409 032915 istore 9 ,contw 
+0x740a 032916 setsect 0 ,0x3ffff 
+0x740b 032917 setsect 1 ,0x3ffff 
+0x740c 032918 setsect 2 ,0x3ffff 
+0x740d 032919 setsect 3 ,0x3ff 
+0x740e 032920 istore 9 ,contw 
+0x740f 032921 setsect 0 ,0x0 
+0x7410 032922 setsect 1 ,0x0 
+0x7411 032923 setsect 2 ,0x0 
+0x7412 032924 setsect 3 ,0x0 
+0x7413 032925 istore 9 ,contw 
+0x7414 032926 setsect 0 ,0x10000 
+0x7415 032927 setsect 1 ,0x0 
+0x7416 032928 setsect 2 ,0x3f000 
+0x7417 032929 setsect 3 ,0x3ffff 
+0x7418 032930 istore 9 ,contw 
+0x7419 032931 setsect 0 ,0x296ff 
+0x741a 032932 setsect 1 ,0x22630 
+0x741b 032933 setsect 2 ,0x3945d 
+0x741c 032934 setsect 3 ,0x3d284 
+0x741d 032935 istore 9 ,contw 
+0x741e 032936 setsect 0 ,0x333a0 
+0x741f 032937 setsect 1 ,0x4b7a 
+0x7420 032938 setsect 2 ,0x37d8 
+0x7421 032939 setsect 3 ,0x3c9dc 
+0x7422 032940 istore 9 ,contw 
+0x7423 032941 setsect 0 ,0x3a440 
+0x7424 032942 setsect 1 ,0x1b958 
+0x7425 032943 setsect 2 ,0x38bce 
+0x7426 032944 setsect 3 ,0x1091f 
+0x7427 032945 istore 9 ,contw 
+0x7428 032946 setsect 0 ,0x2e12c 
+0x7429 032947 setsect 1 ,0x1f47c 
+0x742a 032948 setsect 2 ,0x356b1 
+0x742b 032949 setsect 3 ,0x2fd47 
+0x742c 032950 istore 9 ,contw 
+0x742d 032951 setsect 0 ,0x6837 
+0x742e 032952 setsect 1 ,0x2ed90 
+0x742f 032953 setsect 2 ,0x1ecec 
+0x7430 032954 setsect 3 ,0x1acc5 
+0x7431 032955 istore 9 ,contw 
+0x7432 032956 setsect 0 ,0x23357 
+0x7433 032957 setsect 1 ,0x18af3 
+0x7434 032958 setsect 2 ,0xf9e1 
+0x7435 032959 setsect 3 ,0x129f0 
+0x7436 032960 istore 9 ,contw 
+0x7437 032961 setsect 0 ,0x2e7eb 
+0x7438 032962 setsect 1 ,0x3e6e3 
+0x7439 032963 setsect 2 ,0x3e1a7 
+0x743a 032964 setsect 3 ,0x10b8b 
+0x743b 032965 istore 9 ,contw 
+0x743c 032966 setsect 0 ,0x24fe3 
+0x743d 032967 setsect 1 ,0x20ef 
+0x743e 032968 setsect 2 ,0x1b5a6 
+0x743f 032969 setsect 3 ,0xdc2f 
+0x7440 032970 istore 9 ,contw 
+0x7441 032971 setsect 0 ,0x13860 
+0x7442 032972 setsect 1 ,0x2bd69 
+0x7443 032973 setsect 2 ,0x391a 
+0x7444 032974 setsect 3 ,0x1b222 
+0x7445 032975 istore 9 ,contw 
+0x7446 032976 rtn 
+:      032982 publickey_init:
+0x7447 032985 branch sp_initialize_256 
+:      032987 sp_calc_sequence_256_check:
+0x7448 032988 bpatch patch1d_5 ,mem_patch1d 
+0x7449 032993 fetch 1 ,mem_secure_connections_enable 
+0x744a 032994 rtn blank 
+0x744b 032995 fetch 1 ,mem_sc_local_key_invalid 
+0x744c 032996 rtneq sp_key_valid_256 
+0x744d 032999 fetch 1 ,mem_sc_calc 
+0x744e 033000 beq sp_calc_standby ,sp_initialize_256 
+0x744f 033001 rtn 
+:      033002 stop_publickey_calc_256:
+0x7450 033003 jam sp_calc_standby ,mem_sc_calc 
+0x7451 033004 rtn 
+:      033009 sp_clear_flags:
+0x7452 033010 bpatch patch1d_6 ,mem_patch1d 
+0x7453 033011 setarg mem_sp_state_end 
+0x7454 033012 arg mem_sp_state_start ,contw 
+0x7455 033013 isub contw ,loopcnt 
+0x7456 033014 call clear_mem 
+0x7457 033015 setarg mem_sp_state_xmem_end 
+0x7458 033016 arg mem_sp_state_xmem ,contw 
+0x7459 033017 isub contw ,loopcnt 
+0x745a 033018 branch clear_mem 
+:      033022 sp_calc_check_publickey_256:
+0x745b 033023 call sp_calc_b256 
+0x745c 033024 arg mem_le_pubkey_remote_y_256 ,rega 
+0x745d 033025 arg mem_t7_256 ,contw 
+0x745e 033026 call bn_sqrmod_256 
+0x745f 033027 arg mem_le_pubkey_remote_x_256 ,rega 
+0x7460 033028 arg mem_t2_256 ,contw 
+0x7461 033029 call bn_sqrmod_256 
+0x7462 033030 arg mem_t2_256 ,rega 
+0x7463 033031 arg mem_le_pubkey_remote_x_256 ,regb 
+0x7464 033032 arg mem_t2_256 ,contw 
+0x7465 033033 call bn_mulmod_256 
+0x7466 033034 arg mem_a_256 ,rega 
+0x7467 033035 arg mem_le_pubkey_remote_x_256 ,regb 
+0x7468 033036 arg mem_t3_256 ,contw 
+0x7469 033037 call bn_mulmod_256 
+0x746a 033038 arg mem_t3_256 ,rega 
+0x746b 033039 arg mem_t2_256 ,regb 
+0x746c 033040 arg mem_t2_256 ,contw 
+0x746d 033041 call bn_addmod_256 
+0x746e 033042 arg mem_t0_256 ,rega 
+0x746f 033043 arg mem_t2_256 ,regb 
+0x7470 033044 arg mem_t0_256 ,contw 
+0x7471 033045 call bn_addmod_256 
+0x7472 033046 arg 32 ,loopcnt 
+0x7473 033047 arg mem_t7_256 ,rega 
+0x7474 033048 arg mem_t0_256 ,regb 
+0x7475 033049 branch string_compare 
+:      033051 sp_calc_b256:
+0x7476 033052 arg mem_gy_256 ,rega 
+0x7477 033053 arg mem_t0_256 ,contw 
+0x7478 033054 call bn_sqrmod_256 
+0x7479 033055 arg mem_gx_256 ,rega 
+0x747a 033056 arg mem_t2_256 ,contw 
+0x747b 033057 call bn_sqrmod_256 
+0x747c 033058 arg mem_t2_256 ,rega 
+0x747d 033059 arg mem_gx_256 ,regb 
+0x747e 033060 arg mem_t2_256 ,contw 
+0x747f 033061 call bn_mulmod_256 
+0x7480 033062 arg mem_a_256 ,rega 
+0x7481 033063 arg mem_gx_256 ,regb 
+0x7482 033064 arg mem_t3_256 ,contw 
+0x7483 033065 call bn_mulmod_256 
+0x7484 033066 arg mem_t3_256 ,rega 
+0x7485 033067 arg mem_t2_256 ,regb 
+0x7486 033068 arg mem_t2_256 ,contw 
+0x7487 033069 call bn_addmod_256 
+0x7488 033070 arg mem_t0_256 ,rega 
+0x7489 033071 arg mem_t2_256 ,regb 
+0x748a 033072 arg mem_t0_256 ,contw 
+0x748b 033073 branch bn_submod_256 
+:      033078 random_generator:
+0x748c 033079 increase -1 ,queue 
+0x748d 033080 nrtn positive 
+0x748e 033081 random pdata 
+0x748f 033082 istore 2 ,contw 
+0x7490 033083 branch random_generator 
+:      033084 compare4:
+0x7491 033085 increase -1 ,queue 
+0x7492 033086 nbranch compare4_success ,positive 
+0x7493 033087 ifetch 4 ,rega 
+0x7494 033088 copy pdata ,temp 
+0x7495 033089 ifetch 4 ,regb 
+0x7496 033090 iflip temp ,pdata 
+0x7497 033091 nbranch compare4_failed ,zero 
+0x7498 033092 increase 4 ,rega 
+0x7499 033093 increase 4 ,regb 
+0x749a 033094 branch compare4 
+:      033095 compare4_failed:
+0x749b 033096 branch disable_true 
+:      033098 compare4_success:
+0x749c 033099 branch enable_true 
+:      033104 bn_testbit:
+0x749d 033105 and pdata ,7 ,queue 
+0x749e 033106 rshift3 pdata ,pdata 
+0x749f 033107 iadd contr ,contr 
+0x74a0 033108 ifetch 1 ,contr 
+0x74a1 033109 qisolate0 pdata 
+0x74a2 033110 rtn 
+:      033113 bn_eq_zero:
+0x74a3 033114 ifetch 8 ,contr 
+0x74a4 033115 nrtn blank 
+0x74a5 033116 ifetch 8 ,contr 
+0x74a6 033117 nrtn blank 
+0x74a7 033118 ifetch 8 ,contr 
+0x74a8 033119 rtn 
+:      033124 bn_eq_0:
+0x74a9 033125 ifetch 4 ,rega 
+0x74aa 033126 iforce temp 
+0x74ab 033127 ifetch 4 ,regb 
+0x74ac 033128 isub temp ,null 
+0x74ad 033129 nrtn zero 
+0x74ae 033130 increase 4 ,rega 
+0x74af 033131 increase 4 ,regb 
+0x74b0 033132 loop bn_eq_0 
+0x74b1 033133 rtn 
+:      033135 bn_bigeq:
+0x74b2 033136 force 6 ,loopcnt 
+0x74b3 033137 increase 20 ,rega 
+0x74b4 033138 increase 20 ,regb 
+:      033139 bn_bigeq_0:
+0x74b5 033140 ifetch 4 ,regb 
+0x74b6 033141 iforce temp 
+0x74b7 033142 ifetch 4 ,rega 
+0x74b8 033143 isub temp ,pdata 
+0x74b9 033144 nrtn positive 
+0x74ba 033145 nrtn blank 
+0x74bb 033146 increase -4 ,rega 
+0x74bc 033147 increase -4 ,regb 
+0x74bd 033148 loop bn_bigeq_0 
+0x74be 033149 rtn 
+:      033150 bn_add:
+0x74bf 033151 force 6 ,loopcnt 
+0x74c0 033152 force 0 ,regc 
+:      033153 bn_add_0:
+0x74c1 033154 ifetch 4 ,rega 
+0x74c2 033155 iforce temp 
+0x74c3 033156 ifetch 4 ,regb 
+0x74c4 033157 iadd temp ,pdata 
+0x74c5 033158 iadd regc ,pdata 
+0x74c6 033159 istore 4 ,contw 
+0x74c7 033160 isolate1 32 ,pdata 
+0x74c8 033161 setflag true ,0 ,regc 
+0x74c9 033162 increase 4 ,rega 
+0x74ca 033163 increase 4 ,regb 
+0x74cb 033164 loop bn_add_0 
+0x74cc 033165 rtn 
+:      033167 bn_sub:
+0x74cd 033168 force 6 ,loopcnt 
+0x74ce 033169 force 0 ,regc 
+:      033170 bn_sub_0:
+0x74cf 033171 ifetch 4 ,regb 
+0x74d0 033172 iforce temp 
+0x74d1 033173 ifetch 4 ,rega 
+0x74d2 033174 isub temp ,pdata 
+0x74d3 033175 isub regc ,pdata 
+0x74d4 033176 istore 4 ,contw 
+0x74d5 033177 isolate1 32 ,pdata 
+0x74d6 033178 setflag true ,0 ,regc 
+0x74d7 033179 increase 4 ,rega 
+0x74d8 033180 increase 4 ,regb 
+0x74d9 033181 loop bn_sub_0 
+0x74da 033182 rtn 
+:      033184 bn_rshift6:
+0x74db 033185 force 6 ,loopcnt 
+0x74dc 033186 increase 20 ,rega 
+:      033187 bn_rshift:
+0x74dd 033188 force 0 ,regc 
+:      033189 bn_rshift_0:
+0x74de 033190 ifetch 4 ,rega 
+0x74df 033191 isolate1 0 ,pdata 
+0x74e0 033192 setflag true ,1 ,regc 
+0x74e1 033193 rshift pdata ,pdata 
+0x74e2 033194 isolate1 0 ,regc 
+0x74e3 033195 setflag true ,31 ,pdata 
+0x74e4 033196 istore 4 ,rega 
+0x74e5 033197 increase -4 ,rega 
+0x74e6 033198 rshift regc ,regc 
+0x74e7 033199 loop bn_rshift_0 
+0x74e8 033200 rtn 
+:      033201 bn_lshift:
+0x74e9 033202 force 6 ,loopcnt 
+0x74ea 033203 force 0 ,regc 
+:      033204 bn_lshift_0:
+0x74eb 033205 ifetch 4 ,rega 
+0x74ec 033206 isolate1 31 ,pdata 
+0x74ed 033207 setflag true ,1 ,regc 
+0x74ee 033208 lshift pdata ,pdata 
+0x74ef 033209 isolate1 0 ,regc 
+0x74f0 033210 setflag true ,0 ,pdata 
+0x74f1 033211 istore 4 ,rega 
+0x74f2 033212 increase 4 ,rega 
+0x74f3 033213 rshift regc ,regc 
+0x74f4 033214 loop bn_lshift_0 
+0x74f5 033215 rtn 
+:      033218 bn_load:
+0x74f6 033219 force 6 ,loopcnt 
+:      033220 bn_load_0:
+0x74f7 033221 ifetch 4 ,contr 
+0x74f8 033222 iforce regext 
+0x74f9 033223 increase 1 ,regext_index 
+0x74fa 033224 loop bn_load_0 
+0x74fb 033225 rtn 
+:      033229 sp_initialize_256:
+0x74fc 033230 bpatch patch1d_7 ,mem_patch1d 
+0x74fd 033231 fetch 1 ,mem_secure_connections_enable 
+0x74fe 033232 nbranch sp_pubkey_calc_256 ,blank 
+:      033234 sc_reset:
+0x74ff 033235 jam sp_calc_standby ,mem_sc_calc 
+0x7500 033236 jam sp_key_invalid ,mem_sc_local_key_invalid 
+0x7501 033237 rtn 
+:      033241 sp_wait_pubkey_calc_256_done:
+0x7502 033242 fetch 1 ,mem_secure_connections_enable 
+0x7503 033243 rtn blank 
+0x7504 033244 fetch 1 ,mem_sc_local_key_invalid 
+0x7505 033245 rtneq sp_key_valid_256 
+0x7506 033246 call sp_calc_sequence_256 
+0x7507 033247 branch sp_wait_pubkey_calc_256_done 
+:      033251 sp_debug_private_256:
+0x7508 033252 arg mem_sc_private_key_256 ,contw 
+0x7509 033253 setsect 0 ,0x1abd 
+0x750a 033254 setsect 1 ,0x1b34f 
+0x750b 033255 setsect 2 ,0x19b8a 
+0x750c 033256 setsect 3 ,0x26562 
+0x750d 033257 istore 9 ,contw 
+0x750e 033258 setsect 0 ,0x340b7 
+0x750f 033259 setsect 1 ,0x1efa 
+0x7510 033260 setsect 2 ,0xaff6 
+0x7511 033261 setsect 3 ,0xfd41 
+0x7512 033262 istore 9 ,contw 
+0x7513 033263 setsect 0 ,0x3d210 
+0x7514 033264 setsect 1 ,0x26cf8 
+0x7515 033265 setsect 2 ,0x3874c 
+0x7516 033266 setsect 3 ,0x3157c 
+0x7517 033267 istore 9 ,contw 
+0x7518 033268 setsect 0 ,0x2d4a3 
+0x7519 033269 setsect 1 ,0x3d27d 
+0x751a 033270 setsect 2 ,0x3 
+0x751b 033271 istore 5 ,contw 
+0x751c 033272 rtn 
+:      033275 sp_pubkey_calc_256:
+0x751d 033276 fetch 1 ,mem_sc_local_key_invalid 
+0x751e 033277 rtnne sp_key_invalid 
+0x751f 033278 fetch 1 ,mem_sc_calc 
+0x7520 033279 rtnne sp_calc_standby 
+0x7521 033280 call init_memp_256 
+0x7522 033281 arg mem_sc_private_key_256 ,contw 
+0x7523 033282 force 15 ,queue 
+0x7524 033283 call random_generator 
+0x7525 033284 random pdata 
+0x7526 033285 rshift pdata ,pdata 
+0x7527 033286 istore 2 ,contw 
+0x7528 033288 fetch 1 ,mem_sp_debug_mode 
+0x7529 033289 ncall sp_debug_private_256 ,blank 
+0x752a 033291 arg mem_k_256 ,contw 
+0x752b 033292 arg mem_sc_private_key_256 ,contr 
+0x752c 033293 call memcpy32 
+0x752d 033295 arg mem_ax_256 ,contw 
+0x752e 033296 arg mem_gx_256 ,contr 
+0x752f 033297 call memcpy64 
+0x7530 033299 arg mem_az_256 ,contw 
+0x7531 033300 call clear_mem_256 
+0x7532 033301 jam 1 ,mem_az_256 
+0x7533 033303 call eckp_calc_init_256 
+0x7534 033304 jam sp_calc_pubkey_256 ,mem_sc_calc 
+0x7535 033305 rtn 
+:      033307 sp_pubkey_generated_256:
+0x7536 033308 arg mem_sc_pubkey_local_x_256 ,contw 
+0x7537 033309 arg mem_bx_256 ,contr 
+0x7538 033310 call memcpy64 
+0x7539 033311 jam sp_key_valid_256 ,mem_sc_local_key_invalid 
+0x753a 033312 jam sp_calc_standby ,mem_sc_calc 
+0x753b 033313 rtn 
+:      033317 sp_dhkey_calc_256:
+0x753c 033318 fetch 1 ,mem_sp_dhkey_invalid 
+0x753d 033319 rtnne sp_key_invalid 
+0x753e 033320 fetch 1 ,mem_sc_calc 
+0x753f 033321 rtnne sp_calc_standby 
+0x7540 033323 arg mem_k_256 ,contw 
+0x7541 033324 arg mem_sc_private_key_256 ,contr 
+0x7542 033325 call memcpy32 
+0x7543 033327 arg mem_ax_256 ,contw 
+0x7544 033328 arg mem_le_pubkey_remote_x_256 ,contr 
+0x7545 033329 call memcpy64 
+0x7546 033331 arg mem_az_256 ,contw 
+0x7547 033332 call clear_mem_256 
+0x7548 033333 jam 1 ,mem_az_256 
+0x7549 033335 call eckp_calc_init_256 
+0x754a 033336 jam sp_calc_dhkey_256 ,mem_sc_calc 
+0x754b 033337 rtn 
+:      033340 sp_dhkey_generated_256:
+0x754c 033342 arg mem_le_dhkey_256 ,contw 
+0x754d 033343 arg mem_bx_256 ,contr 
+0x754e 033344 call memcpy32 
+0x754f 033345 jam sp_key_valid_256 ,mem_sp_dhkey_invalid 
+0x7550 033346 jam sp_calc_standby ,mem_sc_calc 
+0x7551 033347 rtn 
+:      033351 sp_calc_sequence_256:
+0x7552 033352 fetch 1 ,mem_secure_connections_enable 
+0x7553 033353 rtn blank 
+0x7554 033354 fetch 1 ,mem_sc_calc 
+0x7555 033355 rtn blank 
+0x7556 033356 increase 0x80 ,pdata 
+0x7557 033357 store 1 ,mem_sc_calc 
+0x7558 033358 rtnbit1 7 
+0x7559 033359 fetch 2 ,mem_ec_loopc 
+0x755a 033360 branch sp_calc_sequence_done_256 ,blank 
+0x755b 033361 branch eckp_calc_256 
+:      033363 sp_calc_sequence_done_256:
+0x755c 033364 bpatch patch1e_0 ,mem_patch1e 
+0x755d 033365 call ecunmapz_256 
+0x755e 033366 fetch 1 ,mem_sc_calc 
+0x755f 033367 beq sp_calc_pubkey_256 ,sp_pubkey_generated_256 
+0x7560 033368 beq sp_calc_dhkey_256 ,sp_dhkey_generated_256 
+0x7561 033369 rtn 
+:      033372 eckp_calc_256:
+0x7562 033373 call ecdbl_256 
+0x7563 033374 fetch 2 ,mem_ec_loopc 
+0x7564 033375 increase -1 ,pdata 
+0x7565 033376 store 2 ,mem_ec_loopc 
+0x7566 033377 arg mem_k_256 ,contr 
+0x7567 033378 call bn_testbit 
+0x7568 033379 rtn true 
+0x7569 033380 branch ecadd_256 
+:      033382 eckp_calc_init_256:
+0x756a 033383 bpatch patch1e_1 ,mem_patch1e 
+0x756b 033384 setarg 256 
+0x756c 033385 store 2 ,mem_ec_loopc 
+:      033386 eckp_calc_init_256_1:
+0x756d 033387 fetch 2 ,mem_ec_loopc 
+0x756e 033388 rtn blank 
+0x756f 033389 increase -1 ,pdata 
+0x7570 033390 store 2 ,mem_ec_loopc 
+0x7571 033391 arg mem_k_256 ,contr 
+0x7572 033392 call bn_testbit 
+0x7573 033393 branch eckp_calc_init_256_1 ,true 
+0x7574 033394 arg mem_ax_256 ,contr 
+0x7575 033395 arg mem_cx_256 ,contw 
+0x7576 033396 branch memcpy96 
+:      033399 ecunmapz_256:
+0x7577 033400 arg mem_cz_256 ,rega 
+0x7578 033401 arg mem_t3_256 ,contw 
+0x7579 033402 call bn_invmod_256 
+0x757a 033403 arg mem_t3_256 ,rega 
+0x757b 033404 arg mem_t1_256 ,contw 
+0x757c 033405 call bn_sqrmod_256 
+0x757d 033406 arg mem_cx_256 ,rega 
+0x757e 033407 arg mem_t1_256 ,regb 
+0x757f 033408 arg mem_bx_256 ,contw 
+0x7580 033409 call bn_mulmod_256 
+0x7581 033410 arg mem_t3_256 ,rega 
+0x7582 033411 arg mem_t1_256 ,regb 
+0x7583 033412 arg mem_t2_256 ,contw 
+0x7584 033413 call bn_mulmod_256 
+0x7585 033414 arg mem_cy_256 ,rega 
+0x7586 033415 arg mem_t2_256 ,regb 
+0x7587 033416 arg mem_by_256 ,contw 
+0x7588 033417 branch bn_mulmod_256 
+:      033419 ecdbl_256:
+0x7589 033420 arg mem_cz_256 ,rega 
+0x758a 033421 arg mem_t2_256 ,contw 
+0x758b 033422 call bn_sqrmod_256 
+0x758c 033423 arg mem_t2_256 ,rega 
+0x758d 033424 arg mem_t3_256 ,contw 
+0x758e 033425 call bn_sqrmod_256 
+0x758f 033427 arg mem_a_256 ,rega 
+0x7590 033428 arg mem_t3_256 ,regb 
+0x7591 033429 arg mem_t3_256 ,contw 
+0x7592 033430 call bn_mulmod_256 
+0x7593 033431 arg mem_cx_256 ,rega 
+0x7594 033432 arg mem_t2_256 ,contw 
+0x7595 033433 call bn_sqrmod_256 
+0x7596 033435 arg mem_t2_256 ,contr 
+0x7597 033436 arg mem_t1_256 ,contw 
+0x7598 033437 call memcpy32 
+0x7599 033438 arg mem_t1_256 ,rega 
+0x759a 033439 call bn_lshiftmod_256 
+0x759b 033440 arg mem_t2_256 ,rega 
+0x759c 033441 arg mem_t1_256 ,regb 
+0x759d 033442 arg mem_t2_256 ,contw 
+0x759e 033443 call bn_addmod_256 
+0x759f 033445 arg mem_t2_256 ,rega 
+0x75a0 033446 arg mem_t3_256 ,regb 
+0x75a1 033447 arg mem_t2_256 ,contw 
+0x75a2 033448 call bn_addmod_256 
+0x75a3 033450 arg mem_cx_256 ,contr 
+0x75a4 033451 arg mem_t1_256 ,contw 
+0x75a5 033452 call memcpy32 
+0x75a6 033453 arg mem_cy_256 ,rega 
+0x75a7 033454 arg mem_t3_256 ,contw 
+0x75a8 033455 call bn_sqrmod_256 
+0x75a9 033456 arg mem_t1_256 ,rega 
+0x75aa 033457 call bn_lshiftmod_256 
+0x75ab 033458 arg mem_t1_256 ,rega 
+0x75ac 033459 call bn_lshiftmod_256 
+0x75ad 033460 arg mem_t1_256 ,rega 
+0x75ae 033461 arg mem_t3_256 ,regb 
+0x75af 033462 arg mem_t1_256 ,contw 
+0x75b0 033463 call bn_mulmod_256 
+0x75b1 033464 arg mem_t3_256 ,rega 
+0x75b2 033465 arg mem_t0_256 ,contw 
+0x75b3 033466 call bn_sqrmod_256 
+0x75b4 033467 arg mem_t0_256 ,rega 
+0x75b5 033468 call bn_lshiftmod_256 
+0x75b6 033469 arg mem_t0_256 ,rega 
+0x75b7 033470 call bn_lshiftmod_256 
+0x75b8 033471 arg mem_t0_256 ,rega 
+0x75b9 033472 call bn_lshiftmod_256 
+0x75ba 033473 arg mem_cy_256 ,contr 
+0x75bb 033474 arg mem_t3_256 ,contw 
+0x75bc 033475 call memcpy32 
+0x75bd 033476 arg mem_t3_256 ,rega 
+0x75be 033477 call bn_lshiftmod_256 
+0x75bf 033478 arg mem_t3_256 ,rega 
+0x75c0 033479 arg mem_cz_256 ,regb 
+0x75c1 033480 arg mem_cz_256 ,contw 
+0x75c2 033481 call bn_mulmod_256 
+0x75c3 033484 arg mem_t2_256 ,rega 
+0x75c4 033485 arg mem_t3_256 ,contw 
+0x75c5 033486 call bn_sqrmod_256 
+0x75c6 033488 arg mem_t3_256 ,rega 
+0x75c7 033489 arg mem_t1_256 ,regb 
+0x75c8 033490 arg mem_t3_256 ,contw 
+0x75c9 033491 call bn_submod_256 
+0x75ca 033492 arg mem_t3_256 ,rega 
+0x75cb 033493 arg mem_t1_256 ,regb 
+0x75cc 033494 arg mem_cx_256 ,contw 
+0x75cd 033495 call bn_submod_256 
+0x75ce 033496 arg mem_t1_256 ,rega 
+0x75cf 033497 arg mem_cx_256 ,regb 
+0x75d0 033498 arg mem_t3_256 ,contw 
+0x75d1 033499 call bn_submod_256 
+0x75d2 033500 arg mem_t3_256 ,rega 
+0x75d3 033501 arg mem_t2_256 ,regb 
+0x75d4 033502 arg mem_t3_256 ,contw 
+0x75d5 033503 call bn_mulmod_256 
+0x75d6 033504 arg mem_t3_256 ,rega 
+0x75d7 033505 arg mem_t0_256 ,regb 
+0x75d8 033506 arg mem_cy_256 ,contw 
+0x75d9 033507 branch bn_submod_256 
+:      033509 ecadd_256:
+0x75da 033511 arg mem_az_256 ,rega 
+0x75db 033512 arg mem_t7_256 ,contw 
+0x75dc 033513 call bn_sqrmod_256 
+0x75dd 033514 arg mem_cx_256 ,rega 
+0x75de 033515 arg mem_t7_256 ,regb 
+0x75df 033516 arg mem_t0_256 ,contw 
+0x75e0 033517 call bn_mulmod_256 
+0x75e1 033520 arg mem_az_256 ,rega 
+0x75e2 033521 arg mem_t7_256 ,regb 
+0x75e3 033522 arg mem_t7_256 ,contw 
+0x75e4 033523 call bn_mulmod_256 
+0x75e5 033524 arg mem_cy_256 ,rega 
+0x75e6 033525 arg mem_t7_256 ,regb 
+0x75e7 033526 arg mem_t1_256 ,contw 
+0x75e8 033527 call bn_mulmod_256 
+0x75e9 033530 arg mem_cz_256 ,rega 
+0x75ea 033531 arg mem_t7_256 ,contw 
+0x75eb 033532 call bn_sqrmod_256 
+0x75ec 033533 arg mem_ax_256 ,rega 
+0x75ed 033534 arg mem_t7_256 ,regb 
+0x75ee 033535 arg mem_t2_256 ,contw 
+0x75ef 033536 call bn_mulmod_256 
+0x75f0 033538 arg mem_cz_256 ,rega 
+0x75f1 033539 arg mem_t7_256 ,regb 
+0x75f2 033540 arg mem_t7_256 ,contw 
+0x75f3 033541 call bn_mulmod_256 
+0x75f4 033542 arg mem_ay_256 ,rega 
+0x75f5 033543 arg mem_t7_256 ,regb 
+0x75f6 033544 arg mem_t3_256 ,contw 
+0x75f7 033545 call bn_mulmod_256 
+0x75f8 033550 arg mem_t0_256 ,regb 
+0x75f9 033551 arg mem_t2_256 ,rega 
+0x75fa 033552 arg mem_t7_256 ,contw 
+0x75fb 033553 call bn_submod_256 
+0x75fc 033554 arg mem_t0_256 ,rega 
+0x75fd 033555 arg mem_t2_256 ,regb 
+0x75fe 033556 arg mem_t0_256 ,contw 
+0x75ff 033557 call bn_addmod_256 
+0x7600 033560 arg mem_t1_256 ,regb 
+0x7601 033561 arg mem_t3_256 ,rega 
+0x7602 033562 arg mem_t2_256 ,contw 
+0x7603 033563 call bn_submod_256 
+0x7604 033564 arg mem_t1_256 ,rega 
+0x7605 033565 arg mem_t3_256 ,regb 
+0x7606 033566 arg mem_t1_256 ,contw 
+0x7607 033567 call bn_addmod_256 
+0x7608 033568 arg mem_t1_256 ,rega 
+0x7609 033569 arg mem_t7_256 ,regb 
+0x760a 033570 arg mem_t1_256 ,contw 
+0x760b 033571 call bn_mulmod_256 
+0x760c 033572 arg mem_cz_256 ,rega 
+0x760d 033573 arg mem_az_256 ,regb 
+0x760e 033574 arg mem_t3_256 ,contw 
+0x760f 033575 call bn_mulmod_256 
+0x7610 033576 arg mem_t3_256 ,rega 
+0x7611 033577 arg mem_t7_256 ,regb 
+0x7612 033578 arg mem_cz_256 ,contw 
+0x7613 033579 call bn_mulmod_256 
+0x7614 033581 arg mem_t7_256 ,rega 
+0x7615 033582 arg mem_t7_256 ,contw 
+0x7616 033583 call bn_sqrmod_256 
+0x7617 033584 arg mem_t7_256 ,rega 
+0x7618 033585 arg mem_t0_256 ,regb 
+0x7619 033586 arg mem_t3_256 ,contw 
+0x761a 033587 call bn_mulmod_256 
+0x761b 033588 arg mem_t7_256 ,rega 
+0x761c 033589 arg mem_t1_256 ,regb 
+0x761d 033590 arg mem_t1_256 ,contw 
+0x761e 033591 call bn_mulmod_256 
+0x761f 033592 arg mem_t2_256 ,rega 
+0x7620 033593 arg mem_cx_256 ,contw 
+0x7621 033594 call bn_sqrmod_256 
+0x7622 033595 arg mem_cx_256 ,rega 
+0x7623 033596 arg mem_t3_256 ,regb 
+0x7624 033597 arg mem_cx_256 ,contw 
+0x7625 033598 call bn_submod_256 
+0x7626 033599 arg mem_cx_256 ,contr 
+0x7627 033600 arg mem_t7_256 ,contw 
+0x7628 033601 call memcpy32 
+0x7629 033602 arg mem_t7_256 ,rega 
+0x762a 033603 call bn_lshiftmod_256 
+0x762b 033604 arg mem_t3_256 ,rega 
+0x762c 033605 arg mem_t7_256 ,regb 
+0x762d 033606 arg mem_t3_256 ,contw 
+0x762e 033607 call bn_submod_256 
+0x762f 033608 arg mem_t3_256 ,rega 
+0x7630 033609 arg mem_t2_256 ,regb 
+0x7631 033610 arg mem_t2_256 ,contw 
+0x7632 033611 call bn_mulmod_256 
+0x7633 033612 arg mem_t2_256 ,rega 
+0x7634 033613 arg mem_t1_256 ,regb 
+0x7635 033614 arg mem_cy_256 ,contw 
+0x7636 033615 call bn_submod_256 
+0x7637 033616 arg mem_cy_256 ,rega 
+0x7638 033617 arg mem_p_256 ,regb 
+0x7639 033618 arg mem_cy_256 ,contw 
+0x763a 033619 force 0 ,regc 
+0x763b 033620 fetch 1 ,mem_cy_256 
+0x763c 033621 isolate1 0 ,pdata 
+0x763d 033622 call bn_add_256 ,true 
+0x763e 033623 copy regc ,alarm 
+0x763f 033624 arg mem_cy_256 ,rega 
+0x7640 033625 call bn_rshift_256 
+0x7641 033626 fetch 1 ,mem_cy5_256 
+0x7642 033627 isolate1 0 ,alarm 
+0x7643 033628 setflag true ,7 ,pdata 
+0x7644 033629 store 1 ,mem_cy5_256 
+0x7645 033630 rtn 
+:      033632 bn_invmod_256:
+0x7646 033633 copy contw ,timeup 
+0x7647 033634 arg mem_tmp0_256 ,contw 
+0x7648 033635 call clear_mem_256 
+0x7649 033636 force 0 ,pdata 
+0x764a 033638 store 4 ,mem_t2_256 
+0x764b 033639 jam 1 ,mem_tmp0_256 
+0x764c 033640 arg mem_tmp1_256 ,contw 
+0x764d 033641 call clear_mem_512 
+0x764e 033642 arg mem_p_256 ,contr 
+0x764f 033643 arg mem_tmp2_256 ,contw 
+0x7650 033644 call memcpy32 
+0x7651 033645 copy rega ,contr 
+0x7652 033646 arg mem_tmp3_256 ,contw 
+0x7653 033647 call memcpy32 
+:      033653 bn_invmod_256_2:
+0x7654 033654 arg mem_tmp3_256 ,contr 
+0x7655 033655 call bn_eq_zero_256 
+0x7656 033656 branch bn_invmod_256_0 ,blank 
+0x7657 033661 arg mem_tmp3_256 ,rega 
+0x7658 033662 arg mem_tmp0_256 ,regb 
+0x7659 033663 call bn_rshifteven_256 
+0x765a 033664 arg mem_tmp2_256 ,rega 
+0x765b 033665 arg mem_tmp1_256 ,regb 
+0x765c 033666 call bn_rshifteven_256 
+0x765d 033668 arg mem_tmp3_256 ,rega 
+0x765e 033669 arg mem_tmp2_256 ,regb 
+0x765f 033670 call bn_bigeq_256 
+0x7660 033671 branch bn_invmod_256_1 ,positive 
+0x7661 033672 arg mem_tmp2_256 ,rega 
+0x7662 033673 arg mem_tmp3_256 ,regb 
+0x7663 033674 copy rega ,contw 
+0x7664 033675 call bn_sub_256 
+0x7665 033676 arg mem_tmp0_256 ,rega 
+0x7666 033677 arg mem_tmp1_256 ,regb 
+0x7667 033678 copy regb ,contw 
+0x7668 033679 call bn_add_256 
+0x7669 033680 ifetch 1 ,rega 
+0x766a 033681 iadd regc ,regc 
+0x766b 033682 ifetch 1 ,regb 
+0x766c 033683 iadd regc ,pdata 
+0x766d 033684 istore 1 ,regb 
+0x766e 033685 branch bn_invmod_256_2 
+:      033686 bn_invmod_256_1:
+0x766f 033687 arg mem_tmp3_256 ,rega 
+0x7670 033688 arg mem_tmp2_256 ,regb 
+0x7671 033689 copy rega ,contw 
+0x7672 033690 call bn_sub_256 
+0x7673 033691 arg mem_tmp1_256 ,rega 
+0x7674 033692 arg mem_tmp0_256 ,regb 
+0x7675 033693 copy regb ,contw 
+0x7676 033694 call bn_add_256 
+0x7677 033695 ifetch 1 ,rega 
+0x7678 033696 iadd regc ,regc 
+0x7679 033697 ifetch 1 ,regb 
+0x767a 033698 iadd regc ,pdata 
+0x767b 033699 istore 1 ,regb 
+0x767c 033700 branch bn_invmod_256_2 
+:      033701 bn_invmod_256_0:
+0x767d 033703 arg mem_tmp1_256 ,rega 
+0x767e 033704 copy timeup ,contw 
+0x767f 033705 call bn_p256mod 
+0x7680 033707 arg mem_p_256 ,rega 
+0x7681 033708 copy timeup ,regb 
+0x7682 033709 copy timeup ,contw 
+0x7683 033710 branch bn_submod_256 
+:      033713 bn_mulmod_256:
+0x7684 033714 copy contw ,timeup 
+0x7685 033716 force 0 ,regext_index 
+0x7686 033718 arg mem_tmp1_256 ,contw 
+0x7687 033719 call clear_mem_512 
+0x7688 033720 arg mem_regext ,contw 
+0x7689 033721 call clear_mem_512 
+0x768a 033725 copy rega ,contr 
+0x768b 033727 jam 0 ,mem_regext 
+0x768c 033728 setarg 0 
+0x768d 033729 call bn_load_mem 
+0x768e 033730 copy regb ,contr 
+0x768f 033731 call bn_load_256 
+0x7690 033734 force 0 ,queue 
+0x7691 033735 arg mem_tmp1_256 ,contw 
+:      033736 bn_mulmod_256_1:
+0x7692 033739 arg mem_regext ,temp 
+0x7693 033740 copy queue ,regb 
+0x7694 033741 lshift2 regb ,pdata 
+0x7695 033743 iadd temp ,regb 
+0x7696 033744 force 0 ,temp 
+0x7697 033745 force 0 ,regc 
+:      033746 bn_mulmod_256_0:
+0x7698 033751 ifetch 4 ,contw 
+0x7699 033752 iforce rega 
+0x769a 033755 ifetch 4 ,regb 
+0x769b 033756 copy regc ,regext_index 
+0x769c 033757 imul32 regext ,pdata 
+0x769d 033758 iadd rega ,pdata 
+0x769e 033759 iadd temp ,pdata 
+0x769f 033760 istore 4 ,contw 
+0x76a0 033761 rshift32 pdata ,temp 
+0x76a1 033762 increase 1 ,regc 
+0x76a2 033763 compare 8 ,regc ,0xff 
+0x76a3 033764 nbranch bn_mulmod_256_0 ,true 
+0x76a4 033766 deposit temp 
+0x76a5 033767 istore 4 ,contw 
+0x76a6 033768 increase -32 ,contw 
+0x76a7 033771 increase 1 ,queue 
+0x76a8 033772 compare 8 ,queue ,0xff 
+0x76a9 033773 nbranch bn_mulmod_256_1 ,true 
+0x76aa 033774 arg mem_tmp1_256 ,rega 
+0x76ab 033775 copy timeup ,contw 
+0x76ac 033776 branch bn_p256mod 
+:      033778 bn_p256mod:
+0x76ad 033779 bpatch patch1e_2 ,mem_patch1e 
+0x76ae 033780 copy contw ,timeup 
+0x76af 033781 copy rega ,alarm 
+0x76b0 033782 arg mem_tmp2_256 ,regb 
+0x76b1 033783 copy regb ,contw 
+0x76b2 033784 call memset0_4 
+0x76b3 033785 istore 8 ,contw 
+0x76b4 033786 add rega ,44 ,contr 
+0x76b5 033787 call memcpy8 
+0x76b6 033788 call memcpy12 
+0x76b7 033789 copy regb ,rega 
+0x76b8 033790 call bn_lshiftmod_256 
+0x76b9 033791 arg mem_tmp2_256 ,regb 
+0x76ba 033792 copy alarm ,rega 
+0x76bb 033793 copy timeup ,contw 
+0x76bc 033794 call bn_addmod_256 
+0x76bd 033796 arg mem_tmp2_256 ,regb 
+0x76be 033797 copy regb ,contw 
+0x76bf 033798 call memset0_4 
+0x76c0 033799 istore 8 ,contw 
+0x76c1 033800 add alarm ,48 ,contr 
+0x76c2 033801 call memcpy16 
+0x76c3 033802 call memset0_4 
+0x76c4 033803 copy regb ,rega 
+0x76c5 033804 call bn_lshiftmod_256 
+0x76c6 033808 arg mem_tmp2_256 ,regb 
+0x76c7 033809 copy timeup ,rega 
+0x76c8 033810 copy rega ,contw 
+0x76c9 033811 call bn_addmod_256 
+0x76ca 033815 arg mem_tmp2_256 ,regb 
+0x76cb 033816 copy regb ,contw 
+0x76cc 033817 add alarm ,32 ,contr 
+0x76cd 033818 call memcpy12 
+0x76ce 033819 call memset0_4 
+0x76cf 033820 istore 8 ,contw 
+0x76d0 033821 add alarm ,56 ,contr 
+0x76d1 033822 call memcpy8 
+0x76d2 033823 copy timeup ,rega 
+0x76d3 033824 copy rega ,contw 
+0x76d4 033825 call bn_addmod_256 
+0x76d5 033829 arg mem_tmp2_256 ,regb 
+0x76d6 033830 copy regb ,contw 
+0x76d7 033831 add alarm ,36 ,contr 
+0x76d8 033832 call memcpy12 
+0x76d9 033833 add alarm ,52 ,contr 
+0x76da 033834 call memcpy12 
+0x76db 033835 add alarm ,52 ,contr 
+0x76dc 033836 call memcpy4 
+0x76dd 033837 add alarm ,32 ,contr 
+0x76de 033838 call memcpy4 
+0x76df 033839 copy timeup ,rega 
+0x76e0 033840 copy rega ,contw 
+0x76e1 033841 call bn_addmod_256 
+0x76e2 033844 arg mem_tmp2_256 ,regb 
+0x76e3 033845 copy regb ,contw 
+0x76e4 033846 add alarm ,44 ,contr 
+0x76e5 033847 call memcpy12 
+0x76e6 033848 call memset0_4 
+0x76e7 033849 istore 8 ,contw 
+0x76e8 033850 add alarm ,32 ,contr 
+0x76e9 033851 call memcpy4 
+0x76ea 033852 add alarm ,40 ,contr 
+0x76eb 033853 call memcpy4 
+0x76ec 033854 copy timeup ,rega 
+0x76ed 033855 copy rega ,contw 
+0x76ee 033856 call bn_submod_256 
+0x76ef 033859 arg mem_tmp2_256 ,regb 
+0x76f0 033860 copy regb ,contw 
+0x76f1 033861 add alarm ,48 ,contr 
+0x76f2 033862 call memcpy8 
+0x76f3 033863 call memcpy8 
+0x76f4 033864 force 0 ,pdata 
+0x76f5 033865 istore 8 ,contw 
+0x76f6 033866 add alarm ,36 ,contr 
+0x76f7 033867 call memcpy4 
+0x76f8 033868 add alarm ,44 ,contr 
+0x76f9 033869 call memcpy4 
+0x76fa 033870 copy timeup ,rega 
+0x76fb 033871 copy rega ,contw 
+0x76fc 033872 call bn_submod_256 
+0x76fd 033875 arg mem_tmp2_256 ,regb 
+0x76fe 033876 copy regb ,contw 
+0x76ff 033877 add alarm ,52 ,contr 
+0x7700 033878 call memcpy12 
+0x7701 033879 add alarm ,32 ,contr 
+0x7702 033880 call memcpy12 
+0x7703 033881 call memset0_4 
+0x7704 033882 add alarm ,48 ,contr 
+0x7705 033883 call memcpy4 
+0x7706 033884 copy timeup ,rega 
+0x7707 033885 copy rega ,contw 
+0x7708 033886 call bn_submod_256 
+0x7709 033889 arg mem_tmp2_256 ,regb 
+0x770a 033890 copy regb ,contw 
+0x770b 033891 add alarm ,56 ,contr 
+0x770c 033892 call memcpy8 
+0x770d 033893 call memset0_4 
+0x770e 033894 add alarm ,36 ,contr 
+0x770f 033895 call memcpy12 
+0x7710 033896 call memset0_4 
+0x7711 033897 add alarm ,52 ,contr 
+0x7712 033898 call memcpy4 
+0x7713 033899 copy timeup ,rega 
+0x7714 033900 copy rega ,contw 
+0x7715 033901 branch bn_submod_256 
+:      033904 bn_load_mem:
+0x7716 033905 force 32 ,loopcnt 
+0x7717 033906 arg mem_regext ,contw 
+0x7718 033907 iadd contw ,contw 
+0x7719 033908 branch memcpy 
+:      033910 bn_load_256:
+0x771a 033911 force 8 ,loopcnt 
+0x771b 033912 branch bn_load_0 
+:      033914 bn_sqrmod_256:
+0x771c 033915 copy rega ,regb 
+0x771d 033916 branch bn_mulmod_256 
+:      033918 bn_add_256:
+0x771e 033919 force 8 ,loopcnt 
+0x771f 033920 branch bn_add + 1 
+:      033922 bn_addmod_256:
+0x7720 033923 call bn_add_256 
+0x7721 033924 copy contw ,rega 
+0x7722 033925 branch bn_lshiftmod_ismod_256 
+:      033927 bn_lshiftmod_256:
+0x7723 033928 call bn_lshift_256 
+:      033929 bn_lshiftmod_ismod_256:
+0x7724 033930 isolate1 0 ,regc 
+0x7725 033931 branch bn_lshiftmod_p_256 ,true 
+0x7726 033932 arg mem_p_256 ,regb 
+0x7727 033933 copy rega ,regc 
+0x7728 033934 increase -32 ,rega 
+0x7729 033935 call bn_bigeq_256 
+0x772a 033936 nrtn positive 
+0x772b 033937 copy regc ,rega 
+0x772c 033938 branch sub_p2_256 
+:      033940 bn_lshiftmod_p_256:
+0x772d 033941 call sub_p2_256 
+0x772e 033943 copy rega ,regc 
+0x772f 033944 increase -32 ,rega 
+0x7730 033945 arg mem_p_256 ,regb 
+0x7731 033946 call bn_bigeq_256 
+0x7732 033947 nrtn positive 
+0x7733 033948 copy regc ,rega 
+0x7734 033949 branch sub_p2_256 
+:      033952 sub_p2_256:
+0x7735 033953 increase -32 ,rega 
+0x7736 033954 arg mem_p_256 ,regb 
+0x7737 033955 copy rega ,contw 
+0x7738 033956 branch bn_sub_256 
+:      033961 bn_submod_256:
+0x7739 033962 call bn_sub_256 
+0x773a 033964 branch bn_submod_256_np ,true 
+0x773b 033967 add contw ,-32 ,rega 
+0x773c 033968 arg mem_p_256 ,regb 
+0x773d 033969 call bn_bigeq_256 
+0x773e 033970 nrtn positive 
+0x773f 033971 arg mem_p_256 ,regb 
+0x7740 033972 add contw ,-32 ,rega 
+0x7741 033974 copy rega ,contw 
+0x7742 033975 branch bn_sub_256 
+:      033976 bn_submod_256_np:
+0x7743 033977 add contw ,-32 ,rega 
+0x7744 033978 arg mem_p_256 ,regb 
+0x7745 033979 copy rega ,contw 
+0x7746 033980 call bn_add_256 
+0x7747 033982 rtn true 
+0x7748 033983 add contw ,-32 ,rega 
+0x7749 033984 arg mem_p_256 ,regb 
+0x774a 033985 copy rega ,contw 
+0x774b 033986 branch bn_add_256 
+:      033990 bn_sub_256:
+0x774c 033991 force 8 ,loopcnt 
+0x774d 033992 branch bn_sub + 1 
+:      033994 bn_rshift_256:
+0x774e 033995 force 8 ,loopcnt 
+0x774f 033996 increase 28 ,rega 
+0x7750 033997 branch bn_rshift 
+:      033999 bn_lshift_256:
+0x7751 034000 force 8 ,loopcnt 
+0x7752 034001 force 0 ,regc 
+0x7753 034002 branch bn_lshift_0 
+:      034004 bn_bigeq_256:
+0x7754 034005 force 8 ,loopcnt 
+0x7755 034006 increase 28 ,rega 
+0x7756 034007 increase 28 ,regb 
+0x7757 034008 branch bn_bigeq_0 
+:      034011 bn_eq_zero_256:
+0x7758 034012 ifetch 8 ,contr 
+0x7759 034013 nrtn blank 
+0x775a 034014 branch bn_eq_zero 
+:      034019 bn_rshifteven_256:
+0x775b 034020 copy rega ,alarm 
+:      034021 bn_rshifteven_256_1:
+0x775c 034022 copy alarm ,rega 
+0x775d 034023 ifetch 1 ,rega 
+0x775e 034024 isolate1 0 ,pdata 
+0x775f 034025 rtn true 
+0x7760 034026 call bn_rshift_256 
+0x7761 034027 ifetch 1 ,regb 
+0x7762 034028 isolate0 0 ,pdata 
+0x7763 034029 branch bn_rshifteven_256_0 ,true 
+0x7764 034030 arg mem_p_256 ,rega 
+0x7765 034031 copy regb ,contw 
+0x7766 034032 call bn_add_256 
+0x7767 034033 ifetch 1 ,regb 
+0x7768 034034 iadd regc ,pdata 
+0x7769 034035 istore 1 ,regb 
+0x776a 034036 increase -32 ,regb 
+:      034037 bn_rshifteven_256_0:
+0x776b 034038 add regb ,32 ,rega 
+0x776c 034039 force 9 ,loopcnt 
+0x776d 034040 call bn_rshift 
+0x776e 034041 branch bn_rshifteven_256_1 
+:      034044 ui_init:
+0x776f 034045 rtn wake 
+0x7770 034046 call lpm_disable_exen_output 
+0x7771 034047 call ui_button_init 
+0x7772 034048 call ui_timer_init 
+0x7773 034049 branch ui_led_init_global 
+:      034051 ui_dispatch:
+0x7774 034052 call ui_led_dispatch 
+0x7775 034053 branch ui_timer_check 
+:      034055 ui_button_init:
+0x7776 034056 fetch 1 ,mem_ui_button_gpio 
+0x7777 034057 rtneq ui_button_gpio_disable 
+0x7778 034058 iforce temp 
+0x7779 034059 call gpio_config_output 
+0x777a 034060 fetcht 1 ,mem_ui_button_gpio 
+0x777b 034061 call gpio_out_inactive 
+0x777c 034062 nop 100 
+0x777d 034063 fetcht 1 ,mem_ui_button_gpio 
+0x777e 034064 call gpio_config_input 
+0x777f 034065 branch ui_button_polling 
+:      034069 ui_button_polling:
+0x7780 034070 bpatch patch1e_3 ,mem_patch1e 
+0x7781 034071 fetch 1 ,mem_ui_button_gpio 
+0x7782 034072 rtneq ui_button_gpio_disable 
+0x7783 034073 copy pdata ,temp 
+0x7784 034074 call gpio_get_bit 
+0x7785 034075 nbranch ui_button_up ,true 
+:      034077 ui_button_down:
+0x7786 034078 call ui_button_check_long_press 
+0x7787 034079 fetch 2 ,mem_ui_state_map 
+0x7788 034080 set1 ui_state_btn_down ,pdata 
+0x7789 034081 store 2 ,mem_ui_state_map 
+0x778a 034082 fetch 1 ,mem_ui_button_last_state 
+0x778b 034083 rtneq ui_button_state_down 
+0x778c 034084 jam ui_button_state_down ,mem_ui_button_last_state 
+0x778d 034086 fetch 1 ,mem_ui_button_timeout 
+0x778e 034087 store 1 ,mem_ui_button_timer 
+0x778f 034088 call lpm_button_get_wake_lock 
+0x7790 034089 jam bt_evt_button_down ,mem_fifo_temp 
+0x7791 034090 branch ui_ipc_send_event 
+:      034091 ui_button_up:
+0x7792 034092 fetch 2 ,mem_ui_state_map 
+0x7793 034093 set0 ui_state_btn_down ,pdata 
+0x7794 034094 store 2 ,mem_ui_state_map 
+0x7795 034095 fetch 1 ,mem_ui_button_last_state 
+0x7796 034096 rtneq ui_button_state_up 
+0x7797 034097 jam ui_button_state_up ,mem_ui_button_last_state 
+0x7798 034099 jam 0 ,mem_ui_button_timer 
+0x7799 034100 call lpm_button_clean_wake_lock 
+0x779a 034101 jam bt_evt_button_up ,mem_fifo_temp 
+0x779b 034102 branch ui_ipc_send_event 
+:      034104 ui_button_check_long_press:
+0x779c 034105 fetch 1 ,mem_ui_button_timer 
+0x779d 034106 rtn blank 
+0x779e 034107 increase -1 ,pdata 
+0x779f 034108 store 1 ,mem_ui_button_timer 
+0x77a0 034109 nrtn blank 
+0x77a1 034111 jam bt_evt_button_long_pressed ,mem_fifo_temp 
+0x77a2 034112 branch ui_ipc_send_event 
+:      034114 lpm_button_get_wake_lock:
+0x77a3 034115 arg wake_lock_button ,queue 
+0x77a4 034116 branch lpm_get_wake_lock 
+:      034118 lpm_button_clean_wake_lock:
+0x77a5 034119 arg wake_lock_button ,queue 
+0x77a6 034120 branch lpm_put_wake_lock 
+:      034127 calc_curr_struct_prt:
+0x77a7 034128 bpatch patch1e_4 ,mem_patch1e 
+0x77a8 034129 fetch 2 ,mem_ui_led_struct_ptr 
+0x77a9 034130 mul32 rega ,led_offset_length ,regb 
+0x77aa 034131 iadd regb ,regb 
+0x77ab 034132 rtn 
+:      034135 ui_led_init_global:
+0x77ac 034136 fetch 1 ,mem_ui_led_struct_num 
+0x77ad 034137 rtn blank 
+0x77ae 034138 copy pdata ,loopcnt 
+0x77af 034139 fetch 2 ,mem_ui_led_struct_ptr 
+0x77b0 034140 copy pdata ,regb 
+:      034141 ui_led_init_loop:
+0x77b1 034142 add regb ,led_offset_led_gpio ,regc 
+0x77b2 034143 ifetcht 1 ,regc 
+0x77b3 034144 call ui_led_init_set 
+0x77b4 034145 increase led_offset_length ,regb 
+0x77b5 034146 loop ui_led_init_loop 
+0x77b6 034147 rtn 
+:      034150 ui_led_init_set:
+0x77b7 034151 fetch 1 ,mem_ui_led_init_state_set 
+0x77b8 034152 branch gpio_out_inactive ,blank 
+0x77b9 034153 branch gpio_out_active 
+:      034156 ui_led_on_global:
+0x77ba 034157 call calc_curr_struct_prt 
+0x77bb 034158 setarg ui_led_state_lighting 
+0x77bc 034159 istore 1 ,regb 
+0x77bd 034160 call ui_led_stop_timer 
+0x77be 034161 branch ui_led_on_static 
+:      034165 ui_led_blink_stop_global:
+:      034166 ui_led_off_global:
+0x77bf 034168 call calc_curr_struct_prt 
+0x77c0 034169 setarg ui_led_state_darking 
+0x77c1 034170 istore 1 ,regb 
+0x77c2 034172 call ui_led_stop_timer 
+0x77c3 034173 branch ui_led_off_static 
+:      034177 ui_led_blink_start_global:
+0x77c4 034178 call calc_curr_struct_prt 
+0x77c5 034179 setarg ui_led_state_blink_start 
+0x77c6 034180 istore 1 ,regb 
+0x77c7 034181 setarg led_infinite_flash_num 
+0x77c8 034182 istore 1 ,contw 
+0x77c9 034183 branch ui_led_off_static 
+:      034188 ui_led_set_style_global:
+0x77ca 034189 call calc_curr_struct_prt 
+0x77cb 034190 arg led_offset_length ,loopcnt 
+0x77cc 034191 copy regc ,contr 
+0x77cd 034192 copy regb ,contw 
+0x77ce 034193 branch memcpy_fast 
+:      034197 ui_led_dispatch:
+0x77cf 034198 fetch 1 ,mem_ui_led_struct_num 
+0x77d0 034199 rtn blank 
+0x77d1 034200 arg 0 ,rega 
+:      034201 ui_led_blink_polling:
+0x77d2 034202 call ui_led_change_style_by_type 
+0x77d3 034203 increase 1 ,rega 
+0x77d4 034204 fetch 1 ,mem_ui_led_struct_num 
+0x77d5 034205 isub rega ,null 
+0x77d6 034206 rtn zero 
+0x77d7 034207 branch ui_led_blink_polling 
+:      034210 ui_led_off_static:
+0x77d8 034211 add regb ,led_offset_led_gpio ,regc 
+0x77d9 034212 ifetcht 1 ,regc 
+0x77da 034213 branch gpio_out_inactive 
+:      034216 ui_led_on_static:
+0x77db 034217 add regb ,led_offset_led_gpio ,regc 
+0x77dc 034218 ifetcht 1 ,regc 
+0x77dd 034219 branch gpio_out_active 
+:      034223 ui_led_change_style_by_type:
+0x77de 034224 add rega ,ui_led_blink ,queue 
+0x77df 034225 call timer_check 
+0x77e0 034226 nrtn blank 
+0x77e1 034228 call calc_curr_struct_prt 
+0x77e2 034230 ifetch 1 ,regb 
+0x77e3 034232 beq ui_led_state_lighting ,ui_led_on_static 
+0x77e4 034233 beq ui_led_state_darking ,ui_led_off_static 
+0x77e5 034234 beq ui_led_state_blink_stop ,ui_led_off_static 
+0x77e6 034235 beq ui_led_state_blink_darking ,ui_led_blink_state_darking 
+:      034236 ui_led_blink_state_lighting:
+0x77e7 034237 call ui_led_on_static 
+0x77e8 034238 add regb ,led_offset_cb_ledon ,regc 
+0x77e9 034239 call push_stack 
+0x77ea 034240 ifetch 2 ,regc 
+0x77eb 034241 call callback_func 
+0x77ec 034242 call pop_stack 
+0x77ed 034243 setarg ui_led_state_blink_darking 
+0x77ee 034244 istore 1 ,regb 
+0x77ef 034245 add regb ,led_offset_on_time ,regc 
+0x77f0 034246 ifetch 2 ,regc 
+0x77f1 034247 branch ui_led_blink_timer_start 
+:      034250 ui_led_blink_state_darking:
+0x77f2 034251 call ui_led_off_static 
+0x77f3 034252 add regb ,led_offset_cb_ledoff ,regc 
+0x77f4 034253 call push_stack 
+0x77f5 034254 ifetch 2 ,regc 
+0x77f6 034255 call callback_func 
+0x77f7 034256 call pop_stack 
+0x77f8 034258 add regb ,led_offset_blink_count ,regc 
+0x77f9 034259 ifetch 1 ,regc 
+0x77fa 034260 beq led_infinite_flash_num ,ui_led_blink_infinite 
+0x77fb 034261 increase -1 ,pdata 
+0x77fc 034262 istore 1 ,regc 
+0x77fd 034263 branch ui_led_blink_stop_global ,blank 
+:      034264 ui_led_blink_infinite:
+0x77fe 034265 setarg ui_led_state_blink_lighting 
+0x77ff 034266 istore 1 ,regb 
+0x7800 034267 add regb ,led_offset_off_time ,regc 
+0x7801 034268 ifetch 2 ,regc 
+:      034269 ui_led_blink_timer_start:
+0x7802 034270 add rega ,ui_led_blink ,queue 
+0x7803 034271 branch timer_init 
+:      034273 ui_led_stop_timer:
+0x7804 034274 setarg 0 
+0x7805 034275 branch ui_led_blink_timer_start 
+:      034281 ui_timer_timeout:
+0x7806 034282 setarg 0x1000 
+0x7807 034283 lshift16 pdata ,pdata 
+0x7808 034284 iadd regb ,regb 
+0x7809 034285 rtn 
+:      034287 ui_timer_check:
+0x780a 034288 bpatch patch1e_5 ,mem_patch1e 
+0x780b 034289 arg 0 ,rega 
+0x780c 034290 fetcht 4 ,mem_ui_timer_last_btclk 
+0x780d 034291 copy clkn_bt ,regb 
+0x780e 034292 copy regb ,pdata 
+0x780f 034293 isub temp ,null 
+0x7810 034294 ncall ui_timer_timeout ,positive 
+:      034295 ui_timer_check_loop:
+0x7811 034296 copy regb ,pdata 
+0x7812 034297 increase 160 ,temp 
+0x7813 034298 increase 160 ,temp 
+0x7814 034299 isub temp ,null 
+0x7815 034300 nbranch ui_timer_check_end ,positive 
+0x7816 034301 increase 1 ,rega 
+0x7817 034302 and rega ,0x0f ,pdata 
+0x7818 034303 nbranch ui_timer_check_loop ,blank 
+0x7819 034304 arg 0 ,rega 
+0x781a 034305 call ui_timer_check_send_evt 
+:      034306 ui_timer_init:
+0x781b 034307 copy clkn_bt ,pdata 
+0x781c 034308 store 4 ,mem_ui_timer_last_btclk 
+0x781d 034309 rtn 
+:      034310 ui_timer_check_end:
+0x781e 034311 copy rega ,pdata 
+0x781f 034312 rtn blank 
+0x7820 034313 increase -160 ,temp 
+0x7821 034314 increase -160 ,temp 
+0x7822 034315 set0 28 ,temp 
+0x7823 034316 storet 4 ,mem_ui_timer_last_btclk 
+:      034317 ui_timer_check_send_evt:
+0x7824 034318 branch app_evt_timer 
+:      034325 ui_ipc_get_lock:
+0x7825 034326 jam 1 ,mem_ipc_lock_bt 
+:      034327 ui_ipc_get_lock_wait:
+0x7826 034328 fetch 1 ,mem_ipc_lock_c51 
+0x7827 034329 nbranch ui_ipc_get_lock_wait ,blank 
+0x7828 034330 rtn 
+:      034332 ui_ipc_put_lock:
+0x7829 034333 jam 0 ,mem_ipc_lock_bt 
+0x782a 034334 rtn 
+:      034338 ui_ipc_send_event:
+0x782b 034339 bpatch patch1e_6 ,mem_patch1e 
+0x782c 034340 call ui_ipc_get_lock 
+0x782d 034341 copy rega ,pdata 
+0x782e 034342 store 4 ,mem_rega 
+0x782f 034343 arg mem_ipc_fifo_bt2c51 ,rega 
+0x7830 034344 call fifo_in 
+0x7831 034345 fetch 4 ,mem_rega 
+0x7832 034346 copy pdata ,rega 
+0x7833 034347 branch ui_ipc_put_lock 
+:      034349 ui_ipc_send_cmd:
+0x7834 034350 bpatch patch1e_7 ,mem_patch1e 
+0x7835 034351 call ui_ipc_get_lock 
+0x7836 034352 copy rega ,pdata 
+0x7837 034353 store 4 ,mem_rega 
+0x7838 034354 arg mem_ipc_fifo_c512bt ,rega 
+0x7839 034355 call fifo_in 
+0x783a 034356 fetch 4 ,mem_rega 
+0x783b 034357 copy pdata ,rega 
+0x783c 034358 branch ui_ipc_put_lock 
+:      034360 ui_ipc_clean_all_fifo:
+0x783d 034361 setarg 0 
+0x783e 034362 store util_fifo_len ,mem_ipc_fifo_c512bt 
+0x783f 034363 store util_fifo_len ,mem_ipc_fifo_bt2c51 
+0x7840 034364 rtn 
+:      034366 check_51cmd:
+0x7841 034367 bpatch patch1f_0 ,mem_patch1f 
+0x7842 034368 fetch 1 ,mem_hci_cmd 
+0x7843 034369 nrtn blank 
+0x7844 034370 arg mem_ipc_fifo_c512bt ,rega 
+0x7845 034371 call fifo_is_empty 
+0x7846 034372 rtn blank 
+0x7847 034373 jam ipc_continue_process ,mem_ipc_skip_continue_proc 
+0x7848 034374 call check_51cmd_once 
+0x7849 034375 fetch 1 ,mem_ipc_skip_continue_proc 
+0x784a 034376 branch check_51cmd ,blank 
+0x784b 034377 rtn 
+:      034379 check_51cmd_once:
+0x784c 034380 call ui_ipc_get_lock 
+0x784d 034381 arg mem_ipc_fifo_c512bt ,rega 
+0x784e 034382 call fifo_out 
+0x784f 034383 copy pdata ,temp 
+0x7850 034384 call ui_ipc_put_lock 
+0x7851 034385 bpatch patch1f_1 ,mem_patch1f 
+0x7852 034386 copy temp ,pdata 
+0x7853 034387 rtn blank 
+0x7854 034388 beq bt_cmd_start_adv ,check_51cmd_adv 
+0x7855 034389 beq bt_cmd_stop_adv ,check_51cmd_stop_adv 
+0x7856 034390 beq bt_cmd_start_direct_adv ,check_51cmd_direct_adv 
+0x7857 034391 beq bt_cmd_stop_direct_adv ,check_51cmd_stop_direct_adv 
+0x7858 034392 beq bt_cmd_led_off ,check_51cmd_led_off 
+0x7859 034393 beq bt_cmd_led_on ,check_51cmd_led_on 
+0x785a 034394 beq bt_cmd_led_blink ,check_51cmd_led_start_blink 
+0x785b 034395 beq bt_cmd_le_start_conn ,check_51cmd_le_start_con 
+0x785c 034396 beq bt_cmd_le_start_scan ,check_51cmd_start_scan 
+0x785d 034397 beq bt_cmd_le_stop_scan ,check_51cmd_stop_scan 
+0x785e 034398 beq bt_cmd_enter_hibernate ,check_51cmd_hibernate 
+0x785f 034400 store 1 ,mem_fifo_temp 
+:      034403 check_51cmd_once_continue:
+0x7860 034404 fetch 1 ,mem_fifo_temp 
+0x7861 034405 bmark0 mark_context ,check_51cmd_check_idle 
+0x7862 034406 bpatch patch1f_2 ,mem_patch1f 
+0x7863 034407 fetch 1 ,mem_fifo_temp 
+0x7864 034408 beq bt_cmd_le_disconnect ,check_51cmd_le_disconnect 
+0x7865 034409 beq bt_cmd_le_smp_security_request ,check_51cmd_le_smp_sec_req 
+0x7866 034410 beq bt_cmd_le_update_conn ,check_51cmd_ble_update_connect_param 
+0x7867 034411 beq bt_cmd_store_reconn_info_le ,eeprom_store_le_reconn_info 
+0x7868 034412 rtn 
+:      034414 check_51cmd_check_idle:
+0x7869 034415 store 1 ,mem_fifo_temp 
+0x786a 034416 call context_check_idle 
+0x786b 034417 branch check_51cmd_restore ,zero 
+0x786c 034418 call context_search_plap 
+0x786d 034419 nrtn zero 
+:      034420 check_51cmd_restore:
+0x786e 034421 jam ipc_skip_continue_process ,mem_ipc_skip_continue_proc 
+0x786f 034422 branch ui_ipc_send_cmd 
+:      034429 check_51cmd_adv:
+0x7870 034430 jam on ,mem_le_adv_enable 
+0x7871 034431 jam adv_ind ,mem_le_adv_type 
+0x7872 034432 fetch 2 ,mem_ui_state_map 
+0x7873 034433 set1 ui_state_ble_adv ,pdata 
+0x7874 034434 store 2 ,mem_ui_state_map 
+0x7875 034435 rtn 
+:      034439 check_51cmd_stop_adv:
+0x7876 034440 fetch 2 ,mem_ui_state_map 
+0x7877 034441 set0 ui_state_ble_adv ,pdata 
+0x7878 034442 store 2 ,mem_ui_state_map 
+0x7879 034443 jam off ,mem_le_adv_enable 
+0x787a 034444 rtn 
+:      034448 check_51cmd_direct_adv:
+0x787b 034449 jam on ,mem_le_adv_enable 
+0x787c 034450 jam adv_direct_ind ,mem_le_adv_type 
+0x787d 034451 fetch 2 ,mem_ui_state_map 
+0x787e 034452 set1 ui_state_ble_adv ,pdata 
+0x787f 034453 store 2 ,mem_ui_state_map 
+0x7880 034454 rtn 
+:      034458 check_51cmd_stop_direct_adv:
+0x7881 034459 fetch 2 ,mem_ui_state_map 
+0x7882 034460 set0 ui_state_ble_adv ,pdata 
+0x7883 034461 store 2 ,mem_ui_state_map 
+0x7884 034462 jam off ,mem_le_adv_enable 
+0x7885 034463 rtn 
+:      034467 check_51cmd_le_disconnect:
+0x7886 034468 setarg 20 
+0x7887 034469 store 2 ,mem_le_superto 
+0x7888 034470 store 2 ,mem_le_init_superto 
+0x7889 034471 branch le_send_terminate_ind_user_terminated 
+:      034475 check_51cmd_ble_update_connect_param:
+0x788a 034476 branch le_l2cap_tx_update_req 
+:      034480 check_51cmd_led_off:
+0x788b 034481 arg 0 ,rega 
+0x788c 034482 branch ui_led_off_global 
+:      034486 check_51cmd_led_on:
+0x788d 034487 arg 0 ,rega 
+0x788e 034488 branch ui_led_on_global 
+:      034492 check_51cmd_led_start_blink:
+0x788f 034493 arg 0 ,rega 
+0x7890 034494 call calc_curr_struct_prt 
+0x7891 034495 ifetch 1 ,regb 
+0x7892 034496 beq ui_led_state_blink_start ,check_51cmd_led_start_blink_in_blink 
+0x7893 034497 beq ui_led_state_blink_lighting ,check_51cmd_led_start_blink_in_blink 
+0x7894 034498 beq ui_led_state_blink_darking ,check_51cmd_led_start_blink_in_blink 
+0x7895 034499 branch ui_led_blink_start_global 
+:      034501 check_51cmd_led_start_blink_in_blink:
+0x7896 034502 ifetch 1 ,contr 
+0x7897 034503 rtneq led_infinite_flash_num 
+0x7898 034504 branch ui_led_blink_start_global 
+:      034508 check_51cmd_le_start_con:
+0x7899 034509 jam on ,mem_le_scan_enable 
+0x789a 034510 jam hci_cmd_le_create_conn ,mem_hci_cmd 
+0x789b 034513 rtn 
+:      034517 check_51cmd_start_scan:
+0x789c 034518 jam on ,mem_le_scan_enable 
+0x789d 034519 rtn 
+:      034523 check_51cmd_stop_scan:
+0x789e 034524 jam off ,mem_le_scan_enable 
+0x789f 034525 jam 0 ,mem_hci_cmd 
+0x78a0 034526 rtn 
+:      034530 check_51cmd_hibernate:
+0x78a1 034531 fetch 2 ,mem_cb_before_hibernate 
+0x78a2 034532 call callback_func 
+0x78a3 034533 fetch 1 ,mem_ui_button_gpio 
+0x78a4 034534 beq ui_button_gpio_disable ,check_51cmd_hibernate_btn_disabled 
+0x78a5 034535 copy pdata ,temp 
+0x78a6 034536 call gpio_config_input 
+:      034537 check_51cmd_hibernate_btn_disabled:
+0x78a7 034538 call ui_ipc_clean_all_fifo 
+0x78a8 034539 branch lpm_hibernate 
+:      034543 check_51cmd_le_smp_sec_req:
+0x78a9 034544 branch le_send_smp_security_request 
+:      034549 ui_check_paring_button:
+0x78aa 034550 fetch 1 ,mem_ui_state_map 
+0x78ab 034551 rtnbit0 ui_state_btn_down 
+0x78ac 034552 rtn 
+:      034557 queue_init:
+0x78ad 034558 fetch 2 ,mem_queue_ptr 
+0x78ae 034559 add pdata ,queue_offset_curr_num ,contw 
+0x78af 034560 setarg 0 
+0x78b0 034561 istore 3 ,contw 
+0x78b1 034562 rtn 
+:      034566 queue_push:
+0x78b2 034567 bpatch patch1f_3 ,mem_patch1f 
+0x78b3 034568 call disable_user 
+0x78b4 034569 call queue_full 
+0x78b5 034570 rtn blank 
+0x78b6 034571 fetch 2 ,mem_queue_ptr 
+0x78b7 034572 add pdata ,queue_offset_curr_num ,regb 
+0x78b8 034573 ifetcht 1 ,regb 
+0x78b9 034574 increase 1 ,temp 
+0x78ba 034575 istoret 1 ,regb 
+0x78bb 034577 ifetcht 1 ,pdata 
+0x78bc 034578 copy temp ,loopcnt 
+0x78bd 034579 add pdata ,queue_offset_write_ptr ,regb 
+0x78be 034580 ifetch 1 ,regb 
+0x78bf 034581 imul32 temp ,pdata 
+0x78c0 034582 iadd contr ,contw 
+0x78c1 034583 copy rega ,contr 
+:      034584 calc_queue_next_ptr:
+0x78c2 034585 call memcpy 
+0x78c3 034586 call queue_get_size 
+0x78c4 034587 pincrease -1 
+0x78c5 034588 ifetcht 1 ,regb 
+0x78c6 034589 increase 1 ,temp 
+0x78c7 034590 iand temp ,temp 
+0x78c8 034591 istoret 1 ,regb 
+0x78c9 034592 branch enable_user 
+:      034597 queue_pop:
+0x78ca 034598 bpatch patch1f_4 ,mem_patch1f 
+0x78cb 034599 call disable_user 
+0x78cc 034600 call queue_empty 
+0x78cd 034601 rtn blank 
+0x78ce 034602 fetch 2 ,mem_queue_ptr 
+0x78cf 034603 add pdata ,queue_offset_curr_num ,regb 
+0x78d0 034604 ifetcht 1 ,regb 
+0x78d1 034605 increase -1 ,temp 
+0x78d2 034606 istoret 1 ,regb 
+0x78d3 034607 ifetcht 1 ,pdata 
+0x78d4 034608 copy temp ,loopcnt 
+0x78d5 034609 add pdata ,queue_offset_read_ptr ,regb 
+0x78d6 034610 ifetch 1 ,regb 
+0x78d7 034611 imul32 temp ,pdata 
+0x78d8 034612 iadd contr ,contr 
+0x78d9 034613 increase 1 ,contr 
+0x78da 034614 copy rega ,contw 
+0x78db 034615 branch calc_queue_next_ptr 
+:      034622 queue_get_new_ele:
+0x78dc 034623 call disable_user 
+0x78dd 034624 call queue_empty 
+0x78de 034625 rtn blank 
+0x78df 034626 fetch 2 ,mem_queue_ptr 
+0x78e0 034627 ifetcht 1 ,pdata 
+0x78e1 034628 copy temp ,loopcnt 
+0x78e2 034629 add pdata ,queue_offset_read_ptr ,regb 
+0x78e3 034630 ifetch 1 ,regb 
+0x78e4 034631 imul32 temp ,pdata 
+0x78e5 034632 iadd contr ,contr 
+0x78e6 034633 increase 1 ,contr 
+0x78e7 034634 copy contr ,regb 
+0x78e8 034635 copy rega ,contw 
+0x78e9 034636 call memcpy 
+0x78ea 034637 branch enable_user 
+:      034639 queue_store_new_ele:
+0x78eb 034640 call disable_user 
+0x78ec 034641 call queue_empty 
+0x78ed 034642 rtn blank 
+0x78ee 034643 fetch 2 ,mem_queue_ptr 
+0x78ef 034644 ifetcht 1 ,pdata 
+0x78f0 034645 copy temp ,loopcnt 
+0x78f1 034646 add pdata ,queue_offset_read_ptr ,regb 
+0x78f2 034647 ifetch 1 ,regb 
+0x78f3 034648 imul32 temp ,pdata 
+0x78f4 034649 iadd contr ,contr 
+0x78f5 034650 add contr ,2 ,contw 
+0x78f6 034651 copy rega ,contr 
+0x78f7 034652 increase -1 ,loopcnt 
+0x78f8 034653 call memcpy 
+0x78f9 034654 branch enable_user 
+:      034657 queue_empty:
+0x78fa 034658 fetch 2 ,mem_queue_ptr 
+0x78fb 034659 add pdata ,queue_offset_curr_num ,contr 
+0x78fc 034660 ifetch 1 ,contr 
+0x78fd 034661 rtn 
+:      034664 queue_full:
+0x78fe 034665 call queue_get_size 
+0x78ff 034666 ifetcht 1 ,contr 
+0x7900 034667 isub temp ,pdata 
+0x7901 034668 rtn 
+:      034671 queue_get_size:
+0x7902 034672 fetch 2 ,mem_queue_ptr 
+0x7903 034673 add pdata ,queue_offset_length ,contr 
+0x7904 034674 ifetch 1 ,contr 
+0x7905 034675 rtn 
+:      034683 usb_isr:
+0x7906 034684 bpatch patch1f_5 ,mem_patch1f 
+0x7907 034685 fetch 1 ,core_usb_status 
+0x7908 034686 isolate1 usb_status_reset ,pdata 
+0x7909 034687 call usb_init_restart ,true 
+0x790a 034688 fetch 2 ,core_usb_status 
+0x790b 034689 store 2 ,core_usb_status 
+0x790c 034690 store 2 ,mem_usb_status 
+0x790d 034691 call usb_nak_state_judge 
+0x790e 034692 call usb_rx 
+0x790f 034693 call usb0_tx 
+0x7910 034694 call usb_tx 
+0x7911 034695 branch usb_nak_state 
+:      034697 usb_init:
+0x7912 034698 bpatch patch1f_6 ,mem_patch1f 
+0x7913 034699 call enable_authrom 
+0x7914 034700 call usb_init_param 
+:      034701 usb_init_restart:
+0x7915 034702 jam 0x00 ,core_usb_config 
+0x7916 034703 nop 10000 
+0x7917 034704 jam 0x0 ,core_usb_hmode 
+0x7918 034705 fetch 2 ,core_clkoff 
+0x7919 034706 set0 clock_off_usb ,pdata 
+0x791a 034707 store 2 ,core_clkoff 
+0x791b 034708 jam 0x21 ,core_usb_epmap 
+0x791c 034709 jam 0x9d ,core_usb_pupd 
+0x791d 034710 jam 0x3c ,core_usb_config 
+0x791e 034711 setarg mem_usb_rxbuf 
+0x791f 034712 store 2 ,core_usb_rx_saddr 
+0x7920 034713 store 2 ,core_usb_rxptr 
+0x7921 034714 setarg mem_usb_rxbuf_end 
+0x7922 034715 store 2 ,core_usb_rx_eaddr 
+0x7923 034716 jam 0x80 ,core_usb_hmode 
+0x7924 034717 jam 0 ,core_usb_addr 
+0x7925 034718 jam 0xff ,core_usb_status 
+0x7926 034719 setarg mem_usb_clear_mem_end 
+0x7927 034720 arg mem_usb_clear_mem_start ,contw 
+0x7928 034721 isub contw ,loopcnt 
+0x7929 034722 branch clear_mem 
+:      034724 usb_offline_check_init:
+0x792a 034725 fetcht 1 ,mem_usb_offline_check_gpio 
+0x792b 034726 branch gpio_config_input 
+:      034727 usb_offline_state:
+0x792c 034728 fetch 1 ,mem_usb_device_enumeration_endflag 
+0x792d 034729 rtn blank 
+0x792e 034730 fetcht 1 ,mem_usb_offline_check_gpio 
+0x792f 034731 call gpio_get_bit 
+0x7930 034732 branch usb_init_restart ,true 
+0x7931 034733 rtn 
+:      034735 usb_init_param:
+0x7932 034736 jam dev_default ,mem_usb0_state 
+0x7933 034737 setarg 0x0 
+0x7934 034738 store 1 ,mem_remain 
+0x7935 034739 store 2 ,mem_usb_zero_packet 
+0x7936 034740 pincrease 1 
+0x7937 034741 store 2 ,mem_usb_ones_packet 
+0x7938 034742 pincrease 1 
+0x7939 034743 store 2 ,mem_usb_two_packet 
+0x793a 034744 arg mem_string0 ,contw 
+0x793b 034745 setarg 0x030404 
+0x793c 034746 istore 3 ,contw 
+0x793d 034747 setarg 0x0409 
+0x793e 034748 istore 2 ,contw 
+0x793f 034749 arg mem_string1 ,contw 
+0x7940 034750 setsect 0 ,0x15906 
+0x7941 034751 setsect 1 ,0x210d2 
+0x7942 034752 setsect 2 ,0x10494 
+0x7943 034753 setsect 3 ,0x1 
+0x7944 034754 istore 9 ,contw 
+0x7945 034755 arg mem_string2 ,contw 
+0x7946 034756 setsect 0 ,0x1570f 
+0x7947 034757 setsect 1 ,0x15c9a 
+0x7948 034758 setsect 2 ,0x256c6 
+0x7949 034759 setsect 3 ,0x1cdcd 
+0x794a 034760 istore 9 ,contw 
+0x794b 034761 setsect 0 ,0x14420 
+0x794c 034762 setsect 1 ,0x25d99 
+0x794d 034763 setsect 2 ,0x25636 
+0x794e 034764 setsect 3 ,0x1 
+0x794f 034765 istore 7 ,contw 
+0x7950 034766 arg mem_string3 ,contw 
+0x7951 034767 setsect 0 ,0x1620a 
+0x7952 034768 setsect 1 ,0xc8c 
+0x7953 034769 setsect 2 ,0x30333 
+0x7954 034770 setsect 3 ,0xc0c0 
+0x7955 034771 istore 9 ,contw 
+0x7956 034772 setsect 0 ,0x3130 
+0x7957 034773 istore 2 ,contw 
+0x7958 034774 setarg usb_kbdata_vendor_define_addr 
+0x7959 034775 store 2 ,mem_hidreportdesc_kb 
+0x795a 034776 setarg usb_msdata_addr 
+0x795b 034777 store 2 ,mem_hidreportdesc_m 
+0x795c 034778 arg usb_devicedata_addr ,contr 
+0x795d 034779 arg mem_devicedesc ,contw 
+0x795e 034780 arg 19 ,loopcnt 
+0x795f 034781 call memcpy 
+0x7960 034782 arg usb_confdata_addr ,contr 
+0x7961 034783 arg mem_confdesc ,contw 
+0x7962 034784 arg 60 ,loopcnt 
+0x7963 034785 call memcpy 
+:      034786 usb_config_cb:
+0x7964 034787 fetch 2 ,mem_cb_usb_config 
+0x7965 034788 branch callback_func 
+:      034790 usb_tx_interval_config:
+0x7966 034791 fetch 1 ,mem_usb_tx_interval 
+0x7967 034792 rtn blank 
+0x7968 034793 store 1 ,mem_confdesc + 34 
+0x7969 034794 store 1 ,mem_confdesc + 59 
+0x796a 034795 rtn 
+:      034797 usb_nak_state:
+0x796b 034798 arg usb_timer_nak ,queue 
+0x796c 034799 call timer_check 
+0x796d 034800 nrtn blank 
+0x796e 034801 fetch 1 ,mem_usb_wakestate_onetime_flag 
+0x796f 034802 nrtn blank 
+0x7970 034803 fetch 1 ,mem_usb_device_enumeration_endflag 
+0x7971 034804 ncall usb_mac_wakeup_judge ,blank 
+0x7972 034805 rtn 
+:      034807 usb_nak_state_judge:
+0x7973 034808 fetch 1 ,mem_usb_status 
+0x7974 034809 bbit1 usb_status_nak ,usb_nak_state_timer_init 
+0x7975 034810 rtn 
+:      034812 usb_nak_state_timer_init:
+0x7976 034813 call usb0_attached_state_judge 
+0x7977 034814 call timer_reinit 
+0x7978 034815 setarg timer_nak_delay 
+0x7979 034816 arg usb_timer_nak ,queue 
+0x797a 034817 branch timer_init 
+:      034819 usb0_attached_state_judge:
+0x797b 034820 fetch 1 ,mem_usb_state 
+0x797c 034821 bne usb_connected ,usb_clear_halt_dispose 
+0x797d 034822 jam 0 ,mem_usb_wakestate_onetime_flag 
+0x797e 034823 jam 0 ,mem_usb_mac_wakeup_trig 
+0x797f 034824 rtn 
+:      034826 usb_clear_halt_dispose:
+0x7980 034827 fetch 1 ,mem_usb_clear_halt 
+0x7981 034828 rtn blank 
+0x7982 034829 jam 0 ,mem_usb_clear_halt 
+0x7983 034830 jam usb_connected ,mem_usb_state 
+0x7984 034831 jam 1 ,mem_usb_device_enumeration_endflag 
+0x7985 034832 rtn 
+:      034834 usb_rx_no_data:
+0x7986 034835 fetch 1 ,mem_usb_status 
+0x7987 034836 bbit1 usb_status_setup ,usb_class_type 
+0x7988 034837 rtn 
+:      034839 usb_rx_len:
+0x7989 034840 fetchr contus ,2 ,core_usb_rx_saddr 
+0x798a 034841 fetchr contue ,2 ,core_usb_rx_eaddr 
+0x798b 034842 fetchr contu ,2 ,core_usb_rxptr 
+0x798c 034843 ifetch 2 ,contu 
+0x798d 034844 rshift8 pdata ,temp 
+0x798e 034845 rshift4 temp ,temp 
+0x798f 034846 arg 0xfff ,contr 
+0x7990 034847 iand contr ,loopcnt 
+0x7991 034848 storer loopcnt ,2 ,mem_usb_read_len 
+0x7992 034849 rtn 
+:      034852 usb_rx_data:
+0x7993 034853 call usb_rx_len 
+:      034854 usb_rx_read:
+0x7994 034855 ifetch 1 ,contu 
+0x7995 034856 istore 1 ,contw 
+0x7996 034857 loop usb_rx_read 
+0x7997 034858 storer contu ,2 ,core_usb_rxptr 
+0x7998 034859 rtn 
+:      034861 usb_rx_ep13:
+0x7999 034862 arg mem_usb_ccid_buf ,contw 
+0x799a 034863 call usb_rx_read 
+0x799b 034864 arg mem_usb_ccid_buf + 4 ,temp 
+0x799c 034865 storet 2 ,core_usb_tx_saddr3 
+0x799d 034866 fetch 1 ,mem_usb_ccid_buf + 1 
+0x799e 034867 pincrease 6 
+0x799f 034868 istore 1 ,temp 
+0x79a0 034869 jam 0x8 ,core_usb_trig 
+0x79a1 034870 rtn 
+:      034873 usb_rx:
+0x79a2 034874 bpatch patch1f_7 ,mem_patch1f 
+0x79a3 034875 fetch 1 ,mem_usb_status 
+0x79a4 034876 rtnbit0 usb_status_rxready 
+0x79a5 034877 call usb_rx_len 
+0x79a6 034878 compare 13 ,temp ,0xff 
+0x79a7 034879 branch usb_rx_ep13 ,true 
+0x79a8 034880 arg mem_usb_setup ,contw 
+0x79a9 034881 call usb_rx_read 
+0x79aa 034882 fetch 1 ,mem_usb_read_len 
+0x79ab 034883 beq 0x00 ,usb_rx_no_data 
+0x79ac 034884 beq 0x01 ,usb_out_one_byte 
+0x79ad 034885 sub pdata ,7 ,null 
+0x79ae 034886 rtn positive 
+:      034887 usb_class_type:
+0x79af 034888 bpatchx patch20_0 ,mem_patch20 
+0x79b0 034889 set0 mark_isstr ,mark 
+0x79b1 034890 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79b2 034891 and_into 0x80 ,pdata 
+0x79b3 034892 beq in_device ,usb_in_device 
+0x79b4 034893 beq out_device ,usb_out_device 
+0x79b5 034894 branch assert 
+:      034896 usb_out_one_byte:
+0x79b6 034897 fetch 1 ,mem_usb_setup 
+0x79b7 034898 rtnbit1 7 
+0x79b8 034899 call usb_get_led_status 
+0x79b9 034900 branch usb0_reply_zerolen 
+:      034903 usb_in_device:
+0x79ba 034904 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79bb 034905 rshift4 pdata ,pdata 
+0x79bc 034906 rshift pdata ,pdata 
+0x79bd 034907 and_into 0x03 ,pdata 
+0x79be 034908 beq standard_req ,usb_in_standard_req 
+0x79bf 034909 beq class_req ,usb_in_class_req 
+0x79c0 034910 beq manufacturer_req ,usb_in_manufacturer_req 
+0x79c1 034911 branch assert 
+:      034913 usb_out_device:
+0x79c2 034914 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79c3 034915 rshift4 pdata ,pdata 
+0x79c4 034916 rshift pdata ,pdata 
+0x79c5 034917 and_into 0x03 ,pdata 
+0x79c6 034918 beq standard_req ,usb_out_standard_req 
+0x79c7 034919 beq class_req ,usb_out_class_req 
+0x79c8 034920 beq manufacturer_req ,usb_out_manufacturer_req 
+0x79c9 034921 branch assert 
+:      034923 usb_in_standard_req:
+0x79ca 034924 fetch 1 ,mem_usb_setup_brequest 
+0x79cb 034925 beq get_configuration ,usb0_request_get_configuration 
+0x79cc 034926 beq get_descriptor ,usb0_request_get_descriptor 
+0x79cd 034927 beq get_interface ,usb0_request_get_interface 
+0x79ce 034928 beq get_status ,usb0_request_get_status 
+0x79cf 034929 branch usb0_force_stall 
+:      034931 usb_in_class_req:
+0x79d0 034932 fetch 1 ,mem_usb_setup_brequest 
+0x79d1 034933 beq get_idle ,usb_get_idle 
+0x79d2 034934 beq get_report ,usb_get_report 
+0x79d3 034935 beq get_protocol ,usb_get_protocol_req 
+0x79d4 034936 branch usb0_force_stall 
+:      034938 usb_in_manufacturer_req:
+0x79d5 034939 branch usb0_force_stall 
+:      034941 usb_out_standard_req:
+0x79d6 034942 fetch 1 ,mem_usb_setup_brequest 
+0x79d7 034943 beq clear_feature ,usb0_request_clear_feature 
+0x79d8 034944 beq set_feature ,usb0_request_set_feature 
+0x79d9 034945 beq set_address ,usb0_request_set_address 
+0x79da 034946 beq set_configuration ,usb0_request_set_configuration 
+0x79db 034947 beq set_interface ,usb0_request_set_interface 
+0x79dc 034948 beq set_descriptor ,usb0_force_stall 
+0x79dd 034949 branch usb0_force_stall 
+:      034951 usb_out_class_req:
+0x79de 034952 fetch 1 ,mem_usb_setup_brequest 
+0x79df 034953 beq set_idle ,usb_set_idle 
+0x79e0 034954 beq set_report ,usb_set_report 
+0x79e1 034955 beq set_protocol ,usb_set_protocol_req 
+0x79e2 034956 branch usb0_force_stall 
+:      034958 usb_out_manufacturer_req:
+0x79e3 034959 branch usb0_force_stall 
+:      034961 usb0_force_stall:
+0x79e4 034962 bpatchx patch20_1 ,mem_patch20 
+0x79e5 034963 fetch 1 ,core_usb_stall 
+0x79e6 034964 set1 0 ,pdata 
+0x79e7 034965 store 1 ,core_usb_stall 
+0x79e8 034966 branch usb0_reply_zerolen 
+:      034968 usb0_reply_zerolen:
+0x79e9 034969 jam 0x1 ,core_usb_clear_nak 
+0x79ea 034970 rtn 
+:      034972 usb0_request_get_configuration:
+0x79eb 034973 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79ec 034974 bne in_device ,usb0_force_stall 
+0x79ed 034975 fetch 1 ,mem_usb_setup_windex 
+0x79ee 034976 bne 0 ,usb0_force_stall 
+0x79ef 034977 fetch 1 ,mem_usb_setup_windex + 1 
+0x79f0 034978 bne 0 ,usb0_force_stall 
+0x79f1 034979 fetch 1 ,mem_usb_setup_blength 
+0x79f2 034980 bne 1 ,usb0_force_stall 
+0x79f3 034981 fetch 1 ,mem_usb_setup_blengthh 
+0x79f4 034982 bne 0 ,usb0_force_stall 
+0x79f5 034983 fetch 1 ,mem_usb_setup_bvalue 
+0x79f6 034984 bne 0 ,usb0_force_stall 
+0x79f7 034985 fetch 1 ,mem_usb_setup_bvalue + 1 
+0x79f8 034986 bne 0 ,usb0_force_stall 
+0x79f9 034987 fetch 1 ,mem_usb0_state 
+0x79fa 034988 beq dev_configured ,usb0_request_get_cfg_dev_cfg 
+0x79fb 034989 beq dev_address ,usb0_request_get_cfg_dev_addr 
+0x79fc 034990 branch usb0_force_stall 
+:      034992 usb0_request_get_cfg_dev_cfg:
+0x79fd 034993 arg 1 ,regb 
+0x79fe 034994 branch usb_send_ones_packet 
+:      034996 usb0_request_get_cfg_dev_addr:
+0x79ff 034997 arg 1 ,regb 
+0x7a00 034998 branch usb_send_zero_packet 
+:      035000 usb0_request_get_descriptor:
+0x7a01 035001 bpatchx patch20_2 ,mem_patch20 
+0x7a02 035003 fetch 1 ,mem_usb_setup_bvalueh 
+0x7a03 035004 beq dsc_device ,dsc_device_info 
+0x7a04 035005 beq dsc_config ,dsc_config_info 
+0x7a05 035006 beq dsc_string ,dsc_string_info 
+0x7a06 035007 beq dsc_hid ,dsc_hid_info 
+0x7a07 035008 beq dsc_hid_report ,dsc_hid_report_info 
+0x7a08 035009 branch usb0_force_stall 
+:      035011 dsc_hid_info:
+0x7a09 035012 jam 0 ,mem_usb_get_protocol_flag 
+0x7a0a 035013 fetch 1 ,mem_usb_setup_windex 
+0x7a0b 035014 beq 0 ,dsc_hid_info_interface0 
+0x7a0c 035015 beq 1 ,dsc_hid_info_interface1 
+0x7a0d 035016 branch usb0_force_stall 
+:      035018 dsc_hid_info_interface0:
+0x7a0e 035019 fetchr regb ,1 ,mem_confdesc + 19 
+0x7a0f 035020 arg mem_confdesc + 19 ,rega 
+0x7a10 035021 branch usb0_respond 
+:      035023 dsc_hid_info_interface1:
+0x7a11 035024 fetchr regb ,1 ,mem_confdesc + 44 
+0x7a12 035025 arg mem_confdesc + 44 ,rega 
+0x7a13 035026 branch usb0_respond 
+:      035028 dsc_device_info:
+0x7a14 035032 fetch 1 ,mem_usb_set_high_addr_flag 
+0x7a15 035033 ncall usb_set_high_addr ,blank 
+0x7a16 035034 setarg mem_devicedesc 
+0x7a17 035035 fetcht 1 ,mem_devicedesc 
+:      035036 dsc_info_set_data_len:
+0x7a18 035037 store 2 ,mem_dsc_info_data_pointer 
+0x7a19 035038 storet 1 ,mem_dsc_info_len 
+0x7a1a 035039 fetch 1 ,mem_usb_setup_blength 
+0x7a1b 035040 isub temp ,null 
+0x7a1c 035041 nbranch dsc_info_set_current_data_len ,positive 
+:      035042 dsc_info_set_initial_data_len:
+0x7a1d 035043 fetch 1 ,mem_dsc_info_len 
+:      035044 dsc_info_set_data_size_completed:
+0x7a1e 035045 iforce regb 
+0x7a1f 035046 fetch 2 ,mem_dsc_info_data_pointer 
+0x7a20 035047 add pdata ,1 ,pdata 
+0x7a21 035048 iforce rega 
+0x7a22 035049 branch usb0_respond 
+:      035050 dsc_info_set_current_data_len:
+0x7a23 035051 fetch 1 ,mem_usb_setup_blength 
+0x7a24 035052 branch dsc_info_set_data_size_completed 
+:      035054 usb_set_high_addr:
+0x7a25 035055 fetch 1 ,core_usb_addr 
+0x7a26 035056 ncall usb0_set_addr ,blank 
+0x7a27 035057 jam 0 ,mem_usb_set_high_addr_flag 
+0x7a28 035058 rtn 
+:      035059 usb0_set_addr:
+0x7a29 035060 fetch 1 ,core_usb_addr 
+0x7a2a 035061 set1 7 ,pdata 
+0x7a2b 035062 store 1 ,core_usb_addr 
+0x7a2c 035063 rtn 
+:      035065 dsc_config_info:
+0x7a2d 035066 setarg mem_confdesc 
+0x7a2e 035067 fetcht 1 ,mem_confdesc 
+0x7a2f 035068 branch dsc_info_set_data_len 
+:      035070 dsc_string_info:
+0x7a30 035071 fetch 1 ,mem_usb_setup_bvalue 
+0x7a31 035072 sub pdata ,3 ,null 
+0x7a32 035073 nbranch usb0_force_stall ,positive 
+0x7a33 035074 fetch 1 ,mem_usb_setup_bvalue 
+0x7a34 035075 arg mem_string0 ,rega 
+0x7a35 035076 beq 0 ,usb0_respond_length 
+0x7a36 035077 set1 mark_isstr ,mark 
+0x7a37 035078 arg mem_string1 ,rega 
+0x7a38 035079 beq 1 ,usb0_respond_length 
+0x7a39 035080 arg mem_string2 ,rega 
+0x7a3a 035081 beq 2 ,usb0_respond_length 
+0x7a3b 035082 arg mem_string3 ,rega 
+0x7a3c 035083 beq 3 ,usb0_respond_length 
+0x7a3d 035084 rtn 
+:      035086 dsc_hid_report_info:
+0x7a3e 035087 fetch 2 ,mem_usb_setup_windex 
+0x7a3f 035088 beq 1 ,dsc_hid_report_info0 
+0x7a40 035089 fetchr rega ,2 ,mem_hidreportdesc_kb 
+0x7a41 035090 branch usb0_respond_length 
+:      035091 dsc_hid_report_info0:
+0x7a42 035092 jam 1 ,mem_usb_device_enumeration_endflag 
+0x7a43 035093 jam usb_got_report_req ,mem_usb_state 
+0x7a44 035094 fetchr rega ,2 ,mem_hidreportdesc_m 
+0x7a45 035095 branch usb0_respond_length 
+:      035098 usb0_request_get_interface:
+0x7a46 035099 fetch 1 ,mem_usb0_state 
+0x7a47 035100 bne dev_configured ,usb0_force_stall 
+0x7a48 035101 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7a49 035102 bne in_interface ,usb0_force_stall 
+0x7a4a 035103 fetch 1 ,mem_usb_setup_bvalue 
+0x7a4b 035104 bne 0 ,usb0_force_stall 
+0x7a4c 035105 fetch 1 ,mem_usb_setup_bvalueh 
+0x7a4d 035106 bne 0 ,usb0_force_stall 
+0x7a4e 035107 fetch 1 ,mem_usb_setup_blength 
+0x7a4f 035108 bne 1 ,usb0_force_stall 
+0x7a50 035109 fetch 1 ,mem_usb_setup_blengthh 
+0x7a51 035110 bne 0 ,usb0_force_stall 
+0x7a52 035111 fetch 1 ,mem_usb_setup_windex 
+0x7a53 035112 bne 0 ,usb0_force_stall 
+0x7a54 035113 fetch 1 ,mem_usb_setup_windex + 1 
+0x7a55 035114 bne 0 ,usb0_force_stall 
+0x7a56 035115 arg 1 ,regb 
+0x7a57 035116 branch usb_send_zero_packet 
+:      035119 usb0_request_get_status:
+0x7a58 035120 fetch 1 ,mem_usb0_state 
+0x7a59 035121 beq dev_default ,usb0_force_stall 
+0x7a5a 035122 fetch 1 ,mem_usb_setup_bvalue 
+0x7a5b 035123 bne 0 ,usb0_force_stall 
+0x7a5c 035124 fetch 1 ,mem_usb_setup_bvalueh 
+0x7a5d 035125 bne 0 ,usb0_force_stall 
+0x7a5e 035126 fetch 1 ,mem_usb_setup_blength 
+0x7a5f 035127 bne 2 ,usb0_force_stall 
+0x7a60 035128 fetch 1 ,mem_usb_setup_blengthh 
+0x7a61 035129 bne 0 ,usb0_force_stall 
+0x7a62 035130 fetch 1 ,mem_usb_setup_windex + 1 
+0x7a63 035131 bne 0 ,usb0_force_stall 
+0x7a64 035132 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7a65 035133 beq in_device ,usb0_get_status_in_device 
+0x7a66 035134 beq in_interface ,usb0_get_status_in_interface 
+0x7a67 035135 beq in_endpoint ,usb0_get_status_in_endpoint 
+0x7a68 035136 branch usb0_force_stall 
+:      035139 usb0_sdsystem_dispose:
+0x7a69 035140 jam 1 ,mem_sdsystem_wakeup_flag 
+0x7a6a 035141 branch usb_send_two_packet 
+:      035143 usb0_get_status_in_device:
+0x7a6b 035144 fetch 1 ,mem_usb_setup_windex 
+0x7a6c 035145 bne 0 ,usb0_force_stall 
+0x7a6d 035146 arg 2 ,regb 
+0x7a6e 035147 fetch 1 ,mem_usb_remote_wakeup 
+0x7a6f 035148 beq 0x01 ,usb0_sdsystem_dispose 
+:      035150 usb_send_zero_packet:
+0x7a70 035151 arg mem_usb_zero_packet ,rega 
+0x7a71 035152 branch usb0_respond 
+:      035153 usb_send_ones_packet:
+0x7a72 035154 arg mem_usb_ones_packet ,rega 
+0x7a73 035155 branch usb0_respond 
+:      035156 usb_send_two_packet:
+0x7a74 035157 arg mem_usb_two_packet ,rega 
+0x7a75 035158 branch usb0_respond 
+:      035160 usb0_get_status_in_interface:
+0x7a76 035161 fetch 1 ,mem_usb0_state 
+0x7a77 035162 bne dev_configured ,usb0_force_stall 
+0x7a78 035163 arg 2 ,regb 
+0x7a79 035164 branch usb_send_zero_packet 
+:      035166 usb0_get_status_in_endpoint:
+0x7a7a 035167 fetch 1 ,mem_usb0_state 
+0x7a7b 035168 bne dev_configured ,usb0_force_stall 
+0x7a7c 035169 fetch 1 ,mem_usb_setup_windex 
+0x7a7d 035170 beq in_ep1 ,usb0_get_status_in_ep_in_ep1 
+0x7a7e 035171 beq in_ep2 ,usb0_get_status_in_ep_in_ep2 
+0x7a7f 035172 beq in_ep3 ,usb0_get_status_in_ep_in_ep3 
+0x7a80 035173 and_into 0x7f ,pdata 
+0x7a81 035174 beq 0x00 ,usb0_get_status_in_ep_in_ep0 
+0x7a82 035175 branch usb0_force_stall 
+:      035177 usb0_get_status_in_ep_in_ep0:
+0x7a83 035178 fetch 1 ,mem_usb_ep0_stall_status 
+:      035179 usb0_get_status_in_ep_in_ack:
+0x7a84 035180 arg 2 ,regb 
+0x7a85 035181 beq 1 ,usb_send_ones_packet 
+0x7a86 035182 branch usb_send_zero_packet 
+:      035183 usb0_get_status_in_ep_in_ep1:
+0x7a87 035184 fetch 1 ,mem_usb_ep1_stall_status 
+0x7a88 035185 branch usb0_get_status_in_ep_in_ack 
+:      035186 usb0_get_status_in_ep_in_ep2:
+0x7a89 035187 fetch 1 ,mem_usb_ep2_stall_status 
+0x7a8a 035188 branch usb0_get_status_in_ep_in_ack 
+:      035189 usb0_get_status_in_ep_in_ep3:
+0x7a8b 035190 fetch 1 ,mem_usb_ep3_stall_status 
+0x7a8c 035191 branch usb0_get_status_in_ep_in_ack 
+:      035193 usb_get_idle:
+0x7a8d 035194 jam 1 ,mem_usb_idle_flag 
+0x7a8e 035195 arg mem_usb_idle_rate ,rega 
+0x7a8f 035196 arg 1 ,regb 
+0x7a90 035197 branch usb0_respond 
+:      035199 usb_get_report:
+0x7a91 035200 fetch 2 ,mem_usb_setup_bvalue 
+0x7a92 035201 arg pc_get_report ,temp 
+0x7a93 035202 isub temp ,null 
+0x7a94 035203 nbranch usb0_force_stall ,zero 
+:      035205 usb_get_report_dispose:
+0x7a95 035206 fetch 1 ,mem_usb0_data_ready_report 
+0x7a96 035207 nbranch usb_get_report_data_success ,blank 
+0x7a97 035208 jam pc_get_nondata ,mem_usb0_get_report_data 
+:      035209 usb_get_report_send_data:
+0x7a98 035210 fetch 1 ,mem_usb_setup_blength 
+0x7a99 035211 iforce regb 
+0x7a9a 035212 arg mem_usb0_get_report_data ,rega 
+0x7a9b 035213 call usb0_respond 
+:      035214 usb_get_report_data_release:
+0x7a9c 035215 arg mem_usb0_get_report_data ,contw 
+0x7a9d 035216 arg 64 ,loopcnt 
+0x7a9e 035217 branch memset0 
+:      035218 usb_get_report_data_success:
+0x7a9f 035219 jam 0 ,mem_usb0_data_ready_report 
+0x7aa0 035220 jam pc_get_data ,mem_usb0_get_report_data 
+0x7aa1 035221 branch usb_get_report_send_data 
+:      035223 usb_get_protocol_req:
+0x7aa2 035224 fetch 1 ,mem_usb_setup_blength 
+0x7aa3 035225 bne 1 ,usb0_force_stall 
+0x7aa4 035226 jam 1 ,mem_usb_get_protocol_flag 
+0x7aa5 035227 arg 1 ,regb 
+0x7aa6 035228 fetch 1 ,mem_usb_set_protocol_value 
+0x7aa7 035229 beq 0 ,usb_get_report_protocol 
+0x7aa8 035230 beq 1 ,usb_get_boot_protocol 
+0x7aa9 035231 branch usb_send_zero_packet 
+:      035232 usb_get_report_protocol:
+0x7aaa 035233 branch usb_send_ones_packet 
+:      035234 usb_get_boot_protocol:
+0x7aab 035235 branch usb_send_zero_packet 
+:      035240 usb0_request_clear_feature:
+0x7aac 035241 fetch 1 ,mem_usb0_state 
+0x7aad 035242 bne dev_configured ,usb0_force_stall 
+0x7aae 035243 fetch 1 ,mem_usb_setup_blength 
+0x7aaf 035244 bne 0 ,usb0_force_stall 
+0x7ab0 035245 fetch 1 ,mem_usb_setup_blengthh 
+0x7ab1 035246 bne 0 ,usb0_force_stall 
+0x7ab2 035247 fetch 1 ,mem_usb_setup_bvalueh 
+0x7ab3 035248 bne 0 ,usb0_force_stall 
+0x7ab4 035249 fetch 1 ,mem_usb_setup_windex + 1 
+0x7ab5 035250 bne 0 ,usb0_force_stall 
+0x7ab6 035251 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7ab7 035252 beq out_device ,usb0_request_clear_feature_out_device 
+0x7ab8 035253 beq out_interface ,usb0_request_clear_feature_out_interface 
+0x7ab9 035254 beq out_endpoint ,usb0_request_clear_feature_out_endpoint 
+0x7aba 035255 branch usb0_force_stall 
+:      035257 usb0_request_clear_feature_out_device:
+0x7abb 035258 fetch 1 ,mem_usb_setup_bvalue 
+0x7abc 035259 bne device_remote_wakeup ,usb0_force_stall 
+0x7abd 035260 fetch 1 ,core_usb_config 
+0x7abe 035261 set0 7 ,pdata 
+0x7abf 035262 store 1 ,core_usb_config 
+0x7ac0 035263 jam 0 ,mem_usb_remote_wakeup 
+0x7ac1 035264 jam 1 ,mem_usb_clear_remote_wakeup 
+0x7ac2 035265 fetch 1 ,mem_sdsystem_wakeup_flag 
+0x7ac3 035266 branch usb0_reply_zerolen ,blank 
+0x7ac4 035267 jam 0 ,mem_sdsystem_wakeup_flag 
+0x7ac5 035268 jam 0 ,mem_usb_clear_remote_wakeup 
+0x7ac6 035269 jam usb_connected ,mem_usb_state 
+0x7ac7 035270 branch usb0_reply_zerolen 
+:      035272 usb0_request_clear_feature_out_interface:
+0x7ac8 035273 branch usb0_force_stall 
+:      035275 usb0_request_clear_feature_out_endpoint:
+0x7ac9 035276 fetch 1 ,mem_usb_setup_bvalue 
+0x7aca 035277 bne endpoint_halt ,usb0_force_stall 
+0x7acb 035278 fetch 1 ,mem_usb_setup_windex 
+0x7acc 035279 beq in_ep1 ,usb0_force_stall_ep1_in_off 
+0x7acd 035280 beq in_ep2 ,usb0_force_stall_ep2_in_off 
+0x7ace 035281 beq in_ep3 ,usb0_force_stall_ep3_in_off 
+0x7acf 035282 and_into 0x7f ,pdata 
+0x7ad0 035283 beq 0x00 ,usb0_force_stall_ep0_in_off 
+0x7ad1 035284 branch usb0_force_stall 
+:      035286 usb0_force_stall_ep0_in_off:
+0x7ad2 035287 jam 0 ,mem_usb_ep0_stall_status 
+0x7ad3 035288 branch usb0_reply_zerolen 
+:      035289 usb0_force_stall_ep1_in_off:
+0x7ad4 035290 jam 0 ,mem_usb_ep1_stall_status 
+:      035291 usb0_force_stall_ep1_in_off_reply:
+0x7ad5 035292 jam 1 ,mem_usb_clear_halt 
+0x7ad6 035293 branch usb0_reply_zerolen 
+:      035294 usb0_force_stall_ep2_in_off:
+0x7ad7 035295 jam 0 ,mem_usb_ep2_stall_status 
+0x7ad8 035296 branch usb0_force_stall_ep1_in_off_reply 
+:      035297 usb0_force_stall_ep3_in_off:
+0x7ad9 035298 jam 0 ,mem_usb_ep3_stall_status 
+0x7ada 035299 branch usb0_force_stall_ep1_in_off_reply 
+:      035302 usb0_request_set_feature:
+0x7adb 035303 fetch 1 ,mem_usb_setup_blength 
+0x7adc 035304 bne 0 ,usb0_force_stall 
+0x7add 035305 fetch 1 ,mem_usb_setup_blengthh 
+0x7ade 035306 bne 0 ,usb0_force_stall 
+0x7adf 035307 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7ae0 035308 beq out_device ,usb0_request_set_feature_out_device 
+0x7ae1 035309 beq out_interface ,usb0_request_set_feature_out_interface 
+0x7ae2 035310 beq out_endpoint ,usb0_request_set_feature_out_endpoint 
+0x7ae3 035311 branch usb0_force_stall 
+:      035313 usb0_request_set_feature_out_device:
+0x7ae4 035314 fetch 1 ,mem_usb_setup_bvalue 
+0x7ae5 035315 bne device_remote_wakeup ,usb0_force_stall 
+0x7ae6 035316 call dongle_set_pc_sleep_flag 
+0x7ae7 035317 fetch 1 ,core_usb_config 
+0x7ae8 035318 set1 7 ,pdata 
+0x7ae9 035319 store 1 ,core_usb_config 
+0x7aea 035320 jam 1 ,mem_usb_remote_wakeup 
+0x7aeb 035321 jam usb_sleep ,mem_usb_state 
+0x7aec 035322 jam 0 ,mem_usb_tx_win_enable 
+0x7aed 035323 call usb0_reply_zerolen 
+:      035324 usb_wakeup_timer_reinit:
+0x7aee 035325 call timer_reinit 
+0x7aef 035326 setarg timer_wakeup_delay 
+0x7af0 035327 arg usb_timer_wakeup ,queue 
+0x7af1 035328 branch timer_init 
+:      035330 usb0_request_set_feature_out_interface:
+0x7af2 035331 branch usb0_force_stall 
+:      035333 usb0_request_set_feature_out_endpoint:
+0x7af3 035334 fetch 1 ,mem_usb_setup_bvalue 
+0x7af4 035335 bne endpoint_halt ,usb0_force_stall 
+0x7af5 035336 fetch 1 ,mem_usb_setup_bvalueh 
+0x7af6 035337 bne 0 ,usb0_force_stall 
+0x7af7 035338 fetch 1 ,mem_usb_setup_windex 
+0x7af8 035339 beq in_ep1 ,usb0_force_stall_ep1_in_on 
+0x7af9 035340 beq in_ep2 ,usb0_force_stall_ep2_in_on 
+0x7afa 035341 beq in_ep3 ,usb0_force_stall_ep3_in_on 
+0x7afb 035342 and_into 0x7f ,pdata 
+0x7afc 035343 beq 0x00 ,usb0_force_stall_ep0_in_on 
+0x7afd 035344 branch usb0_force_stall 
+:      035346 usb0_force_stall_ep0_in_on:
+0x7afe 035347 jam 1 ,mem_usb_ep0_stall_status 
+0x7aff 035348 branch usb0_reply_zerolen 
+:      035349 usb0_force_stall_ep1_in_on:
+0x7b00 035350 jam 1 ,mem_usb_ep1_stall_status 
+0x7b01 035351 branch usb0_reply_zerolen 
+:      035352 usb0_force_stall_ep2_in_on:
+0x7b02 035353 jam 1 ,mem_usb_ep2_stall_status 
+0x7b03 035354 branch usb0_reply_zerolen 
+:      035355 usb0_force_stall_ep3_in_on:
+0x7b04 035356 jam 1 ,mem_usb_ep3_stall_status 
+0x7b05 035357 branch usb0_reply_zerolen 
+:      035360 usb0_request_set_address:
+0x7b06 035361 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7b07 035362 bne out_device ,usb0_force_stall 
+0x7b08 035363 fetch 1 ,mem_usb_setup_windex 
+0x7b09 035364 bne 0 ,usb0_force_stall 
+0x7b0a 035365 fetch 1 ,mem_usb_setup_windex + 1 
+0x7b0b 035366 bne 0 ,usb0_force_stall 
+0x7b0c 035367 fetch 1 ,mem_usb_setup_blength 
+0x7b0d 035368 bne 0 ,usb0_force_stall 
+0x7b0e 035369 fetch 1 ,mem_usb_setup_blengthh 
+0x7b0f 035370 bne 0 ,usb0_force_stall 
+0x7b10 035371 fetch 1 ,mem_usb_setup_bvalueh 
+0x7b11 035372 bne 0 ,usb0_force_stall 
+0x7b12 035373 fetch 1 ,mem_usb_setup_bvalue 
+0x7b13 035374 and_into 0x80 ,pdata 
+0x7b14 035375 bne 0 ,usb0_force_stall 
+0x7b15 035376 fetch 1 ,mem_usb_setup_bvalue 
+0x7b16 035377 bne 0 ,usb_usb0_state_set_dev_addr 
+:      035378 usb_usb0_state_set_dev_default:
+0x7b17 035379 jam dev_default ,mem_usb0_state 
+:      035380 usb0_request_set_wait_address:
+0x7b18 035381 fetch 1 ,mem_usb_setup_bvalue 
+0x7b19 035382 store 1 ,core_usb_addr 
+0x7b1a 035383 call usb0_reply_zerolen 
+0x7b1b 035384 jam 1 ,mem_usb_set_high_addr_flag 
+0x7b1c 035385 rtn 
+:      035386 usb_usb0_state_set_dev_addr:
+0x7b1d 035387 jam dev_address ,mem_usb0_state 
+0x7b1e 035388 branch usb0_request_set_wait_address 
+:      035391 usb0_request_set_configuration:
+0x7b1f 035392 fetch 1 ,mem_usb0_state 
+0x7b20 035393 beq dev_default ,usb0_force_stall 
+0x7b21 035394 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7b22 035395 bne out_device ,usb0_force_stall 
+0x7b23 035396 fetch 1 ,mem_usb_setup_windex 
+0x7b24 035397 bne 0 ,usb0_force_stall 
+0x7b25 035398 fetch 1 ,mem_usb_setup_windex + 1 
+0x7b26 035399 bne 0 ,usb0_force_stall 
+0x7b27 035400 fetch 1 ,mem_usb_setup_blength 
+0x7b28 035401 bne 0 ,usb0_force_stall 
+0x7b29 035402 fetch 1 ,mem_usb_setup_blengthh 
+0x7b2a 035403 bne 0 ,usb0_force_stall 
+0x7b2b 035404 fetch 1 ,mem_usb_setup_bvalue + 1 
+0x7b2c 035405 bne 0 ,usb0_force_stall 
+0x7b2d 035406 fetch 1 ,mem_usb_setup_bvalue 
+0x7b2e 035407 sub pdata ,usb_max_num_cfg ,null 
+0x7b2f 035408 nbranch usb0_force_stall ,positive 
+0x7b30 035409 fetch 1 ,mem_usb0_state 
+0x7b31 035410 beq dev_address ,usb0_request_set_cfg_addr_state 
+0x7b32 035411 beq dev_configured ,usb0_request_set_cfg_cfg_state 
+0x7b33 035412 branch usb0_force_stall 
+:      035414 usb0_request_set_cfg_addr_state:
+:      035415 usb0_request_set_cfg_cfg_state:
+0x7b34 035416 fetch 1 ,mem_usb_setup_bvalue 
+0x7b35 035417 beq 0 ,usb0_request_set_cfg_stay_addr_state 
+0x7b36 035418 jam dev_configured ,mem_usb0_state 
+0x7b37 035419 branch usb0_reply_zerolen 
+:      035420 usb0_request_set_cfg_stay_addr_state:
+0x7b38 035421 jam dev_address ,mem_usb0_state 
+0x7b39 035422 branch usb0_reply_zerolen 
+:      035425 usb0_request_set_interface:
+0x7b3a 035426 fetch 1 ,mem_usb0_state 
+0x7b3b 035427 bne dev_configured ,usb0_force_stall 
+0x7b3c 035428 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7b3d 035429 bne out_interface ,usb0_force_stall 
+0x7b3e 035430 fetch 1 ,mem_usb_setup_bvalue 
+0x7b3f 035431 bne 0 ,usb0_force_stall 
+0x7b40 035432 fetch 1 ,mem_usb_setup_bvalueh 
+0x7b41 035433 bne 0 ,usb0_force_stall 
+0x7b42 035434 fetch 1 ,mem_usb_setup_blength 
+0x7b43 035435 bne 0 ,usb0_force_stall 
+0x7b44 035436 fetch 1 ,mem_usb_setup_blengthh 
+0x7b45 035437 bne 0 ,usb0_force_stall 
+0x7b46 035438 fetch 1 ,mem_usb_setup_windex 
+0x7b47 035439 bne 0 ,usb0_force_stall 
+0x7b48 035440 fetch 1 ,mem_usb_setup_windex + 1 
+0x7b49 035441 bne 0 ,usb0_force_stall 
+0x7b4a 035442 branch usb0_reply_zerolen 
+:      035445 usb_set_idle:
+0x7b4b 035446 bpatchx patch20_3 ,mem_patch20 
+0x7b4c 035447 jam 1 ,mem_usb_idle_flag 
+0x7b4d 035448 fetch 1 ,mem_usb_setup_bvalueh 
+0x7b4e 035449 store 1 ,mem_usb_idle_rate 
+0x7b4f 035450 fetch 1 ,mem_usb_setup_windex 
+0x7b50 035451 sub pdata ,1 ,null 
+0x7b51 035452 call usb_clear_remote_wakeup_set0 ,zero 
+0x7b52 035453 fetch 1 ,mem_usb_state 
+0x7b53 035454 bne usb_resume ,usb0_reply_zerolen 
+0x7b54 035455 jam usb_connected ,mem_usb_state 
+0x7b55 035456 call usb0_reply_zerolen 
+0x7b56 035457 nop 30000 
+0x7b57 035458 nop 30000 
+0x7b58 035459 rtn 
+:      035460 usb_clear_remote_wakeup_set0:
+0x7b59 035461 jam 1 ,mem_usb_device_enumeration_endflag 
+0x7b5a 035462 jam 0 ,mem_usb_clear_remote_wakeup 
+0x7b5b 035463 jam usb_resume ,mem_usb_state 
+0x7b5c 035464 rtn 
+:      035467 usb_set_report:
+0x7b5d 035468 nop 15000 
+0x7b5e 035469 arg mem_usb0_set_report_data ,contw 
+0x7b5f 035470 call usb_rx_data 
+0x7b60 035471 jam 1 ,mem_usb0_get_set_report 
+0x7b61 035472 call usb_set_report_resume_judge 
+0x7b62 035473 fetch 2 ,mem_usb_setup_bvalue 
+0x7b63 035474 store 2 ,mem_usb_setup_bvalue_temp 
+0x7b64 035475 call usb0_reply_zerolen 
+0x7b65 035476 fetch 1 ,mem_device_option 
+0x7b66 035477 rtnne dvc_op_dongle 
+0x7b67 035478 fetch 1 ,mem_usb_tx_win_enable 
+0x7b68 035479 rtn blank 
+0x7b69 035480 fetch 1 ,mem_usb0_set_report_data 
+:      035481 usb_get_led_status:
+0x7b6a 035482 store 1 ,mem_24g_led_status 
+0x7b6b 035483 jam 0 ,mem_usb_tx_win_enable 
+0x7b6c 035484 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
+0x7b6d 035485 rtn 
+:      035488 usb_set_report_resume_judge:
+0x7b6e 035489 fetch 2 ,mem_usb_setup_bvalue 
+0x7b6f 035490 arg pc_set_report_bvalue ,temp 
+0x7b70 035491 isub temp ,null 
+0x7b71 035492 nrtn zero 
+0x7b72 035493 fetch 2 ,mem_usb_setup_windex 
+0x7b73 035494 arg pc_set_report_windex ,temp 
+0x7b74 035495 isub temp ,null 
+0x7b75 035496 nrtn zero 
+0x7b76 035497 fetch 2 ,mem_usb_setup_blength 
+0x7b77 035498 arg pc_set_report_blength ,temp 
+0x7b78 035499 isub temp ,null 
+0x7b79 035500 nrtn zero 
+0x7b7a 035501 jam 1 ,mem_usb_tx_win_enable 
+0x7b7b 035502 rtn 
+:      035505 usb_set_protocol_req:
+0x7b7c 035506 fetch 1 ,mem_usb_setup_blength 
+0x7b7d 035507 bne 0 ,usb0_force_stall 
+0x7b7e 035508 fetch 1 ,mem_usb_setup_bvalue 
+0x7b7f 035509 beq boot_protocol ,usb_set_boot_protocol 
+0x7b80 035510 beq report_protocol ,usb_set_report_protocol 
+0x7b81 035511 branch usb0_force_stall 
+:      035512 usb_set_boot_protocol:
+0x7b82 035513 jam 0 ,mem_usb_set_protocol_status 
+0x7b83 035514 jam 1 ,mem_usb_set_protocol_value 
+0x7b84 035515 branch usb0_reply_zerolen 
+:      035516 usb_set_report_protocol:
+0x7b85 035517 jam 1 ,mem_usb_tx_mac_enable 
+0x7b86 035518 jam 1 ,mem_usb_set_protocol_status 
+0x7b87 035519 jam 0 ,mem_usb_set_protocol_value 
+0x7b88 035520 branch usb0_reply_zerolen 
+:      035523 usb0_respond_length:
+0x7b89 035524 ifetchr regb ,1 ,rega 
+0x7b8a 035525 increase 1 ,rega 
+:      035527 usb0_respond:
+0x7b8b 035528 bpatchx patch20_4 ,mem_patch20 
+0x7b8c 035529 set1 mark_usb_first_resp ,mark 
+0x7b8d 035530 bmark0 mark_isstr ,usb0_respond_nostr 
+0x7b8e 035531 increase 1 ,regb 
+0x7b8f 035532 lshift regb ,regb 
+:      035533 usb0_respond_nostr:
+0x7b90 035534 storer rega ,2 ,mem_bufptr 
+0x7b91 035535 storer regb ,1 ,mem_remain 
+0x7b92 035536 branch usb0_tx 
+0x7b93 035537 rtn 
+:      035539 usb_no_respond_data:
+0x7b94 035540 arg 0 ,queue 
+0x7b95 035541 branch usb_trig 
+:      035546 usb0_tx:
+0x7b96 035547 bpatchx patch20_5 ,mem_patch20 
+0x7b97 035548 fetch 1 ,core_usb_txbusy 
+0x7b98 035549 rtnbit1 0 
+0x7b99 035550 fetch 1 ,mem_remain 
+0x7b9a 035551 rtn blank 
+0x7b9b 035552 copy pdata ,loopcnt 
+0x7b9c 035553 iforce temp 
+0x7b9d 035554 fetch 2 ,mem_usb_setup_blength 
+0x7b9e 035555 sub pdata ,ep0_packet_size ,null 
+0x7b9f 035556 branch usb0_tx_short ,positive 
+0x7ba0 035557 sub loopcnt ,ep0_packet_size ,null 
+0x7ba1 035558 branch usb0_tx_info ,positive 
+0x7ba2 035559 force ep0_packet_size ,loopcnt 
+0x7ba3 035560 branch usb0_tx_info 
+:      035561 usb0_tx_short:
+0x7ba4 035562 isub loopcnt ,null 
+0x7ba5 035563 branch usb0_tx_info ,positive 
+0x7ba6 035564 iforce loopcnt 
+0x7ba7 035565 store 1 ,mem_remain 
+:      035566 usb0_tx_info:
+0x7ba8 035567 fetch 1 ,mem_remain 
+0x7ba9 035568 isub loopcnt ,pdata 
+0x7baa 035569 store 1 ,mem_remain 
+0x7bab 035570 add loopcnt ,-1 ,pdata 
+0x7bac 035571 store 1 ,mem_usb_txbuf 
+0x7bad 035572 bmark0 mark_isstr ,usb0_tx_nostr 
+0x7bae 035573 rshift pdata ,pdata 
+0x7baf 035574 add loopcnt ,-1 ,pdata 
+0x7bb0 035575 store 1 ,mem_usb_txbuf 
+0x7bb1 035576 bmark0 mark_usb_first_resp ,usb0_tx_nostr 
+0x7bb2 035577 set0 mark_usb_first_resp ,mark 
+0x7bb3 035578 istoret 1 ,contw 
+0x7bb4 035579 setarg 3 
+0x7bb5 035580 istore 1 ,contw 
+0x7bb6 035581 increase -1 ,loopcnt 
+0x7bb7 035582 copy loopcnt ,pdata 
+0x7bb8 035583 nbranch usb0_tx_nostr ,zero 
+0x7bb9 035584 increase 1 ,loopcnt 
+:      035585 usb0_tx_nostr:
+0x7bba 035586 fetch 2 ,mem_bufptr 
+0x7bbb 035587 copy pdata ,contr 
+:      035588 usb0_tx0:
+0x7bbc 035589 ifetch 1 ,contr 
+0x7bbd 035590 istore 1 ,contw 
+0x7bbe 035591 bmark0 mark_isstr ,usb0_tx1 
+0x7bbf 035592 setarg 0 
+0x7bc0 035593 istore 1 ,contw 
+:      035594 usb0_tx1:
+0x7bc1 035595 loop usb0_tx0 
+0x7bc2 035596 copy contr ,pdata 
+0x7bc3 035597 store 2 ,mem_bufptr 
+0x7bc4 035598 setarg mem_usb_txbuf 
+0x7bc5 035599 store 2 ,core_usb_tx_saddr0 
+0x7bc6 035600 arg 0 ,queue 
+0x7bc7 035601 call usb_trig 
+0x7bc8 035602 fetch 1 ,mem_remain 
+0x7bc9 035603 nrtn blank 
+0x7bca 035604 jam 2 ,core_usb_clear_nak 
+0x7bcb 035605 fetch 1 ,mem_usb_state 
+0x7bcc 035606 rtnne usb_got_report_req 
+0x7bcd 035607 jam usb_connected ,mem_usb_state 
+0x7bce 035608 rtn 
+:      035612 usb_tx_ep1:
+0x7bcf 035613 arg mem_usb_txbuf1 ,rega 
+0x7bd0 035614 arg 1 ,queue 
+0x7bd1 035615 storer rega ,2 ,core_usb_tx_saddr1 
+:      035616 usb_tx_buf:
+0x7bd2 035617 add loopcnt ,-1 ,pdata 
+0x7bd3 035618 istore 1 ,rega 
+:      035619 usb_tx_loop:
+0x7bd4 035620 ifetch 1 ,contr 
+0x7bd5 035621 istore 1 ,contw 
+0x7bd6 035622 loop usb_tx_loop 
+:      035623 usb_trig:
+0x7bd7 035624 setarg 0 
+0x7bd8 035625 qset1 pdata 
+0x7bd9 035626 store 1 ,core_usb_trig 
+0x7bda 035627 rtn 
+:      035629 usb_tx_ep2:
+0x7bdb 035630 arg 2 ,queue 
+0x7bdc 035631 arg mem_usb_txbuf2 ,rega 
+0x7bdd 035632 storer rega ,2 ,core_usb_tx_saddr2 
+0x7bde 035633 branch usb_tx_buf 
+:      035635 usb_tx:
+0x7bdf 035636 bpatchx patch20_6 ,mem_patch20 
+0x7be0 035637 fetch 1 ,mem_usb_tx_enable 
+0x7be1 035638 rtn blank 
+0x7be2 035639 fetch 1 ,core_usb_txbusy 
+0x7be3 035640 and_into 0x0f ,pdata 
+0x7be4 035641 nbranch usb_inwake_state_tx_dispose ,blank 
+0x7be5 035642 fetch 1 ,mem_usb_device_enumeration_endflag 
+0x7be6 035643 branch usb_tx_fifo_release ,blank 
+0x7be7 035644 fetch 1 ,mem_usb_state 
+0x7be8 035645 beq usb_sleep ,usb_windows_wakeup 
+0x7be9 035646 bne usb_connected ,usb_tx_fifo_release 
+0x7bea 035647 fetch 1 ,mem_usb_clear_remote_wakeup 
+0x7beb 035648 nbranch usb_tx_fifo_release ,blank 
+0x7bec 035649 call usb_tx_data_ep1 
+0x7bed 035650 branch usb_tx_data_ep2 
+:      035652 usb_tx_data_ep1:
+0x7bee 035653 fetch 1 ,core_usb_txbusy 
+0x7bef 035654 rtnbit1 1 
+0x7bf0 035655 fetch 1 ,mem_usb_tx_enable 
+0x7bf1 035656 rtnbit0 1 
+0x7bf2 035657 fetch 1 ,mem_usb_tx_enable 
+0x7bf3 035658 set0 1 ,pdata 
+0x7bf4 035659 store 1 ,mem_usb_tx_enable 
+0x7bf5 035660 fetch 1 ,mem_usb_ep1_data 
+0x7bf6 035661 rtn blank 
+0x7bf7 035662 beq usb_ep1_kb ,usb_tx_kb_normal_data 
+0x7bf8 035663 branch assert 
+:      035665 usb_tx_data_ep2:
+0x7bf9 035666 fetch 1 ,core_usb_txbusy 
+0x7bfa 035667 rtnbit1 2 
+0x7bfb 035668 fetch 1 ,mem_usb_tx_enable 
+0x7bfc 035669 rtnbit0 2 
+0x7bfd 035670 fetch 1 ,mem_usb_tx_enable 
+0x7bfe 035671 set0 2 ,pdata 
+0x7bff 035672 store 1 ,mem_usb_tx_enable 
+0x7c00 035673 fetch 1 ,mem_usb_ep2_data 
+0x7c01 035674 rtn blank 
+0x7c02 035675 beq usb_ep2_ms ,usb_tx_ms_data 
+0x7c03 035676 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+0x7c04 035677 beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+0x7c05 035678 branch assert 
+:      035680 usb_tx_fifo_release:
+0x7c06 035682 arg mem_usb_mouse_data ,contw 
+0x7c07 035683 arg 64 ,loopcnt 
+0x7c08 035684 branch memset0 
+:      035686 usb_tx_ms_data:
+0x7c09 035687 fetch 1 ,mem_usb_idle_flag 
+0x7c0a 035688 fetcht 1 ,mem_usb_get_protocol_flag 
+0x7c0b 035689 iand temp ,pdata 
+0x7c0c 035690 branch usb_tx_ms_data_normal_mode ,blank 
+0x7c0d 035691 fetcht 1 ,mem_usb_set_protocol_status 
+0x7c0e 035692 iadd temp ,pdata 
+0x7c0f 035693 beq mac_boot_mode ,usb_tx_ms_data_mac_boot_mode 
+0x7c10 035694 branch usb_tx_ms_data_normal_mode 
+:      035696 usb_tx_ms_data_mac_boot_mode:
+0x7c11 035697 jam 0 ,mem_usb_ep2_data 
+:      035698 usb_tx_ms_data_mac_boot_regroup:
+0x7c12 035699 fetch 1 ,mem_usb_mouse_data + 1 
+0x7c13 035700 beq r_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+0x7c14 035701 beq lr_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+0x7c15 035702 fetch 1 ,mem_usb_mouse_data + 1 
+0x7c16 035703 store 1 ,mem_usb_mouse_data 
+0x7c17 035704 fetch 1 ,mem_usb_mouse_data + 2 
+0x7c18 035705 istore 1 ,contw 
+0x7c19 035706 fetch 1 ,mem_usb_mouse_data + 4 
+0x7c1a 035707 istore 1 ,contw 
+0x7c1b 035708 fetch 1 ,mem_usb_mouse_data + 6 
+0x7c1c 035709 istore 1 ,contw 
+0x7c1d 035710 arg 4 ,loopcnt 
+0x7c1e 035711 arg mem_usb_mouse_data ,contr 
+0x7c1f 035712 branch usb_tx_ep2 
+:      035714 usb_tx_ms_data_normal_mode:
+0x7c20 035715 jam 0 ,mem_usb_ep2_data 
+:      035716 usb_tx_mac_boot_ms_regroup_r_or_lrkey:
+0x7c21 035717 arg 8 ,loopcnt 
+0x7c22 035718 arg mem_usb_mouse_data ,contr 
+0x7c23 035719 branch usb_tx_ep2 
+:      035721 usb_tx_kb_multikey_data:
+0x7c24 035722 jam 0 ,mem_usb_ep2_data 
+0x7c25 035723 arg 3 ,loopcnt 
+0x7c26 035724 arg mem_usb_kb_multikey ,contr 
+0x7c27 035725 branch usb_tx_ep2 
+:      035727 usb_tx_kb_normal_data:
+0x7c28 035728 jam 0 ,mem_usb_ep1_data 
+0x7c29 035729 arg 8 ,loopcnt 
+0x7c2a 035730 arg mem_usb_kb_data ,contr 
+0x7c2b 035731 branch usb_tx_ep1 
+:      035733 usb_tx_kb_systemkey_data:
+0x7c2c 035734 jam 0 ,mem_usb_ep2_data 
+0x7c2d 035735 arg 2 ,loopcnt 
+0x7c2e 035736 arg mem_usb_kb_system ,contr 
+0x7c2f 035737 branch usb_tx_ep2 
+:      035739 usb_inwake_state_tx_dispose:
+0x7c30 035740 fetch 1 ,mem_usb_state 
+0x7c31 035741 beq usb_connected ,usb_mac_wakeup_trig 
+0x7c32 035742 rtn 
+:      035743 usb_mac_wakeup_trig:
+0x7c33 035744 fetch 1 ,core_usb_config 
+0x7c34 035745 set1 7 ,pdata 
+0x7c35 035746 store 1 ,core_usb_config 
+0x7c36 035747 jam 1 ,mem_usb_mac_wakeup_trig 
+0x7c37 035748 rtn 
+:      035750 usb_mac_wakeup_judge:
+0x7c38 035751 fetch 1 ,mem_usb_state 
+0x7c39 035752 rtneq usb_sleep 
+0x7c3a 035753 beq usb_connected ,usb_mac_wakeup 
+0x7c3b 035754 rtn 
+:      035755 usb_mac_wakeup:
+0x7c3c 035756 fetch 1 ,mem_usb_mac_wakeup_trig 
+0x7c3d 035757 rtn blank 
+0x7c3e 035758 jam 1 ,mem_usb_wakestate_onetime_flag 
+0x7c3f 035759 branch usb_wakeup 
+:      035761 usb_windows_wakeup:
+0x7c40 035762 arg usb_timer_wakeup ,queue 
+0x7c41 035763 call timer_check 
+0x7c42 035764 nrtn blank 
+:      035765 usb_wakeup:
+0x7c43 035766 fetch 1 ,core_usb_config 
+0x7c44 035767 rtnbit0 7 
+0x7c45 035768 jam 0xfc ,core_usb_config 
+0x7c46 035769 nop 30000 
+0x7c47 035770 jam 0x3c ,core_usb_config 
+0x7c48 035771 rtn 
+:      035778 push_stack:
+0x7c49 035779 storer contw ,2 ,mem_contw 
+0x7c4a 035780 storet 8 ,mem_temp 
+0x7c4b 035781 storer timeup ,4 ,mem_timeup 
+0x7c4c 035782 call push_stack_rega_b_c 
+0x7c4d 035783 storer contr ,2 ,mem_contr 
+0x7c4e 035784 storer loopcnt ,2 ,mem_loopcnt 
+0x7c4f 035785 storer queue ,2 ,mem_queue 
+0x7c50 035786 rtn 
+:      035788 push_stack_rega_b_c:
+0x7c51 035789 storer rega ,4 ,mem_rega 
+0x7c52 035790 storer regb ,4 ,mem_regb 
+0x7c53 035791 storer regc ,3 ,mem_regc 
+0x7c54 035792 rtn 
+:      035794 pop_stack:
+0x7c55 035795 bpatchx patch20_7 ,mem_patch20 
+0x7c56 035796 fetch 2 ,mem_contw 
+0x7c57 035797 iforce contw 
+0x7c58 035798 fetcht 8 ,mem_temp 
+0x7c59 035799 fetchr timeup ,4 ,mem_timeup 
+0x7c5a 035800 call pop_stack_rega_b_c 
+0x7c5b 035801 fetchr loopcnt ,2 ,mem_loopcnt 
+0x7c5c 035802 fetchr queue ,2 ,mem_queue 
+0x7c5d 035803 fetch 2 ,mem_contr 
+0x7c5e 035804 iforce contr 
+0x7c5f 035805 rtn 
+:      035807 pop_stack_rega_b_c:
+0x7c60 035808 fetchr rega ,4 ,mem_rega 
+0x7c61 035809 fetchr regb ,4 ,mem_regb 
+0x7c62 035810 fetchr regc ,3 ,mem_regc 
+0x7c63 035811 rtn 
+:      035813 get_contw:
+0x7c64 035814 fetch 2 ,mem_contw 
+0x7c65 035815 copy pdata ,contw 
+0x7c66 035816 rtn 
+:      035817 get_contr:
+0x7c67 035818 fetch 2 ,mem_contr 
+0x7c68 035819 copy pdata ,contr 
+0x7c69 035820 rtn 
+:      035822 store_contw:
+0x7c6a 035823 copy contw ,pdata 
+0x7c6b 035824 store 2 ,mem_contw 
+0x7c6c 035825 rtn 
+:      035826 store_contr:
+0x7c6d 035827 copy contr ,pdata 
+0x7c6e 035828 store 2 ,mem_contr 
+0x7c6f 035829 rtn 
+:      035833 save_cont_pointers:
+0x7c70 035834 copy contw ,pdata 
+0x7c71 035835 store 2 ,mem_contw 
+0x7c72 035836 copy contr ,pdata 
+0x7c73 035837 store 2 ,mem_contr 
+0x7c74 035838 rtn 
+:      035840 load_cont_pointers:
+0x7c75 035841 fetch 2 ,mem_contw 
+0x7c76 035842 copy pdata ,contw 
+0x7c77 035843 fetch 2 ,mem_contr 
+0x7c78 035844 copy pdata ,contr 
+0x7c79 035845 rtn 
+:      035850 get_diff:
+0x7c7a 035851 isub temp ,rega 
+0x7c7b 035852 rtn positive 
+0x7c7c 035853 arg 0x100 ,rega 
+0x7c7d 035854 iadd rega ,pdata 
+0x7c7e 035855 isub temp ,rega 
+0x7c7f 035856 rtn 
+:      035858 memcpy96:
+0x7c80 035859 call memcpy32 
+:      035860 memcpy64:
+0x7c81 035861 call memcpy32 
+0x7c82 035862 branch memcpy32 
+:      035865 memcpy12:
+0x7c83 035866 call memcpy8 
+:      035867 memcpy4:
+0x7c84 035868 ifetch 1 ,contr 
+0x7c85 035869 istore 1 ,contw 
+:      035870 memcpy3:
+0x7c86 035871 ifetch 3 ,contr 
+0x7c87 035872 istore 3 ,contw 
+0x7c88 035873 rtn 
+:      035874 memcpy8:
+0x7c89 035875 ifetch 8 ,contr 
+0x7c8a 035876 istore 8 ,contw 
+0x7c8b 035877 rtn 
+:      035879 memcpy48:
+0x7c8c 035880 call memcpy16 
+:      035881 memcpy32:
+0x7c8d 035882 call memcpy8 
+:      035883 memcpy24:
+0x7c8e 035884 call memcpy8 
+:      035885 memcpy16:
+0x7c8f 035886 call memcpy8 
+0x7c90 035887 branch memcpy8 
+:      035889 delay:
+0x7c91 035890 increase -1 ,pdata 
+0x7c92 035891 nop 38 
+0x7c93 035892 nbranch delay ,blank 
+0x7c94 035893 rtn 
+:      035896 delay_10ms:
+0x7c95 035897 arg 10 ,loopcnt 
+:      035898 delay_ms_wait:
+0x7c96 035899 nop 12000 
+0x7c97 035900 loop delay_ms_wait 
+0x7c98 035901 rtn 
+:      035904 memset0_16:
+0x7c99 035905 call memset0_8 
+:      035906 memset0_8:
+0x7c9a 035907 call memset0_4 
+:      035908 memset0_4:
+0x7c9b 035909 force 4 ,loopcnt 
+0x7c9c 035910 branch memset0 
+:      035912 clear_mem_256:
+0x7c9d 035913 force 32 ,loopcnt 
+0x7c9e 035914 branch memset0 
+:      035915 clear_mem_512:
+0x7c9f 035916 force 64 ,loopcnt 
+0x7ca0 035917 branch memset0 
+:      035919 clear_mem:
+0x7ca1 035920 deposit loopcnt 
+0x7ca2 035921 rtn blank 
+:      035922 memset0:
+0x7ca3 035923 force 0 ,pdata 
+0x7ca4 035924 lstore contw 
+0x7ca5 035925 rtn 
+:      035927 clear_temp_block:
+0x7ca6 035928 arg 32 ,loopcnt 
+0x7ca7 035929 arg mem_temp_block0 ,contw 
+0x7ca8 035930 branch clear_mem 
+:      035932 xor_loop:
+0x7ca9 035933 ifetch 4 ,regc 
+0x7caa 035934 ifetcht 4 ,rega 
+0x7cab 035935 ixor temp ,pdata 
+0x7cac 035936 istore 4 ,contw 
+0x7cad 035937 increase 4 ,rega 
+0x7cae 035938 increase 4 ,regc 
+0x7caf 035939 loop xor_loop 
+0x7cb0 035940 rtn 
+:      035944 inverse_data:
+0x7cb1 035945 bpatchx patch21_0 ,mem_patch21 
+0x7cb2 035946 copy loopcnt ,pdata 
+0x7cb3 035947 sub pdata ,1 ,null 
+0x7cb4 035948 rtn positive 
+0x7cb5 035949 iadd rega ,regb 
+0x7cb6 035950 increase -1 ,regb 
+0x7cb7 035951 rshift loopcnt ,loopcnt 
+:      035952 inverse_loop:
+0x7cb8 035953 ifetcht 1 ,rega 
+0x7cb9 035954 ifetch 1 ,regb 
+0x7cba 035955 istore 1 ,rega 
+0x7cbb 035956 istoret 1 ,regb 
+0x7cbc 035957 increase -1 ,regb 
+0x7cbd 035958 increase 1 ,rega 
+0x7cbe 035959 loop inverse_loop 
+0x7cbf 035960 rtn 
+:      035962 le2be_6byte:
+:      035963 inverse_data_6byte:
+0x7cc0 035964 rshift32 pdata ,temp 
+0x7cc1 035965 call inverse_data_4byte 
+0x7cc2 035966 byteswap temp ,temp 
+0x7cc3 035967 lshift16 pdata ,pdata 
+0x7cc4 035968 ior temp ,pdata 
+0x7cc5 035969 rtn 
+:      035972 le2be_4byte:
+:      035973 inverse_data_4byte:
+0x7cc6 035974 rshift16 pdata ,contr 
+0x7cc7 035975 byteswap contr ,contr 
+0x7cc8 035976 byteswap pdata ,pdata 
+0x7cc9 035977 lshift16 pdata ,pdata 
+0x7cca 035978 ior contr ,pdata 
+0x7ccb 035979 rtn 
+:      035982 memcpy_fast:
+0x7ccc 035983 bpatchx patch21_1 ,mem_patch21 
+0x7ccd 035984 deposit loopcnt 
+0x7cce 035985 rtn blank 
+:      035986 memcpy_fast_loop:
+0x7ccf 035987 increase -8 ,loopcnt 
+0x7cd0 035988 call memcpy8 ,positive 
+0x7cd1 035989 rtn zero 
+0x7cd2 035990 branch memcpy_fast_loop ,positive 
+0x7cd3 035991 increase 8 ,loopcnt 
+:      035992 memcpy_fast_loop_four:
+0x7cd4 035993 increase -4 ,loopcnt 
+0x7cd5 035994 call memcpy4 ,positive 
+0x7cd6 035995 rtn zero 
+0x7cd7 035996 branch memcpy_fast_loop_four ,positive 
+0x7cd8 035997 increase 4 ,loopcnt 
+0x7cd9 035998 branch memcpy 
+:      036000 memcpy:
+0x7cda 036001 deposit loopcnt 
+0x7cdb 036002 rtn blank 
+:      036003 memcpy_loop:
+0x7cdc 036004 ifetch 1 ,contr 
+0x7cdd 036005 istore 1 ,contw 
+0x7cde 036006 loop memcpy_loop 
+0x7cdf 036007 rtn 
+:      036009 timer_stop:
+0x7ce0 036010 setarg 0 
+:      036011 timer_init:
+0x7ce1 036014 store 2 ,mem_pdatatemp 
+0x7ce2 036015 bpatchx patch21_2 ,mem_patch21 
+0x7ce3 036016 call timer_check 
+0x7ce4 036017 fetcht 2 ,mem_pdatatemp 
+0x7ce5 036018 arg mem_timers ,contw 
+0x7ce6 036020 lshift queue ,pdata 
+0x7ce7 036021 iadd contw ,contw 
+0x7ce8 036022 istoret 2 ,contw 
+0x7ce9 036023 rtn 
+:      036025 timer_check_timeout:
+0x7cea 036026 arg 0x800 ,timeup 
+0x7ceb 036027 lshift16 timeup ,timeup 
+0x7cec 036028 iadd timeup ,pdata 
+0x7ced 036029 rtn 
+:      036032 timer_reinit:
+0x7cee 036033 arg 0 ,queue 
+:      036034 timer_check:
+0x7cef 036035 bpatchx patch21_3 ,mem_patch21 
+0x7cf0 036036 fetcht 4 ,mem_last_clkn 
+0x7cf1 036037 rshift clkn_bt ,pdata 
+0x7cf2 036038 store 4 ,mem_last_clkn 
+0x7cf3 036039 isub temp ,null 
+0x7cf4 036040 ncall timer_check_timeout ,positive 
+0x7cf5 036041 isub temp ,timeup 
+0x7cf6 036042 copy timeup ,temp 
+0x7cf7 036043 arg mem_timers ,contr 
+0x7cf8 036044 copy contr ,contw 
+0x7cf9 036045 arg 16 ,loopcnt 
+:      036046 timer_loop:
+0x7cfa 036047 ifetch 2 ,contr 
+0x7cfb 036048 isub temp ,pdata 
+0x7cfc 036049 branch timer_counting ,positive 
+0x7cfd 036050 force 0 ,pdata 
+:      036051 timer_counting:
+0x7cfe 036052 istore 2 ,contw 
+0x7cff 036053 loop timer_loop 
+0x7d00 036054 arg mem_timers ,contr 
+0x7d01 036055 lshift queue ,pdata 
+0x7d02 036056 iadd contr ,contr 
+0x7d03 036057 ifetch 2 ,contr 
+0x7d04 036058 rtn 
+:      036063 clk_add:
+0x7d05 036064 iadd temp ,temp 
+0x7d06 036065 copy temp ,loopcnt 
+0x7d07 036066 fetch 2 ,mem_param_rt_rthalfslot 
+0x7d08 036067 isub loopcnt ,pdata 
+0x7d09 036068 rtn positive 
+0x7d0a 036069 sub pdata ,0 ,pdata 
+0x7d0b 036070 rshift16 temp ,temp 
+0x7d0c 036071 increase 1 ,temp 
+0x7d0d 036072 lshift16 temp ,temp 
+0x7d0e 036073 ior temp ,temp 
+0x7d0f 036074 rtn 
+:      036076 clk_diff_rt:
+0x7d10 036077 call clk_diff 
+0x7d11 036078 branch clk2rt 
+:      036081 clk_diff:
+0x7d12 036082 disable user 
+0x7d13 036083 isub temp ,pdata 
+0x7d14 036084 branch clk_diff_pos ,positive 
+0x7d15 036085 enable user 
+0x7d16 036086 sub pdata ,0 ,pdata 
+:      036087 clk_diff_pos:
+0x7d17 036088 rtnbit0 15 
+0x7d18 036089 copy pdata ,regab 
+0x7d19 036090 arg 0x10000 ,temp 
+0x7d1a 036091 fetch 2 ,mem_param_rt_rthalfslot 
+0x7d1b 036092 isub temp ,pdata 
+0x7d1c 036093 iadd regab ,pdata 
+0x7d1d 036094 set0 64 ,pdata 
+0x7d1e 036095 rtn 
+:      036099 clk2rt:
+0x7d1f 036100 fetcht 2 ,mem_param_rt_rthalfslot 
+0x7d20 036101 iforce contr 
+0x7d21 036102 rshift16 pdata ,pdata 
+0x7d22 036103 imul32 temp ,pdata 
+0x7d23 036104 iadd contr ,pdata 
+0x7d24 036105 rtn 
+:      036108 clk2lpo:
+0x7d25 036109 lshift8 pdata ,pdata 
+0x7d26 036110 lshift4 pdata ,pdata 
+0x7d27 036111 fetcht 3 ,mem_clks_per_lpo 
+0x7d28 036112 idiv temp 
+0x7d29 036113 call wait_div_end 
+0x7d2a 036114 quotient temp 
+0x7d2b 036115 rtn 
+:      036118 clk2bt:
+0x7d2c 036119 fetcht 2 ,mem_param_rt_rthalfslot 
+0x7d2d 036120 idiv temp 
+0x7d2e 036121 call get_div_result 
+0x7d2f 036122 lshift16 pdata ,pdata 
+0x7d30 036123 remainder temp 
+0x7d31 036124 ior temp ,temp 
+0x7d32 036125 rtn 
+:      036132 string2dec_from_uart:
+0x7d33 036133 arg 0 ,temp 
+:      036134 string2dec_from_uart_done:
+0x7d34 036135 copy temp ,regab 
+0x7d35 036136 ifetch 1 ,contu 
+0x7d36 036137 call uchar2dialog 
+0x7d37 036138 copy regab ,temp 
+0x7d38 036139 call swap 
+0x7d39 036140 arg 10 ,regb 
+0x7d3a 036141 imul32 regb ,pdata 
+0x7d3b 036142 iadd temp ,pdata 
+0x7d3c 036143 copy pdata ,temp 
+0x7d3d 036144 loop string2dec_from_uart_done 
+0x7d3e 036145 rtn 
+:      036149 uchar2dialog:
+0x7d3f 036150 arg 0x3a ,temp 
+0x7d40 036151 isub temp ,null 
+0x7d41 036152 nbranch uchar2dialog_number ,positive 
+0x7d42 036153 arg 0x61 ,temp 
+0x7d43 036154 isub temp ,null 
+0x7d44 036155 branch uchar2dialog_a2f ,positive 
+0x7d45 036156 arg 0x37 ,temp 
+0x7d46 036157 isub temp ,pdata 
+0x7d47 036158 rtn 
+:      036159 uchar2dialog_number:
+0x7d48 036160 arg 0x30 ,temp 
+0x7d49 036161 isub temp ,pdata 
+0x7d4a 036162 rtn 
+:      036163 uchar2dialog_a2f:
+0x7d4b 036164 arg 0x57 ,temp 
+0x7d4c 036165 isub temp ,pdata 
+0x7d4d 036166 rtn 
+:      036169 right_shift_n:
+0x7d4e 036170 sub loopcnt ,0 ,null 
+0x7d4f 036171 rtn zero 
+:      036172 right_shift_n_loop:
+0x7d50 036173 rshift pdata ,pdata 
+0x7d51 036174 loop right_shift_n_loop 
+0x7d52 036175 rtn 
+:      036178 left_shift_n:
+0x7d53 036179 force 1 ,pdata 
+0x7d54 036180 sub loopcnt ,0 ,null 
+0x7d55 036181 rtn zero 
+:      036182 left_shift_n_loop:
+0x7d56 036183 lshift pdata ,pdata 
+0x7d57 036184 loop left_shift_n_loop 
+0x7d58 036185 rtn 
+:      036189 calc_average:
+0x7d59 036190 setarg 0 
+0x7d5a 036191 copy loopcnt ,rega 
+:      036192 calc_average_loop:
+0x7d5b 036193 ifetcht 2 ,contr 
+0x7d5c 036194 iadd temp ,pdata 
+0x7d5d 036195 loop calc_average_loop 
+0x7d5e 036196 idiv rega 
+:      036197 get_div_result:
+0x7d5f 036198 call wait_div_end 
+0x7d60 036199 quotient pdata 
+0x7d61 036200 rtn 
+:      036202 wait_div_end:
+0x7d62 036203 rtn modone 
+0x7d63 036204 branch wait_div_end 
+:      036214 compare_loop:
+:      036215 string_compare:
+0x7d64 036216 ifetch 1 ,rega 
+0x7d65 036217 ifetcht 1 ,regb 
+0x7d66 036218 isub temp ,null 
+0x7d67 036219 nrtn zero 
+0x7d68 036220 increase 1 ,rega 
+0x7d69 036221 increase 1 ,regb 
+0x7d6a 036222 loop string_compare 
+0x7d6b 036223 branch enable_zero 
+:      036227 ceiling:
+0x7d6c 036228 isub temp ,null 
+0x7d6d 036229 nrtn positive 
+0x7d6e 036230 deposit temp 
+0x7d6f 036231 rtn 
+:      036233 swap:
+0x7d70 036234 iadd temp ,pdata 
+0x7d71 036235 isub temp ,temp 
+0x7d72 036236 isub temp ,pdata 
+0x7d73 036237 rtn 
+:      036239 clean_smem:
+0x7d74 036240 arg 0 ,contw 
+0x7d75 036241 branch clean_mem 
+:      036243 clean_xmem:
+0x7d76 036244 arg 0x4000 ,contw 
+:      036245 clean_mem:
+0x7d77 036246 arg 0x1000 ,loopcnt 
+0x7d78 036247 branch memset0 
+:      036250 callback_func:
+0x7d79 036251 rtn blank 
+0x7d7a 036252 copy pdata ,pc 
+:      036255 ice_break_disable_wdt:
+0x7d7b 036256 call wdt_set_disable 
+:      036258 ice_break:
+0x7d7c 036259 jam 0x1 ,core_ice_ctrl 
+0x7d7d 036260 rtn 
+:      036262 ice_setbp:
+0x7d7e 036263 store 2 ,core_ice_break0 
+0x7d7f 036264 fetch 1 ,core_ice_ctrl 
+0x7d80 036265 set1 4 ,pdata 
+0x7d81 036266 store 1 ,core_ice_ctrl 
+0x7d82 036267 rtn 
+:      036268 ice_setbp2:
+0x7d83 036269 store 2 ,core_ice_break1 
+0x7d84 036270 fetch 1 ,core_ice_ctrl 
+0x7d85 036271 set1 6 ,pdata 
+0x7d86 036272 store 1 ,core_ice_ctrl 
+0x7d87 036273 rtn 
+:      036275 ice_set_write_bp:
+0x7d88 036276 store 2 ,core_ice_break0 
+0x7d89 036277 jam 0x30 ,core_ice_ctrl 
+0x7d8a 036278 rtn 
+:      036286 fifo_in:
+0x7d8b 036287 bpatchx patch21_4 ,mem_patch21 
+0x7d8c 036288 ifetcht util_fifo_len ,rega 
+0x7d8d 036289 and temp ,0xff ,pdata 
+0x7d8e 036290 nbranch fifo_in_push ,blank 
+0x7d8f 036291 rshift8 temp ,pdata 
+0x7d90 036292 istore util_fifo_len ,rega 
+:      036293 fifo_in_push:
+0x7d91 036294 increase util_fifo_len + util_fifo_offset ,rega 
+0x7d92 036295 ifetch 1 ,rega 
+0x7d93 036296 nbranch assert ,blank 
+0x7d94 036297 fetch 1 ,mem_fifo_temp 
+0x7d95 036298 istore 1 ,rega 
+0x7d96 036299 rtn 
+:      036304 fifo_out:
+0x7d97 036305 bpatchx patch21_5 ,mem_patch21 
+0x7d98 036306 arg util_fifo_len ,loopcnt 
+0x7d99 036307 ifetch util_fifo_len ,rega 
+0x7d9a 036308 rtn blank 
+:      036309 fifo_out_loop:
+0x7d9b 036310 ifetch 1 ,rega 
+0x7d9c 036311 nbranch fifo_out_end ,blank 
+0x7d9d 036312 increase 1 ,rega 
+0x7d9e 036313 loop fifo_out_loop 
+0x7d9f 036314 branch assert 
+:      036315 fifo_out_end:
+0x7da0 036316 arg 0 ,temp 
+0x7da1 036317 istoret 1 ,rega 
+0x7da2 036318 rtn 
+:      036323 fifo_is_empty:
+0x7da3 036324 ifetch util_fifo_len ,rega 
+0x7da4 036325 rtn 
+:      036330 fifo_is_full:
+0x7da5 036331 ifetch 1 ,rega 
+0x7da6 036332 rtn 
+:      036335 fifo_is_near_full:
+0x7da7 036336 ifetch 2 ,rega 
+0x7da8 036337 rtn 
+:      036341 fifo_content_count:
+0x7da9 036342 arg 0 ,temp 
+:      036343 fifo_content_count_loop:
+0x7daa 036344 fetch 1 ,contr 
+0x7dab 036345 loop fifo_content_count_loop ,blank 
+0x7dac 036346 increase 1 ,temp 
+0x7dad 036347 loop fifo_content_count_loop 
+0x7dae 036348 copy temp ,pdata 
+0x7daf 036349 rtn 
+:      036352 not_greater_than:
+0x7db0 036353 isub temp ,null 
+0x7db1 036354 nrtn positive 
+:      036355 copy_temp2pdata:
+0x7db2 036356 copy temp ,pdata 
+0x7db3 036357 rtn 
+:      036360 disable_positive:
+0x7db4 036361 force -1 ,null 
+0x7db5 036362 rtn 
+:      036363 enable_positive:
+:      036364 disable_zero:
+0x7db6 036365 force 1 ,null 
+0x7db7 036366 rtn 
+:      036367 enable_zero:
+0x7db8 036368 force 0 ,null 
+0x7db9 036369 rtn 
+:      036371 enable_user:
+0x7dba 036372 enable user 
+0x7dbb 036373 rtn 
+:      036375 disable_user:
+0x7dbc 036376 disable user 
+0x7dbd 036377 rtn 
+:      036379 enable_user2:
+0x7dbe 036380 enable user2 
+0x7dbf 036381 rtn 
+:      036383 disable_user2:
+0x7dc0 036384 disable user2 
+0x7dc1 036385 rtn 
+:      036387 enable_user7:
+0x7dc2 036388 enable user7 
+0x7dc3 036389 rtn 
+:      036391 disable_true:
+0x7dc4 036392 disable true 
+0x7dc5 036393 rtn 
+:      036395 enable_true:
+0x7dc6 036396 enable true 
+0x7dc7 036397 rtn 
+:      036399 disable_blank:
+0x7dc8 036400 setarg 1 
+0x7dc9 036401 rtn 
+:      036403 enable_blank:
+:      036404 set_pdata_0:
+0x7dca 036405 setarg 0 
+0x7dcb 036406 rtn 
+:      036410 cal_sum:
+0x7dcc 036411 sub loopcnt ,0 ,null 
+0x7dcd 036412 rtn zero 
+:      036413 cal_sum_loop:
+0x7dce 036414 ifetcht 1 ,contr 
+0x7dcf 036415 iadd temp ,pdata 
+0x7dd0 036416 loop cal_sum_loop 
+0x7dd1 036417 rtn 
+:      036420 reverse_byte:
+0x7dd2 036421 copy loopcnt ,pdata 
+0x7dd3 036422 rtn blank 
+0x7dd4 036423 copy contr ,pdata 
+0x7dd5 036424 iadd loopcnt ,pdata 
+0x7dd6 036425 increase -1 ,pdata 
+0x7dd7 036426 copy pdata ,contr 
+:      036427 reverse_loop:
+0x7dd8 036428 ifetch 1 ,contr 
+0x7dd9 036429 increase -2 ,contr 
+0x7dda 036430 istore 1 ,contw 
+0x7ddb 036431 loop reverse_loop 
+0x7ddc 036432 rtn 
+:      036435 lshift14:
+0x7ddd 036436 lshift16 pdata ,pdata 
+:      036437 rshift2:
+0x7dde 036438 rshift2 pdata ,pdata 
+0x7ddf 036439 rtn 
+:      036441 lshift6:
+0x7de0 036442 lshift8 pdata ,pdata 
+0x7de1 036443 branch rshift2 
+:      036446 clear_wake:
+0x7de2 036447 setarg 0 
+0x7de3 036448 store 8 ,mem_gpio_wakeup_cfg 
+0x7de4 036449 set1 25 ,pdata 
+0x7de5 036450 istore 4 ,contw 
+0x7de6 036451 rtn 
+:      036454 generate_random:
+0x7de7 036455 arg 16 ,loopcnt 
+:      036456 generate_random_loop:
+0x7de8 036457 random pdata 
+0x7de9 036458 istore 1 ,contw 
+0x7dea 036459 loop generate_random_loop 
+0x7deb 036460 rtn 
Index: output/bt_program23.meta
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/bt_program23.meta	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/bt_program23.meta	(working copy)
@@ -0,0 +1,36461 @@
+//define RAM_VERSION
+//define CLK24M
+define SECURE_CONNECTION
+//define COMPILE_KEYSCAN
+define NEC
+define YC1121SB
+
+define DEBUG_RF_INIT
+
+define COMPILE_SHUTTER
+define COMPILE_MOUSE
+define COMPILE_MODULE
+define COMPILE_USB
+define COMPILE_DONGLE
+define COMPILE_LE
+define COMPILE_24G
+define COMPILE_CAR
+//define COMPILE_PEN
+define COMPILE_REMOTE_CAR
+//define COMPILE_WECHAT
+//define COMPLIE_TEST
+define COMPLIE_ADPCM
+
+INCLUDE "bt_format"
+
+org 0x0000		// start from patch ram address start
+//define ex_eeprom
+//define g24_enable
+define ble_enable
+//define usb_enable
+//define multi_mode
+//define ice_disable
+//define RGB_backlight
+define ADC_1121SB
+define ADC_1V5
+
+//define ADC_1121SB_1V8_MODE
+
+	bbit1 8,pf_patch_ext
+	beq patch00_0,p_soft_reset	
+	beq patch00_2,p_main_loop
+	beq patch02_0,p_shutdown_radio
+	beq patch02_1,p_set_sync_on
+	beq patch02_4,p_set_lemode	
+	beq patch02_5,p_rf_rx_enable
+	beq patch03_0,p_txon
+	beq patch03_1,p_set_tx_power
+	beq patch03_2,p_initialize_radio_cont
+	beq patch04_5,p_lpm_sleep
+	beq patch05_0,p_lpm_dispatch
+	beq patch08_2,p_keyboard_load_otp_info_check
+	beq patch08_4,p_keyboard_store_device_info	
+	beq patch08_5,p_keyboard_cb_fuction
+	beq patch08_6,p_keyboard_priority_bb_event	
+	beq patch08_7,p_keyboard_bb_event_timer
+	beq patch09_0,p_keyboard_start_discovery
+	beq patch09_1,p_keyboard_stop_discovery
+	beq patch09_2,p_keyboard_store_remote_bdaddr
+	beq patch09_3,p_keyboard_idle
+	beq patch09_4,p_keyboard_start_work
+	beq patch09_5,p_keyboard_le
+	beq patch09_6,p_keyboard_keyscan
+	beq patch0a_0,p_keyboard_key_process
+	beq patch0a_2,p_keyboard_keyvalue_fn_replace
+	beq patch0a_5,p_keyboard_special_key_check
+	beq patch0a_7,p_keyboard_motion
+	beq patch0b_1,p_keyboard_device_data_tpye_check	
+	beq patch0b_2,p_keyboard_before_hibernate
+	beq patch0b_3,p_keyboard_app_enter_hibernate
+	beq patch0b_4,p_keyboard_device_led_all_off
+	beq patch0b_5,p_keyboard_setgpio_hibernate
+	beq patch0c_1,p_le_parse_att
+	beq patch0d_7,p_keyboard_start_reconnect_device
+	beq patch0e_1,p_keyboard_app_enter_hibernate
+	beq patch0e_6,p_keyboard_adc_read	
+	beq patch0e_7,p_keyboard_adc_read_start
+	beq patch10_0,p_mouse_init_sunt
+	beq patch10_4,p_keyboard_app_enter_hibernate
+	beq patch13_2,p_keyboard_discover_setting_led_gpio
+	beq patch16_1,p_keyboard_init
+	beq patch18_5,p_otp_read_data
+	beq patch1a_5,p_gpio_set_wake_by_current_state
+	beq patch1b_2,p_sadc_calibration
+	beq patch1b_3,p_adc_init_data
+	beq patch1b_4,p_enable_adc
+	beq patch1b_5,p_vdd_calculate_by_mode
+	beq patch1e_6,p_ui_ipc_send_event
+	beq patch1f_2,p_check_51cmd_once_continue
+	branch assert
+
+pf_patch_ext:
+	beq patch22_4,p_le_slave_match
+	beq patch23_2,p_le_got_first_packet
+	beq patch24_5,p_le_rx_dec
+	beq patch24_6,p_le_rx_nopayload
+	beq patch29_4,p_le_adv_not_match	
+	beq patch29_5,p_le_init_adv
+	rtneq patch3f_7
+	branch assert
+
+
+
+p_soft_reset:
+	nbranch p_soft_reset_next,wake
+	until null,lpo_edge
+	until null,lpo_edge
+p_soft_reset_next:	
+	call mouse_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag_new
+	branch soft_reset+1,blank
+	jam 0,mem_power_on_flag_new
+	fetch 1,mem_config_select_device_button_gpio
+	beq UI_BUTTON_GPIO_DISABLE,soft_reset+1
+	copy pdata,queue
+	fetch 4,mem_saved_gpio_in
+	qisolate0 pdata					// bt button gpio num
+	call keyboard_pb_set,true
+	branch soft_reset+1
+
+p_keyboard_adc_read:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	call p_keyboard_adc_gpio_set
+	branch mouse_adc_read+4
+
+p_keyboard_adc_gpio_set:
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetch 1,mem_adc_channel
+	call p_adc_channel_set_gpio	
+	copy temp,pdata
+	store 1,mem_adc_channel_gpio
+	set1 GPIO_ACTIVE_BIT,pdata
+	arg gpcfg_input,temp
+	branch gpio_config_function	
+	
+p_adc_channel_set_gpio:
+	arg 18,temp 
+	rtneq 0x6
+	arg 10,temp 	
+	rtneq 0x7
+	arg 9,temp 	
+	rtneq 0x8
+	arg 12,temp 	
+	rtneq 0x9
+	arg 6,temp 	
+	rtneq 0xa
+	arg 20,temp 	
+	rtneq 0xb
+	arg 21,temp 	
+	rtneq 0xc
+	arg 22,temp 	
+	rtneq 0xd
+	arg 13,temp 	
+//	rtnne 0xe
+	rtn
+	
+p_main_loop:
+	call sp_calc_sequence_256
+	call sp_calc_sequence_256_check
+	call kscan_dispatch
+	call le_advertising_dispatch
+	call idle_dispatch
+	call app_process_idle
+	call connection_dispatch
+	call g24_dispatch
+	call lpm_dispatch
+	branch p_main_loop
+p_shutdown_radio:
+	jam 0,0x8900
+	branch shutdown_radio+1
+p_set_sync_on:
+	jam 0x60,0x8a0f 
+	jam 0xaa,0x8a10 
+	jam 0x7a,0x8a12 
+	jam 0x00,0x8a25 
+	jam 0x00,0x8a26 
+	nop 60
+	jam 0x20,0x8a20 
+	jam 0xf5,0x8a23 
+	jam 0x12,0x8a24 
+	jam 0x10,0x8a24 
+	nop 60
+	jam 0x60,0x8a12 
+	jam 0xdd,0x8a23 
+	rtn
+
+p_initialize_radio_cont:
+	jam 0,mem_le_testtype
+	jam 0,mem_cmd_le_create_conn
+	until null,lpo_edge
+	
+	jam 0x0d,0x8946
+	jam 0x10,0x896f
+	jam 0xcd,0x8a13
+	jam 0x10,0x8a06
+	jam 0x4a,0x8a84
+	jam 0x40,0x8a85
+	jam 0xfe,0x8a16
+	call p_set_otp_config
+//	branch initialize_radio_cont+1
+	//fetch 1,mem_wdt_always_work
+	call wdt_set_disable
+
+	until null,lpo_edge
+	jam 0x5f,0x813b 
+	until null,lpo_edge
+	jam 0x88,0x813c
+	until null,lpo_edge
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,p_initialize_radio_16m
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x04,pdata
+	store 1,0x8a02
+	jam 0x01,0x890f
+	jam 0x24,0x8a80
+	jam 0x62,0x8a81
+	setarg 0xe61212
+	store 3,0x8a73	
+p_initialize_radio2:
+	jam 0x60,0x8a86
+	jam 0x3b,0x8a8b 
+	call p_dpll_on
+	jam 0,core_config
+	jam CLKSEL_DPLL,core_clksel
+	setarg 0x557474
+	store 3,0x8968
+	jam 0x6e,0x8960
+	call p_rx_dcoc
+	call p_rfpll_aac_ghpc
+	call p_set_xtal_cap
+	jam SYSTEM_CLK_12M,mem_system_clk
+	branch sadc_calibration
+//	branch p_dpll_ring_ibias_calc
+	
+p_set_xtal_cap:
+	rtn wake
+	until null,lpo_edge
+	fetch 1,mem_xtal_c_sel
+	store 1,core_xtal_cap
+	until null,lpo_edge
+	rtn
+	
+p_dpll_on:
+	fetch 1,mem_fcomp_div
+	beq XTAL_24M,p_dpll_on_24m
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x06,pdata
+	store 1,0x8a02
+	jam 0xe0,0x8a05
+p_dpll_on_24m:	
+	jam 0xd8,0x8a00
+	nop 60
+	jam 0xa0,0x8a01
+	jam 0xdf,0x8a00
+	jam 0xfa,0x8a01
+	nop 20
+	jam 0x9f,0x8a00
+	rtn
+	
+p_initialize_radio_16m:
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x06,pdata
+	store 1,0x8a02
+	jam 0x00,0x890f
+	jam 0x23,0x8a80
+	jam 0xb0,0x8a81
+	setarg 0xe40909
+	store 3,0x8a73
+	jam 0x2a,0x8a76
+	jam 0x04,0x8902	
+	branch p_initialize_radio2
+
+p_set_otp_config:
+	branch p_set_otp_config_wake,wake
+	fetch 4,mem_otp_core_ldo
+	rtn blank
+	until null,lpo_edge
+	fetch 1,0x8136
+	and pdata,0xf0,pdata
+	fetcht 1,mem_otp_core_ldo
+	ior temp,pdata
+	increase -3,pdata
+	store 1,0x8136 
+	until null,lpo_edge
+
+	fetch 1,0x8138
+	and pdata,0x7,pdata
+	fetcht 1,mem_otp_verf_bg
+	lshift3 temp,temp
+	ior temp,pdata
+	store 1,0x8138 
+	until null,lpo_edge
+
+p_set_otp_config2:
+	fetch 1,0x8acb
+	and pdata,0xf0,pdata
+	fetcht 1,mem_otp_charge_pump
+	storet 1,mem_otp_charge_pump_x
+	ior temp,pdata
+	store 1,0x8acb
+
+	fetch 1,mem_otp_dpll_ibais
+	store 1,mem_otp_dpll_ibais_x
+	isolate1 3,pdata
+	fetch 1,0x8a06
+	setflag true,7,pdata
+	store 1,0x8a06
+	
+	fetch 1,mem_otp_dpll_ibais
+	and pdata,7,temp
+	lshift4 temp,temp
+	lshift temp,temp
+	storet 1,mem_ring_ibias_trim
+	fetch 1,0x8a02
+	and pdata,0x1f,pdata
+	ior temp,pdata
+	store 1,0x8a02
+	rtn
+
+p_set_otp_config_wake:
+	fetch 2,mem_otp_charge_pump_x
+	rtn blank
+	store 2,mem_otp_charge_pump
+	branch p_set_otp_config2
+
+p_rf_rx_enable:
+	call rf_rx_agc_set
+	force 8,radio_ctrl
+	force 0,radio_ctrl
+
+	setarg 0x0aaada
+	store 3,0x8a0f
+	jam 0x40,0x8a25
+	jam 0x10,0x8a26
+	nop 60
+	jam 0xfb,0x8a01
+	jam 0xff,0x8a25
+	jam 0x30,0x8a26
+	jam 0xfe,0x8a16
+	branch rf_rx_enable+14
+	
+p_txon:
+	setarg 0x0aaa7e
+	store 3,0x8a0f
+	nop 60
+	jam 0x00,0x8a25 
+	jam 0x0d,0x8a26 
+	jam 0xf6,0x8a16 
+	branch txon+7
+
+p_set_tx_power:	
+	fetch 1,mem_tx_power
+	beq TX_POWER_10DB,p_set_tx_power_10db
+	branch set_tx_power+2
+	
+p_set_tx_power_10db:
+	jam 0x25,0x8a14 
+	setarg 0xa93f3f
+	store 3,0x8a60
+	jam 0x1f,0x8a63 
+	rtn
+	
+	
+p_rx_dcoc:
+	rtn wake
+	call set_sync_on
+	arg 39,temp
+	call set_freq_rx	
+	call rf_rx_enable
+	jam 0x7f,0x8a25
+	jam 0x1a,0x8a30
+	jam 0x78,0x8a31
+	jam 0xb2,0x8a8f
+	jam 0,0x8ac2
+	jam 0,0x8ac3
+	arg 6,queue
+	call p_rx_dcoc_avg
+	isolate1 13,rega
+	call qset_start
+	isolate1 13,regb
+	call qset_p
+	arg 5,queue
+p_rx_dcoc_loop2:
+	call qset1_p
+	call qset_p
+	call p_rx_dcoc_avg
+	arg 0x8ac2,contw
+	rshift4 rega,pdata
+	call qsetxor
+	rshift4 regb,pdata
+	call qsetxor
+	increase -1,queue
+	branch p_rx_dcoc_loop2,positive
+	branch rx_dcoc_loop2+10
+
+p_rx_dcoc_avg:
+	nop 60
+	setarg mem_dcoc_buf
+	store 2,0x8982
+	setarg mem_dcoc_buf_end
+	store 2,0x8984
+	jam 0x9,0x8981
+	jam 0x3,0x8981
+	jam 0x6,0x8980	
+	nop 60
+	arg 0,rega
+	arg 0,regb
+	arg 16,loopcnt
+	arg mem_dcoc_buf,contr
+	branch rx_dcoc_loop
+
+p_rfpll_aac_ghpc:
+	rtn wake
+	branch rfpll_aac_ghpc+1
+	
+p_keyboard_clear_pdata:
+	setarg 0
+p_mouse_init_sunt:
+p_dpll_ring_ibias_calc:
+	rtn
+
+p_sadc_calibration:
+	rtn wake
+	jam 0x77,core_gpadc_ctrl
+	jam 0xc9,core_gpadc_cfg0
+	jam 0x01,core_gpadc_cfg3
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	nop 3000
+	call p_sadc_read
+	jam 0xc1,core_gpadc_cfg0
+	fetchr regb,1,mem_spi_write_addr
+	arg 8,loopcnt	//rg_gpadc_sar_dat_sel c0-c7
+	call sadc_cal_read+1
+	fetch 1,mem_spi_write_addr
+	store 1,mem_adc_cal_c7
+	storer regb,1,mem_spi_write_addr
+	rtn
+
+
+p_sadc_read:
+	jam 0x03,core_sadc_ctrl
+p_sadc_read_wait:
+	fetch 1,core_perf_status
+	bbit0 SARADC_DONE,p_sadc_read_wait
+	fetcht 2,core_sadc_data
+	storet 2,mem_adc_current_value
+	jam 0x00,core_sadc_ctrl
+	rtn
+	
+
+p_set_lemode:
+	jam 0x11,0x8a82
+	jam 0x12,0x8a8d
+	jam 0x0a,0x8a8e
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,p_set_lemode_2m_16m
+	setarg 0x5762
+	store 2,0x8907
+p_set_lemode_2m:
+	jam 3,0x8901
+	jam 3,0x8930
+	rtnmark1 mark_ble_2M
+	jam 1,0x8901
+	jam 0x07,0x8a82
+	jam 0x44,0x8a8d
+	jam 0x0a,0x8a8e
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,p_set_lemode_1m_16m
+	setarg 0x2bb1
+	store 2,0x8907
+p_set_lemode_1m:
+	rtnmark0 mark_ble_lr
+	jam 0x24,0x8930
+	jam 5,0x8901
+	rtn
+
+p_set_lemode_1m_16m:
+	setarg 0x4189
+	store 2,0x8907
+	branch p_set_lemode_1m
+
+p_set_lemode_2m_16m:
+	setarg 0x8312
+	store 2,0x8907
+	branch p_set_lemode_2m
+
+p_otp_read_data:
+	call enable_otp_read			//read enable
+	call otp_read_data+1
+	branch otp_disable_chgpump	//disable otp
+
+p_keyboard_load_otp_info_check:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_load_otp_device_info_g24_init
+	beq MODE_BT_DEVICE1,p_keyboard_load_otp_device_info_ble_init	
+	rtn	
+
+p_keyboard_load_otp_device_info_g24_init:
+	arg 80,regd
+	setarg 0x400
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fbc,pdata
+	arg 4,temp
+	arg 4,rege
+	branch p_keyboard_load_otp_device_info
+	
+p_keyboard_load_otp_device_info_ble_init:
+	arg 320,regd
+	setarg 0x400
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fb0,pdata
+	arg 16,temp
+	arg 16,rege
+	branch p_keyboard_load_otp_device_info
+	
+p_keyboard_load_otp_device_info:
+	store 2,mem_pdatatemp+2
+	storet 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	arg 0,regc
+p_keyboard_load_otp_info_check_page_loop:
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch p_keyboard_load_otp_info_check_first_time,blank
+	increase 1,regc
+	fetch 2,mem_pdatatemp
+	isub regc,null
+//	nbranch p_keyboard_load_otp_info_check_overwise,positive
+	fetch 2,mem_pdatatemp+2
+	isub regd,pdata
+	store 2,mem_pdatatemp+2
+	branch p_keyboard_load_otp_info_check_page_loop
+p_keyboard_load_otp_info_check_first_time:
+	sub regc,0,null
+	branch keyboard_load_otp_info_check_first_time_process,zero
+p_keyboard_load_otp_info_check_first_time_loop_init:
+	fetch 2,mem_pdatatemp+2
+	iadd regd,pdata
+p_keyboard_load_otp_info_check_first_time_loop:	
+	isub rege,pdata
+	store 2,mem_pdatatemp+2
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch p_keyboard_load_otp_info_check_offset_process,blank
+	fetch 2,mem_pdatatemp+2
+	branch p_keyboard_load_otp_info_check_first_time_loop
+
+p_keyboard_load_otp_info_check_offset_process:
+	setarg 0x1fc0
+	fetcht 2,mem_pdatatemp+2
+	isub temp,pdata
+	store 2,mem_otp_read_retention_offset		//store the next field offset ,convenient for next storage
+	copy temp,pdata
+	iadd rege,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_info_check_offset_process_g24
+	beq MODE_BT_DEVICE1,p_keyboard_load_otp_info_check_offset_process_ble
+	rtn
+
+p_keyboard_load_otp_info_check_offset_process_ble:
+	fetch 1,mem_otp_read_retention_memory
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+	store 1,mem_kb_computer_system
+	fetch 1,mem_otp_read_retention_memory+1
+	store 1,mem_device1_type
+	fetch 6,mem_otp_read_retention_memory+2
+	store 6,mem_device1_addr
+	fetch 6,mem_otp_read_retention_memory+8
+	store 6,mem_device1_locall_addr
+	fetcht 2,mem_otp_read_retention_memory+14
+	random pdata
+	iadd temp,pdata
+	store 2,mem_random_addr_increase_count
+	branch p_keyboard_select_reconn_device
+
+p_keyboard_store_otp_device_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,p_keyboard_store_otp_device_info_ble
+	rtn	
+
+p_keyboard_store_otp_device_info_g24:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fc0
+	branch keyboard_store_otp_device_info_g24+2
+
+p_keyboard_store_otp_device_info_ble:
+	jam 1,mem_otp_store_device_info_flag
+	fetch 1,mem_otp_store_system_flag
+	rtn blank
+p_keyboard_wirte_otp_ble:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fc0
+	isub temp,pdata
+	store 2,mem_pdatatemp
+
+	copy pdata,regb
+	arg mem_kb_computer_system,rega
+	arg 1,loopcnt
+	call otp_write   	
+
+	fetch 2,mem_pdatatemp
+	add pdata,1,regb
+	arg mem_device1_type,rega
+	arg 13,loopcnt
+	call otp_write   
+
+	fetch 2,mem_pdatatemp
+	add pdata,14,regb
+	arg mem_random_addr_increase_count,rega
+	arg 2,loopcnt
+	call otp_write  
+	
+	fetcht 2,mem_otp_read_retention_offset
+	increase 16,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn	
+
+p_keyboard_store_device_info:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_OTP,p_keyboard_store_otp_device_info
+	branch keyboard_store_device_info+2
+
+
+
+p_keyboard_priority_bb_event:
+	copy regc,pdata
+	beq BT_EVT_LE_DISCONNECTED,p_keyboard_le_bb_disconnected
+	branch keyboard_priority_bb_event+2
+
+
+p_keyboard_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_keyboard_le_send_conn_param_update
+	store 1,mem_keyboard_le_send_conn_param_update_timer
+	store 1,mem_mouse_le_bb_connected_flag	
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	call le_clr_config_more_data
+	jam 0,mem_ltk_exists
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,p_keyboard4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_start_discovery
+p_keyboard4_0_event_bb_disconn:
+	call mouse_le_clean_connect_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch p_keyboard_app_enter_hibernate
+
+
+
+
+p_keyboard_bb_event_timer:
+	call mouse_adc_read
+	call p_keyboard_low_voltage_led_timer
+
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	call p_keyboard_24g_repeat_send_data
+	call keyboard_24g_led_status_get_timer
+	
+	//led
+	call p_keyboard_num_capslock_led_on_timer
+	call p_keyboard_device_poweron_timer
+	call p_keyboard_device_pair_discovery_led_timer
+	call p_keyboard_mode_led_timer
+	call keyboard_check_discovery_timeout_timer
+	call keyboard_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call keyboard_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	call keyboard_le_send_conn_param_update_timer	
+	call keyboard_le_auto_recognize_timer
+
+	call p_keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call mouse_current_mult_update_timer
+	call keyboard_store_information_delay_timer
+
+	call p_keyboard_long_press_timer
+	call keyboard_commbination_delay_release_timer
+	branch p_keyboard_check_no_data_timeout_timer
+
+p_keyboard_adc_read_start:
+	call p_keyboard_low_voltage_param_set
+	call enable_adc
+	call vdd_calculate_by_mode
+	div pdata,10
+	call get_div_result
+	store 2,mem_mouse_vdd_now_vol
+	arg mem_mouse_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down
+	bbit0 0,p_keyboard_adc_no_low_voltage
+	jam 1,mem_mouse_adc_last_low_voltage_flag
+	branch mouse_adc_low_voltage
+
+p_keyboard_adc_no_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	call mouse_disable_function_flag
+	jam 12,mem_keyboard_adc_low_volatage_led_timer_count
+	branch mouse_adc_no_low_voltage+3
+
+
+p_keyboard_low_voltage_param_set:
+	call mouse_adc_gpio_set_before_hibernate
+p_keyboard_low_voltage_param_set_backlight_off:	
+	setarg 0x560094		// 0x0094--1.5V  0x0056--0.9V  0x0060--1.0V  0x006d--1.1V
+	store 3,mem_mouse_vdd_full_vol
+	setarg 0x006d00
+	istore 3,contw
+	fetch 1,mem_mouse_adc_last_low_voltage_flag
+	branch p_keyboard_low_voltage_param_set_backligh_off_1V0,blank
+	jam 0x73,mem_mouse_vdd_low_vol
+	rtn
+p_keyboard_low_voltage_param_set_backligh_off_1V0:
+	jam 0x6d,mem_mouse_vdd_low_vol
+	rtn	
+
+p_keyboard_24g_repeat_send_data:
+	fetch 1,mem_same_keyvalue_timerout_flag
+	nrtn blank
+	branch keyboard_24g_repeat_send_data
+
+p_keyboard_num_capslock_led_on_timer:
+	fetch 2,mem_mouse_no_data_timer
+	rtn blank
+	fetch 2,mem_mouse_no_data_timeout
+	fetcht 2,mem_mouse_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_caps_led_on_timer
+	isub temp,pdata
+	branch p_keyboard_num_cap_led_on,positive
+	call p_keyboard_numlock_led_off
+	call p_keyboard_scrolllock_led_off
+	branch keyboard_capslock_led_off
+p_keyboard_num_cap_led_on:
+	call p_keyboard_numlock_led_check_on
+	call p_keyboard_scrolllock_led_check_on
+	branch keyboard_capslock_led_check_on
+p_keyboard_numlock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_NUMLOCK,p_keyboard_numlock_led_off
+	fetcht 1,mem_keyboard_num_led_gpio
+	branch gpio_out_active
+p_keyboard_numlock_led_off:
+	fetcht 1,mem_keyboard_num_led_gpio
+	branch gpio_out_inactive	
+p_keyboard_scrolllock_led_off:
+	fetch 1,mem_keyboard_device_poweron_timer_count
+	nrtn blank
+	fetch 1,mem_adc_power_flag
+	rtnbit1 0
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_inactive
+
+p_keyboard_scrolllock_led_check_on:
+	fetch 1,mem_keyboard_device_poweron_timer_count
+	nrtn blank
+	fetch 1,mem_adc_power_flag
+	rtnbit1 0
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_SCROLLLOCK,p_keyboard_scrolllock_led_off
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_active
+
+
+p_keyboard_usb_led_check:
+	fetch 1,mem_24g_led_status
+	store 1,mem_keyboard_led_status
+	branch p_keyboard_num_cap_led_on
+
+p_keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer_count
+	branch p_keyboard_device_led_off,blank
+	branch p_keyboard_device_led_on
+
+p_keyboard_device_led_off:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_device_24g_led_off
+	beq MODE_BT_DEVICE1,p_keyboard_device_bt1_led_off
+	beq MODE_BT_DEVICE2,p_keyboard_device_bt2_led_off
+	beq MODE_BT_DEVICE3,p_keyboard_device_bt3_led_off
+	rtn
+
+p_keyboard_device_led_on:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_device_24g_led_on
+	beq MODE_BT_DEVICE1,p_keyboard_device_bt1_led_on
+	beq MODE_BT_DEVICE2,p_keyboard_device_bt2_led_on
+	beq MODE_BT_DEVICE3,p_keyboard_device_bt3_led_on
+	rtn	
+	
+p_keyboard_device_24g_led_off:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_inactive
+
+p_keyboard_device_bt1_led_off:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_inactive
+	
+p_keyboard_device_bt2_led_off:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_inactive
+	
+p_keyboard_device_bt3_led_off:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_inactive	
+
+p_keyboard_device_24g_led_on:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_active
+
+p_keyboard_device_bt1_led_on:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_active
+	
+p_keyboard_device_bt2_led_on:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_active
+	
+p_keyboard_device_bt3_led_on:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_active	
+
+p_keyboard_mode_led_timer:
+	fetch 2,mem_mouse_no_data_timer
+	rtn blank
+	fetch 1,mem_keyboard_mode_led_on_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_mode_led_on_timer
+	bbit1 0,p_keyboard_device_led_on
+	branch p_keyboard_device_led_off
+
+p_keyboard_device_pair_discovery_led_timer:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_device_pair_led
+	fetch 2,mem_mouse_discovery_timer
+	rtn blank
+	branch p_keyboard_device_pair_led+2
+
+p_keyboard_device_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	rtn blank
+	fetch 1,mem_keyboard_pair_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_pair_led_flag
+	bbit1 2,p_keyboard_device_led_on
+	branch p_keyboard_device_led_off
+
+
+p_keyboard_low_voltage_led_timer:
+	jam 0,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_keyboard_device_poweron_timer_count
+	nrtn blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOW_LED
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	bbit1 MOUSE_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,p_keyboard_low_voltage_led_blink_new_data
+	fetch 1,mem_keyboard_adc_low_volatage_led_timer_count
+	increase 1,pdata
+	store 1,mem_keyboard_adc_low_volatage_led_timer_count
+	sub pdata,20,null
+	ncall p_keyboard_adc_low_volatage_led_timer_count_clean,positive
+	beq 2,p_keyboard_low_voltage_led_on
+	beq 4,p_keyboard_low_voltage_led_off
+	beq 6,p_keyboard_low_voltage_led_on
+	beq 8,p_keyboard_low_voltage_led_off
+	rtn
+p_keyboard_adc_low_volatage_led_timer_count_clean:
+	jam 1,mem_keyboard_adc_low_volatage_led_timer_count
+	branch p_keyboard_low_voltage_led_off
+p_keyboard_low_voltage_led_on:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_active
+p_keyboard_low_voltage_led_off:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_inactive	
+
+p_keyboard_low_voltage_led_blink_new_data:
+	fetch 2,mem_mouse_no_data_timeout
+	fetcht 2,mem_mouse_no_data_timer
+	isub temp,temp
+	fetch 2,mem_adc_low_volatage_led_blink_timer
+	isub temp,null
+	nbranch p_keyboard_low_voltage_led_off,positive
+	jam 1,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 1,mem_keyboard_low_volatage_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_low_volatage_led_flag
+	bbit1 1,p_keyboard_low_voltage_led_on
+	branch p_keyboard_low_voltage_led_off
+
+p_keyboard_low_voltage_led_no_enter_lpm:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOW_LED
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	bbit1 MOUSE_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,p_mouse_low_voltage_led_no_enter_lpm_blink
+	fetch 1,mem_keyboard_adc_low_volatage_led_timer_count
+	sub pdata,10,null
+	branch mouse_lpm_mode_clear,positive
+	branch mouse_low_voltage_led_no_enter_lpm_next
+
+p_mouse_low_voltage_led_no_enter_lpm_blink:
+	fetch 1,mem_keyboard_low_volatage_led_blink_new_data_enable
+	nbranch mouse_lpm_mode_clear,blank
+	branch mouse_low_voltage_led_no_enter_lpm_next
+
+
+
+
+p_keyboard_discover_setting_led_gpio:
+	rtn
+
+p_keyboard_long_press_timer:
+	arg mem_same_keyvalue_timer,regc
+	arg p_keyboard_long_press_timerout,regb
+	branch timer_single_step_2B
+
+p_keyboard_long_press_timerout:
+	jam 1,mem_same_keyvalue_timerout_flag	
+	branch keyboard_app_enter_hibernate
+	
+
+p_keyboard_check_no_data_timeout_timer:
+	arg mem_mouse_no_data_timer,regc
+	arg keyboard_check_no_data_timeout,regb
+	branch timer_single_step_2B
+
+
+p_keyboard_key_press_timer:
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,p_keyboard_device_select_bt_press_timer
+	branch p_keyboard_device_select_bt_nopress_timer
+
+
+p_keyboard_device_select_bt_press_timer:
+	fetch 1,mem_keyboard_switch_bt_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_bt_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_bt_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	branch keyboard_long_button_bt_discovery+3
+
+p_keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+	rtn
+
+
+p_keyboard_idle:
+	call p_keyboard_low_voltage_led_no_enter_lpm
+	branch ui_check_paring_button
+
+p_keyboard_start_work:
+p_keyboard_start_work_adc_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_ADC,p_keyboard_start_work_next
+	call mouse_adc_gpio_set
+	call p_keyboard_low_voltage_param_set
+	call enable_adc
+	call vdd_calculate_by_mode
+	div pdata,10
+	call get_div_result
+	store 2,mem_mouse_vdd_now_vol
+	fetch 2,mem_mouse_vdd_empty_vol
+	div pdata,2
+	call get_div_result
+	fetcht 2,mem_mouse_vdd_now_vol
+	isub temp,null
+	branch p_keyboard_start_work_adc_check,positive // now vol < empty vol/2  check again
+	arg mem_mouse_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down	
+p_keyboard_start_work_next:
+	fetch 1,mem_keyboard_pairing_type
+	call keyboard_enable_bt_button_pairing,blank
+	fetch 1,mem_keyboard_bt_button_flag
+	nrtn blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_reconn_general_dongle
+	call mouse_bluetooth_fast_conn_disable
+p_keyboard_start_ble1_reconnect:	
+	fetch 6,mem_device1_addr
+p_keyboard_start_ble_reconnect:	
+	branch mouse_bluetooth_fast_conn_init,blank
+	branch mouse_start_reconnect_device
+
+
+
+p_keyboard_keyscan:
+	call p_keyboard_gpio_init
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value_new
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high
+//	call keyboard_clk_state_high	
+	call keyboard_clk_input	
+p_keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,p_keyboard_keyscan_reset_exmcu 				// 953us reset exmcu
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch p_keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+p_keyboard_keyscan_wait_wake_next:	
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu clk done
+	call gpio_get_bit
+	branch p_keyboard_keyscan_wait_wake_next,true
+	
+	call p_keyboard_keyscan_get_exmcu_value
+	call p_keyboard_keyscan_get_mcu_value
+	call keyboard_clk_input
+	call keyboard_stb_state_high							// exmcu sleep
+p_keyboard_keyscan_copy_value:
+	fetch 2,mem_kb_excol_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_compare_col_excol_gpio_loop:		// loop 12 times
+	ifetcht 1,regb
+	fetch 2,mem_kb_col_ptr
+	copy pdata,rega
+	copy rega,regc
+	arg 20,loopcnt
+p_keyboard_compare_col_gpio_loop:
+	ifetch 1,rega
+	isub temp,null
+	branch p_keyboard_copy_value_exmcu_to_mcu,zero
+	increase 1,rega
+	loop p_keyboard_compare_col_gpio_loop
+p_keyboard_compare_col_excol_gpio_loop_next:	
+	increase 1,regb
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,11,null
+	branch p_keyboard_compare_col_excol_gpio_loop,positive
+	call p_keyboard_gpio_pu_idle
+	branch p_keyboard_key_row_init
+
+	
+p_keyboard_copy_value_exmcu_to_mcu:
+	fetch 2,mem_keyscan_value_ptr
+	copy pdata,contw
+	copy rega,pdata	
+	isub regc,pdata 
+	iadd contw,contw							// offset = rega-regc
+	fetch 2,mem_keyscan_exmcu_value_ptr
+	copy pdata,regc
+	fetch 1,mem_keyscan_col_loop_count
+	iadd regc,regc	
+	ifetch 1, regc								// offset = mem_keyscan_col_loop_count
+	istore 1,contw
+	branch p_keyboard_compare_col_excol_gpio_loop_next
+
+p_keyboard_keyscan_get_exmcu_value:
+	jam 0,mem_keyscan_exmcu_reset_count
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_keyscan_exmcu_start_loop:	// clk:0 1 0 1 0 1 0 1 0 1 0 1
+	call keyboard_clk_state_low
+	call p_keyboard_keyscan_exmcu_get_col_value
+	call keyboard_clk_state_high
+	call p_keyboard_keyscan_exmcu_get_col_value
+	sub pdata,11,null
+	branch p_keyboard_keyscan_exmcu_start_loop,positive
+	branch keyboard_clk_state_low
+
+p_keyboard_keyscan_reset_exmcu:
+	branch p_keyboard_keyscan
+
+
+
+p_keyboard_keyscan_exmcu_get_col_value:
+	jam 0,mem_keyscan_value_temp
+	call p_keyboard_keyscan_get_col_value
+	fetch 2,mem_keyscan_exmcu_value_ptr
+	branch keyboard_keyscan_value_store
+
+p_keyboard_keyscan_get_col_value:
+	nop 120
+	branch keyboard_keyscan_get_col_value
+
+p_keyboard_keyscan_get_mcu_value:
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_keyscan_mcu_start:		// loop 20 times
+	jam 0,mem_keyscan_value_temp
+	ifetcht 1,regb
+	isolate1 7,temp								// exmcu gpio
+	branch p_keyboard_keyscan_mcu_start_loop,true
+	call gpio_out_active
+	call p_keyboard_keyscan_get_col_value
+	ifetcht 1,regb
+	call gpio_out_inactive
+	ifetcht 1,regb
+	call keyboard_gpio_config_input_pu
+p_keyboard_keyscan_mcu_start_loop:
+	increase 1,regb
+	fetch 2,mem_keyscan_value_ptr	
+	call keyboard_keyscan_value_store
+	sub pdata,19,null						//sub pdata,19,null
+	branch p_keyboard_keyscan_mcu_start,positive
+	rtn	
+
+p_keyboard_key_process:
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_check,regb
+	arg 20,loopcnt
+	call string_compare
+	nbranch keyboard_press_change_or_no_key,zero	
+	call p_keyboard_keyscan_value_current_zero_check
+	call keyboard_press_change_or_no_key,blank
+
+	call keyboard_ghost_key_check
+	fetch 1,mem_mouse_ghost_flag
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_PRESS
+	rtneq CAMMBINATION_KEY_HOLD
+	rtneq CAMMBINATION_KEY_WAIT_RELEASE
+
+	// keyvalue get from map,and in or out process
+	jam 0,mem_keyscan_col_loop_count
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_old,regb
+p_keyboard_keyvalue_process:		// loop 20 times
+	ifetcht 1,rega
+	ifetch 1,regb
+	ixor  temp,pdata
+	branch p_keyboard_keyvalue_process_loop,blank
+	store 1,mem_keyscan_value_temp
+	storet 1,mem_keyboard_press_flag_temp
+	istoret 1,regb
+	jam 1,mem_keyboard_data_change_flag
+	jam 0,mem_keyboard_keyvalue_bit_loop_count
+p_keyboard_keyvalue_change:			// loop 8 times
+	fetch 1,mem_keyscan_value_temp
+	bbit0 0,p_keyboard_keyvalue_change_loop
+	fetch 1,mem_keyscan_col_loop_count
+	mul32 pdata,8,pdata
+	fetcht 1,mem_keyboard_keyvalue_bit_loop_count
+	iadd temp,pdata									// map offset
+	arg mem_keyboard_keyvalue_map_new,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,mem_keyboard_keyvalue_temp				// keyvalue
+	call keyboard_keyvalue_fn_replace
+	call p_keyboard_keyvalue_commbination_replace
+	call p_keyboard_keyvalue_in_out
+p_keyboard_keyvalue_change_loop:
+	fetch 1,mem_keyscan_value_temp
+	rshift pdata,pdata
+	store 1,mem_keyscan_value_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rshift pdata,pdata
+	store 1,mem_keyboard_press_flag_temp
+	fetch 1,mem_keyboard_keyvalue_bit_loop_count
+	increase 1,pdata
+	store 1,mem_keyboard_keyvalue_bit_loop_count
+	sub pdata,7,null
+	branch p_keyboard_keyvalue_change,positive
+p_keyboard_keyvalue_process_loop:
+	increase 1,rega
+	increase 1,regb	
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,19,null
+	branch p_keyboard_keyvalue_process,positive
+	rtn
+
+p_keyboard_keyscan_value_current_zero_check:
+	fetch 8,mem_keyscan_value_current
+	nrtn blank
+	fetch 8,mem_keyscan_value_current+8
+	nrtn blank
+	fetch 4,mem_keyscan_value_current+16
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_NULL
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	rtn
+
+p_keyboard_keyvalue_commbination_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_SEARCH,p_keyboard_commbination_search
+	branch keyboard_keyvalue_commbination_replace+2
+
+p_keyboard_commbination_search:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_MAC,p_keyboard_commbination_mac_search
+	setarg HID_KEY_AC_SEARCH
+	branch keyboard_keyvalue_store_temp
+p_keyboard_commbination_mac_search:	
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress	
+
+p_keyboard_keyvalue_in_out:
+	fetch 1,mem_keyboard_keyvalue_temp
+	arg HID_KEY_LEFT_CTRL,temp
+	isub temp,null
+	nbranch p_keyboard_keyvalue_standard,positive		// value < 0xe0
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	nbranch p_keyboard_keyvalue_consumer,positive		// value  > 0xe7
+	and_into 0x07,pdata
+	copy pdata,queue
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,p_keyboard_keyvalue_control_key_in
+p_keyboard_keyvalue_control_key_out:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset0 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+p_keyboard_keyvalue_control_key_in:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset1 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+
+p_keyboard_keyvalue_standard:
+	jam 0,mem_keyboard_keyvalue_buffer+8
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,p_keyboard_keyvalue_standard_in
+p_keyboard_keyvalue_standard_out:	
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+p_keyboard_keyvalue_standard_out_loop:
+	ifetch 1,contr
+	isub temp,null
+	nbranch p_keyboard_keyvalue_standard_out_next,zero
+	ifetch 1,contr
+	increase -2,contr
+	istore 1,contr
+	rtn blank
+	increase 1,contr
+	istoret 1,contr
+p_keyboard_keyvalue_standard_out_next:	
+	loop p_keyboard_keyvalue_standard_out_loop
+	rtn
+	
+p_keyboard_keyvalue_standard_in:
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+p_keyboard_keyvalue_standard_in_loop:
+	ifetch 1,contr
+	branch p_keyboard_keyvalue_standard_in_data,blank
+	isub temp,null
+	rtn zero
+	loop p_keyboard_keyvalue_standard_in_loop
+	rtn
+p_keyboard_keyvalue_standard_in_data:
+	increase -1,contr
+	istoret 1,contr
+	rtn
+
+p_keyboard_keyvalue_consumer:
+	jam KEYBOARD_CONSUMER_KEY_PRESS,mem_keyboard_consumer_key_status
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate0 0,pdata
+	call p_keyboard_consumer_key_release,true
+	branch p_keyboard_keyvalue_standard
+	
+p_keyboard_consumer_key_release:
+	jam KEYBOARD_CONSUMER_KEY_RELEASE,mem_keyboard_consumer_key_status
+	rtn
+
+p_keyboard_keyvalue_fn_replace:
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate1 0,pdata
+	call keyboard_commbination_delay_release_clear,true
+	fetch 1,mem_keyboard_fn_flag
+	ncall p_keyboard_keyvalue_fn_replace_press,blank
+	branch keyboard_keyvalue_fn_replace+5
+	
+p_keyboard_keyvalue_fn_replace_press:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_Q,p_keyboard_keyvalue_os_andriod
+	beq HID_KEY_W,p_keyboard_keyvalue_os_windows
+	beq HID_KEY_E,p_keyboard_keyvalue_os_ios
+	branch keyboard_keyvalue_fn_replace_press+1
+
+	
+p_keyboard_keyvalue_os_andriod:
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit0 0,p_keyboard_keyvalue_clear_temp_end
+	jam SYSTEM_OS_ANDRIOD,mem_kb_computer_system
+p_keyboard_keyvalue_clear_temp:
+	jam 6,mem_keyboard_mode_led_on_timer
+p_keyboard_keyvalue_clear_temp_end:	
+	setarg 0
+	branch keyboard_keyvalue_store_temp
+
+p_keyboard_keyvalue_os_windows:
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit0 0,p_keyboard_keyvalue_clear_temp_end
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	branch p_keyboard_keyvalue_clear_temp
+
+p_keyboard_keyvalue_os_ios:
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit0 0,p_keyboard_keyvalue_clear_temp_end
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+	branch p_keyboard_keyvalue_clear_temp
+
+p_keyboard_special_key_check:
+//	call p_keyboard_device_select
+	branch keyboard_special_key_check+1
+
+
+
+p_keyboard_motion:
+	disable user
+	jam 0,mem_customer_key
+	jam 0,mem_customer_data_trigger
+	jam 0,mem_customer_data_trigger_last
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_PRESS,keyboard_commbination_key_press_process
+	beq CAMMBINATION_KEY_HOLD,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_WAIT_RELEASE,keyboard_commbination_key_wait_release_process
+	beq CAMMBINATION_KEY_NULL,keyboard_commbination_key_null_process
+	fetch 1,mem_keyboard_data_change_flag
+	branch p_keyboard_no_key_press,blank
+	branch keyboard_motion+13
+
+p_keyboard_no_key_press:
+	fetch 1,mem_device_flag
+	rtnne MODE_24G_DEVICE
+	branch keyboard_no_key_press+2
+
+p_keyboard_device_data_tpye_check:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,p_keyboard_device_data_tpye_check_next
+	jam 0,mem_24g_repeat_send_flag
+	fetch 2,mem_keyboard_tx_data
+	ncall keyboard_set_repeat_send_flag,blank
+	fetch 6,mem_keyboard_tx_data+3
+	ncall keyboard_set_repeat_send_flag,blank
+
+p_keyboard_device_data_tpye_check_next:
+	fetch 1,mem_keyboard_tx_data
+	beq HID_REPORTID_KEY_STANDARD,p_keyboard_standard_data_send
+	branch keyboard_device_data_tpye_check_next+1
+
+p_keyboard_standard_data_send:
+	jam DEVICE_DATA_TPYE_STANDARD_KEYBOARD,mem_keyboard_data_send_flag
+	call keyboard_clear_key_data
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_standard_data_send_end
+	branch keyboard_standard_data_send+4
+
+
+p_keyboard_cb_fuction:
+	setarg p_keyboard_24g_before_lpm_sleep
+	store 2,mem_cb_before_lpm_sleep
+	setarg keyboard_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg keyboard_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	setarg p_keyboard_lpm_before_common
+	store 2,mem_cb_24g_lpm_before
+	setarg p_keyboard_le
+	store 2,mem_cb_le_process
+	setarg p_keyboard_process_lpm_before
+	store 2,mem_cb_before_lpm
+	
+	setarg keyboard_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg keyboard_idle
+	store 2,mem_cb_idle_process
+	setarg keyboard_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg mouse_le_bb_event_connect_complete
+	store 2,mem_cb_att_write	
+	setarg keyboard_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg mouse_spi_write_flash_cb
+	store 2,mem_cb_spi_flash_write_complate
+//	setarg p_mouse_lpm_check_wake_lock
+//	store 2,mem_cb_check_wakelock
+	setarg mouse_le_transmit
+	store 2,mem_cb_ble_transmit
+	setarg mouse_set_lpm_mult
+	store 2,mem_cb_bt_set_mult
+	rtn
+
+p_keyboard_24g_before_lpm_sleep:
+	fetch 1,mem_device_flag
+	rtnne MODE_24G_DEVICE
+	branch mouse_24g_before_lpm_sleep+2
+
+p_keyboard_lpm_before_common:
+	call p_clear_wake
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_usb_level_check_gpio
+	set1 7,temp
+	call gpio_set_wake
+
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+p_keyboard_key_col_wake_init:
+	ifetcht 1,regb
+	isolate1 7,temp				// exmcu gpio
+	ncall gpio_out_active,true
+	increase 1,regb
+	loop p_keyboard_key_col_wake_init
+
+	call p_keyboard_gpio_pu_idle
+	jam 0,mem_qdec_set_flag
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+p_keyboard_key_row_wake_init:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keyboard_key_row_wake_set,zero
+	increase 1,regb
+	loop p_keyboard_key_row_wake_init
+	call p_keyboard_puchk_set_check
+	fetcht 1,mem_mouse_reuse_2ice_gpio
+	call mouse_gpio_config_input_pu
+	call mouse_gpio_set_high_impedance
+	branch mouse_adc_gpio_set_before_hibernate
+	
+p_gpio_set_wake_by_current_state:
+	sub temp,GPIO_DISABLE,null
+	rtn zero
+	set1 GPIO_ACTIVE_BIT,temp
+	call gpio_get_bit
+	nbranch p_gpio_set_low_pullup,true
+	nsetflag true,GPIO_ACTIVE_BIT,temp
+	branch gpio_set_wake
+
+
+p_gpio_set_low_pullup:
+	jam 1,mem_qdec_set_flag
+	call gpio_set_high_impedance
+	arg 6,debug
+	branch gpio_set_wake_high
+
+	
+p_clear_wake:
+	setarg 0
+	set1 21,pdata				//gpio5(ice) enable wakeup
+	store 8,mem_gpio_wakeup_cfg
+	setarg 0
+	istore 4,contw
+	rtn	
+
+p_keyboard_process_lpm_before:
+	rtnmark1 mark_24g
+	branch p_keyboard_lpm_before_common
+
+
+p_keyboard_before_hibernate:
+	jam 0xff,mem_sensor_motion_gpio
+	call disable_authrom
+	call keyboard_device_led_all_off
+	branch p_keyboard_setgpio_hibernate
+
+p_keyboard_device_led_all_off:
+	call keyboard_power_led_off	
+	call p_keyboard_device_led_off
+	call p_keyboard_numlock_led_off
+	branch keyboard_capslock_led_off
+	
+
+p_keyboard_app_enter_hibernate:
+	call p_keyboard_setgpio_hibernate
+	branch app_enter_hibernate
+
+
+p_keyboard_setgpio_hibernate:
+	call p_clear_wake
+	call keyboard_device_led_all_off
+	branch p_keyboard_lpm_before_common
+
+p_keyboard_gpio_pu_idle:
+	arg core_gpio_conf,contr
+	arg GPIO_NUMBER,loopcnt
+p_keyboard_gpio_pu_idle_loop:
+	ifetch 1,contr
+	nbranch p_keyboard_gpio_pu_idle_configured,blank
+	setarg gpcfg_pullup
+	add contr,-1,contw
+	istore 1,contw
+p_keyboard_gpio_pu_idle_configured:
+	loop p_keyboard_gpio_pu_idle_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch p_keyboard_gpio_pu_idle_loop
+
+p_keyboard_puchk_set_check:
+	fetch 1,mem_qdec_set_flag
+	branch p_keyboard_puchk_disable,blank
+	branch p_keyboard_puchk_enable
+
+
+p_keyboard_puchk_disable:
+	setarg 0x10			//bit0-1:key_delay	bit2-3:pu_delay		bit4-6:interval	bit7:enable 
+p_keyboard_puchk_set:
+	store 1,core_puwakeup
+	until null,lpo_edge
+	rtn
+
+p_keyboard_puchk_enable:
+	setarg 0x80			//bit0-1:key_delay	bit2-3:pu_delay		bit4-6:interval	bit7:enable 
+	branch p_keyboard_puchk_set
+
+
+p_lpm_dispatch:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_keyboard_fn_flag
+	nrtn blank
+	fetch 1,mem_keyboard_control_key_flag
+	nrtn blank
+	fetch 1,mem_mouse_direct_timer
+	nrtn blank
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	branch lpm_dispatch+4
+
+
+p_lpm_sleep:
+	//call xtal_fast_wake
+	fetch 2,mem_cb_before_lpm_sleep
+	call callback_func
+p_lpm_sleep_skip_cb_function:
+	fetch 4,mem_sleep_counter_all	// sleep total time, 32k unit
+	iadd temp,pdata
+	store 4,mem_sleep_counter_all
+	call p_lpm_save_context
+
+	branch lpm_sleep_skip_cb_function+4
+
+p_lpm_save_context:
+	storer mark,8,mem_saved_mark
+	arg core_gpio_conf,contr
+	arg mem_saved_gpio,contw
+	call memcpy16
+	arg core_gpio_conf_hi,contr
+	call memcpy8
+	fetch 1,core_spid_ctrl
+	store 1,mem_saved_spidctrl
+	copy temp,regb
+p_lpm_write_gpio_wakeup:		// gpio auto wakeup
+	arg 12,loopcnt
+	arg mem_gpio_wakeup_cfg,rega
+	arg core_gpio_wakeup_cfg,regc
+	until null,lpo_edge
+p_lpm_write_gpio_loop:
+	ifetch 1,rega
+	ifetcht 1,regc
+	isub temp,null
+	branch p_lpm_write_gpio_loop_next,zero
+	istore 1,regc
+	until null,lpo_edge
+p_lpm_write_gpio_loop_next:	
+	increase 1,rega
+	increase 1,regc
+	loop p_lpm_write_gpio_loop
+	copy regb,temp
+	rtn
+
+p_app_init:
+p_keyboard_init:
+	call enable_authrom
+	call p_le_exchange_hid_map
+	call p_keyboard_setting_config	
+	call p_keyboard_gpio_init
+	call p_keyboard_low_vol_mult_set
+	rtn wake
+	call p_keyboard_device_led_all_off
+	fetch 1,mem_keyboard_device_poweron_timer_count_init
+	store 1,mem_keyboard_device_poweron_timer_count
+	call keyboard_cb_fuction
+	branch keyboard_init_wireless
+
+p_keyboard_setting_config:
+	call app_param_init
+	call p_keyboard_puchk_disable
+	rtn wake
+	call g24_transmit_init
+	fetch 1,mem_device_flag
+	store 1,mem_device_flag_temp_new
+	fetch 3,mem_le_lap+3
+	store 3,mem_mouse_le_lap_temp
+	call keyboard_param_init
+	setarg mem_le_tx_buffer0_omemalloc_new
+	store 2,mem_ble_l2cap_tx_buff0_ptr
+	setarg MOUSE_BLE_L2CAP_TXBUFF_SIZE_NEW
+	store 2,mem_ble_l2cap_tx_buff_size_ptr
+	call le_set_fixed_ltk_justwork
+	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_OTP,keyboard_load_otp_info_check
+	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_check
+	rtn
+
+p_keyboard_select_reconn_device:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+	beq REC_4_MODE,p_keyboard_load_le_device
+	rtn
+	
+p_keyboard_load_le_device:
+	ifetch 6,contr
+	store 6,mem_hci_plap
+	branch mouse_load_le_device_end+3
+
+p_keyboard_gpio_init:
+	call p_clear_wake
+	fetcht 1,mem_config_select_device_button_gpio
+	storet 1,mem_sensor_motion_gpio
+	call keyboard_gpio_config_input_pu
+	//row init
+	setarg mem_key_row_gpio
+	store 2,mem_kb_row_ptr
+	//col init
+	setarg mem_key_col_gpio
+	store 2,mem_kb_col_ptr
+	//portA and B init
+	setarg mem_key_excol_gpio
+	store 2,mem_kb_excol_ptr
+
+	call p_keyboard_key_row_init
+
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+	branch keyboard_key_cow_init
+
+p_keyboard_key_row_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+p_keyboard_key_row_init_loop:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keboard_gpio_set_high_impedance,zero
+	increase 1,regb
+	loop p_keyboard_key_row_init_loop
+	branch p_lpm_write_gpio_wakeup
+
+p_keyboard_low_vol_mult_set:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,p_keyboard_low_vol_mult_ble_set
+	call g24_interval_param_8ms
+	branch keyboard_low_vol_mult_set+2
+
+p_keyboard_low_vol_mult_ble_set:
+	setarg 160			// 320ms
+	call p_keyboard_mult_auto_get
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	setarg 80			// 100ms
+	branch p_keyboard_mult_auto_get
+
+p_keyboard_mult_auto_get:
+	fetcht 2,mem_le_interval_min
+	idiv temp
+	call get_div_result
+	store 1,mem_lpm_mult_init	
+	branch keyboard_low_vol_mult_ble_set+4
+	fetch 1,mem_mouse_current_mult_timer
+	branch mouse_current_mult_reinit,blank
+	rtn
+
+p_ui_ipc_send_event:
+	fetch 1,mem_fifo_temp
+	arg 8,loopcnt
+	arg mem_ipc_fifo_bt2c51,contr
+p_ui_ipc_fifo_check:
+	ifetcht 1,contr
+	isub temp,null
+	rtn zero
+	loop p_ui_ipc_fifo_check
+	branch ui_ipc_send_event+1
+
+p_check_51cmd_once_continue:
+	fetch 1,mem_fifo_temp
+	beq BT_CMD_STORE_RECONN_INFO_LE,p_eeprom_store_le_reconn_info
+	branch check_51cmd_once_continue+4
+
+p_eeprom_store_le_reconn_info:
+	jam REC_4_MODE,mem_record_bt_mode
+p_eeprom_store_reconn_info:
+	fetch 1,mem_device_option
+	beq DVC_OP_KEYBOARD,keyboard_store_remote_bdaddr
+	branch eeprom_store_reconn_info+1
+
+///////////////////////
+p_keyboard_start_discovery:
+	call p_keyboard_device_led_all_off+1
+	setarg 0
+	store 2,mem_otp_store_device_info_flag
+	branch keyboard_start_discovery+5
+	
+p_keyboard_stop_discovery:
+	setarg 0
+	store 2,mem_mouse_discovery_timer	
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+	jam 0,mem_mouse_bluetooth_reconnect_timeout
+	call mouse_stop_le_adv
+	fetch 1,mem_keyboard_device_poweron_timer_count
+	branch p_keyboard_device_led_all_off+1,blank
+	rtn
+
+p_keyboard_le:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,p_keyboard_le_next
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+p_keyboard_le_next:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_24G_PAIRING_FLAG,p_keyboard_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,p_keyboard_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,p_keyboard_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,p_keyboard_le_send_empty_packet
+	call keyboard_motion
+	nrtn user
+//	call mouse_current_mult_update
+	fetch 1,mem_customer_key
+	beq 1,mouse_le_send_keyboard_package_data	
+	rtn
+
+p_keyboard_le_send_empty_packet:
+	jam 0,mem_customer_data_trigger
+	branch mouse_le_send_keyboard_package_data
+
+
+p_le_check_retransmit_timesout:
+	fetch 1,mem_le_conn_rcv_new
+	arg 256,regc
+	iadd regc,pdata
+	rtn
+p_le_got_first_packet:
+	branch p_le_got_first_packet_new
+p_le_slave_match:
+	call p_le_check_retransmit
+	branch le_slave_match+1
+	
+p_le_check_retransmit:
+	fetch 1,mem_le_conn_first_rcv
+	rtn blank
+	fetch 1,mem_le_check_retransmit_flag
+	nrtn blank
+	fetcht 1,mem_le_conn_first_rcv
+	fetch 1,mem_le_conn_rcv_new
+	isub temp,null
+	ncall p_le_check_retransmit_timesout,positive	
+	isub temp,pdata
+	sub pdata,100,null
+	branch p_le_check_retransmit_count,positive
+	fetch 1,mem_le_retransmit_cnt
+	sub pdata,20,null
+	ncall p_app_ble_disconnect,positive
+	jam 1,mem_le_check_retransmit_flag
+	rtn 
+p_app_ble_disconnect:
+	jam 1,mem_le_check_retransmit_discon_flag
+	branch app_ble_disconnect
+p_le_check_retransmit_count:
+	fetcht 1,mem_le_arq
+	fetch 1,mem_le_rxbuf_data_header
+	rshift pdata,pdata
+	ixor temp,pdata
+	isolate1 nesn,pdata
+	setarg 0
+	fetcht 1,mem_le_retransmit_cnt
+	setflag true,0,pdata
+	iadd temp,temp
+	storet 1,mem_le_retransmit_cnt
+	rtn
+
+p_le_got_first_packet_new:
+	fetch 1,mem_le_conn_rcv
+	increase 1,pdata
+	store 1,mem_le_conn_rcv
+	nbranch p_le_got_first_packet_new+7,match
+	fetch 1,mem_le_conn_rcv_new			//lpm  use retention mem
+	increase 1,pdata
+	store 1,mem_le_conn_rcv_new
+	fetch 1,mem_le_state
+	rtnbit1 lestate_got_first_packet
+	set1 lestate_got_first_packet,pdata
+	store 1,mem_le_state
+	fetch 2,mem_le_init_superto
+	store 2,mem_le_superto
+	setarg 0
+	store 4,mem_le_transmit_window	
+//	fetch 1,mem_le_conn_rcv_new
+//	store 1,mem_le_conn_first_rcv
+	rtn
+
+p_le_rx_dec:
+	call le_check_retransmit	
+//	bmark1 mark_old_packet,le_retransmit_end_of_packet
+	fetchr rega, 1,mem_le_rxbuf_data_length
+	increase -4,rega
+	nbranch le_crc_fail_consecutive,positive
+	branch le_rx_dec+6
+
+p_le_rx_nopayload:
+	parse demod,bucket,24	
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	enable swfine
+	call le_set_until_tx_timer
+	branch le_crc_fail,crc_failed
+	bmark0 mark_ble_encryption,le_rx_match
+	fetch 1,mem_le_rxbuf_data_length
+	branch le_rx_match,blank
+	increase -4,pdata
+	store 1,mem_le_rxbuf_data_length
+	call wait_ccm_done
+ 	fetch 1,core_misc_status
+	bbit0 7, le_crc_fail_consecutive
+ 	force regidx_result,regext_index
+	storer regext, 4,mem_le_peer_mic
+	branch le_rx_match
+
+
+p_le_adv_not_match:
+	call shutdown_radio
+	jam 0,0x8900
+	set0 mark_ble_crc_fail,mark
+	branch le_adv_not_match+1
+	
+p_le_init_adv:
+	set0 mark_ble_crc_fail,mark	
+	branch le_init_adv+1
+
+
+
+p_keyboard_start_reconnect_device:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	branch mouse_start_reconnect_device+6
+
+p_keyboard_store_remote_bdaddr:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call p_keyboard_check_device_addr
+	call p_keyboard_unplug_clean_bdaddr
+	branch mouse_store_device_info_delay
+p_keyboard_unplug_clean_bdaddr:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd rega,rega
+	fetch 1,mem_record_bt_mode
+	istore 1,rega
+	beq REC_4_MODE,p_keyboard_store_le_device
+	rtn
+
+p_keyboard_store_le_device:
+	fetch 6,mem_le_plap
+	istore 6,contw
+	branch mouse_store_le_device+4
+
+p_keyboard_check_device_addr:
+	fetch 1,mem_record_bt_mode
+	beq REC_4_MODE,p_keyboard_check_le_device_addr
+	rtn
+p_keyboard_check_le_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_le_plap
+p_keyboard_check_bt_device_addr_common:
+	store 6,mem_device_addr_temp+1
+	fetch 7,mem_device_addr_temp
+	arg mem_device1_type,contr
+	arg 3,loopcnt
+p_keyboard_check_device_addr_end:
+	ifetcht 7,contr
+	isub temp,null
+	branch mouse_clean_addr,zero
+	increase 6,contr
+	loop p_keyboard_check_device_addr_end
+	rtn
+
+
+p_le_parse_att:
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_RESPONSE,p_keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,p_le_parse_att_read_by_type_request	
+	beq ATTOP_READ_BY_TYPE_RESPONSE,p_keyboard_le_send_att_read_by_type_rsp_mac	
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,p_keyboard_le_parse_att_find_by_type_value_rsp	
+	beq ATTOP_ERROR_RESPONSE,p_keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_READ_BLOB_REQUEST,p_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,p_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,p_le_parse_att_write_command
+	branch le_parse_att2
+
+p_keyboard_le_parse_att_manu_resp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+p_keyboard_le_parse_att_manu_resp_next:
+	fetch 2,mem_le_l2cap_size
+	arg 9,loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,5,rega	
+	arg mem_le_search_mac_manu_name,regb
+	call string_compare 
+	branch p_keyboard_le_parse_att_find_mac_report,zero
+	branch  p_keyboard_le_parse_att_not_find_mac_report
+p_keyboard_le_parse_att_not_find_mac_report:
+	fetch 1,mem_le_conn_peer_addr_type
+	store 1,mem_kb_computer_system
+	branch p_keyboard_store_computer_system_ble
+
+p_keyboard_le_parse_att_find_mac_report:
+	jam SYSTEM_OS_MAC,mem_kb_computer_system
+p_keyboard_store_computer_system_ble:
+	jam 0,mem_le_connect_ios_mac_flag
+	jam 1,mem_otp_store_system_flag
+	fetch 1,mem_otp_store_device_info_flag
+	rtn blank
+	branch p_keyboard_wirte_otp_ble
+
+p_keyboard_le_send_att_read_by_type_rsp_mac:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+p_keyboard_le_send_att_read_by_type_rsp_mac_next:
+	fetch 2,mem_le_l2cap_size
+	increase -2,pdata
+	div pdata,7
+	call wait_div_end
+	quotient loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,6,contr
+p_keyboard_le_check_att_read_type_manu_loop:
+	increase 3,contr
+	ifetch 2,contr
+	copy pdata,regc
+	ifetch 2,contr
+	arg 0x2a29,temp
+	isub temp,null
+	branch keyboard_le_send_att_read_by_type_rsp_manufactory,zero
+	loop p_keyboard_le_check_att_read_type_manu_loop
+	branch p_keyboard_le_parse_att_not_find_mac_report
+
+p_keyboard_le_parse_att_find_by_type_value_rsp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+p_keyboard_le_parse_att_find_by_type_value_rsp_next:
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,keyboard_le_parse_att_find_by_type_value_rsp_mac
+p_keyboard_le_parse_att_find_ios_report:	
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+	branch p_keyboard_store_computer_system_ble
+
+p_keyboard_le_send_att_find_by_type_value_request_mac:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+p_keyboard_le_send_att_find_by_type_value_request_mac_next:
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,p_keyboard_le_parse_att_not_find_mac_report
+	branch keyboard_le_send_att_find_by_type_value_request_mac+2	
+
+p_le_parse_att_read_by_type_request:
+	call le_get_search_handle_start_end_common
+	call le_get_search_att_type
+p_le_send_att_read_by_type_response:
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_init_attlist_search
+	call le_att_get_handle_ptr2
+	increase -2,contr
+	copy contr,pdata
+	store 2,mem_le_cur_attlist_start_ptr
+
+	fetcht 2,mem_le_search_att_type
+	setarg UUID_CHRCTR_PNP_ID
+	isub temp,null
+	branch p_le_send_att_read_by_type_res_pnp_id,zero
+	branch le_send_att_read_by_type_response+8
+
+p_le_send_att_read_by_type_res_pnp_id:
+	fetch 1,mem_keyboard_change_vid_pid_flag
+	branch le_send_att_read_by_type_response+8,blank
+	call le_att_get_uuid_ptr
+	branch le_send_att_error_response_notfound,blank
+	arg mem_keyboard_change_vid_pid_flag+1,contr
+	force 11,pdata		// length +1
+	branch le_send_att_read_by_type_res_not_characteristic+9
+
+
+p_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	fetch 2,mem_keyboard_le_map_len
+	arg mem_keyboard_le_hid_map,contr
+	branch le_send_att_read_blob_response+3
+	
+p_le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,p_le_send_att_read_response_check_auth
+//input:temp is handle
+p_le_send_att_read_response:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_ADC,p_le_send_att_read_response+3
+	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,p_le_send_att_read_response_next
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+p_le_send_att_read_response_next:	
+	fetch 2,mem_le_att_handle
+	beq 0x05,p_le_send_att_appearance
+	beq 0x10,p_le_send_att_pnp_id
+p_le_send_att_read_response_next_1:
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	call le_get_search_max_mtu_data
+	fetcht 2,mem_keyboard_le_map_len
+	arg mem_keyboard_le_hid_map,contr
+	branch le_send_att_read_response+14
+
+p_le_send_att_appearance:
+	arg mem_keybord_appearance,contr
+	force 3,pdata		// length +1
+	branch le_send_att_read_response_less
+
+p_le_send_att_pnp_id:
+	fetch 1,mem_keyboard_change_vid_pid_flag
+	branch p_le_send_att_read_response_next_1,blank
+	arg mem_keyboard_change_vid_pid_flag+1,contr
+	force 8,pdata		// length +1
+	branch le_send_att_read_response_less
+
+p_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch p_le_send_att_read_response,zero
+	call le_check_encrypt_state
+	nbranch p_le_send_att_read_response_next,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+
+p_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	call p_le_parse_att_write_command+1		//MAC  CAPS
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,le_send_att_write_response_check_auth
+	fetch 1,mem_mouse_le_reconnect_flag
+	branch le_send_att_write_response_check_auth,blank
+	fetch 1,mem_le_connect_status_flag
+	bbit1 LL_START_ENC_FLAG,le_send_att_write_response_check_auth
+	setarg 0x001a		
+	fetcht 2,mem_le_att_handle
+	isub temp,null
+	nbranch le_send_att_write_response_check_auth,zero
+	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
+	branch le_send_att_error_response
+
+
+p_le_parse_att_write_command:
+	call le_parse_att_write_command
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,p_keyboard_le_fast_conn_led_get
+	fetch 2,mem_le_att_handle
+	beq 0x25,p_keyboard_le_led_get
+	rtn
+p_keyboard_le_fast_conn_led_get:	
+	fetch 2,mem_le_att_handle
+	beq 0x21,p_keyboard_le_led_get
+	rtn
+	
+p_keyboard_le_led_get:
+	fetch 1,mem_le_rxbuf+9
+	store 1,mem_keyboard_led_status
+	rtn
+
+p_le_exchange_hid_map:
+	arg 0x919f,contr	//key map->mouse map 
+	arg mem_keyboard_le_hid_map,contw
+	arg 66,loopcnt
+	call memcpy
+	arg 0x91e1,contr
+	arg mem_keyboard_le_hid_map +66,contw
+	arg 54,loopcnt
+	branch memcpy
+///////////////////////
+
+///////////////////////
+///////////////////////
+///////////////////////
+
+p_adc_init_data:
+	fetch 8,mem_otp_adc
+	branch adc_init_cal_data_default,blank
+	store 8,mem_reference_inter1p8v_2v_adc_io_data
+	call enable_otp_read
+	call loadcode_check_otp_lock
+	arg OTP_OFFSET_ADC_PARAM_L_C0,pdata
+	iadd regb,regb
+	arg 10,loopcnt
+	arg mem_otp_temp,rega
+	call otp_read_data
+	call disable_otp
+	fetch 8, mem_otp_temp
+	rtn blank
+	store 8,mem_adc_reference3v_gpio1v_ft_data
+	ifetch 2,contr
+	istore 2,contw	
+	//call  eut_test_data_init	
+	rtn
+
+p_sadc_cal_write:
+	fetch 1,core_sadc_ctrl
+	set1 1,pdata
+	store 1,core_sadc_ctrl
+	fetchr regb,1,mem_spi_write_addr
+	fetch 1,mem_adc_cal_c7
+	store 1,mem_spi_write_addr
+	arg 8,loopcnt	//rg_gpadc_sar_dat_sel c0-c7
+	call sadc_cal_write+4
+	storer regb,1,mem_spi_write_addr
+	fetch 1,core_gpadc_cfg2	
+	set0 4,pdata//caliberation write disable	
+	store 1,core_gpadc_cfg2	
+	rtn
+
+
+
+p_vdd_calculate_by_mode:
+
+p_vdd_reference_inter3V_calculate:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,p_vdd_reference_inter3V_calculate_by_mode_vdcdc
+	beq ADC_CONFIG_GPIO,p_vdd_reference_inter3V_calculate_by_mode_gpio
+	rtn
+	
+p_vdd_reference_inter3V_calculate_by_mode_vdcdc:
+	setarg 1000
+	store 2,mem_reference_voltage
+	fetcht 2,mem_adc_reference3v_vdcdc3p6v_ft_data
+	fetch 2,mem_adc_reference3v_vdcdc4p6v_ft_data
+	arg 3600,regc
+	call vdd_calculate
+	branch p_mul1V_div1V_to_cal
+	
+p_vdd_reference_inter3V_calculate_by_mode_gpio:
+	setarg 1000
+	store 2,mem_reference_voltage
+	fetcht 2,mem_adc_reference3v_gpio1v_ft_data
+	fetch 2,mem_adc_reference3v_gpio2v_ft_data
+	arg 1000,regc
+	call vdd_calculate
+p_mul1V_div1V_to_cal:
+	fetcht 2,mem_adc_reference3v_inter1v_ft_data
+	imul32 temp,pdata
+	fetcht 2,mem_adc_reference3v_inter1v_now_data
+	idiv temp
+	branch get_div_result
+
+p_enable_adc_init_config:
+	call p_sadc_cal_write
+	fetch 1,core_gpadc_cfg1
+	set0 7,pdata
+	store 1,core_gpadc_cfg1
+	jam 0x77,core_gpadc_ctrl
+	jam 0xc1,core_gpadc_cfg0
+	jam 0x61,core_vtest_ctrl0
+	jam 0x00,core_gpadc_cfg3
+	rtn	
+	
+p_enable_adc:
+
+p_enable_adc_reference_source_inter3V:
+	call p_enable_adc_init_config
+	call sadc_channel
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	call sadc_read
+	jam 0x60,core_vtest_ctrl0
+	jam 0x00,core_sadc_clkdiv	
+//	rtn
+	
+p_read_adc_inter1V:
+	call p_enable_adc_init_config
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	jam 0x50,core_gpadc_cfg3
+	jam 0xc0,core_vtest_ctrl1//select vref1v
+
+	arg 0xb,regext_index
+	fetchr regext, 2,mem_adc_current_value
+	
+	jam 0x03,core_sadc_ctrl	
+	call p_sar_adc_read_wait
+	fetcht 2,core_sadc_data
+	storet 2,mem_adc_reference3v_inter1v_now_data 
+	call sadc_read_wait+4
+	
+	arg 0xb,regext_index
+	storer regext,2,mem_adc_current_value
+
+	jam 0x60,core_vtest_ctrl0
+	jam 0x00,core_sadc_clkdiv
+	jam 0x00,core_sadc_ctrl
+	rtn
+	
+
+
+p_sar_adc_read_wait:
+	fetch 1,core_perf_status
+	bbit0 SARADC_DONE,p_sar_adc_read_wait
+	rtn
+
+
+
+
+///////////////////////	
+
+
+
+
+
+org 0x2000		// start from rom address start
+start:
+	call lpmstate
+
+soft_reset:
+	bpatch patch00_0,mem_patch00
+	clear_stack
+
+	call app_param_init
+	call initialize_radio
+	call iic_init_360khz
+	call init_param
+	call l2cap_init
+	bpatch patch00_1,mem_patch00
+	call ui_init
+	call app_init
+	call publickey_init
+//	call sp_wait_pubkey_calc_done
+	call lpm_recover_clk,wake
+main_loop:	
+	bpatch patch00_2,mem_patch00
+	call sp_calc_sequence_256
+	call sp_calc_sequence_256_check
+	call le_advertising_dispatch
+	call idle_dispatch
+	call app_process_idle
+	call connection_dispatch
+	call g24_dispatch
+	call lpm_dispatch
+	call kscan_dispatch
+	branch main_loop
+
+connection_dispatch:
+	call connection_incontext
+	rtnmark0 mark_context
+	set0 mark_context,mark
+	call context_save
+	branch le_disable
+	
+connection_incontext:
+	bpatch patch00_3,mem_patch00
+	call context_search_insniff
+	nbranch connection_nosniff,zero
+	call context_load
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	bbit1 mode_le,le_conn_dispatch
+//	bbit1 mode_master, master_dispatch
+//	branch slave_dispatch
+	rtn
+	
+connection_nosniff:
+	jam 0,mem_current_context
+	call context_get_next
+	copy loopcnt,null
+	rtn zero
+	branch assert
+
+
+
+
+
+	
+idle_dispatch:
+	fetch 1,mem_hci_cmd
+	rtn blank
+	beq hci_cmd_le_create_conn,idle_le_create_conn
+	call context_search_conn_handle
+	rtn zero
+	call context_search_plap
+	rtn zero
+idle_exit:
+	jam 0,mem_hci_cmd
+	rtn
+
+idle_le_create_conn:
+	jam hci_cmd_le_create_conn,mem_cmd_le_create_conn
+	jam 0,mem_hci_cmd
+	rtn
+
+
+
+context_load:
+	bpatch patch00_4,mem_patch00
+	set1 mark_context,mark
+	deposit rega
+	store 2,mem_context_ptr
+	force context_size,loopcnt
+	arg mem_le_state,contw
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	copy rega,contr
+	bbit1 mode_le,memcpy
+	rtn
+	
+context_save:
+	bpatch patch00_5,mem_patch00
+	fetch 2,mem_context_ptr
+	iforce contw
+	force context_size,loopcnt
+	arg mem_le_state,contr
+	branch memcpy
+	
+	
+
+context_get_next:
+	arg context_num,loopcnt
+	fetcht 1,mem_current_context
+context_get_next_loop:
+	increase 1,temp
+	compare context_num,temp,0xff
+	nbranch context_get_next_cont,true
+	arg 0,temp
+context_get_next_cont:
+	storet 1,mem_current_context
+	mul32 temp,context_size,pdata
+	arg mem_context,rega
+	iadd rega,rega
+	ifetch 1,rega
+	bbit1 state_insniff,context_get_next_sniff
+	rtnbit1 state_inconn
+context_get_next_sniff:
+	loop context_get_next_loop
+	rtn
+	
+context_new:
+	bpatch patch00_6,mem_patch00
+	arg context_search_empty,regc
+	call context_search
+	nrtn zero					// all occupied
+	deposit rega
+	store 2,mem_context_ptr
+	branch enable_zero
+	
+
+	
+	//rtn nzero if idle(no conn)
+context_check_idle:
+	arg context_check_inconn,regc
+	branch context_search
+	
+
+	
+	
+context_search_conn_handle:
+	fetcht 1,mem_hci_conn_handle
+context_search_conn_handle2:
+	arg context_search_handle,regc
+	branch context_search
+	
+	
+context_search_plap:
+	bpatch patch00_7,mem_patch00
+	fetcht 6,mem_hci_plap
+context_search_plap2:
+	arg context_search_lap,regc
+	branch context_search
+	
+context_search_insniff:
+	arg context_search_sniff,regc
+	branch context_search
+	
+context_search_sniff_window:
+	arg context_search_window,regc
+context_search:
+	bpatch patch01_0,mem_patch01
+	arg mem_context,rega
+	arg context_num,loopcnt
+context_search_loop:
+	ifetch 1,rega
+	copy regc,pc
+context_search_next:
+	bpatch patch01_1,mem_patch01
+	increase context_size,rega
+	loop context_search_loop
+	force 1,null
+	rtn
+
+context_search_empty:
+	bbit1 state_inconn,context_search_next
+	branch enable_zero
+	
+context_search_lap:
+	bbit0 state_inconn,context_search_next
+context_search_lap_cont:
+	add rega,coffset_plap,contr
+	ifetch 6,contr
+	isub temp,null
+	rtn zero
+	branch context_search_next
+
+context_search_handle:
+	bbit0 state_inconn,context_search_next
+	add rega,coffset_conn_handle,contr
+	ifetch 1,contr
+	isub temp,null
+	rtn zero
+	branch context_search_next
+
+context_search_sniff:
+	bbit0 state_insniff,context_search_next
+context_search_sniff_loop:
+	call context_get_anchor
+	call sign_pdata_temp
+	isub temp,pdata
+	increase 1,pdata
+	branch context_search_sniff_miss,positive
+	copy contr,regb
+	store 9,mem_temp
+	bpatch patch01_2,mem_patch01
+	fetch 1,mem_sc_calc
+	nbranch context_search_sniff_sc,blank
+	fetch 9,mem_temp
+	copy regb,contr
+	increase 5,pdata  
+	branch context_search_meet1
+	
+context_search_sniff_sc:
+	fetch 9,mem_temp
+	copy regb,contr	
+	increase 20,pdata  
+context_search_meet1:
+	nbranch context_search_next,positive
+context_search_meet:
+	copy temp,bt_clk
+	call context_next_anchor
+	branch enable_zero
+	
+	
+context_search_sniff_miss:
+	iforce regb
+	add rega,coffset_tsniff,contr
+	ifetch 2,contr
+	branch context_search_meet,blank
+	call context_next_anchor
+	branch context_search_sniff_loop
+
+sign_pdata_temp:
+	rshift16 pdata,timeup    
+	rshift8 timeup,timeup    
+	branch sign_pdata_temp_p0,zero    
+	compare 0xf,timeup,0xf    
+	nrtn true    
+	rshift16 temp,timeup    
+	rshift8 timeup,timeup    
+	nrtn zero    
+	set1 28,temp    
+	rtn
+sign_pdata_temp_p0:    
+	rshift16 temp,timeup    
+	rshift8 timeup,timeup    
+	compare 0xf,timeup,0xf    
+	nrtn true    
+	set1 28,pdata    
+	rtn
+
+context_check_inconn:
+	bbit0 state_inconn,context_search_next
+	branch enable_zero			// found
+
+	
+context_check_a_wack:
+	bbit0 state_inconn,context_search_next
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	bbit1 mode_le,context_search_next
+	rtn
+
+context_get_anchor:
+	add rega,coffset_mode,contr
+	ifetcht 1,contr
+	deposit clkn_bt
+	isolate1 mode_master,temp
+	add rega,coffset_sniff_anchor,contr
+	ifetcht 4,contr
+	rtn true
+	add rega,coffset_clk_offset,contr
+	ifetch 6,contr
+	call calc_clke2
+	deposit clke_bt
+	rtn
+
+context_next_anchor:
+	add rega,coffset_tsniff,contr
+	add rega,coffset_sniff_anchor,contw
+	ifetch 2,contr
+	iadd temp,timeup			
+	deposit timeup
+	istore 4,contw
+	branch le_context_nextevent
+	
+
+context_search_window:
+	bbit0 state_insniff,context_search_next
+	call context_get_anchor
+	iadd stop_watch,pdata
+	iadd stop_watch,pdata
+	iadd queue,pdata
+	isub temp,null
+	nbranch context_search_next,positive
+	branch enable_zero
+
+
+
+end_of_packet:
+	bpatch patch01_3,mem_patch01
+	disable lr_s2en
+	disable encode_fec0
+	disable encode_fec2
+	disable decode_fec0
+	disable decode_fec2
+	disable enable_crc
+	disable encrypt
+	disable enable_white
+	branch shutdown_radio,is_rx
+	until null,tx_clear
+	nop 100          
+	branch shutdown_radio
+
+
+
+	
+sniff_check_window:
+	bpatch patch01_4,mem_patch01
+	disable swfine
+	copy temp,stop_watch
+	call context_search_sniff_window
+	disable user
+	nrtn zero
+	force 0,stop_watch
+	branch enable_user
+
+
+calc_slot_offset:
+	bpatch patch01_5,mem_patch01
+	until null,halfslot
+	deposit clke
+	iforce contr
+	rshift16,pdata,pdata
+	isub clkn_bt,loopcnt
+	and_into 3,loopcnt			
+	nbranch calc_bt_portion,zero
+	force 0,pdata
+	branch calc_skip_bt
+calc_bt_portion:
+	fetcht 2,mem_param_rt_rthalfslot
+	force 0,pdata
+calc_slot_offset_loop:
+	iadd temp,pdata
+	loop calc_slot_offset_loop
+calc_skip_bt:
+	iadd contr,pdata			
+	div pdata,12
+	call get_div_result
+	store 2,mem_slot_offset
+	rtn
+
+calc_clke_offset:
+	bpatch patch01_6,mem_patch01
+	deposit clke
+	copy clkn,temp
+	isub temp,null
+	nsetflag positive,44,pdata
+	isub temp,temp
+	fetch 2,mem_param_rt_rthalfslot
+	isolate0 15,temp
+	branch calc_clke_pos,true
+	copy temp,alarm
+	arg 0x10000,temp
+	fetch 2,mem_param_rt_rthalfslot
+	isub temp,pdata
+	iadd alarm,temp
+	
+calc_clke_pos:
+	storet 6,mem_le_clk_offset
+	rtn
+
+calc_clke:
+	disable clknt
+	fetch 6,mem_le_clk_offset
+calc_clke2:
+	iadd clkn,alarm
+	increase 10,alarm
+	fetch 2,mem_param_rt_rthalfslot
+	isub alarm,pdata
+	isolate0 15,pdata
+	branch calc_clke_pos_adj,true
+	setarg 0x10000
+	fetchr regd,2,mem_param_rt_rthalfslot
+	isub regd,pdata
+	iadd alarm,alarm
+calc_clke_pos2:
+	copy alarm,clke
+	rtn
+calc_clke_pos_adj:		
+	force 0,null
+	branch calc_clke_pos2
+	
+
+
+
+
+
+qsetxor:
+	rshift3 pdata,pdata
+	ifetchr rega,1,contw
+	ixor rega,pdata
+	isolate0 6,pdata
+	branch qset_p
+
+qset1_p:
+	isolate0 0,null
+qset_start:
+	arg 0x8ac2,contw
+qset_p:
+	ifetch 1,contw
+	qsetflag true,pdata
+	istore 1,contw
+	rtn
+	
+rx_dcoc_avg:
+	nop 60
+btdma:
+//	call btdma
+	jam 8,0x8983
+	jam 9,0x8985
+	jam 0x9,0x8981
+	jam 0x3,0x8981
+	jam 0x6,0x8980	
+	nop 60
+	arg 0,rega
+	arg 0,regb
+	arg 16,loopcnt
+	arg 0x800,contr
+rx_dcoc_loop:
+	ifetch 2,contr
+	iadd rega,rega
+	ifetch 2,contr
+	iadd regb,regb
+	loop rx_dcoc_loop
+	rtn
+
+rx_dcoc:
+	bpatch patch01_7,mem_patch01
+	call set_sync_on
+	arg 39,temp
+	call set_freq_rx	
+	call rf_rx_enable
+	jam 0x7f,0x8a25
+	jam 0x1a,0x8a30
+	jam 0x78,0x8a31
+	jam 0xb2,0x8a8f
+	jam 0,0x8ac2
+	jam 0,0x8ac3
+	arg 6,queue
+	call rx_dcoc_avg
+	isolate1 13,rega
+	call qset_start
+	isolate1 13,regb
+	call qset_p
+	arg 5,queue
+rx_dcoc_loop2:
+	call qset1_p
+	call qset_p
+	call rx_dcoc_avg
+	arg 0x8ac2,contw
+	rshift4 rega,pdata
+	call qsetxor
+	rshift4 regb,pdata
+	call qsetxor
+	increase -1,queue
+	branch rx_dcoc_loop2,positive
+	jam 0x52,0x8a8f
+	jam 2,0x8a30
+	jam 0,0x8981
+	
+shutdown_radio:
+	bpatch patch02_0,mem_patch02
+	call rf_debug_shutdown_radio_line	//L-H-L
+	disable is_tx
+	disable is_rx
+	setarg 0x0200
+	store 4,0x8a23
+	jam 0xfa,0x8a01
+	nop 12
+	jam 0,0x8a0f
+	jam 0x1a,0x8a12
+	jam 0x2b,0x8a14
+	force 8,radio_ctrl
+	force 0,radio_ctrl
+//	rtn
+	branch gain_control
+
+set_sync_on:
+	bpatch patch02_1,mem_patch02
+	jam 0x60,0x8a0f 
+	jam 0xaa,0x8a10 
+	jam 0x7a,0x8a12 
+	jam 0x00,0x8a25 
+	jam 0x00,0x8a26 
+	nop 60
+	jam 0x20,0x8a20 
+	jam 0xfd,0x8a23 
+	jam 0x12,0x8a24 
+	jam 0x10,0x8a24 
+	nop 60
+	jam 0x60,0x8a12 
+	jam 0xdd,0x8a23 
+	rtn
+
+set_freq_rx:
+	bpatch patch02_2,mem_patch02
+	jam 0x01,0x8900 
+	jam 0x9d,0x8a23 
+	jam 0x02,0x8a24 
+	nop 20 
+	jam 0x65,0x8a70
+	jam 0x9f,0x8a23
+	call set_lemode
+	storet 1,mem_last_freq
+	increase 1,temp
+//	branch aac_res_lookup
+	
+
+aac_res_lookup:
+	bpatch patch02_3,mem_patch02
+	rshift4 temp,pdata
+	arg mem_aac_res_table,contr
+	iadd contr,contr
+	ifetch 1,contr
+	fetchr rega,1,0x8a71
+	and_into 0xf,rega
+	ior rega,pdata
+	store 1,0x8a71
+	call calc_freq
+	nop 144
+	fetch 1,mem_fcomp_div
+	beq XTAL_24M,aac_res_lookup_end
+	nop 36
+aac_res_lookup_end:
+	jam 0x80,0x8a20
+	rtn
+
+
+set_lemode_2m_16m:
+	setarg 0x8312
+	store 2,0x8907
+	branch set_lemode_2m
+
+set_lemode_1m_16m:
+	setarg 0x4189
+	store 2,0x8907
+	branch set_lemode_1m
+
+
+set_lemode:
+	bpatch patch02_4,mem_patch02
+	jam 0x11,0x8a82
+	jam 0x12,0x8a8d
+	jam 0x0a,0x8a8e
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,set_lemode_2m_16m
+	setarg 0x5762
+	store 2,0x8907
+set_lemode_2m:
+	jam 3,0x8901
+	jam 0x84,0x8920	
+	rtnmark1 mark_ble_2M
+	jam 1,0x8901
+	jam 0x80,0x8920
+	jam 0x07,0x8a82
+	jam 0x44,0x8a8d
+	jam 0x0a,0x8a8e
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,set_lemode_1m_16m
+	setarg 0x2bb1
+	store 2,0x8907
+set_lemode_1m:
+	rtnmark0 mark_ble_lr
+	jam 5,0x8901
+	rtn
+
+rf_rx_enable:
+	bpatch patch02_5,mem_patch02
+	call rf_debug_rx_gpio_high
+	call rf_rx_agc_set
+	force 8,radio_ctrl
+	force 0,radio_ctrl
+
+	setarg 0x0aaada
+	store 3,0x8a0f
+	jam 0x40,0x8a25
+	jam 0x10,0x8a26
+	nop 60
+	jam 0xfb,0x8a01
+	jam 0xff,0x8a25
+	jam 0x30,0x8a26
+	jam 0x5e,0x8a16
+	nop 20
+	jam 0x00,0x8a10
+	jam 0x08,0x8a11
+	nop 120
+	jam 0xd,0x8900
+	rtn
+
+	
+rf_rx_agc_set:
+	fetch 1,mem_gain_fix
+	beq 0xff,rf_rx_enable_no_soft_agc 
+	arg mem_gain_table,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,core_rf_rx_gain_fix
+	jam 0x27,core_rf_rx_agc_ctrl
+	
+rf_rx_enable_no_soft_agc:
+	fetcht 1,mem_gain_second_agc_en	//0x00 or 0x08
+	fetch 1,core_rf_rx_agc_ctrl
+	ior temp,pdata
+	store 1,core_rf_rx_agc_ctrl
+	rtn
+	
+
+set_freq_tx_int:
+	jam 0x03,0x8900 
+	jam 0x02,0x8a24 
+	nop 20 
+	jam 0x65,0x8a70
+	jam 0xdf,0x8a23
+	call set_lemode
+	call ghp_lookup
+	storet 1,mem_last_freq
+	increase 2,temp
+	branch aac_res_lookup
+
+
+
+calc_freq:
+	bpatch patch02_6,mem_patch02
+	setarg 2400
+	iadd temp,pdata
+	copy pdata, rega
+	fetcht 1,mem_fcomp_div
+	rshift temp,temp
+	idiv temp
+//	mul32 pdata,12,rega
+	call wait_div_end
+	quotient pdata
+	store 2,0x8909
+	remainder pdata
+	lshift16 pdata,pdata
+	lshift8 pdata,pdata
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	store 3,0x890b
+//	deposit rega
+//	idiv temp
+//	call wait_div_end
+//	quotient pdata
+	storer rega, 1,0x8a22
+	rshift8 rega,rega
+	storer rega, 1,0x8a21
+	jam 0xa0,0x8a20 
+	jam 0xe0,0x8a20 
+	jam 0xa0,0x8a20
+	rtn
+
+ghp_lookup:
+	add temp,2,pdata
+	rshift3 pdata,pdata
+	and_into -2,pdata
+	arg mem_ghpc_table,contr
+	bmark0 mark_ble_2M,ghp_1m
+	increase 12,contr
+ghp_1m:
+	iadd contr,contr
+	ifetchr rega,2,contr
+	ifetch 2,contr
+	isub rega,pdata
+	add temp,2,contr
+	and_into 0xf,contr
+	imul32 contr,pdata
+	rshift4 pdata,pdata
+	iadd rega,pdata
+	store 2,0x8905
+	rtn
+
+
+
+set_freq_tx:
+	bpatch patch02_7,mem_patch02
+	call set_freq_tx_int
+	nop 600 //50us
+
+txon:
+	bpatch patch03_0,mem_patch03
+	setarg 0x0aaa7e
+	store 3,0x8a0f
+	nop 60
+	jam 0x00,0x8a25 
+	jam 0x0d,0x8a26 
+	jam 0x56,0x8a16 
+	nop 30
+	jam 0x1b,0x8a15 
+	call set_tx_power
+	nop 20
+	jam 0x0f,0x8a26 
+	nop 20
+	jam 0xa8,0x8a10 
+	jam 0x00,0x8a11 
+	rtn
+	
+set_tx_power:	
+	bpatch patch03_1,mem_patch03
+	fetch 1,mem_tx_power
+	beq TX_POWER_0DB,set_tx_power_0db
+	beq TX_POWER_3DB,set_tx_power_3db
+	beq TX_POWER_5DB,set_tx_power_5db
+	beq TX_POWER_7DB,set_tx_power_7db
+	beq TX_POWER_10DB,set_tx_power_10db
+	beq TX_POWER_F3DB,set_tx_power_f3db
+	beq TX_POWER_F5DB,set_tx_power_f5db
+	beq TX_POWER_F10DB,set_tx_power_f10db
+	beq TX_POWER_F20DB,set_tx_power_f20db
+set_tx_power_0db:
+	jam 0x17,0x8a14 
+	setarg 0x251a3f
+	store 3,0x8a60
+set_tx_power_8a63_28:	
+	jam 0x28,0x8a63 
+	rtn
+
+set_tx_power_3db:
+	jam 0x25,0x8a14 
+	setarg 0xa91c2d
+	store 3,0x8a60
+set_tx_power_8a63_2f:	
+	jam 0x2f,0x8a63 
+	rtn
+
+set_tx_power_5db:
+	jam 0x25,0x8a14 
+	setarg 0xa91c3f
+	store 3,0x8a60
+	branch set_tx_power_8a63_2f
+
+set_tx_power_7db:
+	jam 0x25,0x8a14 
+	setarg 0xa9383f
+	store 3,0x8a60
+	branch set_tx_power_8a63_2f
+
+set_tx_power_10db:
+	jam 0x25,0x8a14 
+	setarg 0xa93f3f
+	store 3,0x8a60
+	branch set_tx_power_8a63_2f
+
+
+set_tx_power_f3db:
+	jam 0x17,0x8a14 
+	setarg 0x251827
+	store 3,0x8a60
+	branch set_tx_power_8a63_28
+	
+set_tx_power_f5db:
+	jam 0x17,0x8a14 
+	setarg 0x25181c
+	store 3,0x8a60
+	branch set_tx_power_8a63_28
+
+set_tx_power_f10db:
+	jam 0x17,0x8a14 
+	setarg 0x25180b
+	store 3,0x8a60
+	branch set_tx_power_8a63_28
+
+set_tx_power_f20db:
+	jam 0x17,0x8a14 
+	setarg 0x251000
+	store 3,0x8a60
+	branch set_tx_power_8a63_28
+
+
+
+initialize_radio:
+	jam clksel_rc,core_clksel
+initialize_radio_wait:
+	fetch 2,mem_rf_init_ptr
+	bbit0 14,initialize_radio_wait
+	iforce contr
+	arg 0x8a00,temp		//read 8a00 data->null :no run
+initialize_radio_loop:
+	ifetch 1,contr
+	beq 0xff,initialize_radio_cont
+	ior temp,contw
+	ifetch 1,contr
+	istore 1,contw
+	branch initialize_radio_loop
+	
+initialize_radio_cont:
+	bpatch patch03_2,mem_patch03
+	fetch 1,mem_wdt_always_work
+	call wdt_set_disable,blank
+
+	until null,lpo_edge
+	jam 0x5f,0x813b 
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,initialize_radio_16m
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x04,pdata
+	store 1,0x8a02
+	jam 0x01,0x890f
+	jam 0x24,0x8a80
+	jam 0x62,0x8a81
+	setarg 0xe61212
+	store 3,0x8a73	
+initialize_radio2:
+//	call gpio_set_before_lpm
+	jam 0x60,0x8a86
+	jam 0x3b,0x8a8b 
+
+	call dpll_on
+	jam 0,core_config
+	jam CLKSEL_DPLL,core_clksel
+	setarg 0x557474
+	store 3,0x8968
+	jam 0x6e,0x8960
+	call rx_dcoc
+	call rfpll_aac_ghpc
+	fetch 1,mem_xtal_c_sel
+	store 1,core_xtal_cap
+//	jam 0x3e,core_xtal_cap
+	jam SYSTEM_CLK_12M,mem_system_clk
+	call sadc_calibration
+	branch dpll_ring_ibias_calc
+	
+initialize_radio_16m:
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x06,pdata
+	store 1,0x8a02
+	jam 0x00,0x890f
+	jam 0x23,0x8a80
+	jam 0xb0,0x8a81
+	setarg 0xe40909
+	store 3,0x8a73
+	jam 0x2a,0x8a76
+	jam 0x04,0x8902	
+	branch initialize_radio2
+
+rfpll_aac_ghpc:
+	bpatch patch03_3,mem_patch03
+	call set_sync_on
+	jam 3,0x8900
+	jam 0x1,0x8a70
+	arg mem_ghpc_table,regb
+	arg mem_aac_res_table,regd
+	call rfpll_aac_ghpc_once
+	set1 mark_ble_2M,mark
+	call rfpll_aac_ghpc_once
+	jam 0x61,0x8a70
+	branch shutdown_radio
+
+rfpll_aac_ghpc_once:
+	call set_lemode
+	arg 6,loopcnt
+	arg 0,regc
+rfpll_cal_loop:
+	copy regc,temp
+	call aac_ghpc
+	increase 2,regb
+	increase 1,regd
+	increase 16,regc
+	loop rfpll_cal_loop
+	rtn
+
+dpll_on:
+	fetch 1,mem_fcomp_div
+	beq XTAL_24M,dpll_on_24m
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x06,pdata
+	store 1,0x8a02
+	jam 0xe0,0x8a05
+dpll_on_24m:	
+	jam 0xc8,0x8a00
+	nop 60
+	jam 0xa0,0x8a01
+	jam 0xcf,0x8a00
+	jam 0xfa,0x8a01
+	nop 20
+	jam 0x8f,0x8a00
+	rtn
+
+aac_ghpc:
+	bpatch patch03_4,mem_patch03
+	jam 0x30,0x8a20
+	jam 0xdd,0x8a23 
+	call calc_freq
+wait_cal_done:
+	fetch 1,0x8a7c
+	bbit0 0,wait_cal_done
+	jam 0x30,0x8a7b
+	call read_cal_result
+	iforce rega
+	jam 0x40,0x8a7b
+	call read_cal_result
+	isub rega,pdata
+	mul32 pdata,125,temp
+	setarg 0xb00000
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	bmark0 mark_ble_2M,aac_ghpc_1m
+	lshift pdata,pdata
+aac_ghpc_1m:
+	istore 2,regb
+	jam 0x20,0x8a7b
+	fetch 1,0x8a7e
+	lshift4 pdata,pdata
+	istore 1,regd
+	jam 0,0x8a7b
+	rtn
+
+read_cal_result:
+	fetch 2,0x8a7d
+	byteswap pdata,pdata
+	fetcht 1,0x8a7c
+	lshift16 temp,temp
+	ior temp,pdata
+	rtn
+
+//after dpll en and adc calibration
+dpll_ring_ibias_calc:
+	bpatch patch03_5,mem_patch03
+	fetch 1,core_vtest_ctrl0
+	set1 0,pdata
+	store 1,core_vtest_ctrl0
+	jam 0xf0,core_vtest_ctrl1
+	fetch 1,core_bbpll_cfg3
+	or_into 0x16,pdata
+	store 1,core_bbpll_cfg3
+
+	fetch 1,mem_adc_dma_enable
+	store 1,mem_temp
+	fetch 1,mem_adc_channel
+	store 1,mem_temp+1
+	jam 0,mem_adc_dma_enable
+	fetch 1,mem_ring_ibias_calc_adc_channel
+	store 1,mem_adc_channel
+	fetcht 1,mem_ring_ibias_calc_adc_gpio
+	call gpio_set_high_impedance
+
+	arg 0,rega
+	arg 8,loopcnt
+dpll_ring_ibias_read_adc:
+	call enable_adc
+	fetch 2,mem_adc_current_value
+	iadd rega,rega
+	loop dpll_ring_ibias_read_adc
+	rshift3 rega,rega
+	store 2,mem_adc_current_value
+
+	fetch 1,mem_temp
+	store 1,mem_adc_dma_enable
+	fetch 1,mem_temp+1
+	store 1,mem_adc_channel
+
+	fetch 1,core_bbpll_cfg3
+	and_into 0xe0,pdata
+	store 1,core_bbpll_cfg3
+	jam 0x00,core_vtest_ctrl1
+	fetch 1,core_vtest_ctrl0
+	set0 0,pdata
+	store 1,core_vtest_ctrl0
+
+	call vdd_calculate_by_mode
+	fetcht 2,mem_ring_ibias_vtune_high
+	isub temp,null
+	branch ring_ibias_trim_incrs,positive
+	fetcht 2,mem_ring_ibias_vtune_low
+	isub temp,null	
+	rtn positive
+ring_ibias_trim_decrs:
+	fetch 1,mem_ring_ibias_trim
+	rtneq 0x00
+	increase -32,pdata
+	store 1,mem_ring_ibias_trim
+	rtn
+
+ring_ibias_trim_incrs:
+	fetch 1,mem_ring_ibias_trim
+	rtneq 0xe0
+	increase 32,pdata
+	store 1,mem_ring_ibias_trim
+	rtn
+
+	
+save_rssi:
+	bpatch patch03_6,mem_patch03
+	 // bit6 is signed bit.
+	fetch 1,modem_nb_pow
+	isolate1 6,pdata
+	setflag true,7,pdata
+	store 1,mem_modem_rssi
+
+	fetch 1,modem_gain
+	and pdata,0x0f,temp
+	lshift temp,temp
+	rshift4 pdata,pdata
+	iadd temp,temp
+	mul32 temp,3,rega // (abb_gain + lna_gain*2)*3
+
+	fetch 1,mem_modem_rssi
+	call byte_sign_extern
+	sub pdata,0,pdata //-modem_nb_pow
+	iadd rega,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow)
+	increase -9,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow) - 9
+	and pdata,0x1ff,pdata
+	isolate1 8,pdata
+	nbranch save_rssi_store,true
+	setarg 0	 
+save_rssi_store:
+	store 1,mem_rssi_hex
+	branch rssi_hex2dec
+ 
+byte_sign_extern:
+	isolate1 7,pdata
+	nrtn true
+	arg 0xff00,temp
+	ior temp,pdata
+	rtn
+ 
+rssi_hex2dec:
+	fetch 1,mem_rssi_hex
+	call bcd
+	store 1,mem_rssi			 
+	rtn
+
+bcd:
+	and_into 0xff,pdata
+	div pdata,10
+	call get_div_result
+	lshift4 pdata,pdata
+	remainder temp
+	ior temp,pdata
+	rtn
+
+gain_control:
+	bpatch patch03_7,mem_patch03
+	fetch 1,mem_gain_fix
+	rtneq 0xff
+	nbranch  gain_increase,sync
+	fetch 1,mem_modem_rssi
+	sub pdata,0xf0,null
+	nbranch gain_descend,positive
+	sub pdata,0x7f,null
+	branch gain_descend,positive
+	
+	fetchr rega, 1,core_rf_rx_gain_fix
+	fetch 1,mem_gain_fix
+	rtneq 0	
+	arg mem_gain_table,contr
+	iadd contr,contr
+	ifetch 1,contr
+	isub rega,null
+	nrtn zero
+	increase -2,contr
+	ifetcht  1,contr
+	rshift4 temp,pdata
+	rshift4 rega,regb
+	isub regb,regb
+	and temp,0xf,pdata
+	and rega,0xf,rega
+	isub rega,rega
+	lshift rega,pdata
+	iadd regb,regb
+	mul32 regb,3,regb
+	fetcht 1,mem_modem_rssi
+	and temp,0x80,pdata
+	rtn blank
+add_negative:
+	setarg 0x100
+	isub temp,temp
+	copy regb,pdata
+	isub temp,pdata
+	rtn positive
+	and pdata,0xff,pdata
+	rtneq 0xff
+	rtneq 0xfe
+	
+gain_increase:	
+	fetch 1,mem_gain_fix
+	beq 1,set_rx_gain0
+	beq 2,set_rx_gain1
+//	beq 0,set_rx_gain0
+	branch set_rx_gain0
+	
+gain_descend:
+	fetch 1,mem_gain_fix
+	beq 0,set_rx_gain1
+	beq 1,set_rx_gain2
+//	beq 2,set_rx_gain2
+set_rx_gain2:
+	jam 2,mem_gain_fix
+	rtn
+
+set_rx_gain0:
+	jam 0,mem_gain_fix
+	rtn
+	
+set_rx_gain1:
+	jam 1,mem_gain_fix
+	rtn
+
+	
+
+
+
+	
+ahead_window:
+	copy pdata,temp
+	bpatch patch04_0,mem_patch04
+	copy temp,pdata
+	call clk2bt
+	lshift16 bt_clk,pdata
+	set1 44,pdata
+	call clk_diff
+	set0 44,pdata
+	call get_clk
+	call clk_diff
+	rtn user
+	call clk2rt
+	iforce stop_watch
+	until null,timeout
+	rtn
+
+
+get_clk:
+	copy clkn,temp
+	rtn master
+	copy clke,temp
+	rtn
+
+get_clkbt:
+	deposit clkn_bt
+	rtn master
+	deposit clke_bt
+	rtn
+
+
+assert:
+	bpatch patch04_1,mem_patch04
+	branch assert
+	
+
+sleep:	
+	rtn blank
+	
+	rshift pdata,pdata
+	increase -3,pdata
+sleep_loop:	
+	increase -1,pdata
+	nbranch sleep_loop,zero
+	force 0,pdata
+	rtn
+
+
+
+init_param:
+
+	setarg param_tx_setup
+	store 2,mem_param_tx_setup
+	setarg param_rf_setup
+	store 2,mem_param_rf_setup
+	setarg param_conn_access
+	store 2,mem_param_conn_access
+	setarg param_rx_setup
+	store 2,mem_param_rx_setup
+	setarg param_clke_cal
+	store 2,mem_param_clke_cal
+	setarg param_pll_setup
+	store 2,mem_param_pll_setup
+	setarg param_dpll_start_delay
+	store 2,mem_param_dpll_start_delay
+	setarg param_rt_rthalfslot
+	store 2,mem_param_rt_rthalfslot
+	setarg param_clke_cal_le_1m
+	store 2,mem_param_clke_cal_le_1m
+	setarg param_clke_cal_le_2m
+	store 2,mem_param_clke_cal_le_2m
+	setarg param_clke_cal_le_coded
+	store 2,mem_param_clke_cal_le_coded
+	
+	bpatch patch04_2,mem_patch04
+	rtn wake
+	setarg ATT_DEFAULT_MTU
+	store 2,mem_le_remote_mtu
+	jam PARAM_T_IFS_150US+PARAM_SYNC_TIME_DIFFERENCE,mem_le_tx_ifs_defference
+	setarg mem_ble_tx_buff0
+	store 2,mem_ble_l2cap_tx_buff0_ptr
+	setarg mem_ble_l2cap_tx_buff_size
+	store 2,mem_ble_l2cap_tx_buff_size_ptr	
+	rshift clkn_bt,pdata
+	store 4,mem_last_clkn
+	rtn
+
+
+
+
+
+
+lpmstate:
+	setarg 0xee21
+	store 2,core_clkoff			// disable unused peripherals
+	fetchr alarm,4,core_gpio_in
+	fetch 1,core_lpm_isogate
+	bbit0 gpio_latch,power_up
+	enable wake
+	bbit1 cold_wake,lpmwake		// wakeup from lpm	
+	disable wake
+	deposit auxcnt
+	nbranch lpmwake,blank		// sleep interrupted, wakeup
+	fetch 1,core_lpm_sysctl
+	bbit1 reload_code,lpmwake
+	arg param_hibernate_clks,temp
+	branch lpm_enter_sleep
+lpmwake:
+	call lpm_poweron_retmem
+	call lpm_load_context,wake
+	fetch 1,core_lpm_isogate
+	set0 gpio_latch,pdata			// enable gpio normal function after load gpio configuration
+	store 1,core_lpm_isogate		
+	nbranch boot_load,wake		// wakeup from hibernate
+	nop 1
+	storer alarm,4,mem_saved_gpio_in
+	rtn
+
+power_up:
+	call lpm_poweron_retmem
+boot_load:
+	call loadcode	
+	storer alarm,4,mem_saved_gpio_in
+	rtn
+
+lpm_poweron_retmem:
+	until null,lpo_edge
+	fetch 1,core_lpm_ldosel
+	and_into 0x88,pdata			// clear ldo to default all zero 
+	store 1,core_lpm_ldosel
+	until null,lpo_edge
+	fetch 1,core_lpm_isogate
+	or_into 0xf,pdata				// turn on all retmem switch
+	store 1,core_lpm_isogate		
+	until null,lpo_edge
+	set1 isogate,pdata				// turn on isolation gate
+	store 1,core_lpm_isogate		
+	until null,lpo_edge
+	set1 retmem_cs,pdata			// assert CSN
+	store 1,core_lpm_isogate		
+	until null,lpo_edge
+	rtn
+
+lpm_xtal_default:
+	until null,lpo_edge
+	jam 0x76,core_xtal_ib
+	until null,lpo_edge
+	jam 0x37,core_xtal_cap
+	rtn
+
+xtal_fast_wake:
+	until null,lpo_edge
+	jam 0x76,core_xtal_ib
+	until null,lpo_edge
+	jam 0x37,core_xtal_cap
+	rtn
+
+lpm_write_lock:
+//	fetch 1,mem_ucode_flag
+//	and pdata,0xf,temp
+	fetch 1,mem_device_option
+	lshift4 pdata,pdata
+//	ior temp,pdata
+	store 1,core_ucode_flag
+	until null,lpo_edge
+	fetch 1,mem_peripheral_lock_flag
+	set1 rom_lock_bit,pdata
+	set1 option_lock,pdata
+	store 1,core_peripheral_lock
+	branch lpm_write_wait
+	
+lpm_write_ice_disable:
+	fetch 1,core_lpm_sysctl
+	set0 ice_mode,pdata
+	store 1,core_lpm_sysctl
+	rtn
+
+lpm_write_ice_enable:
+	fetch 1,core_lpm_sysctl
+	set1 ice_mode,pdata
+	store 1,core_lpm_sysctl
+	rtn
+
+lpm_preon_counter:
+	fetch 3,mem_lpm_xtalcnt
+	arg core_lpm_xtalcnt,contw
+lpm_write_3bytes:
+	arg 3,loopcnt
+	branch lpm_write_loop
+	
+lpm_write_mpu_s0:
+	arg core_mpu_s0_saddr,contw
+lpm_write_dword:
+	arg 4,loopcnt
+lpm_write_loop:
+	until null,lpo_edge
+	istore 1,contw
+	rshift8 pdata,pdata
+	loop lpm_write_loop
+	branch lpm_write_wait
+
+lpm_write_mpu_s1:
+	arg core_mpu_s1_saddr,contw
+	branch lpm_write_dword
+
+
+lpm_disable_exen_output:
+	fetch 1,core_lpm_ldosel
+	set0 3,pdata
+	store 1,core_lpm_ldosel
+	rtn
+
+lpm_disable_io_dozed:
+	fetch 1,mem_lpm_hv_sel
+	rtn blank
+	set0 LPM_DOZE_EN_BIT,pdata
+	branch lpm_write_sel_hv
+
+lpm_save_sel_hv:
+	store 1,mem_lpm_hv_sel
+lpm_write_sel_hv:
+	store 1,core_io_doze_en
+lpm_write_wait:	
+	until null,lpo_edge
+	rtn
+
+
+lpm_write_io_vsel:
+	store 1,core_io_vsel
+	branch lpm_write_wait
+
+
+lpm_load_context:
+	call lpm_disable_io_dozed
+	fetch 1,mem_saved_spidctrl
+	store 1,core_spid_ctrl
+	arg mem_saved_gpio,contr
+	arg core_gpio_conf,contw
+	call memcpy16
+	arg core_gpio_conf_hi,contw
+	call memcpy8
+	fetchr mark,8,mem_saved_mark
+	arg core_gpio_wakeup_cfg,contr
+	arg mem_gpio_wakeup_cfg,contw
+	arg 12,loopcnt
+	call memcpy
+	branch load_ucode
+
+lpm_save_context:
+	storer mark,8,mem_saved_mark
+	arg core_gpio_conf,contr
+	arg mem_saved_gpio,contw
+	call memcpy16
+	arg core_gpio_conf_hi,contr
+	call memcpy8
+	fetch 1,core_spid_ctrl
+	store 1,mem_saved_spidctrl
+	branch lpm_write_gpio_wakeup
+	
+lpm_write_gpio_wakeup:
+	arg 12,loopcnt
+	arg mem_gpio_wakeup_cfg,contr
+	arg core_gpio_wakeup_cfg,rega
+lpm_write_gpio_loop:
+	ifetch 1,contr
+	ncall lpm_write_gpio,blank
+	increase 1,rega
+	loop lpm_write_gpio_loop
+	rtn
+lpm_write_gpio:
+	istore 1,rega
+	until null,lpo_edge
+	rtn
+
+lpo_calibration:
+	bpatch patch04_3,mem_patch04
+	fetch 1,core_ccnt_bit
+	nbranch lpo_cal_inited,blank
+	fetch 3,mem_clks_per_lpo
+	nrtn blank
+	jam 0xc,core_ccnt_bit
+	jam ccnt_start,core_misc_ctrl
+lpo_cal_inited:
+	fetch 1,core_perf_status
+	rtnbit0 1
+	fetch 3,core_clk_counter
+	store 3,mem_clks_per_lpo
+	rtn
+
+
+	
+lpm_doze:
+	fetch 1,mem_lpm_sysctl
+	set1 reload_code,pdata
+	store 1,mem_lpm_sysctl
+
+	
+lpm_hibernate:
+	bpatch patch04_4,mem_patch04
+	arg param_hibernate_clks,temp
+	fetch 1,mem_lpm_hibernate_switch
+	store 1,mem_lpm_isogate_final	
+	fetch 1,mem_lpm_sysctl
+	store 1,core_lpm_sysctl
+	until null,lpo_edge
+	
+lpm_sleep:
+	bpatch patch04_5,mem_patch04
+	//call xtal_fast_wake
+	fetch 2,mem_cb_before_lpm_sleep
+	call callback_func
+lpm_sleep_skip_cb_function:
+	fetch 4,mem_sleep_counter_all	// sleep total time, 32k unit
+	iadd temp,pdata
+	store 4,mem_sleep_counter_all
+	call lpm_save_context
+	fetch 1,mem_lpm_hv_sel
+	set1 LPM_DOZE_EN_BIT, pdata
+	call lpm_write_sel_hv
+	ncall lpm_preon_counter,wake
+	until null,lpo_edge
+	storer clkn,6,mem_sleep_clkn
+	fetch 3,mem_lpm_isogate
+	fetchr rega,1,mem_lpm_ldo_sel
+	arg 3,loopcnt
+lpm_sleep_loop:
+	until null,lpo_edge
+	store 1,core_lpm_isogate
+	rshift8 pdata,pdata
+	loop lpm_sleep_loop
+	until null,lpo_edge
+	storer rega,1,core_lpm_ldosel
+lpm_enter_sleep:
+	until null,lpo_edge
+	storet 4,core_lpm_reg
+	jam lpmreg_sel_counter,core_lpm_wr
+	until null,never
+
+lpm_cal_xtal_startup:
+	fetch 1,mem_lpm_xtalcnt
+	nrtn blank
+	jam clksel_rc,core_clksel
+	jam 0xf8,core_lpm_ctrl			// turn off xtal
+	setarg 200000
+	call sleep
+	call xtal_fast_wake
+	until null,lpo_edge
+	jam 0xff,core_lpm_ctrl				// turn on xtal
+	copy lpo_time,alarm
+	jam clksel_xtal,core_clksel
+	nop 10
+	until null,lpo_edge
+	deposit lpo_time
+	isub alarm,pdata
+	increase 0x30,pdata
+	arg 0xff,temp
+	call ceiling
+	store 1,mem_lpm_xtalcnt
+	nop 30000
+	nop 30000
+	nop 30000	
+	rtn
+
+
+lpm_recover_clk:
+	bpatch patch04_6,mem_patch04
+	setarg 0
+	copy auxcnt,null
+	branch lpm_recover_timeout,zero
+	fetch 1,core_lpm_xtalcnt
+	fetcht 1,core_lpm_buckcnt
+	isub temp,null
+	branch lpm_recover_xtal,positive
+	deposit temp
+lpm_recover_xtal:
+	isub auxcnt,pdata
+	increase 1,pdata
+lpm_recover_timeout:
+	increase 8,pdata
+	until null,lpo_edge
+	iadd lpo_time,pdata
+	fetcht 4,mem_sleep_counter
+	iadd temp,pdata
+	fetcht 3,mem_clks_per_lpo
+	imul32 temp,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	increase param_lpm_fix,pdata
+	fetcht 2,mem_param_rt_rthalfslot
+	idiv temp
+	call get_div_result
+	lshift16 pdata,pdata
+	remainder temp
+	ior temp,pdata
+	fetcht 6,mem_sleep_clkn
+	call clk_add
+	copy temp,clkn
+	fetch 6,mem_context + coffset_clk_offset
+	call calc_clke2
+	deposit clke
+	store 6,mem_pdatatemp
+	deposit auxcnt
+	istore 1,contw
+	fetch 1,core_gpio_in1
+	or_into 0xf0,pdata
+	istore 1,contw
+	rtn
+
+	
+lpm_adjust_clk:
+	bpatch patch04_7,mem_patch04
+	deposit clke
+	call clk_diff_rt
+	fetcht 4,mem_sleep_counter_all
+	sub temp,0xff,null
+	rtn positive				// interval too small
+	lshift8 pdata,pdata
+	lshift4 pdata,pdata
+	idiv temp
+	call get_div_result
+	arg param_lpm_adjmax,temp
+	call ceiling
+	store 1,mem_lpm_adjust
+	nbranch lpm_adjust_positive,user
+	sub pdata,0,pdata
+lpm_adjust_positive:
+	fetcht 3,mem_clks_per_lpo
+	iadd temp,pdata
+	store 3,mem_clks_per_lpo
+lpm_clear_counter:
+	setarg 0
+	store 4,mem_sleep_counter_all
+	rtn
+
+	
+lpm_dispatch:
+	bpatch patch05_0,mem_patch05
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_lpm_mode
+	rtn blank
+	fetch 1,mem_secure_connections_enable
+	branch lpm_dispatch_next,blank
+	fetch 1,mem_sc_local_key_invalid 	// simple pairing is not ready
+	rtn blank
+lpm_dispatch_next:
+	fetch 1,mem_sc_calc
+	nrtn blank	
+	arg context_check_a_wack,regc
+	call context_search
+	rtn zero
+	call lpm_check_wake_lock
+	nrtn blank
+	call context_check_idle						
+	nbranch lpm_dispatch_unconn,zero
+	rtn wake
+	bpatch patch05_1,mem_patch05
+	fetcht 1,mem_lpm_current_mult
+	fetch 2,mem_context + coffset_tsniff
+	imul32 temp,pdata
+	rshift4 temp,temp
+	rshift2 temp,temp
+	isub temp,pdata
+	fetcht 4,mem_context + coffset_sniff_anchor
+	iadd temp,pdata
+	fetcht 1,mem_lpm_overhead
+	isub temp,pdata
+	lshift16 pdata,alarm
+	fetch 2,mem_context + coffset_rx_window
+	rshift pdata,pdata
+	call clk2bt
+	deposit alarm
+	call clk_diff
+	copy clke,temp
+	call clk_diff_rt
+	rtn user
+lpm_dispatch_sleep:
+	call clk2lpo
+lpm_dispatch_lpo:
+	bpatch patch05_2,mem_patch05
+	fetch 1,mem_lpm_xtalcnt
+	isub temp,null
+	branch lpm_clear_counter,positive
+	storet 4,mem_sleep_counter
+	call app_will_enter_lpm
+//	call l2cap_lpm_save_txbuf
+	fetcht 4,mem_sleep_counter
+	branch lpm_sleep
+	
+lpm_dispatch_unconn:
+	bpatch patch05_3,mem_patch05
+	fetch 1,mem_le_adv_enable
+	nbranch lpm_unconn_cont,blank
+	rtn
+	
+lpm_unconn_cont:
+	fetch 2,mem_lpm_interval
+	rtn blank
+lpm_sleep_btclk:
+	fetcht 1,mem_lpm_overhead
+	isub temp,pdata
+	arg 7500,temp				
+	imul32 temp,pdata
+	branch lpm_dispatch_sleep
+
+	
+lpm_mult_wait_timeout:
+	fetch 2,mem_cb_bt_set_mult
+	call callback_func
+	nbranch lpm_mult_short,blank
+	jam 0,mem_lpm_current_mult
+	bmark0 mark_lpm_mult_enable,lpm_mult_short
+	fetch 1,mem_lpm_mult_cnt
+	branch lpm_mult_long,blank
+	increase -1,pdata
+	store 1,mem_lpm_mult_cnt
+	rtn
+
+
+
+
+lpm_match:
+	jam 0,mem_sniff_unint_lost
+	fetch 3,mem_sniff_rcv
+	increase 1,pdata
+	store 3,mem_sniff_rcv
+	rtn
+
+
+lpm_lost:
+	bpatch patch05_4,mem_patch05
+	jam 0,mem_lpm_current_mult
+	fetch 3,mem_sniff_lost
+	increase 1,pdata
+	store 3,mem_sniff_lost
+	fetch 1,mem_sniff_unint_lost
+	increase 1,pdata
+	store 1,mem_sniff_unint_lost
+	rtn
+
+lpm_mult_short:
+	jam 0,mem_lpm_current_mult
+	fetch 1,mem_lpm_mult_timeout
+	store 1,mem_lpm_mult_cnt
+	rtn
+
+lpm_mult_long:
+	fetcht 1,mem_lpm_mult
+	storet 1,mem_lpm_current_mult
+	rtn
+
+
+
+lpm_get_wake_lock:
+	fetch 2,mem_lpm_wake_lock
+	qset1 pdata
+	store 2,mem_lpm_wake_lock
+	rtn
+
+lpm_put_wake_lock:
+	fetch 2,mem_lpm_wake_lock
+	qset0 pdata
+	store 2,mem_lpm_wake_lock
+	rtn
+
+
+
+lpm_check_wake_lock:
+	bpatch patch05_5,mem_patch05
+	call app_check_wake_lock
+	fetch 2,mem_lpm_wake_lock
+	copy pdata,rega
+	fetch 3,mem_tx_fifo3
+	nsetflag blank,wake_lock_ble_tx,rega
+	fetch UTIL_FIFO_LEN,mem_ipc_fifo_bt2c51
+	nsetflag blank,wake_lock_ipc_bt2c51,rega
+	fetch UTIL_FIFO_LEN,mem_ipc_fifo_c512bt
+	nsetflag blank,wake_lock_ipc_c512bt,rega
+	fetch 1,mem_hci_cmd
+	nsetflag blank,wake_lock_cmd,rega
+	fetch 1,mem_device_option
+	compare DVC_OP_MODULE,pdata,0xff
+	call lpm_uart_wake_lock,true
+	copy rega,pdata
+	store 2,mem_lpm_wake_lock
+	rtn
+
+lpm_uart_wake_lock:
+	fetch 2,core_uart_rxitems
+	nsetflag blank,wake_lock_uart_rx ,rega
+	fetch 2,core_uart_txitems
+	nsetflag blank,wake_lock_uart_tx ,rega
+	rtn
+
+	
+
+
+//
+//
+//
+
+le_init_conn:
+	bpatchx patch21_6,mem_patch21
+	disable wake
+	jam 1,mem_le_conn_handle
+	jam 3,mem_le_state
+	jam 1,mem_le_arq
+	setarg -1
+	store 2,mem_le_event_count
+	force 0,pdata
+	store 1,mem_le_ch
+	store 1,mem_le_op
+	store 3,mem_sniff_rcv
+	store 3,mem_sniff_lost
+	call le_clear_enc
+	jam 1,mem_le_txheader
+	jam 0,mem_le_txlen
+	jam FUN_RX_LL_1M_PHY,mem_le_rx_phy
+	jam FUN_TX_LL_1M_PHY,mem_le_tx_phy
+	jam 0,mem_le_l2cap_att_states
+	branch le_supervision_flush
+
+le_init_master:
+	bpatchx patch21_7,mem_patch21
+	enable master
+	jam lemode_master,mem_le_mode
+	jam 1,mem_le_att_handle
+	jam 1,mem_le_search_handle_start
+	setarg 0xffff
+	store 2,mem_le_search_handle_end
+	force 0,pdata
+	store 5,mem_ccm_pcnt_rx
+	set1 LE_CCM_DIRECTIONBIT,pdata
+	store 5,mem_ccm_pcnt_tx	
+	branch le_init_conn
+
+
+le_init_slave:
+	bpatchx patch22_0,mem_patch22
+	disable master
+ 	setarg 0x17
+ 	store 2,mem_le_remote_mtu
+	increase 4,pdata
+	store 2,mem_remote_rx_max_octets
+	jam lemode_slave,mem_le_mode
+	jam 0,mem_le_adv_enable
+	jam 0,mem_lpm_current_mult
+	call le_clear_pairing_state
+	fetch 2,mem_le_superto
+	store 2,mem_le_init_superto
+	fetch 2,mem_le_tsniff
+	mul32 pdata,5,pdata
+	rshift4 pdata,pdata
+	store 2,mem_le_superto			// vol.6 part B 4.5.2 only 6*conninterval before establish
+	branch le_init_conn
+	
+
+//
+//
+//
+
+le_conn_dispatch:
+	bpatchx patch22_1,mem_patch22
+	call le_enable
+ 	fetch 1,mem_le_state
+ 	isolate1 lestate_encryption,pdata
+ 	setflag true,mark_ble_encryption,mark
+	call app_process_ble
+	fetch 1,mem_le_mode
+	bbit1 mode_master,le_master_dispatch
+	branch le_slave_dispatch
+	
+//
+//
+//
+	
+le_master_dispatch:
+	bpatchx patch22_2,mem_patch22
+	enable master
+	call le_supervision_update
+	branch le_master_disconn,positive
+	call le_setup
+	call le_prepare_tx
+	disable match
+	call le_transmit_receive_sifs
+	nrtn match
+	fetch 1,mem_le_conn_rcv
+	increase 1,pdata
+	store 1,mem_le_conn_rcv
+	call le_acknowledge
+	disable master
+	rtn
+	
+le_master_disconn:
+	call le_disconnect
+	disable master
+	rtn
+	
+//
+//
+//
+le_slave_dispatch:
+	bpatchx patch22_3,mem_patch22
+	jam 0,mem_le_md_count
+	set0 mark_ble_crc_fail,mark
+	call sp_calc_sequence_256
+	call le_secure_connect_sm
+	disable attempt
+	call le_supervision_update
+	branch le_slave_disconn,positive
+	fetch 1,mem_le_rx_phy
+	call le_enable_phy_by_pdata
+	call le_setup
+	call le_receive_slave
+	nbranch le_slave_unsync,sync	// vol.6 part B 4.5.1 respond even crc error
+	call le_got_first_packet
+	branch le_slave_match,match
+	bmark1 mark_ble_crc_fail,le_slave_crc_fail
+	branch le_slave_cont
+	
+
+le_slave_crc_fail:
+le_slave_match:
+	bpatchx patch22_4,mem_patch22
+	fetch 1,mem_le_md_count
+	pincrease 1
+	store 1,mem_le_md_count
+	beq LE_MD_MAX_COUNT,le_slave_cont
+	call le_acknowledge
+	call le_prepare_tx
+	fetch 1,mem_le_tx_phy
+	call le_enable_phy_by_pdata
+	call le_transmit
+	call le_parse
+	fetch 2,mem_cb_ble_transmit
+	call callback_func
+	call le_check_md
+	branch le_slave_more_data,user
+le_slave_cont:
+	bpatchx patch22_5,mem_patch22
+	call le_pairing_sm
+ 	call le_check_paring_time
+	call check_51cmd
+	fetch 1,mem_le_op
+	bbit1 op_disconn,le_slave_disconn
+le_slave_unsync:
+	bpatchx patch22_6,mem_patch22
+	call end_of_packet
+	call le_lpm_set_mult
+	branch calc_clke_offset
+
+
+le_check_md:
+	disable user
+	bmark1 mark_ble_rx_md,enable_user
+	bmark1 mark_ble_tx_md,enable_user
+	bmark1 mark_ble_crc_fail,enable_user
+	rtn
+
+
+le_slave_more_data:
+	bpatchx patch22_7,mem_patch22
+	enable attempt
+	call le_transmit_receive_sifs_notx
+	branch le_slave_match,match
+	bmark1 mark_ble_crc_fail,le_slave_crc_fail
+	branch le_slave_cont
+
+le_slave_disconn:
+	//fall through
+le_disconnect:
+	bpatchx patch23_0,mem_patch23
+	call le_clear_connection_info
+	call app_disconn_reason_collect_ble
+	call le_clear_pairing_state
+	call le_sc_state_clear
+	jam BT_EVT_LE_DISCONNECTED,mem_fifo_temp
+	branch ui_ipc_send_event
+
+le_clear_connection_info:
+	arg mem_used_map,contw
+	call memset0_16
+	jam 0,mem_le_conn_handle
+	jam lemode_idle,mem_le_mode
+	jam 0,mem_le_state
+le_clear_pairing_state:
+	bpatchx patch23_1,mem_patch23
+	jam FLAG_LE_ENC_NULL,mem_le_enc_state
+	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state 
+	call sp_clear_flags
+	rtn
+	
+le_got_first_packet:
+	bpatchx patch23_2,mem_patch23
+	fetch 1,mem_le_conn_rcv
+	increase 1,pdata
+	store 1,mem_le_conn_rcv
+	fetch 1,mem_le_state
+	rtnbit1 lestate_got_first_packet
+	set1 lestate_got_first_packet,pdata
+	store 1,mem_le_state
+	fetch 2,mem_le_init_superto
+	store 2,mem_le_superto
+	setarg 0
+	store 4,mem_le_transmit_window
+	rtn
+
+
+//input: pdata is phy mode
+//bit0 is le 1M phy
+//bit1 is le 2M phy
+//bit2 is le coded phy s2
+//bit7 is le coded phy s8
+le_enable_phy_by_pdata:
+	copy pdata,temp
+	bpatchx patch23_3,mem_patch23
+le_enable_phy_by_pdata1:
+	copy temp,pdata
+	bbit1 BIT_LE_1M_PHY,le_enable
+	bbit1 BIT_LE_2M_PHY,le_enable_2M
+	bbit0 BIT_LE_CODED_PHY,le_enable
+	bbit1 BIT_LE_CODED_PHY_S8,le_enable_coded_s8
+	bbit1 BIT_LE_CODED_PHY_S2,le_enable_coded_s2
+	branch le_enable
+
+le_enable_2M:
+	set0 mark_ble_lr,mark
+	set1 mark_ble_2M,mark
+	rtn
+
+le_enable_coded_s2:
+le_enable_coded:
+	set0 mark_ble_2M,mark
+	set1 mark_ble_lr,mark
+	set0 mark_ble_lr_s8,mark
+	rtn
+
+
+le_enable_coded_s8:
+	set0 mark_ble_2M,mark
+	set1 mark_ble_lr,mark
+	set1 mark_ble_lr_s8,mark
+	rtn
+
+le_enable:
+	bpatchx patch23_4,mem_patch23
+	set0 mark_ble_2M,mark
+	set0 mark_ble_lr,mark
+	rtn
+
+
+le_disable:
+	bpatchx patch23_5,mem_patch23
+	set0 mark_ble_encryption,mark
+	jam 0x01,0x8901
+	jam 0x80,0x8920
+	jam 0x03,0x8930
+	rtn
+	
+le_prep:
+	bpatchx patch23_6,mem_patch23
+	disable enable_crc
+	disable enable_white
+	fetch 3,mem_le_crcinit
+	iforce crc24_init
+	fetch 1,mem_le_ch_mapped
+le_prep_next:
+	reverse pdata,temp
+	set1 1,temp
+	rshift temp,white_init
+	rtn
+	
+
+le_rx_setfreq:
+	call le_setfreq
+le_rf_rx_enable:	
+	call set_freq_rx
+	fetch 2,mem_param_pll_setup
+	call sleep
+	branch rf_rx_enable
+
+le_tx_setfreq:
+	branch txon,match
+	bmark1 mark_ble_crc_fail,txon
+le_tx_setfreq0:
+	call le_setfreq
+	branch set_freq_tx
+	
+le_setfreq:
+	bpatchx patch23_7,mem_patch23
+	call set_sync_on
+	fetch 1, mem_le_testtype
+	nbranch le_ctf_test,blank
+	fetch 1,mem_le_ch_mapped
+	sub pdata,36,null
+	branch le_ctf_normal,positive
+	force 0,temp
+	rtneq 37
+	force 24,temp
+	rtneq 38
+	force 78,temp
+	rtn
+	
+le_ctf_normal:
+	sub pdata,10,null
+	branch le_ctf_low,positive
+	increase 1,pdata
+	
+le_ctf_low:	
+	lshift pdata,pdata
+	add pdata,2,temp
+	rtn
+	
+le_ctf_test:
+	fetch 1,mem_le_ch_mapped
+	lshift pdata,temp
+	rtn
+
+le_sca_map:
+	arg 500,temp
+	rtn blank
+	arg 250,temp
+	rtneq 1
+	arg 150,temp
+	rtneq 2
+	arg 100,temp
+	rtneq 3
+	arg 75,temp
+	rtneq 4
+	arg 50,temp
+	rtneq 5
+	arg 40,temp
+	rtneq 6
+	arg 20,temp
+	rtn
+
+
+	
+le_setup:
+	bpatchx patch24_0,mem_patch24
+	enable swfine
+	fetch 4,mem_le_access
+	iforce access
+	call le_map_channel
+	setarg 0x200
+	branch le_setup_master,master
+	fetch 2,mem_le_receive_window
+	rshift pdata,pdata
+le_setup_master:
+	fetcht 2,mem_param_pll_setup
+	iadd temp,pdata
+	call ahead_window
+	deposit clke
+	rtn
+
+
+le_context_nextevent:
+	bpatchx patch24_1,mem_patch24
+	call push_stack_rega_b_c
+	storer loopcnt ,2,mem_loopcnt
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	rtnbit0 mode_le
+	add rega,coffset_le_event_cnt,contw
+	ifetch 2,contw
+	increase 1,pdata
+	istore 2,contw
+	call le_update_param
+	call le_update_channel_map
+	call le_update_phy	
+	call le_context_nexthop
+	call pop_stack_rega_b_c
+	fetchr loopcnt ,2,mem_loopcnt
+	rtn
+	
+le_context_nexthop:	
+	add rega,coffset_le_hop,contr
+	ifetch 1,contr
+	add rega,coffset_le_ch,contw
+	ifetcht 1,contw
+	iadd temp,pdata
+	sub pdata,36,null
+	branch le_nexthop_nowrap,positive
+	increase -37,pdata
+le_nexthop_nowrap:
+	istore 1,contw
+	rtn
+
+//input rega
+le_calc_channel_map:
+	add rega,coffset_le_channel_map,contr
+	ifetch 5,contr
+	force 0,temp
+	force 37,loopcnt
+le_count_channels_loop:
+	bbit0 0,le_count_channels_notused
+	increase 1,temp
+le_count_channels_notused:
+	rshift pdata,pdata
+	loop le_count_channels_loop
+	add temp,-1,pdata
+	add rega,coffset_le_channels,contw
+	istore 1,contw
+	rtn
+
+le_map_channel:
+	bpatchx patch24_2,mem_patch24
+	fetch 1,mem_le_ch
+	iforce queue
+	fetcht 5,mem_le_channel_map
+	qisolate1 temp
+	branch le_map_channel_end,true
+le_map_channel_next:
+	fetch 1,mem_le_channels
+	isub queue,pdata
+	branch le_map_channel_cont,positive
+	sub pdata,-1,queue
+	branch le_map_channel_next
+le_map_channel_cont:
+	copy queue,loopcnt
+	force 0,queue
+le_map_channel_loop:
+	qisolate1 temp
+	branch le_map_channel_skip,true
+	increase 1,loopcnt
+le_map_channel_skip:
+	deposit loopcnt
+	branch le_map_channel_end,blank
+	increase 1,queue
+	increase -1,loopcnt
+	branch le_map_channel_loop
+le_map_channel_end:
+	deposit queue
+	store 1,mem_le_ch_mapped
+	rtn
+
+
+le_wait_tx:
+	branch le_wait_master,master
+	until null,timeout
+	rtn
+	
+le_wait_master:
+	arg 0xea0,timeup
+	until clkn_rt,meet
+	rtn
+
+le_receive_adv:
+	disable swfine
+	fetch 2,mem_le_scan_window
+	copy pdata,timeup
+	branch le_receive_packet
+
+
+le_receive_slave:
+	bpatchx patch24_3,mem_patch24
+ 	call le_dec_init
+	enable swfine
+	fetch 2,mem_le_receive_window
+	fetcht 4,mem_le_transmit_window
+	iadd temp,timeup
+le_receive_packet:
+	call le_rx_setfreq
+le_receive_rxon:
+	bpatchx patch24_4,mem_patch24
+	call le_prep
+	bmark0 mark_ble_lr,le_receive_nolr
+	pulse dewhiten_code_calc
+	nop 30
+	call le_prep
+	lshift3 timeup,timeup
+le_receive_nolr:
+	disable match
+	enable decode_fec0
+	enable is_rx
+	disable is_tx
+	copy timeup,stop_watch
+	correlate null,timeout
+	branch le_receive_on_attempt,attempt
+	copy clke,temp
+	storet 6,mem_sync_clke
+le_receive_on_attempt:
+	nbranch le_unsync_end,sync
+	enable swfine
+	fetch 1,mem_le_tx_ifs_defference
+	arg PARAM_20MS_INIT,temp
+	iadd temp,temp
+	fetch 1,mem_system_clk
+	imul32 temp,stop_watch
+	call rf_debug_rx_sync_line	//L-H
+	branch le_receive_skip,attempt
+	call calc_clke_all_modem
+	fetch 1,mem_le_state
+	bbit0 lestate_got_first_packet,le_receive_skip
+	fetcht 6,mem_sync_clke
+	call lpm_adjust_clk,wake
+le_receive_skip:
+	call save_rssi
+	enable enable_white
+	enable enable_crc
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_le_rxbuf_data_header
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_le_rxbuf_data_length
+ 	copy pdata,loopcnt
+	branch le_rx_nopayload,zero
+
+	bmark1 mark_ble_encryption,le_rx_dec
+
+le_rx_loop:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	loop le_rx_loop
+	branch le_rx_nopayload
+
+le_rx_dec: 
+	copy contw,regb
+	bpatchx patch24_5,mem_patch24
+	call le_check_retransmit	
+//	bmark1 mark_old_packet,le_retransmit_end_of_packet
+	fetchr rega, 1,mem_le_rxbuf_data_length
+	increase -4,rega
+	nbranch le_mic_error,positive
+//	storer rega, 1,mem_le_rxbuf_data_length
+	call le_dec_start	
+	copy regb,contw
+	arg 0,temp
+	fetchr loopcnt, 1,mem_le_rxbuf_data_length
+	increase -4,loopcnt
+	branch le_rx_dec_loop_end,zero
+le_rx_dec_loop:
+	
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	increase 1,temp
+	and temp,0xf,null
+	call le_dec,zero
+	loop le_rx_dec_loop
+le_rx_dec_loop_end:
+	call le_dec_end	
+	copy regb,contw
+	
+
+le_rx_nopayload:
+	bpatchx patch24_6,mem_patch24
+	parse demod,bucket,24	
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	enable swfine
+	call le_set_until_tx_timer
+	branch le_crc_fail,crc_failed
+	bmark0 mark_ble_encryption,le_rx_match
+	fetch 1,mem_le_rxbuf_data_length
+	branch le_rx_match,blank
+	increase -4,pdata
+	store 1,mem_le_rxbuf_data_length
+	call wait_ccm_done
+ 	fetch 1,core_misc_status
+	bbit0 7, le_mic_error
+ 	force regidx_result,regext_index
+	storer regext, 4,mem_le_peer_mic
+le_rx_match:
+	call rf_debug_rx_crc_line	//L
+	enable match
+	set0 mark_ble_crc_fail,mark
+le_crc_fail_tx:
+	bpatchx patch24_7,mem_patch24
+	call ccm_ctrl_clr
+	fetch 1,mem_le_rx_phy
+	nsetflag ble_coded_info,BIT_LE_CODED_PHY_S8,pdata
+	store 1,mem_le_rx_phy
+	call le_match_set_sync_on
+	branch le_match_set_txfreq
+	
+le_match_set_sync_on:	
+	disable decode_fec0
+	branch set_sync_on
+	
+le_match_set_txfreq:
+	bpatchx patch25_0,mem_patch25
+	fetcht 1,mem_last_freq
+	branch set_freq_tx_int	
+	
+
+le_dec_init:
+	rtnmark0 mark_ble_encryption
+	call load_sk
+	force regidx_result,regext_index
+	call aes_clear
+	branch aes_clear_data
+	
+	
+le_dec_start:
+	bpatchx patch25_1,mem_patch25
+	jam 0,core_ccm_aad0 
+	jam 1,core_ccm_aad1
+	fetch 1,mem_le_rxbuf_data_header
+	and_into 0x3,pdata
+	store 1,core_ccm_aad2
+	
+	setarg mem_le_rxbuf_data_payload
+	store 2,core_ccm_input_playload_addr
+	store 2,core_ccm_output_playload_addr
+
+	fetchr rega, 1,mem_le_rxbuf_data_length
+	increase -4,rega
+
+	fetcht 5,mem_ccm_pcnt_rx	
+	isolate1 mark_old_packet,mark
+	call le_pcnt_rx_sub1,true
+	call ccm_b0
+	setarg 0
+	store 2,core_ccm_inptr
+	jam 6,core_ccm_ctrl
+	jam 7,core_ccm_ctrl	
+	rtn	
+
+le_pcnt_rx_sub1:
+	sub temp,0,null
+	branch le_pcnt_rx_sub1_0,zero
+	increase -1,temp
+	set1 LE_CCM_DIRECTIONBIT,temp
+	rtn
+
+le_pcnt_rx_sub1_0:
+	setarg 0xffffff
+	lshift16 pdata,pdata
+	arg 0xffff,temp
+	ior temp,temp
+	rtn
+
+le_dec:
+	copy contw,regb
+	fetch 1,mem_le_rxbuf_data_length
+	increase -4,pdata
+	isub temp,null
+	rtn zero
+	storet 2,core_ccm_inptr
+	copy regb,contw
+	rtn
+	
+le_dec_end://mic
+	parse demod,bucket,32
+	rshift32 pdata,pdata
+	rshift8 pdata,pdata
+	istore 4,contw
+	copy contw,regb
+//	store 4,mem_le_peer_mic
+	force regidx_data,regext_index
+	copy  pdata,regext
+	storet 2,core_ccm_inptr
+	rtn
+
+le_mic_error:
+	branch le_end_of_packet
+
+le_retransmit_end_of_packet:
+	call le_set_until_tx_timer	// start SIFS timer after last bit of crc
+	call end_of_packet
+	branch le_rx_match
+
+le_crc_fail:
+	call rf_debug_rx_crc_fail_line
+	bmark1 mark_ble_crc_fail,le_crc_fail_consecutive //two consecutive packets received with an invalid CRC match within a connection event shall close the event
+	set1 mark_ble_crc_fail,mark
+	branch le_crc_fail_tx
+	
+le_unsync_end:	
+le_crc_fail_consecutive:
+	set0 mark_ble_crc_fail,mark
+	branch le_end_of_packet
+
+le_end_of_packet:
+	bpatchx patch25_2,mem_patch25
+	call ccm_ctrl_clr
+	branch end_of_packet
+	
+calc_clke_all_modem:
+	bmark1 mark_ble_lr,calc_clke_modem_coded
+	bmark1 mark_ble_2M,calc_clke_modem_2M
+	fetch 2,mem_param_clke_cal_le_1m
+	copy pdata,clke_rt
+	copy bt_clk,clke_bt
+	rtn
+
+
+calc_clke_modem_coded:
+	fetch 2,mem_param_clke_cal_le_coded
+	copy pdata,clke_rt
+	add bt_clk,1,clke_bt
+	rtn
+
+calc_clke_modem_2M:
+	fetch 2,mem_param_clke_cal_le_2m
+	copy pdata,clke_rt
+	copy bt_clk,clke_bt
+	rtn
+
+
+le_set_until_tx_timer:
+	fetch 1,mem_le_rxbuf_data_length
+	add pdata,5,temp	//PDU Length
+	lshift3 temp,temp	//PDU bit size
+	fetch 1,mem_le_rx_phy
+	bmark1 mark_ble_lr,le_set_until_tx_timer_rx_lr
+	bbit1 BIT_LE_1M_PHY,le_set_until_tx_timer_rx_1M
+	bbit1 BIT_LE_2M_PHY,le_set_until_tx_timer_rx_2M
+le_set_until_tx_timer_rx_lr:
+	branch le_set_until_tx_timer_rx_coded_s2,ble_coded_info
+	branch le_set_until_tx_timer_rx_coded_s8
+
+le_set_until_tx_timer_rx_1M:
+	branch le_calc_stop_watch
+
+le_set_until_tx_timer_rx_2M:
+	rshift temp,temp
+	branch le_calc_stop_watch
+
+le_set_until_tx_timer_rx_coded_s2:
+	add temp,3,temp	//term2
+	lshift temp,temp
+	branch le_set_until_tx_timer_rx_coded
+
+le_set_until_tx_timer_rx_coded_s8:
+	add temp,3,temp	//term2
+	lshift3 temp,temp
+le_set_until_tx_timer_rx_coded:
+	setarg PARAM_CODED_C1_TERM1_TIME_40US
+	iadd temp,temp
+	branch le_calc_stop_watch
+
+le_calc_stop_watch:
+	fetch 1,mem_system_clk
+	imul32 temp,temp		//mips cpu
+	arg PARAM_20MS_INIT,rega
+	imul32 rega,pdata
+	isub temp,temp
+	copy stop_watch,pdata
+	isub temp,stop_watch
+	rtn
+
+le_transmit_receive_sifs_without_change_mode:
+	call le_transmit
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	enable swfine
+	arg 5500,timeup
+	branch le_receive_rxon
+
+
+le_transmit_receive_sifs:
+	bpatchx patch25_3,mem_patch25
+	fetch 1,mem_le_tx_phy
+	call le_enable_phy_by_pdata
+	call le_transmit
+le_transmit_receive_sifs_notx:
+	fetch 1,mem_le_rx_phy
+	call le_enable_phy_by_pdata
+
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	enable swfine
+	arg 5500,timeup
+	bmark0 mark_ble_lr,le_receive_rxon
+	arg 8500,timeup
+	branch le_receive_rxon
+
+le_transmit_norx:
+	bpatchx patch25_4,mem_patch25
+	call le_transmit
+	branch end_of_packet
+	
+le_transmit:
+	bpatchx patch25_5,mem_patch25
+	call le_prep
+	call le_tx_setfreq
+	call rf_debug_tx_on_line	//H
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	call le_wait_tx
+	disable lr_s2en
+	bmark1 mark_ble_lr,le_transmit_lr
+	bmark1 mark_ble_2M,le_transmit_2M
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+le_transmit_packet:
+	enable enable_white
+	enable enable_crc
+	bpatchx patch25_6,mem_patch25
+	fetch 1,mem_le_txheader
+	inject mod,8
+	ifetch 1,contr
+	copy pdata,loopcnt
+	inject mod,8
+	sub loopcnt,0,null
+	branch le_tr_nopayload,zero
+
+	fetch 1,core_ccm_ctrl
+	branch le_transmit_packet_not_enc,blank 
+	bmark1 mark_ble_encryption,le_transmit_packet_enc
+le_transmit_packet_not_enc:	
+	arg mem_le_txpayload,contr
+le_tr_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop le_tr_loop
+	
+le_tr_nopayload:
+	enable enable_parity
+	inject mod,24
+	disable enable_parity
+	bmark0 mark_ble_lr,le_transmit_skip
+	disable enable_white
+	setarg 0
+	inject mod,3
+le_transmit_skip:
+	until null,tx_clear
+	nop 100          
+	bpatchx patch25_7,mem_patch25
+	disable encode_fec0
+	disable encode_fec3
+	call set_sync_on
+	call rf_debug_tx_off_line	//L
+le_check_start_pause_enc:
+	fetch 1,mem_le_txheader
+	and pdata,LLID_LE_LL,pdata
+	rtnne LLID_LE_LL
+	fetch 1,mem_le_enc_state
+	beq  FLAG_LE_ENC_PAUSE,le_clear_enc
+	rtnne FLAG_LE_SEND_START_ENC_REQ
+	fetch 1,mem_le_txpayload
+	beq LL_START_ENC_REQ,le_set_enc
+	rtn
+	
+
+le_transmit_packet_enc:
+	increase -4,loopcnt
+	copy loopcnt,temp	
+	call ccm_wait_enc	
+	arg mem_le_txpayload,contr
+le_transmit_packet_enc_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop le_transmit_packet_enc_loop
+	call ccm_check_enc_done
+	copy regext,pdata
+	inject mod,32
+	branch le_tr_nopayload
+
+le_transmit_lr:
+	arg 10,loopcnt
+le_transmit_lr_preamble_loop:
+	setarg 0x3c
+	inject mod,8
+	loop le_transmit_lr_preamble_loop
+	disable encode_fec0
+	enable encode_fec3
+	rshift16 access,pdata
+	rshift16 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,32
+	bmark1 mark_ble_lr_s8,le_transmit_lr_s8
+le_transmit_lr_s2:
+	setarg 1
+	inject mod,5
+	enable lr_s2en
+	branch le_transmit_packet
+
+le_transmit_lr_s8:
+	setarg 0
+	inject mod,5
+	branch le_transmit_packet
+
+le_transmit_2M:
+	fetch 1,mem_system_clk	
+	fetcht 1,mem_le_tx2m_delay
+	iadd temp,pdata
+	call sleep				//2M 前端发送比1M快
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,temp
+	copy temp,pdata
+	inject mod,8
+	copy temp,pdata
+	inject mod,40
+	branch le_transmit_packet
+	
+
+le_update_param:
+	arg le_update_param_ahead1_cb,regc
+	arg le_update_param_cb,regb
+	arg lestate_update_param,queue
+	branch le_check_update_flag
+
+le_update_param_ahead1_cb:
+	add rega,coffset_sniff_anchor,contr
+	ifetcht 4,contr
+	add rega,coffest_le_new_transmitwindowsize,contr
+	ifetch 1,contr
+	add rega,coffset_le_window_size,contw
+	istore 1,contw
+	ifetch 2,contr
+	lshift2 pdata,pdata
+	iadd temp,timeup	//add windowsize
+	add rega,coffset_sniff_anchor,contw  
+	deposit timeup
+	istore 4,contw
+	ifetch 2,contr
+	lshift2 pdata,pdata
+	add rega,coffset_tsniff,contw
+	istore 2,contw
+	ifetch 2,contr
+	add rega,coffset_le_slave_latency,contw
+	istore 2,contw
+	ifetch 2,contr
+	store 2,mem_le_init_superto
+	branch le_receive_window_size
+
+le_update_param_cb:
+	ifetch 1,rega
+	set0 lestate_got_first_packet,pdata
+	istore 1,rega
+	storer rega,2,mem_rega
+	jam BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mem_fifo_temp
+	call ui_ipc_send_event
+	fetchr rega,2,mem_rega
+	rtn	
+
+le_update_channel_map:
+	arg 0,regc
+	arg le_update_channel_map_cb,regb
+	arg lestate_update_map,queue
+	branch le_check_update_flag
+	
+le_update_channel_map_cb:
+	add rega,coffset_le_new_map,contr
+	ifetch 5,contr
+	add rega,coffset_le_channel_map,contw
+	istore 5,contw
+	branch le_calc_channel_map
+	
+
+le_update_phy:
+	arg 0,regc
+	arg le_update_phy_cb,regb
+	arg lestate_update_phy,queue
+	branch le_check_update_flag
+	
+le_update_phy_cb:
+	add rega,coffset_le_new_m2s_phy,contr
+	ifetch 1,contr
+	call le_update_phy_cb_m2s
+	istore 1,contw
+	add rega,coffset_le_new_s2m_phy,contr
+	ifetch 1,contr
+	call le_update_phy_cb_s2m
+	istore 1,contw
+	storer rega,2,mem_rega
+	jam BT_EVT_LE_UPDATE_PHY,mem_fifo_temp
+	call ui_ipc_send_event
+	fetchr rega,2,mem_rega
+	rtn	
+
+le_update_phy_cb_m2s:
+	call le_update_phy_cb_m2s_no_change,blank
+	add rega,coffset_le_rx_phy,contw
+	nrtn master
+	fetcht 1,mem_le_tx_phys
+	isolate1 BIT_LE_CODED_PHY_S8,temp
+	setflag true,BIT_LE_CODED_PHY_S8,pdata
+	add rega,coffset_le_tx_phy,contw
+	rtn
+
+le_update_phy_cb_m2s_no_change:
+	add rega,coffset_le_rx_phy,contr
+	ifetch 1,contr
+	nrtn master
+	add rega,coffset_le_tx_phy,contr
+	ifetch 1,contr
+	rtn
+
+le_update_phy_cb_s2m:
+	call le_update_phy_cb_s2m_no_change,blank
+	fetcht 1,mem_le_tx_phys
+	isolate1 BIT_LE_CODED_PHY_S8,temp
+	setflag true,BIT_LE_CODED_PHY_S8,pdata
+	add rega,coffset_le_tx_phy,contw
+	nrtn master
+	set0 BIT_LE_CODED_PHY_S8,pdata
+	add rega,coffset_le_rx_phy,contw
+	rtn
+
+le_update_phy_cb_s2m_no_change:
+	add rega,coffset_le_tx_phy,contr
+	ifetch 1,contr
+	nrtn master
+	add rega,coffset_le_rx_phy,contr
+	ifetch 1,contr
+	rtn
+	
+
+//regb regc is cb function
+//queue is state flag
+le_check_update_flag:
+	bpatchx patch26_0,mem_patch26
+	ifetch 1,rega
+	qisolate0 pdata
+	rtn true
+	add rega,coffset_le_event_cnt,contr
+	ifetcht 2,contr
+	add rega,coffset_le_instant,contr
+	ifetch 2,contr
+	
+	isub temp,pdata
+	branch le_update,zero
+	nbranch le_check_update_small,positive
+	sub pdata,1,null
+	branch le_update_ahead1,zero
+	rtn
+	
+le_update_ahead1:
+	copy regc,pdata
+	branch callback_func
+
+le_update:
+	ifetch 1,rega
+	qset0 pdata
+	istore 1,rega
+	copy regb,pdata
+	branch callback_func
+	
+le_check_update_small:
+	add rega,coffset_le_event_cnt,contr
+	ifetch 2,contr
+	add rega,coffset_le_instant,contr
+	ifetch 2,contr
+	isub temp,pdata
+	arg 0xffff,temp
+	isub temp,null
+	branch le_update,zero
+	arg 0xf000,temp
+	isub temp,null
+	nbranch le_update,positive
+	rtn
+	
+
+le_check_retransmit:
+	fetcht 1,mem_le_arq
+	fetch 1,mem_le_rxbuf_data_header
+//	isolate1 md,pdata
+//	setflag true,mark_ble_rx_md,mark
+	rshift pdata,pdata
+	ixor temp,pdata
+	isolate1 nesn,pdata
+	setflag true,mark_old_packet,mark	
+	rtn
+
+
+le_acknowledge:
+	bpatchx patch26_1,mem_patch26
+	call le_supervision_flush
+	rtnmark1 mark_ble_crc_fail
+	call le_check_wak
+	fetch 1,mem_le_rxbuf_data_header
+	isolate1 md,pdata
+	setflag true,mark_ble_rx_md,mark
+	rshift pdata,pdata
+	ixor temp,pdata
+	isolate1 nesn,pdata
+	setflag true,mark_old_packet,mark	
+	rtnmark1 mark_old_packet
+	fetch 1,mem_le_rxbuf_data_length
+	branch le_ack_unenc,blank		
+	fetch 1,mem_le_state
+	bbit0 lestate_encryption,le_ack_unenc
+	fetcht 4,mem_le_peer_mic
+	fetch 4,mem_ccm_last_mic			
+	isub temp,null
+	branch assert,zero
+	storet 4,mem_ccm_last_mic
+	fetch 5,mem_ccm_pcnt_rx
+	increase 1,pdata
+	set1 LE_CCM_DIRECTIONBIT,pdata
+	store 5,mem_ccm_pcnt_rx
+	
+le_ack_unenc:
+	fetcht 1,mem_le_arq
+	setflip nesn,temp
+	storet 1,mem_le_arq
+	fetch 1,mem_le_configuration
+	rtnbit0 BIT_BLE_DEAL_BB_PACKET
+	bpatchx patch26_2,mem_patch26
+	fetch 1,mem_le_rxbuf_data_length
+	rtn blank		//empty packet
+	fetch 1,mem_le_rxbuf_data_header
+	compare LLID_CONTINUE,pdata,3
+	branch le_parse_writing_attribute_continue,true //ACL-U continue
+	compare LLID_START,pdata,3
+	branch le_parse_writing_attribute_start,true
+	rtn
+
+	
+le_check_wak:
+	bpatchx patch26_3,mem_patch26
+	fetcht 1,mem_le_arq
+	isolate0 wak,temp
+	rtn true
+	fetch 1,mem_le_rxbuf_data_header
+	lshift pdata,pdata
+	ixor temp,pdata
+	rtnbit0 sn			
+	set0 wak,temp
+	setflip sn,temp
+	storet 1,mem_le_arq
+	compare 3,temp,3
+//	nrtn true
+	rtn
+	
+
+le_set_enc:
+	fetch 1,mem_le_state
+	set1 lestate_encryption,pdata
+	store 1,mem_le_state
+	set1 mark_ble_encryption,mark
+	rtn	
+	
+le_clear_enc:
+	bpatchx patch26_4,mem_patch26
+	jam FLAG_LE_ENC_NULL,mem_le_enc_state
+	arg 0,pdata
+	store 4,mem_ccm_last_mic
+	store 5,mem_ccm_pcnt_tx
+	set1 LE_CCM_DIRECTIONBIT,pdata
+	store 5,mem_ccm_pcnt_rx
+	fetch 1,mem_le_state
+	set0 lestate_encryption,pdata
+	store 1,mem_le_state
+	set0 mark_ble_encryption,mark
+	rtn
+
+
+
+
+le_scan_check_sender_addr_type:
+	arg 1,rega// sender_addr_type
+	fetch 1,mem_le_rxbuf_adv_connect_ind_header
+	rtnbit1 LE_SENDER_ADDR_BIT
+	arg 0,rega
+	rtn
+
+
+le_get_master_rx_max:
+	copy contr,contw
+	fetcht 2,mem_remote_rx_max_octets
+	copy contw,contr
+	rtn
+
+
+le_prepare_tx:
+	bpatchx patch26_5,mem_patch26
+	fetch 1,mem_le_arq
+	rtnbit1 wak
+	call le_check_tx_md
+	call le_fifo_get_first_tx_ptr	//no packet to send
+	branch le_send_empty,blank
+	ifetch 2,contr
+	ifetcht 2,contr
+	copy temp,rega
+	isub rega,pdata
+	call le_get_master_rx_max
+	call not_greater_than
+	copy pdata,temp
+	ifetchr type,1,contr
+	copy rega,pdata
+	iadd contr,pdata
+	store 2,mem_contr
+	call le_update_tx_type
+	call le_send_packet
+	
+	call le_fifo_get_first_tx_ptr
+	ifetch 2,contr
+	copy pdata,rega	//rega:total length
+	copy contr,regc
+	ifetcht 2,contr
+	copy temp,regb	//temp&regb is offset
+	isub regb,pdata
+	call le_get_master_rx_max
+	call not_greater_than
+	iadd regb,pdata
+	istore 2,regc
+	isub rega,null
+	nrtn zero
+	branch le_fifo_release_first_node
+
+	
+le_check_tx_md:
+	call le_check_continue
+	rtnmark1 mark_ble_tx_md
+	fetch 1,mem_le_configuration
+	bbit0 BIT_BLE_TRANSMIT_PACKET_BY_MD,le_clear_md
+	call le_fifo_get_second_tx_ptr	//no packet to send
+	branch le_clear_md,blank
+	branch le_set_md
+
+	
+le_check_continue:
+	call le_fifo_get_first_tx_ptr	//no packet to send
+	branch le_clear_md,blank
+	ifetch 2,contr				//pdata:length
+	ifetcht 2,contr				//temp:offest
+	isub temp,rega			//pdata:length - offset
+	call le_get_master_rx_max
+	copy temp,pdata
+	isub rega,null
+	branch le_clear_md,positive				//27 > length -offset
+le_set_md:
+	set1 mark_ble_tx_md,mark
+	rtn
+
+le_clear_md:
+	set0 mark_ble_tx_md,mark
+	rtn
+
+le_update_tx_type:
+	copy rega,pdata
+	rtn blank
+	arg LLID_CONTINUE,type
+	rtn
+
+
+le_att_check_notification_enable: // temp ->handle,output-> pdata,output :contr->rega
+	bpatchx patch26_6,mem_patch26
+	increase 1,temp
+	call le_att_get_handle_ptr
+	increase -2,contr
+	ifetch 2,contr
+	arg CLIENT_CHARACTERTIC_CONFIGURATION,temp
+	isub temp,null
+	nrtn zero
+	increase 1,contr
+	copy contr,rega
+	ifetch 1,contr
+	rtn
+	
+
+le_send_empty:
+	force 0,temp
+	force 1,type
+	
+le_send_packet:
+	bpatchx patch26_7,mem_patch26
+	storet 1,mem_le_txlen
+	fetcht 1,mem_le_arq
+	set1 wak,temp
+	and temp,0xfc,pdata
+	ior type,pdata
+	store 1,mem_le_arq
+	and_into 0x1f,pdata
+	isolate1 mark_ble_tx_md,mark
+	setflag true,md,pdata
+	store 1,mem_le_txheader
+
+	fetch 1,mem_le_txheader
+	compare 1,type,3
+	nbranch le_send_no_txlen,true
+	fetch 1,mem_le_txlen
+	rtn blank
+	
+le_send_no_txlen:	
+	bmark1 mark_ble_encryption,le_send_packet_enc
+	fetchr loopcnt,1,mem_le_txlen
+	fetch 2,mem_contr
+	copy pdata,contr
+	arg mem_le_txpayload,contw
+	branch memcpy_fast
+	
+le_send_packet_enc:
+	call load_sk
+	branch le_encrypt_new_start
+
+get_lpm_wake_ble_rx_lock:
+	arg wake_lock_ble_rx,queue
+	branch lpm_get_wake_lock
+
+put_lpm_wake_ble_rx_lock:
+	arg wake_lock_ble_rx,queue
+	branch lpm_put_wake_lock
+
+
+le_parse:
+	bpatchx patch27_0,mem_patch27
+	rtnmark1 mark_old_packet
+	rtnmark1 mark_ble_crc_fail
+	fetch 1,mem_le_rxbuf_data_header
+	and pdata,0x3,pdata
+	store 1,mem_le_packet_llid
+	fetch 1,mem_le_rxbuf_data_length
+	rtn blank							//empty rtn
+	setarg mem_le_rxbuf_data_payload
+	store 2,mem_le_payload_ptr
+	bpatchx patch27_1,mem_patch27
+	fetch 1,mem_le_packet_llid
+	beq LLID_LE_LL,le_parse_ll
+le_parse_l2cap:
+	call le_check_l2cap_complete
+	nbranch get_lpm_wake_ble_rx_lock,user
+	call put_lpm_wake_ble_rx_lock
+	setarg 0
+	store 2,mem_le_packet_len_recved
+	fetch 2,mem_le_payload_ptr
+	add pdata,2,contr	//l2cap length
+	bpatchx patch27_2,mem_patch27
+le_parse_l2cap_next:	
+	ifetch 2,contr
+	beq LE_L2CAP_CID_ATT,le_parse_att
+	beq LE_L2CAP_CID_SMP,le_parse_smp
+	beq LE_L2CAP_CID_SIGNAL,le_parse_signaling
+	rtn
+
+
+le_check_l2cap_complete:
+	fetch 1,mem_le_packet_llid
+	beq LLID_START,le_check_l2cap_llid_start
+	beq LLID_CONTINUE,le_check_l2cap_llid_continue
+	rtn
+
+//input: pdata is CID number
+//output: 	if CID is legal ,enable user
+//		if ICD is illegal,disable user 
+le_check_l2cap_CID_legal:
+	call enable_user
+	arg LE_L2CAP_CID_ATT,temp
+	isub pdata,null
+	rtn zero
+	arg LE_L2CAP_CID_SIGNAL,temp
+	isub pdata,null
+	rtn zero
+	arg LE_L2CAP_CID_SMP,temp
+	isub pdata,null
+	rtn zero
+	branch disable_user
+
+	
+le_check_l2cap_llid_start:
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	ifetch 2,contr
+	store 2,mem_le_l2cap_size
+	ifetch 2,contr			//CID
+	call le_check_l2cap_CID_legal
+	nrtn user		//CID error
+	fetcht 1,mem_le_rxbuf_data_length
+	storet 2,mem_le_packet_len_recved
+	fetch 2,mem_le_l2cap_size
+	increase 4,pdata		//CID:2 L2cap length 2
+	isub temp,null
+	branch enable_user,zero
+	fetchr loopcnt,1,mem_le_rxbuf_data_length
+	arg mem_le_l2cap_buf,contw
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	call memcpy_fast
+	branch disable_user
+
+//no input
+//output: 	if CID is legal ,enable user
+//		if ICD is illegal,disable user 
+le_check_l2cap_continue_legal:
+	call enable_user
+	fetch 2,mem_le_packet_len_recved
+	nrtn blank
+	branch disable_user
+
+le_check_l2cap_llid_continue:
+	call le_check_l2cap_continue_legal
+	nrtn user		//check receive start packet
+	fetch 2,mem_le_packet_len_recved
+	arg mem_le_l2cap_buf,contw
+	iadd contw,rega
+	fetcht 1,mem_le_rxbuf_data_length
+	iadd temp,pdata
+	store 2,mem_le_packet_len_recved
+	fetchr loopcnt,1,mem_le_rxbuf_data_length
+	copy rega,contw
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	call memcpy_fast
+	setarg mem_le_l2cap_buf
+	store 2,mem_le_payload_ptr		//update ptr->mem_le_l2capbuff
+	fetch 2,mem_le_l2cap_size
+	increase 4,pdata
+	fetcht 2,mem_le_packet_len_recved
+	isub temp,null
+	branch enable_user,zero
+	branch disable_user
+
+
+
+	
+le_writeatt_cb:
+	fetch 2,mem_cb_att_write
+	branch callback_func
+	
+le_supervision_update:
+	bpatchx patch27_3,mem_patch27
+	fetcht 4,mem_le_supervision_timer
+	call get_clkbt
+	isub temp,timeup					
+	deposit timeup
+	fetcht 2,mem_le_superto
+	lshift4 temp,temp
+	lshift temp,temp
+	isub temp,pdata
+	rtn
+	
+le_supervision_flush:
+	call get_clkbt
+	store 4,mem_le_supervision_timer
+	rtn
+
+	
+//input rega
+le_receive_window_size:
+	bpatchx patch27_4,mem_patch27
+	add rega, coffset_le_peer_sca,contr
+	ifetch 1,contr
+	call le_sca_map
+	add rega, coffset_tsniff,contr
+	ifetch 2,contr
+	imul32 temp,pdata
+	fetcht 2,mem_param_rt_rthalfslot
+	imul32 temp,pdata
+	arg 1000000,temp
+	idiv temp
+	arg PARAM_WINDOWN_SIZE,temp
+	fetch 1,mem_system_clk
+	imul32 temp,temp
+	add rega, coffset_le_window_size,contr
+	ifetch 1,contr
+	imul32 temp,pdata
+	iadd temp,pdata
+	store 4,mem_le_transmit_window	
+	fetch 2,mem_rx_window_sniff
+	call wait_div_end
+	quotient temp
+	iadd temp,pdata
+	add rega, coffset_rx_window,contw
+	istore 2,contw
+	rtn
+
+	
+
+	
+le_modified_name:
+	bpatchx patch27_5,mem_patch27
+	call le_modified_name_att_list
+	branch le_modified_name_adv
+
+le_modified_name_att_list:
+	jam 2,mem_le_search_att_type_length
+	arg UUID_CHRCTR_DEVICE_NAME,temp
+	storet 2,mem_le_search_att_type
+	call le_att_get_uuid_ptr
+	rtn blank
+	ifetch 1,contr						// attribute length
+	copy contr,contw
+	fetcht 1,mem_le_name_len
+	copy temp,loopcnt
+	isub temp,null
+	nbranch le_name_length_longer_than_att,positive
+	isub temp,temp
+	arg mem_le_name,contr
+	call memcpy_fast
+	copy temp,loopcnt
+	ncall memcpy_empty,zero
+	rtn
+le_name_length_longer_than_att:
+	copy pdata,loopcnt
+	arg mem_le_name,contr
+	branch memcpy_fast
+
+
+le_modified_name_adv:
+	arg mem_le_adv_data_len+32,regc
+	arg mem_le_adv_data,rega
+	call le_modified_name_adv_and_scan
+	setarg 0
+	setflag user,0,pdata
+	store 1,mem_pdatatemp
+	arg mem_le_scan_data_len+32,regc
+	arg mem_le_scan_data,rega
+	call le_modified_name_adv_and_scan
+	rtn user
+	fetch 1,mem_pdatatemp
+	branch assert,blank
+	rtn
+
+
+le_modified_name_adv_and_scan:
+	bpatchx patch27_6,mem_patch27
+	call enable_user
+	call clear_temp_block
+	arg 0,regb	//current length
+	arg mem_le_data_temp,contw
+	call le_modified_name_adv_loop
+	fetch 1,mem_le_name_len
+	add pdata,1,temp
+	iadd regb,rega	
+	increase 2,rega
+	sub rega,0x1f,null
+	nbranch le_modified_name_adv_and_scan_name_overflow,positive
+	istoret 1,contw		//store ble name length
+	arg GAP_ADTYPE_LOCAL_NAME_COMPLETE,temp
+	istoret 1,contw		//store ble name type
+	iforce loopcnt
+	call memcpy_fast
+	copy rega,regb
+le_modified_name_adv_and_scan_store_data:
+	deposit regb
+	store 1,mem_le_data_len_temp
+	arg mem_le_data_len_temp,contr
+	setarg -32
+	iadd regc,contw
+	branch memcpy32
+
+le_modified_name_adv_and_scan_name_overflow:
+	call disable_user
+	branch le_modified_name_adv_and_scan_store_data
+	
+le_modified_name_adv_loop:
+	ifetch 1,rega		//pdata:length
+	rtn blank			//length is zero,ending find
+	pincrease 1		//length += 1
+	ifetcht 1,contr		//pdata:type
+	sub temp,GAP_ADTYPE_LOCAL_NAME_COMPLETE,null
+	branch le_modified_name_adv_found_name,zero
+	iadd regb,regb	
+	copy rega,contr
+	iforce loopcnt
+	call memcpy_fast
+	copy contr,rega
+le_modified_name_adv_loop2:
+	deposit rega
+	isub regc,null
+	rtn positive
+	branch le_modified_name_adv_loop
+
+le_modified_name_adv_found_name:
+	iadd rega,rega
+	branch le_modified_name_adv_loop2
+
+
+memcpy_empty:
+	setarg SPACE
+	istore 1,contw
+	loop memcpy_empty
+	rtn
+
+	
+le_lpm_set_mult:
+	bpatchx patch27_7,mem_patch27
+	disable wake
+	branch le_lpm_set_mult_attempt,attempt
+	nbranch le_lpm_lost,match
+le_lpm_set_mult_attempt:
+	call lpm_match
+	fetch 2,mem_rx_window_sniff
+	store 2,mem_le_receive_window
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_SHORT_MULT,lpm_mult_short	//check flag,if flag is 1,always short mult
+	bmark1 mark_old_packet,lpm_mult_short
+	fetch 1,mem_le_rxbuf_data_length
+	nbranch lpm_mult_short,blank		// rx not empty, short interval
+	fetch 1,mem_le_txlen
+	nbranch lpm_mult_short,blank		// tx not empty, short interval
+	
+	fetch 1,mem_le_state
+	bbit1 lestate_update_param,lpm_mult_short
+	bbit1 lestate_update_phy,lpm_mult_short
+	bbit1 lestate_update_map,lpm_mult_short
+	branch lpm_mult_wait_timeout
+	
+le_lpm_lost:
+	fetch 1,mem_sniff_unint_lost
+	sub pdata,30,null
+	nbranch lpm_lost,positive
+	fetcht 2,mem_rx_window_sniff
+	rshift temp,temp
+	fetch 2,mem_le_receive_window
+	iadd temp,pdata
+	store 2,mem_le_receive_window
+	branch lpm_lost
+
+///////////////////////////////BLE CONFIG//////////////////////////////////////////
+le_set_config_fixed_tk:
+	arg BIT_BLE_PASSKEY_FIXED_KEY,queue
+	branch le_set_config
+
+le_clr_config_fixed_tk:
+	arg BIT_BLE_PASSKEY_FIXED_KEY,queue
+	branch le_clr_config
+
+le_set_config_fixed_ltk:
+	arg BIT_BLE_PAIRING_FIXED_LTK,queue
+	branch le_set_config
+
+le_clr_config_fixed_ltk:
+	arg BIT_BLE_PAIRING_FIXED_LTK,queue
+	branch le_clr_config
+
+le_set_config_more_data:
+	arg BIT_BLE_TRANSMIT_PACKET_BY_MD,queue
+	branch le_set_config
+
+le_clr_config_more_data:
+	arg BIT_BLE_TRANSMIT_PACKET_BY_MD,queue
+	branch le_clr_config
+
+le_set_config_read_authentication:
+	arg BIT_BLE_READ_AUTH,queue
+	branch le_set_config
+
+le_clr_config_read_authentication:
+	arg BIT_BLE_READ_AUTH,queue
+	branch le_clr_config
+
+le_set_config_write_authentication:
+	arg BIT_BLE_WRITE_AUTH,queue
+	branch le_set_config
+
+le_clr_config_write_authentication:
+	arg BIT_BLE_WRITE_AUTH,queue
+	branch le_clr_config
+
+le_set_config_short_mult:
+	arg BIT_BLE_SHORT_MULT,queue
+//	branch le_set_config
+le_set_config:
+	fetch 1,mem_le_configuration
+	qset1 pdata
+	store 1,mem_le_configuration
+	rtn
+
+
+le_clr_config_short_mult:
+	arg BIT_BLE_SHORT_MULT,queue
+//	branch le_clr_config
+le_clr_config:
+	fetch 1,mem_le_configuration
+	qset0 pdata
+	store 1,mem_le_configuration
+	rtn
+
+
+
+le_set_fixed_ltk:
+	setarg 0x112233
+	store 3,mem_le_fixed_ltk
+	setarg 0x445566
+	istore 3,contw
+	setarg 0x778899
+	istore 3,contw
+	setarg 0x001122
+	istore 3,contw
+	setarg 0x334455
+	istore 3,contw
+	setarg 0x66
+	istore 1,contw
+	rtn
+
+
+le_set_justwork:
+	setarg 0x01000302
+	store 4,mem_le_pres
+	setarg 0x010010
+	store 3,mem_le_pres_max_keysize
+	jam 1,mem_le_pairing_mode
+	rtn
+
+/////////////////////////////////////////////////////////////////////////
+
+le_fifo_malloc_tx_empty:
+	arg 0,rega
+	arg LLID_EMPTY,type
+	branch le_fifo_malloc_tx
+
+
+//rega:len regb:ll opcode
+le_fifo_malloc_tx_ll:
+	bpatchx patch28_0,mem_patch28
+	arg LLID_LE_LL,type
+	call le_fifo_malloc_tx
+	copy regb,pdata
+	istore 1,contw
+	rtn
+	
+
+//rega:len regb:cid
+le_fifo_malloc_tx_l2cap:
+	bpatchx patch28_1,mem_patch28
+	force LLID_START,type
+	increase 4,rega
+	call le_fifo_malloc_tx
+	increase -4,rega
+	copy rega,pdata
+	istore 2,contw
+	copy regb,pdata
+	istore 2,contw
+	rtn
+
+
+//rega:len type:llid
+le_fifo_malloc_tx:
+	bpatchx patch28_2,mem_patch28
+	increase 5,rega
+	call ble_l2cap_malloc
+	increase -5,rega
+	copy rega,pdata
+	istore 2,contw				//lengh
+	setarg 0
+	istore 2,contw				//offset
+	copy type,pdata
+	istore 1,contw				//LLID
+	rtn
+
+
+le_fifo_get_first_tx_ptr:
+	bpatchx patch28_3,mem_patch28
+	call l2cap_malloc_fifo_out
+	copy pdata,contr
+	rtn
+
+le_fifo_get_second_tx_ptr:
+	fetch 2,mem_tx_fifo2_ptr
+	rtn
+
+le_fifo_get_last_tx_ptr:
+	call le_fifo_get_last_tx_ptr0
+	copy pdata,contr
+	rtn
+
+
+le_fifo_get_last_tx_ptr0:
+	fetch 2,mem_tx_fifo3_ptr
+	rtn
+
+
+le_fifo_get_first_l2cap_ptr:
+	call le_fifo_get_first_tx_ptr
+	increase 5,contr
+	rtn
+
+le_fifo_get_first_att_ptr:
+	call le_fifo_get_first_tx_ptr
+	increase 9,contr
+	rtn
+
+le_fifo_get_last_att_ptr:
+	call le_fifo_get_last_tx_ptr
+	increase 9,contr
+	rtn
+
+le_fifo_get_last_l2cap_ptr:
+	call le_fifo_get_last_tx_ptr
+	increase 5,contr
+	rtn
+
+
+le_fifo_check_full:
+	branch l2cap_malloc_is_fifo_full
+
+
+le_fifo_check_nearly_full:
+	branch l2cap_malloc_is_fifo_nearly_full
+
+	
+le_fifo_check_empty:
+	branch l2cap_malloc_is_fifo_empty
+
+
+le_fifo_release_first_node:
+	branch l2cap_malloc_free
+
+
+le_set_dle:
+	store 8,mem_local_rx_max_octets
+	branch le_set_feature_data_packet_length_extension
+
+
+le_set_phys:
+	and temp,0xff,rega
+	call le_set_tx_phy
+	rshift8 temp,rega
+//	branch le_set_rx_phy
+le_set_rx_phy:
+	storer rega,1,mem_le_rx_phys
+	branch le_set_phy_common
+
+le_set_tx_phy:
+	storer rega,1,mem_le_tx_phys
+le_set_phy_common:	
+	isolate1 BIT_LE_2M_PHY,rega
+	call le_set_feature_2M_phy,true
+	isolate1 BIT_LE_CODED_PHY,rega
+	call le_set_feature_coded_phy,true
+	rtn
+
+
+
+le_set_feature_2M_phy:
+	arg BIT_LL_FEATURE_LE_2M_PHY,queue
+	branch le_set_feature
+
+
+le_set_feature_coded_phy:
+	arg BIT_LL_FEATURE_LE_CODED_PHY,queue
+	branch le_set_feature
+
+le_set_feature_data_packet_length_extension:
+	arg BIT_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION,queue
+//	branch le_set_feature
+le_set_feature:
+	fetch 8,mem_le_local_feature
+	qset1 pdata
+	store 8,mem_le_local_feature
+	rtn
+
+le_set_fixed_ltk_justwork:
+	call le_set_config_fixed_ltk
+	call le_set_justwork
+	call le_set_fixed_ltk
+	branch le_set_config_read_authentication
+
+
+
+
+le_advertising_dispatch:
+	jam FUN_RX_LL_1M_PHY,mem_le_rx_phy
+	jam FUN_TX_LL_1M_PHY,mem_le_tx_phy
+	call le_enable
+	call le_scan
+	call le_adv
+	branch le_disable
+
+le_scan:
+	bpatchx patch28_4,mem_patch28
+	fetch 1,mem_le_scan_enable
+	rtnne LE_SCAN_ENABLE
+	arg le_scan_interval_timer,queue
+	call timer_check
+	nrtn blank
+	fetch 2,mem_le_scan_interval
+	fetcht 2,mem_le_scan_window
+	isub temp,pdata
+	arg le_scan_interval_timer,queue
+	call timer_init
+	disable master
+	call le_init_adv
+	call le_wait_adv
+	nrtn match
+	bpatchx patch28_5,mem_patch28
+	fetch 6,mem_le_rxbuf+2
+	store 6,mem_le_plap
+//	call le_scan_dongle
+
+	fetch 1,mem_le_adv_rcv
+	increase 1,pdata
+	store 1,mem_le_adv_rcv
+	call le_create_conn
+	rtn master
+	call le_send_scan_request
+	nrtn match
+	fetch 1,mem_le_scanrsp_rcv
+	increase 1,pdata
+	store 1,mem_le_scanrsp_rcv
+	fetch 9,mem_le_rxbuf+8
+	store 9,mem_temp_block0
+	rtn
+
+
+le_wait_adv:
+	bpatchx patch28_6,mem_patch28
+	call le_next_adv_channel
+	call le_receive_adv
+	fetch 1,mem_le_adv_waitcnt
+	increase 1,pdata
+	store 1,mem_le_adv_waitcnt
+	rtn
+
+
+le_create_conn:
+	bpatchx patch28_7,mem_patch28
+	fetch 1,mem_cmd_le_create_conn
+	rtnne hci_cmd_le_create_conn
+	fetch 6,mem_le_plap
+	fetcht 6,mem_le_conn_peer_addr
+	isub temp,null
+	nrtn zero
+	call context_new
+	nrtn zero
+	call le_connect_request
+	call le_init_master
+	call le_send_version_ind
+	jam BT_EVT_LE_CONNECTED,mem_fifo_temp
+	call ui_ipc_send_event	
+	jam 0,mem_hci_cmd
+	jam 0,mem_le_peer_sca
+	jam 0,mem_le_scan_enable
+	jam 0,mem_cmd_le_create_conn
+	branch context_save
+
+le_connect_request:
+	bpatchx patch29_0,mem_patch29
+	force -1,pdata
+	setsect 2,1
+	store 5,mem_le_channel_map
+	arg mem_le_state,rega	
+	call le_calc_channel_map	
+	force 4,loopcnt
+	arg mem_le_access,contw
+	call generate_random_loop
+	fetch 2,mem_le_timeout
+	store 2,mem_le_superto
+le_con_req_hop_retry:
+	random pdata
+	and_into 0xf,pdata
+	sub pdata,4,null
+	branch le_con_req_hop_retry,positive
+	store 1,mem_le_hop
+//	store 1,mem_tmp1
+	bpatchx patch29_1,mem_patch29
+	fetcht 2,mem_le_conn_interval
+	storet 2,mem_le_tsniff	
+	copy temp,regc			// tsniff in regc
+	add clkn_bt,7,pdata			// leave space for offset
+	idiv regc
+	call wait_div_end
+	remainder rega
+	isub rega,pdata
+	iadd regc,pdata
+	fetcht 2,mem_le_dsniff
+	iadd temp,pdata
+	store 4,mem_le_anchor
+	isub clkn_bt,rega
+	increase -6,rega			// window offset
+	arg 0x2205,regb			// length & CONN_REQ PDU
+	fetch 1,mem_le_conn_own_addr_type
+	nsetflag blank,LE_SENDER_ADDR_BIT,regb
+	fetch 1,mem_le_conn_peer_addr_type
+	nsetflag blank,LE_RECEIVER_ADDR_BIT,regb
+	copy regb,pdata
+	store 2,mem_le_txheader
+	fetch 6,mem_le_lap
+	istore 6,contw//own addr
+	fetch 6,mem_le_plap
+	istore 6,contw// peer addr
+	fetch 4,mem_le_access
+	istore 4,contw
+	random pdata
+	istore 2,contw				
+	random pdata
+	istore 1,contw
+	force 2,pdata					
+	istore 1,contw
+	rshift2 rega,pdata
+	istore 2,contw				
+	rshift2 regc,pdata			
+	istore 2,contw				
+	bpatchx patch29_2,mem_patch29
+	setarg 0					
+	istore 2,contw
+	fetch 2,mem_le_timeout
+	istore 2,contw
+	fetch 5,mem_le_channel_map
+	istore 5,contw				
+	fetch 1,mem_le_hop
+	arg param_le_sca,temp
+	ior temp,pdata
+	istore 1,contw
+	call le_transmit_norx
+	setarg mem_le_txheader
+	add pdata,18,contr
+	ifetch 3,contr
+	store 3,mem_le_crcinit
+	rtn
+		
+
+le_adv:
+	jam 36,mem_le_ch_mapped
+	jam 0,mem_le_adv_channel_map_temp
+	call le_send_adv_protect_txbuf
+	call le_adv_loop
+	branch le_send_adv_recover_txbuf
+	
+le_adv_loop:
+	bpatchx patch29_3,mem_patch29
+	fetch 1,mem_le_adv_enable
+	rtn blank
+	arg le_adv_interval_timer,queue
+	call timer_check
+	nrtn blank
+	enable swfine
+	call le_init_adv
+	call le_next_adv_channel
+	call le_send_adv_ind
+	nbranch le_adv_not_match,match
+	fetch 1,mem_le_req_rcv
+	increase 1,pdata
+	store 1,mem_le_req_rcv
+	fetch 1,mem_le_rxbuf_adv_header
+	and pdata,0x0f,pdata
+	beq SCAN_REQ,le_send_scan_response
+	beq CONNECT_REQ,le_parse_connect_req
+le_adv_not_match:
+	bpatchx patch29_4,mem_patch29
+	fetch 1,mem_le_adv_channel_map_temp
+	fetcht 1,mem_le_adv_channel_map
+	isub temp,null
+	nbranch le_adv_loop,zero
+	random pdata 
+	arg 0x1ff,temp
+	iand temp,pdata
+	add pdata,250,pdata
+	call delay
+	arg le_adv_interval_timer,queue
+	fetch 2,mem_le_adv_interval
+	branch timer_init
+
+le_send_adv_protect_txbuf:
+	arg mem_le_tx_buf_temp,contw
+	arg mem_le_txheader,contr	
+	branch memcpy48
+	
+le_send_adv_recover_txbuf:
+	arg mem_le_tx_buf_temp,contr
+	arg mem_le_txheader,contw
+	branch memcpy48
+
+le_init_adv:
+	bpatchx patch29_5,mem_patch29
+	disable master
+le_adv_access:
+	setarg 0x8e89be
+	lshift8 pdata,pdata
+	or_into 0xd6,pdata
+	iforce access
+	setarg 0x555555
+	store 3,mem_le_crcinit
+	rtn
+
+
+
+le_send_adv_ind:
+	bpatchx patch29_6,mem_patch29
+	fetch 1,mem_le_adv_type
+	fetcht 1,mem_le_adv_own_addr_type
+	lshift4 temp,temp
+	lshift2 temp,temp
+	iadd temp,temp
+	storet 1,mem_le_txheader
+	beq ADV_DIRECT_IND,le_send_adv_direct_ind
+	fetcht 1,mem_le_adv_data_len
+	add temp,6,pdata
+	store 1,mem_le_txlen
+	fetch 6,mem_le_lap
+	store 6,mem_le_txpayload
+	copy temp,loopcnt
+	arg mem_le_adv_data,contr
+	call memcpy_fast
+	branch le_send_adv_transmit
+
+le_send_adv_direct_ind:
+	setarg 12
+	store 1,mem_le_txlen
+	fetch 6,mem_le_lap
+	store 6,mem_le_txpayload
+	fetch 6,mem_hci_plap
+	istore 6,contw
+le_send_adv_transmit:
+	bpatchx patch29_7,mem_patch29
+	fetch 1,mem_le_adv_transmit
+	increase 1,pdata
+	store 1,mem_le_adv_transmit
+	arg 1800,stop_watch
+	disable match
+	branch le_transmit_receive_sifs_without_change_mode
+
+
+le_send_scan_request:
+	bpatchx patch2a_0,mem_patch2a
+	fetch 1,mem_le_scan_type
+	rtnne LE_SCAN_TYPE_ACTIVE
+	fetch 1,mem_le_adv_transmit
+	increase 1,pdata
+	store 1,mem_le_adv_transmit
+	arg 0x0c03,temp// length + SCAN_REQ PDU
+	fetch 1,mem_le_scan_own_addr_type
+	nsetflag blank,LE_SENDER_ADDR_BIT,temp
+	copy rega,pdata
+	nsetflag blank,LE_RECEIVER_ADDR_BIT,temp	
+	storet 2,mem_le_txheader
+	fetch 6,mem_le_lap
+	istore 6,contw
+	fetch 6,mem_le_plap
+	istore 6,contw
+	branch le_transmit_receive_sifs_without_change_mode
+
+le_send_scan_response:
+	bpatchx patch2a_1,mem_patch2a
+	fetch 6,mem_le_rxbuf_adv_scan_req_adv_address
+	fetcht 6,mem_le_lap
+	isub temp,null
+	nrtn zero
+	arg SCAN_RSP,temp
+	fetch 1,mem_le_adv_own_addr_type
+	nsetflag blank,LE_SENDER_ADDR_BIT,temp
+	storet 1,mem_le_txheader
+	fetcht 1,mem_le_scan_data_len
+	add temp,6,pdata
+	store 1,mem_le_txlen
+	fetch 6,mem_le_lap
+	store 6,mem_le_txpayload
+	arg mem_le_scan_data,contr
+	copy temp,loopcnt
+	call memcpy_fast
+	call le_transmit_norx
+	branch le_adv_not_match
+
+le_parse_connect_req:
+	fetch 6,mem_le_rxbuf_adv_connect_ind_adv_address
+	fetcht 6,mem_le_lap
+	isub temp,null
+	nrtn zero
+	call le_scan_check_sender_addr_type
+	storer rega,1,mem_le_conn_peer_addr_type
+	fetch 6,mem_le_rxbuf_adv_connect_ind_init_address
+	store 6,mem_le_plap
+	fetch 8,mem_le_rxbuf_adv_connect_ind_access_address
+	store 8,mem_le_access 	// and crcinit & window size
+	fetcht 2,mem_le_rxbuf_adv_connect_ind_win_offset	// transmit offset
+	bpatchx patch2a_2,mem_patch2a
+	lshift2 temp,temp
+	fetch 2,mem_le_rxbuf_adv_connect_ind_interval	// connInterval
+	lshift2 pdata,pdata
+	store 2,mem_le_tsniff
+	store 4,mem_le_anchor
+	isub temp,pdata
+	add pdata,-2,clke_bt
+	fetch 9,mem_le_rxbuf_adv_connect_ind_latency
+	store 9,mem_le_slave_latency// and super to & channel map
+	fetch 1,mem_le_rxbuf_adv_connect_ind_hop_and_sca
+	and pdata,0x1f,temp
+	storet 1,mem_le_hop
+	rshift4 pdata,temp
+	rshift temp,temp
+	storet 1,mem_le_peer_sca
+	arg mem_le_state,rega
+	call le_receive_window_size
+	arg mem_le_state,rega	
+	call le_calc_channel_map
+	call le_init_slave
+	call context_new
+	nrtn zero
+	bpatchx patch2a_3,mem_patch2a
+	call calc_clke_offset
+	call le_l2cap_reset_signaling_identifier
+	jam BT_EVT_LE_CONNECTED,mem_fifo_temp
+	call ui_ipc_send_event
+	branch context_save
+
+
+le_next_adv_channel:
+	bpatchx patch2a_4,mem_patch2a
+	fetch 1,mem_le_ch_mapped
+	beq 37,le_next_adv_channel_curr_channel_37
+	beq 38,le_next_adv_channel_curr_channel_38
+	beq 39,le_next_adv_channel_curr_channel_39
+	branch le_next_adv_channel_curr_channel_39
+
+le_next_adv_channel_curr_channel_37:
+	fetcht 1,mem_le_adv_channel_map
+	isolate1 BIT_ADV_CHANNEL_MAP_38,temp		//check 38 channel enable
+	branch set_le_next_adv_channel_38,true
+	isolate1 BIT_ADV_CHANNEL_MAP_39,temp		//check 39 channel enable
+	branch set_le_next_adv_channel_39,true
+	branch set_le_next_adv_channel_37
+
+
+le_next_adv_channel_curr_channel_38:
+	fetcht 1,mem_le_adv_channel_map
+	isolate1 BIT_ADV_CHANNEL_MAP_39,temp		//check 39 channel enable
+	branch set_le_next_adv_channel_39,true
+	isolate1 BIT_ADV_CHANNEL_MAP_37,temp		//check 37 channel enable
+	branch set_le_next_adv_channel_37,true
+	branch set_le_next_adv_channel_38
+
+
+le_next_adv_channel_curr_channel_39:
+	fetcht 1,mem_le_adv_channel_map
+	isolate1 BIT_ADV_CHANNEL_MAP_37,temp		//check 37 channel enable
+	branch set_le_next_adv_channel_37,true
+	isolate1 BIT_ADV_CHANNEL_MAP_38,temp		//check 38 channel enable
+	branch set_le_next_adv_channel_38,true
+	branch set_le_next_adv_channel_39
+
+set_le_next_adv_channel_37:
+	jam 37,mem_le_ch_mapped
+	fetch 1,mem_le_adv_channel_map_temp
+	set1 BIT_ADV_CHANNEL_MAP_37,pdata
+	store 1,mem_le_adv_channel_map_temp
+	rtn
+
+set_le_next_adv_channel_38:
+	jam 38,mem_le_ch_mapped
+	fetch 1,mem_le_adv_channel_map_temp
+	set1 BIT_ADV_CHANNEL_MAP_38,pdata
+	store 1,mem_le_adv_channel_map_temp
+	rtn
+
+set_le_next_adv_channel_39:
+	jam 39,mem_le_ch_mapped
+	fetch 1,mem_le_adv_channel_map_temp
+	set1 BIT_ADV_CHANNEL_MAP_39,pdata
+	store 1,mem_le_adv_channel_map_temp
+	rtn
+
+
+
+
+le_parse_att:
+	copy contr,rega
+	fetch 1,mem_device_option
+	beq DVC_OP_SHUTTER_DY,shutter_dy_le_parse_att
+	beq DVC_OP_KEYBOARD,keyboard_le_att_auto_reco_process
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+le_parse_att2:
+	beq ATTOP_EXCHANGE_MTU_REQUEST,le_parse_att_exchange_mtu_request
+	beq ATTOP_EXCHANGE_MTU_RESPONSE,le_parse_att_exchange_mtu_response
+	beq ATTOP_FIND_INFORMATION_REQUEST,le_parse_att_find_information_request
+	beq ATTOP_FIND_BY_TYPE_VALUE_REQUEST,le_parse_att_find_by_type_value_request
+	beq ATTOP_READ_BY_TYPE_REQUEST,le_parse_att_read_by_type_request
+	beq ATTOP_READ_REQUEST,le_parse_att_read_request
+	beq ATTOP_READ_BLOB_REQUEST,le_parse_att_read_blob_request
+	beq ATTOP_READ_BY_GROUP_TYPE_REQUEST,le_parse_att_read_by_group_type_request
+	beq ATTOP_WRITE_REQUEST,le_parse_att_write_request
+	beq ATTOP_PREPARE_WRITE_REQUEST,le_parse_att_prepare_write_request
+	beq ATTOP_EXECUTE_WRITE_REQUEST,le_parse_att_execute_write_request
+	beq ATTOP_HANDLE_VALUE_CONFIRMATION,le_parse_handle_value_confirmation
+	beq ATTOP_WRITE_COMMAND,le_parse_att_write_command
+	rtn
+
+
+le_send_att_exchange_mtu_requset:
+	force 3,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_EXCHANGE_MTU_REQUEST
+le_send_att_exchange_mtu_common:
+	istore 1,contw
+	fetch 2,mem_le_local_mtu
+	istore 2,contw
+	rtn
+
+
+le_parse_att_exchange_mtu_request:
+	call le_parse_att_exchange_mtu_response
+le_send_att_exchange_mtu_response:
+	force 3,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_EXCHANGE_MTU_RESPONSE
+	branch le_send_att_exchange_mtu_common
+
+le_parse_att_exchange_mtu_response:
+	rshift8 pdata,pdata
+	store 2,mem_le_remote_mtu
+	rtn
+
+le_parse_att_find_information_request:
+	call le_get_search_handle_start_end_common
+	call enable_user
+	branch le_send_att_find_information_response
+
+
+le_att_handle_inrange:
+	ifetch 2,contr
+	and_into 0xff,pdata
+	rtn blank
+	isub regb,null			
+	rtn zero
+	nrtn positive
+	isub regc,null			
+	rtn zero
+	branch le_att_handle_blank,positive
+	force 1,null
+	rtn
+le_att_handle_blank:
+	force 0,pdata
+	rtn
+
+	
+le_send_att_find_information_response:
+	arg 3,timeup
+	call le_init_attlist_search
+le_send_att_find_information_res_loop:
+	call le_att_handle_inrange
+	branch le_send_att_find_information_res_end,blank
+	nbranch le_send_att_find_information_res_next,positive
+	increase -2,contr
+	call store_contr
+	call get_contw
+	nbranch le_send_att_find_information_res_store_info2,user
+	call push_stack_rega_b_c
+	storer timeup,4,mem_timeup
+	force 30,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	fetchr timeup,4,mem_timeup
+	call pop_stack_rega_b_c
+	call disable_user
+	setarg ATTOP_FIND_INFORMATION_RESPONSE
+	istore 1,contw
+	call get_contr
+	ifetch 2,contr
+	ifetchr rega, 1,contr
+	sub rega,16,null
+	branch le_send_att_find_information_res_uuid128,zero
+	sub rega,2,null
+	nbranch le_send_att_error_response_notfound,zero
+le_send_att_find_information_res_uuid16:
+	setarg UUID_SIZE_16BIT
+	istore  1,contw
+	branch le_send_att_find_information_res_store_info
+	
+le_send_att_find_information_res_uuid128:
+	setarg UUID_SIZE_128BIT
+	istore 1,contw
+	arg 1,timeup
+	branch le_send_att_find_information_res_store_info
+		
+le_send_att_find_information_res_store_info2:
+	call get_contr
+	ifetch 2,contr
+	ifetch 1,contr
+	isub rega,null //uuid size format
+	nbranch le_send_att_find_information_res_end,zero
+	
+le_send_att_find_information_res_store_info:
+	call get_contr
+	ifetch 2,contr
+	and_into 0xff,pdata
+	istore 2,contw
+	ifetchr loopcnt, 1,contr
+	call memcpy
+	call store_contw
+	increase -1,timeup
+	branch le_send_att_find_information_res_end,zero
+le_send_att_find_information_res_cont:
+	call le_att_contr_add_len
+	branch le_send_att_find_information_res_loop
+	
+le_send_att_find_information_res_next:
+	call le_att_contr_add_len
+	branch le_send_att_find_information_res_cont
+	
+le_send_att_find_information_res_end:
+	branch le_send_att_error_response_notfound,user
+	branch le_send_auto_len_by_mem
+
+
+le_parse_att_find_by_type_value_request:
+	call le_get_search_handle_start_end_common
+	ifetch 2,contr
+	store 2,mem_le_search_uuid
+	call store_contr
+	arg mem_le_search_att_type_length,contw
+	fetch 2,mem_le_l2cap_size
+	increase -7,pdata
+	call le_get_search_common2
+	branch le_send_att_find_by_type_value_response
+
+
+le_start_end_handle_check_1:
+	disable user
+	fetcht 2,mem_le_search_handle_start
+	fetch 2,mem_le_search_handle_end
+	isub temp,null
+	nbranch le_start_end_handle_check_1_fail,positive
+	deposit temp
+	rtnne 0
+le_start_end_handle_check_1_fail:
+	enable user
+	jam ATT_ERR_INVALID_HANDLE,mem_le_err_code
+	branch le_send_att_error_response
+
+
+le_send_att_find_by_type_value_response:
+	call le_start_end_handle_check_1
+	rtn user
+	fetcht 2,mem_le_search_uuid
+	setarg UUID_GATT_PRIMARY_SERVICE
+	isub temp,null
+	branch le_send_att_find_by_type_value_res_primary,zero
+	branch le_send_att_error_response_notfound
+	
+
+le_send_att_find_by_type_value_res_primary:
+	jam LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND,mem_le_search_res
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_att_get_handle_info
+	nbranch le_send_att_error_response_notfound,blank
+le_send_att_find_primary_search_loop:
+	fetcht 2,mem_temp
+	call le_att_get_handle_info
+	nbranch le_send_att_error_response_notfound2,blank	
+	copy contr,rega
+	fetch 1,mem_le_curr_att_len
+	copy pdata,loopcnt
+	fetcht 1,mem_le_search_att_type_length
+	isub temp,null
+	nbranch le_send_att_find_primary_search_loop1,zero
+	arg mem_le_search_att_type,regb
+	call string_compare
+
+	branch le_send_att_find_primary_search_end_start_handle_found,zero
+
+	fetch 2,mem_le_cur_uuid
+	fetcht 2,mem_le_search_uuid
+	isub temp,null
+	branch le_send_att_find_primary_search_end_ending_handle_found,zero
+le_send_att_find_primary_search_loop1:
+	fetch 2,mem_temp
+	increase 1,pdata
+	store 2,mem_temp
+	branch le_send_att_find_primary_search_loop
+
+le_send_att_error_response_notfound2:
+	fetch 1,mem_le_search_res
+	beq LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE,le_send_att_find_primary_search_end_ending_handle_found
+	branch le_send_att_error_response_notfound
+
+	
+le_send_att_find_primary_search_end_start_handle_found:
+	fetch 2,mem_le_cur_uuid
+	fetcht 2,mem_le_search_uuid
+	isub temp,null
+	nbranch  le_send_att_find_primary_search_loop1,zero
+	jam LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE,mem_le_search_res
+//	copy rega,temp
+	fetcht 2,mem_temp
+	storet 2,mem_le_cur_handle_start
+	branch le_send_att_find_primary_search_loop1
+
+le_send_att_find_primary_search_end_ending_handle_found:
+	fetch 1,mem_le_search_res
+	beq LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND,le_send_att_find_primary_search_loop1
+	jam LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE,mem_le_search_res
+	fetcht 2,mem_temp
+	increase -1,temp
+	storet 2,mem_le_cur_handle_end
+	
+le_send_att_find_primary_search_end:
+	arg 5,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+	istore 1,contw
+	fetch 2,mem_le_cur_handle_start
+	istore 2,contw
+	fetch 2,mem_le_cur_handle_end
+	istore 2,contw
+	rtn
+
+
+
+le_parse_att_read_by_type_request:
+	call le_get_search_handle_start_end_common
+	call le_get_search_att_type
+	branch le_send_att_read_by_type_response
+	
+le_send_att_read_by_type_response:
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_init_attlist_search
+	call le_att_get_handle_ptr2
+	increase -2,contr
+	copy contr,pdata
+	store 2,mem_le_cur_attlist_start_ptr
+
+	fetcht 2,mem_le_search_att_type
+	setarg UUID_CHRCTR_DEVICE_NAME
+	isub temp,null
+	branch le_send_att_read_by_type_res_device_name,zero
+	setarg UUID_GATT_CHARACTERISTIC
+	isub temp,null
+	nbranch le_send_att_read_by_type_res_not_characteristic,zero
+	arg 2,timeup
+le_send_att_read_by_type_response_loop:
+	call le_att_check_handle_end
+	nbranch le_send_att_read_by_type_response_end,positive
+	fetcht 2,mem_temp
+	call le_att_get_handle_info_from_ptr
+	nbranch le_send_att_read_by_type_response_end,blank
+	call le_att_same_type
+	nbranch le_send_att_read_by_type_response_next_handle,zero
+	nbranch le_send_att_read_by_type_res_found_next,user
+	disable user
+ 	call le_get_search_max_mtu_data
+	copy pdata,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BY_TYPE_RESPONSE
+	istore 1,contw
+	copy contw,alarm
+	increase 1,contw
+	
+	call le_send_att_read_by_type_write_properties
+	call le_att_next_handle
+	call le_att_get_handle_info_from_ptr
+	call le_send_att_read_by_type_write_uuid
+	fetch 1,mem_le_cur_uuid_length
+	add pdata,5,rega
+	istorer rega,1,alarm
+	
+	sub rega,7,null
+	ncall enable_user2,zero
+	call disable_user2,zero
+ 	call le_get_search_max_mtu_data
+ 	increase -2,pdata
+	idiv rega
+	call wait_div_end
+	quotient timeup
+	increase -1,timeup
+	branch le_send_att_read_by_type_response_end,zero
+le_send_att_read_by_type_response_next_handle:
+	call le_att_next_handle
+	branch le_send_att_read_by_type_response_loop
+le_send_att_read_by_type_response_end:
+	branch le_send_att_error_response_notfound,user
+	branch le_send_auto_len_by_mem
+
+le_send_att_read_by_type_res_found_next:
+	call le_store_att_record
+	call le_att_next_handle
+	call le_att_get_handle_info_from_ptr
+	call le_send_att_read_by_type_res_check_pair_length_type
+	nbranch le_send_att_read_by_type_response_end,blank
+
+	call get_contw
+	fetch 2,mem_temp
+	increase -1,pdata
+	istore 2,contw
+	call le_write_att_record_common
+	call le_send_att_read_by_type_write_uuid
+	increase -1,timeup
+	branch le_send_att_read_by_type_response_end,zero
+	branch le_send_att_read_by_type_response_next_handle
+
+	
+le_send_att_read_by_type_write_properties:
+	fetch 2,mem_temp
+	istore 2,contw
+	
+	fetch 1,mem_le_curr_att_len
+	copy pdata,loopcnt
+	call get_contr
+	call memcpy_fast
+	branch store_contw
+le_send_att_read_by_type_write_uuid:
+	call get_contw
+	fetch 2,mem_temp
+	istore 2,contw
+	call store_contw
+	fetch 1,mem_le_cur_uuid_length
+	copy pdata,loopcnt
+	call get_contw	
+	call get_contr
+	isub loopcnt,contr
+	increase -1,contr
+	call memcpy_fast
+	branch store_contw
+
+le_send_att_read_by_type_res_not_characteristic:
+	bpatchx patch2a_5,mem_patch2a
+	call le_att_get_uuid_ptr
+	branch le_send_att_error_response_notfound,blank
+	copy contr,regc
+	
+	call le_get_search_max_mtu_data
+	copy regc,contr
+	ifetcht 1,contr
+	increase 4, temp
+	call not_greater_than
+	copy pdata,regc
+	copy pdata,rega
+	call store_contr
+	call le_fifo_malloc_tx_l2cap_gatt
+
+	setarg ATTOP_READ_BY_TYPE_RESPONSE
+	istore 1,contw
+	add regc,-2,pdata
+	add pdata ,-2,loopcnt
+	istore 1,contw
+	fetch 2,mem_le_cur_handle
+	istore 2,contw
+	call get_contr
+	branch  memcpy_fast
+
+	
+le_send_att_read_by_type_res_device_name:
+	call le_att_get_uuid_ptr
+	branch le_send_att_error_response_notfound,blank
+	increase -5,contr // point to handle
+	ifetch 2,contr		
+	store 2,mem_temp
+	call le_get_search_max_mtu_data
+	fetcht 1,mem_le_name_len
+	increase 4, temp
+	call not_greater_than
+	copy pdata,regc
+	copy pdata,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BY_TYPE_RESPONSE
+	istore 1,contw
+	add regc,-2,pdata
+	add pdata ,-2,loopcnt
+	istore 1,contw
+	fetch 2,mem_temp
+	istore 2,contw
+	arg mem_le_name,contr
+	branch memcpy_fast
+	
+
+le_init_attlist_search:
+	bpatchx patch2a_6,mem_patch2a
+	fetch 2,mem_le_search_handle_start
+	iforce regb
+	fetch 2,mem_le_search_handle_end
+	iforce regc
+	fetch 2,mem_ui_le_uuid_table
+	iforce contr
+	branch enable_user
+
+
+	
+le_att_get_handle_ptr:
+	call le_att_get_handle_ptr2
+	branch le_att_get_handle_ptr_found,zero
+	rtn
+	
+le_att_get_handle_ptr2:
+	bpatchx patch2a_7,mem_patch2a
+	fetch 2,mem_ui_le_uuid_table
+	iforce contr
+le_att_get_handle_loop1:
+	ifetch 2,contr
+	and_into 0xff,pdata
+	rtn blank
+	isub temp,null
+	rtn zero
+	call le_att_contr_add_len
+	call le_att_contr_add_len
+	branch le_att_get_handle_loop1
+	
+le_att_get_handle_ptr_found:
+le_att_contr_add_len:
+	ifetch 1,contr
+	iadd contr,contr	
+	rtn	
+	
+
+le_att_get_uuid_ptr:
+	bpatchx patch2b_0,mem_patch2b
+	fetch 2,mem_ui_le_uuid_table
+	iforce contr
+le_att_get_uuid_loop:
+	ifetch 2,contr
+	and_into 0xff,pdata
+	rtn blank
+	store 2,mem_le_cur_handle  //handle
+	ifetch 1,contr
+	copy contr,contw
+	iadd contr,contr
+	fetcht 1,mem_le_search_att_type_length
+	isub temp,null
+	nbranch le_att_get_uuid_ptr_next,zero
+	copy pdata,loopcnt
+	copy contw,regb
+	arg mem_le_search_att_type ,rega
+	call string_compare
+	rtn zero
+	fetch 1,mem_le_search_att_type_length
+le_att_get_uuid_ptr_next:	
+	iadd contw,contr
+	call le_att_contr_add_len
+	branch le_att_get_uuid_loop	
+
+
+
+
+//output:temp:new handle num
+//contr:address write data
+le_att_get_last_handle:
+	arg 0x01,temp
+	fetch 2,mem_ui_le_uuid_table
+	iforce contr
+	copy contr,contw
+le_att_get_last_handle_loop:
+	ifetch 2,contr
+	and_into 0xff,pdata
+	rtn blank
+	add pdata,1,temp
+	call le_att_contr_add_len
+	call le_att_contr_add_len
+	copy contr,contw
+	branch le_att_get_last_handle_loop
+
+
+le_att_get_handle_info_from_ptr:
+	fetch 2, mem_le_cur_attlist_start_ptr
+	branch le_att_get_handle_info_fast
+
+le_att_get_handle_info:
+	bpatchx patch2b_1,mem_patch2b
+	fetch 2,mem_ui_le_uuid_table
+le_att_get_handle_info_fast:
+	iforce contr
+le_att_get_handle_loop:
+	ifetch 2,contr
+	and_into 0xff,pdata
+	branch le_att_unfind_handle,blank
+	isub temp,null
+	branch le_att_finded_handle, zero
+	call le_att_contr_add_len
+	call le_att_contr_add_len
+	branch le_att_get_handle_loop
+	
+le_att_unfind_handle:
+	branch disable_blank
+
+le_att_finded_handle:
+	ifetch 1,contr
+	store 1,mem_le_cur_uuid_length
+	copy pdata,loopcnt
+	arg mem_le_cur_uuid,contw
+	call memcpy_fast
+	ifetch 1,contr
+	store 1,mem_le_curr_att_len
+	call store_contr
+	branch enable_blank
+
+
+
+le_parse_att_read_request:
+	call le_check_encrypt_state
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,le_send_att_read_response_check_auth
+
+//input:temp is handle
+le_send_att_read_response:
+	call le_att_get_handle_ptr2
+	nbranch le_send_att_error_response_notfound,zero
+	call le_send_att_read_response_check_handle,user
+	rtn user
+	call le_att_get_handle_ptr_found
+	increase -2,contr
+	ifetch 2,contr
+	arg UUID_CHRCTR_DEVICE_NAME,temp
+	isub temp,null
+	branch le_send_device_name,zero
+	copy contr,regc
+	call le_get_search_max_mtu_data
+	copy regc,contr
+	ifetcht 1,contr
+	increase 1,temp
+	call not_greater_than
+le_send_att_read_response_less:
+	copy pdata,regc
+	copy pdata,rega
+	call store_contr
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_RESPONSE
+	istore 1,contw
+	add regc,-1,loopcnt
+	call get_contr
+	branch memcpy
+
+le_send_device_name:
+	call le_get_search_max_mtu_data
+	fetcht 1,mem_le_name_len
+	increase 1, temp
+	call not_greater_than
+	copy pdata,regc
+	copy pdata,rega
+
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_RESPONSE
+	istore 1,contw
+	add regc,-1,loopcnt
+	arg mem_le_name,contr
+	branch memcpy
+	
+	
+le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	nbranch le_send_att_read_response,user
+le_send_att_read_response_error_insufficient_auth:
+	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
+	branch le_send_att_error_response
+
+le_send_att_read_response_check_handle:
+	increase -2,contr
+	ifetch 2,contr
+	bbit1 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED,le_send_att_read_response_error_insufficient_auth
+	branch disable_user
+
+le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+le_send_att_read_blob_response:
+	call le_att_get_handle_ptr 
+	branch le_send_att_error_response_notfound,blank
+	ifetch 1,contr
+	isub rega,loopcnt
+	nbranch le_send_att_error_response_notfound,positive
+	call store_contr
+	call le_get_search_max_mtu_data
+	add loopcnt,1,temp
+	call not_greater_than
+le_send_att_read_blob_response_less:
+	copy pdata,rega
+	copy pdata,regc
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BLOB_RESPONSE
+	istore 1,contw
+	add regc,-1,loopcnt
+	fetcht 2,mem_le_att_offset
+	call get_contr
+	iadd temp,contr
+	branch memcpy_fast
+
+
+//查询server
+le_parse_att_read_by_group_type_request:
+	call le_get_search_handle_start_end_common
+ 	call le_get_search_att_type
+	branch le_send_att_read_by_group_type_response
+
+
+//mem_le_search_att_type
+//mem_le_search_handle_start
+//mem_le_search_handle_end
+le_send_att_read_by_group_type_response:
+	arg 2,timeup
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_att_get_handle_ptr2
+	increase -2,contr
+	copy contr,pdata
+	store 2,mem_le_cur_attlist_start_ptr
+le_send_att_read_by_group_type_response_loop:
+	call le_att_check_handle_end		//check current handle >= ending handle
+	nbranch le_send_att_read_by_group_type_end0,positive
+	fetcht 2,mem_temp
+	call le_att_get_handle_info_from_ptr	//get current handle info
+	nbranch le_send_att_read_by_group_type_end1,blank
+
+	call le_att_same_type				//compair attr group type
+	nbranch le_send_att_read_by_group_type_next_handle,zero
+	copy timeup,pdata
+	beq 0,le_send_att_read_by_group_type_end1	//loop count
+	nbranch le_send_att_read_by_group_type_store_write_record,user		//un first
+	disable user
+	//first att uuid
+ 	call le_get_search_max_mtu_data
+ 	copy pdata,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+	istore 1,contw
+	fetch 1,mem_le_curr_att_len
+	add pdata,4,rega
+	istorer rega,1,contw
+	call store_contw
+	sub rega,6,null
+	ncall enable_user2,zero
+	call disable_user2,zero
+ 	call le_get_search_max_mtu_data
+ 	increase -2,pdata
+	idiv rega
+	call wait_div_end
+	quotient timeup
+	branch le_send_att_read_by_group_type_store_record
+le_send_att_read_by_group_type_store_write_record:
+	call le_send_att_read_by_group_type_check_pair_length_type
+	nbranch le_send_att_read_by_group_type_end1,blank
+	fetch 2,mem_temp
+	increase -1,pdata
+	store 2,mem_le_cur_handle_end
+	call le_write_att_record
+le_send_att_read_by_group_type_store_record:
+	fetch 2,mem_temp
+	store 2,mem_le_cur_handle_start
+	call le_store_att_record
+	increase -1,timeup
+//	branch le_send_att_read_by_group_type_last_find,zero		
+le_send_att_read_by_group_type_next_handle:
+	call le_att_next_handle
+	branch le_send_att_read_by_group_type_response_loop
+
+le_send_att_read_by_type_res_check_pair_length_type:
+	fetch 1,mem_le_cur_uuid_length
+	branch le_send_att_read_by_group_type_check_pair_length_type+1
+
+//output:blank is same
+le_send_att_read_by_group_type_check_pair_length_type:
+	fetch 1,mem_le_curr_att_len
+	branch le_send_att_read_by_group_type_check_pair_length_type_16byte,user2
+	increase -2,pdata
+	rtn
+
+le_send_att_read_by_group_type_check_pair_length_type_16byte:
+	increase -16,pdata
+	rtn
+
+le_send_att_read_by_group_type_end0:	//> att handle end
+	fetch 2,mem_temp
+	store 2,mem_le_cur_handle_end
+	branch le_send_att_read_by_group_type_end_common
+le_send_att_read_by_group_type_end1:	//>att max list handle or diff len 
+	fetch 2,mem_temp
+	increase -1,pdata
+	store 2,mem_le_cur_handle_end
+	branch le_send_att_read_by_group_type_end_common
+le_send_att_read_by_group_type_end_common:
+	branch le_send_att_error_response_notfound,user
+	call le_write_att_record
+	branch le_send_auto_len_by_mem
+
+
+
+
+le_parse_att_write_request:
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+le_send_att_write_response_check_auth:
+	bpatchx patch2b_2,mem_patch2b
+	call le_check_encrypt_state
+	fetcht 2,mem_le_att_handle
+	call le_att_get_handle_ptr2
+	nbranch le_send_att_write_response_error_invalid_handle,zero
+	call le_send_att_write_response_check_handle,user
+	rtn user
+
+	fetch 1,mem_le_configuration
+	bbit0 BIT_BLE_WRITE_AUTH,le_send_att_write_response
+
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_write_response,zero
+	call le_check_encrypt_state
+	nbranch le_send_att_write_response,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+
+le_send_att_write_response:
+	force 1,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_WRITE_RESPONSE
+	istore 1,contw
+	rtn
+
+le_send_att_write_response_check_handle:
+	increase -2,contr
+	ifetch 2,contr
+	bbit1 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED,le_send_att_read_response_error_insufficient_auth
+	branch disable_user
+
+le_send_att_write_response_error_invalid_handle:
+	jam ATT_ERR_INVALID_HANDLE,mem_le_err_code
+	branch le_send_att_error_response
+
+
+le_check_encrypt_state:
+	bpatchx patch2b_3,mem_patch2b
+	call disable_user
+	fetch 1,mem_le_pairing_mode
+	rtneq LE_PAIRING_MODE_NONE
+	fetch 1,mem_context
+	rtnbit1 lestate_encryption
+	branch enable_user
+
+
+le_parse_att_prepare_write_request:
+	add contr,2,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-5,regb
+	call le_writeatt_cb
+	branch le_send_att_prepare_write_response
+
+
+le_send_att_prepare_write_response:
+	fetch 2,mem_le_l2cap_size
+	copy pdata,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_PREPARE_WRITE_RESPONSE
+	istore 1,contw
+	fetch 2,mem_le_att_handle
+	istore 2,contw
+	fetch 2,mem_le_l2cap_size
+	add pdata,-5,loopcnt	
+	fetch 2,mem_le_payload_ptr
+	add pdata,7,contr
+	ifetch 2,contr		//offset
+	istore 2,contw
+	branch memcpy_fast
+
+
+
+le_parse_att_execute_write_request:
+
+le_send_att_execute_write_response:
+	force 1,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_EXECUTE_WRITE_RESPONSE
+	istore 1,contw
+	rtn
+
+le_parse_handle_value_confirmation:
+	fetch 1,mem_le_l2cap_att_states
+	set0 BLE_L2CAP_RECV_CONFIRMATION_PACKET,pdata
+	store 1,mem_le_l2cap_att_states
+	rtn
+
+le_parse_att_write_command:
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	branch le_writeatt_cb
+
+
+
+//rga:len temp:handle;rgea,regb,regc already used
+le_att_malloc_tx_notify:
+	copy temp,regc
+	increase 3,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	increase -3,rega
+	setarg ATTOP_HANDLE_VALUE_NOTIFICATION
+	istore 1,contw
+	copy regc,temp
+	istoret 2,contw
+	rtn
+
+//rga:len temp:handle;rgea,regb,regc already used
+le_att_malloc_tx_indication:
+	fetch 1,mem_le_l2cap_att_states
+	set1 BLE_L2CAP_SEND_INDICATION_PACKET,pdata
+	store 1,mem_le_l2cap_att_states
+	copy temp,regc
+	increase 3,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	increase -3,rega
+	setarg ATTOP_HANDLE_VALUE_INDICATION
+	istore 1,contw
+	copy regc,temp
+	istoret 2,contw
+	rtn
+
+
+///////////////////////////ATT common function////////////////////////////////////
+
+le_send_att_error_response_notfound:	
+	bpatchx patch2b_4,mem_patch2b
+	jam ATT_ERR_ATTRIBUTE_NOT_FOUND,mem_le_err_code
+le_send_att_error_response:	
+	force 5,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_ERROR_RESPONSE
+	istore 1,contw
+	fetch 1,mem_le_att_opcode
+	istore 1,contw
+	fetch 2,mem_le_att_handle
+	istore 2,contw
+	fetch 1,mem_le_err_code
+	istore 1,contw
+	rtn
+
+
+le_fifo_malloc_tx_l2cap_gatt:
+	bpatchx patch2b_5,mem_patch2b
+	force LE_L2CAP_CID_ATT,regb
+	branch le_fifo_malloc_tx_l2cap
+
+
+le_att_next_handle:
+	fetcht 2,mem_temp
+	increase 1,temp
+	storet 2,mem_temp
+	rtn
+
+le_att_check_handle_end:
+	fetcht 2,mem_temp
+	fetch 2,mem_le_search_handle_end
+	isub temp,null
+	rtn
+
+
+le_att_same_type:
+	bpatchx patch2b_6,mem_patch2b
+	fetcht 1,mem_le_search_att_type_length
+	arg mem_le_search_att_type,rega
+le_att_check_same_common:
+	fetch 1,mem_le_cur_uuid_length
+	copy pdata,loopcnt
+	isub temp,null
+	nrtn zero
+	arg mem_le_cur_uuid ,regb
+	branch string_compare
+
+
+le_store_att_record:
+	bpatchx patch2b_7,mem_patch2b
+	fetch 1,mem_le_curr_att_len
+	store 1, mem_temp_block0
+	copy pdata,loopcnt
+	call get_contr
+	branch memcpy_fast
+
+
+le_write_att_record:
+	bpatchx patch2c_0,mem_patch2c
+	call get_contw
+	fetch 2,mem_le_cur_handle_start
+	istore 2,contw
+	fetch 2,mem_le_cur_handle_end
+	istore 2,contw
+le_write_att_record_common:
+	fetch 1,mem_temp_block0
+	copy pdata,loopcnt
+	call memcpy_fast
+	branch store_contw
+
+
+
+le_send_auto_len_by_mem:
+	bpatchx patch2c_1,mem_patch2c
+	call get_contw
+	call le_fifo_get_last_att_ptr
+	copy contw,pdata
+	isub contr,rega
+	call le_fifo_get_last_l2cap_ptr
+	copy rega,pdata
+	istore 2,contr
+	increase 4,rega
+	call le_fifo_get_last_tx_ptr
+	copy rega,pdata
+	istore 1,contr
+	rtn
+
+
+le_get_search_handle_start_end_common:
+	rshift8 pdata,pdata
+	store 2,mem_le_search_handle_start
+	ifetch 2,contr
+	store 2,mem_le_search_handle_end
+	rtn
+
+
+le_get_search_max_mtu_data:
+	bpatchx patch2c_2,mem_patch2c
+	fetch 2,mem_le_remote_mtu
+//	increase -2,pdata
+	fetcht 2,mem_le_local_mtu
+//	increase -2,temp
+//	call not_greater_than
+//	arg 240,temp
+	branch not_greater_than
+	//pdata is max mtu size
+
+
+le_get_search_att_type:
+	bpatchx patch2c_3,mem_patch2c
+	call store_contr
+	arg mem_le_search_att_type_length,contw
+le_get_search_common:	
+	fetch 2,mem_le_l2cap_size
+	increase -5,pdata
+le_get_search_common2:		
+	istore 1,contw
+	copy pdata,loopcnt
+	call get_contr
+	branch memcpy_fast	
+
+
+
+le_parse_writing_attribute_start:
+	fetch 2,mem_le_rxbuf_data_att_cid//CID
+	rtnne LE_L2CAP_CID_ATT
+	fetch 1,mem_le_l2cap_att_states
+	set1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET,pdata
+	store 1,mem_le_l2cap_att_states
+	fetch 3,mem_le_rxbuf_data_att_opcode
+	store 3,mem_le_att_opcode
+	set1 mark_old_packet,mark
+	beq ATTOP_WRITE_REQUEST,le_parse_attribute_write_request
+	beq ATTOP_WRITE_COMMAND,le_parse_attribute_write_command
+	beq ATTOP_EXECUTE_WRITE_REQUEST,le_parse_att_execute_write_request
+	beq ATTOP_EXCHANGE_MTU_REQUEST,le_parse_att_exchange_mtu_request
+	beq ATTOP_HANDLE_VALUE_CONFIRMATION,le_parse_handle_value_confirmation
+	set0 mark_old_packet,mark
+le_clear_l2cap_att_states_deal_with_contiune_packet:
+	fetch 1,mem_le_l2cap_att_states
+	set0 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET,pdata
+	store 1,mem_le_l2cap_att_states
+	rtn
+
+le_parse_writing_attribute_continue:
+	fetch 1,mem_le_l2cap_att_states
+	rtnbit0 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
+	set1 mark_old_packet,mark
+	call le_parse_l2cap_continue_common
+	call le_parse_attribute_check_complete_packet
+	call le_clear_l2cap_att_states_deal_with_contiune_packet,user
+	fetch 1,mem_le_att_opcode
+	beq ATTOP_WRITE_REQUEST,le_send_att_write_response_check_auth
+	rtn
+
+
+le_parse_attribute_write_request:
+	call le_parse_attribute_write_command
+	branch le_send_attribute_write_response_check_auth
+
+le_send_attribute_write_response_check_auth:
+	call le_parse_attribute_check_complete_packet
+	nrtn user
+	branch le_send_att_write_response_check_auth
+
+
+le_parse_attribute_write_command:
+	bpatchx patch2c_4,mem_patch2c
+	call le_parse_attribute_check_complete_packet_init
+	arg mem_le_rxbuf_data_att_write_payload,rega
+	branch le_writeatt_cb
+
+
+le_parse_attribute_check_complete_packet_init:
+	fetch 1,mem_le_rxbuf_data_att_write_length
+	add pdata,-7,regb
+	increase -4,pdata
+	store 2,mem_le_packet_len_recved	//payload length
+	fetcht 2,mem_le_rxbuf_data_att_write_l2cap_length	//l2cap length
+	storet 2,mem_le_l2cap_size
+	rtn
+
+
+le_parse_l2cap_continue_common:
+	fetchr regb,1,mem_le_rxbuf_data_continue_length
+	fetch 2,mem_le_packet_len_recved
+	iadd regb,temp
+	storet 2,mem_le_packet_len_recved
+	arg mem_le_rxbuf_data_continue_payload,rega
+	branch le_writeatt_cb
+
+
+//enable user,recevie complete packet
+le_parse_attribute_check_complete_packet:
+	call disable_user
+	fetch 2,mem_le_packet_len_recved
+	fetcht 2,mem_le_l2cap_size
+	isub temp,null
+	nrtn zero
+	branch enable_user
+
+
+
+
+
+le_parse_signaling:
+	ifetch 1,contr
+	ifetcht 1,contr //id
+	ifetcht 2,contr //length
+	beq L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE,le_l2cap_parse_conn_parameter_update_rsp
+	rtn
+le_l2cap_parse_conn_parameter_update_rsp:
+	ifetch 2,contr	//result
+	store 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	jam BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+//mem_le_interval_min:the ptr that connection parameter,
+//include 	ConnIntervalMin,ConnIntervalMax,
+//		ConnSlaveLatency,ConnSupervisionTimeout
+le_l2cap_tx_update_req:
+	arg 0x0c,rega
+	arg L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST,regc
+	call le_fifo_malloc_tx_l2cap_signaling
+	setarg 0x08
+	istore 2,contw
+	fetch 8,mem_le_interval_min
+	istore 8,contw
+	rtn
+
+
+//rega:len regc:signaling opcode
+le_fifo_malloc_tx_l2cap_signaling:
+	call le_l2cap_update_signaling_identifier
+	arg LE_L2CAP_CID_SIGNAL,regb
+	call le_fifo_malloc_tx_l2cap
+	copy regc,pdata
+	istore 1,contw
+	fetch 1,mem_le_signaling_identifier
+	istore 1,contw
+	rtn
+
+
+le_l2cap_update_signaling_identifier:
+	fetch 1,mem_le_signaling_identifier
+	//beq 0xff,le_l2cap_signaling_identifier_set_1
+	pincrease 1
+	store 1,mem_le_signaling_identifier
+	rtnne 0
+	
+le_l2cap_reset_signaling_identifier:
+	jam 1,mem_le_signaling_identifier
+	rtn
+
+
+
+
+le_pairing_mode_init:
+	fetch  1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_NONE, le_set_no_pairing
+	beq LE_PAIRING_MODE_LAGACY_JUSTWORK,le_set_pairing_mode_lagacy_just_work
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY,le_set_pairing_mode_lagacy_passkey
+	beq LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK,le_set_pairing_mode_secure_justwork
+	beq LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC,le_set_pairing_mode_secure_numeric
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_set_pairing_mode_secure_passkey
+	rtn
+	
+le_set_pairing_mode_secure_justwork:
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch le_set_noinputnooutput
+le_set_pairing_mode_secure_numeric:
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	jam FLAG_IOCAP_DISPLAYYESNO,mem_le_pres_iocap
+	rtn
+le_set_pairing_mode_secure_passkey:	
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch le_set_displayonly
+
+le_set_no_pairing:
+	jam FLAG_LE_NO_BONDING_NO_MITM,mem_le_pres_auth
+le_set_noinputnooutput:	
+	jam FLAG_IOCAP_NOINPUTNOOUTPUT,mem_le_pres_iocap
+	rtn
+le_set_pairing_mode_lagacy_just_work:
+	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
+	branch le_set_noinputnooutput
+le_set_pairing_mode_lagacy_passkey:
+	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
+le_set_displayonly:	
+	jam FLAG_IOCAP_DISPLAYONLY,mem_le_pres_iocap
+	rtn
+
+le_secure_connection_enable:
+	fetch 1,mem_secure_connections_enable
+	set1 SECURE_CONNECTIONS_LE_BIT,pdata
+	store 1,mem_secure_connections_enable
+	rtn
+	
+le_secure_connection_disable:
+	fetch 1,mem_secure_connections_enable
+	set0 SECURE_CONNECTIONS_LE_BIT,pdata
+	store 1,mem_secure_connections_enable
+	rtn
+
+le_parse_smp:
+	ifetch 1,contr
+	beq SMP_PAIRING_REQUEST,le_parse_smp_pairing_request
+//	beq SMP_PAIRING_RESPONSE,le_parse_smp_pairing_response
+	beq SMP_PAIRING_CONFIRM,le_parse_smp_pairing_confirm
+	beq SMP_PAIRING_RANDOM,le_parse_smp_pairing_random
+	beq SMP_PAIRING_FAILED,le_parse_smp_pairing_failed
+//	beq SMP_ENCRYPTION_INFORMATION,le_parse_smp_encryption_information
+	beq SMP_MASTER_IDENTIFICATION,le_parse_smp_master_identification
+	beq SMP_IDENTITY_INFORMATION,le_parse_smp_identity_information
+	beq SMP_IDENTITY_ADDRESS_INFORMATION,le_parse_smp_identity_address_information
+	beq SMP_SIGNING_INFORMATION,le_parse_smp_signing_information
+	beq SMP_SECURITY_REQUEST,le_parse_smp_security_request
+	beq SMP_PAIRING_PUBLIC_KEY,le_parse_smp_public_key
+	beq SMP_PAIRING_DHKEY_CHECK,le_parse_smp_dhkey_check
+	rtn
+
+
+
+le_send_smp_security_request:
+	force 2,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_SECURITY_REQUEST
+	istore 1,contw
+	fetch 1,mem_le_pres_auth
+	istore 1,contw
+	rtn
+		
+le_parse_smp_pairing_request:
+	store 1,mem_le_preq
+	ifetch 6,contr
+	istore 6,contw
+	fetch 1,mem_le_pairing_mode
+	beq  LE_PAIRING_MODE_NONE,le_smp_pairing_fail_reason_not_support_pairing
+	call le_send_smp_pairing_response
+	fetch 1,mem_sc_only_mode
+	branch le_parse_smp_pairing_request2, blank
+	fetch 1,mem_le_preq_auth
+	bbit0  LE_AUTH_SECURE_CONNECTION_PAIRING_BIT,app_ble_disconnect
+	fetch 1,mem_le_pairing_mode
+	bbit0 LE_PAIRING_MODE_SECURE_CONNECT_BIT,app_ble_disconnect
+le_parse_smp_pairing_request2:	
+	jam FLAG_LE_PAIRING_RCV_PAIRING_REQ,mem_le_pairing_state
+	fetch 1,mem_le_preq_iocap
+	beq  FLAG_IOCAP_DISPlAYONLY,le_set_tk_0
+	beq  FLAG_IOCAP_DISPLAYYESNO,le_set_tk_0
+	beq  FLAG_IOCAP_NOINPUTNOOUTPUT,le_set_tk_0
+	fetch 1,mem_le_pairing_mode	
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY,le_parse_smp_pairing_req_passkey
+	rtneq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+le_set_tk_0:
+	arg 0,pdata
+	store 4,mem_le_tk
+	rtn
+
+le_parse_smp_pairing_req_passkey:
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_PASSKEY_FIXED_KEY,le_parse_smp_pairing_req_fixed_passkey
+le_genernate_tk:
+	arg mem_le_tk,rega
+	copy rega,contw
+	arg 3,loopcnt
+	call generate_random_loop
+	fetch 2,mem_le_tk + 2
+	and_into 0x7,pdata
+	store 2,mem_le_tk + 2
+le_parse_smp_pairing_req_fixed_passkey:
+	jam BT_EVT_LE_TK_GENERATE,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+
+le_send_smp_pairing_response:
+	force 7,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	fetch 7,mem_le_pres
+	istore 7,contw
+	rtn
+		
+
+le_parse_smp_pairing_confirm:
+	jam FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM,mem_le_pairing_state
+	arg mem_le_rconfirm,contw
+	call memcpy16
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT,le_parse_smp_pairing_confirm_passkey_res_input
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_parse_smp_pairing_confirm_secure_passkey
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,le_parse_smp_pairing_confirm_sc_passkey_res_input
+	branch le_send_smp_pairing_confirm
+
+	
+le_parse_smp_pairing_confirm_passkey_res_input:
+	jam BT_EVT_LE_GET_PASSKEY,mem_fifo_temp
+	branch ui_ipc_send_event
+	
+le_parse_smp_pairing_confirm_secure_passkey:
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_PASSKEY_WAIT_CONFIRM,mem_le_secure_connect_state	
+	rtn
+
+le_parse_smp_pairing_confirm_sc_passkey_res_input:
+	fetch 4,mem_le_tk
+	branch le_parse_smp_pairing_confirm_passkey_res_input,blank
+	branch le_parse_smp_pairing_confirm_secure_passkey
+
+le_send_smp_pairing_confirm:
+	jam FLAG_LE_PAIRING_SEND_PAIRING_CONFIRM,mem_le_pairing_state
+	fetch 1,mem_le_pairing_mode
+	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,le_send_smp_pairing_confirm_sc
+	call generate_confirm
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_CONFIRM
+	istore 1,contw
+	branch  store_aes_result
+
+le_send_smp_pairing_confirm_sc:
+	arg mem_le_srand,contw	
+	call generate_random
+	call function_f4_cb
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_CONFIRM
+	istore 1,contw
+	branch  load_inverse_result
+	
+le_parse_smp_pairing_random:	
+	copy contr,rega
+	fetch 1,mem_le_pairing_mode
+	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,le_parse_smp_pairing_random_sc
+	copy rega,contr
+	call authenticate_rconfirm
+	branch le_parse_smp_pairing_random_success,zero
+le_send_pairing_confirm_value_failed:
+	jam PAIRING_FAILED_CONFIRM_VALUE_FAILED,mem_le_ll_pairing_fail_reason
+le_send_pairing_failed:
+	force 2,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_FAILED
+	istore 1,contw
+	fetch 1,mem_le_ll_pairing_fail_reason
+	istore 1,contw	
+le_parse_smp_pairing_failed:
+	bpatchx patch2c_5,mem_patch2c
+	force smp_pairing_timer,queue
+	call timer_stop
+	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state
+	jam BT_EVT_LE_PAIRING_FAIL,mem_fifo_temp
+	branch ui_ipc_send_event
+
+le_smp_pairing_fail_reason_not_support_pairing:
+	jam PAIRING_FAILED_PAIRING_NOT_SUPPORTED,mem_le_ll_pairing_fail_reason
+	branch le_send_pairing_failed
+	
+le_parse_smp_pairing_random_sc:
+	arg mem_le_mrand,contw
+	copy rega,contr
+	call memcpy16	
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_parse_smp_pairing_random_sc_passkey
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,le_parse_smp_pairing_random_sc_passkey
+	call function_g2
+	call le_send_smp_pairing_random
+	fetch 1,mem_le_pairing_mode
+	rtnne LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+	jam BT_EVT_LE_GKEY_GENERATE,mem_fifo_temp
+	branch ui_ipc_send_event	
+	
+le_parse_smp_pairing_random_sc_passkey:
+	call function_f4_ca
+	arg mem_AES_CMAC_temp,contw
+	call load_inverse_result	
+	arg mem_AES_CMAC_temp,rega
+	arg mem_le_rconfirm ,regb
+	arg 16,loopcnt
+	call string_compare
+	nbranch le_send_pairing_confirm_value_failed,zero
+	branch le_send_smp_pairing_random
+
+le_parse_smp_pairing_random_success:
+	call generate_stk
+	jam BT_EVT_LE_PAIRING_SUCCESS,mem_fifo_temp
+	call ui_ipc_send_event
+	jam 1,mem_ltk_exists
+	jam FLAG_LE_PAIRING_AFTER_AUTH,mem_le_pairing_state
+	
+le_send_smp_pairing_random:
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_RANDOM
+	istore 1,contw
+	arg mem_le_srand,contr
+	branch memcpy16
+
+le_send_smp_encryption_information:
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_ENCRYPTION_INFORMATION
+	istore 1,contw
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_PAIRING_FIXED_LTK,le_send_fixed_ltk
+	arg mem_le_ltk,contr
+	branch memcpy16
+
+le_send_fixed_ltk:
+	arg mem_le_fixed_ltk,contr
+	branch memcpy16
+
+
+le_send_smp_master_identification:
+	arg mem_le_ediv,contw
+	force 10,loopcnt
+	call generate_random_loop
+	force 11,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_MASTER_IDENTIFICATION
+	istore 1,contw
+	fetch 2,mem_le_ediv
+	istore 2,contw
+	fetch 8,mem_le_rand
+	istore 8,contw
+	rtn
+
+le_send_smp_identity_information:
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_IDENTITY_INFORMATION
+	istore 1,contw
+	setarg 0
+	istore 8,contw
+	istore 8,contw
+	rtn
+	
+
+le_send_smp_identity_address_information:
+	force 8,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_IDENTITY_ADDRESS_INFORMATION
+	istore 1,contw
+	fetch 1,mem_le_conn_own_addr_type
+	istore 1,contw
+	fetch 6,mem_le_lap	
+	istore 6,contw
+	rtn	
+
+
+le_send_pairing_fail_unspecified_reason:
+	jam PAIRING_FAILED_UNSPECIFIED_REASON,mem_le_ll_pairing_fail_reason
+	branch le_send_pairing_failed
+
+le_check_init_key_distribution:
+	fetch 1,mem_le_pres_init_key_distribution
+	fetcht 1,mem_le_pres_init_key_distribution
+	iand temp,pdata
+	rtn	
+
+le_parse_smp_identity_information:
+	arg mem_le_irk,contw
+	call memcpy16
+	call le_check_init_key_distribution
+	isolate0 LE_INITATOR_IRK_BIT,pdata
+	branch le_send_pairing_fail_unspecified_reason,true
+	fetch 1,mem_device_option
+	rtnne DVC_OP_MODULE
+	call le_check_master_addr_type
+	nrtn user
+	branch app_ble_store_reconn_info
+
+//output:user is enable ,random addr type
+le_check_master_addr_type:
+	call disable_user
+	fetch 1,mem_le_conn_peer_addr_type
+	rtneq MASTER_PUBLIC_ADDR
+	fetch 1,mem_le_preq_init_key_distribution
+	rtnbit0 LE_INITATOR_IRK_BIT
+	branch enable_user
+
+le_parse_smp_identity_address_information:
+	call le_check_init_key_distribution
+	isolate0 LE_INITATOR_IRK_BIT,pdata
+	branch le_send_pairing_fail_unspecified_reason,true
+	rtn
+
+le_parse_smp_master_identification:
+le_parse_smp_signing_information:	
+le_parse_smp_security_request:
+	rtn
+	
+le_parse_smp_public_key:
+	arg mem_le_pubkey_remote_x_256,contw	
+	call memcpy64
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_RECEIVE_PUBLIC_KEY,mem_le_secure_connect_state
+	rtn
+
+le_parse_smp_dhkey_check:
+	arg mem_sp_confirm_remote,contw
+	call memcpy16	
+	jam LE_SC_STAT_RECEIVE_DHKEY,mem_le_secure_connect_state
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	rtn	
+
+le_send_smp_pairing_public_key:
+	force 65,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_PUBLIC_KEY
+	istore 1,contw	
+	arg mem_sc_pubkey_local_x_256,contr
+	branch memcpy64
+	
+le_send_smp_pairing_dhkey_check:
+	call function_f6_eb	
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_DHKEY_CHECK
+	istore 1,contw
+	branch load_inverse_result
+
+le_check_paring_time:
+	fetch 1,mem_le_pairing_state
+	rtneq FLAG_LE_PAIRING_END
+	arg FLAG_LE_PAIRING_RCV_PAIRING_REQ,temp
+	isub temp,null
+	nrtn positive
+	arg smp_pairing_timer,queue
+	call timer_check
+	nrtn blank
+	branch le_send_pairing_fail_unspecified_reason
+
+le_pairing_sm:
+	bpatchx patch2c_6,mem_patch2c
+	call le_fifo_check_nearly_full
+	nrtn blank	
+	fetch 1,mem_le_pairing_state
+	beq FLAG_LE_PAIRING_NULL,le_pairing_sm_null
+	beq FLAG_LE_PAIRING_START,le_pairing_sm_start
+	beq FLAG_LE_PAIRING_SEND_RECURITY_REQ,le_pairing_sm_send_sec_req
+	beq FLAG_LE_PAIRING_RCV_PAIRING_REQ,le_pairing_sm_rcv_pairing_req
+	beq FLAG_LE_PAIRING_AFTER_AUTH,le_pairing_sm_after_auth
+	beq FLAG_LE_PARING_SEND_ENC_INFORMATION,le_pairng_sm_send_enc_information
+	beq FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION,le_pairng_sm_send_master_indentification
+	beq FLAG_LE_PARING_SEND_INDENTITY_INFORMATION,le_pairng_sm_send_indentity_information
+	rtn
+
+le_pairing_sm_null:
+le_pairing_sm_send_sec_req:
+	fetch 1,mem_le_enc_state
+	rtnne FLAG_LE_SEND_START_ENC_RSP
+	jam FLAG_LE_ENC_END,mem_le_enc_state
+	jam FLAG_LE_PAIRING_END,mem_le_pairing_state
+	jam BT_EVT_LE_RECONNECT_COMPLETE ,mem_fifo_temp
+	branch ui_ipc_send_event	
+	
+	
+le_pairing_sm_start:
+	jam FLAG_LE_PAIRING_SEND_RECURITY_REQ,mem_le_pairing_state
+	branch le_send_smp_security_request
+
+le_pairing_sm_rcv_pairing_req:
+	jam FLAG_LE_PAIRING_WAIT_STK_GENERATION,mem_le_pairing_state
+	setarg TIMER_SMP_PAIRING_TIMEOUT
+	arg smp_pairing_timer,queue
+	branch timer_init
+	
+le_pairing_sm_after_auth:
+	fetch 1,mem_le_enc_state
+	beq FLAG_LE_SEND_START_ENC_RSP,le_pairing_sm_after_auth_start_enc
+	rtn
+	
+le_pairing_sm_after_auth_start_enc:
+	fetch 1,mem_le_pairing_mode
+	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,le_pairing_sm_after_auth_start_enc_sc
+
+	jam FLAG_LE_PARING_SEND_ENC_INFORMATION,mem_le_pairing_state
+	call le_send_smp_encryption_information
+le_pairing_sm_after_auth_start_enc_common:
+	jam BT_EVT_LE_ENC_INFO,mem_fifo_temp
+	call ui_ipc_send_event
+	fetch 1,mem_device_option
+	rtnne DVC_OP_MODULE
+	call le_check_master_addr_type
+	rtn user
+	branch app_ble_store_reconn_info
+
+le_pairing_sm_after_auth_start_enc_sc:
+	jam FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION,mem_le_pairing_state
+	branch le_pairing_sm_after_auth_start_enc_common
+
+le_pairng_sm_send_enc_information:	
+	jam FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION,mem_le_pairing_state
+	branch le_send_smp_master_identification
+
+le_pairng_sm_send_master_indentification:	
+	fetch 1,mem_le_preq_resp_key_distribution
+	fetcht 1,mem_le_pres_resp_key_distribution
+	iand temp,pdata
+	isolate0 LE_INITATOR_IRK_BIT,pdata
+	branch le_parse_start_enc_rsp_after_auth_end,true
+	jam FLAG_LE_PARING_SEND_INDENTITY_INFORMATION,mem_le_pairing_state
+	branch le_send_smp_identity_information
+
+le_pairng_sm_send_indentity_information:		
+	call le_send_smp_identity_address_information
+	branch le_parse_start_enc_rsp_after_auth_end
+
+
+le_parse_start_enc_rsp_after_auth_end:
+	bpatchx patch2c_7,mem_patch2c
+	force smp_pairing_timer,queue
+	call timer_stop
+	jam FLAG_LE_ENC_END,mem_le_enc_state
+	jam FLAG_LE_PAIRING_END,mem_le_pairing_state
+	jam BT_EVT_LE_PAIRING_COMPLETE ,mem_fifo_temp
+	branch ui_ipc_send_event	
+	
+
+
+le_secure_connect_sm:
+	bpatchx patch2d_0,mem_patch2d
+	fetch 1,mem_le_pairing_mode
+	rtnbit0 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+	fetch 1,mem_le_secure_connect_flag
+	rtnne LE_SP_FLAG_COMMIT_256
+	jam SP_FLAG_STANDBY,mem_le_secure_connect_flag
+	fetch 1,mem_le_secure_connect_state
+	beq  LE_SC_STAT_RECEIVE_PUBLIC_KEY,le_sc_sm_receive_public_key
+	beq LE_SC_STAT_WAIT_SEND_PUBLIC_KEY,le_sc_sm_wait_send_public_key
+	beq LE_SC_STAT_SEND_PUBLIC_KEY,le_sc_sm_send_public_key
+	beq LE_SC_STAT_RECEIVE_DHKEY,le_sc_sm_receive_dhkey
+	beq LE_SC_STAT_WAIT_CONFIRM_GKEY,le_sc_sm_wait_confirm_gkey
+	beq  LE_SC_STAT_PASSKEY_WAIT_CONFIRM,le_sc_sm_passkey_wait_confirm
+	rtn	
+
+le_sc_state_clear:
+	jam SP_FLAG_STANDBY,mem_le_secure_connect_flag
+	jam LE_SC_STAT_NULL,mem_le_secure_connect_state
+	jam FLAG_LE_SC_CONFRIM_NULL,mem_le_sc_confirm_gkey_flag
+	rtn
+	
+le_sc_sm_passkey_wait_confirm:
+	fetch 1,mem_authentication_passkey_times
+	copy pdata,queue
+	increase 1,pdata
+	store 1,mem_authentication_passkey_times
+	fetch 4,mem_le_tk
+	qisolate1 pdata
+	setarg 0x80
+	setflag true,0,pdata
+	store 1,mem_passkey_1bit
+	branch le_sc_sm_ready_send_pairing_confirm
+	
+le_sc_sm_wait_confirm_gkey:
+	fetch 1,mem_le_sc_confirm_gkey_flag
+	jam FLAG_LE_SC_CONFRIM_NULL,mem_le_sc_confirm_gkey_flag
+	beq FLAG_LE_SC_CONFRIM_GKEY_OK,le_sc_confirm_gkey_ok
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	rtn
+	
+le_sc_confirm_gkey_ok:
+	jam BT_EVT_LE_PAIRING_SUCCESS,mem_fifo_temp
+	call ui_ipc_send_event	
+	jam FLAG_LE_PAIRING_AFTER_AUTH,mem_le_pairing_state
+	branch le_send_smp_pairing_dhkey_check
+
+le_sc_sm_receive_dhkey:
+	fetch 1,mem_sp_dhkey_invalid
+	beq SP_KEY_VALID_256,le_dhkey_ready
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	rtn
+
+le_dhkey_ready:
+	call function_f5
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY ,le_dhkey_ready_common
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT ,le_dhkey_ready_common
+	call le_set_tk_0 
+le_dhkey_ready_common:
+	call function_f6_ea
+	arg mem_AES_CMAC_temp,rega
+	arg mem_sp_confirm_remote ,regb
+	arg 16,loopcnt
+	call string_compare
+	branch le_dhkey_check_ok,zero
+le_dhkey_check_fail:	
+	jam PAIRING_FAILED_DHKEY_CHECK_FAILED,mem_le_ll_pairing_fail_reason
+	branch le_send_pairing_failed
+
+	
+le_dhkey_check_ok:
+	call sp_calc_check_publickey_256
+	nbranch le_dhkey_check_fail,zero
+	jam 1,mem_ltk_exists
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK,le_sc_confirm_gkey_ok
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY ,le_sc_confirm_gkey_ok	
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT ,le_sc_confirm_gkey_ok	
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_WAIT_CONFIRM_GKEY,mem_le_secure_connect_state	
+	rtn	
+
+le_sc_sm_send_public_key:
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_sc_sm_send_public_key_passkey
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,le_sc_sm_send_public_key_passkey
+	jam 0,mem_passkey_1bit
+le_sc_sm_ready_send_pairing_confirm:
+	branch le_send_smp_pairing_confirm
+
+le_sc_sm_send_public_key_passkey:
+	jam 0,mem_authentication_passkey_times
+	rtneq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT
+	branch le_parse_smp_pairing_req_passkey
+
+	
+le_sc_sm_receive_public_key:
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	fetch 1,mem_sc_local_key_invalid
+	beq SP_KEY_VALID_256,le_public_key_ready
+	rtn
+	
+le_public_key_ready:
+	jam LE_SC_STAT_WAIT_SEND_PUBLIC_KEY,mem_le_secure_connect_state	
+	jam SP_KEY_INVALID,mem_sp_dhkey_invalid
+	branch sp_dhkey_calc_256	
+
+le_sc_sm_wait_send_public_key:
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_SEND_PUBLIC_KEY,mem_le_secure_connect_state
+	branch le_send_smp_pairing_public_key
+
+
+
+le_fifo_malloc_tx_l2cap_smp:
+	bpatchx patch2d_1,mem_patch2d
+	force LE_L2CAP_CID_SMP,regb
+	branch le_fifo_malloc_tx_l2cap
+
+
+
+le_parse_ll:
+	fetch 1,mem_le_rxbuf_data_ll_opcode
+	beq LL_CONNECTION_UPDATE_IND,le_parse_connection_update_ind
+	beq LL_CHANNEL_MAP_IND,le_parse_channel_map_ind
+	beq LL_TERMINATE_IND,le_parse_terminate_ind
+	beq LL_ENC_REQ,le_parse_enc_req
+	beq LL_ENC_RSP,le_parse_enc_rsp
+	beq LL_START_ENC_REQ,le_parse_start_enc_req
+	beq LL_START_ENC_RSP,le_parse_start_enc_rsp
+	beq LL_UNKNOWN_RSP,le_parse_unknown_rsp
+	beq LL_FEATURE_REQ,le_parse_feature_req
+	beq LL_FEATURE_RSP,le_parse_feature_rsp
+	beq LL_PAUSE_ENC_REQ,le_parse_pause_enc_req
+	beq LL_PAUSE_ENC_RSP,le_parse_pause_enc_rsp
+	beq LL_VERSION_IND,le_parse_version_ind
+	beq LL_REJECT_IND,le_parse_reject_ind
+	beq LL_PING_REQ,le_parse_ping_req
+	beq LL_PING_RSP,le_parse_ping_rsp
+	beq LL_LENGTH_REQ,le_parse_length_req
+	beq LL_LENGTH_RSP,le_parse_length_rsp
+	beq LL_PHY_REQ,le_parse_phy_req
+	beq LL_PHY_UPDATE_IND,le_parse_phy_update_ind
+	fetchr regc,1,mem_le_rxbuf_data_ll_opcode
+	branch le_send_unknown_rsp
+
+
+//LL Opcode:0x00
+le_parse_connection_update_ind:
+	ifetch 9,contr
+	store 9,mem_le_new_param
+	ifetch 2,contr
+	store 2,mem_le_instant
+	fetch 1,mem_le_state
+	set1 lestate_update_param,pdata
+	store 1,mem_le_state
+	rtn
+
+
+//LL Opcode:0x01
+le_parse_channel_map_ind:
+	ifetch 5,contr
+	store 5,mem_le_new_map
+	ifetch 2,contr
+	store 2,mem_le_instant
+le_update_map_enable:
+	fetch 1,mem_le_state
+	set1 lestate_update_map,pdata
+	store 1,mem_le_state
+	rtn
+
+
+//LL Opcode:0x02
+le_parse_terminate_ind:
+	setarg 20 // 200ms
+	store 2,mem_le_superto
+	store 2,mem_le_init_superto
+	rtn
+
+
+//LL Opcode:0x03
+le_parse_enc_req:
+	ifetch 8,contr
+	store 8,mem_le_rand
+	ifetch 2,contr
+	store 2,mem_le_ediv
+	ifetch 8,contr
+	store 8,mem_le_skdm
+	ifetch 4,contr
+	store 4,mem_ccm_ivm
+	call le_send_enc_rsp
+	bpatchx patch2d_2,mem_patch2d
+	fetch 1,mem_le_pairing_state
+	beq FLAG_LE_PAIRING_AFTER_AUTH,le_parse_enc_req_after_auth
+	fetch 1,mem_le_configuration
+	bbit1  BIT_BLE_PAIRING_FIXED_LTK,le_parse_enc_req_fixed_ltk
+	fetch 1,mem_nv_data_number
+	ncall load_device_list_mode_4,blank
+	fetch 1,mem_ltk_exists
+	beq 0,le_ltk_lost
+le_parse_enc_req_after_auth:
+	jam FLAG_LE_RCV_ENC_START,mem_le_enc_state
+	call  le_send_start_enc_req
+	branch generate_sk
+le_parse_enc_req_fixed_ltk:
+	jam 1,mem_ltk_exists
+	arg mem_le_fixed_ltk,contr
+	arg mem_le_ltk,contw
+	call memcpy16
+	branch le_parse_enc_req_after_auth
+	
+le_ltk_lost:
+	jam FLAG_LE_ENC_NULL,mem_le_enc_state
+	jam FLAG_LE_ENC_NULL,mem_le_pairing_state
+	jam BT_EVT_LE_LTK_LOST,mem_fifo_temp
+	branch ui_ipc_send_event
+
+//LL Opcode:0x04
+le_parse_enc_rsp:
+	ifetch 8,contr
+	store 8,mem_le_skds
+	ifetch 4,contr
+	store 4,mem_ccm_ivs
+	branch generate_sk
+
+
+//LL Opcode:0x05
+le_parse_start_enc_req:
+	fetch 1,mem_le_state
+	set1 lestate_encryption,pdata
+	store 1,mem_le_state
+	rtn
+
+//LL Opcode:0x06
+le_parse_start_enc_rsp:
+	rtn master
+	jam BT_EVT_LE_START_ENC,mem_fifo_temp
+	call ui_ipc_send_event	
+	jam FLAG_LE_SEND_START_ENC_RSP,mem_le_enc_state
+	branch le_send_start_enc_rsp
+
+
+//LL Opcode:0x07
+le_parse_unknown_rsp:
+	rtn
+
+
+//LL Opcode:0x08
+le_parse_feature_req:
+	branch le_send_feature_rsp
+
+
+//LL Opcode:0x09
+le_parse_feature_rsp:
+	rtn
+
+
+//LL Opcode:0x0a
+le_parse_pause_enc_req:
+	jam FLAG_LE_ENC_PAUSE,mem_le_enc_state
+	call le_send_pause_enc_rsp	
+	jam BT_EVT_LE_PAUSE_ENC,mem_fifo_temp
+	branch ui_ipc_send_event	
+
+
+//LL Opcode:0x0b
+le_parse_pause_enc_rsp:
+	rtn
+
+
+//LL Opcode:0x0c
+le_parse_version_ind:
+	rtn master
+	branch le_send_version_ind
+
+
+//LL Opcode:0x0d
+le_parse_reject_ind:
+	rtn
+
+
+//LL Opcode:0x13
+le_parse_ping_req:
+	branch le_send_ping_rsp
+
+
+//LL Opcode:0x14
+le_parse_ping_rsp:
+	rtn
+
+
+le_parse_length_req:
+	call le_parse_length_rsp
+	branch le_send_data_length_res
+
+le_parse_length_rsp:
+	ifetch 8,contr
+	store 8,mem_remote_rx_max_octets
+	fetch 2,mem_remote_rx_max_octets
+	fetcht 2,mem_local_tx_max_octets
+	call not_greater_than
+	store 2,mem_remote_rx_max_octets
+	
+	fetch 2,mem_remote_tx_max_octets
+	fetcht 2,mem_local_rx_max_octets
+	call not_greater_than
+	store 2,mem_remote_tx_max_octets
+	rtn
+
+
+//LL Opcode:0x16
+le_parse_phy_req:
+	branch le_send_phy_rsp
+
+
+//LL Opcode:0x18
+le_parse_phy_update_ind:
+	ifetch 2,contr
+	store 2,mem_le_new_m2s_phy
+	ifetch 2,contr
+	store 2,mem_le_instant
+	rtn blank
+	fetch 1,mem_le_state
+	set1 lestate_update_phy,pdata
+	store 1,mem_le_state	
+	rtn
+
+
+///////////////////send ll packet//////////////
+//LL Opcode:0x02
+le_send_terminate_ind_user_terminated:
+	arg ERROR_REMOTE_USER_TERMINATED_CONNECTION,regc
+
+//regc:The ErrorCode field shall be set to inform the remote device why the connection is about to be terminated.
+le_send_terminate_ind:
+	arg 2,rega
+	arg LL_TERMINATE_IND,regb
+	call le_fifo_malloc_tx_ll
+	copy regc,pdata
+	istore 1,contw
+	rtn
+
+
+//LL Opcode:0x04
+le_send_enc_rsp:
+	arg mem_le_skds,contw
+	force 8,loopcnt
+	call generate_random_loop
+	arg mem_ccm_ivs,contw
+	force 4,loopcnt
+	call generate_random_loop
+	arg 13,rega
+	arg LL_ENC_RSP,regb
+	call le_fifo_malloc_tx_ll
+	fetch 8,mem_le_skds
+	istore 8,contw
+	fetch 4,mem_ccm_ivs
+	istore 4,contw
+	rtn
+
+
+//LL Opcode:0x05
+le_send_start_enc_req:
+	jam FLAG_LE_SEND_START_ENC_REQ,mem_le_enc_state
+	arg LL_START_ENC_REQ,regb
+	branch le_send_ll_one_lenth
+
+
+//LL Opcode:0x06
+le_send_start_enc_rsp:
+	arg LL_START_ENC_RSP,regb
+	branch le_send_ll_one_lenth
+
+
+//LL Opcode:0x07
+//input:regc is receive ll opcode
+le_send_unknown_rsp:
+	arg 2,rega
+	arg LL_UNKNOWN_RSP,regb
+	call le_fifo_malloc_tx_ll
+	istorer regc,1,contw
+	rtn	
+
+
+//LL Opcode:0x09
+le_send_feature_rsp:
+	arg 9,rega
+	arg LL_FEATURE_RSP,regb
+	call le_fifo_malloc_tx_ll
+	fetch 8,mem_le_local_feature
+	or pdata,FUN_LL_FEATURE_LE_ENCRYPTION,pdata
+	istore 8,contw
+	rtn
+
+
+//LL Opcode:0x0B
+le_send_pause_enc_rsp:
+	arg LL_PAUSE_ENC_RSP,regb
+	branch le_send_ll_one_lenth
+
+
+//LL Opcode:0x0C
+le_send_version_ind:
+	arg 6,rega
+	arg LL_VERSION_IND,regb
+	call le_fifo_malloc_tx_ll
+	fetch 5,mem_version
+	istore 5,contw
+	rtn
+
+//LL Opcode:0x0D
+le_send_reject_ind:
+	arg 2,rega
+	arg LL_REJECT_IND,regb
+	call le_fifo_malloc_tx_ll
+	setarg LE_ERR_PIN_OR_KEY_MISSING
+	istore 1,contw
+	rtn		
+
+
+//LL Opcode:0x13
+le_send_ping_rsp:
+	arg LL_PING_RSP,regb
+	branch le_send_ll_one_lenth
+	
+le_send_data_length_req:
+	arg LL_LENGTH_REQ,regb
+	branch le_send_data_length
+
+le_send_data_length_res:
+	arg LL_LENGTH_RSP,regb
+le_send_data_length:
+	arg 9,rega
+	call le_fifo_malloc_tx_ll
+	fetch 8,mem_local_rx_max_octets
+	istore 8,contw
+	rtn
+
+
+//LL Opcode:0x17
+le_send_phy_rsp:
+	arg 3,rega
+	arg LL_PHY_RSP,regb
+	call le_fifo_malloc_tx_ll
+	fetch 1,mem_le_tx_phys
+	and pdata,0x07,pdata
+	istore 1,contw
+	fetch 1,mem_le_rx_phys
+	and pdata,0x07,pdata
+	istore 1,contw
+	rtn		
+
+
+//regb:ll opcode
+le_send_ll_one_lenth:
+	arg 1,rega
+	branch le_fifo_malloc_tx_ll
+
+
+
+
+g24_dispatch:
+	bpatchx patch2d_3,mem_patch2d
+	bmark1 mark_24g_rxmode,g24_receive_dispatch
+	branch g24_transmit_dispatch
+
+
+
+
+g24_prep:
+	bpatchx patch2d_4,mem_patch2d
+	disable enable_crc
+	disable enable_white
+	setarg 0x555555
+	iforce crc24_init
+	fetch 1,mem_24g_ch
+	branch le_prep_next
+
+g24_receive_packet:
+	bpatchx patch2d_5,mem_patch2d
+	fetch 1,mem_24g_rx_phy
+	call le_enable_phy_by_pdata
+	fetch 4,mem_24g_addr
+	iforce access
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	call le_rf_rx_enable
+g24_receive_rxon:
+	call g24_prep
+	bmark0 mark_ble_lr,g24_receive_nolr
+	pulse dewhiten_code_calc
+	nop 30
+	call g24_prep
+g24_receive_nolr:
+	disable user3
+	enable decode_fec0
+	enable is_rx
+	disable is_tx
+	enable swfine
+	fetch 2,mem_24g_rx_window
+	iforce stop_watch
+	correlate null,timeout
+	nbranch g24_sync_timeout,sync
+	call rf_debug_rx_sync_line
+	bmark1 mark_ble_lr,g24_receive_skip_fec1
+	fetch 1,mem_24g_disable_fec1
+	nbranch g24_receive_skip_fec1,blank
+	disable decode_fec0	
+	enable decode_fec1	//lr do not use fec1
+g24_receive_skip_fec1:
+	enable enable_white
+	enable enable_crc
+	call g24_receive_byte
+	store 1,mem_24g_get_syncword_crc8
+	fetcht 1,mem_24g_syncword_crc8
+	isub temp,null
+	nbranch g24_hec_error,zero
+	bpatchx patch2d_6,mem_patch2d
+	disable user7
+	isolate1 mark_ble_lr,mark
+	call g24_lr_receive_pdu_len,true
+	branch g24_lr_len_error,user7
+	call g24_receive_byte
+	store 1,mem_24g_rxbuf	//device id
+	bmark1 mark_24g_rxmode,g24_receive_skip
+	fetch 1,mem_24g_rxbuf
+	fetcht 1,mem_24g_data_type
+	icompare bits_data,temp
+	nbranch g24_type_error,true
+g24_receive_skip:
+	call g24_receive_byte
+	isolate1 mark_ble_lr,mark
+	call g24_lr_receive_payload_len,true
+	istore 1,contw
+	rshift3 pdata,pdata
+	sub pdata,0x1f,null
+	nbranch g24_len_over_error,positive	//max payload: 32bytes
+	copy pdata,loopcnt
+	branch g24rx_nopayload,zero
+g24rx_loop:
+	call g24_receive_byte
+	istore 1,contw
+	loop g24rx_loop
+g24rx_nopayload:
+	bmark1 mark_24g_rxmode,g24_receive_skip_rssi
+	copy contw,rega
+	call g24_receive_byte
+	store 1,mem_rssi_hex_received	//receive rssi hex
+	copy rega,contw
+g24_receive_skip_rssi:
+	parse demod,bucket,24
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	fetch 1,mem_24g_disable_fec1
+	nbranch g24_receive_skip_disable_fec1,blank
+	disable decode_fec1
+g24_receive_skip_next:
+	isolate1 mark_24g_rxmode,mark
+	call save_rssi_dec,true
+	branch g24_crc_error,crc_failed
+	call rf_debug_rx_crc_line	//L
+	bpatchx patch2d_7,mem_patch2d
+	enable user3
+	call le_match_set_txfreq
+	rtnmark1 mark_24g_rxmode
+	fetch 1,mem_rssi_hex_received
+	fetcht 1,mem_rssi_hex_received_max_value
+	isub temp,null
+	call copy_temp2pdata,positive
+	branch rssi_signal
+
+g24_receive_skip_disable_fec1:
+	disable decode_fec0
+	branch g24_receive_skip_next
+	
+
+g24_lr_receive_pdu_len:
+	call g24_receive_byte
+	sub pdata,1,null
+	branch enable_user7,positive
+	increase -2,pdata	//minus hec and pdu length
+	bmark1 mark_24g_rxmode,g24_lr_receive_pdu_norssi
+	branch enable_user7,blank
+	increase -1,pdata	//minus rssi_hex length
+g24_lr_receive_pdu_norssi:
+	store 1,mem_temp	//payload length
+	rtn
+
+g24_lr_receive_payload_len:
+	and_into 0x07,pdata	//pdata[7:3]:length
+	fetcht 1,mem_temp	//payload length
+	lshift3 temp,temp
+	ior temp,pdata
+	rtn
+	
+g24_receive_byte:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	rtn
+
+g24_sync_timeout:
+	jam ERR_SYNC_TO,mem_24g_off_type
+	isolate1 mark_24g_rxmode,mark
+	call rssi_noise,true
+g24_end_of_packet:
+	bpatchx patch2e_0,mem_patch2e
+	call le_disable
+	disable encode_fec1
+	disable decode_fec1
+	branch end_of_packet
+
+g24_hec_error:
+	jam ERR_HEC,mem_24g_off_type
+	branch g24_end_of_packet
+
+g24_lr_len_error:
+	jam ERR_LR_LEN,mem_24g_off_type
+	branch g24_end_of_packet
+
+g24_type_error:
+	jam ERR_TYPE,mem_24g_off_type
+	branch g24_end_of_packet
+
+g24_len_over_error:
+	jam ERR_LEN_OVER,mem_24g_off_type
+	branch g24_end_of_packet
+
+g24_crc_error:
+	jam ERR_CRC,mem_24g_off_type
+	branch g24_end_of_packet
+
+g24_set_freq_tx:
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	branch set_freq_tx
+
+g24_transmit:
+	bpatchx patch2e_1,mem_patch2e
+	fetch 1,mem_24g_tx_phy
+	call le_enable_phy_by_pdata
+	fetch 4,mem_24g_addr
+	iforce access
+	call g24_prep
+	call g24_set_freq_tx
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	call rf_debug_tx_on_line
+	disable lr_s2en
+	bmark1 mark_ble_lr,g24_transmit_lr
+	bmark1 mark_ble_2M,g24_transmit_2M
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+g24_transmit_packet:
+	bpatchx patch2e_2,mem_patch2e
+	bmark1 mark_ble_lr,g24_transmit_nolr
+	fetch 1,mem_24g_disable_fec1
+	nbranch g24_transmit_nolr,blank
+	disable encode_fec0	
+	enable encode_fec1	////lr use encode_fec3
+g24_transmit_nolr:
+	enable enable_white
+	enable enable_crc
+	fetch 1,mem_24g_txlen
+	iforce loopcnt
+	arg mem_24g_txpayload,contr
+g24tr_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop g24tr_loop
+	enable enable_parity
+	inject mod,24	//crc
+	disable enable_parity
+	bmark0 mark_ble_lr,g24_transmit_skip
+	disable enable_white
+	setarg 0
+	inject mod,3
+g24_transmit_skip:	
+	until null,tx_clear
+	nop 100
+	disable lr_s2en
+	disable encode_fec0
+	fetch 1,mem_24g_disable_fec1
+	nbranch g24_transmit_skip_disable_fec1,blank
+	disable encode_fec1
+g24_transmit_skip_disable_fec1:
+	disable encode_fec3
+	call set_sync_on
+	branch rf_debug_tx_off_line
+
+g24_transmit_lr:
+	arg 10,loopcnt
+g24_transmit_lr_preamble_loop:
+	setarg 0x3c
+	inject mod,8
+	loop g24_transmit_lr_preamble_loop
+	disable encode_fec0
+	enable encode_fec3
+	rshift16 access,pdata
+	rshift16 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,32
+	bmark1 mark_ble_lr_s8,g24_transmit_lr_s8
+g24_transmit_lr_s2:
+	setarg 1
+	inject mod,5
+	enable lr_s2en
+	branch g24_transmit_packet
+
+g24_transmit_lr_s8:
+	setarg 0
+	inject mod,5
+	branch g24_transmit_packet
+
+g24_transmit_2M:
+	fetch 1,mem_system_clk
+	rshift pdata,loopcnt
+g24_transmit_2M_dealy:
+	nop 2
+	loop g24_transmit_2M_dealy
+//	nop 36	//2M 前端发送比1M快3us左右
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,temp
+	copy temp,pdata
+	inject mod,8
+	copy temp,pdata
+	inject mod,40
+	branch g24_transmit_packet
+
+
+
+
+
+
+
+g24_transmit_prep:
+	bpatchx patch2e_3,mem_patch2e
+	fetch 1,mem_24g_tx_phy
+	bbit1 BIT_LE_CODED_PHY,g24_lr_transmit_prep
+// total length
+	fetch 1,mem_24g_datalen
+	increase 3,pdata	//hec/type/control
+	store 1,mem_24g_txlen
+//hec
+	fetch 1,mem_24g_syncword_crc8
+	store 1,mem_24g_txpayload
+// data type
+	fetch 1,mem_24g_data_type
+	istore 1,contw
+//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
+	fetch 1,mem_24g_datalen
+g24_transmit_prep_pdu:
+	lshift3 pdata,pdata
+	fetcht 1,mem_24g_pid
+	and temp,0x03,temp
+	lshift temp,temp
+	ior temp,pdata
+	fetcht 1,mem_24g_no_ack
+	iadd temp,pdata
+	istore 1,contw
+//prepare payload data
+	fetch 1,mem_24g_datalen
+	iforce loopcnt
+	arg mem_24g_txbuf,contr
+	call memcpy
+	bpatchx patch2e_4,mem_patch2e
+//rssi hex	
+	rtnmark0 mark_24g_rxmode
+	fetch 1,mem_rssi_hex
+	istore 1,contw
+	fetch 1,mem_24g_tx_phy
+	rtnbit1 BIT_LE_CODED_PHY
+	fetch 1,mem_24g_txlen
+	increase 1,pdata	//plus rssi_hex length
+	store 1,mem_24g_txlen
+	rtn
+	
+g24_lr_transmit_prep:
+// total length
+	fetch 1,mem_24g_datalen
+	increase 4,pdata	//hec/pdu/type/control
+	bmark0 mark_24g_rxmode,g24_lr_transmit_prep_skip
+	increase 1,pdata	//mem_rssi_hex
+g24_lr_transmit_prep_skip:
+	store 1,mem_24g_txlen
+//hec
+	fetch 1,mem_24g_syncword_crc8
+	store 1,mem_24g_txpayload
+// pdu length
+	fetch 1,mem_24g_txlen
+	increase -2,pdata	//minus hec and pdu length
+	istore 1,contw
+// data type
+	fetch 1,mem_24g_data_type
+	istore 1,contw
+	setarg 0
+	branch g24_transmit_prep_pdu
+
+g24_read_len_pid_crc:
+	bpatchx patch2e_5,mem_patch2e
+//read control
+	fetch 1,mem_24g_rxbuf+1
+	rshift3 pdata,pdata
+	store 1,mem_24g_rxdata_length
+//get crc
+	increase 1,pdata
+	arg mem_24g_rxbuf+1,contr
+	iadd contr,contr
+	ifetch 3,contr
+	store 3,mem_24g_sta_crc
+//read pid
+	fetch 1,mem_24g_rxbuf+1
+	rshift pdata,pdata
+	and pdata,0x03,pdata
+	store 1,mem_24g_sta_pid
+	rtn
+
+	
+g24_ch:
+	bpatchx patch2e_6,mem_patch2e
+	fetcht 1,mem_24g_current_ch_number
+	call g24_ch_map_size
+	storet 1,mem_24g_current_ch_number
+	rtn
+
+g24_ch_map_size:
+	bpatchx patch2e_7,mem_patch2e
+	call g24_ch_calc
+	increase 1,temp
+	and_into 3,temp //map size =4
+	rtn
+	
+g24_ch_calc:
+	bpatchx patch2f_0,mem_patch2f
+	fetch 1,mem_24g_addr	
+	and_into 0x03,pdata
+	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
+	setarg mem_24g_ch_map1
+	iadd rega,pdata
+	iadd temp,contr
+	ifetch 1,contr
+	store 1,mem_24g_ch
+	rtn
+
+
+g24_update_addr_and_synccrc8:
+	store 4,mem_24g_addr
+//output: 1BYTE crc8
+	bpatchx patch2f_1,mem_patch2f
+g24_syncword_crc8:
+	arg 0,rega
+	arg 4,loopcnt
+	arg mem_24g_addr,contr
+g24_syncword_crc8_loop:
+	ifetch 1,contr
+	iadd rega,rega
+	loop g24_syncword_crc8_loop
+	copy rega,pdata
+	store 2,mem_24g_syncword
+	fetch 1,mem_24g_syncword
+	fetcht 1,mem_24g_syncword+1
+	iadd temp,pdata
+	store 1,mem_24g_syncword_crc8
+	rtn
+
+
+g24_timer_check:
+	bpatchx patch2f_2,mem_patch2f
+	call disable_user
+	fetcht 4,mem_24g_tx_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_24g_tx_btclk
+	fetcht 1,mem_24g_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_24g_tx_btclk
+	branch enable_user
+	
+g24_timer_timeout:
+	rtn zero
+	set1 28,pdata
+	rtn
+	
+g24_timer_init:
+	setarg 0
+	store 4,mem_24g_tx_btclk
+	rtn
+
+
+
+//mem_24g_ch_map1:00 13 2c 42
+//mem_24g_ch_map2:06 15 36 48
+//mem_24g_ch_map3:0f 1a 3a 4c
+//mem_24g_ch_map4:11 23 31 4d
+g24_chmap_param_init:
+	bpatchx patch2f_3,mem_patch2f
+	setsect 0,0x1300
+	setsect 1,0x1908b
+	setsect 2,0x36150
+	setsect 3,0x3d20
+	store 9,mem_24g_ch_map1
+	setsect 0,0x3a1a
+	setsect 1,0xc453
+	setsect 2,0xd312
+	setsect 3,0x1
+	istore 7,contw
+	fetch 1,mem_24g_ch_map_update
+	rtn blank
+	arg mem_24g_ch_update_map1,contr
+	arg mem_24g_ch_map1,contw
+	branch memcpy16
+
+
+
+//mem_24g_ch_update_map1:00 1e 00 4e
+//mem_24g_ch_update_map2:03 23 03 42
+//mem_24g_ch_update_map3:06 25 06 4c
+//mem_24g_ch_update_map4:09 27 09 3c
+g24_chamap_param_update:
+	bpatchx patch2f_4,mem_patch2f
+	setarg 0x4e001e
+	store 3,mem_24g_ch_update_map1+1
+	setarg 0x032303
+	istore 3,contw
+	setarg 0x250642
+	istore 3,contw
+	setarg 0x094c06
+	istore 3,contw
+	setarg 0x3c0927
+	istore 3,contw
+	jam 1,mem_24g_ch_map_update
+	rtn
+
+
+g24_rx_window_init:
+	bpatchx patch2f_5,mem_patch2f
+	arg 0x6978,temp
+	bmark1 mark_24g_rxmode,g24_rx_window_store
+	arg 0x12c0,temp
+	fetch 1,mem_24g_rx_phy
+	bbit0 2,g24_rx_window_store	//uncoded phy
+	arg 0x2ee0,temp
+g24_rx_window_store:	
+	storet 2,mem_24g_rx_window
+	rtn
+
+g24_enable_1M:
+	jam 0x01,mem_24g_rx_phy
+	jam 0x01,mem_24g_tx_phy
+	rtn
+
+g24_enable_2M:
+	jam 0x02,mem_24g_rx_phy
+	jam 0x02,mem_24g_tx_phy
+	rtn
+	
+//g24_enable_coded_s2:
+//	jam 0x04,mem_24g_rx_phy
+//	jam 0x04,mem_24g_tx_phy
+//	rtn
+
+//g24_enable_coded_s8:
+//	jam 0x84,mem_24g_rx_phy
+//	jam 0x84,mem_24g_tx_phy
+//	rtn
+
+
+
+
+
+
+
+
+
+
+	
+
+
+g24_pair_param_init:
+	bpatchx patch2f_6,mem_patch2f
+	jam 0x4e,mem_24g_pair_ch
+	setarg 0x101520
+	store 3,mem_24g_pair_addr
+	setarg 0x05
+	istore 1,contw
+	rtn
+
+
+
+
+
+g24_pair_timeout_timer:
+	arg mem_24g_pair_timeout,regc
+	arg g24_stop_24g_mode,regb
+	branch timer_single_step_2B
+
+g24_pair_start:
+	set1 mark_24g,mark
+	fetch 1,mem_24g_conn_sm
+	set0 STATE_24G_RECONN,pdata
+	set1 STATE_24G_PAIR,pdata
+	store 1,mem_24g_conn_sm
+	setarg 0
+	store 2,mem_24g_reconn_timeout
+	fetch 2,mem_24g_pair_timeout_init
+	store 2,mem_24g_pair_timeout
+	jam 0,mem_24g_pair_no_ack
+	call g24_pair_sm_reinit
+g24_pair_init_param:
+	jam 0,mem_24g_pid
+	fetch 1,mem_24g_pair_ch
+	store 1,mem_24g_ch
+	fetch 1,mem_24g_pair_tx_power
+	store 1,mem_tx_power
+	fetch 4,mem_24g_pair_addr
+	branch g24_update_addr_and_synccrc8
+
+
+g24_pair_dispatch:
+	bpatchx patch2f_7,mem_patch2f
+	jam DEFAULT_24G_DEVICE,mem_24g_reconn_type
+	fetch 2,mem_24g_pair_count
+	increase 1,pdata
+	store 2,mem_24g_pair_count
+	fetch 1,mem_24g_pair_count
+	and pdata,0xff,pdata
+	nrtn blank
+	fetch 1,mem_24g_pair_sm
+	beq STATE_24G_PAIRING_SUCCESS,g24_pair_exit
+	beq STATE_24G_PAIRING_1,g24_pair_sm_1
+	beq STATE_24G_PAIRING_2,g24_pair_sm_2
+	beq STATE_24G_PAIRING_3,g24_pair_sm_3
+	beq STATE_24G_PAIRING_4,g24_pair_sm_4
+	rtn
+
+g24_pair_sm_1:
+	jam DATATYPE_ATTEMP,mem_24g_txbuf
+	branch g24_pair_sm_prep
+
+g24_pair_sm_2:
+	fetch 1,mem_24g_pair_switch
+	branch g24_pair_sm_2_skip,blank
+	fetch 4,mem_24g_device_addr
+	call g24_update_addr_and_synccrc8	//use transmitter addr
+g24_pair_sm_2_skip:
+	jam DATATYPE_BIND,mem_24g_txbuf	
+	branch g24_pair_sm_prep
+
+g24_pair_sm_3:
+	jam DATATYPE_CONFIG,mem_24g_txbuf	
+	fetch 1,mem_24g_pair_switch
+	branch g24_pair_sm_prep,blank
+	fetch 4,mem_24g_receiver_addr		//prep receiver addr
+	store 4,mem_24g_txbuf+2
+	branch g24_pair_sm_common
+
+g24_pair_sm_4:
+	jam DATATYPE_OK,mem_24g_txbuf
+g24_pair_sm_prep:
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_txbuf+2
+g24_pair_sm_common:
+	fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_24g_txbuf+1
+	jam 0,mem_24g_txbuf+6
+	jam 7,mem_24g_datalen
+	call g24_transmit_prep
+	call g24_transmit_receive_ack
+	nrtn sync
+	nrtn user3
+	call g24_txbuf_clear
+	call g24_ackpayload_parse
+	bpatchx patch30_0,mem_patch30
+	fetch 1,mem_24g_pair_sm
+	rtneq STATE_24G_PAIRING_SUCCESS
+	beq STATE_24G_PAIRING_1,g24_pair_sm_1_waiting_ack
+	beq STATE_24G_PAIRING_2,g24_pair_sm_2_waiting_ack
+	beq STATE_24G_PAIRING_3,g24_pair_sm_3_waiting_ack
+	beq STATE_24G_PAIRING_4,g24_pair_sm_4_waiting_ack
+	rtn
+
+g24_pair_sm_reinit:	
+	jam STATE_24G_PAIRING_2,mem_24g_pair_sm
+	fetch 1,mem_24g_pair_switch
+	rtn blank
+	jam STATE_24G_PAIRING_1,mem_24g_pair_sm
+	rtn
+
+g24_pair_sm_1_waiting_ack:
+	jam STATE_24G_PAIRING_2,mem_24g_pair_sm
+	branch g24_transmit_abandon
+	
+g24_pair_sm_2_waiting_ack:
+	fetch 1,mem_24g_pair_switch
+	branch g24_pair_sm_2_waiting_ack_skip,blank
+	fetch 4,mem_24g_rxpayload+2
+	store 4,mem_24g_receiver_addr
+g24_pair_sm_2_waiting_ack_skip:	
+	jam STATE_24G_PAIRING_3,mem_24g_pair_sm
+	branch g24_transmit_abandon
+
+g24_pair_sm_3_waiting_ack:
+	fetch 1,mem_24g_pair_switch
+	branch g24_pair_sm_3_waiting_ack_skip,blank
+	fetch 4,mem_24g_rxpayload+2
+	fetcht 4,mem_24g_device_addr
+	isub temp,null
+	nrtn zero
+g24_pair_sm_3_waiting_ack_skip:	
+	jam STATE_24G_PAIRING_4,mem_24g_pair_sm
+	branch g24_transmit_abandon	
+	
+g24_pair_sm_4_waiting_ack:
+	fetch 1,mem_24g_pair_switch
+	branch g24_pair_sm_4_waiting_ack_skip,blank
+	fetch 4,mem_24g_rxpayload+2
+	fetcht 4,mem_24g_receiver_addr
+	isub temp,null
+	nrtn zero
+g24_pair_sm_4_waiting_ack_skip:	
+	jam STATE_24G_PAIRING_SUCCESS,mem_24g_pair_sm
+	jam BT_EVT_24G_PAIRING_COMPLETE,mem_fifo_temp
+	call ui_ipc_send_event
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	fetch 4,mem_24g_rxpayload+2
+	call g24_update_addr_and_synccrc8
+g24_pair_exit:
+	fetch 1,mem_24g_conn_sm
+	set0 STATE_24G_PAIR,pdata
+	store 1,mem_24g_conn_sm
+	branch g24_transmit_abandon
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+g24_bind_mode_enable:
+	jam DONGLE_BIND,mem_24g_work_mode
+	jam CLEAR_INIT,mem_24g_mode_init
+	rtn
+
+g24_bind_init:
+	fetch 1,mem_24g_mode_init
+	rtnbit1 DONGLE_BIND
+	set1 DONGLE_BIND,pdata
+	store 1,mem_24g_mode_init
+	setarg 0
+	store 3,mem_24g_device1_bind_step
+	store 1,mem_24g_device1_bind_disable
+	store 1,mem_24g_device2_bind_disable
+	store 4,mem_24g_transmitter_addr
+	jam 1,mem_24g_ackpayload_enable
+	branch g24_pair_init_param
+
+
+g24_bind_ackpayload_prep:
+	jam 1,mem_24g_ackpayload_enable
+	jam 0x08,mem_24g_datalen
+	arg mem_24g_bind_payload,contr
+	arg mem_24g_txbuf,contw
+	branch memcpy8
+
+
+g24_bind_data_process:
+	bpatchx patch30_1,mem_patch30
+	call g24_rx_interrupt_clear
+	call g24_receive_packet
+	nbranch g24_rx_interrupt_clear,user3
+	call g24_bind_data_parse
+	call g24_transmit_ack
+	call g24_bind_device_status_check
+	call dongle_kb_bind_soft_reset
+	fetch 1,mem_24g_pair_switch
+	rtn blank
+	fetch 4,mem_24g_transmitter_addr
+	rtn blank
+	branch g24_update_addr_and_synccrc8
+
+g24_bind_data_error:
+	call g24_rx_interrupt_clear
+	branch g24_end_of_packet
+
+g24_bind_data_parse:
+	jam BIND_MODE_CONTINUE,mem_24g_bind_mode_continue	//about 400ms
+	arg mem_24g_rxbuf,contr
+	arg mem_24g_rxdata_temp,contw
+	call memcpy8
+	bpatchx patch30_2,mem_patch30
+	fetch 1,mem_24g_rxdata_temp+2
+	beq DATATYPE_BIND,g24_bind_first_step	//bind step 1
+	beq DATATYPE_CONFIG,g24_bind_second_step
+	beq DATATYPE_OK,g24_bind_third_step
+	beq DATATYPE_ATTEMP,g24_data_attemp
+	rtn
+
+
+g24_bind_first_step:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_DEVICE1,g24_bind_first_step_device1
+	beq DATATYPE_DEVICE2,g24_bind_first_step_device2
+	rtn
+
+g24_bind_first_step_device1:
+	fetch 1,mem_24g_device1_bind_disable
+	nrtn blank
+	jam 1,mem_24g_device1_bind_step
+g24_bind_dvc1_payload_cfg:
+	jam DATATYPE_DEVICE1,mem_24g_bind_payload
+g24_bind_payload_cfg:
+	jam 0x80,mem_24g_bind_payload+1
+	fetch 6,mem_24g_lap
+	store 6,mem_24g_bind_payload+2
+	rtn
+
+g24_bind_first_step_device2:
+	fetch 1,mem_24g_device2_bind_disable
+	nrtn blank
+	jam 1,mem_24g_device2_bind_step
+g24_bind_dvc2_payload_cfg:
+	jam DATATYPE_DEVICE2,mem_24g_bind_payload
+	branch g24_bind_payload_cfg
+
+
+g24_bind_second_step:
+	fetch 1,mem_24g_pair_switch
+	branch g24_bind_second_step_skip,blank
+	fetch 4,mem_24g_rxdata_temp+4
+	fetcht 4,mem_24g_lap
+	isub temp,null
+	nrtn zero
+g24_bind_second_step_skip:	
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_DEVICE1,g24_bind_second_step_device1
+	beq DATATYPE_DEVICE2,g24_bind_second_step_device2
+	rtn
+
+g24_bind_second_step_device1:
+	fetch 1,mem_24g_device1_bind_disable
+	nrtn blank
+	fetch 1,mem_24g_device1_bind_step
+	beq 1,g24_bind_dvc1_step_set2
+	rtn
+g24_bind_dvc1_step_set2:
+	jam 2,mem_24g_device1_bind_step
+	fetch 1,mem_24g_pair_switch
+	branch g24_bind_dvc1_payload_cfg,blank
+g24_bind_dvc1_payload_cfg_transmitter_addr:
+	jam DATATYPE_DEVICE1,mem_24g_bind_payload
+g24_bind_payload_cfg_transmitter_addr:
+	jam 0x80,mem_24g_bind_payload+1
+	fetch 4,mem_24g_transmitter_addr
+	store 4,mem_24g_bind_payload+2
+	branch enable_user
+
+g24_bind_second_step_device2:
+	fetch 1,mem_24g_device2_bind_disable
+	nrtn blank
+	fetch 1,mem_24g_device2_bind_step
+	beq 1,g24_bind_dvc2_step_set2
+	rtn
+g24_bind_dvc2_step_set2:
+	jam 2,mem_24g_device2_bind_step
+	fetch 1,mem_24g_pair_switch
+	branch g24_bind_dvc2_payload_cfg,blank	
+	jam DATATYPE_DEVICE2,mem_24g_bind_payload
+	branch g24_bind_payload_cfg_transmitter_addr
+
+
+g24_bind_third_step:
+	fetch 1,mem_24g_pair_switch
+	branch g24_bind_third_step_skip,blank
+	fetch 4,mem_24g_rxdata_temp+4
+	fetcht 4,mem_24g_transmitter_addr
+	isub temp,null
+	nrtn zero
+g24_bind_third_step_skip:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_DEVICE1,g24_bind_third_step_device1
+	beq DATATYPE_DEVICE2,g24_bind_third_step_device2
+	rtn
+
+g24_bind_third_step_device1:
+	fetch 1,mem_24g_device1_bind_disable
+	nrtn blank
+	fetch 1,mem_24g_device1_bind_step
+	beq 2,g24_bind_dvc1_step_success
+	rtn
+g24_bind_dvc1_step_success:
+	jam 1,mem_24g_device1_bind_disable
+	//call g24_binding_dvc1_living	//works on auto pair only
+	call g24_bind_dvc1_payload_cfg
+	fetch 1,mem_24g_bind_device_status
+	or_into 0x01,pdata
+	store 1,mem_24g_bind_device_status
+g24_bind_exit:
+	setarg 0
+	store 2,mem_24g_device1_bind_step
+	rtn
+	
+g24_bind_third_step_device2:
+	fetch 1,mem_24g_device2_bind_disable
+	nrtn blank
+	fetch 1,mem_24g_device2_bind_step
+	bne 0,g24_bind_dvc2_step_success
+	rtn
+g24_bind_dvc2_step_success:
+	jam 1,mem_24g_device2_bind_disable
+	//call g24_binding_dvc2_living	//works on auto pair only
+	call g24_bind_dvc2_payload_cfg
+	fetch 1,mem_24g_bind_device_status
+	or_into 0x02,pdata
+	store 1,mem_24g_bind_device_status
+	call g24_bind_exit
+	branch dongle_g24_store_dvc2_bind_flag
+
+g24_binding_device_check:	//works on auto pair
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_BIND
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_24g_rxbuf+3
+	beq DATATYPE_DEVICE1,g24_binding_dvc1_status	//bit0
+	beq DATATYPE_DEVICE2,g24_binding_dvc2_status	//bit1
+	rtn
+g24_binding_dvc1_status:
+	fetch 1,mem_24g_bind_device_living
+	rtnbit0 0
+disable_user3:
+	disable user3
+	rtn 
+g24_binding_dvc2_status:
+	fetch 1,mem_24g_bind_device_living
+	rtnbit0 1
+	branch disable_user3
+
+g24_binding_dvc1_living:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_24g_bind_device_living
+	or_into 0x01,pdata
+	store 1,mem_24g_bind_device_living
+	rtn
+
+g24_binding_dvc2_living:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_24g_bind_device_living
+	or_into 0x02,pdata
+	store 1,mem_24g_bind_device_living
+	rtn
+
+
+g24_bind_device_status_check:
+	fetch 1,mem_24g_bind_device_status
+	rtn blank
+g24_bind_device_status:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_DEVICE1,g24_binding_dvc1_living
+	beq DATATYPE_DEVICE2,g24_binding_dvc2_living
+	rtn
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+g24_receive_init:
+	set1 mark_24g_rxmode,mark
+	fetch 1,mem_tx_power
+	store 1,mem_tx_power_temp
+	branch rssi_receiver_buff_init
+
+g24_receive_dispatch:
+	fetch 2,mem_cb_24g_receive_process
+	branch callback_func
+
+g24_ackpayload_prep:
+	bpatchx patch30_3,mem_patch30
+	jam 0,mem_24g_datalen
+	fetch 1,mem_24g_ackpayload_enable
+	rtn blank
+	fetch 2,mem_cb_24g_ackpayload
+	branch callback_func
+
+
+g24_receive_packet_start:
+	call g24_receive_transmit_ack
+	nbranch g24_rx_interrupt_clear,user3
+g24_receive_packet_parse:
+	call g24_receive_packet_parse_pid_crc
+	nbranch g24_rx_interrupt_clear,user
+	fetch 1,mem_24g_rxdata_length
+	branch g24_rx_interrupt_clear,blank
+	increase 2,pdata
+	iforce loopcnt
+	arg mem_24g_rxbuf,contr
+	arg mem_24g_rxdata_temp,contw
+	call memcpy
+	jam 0,mem_24g_mode_switch
+	fetch 1,mem_24g_pair_mode
+	call g24_enable_nodata_timer,blank
+	bpatchx patch30_4,mem_patch30
+	fetch 1,mem_24g_rxdata_temp+2
+	beq DATATYPE_DEVICE1,g24_data_device1	//mouse
+	beq DATATYPE_DEVICE2,g24_data_device2	//keyboard
+	beq DATATYPE_ATTEMP,g24_data_receive_attemp	//reconn packet
+g24_rx_interrupt_clear:
+	bpatchx patch30_5,mem_patch30
+	arg mem_24g_rxbuf,contw
+	arg 66,loopcnt
+	branch clear_mem
+
+g24_data_receive_attemp:
+	call g24_bind_device_status		//works on auto pair only
+	branch g24_data_attemp
+
+g24_data_device1:
+	call g24_binding_dvc1_living	//works on auto pair only
+	call g24_ch_timer_reinit
+	fetch 1,mem_24g_abort_packet
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	setflag true,0,pdata
+	store 1,mem_24g_abort_packet
+	beq 1,g24_data_attemp_device1_abort
+	fetch 1,mem_24g_hop_packet
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_hop,temp
+	setflag true,0,pdata
+	store 1,mem_24g_hop_packet
+	fetch 2,mem_cb_24g_data_device1
+	branch callback_func
+
+g24_data_device2:
+	call g24_binding_dvc2_living	//works on auto pair only
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	branch g24_data_attemp_device2_abort,true
+	fetch 2,mem_cb_24g_data_device2
+	branch callback_func
+
+g24_data_attemp_device1_abort:
+	fetch 1,mem_device_option
+	sub pdata,DVC_OP_CAR,null
+	call car_stop_blink,zero
+	fetch 1,mem_24g_device1_bind_disable
+	nrtn blank
+	jam 1,mem_24g_device1_bind_disable
+	fetch 4,mem_24g_rxdata_temp+10
+	branch g24_store_device1_addr
+g24_data_attemp_device2_abort:
+	fetch 4,mem_24g_rxdata_temp+10
+	branch g24_store_device2_addr	
+
+
+g24_receive_packet_parse_pid_crc:
+	call disable_user
+	fetch 1,mem_24g_sta_pid
+	fetcht 1,mem_24g_last_pid
+	isub temp,null
+	ncall enable_user,zero
+	fetch 1,mem_24g_sta_pid
+	store 1,mem_24g_last_pid
+	fetch 3,mem_24g_sta_crc
+	fetcht 3,mem_24g_last_crc
+	isub temp,null
+	ncall enable_user,zero
+	fetch 3,mem_24g_sta_crc
+	store 3,mem_24g_last_crc
+	rtn
+
+g24_receive_transmit_ack:
+	call g24_rx_interrupt_clear
+	call g24_receive_packet
+	nrtn user3
+g24_transmit_ack:
+//data type
+	fetch 1,mem_24g_rxbuf
+	store 1,mem_24g_data_type
+//read len pid crc
+	call g24_read_len_pid_crc
+//read ack
+	fetch 1,mem_24g_rxbuf+1
+	isolate1 bit_ack_24g,pdata
+	branch g24tx_no_ack,true
+g24tx_with_ack:
+	call g24_ackpayload_prep
+	call g24_transmit_prep
+	call g24_transmit
+g24tx_no_ack:
+	branch g24_end_of_packet
+
+
+g24_enable_nodata_timer:
+	jam 1,mem_24g_nodata_timer_enable
+g24_enable_nodata_timer_init:
+	setarg TIMER_NODATA_DELAY
+	arg G24_TIMER_NODATA,queue
+	branch timer_init
+
+
+
+
+
+g24_mode_switch_init:
+	bpatchx patch30_6,mem_patch30
+	jam 1,mem_24g_mode_switch
+	jam 0,mem_24g_time_slice
+	jam 0xff,mem_24g_interval
+	branch g24_timer_init
+	
+g24_mode_switch_bind_work:
+	bpatchx patch30_7,mem_patch30
+	fetch 1,mem_24g_mode_switch
+	rtn blank
+	call g24_timer_check
+	nrtn user	//80ms
+	call g24_bind_mode_continue
+	fetch 1,mem_24g_time_slice
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_24g_time_slice
+	beq 0,g24_work_mode_switch
+	beq 1,g24_bind_mode_switch
+	rtn
+
+g24_bind_mode_continue:
+	fetch 1,mem_24g_bind_mode_continue
+	rtn blank
+	increase -1,pdata
+	store 1,mem_24g_bind_mode_continue
+	rtn
+
+g24_work_mode_switch:
+	fetch 1,mem_24g_bind_mode_continue
+	nrtn blank
+	branch g24_switch_work_mode
+
+g24_bind_mode_switch:
+	fetch 1,mem_24g_bind_mode_continue
+	nrtn blank
+	branch g24_bind_mode_enable
+
+
+g24_mode_B_S_switch_init:	//bind and search
+	fetch 1,mem_24g_B_S_mode_switch_disable
+	nrtn blank
+	fetch 1,mem_24g_mode_B_S_switch_exit
+	call g24_mode_B_S_switch_start,blank
+	fetch 1,mem_24g_mode_B_S_switch_init
+	rtnbit1 0
+	set1 0,pdata
+	store 1,mem_24g_mode_B_S_switch_init
+	jam 1,mem_24g_mode_B_S_switch
+	jam 0,mem_24g_B_S_time_slice
+	setarg 0
+	store 2,mem_24g_mode_B_S_switch_cnt
+	jam 0x60,mem_24g_interval	//30ms
+	branch g24_timer_init
+
+g24_mode_switch_bind_search:
+	bpatchx patch31_0,mem_patch31
+	fetch 1,mem_24g_work_mode
+	rtneq DONGLE_WORK
+	fetch 1,mem_24g_B_S_mode_switch_disable
+	nrtn blank
+	fetch 1,mem_24g_mode_B_S_switch_exit
+	nrtn blank
+	fetch 1,mem_24g_mode_B_S_switch
+	rtn blank
+	fetch 1,mem_24g_bind_device_living
+	compare 3,pdata,3
+	branch g24_mode_B_S_switch_exit,true
+	call g24_timer_check
+	nrtn user
+	fetch 2,mem_24g_mode_B_S_switch_cnt
+	increase 1,pdata
+	store 2,mem_24g_mode_B_S_switch_cnt
+	arg 0x7d0,temp	//1min
+	isub temp,null
+	branch g24_mode_B_S_switch_exit,positive
+	fetch 1,mem_24g_B_S_time_slice
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_24g_B_S_time_slice
+	beq 0,g24_search_mode_enable
+	beq 1,g24_bind_mode_enable
+	rtn
+
+g24_mode_switch_search:
+	fetch 1,mem_24g_bind_mode_continue
+	nbranch g24_bind_mode_enable,blank
+	branch g24_search_mode_enable
+
+g24_mode_B_S_switch_exit:
+	jam 1,mem_24g_mode_B_S_switch_exit
+	branch g24_search_mode_enable
+
+g24_mode_B_S_switch_stop:
+	jam 0,mem_24g_mode_B_S_switch
+	rtn
+g24_mode_B_S_switch_start:
+	jam 1,mem_24g_mode_B_S_switch
+	rtn
+
+
+
+
+
+
+
+
+
+
+g24_work_init:
+	bpatchx patch31_1,mem_patch31
+	fetch 1,mem_24g_mode_init
+	rtnbit1 DONGLE_WORK
+	set1 DONGLE_WORK,pdata
+	store 1,mem_24g_mode_init
+	fetch 1,mem_tx_power_temp
+	store 1,mem_tx_power
+	jam 0,mem_24g_ackpayload_enable
+	jam 0,mem_usb_tx_enable
+	jam 1,mem_24g_abort_packet
+	jam 0,mem_24g_pid
+	fetch 4,mem_24g_lap
+	call g24_update_addr_and_synccrc8
+	call g24_ch
+	branch g24_rx_interrupt_clear
+
+
+g24_switch_work_mode:
+	jam 0,mem_24g_ackpayload_enable
+g24_work_mode_enable:
+	jam DONGLE_WORK,mem_24g_work_mode
+	jam CLEAR_INIT,mem_24g_mode_init	
+	rtn
+
+
+g24_work_mode_start:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_WORK
+	call g24_work_init
+	call g24_ch_process
+	branch g24_receive_packet_start
+
+
+
+
+
+
+
+
+
+
+
+
+g24_bind_mode_auto:
+	bpatchx patch31_2,mem_patch31
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_BIND
+	call g24_bind_init
+	call g24_bind_data_process
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_24g_bind_device_status
+	rtn blank
+	jam 0,mem_24g_mode_switch
+	call g24_switch_work_mode
+	call g24_enable_nodata_timer
+	branch g24_timer_init
+
+
+
+
+
+
+
+
+
+
+
+g24_search_mode_init:
+	fetch 1,mem_24g_mode_init
+	rtnbit1 DONGLE_SEARCH
+	set1 DONGLE_SEARCH,pdata
+	store 1,mem_24g_mode_init
+	fetch 1,mem_tx_power_temp	//reinit tx power when "search-pair-switch"  is enable
+	store 1,mem_tx_power
+
+	jam 0,mem_24g_time_slice
+	jam 1,mem_24g_ackpayload_enable
+	setarg 0
+	store 3,mem_rssi_noise_self_index
+	store 7,mem_24g_self_config_ch_once
+	call g24_receiver_addr_check
+	nrtn zero
+	fetch 1,mem_24g_current_ch_number
+	store 1,mem_24g_self_ch_number
+	fetch 1,mem_24g_ch
+	store 1,mem_24g_self_last_ch
+	rtn
+
+
+g24_search_mode_auto:
+	bpatchx patch31_3,mem_patch31
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_SEARCH
+	call g24_search_mode_init
+	call g24_auto_addr_ch_search
+	call g24_receive_transmit_ack
+	nbranch g24_rx_interrupt_clear,user3
+	//dongle addr,then parse rxdata
+	call g24_receiver_addr_check
+	call g24_receive_packet_parse,zero
+
+	fetch 1,mem_24g_abort_packet
+	call g24_mode_B_S_switch_stop,blank	//works on auto pair only
+	
+	//receive data,then go to paired
+	jam DONGLE_WORK,mem_24g_work_mode
+	fetch 1,mem_24g_mode_init
+	set1 DONGLE_WORK,pdata
+	store 1,mem_24g_mode_init
+
+	fetch 1,mem_24g_ackpayload_enable
+	sub pdata,2,null
+	ncall g24_ackpayload_disable,zero
+
+	call g24_rx_interrupt_clear
+	call g24_enable_nodata_timer
+	call g24_receiver_addr_check
+	branch g24_self_ch_num_reinit,zero
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_device2_addr
+	isub temp,null
+	branch g24_device2_ch_num_reinit,zero		
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_device1_addr
+	isub temp,null
+	branch g24_device1_ch_num_reinit,zero
+	rtn
+
+
+g24_self_ch_num_reinit:
+	fetch 1,mem_24g_self_ch_number
+g24_current_ch_num_reinit:
+	store 1,mem_24g_current_ch_number
+	rtn
+
+g24_device2_ch_num_reinit:
+	fetch 1,mem_24g_device2_ch_number
+	branch g24_current_ch_num_reinit
+
+g24_device1_ch_num_reinit:
+	fetch 1,mem_24g_device1_ch_number
+	branch g24_current_ch_num_reinit
+
+
+g24_auto_addr_ch_search:
+	bpatchx patch31_4,mem_patch31
+	fetch 1,mem_24g_time_slice
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_24g_time_slice
+	//pairing address and channel come first
+	beq 0,g24_auto_bind_config_device2
+	beq 1,g24_auto_bind_config_self
+	beq 2,g24_auto_bind_config_device1
+	beq 3,g24_auto_bind_config_self
+	rtn
+
+g24_auto_bind_config_device1:
+	call g24_bind_dvc1_payload_cfg
+	fetch 4,mem_24g_device1_addr
+	branch g24_auto_addr_ch_search,blank
+	call g24_update_addr_and_synccrc8
+	fetch 1,mem_24g_device1_config_ch_once
+	call g24_device1_config_ch_once,blank
+	fetch 1,mem_24g_device1_last_ch
+	store 1,mem_24g_ch
+	fetcht 1,mem_rssi_noise_device1_index
+	fetchr rega,2,mem_rssi_noise_device1_buffer_ptr
+	call rssi_store
+	storet 1,mem_rssi_noise_device1_index
+	call rssi_average
+	storet 1,mem_rssi_noise_device1_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_device1_ch_number
+	call g24_ch_map_size
+	storet 1,mem_24g_device1_ch_number
+	store 1,mem_24g_device1_last_ch
+	rtn
+
+g24_device1_config_ch_once:
+	jam 1,mem_24g_device1_config_ch_once
+	arg 0,temp
+	call g24_ch_calc
+	store 1,mem_24g_device1_last_ch
+	rtn
+	
+g24_auto_bind_config_device2:
+	call g24_bind_dvc2_payload_cfg
+	fetch 4,mem_24g_device2_addr
+	branch g24_auto_addr_ch_search,blank
+	call g24_update_addr_and_synccrc8
+	fetch 1,mem_24g_device2_config_ch_once
+	call g24_device2_config_ch_once,blank
+	fetch 1,mem_24g_device2_last_ch
+	store 1,mem_24g_ch
+	fetcht 1,mem_rssi_noise_device2_index
+	fetchr rega,2,mem_rssi_noise_device2_buffer_ptr
+	call rssi_store
+	storet 1,mem_rssi_noise_device2_index
+	call rssi_average
+	storet 1,mem_rssi_noise_device2_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_device2_ch_number
+	call g24_ch_map_size
+	storet 1,mem_24g_device2_ch_number
+	store 1,mem_24g_device2_last_ch
+	rtn
+
+g24_device2_config_ch_once:
+	jam 1,mem_24g_device2_config_ch_once
+	arg 0,temp
+	call g24_ch_calc
+	store 1,mem_24g_device2_last_ch
+	rtn	
+
+g24_auto_bind_config_self:
+	call g24_bind_dvc1_payload_cfg
+	fetch 4,mem_24g_lap
+	call g24_update_addr_and_synccrc8
+	fetch 1,mem_24g_self_config_ch_once
+	call g24_self_config_ch_once,blank
+	fetch 1,mem_24g_self_last_ch
+	store 1,mem_24g_ch
+	fetcht 1,mem_rssi_noise_self_index
+	fetchr rega,2,mem_rssi_noise_self_buffer_ptr
+	call rssi_store
+	storet 1,mem_rssi_noise_self_index
+	call rssi_average
+	storet 1,mem_rssi_noise_self_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_self_ch_number
+	call g24_ch_map_size
+	storet 1,mem_24g_self_ch_number
+	store 1,mem_24g_self_last_ch
+	rtn
+
+g24_self_config_ch_once:
+	jam 1,mem_24g_self_config_ch_once
+	fetch 1,mem_24g_self_last_ch
+	store 1,mem_24g_ch
+	rtn
+
+
+g24_ackpayload_disable:
+	jam 0,mem_24g_ackpayload_enable
+	rtn
+
+
+g24_receiver_addr_check:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_lap
+	isub temp,null
+	rtn
+
+
+
+
+
+
+
+
+
+
+
+g24_nodata_process:
+	fetch 1,mem_24g_ackpayload_enable
+	rtneq 2
+	fetch 1,mem_24g_nodata_timer_enable
+	rtn blank
+	arg G24_TIMER_NODATA,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_24g_nodata_timer_enable
+	jam 0,mem_24g_bind_mode_continue
+	call g24_mode_B_S_switch_init	//works on auto pair only	
+	//no data for more than 100ms,then go to search
+g24_search_mode_enable:	
+	bpatchx patch31_5,mem_patch31
+	jam DONGLE_SEARCH,mem_24g_work_mode
+	jam CLEAR_INIT,mem_24g_mode_init
+	branch g24_rx_interrupt_clear
+
+
+
+
+
+g24_ch_process:
+	bpatchx patch31_6,mem_patch31
+	fetch 1,mem_24g_abort_packet
+	beq 1,rssi_noise_monitor
+	fetch 1,mem_24g_hop_packet
+	beq 1,g24_ch_receive_hop_pac
+	fetcht 4,mem_24g_hop_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_24g_hop_btclk
+	fetcht 1,mem_24g_hop_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_24g_hop_btclk
+	jam 1,mem_24g_abort_packet
+	branch g24_ch
+
+g24_ch_receive_hop_pac:
+	jam 0,mem_24g_hop_packet
+	branch g24_ch
+
+g24_ch_timer_reinit:
+	copy clkn_bt,pdata
+	store 4,mem_24g_hop_btclk
+	rtn
+
+
+
+
+g24_reconn_timeout_timer:
+	arg mem_24g_reconn_timeout,regc
+	arg g24_stop_24g_mode,regb
+	branch timer_single_step_2B
+
+
+g24_reconn_start:
+	bpatchx patch31_7,mem_patch31
+	set1 mark_24g,mark
+	fetch 1,mem_24g_conn_sm
+	set0 STATE_24G_PAIR,pdata
+	set1 STATE_24G_RECONN,pdata
+	store 1,mem_24g_conn_sm
+	fetch 1,mem_24g_fast_conn_enable
+	branch g24_reconn_receiver_addr,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_RECEIVER,g24_reconn_fast_conn
+	beq FAST_CONN_AND_3_0_ADDR,g24_reconn_fast_conn
+	beq RECEIVER_AND_3_0_ADDR,g24_reconn_device_3_0_addr
+	beq PAIR_AND_3_0_ADDR,g24_reconn_device_3_0_addr
+g24_reconn_fast_conn:
+	fetch 1,mem_24g_pair_tx_power
+	store 1,mem_tx_power
+	fetcht 1,mem_24g_fast_conn_temp_ch
+	storet 1,mem_24g_current_ch_number
+	fetch 4,mem_24g_fast_conn_addr
+	call g24_ch_syncword_crc8_init
+	storet 1,mem_24g_fast_conn_temp_ch
+	rtn
+	 
+g24_reconn_receiver_addr:
+	jam TX_POWER_3DB,mem_tx_power
+	fetcht 1,mem_24g_receiver_temp_ch
+	storet 1,mem_24g_current_ch_number
+	fetch 4,mem_24g_receiver_addr
+	call g24_ch_syncword_crc8_init
+	storet 1,mem_24g_receiver_temp_ch
+	rtn
+
+g24_reconn_device_3_0_addr:
+	jam TX_POWER_3DB,mem_tx_power
+	fetcht 1,mem_24g_device_temp_ch
+	storet 1,mem_24g_current_ch_number
+	fetch 4,mem_24g_device_addr
+	call g24_ch_syncword_crc8_init
+	storet 1,mem_24g_device_temp_ch
+	rtn	
+
+g24_store_receiver_addr:
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	store 4,mem_24g_receiver_addr	
+g24_ch_syncword_crc8_init:	
+	call g24_update_addr_and_synccrc8
+	branch g24_ch
+
+
+g24_reconn_dispatch:
+	bpatchx patch32_0,mem_patch32
+	fetch 2,mem_24g_reconn_count
+	arg 0x01f8,temp
+	iand temp,pdata
+	branch g24_reconn_dispatch_next,blank
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+
+g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch g24_reconn_device_fail,sync
+	nbranch g24_reconn_device_fail,user3
+	call g24_ackpayload_parse
+	fetch 4,mem_24g_pair_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch g24_pair_start,zero
+	fetch 4,mem_24g_device_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	call g24_store_receiver_addr,zero
+	fetch 1,mem_24g_conn_sm
+	set0 STATE_24G_RECONN,pdata
+	store 1,mem_24g_conn_sm
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_count
+	store 2,mem_24g_reconn_timeout
+	jam BT_EVT_24G_ATTEMPT_SUCCESS,mem_fifo_temp
+	call ui_ipc_send_event
+g24_txbuf_clear:
+	bpatchx patch32_1,mem_patch32
+	arg 32,loopcnt
+	arg mem_24g_txbuf,contw
+	branch memset0
+
+g24_reconn_data_prep:
+	jam DATATYPE_ATTEMP,mem_24g_txbuf
+	fetch 1,mem_24g_data_type
+	store 1,mem_24g_txbuf+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_txbuf+2
+	jam 6,mem_24g_datalen
+	branch g24_transmit_prep
+
+g24_reconn_device_fail:
+	bpatchx patch32_2,mem_patch32
+	fetch 1,mem_24g_fast_conn_enable
+	branch g24_ch,blank
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	isolate1 9,pdata
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_RECEIVER,g24_reconn_fast_conn_and_receiver
+	beq FAST_CONN_AND_3_0_ADDR,g24_reconn_fast_conn_and_3_0
+	beq RECEIVER_AND_3_0_ADDR,g24_reconn_receiver_and_3_0
+	beq PAIR_AND_3_0_ADDR,g24_reconn_pair_and_3_0
+	branch g24_reconn_receiver_addr
+
+
+g24_reconn_fast_conn_and_receiver:
+	branch g24_reconn_receiver_addr,true
+	branch g24_reconn_fast_conn
+
+g24_reconn_fast_conn_and_3_0:
+	branch g24_reconn_device_3_0_addr,true
+	branch g24_reconn_fast_conn
+	
+g24_reconn_receiver_and_3_0:
+	branch g24_reconn_device_3_0_addr,true
+	branch g24_reconn_receiver_addr
+
+g24_reconn_pair_and_3_0:
+	branch g24_reconn_device_3_0_addr,true
+	branch g24_pair_init_param
+
+
+
+
+
+
+
+
+
+g24_data_attemp:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_DEVICE1,g24_data_attemp_device1
+	beq DATATYPE_DEVICE2,g24_data_attemp_device2
+	rtn
+g24_data_attemp_device1:
+	fetch 1,mem_24g_device1_bind_disable
+	nrtn blank
+	fetch 4,mem_24g_rxdata_temp+4
+	store 4,mem_24g_transmitter_addr
+g24_store_device1_addr:
+	store 4,mem_24g_device1_addr
+	rtn
+g24_data_attemp_device2:
+	fetch 1,mem_24g_device2_bind_disable
+	nrtn blank
+	fetch 4,mem_24g_rxdata_temp+4
+	store 4,mem_24g_transmitter_addr	
+g24_store_device2_addr:
+	store 4,mem_24g_device2_addr
+	rtn
+
+
+
+
+
+
+
+
+
+rssi_store:
+	bpatchx patch32_3,mem_patch32
+	copy rega,pdata
+	iadd temp,contw
+	fetch 1,mem_rssi
+	istore 1,contw
+	increase 1,temp
+	fetch 1,mem_rssi_buff_index	//buff len minus 1
+	iand temp,temp
+	rtn
+	
+rssi_average:
+	bpatchx patch32_4,mem_patch32
+	fetch 1,mem_rssi_buff_index
+	increase 1,pdata
+	store 2,mem_loopcnt
+	copy pdata,loopcnt
+	copy rega,contr
+	arg 0,pdata
+rssi_average_loop:
+	ifetcht 1,contr
+	iadd temp,pdata
+	loop rssi_average_loop
+	fetcht 2,mem_loopcnt
+	idiv temp
+	call wait_div_end
+	quotient temp
+	rtnmark1 mark_24g_rxmode
+	copy temp,pdata
+	rtnmark0 mark_24g
+	call bcd
+	copy pdata,temp
+	rtn
+
+save_rssi_dec:
+	branch save_rssi
+//	branch rssi_hex2dec
+
+
+
+
+
+
+
+
+rssi_transmitter_buff_init:
+	fetch 2,mem_rssi_signal_buf_ptr
+	branch rssi_buff_clear
+
+rssi_signal:
+	copy pdata,rega
+	fetcht 1,mem_rssi_signal_index
+	fetch 2,mem_rssi_signal_buf_ptr
+	iadd temp,contw
+	copy rega,pdata
+	istore 1,contw
+	increase 1,temp
+	fetch 1,mem_rssi_buff_index	//buff len minus 1
+	iand temp,temp
+	storet 1,mem_rssi_signal_index
+	rtn
+
+
+
+
+
+
+
+
+
+rssi_receiver_buff_init:
+	fetch 2,mem_rssi_noise_buffer_ptr
+	call rssi_buff_clear
+	fetch 2,mem_rssi_noise_self_buffer_ptr
+	call rssi_buff_clear
+	fetch 2,mem_rssi_noise_device1_buffer_ptr
+	call rssi_buff_clear
+	fetch 2,mem_rssi_noise_device2_buffer_ptr
+rssi_buff_clear:
+	rtn blank
+	copy pdata,contw
+	fetch 1,mem_rssi_buff_index
+	increase 1,pdata
+	copy pdata,loopcnt
+	branch clear_mem
+
+
+rssi_noise:
+	call save_rssi_dec
+	rtn blank
+	fetcht 1,mem_rssi_noise_index
+	fetchr rega,2,mem_rssi_noise_buffer_ptr
+	call rssi_store
+	storet 1,mem_rssi_noise_index
+	rtn
+
+
+rssi_noise_monitor:
+	fetchr rega,2,mem_rssi_noise_buffer_ptr
+	call rssi_average
+	storet 1,mem_rssi_noise_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	branch g24_ch
+
+
+
+
+	
+
+
+g24_transmit_init:
+	fetch 4,mem_24g_lap		//need to roll this address
+	store 4,mem_24g_device_addr
+	branch rssi_transmitter_buff_init
+
+g24_interval_param_4ms:
+	setarg G24_4MS_INTERVAL_PARAM
+	store 3,mem_24g_short_sleep_set
+	setarg 0x100c0c
+	store 3,mem_24g_interval
+	setarg 0x00bb80
+	store 3,mem_24g_long_sleep_set
+	jam 5,mem_24g_fast_hop_count
+	rtn
+
+g24_interval_param_8ms:
+	setarg G24_8MS_INTERVAL_PARAM
+	store 3,mem_24g_short_sleep_set
+	setarg 0x1c1919
+	store 3,mem_24g_interval
+	setarg 0x017700
+	store 3,mem_24g_long_sleep_set
+	jam 11,mem_24g_fast_hop_count
+	rtn
+
+
+g24_transmit_dispatch:
+	rtnmark0 mark_24g
+	fetch 1,mem_24g_conn_sm
+	bbit1 STATE_24G_PAIR,g24_pair_dispatch
+	bbit1 STATE_24G_RECONN,g24_reconn_dispatch
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,g24_transmit_by_interrupt
+g24_transmit_no_interrupt:
+	bpatchx patch32_5,mem_patch32
+	call g24_txdata_prep
+	nbranch g24_nodata_transmit,user
+g24_transmit_start:
+	call g24_transmit_process
+	call power_ctrl_start
+	fetch 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_24g_transmit_start
+g24_transmit_start_next:	
+	fetch 8,mem_24g_long_sleep_set
+	store 8,mem_24g_enter_hibernate
+	fetch 2,mem_24g_long_sleep_param_update_timer_init
+	store 2,mem_24g_long_sleep_param_update_timer
+	fetch 2,mem_cb_24g_transmit_short_sleep
+	branch callback_func
+
+g24_short_sleep:
+	bpatchx patch32_6,mem_patch32
+	call g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	call clear_wake
+	fetch 3,mem_24g_short_sleep_set
+	branch g24_long_seep2
+
+g24_long_sleep:
+	bpatchx patch32_7,mem_patch32
+	call g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	fetch 8,mem_24g_enter_hibernate
+g24_long_seep2:
+	call clk2lpo
+	storet 4,mem_sleep_counter
+	branch lpm_sleep
+	
+
+
+g24_txdata_prep:
+	call g24_package_data
+	nrtn user
+	branch g24_transmit_prep
+
+
+g24_package_data:
+	fetch 2,mem_cb_24g_transmit_data
+	call callback_func
+	branch g24_accumulate_data,user
+	fetch 7,mem_24g_txbuf+1	//mouse data
+	rtn blank
+	branch enable_user	// retransmit
+	
+g24_accumulate_data:
+	jam 0,mem_24g_abort_pac
+	add rega,1,pdata
+	store 1,mem_24g_datalen
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_24g_txbuf
+	copy regb,contr
+	copy rega,loopcnt
+	branch memcpy
+
+g24_transmit_rf_ctrl_clear:	
+	fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_24g_data_type
+	rtn
+
+
+
+
+
+
+
+
+g24_transmit_process:
+	setarg 0
+	store 1,mem_24g_retry
+	store 2,mem_24g_retransmit
+g24_transmit_loop:
+	call g24_transmit_receive_ack
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,g24_transmit_no_ack
+	nbranch g24_retransmit,sync
+	nbranch g24_retransmit,user3
+	call g24_ackpayload_parse
+	fetch 1,mem_device_option
+	sub pdata,DVC_OP_MOUSE,null
+	call mouse_24g_transmit_callback,zero
+g24_transmit_no_ack:
+	call power_ctrl_pac_succ_incrs
+g24_transmit_next_packet:
+	call g24_txbuf_clear
+	fetch 1,mem_24g_pid
+	increase 1,pdata
+	store 1,mem_24g_pid
+	call g24_hop_enable_packet
+g24_transmit_abandon:
+	bpatchx patch33_0,mem_patch33
+	setarg 0
+	store 1,mem_24g_ensure
+	store 2,mem_24g_txfail_cnt
+	rtn
+
+g24_transmit_receive_ack:
+	bpatchx patch33_1,mem_patch33
+	disable user3
+	call g24_transmit
+	fetch 1,mem_24g_no_ack
+	beq no_ack_24g,g24_end_of_packet
+	force 0,radio_ctrl
+	fetch 4,mem_24g_addr
+	iforce access
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	call g24_receive_rxon
+	call g24_end_of_packet,user3
+	rtn
+
+g24_retransmit:
+	bpatchx patch33_2,mem_patch33
+	fetch 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_g24_retransmit
+g24_retransmit0:	
+	fetch 1,mem_24g_abort_pac
+	nrtn blank
+	fetch 2,mem_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_24g_txfail_cnt	
+	fetch 1,mem_24g_txfail_cnt+1
+	bbit1 4,g24_tx_attempt_fail
+	call g24_transmit_hop_process
+	fetch 2,mem_24g_retransmit
+	increase 1,pdata
+	store 2,mem_24g_retransmit	
+	branch g24_transmit_loop
+
+g24_ackpayload_parse:
+	bpatchx patch33_3,mem_patch33
+	call g24_read_len_pid_crc
+	fetch 1,mem_24g_rxdata_length	//ack payload length 
+	rtn blank
+	iforce loopcnt
+	arg mem_24g_rxbuf+2,contr
+	arg mem_24g_rxpayload,contw	//ack payload buffer 
+	branch memcpy
+
+
+g24_tx_attempt_fail:
+	bpatchx patch33_4,mem_patch33
+	setarg 0
+	store 2,mem_24g_txfail_cnt
+	jam 1,mem_24g_attempt_fail_flag
+g24_stop_24g_mode:	
+	jam BT_EVT_24G_ATTEMPT_FAIL,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+
+
+
+
+
+
+
+g24_transmit_hop_process:
+	bpatchx patch33_5,mem_patch33
+	fetcht 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count			// 125Hz=11  250Hz=5
+	isub temp,null
+	nbranch g24_tx_fast_hop,positive		// >= (6+6)or(3+3) hop fast    fail packet count >= 2
+	increase 1,temp
+	storet 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count
+	beq 5,g24_transmit_hop_process_4ms
+	fetch 1,mem_24g_retry
+	beq 6,g24_hop_ch_disable
+	beq 12,g24_hop_ch_disable
+	rtn	
+
+
+g24_transmit_hop_process_4ms:
+	fetch 1,mem_24g_retry
+	beq 3,g24_hop_ch_disable
+	beq 6,g24_hop_ch_disable
+	rtn	
+
+
+
+g24_hop_ch_enable:
+	//fetch 1,mem_24g_data_type
+	//set1 bit_hop,pdata
+	//store 1,mem_24g_data_type
+	//update txpayload
+g24_txpayload_type_update:	
+	bmark1 mark_ble_lr,g24_lr_type_update
+	store 1,mem_24g_txpayload+OFFSET_DATA_TYPE
+	rtn
+g24_lr_type_update:
+	store 1,mem_24g_txpayload+OFFSET_LR_DATA_TYPE
+	rtn
+
+g24_hop_enable_packet:
+	fetch 1,mem_24g_data_type
+	rtnbit0 bit_hop
+g24_hop_ch_disable:
+	fetch 1,mem_24g_data_type
+	set0 bit_hop,pdata
+	store 1,mem_24g_data_type
+	call g24_txpayload_type_update
+	call power_ctrl_pac_succ_decrs
+	branch g24_ch
+
+g24_tx_fast_hop:
+	call power_ctrl_txpower_incrs
+	call power_ctrl_pac_succ_decrs
+	branch g24_ch
+	
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+g24_search_receiver:
+	fetch 2,mem_cb_24g_search_receiver
+	branch callback_func
+
+g24_nodata_transmit:
+	fetch 1,mem_24g_abort_pac
+	call g24_send_abort_packet,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	rtneq G24_TX_TIMER_INT_ENABLE
+	call g24_search_receiver
+	fetch 2,mem_cb_24g_transmit_long_sleep
+	branch callback_func
+
+g24_send_abort_packet:
+	jam TYPE_MS,mem_24g_data_type
+	jam 1,mem_24g_abort_pac
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_24g_txbuf
+	setarg 0
+	store 7,mem_24g_txbuf+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_txbuf+8
+	jam 12,mem_24g_datalen
+	fetch 1,mem_24g_data_type
+	set1 bit_abort,pdata
+	store 1,mem_24g_data_type
+	call g24_transmit_prep
+	branch g24_transmit_start
+	
+
+
+g24_lpm_wait:
+	bpatchx patch33_6,mem_patch33
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	fetch 1,mem_lpm_mode
+	branch disable_user,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,disable_user
+	rtn
+
+g24_setgpio_lpm_before:
+	fetch 2,mem_cb_24g_lpm_before
+	branch callback_func
+
+
+
+
+
+
+
+
+
+
+
+
+g24_transmit_by_interrupt:
+	call g24_timer_check
+	nrtn user
+	call g24_interval_calibrate
+	fetch 2,mem_24g_transmit_by_interrupt_exit_count
+	increase 1,pdata
+	store 2,mem_24g_transmit_by_interrupt_exit_count
+	fetcht 2,mem_24g_transmit_by_interrupt_exit_count_init
+	isub temp,null
+	call g24_transmit_by_interrupt_exit,zero
+	branch g24_transmit_no_interrupt
+
+	
+g24_transmit_by_interrupt_exit:
+	jam G24_TX_TIMER_INT_DISABLE,mem_24g_transmit_by_interrupt
+	setarg 0
+	store 2,mem_24g_transmit_by_interrupt_exit_count
+	setarg 100
+	store 2,mem_24g_transmit_by_interrupt_exit_count_init
+g24_interval_min:
+	jam 0,mem_24g_pac_index
+	fetch 1,mem_24g_interval_min
+g24_interval_store:
+	store 1,mem_24g_interval
+	rtn
+g24_interval_max:
+	fetch 1,mem_24g_interval_max
+	branch g24_interval_store
+	
+g24_interval_calibrate:
+	fetch 1,mem_24g_pac_index
+	increase 1,pdata
+	store 1,mem_24g_pac_index
+	beq 4,g24_interval_max
+	beq 5,g24_interval_min
+	rtn
+
+g24_transmit_by_interrupt_enable:
+	jam G24_TX_TIMER_INT_ENABLE,mem_24g_transmit_by_interrupt
+	setarg 0
+	store 2,mem_24g_transmit_by_interrupt_exit_count
+	rtn
+
+
+
+
+
+
+
+
+
+g24_factory_check:
+	arg 2,loopcnt
+	arg mem_24g_addr,contr
+pdata_0xff_check:
+	call enable_user
+	setarg 0xffff
+pdata_0xff_check_loop:
+	ifetcht 2,contr
+	isub temp,null
+	ncall disable_user,zero
+	loop pdata_0xff_check_loop
+	rtn
+
+
+
+
+
+	
+
+
+
+power_ctrl_start:
+	bpatchx patch33_7,mem_patch33
+	fetch 1,mem_power_ctrl_disable
+	nrtn blank
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+//	rtnbit1 UI_STATE_BT_RECONNECT
+//	rtnbit1 UI_STATE_BT_DISCOVERY
+	fetchr rega,2,mem_rssi_signal_buf_ptr
+	call rssi_average
+	storet 1,mem_rssi_avg_received
+	fetch 1,mem_rssi_dis_max_24g
+	bmark1 mark_24g,power_ctrl_start_next
+	fetch 1,mem_rssi_dis_max_ble
+power_ctrl_start_next:
+	isub temp,null
+	nbranch power_ctrl_txpower_incrs_force,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	sub pdata,2,null
+	nbranch power_ctrl_txpower_decrs_check,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	beq 0,power_ctrl_txpower_incrs
+	rtn
+
+power_ctrl_txpower_decrs_check:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	fetcht 1,mem_power_ctrl_pac_succ_cnt_init
+	isub temp,null
+	nrtn zero
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_decrs:
+	fetcht 1,mem_rssi_avg_received
+	fetch 1,mem_rssi_dis_min_24g
+	bmark1 mark_24g,power_ctrl_txpower_decrs_next
+	fetch 1,mem_rssi_dis_min_ble
+power_ctrl_txpower_decrs_next:	
+	isub temp,null
+	nrtn positive
+	fetch 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+	increase -1,pdata
+	store 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+power_ctrl_decrs_level1:
+power_ctrl_incrs_level1:	//0dBm
+	jam TX_POWER_0DB,mem_tx_power
+	rtn
+
+power_ctrl_txpower_incrs_force:
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_incrs:
+	fetch 1,mem_power_ctrl_level
+	beq 2,power_ctrl_incrs_level2
+	increase 1,pdata
+	store 1,mem_power_ctrl_level
+	beq 1,power_ctrl_incrs_level1
+power_ctrl_incrs_level2:	//+6dBm
+	jam TX_POWER_6DB,mem_tx_power
+	rtn
+	
+power_ctrl_decrs_level0: //-5dBm
+	jam TX_POWER_f5DB,mem_tx_power
+	rtn
+
+power_ctrl_pac_succ_cnt_init:
+	jam 1,mem_power_ctrl_level
+	jam 0,mem_power_ctrl_pac_succ_cnt
+	rtn
+
+power_ctrl_pac_succ_incrs:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	increase 1,pdata
+	store 1,mem_power_ctrl_pac_succ_cnt
+	rtn
+
+power_ctrl_pac_succ_decrs:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	sub pdata,2,null
+	ncall power_ctrl_pac_succ_cnt_reinit,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	rtneq 0
+	increase -1,pdata
+	store 1,mem_power_ctrl_pac_succ_cnt
+	rtn
+
+power_ctrl_pac_succ_cnt_reinit:
+	jam 3,mem_power_ctrl_pac_succ_cnt
+	rtn
+
+
+
+
+
+
+
+
+//input:alarm is upper transport access ptr
+ali_mesh_access_layer_resolve_message:
+	fetch 1,mem_ccm_data_len
+	store 1,mem_mesh_receive_model_message_payload_len
+	copy alarm,contr
+	call memcpy24
+	fetch 2,mem_mesh_cb_receive_access_message
+	branch callback_func
+
+ali_mesh_access_layer_check_access_message_opcode:
+	jam MESH_RECEIVE_NEW_MESSAGE_TIMER,mem_mesh_upper_receive_new_message_timer
+	call ali_mesh_app_recv_new_mesh_pkt
+
+	
+	fetch 1,mem_mesh_receive_model_message_payload_opcode
+	beq MESH_MESSAGE_OPCODE_CONFIG_APPKEY_ADD,ali_mesh_access_layer_message_opcode_config_AppKey_Add
+	beq MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER,ali_mesh_access_layer_config_or_health_message_opcode
+	beq MESH_MODULE_MESSAGE_OPCODE_HEADER,ali_mesh_model_layer_check_model_message_opcode
+	beq VENDOR_MESSAGE_ATTR_SET,ali_mesh_ali_vendor_message_attribute_set
+	beq VENDOR_MESSAGE_ATTR_GET,ali_mesh_ali_vendor_message_opcode_attr_get
+	beq VENDOR_MESSAGE_ATTR_SET_UNACKNOWLEDGED,ali_mesh_ali_vendor_message_attribute_set
+	beq VENDOR_MESSAGE_ATTR_CONFIRMATION,ali_mesh_ali_vendor_message_opcode_attr_confrimation
+	rtn
+
+
+ali_mesh_access_layer_message_opcode_config_AppKey_Add:
+	arg mem_mesh_receive_application_key,contr
+	arg mem_mesh_application_key,contw
+	call memcpy16
+	jam PAIRED_STATUS,mem_mesh_provisioned_flag
+	call ali_mesh_encrypt_base_function_k3
+	call ali_mesh_encrypt_base_function_k4
+	call ali_mesh_access_layer_finish_pairing_init_subscription_list
+	call ali_mesh_accesss_layer_check_message_type
+	call ali_mesh_access_layer_send_config_AppKey_status
+	jam PAIRED_STATUS,mem_mesh_provisioned_flag
+	fetch 2,mem_mesh_cb_receive_config_appkey_add
+	branch callback_func
+
+ali_mesh_access_layer_recv_cfg_appkey_add_cb:
+	setarg 0
+	store 2,mem_mesh_fast_pairing_timer	//clear prov timer
+//	jam APPKEY_ADD_TIMEOUT, mem_mesh_recv_cfg_appkey_add_timer
+	random pdata
+	and pdata,0x1f,pdata
+	add pdata,30,pdata
+	store 1,mem_mesh_report_full_attribute_timer
+	add pdata,5,pdata
+	store 1,mem_mesh_report_power_on_timer
+	call mesh_clear_timer_data	
+	branch mesh_receive_config_appkey_add_cb
+
+ali_mesh_accesss_layer_check_message_type:
+	fetch 1,mem_mesh_network_packet_type
+	jam RECEIVED_CONFIG_APPKEY_ADD,mem_mesh_provisioned_flag		//涓棿鐘舵 APP閰嶇綉鏃讹紝闇瑕佸洖澶嶆暟閲忓
+	rtneq MESH_MESSAGE_APP
+	jam PAIRED_STATUS,mem_mesh_provisioned_flag					//tmall閰嶇綉涓嶉渶瑕侀噸浼犲娆
+	rtn
+
+ali_mesh_access_layer_send_config_AppKey_status:
+	setarg MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MESSAGE_OPCODE_CONFIG_CONFIG_MODEL_PUBLICATION_SET
+	istore 1,contw
+	setarg STATUS_CODE_SUCCESS
+	istore 1,contw
+	fetch 3,mem_mesh_NETKeyindex_and_APPKeyindex
+	istore 3,contw
+	jam 6,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+ali_mesh_access_layer_finish_pairing_init_subscription_list:
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_SUBSCRIPTION
+	call mesh_get_element_info_config
+ali_mesh_access_layer_finish_pairing_init_subscription_list_loop:
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,regc
+	setarg -1
+	istore SUBSCRIPTION_MAX_COUNT,regc
+	istore SUBSCRIPTION_MAX_COUNT,contw
+	ifetch 2,rega		//read group address
+	istore 2,regc
+	copy regb,pdata
+	iadd rega,rega
+	loop ali_mesh_access_layer_finish_pairing_init_subscription_list_loop
+	fetch 2,mem_mesh_cb_subscriptuion_list_changed
+	branch callback_func
+
+
+ali_mesh_access_layer_send_generic_onoff_status:
+	setarg MESH_MODULE_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_STATUS_NO_HEAD
+	istore 1,contw
+	fetch 1,mem_mesh_generic_onoff_set_payload_OnOff
+	istore 1,contw
+	jam 3,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+ali_mesh_access_layer_send_light_lightness_status:
+	setarg MESH_MODULE_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_STATUS_NO_HEAD
+	istore 1,contw
+	fetch 2,mem_mesh_light_lightness_set_payload_lightness
+	istore 2,contw
+	jam 4,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+ali_mesh_access_layer_send_light_ctl_stauts:
+	setarg MESH_MODULE_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_STATUS_NO_HEAD
+	istore 1,contw
+	fetch 4,mem_mesh_CTL_Lightness
+	istore 4,contw
+	jam 6,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+
+ali_mesh_access_layer_send_scene_status:
+	setarg MESH_MODULE_MESSAGE_OPCODE_SCENE_STATUS
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_SUCCESS
+	istore 1,contw
+	fetch 2,mem_mesh_scene_recall_payload_scene_number
+	istore 2,contw
+	jam 4,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+
+ali_mesh_app_recv_new_mesh_pkt:
+
+	fetch 1, mem_mesh_report_full_attribute_timer
+	rtn blank
+	pincrease 30
+	store 1,mem_mesh_report_full_attribute_timer
+	rtn
+
+ali_mesh_report_power_on_timer:
+	arg mem_mesh_report_power_on_timer,regc
+	arg ali_mesh_ali_vendor_message_opcode_device_power_on, regb
+	branch timer_single_step
+
+ali_mesh_report_full_attribute_timer:
+	arg mem_mesh_report_full_attribute_timer,regc
+	arg ali_mesh_app_report_device_state, regb
+	branch timer_single_step
+
+ali_mesh_app_report_device_state:
+	fetch 2,mem_mesh_app_deport_device_state
+	branch callback_func
+
+
+	
+
+
+
+ali_mesh_ali_vendor_message_attribute_set:
+	call ali_mesh_ali_vendor_message_attrbute_check_company_id_and_tid
+	nrtn user
+	bpatchx patch34_0,mem_patch34
+	fetch 2,mem_mesh_vendor_message_attr_type
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIME,temp
+	isub temp,null	//璁剧疆璁惧鐨勬椂闂
+	branch ali_mesh_ali_vendor_message_opcode_timer_set_curr_time,zero
+
+	arg VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_REPEAT,temp
+	isub temp,null		//寰幆瀹氭椂鏃堕棿
+	branch ali_mesh_ali_vendor_message_opcode_timer_set_timing_cyclically,zero
+	
+	arg VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_SINGLE,temp
+	isub temp,null	//鍊掕鏃舵椂闂
+	branch ali_mesh_ali_vendor_message_opcode_timer_set_timing,zero
+
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIMER_DELEATE,temp
+	isub temp,null
+	branch ali_mesh_ali_vendor_message_opcode_delete_timer,zero
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIMER_INQUIRE,temp
+	isub temp,null
+	branch ali_mesh_ali_vendor_message_opcode_timer_inquire,zero
+	arg VENDOR_MSEEAGE_ATTR_TYPE_TIMER_ENABLE,temp
+	isub temp,null
+	branch ali_mesh_ali_vendor_message_opcode_timer_set_state,zero
+
+
+	arg VENDOR_MESSAGE_ATTR_TYPE_MAIN_LIGHT,temp
+	isub temp,null	
+	branch ali_mesh_ali_vendor_message_attribute_set_main_light,zero
+	arg VENDOR_MESSAGE_ATTR_TYPE_BACKGROUND_LIGHT,temp
+	isub temp,null	
+	branch ali_mesh_ali_vendor_message_attribute_set_background_light,zero
+	arg VENDOR_MESSAGE_ATTR_TYPE_COLOR,temp
+	isub temp,null	
+	branch ali_mesh_ali_vendor_message_attribute_set_color,zero
+	fetch 2,mem_mesh_cb_recv_vendor
+	branch callback_func
+
+ali_mesh_ali_vendor_message_opcode_attr_get:
+	rtn
+ali_mesh_ali_vendor_message_opcode_attr_confrimation:
+	ifetch 2,contr
+	arg VENDOR_MESSAGE_OPCODE_COMPANY_ID,temp
+	isub temp,null
+	nrtn zero
+	ifetch 1,contr
+	fetcht 1,mem_mesh_upper_tran_layer_packet_tid
+	isub temp,null
+	nrtn zero
+	branch ali_mesh_stop_send_indication_packet
+
+ali_mesh_ali_vendor_message_attrbute_check_company_id_and_tid:
+	call disable_user
+	fetch 2,mem_mesh_vendor_message_cid
+	arg VENDOR_MESSAGE_OPCODE_COMPANY_ID,temp
+	isub temp,null
+	nrtn zero
+	fetcht 1,mem_mesh_vendor_mesh_receive_tid
+	fetch 1,mem_mesh_vendor_message_tid
+	isub temp,null
+	rtn zero
+	store 1,mem_mesh_vendor_mesh_receive_tid
+	branch enable_user
+
+ali_mesh_ali_vendor_message_attribute_set_main_light:
+	call ali_mesh_ali_vendor_message_ack_attr_status_uint8
+	fetch 2,mem_mesh_cb_main_light_onoff_set
+	branch callback_func
+
+
+ali_mesh_ali_vendor_message_attribute_set_background_light:
+	call ali_mesh_ali_vendor_message_ack_attr_status_uint8
+	fetch 2,mem_mesh_cb_background_onoff_set
+	branch callback_func
+
+ali_mesh_ali_vendor_message_attribute_set_color:
+	call ali_mesh_ali_vendor_message_ack_attr_status_uint48
+	fetch 2,mem_mesh_cb_color_set
+	branch callback_func
+
+
+ali_mesh_ali_vendor_message_opcode_timer_set_curr_time:
+	call ali_mesh_ali_vendor_message_ack_attr_status_uint32
+
+	fetch 4,mem_mesh_vendor_message_current_time
+	store 4,mem_mesh_vendor_timer_current_time
+	branch ali_mesh_time_init_system_time
+
+
+
+ali_mesh_ali_vendor_message_status_add_head:
+	setarg VENDOR_MESSAGE_ATTR_STATUS
+	store 1,mem_mesh_access_layer_payload
+	setarg VENDOR_MESSAGE_OPCODE_COMPANY_ID
+	istore 2,contw
+	fetch 1,mem_mesh_vendor_mesh_receive_tid
+	istore 1,contw
+	istoret 2,contw
+	rtn
+
+//寮鍏充笂鐢
+ali_mesh_ali_vendor_message_opcode_device_power_on:
+	arg 0,queue
+	arg VENDOR_MESSAGE_EVENT_DEVICE_POWER_ON,temp
+	arg VENDOR_ATTR_TYPE_EVENT_TRIGGER,rega
+	branch ali_mesh_ali_vendor_message_opcode_para_uint8
+
+
+//涓婃姤寮鍏崇姸鎬
+//input:temp is generic onoff status
+//0 GENERIC_ONOFF_CMD_OFF
+//1 GENERIC_ONOFF_CMD_ON
+//input:queue is element number
+//e.g 鐏痲ueue0
+//椋庢墖鐏腑鐏0锛岄鎵1
+//椋庢墖:0
+ali_mesh_ali_vendor_message_opcode_generic_OnOff:
+	arg VENDOR_ATTR_GENERIC_ONOFF_SERVER,rega
+	branch ali_mesh_ali_vendor_message_opcode_para_uint8
+
+
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint64:
+	arg 8,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint56:
+	arg 8,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint48:
+	arg 6,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint32:
+	arg 4,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint16:
+	arg 2,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint8:
+	arg 1,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+//input:loopcnt is attr length
+ali_mesh_ali_vendor_message_ack_attr_status:
+	add loopcnt,6,pdata
+	store 1,mem_mesh_access_layer_payload_len
+	call ali_mesh_ali_vendor_message_status_add_head
+	arg mem_mesh_vendor_attr_parameter,contr
+	call memcpy
+	branch ali_mesh_upper_transport_layer_send_access_message
+	
+
+
+//input:queue is element number
+//rega is vendor model attr
+//temp is vendor model attr parameter 
+ali_mesh_ali_vendor_message_opcode_para_uint8:
+	call ali_mesh_ali_vendor_message_indication_info_add_head
+	istorer rega,2,contw
+	istoret 1,contw
+	jam 7,mem_mesh_access_layer_payload_len
+	branch ali_mesh_ali_vendor_message_send_message
+
+
+//input:queue is element number
+//rega is vendor model attr
+//temp is vendor model attr parameter 
+ali_mesh_ali_vendor_message_opcode_para_uint16:
+	call ali_mesh_ali_vendor_message_indication_info_add_head
+	istorer rega,2,contw
+	istoret 2,contw
+	jam 8,mem_mesh_access_layer_payload_len
+	branch ali_mesh_ali_vendor_message_send_message
+
+
+//input:queue is element number
+ali_mesh_ali_vendor_message_send_message:
+	call ali_mesh_more_element_calc_queue_address
+	branch ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer
+
+
+ali_mesh_ali_vendor_message_indication_info_add_head:
+	fetch 1,mem_mesh_transport_AID
+	store 1,mem_mesh_message_Transport_Head
+	setarg VENDOR_MESSAGE_TMALL_DST
+	store 2,mem_mesh_send_message_DST
+	fetch 1,mem_mesh_vendor_mesh_send_tid
+	pincrease 1
+	store 1,mem_mesh_vendor_mesh_send_tid
+	beq VENDOR_MESSAGE_SEND_TID_MAX,ali_mesh_ali_vendor_message_indication_info_reset_tid
+	setarg VENDOR_MESSAGE_ATTR_INDICATION
+	store 1,mem_mesh_access_layer_payload
+	setarg VENDOR_MESSAGE_OPCODE_COMPANY_ID
+	istore 2,contw
+	fetch 1,mem_mesh_vendor_mesh_send_tid
+	istore 1,contw
+	rtn
+
+ali_mesh_ali_vendor_message_indication_info_reset_tid:
+	jam VENDOR_MESSAGE_SEND_TID_MIN,mem_mesh_vendor_mesh_send_tid
+	rtn
+
+
+ali_mesh_ali_vendor_message_opcode_delete_timer:
+	copy contr,rega
+	fetch 1,mem_mesh_receive_model_message_payload_len
+	arg 6,temp
+	isub temp,pdata
+	store 1,mem_mesh_timer_index_buffer_len
+	copy pdata,loopcnt
+	copy rega,contr
+	arg mem_mesh_timer_index_buffer,contw
+	call memcpy
+	arg 0,regb
+ali_mesh_ali_vendor_message_opcode_delete_timer_loop:
+	arg mem_mesh_timer_index_buffer,pdata
+	iadd regb,temp
+	ifetch 1,temp
+	beq 0xff,ali_mesh_ali_vendor_aim_timer_buffer_clear_all
+	and pdata,0x7f,pdata
+	call ali_mesh_ali_vendor_aim_timer_buffer_clear
+	increase 1,regb
+	fetch 1,mem_mesh_timer_index_buffer_len
+	isub regb,null
+	branch ali_mesh_ali_vendor_message_opcode_delete_timer_loop,positive
+	call peripherals_write_mesh_timer_infmatn
+ali_mesh_access_layer_send_ali_vendor_message_delete_timer:
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIMER_DELEATE, temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	arg 0,temp
+	istoret 1,contw
+	copy contw,temp
+	call ali_mesh_get_all_timer_index_timer
+	pincrease 7
+	store 1,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+ali_mesh_ali_vendor_aim_timer_buffer_clear:
+	rtn blank
+	pincrease -1
+	mul32 pdata,18,pdata
+	arg mem_mesh_vendor_timer_timing_buffer,rega
+	iadd rega,rega
+	setarg 0
+	istore 1,rega
+	rtn
+
+ali_mesh_ali_vendor_aim_timer_buffer_clear_all:
+	arg 18,loopcnt
+	mul32 loopcnt,MESH_X_TIMERS,loopcnt
+	arg mem_mesh_vendor_timer_timing_buffer,contw
+	call clear_mem
+	call peripherals_write_mesh_timer_infmatn
+	branch ali_mesh_access_layer_send_ali_vendor_message_delete_timer
+
+ali_mesh_ali_vendor_message_opcode_timer_inquire:
+	ifetch 1,contr
+	beq 0xff,ali_mesh_ali_vendor_message_opcode_timer_inquire_all_timer
+	store 1,mem_mesh_vendor_timer_timing_temp
+	ifetch 1,contr
+	pincrease -1
+	mul32 pdata,18,pdata
+	arg mem_mesh_vendor_timer_timing_buffer,contr
+	iadd contr,contr
+	arg mem_mesh_vendor_timer_timing_palyload,contw
+	arg 18,loopcnt
+	call memcpy
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIMER_INQUIRE,temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	fetch 1,mem_mesh_vendor_timer_timing_index
+	branch ali_mesh_ali_vendor_message_opcode_timer_inquire_time_error,blank
+	arg 0,temp
+	istoret 1,contw
+ali_mesh_ali_vendor_message_opcode_timer_inquire_time:
+	fetch 1,mem_mesh_vendor_timer_timing_temp
+	istore 1,contw
+	fetch 1,mem_mesh_vendor_timer_timing_index
+	istore 1,contw
+	fetch 8,mem_mesh_vendor_timer_timing_time
+	istore 8,contw
+	jam 17,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+	
+
+ali_mesh_ali_vendor_message_opcode_timer_inquire_all_timer:
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIMER_INQUIRE,temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	arg 0xff,temp
+	istoret 2,contw
+//	arg,0xff,temp
+//	istoret 1,contw
+	copy contw,temp
+	call ali_mesh_get_all_timer_index_timer
+	pincrease 8
+	store 1,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+//	fetch 1,mem_mesh_verdor_timer_timing_flag_v2+1
+	
+//ali_mesh_ali_vendor_message_opcode_timer_inquire_timing_cyclically_v2:
+ali_mesh_ali_vendor_message_opcode_timer_inquire_time_error:
+	arg 0x80,temp
+	istore 1,contw
+	branch ali_mesh_ali_vendor_message_opcode_timer_inquire_time
+
+ali_mesh_ali_vendor_message_opcode_timer_set_state:
+	ifetch 1,contr
+	store 1,mem_mesh_vendor_timer_timing_temp
+	and pdata,0x7f,pdata
+	pincrease -1
+	mul32 pdata,18,pdata
+	arg mem_mesh_vendor_timer_timing_buffer,contw
+	iadd contw,contw
+	fetch 1,mem_mesh_vendor_timer_timing_temp
+	istore 1,contw
+	call peripherals_write_mesh_timer_infmatn
+	arg VENDOR_MSEEAGE_ATTR_TYPE_TIMER_ENABLE,temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	setarg 0
+	istore 1,contw
+	copy contw,temp
+	call ali_mesh_get_all_timer_index_timer
+	pincrease 7
+	store 1,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+	
+	
+
+
+ali_mesh_time_function:
+	copy clkn_bt,temp
+	fetch 4,mem_system_time
+	isub temp,null
+	call ali_mesh_timer_timeout,positive
+	call ali_mesh_clkn_bt_add_1s
+	isub temp,null	
+	rtn positive
+	call ali_mesh_time_init_system_time_without_clk
+	fetch 4,mem_mesh_vendor_timer_current_time
+	pincrease 1
+	store 4,mem_mesh_vendor_timer_current_time
+	branch ali_mesh_ali_vendor_check_time
+
+
+ali_mesh_time_init_system_time:
+	copy clkn_bt,pdata
+ali_mesh_time_init_system_time_without_clk:
+	store 4,mem_system_time
+	fetch 1,mem_system_time+3
+	and_into 0x0f,pdata
+	store 1,mem_system_time+3
+	rtn
+
+ali_mesh_timer_timeout:
+	rtn zero
+	copy pdata,regb
+	setarg 0x100000
+	lshift8 pdata,pdata
+	iadd temp,temp
+	copy regb,pdata
+	rtn
+
+ali_mesh_clkn_bt_add_1s:
+	arg 20,loopcnt
+ali_mesh_time_loop:	
+	pincrease 160
+	loop ali_mesh_time_loop	
+	rtn
+
+ali_mesh_ali_vendor_check_time:
+	setarg MESH_X_TIMERS
+	store 1, mem_mesh_vendor_timer_check_loop
+	pincrease -1
+	mul32 pdata,18,pdata
+	arg mem_mesh_vendor_timer_timing_buffer,alarm
+	iadd alarm, alarm
+ali_mesh_ali_vendor_check_time_loop:
+	ifetch 1,alarm
+	ncall ali_mesh_ali_vendor_had_timing,blank 
+	increase -18,alarm
+
+	fetch 1, mem_mesh_vendor_timer_check_loop
+	pincrease -1
+	rtn blank
+	store 1, mem_mesh_vendor_timer_check_loop
+	branch ali_mesh_ali_vendor_check_time_loop
+
+ali_mesh_ali_vendor_had_timing:
+	arg 7,queue
+	qisolate0 pdata
+	rtn true
+	and pdata,0x7f,pdata
+	arg MESH_X_TIMERS, temp
+	isub temp, null
+	rtn positive
+	copy alarm,contr
+	arg mem_mesh_vendor_timer_timing_palyload,contw
+	arg 18,loopcnt
+	call memcpy
+	fetch 1,mem_mesh_vendor_timer_timing_palyload+17
+	beq 0x59,ali_mesh_ali_vendor_had_timing_cyclically
+ali_mesh_ali_vendor_had_timing_single_time:
+	fetcht 4,mem_mesh_vendor_timer_current_time
+	fetch 4, mem_mesh_vendor_timer_timing_time
+	isub temp,null
+	fetch 1, mem_mesh_vendor_timer_timing_attr_para
+	branch ali_mesh_ali_vendor_time_timeout,zero
+	nbranch ali_mesh_ali_vendor_time_out_of_date, positive
+	rtn	
+
+ali_mesh_ali_vendor_time_out_of_date:
+	setarg 0
+	istore 1,alarm
+	rtn
+
+ali_mesh_ali_vendor_had_timing_cyclically:
+
+	fetch 4, mem_mesh_vendor_timer_current_time
+	arg SECONDS_OF_MIN, temp
+	idiv temp
+	call wait_div_end
+	remainder pdata
+	nrtn blank
+	
+	fetch 4, mem_mesh_vendor_timer_current_time
+	arg SECONDS_OF_FOUR_DAYS, temp
+	isub temp, pdata
+
+	arg SECONDS_OF_WEEK, temp
+	idiv temp
+	call wait_div_end
+	remainder pdata
+	arg SECONDS_OF_DAY, temp
+	idiv temp
+	call wait_div_end
+	remainder rega
+	quotient queue
+	fetch 1,mem_mesh_vendor_timer_timing_weekdays_cyclic
+	branch ali_mesh_ali_vendor_had_timing_cyclically_continue,blank
+	qisolate1 pdata
+	nrtn true
+ali_mesh_ali_vendor_had_timing_cyclically_continue:
+//	call ice_break
+	deposit rega
+	arg SECONDS_OF_MIN, temp
+	idiv temp
+	call wait_div_end
+	quotient temp
+	setarg EIGHT_HOURS_TIME_ZONE_OFFSET
+	iadd temp, temp
+	fetch 2,mem_mesh_vendor_timer_timing_time_cyclic
+	arg 0xfff,rega
+	iand rega,pdata
+	isub temp, null
+	nrtn zero
+	fetch 1, mem_mesh_vendor_timer_timing_attr_para_cyclic
+	branch ali_mesh_ali_vendor_time_timeout
+
+ali_mesh_ali_vendor_time_timeout:
+	store 1,mem_mesh_generic_onoff_set_payload_OnOff
+	jam 1, mem_mesh_vendor_timer_check_loop
+	
+	copy alarm,pdata
+	store 2,mem_mesh_alarm_temp	
+
+	fetcht 1,mem_mesh_generic_onoff_set_payload_OnOff
+	fetchr queue,1,mem_mesh_receive_element_number
+	call ali_mesh_ali_vendor_message_opcode_generic_OnOff
+	
+	fetch 2,mem_mesh_alarm_temp
+	copy pdata,alarm
+	add alarm, 17, contr
+	ifetch 1, contr
+	beq TIMER_CYCLICAL_FALG,ali_mesh_ali_vendor_time_timeout_cyclic
+ali_mesh_ali_vendor_time_timeout_continue:
+	setarg 0
+	istore 1,alarm
+	fetchr queue,1,mem_mesh_receive_element_number
+	call ali_mesh_ali_vendor_message_opcode_timing_finish
+	branch peripherals_write_mesh_timer_infmatn
+	
+
+
+ali_mesh_ali_vendor_time_timeout_cyclic:
+	fetch 1,mem_mesh_vendor_timer_timing_weekdays_cyclic
+	branch ali_mesh_ali_vendor_time_timeout_continue,blank
+	arg VENDOR_ATTR_TYPE_EVENT_TRIGGER,temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	setarg 0x11
+	istore 1,contw
+	ifetch 1,alarm
+	or pdata,0x80,pdata
+	istore 1,contw
+	jam 8,mem_mesh_access_layer_payload
+	branch ali_mesh_ali_vendor_message_send_message
+
+ali_mesh_ali_vendor_message_opcode_timing_finish:
+	arg VENDOR_ATTR_TYPE_EVENT_INDEX_REPORT,temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	copy contw,temp
+	call ali_mesh_get_all_timer_index_timer
+	
+	pincrease 6
+	store 1,mem_mesh_access_layer_payload_len
+	jam VENDOR_MESSAGE_ATTR_STATUS,mem_mesh_access_layer_payload
+	branch ali_mesh_ali_vendor_message_send_message
+	
+
+ali_mesh_ali_vendor_message_opcode_timer_set_timing:
+	arg mem_mesh_vendor_timer_timing_index,contw
+	arg 16,loopcnt
+	call memcpy
+	fetch 1,mem_mesh_vendor_timer_timing_index
+	and pdata,0x7f,pdata
+	store 1,mem_mesh_vendor_timer_timing_temp
+	sub pdata, MESH_X_TIMERS, null
+	nrtn positive
+	fetch 4,mem_mesh_vendor_timer_timing_time
+	arg 60,temp
+	idiv temp
+	call wait_div_end
+	remainder temp
+	isub temp,pdata
+	store 4,mem_mesh_vendor_timer_timing_time
+	setarg 0
+	store 2,mem_mesh_vendor_timer_timing_flag
+	arg mem_mesh_vendor_timer_timing_index,rega
+	call ali_mesh_ali_vendor_store_mesh_timer_infmatn
+	arg VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_SINGLE,temp
+	branch ali_mesh_access_layer_send_ali_vendor_message_current_timing
+	
+
+	
+
+ali_mesh_ali_vendor_message_opcode_timer_set_timing_cyclically:
+	
+	arg mem_mesh_vendor_timer_timing_index_cyclic,contw
+	arg 17,loopcnt
+	call memcpy
+	
+	
+	fetch 1,mem_mesh_vendor_timer_timing_index_cyclic
+	and pdata,0x7f,pdata
+	store 1,mem_mesh_vendor_timer_timing_temp
+	sub pdata, MESH_X_TIMERS, null
+	nrtn positive
+
+	jam 0x59,mem_mesh_vendor_timer_timing_cyclic_flag
+	arg mem_mesh_vendor_timer_timing_index_cyclic, rega
+	call ali_mesh_ali_vendor_store_mesh_timer_infmatn
+	arg VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_REPEAT,temp
+
+	
+ali_mesh_access_layer_send_ali_vendor_message_current_timing:
+//	call ali_mesh_get_all_timer_index_timer
+	call ali_mesh_ali_vendor_message_status_add_head
+	setarg 0
+	store 1,mem_mesh_access_layer_payload+6
+	copy contw,temp
+	call ali_mesh_get_all_timer_index_timer
+	pincrease 7
+	store 1,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+	
+	
+ali_mesh_ali_vendor_store_mesh_timer_infmatn:
+	call ali_mesh_vendor_timer_buffer_offset_cal
+	copy rega,contr
+	arg mem_mesh_vendor_timer_timing_buffer,contw
+	iadd contw,contw
+	arg 18,loopcnt
+	call memcpy
+	branch peripherals_write_mesh_timer_infmatn
+
+ali_mesh_vendor_timer_buffer_offset_cal:
+	fetch 1,mem_mesh_vendor_timer_timing_temp
+	pincrease -1
+	mul32 pdata,18,pdata
+	rtn
+
+ali_mesh_get_all_timer_index_timer:
+	arg mem_mesh_vendor_timer_timing_buffer,rega
+	arg 0,regb
+	copy temp,contw
+	arg MESH_X_TIMERS,loopcnt
+	increase -1,loopcnt
+ali_mesh_get_all_timer_index_timer_loop:
+	ifetch 1,rega
+	beq 0xff,ali_mesh_get_all_timer_index_timer_loop_end
+	branch ali_mesh_get_all_timer_index_timer_loop_end,blank
+	increase 1,regb
+	istore 1,contw
+ali_mesh_get_all_timer_index_timer_loop_end:
+	setarg 18
+	iadd rega,rega
+	loop ali_mesh_get_all_timer_index_timer_loop
+	copy regb,pdata
+	rtn
+
+peripherals_write_mesh_timer_infmatn:
+	fetch 2,mem_mesh_cb_vendor_timing_changed
+	branch callback_func
+//	setarg FLASH_BLOCK_MESH_TIMER_INFOR
+//	arg mem_mesh_verdor_timer_timing_buffer, rega  //mem ptr
+//	arg 30,temp
+//	arg MESH_X_TIMERS,temp
+//	mul32 temp,18,temp	
+//	branch spi_write_flash_data
+
+
+
+ali_mesh_bearer_layer_send_packet_by_network_layer:
+	bpatchx patch34_1,mem_patch34
+	setarg mem_mesh_queue_each_size
+	store 2,mem_mesh_element_device_queue_buffer_ptr
+	setarg mem_mesh_element_device
+	store 2,mem_mesh_rega_temp
+	jam ADV_PAIRING_MESH_MESSAGE_DURATION,mem_mesh_queue_ele_duration
+	fetch 1,mem_mesh_gatt_package_send_msg_id
+	store 1,mem_mesh_queue_ele_gatt_msg_id
+
+	fetch 1,mem_mesh_lower_transport_layer_payload_len
+	pincrease 11
+	add pdata,-2,loopcnt
+	//闀垮害+11鐨勫師鍥
+	//uint8_t AD length
+	//uint8_t AD type:GAP_ADTYPE_MESH_MESSAGE
+	//uint8_t IVI & NID
+	//uint8_t CTL & TTL
+	//uint24_t SEQ
+	//uint16_t SRC
+	//uint16_t DST
+	store 1,mem_mesh_queue_ele_len
+	pincrease -1
+	//-1鐨勫師鍥
+	//uint8_t AD length
+	istore 1,contw
+	setarg GAP_ADTYPE_MESH_MESSAGE
+	istore 1,contw
+	arg mem_mesh_send_upper_layer_IVI_and_NID,contr
+	call memcpy_fast
+	fetchr rega,2,mem_mesh_rega_temp
+	call ali_mesh_advertising_bearer_layer_init_queue
+	call queue_push
+ali_mesh_bearer_layer_gatt_send_packet_by_network_layer:
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_CONNECTED,pdata
+	nrtn true
+ali_mesh_send_ble_data_control_package:
+	call ali_mesh_network_layer_init_gatt_queue_param
+	arg mem_mesh_queue_ele_temp,rega
+	branch queue_push
+
+ali_mesh_advertising_bearer_layer_init_queue:
+	add rega,ELEMENT_DEVICE_QUEUE_BUFFER_PTR,contr
+	ifetch 2,contr
+	store 2,mem_queue_ptr
+	arg mem_mesh_queue_ele_temp,rega
+	rtn
+	
+
+ali_mesh_advertising_bearer_layer_init_queue_param:
+	setarg mem_mesh_queue_each_size
+	store 2,mem_queue_ptr
+	rtn
+
+ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue:
+ 
+ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue_deal:
+	fetch 1,mem_mesh_upper_tran_layer_packet_advertising
+	rtnne PACKET_IN_BEARER
+	jam PACKET_IN_ADVERTING,mem_mesh_upper_tran_layer_packet_advertising
+	branch ali_mesh_control_ble_advertising_on_advertising
+
+ali_mesh_advertising_bearer_layer_send_packet_by_app_bearer_calc_param:
+	arg mem_mesh_queue_ele_payload+2,rega
+	arg MAX_APP_MSSAGE_PAYLOAD_LENGTH,temp
+	setarg 0x21		//
+	nrtn true
+	arg mem_mesh_queue_ele_payload+20,rega		//MAX_APP_MSSAGE_PAYLOAD_LENGTH+2
+	fetcht 1,mem_mesh_queue_ele_len
+	increase -18,temp		//MAX_APP_MSSAGE_PAYLOAD_LENGTH
+	setarg 0x22
+	rtn
+
+
+
+
+
+//0x01 GAP_ADTYPE_FLAGS
+//input:no default write mem_mesh_adv_data
+ali_mesh_advertising_add_adtype_flags:
+	arg mem_mesh_adv_data,contw
+	setarg 0x02
+	istore 1,contw
+	setarg GAP_ADTYPE_FLAGS
+	istore 1,contw
+	setarg 0x02
+	istore 1,contw
+	rtn
+
+//0x01 GAP_ADTYPE_FLAGS
+//input:no default write mem_mesh_adv_data
+ali_mesh_advertising_add_adtype_16bit_complete:
+	arg MESH_PROVISIONING_UUID,temp
+	setarg 0x03
+	istore 1,contw
+	setarg GAP_ADTYPE_16BIT_COMPLETE
+	istore 1,contw
+	istoret 2,contw
+	rtn
+
+
+mesh_ble_rx_packet_only:
+	call le_enable
+	call le_init_adv
+	call le_receive_adv
+	nrtn match
+//	call ali_mesh_advertising_packet_analysis
+	fetch 1,mem_le_adv_rcv
+	pincrease 1
+	store 1,mem_le_adv_rcv
+	fetch 2,mem_mesh_cb_receive_advertising
+	call callback_func
+	branch le_disable
+
+mesh_ble_rx_packet:
+	call mesh_ble_rx_packet_check_and_init
+	rtn user
+mesh_ble_rx_packet_check_timer:
+	call mesh_ble_rx_packet_only
+	call connection_dispatch
+	fetcht 2,mem_le_scan_interval
+	arg 10,queue
+	call sniff_check_window
+	rtn user
+	arg mesh_ble_rx_timer,queue
+	call timer_check
+	nbranch mesh_ble_rx_packet_check_timer,blank
+	rtn
+
+mesh_ble_rx_packet_check_and_init:
+	fetcht 2,mem_le_scan_interval
+	arg 4,queue
+	call sniff_check_window
+	rtn user
+	call mesh_le_calc_next_scan_channel
+	fetch 2,mem_le_scan_interval
+	arg mesh_ble_rx_timer,queue
+	branch timer_init
+
+
+mesh_le_calc_next_scan_channel:
+	fetch 1,mem_mesh_adv_scan_channel
+	pincrease 1
+	store 1,mem_mesh_adv_scan_channel
+	store 1,mem_le_ch_mapped
+	rtnne 40
+	jam 37,mem_mesh_adv_scan_channel
+	jam 37,mem_le_ch_mapped
+	rtn
+
+mesh_check_ble_rx_packet:
+	fetch 1,mem_le_rxbuf
+	and pdata,0x0f,pdata
+	beq ADV_IND,ali_mesh_match_advertising_packet
+	beq ADV_NONCONN_IND,ali_mesh_match_advertising_packet
+	rtn
+
+ali_mesh_match_advertising_packet:
+	ifetcht 1,contr	//length
+	sub temp,ADV_PACKET_MIN_LENGTH,null
+	rtn positive		//杩囨护鐭寘锛屽寘闀垮害澶煭瀵艰嚧瑙ｆ瀽閿欒
+	sub temp,ADV_PACKET_MAX_LENGTH,null
+	nrtn positive		//杩囨护闀垮寘锛屽寘闀垮害澶暱瀵艰嚧鍐呭瓨瑕嗙洊
+	add temp,-6,rega	//rega:鍑忓幓address length
+	add contr,6,regb	//regb:鎸囬拡鍋忕Щ鍒皉egb
+
+ali_mesh_find_adv_ind_packet:
+	ifetcht 1,regb //length
+	sub temp,AD_TYPE_MIN_LENGTH,null
+	rtn positive	
+	sub temp,AD_TYPE_MAX_LENGTH,null
+	nrtn positive	
+	copy temp,pdata
+	rtn blank
+	bpatchx patch34_2,mem_patch34
+	ifetch 1,contr
+	beq GAP_ADTYPE_MANUFACTURER_SPECIFIC,ali_mesh_receive_adtype_manufacturer_specific_tmall_control
+	beq GAP_ADTYPE_MESH_MESSAGE,ali_mesh_receive_adtype_mesh_message
+//	beq GAP_ADTYPE_128BIT_COMPLETE,ali_mesh_receive_adtype_128bit_uuid_complete
+//鎸夌収骞挎挱鏍煎紡鏌ヨ鎵鏈夋壂鎻忓埌鐨勫箍鎾暟鎹
+	add temp,1,pdata
+	isub rega,null
+	rtn positive
+	iadd regb,regb
+	sub temp,-1,pdata
+	iadd rega,rega
+	copy rega,pdata
+	rtn blank
+	branch ali_mesh_find_adv_ind_packet
+
+ali_mesh_receive_adtype_manufacturer_specific_tmall_control:
+	jam MESH_MESSAGE_TMALL,mem_mesh_fast_pair_packet_type
+	branch ali_mesh_receive_adtype_manufacturer_specific
+
+
+mesh_le_send_adv:
+	fetch 1,mem_le_adv_transmit
+	pincrease 1
+	store 1,mem_le_adv_transmit
+//	call ice_break
+	bpatchx patch34_3,mem_patch34
+	call le_enable
+	arg 39,loopcnt
+	arg mem_le_txheader,contr
+	arg mem_le_txheader_mesh_temp,contw
+	call memcpy_fast
+	jam 37,mem_le_ch_mapped
+	arg 1800,stop_watch
+	enable swfine
+	disable match
+
+mesh_le_send_adv_loop:
+	call le_init_adv
+	call mesh_le_send_adv_nonconn_ind
+	random pdata 
+	arg 0x1ff,temp
+	iand temp,pdata
+	add pdata,100,pdata
+	call delay
+	fetch 1,mem_le_ch_mapped
+	pincrease 1
+	store 1,mem_le_ch_mapped
+	bne 40,mesh_le_send_adv_loop
+	
+	arg 39,loopcnt
+	arg mem_le_txheader,contw
+	arg mem_le_txheader_mesh_temp,contr
+	call memcpy_fast
+	branch le_disable
+
+mesh_le_send_adv_nonconn_ind:
+	arg ADV_NONCONN_IND,temp
+	storet 1,mem_le_txheader
+	fetcht 1,mem_mesh_adv_data_len
+	add temp,6,pdata
+	store 1,mem_le_txlen
+	fetch 6,mem_le_lap
+	store 6,mem_le_txpayload
+	copy temp,loopcnt
+	arg mem_mesh_adv_data,contr
+	call memcpy_fast
+
+	branch le_transmit_norx
+
+
+
+
+//input:mem_mesh_mic_cache_ptr is cache buffer ptr
+//data ptr is store mem_ccm_data_ptr
+//data length is store mem_ccm_data_len
+//cache space size is TRANSPORT_MIC_CACHE_SPACE_SIZE
+//cache space num is TRANSPORT_MIC_CACHE_SPACE_NUM
+//output:user is enable ,mean new packet
+ali_mesh_base_adt_cache:
+	bpatchx patch34_4,mem_patch34
+	fetcht 2,mem_ccm_data_ptr
+	fetch 1,mem_ccm_data_len
+	copy temp,contr
+	arg mem_k4_SALT,rega
+	arg mem_k4_T,alarm
+	call ali_mesh_encrypt_base_function_AES_CMAC
+	call disable_user
+	copy regc,pdata
+	iadd alarm,contr
+	fetcht 4,mem_k4_T
+	fetch 2,mem_mesh_mic_cache_ptr
+	copy pdata,rega
+//	arg mem_mesh_access_message_mic_cache,rega
+	arg TRANSPORT_MIC_CACHE_SPACE_NUM,loopcnt
+ali_mesh_base_adt_cache_loop:
+	ifetch 4,rega
+	branch ali_mesh_base_adt_cache_empty_space,blank
+	isub temp,null
+	rtn zero
+	increase TRANSPORT_MIC_CACHE_SPACE_SIZE,rega
+	loop ali_mesh_base_adt_cache_loop
+	fetch 2,mem_mesh_mic_cache_ptr
+	copy pdata,contw
+	add pdata,TRANSPORT_MIC_CACHE_SPACE_SIZE,contr
+//	arg mem_mesh_access_message_mic_cache,contw
+//	arg mem_mesh_access_message_mic_cache+TRANSPORT_MIC_CACHE_SPACE_SIZE,contr
+	arg TRANSPORT_MIC_CACHE_TOTAL_SIZE,loopcnt
+	call memcpy_fast
+	istoret 4,contw
+	branch enable_user
+ali_mesh_base_adt_cache_empty_space:
+	istoret 4,rega
+	branch enable_user
+
+ali_mesh_chip_peripherals_load_data:
+	fetch 1,mem_mesh_chip_select
+	beq MESH_CHIP_FROM_EEPROM,ali_mesh_chip_peripherals_load_data_from_eep
+ali_mesh_chip_peripherals_load_data_from_flash:
+	call ali_mesh_chip_peripherals_load_three_tuple_from_flash
+	call ali_mesh_chip_peripherals_load_network_key_from_flash
+	call ali_mesh_chip_peripherals_load_application_key_from_flash
+	call ali_mesh_chip_peripherals_load_device_key_from_flash
+	call ali_mesh_chip_peripherals_load_reset_count_from_flash
+	call ali_mesh_chip_peripherals_load_seq_from_flash
+	branch ali_mesh_chip_peripherals_load_subscription_from_flash
+
+ali_mesh_chip_peripherals_load_three_tuple_from_flash:
+	arg MESH_EEP_THREE_TUPLE_LENGTH,temp
+	arg mem_mesh_three_tuple_ProductID,rega
+	setarg 0x1ffa0
+	branch spid_read_flash
+ali_mesh_chip_peripherals_load_network_key_from_flash:
+	arg MESH_EEP_NETWORK_KEY_LENGTH,temp
+	arg mem_mesh_Network_Key,rega
+	setarg MESH_FLASH_NETWORK_KEY_ADDR
+	call spid_read_flash
+	fetch 1,mem_mesh_last_IV_Index_byte
+	store 1,mem_mesh_IV_Index+3
+	rtn
+ali_mesh_chip_peripherals_load_application_key_from_flash:
+	arg MESH_EEP_APPLICATION_KEY_LENGTH,temp
+	arg mem_mesh_application_key,rega
+	setarg MESH_FLASH_APPLICATION_KEY_ADDR
+	branch spid_read_flash
+ali_mesh_chip_peripherals_load_device_key_from_flash:
+	arg MESH_EEP_DEVICE_KEY_LENGTH,temp
+	arg mem_mesh_Device_Key,rega
+	setarg MESH_FLASH_DEVICE_KEY_ADDR
+	branch spid_read_flash
+ali_mesh_chip_peripherals_load_reset_count_from_flash:
+	rtn
+ali_mesh_chip_peripherals_load_seq_from_flash:
+	arg MESH_EEP_SEQ_LENGTH,temp
+	arg mem_mesh_send_message_SEQ,rega
+	setarg MESH_FLASH_MESSAGE_SEQ_ADDR
+	branch spid_read_flash
+ali_mesh_chip_peripherals_load_subscription_from_flash:
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_SUBSCRIPTION
+	arg MESH_EEP_SUBSCRIPTION_TOTAL_LENGTH,temp
+	arg mem_mesh_subscription_eep_temp,rega
+	setarg MESH_FLASH_SUBSCRIPTION_ADDR
+	call spid_read_flash
+	call mesh_get_element_info_config
+	arg mem_mesh_subscription_eep_temp,contr
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,rega
+	branch ali_mesh_chip_peripherals_load_subscription_loop
+
+
+ali_mesh_chip_peripherals_load_data_from_eep:
+	call ali_mesh_chip_peripherals_load_three_tuple_from_eep
+	call ali_mesh_chip_peripherals_load_network_key_from_eep
+	call ali_mesh_chip_peripherals_load_application_key_from_eep
+	call ali_mesh_chip_peripherals_load_device_key_from_eep
+	call ali_mesh_chip_peripherals_load_reset_count_from_eep
+	call ali_mesh_chip_peripherals_load_seq_from_eep
+	branch ali_mesh_chip_peripherals_load_subscription_from_eep
+
+ali_mesh_chip_peripherals_load_three_tuple_from_eep:
+	arg MESH_EEP_THREE_TUPLE_LENGTH,temp
+	arg mem_mesh_three_tuple_ProductID,rega
+	arg MESH_EEP_THREE_TUPLE_OFFSET,regb
+	branch iicd_read_eep_data
+
+ali_mesh_chip_peripherals_load_network_key_from_eep:
+	arg MESH_EEP_NETWORK_KEY_LENGTH,temp
+	arg mem_mesh_Network_Key,rega
+	arg MESH_EEP_NETWORK_KEY_OFFSET,regb
+	call iicd_read_eep_data
+	fetch 1,mem_mesh_last_IV_Index_byte
+	store 1,mem_mesh_IV_Index+3
+	rtn
+
+ali_mesh_chip_peripherals_load_application_key_from_eep:
+	arg MESH_EEP_APPLICATION_KEY_LENGTH,temp
+	arg mem_mesh_application_key,rega
+	arg MESH_EEP_APPLICATION_KEY_OFFSET,regb
+	branch iicd_read_eep_data
+
+ali_mesh_chip_peripherals_load_device_key_from_eep:
+	arg MESH_EEP_DEVICE_KEY_LENGTH,temp
+	arg mem_mesh_Device_Key,rega
+	arg MESH_EEP_DEVICE_KEY_OFFSET,regb
+	branch iicd_read_eep_data
+
+ali_mesh_chip_peripherals_load_reset_count_from_eep:
+	rtn
+
+ali_mesh_chip_peripherals_load_seq_from_eep:
+	arg MESH_EEP_SEQ_LENGTH,temp
+	arg mem_mesh_send_message_SEQ,rega
+	arg MESH_EEP_SEQ_OFFSET,regb
+	branch iicd_read_eep_data
+
+ali_mesh_chip_peripherals_load_subscription_from_eep:
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_SUBSCRIPTION
+	arg MESH_EEP_SUBSCRIPTION_TOTAL_LENGTH,temp
+	arg mem_mesh_subscription_eep_temp,rega
+	arg MESH_EEP_SUBSCRIPTION_OFFSET,regb
+	call iicd_read_eep_data
+	call mesh_get_element_info_config
+	arg mem_mesh_subscription_eep_temp,contr
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,rega
+ali_mesh_chip_peripherals_load_subscription_loop:
+	copy rega,contw
+	call memcpy16
+	copy regb,pdata
+	iadd rega,rega
+	loop ali_mesh_chip_peripherals_load_subscription_loop
+	rtn
+
+mesh_receive_config_appkey_add_cb:
+	fetch 1,mem_mesh_chip_select
+	beq MESH_CHIP_FROM_EEPROM,mesh_receive_config_appkey_add_eeprom_cb
+	beq MESH_CHIP_FROM_FLASH,mesh_receive_config_appkey_add_flash_cb
+mesh_receive_config_appkey_add_flash_cb:
+	call ali_mesh_chip_peripherals_save_network_key_from_flash
+	call ali_mesh_chip_peripherals_save_application_key_from_flash
+	branch ali_mesh_chip_peripherals_save_device_key_from_flash
+ali_mesh_chip_peripherals_save_network_key_from_flash:
+	arg MESH_EEP_NETWORK_KEY_LENGTH,temp
+	arg mem_mesh_Network_Key,rega
+	setarg MESH_FLASH_NETWORK_KEY_ADDR
+	branch spid_write_flash_data
+ali_mesh_chip_peripherals_save_application_key_from_flash:
+	arg MESH_EEP_APPLICATION_KEY_LENGTH,temp
+	arg mem_mesh_application_key,rega
+	setarg MESH_FLASH_APPLICATION_KEY_ADDR
+	branch spid_write_flash_data
+ali_mesh_chip_peripherals_save_device_key_from_flash:
+	arg MESH_EEP_DEVICE_KEY_LENGTH,temp
+	arg mem_mesh_Device_Key,rega
+	setarg MESH_FLASH_DEVICE_KEY_ADDR
+	branch spid_write_flash_data
+	
+mesh_receive_config_appkey_add_eeprom_cb:
+	call ali_mesh_chip_peripherals_save_network_key_from_eep
+	call ali_mesh_chip_peripherals_save_application_key_from_eep
+	branch ali_mesh_chip_peripherals_save_device_key_from_eep
+
+ali_mesh_chip_peripherals_save_network_key_from_eep:
+	arg MESH_EEP_NETWORK_KEY_LENGTH,temp
+	arg mem_mesh_Network_Key,rega
+	arg MESH_EEP_NETWORK_KEY_OFFSET,regb
+	branch iicd_write_protect_eep_data
+
+ali_mesh_chip_peripherals_save_application_key_from_eep:
+	arg MESH_EEP_APPLICATION_KEY_LENGTH,temp
+	arg mem_mesh_application_key,rega
+	arg MESH_EEP_APPLICATION_KEY_OFFSET,regb
+	branch iicd_write_protect_eep_data
+
+ali_mesh_chip_peripherals_save_device_key_from_eep:
+	arg MESH_EEP_DEVICE_KEY_LENGTH,temp
+	arg mem_mesh_Device_Key,rega
+	arg MESH_EEP_DEVICE_KEY_OFFSET,regb
+	branch iicd_write_protect_eep_data
+
+mesh_store_new_seq_data:
+	fetch 3,mem_mesh_send_message_SEQ
+	fetcht 3,mem_mesh_send_message_SEQ_temp
+	isub temp,null
+	nrtn positive
+	add pdata,128,pdata
+	store 3,mem_mesh_send_message_SEQ_temp
+	fetch 1,mem_mesh_chip_select
+	beq 1,ali_mesh_chip_peripherals_save_seq_from_eep
+ali_mesh_chip_peripherals_save_seq_from_flash:
+	arg MESH_EEP_SEQ_LENGTH,temp
+	arg mem_mesh_send_message_SEQ_temp,rega
+	setarg MESH_FLASH_MESSAGE_SEQ_ADDR
+	branch spid_write_flash_data
+ali_mesh_chip_peripherals_save_seq_from_eep:
+	arg MESH_EEP_SEQ_LENGTH,temp
+	arg mem_mesh_send_message_SEQ_temp,rega
+	arg MESH_EEP_SEQ_OFFSET,regb
+	branch iicd_write_protect_eep_data
+
+mesh_store_new_subscriptuion_list_data:
+	call ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep
+	fetch 1,mem_mesh_chip_select
+	beq 2,mesh_store_new_subscriptuion_list_data_from_flash
+	arg MESH_EEP_SUBSCRIPTION_TOTAL_LENGTH,temp
+	arg mem_mesh_subscription_eep_temp,rega
+	arg MESH_EEP_SUBSCRIPTION_OFFSET,regb
+	branch iicd_write_protect_eep_data
+mesh_store_new_subscriptuion_list_data_from_flash:
+	arg MESH_EEP_SUBSCRIPTION_TOTAL_LENGTH,temp
+	arg mem_mesh_subscription_eep_temp,rega
+	setarg MESH_FLASH_SUBSCRIPTION_ADDR
+	branch spid_write_flash_data
+
+ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep:
+	call mesh_get_element_info_config
+	arg mem_mesh_subscription_eep_temp,contw
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,rega
+ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep_loop:
+	copy rega,contr
+	call memcpy16
+	copy regb,pdata
+	iadd rega,rega
+	loop ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep_loop
+	rtn
+
+mesh_clear_pairing_key:
+	fetch 1,mem_mesh_chip_select
+	beq 1,ali_mesh_chip_clear_pairing_key_from_eeprom
+ali_mesh_chip_clear_pairing_key_from_flash:
+	setarg 0x1e000
+	store 3,mem_spi_write_addr
+	branch spid_flash_erase_sector+2
+ali_mesh_chip_clear_pairing_key_from_eeprom:
+	rtn
+
+mesh_vendor_timming_chage_cb:
+	fetch 1,mem_mesh_chip_select
+	rtnne 2
+	setarg 0x1d000
+	arg mem_mesh_vendor_timer_timing_buffer, rega  //mem ptr
+	arg MESH_X_TIMERS,temp
+	mul32 temp,18,temp	
+	branch spid_write_flash_data
+
+ali_mesh_vendor_timer_message_read:
+	fetch 1,mem_mesh_chip_select
+	rtnne 2
+	arg mem_mesh_vendor_timer_timing_buffer, rega  //mem ptr
+	arg MESH_X_TIMERS,temp
+	mul32 temp,18,temp	
+	setarg 0x1d000
+	branch spid_read_flash
+
+
+
+
+//mesh鎺у埗ble advertising骞挎挱閫昏緫鐨勪富娴佺▼
+ali_mesh_control_ble_adv_process:
+	call ali_mesh_ble_adv
+	branch ali_mesh_control_ble_adv_tmall_packet
+
+
+//mesh 鎺у埗ble advertising 骞挎挱timer娴佺▼
+ali_mesh_control_ble_adv_timer_process:
+	call ali_mesh_advertising_unprovisioned_timer_interval_timer
+	branch ali_mesh_advertising_unprovisioned_timer
+
+//mesh鎵撳紑ble advertising
+ali_mesh_control_ble_advertising_on_advertising:
+	jam DEVICE_BEACON_ON,mem_mesh_advertising_unprovisioned_device_beacon_switch
+	rtn
+
+//mesh鍏抽棴ble advertising
+ali_mesh_control_ble_advertising_off_advertising:
+	jam DEVICE_BEACON_OFF,mem_mesh_advertising_unprovisioned_device_beacon_switch
+	rtn
+
+
+ali_mesh_control_ble_adv_tmall_packet:
+	arg ali_mesh_control_ble_adv_tmall_packet_send_package,regb
+	arg MESH_ADV_TMALL_MESSAGE_INTERVAL,rega
+	arg mesh_ble_adv_tmall,queue
+	branch ali_mesh_chip_timer_check_with_random_timer
+
+
+
+
+//鎺у埗涓嶅悓鐘舵佸彂鍖呮儏鍐
+ali_mesh_control_ble_adv_tmall_packet_send_package:
+	fetch 1,mem_mesh_provisioned_flag
+	beq UNPROVISIONED_BEACON_STATUS,ali_mesh_control_ble_advertising_send_device_beacon_packet
+	beq SILENCE_BEACON_STATUS,ali_mesh_control_ble_advertising_send_device_silence_beacon_packet
+	beq PAIRING_STATUS,ali_mesh_control_ble_advertising_send_pairing_packet
+	beq PAIRED_STATUS,ali_mesh_control_ble_advertising_send_paired_packet
+	branch ali_mesh_control_ble_advertising_send_paired_packet
+
+ali_mesh_control_ble_advertising_send_device_silence_beacon_packet:
+	jam 0,mem_le_adv_enable
+	branch ali_mesh_control_ble_advertising_off_advertising
+
+ali_mesh_control_ble_advertising_send_paired_packet:
+	call ali_mesh_advertising_bearer_layer_init_queue_param
+	arg mem_mesh_queue_ele_temp,rega
+	call queue_get_new_ele
+	nrtn user
+	fetch 1,mem_mesh_upper_tran_layer_packet_type
+	bbit1 BIT_UUPER_TRAN_PROXY_MESSAGE,ali_mesh_control_ble_advertising_send_paired_packet_end_duration_proxy
+	fetch 1,mem_mesh_queue_ele_duration
+	pincrease -1
+	istore 1,regb
+	and pdata,0x7f,pdata	
+	call ali_mesh_control_ble_advertising_send_paired_packet_end_duration,blank	//鍛ㄦ湡鍒颁涪寮
+	fetch 1,mem_mesh_upper_tran_layer_packet_type
+	rtnbit0 BIT_UPPER_TRAN_TMALL_MESSAGE		
+	arg mem_mesh_adv_data_len,contw
+	arg mem_mesh_queue_ele_len,contr
+	call memcpy32
+	branch mesh_le_send_adv
+
+ali_mesh_control_ble_advertising_send_paired_packet_end_duration_proxy:
+	arg mem_mesh_queue_ele_duration,rega
+	call queue_pop
+	call queue_empty
+	nrtn blank
+
+	call ali_mesh_send_paired_packet_init_advertising
+	branch ali_mesh_control_ble_advertising_off_advertising
+	
+
+ali_mesh_control_ble_advertising_send_paired_packet_end_duration:
+	arg mem_mesh_queue_ele_duration,rega
+	call queue_pop
+	call queue_empty
+	nrtn blank
+	
+	jam ADV_PAIRING_MESH_MESSAGE_INTERVAL,mem_mesh_advertising_unprovisioned_device_beacon_interval
+	branch ali_mesh_control_ble_advertising_off_advertising
+
+ali_mesh_send_paired_packet_init_advertising:
+	jam NULL_PACKET_ADVERTISING,mem_mesh_upper_tran_layer_packet_advertising
+	rtn
+
+
+ali_mesh_control_ble_advertising_send_device_beacon_packet:
+	call ali_mesh_config_device_uuid_by_three_tuple
+	call ali_mesh_send_Unprovisioned_Beacons_tmall
+	call ali_mesh_control_ble_advertising_device_beacon_check_duration
+	nrtn zero			//in advertising beacon duration
+	fetch 1,mem_mesh_provisioned_flag
+	beq SILENCE_BEACON_STATUS,ali_mesh_end_advertising_silence_device_beacon_packet
+	beq UNPROVISIONED_BEACON_STATUS,ali_mesh_end_advertising_unprovisioned_device_beacon_packet
+	rtn
+
+
+//骞挎挱涓娆＄敓瀛樺懆鏈熷噺1
+//output:zero is end of duration
+ali_mesh_control_ble_advertising_device_beacon_check_duration:
+	fetch 1,mem_mesh_advertising_unprovisioned_device_beacon_duration
+	add pdata,-1,pdata
+	store 1,mem_mesh_advertising_unprovisioned_device_beacon_duration
+	rtn
+
+//闈欓粯骞挎挱鐢熷瓨鍛ㄦ湡瀹屾垚鍏抽棴骞挎挱
+ali_mesh_end_advertising_silence_device_beacon_packet:
+	jam ADV_SILENCE_DEVICE_BEACON_INTERVAL,mem_mesh_advertising_unprovisioned_device_beacon_interval
+	branch ali_mesh_control_ble_advertising_off_advertising
+	
+//鏈厤缃戝箍鎾敓瀛樺懆鏈熷畬鎴愬叧闂箍鎾
+ali_mesh_end_advertising_unprovisioned_device_beacon_packet:
+	jam ADV_UNPROVISIONED_DEVICE_BEACON_DURATION,mem_mesh_advertising_unprovisioned_device_beacon_interval
+	branch ali_mesh_control_ble_advertising_off_advertising
+
+
+ali_mesh_control_ble_advertising_send_pairing_packet:
+	branch mesh_le_send_adv
+
+ali_mesh_chip_timer_check_with_random_timer:
+	fetch 1,mem_mesh_advertising_unprovisioned_device_beacon_switch
+	rtnne DEVICE_BEACON_ON
+ali_mesh_chip_timer_check_with_random_timer_continue:
+	random pdata
+	and pdata,0x07,pdata
+	iadd rega,rega
+//input:queue is timer id
+//rega is timer count
+//regb is cb ptr
+ali_mesh_chip_timer_check:
+	call timer_check
+	nrtn blank
+	copy rega,pdata
+	call timer_init
+	copy regb,pdata
+	branch callback_func
+
+
+//闈欓粯骞挎挱瀹氭椂鍣10min鍚庤繘鍏ラ潤榛樺箍鎾姸鎬
+ali_mesh_advertising_unprovisioned_timer:
+	arg mem_mesh_advertising_unprovisioned_device_beacon_timer,regc
+	arg ali_mesh_advertising_unprovisioned_timeout, regb
+	branch timer_single_step_2B
+
+//瀹氭椂鍣ㄨ秴鏃跺鏋滃綋鍓嶅浜庢湭閰嶇綉骞挎挱鐘舵侊紝杩涘叆闈欓粯骞挎挱
+ali_mesh_advertising_unprovisioned_timeout:
+	fetch 1,mem_mesh_provisioned_flag
+	rtnne UNPROVISIONED_BEACON_STATUS
+	fetch 1,mem_mesh_UUID_FeatureFlag
+	set1 BIT_SILENCE_ADV_FLAG,pdata
+	store 1,mem_mesh_UUID_FeatureFlag
+	jam SILENCE_BEACON_STATUS,mem_mesh_provisioned_flag
+	branch ali_mesh_send_silence_device_beacon_init_advertising
+
+
+//鎺у埗骞挎挱鍙戦侀棿闅欑殑timer
+//涓嶅悓鐘舵佸箍鎾棿闅斾笉涓鏍
+ali_mesh_advertising_unprovisioned_timer_interval_timer:
+	arg mem_mesh_advertising_unprovisioned_device_beacon_interval,regc
+	arg ali_mesh_advertising_unprovisioned_timer_interval_timeout,regb
+	branch timer_single_step
+
+//鎺у埗骞挎挱鍙戦佽秴鏃
+//澶勪簬鏈厤缃戝箍鎾垨鑰呴潤榛樺箍鎾姸鎬侊紝杩涘叆涓嬩竴娆″箍鎾
+//澶勪簬閰嶇綉鐘舵侊紝娓呴櫎閰嶇綉鐘舵
+ali_mesh_advertising_unprovisioned_timer_interval_timeout:
+	fetch 1,mem_mesh_provisioned_flag
+//	beq SILENCE_BEACON_STATUS,ali_mesh_send_silence_device_beacon_init_advertising
+	beq UNPROVISIONED_BEACON_STATUS,ali_mesh_send_unprovisioned_device_beacon_init_advertising
+	beq PAIRED_STATUS,ali_mesh_send_paired_packet_init_advertising
+	rtn
+
+ali_mesh_stop_send_indication_packet:
+	call ali_mesh_advertising_bearer_layer_queue_init
+	call ali_mesh_upper_transport_layer_queue_pop
+	jam 0,mem_mesh_advertising_unprovisioned_device_beacon_interval
+	call ali_mesh_control_ble_advertising_off_advertising
+	branch ali_mesh_send_paired_packet_init_advertising
+
+
+ali_mesh_send_unprovisioned_device_beacon_init_advertising:
+	jam ADV_UNPROVISIONED_DEVICE_BEACON_DURATION,mem_mesh_advertising_unprovisioned_device_beacon_duration
+	branch ali_mesh_control_ble_advertising_on_advertising
+
+
+ali_mesh_send_silence_device_beacon_init_advertising:
+	jam ADV_SILENCE_DEVICE_BEACON_DURATION,mem_mesh_advertising_unprovisioned_device_beacon_duration
+	branch ali_mesh_control_ble_advertising_on_advertising
+
+ali_mesh_network_layer_control_relay_packet:
+	arg ali_mesh_network_layer_control_send_relay_packet,regb
+	arg MESH_ADV_RELAY_MESSAGE_INTERVAL,rega
+	arg mesh_ble_relay_timer,queue
+	branch ali_mesh_chip_timer_check_with_random_timer_continue
+
+ali_mesh_network_layer_control_send_relay_packet:
+	fetch 1,mem_mesh_upper_tran_layer_packet_advertising
+	nrtn blank
+	call ali_mesh_network_layer_init_queue_param
+	arg mem_mesh_queue_ele_temp,rega
+	call queue_get_new_ele
+	nrtn user
+	fetch 1,mem_mesh_queue_ele_duration
+	pincrease -1
+	istore 1,regb
+	call queue_pop,blank	
+	arg mem_mesh_adv_data_len,contw
+	arg mem_mesh_queue_ele_len,contr
+	call memcpy32
+	branch mesh_le_send_adv
+
+
+
+
+
+
+ali_mesh_encrypt_calc_random_data:
+	call ali_mesh_encrypt_calc_random_data_calc_ConfirmationKey
+	call ali_mesh_encrypt_calc_random_data_calc_AuthValueProv
+	call ali_mesh_encrypt_calc_random_data_calc_AuthValueDevice
+	call ali_mesh_encrypt_calc_random_data_calc_ConfirmationCloud
+	call ali_mesh_encrypt_calc_random_data_calc_ConfirmationDevice
+	branch ali_mesh_encrypt_calc_random_data_calc_DeviceKey
+
+
+//calc confirmation key
+//ConfirmationKey=SHA256(Random A||RandomB||"ConfirmationKey")[0:15]
+ali_mesh_encrypt_calc_random_data_calc_ConfirmationKey:
+	call ali_mesh_encrypt_load_randomAB_to_sha256
+	arg mem_mesh_sha256_ConfirmationKey_ascii,contr
+	arg 0xf,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii
+	call ali_mesh_encrypt_base_function_sha256_calc
+	arg memresult,contr
+	arg mem_mesh_Confirmationkey,contw
+	branch memcpy16
+
+
+//calc Auth value prov
+//AuthValueProv = SHA256(PID,MAC,Secret,random B||random A)[0:15]
+ali_mesh_encrypt_calc_random_data_calc_AuthValueProv:
+	call ali_mesh_encrypt_load_three_tuple_to_sha256
+	call ali_mesh_encrypt_load_randomBA_to_sha256
+	call ali_mesh_encrypt_base_function_sha256_calc
+	arg memresult,contr
+	arg mem_mesh_AuthValueProv,contw
+	branch memcpy16
+
+//calc Auth Value Device
+//AuthValueDevice= SHA256(PID,MAC,Secret,random B||random A)[0:15]
+ali_mesh_encrypt_calc_random_data_calc_AuthValueDevice:
+	call ali_mesh_encrypt_load_three_tuple_to_sha256
+	call ali_mesh_encrypt_load_randomAB_to_sha256
+	call ali_mesh_encrypt_base_function_sha256_calc
+	arg memresult,contr
+	arg mem_mesh_AuthValueDevice,contw
+	branch memcpy16
+
+// calc Confirmation Cloud
+//Confirmation Cloud=AES-CMAC(Random B || Random A || AuthValueProv)
+//k=ConfirmationKey
+ali_mesh_encrypt_calc_random_data_calc_ConfirmationCloud:
+	fetch 8,mem_mesh_provisioning_random_A
+	store 8,mem_mesh_ConfirmationCloud_RandomA
+	fetch 8,mem_mesh_provisioning_random_B
+	store 8,mem_mesh_ConfirmationCloud_RandomB
+	
+	arg mem_mesh_calc_ConfirmationCloud_data,contr
+	arg mem_mesh_Confirmationkey,rega
+	arg mem_mesh_ConfirmationCloud,alarm
+	branch ali_mesh_encrypt_base_function_AES_CMAC_32Byte
+
+
+// calc confirmation Device
+//Confirmation Device=AES-CMAC(Random A || Random B || AuthValueDevice)
+//k=ConfirmationKey
+ali_mesh_encrypt_calc_random_data_calc_ConfirmationDevice:
+	arg mem_mesh_calc_ConfirmationDevice_data,contr
+	arg mem_mesh_Confirmationkey,rega
+	arg mem_mesh_ConfirmationDevice,alarm
+	branch ali_mesh_encrypt_base_function_AES_CMAC_32Byte
+
+
+//calc Device Key
+//DeviceKey = SHA256(ConfirmationCloud||"DeviceKey")[0:15]
+ali_mesh_encrypt_calc_random_data_calc_DeviceKey:
+//	call ice_break
+	arg mem_mesh_ConfirmationCloud,contr
+	arg 0x10,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii
+	arg mem_mesh_sha256_DeviceKey_ascii,contr
+	arg 9,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii
+	call ali_mesh_encrypt_base_function_sha256_calc
+	arg memresult,contr
+	arg mem_mesh_Device_Key,contw
+	branch memcpy16
+
+
+ali_mesh_encrypt_load_randomBA_to_sha256:
+	call ali_mesh_encrypt_load_randomB_to_sha256
+ali_mesh_encrypt_load_randomA_to_sha256:
+	arg mem_mesh_provisioning_random_A,contr
+	branch ali_mesh_encrypt_base_function_sha256_load_data_64bit
+
+ali_mesh_encrypt_load_randomAB_to_sha256:
+	call ali_mesh_encrypt_load_randomA_to_sha256
+ali_mesh_encrypt_load_randomB_to_sha256:
+	arg mem_mesh_provisioning_random_B,contr
+	branch ali_mesh_encrypt_base_function_sha256_load_data_64bit
+
+
+ali_mesh_encrypt_load_three_tuple_to_sha256:
+	arg mem_mesh_three_tuple_ProductID,contr
+	arg 4,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma
+	arg mem_mesh_three_tuple_MAC,contr
+	arg 6,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma
+	arg mem_mesh_three_tuple_secret,contr
+	arg 0x10,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii
+	call ali_mesh_encrypt_base_function_sha256_check_first_load_data
+	branch ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma+2
+
+
+//calc provisioning data
+//Encrupted provisioning data = prov_data XOR SessionKey
+ali_mesh_encrypt_calc_provisioning_data:
+	call ali_mesh_encrypt_calc_provisioning_data_calc_SessionKey
+//	branch ali_mesh_encrypt_calc_provisioning_data_xor_prov_data
+ali_mesh_encrypt_calc_provisioning_data_xor_prov_data:
+	arg mem_mesh_Encrypt_Provisioning_Data,rega
+	arg memresult,regb
+	arg 0xb,loopcnt
+ali_mesh_encrypt_calc_provisioning_data_xor_prov_data_loop:
+	ifetch 2,rega
+	ifetcht 2,regb
+	ixor temp,pdata
+	istore 2,rega
+	increase 2,rega
+	increase 2,regb
+	loop ali_mesh_encrypt_calc_provisioning_data_xor_prov_data_loop
+	rtn
+
+
+//calc SessionKey
+//SessionKey = SHA256(ConfirmationCloud||"SessionKey")[0:15]
+//output:sessionKey in memresult
+ali_mesh_encrypt_calc_provisioning_data_calc_SessionKey:
+	arg mem_mesh_ConfirmationCloud,contr
+	arg 0x10,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii
+	arg mem_mesh_sha256_SessionKey_ascii,contr
+	arg 0xa,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii
+	branch ali_mesh_encrypt_base_function_sha256_calc
+
+
+
+ali_mesh_encrypt_calc_network_key_by_k2:
+	arg mem_mesh_Network_Key,contr
+	arg mem_k2_N,contw
+	call memcpy16
+
+
+//input:mem_k2_N N data
+ali_mesh_encrypt_base_function_k2:
+
+	arg mem_k2_N,contr
+	arg mem_k2_SALT,rega
+	arg mem_k2_T,alarm
+	call ali_mesh_encrypt_base_function_AES_CMAC_16Byte
+
+	arg mem_k2_T1,alarm
+	arg 0x01,regb
+	setarg 0
+	call ali_mesh_encrypt_base_function_k2_AES_CMAC_T
+	fetch 1,mem_k2_T1+15
+	and pdata,0x7f,pdata
+	store 1,mem_k2_NID
+
+	arg mem_k2_T2,alarm
+	arg 0x02,regb
+	setarg 0x10
+	arg mem_k2_T1,rega
+	call ali_mesh_encrypt_base_function_k2_AES_CMAC_T
+
+	arg mem_k2_T3,alarm
+	arg 0x03,regb
+	setarg 0x10
+	arg mem_k2_T2,rega
+	branch ali_mesh_encrypt_base_function_k2_AES_CMAC_T
+
+ali_mesh_encrypt_base_function_k4:
+
+	arg mem_mesh_application_key,contr
+	arg mem_k4_SALT,rega
+	arg mem_k4_T,alarm
+	call ali_mesh_encrypt_base_function_AES_CMAC_16Byte
+	arg mem_k4_id6_01,contr
+	arg mem_k4_T,rega
+	arg mem_k4_k4N,alarm
+	setarg 4
+	call ali_mesh_encrypt_base_function_AES_CMAC
+	fetch 1,mem_k4_k4N+15
+	and pdata,0x3f,pdata
+	set1 TRANSPORT_HEAD_BIT_AKF,pdata
+	store 1,mem_mesh_transport_AID
+	rtn
+
+ali_mesh_encrypt_base_function_k3:
+
+	arg mem_mesh_Network_Key,contr
+	arg mem_k3_SALT,rega
+	arg mem_k3_T,alarm
+	call ali_mesh_encrypt_base_function_AES_CMAC_16Byte
+	arg mem_k3_id64_01,contr
+	arg mem_k3_T,rega
+	arg mem_k3_k4N,alarm
+	setarg 5
+	call ali_mesh_encrypt_base_function_AES_CMAC
+
+//	call ali_mesh_proxy_init_adv
+	
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	jam 1,mem_le_adv_enable
+	rtn
+
+
+//
+ali_mesh_encrypt_obfuscation_deceypt_send_message:
+	arg mem_mesh_send_upper_layer_CTL_and_TTL,rega
+	fetch 7,mem_mesh_send_upper_layer_DST	
+	branch ali_mesh_encrypt_obfuscation_deceypt
+ali_mesh_encrypt_obfuscation_deceypt_recevie_message:
+	arg mem_mesh_message_TTL,rega
+	fetch 7,mem_mesh_message_DST
+ali_mesh_encrypt_obfuscation_deceypt:
+	store 7,mem_mesh_Privacy_Plaintext_Privacy_Random
+	setarg 0
+	store 5,mem_mesh_Privacy_Plaintext_Zero_String
+	call ali_mesh_encrypt_generate_PECB
+	fetch 6,mem_mesh_PECB
+	ifetcht 6,rega
+	ixor temp,pdata
+	istore 6,rega
+	rtn
+
+ali_mesh_encrypt_generate_PECB:
+ali_mesh_encrypt_generate_privacy_random:
+	fetch 4,mem_mesh_IV_Index
+	store 4,mem_mesh_Privacy_Plaintext_IV_Index
+// generate PECB with AES-128/ function e
+ali_mesh_encrypt_base_function_generate_PECB:
+	arg mem_k2_PrivacyKey,contr
+	call load_key
+	arg mem_mesh_Privacy_Plaintext,contr
+	call load_data128
+	call do_aes_ocb
+	arg mem_mesh_PECB,contw
+	branch store_aes_result
+
+
+
+//input  : (big endian)
+// data addr : contr
+// point : call clear_sha256_chunk
+ali_mesh_encrypt_base_function_sha256_load_data_64bit:
+	arg 8,loopcnt
+//input  : (big endian)
+// data addr : contr
+// data len : loopcnt
+// point : call clear_sha256_chunk
+ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii:
+	call ali_mesh_encrypt_base_function_sha256_check_first_load_data
+	call ali_mesh_encrypt_base_function_hex2ascii
+	branch ali_mesh_encrypt_base_function_sha256_store_dataptr
+ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii:
+	call ali_mesh_encrypt_base_function_sha256_check_first_load_data
+	call memcpy
+	branch ali_mesh_encrypt_base_function_sha256_store_dataptr
+ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma:
+	call ali_mesh_encrypt_base_function_sha256_check_first_load_data
+	call ali_mesh_encrypt_base_function_hex2ascii
+	setarg COMMA
+	istore 1,contw
+ali_mesh_encrypt_base_function_sha256_store_dataptr:
+	copy contw,pdata
+	store 2,mem_mesh_sha256_data_end_addr
+	rtn
+ali_mesh_encrypt_base_function_sha256_check_first_load_data:
+	copy contr,temp
+	copy loopcnt,rega
+	fetch 2,mem_mesh_sha256_data_end_addr
+	copy pdata,contw
+	fetch 1,mem_mesh_sha256_load_first_data_flag
+	call ali_mesh_encrypt_base_function_sha256_first_load_data,blank
+	copy temp,contr
+	copy rega,loopcnt
+	rtn
+ali_mesh_encrypt_base_function_sha256_first_load_data:
+	jam 1,mem_mesh_sha256_load_first_data_flag
+	call ali_mesh_encrypt_base_function_sha256_clear_data_chunk				
+	arg mem_mesh_sha256_chunk_start,contw
+	rtn
+
+ali_mesh_encrypt_base_function_sha256_clear_data_chunk:
+	arg 0x100,loopcnt
+	arg mem_mesh_sha256_chunk_start,contw
+	branch memset0
+
+ // output :
+ // sha256 result : memresult(big endian)
+ali_mesh_encrypt_base_function_sha256_calc:
+ 	call ali_mesh_encrypt_base_function_sha256_load_data_end
+	call ali_mesh_encrypt_base_function_sha256_input_data_init_inverse
+
+	setarg mem_mesh_sha256_chunk_start
+	store 2,mem_mesh_sha256_chunk_ptr
+	call sha_init
+//	call ice_break
+ali_mesh_encrypt_base_function_sha256_calc_loop:
+	fetch 2,mem_mesh_sha256_chunk_ptr
+	copy pdata,contr
+	arg mem_dat,contw
+	call memcpy64
+	call sha
+	fetch 2,mem_mesh_sha256_chunk_ptr
+	pincrease 64
+	store 2,mem_mesh_sha256_chunk_ptr
+	fetch 1,mem_mesh_sha256_chunk_count
+	pincrease -1
+	store 1,mem_mesh_sha256_chunk_count
+	nbranch ali_mesh_encrypt_base_function_sha256_calc_loop,blank
+	call sha_result
+	arg memresult,rega
+	arg 0x20,loopcnt
+	call inverse_data
+	rtn
+
+
+ali_mesh_encrypt_base_function_sha256_load_data_end:
+	jam 0,mem_mesh_sha256_load_first_data_flag
+	fetch 2,mem_mesh_sha256_data_end_addr
+	copy pdata,contw
+	arg 0x80,temp	//绗竴涓猙it琛1锛屽悗闈㈣ˉ0
+	istoret 1,contw
+	arg mem_mesh_sha256_chunk_start,temp
+	isub temp,pdata
+	store 8,mem_mesh_sha256_data_len_byte
+	//璁＄畻bit鏁
+	lshift3 pdata,temp
+	storet 8,mem_mesh_sha256_data_len_bit
+	rshift4 pdata,regc
+	rshift2 regc,regc
+	and pdata,0x3f,pdata
+	sub pdata,55,null
+//55-(len mod 63)<0,鍐呭瓨濉厖448浠ュ悗鐨勶紝闇瑕佸～鍏呭埌绗簩鍧
+	ncall ali_mesh_encrypt_base_function_sha256_add_chunk,positive
+	add regc,1,pdata
+	store 1,mem_mesh_sha256_chunk_count
+	mul32 pdata,64,rega		//璁＄畻鍧楃殑鏁伴噺鍦板潃
+	lshift4 pdata,regc			//璁＄畻4byte鍖呯殑鏁伴噺
+	increase -1,regc			//鏈濂戒竴涓寘闀垮害涓嶄氦鎹
+	setarg mem_mesh_sha256_chunk_start + DECREASED_FOUR
+	iadd rega,rega
+	fetch 4,mem_mesh_sha256_data_len_bit
+	istore 4,rega
+	rtn
+
+
+//澧炲姞鍧楁暟閲
+ali_mesh_encrypt_base_function_sha256_add_chunk:
+	increase 1,regc
+	rtn
+	
+ali_mesh_encrypt_base_function_sha256_input_data_init_inverse:
+	arg mem_mesh_sha256_chunk_start,rega
+
+//姣4涓瓧鑺傦紝闇瑕侀珮浣庝綅浜ゆ崲涓涓
+//input :
+// data addr : rega
+ali_mesh_encrypt_base_function_sha256_data_inverse_4Byte:
+	arg 4,loopcnt
+	call inverse_data
+	increase 2,rega	
+	add regc,-1,regc
+	nbranch ali_mesh_encrypt_base_function_sha256_data_inverse_4Byte,zero
+	rtn
+
+
+// input : 
+// data ptr : contr
+// data save ptr : contw 
+// data len : loopcnt
+ali_mesh_encrypt_base_function_hex2ascii:
+	ifetch 1,contr
+	rshift4 pdata,temp
+	call ali_mesh_encrypt_base_function_dialog2uchar
+	istoret 1,contw
+	and pdata,0x0f,temp
+	call ali_mesh_encrypt_base_function_dialog2uchar
+	istoret 1,contw
+	loop ali_mesh_encrypt_base_function_hex2ascii
+	rtn
+ali_mesh_encrypt_base_function_dialog2uchar:
+	sub temp,9,null
+	branch ali_mesh_encrypt_base_function_dialog2uchar_num,positive
+	add temp,87,temp
+	rtn
+ali_mesh_encrypt_base_function_dialog2uchar_num:	
+	add temp,48,temp
+	rtn
+
+
+ali_mesh_encrypt_base_function_AES_CMAC_32Byte:
+	setarg 0x20 
+	branch ali_mesh_encrypt_base_function_AES_CMAC
+
+ali_mesh_encrypt_base_function_AES_CMAC_16Byte:
+	setarg 0x10
+	branch ali_mesh_encrypt_base_function_AES_CMAC
+
+
+//pdata:data length
+//regb:last data
+ali_mesh_encrypt_base_function_k2_AES_CMAC_T:
+	fetcht 1,mem_k2_P_len
+	increase 1,temp
+	iadd temp,temp
+	storet 1,mem_AES_CMAC_data_length
+	copy rega,contr
+	copy pdata,loopcnt
+	call memcpy_fast
+	fetcht 1,mem_k2_P_len
+	copy temp,loopcnt
+	call memcpy
+	copy regb,pdata
+	istore 1,contw
+	arg mem_k2_T,rega
+	branch ali_mesh_encrypt_base_function_AES_CMAC + 3
+
+
+//input:
+//pdata:data length
+//contr:data prt
+//rega:key ptr
+//output:
+//alarm:output prt
+ali_mesh_encrypt_base_function_AES_CMAC:
+	store 1,mem_AES_CMAC_data_length
+	copy pdata,loopcnt
+	call memcpy_fast
+	copy rega,contr
+	arg mem_AES_CMAC_k,contw
+	call memcpy16
+	call function_AES_CMAC
+	copy alarm,contw
+	call store_aes_result
+	rtn
+
+
+////////////
+ali_B0_block_generate:
+ 	fetcht 1,mem_ccm_type
+ 	branch  ali_block_generate
+ali_A_block_generate:
+	force 0x01,temp
+ali_block_generate:
+	force regidx_data,regext_index
+	fetch 2,mem_nonce_ptr
+	copy pdata,contr
+	ifetch 3,contr
+	lshift8 pdata,pdata
+	ior temp, regext
+	increase 1,regext_index
+	ifetch 4,contr
+	copy pdata,regext
+	increase 1,regext_index
+	ifetch 4,contr
+	copy pdata,regext
+	increase 1,regext_index
+	byteswap rega,regext
+	lshift16 regext,regext
+	ifetch 2,contr
+	ior regext,regext
+	rtn
+ali_generate_mic:
+	fetch 1,mem_ccm_data_len
+	copy pdata,rega
+	call ali_B0_block_generate
+	call do_aes_ocb
+	force regidx_result,regext_index
+	deposit regext
+	copy rega,loopcnt
+	fetcht 2,mem_ccm_data_ptr
+	copy temp,contr
+	call padding_data
+	branch generate_mic_loop
+ali_CCM_encrypt_64Bit:
+	jam MIC_SIZE_64BIT,mem_ccm_type
+	branch ali_CCM_encrypt_function
+ali_CCM_encrypt:
+	jam MIC_SIZE_32BIT,mem_ccm_type
+	branch ali_CCM_encrypt_function
+ali_CCM_encrypt_function:
+	store 1,mem_ccm_data_len
+	storet 2,mem_ccm_data_ptr
+	bpatchx patch34_5,mem_patch34
+	call ali_generate_mic
+	force regidx_xor,regext_index
+	iforce regext
+	force regidx_result+1,regext_index
+	copy regext,pdata
+	force regidx_xor+1,regext_index
+	iforce regext
+	force 0,rega
+	copy temp,regc
+	call ali_A_block_generate
+	call do_aes_ctr
+	call ali_fetcht_ccm_mic
+	storet 8,mem_ccm_mic
+	fetch 1,mem_ccm_data_len
+	copy pdata,regb
+	call ali_aes_crypt_data
+	fetcht 1,mem_ccm_data_len
+	fetch 2,mem_ccm_data_ptr
+	iadd temp,rega
+	fetcht 8,mem_ccm_mic
+	istoret 4,rega
+	fetch 1,mem_ccm_type
+	sub pdata,MIC_SIZE_32BIT,pdata
+	rtn blank
+	istoret 8,rega
+	rtn
+ali_CCM_decrypt_64Bit:
+	jam MIC_SIZE_64BIT,mem_ccm_type
+	branch ali_CCM_decrypt_function
+ali_CCM_decrypt:
+	jam MIC_SIZE_32BIT,mem_ccm_type
+	branch ali_CCM_decrypt_function
+
+ali_CCM_decrypt_function:
+	store 1,mem_ccm_data_len
+	storet 2,mem_ccm_data_ptr
+	copy temp,regc
+	copy pdata,regb
+	iadd regc,contr
+	bpatchx patch34_6,mem_patch34
+	ifetch 8,contr
+	force regidx_xor,regext_index
+	iforce regext
+	force regidx_xor+1,regext_index
+	rshift32 pdata,pdata
+	iforce regext
+	force 0,rega
+	call ali_A_block_generate
+	call do_aes_ctr
+	call ali_fetcht_ccm_mic
+	storet 8,mem_ccm_mic
+	call ali_aes_crypt_data
+	call ali_generate_mic
+	call ali_fetcht_ccm_mic
+	fetch 1,mem_ccm_type
+	beq MIC_SIZE_64BIT,ali_CCM_decrypt_function_check_mic64
+	storet 4,mem_ccm_mic+4
+	fetch 4,mem_ccm_mic
+	fetcht 4,mem_ccm_mic+4
+	isub temp,pdata
+	rtn
+
+ali_CCM_decrypt_function_check_mic64:
+	fetch 8,mem_ccm_mic
+	isub temp,pdata
+	rtn
+
+ali_fetcht_ccm_mic:
+	force regidx_result,regext_index
+	deposit regext
+	force regidx_result+1,regext_index
+	copy regext,temp
+	lshift16 temp,temp
+	lshift16 temp,temp
+	ior temp,temp
+   	rtn
+ali_aes_crypt_data: 
+	increase 1,rega
+	call ali_A_block_generate
+	copy regc,contr
+	call aes_load_xor
+	call do_aes_ctr
+	call store_enc_data
+	increase 16,regc
+	increase -16,regb
+	branch ali_aes_crypt_data,positive
+	rtn
+////////////
+
+
+
+
+
+
+
+
+mesh_send_Unprovisioned_Beacons:
+	bpatchx patch34_7,mem_patch34
+	jam UNPROVISIONED_BEACON_STATUS,mem_mesh_provisioned_flag
+	jam 0x00,mem_mesh_Provisioning_State_Flag
+	jam 1,mem_mesh_advertising_unprovisioned_device_beacon_switch
+	setarg ADV_UNPROVISIONED_DEVICE_BEACON_TIMEOUT
+	store 2, mem_mesh_advertising_unprovisioned_device_beacon_timer
+	rtn
+
+//鍒濆鍖朥UID 涓夊厓缁勫弬鏁板拰feature Flag
+ali_mesh_config_device_uuid_by_three_tuple:
+	setarg COMPANY_IDENTIFIERS_ALIBABA
+	store 2,mem_mesh_Device_UUID
+	fetch 1,mem_mesh_Device_PID
+	istore 1,contw
+	fetch 4,mem_mesh_three_tuple_ProductID
+	call inverse_data_4Byte
+	istore 4,contw
+	fetch 6,mem_le_lap
+	istore 6,contw
+	fetch 3,mem_mesh_UUID_FeatureFlag
+	istore 3,contw
+	rtn
+
+ali_mesh_send_Unprovisioned_Beacons_tmall:
+	call ali_mesh_init_adv_data_tmall_Unprovisioned_beacons_package
+	branch mesh_le_send_adv
+
+ali_mesh_init_adv_data_tmall_Unprovisioned_beacons_package:
+//mem Beacon Tmall Length
+	jam 0x15,mem_mesh_adv_data_len
+	setarg 0x14
+	store 1,mem_mesh_adv_data
+	setarg GAP_ADTYPE_MESH_BEACON
+	istore 1,contw
+	setarg UNPROVISIONED_DEVICE_BEACON
+	istore 1,contw
+ali_mesh_advertising_send_Unprovisioned_Beacons_store_device_uuid:
+	arg mem_mesh_Device_UUID,contr
+	call memcpy16
+	fetch 2,mem_mesh_OOB_information
+	istore 2,contw
+	rtn
+
+
+ali_mesh_receive_adtype_manufacturer_specific:
+	call ali_mesh_receive_provisioning_package_check_header
+	nrtn user
+	ifetch 1,contr	//provisioning type
+	beq PROVISIONING_RANDOM,ali_mesh_advertising_receive_Privisioning_Random
+	beq PROVISIONING_DATA,ali_mesh_decrypt_tmall_Privisioning_Data_package
+	bpatchx patch35_0,mem_patch35
+	rtn
+
+
+//receive provisioning random
+ali_mesh_advertising_receive_Privisioning_Random:
+	call ali_mesh_advertising_receive_Privisioning_Random_check_states
+	nrtn user
+ali_mesh_advertising_calc_encrypt_random_data:
+	call ali_mesh_encrypt_calc_random_data
+//	call mesh_reset_adv_timer
+	call ali_mesh_advertising_send_Provisioning_Confirmation
+	call ali_mesh_send_pairing_data
+	rtn
+//send provisioning confirmation
+ali_mesh_advertising_send_Provisioning_Confirmation:
+	arg PROVISIONING_PACKET_CONFIRMATION_MAC+PROVISIONING_PACKET_CONFIRMATION_DEVICE,temp
+	call ali_mesh_advertising_send_packet_common
+	setarg PROVISIONING_CONFIRMATION
+	istore 1,contw
+	fetch 2,mem_mesh_three_tuple_MAC+4
+	istore 2,contw
+	arg mem_mesh_ConfirmationDevice,contr
+	branch memcpy16
+
+//output:disable user mean is cannot true package
+ali_mesh_advertising_receive_Privisioning_Random_check_states:
+	call disable_user
+	ifetcht 2,contr
+	arg mem_mesh_provisioning_random_A,contw
+	call memcpy16
+	fetch 2,mem_mesh_three_tuple_MAC+4
+	isub temp,null
+	nrtn zero	
+
+	
+	fetch 1,mem_mesh_Provisioning_State_Flag
+	rtnbit1 RECEIVE_PROVISIONING_RANDOM
+	set1 RECEIVE_PROVISIONING_RANDOM,pdata			// FLAG bit1:Provisioning Confirmation
+	store 1,mem_mesh_Provisioning_State_Flag
+
+	jam PAIRING_STATUS,mem_mesh_provisioned_flag		//
+	branch enable_user
+
+ali_mesh_decrypt_tmall_Privisioning_Data_package:
+	call ali_mesh_advertising_receive_Privisioning_Data
+	fetcht 2,mem_mesh_provisioning_data_Mac_addr
+	fetch 2,mem_mesh_three_tuple_MAC+4
+	isub temp,null
+	nrtn zero
+	call ali_mesh_encrypt_base_function_k3
+	call ali_mesh_send_pairing_data
+	fetch 1,mem_mesh_fast_pair_packet_type
+	rtnne MESH_MESSAGE_PROXY
+	jam WAIT_RECEIVE_APPKEY,mem_mesh_provisioned_flag
+	rtn
+
+//receive provisioning data
+ali_mesh_advertising_receive_Privisioning_Data:
+	bpatchx patch35_1,mem_patch35
+	copy contr,rega
+	fetch 1,mem_mesh_provisioned_flag
+	rtneq PAIRED_STATUS	
+	fetch 1,mem_mesh_Provisioning_State_Flag
+	rtnbit0 RECEIVE_PROVISIONING_RANDOM
+	rtnbit1 RECEIVE_PROVISIONING_DATA
+	copy rega,contr
+	arg 0x16,loopcnt
+	arg mem_mesh_Encrypt_Provisioning_Data,contw
+	call memcpy
+
+	call ali_mesh_encrypt_calc_provisioning_data
+	
+	fetcht 2,mem_mesh_provisioning_data_Mac_addr
+	fetch 2,mem_mesh_three_tuple_MAC+4
+	isub temp,null
+	nrtn zero
+ali_mesh_resolve_Privisioning_Data_package:
+	fetch 1,mem_mesh_Provisioning_State_Flag
+	set1 RECEIVE_PROVISIONING_DATA,pdata
+	store 1,mem_mesh_Provisioning_State_Flag
+
+	call ali_mesh_encrypt_calc_network_key_by_k2
+
+	fetch 1,mem_mesh_last_IV_Index_byte
+	store 1,mem_mesh_IV_Index+3
+	call ali_mesh_advertising_send_Provisioning_Complete
+	rtn
+
+
+//send provisioning complete
+ali_mesh_advertising_send_Provisioning_Complete:
+	arg PROVISIONING_PACKET_COMPLETE_MAC,temp
+	call ali_mesh_advertising_send_packet_common
+	setarg PROVISIONING_COMPLETE
+	istore 1, contw
+	fetch 6,mem_mesh_three_tuple_MAC
+	istore 6,contw
+	rtn
+
+
+ali_mesh_advertising_send_packet_common:
+	bpatchx patch35_2,mem_patch35
+	setarg FAST_PAIRING_TIMEOUT_PROVISIONING		//about 11s
+	store 2,mem_mesh_fast_pairing_timer
+	fetch 1,mem_mesh_fast_pair_packet_type
+	sub pdata,MESH_MESSAGE_TMALL,null
+	call ali_mesh_control_ble_advertising_on_advertising,zero
+	ncall ali_mesh_control_ble_advertising_off_advertising,zero
+	add temp,PROVISIONING_PACKET_LENGTH_AD_TYPE_COMPANY_ID_VID_PROVISIONING_TYPE+PROVISIONING_PACKET_LENGTH_FLAGS,pdata
+	store 1,mem_mesh_adv_data_len
+	call ali_mesh_advertising_add_adtype_flags
+	add temp,PROVISIONING_PACKET_AD_TYPE_COMPANY_ID_VID_PROVISIONING_TYPE,pdata
+	istore 1,contw
+	setarg GAP_ADTYPE_MANUFACTURER_SPECIFIC
+	istore 1,contw
+	setarg COMPANY_IDENTIFIERS_ALIBABA
+	byteswap pdata,pdata
+	istore 2,contw
+	fetch 1,mem_mesh_receive_VID
+	istore 1,contw
+	rtn
+
+
+
+
+
+
+
+
+
+
+ali_mesh_receive_provisioning_package_check_header:
+	call disable_user
+	ifetcht 2,contr
+	setarg COMPANY_IDENTIFIERS_ALIBABA
+	byteswap pdata,pdata
+	isub temp,null
+	nrtn zero	
+	ifetch 1,contr
+	store 1,mem_mesh_receive_VID
+	branch enable_user
+//	rtn
+
+ali_mesh_fast_pairing_timer:
+	arg mem_mesh_fast_pairing_timer,regc
+	arg ali_mesh_fast_pairing_timeout, regb
+	branch timer_single_step_2B
+
+ali_mesh_fast_pairing_timeout:
+ali_mesh_fast_pairing_failed:
+	branch ali_mesh_advertising_init_send_unprovisioned_device_beacon
+//	branch ali_mesh_app_prov_fail
+
+
+
+
+
+
+ali_mesh_access_layer_config_or_health_message_opcode:
+	fetch 1,mem_mesh_configuration_health_message_opcode
+	beq MESH_MESSAGE_OPCODE_CONFIG_COMPOSITION_DATA_GET_NO_HEAD,ali_mesh_access_layer_config_composition_data
+	beq MESH_MESSAGE_OPCODE_CONFIG_NODE_RESET_NO_HEAD,ali_mesh_access_layer_config_or_health_message_opcode_node_reset
+	beq MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_NO_HEAD,ali_mesh_message_config_modle_subscription_add
+	beq MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_DELETE_NO_HEAD,ali_mesh_message_config_modle_subscription_delete
+//ifdef TM_OVERWRTE
+	beq MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_OW_NO_HEAD, ali_mesh_message_config_modle_subscription_add_overwrite
+//endif
+	rtn
+
+ali_mesh_message_config_modle_subscription_add_overwrite:
+	call ali_mesh_message_config_modle_subscription_check_element
+	call ali_mesh_message_config_modle_subscription_add_value_address_ow
+	call ali_mesh_message_config_modle_subscription_save	
+	setarg MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_OW_STATUS
+	istore 1,contw
+	
+	setarg MESH_SUCCESS
+	istore 1,contw
+	fetch 2,mem_mesh_subscription_element_address_ow
+	istore 2,contw
+
+	fetch 1, mem_mesh_receive_model_message_payload_len
+	arg 4, temp
+	isub temp, loopcnt
+	arg mem_mesh_subscription_list_num_ow, contr
+	call memcpy
+	fetch 1, mem_mesh_receive_model_message_payload_len
+	pincrease 1
+	store 1,mem_mesh_access_layer_payload_len
+
+	
+	arg 0, queue
+	branch ali_mesh_ali_vendor_message_send_message
+
+ali_mesh_message_config_modle_subscription_add_value_address_ow:
+	fetch 1, mem_mesh_subscription_list_num_ow
+	rtn blank
+	sub pdata, SUBSCRIPTION_MAX_COUNT, null
+	ncall ali_mesh_message_config_modle_subscription_set_addr_max, positive
+	iforce loopcnt
+	arg mem_mesh_subscription_value_address_start_ow, contr
+	add rega, 2, contw   //skip mem_mesh_init_first_element_group_address
+	branch  ali_mesh_byte_swap    
+
+ali_mesh_byte_swap:
+	ifetch 2, contr
+	byteswap pdata, pdata
+	istore 2, contw
+	loop ali_mesh_byte_swap
+	rtn
+
+ali_mesh_message_config_modle_subscription_set_addr_max:
+//	jam SUBSCRIPTION_MAX_COUNT, mem_mesh_subscription_list_num_ow
+	setarg SUBSCRIPTION_MAX_COUNT
+	rtn
+
+ali_mesh_access_layer_config_composition_data:
+	jam RECEIVE_CONFIG_COMPOSITION_DATA_GET, mem_mesh_provisioned_flag
+	setarg MESH_MESSAGE_OPCODE_CONFIG_COMPOSITION_DATA_STATUS
+	store 1,mem_mesh_access_layer_payload
+	setarg 0x00
+	istore 1,contw
+	setarg COMPANY_IDENTIFIERS_ALIBABA
+	istore 2,contw		//CID
+	setarg 0x0000
+	istore 2,contw		//PID
+	setarg 0x0001
+	istore 2,contw		//VID
+	setarg 0x0005
+	istore 2,contw		//Replay Protect list
+	setarg 0x0003
+	istore 2,contw		//feature Relay and Proxy
+	setarg 0x0000
+	istore 2,contw		//Loc
+	setarg 0x02
+	istore 1,contw		//Number of sig models
+	setarg 0x02	
+	istore 1,contw		//Number of vendor models
+	setarg 0x0000
+	istore 2,contw		
+	setarg 0x1000
+	istore 2,contw		//Generic OnOff Server
+	setarg 0x000001a8
+	istore 4,contw
+	setarg 0x000101a8
+	istore 4,contw		//
+	jam 28,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+ali_mesh_access_layer_config_or_health_message_opcode_node_reset:
+	jam HEALTH_NODE_RESET_TIMEOUT,mem_mesh_health_node_reset_timer
+//	call ali_mesh_access_layer_send_config_node_reset_status
+//	fetch 2,mem_mesh_cb_receive_node_reset
+//	branch callback_func
+ali_mesh_access_layer_send_config_node_reset_status:
+	setarg MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MESSAGE_OPCODE_CONFIG_NODE_RESET_STATUS_NO_HEAD
+	istore 1,contw
+	jam 2,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+ali_mesh_access_layer_health_node_reset_timer:
+	arg mem_mesh_health_node_reset_timer,regc
+	arg ali_mesh_access_layer_health_node_reset_timeout, regb
+	branch timer_single_step
+
+
+ali_mesh_access_layer_health_node_reset_timeout:
+	call mesh_clear_provisioning_data_only
+//	branch ali_mesh_app_delete_paired
+ali_mesh_app_delete_paired:
+	branch soft_reset_chip
+
+
+ali_mesh_message_config_modle_subscription_add:
+	call ali_mesh_message_config_modle_subscription_status
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_SUBSCRIPTION
+	call ali_mesh_message_config_modle_subscription_check_element
+	call ali_mesh_message_config_modle_subscription_add_value_address
+ali_mesh_message_config_modle_subscription_save:
+	fetch 2,mem_mesh_cb_subscriptuion_list_changed
+	branch callback_func
+
+	
+ali_mesh_message_config_modle_subscription_delete:
+	call ali_mesh_message_config_modle_subscription_status
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_SUBSCRIPTION
+	call ali_mesh_message_config_modle_subscription_check_element
+	fetcht 2,mem_mesh_subscription_value_address
+	rshift8 temp,pdata
+	rshift4 pdata,pdata
+	beq 0x0c,ali_mesh_message_config_modle_subscription_delete_group_addr
+	byteswap temp, temp
+ali_mesh_message_config_modle_subscription_delete_next:
+	call ali_mesh_message_config_modle_subscription_check_value_address
+	nrtn user
+	setarg 0
+	istore 2,rega
+	fetch 2,mem_mesh_cb_subscriptuion_list_changed
+	branch callback_func
+
+ali_mesh_message_config_modle_subscription_delete_group_addr:
+	setarg -1
+	istore SUBSCRIPTION_MAX_COUNT,rega
+	istore SUBSCRIPTION_MAX_COUNT,contw
+	fetch 2,mem_mesh_cb_subscriptuion_list_changed
+	branch callback_func
+
+ali_mesh_message_config_modle_subscription_check_value_address:
+	arg SUBSCRIPTION_MAX_COUNT,loopcnt
+ali_mesh_message_config_modle_subscription_check_value_address_loop:
+	ifetch 2,rega
+	arg 0xffff,regb
+	isub regb,null
+	branch enable_user,zero
+	isub temp,null
+	branch enable_user,zero
+ali_mesh_message_config_modle_subscription_check_value_address_loop_empty:
+	increase 2,rega
+	loop ali_mesh_message_config_modle_subscription_check_value_address_loop
+	branch disable_user
+
+
+ali_mesh_message_config_modle_subscription_status:
+	setarg MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_STATUS_NO_HEAD
+	istore 1,contw
+	setarg MESH_SUCCESS
+	istore 1,contw
+	fetch 6,mem_mesh_subscription_element_address
+	istore 6,contw
+	jam 9,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer
+
+ali_mesh_message_config_modle_subscription_check_element:
+	call mesh_get_element_info_config
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,rega
+	fetch 2,mem_mesh_subscription_element_address
+	fetcht 2,mem_mesh_Unicast_Address
+	byteswap temp,temp
+	isub temp,pdata
+	imul32 regb,pdata
+	iadd rega,rega
+	rtn
+
+ali_mesh_message_config_modle_subscription_add_value_address:
+	fetcht 2,mem_mesh_subscription_value_address
+	arg SUBSCRIPTION_MAX_COUNT,loopcnt
+ali_mesh_message_config_modle_subscription_add_value_address_loop:
+	ifetch 2,rega
+	branch ali_mesh_message_config_modle_subscription_add_value_address_in,blank
+	arg 0xffff,regb
+	isub regb,null
+	branch ali_mesh_message_config_modle_subscription_add_value_address_in,zero
+	increase 2,rega
+	loop ali_mesh_message_config_modle_subscription_add_value_address_loop
+	rtn
+
+ali_mesh_message_config_modle_subscription_add_value_address_in:
+	byteswap temp,temp	//access layer鐨勬暟鎹负灏忕妯″紡锛屽垏鎹负澶х瀛樺偍锛屾柟渚縩etwork layer浣跨敤
+	istoret 2,rega
+	rtn
+
+
+
+
+ali_mesh_init:
+
+	call enable_authrom
+	call init_memp
+	setarg mesh_check_ble_rx_packet
+	store 2,mem_mesh_cb_receive_advertising
+
+	setarg mesh_idle_process
+	store 2,mem_cb_idle_process
+
+	setarg ali_mesh_network_layer_relay_access_message
+	store 2,mem_mesh_cb_network_relay
+
+	setarg ali_mesh_access_layer_recv_cfg_appkey_add_cb
+	store 2,mem_mesh_cb_receive_config_appkey_add
+
+	setarg mesh_store_new_subscriptuion_list_data
+	store 2,mem_mesh_cb_subscriptuion_list_changed
+
+	setarg mesh_store_new_seq_data
+	store 2,mem_mesh_cb_seq_changed
+
+	setarg mesh_cb_event_timer
+	store 2,mem_cb_event_timer
+
+	setarg ali_mesh_access_layer_check_access_message_opcode
+	store 2,mem_mesh_cb_receive_access_message
+
+	setarg mesh_le_receive_data
+	store 2,mem_cb_att_write
+
+	setarg ali_mesh_proxy_process_bb_event
+	store 2,mem_cb_bb_event_process
+
+	setarg mesh_clear_pairing_key
+	store 2,mem_mesh_clear_provisioning_data
+
+	setarg mesh_vendor_timming_chage_cb
+	store 2,mem_mesh_cb_vendor_timing_changed
+	call ali_mesh_vendor_timer_message_read
+
+	jam 36,mem_mesh_adv_scan_channel
+	call ali_mesh_ali_vendor_message_indication_info_reset_tid
+	
+
+	bpatchx patch35_3,mem_patch35
+
+	setarg 0x0428
+	store 2,mem_mesh_upper_tran_layer_queue_each_size
+	call ali_mesh_upper_transport_layer_queue_init
+
+	setarg 0x0422
+	store 2,mem_mesh_queue_each_size
+	call ali_mesh_advertising_bearer_layer_queue_init
+
+	setarg 0x0a22
+	store 2,mem_mesh_network_relay_gatt_queue_each_size
+	call ali_mesh_network_layer_gatt_queue_init
+	call ali_mesh_network_layer_queue_init
+
+//	call mesh_iic_init
+
+	call ali_mesh_network_layer_queue_init
+	
+	call ali_mesh_chip_peripherals_load_data
+	call mesh_inverse_three_tuple_MAC
+//	jam 0xff,mem_mesh_Network_Key
+	fetch 1,mem_mesh_Network_Key
+	beq 0xff,mesh_send_Unprovisioned_Beacons
+	call ali_mesh_upper_transport_layer_clear_tx_buffer
+	call ali_mesh_encrypt_base_function_k3
+	call ali_mesh_encrypt_base_function_k4
+	call ali_mesh_encrypt_calc_network_key_by_k2
+
+	random pdata
+	and pdata,0x1f,pdata
+	add pdata,50,pdata
+	store 2,mem_mesh_report_full_attribute_timer
+	add pdata,5,pdata
+	store 1,mem_mesh_report_power_on_timer
+	rtn
+
+
+
+mesh_inverse_three_tuple_MAC:
+	fetch 6,mem_mesh_three_tuple_MAC
+	call inverse_data_6Byte
+	store 6,mem_le_lap
+	rtn
+
+mesh_get_element_info_config:
+	fetchr loopcnt,1,mem_mesh_element_number
+	fetchr rega,2,mem_mesh_element_device_ptr
+	fetchr regb,2,mem_mesh_element_device_length
+	rtn
+
+
+mesh_idle_process:
+	bpatchx patch35_4,mem_patch35
+	call ali_mesh_time_function
+	call ali_mesh_control_ble_adv_process
+	call ali_mesh_upper_transport_layer_control_packet
+	call ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue
+	call ali_mesh_network_layer_control_relay_packet
+	call ali_mesh_network_layer_check_gatt_relay_packet
+	branch mesh_ble_rx_packet
+
+
+mesh_cb_event_timer:
+	call ali_mesh_control_ble_adv_timer_process
+	call ali_mesh_access_layer_health_node_reset_timer
+	call ali_mesh_fast_pairing_timer
+
+
+	call ali_mesh_report_full_attribute_timer
+	call ali_mesh_report_power_on_timer
+	branch ali_mesh_upper_transport_layer_receive_new_msg_timer
+	
+
+mesh_clear_provisioning_data_only:
+	call mesh_clear_timer_data
+	fetch 2,mem_mesh_clear_provisioning_data
+	branch callback_func
+
+
+
+mesh_clear_timer_data:
+	fetch 1,mem_mesh_chip_select
+	rtnne 2
+	setarg 0x1d000
+	store 3,mem_spi_write_addr
+	branch spid_flash_erase_sector+2
+	
+
+
+ali_mesh_upper_transport_layer_queue_init:
+	call ali_mesh_upper_transport_layer_init_queue_param
+	branch queue_init
+
+ali_mesh_advertising_bearer_layer_queue_init:
+	call ali_mesh_advertising_bearer_layer_init_queue_param
+	branch queue_init
+
+ali_mesh_network_layer_gatt_queue_init:
+	call ali_mesh_network_layer_init_gatt_queue_param
+	branch queue_init
+
+ali_mesh_network_layer_init_gatt_queue_param:
+	setarg mem_mesh_network_relay_gatt_queue_each_size
+	store 2,mem_queue_ptr
+	rtn
+
+ali_mesh_advertising_init_send_unprovisioned_device_beacon:
+	jam 1,mem_le_adv_enable
+	setarg ADV_UNPROVISIONED_DEVICE_BEACON_TIMEOUT
+	store 2,mem_mesh_advertising_unprovisioned_device_beacon_timer
+	fetch 1,mem_mesh_UUID_FeatureFlag
+	set0 BIT_SILENCE_ADV_FLAG,pdata
+	store 1,mem_mesh_UUID_FeatureFlag
+	jam UNPROVISIONED_BEACON_STATUS,mem_mesh_provisioned_flag
+	jam 0x00,mem_mesh_Provisioning_State_Flag
+	jam 0x00,mem_k2_NID
+	branch ali_mesh_send_unprovisioned_device_beacon_init_advertising
+
+
+
+ali_mesh_lower_transport_layer_receive_lower_transport_PDU:
+	bpatchx patch35_5,mem_patch35
+	fetch 1,mem_mesh_message_Transport_Head
+	bbit1 TRANSPORT_HEAD_BIT_SEG,ali_mesh_lower_transport_layer_receive_lower_transport_PDU_segmented_message
+	jam 0,mem_mesh_ASZMIC
+	branch ali_mesh_upper_transport_layer_receive_unsegmented_access_message
+
+//segmented message reassembly
+ali_mesh_lower_transport_layer_receive_lower_transport_PDU_segmented_message:
+	call ali_mesh_lower_transport_layer_receive_SegAccMess_resolve_SZMIC_SeqZero_SegON
+	rtn user
+	call ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockAck
+	rtn user
+	call ali_mesh_lower_transport_layer_receive_segmented_access_message_store_segment
+	branch ali_mesh_lower_transport_layer_receive_segmented_access_message_decrypt_segment
+
+//鎻愬彇SZMIC/SeqZero/SegO/SegN
+//鍒嗗埆瀛樺偍鍒癝ZMIC銆丼egO銆丼egN銆丼eqZero
+ali_mesh_lower_transport_layer_receive_SegAccMess_resolve_SZMIC_SeqZero_SegON:
+	call disable_user
+	arg 3,loopcnt
+	arg mem_mesh_message_segment_access_SZMIC_SeqZero_SegO_SegN,rega
+	call inverse_data
+	fetchr rega, 3,mem_mesh_message_segment_access_SZMIC_SeqZero_SegO_SegN
+	and rega,0x1f,temp
+	storet 1,mem_mesh_segmented_access_message_SegN
+	fetch 1, mem_mesh_segmented_access_message_SegN_upper_limit
+	isub temp, null
+	nbranch enable_user, positive
+	
+	rshift4 rega,pdata
+	rshift pdata,pdata
+	and pdata,0x1f,temp
+	storet 1,mem_mesh_segmented_access_message_SegO
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	arg 0x1fff,rega
+	iand rega,temp
+	copy pdata,regb
+	fetch 2,mem_mesh_segmented_access_message_SeqZero
+	isub temp,null
+	ncall ali_mesh_lower_transport_layer_receive_segmented_access_message_recover_SeqZero,zero
+	storet 2,mem_mesh_segmented_access_message_SeqZero
+	rshift8 regb,pdata
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	store 1,mem_mesh_segmented_access_message_SZMIC
+	store 1,mem_mesh_ASZMIC
+	rtn
+
+ali_mesh_lower_transport_layer_receive_segmented_access_message_recover_SeqZero:
+	setarg 0
+	store 4,mem_mesh_segmented_access_message_BlockAck
+	jam 0,mem_mesh_segmented_access_message_current_length
+	rtn
+
+
+//妫鏌lockAck鏍囧織,杩斿洖鍊糾em_mesh_segmented_access_message_receive_finish
+//1琛ㄧず鏀跺埌鎴愬姛
+ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockAck:
+	call disable_user
+	fetch 1,mem_mesh_segmented_access_message_SegO
+	copy pdata,queue
+	fetch 4,mem_mesh_segmented_access_message_BlockAck
+	qisolate1 pdata
+	branch enable_user,true
+	qset1 pdata
+	store 4,mem_mesh_segmented_access_message_BlockAck
+	fetcht 1,mem_mesh_segmented_access_message_SegN
+	add temp,1,loopcnt
+ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockAck_loop:
+	add loopcnt,-1,queue
+	qisolate1 pdata
+	nrtn true
+	loop ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockAck_loop
+	jam 1,mem_mesh_segmented_access_message_receive_finish
+	rtn
+
+
+//瀛樺偍segment m鍐呭锛屾斁鍒癿em_mesh_segmented_access_message_SegO
+ali_mesh_lower_transport_layer_receive_segmented_access_message_store_segment:
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	pincrease -6	//DST(2) Head(1) SZMIC_SeqZero_SegO_SegN(3)
+	copy pdata,loopcnt 
+	fetcht 1,mem_mesh_segmented_access_message_current_length
+	iadd temp,temp
+	storet 1,mem_mesh_segmented_access_message_current_length
+	fetch 2, mem_mesh_segmented_access_message_Segment_ptr
+	iforce contw
+	fetch 1,mem_mesh_segmented_access_message_SegO
+	mul32 pdata,12,pdata
+	iadd contw,contw
+	arg mem_mesh_message_Transport_segmented_access_messagePDU_Segment,contr
+	branch memcpy
+
+//鍒ゆ柇鏄惁鏀跺畬鍖咃紝鏀跺畬鍖咃紝clear涓棿鏍囧織
+ali_mesh_lower_transport_layer_receive_segmented_access_message_decrypt_segment:
+	fetch 1,mem_mesh_segmented_access_message_receive_finish
+	rtneq 0
+	setarg 0
+	store 5,mem_mesh_segmented_access_message_BlockAck
+	fetcht 2,mem_mesh_message_SEQ+1
+	byteswap temp,temp
+	setarg 0xe000
+	iand temp,temp
+	fetch 2,mem_mesh_segmented_access_message_SeqZero
+	ior temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_mesh_message_SEQ+1	//璁＄畻Application Nonce闇瑕佷娇鐢ㄥ埌鍒濆鐨凷EQ
+	branch ali_mesh_upper_transport_layer_receive_segmented_access_message
+
+
+//Unsegmented access message鍐欏叆SEG銆丄KF銆丄ID
+ali_mesh_lower_transport_layer_send_unsegmented_access_message:
+	fetch 1,mem_mesh_upper_transport_layer_payload_len
+	add pdata,1,temp
+	copy pdata,loopcnt
+	storet 1,mem_mesh_lower_transport_layer_payload_len
+	fetch 1,mem_mesh_message_Transport_Head
+	set0 TRANSPORT_HEAD_BIT_SEG,pdata
+	store 1,mem_mesh_unsegmented_access_lower_transport_layer_head
+	arg mem_mesh_access_layer_payload,contr
+	call memcpy_fast
+	branch ali_mesh_network_layer_send_access_message
+
+//segmented access message鍐欏叆SEG銆丄KF銆丄ID
+//input:rega is current segment payload length
+//contr is current segment payload ptr
+ali_mesh_lower_transport_layer_send_segmented_access_message:
+	add rega,4,temp
+	copy rega,loopcnt
+	storet 1,mem_mesh_lower_transport_layer_payload_len
+	arg mem_mesh_segmented_access_lower_transport_layer_parameters,contw
+	call memcpy_fast
+	fetch 1,mem_mesh_message_Transport_Head
+	set1 TRANSPORT_HEAD_BIT_SEG,pdata
+	store 1,mem_mesh_segmented_access_lower_transport_layer_head
+	branch ali_mesh_network_layer_send_access_message
+
+
+
+
+ali_mesh_model_layer_check_model_message_opcode:
+	fetch 1,mem_mesh_module_message_opcode
+ali_mesh_model_layer_check_generic_OnOff_message_opcde:
+	beq MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_GET_NO_HEAD,ali_mesh_model_layer_message_opcode_generic_onoff_get
+	beq MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_SET_NO_HEAD,ali_mesh_model_layer_message_opcde_generic_onoff_set
+	beq MESH_MODULE_MESSAGE_OPCODE_SCENE_RECALL_NO_HEAD,ali_mesh_model_layer_message_opcde_scene_recall
+	beq MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_SET_NO_HEAD,ali_mesh_model_layer_message_opcde_light_lightness_set
+	beq MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_SET_NO_HEAD,ali_mesh_model_layer_message_opcde_light_ctl_set
+	rtn
+
+
+ali_mesh_model_layer_message_opcode_generic_onoff_get:
+	arg ali_mesh_model_layer_message_opcode_generic_onoff_get_cb,regc
+	branch ali_mesh_more_element_check_element_address
+ali_mesh_model_layer_message_opcode_generic_onoff_get_cb:
+	//input queue is element number
+	//output pdata is element generic OnOff status
+	fetch 2,mem_mesh_cb_generic_onoff_get
+	call callback_func
+	store 1,mem_mesh_generic_onoff_set_payload_OnOff
+	branch ali_mesh_access_layer_send_generic_onoff_status
+
+
+ali_mesh_model_layer_message_opcde_generic_onoff_set:
+	arg ali_mesh_model_layer_message_opcde_generic_onoff_set_cb,regc
+	branch ali_mesh_more_element_check_element_address
+ali_mesh_model_layer_message_opcde_generic_onoff_set_cb:
+	call ali_mesh_access_layer_send_generic_onoff_status
+	fetch 2,mem_mesh_cb_generic_onoff_set
+	branch callback_func
+
+
+//妯″紡璁剧疆
+ali_mesh_model_layer_message_opcde_scene_recall:
+	call ali_mesh_access_layer_send_scene_status
+	fetch 2,mem_mesh_cb_scene_recall
+	branch callback_func
+
+
+ali_mesh_model_layer_message_opcde_light_lightness_set:
+	fetch 2,mem_mesh_light_lightness_set_payload_lightness
+	call ali_mesh_model_layer_message_calc_lightness
+	store 1,mem_mesh_light_lightness_calc_lightness
+	call ali_mesh_access_layer_send_light_lightness_status
+	fetch 2,mem_mesh_cb_light_lightness_set
+	branch callback_func
+
+
+ali_mesh_model_layer_message_opcde_light_ctl_set:
+	fetch 2,mem_mesh_last_CTL_Temperature
+	fetcht 2,mem_mesh_CTL_Temperature
+	isub temp,null
+	rtn zero
+
+	fetch 2,mem_mesh_CTL_Temperature
+	call ali_mesh_model_layer_message_calc_temperature
+	store 1,mem_mesh_CTL_calc_temperature
+
+	fetch 2,mem_mesh_CTL_Temperature
+	store 2,mem_mesh_last_CTL_Temperature
+	fetch 2,mem_mesh_cb_light_lightness_get
+	call callback_func
+	storet 2,mem_mesh_CTL_Lightness
+	call ali_mesh_access_layer_send_light_ctl_stauts
+	fetch 2,mem_mesh_cb_light_ctl_set
+	branch callback_func
+
+
+//input: pdata is lightness set by ali
+//output: pdata is lightness 0-100
+ali_mesh_model_layer_message_calc_lightness:
+	rtn blank
+	mul32 pdata,ALI_MESH_LIGHTNESS_LEVEL,pdata
+	arg ALI_MESH_LIGHTNESS_MAX,temp
+	idiv temp
+	call wait_div_end
+	remainder temp
+	rshift8 temp,temp
+	quotient pdata
+	sub temp,0xff,null
+	nrtn zero
+	pincrease 1
+	rtn
+
+
+//input: temp is lightness 0-100
+//output: temp is lightness set by ali
+ali_mesh_model_layer_message_calc_actual_lightness:
+	arg ALI_MESH_LIGHTNESS_MAX,pdata
+	imul32 temp,pdata
+	div pdata,ALI_MESH_LIGHTNESS_LEVEL
+	call wait_div_end
+	quotient temp
+	rtn
+
+//input: pdata is temperature set by ali
+//output: pdata is temperature 0-100
+ali_mesh_model_layer_message_calc_temperature:
+	arg ALI_MESH_TEMPERATURE_MIN,temp
+	isub temp,rega
+	call ali_mesh_model_layer_message_calc_temperature_k
+	copy rega,pdata
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	rtn
+
+
+//input: temp is temperature 0-100
+//output: temp is temperature set by ali
+ali_mesh_model_layer_message_calc_actual_temperature:
+	copy temp,rega
+	call ali_mesh_model_layer_message_calc_temperature_k
+	copy rega,pdata
+	imul32 temp,pdata
+	arg ALI_MESH_TEMPERATURE_MIN,temp
+	iadd temp,temp
+	rtn
+
+ali_mesh_model_layer_message_calc_temperature_k:
+	setarg ALI_MESH_TEMPERATURE_MAX
+	arg ALI_MESH_TEMPERATURE_MIN,temp
+	isub temp,pdata
+	div pdata,ALI_MESH_TEMPERATURE_LEVEL
+	call wait_div_end
+	quotient temp
+	rtn
+
+
+
+
+ali_mesh_more_element_check_unicast_address:
+	arg 0,queue
+	fetchr loopcnt,1,mem_mesh_element_number
+	call disable_user
+	fetch 2,mem_mesh_Unicast_Address
+ali_mesh_more_element_check_unicast_address_loop:
+	isub temp,null
+	branch ali_mesh_more_element_found_unicast_address_element,zero
+	byteswap pdata,pdata
+	pincrease 1
+	byteswap pdata,pdata
+	increase 1,queue
+	loop ali_mesh_more_element_check_unicast_address_loop
+	rtn
+
+ali_mesh_more_element_found_unicast_address_element:
+	jam 0,mem_mesh_receive_group_address
+	storer queue,1,mem_mesh_receive_element_number
+	call ali_mesh_more_element_calc_queue_address
+	branch enable_user
+
+
+ali_mesh_more_element_check_group_address:
+	arg 0,queue
+	arg 0,regc
+	call mesh_get_element_info_config
+	call disable_user
+ali_mesh_more_element_check_group_address_loop:
+	fetch 2,mem_mesh_core_feature
+	bbit0 MESH_FEATURE_DISABLE_SUBSCRIPTION,ali_mesh_more_element_check_subscription_address
+	ifetch 2,rega
+	isub temp,null
+	call ali_mesh_more_element_found_group_address_element,zero
+ali_mesh_more_element_check_address_common:
+	copy regb,pdata
+	iadd rega,rega
+	increase 1,queue
+	loop ali_mesh_more_element_check_group_address_loop
+	copy regc,pdata
+	rtn blank
+	store 1,mem_mesh_receive_group_address
+	branch enable_user
+
+ali_mesh_more_element_found_group_address_element:
+	qset1 regc
+	rtn
+
+ali_mesh_more_element_check_subscription_address:
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,contr
+	arg SUBSCRIPTION_MAX_COUNT,alarm
+ali_mesh_more_element_check_subscription_address_loop:
+	ifetch 2,contr
+	isub temp,null
+	branch ali_mesh_more_element_found_subscription_address_element,zero
+	increase -1,alarm
+	branch ali_mesh_more_element_check_address_common,zero
+	branch ali_mesh_more_element_check_subscription_address_loop
+
+ali_mesh_more_element_found_subscription_address_element:
+	call ali_mesh_more_element_found_group_address_element
+	branch ali_mesh_more_element_check_address_common
+
+ali_mesh_more_element_check_element_address:
+	arg 0,queue
+	fetch 1,mem_mesh_receive_group_address
+	branch ali_mesh_more_element_check_element_address_no_group_address,blank
+	copy pdata,regb
+	fetchr loopcnt,1,mem_mesh_element_number
+ali_mesh_more_element_check_element_address_loop:
+	storer queue,1,mem_mesh_receive_element_number
+
+	qisolate1 regb
+	call ali_mesh_more_element_check_element_address_no_group_address,true
+	fetchr queue,1,mem_mesh_receive_element_number
+	increase 1,queue
+	loop ali_mesh_more_element_check_element_address_loop
+	rtn
+
+ali_mesh_more_element_check_element_address_no_group_address:
+	call ali_mesh_more_element_push_stack
+	call ali_mesh_more_element_calc_queue_address
+	copy regc,pdata
+	call callback_func
+	branch ali_mesh_more_element_pop_stack
+
+ali_mesh_more_element_push_stack:
+	storer loopcnt,2,mem_mesh_loopcnt_tmep
+	storer rega,2,mem_mesh_rega_temp
+	storer regb,2,mem_mesh_regb_temp
+	storer regc,2,mem_mesh_regc_temp
+	rtn
+
+ali_mesh_more_element_pop_stack:
+	fetchr loopcnt,2,mem_mesh_loopcnt_tmep
+	fetchr rega,2,mem_mesh_rega_temp
+	fetchr regb,2,mem_mesh_regb_temp
+	fetchr regc,2,mem_mesh_regc_temp
+	rtn
+
+
+ali_mesh_more_element_calc_queue_address:
+	bpatchx patch35_6,mem_patch35
+	fetch 2,mem_mesh_Unicast_Address
+	byteswap pdata,pdata
+	iadd queue,pdata
+	byteswap pdata,pdata
+	store 2,mem_mesh_send_message_SRC
+	call mesh_get_element_info_config
+	copy queue,pdata
+	imul32 regb,pdata
+	iadd rega,rega
+	add rega,ELEMENT_DEVICE_UPPER_QUEUE_PTR,contr
+	ifetch 2,contr
+	store,2,mem_queue_ptr
+	rtn
+
+
+
+
+ali_mesh_receive_adtype_mesh_message:
+	jam MESH_MESSAGE_TMALL,mem_mesh_network_packet_type
+//contr is read ptr
+//input:temp is len
+ali_mesh_network_layer_recevice_network_pdu:
+	sub temp,MESH_NETWORK_PACKET_MIN_LENGTH,null
+	rtn positive	
+	sub temp,MESH_NETWORK_PACKET_MAX_LENGTH,null
+	nrtn positive	
+	bpatchx patch35_7,mem_patch35
+	call ali_mesh_network_store_in_mem
+	call ali_mesh_network_layer_check_dup
+	nrtn user
+	call ali_mesh_network_layer_check_NID_IVI
+	nrtn user
+	call ali_mesh_encrypt_obfuscation_deceypt_recevie_message
+	call ali_mesh_network_layer_check_msg
+	nrtn user
+	call ali_mesh_network_layer_store_proxy_unicast_address
+
+	branch ali_mesh_network_layer_recevice_network_pdu_decrypt_NetMIC32
+
+ali_mesh_network_layer_check_dup:
+	call enable_user
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	arg mem_mesh_message_NID+3,contr
+	iadd contr,contr
+	ifetch 4,contr
+	ifetcht 4,contr
+	ixor temp,temp
+	arg 16,loopcnt
+	arg mem_mesh_network_dup_cache,contr
+ali_mesh_network_layer_check_dup_loop:
+	ifetch 4,contr
+	isub temp,null
+	branch disable_user,zero
+	loop ali_mesh_network_layer_check_dup_loop
+	fetch 1,mem_mesh_network_dup_cache_next
+	pincrease 4
+	arg mem_mesh_network_dup_cache,contw
+	iadd contw,contw
+	istoret 4,contw
+	and pdata,0x3f,pdata
+	store 1,mem_mesh_network_dup_cache_next
+	rtn
+
+ali_mesh_network_layer_check_msg:
+	call enable_user
+	fetcht 5,mem_mesh_message_SEQ
+	arg 16,loopcnt
+	arg mem_mesh_network_msg_cache,contr
+ali_mesh_network_layer_check_msg_loop:
+	ifetch 5,contr
+	isub temp,null
+	branch disable_user,zero
+	loop ali_mesh_network_layer_check_msg_loop
+	fetch 1,mem_mesh_network_msg_cache_next
+	pincrease 1
+	and pdata,0x0f,pdata
+	store 1,mem_mesh_network_msg_cache_next
+	mul32 pdata,5,pdata
+	arg mem_mesh_network_msg_cache,contw
+	iadd contw,contw
+	istoret 5,contw
+	rtn
+
+ali_mesh_network_layer_store_proxy_unicast_address:
+	fetch 1,mem_mesh_network_packet_type
+	rtneq MESH_MESSAGE_TMALL
+	fetch 2,mem_mesh_message_SRC
+	store 2,mem_mesh_network_proxy_unicast_address
+	rtn
+
+	
+//ali_mesh_network_layer_recevice_network_pdu_check_NID:
+//	call ali_mesh_network_layer_check_NID_IVI
+//	nrtn user
+//ali_mesh_network_layer_recevice_network_pdu_deceypt_obfuscation:
+//	call ali_mesh_encrypt_obfuscation_deceypt_recevie_message
+//	//fetch 1,mem_mesh_message_TTL
+//	//rtnbit1 BIT_CTL
+//	fetch 1,mem_mesh_message_TTL
+//	nrtn blank
+ali_mesh_network_layer_recevice_network_pdu_decrypt_NetMIC32:
+	call ali_mesh_network_load_network_nonce_and_EncryptionKey
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	arg mem_mesh_message_DST,temp
+	call ali_CCM_decrypt
+	nrtn zero	//NetMIC error
+
+
+ali_mesh_network_layer_recevice_network_pdu_check_DST:
+	bpatchx patch36_0,mem_patch36
+	fetch 1, mem_mesh_network_packet_type
+	sub pdata, MESH_MESSAGE_PROXY, null
+	call ali_mesh_white_filter_check, zero
+	fetcht 2,mem_mesh_message_DST
+	call ali_mesh_more_element_check_unicast_address		//妫鏌ユ墍鏈夊瓙鍏冪礌鐨勫崟鎾湴鍧
+	call ali_mesh_more_found_unicast_address_element,user
+	branch ali_mesh_network_layer_recevice_network_pdu_check_SRC_and_SEQ,user
+	arg 29,loopcnt
+	arg mem_mesh_message_NID_temp,contw
+	arg mem_mesh_message_NID,contr
+	call memcpy
+	call ali_mesh_network_layer_recevice_network_pdu_check_DST_group_address
+	arg 29,loopcnt
+	arg mem_mesh_message_NID_temp,contr
+	arg mem_mesh_message_NID,contw
+	call memcpy
+	fetch 2,mem_mesh_cb_network_relay
+	branch callback_func
+
+ali_mesh_more_found_unicast_address_element:
+	jam 1,mem_mesh_receive_message_count
+	fetch 2,mem_mesh_send_message_SRC
+	store 2,mem_mesh_receive_message_first_unicast_address
+	rtn
+
+ali_mesh_network_layer_recevice_network_pdu_check_DST_group_address:
+	call ali_mesh_more_element_check_group_address		//妫鏌ユ墍鏈夊瓙鍏冪礌鐨勭粍鎾湴鍧
+	branch ali_mesh_network_layer_recevice_network_pdu_check_SRC_and_SEQ,user
+	jam 0xff,mem_mesh_receive_group_address
+	setarg GROUP_ADDRESS_0XCFFF_little_endian
+	isub temp,null		//DST==0xCFFF Tmall瑙勫畾鐨勭伅model鐨勭粍鎾湴鍧2
+	branch ali_mesh_network_layer_recevice_network_pdu_check_SRC_and_SEQ,zero
+	setarg GROUP_ADDRESS_0XFFFF_little_endian
+	isub temp,null	//DST==0xCFFF Tmall瑙勫畾鐨82 01鎸囦护鐨勭粍鎾湴鍧锛屽湪绾挎娴
+	branch ali_mesh_network_layer_recevice_network_pdu_check_SRC_and_SEQ,zero
+	rtn
+
+
+ali_mesh_network_layer_check_NID_IVI:
+	call disable_user
+	fetcht 1,mem_mesh_message_NID
+	rshift4 temp,pdata
+	rshift3 pdata,pdata
+	fetchr rega,1,mem_mesh_IV_Index+3
+	and rega,0x01,rega
+	isub rega,null
+	nrtn zero
+	and temp,0x7f,temp
+	fetch 1,mem_k2_NID
+	isub temp,null
+	nrtn zero		//鍒ゆ柇NID鏄惁鐩哥瓑;鐩哥瓑璇存槑鏄悓涓涓綉缁滅殑鍖
+	branch enable_user
+
+
+//妫鏌RC鍜孲EQ瀛樺偍cache锛屾槸鍚︽湁褰撳墠SRC璁惧淇℃伅
+ali_mesh_network_layer_recevice_network_pdu_check_SRC_and_SEQ:
+	arg mem_mesh_TMALL_cache_start,rega
+	arg CACHE_SPACE_NUM,loopcnt
+ali_mesh_network_layer_raverse_SRC_SEQ_cache:
+	fetcht 2,mem_mesh_message_SRC
+	ifetch 2,rega
+//cache瀛樺湪绌虹殑绌洪棿,灏哠RC銆丼EQ瀛樺偍鍒拌繖涓┖闂
+	branch ali_mesh_network_layer_find_empty_space,blank
+	
+	isub temp,null
+//cache宸茬粡瀛樻湁璇RC鐨勪俊鎭紝瀵煎嚭SEQ淇℃伅
+	branch ali_mesh_network_layer_find_SRC_space,zero
+	increase CACHE_SPACE_SIZE,rega
+	loop ali_mesh_network_layer_raverse_SRC_SEQ_cache
+	arg mem_mesh_TMALL_cache_start,rega
+
+ali_mesh_network_layer_find_empty_space:
+	istoret 2,rega
+ali_mesh_network_layer_find_SRC_space:
+	storet 2,mem_mesh_send_message_DST
+//鎺ユ敹鏃剁殑SRC鏄彂閫佹椂鍊欑殑DST	
+	add rega,2,regc
+	ifetch 3,regc
+	store 3,mem_mesh_last_message_SEQ
+	branch ali_mesh_network_layer_recevice_network_pdu_check_SEQ_legal
+
+
+//妫鏌EQ鐨勫悎娉曟э紝杩囨护閲嶅鍖
+ali_mesh_network_layer_recevice_network_pdu_check_SEQ_legal:
+//check SEQ
+	call ali_mesh_inverse_SEQ			//楂樹綆浣嶄氦鎹
+
+	fetch 3,mem_mesh_last_message_SEQ
+	fetcht 3,mem_mesh_message_SEQ
+	isub temp,null
+	rtn positive	//lastMessageSEQ-currMessageSEQ>=0,杩斿洖
+	istoret 3,regc	
+	call ali_mesh_inverse_SEQ		//application nonce鍜孌evice nonce閮介渶瑕佺敤鍒癝EQ
+	branch ali_mesh_lower_transport_layer_receive_lower_transport_PDU
+
+ali_mesh_inverse_SEQ:
+	arg mem_mesh_message_SEQ,rega
+	arg 3,loopcnt
+	branch inverse_data
+
+
+
+ali_mesh_network_load_network_nonce_and_EncryptionKey:
+	call ali_mesh_network_layer_load_network_nonce
+ali_mesh_upper_transport_layer_load_EncryptionKey:
+	arg mem_k2_EncryptionKey,contr
+	branch load_key
+ali_mesh_network_layer_load_network_nonce:
+	arg mem_mesh_Network_Nonce,contw
+	setarg NETWORK_NONCE
+	istore 1,contw
+	fetch 6,mem_mesh_message_TTL
+	istore 8,contw
+	branch mesh_generate_nonce
+
+
+ali_mesh_network_store_in_mem:
+	add temp,-12,pdata
+	//闀垮害-12鐨勫師鍥
+	//uint8_t AD type:GAP_ADTYPE_MESH_MESSAGE
+	//uint8_t IVI & NID
+	//uint8_t CTL & TTL
+	//uint24_t SEQ
+	//uint16_t SRC
+	//uint32_t MIC
+	//AD_len鍑忓幓涓婇潰鍐呭锛屾槸瀹為檯DST & Transport PDU鐨勯暱搴
+	//闂:娌℃湁鑰冭檻MIC闀垮害鏄64bit 鐨勬儏鍐碉紝鐩墠涓嶆敮鎸侊紝鍚庢湡鏀寔闇瑕佷慨鏀
+	store 1,mem_mesh_message_Transport_NetMIC_length	//len of DST + Transport Pdu, without NetMIC
+	arg 29,loopcnt
+	arg mem_mesh_message_NID,contw
+	call clear_mem
+	add temp,-1,loopcnt
+	arg mem_mesh_message_NID,contw
+	branch memcpy_fast	//mem_le_rxbuf缁熶竴copy鍒癿em_mesh_message_NID
+
+ali_mesh_network_layer_relay_access_message: 
+	call ali_mesh_network_layer_init_queue_param
+	call ali_mesh_network_layer_check_relay_states
+	nrtn user
+	call ali_mesh_network_layer_encrypt_relay_package
+	jam ADV_RELAY_MESH_MESSAGE_DURATION,mem_mesh_queue_ele_duration
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	add pdata,13,temp
+	storet 1,mem_mesh_queue_ele_len
+	increase -1,temp
+	istoret 1,contw
+	setarg GAP_ADTYPE_MESH_MESSAGE
+	istore 1,contw
+	add temp,-1,loopcnt
+	fetch 7,mem_mesh_message_NID
+	arg mem_mesh_message_NID,contr
+	call memcpy
+	arg mem_mesh_queue_ele_temp,rega
+	call queue_push
+	call ali_mesh_network_layer_white_list_fliter
+	nrtn user
+	branch ali_mesh_bearer_layer_gatt_send_packet_by_network_layer
+
+ali_mesh_network_layer_white_list_fliter:
+	fetcht 2, mem_mesh_message_DST_temp
+ali_mesh_network_layer_white_list_fliter_check:
+	call disable_user
+	fetch 1, mem_mesh_white_list_num
+	rtn blank
+	iforce loopcnt
+	arg mem_mesh_white_list, contr
+ali_mesh_network_layer_white_list_fliter_check_loop:
+	ifetch 2, contr
+	isub temp, null
+	branch enable_user, zero
+	loop ali_mesh_network_layer_white_list_fliter_check_loop
+	rtn	
+
+//output:enable user is mean can relay packet
+ali_mesh_network_layer_check_relay_states:
+	call disable_user
+	fetch 1,mem_mesh_network_packet_type
+	rtneq MESH_MESSAGE_APP	//涓峳elay APP鐨勬帶鍒跺寘
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_RELAY
+	fetch 1,mem_mesh_provisioned_flag
+	rtnne PAIRED_STATUS	
+	fetcht 2,mem_mesh_message_SRC
+	call ali_mesh_more_element_check_unicast_address
+	branch disable_user,user
+	call ali_mesh_network_layer_check_network_mic_cache
+	nrtn user
+	fetch 1,mem_mesh_message_TTL
+	branch disable_user, blank
+	pincrease -1
+	branch disable_user, blank
+	store 1,mem_mesh_message_TTL   //+17
+	setarg mem_mesh_network_relay_queue
+	store 2,mem_queue_ptr
+	branch enable_user
+
+ali_mesh_network_layer_encrypt_relay_package:
+ 	call ali_mesh_network_load_network_nonce_and_EncryptionKey
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	arg mem_mesh_message_DST,temp
+	call ali_CCM_encrypt
+	branch ali_mesh_encrypt_obfuscation_deceypt_recevie_message
+
+
+//user is enable ,mean new packet
+ali_mesh_network_layer_check_network_mic_cache:
+	setarg mem_mesh_transport_message_mic_cache
+	store 2,mem_mesh_mic_cache_ptr
+	branch ali_mesh_base_adt_cache
+
+
+
+ali_mesh_network_layer_send_access_message:
+	bpatchx patch36_1,mem_patch36
+	call ali_mesh_network_layer_send_access_message_encrypt_NetMIC
+	call ali_mesh_network_layer_send_access_message_encrypt_obfuscation
+	branch ali_mesh_bearer_layer_send_packet_by_network_layer
+
+
+//DST鍦ㄦ帴鏀跺寘鏃讹紝宸茬粡鍐欏叆mem_mesh_unsegmented_lower_transport_layer_DST
+//璁＄畻Netwrork MIC鐨勫
+ali_mesh_network_layer_send_access_message_encrypt_NetMIC:
+	fetch 1,mem_mesh_lower_transport_layer_payload_len
+	add pdata,2,rega	//DST size
+	pincrease 4
+	store 1,mem_mesh_lower_transport_layer_payload_len
+	arg mem_mesh_send_upper_layer_DST,temp
+	branch ali_mesh_network_layer_encrypt_by_network_nonce
+
+//
+//input:temp is encrypt ptr
+//rega is encrypt length
+ali_mesh_network_layer_encrypt_by_network_nonce:
+	call ali_mesh_network_load_network_nonce_and_EncryptionKey
+	copy rega,pdata
+	branch ali_CCM_encrypt
+
+
+ali_mesh_network_layer_send_access_message_encrypt_obfuscation:
+	branch ali_mesh_encrypt_obfuscation_deceypt_send_message
+
+
+ali_mesh_network_layer_check_gatt_relay_packet:
+	call ali_mesh_network_layer_init_gatt_queue_param
+	call queue_empty
+	rtn blank
+	call le_fifo_check_nearly_full
+	nrtn blank
+	arg mem_mesh_queue_ele_temp,rega
+	call queue_pop
+	nrtn user
+	branch ali_mesh_send_ble_data
+
+
+
+mesh_generate_nonce:
+	fetch 4,mem_mesh_IV_Index
+	istore 4,contw
+	add contw,-13,pdata
+	store 2,mem_nonce_ptr
+	rtn
+
+
+
+ali_mesh_network_layer_init_queue_param:
+	setarg mem_mesh_network_relay_queue_each_size
+	store 2,mem_queue_ptr
+	rtn
+
+ali_mesh_network_layer_queue_init:
+	call ali_mesh_network_layer_init_queue_param
+	branch queue_init
+
+
+ali_mesh_ble_adv:
+	call le_set_config_more_data
+	fetch 1,mem_mesh_provisioned_flag
+	beq UNPROVISIONED_BEACON_STATUS,ali_mesh_ble_adv_mesh_beacon
+	beq PAIRED_STATUS,ali_mesh_ble_adv_network_id
+	beq WAIT_RECEIVE_APPKEY,ali_mesh_ble_adv_network_id
+	rtn
+
+ali_mesh_ble_adv_network_id:
+	//mesh network id proxy
+	setsect 0,0x10214
+	setsect 1,0xc080
+	setsect 2,0x28030
+	setsect 3,0x3060
+	store 9,mem_le_adv_data_len
+	setarg 0x182816
+	istore 4,contw
+	fetch 8,mem_mesh_network_id
+	istore 8,contw
+	rtn
+
+ali_mesh_ble_adv_mesh_beacon:
+	call ali_mesh_config_device_uuid_by_three_tuple
+	//mesh beaon proxy
+	setsect 0,0x1021d
+	setsect 1,0xc080
+	setsect 2,0x27030
+	setsect 3,0x5460
+	store 9,mem_le_adv_data_len
+	setarg 0x182716
+	istore 3,contw
+	arg mem_mesh_Device_UUID,contr
+	call memcpy16
+	fetch 2,mem_mesh_OOB_information
+	istore 2,contw
+	rtn
+
+
+//rega is le rx data address
+//regb is le rx data length
+//mem_le_att_handle is write handle
+mesh_le_receive_data:
+	bpatchx patch36_2,mem_patch36
+	fetch 2,mem_le_att_handle
+	beq MESH_PROXY_DATA_IN_HANDLE,ali_mesh_receive_ble_data_proxy_data_in
+	beq MESH_PROVISIONING_DATA_IN_HANDLE,ali_mesh_receive_ble_data_provisioning_data_in
+	rtn
+
+ali_mesh_receive_ble_data_proxy_data_in:
+	copy regb,temp
+	ifetch 1,rega
+	beq MESH_PROXY_MESSAGE_TYPE_NETWORK_PDU,ali_mesh_network_layer_recevice_network_pdu_proxy_control
+	beq MESH_PROXY_MESSAGE_TYPE_PROXY_CONFIGURATION, ali_mesh_network_layer_recevice_proxy_configuration_messages
+	rtn
+ali_mesh_network_layer_recevice_proxy_configuration_messages:
+	//uint8_t SAR & Type
+	//uint8_t IVI & NID
+	//uint8_t CTL & TTL
+	//uint24_t SEQ
+	//uint16_t SRC
+	//uint64_t MIC
+//	call ice_break
+	call ali_mesh_network_store_in_mem
+	fetch 1, mem_mesh_message_Transport_NetMIC_length     //Only 4 bytes of MIC were subtracted in ali_mesh_network_store_in_mem 
+	pincrease -4
+	store 1, mem_mesh_message_Transport_NetMIC_length
+	call ali_mesh_network_layer_check_NID_IVI
+	nrtn user
+	call ali_mesh_encrypt_obfuscation_deceypt_recevie_message
+	fetch 1, mem_mesh_message_TTL
+	bbit1 BIT_CTL,ali_mesh_recevice_proxy_configuration_messages_decrypt
+	rtn
+
+ali_mesh_recevice_proxy_configuration_messages_decrypt:
+	call ali_mesh_network_load_proxy_nonce_and_EncryptionKey
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	arg mem_mesh_message_DST,temp
+	call ali_CCM_decrypt_64Bit
+	nrtn zero	//NetMIC error
+
+
+	call ali_mesh_white_filter_check
+	fetch 1, mem_mesh_message_Proxy_TransportPDU_opcode
+	beq PROXY_OPCODE_SET_FILTER_TYPE, ali_mesh_proxy_configuration_message_set_filter_type
+	beq PROXY_OPCODE_ADD_ADDR_TO_FILTER, ali_mesh_proxy_configuration_message_add_addr_to_filter
+	rtn
+
+ali_mesh_proxy_configuration_message_add_addr_to_filter:
+	fetchr loopcnt, 1, mem_mesh_message_Transport_NetMIC_length  //len of DST + Transport Pdu, without NetMIC
+	increase -3, loopcnt      //2bytes(DST)  + 1byte(Proxy Transport Pdu Opcode)
+	
+	rshift loopcnt, pdata
+	fetcht 2, mem_mesh_white_list_num
+	iadd temp, pdata
+	sub pdata, 8, null
+	nrtn positive          //If the Proxy Server runs out of space in the proxy filter list, the Proxy Server shall not add these addresses.
+	store 2, mem_mesh_white_list_num
+	arg mem_mesh_white_list, contw
+	lshift temp, pdata
+	iadd contw, contw
+	arg mem_mesh_message_Proxy_TransportPDU_Parameters, contr
+	call memcpy
+	fetch 1, mem_mesh_addressed_filter_type
+	branch ali_mesh_proxy_configuration_message_filter_status
+	
+ali_mesh_proxy_configuration_message_set_filter_type:
+	ifetch 1, contr
+	store 1, mem_mesh_addressed_filter_type
+ali_mesh_proxy_configuration_message_filter_status:	
+	store 1, mem_mesh_filter_status_message_FilterType
+	fetch 2, mem_mesh_white_list_num
+	byteswap pdata, pdata
+	store 2, mem_mesh_filter_status_message_ListSize
+
+	jam PROXY_OPCODE_FILTER_STATUS, mem_mesh_filter_status_message_opcode
+	
+	fetch 9, mem_mesh_message_NID
+	store 9, mem_mesh_send_upper_layer_IVI_and_NID
+	fetch 2,mem_mesh_send_message_SRC
+	store 2,mem_mesh_send_upper_layer_SRC
+
+	call ali_mesh_upper_transport_layer_send_access_message_calc_SEQ
+	call ali_mesh_upper_transport_layer_send_access_message_add_SEQ
+
+	call ali_mesh_network_load_proxy_nonce_and_EncryptionKey
+	setarg 6    //encrypt len: DST + TransportPDU
+	arg mem_mesh_send_upper_layer_DST,temp
+	call ali_CCM_encrypt_64Bit
+	call ali_mesh_network_layer_send_access_message_encrypt_obfuscation
+
+	//len =1 + 7 + 2 + 4 + 8 
+	arg 22, rega
+	arg MESH_PROXY_DATA_OUT_HANDLE,temp
+	call le_att_malloc_tx_notify
+	setarg MESH_PROXY_MESSAGE_TYPE_PROXY_CONFIGURATION
+	istore 1,contw
+	arg mem_mesh_send_upper_layer_IVI_and_NID,contr
+	branch memcpy32
+
+ali_mesh_receive_ble_data_provisioning_data_in:
+	jam MESH_MESSAGE_PROXY,mem_mesh_fast_pair_packet_type
+	copy regb,temp
+	copy rega,contr
+	branch ali_mesh_receive_adtype_manufacturer_specific
+
+
+ali_mesh_network_load_proxy_nonce_and_EncryptionKey:
+	arg mem_mesh_Proxy_Nonce,contw
+	setarg PROXY_NONCE
+	istore 2,contw    //Nonce Type & pad(Note:pad = 0)
+	fetch 5,mem_mesh_message_SEQ
+	istore 7,contw   //SEQ & SRC & Pad(Note:pad = 0)
+	call  mesh_generate_nonce
+
+	branch ali_mesh_upper_transport_layer_load_EncryptionKey	
+	
+ali_mesh_network_layer_recevice_network_pdu_proxy_control:
+	jam MESH_MESSAGE_PROXY,mem_mesh_network_packet_type
+	branch ali_mesh_network_layer_recevice_network_pdu
+
+
+ali_mesh_proxy_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_LE_DISCONNECTED,mesh_ble_start_adv
+	beq BT_EVT_LE_CONNECTED,app_ble_conn_event
+	rtn
+
+app_ble_conn_event:
+	branch ali_mesh_proxy_white_list_clear
+
+
+	
+mesh_ble_start_adv:
+	setarg 0
+	store 2,mem_mesh_network_proxy_unicast_address	//clear proxy unicast address
+	branch app_ble_start_adv
+
+ali_mesh_proxy_white_list_clear:
+	setarg 0
+	store 2, mem_mesh_white_list_num
+	arg mem_mesh_white_list, contw
+	arg 16, loopcnt
+	branch memset0
+//	force 0,pdata
+//mesh_mem_set0:
+//	istore 8,contw
+//	loop mesh_mem_set0
+//	rtn	
+
+ali_mesh_send_ble_data:
+//	call ice_break
+	call le_fifo_check_nearly_full
+	nrtn blank
+//	call ice_break
+	fetch 1,mem_mesh_queue_ele_len
+	add pdata,-1,rega
+	arg MESH_PROXY_DATA_OUT_HANDLE,temp
+	call le_att_malloc_tx_notify
+	setarg MESH_PROXY_MESSAGE_TYPE_NETWORK_PDU
+	istore 1,contw
+	arg mem_mesh_queue_ele_payload+2,contr
+	branch memcpy32
+
+ali_mesh_send_pairing_data:
+	fetch 1,mem_mesh_fast_pair_packet_type
+	rtneq MESH_MESSAGE_TMALL
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_mesh_adv_data_len
+	add pdata,-5,rega
+	arg MESH_PROVISIONING_DATA_OUT_HANDLE,temp
+	call le_att_malloc_tx_notify
+	arg mem_mesh_adv_data+5,contr
+	branch memcpy32
+
+ali_mesh_white_filter_check:
+	fetch 2, mem_mesh_white_list
+	nrtn blank
+	fetch 2, mem_mesh_message_SRC
+	store 2, mem_mesh_white_list
+ali_mesh_white_list_num_increase:
+	fetch 2, mem_mesh_white_list_num
+	pincrease 1
+	store 2, mem_mesh_white_list_num
+	rtn
+
+
+sha_endian_swap2:	
+	ifetch 4,contr
+	force 4,rega
+	increase 3,contw
+sha_endian_loop:	
+	istore 1,contw
+	rshift8 pdata,pdata
+	increase -2,contw
+	increase -1,rega
+	nbranch sha_endian_loop,zero
+	increase 5,contw
+	loop sha_endian_swap2
+	rtn	
+
+
+sha_getw:
+	lshift2 queue,pdata
+	iadd timeup,contr
+	ifetch 4,contr
+	rtn
+	
+sha_r:
+	force 16,alarm
+	arg mem_dat,timeup
+sha_r_loop:	
+	add alarm,-7,queue
+	call sha_getw
+	iforce temp						
+	add alarm,-16,queue
+	call sha_getw
+	iadd temp,temp					
+	add alarm,-2,queue
+	call sha_getw
+	shasx pdata,1,pdata
+	iadd temp,temp					
+	add alarm,-15,queue
+	call sha_getw
+	shasx pdata,0,pdata
+	iadd temp,temp					
+	lshift2 alarm,pdata
+	iadd timeup,contw
+	istoret 4,contw
+	increase 1,alarm
+	compare 64,alarm,0xff
+	nbranch sha_r_loop,true
+	rtn
+
+
+sha_init:
+	arg memh0,contr
+	force 7,regext_index
+sha_init_0:	
+	ifetch 4,contr
+	iforce regext
+	increase -1,regext_index
+	branch sha_init_0,positive
+	rtn
+
+sha:
+	bpatchx patch36_3,mem_patch36
+	call sha_r		
+	arg memahbak,contw
+	force 0,regext_index
+sha_0:	
+	deposit regext
+	istore 4,contw
+	increase 1,regext_index
+	compare 8,regext_index,0xff
+	nbranch sha_0,true
+//	call ice_break
+//	call enable_authrom
+	arg BLE_MESH_SHA256_ADDR,timeup
+//	call ice_break
+//	arg mem_authrom_dat,timeup
+	arg mem_dat,alarm
+	force 64,loopcnt
+sha_loop:	
+	ifetcht 4,alarm
+	ifetch 4,timeup
+	increase 4,timeup
+	increase 4,alarm
+	iadd temp,pdata			
+	force 7,regext_index
+	iadd regext,temp			
+	force 4,regext_index
+	shasx regext,3,pdata
+	iadd temp,temp			
+	force 5,regext_index
+	deposit regext
+	force 6,regext_index
+	ixor regext,pdata
+	force 4,regext_index
+	iand regext,pdata			
+	force 6,regext_index
+	ixor regext,pdata			
+	iadd temp,temp			
+	force 7,regext_index
+	copy temp,regext			
+	force 3,regext_index
+	deposit regext
+	iadd temp,regext			
+	force 0,regext_index
+	deposit regext
+	force 1,regext_index
+	iand regext,temp			
+	ior regext,pdata						
+	force 2,regext_index
+	iand regext,pdata			
+	ior temp,temp				
+	force 0,regext_index
+	shasx regext,2,pdata
+	iadd temp,pdata			
+	force 7,regext_index
+	iadd regext,regext			
+	regexrot					
+	loop sha_loop
+	arg memahbak,contr
+	force 0,regext_index
+sha_1:	
+	ifetch 4,contr
+	iadd regext,regext
+	increase 1,regext_index
+	compare 8,regext_index,0xff
+	nbranch sha_1,true
+	rtn
+//	branch disable_authrom
+
+	
+sha_result:
+	arg   memresult,contw
+	force 7,regext_index
+sha_regext_save:
+	deposit regext
+	istore  4,contw 
+	increase -1,regext_index
+	branch   sha_regext_save,positive
+	rtn	
+
+
+
+
+ali_mesh_upper_transport_layer_receive_unsegmented_access_message:
+	bbit0 TRANSPORT_HEAD_BIT_AKF,ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_device_key
+
+ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_application_key:
+	call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key
+	branch ali_mesh_upper_transport_layer_decrypt_unsegmented_message
+
+ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_device_key:
+	call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key
+	branch ali_mesh_upper_transport_layer_decrypt_unsegmented_message
+
+
+ali_mesh_upper_transport_layer_decrypt_unsegmented_message:
+//	call ice_break
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	pincrease -7	
+	//DST 16bit
+	//Head8bit (SEG 1bit /AKF 1bit/AID 6bit)
+	//Transport MIC 32bit
+	arg mem_mesh_message_Transport_unsegmented_access_messagePDU,alarm
+	call disable_user
+	branch ali_mesh_upper_transport_layer_decrypt_message
+
+
+
+ali_mesh_upper_transport_layer_receive_segmented_access_message:
+	fetch 1,mem_mesh_message_Transport_Head
+	bbit0 TRANSPORT_HEAD_BIT_AKF,ali_mesh_uuper_transport_layer_decrypt_segment_access_by_device_key
+ali_mesh_uuper_transport_layer_decrypt_segment_access_by_application_key:
+	call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key
+	branch ali_mesh_upper_transport_layer_decrypt_segmented_message
+ali_mesh_uuper_transport_layer_decrypt_segment_access_by_device_key:
+	call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key
+	branch ali_mesh_upper_transport_layer_decrypt_segmented_message
+
+
+ali_mesh_upper_transport_layer_decrypt_segmented_message:
+	fetch 1,mem_mesh_ASZMIC
+	ncall enable_user,blank
+	call disable_user,blank
+	fetch 1,mem_mesh_segmented_access_message_current_length
+	pincrease -4	//Transport MIC
+	jam 0,mem_mesh_segmented_access_message_current_length
+	arg mem_mesh_segmented_access_message_Segment,alarm
+
+//input:alarm:decrypt message ptr
+//pdata:decrypt message length
+ali_mesh_upper_transport_layer_decrypt_message:
+	copy alarm,temp
+	call ali_mesh_upper_transport_layer_decrypt_message_decrypt_transMIC
+	nrtn zero
+	call ali_mesh_upper_transport_layer_check_transport_mic_cache
+	nrtn user
+	fetch 2,mem_ccm_data_ptr
+	copy pdata,alarm
+	branch ali_mesh_access_layer_resolve_message
+
+ali_mesh_upper_transport_layer_decrypt_message_decrypt_transMIC:
+	nbranch ali_CCM_decrypt,user
+	pincrease -4
+	branch ali_CCM_decrypt_64Bit
+
+//user is enable ,mean new packet
+ali_mesh_upper_transport_layer_check_transport_mic_cache:
+	setarg mem_mesh_access_message_mic_cache
+	store 2,mem_mesh_mic_cache_ptr
+	branch ali_mesh_base_adt_cache
+
+
+//
+ali_mesh_upper_transport_layer_load_application_nonce_and_application_key:
+	call ali_mesh_upper_transport_layer_load_application_nonce
+ali_mesh_upper_transport_layer_load_application_key:
+	arg mem_mesh_application_key,contr
+	branch load_key
+ali_mesh_upper_transport_layer_load_application_nonce:
+	arg mem_mesh_Application_Nonce,contw
+	setarg APPLICATION_NONCE
+	istore 1,contw
+	fetch 1,mem_mesh_ASZMIC
+	arg 0,temp
+	nsetflag blank,7,temp
+	istoret 1,contw
+	fetch 7,mem_mesh_message_SEQ
+	istore 7,contw
+	branch mesh_generate_nonce
+
+
+//
+ali_mesh_upper_transport_layer_load_device_nonce_and_device_key:
+	call ali_mesh_upper_transport_layer_load_device_nonce
+ali_mesh_upper_transport_layer_load_device_key:
+	arg mem_mesh_Device_Key,contr
+	branch load_key
+ali_mesh_upper_transport_layer_load_device_nonce:
+	arg mem_mesh_Device_Nonce,contw
+	setarg DEVICE_NONCE
+	branch ali_mesh_upper_transport_layer_load_application_nonce + 2
+
+
+
+ali_mesh_upper_transport_layer_send_access_message:
+ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer:
+	bpatchx patch36_4,mem_patch36
+//	call ali_mesh_upper_transport_layer_clear_tx_buffer
+	call ali_mesh_upper_transport_layer_send_access_message_add_NID_SRC_TTL_SEQ_DST
+
+	//queue control
+	call ali_mesh_upper_transport_layer_store_packet_header
+	rtn user
+	call ali_mesh_upper_transport_layer_store_unsegment_msg_original_access_pdu
+
+	call ali_mesh_upper_transport_layer_init_queue_param
+
+	arg mem_mesh_upper_tran_layer_queue_temp,rega
+	branch queue_push
+
+
+//output:user is enable mean send Attr Indication packet,but no in paired status
+ali_mesh_upper_transport_layer_store_packet_header:
+	call disable_user
+	arg UPPER_RETRY_COUNT_STATUS,temp
+
+	fetch 1,mem_mesh_network_packet_type
+	sub pdata,MESH_MESSAGE_PROXY,null
+	setflag zero,BIT_UPPER_FLAG_PROXY_CONTROL,temp
+	storet 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	fetch 9,mem_mesh_send_upper_layer_IVI_and_NID
+	store 9,mem_mesh_upper_tran_layer_temp_packet_header_IVI_NID
+	fetch 1,mem_mesh_access_layer_payload_vendor_command
+	rtnne VENDOR_MESSAGE_ATTR_INDICATION
+	fetch 1,mem_mesh_provisioned_flag
+	bne PAIRED_STATUS,enable_user
+	fetch 1,mem_mesh_access_layer_payload_vendor_tid
+	store 1,mem_mesh_upper_tran_layer_temp_packet_TID
+	fetch 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	pincrease UPPER_RETRY_COUNT_INDICATION
+	set1 BIT_UPPER_FLAG_VENDOR_INDICATION,pdata
+	store 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	rtn
+
+
+ali_mesh_upper_transport_layer_store_unsegment_msg_original_access_pdu:
+	fetch 1,mem_mesh_access_layer_payload_len
+	copy pdata,loopcnt
+	store 1,mem_mesh_upper_tran_layer_temp_packet_length
+	fetch 1,mem_mesh_message_Transport_Head
+	store 1,mem_mesh_upper_tran_layer_temp_pakcet_AKF_AID
+	arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu,contw
+	arg mem_mesh_access_layer_payload,contr
+	branch memcpy
+
+
+
+ali_mesh_upper_transport_layer_control_packet:
+//	arg ali_mesh_upper_transport_layer_control_packet_deal,regc
+//	branch ali_mesh_check_all_element_info
+
+
+ali_mesh_upper_transport_layer_control_packet_deal:
+	fetch 1,mem_mesh_upper_tran_layer_packet_advertising
+	nrtn blank
+	call ali_mesh_upper_transport_layer_init_queue_param
+	arg mem_mesh_upper_tran_layer_queue_temp,rega
+	call queue_get_new_ele
+	nrtn user	
+
+	fetcht 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	and temp,DATA_UPPER_FLAG_MAX_RETRY_COUNT,pdata
+	branch ali_mesh_upper_transport_layer_queue_pop,blank
+
+	jam PACKET_IN_BEARER,mem_mesh_upper_tran_layer_packet_advertising	
+
+	call ali_mesh_upper_transport_layer_control_packet_load_header	
+
+	fetcht 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	call ali_mesh_upper_transport_layer_control_packet_load_app_control	
+	store 1,mem_mesh_upper_tran_layer_packet_tid
+
+	fetch 1,mem_mesh_upper_tran_layer_packet_type
+	isolate1 BIT_UPPER_FLAG_PROXY_CONTROL,temp
+	setflag true,BIT_UUPER_TRAN_PROXY_MESSAGE,pdata
+	store 1,mem_mesh_upper_tran_layer_packet_type
+//	add rega,ELEMENT_DEVICE_TRAN_PACKAGE_TYPE,contr
+//	ifetch 1,contr
+//	isolate1 BIT_UPPER_FLAG_PROXY_CONTROL,temp
+//	setflag true,BIT_UUPER_TRAN_PROXY_MESSAGE,pdata
+//	add rega,ELEMENT_DEVICE_TRAN_PACKAGE_TYPE,contw
+//	istore 1,contw
+
+	set1 BIT_UPPER_FLAG_RETRANSMIT,temp						
+
+	increase -1,temp		
+	istoret 1,regb			
+	
+	fetcht 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	isolate1 BIT_UPPER_FLAG_RETRANSMIT,temp
+	nbranch ali_mesh_upper_transport_layer_control_packet_encrypt_access,true
+	fetcht 1,mem_mesh_upper_tran_layer_temp_packet_length
+	storet 1,mem_mesh_upper_transport_layer_payload_len
+	copy temp,loopcnt
+	arg mem_mesh_access_layer_payload,contw
+	arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu,contr
+	call memcpy
+//	call ice_break
+	sub temp,UNSEGMENTED_ACCESS_MESSAGE_MAX_UPPER_TRANSPORT_ACCESS_PDU_LEN,null
+	nbranch ali_mesh_upper_transport_layer_control_packet_segment_msg,positive
+ali_mesh_upper_transport_layer_control_packet_unsegment_msg:
+	branch ali_mesh_lower_transport_layer_send_unsegmented_access_message
+
+
+ali_mesh_upper_transport_layer_control_packet_segment_msg:
+	fetch 4,mem_mesh_upper_tran_layer_temp_segmented_pakcet_SeqZero
+	store 4,mem_mesh_segmented_lower_transport_layer_SegZero
+	branch ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer
+
+
+ali_mesh_upper_transport_layer_control_packet_load_header:
+	fetch 1,mem_mesh_upper_tran_layer_temp_pakcet_AKF_AID
+	store 1,mem_mesh_message_Transport_Head
+
+	fetch 9,mem_mesh_upper_tran_layer_temp_packet_header_IVI_NID
+	store 9,mem_mesh_send_upper_layer_IVI_and_NID
+	store 9,mem_mesh_message_NID
+	rtn
+
+
+ali_mesh_upper_transport_layer_control_packet_load_app_control:
+	jam UPPER_TRAN_TMALL_MESSAGE,mem_mesh_upper_tran_layer_packet_type
+	fetch 1,mem_mesh_upper_tran_layer_temp_packet_TID
+	isolate1 BIT_UPPER_FLAG_VENDOR_INDICATION,temp
+	rtn true		//indication packet send app & tmall
+	setarg 0
+	rtn
+
+ali_mesh_store_tran_package_type:
+	add rega,ELEMENT_DEVICE_TRAN_PACKAGE_TYPE,contw
+	istore 1,contw
+	rtn
+
+
+ali_mesh_upper_transport_layer_queue_pop:
+	jam 0,mem_mesh_upper_tran_layer_packet_tid
+	call ali_mesh_upper_transport_layer_init_queue_param
+	arg mem_mesh_upper_tran_layer_queue_temp,rega
+	branch queue_pop
+
+ali_mesh_upper_transport_layer_control_packet_encrypt_access:
+	call ali_mesh_upper_transport_layer_send_access_message_calc_SEQ
+	call ali_mesh_upper_transport_layer_send_access_message_add_SEQ
+	fetch 9,mem_mesh_send_upper_layer_IVI_and_NID
+	store 9,mem_mesh_upper_tran_layer_temp_packet_header_IVI_NID
+	call ali_mesh_upper_transport_layer_control_packet_encrypt_access_load_payload
+	setarg 0
+	store 1,mem_mesh_ASZMIC
+	call ali_mesh_upper_transport_layer_calc_transport_mic
+
+	fetcht 1,mem_mesh_upper_transport_layer_payload_len
+	storet 1,mem_mesh_upper_tran_layer_temp_packet_length
+	copy temp,loopcnt
+	arg mem_mesh_access_layer_payload,contr
+	arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu,contw
+	call memcpy
+	
+	sub temp,UNSEGMENTED_ACCESS_MESSAGE_MAX_UPPER_TRANSPORT_ACCESS_PDU_LEN,null
+	nbranch ali_mesh_upper_transport_layer_control_packet_encrypt_access_segment_msg,positive
+ali_mesh_upper_transport_layer_control_packet_encrypt_access_unsegment_msg:
+	arg mem_mesh_upper_tran_layer_temp_packet_transmit_delay,rega
+	call queue_store_new_ele
+	branch ali_mesh_lower_transport_layer_send_unsegmented_access_message
+
+ali_mesh_upper_transport_layer_control_packet_encrypt_access_segment_msg:
+	call ali_mesh_upper_transport_layer_send_segmented_access_message_get_SeqZero_SegON
+	fetch 4,mem_mesh_segmented_lower_transport_layer_SegZero
+	store 4,mem_mesh_upper_tran_layer_temp_segmented_pakcet_SeqZero
+	arg mem_mesh_upper_tran_layer_temp_packet_transmit_delay,rega
+	call queue_store_new_ele
+	branch ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer
+
+ali_mesh_upper_transport_layer_control_packet_encrypt_access_load_payload:
+	fetch 1,mem_mesh_upper_tran_layer_temp_packet_length
+	copy pdata,loopcnt
+	store 1,mem_mesh_access_layer_payload_len
+	fetch 1,mem_mesh_upper_tran_layer_temp_pakcet_AKF_AID
+	store 1,mem_mesh_message_Transport_Head
+	arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu,contr
+	arg mem_mesh_access_layer_payload,contw
+	branch memcpy
+
+ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer:
+	call ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header
+	setarg mem_mesh_access_payload
+	store 2,mem_mesh_upper_transport_layer_payload_ptr
+ali_mesh_upper_transport_layer_send_segmented_access_message_loop:
+	call ali_mesh_upper_transport_layer_control_packet_load_header
+	call ali_mesh_upper_transport_layer_send_access_message_calc_SEQ
+	call ali_mesh_upper_transport_layer_send_access_message_add_SEQ
+
+	fetcht 1,mem_mesh_access_layer_payload_len
+	setarg SEGMENTED_ACCESS_MESSAGE_UNINT_PDU_LEN
+	call not_greater_than
+	copy pdata,rega
+	copy temp,pdata
+	isub rega,pdata
+	store 1,mem_mesh_access_layer_payload_len
+	fetch 2,mem_mesh_upper_transport_layer_payload_ptr
+	copy pdata,contr
+	iadd rega,temp
+	storet 2,mem_mesh_upper_transport_layer_payload_ptr
+	call ali_mesh_lower_transport_layer_send_segmented_access_message
+	fetch 1,mem_mesh_access_layer_payload_len
+	rtn blank
+	fetch 1,mem_mesh_segmented_lower_transport_layer_SegO
+	pincrease 1
+	store 1,mem_mesh_segmented_lower_transport_layer_SegO
+	call ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header
+	branch ali_mesh_upper_transport_layer_send_segmented_access_message_loop
+
+
+
+//upper层计算transport mic值
+ali_mesh_upper_transport_layer_calc_transport_mic:
+	fetch 1,mem_mesh_message_Transport_Head
+	bbit0 TRANSPORT_HEAD_BIT_AKF,ali_mesh_upper_transport_layer_calc_transport_mic_by_DeviceKey
+ali_mesh_upper_transport_layer_calc_transport_mic_by_AppKey:
+	call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key
+	branch ali_mesh_upper_transport_layer_calc_transport_mic_encrypt_AESCCM
+ali_mesh_upper_transport_layer_calc_transport_mic_by_DeviceKey:
+	call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key
+ali_mesh_upper_transport_layer_calc_transport_mic_encrypt_AESCCM:
+	fetch 1,mem_mesh_access_layer_payload_len
+	add pdata,4,temp
+	storet 1,mem_mesh_upper_transport_layer_payload_len
+	arg mem_mesh_access_layer_payload,temp
+	branch ali_CCM_encrypt
+
+
+
+//累加SEQ的值
+ali_mesh_upper_transport_layer_send_access_message_calc_SEQ:
+	fetch 3,mem_mesh_send_message_SEQ
+	pincrease 1
+	store 3,mem_mesh_send_message_SEQ
+	fetch 1,mem_mesh_gatt_package_send_msg_id
+	pincrease 1
+	store 1,mem_mesh_gatt_package_send_msg_id
+	fetch 2,mem_mesh_cb_seq_changed
+	branch callback_func
+
+
+
+ali_mesh_upper_transport_layer_send_access_message_add_NID_SRC_TTL_SEQ_DST:
+	fetch 1,mem_mesh_IV_Index+3
+	lshift4 pdata,pdata
+	lshift3 pdata,pdata
+	fetcht 1,mem_k2_NID
+	ior temp,pdata
+	store 1,mem_mesh_send_upper_layer_IVI_and_NID
+	fetch 1,mem_mesh_send_message_TTL
+	store 1,mem_mesh_send_upper_layer_CTL_and_TTL
+	fetch 2,mem_mesh_send_message_SRC
+	store 2,mem_mesh_send_upper_layer_SRC
+	fetch 2,mem_mesh_send_message_DST
+	store 2,mem_mesh_send_upper_layer_DST
+
+ali_mesh_upper_transport_layer_send_access_message_add_SEQ:
+	fetch 3,mem_mesh_send_message_SEQ
+	store 3,mem_mesh_send_upper_layer_SEQ
+	arg mem_mesh_send_upper_layer_SEQ,rega
+	arg 3,loopcnt
+	call inverse_data
+	fetch 8,mem_mesh_send_upper_layer_CTL_and_TTL
+	store 8,mem_mesh_message_TTL
+	rtn
+
+ali_mesh_upper_transport_layer_send_segmented_access_message_get_SeqZero_SegON:
+	fetch 1,mem_mesh_upper_transport_layer_payload_len
+	div pdata,SEGMENTED_ACCESS_MESSAGE_UNINT_PDU_LEN
+	call wait_div_end
+	quotient temp
+	remainder pdata
+	call ali_mesh_upper_transport_layer_send_segmented_access_message_sub_SegN_one,blank
+	storet 1,mem_mesh_segmented_lower_transport_layer_SegN
+	jam 0,mem_mesh_segmented_lower_transport_layer_SegO
+	fetch 3,mem_mesh_send_message_SEQ
+	arg 0x1fff,temp
+	iand temp,pdata
+	store 2,mem_mesh_segmented_lower_transport_layer_SegZero
+	rtn
+
+ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header:
+	fetch 2,mem_mesh_segmented_lower_transport_layer_SegZero
+	lshift4 pdata,pdata
+	lshift pdata,pdata
+	fetcht 1,mem_mesh_segmented_lower_transport_layer_SegO
+	ior temp,pdata
+	lshift4 pdata,pdata
+	lshift pdata,pdata
+	fetcht 1,mem_mesh_segmented_lower_transport_layer_SegN
+	ior temp,pdata
+	store 3,mem_mesh_segmented_access_lower_transport_layer_SZMIC_SeqZero_SegO_SegN
+	arg 3,loopcnt
+	arg mem_mesh_segmented_access_lower_transport_layer_SZMIC_SeqZero_SegO_SegN,rega
+	branch inverse_data
+
+ali_mesh_upper_transport_layer_receive_new_msg_timer:
+	arg mem_mesh_upper_receive_new_message_timer,regc
+	arg ali_mesh_upper_transport_layer_receive_new_msg_timeout, regb
+	branch timer_single_step
+
+ali_mesh_upper_transport_layer_receive_new_msg_timeout:
+	arg 40,loopcnt
+	arg mem_mesh_access_message_mic_cache,contw
+	branch clear_mem
+
+
+ali_mesh_upper_transport_layer_send_segmented_access_message_sub_SegN_one:
+	increase -1,temp
+	rtn
+
+ali_mesh_upper_transport_layer_clear_tx_buffer:
+	branch ali_mesh_stop_send_indication_packet
+
+
+ali_mesh_upper_transport_layer_init_queue_param:
+	setarg mem_mesh_upper_tran_layer_queue_each_size
+	store 2,mem_queue_ptr
+	rtn
+
+
+app_init:
+	bpatch patch16_1,mem_patch16
+	fetch 1,mem_device_option
+	branch app_init,blank				
+	beq DVC_OP_DONGLE,dongle_init
+	beq DVC_OP_SHUTTER,shutter_init
+	beq DVC_OP_MODULE,module_init
+	beq DVC_OP_CAR,car_init
+	beq DVC_OP_SHUTTER_DY,shutter_dy_init
+	beq DVC_OP_REMOTE_CAR,remote_car_init
+	beq DVC_OP_KEYBOARD,keyboard_init
+	beq DVC_OP_HCI_BOOT,hci_init
+//	beq DVC_OP_TEST,test_init
+	beq DVC_OP_MOUSE,mouse_init
+	beq DVC_OP_MESH,ali_mesh_init
+	rtn
+
+
+app_param_init:
+	rtn wake
+	call adc_init_data
+	fetch 1,mem_device_option
+	beq DVC_OP_SHUTTER,shutter_default_init
+	beq DVC_OP_SHUTTER_DY,shutter_default_init
+	beq DVC_OP_DONGLE,dongle_default_init
+	beq DVC_OP_MOUSE,mouse_default_init
+	beq DVC_OP_KEYBOARD,mouse_default_parm_init
+	beq DVC_OP_REMOTE_CAR,remote_car_default_init
+	rtn
+	
+app_process_idle:
+	call ui_dispatch
+	call check_51cmd
+	call app_process_bb_event
+	fetch 2,mem_cb_idle_process
+	branch callback_func
+
+app_process_ble:
+	fetch 2,mem_cb_le_process
+	branch callback_func
+
+app_process_bb_event:
+	bpatch patch16_2,mem_patch16
+	//return if c51 need to process bb event
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_out
+	rtn blank
+	//reaching here mains c51 cannot get bb event.
+	copy pdata,regc
+	call app_event_normal_process
+	branch app_process_bb_event_priority
+	
+app_discard_event:
+	arg 0,regc
+	rtn
+
+//
+//
+//
+app_event_normal_process:
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_evt_button_long_pressed
+	beq BT_EVT_LE_CONNECTED,app_le_event_bb_connected
+	beq BT_EVT_LE_DISCONNECTED,app_le_event_bb_disconn
+	rtn
+
+
+
+app_process_bb_event_priority:
+	fetch 2,mem_cb_bb_event_process
+	branch callback_func
+	
+app_check_wake_lock:
+	fetch 2,mem_cb_check_wakelock
+	branch callback_func
+	
+app_will_enter_lpm:
+	fetch 2,mem_cb_before_lpm
+	branch callback_func
+
+app_le_event_bb_connected:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	rtn
+	
+app_le_event_bb_disconn:
+	jam 0,mem_le_l2cap_att_states
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	branch app_lpm_mult_disable
+	
+
+app_evt_button_long_pressed:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_BY_BUTTON,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+	
+
+app_evt_timer:
+	store 1,mem_app_evt_timer_count
+app_evt_100ms_loop:
+	bpatch patch16_3,mem_patch16
+	fetch 1,mem_app_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_app_evt_timer_count
+	call ui_button_polling
+	call app_lpm_wake_auto_lock_timer
+	call flash_write_spi_sm_timer
+	fetch 2,mem_cb_event_timer
+	call callback_func
+	branch app_evt_100ms_loop
+
+
+//regc:timer addr
+//regb:timer up call back fuction
+timer_single_step:
+	ifetch 1,regc
+	rtn blank
+	pincrease -1
+	istore 1,regc
+	nrtn blank
+	copy regb,pdata
+	branch callback_func
+
+//regc:timer addr
+//regb:timer up call back fuction
+timer_single_step_2B:
+	ifetch 2,regc
+	rtn blank
+	pincrease -1
+	istore 2,regc
+	nrtn blank
+	copy regb,pdata
+	branch callback_func
+	
+app_power_timer:
+	fetcht 2,mem_power_param_ptr
+	add temp,power_timer_offset,regc
+	arg app_power_timer_timeout,regb
+	branch timer_single_step
+	
+app_power_timer_timeout:
+	call app_got_power_state_common
+	beq POWER_STARTING,app_enter_power_stanby_state
+app_enter_power_off_state:
+	branch app_enter_hibernate
+app_enter_power_stanby_state:
+	setarg POWER_STANDBY
+	istore 1,regc
+	add temp,power_standby_cb_offset,regb
+app_power_cb_common:
+	ifetch 2,regb
+	branch callback_func
+
+
+app_bb_hibernate:
+	call app_disconn_reason_clear
+	branch app_enter_hibernate
+
+	
+app_disconn_reason_clear:
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	rtn
+app_disconn_reason_flag_clear:
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+
+	
+app_disconn_reason_collect_ble:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_BLE,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+	
+//
+//
+//
+
+
+app_get_lpm_wake_lock:
+	arg wake_lock_app,queue
+	branch lpm_get_wake_lock
+
+app_put_lpm_wake_lock:
+	arg wake_lock_app,queue
+	branch lpm_put_wake_lock
+	
+app_lpm_wake_auto_lock:
+	jam  LPM_WAKE_UP_DELAY_TIMER,mem_wake_up_delay_timer
+	branch app_get_lpm_wake_lock
+	
+app_lpm_wake_auto_lock_timer:
+	arg mem_wake_up_delay_timer,regc
+	arg app_put_lpm_wake_lock,regb
+	branch timer_single_step
+
+
+app_ble_start_direct_adv:
+	jam BT_CMD_START_DIRECT_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_ble_stop_direct_adv:
+	jam BT_CMD_STOP_DIRECT_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_stop_adv:
+	jam BT_CMD_STOP_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_adv:	
+	jam BT_CMD_START_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_scan:
+	jam BT_CMD_LE_START_SCAN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_stop_scan:
+	jam BT_CMD_LE_STOP_SCAN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_conn:
+	jam BT_CMD_LE_START_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_disconnect:
+	jam BT_CMD_LE_DISCONNECT,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_led_start_blink:	
+	jam BT_CMD_LED_BLINK,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_led_on:
+	jam BT_CMD_LED_ON,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_led_stop_blink:
+app_led_off:
+	jam BT_CMD_LED_OFF,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_enter_hibernate:
+	jam BT_CMD_ENTER_HIBERNATE,mem_fifo_temp 
+	branch ui_ipc_send_cmd
+	
+
+app_ble_store_reconn_info:
+	jam BT_CMD_STORE_RECONN_INFO_LE,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+
+app_lpm_mult_enable:
+	set1 mark_lpm_mult_enable,mark
+	rtn
+
+app_lpm_mult_disable:
+	set0 mark_lpm_mult_enable,mark
+	rtn
+
+
+app_button_long_pressed:
+	call app_got_power_state_common
+	beq POWER_STANDBY,app_power_shutting_down
+app_power_starting:
+	setarg POWER_STARTING
+	istore 1,regc
+	add temp,power_starting_timeout_offset,rega
+	add temp,power_starting_cb_offset,regb
+app_power_common:
+	ifetcht 1,rega
+	increase 1,regc
+	istoret 1,regc
+	branch app_power_cb_common
+	
+app_power_shutting_down:
+	setarg POWER_OFF
+	istore 1,regc
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,app_power_off_end
+	call le_send_terminate_ind_user_terminated
+	call app_ble_disconnect
+app_power_off_end:
+	fetcht 2,mem_power_param_ptr
+	add temp,power_off_timeout_offset,rega
+	add temp,power_off_cb_offset,regb
+	branch app_power_common
+	
+app_got_power_state_common:
+	fetcht 2,mem_power_param_ptr
+	add temp,power_state_offset,regc
+	ifetch 1,regc
+	rtn
+
+app_event_button_up:
+	call app_got_power_state_common
+	bne POWER_OFF,app_power_release
+	branch app_enter_hibernate
+app_power_release:
+	add temp,ui_butten_up_cb_offset,regb
+	branch app_power_cb_common
+
+
+
+
+
+adpcm_decode:
+	fetch 8,mem_ad_state_valpred
+	store 8,mem_ad_valpred
+	jam  0,mem_ad_bufferstep
+	fetch 1,mem_ad_index
+	lshift2 pdata,pdata
+	arg mem_ad_stepsizeTable,temp
+	iadd temp,temp
+	ifetch 4,temp
+	store 4,mem_ad_step
+adpcm_decode_loop:
+	fetch 1,mem_ad_bufferstep
+	nbranch adpcm_next_byte,blank
+	fetcht 2,mem_ad_in_ptr
+	ifetch 1,temp
+	store 1,mem_ad_inputbuffer
+	increase 1,temp
+	storet 2,mem_ad_in_ptr
+	rshift4 pdata,pdata
+	store 1,mem_ad_delta
+	branch adpcm_cal
+adpcm_next_byte:
+	fetch 1,mem_ad_inputbuffer
+	and pdata,0x0f,pdata
+	store 1,mem_ad_delta
+adpcm_cal:	
+	fetch 1,mem_ad_bufferstep
+	setflip 0,pdata
+	store 1,mem_ad_bufferstep
+	arg mem_ad_indexTable,temp
+	fetch 1,mem_ad_delta
+	iadd temp,temp
+	ifetch 1,temp
+	fetcht 1,mem_ad_index
+	call adpcm_cal_index
+	store 1,mem_ad_index
+
+	fetch 1,mem_ad_delta
+	and pdata,0x08,temp
+	storet 1,mem_ad_sign
+	and pdata,0x07,temp
+	storet 1,mem_ad_delta
+
+	call adpcm_cal_vpdiff
+	storet 4,mem_ad_vpdiff
+	
+	fetch 1,mem_ad_sign
+	branch adpcm_cal_valpred,blank
+	fetch 4,mem_ad_valpred
+	fetcht 4,mem_ad_vpdiff
+	isub temp,pdata
+	branch adpcm_cal_valpred_end
+adpcm_cal_valpred:
+	fetch 4,mem_ad_valpred
+	fetcht 4,mem_ad_vpdiff
+	iadd temp,pdata
+adpcm_cal_valpred_end:	
+	store 4,mem_ad_valpred
+	arg 32767,temp
+	isub temp,pdata
+	bbit1 31,adpcm_cal_valpred_overflow
+	storet 4,mem_ad_valpred
+	branch adpcm_cal_valpred_overflow_end
+adpcm_cal_valpred_overflow:	
+	fetch 4,mem_ad_valpred
+	arg 32768,temp
+	iadd temp,pdata
+	bbit0 31,adpcm_cal_valpred_overflow_end
+	arg -32768,temp
+	storet 4,mem_ad_valpred
+adpcm_cal_valpred_overflow_end:	
+	fetch 1,mem_ad_index
+	lshift2 pdata,pdata
+	arg mem_ad_stepsizeTable,temp
+	iadd temp,temp
+	ifetch 4,temp
+	store 4,mem_ad_step
+
+	fetch 2,mem_ad_out_ptr
+	fetcht 2,mem_ad_valpred
+	istoret 2,pdata
+	increase 2,pdata
+	store 2,mem_ad_out_ptr
+
+	fetch 1,mem_ad_in_numSamples
+	increase -1,pdata
+	store 1,mem_ad_in_numSamples
+	nbranch adpcm_decode_loop, blank
+	fetch 8,mem_ad_valpred
+	store 8,mem_ad_state_valpred
+	rtn
+
+adpcm_cal_index:
+	iadd temp,pdata
+	bbit0 7,adpcm_cal_bigger_zero
+	setarg 0
+	rtn
+adpcm_cal_bigger_zero:
+	and pdata,0xff,pdata
+	sub pdata,88,null
+	rtn positive
+	setarg 88
+	rtn
+
+adpcm_cal_vpdiff:
+	fetchr rega,4,mem_ad_step
+	rshift3 rega,temp
+	fetch 1,mem_ad_delta
+	bbit0 2,adpcm_cal_vpdiff1
+	copy rega,pdata
+	iadd temp,temp
+adpcm_cal_vpdiff1:
+	fetch 1,mem_ad_delta
+	bbit0 1,adpcm_cal_vpdiff2
+	rshift rega,pdata
+	iadd temp,temp
+adpcm_cal_vpdiff2:
+	fetch 1,mem_ad_delta
+	rtnbit0 0
+	rshift2 rega,pdata
+	iadd temp,temp
+	rtn
+
+
+define CAR_TEST_FUNCTION
+
+car_init:
+	call enable_authrom
+	rtn wake
+	setarg car_g24_receive_process
+	store 2,mem_cb_24g_receive_process
+	
+	setarg g24_bind_ackpayload_prep
+	store 2,mem_cb_24g_ackpayload
+	
+	setarg car_g24_cb_data_device1
+	store 2,mem_cb_24g_data_device1
+
+	setarg car_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+	
+	setarg car_le_process_lpm_before
+	store 2,mem_cb_before_lpm	
+		
+	setarg car_scale_process_idle	
+	store 2,mem_cb_idle_process	
+	
+	setarg car_scale_process_bb_event 
+	store 2,mem_cb_bb_event_process	
+	
+	setarg app_get_lpm_wake_lock
+	store 2,mem_cb_check_wakelock
+	
+	setarg car_le_receive_data
+	store 2,mem_cb_att_write
+	
+	setarg car_le_bb_event_timer
+	store 2,mem_cb_event_timer
+	
+	bpatch patch05_6,mem_patch05
+	call car_init_environment
+	call car_lpm_timer_enable
+	call queue_init
+	jam 2,mem_lpm_mult
+	jam POWER_ON,mem_car_24g_received_pac
+	fetch 1,mem_car_config_soft_switch_enable
+	store 1,mem_car_hard_soft_switch
+	beq HARD_SWITCH, car_hard_switch_power_on_signal
+	fetch 1,mem_car_config_soft_switch_gpio
+	store 1,mem_ui_button_gpio
+	jam OFF,mem_le_adv_enable
+car_soft_switch_power_on_init:
+	call ui_button_init
+	call ui_button_polling
+	jam POWER_STARTING,mem_car_power_state
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BTN_DOWN
+ 	branch app_enter_hibernate
+ 	
+
+car_power_off_signal:	
+	branch car_ui_led_init
+	
+car_hard_switch_power_on_signal:
+	jam POWER_STANDBY,mem_car_power_state
+car_soft_switch_power_on_signal:
+	jam ON,mem_le_adv_enable
+	setarg FAST_ADV_INTERVAL_VALUE_CAR
+	call shutter_ble_adv_interval_set
+car_le_modified_name_adv:
+	arg mem_le_name+7,contw
+	fetch 1,mem_le_lap
+car_name_loop:
+	and pdata,0xF0,temp
+	rshift4 temp,temp
+	call car_hex_to_ascii
+	istoret 1, contw
+	and pdata,0x0F,temp
+	call car_hex_to_ascii
+	istoret 1, contw
+	call le_modified_name_att_list
+	fetcht 1,mem_le_name_len
+	copy temp,loopcnt
+	arg mem_le_adv_data+2,contw
+	arg mem_le_name,contr
+	call memcpy
+car_le_modified_name_scan:
+	fetcht 1,mem_le_name_len
+	copy temp,loopcnt
+	arg mem_le_scan_data+2,contw
+	arg mem_le_name,contr
+	branch memcpy
+car_hex_to_ascii:
+	sub temp,9,null
+	branch car_hex_num,positive
+	add temp,55,temp
+	rtn
+car_hex_num:	
+	add temp,48,temp
+	rtn
+
+car_ui_led_init:
+	fetch 1,mem_car_config_blood_led1_gpio
+	bne INVALID_PIN_NUM,car_blood_led_gpio_set
+car_ui_led_init_1:
+	fetch 1,mem_car_config_pairing_led_gpio
+	bne INVALID_PIN_NUM,car_pairing_led_gpio_set
+car_ui_led_init_2:
+	fetch 1,mem_car_config_low_voltage_led_gpio
+	bne INVALID_PIN_NUM,car_low_voltage_led_gpio_set
+car_ui_led_init_3:
+	fetch 1, mem_car_led_num
+	copy pdata,loopcnt
+	setarg mem_car_led_map
+	copy pdata,rega
+car_in_lp1:
+	copy rega,contr
+	ifetch 1,contr
+	copy contr,rega
+	beq INVALID_PIN_NUM,car_in_lp1_end
+	copy pdata,temp
+	call gpio_config_output
+car_in_lp1_end:
+	loop car_in_lp1
+car_ui_led_init_end:
+	rtn
+car_blood_led_gpio_set:
+	fetch 8,mem_car_config_blood_led1_gpio
+	store 8,mem_car_led_map+2
+	branch car_ui_led_init_1
+car_pairing_led_gpio_set:
+	store 1,mem_car_led_map
+	branch car_ui_led_init_2
+car_low_voltage_led_gpio_set:
+	store 1,mem_car_led_map+1
+	branch car_ui_led_init_3
+
+car_init_environment:
+	
+	call car_g24_init
+	call car_g24_load_commom_addr
+	arg 0,rega
+	call pwm_init
+	call car_ui_led_init
+	call car_start_blink
+	call car_init_adc_hvin
+	branch car_motor_init
+car_read_otp_addr:
+        rtn
+car_motor_init:
+	fetch 1, mem_car_motor_gpio_num
+	copy pdata,loopcnt
+	setarg mem_car_motor_gpio_map
+	copy pdata,rega
+p_in_lp1:
+	copy rega,contr
+	ifetch 1,contr
+	copy contr,rega
+	beq INVALID_PIN_NUM,p_in_lp1_end
+	copy pdata,temp
+	store 1, mem_car_gpio
+	call car_ui_gpio_init
+p_in_lp1_end:
+	loop p_in_lp1
+p_car_ui_led_init_end:
+	rtn
+
+car_ui_gpio_init:
+	fetch 1,mem_car_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	iforce temp
+	branch gpio_config_output
+
+	
+car_init_adc_hvin:
+	jam 100,mem_car_notify_vdd_value_last
+	rtn
+	
+car_le_before_hibernate:
+	call car_gpio_set_before_hibernate
+	call clear_wake
+car_le_process_lpm_before:
+	branch keyscan_process_lpm_before
+
+car_gpio_set_before_hibernate:
+	call check_51cmd_led_off
+car_gpio_set_before_lpm_common:
+	arg GPIO_NUMBER,loopcnt
+	arg core_gpio_conf,contr
+car_setgpio_loop:
+	copy contr,contw
+	ifetch 1,contr
+	beq gpcfg_spid_miso,car_setgpio_pullup
+	beq gpcfg_spid_ncs,car_setgpio_pullup
+	beq gpcfg_spid_sck,car_setgpio_pullup
+	beq gpcfg_spid_mosi,car_setgpio_pullup
+	beq gpcfg_spid_sdio,car_setgpio_pullup
+	beq gpcfg_iic_scl,car_setgpio_pullup
+	beq gpcfg_iic_sda,car_setgpio_pullup
+	beq gpcfg_input,car_setgpio_pullup
+car_setgpio_loop_end:
+	loop car_setgpio_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	branch car_motor_setgpio,zero
+car_setgpio_loop_ext:
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch car_setgpio_loop
+
+car_setgpio_pullup:
+	setarg gpcfg_pullup
+	istore 1,contw
+	branch car_setgpio_loop_end
+car_setgpio_pulldown:
+	setarg gpcfg_pulldown
+	istore 1,contw	
+	branch car_setgpio_loop_end
+car_motor_setgpio:	
+	fetch 1,mem_car_motor_gpio_num
+	copy pdata,loopcnt
+	arg mem_car_motor_gpio_map,contr
+car_motor_setgpio_loop:
+	ifetch 1,contr
+	set1 7,pdata
+	arg gpcfg_output_low,temp
+	call gpio_config_function
+	loop car_motor_setgpio_loop
+	rtn
+	 
+car_key_scan_process:
+	branch keyscan_key_process
+
+car_scale_process_idle:
+	call car_le_send_packet
+	call car_g24_status_process
+	branch car_key_scan_process
+
+car_g24_status_process:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	fetch 1,mem_car_24g_received_pac
+	beq WORK_PAIRED,car_g24_connected_event
+	rtn
+car_g24_connected_event:
+	fetch 1,mem_car_24g_status
+	rtneq WORK_PAIRED
+	jam WORK_PAIRED,mem_car_24g_status
+	call car_lpm_timer_disable
+	call car_stop_blink
+	branch car_g24_connected
+
+car_lpm_timer_enable:
+	fetch 2,mem_car_enter_lpm_timer_count	
+	store 2,mem_car_enter_lpm_timer
+	jam 0,mem_car_enter_lpm_flag
+	rtn
+
+	
+car_lpm_timer_disable:
+	setarg 0
+	branch car_lpm_timer_enable+1
+
+
+car_stop_blink:
+	arg 0,rega
+	branch ui_led_blink_stop_global
+	
+	
+car_start_blink:
+	arg 0,rega
+	branch ui_led_blink_start_global
+	
+
+
+
+
+car_le_send_packet:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+	call le_fifo_check_nearly_full
+	nrtn blank
+	arg mem_car_pop_queue_buff,rega
+	call queue_pop
+	nrtn user
+	arg mem_car_pop_queue_buff,contr
+	branch le_send_notify_from_list
+ 
+car_scale_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_BUTTON_UP,app_event_button_up
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_button_long_pressed
+	beq BT_EVT_LE_CONNECTED,car_scale_event_le_conn
+	beq BT_EVT_LE_DISCONNECTED,car_scale_event_le_discon
+	rtn
+
+car_scale_event_le_conn:
+	call car_lpm_timer_disable
+	call car_stop_blink
+	set0 mark_24g_rxmode,mark
+	branch car_scale_process_conn
+car_g24_connected:
+	fetch 2,mem_car_24g_no_data_timeout_count
+	store 2,mem_car_24g_no_data_timeout_timer
+car_scale_process_conn:
+	jam 0x14,mem_car_notify_vdd_timer
+	jam 0,mem_lpm_mode
+	call app_ble_stop_adv
+	branch app_lpm_mult_enable
+
+
+car_scale_event_le_discon:
+	set1 mark_24g_rxmode,mark
+	call car_lpm_timer_enable
+	call car_fb_motor_stop
+	call car_lr_motor_stop
+car_g24_disconnect:
+	setarg 0
+	store 5,mem_car_led_control
+	call queue_init
+	jam 10,mem_motor1_speed
+	jam 10,mem_motor2_speed
+	jam 10,mem_motor3_speed
+//	jam 1,mem_lpm_mode
+	jam 2,mem_lpm_mult
+	setarg FAST_ADV_INTERVAL_VALUE_CAR
+	call shutter_ble_adv_interval_set
+	branch app_ble_start_adv
+
+car_le_bb_event_timer:
+	call car_moto1_blank_data_timer
+	call car_moto2_blank_data_timer
+	call car_moto3_blank_data_timer
+	//call app_power_timer
+	//call car_notify_vdd_timer
+	call car_24g_no_data_timeout_timer
+	branch car_24g_bind_enable_timer
+	//branch car_enter_lpm_timer
+
+car_24g_bind_enable_timer:
+	arg mem_car_24g_bind_enable_delay_count,regc
+	arg 0,regb
+	branch timer_single_step
+
+car_enter_lpm_timer:
+	arg mem_car_enter_lpm_timer,regc
+	arg car_enter_lpm_enable,regb
+	branch timer_single_step_2B
+car_enter_lpm_enable:
+	jam 1,mem_car_enter_lpm_flag
+	rtn
+	
+car_24g_no_data_timeout_timer:
+	arg mem_car_24g_no_data_timeout_timer,regc
+	arg car_24g_no_data_timer_timeout,regb
+	branch timer_single_step_2B
+car_24g_no_data_timer_timeout:
+	jam WORK_SEARCH,mem_car_24g_status
+	jam POWER_ON,mem_car_24g_received_pac
+	branch car_g24_disconnect
+
+car_notify_vdd_timer:
+	fetch 1,mem_car_config_bat_notify_enable
+	rtn blank
+	arg mem_car_notify_vdd_timer,regc
+	arg car_notify_vdd,regb
+	branch timer_single_step
+car_notify_vdd:
+	fetch 1,mem_car_notify_vdd_count
+	store 1,mem_car_notify_vdd_timer
+ 	fetch 1,mem_car_working_flag
+ 	nrtn blank
+car_read_hvin:
+	call vdd_calculate_by_mode
+	store 2,mem_vdd_now_vol
+	arg mem_vdd_calculate_set,rega
+	call adc_bat_percent_lowpower_out
+	fetcht 1,mem_car_notify_vdd_value_last
+	isub temp,null
+	branch car_notify_vdd_next2,positive
+	store 1,mem_car_notify_vdd_value_last
+	copy pdata,temp
+car_notify_vdd_next2:
+	storet 1,mem_car_notify_vdd_percent
+	fetch 1,mem_car_config_low_voltage_percent
+	isub temp,null
+	call car_enter_low_bat,positive
+	storet 1,mem_notify_bat_payload 
+	arg 6,loopcnt
+	arg mem_notify_bat_head,contr
+	call calc_check_sum_start
+	store 1,mem_notify_bat_check_sum
+	arg mem_notify_bat_packet,rega
+	branch queue_push
+car_enter_low_bat:
+	fetch 1,mem_low_bat_flag
+	nrtn blank
+	jam 1,mem_low_bat_flag
+	arg 1,rega
+	branch ui_led_blink_start_global
+car_low_bat_led_off:
+	arg 1,rega
+	branch ui_led_blink_stop_global
+
+////////////////////////check sum////////////////////////
+//loopcnt = sum number,contr = ptr
+calc_check_sum_start:
+	arg 0,rega
+calc_check_sum_loop:
+	ifetch 1,contr
+	iadd rega,rega
+	loop calc_check_sum_loop
+calc_check_sum_and:
+	and rega,0xff,pdata
+	rtn
+
+car_le_receive_data:	
+	fetch 1,mem_le_att_opcode
+	beq ATTOP_WRITE_REQUEST,car_le_parse_att_write_request
+	rtn
+car_le_parse_att_write_request:
+	fetch 2,mem_le_att_handle
+	beq ATT_CAR_CONTROL_HANDLE,car_control_le_receive
+	rtn
+
+le_app_receive_data:
+	bpatch patch05_7,mem_patch05
+	ifetch 5,rega
+	store 5,mem_app_receive_temp
+	fetch 2,mem_app_receive_temp
+	arg LE_RECEIVE_PACKET_HEAD,temp
+	isub temp,null
+	nrtn zero
+	fetch 2,mem_app_receive_temp+3
+	byteswap pdata,pdata
+	store 2,mem_app_receive_temp+3
+	copy pdata,loopcnt
+	increase 5,rega
+	copy rega,contr
+	arg mem_app_receive_temp+5,contw
+	call memcpy
+	ifetch 1,contr
+	store 1,mem_app_receive_temp+15
+	arg mem_app_receive_temp+2,rega
+	arg mem_app_receive_temp+5,regb
+	rtn
+
+car_control_le_receive:
+	setarg 0
+	store 5,mem_le_receive_payload
+	store 5,mem_le_receive_payload+5
+	call le_app_receive_data
+	copy regb,contr
+	arg mem_le_receive_payload,contw
+	arg 10,loopcnt
+	call memcpy
+car_receive_cmd_select:
+	bpatch patch06_0,mem_patch06
+	ifetch 1,rega
+	beq CAR_CMD_OLD_CAR_CONTROL,car_drive_old
+	beq CAR_CMD_OLD_SPEED_CONTROL,car_speed_set_old
+	beq CAR_CMD_L_R_MOTOR_CONTROL,car_motor_control
+	beq CAR_CMD_F_B_MOTOR_CONTROL,car_motor_control
+	beq CAR_CMD_IR_CONTROL,car_ir_data_rx_from_app
+	beq CAR_CMD_LED_CONTROL,car_led_control_receive
+	beq CAR_CMD_DEVICE_INFO,car_info_request
+	rtn
+
+car_24g_receive_data:
+	call car_control_le_receive
+	fetch 1,mem_app_receive_temp+2	//cmd
+	beq CAR_CMD_L_R_MOTOR_CONTROL,car_24g_receive_data_next
+	beq CAR_CMD_F_B_MOTOR_CONTROL,car_24g_receive_data_next
+	rtn
+car_24g_receive_data_next:
+	fetch 1,mem_le_receive_payload	//moto1
+	ncall car_moto1_enable_blank_data_timer,blank
+	fetch 1,mem_le_receive_payload+2	//moto2
+	ncall car_moto2_enable_blank_data_timer,blank
+	fetch 1,mem_le_receive_payload+4	//moto3
+	ncall car_moto3_enable_blank_data_timer,blank
+	rtn
+
+car_moto1_enable_blank_data_timer:
+	jam 5,mem_car_moto1_blank_timer
+	rtn
+car_moto2_enable_blank_data_timer:
+	jam 5,mem_car_moto2_blank_timer
+	rtn
+car_moto3_enable_blank_data_timer:
+	jam 5,mem_car_moto3_blank_timer
+	rtn
+
+car_moto1_blank_data_timer:
+	arg mem_car_moto1_blank_timer,regc
+	arg car_moto1_blank_data,regb
+	branch timer_single_step
+car_moto2_blank_data_timer:	
+	arg mem_car_moto2_blank_timer,regc
+	arg car_moto2_blank_data,regb
+	branch timer_single_step
+car_moto3_blank_data_timer:		
+	arg mem_car_moto3_blank_timer,regc
+	arg car_moto3_blank_data,regb
+	branch timer_single_step
+
+car_moto1_blank_data:
+	jam 0,mem_le_receive_payload
+	branch car_motor_control
+car_moto2_blank_data:
+	jam 0,mem_le_receive_payload+2
+	branch car_motor_control
+car_moto3_blank_data:
+	jam 0,mem_le_receive_payload+4
+	branch car_motor_control
+	
+	
+///////////////////////Motor//////////////////////////////////////////
+
+car_drive_old:	
+	fetch 1,mem_le_receive_payload
+	store 1,mem_motor1_status
+	fetch 1,mem_le_receive_payload+1
+	store 1,mem_motor2_status
+	branch car_motor_control_common
+
+
+	
+car_left_right_control_old:
+	fetch 1,mem_le_receive_payload
+	store 1,mem_motor2_status
+	branch car_motor2_control
+car_front_back_control_old:
+	fetch 1,mem_motor1_speed
+	call car_reset_old_speed
+	fetch 1,mem_le_receive_payload+1
+	store 1,mem_motor1_status
+	branch car_motor1_control
+car_reset_old_speed:
+	beq SPEED_LEVEL_2,car_reset_old_speed2
+	beq SPEED_LEVEL_3,car_reset_old_speed3
+	store 1,mem_motor1_speed
+	rtn
+car_reset_old_speed2:
+	jam SPEED_LEVEL_5,mem_motor1_speed
+	rtn
+car_reset_old_speed3:
+	jam SPEED_LEVEL_10,mem_motor1_speed
+	rtn
+car_speed_set_old:
+	fetch 1,mem_le_receive_payload
+	call car_reset_old_speed
+	fetch 1,mem_motor1_speed
+	call car_motor_speed_duty_setting
+	call car_motor_speed_duty_transform
+	jam 0x00,mem_pdatatemp+1	//pwm channel0
+	branch pwm_duty_cycle_set
+
+car_motor_control:
+	fetch 1,mem_car_24g_go_die_flag
+	nrtn blank
+	fetch 6,mem_le_receive_payload
+	store 6,mem_motor1_status
+	fetch 1,mem_motor1_speed
+	fetcht 1,mem_motor2_speed
+	iand temp,pdata
+	fetcht 1,mem_motor3_speed
+	iand temp,pdata
+	call car_motor_working_flag,blank	
+car_motor_control_common:
+	bpatch patch06_1,mem_patch06
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_CONNECTED,pdata
+	ncall car_lpm_timer_enable,true
+	call car_motor1_control
+	call car_motor2_control
+	branch car_conn_led_state
+
+car_conn_led_state:
+	fetch 1,mem_motor1_status
+	fetcht 1,mem_motor2_status
+	iadd temp,pdata
+	nbranch check_51cmd_led_on,blank
+	branch check_51cmd_led_off	
+
+car_motor1_control:
+	arg mem_motor1_status,contr
+	branch car_motor1_status_select
+car_motor2_control:
+	arg mem_motor2_status,contr
+	branch car_motor2_status_select
+car_motor3_control:
+	arg mem_motor3_status,contr
+	branch car_motor_status_select
+car_motor_working_flag:
+	jam 0,mem_car_working_flag
+	rtn
+
+car_motor1_status_select:
+	ifetch 1,contr
+	beq TURN_FRONT,car_lr_motor_stop
+	beq TURN_LEFT,car_lr_motor_left
+	beq TURN_RIGHT,car_lr_motor_right
+	rtn
+car_motor2_status_select:
+	ifetch 1,contr
+	beq MOTOR_STOP,car_fb_motor_stop
+	beq GO_BACK,car_fb_motor_front
+	beq GO_FRONT,car_fb_motor_back
+	rtn
+
+car_lr_motor_stop:
+	fetcht 1,mem_car_motor_left_gpio
+	call gpio_out_inactive
+	fetcht 1,mem_car_motor_right_gpio
+	branch gpio_out_inactive
+car_lr_motor_left:
+	fetcht 1,mem_car_motor_left_gpio
+	call gpio_out_active
+	fetcht 1,mem_car_motor_right_gpio
+	branch gpio_out_inactive
+car_lr_motor_right:
+	fetcht 1,mem_car_motor_left_gpio
+	call gpio_out_inactive
+	fetcht 1,mem_car_motor_right_gpio
+	branch gpio_out_active
+car_fb_motor_stop:
+	fetcht 1,mem_car_motor_front_gpio
+	call gpio_out_inactive
+	fetcht 1,mem_car_motor_back_gpio
+	branch gpio_out_inactive
+car_fb_motor_front:
+	fetcht 1,mem_car_motor_front_gpio
+	call gpio_out_active
+	fetcht 1,mem_car_motor_back_gpio
+	branch gpio_out_inactive
+car_fb_motor_back:
+	fetcht 1,mem_car_motor_front_gpio
+	call gpio_out_inactive
+	fetcht 1,mem_car_motor_back_gpio
+	branch gpio_out_active
+
+	
+
+
+car_motor_status_select:
+	bpatch patch06_2,mem_patch06
+	ifetch 1,contr
+	beq MOTOR_STOP,car_motor_stop
+	beq GO_FRONT,car_motor_positive
+	beq GO_BACK,car_motor_negative
+	rtn
+car_motor_positive:
+	jam 0,mem_motor_select_p_n
+	branch car_motor_negative+1
+car_motor_negative:
+	jam 1,mem_motor_select_p_n
+	ifetch 1,contr
+	store 1,mem_car_motor_speed
+	ifetch 8,regb
+	branch car_motor_work
+
+car_motor_stop:
+	ifetch 1,regb
+	call pwm_disable
+	increase 1,regb
+	ifetch 1,regb
+	branch pwm_disable
+car_motor_work:
+	store 8,mem_motor_pwm_pin1_set
+	jam 1,mem_car_working_flag
+	fetch 1,mem_motor_select_p_n
+	beq 0,car_motor_select_positive
+car_motor_select_negative:
+	fetch 1,mem_motor_pwm_pin2_set
+	store 1,mem_motor_pwm_pin_set
+	fetch 1,mem_motor_pwm_pin1_set
+car_motor_work_next:
+	call pwm_disable
+	fetch 1,mem_car_motor_speed
+	call car_motor_speed_duty_setting
+	store 1,mem_motor_pwm_dute_set
+	fetch 6,mem_motor_pwm_pin_set
+	store 6,mem_pdatatemp
+	branch pwm_out_set
+car_motor_select_positive:
+	fetch 1,mem_motor_pwm_pin1_set
+	store 1,mem_motor_pwm_pin_set
+	fetch 1,mem_motor_pwm_pin2_set
+	branch car_motor_work_next
+
+car_motor_speed_duty_setting:
+	mul32 pdata,5,pdata
+	add pdata,50,pdata
+	rtn
+car_motor_speed_duty_transform:
+	arg 12000,temp
+	imul32 temp,pdata
+	div pdata,100
+	call wait_div_end
+	quotient temp
+	copy temp,rega
+	setarg 12000
+	isub temp,regb
+	rtn
+
+car_ir_data_rx_from_app:
+	rtn
+
+car_led_control_receive:
+	fetch 8,mem_le_receive_payload
+	store 8,mem_car_led_control
+	rtn
+
+car_info_request:
+	fetch 1,mem_car_config_device_select
+	store 1,mem_car_info_request_payload
+	fetch 1,mem_car_config_motor_layout
+	store 1,mem_car_info_request_payload+1
+	fetch 1,mem_car_config_ir_enable
+	store 1,mem_car_info_request_payload+2
+	arg 13,loopcnt
+	arg mem_car_info_request_head,contr
+	call calc_check_sum_start
+	store 1,mem_car_info_request_checksum
+	arg mem_car_info_request,rega
+	branch queue_push
+
+
+
+car_g24_init:
+	setarg 0
+	store 8,mem_24g_bind_payload
+	call g24_receive_init
+	branch g24_mode_switch_init
+
+car_g24_receive_process:
+	call car_g24_mode_switch
+	call car_g24_work_mode
+	call car_g24_bind_mode
+	branch car_g24_lpm_dipatch
+
+car_g24_mode_switch:
+	call g24_mode_switch_bind_work
+car_g24_bind_mode_enable:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_BIND
+	fetch 1,mem_car_24g_bind_enable_delay_count	//after power on 10s,enable bind
+	nbranch g24_switch_work_mode,blank
+	fetch 1,mem_car_24g_status	//after paired,disable bind mode
+	beq WORK_SEARCH,g24_switch_work_mode
+	rtn
+
+car_g24_work_mode:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_WORK
+	call car_g24_work_mode_start
+	branch car_g24_ch_polling_clear,user3
+car_g24_receive_ch_polling:
+	fetch 1,mem_car_enter_lpm_flag
+	rtn blank
+	fetch 1,mem_car_24g_ch_polling
+	increase 1,pdata
+	store 1,mem_car_24g_ch_polling
+	beq 4,car_g24_ch_polling_clear
+	call g24_ch
+	call car_g24_receive_packet_start
+	nbranch car_g24_receive_ch_polling,user3
+car_g24_ch_polling_clear:
+	jam 0,mem_car_24g_ch_polling
+	rtn
+car_g24_work_mode_start:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_WORK
+	call car_g24_work_init
+	call g24_ch_process
+	branch car_g24_receive_packet_start
+car_g24_work_init:
+	fetch 1,mem_24g_mode_init
+	rtnbit1 DONGLE_WORK
+	set1 DONGLE_WORK,pdata
+	store 1,mem_24g_mode_init
+	fetch 1,mem_tx_power_temp
+	store 1,mem_tx_power
+	jam 0,mem_24g_ackpayload_enable
+	jam 0,mem_usb_tx_enable
+	jam 1,mem_24g_abort_packet
+	jam 0,mem_24g_pid
+	//fetch 4,mem_lap
+	fetch 4,mem_car_24g_commom_addr
+	branch g24_work_init+12
+car_g24_receive_packet_start:	
+	call g24_receive_transmit_ack
+	nbranch g24_rx_interrupt_clear,user3
+p_g24_receive_packet_parse:
+	call g24_receive_packet_parse_pid_crc
+	nbranch g24_rx_interrupt_clear,user
+	fetch 1,mem_24g_rxdata_length
+	branch g24_rx_interrupt_clear,blank
+	increase 2,pdata
+	iforce loopcnt
+	arg mem_24g_rxbuf,contr
+	arg mem_24g_rxdata_temp,contw
+	call memcpy
+	jam 0,mem_24g_mode_switch
+	fetch 1,mem_24g_pair_mode
+	call g24_enable_nodata_timer,blank
+	fetch 1,mem_24g_rxdata_temp+2
+	beq DATATYPE_ATTEMP,car_g24_data_attemp	//reconn packet
+	beq DATATYPE_DEVICE1,car_g24_data_device1	//mouse
+	branch g24_receive_packet_parse+14
+car_g24_data_attemp:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_24g_bind_device_status
+	rtn blank
+	//call check_51cmd_led_on
+	branch g24_data_attemp	
+car_g24_data_device1:
+	call g24_ch_timer_reinit
+	fetch 1,mem_24g_abort_packet
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	setflag true,0,pdata
+	store 1,mem_24g_abort_packet
+	beq 1,car_g24_data_attemp_device1_abort
+	branch g24_data_device1+7
+car_g24_data_attemp_device1_abort:
+	fetch 1,mem_device_option
+	sub pdata,DVC_OP_CAR,null
+	call check_51cmd_led_on,zero
+	fetch 4,mem_24g_rxdata_temp+10
+	branch g24_store_device1_addr
+	
+car_g24_bind_mode:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_BIND
+	call g24_bind_init
+	call car_g24_bind_device_addr
+
+	call g24_rx_interrupt_clear
+	call g24_receive_packet
+	nbranch g24_rx_interrupt_clear,user3
+	call g24_bind_data_parse
+	call g24_transmit_ack
+	call g24_bind_device_status_check
+	call g24_bind_data_process+8
+
+	fetch 1,mem_24g_bind_device_status
+	nbranch car_g24_bind_mode_exit,blank
+	call g24_nodata_process
+	fetch 1,mem_24g_nodata_timer_enable
+	rtn blank
+	setarg 0
+	store 4,mem_24g_device1_addr
+	rtn
+car_g24_bind_mode_exit:
+	jam 0,mem_24g_mode_switch
+	arg 0,rega
+	call check_51cmd_led_on
+	call g24_switch_work_mode
+	call g24_timer_init
+
+        fetch 4,mem_24g_lap
+        store 4,mem_car_24g_commom_addr
+        fetch 1,mem_car_save_addr_flag
+        ncall car_g24_save_commom_addr,blank
+		
+	fetch 4,mem_car_24g_commom_addr
+	branch g24_update_addr_and_synccrc8
+
+car_g24_save_commom_addr:
+
+        fetch 1,mem_car_save_addr_flag
+        rtn blank
+	fetch 1,mem_24g_transmitter_addr+1	//Tx lap H
+	store 1,mem_car_24g_commom_addr+3
+
+	fetch 1,mem_24g_lap+1				//Rx lap H
+	store 1,mem_car_24g_commom_addr+2
+
+	fetch 1,mem_24g_transmitter_addr	//Tx lap L
+	store 1,mem_car_24g_commom_addr+1
+
+	fetch 1,mem_24g_lap					//Rx lap L
+	store 1,mem_car_24g_commom_addr
+        rtn
+	call car_g24_search_commom_addr
+	fetch 4,mem_car_24g_commom_addr
+	fetcht 4,mem_car_24g_commom_addr_temp 
+	isub temp,null
+	rtn zero        
+        copy regc,regb
+        arg mem_car_24g_commom_addr,rega
+        arg 4,loopcnt        
+        branch otp_write
+        
+car_g24_load_commom_addr:
+
+        fetch 4,mem_24g_lap
+        store 4,mem_car_24g_commom_addr
+        fetch 1,mem_car_save_addr_flag
+        rtn blank
+        rtn
+        call car_g24_search_commom_addr
+        fetch 4,mem_car_24g_commom_addr_temp
+        rtn blank
+        store 4,mem_car_24g_commom_addr
+        rtn
+
+        
+car_g24_search_commom_addr:
+        rtn
+        fetch 1,mem_car_save_addr_flag
+        rtn blank
+        arg OTP_OFFSET_CAR_COMMOM_START_ADDR,regc
+car_g24_search_commom_addr_loop:
+        copy regc,regb
+        arg mem_car_24g_commom_addr_read,rega
+        arg 4,loopcnt
+        call otp_read_data
+        fetch 4,mem_car_24g_commom_addr_read
+        rtn blank    
+        store 4,mem_car_24g_commom_addr_temp
+        copy regc,pdata
+        arg OTP_OFFSET_CAR_COMMOM_END_ADDR,temp
+        isub temp,null
+        rtn positive        
+        increase 4,regc
+        branch car_g24_search_commom_addr_loop
+        
+car_g24_bind_device_addr:
+	fetch 4,mem_24g_device1_addr
+	rtn blank
+	branch g24_update_addr_and_synccrc8
+
+car_g24_cb_data_device1:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	fetch 2,mem_car_24g_no_data_timeout_count
+	store 2,mem_car_24g_no_data_timeout_timer
+	jam WORK_PAIRED,mem_car_24g_received_pac
+	arg mem_24g_rxdata_temp+3,rega
+	branch car_24g_receive_data
+
+car_g24_lpm_dipatch:
+	fetch 1,mem_car_enter_lpm_flag
+	rtn blank
+	call car_g24_lpm_wait
+	nrtn user
+	fetch 3,mem_24g_enter_hibernate	//about 1000ms
+	call clk2lpo
+	storet 4,mem_sleep_counter
+  	branch lpm_sleep
+car_g24_lpm_wait:
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	branch car_le_process_lpm_before
+
+
+
+
+//define REMOTE_TEST_FUNCTION
+remote_car_init:
+	rtn wake	
+	call remote_car_default_init
+	call keyscan_key_init
+	setarg remote_car_g24_package_data
+	store 2,mem_cb_24g_transmit_data
+
+	setarg remote_car_process_lpm_before
+	store 2,mem_cb_24g_lpm_before
+	
+	setarg remote_car_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+	
+	setarg remote_car_scale_process_idle
+	store 2,mem_cb_idle_process	
+	
+	setarg remote_car_scale_process_bb_event
+	store 2,mem_cb_bb_event_process
+
+	setarg remote_car_event_timer
+	store 2,mem_cb_event_timer
+	
+	setarg remote_car_power_off_signal
+	store 2,mem_remote_car_power_off_cb
+	
+	setarg remote_car_soft_switch_power_on_signal
+	store 2,mem_remote_car_power_standby_cb
+	
+	
+	bpatch patch06_3,mem_patch06
+	call set_eeprom_size_2k
+	call remote_car_init_environment
+
+	call queue_init
+	fetch 1,mem_remote_car_config_soft_switch_enable
+	store 1,mem_remote_car_hard_soft_switch
+	beq HARD_SWITCH, remote_car_hard_switch_power_on_signal
+	fetch 1,mem_remote_car_config_soft_switch_gpio
+	store 1,mem_ui_button_gpio
+remote_car_soft_switch_power_on_init:
+	call remote_car_ui_led_init
+	call ui_button_init
+	call ui_button_polling
+	jam POWER_STARTING,mem_remote_car_power_state
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BTN_DOWN
+	branch app_enter_hibernate
+
+
+
+remote_car_hard_switch_power_on_signal:
+	jam POWER_STANDBY,mem_remote_car_power_state
+remote_car_soft_switch_power_on_signal:
+	call remote_car_ui_led_init
+	arg 0,rega
+	call ui_led_blink_start_global
+	call remote_car_g24_load_commom_addr
+	fetch 4,mem_remote_24g_commom_addr
+	store 4,mem_24g_addr	
+	branch g24_pair_start,blank
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	fetch 2,mem_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout
+	branch g24_reconn_start
+
+remote_car_set_24g_addr_eeprom:
+	arg 4,temp
+	arg mem_24g_addr,rega
+	arg REMOTE_INFO_EEPROM_OFFECT,regb
+	rtn
+
+
+remote_car_power_off_signal:	
+remote_car_ui_led_init:
+	bpatch patch06_4,mem_patch06
+	fetch 1,mem_remote_car_config_connect_led_gpio
+	bne INVALID_PIN_NUM,remote_car_pairing_led_gpio_set
+remote_car_ui_led_init_1:
+	fetcht 1, mem_remote_car_led_map
+	branch gpio_config_output
+remote_car_pairing_led_gpio_set:
+	store 1,mem_remote_car_led_map
+	branch remote_car_ui_led_init_1
+
+
+remote_car_init_environment:
+	call g24_transmit_init
+remote_no_data_timer_init:
+	fetch 2,mem_remote_car_no_data_timeout
+	store 2,mem_remote_car_no_data_timer
+	rtn
+
+remote_car_le_before_hibernate:
+	call remote_car_process_lpm_before
+remote_gpio_set_before_hibernate:
+	fetch 1,mem_remote_style_struct_led_gpio
+	set1 7,pdata
+	arg gpcfg_output_high,temp
+	branch gpio_config_function
+
+remote_car_process_lpm_before:
+	call gpio_set_before_lpm
+	branch keyscan_process_lpm_before
+
+remote_car_key_scan_process:
+	call keyscan_key_process
+	call get_remote_key_state
+	call remote_conn_led_state
+	branch send_data
+
+remote_conn_led_state:
+	fetch 1,mem_remote_car_24g_status
+	rtnne WORK_PAIRED
+	fetch 4,mem_remote_car_motor1_key0_press_state
+	branch remote_car_stop_state,blank
+	jam 0,mem_remote_car_no_data_check
+	enable user
+	branch check_51cmd_led_on
+remote_car_stop_state:
+	fetch 1,mem_remote_car_no_data_check
+	rtneq 0xff
+	pincrease 1
+	store 1,mem_remote_car_no_data_check
+	disable user
+	branch check_51cmd_led_off
+
+	
+get_remote_key_state:
+	fetcht 2,mem_key_value_retention
+	and temp,0x01,pdata
+	rshift temp,temp
+	store 1,mem_remote_car_motor1_key0_press_state
+	and temp,0x01,pdata
+	rshift temp,temp
+	store 1,mem_remote_car_motor1_key1_press_state
+	and temp,0x01,pdata
+	rshift temp,temp
+	store 1,mem_remote_car_motor2_key2_press_state
+	and temp,0x01,pdata
+	rshift temp,temp
+	store 1,mem_remote_car_motor2_key3_press_state
+	rtn
+send_data:
+	bpatch patch06_5,mem_patch06
+	call remote_car_fb_check
+	call remote_car_lr_check
+	call remote_car_no_data_timeout_check
+	nrtn user
+	branch remote_car_send_key 
+
+
+remote_car_no_data_timeout_check:
+	fetch 1,mem_remote_car_24g_status
+	rtnne WORK_PAIRED
+	fetch 1,mem_remote_car_no_data_check
+	rtn blank
+	sub pdata,1,null
+	nrtn positive
+	fetch 2,mem_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout
+	branch enable_user
+
+
+	
+remote_car_fb_check:
+	fetch 1,mem_remote_car_motor1_key0_press_state
+	nbranch remote_car_send_motor1_key0_press,blank
+	fetch 1,mem_remote_car_motor1_key1_press_state
+	nbranch remote_car_send_motor1_key1_press,blank
+	branch remote_car_send_motor1_key0_rel
+	
+remote_car_lr_check:
+	fetch 1,mem_remote_car_motor2_key2_press_state
+	nbranch remote_car_send_motor2_key2_press,blank
+	fetch 1,mem_remote_car_motor2_key3_press_state
+	nbranch remote_car_send_motor2_key3_press,blank
+	branch remote_car_send_motor2_key2_rel
+
+
+remote_car_scale_process_idle:
+	call remote_car_24g_status_process
+	branch remote_car_key_scan_process
+
+remote_car_scale_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_BUTTON_UP,app_event_button_up
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_button_long_pressed
+	beq BT_EVT_24G_PAIRING_COMPLETE,remote_car_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,remote_car_24g_attempt_success
+	beq BT_EVT_24G_ATTEMPT_FAIL,remote_car_24g_attempt_fail
+	rtn
+
+remote_car_24g_attempt_fail:
+	branch g24_txbuf_clear
+
+remote_car_24g_pairing_complete:
+	bpatch patch06_6,mem_patch06
+        fetch 4,mem_24g_receiver_addr
+        store 4,mem_remote_24g_commom_addr
+        fetch 1,mem_remote_save_addr_flag
+        ncall remote_car_g24_save_commom_addr,blank
+	fetch 4,mem_remote_24g_commom_addr
+	call g24_update_addr_and_synccrc8        
+	//call remote_car_set_24g_addr_eeprom
+	//call iicd_write_protect_eep_data
+remote_car_24g_attempt_success:
+	jam 0,mem_24g_conn_sm
+	jam WORK_PAIRED,mem_remote_car_24g_auto_work_step
+	jam WORK_PAIRED,mem_remote_car_24g_pair_success_flag
+	jam 0,mem_24g_reconn_timeout		
+	rtn
+remote_car_g24_save_commom_addr:
+    
+
+        fetch 1,mem_remote_save_addr_flag
+        rtn blank
+	fetch 1,mem_24g_lap+1				//Tx lap H
+	store 1,mem_remote_24g_commom_addr+3
+
+	fetch 1,mem_24g_receiver_addr+1		//Rx lap H
+	store 1,mem_remote_24g_commom_addr+2
+
+	fetch 1,mem_24g_lap					//Tx lap L
+	store 1,mem_remote_24g_commom_addr+1
+
+	fetch 1,mem_24g_receiver_addr		//Rx lap L
+	store 1,mem_remote_24g_commom_addr
+	call remote_car_g24_search_commom_addr
+	fetch 4,mem_remote_24g_commom_addr
+	fetcht 4,mem_remote_24g_commom_addr_temp 
+	isub temp,null
+	rtn zero	
+        copy regc,regb
+        arg mem_remote_24g_commom_addr,rega
+        arg 4,loopcnt        
+        branch otp_write
+        
+remote_car_g24_load_commom_addr:
+        fetch 1,mem_remote_save_addr_flag
+        rtn blank
+        call remote_car_g24_search_commom_addr
+        fetch 4,mem_remote_24g_commom_addr_temp
+        rtn blank
+        store 4,mem_remote_24g_commom_addr  
+        rtn
+
+        
+remote_car_g24_search_commom_addr:
+        fetch 1,mem_remote_save_addr_flag
+        rtn blank       
+        arg OTP_OFFSET_REMOTE_COMMOM_START_ADDR,regc
+remote_car_g24_search_commom_addr_loop:
+        copy regc,regb
+        arg mem_remote_24g_commom_addr_temp,rega
+        arg 4,loopcnt
+        call otp_read_data
+        fetch 4,mem_remote_24g_commom_addr_read
+        rtn blank        
+        store 4,mem_remote_24g_commom_addr_temp
+        copy regc,pdata
+        arg OTP_OFFSET_REMOTE_COMMOM_END_ADDR,temp
+        isub temp,null
+        rtn positive        
+        increase 4,regc
+        branch remote_car_g24_search_commom_addr_loop
+        
+remote_car_24g_status_process:
+	fetch 1,mem_remote_car_24g_auto_work_step
+	rtneq POWER_ON
+	fetch 1,mem_remote_car_24g_status
+	rtneq WORK_PAIRED
+	jam WORK_PAIRED,mem_remote_car_24g_status
+remote_car_scale_process_paired:
+	arg 0,rega
+	branch ui_led_off_global
+remote_car_scale_process_shutdown:
+	arg 0,rega
+	call ui_led_off_global
+	call remote_car_ui_led_init
+	branch app_enter_hibernate
+	
+remote_car_event_timer:
+	call app_power_timer
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer	
+	branch remote_car_no_data_timer
+
+remote_car_no_data_timer:
+	fetch 1,mem_remote_car_config_timeout_shutdown_enable
+	rtn blank
+	fetch 1,mem_key_value_retention
+	nbranch remote_no_data_timer_init,blank
+	arg mem_remote_car_no_data_timer,regc
+	arg remote_car_scale_process_shutdown,regb
+	branch timer_single_step_2B
+
+
+//cross key,control front-back motor layout
+remote_car_send_motor1_key0_press:	//front
+	jam MOTOR_POSITIVE,mem_remote_car_24g_motor1_payload
+	rtn
+remote_car_send_motor1_key1_press:	//back
+	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor1_payload
+	rtn
+remote_car_send_motor2_key2_press:	//left
+	jam MOTOR_POSITIVE,mem_remote_car_24g_motor2_payload
+	rtn
+remote_car_send_motor2_key3_press:	//right
+	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor2_payload
+	rtn
+
+
+remote_car_send_motor1_key0_rel:
+remote_car_send_motor1_key1_rel:
+	jam MOTOR_STOP,mem_remote_car_24g_motor1_payload
+	rtn
+remote_car_send_motor2_key2_rel:
+remote_car_send_motor2_key3_rel:
+	jam MOTOR_STOP,mem_remote_car_24g_motor2_payload
+	rtn
+	
+remote_car_send_key:
+	arg mem_remote_car_24g_motor_packet,rega
+	branch queue_push
+remote_car_send_attack:
+	arg mem_remote_car_24g_fire_packet,rega
+	branch queue_push
+
+remote_car_g24_package_data:
+	fetch 1,mem_remote_car_24g_pair_success_flag
+	beq WORK_PAIRED,remote_car_g24_send_empty
+	arg mem_remote_car_24g_tx_temp,rega
+	call queue_pop
+	nbranch remote_car_moto_data,user
+remote_car_g24_package_data_continue:
+	arg mem_remote_car_24g_tx_temp,contr
+	ifetch 1,contr
+	copy pdata,rega
+	arg mem_remote_car_24g_tx_temp+1,regb
+	//rega: length
+	//regb: tx buffer
+	rtn
+	
+remote_car_g24_send_empty:
+	jam 0,mem_remote_car_24g_pair_success_flag
+	enable user
+	arg 1,rega
+	arg mem_remote_car_empty_packet,regb
+	rtn
+	
+remote_car_moto_data:
+	fetch 1,mem_remote_car_24g_tx_temp+3	//cmd
+	beq CAR_CMD_L_R_MOTOR_CONTROL,remote_car_moto_data_next
+	beq CAR_CMD_F_B_MOTOR_CONTROL,remote_car_moto_data_next
+	rtn
+remote_car_moto_data_next:
+	fetch 1,mem_remote_car_24g_tx_temp+6	//data moto1
+	nbranch remote_car_moto_data_enable_user,blank
+	fetch 1,mem_remote_car_24g_tx_temp+8	//data moto2
+	nbranch remote_car_moto_data_enable_user,blank
+	fetch 1,mem_remote_car_24g_tx_temp+10	//data moto3
+	nbranch remote_car_moto_data_enable_user,blank
+	rtn
+remote_car_moto_data_enable_user:
+	enable user
+	branch remote_car_g24_package_data_continue
+
+
+
+
+remote_car_default_init:
+	jam 0x14,mem_ui_button_timeout
+	jam 0x01,mem_ui_button_last_state
+	setarg 0x060f
+	store 2,mem_remote_car_queue_each_size
+	setarg mem_remote_car_queue_each_size
+	store 2,mem_queue_ptr
+	jam 0x01,mem_lpm_mode
+	jam 0x06,mem_lpm_overhead
+	jam 0x02,mem_lpm_mult_timeout
+	jam 0x00,mem_remote_car_hard_soft_switch
+	setarg mem_remote_style_led_type
+	store 2,mem_ui_led_struct_ptr
+	jam 0x01,mem_ui_led_struct_num
+	jam 0xff,mem_remote_style_blink_count
+	setarg 0x0296
+	store 2,mem_remote_style_on_time
+	setarg 0x073a
+	store 2,mem_remote_style_off_time
+	setarg mem_remote_car_soft_power
+	store 2,mem_power_param_ptr
+	setarg 0x0c0c
+	store 2,mem_remote_car_power_off_timeout
+	setarg mem_remote_car_keyscan
+	store 2,mem_keyscan_ptr
+	jam 0x00,mem_remote_car_config_soft_switch_enable
+	jam 0xff,mem_remote_car_config_connect_led_gpio
+	jam 0xff,mem_remote_car_config_soft_switch_gpio
+	jam 0x00,mem_remote_car_config_key_map
+	jam 0x00,mem_remote_car_config_layout
+	jam 0x00,mem_remote_car_config_check_way
+	jam 0x01,mem_remote_car_config_timeout_shutdown_enable
+	setarg 0x4e55
+	store 2,mem_current_vdd_value_default_mid_x
+	store 2,mem_current_vdd_value_default_mid_y
+	setarg 0x0007
+	store 2,mem_current_vdd_default_range
+	jam 0x02,mem_adc_config_flag
+	setsect 0,0x35a0c
+	setsect 1,0x11a
+	setsect 2,0x60
+	setsect 3,0x28
+	store 9,mem_remote_car_24g_motor_packet
+	setsect 0,0x2000a
+	setsect 1,0x02
+	istore 4,contw
+	setsect 0,0x35a08
+	setsect 1,0x19a
+	setsect 2,0x00
+	setsect 3,0x00
+	store 9,mem_remote_car_24g_fire_packet
+	setarg 0x0064
+	store 2,mem_remote_car_no_data_timeout
+	jam TX_POWER_0DB,mem_tx_power
+	jam 0x01,mem_24g_data_type		//24g init
+	jam 0x06,mem_24g_max_retry
+	jam 0x01,mem_24g_pair_switch
+	jam 0x00,mem_24g_fast_conn_enable
+	call g24_rx_window_init
+	call g24_interval_param_8ms
+	call g24_chmap_param_init
+
+	//call g24_pair_param_init
+	setarg 0x0708
+	store 2,mem_24g_pair_timeout_init
+	setarg 0x0050
+	store 2,mem_24g_reconn_timeout_init
+	setarg 0x0a7700
+	store 3,mem_24g_long_sleep_set
+	setarg 0x604800
+	store 3,mem_24g_enter_hibernate	
+	rtn
+
+
+
+
+
+
+dongle_init:
+	setarg dongle_dispatch
+	store 2,mem_cb_24g_receive_process
+	setarg dongle_g24_mouse
+	store 2,mem_cb_24g_data_device1
+	setarg dongle_g24_kb
+	store 2,mem_cb_24g_data_device2
+	setarg dongle_ackpayload_prep
+	store 2,mem_cb_24g_ackpayload
+	setarg dongle_usb_config
+	store 2,mem_cb_usb_config
+	branch usb_init
+
+
+dongle_default_init:
+	bpatch patch06_7,mem_patch06
+	//sys init
+	call dongle_read_kb_bind_status
+	call dongle_xtal_select
+	fetch 1,mem_dg_sys_config
+	isolate1 DG_ENABLE_EEPROM,pdata
+	branch dongle_default_no_eeprom,true
+	fetch 1,mem_dg_sys_config
+	isolate1 DG_ENABLE_NEW_CHMAP,pdata
+	call g24_chamap_param_update,true
+dongle_default_no_eeprom:	
+	fetch 1,mem_dg_24g_tx_power_default
+	store 1,mem_tx_power
+	//24g init
+	jam 0xff,mem_rssi_buff_index
+	setarg mem_dg_rssi_noise_buffer
+	store 2,mem_rssi_noise_buffer_ptr
+	setarg mem_dg_rssi_noise_dg_buffer
+	store 2,mem_rssi_noise_self_buffer_ptr
+	setarg mem_dg_rssi_noise_ms_buffer
+	store 2,mem_rssi_noise_device1_buffer_ptr
+	setarg mem_dg_rssi_noise_kb_buffer
+	store 2,mem_rssi_noise_device2_buffer_ptr
+	jam TX_POWER_F5DB,mem_24g_pair_tx_power
+	jam 0,mem_dg_kb_bind_success
+	jam 0,mem_24g_bind_device_living
+	call g24_enable_1M
+	fetch 1,mem_dg_sys_config
+	isolate1 DG_ENABLE_24G_2M,pdata
+	call g24_enable_2M,true
+	call g24_receive_init
+	call g24_pair_param_init
+	call g24_chmap_param_init
+	//usb init
+	fetch 1,mem_dg_usb_tx_interval
+	store 1,mem_usb_tx_interval
+	fetch 9,mem_dg_usb_vid_pid
+	store 9,mem_usb_vid_pid
+	rtn
+	
+dongle_xtal_select:
+	jam XTAL_24M,mem_fcomp_div
+	fetch 1,mem_dg_sys_config
+	rtnbit0 DG_ENABLE_XTAL_24M
+	jam XTAL_16M,mem_fcomp_div
+	rtn
+
+dongle_dispatch:
+	fetch 1,mem_24g_pair_mode
+	beq 0x00,dongle_auto_bind
+	beq 0x01,dongle_pc_bind
+	beq 0x0f,dongle_all_powerful
+	rtn
+
+
+dongle_read_kb_bind_status:
+	bpatch patch07_0,mem_patch07
+	arg DONGLE_KB_BIND_EFUSE_OFFECT,regb
+	arg mem_dg_kb_bind_flag,rega
+	arg 1,loopcnt
+	branch otp_read_data
+
+dongle_write_kb_bind_status:
+	bpatch patch07_1,mem_patch07
+	arg 1,loopcnt
+	arg mem_dg_kb_bind_flag,rega
+	arg DONGLE_KB_BIND_EFUSE_OFFECT,regb
+	branch otp_write
+
+dongle_usb_config:
+	fetch 1,mem_dg_sys_config
+	bbit1 DG_ENABLE_KB_ICON,dongle_usb_config_kb
+	fetch 1,mem_dg_kb_bind_flag
+	bne DONGLE_KB_BIND_SUCCESS,dongle_usb_config_param
+dongle_usb_config_kb:
+	jam DONGLE_KB_BIND_SUCCESS,mem_dg_kb_bind_flag
+	fetch 4,USB_DEVICEDATA_ADDR+9
+	set1 29,pdata
+	store 4,mem_devicedesc+9
+dongle_usb_config_param:
+	call dongle_usb_device_name
+	call usb_tx_interval_config
+	call dongle_usb_vid_pid_config
+	branch dongle_usb_hid_icon_config
+
+dongle_usb_vid_pid_config:
+	fetch 1,mem_usb_vid_pid
+	rtn blank
+	fetch 1,mem_dg_kb_bind_flag
+	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_vid_pid_for_suit
+dongle_usb_vid_pid_for_mouse_only_auto_pair:	
+	fetch 4,mem_usb_vid_pid+1
+dongle_usb_vid_pid_store:	
+	store 4,mem_devicedesc+9
+	rtn
+dongle_usb_vid_pid_for_suit:
+	fetch 4,mem_usb_vid_pid+5
+	branch dongle_usb_vid_pid_store
+
+dongle_usb_hid_icon_config:
+	fetch 1,mem_dg_kb_bind_flag
+	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_kb_hidreportdesc
+	setarg USB_KBDATA_VENDOR_DEFINE_ADDR
+	store 2,mem_hidreportdesc_kb
+	jam 0x1a,mem_confdesc+26//hid_descriptor--keyboard length
+	rtn
+dongle_usb_kb_hidreportdesc:
+	setarg USB_KBDATA_ADDR
+	store 2,mem_hidreportdesc_kb
+	jam 0x3f,mem_confdesc+26//hid_descriptor--keyboard length	
+	rtn
+
+dongle_usb_device_name:
+	fetch 1,mem_dg_usb_device_name
+	rtn blank
+	arg mem_dg_usb_device_name,contr
+	arg mem_string2,contw
+	arg 30,loopcnt
+	branch memcpy
+
+
+dongle_all_powerful:
+	call g24_switch_work_mode
+dongle_all_powerful_loop:
+	call dongle_work_mode_auto
+	call dongle_usb_dispatch
+	branch dongle_all_powerful_loop
+
+dongle_pc_bind:
+	call g24_switch_work_mode
+dongle_pc_bind_loop:	
+	call dongle_work_mode_auto
+	call g24_bind_mode_auto
+	call dongle_usb_dispatch
+	branch dongle_pc_bind_loop
+
+dongle_g24_blank_data_process:
+	call dongle_g24_ms_blank_data
+	call dongle_g24_kb_blank_data
+	call dongle_g24_kb_sys_ctrl_blank_data
+	branch dongle_g24_kb_mul_blank_data
+
+dongle_g24_ms_blank_data:
+	bpatch patch07_2,mem_patch07
+	fetch 1,mem_dg_ms_blank_data_enable
+	rtn blank
+	arg G24_TIMER_MS_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_ms_blank_data_enable
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data
+	setarg 0
+	istore 7,contw
+dongle_usb_tx_ms_data:
+	jam USB_EP2_MS,mem_usb_ep2_data
+dongle_usb_tx_enable_ep2:
+	fetch 1,mem_usb_tx_enable
+	set1 2,pdata
+	store 1,mem_usb_tx_enable
+	rtn
+
+dongle_g24_kb_blank_data:
+	bpatch patch07_3,mem_patch07
+	fetch 1,mem_dg_kb_blank_data_enable
+	rtn blank
+	arg G24_TIMER_KB_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_kb_blank_data_enable
+	arg mem_usb_kb_data,contw
+	call memset0_16
+	fetch 8,mem_usb_kb_data
+	store 8,mem_dg_kb_data_last_data
+dongle_usb_tx_kb_data:	
+	jam KB_NORMAL_REPORT_ID,mem_usb_kb_data
+dongle_usb_tx_enable_ep1:
+	jam USB_EP1_KB,mem_usb_ep1_data
+	fetch 1,mem_usb_tx_enable
+	set1 1,pdata
+	store 1,mem_usb_tx_enable
+	rtn
+
+dongle_g24_kb_sys_ctrl_blank_data:
+	fetch 1,mem_dg_kb_system_crtl_blank_data_enable
+	rtn blank
+	arg G24_TIMER_KB_SYS_CRTL_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_kb_system_crtl_blank_data_enable
+	arg mem_usb_kb_system,contw
+	call memset0_16
+	jam KB_SYSTEM_CONCTRL_REPORT_ID,mem_usb_kb_system
+	fetch 2,mem_usb_kb_system
+	store 2,mem_dg_kb_system_sta_data
+dongle_usb_tx_sys_ctrl_data:
+	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
+	branch dongle_usb_tx_enable_ep2
+
+dongle_g24_kb_mul_blank_data:
+	bpatch patch07_4,mem_patch07
+	fetch 1,mem_dg_kb_mul_blank_data_enable
+	rtn blank
+	arg G24_TIMER_KB_MUL_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_kb_mul_blank_data_enable
+	arg mem_usb_kb_multikey,contw
+	call memset0_16
+	jam KB_MULTIKEY_REPORT_ID,mem_usb_kb_multikey
+	fetch 3,mem_usb_kb_multikey
+	store 3,mem_dg_kb_multikey_last_data	
+dongle_usb_tx_multikey_data:
+	jam USB_EP2_MULTIKEY,mem_usb_ep2_data
+	branch dongle_usb_tx_enable_ep2
+
+dongle_usb_dispatch:
+	bpatch patch07_5,mem_patch07
+	fetch 1,mem_usb_remote_wakeup
+	call dongle_clear_pc_sleep_flag,blank
+	call usb_isr
+	fetch 1,mem_usb0_get_set_report
+	rtn blank
+	jam 0,mem_usb0_get_set_report
+	fetch 2,mem_usb_setup_bValue_temp
+	arg PC_SET_REPORT,temp
+	isub temp,null
+	nrtn zero
+	//get usb host command
+	fetch 1,mem_usb0_set_report_data
+	rtnne PC_REPORT_ID
+	fetch 1,mem_usb0_set_report_data+1
+	beq COMMAND_MODE,dongle_dispose_cmd_mode
+	beq COMMAND_BIND,dongle_dispose_cmd_bind
+	beq COMMAND_CURRENT_PROJECT,dongle_dispose_cmd_current_project
+	beq COMMAND_CURRENT_MODE,dongle_dispose_cmd_current_mode
+	beq COMMAND_CURRENT_FW_VERSION,dongle_dispose_cmd_current_fw_version
+//	beq COMMAND_USER_DEFINED,dongle_dispose_cmd_user_defined
+dongle_usb0_data_ready_report_set0:
+	jam 0,mem_usb0_data_ready_report
+	rtn
+
+dongle_dispose_cmd_mode:
+	fetch 1,mem_usb0_set_report_data+2
+	beq COM_MODE_BIND,dongle_enter_bind_mode
+	branch dongle_usb0_data_ready_report_set0
+dongle_enter_bind_mode:
+	call g24_bind_mode_enable
+dongle_usb0_data_ready_report_set1:
+	jam 1,mem_usb0_data_ready_report
+	rtn
+
+dongle_dispose_cmd_bind:
+	fetch 1,mem_usb0_set_report_data+2
+	beq COM_BIND_GET,dongle_dispose_cmd_get_bind
+	beq COM_BIND_EXIT,dongle_dispose_cmd_exit_bind
+	beq COM_READ_MODE,dongle_dispose_cmd_read_mode
+	branch dongle_usb0_data_ready_report_set0
+dongle_dispose_cmd_get_bind:
+	fetch 1,mem_24g_bind_device_status
+	store 1,mem_usb0_get_report_data+1
+	branch dongle_usb0_data_ready_report_set1
+dongle_dispose_cmd_exit_bind:
+	call g24_work_mode_enable
+	branch dongle_dispose_cmd_get_bind
+dongle_dispose_cmd_read_mode:
+dongle_dispose_in_bind_mode:
+	jam COMMAND_BIND,mem_usb0_get_report_data+1
+	branch dongle_usb0_data_ready_report_set1	
+
+dongle_dispose_cmd_current_project:
+	jam PRODUCT_ID,mem_usb0_get_report_data+1
+	branch dongle_usb0_data_ready_report_set1
+
+dongle_dispose_cmd_current_mode:
+	fetch 1,mem_24g_work_mode
+	beq DONGLE_WORK,dongle_dispose_in_work_mode
+	beq DONGLE_BIND,dongle_dispose_in_bind_mode
+	rtn
+dongle_dispose_in_work_mode:
+	jam COMMAND_MODE,mem_usb0_get_report_data+1
+	branch dongle_usb0_data_ready_report_set1
+	
+dongle_dispose_cmd_current_fw_version:
+	jam FW_VERSION0,mem_usb0_get_report_data+1
+	jam FW_VERSION1,mem_usb0_get_report_data+2
+	jam FW_VERSION2,mem_usb0_get_report_data+3
+	jam FW_VERSION3,mem_usb0_get_report_data+4
+	branch dongle_usb0_data_ready_report_set1
+
+//dongle_dispose_cmd_user_defined:
+//	call g24_ackpayload_disable
+//	fetch 1,mem_usb0_set_report_data+2
+//	beq 0xff,soft_reset_chip
+//	rtn
+
+dongle_auto_bind:
+	call g24_mode_switch_init
+dongle_auto_bind_loop:
+	call g24_mode_switch_bind_work
+	call g24_mode_switch_bind_search
+	call dongle_work_mode_auto
+	call g24_bind_mode_auto
+	call g24_search_mode_auto
+	call dongle_usb_dispatch
+	branch dongle_auto_bind_loop
+
+dongle_work_mode_auto:
+	bpatch patch07_6,mem_patch07
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_WORK
+	call g24_work_mode_start
+	call dongle_g24_blank_data_process
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	branch g24_nodata_process
+
+dongle_ackpayload_prep:
+	fetch 1,mem_24g_data_type
+	beq DATATYPE_DEVICE1,dongle_ackpayload_prep_mouse
+	beq DATATYPE_DEVICE2,dongle_ackpayload_prep_keyboard
+dongle_ackpayload_prep_mouse:
+	fetch 1,mem_dg_pc_sleep_flag
+	bbit1 0,dongle_pc_sleep_ackpayload_prep_mouse
+	branch dongle_ackpayload_prep_end
+
+dongle_set_pc_sleep_flag:
+	fetch 1,mem_device_option
+	rtnne DVC_OP_DONGLE
+	jam 3,mem_dg_pc_sleep_flag
+	rtn
+dongle_clear_pc_sleep_flag:
+	jam 0,mem_dg_pc_sleep_flag
+	rtn
+
+dongle_ackpayload_prep_keyboard:
+	fetch 1,mem_dg_pc_sleep_flag
+	bbit1 1,dongle_pc_sleep_ackpayload_prep_keyboard
+dongle_ackpayload_prep_end:
+	fetch 1,mem_24g_ackpayload_enable
+	beq BIND_ACKPAYLOAD,dongle_g24_bind_ackpayload_prep
+	beq KB_LED_ACKPAYLOAD,dongle_g24_kb_led_ackpayload_prep
+	rtn
+
+dongle_pc_sleep_ackpayload_prep_mouse:
+	fetch 1,mem_dg_pc_sleep_flag
+	set0 0,pdata
+	store 1,mem_dg_pc_sleep_flag
+	branch dongle_pc_sleep_ackpayload_prep
+
+dongle_pc_sleep_ackpayload_prep_keyboard:
+	fetch 1,mem_dg_pc_sleep_flag
+	set0 1,pdata
+	store 1,mem_dg_pc_sleep_flag
+dongle_pc_sleep_ackpayload_prep:
+	jam 0x01,mem_24g_datalen
+	setarg 0xff
+	store 1,mem_24g_txbuf
+	rtn
+
+
+dongle_g24_bind_ackpayload_prep:
+	jam 1,mem_24g_ackpayload_enable
+	call g24_binding_device_check	//works on auto pair only
+	nrtn user3
+	branch g24_bind_ackpayload_prep
+
+dongle_g24_kb_led_ackpayload_prep:
+	fetch 1,mem_24g_rxbuf+2
+	beq DATATYPE_DEVICE1,dongle_g24_bind_ackpayload_prep
+	beq DATATYPE_ATTEMP,dongle_g24_bind_ackpayload_prep
+	jam 0,mem_usb_tx_win_enable
+	jam 0x01,mem_24g_datalen
+	fetch 1,mem_24g_led_status
+	store 1,mem_24g_txbuf
+	rtn
+
+dongle_g24_mouse:
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data	//report id
+	fetch 7,mem_24g_rxdata_temp+3	//key
+	istore 7,contw
+	fetch 1,mem_24g_rxdata_temp+3	//key
+	ncall dongle_g24_ms_enable_blank_data_forcibly,blank//get kb data
+	fetch 1,mem_24g_rxdata_temp+3	//key
+	call dongle_g24_ms_disable_blank_data_forcibly,blank
+	branch dongle_usb_tx_ms_data
+
+dongle_g24_ms_enable_blank_data_forcibly:
+	jam 1,mem_dg_ms_blank_data_enable
+	setarg TIMER_MS_BLANK_DELAY
+	arg G24_TIMER_MS_BLANK,queue
+	branch timer_init
+
+dongle_g24_ms_disable_blank_data_forcibly:
+	jam 0,mem_dg_ms_blank_data_enable
+	setarg 0
+	arg G24_TIMER_MS_BLANK,queue
+	branch timer_init
+
+dongle_g24_kb:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq 0,dongle_g24_kb_type0	//normal key
+	beq 2,dongle_g24_kb_type2	//system key
+	beq 3,dongle_g24_kb_type3	//multikey
+	branch g24_rx_interrupt_clear
+
+dongle_g24_kb_type0:
+	fetch 1,mem_24g_rxdata_temp+5
+	store 1,mem_24g_ackpayload_enable
+	jam 0,mem_24g_rxdata_temp+5
+	arg mem_usb_kb_data,contw
+	arg mem_24g_rxdata_temp+4,contr
+	arg 8,loopcnt
+	call memcpy
+	fetch 8,mem_usb_kb_data
+	ncall dongle_g24_kb_enable_blank_data_forcibly,blank//get kb data
+	fetch 8,mem_usb_kb_data	
+	call dongle_g24_kb_disable_blank_data_forcibly,blank
+	fetch 8,mem_usb_kb_data
+	store 8,mem_dg_kb_data_sta_data
+	fetcht 8,mem_dg_kb_data_last_data
+	isub temp,null
+	ncall dongle_usb_tx_enable_ep1,zero
+	fetch 8,mem_dg_kb_data_sta_data
+	store 8,mem_dg_kb_data_last_data
+	branch g24_rx_interrupt_clear
+
+dongle_g24_kb_enable_blank_data_forcibly:
+	jam 1,mem_dg_kb_blank_data_enable
+	setarg TIMER_KB_BLANK_DELAY
+	arg G24_TIMER_KB_BLANK,queue
+	branch timer_init
+
+dongle_g24_kb_disable_blank_data_forcibly:
+	jam 0,mem_dg_kb_blank_data_enable
+	setarg 0
+	arg G24_TIMER_KB_BLANK,queue
+	branch timer_init
+
+dongle_g24_kb_type3:
+	arg mem_usb_kb_multikey,contw
+	arg mem_24g_rxdata_temp+3,contr
+	arg 3,loopcnt
+	call memcpy
+	fetch 2,mem_usb_kb_multikey+1
+	ncall dongle_g24_kb_mul_enable_blank_data_forcibly,blank//get multikey data
+	fetch 2,mem_usb_kb_multikey+1
+	call dongle_g24_kb_mul_disable_blank_data_forcibly,blank
+	fetch 3,mem_usb_kb_multikey
+	store 3,mem_dg_kb_multikey_sta_data
+	fetcht 3,mem_dg_kb_multikey_last_data
+	isub temp,null
+	ncall dongle_usb_tx_multikey_data,zero
+	fetch 3,mem_dg_kb_multikey_sta_data
+	store 3,mem_dg_kb_multikey_last_data
+	branch g24_rx_interrupt_clear
+
+dongle_g24_kb_mul_enable_blank_data_forcibly:
+	jam 1,mem_dg_kb_mul_blank_data_enable
+	setarg TIMER_KB_MUL_BLANK_DELAY
+	arg G24_TIMER_KB_MUL_BLANK,queue
+	branch timer_init
+	
+dongle_g24_kb_mul_disable_blank_data_forcibly:
+	jam 0,mem_dg_kb_mul_blank_data_enable
+	setarg 0
+	arg G24_TIMER_KB_MUL_BLANK,queue
+	branch timer_init
+
+dongle_g24_kb_type2:
+	arg mem_usb_kb_system,contw
+	arg mem_24g_rxdata_temp+3,contr
+	arg 2,loopcnt
+	call memcpy
+	fetch 2,mem_usb_kb_system
+	ncall dongle_g24_kb_sys_enable_blank_data_forcibly,blank
+	fetch 2,mem_usb_kb_system
+	call dongle_g24_kb_sys_disable_blank_data_forcibly,blank
+	fetch 2,mem_usb_kb_system
+	store 2,mem_dg_kb_system_sta_data
+	fetcht 2,mem_dg_kb_system_last_data
+	isub temp,null
+	ncall dongle_usb_tx_sys_data,zero
+	fetch 2,mem_dg_kb_system_sta_data
+	store 2,mem_dg_kb_system_last_data
+	branch g24_rx_interrupt_clear
+
+dongle_g24_kb_sys_enable_blank_data_forcibly:
+	jam 1,mem_dg_kb_system_crtl_blank_data_enable
+	setarg TIMER_KB_SYS_CRTL_BLANK_DELAY
+	arg G24_TIMER_KB_SYS_CRTL_BLANK,queue
+	branch timer_init
+dongle_g24_kb_sys_disable_blank_data_forcibly:
+	jam 0,mem_dg_kb_system_crtl_blank_data_enable
+	setarg 0
+	arg G24_TIMER_KB_SYS_CRTL_BLANK,queue
+	branch timer_init
+
+dongle_usb_tx_sys_data:
+	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
+	branch dongle_usb_tx_enable_ep2
+
+
+dongle_g24_store_dvc2_bind_flag:
+	fetch 1,mem_device_option
+	rtnne DVC_OP_DONGLE
+	fetch 1,mem_dg_kb_bind_flag
+	rtneq DONGLE_KB_BIND_SUCCESS
+dongle_prep_soft_reset:
+	jam 1,mem_dg_kb_bind_success
+	rtn
+
+
+dongle_kb_bind_soft_reset:
+	fetch 1,mem_device_option
+	rtnne DVC_OP_DONGLE
+	fetch 1,mem_dg_kb_bind_success
+	rtn blank
+	jam 0,mem_temp
+dongle_wirte_efuse_bind_status:	
+	jam DONGLE_KB_BIND_SUCCESS,mem_dg_kb_bind_flag
+	call dongle_write_kb_bind_status
+	call dongle_read_kb_bind_status
+	fetch 1,mem_temp
+	increase 1,pdata
+	store 1,mem_temp
+	beq 0xff,soft_reset_chip
+	fetch 1,mem_dg_kb_bind_flag
+	bne DONGLE_KB_BIND_SUCCESS,dongle_wirte_efuse_bind_status
+	branch soft_reset_chip
+
+
+
+
+
+
+
+define G24
+define BLE
+define COMPILE_MOUSE
+
+keyboard_softreset_process:
+	fetch 1,mem_device_option
+	rtnne DVC_OP_KEYBOARD
+	call mouse_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag
+	branch soft_reset+1,blank
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	copy pdata,queue
+	fetch 4,mem_saved_gpio_in
+	qisolate0 pdata					// bt button gpio num
+	call keyboard_pb_set,true
+	branch soft_reset+2	
+
+keyboard_init:
+	call enable_authrom
+	call keyboard_setting_config
+	
+	call keyboard_gpio_init
+	call keyboard_low_vol_mult_set	
+	rtn wake
+	call keyboard_usb_check_enable
+	call keyboard_cb_fuction
+	fetch 1,mem_usb_addr
+	rtnbit1 7	
+keyboard_init_wireless:	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,keyboard_start_discovery
+	call mouse_check_select_device_by_switch
+	branch keyboard_start_work
+
+
+keyboard_usb_check_enable:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	setarg keyboard_usb_config_param
+	store 2,mem_cb_usb_config
+	jam MOUSE_USB_INTERFACE_REMOVE,mem_mouse_usb_vdd_status
+	branch keyboard_usb_interface_check
+
+keyboard_usb_config_param:
+	call keyboard_usb_config_kb_check
+	call keyboard_usb_config_param_init
+	branch keyboard_usb_config_param_setup
+
+keyboard_usb_config_kb_check:
+	jam DONGLE_KB_BIND_EEPROM_OFFECT,mem_mouse_usb_keyboard_flag
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	jam DONGLE_KB_BIND_SUCCESS,mem_mouse_usb_keyboard_flag
+	rtn
+
+keyboard_usb_config_param_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_USB_250,keyboard_usb_report_rate_set_250hz
+	bbit1 MOUSE_ENABLE_USB_500,keyboard_usb_report_rate_set_500hz
+	bbit1 MOUSE_ENABLE_USB_1000,keyboard_usb_report_rate_set_1000hz
+	jam 0x19,mem_wire_usb_interval
+	jam 0x08,mem_usb_tx_interval
+	rtn
+keyboard_usb_report_rate_set_250hz:
+	jam 0x0c,mem_wire_usb_interval
+	jam 0x04,mem_usb_tx_interval
+	rtn
+keyboard_usb_report_rate_set_500hz:
+	jam 0x06,mem_wire_usb_interval
+	jam 0x02,mem_usb_tx_interval
+	rtn
+keyboard_usb_report_rate_set_1000hz:
+	jam 0x03,mem_wire_usb_interval
+	jam 0x01,mem_usb_tx_interval
+	rtn
+
+keyboard_usb_config_param_setup:
+	call usb_tx_interval_config
+	call keyboard_usb_vid_pid_config
+	branch keyboard_usb_hid_icon_config
+
+keyboard_usb_vid_pid_config:
+	fetch 1,mem_usb_vid_pid
+	rtn blank
+	fetch 1,mem_mouse_usb_keyboard_flag
+	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_vid_pid_for_suit
+	branch dongle_usb_vid_pid_for_mouse_only_auto_pair
+
+keyboard_usb_hid_icon_config:
+	fetch 1,mem_mouse_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+
+
+
+keyboard_usb_interface_check:
+	bpatch patch08_1,mem_patch08
+	fetcht 1,mem_usb_offline_check_gpio
+	call gpio_get_bit
+	branch keyboard_usb_gpio_low,true
+	branch keyboard_usb_gpio_high
+
+
+keyboard_usb_gpio_low:
+	fetch 1,mem_mouse_usb_vdd_status
+	rtneq MOUSE_USB_INTERFACE_REMOVE
+	jam MOUSE_USB_INTERFACE_REMOVE,mem_mouse_usb_vdd_status
+	jam 0,mem_usb_device_enumeration_endflag
+	jam 0,mem_usb_status
+	jam 0,mem_usb_state
+	branch keyboard_init_wireless
+	
+	
+keyboard_usb_gpio_high:
+	fetch 1,mem_mouse_usb_vdd_status
+	rtneq MOUSE_USB_INTERFACE_INSERT
+	jam MOUSE_USB_INTERFACE_INSERT,mem_mouse_usb_vdd_status
+	call mouse_24g_stop
+	call mouse_stop_bluetooth_mode
+	call keyboard_device_led_all_off
+	branch usb_init
+	
+
+
+keyboard_setting_config:
+	rtn wake
+
+	call g24_transmit_init
+	call g24_chmap_param_init
+	
+	call keyboard_param_init
+	fetcht 1,mem_mcu_rstb_gpio
+	call gpio_out_inactive
+
+	call keyboard_device_led_off
+	call mouse_device_multi_led_parm_init
+	call le_set_fixed_ltk_justwork
+
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_OTP,keyboard_load_otp_info_check	
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_load_eeprom_info_check
+	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_check
+	rtn
+
+
+	
+	
+keyboard_param_init:
+
+	call mouse_param_common_init
+
+	jam 0,mem_same_keyvalue_timerout_flag	
+	setarg 0x230170		// 0x0170--3.7V  0x0123--3.0V  0x0146--3.2V  0x0153--3.3V
+	store 3,mem_mouse_vdd_full_vol
+	setarg 0x015301
+	istore 3,contw
+	arg mem_le_adv_swift_pair,contw
+	arg 20,loopcnt
+	call clear_mem
+
+	fetch 1,mem_le_name_len
+	sub pdata,12,null
+	nbranch ble_name_set_no_swift_pair,positive
+	setarg 0x06ff06
+	store 3,mem_le_adv_swift_pair
+	setarg 0x000300
+	istore 3,contw
+	setarg 0x80
+	istore 1,contw
+ble_store_le_name:
+	fetch 1,mem_le_name_len
+	increase 1,pdata
+	copy pdata,loopcnt
+	arg mem_le_scan_data,contr			// 7byte + mem_le_scan_data
+	branch memcpy
+	
+ble_name_set_no_swift_pair:
+	arg mem_le_adv_swift_pair,contw
+	branch ble_store_le_name
+
+/////////////////////////////////////////////////////////------gpio------///////////////////////////////////////////////////////////
+keyboard_gpio_init:
+//	call p_lpm_otp_option_disable_ice_mode
+
+	fetcht 1,mem_mcu_clk_gpio
+	call gpio_set_high_impedance
+	fetcht 1,mem_mcu_stb_gpio
+	call gpio_set_high_impedance
+	fetcht 1,mem_mcu_rstb_gpio
+	call gpio_set_high_impedance
+	//row init
+	setarg mem_key_row_gpio
+	store 2,mem_kb_row_ptr
+	//col init
+	setarg mem_key_col_gpio
+	store 2,mem_kb_col_ptr
+	//portA and B init
+	setarg mem_key_excol_gpio
+	store 2,mem_kb_excol_ptr
+keyboard_keyscan_gpio_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+
+keyboard_key_row_init:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keboard_gpio_set_high_impedance,zero
+	increase 1,regb
+	loop keyboard_key_row_init
+	call lpm_write_gpio_wakeup
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	copy pdata,regc
+	arg 11,loopcnt
+	
+keyboard_key_cow_init:
+	ifetcht 1,regb
+	isolate1 7,temp						// exmcu gpio
+	ncall gpio_set_high_impedance,true
+	increase 1,regb
+	loop keyboard_key_cow_init
+	rtn
+keboard_gpio_set_high_impedance:
+
+	call gpio_set_high_impedance
+	ifetcht 1,regb
+	branch gpio_set_low_pullup
+
+
+	
+keyboard_low_vol_mult_set:
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,keyboard_low_vol_mult_ble_set
+	setarg 0x5d4800
+	store 4,mem_24g_long_sleep_set1
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0	
+	branch mouse_24g_long_sleep_set
+keyboard_low_vol_mult_ble_set:
+	jam 0x0c,mem_lpm_mult_init
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	jam 0x10,mem_lpm_mult_init
+	fetch 1,mem_mouse_current_mult_timer
+	branch mouse_current_mult_reinit,blank
+	rtn
+///////////////////////////////////////otp/////////////////////////////////////////////////////////////
+
+keyboard_pairing_check_otp_offset:
+	fetch 2,mem_otp_read_retention_offset
+	arg 0x528,temp   //24*55
+	isub temp,null
+	nrtn positive
+	branch assert
+//  otp process	
+keyboard_load_otp_info_check:
+	bpatch patch08_2,mem_patch08
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_device_info_g24_init
+	beq MODE_BT_DEVICE1,keyboard_load_otp_device_info_ble_init
+	rtn	
+	
+keyboard_load_otp_device_info_g24_init:
+	arg 80,regd
+	setarg 0x400
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fcc,pdata
+	arg 4,temp
+	arg 4,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info_ble_init:
+	arg 280,regd
+	setarg 0x400
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fc2,pdata
+	arg 14,temp		
+	arg 14,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info:
+	storet 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	arg 0,regc
+keyboard_load_otp_info_check_page_loop:
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch keyboard_load_otp_info_check_first_time,blank
+	increase 1,regc
+	fetch 2,mem_pdatatemp
+	isub regc,null
+//	nbranch p_keyboard_load_otp_info_check_overwise,positive
+	copy regb,pdata
+	isub regd,pdata
+	branch keyboard_load_otp_info_check_page_loop
+keyboard_load_otp_info_check_first_time:
+	
+	sub regc,0,null
+	branch keyboard_load_otp_info_check_first_time_process,zero
+keyboard_load_otp_info_check_first_time_loop_init:
+	copy regb,pdata
+	iadd regd,pdata
+keyboard_load_otp_info_check_first_time_loop:	
+	isub rege,pdata
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch keyboard_load_otp_info_check_offset_process,blank
+	copy regb,pdata
+	branch keyboard_load_otp_info_check_first_time_loop
+keyboard_load_otp_info_check_first_time_process:
+	storer rege,1,mem_otp_read_retention_offset
+	rtn
+keyboard_load_otp_info_check_offset_process:
+	bpatch patch08_3,mem_patch08
+	setarg 0x1fd0
+	isub regb,pdata
+	store 2,mem_otp_read_retention_offset		//store the next field offset ,convenient for next storage
+	copy regb,pdata
+	iadd rege,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_info_check_offset_process_g24
+	beq MODE_BT_DEVICE1,keyboard_load_otp_info_check_offset_process_ble
+	rtn
+
+keyboard_load_otp_info_check_offset_process_g24:	
+	fetch 6,mem_otp_read_retention_memory
+	store 4,mem_mouse_24g_addr
+	branch keybaord_load_device_info
+
+keyboard_load_otp_info_check_offset_process_ble:
+	fetch 1,mem_otp_read_retention_memory
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+	store 1,mem_kb_computer_system
+	fetch 1,mem_otp_read_retention_memory+1
+	store 1,mem_device1_type
+	fetch 6,mem_otp_read_retention_memory+2
+	store 6,mem_device1_addr
+	fetch 6,mem_otp_read_retention_memory+8
+	store 6,mem_device1_locall_addr
+	branch mouse_select_reconn_device
+
+
+keyboard_load_otp_info_check_overwise:
+	branch assert
+
+	
+keyboard_store_device_info:
+	bpatch patch08_4,mem_patch08
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_OTP,keyboard_store_otp_device_info
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eeprom_device_info
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	rtn
+	
+keyboard_store_otp_device_info:
+	rtn
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,keyboard_store_otp_device_info_ble
+	rtn
+
+keyboard_store_otp_device_info_g24:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fd0
+	isub temp,regb
+	arg mem_mouse_24g_addr,rega
+	arg 4,loopcnt
+	call otp_write   
+	fetcht 2,mem_otp_read_retention_offset
+	increase 4,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn
+
+keyboard_store_otp_device_info_ble:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fd0
+	isub temp,regb
+	
+
+	add regb,1,regb	
+	arg mem_device1_addr,rega
+	arg 6,loopcnt
+	call otp_write
+
+	add regb,7,regb	
+	arg mem_device1_locall_addr,rega
+	arg 6,loopcnt
+	branch otp_write 
+
+keybaord_load_device_info:
+	fetch 4,mem_mouse_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	rtn
+
+/////////////////////////////////////cb_function//////////////////////////////////////////////////////
+keyboard_cb_fuction:
+	bpatch patch08_5,mem_patch08
+	setarg mouse_24g_before_lpm_sleep
+	store 2,mem_cb_before_lpm_sleep
+	setarg keyboard_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg keyboard_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	setarg keyboard_lpm_before_common
+	store 2,mem_cb_24g_lpm_before
+	setarg keyboard_le
+	store 2,mem_cb_le_process
+	
+	setarg keyboard_process_lpm_before
+	store 2,mem_cb_before_lpm
+	
+	setarg keyboard_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg keyboard_idle
+	store 2,mem_cb_idle_process
+	setarg keyboard_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg mouse_le_bb_event_connect_complete
+	store 2,mem_cb_att_write	
+	setarg keyboard_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg mouse_spi_write_flash_cb
+	store 2,mem_cb_spi_flash_write_complate
+	setarg mouse_lpm_check_wake_lock
+	store 2,mem_cb_check_wakelock
+	setarg mouse_le_transmit
+	store 2,mem_cb_ble_transmit
+	setarg mouse_set_lpm_mult
+	store 2,mem_cb_bt_set_mult
+	rtn
+
+/////////////////////////////////////keyboard event/////////////////////////////////////////////////////////////////////
+
+keyboard_priority_bb_event:	
+	bpatch patch08_6,mem_patch08
+	copy regc,pdata	
+
+	beq BT_EVT_LE_START_ENC,keyboard_le_ll_start_encryt
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,keyboard_le_parse_conn_param_accepted
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,keyboard_le_conn_param_update_rsp_recieved
+	beq BT_EVT_LE_DISCONNECTED,keyboard_le_bb_disconnected
+
+	beq BT_EVT_LE_CONNECTED,keyboard_le_bb_event_connected
+	beq BT_EVT_BUTTON_LONG_PRESSED,keyboard_bb_event_discovery_btn
+	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
+	beq BT_EVT_LE_ENC_INFO,mouse_le_enc_info
+
+	beq BT_EVT_LE_PAIRING_COMPLETE,app_ble_store_reconn_info	
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mouse_le_parse_conn_param_accepted
+
+	beq BT_EVT_24G_PAIRING_COMPLETE,keyboard_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,keyboard_24g_attempt_success
+	beq BT_EVT_24G_ATTEMPT_FAIL,keyboard_24g_attempt_fail
+
+
+	rtn
+
+
+
+
+
+keyboard_le_bb_event_connected:
+	jam 0,mem_mouse_long_mult_flag
+
+	jam 1,mem_mouse_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_mouse_le_reconnect_flag
+	nbranch keyboard_le_bb_event_connected_next,blank
+	jam 0x14,mem_mouse_send_secutiry_request_timer
+keyboard_le_bb_event_connected_next:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set0 APP_DISC_BY_BUTTON ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	jam 0,mem_mouse_direct_timer
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	call mouse_no_data_timer_init
+	branch keyboard_stop_discovery
+
+
+keyboard_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_keyboard_le_send_conn_param_update
+	store 1,mem_keyboard_le_send_conn_param_update_timer
+	store 1,mem_mouse_le_bb_connected_flag	
+keyboard_le_bb_disconnected_next:	
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	jam 0,mem_mouse_clear_sensor_data_flag
+	call le_clr_config_more_data
+	branch keyboard_bb_disconnected
+keyboard_bb_disconnected:
+	call mouse_bb_discon_clear_stack
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,keyboard4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_start_discovery
+keyboard4_0_event_bb_disconn:
+	call mouse_le_clean_connect_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	call ice_break
+	branch keyboard_app_enter_hibernate	
+
+	
+keyboard_le_ll_start_encryt:
+	fetch 1,mem_mouse_le_reconnect_flag
+	beq 1,keyboard_le_ll_reconn_start_encryt
+	jam 20,mem_le_start_encrypt_timer
+	jam 5,mem_le_start_auto_reco_timer
+	branch mouse_le_ll_enable_start_enc_flag
+keyboard_le_ll_reconn_start_encryt:
+	call mouse_updata_le_param
+	jam 5,mem_le_start_encrypt_timer
+	branch mouse_le_ll_enable_start_enc_flag
+
+keyboard_le_parse_conn_param_accepted:
+	fetch 1,mem_le_new_conninterval
+	sub pdata,LE_INTERVAL_15MS,null
+	nbranch mouse_le_conn_param_lpm_disable,positive
+	fetch 1,mem_le_new_connslavelatency
+	fetcht 1,mem_lpm_mult_init
+	isub temp,null
+	branch mouse_le_lpm_mult_reinit,positive
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult
+	branch mouse_le_conn_param_lpm_enable
+
+keyboard_le_conn_param_update_rsp_recieved:
+	fetch 1,mem_keyboard_le_send_conn_param_update
+	nrtn blank
+	jam 1,mem_keyboard_le_send_conn_param_update
+	jam 30,mem_keyboard_le_send_conn_param_update_timer
+	rtn	
+
+keyboard_24g_pairing_complete:
+	call keyboard_get_24g_led_enable
+	call mouse_no_data_timer_init
+	branch mouse_24g_pairing_complete_common
+
+keyboard_24g_attempt_success:
+	call keyboard_get_24g_led_enable
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_mouse_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	call mouse_device_poweron_led_config
+	call mouse_no_data_timer_init
+	branch mouse_24g_attempt_success
+
+keyboard_24g_get_led:
+	jam DEVICE_DATA_TPYE_STANDARD_KEYBOARD,mem_keyboard_data_send_flag
+	call keyboard_clear_key_data
+	jam 0x03,mem_customer_key_press+2
+	rtn
+
+keyboard_24g_led_get_status_check:
+	arg 6,loopcnt
+	arg mem_keyboard_tx_data+3,contr
+keyboard_24g_led_data_check:
+	ifetch 1,contr
+	beq HID_KEY_NUM_LOCK,keyboard_get_24g_led_enable
+	beq HID_KEY_CAPS_LOCK,keyboard_get_24g_led_enable
+	beq HID_KEY_SCROLL_LOCK,keyboard_get_24g_led_enable
+	loop keyboard_24g_led_data_check
+	rtn
+
+keyboard_get_24g_led_enable:
+	jam 0x03,mem_keyboard_led_status_get
+	jam 1,mem_keyboard_data_change_flag
+	rtn
+
+keyboard_set_repeat_send_flag:
+	jam 1,mem_24g_repeat_send_flag
+	rtn
+
+
+keyboard_24g_attempt_fail:
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch keyboard_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,keyboard_24g_fast_conn_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,keyboard_24g_attempt_fail_enter_hibernate
+	branch keyboard_24g_attempt_fail_enter_hibernate
+
+keyboard_24g_attempt_fail_enter_hibernate:
+	call mouse_24g_stop
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_app_enter_hibernate
+	rtn	
+
+keyboard_24g_fast_conn_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_start_auto_pair
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_mouse_24g_addr		// auto pair first time
+	branch keyboard_24g_start_pair_mode,blank
+	branch mouse_24g_reconn_dongle_start
+
+keyboard_24g_hibernate_set:
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 8,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	jam 1,mem_sensor_shutdown_flag
+	branch keyboard_g24_long_sleep
+
+
+/////////////////////////////////////keyboard timer/////////////////////////////////////////////////////////////////////
+
+keyboard_bb_event_timer:
+	bpatch patch08_7,mem_patch08
+	call mouse_adc_read
+	call keyboard_low_voltage_param_set
+	call mouse_low_voltage_led_timer
+
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	call keyboard_24g_repeat_send_data
+	call keyboard_24g_led_status_get_timer
+	
+	//led
+	
+	call keyboard_check_discovery_timeout_timer
+
+	call keyboard_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call keyboard_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	call keyboard_le_send_conn_param_update_timer	
+	call keyboard_le_auto_recognize_timer
+
+	call mouse_current_mult_update_timer
+	call mouse_wheel_trigger_timer
+	call keyboard_store_information_delay_timer
+	call keyboard_capslock_led_on_timer
+	call keyboard_long_press_timer
+	call keyboard_commbination_delay_release_timer
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_check_no_data_timeout_timer
+	branch mouse_check_no_data_timeout_timer
+
+
+keyboard_commbination_key_process:
+	fetch 1,mem_commbination_key_statue
+	rtnne COMMBINATION_KEY_STATE_DOWN	
+	arg mem_combination_ui_button_count,regc
+	arg mouse_bluetooth_fast_conn_init,regb
+	branch timer_single_step
+
+keyboard_commbination_fast_conn_bt_check:
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_fast_conn_bt
+	isub temp,null
+	branch keyboard_commbination_key_down,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down,zero
+	branch mouse_commbination_key_up
+
+keyboard_commbination_key_down:
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_DOWN
+	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
+	rtn
+
+
+keyboard_check_discovery_timeout_timer:
+	arg mem_mouse_discovery_timer,regc
+	arg keyboard_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+keyboard_check_discovery_timeout:
+	call keyboard_stop_discovery
+	branch keyboard_app_enter_hibernate	
+
+
+
+
+keyboard_store_information_delay_timer:
+	arg mem_store_information_delay_timer,regc
+	arg keyboard_store_device_info_check,regb
+	branch timer_single_step
+	
+keyboard_store_device_info_check:
+	call keyboard_store_device_info
+	fetch 1,mem_mouse_need_soft_reset
+	nbranch mouse_soft_reset,blank
+	rtn
+
+keyboard_low_voltage_param_set:
+	fetch 1,mem_mouse_adc_last_low_voltage_flag
+	branch keyboard_low_voltage_param_set_33V,blank
+	jam 58,mem_mouse_vdd_low_vol
+	rtn
+keyboard_low_voltage_param_set_33V:
+	jam 53,mem_mouse_vdd_low_vol
+	rtn	
+
+keyboard_le_auto_recognize_timer:
+
+	arg mem_le_start_auto_reco_timer,regc
+	arg keyboard_le_send_att_find_by_type_value_request_ancs,regb
+	branch timer_single_step
+
+keyboard_check_direct_timeout_timer:	
+	arg mem_mouse_direct_timer,regc
+	arg mouse_check_direct_timeout,regb
+	call timer_single_step
+	branch mouse_check_direct_timeout_timer+3
+
+keyboard_le_battery_updata_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	branch mouse_le_battery_updata_timer
+
+keyboard_le_send_conn_param_update_timer:
+	arg mem_keyboard_le_send_conn_param_update_timer,regc
+	arg mouse_updata_le_param,regb
+	branch timer_single_step
+
+keyboard_24g_repeat_send_data:
+	fetch 1,mem_24g_repeat_send_flag
+	rtn blank
+	jam 0,mem_24g_repeat_send_flag
+	jam 1,mem_keyboard_data_change_flag
+	call g24_txdata_prep
+	branch keyboard_g24_transmit_process
+
+keyboard_24g_led_status_get_timer:
+	arg mem_keyboard_led_status_get_timer,regc
+	arg keyboard_24g_led_status_clear,regb
+	branch timer_single_step
+
+keyboard_24g_led_status_clear:
+	jam 0,mem_keyboard_led_status_get
+	rtn
+
+
+
+
+
+keyboard_device_led_off:
+	call mouse_device_multi_led_off
+	call keyboard_capslock_led_off
+keyboard_power_led_off:
+	fetcht 1,mem_keyboard_power_led_gpio
+	branch gpio_out_inactive
+keyboard_numlock_led_off:
+	rtn
+
+
+keyboard_capslock_led_on_timer:
+	fetch 1,mem_keyboard_caps_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_mouse_no_data_timer
+	rtn blank
+	fetch 2,mem_mouse_no_data_timeout
+	fetcht 2,mem_mouse_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_caps_led_on_timer
+	isub temp,pdata
+	branch keyboard_capslock_led_check_on,positive
+keyboard_capslock_led_off:
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_inactive
+
+
+
+keyboard_capslock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_CAPSLOCK,keyboard_capslock_led_off
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_active
+
+keyboard_long_press_timer:
+	arg mem_same_keyvalue_timer,regc
+	arg keyboard_long_press_timerout,regb
+	branch timer_single_step_2B
+
+keyboard_long_press_timerout:
+	jam 1,mem_same_keyvalue_timerout_flag	
+	branch app_enter_hibernate
+
+keyboard_commbination_delay_release_timer:	
+	arg mem_keyboard_commbination_control_key_delay_release_timer,regc
+	arg keyboard_commbination_key_null_set,regb
+	branch timer_single_step
+
+
+keyboard_check_no_data_timeout_timer:
+	arg mem_mouse_no_data_timer,regc
+	arg keyboard_check_no_data_timeout,regb
+	branch timer_single_step_2B
+
+keyboard_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_24g_hibernate_set
+	branch mouse_disconnect
+
+
+keyboard_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call mouse_24g_stop,true
+	call mouse_disconnect
+	call mouse_le_clean_connect_flag
+	branch keyboard_start_discovery
+	
+keyboard_start_discovery:
+	bpatch patch09_0,mem_patch09
+	call mouse_device_discovery_led_config
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	call keyboard_capslock_led_off
+	jam 0xff,mem_kb_computer_system
+
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	call mouse_bluetooth_fast_conn_disable
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,keyboard_start_discovery_norandom
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,keyboard_start_discovery_norandom
+	fetcht 2,mem_random_addr_increase_count
+	increase 1,temp
+	storet 2,mem_random_addr_increase_count
+	storet 2,mem_le_lap+1
+	random pdata					//random ble addr
+	store 1,mem_le_lap
+keyboard_start_discovery_norandom:
+	fetch 3,mem_mouse_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_mouse_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_mouse_direct_timer
+	store 1,mem_mouse_bluetooth_reconnect_timeout
+	store 1,mem_mouse_clear_sensor_data_flag
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	branch mouse_check_51cmd_adv
+
+	
+keyboard_low_voltage_led_blink_disable:
+	jam 0,mem_mouse_adc_last_low_voltage_flag
+	branch mouse_low_voltage_led_off_judge
+	
+keyboard_stop_discovery:
+	bpatch patch09_1,mem_patch09
+	setarg 0
+	store 2,mem_mouse_discovery_timer	
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+	jam 0,mem_mouse_bluetooth_reconnect_timeout
+	call mouse_stop_le_adv
+	branch keyboard_device_led_off
+
+
+keyboard_store_remote_bdaddr:
+	bpatch patch09_2,mem_patch09
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call mouse_check_device_addr
+	branch mouse_unplug_clean_bdaddr
+	
+/////////////////////////////////////keyboard process///////////////////////////////////////////////////////////////////////////////
+keyboard_idle:
+	bpatch patch09_3,mem_patch09
+	call mouse_low_voltage_led_no_enter_lpm
+	branch ui_check_paring_button
+	
+
+
+keyboard_start_work:
+	bpatch patch09_4,mem_patch09
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_ADC,keyboard_start_work_next
+	call enable_adc
+	call vdd_calculate_by_mode
+	store 2,mem_mouse_vdd_now_vol
+//	fetcht 2,mem_2v_adc_vinlpm_data
+	fetch 2,mem_adc_current_value
+	isub temp,null
+	branch keyboard_start_work,positive
+	arg mem_mouse_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down
+keyboard_start_work_next:
+
+	fetch 1,mem_keyboard_pairing_type
+	call keyboard_enable_bt_button_pairing,blank
+	fetch 1,mem_keyboard_bt_button_flag
+	nrtn blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_reconn_general_dongle
+	call mouse_bluetooth_fast_conn_disable
+	fetch 6,mem_device1_addr	
+	branch mouse_bluetooth_fast_conn_init ,blank
+	branch mouse_start_reconnect_device
+
+
+	
+
+
+
+	
+
+
+
+/////////////////////////////////////keyboard le///////////////////////////////////////////////////////////////////////////////////////
+keyboard_le:
+	bpatch patch09_5,mem_patch09
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,keyboard_le_next
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+keyboard_le_next:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_24G_PAIRING_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,mouse_le_send_empty_packet
+	call keyboard_motion
+	nrtn user
+	call mouse_current_mult_update
+	call mouse_wheel_trigger
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_le_send_mouse_data
+	fetch 1,mem_customer_key
+	branch mouse_le_send_keyboard_package_data		
+
+
+
+
+
+
+kscan_dispatch:
+	fetch 1,mem_device_option
+	rtnne DVC_OP_KEYBOARD
+	call keyboard_keyscan
+	call keyboard_key_process
+	branch keyboard_special_key_check
+
+
+
+
+
+
+keyboard_keyscan:
+	bpatch patch09_6,mem_patch09
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_keyscan_get_exmcu_value
+	call keyboard_keyscan_get_mcu_value
+	call keyboard_stb_state_high							// exmcu sleep
+keyboard_keyscan_copy_value:
+	fetch 2,mem_kb_excol_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+keyboard_compare_col_excol_gpio_loop:		// loop 11 times
+	ifetcht 1,regb
+	fetch 2,mem_kb_col_ptr
+	copy pdata,rega
+	copy rega,regc
+	arg 20,loopcnt
+keyboard_compare_col_gpio_loop:
+	ifetch 1,rega
+	isub temp,null
+	branch keyboard_copy_value_exmcu_to_mcu,zero
+	increase 1,rega
+	loop keyboard_compare_col_gpio_loop
+keyboard_compare_col_excol_gpio_loop_next:	
+	increase 1,regb
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,10,null
+	branch keyboard_compare_col_excol_gpio_loop,positive
+	
+	rtn
+	
+keyboard_copy_value_exmcu_to_mcu:
+	fetch 2,mem_keyscan_value_ptr
+	copy pdata,contw
+	copy rega,pdata	
+	isub regc,pdata 
+	iadd contw,contw							// offset = rega-regc
+	fetch 2,mem_keyscan_exmcu_value_ptr
+	copy pdata,regc
+	fetch 1,mem_keyscan_col_loop_count
+	iadd regc,regc	
+	ifetch 1, regc								// offset = mem_keyscan_col_loop_count
+	istore 1,contw
+	branch keyboard_compare_col_excol_gpio_loop_next
+	
+keyboard_keyscan_get_exmcu_value:	//	8*11 times
+	bpatch patch09_7,mem_patch09
+	call keyboard_stb_state_high
+	call keyboard_clk_input	
+keyboard_keyscan_exmcu_start:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,keyboard_keyscan_reset_exmcu 				// 953us reset exmcu
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch keyboard_keyscan_exmcu_start,true
+	nop 20
+	call keyboard_clk_state_high
+	call keyboard_stb_state_low
+	jam 0,mem_keyscan_col_loop_count
+keyboard_keyscan_exmcu_start_loop:	// clk:0 1 0 1 0 1 0 1 0 1 0
+	call keyboard_clk_state_low
+	call keyboard_keyscan_exmcu_get_col_value
+	call keyboard_clk_state_high
+	call keyboard_keyscan_exmcu_get_col_value
+	sub pdata,9,null
+	branch keyboard_keyscan_exmcu_start_loop,positive
+	call keyboard_clk_state_low
+	call keyboard_keyscan_exmcu_get_col_value
+	branch keyboard_clk_state_high	
+	
+keyboard_keyscan_exmcu_get_col_value:
+	jam 0,mem_keyscan_value_temp
+	nop 50
+	call keyboard_keyscan_get_col_value
+	fetch 2,mem_keyscan_exmcu_value_ptr
+keyboard_keyscan_value_store:
+	copy  pdata,contw
+	fetch 1,mem_keyscan_col_loop_count
+	iadd contw,contw
+	fetch 1,mem_keyscan_value_temp
+	istore 1,contw
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	rtn	
+
+	
+keyboard_keyscan_get_mcu_value: 		// 8*20 = 130us
+	nop 20					// wait exmcu keyscan done
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+keyboard_keyscan_mcu_start:		// loop 20 times
+	jam 0,mem_keyscan_value_temp
+	ifetcht 1,regb
+	isolate1 7,temp								// exmcu gpio
+	branch keyboard_keyscan_mcu_start_loop,true		//???c????0012?? io
+	call gpio_out_active
+	call keyboard_keyscan_get_col_value
+	ifetcht 1,regb
+	call gpio_set_high_impedance
+keyboard_keyscan_mcu_start_loop:
+	increase 1,regb
+	fetch 2,mem_keyscan_value_ptr		//mcu c?????
+	call keyboard_keyscan_value_store
+	sub pdata,19,null						//sub pdata,19,null
+	branch keyboard_keyscan_mcu_start,positive
+	rtn	
+
+	
+keyboard_keyscan_get_col_value:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regc
+	arg 8,loopcnt
+	
+keyboard_keyscan_get_col_value_loop:		// loop 8 times
+	ifetcht 1,regc
+	call gpio_get_bit
+	fetch 1,mem_keyscan_value_temp
+	rshift pdata,pdata
+	setflag true,7,pdata
+	store 1,mem_keyscan_value_temp
+	increase 1,regc
+	loop keyboard_keyscan_get_col_value_loop
+	rtn
+keyboard_keyscan_reset_exmcu:
+	fetcht 1,mem_mcu_rstb_gpio
+	call gpio_out_active
+	nop 20
+	fetcht 1,mem_mcu_rstb_gpio
+	call gpio_out_inactive
+	nop 6000						// waiting for exmcu reset done 502us > 301.9us
+	rtn
+	branch keyboard_keyscan	
+keyboard_clk_state_high:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_out_inactive
+
+keyboard_clk_state_low:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_out_active
+keyboard_gpio_config_input_pu:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero 
+	set0 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+keyboard_clk_input:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_config_input
+	
+keyboard_stb_state_high:
+	fetcht 1,mem_mcu_stb_gpio
+	branch gpio_out_inactive
+
+keyboard_stb_state_low:
+	fetcht 1,mem_mcu_stb_gpio
+	branch gpio_out_active
+
+
+
+
+
+
+
+
+
+// same key press check	
+keyboard_press_change_or_no_key:
+	jam 0,mem_same_keyvalue_timerout_flag
+	fetch 2,mem_same_keyvalue_timer_init
+	store 2,mem_same_keyvalue_timer
+	rtn
+
+keyboard_key_process:
+	// key deshake
+	bpatch patch0a_0,mem_patch0a
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_check,regb
+	arg 20,loopcnt
+	call string_compare
+	nbranch keyboard_press_change_or_no_key,zero	
+	call keyboard_keyscan_value_current_zero_check
+	call keyboard_press_change_or_no_key,blank
+
+	call keyboard_ghost_key_check
+	fetch 1,mem_mouse_ghost_flag
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_PRESS
+	rtneq CAMMBINATION_KEY_HOLD
+	rtneq CAMMBINATION_KEY_WAIT_RELEASE
+
+	// keyvalue get from map,and in or out process
+	jam 0,mem_keyscan_col_loop_count
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_old,regb
+keyboard_keyvalue_process:		// loop 20 times
+	ifetcht 1,rega
+	ifetch 1,regb
+	ixor  temp,pdata
+	branch keyboard_keyvalue_process_loop,blank
+	store 1,mem_keyscan_value_temp
+	storet 1,mem_keyboard_press_flag_temp
+	istoret 1,regb
+	jam 1,mem_keyboard_data_change_flag
+	jam 0,mem_keyboard_keyvalue_bit_loop_count
+keyboard_keyvalue_change:			// loop 8 times
+	fetch 1,mem_keyscan_value_temp
+	bbit0 0,keyboard_keyvalue_change_loop
+	fetch 1,mem_keyscan_col_loop_count
+	mul32 pdata,8,pdata
+	fetcht 1,mem_keyboard_keyvalue_bit_loop_count
+	iadd temp,pdata									// map offset
+	arg mem_keyboard_keyvalue_map,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,mem_keyboard_keyvalue_temp				// keyvalue
+	call keyboard_keyvalue_fn_replace
+	call keyboard_keyvalue_commbination_replace
+	call keyboard_keyvalue_in_out
+keyboard_keyvalue_change_loop:
+	fetch 1,mem_keyscan_value_temp
+	rshift pdata,pdata
+	store 1,mem_keyscan_value_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rshift pdata,pdata
+	store 1,mem_keyboard_press_flag_temp
+	fetch 1,mem_keyboard_keyvalue_bit_loop_count
+	increase 1,pdata
+	store 1,mem_keyboard_keyvalue_bit_loop_count
+	loop keyboard_keyvalue_change
+keyboard_keyvalue_process_loop:
+	increase 1,rega
+	increase 1,regb	
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,19,null
+	branch keyboard_keyvalue_process,positive
+	rtn
+
+keyboard_keyscan_value_current_zero_check:
+	fetch 8,mem_keyscan_value_current
+	nrtn blank
+	fetch 8,mem_keyscan_value_current+8
+	nrtn blank
+	fetch 4,mem_keyscan_value_current+16
+	nrtn blank
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	rtn
+
+
+//**input:mem_keyscan_value_current   **output:mem_mouse_ghost_flag   	mem_keyboard_all_press_key_count
+keyboard_ghost_key_check:	// (col[i] press >= 2) && (row[j] press >=2) && (c[i]_r[j] press) 
+	bpatch patch0a_1,mem_patch0a
+	jam 0,mem_mouse_ghost_flag
+	jam 0,mem_keyboard_all_press_key_count
+	arg mem_keyscan_value_current,rega
+	arg 20,loopcnt
+keyboard_ghost_key_check_loop:
+	jam 0,mem_keyboard_current_col_press_key_count
+	ifetch 1,rega
+	branch keyboard_ghost_key_check_next_loop,blank
+keyboard_current_col_press_key_count_check:	
+	fetcht 1,mem_keyboard_current_col_press_key_count
+	increase 1,temp
+	storet 1,mem_keyboard_current_col_press_key_count
+	copy pdata,temp
+	increase -1,pdata
+	iand temp,pdata									// pdata &= pdata -1;  check pdata bit1 count
+	nbranch keyboard_current_col_press_key_count_check,zero
+	fetch 1,mem_keyboard_current_col_press_key_count
+	fetcht 1,mem_keyboard_all_press_key_count
+	iadd temp,temp
+	storet 1,mem_keyboard_all_press_key_count
+	sub pdata,1,null
+	branch keyboard_ghost_key_check_next_loop,positive
+	sub temp,2,null
+	branch keyboard_ghost_key_check_next_loop,positive
+	jam 0,mem_keyscan_col_loop_count					// col[i] press key count >= 2
+	jam 0,mem_keyboard_same_row_press_key_count
+	ifetcht 1,rega
+	arg mem_keyscan_value_current,regb
+keyboard_same_row_key_check:
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,19,null
+	nbranch keyboard_ghost_key_check_next_loop,positive		// end col[i] row[0~7] check
+	ifetch 1,regb
+	iand temp,null												// col[i] & col[0~19]
+	branch keyboard_same_row_key_check_loop,zero
+	fetch 1,mem_keyboard_same_row_press_key_count		
+	increase 1,pdata
+	store 1,mem_keyboard_same_row_press_key_count
+	sub pdata,1,null
+	branch keyboard_same_row_key_check_loop,positive
+	jam 1,mem_mouse_ghost_flag
+	rtn	
+	
+keyboard_ghost_key_check_next_loop:
+	increase 1,rega
+	loop keyboard_ghost_key_check_loop
+	rtn
+
+keyboard_same_row_key_check_loop:
+	increase 1,regb
+	branch keyboard_same_row_key_check
+	
+
+
+
+
+
+
+keyboard_keyvalue_fn_replace:
+	bpatch patch0a_2,mem_patch0a
+	fetch 1,mem_keyboard_press_flag_temp
+	ncall keyboard_commbination_delay_release_clear,blank
+	fetch 1,mem_keyboard_fn_flag
+	ncall keyboard_keyvalue_fn_replace_press,blank
+	fetch 1,mem_keyboard_fn_first
+	fetcht 1,mem_keyboard_fn_flag
+	ixor temp,pdata
+	rtn zero
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_ESC,keyboard_keyvalue_fn_esc
+	beq HID_KEY_DELETE,keyboard_keyvalue_fn_delete
+	sub pdata,HID_KEY_F12,null
+	nrtn positive
+	arg HID_KEY_F1,temp	
+	isub temp,pdata
+	nrtn positive			
+	arg mem_keyboard_fn_f1,contr		//  HID_KEY_F1 <= keyvalue <= HID_KEY_F12
+	iadd contr,contr
+	ifetch 1,contr
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_replace_press:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_UP_ARROW,keyboard_keyvalue_fn_up_arrow
+	beq HID_KEY_DOWN_ARROW,keyboard_keyvalue_fn_down_arrow
+	beq HID_KEY_LEFT_ARROW,keyboard_keyvalue_fn_left_arrow
+	beq HID_KEY_RIGHT_ARROW,keyboard_keyvalue_fn_right_arrow
+	beq HID_KEY_LEFT_CTRL,keyboard_keyvalue_fn_left_ctrl
+	beq HID_KEY_SPACE,keyboard_keyvalue_fn_space
+	rtn
+
+keyboard_keyvalue_fn_esc:
+	fetch 1,mem_keyboard_fn_esc
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_delete:
+	fetch 1,mem_keyboard_fn_del
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_up_arrow:
+	fetch 1,mem_keyboard_fn_arrow_enable_flag
+	rtn blank
+	setarg HID_KEY_PAGE_UP
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_down_arrow:
+	fetch 1,mem_keyboard_fn_arrow_enable_flag
+	rtn blank
+	setarg HID_KEY_PAGE_DOWN
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_arrow:
+	fetch 1,mem_keyboard_fn_arrow_enable_flag
+	rtn blank
+	setarg HID_KEY_HOME
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_right_arrow:
+	fetch 1,mem_keyboard_fn_arrow_enable_flag
+	rtn blank
+	setarg HID_KEY_END
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_ctrl:
+	fetch 1,mem_keyboard_fn_left_ctrl_enable_flag
+	rtn blank
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_keyvalue_windows_osk
+	setarg HID_KEY_OS_SOFT_KB
+	branch keyboard_keyvalue_store_temp
+keyboard_keyvalue_windows_osk:	
+	setarg HID_KEY_OSK
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_space:
+	fetch 1,mem_keyboard_fn_space_enable_flag
+	rtn blank
+	setarg HID_KEY_LANGUAGE
+keyboard_keyvalue_store_temp:
+	store 1,mem_keyboard_keyvalue_temp
+	rtn
+	
+
+
+
+
+keyboard_keyvalue_commbination_replace:
+	bpatch patch0a_3,mem_patch0a
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_PRINT_SCREEN,keyboard_commination_screen_shot_replace
+	beq HID_KEY_PAGE_UP,keyboard_commination_pageup_replace
+	beq HID_KEY_PAGE_DOWN,keyboard_commination_pagedown_replace
+	beq HID_KEY_HOME,keyboard_commination_home_replace
+	beq HID_KEY_END,keyboard_commination_end_replace
+	beq HID_KEY_SELECT_ALL,keyboard_commination_select_all
+	beq HID_KEY_COPY,keyboard_commbination_copy
+	beq HID_KEY_PASTE,keyboard_commbination_paste
+	beq HID_KEY_CUT,keyboard_commbination_cut
+	beq HID_KEY_ALL_OS_LOCK,keyboard_commination_os_lock
+	beq HID_KEY_OSK,keyboard_commbination_osk
+	beq HID_KEY_LANGUAGE,keyboard_commbination_language
+	beq HID_KEY_APP_TILING,keyboard_commbination_app_tiling
+	rtn
+
+keyboard_commbination_delay_release_set:
+	fetch 1,mem_keyboard_press_flag_temp
+	nrtn blank
+	jam 10,mem_keyboard_commbination_control_key_delay_release_timer
+	rtn
+
+keyboard_commbination_delay_release_clear:
+	jam 0,mem_keyboard_commbination_control_key_delay_release_timer
+	rtn
+
+keyboard_commination_screen_shot_replace:
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDRIOD
+	jam LEFT_SHIFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_3,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commination_pageup_replace:
+	jam HID_KEY_UP_ARROW,mem_keyboard_commbination_standard_key_value
+keyboard_commination_ios_mac_command_commiation:	
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDRIOD
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commination_pagedown_replace:
+	jam HID_KEY_DOWN_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation	
+
+keyboard_commination_home_replace:
+	jam HID_KEY_LEFT_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation
+
+keyboard_commination_end_replace:
+	jam HID_KEY_RIGHT_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation
+
+keyboard_commination_select_all:
+	jam HID_KEY_A,mem_keyboard_commbination_standard_key_value
+keyboard_commbination_text_edit:
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_keypress
+	beq SYSTEM_OS_ANDRIOD,keyboard_commbination_keypress
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commbination_copy:
+	jam HID_KEY_C,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commbination_paste:
+	jam HID_KEY_V,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commbination_cut:	
+	jam HID_KEY_X,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commination_os_lock:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commination_windows_lock
+	beq SYSTEM_OS_MAC,keyboard_commination_mac_lock
+	setarg HID_KEY_IOS_ANDROID_OS_LOCK
+	branch keyboard_keyvalue_store_temp
+keyboard_commination_windows_lock:	
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_L,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+keyboard_commination_mac_lock:
+	jam LEFT_GUI_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_Q,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+	
+keyboard_commbination_osk:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_windows_osk
+	setarg HID_KEY_OS_SOFT_KB
+	branch keyboard_keyvalue_store_temp
+keyboard_commbination_windows_osk:	
+	jam LEFT_GUI_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_O,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+	
+keyboard_commbination_language:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_language_windows
+	beq SYSTEM_OS_ANDRIOD,keyboard_commbination_language_andriod
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+keyboard_commbination_language_next:
+	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
+	call keyboard_commbination_delay_release_set	
+	branch keyboard_commbination_keypress
+keyboard_commbination_language_windows:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_language_next
+keyboard_commbination_language_andriod:
+	jam LEFT_SHIFT,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_language_next
+
+keyboard_commbination_app_tiling:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_app_tiling_windows_android
+	beq SYSTEM_OS_ANDRIOD,keyboard_commbination_app_tiling_windows_android
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_UP_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress	
+keyboard_commbination_app_tiling_windows_android:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_TAB,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress	
+
+keyboard_commbination_keypress:
+	jam 0,mem_keyboard_keyvalue_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit0 0,keyboard_commbination_key_wait_release_set
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_set
+keyboard_commbination_key_press_set:	
+	jam CAMMBINATION_KEY_PRESS,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_wait_release_set:
+	jam CAMMBINATION_KEY_WAIT_RELEASE,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_null_set:
+	jam CAMMBINATION_KEY_NULL,mem_keyboard_commbination_key_step
+	rtn
+
+//**input:   pdata:control key vaule       temp:standard key value
+keyboard_commbination_key_value_store:
+	store 1,mem_keyboard_tx_data+1
+	storet 1,mem_keyboard_tx_data+3
+	call enable_user
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next	
+	
+keyboard_commbination_key_press_process:
+	fetch 1,mem_keyboard_commbination_control_key_value
+	arg 0,temp
+	call keyboard_commbination_key_value_store
+keyboard_commbination_key_hold_set:
+	jam CAMMBINATION_KEY_HOLD,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_hold_process:
+	jam CAMMBINATION_KEY_COMPLETE,mem_keyboard_commbination_key_step
+	fetch 1,mem_keyboard_commbination_control_key_value
+	fetcht 1,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_key_value_store
+	
+keyboard_commbination_key_wait_release_process:
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	fetch 1,mem_keyboard_commbination_control_key_value
+	arg 0,temp
+	call keyboard_commbination_key_value_store
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	branch keyboard_commbination_key_null_set,blank
+keyboard_commbination_key_release_set:	
+	jam CAMMBINATION_KEY_RELEASE,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_release_process:
+	branch keyboard_commbination_key_value_store+2
+
+keyboard_commbination_key_null_process:
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	arg 0,pdata
+	arg 0,temp
+	branch keyboard_commbination_key_value_store	
+
+
+
+keyboard_keyvalue_in_out:
+	bpatch patch0a_4,mem_patch0a
+	fetch 1,mem_keyboard_keyvalue_temp
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	branch keyboard_keyvalue_standard,positive		// value  <= 0xe7
+	jam KEYBOARD_CONSUMER_KEY_PRESS,mem_keyboard_consumer_key_status		
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,keyboard_keyvalue_standard
+	jam KEYBOARD_CONSUMER_KEY_RELEASE,mem_keyboard_consumer_key_status
+keyboard_keyvalue_standard:
+	jam 0,mem_keyboard_keyvalue_buffer+8
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,keyboard_keyvalue_standard_in
+keyboard_keyvalue_standard_out:	
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+keyboard_keyvalue_standard_out_loop:
+	ifetch 1,contr
+	branch keyboard_keyvalue_standard_out_next+1,blank
+	isub temp,null
+	nbranch keyboard_keyvalue_standard_out_next,zero
+	ifetch 1,contr
+	increase -2,contr
+	istore 1,contr
+	rtn blank
+	increase 1,contr
+	istoret 1,contr
+keyboard_keyvalue_standard_out_next:	
+	loop keyboard_keyvalue_standard_out_loop
+	sub temp,HID_KEY_RIGHT_GUI,null
+	nrtn positive
+	sub temp,0xbf,null
+	rtn positive
+keyboard_keyvalue_control_key_out:
+	and temp,0x07,queue
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset0 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn	
+
+keyboard_keyvalue_standard_in:
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+keyboard_keyvalue_standard_in_loop:
+	ifetch 1,contr
+	branch keyboard_keyvalue_standard_in_data,blank
+	isub temp,null
+	rtn zero
+	loop keyboard_keyvalue_standard_in_loop
+	sub temp,HID_KEY_RIGHT_GUI,null
+	nrtn positive
+	sub temp,0xbf,null
+	rtn positive
+keyboard_keyvalue_control_key_in:
+	and temp,0x07,queue
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset1 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+	
+keyboard_keyvalue_standard_in_data:
+	sub temp,HID_KEY_RIGHT_GUI,null
+	nbranch keyboard_keyvalue_standard_in_data_next,positive
+	sub temp,0xbf,null
+	nbranch keyboard_keyvalue_control_key_in,positive
+keyboard_keyvalue_standard_in_data_next:	
+	increase -1,contr
+	istoret 1,contr
+	rtn
+	
+
+// check Fn,pairing button,control key
+keyboard_special_key_check:
+	bpatch patch0a_5,mem_patch0a
+	call keyboard_pairing_button_check
+	jam 0,mem_keyboard_fn_flag
+	jam 0,mem_keyboard_control_key_flag
+	jam 0,mem_keyboard_bt_button_flag
+	fetch 1,mem_keyboard_keyvalue_buffer
+	ncall keyborad_control_key_set,blank
+	arg mem_keyboard_keyvalue_buffer+2,contr
+	arg 6,loopcnt
+keyboard_special_key_check_loop:
+	ifetch 1,contr
+	sub pdata,HID_KEY_FN,null
+	call keyboard_fn_set,zero
+	sub pdata,HID_KEY_PB,null
+	call keyboard_pb_set,zero
+	loop keyboard_special_key_check_loop
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_special_key_check_24g
+keyboard_special_key_check_bluetooth:
+	call keyboard_commbination_fast_conn_bt_check
+	fetch 1,mem_keyboard_pairing_type
+	branch keyboard_enable_bt_button_pairing,blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_bt
+	isub temp,null
+	branch keyboard_long_button_bt_discovery,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_long_button_bt_discovery,zero
+	rtn
+keyboard_special_key_check_24g:
+	fetch 1,mem_keyboard_pairing_type
+	branch keyboard_enable_bt_button_pairing,blank
+	branch keyboard_commbination_pairing_24g_check	
+	
+keyboard_pairing_button_check:
+	fetch 1,mem_keyboard_pairing_type
+	nrtn blank
+	fetcht 1,mem_config_select_device_button_gpio
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	call gpio_get_bit
+	nbranch keyboard_pairing_button_release,true
+	arg 8,loopcnt
+	arg mem_keyboard_keyvalue_buffer,contw
+	call clear_mem
+	jam HID_KEY_PB,mem_keyboard_keyvalue_buffer+2
+	rtn
+
+keyboard_pairing_button_release:
+	fetch 1,mem_keyboard_keyvalue_buffer+2
+	rtnne HID_KEY_PB
+	jam HID_KEY_NULL,mem_keyboard_keyvalue_buffer+2
+	rtn	
+
+keyboard_enable_bt_button_pairing:
+	bpatch patch0a_6,mem_patch0a
+	fetch 1,mem_keyboard_bt_button_flag
+	rtn blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_24g_start_pair_mode
+keyboard_long_button_bt_discovery:
+//	call keyboard_pairing_check_otp_offset
+	jam 0,mem_keyboard_data_change_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_enable_function_flag
+	call app_evt_button_long_pressed
+	branch keyboard_bb_event_discovery_btn
+
+	
+
+keyboard_commbination_pairing_24g_check:
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_24g
+	isub temp,null
+	branch keyboard_24g_start_pair_mode,zero
+	byteswap temp,temp
+	isub temp,null
+	nrtn zero
+keyboard_24g_start_pair_mode:
+	call keyboard_pairing_check_otp_offset		
+	jam 0,mem_keyboard_data_change_flag
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	call keyboard_capslock_led_off
+	branch mouse_24g_start_pair_mode
+
+
+keyborad_control_key_set:
+	jam 1,mem_keyboard_control_key_flag
+	rtn
+
+keyboard_fn_set:
+	jam 1,mem_keyboard_fn_flag
+	rtn
+
+keyboard_pb_set:
+	jam 1,mem_keyboard_bt_button_flag
+	rtn
+
+
+
+///////////////////////////////////////////////////////////////---motion----//////////////////////////////////
+keyboard_motion:
+	bpatch patch0a_7,mem_patch0a
+	disable user
+	jam 0,mem_customer_key
+	jam 0,mem_customer_data_trigger
+	jam 0,mem_customer_data_trigger_last
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_PRESS,keyboard_commbination_key_press_process
+	beq CAMMBINATION_KEY_HOLD,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_WAIT_RELEASE,keyboard_commbination_key_wait_release_process
+	beq CAMMBINATION_KEY_NULL,keyboard_commbination_key_null_process
+	fetch 1,mem_keyboard_data_change_flag
+	branch keyboard_no_key_press,blank
+	increase -1,pdata
+	store 1,mem_keyboard_data_change_flag	
+	call keyboard_current_mult_update	
+	jam 10,mem_keyboard_led_status_get_timer
+	call mouse_no_data_timer_init
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_RELEASE,keyboard_commbination_key_release_process
+	arg mem_keyboard_tx_data,contw
+	arg 10,loopcnt
+	call clear_mem
+	call keyboard_motion_data_check
+	jam 0,mem_keyboard_data_send_flag
+	rtn
+
+keyboard_current_mult_update:
+	jam 3,mem_lpm_mult
+	jam 10,mem_mouse_current_mult_timer
+	rtn
+
+
+
+keyboard_no_key_press:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	fetch 1,mem_keyboard_led_status_get
+	rtn blank
+	fetch 1,mem_24g_repeat_send_flag
+	nrtn blank
+	fetcht 1,mem_keyboard_led_status_get_timer_last
+	fetch 1,mem_keyboard_led_status_get_timer
+	isub temp,null
+	store 1,mem_keyboard_led_status_get_timer_last
+	rtn zero
+	arg mem_keyboard_tx_data,contw
+	arg 10,loopcnt
+	call clear_mem
+	call enable_user
+	branch keyboard_motion_data_check_next	
+
+
+
+keyboard_motion_data_check:
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,keyboard_value_consumer_release
+	arg mem_keyboard_keyvalue_buffer+2,contr
+	arg 6,loopcnt
+keyboard_value_tpye_check:
+	ifetch 1,contr
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	nbranch keyboard_value_tpye_consumer_set,positive
+keyboard_value_tpye_check_loop:	
+	loop keyboard_value_tpye_check
+
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	fetch 1,mem_keyboard_keyvalue_buffer+2
+	sub pdata,HID_KEY_FN,null
+	branch keyboard_tx_data_skip_fn,zero
+	arg mem_keyboard_keyvalue_buffer,contr
+	arg mem_keyboard_tx_data+1,contw
+	arg 8,loopcnt
+keyboard_tx_data_store:
+	ifetch 1,contr
+	beq HID_KEY_FN,keyboard_tx_data_clear_fn
+keyboard_tx_data_store_loop:
+	istore 1,contw
+	loop keyboard_tx_data_store
+
+keyboard_motion_data_check_next:
+	call keyboard_device_data_tpye_check
+
+	fetch 1,mem_keyboard_data_send_flag
+	beq DEVICE_DATA_TPYE_MOUSE,enable_user
+	beq DEVICE_DATA_TPYE_STANDARD_KEYBOARD,device_send_keyboard_data
+	beq DEVICE_DATA_TPYE_NONSTARNDARD_KEYBOARD,device_send_keyboard_data
+	beq DEVICE_DATA_TPYE_CONSUMER,device_send_keyboard_data
+	beq DEVICE_DATA_TPYE_SYSTEM_CONCTOL,device_send_keyboard_data
+device_send_keyboard_data:
+	call mouse_customerkey_press
+	branch enable_user
+
+keyboard_value_release_all_key:
+	arg mem_keyboard_keyvalue_buffer,contw
+	arg 9,loopcnt
+	branch clear_mem
+
+
+keyboard_tx_data_skip_fn:
+	fetch 2,mem_keyboard_keyvalue_buffer
+	store 2,mem_keyboard_tx_data+1
+	fetch 6,mem_keyboard_keyvalue_buffer+3
+	store 6,mem_keyboard_tx_data+3
+	branch keyboard_motion_data_check_next
+
+keyboard_tx_data_clear_fn:
+	setarg 0
+	branch keyboard_tx_data_store_loop
+
+////////////////////////////////////////////////////---fn---//////////////////////////////////////////////////////////
+keyboard_value_tpye_consumer_set:
+	copy pdata,temp
+	bpatch patch0b_0,mem_patch0b
+	copy temp,pdata
+	jam HID_REPORTID_CONSUMER_KEY,mem_keyboard_tx_data
+	fetcht 1,mem_keyboard_all_press_key_count
+	sub temp,HID_KEY_NULL,null
+	branch keyboard_value_consumer_all_key_release,zero
+	beq 	HID_KEY_MULTIKEY_MEDIA,keyboard_value_media
+	beq 	HID_KEY_MULTIKEY_PALY,keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,keyboard_value_stop
+	beq 	HID_KEY_MULTIKEY_PRE_TRACK,keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track
+	beq 	HID_KEY_MULTIKEY_VOL_DOWN,keyboard_value_vol_down
+	beq 	HID_KEY_MULTIKEY_VOL_UP,keyboard_value_vol_up
+	beq 	HID_KEY_MULTIKEY_MUTE,keyboard_value_mute
+	beq 	HID_KEY_MY_COMPUTER,keyboard_value_my_computer
+	beq 	HID_KEY_MAIL,keyboard_value_mail
+	beq 	HID_KEY_CALCULATOR,keyboard_value_calculator
+	beq 	HID_KEY_LIGHT_DOWN,keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,keyboard_value_light_up
+	beq 	HID_KEY_AC_FAVORITES,keyboard_value_ac_favorites
+	beq 	HID_KEY_AC_FORWARD,keyboard_value_ac_forward
+	beq 	HID_KEY_AC_BACK,keyboard_value_ac_back
+	beq 	HID_KEY_AC_STOP,keyboard_value_ac_stop
+	beq 	HID_KEY_AC_REFRESH,keyboard_value_ac_refresh
+	beq 	HID_KEY_AC_SEARCH,keyboard_value_ac_search
+	beq 	HID_KEY_AC_HOME,keyboard_value_ac_home
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,keyboard_value_os_lock
+	beq 	HID_KEY_OS_SOFT_KB,keyboard_value_os_soft_kb
+	beq 	HID_KEY_SYSTEM_SLEEP,keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+
+keyboard_value_media:
+	setarg 0x0183
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_play:
+	setarg 0x00cd
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_stop:
+	setarg 0x00b7
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_pre_track:
+	setarg 0x00b6
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_next_track:
+	setarg 0x00b5
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next	
+keyboard_value_vol_down:
+	setarg 0x00ea
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_vol_up:
+	setarg 0x00e9
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_mute:
+	setarg 0x00e2
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_my_computer:
+	setarg 0x0194
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_mail:
+	setarg 0x018a
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_calculator:
+	setarg 0x0192
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next	
+keyboard_value_light_down:
+	setarg 0x0070
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_light_up:
+	setarg 0x006f
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_favorites:
+	setarg 0x022a
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_forward:
+	setarg 0x0225
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_back:
+	setarg 0x0224
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_stop:
+	setarg 0x0226
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_refresh:
+	setarg 0x0227
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_search:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,keyboard_value_ac_home
+	beq SYSTEM_OS_MAC,keyboard_value_ac_home
+	setarg 0x0221
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next	
+keyboard_value_ac_home:
+	setarg 0x0223
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_os_lock:
+	setarg 0x0030
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_os_soft_kb:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDRIOD,keyboard_value_os_soft_kb_andriod
+	setarg 0x01ae
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_os_soft_kb_andriod:
+	setarg 0x0307
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+	
+keyboard_value_consumer_all_key_release:
+keyboard_value_consumer_release:
+	jam 2,mem_keyboard_data_change_flag	
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam KEYBOARD_CONSUMER_KEY_STANDBY,mem_keyboard_consumer_key_status
+	setarg 0x03
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+keyboard_value_system_sleep:
+	jam HID_REPORTID_SYSTEM_CTRL,mem_keyboard_tx_data
+	setarg 0x02
+	store 1,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next		
+
+
+
+
+
+
+keyboard_device_data_tpye_check:
+	bpatch patch0b_1,mem_patch0b
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_device_data_tpye_check_next
+	jam 0,mem_24g_repeat_send_flag
+	fetch 2,mem_keyboard_tx_data
+	ncall keyboard_set_repeat_send_flag,blank
+	fetch 6,mem_keyboard_tx_data+3
+	ncall keyboard_set_repeat_send_flag,blank
+
+keyboard_device_data_tpye_check_next:
+	fetch 1,mem_keyboard_tx_data
+	beq HID_REPORTID_KEY_STANDARD,keyboard_standard_data_send
+	beq HID_REPORTID_MOUSE,keyboard_mouse_data_send
+	beq HID_REPORTID_CONSUMER_KEY,keyboard_consumer_data_send
+	beq HID_REPORTID_SYSTEM_CTRL,keyboard_system_control_data_send
+	rtn
+
+keyboard_mouse_data_send:
+	jam DEVICE_DATA_TPYE_MOUSE,mem_keyboard_data_send_flag
+	arg mem_keyboard_tx_data,contr
+	arg mem_mouse_key,contw
+	arg 7,loopcnt
+	branch memcpy
+	
+keyboard_standard_data_send:
+	jam DEVICE_DATA_TPYE_STANDARD_KEYBOARD,mem_keyboard_data_send_flag
+	call keyboard_clear_key_data
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,keyboard_standard_data_send_end
+	call keyboard_24g_led_get_status_check
+	fetch 1,mem_keyboard_led_status_get
+	store 1,mem_keyboard_tx_data+2
+keyboard_standard_data_send_end:
+	arg mem_keyboard_tx_data,contr
+	arg mem_customer_key_press,contw
+	arg 9,loopcnt
+	branch memcpy
+
+keyboard_consumer_data_send:
+	jam DEVICE_DATA_TPYE_CONSUMER,mem_keyboard_data_send_flag
+	call keyboard_clear_key_data
+	setarg 0x03
+	call mouse_customer_media_key_set
+	arg mem_keyboard_tx_data+1,contr
+	arg mem_customer_key_press+1,contw
+	arg 2,loopcnt
+	branch memcpy
+
+keyboard_system_control_data_send:
+	jam DEVICE_DATA_TPYE_SYSTEM_CONCTOL,mem_keyboard_data_send_flag
+	call keyboard_clear_key_data
+	setarg 0x02
+	store 8,mem_customer_key_press
+	store 8,mem_customer_key_release
+	fetch 1,mem_keyboard_tx_data+1
+	store 1,mem_customer_key_press+1
+	rtn
+
+
+keyboard_clear_key_data:
+	arg 18,loopcnt
+	arg mem_customer_key_press,contw
+	branch clear_mem
+
+
+
+////////////////////////////////////////lpm/////////////////////////////////////////////////////////////////////////	
+keyboard_lpm_before_common:	
+	call clear_wake
+	call mouse_wheel_check
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_set_wake
+
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+keyboard_key_col_wake_init:
+	ifetcht 1,regb
+	isolate1 7,temp				// exmcu gpio
+	ncall gpio_out_active,true
+	increase 1,regb
+	loop keyboard_key_col_wake_init
+
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+keyboard_key_row_wake_init:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall gpio_set_wake_by_current_state,zero
+	increase 1,regb
+	loop keyboard_key_row_wake_init
+	rtn
+
+keyboard_key_row_wake_set:
+	fetch 1,mem_same_keyvalue_timerout_flag
+	branch gpio_set_wake,blank
+	branch gpio_set_wake_by_current_state
+keyboard_process_lpm_before:
+	rtnmark1 mark_24g
+	call keyboard_lpm_before_common
+	fetch 1,mem_lpm_current_mult
+	nrtn blank					// 7.5ms, no gpio wakeup
+	branch gpio_clr_wake
+keyboard_before_hibernate:
+	bpatch patch0b_2,mem_patch0b
+	jam 0xff,mem_sensor_motion_gpio
+	call disable_authrom
+	call keyboard_device_led_all_off
+	call mouse_before_hibernate_wheel_gpio_set
+	call mouse_setgpio_hibernate
+	call mouse_flash_power_down
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_clr_wake
+	
+keyboard_power_down:
+	call keyboard_device_led_all_off
+keyboard_app_enter_hibernate:
+	bpatch patch0b_3,mem_patch0b
+	call keyboard_setgpio_hibernate
+	call ice_break
+	branch app_enter_hibernate
+	
+keyboard_device_led_all_off:
+	bpatch patch0b_4,mem_patch0b
+	call keyboard_device_led_off
+	call keyboard_numlock_led_off
+	call keyboard_capslock_led_off
+	branch keyboard_power_led_off			
+
+
+
+
+
+	
+keyboard_setgpio_hibernate:
+	bpatch patch0b_5,mem_patch0b
+	call clear_wake
+	call keyboard_device_led_all_off
+	call mouse_set_sdio_high
+	call keyboard_lpm_before_common
+	call mouse_gpio_pd_idle
+	fetcht 1,mem_mouse_reuse_2ice_gpio
+	call mouse_gpio_config_input_pu
+	call mouse_gpio_set_high_impedance
+	branch mouse_adc_gpio_set_before_hibernate
+////////////////////////////////////////24g/////////////////////////////////////////////////////////////////////////	
+
+
+
+
+
+
+
+
+
+
+keyboard_g24_reconn_dispatch:
+	fetch 2,mem_24g_reconn_count
+	and_into 0xe0,pdata
+	branch keyboard_g24_reconn_dispatch_next,blank		// each 0x100 times,reconnect 16 times
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+keyboard_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch g24_reconn_device_fail,sync
+	nbranch g24_reconn_device_fail,user3
+	call keyboard_g24_ackpayload_parse
+	branch g24_reconn_dispatch_next+5
+
+
+
+keyboard_g24_transmit_no_interrupt:
+
+	call g24_txdata_prep
+	nbranch keyboard_g24_nodata_transmit,user
+keyboard_g24_transmit_start:
+	call keyboard_g24_transmit_process
+	call keyboard_power_ctrl_start
+	branch keyboard_g24_transmit_start_next
+
+keyboard_g24_nodata_transmit:
+	fetch 8,mem_keyscan_value_current
+	nbranch keyboard_g24_transmit_start,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch keyboard_g24_transmit_start,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch keyboard_g24_transmit_start,blank
+
+	fetch 1,mem_24g_transmit_by_interrupt
+	rtneq G24_TX_TIMER_INT_ENABLE
+	call g24_search_receiver
+keyboard_g24_long_sleep:
+	call keyboard_g24_lpm_wait
+	nrtn user
+	fetch 1,mem_sensor_shutdown_flag
+	ncall keyboard_setgpio_hibernate,blank
+	fetch 4,mem_24g_enter_hibernate
+	branch g24_long_seep2
+
+keyboard_g24_transmit_process:
+	bpatch patch0b_6,mem_patch0b
+	jam 0,mem_24g_retry
+keyboard_g24_transmit_loop:
+	fetchr timeup,2,mem_param_rx_setup
+	until clkn_rt,meet
+	call keyboard_special_key_check
+	fetch 1,mem_keyboard_bt_button_flag
+	nbranch mouse_soft_reset,blank
+	call g24_transmit_receive_ack
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,g24_transmit_no_ack
+	nbranch keyboard_g24_retransmit,sync
+	nbranch keyboard_g24_retransmit,user3
+	call keyboard_g24_ackpayload_parse
+	jam 0,mem_sensor_shutdown_flag
+	branch g24_transmit_no_ack
+	
+
+keyboard_g24_retransmit:
+	fetch 1,mem_24g_abort_pac
+	nrtn blank
+	fetch 2,mem_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_24g_txfail_cnt	
+	fetch 1,mem_24g_txfail_cnt
+	beq 0xff,g24_tx_attempt_fail
+	call keyboard_g24_transmit_hop_process
+	branch keyboard_g24_transmit_loop
+
+
+keyboard_g24_transmit_hop_process:
+	fetcht 1,mem_24g_retry
+	sub temp,20,null
+	branch keyboard_g24_tx_fast_hop,positive		//  1-3 current channel  4~ 20 fast hop
+	arg 25,loopcnt
+	call delay_ms_wait
+	branch g24_hop_ch_disable
+
+keyboard_g24_tx_fast_hop:
+	increase 1,temp
+	storet 1,mem_24g_retry
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch g24_ch,zero
+	fetch 1,mem_24g_retry
+	sub pdata,3,null
+	rtn positive
+	branch g24_tx_fast_hop
+
+
+keyboard_g24_lpm_wait:
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	fetch 1,mem_keyboard_fn_flag
+	nbranch disable_user,blank
+	fetch 1,mem_keyboard_control_key_flag
+	nbranch disable_user,blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nbranch disable_user,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,disable_user
+	branch g24_lpm_wait+5
+	
+keyboard_power_ctrl_start:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	nbranch power_ctrl_start+1,zero
+	jam TX_POWER_F30DB,mem_tx_power
+	rtn
+keyboard_g24_transmit_start_next:
+	fetch 8,mem_24g_long_sleep_set
+	store 8,mem_24g_enter_hibernate
+	fetch 2,mem_24g_long_sleep_param_update_timer_init
+	store 2,mem_24g_long_sleep_param_update_timer
+keyboard_g24_short_sleep:
+	bpatch patch0b_7,mem_patch0b
+	call g24_lpm_wait
+	nrtn user
+	call clear_wake
+	fetch 3,mem_24g_short_sleep_set
+	branch g24_long_seep2	
+	
+
+
+
+
+
+keyboard_24g_package_data:
+	
+	rtnmark0 mark_24g
+	call keyboard_motion
+	nrtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_24g_mouse_package_data
+	fetch 1,mem_customer_key
+	nbranch keyboard_24g_keyboard_package_data,blank
+	branch mouse_24g_mouse_package_data
+
+keyboard_24g_keyboard_package_data:
+	jam TYPE_KB,mem_24g_data_type
+	arg 9,rega	//length
+	fetch 1,mem_customer_data_trigger
+	nbranch keyboard_customer_key_press,blank
+	arg mem_customer_key_release,regb	//tx buff
+	rtn
+keyboard_customer_key_press:
+	arg mem_customer_key_press,regb
+	rtn
+
+
+
+
+keyboard_24g_search_dongle_init:
+	setarg 0
+	store 3,mem_mouse_search_dongle_action
+	rtn
+
+keyboard_24g_search_dongle:
+	bpatch patch0c_0,mem_patch0c
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtn blank
+	fetch 1,mem_24g_abort_pac
+	rtn blank
+	fetch 1,mem_mouse_search_dongle_interval
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_mouse_search_dongle_interval
+	nrtn blank	//400ms
+	jam 0,mem_mouse_search_dongle_ch
+keyboard_24g_search_dongle_loop:
+	
+	fetch 1,mem_mouse_search_dongle_ch
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_ch
+	sub pdata,G24_CH_NUMBER,null
+	nbranch keyboard_24g_search_dongle_loop_end,positive
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch keyboard_24g_search_dongle_loop_retry,sync
+	nbranch keyboard_24g_search_dongle_loop_retry,user3
+	call keyboard_g24_ackpayload_parse
+	call keyboard_24g_search_dongle_success
+keyboard_24g_search_dongle_loop_end:
+	call g24_txbuf_clear
+	fetch 1,mem_mouse_search_dongle_count
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_count
+	beq G24_CH_POLL_COUNT,keyboard_24g_search_dongle_check
+	rtn
+
+keyboard_24g_search_dongle_loop_retry:
+	call g24_ch
+	branch keyboard_24g_search_dongle_loop
+
+keyboard_24g_search_dongle_check:
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit1 G24_DISCONN_STATE
+	set1 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	fetch 2,mem_mouse_24g_search_dongle_time_init		//3min
+	store 2,mem_mouse_no_data_timer
+	rtn
+	
+	
+keyboard_24g_search_dongle_success:
+	fetch 1,mem_24g_abort_pac
+	branch keyboard_24g_search_dongle_init,blank
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit0 G24_DISCONN_STATE
+	set0 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	branch mouse_no_data_timer_init
+
+
+keyboard_g24_ackpayload_parse:
+	call g24_ackpayload_parse
+	fetch 1,mem_24g_rxbuf+1
+	compare 0x08,pdata,0xf8
+	nrtn true
+	fetch 1,mem_24g_rxbuf+2		// pc sleep mouse ackpayload: 01 08 ff
+	beq 0xff,keyboard_24g_hibernate_set
+	rtn
+
+
+
+/////////////////////////////////////////////////////// ble auto recognize////////////////////////////////////////////////////////////	
+keyboard_le_send_att_find_by_type_value_request_ancs:
+	jam 1,mem_le_connect_ios_mac_flag
+	arg 23,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	istore 1,contw
+	setarg 0x0001		//start handle
+	istore 2,contw
+	setarg 0xffff		//end handle
+	istore 2,contw
+	setarg 0x2800		//uuid type
+	istore 2,contw
+	arg mem_le_search_service_uuid,contr
+	branch memcpy16	
+keyboard_le_att_auto_reco_process:
+	bpatch patch0c_1,mem_patch0c
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac	
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp	
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	branch le_parse_att2
+	
+keyboard_le_parse_att_find_by_type_value_rsp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,keyboard_le_parse_att_find_by_type_value_rsp_mac
+keyboard_le_parse_att_find_ios_report:	
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+	branch keyboard_otp_store_computer_system_ble
+keyboard_le_parse_att_not_find_mac_report:	
+
+	fetch 1,mem_le_conn_peer_addr_type
+	store 1,mem_kb_computer_system
+	branch keyboard_otp_store_computer_system_ble
+keyboard_le_parse_att_find_mac_report:	
+	jam SYSTEM_OS_MAC,mem_kb_computer_system
+keyboard_otp_store_computer_system_ble:
+	jam 0,mem_le_connect_ios_mac_flag
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fd0
+	isub temp,regb
+	arg mem_kb_computer_system,rega
+//	copy regb,temp
+	arg 1,loopcnt
+	call otp_write   
+	fetcht 2,mem_otp_read_retention_offset
+	increase 14,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn
+
+
+// second time read device info service differ phone from other	
+keyboard_le_send_att_find_by_type_value_request_mac:
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,keyboard_le_parse_att_not_find_mac_report
+	jam 2,mem_le_connect_ios_mac_flag
+	arg 9,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	istore 1,contw
+	setarg 0x0001		//start handle
+	istore 2,contw
+	setarg 0xffff		//end handle
+	istore 2,contw
+	setarg 0x2800		//uuid type
+	istore 2,contw
+	arg 2,loopcnt
+	arg mem_le_search_mac_uuid,contr
+	branch memcpy
+//third time read handle for manufactory name 
+keyboard_le_parse_att_find_by_type_value_rsp_mac:
+	arg 7,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_READ_BY_TYPE_REQUEST
+	istore 1,contw
+	fetcht 2,mem_le_payload_ptr
+	increase 5,temp
+	ifetch 4,temp
+	istore 4,contw
+	setarg 0x2803
+	istore 2,contw
+	rtn	
+//fourth time whether read manufactory name isn't in device info service	
+keyboard_le_send_att_read_by_type_rsp_mac:
+	fetch 2,mem_le_l2cap_size
+	increase -2,pdata
+	div pdata,7
+	call wait_div_end
+	quotient loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,6,contr
+	branch keyboard_le_check_att_read_type_manu_loop
+
+keyboard_le_check_att_read_type_manu_loop:
+	increase 3,contr
+	ifetch 2,contr
+	copy pdata,regc
+	ifetch 2,contr
+	arg 0x2a29,temp
+	isub temp,null
+	branch keyboard_le_send_att_read_by_type_rsp_manufactory,zero
+	loop keyboard_le_check_att_read_type_manu_loop
+	branch keyboard_le_parse_att_not_find_mac_report
+keyboard_le_send_att_read_by_type_rsp_manufactory:
+	arg 3,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_READ_REQUEST
+	istore 1,contw
+	copy regc,pdata
+	istore 2,contw
+	rtn	
+//fifth time 	read manufactory name make sure is Apple Inc
+keyboard_le_parse_att_manu_resp:
+	fetch 2,mem_le_l2cap_size
+	arg 9,loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,5,rega	
+	arg mem_le_search_mac_manu_name,regb
+	call string_compare 
+	branch keyboard_le_parse_att_find_mac_report,zero
+	branch  keyboard_le_parse_att_not_find_mac_report
+	
+
+
+
+
+
+
+module_init:	
+	branch module_lpm_init, wake
+	call le_modified_name
+	setarg module_process_idle
+	store 2,mem_cb_idle_process
+	setarg module_process_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg module_lpm_lock
+	store 2,mem_cb_check_wakelock
+	setarg module_hci_cmd_transmit_le_notify
+	store 2,mem_cb_ble_transmit
+	setarg module_le_receive_data
+	store 2,mem_cb_att_write
+	setarg module_bb_event_timer
+	store 2,mem_cb_event_timer
+
+	bpatch patch0c_2,mem_patch0c
+	call module_lpm_uart_init
+	call module_gpio_init
+	branch module_hci_event_enter_standby_mode
+
+module_lpm_uart_init:
+	fetch 1,core_uart_ctrl
+	set0 BIT_UART_CONTROL_ENABLE,pdata
+	store 1,core_uart_ctrl
+	fetch 8,mem_module_uart_rx_buffer
+	call uarta_init_dma_mem
+	fetch uart_baud_len,mem_module_uarta_baud_rate
+	call uarta_init_baud_rate
+	call uart_clock_select_main_freq_crystal
+	jam gpcfg_uart_txd,core_gpio_conf+HCI_UART_TX_GPIO_NUM
+	jam gpcfg_uart_rxd|gpcfg_pullup,core_gpio_conf+HCI_UART_RX_GPIO_NUM
+	jam gpcfg_uart_rts,core_gpio_conf+HCI_UART_RTS_GPIO_NUM
+	jam gpcfg_uart_cts,core_gpio_conf+HCI_UART_CTS_GPIO_NUM
+
+	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
+	fetch 2,mem_module_flag
+	isolate1 MODULE_FLAG_UART_FLOW_CONTROL,pdata
+	setflag true,BIT_UART_CONTROL_FLOW_CONTROL,temp
+	storet 1,core_uart_ctrl
+	rtn
+
+module_lpm_init:
+	branch module_lpm_uart_init
+
+
+
+module_gpio_init:
+	fetcht 1,mem_module_connect_state_gpio
+	call gpio_config_output
+	call module_set_conn_pin_low
+	fetcht 1,mem_module_wake_up_gpio
+	branch gpio_config_input
+
+module_lpm_lock:
+	fetcht 1,mem_module_wake_up_gpio
+	call gpio_get_bit
+	nbranch app_put_lpm_wake_lock,true
+	branch app_get_lpm_wake_lock
+
+
+module_process_idle:
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	branch module_process_check_hci_command_complete
+
+	
+module_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,module_process_le_conn
+	beq BT_EVT_LE_DISCONNECTED,module_process_bb_even_le_disconn
+	beq BT_EVT_LE_PAIRING_FAIL,module_hci_event_le_pairing_fail
+	beq BT_EVT_LE_PAIRING_SUCCESS,module_hci_event_le_pairing_success
+	beq BT_EVT_LE_START_ENC,module_hci_event_start_enc
+	beq BT_EVT_LE_PAUSE_ENC,module_hci_event_pause_enc
+	beq BT_EVT_LE_TK_GENERATE,module_hci_event_le_tk
+	beq BT_EVT_STORE_NVRAM,module_hci_event_store_device
+	beq BT_EVT_LE_LTK_LOST,module_process_ble_ltk_lost
+	beq BT_EVT_LE_UPDATE_PHY,module_process_ble_update_phy
+	beq BT_EVT_LE_GET_PASSKEY,module_hci_event_passkey_entry_mode
+	beq BT_EVT_LE_GKEY_GENERATE,module_hci_event_gkey_generate
+	rtn
+
+
+	
+module_process_bb_even_le_disconn:
+	call le_clr_config_more_data
+	jam 0,mem_module_hci_notify_len
+	call module_disconn_start
+	branch module_hci_event_le_disconnect
+
+
+
+	
+module_process_le_conn:
+//	call le_send_att_exchange_mtu_requset
+	call module_conn_start
+	fetch 1,mem_module_le_lpm_mult
+	store 1,mem_lpm_mult
+	branch module_hci_event_le_connect
+
+
+
+module_disconn_start:
+	call module_start_adv_discovery_by_command
+	branch module_set_conn_pin_high
+
+
+module_process_ble_ltk_lost:
+	call le_send_reject_ind
+	branch le_send_smp_security_request
+
+module_process_ble_update_phy:
+	branch module_hci_event_le_update_phy
+
+
+module_set_conn_pin_high:
+	fetcht 1,mem_module_connect_state_gpio
+	branch gpio_out_active
+
+module_conn_start:
+	call module_stop_adv_discovery
+	branch module_set_conn_pin_low
+	
+module_stop_adv_discovery:
+	fetch 1,mem_module_state
+	isolate1 MOUDLE_STATE_BLE_BIT,pdata
+	call app_ble_stop_adv,true
+	rtn
+module_set_conn_pin_low:
+	fetcht 1,mem_module_connect_state_gpio
+	branch gpio_out_inactive
+
+
+module_process_check_hci_command_complete:
+	fetch 1,core_uart_status
+	rtnbit1 UART_STATUS_RX_FIFO_EMPTY  //rx no data
+	call uarta_prepare_rx
+	ifetch 1,contru
+	bne 0x01,module_hci_in_excp	//HciType != 0x01
+	fetch 2,core_uart_rxitems
+	sub pdata,2,null
+	rtn positive
+	ifetch 1,contru
+	store 1,mem_module_uart_opcode
+	ifetcht 1,contru
+	copy contru,rega
+	storet 1,mem_module_uart_len
+	add temp,3,temp
+	fetch 2,core_uart_rxitems
+	isub temp,temp
+	nrtn positive
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	call module_hci_cmd_control
+	fetch 1,mem_module_temp_nl_discard_packet
+	rtneq HCI_NOT_DISCARD_PACKET
+	branch module_hci_dicard_packet //discard this packet
+
+module_hci_in_excp:
+	call delay_10ms
+	call module_hci_event_invalid_packet
+	branch module_hci_release_except
+
+
+module_hci_release_except:
+	bpatch patch0c_3,mem_patch0c
+	call uarta_prepare_rx
+	fetch 2,core_uart_rxitems
+	rtn blank
+	iadd contru,contru
+	branch module_hci_dicard_bytes
+
+module_hci_dicard_packet:
+	call uarta_prepare_rx
+	increase 2,contu
+	ifetch 1,contu
+	iadd contu,contu
+module_hci_dicard_bytes:
+	branch uarta_rxdone
+	
+
+module_hci_cmd_control:
+	bpatch patch0c_4,mem_patch0c
+	fetch 1,mem_module_uart_opcode
+	beq HCI_CMD_SET_LE_ADDR_REQ,module_hci_cmd_set_le_addr
+	beq HCI_CMD_SET_VISIBILITY_REQ,module_hci_cmd_set_visibility	
+	beq HCI_CMD_SET_LE_NAME_REQ,module_hci_cmd_set_le_name
+	beq HCI_CMD_LE_DATA_REQ,module_hci_cmd_receive_le_data
+	beq HCI_CMD_STATUS_IRQ,module_hci_cmd_inquire_status
+	beq HCI_CMD_SET_UARTCONTROL_REQ,module_hci_cmd_set_uart_control_mode
+	beq HCI_CMD_SET_UART_BAUD_REQ,module_hci_cmd_set_uart_baud
+	beq HCI_CMD_VERSION_REQ,module_hci_cmd_version_request
+	beq HCI_CMD_BLE_DISCONNECT,module_hci_cmd_ble_disconnect
+	beq HCI_CMD_SET_NVRAM_REQ,module_hci_cmd_set_nvram
+	beq HCI_CMD_CONFIRM_GKEY,module_hci_cmd_confirm_gkey
+	beq HCI_CMD_AUTO_ADV_SCAN,module_hci_cmd_auto_adv
+	beq HCI_CMD_POWER_REQ,module_hci_cmd_power_request
+	beq HCI_CMD_POWER_SET,module_hci_cmd_power_set
+	beq HCI_CMD_PASSKEY_ENTRY,module_hci_cmd_passkey_entry
+	beq HCI_CMD_SET_GPIO,module_hci_cmd_set_gpio
+	beq HCI_CMD_READ_GPIO,module_hci_cmd_read_gpio
+	beq HCI_CMD_LE_SET_PAIRING,module_hci_cmd_le_set_pairing_mode
+	beq HCI_CMD_LE_SET_ADV_DATA,module_hci_cmd_le_set_adv_data
+	beq HCI_CMD_LE_SET_SCAN_DATA,module_hci_cmd_le_set_scan_data
+	beq HCI_CMD_LE_SEND_CONN_UPDATE_REQ,module_hci_cmd_le_send_conn_update_req
+	beq HCI_CMD_LE_SET_ADV_PARM,module_hci_cmd_set_le_adv_parameter
+	beq HCI_CMD_LE_START_PAIRING,module_hci_cmd_le_start_pairing
+	beq HCI_CMD_SET_WAKE_GPIO,module_hci_cmd_set_wake_gpio
+	beq HCI_CMD_SET_TX_POWER,module_hci_cmd_set_tx_power
+	beq HCI_CMD_LE_CONFIRM_GKEY,module_hci_cmd_le_confirm_gkey
+//	beq HCI_CMD_REJECT_JUSTWORK,module_hci_cmd_set_reject_justwork_flag
+	beq HCI_CMD_RESET_CHIP_REQ,module_hci_cmd_reset_chip
+	beq HCI_CMD_LE_SET_FIXED_PASSKEY,module_hci_cmd_le_set_fixed_passkey
+	beq HCI_CMD_DELETE_CUSTOMIZE_SERVICE,module_hci_cmd_delete_customize_service
+	beq HCI_CMD_ADD_SERVICE_UUID,module_hci_cmd_add_service_uuid
+	beq HCI_CMD_ADD_CHARACTERISTIC_UUID,module_hci_cmd_add_characteristic_uuid
+	beq HCI_CMD_PASSKEY_ENTRY_INPUT,module_hci_cmd_le_passkey_entry_input
+	beq HCI_CMD_LE_CREAT_CONN,module_hci_cmd_le_create_conn
+	beq HCI_CMD_BLE_SET_PHY,module_hci_cmd_ble_set_phy
+	beq HCI_CMD_BLE_READ_CURRENT_PHY,module_hci_cmd_ble_read_current_phy
+	beq HCI_CMD_BLE_SET_DLE,module_hci_cmd_ble_set_dle
+	beq HCI_CMD_READ_CHIP_DATA,module_hci_cmd_read_chip_data
+	beq HCI_CMD_WRITE_CHIP_DATA,module_hci_cmd_write_chip_data
+	beq HCI_CMD_CLOSE_LPM,module_hci_cmd_close_lpm
+	branch  module_hci_event_receive_invalid_cmd
+
+
+
+
+//command opcode 0x01
+module_hci_cmd_set_le_addr:
+	fetch 1,mem_module_uart_len
+	bne 6,module_hci_event_receive_invalid_cmd
+	ifetch 6,contru
+	store 6,mem_le_lap
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x02
+module_hci_cmd_set_visibility:
+	fetch 1,mem_module_uart_len
+	bne 1,module_hci_event_receive_invalid_cmd
+	ifetcht 1,contru
+	storet 1,mem_module_bluetooth_stauts_by_command
+	call module_hci_event_receive_valid_cmd
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+
+module_start_adv_discovery_by_command:
+moudle_start_adv_by_command:
+	fetch 1,mem_module_state
+	isolate1 MOUDLE_STATE_BLE_BIT,pdata
+	nrtn true
+	fetcht 1,mem_module_bluetooth_stauts_by_command
+	isolate1 2,temp
+	branch app_ble_start_adv,true
+	branch app_ble_stop_adv
+
+
+
+//command opcode 0x04
+module_hci_cmd_set_le_name:
+	arg 29,pdata
+	arg mem_le_name_len,contw
+	call module_hci_cmd_receive_store_mem
+	branch le_modified_name
+
+
+
+//command opcode 0x09
+module_hci_cmd_receive_le_data:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
+	call module_check_ble_encrypt_state
+	branch module_hci_event_receive_invalid_cmd,user
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	fetch 2,mem_module_flag
+	bbit1 MODULE_FLAG_BLE_DATA_FINISH,module_hci_cmd_receive_le_data_finish
+	fetch 1,mem_module_hci_notify_len
+	nrtn blank
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	ifetch 2,contru		//handle
+	store 2,mem_module_hci_notify_handle
+	storer contru,2,mem_module_hci_nofiy_addr
+	fetch 1,mem_module_uart_len
+	pincrease -2
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	branch module_hci_event_receive_invalid_cmd,zero
+	store 1,mem_module_hci_notify_len
+	fetcht 2,mem_module_hci_notify_handle
+	increase -1,temp
+	call le_att_get_handle_ptr2
+	branch module_hci_cmd_transmit_handle_error,blank
+	ifetcht 4,contr		//flag
+	setarg 0x01280302
+	isub temp,null
+	nbranch module_hci_cmd_transmit_handle_error,zero
+	ifetch 1,contr
+	store 1,mem_module_hci_notify_type
+	and_into 0x30,pdata
+	branch module_hci_cmd_transmit_handle_error,blank
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	call le_set_config_more_data
+	call module_hci_cmd_transmit_le_notify
+	call module_hci_cmd_transmit_le_notify
+	call module_hci_cmd_transmit_le_notify
+	fetch 2,mem_module_flag
+	rtnbit0 MODULE_FLAG_BLE_DATA_FINISH
+module_hci_cmd_receive_le_data_finish:
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	call module_clear_le_tx_data_flag
+	branch module_hci_event_receive_valid_cmd
+
+module_hci_cmd_transmit_handle_error:
+	jam 0,mem_module_hci_notify_len
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	call module_clear_le_tx_data_flag
+	branch module_hci_event_receive_invalid_cmd
+
+module_hci_cmd_transmit_le_notify:
+	fetch 1,mem_module_hci_notify_len
+	rtn blank
+	call le_fifo_check_nearly_full
+	nrtn blank				//no fifo
+	call module_get_le_remote_mtu
+	bpatch patch0c_5,mem_patch0c
+	fetch 2,mem_le_local_mtu
+	call not_greater_than
+	copy pdata,temp
+	fetch 1,mem_le_l2cap_att_states
+	rtnbit1 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+	add temp,-3,pdata		//sub handle and opcode
+	arg 251,temp
+	call not_greater_than
+	fetcht 1,mem_module_hci_notify_len
+	call not_greater_than
+	copy pdata,rega
+	copy temp,pdata
+	isub rega,pdata
+	store 1,mem_module_hci_notify_len
+	call module_hci_cmd_transmit_le_notify_malloc_l2cap
+	fetch 2,mem_module_hci_nofiy_addr
+	copy pdata,contru
+	copy rega,loopcnt
+	call uart_copy_rx_bytes_fast
+	copy contru,pdata
+	store 2,mem_module_hci_nofiy_addr
+	fetch 1,mem_module_hci_notify_len
+	nrtn blank
+	branch module_set_le_tx_data_flag
+
+module_hci_cmd_transmit_le_notify_malloc_l2cap:
+	fetcht 2,mem_module_hci_notify_handle
+	fetch 1,mem_module_hci_notify_type
+	bbit1 BIT_CHARACTERISTIC_INDICATE,le_att_malloc_tx_indication
+	bbit1 BIT_CHARACTERISTIC_NOTIFY,le_att_malloc_tx_notify
+	rtn
+
+
+//output: temp is master mtu
+module_get_le_remote_mtu:
+	arg 0x17,temp
+	fetch 2,mem_module_flag
+	rtnbit1 MODULE_FLAG_BLE_SEND_MTU23
+	fetcht 2,mem_le_remote_mtu
+	rtn
+
+module_check_ble_encrypt_state:
+	fetch 2,mem_module_flag
+	bbit1 MODULE_FLAG_BLE_DATA_ENCRYPT,le_check_encrypt_state
+	branch disable_user
+	
+
+//command opcode 0x0b
+module_hci_cmd_inquire_status:
+	branch module_hci_event_status_res
+
+
+
+
+//command opcode 0x0e
+module_hci_cmd_set_uart_control_mode:
+	ifetch 1,contru
+	fetcht 1,mem_module_flag
+	nsetflag blank,MODULE_FLAG_UART_FLOW_CONTROL,temp
+	storet 1,mem_module_flag
+	fetcht 1,core_uart_ctrl
+	nsetflag blank,BIT_UART_CONTROL_FLOW_CONTROL,temp
+	storet 1,core_uart_ctrl
+ 	branch module_hci_event_receive_valid_cmd
+
+ 	
+//command opcode 0x0f
+module_hci_cmd_set_uart_baud:
+	fetchr loopcnt,1,mem_module_uart_len
+	call string2dec_from_uart
+	call uart_calc_baud_rate_config
+	store uart_baud_len,mem_module_uarta_baud_rate
+	call module_hci_event_receive_valid_cmd
+	call wait_uarttx
+	fetch uart_baud_len,mem_module_uarta_baud_rate
+	branch uarta_init_baud_rate
+
+
+//command opcode 0x10
+module_hci_cmd_version_request:
+	arg 2,rega
+	arg mem_soft_version_num,regb
+	arg 0,temp
+	branch module_hci_event_set_cmd
+
+
+	
+//command opcode 0x12
+module_hci_cmd_ble_disconnect:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
+module_hci_cmd_ble_disconnect_doing:
+	call module_hci_event_receive_valid_cmd
+	branch app_ble_disconnect
+
+
+
+
+//command opcode 0x26
+module_hci_cmd_set_nvram:
+	fetchr loopcnt,1,mem_module_uart_len
+	fetch 2,mem_nv_data_ptr
+	icopy contw
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x28
+module_hci_cmd_confirm_gkey:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,module_hci_cmd_le_confirm_gkey
+	branch module_hci_event_receive_invalid_cmd
+
+
+//command opcode 0x2a
+module_hci_cmd_auto_adv:
+	arg 0x40,loopcnt
+	arg mem_le_adv_data_len,contw
+	call clear_mem
+	setarg 0
+	store 1,mem_regb
+	copy rega,contru
+module_hci_cmd_auto_adv_loop:
+	copy contru,pdata
+	store 2,mem_regc
+	call module_hci_cmd_auto_adv_adv_analys
+
+	fetch 1,mem_regb
+	fetcht 1,mem_temp
+	increase 1,temp
+	iadd temp,pdata
+	store 1,mem_regb
+
+	sub pdata,31,null
+	nbranch module_hci_cmd_auto_adv_store_scan,positive
+module_hci_cmd_auto_adv_store_adv:
+	fetcht 1,mem_le_adv_data_len
+	setarg mem_le_adv_data
+	iadd temp,pdata
+	store 2,mem_contw
+	fetcht 1,mem_temp
+	increase 1,temp
+	fetch 1,mem_le_adv_data_len
+	iadd temp,pdata
+	store 1,mem_le_adv_data_len
+	branch module_hci_cmd_auto_adv_store_common
+module_hci_cmd_auto_adv_store_scan:
+	fetcht 1,mem_le_scan_data_len
+	setarg mem_le_scan_data
+	iadd temp,pdata
+	store 2,mem_contw
+	fetcht 1,mem_temp
+	increase 1,temp
+	fetch 1,mem_le_scan_data_len
+	iadd temp,pdata
+	store 1,mem_le_scan_data_len
+module_hci_cmd_auto_adv_store_common:
+	fetch 2,mem_contw
+	copy pdata,contw
+	fetch 2,mem_regc
+	copy pdata,contru
+
+	copy temp,loopcnt
+	call uart_copy_rx_bytes_fast
+
+	fetch 1,mem_module_uart_len
+	fetcht 1,mem_regb
+	isub temp,null
+	nbranch  module_hci_cmd_auto_adv_loop,zero
+	branch module_hci_event_receive_valid_cmd
+
+//block of adv len in mem_temp
+module_hci_cmd_auto_adv_adv_analys:
+	ifetch 1,contru
+	store 1,mem_temp
+	ifetch 1,contru
+	store 1,mem_rega
+	rtn
+
+
+//command opcode 0x2b
+module_hci_cmd_power_request:
+	arg 0,temp
+	arg 2,rega
+	fetch 2,mem_module_vdd_quotient
+	store 2,mem_event_cmd_response_content
+	arg mem_event_cmd_response_content,regb
+	branch module_hci_event_set_cmd
+
+
+//command opcode 0x2c
+module_hci_cmd_power_set:
+	fetch 1,mem_module_uart_len
+	bne 1,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	store 1,mem_module_read_vdd_flag
+	setarg 0x00
+	store 2,mem_module_vdd_quotient
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x30
+module_hci_cmd_passkey_entry:
+	fetch 1,mem_module_uart_len
+	bne 4,module_hci_event_receive_invalid_cmd
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,module_hci_cmd_le_passkey_entry_input
+	branch module_hci_event_receive_invalid_cmd
+
+
+
+//command opcode 0x31
+module_hci_cmd_set_gpio:
+	fetch 1,mem_module_uart_len
+	bne 3,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	beq HCI_CMD_CONFIG_GPIO_INPUT,module_set_gpio_input
+	beq HCI_CMD_CONFIG_GPIO_OUTPUT,module_set_gpio_output
+	branch module_hci_event_receive_invalid_cmd
+
+module_set_gpio_input:
+	call module_hci_event_receive_valid_cmd
+	ifetcht 1,contru
+	ifetch 1,contru
+	beq GPIO_INPUT_HIGH_IMPEDANCE,gpio_set_high_impedance
+	nsetflag blank,7,temp
+	branch gpio_config_input
+
+module_set_gpio_output:
+	call module_hci_event_receive_valid_cmd
+	ifetcht 1,contru
+	ifetch 1,contru	
+	branch gpio_out_active,blank
+	branch gpio_out_inactive
+
+
+//command opcode 0x32
+module_hci_cmd_read_gpio:
+	fetch 1,mem_module_uart_len
+	bne 1,module_hci_event_receive_invalid_cmd
+	ifetcht 1,contru
+	call gpio_get_bit
+	setarg 0x0
+	nsetflag true,0,pdata
+	arg 1,rega
+	store 2,mem_event_cmd_response_content
+	arg mem_event_cmd_response_content,regb
+	arg 0,temp
+	branch module_hci_event_set_cmd
+
+
+//command opcode 0x33
+module_hci_cmd_le_set_pairing_mode:
+	ifetch 1,contru
+	copy pdata,temp
+	beq LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK,module_le_set_pairing_mode_secure_justwork
+	beq LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC,module_le_set_pairing_mode_secure_numeric
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,module_le_set_pairing_mode_secure_passkey
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,module_le_set_pairing_mode_secure_passkey_res_input
+	store 1,mem_le_pairing_mode
+	call sc_reset
+	call le_secure_connection_disable
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_NONE, module_le_set_no_pairing
+	beq LE_PAIRING_MODE_LAGACY_JUSTWORK,module_le_set_pairing_mode_lagacy_just_work
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY,module_le_set_pairing_mode_lagacy_passkey
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT,module_le_set_pairing_mode_lagacy_passkey_res_input
+	branch module_hci_event_receive_invalid_cmd
+	
+module_le_set_pairing_mode_secure_justwork:
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch module_le_set_noinputnooutput
+module_le_set_pairing_mode_secure_numeric:
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	jam FLAG_IOCAP_DISPLAYYESNO,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+module_le_set_pairing_mode_secure_passkey:	
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch module_le_set_displayonly
+module_le_set_pairing_mode_secure_passkey_res_input:
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch module_le_set_keboadonly
+
+
+module_le_set_no_pairing:
+	jam FLAG_LE_NO_BONDING_NO_MITM,mem_le_pres_auth
+module_le_set_noinputnooutput:	
+	jam FLAG_IOCAP_NOINPUTNOOUTPUT,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+module_le_set_pairing_mode_lagacy_just_work:
+	jam FLAG_LE_BONDING_NO_MITM,mem_le_pres_auth
+	branch module_le_set_noinputnooutput
+module_le_set_pairing_mode_lagacy_passkey:
+	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
+	branch module_le_set_displayonly
+module_le_set_pairing_mode_lagacy_passkey_res_input:
+	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
+	branch module_le_set_keboadonly
+module_le_set_keboadonly:	
+	jam FLAG_IOCAP_KEYBOARDONLY,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+module_le_set_displayonly:	
+	jam FLAG_IOCAP_DISPLAYONLY,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+
+
+//command opcode 0x34
+module_hci_cmd_le_set_adv_data:
+	arg 31,pdata
+	arg mem_le_adv_data_len,contw
+	branch module_hci_cmd_receive_store_mem
+
+
+//command opcode 0x35
+module_hci_cmd_le_set_scan_data:
+	arg 31,pdata
+	arg mem_le_scan_data_len,contw
+	branch module_hci_cmd_receive_store_mem
+
+module_hci_cmd_receive_store_mem:
+	fetchr loopcnt,1,mem_module_uart_len
+	isub loopcnt,null
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	istorer loopcnt,1,contw
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd	
+
+	
+//command opcode 0x36
+module_hci_cmd_le_send_conn_update_req:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
+	fetch 1,mem_module_uart_len
+	bne 0x08,module_hci_event_receive_invalid_cmd
+	ifetch 8,contru
+	store 8,mem_le_interval_min
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	call  ui_ipc_send_cmd
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x37
+module_hci_cmd_set_le_adv_parameter:
+	ifetch 2,contru
+	store 2,mem_le_adv_interval
+	storet 1,mem_lpm_overhead
+	iadd temp,pdata
+	store 2,mem_lpm_interval
+	branch module_hci_event_receive_valid_cmd
+	
+	
+//command opcode 0x38
+module_hci_cmd_le_start_pairing:
+	fetch 1,mem_le_pairing_mode
+	branch module_hci_event_receive_invalid_cmd,blank
+	fetch 1,mem_le_pairing_state
+	bne FLAG_LE_PAIRING_NULL,module_hci_event_receive_invalid_cmd
+	fetch 1,mem_le_enc_state
+	bne FLAG_LE_ENC_NULL,module_hci_event_receive_invalid_cmd
+	call check_51cmd_le_smp_sec_req
+	branch module_hci_event_receive_valid_cmd	
+
+
+//command opcode 0x40
+module_hci_cmd_set_wake_gpio:
+	fetch 1,mem_module_uart_len
+	bne 5,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	store 1,mem_module_mcu_wake_pin
+	ifetch 4,contru
+	store 4, mem_module_mcu_wake_delay_us
+	fetcht 1,mem_module_mcu_wake_pin
+	call gpio_config_output
+	call module_set_mcu_wake_pin_low
+	branch module_hci_event_receive_valid_cmd
+	
+
+//command opcode 0x42
+module_hci_cmd_set_tx_power:
+	fetch 1,mem_module_uart_len
+	bne 0x01,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	store 1,mem_tx_power
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x48
+module_hci_cmd_le_confirm_gkey:
+	ifetch 1,contru
+	beq 0x01,module_hci_cmd_le_confirm_gkey_fail
+	fetch 1,mem_le_secure_connect_state
+	beq LE_SC_STAT_SEND_PUBLIC_KEY,module_hci_cmd_le_confirm_gkey_ok
+	beq LE_SC_STAT_RECEIVE_DHKEY,module_hci_cmd_le_confirm_gkey_ok
+	beq LE_SC_STAT_WAIT_CONFIRM_GKEY,module_hci_cmd_le_confirm_gkey_ok
+	branch module_hci_event_receive_invalid_cmd		
+module_hci_cmd_le_confirm_gkey_ok:
+	jam FLAG_LE_SC_CONFRIM_GKEY_OK,mem_le_sc_confirm_gkey_flag
+	branch module_hci_event_receive_valid_cmd	
+	
+module_hci_cmd_le_confirm_gkey_fail:
+	call le_send_pairing_confirm_value_failed
+	branch module_hci_event_receive_valid_cmd
+
+
+
+
+//command opcode 0x51
+module_hci_cmd_reset_chip:
+	call module_hci_event_receive_valid_cmd
+	call wait_uarttx
+	jam 0x01,core_reset // rest YC1021
+	branch assert
+
+
+//command opcode 0x61
+module_hci_cmd_le_set_fixed_passkey:
+	fetch 1,mem_module_uart_len
+	beq 0,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	branch module_hci_cmd_le_set_random_passkey,blank
+	fetch 1,mem_module_uart_len
+	bne 5,module_hci_event_receive_invalid_cmd
+	ifetch 4,contru
+	arg 1000000,temp
+	isub temp,null
+	branch module_hci_event_receive_invalid_cmd,positive
+	store 4,mem_le_tk
+	call le_set_config_fixed_tk
+	branch module_hci_event_receive_valid_cmd
+
+module_hci_cmd_le_set_random_passkey:
+	call le_clr_config_fixed_tk
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x76
+module_hci_cmd_delete_customize_service:
+	arg 0x0001,temp
+	call le_att_get_handle_ptr2
+	add contr,-2,contw
+	setarg 0x0000
+	istore 2,contw
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x77
+module_hci_cmd_add_service_uuid:
+	call module_hci_cmd_add_service_uuid_set_uuid
+	call uart_copy_rx_bytes_len_data
+	setarg 0x0000
+	istore 2,contw
+	branch module_hci_event_uuid_handle
+
+
+
+//command opcode 0x78
+module_hci_cmd_add_characteristic_uuid:
+	ifetch 1,contru	//Characteristic
+	call module_hci_cmd_add_characteristic_uuid_set_handle
+	call module_hci_cmd_add_characteristic_uuid_set_uuid
+	branch module_hci_event_uuid_handle
+
+
+module_hci_cmd_add_service_uuid_set_uuid:
+	call le_att_creat_new_handle
+	setarg 0x280002
+	istore 3,contw
+	rtn
+
+
+module_hci_cmd_add_characteristic_uuid_set_handle:
+	store 1,mem_pdatatemp
+	call le_att_creat_new_handle
+	setarg 0x01280302
+	istore 4,contw
+	fetch 1,mem_pdatatemp
+	istore 3,contw
+	rtn
+
+
+module_hci_cmd_add_characteristic_uuid_set_uuid:
+	call le_att_get_last_handle
+	ifetch 1,contru
+	and pdata,0x1f,loopcnt
+	copy pdata,rega
+	isolate1 BIT_OF_WRITE_AUTHENTICATED,rega
+	setflag true,BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED,temp
+	isolate1 BIT_OF_READ_AUTHENTICATED,rega
+	setflag true,BIT_OF_ATT_HANDLE_READ_AUTHENTICATED,temp
+	istoret 2,contw
+	copy loopcnt,pdata
+	istore 1,contw
+	call uart_copy_rx_bytes
+	call uart_copy_rx_bytes_len_data		//data
+	setarg 0
+	istore 2,contw
+	and temp,0xff,temp
+	increase -1,temp
+	call le_att_get_handle_ptr2
+	add contr,4,contr
+	ifetch 1,contr		//characteristic data
+	bbit1 BIT_CHARACTERISTIC_NOTIFY,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
+	bbit1 BIT_CHARACTERISTIC_INDICATE,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
+	increase 1,temp
+	rtn
+
+
+module_hci_cmd_add_characteristic_uuid_set_ccc_uuid:
+	call le_att_get_last_handle
+	isolate1 BIT_OF_NOTIFY_AUTHENTICATED,rega
+	setflag true,BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED,temp
+	istoret 2,contw
+	setarg 0x02290202
+	istore 8,contw
+	increase -1,temp
+	rtn
+
+
+le_att_creat_new_handle:
+	call le_att_get_last_handle
+	istoret 2,contw
+	rtn
+
+
+uart_copy_rx_bytes_len_data:
+	ifetch 1,contru
+	copy pdata,loopcnt
+	istore 1,contw
+	branch uart_copy_rx_bytes
+
+
+//command opcode 0x7a
+module_hci_cmd_le_passkey_entry_input:
+	fetch 1,mem_le_pairing_state
+	bne FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM,module_hci_event_receive_invalid_cmd
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT,module_hci_cmd_passkey_entry_res_input
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,module_hci_cmd_passkey_entry_sc_res_input
+	branch module_hci_event_receive_invalid_cmd
+
+module_hci_cmd_passkey_entry_sc_res_input:
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_PASSKEY_WAIT_CONFIRM,mem_le_secure_connect_state	
+	branch module_hci_cmd_receive_ble_passkey
+
+module_hci_cmd_receive_ble_passkey:
+	ifetch 4,contru
+	store 4,mem_le_tk
+	branch module_hci_event_receive_valid_cmd
+	
+module_hci_cmd_passkey_entry_res_input:
+	call module_hci_cmd_receive_ble_passkey
+	branch le_send_smp_pairing_confirm
+
+
+//command opcode 0x7b
+module_hci_cmd_le_create_conn:
+	ifetch 6,contru
+	store 6,mem_le_conn_peer_addr
+	jam hci_cmd_le_create_conn,mem_cmd_le_create_conn
+	jam ON,mem_le_conn_flag
+	jam ON,mem_le_scan_enable
+	branch module_hci_event_receive_valid_cmd
+	
+
+
+//command opcode 0x90
+module_hci_cmd_ble_set_phy:
+	fetch 1,mem_module_uart_len
+	bne 2,module_hci_event_receive_invalid_cmd
+	ifetcht 2,contru
+	call le_set_phys
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x91
+module_hci_cmd_ble_read_current_phy:
+	arg 0,temp
+	arg 2,rega
+	arg mem_context+coffset_le_rx_phy,regb
+	branch module_hci_event_set_cmd
+
+
+//command opcode 0x92
+module_hci_cmd_ble_set_dle:
+	fetch 1,mem_module_uart_len
+	bne 8,module_hci_event_receive_invalid_cmd
+	ifetch 8,contru
+	call le_set_dle
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x93
+module_hci_cmd_read_chip_data:
+	ifetchr rega,1,contru
+	ifetchr regb,2,contru
+	arg 0,temp
+	branch module_hci_event_set_cmd
+
+
+//command opcode 0x94
+module_hci_cmd_write_chip_data:
+	fetchr loopcnt,1,mem_module_uart_len
+	increase -2,loopcnt
+	ifetch 2,contru
+	copy pdata,contw
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd
+
+
+
+//command opcode 0xff
+module_hci_cmd_close_lpm:
+	jam 0,mem_lpm_mode
+	branch module_hci_event_receive_valid_cmd
+	
+
+
+
+module_hci_event_receive_invalid_cmd:
+	arg 1,temp
+	arg 0,rega
+	branch module_hci_event_set_cmd
+
+
+module_hci_event_receive_valid_cmd:
+	arg 0,temp
+	arg 0,rega
+	branch module_hci_event_set_cmd
+
+
+//event opcode 0x02
+module_hci_event_le_connect:
+	jam  HCI_EVENT_LE_CONN_REP,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+
+//event opcode 0x05
+module_hci_event_le_disconnect:
+	jam  HCI_EVENT_LE_DIS_REP,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+//event opcode 0x06
+//input:
+//	temp: success 0; fail 1
+//	rega:Response Content length
+//	regb:Response Content address
+module_hci_event_set_cmd:
+	fetch 1,mem_module_uart_opcode
+	copy pdata,regc
+	jam  HCI_EVENT_CMD_RES,mem_module_uart_opcode
+	setarg 2
+	iadd rega,pdata
+	call module_hci_prepare_tx
+	copy regc,pdata
+	istore 1,contwu
+	istoret 1,contwu
+	copy rega,loopcnt
+	copy regb,contr
+	call uart_copy_tx_bytes
+	branch module_hci_transmit_tx
+
+
+
+
+//event opcode 0x08
+//loopcnt pdata is data length
+module_hci_event_receive_le_data:
+	jam HCI_EVENT_LE_DATA_REP,mem_module_uart_opcode
+	add loopcnt,2,pdata
+	call module_hci_prepare_tx
+	fetch 2,mem_module_le_rx_data_handle // Attribute handle
+	istore 2,contwu
+	fetch 2,mem_module_le_rx_data_address
+	icopy contr
+	call uart_copy_tx_bytes_fast
+	copy contr,pdata
+	store 2,mem_module_le_rx_data_address
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x09
+module_hci_event_enter_standby_mode:
+	jam HCI_EVENT_STANDBY_REP,mem_module_uart_opcode
+module_hci_event_enter_standby_mode_len0:
+	setarg 0
+	call module_hci_prepare_tx
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x0a
+module_hci_event_status_res:
+	jam HCI_EVENT_STATUS_RES,mem_module_uart_opcode
+	setarg 1
+	call module_hci_prepare_tx
+	
+	call module_hci_read_bt_status
+	
+	fetch 2,mem_ui_state_map	
+	arg UI_STATE_BLE_CONNECTED,queue
+	qisolate1 pdata
+	setflag true,5,temp	
+	
+
+	
+	istoret 1,contwu
+	branch module_hci_transmit_tx
+
+//	temp: bit0 3.0 inquiry;bit1 3.0 scan;bit2 ble adv;
+
+module_hci_read_bt_status:
+	arg 0,temp
+	fetch 1,mem_le_adv_enable
+	arg 0,queue
+	qisolate1 pdata
+	setflag true,2,temp	
+	rtn
+
+
+//event opcode 0x0d
+module_hci_event_store_device:
+	jam HCI_EVENT_NVRAM_REP,mem_module_uart_opcode
+	fetch 1,mem_nv_data_number
+	mul32 pdata,34,pdata
+	icopy loopcnt
+	call module_hci_prepare_tx
+	fetch 2,mem_nv_data_ptr
+	icopy contr
+	call uart_copy_tx_bytes_fast
+	branch module_hci_transmit_tx
+
+//event opcode 0x0e
+module_hci_event_gkey_generate:
+	jam HCI_EVENT_GKEY,mem_module_uart_opcode
+	setarg 4
+	call module_hci_prepare_tx
+	fetch 4,mem_gkey
+	istore 4,contwu
+	branch module_hci_transmit_tx
+
+//event opcode 0x0f
+module_hci_event_invalid_packet:
+	jam HCI_EVENT_INVALID_PACKET,mem_module_uart_opcode
+	fetch 2,core_uart_rxitems
+	arg 0x40,temp
+	call not_greater_than
+	copy pdata,rega
+	copy pdata,loopcnt
+	call uarta_prepare_rx
+	arg mem_module_rx_error_data_buffer,contw
+	call uart_copy_rx_bytes_fast
+	copy rega,pdata
+	copy rega,loopcnt
+	call module_hci_prepare_tx
+	arg mem_module_rx_error_data_buffer,contr
+	call uart_copy_tx_bytes_fast
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x10
+module_hci_event_passkey_entry_mode:
+	jam  HCI_EVENT_GET_PASSKEY,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+//event opcode 0x11
+module_hci_event_le_tk:
+	jam HCI_EVENT_LE_TK,mem_module_uart_opcode
+	setarg 4
+	call module_hci_prepare_tx
+	fetch 4,mem_le_tk
+	istore 4,contwu
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x14
+module_hci_event_le_pairing_fail:
+	arg FLAG_BLE_PAIRING_FAIL,rega
+	branch module_hci_event_pairing_completed
+
+module_hci_event_le_pairing_success:
+	arg FLAG_BLE_PAIRING_SUCCESS,rega
+	branch module_hci_event_pairing_completed
+
+
+module_hci_event_pairing_completed:
+	jam HCI_EVENT_LE_PAIRING_STATE,mem_module_uart_opcode
+	setarg 2
+	call module_hci_prepare_tx
+	copy rega,pdata
+	istore 2,contwu
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x15
+module_hci_event_pause_enc:
+	arg FLAG_EVENT_PAUSE_ENC,regc
+	branch module_hci_event_enc
+
+module_hci_event_start_enc:
+	arg FLAG_EVENT_START_ENC,regc
+
+module_hci_event_enc:
+	jam HCI_EVENT_LE_ENCRYPTION_STATE,mem_module_uart_opcode
+	setarg 1
+	call module_hci_prepare_tx
+	copy regc,pdata
+	istore 1,contwu
+	branch module_hci_transmit_tx
+
+
+
+//event opcode 0x29
+//input:temp uuid number
+module_hci_event_uuid_handle:
+	storet 2,mem_temp
+	jam HCI_EVENT_UUID_HANDLE,mem_module_uart_opcode
+	setarg 2
+	call module_hci_prepare_tx
+	fetcht 2,mem_temp
+	istoret 2,contwu
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x2B
+module_hci_event_le_input_passkey:
+	jam HCI_EVENT_LE_INPUT_GKEY,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+//event opcode 0x40
+module_hci_event_le_update_phy:
+	jam HCI_BLE_UPDATE_PHY_EVENT,mem_module_uart_opcode
+	setarg 2
+	call module_hci_prepare_tx
+	fetch 2,mem_context+coffset_le_rx_phy
+	istore 2,contwu
+	branch module_hci_transmit_tx
+
+	
+
+//
+	//module_hci_prepare_tx
+	//function:write hci packet header
+	//input: pdata-----packet length  (1byte)
+	//input: mem_uart_opcode------opcode (1byte)
+	//output:contwu --- pointer to packet payload
+	//use reg: contwu,pdata
+//	
+module_hci_prepare_tx:
+	jam 0x02,mem_module_uart_cmd
+	store 1,mem_module_uart_len
+	storet 8,mem_temp
+	bpatch patch0c_6,mem_patch0c
+	call module_set_mcu_wake_pin_high_delay
+	fetcht 8,mem_temp
+	call uarta_prepare_tx_register_push
+	fetch 3,mem_module_uart_cmd
+	istore 3,contwu
+	rtn
+
+module_hci_transmit_tx:
+	bpatch patch0c_7,mem_patch0c
+	branch uarta_send_register_pop
+
+module_set_mcu_wake_pin_high_delay:
+	call module_check_mcu_wake_pin_high
+	rtn true
+module_set_mcu_wake_pin_h_delay:
+	call module_set_mcu_wake_pin_high
+	fetch 4,mem_module_mcu_wake_delay_us
+	rshift2 pdata,pdata
+	rtn blank
+	branch delay
+
+module_set_mcu_wake_pin_high:
+	fetcht 1,mem_module_mcu_wake_pin
+	branch gpio_out_active
+
+module_check_mcu_wake_pin_high:
+	fetcht 1,mem_module_mcu_wake_pin
+	branch gpio_check_active
+
+module_set_mcu_wake_pin_low:
+	fetcht 1,mem_module_mcu_wake_pin
+	branch gpio_out_inactive
+
+
+
+
+
+
+
+//rega is le rx data address
+//regb is le rx data length
+//mem_le_att_handle is write handle
+module_le_receive_data:
+	storer rega,2,mem_module_le_rx_data_address
+	storer regb,2,mem_module_le_rx_data_len
+	fetch 2,mem_le_att_handle
+	store 2,mem_module_le_rx_data_handle
+	call module_check_ble_encrypt_state
+	rtn user
+	
+module_le_receive_data_ok:	
+	fetcht 2,mem_module_le_rx_data_len
+	fetch 1,mem_module_ble_data_uart_max_length
+	call not_greater_than
+	copy pdata,loopcnt
+	copy temp,pdata
+	isub loopcnt,pdata
+	store 2,mem_module_le_rx_data_len
+	call module_hci_event_receive_le_data
+	fetch 2,mem_module_le_rx_data_len
+	rtn blank
+	branch module_le_receive_data_ok
+
+
+
+
+module_bb_event_timer:
+	rtn
+
+module_read_vdd_timer:
+	fetch 1,mem_module_read_vdd_flag
+	rtn blank
+	fetch 1,mem_module_read_vdd_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_module_read_vdd_count
+	nrtn blank
+	jam FLAG_MODULE_READ_VDD_COUNT,mem_module_read_vdd_count
+	call enable_adc
+	call vdd_calculate_by_mode
+	div pdata,10
+	call get_div_result
+	div pdata,100
+	call get_div_result
+	remainder temp
+	store 1,mem_module_vdd_quotient
+	storet 1,mem_module_vdd_remainder
+	rtn	
+	
+
+
+
+
+module_set_le_tx_data_flag:
+	arg MODULE_FLAG_BLE_DATA_FINISH,queue
+	branch module_set_state
+	
+module_clear_le_tx_data_flag:
+	arg MODULE_FLAG_BLE_DATA_FINISH,queue
+	branch module_clr_state
+
+module_clr_state:
+	fetch 2,mem_module_flag
+	qset0 pdata
+	store 2,mem_module_flag
+	rtn
+
+module_set_state:
+	fetch 2,mem_module_flag
+	qset1 pdata
+	store 2,mem_module_flag
+	rtn
+	
+
+
+
+mouse_init:
+	call enable_authrom
+	call mouse_setting_config
+	call mouse_init_sunt
+	rtn wake
+	call mouse_setting_sensor_type
+	call mouse_drawing_optima_init
+	call mouse_cb_fuction
+	call mouse_sensor_powerdown
+mouse_init_wireless:	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	call mouse_check_select_device_by_switch
+	branch mouse_start_work
+
+
+mouse_cb_fuction:
+	bpatch patch0d_0,mem_patch0d
+	setarg mouse_24g_short_sleep
+	store 2,mem_cb_24g_transmit_short_sleep
+	setarg mouse_24g_long_sleep
+	store 2,mem_cb_24g_transmit_long_sleep
+	setarg mouse_24g_before_lpm_sleep
+	store 2,mem_cb_before_lpm_sleep
+	setarg mouse_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg mouse_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	setarg mouse_lpm_before_common
+	store 2,mem_cb_24g_lpm_before
+	setarg mouse_le
+	store 2,mem_cb_le_process
+	setarg mouse_process_lpm_before
+	store 2,mem_cb_before_lpm
+	setarg mouse_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg mouse_idle
+	store 2,mem_cb_idle_process
+	setarg mouse_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg mouse_le_bb_event_connect_complete
+	store 2,mem_cb_att_write	
+	setarg mouse_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg mouse_spi_write_flash_cb
+	store 2,mem_cb_spi_flash_write_complate
+	setarg mouse_lpm_check_wake_lock
+	store 2,mem_cb_check_wakelock
+	setarg mouse_le_transmit
+	store 2,mem_cb_ble_transmit
+	setarg mouse_set_lpm_mult
+	store 2,mem_cb_bt_set_mult
+	rtn
+
+
+mouse_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call mouse_24g_send_time_long_wake
+	call mouse_gpio_init
+	call mouse_le_name_modify
+	call mouse_param_init
+	call mouse_device_multi_led_parm_init
+	call le_set_fixed_ltk_justwork
+mouse_load_device_info_check:
+	bpatch patch0d_1,mem_patch0d
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_load_eeprom_info_check
+	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_check
+	bbit1 MOUSE_ENABLE_OTP,mouse_load_otp_info_check
+	rtn
+	
+mouse_xtal_init:
+	jam XTAL_16M,mem_fcomp_div		// 0x08--16M 
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_16M
+	jam XTAL_24M,mem_fcomp_div		// 0x18--24M
+	rtn
+
+mouse_24g_phy_select:
+	call g24_enable_1M
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	branch g24_enable_2M
+
+mouse_default_init:
+	bpatch patch0d_2,mem_patch0d
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_KEYBOARD_ENABLE,pdata
+	call mouse_customer_key_enable,true
+	
+mouse_default_parm_init:
+	fetch 2,mem_mouse_24g_pair_timeout_init
+	store 2,mem_24g_pair_timeout_init
+
+	fetch 1,mem_mouse_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout_init
+
+	fetch 5,mem_rssi_dis_min_24g_init
+	store 5,mem_rssi_dis_min_24g
+
+	fetch 1,mem_mouse_24g_pair_tx_power
+	store 1,mem_24g_pair_tx_power
+
+	fetch 1,mem_24g_ch_map_update
+	ncall g24_chamap_param_update,blank
+mouse_default_parm_init_next:
+	bpatch patch0d_3,mem_patch0d
+	call mouse_xtal_init
+	call mouse_24g_phy_select
+	call mouse_24g_long_sleep_set
+	branch g24_pair_param_init
+
+mouse_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	jam 3,mem_lpm_mult_timeout
+	jam 8,mem_lpm_overhead
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue
+	jam COMMBINATION_KEY_STATE_UP,mem_commbination_key_statue	
+	setarg 0x0200
+	store 2,mem_lpm_interval
+	jam 0x17,mem_le_local_mtu
+	jam 0x17,mem_le_remote_mtu
+
+	setarg mem_le_tx_buffer0_omemalloc
+	store 2,mem_ble_l2cap_tx_buff0_ptr
+	setarg MOUSE_BLE_L2CAP_TXBUFF_SIZE
+	store 2,mem_ble_l2cap_tx_buff_size_ptr
+	branch mouse_adc_gpio_mux_init
+	
+mouse_param_init:
+	bpatch patch0d_4,mem_patch0d
+	call mouse_param_common_init
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state	
+//===========init spi param==============================
+	setarg 0x0a77
+	store 2,mem_spi_init_clk
+	setsect 0,0x1224
+	setsect 1,0x4000
+	setsect 2,0x0
+	istore 5,contw
+//======================================================	
+	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BT_125Hz,mouse_param_init_intervl_end
+	setarg LE_INTERVAL_7_5MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+mouse_param_init_intervl_end:
+	call mouse_g24_interval_param_8ms
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_250Hz,mouse_24g_short_sleep_set_end
+	call mouse_g24_interval_param_4ms
+mouse_24g_short_sleep_set_end:
+	fetch 3,mem_24g_short_sleep_set
+	store 3,mem_mouse_24g_short_sleep_set_init
+	fetch 1,mem_device_flag
+	store 1,mem_device_flag_temp
+	fetch 3,mem_le_lap+3
+	store 3,mem_mouse_le_lap_temp
+	setarg 0
+	store 7,mem_mouse_key
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_bt_discovery_count
+	store 1,mem_select_device_count
+	call le_modified_name_adv
+mouse_sensor_set_angle:
+	bpatch patch0d_5,mem_patch0d
+	fetch 1,mem_sensor_angle_default
+	store 1,mem_config_sensor_angle
+	fetch 1,mem_select_sensor_angle_gpio
+	rtneq GPIO_DISABLE
+	fetcht 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	call mouse_sensor_switch_angle,true
+	branch mouse_gpio_config_input_pd
+mouse_sensor_switch_angle:
+	fetch 1,mem_sensor_angle_switch
+	store 1,mem_config_sensor_angle
+	rtn
+
+mouse_g24_interval_param_4ms:
+	fetch 3,mem_mouse_24g_short_sleep_set_4ms
+	store 3,mem_24g_short_sleep_set
+	fetch 3,mem_mouse_24g_long_sleep_set_4ms
+	store 3,mem_24g_long_sleep_set
+	fetch 1,mem_mouse_24g_fast_hop_count_4ms
+	store 1,mem_24g_fast_hop_count
+	fetch 4,mem_mouse_24g_tsniff_4ms
+	store 4,mem_mouse_24g_tsniff	
+mouse_report_rate_set_250hz:
+	setarg 0x100c0c
+	store 3,mem_24g_interval
+	rtn
+
+mouse_g24_interval_param_8ms:
+	fetch 3,mem_mouse_24g_short_sleep_set_8ms
+	store 3,mem_24g_short_sleep_set
+	fetch 3,mem_mouse_24g_long_sleep_set_8ms
+	store 3,mem_24g_long_sleep_set
+	fetch 1,mem_mouse_24g_fast_hop_count_8ms
+	store 1,mem_24g_fast_hop_count
+	fetch 4,mem_mouse_24g_tsniff_8ms
+	store 4,mem_mouse_24g_tsniff
+mouse_report_rate_set_125hz:
+	setarg 0x1c1919
+	store 3,mem_24g_interval
+	rtn
+
+//mouse_report_rate_set_500hz:
+//	setarg 0x080606
+//	store 3,mem_24g_interval
+//	rtn
+//mouse_report_rate_set_1000hz:
+//	setarg 0x040303
+//	store 3,mem_24g_interval
+//	rtn
+
+
+mouse_start_work:
+	bpatch patch0d_6,mem_patch0d
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING, mouse_24g_first_start_auto_pair_mode
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_start_mode
+mouse_le_fast_conn_judge:
+	call mouse_bluetooth_fast_conn_disable
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_le_device1_judge
+	beq MODE_BT_DEVICE2,mouse_le_device2_judge
+	rtn
+mouse_le_device1_judge:
+	fetch 6,mem_device1_addr
+	fetcht 6,mem_mouse_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+	branch mouse_start_reconnect_device
+	
+mouse_le_device2_judge:
+	fetch 6,mem_device2_addr
+	fetcht 6,mem_mouse_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+	branch mouse_start_reconnect_device
+	
+mouse_start_reconnect_device:
+	bpatch patch0d_7,mem_patch0d
+	call mouse_device_le_reconn_led_config
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+mouse_start_reconnect:	
+	fetch 1,mem_xrecord_mode
+	beq REC_4_MODE,mouse4_0_check_reconn_target
+	branch mouse_bluetooth_fast_conn_init
+
+mouse_wakeup_from_power_check:
+	bpatch patch0e_0,mem_patch0e
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_from_poweron
+	fetch 1,core_lpm_isogate
+	bbit1 cold_wake,mouse_wakeup_from_poweron
+	enable user	//wake from hibernate
+mouse_wakeup_from_poweron:
+	fetch 1,mem_reconn_times_init
+	store 1,mem_reconn_times
+	rtn
+
+mouse4_0_check_reconn_target:
+	jam 1,mem_mouse_le_reconnect_flag
+	fetcht 1,mem_mouse_fast_direct_timeout
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse4_0_check_reconn_target_next
+	fetcht 1,mem_mouse_direct_timeout
+mouse4_0_check_reconn_target_next:	
+	storet 1,mem_mouse_direct_timer
+	call app_lpm_mult_disable
+	fetch 3,mem_le_adv_direct_ind
+	store 3,mem_le_adv_data+4
+	call mouse_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED
+	istore 1,contr
+	arg mem_le_scan_data,contr
+	call mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+
+
+mouse_lpm_check_wake_lock:
+	bmark1 mark_24g,app_get_lpm_wake_lock
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	branch app_get_lpm_wake_lock,blank
+	fetch 1,mem_mouse_le_conn_param_reject
+	beq LE_LPM_DISABLE,app_get_lpm_wake_lock
+	fetch 1,mem_mouse_wheel_trigger
+	nbranch app_get_lpm_wake_lock,blank
+	branch app_put_lpm_wake_lock
+
+
+
+//mouse_delay_enter_hibernata:
+//	fetch 1,mem_mouse_direct_timeout
+//	store 1,mem_mouse_bluetooth_reconnect_timeout
+//	rtn
+ 
+mouse_app_enter_hibernate:
+	bpatch patch0e_1,mem_patch0e
+	setarg PAN_REG_CONFIG
+	call twspi_read
+	bbit1 3,mouse_app_enter_hibernate_next
+	call mouse_sensor_reset
+	call mouse_sensor_powerdown
+mouse_app_enter_hibernate_next:
+	call mouse_setgpio_hibernate
+	branch app_enter_hibernate
+
+mouse_before_hibernate:
+	bpatch patch0e_2,mem_patch0e
+	call disable_authrom 
+	call mouse_before_hibernate_wheel_gpio_set
+	call mouse_setgpio_hibernate
+	call mouse_flash_power_down
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_clr_wake
+
+
+mouse_setgpio_hibernate:
+	bpatch patch0e_3,mem_patch0e
+	call mouse_set_sdio_high
+	call clear_wake
+	call mouse_logo_led_off
+	call mouse_lpm_before_common
+	call mouse_gpio_pd_idle
+	fetcht 1,mem_mouse_reuse_2ice_gpio
+	call mouse_gpio_config_input_pu
+	call mouse_gpio_set_high_impedance
+	call mouse_device_multi_led_all_off
+	call mouse_adc_gpio_set_before_hibernate
+	branch mouse_wheel_gpio_set_before_hibernate
+
+mouse_wheel_gpio_set_before_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+mouse_wheel_gpio_clr_wakeup:	
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_clr_wake
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_clr_wake
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_config_input_pd
+	fetcht 1,mem_whee_b_data_gpio
+	branch mouse_gpio_config_input_pd
+	
+mouse_adc_gpio_set_before_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetch 1,mem_adc_channel_gpio
+	arg gpcfg_no_ie,temp
+ 	branch gpio_config_function_int
+	
+
+//set all unused gpio to pull down mode to save power	
+mouse_gpio_pd_idle:
+	arg core_gpio_conf,contr
+	arg GPIO_NUMBER,loopcnt
+mouse_gpio_pd_idle_loop:
+	ifetch 1,contr
+	nbranch mouse_gpio_pd_idle_configured,blank
+	setarg gpcfg_pulldown
+	add contr,-1,contw
+	istore 1,contw
+mouse_gpio_pd_idle_configured:
+	loop mouse_gpio_pd_idle_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+mouse_gpio_pd_idle_ext:
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch mouse_gpio_pd_idle_loop
+	
+mouse_process_lpm_before:
+	rtnmark1 mark_24g
+	call mouse_lpm_before_common
+	fetch 1,mem_lpm_current_mult
+	nrtn blank					// 7.5ms, no gpio wakeup
+	branch gpio_clr_wake
+
+mouse_lpm_before_common:
+	bpatch patch0e_4,mem_patch0e
+	fetcht 1,mem_whee_a_data_gpio		//reinit gpio pu after disable wheel wakeup
+	call gpio_config_input
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_config_input
+	
+	call mouse_wheel_check
+	fetch 1,mem_mouse_sensor_sclk_gpio		//set sdio high
+ 	call mouse_gpio_config_output_high
+	call twspi_disable
+	
+	fetcht 1,mem_lbutton_gpio
+	call gpio_set_wake
+	fetcht 1,mem_rbutton_gpio
+	call gpio_set_wake
+	fetcht 1,mem_mbutton_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_bk_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_fw_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_customer_key_gpio
+	call gpio_set_wake
+	
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_set_wake
+
+
+//short mult: no key 
+mouse_set_mult:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+	copy rega,pdata
+	nbranch le_set_config_short_mult,blank
+	branch le_clr_config_short_mult
+	
+	
+	
+mouse_adc_gpio_set:
+	bpatch patch0e_5,mem_patch0e
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetcht 1,mem_adc_channel_gpio
+	branch gpio_set_high_impedance
+
+mouse_adc_gpio_mux_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	jam MOUSE_ADC_CHECK_MULTIPLE,mem_adc_mux_status
+	rtn
+
+mouse_adc_read:
+	bpatch patch0e_6,mem_patch0e
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	call mouse_adc_gpio_set
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_GPIO,mouse_adc_read_gpio_mux_start	// gpio + dpi/switch
+	jam MOUSE_ADC_CHECK_HVIN_MULTIPLE,mem_adc_mux_status
+	branch mouse_adc_read_start
+
+mouse_adc_read_gpio_mux_start:
+	jam MOUSE_ADC_CHECK_GPIO_MULTIPLE,mem_adc_mux_status
+	branch mouse_adc_read_start
+	
+mouse_adc_read_start:
+	bpatch patch0e_7,mem_patch0e
+	call enable_adc
+	call vdd_calculate_by_mode
+	store 2,mem_mouse_vdd_now_vol
+	fetch 1,mem_adc_config_flag
+	bne ADC_CONFIG_GPIO, mouse_adc_data_process
+	fetcht 2,mem_mouse_vdd_now_vol	// BAT= 1.5V, R = 200k, a = a*1.8
+	mul32 temp,8,pdata
+	div pdata,10
+	call get_div_result
+	iadd temp,pdata
+	store 2,mem_mouse_vdd_now_vol
+mouse_adc_data_process:	
+	arg mem_mouse_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,mouse_app_enter_hibernate
+	bbit0 0,mouse_adc_no_low_voltage
+	jam 1,mem_mouse_adc_last_low_voltage_flag
+	branch mouse_adc_low_voltage
+	
+mouse_adc_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_adc_no_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	call mouse_disable_function_flag
+	jam 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_mouse_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_mouse_adc_last_low_voltage_flag
+	branch mouse_low_voltage_led_off_judge
+	
+
+mouse_adc_bat_percent_lowpower_out:
+	bpatch patch0f_0,mem_patch0f
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+	fetch 1,mem_adc_mux_status
+	beq MOUSE_ADC_CHECK_BATTERY_ONLY,mouse_adc_bat_percent_lowpower_out_battery
+	beq MOUSE_ADC_CHECK_GPIO_MULTIPLE,mouse_adc_bat_percent_lowpower_out_battery
+	beq MOUSE_ADC_CHECK_HVIN_MULTIPLE,mouse_adc_bat_percent_lowpower_out_hvin_multiple
+mouse_adc_bat_percent_lowpower_out_battery:
+	call adc_clear_no_power_flag
+	call adc_clear_low_power_flag
+	fetch 2,mem_pdatatemp+6
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,null
+	ncall adc_set_no_power_flag,positive
+	fetcht 2,mem_pdatatemp+4		//low voltage
+	isub temp,null
+	ncall adc_set_low_power_flag,positive
+mouse_adc_bat_level_set:
+	fetch 2,mem_pdatatemp+6		//now voltage	
+	fetcht 2,mem_pdatatemp		//full voltage
+	isub temp,null
+	branch mouse_adc_bat_level_100_percent,positive		// now >= full
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,pdata
+	nbranch mouse_adc_bat_level_0_percent,positive		// now < shutdown
+	branch mouse_adc_bat_level_0_percent,blank			// now = shutdown
+	mul32 pdata,100,rega								// (now - shutdown)*100 /(full - shutdown)
+	fetch 2,mem_pdatatemp
+	fetcht 2,mem_pdatatemp+2
+	isub temp,temp
+	copy rega,pdata
+	idiv temp
+	call get_div_result
+	store 1,mem_le_battery_level_percentage
+	rtn
+
+mouse_adc_bat_level_100_percent:
+	jam 100,mem_le_battery_level_percentage
+	rtn
+mouse_adc_bat_level_0_percent:	
+	jam 0,mem_le_battery_level_percentage
+	rtn
+
+mouse_adc_bat_percent_lowpower_out_hvin_multiple:
+	branch mouse_adc_bat_percent_lowpower_out_battery
+	
+	
+
+
+
+mouse_gpio_init:
+	fetcht 1,mem_eeprom_wp_gpio
+	call gpio_config_output
+//	call usb_offline_check_init
+	fetcht 1,mem_lbutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_rbutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_mbutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_bk_button_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_fw_button_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_dpi_button_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_matrix_public_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_customer_key_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_whee_b_data_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_whee_ta_data_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_whee_tb_data_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_sensor_motion_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_device_switch_gpio
+	call mouse_gpio_config_input_pu
+	
+	fetcht 1,mem_select_sensor_angle_gpio
+	branch mouse_gpio_config_input_pu
+
+
+mouse_gpio_set_pupd_by_input:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	and temp,0x7f,queue
+	fetch 4,core_gpio_in
+	qisolate1 pdata
+	branch mouse_gpio_config_input_pu,true
+mouse_gpio_config_input_pd:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	set1 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+
+mouse_gpio_config_input_pu:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero 
+	set0 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+
+mouse_gpio_set_high_impedance:
+	fetch 3,mem_mouse_set_high_impedance_bit_set
+	store 3,mem_pdatatemp
+	arg 13,loopcnt
+	arg 0,temp
+mouse_gpio_set_high_impedance_bit_loop:	
+	fetch 3,mem_pdatatemp
+	isolate1 0,pdata
+	call gpio_set_high_impedance,true
+	fetch 3,mem_pdatatemp
+	lshift pdata,pdata
+	store 3,mem_pdatatemp
+	increase 1,temp
+	loop mouse_gpio_set_high_impedance_bit_loop
+	rtn
+
+
+
+
+
+mouse_le_name_modify:
+	bpatch patch0f_1,mem_patch0f
+	fetch 8,mem_le_name_patch
+	rtn blank
+	fetch 1,mem_le_name_patch_len
+	copy pdata,rega
+	sub pdata,11,null
+	nbranch mouse_le_name_patch_len_overflow,positive
+	
+	call mouse_le_name_clear
+	
+	arg mem_le_adv_swift_pair+9,contw
+	call mouse_le_name_modify_next
+	
+	arg mem_le_scan_data+2,contw
+	call mouse_le_name_modify_next
+	
+	arg mem_le_name,contw
+mouse_le_name_modify_next:
+	arg mem_le_name_patch,contr
+	copy rega,loopcnt
+	branch memcpy
+
+mouse_le_name_clear:
+	arg mem_le_adv_swift_pair+9,contw
+	call mouse_le_name_clear_next
+	
+	arg mem_le_scan_data+2,contw
+	call mouse_le_name_clear_next
+
+	arg mem_le_name,contw
+mouse_le_name_clear_next:
+	arg 11,loopcnt
+	branch clear_mem	
+
+mouse_le_name_patch_len_overflow:
+	call mouse_le_swift_pair_disable
+	
+	fetch 1,mem_le_name_patch_len
+	increase 1,pdata
+	store 1,mem_le_adv_swift_pair
+	jam 9,mem_le_adv_swift_pair+1
+	arg mem_le_name_patch,contr
+	arg mem_le_adv_swift_pair+2,contw
+	copy rega,loopcnt
+	call memcpy
+
+	fetch 1,mem_le_name_patch_len
+	increase 1,pdata
+	store 1,mem_le_scan_data
+	jam 9,mem_le_scan_data+1
+	arg mem_le_name_patch,contr
+	arg mem_le_scan_data+2,contw
+	copy rega,loopcnt
+	call memcpy
+
+	arg mem_le_name_patch_len,contr
+	arg mem_le_name_len,contw
+	copy rega,loopcnt
+	increase 1,loopcnt
+	branch memcpy
+
+mouse_le_swift_pair_disable:
+	arg mem_le_adv_swift_pair,contw
+	arg 20,loopcnt
+	branch clear_mem
+
+
+
+
+
+mouse_sensor_spi_init:
+	call mouse_spid_init_pin
+	jam 0x73,mem_spi_init_clk
+//	jam 0x1e,mem_spi_init_delay_time
+	call mouse_spi_init
+	branch twspi_enable
+	
+mouse_spi_write_flash_cb:
+mouse_spi_init:
+	branch spid_init
+	
+mouse_spid_init_pin:
+	fetch 1,mem_mouse_sensor_sclk_gpio
+ 	arg gpcfg_spid_sck,temp
+ 	call gpio_config_function_int
+ 	fetch 1,mem_mouse_sensor_sdio_gpio
+ 	arg gpcfg_spid_sdio,temp
+ 	branch gpio_config_function_int
+
+
+
+
+mouse_motion:
+	bpatch patch0f_2,mem_patch0f
+	disable user
+	setarg 0
+	store 6,mem_mouse_x
+	call mouse_check_sensor_data
+	setarg 0x0089
+	call twspi_write	
+	call mouse_setting_sensor_type
+	call mouse_zwheel
+	call mouse_t_zwheel
+	call mouse_key
+	fetch 1,mem_mouse_key
+	and_into 0x1f,pdata
+	store 1,mem_mouse_key
+	nbranch mouse_drawing_optima_init,user
+	call mouse_drawing_optima
+	branch mouse_no_data_timer_init
+
+
+
+mouse_zwheel:
+	fetch 1,mem_mouse_z_data
+	rtn blank	
+	store 1,mem_mouse_z
+	jam 0,mem_mouse_z_data
+	branch enable_user
+	
+mouse_t_zwheel:
+	fetch 1,mem_mouse_tz_data
+	rtn blank	
+	store 1,mem_mouse_tz
+	jam 0,mem_mouse_tz_data
+	branch enable_user
+
+mouse_wheel_check:
+	call mouse_t_wheel_scan
+	call mouse_wheel_scan
+	fetch 1,mem_wheel_tb_new_pinlevel
+	fetcht 1,mem_wheel_tb_old_pinlevel
+	store 1,mem_wheel_tb_old_pinlevel
+	isub temp,null
+	nbranch app_lpm_wake_auto_lock,zero
+	fetch 1,mem_mwheel_b_new_pinlevel
+	fetcht 1,mem_mwheel_b_old_pinlevel
+	store 1,mem_mwheel_b_old_pinlevel
+	isub temp,null
+	nbranch app_lpm_wake_auto_lock,zero
+	rtn
+mouse_t_wheel_scan:
+	fetch 1,mem_whee_ta_data_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	copy rega,pdata
+	store 1,mem_wheel_tb_new_pinlevel
+	beq 0x01,mouse_t_wheel_scan_judge1
+	beq 0x02,mouse_t_wheel_scan_judge2
+	fetch 1,mem_wheel_tog
+	bbit1 7,mouse_t_wheel_scan_judge3
+	rtn
+
+mouse_t_wheel_scan_judge1:
+	fetch 1,mem_wheel_tb_old_pinlevel
+	beq 0,mouse_t_wheel_scan_judge11
+	beq 3,mouse_t_wheel_scan_judge12
+	rtn
+mouse_t_wheel_scan_judge2:
+	fetch 1,mem_wheel_tb_old_pinlevel
+	beq 0,mouse_t_wheel_scan_judge21
+	beq 3,mouse_t_wheel_scan_judge22
+	rtn
+mouse_t_wheel_scan_judge11:
+	jam 0x82,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge12:
+	jam 0x81,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge21:
+	jam 0x80,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge22:
+	jam 0x83,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge3:
+	fetch 1,mem_wheel_tog
+	set0 7,pdata
+	store 1,mem_wheel_tog
+	beq 0,mouse_t_wheel_scan_judge30
+	beq 1,mouse_t_wheel_scan_judge31
+	beq 2,mouse_t_wheel_scan_judge32
+	beq 3,mouse_t_wheel_scan_judge33
+	rtn
+mouse_t_wheel_scan_judge30:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 3,mouse_wheel_t_forward
+	rtn
+mouse_t_wheel_scan_judge31:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 0,mouse_wheel_t_forward
+	rtn
+mouse_t_wheel_scan_judge32:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 3,mouse_wheel_t_back
+	rtn
+mouse_t_wheel_scan_judge33:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 0,mouse_wheel_t_back
+	rtn
+mouse_wheel_t_forward:
+	fetch 1,mem_mouse_tz_data
+	increase 1,pdata
+	store 1,mem_mouse_tz_data
+	rtn
+mouse_wheel_t_back:
+	fetch 1,mem_mouse_tz_data
+	increase -1,pdata
+	store 1,mem_mouse_tz_data
+	rtn
+
+
+mouse_wheel_scan:
+	fetch 1,mem_whee_a_data_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	copy rega,pdata
+	store 1,mem_mwheel_b_new_pinlevel
+	beq 0x01,mouse_wheel_scan_judge1
+	beq 0x02,mouse_wheel_scan_judge2
+	fetch 1,mem_mwheel_tog
+	bbit1 7,mouse_wheel_scan_judge3
+	rtn
+
+mouse_wheel_scan_judge1:
+	fetch 1,mem_mwheel_b_old_pinlevel
+	beq 0,mouse_wheel_scan_judge11
+	beq 3,mouse_wheel_scan_judge12
+	rtn
+mouse_wheel_scan_judge2:
+	fetch 1,mem_mwheel_b_old_pinlevel
+	beq 0,mouse_wheel_scan_judge21
+	beq 3,mouse_wheel_scan_judge22
+	rtn
+mouse_wheel_scan_judge11:
+	jam 0x82,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge12:
+	jam 0x81,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge21:
+	jam 0x80,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge22:
+	jam 0x83,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge3:
+	fetch 1,mem_mwheel_tog
+	set0 7,pdata
+	store 1,mem_mwheel_tog
+	beq 0,mouse_wheel_scan_judge30
+	beq 1,mouse_wheel_scan_judge31
+	beq 2,mouse_wheel_scan_judge32
+	beq 3,mouse_wheel_scan_judge33
+	rtn
+mouse_wheel_scan_judge30:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 3,mouse_wheel_forward
+	rtn
+mouse_wheel_scan_judge31:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 0,mouse_wheel_forward
+	rtn
+mouse_wheel_scan_judge32:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 3,mouse_wheel_back
+	rtn
+mouse_wheel_scan_judge33:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 0,mouse_wheel_back
+	rtn
+mouse_wheel_forward:
+	fetch 1,mem_mouse_z_data
+	increase 1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+mouse_wheel_back:
+	fetch 1,mem_mouse_z_data
+	increase -1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+
+
+mouse_wheel_gpio_set_wake:
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_tb_data_gpio
+	branch gpio_set_wake_by_current_state
+	
+mouse_before_hibernate_wheel_gpio_set:
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_b_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_ta_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_tb_data_gpio
+	branch mouse_gpio_set_pupd_by_input
+
+mouse_wheel_trigger:
+	fetch 2,mem_mouse_z
+	rtn blank
+	jam 1,mem_mouse_wheel_trigger
+	jam 10,mem_mouse_wheel_trigger_timer
+	rtn
+
+mouse_wheel_trigger_timer:
+	arg mem_mouse_wheel_trigger_timer,regc
+	arg mouse_wheel_trigger_disable,regb
+	branch timer_single_step
+mouse_wheel_trigger_disable:
+	jam 0,mem_mouse_wheel_trigger
+	rtn
+
+
+	
+
+
+
+
+mouse_dpi_check:
+	fetch 1,mem_dpi_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_DPI_KEY,mem_mouse_key_temp
+	fetcht 1,mem_dpi_button_gpio
+	call mouse_dpi_key_check
+mouse_dpi_check_next:
+	store 1,mem_mouse_dpikey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_dpi_check_end
+	call mouse_matrix_public_gpio_reset
+mouse_dpi_check_exit:	
+	copy rega,pdata
+	bbit1 MOUSE_DPI_KEY,mouse_dpi_down
+	branch mouse_dpi_up
+	
+mouse_dpi_key_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND,mouse_dpi_key_connect_gnd
+	fetch 1,mem_mouse_dpikey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_check
+mouse_dpi_key_check_next:
+	fetch 1,mem_mouse_ghost_flag
+	nbranch mouse_dpi_check_end,blank
+mouse_dpi_key_connect_matrix:
+	call gpio_get_bit
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_dpi_key_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_dpi_button_gpio
+	fetch 1,mem_mouse_dpikey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_3io6key_dpi_check_end:
+	fetcht 1,mem_dpi_button_gpio
+	call mouse_gpio_config_input_pu
+	branch mouse_dpi_check_exit
+
+mouse_dpi_check_end:
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	jam 0,mem_mouse_dpikey_press_status
+	rtn
+
+mouse_dpi_key_connect_gnd:
+	fetch 1,mem_mouse_dpikey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_dpi_down:
+	fetch 1,mem_mouse_dpi_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_mouse_dpi_button_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+	branch mouse_dpi_process
+
+mouse_dpi_up:
+	fetch 1,mem_mouse_dpi_button_state
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_dpi_up_next
+	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_dpi_up_next
+	rtn
+mouse_dpi_up_next:	
+	fetch 1,mem_mouse_dpi_long_press_flag
+	nbranch mouse_dpi_up_after_long_press,blank
+	fetch 1,mem_select_device_count
+	ncall mouse_dpi_process,blank
+mouse_dpi_up_after_long_press:	
+	jam 0,mem_mouse_dpi_long_press_flag
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_select_device_count	
+	store 1,mem_bt_discovery_count	
+	rtn
+	
+mouse_dpi_process:	
+	bpatch patch0f_3,mem_patch0f
+	call mouse_dpi_ghost_check
+	rtn user
+	fetch 1,mem_mouse_dpi
+	
+	copy pdata,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DOUBLE_DPI_KEY,mouse_double_dpi_check
+	copy temp,pdata
+	
+	increase 1,pdata
+	and pdata,0x03,pdata
+mouse_dpi_level_store:	
+	store 1,mem_mouse_dpi
+	call mouse_setting_dpi
+	branch mouse_store_dpi_info_check
+
+
+
+
+mouse_double_dpi_check:
+	fetch 1,mem_dpi_another_button_down_enable
+	nbranch mouse_another_dpi_button_down,blank
+mouse_dpi_increase:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_increase_level_4
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL2
+mouse_dpi_increase_level:
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_2 	//1200
+	rtn
+
+mouse_dpi_level_1:		//800
+	setarg 2
+	branch mouse_dpi_level_store
+mouse_dpi_level_2:		//1200
+	setarg 0
+	branch mouse_dpi_level_store
+mouse_dpi_level_3:		//1600
+	setarg 1
+	branch mouse_dpi_level_store
+mouse_dpi_level_4:		//1000
+	setarg 3
+	branch mouse_dpi_level_store	
+
+mouse_dpi_increase_level_4:
+	copy temp,pdata			//0->1,2->3,3->0
+	rtneq MOUSE_DPI_LEVEL2
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_2
+	rtn
+mouse_dpi_decrease_level_4:
+	copy temp,pdata			//0->3,1->0,3->2
+	rtneq MOUSE_DPI_LEVEL3
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_2
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_1
+	rtn
+
+mouse_another_dpi_button_down:
+mouse_dpi_decrease:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_decrease_level_4
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL3
+mouse_dpi_decrease_level:
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_1
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_2
+	rtn
+	
+
+
+
+mouse_dpi_ghost_check:
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+	branch mouse_ghost_key_value_check
+	
+mouse_dpi_key_check_long_press:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_select_device_by_dpi_button
+	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_discovery_by_dpi_button
+	rtn
+
+mouse_select_device_by_dpi_button:
+	fetch 1,mem_mouse_dpi_button_state
+	rtnne DPI_BUTTON_STATE_DOWN	
+	arg mem_select_device_count,regc
+	arg mouse_ready_reconnection_by_dpi_button,regb
+	branch timer_single_step
+
+mouse_ready_reconnection_by_dpi_button:
+	jam 1,mem_mouse_dpi_long_press_flag
+	branch mouse_ready_reconnection_by_button
+
+mouse_discovery_by_dpi_button:
+	fetch 1,mem_mouse_dpi_button_state
+	rtnne DPI_BUTTON_STATE_DOWN	
+	arg mem_bt_discovery_count,regc
+	arg mouse_long_dpi_button_bt_discovery,regb
+	branch timer_single_step
+
+mouse_long_dpi_button_bt_discovery:
+	jam 1,mem_mouse_dpi_long_press_flag
+	branch mouse_long_button_bt_discovery
+
+mouse_setting_dpi_4_level:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_DPI_LEVEL_4
+	fetch 1,mem_mouse_dpi
+	rtnne MOUSE_DPI_LEVEL4
+	jam MOUSE_DPI_LEVEL1,mem_mouse_dpi
+	rtn
+	
+mouse_setting_dpi:
+	bpatch patch0f_4,mem_patch0f
+	call mouse_setting_dpi_4_level
+	call mouse_dpi_led_blink_delay
+mouse_setting_sensor_type:
+	bpatch patch0f_5,mem_patch0f
+	fetch 1,mem_config_sensor_type
+	beq S201X,mouse_seting_S201_dpi
+	beq P3212,mouse_seting_3212_dpi
+	beq KA8G2,mouse_seting_ka8g2_dpi
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_cpi0		//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_cpi1		//1600
+	beq MOUSE_DPI_LEVEL3,mouse_set_cpi2		//800
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi3		//1000
+mouse_set_cpi1:	//320x+8009
+	fetcht 1,mem_320x_dpi_1
+	branch mouse_dpi_store
+mouse_set_cpi0:
+	fetcht 1,mem_320x_dpi_0
+	branch mouse_dpi_store
+mouse_set_cpi2:
+	fetcht 1,mem_320x_dpi_2
+	branch mouse_dpi_store
+mouse_set_cpi3:
+	fetcht 1,mem_320x_dpi_3
+mouse_dpi_store:
+	fetch 1,mem_config_sensor_type
+	beq P3065_XY,mouse_3065xy_set_dpi
+	beq MX8650,mouse_3065xy_set_dpi
+	beq KA8,mouse_ka8_set_dpi
+	beq P6520,mouse_ka8_set_dpi
+	beq P8009,mouse_3065xy_set_dpi
+mouse_dpi_write:		// 3205  1  2  3  4
+	storet 1,mem_mouse_cpi_count
+	setarg MOUSE_DPI_ADDRESS
+	call twspi_read
+	and pdata,0xf8,temp
+	fetch 1,mem_mouse_cpi_count
+	iadd temp,pdata
+	lshift8 pdata,pdata
+	add pdata,MOUSE_DPI_ADDRESS,pdata
+	branch twspi_write
+
+mouse_3065xy_set_dpi:	// 0 1 2 3
+	increase -1,temp
+	branch mouse_dpi_write
+
+mouse_ka8_set_dpi:	// 3 4 5 6
+	increase 2,temp
+	branch mouse_dpi_write
+
+mouse_seting_S201_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_S201_dpi_0	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_S201_dpi_2	//2400
+	beq MOUSE_DPI_LEVEL3,mouse_set_S201_dpi_3	//3200
+mouse_set_S201_dpi_0:	//1200
+	fetch 1,mem_sensor_s201_dpi_0
+	copy pdata,rega
+	branch mouse_dpi_S201_store
+
+mouse_set_S201_dpi_1:	//1600
+	fetch 1,mem_sensor_s201_dpi_1
+	copy pdata,rega
+	branch mouse_dpi_S201_store
+	
+mouse_set_S201_dpi_2:	//2400
+	fetch 1,mem_sensor_s201_dpi_2
+	copy pdata,rega
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_3:	//3200
+	fetch 1,mem_sensor_s201_dpi_3
+	copy pdata,rega
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_4:	//800
+	fetch 1,mem_sensor_s201_dpi_4
+	copy pdata,rega
+mouse_dpi_s201_store:
+	setarg 0xc309
+	call twspi_write
+	copy rega,pdata
+	lshift8 pdata,pdata
+	add pdata,0x23,pdata
+	call twspi_write
+	setarg 0x0009
+	branch twspi_write
+
+mouse_seting_3212_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi0	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_p3212_cpi1	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_set_p3212_cpi2	//2400
+	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi3	//800
+mouse_set_p3212_cpi1:
+	fetch 1,mem_3212_dpi_1
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi0:
+	fetch 1,mem_3212_dpi_0
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi2:
+	fetch 1,mem_3212_dpi_2
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi3:
+	fetch 1,mem_3212_dpi_3
+mouse_p3212_dpi:
+	store 1,mem_mouse_cpi_count
+	lshift8 pdata,pdata
+	copy pdata,rega
+	add pdata,MOUSE_P3212_DPI_XADDRESS,pdata
+  	call twspi_write
+ 	copy rega,pdata
+  	add pdata,MOUSE_P3212_DPI_YADDRESS,pdata
+	branch twspi_write
+
+mouse_seting_ka8g2_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_pka8g2_cpi0		//1600
+	beq MOUSE_DPI_LEVEL2,mouse_set_pka8g2_cpi1		//2400
+	beq MOUSE_DPI_LEVEL3,mouse_set_pka8g2_cpi2		//3200
+	beq MOUSE_DPI_LEVEL4,mouse_set_pka8g2_cpi3		//800
+mouse_set_pka8g2_cpi1:
+	fetch 1,mem_ka8g2_dpi_1
+	branch mouse_p3212_dpi
+
+mouse_set_pka8g2_cpi0:
+	fetch 1,mem_ka8g2_dpi_0
+	branch mouse_p3212_dpi
+	
+mouse_set_pka8g2_cpi2:
+	fetch 1,mem_ka8g2_dpi_2
+	branch mouse_p3212_dpi
+
+mouse_set_pka8g2_cpi3:
+	fetch 1,mem_ka8g2_dpi_3
+	branch mouse_p3212_dpi
+
+		
+		
+
+
+
+
+mouse_key:
+	call mouse_check_firekey_gpio
+	fetch 1,mem_fire_key_flag
+	nbranch fire_key_press,blank
+	fetch 1,mem_fire_key_status
+	nbranch fire_key_process,blank
+	
+	call mouse_check_key_gpio
+	call mouse_ghost_key_check
+	call mouse_set_mult
+	call mouse_24g_key
+	copy rega,pdata
+	fetcht 1,mem_mouse_key_last
+	store 1,mem_mouse_key_last
+	store 1,mem_mouse_key
+	ixor temp,pdata
+	sub pdata,0,null
+	rtn zero
+	branch enable_user
+
+mouse_24g_key:
+	rtnmark0 mark_24g
+	copy rega,pdata
+	rtn blank
+	store 1,mem_mouse_key
+	branch enable_user
+
+	
+
+
+mouse_ghost_key_check:
+	jam 0,mem_mouse_matrix_key_cow_count
+	jam 0,mem_mouse_matrix_key_row_count
+	jam 0,mem_mouse_ghost_flag
+	copy pdata,regb
+	fetcht 1,mem_lbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_matrix_ghost_key_L_BK,zero
+	fetch 1,mem_fw_button_gpio
+	isub temp,null
+	branch mouse_matrix_ghost_key_L_FW,zero
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_MBK_RFW,zero
+	branch mouse_ghost_key_MFW_RBK
+
+mouse_matrix_ghost_key_L_BK:
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_fw_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_LBK_MFW,zero
+	branch mouse_ghost_key_LBK_RFW
+
+mouse_matrix_ghost_key_L_FW:
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_LFW_MBK,zero
+	branch mouse_ghost_key_LFW_RBK
+
+mouse_ghost_key_LBK_MFW:
+	call mouse_ghost_key_check_L_BK
+	call mouse_ghost_key_check_M_FW
+	branch mouse_ghost_key_check_next
+
+mouse_ghost_key_LBK_RFW:
+	call mouse_ghost_key_check_L_BK
+	branch mouse_ghost_key_RFW
+
+mouse_ghost_key_LFW_MBK:
+	call mouse_ghost_key_check_L_FW
+	call mouse_ghost_key_check_M_BK
+	branch mouse_ghost_key_check_next
+	
+mouse_ghost_key_LFW_RBK:
+	call mouse_ghost_key_check_L_FW
+	branch mouse_ghost_key_RBK
+	
+mouse_ghost_key_MBK_RFW:
+	call mouse_ghost_key_check_M_BK
+mouse_ghost_key_RFW:
+	call mouse_ghost_key_check_R_FW
+	branch mouse_ghost_key_check_next
+	
+mouse_ghost_key_MFW_RBK:
+	call mouse_ghost_key_check_M_FW
+mouse_ghost_key_RBK:
+	call mouse_ghost_key_check_R_BK
+mouse_ghost_key_check_next:
+	call mouse_ghost_key_check_BK_FW
+	call mouse_ghost_key_check_LMR
+	fetch 1,mem_mouse_matrix_key_row_count
+	rtn blank
+	fetch 1,mem_mouse_matrix_key_cow_count
+	rtn blank
+	jam 1,mem_mouse_ghost_flag
+	fetch 1,mem_mouse_key_last		// matrix have ghost key
+	copy pdata,rega
+	rtn
+
+mouse_ghost_key_check_L_BK:
+	and regb,MOUSE_L_BK_BUTTON,pdata
+	beq MOUSE_L_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_M_BK:
+	and regb,MOUSE_L_BK_BUTTON,pdata
+	beq MOUSE_M_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_R_BK:
+	and regb,MOUSE_L_BK_BUTTON,pdata
+	beq MOUSE_R_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_L_FW:
+	and regb,MOUSE_L_BK_BUTTON,pdata
+	beq MOUSE_L_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_M_FW:
+	and regb,MOUSE_M_FW_BUTTON,pdata
+	beq MOUSE_M_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_R_FW:
+	and regb,MOUSE_M_FW_BUTTON,pdata
+	beq MOUSE_R_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+
+mouse_ghost_key_check_BK_FW:
+	and regb,MOUSE_BK_FW_BUTTON,pdata
+	beq MOUSE_BK_FW_BUTTON,mouse_matrix_row_more_than_one_key
+	rtn	
+
+mouse_ghost_key_check_LMR:
+	and temp,MOUSE_LMR_BUTTON,pdata	// key LMR press
+	beq MOUSE_LR_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_LM_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_RM_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_LMR_BUTTON,mouse_matrix_row_more_than_one_key
+	rtn
+
+
+mouse_matrix_row_more_than_one_key:
+	jam 1,mem_mouse_matrix_key_row_count
+	rtn
+
+mouse_matrix_cow_more_than_one_key:
+	jam 1,mem_mouse_matrix_key_cow_count
+	rtn
+
+
+
+
+
+
+
+mouse_dpi_another_gpio_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
+	bbit0 MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND,mouse_dpi_another_gpio_connect_vin_check
+mouse_dpi_another_gpio_connect_gnd_check:	
+	fetch 1,mem_dpi_another_button_gpio
+	call mouse_gpio_config_output_high
+	call mouse_dpi_another_check
+	fetcht 1,mem_dpi_another_button_gpio
+	branch mouse_gpio_config_input_pu	
+
+mouse_dpi_another_gpio_connect_vin_check:
+	fetch 1,mem_dpi_another_button_gpio
+	call mouse_gpio_config_output_low
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status
+	call mouse_check_key_connect_vin_new
+	call mouse_dpi_another_state_check
+	fetcht 1,mem_dpi_another_button_gpio
+	branch mouse_gpio_config_input_pu	
+
+mouse_dpi_another_down_new:
+	call mouse_gpio_config_input_pu	
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
+	branch mouse_dpi_process
+
+mouse_dpi_another_check:
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status	
+	call mouse_check_key_connect_gnd_new
+mouse_dpi_another_state_check:
+	store 1,mem_dpi_another_press_status
+	fetch 1,mem_dpi_another_button_down_enable
+	branch mouse_dpi_another_up,blank	
+mouse_dpi_another_down:
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
+	branch mouse_dpi_process
+
+mouse_dpi_another_up:
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_dpi_another_button_state
+	rtn
+
+mouse_check_key_connect_gnd_new:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp_patch
+	copy temp,queue
+	beq 0x07,mouse_another_dpi_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_another_dpi_key_release
+	rtn
+
+mouse_check_key_connect_vin_new:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call mouse_gpio_config_input_pd
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp_patch
+	copy temp,queue
+	beq 0x07,mouse_another_dpi_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_another_dpi_key_release
+	rtn
+
+mouse_another_dpi_key_press:
+	jam 1,mem_dpi_another_button_down_enable
+	rtn
+mouse_another_dpi_key_release:
+	jam 0,mem_dpi_another_button_down_enable
+	rtn
+
+
+
+
+
+
+
+mouse_check_firekey_gpio:
+	arg 0,regb
+	fetch 1,mem_firebutton_gpio
+	rtneq GPIO_DISABLE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_FIRE_KEY_CONNECT_GND,mouse_check_firekey_connect_vin
+mouse_check_firekey_connect_gnd:
+	fetcht 1,mem_firebutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	setflag true,0,regb
+mouse_firekey_state_store:	
+	copy regb,pdata
+	store 1,mem_fire_key_flag
+	rtn
+
+mouse_check_firekey_connect_vin:
+	fetcht 1,mem_firebutton_gpio
+	call mouse_gpio_config_input_pd
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	nsetflag true,0,regb
+	branch mouse_firekey_state_store
+
+fire_key_process: 
+	beq 4,fire_key_process_end
+fire_key_press:
+	call firekey_clkn_bt_timer_check 
+	fetch 4,mem_fire_key_delay
+	arg 0xa0,temp      
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	store 4,mem_fire_key_delay 
+	fetch 1,mem_fire_key_status
+	beq 0,fire_key_process_start
+	beq 1,fire_key_process_release1
+	beq 2,fire_key_process_start2
+	beq 3,fire_key_process_release2
+	rtn
+
+fire_key_process_start:
+	jam 1,mem_fire_key_status
+fire_key_down:
+	jam 1,mem_mouse_key
+	branch enable_user
+
+fire_key_process_release1:
+	jam 2,mem_fire_key_status
+fire_key_release:
+	jam 0,mem_mouse_key
+	branch enable_user
+
+fire_key_process_start2:
+	jam 3,mem_fire_key_status
+	branch fire_key_down
+
+fire_key_process_release2:
+	jam 0,mem_fire_key_status
+	branch fire_key_release
+
+fire_key_process_end:
+	jam 0,mem_fire_key_status
+	jam 0,mem_mouse_key
+	rtn
+
+firekey_clkn_bt_timer_check:
+	fetcht 4,mem_fire_key_delay
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall firekey_clkn_bt_timer_timeout,positive
+	rtn
+firekey_clkn_bt_timer_timeout:
+	setarg 0
+	store 4,mem_fire_key_delay
+	rtn
+
+
+
+
+
+
+
+mouse_key_check_once:
+	call mouse_check_key_gpio_once
+	call mouse_check_key_gpio
+	setarg 0x00
+	store 3,mem_mouse_lkey_press_status
+	rtn
+	
+mouse_check_key_gpio:
+	bpatch patch0f_6,mem_patch0f
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_check_key_gpio_once,blank
+	arg 0,rega
+	call mouse_check_lkey_gpio
+	call mouse_check_rkey_gpio
+	call mouse_check_mkey_gpio
+	call mouse_check_bkkey_gpio
+	call mouse_check_fwkey_gpio
+	call mouse_check_firekey_gpio
+	call mouse_check_customerkey_gpio
+	copy rega,pdata
+	rtn
+
+mouse_check_key_gpio_once:
+	setarg 0x030303
+	store 3,mem_mouse_lkey_press_status
+	rtn
+
+mouse_check_lkey_gpio:
+	fetch 1,mem_lbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_L_KEY,mem_mouse_key_temp
+	fetcht 1,mem_lbutton_gpio
+	fetch 1,mem_mouse_lkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_lkey_press_status
+	fetcht 1,mem_lbutton_gpio
+	branch mouse_gpio_config_input_pu
+
+mouse_check_rkey_gpio:
+	fetch 1,mem_rbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_R_KEY,mem_mouse_key_temp
+	fetcht 1,mem_rbutton_gpio
+	fetch 1,mem_mouse_rkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_rkey_press_status
+	fetcht 1,mem_rbutton_gpio
+	branch mouse_gpio_config_input_pu
+	
+mouse_check_mkey_gpio:
+	fetch 1,mem_mbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_M_KEY,mem_mouse_key_temp
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_mouse_mkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_mkey_press_status
+	fetcht 1,mem_mbutton_gpio
+	branch mouse_gpio_config_input_pu
+
+mouse_check_bkkey_gpio:
+	fetch 1,mem_bk_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_BK_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_bkkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_bk_check
+	call gpio_get_bit
+	branch mouse_check_bk_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_mouse_bkkey_press_status
+	call mouse_check_key_connect_gnd
+mouse_check_bkkey_gpio_end:	
+	store 1,mem_mouse_bkkey_press_status
+	branch mouse_matrix_public_gpio_reset
+
+mouse_check_bk_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_bkkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_bkkey_gpio_end
+
+mouse_3io6key_bk_check:
+	fetch 1,mem_bk_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_bk_button_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_bkkey_press_status
+	fetcht 1,mem_bk_button_gpio
+	branch mouse_gpio_config_input_pu
+
+
+mouse_check_fwkey_gpio:
+	fetch 1,mem_fw_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_FW_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_fwkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_fw_check
+	call gpio_get_bit
+	branch mouse_check_fw_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_mouse_fwkey_press_status
+	call mouse_check_key_connect_gnd
+mouse_check_fwkey_gpio_end:	
+	store 1,mem_mouse_fwkey_press_status
+mouse_matrix_public_gpio_reset:	
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_gpio_config_input_pu
+
+mouse_check_fw_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_fwkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_fwkey_gpio_end	
+
+mouse_3io6key_fw_check:
+	fetch 1,mem_fw_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_fw_button_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_fwkey_press_status
+	fetcht 1,mem_fw_button_gpio
+	branch mouse_gpio_config_input_pu
+
+mouse_check_customerkey_gpio:
+	jam 0,mem_customer_key
+	fetch 1,mem_customer_key_gpio
+	rtneq GPIO_DISABLE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	bbit1 MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN_OR_MATRIX,mouse_customer_key_connect_vin
+mouse_customer_key_connect_gnd:
+	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
+	fetcht 1,mem_customer_key_gpio
+	fetch 1,mem_mouse_customerkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_customerkey_press_status
+mouse_check_customerkey_gpio_next:
+	copy rega,pdata
+	bbit1 MOUSE_CUSTOMER_KEY,mouse_customerkey_press
+	call mouse_customerkey_release
+mouse_check_customerkey_gpio_exit:
+	fetch 1,mem_customer_data_trigger
+	store 1,mem_customer_data_trigger_last
+	rtn
+
+mouse_customer_key_connect_vin:
+	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_customerkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_customer_key_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_customer_key_check_vin
+	call gpio_get_bit
+	branch mouse_check_customer_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_customer_key_gpio
+	fetch 1,mem_mouse_customerkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_customerkey_gpio_over
+
+mouse_check_customer_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_customerkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_customerkey_gpio_over
+
+mouse_3io6key_customer_key_check_vin:
+	fetch 1,mem_customer_key_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_customer_key_gpio
+	call mouse_3io6key_check
+mouse_check_customerkey_gpio_over:	
+	store 1,mem_mouse_customerkey_press_status
+	call mouse_check_customerkey_gpio_next
+	fetcht 1,mem_customer_key_gpio
+	branch mouse_gpio_config_input_pu
+	
+
+mouse_customerkey_press:
+	jam 1,mem_customer_data_trigger
+	call mouse_customer_key_need_send
+	branch mouse_check_customerkey_gpio_exit
+
+mouse_customerkey_release:
+	jam 0,mem_customer_data_trigger
+	fetch 1,mem_customer_data_trigger_last
+	rtn blank
+mouse_customer_key_need_send:	
+	jam 1,mem_customer_key
+	rtn	
+
+
+
+mouse_check_matrix_button_connect_gnd:	
+	call gpio_get_bit
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue	
+	branch  mouse_key_press,true
+mouse_key_release:
+	qset0 rega
+	rtn	
+
+mouse_check_key_connect_gnd:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+mouse_check_key_connect_gnd_1:
+	and regb,0x07,pdata
+mouse_check_key_connect_gnd_next:
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue
+	beq 0x07,mouse_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_key_release
+	rtn
+
+mouse_key_press:
+	qset1 rega
+	rtn
+
+mouse_3io6key_check:
+	bpatch patch0f_7,mem_patch0f
+	copy regc,pdata
+	store 1,mem_mouse_key_status
+	lshift pdata,pdata
+	copy pdata,regb
+	copy temp,regc
+	call mouse_gpio_config_input_pd
+	copy regc,temp
+	call gpio_get_bit
+	nsetflag true,0,regb
+	call mouse_check_press
+	branch mouse_check_key_connect_gnd_next
+
+mouse_check_press:
+	fetcht 1,mem_mouse_key_status
+	and_into 0x01,temp
+	and regb,0x01,pdata
+	isub temp,null
+	nbranch mouse_current_mult_update,zero
+	rtn
+	
+	
+//input:pdata gpio number
+mouse_gpio_config_output_high:
+	rtneq GPIO_DISABLE
+	arg gpcfg_output_high,temp
+	branch gpio_config_function_int
+
+//input:pdata gpio number
+mouse_gpio_config_output_low:
+	rtneq GPIO_DISABLE
+	arg gpcfg_output_low,temp
+	branch gpio_config_function_int	
+	
+
+
+	
+mouse_init_sunt:
+	bpatch patch10_0,mem_patch10
+	call mouse_sensor_spi_init
+	rtn wake
+mouse_init_sensor_wakeup:	
+	call mouse_sensor_poweron
+mouse_init_sensor:
+	bpatch patch10_1,mem_patch10
+	call mouse_read_sensor_id
+	beq P32XX_ID1,mouse_init_p32xx_id2_judge
+	beq P3065_ID1,mouse_init_p3065
+	beq PKA8G2_ID1,mouse_ka8g2_id2_judge
+	call mouse_twspi_reset
+	nop 6900
+	branch mouse_init_sensor
+mouse_twspi_reset:
+	fetcht 1,mem_mouse_sensor_sclk_gpio
+	call twspi_reset
+	branch mouse_spid_init_pin
+
+mouse_read_sensor_id:
+	setarg PAN_REG_PID_H
+	call twspi_read
+	store 1,mem_sensor_id2
+	setarg PAN_REG_PID_L
+	call twspi_read
+	store 1,mem_sensor_id1
+	rtn
+
+mouse_init_p32xx_id2_judge:
+	fetch 1,mem_sensor_id2
+	beq P_MX8650,mouse_mx8650_init_param
+	beq P8009_ID2,mouse_8009_init_param
+	beq P3205_TJ3T_ID2,mouse_S210X_3205_3t_judge
+	beq P3204_TJ3L_ID2,mouse_3204_3l_init_param
+	beq P3212_ID2,mouse_3212_init_param
+	beq PKA8_ID2,mouse_ka8_init_param_check
+	beq P6520A_ID2,mouse_p6520_init_param
+	branch mouse_init_sensor
+
+mouse_S210X_3205_3t_judge:
+	setarg 0x49		// id3
+	call twspi_read
+	beq 0xa1,mouse_S201X_init_param
+	branch mouse_3205_3t_init_param
+
+mouse_S201X_init_param:
+	jam S201X,mem_config_sensor_type
+	rtn
+	
+mouse_mx8650_init_param:
+	jam MX8650,mem_config_sensor_type
+	call mouse_sensor_reset
+	call delay_10ms
+	arg mem_sensor_8650_init,regc
+	call mouse_sensor_wr_seq
+	branch mouse_setting_sensor_type
+
+mouse_8009_init_param:
+	setarg 0x16
+	call twspi_read
+	sub pdata,0xbd,null 
+	nbranch mouse_init_sunt,zero
+	setarg 0x19
+	call twspi_read
+	sub pdata,0x55,null 
+	nbranch mouse_init_sunt,zero
+	setarg 0x1b
+	call twspi_read
+	sub pdata,0x1d,null 
+	nbranch mouse_init_sunt,zero
+	jam P8009,mem_config_sensor_type
+	arg mem_sensor_8009_init,regc
+	branch mouse_sensor_wr_seq
+
+mouse_3205_3t_init_param:
+	jam P3205,mem_config_sensor_type
+	arg mem_sensor_3205_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init,regc
+	call mouse_sensor_wr_seq
+	setarg 0x0943
+	call twspi_write
+	arg mem_sensor_32xx_init_1,regc
+	branch mouse_sensor_wr_seq	
+
+mouse_3204_3l_init_param:
+	jam P3204,mem_config_sensor_type
+	arg mem_sensor_3204_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init_1,regc
+	branch mouse_sensor_wr_seq	
+
+mouse_3212_init_param:
+	jam P3212,mem_config_sensor_type
+	arg mem_sensor_3212_init,regc
+mouse_sensor_wr_seq:
+	ifetch 2,regc
+	arg 0xffff,temp
+	isub temp,null
+	rtn zero
+	call twspi_write
+	increase 2,regc
+	branch mouse_sensor_wr_seq
+
+mouse_ka8_init_param_check:	
+	call mouse_sensor_disable_wp
+	setarg 0x9a5b
+	call twspi_write
+	setarg 0x0d
+	call twspi_read
+	sub pdata,0x12,null
+	branch mouse_ka8ul_init_param,zero
+	sub pdata,0x0a,null
+	nbranch mouse_ka8hd_sensor_judge,zero
+	setarg 0x0e
+	call twspi_read
+	sub pdata,0xe5,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x10
+	call twspi_read
+	sub pdata,0xa5,null
+	branch mouse_ka8ul_init_param,zero
+	call mouse_enable_ka8_sensor_wp
+mouse_ka8_init_param:
+	jam KA8,mem_config_sensor_type	
+	rtn
+mouse_ka8ul_init_param:
+	jam KA8_UL,mem_config_sensor_type	
+	arg mem_sensor_ka8ul_init,regc
+	branch mouse_sensor_wr_seq
+mouse_ka8hd_sensor_judge:
+	sub pdata,0x10,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x0e
+	call twspi_read
+	sub pdata,0xc5,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x10
+	call twspi_read
+	sub pdata,0x38,null
+	nbranch mouse_init_sensor,zero
+mouse_ka8hd_init_param:
+	call mouse_enable_ka8_sensor_wp
+	jam KA8_HD,mem_config_sensor_type
+	rtn
+mouse_enable_ka8_sensor_wp:
+	setarg 0x005b
+	call twspi_write
+	branch mouse_sensor_enable_wp
+	
+mouse_p6520_init_param:
+	jam P6520,mem_config_sensor_type
+	arg mem_sensor_p6520_init,regc
+	branch mouse_sensor_wr_seq
+	
+mouse_init_p3065:
+	call mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq P3065_XY_ID2,mouse_p3065xy_init_param
+	beq P3065_ID2,mouse_p3065_init_param
+	branch mouse_init_sensor
+	
+mouse_p3065_init_param:	
+	jam P3065,mem_config_sensor_type
+	rtn
+
+mouse_p3065xy_init_param:
+	jam P3065_XY,mem_config_sensor_type
+	rtn
+	
+mouse_ka8g2_id2_judge:
+	call mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq PKA8G2_ID2,mouse_ka8g2_init_param
+	branch mouse_init_p32xx_id2_judge
+mouse_ka8g2_init_param:
+	jam KA8G2,mem_config_sensor_type
+	arg mem_sensor_ka8g2_init,regc
+	branch mouse_sensor_wr_seq
+	
+mouse_sensor_enable_wp:
+	setarg 0x0009
+	branch twspi_write
+mouse_sensor_disable_wp:
+	setarg 0x5a09
+	branch twspi_write
+
+mouse_sensor_reset:	
+	arg 0x8006,temp
+	fetch 1,mem_config_sensor_type
+	bne KA8G2,mouse_sensor_reset_end
+	arg 0x9706,temp
+mouse_sensor_reset_end:
+	copy temp,pdata
+	call twspi_write
+	nop 12000
+	rtn
+
+mouse_sensor_poweron_init:
+	arg mem_sensor_poweron_init,regc
+	fetch 1,mem_config_sensor_type
+	rtnne KA8G2
+	arg mem_sensor_ka8g2_poweron_init,regc
+	rtn
+	
+mouse_sensor_poweron:
+	bpatch patch10_2,mem_patch10
+	call mouse_sensor_spi_init
+	call mouse_sensor_reset
+	call mouse_sensor_poweron_init
+	call mouse_sensor_wr_seq
+	branch mouse_setting_sensor_type
+
+mouse_sensor_powerdown:
+	bpatch patch10_3,mem_patch10
+	call mouse_init_sunt
+	call mouse_sensor_spi_init
+	arg 0x0806,temp
+	fetch 1,mem_config_sensor_type
+	bne KA8G2,mouse_sensor_powerdown_end
+	arg 0x1f06,temp
+mouse_sensor_powerdown_end:
+	copy temp,pdata
+	branch twspi_write
+	
+
+
+
+
+mouse_check_sensor_data:
+	fetch 1,mem_spi_write_flash_sm
+	rtnne FLASH_SM_NO_BUYS
+	fetch 1,mem_config_sensor_type
+	beq P3205,mouse_p32xx_sensor_motion
+	beq P3065,mouse_p32xx_sensor_motion
+	beq KA8,mouse_p32xx_sensor_motion
+	beq P3204,mouse_p32xx_sensor_motion
+	beq P3212,mouse_p3212_sensor_motion
+	beq P3065_xy,mouse_p32xx_sensor_motion
+	beq P8009,mouse_p8009_sensor_motion	
+	beq KA8G2,mouse_pka8g2_sensor_motion
+	branch mouse_p32xx_sensor_motion
+
+
+mouse_p32xx_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_p32xx_sensor_motion_2
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_p32xx_sensor_motion_2:
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne P32XX_ID1,mouse_p3065_judge   
+mouse_p32xx_sensor_motion_1:
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	call mouse_read_sensor_common
+	fetch 1,mem_mouse_x
+	call mouse_data_extsign
+	store 2,mem_mouse_x
+	fetch 1,mem_mouse_y
+	call mouse_data_extsign
+	store 2,mem_mouse_y
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,mouse_motion32xx_6clk_direction_selection
+	beq MOUSE_9CLK_ANGLE,mouse_motion32xx_9clk_direction_selection
+	beq MOUSE_12CLK_ANGLE,mouse_motion32xx_12clk_direction_selection
+	beq MOUSE_3CLK_ANGLE,mouse_motion32xx_3clk_direction_selection
+	rtn
+
+mouse_p3065_judge:
+	beq P3065_ID1,mouse_p32xx_sensor_motion_1
+	branch mouse_twspi_reset
+	
+mouse_motion32xx_6clk_direction_selection:
+	call mouse_motion_6clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_9clk_direction_selection:
+	call mouse_motion_9clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_12clk_direction_selection:
+	call mouse_motion_12clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_3clk_direction_selection:
+	call mouse_motion_3clk_direction_dispose
+	branch mouse_sensor_sdio_low
+
+
+	
+mouse_p3212_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_p3212_sensor_motion_1
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_p3212_sensor_motion_1:	
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne P32XX_ID1,mouse_twspi_reset
+mouse_p3212_sensor_motion_2:
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	call mouse_read_sensor_common
+	call mouse_read_3212sensor_xy_high
+	store 1,mem_mouse_xy_h
+	rshift4 pdata,pdata
+	call mouse_data_extsign_bit3
+	store 1,mem_mouse_x+1
+	fetch 1,mem_mouse_xy_h
+	and pdata,0x0f,pdata
+	call mouse_data_extsign_bit3
+	store 1,mem_mouse_y+1
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,mouse_motion_6clk_direction_dispose
+	beq MOUSE_9CLK_ANGLE,mouse_motion_9clk_direction_dispose
+	beq MOUSE_12CLK_ANGLE,mouse_motion_12clk_direction_dispose
+	beq MOUSE_3CLK_ANGLE,mouse_motion_3clk_direction_dispose
+	rtn
+
+mouse_read_3212sensor_xy_high:
+	setarg 0x12
+	branch twspi_read
+
+mouse_pka8g2_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_pka8g2_sensor_motion_1
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_pka8g2_sensor_motion_1:
+	branch mouse_p3212_sensor_motion_2
+
+
+mouse_p8009_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	setarg PAN_REG_OPRATION_STATE
+	call twspi_read
+	branch mouse_p32xx_sensor_motion_1+3,blank
+	setarg 0
+	store 6,mem_mouse_x
+	rtn
+
+mouse_motion_6clk_direction_dispose:
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	branch enable_user
+mouse_motion_12clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	branch enable_user
+mouse_motion_9clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	call mouse_sensor_data_swap_places
+	branch enable_user
+mouse_motion_3clk_direction_dispose:
+	call mouse_sensor_data_swap_places
+	branch enable_user
+
+mouse_sensor_data_swap_places:
+	fetch 2, mem_mouse_y
+	fetcht 2,mem_mouse_x
+	store 2,mem_mouse_x
+	storet 2,mem_mouse_y
+	rtn
+
+	
+mouse_clear_sensor_data:
+	fetch 1,mem_mouse_move_flag
+	call mouse_read_sensor_common,blank
+	jam 1,mem_mouse_move_flag
+	rtn
+
+mouse_clear_sensor_data_by_reset:
+	jam 1,mem_mouse_clear_sensor_data_flag
+	call le_set_config_more_data
+mouse_init_sensor_reset:
+	branch mouse_init_sunt
+
+mouse_data_xy_release:
+	fetch 1,mem_sensor_motion_gpio
+	rtnne GPIO_DISABLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtnne 1
+	setarg 0
+	store 1,mem_mouse_long_mult_flag
+	store 4,mem_mouse_x
+	branch mouse_init_sensor_reset
+
+mouse_data_extsign:
+	rtnbit0 7
+	arg 0xff00,temp
+	ior temp,pdata
+	rtn
+
+mouse_data_extsign_bit3:
+	rtnbit0 3
+	arg 0xf0,temp
+	ior temp,pdata
+	rtn
+
+mouse_read_sensor_common:
+	arg PAN_REG_DELTA_X,pdata
+	call twspi_read
+	store 2,mem_mouse_x
+	arg PAN_REG_DELTA_Y,pdata
+	call twspi_read
+	store 2,mem_mouse_y
+	rtn
+
+	
+mouse_sensor_sdio_low:
+	fetcht 1,mem_mouse_sensor_sdio_gpio
+	call gpio_get_bit
+	rtn true
+	setarg 0x0a
+	call twspi_read
+	nop 1000
+	branch mouse_sensor_sdio_low
+
+mouse_set_sdio_high:		// make sdio high to make 100uA less
+	setarg 0x8100
+	branch twspi_write
+	
+
+
+
+mouse_bluetooth_fast_conn_init:
+	jam 0xff,mem_mouse_bluetooth_fast_conn_flag
+mouse_ble_fast_conn_init:	
+	jam 0x34,mem_xrecord_mode
+	setarg 0x0f0f0f
+	store 3,mem_le_lap
+	store 3,mem_le_lap+3
+	branch mouse_start_reconnect
+
+mouse_buletooth_fast_conn_end:
+	bpatch patch10_4,mem_patch10
+	call mouse_select_reconn_device
+	call mouse_bluetooth_fast_conn_disable
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_device1_check_auto_discover
+	beq MODE_BT_DEVICE2,mouse_device2_check_auto_discover
+	rtn
+mouse_device1_check_auto_discover:
+	fetch 6,mem_device1_addr
+	branch mouse_device_check_auto_discover
+mouse_device2_check_auto_discover:
+	fetch 6,mem_device2_addr
+mouse_device_check_auto_discover:	
+	fetcht 6,mem_mouse_compare_addr
+	isub temp,null
+	branch mouse_start_discovery ,zero
+	branch mouse_start_reconnect_device
+
+mouse_bluetooth_fast_conn_disable:
+	jam 0x5a,mem_mouse_bluetooth_fast_conn_flag
+	rtn	
+
+
+mouse_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	branch mouse_stop_discovery
+mouse_disconnect:
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	rtn
+	
+mouse_check_125Hz:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_125Hz
+mouse_bluetooth_125Hz:
+	nbranch mouse_bluetooth_125hz_clear,user
+	fetch 1,mem_bluetooth_125hz_cnt
+	increase 1,pdata
+	and_into 0x0f,pdata
+	store 1,mem_bluetooth_125hz_cnt
+	nrtn blank
+mouse_bluetooth_125hz_clear:
+	jam 0,mem_bluetooth_125hz_cnt
+	branch disable_user
+
+mouse_current_mult_update:
+	fetch 1,mem_sensor_motion_gpio
+	rtnne GPIO_DISABLE
+	jam 0,mem_lpm_mult
+	jam 30,mem_mouse_current_mult_timer
+	rtn
+
+
+mouse_priority_bb_event:	
+	bpatch patch10_5,mem_patch10
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,mouse_le_bb_event_connected
+	beq BT_EVT_LE_DISCONNECTED,mouse_le_bb_disconnected
+	beq BT_EVT_BUTTON_LONG_PRESSED,mouse_bb_event_discovery_btn
+	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
+	beq BT_EVT_LE_ENC_INFO,mouse_le_enc_info
+	beq BT_EVT_LE_START_ENC,mouse_le_ll_start_encryt
+	beq BT_EVT_LE_PAIRING_COMPLETE,app_ble_store_reconn_info
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,mouse_le_conn_param_update_rsp_recieved
+	beq BT_EVT_24G_PAIRING_COMPLETE,mouse_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_FAIL,mouse_24g_attempt_fail
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,mouse_24g_attempt_success
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mouse_le_parse_conn_param_accepted
+	rtn
+
+
+mouse_le_bb_event_connected:
+	call mouse_device_poweron_led_config
+	jam 0,mem_mouse_long_mult_flag
+	call mouse_init_sensor_reset
+	jam 1,mem_mouse_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_mouse_le_reconnect_flag
+	nbranch mouse_le_bb_event_connected_next,blank
+	jam 0x14,mem_mouse_send_secutiry_request_timer
+mouse_le_bb_event_connected_next:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set0 APP_DISC_BY_BUTTON ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	jam 0,mem_mouse_direct_timer
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	call mouse_no_data_timer_init
+	branch mouse_stop_discovery
+
+mouse_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	jam 0,mem_mouse_le_bb_connected_flag
+	arg LE_INTERVAL_7_5MS,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_125Hz,mouse_le_bb_disconnected_next
+	arg LE_INTERVAL_8_75MS,temp
+mouse_le_bb_disconnected_next:	
+	storet 2,mem_le_interval_min
+	storet 2,mem_le_interval_min+2
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	jam 0,mem_mouse_clear_sensor_data_flag
+	call le_clr_config_more_data
+	branch mouse_bb_disconnected
+
+mouse_le_pairing_success:
+	arg LL_PAIRING_SUCCESS_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_enc_info:
+mouse_updata_le_param:
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+mouse_le_ll_start_encryt:
+	fetch 1,mem_mouse_le_reconnect_flag
+	beq 1,mouse_le_ll_reconn_start_encryt
+	branch mouse_le_ll_enable_start_enc_flag
+mouse_le_ll_reconn_start_encryt:
+	call mouse_updata_le_param
+	jam 20,mem_le_start_encrypt_timer
+mouse_le_ll_enable_start_enc_flag:
+	arg LL_START_ENC_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_enable_connect_flag:
+	fetch 1,mem_le_connect_status_flag
+	qset1 pdata
+	store 1,mem_le_connect_status_flag
+	rtn
+
+mouse_le_conn_param_update_rsp_recieved:
+	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+	fetch 1,mem_le_tsniff
+	rshift2 pdata,pdata
+	sub pdata,LE_INTERVAL_15MS,null
+	rtn positive
+	setarg LE_INTERVAL_11_25MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	call mouse_updata_le_param
+mouse_le_conn_param_lpm_disable:
+	jam LE_LPM_DISABLE,mem_mouse_le_conn_param_reject
+	rtn
+
+mouse_le_bb_event_connect_complete:
+	fetch 1,mem_mouse_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_att_handle
+	sub pdata,34,pdata
+	nrtn zero
+	jam 0,mem_le_start_encrypt_timer
+mouse_le_write_enable:	
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_parse_conn_param_accepted:
+	fetch 1,mem_le_new_conninterval
+	sub pdata,LE_INTERVAL_15MS,null
+	nbranch mouse_le_conn_param_lpm_disable,positive
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	fetch 1,mem_le_new_connslavelatency
+	branch mouse_le_lpm_mult_reinit,blank
+	fetcht 1,mem_lpm_mult_init
+	isub temp,null
+	branch mouse_le_lpm_mult_reinit,positive
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult
+	branch mouse_le_conn_param_lpm_enable
+mouse_le_lpm_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+mouse_le_conn_param_lpm_enable:
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	rtn
+	
+mouse_le_clean_connect_flag:
+	jam 0,mem_le_connect_status_flag
+	rtn
+
+mouse_le:
+	bpatch patch10_6,mem_patch10
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse_le_next
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+mouse_le_next:	
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	call mouse_clear_sensor_data_by_reset,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_24G_PAIRING_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,mouse_le_send_empty_packet
+	call mouse_motion
+	call mouse_check_125Hz
+	nrtn user
+	call mouse_current_mult_update
+	call mouse_data_xy_release
+	call mouse_wheel_trigger
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_le_send_mouse_data
+	fetch 1,mem_customer_key
+	beq 1,mouse_le_send_keyboard_package_data		
+mouse_le_send_mouse_data:
+	branch mouse_fill_mouse_data_le
+
+
+mouse_le_send_keyboard_package_data:
+	fetch 1,mem_customer_data_trigger
+	branch mouse_le_release_keyboard_data,blank
+	fetch 8,mem_customer_key_press+1
+mouse_fill_keyboard_package_data_le:
+	store 8,mem_pdatatemp
+	fetch 1,mem_customer_key_press
+	beq KB_MULTIKEY_REPORT_ID,mouse_fill_multimedia_key_data_le
+	beq KB_SYSTEM_CONCTRL_REPORT_ID,mouse_fill_systemctrl_key_data_le
+	jam 8,mem_le_data_len
+	fetcht 2,mem_le_keyboard_handle
+mouse_fill_data_le:
+	fetch 1,mem_le_data_len
+	copy pdata,rega
+	call le_att_malloc_tx_notify
+	fetcht 1,mem_le_data_len
+	copy temp,loopcnt
+	arg mem_pdatatemp,contr
+	branch memcpy
+	
+mouse_le_release_keyboard_data:
+	fetch 8,mem_customer_key_release+1
+	branch mouse_fill_keyboard_package_data_le
+
+mouse_fill_multimedia_key_data_le:
+	jam 3,mem_le_data_len
+	fetcht 2,mem_le_multimedia_handle
+	branch mouse_fill_data_le
+
+mouse_fill_systemctrl_key_data_le:
+	jam 2,mem_le_data_len
+	fetcht 2,mem_le_systemctrl_handle
+	branch mouse_fill_data_le
+
+mouse_fill_battery_level_le:
+	arg 1,rega
+	fetcht 2,mem_le_battery_level_handle
+	call le_att_malloc_tx_notify
+	fetch 1,mem_le_battery_level_percentage
+	istore 1,contw
+	rtn
+
+mouse_le_send_empty_packet:
+	setarg 0
+	store 7,mem_mouse_key
+mouse_fill_mouse_data_le:
+	jam 7,mem_le_data_len
+	fetch 7,mem_mouse_key
+	store 7,mem_pdatatemp
+	fetcht 2,mem_le_notify_handle
+	branch mouse_fill_data_le
+
+mouse_check_51cmd_adv:
+	jam 0,mem_mouse_le_reconnect_flag
+	fetch 3,mem_le_adv_ind
+	store 3,mem_le_adv_data+4
+	call mouse_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED |ADV_FLAG_LIMITED_DISCOVERABLE
+	istore 1,contr
+	arg mem_le_adv_swift_pair,contr
+	call mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+mouse_le_check_adv_flag:
+	arg mem_le_adv_data,rega
+mouse_le_check_adv_flag_loop:
+	ifetch 1,rega	//length
+	rtn blank
+	iadd contr,rega
+	ifetch 1,contr	//type
+	rtneq 0x01
+	branch mouse_le_check_adv_flag_loop
+	
+mouse_le_adv_data_update:
+	arg mem_le_adv_data+11,contw
+	arg 19,loopcnt
+	call memcpy
+	branch le_modified_name_adv
+	
+
+
+
+
+mouse_bb_disconnected:
+	call mouse_bb_discon_clear_stack
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch mouse_start_discovery
+	
+mouse_bb_discon_clear_stack:
+	setarg 0
+	store 8,mem_wheel_tb_old_pinlevel
+	istore 4,contw             //clean wheel statue
+	jam 0,mem_mouse_move_flag
+	jam 0,mem_ltk_exists
+	rtn
+
+mouse4_0_event_bb_disconn:
+	call mouse_le_clean_connect_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch mouse_app_enter_hibernate
+
+
+
+mouse_bb_event_timer:
+	bpatch patch10_7,mem_patch10
+	//adc
+	call mouse_low_voltage_led_timer
+	call mouse_adc_read
+	//led
+	call mouse_logo_led_on_timer
+	call mouse_led_multi_timer
+	call mouse_dpi_led_blink_delay_timer
+	//24g
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	//poll
+	call mouse_dpi_key_check_long_press
+	call mouse_bt_discovery_check
+	call mouse_commbination_key_process
+	call mouse_check_discovery_timeout_timer
+	//ble
+	call mouse_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call mouse_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	//bt
+	call mouse_check_reconnect_delay_long_sleep		//delete 3.0,reconnect fail
+	call mouse_current_mult_update_timer
+	call mouse_wheel_trigger_timer
+	call mouse_store_information_delay_timer
+	branch mouse_check_no_data_timeout_timer
+
+mouse_bt_discovery_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY,mouse_bt_discovery_by_pb_button
+	rtn
+
+mouse_bt_discovery_by_pb_button:
+	fetch 1,mem_select_device_button_statue
+	rtnne PB_BUTTON_STATE_DOWN
+	arg mem_bt_discovery_count,regc
+	arg mouse_long_button_bt_discovery,regb
+	branch timer_single_step
+		
+mouse_long_button_bt_discovery:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_enable_function_flag
+	call app_evt_button_long_pressed
+	branch mouse_bb_event_discovery_btn
+		
+mouse_commbination_key_process:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_commbination_key_process
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+	fetcht 1,mem_mouse_commbination_key_bt
+	branch mouse_commbination_key_start
+
+mouse_24g_commbination_key_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetcht 1,mem_mouse_commbination_key_24g
+mouse_commbination_key_start:
+	storet 1,mem_mouse_commbination_key
+	call mouse_check_key_gpio
+	and pdata,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key
+	isub temp,null
+	branch mouse_commbination_key_down,zero
+mouse_commbination_key_up:
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init 
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_UP
+	jam COMMBINATION_KEY_STATE_UP,mem_commbination_key_statue	
+	rtn
+		
+mouse_commbination_key_down:
+	call mouse_combination_ui_timer
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_DOWN
+	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
+	rtn
+
+mouse_combination_ui_timer:
+	arg mouse_24g_start_pair_mode,regb
+	arg mem_combination_ui_button_count,regc
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,timer_single_step
+	arg mouse_long_button_bt_discovery,regb
+	call timer_single_step
+	fetch 1,mem_combination_ui_button_count
+	beq 1,mouse_bt_discovery_button_down_enable	// ble release key press
+	rtn
+
+mouse_check_discovery_timeout_timer:	
+	arg mem_mouse_discovery_timer,regc
+	arg mouse_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_discovery_timeout:
+	call mouse_stop_discovery
+	branch mouse_app_enter_hibernate
+
+mouse_check_direct_timeout_timer:	
+	arg mem_mouse_direct_timer,regc
+	arg mouse_check_direct_timeout,regb
+	call timer_single_step
+	fetch 1,mem_mouse_direct_timer
+	beq 1,app_ble_stop_direct_adv
+	rtn
+
+mouse_check_direct_timeout:
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse_buletooth_fast_conn_end
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,mouse_start_discovery
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_first_bb_event_reconn_timeout
+	branch mouse_app_enter_hibernate
+	
+mouse_le_enable_att_list_timer:
+	arg mem_le_start_encrypt_timer,regc
+	arg mouse_le_write_enable,regb
+	branch timer_single_step
+
+mouse_le_send_smp_security_request_timer:
+	fetch 1,mem_mouse_le_bb_connected_flag
+	rtn blank
+	arg mem_mouse_send_secutiry_request_timer,regc
+	arg mouse_le_pairing_sm_start_check,regb
+	branch timer_single_step
+mouse_le_pairing_sm_start_check:
+	fetch 1,mem_mouse_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_pairing_state
+	rtnne FLAG_LE_PAIRING_NULL
+	branch le_pairing_sm_start
+
+mouse_le_battery_updata_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	arg mem_le_battery_level_updata_timer,regc
+	arg mouse_le_battery_level_updata,regb
+	branch timer_single_step
+
+mouse_le_battery_level_updata:
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	branch mouse_fill_battery_level_le
+	
+mouse_le_enable_att_list:	
+	fetch 1,mem_le_connect_status_flag
+	rtnbit1 LL_PAIRING_SUCCESS_FLAG
+	call mouse_updata_le_param
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_check_reconnect_delay_long_sleep:
+	arg mem_mouse_bluetooth_reconnect_timeout,regc
+	arg mouse_app_enter_hibernate,regb
+	branch timer_single_step
+
+mouse_current_mult_update_timer:
+	arg mem_mouse_current_mult_timer,regc
+	arg mouse_current_mult_reinit,regb
+	branch timer_single_step
+mouse_current_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+	jam 1,mem_mouse_long_mult_flag
+	rtn
+
+
+mouse_check_no_data_timeout_timer:	
+	arg mem_mouse_no_data_timer,regc
+	arg mouse_check_no_data_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_hibernate_set
+	branch mouse_disconnect
+	
+mouse_no_data_timer_init:
+	fetch 2,mem_mouse_no_data_timeout
+	store 2,mem_mouse_no_data_timer
+	rtn
+
+mouse_store_information_delay_timer:
+	arg mem_store_information_delay_timer,regc
+	arg mouse_store_device_info_check,regb
+	branch timer_single_step
+
+mouse_store_device_info_check:
+	call mouse_store_device_info
+	fetch 1,mem_mouse_need_soft_reset
+	nbranch mouse_soft_reset,blank
+	rtn
+
+mouse_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call mouse_24g_stop,true
+	call mouse_disconnect
+	call mouse_le_clean_connect_flag
+	branch mouse_start_discovery
+	
+mouse_start_discovery:
+	bpatch patch11_0,mem_patch11
+	call mouse_device_discovery_led_config
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	call mouse_bluetooth_fast_conn_disable
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,mouse_start_discovery_norandom
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,mouse_start_discovery_norandom
+	fetcht 2,mem_random_addr_increase_count
+	increase 1,temp
+	storet 2,mem_random_addr_increase_count
+	storet 2,mem_le_lap+1
+	random pdata					//random ble addr
+	store 1,mem_le_lap
+mouse_start_discovery_norandom:
+	fetch 3,mem_mouse_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_mouse_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_mouse_direct_timer
+	store 1,mem_mouse_bluetooth_reconnect_timeout
+	store 1,mem_mouse_clear_sensor_data_flag
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	branch mouse_check_51cmd_adv
+
+mouse_stop_discovery:
+	bpatch patch11_1,mem_patch11
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+	jam 0,mem_mouse_bluetooth_reconnect_timeout
+	branch mouse_stop_le_adv
+mouse_stop_le_adv:
+	setarg 0
+	store 1,mem_mouse_direct_timer
+	store 2,mem_mouse_discovery_timer
+	branch check_51cmd_stop_adv
+
+mouse_store_remote_bdaddr:
+	bpatch patch11_2,mem_patch11
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call mouse_check_device_addr
+mouse_unplug_clean_bdaddr:
+	call mouse_before_store_reconn_info
+	branch mouse_store_device_info_delay
+
+mouse_check_device_addr:
+	fetch 1,mem_record_bt_mode
+	beq REC_4_MODE,mouse_check_le_device_addr
+	rtn
+mouse_check_le_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_le_plap
+mouse_check_bt_device_addr_common:
+	store 6,mem_device_addr_temp+1
+	fetch 7,mem_device_addr_temp
+	arg mem_device1_type,contr
+	arg 3,loopcnt
+mouse_check_device_addr_end:
+	ifetcht 7,contr
+	isub temp,null
+	branch mouse_clean_addr,zero
+	increase 22,contr
+	loop mouse_check_device_addr_end
+	rtn
+mouse_before_store_reconn_info:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	fetch 1,mem_record_bt_mode
+	istore 1,rega
+	beq REC_4_MODE,mouse_store_le_device
+	rtn
+	
+mouse_store_le_device:
+	fetch 6,mem_le_plap
+	istore 6,contw
+	arg mem_le_ltk,contr
+	call memcpy16
+	fetch 6,mem_le_lap
+	istore 6,contw
+	rtn
+
+mouse_clean_addr:
+	increase -6,contr
+	copy contr,contw
+	fetcht 6,mem_device_addr_temp+1
+	increase 3,temp
+	istoret 6,contw
+	rtn
+	
+mouse_select_reconn_device:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+	beq REC_4_MODE,mouse_load_le_device
+	rtn
+
+mouse_load_le_device:
+	ifetch 6,contr
+mouse_load_le_device_end:
+	store 6,mem_hci_plap
+	arg mem_le_ltk,contw
+	call memcpy16
+	ifetch 6,contr
+	store 6,mem_le_lap
+	rtn
+
+mouse_app_initflag_check:
+	bpatch patch11_3,mem_patch11
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch mouse_load_device_info,zero
+mouse_app_initflag_check_next:
+	storet 2,mem_store_flag
+	call mouse_ble_init_address
+	fetch 1,mem_device_flag_temp
+	store 1,mem_device_flag
+	fetch 4,mem_24g_fast_conn_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+mouse_load_default_dpi:
+	fetch 1,mem_config_sensor_dpi
+	store 1,mem_mouse_dpi
+	rtn
+
+mouse_load_device_info:
+	call mouse_otp_load_dpi
+//	call mouse_select_reconn_device
+	fetch 4,mem_mouse_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	rtn	
+
+mouse_otp_load_dpi:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI
+	fetch 2,mem_otp_offset_dpi
+	copy pdata,regb
+	call mouse_read_otp_dpi_common			
+	fetch 1,mem_mouse_dpi_temp
+	call mouse_load_default_dpi,blank
+	rtn
+	
+mouse_ble_init_address:
+	fetch 6,mem_le_lap
+	store 6,mem_device1_locall_addr
+	add pdata,0x0100,pdata
+	store 6,mem_device2_locall_addr
+	add pdata,0x0100,pdata
+	store 6,mem_device3_locall_addr
+	rtn
+
+
+	
+mouse_store_device_info_delay:	
+	fetch 1,mem_store_information_delay_timer_init
+	store 1,mem_store_information_delay_timer
+	rtn
+
+mouse_store_device_info:
+	bpatch patch11_4,mem_patch11
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eeprom_device_info
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_device_info
+	rtn
+
+mouse_store_dpi_info_check:
+	bpatch patch11_5,mem_patch11
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eerpom_dpi
+	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_dpi
+	rtn
+
+
+
+mouse_store_eeprom_device_info:
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+mouse_store_eerpom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+	
+
+
+mouse_store_flash_device_info:
+	call spid_init_flash
+	call mouse_spid_flash_release_form_powerdown
+	call mouse_flash_erase_sector
+
+	call mouse_information_flash_parameters
+	call mouse_spid_write_flash
+	call mouse_spid_flash_powerdown
+	branch mouse_sensor_spi_init
+
+
+
+
+mouse_store_otp_device_info:
+	call mouse_write_otp_device_flag
+	call mouse_write_otp_device_info
+	branch mouse_write_otp_le_addr_increase_count_info
+
+
+
+mouse_write_otp_device_flag:
+	fetchr regb,2,mem_otp_offset_device_flag
+	copy regb,regc
+mouse_write_otp_device_flag_loop:
+	call mouse_read_otp_device_flag_common
+	fetch 1,mem_device_flag_temp
+	branch mouse_device_flag_store,blank
+	store 1,mem_device_flag_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_device_flag_end
+	isub regc,null
+	nrtn positive
+	copy regc,regb
+	branch mouse_write_otp_device_flag_loop
+
+mouse_device_flag_store:
+	fetch 1,mem_device_flag_last
+	and pdata,0xf0,pdata
+	branch mouse_device_flag_store_check,blank
+	fetch 1,mem_device_flag
+	store 1,mem_device_flag_value
+mouse_devoce_flag_store_end:	
+	arg 1,loopcnt
+	copy regc,regb
+	arg mem_device_flag_value,rega
+	branch otp_write			
+
+mouse_device_flag_store_check:
+	fetch 1,mem_device_flag_last
+	fetcht 1,mem_device_flag
+	isub temp,null
+	rtn zero
+	lshift4 temp,temp
+	iadd temp,pdata
+	store 1,mem_device_flag_value
+	
+	copy regc,pdata
+	fetcht 2,mem_otp_offset_device_flag
+	isub temp,null
+	branch mouse_devoce_flag_store_end,zero
+	
+	increase -1,regc
+	branch mouse_devoce_flag_store_end
+
+
+
+mouse_write_otp_device_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_write_otp_24g_addr
+	beq MODE_BT_DEVICE1,mouse_write_otp_le_device1
+	beq MODE_BT_DEVICE2,mouse_write_otp_le_device2
+	rtn
+
+mouse_write_otp_24g_addr:
+	fetchr regb,2,mem_otp_offset_24g_addr
+	copy regb,regc
+mouse_otp_store_24g_addr_loop:
+	call mouse_read_otp_24g_addr_common
+	fetch 4,mem_mouse_24g_addr_temp
+	branch mouse_24g_addr_store,blank	
+	store 4,mem_mouse_24g_addr_last
+	increase 4,regc
+	fetch 2,mem_otp_offset_24g_addr_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_24g_addr_loop
+
+mouse_24g_addr_store:
+	fetch 4,mem_mouse_24g_addr_last
+	fetcht 4,mem_mouse_24g_addr
+	isub temp,null
+	rtn zero
+	arg 4,loopcnt
+	arg mem_mouse_24g_addr,rega
+	copy regc,regb
+	branch otp_write			
+
+mouse_write_otp_le_device1:
+	fetchr regb,2,mem_otp_offset_le_addr1
+	copy regb,regc
+mouse_otp_store_le_addr1_loop:
+	call mouse_read_otp_le_addr1_common
+	fetch 6,mem_mouse_le_addr1_temp
+	branch mouse_le_addr1_store,blank	
+	store 6,mem_mouse_le_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr1_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr1_loop
+
+mouse_le_addr1_store:
+	fetch 6,mem_mouse_le_addr1_last
+	fetcht 6,mem_device1_addr
+	isub temp,null
+	rtn zero
+	arg 6,loopcnt
+	arg mem_device1_addr,rega
+	copy regc,regb
+	branch otp_write			
+
+
+mouse_write_otp_le_device2:
+	fetchr regb,2,mem_otp_offset_le_addr2
+	copy regb,regc
+mouse_otp_store_le_addr2_loop:
+	call mouse_read_otp_le_addr2_common
+	fetch 6,mem_mouse_le_addr2_temp
+	branch mouse_le_addr2_store,blank	
+	store 6,mem_mouse_le_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr2_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr2_loop
+
+mouse_le_addr2_store:
+	fetch 6,mem_mouse_le_addr2_last
+	fetcht 6,mem_device2_addr
+	isub temp,null
+	rtn zero
+	arg 6,loopcnt
+	arg mem_device2_addr,rega
+	copy regc,regb
+	branch otp_write			
+
+
+
+mouse_write_otp_le_addr_increase_count_info:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetchr regb,2,mem_otp_offset_le_addr_increase_count
+	copy regb,regc
+mouse_otp_store_le_addr_increase_count_loop:
+	call mouse_read_otp_le_addr_increase_count_common
+	fetch 2,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_store,blank	
+	store 2,mem_random_addr_increase_count_last
+	increase 2,regc
+	fetch 2,mem_otp_offset_le_addr_increase_count_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr_increase_count_loop
+
+mouse_le_addr_increase_count_store:
+	fetch 2,mem_random_addr_increase_count_last
+	fetcht 2,mem_random_addr_increase_count
+	isub temp,null
+	rtn zero
+	arg 2,loopcnt
+	arg mem_random_addr_increase_count,rega
+	copy regc,regb
+	branch otp_write			
+
+
+
+mouse_store_otp_dpi:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI
+	fetchr regb,2,mem_otp_offset_dpi
+	copy regb,regc
+mouse_otp_store_dpi_loop:
+	call mouse_read_otp_dpi_common
+	fetch 1,mem_mouse_dpi_temp
+	branch mouse_otp_dpi_store,blank
+	store 1,mem_mouse_dpi_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_dpi_end
+	isub regc,null
+	nrtn positive
+	copy regc,regb
+	branch mouse_otp_store_dpi_loop
+
+mouse_otp_dpi_store:
+	fetch 1,mem_mouse_dpi_last
+	and pdata,0xf0,pdata
+	branch mouse_dpi_store_last,blank
+	fetch 1,mem_mouse_dpi
+	store 1,mem_mouse_otp_dpi_value
+mouse_dpi_store_end:	
+	arg 1,loopcnt
+	copy regc,regb
+	arg mem_mouse_otp_dpi_value,rega
+	branch otp_write			
+
+mouse_dpi_store_last:
+	fetch 1,mem_mouse_dpi_last
+	fetcht 1,mem_mouse_dpi
+	isub temp,null
+	rtn zero
+	lshift4 temp,temp
+	iadd temp,pdata
+	store 1,mem_mouse_otp_dpi_value
+	
+	copy regc,pdata
+	fetcht 2,mem_otp_offset_dpi
+	isub temp,null
+	branch mouse_dpi_store_end,zero
+	
+	increase -1,regc
+	branch mouse_dpi_store_end
+	
+
+	
+
+
+
+
+
+mouse_load_eeprom_info_check:
+	call iicd_read_init_pin
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
+	ncall clear_eeprom_size_2k,true
+	call mouse_eeprom_load_recon_info
+	branch mouse_app_initflag_check
+
+mouse_eeprom_load_recon_info:
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_read_eep_data
+
+mouse_load_eeprom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_read_eep_data
+
+
+
+mouse_load_flash_info_check:
+	call spid_init_flash
+	call mouse_spid_flash_release_form_powerdown
+	call mouse_information_flash_parameters
+	call spid_read_flash
+	call mouse_spid_flash_powerdown
+	call mouse_app_initflag_check
+	branch mouse_sensor_spi_init
+	
+mouse_information_flash_parameters:
+	setarg mem_mouse_information_end
+	arg mem_mouse_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	arg mem_mouse_information_start,rega
+	rtn
+	
+mouse_spid_flash_release_form_powerdown:
+	jam FLASH_COMMAND_RELEASE_FROM_POWERDOWN,mem_temp
+mouse_spid_write_flash_cmd:
+	call delay_nop100
+	call spid_unlock_flash
+	arg mem_write_flash_head_temp,rega
+	fetcht 1,mem_temp
+	call mouse_spid_write_flash_cmd_common
+	branch delay_nop100
+
+mouse_spid_flash_powerdown:
+	jam FLASH_COMMAND_POWERDOWN,mem_temp
+	branch mouse_spid_write_flash_cmd
+
+mouse_spid_write_flash_cmd_common:
+	istoret 1,rega
+	rshift16 pdata,temp
+	istoret 1,contw
+	rshift8 pdata,temp
+	istoret 1,contw
+	istore 1,contw
+	deposit rega
+	store 2,core_spid_txaddr
+	setarg 0
+	store 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+		
+mouse_flash_erase_sector:
+	fetch 3,mem_flash_base
+	store 3,mem_spi_write_addr
+	branch spid_flash_erase_sector+2
+
+mouse_spid_write_flash:
+	copy pdata,regc
+	copy rega,pdata
+	increase -4,pdata
+	copy pdata,regb
+	ifetch 4,regb
+	store 4,mem_write_flash_head_temp
+	copy regc,pdata
+	call spid_write_flash
+	fetch 4,mem_write_flash_head_temp
+	istore 4,regb
+	rtn
+
+mouse_flash_power_down:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_FLASH
+	call mouse_spid_flash_powerdown
+	call twspi_enable	// 2 wire mode
+	fetcht 1,mem_spi_cs_gpio		//disable flash
+	call gpio_out_inactive
+	fetcht 1,mem_spi_hold_gpio
+	branch mouse_gpio_config_input_pd
+
+
+
+mouse_load_otp_info_check:
+	call mouse_read_otp_dpi
+	call mouse_read_otp_device_flag
+	call mouse_read_otp_device_info
+	call mouse_read_otp_le_addr_increase_count_info
+mouse_otp_load_app_initflag:
+	arg 2,loopcnt
+	fetch 2,mem_otp_offset_app_initflag
+	copy pdata,regb
+	arg mem_store_flag,rega
+	call otp_read_data				
+	call mouse_app_initflag_check
+mouse_otp_store_app_initflag:
+	arg 2,loopcnt
+	arg mem_store_flag,rega
+	fetchr regb,2,mem_otp_offset_app_initflag
+	branch otp_write
+
+
+
+mouse_read_otp_device_flag:
+	fetchr regb,2,mem_otp_offset_device_flag
+	copy regb,regc
+mouse_read_otp_device_flag_loop:
+	call mouse_read_otp_device_flag_common
+	fetch 1,mem_device_flag_temp
+	branch mouse_device_flag_load,blank	
+	store 1,mem_device_flag_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_device_flag_end
+	isub regc,null
+	nbranch mouse_device_flag_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_device_flag_loop
+
+mouse_read_otp_device_flag_common:
+	arg 1,loopcnt
+	arg mem_device_flag_temp,rega
+	branch otp_read_data				
+
+mouse_device_flag_load:
+	fetch 1,mem_device_flag_last
+	copy pdata,temp
+	and pdata,0xf0,pdata
+	branch mouse_device_flag_load_last,blank
+	rshift4 pdata,pdata
+	branch mouse_device_flag_load_end
+
+mouse_device_flag_load_last:
+	copy temp,pdata
+mouse_device_flag_load_end:
+	store 1,mem_device_flag
+	rtn
+
+
+mouse_read_otp_device_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_read_otp_24g_addr
+	beq MODE_BT_DEVICE1,mouse_read_otp_le_device1
+	beq MODE_BT_DEVICE2,mouse_read_otp_le_device2
+	rtn
+	
+mouse_read_otp_le_device1:
+	call mouse_read_otp_le_device1_addr
+	branch mouse_read_otp_le_device1_locall_addr
+
+mouse_read_otp_le_device2:
+	call mouse_read_otp_le_device2_addr
+	branch mouse_read_otp_le_device2_locall_addr
+
+
+mouse_read_otp_le_device1_addr:
+	fetchr regb,2,mem_otp_offset_le_addr1
+	copy regb,regc
+mouse_read_otp_le_device1_addr_loop:
+	call mouse_read_otp_le_addr1_common	
+	fetch 6,mem_mouse_le_addr1_temp
+	branch mouse_le_addr1_load,blank	
+	store 6,mem_mouse_le_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr1_end
+	isub regc,null
+	nbranch mouse_le_addr1_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device1_addr_loop
+
+mouse_read_otp_le_addr1_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_addr1_temp,rega
+	branch otp_read_data					
+
+mouse_le_addr1_load:
+	fetch 6,mem_mouse_le_addr1_last
+	store 6,mem_device1_addr
+	rtn
+
+
+mouse_read_otp_le_device1_locall_addr:
+	fetchr regb,2,mem_otp_offset_le_locall_addr1
+	copy regb,regc
+mouse_read_otp_le_device1_locall_addr_loop:
+	call mouse_read_otp_le_locall_addr1_common	
+	fetch 6,mem_mouse_le_locall_addr1_temp
+	branch mouse_le_locall_addr1_load,blank	
+	store 6,mem_mouse_le_locall_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_locall_addr1_end
+	isub regc,null
+	nbranch mouse_le_locall_addr1_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device1_locall_addr_loop
+
+mouse_read_otp_le_locall_addr1_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_locall_addr1_temp,rega
+	branch otp_read_data					
+
+mouse_le_locall_addr1_load:
+	fetch 6,mem_mouse_le_locall_addr1_last
+	store 6,mem_device1_locall_addr
+	rtn
+
+
+
+mouse_read_otp_le_device2_addr:
+	fetchr regb,2,mem_otp_offset_le_addr2
+	copy regb,regc
+mouse_read_otp_le_device2_addr_loop:
+	call mouse_read_otp_le_addr2_common	
+	fetch 6,mem_mouse_le_addr2_temp
+	branch mouse_le_addr2_load,blank	
+	store 6,mem_mouse_le_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr2_end
+	isub regc,null
+	nbranch mouse_le_addr2_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device2_addr_loop
+
+mouse_read_otp_le_addr2_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_addr2_temp,rega
+	branch otp_read_data					
+
+mouse_le_addr2_load:
+	fetch 6,mem_mouse_le_addr2_last
+	store 6,mem_device2_addr
+	rtn
+
+
+mouse_read_otp_le_device2_locall_addr:
+	fetchr regb,2,mem_otp_offset_le_locall_addr2
+	copy regb,regc
+mouse_read_otp_le_device2_locall_addr_loop:
+	call mouse_read_otp_le_locall_addr2_common	
+	fetch 6,mem_mouse_le_locall_addr2_temp
+	branch mouse_le_locall_addr2_load,blank	
+	store 6,mem_mouse_le_locall_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_locall_addr2_end
+	isub regc,null
+	nbranch mouse_le_locall_addr2_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device2_locall_addr_loop
+
+mouse_read_otp_le_locall_addr2_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_locall_addr2_temp,rega
+	branch otp_read_data					
+
+mouse_le_locall_addr2_load:
+	fetch 6,mem_mouse_le_locall_addr2_last
+	store 6,mem_device2_locall_addr
+	rtn
+
+
+
+mouse_read_otp_24g_addr:
+	fetchr regb,2,mem_otp_offset_24g_addr
+	copy regb,regc
+mouse_read_otp_24g_addr_loop:
+	call mouse_read_otp_24g_addr_common
+	fetch 4,mem_mouse_24g_addr_temp
+	branch mouse_24g_addr_load,blank	
+	store 4,mem_mouse_24g_addr_last
+	increase 4,regc
+	fetch 2,mem_otp_offset_24g_addr_end
+	isub regc,null
+	nbranch mouse_24g_addr_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_24g_addr_loop
+
+mouse_read_otp_24g_addr_common:
+	arg 4,loopcnt
+	arg mem_mouse_24g_addr_temp,rega
+	branch otp_read_data				
+	
+mouse_24g_addr_load:
+	fetch 4,mem_mouse_24g_addr_last
+	store 4,mem_mouse_24g_addr
+	rtn
+
+
+mouse_read_otp_le_addr_increase_count_info:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetchr regb,2,mem_otp_offset_le_addr_increase_count
+	copy regb,regc
+mouse_read_otp_le_addr_increase_count_loop:
+	call mouse_read_otp_le_addr_increase_count_common
+	fetch 2,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_load,blank	
+	store 2,mem_random_addr_increase_count_last
+	increase 2,regc
+	fetch 2,mem_otp_offset_le_addr_increase_count_end
+	isub regc,null
+	nbranch mouse_le_addr_increase_count_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_addr_increase_count_loop
+
+mouse_read_otp_le_addr_increase_count_common:
+	arg 2,loopcnt
+	arg mem_random_addr_increase_count_temp,rega
+	branch otp_read_data				
+	
+mouse_le_addr_increase_count_load:
+	fetch 2,mem_random_addr_increase_count_temp
+	store 2,mem_random_addr_increase_count
+	rtn
+
+
+mouse_read_otp_dpi:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI,mouse_load_default_dpi
+	fetchr regb,2,mem_otp_offset_dpi
+	copy regb,regc
+mouse_read_otp_dpi_loop:
+	call mouse_read_otp_dpi_common	
+	fetch 1,mem_mouse_dpi_temp
+	branch mouse_dpi_load,blank	
+	store 1,mem_mouse_dpi_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_dpi_end
+	isub regc,null
+	nbranch mouse_dpi_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_dpi_loop
+
+mouse_read_otp_dpi_common:
+	arg 1,loopcnt
+	arg mem_mouse_dpi_temp,rega
+	branch otp_read_data				
+
+mouse_dpi_load:
+	fetch 1,mem_mouse_dpi_last
+	copy pdata,temp
+	and pdata,0xf0,pdata
+	branch mouse_dpi_load_last,blank
+	rshift4 pdata,pdata
+	branch mouse_dpi_load_end
+
+mouse_dpi_load_last:
+	copy temp,pdata
+mouse_dpi_load_end:
+	store 1,mem_mouse_dpi
+	rtn
+
+
+
+
+mouse_idle:
+	bpatch patch11_6,mem_patch11
+	call mouse_low_voltage_led_no_enter_lpm
+	call ui_check_paring_button
+	call mouse_dpi_check
+	call mouse_dpi_another_gpio_check
+	call mouse_select_device_check
+	call mouse_check_select_device_by_switch
+	call mouse_bt_button_check
+	branch mouse_wheel_check
+	
+mouse_select_device_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON,mouse_select_device_by_pb_button
+	bbit1 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY,mouse_select_device_by_pb_button
+	rtn
+
+mouse_select_device_by_pb_button_check_once:
+	jam 0x03,mem_mouse_pbkey_press_status
+mouse_select_device_by_pb_button:	
+	call mouse_select_device_by_pb_button_check
+	branch mouse_select_device_by_pb_button_exit
+	
+mouse_select_device_by_pb_button_check:
+	bpatch patch11_7,mem_patch11
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_PB_KEY,mem_mouse_key_temp
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_pb_button_check
+	store 1,mem_mouse_pbkey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_pb_button_check_end	
+	branch mouse_matrix_public_gpio_reset
+
+mouse_retransmit_select_device_by_pb_button:
+	call mouse_select_device_by_pb_button_check
+	copy rega,pdata
+	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down+2
+	branch mouse_select_device_button_up
+	
+mouse_3io6key_pb_button_check_end:
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_gpio_config_input_pu
+mouse_select_device_by_pb_button_exit:	
+	copy rega,pdata
+	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down
+	branch mouse_select_device_button_up
+
+mouse_pb_button_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND,mouse_pb_button_connect_gnd
+	fetch 1,mem_mouse_pbkey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_check
+	fetch 1,mem_mouse_ghost_flag
+	nbranch mouse_select_device_by_pb_button_end,blank
+	branch mouse_pb_button_connect_matrix
+
+mouse_select_device_by_pb_button_end:
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue
+	jam 0,mem_mouse_pbkey_press_status
+	rtn
+
+mouse_pb_button_connect_gnd:
+	fetch 1,mem_mouse_pbkey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_pb_button_connect_matrix:
+	call gpio_get_bit
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_pb_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_config_select_device_button_gpio
+	fetch 1,mem_mouse_pbkey_press_status
+	branch mouse_check_key_connect_gnd
+	
+mouse_select_device_button_up:
+	fetch 1,mem_select_device_button_statue
+	rtneq PB_BUTTON_STATE_UP
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+	fetch 1,mem_bt_discovery_count
+	sub pdata,20,null
+	ncall mouse_ready_reconnection_by_button,positive		// press button less than 30-20=1000ms
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_bt_discovery_count
+	rtn
+
+mouse_select_device_button_down:
+	call mouse_select_device_ghost_check
+	rtn user
+	fetch 1,mem_select_device_button_statue
+	rtneq PB_BUTTON_STATE_DOWN
+	jam PB_BUTTON_STATE_DOWN,mem_select_device_button_statue
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY,mouse_long_button_bt_discovery
+	fetch 1,mem_mouse_direct_timer
+	rtn blank
+	fetch 1,mem_mouse_direct_timeout
+	store 1,mem_mouse_direct_timer
+	rtn
+
+mouse_select_device_ghost_check:
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+mouse_ghost_key_value_check:
+	fetch 1,mem_mouse_lkey_press_status
+	rtn blank
+	fetch 1,mem_mouse_rkey_press_status
+	rtn blank
+	branch enable_user
+	
+mouse_check_select_device_by_switch:
+	bpatch patch12_0,mem_patch12
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	fetcht 1,mem_device_switch_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_check_select_24g_device,true
+mouse_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_stop_bluetooth_mode
+	
+mouse_check_select_24g_device:	
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	branch mouse_24g_stop
+
+mouse_ready_reconnection_by_button:
+	bpatch patch12_1,mem_patch12
+	fetch 1,mem_device_number
+	rtneq 1		// 1channel
+	call mouse_select_device_number
+	storet 1,mem_device_flag
+mouse_store_device_number_before_reset:	
+//	jam 0,mem_link_key_exists
+	call mouse_select_device_enable
+	call mouse_stop_bluetooth_mode
+	call app_evt_button_long_pressed
+	call mouse_select_device_disable
+	jam 1,mem_mouse_need_soft_reset
+	branch mouse_store_device_info_delay
+
+mouse_soft_reset:
+	call mouse_select_device_enable
+	branch soft_reset_chip
+
+mouse_select_device_number:
+	fetcht 1,mem_device_flag
+	increase 1,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G,mouse_select_device_number_24g
+	sub temp,2,null
+	ncall mouse_select_device_count_clean_bt,positive
+	rtn
+	
+mouse_select_device_number_24g:	
+	fetch 1,mem_device_number
+	increase -1,pdata
+	isub temp,null
+	ncall mouse_select_device_count_clean_24g,positive
+	rtn
+
+mouse_select_device_count_clean_24g:
+	arg 0,temp
+	rtn
+mouse_select_device_count_clean_bt:
+	arg 1,temp
+	rtn
+
+mouse_store_device_number2eeprom:
+	arg 1,temp
+	arg mem_device_flag,rega
+	arg 0,regb
+	branch iicd_write_protect_eep_data
+		
+mouse_bt_button_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+	branch mouse_select_device_by_pb_button
+	
+mouse_select_device_enable:
+	arg MOUSE_SELECT_DEVICE_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_select_device_disable:
+	arg MOUSE_SELECT_DEVICE_FLAG,queue
+	branch mouse_disable_function_flag
+mouse_bt_cannel_reconn_enable:
+	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_bt_cannel_reconn_disable:
+	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
+	branch mouse_disable_function_flag
+mouse_bt_discovery_button_down_enable:
+	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_bt_discovery_button_down_disable:
+	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch mouse_disable_function_flag
+
+mouse_adc_read_enable:
+	arg MOUSE_ENABLE_ADC,queue
+	branch mouse_enable_function_flag
+
+mouse_24g_set_250Hz:
+	arg MOUSE_ENABLE_24G_250Hz,queue
+	branch mouse_enable_function_flag
+
+mouse_24g_search_dongle_enable:
+	arg MOUSE_ENABLE_24G_SEARCH_DONGLE,queue
+	branch mouse_enable_function_flag
+	
+mouse_16M_enable:
+	arg MOUSE_ENABLE_16M,queue
+	branch mouse_enable_function_flag
+	
+mouse_dpi_4level_enable:
+	arg MOUSE_ENABLE_DPI_LEVEL_4,queue
+	branch mouse_enable_function_flag
+
+mouse_enable_function_flag:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	qset1 pdata
+	store MOUSE_FLAG_LEN,mem_mouse_flag
+	rtn
+
+mouse_disable_function_flag:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	qset0 pdata
+	store MOUSE_FLAG_LEN,mem_mouse_flag
+	rtn
+
+mouse_customer_key_enable:
+	setarg 0
+	store 8,mem_customer_key_press
+	store 8,mem_customer_key_release
+	fetch 1,mem_mouse_customer_function	// 01--win+d     02--ctrl+alt+a    03--AC home    04--play
+	beq 2,mouse_customer_key_ctrl_alt_a
+	beq 3,mouse_customer_AC_home
+	beq 4,mouse_customer_key_play
+	setarg 0x070008
+mouse_customer_standrad_key_set:	
+	store 8,mem_customer_key_press+1		// win + d
+	rtn
+
+mouse_customer_key_ctrl_alt_a:
+	setarg 0x040005
+	branch mouse_customer_standrad_key_set
+
+mouse_customer_AC_home:
+	setarg 0x022303
+mouse_customer_media_key_set:	
+	store 8,mem_customer_key_press
+	setarg 0x03
+	store 8,mem_customer_key_release
+	rtn
+	
+mouse_customer_key_play:
+	setarg 0x00cd03
+	branch mouse_customer_media_key_set
+
+	
+mouse_polling_device:
+	bpatch patch12_2,mem_patch12
+	fetch 1,mem_reconn_times
+	increase -1,pdata
+	store 1,mem_reconn_times
+	fetcht 1,mem_device_flag
+	sub temp,1,null
+	ncall mouse_select_device_number,zero
+	storet 1,mem_device_flag
+	call mouse_store_device_number2eeprom
+	call mouse_before_store_reconn_info
+	branch mouse_start_reconnect_device
+
+	
+//notice: need to call p_mouse_drawing_optima_init when waked from mult
+mouse_drawing_optima:
+	bpatch patch12_3,mem_patch12
+	fetch 1,mem_config_sensor_type
+	rtneq P3212
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SMOOTHER
+	fetch 4,mem_mouse_x
+	rtn blank
+	call mouse_data_abs_check
+	setarg 0x03	//asm_flag enable condition
+	call mouse_pdata_greater_than_check
+	call mouse_disable_asm,blank
+	ncall mouse_enable_asm,blank
+	setarg 0x02	//asm_flag disable condition
+	call mouse_data_less_than_check
+	call mouse_disable_asm,blank
+	fetch 1,mem_mouse_asm_flag
+	beq 1,mouse_drawing_optima_modify
+mouse_drawing_optima_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SMOOTHER
+	arg 5,loopcnt
+	arg mem_mouse_asm_flag,contw
+	branch clear_mem
+
+mouse_drawing_optima_modify:
+	call mouse_drawing_optima_xy_offset_modify
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_pre
+	fetch 2,mem_mouse_x
+	store 2,mem_data_current
+	call mouse_drawing_optima_data_x
+	fetch 2,mem_data_pre
+	store 2,mem_mouse_x_pre
+	fetch 2,mem_data_current
+	store 2,mem_mouse_x
+
+	fetch 2,mem_mouse_y_pre
+	store 2,mem_data_pre
+	fetch 2,mem_mouse_y
+	store 2,mem_data_current
+	call mouse_drawing_optima_data_y
+	fetch 2,mem_data_pre
+	store 2,mem_mouse_y_pre
+	fetch 2,mem_data_current
+	store 2,mem_mouse_y
+	rtn
+
+mouse_drawing_optima_xy_offset_modify:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_XY_OFFSET
+	bpatch patch12_4,mem_patch12
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_value
+	call mouse_pre_xy_data_judge
+	store 2,mem_mouse_x_pre
+	fetch 2,mem_mouse_x
+	store 2,mem_data_value
+	call mouse_current_xy_data_judge
+	store 2,mem_mouse_x
+	fetch 2,mem_mouse_y_pre
+	store 2,mem_data_value
+	call mouse_pre_xy_data_judge
+	store 2,mem_mouse_y_pre
+	fetch 2,mem_mouse_y
+	store 2,mem_data_value
+	call mouse_current_xy_data_judge
+	store 2,mem_mouse_y
+	rtn
+
+mouse_pre_xy_data_judge:	
+	fetch 1,mem_data_value+1
+	branch mouse_pre_xy_pdata_offset,blank
+	branch mouse_pre_xy_ndata_offset
+
+mouse_pre_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call mouse_pre_xy_get_0_4_times
+	store 1,mem_data_value
+mouse_xy_data_offset_new:
+	fetch 2,mem_data_value
+	rtn
+mouse_pre_xy_ndata_offset:
+	fetch 1,mem_data_value
+	call mouse_pdata_invert
+	call mouse_pre_xy_get_0_4_times
+	call disable_blank,blank
+	call mouse_pdata_get_new_value
+	branch mouse_xy_data_offset_new
+	
+mouse_current_xy_data_judge:
+	fetch 1,mem_data_value+1
+	branch mouse_current_xy_pdata_offset,blank
+	branch mouse_current_xy_ndata_offset
+mouse_current_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call mouse_current_xy_get_0_6_times
+	store 1,mem_data_value
+	branch mouse_xy_data_offset_new
+mouse_current_xy_ndata_offset:	
+	fetch 1,mem_data_value
+	call mouse_pdata_invert
+	call mouse_current_xy_get_0_6_times
+	call disable_blank,blank
+	call mouse_pdata_get_new_value
+	branch mouse_xy_data_offset_new
+	
+mouse_pre_xy_get_0_4_times:
+	mul32 pdata,4,pdata
+	div pdata,5
+	call wait_div_end
+	quotient pdata
+	rtn
+mouse_current_xy_get_0_6_times:	//0.6 times
+	mul32 pdata,12,pdata
+	div pdata,10
+	call wait_div_end
+	quotient pdata
+	rtn	
+	
+mouse_drawing_optima_data_x:
+	fetch 2,mem_data_pre
+	fetcht 2,mem_data_current
+	iadd temp,pdata
+	fetcht 1,mem_mouse_data_xtemp
+	iadd temp,pdata
+	and pdata,0x01,temp
+	storet 1,mem_mouse_data_xtemp
+	branch mouse_drawing_optima_data
+
+mouse_drawing_optima_data_y:
+	fetch 2,mem_data_pre
+	fetcht 2,mem_data_current
+	iadd temp,pdata
+	fetcht 1,mem_mouse_data_ytemp
+	iadd temp,pdata
+	and pdata,0x01,temp
+	storet 1,mem_mouse_data_ytemp
+	branch mouse_drawing_optima_data
+
+mouse_drawing_optima_data:
+	store 3,mem_data_sum
+	isolate1 16,pdata
+	branch mouse_data_sum_overflow,true
+	fetch 1,mem_data_sum+1
+	beq 0xff,mouse_data_sum_n
+	fetch 1,mem_data_sum
+mouse_data_store_pre:
+	rshift pdata,pdata
+	store 2,mem_data_pre
+	store 2,mem_data_current
+	rtn
+mouse_data_sum_overflow:
+	fetch 1,mem_data_sum+1	//sum positive
+	beq 0,mouse_data_sum_overflow_p
+	fetch 3,mem_data_sum	
+	branch mouse_data_store_pre
+mouse_data_sum_overflow_p:
+	jam 0,mem_data_sum+2
+	fetch 1,mem_data_sum
+	branch mouse_data_store_pre
+
+mouse_data_sum_n:
+	fetch 1,mem_data_sum	//sum negetive
+	call mouse_pdata_get_half
+	store 1,mem_data_pre
+	store 1,mem_data_current
+	branch mouse_data_zero,blank
+	setarg 0xff
+mouse_data_set_direction:	
+	store 1,mem_data_pre+1
+	store 1,mem_data_current+1
+	rtn
+mouse_data_zero:
+	setarg 0
+	branch mouse_data_set_direction
+
+mouse_pdata_get_half:
+	call mouse_pdata_invert
+	rshift pdata,pdata
+mouse_pdata_get_new_value:	
+	call mouse_rega_in_out
+	sub pdata,0,pdata
+	store 1,mem_data_value	
+	rtn
+
+mouse_pdata_invert:
+	sub pdata,0,pdata
+mouse_rega_in_out:	
+	store 1,mem_rega
+	fetch 1,mem_rega
+	rtn
+
+mouse_disable_asm:
+	jam 0,mem_mouse_asm_flag
+	rtn
+mouse_enable_asm:
+	jam 1,mem_mouse_asm_flag
+	rtn
+
+//rega mouse_x, regb mouse_y, pdata refer
+mouse_pdata_greater_than_check:
+	isub rega,null
+	nbranch disable_blank,positive
+	isub regb,null
+	nbranch disable_blank,positive
+	branch enable_blank
+mouse_data_less_than_check:
+	isub rega,null
+	nrtn positive
+	isub regb,null
+	nrtn positive
+	branch enable_blank
+
+mouse_data_abs_check:
+	fetch 2,mem_mouse_x
+	call mouse_data_abs
+	copy pdata,rega
+	fetch 2,mem_mouse_y
+	call mouse_data_abs
+	copy pdata,regb
+	rtn
+
+mouse_data_abs:
+	store 2,mem_data_current
+	fetch 1,mem_data_current+1
+	beq 0xff,mouse_data_reversal
+	fetch 1,mem_data_current
+mouse_data_abs_store:
+	and_into 0xff,pdata
+	//output:pdata
+	rtn
+mouse_data_reversal:
+	fetch 2,mem_data_current
+	sub pdata,0,pdata
+	branch mouse_data_abs_store
+
+mouse_24g_long_sleep_param_update_timer:
+	arg mem_24g_long_sleep_param_update_timer,regc
+	arg mouse_24g_long_sleep_normal_param,regb
+	branch timer_single_step
+mouse_24g_long_sleep_normal_param:
+	fetch 4,mem_24g_long_sleep_set1
+	store 4,mem_24g_enter_hibernate
+	jam 1,mem_mouse_long_mult_flag
+	rtn
+
+
+mouse_24g_long_sleep_set:
+	fetch 1,mem_24g_long_sleep_set_level
+	beq 0x00,mouse_24g_long_sleep_set_30ms
+	beq 0x01,mouse_24g_long_sleep_set_50ms
+	beq 0x02,mouse_24g_long_sleep_set_80ms
+	beq 0x03,mouse_24g_long_sleep_set_100ms
+mouse_24g_long_sleep_set_80ms:
+	setarg 0x0ea600
+mouse_24g_long_sleep_set_end:	
+	store 4,mem_24g_long_sleep_set1
+	rtn
+mouse_24g_long_sleep_set_30ms:
+	setarg 0x05e740
+	branch mouse_24g_long_sleep_set_end
+mouse_24g_long_sleep_set_50ms:
+	setarg 0x0927c0
+	branch mouse_24g_long_sleep_set_end
+mouse_24g_long_sleep_set_100ms:
+	setarg 0x124f80
+	branch mouse_24g_long_sleep_set_end
+
+mouse_24g_hibernate_set:
+	bpatch patch12_5,mem_patch12
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 4,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	jam 1,mem_sensor_shutdown_flag
+	call mouse_sensor_powerdown
+	call mouse_setgpio_hibernate
+	branch mouse_24g_long_sleep
+
+mouse_wakeup_24g:
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_wakeup_24g_from_long_sleep,blank
+	jam 0,mem_sensor_shutdown_flag
+	rtn
+
+mouse_wakeup_24g_from_long_sleep:
+	call mouse_init_sensor_wakeup
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+mouse_wheel_gpio_init:
+	fetch 1,mem_whee_a_data_gpio
+	arg gpcfg_pullup,temp
+ 	call gpio_config_function_int
+	fetch 1,mem_whee_b_data_gpio
+	arg gpcfg_pullup,temp
+ 	branch gpio_config_function_int	
+
+mouse_24g_transmit_start:
+	call mouse_24g_fast_conn_mode_check
+	fetch 1,mem_sensor_shutdown_flag
+	nbranch mouse_24g_short_sleep,blank
+	branch g24_transmit_start_next
+
+mouse_24g_fast_conn_mode_check:
+	fetch 4,mem_24g_receiver_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch mouse_soft_agc_enable,zero
+	branch mouse_soft_agc_disable
+
+mouse_soft_agc_enable:
+	jam 0,mem_gain_fix
+	jam TX_POWER_FACTORY,mem_tx_power
+	rtn
+mouse_soft_agc_disable:
+	jam 0xff,mem_gain_fix
+	rtn
+
+mouse_24g_stop:
+	set0 mark_24g,mark
+	jam STATE_24G_STOP,mem_24g_conn_sm
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	branch mouse_disable_function_flag
+
+mouse_24g_start_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G,mouse_24g_mode_setup_error
+	call mouse_device_24g_pair_led_config
+	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
+	branch mouse_24g_reconn_dongle_start,user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_reconn_general_dongle
+	bbit0 MOUSE_ENABLE_24G_POWER_ON_PAIRING,mouse_24g_reconn_general_dongle
+	call mouse_key_check_once
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_24g
+	isub temp,null
+	branch mouse_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_general_dongle
+
+mouse_24g_mode_setup_error:
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	rtn
+
+mouse_24g_first_start_auto_pair_mode:
+	call mouse_wakeup_from_power_check
+	branch mouse_24g_first_start_reconn,user  	// wake from hibernate :enble user
+mouse_24g_reconn_general_dongle:	
+	jam MODE_24G_DEVICE,mem_device_flag
+	fetch 2,mem_mouse_24g_power_on_fast_conn_timer
+	store 2,mem_24g_reconn_timeout
+	jam FAST_CONN_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_start_auto_pair:
+	fetch 2,mem_24g_pair_timeout_init
+	store 2,mem_24g_reconn_timeout
+	jam PAIR_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_first_start_reconn:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_reconn_dongle_start
+	call mouse_bluetooth_fast_conn_disable
+mouse_24g_first_bluetooth_reconnect:
+	call mouse_24g_stop
+	jam MODE_BT_DEVICE1,mem_device_flag
+	call mouse_select_reconn_device
+	branch mouse_start_reconnect_device
+
+mouse_24g_first_bb_event_reconn_timeout:
+	call mouse_wakeup_from_power_check
+	branch mouse_app_enter_hibernate,user
+	branch mouse_start_discovery
+
+mouse_24g_first_store_reconn_info:
+	call mouse_wakeup_from_power_check
+	rtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_store_device_info_delay
+	rtn
+
+mouse_24g_start_pair_mode:
+	call mouse_device_24g_pair_led_config
+	jam 0,mem_24g_reconn_type
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 2,mem_24g_reconn_timeout	
+	call mouse_stop_discovery
+	jam TYPE_MS,mem_24g_data_type
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,g24_pair_start
+	jam TYPE_KB,mem_24g_data_type
+	branch g24_pair_start
+
+mouse_24g_attempt_fail:
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch mouse_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,mouse_24g_fast_conn_attempt_fail
+	beq PAIR_AND_3_0_ADDR,mouse_24g_auto_pair_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,mouse_reconn_dongle_attempt_fail
+mouse_24g_attempt_fail_enter_hibernate:
+	call mouse_24g_stop
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_app_enter_hibernate
+	rtn
+
+mouse_24g_fast_conn_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_start_auto_pair
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_mouse_24g_addr		// auto pair first time
+	fetcht 4,mem_mouse_compare_addr
+	isub temp,null
+	branch mouse_24g_start_pair_mode,zero
+mouse_24g_reconn_dongle_start:
+	fetch 2,mem_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout
+	jam RECEIVER_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_auto_pair_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
+	fetch 1,mem_device_number
+	beq 1,mouse_24g_attempt_fail_enter_hibernate		//24g first mode and only 2.4g device
+	branch mouse_24g_first_bluetooth_reconnect
+
+mouse_reconn_dongle_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_FLASH,mouse_24g_attempt_fail_enter_hibernate
+	branch mouse_24g_start_auto_pair+1
+	
+mouse_24g_attempt_success:
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_mouse_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	call mouse_no_data_timer_init
+	call mouse_device_poweron_led_config
+	call mouse_init_sensor_reset
+	jam 0,mem_mouse_long_mult_flag
+	jam 0,mem_24g_conn_sm
+	jam 0,mem_24g_reconn_type
+	fetch 4,mem_24g_receiver_addr
+	fetch 4,mem_24g_fast_conn_addr
+	isub temp,null
+	rtn zero
+	branch mouse_24g_first_store_reconn_info
+	
+mouse_24g_pairing_complete:
+	call mouse_init_sensor_reset
+	call mouse_read_sensor_common
+mouse_24g_pairing_complete_common:
+	call mouse_device_poweron_led_config
+	call mouse_no_data_timer_init
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_disable_function_flag
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_conn_sm
+	store 1,mem_mouse_move_flag
+	store 1,mem_24g_reconn_type
+
+
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_mouse_24g_addr
+	branch mouse_store_device_info_delay
+
+mouse_24g_short_sleep_clear_wake:
+	call clear_wake
+	branch lpm_write_gpio_wakeup
+
+mouse_24g_package_data:
+	bpatch patch12_6,mem_patch12
+	rtnmark0 mark_24g
+	call mouse_motion
+	nrtn user
+	fetch 1,mem_mouse_24g_long_sleep_flag
+	jam 0,mem_mouse_24g_long_sleep_flag
+	ncall mouse_24g_short_sleep_clear_wake,blank	
+	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_24g_mouse_package_data
+	fetch 1,mem_customer_key
+	nbranch mouse_24g_keyboard_package_data,blank
+mouse_24g_mouse_package_data:
+	call mouse_data_xy_release
+	fetch 1,mem_24g_data_type
+	bbit1 1,mouse_24g_mouse_package_data_now	// last package is keyboard data
+	fetcht 1,mem_24g_txbuf+1
+	fetch 1,mem_mouse_key
+	ior temp,pdata
+	store 1,mem_mouse_key
+	fetcht 1,mem_24g_txbuf+6
+	fetch 1,mem_mouse_z
+	iadd temp,pdata
+	store 1,mem_mouse_z
+	fetcht 1,mem_24g_txbuf+7
+	fetch 1,mem_mouse_tz
+	iadd temp,pdata
+	store 1,mem_mouse_tz	
+mouse_24g_mouse_package_data_now:	
+	jam TYPE_MS,mem_24g_data_type
+	arg 7,rega	//length
+	arg mem_mouse_key,regb //tx buff
+	fetch 2,mem_mouse_z
+	rtn blank
+	branch g24_transmit_by_interrupt_enable
+
+mouse_24g_keyboard_package_data:
+	jam TYPE_KB,mem_24g_data_type
+	arg 9,rega	//length
+	fetch 1,mem_customer_data_trigger
+	nbranch mouse_customer_key_press,blank
+	arg mem_customer_key_release,regb	//tx buff
+	rtn
+mouse_customer_key_press:
+	arg mem_customer_key_press,regb
+	rtn
+
+
+
+
+mouse_24g_search_dongle_init:
+	setarg 0
+	store 3,mem_mouse_search_dongle_action
+	rtn
+
+mouse_24g_search_dongle:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtn blank
+	fetch 1,mem_24g_abort_pac
+	rtn blank
+	fetch 1,mem_mouse_search_dongle_interval
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_mouse_search_dongle_interval
+	nrtn blank	//400ms
+	jam 0,mem_mouse_search_dongle_ch
+mouse_24g_search_dongle_loop:
+	bpatch patch12_7,mem_patch12
+	fetch 1,mem_mouse_search_dongle_ch
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_ch
+	sub pdata,G24_CH_NUMBER,null
+	nbranch mouse_24g_search_dongle_loop_end,positive
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch mouse_24g_search_dongle_loop_retry,sync
+	nbranch mouse_24g_search_dongle_loop_retry,user3
+	call mouse_g24_ackpayload_parse
+	call mouse_24g_search_dongle_success
+mouse_24g_search_dongle_loop_end:
+	call g24_txbuf_clear
+	fetch 1,mem_mouse_search_dongle_count
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_count
+	beq G24_CH_POLL_COUNT,mouse_24g_search_dongle_check
+	rtn
+
+mouse_24g_search_dongle_loop_retry:
+	call g24_ch
+	branch mouse_24g_search_dongle_loop
+
+mouse_24g_search_dongle_check:
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit1 G24_DISCONN_STATE
+	set1 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	fetch 2,mem_mouse_24g_search_dongle_time_init		//3min
+	store 2,mem_mouse_no_data_timer
+	branch mouse_sensor_powerdown
+	
+mouse_24g_search_dongle_success:
+	fetch 1,mem_24g_abort_pac
+	branch mouse_24g_search_dongle_init,blank
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit0 G24_DISCONN_STATE
+	set0 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	call mouse_no_data_timer_init
+	branch mouse_init_sensor_wakeup
+
+mouse_g24_ackpayload_parse:
+	call g24_ackpayload_parse
+	fetch 1,mem_24g_rxbuf+1
+	compare 0x08,pdata,0xf8
+	nrtn true
+	fetch 1,mem_24g_rxbuf+2		// pc sleep mouse ackpayload: 01 08 ff
+	beq 0xff,mouse_24g_hibernate_set
+	rtn
+
+
+
+
+mouse_g24_retransmit:
+	fetch 1,mem_mouse_need_soft_reset
+	nrtn blank
+	call mouse_retransmit_select_device_by_pb_button
+	call mouse_select_device_by_dpi_button_once
+	branch g24_retransmit0
+
+mouse_select_device_by_dpi_button_once:
+	arg 12,queue
+	call timer_check
+	nrtn blank
+	call mouse_dpi_check_once
+	call mouse_dpi_key_check_long_press
+mouse_g24_retransmit_100ms_timer_init:
+	arg 12,queue
+	setarg 160
+	branch timer_init
+	
+mouse_dpi_check_once:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+//	jam 0x03,mem_mouse_dpikey_press_status
+	branch mouse_dpi_check
+
+
+mouse_24g_before_lpm_sleep:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,lpm_sleep_skip_cb_function
+	fetch 1,mem_24g_disable_fec1
+	rtn blank
+mouse_peripheral_clock_off:
+	jam 2,core_clksel			//use rc clock
+	jam 0xf8,core_lpm_ctrl
+	rtn
+
+
+
+
+mouse_logo_led_on_timer:
+	fetch 1,mem_mouse_logo_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_mouse_no_data_timer
+	rtn blank
+	fetch 2,mem_mouse_no_data_timeout
+	fetcht 2,mem_mouse_no_data_timer
+	isub temp,temp
+	fetch 2,mem_mouse_logo_led_on_time_init
+	isub temp,pdata
+	branch mouse_logo_led_on,positive
+mouse_logo_led_off:
+	fetcht 1,mem_mouse_logo_led_gpio
+	branch mouse_led_off
+mouse_logo_led_on:
+	fetcht 1,mem_mouse_logo_led_gpio
+	branch mouse_led_on
+	
+
+
+
+
+
+mouse_dpi_led_blink_delay_timer:
+	arg mem_mouse_dpi_led_delay_count,regc
+	arg mouse_dpi_led_blink_init,regb
+	branch timer_single_step
+	
+mouse_dpi_led_blink_init:
+	bpatch patch13_0,mem_patch13
+	fetch 1,mem_config_sensor_type
+	beq P3212,mouse_dpi_led_blink_init_another		//result:    level3: 1  2  3     level4: 2  3  4  1
+	beq KA8G2,mouse_dpi_led_blink_init_another	//result:    level3: 1  2  3     level4: 2  3  4  1
+	fetcht 1,mem_mouse_dpi
+	increase 2,temp	// 2 3 4 (5)
+mouse_dpi_led_blink_init_next:
+	sub temp,3,null
+	call mouse_dpi_led_blink_init_level_4,positive
+	ncall mouse_dpi_led_blink_count_clean,positive
+	copy temp,pdata
+	iadd pdata,pdata
+	store 1,mem_mouse_multi_led_blink_count
+mouse_multi_dpi_led_blink_enable:
+	jam 4,mem_mouse_multi_led_blink_type
+	call mouse_multi_dpi_led_blink_timer_init	
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	branch mouse_multi_led_enable
+
+mouse_dpi_led_blink_init_another:
+	fetcht 1,mem_mouse_dpi
+	increase 1,temp
+	branch mouse_dpi_led_blink_init_next
+
+mouse_dpi_led_blink_init_level_4:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DPI_LEVEL_4
+	increase 1,temp  	// 2-->3   3-->4
+	rtn
+mouse_dpi_led_blink_count_clean:
+	increase -3,temp		// 4-->1  5-->2
+	rtn
+
+
+mouse_dpi_led_blink_delay:
+	fetch 1,mem_mouse_dpi_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_mouse_multi_led_powon_timer
+	nrtn blank
+	fetch 1,mem_mouse_dpi_led_delay_count_init
+	branch mouse_dpi_led_blink_init,blank
+	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
+	rtn
+
+
+
+
+
+
+
+mouse_check_dpi_blink:
+	disable user
+	fetch 1,mem_mouse_multi_led_blink_type		//04:dpi blink
+	sub pdata,4,null
+	nrtn zero
+	branch enable_user
+
+mouse_low_voltage_led_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOW_LED
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_mouse_multi_led_powon_timer
+	nrtn blank
+	call mouse_check_dpi_blink		//need judge blink led=dpi? if led=dpi led->rtn
+	rtn user
+
+	fetch 1,mem_mouse_multi_low_led_blink_count
+	branch mouse_low_led_blink_count_init_judge,blank
+mouse_low_led_blink_timer:
+	fetcht 1,mem_adc_low_volatage_led_timer_count
+	increase 1,temp
+	storet 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_mouse_low_led_blink_timer
+	isub temp,null
+	ncall mouse_low_led_timer_count_clean,positive
+	fetch 1,mem_mouse_low_led_blink_half_timer
+	isub temp,null
+	nbranch mouse_low_voltage_led_off_judge,positive
+mouse_low_voltage_led_on_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_FOR_LED,mouse_device_led_on
+	bbit1 MOUSE_ENABLE_DPI_LOW_FOR_LED,mouse_device_led_on
+mouse_low_voltage_led_on:
+	fetcht 1,mem_mouse_low_voltage_alarm_gpio 
+	branch mouse_led_on
+
+mouse_low_led_timer_count_clean:
+	jam 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_mouse_multi_low_led_blink_count	//blink count decrease
+	increase -1,pdata
+	store 1,mem_mouse_multi_low_led_blink_count
+mouse_low_voltage_led_off_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_FOR_LED,mouse_device_led_off
+	bbit1 MOUSE_ENABLE_DPI_LOW_FOR_LED,mouse_device_led_off
+mouse_low_voltage_led_off:
+	fetcht 1,mem_mouse_low_voltage_alarm_gpio
+	branch mouse_led_off
+
+mouse_low_led_blink_count_init_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT,mouse_low_voltage_led_off_judge
+	call mouse_multi_low_led_blink_count_init
+	branch mouse_low_led_blink_timer
+	
+
+
+
+
+
+
+mouse_device_multi_led_parm_init:
+	jam 0,mem_mouse_multi_led_blink_enable
+	call mouse_device_multi_led_all_off		//can be remove?
+	jam 0,mem_mouse_multi_led_blink_type
+	fetch 1, mem_mouse_low_led_blink_timer
+	rshift pdata,pdata
+	store 1,mem_mouse_low_led_blink_half_timer
+	rtn
+mouse_multi_low_led_blink_count_init:
+	fetch 1,mem_mouse_multi_lowled_blink_count_init
+	store 1,mem_mouse_multi_low_led_blink_count
+	rtn
+
+mouse_multi_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_led_blink_type		//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+	beq 1,mouse_device_24g_led_blink_timer_init
+	beq 2,mouse_device_le_discovery_led_blink_timer_init
+	beq 3,mouse_device_le_reconn_led_blink_timer_init
+mouse_multi_dpi_led_blink_timer_init:
+	fetch 1,mem_mouse_dpi_led_blink_timer_init
+mouse_store_multi_led_blink_timer:
+	store 1,mem_mouse_multi_led_blink_timer
+	rtn
+mouse_device_24g_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_24gled_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+mouse_device_le_discovery_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_le_discovery_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+mouse_device_le_reconn_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_le_reconn_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+
+//===led poweron config===//
+mouse_device_poweron_led_config:	//power on
+	bpatch patch13_1,mem_patch13
+	fetch 1,mem_mouse_multi_led_powon_timer_init
+	store 1,mem_mouse_multi_led_powon_timer
+	jam MULTI_LED_ON,mem_mouse_multi_led_type
+mouse_multi_led_enable:
+	jam OFF,mem_mouse_multi_led_state
+	jam ON,mem_mouse_multi_led_blink_enable
+	rtn
+
+//===led blink config===//
+mouse_device_24g_pair_led_config:		//24g pair led config
+	bpatch patch13_2,mem_patch13
+	fetch 1,mem_device_flag
+	rtnne MODE_24G_DEVICE
+	call mouse_multi_led_blink_enable_init
+	jam 1,mem_mouse_multi_led_blink_type
+	call mouse_device_24g_led_blink_timer_init
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	rtn blank
+	fetch 1,mem_mouse_multi_24gled_blink_count_init
+	branch mouse_device_led_blink_count_init
+
+mouse_device_le_reconn_led_config:		//le recon led config
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	call mouse_multi_led_blink_enable_init
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+	jam 3,mem_mouse_multi_led_blink_type
+	call mouse_device_le_reconn_led_blink_timer_init
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	rtn blank
+	fetch 1,mem_mouse_multi_le_reconn_blink_count_init
+mouse_device_led_blink_count_init:
+	store 1,mem_mouse_multi_led_blink_count
+	rtn	
+
+mouse_device_discovery_led_config:		//ble discovery led config
+	jam 0,mem_mouse_le_reconn_blink_limit
+	jam 2,mem_mouse_multi_led_blink_type
+	call mouse_device_le_discovery_led_blink_timer_init
+mouse_multi_led_blink_enable_init:
+	jam 1,mem_mouse_multi_led_blink_enable
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	branch mouse_device_multi_led_on
+
+
+//====multi timer====//
+mouse_led_multi_timer:
+	fetch 1,mem_mouse_multi_led_blink_enable
+	rtn blank
+	fetch 1,mem_mouse_multi_led_type
+	beq MULTI_LED_BLINK,mouse_multi_led_type_blink
+mouse_device_multi_led_type_on:
+	fetch 1,mem_mouse_multi_led_powon_timer
+	branch mouse_device_poweron_led_off,blank
+	increase -1
+	store 1,mem_mouse_multi_led_powon_timer
+	branch mouse_device_led_on
+
+mouse_device_poweron_led_off:
+ 	jam 0,mem_mouse_multi_led_blink_enable
+	call mouse_multi_low_led_blink_count_init
+	branch mouse_device_led_off
+
+mouse_multi_led_type_blink:
+	bpatch patch13_3,mem_patch13
+	fetch 1,mem_mouse_multi_led_blink_type	//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+	rtn blank
+	beq 4,mouse_device_led_blink_limit	//dpi blink
+	branch mouse_device_led_blink_judge
+
+mouse_device_led_blink_judge:
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	beq 1,mouse_device_led_blink_limit
+	branch mouse_multi_led_type_blink_next
+
+mouse_device_led_blink_limit:
+	fetch 1,mem_mouse_multi_led_blink_count
+	branch mouse_multi_led_off_judge, blank		//blink count =0
+mouse_multi_led_type_blink_next:	//blink no limit
+	arg mem_mouse_multi_led_blink_timer,regc
+	arg mouse_multi_led_type_blink_start,regb
+	branch timer_single_step
+	
+mouse_multi_led_type_blink_start:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_led_blink_count_decrease		//dpi blink
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	beq 1,mouse_multi_led_blink_count_decrease
+mouse_multi_led_blink:
+	call mouse_multi_led_blink_timer_init
+	fetch 1,mem_mouse_multi_led_state
+	beq ON,mouse_multi_led_off_judge_next
+	branch mouse_multi_led_on_judge
+
+mouse_multi_led_blink_count_decrease:
+	fetch 1,mem_mouse_multi_led_blink_count	
+	increase -1
+	store 1,mem_mouse_multi_led_blink_count
+	branch mouse_multi_led_blink
+
+//=====led on/off interface=====//
+mouse_multi_led_on_judge:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_dpi_led_on_judge
+mouse_device_multi_led_on:
+	jam ON,mem_mouse_multi_led_state
+mouse_device_led_on:
+	bpatch patch13_4,mem_patch13
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_device_24g_led_on
+	beq MODE_BT_DEVICE1,mouse_device_bt1_led_on
+	beq MODE_BT_DEVICE2,mouse_device_bt2_led_on
+	rtn
+mouse_device_24g_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	branch mouse_led_on	//by mouse.dat config
+mouse_device_bt1_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	branch mouse_led_on	//by mouse.dat config
+mouse_device_bt2_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+mouse_led_on:
+	branch gpio_out_active	//by mouse.dat config
+
+mouse_led_off:
+	branch gpio_out_inactive	//by mouse.dat config
+
+mouse_multi_led_off_judge:
+	jam 0,mem_mouse_multi_led_blink_enable
+	jam 0,mem_mouse_multi_led_blink_type
+mouse_multi_led_off_judge_next:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_dpi_led_off_judge
+mouse_device_multi_led_off:
+	jam OFF,mem_mouse_multi_led_state
+mouse_device_led_off:
+	bpatch patch13_5,mem_patch13
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_device_24g_led_off
+	beq MODE_BT_DEVICE1,mouse_device_bt1_led_off
+	beq MODE_BT_DEVICE2,mouse_device_bt2_led_off
+	rtn
+mouse_device_24g_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_high_impedance
+mouse_device_bt1_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_high_impedance
+mouse_device_bt2_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_high_impedance
+
+mouse_device_multi_led_all_off:		//dpi+low no
+	call mouse_device_24g_led_off
+	call mouse_device_bt1_led_off
+	call mouse_device_bt2_led_off
+	call mouse_low_voltage_led_off_judge
+	branch mouse_multi_dpi_led_off_judge
+
+mouse_multi_dpi_led_off_judge:
+	jam OFF,mem_mouse_multi_led_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_FOR_LED,mouse_device_multi_led_off
+	bbit1 MOUSE_ENABLE_DPI_LOW_FOR_LED,mouse_device_multi_led_off
+mouse_multi_dpi_led_off:
+	fetcht 1,mem_mouse_dpi_gpio
+	branch mouse_led_off
+
+mouse_multi_dpi_led_on_judge:
+	jam ON,mem_mouse_multi_led_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_FOR_LED,mouse_device_multi_led_on
+	bbit1 MOUSE_ENABLE_DPI_LOW_FOR_LED,mouse_device_multi_led_on
+mouse_multi_dpi_led_on:
+	fetcht 1,mem_mouse_dpi_gpio
+	branch mouse_led_on	//by mouse.dat config
+
+
+
+mouse_low_voltage_led_no_enter_lpm:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	fetch 1,mem_adc_low_volatage_led_timer_count
+	fetcht 1,mem_mouse_low_led_blink_half_timer
+	sub pdata,temp,null
+	branch mouse_lpm_mode_clear,positive
+mouse_low_voltage_led_no_enter_lpm_next:	
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_exit_check
+	jam 1,mem_lpm_mode
+	rtn
+
+g24_transmit_by_interrupt_exit_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag	
+	rtnbit1 MOUSE_ENABLE_24G_250Hz	
+	branch g24_transmit_by_interrupt_exit
+
+mouse_lpm_mode_clear:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_enable
+	jam 0,mem_lpm_mode
+	rtn
+
+
+mouse_store_signal_rssi:
+//	call rssi_hex2dec
+	fetch 1,mem_rssi
+	branch rssi_signal
+
+mouse_le_transmit:
+	call mouse_store_signal_rssi
+	branch power_ctrl_start
+
+mouse_le_set_lpm_mult:
+	fetch 1,mem_le_connect_status_flag
+	compare 3,pdata,3
+	nbranch disable_blank,true
+	call app_lpm_mult_enable
+	branch enable_blank
+
+mouse_set_lpm_mult:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,mouse_le_set_lpm_mult
+	rtn
+
+mouse_24g_long_sleep:
+	call g24_lpm_wait
+	nrtn user
+	jam 1,mem_mouse_24g_long_sleep_flag
+	call g24_setgpio_lpm_before
+	jam 0,mem_mouse_24g_sleep_miss
+	call mouse_24g_send_time_long_wake
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_setgpio_hibernate,blank
+	fetch 4,mem_24g_enter_hibernate
+	branch g24_long_seep2	
+
+mouse_24g_short_sleep:
+	fetch 1,mem_mouse_sleep_deal_type
+	branch g24_short_sleep,blank
+	call g24_lpm_wait
+	nrtn user
+	fetch 1,mem_mouse_24g_sleep_miss
+	jam 0,mem_mouse_24g_sleep_miss
+	sub pdata,0,null
+	nbranch mouse_24g_short_sleep_last_miss,zero
+	fetcht 2,mem_24g_retransmit
+	sub temp,0,null
+	branch mouse_24g_short_sleep_default,zero
+
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	branch mouse_24g_short_sleep_default,blank
+mouse_24g_short_sleep_notify:
+	fetcht 4,mem_mouse_24g_tsniff
+	isub temp,temp
+	storet 4,mem_mouse_24g_sleep_miss_temp
+	nbranch mouse_24g_short_sleep_long,positive
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,pdata
+	nbranch mouse_24g_short_sleep_2,positive
+	arg 0x600,temp
+	isub temp,null
+	nbranch mouse_24g_short_sleep_2,positive
+mouse_24g_short_sleep2:
+	store 4,mem_mouse_24g_sleep_time_temp
+	call mouse_24g_miss_temp_clear
+	fetch 4,mem_mouse_24g_sleep_time_temp
+mouse_24g_short_sleep3:	
+	call clk2lpo
+	storet 4,mem_sleep_counter
+	branch lpm_sleep
+
+mouse_24g_short_sleep_default:
+	call mouse_24g_miss_temp_clear
+	fetch 3,mem_24g_short_sleep_set
+	branch mouse_24g_short_sleep2
+
+mouse_24g_short_sleep_long:
+	sub temp,0,temp
+	fetch 3,mem_24g_short_sleep_set
+	iadd temp,pdata
+	branch mouse_24g_short_sleep2
+
+mouse_24g_miss_temp_clear:
+	setarg 0
+	store 4,mem_mouse_24g_sleep_miss_temp
+	rtn
+	
+mouse_24g_short_sleep_last_miss:
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	fetcht 4,mem_mouse_24g_sleep_miss_temp
+	iadd temp,pdata
+	branch mouse_24g_short_sleep_notify
+	
+mouse_24g_short_sleep_2:
+	jam 1,mem_mouse_24g_sleep_miss
+	rtn
+
+
+mouse_24g_transmit_callback:
+	call mouse_24g_send_time_check
+	branch mouse_wakeup_24g
+
+mouse_24g_send_time_check:
+	fetch 1,mem_mouse_sleep_deal_type
+	rtn blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,mouse_24g_send_timer_first
+	fetch 1,mem_mouse_24g_tx_count
+	branch mouse_24g_send_timer_first,blank
+	copy clkn,pdata
+	fetcht 6,mem_mouse_24g_tx_time_last
+	store 6,mem_mouse_24g_tx_time_last
+	call clk_diff_rt
+	store 4,mem_mouse_24g_tx_time_last_delt
+
+	fetch 1,mem_mouse_24g_sleep_miss
+	nrtn blank
+	fetch 2,mem_24g_retransmit
+	nrtn blank
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+mouse_24g_send_time_check_1:
+	fetcht 5,mem_mouse_24g_tx_time_sum
+	iadd temp,pdata
+	store 5,mem_mouse_24g_tx_time_sum	
+	fetcht 1,mem_mouse_24g_tx_count
+	fetch 1,mem_mouse_24g_tx_time_sum_count
+	isub temp,null
+	branch mouse_24g_send_time_check_average,zero
+	increase 1,temp
+	storet 1,mem_mouse_24g_tx_count
+	rtn
+
+mouse_24g_send_time_check_average:
+	jam 1,mem_mouse_24g_tx_count
+	arg 0,temp
+	fetch 5,mem_mouse_24g_tx_time_sum
+	storet 5,mem_mouse_24g_tx_time_sum
+	fetcht 1,mem_mouse_24g_tx_time_sum_count
+	idiv temp
+	call wait_div_end
+  	quotient rega
+
+	fetch 4,mem_mouse_24g_tsniff
+	fetcht 1,mem_mouse_24g_tx_time_offset
+	isub temp,temp
+	increase -40,temp
+
+	copy rega,pdata
+	isub temp,pdata
+	branch mouse_24g_send_time_check_average_late,positive
+	sub pdata,0,pdata
+	
+	rshift2 pdata,pdata
+	fetcht 3,mem_24g_short_sleep_set
+	iadd temp,temp
+	bpatch patch13_6,mem_patch13
+	fetch 3,mem_mouse_24g_short_sleep_set_init
+	arg 0x1800,rega
+	iadd rega,pdata
+	isub temp,null
+	nbranch mouse_24g_send_time_check_average_min,positive
+	storet 3,mem_24g_short_sleep_set
+	rtn
+
+mouse_24g_send_time_check_average_late:
+	rshift2 pdata,temp
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,temp
+	bpatch patch13_7,mem_patch13
+	fetch 3,mem_mouse_24g_short_sleep_set_init
+	arg 0x1800,rega
+	isub rega,pdata
+	isub temp,null
+	branch mouse_24g_send_time_check_average_min,positive
+	storet 3,mem_24g_short_sleep_set
+	rtn
+
+mouse_24g_send_time_check_average_min:
+	store 3,mem_24g_short_sleep_set
+	rtn
+
+mouse_24g_send_timer_first:
+	jam 1,mem_mouse_24g_tx_count
+	copy clkn,pdata
+	store 6,mem_mouse_24g_tx_time_last
+	rtn
+
+mouse_24g_send_time_long_wake:
+	setarg 0
+	store 1,mem_mouse_24g_tx_count
+	store 5,mem_mouse_24g_tx_time_sum
+	rtn
+	
+
+
+
+
+
+
+
+shutter_init:
+	call enable_authrom
+	rtn wake
+	
+	setarg shutter_process_idle
+	store 2,mem_cb_idle_process
+		
+	setarg shutter_process_bb_event 
+	store 2,mem_cb_bb_event_process
+	
+	setarg ble_shutter_receive_data
+	store 2,mem_cb_att_write
+
+	setarg shutter_le_bb_event_timer
+	store 2,mem_cb_event_timer
+
+	setarg shutter_key_change
+	store 2,mem_cb_shutter_keycan
+
+	call shutter_common_init
+	
+	bpatch patch14_0,mem_patch14
+	call shutter_load_buffer_config_form_DataRom
+
+shutter_power_switch:
+	fetch 1, mem_shutter_hard_soft_switch_case
+	beq HARD_SWITCH, shutter_hart_swtich_power_on
+	fetch 1,mem_shutter_soft_switch_button_gpio
+	store 1,mem_ui_button_gpio
+	branch ui_soft_swtich_init
+
+
+shutter_common_init:
+	setarg shutter_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+
+	setarg shutter_process_lpm_before
+	store 2,mem_cb_before_lpm
+
+	setarg shutter_soft_swtich_power_on
+	store 2,mem_shutter_soft_switch_poweron_callback_function
+	
+	setarg shutter_soft_swtich_power_off
+	store 2,mem_shutter_soft_switch_poweroff_callback_function
+
+	jam 7,mem_version
+	call le_modified_name_adv
+	call shutter_init_param	
+	call keyscan_key_init
+	call queue_init
+	branch ui_led_init_global
+
+
+
+shutter_hart_swtich_power_on:
+	jam UI_BUTTON_GPIO_DISABLE,mem_ui_button_gpio
+	jam SS_STATE_POWER_ON,mem_shutter_soft_switch_power_state
+	branch shutter_start_reconnect
+
+
+
+shutter_le_scale_lpm_lock:
+	fetch 1,mem_shutter_soft_switch_power_state
+	beq SS_STATE_POWER_OFF,app_get_lpm_wake_lock
+	call l2cap_malloc_get_full_map
+	fetch 1,mem_used_map
+	nbranch app_get_lpm_wake_lock,blank
+	branch app_put_lpm_wake_lock
+
+
+
+shutter_process_bb_event:
+	copy regc,pdata
+	
+
+	beq BT_EVT_LE_CONNECTED,ble_shutter_process_baseband_connect
+	beq BT_EVT_LE_DISCONNECTED,ble_shutter_process_baseband_disconnect
+	beq BT_EVT_LE_RECONNECT_COMPLETE,ble_shutter_process_reconnect_complete
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,ble_shutter_process_parse_connect_parameter_update_response
+
+	beq BT_EVT_BUTTON_LONG_PRESSED,ui_soft_switch_botton_long_press
+	beq BT_EVT_BUTTON_DOWN,shutter_process_soft_swtich_button_down
+	beq BT_EVT_BUTTON_UP,shutter_process_soft_swtich_button_up
+	rtn
+
+
+
+
+ble_shutter_process_baseband_connect:
+	call shutter_stop_bluetooth_discovery
+	setarg 0
+	store 2,mem_ble_shutter_reconn_timer
+	branch app_led_off
+
+
+ble_shutter_process_baseband_disconnect:
+	call queue_init
+	jam 0,mem_ble_shutter_enable_notify
+	branch shutter_start_reconnect
+
+
+ble_shutter_process_reconnect_complete:
+	call queue_init
+	jam 1,mem_ble_shutter_enable_notify
+	fetch 8,mem_ble_shutter_interval_min
+	store 8,mem_le_interval_min
+	call app_lpm_mult_enable
+	branch le_l2cap_tx_update_req
+
+
+ble_shutter_process_parse_connect_parameter_update_response:
+	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+	fetch 8,mem_ble_shutter_interval_min_new
+	rtn blank
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+
+
+
+//shutter_process_soft_swtich_button_long_press:
+//	branch ui_soft_switch_botton_long_press
+
+shutter_process_soft_swtich_button_down:
+	fetch 1,mem_shutter_hard_soft_switch_case
+	rtneq HARD_SWITCH
+	fetch 1,mem_shutter_soft_switch_power_state
+	rtnne SS_STATE_POWER_ON
+	call shutter_store_currenct_led_state
+	branch app_led_on
+	
+shutter_store_currenct_led_state:
+	jam 1,mem_shutter_soft_swtich_botton_down
+	arg 11,loopcnt
+	arg mem_shutter_soft_swtich_led_struct_temp,contw
+	arg mem_shutter_led_struct_app_led,contr
+	branch memcpy
+	
+shutter_process_soft_swtich_button_up:
+	fetch 1,mem_shutter_hard_soft_switch_case
+	rtneq HARD_SWITCH
+	fetch 1,mem_shutter_soft_switch_power_state
+	beq SS_STATE_POWER_ON,shutter_load_currenct_led_state
+	branch ui_soft_switch_botton_up
+
+shutter_load_currenct_led_state:
+	fetch 1,mem_shutter_soft_swtich_botton_down
+	rtnne 1
+	jam 0,mem_shutter_soft_swtich_botton_down
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_led_off
+	arg 11,loopcnt
+	arg mem_shutter_soft_swtich_led_struct_temp,contr
+	arg mem_shutter_led_struct_app_led,contw
+	branch memcpy
+	
+
+
+
+shutter_le_bb_event_timer:
+
+	call shutter_check_sleep_timer
+
+
+	call shutter_check_power_off_timer
+
+
+
+	branch ble_shutter_reconn_timer
+
+
+
+shutter_check_sleep_timer:
+	arg mem_shutter_sleep_timer,regc
+	arg shutter_sleep_timeout,regb
+	branch timer_single_step_2B
+shutter_sleep_timeout:
+	jam SS_STATE_POWER_OFF,mem_shutter_soft_switch_power_state
+	call app_led_off
+	call shutter_disconnect_current_connection
+	branch shutter_wait_power_off
+
+
+shutter_check_power_off_timer:
+	arg mem_shutter_power_off_timer,regc
+	arg shutter_check_power_off_timeout,regb
+	branch timer_single_step
+
+shutter_check_power_off_timeout:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,shutter_wait_power_off
+	fetch 1,mem_shutter_led_struct_app_led_type
+	beq UI_LED_STATE_BLINK_START,shutter_wait_power_off
+	beq UI_LED_STATE_BLINK_LIGHTING,shutter_wait_power_off
+	beq UI_LED_STATE_BLINK_DARKING,shutter_wait_power_off
+	branch app_enter_hibernate
+
+
+
+ble_shutter_reconn_timer:
+	fetch 1,mem_shutter_soft_switch_power_state
+	rtnne SS_STATE_POWER_ON
+	arg mem_ble_shutter_reconn_timer,regc
+	arg shutter_start_bluetooth_discovery,regb
+	branch timer_single_step_2B
+
+
+shutter_process_idle:
+	call shutter_send_data_to_master
+	branch keyscan_key_process
+
+
+shutter_process_lpm_before:
+	call gpio_set_before_lpm
+	branch keyscan_process_lpm_before
+
+shutter_le_before_hibernate:
+	call gpio_set_before_lpm
+	branch disable_authrom
+
+//////////////////////////////////////////////////////////////////////////////////////////
+
+
+
+shutter_stop_bluetooth_discovery:
+//	fetch 1,mem_shutter_bluetooth_type
+//	bbit1 BLE_SHUTTER,ble_shutter_stop_bluetooth_discovery
+//	rtn
+ble_shutter_stop_bluetooth_discovery:
+	fetch 2,mem_ble_shutter_connect_timeout
+	store 2,mem_shutter_sleep_timeout
+	store 2,mem_shutter_sleep_timer
+	branch app_ble_stop_adv
+	
+
+shutter_start_bluetooth_discovery:
+	fetch 1,mem_shutter_soft_switch_power_state
+	rtnne SS_STATE_POWER_ON
+//	fetch 1,mem_shutter_bluetooth_type
+//	bbit1 BLE_SHUTTER,ble_shutter_start_discovery
+//	rtn
+ble_shutter_start_discovery:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	fetch 2,mem_ble_shutter_discovery_timeout
+	store 2,mem_shutter_sleep_timeout
+	store 2,mem_shutter_sleep_timer
+	fetch 2,mem_ble_shutter_discovery_adv_interval
+	call shutter_ble_adv_interval_set
+	call app_led_start_blink
+	fetch 4,mem_ble_shutter_discovery_blink_on_time
+	store 4,mem_shutter_led_struct_app_led_on_time
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	branch app_ble_start_adv
+
+shutter_soft_swtich_power_on:
+shutter_start_reconnect:
+	fetch 1,mem_shutter_soft_switch_power_state
+	rtnne SS_STATE_POWER_ON
+//	fetch 1,mem_shutter_bluetooth_type
+//	bbit1 BLE_SHUTTER,ble_shutter_start_reconnect
+//	rtn
+ble_shutter_start_reconnect:
+	fetch 2,mem_ble_shutter_reconn_timer
+	fetcht 2,mem_ble_shutter_reconn_timeout
+	storet 2,mem_ble_shutter_reconn_timer
+	nrtn blank
+	fetch 2,mem_ble_shutter_reconn_adv_interval
+	call shutter_ble_adv_interval_set
+	call app_led_start_blink
+	fetch 4,mem_ble_shutter_reconn_blink_on_time
+	store 4,mem_shutter_led_struct_app_led_on_time
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	branch app_ble_start_adv
+
+shutter_disconnect_current_connection:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	branch shutter_stop_bluetooth_discovery
+
+/////////////////////////////////////////////////////////////////////////
+//output:if user is enable,mean,can send data
+shutter_check_data_enable:
+	call disable_user
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,shutter_check_ble_data_enable
+	rtn
+
+shutter_check_ble_data_enable:
+	fetch 1,mem_ble_shutter_enable_notify
+	rtn blank
+	branch enable_user
+/////////////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////////////
+//output:if user is enable,mean,bluetooth disconnect
+shutter_check_bluetooth_conn:
+	call disable_user
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	branch enable_user
+/////////////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////////////
+shutter_change_bluetooth_status_bt_disconn:
+//	fetch 1,mem_shutter_bluetooth_type
+//	bbit1 BLE_SHUTTER,ble_shutter_change_bluetooth_status_bt_disconn
+//	rtn
+ble_shutter_change_bluetooth_status_bt_disconn:
+	branch shutter_start_reconnect
+
+/////////////////////////////////////////////////////////////////////////
+
+shutter_check_send_data:
+	disable user2
+	fetch 2,mem_shutter_sleep_timeout
+	store 2,mem_shutter_sleep_timer
+
+	call shutter_check_bluetooth_conn
+	branch shutter_change_bluetooth_status_bt_disconn,user
+	
+	call shutter_check_data_enable
+	nrtn user
+	branch enable_user2
+
+//queue = key index
+//rega =1 press, =0 release
+shutter_key_change:
+	call shutter_check_send_data
+	nrtn user2
+	deposit rega
+	branch shutter_key_release,blank
+shutter_key_press:
+	call app_led_on
+	arg mem_key0_press,regc
+	branch push_queue_press_or_release
+
+shutter_key_release:
+	call app_led_off
+	arg mem_key0_release,regc
+
+push_queue_press_or_release:
+	arg MAX_QUEUE_NUM,pdata
+	imul32 queue,pdata
+	iadd regc,regc
+	
+//input:regc the address that want push to queue buffer
+push_buffer_in_queue:
+	ifetch 1,regc
+	rtn blank
+	call queue_push_one_byte
+	increase 1,regc
+	branch push_buffer_in_queue
+
+
+shutter_send_data_to_master:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,pop_queue_to_ble_data
+	rtn
+
+pop_queue_to_ble_data:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	call queue_pop_one_byte
+	nrtn user
+	pincrease -1
+	mul32 pdata,SHUTTER_BLE_DATA_BUFFER,pdata
+	arg mem_ble_data_buffer1,temp
+	iadd temp,contr
+	branch le_send_notify_from_list
+
+///////////queue function////////////
+//input:pdata is data that want push
+queue_push_one_byte:
+	store 1,mem_pdatatemp
+	arg mem_pdatatemp,rega
+	branch queue_push
+
+queue_pop_one_byte:
+	arg mem_pdatatemp,rega
+	call queue_pop
+	nrtn user
+	fetch 1,mem_pdatatemp
+	rtn
+
+///////////queue function ending////////////
+ble_shutter_receive_data:
+	fetch 2,mem_le_att_handle
+	beq GATT_KEYBOARD_WRITE_HANDLE,ble_shutter_process_reconnect_complete
+	rtn
+
+shutter_init_param:
+	jam 0x02,mem_shutter_power_off_timeout
+/////////////ble connect interval//////////////
+	setarg 0x00200008
+	store 4,mem_ble_shutter_interval_min		//set min interval is 10ms,set max interval is 40ms
+	setarg 0x012c0005
+	istore 4,contw
+///////////////////////////////////////
+//////////////////MTU/////////////
+	jam 0x17,mem_le_local_mtu
+///////////////////////////////////////
+////////////////justwork/////////
+	setarg 0x1b
+ 	store 2,mem_le_pairing_handle
+	branch le_set_fixed_ltk_justwork
+///////////////////////////////////////
+
+shutter_load_buffer_config_form_DataRom:
+///////load data Rom/////////
+	arg BLE_KEY_VALUE_LIST_SIZE,loopcnt
+	arg mem_ble_data_buffer1,contw
+	arg BLE_SHUTTER_KEY_VALUE_LIST_ADDR,contr
+	branch memcpy_fast
+
+//shutter_load_ble_gatt_form_DataRom:
+//	arg BLE_GATT_LIST_SIZE,loopcnt
+//	arg BLE_SHUTTER_GATT_LIST_ADDR,contr
+//	branch memcpy_fast
+
+//shutter_load_dy_keyvalue_buffer_config_form_DataRom:
+///load data Rom/////////
+//	arg BT_DY_KEY_VALUE_LIST_SIZE,loopcnt
+//	arg mem_shutter_mousekey_value_list,contw
+//	arg BLE_SHUTTER_DY_MOUSEKEY_VALUE_LIST_ADDR,contr
+//	branch memcpy_fast
+
+
+/////////////////////////////////////////////////////////////////
+//shutter_soft_swtich_power_on:
+//	branch shutter_start_reconnect
+
+
+shutter_soft_swtich_power_off:
+	arg 0,rega
+	arg mem_shutter_power_off_led_style,regc
+	call ui_led_set_style_global
+	call shutter_disconnect_current_connection
+shutter_wait_power_off:
+	fetch 1,mem_shutter_power_off_timeout
+	store 1,mem_shutter_power_off_timer
+	rtn
+	
+
+
+ui_soft_swtich_init:
+	setarg SS_STATE_POWER_UP
+	call ui_soft_swtich_init_power_on_time
+	jam UI_BUTTON_STATE_UP,mem_ui_button_last_state
+	call ui_button_init
+	call ui_button_polling
+ui_soft_switch_first_power_on:
+	fetch 1,mem_shutter_soft_switch_first_power_on
+	branch ui_soft_swtich_init_next, blank
+	fetch 1,core_lpm_isogate
+	bbit1 cold_wake,ui_soft_switch_power_on
+ui_soft_swtich_init_next:		
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BTN_DOWN
+	branch app_enter_hibernate
+
+ui_soft_swtich_init_power_on_time:
+	fetcht 2,mem_power_param_ptr
+	istore 1,temp		//init power state 
+	ifetch 1,contw		//power on time
+	store 1,mem_ui_button_timeout
+	rtn
+
+
+ui_soft_switch_botton_up:
+	fetch 2,mem_power_param_ptr
+	ifetch 1,pdata
+	rtnne SS_STATE_POWER_UP
+	branch app_enter_hibernate
+
+
+ui_soft_switch_botton_long_press:
+	fetcht 2,mem_power_param_ptr
+	ifetch 1,temp
+	beq SS_STATE_POWER_ON,ui_soft_switch_power_off
+ui_soft_switch_power_on:
+	setarg SS_STATE_POWER_ON
+	fetcht 2,mem_power_param_ptr
+	istore 1,temp		//init power state 
+	add temp,SS_POWER_OFF_TIME,contr
+	ifetch 1,contr
+	istore 1,mem_ui_button_timeout
+	ifetch 2,contr
+	branch callback_func
+
+ui_soft_switch_power_off:
+	setarg SS_STATE_POWER_OFF
+	call ui_soft_swtich_init_power_on_time
+	add temp,SS_POWER_OFF_CB,contr
+	ifetch 2,contr
+	branch app_enter_hibernate,blank		//no call back function , just enter hibernate
+	branch callback_func
+	
+
+
+//pdata:adv interval value
+shutter_ble_adv_interval_set:
+	store 2,mem_lpm_interval
+	increase -4,pdata
+	store 2,mem_le_adv_interval
+	rtn
+
+le_send_notify_from_list:
+	ifetch 1,contr	//length 
+	copy pdata,rega
+	ifetcht 2,contr	//handle
+	call store_contr
+	call le_att_malloc_tx_notify
+	copy rega,loopcnt
+	call get_contr
+	branch memcpy
+
+shutter_le_uuid_table_conf:
+	setarg BLE_SHUTTER_GATT_LIST_ADDR
+	store 2,mem_ui_le_uuid_table	//BLE ATT LIST END
+	rtn
+	
+shutter_dy_le_uuid_table_conf:
+	setarg mem_shutter_le_uuid_sup	//BLE ATT LIST 
+	store 2,mem_ui_le_uuid_table	//BLE ATT LIST END
+	rtn
+
+
+shutter_default_init:
+	fetch 2,mem_shutter_key_conf0_temp
+	store 2,mem_shutter_key_conf0
+	fetch 1,mem_shutter_led_struct_app_led_gpio_temp
+	store 1,mem_shutter_led_struct_app_led_gpio
+	store 1,mem_shutter_power_off_led_style_gpio
+	fetch 1,mem_shutter_hard_soft_switch_case_temp
+	store 1,mem_shutter_hard_soft_switch_case
+	fetch 1,mem_shutter_soft_switch_button_gpio_temp
+	store 1,mem_shutter_soft_switch_button_gpio
+//	jam 0x01,mem_shutter_bluetooth_type
+//	setarg 0x0030
+//	store 2,mem_classic_shutter_random_mac_offset_addr
+//	setarg 0x0000
+//	store 2,mem_shutter_config_eeprom_offset_addr
+	setarg 0x0002
+	store 2,mem_key0_press
+	store 2,mem_key1_press
+	setarg 0x0006
+	store 2,mem_key0_release
+	store 2,mem_key1_release
+	setarg 0x0007
+	store 2,mem_key2_press
+	setarg 0x0008
+	store 2,mem_key2_release
+	setarg mem_shutter_soft_switch_power_state
+	store 2,mem_power_param_ptr
+	setarg 0x201400
+	store 3,mem_shutter_soft_switch_power_state
+	jam 0x01,mem_lpm_mode
+	setarg 0x0100
+	store 2,mem_lpm_interval
+	jam 0x08,mem_lpm_overhead
+	jam 0x05,mem_lpm_mult
+	jam 0x02,mem_lpm_mult_timeout
+	setarg 0x0096
+	store 2,mem_ble_shutter_reconn_blink_on_time
+	istore 2,contw
+	setarg 0x0296
+	store 2,mem_ble_shutter_discovery_blink_on_time
+	istore 2,contw
+	setsect 0,0x10
+	setsect 1,0x8008
+	setsect 2,0x2c000
+	setsect 3,0x04
+	store 8,mem_ble_shutter_interval_min_new
+	jam 0x01,mem_ui_led_struct_num
+	setarg mem_shutter_led_struct_app_led
+	store 2,mem_ui_led_struct_ptr
+	setarg 0x0000
+	store 2,mem_shutter_led_struct_app_led
+	setsect 0,0x1a0
+	setsect 1,0x68
+	setsect 2,0x00
+	setsect 3,0x00
+	store 8,mem_shutter_led_struct_app_led_on_time
+	setarg 0x0301
+	store 2,mem_shutter_power_off_led_style
+	setsect 0,0x1a0
+	setsect 1,0xe8
+	setsect 2,0x00
+	setsect 3,0x00
+	store 8,mem_shutter_power_off_led_style_on_time
+	setarg 0x000e
+	store 2,mem_ble_shutter_reconn_adv_interval
+	setarg 0x0140
+	store 2,mem_ble_shutter_discovery_adv_interval
+	store 2,mem_le_adv_interval
+	setarg 0x0050
+	store 2,mem_ble_shutter_reconn_timeout
+	jam 0x07,mem_le_adv_channel_map
+	jam 0x00,mem_le_adv_enable
+	setsect 0,0xfb
+	setsect 1,0x2c212
+	setsect 2,0x800f
+	setsect 3,0x21
+	store 8,mem_local_rx_max_octets
+	setsect 0,0x0bb8
+	setsect 1,0x02ee
+	store 4,mem_ble_shutter_discovery_timeout
+	setarg mem_queue_each_size
+	store 2,mem_queue_ptr
+	setarg 0x2001
+	store 2,mem_queue_each_size
+	jam 0x1f,mem_le_adv_data_len
+	setsect 0,0x10102
+	setsect 1,0x80c1
+	setsect 2,0x18120
+	setsect 3,0x640c
+	store 9,mem_le_adv_data
+	setsect 0,0x3c1
+	istore 2,contw
+	jam 0x1f,mem_le_scan_data_len
+	setsect 0,0x2090d
+	setsect 1,0x34c15
+	setsect 2,0x28532
+	setsect 3,0x1d1d5
+	store 9,mem_le_scan_data
+	setsect 0,0x26574
+	setsect 1,0x1c
+	istore 3,contw
+	setarg mem_shutter_keyscan
+	store 2,mem_keyscan_ptr
+	jam 0x02,mem_shutter_key_num
+	setarg mem_shutter_nv_data
+	store 2,mem_nv_data_ptr
+	jam 0x05,mem_nv_data_number
+	fetch 1,mem_shutter_dy_conf
+	beq SHUTTER_TYPE,shutter_le_uuid_table_conf
+	beq SHUTTER_DY_TYPE,shutter_dy_le_uuid_table_conf
+	rtn	
+	
+
+
+
+
+
+
+
+
+
+
+shutter_dy_6_key_conf:
+	//6key
+	fetch SHUTTER_SIX_KEY,mem_shutter_dy_key_conf
+	store SHUTTER_SIX_KEY,mem_shutter_key_conf0
+	jam SHUTTER_SIX_KEY,mem_shutter_key_num
+	setarg mem_shutter_key_num
+	store 2,mem_keyscan_ptr
+	rtn
+
+shutter_dy_7_key_conf:
+	//7key
+	fetch SHUTTER_SEVEN_KEY,mem_shutter_dy_key_conf
+	store SHUTTER_SEVEN_KEY,mem_shutter_key_conf0
+	jam SHUTTER_SEVEN_KEY,mem_shutter_key_num
+	setarg mem_shutter_key_num
+	store 2,mem_keyscan_ptr
+	rtn
+
+shutter_dy_8_key_conf:
+	//8key
+	fetch SHUTTER_EIGHT_KEY,mem_shutter_dy_key_conf
+	store SHUTTER_EIGHT_KEY,mem_shutter_key_conf0
+	jam SHUTTER_EIGHT_KEY,mem_shutter_key_num
+	setarg mem_shutter_key_num
+	store 2,mem_keyscan_ptr
+	rtn
+
+shutter_dy_key_conf:
+	fetch 1,mem_shutter_key_num_conf
+	beq SHUTTER_SIX_KEY,shutter_dy_6_key_conf
+	beq SHUTTER_SEVEN_KEY,shutter_dy_7_key_conf
+	beq SHUTTER_EIGHT_KEY,shutter_dy_8_key_conf
+	rtn
+	
+shutter_dy_adv_conf:
+	bpatch patch14_1,mem_patch14
+	//adv data
+	fetch 8,mem_shutter_ble_discovery_time_conf
+	store 8,mem_ble_shutter_discovery_timeout
+	setarg 0x0096
+	store 2,mem_ble_shutter_reconn_timeout
+
+	fetch 7,mem_shutter_led_on_light_dark_led_conf
+	store 7,mem_shutter_led_struct_app_led
+	fetch 7,mem_shutter_led_off_light_dark_led_conf
+	store 7,mem_shutter_power_off_led_style
+	
+	fetch 4,mem_shutter_reconn_blink_on_time_conf
+	store 4,mem_ble_shutter_reconn_blink_on_time
+	fetch 4,mem_shutter_discovery_blink_on_time_conf
+	store 4,mem_ble_shutter_discovery_blink_on_time
+	
+	setarg 0x000e
+	store 2,mem_ble_shutter_reconn_adv_interval
+	setarg 0x0140
+	store 2,mem_ble_shutter_discovery_adv_interval
+	store 2,mem_le_adv_interval
+
+//	setarg mem_shutter_le_uuid_sup	//BLE ATT LIST 
+//	store 2,mem_ui_le_uuid_table
+
+//	call shutter_load_dy_keyvalue_buffer_config_form_DataRom
+
+	fetch 8,mem_ble_shutter_dy_interval_min_new
+	store 8,mem_ble_shutter_interval_min_new
+	rtn
+
+
+
+shutter_dy_init:
+	call enable_authrom
+	rtn wake
+
+	call shutter_dy_key_conf
+	call shutter_dy_adv_conf
+
+
+	setarg shutter_dy_process_idle
+	store 2,mem_cb_idle_process
+		
+	setarg shutter_dy_process_bb_event
+	store 2,mem_cb_bb_event_process
+
+	setarg ble_shutter_dy_receive_data
+	store 2,mem_cb_att_write
+
+	setarg shutter_dy_le_bb_event_timer
+	store 2,mem_cb_event_timer
+
+	setarg shutter_dy_key_change
+	store 2,mem_cb_shutter_keycan
+
+	call shutter_common_init
+	
+	fetch 2,mem_shutter_le_pairing_handle
+ 	store 2,mem_le_pairing_handle
+	fetch 8,mem_ble_shutter_interval_min_new
+	store 8,mem_ble_shutter_interval_min
+	call shutter_dy_iphone_every_move_max_set
+	bpatch patch14_2,mem_patch14
+	branch shutter_power_switch
+
+
+shutter_dy_process_idle:
+	call shutter_dy_shutter_send_data_to_master
+	arg key_scan_timer,queue
+	call timer_check
+	nrtn blank
+	setarg 0x20
+	arg key_scan_timer,queue
+	call timer_init
+	disable user
+	call keyscan_process_lpm_before
+	branch shutter_dy_keyscan_key_process
+
+shutter_dy_iphone_every_move_max_set:	
+	setarg 0x1f
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,rega
+	increase 3,rega
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+	istoret 1,rega
+	increase 11,rega
+	arg 0xfff,pdata
+	isub temp,pdata
+	lshift4 pdata,pdata
+	istore 2,rega
+	rtn
+	
+shutter_dy_shutter_send_data_to_master:	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,shutter_dy_pop_queue_to_ble_data
+	arg mem_queue_curr_num,contw
+	arg 35,loopcnt
+	branch clear_mem
+
+shutter_dy_pop_queue_to_ble_data:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	call queue_empty
+	rtn blank
+	fetcht 4,mem_key_send_clk
+	copy clkn_bt,pdata
+	isub temp,temp
+	rtn zero
+	nbranch shutter_dy_pop_queue_to_ble_data2, positive
+	fetch 1,mem_send_data_delay
+	isub temp,null
+	rtn positive
+shutter_dy_pop_queue_to_ble_data2:
+	copy clkn_bt,pdata
+	store 4,mem_key_send_clk	
+	call queue_pop_one_byte
+	nrtn user
+	pincrease -1
+	mul32 pdata,10,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contr
+	branch le_send_notify_from_list
+
+
+shutter_dy_le_bb_event_timer:
+	call shutter_dy_shutter_1s_timer
+	call shutter_dy_link_key_loop_timer
+	call shutter_dy_long_key_volume_timer
+	call shutter_dy_iphone_move_mid_timer
+	call shutter_dy_clear_key_state_timer
+	call shutter_check_sleep_timer
+	branch shutter_dy_check_power_off_timer
+	
+shutter_dy_iphone_move_mid_timer:
+	arg mem_shutter_move_mid_timer,regc
+	arg shutter_dy_iphone_move_mid_timeout,regb
+	branch timer_single_step
+
+shutter_dy_iphone_move_mid_timeout:
+	call queue_empty
+	nrtn blank
+	fetch 2,mem_key_value_xmem
+	nrtn blank
+shutter_dy_iphone_move_mid:
+	call shutter_dy_check_iphone
+	branch shutter_dy_android_like_loaction_mid,blank
+	copy queue,pdata
+	compare 0x04,pdata,0x07 //SHUTTER_UP_KEY_NUM
+	branch shutter_dy_iphone_up_mid,true
+
+	copy queue,pdata
+	compare 0x01,pdata,0x07 //SHUTTER_LIKE_KEY_NUM
+	branch shutter_dy_iphone_like_mid,true
+	arg mem_shutter_iphone_move_mid,regc
+	branch push_buffer_in_queue
+
+shutter_dy_android_like_loaction_mid:
+	arg mem_shutter_android_move_mid,regc
+	branch push_buffer_in_queue
+
+shutter_dy_iphone_up_mid:
+	arg mem_shutter_iphone_up_mid,regc
+	branch push_buffer_in_queue
+
+shutter_dy_iphone_like_mid:
+	arg mem_shutter_iphone_like_mid,regc
+	branch push_buffer_in_queue
+
+shutter_dy_clear_key_state_timer:
+	arg mem_shutter_like_timeout,regc
+	arg shutter_dy_clear_key_state_timeout,regb
+	branch timer_single_step
+
+shutter_dy_clear_key_state_timeout:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,loopcnt
+	arg mem_shutter_key_state1,contw
+	branch clear_mem
+
+
+shutter_dy_check_power_off_timer:
+	arg mem_shutter_power_off_timer,regc
+	arg shutter_dy_check_power_off_timeout,regb
+	branch timer_single_step
+shutter_dy_check_power_off_timeout:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,shutter_wait_power_off
+	branch app_enter_hibernate
+
+shutter_dy_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,ble_shutter_dy_process_baseband_connect
+	beq BT_EVT_LE_DISCONNECTED,ble_shutter_dy_process_baseband_disconnect
+	beq BT_EVT_LE_PAIRING_SUCCESS,ble_shutter_dy_pairing_success
+	rtneq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP
+	beq BT_EVT_LE_START_ENC,shutter_dy_le_find_service_hand_by_uuid
+	branch shutter_process_bb_event
+
+ble_shutter_dy_pairing_success:
+	jam 1,mem_shutter_pairing_success
+	call shutter_dy_clear_move_config
+//	setarg ANDROID_INITIAL_MOVE_X
+	fetch 2,mem_android_initial_move_x
+	store 2, mem_shutter_move_data_x
+//	arg ANDROID_INITIAL_MOVE_Y,temp
+	fetcht 2,mem_android_initial_move_y
+	setarg 0xfff
+	isub temp,pdata
+	store 2, mem_shutter_move_data_y
+	rtn
+
+ble_shutter_dy_process_baseband_disconnect:
+	jam 0,mem_shutter_le_conned
+	jam 0,mem_shutter_pairing_success
+	call shutter_dy_move_mode_disable
+	call shutter_dy_over_clear
+	branch ble_shutter_process_baseband_disconnect
+	
+ble_shutter_dy_process_baseband_connect:
+	copy clkn_bt,pdata
+	store 4,mem_key_send_clk
+	call shutter_dy_remote_not_iphone
+	branch ble_shutter_process_baseband_connect
+	
+
+shutter_dy_check_send_data:
+	disable user2
+	fetch 2,mem_shutter_sleep_timeout
+	store 2,mem_shutter_sleep_timer
+	call shutter_check_bluetooth_conn
+	branch shutter_change_bluetooth_status_bt_disconn,user
+	call shutter_check_data_enable
+	nrtn user
+	branch enable_user2
+
+shutter_dy_over_clear:
+	jam 0,mem_last_press_key_value
+	rtn
+
+shutter_dy_key_value_filter:
+	copy queue,pdata
+	rtnne SHUTTER_LIKE_KEY_NUM
+	branch shutter_dy_key_press_next
+
+shutter_dy_key_change:
+	call shutter_dy_check_send_data
+	nrtn user2 
+	deposit rega
+	branch shutter_dy_shutter_key_release,blank//no data release
+shutter_dy_key_press:
+	bpatch patch14_3,mem_patch14
+	fetch 1,mem_shutter_link_loop_flag
+	nbranch shutter_dy_key_value_filter,blank
+shutter_dy_key_press_next:
+	jam 1,mem_shutter_key_pressed
+	call app_led_on
+	call shutter_dy_key_press_clk
+	call shutter_dy_jude_queue_size
+	branch shutter_dy_over_clear,positive
+	copy queue,pdata
+	fetcht 1,mem_last_press_key_value
+	isub temp,null
+	ncall shutter_dy_iphone_check_move_mid,zero
+	copy queue,pdata
+	store 1,mem_last_press_key_value
+	fetcht 1,mem_move_mode_key_index
+	isub temp,null
+	branch shutter_dy_key_move_to_specify_location,zero
+	fetch 1,mem_move_mode_trigger_enable
+	nbranch shutter_dy_move_set,blank
+shutter_dy_page_set:
+	call shutter_dy_le_get_press_ptr
+	arg MAX_QUEUE_NEW_PRESS,pdata
+	branch shutter_dy_push_queue_press_or_release
+
+shutter_dy_move_set:
+	call shutter_dy_jude_clear_move_config
+	copy queue,pdata
+	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_page_set
+	call shutter_dy_check_move_data
+	branch shutter_dy_move_to_specify_location
+
+shutter_dy_key_move_to_specify_location:
+	jam 1,mem_shutter_first_move
+	branch shutter_dy_move_to_specify_location
+
+shutter_dy_iphone_check_move_mid:
+	bpatch patch14_4,mem_patch14
+	fetch 1,mem_move_mode_trigger_enable
+	branch shutter_dy_iphone_move_mid,blank
+	copy queue,pdata
+	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_iphone_move_mid
+	rtn
+shutter_dy_key_press_clk:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,pdata
+	imul32 queue,pdata
+	arg mem_shutter_key_state0,regc
+	iadd regc,regc
+	copy clkn_bt,pdata
+	istore KEY_STATE_PRESS_CLK_LENGTH,regc
+	increase KEY_STATE_PRESS_COUNT_OFFSET,regc
+	ifetch 1,regc
+	increase 1,pdata
+	istore 1,regc
+	rtn
+shutter_dy_shutter_key_release:
+	bpatch patch14_5,mem_patch14
+	fetch 1,mem_move_mode_trigger_enable
+	call shutter_dy_key_release_led,blank
+shutter_dy_shutter_key_release_time:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,pdata
+	imul32 queue,pdata
+	arg mem_shutter_key_state0,regc
+	iadd regc,regc
+	ifetcht  4,regc
+	sub temp,0,null
+	rtn zero //already release
+	copy clkn_bt,pdata
+	isub temp,temp
+	ncall ui_timer_timeout,positive
+	add regc,KEY_STATE_LONGPRESS_OFFSET,contr
+	ifetch 1,contr
+	nbranch shutter_dy_push_queue_long_release, blank
+	increase KEY_STATE_RELEASE_CLK_OFFSET,regc
+	copy clkn_bt,pdata
+	istore KEY_STATE_RELEASE_CLK_LENGTH,regc
+	rtn
+
+shutter_dy_key_release_led:
+	fetch 1,mem_shutter_link_loop_flag
+	nbranch app_led_on,blank
+	branch app_led_off
+
+shutter_dy_push_queue_release:
+	add regc,4,contr
+	ifetch 1,contr
+	branch shutter_dy_push_queue_release1
+
+shutter_dy_push_queue_release1:
+	call shutter_clear_dy_key_state
+	fetch 1,mem_move_mode_trigger_enable
+	nbranch shutter_dy_move_mode_queue_release,blank
+shutter_dy_push_queue_release1_next:
+	call shutter_dy_jude_queue_size
+	branch shutter_dy_over_clear,positive
+	call shutter_dy_le_get_release_ptr
+	copy queue,pdata
+	beq SHUTTER_PHOTO_KEY_NUM,shutter_dy_le_get_release_ptr_volume
+	arg MAX_QUEUE_NUM_RELEASE,pdata
+shutter_dy_push_queue_press_or_release:
+	imul32 queue,pdata
+	iadd regc,regc
+	branch push_buffer_in_queue
+
+shutter_dy_move_mode_queue_release:
+	copy queue,pdata
+	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_push_queue_release1_next
+	beq SHUTTER_PHOTO_KEY_NUM,shutter_dy_push_queue_release1_next
+	rtn
+	
+shutter_dy_jude_queue_size:
+	call queue_get_size
+	ifetcht 1,contr
+	isub temp,pdata
+	sub pdata,MAX_QUEUE_NEW_PRESS,null
+	rtn
+	
+shutter_dy_push_queue_long_release:
+	jam 1,mem_shutter_long_key_released_flag
+	call shutter_clear_dy_key_state
+	arg mem_key0_long_release,regc
+	arg MAX_QUEUE_NUM_LONG_RELEASE,pdata
+	branch shutter_dy_push_queue_press_or_release
+	
+shutter_clear_dy_key_state:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,loopcnt
+	copy regc,contw
+	branch clear_mem
+
+shutter_dy_keyscan_key_process:
+	fetch 2,mem_key_value_xmem
+	store 2,mem_key_value_retention
+	call shutter_dy_keyscan_key_process_next
+	fetch 2,mem_key_value_retention
+	store 2,mem_key_value_xmem
+	
+	arg 0,queue
+	fetch 1,mem_shutter_key_num
+	copy pdata,loopcnt
+	arg mem_shutter_key_state0,regc
+shutter_dy_keyscan_key_check_release_loop:	
+	copy loopcnt,pdata
+	store 2,mem_temp
+	copy regc,pdata
+	store 2,mem_regc
+	copy queue,pdata
+	store 2,mem_temp+2
+	call shutter_dy_keyscan_key_check_release
+	
+	fetch 2,mem_regc
+	copy pdata,regc
+	fetch 2,mem_temp+2	
+	copy pdata,queue
+	call shutter_dy_keyscan_key_check_long_press
+	
+	fetch 2,mem_temp+2
+	add pdata,1,queue
+	fetch 2,mem_regc
+	add pdata,SHUTTER_KEY_CONF_SATE_BYTES,regc
+	fetch 2,mem_temp
+	copy pdata,loopcnt
+	loop shutter_dy_keyscan_key_check_release_loop
+	rtn
+	
+shutter_dy_keyscan_key_check_long_press:
+	ifetch KEY_STATE_PRESS_CLK_LENGTH,regc
+	rtn blank
+	copy pdata,temp
+	copy clkn_bt,pdata
+	isub temp,temp	
+	nrtn positive
+	setarg 2500 //1000ms 3200
+	isub temp,null
+	rtn positive
+	copy clkn_bt,pdata
+	istore 4,regc
+	increase KEY_STATE_LONGPRESS_OFFSET,regc
+	setarg 1  //long press flag
+	istore KEY_STATE_LONGPRESS_LENGTH,regc
+	fetch 1,mem_shutter_long_key_released_flag
+	rtn blank
+	jam 0,mem_shutter_long_key_released_flag
+	bpatch patch14_6,mem_patch14
+	call shutter_dy_long_key_function
+	fetch 1,mem_move_mode_set
+	beq MOVE_COMBINE_KEY,shutter_dy_key_long_press_set_key_normal
+	beq MOVE_SINGLE_KEY,shutter_dy_key_long_press_set_move_trigger
+	rtn
+	
+shutter_dy_key_long_press_set_key_normal:
+	call shutter_dy_long_press_android_or_ios
+	arg MAX_QUEUE_NUM_LONG,pdata
+	branch shutter_dy_push_queue_press_or_release
+
+shutter_dy_key_long_press_set_move_trigger:
+	copy queue,pdata
+	fetcht 1,mem_move_mode_key_index
+	isub temp,null
+	nbranch shutter_dy_key_long_press_set_key_normal,zero	
+	fetch 1,mem_move_mode_trigger_enable
+	setflip 0,pdata
+	store 1,mem_move_mode_trigger_enable
+	nrtn blank
+shutter_dy_move_mode_disable:
+	jam 0,mem_move_mode_trigger_enable
+	branch app_led_off
+
+shutter_dy_long_press_android_or_ios:
+	arg mem_key0_long_press,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_key0_long_press_i,regc
+	rtn
+
+shutter_dy_keyscan_key_check_release:
+	add regc,KEY_STATE_RELEASE_CLK_OFFSET,regb
+	ifetch KEY_STATE_RELEASE_CLK_LENGTH,regb
+	rtn blank
+	copy pdata,temp
+	copy clkn_bt,pdata
+	isub temp,temp
+	ncall ui_timer_timeout,positive
+	setarg 1000 //100ms 320
+	isub temp,null
+	branch shutter_dy_push_queue_release
+shutter_dy_keyscan_key_process_next:
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+	rtn blank
+	
+	setarg 0
+	store 2,mem_key_value_temp
+	call keyscan_scan_key
+	nbranch lpm_button_clean_wake_lock,user
+	call lpm_button_get_wake_lock
+	disable user
+	fetch 1,mem_le_adv_enable
+	nrtn blank
+	bpatch patch14_7,mem_patch14
+	fetch 1,mem_move_mode_set
+	beq MOVE_SINGLE_KEY,shutter_dy_skip_check_combine_key
+	call shutter_dy_check_combine_key_release
+	call shutter_dy_check_combine_key	
+	rtn user
+shutter_dy_skip_check_combine_key:
+	call shutter_dy_single_key_led
+	fetch 2,mem_key_value_temp
+	store 2,mem_key_value_temp4
+	jam 0,mem_key_value_temp6
+	force 0,queue
+	branch keyscan_key_lp1
+
+shutter_dy_single_key_led:
+	fetch 1,mem_last_press_key_value
+	fetcht 1,mem_move_mode_key_index
+	isub temp,null
+	branch app_led_on,zero
+	fetch 1,mem_move_mode_trigger_enable
+	nbranch app_led_off,blank
+	rtn
+
+shutter_dy_check_combine_key:
+	arg 0,queue
+shutter_dy_check_combine_key_loop:
+	arg mem_combine_key0,regb
+	arg 2,pdata
+	imul32 queue,pdata
+	iadd regb,regb
+	ifetch 2,regb
+	
+	rtn blank
+	fetcht 2,mem_key_value_temp
+	ixor temp,null
+	branch shutter_dy_check_combine_key_parse,zero
+	increase 1,queue
+	branch shutter_dy_check_combine_key_loop
+	
+shutter_dy_check_combine_key_parse:
+	store 2,mem_combine_key_state0	
+	call app_led_on
+	arg mem_combine_key0_press,regc
+	arg MAX_QUEUE_NUM_COMBINEKEY,pdata
+	imul32 queue,pdata
+	iadd regc,regc
+	call shutter_dy_push_buffer_in_queue
+	branch shutter_dy_combine_key_enableuser
+	
+shutter_dy_push_buffer_in_queue:
+	call shutter_dy_jude_clear_move_config
+	ifetch 1,regc
+	rtn blank
+	call shutter_dy_check_move_data
+shutter_dy_move_to_specify_location:
+	call shutter_dy_jude_clear_move_config
+	call shutter_dy_move_down_left_corner
+	call shutter_dy_move_x_max
+	call shutter_dy_move_y_max
+	arg 0x05,pdata
+	call queue_push_one_byte
+	call shutter_dy_check_iphone
+	rtn blank
+	jam 120,mem_send_data_delay
+	arg 0x06,pdata
+	branch queue_push_one_byte
+
+shutter_dy_move_down_left_corner_count_set:
+	fetcht 1,mem_shutter_back_count
+	call shutter_dy_check_iphone
+	rtn blank
+	fetcht 1,mem_shutter_iphone_beyond_y_count
+	increase 1,temp
+	fetch 1,mem_shutter_first_move
+	rtn blank
+	fetcht 1,mem_shutter_back_count
+	jam 0,mem_shutter_first_move
+	rtn
+
+shutter_dy_move_down_left_corner:
+	call shutter_dy_move_down_left_corner_count_set
+	copy temp,pdata
+	rtn blank
+	store 1,mem_shutter_back_count_cache
+shutter_dy_move_down_left_corner_loop:
+	arg 0x13,pdata
+	call queue_push_one_byte
+	fetch 1,mem_shutter_back_count_cache
+	increase -1,pdata
+	store 1,mem_shutter_back_count_cache
+	rtn blank
+	branch shutter_dy_move_down_left_corner_loop
+
+shutter_dy_move_x_max:
+	fetch 1,mem_shutter_iphone_beyond_x_count
+	rtn blank
+	store 1,mem_shutter_iphone_beyond_x_cache
+shutter_dy_move_x_max_number:
+	arg 0x20,pdata
+	call queue_push_one_byte
+	fetch 1,mem_shutter_iphone_beyond_x_cache
+	increase -1,pdata
+	store 1,mem_shutter_iphone_beyond_x_cache
+	rtn blank
+	branch shutter_dy_move_x_max_number
+
+shutter_dy_move_y_max:
+	fetch 1,mem_shutter_iphone_beyond_y_count
+	rtn blank
+	store 1,mem_shutter_iphone_beyond_y_cache
+shutter_dy_move_y_max_number:
+	arg 0x21,pdata
+	call queue_push_one_byte
+	fetch 1,mem_shutter_iphone_beyond_y_cache
+	increase -1,pdata
+	store 1,mem_shutter_iphone_beyond_y_cache
+	rtn blank
+	branch shutter_dy_move_y_max_number
+
+shutter_dy_check_combine_key_release:
+	fetch 2,mem_combine_key_state0
+	rtn blank
+	fetcht 2,mem_key_value_temp
+	sub temp,0,null
+	branch shutter_dy_check_combine_key_release_all,zero
+	isub temp,null
+	rtn zero
+	storet 2,mem_combine_key_state0
+	fetch 2,mem_combine_key_release_value
+	isub temp,null
+	call app_led_off,zero
+shutter_dy_combine_key_enableuser:
+	fetch 2,mem_key_value_temp
+	store 2, mem_key_value_retention
+	branch enable_user
+shutter_dy_check_combine_key_release_all:
+	jam 1,mem_shutter_long_key_released_flag
+	call app_led_off
+	arg mem_combine_key_release,regc
+	call shutter_dy_push_buffer_in_queue
+	setarg 0
+	store 2,mem_combine_key_state0
+	jam 50,mem_shutter_1s_timer
+	call shutter_dy_combine_key_enableuser
+	fetch 1,mem_shutter_key_num
+	mul32 pdata,SHUTTER_KEY_CONF_SATE_BYTES,loopcnt
+	arg mem_shutter_key_state0,contw
+	branch clear_mem
+shutter_dy_check_move_data:
+	bpatch patch15_0,mem_patch15
+	fetch 1,mem_move_mode_set
+	beq MOVE_SINGLE_KEY,shutter_dy_check_move_data_single_key
+	beq MOVE_COMBINE_KEY,shutter_dy_check_move_data_combine_key
+	rtn
+shutter_dy_check_move_data_single_key:
+	copy queue,pdata
+	beq SHUTTER_LEFT_KEY_NUM,shutter_dy_move_left
+	beq SHUTTER_RIGHT_KEY_NUM,shutter_dy_move_right
+	beq SHUTTER_UP_KEY_NUM,shutter_dy_move_up
+	beq SHUTTER_DOWN_KEY_NUM,shutter_dy_move_down
+	rtn
+shutter_dy_check_move_data_combine_key:
+	ifetch 1,regc
+	beq 0x01,shutter_dy_move_left
+	beq 0x02,shutter_dy_move_right
+	beq 0x03,shutter_dy_move_up
+	beq 0x04,shutter_dy_move_down
+	beq 0x05,shutter_dy_get_move_data
+	rtn
+shutter_dy_get_move_data:
+	call shutter_dy_check_iphone
+	nbranch shutter_dy_get_move_data_iphone,blank
+	setarg 4
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contw
+	increase 3,contw
+	fetch 3,mem_shutter_move_data
+	istore 3,contw
+	rtn
+shutter_dy_get_move_data_iphone:
+	setarg 4
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contw
+	increase 3,contw
+	fetch 2,mem_shutter_move_data_x
+	istore 3,contw
+	increase 7,contw
+	fetch 2,mem_shutter_move_data_y
+	lshift4 pdata,pdata
+	lshift8 pdata,pdata
+	istore 3,contw
+	rtn
+	//branch p_store_move_config_info
+shutter_dy_move_x_empty_check:
+	fetch 1,mem_shutter_iphone_beyond_x_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_shutter_iphone_beyond_x_count
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,pdata
+	rtn
+shutter_dy_every_move_size_set:
+	arg ANDROID_EVERY_MOVE_SIZE,temp
+	call shutter_dy_check_iphone
+	rtn blank
+	arg IPHONE_EVERY_MOVE_SIZE,temp
+	rtn
+shutter_dy_move_left:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_x
+	isub temp,null
+	ncall shutter_dy_move_x_empty_check,positive
+	nrtn positive//if move_x to zero,rtn
+	isub temp,pdata
+shutter_dy_move_store_x:
+	store 2,mem_shutter_move_data_x
+shutter_dy_move_data_store:
+	bpatch patch15_1,mem_patch15
+	fetch 2,mem_shutter_move_data_x
+	fetcht 2,mem_shutter_move_data_y
+	lshift8 temp,temp
+	lshift4 temp,temp
+	iadd temp,pdata
+	store 3,mem_shutter_move_data
+	branch shutter_dy_get_move_data
+shutter_dy_move_x_check_max:
+	fetch 2,mem_shutter_move_data_x
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+	isub temp,temp
+	nrtn positive
+	copy temp,pdata
+	fetcht 1,mem_shutter_iphone_beyond_x_count
+	sub temp,0x03,null
+	branch shutter_dy_clear_move_x,zero
+	increase 1,temp
+	storet 1,mem_shutter_iphone_beyond_x_count
+	branch shutter_dy_move_store_x
+shutter_dy_clear_move_x:
+	jam 0,mem_shutter_iphone_beyond_x_count
+	arg 0,pdata
+	branch shutter_dy_move_store_x
+shutter_dy_move_right:
+	call shutter_dy_check_iphone
+	ncall shutter_dy_move_x_check_max,blank
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_x
+shutter_dy_move_right_next:
+	iadd temp,pdata
+	arg 0xfff,temp
+	call ceiling
+	branch shutter_dy_move_store_x
+	
+shutter_dy_move_up:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+	isub temp,pdata
+	store 2,mem_shutter_move_data_y
+shutter_dy_move_y_check_max:
+	fetcht 2,mem_shutter_move_data_y
+	call shutter_dy_check_iphone
+	branch shutter_dy_move_data_store,blank
+	setarg 0xfff
+	isub temp,pdata
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+	isub temp,temp
+	nbranch shutter_dy_move_data_store, positive
+	setarg 0xfff
+	isub temp,pdata
+	fetcht 1,mem_shutter_iphone_beyond_y_count
+	sub temp,0x05,null
+	branch shutter_dy_clear_move_y,zero
+	increase 1,temp
+	storet 1,mem_shutter_iphone_beyond_y_count
+	branch shutter_dy_move_store_y
+shutter_dy_clear_move_y:
+	jam 0,mem_shutter_iphone_beyond_y_count
+shutter_dy_android_move_y_empty_check:
+	setarg 0xfff
+	branch shutter_dy_move_store_y
+	
+shutter_dy_move_y_empty_check:
+	call shutter_dy_check_iphone
+	branch shutter_dy_android_move_y_empty_check,blank
+	fetch 1,mem_shutter_iphone_beyond_y_count
+	branch shutter_dy_android_move_y_empty_check, blank
+	increase -1,pdata
+	store 1,mem_shutter_iphone_beyond_y_count
+	setarg 0xfff
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+	isub temp,pdata
+	iadd rega,pdata
+shutter_dy_move_store_y:	
+	store 2,mem_shutter_move_data_y
+	branch shutter_dy_move_data_store
+shutter_dy_move_down:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+shutter_dy_move_down_next:
+	iadd temp,pdata
+	arg 0xfff,temp
+	isub temp,rega
+	branch shutter_dy_move_y_empty_check,positive
+	branch shutter_dy_move_store_y
+	
+
+ble_shutter_dy_receive_data:
+	fetch 2,mem_le_att_handle
+	beq GATT_KEYBOARD_WRITE_HANDLE_NEW,ble_shutter_process_reconnect_complete
+	rtn
+
+shutter_dy_le_find_service_hand_by_uuid: 
+	arg 23,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	istore 1,contw
+	setarg 0x0001		//start handle
+	istore 2,contw
+	setarg 0xffff		//end handle
+	istore 2,contw
+	setarg 0x2800		//uuid type
+	istore 2,contw
+	arg mem_dy_le_search_service_uuid,contr
+	branch memcpy16
+
+
+shutter_dy_le_parse_att:
+	bpatch patch15_2,mem_patch15
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,shutter_dy_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_ERROR_RESPONSE,shutter_dy_le_parse_error_rsp
+	beq ATTOP_READ_REQUEST,shutter_dy_le_parse_att_read_request
+	beq ATTOP_READ_BLOB_REQUEST,shutter_dy_le_parse_att_read_blob_request
+	branch le_parse_att2
+
+shutter_dy_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	call shutter_dy_check_iphone
+	nbranch shutter_dy_le_parse_att_read_blob_request_ios,blank
+	fetcht 2,mem_shutter_le_map_len_android
+	branch shutter_dy_le_parse_att_read_blob_request2
+	
+shutter_dy_le_parse_att_read_blob_request_ios:
+	fetcht 2,mem_shutter_le_map_len_ios
+shutter_dy_le_parse_att_read_blob_request2:
+	arg mem_shutter_le_hid_map,contr
+	call store_contr
+	copy temp,pdata
+	isub rega,pdata
+	nbranch le_send_att_error_response_notfound,positive
+	increase 1,pdata
+	sub pdata,23,null
+	branch le_send_att_read_blob_response_less,positive
+	force 23,pdata
+	branch le_send_att_read_blob_response_less
+
+shutter_dy_le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,shutter_dy_le_send_att_read_response_check_auth
+	branch le_send_att_read_response
+shutter_dy_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	call le_check_encrypt_state
+	nbranch shutter_dy_le_send_att_read_response,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+shutter_dy_le_send_att_read_response:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	arg mem_shutter_le_hid_map,contr
+	force 23,pdata
+	branch le_send_att_read_response_less
+
+shutter_dy_le_parse_att_find_by_type_value_rsp:
+shutter_dy_le_remote_iphone:
+	bpatch patch15_3,mem_patch15
+	jam 5,mem_shutter_back_count
+	jam 1,mem_iphone_flag
+	jam 1,mem_last_shutter_le_iphone_flag
+	jam 240,mem_send_data_delay
+	jam 10,mem_shutter_move_mid_timer
+	jam 1,mem_shutter_first_move
+	call shutter_dy_load_move_config_info
+	fetch 1,mem_shutter_pairing_success
+	rtn blank
+	call shutter_dy_clear_move_config
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+//	setarg IPHONE_INITIAL_MOVE_X
+	fetch 2,mem_iphone_initial_move_x
+	arg mem_shutter_move_data_x,rega
+	arg mem_shutter_iphone_beyond_x_count,regb
+	call shutter_dy_iphone_move_initial_set
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+//	setarg IPHONE_INITIAL_MOVE_Y
+	fetch 2,mem_iphone_initial_move_y
+	arg mem_shutter_move_data_y,rega
+	arg mem_shutter_iphone_beyond_y_count,regb
+	call shutter_dy_iphone_move_initial_set
+	setarg 0xfff
+	fetcht 2,mem_shutter_move_data_y
+	isub temp,pdata
+	store 2,mem_shutter_move_data_y
+	rtn
+shutter_dy_iphone_move_initial_set:
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	remainder temp
+	istore 1,regb
+	istoret 2,rega
+	rtn
+shutter_dy_le_parse_error_rsp:
+	increase -2,contr
+	ifetch 1,contr
+	beq ATTOP_FIND_BY_TYPE_VALUE_REQUEST,shutter_dy_not_iphone_read_conf
+	rtn
+shutter_dy_remote_not_iphone:
+	jam 1,mem_shutter_back_count
+	jam 0,mem_iphone_flag
+	jam 0,mem_last_shutter_le_iphone_flag
+	jam 10,mem_send_data_delay
+	rtn
+
+shutter_dy_not_iphone_read_conf:
+	call shutter_dy_remote_not_iphone
+	branch shutter_dy_load_move_config_info
+	
+shutter_dy_check_iphone:
+	fetch 1,mem_iphone_flag
+	rtn
+
+
+shutter_dy_le_get_press_ptr:	
+	arg mem_dy_key0_press,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	jam 120,mem_send_data_delay
+	arg mem_key0_press_i,regc
+	rtn
+shutter_dy_le_get_release_ptr:	
+shutter_dy_le_get_release_ptr_set:
+	arg mem_key0_release_new,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_key0_release_new_i,regc
+	jam 12,mem_send_data_delay
+	copy queue,pdata
+	rtneq SHUTTER_LIKE_KEY_NUM
+	rtn
+shutter_dy_le_get_release_ptr_volume:
+	bpatch patch15_4,mem_patch15
+	fetch 1,mem_key3_press_count
+	setflip 0,pdata
+	store 1,mem_key3_press_count
+	beq 0,shutter_dy_le_get_release_ptr_set_volume_inc
+	beq 1,shutter_dy_le_get_release_ptr_set_volume_dec
+	rtn
+shutter_dy_le_get_release_ptr_set_volume_dec:
+	call shutter_dy_le_get_vol_dec_ptr
+	branch push_buffer_in_queue
+shutter_dy_le_get_release_ptr_set_volume_inc:
+	call shutter_dy_le_get_vol_inc_ptr
+	branch push_buffer_in_queue
+shutter_dy_le_get_vol_inc_ptr:
+	arg mem_key3_release_new,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_key3_release_new_i,regc
+	rtn
+shutter_dy_le_get_vol_dec_ptr:
+	arg mem_key3_release_new_t,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_key3_release_new_i_t,regc
+	rtn
+
+
+shutter_dy_long_key_function:
+	copy queue,pdata
+	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_link_key_long_press
+	beq SHUTTER_DOWN_KEY_NUM,shutter_dy_loop_send_volume_dec_page
+	beq SHUTTER_UP_KEY_NUM,shutter_dy_loop_send_volume_inc_page
+	rtn
+
+//volume timer
+shutter_dy_long_key_volume_timer:
+	arg mem_shutter_volume_timer,regc
+	arg shutter_dy_long_key_volume_timeout,regb
+	branch timer_single_step
+shutter_dy_long_key_volume_timeout:
+	jam 4, mem_shutter_volume_timer
+	fetch 1,mem_key3_press_count
+	branch shutter_dy_loop_send_volume_inc_page,blank
+	branch shutter_dy_loop_send_volume_dec_page
+	
+
+shutter_dy_loop_send_volume_inc_page:
+	jam 0,mem_key3_press_count
+	jam 4, mem_shutter_volume_timer
+	arg mem_key4_long_press,regc
+	branch push_buffer_in_queue
+
+shutter_dy_loop_send_volume_dec_page:
+	jam 1,mem_key3_press_count
+	jam 4, mem_shutter_volume_timer
+	arg mem_key2_long_press,regc
+	branch push_buffer_in_queue
+shutter_dy_clear_volume_timer:
+	jam 0,mem_key3_press_count
+	jam 0, mem_shutter_volume_timer
+	rtn
+
+//link timer
+shutter_dy_link_key_loop_timer:
+	arg mem_shutter_link_timer,regc
+	arg shutter_dy_link_key_loop_timeout,regb
+	branch timer_single_step
+shutter_dy_link_key_loop_timeout:
+	jam 2, mem_shutter_link_timer
+	call shutter_dy_link_data_android_or_ios
+	branch push_buffer_in_queue
+
+shutter_dy_link_data_android_or_ios:
+	arg mem_shutter_link_data,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_shutter_link_data_i,regc
+	rtn
+
+shutter_dy_link_key_long_press:
+	fetch 1,mem_shutter_link_loop_flag
+	nbranch shutter_dy_clear_link_key_timer,blank
+	jam 1,mem_shutter_link_loop_flag
+	jam 2, mem_shutter_link_timer
+	rtn
+	
+shutter_dy_clear_link_key_timer:
+	jam 0,mem_shutter_link_loop_flag
+	jam 0, mem_shutter_link_timer
+	rtn
+
+shutter_dy_jude_clear_move_config:
+	fetch 1,mem_shutter_le_conned
+	nrtn blank
+	jam 1,mem_shutter_le_conned
+	branch shutter_dy_move_data_store
+
+shutter_dy_clear_move_config:
+	setarg 0
+	store 7,mem_move_config
+	rtn
+
+shutter_dy_write_otp_convert_data:
+	call shutter_dy_check_iphone
+	beq 0x01,shutter_dy_store_ios_config_data
+	beq 0x00,shutter_dy_store_android_config
+	rtn
+
+shutter_dy_read_otp_convert_data:
+	fetch 1,mem_otp_last_shutter_le_iphone_flag	//鍒ゆ柇鏄惁鏄疘OS
+	beq 0x01,shutter_dy_get_ios_config
+	beq 0x00,shutter_dy_get_android_config
+	rtn
+
+shutter_dy_store_ios_config_data:
+	fetch 1,mem_shutter_iphone_beyond_x_count
+	mul32 pdata,IPHONE_ONCE_MAX_MOVE_VALUE,pdata
+	copy pdata,temp
+	fetch 2,mem_shutter_move_data_x
+	iadd temp,pdata	//pdata = pdata+temp
+	store 2,mem_otp_shutter_move_data_x
+
+	fetch 1,mem_shutter_iphone_beyond_y_count
+	mul32 pdata,IPHONE_ONCE_MAX_MOVE_VALUE,pdata
+	copy pdata,temp
+	fetch 2,mem_shutter_move_data_y
+	copy pdata,rega
+	setarg 0xfff
+	isub rega,pdata	//pdata = pdata-rega
+	iadd temp,pdata	//pdata = pdata+temp
+	store 2,mem_otp_shutter_move_data_y
+
+	call shutter_dy_check_iphone
+//	fetch 1,mem_last_shutter_le_iphone_flag
+	store 1,mem_otp_last_shutter_le_iphone_flag
+	rtn
+
+shutter_dy_store_android_config:
+	fetch 2,mem_shutter_move_data_x
+	store 2,mem_otp_shutter_move_data_x
+	fetch 2,mem_shutter_move_data_y
+	store 2,mem_otp_shutter_move_data_y
+	call shutter_dy_check_iphone
+	store 1,mem_otp_last_shutter_le_iphone_flag
+	rtn
+shutter_dy_get_ios_config:
+	fetch 2,mem_otp_shutter_move_data_x
+	div pdata,IPHONE_ONCE_MAX_MOVE_VALUE
+	call wait_div_end
+	quotient pdata
+	remainder temp
+	store 1,mem_shutter_iphone_beyond_x_count
+	copy temp,pdata
+	store 2,mem_shutter_move_data_x
+	fetch 2,mem_otp_shutter_move_data_y
+	div pdata,IPHONE_ONCE_MAX_MOVE_VALUE
+	call wait_div_end
+	quotient pdata
+	remainder temp
+	store 1,mem_shutter_iphone_beyond_y_count
+	//copy temp,pdata
+	setarg 0xfff
+	isub temp,pdata	//pdata = pdata-temp
+	store 2,mem_shutter_move_data_y
+//	fetch 1,mem_otp_last_shutter_le_iphone_flag
+//	store 1,mem_last_shutter_le_iphone_flag
+	rtn
+shutter_dy_get_android_config:
+	fetch 2,mem_otp_shutter_move_data_x
+	store 2,mem_shutter_move_data_x
+	fetch 2,mem_otp_shutter_move_data_y
+	store 2,mem_shutter_move_data_y
+//	fetch 1,mem_otp_last_shutter_le_iphone_flag
+//	store 1,mem_last_shutter_le_iphone_flag
+	rtn
+	
+shutter_dy_store_move_config_info:
+	branch shutter_dy_campare_effective_addr_write_otp
+
+shutter_dy_load_move_config_info:
+	branch shutter_dy_campare_effective_addr_read_otp
+
+//寰幆鎵炬暟鎹紝鍒ゆ柇鏄惁涓虹┖鏁版嵁
+shutter_dy_shutter_uart_config_loop:
+	call shutter_dy_update_read_check_addr
+	fetch 2,mem_otp_read_offset_addr
+	call shutter_dy_shutter_read_move_config_from_otp_addr
+	jam 0,mem_shutter_first_read_flag
+	fetch 5,mem_otp_move_config
+	jam 0,mem_shutter_valid_data_flag
+	jam 0,mem_shutter_temp_count
+	call shutter_dy_campare_otp_data
+	fetch 1,mem_shutter_temp_count
+	rtneq 0
+	branch shutter_dy_shutter_uart_config_loop
+
+//绗竴娆′粠0x1fe0澶勫線鍓嶈
+shutter_dy_shutter_get_first_read_addr:
+//	setarg SHUTTER_EFUSE_START_OFFECT
+	fetch 2,mem_shutter_efuse_start_offset
+	increase -5,pdata
+	store 2,mem_otp_read_offset_addr
+	rtn
+
+//涓嬫璇伙紝鏇存柊mem_otp_read_offset_addr 鍦板潃
+shutter_dy_shutter_next_read_addr:
+	fetch 2,mem_otp_read_offset_addr
+	increase -5,pdata
+	store 2,mem_otp_read_offset_addr
+	rtn
+
+//涓婃璇伙紝鏇存柊mem_otp_read_offset_addr 鍦板潃
+shutter_dy_shutter_last_read_addr:
+	fetch 2,mem_otp_read_offset_addr
+	pincrease 5
+	store 2,mem_otp_read_offset_addr
+	rtn
+
+shutter_dy_shutter_read_ios_android_addr:
+	fetch 2,mem_otp_read_ios_android_addr
+	pincrease 5
+	store 2,mem_otp_read_ios_android_addr
+	//妫鏌ュ湪鍖洪棿鍐
+	fetch 2,mem_otp_read_ios_android_addr
+	copy pdata, temp
+//	setarg SHUTTER_EFUSE_START_OFFECT
+	fetch 2,mem_shutter_efuse_start_offset
+	isub temp,pdata	//pdata = pdata-temp
+	arg SHUTTER_PARA_TOTAL_NUM,temp	//temp = 5
+	isub temp,null	//pdata = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
+//	nrtn positive
+	nbranch shutter_dy_shutter_not_find_ios_or_android,positive
+	rtn
+
+shutter_dy_update_read_check_addr:
+	fetch 1,mem_shutter_first_read_flag	//绗1娆¤鏍囪瘑
+	beq 0x01,shutter_dy_shutter_get_first_read_addr
+	beq 0x00,shutter_dy_shutter_next_read_addr
+	rtn
+	
+//姣旇緝鏁版嵁锛屽垽鏂槸鍚︿负0
+shutter_dy_campare_otp_data:
+	arg 0x0,regb
+	copy regb, temp
+	fetch 2,mem_otp_shutter_move_data_x
+	icompare 0xffff,temp
+//	isub temp,pdata	//pdata = pdata-temp
+	ncall shutter_dy_set_shutter_valid_data_flag,true
+	arg 0x0,regb
+	copy regb, temp
+	fetch 2,mem_otp_shutter_move_data_y
+	icompare 0xffff,temp
+	ncall shutter_dy_set_shutter_valid_data_flag,true
+	arg 0x0,regb
+	copy regb, temp
+	fetch 1,mem_otp_last_shutter_le_iphone_flag
+	icompare 0xff,temp
+	ncall shutter_dy_set_shutter_valid_data_flag,true
+	rtn
+
+//mem_shutter_temp_count +1 鎿嶄綔
+shutter_dy_set_shutter_valid_data_flag:
+	fetch 1,mem_shutter_temp_count
+	pincrease 1
+	store 1,mem_shutter_temp_count
+	rtn
+shutter_dy_shutter_judge_ios_or_android:
+	jam 1,mem_shutter_temp_count
+	call shutter_dy_shutter_read_ios_android_addr
+	fetch 2,mem_otp_read_ios_android_addr
+	call shutter_dy_shutter_read_move_config_from_otp_addr
+	call shutter_dy_check_iphone
+	copy pdata, temp
+	fetch 1,mem_otp_last_shutter_le_iphone_flag
+	icompare 0xff,temp
+	call shutter_dy_clear_temp_count,true
+	
+	fetch 1,mem_shutter_temp_count
+	rtneq 0
+	branch shutter_dy_shutter_judge_ios_or_android
+
+
+shutter_dy_shutter_not_find_ios_or_android:
+	bpatch patch15_5,mem_patch15
+	call shutter_dy_clear_temp_count
+	call shutter_dy_check_iphone
+	branch shutter_dy_shutter_android_save_init_loaction,blank
+	branch shutter_dy_shutter_ios_save_init_loaction
+shutter_dy_shutter_android_save_init_loaction:
+//	setarg ANDROID_INITIAL_MOVE_X
+	fetch 2,mem_android_initial_move_x
+	store 2, mem_shutter_move_data_x
+//	arg ANDROID_INITIAL_MOVE_Y,temp
+	fetcht 2,mem_android_initial_move_y
+	setarg 0xfff
+	isub temp,pdata
+	store 2, mem_shutter_move_data_y
+	branch shutter_dy_store_move_config_info
+	
+shutter_dy_shutter_ios_save_init_loaction:
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+//	setarg IPHONE_INITIAL_MOVE_X
+	fetch 2,mem_iphone_initial_move_x
+	arg mem_shutter_move_data_x,rega
+	arg  mem_shutter_iphone_beyond_x_count,regb
+	call shutter_dy_iphone_move_initial_set
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+//	setarg IPHONE_INITIAL_MOVE_Y
+	fetch 2,mem_iphone_initial_move_y
+	arg mem_shutter_move_data_y,rega
+	arg  mem_shutter_iphone_beyond_y_count,regb
+	call shutter_dy_iphone_move_initial_set
+	setarg 0xfff
+	fetcht 2,mem_shutter_move_data_y
+	isub temp,pdata
+	store 2,mem_shutter_move_data_y
+	branch shutter_dy_store_move_config_info
+	
+shutter_dy_clear_temp_count:
+	jam 0,mem_shutter_temp_count
+	rtn
+//鍙栨湁鏁堝湴鍧缁檓em_otp_write_offset_addr
+shutter_dy_campare_effective_addr_read_otp:
+	bpatch patch15_6,mem_patch15
+	jam 1,mem_shutter_first_read_flag
+	call shutter_dy_shutter_uart_config_loop
+	//鑾峰緱浜嗗湴鍧
+	//鏍￠獙鏄惁鏄秺鐣
+//	setarg SHUTTER_EFUSE_END_OFFECT
+	fetch 2,mem_shutter_efuse_end_offset
+	copy pdata, temp
+	fetch 2,mem_otp_read_offset_addr
+	isub temp,pdata	//pdata = pdata-temp
+	arg 0x0,temp	//temp = 0
+	isub temp,null	//null = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
+	nrtn positive
+	fetch 2,mem_otp_read_offset_addr
+	copy pdata, temp
+//	setarg SHUTTER_EFUSE_START_OFFECT
+	fetch 2,mem_shutter_efuse_start_offset
+	increase -5,pdata
+	isub temp,pdata	//pdata = pdata-temp
+	//璇讳笂涓娆″湴鍧
+//	ncall p_shutter_last_read_addr,zero
+	fetch 2,mem_otp_read_offset_addr
+	store 2,mem_otp_read_ios_android_addr
+	call shutter_dy_shutter_judge_ios_or_android
+	fetch 2,mem_otp_read_ios_android_addr
+	ncall shutter_dy_shutter_read_move_config_from_otp_addr,zero
+	
+	//妫鏌ヤ负0鍒欎笉璧嬪
+	jam 0,mem_shutter_temp_count
+	call shutter_dy_campare_otp_data
+	fetch 1,mem_shutter_temp_count
+	rtneq 0
+	branch shutter_dy_read_otp_convert_data
+	
+//鍙栨湁鏁堝湴鍧缁檓em_otp_write_offset_addr
+shutter_dy_campare_effective_addr_write_otp:
+	bpatch patch15_7,mem_patch15
+	jam 1,mem_shutter_first_read_flag
+	call shutter_dy_shutter_uart_config_loop
+	//鑾峰緱浜嗗湴鍧
+	//鏍￠獙鏄惁鏄秺鐣
+//	setarg SHUTTER_EFUSE_END_OFFECT
+	fetcht 2,mem_shutter_efuse_end_offset
+//	copy pdata, temp
+	fetch 2,mem_otp_read_offset_addr
+	isub temp,pdata	//pdata = pdata-temp
+	arg 0x0,temp	//temp = 0
+	isub temp,null	//pdata = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
+	nrtn positive
+	//妫鏌ュ湪鍖洪棿鍐
+	fetcht 2,mem_otp_read_offset_addr
+//	setarg SHUTTER_EFUSE_START_OFFECT
+	fetch 2,mem_shutter_efuse_start_offset
+	isub temp,pdata	//pdata = pdata-temp
+	arg 0x0,temp	//temp = 0
+	isub temp,null	//pdata = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
+	nrtn positive
+	fetch 2,mem_otp_read_offset_addr
+	store 2,mem_otp_write_offset_addr
+	call shutter_dy_write_otp_convert_data
+
+	branch shutter_dy_shutter_write_move_config_to_otp_addr
+
+
+shutter_dy_shutter_read_move_config_from_otp_addr:
+	bpatch patch16_0,mem_patch16
+	copy pdata,regb
+	arg SHUTTER_PARA_TOTAL_NUM,loopcnt
+//	fetch 2,mem_otp_read_offset_addr
+	arg mem_otp_move_config,rega
+	branch otp_read_data
+
+
+shutter_dy_shutter_write_move_config_to_otp_addr:
+	arg SHUTTER_PARA_TOTAL_NUM,loopcnt
+	arg mem_otp_move_config,rega
+	fetchr regb, 2, mem_otp_write_offset_addr
+	branch otp_write
+
+shutter_dy_shutter_1s_timer:
+	arg mem_shutter_1s_timer,regc
+	arg shutter_dy_store_move_config_info,regb
+	branch timer_single_step
+
+
+
+
+	
+
+
+
+
+//regc: read buffer
+//loopcnt: (length)
+//mem_adv_CRC_False_initValue: 鍒濆煎拰鏈缁堢粨鏋
+//mem_CRC16_polynomial:澶氶」寮
+p_CRC16_CCITT_False:
+	fetch 2, mem_adv_CRC_False_initValue //pdata crc
+	
+p_CRC16_CCITT_False_loop:
+	ifetcht 1, regc
+	increase 1, regc
+	lshift8 temp, temp
+	ixor temp,pdata
+	
+p_CRC16_for_byte:
+	copy loopcnt,regb		
+	arg 8,loopcnt
+p_CRC16_for_byte_loop:
+	isolate1 15,pdata
+	lshift pdata,pdata
+	nbranch p_CRC16_for_byte_continue,true
+	fetcht 2, mem_CRC16_polynomial
+	ixor temp,pdata
+p_CRC16_for_byte_continue:
+	loop p_CRC16_for_byte_loop
+	copy regb,loopcnt
+	
+	loop p_CRC16_CCITT_False_loop
+	store 2,mem_adv_CRC_False_initValue
+	rtn
+
+// Rf debug
+
+
+rf_debug_rx_gpio_low:
+	fetch 1,mem_rf_debug_rx_gpio
+rf_debug_gpio_low:
+	arg gpcfg_output_low,temp
+	branch gpio_config_function
+
+rf_debug_rx_on_line:
+rf_debug_rx_gpio_high:
+	fetch 1,mem_rf_debug_rx_gpio
+rf_debug_gpio_high:
+	arg gpcfg_output_high,temp
+	branch gpio_config_function
+
+rf_debug_rx_gpio_h_l_h:
+	call rf_debug_rx_gpio_high
+rf_debug_rx_gpio_l_h:
+	call rf_debug_rx_gpio_low
+	branch rf_debug_rx_gpio_high
+
+rf_debug_rx_gpio_l_h_l:
+rf_debug_shutdown_radio_line:
+	call rf_debug_rx_gpio_l_h
+rf_debug_rx_crc_line:
+	branch rf_debug_rx_gpio_low
+
+rf_debug_rx_sync_line:
+	branch rf_debug_rx_gpio_l_h
+
+rf_debug_rx_crc_fail_line:
+	call rf_debug_rx_gpio_l_h
+	branch rf_debug_rx_gpio_l_h_l
+
+rf_debug_rx_match_line:
+rf_debug_rx_crc_error_line:
+rf_debug_rx_sync_timeout_line:
+	branch rf_debug_rx_gpio_low
+
+
+rf_debug_tx_off_line:
+rf_debug_tx_gpio_low:
+	fetch 1,mem_rf_debug_tx_gpio
+	branch rf_debug_gpio_low
+
+rf_debug_tx_on_line:
+rf_debug_tx_gpio_high:
+	fetch 1,mem_rf_debug_tx_gpio
+	branch rf_debug_gpio_high
+
+rf_debug_tx_gpio_l_h_l:
+	call rf_debug_tx_gpio_low
+	call rf_debug_tx_gpio_high
+	branch rf_debug_tx_gpio_low
+
+	
+
+
+
+
+hci_init:
+	clear_stack		//清空堆栈
+	call wdt_set_disable
+	call hci_init_clksel_xtal
+	call hci_init_uart_default_config
+	call hci_init_uart_config
+	call hci_init_pwm_default_config
+	call hci_init_pwm
+
+	jam 1,mem_hci_command_complete_num_hci_command_packet
+	jam HCI_H4_TYPE_EVENT,mem_hci_event_head_type
+
+hci_process_loop:
+	call hci_process_check_uart_rx
+	branch hci_process_loop
+	
+hci_init_clksel_xtal:
+	jam clksel_xtal,core_clksel
+	rtn
+
+hci_init_uart_default_config:
+	call hci_init_uart_default_config_tx
+	call hci_init_uart_default_config_rx
+	call hci_init_uart_default_config_rts
+	branch hci_init_uart_default_config_cts
+
+hci_init_uart_default_config_tx:
+	fetch 1,mem_hci_uart_tx_gpio
+	nrtn blank
+	jam HCI_UART_TX_GPIO_NUM,mem_hci_uart_tx_gpio
+	rtn	
+
+hci_init_uart_default_config_rx:
+	fetch 1,mem_hci_uart_rx_gpio
+	nrtn blank
+	jam HCI_UART_RX_GPIO_NUM,mem_hci_uart_rx_gpio
+	rtn	
+hci_init_uart_default_config_rts:
+	fetch 1,mem_hci_uart_rts_gpio
+	nrtn blank
+	jam HCI_UART_RTS_GPIO_NUM,mem_hci_uart_rts_gpio
+	rtn	
+hci_init_uart_default_config_cts:
+	fetch 1,mem_hci_uart_cts_gpio
+	nrtn blank
+	jam HCI_UART_CTS_GPIO_NUM,mem_hci_uart_cts_gpio
+	rtn	
+
+
+hci_init_uart_config:
+	setarg mem_h5rx_buf
+	store 2,mem_pdatatemp
+	setarg mem_h5rx_buf_end
+	istore 2,contw
+	setarg mem_h5tx_buf
+	istore 2,contw
+	setarg mem_h5tx_buf_end
+	istore 2,contw	
+	fetch 8,mem_pdatatemp
+	call uarta_init_dma_mem
+	call uart_clock_select_main_freq_crystal
+	arg 115200,temp
+	call uarta_calc_baud_rate_config
+	fetch 1,mem_hci_uart_tx_gpio
+	arg gpcfg_uart_txd,temp
+	call gpio_config_function_int
+	fetch 1,mem_hci_uart_rx_gpio
+	arg gpcfg_uart_rxd|gpcfg_pullup,temp
+	call gpio_config_function_int
+	fetch 1,mem_hci_uart_rts_gpio
+	arg gpcfg_uart_rts,temp
+	call gpio_config_function_int
+	fetch 1,mem_hci_uart_cts_gpio
+	arg gpcfg_uart_cts,temp
+	call gpio_config_function_int
+
+	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
+	storet 1,core_uart_ctrl
+	branch clean_xmem
+
+hci_init_pwm_default_config:
+	fetch 1,mem_hci_pwm_12mhz_gpio
+	nrtn blank
+	jam HCI_PMW_12MHZ_GPIO_NUM,mem_hci_pwm_12mhz_gpio
+	rtn	
+
+hci_init_pwm:
+	fetch 1,mem_hci_pwm_12mhz_gpio
+	arg gpcfg_pwm_out0,temp
+	call gpio_config_function_int
+	arg 0x40,rega
+	call pwm_init
+	arg 0,rega
+	arg 0,regb
+	setarg 0
+	call pwm_duty_cycle_set
+	arg 0,queue
+	branch pwm_set_select
+
+
+hci_process_check_uart_rx:
+	fetch 2,core_uart_rxitems
+	add pdata,-4,rega
+	nrtn positive
+	call uarta_prepare_rx
+	ifetch 1,contru
+	beq HCI_H4_TYPE_CMD,hci_parse_packet_cmd
+//	beq HCI_H4_TYPE_ACL,hci_parse_packet_acl
+	call delay_10ms
+	branch uarta_clear_current_rx
+
+//hci_parse_packet_acl:
+//	rtn
+hci_parse_packet_cmd:
+	ifetch 2,contru	// Opcode
+	store 2,mem_hci_opcode
+	arg 0x3ff,temp
+	iand temp,temp	//low 10bit
+	storet 2,mem_hci_opcode_ocf
+	rshift2 pdata,pdata
+	rshift8 pdata,pdata	//high 6bit
+	store 1,mem_hci_opcode_ogf
+	ifetch 1,contru	// parameter total length
+	pincrease -1		//大于等于
+	isub rega,null
+	rtn positive
+	call hci_parse_complete_packet
+	branch hci_drop_current_packet
+
+hci_parse_complete_packet:
+	fetch 1,mem_hci_opcode_ogf
+//	beq HCI_OGF_LINK_CONTROL,hci_parse_packet_cmd_ogf_link_control
+//	beq HCI_OGF_LINK_POLICY,hci_parse_packet_cmd_ogf_link_policy
+//	beq HCI_OGF_CONTROLLER_AND_BASEBAND,hci_parse_packet_cmd_ogf_controller_and_baseband
+//	beq HCI_OGF_INFOMATIONAL_PARAM,hci_parse_packet_cmd_ogf_infomational_parameters
+//	beq HCI_OGF_STATUS_PARAM,hci_parse_packet_cmd_ogf_status_parameters
+//	beq HCI_OGF_TEST,hci_parse_packet_cmd_ogf_testing
+//	beq HCI_OGF_LE_CONTROLLER,hci_parse_packet_cmd_ogf_le_controller
+	beq HCI_OGF_VENDOR_SPECIFIC_DEBUG,hci_parse_packet_cmd_ogf_vendorspecific_debug
+	branch hci_send_event_command_complete_error_command_nuknown
+
+//hci_parse_packet_cmd_ogf_link_control:
+//hci_parse_packet_cmd_ogf_link_policy:
+//hci_parse_packet_cmd_ogf_controller_and_baseband:
+//hci_parse_packet_cmd_ogf_infomational_parameters:
+//hci_parse_packet_cmd_ogf_status_parameters:
+//hci_parse_packet_cmd_ogf_testing:
+//hci_parse_packet_cmd_ogf_le_controller:
+
+hci_parse_packet_cmd_ogf_vendorspecific_debug:
+	bpatch patch16_4,mem_patch16
+	fetch 1,mem_hci_opcode_ocf
+	beq HCI_VENDOR_CMD_RESET,hci_normal_reply
+	beq HCI_VENDOR_CMD_CHIPID,phci_grp_vendor_chipid
+	beq HCI_VENDOR_CMD_BAUD,phci_grp_vendor_baud
+	beq HCI_VENDOR_CMD_PATCH,phci_grp_vendor_patch
+	beq HCI_VENDOR_CMD_PATCH_DONE,phci_grp_vendor_done
+	beq HCI_VENDOR_CMD_ECHO,hci_normal_reply
+	beq HCI_VENDOR_CMD_MEM,phci_grp_vendor_mem
+	beq HCI_VENDOR_CMD_SET_FLOW_CONTROL,phci_grp_vendor_flow_control
+	branch hci_normal_reply
+
+	
+phci_grp_vendor_chipid:
+	jam COMMAND_SUCCEEDED,mem_hci_command_complete_return_parameter
+	fetch 2,core_chipid
+	store 2,mem_hci_command_complete_return_parameter_chip_id
+	arg 3,loopcnt
+	branch hci_send_event_command_complete
+	
+phci_grp_vendor_baud:
+	ifetch 2,contu
+	store 2,core_uart_baud
+	rtn
+
+
+phci_grp_vendor_patch_common:
+	ifetch 1,contu
+	copy pdata,temp //check sum via temp
+	store 1,core_ucode_low
+	ifetch 1,contu
+	iadd temp,temp
+	set1 7,pdata
+	store 1,core_ucode_ctrl
+	ifetch 1,contu
+	iadd temp,temp
+	copy pdata,loopcnt
+	rtn
+	
+phci_grp_vendor_patch:
+	call phci_grp_vendor_patch_common
+phci_grp_vendor_patch_loop:
+	ifetch 1,contu
+	store 1,core_ucode_data
+	iadd temp,temp
+	loop phci_grp_vendor_patch_loop
+phci_grp_vendor_patch_check_sum:	
+	and temp,0xff,temp
+	ifetch 1,contu
+	isub temp,null
+	nbranch phci_grp_vendor_patch_bad,zero
+	branch hci_normal_reply
+
+phci_grp_vendor_done:
+	arg 0x20,loopcnt    //patch switch length
+	arg mem_patch00,contw
+	arg 0,temp //checksum
+phci_grp_vendor_done_loop:
+	ifetch 1,contu
+	istore 1,contw
+	iadd temp,temp
+	loop phci_grp_vendor_done_loop
+	and temp,0xff,temp
+	ifetch 1,contu
+	isub temp,null
+	nbranch phci_grp_vendor_patch_bad,zero
+	jam 0,core_ucode_ctrl
+	call hci_normal_reply
+	call wait_uarttx
+	branch soft_reset
+
+phci_grp_vendor_patch_bad:
+	jam 0,core_ucode_ctrl
+	branch hci_send_event_command_complete_error_command_nuknown
+	
+
+phci_grp_vendor_mem:
+	ifetch 1,contu
+	copy pdata,loopcnt
+	ifetch 2,contu
+	copy pdata,contw
+	call uart_copy_rx_bytes
+	branch hci_normal_reply
+
+phci_grp_vendor_flow_control:
+	fetch 1,core_uart_ctrl
+	set1 BIT_UART_CONTROL_FLOW_CONTROL,pdata
+	store 1,core_uart_ctrl
+	branch hci_normal_reply
+
+	
+hci_normal_reply:
+	branch hci_send_event_command_complete_without_payload
+
+hci_send_event_command_complete_error_command_nuknown:
+	jam COMMAND_UNKNOWN,mem_hci_command_complete_return_parameter
+	branch hci_send_event_command_complete_without_payload+1
+hci_send_event_command_complete_error_command_disallowed:
+	jam COMMAND_DISALLOWED,mem_hci_command_complete_return_parameter
+	branch hci_send_event_command_complete_without_payload+1
+hci_send_event_command_complete_without_payload:
+	jam COMMAND_SUCCEEDED,mem_hci_command_complete_return_parameter
+	arg 1,loopcnt
+	branch hci_send_event_command_complete
+
+hci_send_event_command_complete:
+	jam HCI_EVENT_COMMAND_COMPLETE,mem_hci_event_head_event_code
+	add loopcnt,3,pdata
+	store 1,mem_hci_event_para_total_length
+	call hci_prepare_send_event
+	fetch 3,mem_hci_command_complete_num_hci_command_packet
+	istore 3,contwu
+//	copy rega,contr
+	arg mem_hci_command_complete_return_parameter,contr
+	call uart_copy_tx_bytes
+	branch uarta_send_register_pop
+
+//mem_mesh_event_head_event_code:event code
+//mem_mesh_event_para_total_length:parameter total length
+hci_prepare_send_event:
+	call uarta_prepare_tx_register_push
+	fetch 3,mem_hci_event_head_type
+	istore 3,contwu
+	rtn
+
+hci_drop_current_packet:
+	call uarta_prepare_rx
+	increase 3,contru
+	ifetch 1,contru
+	iadd contru,contru
+	branch uarta_rxdone
+
+cmd_exit:
+	jam 0,mem_hci_cmd
+	rtn
+
+
+
+
+
+
+l2cap_init:
+	branch l2cap_init_wake,wake
+	setarg mem_l2cap_xmem_end
+	arg mem_l2cap_xmem_start,contw
+	isub contw,loopcnt
+	call clear_mem
+l2cap_init_wake:	
+//	branch l2cap_lpm_load_txbuf
+	rtn
+	
+
+
+check_l2cap_map:
+	arg 0,queue
+	arg 0,regb
+
+check_l2cap_map_loop:
+	sub queue,7,null
+	nrtn positive
+	qisolate1 rega
+	branch check_l2cap_map_used,true
+	branch check_l2cap_map_used2
+
+check_l2cap_map_used:
+	copy temp,pdata
+	branch check_l2cap_map_used2,blank
+	qset1 regb
+	increase -1,temp
+
+check_l2cap_map_used2:
+	increase 1,queue
+	branch check_l2cap_map_loop
+
+
+
+
+//char* malloc(short len)
+//input: rega -> len
+//rtn: regb -> pbuff;return from pdata
+//val: queue -> i
+//val: timeup -> buff_cnt
+
+
+
+ble_l2cap_malloc:
+	fetchr regd,2,mem_ble_l2cap_tx_buff0_ptr
+	fetchr rege,2,mem_ble_l2cap_tx_buff_size_ptr
+	call disable_user
+	branch host_l2cap_malloc
+
+host_l2cap_malloc:
+	bpatch patch16_6,mem_patch16
+	call l2cap_malloc_is_fifo_full
+	nbranch assert,blank//assert when fifo full
+	call l2cap_malloc_get_full_map
+	arg 8,loopcnt
+host_l2cap_malloc_loop:
+	fetcht 1,mem_used_map
+	sub loopcnt,8,queue
+	qisolate1 temp
+	branch host_l2cap_malloc_next_buffer,true//if(1 == (used_map & (1 << i)))goto next;
+	call host_l2cap_malloc_check_buffer_enough
+	nbranch host_l2cap_malloc_next_buffer,positive//if(buff_cnt <= 0)goto next;
+	call host_l2cap_malloc_into_fifo
+	branch host_l2cap_malloc_succ//return (pbuff);
+host_l2cap_malloc_next_buffer:
+	copy rege,pdata
+	iadd regd,regd		//pbuff += BUFF_SIZE;//point to next buff
+	loop host_l2cap_malloc_loop
+	branch assert	//return NULL
+host_l2cap_malloc_succ:
+	copy regd,pdata
+	copy regd,contw
+	rtn//return pointer via pdata
+
+
+//char is_size_enough(char buff_index, short len)
+//input: rega -> len
+//input: loopcnt -> 8-buff_index
+//rtn: positive is diable mean no buffer
+//positive is enable mean get buffer
+
+host_l2cap_malloc_check_buffer_enough:
+	bpatch patch16_7,mem_patch16
+	sub loopcnt,8,queue
+	arg 0,temp
+	arg 0,timeup
+host_l2cap_malloc_check_buffer_enough_loop:
+	copy queue,pdata
+	beq 8,host_l2cap_malloc_check_buffer_enough_end
+	fetch 1,mem_used_map
+	qisolate1 pdata		//the buffer is used
+	branch host_l2cap_malloc_check_buffer_enough_end,true
+	qset1 timeup
+	copy rege,pdata
+	iadd temp,temp
+	increase 1,queue
+	copy rega,pdata
+	isub temp,null
+	branch host_l2cap_malloc_check_buffer_enough_end,zero//(max_size_fom_buff_index ==  len)
+	branch host_l2cap_malloc_check_buffer_enough_loop,positive//(max_size_fom_buff_index <  len)
+host_l2cap_malloc_check_buffer_enough_end:
+	copy temp,pdata
+	isub rega,null
+	nrtn zero
+	qset1 timeup
+	rtn
+
+
+//void buff_into_fifo(char buff_index, char buff_cnt, short len)
+//input: rega -> len
+//input: regc -> buff_index
+//input: timeup -> buff_cnt
+//val:temp ->   (fifo->map)
+
+host_l2cap_malloc_into_fifo:
+	bpatch patch17_0,mem_patch17
+	call l2cap_malloc_is_fifo_full
+	nbranch assert,blank //fifo full
+	call l2cap_malloc_is_fifo_empty
+	branch host_l2cap_malloc_into_fifo_no_push,blank//fifo empty, no need to push
+	fetch 9,mem_tx_fifo1
+	store 9,mem_tx_fifo0
+	setarg 0
+	istore 3,contw//mem_tx_fifo3
+host_l2cap_malloc_into_fifo_no_push:
+	storer timeup,1,mem_tx_fifo3_map
+	storer regd,2,mem_tx_fifo3_ptr
+	rtn
+
+
+
+//void* l2cap_malloc_fifo_out(void)
+//output:len -> temp
+//output:ptr ->pdata
+//only get ptr,not free
+
+l2cap_malloc_fifo_out:
+	bpatch patch17_1,mem_patch17
+	call l2cap_malloc_fifo_get_first_ptr
+	increase 1,contr
+	ifetch 2,contr //ptr ->pdata
+	rtn
+
+
+
+//void free_first_buff_in_fifo(void)
+//only free the first one
+
+l2cap_malloc_free:
+	bpatch patch17_2,mem_patch17
+	call l2cap_malloc_fifo_get_first_ptr
+	copy contr,contw
+	copy contr,temp
+	setarg 0
+	istore 3,contw
+	rtn
+
+
+
+//void l2cap_malloc_discard(void)
+//discard the latest malloc
+
+l2cap_malloc_discard:
+	bpatch patch17_3,mem_patch17
+	call l2cap_malloc_is_fifo_empty
+	branch assert,blank
+	fetch 3,mem_tx_fifo2
+	store 3,mem_tx_fifo3
+	fetch 3,mem_tx_fifo1
+	store 3,mem_tx_fifo2
+	fetch 3,mem_tx_fifo0
+	store 3,mem_tx_fifo1
+	rtn
+
+
+
+//bool fifo_is_full(void)
+//blank == 1: not full
+//blank == 0: full
+
+l2cap_malloc_is_fifo_full:
+	bpatch patch17_4,mem_patch17
+	fetch 3,mem_tx_fifo0
+	rtn
+
+
+
+//bool fifo_nearly_full(void)
+//blank == 1: nearly full
+//blank == 0: not nearly full
+
+l2cap_malloc_is_fifo_nearly_full:
+	bpatch patch17_5,mem_patch17
+	fetch 3,mem_tx_fifo1
+	rtn
+
+
+
+//bool fifo_is_empty(void)
+//blank == 1: empty
+//blank == 0: not empty
+
+l2cap_malloc_is_fifo_empty:
+	bpatch patch17_6,mem_patch17
+	fetch 3,mem_tx_fifo3
+	rtn
+
+
+
+//char* l2cap_malloc_fifo_get_first_ptr(void)
+//output:contr  -->ptr
+	
+l2cap_malloc_fifo_get_first_ptr:
+	call l2cap_malloc_is_fifo_empty
+	branch l2cap_malloc_fifo_get_first_ptr_empty,blank // fifo is empty
+	arg mem_tx_fifo0,contr
+l2cap_malloc_free_loop:
+	ifetch 3,contr
+	branch l2cap_malloc_free_loop,blank
+l2cap_malloc_fifo_get_first_ptr_empty:
+	increase -3,contr
+	rtn
+
+
+
+//char* l2cap_malloc_get_full_map(void)
+//output:mem_used_map  -->full_map
+//add all maps into one
+	
+l2cap_malloc_get_full_map:
+	bpatch patch17_7,mem_patch17
+	arg 4,loopcnt
+	arg mem_tx_fifo0_map,contr
+	arg 0,temp
+l2cap_malloc_get_full_map_loop:	
+	ifetch 3,contr
+	and pdata,0xff,pdata
+	ior temp,temp
+	loop l2cap_malloc_get_full_map_loop
+	storet 1,mem_used_map
+	rtn
+
+
+l2cap_lpm_get_wake_lock:
+	arg wake_lock_l2cap_tx,queue
+	branch lpm_get_wake_lock
+
+l2cap_lpm_put_wake_lock:
+	arg wake_lock_l2cap_tx,queue
+	branch lpm_put_wake_lock
+
+	
+
+	
+
+
+
+
+
+//pdata:gpio number
+twspi_reset:
+	bpatch patch18_1,mem_patch18
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	copy temp,pdata
+	and_into 0xff,pdata
+	sub pdata,GPIO_NUMBER+-1,null
+	nbranch twspi_reset_ext,positive
+	arg core_gpio_conf,contw
+twspi_reset_next:
+	iadd contw,contw
+	copy contw,rega
+	arg gpcfg_output_low,temp
+	istoret 1,contw
+	call twspi_disable
+	nop 30
+	copy rega,contw
+	arg gpcfg_output_high,temp
+	istoret 1,contw
+	branch twspi_enable
+	
+twspi_reset_ext:
+	arg core_gpio_conf_hi,contw
+	increase -16,pdata
+	branch twspi_reset_next
+
+
+twspi_disable:
+	fetch 1,core_spid_delay
+	and_into 0x7f,pdata
+	store 1,core_spid_delay
+	rtn
+
+twspi_enable:
+	fetch 1,core_spid_delay
+	or_into 0x80,pdata
+	store 1,core_spid_delay
+	rtn
+
+twspi_write:
+	branch spid_write_reg
+
+twspi_read:
+	branch spid_read_reg
+
+
+
+aes_disable:
+	fetch 1,core_bist_ctrl
+	set0 AES_EN,pdata
+	store 1,core_bist_ctrl
+	rtn
+
+read_function_aes:
+	nbranch read_function,user
+	fetch 1,core_bist_ctrl
+	set1 AES_EN,pdata
+	store 1,core_bist_ctrl
+read_function:
+	copy temp,null //length
+	branch read_fuction_zero,zero
+	copy regc,pc  //branch pc
+	
+read_fuction_zero:
+	isolate0 0,null  // always true
+	branch set_ucode_status
+	
+
+get_block_header:
+	force 4,temp
+get_block_header0:
+	arg mem_ucode_buf,rega
+	call aes_disable	// disable aes for header
+	call read_function
+	arg 0x55aa,rega
+	fetch 2,mem_ucode_buf
+	ifetcht 2,contr
+	isub rega,null
+	rtn
+
+
+read_first_block:
+	call load_aes_reinit,user
+	arg 2,temp
+	arg mem_ucode_ptr,rega
+	call read_function
+	fetch 2,mem_ucode_ptr
+read_first_block_cont:
+	store 2,mem_addr_mi
+	call get_iv,user
+	rtn
+	
+get_iv:
+	arg 16,temp
+	arg mem_ucode_keybuf,rega
+	call aes_disable	// disable aes for iv
+	call read_function
+set_iv:
+	arg mem_ucode_keybuf,contr
+	arg 16,loopcnt
+	call aes_load_data
+	call aes_init
+	call aes_clear_data
+	branch do_aes_cbc			// generate first IV 
+
+load_aes_reinit:
+	jam 0x0, core_ucode_ctrl
+	call aes_disable
+	branch aes_clear_data
+
+load_storage:
+	setarg 0
+	store 2,mem_queue	//data checksum
+	disable match
+	call get_block_header
+	nrtn zero
+	enable match
+	setarg 0x8000
+	store 3,core_ucode_hi
+	arg core_ucode_data,rega
+	call read_function_aes
+	jam 0x0, core_ucode_ctrl
+	fetch 1,mem_ucode_status
+	rtnbit0 0           //rtn if load code fail
+load_storage_loop:
+	arg 6,temp
+	call get_block_header0
+	nbranch load_data_checksum_compare,zero
+	ifetchr rega,2,contr
+	call read_function
+	call load_data_checksum_calc
+	branch load_storage_loop
+
+
+load_data_checksum_calc:
+	fetch 2,mem_queue
+	arg 6,loopcnt
+	arg mem_ucode_buf,contr
+	call cal_sum
+	fetchr loopcnt,2,mem_ucode_len
+	copy rega,contr
+	call cal_sum
+	store 2,mem_queue
+	rtn
+
+load_data_checksum_compare:
+	fetch 1,mem_otp_load_check_sum
+	beq 0x5a,load_data_checksum_ok //skip check sum 
+	arg 0xaa55,rega
+	fetch 2,mem_ucode_buf
+	isub rega,null
+	nbranch load_data_checksum_compare_fail, zero
+	arg 0x55aa,rega
+	fetch 2,mem_ucode_len
+	isub rega,null
+	nbranch load_data_checksum_compare_fail, zero
+	fetch 2,mem_sched_addr
+	fetcht 2,mem_queue	//calc  sum
+	isub temp,null
+	nbranch load_data_checksum_compare_fail, zero
+load_data_checksum_ok:
+	set1 15,rega
+	branch read_fuction_zero
+
+load_data_checksum_compare_fail:
+	jam 0,mem_ucode_status
+	rtn
+
+
+loadcode_lock_load_ucode:
+//	and pdata,0xf,temp
+//	storet 1,mem_ucode_flag
+	and pdata,0xff,pdata
+	rshift4 pdata,pdata
+	store 1,mem_device_option
+	branch loadcode_load_key
+
+loadcode_lock:
+	fetch 2,core_ucode_flag 
+	nbranch loadcode_lock_load_ucode, blank 	
+	call loadcode_load_key
+	fetch 2,mem_device_option
+	rtn blank
+	call loadcode_set_lock
+	branch lpm_write_lock
+	
+loadcode_set_lock:
+	fetch 1,mem_device_option
+	rtn blank
+	and pdata,0xf,temp
+	storet 1,mem_device_option
+	rshift4 pdata,pdata
+	ixor temp,pdata
+	bne 0xf,app_lpm_mpu_lock_24g_ble
+	branch app_lpm_lock_check
+
+load_otp_hv_vsel:
+	fetch 1,mem_otp_hv_sel
+	ncall lpm_save_sel_hv, blank
+	fetch 1,mem_otp_ldo_vsel
+	rtn  blank
+	store 1,mem_lpm_ldo_sel
+	branch lpm_write_io_vsel
+
+loadcode_load_key:
+	disable user
+	fetch 1,mem_ucode_flag
+	rtnbit0 OTP_UFLAG_AES	
+	call loadcode_check_otp_lock
+	arg OTP_OFFSET_UCODE_KEY_L,pdata
+	iadd regb,regb
+	force 16,loopcnt
+	arg mem_ucode_keybuf,rega
+	call otp_read_data
+	jam OTP_KEY_LOCK,core_misc_ctrl
+	arg mem_ucode_keybuf,contr
+	call load_key
+//	call aes_clear_data
+	arg mem_ucode_keybuf,contw
+	call memset0_16
+	branch enable_user
+	
+
+loadcode:
+	jam 0x25,core_clkoff			// disable debug uart
+	call enable_otp_read
+	arg OTP_OFFSET_PATCH_PTR,regb
+	force 11,loopcnt
+	arg mem_ucode_ptr,rega
+	call otp_read_data1
+	fetchr regf,5,mem_ucode_ptr
+	fetch 1,mem_ucode_flag
+	bbit0 OTP_UFLAG_BIST,loadcode_nobist
+	jam 0x7,core_bist_ctrl
+loadcode_bistwait:
+	fetch 1,core_bist_done
+	bne 7,loadcode_bistwait
+	fetch 1,core_bist_fail
+	lshift4 pdata,pdata
+	store 1,core_bist_ctrl
+	branch loadcode_otp
+	
+loadcode_nobist:
+	call set_bistfix
+	call clean_xmem
+	call clean_smem
+loadcode_otp:
+	storer regf,5,mem_ucode_ptr
+
+	call loadcode_check_otp_lock
+	arg OTP_OFFSET_ADC_PARAM_L,pdata
+	iadd regb,regb
+	arg 32,loopcnt
+	arg mem_otp_temp,rega
+	call otp_read_data
+
+	call load_otp_hv_vsel	
+	call loadcode_lock
+
+	fetch 1,mem_ucode_flag
+	bbit0 OTP_UFLAG_AES,loadcode_unenc
+	fetcht 1,mem_peripheral_lock_flag
+	arg 0,pdata
+	set1 OTP_NOT_LIMIT,pdata
+	set1 OTP_LIMIT,pdata
+	iand temp,rega
+	sub rega,0,null
+	branch loadcode_error,zero
+	isub rega,null
+	branch loadcode_error,zero
+loadcode_unenc:
+	jam 0,mem_loadcode_times
+	arg otp_load_code,regc	
+loadcode_otp_loop:
+	call loadcode_timeout
+	nbranch loadcode_error,positive	
+	fetch 2,mem_ucode_ptr
+	branch loadcode_otp_end,blank
+	call read_first_block_cont
+	call load_storage
+	nbranch loadcode_otp_end,match
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_otp_loop,true	// otp crc error, try again
+	call run_otp_code
+loadcode_otp_end:
+	call disable_otp
+	jam 0,mem_loadcode_times
+loadcode_iic_loop:
+	call loadcode_timeout
+	nbranch loadcode_error,positive	
+	call iicd_load_gpio_init
+	call clear_eeprom_size_2k
+	fetch 1,mem_ucode_flag
+	bbit1 OTP_UFLAG_SKIP_EEP,loadcode_spi
+	call loadcode_iic_by_eeprom
+	nbranch loadcode_iic_eeprom_2k,match
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_iic_loop,true		// eeprom crc error, try again
+	branch loadcode_spi
+
+run_otp_code:
+	setarg 0x1ff //patch3f_7
+	arg 0,pc
+	rtn
+
+loadcode_check_otp_lock:
+	arg OTP_OFFSET_H,regb
+	fetch 1,core_peripheral_lock
+	bbit1 OTP_LIMIT,loadcode_otp_lock
+	fetch 1,mem_peripheral_lock_flag
+	rtnbit0 OTP_LIMIT
+loadcode_otp_lock:	
+	arg 0,regb
+	rtn
+	
+			
+loadcode_iic_eeprom_2k:
+	call set_eeprom_size_2k
+	fetch 1,mem_ucode_flag
+	bbit1 OTP_UFLAG_SKIP_EEP,loadcode_spi
+	call loadcode_iic_by_eeprom
+	nbranch loadcode_spi,match
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_iic_loop,true		// eeprom crc error, try again
+	branch loadcode_hci
+	
+loadcode_spi:
+	jam 0,mem_loadcode_times
+loadcode_spi_loop:
+	call loadcode_timeout
+	nbranch loadcode_error,positive	
+	fetch 1,mem_ucode_flag
+	bbit1 OTP_UFLAG_SKIP_FLASH, loadcode_hci
+	call spid_init_flash
+	nop 200						// some flash will fail if no delay here
+	call spid_flash_release_form_powerdown
+	nop 100	
+	arg spid_load_flash,regc
+	call read_first_block
+	call load_storage
+	nbranch loadcode_hci,match
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_spi_loop,true	// flash crc error, try again
+
+loadcode_hci:
+	call clear_key_buf
+	fetch 1,mem_ucode_flag
+	rtnbit0 OTP_UFLAG_HCI
+	branch hci_init
+	
+clear_key_buf:
+	arg mem_ucode_keybuf,contw
+	call memset0_16
+	force regidx_key,regext_index
+	call aes_clear
+	jam 0x21,core_clkoff		// enable debug uart
+	rtn
+
+iicd_load_gpio_init:
+	fetch 1,mem_eeprom_sda_gpio
+	fetcht 1,mem_eeprom_scl_gpio
+	isub temp,null
+	nbranch iicd_read_init_pin,zero
+iicd_load_default_gpio:
+	jam 4,mem_eeprom_wp_gpio
+	jam 23,mem_eeprom_scl_gpio  //8
+	jam 22,mem_eeprom_sda_gpio //7
+	branch iicd_read_init_pin
+
+
+
+loadcode_iic_by_eeprom:
+	setarg 0x0
+	store 2,mem_addr_mi
+	arg iicd_read_eep,regc
+	call iic_init_600khz
+	call read_first_block
+	branch load_storage
+
+
+
+//output: positive 1:continue load ;0:load timeout
+loadcode_timeout:
+	call loadcode_error_delay
+	fetch 1,mem_loadcode_times
+	increase 1,pdata
+	sub pdata,3,null
+	store 1,mem_loadcode_times	 
+	rtn
+	
+loadcode_error_delay:
+	fetch 1,mem_loadcode_times
+	rtn blank
+	fetch 1,mem_otp_load_delay
+	rtn blank
+	copy pdata,loopcnt
+	branch delay_ms_wait
+	
+	
+loadcode_error:
+	call clear_key_buf
+	call aes_disable
+//	call ice_break_disable_wdt
+	call ice_break
+	rtn
+	
+set_bistfix:
+	and_into 0xe0,pdata
+	rshift pdata,pdata
+	store 1,core_bist_ctrl
+	setarg 1
+	arg mem_bistfix_val,contr
+set_bistfix_loop:
+	ifetcht 2,contr
+	storet 2,core_lpm_reg
+	store 1,core_set_bistfix
+	lshift pdata,pdata
+	bbit0 3,set_bistfix_loop
+	rtn
+	
+
+set_ucode_status:
+	fetch 1,mem_ucode_status
+	lshift pdata,pdata
+	setflag true,0,pdata
+	isolate0 15,rega  // load code if rega.15 = 1
+	rtn true
+	store 1,mem_ucode_status
+	rtn
+
+	
+decrypt_code:
+	fetch 1,core_bist_ctrl
+	rtnbit0 AES_EN
+	branch decrypt_code_skip	
+decrypt_code_loop:
+	fetch 1,core_dma_status
+	qisolate1 pdata
+	rtn true
+decrypt_code_skip:
+	fetch 1,core_misc_status
+	bbit0 1,decrypt_code_loop
+	call do_aes_cbc
+	branch decrypt_code_loop
+
+	
+//save_ucode:
+//	copy loopcnt,temp
+//	storet 2,mem_patch_len
+//	jam 0x80, core_ucode_ctrl
+//	jam 0,core_ucode_hi
+//	jam 0,core_ucode_low
+//	store 2,mem_patch_ptr
+//	iforce contw
+//	lshift2 loopcnt,loopcnt
+//save_ucode_loop:
+//	fetch 1,core_ucode_data
+//	istore 1,contw
+//	loop save_ucode_loop
+//	jam 0x0, core_ucode_ctrl
+//	rtn
+
+
+load_ucode:
+	fetch 2,mem_patch_ptr
+	rtn blank
+	jam 0x80, core_ucode_ctrl
+	jam 0,core_ucode_hi
+	jam 0,core_ucode_low
+	fetcht 2,mem_patch_len
+	lshift2 temp,loopcnt
+	iforce contr
+load_ucode_loop:
+	ifetch 1,contr
+	store 1,core_ucode_data
+	loop load_ucode_loop
+	jam 0x0, core_ucode_ctrl
+	rtn
+
+	
+
+
+
+
+otp_load_code:
+	copy temp,loopcnt
+	fetch 2,mem_addr_mi
+	iadd temp,temp
+	storet 2,mem_addr_mi
+	iforce regb
+	copy rega,nap
+	jam INIT_KEY,core_misc_ctrl
+	call otp_read_data
+	copy nap,rega
+	isolate0 15,rega
+	rtn true
+	call enable_true,blank		// pdata == 0, crc ok, set true to 1
+	branch set_ucode_status
+	
+
+otp_enable_chgpump25:
+	jam 0x1,core_chgpump_ctrl
+	nop 300
+	jam 0x5,core_chgpump_ctrl
+	nop 100
+	jam 0x25,core_chgpump_ctrl
+	nop 1000
+	jam 0x27,core_chgpump_ctrl
+	nop 300
+	rtn
+
+otp_enable_chgpump65:
+	call otp_enable_chgpump25
+	jam 0x3f,core_chgpump_ctrl
+	rtn
+
+disable_otp:
+	jam 0x83,core_otp_ctrl	
+otp_disable_chgpump:
+	jam 0,core_chgpump_ctrl
+	rtn
+	
+enable_otp_read:
+	call otp_enable_chgpump25
+
+otp_reset:
+	jam 0x82,core_otp_ctrl	
+	nop 12
+	jam 0x80,core_otp_ctrl	
+	jam 0x82,core_otp_ctrl	
+	nop 150					
+	rtn
+
+	
+otp_set_addr:
+	lshift3 regb,regb
+	storer regb,2,core_otp_addr
+	jam 0,core_otp_din
+	rtn	
+
+
+otp_write:
+	bpatch patch18_4,mem_patch18
+	call otp_enable_chgpump65
+	call otp_set_addr
+	call otp_reset
+otp_program:
+	ifetcht 1,rega
+	increase 1,rega
+	force 0,queue
+otp_program_bit:
+	qisolate0 temp
+	branch otp_skip_0,true
+	fetch 1,core_otp_din
+	set1 6,pdata				
+	set1 7,pdata				
+	store 1,core_otp_din
+	jam 0x02,core_otp_ctrl	
+	jam 0x82,core_otp_ctrl
+	set0 7,pdata				
+	store 1,core_otp_din
+	jam 0x8a,core_otp_ctrl	
+	nop 11
+	jam 0xca,core_otp_ctrl	
+	nop 33
+	jam 0x4a,core_otp_ctrl	
+	nop 44
+	jam 0xca,core_otp_ctrl	
+	nop 22
+	jam 0x8a,core_otp_ctrl	
+	nop 33
+	jam 0x82,core_otp_ctrl	
+	nop 1
+	jam 0x92,core_otp_ctrl	
+	nop 10
+	jam 0xb2,core_otp_ctrl	
+	fetch 1,core_otp_rdata
+	jam 0x92,core_otp_ctrl	
+	nop 1
+	jam 0x82,core_otp_ctrl	
+	nop 1
+	qisolate0 pdata
+	branch otp_program_bit,true	
+otp_skip_0:
+	fetch 2,core_otp_addr
+	increase 1,pdata
+	store 2,core_otp_addr
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch otp_program_bit,true
+	loop otp_program
+	branch otp_disable_chgpump
+
+
+
+	
+	
+otp_read_data:
+	bpatch patch18_5,mem_patch18
+otp_read_data1:
+	call otp_set_addr
+	jam 0xa2,core_otp_ctrl	
+	increase 8,regb
+	arg 0,queue
+	setarg -1
+otp_read_data_loop:
+	fetcht 1,core_otp_rdata
+	istoret 1,rega
+	bcrc temp
+	jam SHIFT_KEY,core_misc_ctrl
+	storer regb,2,core_otp_addr
+	isolate1 15,rega
+	branch otp_read_noinc,true
+	increase 1,rega
+	branch otp_read_unenc
+	
+otp_read_noinc:
+	nbranch otp_read_unenc,user
+	increase 1,queue
+	compare 0,queue,0xf
+	nbranch otp_read_unenc,true
+	call do_aes_cbc
+	jam INIT_KEY,core_misc_ctrl
+otp_read_unenc:
+	increase 8,regb
+	loop otp_read_data_loop
+	jam 0x82,core_otp_ctrl	
+	rtn
+
+
+
+
+
+
+
+
+
+
+app_lpm_lock_check:
+	fetch 1,mem_device_option
+	beq DVC_OP_MODULE,app_lpm_module_lock
+	beq DVC_OP_DONGLE,app_lpm_dongle_lock
+//	beq DVC_OP_TEST,app_lpm_peripheral_lock_test
+	beq DVC_OP_MOUSE,app_lpm_mouse_lock
+	beq DVC_OP_SHUTTER,app_lpm_shutter_lock
+	beq DVC_OP_SHUTTER_DY,app_lpm_shutter_lock
+	beq DVC_OP_HCI_BOOT,app_lpm_hciboot_lock
+	beq DVC_OP_REMOTE_CAR,app_lpm_car_lock_application_and_ble
+	beq DVC_OP_CAR,app_lpm_car_lock
+	beq DVC_OP_MESH,app_lpm_mesh_lock
+	beq DVC_OP_KEYBOARD,app_lpm_kb_lock
+	branch app_lpm_mpu_lock_24g_ble
+
+
+app_lpm_mesh_lock:
+	arg car_init,pdata  //car
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	call app_mpu_s0_lock
+	branch app_lpm_lock_mesh
+
+app_lpm_kb_lock:
+	branch app_lpm_lock_mesh
+
+	
+app_lpm_module_lock:
+app_lpm_hciboot_lock:
+	branch app_lpm_mpu_lock_24g
+
+	
+app_lpm_dongle_lock:
+	arg module_init,pdata //module
+	arg shutter_dy_shutter_1s_timer,temp  //shutter dy
+	call app_mpu_s0_lock
+	branch app_lpm_lock_mesh
+
+app_lpm_mouse_lock:
+	arg car_init,pdata //
+	arg module_set_state,temp  //module
+	call app_mpu_s0_lock
+	branch app_lpm_lock_mesh
+	
+app_lpm_shutter_lock:
+	arg car_init,pdata  //
+	arg remote_car_moto_data_enable_user,temp //car remote
+	call app_mpu_s0_lock
+	branch app_lpm_lock_mesh
+	
+app_lpm_car_lock:
+	arg dongle_init,pdata  //dongle
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	call app_mpu_s0_lock
+app_lpm_lock_mesh:
+	arg ali_mesh_access_layer_resolve_message,pdata  //light
+	arg ali_mesh_upper_transport_layer_init_queue_param,temp //light
+	branch app_mpu_s1_lock
+
+app_lpm_car_lock_application_and_ble:
+	arg dongle_init,pdata  //dongle
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	call app_mpu_s0_lock
+	arg le_adv,pdata  //ble
+	arg le_send_ll_one_lenth,temp //ble
+	branch app_mpu_s1_lock
+
+
+app_mpu_s0_lock:
+	lshift16 temp,temp
+	ior temp,pdata
+	branch lpm_write_mpu_s0
+	
+
+app_lpm_mpu_lock_ble:	
+	arg le_parse_att,pdata
+	arg le_send_ll_one_lenth,temp
+app_mpu_s1_lock:
+	lshift16 temp,temp
+	ior temp,pdata
+	branch lpm_write_mpu_s1
+	
+app_lpm_mpu_lock_24g:	
+	arg g24_prep,pdata
+	arg g24_factory_check,temp
+	branch app_mpu_s1_lock
+	
+app_lpm_mpu_lock_24g_ble:
+	call app_lpm_mpu_lock_24g
+	arg le_parse_att,pdata
+	arg le_send_ll_one_lenth,temp
+	branch app_mpu_s0_lock
+
+
+
+
+
+spid_init:
+	bpatch patch18_6,mem_patch18
+spid_init_common:
+	fetch 1,mem_spi_init_clk
+	store 1,core_spid_ctrl	// A7530 should at least 34, or write fail
+	fetch 1,mem_spi_init_delay_time
+	store 1,core_spid_delay	// 4us delay
+	setarg mem_spid_tbuf
+	store 2,core_spid_txaddr
+	setarg mem_spid_rbuf
+	store 2,core_spid_rxaddr
+	branch twspi_disable
+	
+
+
+
+spid_write_reg:
+	set1 7,pdata
+	store 2,mem_spid_tbuf
+	bpatch patch18_7,mem_patch18
+	jam 2,core_spid_txlen
+	jam 0,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+
+
+spid_read_reg:
+	force 1,temp
+spid_read_regs:	
+	store 1,mem_spid_tbuf
+	bpatch patch19_0,mem_patch19
+	jam 1,core_spid_txlen
+	storet 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	call wait_spid_done
+	fetch 1,mem_spid_rbuf
+	rtn
+
+
+wait_spid_done:
+//	fetch 2,mem_afh_error_total
+//	increase 1,pdata
+//	store 2,mem_afh_error_total
+	nop 5
+	fetch 1,core_dma_status
+	bbit0 spid_done,wait_spid_done
+	rtn
+
+	
+
+
+
+
+
+flash_write:
+	disable user
+	copy pdata,regb
+	fetch 1,mem_spi_write_flash_sm
+	rtnne FLASH_SM_NO_BUYS
+	enable user
+	copy regb,pdata
+	branch spid_flash_write_start
+
+
+flash_write_spi_sm_timer:
+	fetch 1,mem_spi_write_flash_sm 	
+	beq FLASH_SM_START,spid_flash_write_start
+	beq FLASH_SM_ERASE_SECTOR,spid_flash_erase_sector
+	beq FLASH_SM_WAIT_ERASE_SECTOR,spid_flash_wait_erase_sector
+	beq FLASH_SM_WRITE_DATA,spid_flash_write_data
+	beq FLASH_SM_WAIT_WRITE_DATA,spid_flash_wait_write_data
+	rtn
+
+spid_flash_write_start:
+	store 3,mem_spi_write_addr
+	copy rega,pdata
+	store 2,mem_spi_write_ptr
+	storet 2,mem_spi_write_len
+	jam FLASH_SM_ERASE_SECTOR,mem_spi_write_flash_sm
+	branch spid_init_flash
+	
+spid_flash_erase_sector:
+	call spid_init_flash
+	jam FLASH_SM_WAIT_ERASE_SECTOR,mem_spi_write_flash_sm
+	call spid_unlock_flash
+	arg mem_spid_tbuf,rega
+	jam 4,core_spid_txlen
+	fetch 3,mem_spi_write_addr
+	arg FLASH_COMMAND_SECTOR_ERASE,temp
+	branch spid_write_flash_common
+	
+spid_flash_wait_erase_sector:
+	call spid_init_flash
+	call wait_spid_flash_done
+	jam FLASH_SM_WRITE_DATA,mem_spi_write_flash_sm
+	rtn
+
+
+spid_flash_write_data:
+	bpatch patch19_1,mem_patch19
+	call spid_init_flash
+	jam FLASH_SM_WAIT_WRITE_DATA,mem_spi_write_flash_sm
+	call spid_unlock_flash
+	call spid_flash_data_preserve
+	call spid_write_flash
+	branch spid_flash_data_recover
+spid_flash_wait_write_data:
+	call spid_init_flash
+	call spid_unlock_flash
+	setarg FLASH_READ_SATUS
+	call spid_read_reg
+	rtnbit1 FLASH_STATUS_WIP
+	jam FLASH_SM_NO_BUYS,mem_spi_write_flash_sm
+	fetch 2,mem_cb_spi_flash_write_complate
+	branch callback_func
+spid_flash_data_recover:
+	fetch 4,mem_temp
+	fetcht 2,mem_spi_write_ptr
+spid_flash_data_recover_comm:
+	increase -4,temp
+	istore 4,temp
+	rtn
+	
+spid_flash_data_preserve:
+	fetcht 2,mem_spi_write_ptr
+	copy temp,rega
+	increase -4,temp
+	ifetch 4,temp
+	store 4,mem_temp
+	fetcht 2,mem_spi_write_len
+	fetch 3,mem_spi_write_addr
+	rtn
+
+spid_init_flash:
+	bpatch patch19_2,mem_patch19
+	call spi_gpio_init
+	call twspi_disable
+	setarg 0
+	store 4,mem_spid_tbuf
+	rtn
+
+spid_unlock_flash:
+	jam FLASH_COMMAND_WRITE_ENABLE,mem_spid_tbuf
+spid_sendcmd_common:	
+	setarg 0
+	store 2,core_spid_rxlen
+	setarg 1
+	store 2,core_spid_txlen
+	setarg mem_spid_tbuf
+	store 2,core_spid_txaddr
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+	
+spid_flash_release_form_powerdown:
+	jam FLASH_COMMAND_RELEASE_FROM_POWERDOWN,mem_spid_tbuf
+	branch spid_sendcmd_common
+	
+spid_flash_powerdown:
+	jam FLASH_COMMAND_POWERDOWN,mem_spid_tbuf
+	branch spid_sendcmd_common
+
+spid_write_flash_data:
+	store 3,mem_pdatatemp
+	storet 2,mem_temp
+	storer rega,2,mem_rega
+	bpatchx patch36_5,mem_patch36
+	call spid_unlock_flash
+	fetch 3,mem_pdatatemp
+	fetcht 2,mem_temp
+	fetchr rega,2,mem_rega
+	branch spid_write_flash
+	
+
+spid_write_flash:
+	increase 4,temp
+	storet 2,core_spid_txlen
+	arg FLASH_COMMAND_WRITE_DATA,temp
+	increase -4,rega
+
+spid_write_flash_common:
+	istoret 1,rega
+	rshift16 pdata,temp
+	istoret 1,contw
+	rshift8 pdata,temp
+	istoret 1,contw
+	istore 1,contw
+	deposit rega
+	store 2,core_spid_txaddr
+	setarg 0
+	store 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	call wait_spid_done
+	branch wait_spid_flash_done
+
+
+
+spid_read_flash:
+	storet 2,core_spid_rxlen
+	rshift16 pdata,temp
+	storet 1,mem_addr_hi
+	rshift8 pdata,temp
+	storet 1,mem_addr_mi
+	store 1,mem_addr_lo
+	setarg 4
+	store 2,core_spid_txlen
+	jam FLASH_COMMAND_READ_DATA,mem_spid_tbuf
+	setarg mem_spid_tbuf
+	store 2,core_spid_txaddr
+	deposit rega
+	store 2,core_spid_rxaddr
+	fetch 1,core_spid_ctrl
+	isolate0 15,rega
+	setflag true,6,pdata
+	store 1,core_spid_ctrl
+	jam spid_start,core_misc_ctrl
+spid_read_flash_wait:
+	fetch 1,core_dma_status
+	bbit1 7,spid_read_flash_wait			// waiting for spid write
+	arg spid_done,queue
+	branch wait_spid_done
+
+wait_spid_flash_done:
+	setarg 2000
+	call sleep
+	call spid_unlock_flash
+	setarg mem_spid_rbuf
+	store 2,core_spid_rxaddr
+	setarg FLASH_READ_SATUS
+	call spid_read_reg
+	bbit1 FLASH_STATUS_WIP,wait_spid_flash_done
+	rtn
+
+
+
+
+
+spid_load_flash:
+	storet 2,core_spid_rxlen
+	setarg 4
+	store 2,core_spid_txlen
+	jam 3,mem_spid_tbuf
+	setarg mem_spid_tbuf
+	store 2,core_spid_txaddr
+	deposit rega
+	store 2,core_spid_rxaddr
+	fetch 1,core_spid_ctrl
+	isolate0 15,rega
+	setflag true,6,pdata
+	store 1,core_spid_ctrl
+	jam spid_start,core_misc_ctrl
+spi_load_flash_wait:
+	fetch 1,core_dma_status
+	bbit1 7,spi_load_flash_wait			// waiting for spid write
+	arg spid_done,queue
+	call decrypt_code
+	call wait_spid_done
+	isolate1 spid_crcok,pdata
+	call set_ucode_status
+	fetch 1,mem_addr_hi
+	lshift16 pdata,regb
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	ior regb,pdata
+	iadd temp,pdata
+	store 1,mem_addr_lo
+	rshift8 pdata,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_hi
+	rtn
+	
+spi_gpio_init:
+	fetch 1,mem_spi_cs_gpio
+	fetcht 1,mem_spi_so_gpio
+	isub temp,null
+	nbranch spi_pin_set,zero
+	call spi_gpio_default_init
+	
+spi_pin_set:
+	fetch 1,mem_spi_cs_gpio
+	arg gpcfg_spid_ncs,temp
+	call gpio_config_function_int
+	fetch 1,mem_spi_sclk_gpio
+	arg gpcfg_spid_sck,temp
+	call gpio_config_function_int
+	fetch 1,mem_spi_si_gpio
+	arg gpcfg_spid_mosi,temp
+	call gpio_config_function_int
+	fetch 1,mem_spi_so_gpio
+	arg gpcfg_spid_miso,temp
+	branch gpio_config_function_int
+
+spi_gpio_default_init:
+	jam 1,mem_spi_cs_gpio
+	jam 3,mem_spi_si_gpio
+	jam 0,mem_spi_so_gpio
+	jam 2,mem_spi_sclk_gpio
+	jam 11,mem_spi_wp_gpio
+	jam 10,mem_spi_hold_gpio
+	rtn
+
+
+soft_reset_chip:
+	jam 1,core_reset
+	rtn
+
+
+
+
+
+iic_init_600khz:
+	jam 5,core_iicd_scl_low
+ 	jam 7,core_iicd_scl_high
+	jam 7,core_iicd_start_setup
+	jam 7,core_iicd_start_hold
+	jam 7,core_iicd_stop_setup
+	jam 5,core_iicd_data_setup
+	jam 0,core_iicd_data_hold
+	rtn
+	
+iic_init_360khz:	//360khz
+	jam 12,core_iicd_scl_low
+	jam 13,core_iicd_scl_high
+	jam 13,core_iicd_start_setup
+	jam 13,core_iicd_start_hold
+	jam 13,core_iicd_stop_setup
+	jam 12,core_iicd_data_setup
+	jam 0,core_iicd_data_hold	
+  	rtn
+
+iicd_init_pin:
+	call iicd_eeprom_write_enable
+iicd_init_pin_scl_sda:
+	fetch 1,mem_eeprom_scl_gpio
+	arg gpcfg_iic_scl|gpcfg_pullup,temp
+	call gpio_config_function_int
+	fetch 1,mem_eeprom_sda_gpio
+	arg gpcfg_iic_sda|gpcfg_pullup,temp
+	branch gpio_config_function_int
+
+iicd_read_init_pin:
+	call iicd_eeprom_write_disable
+	branch iicd_init_pin_scl_sda
+
+wait_iicd_done:
+	fetch 1,core_dma_status
+	bbit0 iicd_done,wait_iicd_done
+	rtn
+
+/*	// pdata is iic addr, rega points to buf, temp is length 
+iicd_read_data:
+	store 1,mem_iicd_addr
+	setarg mem_iicd_addr
+	store 2,core_iicd_txaddr
+	setarg 1
+	store 2,core_iicd_txlen
+	storet 2,core_iicd_rxlen
+	storer rega,2,core_iicd_rxaddr
+	jam 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	branch wait_iicd_done
+
+	// rega points to buf, temp is length 
+iic_write_data:
+	setarg 0
+	store 2,core_iicd_rxlen
+	store 2,core_iicd_rxaddr
+	storet 2,core_iicd_txlen
+	storer rega,2,core_iicd_txaddr
+	jam 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	branch wait_iicd_done
+*/
+set_eeprom_size_2k:
+	set1 mark_eeprom_size,mark
+	jam 0x08,mem_eeprom_block_size
+	rtn
+
+clear_eeprom_size_2k:
+	set0 mark_eeprom_size,mark
+	jam 0x20,mem_eeprom_block_size
+	rtn
+
+
+iicd_read_eep_data_size_2k:
+ 	fetch 1,mem_eeprom_base
+	iadd regb,pdata
+	store 1,mem_addr_mi
+	branch iicd_read_eep_size_2k
+
+iicd_read_eep_size_2k_lcadcode:
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	store 1,mem_addr_mi
+	
+//length:temp 
+//mem ptr:rega
+//eeprom addr:pdata
+iicd_read_eep_size_2k:
+ 	setarg 3
+	store 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	jam 0xa1,mem_iicd_tbuf+2
+	branch iicd_read_eep_common
+
+
+//length:temp 
+//mem ptr:rega
+//eeprom addr:regb
+iicd_write_protect_eep_data:
+	storet 2,mem_temp
+	call iicd_eeprom_write_enable
+	fetcht 2,mem_temp
+	call iicd_write_eep_data
+	branch iicd_eeprom_write_disable
+	
+iicd_eeprom_write_enable:
+	fetch 1,mem_eeprom_wp_gpio
+	rtneq GPIO_DISABLE
+	bbit0 6,iicd_wp_gpio_output_low
+	setarg 150000
+	call sleep
+iicd_wp_gpio_output_low:
+	fetcht 1,mem_eeprom_wp_gpio
+	branch gpio_out_active
+	
+iicd_eeprom_write_disable:
+	fetcht 1,mem_eeprom_wp_gpio
+	branch gpio_out_inactive
+	
+//length:temp 
+//mem ptr:rega
+//eeprom addr offset:regb
+iicd_read_eep_data:
+	bpatch patch19_3,mem_patch19
+	bmark1 mark_eeprom_size,iicd_read_eep_data_size_2k
+	fetch 2,mem_eeprom_base
+	iadd regb,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+
+
+iicd_read_eep:
+	bpatch patch19_4,mem_patch19
+	bmark1 mark_eeprom_size,iicd_read_eep_size_2k_lcadcode
+	setarg 4
+	store 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	jam 0xa1,mem_iicd_tbuf+3
+iicd_read_eep_common:	
+	setarg mem_iicd_tbuf
+	store 2,core_iicd_txaddr
+	storet 2,core_iicd_rxlen
+	storer rega,2,core_iicd_rxaddr
+	setarg 2
+	isolate0 15,rega
+	setflag true,0,pdata
+	store 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	arg iicd_done,queue
+	call decrypt_code
+	call wait_iicd_done
+	isolate1 iicd_crcok,pdata
+	call set_ucode_status
+	bmark1 mark_eeprom_size,iicd_read_eep_load_code_size_2k
+iicd_inc_addr:
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	rtn
+
+iicd_read_eep_load_code_size_2k:
+	fetch 1,mem_addr_mi
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	rtn
+	
+
+//length:temp 
+//mem ptr:rega
+//eeprom addr offset:regb
+iicd_write_eep_data:
+	fetch 2,mem_eeprom_base
+	iadd regb,pdata
+
+//cuur ptr:pdata length:temp buf:rega
+	store 2,mem_pdatatemp //curr ptr
+	bpatch patch19_5,mem_patch19
+	storet 2,mem_temp	//len
+	storer rega,2,mem_contr
+iicd_write_eep_loop:
+	call iicd_eep_transparency
+
+	fetcht 2,mem_regb
+	fetchr rega,2,mem_contr
+	fetch 2,mem_pdatatemp
+	
+	call iicd_write_eep
+	
+	fetch 2,mem_regb
+	fetcht 2,mem_contr
+	iadd temp,temp
+	storet 2,mem_contr
+	fetcht 2,mem_pdatatemp
+	iadd temp,temp
+	storet 2,mem_pdatatemp
+	fetch 2,mem_temp
+	nbranch iicd_write_eep_loop,blank
+	rtn
+	
+//in:
+//1.size 2.len 3.src 4.des
+//mem_regc page's area
+//mem_pdatatemp curr ptr
+//mem_temp all len      
+//mem_regb curr len
+iicd_eep_transparency:
+	bpatch patch19_6,mem_patch19
+	fetch 1,mem_eeprom_block_size
+	increase -1,pdata
+	fetcht 2,mem_pdatatemp
+	ior temp,pdata
+	increase 1,pdata
+	store 3,mem_regc
+
+	fetch 2,mem_temp
+	iadd temp,pdata
+
+	fetcht 3,mem_regc
+	isub temp,pdata
+	nbranch iicd_eep_deal_short_packet,positive
+	store 2,mem_temp
+	fetch 3,mem_regc
+	fetcht 2,mem_pdatatemp
+	isub temp,pdata
+	store 2,mem_regb
+	rtn
+	
+iicd_eep_deal_short_packet:
+	fetch 2,mem_temp
+	store 2,mem_regb
+	setarg 0
+	store 2,mem_temp
+	rtn
+
+iicd_write_eep_size_2k:
+	copy regb,pdata
+	increase 2,temp
+	storet 2,core_iicd_txlen
+	increase -2,rega
+	ifetcht 3,rega
+	copy temp,regb
+	arg 0xa0,temp
+	istoret 1,rega
+	istore 1,contw
+	branch iicd_write_eep_common
+
+	
+iicd_write_eep:
+	copy pdata,regb
+	bpatch patch19_7,mem_patch19
+	bmark1 mark_eeprom_size,iicd_write_eep_size_2k
+	copy regb,pdata
+	increase 3,temp
+	storet 2,core_iicd_txlen
+	increase -3,rega
+	ifetcht 3,rega
+	copy temp,regb
+	arg 0xa0,temp
+	istoret 1,rega
+	byteswap pdata,pdata
+	istore 2,contw
+iicd_write_eep_common:	
+	storer rega,2,core_iicd_txaddr
+	setarg 0
+	store 2,core_iicd_rxlen
+	jam 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	istorer regb,3,rega
+iic_check_eeprom_standby:
+	bpatch patch1a_0,mem_patch1a
+	jam 0,mem_iicd_tbuf+3
+iic_check_eeprom_standby_wait:
+	setarg 1
+	store 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	setarg mem_iicd_tbuf
+	store 2,core_iicd_txaddr
+	setarg 0
+	store 2,core_iicd_rxlen
+	store 2,core_iicd_rxaddr
+	setarg 3
+	store 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	fetch 1,core_dma_status
+	rtnbit0 iicd_ack
+	nop 1500
+	fetch 1,mem_iicd_tbuf+3
+	increase 1,pdata
+	store 1,mem_iicd_tbuf+3
+	sub pdata,40,null
+	nrtn positive//polling timeout 6ms
+	branch iic_check_eeprom_standby_wait
+
+
+
+uarta_init_dma_mem:
+	call enable_user
+	branch uart_init_dma_mem
+
+uart_init_dma_mem:
+	rshift16 pdata,temp
+	call uarta_init_rx,user
+	rshift32 pdata,pdata
+	rshift16 pdata,temp
+	call uarta_init_tx,user
+	fetch 2,core_clkoff
+	set0 CLOCK_OFF_UART,pdata
+	store 2,core_clkoff
+	rtn
+
+
+uarta_init_baud_rate:
+	store uart_baud_len,core_uart_baud
+	rtn
+
+
+uarta_calc_baud_rate_config:
+	call uart_calc_baud_rate_config
+	branch uarta_init_baud_rate
+
+
+uart_calc_baud_rate_config:
+	call uart_calc_baud_rate_config_choice_uart_clock
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	rtn
+
+uart_calc_baud_rate_config_choice_uart_clock:
+	fetch 1,core_uart_clksel
+	bbit0 UART_CLOCK_SELECT_BIT,uart_calc_baud_rate_config_choice_uart_clock_crystal
+	setarg uart_clock_freq_48M
+	rtn
+uart_calc_baud_rate_config_choice_uart_clock_crystal:
+	setarg uart_clock_freq_24M
+	rtn
+
+uart_clock_select_main_freq_crystal:
+	fetch 1,core_uart_clksel
+	and pdata,UART_CLOCK_SELECT_CRYSTAL,pdata
+	store 1,core_uart_clksel
+	rtn
+
+uart_clock_select_main_freq_dpll:
+	fetch 1,core_uart_clksel
+	or pdata,UART_CLOCK_SELECT_DPLL,pdata
+	store 1,core_uart_clksel
+	rtn
+
+
+	// pdata: tx buffer start, temp: tx buffer end
+uarta_init_tx:
+	store 2,core_uart_tsaddr
+	store 2,core_uart_twptr
+	storet 2,core_uart_teaddr
+	rtn
+
+	// pdata: rx buffer start, temp: rx buffer end
+uarta_init_rx:
+	store 2,core_uart_rsaddr
+	store 2,core_uart_rrptr
+	storet 2,core_uart_readdr
+	rtn
+
+uarta_prepare_tx:
+	fetchr contus,2,core_uart_tsaddr
+	fetchr contue,2,core_uart_teaddr
+	fetchr contu,2,core_uart_twptr
+	rtn
+
+uarta_prepare_rx:
+	fetchr contus,2,core_uart_rsaddr
+	fetchr contue,2,core_uart_readdr
+	fetchr contu,2,core_uart_rrptr
+	rtn
+
+uarta_send:
+	storer contu,2,core_uart_twptr
+	rtn
+
+uarta_rxdone:
+	storer contu,2,core_uart_rrptr
+	rtn
+
+uarta_clear_current_rx:
+	call uarta_prepare_rx
+	fetch 2,core_uart_rxitems
+	iadd contu,contu
+	branch uarta_rxdone
+
+uarta_prepare_tx_register_push:
+	call uart_register_push
+	branch uarta_prepare_tx
+
+uarta_send_register_pop:
+	call uarta_send
+	branch uart_register_pop
+
+
+uart_register_push:
+	storer contu,2,mem_contu
+	storer contus,2,mem_contue
+	storer contue,2,mem_contus
+	rtn
+
+uart_register_pop:
+	fetchr contu,2,mem_contu
+	fetchr contus,2,mem_contue
+	fetchr contue,2,mem_contus
+	rtn
+
+wait_uarttx:
+	fetch 2,core_uart_txitems
+	nbranch wait_uarttx,blank
+	rtn
+
+uart_copy_tx_bytes_fast:
+	deposit loopcnt
+	rtn blank
+uart_copy_tx_bytes_fast_loop:
+	increase -8,loopcnt
+	call uart_tx_8_bytes,positive
+	rtn zero
+	branch uart_copy_tx_bytes_fast_loop,positive
+	increase 8,loopcnt
+uart_copy_tx_bytes_fast_loop_four:
+	increase -4,loopcnt
+	call uart_tx_4_bytes,positive
+	rtn zero
+	branch uart_copy_tx_bytes_fast_loop_four,positive
+	increase 4,loopcnt
+	branch uart_copy_tx_bytes
+
+uart_tx_8_bytes:
+	ifetch 8,contr
+	istore 8,contu
+	rtn
+
+uart_tx_4_bytes:
+	ifetch 4,contr
+	istore 4,contu
+	rtn
+
+uart_copy_tx_bytes:
+	deposit loopcnt
+	rtn blank
+uart_copy_tx_bytes_loop:
+	ifetch 1,contr
+	istore 1,contu
+	loop uart_copy_tx_bytes_loop
+	rtn
+
+uart_copy_rx_bytes_fast:
+	deposit loopcnt
+	rtn blank
+uart_copy_rx_bytes_fast_loop:
+	increase -8,loopcnt
+	call uart_rx_8_bytes,positive
+	rtn zero
+	branch uart_copy_rx_bytes_fast_loop,positive
+	increase 8,loopcnt
+uart_copy_rx_bytes_fast_loop_four:
+	increase -4,loopcnt
+	call uart_rx_4_bytes,positive
+	rtn zero
+	branch uart_copy_rx_bytes_fast_loop_four,positive
+	increase 4,loopcnt
+	branch uart_copy_rx_bytes
+
+
+uart_rx_8_bytes:
+	ifetch 8,contu
+	istore 8,contw
+	rtn
+
+uart_rx_4_bytes:
+	ifetch 4,contu
+	istore 4,contw
+	rtn
+
+
+uart_copy_rx_bytes:
+	deposit loopcnt
+	rtn blank
+uart_copy_rx_bytes_loop:
+	ifetch 1,contu
+	istore 1,contw
+	loop uart_copy_rx_bytes_loop
+	rtn
+
+
+
+
+app_store_nvram_event:
+	jam BT_EVT_STORE_NVRAM,mem_fifo_temp
+	branch ui_ipc_send_event
+
+check_51cmd_update_device_record:
+	bpatch patch1a_1,mem_patch1a
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	call check_nvram
+	call init_device_list,zero
+	call disable_user2
+	call nvram_find_addr_from_bd_list
+write_device_record:
+	fetch 1,mem_nv_data_number
+	icopy regc
+	fetcht 2,mem_nv_data_ptr
+	storet 2,mem_list_item_ptr
+write_device_loop_find:
+	copy regc,pdata
+	branch app_store_nvram_event,blank  //EEPROM
+	increase -1,regc
+	copy temp,rega
+	ifetch 1,rega
+	fetcht 1,mem_select_list_item
+	isub temp,null
+	call set_index_finded_device,zero
+	branch write_device_loop_find0,positive
+	ifetch 1,rega
+	increase 1,pdata
+	istore 1,rega
+write_device_loop_find0:
+	fetcht 2,mem_list_item_ptr
+	increase NV_DATA_LEN,temp
+	storet 2,mem_list_item_ptr
+	branch write_device_loop_find
+
+set_index_finded_device:
+	setarg 0
+	istore 1,rega
+	fetch 1,mem_temp_reconn_record
+	istore 1,contw	
+	bne REC_3_MODE,set_index_finded_device_ble_mode
+//	arg mem_link_key,regb
+set_index_find_device_MASTER_ADDR:
+	ifetch 6,contr
+	istore 8,contw
+	setarg 0
+	istore 8,contw
+	copy regb,contr
+store_rec_data_common:
+	call memcpy16
+	force 1,null
+	rtn
+
+set_index_finded_device_ble_mode:
+	beq REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,set_index_finded_device_IRK
+	beq REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,set_index_finded_device_EDIV
+	arg mem_le_ltk,regb
+	branch set_index_find_device_MASTER_ADDR
+
+set_index_finded_device_IRK:
+	arg mem_le_irk,contr
+	call memcpy16
+store_ble_rec_data_common:
+	arg mem_le_ltk,contr
+	branch store_rec_data_common
+
+set_index_finded_device_EDIV:
+	arg mem_le_rand,contr
+	call memcpy16
+	branch store_ble_rec_data_common
+
+
+//enable user2 reconnect
+//disable user2 pairing
+nvram_find_addr_from_bd_list:
+	bpatch patch1a_2,mem_patch1a
+	call disable_user
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	bpatch patch1a_3,mem_patch1a
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+find_addr_from_bd_list_ble_mode:
+	fetch 1,mem_le_conn_peer_addr_type
+	beq MASTER_PUBLIC_ADDR,find_addr_from_bd_list_public_device_addr
+	fetch 1,mem_le_plap+5
+	compare 0xc0,pdata,0xc0
+	branch find_addr_from_bd_list_static_addr,true
+	compare 0x40,pdata,0xc0
+	branch find_addr_from_bd_list_random_addr,true
+	branch find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy
+
+find_addr_from_bd_list_static_addr:
+	branch find_addr_from_bd_list_static_addr_reconnect,user2
+	fetch 1,mem_le_preq_init_key_distribution
+	bbit0 LE_INITATOR_IRK_BIT,find_addr_from_bd_list_public_device_addr
+	branch find_addr_from_bd_list_static_addr_sc_or_legacy
+
+find_addr_from_bd_list_static_addr_reconnect:
+	call find_addr_from_bd_list_public_device_addr
+	rtn user
+	branch find_addr_from_bd_list_static_addr_sc_or_legacy
+
+
+find_addr_from_bd_list_static_addr_sc_or_legacy:
+find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy:
+	fetch 1,mem_le_pairing_mode
+	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,find_addr_from_bd_list_random_non_resolvable_private_address_sc
+	branch find_addr_from_bd_list_random_non_resolvable_private_address
+
+find_addr_from_bd_list_static_addr_sc:
+find_addr_from_bd_list_random_non_resolvable_private_address_sc:
+	fetch 6,mem_le_plap
+	store 8,mem_le_rand
+	branch find_addr_from_bd_list_random_non_resolvable_private_address
+
+
+find_addr_from_bd_list_public_device_addr:
+	jam REC_4_MODE_STATIC_ADDRESS,mem_temp_reconn_record
+	fetch 6,mem_le_plap
+	branch find_addr_from_bd_list_common
+	
+find_addr_from_bd_list_random_non_resolvable_private_address:	
+	jam REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,mem_temp_reconn_record
+	branch find_addr_from_bd_list_common
+
+//input :pdata EDIV and rands
+find_addr_from_bd_list_random_addr:
+	jam REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,mem_temp_reconn_record
+	branch find_addr_from_bd_list_common
+	
+find_addr_from_bd_list_common:
+	bpatch patch1a_4,mem_patch1a
+//	store 6,mem_temp_lap
+	fetch 2,mem_nv_data_ptr
+	ifetcht 1,pdata
+	pincrease 1
+	store 2,mem_list_item_ptr
+	storet 1,mem_select_list_item
+	fetch 1,mem_nv_data_number
+	icopy regc
+nvram_find_addr_from_list:
+	fetch 2,mem_list_item_ptr
+	copy pdata,rega
+	call nvram_find_addr_from_list_compare
+	rtn user
+	fetcht 2,mem_list_item_ptr
+	increase NV_DATA_LEN,temp
+	storet 2,mem_list_item_ptr
+	increase -1,temp
+	ifetch 1,temp
+	store 1,mem_select_list_item
+	increase -1,regc
+	nbranch nvram_find_addr_from_list,zero
+	fetch 1,mem_nv_data_number
+	pincrease DECREASED_ONE
+	store 1,mem_select_list_item
+	rtn
+nvram_find_addr_from_list_compare:
+	fetch 1,mem_temp_reconn_record
+	bne REC_3_MODE,find_addr_from_list_compare_ble_mode
+find_master_addr_from_list_compare:
+	arg mem_temp_reconn_record,regb
+	arg 7,loopcnt
+	call string_compare
+	branch enable_user,zero
+	rtn
+
+find_addr_from_list_compare_ble_mode:
+	beq REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,find_irk_form_list_compare
+	beq REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,find_ediv_form_list_compare
+	branch find_master_addr_from_list_compare
+
+find_irk_form_list_compare:
+	ifetcht 1,rega
+	isub temp,null
+	nrtn zero
+	arg mem_le_prand,contw
+	arg 16,loopcnt
+	call clear_mem
+	fetch 3,mem_le_plap+3
+	store 3,mem_le_prand
+	call genernate_master_MacAddress
+	fetch 2,mem_le_aes_128+13
+	byteswap pdata,pdata
+	lshift8 pdata,temp
+	ifetch 1,contr
+	iadd temp,pdata
+	fetcht 3,mem_le_plap
+	isub temp,null
+	branch enable_user,zero
+	rtn
+
+
+genernate_master_MacAddress:
+	arg mem_le_prand ,contr
+	call load_data128
+//	arg mem_le_irk,contr
+	ifetch 1,rega
+	call load_regext
+	force 0x38,aes_ctrl
+	force 0x0,aes_ctrl
+	call wait_aes
+	arg mem_le_aes_128,contw
+	branch store_aes_result
+
+find_ediv_form_list_compare:
+	ifetcht 1,rega
+	isub temp,null
+	nrtn zero
+	copy contr,rega
+	add contr,8,regc
+	arg mem_le_rand,regb
+	arg 8,loopcnt
+	call string_compare
+	branch enable_user,zero
+	copy regc,rega
+	arg mem_le_irk,regb
+	arg 8,loopcnt
+	call string_compare
+	branch enable_user,zero
+	rtn
+
+check_nvram:
+	fetch 2,mem_nv_data_ptr
+	ifetcht 1,pdata
+	pincrease NV_DATA_LEN
+	ifetch 1,pdata
+	isub temp,null
+	rtn
+
+init_device_list:
+	fetch 1,mem_nv_data_number
+	icopy loopcnt
+	fetcht 2,mem_nv_data_ptr
+	setarg 0
+init_device_list_loop:
+	istore 1,temp
+	increase NV_DATA_LEN,temp
+	pincrease 1
+	loop init_device_list_loop
+	rtn
+
+load_device_list_mode_4:
+//	fetch 9,mem_le_ediv
+//	branch clear_ltk_exists,blank
+	call enable_user2
+	call nvram_find_addr_from_bd_list
+	nbranch clear_ltk_exists,user
+	fetch 2,mem_list_item_ptr
+	add pdata,1,contr
+	arg mem_le_irk,contw
+	call  memcpy16
+	arg mem_le_ltk,contw
+	call  memcpy16
+	jam 1,mem_ltk_exists
+	rtn
+
+clear_ltk_exists:
+	jam 0,mem_ltk_exists
+	rtn
+
+
+eeprom_store_le_reconn_info:
+	jam REC_4_MODE,mem_record_bt_mode
+	branch eeprom_store_reconn_info
+
+eeprom_store_reconn_info:
+	fetch 1,mem_device_option
+	beq DVC_OP_MODULE,check_51cmd_update_device_record
+	beq DVC_OP_MOUSE,mouse_store_remote_bdaddr
+	rtn
+	
+
+
+
+//temp [4:0]=GPIO number, return ptr in contw, contr is mask
+get_gpio_wakeup_index:
+	and temp,0x1f,pdata
+	rshift pdata,pdata
+	arg mem_gpio_wakeup_cfg,contw
+	iadd contw,contw
+	arg 0xf0,alarm
+	isolate0 0,temp
+	rtn true
+	arg 0xf,alarm
+	rtn
+
+//temp [4:0]=GPIO number, 0-31, 
+gpio_set_wake_by_current_state:
+	bpatch patch1a_5,mem_patch1a
+	set1 GPIO_ACTIVE_BIT,temp
+	call gpio_get_bit
+	nsetflag true,GPIO_ACTIVE_BIT,temp
+
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_set_wake:
+	bpatch patch1a_6,mem_patch1a
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	arg 4,debug
+	isolate1 GPIO_ACTIVE_BIT,temp
+	branch gpio_set_wake_high,true
+	arg 2,debug
+gpio_set_wake_high:
+	call get_gpio_wakeup_index
+	isolate0 0,temp
+	branch gpio_set_wake_low4bit,true
+	lshift4 debug,debug
+gpio_set_wake_low4bit:
+	ifetch 1,contw
+	iand alarm,pdata
+	ior debug,pdata
+	istore 1,contw
+	rtn
+
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_set_low_pullup:
+	bpatch patch1a_7,mem_patch1a
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	arg 1,debug
+	call get_gpio_wakeup_index
+	isolate0 0,temp
+	branch gpio_set_low_pullup_low4bit,true
+	lshift4 debug,debug
+gpio_set_low_pullup_low4bit:
+	ifetch 1,contw
+	iand alarm,pdata
+	ior debug,pdata
+	istore 1,contw	
+	rtn	
+
+
+	
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_clr_wake:
+	bpatch patch1b_0,mem_patch1b
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	call get_gpio_wakeup_index
+	ifetch 1,contw
+	iand alarm,pdata
+	istore 1,contw
+	rtn	
+
+gpio_config_input_nowake:
+	call gpio_clr_wake
+	branch gpio_config_input_without_wake
+
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_config_input:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	ncall gpio_set_wake,wake
+gpio_config_input_without_wake:
+	call gpio_addr
+	setarg 0
+	isolate1 GPIO_ACTIVE_BIT,temp
+	nsetflag true,6,pdata
+	setflag true,7,pdata
+	branch gpio_write
+
+//temp is gpio number, return true if gpio active
+gpio_get_bit:
+	bpatch patch1b_1,mem_patch1b
+	arg core_gpio_in,contw
+	and temp,0x07,queue
+	rshift3 temp,pdata
+	and_into 3,pdata
+	iadd contw,contw
+	ifetch 1,contw
+	isolate1 GPIO_ACTIVE_BIT,temp
+	branch gpio_get_bit_reverse,true
+	qisolate0 pdata
+	rtn
+gpio_get_bit_reverse:
+	qisolate1 pdata
+	rtn
+
+//temp [5:0]=GPIO number, 0-39, [7]=0, low active. set gpio to inactive state
+gpio_out_inactive:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate1 GPIO_ACTIVE_BIT,null
+	branch gpio_out_flag
+
+gpio_config_output:
+gpio_out_active:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate0 GPIO_ACTIVE_BIT,null
+
+//temp is gpio number,  [7]=1,set out equa true flag if gpio active
+gpio_out_flag:
+	setarg 0
+	nsetflag true,GPIO_ACTIVE_BIT,pdata
+	ixor temp,temp
+
+//temp is gpio number,0-31, [7]=out bit value
+gpio_out:
+	call gpio_addr
+	setarg gpcfg_output_high
+	isolate1 GPIO_ACTIVE_BIT,temp
+	setflag true,0,pdata
+	branch gpio_write
+
+//check output status
+gpio_check_active:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	branch  disable_true,zero
+	call gpio_addr
+	ifetch 1,contw
+	bbit1 0,gpio_check_active_high
+	isolate0 GPIO_ACTIVE_BIT,temp
+	rtn
+gpio_check_active_high:
+	isolate1 GPIO_ACTIVE_BIT,temp
+	rtn
+
+gpio_set_analog:
+	call gpio_addr
+	setarg gpcfg_no_ie
+gpio_write:
+	istore 1,contw
+	rtn
+
+gpio_set_high_impedance:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	call gpio_addr
+	setarg gpcfg_high_impedance
+	branch gpio_write
+
+gpio_addr:
+	and temp,0x3f,pdata
+	sub pdata,GPIO_NUMBER+-1,null
+	nbranch gpio_addr_ext,positive
+	arg core_gpio_conf,contw
+gpio_addr_next:
+	iadd contw,contw
+	rtn
+gpio_addr_ext:
+	arg core_gpio_conf_hi,contw
+	increase -16,pdata
+	branch gpio_addr_next
+
+
+gpio_config_param:
+	and pdata,0xff,temp
+	rshift8 pdata,pdata
+	branch gpio_config_function_int
+
+//pdata: gpio number bit7=1, temp: function type
+gpio_config_function:
+	rtnbit0 GPIO_ACTIVE_BIT
+gpio_config_function_int:
+	and_into 0x3f,pdata
+	sub pdata,GPIO_NUMBER+-1,null
+	nbranch gpio_config_function_int_ext,positive
+	arg core_gpio_conf,contw
+gpio_config_function_int_next:
+	iadd contw,contw
+	istoret 1,contw
+	rtn
+gpio_config_function_int_ext:
+	arg core_gpio_conf_hi,contw
+	increase -16,pdata
+	branch gpio_config_function_int_next
+
+
+//temp:gpio num
+gpio_get_config:
+	and_into 0x3f,temp	
+	sub temp,GPIO_NUMBER+-1,null
+	nbranch gpio_get_config_ext,positive	
+	setarg core_gpio_conf
+gpio_get_config_next:
+	iadd temp,contr
+	ifetch 1,contr
+	rtn
+gpio_get_config_ext:
+	setarg core_gpio_conf_hi
+	increase -16,temp
+	branch gpio_get_config_next
+
+
+//The default as shutter and remote
+gpio_set_before_lpm:
+	arg GPIO_NUMBER,loopcnt
+	arg core_gpio_conf,contr
+setgpio_loop:
+	copy contr,contw
+	ifetch 1,contr
+	beq gpcfg_spid_miso,setgpio_pullup
+	beq gpcfg_spid_ncs,setgpio_pullup
+	beq gpcfg_spid_sck,setgpio_pullup
+	beq gpcfg_spid_mosi,setgpio_pullup
+	beq gpcfg_spid_sdio,setgpio_pullup
+	beq gpcfg_iic_scl,setgpio_pullup
+	beq gpcfg_iic_sda,setgpio_pullup
+	beq gpcfg_input,setgpio_pullup
+setgpio_loop_end:
+	loop setgpio_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+gpio_set_before_lpm_ext:
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch setgpio_loop
+	
+	
+setgpio_pullup:
+	setarg gpcfg_pullup
+	istore 1,contw
+	branch setgpio_loop_end
+setgpio_pulldown:
+	setarg gpcfg_pulldown
+	istore 1,contw	
+	branch setgpio_loop_end
+
+
+
+sadc_calibration:
+	bpatch patch1b_2,mem_patch1b
+	rtn wake
+	jam 0x77,core_gpadc_ctrl
+	jam 0xc9,core_gpadc_cfg0
+	jam 0x01,core_gpadc_cfg3
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	call sadc_read
+	jam 0xc1,core_gpadc_cfg0	
+sadc_cal_read:
+	arg 7,loopcnt
+	arg mem_adc_cal_c0,rega
+	jam 0x05,core_gpadc_cfg2
+sadc_cal_read_loop:
+	fetch 1,core_gpadc_status
+	istore 1,rega
+	increase 1,rega
+	fetch 1,core_gpadc_cfg2
+	increase 0x20,pdata
+	store 1,core_gpadc_cfg2
+	loop sadc_cal_read_loop
+	jam 0x00,core_gpadc_ctrl	
+	rtn
+
+sadc_cal_write:
+	fetch 1,core_sadc_ctrl
+	set1 1,pdata
+	store 1,core_sadc_ctrl
+	arg 7,loopcnt
+	arg mem_adc_cal_c0,rega
+	jam 0x15,core_gpadc_cfg2
+sadc_cal_write_loop:
+	ifetch 1,rega
+	store 1,core_gpadc_cfg1
+	increase 1,rega
+	fetch 1,core_gpadc_cfg2
+	increase 0x20,pdata
+	store 1,core_gpadc_cfg2
+	loop sadc_cal_write_loop
+	fetch 1,core_sadc_ctrl
+	set0 1,pdata
+	store 1,core_sadc_ctrl
+	rtn
+
+
+//mem_adc_config_flag 1:HVIN 2: GPIO
+adc_init_data:
+	bpatch patch1b_3,mem_patch1b
+	fetch 8,mem_otp_adc
+	branch adc_init_cal_data_default,blank
+	store 8,mem_3v_adc_io_data
+	rtn
+	
+adc_init_cal_data_default:
+	setarg 0x0bbe
+	store 2,mem_3v_adc_io_data
+	setarg 0x03f0
+	store 2,mem_1v_adc_io_data
+	setarg 0x027e
+	store 2,mem_2v_adc_hvin_data
+	setarg 0x03c4
+	store 2,mem_3v_adc_hvin_data
+	rtn	
+
+enable_adc:
+	bpatch patch1b_4,mem_patch1b
+	call sadc_cal_write
+	fetch 1,core_gpadc_cfg1
+	set0 7,pdata
+	store 1,core_gpadc_cfg1
+	jam 0x77,core_gpadc_ctrl
+	jam 0xc1,core_gpadc_cfg0
+	jam 0x01,core_gpadc_cfg3
+	call sadc_channel
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	call sadc_read
+	jam 0,core_sadc_clkdiv
+	branch sadc_dma
+
+sadc_channel:
+	fetch 1,mem_adc_channel
+	lshift4 pdata,pdata
+	fetcht 1,core_gpadc_cfg3
+	and_into 0x0f,temp
+	ior temp,temp
+	storet 1,core_gpadc_cfg3
+	rtn
+
+sadc_read:
+	jam 0x03,core_sadc_ctrl
+sadc_read_wait:
+	fetch 1,core_perf_status
+	bbit0 SARADC_DONE,sadc_read_wait
+	fetcht 2,core_sadc_data
+	storet 2,mem_adc_current_value
+	jam 0x06,core_sadc_ctrl
+sadc_read_wait2:
+	fetch 1,core_perf_status
+	bbit1 SARADC_DONE,sadc_read_wait2
+	jam 0x00,core_sadc_ctrl
+	rtn
+
+sadc_dma:
+	fetch 1,mem_adc_dma_enable
+	rtn blank	
+	fetch 1,core_gpadc_cfg1
+	set1 7,pdata
+	store 1,core_gpadc_cfg1
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	fetch 2,mem_adc_saddr_ptr
+	store 2,core_sadc_saddr
+	fetch 2,mem_adc_eaddr_ptr
+	store 2,core_sadc_eaddr
+	jam 0x0b,core_sadc_ctrl
+	nop 1000
+	jam 0x03,core_sadc_ctrl
+	rtn
+
+vdd_calculate_by_mode:
+	bpatch patch1b_5,mem_patch1b
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,vdd_calculate_hvin
+	beq ADC_CONFIG_GPIO,vdd_calculate_io
+	rtn
+
+vdd_calculate_hvin:
+	setarg 1000
+	store 2,mem_reference_voltage
+	fetcht 2,mem_3v_adc_hvin_data
+	fetch 2,mem_2v_adc_hvin_data
+	arg 2000,regc
+	branch vdd_calculate
+
+vdd_calculate_io:
+	setarg 2000
+	store 2,mem_reference_voltage
+	fetcht 2,mem_3v_adc_io_data
+	fetch 2,mem_1v_adc_io_data
+	arg 1000,regc
+vdd_calculate:
+	isub temp,rega
+	fetch 2,mem_adc_current_value
+	isub temp,pdata
+	nbranch vdd_calculate1,positive
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	iadd regb,pdata
+vdd_calculate2:
+	idiv rega
+	call wait_div_end
+	quotient pdata
+	rtn
+
+vdd_calculate1:
+	copy temp,pdata
+	fetcht 2,mem_adc_current_value
+	isub temp,pdata
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	isub regb,pdata
+	nbranch set_pdata_0,positive
+	branch vdd_calculate2
+
+
+//out:	pdata->bat percent
+adc_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+	fetch 2,mem_pdatatemp
+	fetcht 2,mem_pdatatemp+2
+	isub temp,rega
+	fetch 2,mem_pdatatemp+6
+	isub temp,regb
+	fetcht 2,mem_pdatatemp+4
+	isub temp,null
+	ncall adc_set_low_power_flag,positive
+	mul32 regb,100,pdata
+	idiv rega
+	call wait_div_end
+	quotient pdata
+	call adc_set_no_power_flag,blank
+	rtn
+
+adc_set_low_power_flag:
+	fetch 1,mem_adc_power_flag
+	set1 0,pdata
+	store 1,mem_adc_power_flag
+	rtn
+
+adc_clear_low_power_flag:
+	fetch 1,mem_adc_power_flag
+	set0 0,pdata
+	store 1,mem_adc_power_flag
+	rtn	
+	
+adc_set_no_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 1,temp
+	storet 1,mem_adc_power_flag
+	rtn
+
+adc_clear_no_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 1,temp
+	storet 1,mem_adc_power_flag
+	rtn	
+
+
+
+
+keyscan_key_init:
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_key_init_next:
+	rtn blank
+	copy pdata,loopcnt
+//	copy contr,rega
+	fetch 2,mem_keyscan_ptr
+	increase 3,pdata	//mem_key_conf0_pin
+	copy pdata,rega
+keyscan_key_init_lp1:
+	ifetcht 1, rega
+	call gpio_config_input
+	increase KEY_CONF_STRUCT_LEN,rega
+	loop keyscan_key_init_lp1
+keyscan_key_init_end:
+	rtn
+	
+keyscan_scan_key:
+	fetch 2,mem_keyscan_ptr
+	increase 3,pdata	//mem_key_conf0_pin
+	copy pdata,rega
+//	arg mem_key_conf0_pin,rega
+	force 0,regb
+	setarg 0
+	store 2,mem_key_value_temp
+keyscan_scan_key_lp1:
+	ifetcht 1, rega
+	call gpio_get_bit
+	bpatch patch1b_6,mem_patch1b
+	fetch 2,mem_key_value_temp
+	copy regb,queue
+	qsetflag true,pdata
+	store 2, mem_key_value_temp
+	increase KEY_CONF_STRUCT_LEN,rega
+	increase 1,regb
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_scan_key_lp1_next:
+	ixor regb,null
+	nbranch keyscan_scan_key_lp1,zero
+	fetch 2,mem_key_value_temp
+	fetcht 2,mem_key_value_retention
+	ixor temp,null
+	rtn zero
+	branch enable_user
+
+keyscan_process_lpm_before:
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_process_lpm_before_next:
+	rtn blank
+	copy pdata,loopcnt
+	fetch 2,mem_keyscan_ptr 
+	increase 3,pdata	//mem_key_conf0_pin
+	copy pdata,rega
+keyscan_process_lpm_before_lp1:
+	ifetcht 1, rega
+	call gpio_set_wake_by_current_state
+	increase KEY_CONF_STRUCT_LEN,rega
+	loop keyscan_process_lpm_before_lp1
+keyscan_process_lpm_before_end:
+	rtn
+
+keyscan_key_process:
+	arg key_scan_timer,queue
+	call timer_check
+	nrtn blank
+	setarg 0x20
+	arg key_scan_timer,queue
+	call timer_init
+	disable user
+	call keyscan_process_lpm_before
+	bpatch patch1b_7,mem_patch1b
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_key_process_next:
+	rtn blank
+	call keyscan_scan_key
+	nbranch lpm_button_clean_wake_lock,user
+	call lpm_button_get_wake_lock
+	disable user
+	fetch 2,mem_key_value_temp
+	store 2,mem_key_value_temp4
+	jam 0,mem_key_value_temp6
+	force 0,queue
+keyscan_key_lp1:
+	fetch 2, mem_key_value_retention
+	rshift pdata,temp
+	storet 2,mem_key_value_retention
+	and pdata,0x01,pdata
+	fetcht 2, mem_key_value_temp4
+	and temp,0x01,rega
+	rshift temp,temp
+	storet 2,mem_key_value_temp4
+	ixor rega,null
+	ncall keyscan_send_key_data,zero
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_key_lp1_next:
+	fetcht 1, mem_key_value_temp6
+	increase 1,temp
+	storet 1, mem_key_value_temp6
+	copy temp,queue
+	ixor queue,null
+	nbranch keyscan_key_lp1,zero
+	fetch 2,mem_key_value_temp
+	store 2,mem_key_value_retention
+	rtn
+keyscan_send_key_data:
+	bpatch patch1c_0,mem_patch1c
+	fetch 2,mem_keyscan_ptr
+	increase 1,pdata
+	ifetch 2,pdata
+	branch callback_func
+
+
+
+
+//rega:clk select(0:system clk; 1:system clk undivied; 2:lpo)
+pwm_init:
+	fetch 1,core_clksel
+	ior rega,pdata
+	store 1,core_clksel
+	fetch 2,core_clkoff
+	set0 CLOCK_OFF_PWM,pdata
+	store 2,core_clkoff
+delay_nop100:
+	nop 100
+	rtn
+
+pwm_clk_set:
+	fetch 1,core_clksel
+	bbit1 6,pwm_24m_clk_set
+	bbit1 7,pwm_33k_clk_set
+pwm_12m_clk_set:
+	setarg PWM_12MHZ
+	rtn
+pwm_24m_clk_set:
+	setarg PWM_24MHZ
+	rtn
+pwm_33k_clk_set:
+	setarg PWM_33KHZ
+	rtn
+
+
+pwm_out_set:
+	fetcht 3,mem_pdatatemp+2
+	call pwm_clk_set
+	idiv temp
+	call wait_div_end
+	quotient temp
+	fetch 1,mem_pdatatemp+5
+	imul32 temp,pdata
+	div pdata,100
+	call wait_div_end
+	quotient rega
+	copy temp,pdata
+	isub rega,regb
+
+	fetch 1,mem_pdatatemp+1
+	call pwm_duty_cycle_set
+	fetch 1,mem_pdatatemp
+	fetcht 1,mem_pdatatemp+1
+	and_into 0x0f,temp
+	lshift8 temp,temp
+	ior temp,pdata
+	branch pwm_enable
+
+pwm_duty_cycle_set:
+	iforce queue
+	call pwm_duty_cycle_set_without_autoload
+	branch pwm_autoload_set
+
+pwm_autoload_set:	
+	fetch 1, core_pwm_autoload
+	qset1 pdata
+	store 1, core_pwm_autoload
+	fetcht 1, core_clksel
+	isolate1 7, temp
+	call delay_1clk_of_33k, true
+	qset0 pdata
+	store 1, core_pwm_autoload
+	rtn	
+
+
+delay_1clk_of_33k:
+	nop 480
+	rtn
+
+pwm_duty_cycle_set_without_autoload:
+	and_into 0x0f,pdata
+	arg core_pwm_pcnt0,contw
+	mul32 pdata,4,pdata
+	iadd contw,contw
+	copy rega,pdata
+	istore 2,contw
+	copy regb,pdata
+	istore 2,contw
+	rtn
+
+
+
+
+pwm_enable_in_syncmode:
+	rshift8 regb, queue
+	call pwm_init_bit_set
+	rshift8 regb, queue
+	call pwm_syncmode_set
+	rshift8 rega, queue
+	enable true
+	call pwm_syncmode_set_process
+
+	deposit rega
+	call pwm_gpio_select
+	deposit regb
+	branch pwm_enable
+
+pwm_disable_in_syncmode:
+	deposit rega
+	call pwm_disable
+	deposit regb
+	call pwm_disable
+
+	rshift8 rega, queue
+	disable true
+	call pwm_syncmode_set_process
+	rshift8 regb, queue
+	disable true
+	call pwm_init_bit_set_process
+	rshift8 regb, queue
+	disable true
+	branch pwm_syncmode_set_process
+	
+
+pwm_syncmode_set:
+	isolate1 7, queue
+pwm_syncmode_set_process:	
+	and queue, 0x0f,queue
+	fetch 1,core_pwm_sync
+   	qsetflag true,pdata
+   	store 1,core_pwm_sync
+   	rtn
+
+pwm_init_bit_set:
+	isolate1 6, queue
+pwm_init_bit_set_process:	
+	and queue, 0x0f,queue
+	fetch 1, core_pwm_init
+	qsetflag true, pdata
+	store 1, core_pwm_init
+	rtn
+pwm_gpio_select:
+	call pwm_select_channel
+pwm_gpio_select_process:
+	lshift8 pdata,pdata
+	add queue,gpcfg_pwm_out0,temp
+	ior temp,pdata
+	branch gpio_config_param 
+
+pwm_enable:
+	enable user
+	call pwm_gpio_select
+	branch pwm_set_select
+	
+pwm_disable:
+	disable user
+	call pwm_select_channel
+	branch pwm_set_select
+
+pwm_set_select:
+	and queue, 0x0f,queue
+	fetch 1,core_pwm_en
+   	qsetflag user,pdata
+   	store 1,core_pwm_en
+	rtn
+pwm_select_channel:
+	rshift8 pdata,queue
+	and queue, 0x0f,queue
+	rtn
+
+
+
+wdt_init_config:
+	copy pdata,temp
+	bpatch patch1c_1,mem_patch1c
+	call wdt_set_enable	//enable
+	setarg 2048
+	isub temp,pdata
+	copy pdata,temp
+	rshift4 temp,temp
+	storet 1,core_write_wdt
+	nop 1400
+	copy pdata,temp
+	and_into 0x0f,temp
+	storet 1,core_write_wdt2
+	rtn
+ 
+
+wdt_set_enable:
+	enable user2
+	branch wdt_init_set
+
+	
+wdt_set_disable:
+	bpatch patch1c_2,mem_patch1c
+	disable user2
+wdt_init_set:
+	fetch 1,core_config
+   	setflag user2,3,pdata
+	store 1,core_config
+	rtn
+
+
+
+
+nec61212_init:
+	arg FUN_NEC_ENABLE|FUN_NEC_CLK_DIVIDE_24,temp
+	
+
+nec_init_config:
+	store 4,core_nec_start_addr
+	store 2,core_nec_rptr
+	storet 1,core_nec_ctrl
+	rtn
+
+//return:pdata is buffer size
+nec_check_rxbuff_size:
+	fetch 2,core_nec_rxitem
+	rtn
+
+nec_prepare_read:
+	fetchr contu,2,core_nec_rptr
+	fetchr contus,2,core_nec_start_addr
+	fetchr contue,2,core_nec_end_addr
+	rtn
+
+nec_read_done:
+	storer contu,2,core_nec_rptr
+	rtn
+
+//regc is callback function
+//output
+//user is disable mean data stop
+//rege is 0 mean repeat
+//rege is no zero mean data
+nec_parse_nec61212:
+	call enable_user
+	arg 0,rege
+	call nec_check_rxbuff_size
+	beq 2,nec_parse_nec61212_check_timeout
+	sub pdata,4,null
+	rtn positive
+	call nec_prepare_read
+	ifetcht 2,contu
+	setarg NEC61212_DATA2REPEAT_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	nbranch nec_parse_nec61212_check_repeat_data,positive
+	copy regd,temp
+	setarg NEC61212_REPEAT2REPEAT_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	nbranch nec_parse_nec61212_check_repeat_data,positive
+	
+	copy regd,temp
+	setarg NEC61212_BOOT_CODE_START_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+	ifetcht 2,contu
+	setarg NEC61212_BOOT_CODE_END_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+	call nec_check_rxbuff_size
+	sub pdata,133,null
+	rtn positive
+	arg 32,loopcnt
+nec_parse_nec61212_data:
+	ifetcht 2,contu
+	setarg NEC61212_DATA_BIT_1_START_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+	ifetcht 2,contu
+	setarg NEC61212_DATA_BIT_1_END_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	nbranch nec_parse_nec61212_add_bit1,positive
+	copy regd,temp
+	setarg NEC61212_DATA_BIT_0_END_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	nbranch nec_parse_nec61212_add_bit0,positive
+
+
+nec_parse_nec61212_error_data:
+	copy regd,temp
+	setarg NEC61212_TIMEOUT_TIME
+	isub temp,null
+	branch nec_parse_nec61212_check_timeout_cb,zero
+	branch nec_read_done
+
+nec_parse_nec61212_add_bit1:
+	set1 32,rege
+nec_parse_nec61212_add_bit0:
+	rshift rege,rege
+	loop nec_parse_nec61212_data
+	branch nec_parse_nec61212_check_stop_bit
+
+nec_parse_nec61212_check_repeat_data:
+	call nec_check_rxbuff_size
+	sub pdata,7,null
+	rtn positive
+	ifetcht 2,contu
+	setarg NEC61212_REPEAT_START_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+	ifetcht 2,contu
+	setarg NEC61212_REPEAT_END_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+nec_parse_nec61212_check_stop_bit:
+	ifetcht 2,contu
+	setarg NEC61212_STOP_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+	call nec_read_done
+	copy regc,pdata
+	branch callback_func
+
+nec_parse_nec61212_check_timeout:
+	call nec_prepare_read
+	ifetcht 2,contu
+	setarg NEC61212_TIMEOUT_TIME
+	isub temp,null
+	nrtn zero
+nec_parse_nec61212_check_timeout_cb:
+	call nec_read_done
+	call disable_user
+	copy regc,pdata
+	branch callback_func
+
+
+
+//????????,????
+//??:temp ?????????? 2us???
+//pdata ????,us???
+nec_check_pulse_range_legal_default_deviation:
+	fetchr regb,1,mem_nec_decode_error_value
+
+//????????,????
+//??:temp ?????????? 2us???
+//pdata ????,us???
+//regb?????,???
+// |temp-pdata| / pdata < regb
+//??:positive is 1 mean error
+//0 mean true
+nec_check_pulse_range_legal:
+	copy temp,regd
+	imul32 regb,regb		//???????
+	lshift temp,temp		//???????us
+	isub temp,rega
+	ncall nec_check_pulse_range_legal_data_negative,positive
+	mul32 rega,100,pdata
+	isub regb,null
+	rtn
+
+nec_check_pulse_range_legal_data_negative:
+	sub rega,0,rega
+	rtn
+
+
+	
+
+
+
+
+
+
+	
+function_g2:
+	bpatch patch1c_3,mem_patch1c
+	jam 80,mem_AES_CMAC_data_length
+	arg mem_dat,contw
+	arg mem_le_srand,contr
+	call memcpy16
+	arg mem_sc_pubkey_local_x_256,contr
+	call memcpy32
+	arg mem_le_pubkey_remote_x_256,contr
+	call memcpy32
+	call inverse_memdat	
+	arg mem_le_mrand,contr
+	call store_inverse_k	
+	call function_AES_CMAC	
+
+	arg mem_AES_CMAC_temp,contw
+	call load_inverse_result
+	setarg 1000000
+	copy pdata,rega
+	fetch 4,mem_AES_CMAC_temp
+	idiv rega
+	call wait_div_end
+	remainder pdata
+	store 4,mem_gkey
+//call ice_break
+	rtn
+
+function_f6_eb:
+	jam 65,mem_AES_CMAC_data_length
+	arg mem_dat,contw
+	call store_addr_common_a
+	call store_addr_common_b
+	fetch 3,mem_le_pres+1
+	istore 3,contw
+//	arg mem_le_r,contr
+//	call memcpy16	
+	call get_r
+	
+	arg mem_le_mrand,contr
+	call memcpy16
+	arg mem_le_srand,contr
+	call memcpy16
+	call inverse_memdat
+	arg mem_le_mackey ,contr
+	arg mem_AES_CMAC_k,contw
+	call memcpy16
+//	call p_store_inverse_k	
+	branch function_AES_CMAC
+//	arg mem_AES_CMAC_temp,contw
+//	branch p_load_inverse_result
+
+get_r:
+	fetch 4,mem_le_tk
+	istore 4,contw
+	call memset0_4
+	branch memset0_8
+
+function_f6_ea:
+	bpatch patch1c_4,mem_patch1c
+	jam 65,mem_AES_CMAC_data_length
+	arg mem_dat,contw
+	call store_addr_common_b
+	call store_addr_common_a
+	fetch 3,mem_le_preq+1
+	istore 3,contw
+//	arg mem_le_r,contr
+//	call memcpy16	
+	call get_r
+	arg mem_le_srand,contr
+	call memcpy16
+	arg mem_le_mrand,contr
+	call memcpy16
+	call inverse_memdat
+	arg mem_le_mackey ,contr
+	arg mem_AES_CMAC_k,contw
+	call memcpy16
+//	call p_store_inverse_k	
+	call function_AES_CMAC
+	arg mem_AES_CMAC_temp,contw
+	branch load_inverse_result
+
+function_f5:
+	jam 32,mem_AES_CMAC_data_length
+	arg mem_le_dhkey_256 ,contr
+	arg mem_dat,contw
+	call memcpy32
+	call inverse_memdat
+	arg mem_le_slat,contr
+	call store_inverse_k	
+	call function_AES_CMAC
+	arg mem_AES_CMAC_k,contw
+	call store_aes_result
+	arg 1,temp
+	call function_f5_common
+	arg mem_le_ltk,contw
+	call load_inverse_result
+	arg 0,temp
+	call function_f5_common
+	arg mem_le_mackey,contw
+//	branch p_load_inverse_result
+	branch store_aes_result
+
+
+function_f5_common:
+	bpatch patch1c_5,mem_patch1c
+	jam 53,mem_AES_CMAC_data_length
+	setarg 0x100
+	store 2,mem_dat
+	call store_addr_common_b
+	call store_addr_common_a
+	arg mem_le_srand,contr
+	call memcpy16
+	arg mem_le_mrand,contr
+	call memcpy16
+//	fetch 4,mem_le_keyid 0x62746c65
+	setarg 0x6c65
+	istore 2,contw
+	setarg 0x6274
+	istore 2,contw
+	istoret 1,contw   //counter
+	call inverse_memdat	
+	branch function_AES_CMAC
+
+store_addr_common_b:
+	fetch 6,mem_le_lap
+	istore 6,contw
+	fetch 1,mem_le_conn_own_addr_type
+	istore 1,contw
+	rtn
+
+store_addr_common_a:
+	fetch 6,mem_le_plap
+	istore 6,contw
+//	setarg 0x2dcfc1
+//	istore 3,contw
+//	setarg 0xa71370
+//	istore 3,contw
+	fetch 1,mem_le_conn_peer_addr_type
+	istore 1,contw
+	rtn
+
+function_f4_ca:
+	jam 65,mem_AES_CMAC_data_length
+	fetch 1,mem_passkey_1bit
+	store 1,mem_dat
+	arg mem_sc_pubkey_local_x_256,contr
+	call memcpy32
+	arg mem_le_pubkey_remote_x_256,contr
+	call memcpy32
+	call inverse_memdat
+	arg mem_le_mrand,contr
+	call store_inverse_k	
+	branch function_AES_CMAC
+	
+
+function_f4_cb:
+	jam 65,mem_AES_CMAC_data_length
+	fetch 1,mem_passkey_1bit
+	store 1,mem_dat
+	arg mem_le_pubkey_remote_x_256,contr
+	call memcpy32
+	arg mem_sc_pubkey_local_x_256,contr
+	call memcpy32
+	call inverse_memdat
+	arg mem_le_srand,contr
+	call store_inverse_k	
+	branch function_AES_CMAC
+
+function_AES_CMAC:
+	bpatch patch1c_6,mem_patch1c
+	call function_AES_CMAC_Generate_Subkey
+//call ice_break
+//	jam 65,mem_AES_CMAC_data_length
+//call ice_break
+	fetch 1,mem_AES_CMAC_data_length
+	copy pdata,temp
+function_ceil16:
+	increase 15,pdata
+	rshift4 pdata,pdata
+	copy pdata,regb
+	branch function_AES_CMAC_set_flag_0_balnk,blank
+	and temp,0x0f,pdata
+	nbranch function_AES_CMAC_set_flag_0,blank
+//	flag =1;
+	arg mem_AES_CMAC_k1,regc
+	arg mem_dat,pdata
+	increase -16,pdata
+//	iadd temp,pdata
+//	isub rega,rega
+	iadd temp,rega	
+	arg mem_AES_CMAC_M_last,contw
+	arg 4,loopcnt	
+	call xor_loop
+//call ice_break
+//	arg mem_f4_k1,contr
+//	call load_key
+	branch function_AES_CMAC_aes
+
+function_AES_CMAC_set_flag_0_balnk:
+	arg 1,regb
+	arg 0,rega
+//	arg mem_f4_test_data,pdata
+	branch function_AES_CMAC_set_flag_0_common
+//call ice_break
+
+function_AES_CMAC_set_flag_0:
+//	flag = 0;
+	and temp,0x0f,rega
+function_AES_CMAC_set_flag_0_common:
+	arg mem_dat,pdata
+	iadd temp,pdata
+	isub rega,contr
+//call ice_break
+	arg mem_AES_CMAC_temp,contw
+	call function_AES_CMAC_padding
+//call ice_break
+	arg mem_AES_CMAC_k2,regc
+	arg mem_AES_CMAC_temp,rega
+	arg mem_AES_CMAC_M_last,contw
+	arg 4,loopcnt	
+	call xor_loop	
+//call ice_break
+
+//	arg mem_f4_k2,contr
+//	call load_key
+
+//	branch p_function_f4_aes
+function_AES_CMAC_aes:
+//	arg mem_f4_k,contr
+//	call load_key
+//	arg mem_AES_CMAC_xor,contr
+//	call load_data128
+	call aes_clear_data
+	call aes_init	
+//	arg mem_f4_k,contr
+//	call load_key
+	arg mem_dat,contr
+function_AES_CMAC_aes_loop:
+//generate_mic_loop:
+	increase -1,regb
+	deposit regb
+	branch function_AES_CMAC_aes_loop_end,blank
+	call load_data128
+	call do_aes_cbc
+	branch function_AES_CMAC_aes_loop
+//generate_mic_end:
+function_AES_CMAC_aes_loop_end:	
+	arg mem_AES_CMAC_temp,contw
+	call store_aes_result
+	arg mem_AES_CMAC_M_last,contr
+	call load_data128
+	call aes_init	
+	arg mem_AES_CMAC_temp,contr
+	call load_data128	
+	branch do_aes_cbc
+
+
+
+load_inverse_result:
+//	arg mem_AES_CMAC_temp,contw
+	copy contw,rega
+	call store_aes_result
+//	arg mem_AES_CMAC_temp,rega
+	arg 16,loopcnt
+	branch inverse_data
+	
+store_inverse_k:
+	arg mem_AES_CMAC_k,contw
+	call memcpy16
+inverse_k:	
+	arg 16,loopcnt
+	arg mem_AES_CMAC_k,rega	
+	branch inverse_data
+	
+inverse_memdat:
+	fetch 1,mem_AES_CMAC_data_length
+	copy pdata,loopcnt
+	arg mem_dat,rega
+	branch inverse_data
+
+bn_lshift_0_inverse:
+	ifetch 1,rega
+	lshift pdata,pdata
+	isolate1 0,regc
+	setflag true,0,pdata	
+	isolate1 8,pdata
+	setflag true,0,regc	
+	istore 1,rega
+         increase -1,rega
+	loop bn_lshift_0_inverse
+	rtn	
+
+function_AES_CMAC_k1_inverse:
+	arg mem_AES_CMAC_k1,rega
+function_AES_CMAC_inverse_common:
+	increase 15,rega
+	force 16,loopcnt
+	force 0,regc
+	branch  bn_lshift_0_inverse	
+
+function_AES_CMAC_k2_inverse:
+	arg mem_AES_CMAC_k2,rega
+	branch function_AES_CMAC_inverse_common
+	
+
+function_AES_CMAC_Generate_Subkey:
+	arg mem_AES_CMAC_k,contr
+	call load_key
+//	arg mem_AES_CMAC_xor,contr
+//	call aes_load_xor
+	force regidx_xor,regext_index
+	call aes_clear
+	call aes_clear_data
+	call do_aes_ocb
+	
+//	force 0x38,aes_ctrl
+//	force 0x0,aes_ctrl
+//	call wait_aes
+	arg mem_AES_CMAC_k1,contw
+	call store_aes_result
+function_AES_CMAC_k1:
+	bpatch patch1c_7,mem_patch1c
+	fetch 1,mem_AES_CMAC_k1
+	isolate1 7,pdata
+	nbranch function_AES_CMAC_k1_0,true	
+	call function_AES_CMAC_k1_inverse
+	
+//p_function_f4_k1_xor:
+	arg mem_AES_CMAC_k1,regc
+//	arg mem_AES_CMAC_rb,rega
+	arg mem_AES_CMAC_k1,contw
+//	arg 3,loopcnt
+//	call xor_loop
+	call function_AES_CMAC_xor_rb
+	branch function_AES_CMAC_k2
+function_AES_CMAC_k1_0:	
+	call function_AES_CMAC_k1_inverse
+function_AES_CMAC_k2:
+//call ice_break
+	arg mem_AES_CMAC_k1,contr
+	arg mem_AES_CMAC_k2,contw
+	call memcpy16
+	fetch 1,mem_AES_CMAC_k2
+	isolate1 7,pdata
+	nbranch function_AES_CMAC_k2_inverse,true		
+	call function_AES_CMAC_k2_inverse
+//p_function_f4_k2_xor:
+	arg mem_AES_CMAC_k2,regc
+//	arg mem_AES_CMAC_rb,rega
+	arg mem_AES_CMAC_k2,contw
+//	arg 3,loopcnt
+//	branch xor_loop	
+
+
+//rb:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 87 
+function_AES_CMAC_xor_rb:
+	arg 3,loopcnt
+function_AES_CMAC_xor_rb_loop:	
+	arg 0,temp
+	call function_AES_CMAC_xor_loop_common	
+	increase 4,regc
+	loop  function_AES_CMAC_xor_rb_loop
+	arg 0x8700,temp
+	lshift16 temp,temp
+function_AES_CMAC_xor_loop_common:	
+	ifetch   4,regc
+	ixor  temp,pdata
+	istore   4,contw	
+	rtn
+		
+
+
+
+//input rega :length <16	contr,contw
+function_AES_CMAC_padding:
+	bpatch patch1d_0,mem_patch1d
+	arg 16,loopcnt
+	arg 0,pdata
+function_AES_CMAC_padding_loop:
+	isub rega,null
+	branch function_AES_CMAC_padding_beq_length,zero
+	branch function_AES_CMAC_padding_big_length,positive
+	ifetcht 1,contr
+	istoret 1,contw
+function_AES_CMAC_padding_loop2:	
+	increase 1,pdata
+	loop function_AES_CMAC_padding_loop
+	rtn
+function_AES_CMAC_padding_beq_length:	
+	arg 0x80,temp
+function_AES_CMAC_padding_common:
+	istoret 1,contw
+	branch  function_AES_CMAC_padding_loop2
+
+function_AES_CMAC_padding_big_length:
+	arg 0,temp
+	branch function_AES_CMAC_padding_common
+
+	
+
+	
+concatenate_temp24:
+	lshift8 temp,temp
+concatenate_temp16:
+	lshift16 temp,temp
+	ior temp,temp
+	rtn
+
+
+
+
+generate_stk:
+	bpatch patch1d_1,mem_patch1d
+	call function_s1
+	arg mem_le_ltk,contw
+	branch store_aes_result
+
+	
+authenticate_rconfirm:
+	arg mem_le_srand,contw
+	branch authenticate_mconfirm,master
+	arg mem_le_mrand,contw
+authenticate_mconfirm:
+	copy contr,rega
+	call memcpy16
+	call function_c1
+	arg mem_le_rconfirm,contr
+	branch compare_res
+
+generate_confirm:
+	arg mem_le_mrand,rega
+	branch generate_mrand,master
+	arg mem_le_srand,rega
+generate_mrand:
+	copy rega,contw
+	call generate_random
+	branch function_c1
+
+generate_sk:
+	arg mem_le_skdm,contr
+	call load_data128
+	arg mem_le_ltk,contr
+	call load_regext
+	force 0x38,aes_ctrl
+	force 0x0,aes_ctrl
+	call wait_aes
+	arg mem_le_sk,contw
+	branch store_aes_result
+
+
+//input temp:counter; rega:len	
+ccm_b0:
+	force regidx_xor,regext_index				
+	force 0x49,pdata
+	branch iv_common
+	
+	
+first_block_counter:
+	force 0x49,pdata
+	branch first_block
+first_block_data:
+	force 1,pdata
+first_block:
+	force regidx_data,regext_index			
+iv_common:
+	lshift8 temp,regext
+	ior regext,regext
+	increase 1,regext_index
+	rshift8 temp,regext
+	rshift16 regext,regext
+	fetch 2,mem_ccm_iv
+	lshift16 pdata,pdata
+	ior regext,regext				
+	increase 1,regext_index
+	ifetchr regext, 4,contr					
+	increase 1,regext_index
+	ifetch 2,contr					
+	byteswap rega,regext
+	lshift16 regext,regext
+	ior regext,regext
+	increase 1,regext_index
+	rtn
+
+
+		
+generate_mic:
+	add regc,1,contr
+	ifetch 1,contr
+	iforce rega
+	call first_block_counter		//B0
+	call do_aes_ocb
+
+	force regidx_data,regext_index			
+	ifetch 1,regc
+	and_into 0x3,pdata
+	lshift16 pdata,regext
+	set1 8,regext
+	call clear_hidata	//B1
+	call do_aes_cbc
+
+	copy rega,loopcnt
+	add regc,2,contr
+	call padding_data	//数据填充
+generate_mic_loop:
+	call aes_load_data
+	call do_aes_cbc
+	deposit loopcnt
+	branch generate_mic_end,blank
+	branch generate_mic_loop
+generate_mic_end:
+	force regidx_result,regext_index
+	deposit regext
+	store 4,mem_le_mic
+	rtn
+
+aes_crypt_data:
+	increase 1,rega
+	call first_block_data
+	copy regc,contr
+	call aes_load_xor
+	call do_aes_ctr
+	call store_enc_data
+	increase 16,regc
+	increase -16,regb
+	branch aes_crypt_data,positive
+	rtn
+
+
+
+
+le_encrypt_new_start:
+	call ccm_init_common
+	bpatch patch1d_2,mem_patch1d
+	jam 0,core_ccm_aad0 
+	jam 1,core_ccm_aad1
+	fetch 1,mem_le_txheader
+	and_into 0x3,pdata
+	store 1,core_ccm_aad2
+	fetch 2,mem_contr
+	store 2,core_ccm_input_playload_addr
+	setarg mem_le_txpayload
+	store 2,core_ccm_output_playload_addr
+	
+	fetchr rega,1,mem_le_txlen
+	fetcht 5,mem_ccm_pcnt_tx				
+	call ccm_b0
+	jam 2,core_ccm_ctrl
+	jam 3,core_ccm_ctrl
+	
+	fetch 1,mem_le_txlen
+	store 2,core_ccm_inptr
+	increase 4,pdata
+	store 1,mem_le_txlen
+	fetch 5,mem_ccm_pcnt_tx
+	increase 1,pdata
+ 	set0 LE_CCM_DIRECTIONBIT,pdata
+	store 5,mem_ccm_pcnt_tx
+	rtn
+
+
+ccm_wait_enc:
+	fetch 2,core_ccm_outptr
+	isub temp,null
+	rtn zero 
+	nrtn blank
+//	call assert
+	branch ccm_wait_enc
+
+ccm_check_enc_done:
+	fetch 1,core_misc_status
+	bbit0 6,assert
+ccm_enc_done:
+	setarg mem_le_txpayload
+	iadd temp,contw	
+	arg regidx_result,regext_index
+	istorer regext, 4 ,contw	
+	branch ccm_ctrl_clr
+	
+ccm_init_common:
+	bpatch patch1d_3,mem_patch1d
+	force regidx_result,regext_index
+	call aes_clear
+	call aes_clear_data
+ 	setarg 0
+	store 2,core_ccm_inptr
+	rtn
+	
+wait_ccm_done:
+	fetch 1,core_misc_status
+	bbit0 6,wait_ccm_done
+ccm_ctrl_clr:
+	jam 0,core_ccm_ctrl
+	rtn
+
+
+wait_aes:
+	nbranch wait_aes,aes_ready
+	rtn
+
+do_aes_ocb:
+	force 0x30,aes_ctrl
+	force 0x0,aes_ctrl
+	branch wait_aes
+
+do_aes_cbc:
+	force 0x32,aes_ctrl
+	force 0x2,aes_ctrl
+	branch wait_aes
+
+do_aes_ctr:
+	force 0x34,aes_ctrl
+	force 0x4,aes_ctrl
+	branch wait_aes
+
+	
+aes_init:
+	force 1,aes_ctrl
+	force 0,aes_ctrl
+	rtn
+
+
+wait_keyinit_done:
+	fetch 1,core_aes_decode_key_init
+	bbit0 2,wait_keyinit_done
+	rtn
+
+
+dec_key_initial:
+	store 2,core_keybuf_saddr
+	force 0xc0,aes_ctrl
+	force 0x80,aes_ctrl	//dec key initial
+	branch wait_keyinit_done
+
+do_aes_ecb_dec:
+	force regidx_data,regext_index
+	copy regb,contr
+   	force 4,loopcnt
+	call aes_ecb_dec_loop
+
+	force 0x180,aes_ctrl	//dec load data
+	force 0x80,aes_ctrl
+	call wait_aes
+ecb_dec_generate: 
+	force regidx_result,regext_index
+	copy regc,contw
+   	force 4,loopcnt
+ecb_dec_generate_loop:
+    copy regext,pdata
+	istore 4,contw
+	increase 1,regext_index
+	loop ecb_dec_generate_loop
+	rtn
+
+aes_ecb_dec_loop:
+	ifetch 2,contr
+	ifetcht 2,contr
+	lshift16 temp,temp
+	ior temp,regext
+	increase 1,regext_index
+	loop aes_ecb_dec_loop
+	rtn
+
+
+do_aes_cbc_dec:
+	force regidx_xor,regext_index
+	copy rega,contr
+	force 4,loopcnt
+	call aes_ecb_dec_loop
+
+	force regidx_data,regext_index
+	copy regb,contr
+	force 4,loopcnt
+	call aes_ecb_dec_loop
+	force 0x182,aes_ctrl
+	force 0x82,aes_ctrl
+	call wait_aes
+	branch ecb_dec_generate
+
+	
+function_s1:
+	force regidx_data,regext_index
+	fetch 4,mem_le_mrand
+	iforce regext
+	increase 1,regext_index
+	ifetch 4,contr
+	iforce regext
+	increase 1,regext_index
+	fetch 4,mem_le_srand
+	iforce regext
+	increase 1,regext_index
+	ifetch 4,contr
+	iforce regext
+	increase 1,regext_index
+	call aes_clear
+	increase -4,regext_index
+	fetch 4,mem_le_tk
+	copy pdata,regext
+	increase 4,regext_index
+	force 0x38,aes_ctrl
+	force 0x8,aes_ctrl
+	branch wait_aes
+
+	
+function_c1:
+	bpatch patch1d_4,mem_patch1d
+	fetch 6,mem_le_lap
+	fetcht 6,mem_le_plap
+	branch function_c1_master,master
+	fetch 6,mem_le_plap
+	fetcht 6,mem_le_lap
+function_c1_master:
+	force regidx_xor,regext_index
+	copy temp,regext
+	increase 1,regext_index
+	rshift32 temp,regext
+	lshift16 pdata,pdata
+	ior regext,regext
+	increase 1,regext_index
+	rshift32 pdata,regext
+	increase 1,regext_index
+	force 0,regext					
+	force 0,pdata
+	fetch 1,mem_le_conn_peer_addr_type
+	fetcht 1,mem_le_adv_own_addr_type
+	nbranch function_c1_irat,master
+	//conn as master
+	fetch 1,mem_le_conn_own_addr_type
+	fetcht 1,mem_le_conn_peer_addr_type
+function_c1_irat:
+	store 1,mem_le_iat
+	storet 1,mem_le_rat
+	force regidx_data,regext_index
+	arg mem_le_iat,regb
+	force 4,loopcnt
+function_c1_loop1:
+	ifetch 4,rega		
+	ifetcht 4,regb
+	ixor temp,regext
+	increase 1,regext_index
+	increase 4,rega
+	increase 4,regb
+	loop function_c1_loop1		
+	call aes_clear				
+	increase -4,regext_index
+	fetch 4,mem_le_tk
+	copy pdata,regext
+	increase 4,regext_index
+	force 0x38,aes_ctrl
+	force 0xc,aes_ctrl
+	call wait_aes
+
+	call aes_clear_data
+	force 0x3a,aes_ctrl
+	force 0x8,aes_ctrl
+	branch wait_aes
+
+padding_data:
+	compare 0,loopcnt,3
+	rtn true
+	deposit contr
+	iadd loopcnt,contw
+	force 0,pdata
+padding_loop:
+	istore 1,contw
+	increase 1,loopcnt
+	compare 0,loopcnt,3
+	rtn true
+	branch padding_loop
+
+aes_load_data:
+	force regidx_data,regext_index
+load_data_loop:
+	deposit loopcnt
+	branch load_data_padding,blank
+	ifetch 4,contr
+	increase -4,loopcnt
+load_data_padding:
+	iforce regext
+	increase 1,regext_index
+	compare regidx_key,regext_index,0xf
+	rtn true
+	branch load_data_loop
+
+aes_load_xor:
+	force regidx_xor,regext_index
+	branch load_regext
+load_key:
+	force regidx_key,regext_index
+	branch load_regext
+load_data128:
+	force regidx_data,regext_index
+load_regext:
+	force 4,loopcnt
+load_regext_loop:
+	ifetch 4,contr
+	iforce regext
+	increase 1,regext_index
+	loop load_regext_loop
+	rtn
+
+load_sk:
+	arg mem_le_sk,contr
+	branch load_key
+
+clear_hidata:
+	force 4,loopcnt
+	branch clear_data_rest
+
+regext_clear:
+	force 0,regext_index
+	force 16,loopcnt
+	branch clear_loop
+
+aes_clear_data:
+	force regidx_data,regext_index
+aes_clear:
+	force 4,loopcnt
+clear_loop:
+	force 0,regext
+clear_data_rest:
+	increase 1,regext_index
+	loop clear_loop
+	rtn
+
+store_aes_result:
+	force regidx_result,regext_index
+	force 4,loopcnt
+send_aes_result_loop:
+	deposit regext
+	istore 4,contw
+	increase 1,regext_index
+	loop send_aes_result_loop
+	rtn
+
+store_enc_data:
+	force regidx_result,regext_index
+	copy regc,contw
+	add regb,1,loopcnt
+	sub loopcnt,15,null
+	branch store_enc_loop,positive
+	force 16,loopcnt
+store_enc_loop:
+	deposit regext
+	sub loopcnt,3,null
+	branch store_enc_byte,positive
+	istore 4,contw
+	increase -4,loopcnt
+	rtn zero
+	increase 1,regext_index
+	branch store_enc_loop
+store_enc_byte:
+	istore 1,contw
+	rshift8 pdata,pdata
+	loop store_enc_byte
+	rtn
+	
+	
+compare_res:
+	force regidx_result,regext_index
+	force 4,loopcnt
+compare_res_loop:
+	ifetch 4,contr
+	isub regext,null
+	nrtn zero
+	increase 1,regext_index
+	loop compare_res_loop
+	branch enable_zero
+
+enable_authrom:
+	fetch 1,core_clkoff
+	set0 CLOCK_OFF_AUTH_ROM,pdata
+	store 1,core_clkoff
+	rtn
+
+disable_authrom:
+	fetch 1,core_clkoff
+	set1 CLOCK_OFF_AUTH_ROM,pdata
+	store 1,core_clkoff
+	rtn
+
+//24 mem_p :ff ff ff ff ff ff ff ff fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+//24 mem_a: fc ff ff ff ff ff ff ff fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+//24 mem_b: b1 b9 46 c1 ec de b8 fe 49 30 24 72 ab e9 a7 0f e7 80 9c e5 19 05 21 64
+//24 mem_gx :12 10 ff 82 fd 0a ff f4 00 88 a1 43 eb 20 bf 7c f6 90 30 b0 0e a8 8d 18
+//24 mem_gy :11 48 79 1e a1 77 f9 73 d5 cd 24 6b ed 11 10 63 78 da c8 ff 95 2b 19 07
+//32 memh0   :19 cd e0 5b ab d9 83 1f 8c 68 05 9b 7f 52 0e 51 3a f5 4f a5 72 f3 6e 3c 85 ae 67 bb 67 e6 09 6a //use for sha
+init_memp:
+	arg mem_p,contw
+	setsect 0,0x3ffff
+	setsect 1,0x3ffff
+	setsect 2,0x3ffff
+	setsect 3,0x3fbff
+	istore 9,contw
+	setsect 0,0x3ffff
+	setsect 1,0x3ffff
+	setsect 2,0x3ffff
+	setsect 3,0x3ffff
+	istore 9,contw
+	setsect 0,0x3ffff
+	setsect 1,0x3ffff
+	setsect 2,0x3cfff
+	setsect 3,0x3ffff
+	istore 9,contw
+	setsect 0,0x3ffff
+	setsect 1,0x3ffff
+	setsect 2,0x3ffef
+	setsect 3,0x3ffff
+	istore 9,contw
+	setsect 0,0x3ffff
+	setsect 1,0x3ffff
+	setsect 2,0x3ffff
+	setsect 3,0x3ffff
+	istore 9,contw
+	setsect 0,0x3ffff
+	setsect 1,0x26c7f
+	setsect 2,0x146b
+	setsect 3,0x37bb3
+	istore 9,contw
+	setsect 0,0x1feb8
+	setsect 1,0x10c12
+	setsect 2,0x2b722
+	setsect 3,0x29fa6
+	istore 9,contw
+	setsect 0,0xe70f
+	setsect 1,0x16720
+	setsect 2,0x519e
+	setsect 3,0x19084
+	istore 9,contw
+	setsect 0,0x31012
+	setsect 1,0x360bf
+	setsect 2,0x3f0af
+	setsect 3,0x3d3
+	istore 9,contw
+	setsect 0,0x3a188
+	setsect 1,0x3ad0
+	setsect 2,0x3cbf2
+	setsect 3,0x243d9
+	istore 9,contw
+	setsect 0,0x2b030
+	setsect 1,0x36a03
+	setsect 2,0x11188
+	setsect 3,0x1e520
+	istore 9,contw
+	setsect 0,0x3a11e
+	setsect 1,0xfe5d
+	setsect 2,0xdd57
+	setsect 3,0x1ac93
+	istore 9,contw
+	setsect 0,0x11ed
+	setsect 1,0x218c4
+	setsect 2,0x8da7
+	setsect 3,0x257ff
+	istore 9,contw
+	setsect 0,0x3192b
+	setsect 1,0x34641
+	setsect 2,0x1be0c
+	setsect 3,0x366ad
+	istore 9,contw
+	setsect 0,0x1f83
+	setsect 1,0x15a23
+	setsect 2,0x3f9b0
+	setsect 3,0x3949
+	istore 9,contw
+	setsect 0,0x13a51
+	setsect 1,0x153fd
+	setsect 2,0x3372a
+	setsect 3,0xf1bb
+	istore 9,contw
+	setsect 0,0x3ae85
+	setsect 1,0x1eed9
+	setsect 2,0x9e66
+	setsect 3,0x1a8
+	istore 8,contw
+	rtn
+
+
+// mem_p_256:ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ff ff ff ff
+// mem_a_256: fc ff ff ff ff ff ff ff fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff b1 b9 46 c1 ec de b8 fe
+// mem_gx_256: 96 c2 98 d8 45 39 a1 f4 a0 33 eb 2d 81 7d 03 77 f2 40 a4 63 e5 e6 bc f8 47 42 2c e1 f2 d1 17 6b
+// mem_gy_256: f5 51 bf 37 68 40 b6 cb ce 5e 31 6b 57 33 ce 2b 16 9e 0f 7c 4a eb e7 8e 9b 7f 1a fe e2 42 e3 4f
+// mem_le_slat :be 83 60 5a db 0b 37 60 38 a5 f5 aa 91 83 88 6c
+init_memp_256:
+ 	arg mem_p_256,contw
+        setsect 0,0x3ffff
+        setsect 1,0x3ffff
+        setsect 2,0x3ffff
+        setsect 3,0x3ffff
+        istore 9,contw
+        setsect 0,0x3ffff
+        setsect 1,0x3f
+        setsect 2,0x0
+        setsect 3,0x0
+        istore 9,contw
+        setsect 0,0x0
+        setsect 1,0x0
+        setsect 2,0x1000
+        setsect 3,0x0
+        istore 9,contw
+        setsect 0,0x3ff00
+        setsect 1,0x3ffff
+        setsect 2,0x3ffcf
+        setsect 3,0x3ffff
+        istore 9,contw
+        setsect 0,0x3ffff
+        setsect 1,0x3ffff
+        setsect 2,0x3ffff
+        setsect 3,0x3ff
+        istore 9,contw
+        setsect 0,0x0
+        setsect 1,0x0
+        setsect 2,0x0
+        setsect 3,0x0
+        istore 9,contw
+        setsect 0,0x10000
+        setsect 1,0x0
+        setsect 2,0x3f000
+        setsect 3,0x3ffff
+        istore 9,contw
+        setsect 0,0x296ff
+        setsect 1,0x22630
+        setsect 2,0x3945d
+        setsect 3,0x3d284
+        istore 9,contw
+        setsect 0,0x333a0
+        setsect 1,0x4b7a
+        setsect 2,0x37d8
+        setsect 3,0x3c9dc
+        istore 9,contw
+        setsect 0,0x3a440
+        setsect 1,0x1b958
+        setsect 2,0x38bce
+        setsect 3,0x1091f
+        istore 9,contw
+        setsect 0,0x2e12c
+        setsect 1,0x1f47c
+        setsect 2,0x356b1
+        setsect 3,0x2fd47
+        istore 9,contw
+        setsect 0,0x6837
+        setsect 1,0x2ed90
+        setsect 2,0x1ecec
+        setsect 3,0x1acc5
+        istore 9,contw
+        setsect 0,0x23357
+        setsect 1,0x18af3
+        setsect 2,0xf9e1
+        setsect 3,0x129f0
+        istore 9,contw
+        setsect 0,0x2e7eb
+        setsect 1,0x3e6e3
+        setsect 2,0x3e1a7
+        setsect 3,0x10b8b
+        istore 9,contw
+        setsect 0,0x24fe3
+        setsect 1,0x20ef
+        setsect 2,0x1b5a6
+        setsect 3,0xdc2f
+        istore 9,contw
+        setsect 0,0x13860
+        setsect 1,0x2bd69
+        setsect 2,0x391a
+        setsect 3,0x1b222
+        istore 9,contw
+        rtn
+
+
+
+
+
+publickey_init:
+//	fetch 1,mem_ssp_enable
+//	nbranch sp_initialize,blank
+	branch sp_initialize_256
+
+sp_calc_sequence_256_check:
+	bpatch patch1d_5,mem_patch1d
+//	fetch 1,mem_ssp_enable
+//	rtn blank
+//	fetch 1,mem_sp_local_key_invalid
+//	rtnne SP_KEY_VALID
+	fetch 1,mem_secure_connections_enable
+	rtn blank
+	fetch 1,mem_sc_local_key_invalid
+	rtneq SP_KEY_VALID_256
+//	fetch 2,mem_ui_state_map
+//	bbit1 UI_STATE_BT_CONNECTED,stop_publickey_calc_256
+	fetch 1,mem_sc_calc
+	beq SP_CALC_STANDBY,sp_initialize_256
+	rtn
+stop_publickey_calc_256:
+	jam SP_CALC_STANDBY,mem_sc_calc	
+	rtn
+
+
+	
+
+sp_clear_flags:
+	bpatch patch1d_6,mem_patch1d
+	setarg mem_sp_state_end
+	arg mem_sp_state_start,contw
+	isub contw,loopcnt
+	call clear_mem
+	setarg mem_sp_state_xmem_end
+	arg mem_sp_state_xmem,contw
+	isub contw,loopcnt
+	branch clear_mem
+
+
+
+sp_calc_check_publickey_256:
+	call sp_calc_b256
+	arg mem_le_pubkey_remote_y_256,rega
+	arg mem_t7_256,contw
+	call bn_sqrmod_256   
+	arg mem_le_pubkey_remote_x_256,rega
+	arg mem_t2_256,contw
+	call bn_sqrmod_256   
+  	arg mem_t2_256,rega
+	arg mem_le_pubkey_remote_x_256,regb
+	arg mem_t2_256,contw
+	call bn_mulmod_256	
+  	arg mem_a_256,rega
+	arg mem_le_pubkey_remote_x_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256	
+  	arg mem_t3_256,rega
+	arg mem_t2_256,regb
+	arg mem_t2_256,contw
+	call bn_addmod_256	 
+  	arg mem_t0_256,rega
+	arg mem_t2_256,regb
+	arg mem_t0_256,contw
+	call bn_addmod_256	 
+	arg 32,loopcnt
+  	arg mem_t7_256,rega
+	arg mem_t0_256,regb
+	branch  string_compare
+	
+sp_calc_b256:
+	arg mem_gy_256,rega
+	arg mem_t0_256,contw
+	call bn_sqrmod_256   
+	arg mem_gx_256,rega
+	arg mem_t2_256,contw
+	call bn_sqrmod_256    
+  	arg mem_t2_256,rega
+	arg mem_gx_256,regb
+	arg mem_t2_256,contw
+	call bn_mulmod_256	
+  	arg mem_a_256,rega
+	arg mem_gx_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256	 
+  	arg mem_t3_256,rega
+	arg mem_t2_256,regb
+	arg mem_t2_256,contw
+	call bn_addmod_256	 
+  	arg mem_t0_256,rega
+	arg mem_t2_256,regb
+	arg mem_t0_256,contw
+	branch  bn_submod_256	
+
+
+
+
+random_generator:
+	increase -1,queue
+	nrtn     positive
+	random   pdata
+	istore   2,contw  
+	branch   random_generator
+compare4:
+	increase -1,queue
+	nbranch  compare4_success,positive
+	ifetch   4,rega
+	copy     pdata,temp
+	ifetch   4,regb
+	iflip    temp,pdata
+	nbranch  compare4_failed,zero
+	increase 4,rega
+	increase 4,regb
+	branch   compare4
+compare4_failed:
+	branch disable_true
+
+compare4_success:
+	branch enable_true
+
+
+
+
+bn_testbit:
+	and pdata,7,queue
+	rshift3 pdata,pdata
+	iadd contr,contr
+	ifetch 1,contr
+	qisolate0 pdata
+	rtn
+
+
+bn_eq_zero:
+	ifetch 8,contr
+	nrtn blank
+	ifetch 8,contr
+	nrtn blank
+	ifetch 8,contr
+	rtn
+	
+	
+	
+
+bn_eq_0:	
+	ifetch 4,rega
+	iforce temp
+	ifetch 4,regb
+	isub temp,null
+	nrtn zero
+	increase 4,rega
+	increase 4,regb
+	loop bn_eq_0
+	rtn
+	
+bn_bigeq:
+	force 6,loopcnt
+	increase 20,rega
+	increase 20,regb
+bn_bigeq_0:	
+	ifetch 4,regb
+	iforce temp
+	ifetch 4,rega
+	isub temp,pdata
+	nrtn positive
+	nrtn blank
+	increase -4,rega
+	increase -4,regb
+	loop bn_bigeq_0
+	rtn
+bn_add:
+	force 6,loopcnt
+	force 0,regc
+bn_add_0:	
+	ifetch 4,rega
+	iforce temp
+	ifetch 4,regb
+	iadd temp,pdata
+	iadd regc,pdata
+	istore 4,contw
+	isolate1 32,pdata
+	setflag true,0,regc
+	increase 4,rega
+	increase 4,regb
+	loop bn_add_0
+	rtn
+
+bn_sub:
+	force 6,loopcnt
+	force 0,regc
+bn_sub_0:	
+	ifetch 4,regb
+	iforce temp
+	ifetch 4,rega
+	isub temp,pdata
+	isub regc,pdata
+	istore 4,contw
+	isolate1 32,pdata
+	setflag true,0,regc
+	increase 4,rega
+	increase 4,regb
+	loop bn_sub_0
+	rtn
+
+bn_rshift6:
+	force 6,loopcnt
+	increase 20,rega
+bn_rshift:
+	force 0,regc
+bn_rshift_0:	
+	ifetch 4,rega
+	isolate1 0,pdata
+	setflag true,1,regc
+	rshift pdata,pdata
+	isolate1 0,regc
+	setflag true,31,pdata
+	istore 4,rega
+	increase -4,rega
+	rshift regc,regc
+	loop bn_rshift_0
+	rtn
+bn_lshift:
+	force 6,loopcnt
+	force 0,regc
+bn_lshift_0:	
+	ifetch 4,rega
+	isolate1 31,pdata
+	setflag true,1,regc
+	lshift pdata,pdata
+	isolate1 0,regc
+	setflag true,0,pdata
+	istore 4,rega
+	increase 4,rega
+	rshift regc,regc
+	loop bn_lshift_0
+	rtn
+	
+
+bn_load:
+	force 6,loopcnt
+bn_load_0:	
+	ifetch 4,contr
+	iforce regext
+	increase 1,regext_index
+	loop bn_load_0
+	rtn
+
+
+
+sp_initialize_256:	
+	bpatch patch1d_7,mem_patch1d
+	fetch 1,mem_secure_connections_enable
+	nbranch sp_pubkey_calc_256,blank
+//	call sp_clear_flags
+sc_reset:
+	jam SP_CALC_STANDBY,mem_sc_calc
+	jam SP_KEY_INVALID,mem_sc_local_key_invalid
+	rtn
+	
+	
+    	
+sp_wait_pubkey_calc_256_done:
+	fetch 1,mem_secure_connections_enable
+	rtn blank
+	fetch 1,mem_sc_local_key_invalid
+	rtneq SP_KEY_VALID_256
+	call sp_calc_sequence_256
+	branch sp_wait_pubkey_calc_256_done
+
+
+//BD1A3CCD:A6B89958:99B740EB:7B60FF4A:503F10D2:E3B3C974:385FC5A3:D4F6493F
+sp_debug_private_256:
+	arg mem_sc_private_key_256,contw
+        setsect 0,0x1abd
+        setsect 1,0x1b34f
+        setsect 2,0x19b8a
+        setsect 3,0x26562
+        istore 9,contw
+        setsect 0,0x340b7
+        setsect 1,0x1efa
+        setsect 2,0xaff6
+        setsect 3,0xfd41
+        istore 9,contw
+        setsect 0,0x3d210
+        setsect 1,0x26cf8
+        setsect 2,0x3874c
+        setsect 3,0x3157c
+        istore 9,contw
+        setsect 0,0x2d4a3
+        setsect 1,0x3d27d
+        setsect 2,0x3
+        istore 5,contw
+        rtn
+	
+
+sp_pubkey_calc_256:
+	fetch    1,mem_sc_local_key_invalid
+	rtnne SP_KEY_INVALID
+	fetch    1,mem_sc_calc
+	rtnne  SP_CALC_STANDBY
+	call init_memp_256
+	arg      mem_sc_private_key_256,contw 
+	force    15,queue
+	call     random_generator
+	random   pdata
+	rshift   pdata,pdata
+	istore   2,contw 
+	
+	fetch 1,mem_sp_debug_mode
+	ncall sp_debug_private_256,blank
+	
+	arg      mem_k_256,contw
+	arg      mem_sc_private_key_256,contr	
+	call     memcpy32 //mem_sp_private_key=>mem_k 
+
+	arg      mem_ax_256,contw
+	arg      mem_gx_256,contr
+	call     memcpy64 //mem_gx=>mem_ax 
+	
+	arg      mem_az_256,contw
+	call      clear_mem_256
+	jam      1,mem_az_256 //0=>mem_az 
+
+	call     eckp_calc_init_256
+	jam SP_CALC_PUBKEY_256,mem_sc_calc
+	rtn    
+
+sp_pubkey_generated_256:
+	arg      mem_sc_pubkey_local_x_256,contw
+	arg      mem_bx_256,contr
+	call     memcpy64   
+	jam      SP_KEY_VALID_256,mem_sc_local_key_invalid
+	jam      SP_CALC_STANDBY,mem_sc_calc
+	rtn
+	
+
+
+sp_dhkey_calc_256:
+	fetch    1,mem_sp_dhkey_invalid
+	rtnne  SP_KEY_INVALID
+	fetch    1,mem_sc_calc
+	rtnne  SP_CALC_STANDBY
+
+	arg      mem_k_256,contw
+	arg      mem_sc_private_key_256,contr	
+	call     memcpy32
+
+	arg      mem_ax_256,contw
+	arg      mem_le_pubkey_remote_x_256,contr
+	call     memcpy64
+
+	arg      mem_az_256,contw
+	call     clear_mem_256
+	jam      1,mem_az_256 //0=>mem_az 
+
+	call     eckp_calc_init_256
+	jam     SP_CALC_DHKEY_256,mem_sc_calc
+	rtn 
+
+
+sp_dhkey_generated_256:
+//	jam SP_FLAG_COMMIT,mem_sp_dh_ready
+	arg mem_le_dhkey_256,contw
+	arg mem_bx_256,contr
+	call memcpy32
+	jam SP_KEY_VALID_256,mem_sp_dhkey_invalid
+	jam SP_CALC_STANDBY,mem_sc_calc
+	rtn
+
+
+
+sp_calc_sequence_256:
+	fetch 1,mem_secure_connections_enable
+	rtn blank
+	fetch 1,mem_sc_calc
+	rtn blank
+	increase 0x80,pdata
+	store    1,mem_sc_calc
+	rtnbit1 7
+	fetch    2,mem_ec_loopc
+	branch   sp_calc_sequence_done_256,blank
+	branch   eckp_calc_256
+
+sp_calc_sequence_done_256:    
+	bpatch patch1e_0,mem_patch1e
+	call ecunmapz_256
+	fetch 1,mem_sc_calc
+	beq  SP_CALC_PUBKEY_256,sp_pubkey_generated_256
+	beq  SP_CALC_DHKEY_256,sp_dhkey_generated_256
+	rtn
+
+
+eckp_calc_256:
+	call     ecdbl_256  
+	fetch    2,mem_ec_loopc
+	increase -1,pdata
+	store    2,mem_ec_loopc
+	arg      mem_k_256,contr
+	call     bn_testbit
+	rtn	true
+	branch     ecadd_256   
+
+eckp_calc_init_256:
+	bpatch patch1e_1,mem_patch1e
+	setarg 256
+	store 2,mem_ec_loopc
+eckp_calc_init_256_1:    
+	fetch    2,mem_ec_loopc
+	rtn      blank
+	increase -1,pdata
+	store    2,mem_ec_loopc
+	arg      mem_k_256,contr
+	call     bn_testbit
+	branch eckp_calc_init_256_1,true
+	arg      mem_ax_256,contr
+	arg      mem_cx_256,contw
+	branch     memcpy96	
+
+
+ecunmapz_256:
+	arg mem_cz_256,rega
+	arg mem_t3_256,contw
+	call bn_invmod_256			
+	arg mem_t3_256,rega
+	arg mem_t1_256,contw		
+	call bn_sqrmod_256			
+	arg mem_cx_256,rega
+	arg mem_t1_256,regb
+	arg mem_bx_256,contw
+	call bn_mulmod_256
+	arg mem_t3_256,rega
+	arg mem_t1_256,regb
+	arg mem_t2_256,contw			
+	call bn_mulmod_256			
+	arg mem_cy_256,rega
+	arg mem_t2_256,regb
+	arg mem_by_256,contw
+	branch bn_mulmod_256	
+	
+ecdbl_256:
+	arg mem_cz_256,rega
+	arg mem_t2_256,contw
+	call bn_sqrmod_256
+	arg mem_t2_256,rega
+	arg mem_t3_256,contw
+	call bn_sqrmod_256
+//call ice_break
+	arg mem_a_256,rega
+	arg mem_t3_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256		
+	arg mem_cx_256,rega
+	arg mem_t2_256,contw
+	call bn_sqrmod_256
+//call ice_break
+	arg mem_t2_256,contr
+	arg mem_t1_256,contw
+	call memcpy32
+	arg mem_t1_256,rega
+	call bn_lshiftmod_256
+	arg mem_t2_256,rega
+	arg mem_t1_256,regb
+	arg mem_t2_256,contw
+	call bn_addmod_256
+//call ice_break
+	arg mem_t2_256,rega
+	arg mem_t3_256,regb
+	arg mem_t2_256,contw
+	call bn_addmod_256		
+//call ice_break
+	arg mem_cx_256,contr
+	arg mem_t1_256,contw
+	call memcpy32
+	arg mem_cy_256,rega
+	arg mem_t3_256,contw
+	call bn_sqrmod_256
+	arg mem_t1_256,rega
+	call bn_lshiftmod_256
+	arg mem_t1_256,rega
+	call bn_lshiftmod_256
+	arg mem_t1_256,rega		
+	arg mem_t3_256,regb
+	arg mem_t1_256,contw
+	call bn_mulmod_256		//S = 4X1Y1^2
+	arg mem_t3_256,rega
+	arg mem_t0_256,contw
+	call bn_sqrmod_256
+	arg mem_t0_256,rega
+	call bn_lshiftmod_256
+	arg mem_t0_256,rega
+	call bn_lshiftmod_256		
+	arg mem_t0_256,rega		
+	call bn_lshiftmod_256	//T = 8Y1^4	
+	arg mem_cy_256,contr
+	arg mem_t3_256,contw
+	call memcpy32
+	arg mem_t3_256,rega
+	call bn_lshiftmod_256
+	arg mem_t3_256,rega
+	arg mem_cz_256,regb
+	arg mem_cz_256,contw
+	call bn_mulmod_256		//z = 2Y1Z1
+
+
+	arg mem_t2_256,rega
+	arg mem_t3_256,contw
+	call bn_sqrmod_256   // M ^2
+//call ice_break
+	arg mem_t3_256,rega
+	arg mem_t1_256,regb
+	arg mem_t3_256,contw
+	call bn_submod_256  // t2^2 - 4*cx *cy^2 
+	arg mem_t3_256,rega
+	arg mem_t1_256,regb
+	arg mem_cx_256,contw
+	call bn_submod_256   //X2
+	arg mem_t1_256,rega
+	arg mem_cx_256,regb
+	arg mem_t3_256,contw
+	call bn_submod_256   //S-X2
+	arg mem_t3_256,rega
+	arg mem_t2_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256	//M(S-X2)	
+	arg mem_t3_256,rega
+	arg mem_t0_256,regb
+	arg mem_cy_256,contw
+	branch bn_submod_256  //M(S-X2)-T Y2	
+
+ecadd_256:
+
+	arg mem_az_256,rega
+	arg mem_t7_256,contw
+	call bn_sqrmod_256
+	arg mem_cx_256,rega
+	arg mem_t7_256,regb
+	arg mem_t0_256,contw
+	call bn_mulmod_256		
+
+
+	arg mem_az_256,rega
+	arg mem_t7_256,regb
+	arg mem_t7_256,contw
+	call bn_mulmod_256	
+	arg mem_cy_256,rega
+	arg mem_t7_256,regb
+	arg mem_t1_256,contw
+	call bn_mulmod_256		
+
+
+	arg mem_cz_256,rega
+	arg mem_t7_256,contw
+	call bn_sqrmod_256
+	arg mem_ax_256,rega
+	arg mem_t7_256,regb
+	arg mem_t2_256,contw
+	call bn_mulmod_256		
+
+	arg mem_cz_256,rega
+	arg mem_t7_256,regb
+	arg mem_t7_256,contw
+	call bn_mulmod_256	
+	arg mem_ay_256,rega
+	arg mem_t7_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256		
+
+
+//	arg mem_t0_256,rega
+//	arg mem_t2_256,regb
+	arg mem_t0_256,regb
+	arg mem_t2_256,rega
+	arg mem_t7_256,contw
+	call bn_submod_256		
+	arg mem_t0_256,rega
+	arg mem_t2_256,regb
+	arg mem_t0_256,contw
+	call bn_addmod_256		
+//	arg mem_t1_256,rega
+//	arg mem_t3_256,regb
+	arg mem_t1_256,regb
+	arg mem_t3_256,rega
+	arg mem_t2_256,contw
+	call bn_submod_256		
+	arg mem_t1_256,rega
+	arg mem_t3_256,regb
+	arg mem_t1_256,contw
+	call bn_addmod_256		
+	arg mem_t1_256,rega
+	arg mem_t7_256,regb
+	arg mem_t1_256,contw
+	call bn_mulmod_256		
+	arg mem_cz_256,rega
+	arg mem_az_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256	      //Z0Z1
+	arg mem_t3_256,rega
+	arg mem_t7_256,regb
+	arg mem_cz_256,contw
+	call bn_mulmod_256		
+
+	arg mem_t7_256,rega
+	arg mem_t7_256,contw
+	call bn_sqrmod_256		
+	arg mem_t7_256,rega
+	arg mem_t0_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256		
+	arg mem_t7_256,rega
+	arg mem_t1_256,regb
+	arg mem_t1_256,contw
+	call bn_mulmod_256		
+	arg mem_t2_256,rega
+	arg mem_cx_256,contw
+	call bn_sqrmod_256		
+	arg mem_cx_256,rega
+	arg mem_t3_256,regb
+	arg mem_cx_256,contw
+	call bn_submod_256		
+	arg mem_cx_256,contr
+	arg mem_t7_256,contw
+	call memcpy32
+	arg mem_t7_256,rega
+	call bn_lshiftmod_256		
+	arg mem_t3_256,rega
+	arg mem_t7_256,regb
+	arg mem_t3_256,contw
+	call bn_submod_256		
+	arg mem_t3_256,rega
+	arg mem_t2_256,regb
+	arg mem_t2_256,contw
+	call bn_mulmod_256		
+	arg mem_t2_256,rega
+	arg mem_t1_256,regb
+	arg mem_cy_256,contw
+	call bn_submod_256	
+	arg mem_cy_256,rega
+	arg mem_p_256,regb
+	arg mem_cy_256,contw
+	force 0,regc
+	fetch 1,mem_cy_256
+	isolate1 0,pdata
+	call bn_add_256,true
+	copy regc,alarm
+	arg mem_cy_256,rega
+	call bn_rshift_256
+	fetch 1,mem_cy5_256
+	isolate1 0,alarm
+	setflag true,7,pdata
+	store 1,mem_cy5_256
+	rtn	
+
+bn_invmod_256:
+	copy contw,timeup					 
+	arg mem_tmp0_256,contw			 
+	call clear_mem_256
+	force 0,pdata
+//	store 4,mem_tmp52
+	store 4,mem_t2_256
+	jam 1,mem_tmp0_256      //y1
+	arg mem_tmp1_256,contw	//y2			 
+	call clear_mem_512      
+	arg mem_p_256,contr
+	arg mem_tmp2_256,contw		//j		 
+	call memcpy32
+	copy rega,contr
+	arg mem_tmp3_256,contw		//i		 
+	call memcpy32
+	
+//	arg mem_tmp22,rega
+//	arg mem_tmp32,regb
+//	call p_bn_bigeq_256
+//	branch assert,positive
+bn_invmod_256_2:	
+	arg mem_tmp3_256,contr
+	call bn_eq_zero_256
+	branch bn_invmod_256_0,blank
+//call ice_break    	
+//fetch 1,0x4ffe
+//increase 1,pdata
+//store 1,0x4ffe
+	arg mem_tmp3_256,rega
+	arg mem_tmp0_256,regb
+	call bn_rshifteven_256
+	arg mem_tmp2_256,rega
+	arg mem_tmp1_256,regb
+	call bn_rshifteven_256
+	
+	arg mem_tmp3_256,rega
+	arg mem_tmp2_256,regb
+	call bn_bigeq_256
+	branch bn_invmod_256_1,positive
+	arg mem_tmp2_256,rega
+	arg mem_tmp3_256,regb
+	copy rega,contw
+	call bn_sub_256
+	arg mem_tmp0_256,rega
+	arg mem_tmp1_256,regb
+	copy regb,contw
+	call bn_add_256
+	ifetch 1,rega
+	iadd regc,regc
+	ifetch 1,regb
+	iadd regc,pdata
+	istore 1,regb
+	branch bn_invmod_256_2
+bn_invmod_256_1:
+	arg mem_tmp3_256,rega
+	arg mem_tmp2_256,regb
+	copy rega,contw
+	call bn_sub_256
+	arg mem_tmp1_256,rega
+	arg mem_tmp0_256,regb
+	copy regb,contw
+	call bn_add_256
+	ifetch 1,rega
+	iadd regc,regc
+	ifetch 1,regb
+	iadd regc,pdata
+	istore 1,regb
+	branch bn_invmod_256_2
+bn_invmod_256_0:
+//call ice_break
+	arg mem_tmp1_256,rega
+	copy timeup,contw
+	call  bn_p256mod
+//call ice_break
+	arg mem_p_256,rega
+	copy timeup,regb
+	copy timeup,contw
+	branch bn_submod_256
+
+
+bn_mulmod_256:
+	copy contw,timeup					
+	
+	force 0,regext_index
+	
+	arg mem_tmp1_256,contw
+	call clear_mem_512
+	arg mem_regext,contw
+	call clear_mem_512
+//	jam 0,mem_regext_index
+
+//	arg mem_tmp12,contw
+	copy rega,contr
+//	force 0,regext_index
+	jam 0,mem_regext
+	setarg 0
+	call bn_load_mem
+	copy regb,contr
+	call bn_load_256
+//	force 0,regb
+//	jam 0,mem_regb
+	force 0,queue
+	arg mem_tmp1_256,contw	
+bn_mulmod_256_1:	
+//	copy regb,pdata
+//	store 1,
+	arg mem_regext,temp
+	copy queue,regb
+	lshift2 regb,pdata
+//	lshift4 pdata,pdata
+	iadd temp,regb	
+	force 0,temp
+	force 0,regc
+bn_mulmod_256_0:
+//	copy contw,pdata
+//	store 2,mem_contw
+//call ice_break
+//	copy pdata,contw
+	ifetch 4,contw					
+	iforce rega
+//	copy regb,regext_index
+//	deposit regext
+	ifetch 4,regb
+	copy regc,regext_index
+	imul32 regext,pdata
+	iadd rega,pdata					
+	iadd temp,pdata					
+	istore 4,contw					
+	rshift32 pdata,temp				
+	increase 1,regc
+	compare 8,regc,0xff
+	nbranch bn_mulmod_256_0,true
+//call ice_break
+	deposit temp
+	istore 4,contw					
+	increase -32,contw
+//	fetch 1,mem_regb
+//	copy pdata,regb
+	increase 1,queue
+	compare 8,queue,0xff
+	nbranch bn_mulmod_256_1,true
+	arg mem_tmp1_256,rega
+	copy timeup,contw
+	branch bn_p256mod
+
+bn_p256mod:
+	bpatch patch1e_2,mem_patch1e
+	copy contw,timeup				
+	copy rega,alarm				
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	call memset0_4	
+	istore 8,contw
+	add rega,44,contr
+	call memcpy8
+	call memcpy12
+	copy regb,rega
+	call  bn_lshiftmod_256 //2S1
+	arg mem_tmp2_256,regb
+	copy alarm,rega   
+	copy timeup,contw
+	call bn_addmod_256 //T+2S1
+//call ice_break	
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	call memset0_4	
+	istore 8,contw
+	add alarm,48,contr
+	call memcpy16
+	call memset0_4	
+	copy regb,rega
+	call  bn_lshiftmod_256 //2S2
+//call ice_break	
+//	arg 0,regb
+
+	arg mem_tmp2_256,regb
+	copy timeup,rega   
+	copy rega,contw	
+	call bn_addmod_256  //+2S2
+//call ice_break	
+//	arg 0,regb
+		
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,32,contr
+	call memcpy12
+	call memset0_4	
+	istore 8,contw
+	add alarm,56,contr
+	call memcpy8
+	copy timeup,rega
+	copy rega,contw
+	call bn_addmod_256 //+S3
+//call ice_break	
+//	arg 0,regb
+
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,36,contr
+	call memcpy12
+	add alarm,52,contr	
+	call memcpy12
+	add alarm,52,contr
+	call memcpy4
+	add alarm,32,contr
+	call memcpy4
+	copy timeup,rega
+	copy rega,contw
+	call bn_addmod_256 //+S4	
+//call ice_break	
+//	arg 1,regb
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,44,contr
+	call memcpy12
+	call memset0_4	
+	istore 8,contw
+	add alarm,32,contr
+	call memcpy4
+	add alarm,40,contr
+	call memcpy4
+	copy timeup,rega
+	copy rega,contw
+	call bn_submod_256 //-D1	
+//call ice_break	
+//	arg 2,regb
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,48,contr
+	call memcpy8
+	call memcpy8
+	force 0,pdata
+	istore 8,contw
+	add alarm,36,contr
+	call memcpy4
+	add alarm,44,contr
+	call memcpy4
+	copy timeup,rega
+	copy rega,contw
+	call bn_submod_256 //-D2	
+//call ice_break	
+//	arg 3,regb
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,52,contr
+	call memcpy12
+	add alarm,32,contr
+	call memcpy12
+	call memset0_4	
+	add alarm,48,contr
+	call memcpy4
+	copy timeup,rega
+	copy rega,contw
+	call bn_submod_256 //-D3
+//call ice_break	
+//	arg 4,regb
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,56,contr
+	call memcpy8
+	call memset0_4	
+	add alarm,36,contr
+	call memcpy12
+	call memset0_4	
+	add alarm,52,contr
+	call memcpy4
+	copy timeup,rega
+	copy rega,contw
+	branch  bn_submod_256 //-D4	
+
+
+bn_load_mem:
+	force 32,loopcnt
+	arg mem_regext,contw
+	iadd contw,contw
+	branch memcpy
+
+bn_load_256:
+	force 8,loopcnt
+	branch bn_load_0
+
+bn_sqrmod_256:
+	copy rega,regb
+	branch bn_mulmod_256
+
+bn_add_256:
+	force 8,loopcnt
+ 	branch bn_add+1
+
+bn_addmod_256:
+	call bn_add_256
+	copy contw,rega
+	branch bn_lshiftmod_ismod_256
+
+bn_lshiftmod_256:
+	call bn_lshift_256
+bn_lshiftmod_ismod_256:	
+	isolate1 0,regc
+	branch bn_lshiftmod_p_256,true
+	arg mem_p_256,regb
+	copy rega,regc
+	increase -32,rega
+	call bn_bigeq_256
+	nrtn positive
+	copy regc,rega
+	branch sub_p2_256
+	
+bn_lshiftmod_p_256:
+	call sub_p2_256
+//	nrtn true
+	copy rega,regc
+	increase -32,rega
+	arg mem_p_256,regb
+	call bn_bigeq_256
+	nrtn positive
+	copy regc,rega
+	branch sub_p2_256
+		
+	
+sub_p2_256:
+	increase -32,rega
+	arg mem_p_256,regb
+	copy rega,contw
+	branch bn_sub_256
+	
+
+
+	
+bn_submod_256:
+	call bn_sub_256
+//	isolate1 0,regc
+	branch  bn_submod_256_np,true
+//	copy rega,regc
+//	increase -32,rega
+	add contw,-32,rega
+	arg mem_p_256,regb
+	call bn_bigeq_256
+	nrtn positive
+	arg mem_p_256,regb
+	add contw,-32,rega
+//	copy regc,rega
+	copy rega,contw
+	branch  bn_sub_256
+bn_submod_256_np:	
+	add contw,-32,rega
+	arg mem_p_256,regb
+	copy rega,contw
+	call bn_add_256
+//	isolate1 0,regc
+	rtn true
+	add contw,-32,rega
+	arg mem_p_256,regb
+	copy rega,contw
+	branch bn_add_256	
+
+
+ 
+bn_sub_256:
+	force 8,loopcnt
+	branch bn_sub+1
+
+bn_rshift_256:
+	force 8,loopcnt
+	increase 28,rega
+	branch bn_rshift
+
+bn_lshift_256:
+	force 8,loopcnt
+	force 0,regc
+	branch bn_lshift_0
+
+bn_bigeq_256:
+	force 8,loopcnt
+	increase 28,rega
+	increase 28,regb
+	branch bn_bigeq_0
+
+
+bn_eq_zero_256:
+	ifetch 8,contr
+	nrtn blank
+	branch bn_eq_zero
+
+
+
+	
+bn_rshifteven_256:
+	copy rega,alarm
+bn_rshifteven_256_1:
+	copy alarm,rega
+	ifetch 1,rega
+	isolate1 0,pdata
+	rtn true
+	call bn_rshift_256
+	ifetch 1,regb
+	isolate0 0,pdata
+	branch bn_rshifteven_256_0,true
+	arg mem_p_256,rega
+	copy regb,contw
+	call bn_add_256
+	ifetch 1,regb
+	iadd regc,pdata
+	istore 1,regb						 
+	increase -32,regb
+bn_rshifteven_256_0:
+	add regb,32,rega
+	force 9,loopcnt
+	call bn_rshift
+	branch bn_rshifteven_256_1		
+
+
+ui_init:
+	rtn wake
+	call lpm_disable_exen_output
+	call ui_button_init
+	call ui_timer_init
+	branch ui_led_init_global
+
+ui_dispatch:
+	call ui_led_dispatch
+	branch ui_timer_check
+	
+ui_button_init:
+	fetch 1,mem_ui_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	iforce temp
+	call gpio_config_output
+	fetcht 1,mem_ui_button_gpio
+	call gpio_out_inactive
+	nop 100
+	fetcht 1,mem_ui_button_gpio
+	call gpio_config_input
+	branch ui_button_polling
+
+
+	
+ui_button_polling:
+	bpatch patch1e_3,mem_patch1e
+	fetch 1,mem_ui_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	copy pdata,temp
+	call gpio_get_bit
+	nbranch ui_button_up,true
+	//fall through
+ui_button_down:
+	call ui_button_check_long_press
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BTN_DOWN,pdata
+	store 2,mem_ui_state_map
+	fetch 1,mem_ui_button_last_state
+	rtneq UI_BUTTON_STATE_DOWN
+	jam UI_BUTTON_STATE_DOWN,mem_ui_button_last_state
+	//Down Edge
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_ui_button_timer //start long press timer
+	call lpm_button_get_wake_lock
+	jam BT_EVT_BUTTON_DOWN,mem_fifo_temp
+	branch ui_ipc_send_event
+ui_button_up:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BTN_DOWN,pdata
+	store 2,mem_ui_state_map
+	fetch 1,mem_ui_button_last_state
+	rtneq UI_BUTTON_STATE_UP
+	jam UI_BUTTON_STATE_UP,mem_ui_button_last_state
+	//Up Edge
+	jam 0,mem_ui_button_timer//stop long press timer
+	call lpm_button_clean_wake_lock
+	jam BT_EVT_BUTTON_UP,mem_fifo_temp
+	branch ui_ipc_send_event
+
+ui_button_check_long_press:
+	fetch 1,mem_ui_button_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_ui_button_timer
+	nrtn blank
+	//Long Press
+	jam BT_EVT_BUTTON_LONG_PRESSED,mem_fifo_temp
+	branch ui_ipc_send_event
+
+lpm_button_get_wake_lock:
+	arg wake_lock_button,queue
+	branch lpm_get_wake_lock
+	
+lpm_button_clean_wake_lock:
+	arg wake_lock_button,queue
+	branch lpm_put_wake_lock
+
+
+
+
+//input:rega :struct number
+//output:regb :current strutct starting pointer
+calc_curr_struct_prt:
+	bpatch patch1e_4,mem_patch1e
+	fetch 2,mem_ui_led_struct_ptr
+	mul32 rega,LED_OFFSET_LENGTH,regb
+	iadd regb,regb
+	rtn
+
+
+ui_led_init_global:
+	fetch 1,mem_ui_led_struct_num
+	rtn blank
+	copy pdata,loopcnt
+	fetch 2,mem_ui_led_struct_ptr
+	copy pdata,regb
+ui_led_init_loop:
+	add regb,LED_OFFSET_LED_GPIO,regc
+	ifetcht 1,regc
+	call ui_led_init_set
+	increase LED_OFFSET_LENGTH,regb
+	loop ui_led_init_loop
+	rtn
+
+//mem_ui_led_init_state_set =0,set init off else set init on
+ui_led_init_set:
+	fetch 1,mem_ui_led_init_state_set
+	branch gpio_out_inactive,blank
+	branch gpio_out_active
+	
+//input:rega :struct number
+ui_led_on_global:
+	call calc_curr_struct_prt
+	setarg UI_LED_STATE_LIGHTING
+	istore 1,regb
+	call ui_led_stop_timer
+	branch ui_led_on_static
+
+	
+//input:rega :struct number
+ui_led_blink_stop_global:
+ui_led_off_global:
+	
+	call calc_curr_struct_prt
+	setarg UI_LED_STATE_DARKING
+	istore 1,regb
+	
+	call ui_led_stop_timer
+	branch ui_led_off_static
+
+
+//input:rega :struct number
+ui_led_blink_start_global:
+	call calc_curr_struct_prt
+	setarg UI_LED_STATE_BLINK_START
+	istore 1,regb
+	setarg LED_INFINITE_FLASH_NUM
+	istore 1,contw
+	branch ui_led_off_static
+
+
+//input:rega :struct number
+//REGC: the point that want to set led style address
+ui_led_set_style_global:
+	call calc_curr_struct_prt
+	arg LED_OFFSET_LENGTH,loopcnt
+	copy regc,contr
+	copy regb,contw
+	branch memcpy_fast
+
+
+
+ui_led_dispatch:
+	fetch 1,mem_ui_led_struct_num
+	rtn blank
+	arg 0,rega
+ui_led_blink_polling:
+	call ui_led_change_style_by_type
+	increase 1,rega
+	fetch 1,mem_ui_led_struct_num
+	isub rega,null
+	rtn zero
+	branch ui_led_blink_polling
+
+
+ui_led_off_static:
+	add regb,LED_OFFSET_LED_GPIO,regc
+	ifetcht 1,regc
+	branch gpio_out_inactive
+
+
+ui_led_on_static:
+	add regb,LED_OFFSET_LED_GPIO,regc
+	ifetcht 1,regc
+	branch gpio_out_active
+
+
+//input:rega :struct number
+ui_led_change_style_by_type:
+	add rega,ui_led_blink,queue
+	call timer_check
+	nrtn blank			//timer out
+	
+	call calc_curr_struct_prt
+
+	ifetch 1,regb			//led type
+
+	beq UI_LED_STATE_LIGHTING,ui_led_on_static
+	beq UI_LED_STATE_DARKING,ui_led_off_static
+	beq UI_LED_STATE_BLINK_STOP,ui_led_off_static
+	beq UI_LED_STATE_BLINK_DARKING,ui_led_blink_state_darking
+ui_led_blink_state_lighting:
+	call ui_led_on_static
+	add regb,LED_OFFSET_CB_LEDON,regc
+	call push_stack
+	ifetch 2,regc
+	call callback_func
+	call pop_stack
+	setarg UI_LED_STATE_BLINK_DARKING
+	istore 1,regb
+	add regb,LED_OFFSET_ON_TIME,regc
+	ifetch 2,regc
+	branch ui_led_blink_timer_start
+	
+
+ui_led_blink_state_darking:
+	call ui_led_off_static
+	add regb,LED_OFFSET_CB_LEDOFF,regc
+	call push_stack
+	ifetch 2,regc
+	call callback_func
+	call pop_stack
+	
+	add regb,LED_OFFSET_BLINK_COUNT,regc
+	ifetch 1,regc
+	beq LED_INFINITE_FLASH_NUM,ui_led_blink_infinite
+	increase -1,pdata
+	istore 1,regc
+	branch ui_led_blink_stop_global,blank		//End of flicker
+ui_led_blink_infinite:
+	setarg UI_LED_STATE_BLINK_LIGHTING
+	istore 1,regb
+	add regb,LED_OFFSET_OFF_TIME,regc
+	ifetch 2,regc
+ui_led_blink_timer_start:
+	add rega,ui_led_blink,queue
+	branch timer_init
+
+ui_led_stop_timer:
+	setarg 0
+	branch ui_led_blink_timer_start
+
+
+
+
+
+ui_timer_timeout:
+	setarg 0x1000
+	lshift16 pdata,pdata
+	iadd regb,regb
+	rtn
+	
+ui_timer_check:
+	bpatch patch1e_5,mem_patch1e
+	arg 0,rega
+	fetcht 4,mem_ui_timer_last_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+ui_timer_check_loop:
+	copy regb,pdata
+	increase 160,temp    //320btclk = 100ms
+	increase 160,temp
+	isub temp,null
+	nbranch ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch ui_timer_check_loop,blank
+	arg 0,rega  //reset timer if it's longer than 1.5s between 2 checks
+	call ui_timer_check_send_evt
+ui_timer_init:
+	copy clkn_bt,pdata
+	store 4,mem_ui_timer_last_btclk
+	rtn
+ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -160,temp    //320btclk = 100ms
+	increase -160,temp
+	set0 28,temp
+	storet 4,mem_ui_timer_last_btclk
+ui_timer_check_send_evt:
+	branch app_evt_timer
+
+	
+
+//
+//
+//
+ui_ipc_get_lock:
+	jam 1,mem_ipc_lock_bt
+ui_ipc_get_lock_wait:
+	fetch 1,mem_ipc_lock_c51
+	nbranch ui_ipc_get_lock_wait,blank
+	rtn
+	
+ui_ipc_put_lock:
+	jam 0,mem_ipc_lock_bt
+	rtn
+	
+
+	
+ui_ipc_send_event:
+	bpatch patch1e_6,mem_patch1e
+	call ui_ipc_get_lock
+	copy rega,pdata
+	store 4,mem_rega
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_in
+	fetch 4,mem_rega
+	copy pdata,rega
+	branch ui_ipc_put_lock
+
+ui_ipc_send_cmd:
+	bpatch patch1e_7,mem_patch1e
+	call ui_ipc_get_lock
+	copy rega,pdata
+	store 4,mem_rega	
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_in
+	fetch 4,mem_rega
+	copy pdata,rega	
+	branch ui_ipc_put_lock
+
+ui_ipc_clean_all_fifo:
+	setarg 0
+	store UTIL_FIFO_LEN,mem_ipc_fifo_c512bt
+	store UTIL_FIFO_LEN,mem_ipc_fifo_bt2c51
+	rtn
+	
+check_51cmd:
+	bpatch patch1f_0,mem_patch1f
+	fetch 1,mem_hci_cmd
+	nrtn blank
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_is_empty
+	rtn blank
+	jam IPC_CONTINUE_PROCESS,mem_ipc_skip_continue_proc
+	call check_51cmd_once
+	fetch 1,mem_ipc_skip_continue_proc
+	branch check_51cmd,blank
+	rtn
+
+check_51cmd_once:
+	call ui_ipc_get_lock
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_out
+	copy pdata,temp
+	call ui_ipc_put_lock
+	bpatch patch1f_1,mem_patch1f
+	copy temp,pdata
+	rtn blank
+	beq BT_CMD_START_ADV,check_51cmd_adv
+	beq BT_CMD_STOP_ADV,check_51cmd_stop_adv
+	beq BT_CMD_START_DIRECT_ADV,check_51cmd_direct_adv
+	beq BT_CMD_STOP_DIRECT_ADV,check_51cmd_stop_direct_adv
+	beq BT_CMD_LED_OFF,check_51cmd_led_off
+	beq BT_CMD_LED_ON,check_51cmd_led_on
+	beq BT_CMD_LED_BLINK,check_51cmd_led_start_blink
+	beq BT_CMD_LE_START_CONN,check_51cmd_le_start_con
+	beq BT_CMD_LE_START_SCAN,check_51cmd_start_scan
+	beq BT_CMD_LE_STOP_SCAN,check_51cmd_stop_scan
+	beq BT_CMD_ENTER_HIBERNATE,check_51cmd_hibernate
+	//context related, process in context
+	store 1,mem_fifo_temp
+//	call lmo_fifo_check
+//	nbranch check_51cmd_restore,blank  //process this cmd next time while lmo fifo is full
+check_51cmd_once_continue:
+	fetch 1,mem_fifo_temp
+	bmark0 mark_context,check_51cmd_check_idle
+	bpatch patch1f_2,mem_patch1f
+	fetch 1,mem_fifo_temp
+	beq BT_CMD_LE_DISCONNECT,check_51cmd_le_disconnect
+	beq BT_CMD_LE_SMP_SECURITY_REQUEST,check_51cmd_le_smp_sec_req
+	beq BT_CMD_LE_UPDATE_CONN,check_51cmd_ble_update_connect_param
+	beq BT_CMD_STORE_RECONN_INFO_LE,eeprom_store_le_reconn_info
+	rtn
+
+check_51cmd_check_idle:
+	store 1,mem_fifo_temp
+  	call context_check_idle
+	branch check_51cmd_restore,zero
+	call context_search_plap
+	nrtn zero
+check_51cmd_restore:
+	jam IPC_SKIP_CONTINUE_PROCESS,mem_ipc_skip_continue_proc
+	branch ui_ipc_send_cmd
+
+  
+ 
+
+
+//command opcode 0x13
+check_51cmd_adv:
+	jam ON,mem_le_adv_enable
+	jam ADV_IND,mem_le_adv_type
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+
+//command opcode 0x14
+check_51cmd_stop_adv:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	jam OFF,mem_le_adv_enable
+	rtn
+
+
+//command opcode 0x15
+check_51cmd_direct_adv:
+	jam ON,mem_le_adv_enable
+	jam ADV_DIRECT_IND,mem_le_adv_type
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+
+//command opcode 0x16
+check_51cmd_stop_direct_adv:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	jam OFF,mem_le_adv_enable
+	rtn
+
+
+//command opcode 0x17
+check_51cmd_le_disconnect:
+	setarg 20 // 100ms
+	store 2,mem_le_superto
+	store 2,mem_le_init_superto
+	branch le_send_terminate_ind_user_terminated
+
+
+//command opcode 0x18
+check_51cmd_ble_update_connect_param:
+	branch le_l2cap_tx_update_req
+
+
+//command opcode 19
+check_51cmd_led_off:
+	arg 0,rega
+	branch ui_led_off_global
+
+
+//command opcode 20
+check_51cmd_led_on:
+	arg 0,rega
+	branch ui_led_on_global
+
+
+//command opcode 21
+check_51cmd_led_start_blink:
+	arg 0,rega
+	call calc_curr_struct_prt
+	ifetch 1,regb
+	beq UI_LED_STATE_BLINK_START,check_51cmd_led_start_blink_in_blink
+	beq UI_LED_STATE_BLINK_LIGHTING,check_51cmd_led_start_blink_in_blink
+	beq UI_LED_STATE_BLINK_DARKING,check_51cmd_led_start_blink_in_blink
+	branch ui_led_blink_start_global
+
+check_51cmd_led_start_blink_in_blink:
+	ifetch 1,contr
+	rtneq LED_INFINITE_FLASH_NUM
+	branch ui_led_blink_start_global
+
+
+//command opcode 0x22
+check_51cmd_le_start_con:
+	jam ON,mem_le_scan_enable
+	jam hci_cmd_le_create_conn,mem_hci_cmd
+//	fetch 6,mem_app_peer_addr
+//	store 6,mem_le_conn_peer_addr
+	rtn
+
+
+//command opcode 0x23
+check_51cmd_start_scan:
+	jam ON,mem_le_scan_enable
+	rtn
+
+
+//command opcode 0x24
+check_51cmd_stop_scan:
+	jam OFF,mem_le_scan_enable
+	jam 0,mem_hci_cmd
+	rtn
+
+
+//command opcode 0x25
+check_51cmd_hibernate:
+	fetch 2,mem_cb_before_hibernate
+	call callback_func
+	fetch 1,mem_ui_button_gpio
+	beq UI_BUTTON_GPIO_DISABLE,check_51cmd_hibernate_btn_disabled
+	copy pdata,temp
+	call gpio_config_input
+check_51cmd_hibernate_btn_disabled:
+	call ui_ipc_clean_all_fifo
+	branch lpm_hibernate	
+
+
+//command opcode 0x27
+check_51cmd_le_smp_sec_req:
+	branch le_send_smp_security_request
+
+
+
+
+ui_check_paring_button:
+	fetch 1,mem_ui_state_map
+	rtnbit0 UI_STATE_BTN_DOWN
+	rtn
+
+
+
+///////////queue function////////////
+queue_init:
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,contw
+	setarg 0
+	istore 3,contw
+	rtn
+	
+//input:rega:the address of the data to which you want to input queue
+//output:if user is disable,mean queue no have space
+queue_push:
+	bpatch patch1f_3,mem_patch1f
+	call disable_user
+	call queue_full
+	rtn blank
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,regb
+	ifetcht 1,regb
+	increase 1,temp
+	istoret 1,regb	//number add 
+	
+	ifetcht 1,pdata	//temp:each length
+	copy temp,loopcnt
+	add pdata,QUEUE_OFFSET_WRITE_PTR,regb
+	ifetch 1,regb
+	imul32 temp,pdata	//offset
+	iadd contr,contw
+	copy rega,contr
+calc_queue_next_ptr:
+	call memcpy
+	call queue_get_size
+	pincrease -1
+	ifetcht 1,regb
+	increase 1,temp
+	iand temp,temp
+	istoret 1,regb
+	branch enable_user
+
+
+//input:rega:the address of the data to which you want to output queue
+//output:if user is disable,mean queue no have data
+queue_pop:
+	bpatch patch1f_4,mem_patch1f
+	call disable_user
+	call queue_empty
+	rtn blank
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,regb
+	ifetcht 1,regb
+	increase -1,temp
+	istoret 1,regb
+	ifetcht 1,pdata		//each size
+	copy temp,loopcnt
+	add pdata,QUEUE_OFFSET_READ_PTR,regb
+	ifetch 1,regb
+	imul32 temp,pdata	//offset
+	iadd contr,contr
+	increase 1,contr
+	copy rega,contw
+	branch calc_queue_next_ptr
+
+
+//function:no pop element,only copy element in rega
+//input:rega:the address of the data to which you want to output queue
+//output:if user is disable,mean queue no have data
+//regb is new ptr
+queue_get_new_ele:
+	call disable_user
+	call queue_empty
+	rtn blank
+	fetch 2,mem_queue_ptr
+	ifetcht 1,pdata		//each size
+	copy temp,loopcnt
+	add pdata,QUEUE_OFFSET_READ_PTR,regb
+	ifetch 1,regb
+	imul32 temp,pdata	//offset
+	iadd contr,contr
+	increase 1,contr
+	copy contr,regb
+	copy rega,contw
+	call memcpy
+	branch enable_user
+
+queue_store_new_ele:
+	call disable_user
+	call queue_empty
+	rtn blank
+	fetch 2,mem_queue_ptr
+	ifetcht 1,pdata		//each size
+	copy temp,loopcnt
+	add pdata,QUEUE_OFFSET_READ_PTR,regb
+	ifetch 1,regb
+	imul32 temp,pdata	//offset
+	iadd contr,contr
+	add contr,2,contw
+	copy rega,contr
+	increase -1,loopcnt
+	call memcpy
+	branch enable_user
+
+//output:if blank is 1,mean queue is empty
+queue_empty:
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,contr
+	ifetch 1,contr
+	rtn
+
+//output:if blank is 1,mean queue is full
+queue_full:
+	call queue_get_size
+	ifetcht 1,contr
+	isub temp,pdata
+	rtn
+
+//output:pdata is queue size
+queue_get_size:
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_LENGTH,contr
+	ifetch 1,contr
+	rtn
+
+///////////queue function end////////////
+
+
+
+
+
+usb_isr:
+	bpatch patch1f_5,mem_patch1f
+	fetch 1,core_usb_status
+	isolate1 USB_STATUS_RESET,pdata
+	call usb_init_restart,true
+	fetch 2,core_usb_status
+	store 2,core_usb_status
+	store 2,mem_usb_status
+	call usb_nak_state_judge
+	call usb_rx
+	call usb0_tx
+	call usb_tx
+	branch usb_nak_state
+
+usb_init:
+	bpatch patch1f_6,mem_patch1f
+	call enable_authrom
+	call usb_init_param
+usb_init_restart:
+	jam 0x00,core_usb_config
+	nop 10000
+	jam 0x0,core_usb_hmode
+	fetch 2,core_clkoff
+	set0 CLOCK_OFF_USB,pdata
+	store 2,core_clkoff
+	jam 0x21,core_usb_epmap
+	jam 0x9d,core_usb_pupd
+	jam 0x3c,core_usb_config
+	setarg mem_usb_rxbuf
+	store 2,core_usb_rx_saddr
+	store 2,core_usb_rxptr
+	setarg mem_usb_rxbuf_end
+	store 2,core_usb_rx_eaddr
+	jam 0x80,core_usb_hmode
+	jam 0,core_usb_addr
+	jam 0xff,core_usb_status
+	setarg mem_usb_clear_mem_end
+	arg mem_usb_clear_mem_start,contw
+	isub contw,loopcnt
+	branch clear_mem
+	
+usb_offline_check_init:
+	fetcht 1,mem_usb_offline_check_gpio
+	branch gpio_config_input
+usb_offline_state:
+	fetch 1,mem_usb_device_enumeration_endflag
+	rtn blank
+	fetcht 1,mem_usb_offline_check_gpio
+	call gpio_get_bit
+	branch usb_init_restart,true
+	rtn
+
+usb_init_param:
+	jam DEV_DEFAULT,mem_usb0_state
+	setarg 0x0
+	store 1,mem_remain
+	store 2,mem_usb_zero_packet
+	pincrease 1
+	store 2,mem_usb_ones_packet
+	pincrease 1
+	store 2,mem_usb_two_packet
+	arg mem_string0,contw
+	setarg 0x030404
+	istore 3,contw
+	setarg 0x0409
+	istore 2,contw
+	arg mem_string1,contw
+	setsect 0,0x15906
+	setsect 1,0x210d2
+	setsect 2,0x10494
+	setsect 3,0x1
+	istore 9,contw
+	arg mem_string2,contw
+	setsect 0,0x1570f
+	setsect 1,0x15c9a
+	setsect 2,0x256c6
+	setsect 3,0x1cdcd
+	istore 9,contw
+	setsect 0,0x14420
+	setsect 1,0x25d99
+	setsect 2,0x25636
+	setsect 3,0x1
+	istore 7,contw
+	arg mem_string3,contw
+	setsect 0,0x1620a
+	setsect 1,0xc8c
+	setsect 2,0x30333
+	setsect 3,0xc0c0
+	istore 9,contw
+	setsect 0,0x3130
+	istore 2,contw
+	setarg USB_KBDATA_VENDOR_DEFINE_ADDR
+	store 2,mem_hidreportdesc_kb
+	setarg USB_MSDATA_ADDR
+	store 2,mem_hidreportdesc_m
+	arg USB_DEVICEDATA_ADDR,contr
+	arg mem_devicedesc,contw
+	arg 19,loopcnt
+	call memcpy	
+	arg USB_CONFDATA_ADDR,contr
+	arg mem_confdesc,contw
+	arg 60,loopcnt
+	call memcpy
+usb_config_cb:
+	fetch 2,mem_cb_usb_config
+	branch callback_func
+
+usb_tx_interval_config:
+	fetch 1,mem_usb_tx_interval
+	rtn blank
+	store 1,mem_confdesc+34
+	store 1,mem_confdesc+59
+	rtn
+
+usb_nak_state:
+	arg USB_TIMER_NAK,queue
+	call timer_check
+	nrtn blank
+	fetch 1 ,mem_usb_wakestate_onetime_flag
+	nrtn blank
+	fetch 1,mem_usb_device_enumeration_endflag
+	ncall usb_mac_wakeup_judge,blank
+	rtn
+
+usb_nak_state_judge:
+	fetch 1,mem_usb_status
+	bbit1 USB_STATUS_NAK,usb_nak_state_timer_init
+	rtn
+	
+usb_nak_state_timer_init:
+	call usb0_attached_state_judge
+	call timer_reinit
+	setarg TIMER_NAK_DELAY
+	arg USB_TIMER_NAK,queue
+	branch timer_init
+	
+usb0_attached_state_judge:
+	fetch 1,mem_usb_state
+	bne USB_CONNECTED,usb_clear_halt_dispose
+	jam 0,mem_usb_wakestate_onetime_flag
+	jam 0,mem_usb_mac_wakeup_trig
+	rtn
+
+usb_clear_halt_dispose:
+	fetch 1,mem_usb_clear_halt
+	rtn blank
+	jam 0,mem_usb_clear_halt
+	jam USB_CONNECTED,mem_usb_state
+	jam 1,mem_usb_device_enumeration_endflag
+	rtn
+
+usb_rx_no_data:
+	fetch 1,mem_usb_status
+	bbit1 USB_STATUS_SETUP,usb_class_type
+	rtn
+
+usb_rx_len:
+	fetchr contus,2,core_usb_rx_saddr
+	fetchr contue,2,core_usb_rx_eaddr
+	fetchr contu,2,core_usb_rxptr
+	ifetch 2,contu
+	rshift8 pdata,temp
+	rshift4 temp,temp					// temp is endpoint
+	arg 0xfff,contr
+	iand contr,loopcnt
+	storer loopcnt,2,mem_usb_read_len
+	rtn
+
+
+usb_rx_data:
+	call usb_rx_len
+usb_rx_read:
+	ifetch 1,contu
+	istore 1,contw
+	loop usb_rx_read
+	storer contu,2,core_usb_rxptr
+	rtn
+
+usb_rx_ep13:
+	arg mem_usb_ccid_buf,contw
+	call usb_rx_read
+	arg mem_usb_ccid_buf+4,temp
+	storet 2,core_usb_tx_saddr3
+	fetch 1,mem_usb_ccid_buf+1
+	pincrease 6
+	istore 1,temp
+	jam 0x8,core_usb_trig
+	rtn
+
+
+usb_rx:
+	bpatch patch1f_7,mem_patch1f
+	fetch 1,mem_usb_status
+	rtnbit0 USB_STATUS_RXREADY
+	call usb_rx_len
+	compare 13,temp,0xff
+	branch usb_rx_ep13,true
+	arg mem_usb_setup,contw
+	call usb_rx_read
+	fetch 1,mem_usb_read_len
+	beq 0x00,usb_rx_no_data
+	beq 0x01,usb_out_one_byte	// HUAWEI pad led status	
+	sub pdata,7,null
+	rtn positive
+usb_class_type:
+	bpatchx patch20_0,mem_patch20
+	set0 mark_isstr,mark
+	fetch 1,mem_usb_setup_bmRequestType
+	and_into 0x80,pdata
+	beq IN_DEVICE,usb_in_device
+	beq OUT_DEVICE,usb_out_device
+	branch assert
+
+usb_out_one_byte:
+	fetch 1,mem_usb_setup
+	rtnbit1 7	// OUT_DEVICE
+	call usb_get_led_status
+	branch usb0_reply_zerolen
+
+
+usb_in_device:
+	fetch 1,mem_usb_setup_bmRequestType
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	and_into 0x03,pdata
+	beq STANDARD_REQ,usb_in_standard_req
+	beq CLASS_REQ,usb_in_class_req
+	beq MANUFACTURER_REQ,usb_in_manufacturer_req
+	branch assert
+
+usb_out_device:
+	fetch 1,mem_usb_setup_bmRequestType
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	and_into 0x03,pdata
+	beq STANDARD_REQ,usb_out_standard_req
+	beq CLASS_REQ,usb_out_class_req	
+	beq MANUFACTURER_REQ,usb_out_manufacturer_req
+	branch assert
+
+usb_in_standard_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq GET_CONFIGURATION,usb0_request_get_configuration
+	beq GET_DESCRIPTOR,usb0_request_get_descriptor
+	beq GET_INTERFACE,usb0_request_get_interface
+	beq GET_STATUS,usb0_request_get_status
+	branch usb0_force_stall
+
+usb_in_class_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq GET_IDLE,usb_get_idle
+	beq GET_REPORT,usb_get_report
+	beq GET_PROTOCOL,usb_get_protocol_req
+	branch usb0_force_stall
+
+usb_in_manufacturer_req:
+	branch usb0_force_stall
+
+usb_out_standard_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq CLEAR_FEATURE,usb0_request_clear_feature
+	beq SET_FEATURE,usb0_request_set_feature
+	beq SET_ADDRESS,usb0_request_set_address
+	beq SET_CONFIGURATION,usb0_request_set_configuration
+	beq SET_INTERFACE,usb0_request_set_interface
+	beq SET_DESCRIPTOR,usb0_force_stall
+	branch usb0_force_stall
+
+usb_out_class_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq SET_IDLE,usb_set_idle
+	beq SET_REPORT,usb_set_report
+	beq SET_PROTOCOL,usb_set_protocol_req
+	branch usb0_force_stall
+
+usb_out_manufacturer_req:
+	branch usb0_force_stall
+
+usb0_force_stall:
+	bpatchx patch20_1,mem_patch20
+	fetch 1,core_usb_stall
+	set1 0,pdata
+	store 1,core_usb_stall
+	branch usb0_reply_zerolen
+	
+usb0_reply_zerolen:
+	jam 0x1,core_usb_clear_nak
+	rtn
+
+usb0_request_get_configuration:
+	fetch 1,mem_usb_setup_bmRequestType
+	bne IN_DEVICE,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 1,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb0_state
+	beq DEV_CONFIGURED,usb0_request_get_cfg_dev_cfg
+	beq DEV_ADDRESS,usb0_request_get_cfg_dev_addr
+	branch usb0_force_stall
+//Return current config : 1
+usb0_request_get_cfg_dev_cfg:
+	arg 1,regb
+	branch usb_send_ones_packet
+//Config do not work, return default config : 0
+usb0_request_get_cfg_dev_addr:
+	arg 1,regb
+	branch usb_send_zero_packet
+
+usb0_request_get_descriptor:
+	bpatchx patch20_2,mem_patch20
+//	set0 mark_isstr,mark
+	fetch 1,mem_usb_setup_bValueH
+	beq DSC_DEVICE,dsc_device_info
+	beq DSC_CONFIG,dsc_config_info	
+	beq DSC_STRING,dsc_string_info
+	beq DSC_HID,dsc_hid_info
+	beq DSC_HID_REPORT,dsc_hid_report_info
+	branch usb0_force_stall
+
+dsc_hid_info:
+	jam 0,mem_usb_get_protocol_flag
+	fetch 1,mem_usb_setup_wIndex
+	beq 0,dsc_hid_info_interface0
+	beq 1,dsc_hid_info_interface1
+	branch usb0_force_stall
+//class_descriptor hid_descriptor--keyboard 
+dsc_hid_info_interface0:
+	fetchr regb,1,mem_confdesc+19
+	arg mem_confdesc+19,rega
+	branch usb0_respond
+//class_descriptor hid_descriptor--mouse 
+dsc_hid_info_interface1:
+	fetchr regb,1,mem_confdesc+44
+	arg mem_confdesc+44,rega
+	branch usb0_respond
+
+dsc_device_info:
+//input : pdata : data poniter 
+//input : temp: data len
+//sets the data pointer and len to correct descriptor
+	fetch 1,mem_usb_set_high_addr_flag
+	ncall usb_set_high_addr,blank
+	setarg mem_devicedesc
+	fetcht 1,mem_devicedesc
+dsc_info_set_data_len:
+	store 2,mem_dsc_info_data_pointer
+	storet 1,mem_dsc_info_len
+	fetch 1,mem_usb_setup_bLength
+	isub temp,null
+	nbranch dsc_info_set_current_data_len,positive
+dsc_info_set_initial_data_len:
+	fetch 1,mem_dsc_info_len
+dsc_info_set_data_size_completed:	
+	iforce regb
+	fetch 2,mem_dsc_info_data_pointer
+	add pdata,1,pdata
+	iforce rega
+	branch usb0_respond
+dsc_info_set_current_data_len:
+	fetch 1,mem_usb_setup_bLength
+	branch dsc_info_set_data_size_completed
+
+usb_set_high_addr:
+	fetch 1,core_usb_addr
+	ncall usb0_set_addr,blank
+	jam 0,mem_usb_set_high_addr_flag
+	rtn
+usb0_set_addr:
+	fetch 1,core_usb_addr
+   	set1 7,pdata
+    	store 1,core_usb_addr
+    	rtn
+
+dsc_config_info:
+	setarg mem_confdesc
+	fetcht 1,mem_confdesc
+	branch dsc_info_set_data_len
+
+dsc_string_info:
+	fetch 1,mem_usb_setup_bValue
+	sub pdata,3,null
+	nbranch usb0_force_stall,positive
+	fetch 1,mem_usb_setup_bValue
+	arg mem_string0,rega
+	beq 0,usb0_respond_length	
+	set1 mark_isstr,mark
+	arg mem_string1,rega
+	beq 1,usb0_respond_length
+	arg mem_string2,rega
+	beq 2,usb0_respond_length
+	arg mem_string3,rega
+	beq 3,usb0_respond_length
+	rtn
+
+dsc_hid_report_info:
+	fetch 2,mem_usb_setup_wIndex
+	beq 1,dsc_hid_report_info0
+	fetchr rega,2,mem_hidreportdesc_kb
+	branch usb0_respond_length
+dsc_hid_report_info0:
+	jam 1,mem_usb_device_enumeration_endflag
+	jam USB_GOT_REPORT_REQ,mem_usb_state
+	fetchr rega,2,mem_hidreportdesc_m
+	branch usb0_respond_length
+
+
+usb0_request_get_interface:
+	fetch 1,mem_usb0_state
+	bne DEV_CONFIGURED,usb0_force_stall		
+	fetch 1,mem_usb_setup_bmRequestType
+	bne IN_INTERFACE,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 1,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	arg 1,regb
+	branch usb_send_zero_packet
+
+
+usb0_request_get_status:
+	fetch 1,mem_usb0_state
+	beq DEV_DEFAULT,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 2,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bmRequestType
+	beq IN_DEVICE,usb0_get_status_in_device
+	beq IN_INTERFACE,usb0_get_status_in_interface
+	beq IN_ENDPOINT,usb0_get_status_in_endpoint
+	branch usb0_force_stall
+
+
+Usb0_SDsystem_dispose:
+	jam 1,mem_sdsystem_wakeup_flag
+	branch usb_send_two_packet
+
+usb0_get_status_in_device:
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	arg 2,regb
+	fetch 1,mem_usb_remote_wakeup
+	beq 0x01,Usb0_SDsystem_dispose
+//regb:length
+usb_send_zero_packet:
+	arg mem_usb_zero_packet,rega
+	branch usb0_respond
+usb_send_ones_packet:
+	arg mem_usb_ones_packet,rega
+	branch usb0_respond
+usb_send_two_packet:
+	arg mem_usb_two_packet,rega
+	branch usb0_respond
+
+usb0_get_status_in_interface:
+	fetch 1,mem_usb0_state
+	bne DEV_CONFIGURED,usb0_force_stall
+	arg 2,regb
+	branch usb_send_zero_packet
+
+usb0_get_status_in_endpoint:
+	fetch 1,mem_usb0_state
+	bne DEV_CONFIGURED,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	beq IN_EP1,usb0_get_status_in_ep_in_ep1
+	beq IN_EP2,usb0_get_status_in_ep_in_ep2
+	beq IN_EP3,usb0_get_status_in_ep_in_ep3
+	and_into 0x7f,pdata
+	beq 0x00,usb0_get_status_in_ep_in_ep0
+	branch usb0_force_stall
+	
+usb0_get_status_in_ep_in_ep0:
+	fetch 1,mem_usb_ep0_stall_status
+usb0_get_status_in_ep_in_ack:
+	arg 2,regb
+	beq 1,usb_send_ones_packet
+	branch usb_send_zero_packet
+usb0_get_status_in_ep_in_ep1:
+	fetch 1,mem_usb_ep1_stall_status
+	branch usb0_get_status_in_ep_in_ack
+usb0_get_status_in_ep_in_ep2:
+	fetch 1,mem_usb_ep2_stall_status
+	branch usb0_get_status_in_ep_in_ack
+usb0_get_status_in_ep_in_ep3:
+	fetch 1,mem_usb_ep3_stall_status
+	branch usb0_get_status_in_ep_in_ack
+
+usb_get_idle:
+	jam 1,mem_usb_idle_flag
+	arg mem_usb_idle_rate,rega
+	arg 1,regb
+	branch usb0_respond
+
+usb_get_report:
+	fetch 2,mem_usb_setup_bValue
+	arg PC_GET_REPORT,temp
+	isub temp,null
+	nbranch usb0_force_stall,zero
+//	set0 mark_isstr,mark
+usb_get_report_dispose:	
+	fetch 1,mem_usb0_data_ready_report
+	nbranch usb_get_report_data_success,blank
+	jam PC_GET_NONDATA,mem_usb0_get_report_data
+usb_get_report_send_data:
+	fetch 1,mem_usb_setup_bLength
+	iforce regb
+	arg mem_usb0_get_report_data,rega
+	call usb0_respond
+usb_get_report_data_release:	
+	arg mem_usb0_get_report_data,contw
+	arg 64,loopcnt
+	branch memset0
+usb_get_report_data_success:
+	jam 0,mem_usb0_data_ready_report
+	jam PC_GET_DATA,mem_usb0_get_report_data
+	branch usb_get_report_send_data
+
+usb_get_protocol_req:
+	fetch 1,mem_usb_setup_bLength
+	bne 1,usb0_force_stall
+	jam 1,mem_usb_get_protocol_flag
+	arg 1,regb //length
+	fetch 1,mem_usb_set_protocol_value
+	beq 0,usb_get_report_protocol
+	beq 1,usb_get_boot_protocol
+	branch usb_send_zero_packet
+usb_get_report_protocol:
+	branch usb_send_ones_packet
+usb_get_boot_protocol:
+	branch usb_send_zero_packet
+
+
+
+//in device
+usb0_request_clear_feature:
+	fetch 1,mem_usb0_state
+	bne DEV_CONFIGURED,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bmRequestType
+	beq OUT_DEVICE,usb0_request_clear_feature_out_device
+	beq OUT_INTERFACE,usb0_request_clear_feature_out_interface
+	beq OUT_ENDPOINT,usb0_request_clear_feature_out_endpoint
+	branch usb0_force_stall
+
+usb0_request_clear_feature_out_device:
+	fetch 1,mem_usb_setup_bValue
+	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
+	fetch 1,core_usb_config
+	set0 7,pdata
+	store 1,core_usb_config
+	jam 0,mem_usb_remote_wakeup
+	jam 1,mem_usb_clear_remote_wakeup
+	fetch 1,mem_sdsystem_wakeup_flag
+	branch usb0_reply_zerolen,blank
+	jam 0,mem_sdsystem_wakeup_flag
+	jam 0,mem_usb_clear_remote_wakeup
+	jam USB_CONNECTED,mem_usb_state
+	branch usb0_reply_zerolen
+
+usb0_request_clear_feature_out_interface:
+	branch usb0_force_stall
+
+usb0_request_clear_feature_out_endpoint:
+	fetch 1,mem_usb_setup_bValue
+	bne ENDPOINT_HALT,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	beq IN_EP1,usb0_force_stall_ep1_in_off
+	beq IN_EP2,usb0_force_stall_ep2_in_off
+	beq IN_EP3,usb0_force_stall_ep3_in_off
+	and_into 0x7f,pdata
+	beq 0x00,usb0_force_stall_ep0_in_off
+	branch usb0_force_stall
+
+usb0_force_stall_ep0_in_off:
+	jam 0,mem_usb_ep0_stall_status
+	branch usb0_reply_zerolen
+usb0_force_stall_ep1_in_off:
+	jam 0,mem_usb_ep1_stall_status
+usb0_force_stall_ep1_in_off_reply:	
+	jam 1,mem_usb_clear_halt
+	branch usb0_reply_zerolen
+usb0_force_stall_ep2_in_off:
+	jam 0,mem_usb_ep2_stall_status
+	branch usb0_force_stall_ep1_in_off_reply
+usb0_force_stall_ep3_in_off:
+	jam 0,mem_usb_ep3_stall_status
+	branch usb0_force_stall_ep1_in_off_reply
+
+
+usb0_request_set_feature:
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bmRequestType
+	beq OUT_DEVICE,usb0_request_set_feature_out_device
+	beq OUT_INTERFACE,usb0_request_set_feature_out_interface
+	beq OUT_ENDPOINT,usb0_request_set_feature_out_endpoint
+	branch usb0_force_stall
+
+usb0_request_set_feature_out_device:
+	fetch 1,mem_usb_setup_bValue
+	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
+	call dongle_set_pc_sleep_flag
+	fetch 1,core_usb_config
+	set1 7,pdata
+	store 1,core_usb_config
+	jam 1,mem_usb_remote_wakeup
+	jam USB_SLEEP,mem_usb_state
+	jam 0,mem_usb_tx_win_enable
+	call usb0_reply_zerolen
+usb_wakeup_timer_reinit:
+	call timer_reinit
+	setarg TIMER_WAKEUP_DELAY
+	arg USB_TIMER_WAKEUP,queue
+	branch timer_init
+	
+usb0_request_set_feature_out_interface:
+	branch usb0_force_stall
+
+usb0_request_set_feature_out_endpoint:
+	fetch 1,mem_usb_setup_bValue
+	bne ENDPOINT_HALT,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	beq IN_EP1,usb0_force_stall_ep1_in_on
+	beq IN_EP2,usb0_force_stall_ep2_in_on
+	beq IN_EP3,usb0_force_stall_ep3_in_on
+	and_into 0x7f,pdata
+	beq 0x00,usb0_force_stall_ep0_in_on
+	branch usb0_force_stall
+
+usb0_force_stall_ep0_in_on:
+	jam 1,mem_usb_ep0_stall_status
+	branch usb0_reply_zerolen
+usb0_force_stall_ep1_in_on:
+	jam 1,mem_usb_ep1_stall_status
+	branch usb0_reply_zerolen
+usb0_force_stall_ep2_in_on:
+	jam 1,mem_usb_ep2_stall_status
+	branch usb0_reply_zerolen
+usb0_force_stall_ep3_in_on:
+	jam 1,mem_usb_ep3_stall_status
+	branch usb0_reply_zerolen
+
+
+usb0_request_set_address:
+	fetch 1,mem_usb_setup_bmRequestType
+	bne OUT_DEVICE,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	and_into 0x80,pdata
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	bne 0,usb_usb0_state_set_dev_addr
+usb_usb0_state_set_dev_default:	
+	jam DEV_DEFAULT,mem_usb0_state
+usb0_request_set_wait_address:
+	fetch 1,mem_usb_setup_bValue
+	store 1,core_usb_addr
+	call usb0_reply_zerolen
+	jam 1,mem_usb_set_high_addr_flag
+	rtn
+usb_usb0_state_set_dev_addr:
+	jam DEV_ADDRESS,mem_usb0_state
+	branch usb0_request_set_wait_address
+
+
+usb0_request_set_configuration:
+	fetch 1,mem_usb0_state
+	beq DEV_DEFAULT,usb0_force_stall
+	fetch 1,mem_usb_setup_bmRequestType
+	bne OUT_DEVICE,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	sub pdata,USB_MAX_NUM_CFG,null
+	nbranch usb0_force_stall,positive
+	fetch 1,mem_usb0_state
+	beq DEV_ADDRESS,usb0_request_set_cfg_addr_state
+	beq DEV_CONFIGURED,usb0_request_set_cfg_cfg_state
+	branch usb0_force_stall
+ // This software only supports config = 0,1
+usb0_request_set_cfg_addr_state:
+usb0_request_set_cfg_cfg_state:
+	fetch 1,mem_usb_setup_bValue	//1:Configured state   0:Address state
+	beq 0,usb0_request_set_cfg_stay_addr_state
+	jam DEV_CONFIGURED,mem_usb0_state
+	branch usb0_reply_zerolen
+usb0_request_set_cfg_stay_addr_state:
+	jam DEV_ADDRESS,mem_usb0_state
+	branch usb0_reply_zerolen
+
+
+usb0_request_set_interface:
+	fetch 1,mem_usb0_state
+	bne DEV_CONFIGURED,usb0_force_stall		
+	fetch 1,mem_usb_setup_bmRequestType
+	bne OUT_INTERFACE,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	branch usb0_reply_zerolen
+
+
+usb_set_idle:
+	bpatchx patch20_3,mem_patch20
+	jam 1,mem_usb_idle_flag
+	fetch 1,mem_usb_setup_bValueH
+	store 1,mem_usb_idle_rate
+	fetch 1,mem_usb_setup_wIndex
+	sub pdata,1,null
+	call usb_clear_remote_wakeup_set0,zero
+	fetch 1,mem_usb_state
+	bne USB_RESUME,usb0_reply_zerolen
+	jam USB_CONNECTED,mem_usb_state
+	call usb0_reply_zerolen
+	nop 30000
+	nop 30000
+	rtn
+usb_clear_remote_wakeup_set0:
+	jam 1,mem_usb_device_enumeration_endflag
+	jam 0,mem_usb_clear_remote_wakeup
+	jam USB_RESUME,mem_usb_state
+	rtn
+
+
+usb_set_report:
+	nop 15000		//delay 1ms
+	arg mem_usb0_set_report_data,contw
+	call usb_rx_data
+	jam 1,mem_usb0_get_set_report
+	call usb_set_report_resume_judge
+	fetch 2,mem_usb_setup_bValue
+	store 2,mem_usb_setup_bValue_temp
+	call usb0_reply_zerolen
+	fetch 1,mem_device_option
+	rtnne DVC_OP_DONGLE
+	fetch 1,mem_usb_tx_win_enable
+	rtn blank
+	fetch 1,mem_usb0_set_report_data
+usb_get_led_status:	
+	store 1,mem_24g_led_status
+	jam 0,mem_usb_tx_win_enable
+	jam KB_LED_ACKPAYLOAD,mem_24g_ackpayload_enable
+	rtn
+
+	
+usb_set_report_resume_judge:
+	fetch 2,mem_usb_setup_bValue
+	arg PC_SET_REPORT_bValue,temp
+	isub temp,null
+	nrtn zero
+	fetch 2,mem_usb_setup_wIndex
+	arg PC_SET_REPORT_wIndex,temp
+	isub temp,null
+	nrtn zero
+	fetch 2,mem_usb_setup_bLength
+	arg PC_SET_REPORT_bLength,temp
+	isub temp,null
+	nrtn zero
+	jam 1,mem_usb_tx_win_enable
+	rtn
+
+
+usb_set_protocol_req:
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	beq BOOT_PROTOCOL,usb_set_boot_protocol
+	beq REPORT_PROTOCOL,usb_set_report_protocol
+	branch usb0_force_stall
+usb_set_boot_protocol:
+	jam 0,mem_usb_set_protocol_status
+	jam 1,mem_usb_set_protocol_value
+	branch usb0_reply_zerolen
+usb_set_report_protocol:
+	jam 1,mem_usb_tx_mac_enable
+	jam 1,mem_usb_set_protocol_status
+	jam 0,mem_usb_set_protocol_value
+	branch usb0_reply_zerolen
+
+
+usb0_respond_length:
+	ifetchr regb,1,rega
+	increase 1,rega
+//rega=*buff,regb=size
+usb0_respond:
+	bpatchx patch20_4,mem_patch20
+	set1 mark_usb_first_resp,mark
+	bmark0 mark_isstr,usb0_respond_nostr
+	increase 1,regb
+	lshift regb,regb
+usb0_respond_nostr:
+	storer rega,2,mem_bufptr
+	storer regb,1,mem_remain
+	branch usb0_tx
+	rtn
+
+usb_no_respond_data:
+	arg 0,queue
+	branch usb_trig
+
+
+
+//mem_bufptr=*buff,mem_remain=size,loopcnt=i,rega=len
+usb0_tx:
+	bpatchx patch20_5,mem_patch20
+	fetch 1,core_usb_txbusy
+	rtnbit1 0
+	fetch 1,mem_remain
+	rtn blank
+	copy pdata,loopcnt
+	iforce temp
+	fetch 2,mem_usb_setup_bLength
+	sub pdata,EP0_PACKET_SIZE,null
+	branch usb0_tx_short,positive
+	sub loopcnt,EP0_PACKET_SIZE,null
+	branch usb0_tx_info,positive
+	force EP0_PACKET_SIZE,loopcnt
+	branch usb0_tx_info
+usb0_tx_short:
+	isub loopcnt,null
+	branch usb0_tx_info,positive
+	iforce loopcnt
+	store 1,mem_remain
+usb0_tx_info:
+	fetch 1,mem_remain
+	isub loopcnt,pdata
+	store 1,mem_remain
+	add loopcnt,-1,pdata
+	store 1,mem_usb_txbuf
+	bmark0 mark_isstr,usb0_tx_nostr
+	rshift pdata,pdata
+	add loopcnt,-1,pdata
+	store 1,mem_usb_txbuf
+	bmark0 mark_usb_first_resp,usb0_tx_nostr
+	set0 mark_usb_first_resp,mark
+	istoret 1,contw
+	setarg 3
+	istore 1,contw
+	increase -1,loopcnt
+	copy loopcnt,pdata
+	nbranch usb0_tx_nostr,zero
+	increase 1,loopcnt
+usb0_tx_nostr:
+	fetch 2,mem_bufptr
+	copy pdata,contr
+usb0_tx0:
+	ifetch 1,contr
+	istore 1,contw
+	bmark0 mark_isstr,usb0_tx1
+	setarg 0
+	istore 1,contw
+usb0_tx1:
+	loop usb0_tx0
+	copy contr,pdata
+	store 2,mem_bufptr				//mem_bufptr += len
+	setarg mem_usb_txbuf
+	store 2,core_usb_tx_saddr0
+	arg 0,queue
+	call usb_trig
+	fetch 1,mem_remain
+	nrtn blank
+	jam 2,core_usb_clear_nak			// clear OUT nak for last packet
+	fetch 1,mem_usb_state
+	rtnne USB_GOT_REPORT_REQ
+	jam USB_CONNECTED,mem_usb_state
+	rtn
+
+
+
+usb_tx_ep1:
+	arg mem_usb_txbuf1,rega
+	arg 1,queue
+	storer rega,2,core_usb_tx_saddr1
+usb_tx_buf:
+	add loopcnt,-1,pdata
+	istore 1,rega
+usb_tx_loop:
+	ifetch 1,contr
+	istore 1,contw
+	loop usb_tx_loop
+usb_trig:
+	setarg 0
+	qset1 pdata
+	store 1,core_usb_trig
+	rtn
+
+usb_tx_ep2:
+	arg 2,queue
+	arg mem_usb_txbuf2,rega
+	storer rega,2,core_usb_tx_saddr2
+	branch usb_tx_buf
+
+usb_tx:
+	bpatchx patch20_6,mem_patch20
+	fetch 1,mem_usb_tx_enable
+	rtn blank
+	fetch 1,core_usb_txbusy
+	and_into 0x0f,pdata
+	nbranch usb_inwake_state_tx_dispose,blank
+	fetch 1,mem_usb_device_enumeration_endflag
+	branch usb_tx_fifo_release,blank
+	fetch 1,mem_usb_state
+	beq USB_SLEEP,usb_windows_wakeup
+	bne USB_CONNECTED,usb_tx_fifo_release
+	fetch 1,mem_usb_clear_remote_wakeup
+	nbranch usb_tx_fifo_release,blank
+	call usb_tx_data_ep1
+	branch usb_tx_data_ep2
+
+usb_tx_data_ep1:
+	fetch 1,core_usb_txbusy
+	rtnbit1 1
+	fetch 1,mem_usb_tx_enable
+	rtnbit0 1
+	fetch 1,mem_usb_tx_enable
+	set0 1,pdata
+	store 1,mem_usb_tx_enable
+	fetch 1,mem_usb_ep1_data
+	rtn blank
+	beq USB_EP1_KB,usb_tx_kb_normal_data
+	branch assert
+
+usb_tx_data_ep2:
+	fetch 1,core_usb_txbusy
+	rtnbit1 2
+	fetch 1,mem_usb_tx_enable
+	rtnbit0 2
+	fetch 1,mem_usb_tx_enable
+	set0 2,pdata
+	store 1,mem_usb_tx_enable
+	fetch 1,mem_usb_ep2_data
+	rtn blank
+	beq USB_EP2_MS,usb_tx_ms_data
+	beq USB_EP2_MULTIKEY,usb_tx_kb_multikey_data
+	beq USB_EP2_SYSTEMKEY,usb_tx_kb_systemkey_data
+	branch assert
+
+usb_tx_fifo_release:
+	//clear mem_usb_mouse_data/mem_usb_kb_data/mem_usb_kb_multikey/mem_usb_kb_system
+	arg mem_usb_mouse_data,contw
+	arg 64,loopcnt
+	branch memset0
+	
+usb_tx_ms_data:
+	fetch 1,mem_usb_idle_flag
+	fetcht 1,mem_usb_get_protocol_flag
+	iand temp,pdata
+	branch usb_tx_ms_data_normal_mode,blank
+	fetcht 1,mem_usb_set_protocol_status
+	iadd temp,pdata
+	beq MAC_BOOT_MODE,usb_tx_ms_data_mac_boot_mode
+	branch usb_tx_ms_data_normal_mode
+
+usb_tx_ms_data_mac_boot_mode:
+	jam 0,mem_usb_ep2_data
+usb_tx_ms_data_mac_boot_regroup:
+	fetch 1,mem_usb_mouse_data+1	//key
+	beq R_KEY,usb_tx_mac_boot_ms_regroup_r_or_lrkey
+	beq LR_KEY,usb_tx_mac_boot_ms_regroup_r_or_lrkey
+	fetch 1,mem_usb_mouse_data+1	//key
+	store 1,mem_usb_mouse_data
+	fetch 1,mem_usb_mouse_data+2	//x low
+	istore 1,contw
+	fetch 1,mem_usb_mouse_data+4	//y low
+	istore 1,contw
+	fetch 1,mem_usb_mouse_data+6	//wheel
+	istore 1,contw
+	arg 4,loopcnt
+	arg mem_usb_mouse_data,contr
+	branch usb_tx_ep2
+	
+usb_tx_ms_data_normal_mode:
+	jam 0,mem_usb_ep2_data
+usb_tx_mac_boot_ms_regroup_r_or_lrkey:	
+	arg 8,loopcnt		
+	arg mem_usb_mouse_data,contr
+	branch usb_tx_ep2
+
+usb_tx_kb_multikey_data:
+	jam 0,mem_usb_ep2_data
+	arg 3,loopcnt
+	arg mem_usb_kb_multikey,contr
+	branch usb_tx_ep2
+
+usb_tx_kb_normal_data:
+	jam 0,mem_usb_ep1_data
+	arg 8,loopcnt
+	arg mem_usb_kb_data,contr
+	branch usb_tx_ep1
+
+usb_tx_kb_systemkey_data:
+	jam 0,mem_usb_ep2_data
+	arg 2,loopcnt
+	arg mem_usb_kb_system,contr
+	branch usb_tx_ep2
+
+usb_inwake_state_tx_dispose:
+	fetch 1,mem_usb_state
+	beq USB_CONNECTED,usb_mac_wakeup_trig
+	rtn
+usb_mac_wakeup_trig:
+	fetch 1,core_usb_config
+	set1 7,pdata
+	store 1,core_usb_config
+	jam 1,mem_usb_mac_wakeup_trig
+	rtn
+
+usb_mac_wakeup_judge:
+	fetch 1,mem_usb_state
+	rtneq USB_SLEEP
+	beq USB_CONNECTED,usb_mac_wakeup
+	rtn
+usb_mac_wakeup:
+	fetch 1,mem_usb_mac_wakeup_trig
+	rtn blank
+	jam 1,mem_usb_wakestate_onetime_flag
+	branch usb_wakeup
+
+usb_windows_wakeup:
+	arg USB_TIMER_WAKEUP,queue
+	call timer_check
+	nrtn blank
+usb_wakeup:
+	fetch 1,core_usb_config
+	rtnbit0 7	//endpoint wakeup enable
+	jam 0xfc,core_usb_config
+	nop 30000
+	jam 0x3c,core_usb_config
+	rtn
+
+
+
+
+
+	
+push_stack:
+	storer contw,2, mem_contw
+	storet 8,mem_temp
+	storer timeup,4,mem_timeup
+	call push_stack_rega_b_c
+	storer contr,2, mem_contr
+	storer loopcnt,2, mem_loopcnt
+	storer queue,2,mem_queue
+	rtn
+
+push_stack_rega_b_c:
+	storer rega,4, mem_rega
+	storer regb,4, mem_regb
+	storer regc,3, mem_regc
+	rtn
+
+pop_stack:
+	bpatchx patch20_7,mem_patch20
+	fetch 2, mem_contw
+	iforce contw
+	fetcht 8,mem_temp
+	fetchr timeup,4,mem_timeup
+	call pop_stack_rega_b_c
+	fetchr loopcnt,2,mem_loopcnt
+	fetchr queue,2,mem_queue
+	fetch 2,mem_contr
+	iforce contr
+	rtn
+
+pop_stack_rega_b_c:
+	fetchr rega,4, mem_rega
+	fetchr regb,4, mem_regb
+	fetchr regc,3,mem_regc
+	rtn
+
+get_contw:
+	fetch 2,mem_contw
+	copy pdata,contw
+	rtn
+get_contr:
+	fetch 2,mem_contr
+	copy pdata,contr
+	rtn
+	
+store_contw:
+	copy contw,pdata
+	store 2,mem_contw
+	rtn
+store_contr:
+	copy contr,pdata
+	store 2,mem_contr
+	rtn	
+	
+
+//
+save_cont_pointers:
+	copy contw,pdata
+	store 2,mem_contw
+	copy contr,pdata
+	store 2,mem_contr
+	rtn
+	
+load_cont_pointers:
+	fetch 2,mem_contw
+	copy pdata,contw
+	fetch 2,mem_contr
+	copy pdata,contr
+	rtn
+
+
+//input pdata,temp 1byte
+//output rega:diff
+get_diff:
+	isub temp,rega
+	rtn positive
+	arg 0x100,rega
+	iadd rega,pdata
+	isub temp,rega
+	rtn	
+
+memcpy96:
+	call memcpy32
+memcpy64:
+	call memcpy32
+	branch memcpy32
+	
+
+memcpy12:
+	call memcpy8
+memcpy4:
+	ifetch 1,contr
+	istore 1,contw
+memcpy3:
+	ifetch 3,contr
+	istore 3,contw
+	rtn	
+memcpy8:
+	ifetch 8,contr
+	istore 8,contw
+	rtn	
+
+memcpy48:
+	call memcpy16
+memcpy32:
+	call memcpy8
+memcpy24:
+	call memcpy8
+memcpy16:
+	call memcpy8
+	branch memcpy8
+
+delay:
+	increase -1,pdata
+	nop 38
+	nbranch delay,blank
+	rtn
+
+
+delay_10ms:
+	arg 10,loopcnt
+delay_ms_wait:
+	nop 12000
+	loop delay_ms_wait
+	rtn
+
+
+memset0_16:
+	call memset0_8
+memset0_8:
+	call memset0_4
+memset0_4:
+	force 4,loopcnt
+	branch memset0
+	
+clear_mem_256:
+	force 32,loopcnt
+	branch memset0 
+clear_mem_512:
+	force 64,loopcnt
+	branch memset0 
+
+clear_mem:
+	deposit loopcnt
+	rtn blank
+memset0:
+	force 0,pdata
+	lstore  contw
+	rtn	
+
+clear_temp_block:
+	arg 32,loopcnt
+	arg mem_temp_block0,contw
+	branch clear_mem
+	
+xor_loop:
+	ifetch   4,regc
+	ifetcht 4,rega
+	ixor     temp,pdata
+	istore   4,contw	
+	increase 4,rega
+	increase 4,regc
+	loop  xor_loop
+	rtn
+	
+// 11 22 -> 22 11; 11 22 33 -> 33 22 11 
+// rega:data addr ;loopnct:length
+inverse_data:
+	bpatchx patch21_0,mem_patch21
+	copy loopcnt,pdata
+	sub pdata,1,null
+	rtn positive
+	iadd rega,regb	
+	increase -1,regb
+	rshift loopcnt,loopcnt
+inverse_loop:
+	ifetcht 1,rega
+	ifetch 1,regb
+	istore 1,rega
+	istoret 1,regb
+	increase -1,regb
+	increase 1,rega
+	loop inverse_loop
+	rtn
+
+le2be_6Byte:
+inverse_data_6Byte:
+	rshift32 pdata,temp
+	call inverse_data_4Byte
+	byteswap temp,temp
+	lshift16 pdata,pdata
+	ior temp,pdata
+	rtn
+
+
+le2be_4Byte:
+inverse_data_4Byte:
+	rshift16 pdata,contr
+	byteswap contr,contr
+	byteswap pdata,pdata
+	lshift16 pdata,pdata
+	ior contr,pdata
+	rtn
+
+
+memcpy_fast:
+	bpatchx patch21_1,mem_patch21
+	deposit loopcnt
+	rtn blank
+memcpy_fast_loop:
+	increase -8,loopcnt
+	call memcpy8,positive
+	rtn zero
+	branch memcpy_fast_loop,positive
+	increase 8,loopcnt
+memcpy_fast_loop_four:
+	increase -4,loopcnt
+	call memcpy4,positive
+	rtn zero
+	branch memcpy_fast_loop_four,positive
+	increase 4,loopcnt
+	branch memcpy
+ 
+memcpy:
+	deposit loopcnt
+	rtn blank
+memcpy_loop:
+	ifetch 1,contr
+	istore 1,contw
+	loop memcpy_loop
+	rtn
+
+timer_stop:
+	setarg 0
+timer_init:
+//	rshift clkn_bt,temp
+//	storet 4,mem_last_clkn
+	store 2,mem_pdatatemp
+	bpatchx patch21_2,mem_patch21
+	call timer_check
+	fetcht 2,mem_pdatatemp
+	arg mem_timers,contw
+//	iforce temp
+	lshift queue,pdata
+	iadd contw,contw
+	istoret 2,contw
+	rtn
+
+timer_check_timeout:
+	arg 0x800,timeup
+	lshift16 timeup,timeup
+	iadd timeup,pdata
+	rtn
+
+
+timer_reinit:
+	arg 0,queue
+timer_check:
+	bpatchx patch21_3,mem_patch21
+	fetcht 4,mem_last_clkn
+	rshift clkn_bt,pdata
+	store 4,mem_last_clkn	
+	isub temp,null
+	ncall timer_check_timeout,positive	
+	isub temp,timeup
+	copy timeup,temp
+	arg mem_timers,contr
+	copy contr,contw
+	arg 16,loopcnt
+timer_loop:
+	ifetch 2,contr
+	isub temp,pdata
+	branch timer_counting,positive
+	force 0,pdata
+timer_counting:
+	istore 2,contw
+	loop timer_loop	
+	arg mem_timers,contr
+	lshift queue,pdata
+	iadd contr,contr
+	ifetch 2,contr
+	rtn
+
+
+
+	
+clk_add:
+	iadd temp,temp
+	copy temp, loopcnt
+	fetch 2,mem_param_rt_rthalfslot
+	isub loopcnt,pdata
+	rtn positive
+	sub pdata,0,pdata
+	rshift16 temp,temp
+	increase 1,temp
+	lshift16 temp,temp
+	ior temp,temp
+	rtn
+
+clk_diff_rt:
+	call clk_diff
+	branch clk2rt
+
+
+clk_diff:
+	disable user
+	isub temp,pdata
+	branch clk_diff_pos,positive
+	enable user
+	sub pdata,0,pdata
+clk_diff_pos:
+	rtnbit0 15
+	copy pdata,regab
+	arg 0x10000,temp
+	fetch 2,mem_param_rt_rthalfslot
+	isub temp,pdata
+	iadd regab,pdata
+	set0 64,pdata
+	rtn
+
+	
+
+clk2rt:
+	fetcht 2,mem_param_rt_rthalfslot
+	iforce contr
+	rshift16 pdata,pdata
+	imul32 temp,pdata
+	iadd contr,pdata
+	rtn
+
+	
+clk2lpo:
+	lshift8 pdata,pdata
+	lshift4 pdata,pdata
+	fetcht 3,mem_clks_per_lpo
+	idiv temp
+	call wait_div_end
+	quotient temp
+	rtn
+
+	
+clk2bt:
+	fetcht 2,mem_param_rt_rthalfslot
+	idiv temp
+	call get_div_result
+	lshift16 pdata,pdata
+	remainder temp
+	ior temp,temp
+	rtn
+
+
+
+//input:contu 
+//output:temp
+//used register: temp regab
+string2dec_from_uart:
+	arg 0,temp
+string2dec_from_uart_done:
+         copy temp,regab
+	ifetch 1,contu
+	call uchar2dialog	
+	copy regab,temp
+	call swap
+	arg 10,regb
+	imul32 regb,pdata
+	iadd temp,pdata
+	copy pdata,temp
+	loop string2dec_from_uart_done
+	rtn
+	
+
+
+uchar2dialog:
+	arg 0x3a,temp
+	isub temp,null
+	nbranch uchar2dialog_number,positive
+	arg 0x61,temp
+	isub temp,null
+	branch uchar2dialog_a2f,positive
+	arg 0x37,temp
+	isub temp,pdata
+	rtn
+uchar2dialog_number:
+	arg 0x30,temp
+	isub temp,pdata
+	rtn
+uchar2dialog_a2f:
+	arg 0x57,temp
+	isub temp,pdata
+	rtn
+
+
+right_shift_n: //rshiftN pdata,pdata
+	sub loopcnt,0,null
+	rtn zero
+right_shift_n_loop: 
+	rshift pdata,pdata
+	loop right_shift_n_loop
+	rtn
+
+//lshift. 0:1 byte; 1:2byte; 2:4byte; 3:8byte; 4:16byte//
+left_shift_n:
+	force 1,pdata
+	sub loopcnt,0,null
+	rtn zero
+left_shift_n_loop:
+	lshift pdata,pdata
+	loop left_shift_n_loop
+	rtn
+	
+
+	// contr: rxdata, loopcnt is count. result in quotient
+calc_average:
+	setarg 0
+	copy loopcnt,rega
+calc_average_loop:
+	ifetcht 2,contr
+	iadd temp,pdata
+	loop calc_average_loop
+	idiv rega
+get_div_result:
+	call wait_div_end
+	quotient pdata
+	rtn
+
+wait_div_end:	
+	rtn modone
+	branch wait_div_end
+
+
+
+//input:
+//	count:loopcnt str1:rega str2:regb
+//output:
+//	same:set flag zero ,diff not set flag zero
+// using:
+//	reg:temp null flag:zero
+compare_loop:
+string_compare:
+	ifetch 1,rega
+	ifetcht 1,regb
+	isub temp,null
+	nrtn zero
+	increase 1,rega
+	increase 1,regb
+	loop string_compare
+	branch enable_zero
+
+
+	
+ceiling:
+	isub temp,null
+	nrtn positive
+	deposit temp
+	rtn
+	
+swap:
+	iadd temp,pdata
+	isub temp,temp
+	isub temp,pdata
+	rtn
+
+clean_smem:
+	arg 0,contw
+	branch clean_mem
+
+clean_xmem:
+	arg 0x4000,contw
+clean_mem:
+	arg 0x1000,loopcnt
+	branch memset0				// clear xram at boot
+
+	//cb function ptr in pdata
+callback_func:
+	rtn blank
+	copy pdata,pc	//rtn through cb functon.
+	//branch assert
+
+ice_break_disable_wdt:
+	call wdt_set_disable
+
+ice_break:
+	jam 0x1,core_ice_ctrl
+	rtn
+
+ice_setbp:
+	store 2,core_ice_break0
+	fetch 1,core_ice_ctrl
+	set1 4,pdata
+	store 1,core_ice_ctrl
+	rtn
+ice_setbp2:
+	store 2,core_ice_break1
+	fetch 1,core_ice_ctrl
+	set1 6,pdata
+	store 1,core_ice_ctrl
+	rtn
+	
+ice_set_write_bp:
+	store 2,core_ice_break0
+	jam 0x30,core_ice_ctrl
+	rtn
+	
+
+
+	//fuction fifo_in
+	//rega pointer to fifo memory , *(rega+len) is the end of fifo
+	//mem_fifo_temp data into fifo
+	//assert if fifo was full
+fifo_in:
+	bpatchx patch21_4,mem_patch21
+	ifetcht UTIL_FIFO_LEN,rega
+	and temp,0xff,pdata
+	nbranch fifo_in_push,blank
+	rshift8 temp,pdata
+	istore UTIL_FIFO_LEN,rega
+fifo_in_push:
+	increase UTIL_FIFO_LEN+UTIL_FIFO_OFFSET,rega
+	ifetch 1,rega
+	nbranch assert,blank //fifo full
+	fetch 1,mem_fifo_temp
+	istore 1,rega
+	rtn
+	
+	//fuction fifo_out
+	//rega pointer to fifo memory
+	//pdata  data from fifo, blank mains fifo empty
+fifo_out:
+	bpatchx patch21_5,mem_patch21
+	arg UTIL_FIFO_LEN,loopcnt
+	ifetch UTIL_FIFO_LEN,rega
+	rtn blank
+fifo_out_loop:
+	ifetch 1,rega
+	nbranch fifo_out_end,blank
+	increase 1,rega
+	loop fifo_out_loop
+	branch assert
+fifo_out_end:
+	arg 0,temp
+	istoret 1,rega
+	rtn
+
+	//fuction fifo_is_empty
+	//rega pointer to fifo memory
+	//blank--- fifo is empty
+fifo_is_empty:
+	ifetch UTIL_FIFO_LEN,rega
+	rtn
+
+	//fuction fifo_is_full
+	//rega pointer to fifo memory
+	//blank--- fifo is NOT full
+fifo_is_full:
+	ifetch 1,rega
+	rtn
+	//rega pointer to fifo memory
+	//blank--- fifo is NOT near full
+fifo_is_near_full:
+	ifetch 2,rega
+	rtn
+
+	//rega pointer to fifo memory
+	//count output via pdata
+fifo_content_count:
+	arg 0,temp
+fifo_content_count_loop:
+	fetch 1,contr
+	loop fifo_content_count_loop,blank
+	increase 1,temp
+	loop fifo_content_count_loop
+	copy temp,pdata
+	rtn
+
+//input pdata, temp, return small in pdata	
+not_greater_than:
+	isub temp,null
+	nrtn positive
+copy_temp2pdata:
+	copy temp,pdata
+	rtn
+
+
+disable_positive:
+	force -1,null
+	rtn
+enable_positive:
+disable_zero:
+	force 1,null
+	rtn
+enable_zero:
+	force 0,null
+	rtn
+
+enable_user:
+	enable user
+	rtn
+	
+disable_user:
+	disable user
+	rtn
+	
+enable_user2:
+	enable user2
+	rtn
+	
+disable_user2:
+	disable user2
+	rtn
+
+enable_user7:
+	enable user7
+	rtn
+
+disable_true:
+	disable  true
+	rtn
+
+enable_true:
+	enable  true
+	rtn
+
+disable_blank:
+	setarg 1
+	rtn
+
+enable_blank:
+set_pdata_0:
+	setarg 0
+	rtn
+
+//input pdata :sum
+//output pdata :sum
+cal_sum:
+	sub loopcnt,0,null
+	rtn zero
+cal_sum_loop:
+	ifetcht 1,contr
+	iadd temp,pdata
+	loop cal_sum_loop
+	rtn
+
+	
+reverse_byte:
+	copy loopcnt,pdata
+	rtn blank
+	copy contr,pdata
+	iadd loopcnt,pdata
+	increase -1,pdata
+	copy pdata,contr	
+reverse_loop:
+	ifetch 1,contr
+	increase -2,contr
+	istore 1,contw
+	loop reverse_loop
+	rtn
+
+
+lshift14:
+	lshift16 pdata,pdata
+rshift2:
+	rshift2 pdata,pdata
+	rtn
+
+lshift6:
+	lshift8 pdata,pdata
+	branch rshift2
+
+
+clear_wake:
+	setarg 0
+	store 8,mem_gpio_wakeup_cfg
+	set1 25,pdata	//gpio22(ice) enable wakeup
+	istore 4,contw
+	rtn
+
+
+generate_random:
+	arg 16,loopcnt
+generate_random_loop:
+	random pdata
+	istore 1,contw
+	loop generate_random_loop
+	rtn
+
Index: output/bt_program23.rom
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/bt_program23.rom	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/bt_program23.rom	(working copy)
@@ -0,0 +1,32236 @@
+11000010100001000000000000110011
+11000000000000000000000000111011
+11000000000000010000000001101001
+11000000000010000000000001110011
+11000000000010001000000001110101
+11000000000010100000000101011000
+11000000000010101000000011110110
+11000000000011000000000100000011
+11000000000011001000000100001010
+11000000000011010000000010000011
+11000000000100101000010010101010
+11000000000101000000010010011100
+11000000001000010000000101110111
+11000000001000100000000111110100
+11000000001000101000010000101000
+11000000001000110000000111110111
+11000000001000111000001000001010
+11000000001001000000010100101100
+11000000001001001000010100110000
+11000000001001010000010110100010
+11000000001001011000001011101001
+11000000001001100000001011101011
+11000000001001101000010100111001
+11000000001001110000001100001000
+11000000001010000000001101101001
+11000000001010010000001111101111
+11000000001010101000010000001000
+11000000001010111000010000001001
+11000000001011001000010000011001
+11000000001011010000010001111000
+11000000001011011000010010000000
+11000000001011100000010001111100
+11000000001011101000010010000010
+11000000001100001000010111000100
+11000000001101111000010110011101
+11000000001110001000010010000000
+11000000001110110000000001001010
+11000000001110111000001000100011
+11000000010000000000000101000000
+11000000010000100000010010000000
+11000000010011010000001011010001
+11000000010110001000010011001001
+11000000011000101000000101110100
+11000000011010101000010001100101
+11000000011011010000000101000001
+11000000011011011000011001100110
+11000000011011100000011010100011
+11000000011011101000011010000100
+11000000011110110000010100011101
+11000000011111010000010100100101
+00100000001000000010001101011010
+11000000000010100000010101010001
+11000000000011010000010101010000
+11000000000100101000010110000000
+11000000000100110000010110000101
+11000000001001100000010110010111
+11000000001001101000010110011011
+11000001011111111000000000000000
+00100000001000000010001101011010
+00100100001101011000000000111110
+00110111110110011000001000000000
+00110111110110011000001000000000
+00100000010000000101010010101100
+00100100001101000010000000000010
+01101111111000001100101010111010
+00100000001110100010000000000010
+01110000010010101011101000000000
+01101111111000001100011001010101
+11000000011111111010000000000010
+00011111111000100000111000000000
+01101111111000100000011010011101
+10101111111011000000000000000000
+00100000010000001100111001000101
+00100000001000000010000000000010
+01101111111001000100011100010011
+11000100000010101000000000000000
+00100000010000000000000001001110
+00100000001000000101010101000001
+01101111111000001100010000000111
+11000001100000010000000000000000
+01101111111000001100010000001000
+00100000010000000000000001010111
+00011000010000100111111000000000
+01100111111000001100011000110101
+01111001001000000111111000000111
+11011000010000000000000000000000
+00100000001000000110111100100000
+11011000010000000000000000010010
+11000001000000110000000000000000
+11011000010000000000000000001010
+11000001000000111000000000000000
+11011000010000000000000000001001
+11000001000001000000000000000000
+11011000010000000000000000001100
+11000001000001001000000000000000
+11011000010000000000000000000110
+11000001000001010000000000000000
+11011000010000000000000000010100
+11000001000001011000000000000000
+11011000010000000000000000010101
+11000001000001100000000000000000
+11011000010000000000000000010110
+11000001000001101000000000000000
+11011000010000000000000000001101
+00100000011000000000000000000000
+00100000010000000111010101010010
+00100000010000000111010001001000
+00100000010000000100101111111011
+00100000010000000010101001000101
+00100000010000000010000000101010
+00100000010000000100001010101101
+00100000010000000010000000011000
+00100000010000000011000100001111
+00100000010000000010010010001100
+00100000001000000000000001101001
+01110000100010010000000000000000
+00100000001000000010000101010011
+01110000100010100000111101100000
+01110000100010100001000010101010
+01110000100010100001001001111010
+01110000100010100010010100000000
+01110000100010100010011000000000
+00100000000000000000000000111100
+01110000100010100010000000100000
+01110000100010100010001111110101
+01110000100010100010010000010010
+01110000100010100010010000010000
+00100000000000000000000000111100
+01110000100010100001001001100000
+01110000100010100010001111011101
+00100000011000000000000000000000
+01110000000000011011101100000000
+01110000000000011011110000000000
+00110111110110011000001000000000
+01110000100010010100011000001101
+01110000100010010110111100010000
+01110000100010100001001111001101
+01110000100010100000011000010000
+01110000100010101000010001001010
+01110000100010101000010101000000
+01110000100010100001011011111110
+00100000010000000000000011001010
+00100000010000000111000011010111
+00110111110110011000001000000000
+01110000100000010011101101011111
+00110111110110011000001000000000
+01110000100000010011110010001000
+00110111110110011000001000000000
+01101111111000001100000010011001
+11000000000010000000000010111111
+01101111111000001100010000111000
+00011111111000011111111000000100
+01100111111100001000101000000010
+01110000100010010000111100000001
+01110000100010101000000000100100
+01110000100010101000000101100010
+01011000111001100001001000010010
+01100111111100011000101001110011
+01110000100010101000011001100000
+01110000100010101000101100111011
+00100000010000000000000010110001
+01110000100000000100001100000000
+01110000100000000100001000000101
+01011000010101010111010001110100
+01100111111100011000100101101000
+01110000100010010110000001101110
+00100000010000000000000100010010
+00100000010000000000000100111101
+00100000010000000000000010101011
+01110000010000010100100000001100
+00100000001000000110111101001110
+00100000011101011000000000000000
+00110111110110011000001000000000
+01101111111000001100000100011100
+01100111111100001000000100111010
+00110111110110011000001000000000
+00100000011000000000000000000000
+01101111111000001100000010011001
+11000000000011000000000010110111
+01101111111000001100010000111000
+00011111111000011111111000000110
+01100111111100001000101000000010
+01110000100010100000010111100000
+01110000100010100000000011011000
+00100000000000000000000000111100
+01110000100010100000000110100000
+01110000100010100000000011011111
+01110000100010100000000111111010
+00100000000000000000000000010100
+01110000100010100000000010011111
+00100000011000000000000000000000
+01101111111000001100010000111000
+00011111111000011111111000000110
+01100111111100001000101000000010
+01110000100010010000111100000000
+01110000100010101000000000100011
+01110000100010101000000110110000
+01011000111001000000100100001001
+01100111111100011000101001110011
+01110000100010100111011000101010
+01110000100010010000001000000100
+00100000001000000000000010011110
+00100000001101011000000011110010
+01101111111000100000001000001101
+00100000011110100000000000000000
+00110111110110011000001000000000
+01101111111100001000000100110110
+00011111111000010111111011110000
+01101000010010001000001000001101
+10011000010000011111111000000000
+00011111111000001111111111111101
+01100111111100001000000100110110
+00110111110110011000001000000000
+01101111111100001000000100111000
+00011111111000010111111000000111
+01101000010010001000001000001110
+00011000010010011000010000000000
+10011000010000011111111000000000
+01100111111100001000000100111000
+00110111110110011000001000000000
+01101111111100001000101011001011
+00011111111000010111111011110000
+01101000010010001000001000001111
+01100000010010001100000101011011
+10011000010000011111111000000000
+01100111111100001000101011001011
+01101111111000001000001000010000
+01100111111000001100000101011100
+00101111111011111111111000000011
+01101111111100001000101000000110
+01111001001000001111111000000111
+01100111111100001000101000000110
+01101111111000001000001000010000
+00011111111000010000010000000111
+00011000010100100000010000000000
+00011000010000111000010000000000
+01100000010010001100010000111000
+01101111111100001000101000000010
+00011111111000010111111000011111
+10011000010000011111111000000000
+01100111111100001000101000000010
+00100000011000000000000000000000
+01101111111000010100000101011011
+00100000011110100000000000000000
+01100111111000010000001000001111
+00100000001000000000000011011100
+00100000010000000010000110111010
+00011000000000000010101000001000
+00011000000000000010101000000000
+01011000000010101010101011011010
+01100111111100011000101000001111
+01110000100010100010010101000000
+01110000100010100010011000010000
+00100000000000000000000000111100
+01110000100010100000000111111011
+01110000100010100010010111111111
+01110000100010100010011000110000
+01110000100010100001011011111110
+00100000001000000010000110110100
+01011000000010101010101001111110
+01100111111100011000101000001111
+00100000000000000000000000111100
+01110000100010100010010100000000
+01110000100010100010011000001101
+01110000100010100001011011110110
+00100000001000000010001000000011
+01101111111000001100000101000001
+11000000000001010000000100001101
+00100000001000000010001000001110
+01110000100010100001010000100101
+01011000101010010011111100111111
+01100111111100011000101001100000
+01110000100010100110001100011111
+00100000011000000000000000000000
+00100000011101011000000000000000
+00100000010000000010000101100000
+11011000010000000000000000100111
+00100000010000000010000101101111
+00100000010000000010000110100110
+01110000100010100010010101111111
+01110000100010100011000000011010
+01110000100010100011000101111000
+01110000100010101000111110110010
+01110000100010101100001000000000
+01110000100010101100001100000000
+11011000111000000000000000000110
+00100000010000000000000100101111
+00101010001011111111111000001101
+00100000010000000010000100011101
+00101010010011111111111000001101
+00100000010000000010000100011110
+11011000111000000000000000000101
+00100000010000000010000100011100
+00100000010000000010000100011110
+00100000010000000000000100101111
+11011000101000001000101011000010
+00011010001100011111111000000000
+00100000010000000010000100010111
+00011010010100011111111000000000
+00100000010000000010000100010111
+00011000111000001000111111111111
+00100000001000010000000100100100
+00100000001000000010000101001111
+00100000000000000000000000111100
+01011000000000000000111100000000
+01100111111100010000100110000010
+01011000000000000000111111110000
+01100111111100010000100110000100
+01110000100010011000000100001001
+01110000100010011000000100000011
+01110000100010011000000000000110
+00100000000000000000000000111100
+11011010001000000000000000000000
+11011010010000000000000000000000
+11011111001000000000000000010000
+11011000110000000000111100000000
+00100000001000000010000100101101
+00100000011101011000000000000000
+00100000001000000010001001110010
+01011000000000000000000000000000
+00100000011000000000000000000000
+00100000011101011000000000000000
+01110000100010100000011101110111
+01110000100010100000100011001001
+01110000100010100000101100000001
+01101111111000001100010000001001
+01100111111100001000000011001101
+00100000000000000000101110111000
+00100000010000000000000101010001
+01110000100010100000100011000001
+01101010010000001100010000011001
+11011111001000000000000000001000
+00100000010000000110111101011000
+01101111111000001100010000011001
+01100111111000001100010000110011
+01100010010000001100010000011001
+00100000011000000000000000000000
+01110000100000001100110000000011
+01101111111100001000000100101001
+11000011000000101000000101010010
+01101000010110010000000101100100
+01100000010010010100010000001010
+01110000100000001100110000000000
+00100000011000000000000000000000
+01110000100010101000001000010001
+01110000100010101000110100010010
+01110000100010101000111000001010
+01101111111000001100000010011001
+11000000000010000000000101110001
+01011000000000000101011101100010
+01100111111100010000100100000111
+01110000100010010000000100000011
+01110000100010010011000000000011
+11000110000101101000000000000000
+01110000100010010000000100000001
+01110000100010101000001000000111
+01110000100010101000110101000100
+01110000100010101000111000001010
+01101111111000001100000010011001
+11000000000010000000000101101110
+01011000000000000010101110110001
+01100111111100010000100100000111
+11000110100101111000000000000000
+01110000100010010011000000100100
+01110000100010010000000100000101
+00100000011000000000000000000000
+01011000000000000100000110001001
+01100111111100010000100100000111
+00100000001000000000000101101010
+01011000000000001000001100010010
+01100111111100010000100100000111
+00100000001000000000000101011111
+00100000010000000110101100111010
+00100000010000000110101101110101
+00100000001000000110101100111000
+01101111111000001100011001100110
+11000000000000000000000101111011
+11000000000000001000000110000101
+00100000011000000000000000000000
+11011011000000000000000001010000
+01011000000000000000010000000000
+10011011000001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+01100111111000010000011001110000
+11011111111000000001111110111100
+11011000010000000000000000000100
+11011101011000000000000000000100
+00100000001000000000000110001111
+11011011000000000000000101000000
+01011000000000000000010000000000
+10011011000001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+01100111111000010000011001110000
+11011111111000000001111110110000
+11011000010000000000000000010000
+11011101011000000000000000010000
+00100000001000000000000110001111
+01100111111000010000011001110010
+01100000010010001000011001111000
+11011010001000000100100111000111
+11011010011000000000000000000000
+01101111111000010000011001110010
+00011111111000100010010000000000
+01101111001000001000011001111000
+11011010001000000100100111000111
+00100000010000000110101101110100
+01101111111001000100100111000111
+01101000010011000100100111001111
+10011000010000011111111000000000
+01101000010011000100100111010111
+10011000010000011111111000000000
+00100000001110100000000110100101
+00011010011000001010011000000001
+01101111111000010000011001110000
+10011010011001100111110000000000
+01101111111000010000011001110010
+10011011000001100111111000000000
+01100111111000010000011001110010
+00100000001000000000000110010011
+00011010011001100111110000000000
+00100000001000101100101000111000
+01101111111000010000011001110010
+10011011000000001111111000000000
+10011101011001100111111000000000
+01100111111000010000011001110010
+01101111111000010000011001110010
+00011111111000100010010000000000
+01101111001000001000011001111000
+11011010001000000100100111000111
+00100000010000000110101101110100
+01101111111001000100100111000111
+01101000010011000100100111001111
+10011000010000011111111000000000
+01101000010011000100100111010111
+10011000010000011111111000000000
+00100000001110100000000110111000
+01101111111000010000011001110010
+00100000001000000000000110101001
+01011000000000000001111111000000
+01101000010010010000011001110010
+10011000010001100111111000000000
+01100111111000010100100111011111
+00011000010000100111111000000000
+10011101011000001010010000000000
+01101111001000001000011001111000
+11011010001000000100100111000111
+00100000010000000110101101110100
+01101111111000001100011001100110
+11000000000000000100101001000111
+11000000000000001000000111000101
+00100000011000000000000000000000
+01101111111000001100100111000111
+00011111111001100111110000000011
+00100100010000010111110111001010
+01100111111000001100100111000110
+01101111111000001100100111001000
+01100111111000001100011001100111
+01101111111000110100100111001001
+01100111111000110100011001101000
+01101111111000110100100111001111
+01100111111000110100011001101110
+01101000010010010100100111010101
+00011000000010100111111000000000
+10011000010000001111111000000000
+01100111111000010100011010010101
+00100000001000000000010011100110
+01101111111000001100011001100110
+11000000000000000000000111011000
+11000000000000001000000111011011
+00100000011000000000000000000000
+01101000010010010100100111011111
+01011000000000000001111111000000
+00100000001000000100101001100011
+01110000010010111110011100000001
+01101111111000001100101111101000
+00100000011110100000000000000000
+01101000010010010100100111011111
+01011000000000000001111111000000
+10011000010001100111111000000000
+01100111111000010000011001110000
+00011111111000100010010000000000
+11011010001000000100100111000110
+11011111001000000000000000000001
+00100000010000000110101101000101
+01101111111000010000011001110000
+00011111111000001010010000000001
+11011010001000000100011001100111
+11011111001000000000000000001101
+00100000010000000110101101000101
+01101111111000010000011001110000
+00011111111000001010010000001110
+11011010001000000100011010010101
+11011111001000000000000000000010
+00100000010000000110101101000101
+01101000010010010100100111011111
+00011000010000001000010000010000
+01100000010010010100100111011111
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000010100010100000000111010100
+00100000001000000100101001011000
+00011010011000100111111000000000
+11000000000010101000000111111010
+00100000001000000100101010011100
+01011000000000000000000000000000
+01100111111000010100011111000000
+01100111111000001100100001100000
+01100111111000001100100001100001
+01100111111000001100011110010100
+01110000010001111100001000000000
+00100000010000000010100111001011
+01110000010000101001101000000000
+01101111111000010100001111101111
+11000010100000111000001000000110
+11000010100000000100001011111100
+00100000001000000100101110010101
+00100000010000000101101100100001
+01101111111000010100001111101111
+11000010100000000100001011111100
+00100000001000000000010010000000
+00100000010000000101010100111101
+00100000010000000000001010011101
+00100000010000000011001010001110
+00100000010000000011010100110001
+00100000010000000101111111011101
+00100000010000000000001000111111
+00100000010000000100101101101000
+00100000010000000000001001000010
+00100000010000000000001001100111
+00100000010000000000001010010001
+00100000010000000000001010001001
+00100000010000000100101101000011
+00100000010000000100101101011000
+00100000010000000101101111100001
+00100000010000000100101101011100
+00100000010000000101101111100100
+00100000010000000100101101011111
+00100000010000000100101101010101
+00100000010000000000001011011010
+00100000010000000100101100110010
+00100000010000000101101111111110
+00100000010000000100101101001000
+00100000010000000000001011010010
+00100000010000000100101110000111
+00100000001000000000001011010111
+00100000010000000000001000110100
+00100000010000000110111110000010
+00100000010000000110111110110000
+00011111111001101111110000001010
+00100000010000000111110101011111
+01100111111000010100011000110011
+11011010001000000100011000101101
+00100000010000000101010101100011
+01101111111000001100010000001100
+11000010100000001100111101101011
+11000011000000000000001000110000
+01110000010001100011011100000001
+00100000001000000101010101011010
+11011000111000000000000000000100
+00100000010000000101111100000100
+01110000010011010000100000001100
+00100000001000000101010101011111
+00100000010000000101010011110010
+01011000010101100000000010010100
+01100111111000011100011000101101
+01011000000000000110110100000000
+11100111111000011000000000000101
+01101111111000001100011000110111
+00100000001110100000001000111101
+01110000010001100011000101110011
+00100000011000000000000000000000
+01110000010001100011000101101101
+00100000011000000000000000000000
+01101111111000001100100011101011
+00100100011110100000000000000000
+00100000001000000100101101100010
+01101111111000010100011110000001
+00100000011110100000000000000000
+01101111111000010100011100100101
+01101000010010010100011110000001
+10011000010001100000010000000000
+01101111111000010100100001101001
+10011000010001100111111000000000
+00100000001000010000001001001101
+00100000010000000000001001010100
+00100000010000000000001001010110
+00100000001000000100101101111100
+00100000010000000000001001010000
+00100000010000000000001001011100
+00100000001000000100101101111110
+01101111111000001100100110101010
+11000011000000000000001001010100
+01101000010010001100100001100111
+00100000001000000110111011110111
+01101000010010001100100001100111
+00100000001000000110111011110011
+01101111111000001100101000001000
+00100100011110100000000000000000
+01101111111000001100010000001100
+11000011100000000000000000000000
+01101000010010001100101110111011
+00100000001000000110111011110011
+01101111111000001100101000001000
+00100100011110100000000000000000
+01101111111000001100010000001100
+11000011100000000000000000000000
+01101111111000001100100110101010
+11000011000000010000001001010110
+01101000010010001100101110111011
+00100000001000000110111011110111
+01101111111000001100011000100001
+01100111111000001100100110101010
+00100000001000000000001001001101
+01101111111000001100101000001000
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100101000001000
+00100000001110100000001001101101
+00100000001000000000001001110011
+01101111111000001100011001100110
+11000000000000000000001001111001
+11000000000000001000001001111011
+11000000000000010000001001111101
+11000000000000011000001001111111
+00100000011000000000000000000000
+01101111111000001100011001100110
+11000000000000000000001010000001
+11000000000000001000001010000011
+11000000000000010000001010000101
+11000000000000011000001010000111
+00100000011000000000000000000000
+01101000010010001100101110110111
+00100000001000000110111011110011
+01101000010010001100101110111000
+00100000001000000110111011110011
+01101000010010001100101110111001
+00100000001000000110111011110011
+01101000010010001100101110111010
+00100000001000000110111011110011
+01101000010010001100101110110111
+00100000001000000110111011110111
+01101000010010001100101110111000
+00100000001000000110111011110111
+01101000010010001100101110111001
+00100000001000000110111011110111
+01101000010010001100101110111010
+00100000001000000110111011110111
+01101111111000010100011110000001
+00100000011110100000000000000000
+01101111111000001100101111001010
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100101111001010
+11000010100000000000001001110011
+00100000001000000000001001101101
+01101111111000001100011001100110
+11000000000000000000001010010110
+01101111111000010100011110010000
+00100000011110100000000000000000
+00100000001000000000001010011000
+01101111111000010100010111011000
+00100000011110100000000000000000
+01101111111000001100110100000111
+00011111111000001111111000000001
+01100111111000001100110100000111
+11000010100000010000001001110011
+00100000001000000000001001101101
+01110000010011010000110000000000
+01101111111000010100011110010000
+00100100011110100000000000000000
+01101111111000010100010111011000
+00100100011110100000000000000000
+01101111111000010100010111011110
+00100100011110100000000000000000
+01101111111000001100101000001000
+00100100011110100000000000000000
+01101111111001000100011100010011
+11000100000100011000000000000000
+11000100000000100000000000000000
+11000010100100111000001010111010
+01101111111000001100110100001000
+00011111111000001111111000000001
+01100111111000001100110100001000
+00011111111001100111110000010100
+00100100010000010000001010110100
+11000000000000010000001010110110
+11000000000000100000001010111000
+11000000000000110000001010110110
+11000000000001000000001010111000
+00100000011000000000000000000000
+01110000010011010000100000000001
+00100000001000000000001010111000
+01101000010010001100101110111100
+00100000001000000110111011110111
+01101000010010001100101110111100
+00100000001000000110111011110011
+01101111111000010100011100100101
+01101000010010010100011110000001
+10011000010001100000010000000000
+01101111111000010100110100001001
+10011000010001100111110000000000
+00100100001000010000001010111000
+01110000010011010000110000000001
+01101111111000001100110100001011
+00011111111000001111111000000001
+01100111111000001100110100001011
+11000010100000001000001010110110
+00100000001000000000001010111000
+01101111111001000100011100010011
+11000100000100011000000000000000
+11000100000000100000000000000000
+11000010100100111000001011001110
+01101111111000001100110100001000
+00011111111001100111110000001010
+00100000001000010110001000011011
+00100000001000000110001000010100
+01101111111000001100110100001100
+00100100001110100110001000011011
+00100000001000000110001000010100
+00100000011000000000000000000000
+11011010011000000100100011101110
+11011010010000000000001011010101
+00100000001000000100001011100111
+01110000010010001110101100000001
+00100000001000000100111101101100
+11011010011000000100011110000001
+11011010010000000100101110001101
+00100000001000000100001011100111
+01101111111000001100101110100001
+11000010100000001000001011011101
+00100000001000000000001011100111
+01101111111000001100101110100110
+00011111111001100111110001100100
+00100100011000010000000000000000
+00011111111000001111111000000001
+01100111111000001100101110100110
+11000001100011001000000000000000
+01110000010010111010010100000000
+01101111111000001100011001100110
+11000001000000100000000000000000
+00100000001000000100111000101100
+01110000010010111010011000000000
+00100000011000000000000000000000
+00100000010000000000001011000110
+00100000001000000111100010101010
+01101111111001000100011100010011
+11000011000010101000001011111110
+00100000010000000101010100110100
+00100000010000000000001000110100
+00100000010000000110111110000010
+00100000010000000110111110110000
+00011111111001101111110000001010
+00100000010000000111110101011111
+01100111111000010100011000110011
+01101111111000010100011000101111
+00011111111001101111110000000010
+00100000010000000111110101011111
+01101000010010010100011000110011
+10011000010001100111110000000000
+00100000001000010000001011101011
+11011010001000000100011000101101
+00100000010000000101010101100011
+01101111111000001100010000001100
+11000010100000001100111101101011
+01101111111000001100100110100100
+00100000010110100100111000100100
+01101111111000001100100110100011
+00100100011110100000000000000000
+01101111111000001100011001100110
+11000000000000000110000000101111
+00100000010000000101101010101000
+01101111111000110100011001101000
+00100000001110100101101010010100
+00100000001000000101010010100000
+00100000010000000000010011110011
+00100000010000000100110010000101
+01011000000000000000000000000000
+01100111111000010100100011101001
+11011000110000000100100010011100
+11011000101000000100100010110000
+11011111001000000000000000010100
+00100000010000000111110011011010
+01011000000000000100100010011100
+01100111111000010100100011100011
+01011000000000000100110011111011
+01100111111000010100100011100101
+00100000010000000100110010000011
+00100000010000000100110010000001
+01101111111000010100100011101001
+00011111111000001111111000000001
+01100111111000010100100011101001
+11000010100001001000001101001111
+01101000010010001100100001100100
+00100000010000000110111011100110
+00100100001000001000001100010110
+00100000010000000100110010000101
+01101000010010001100100001100100
+00100000010000000110111011100110
+00100000001000001000001100011110
+00100000010000000000001101000110
+00100000010000000000001101010110
+00100000010000000100110010000001
+00100000010000000100110010000011
+01101111111000010100100010011010
+00011111111000100010010000000000
+01110000010010001110100000000000
+11101000010000001000000000010010
+01101111111000010100100010011000
+00011111111000100010001000000000
+00011010001000100010011000000000
+11011111001000000000000000010100
+11101111111000001000000000010001
+10011000010001100111110000000000
+00100000001000101000001100111010
+00011010001000001010001000000001
+11000010000000000000001100101101
+00011010010000001010010000000001
+01101111111000001100100011101000
+00011111111000001111111000000001
+01100111111000001100100011101000
+00011111111001100111110000001011
+00100000001000010000001100101000
+00100000010000000000010010000101
+00100000001000000000010100000010
+01101111111000010100100011100011
+00011111111000100000101000000000
+00011010001000100111111000000000
+10011010011001100111111000000000
+10011000101000001000101000000000
+01101111111000010100100011100101
+00011111111000100010011000000000
+01101111111000001100100011101000
+10011010011000001010011000000000
+11101111111000001000000000010011
+11100111111000001000000000000101
+00100000001000000000001100110010
+01110000010010101011100100000000
+01110000010010001110100000000000
+00100000010000000100110001111011
+00100000010000000000001101010000
+00100000010000000100110001111001
+00100000010000000000001101010000
+00011111111001100111110000001011
+00100000001000010000001101001000
+00100000001000000100110001111011
+00100000001000000000001100001000
+01110000010010001110011100000000
+00100000010000000000001101010100
+01101111111000010100100011100101
+00100000001000000100110001001010
+00100000000000000000000001111000
+00100000001000000100110001100101
+01101111111000010100100010011000
+00011111111000100010010000000000
+01110000010010001110100000000000
+01110000010010001110011100000000
+11101000010000001000000000010010
+00101000010011111111111000000111
+00100000001000001000001101100011
+00100000010000000110111011110111
+00100000010000000000001101010100
+11101000010000001000000000010010
+00100000010000000110111011110011
+11101000010000001000000000010010
+00100000010000000100110001111101
+00011010010000001010010000000001
+01101111111000010100100011100011
+00100000010000000100110001001010
+00011111111001100111110000010011
+00100000001000010000001101011001
+00100000011000000000000000000000
+11011010001000000100100010011100
+11011010010000000100100010110000
+11011111001000000000000000010100
+00100000010000000111110101100100
+00100100001000101100110010000111
+00100000010000000000001110100011
+00100000010110100100110010000111
+00100000010000000100110011001101
+01101111111000001100100101111011
+00100100011110100000000000000000
+01101111111000001100100111000001
+11000001000000001000000000000000
+11000001000000010000000000000000
+11000001000000100000000000000000
+01110000010010001110100000000000
+11011010001000000100100010011100
+11011010010000000100100011000100
+11101000010000001000000000010001
+11101111111000001000000000010010
+10011000010000101111111000000000
+00100000001110100000001110011011
+01100111111000001100100011100111
+01100000010010001100100011110110
+11100000010000001000000000010010
+01110000010010001111010000000001
+01110000010010001111011100000000
+01101111111000001100100011100111
+11000011000000000000001110010000
+01101111111000001100100011101000
+00011111111011111111111000001000
+01101000010010001100100011110111
+10011000010000001111111000000000
+11011000110000000100101000010110
+10011000110000001000110000000000
+11101111111000001000000000000110
+01100111111000001100100011110101
+00100000010000000100110011111100
+00100000010000000000001110101111
+00100000010000000000001110111001
+01101111111000001100100011100111
+00011111111000110111111000000000
+01100111111000001100100011100111
+01101111111000001100100011110110
+00011111111000110111111000000000
+01100111111000001100100011110110
+01101111111000001100100011110111
+00011111111000001111111000000001
+01100111111000001100100011110111
+00011111111001100111110000000111
+00100000001000010000001110000011
+00011010001000001010001000000001
+00011010010000001010010000000001
+01101111111000001100100011101000
+00011111111000001111111000000001
+01100111111000001100100011101000
+00011111111001100111110000010011
+00100000001000010000001101111010
+00100000011000000000000000000000
+01101111111001000100100010011100
+00100100011110100000000000000000
+01101111111001000100100010100100
+00100100011110100000000000000000
+01101111111000100100100010101100
+00100100011110100000000000000000
+01101111111000001100100111000100
+00100100011110100000000000000000
+01101111111000001100100111000001
+11000001000000110000000000000000
+01110000010010011100000100000000
+00100000011000000000000000000000
+01101111111000001100100011110101
+11000000010101101000001110110010
+00100000001000000100110100111100
+01101111111000001100100111000110
+11000000000000011000001110110110
+01011000000000000000000011111010
+00100000001000000100110100111000
+01110000010010011100001000001000
+01110000010010011100001100101100
+00100000001000000100110110010101
+01101111111000001100100011110101
+11011000010000000000000011100000
+10011000010001100111110000000000
+00100100001000010000001111001011
+00011111111001100111110011100111
+00100100001000010000001111101000
+00011111111000010111111000000111
+00011111111000100000111000000000
+01101111111000001100100011110110
+11000010100000000000001111000111
+01101111111000001100100011111000
+11111001001111111111111000000000
+01100111111000001100100011111000
+00100000011000000000000000000000
+01101111111000001100100011111000
+11111001001000000111111000000000
+01100111111000001100100011111000
+00100000011000000000000000000000
+01110000010010010000000000000000
+01101111111000001100100011110110
+11000010100000000000001111011100
+01101000010010001100100011110101
+11011111001000000000000000000110
+11011000110000000100100011111010
+11101111111000001000000000000110
+10011000010001100111110000000000
+00100100001000101000001111011010
+11101111111000001000000000000110
+00011000110000001000110111111110
+11100111111000001000000000000110
+00100000011110100000000000000000
+00011000110000001000110000000001
+11100000010000001000000000000110
+11000010000000000000001111010001
+00100000011000000000000000000000
+01101000010010001100100011110101
+11011111001000000000000000000110
+11011000110000000100100011111010
+11101111111000001000000000000110
+00100000001110100000001111100101
+10011000010001100111110000000000
+00100000011000101000000000000000
+11000010000000000000001111011111
+00100000011000000000000000000000
+00011000110000001000110111111111
+11100000010000001000000000000110
+00100000011000000000000000000000
+01110000010010011100010100000001
+01101111111000001100100011110110
+00101111111011000000000000000000
+00100000010000001000001111101101
+00100000001000000000001111001011
+01110000010010011100010100000010
+00100000011000000000000000000000
+01101111111000001100100011110110
+00101111111011111111111000000000
+00100000010000001100110101001110
+01101111111000001100100110100001
+00100100010110100000001111110101
+00100000001000000100110100000001
+01101111111000001100100011110101
+11000000000010100000001111111010
+11000000000011010000010000000000
+11000000000001000000010000000100
+00100000001000000100110100010010
+01101111111000001100100011110110
+11000011000000000000001111111110
+01110000010010011100011000000001
+01110000010010111100101000000110
+01011000000000000000000000000000
+00100000001000000100110100111000
+01101111111000001100100011110110
+11000011000000000000001111111110
+01110000010010011100011000000000
+00100000001000000000001111111101
+01101111111000001100100011110110
+11000011000000000000001111111110
+01110000010010011100011000000010
+00100000001000000000001111111101
+00100000001000000100110111110110
+01111000010101000111110000000000
+01110000010010010110110000000000
+01110000010010010110110100000000
+01110000010010010110111000000000
+01101111111000001100100111000001
+11000000000000001100110110100101
+11000000000000010100110110101010
+11000000000000011100110110101010
+11000000000000100100110110101110
+11000000000000110100110110110111
+01101111111000001100100011110100
+00100000001110100000010000010110
+00100000001000000100111001010100
+01101111111000001100011001100110
+11000001100000000000000000000000
+00100000001000000100111001100110
+01101111111000001100011001100110
+11000000100000000000010000100000
+01110000010010011010100100000000
+01101111111000010100100001010101
+00100100010110100100101011111100
+01101111111000110100100001011000
+00100100010110100100101011111100
+01101111111000001100100001010101
+11000000000000000000010000100011
+00100000001000000100111100011001
+01110000010010000101111100000010
+00100000010000000100111100111110
+01101111111000001100011001100110
+11000000100000000100111100101010
+00100000001000000100111100100111
+01011000000000000000010001000101
+01100111111000010100001111101001
+01011000000000000100111111100101
+01100111111000010100010111110010
+01011000000000000100111111111000
+01100111111000010100010111110100
+01011000000000000000010001001000
+01100111111000010100010111110110
+01011000000000000000010100111001
+01100111111000010100001111011001
+01011000000000000000010001110110
+01100111111000010100001111010111
+01011000000000000100101010011010
+01100111111000010100001111011101
+01011000000000000100101111001100
+01100111111000010100001111011011
+01011000000000000100111101100010
+01100111111000010100001111010101
+01011000000000000101101100001000
+01100111111000010100001111011111
+01011000000000000100101100011001
+01100111111000010100001111100011
+01011000000000000101010111111010
+01100111111000010100001111100111
+01011000000000000110001000100001
+01100111111000010100001111100001
+01011000000000000110001000101000
+01100111111000010100001111100101
+00100000011000000000000000000000
+01101111111000001100011001100110
+11000001100000000000000000000000
+00100000001000000110000100001011
+00100000010000000000010001110000
+01101000010010001100011001010101
+00100000010000000110111010110110
+01101000010010001100101110111101
+01111001001000000000010000000111
+00100000010000000110111010110110
+01101111111000010100100010011000
+00011111111000100010010000000000
+11011111001000000000000000010100
+11101000010000001000000000010010
+00101000010011111111111000000111
+00100100010000001110111011110111
+00011010010000001010010000000001
+11000010000000000000010001010001
+00100000010000000000010010000101
+01110000010011010000110100000000
+01101111111000010100100010010110
+00011111111000100010010000000000
+11011111001000000000000000001000
+11101000010000001000000000010010
+00011000010001100111110011111111
+00100100010000101100111101011010
+00011010010000001010010000000001
+11000010000000000000010001011011
+00100000010000000000010010010011
+01101000010010001100011001011011
+00100000010000000101010110110101
+00100000010000000101010110111001
+00100000001000000101010011110010
+00011000010001100111110011111111
+00100000011000101000000000000000
+01111001001000000000010000000111
+00100000010000000110111011100110
+00100100001000001000010001101100
+01111101001000001000010000000111
+00100000001000000110111010110110
+01110000010011010000110100000001
+00100000010000000110111100001111
+11011001000000000000000000000110
+00100000001000000110111010111101
+01011000000000000000000000000000
+01111001001000000111111000010101
+01100111111001000000000000010110
+01011000000000000000000000000000
+11100111111000100000000000000101
+00100000011000000000000000000000
+11000110000100110000000000000000
+00100000001000000000010001001000
+01110000010001100101100111111111
+00100000010000000111001110011010
+00100000010000000100111101110000
+00100000001000000000010010000010
+00100000010000000100101101101111
+00100000010000000000001001101101
+00100000010000000000001001010100
+00100000001000000100101101111100
+00100000010000000000010010000010
+00100000001000000100001100100111
+00100000010000000000010001110000
+00100000010000000100111101110000
+00100000001000000000010001001000
+11011000110000001000000001110000
+11011111001000000000000000010000
+11101111111000001000000000000110
+00100100001110100000010010001100
+01011000000000000000000001000000
+00011000110000001000101111111111
+11100111111000001000000000000101
+11000010000000000000010010000111
+11011111111000001000000011011100
+10011000110001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000001000
+11011000110000001000000011010100
+00100000001000000000010010000111
+01101111111000001100110100001101
+00100000001110100000010010010110
+00100000001000000000010010011010
+01011000000000000000000000010000
+01100111111100001000000101000001
+00110111110110011000001000000000
+00100000011000000000000000000000
+01011000000000000000000010000000
+00100000001000000000010010010111
+00100000010000000010010000001000
+01101111111000011100000010111101
+00100000011110100000000000000000
+01101111111000001100100110100001
+00100100011110100000000000000000
+01101111111000001100100110100010
+00100100011110100000000000000000
+01101111111000001100100001000101
+00100100011110100000000000000000
+01101111111000010100011110010000
+00100100011110100000000000000000
+01101111111000001100100111000100
+00100100011110100000000000000000
+00100000001000000010010010010000
+01101111111000010100001111101001
+00100000010000000111110101111001
+01101111111000100100000010101101
+10011000010000001111111000000000
+01100111111000100100000010101101
+00100000010000000000010010110001
+00100000001000000010010000100101
+01100000000001000100000011100111
+11011000110000001000000001110000
+11011000101000000100000011001100
+00100000010000000111110010001111
+11011000110000001000000011010100
+00100000010000000111110010001001
+01101111111100001000000010000000
+01100111111000001100000011101111
+00011000010000100010010000000000
+11011111001000000000000000001100
+11011010001000000000000000010110
+11011010011000001000000101001101
+00110111110110011000001000000000
+11101111111000001000000000010001
+11101000010000001000000000010011
+10011000010001100111110000000000
+00100000001000101000010011000100
+11100111111000001000000000010011
+00110111110110011000001000000000
+00011010001000001010001000000001
+00011010011000001010011000000001
+11000010000000000000010010111110
+00011010010000100000010000000000
+00100000011000000000000000000000
+00100000010000000111001110010110
+00100000010000000000011001011110
+00100000010000000000010011010100
+00100000010000000000010011110011
+00100000010000000000010100001011
+00100000011101011000000000000000
+00100000010000000000010001111100
+01101111111000001100101000000111
+01100111111000001100101000001000
+00100000010000000100101001111010
+00100000001000000100100101100010
+00100000010000000100001010100011
+00100000010000000000010010010110
+00100000011101011000000000000000
+00100000010000000011010111110000
+01101111111000001100011001100110
+01100111111000001100101111100110
+01101111111000011100001011011110
+01100111111000011100011110010111
+00100000010000000100100110101111
+01011000000000000100101111111011
+01100111111000010100001100111111
+01011000000000000000000000100000
+01100111111000010100001101000001
+00100000010000000010101001000001
+01101111111001000100011100010011
+11000010100010100100100111111101
+11000010100010010101110101101110
+00100000011000000000000000000000
+11011010001000000100011001100111
+01101111111000001100011001100110
+11000001000000000000000000000000
+00011111111000001111111111111111
+00011111111011111111111000001101
+10011010001000001010001000000000
+11101111111000001000000000010001
+01100111111000001100001111110011
+11000000000110100000010011110000
+00100000011000000000000000000000
+11101111111000110000000000000110
+01100111111000110100000100010110
+00100000001000000101110001111101
+00100000010000000000010001110000
+01101000010010001100011001010101
+01100000010010001100011001011001
+00100000010000000100110001111101
+01011000000000000100100001101110
+01100111111000010100100010010110
+01011000000000000100100001110110
+01100111111000010100100010011000
+01011000000000000100100010001010
+01100111111000010100100010011010
+00100000010000000000010100000010
+01101111111000010100100010011000
+00011111111000100010010000000000
+11011111001000000000000000010100
+00100000001000000100100111100001
+01101111111000010100100010010110
+00011111111000100010010000000000
+11011111001000000000000000001000
+11101000010000001000000000010010
+00011000010001100111110011111111
+00100100010000101100100111100111
+00011010010000001010010000000001
+11000010000000000000010100000101
+00100000001000000000010010111010
+01101111111000001100011001100110
+11000000100000000000010100001111
+00100000010000000011010111111011
+00100000001000000100100111101100
+01011000000000000000000010100000
+00100000010000000000010100010101
+01101111111000001100010000001100
+11000100000000000000000000000000
+01011000000000000000000001010000
+00100000001000000000010100010101
+01101000010010010100001011010011
+10011000010001101111110000000000
+00100000010000000111110101011111
+01100111111000001100100101101011
+00100000001000000100100111110101
+01101111111000001100011101111110
+00100000001110100101110000000001
+00100000011000000000000000000000
+01101111111000001000011001101111
+11011111001000000000000000001000
+11011000110000000100010011010011
+11101000010000001000000000000110
+10011000010001100111110000000000
+00100000011000101000000000000000
+11000010000000000000010100100000
+00100000001000000111100000101100
+01101111111000001000011001101111
+11000000000011111000010100101000
+00100000001000000111100001100100
+01110000000000000011001000110100
+01101111111000001100001111001011
+11000000000001111100101111000101
+00100000001000000110111010100110
+00100000010000000000010001111101
+01011000000000000000000000000000
+01100111111000010100101111100111
+00100000001000000100101110011010
+01011000000000000000000000000000
+01100111111000010100011110010000
+11011000111000000000000000000110
+00100000010000000101111100000100
+01110000010001111001001000000000
+00100000010000000101110000111110
+01101111111000001100101000001000
+00100000001110100000010001111101
+00100000011000000000000000000000
+00100000010000000010101000101000
+00100100011110100000000000000000
+01101111111000001100011110001111
+11000000011111111000010101000000
+01101111111000001100100001000011
+00011111111000010111111000000011
+11000001100000011000000000000000
+01101111111001000100011100010011
+11000010100000001000010101001010
+11000010100000000000010101001010
+11000010100000101000010101001010
+11000010100000110000010101001010
+00100000010000000100111001000111
+00100100011101000000000000000000
+01101111111000001100100101101100
+11000000000000001101101100111101
+00100000011000000000000000000000
+01110000010010010110110100000000
+00100000001000000101101100111101
+01101111111000001100101111110110
+11011010011000000000000100000000
+10011010011000001111111000000000
+00100000011000000000000000000000
+00100000001000000000010101110000
+00100000010000000000010101010011
+00100000001000000010010101100011
+01101111111000001100101111110111
+00100000011110100000000000000000
+01101111111000001100101111111000
+00100100011110100000000000000000
+01101000010010001100101111110111
+01101111111000001100101111110110
+10011000010001100111110000000000
+00100100010000010000010101001100
+10011000010001100111111000000000
+00011111111001100111110001100100
+00100000001000010000010101100101
+01101111111000001100101111111001
+00011111111001100111110000010100
+00100100010000010000010101100011
+01110000010010111111100000000001
+00100000011000000000000000000000
+01110000010010111111101000000001
+00100000001000000100001100011111
+01101000010010001000000101111111
+01101111111000001000000001001100
+00011111111000110111111000000000
+10011000010000101111111000000000
+00101111111011111111111000000010
+01011000000000000000000000000000
+01101000010010001100101111111001
+01111001001000001111111000000000
+10011000010000001000010000000000
+01100000010010001100101111111001
+00100000011000000000000000000000
+01101111111000001000000000000101
+00011111111000001111111000000001
+01100111111000001000000000000101
+00100100001101101000010101110111
+01101111111000001100101111110110
+00011111111000001111111000000001
+01100111111000001100101111110110
+01101111111000001000000101101000
+11000011100000011000000000000000
+01111001001000000111111000000011
+01100111111000001000000101101000
+01101111111000010100001011110101
+01100111111000010000000110010110
+01011000000000000000000000000000
+01100111111000100100001100011101
+00100000011000000000000000000000
+00100000010000000010100000011100
+01101010001000001000000001001101
+00011010001000001010001111111100
+00100100001000010010011011111010
+00100000001000000010011010001110
+00001001100000000000000000011000
+00011111111011110111111000000000
+00011111111100010111111000000000
+11100111111000011000000000000101
+01111000001010000111110000000000
+00100000010000000010011100001101
+00100000001000110010011011110110
+11000101100110010010011010101111
+01101111111000001000000001001101
+00100000001110100010011010101111
+00011111111000001111111111111100
+01100111111000001000000001001101
+00100000010000000111001011001011
+01101111111100001000000100001000
+11000011000000111010011011111010
+00011000000000000111000000001100
+01100101111000100000000101010100
+00100000001000000010011010101111
+00100000010000000010000101010010
+01110000100010010000000000000000
+01111001001111111000000000110000
+00100000001000000010101011100011
+01111001001111111000000000110000
+00100000001000000010101011110110
+11011010001000000100011001100111
+01101111111000001100011001100110
+00011111111000001111111111111111
+00011111111011111111111000001101
+00100000001000000101010010100110
+01101111111001000100011100010011
+11000100000000010000000000000000
+11011000111000000000000000000010
+00100000010000000101111100000100
+00100000010000000000010110110101
+00100000010000000000010110101001
+00100000001000000101110010100011
+11011010001000000100011001100111
+01101111111000001100011001100110
+00011111111000001111111111111111
+00011111111011111111111000001101
+10011010001000001010001000000000
+01101111111000001000000000110010
+11100111111000001000000000010001
+11000000000110100000010110110010
+00100000011000000000000000000000
+01101111111000110000000101111000
+11100111111000110000000000000101
+00100000001000000101110001100110
+01101111111000001000000000110010
+11000000000110100000010110111000
+00100000011000000000000000000000
+01100111111000001100100101011010
+01101111111000110000000101111000
+01100111111000110100100101011011
+01101111111000111100100101011010
+11011000110000000100011001100111
+11011111001000000000000000000011
+11101000010000111000000000000110
+10011000010001100111110000000000
+00100000001000101101110001101001
+00011000110000001000110000000110
+11000010000000000000010110111110
+00100000011000000000000000000000
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110010111
+11000000000001011000010111010001
+11000000000001000000011000000001
+11000000000001001000010111100100
+11000000000000111000010111110110
+11000000000000001000010111111100
+11000000000001100000011000010110
+11000000000001010000011000100000
+11000000000010010000011001000001
+11000000001010010000011001010010
+00100000001000000010101110010110
+01101111111000001100100111110001
+00100000011110100000000000000000
+01101111111000010100001100110101
+11011111001000000000000000001001
+01101111111000010100001100111001
+00011111111000001010001000000101
+11011010010000000100100111110100
+00100000010000000111110101100100
+00100000001000101000010111011110
+00100000001000000000010111011011
+01101111111000001100001011001011
+01100111111000001100100111000110
+00100000001000000000010111011111
+01110000010010011100011000000011
+01110000010010011111000100000000
+01110000010010111110100000000001
+01101111111000001100101111100111
+00100000011110100000000000000000
+00100000001000000000000111011110
+01101111111000001100100111110001
+00100000011110100000000000000000
+01101111111000010100001100110101
+00011111111000001111111111111110
+00011111111001101111110000000111
+00100000010000000111110101100010
+00011000000001111111001000000000
+01101111111000010100001100111001
+00011111111000001000110000000110
+00011000110000001000110000000011
+11101111111000010000000000000110
+00011111111000100010011000000000
+11101111111000010000000000000110
+11011000010000000010101000101001
+10011000010001100111110000000000
+00100000001000101101000010001001
+11000010000000000000010111101101
+00100000001000000000010111011011
+01101111111000001100100111110001
+00100000011110100000000000000000
+01101111111000001100100111110001
+11000000000000010101000001101100
+01110000010010011100011000000010
+00100000001000000000010111011111
+01101111111000001100100111110001
+00100000011110100000000000000000
+01101111111000001100100111110001
+11000000000000010000010111011011
+00100000001000000101000001011101
+00100000010000000010111001000001
+00100000010000000010111001001010
+01101000010010010000011010110001
+01100000010010010000011001111000
+00100000010000000010110011000111
+00100000010000000010110011010010
+00011000110000001000110111111110
+00011000110000100111111000000000
+01100111111000010000011011000111
+01101000010010010000011010110110
+01011000000000000010101001010000
+10011000010001100111110000000000
+00100000001000101000011000001111
+00100000001000000010110001001111
+01101111111000001100101110011001
+00100000001110100010110001001111
+00100000010000000010110011100000
+00100000001110100010111000000011
+11011000110000000100101110011010
+00011000000000000111111000001011
+00100000001000000010110010100101
+11101111111000010000000000000110
+01100111111000010000011010110101
+10011000000000000010001000000000
+01101000010010010100001110011000
+01101111111000010100001100110010
+10011000010001100111110000000000
+00100100001000101010110101010000
+01101111111000010100101010111011
+11011000110000000100101010111101
+00100000001000000010110101010011
+01101000010010010100001110011000
+01101111111000001100001100100001
+11000010100000011000011000111011
+01101111111001000100011100010011
+11000011000010101000011000100110
+11000011000111011000011000101000
+01101111111000010100001110011000
+11000000000110000010111000000011
+01101111111000010100001110011000
+11000000000000101000011000110011
+11000000000010000000011000110110
+01101000010010010100001110011000
+01101111111000010100001100110010
+10011000010001100111110000000000
+00100100001000101010110100011101
+00100000010000000010111001000110
+01101000010010010100101010111011
+11011000110000000100101010111101
+00100000001000000010110100101011
+11011000110000000100100111111101
+00011000000000000111111000000011
+00100000001000000010110100101101
+01101111111000001100101110011001
+00100000001110100000011000101011
+11011000110000000100101110011010
+00011000000000000111111000001000
+00100000001000000010110100101101
+01101111111000010100001100110010
+10011000010001100111110000000000
+00100100001000101000011000100011
+00100000010000000010110111000111
+00100100001101000000011000101000
+00100000001000000010110101000110
+00011000110000100010001000000000
+01101111111000010100001100110101
+00011111111000001010010111111101
+00100000010000000010100100101001
+00100000010000000000011001010011
+01101111111000001100011110001111
+11000000011111111010110110101100
+01101111111000001100011110010101
+00100000001110100010110110101100
+01101111111000001100100001000011
+11000010100000001010110110101100
+01011000000000000000000000011010
+01101000010010010100001110011000
+10011000010001100111110000000000
+00100100001000101010110110101100
+01110000000000011011100100000101
+00100000001000000010111000000101
+00100000010000000010110111101010
+01101111111000001100011110001111
+11000000011111111000011001011000
+01101111111000010100001110011000
+11000000000100101000011001011011
+00100000011000000000000000000000
+01101111111000010100001110011000
+11000000000100001000011001011011
+00100000011000000000000000000000
+01101111111000001000000001010101
+01100111111000001100100110101010
+00100000011000000000000000000000
+11011000110000001001000110011111
+11011000101000000100101010111101
+11011111001000000000000001000010
+00100000010000000111110011011010
+11011000110000001001000111100001
+11011000101000000100101011111111
+11011111001000000000000000110110
+00100000001000000111110011011010
+01101111111001000000000111111101
+00100000001110100110111101111001
+01100111111001000100001111111101
+00100000010000000110101100111010
+00100000010000000110101010101101
+11011111111000000000111111000000
+10011010010000001010010000000000
+11011111001000000000000000001010
+11011010001000000000000111111101
+00100000010000000110101101110100
+00100000010000000110101100110111
+01101111111001000000000111111101
+00100000011110100000000000000000
+01100111111001000100101111101001
+11101111111000010000000000000110
+11100111111000010000000000000101
+00100000011000000000000000000000
+01101111111100001000000011001100
+01111001001000000111111000000001
+01100111111100001000000011001100
+01101010010000001100010000011001
+01101111111000001100010000110011
+01100111111000001100010000011001
+11011111001000000000000000001000
+00100000010000000110111101100111
+01100010010000001100010000011001
+01101111111100001000101000001010
+01111001001111111111111000000100
+01100111111100001000101000001010
+00100000011000000000000000000000
+01101111111000001100010000000111
+11000000000000001000011010001000
+11000000000000010000011010001111
+00100000011000000000000000000000
+01011000000000000000001111101000
+01100111111000010100010000000101
+01101000010010010100101111101101
+01101111111000010100101111101111
+11011010011000000000111000010000
+00100000010000000110111111000000
+00100000001000000000011010010101
+01011000000000000000001111101000
+01100111111000010100010000000101
+01101000010010010100101111101001
+01101111111000010100101111101011
+11011010011000000000001111101000
+00100000010000000110111111000000
+01101000010010010100101111110001
+10011000010011111111111000000000
+01101000010010010100101111110011
+10011000010001101111110000000000
+00100000001000000111110101011111
+00100000010000000000011001110111
+01101111111100001000101000001001
+01111001001111111111111000000111
+01100111111100001000101000001001
+01110000100010100000011101110111
+01110000100010100000100011000001
+01110000100010100000110101100001
+01110000100010100000101100000000
+00100000011000000000000000000000
+00100000010000000000011010011010
+00100000010000000110111110010000
+01101111111000001100010000001001
+01100111111100001000000011001101
+00100000010000000110111110010111
+01110000100010100000110101100000
+01110000100000001100110100000000
+00100000010000000000011010011010
+01101111111000001100010000001001
+01100111111100001000000011001101
+01110000100010100000101101010000
+01110000100010100000111011000000
+11011111000000000000000000001011
+01101101111000010100010000001010
+01110000100000001100110000000011
+00100000010000000000011010111100
+01101000010110010000000101100100
+01100000010010010100101111110011
+00100000010000000110111110011100
+11011111000000000000000000001011
+01100101111000010100010000001010
+01110000100010100000110101100000
+01110000100000001100110100000000
+01110000100000001100110000000000
+00100000011000000000000000000000
+01101111111100001000000100101001
+11000011000000101000011010111100
+00100000011000000000000000000000
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+00100000010000000010001110000101
+01000100100000000100000000000000
+00100000100000000000000000000000
+00100000010000000100001010100011
+00100000010000000010001000111101
+00100000010000000110110010101101
+00100000010000000010001101100011
+00100000010000000110100101000110
+01000100100000001100000000000000
+00100000010000000111011101101111
+00100000010000000100001010010101
+00100000010000000111010001000111
+00100000010101011010010001001111
+01000100100000010100000000000000
+00100000010000000111010101010010
+00100000010000000111010001001000
+00100000010000000010101001000101
+00100000010000000010000000101010
+00100000010000000100001010101101
+00100000010000000010000000011000
+00100000010000000011000100001111
+00100000010000000010010010001100
+00100000010000000100101111111011
+00100000001000000010000000001101
+00100000010000000010000000011101
+11000110100001001000000000000000
+01111001001111111000000000001001
+00100000010000000010000001000001
+00100000001000000010010110111100
+01000100100000011100000000000000
+00100000010000000010000001100110
+00100100001000101010000000100101
+00100000010000000010000000110110
+00011010001000001000110000000001
+11101111111000001000000000000110
+11000010100000000010010100110110
+00100000011000000000000000000000
+01110000000000000000011000000000
+00100000010000000010000001000111
+00011111001000100111110000000000
+00100000011000101000000000000000
+00100000001000000010001101011010
+01101111111000001100000100010100
+00100000011110100000000000000000
+11000000000011011010000000110011
+00100000010000000010000001011111
+00100000011000101000000000000000
+00100000010000000010000001100010
+00100000011000101000000000000000
+01110000010000010001010000000000
+00100000011000000000000000000000
+01110000000000011011110000011011
+01110000010000010001010000000000
+00100000011000000000000000000000
+01000100100000100100000000000000
+01111001001000000000000000001001
+00011010001000100111111000000000
+01100111111000010000000000001010
+00011000000000000111001001010011
+11011000101000000000000101101000
+00011010001000001000110000000001
+11101111111000001000000000000110
+00011010001000100000110000000000
+11000010100000000111110011011010
+00100000011000000000000000000000
+01000100100000101100000000000000
+01101111111000010000000000001010
+10011000000000000000101000000000
+00011000000000000111001001010011
+11011000110000000000000101101000
+00100000001000000111110011011010
+11011111001000000000000000000001
+01101000010010001000000000000110
+00011000010000001000010000000001
+00101000010000011111111000000001
+00100100001000001010000001001101
+11011000010000000000000000000000
+01100000010010001000000000000110
+00011000010011111111111001010011
+11011010001000000100000001000000
+10011010001000001010001000000000
+11101111111000001000000000010001
+11000010100000001010000001010100
+11000011100000000000000000000000
+11000010000000000010000001001001
+00100000011000000000000000000000
+01000100100000110100000000000000
+11011010011000000010000001110011
+00100000010000000010000001101001
+00100100011000101000000000000000
+00011010001000100111111000000000
+01100111111000010000000000001010
+00100000001000000111110110111000
+11011010011000000010000010101101
+00100000001000000010000001101001
+01101000010010001100000100010101
+11011010011000000010000001111011
+00100000001000000010000001101001
+01000100100000111100000000000000
+01101000010010110100000100010110
+11011010011000000010000001110101
+00100000001000000010000001101001
+11011010011000000010000010000001
+00100000001000000010000001101001
+11011010011000000010000011000111
+01000100100001000100000000000001
+11011010001000000100000001000000
+11011111001000000000000000000001
+11101111111000001000000000010001
+00011010011000100111101000000000
+01000100100001001100000000000001
+00011010001000001010001001010011
+11000010000000000010000001101100
+00011000000000000111110000000001
+00100000011000000000000000000000
+11000010100000000010000001101110
+00100000001000000111110110111000
+11000011000000000010000001101110
+00011010001000001000110000010000
+11101111111000110000000000000110
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100000001000000010000001101110
+11000011000000000010000001101110
+00011010001000001000110000010110
+11101111111000001000000000000110
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100000001000000010000001101110
+11000011000000001010000001101110
+00100000010000000010000010110100
+00100000010000000010000010011101
+10011000010001100111111000000000
+00011111111000001111111000000001
+00100000001000010010000010010111
+00011000110000100010010000000000
+01100111111001001000011001111000
+01000100100001010100000000000001
+01101111111000001100010001101101
+00100100001110100010000010010000
+01101111111001001000011001111000
+00011010010000100000110000000000
+00011111111000001111111000000101
+00100000001000000010000010010011
+01101111111001001000011001111000
+00011010010000100000110000000000
+00011111111000001111111000010100
+00100100001000010010000001101110
+00011000010000100100001000000000
+00100000010000000010000011000000
+00100000001000000111110110111000
+10011000000000000010010000000000
+00011010001000001000110000000010
+11101111111000010000000000000110
+00100000001110100010000010010100
+00100000010000000010000011000000
+00100000001000000010000010000010
+00011111111100010001011000000000
+00011001011011001001011000000000
+00100000001000101010000010100111
+00101001011000000001111000001111
+00100100011000001000000000000000
+00011000010100010001011000000000
+00011001011011001001011000000000
+00100100011000101000000000000000
+01111001001000000000010000011100
+00100000011000000000000000000000
+00011000010100010001011000000000
+00011001011011001001011000000000
+00101001011000000001111000001111
+00100100011000001000000000000000
+01111001001000000111111000011100
+00100000011000000000000000000000
+11000011000000000010000001101110
+00100000001000000111110110111000
+11000011000000000010000001101110
+00011010001000001000110000000001
+11101111111000001000000000000110
+11000010100000000010000001101110
+00100000011000000000000000000000
+00011010001000001000110000000001
+11101000010000001000000000000110
+00011100010000100111111000000000
+00101000010011111111111000000001
+00011010001000001000110000000100
+11101000010000100000000000000110
+00100000011000001000000000000000
+00011010001000001000110000001000
+11101111111000110000000000000110
+00100000010000000010000100001001
+00011101000000100111111000000000
+00100000011000000000000000000000
+00011010001000001000110000000010
+00011010001000001000101000000100
+11101111111000010000000000000110
+10011000010000001001011000000000
+00011001011000100111111000000000
+11100111111000100000000000000101
+00100000001000000010011000001001
+11000011000000001010000001101110
+00100000010000000010000010110100
+10011011011000001111111000000000
+10011011011000001111111000000000
+10011000111000001111111000000000
+10011000010001100111110000000000
+00100100001000010010000001101110
+00100000001000000111110110111000
+01000100100001011100000000000001
+01111000010111010111110000000000
+01111000010011101111110000000000
+01111000010011100111110000000000
+01111000010001101111110000000000
+01111000010001100111110000000000
+01111000010001001111110000000000
+01111000010001110111110000000000
+01111000010000111111110000000000
+00100000001100001010000101010010
+00110111110100111000001000000000
+00100000000000000000000001100100
+00100000001000000010000101010010
+01000100100001100100000000000001
+01111000010010000111110000000000
+00011000010000100011011000000000
+00100000010000000010000001101000
+01111000010101000111110000000000
+00100100011000101000000000000000
+00011000000000000011011000000000
+00100000001000000111110110111010
+01000100100001101100000000000001
+00110111110100010000001000000000
+00011011010000100111111000000000
+10011000000000000000110000000000
+00011111111100010111111000000000
+10011100010001100111001000000000
+00011111001000010111001000000011
+00100100001000101010000011101110
+00011000000000000111111000000000
+00100000001000000010000011110010
+01101000010010010000000001000100
+00011000000000000111111000000000
+10011000010000001111111000000000
+11000010000000000010000011110000
+10011000110000001111111000000000
+00011111111001101111110000001100
+00100000010000000111110101011111
+01100111111000010000000000101110
+00100000011000000000000000000000
+01000100100001110100000000000001
+00011011010000100111111000000000
+00011011001000100000010000000000
+10011000010001100111110000000000
+01111101001000010111111000101100
+10011000010001100000010000000000
+01101111111000010000000001000100
+00101000010011000000000000001111
+00100000001000001010000100000101
+00011000010000100110000000000000
+11011000010000010000000000000000
+01101111111000010000000001000100
+10011000010001100111111000000000
+10011110000000001000010000000000
+01100000010010110000000101110000
+00100000011000000000000000000000
+01111000010110000111110000000000
+01101111111000110000000101110000
+10011011001000001110000000000000
+00011110000000001110000000001010
+01101111111000010000000001000100
+10011110000001100111111000000000
+00101111111011000000000000001111
+00100000001000001010000100010101
+01011000000000010000000000000000
+01101011000000010000000001000100
+10011011000001100111111000000000
+10011110000000001110000000000000
+00011110000000100011010000000000
+00100000011000000000000000000000
+00011000000000000111110000000000
+00100000001000000010000100010011
+00011111111010010111111000000000
+11101010001000001000000000000101
+10011010001000101111111000000000
+00101111111011000000000000000110
+00100000001000000010000100011110
+00101111110011000000000000000000
+11011000101000001000101011000010
+11101111111000001000000000000101
+11111001001000001111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+00100000000000000000000000111100
+01110000100010011000001100001000
+01110000100010011000010100001001
+01110000100010011000000100001001
+01110000100010011000000100000011
+01110000100010011000000000000110
+00100000000000000000000000111100
+11011010001000000000000000000000
+11011010010000000000000000000000
+11011111001000000000000000010000
+11011000110000000000100000000000
+11101111111000010000000000000110
+10011010001000001010001000000000
+11101111111000010000000000000110
+10011010010000001010010000000000
+11000010000000000010000100101101
+00100000011000000000000000000000
+01000100100001111100000000000001
+00100000010000000010000101100000
+11011000010000000000000000100111
+00100000010000000010000101101111
+00100000010000000010000110100110
+01110000100010100010010101111111
+01110000100010100011000000011010
+01110000100010100011000101111000
+01110000100010101000111110110010
+01110000100010101100001000000000
+01110000100010101100001100000000
+11011000111000000000000000000110
+00100000010000000010000100100010
+00101010001011111111111000001101
+00100000010000000010000100011101
+00101010010011111111111000001101
+00100000010000000010000100011110
+11011000111000000000000000000101
+00100000010000000010000100011100
+00100000010000000010000100011110
+00100000010000000010000100100010
+11011000101000001000101011000010
+00011010001100011111111000000000
+00100000010000000010000100010111
+00011010010100011111111000000000
+00100000010000000010000100010111
+00011000111000001000111111111111
+00100000001000010010000101000101
+01110000100010101000111101010010
+01110000100010100011000000000010
+01110000100010011000000100000000
+01000100100010000100000000000010
+00100000010000000110100001110101
+01111000010100000111110000000000
+01111000010100001111110000000000
+01011000000000000000001000000000
+01100111111100100000101000100011
+01110000100010100000000111111010
+00100000000000000000000000001100
+01110000100010100000111100000000
+01110000100010100001001000011010
+01110000100010100001010000101011
+00011000000000000010101000001000
+00011000000000000010101000000000
+00100000001000000010001100001111
+01000100100010001100000000000010
+01110000100010100000111101100000
+01110000100010100001000010101010
+01110000100010100001001001111010
+01110000100010100010010100000000
+01110000100010100010011000000000
+00100000000000000000000000111100
+01110000100010100010000000100000
+01110000100010100010001111111101
+01110000100010100010010000010010
+01110000100010100010010000010000
+00100000000000000000000000111100
+01110000100010100001001001100000
+01110000100010100010001111011101
+00100000011000000000000000000000
+01000100100010010100000000000010
+01110000100010010000000000000001
+01110000100010100010001110011101
+01110000100010100010010000000010
+00100000000000000000000000010100
+01110000100010100111000001100101
+01110000100010100010001110011111
+00100000010000000010000110001111
+01100000010010001000000000001000
+00011000010000001000010000000001
+01000100100010011100000000000010
+00011000010100011111111000000000
+11011000110000000100000100110101
+10011000110000001000110000000000
+11101111111000001000000000000110
+01101010001100001000101001110001
+00011010001000010010001000001111
+10011010001000011111111000000000
+01100111111100001000101001110001
+00100000010000000010000111010000
+00100000000000000000000010010000
+01101111111000001100000010011001
+11000000000011000010000110000111
+00100000000000000000000000100100
+01110000100010100010000010000000
+00100000011000000000000000000000
+01011000000000001000001100010010
+01100111111100010000100100000111
+00100000001000000010000110010111
+01011000000000000100000110001001
+01100111111100010000100100000111
+00100000001000000010000110100011
+01000100100010100100000000000010
+01110000100010101000001000010001
+01110000100010101000110100010010
+01110000100010101000111000001010
+01101111111000001100000010011001
+11000000000010000010000110001001
+01011000000000000101011101100010
+01100111111100010000100100000111
+01110000100010010000000100000011
+01110000100010010010000010000100
+11000110000101101000000000000000
+01110000100010010000000100000001
+01110000100010010010000010000000
+01110000100010101000001000000111
+01110000100010101000110101000100
+01110000100010101000111000001010
+01101111111000001100000010011001
+11000000000010000010000110001100
+01011000000000000010101110110001
+01100111111100010000100100000111
+11000110100101111000000000000000
+01110000100010010000000100000101
+00100000011000000000000000000000
+01000100100010101100000000000010
+00100000010000000110100001101111
+00100000010000000010000110111010
+00011000000000000010101000001000
+00011000000000000010101000000000
+01011000000010101010101011011010
+01100111111100011000101000001111
+01110000100010100010010101000000
+01110000100010100010011000010000
+00100000000000000000000000111100
+01110000100010100000000111111011
+01110000100010100010010111111111
+01110000100010100010011000110000
+01110000100010100001011001011110
+00100000000000000000000000010100
+01110000100010100001000000000000
+01110000100010100001000100001000
+00100000000000000000000001111000
+01110000100010010000000000001101
+00100000011000000000000000000000
+01101111111000001100000101000011
+11000000011111111010000111000001
+11011000110000000100000101000100
+10011000110000001000110000000000
+11101111111000001000000000000110
+01100111111100001000100101100001
+01110000100010010110000000100111
+01101000010010001100000101000111
+01101111111100001000100101100000
+10011000010000011111111000000000
+01100111111100001000100101100000
+00100000011000000000000000000000
+01110000100010010000000000000011
+01110000100010100010010000000010
+00100000000000000000000000010100
+01110000100010100111000001100101
+01110000100010100010001111011111
+00100000010000000010000110001111
+00100000010000000010000111101000
+01100000010010001000000000001000
+00011000010000001000010000000010
+00100000001000000010000101111001
+01000100100010110100000000000010
+01011000000000000000100101100000
+10011000010000001111111000000000
+00011111111000100010001000000000
+01101000010010001100000010011001
+00011000010000110000010000000000
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+01100111111100010000100100001001
+00011000000001110111111000000000
+00011111111100000111111000000000
+00011111111011010111111000000000
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+01100111111100011000100100001011
+01100010001100001000101000100010
+00011010001011001010001000000000
+01100010001100001000101000100001
+01110000100010100010000010100000
+01110000100010100010000011100000
+01110000100010100010000010100000
+00100000011000000000000000000000
+00011000010000001111111000000010
+00011111111010010111111000000000
+00011111111000010111111111111110
+11011000110000000100000100011101
+11000101100101101010000111101110
+00011000110000001000110000001100
+10011000110000001000110000000000
+11101010001000010000000000000110
+11101111111000010000000000000110
+10011010001001100111111000000000
+00011000010000001000110000000010
+00011000110000010000110000001111
+10011000110011111111111000000000
+00011111111100011111111000000000
+10011010001000001111111000000000
+01100111111100010000100100000101
+00100000011000000000000000000000
+01000100100010111100000000000010
+00100000010000000010000111000110
+00100000000000000000001001011000
+01000100100011000100000000000011
+01011000000010101010101001111110
+01100111111100011000101000001111
+00100000000000000000000000111100
+01110000100010100010010100000000
+01110000100010100010011000001101
+01110000100010100001011001010110
+00100000000000000000000000011110
+01110000100010100001010100011011
+00100000010000000010001000001100
+00100000000000000000000000010100
+01110000100010100010011000001111
+00100000000000000000000000010100
+01110000100010100001000010101000
+01110000100010100001000100000000
+00100000011000000000000000000000
+01000100100011001100000000000011
+01101111111000001100000101000001
+11000000000000000010001000010111
+11000000000000011010001000011100
+11000000000000101010001000100001
+11000000000000111010001000100101
+11000000000001010010001000101001
+11000000010000011010001000101101
+11000000010000101010001000110001
+11000000010001010010001000110101
+11000000010010100010001000111001
+01110000100010100001010000010111
+01011000001001010001101000111111
+01100111111100011000101001100000
+01110000100010100110001100101000
+00100000011000000000000000000000
+01110000100010100001010000100101
+01011000101010010001110000101101
+01100111111100011000101001100000
+01110000100010100110001100101111
+00100000011000000000000000000000
+01110000100010100001010000100101
+01011000101010010001110000111111
+01100111111100011000101001100000
+00100000001000000010001000011111
+01110000100010100001010000100101
+01011000101010010011100000111111
+01100111111100011000101001100000
+00100000001000000010001000011111
+01110000100010100001010000100101
+01011000101010010011111100111111
+01100111111100011000101001100000
+00100000001000000010001000011111
+01110000100010100001010000010111
+01011000001001010001100000100111
+01100111111100011000101001100000
+00100000001000000010001000011010
+01110000100010100001010000010111
+01011000001001010001100000011100
+01100111111100011000101001100000
+00100000001000000010001000011010
+01110000100010100001010000010111
+01011000001001010001100000001011
+01100111111100011000101001100000
+00100000001000000010001000011010
+01110000100010100001010000010111
+01011000001001010001000000000000
+01100111111100011000101001100000
+00100000001000000010001000011010
+01110000100000000100001000000110
+01101111111000010100000010011100
+11000011000001110010001000111110
+10011000000000000000110000000000
+11011000010000001000101000000000
+11101111111000001000000000000110
+11000000011111111010001001001000
+10011000010000011000101000000000
+11101111111000001000000000000110
+11100111111000001000000000000101
+00100000001000000010001001000010
+01000100100011010100000000000011
+01101111111000001100010000110110
+00100000010110100111000011010111
+00110111110110011000001000000000
+01110000100000010011101101011111
+01101111111000001100000010011001
+11000000000010000010001001100110
+01101111111000001100010000111000
+00011111111000011111111000000100
+01100111111100001000101000000010
+01110000100010010000111100000001
+01110000100010101000000000100100
+01110000100010101000000101100010
+01011000111001100001001000010010
+01100111111100011000101001110011
+01110000100010101000011001100000
+01110000100010101000101100111011
+00100000010000000010001010000110
+01110000100000000100001100000000
+01110000100000000100001000000101
+01011000010101010111010001110100
+01100111111100011000100101101000
+01110000100010010110000001101110
+00100000010000000010000100110011
+00100000010000000010001001110001
+01101111111000001100000100011100
+01100111111100001000000100111010
+01110000010000010100100000001100
+00100000010000000110111101001110
+00100000001000000010001010110100
+01101111111000001100010000111000
+00011111111000011111111000000110
+01100111111100001000101000000010
+01110000100010010000111100000000
+01110000100010101000000000100011
+01110000100010101000000110110000
+01011000111001000000100100001001
+01100111111100011000101001110011
+01110000100010100111011000101010
+01110000100010010000001000000100
+00100000001000000010001001010111
+01000100100011011100000000000011
+00100000010000000010000101100000
+01110000100010010000000000000011
+01110000100010100111000000000001
+11011010010000000100000100011101
+11011011000000000100000100110101
+00100000010000000010001001111100
+01111001001000000000000000101101
+00100000010000000010001001111100
+01110000100010100111000001100001
+00100000001000000010000101010010
+00100000010000000010000110001111
+11011111001000000000000000000110
+11011010011000000000000000000000
+00011010011000100000010000000000
+00100000010000000010001010010100
+00011010010000001010010000000010
+00011011000000001011000000000001
+00011010011000001010011000010000
+11000010000000000010001001111111
+00100000011000000000000000000000
+01101111111000001100000010011001
+11000000000011000010001010001100
+01101111111000001100010000111000
+00011111111000011111111000000110
+01100111111100001000101000000010
+01110000100010100000010111100000
+01110000100010100000000011001000
+00100000000000000000000000111100
+01110000100010100000000110100000
+01110000100010100000000011001111
+01110000100010100000000111111010
+00100000000000000000000000010100
+01110000100010100000000010001111
+00100000011000000000000000000000
+01000100100011100100000000000011
+01110000100010100010000000110000
+01110000100010100010001111011101
+00100000010000000010000111010000
+01101111111100001000101001111100
+11000011000000000010001010011000
+01110000100010100111101100110000
+00100000010000000010001010101110
+10011000000000000010001000000000
+01110000100010100111101101000000
+00100000010000000010001010101110
+10011010001001100111111000000000
+00011111111011111000010001111101
+01011000101100000000000000000000
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+11000101100101101010001010100111
+00011111111000111111111000000000
+11100111111000010000000000010010
+01110000100010100111101100100000
+01101111111100001000101001111110
+00011111111100100111111000000000
+11100111111000001000000000011000
+01110000100010100111101100000000
+00100000011000000000000000000000
+01101111111100010000101001111101
+00011111111100001111111000000000
+01101000010110001000101001111100
+00011000010100000000010000000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+01000100100011101100000000000011
+01101111111100001000101000001101
+01111001001000000111111000000000
+01100111111100001000101000001101
+01110000100010100000111011110000
+01101111111100001000101000000101
+00011111111000011111111000010110
+01100111111100001000101000000101
+01101111111000001100010000010001
+01100111111000001000011001111000
+01101111111000001100010000001000
+01100111111000001000011001111001
+01110000010001000001000100000000
+01101111111000001100010000111110
+01100111111000001100010000001000
+01101000010010001100010000111101
+00100000010000000110111100001111
+11011010001000000000000000000000
+11011111001000000000000000001000
+00100000010000000110111110000010
+01101111111000010100010000001010
+10011010001000001010001000000000
+11000010000000000010001011000111
+00011010001010010010001000000000
+01100111111000010100010000001010
+01101111111000001000011001111000
+01100111111000001100010000010001
+01101111111000001000011001111001
+01100111111000001100010000001000
+01101111111100001000101000000101
+00011111111000010111111011100000
+01100111111100001000101000000101
+01110000100010100000111000000000
+01101111111100001000101000001101
+01111001001111111111111000000000
+01100111111100001000101000001101
+00100000010000000110111110110000
+01101000010010010100010000111011
+10011000010001100111110000000000
+00100000001000010010001011100100
+01101000010010010100010000111001
+10011000010001100111110000000000
+00100000011000010000000000000000
+01101111111000001100010000111000
+11000001000000000000000000000000
+00011111111000001111111111100000
+01100111111000001100010000111000
+00100000011000000000000000000000
+01101111111000001100010000111000
+11000001011100000000000000000000
+00011111111000001111111000100000
+01100111111000001100010000111000
+00100000011000000000000000000000
+01000100100011110100000000000011
+01101111111100001000100110100010
+00101111111011111111111000000110
+01111001001000001111111000000111
+01100111111000001100000101000010
+01101111111100001000100110100011
+00011111111000010000010000001111
+00011000010000111000010000000000
+00011111111100011111111000000000
+10011000010000001000010000000000
+00011000010011111010001000000011
+01101111111000001100000101000010
+00100000010000000010001011111111
+00011111111001100111111000000000
+10011010001000001111111000000000
+00011111111000001111111111110111
+00011111111000010111111111111111
+00101111111011111111111000001000
+00100100001000001010001011111101
+01011000000000000000000000000000
+01100111111000001000000000110101
+00100000001000000010001100000100
+00101111111011111111111000000111
+00100100011000001000000000000000
+11011000010000001111111100000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+01101111111000001000000000110101
+00100000010000000010001100001000
+01100111111000001000000000001001
+00100000011000000000000000000000
+00011111111000010111111011111111
+00011111111001101111110000001010
+00100000010000000111110101011111
+00011111111100100111111000000000
+00011000000001110000010000000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+01000100100011111100000000000011
+01101111111000001100000101000011
+11000001011111111000000000000000
+00100100001011000010001100110110
+01101111111000001100000101000010
+00011111111001100111110011110000
+00100100001000010010001100111010
+00011111111001100111110001111111
+00100000001000010010001100111010
+01101010001100001000100101100001
+01101111111000001100000101000011
+11000001000000000000000000000000
+11011000110000000100000101000100
+10011000110000001000110000000000
+11101111111000001000000000000110
+10011010001001100111110000000000
+00100100011000101000000000000000
+00011000110000001000110111111110
+11101000010000001000000000000110
+00011000010100011111111000000000
+00011010001100011010010000000000
+10011010010001100010010000000000
+00011000010000010111111000001111
+00011010001000010010001000001111
+10011010001001100010001000000000
+00011010001000111111111000000000
+10011010010000001010010000000000
+00011010010011111010010000000011
+01101000010010001100000101000010
+00011000010000010111111010000000
+00100000011110100000000000000000
+01011000000000000000000100000000
+10011000010001100000010000000000
+00011010010000100111111000000000
+10011000010001100111111000000000
+00100000011000010000000000000000
+00011111111000010111111011111111
+11000001011111111000000000000000
+11000001011111110000000000000000
+01101111111000001100000101000011
+11000000000000001010001100111111
+11000000000000010010001101000001
+00100000001000000010001100111111
+01101111111000001100000101000011
+11000000000000000010001101000001
+11000000000000001010001100111101
+01110000010000010100001100000010
+00100000011000000000000000000000
+01110000010000010100001100000000
+00100000011000000000000000000000
+01110000010000010100001100000001
+00100000011000000000000000000000
+00011111111000100000010000000000
+01000100100100000100000000000100
+00011000010000100111111000000000
+00100000010000000111110100101100
+00011100001100000111111000000000
+01111001001000000111111000101100
+00100000010000000111110100010010
+01111001001111111111111000101100
+00100000010000000010001101010010
+00100000010000000111110100010010
+00100000011101000000000000000000
+00100000010000000111110100011111
+10011000000000000011011000000000
+00110111110000011000001000000000
+00100000011000000000000000000000
+00011011001000100000010000000000
+00100000011101001000000000000000
+00011011010000100000010000000000
+00100000011000000000000000000000
+00011100010000100111111000000000
+00100000011101001000000000000000
+00011101000000100111111000000000
+00100000011000000000000000000000
+01000100100100001100000000000100
+00100000001000000010001101011010
+00100000011110100000000000000000
+00011111111000110111111000000000
+00011111111000001111111111111101
+00011111111000001111111111111111
+00100100001000101010001101011111
+00011000000000000111111000000000
+00100000011000000000000000000000
+01011000000000000000111001000011
+01100111111000010000000000110110
+01011000000000000000011000000000
+01100111111000010000000000111000
+01011000000000000000011000000000
+01100111111000010000000000111010
+01011000000000000000110100000000
+01100111111000010000000001000000
+01011000000000000000001110111011
+01100111111000010000000000111100
+01011000000000000000010100000000
+01100111111000010000000000111110
+01011000000000000000011111010000
+01100111111000010000000001000010
+01011000000000000000111010100110
+01100111111000010000000001000100
+01011000000000000000000111100000
+01100111111000010000000001000110
+01011000000000000000000100100000
+01100111111000010000000001001000
+01011000000000000000000100011010
+01100111111000010000000001001010
+01000100100100010100000000000100
+00100000011101011000000000000000
+01011000000000000000000000010111
+01100111111000010100001011100011
+01110000010000010110011110001011
+01011000000000000000110100000000
+01100111111000010100001100111111
+01011000000000000000000001100000
+01100111111000010100001101000001
+00011100010000110111111000000000
+01100111111000100100000010010101
+00100000011000000000000000000000
+01011000000000001110111000100001
+01100111111100010000000001010000
+01101110000100100000000100011100
+01101111111100001000000100110010
+11000011000000101010001110011100
+01111000001101011111110000000000
+11000010100000100010001110010011
+01111000010101011111110000000000
+00011100111000100111111000000000
+00100100001110100010001110010011
+01101111111100001000000101000010
+11000010100000100010001110010011
+11011000010111111111111111111111
+00100000001000000010010000110100
+00100000010000000010001110100000
+00100000010101011010001111100110
+01101111111100001000000100110010
+01111001001111111111111000000101
+01100111111100001000000100110010
+00100100001101011010001110011101
+00100000000000000000000000000001
+01100110000000100000011010011101
+00100000011000000000000000000000
+00100000010000000010001110100000
+00100000010000000110101001101000
+01100110000000100000011010011101
+00100000011000000000000000000000
+00110111110110011000001000000000
+01101111111100001000000100110011
+00011111111000010111111010001000
+01100111111100001000000100110011
+00110111110110011000001000000000
+01101111111100001000000100110010
+00011111111000011111111000001111
+01100111111100001000000100110010
+00110111110110011000001000000000
+01111001001000000111111000000111
+01100111111100001000000100110010
+00110111110110011000001000000000
+01111001001000000111111000000110
+01100111111100001000000100110010
+00110111110110011000001000000000
+00100000011000000000000000000000
+00110111110110011000001000000000
+01110000100000010011110101110110
+00110111110110011000001000000000
+01110000100000010011101000110111
+00100000011000000000000000000000
+00110111110110011000001000000000
+01110000100000010011110101110110
+00110111110110011000001000000000
+01110000100000010011101000110111
+00100000011000000000000000000000
+01101111111000001100001111001011
+00011111111100100111111000000000
+01100111111100001000000101000011
+00110111110110011000001000000000
+01101111111000001100001111001100
+01111001001000000111111000000101
+01111001001000000111111000000110
+01100111111100001000000101000100
+00100000001000000010001111100010
+01101111111100001000000101000010
+01111001001111111111111000000011
+01100111111100001000000101000010
+00100000011000000000000000000000
+01101111111100001000000101000010
+01111001001000000111111000000011
+01100111111100001000000101000010
+00100000011000000000000000000000
+01101111111000011100000011000011
+11011000101000001000000100111110
+11011111001000000000000000000011
+00100000001000000010001111010001
+11011000101000001000000101000101
+11011111001000000000000000000100
+00110111110110011000001000000000
+11100111111000001000000000000101
+00011111111011001111111000000000
+11000010000000000010001111010001
+00100000001000000010001111100010
+11011000101000001000000101001001
+00100000001000000010001111010000
+01101111111100001000000100110011
+01111001001111111111111000000011
+01100111111100001000000100110011
+00100000011000000000000000000000
+01101111111000001100000011001011
+00100000011110100000000000000000
+01111001001111111111111000000100
+00100000001000000010001111100001
+01100111111000001100000011001011
+01100111111100001000000100110101
+00110111110110011000001000000000
+00100000011000000000000000000000
+01100111111100001000000100110100
+00100000001000000010001111100010
+00100000010000000010001111011100
+01101111111000001100000011101111
+01100111111100001000000010000000
+11011000110000000100000011001100
+11011000101000001000000001110000
+00100000010000000111110010001111
+11011000101000001000000011010100
+00100000010000000111110010001001
+01101000000001000100000011100111
+11011000110000001000000101001101
+11011000101000000000000000010110
+11011111001000000000000000001100
+00100000010000000111110011011010
+00100000001000000110101100010001
+01100000000001000100000011100111
+11011000110000001000000001110000
+11011000101000000100000011001100
+00100000010000000111110010001111
+11011000110000001000000011010100
+00100000010000000111110010001001
+01101111111100001000000010000000
+01100111111000001100000011101111
+00100000001000000010001111111101
+11011111001000000000000000001100
+11011000110000000000000000010110
+11011010001000001000000101001101
+11101111111000001000000000000110
+00100100010110100010010000000101
+00011010001000001010001000000001
+11000010000000000010010000000000
+00100000011000000000000000000000
+11100111111000001000000000010001
+00110111110110011000001000000000
+00100000011000000000000000000000
+01000100100100011100000000000100
+01101111111100001000000011001011
+00100100001110100010010000001111
+01101111111000011100000010111101
+00100100011110100000000000000000
+01110000100000001100101100001100
+01110000100000000000011010000000
+01101111111100001000000100101001
+11000100000000001000000000000000
+01101111111100011000000101011011
+01100111111000011100000010111101
+00100000011000000000000000000000
+01101111111000001100000011001010
+01111001001000000111111000000100
+01100111111000001100000011001010
+01000100100100100100000000000100
+11011000010111111111111111111111
+01101111111000001100000010100111
+01100111111000001100000011001000
+01101111111000001100000011001010
+01100111111100001000000101000010
+00110111110110011000001000000000
+01000100100100101100000000000100
+01101111111000010100001111101001
+00100000010000000111110101111001
+01101111111000100100000010101101
+10011000010000001111111000000000
+01100111111000100100000010101101
+00100000010000000010001111110100
+01101111111000001100000011001011
+01111001001000000111111000000100
+00100000010000000010001111100001
+00100100010101011010001111001011
+00110111110110011000001000000000
+01100011001000110100000010110001
+01101111111000011100000011000110
+01101010001000001100000011001001
+11011111001000000000000000000011
+00110111110110011000001000000000
+01100111111100001000000100110010
+00011111111011001111111000000000
+11000010000000000010010000101110
+00110111110110011000001000000000
+01100010001100001000000100110011
+00110111110110011000001000000000
+01100000010110100000000001001100
+01110000100000000000010100000001
+00110111110111111000001000000000
+01101111111000001100000011000011
+00100100011110100000000000000000
+01110000100000000100001000000110
+01110000100000010011000011111000
+01011000000000110000110101000000
+00100000010000000010001101011100
+00100000010000000010001110110101
+00110111110110011000001000000000
+01110000100000010011000011111111
+00011110001000100110000000000000
+01110000100000000100001000000100
+00100000000000000000000000001010
+00110111110110011000001000000000
+00011110001000100111111000000000
+10011110000001100111111000000000
+00011111111000001111111000110000
+11011000010000000000000011111111
+00100000010000000111110101101100
+01100111111000001100000011000011
+00100000000000000111010100110000
+00100000000000000111010100110000
+00100000000000000111010100110000
+00100000011000000000000000000000
+01000100100100110100000000000100
+01011000000000000000000000000000
+00011100111000100111110000000000
+00100000001000101010010001011010
+01101111111100001000000100111110
+01101000010110001000000100111111
+10011000010001100111110000000000
+00100000001000010010010001011000
+00011000010000100111111000000000
+10011100111001100111111000000000
+00011111111000001111111000000001
+00011111111000001111111000001000
+00110111110110011000001000000000
+10011110001000001111111000000000
+01101000010010100100000010101001
+10011000010000001111111000000000
+01101000010010011100000010111101
+10011000010011111111111000000000
+00011111111011001111111000000000
+00011111111100011111111000000000
+00011111111000001111111001101110
+01101000010010010000000001000100
+10011000010001101111110000000000
+00100000010000000111110101011111
+00011111111100000111111000000000
+00011000000001110000010000000000
+10011000010000011111111000000000
+01101000010010110100000010110001
+00100000010000000111110100000101
+00011000010000100011001000000000
+01101111111000110100000001001000
+00100000010000000010000100001001
+00011011010000100111111000000000
+01100111111000110000011001110000
+00011100111000100111111000000000
+11100111111000001000000000000101
+01101111111100001000000100011101
+00011111111000011111111011110000
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000100100100111100000000000100
+00011011010000100111111000000000
+00100000010000000111110100010000
+01101000010010100100000010101101
+00011000010001100111110011111111
+00100000011000010000000000000000
+00011111111011010111111000000000
+00011111111100100111111000000000
+10011000010001101111110000000000
+00100000010000000111110101011111
+11011000010000000000000011001000
+00100000010000000111110101101100
+01100111111000001000000000001110
+00100100001101000010010010000110
+00011111111001100111111000000000
+01101000010010011100000010111101
+10011000010000001111111000000000
+01100111111000011100000010111101
+01011000000000000000000000000000
+01100111111000100100000010101101
+00100000011000000000000000000000
+01000100100101000100000000000101
+00100000010000000010010000001000
+01101111111000011100000010111101
+00100000011110100000000000000000
+01101111111000001100000010010100
+00100000011110100000000000000000
+01101111111000001100010001101100
+00100000001110100010010010010110
+01101111111000001100010001101110
+00100000011110100000000000000000
+01101111111000001100010001101101
+00100100011110100000000000000000
+11011010011000000010000010101111
+00100000010000000010000001101001
+00100000011000101000000000000000
+00100000010000000010010011101111
+00100100011110100000000000000000
+00100000010000000010000001011101
+00100100001000101010010010111101
+00100000011101011000000000000000
+01000100100101001100000000000101
+01101000010010001000000000010101
+01101111111000010100000001000010
+10011000010011111111111000000000
+00011000010100011000010000000000
+00011000010010110000010000000000
+10011000010001100111111000000000
+01101000010010100100000001000100
+10011000010000001111111000000000
+01101000010010001100000010100110
+10011000010001100111111000000000
+00011111111100000110000000000000
+01101111111000010100000001001110
+00011111111000110111111000000000
+00100000010000000111110100101100
+00011110000000100111111000000000
+00100000010000000111110100010010
+00011011010000100000010000000000
+00100000010000000111110100010000
+00100000011101000000000000000000
+00100000010000000111110100100101
+01000100100101010100000000000101
+01101111111000001100000011000011
+10011000010001100111110000000000
+00100000001000010010010010001001
+01100000010010100100000010101001
+00100000010000000100001011000101
+01101000010010100100000010101001
+00100000001000000010010000011110
+01000100100101011100000000000101
+01101111111000001100001110001000
+00100100001110100010010011000001
+00100000011000000000000000000000
+01101111111000010100000010100100
+00100000011110100000000000000000
+01101000010010001100000010100110
+10011000010001100111111000000000
+11011000010000000001110101001100
+10011000010011111111111000000000
+00100000001000000010010010110100
+01101111111000010100001111100101
+00100000010000000111110101111001
+00100100001110100010010011100000
+01110000000000000001010100000000
+11000101100001101010010011100000
+01101111111000001100000011000010
+00100000001110100010010011100100
+00011111111000001111111111111111
+01100111111000001100000011000010
+00100000011000000000000000000000
+01110000010000001010100000000000
+01101111111000011100000010110111
+00011111111000001111111000000001
+01100111111000011100000010110111
+00100000011000000000000000000000
+01000100100101100100000000000101
+01110000000000000001010100000000
+01101111111000011100000010111010
+00011111111000001111111000000001
+01100111111000011100000010111010
+01101111111000001100000010101000
+00011111111000001111111000000001
+01100111111000001100000010101000
+00100000011000000000000000000000
+01110000000000000001010100000000
+01101111111000001100000011000001
+01100111111000001100000011000010
+00100000011000000000000000000000
+01101000010010001100000011000000
+01100000010010001000000000010101
+00100000011000000000000000000000
+01101111111000010100000010100010
+11111001001000000111111000000000
+01100111111000010100000010100010
+00100000011000000000000000000000
+01101111111000010100000010100010
+11111001001111111111111000000000
+01100111111000010100000010100010
+00100000011000000000000000000000
+01000100100101101100000000000101
+00100000010000000100001011000011
+01101111111000010100000010100010
+00011111111000100010001000000000
+01101111111000011100010001001011
+01111101001110100010001000000001
+01101111111001000100010011010011
+01111101001110100010001000001111
+01101111111001000100010011011011
+01111101001110100010001000001110
+01101111111000001100000100010100
+01111101001110100010001000001000
+01101111111000001100001111001011
+00101111111000011111111000001010
+00100000010000001010010100000001
+00011010001000100111111000000000
+01100111111000010100000010100010
+00100000011000000000000000000000
+01101111111100010000000100010010
+01111101001110100010001000000110
+01101111111100010000000100001110
+01111101001110100010001000000101
+00100000011000000000000000000000
+01000111000001110100000000100001
+01111000010101011111110000000000
+01110000000000010111111000000001
+01110000000000010110100000000011
+01110000000000010111111100000001
+01011111111111111111111111111111
+01100111111000010000000110000010
+00011000000000000111111000000000
+01100111111000001000000110000000
+01100111111000001000000110001011
+01100111111000011100000010110111
+01100111111000011100000010111010
+00100000010000000010100001011100
+01110000010000010110100100000001
+01110000010000010110101000000000
+01110000000000011001110100000001
+01110000000000011001111000000001
+01110000010000111001011000000000
+00100000001000000010100100110101
+01000111000001111100000000100001
+01111000001101001111110000000000
+01110000000000010110100100000011
+01110000010000111001100000000001
+01110000000001101011000100000001
+01011000000000001111111111111111
+01100111111000010000011010110011
+00011000000000000111111000000000
+01100111111000101100010001010101
+01111001001000000111111000100111
+01100111111000101100010001010000
+00100000001000000010010100000110
+01000111000010000100000000100010
+01111000010101001111110000000000
+01011000000000000000000000010111
+01100111111000010100001011100011
+00011111111000001111111000000100
+01100111111000010100001110111000
+01110000000000010110100100000001
+01110000010000111000100000000000
+01110000000000000001010100000000
+00100000010000000010010110010010
+01101111111000010000000110010110
+01100111111000010100001011110101
+01101111111000010000000101101010
+00011111111011111111111000000101
+00011111111100011111111000000000
+01100111111000010000000110010110
+00100000001000000010010100000110
+01000111000010001100000000100010
+00100000010000000010010110111000
+01101111111000001000000101101000
+00101111111011111111111000000100
+01111001001000001000000000110010
+00100000010000000100001010110010
+01101111111000001000000101101001
+11000010100000001010010100111111
+00100000001000000010010101010001
+01000111000010010100000000100010
+01111000001101001111110000000000
+00100000010000000010100100101011
+00100000001000010010010101001110
+00100000010000000010010111111011
+00100000010000000010100001110001
+01111000010101101111110000000000
+00100000010000000010011100110000
+00100100011101101000000000000000
+01101111111000001000000000000101
+00011111111000001111111000000001
+01100111111000001000000000000101
+00100000010000000010100000100011
+01111000010101001111110000000000
+00100000011000000000000000000000
+00100000010000000010010110000110
+01111000010101001111110000000000
+00100000011000000000000000000000
+01000111000010011100000000100010
+01110000010000110011111000000000
+01111001001111111000000000110000
+00100000010000000111010101010010
+00100000010000000010111111110101
+01111000010101110111110000000000
+00100000010000000010100100101011
+00100000001000010010010110000110
+01101111111000001000000110011101
+00100000010000000010010110100100
+00100000010000000010010111111011
+00100000010000000010011001010010
+00100100001011000010010101110111
+00100000010000000010010110010111
+00100000001101101010010101100010
+11000101000110000010010101100010
+00100000001000000010010101110001
+01000111000010100100000000100010
+01101111111000001100001100111110
+00011111111000001111111000000001
+01100111111000001100001100111110
+11000000000001100010010101110001
+00100000010000000010100000100011
+00100000010000000010100001110001
+01101111111000001000000110011110
+00100000010000000010010110100100
+00100000010000000010011101000001
+00100000010000000010100011010100
+01101111111000010100001111100001
+00100000010000000111110101111001
+00100000010000000010010101111011
+00100000001101000010010110000000
+01000111000010101100000000100010
+00100000010000000010111110111010
+00100000010000000010111110110001
+00100000010000000111100001000001
+01101111111000001000000110001011
+11000010100000011010010110000110
+01000111000010110100000000100010
+00100000010000000010000011001111
+00100000010000000010100110100101
+00100000001000000010000011110111
+01111000010101000111110000000000
+11000101000101010111110110111010
+11000101000101001111110110111010
+11000101000110000111110110111010
+00100000011000000000000000000000
+01000111000010111100000000100010
+01111000001101110111110000000000
+00100000010000000010011100110100
+00100000001101101010010101100010
+11000101000110000010010101100010
+00100000001000000010010101110001
+01000111000011000100000000100011
+00100000010000000010010110001101
+00100000010000000100001100000010
+00100000010000000010010110010010
+00100000010000000011000000000011
+01110000000001100110111100010101
+00100000001000000111100000101011
+11011000101000000100010001000001
+00100000010000000111110010011001
+01110000000000010111111000000000
+01110000000000010110100100000000
+01110000000000010110100000000000
+01000111000011001100000000100011
+01110000010000101111110100000000
+01110000010000101111110000000000
+00100000010000000111010001010010
+00100000011000000000000000000000
+01000111000011010100000000100011
+01101111111000001000000000000101
+00011111111000001111111000000001
+01100111111000001000000000000101
+01101111111000001000000101101000
+11000011100000011000000000000000
+01111001001000000111111000000011
+01100111111000001000000101101000
+01101111111000010100001011110101
+01100111111000010000000110010110
+01011000000000000000000000000000
+01100111111000100100001100011101
+00100000011000000000000000000000
+00011111111000100000010000000000
+01000111000011011100000000100011
+00011000010000100111111000000000
+11000010100000000010010110111000
+11000010100000001010010110101101
+11000011000000010010010110111000
+11000010100000111010010110110100
+11000010100000010010010110110000
+00100000001000000010010110111000
+01111001001111111000000000101111
+01111001001000000000000000101101
+00100000011000000000000000000000
+01111001001111111000000000101101
+01111001001000000000000000101111
+01111001001111111000000000101110
+00100000011000000000000000000000
+01111001001111111000000000101101
+01111001001000000000000000101111
+01111001001000000000000000101110
+00100000011000000000000000000000
+01000111000011100100000000100011
+01111001001111111000000000101101
+01111001001111111000000000101111
+00100000011000000000000000000000
+01000111000011101100000000100011
+01111001001111111000000000110010
+01110000100010010000000100000001
+01110000100010010010000010000000
+01110000100010010011000000000011
+00100000011000000000000000000000
+01000111000011110100000000100011
+01111000010001001111110000000000
+01111000010000111111110000000000
+01101111111000011000000110010000
+10011000000000000001111000000000
+01101111111000001000000000000111
+00011111111011011000010000000000
+01111001001000000000010000000001
+00011000010000110001110000000000
+00100000011000000000000000000000
+00100000010000000010010111010101
+00100000010000000010000101101111
+01101111111000010000000000111110
+00100000010000000010001101011100
+00100000001000000010000110100110
+00100000001101101010000111111100
+11000101000110000010000111111100
+00100000010000000010010111010101
+00100000001000000010000111111001
+01000111000011111100000000100011
+00100000010000000010000101100000
+01101111111000001000000110111011
+00100100001110100010010111101000
+01101111111000001000000000000111
+00011111111001100111110000100100
+00100000001000010010010111100010
+00011000000000000000010000000000
+11000001000100101000000000000000
+00011000000000000000010000011000
+11000001000100110000000000000000
+00011000000000000000010001001110
+00100000011000000000000000000000
+00011111111001100111110000001010
+00100000001000010010010111100101
+00011111111000001111111000000001
+00011111111000111111111000000000
+00011111111000001000010000000010
+00100000011000000000000000000000
+01101111111000001000000000000111
+00011111111000111000010000000000
+00100000011000000000000000000000
+11011000010000000000000111110100
+00100000011110100000000000000000
+11011000010000000000000011111010
+11000001000000001000000000000000
+11011000010000000000000010010110
+11000001000000010000000000000000
+11011000010000000000000001100100
+11000001000000011000000000000000
+11011000010000000000000001001011
+11000001000000100000000000000000
+11011000010000000000000000110010
+11000001000000101000000000000000
+11011000010000000000000000101000
+11000001000000110000000000000000
+11011000010000000000000000010100
+00100000011000000000000000000000
+01000111000100000100000000100100
+01111000001010000111110000000000
+01101111111000100000000110001100
+10011000000000000001001000000000
+00100000010000000010011000110000
+01011000000000000000001000000000
+00100000001101001010011000000100
+01101111111000010000000101110110
+00011111111000110111111000000000
+01101000010010010000000000111110
+10011000010000001111111000000000
+00100000010000000010001101000011
+00011011010000100111111000000000
+00100000011000000000000000000000
+01000111000100001100000000100100
+00100000010000000111110001010001
+01100111001000010000011010011011
+00011010001000001000110000000001
+11101111111000001000000000000110
+11000100000000000000000000000000
+00011010001000001000101000011010
+11101111111000010000000000000101
+00011111111000001111111000000001
+11100111111000010000000000000101
+00100000010000000010011110100010
+00100000010000000010011111000100
+00100000010000000010011111001101
+00100000010000000010011000011010
+00100000010000000111110001100000
+01101111001000010000011010011011
+00100000011000000000000000000000
+00011010001000001000110000011001
+11101111111000001000000000000110
+00011010001000001000101000011000
+11101000010000001000000000000101
+10011000010000001111111000000000
+00011111111001100111110000100100
+00100000001000010010011000100010
+00011111111000001111111111011011
+11100111111000001000000000000101
+00100000011000000000000000000000
+00011010001000001000110000110000
+11101111111000101000000000000110
+00011000000000000000010000000000
+00011000000000000111001000100101
+11000011000000000010011000101010
+00011000010000001000010000000001
+00011111111000110111111000000000
+11000010000000000010011000101000
+00011000010000001111111111111111
+00011010001000001000101000100010
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000111000100010100000000100100
+01101111111000001000000110000000
+10011000000000000000111000000000
+01101000010010101000000110011000
+10101000010011111111111111111111
+00100000001000001010011001000101
+01101111111000001000000110001010
+10011000111001100111111000000000
+00100000001000010010011000111011
+00011111111001100000111111111111
+00100000001000000010011000110110
+00011000111000100111001000000000
+00011000000000000000111000000000
+10101000010011111111111111111111
+00100000001000001010011001000000
+00011111001000001111001000000001
+00011111001000100111111000000000
+00100000001110100010011001000101
+00011000111000001000111000000001
+00011111001000001111001111111111
+00100000001000000010011000111101
+00011000111000100111111000000000
+01100111111000001000000000000111
+00100000011000000000000000000000
+00100000001101001010011001001011
+00110111110000011000001000000000
+00100000011000000000000000000000
+11011001011000000000111010100000
+00110100011100110000001000000000
+00100000011000000000000000000000
+01111000010010000111110000000000
+01101111111000010100001101000110
+00011111111000100001011000000000
+00100000001000000010011001011000
+01000111000100011100000000100100
+00100000010000000010011010111110
+01111000001010000111110000000000
+01101111111000010000000101110110
+01101000010010100100001100011101
+10011000010000001001011000000000
+00100000010000000010010111001100
+01000111000100100100000000100100
+00100000010000000010010111000010
+11000101100101111010011001100000
+01111000001111001111110000000000
+00100000000000000000000000011110
+00100000010000000010010111000010
+00011001011010011001011000000000
+01111000010101101111110000000000
+01111000001001101111110000000000
+01111000001100001111110000000000
+01111000010100000111110000000000
+00011001011000100011011000000000
+00110111110000011000010000000000
+00100000001101110010011001101001
+00011011010000100000010000000000
+01100000010010110000000000001111
+00100100001011000010011011111010
+01111000001010000111110000000000
+01101111111000001100000101100111
+11011000010000000100111000100000
+10011000010000001000010000000000
+01101111111000001100000101001000
+10011000010011111011011000000000
+00100000010000000110100001110111
+00100000001101110010011001110111
+00100000010000000010011011111111
+01101111111000001000000101101000
+11000011000000011010011001110111
+01101000010010110000000000001111
+00100000010101011010010001110111
+00100000010000000010001011101001
+01111000001000111111110000000000
+01111000001001001111110000000000
+00001001100000000000000000001000
+00011001100010010111111000000000
+01100111111000001000000001001100
+00001001100000000000000000001000
+00011001100010010111111000000000
+01100111111000001000000001001101
+00011111111000100111001000000000
+00100000001000101010011010011101
+11000101000110010010011010001000
+00001001100000000000000000001000
+00011001100010010111111000000000
+11100111111000001000000000000101
+11000010000000000010011010000011
+00100000001000000010011010011101
+00011000101000100010010000000000
+01000111000100101100000000100100
+00100000010000000010100000011100
+01101010001000001000000001001101
+00011010001000001010001111111100
+00100100001000010010011011110010
+00100000010000000010011011000011
+00011010010000100000101000000000
+11011000010000000000000000000000
+01101111001000001000000001001101
+00011111001000001111001111111100
+00100000001000101010011010011011
+00001001100000000000000000001000
+00011001100010010111111000000000
+11100111111000001000000000000101
+00011000010000001000010000000001
+00011000010000010111110000001111
+00100000010000101010011011100001
+11000010000000000010011010010100
+00100000010000000010011011101001
+00011010010000100000101000000000
+01000111000100110100000000100100
+00001001100000000000000000011000
+00011111111011110111111000000000
+00011111111100010111111000000000
+11100111111000011000000000000101
+01111000001010000111110000000000
+00100000010000000010011100001101
+00100000001000110010011011110110
+11000101100110010010011010101111
+01101111111000001000000001001101
+00100000001110100010011010101111
+00011111111000001111111111111100
+01100111111000001000000001001101
+00100000010000000111001011001011
+01101111111100001000000100001000
+11000011000000111010011011110010
+00011000000000000111000000001100
+01100101111000100000000101010100
+00100000010000000110100001110110
+01111000001101101111110000000000
+01111001001111111000000000110000
+01000111000100111100000000100100
+00100000010000000111001011001101
+01101111111000001000000110011101
+01111101001111100111111000000111
+01100111111000001000000110011101
+00100000010000000010011010111001
+00100000001000000010011010111011
+01111000010001101111110000000000
+00100000001000000010000101100000
+01000111000101000100000000100101
+01101000010010001000000000001000
+00100000001000000010000111000110
+11000110100110010000000000000000
+00100000010000000111001101101000
+00011000000000000111000000001100
+00100000010000000111001101110000
+00100000001000000111001101101111
+01000111000101001100000000100101
+01110000100000000110110000000000
+01110000100000000110110100000001
+01101111111000001000000001001100
+00011111111000010111111000000011
+01100111111100001000000001101110
+01011000000000000000000001001110
+01100111111100010000000001101000
+01100111111100010000000001101010
+01101010001000001000000001001101
+00011010001000001010001111111100
+01101000010010101100010001010101
+00101000000011111111111000001111
+00100000010000001010011011010111
+00100000010000000111001001100101
+01011000000000000000000000000000
+01100111111100010000000011000000
+01110000100000000000101000000110
+01110000100000000000101000000111
+00100000011000000000000000000000
+00011000010001100111110000000000
+00100000001000101010011011011100
+00011000010000001000010111111111
+01111001001000000000010000100111
+00100000011000000000000000000000
+01011000111111111111111111111111
+00011111111100000111111000000000
+11011000010000001111111111111111
+10011000010000011000010000000000
+00100000011000000000000000000000
+00011000101000100010010000000000
+01101111111000001000000001001101
+00011111111000001111111111111100
+10011000010001100111110000000000
+00100000011000101000000000000000
+01100000010110010000000011000000
+00011010010000100000101000000000
+00100000011000000000000000000000
+00001001100000000000000000100000
+00011111111011110111111000000000
+00011111111011001111111000000000
+11100111111000100000000000000101
+00011000101000100010010000000000
+00011000000000000111000000000000
+00011111111000100101111000000000
+01100000010110010000000011000000
+00100000011000000000000000000000
+00100000001000000010011011111100
+00100000010000000010011100001101
+00100000010000000010000011001111
+00100000001000000010011010101111
+00100000010000000110100001111000
+11000101000110000010011011111010
+01111001001000000000000000110000
+00100000001000000010011010110010
+01111001001111111000000000110000
+00100000001000000010011011111100
+01000111000101010100000000100101
+00100000010000000111001011001101
+00100000001000000010000011001111
+11000101000101111010011100000101
+11000101000101101010011100001001
+01101111111000010000000001000110
+00011111111000100101001000000000
+00011100001000100101000000000000
+00100000011000000000000000000000
+01101111111000010000000001001010
+00011111111000100101001000000000
+00011100001000001101000000000001
+00100000011000000000000000000000
+01101111111000010000000001001000
+00011111111000100101001000000000
+00011100001000100101000000000000
+00100000011000000000000000000000
+01101111111000001000000001001101
+00011111111000001000010000000101
+00011000010010011000010000000000
+01101111111000001000000110011101
+11000101000101111010011100010100
+11000010100000000010011100010110
+11000010100000001010011100010111
+00100000001111100010011100011001
+00100000001000000010011100011100
+00100000001000000010011100100001
+00011000010000110000010000000000
+00100000001000000010011100100001
+00011000010000001000010000000011
+00011000010000111000010000000000
+00100000001000000010011100011110
+00011000010000001000010000000011
+00011000010010011000010000000000
+01011000000000000000000000101000
+10011000010000001000010000000000
+00100000001000000010011100100001
+01101111111000001100000101001000
+10011000010011111000010000000000
+11011010001000000100111000100000
+10011010001011111111111000000000
+10011000010001100000010000000000
+00011011011000100111111000000000
+10011000010001100011011000000000
+00100000011000000000000000000000
+00100000010000000010011101000001
+01101000010010001000000000001000
+00100000010000000010000101101111
+00100000010000000010000110100110
+01111000001010000111110000000000
+11011001011000000001010101111100
+00100000001000000010011001011001
+01000111000101011100000000100101
+01101111111000001000000110011110
+00100000010000000010010110100100
+00100000010000000010011101000001
+01101111111000001000000110011101
+00100000010000000010010110100100
+01101000010010001000000000001000
+00100000010000000010000101101111
+00100000010000000010000110100110
+01111000001010000111110000000000
+11011001011000000001010101111100
+11000101100101111010011001011001
+11011001011000000010000100110100
+00100000001000000010011001011001
+01000111000101100100000000100101
+00100000010000000010011101000001
+00100000001000000010000011001111
+01000111000101101100000000100101
+00100000010000000010010111000010
+00100000010000000010010111010001
+00100000010000000110100001111101
+01111001001000000010101000000000
+01111000001011101111110000000000
+01111000001100000111110000000000
+01111000010100001111110000000000
+00100000010000000010011001001000
+01111000010111010111110000000000
+11000101000101111010011110000100
+11000101000101101010011110010110
+00011001001100010111111000000000
+00011111111011001111111000000000
+00011111111100011111111000000000
+00001000000000001000011000101000
+01111000001000111111110000000000
+01111000001001001111110000000000
+01000111000101110100000000100101
+01101111111000001100000101101001
+00001000000000001000011000001000
+11101111111000001000000000000110
+00011111111000100111001000000000
+00001000000000001000011000001000
+00011111001001100111110000000000
+00100000001000101010011101100010
+01101111111100001000000000001010
+00100000001110100010011101011110
+11000101000110010010011101111001
+11011000110000000100000101101011
+11101111111000001000000000000110
+00001000000000001000011000001000
+11000010000000000010011101011111
+01111000001001000111110000000000
+00001000000000001000011000011000
+01111000010001000111110000000000
+11000101100101111010011101101001
+01111000010000111111110000000000
+01011000000000000000000000000000
+00001000000000001000011000000011
+00110111110100111000001000000000
+00100000000000000000000001100100
+01000111000101111100000000100101
+01111000010011101111110000000000
+01111000010111000111110000000000
+00100000010000000010000101100000
+00100000010000000110100001111011
+01101111111000001100000101101001
+00011111111000010111111000000011
+11000001100000011000000000000000
+01101111111000001100001011111101
+11000000000000010010100001011100
+11000001100000101000000000000000
+01101111111000001100000101101011
+11000000000000101010100001010111
+00100000011000000000000000000000
+00011111001000001111001111111100
+00011111001000100000010000000000
+00100000010000000111001010111000
+11011000110000000100000101101011
+11101111111000001000000000000110
+00001000000000001000011000001000
+11000010000000000010011101111101
+00100000010000000111001010111101
+00011101111000100111111000000000
+00001000000000001000011000100000
+00100000001000000010011101100010
+11011111001000000000000000001010
+01011000000000000000000000111100
+00001000000000001000011000001000
+11000010000000000010011110000101
+01111000010011101111110000000000
+01111000001111000111110000000000
+00011001001100010111111000000000
+00011111111100010111111000000000
+00011111111100011111111000000000
+00001000000000001000011000100000
+11000101000101110010011110010011
+01011000000000000000000000000001
+00001000000000001000011000000101
+01111000001111010111110000000000
+00100000001000000010011101010001
+01011000000000000000000000000000
+00001000000000001000011000000101
+00100000001000000010011101010001
+01101111111000001100000101001000
+01101000010010001100000101101000
+10011000010000001111111000000000
+00100000010000000010001101011100
+00011001001100010111111000000000
+00011111111011001111111000000000
+00011111111100011000010000000000
+00011000010000100111111000000000
+00001000000000001000011000001000
+00011000010000100111111000000000
+00001000000000001000011000101000
+00100000001000000010011101010001
+11011010011000000010011110100110
+11011010010000000010011110111100
+11011000111000000000000000000101
+00100000001000000010011111111011
+00011010001000001000110000000100
+11101000010000100000000000000110
+00011010001000001000110000110111
+11101111111000001000000000000110
+00011010001000001000101000101011
+11100111111000001000000000000101
+11101111111000010000000000000110
+00011111111010111111111000000000
+10011000010000001001011000000000
+00011010001000001000101000000100
+00011001011000100111111000000000
+11100111111000100000000000000101
+11101111111000010000000000000110
+00011111111010111111111000000000
+00011010001000001000101000000010
+11100111111000010000000000000101
+11101111111000010000000000000110
+00011010001000001000101000101100
+11100111111000010000000000000101
+11101111111000010000000000000110
+01100111111000010100001011110101
+00100000001000000010100100111000
+11101111111000001000000000010001
+01111001001111111111111000000011
+11100111111000001000000000010001
+01100010001000010000011010000100
+01110000000001100110111101000100
+00100000010000000111100000101011
+01101010001000010000011010000100
+00100000011000000000000000000000
+11011010011000000000000000000000
+11011010010000000010011111001000
+11011000111000000000000000000110
+00100000001000000010011111111011
+00011010001000001000110000110111
+11101111111000101000000000000110
+00011010001000001000101000110000
+11100111111000101000000000000101
+00100000001000000010011000100100
+11011010011000000000000000000000
+11011010010000000010011111010001
+11011000111000000000000000000111
+00100000001000000010011111111011
+00011010001000001000110000110111
+11101111111000001000000000000110
+00100000010000000010011111011110
+11100111111000001000000000000101
+00011010001000001000110000111000
+11101111111000001000000000000110
+00100000010000000010011111101100
+11100111111000001000000000000101
+01100010001000010000011010000100
+01110000000001100110111101000010
+00100000010000000111100000101011
+01101010001000010000011010000100
+00100000011000000000000000000000
+00100000010110100010011111100110
+00011010001000001000101000110101
+00100100011101001000000000000000
+01101000010010001100001110110110
+00101000010011111111111000000111
+01111001001000001111111000000111
+00011010001000001000101000110110
+00100000011000000000000000000000
+00011010001000001000110000110101
+11101111111000001000000000000110
+00100100011101001000000000000000
+00011010001000001000110000110110
+11101111111000001000000000000110
+00100000011000000000000000000000
+00100000010110100010011111110101
+01101000010010001100001110110110
+00101000010011111111111000000111
+01111001001000001111111000000111
+00011010001000001000101000110110
+00100100011101001000000000000000
+01111001001111111111111000000111
+00011010001000001000101000110101
+00100000011000000000000000000000
+00011010001000001000110000110110
+11101111111000001000000000000110
+00100100011101001000000000000000
+00011010001000001000110000110101
+11101111111000001000000000000110
+00100000011000000000000000000000
+01000111000110000100000000100110
+11101111111000001000000000010001
+10101111111011000000000000000000
+00100000011000001000000000000000
+00011010001000001000110000011010
+11101000010000010000000000000110
+00011010001000001000110000100000
+11101111111000010000000000000110
+10011000010001100111111000000000
+00100000001000101010100000001011
+00100100001000010010100000010000
+00011111111001100111110000000001
+00100000001000101010100000001001
+00100000011000000000000000000000
+00011010011000100111111000000000
+00100000001000000111110101111001
+11101111111000001000000000010001
+11111001001111111111111000000000
+11100111111000001000000000010001
+00011010010000100111111000000000
+00100000001000000111110101111001
+00011010001000001000110000011010
+11101111111000010000000000000110
+00011010001000001000110000100000
+11101111111000010000000000000110
+10011000010001100111111000000000
+11011000010000001111111111111111
+10011000010001100111110000000000
+00100000001000101010100000001011
+11011000010000001111000000000000
+10011000010001100111110000000000
+00100100001000010010100000001011
+00100000011000000000000000000000
+01101000010010001000000101111111
+01101111111000001000000001001100
+00011111111000110111111000000000
+10011000010000101111111000000000
+00101111111011111111111000000010
+01111001001000001000000000001111
+00100000011000000000000000000000
+01000111000110001100000000100110
+00100000010000000010100100110101
+11000110000110000000000000000000
+00100000010000000010100001001010
+01101111111000001000000001001100
+00101111111011111111111000000100
+01111001001000001000000000101010
+00011111111000110111111000000000
+10011000010000101111111000000000
+00101111111011111111111000000010
+01111001001000001000000000001111
+11000110000001111000000000000000
+01101111111000001000000001001101
+00100000001110100010100000111100
+01101111111000001000000101101000
+11000011000000100010100000111100
+01101000010010100000000101010100
+01101111111000100100010001011010
+10011000010001100111110000000000
+00100000001000101010001101011010
+01100000010010100100010001011010
+01101111111000101100010001010101
+00011111111000001111111000000001
+01111001001000000111111000100111
+01100111111000101100010001010101
+01101000010010001000000101111111
+01111001010000000000010000000010
+01100000010010001000000101111111
+01101111111000001100001100100001
+11000100000000110000000000000000
+01000111000110010100000000100110
+01101111111000001000000001001101
+00100000011110100000000000000000
+01101111111000001000000001001100
+00101111111000000000011000000001
+00100000001000001010111001100101
+00101111111000000000011000000010
+00100000001000001010111001010011
+00100000011000000000000000000000
+01000111000110011100000000100110
+01101000010010001000000101111111
+00101000010011000000000000000101
+00100000011000001000000000000000
+01101111111000001000000001001100
+00011111111000111111111000000000
+10011000010000101111111000000000
+11000100000000011000000000000000
+01111001001111111000010000000101
+01111001010000000000010000000011
+01100000010010001000000101111111
+00101000010000000000011000000011
+00100000011000000000000000000000
+01101111111000001000000101101000
+01111001001000000111111000000100
+01100111111000001000000101101000
+01111001001000000000000000110010
+00100000011000000000000000000000
+01000111000110100100000000100110
+01110000010000101111110100000000
+11011111111000000000000000000000
+01100111111000100100010001011010
+01100111111000101100010001010000
+01111001001000000111111000100111
+01100111111000101100010001010101
+01101111111000001000000101101000
+01111001001111111111111000000100
+01100111111000001000000101101000
+01111001001111111000000000110010
+00100000011000000000000000000000
+11011010001000000000000000000001
+01101111111000001000000001001100
+11000011100000110000000000000000
+11011010001000000000000000000000
+00100000011000000000000000000000
+00011000110000100000101000000000
+01101000010010010100001110111000
+00011000101000100000110000000000
+00100000011000000000000000000000
+01000111000110101100000000100110
+01101111111000001000000101111111
+11000011100000101000000000000000
+00100000010000000010100010010010
+00100000010000000010101000010000
+00100000001110100010100010110110
+11101111111000010000000000000110
+11101000010000010000000000000110
+00011000010000100010001000000000
+10011010001001100111111000000000
+00100000010000000010100001101101
+00100000010000000111110110110000
+00011111111000100000010000000000
+11101000001000001000000000000110
+00011010001000100111111000000000
+10011000110000001111111000000000
+01100111111000010000011010001111
+00100000010000000010100010100110
+00100000010000000010100010111000
+00100000010000000010101000010000
+11101111111000010000000000000110
+00011111111000100010001000000000
+00011000110000100010011000000000
+11101000010000010000000000000110
+00011000010000100010010000000000
+10011010010001100111111000000000
+00100000010000000010100001101101
+00100000010000000111110110110000
+10011010010000001111111000000000
+11100111111000010000000000010011
+10011010001001100111110000000000
+00100100011000101000000000000000
+00100000001000000010101000101010
+00100000010000000010100010011001
+11000110000101001000000000000000
+01101111111000001100001100100001
+11000011000000010010100010100100
+00100000010000000010101000010100
+00100000001110100010100010100100
+00100000001000000010100010100010
+00100000010000000010101000010000
+00100000001110100010100010100100
+11101111111000010000000000000110
+11101000010000010000000000000110
+10011000010001100010001000000000
+00100000010000000010100001101101
+00011000010000100111111000000000
+10011010001001100111110000000000
+00100000001000010010100010100100
+01111001001000000000000000101001
+00100000011000000000000000000000
+01111001001111111000000000101001
+00100000011000000000000000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+11011000001000000000000000000001
+00100000011000000000000000000000
+01000111000110110100000000100110
+00011000010000001000010000000001
+00100000010000000010110011001111
+00011000110000001000110111111110
+11101111111000010000000000000110
+11011000010000000010100100000010
+10011000010001100111110000000000
+00100100011000101000000000000000
+00011000110000001000110000000001
+00011000110000100010001000000000
+11101111111000001000000000000110
+00100000011000000000000000000000
+00011000000000000000010000000000
+00011000000000000000001000000001
+01000111000110111100000000100110
+01100000010010001100000101101010
+01101000010010001000000101111111
+01111001001000000000010000000101
+00011000010000010111111011111100
+10011000001000011111111000000000
+01100111111000001000000101111111
+00011111111000010111111000011111
+00101000000011111111111000101001
+01111001001000001111111000000100
+01100111111000001100000101101001
+01101111111000001100000101101001
+00101000001000000000011000000001
+00100100001000001010100011001000
+01101111111000001100000101101010
+00100000011110100000000000000000
+11000101000110010010100011001110
+01101111001000001100000101101010
+01101111111000010000011010001111
+00011111111000100000110000000000
+11011000101000000100000101101011
+00100000001000000111110011001100
+00100000010000000111001101101000
+00100000001000000111001010011111
+11011000111000000000000000000000
+00100000001000000010010011100111
+11011000111000000000000000000000
+00100000001000000010010011101011
+01000111000111000100000000100111
+11000110000001111000000000000000
+11000110000110000000000000000000
+01101111111000001000000001001100
+00011111111000010111111000000011
+01100111111000001100001100110100
+01101111111000001000000001001101
+00100000011110100000000000000000
+01011000000000000000000001001110
+01100111111000010100001100111001
+01000111000111001100000000100111
+01101111111000001100001100110100
+11000000000000011011000001001010
+00100000010000000010100011101110
+00100100001101000010100011010000
+00100000010000000010100011010010
+01011000000000000000000000000000
+01100111111000010100001100110111
+01101111111000010100001100111001
+00011111111000001000110000000010
+01000111000111010100000000100111
+11101111111000010000000000000110
+11000000000000100010101110001111
+11000000000000110010111011001000
+11000000000000101010111010001010
+00100000011000000000000000000000
+01101111111000001100001100110100
+11000000000000010010100011111101
+11000000000000001010100100010100
+00100000011000000000000000000000
+00100000010000000111110110111010
+11011000010000000000000000000100
+10011111111001100111110000000000
+00100000011000101000000000000000
+11011000010000000000000000000101
+10011111111001100111110000000000
+00100000011000101000000000000000
+11011000010000000000000000000110
+10011111111001100111110000000000
+00100000011000101000000000000000
+00100000001000000111110110111100
+01101111111000010100001100111001
+00011111111000100000110000000000
+11101111111000010000000000000110
+01100111111000010100001100110101
+11101111111000010000000000000110
+00100000010000000010100011110010
+00100100011101000000000000000000
+01101000010010001000000001001101
+01100000010010010100001100110111
+01101111111000010100001100110101
+00011111111000001111111000000100
+10011000010001100111110000000000
+00100000001000101111110110111010
+01101111001000001000000001001101
+11011000101000000000111100000000
+01101111111000010100001100111001
+00011111111000100000110000000000
+00100000010000000111110011001100
+00100000001000000111110110111100
+00100000010000000111110110111010
+01101111111000010100001100110111
+00100100011110100000000000000000
+00100000001000000111110110111100
+00100000010000000010100100010000
+00100100011101000000000000000000
+01101111111000010100001100110111
+11011000101000000000111100000000
+10011000101000001010001000000000
+01101000010010001000000001001101
+10011000010000001111111000000000
+01100111111000010100001100110111
+01101111001000001000000001001101
+00011010001000100000101000000000
+01101111111000010100001100111001
+00011111111000100000110000000000
+00100000010000000111110011001100
+01011000000000000000111100000000
+01100111111000010100001100111001
+01101111111000010100001100110101
+00011111111000001111111000000100
+01101000010010010100001100110111
+10011000010001100111110000000000
+00100000001000101111110110111010
+00100000001000000111110110111100
+01101111111000010100001111011111
+00100000001000000111110101111001
+01000111000111011100000000100111
+01101000010010100000000110000100
+00100000010000000010001101010110
+10011000010001100001011000000000
+00011001011000100111111000000000
+01101000010010010000000110010110
+00011000010100100000010000000000
+00011000010000111000010000000000
+10011000010001100111111000000000
+00100000011000000000000000000000
+00100000010000000010001101010110
+01100111111000100000000110000100
+00100000011000000000000000000000
+01000111000111100100000000100111
+00011010001000001000110001010000
+11101111111000001000000000000110
+00100000010000000010010111101011
+00011010001000001000110000000010
+11101111111000010000000000000110
+10011000010011111111111000000000
+01101000010010010000000001000100
+10011000010011111111111000000000
+11011000010011110100001001000000
+10011000010001101111110000000000
+11011000010000000000011010000010
+01101111111000001100000101001000
+10011000010011111000010000000000
+00011010001000001000110000101011
+11101111111000001000000000000110
+10011000010011111111111000000000
+10011000010000001111111000000000
+01100111111000100100001100011101
+01101111111000010100000010011010
+00100000010000000111110101100010
+00011000000001111000010000000000
+10011000010000001111111000000000
+00011010001000001000101000001110
+11100111111000010000000000000101
+00100000011000000000000000000000
+01000111000111101100000000100111
+00100000010000000010100101010101
+00100000001000000010100101101001
+01110000000001101011010100000010
+11011000010000000010101000000000
+01100000010010010000011010110110
+00100000010000000010110011100000
+00100000011110100000000000000000
+11101111111000001000000000000110
+00011000110000100000101000000000
+01101000010010001100001001101011
+00011000010000100111001000000000
+10011000010001100111110000000000
+00100100001000010010100101100110
+10011000010001100000010000000000
+11011000110000000100001001101100
+00100000010000000111110011001100
+00011000010000100111001000000000
+00100100010000101010100110100001
+00100000011000000000000000000000
+00011111111000100111001000000000
+11011000110000000100001001101100
+00100000001000000111110011001100
+11011010011000000100001101101000
+11011010001000000100001101001001
+00100000010000000010100101110110
+01011000000000000000000000000000
+01111001001101000111111000000000
+01100111111000001000011001110000
+11011010011000000100001110001000
+11011010001000000100001101101001
+00100000010000000010100101110110
+00100000011101000000000000000000
+01101111111000001000011001110000
+00100000001110100010001101011010
+00100000011000000000000000000000
+01000111000111110100000000100111
+00100000010000000111110110111010
+00100000010000000111110010100110
+11011010010000000000000000000000
+11011000101000000000011010100010
+00100000010000000010100110010000
+01101111111000001100001001101011
+00011111111000001000010000000001
+10011010010000001010001000000000
+00011010001000001010001000000010
+00011010001001100111110000011111
+00100100001000010010100110001110
+11100000010000001000000000000101
+11011000010000000000000000001001
+11100000010000001000000000000101
+10011000000000000111001000000000
+00100000010000000111110011001100
+00011010001000100010010000000000
+00011010010000100111111000000000
+01100111111000001000011010100001
+11011000110000000000011010100001
+01011111111111111111111111100000
+10011010011000001000101000000000
+00100000001000000111110010001101
+00100000010000000111110110111100
+00100000001000000010100110001000
+11101111111000001000000000010001
+00100000011110100000000000000000
+00011111111000001111111000000001
+11101000010000001000000000000110
+00011000010001100111110000001001
+00100000001000101010100110011111
+10011010010000001010010000000000
+00011010001000100000110000000000
+10011000000000000111001000000000
+00100000010000000111110011001100
+00011000110000100010001000000000
+00011010001000100111111000000000
+10011010011001100111110000000000
+00100000011000010000000000000000
+00100000001000000010100110010000
+10011010001000001010001000000000
+00100000001000000010100110011011
+01011000000000000000000000100000
+11100111111000001000000000000101
+11000010000000000010100110100001
+00100000011000000000000000000000
+01000111000111111100000000100111
+01111000010101011111110000000000
+00100000001101110010100110101001
+00100100001101101010100110111000
+00100000010000000010010011010010
+01101111111000010100000010011010
+01100111111000010000000101110110
+01101111111000001100001100100001
+11000010100000101010010011100000
+11000101000001111010010011100000
+01101111111000001000000001001101
+00100100001110100010010011100000
+01101111111000001100000101101010
+00100100001110100010010011100000
+01101111111000001000000101101000
+11000010100000101010010011100000
+11000010100000111010010011100000
+11000010100000110010010011100000
+00100000001000000010010011001000
+01101111111000001100000010101000
+00011111111001100111110000011110
+00100100001000010010010011010111
+01101000010010010100000010011010
+00011000010000110000010000000000
+01101111111000010000000101110110
+10011000010000001111111000000000
+01100111111000010000000101110110
+00100000001000000010010011010111
+11011000111000000000000000000000
+00100000001000000010100111010110
+11011000111000000000000000000000
+00100000001000000010100111011011
+11011000111000000000000000000001
+00100000001000000010100111010110
+11011000111000000000000000000001
+00100000001000000010100111011011
+11011000111000000000000000000010
+00100000001000000010100111010110
+11011000111000000000000000000010
+00100000001000000010100111011011
+11011000111000000000000000000011
+00100000001000000010100111010110
+11011000111000000000000000000011
+00100000001000000010100111011011
+11011000111000000000000000000100
+00100000001000000010100111010110
+11011000111000000000000000000100
+00100000001000000010100111011011
+11011000111000000000000000000101
+01101111111000001100001100100001
+11111001001000000111111000000000
+01100111111000001100001100100001
+00100000011000000000000000000000
+11011000111000000000000000000101
+01101111111000001100001100100001
+11111001001111111111111000000000
+01100111111000001100001100100001
+00100000011000000000000000000000
+01011000000100010010001000110011
+01100111111000011100001100100010
+01011000010001000101010101100110
+11100111111000011000000000000101
+01011000011101111000100010011001
+11100111111000011000000000000101
+01011000000000000001000100100010
+11100111111000011000000000000101
+01011000001100110100010001010101
+11100111111000011000000000000101
+01011000000000000000000001100110
+11100111111000001000000000000101
+00100000011000000000000000000000
+01011001000000000000001100000010
+01100111111000100100001011000100
+01011000000000010000000000010000
+01100111111000011100001011001000
+01110000010000101111111000000001
+00100000011000000000000000000000
+11011010001000000000000000000000
+11011000001000000000000000000001
+00100000001000000010101000000101
+01000111001000000100000000101000
+11011000001000000000000000000011
+00100000010000000010101000000101
+00011010010000100111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000111001000001100000000101000
+00011000000000000000001000000010
+00011010001000001010001000000100
+00100000010000000010101000000101
+00011010001000001010001111111100
+00011010001000100111111000000000
+11100111111000010000000000000101
+00011010010000100111111000000000
+11100111111000010000000000000101
+00100000011000000000000000000000
+01000111001000010100000000101000
+00011010001000001010001000000101
+00100000010000000110100101011001
+00011010001000001010001111111011
+00011010001000100111111000000000
+11100111111000010000000000000101
+01011000000000000000000000000000
+11100111111000010000000000000101
+00011000001000100111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000111001000011100000000101000
+00100000010000000110100110010011
+00011111111000100000110000000000
+00100000011000000000000000000000
+01101111111000010100010001001001
+00100000011000000000000000000000
+00100000010000000010101000011001
+00011111111000100000110000000000
+00100000011000000000000000000000
+01101111111000010100010001001100
+00100000011000000000000000000000
+00100000010000000010101000010000
+00011000110000001000110000000101
+00100000011000000000000000000000
+00100000010000000010101000010000
+00011000110000001000110000001001
+00100000011000000000000000000000
+00100000010000000010101000010110
+00011000110000001000110000001001
+00100000011000000000000000000000
+00100000010000000010101000010110
+00011000110000001000110000000101
+00100000011000000000000000000000
+00100000001000000110100110101001
+00100000001000000110100110101100
+00100000001000000110100110101111
+00100000001000000110100110011000
+01100111111001000100001111000000
+00100000001000000010101000111100
+00011000010000010010001011111111
+00100000010000000010101000110010
+00011000010011001010001000000000
+01100010001000001100001110110111
+00100000001000000010101000110011
+01100010001000001100001110110110
+00101010001011111111111000000001
+00100000010000001010101000111000
+00101010001011111111111000000010
+00100000010000001010101000111010
+00100000011000000000000000000000
+11011000111000000000000000001000
+00100000001000000010101000111101
+11011000111000000000000000001011
+00100000001000000010101000111101
+11011000111000000000000000000101
+01101111111001000100001110101110
+11111001001000000111111000000000
+01100111111001000100001110101110
+00100000011000000000000000000000
+00100000010000000010100111000101
+00100000010000000010100111101100
+00100000010000000010100111011111
+00100000001000000010100111001101
+01110000000000011001110100000001
+01110000000000011001111000000001
+00100000010000000010010110111000
+00100000010000000010101001001011
+00100000010000000010101011001011
+00100000001000000010010110111100
+01000111001000100100000000101000
+01101111111000001100001101000011
+11000001100000001000000000000000
+11011000111000000000000000000010
+00100000010000000111110011101111
+00100100011110100000000000000000
+01101111111000010100001101000100
+01101000010010010100001101000110
+10011000010001100111111000000000
+11011000111000000000000000000010
+00100000010000000111110011100001
+01111000010101001111110000000000
+00100000010000000010101011110101
+00100000010000000010101001101010
+00100100011101101000000000000000
+01000111001000101100000000101000
+01101111111000110000000001001110
+01100111111000110000000101111000
+01101111111000001000000000000010
+00011111111000001111111000000001
+01100111111000001000000000000010
+00100000010000000010101001110001
+00100000011101001000000000000000
+00100000010000000010101100011100
+00100100011101101000000000000000
+01101111111000001000000000000100
+00011111111000001111111000000001
+01100111111000001000000000000100
+01101111111001001000000001010100
+01100111111001001000011010100001
+00100000011000000000000000000000
+01000111001000110100000000101000
+00100000010000000010101101101000
+00100000010000000010011001001110
+01101111111000001000000000000001
+00011111111000001111111000000001
+01100111111000001000000000000001
+00100000011000000000000000000000
+01000111001000111100000000101000
+01101111111000001000000110111100
+11000001100011011000000000000000
+01101111111000110000000101111000
+01101000010010110100001011001100
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000010000000010000001010110
+00100100011000101000000000000000
+00100000010000000010101010000100
+00100000010000000010010100011001
+00100000010000000011000011101101
+01110000000001100110111100010100
+00100000010000000111100000101011
+01110000010000010001010000000000
+01110000000000011011100000000000
+01110000010000110100001100000000
+01110000000000011011110000000000
+00100000001000000010000001000001
+01000111001001000100000000101001
+00011000000000000111111111111111
+00111000000010000000000000000001
+01100111111000101000000110011000
+11011010001000000000000101101000
+00100000010000000010011000100100
+00011000000000000111001000000100
+11011000101000000000000110001100
+00100000010000000111110111101000
+01101111111000010100001011011001
+01100111111000010000000110010110
+00011000000010100111111000000000
+00011111111000010111111000001111
+00011111111001100111110000000100
+00100000001000010010101010001111
+01100111111000001000000110000001
+01000111001001001100000000101001
+01101000010010010100000101100101
+01100000010010010000000101101010
+00011000010000100010011000000000
+00011100010000001111111000000111
+10011010011001101111110000000000
+00100000010000000111110101100010
+00011000000001110010001000000000
+10011010001001100111111000000000
+10011010011000001111111000000000
+01101000010010010100000101100011
+10011000010000001111111000000000
+01100111111000100000000101101100
+10011100010001100010001000000000
+00011010001000001010001111111010
+11011010010000000010001000000101
+01101111111000001100001011010010
+01111101001110100010010000000110
+01101111111000001100001011001011
+01111101001110100010010000000111
+00011010010000100111111000000000
+01100111111000010100000101101001
+01101111111000110100001011011011
+11100111111000110000000000000101
+01101111111000110000000101111000
+11100111111000110000000000000101
+01101111111000100000000110001100
+11100111111000100000000000000101
+00011000000010100111111000000000
+11100111111000010000000000000101
+00011000000010100111111000000000
+11100111111000001000000000000101
+00011000000000000111111000000010
+11100111111000001000000000000101
+00011010001010110111111000000000
+11100111111000010000000000000101
+00011010011010110111111000000000
+11100111111000010000000000000101
+01000111001001010100000000101001
+01011000000000000000000000000000
+11100111111000010000000000000101
+01101111111000010100001011011001
+11100111111000010000000000000101
+01101111111000101000000110011000
+11100111111000101000000000000101
+01101111111000001000000110000001
+11011000010000000000000010100000
+10011000010000011111111000000000
+11100111111000001000000000000101
+00100000010000000010011100111110
+01011000000000000100000101101001
+00011111111000001000110000010010
+11101111111000011000000000000110
+01100111111000011000000110010000
+00100000011000000000000000000000
+01110000000000000000011100100100
+01110000000001101010000100000000
+00100000010000000010101011101111
+00100000010000000010101011010000
+00100000001000000010101011110010
+01000111001001011100000000101001
+01101111111000001100001110001000
+00100000011110100000000000000000
+11011000111000000000000000000000
+00100000010000000111110011101111
+00100100011110100000000000000000
+01111000001010000111110000000000
+00100000010000000010101011110101
+00100000010000000010101101101000
+00100000010000000010101011111110
+00100100001101101010101011100010
+01101111111000001000000000000011
+00011111111000001111111000000001
+01100111111000001000000000000011
+01101111111000001000000001001100
+00011111111000010111111000001111
+11000000000000011010101100101101
+11000000000000101010101101000000
+01000111001001100100000000101001
+01101111111000001000011010100001
+01101000010010001100001110010011
+10011000010001100111110000000000
+00100100001000101010101011010000
+00011000000010100111111000000000
+11011000010000000000000111111111
+10011000010000010111111000000000
+00011111111000001111111011111010
+00100000010000000111110010010001
+11011000111000000000000000000000
+01101111111000010100001110001001
+00100000001000000111110011100001
+11011000101000000000011010110001
+11011000110000000100000101101001
+00100000001000000111110010001100
+11011000110000000000011010110001
+11011000101000000100000101101001
+00100000001000000111110010001100
+01000111001001101100000000101001
+01111000010101001111110000000000
+01011000100011101000100110111110
+00011111111011010111111000000000
+00011111111000011111111011010110
+10011000000000000001001000000000
+01011000010101010101010101010101
+01100111111000011000000110010000
+00100000011000000000000000000000
+01000111001001110100000000101001
+01101111111000001100001110001011
+01101000010010001100001110001100
+00011000010100100000010000000000
+00011000010010111000010000000000
+10011000010000001000010000000000
+01100000010010001100000101101001
+11000000000000001010101100001111
+01101000010010001100001101001000
+00011000010000001111111000000110
+01100111111000001100000101101010
+01101111111000110100001011011011
+01100111111000110100000101101011
+00011000010000100111001000000000
+11011000110000000100001101001001
+00100000010000000111110011001100
+00100000001000000010101100010101
+01011000000000000000000000001100
+01100111111000001100000101101010
+01101111111000110100001011011011
+01100111111000110100000101101011
+01101111111000110100000100010110
+11100111111000110000000000000101
+01000111001001111100000000101001
+01101111111000001000000000000000
+00011111111000001111111000000001
+01100111111000001000000000000000
+11011011011000000000011100001000
+01111000010101101111110000000000
+00100000001000000010011100101001
+01000111001010000100000000101010
+01101111111000001100001110010100
+11000001100000001000000000000000
+01101111111000001000000000000000
+00011111111000001111111000000001
+01100111111000001000000000000000
+11011000010000000000110000000011
+01101111111000001100001110010101
+01111101001110100000010000000110
+00011010001000100111111000000000
+01111101001110100000010000000111
+01100000010010010100000101101001
+01101111111000110100001011011011
+11100111111000110000000000000101
+01101111111000110000000101111000
+11100111111000110000000000000101
+00100000001000000010011100101001
+01000111001010001100000000101010
+01101111111000110000000001010100
+01101000010010110100001011011011
+10011000010001100111110000000000
+00100100011000101000000000000000
+11011000010000000000000000000100
+01101111111000001100001110001100
+01111101001110100000010000000110
+01100000010010001100000101101001
+01101000010010001100001101101000
+00011000010000001111111000000110
+01100111111000001100000101101010
+01101111111000110100001011011011
+01100111111000110100000101101011
+11011000110000000100001101101001
+00011000010000100111001000000000
+00100000010000000111110011001100
+00100000010000000010011100111110
+00100000001000000010101011100010
+01101111111000110000000001010100
+01101000010010110100001011011011
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000010000000010100001101000
+01100010001000001100001011001011
+01101111111000110000000001001110
+01100111111000110000000101111000
+01101111111001000000000001011010
+01100111111001000000000110001100
+01101000010010010000000001100010
+01000111001010010100000000101010
+00011000010010111000010000000000
+01101111111000010000000001100100
+00011111111010111111111000000000
+01100111111000010000000101101010
+01100111111000100000000101101100
+10011000010001100111111000000000
+00011111111000001101000111111110
+01101111111001001000000001100110
+01100111111001001000000110010100
+01101111111000001000000001101111
+00011111111000010000010000011111
+01100000010010001000000110000001
+00011111111100011000010000000000
+00011000010000110000010000000000
+01100000010010001000000110111000
+11011010001000000000000101101000
+00100000010000000010100100111000
+11011010001000000000000101101000
+00100000010000000010011000100100
+00100000010000000010010100100101
+00100000010000000010000001010110
+00100100011000101000000000000000
+01000111001010011100000000101010
+00100000010000000010000011110111
+00100000010000000010111010100111
+01110000000001100110111100010100
+00100000010000000111100000101011
+00100000001000000010000001000001
+01000111001010100100000000101010
+01101111111000001000000000000111
+11000000000100101010101101101110
+11000000000100110010101101110100
+11000000000100111010101101111010
+00100000001000000010101101111010
+01101000010010001100001110010011
+00101000010011111111111000000001
+00100000001000001010101110000101
+00101000010011111111111000000010
+00100000001000001010101110001010
+00100000001000000010101110000000
+01101000010010001100001110010011
+00101000010011111111111000000010
+00100000001000001010101110001010
+00101000010011111111111000000000
+00100000001000001010101110000000
+00100000001000000010101110000101
+01101000010010001100001110010011
+00101000010011111111111000000000
+00100000001000001010101110000000
+00101000010011111111111000000001
+00100000001000001010101110000101
+00100000001000000010101110001010
+01110000000000000000011100100101
+01101111111000001000011010100001
+01111001001000000111111000000000
+01100111111000001000011010100001
+00100000011000000000000000000000
+01110000000000000000011100100110
+01101111111000001000011010100001
+01111001001000000111111000000001
+01100111111000001000011010100001
+00100000011000000000000000000000
+01110000000000000000011100100111
+01101111111000001000011010100001
+01111001001000000111111000000010
+01100111111000001000011010100001
+00100000011000000000000000000000
+00011000110000100010001000000000
+01101111111000001100001111001011
+11000000000000110110011011010101
+11000000000001111101000000111101
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110010111
+11000000000000010010101110101011
+11000000000000011010101110110000
+11000000000000100010101110110011
+11000000000000110010101111110111
+11000000000001000010110001000100
+11000000000001010010110100011001
+11000000000001100010110101001100
+11000000000010000010110101100011
+11000000000010010010110110101000
+11000000000010110010110111001110
+11000000000011000010110111100001
+11000000000011110010110111100110
+11000000001010010010110111101010
+00100000011000000000000000000000
+00011000000000000010001000000011
+00100000010000000010111000010000
+01011000000000000000000000000010
+11100111111000001000000000000101
+01101111111000010100001011100001
+11100111111000010000000000000101
+00100000011000000000000000000000
+00100000010000000010101110110000
+00011000000000000010001000000011
+00100000010000000010111000010000
+01011000000000000000000000000011
+00100000001000000010101110100111
+00011111111011001111111000000000
+01100111111000010100001011100011
+00100000011000000000000000000000
+00100000010000000010111001000001
+00100000010000000111110110111010
+00100000001000000010101111000011
+11101111111000010000000000000110
+00011111111000010111111011111111
+00100000011110100000000000000000
+10011010010001100111110000000000
+00100000011000101000000000000000
+00100100011000010000000000000000
+10011010011001100111110000000000
+00100000011000101000000000000000
+00100000001000010010101111000001
+00011000000000000111110000000001
+00100000011000000000000000000000
+00011000000000000111111000000000
+00100000011000000000000000000000
+11011001011000000000000000000011
+00100000010000000010110011000111
+00100000010000000010101110110110
+00100000001110100010101111110101
+00100100001000010010101111110011
+00011000110000001000110111111110
+00100000010000000111110001101101
+00100000010000000111110001100100
+00100100001101000010101111100011
+00100000010000000111110001010001
+01100001011000100000011010000000
+00011000000000000010001000011110
+00100000010000000010111000010000
+01101001011000100000011010000000
+00100000010000000111110001100000
+00100000010000000111110110111100
+01011000000000000000000000000101
+11100111111000001000000000000101
+00100000010000000111110001100111
+11101111111000010000000000000110
+11101010001000001000000000000110
+00011010001001100111110000010000
+00100000001000101010101111011111
+00011010001001100111110000000010
+00100100001000101010111000000011
+01011000000000000000000000000001
+11100111111000001000000000000101
+00100000001000000010101111101000
+01011000000000000000000000000010
+11100111111000001000000000000101
+11011001011000000000000000000001
+00100000001000000010101111101000
+00100000010000000111110001100111
+11101111111000010000000000000110
+11101111111000001000000000000110
+10011010001001100111110000000000
+00100100001000101010101111110101
+00100000010000000111110001100111
+11101111111000010000000000000110
+00011111111000010111111011111111
+11100111111000010000000000000101
+11101111001000001000000000000110
+00100000010000000111110011011010
+00100000010000000111110001101010
+00011001011000001001011111111111
+00100000001000101010101111110101
+00100000010000000010110011011101
+00100000001000000010101111000101
+00100000010000000010110011011101
+00100000001000000010101111110001
+00100000001101000010111000000011
+00100000001000000010111000110100
+00100000010000000010111001000001
+11101111111000010000000000000110
+01100111111000010100001110011110
+00100000010000000111110001101101
+11011000101000000000011010110101
+01101111111000010100001100110101
+00011111111000001111111111111001
+00100000010000000010111001001111
+00100000001000000010110000001010
+01111000010101000111110000000000
+01101000010010010000011010110001
+01101111111000010000011010110011
+10011000010001100111110000000000
+00100100001000010010110000000111
+00011000010000100111111000000000
+11000001100000000000000000000000
+01111000001101000111110000000000
+01110000000000011011100100000001
+00100000001000000010111000000101
+00100000010000000010110000000000
+00100000011101000000000000000000
+01101000010010010100001110011110
+01011000000000000010100000000000
+10011000010001100111110000000000
+00100000001000101010110000010001
+00100000001000000010111000000011
+01110000010000111001101000000000
+01101000010010010000011010110001
+01100000010010010000011001111000
+00100000010000000010110100000100
+00100100001110100010111000000011
+01101000010010010000011001111000
+00100000010000000010110100000100
+00100100001110100010110000101010
+00011000110000100010001000000000
+01101111111000001000011011000110
+00011111111000100111001000000000
+01101000010010001000011010110101
+10011000010001100111110000000000
+00100100001000101010110000100110
+11011010010000000000011010110110
+00100000010000000111110101100100
+00100000001000101010110000101101
+01101111111000010000011011001110
+01101000010010010100001110011110
+10011000010001100111110000000000
+00100000001000101010110000110101
+01101111111000010000011001111000
+00011111111000001111111000000001
+01100111111000010000011001111000
+00100000001000000010110000010110
+01101111111000001100001110011010
+11000000000000001010110000110101
+00100000001000000010111000000011
+01101111111000010000011011001110
+01101000010010010100001110011110
+10011000010001100111110000000000
+00100100001000101010110000100110
+01110000010000111001101000000001
+01101000010010010000011001111000
+01100000010010010000011011001001
+00100000001000000010110000100110
+01101111111000001100001110011010
+11000000000000000010110000100110
+01110000010000111001101000000010
+01101000010010010000011001111000
+00011000010000001000010111111111
+01100000010010010000011011001011
+11011010001000000000000000000101
+00100000010000000010111000010000
+01011000000000000000000000000111
+11100111111000001000000000000101
+01101111111000010000011011001001
+11100111111000010000000000000101
+01101111111000010000011011001011
+11100111111000010000000000000101
+00100000011000000000000000000000
+00100000010000000010111001000001
+00100000010000000010111001001010
+00100000001000000010110001000111
+01101000010010010000011010110001
+01100000010010010000011001111000
+00100000010000000010110011000111
+00100000010000000010110011010010
+00011000110000001000110111111110
+00011000110000100111111000000000
+01100111111000010000011011000111
+01101000010010010000011010110110
+01011000000000000010101000000000
+10011000010001100111110000000000
+00100000001000101010110010110010
+01011000000000000010100000000011
+10011000010001100111110000000000
+00100100001000101010110010011100
+11011001011000000000000000000010
+00100000010000000010111000010111
+00100100001000010010110001111001
+01101000010010010000011001111000
+00100000010000000010110100000010
+00100100001110100010110001111001
+00100000010000000010111000011011
+00100100001000101010110001110111
+00100100001101000010110001111011
+01111000010101000111110000000000
+00100000010000000010111001000110
+00011111111000100010001000000000
+00100000010000000010111000010000
+01011000000000000000000000001001
+11100111111000001000000000000101
+00011000101000100110000000000000
+00011000101000001000101000000001
+00100000010000000010110010001001
+00100000010000000010111000010011
+00100000010000000010110100000010
+00100000010000000010110010010000
+01101111111000001000011011001101
+00011111111000001010001000000101
+11100010001000001000000000110000
+00011010001001100111110000000111
+00100100010000101111110110111110
+00100000010000101111110111000000
+00100000010000000010111001000110
+00011111111000001111111111111110
+10011010001001101111110000000000
+00100000010000000111110101100010
+00011000000001111001011000000000
+00011001011000001001011111111111
+00100000001000101010110001111001
+00100000010000000010111000010011
+00100000001000000010110001010110
+00100000001101000010111000000011
+00100000001000000010111000110100
+00100000010000000010111000100100
+00100000010000000010111000010011
+00100000010000000010110100000010
+00100000010000000010110110010110
+00100100001110100010110001111001
+00100000010000000111110001100100
+01101111111000010000011001111000
+00011111111000001111111111111111
+11100111111000010000000000000101
+00100000010000000010111000110000
+00100000010000000010110010010000
+00011001011000001001011111111111
+00100000001000101010110001111001
+00100000001000000010110001110111
+01101111111000010000011001111000
+11100111111000010000000000000101
+01101111111000001000011011000110
+00011111111000100111001000000000
+00100000010000000111110001100111
+00100000010000000111110011001100
+00100000001000000111110001101010
+00100000010000000111110001100100
+01101111111000010000011001111000
+11100111111000010000000000000101
+00100000010000000111110001101010
+01101111111000001000011011001101
+00011111111000100111001000000000
+00100000010000000111110001100100
+00100000010000000111110001100111
+10011111001001100000110000000000
+00011000110000001000110111111111
+00100000010000000111110011001100
+00100000001000000111110001101010
+01000111001010101100000000101010
+00100000010000000010110011100000
+00100000001110100010111000000011
+00011000110000100010011000000000
+00100000010000000010111001000110
+00011010011000100000110000000000
+11101000010000001000000000000110
+00011000010000001000010000000100
+00100000010000000111110110110000
+00011111111000100010011000000000
+00011111111000100010001000000000
+00100000010000000111110001101101
+00100000010000000010111000010000
+01011000000000000000000000001001
+11100111111000001000000000000101
+00011010011000001111111111111110
+00011111111000001111001111111110
+11100111111000001000000000000101
+01101111111000010000011011011110
+11100111111000010000000000000101
+00100000010000000111110001100111
+00100000001000000111110011001100
+00100000010000000010110011100000
+00100000001110100010111000000011
+00011000110000001000110111111011
+11101111111000010000000000000110
+01100111111000010000011001111000
+00100000010000000010111001000110
+01101000010010001100001001101011
+00011000010000001000010000000100
+00100000010000000111110110110000
+00011111111000100010011000000000
+00011111111000100010001000000000
+00100000010000000010111000010000
+01011000000000000000000000001001
+11100111111000001000000000000101
+00011010011000001111111111111110
+00011111111000001111001111111110
+11100111111000001000000000000101
+01101111111000010000011001111000
+11100111111000010000000000000101
+11011000110000000100001001101100
+00100000001000000111110011001100
+01000111001010110100000000101010
+01101111111000010000011010110001
+10011000000000000010010000000000
+01101111111000010000011010110011
+10011000000000000010011000000000
+01101111111000010100001011110111
+10011000000000000000110000000000
+00100000001000000111110110111010
+00100000010000000010110011010010
+00100000001000101010110011011101
+00100000011000000000000000000000
+01000111001010111100000000101010
+01101111111000010100001011110111
+10011000000000000000110000000000
+11101111111000010000000000000110
+00011111111000010111111011111111
+00100000011110100000000000000000
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100000010000000010110011011101
+00100000010000000010110011011101
+00100000001000000010110011010101
+11101111111000001000000000000110
+10011000110000001000110000000000
+00100000011000000000000000000000
+01000111001011000100000000101011
+01101111111000010100001011110111
+10011000000000000000110000000000
+11101111111000010000000000000110
+00011111111000010111111011111111
+00100000011110100000000000000000
+01100111111000010000011011011110
+11101111111000001000000000000110
+00011000110000100000101000000000
+10011000110000001000110000000000
+01101000010010001000011010110101
+10011000010001100111110000000000
+00100100001000101010110011110011
+00011111111000100111001000000000
+00011000101000100010010000000000
+11011010001000000000011010110110
+00100000010000000111110101100100
+00100000011000101000000000000000
+01101111111000001000011010110101
+10011000101000001000110000000000
+00100000010000000010110011011101
+00100000001000000010110011100011
+11011000010000000000000000000001
+01101111111000010100001011110111
+10011000000000000000110000000000
+00011000110000100000101000000000
+11101111111000010000000000000110
+00011111111000010111111011111111
+00100000011110100000000000000000
+00011111111000001000010000000001
+00100000010000000010110011011101
+00100000010000000010110011011101
+00011000110000100000101000000000
+00100000001000000010110011111010
+01101111111000010000011011000111
+00100000001000000010110100000110
+01000111001011001100000000101011
+01101111111000010100001011110111
+10011000000000000000110000000000
+11101111111000010000000000000110
+00011111111000010111111011111111
+00100000001110100010110100001111
+10011000010001100111110000000000
+00100000001000101010110100010000
+00100000010000000010110011011101
+00100000010000000010110011011101
+00100000001000000010110100000111
+00100000001000000111110111001000
+11101111111000001000000000000110
+01100111111000001000011011001101
+00011111111000100111001000000000
+11011000101000000000011011001110
+00100000010000000111110011001100
+11101111111000001000000000000110
+01100111111000001000011011000110
+00100000010000000111110001101101
+00100000001000000111110111001010
+00100000010000000010110111000111
+01101000010010010100001110011000
+01101111111000001100001100100001
+11000010100000011010110101000010
+00100000010000000010110011010010
+00100100001000101010111000000011
+00100000010101000010110101001000
+00100000011101000000000000000000
+00100000010000000010110011011101
+00011000110000001000110111111110
+11101111111000010000000000000110
+11011000010000000010101000000000
+10011000010001100111110000000000
+00100000001000101010110100110110
+00011000110000100010011000000000
+00100000010000000010111001000110
+00011010011000100000110000000000
+11101000010000001000000000000110
+00011000010000001000010000000001
+00100000010000000111110110110000
+00011111111000100010011000000000
+00011111111000100010001000000000
+00100000010000000111110001101101
+00100000010000000010111000010000
+01011000000000000000000000001011
+11100111111000001000000000000101
+00011010011000001111001111111111
+00100000010000000111110001100111
+00100000001000000111110011011010
+00100000010000000010111001000110
+01101000010010001100001001101011
+00011000010000001000010000000001
+00100000010000000111110110110000
+00011111111000100010011000000000
+00011111111000100010001000000000
+00100000010000000010111000010000
+01011000000000000000000000001011
+11100111111000001000000000000101
+00011010011000001111001111111111
+11011000110000000100001001101100
+00100000001000000111110011011010
+01101111111000010100001100110010
+10011000010001100111110000000000
+00100100001000101010110100011101
+00100100001101000010110100011101
+01110000000000011011100100000101
+00100000001000000010111000000101
+00011000110000001000110111111110
+11101111111000010000000000000110
+11000010100001110010110101000110
+00100000001000000111110110111100
+11101111111000010000000000000110
+01100111111000010000011010110101
+10011000000000000010001000000000
+01101000010010010100001110011000
+00100000010000000010110011001111
+00100000001110100010111000000011
+11101111111000001000000000000110
+10011010001001100111001000000000
+00100100001000010010111000000011
+00100000010000000111110001101101
+00100000010000000010111001000110
+00011111001000001000010000000001
+00100000010000000111110110110000
+00011111111000100010001000000000
+00011111111000100010011000000000
+00100000010000000010111000010000
+01011000000000000000000000001101
+11100111111000001000000000000101
+00011010011000001111001111111111
+01101000010010010000011010110101
+00100000010000000111110001100111
+10011000010000001000110000000000
+00100000001000000111110011001100
+00100000010000000010111001000001
+00100000010000000010111001001010
+00100000001000000010110101100110
+11011001011000000000000000000010
+01101000010010010000011010110001
+01100000010010010000011001111000
+00100000010000000010110011010010
+00011000110000001000110111111110
+00011000110000100111111000000000
+01100111111000010000011011000111
+00100000010000000010111000010111
+00100100001000010010110110011110
+01101000010010010000011001111000
+00100000010000000010110100000010
+00100100001110100010110110100001
+00100000010000000010111000011011
+00100100001000101010110110010100
+00011001011000100111111000000000
+11000000000000000010110110100001
+00100100001101000010110110001010
+01111000010101000111110000000000
+00100000010000000010111001000110
+00011111111000100010001000000000
+00100000010000000010111000010000
+01011000000000000000000000010001
+11100111111000001000000000000101
+01101111111000001000011011000110
+00011111111000001010001000000100
+11100010001000001000000000000101
+00100000010000000111110001101010
+00011010001001100111110000000110
+00100100010000101111110110111110
+00100000010000101111110111000000
+00100000010000000010111001000110
+00011111111000001111111111111110
+10011010001001101111110000000000
+00100000010000000111110101100010
+00011000000001111001011000000000
+00100000001000000010110110010000
+00100000010000000010110110011000
+00100100001110100010110110100001
+01101111111000010000011001111000
+00011111111000001111111111111111
+01100111111000010000011011001011
+00100000010000000010111000101010
+01101111111000010000011001111000
+01100111111000010000011011001001
+00100000010000000010111000100100
+00011001011000001001011111111111
+00100000010000000010111000010011
+00100000001000000010110101101101
+01101111111000001000011011001101
+00100000001000000010110110011001
+01101111111000001000011011000110
+00100000001101100010110110011100
+00011111111000001111111111111110
+00100000011000000000000000000000
+00011111111000001111111111110000
+00100000011000000000000000000000
+01101111111000010000011001111000
+01100111111000010000011011001011
+00100000001000000010110110100101
+01101111111000010000011001111000
+00011111111000001111111111111111
+01100111111000010000011011001011
+00100000001000000010110110100101
+00100000001101000010111000000011
+00100000010000000010111000101010
+00100000001000000010111000110100
+00011000110000100010001000000000
+01101111111000010100001100110101
+00011111111000001010010111111101
+00100000010000000010100100101001
+01000111001011010100000000101011
+00100000010000000010110111000111
+01101000010010010100001110011000
+00100000010000000010110011010010
+00100100001000101010110111000101
+00100000010101000010110111000001
+00100000011101000000000000000000
+01101111111000001100001100100001
+11000011000000100010110110111100
+01101000010010010100001110011000
+01101111111000010100001100110010
+10011000010001100111110000000000
+00100100001000101010110110111100
+00100000010000000010110111000111
+00100100001101000010110110111100
+00100000001000000010110101000110
+00011000000000000010001000000001
+00100000010000000010111000010000
+01011000000000000000000000010011
+11100111111000001000000000000101
+00100000011000000000000000000000
+00011000110000001000110111111110
+11101111111000010000000000000110
+11000010100001111010110101000110
+00100000001000000111110110111100
+01110000000000011011100100000001
+00100000001000000010111000000101
+01000111001011011100000000101011
+00100000010000000111110110111100
+01101111111000001100001011111110
+11000001000000000000000000000000
+01101111111000001100000001000000
+11000011100000100000000000000000
+00100000001000000111110110111010
+00011000110000001010001000000010
+01101111111000010100001100110101
+00011111111000001010010111111011
+00100000010000000010100100101001
+00100000001000000010110111010011
+01101111111000010100001100110101
+00011111111000100010001000000000
+00100000010000000010111000010000
+01011000000000000000000000010111
+11100111111000001000000000000101
+01101111111000010100001110011000
+11100111111000010000000000000101
+01101111111000010100001100110101
+00011111111000001111001111111011
+01101111111000010100001100111001
+00011111111000001000110000000111
+11101111111000010000000000000110
+11100111111000010000000000000101
+00100000001000000111110011001100
+00011000000000000010001000000001
+00100000010000000010111000010000
+01011000000000000000000000011001
+11100111111000001000000000000101
+00100000011000000000000000000000
+01101111111000001100001110010110
+01111001001111111111111000000000
+01100111111000001100001110010110
+00100000011000000000000000000000
+00011000110000100010001000000000
+01101111111000010100001100110101
+00011111111000001010010111111101
+00100000001000000010100100101001
+00011000010000100010011000000000
+00011010001000001010001000000011
+00100000010000000010111000010000
+00011010001000001010001111111101
+01011000000000000000000000011011
+11100111111000001000000000000101
+00011010011000100000010000000000
+11100000010000010000000000000101
+00100000011000000000000000000000
+01101111111000001100001110010110
+01111001001000000111111000000000
+01100111111000001100001110010110
+00011000010000100010011000000000
+00011010001000001010001000000011
+00100000010000000010111000010000
+00011010001000001010001111111101
+01011000000000000000000000011101
+11100111111000001000000000000101
+00011010011000100000010000000000
+11100000010000010000000000000101
+00100000011000000000000000000000
+01000111001011100100000000101011
+01110000000000011011100100001010
+00011000000000000010001000000101
+00100000010000000010111000010000
+01011000000000000000000000000001
+11100111111000001000000000000101
+01101111111000001100001110010111
+11100111111000001000000000000101
+01101111111000010100001110011000
+11100111111000010000000000000101
+01101111111000001000000110111001
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000111001011101100000000101011
+00011000000000000010010000000100
+00100000001000000010100111111011
+01101000010010010000011001111000
+00011000010000001000010000000001
+01100000010010010000011001111000
+00100000011000000000000000000000
+01101000010010010000011001111000
+01101111111000010000011010110011
+10011000010001100111110000000000
+00100000011000000000000000000000
+01000111001011110100000000101011
+01101000010010001000011010110101
+11011010001000000000011010110110
+01101111111000001000011011001101
+00011111111000100111001000000000
+10011000010001100111110000000000
+00100100011000101000000000000000
+11011010010000000000011011001110
+00100000001000000111110101100100
+01000111001011111100000000101011
+01101111111000001000011011000110
+01100111111000001000011010100001
+00011111111000100111001000000000
+00100000010000000111110001100111
+00100000001000000111110011001100
+01000111001100000100000000101100
+00100000010000000111110001100100
+01101111111000010000011011001001
+11100111111000010000000000000101
+01101111111000010000011011001011
+11100111111000010000000000000101
+01101111111000001000011010100001
+00011111111000100111001000000000
+00100000010000000111110011001100
+00100000001000000111110001101010
+01000111001100001100000000101100
+00100000010000000111110001100100
+00100000010000000010101000100001
+00011000101000100111111000000000
+10011000110001100010001000000000
+00100000010000000010101000100100
+00011010001000100111111000000000
+11100111111000010000000000000110
+00011010001000001010001000000100
+00100000010000000010101000010110
+00011010001000100111111000000000
+11100111111000001000000000000110
+00100000011000000000000000000000
+00011111111011001111111000000000
+01100111111000010000011010110001
+11101111111000010000000000000110
+01100111111000010000011010110011
+00100000011000000000000000000000
+01000111001100010100000000101100
+01101111111000010100001011100011
+01101000010010010100001011100001
+00100000001000000111110110110000
+01000111001100011100000000101100
+00100000010000000111110001101101
+11011000101000000000011010110101
+01101111111000010100001100110101
+00011111111000001111111111111011
+11100111111000001000000000000101
+00011111111000100111001000000000
+00100000010000000111110001100111
+00100000001000000111110011001100
+01101111111000010000000001010000
+11000001100000100000000000000000
+01101111111000001100001110010110
+01111001001000000111111000000001
+01100111111000001100001110010110
+01101111111000011000000001010010
+01100111111000011100001110010111
+01111001001000000000000000001111
+11000000000010010010111001101110
+11000000001010010010111001110011
+11000000000011000010110111100001
+11000000000000010010101110101011
+11000000000011110010110111100110
+01111001001111111000000000001111
+01101111111000001100001110010110
+01111001001111111111111000000001
+01100111111000001100001110010110
+00100000011000000000000000000000
+01101111111000001100001110010110
+11000100000000001000000000000000
+01111001001000000000000000001111
+00100000010000000010111001111110
+00100000010000000010111010000100
+00100000010101000010111001100001
+01101111111000001100001110010111
+11000000000010010010110110101100
+00100000011000000000000000000000
+00100000010000000010111001110011
+00100000001000000010111001110000
+00100000010000000010111010000100
+00100100011101000000000000000000
+00100000001000000010110110101100
+01000111001100100100000000101100
+00100000010000000010111001110111
+11011010001000000000000001010101
+00100000001000000010100100101001
+01101111111000001000000001001101
+00011111111000001010010111111001
+00011111111000001111111111111100
+01100111111000010100001100110111
+01101000010010010000000001001110
+01100000010010010100001100110101
+00100000011000000000000000000000
+01101010010000001000000001001101
+01101111111000010100001100110111
+10011010010000001000010000000000
+01100000010010010100001100110111
+11011010001000000000000001001110
+00100000001000000010100100101001
+00100000010000000111110110111100
+01101111111000010100001100110111
+01101000010010010100001100110101
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000001000000111110110111010
+11101111111000001000000000000110
+11101000010000001000000000000110
+11101000010000010000000000000110
+11000000000010011010111010001111
+00100000011000000000000000000000
+11101111111000010000000000000110
+01100111111000010100001100111100
+01110000000001100110111101000000
+00100000001000000111100000101011
+11011010001000000000000000001100
+11011010011000000000000000010010
+00100000010000000010111010011011
+01011000000000000000000000001000
+11100111111000010000000000000101
+01101111111001000100001011010011
+11100111111001000000000000000101
+00100000011000000000000000000000
+00100000010000000010111010100011
+11011010010000000000000000000101
+00100000010000000010100111111011
+00011010011000100111111000000000
+11100111111000001000000000000101
+01101111111000001100001100111011
+11100111111000001000000000000101
+00100000011000000000000000000000
+01101111111000001100001100111011
+00011111111000001111111000000001
+01100111111000001100001100111011
+11000001100000000000000000000000
+01110000010000110011101100000001
+00100000011000000000000000000000
+01101111111000001100001011111110
+11000000000000000010111010111000
+11000000000000001010111010111011
+11000000000000010010111010111101
+11000000010000001010111010110001
+11000000010000010010111010110011
+11000000010000011010111010110110
+00100000011000000000000000000000
+01110000010000101100011100001101
+00100000001000000010111010111001
+01110000010000101100011100001101
+01110000010000101100010100000001
+00100000011000000000000000000000
+01110000010000101100011100001101
+00100000001000000010111010111110
+01110000010000101100011100000000
+01110000010000101100010100000011
+00100000011000000000000000000000
+01110000010000101100011100000101
+00100000001000000010111010111001
+01110000010000101100011100000101
+01110000010000101100010100000000
+00100000011000000000000000000000
+01101111111000001100010001101100
+01111001001000000111111000000000
+01100111111000001100010001101100
+00100000011000000000000000000000
+01101111111000001100010001101100
+01111001001111111111111000000000
+01100111111000001100010001101100
+00100000011000000000000000000000
+11101111111000001000000000000110
+11000000000000001010111011011100
+11000000000000011010111100000011
+11000000000000100010111100100100
+11000000000000101010111100110001
+11000000000000111010111110011010
+11000000000001000010111110000110
+11000000000001001010111110010110
+11000000000001010010111110011010
+11000000000001011010111110011010
+11000000000001100010111110011011
+11000000000001101010111110100000
+00100000011000000000000000000000
+00011000000000000010001000000010
+00100000010000000011000001000111
+01011000000000000000000000001011
+11100111111000001000000000000101
+01101111111000001100001011000111
+11100111111000001000000000000101
+00100000011000000000000000000000
+01100111111000001100001010111101
+11101111111000110000000000000110
+11100111111000110000000000000101
+01101111111000001100001011111110
+11000000000000000010111100110111
+00100000010000000010111011111110
+01101111111000001100010001101010
+00100000001110100010111011101000
+01101111111000001100001011000000
+11000011000000011100001100011111
+01101111111000001100001011111110
+11000011000000111100001100011111
+01110000010000101111110000000011
+01101111111000001100001010111110
+11000000000000000010111011110000
+11000000000000001010111011110000
+11000000000000011010111011110000
+01101111111000001100001011111110
+11000000000000010010111011110011
+11000001010000011000000000000000
+11011111111000000000000000000000
+01100111111000100100001011111111
+00100000011000000000000000000000
+01101111111000001100001100100001
+11000010100000000010111011111100
+11011010001000000100001011111111
+00011010001000100000101000000000
+11011111001000000000000000000011
+00100000010000000111110111101000
+01101111111000010100001100000001
+00011111111000010111111000000111
+01100111111000010100001100000001
+01110000000001100110111100110100
+00100000001000000111100000101011
+00011000000000000010001000000111
+00100000010000000011000001000111
+01101111111000111100001011000100
+11100111111000111000000000000101
+00100000011000000000000000000000
+01110000010000101111110000000101
+11011000101000000100001010011011
+00100000010000000111110010001111
+01101111111000001100001011111110
+11000000000000100010111100001011
+11000000010000011010111100001101
+11000000010000100010111100010000
+00100000001000000010111100010011
+01110000000001100110111101000011
+00100000001000000111100000101011
+01110000010000101111100100000010
+01110000010000101111101000001000
+00100000011000000000000000000000
+01101111111000100100001011111111
+00100000001110100010111100001011
+00100000001000000010111100001101
+01110000010000101111110000000110
+01101111111000001100001011111110
+11000010100000111010111100011100
+00100000010000000111001001010110
+00011000000000000010001000010001
+00100000010000000011000001000111
+01011000000000000000000000000011
+11100111111000001000000000000101
+00100000001000000111001101110101
+11011000101000000100001010101011
+00100000010000000111110111100111
+00100000010000000111000110110110
+00011000000000000010001000010001
+00100000010000000011000001000111
+01011000000000000000000000000011
+11100111111000001000000000000101
+00100000001000000111000111110010
+00011000110000100010001000000000
+01101111111000001100001011111110
+11000010100000111010111100111001
+00011010001000100000110000000000
+00100000010000000111001001001110
+00100000001000101010111101001110
+01110000000000011011101000000100
+00011000000000000010001000000010
+00100000010000000011000001000111
+01011000000000000000000000000101
+11100111111000001000000000000101
+01101111111000001000000110111010
+11100111111000001000000000000101
+01000111001100101100000000101100
+00011000000000000000111000000111
+00100000010000000111110011100000
+01110000010000101111110000000000
+01110000000001100110111100110000
+00100000001000000111100000101011
+01110000000000011011101000000101
+00100000001000000010111100101011
+11011000101000000000000101011000
+00011010001000100000110000000000
+00100000010000000111110010001111
+01101111111000001100001011111110
+11000000010000011010111101000101
+11000000010000100010111101000101
+00100000010000000111000101000000
+00100000010000000010111101010011
+01101111111000001100001011111110
+11000001110000010000000000000000
+01110000000001100110111100111011
+00100000001000000111100000101011
+00100000010000000111000110101011
+11011000101000000000011011010001
+00100000010000000111000111110010
+11011010001000000000011011010001
+11011010010000000100001010011011
+11011111001000000000000000010000
+00100000010000000111110101100100
+00100100001000101010111100101010
+00100000001000000010111101010011
+00100000010000000111001001001010
+01110000000001100110111100110001
+00100000010000000111100000101011
+01110000010000101001101000000001
+01110000010000101111110000001001
+00011000000000000010001000010001
+00100000010000000011000001000111
+01011000000000000000000000000100
+11100111111000001000000000000101
+11011000110000000100001010101011
+00100000001000000111110010001111
+00011000000000000010001000010001
+00100000010000000011000001000111
+01011000000000000000000000000110
+11100111111000001000000000000101
+01101111111000001100001100100001
+11000010100000001010111101100001
+11011000110000000100001010001010
+00100000001000000111110010001111
+11011000110000000100001100100010
+00100000001000000111110010001111
+11011000101000000100001100000011
+00011000000000000111001000001010
+00100000010000000111110111101000
+00011000000000000010001000001011
+00100000010000000011000001000111
+01011000000000000000000000000111
+11100111111000001000000000000101
+01101111111000010100001100000011
+11100111111000010000000000000101
+01101111111001000100001100000101
+11100111111001000000000000000101
+00100000011000000000000000000000
+00011000000000000010001000010001
+00100000010000000011000001000111
+01011000000000000000000000001000
+11100111111000001000000000000101
+01011000000000000000000000000000
+11100111111001000000000000000101
+11100111111001000000000000000101
+00100000011000000000000000000000
+00011000000000000010001000001000
+00100000010000000011000001000111
+01011000000000000000000000001001
+11100111111000001000000000000101
+01101111111000001100001011010010
+11100111111000001000000000000101
+01101111111000110100001011011011
+11100111111000110000000000000101
+00100000011000000000000000000000
+01110000000000011011101000001000
+00100000001000000010111100101011
+01101111111000001100001011001001
+01101000010010001100001011001001
+10011000010000010111111000000000
+00100000011000000000000000000000
+11011000101000000100001100001101
+00100000010000000111110010001111
+00100000010000000010111110000010
+00101111111011000000000000000001
+00100000001000001010111110000000
+01101111111000001100001111001011
+11000001100001010000000000000000
+00100000010000000010111110010000
+00100100011101000000000000000000
+00100000001000000100001100101001
+00100000010000000111110110111100
+01101111111000001100001011001011
+11000001000000000000000000000000
+01101111111000001100001011000010
+11000100000000001000000000000000
+00100000001000000111110110111010
+00100000010000000010111110000010
+00101111111011000000000000000001
+00100000001000001010111110000000
+00100000011000000000000000000000
+00100000011000000000000000000000
+11011000101000000000010111111110
+00100000010000000111110010000001
+01110000010000101111100100000010
+01110000010000101111101000000001
+00100000011000000000000000000000
+11011000101000000000011001011110
+00100000010000000111110010001111
+01110000010000101111101000000110
+01110000010000101111100100000010
+00100000011000000000000000000000
+00011000000000000010001001000001
+00100000010000000011000001000111
+01011000000000000000000000001100
+11100111111000001000000000000101
+11011000110000000100010010001111
+00100000001000000111110010000001
+00100000010000000111000101010111
+00011000000000000010001000010001
+00100000010000000011000001000111
+01011000000000000000000000001101
+11100111111000001000000000000101
+00100000001000000111000111110010
+01101111111000001100001011111100
+11000001011111111000000000000000
+11011000010000000000000000000011
+10011000010001100111110000000000
+00100100011000010000000000000000
+11011000111000000000000000000111
+00100000010000000111110011101111
+00100100011110100000000000000000
+00100000001000000010111110000000
+01000111001100110100000000101100
+00100000010000000010101000101000
+00100100011110100000000000000000
+01101111111000001100001011111100
+11000000000000000010111111000111
+11000000000000001010111111001101
+11000000000000010010111111000111
+11000000000000011010111111001111
+11000000000001001010111111010011
+11000000000001011010111111100011
+11000000000001100010111111100101
+11000000000001101010111111101100
+00100000011000000000000000000000
+01101111111000001100001011111101
+11000001100000100000000000000000
+01110000010000101111110111111111
+01110000010000101111110011111111
+01110000000001100110111100111111
+00100000001000000111100000101011
+01110000010000101111110000000010
+00100000001000000010111011010101
+01110000010000101111110000000100
+01011000000000010111011100000000
+11011000111000000000000000000111
+00100000001000000111110011100001
+01101111111000001100001011111101
+11000000000000100010111111010110
+00100000011000000000000000000000
+01101111111000001100001011111110
+11000010100000111010111111100001
+01110000010000101111110000001011
+00100000010000000010111101011001
+01110000000001100110111100101001
+00100000010000000111100000101011
+01101111111000001100001111001011
+11000001100001010000000000000000
+00100000010000000010111110010000
+00100000011101000000000000000000
+00100000001000000100001100101001
+01110000010000101111110000001100
+00100000001000000010111111011010
+01110000010000101111110000001100
+00100000001000000010111101100011
+01101111111000001100001011000011
+01101000010010001100001011001010
+10011000010000010111111000000000
+00101111111011000000000000000001
+00100000001000001010111111101110
+01110000010000101111110000001101
+00100000001000000010111101101111
+00100000010000000010111101110111
+00100000001000000010111111101110
+01000111001100111100000000101100
+00011000000000000000111000000111
+00100000010000000111110011100000
+01110000010000101111110111111111
+01110000010000101111110011111111
+01110000000001100110111100111110
+00100000001000000111100000101011
+01000111001101000100000000101101
+01101111111000001100001011111110
+11000100000000111000000000000000
+01101111111000001100001011111001
+11000001100000010000000000000000
+01110000010000101111100100000000
+01101111111000001100001011111010
+11000000000000001011000000111101
+11000000000000010011000001000100
+11000000000000011011000000110101
+11000000000000110011000000011010
+11000000000000111011000000010001
+11000000000001000011000000000111
+00100000011000000000000000000000
+01110000010000101111100100000000
+01110000010000101111101000000000
+01110000010000101111101100000000
+00100000011000000000000000000000
+01101111111000001100010011001111
+00011111111000100000111000000000
+00011111111000001111111000000001
+01100111111000001100010011001111
+01101111111000100100001011111111
+10101111111011111111111111111111
+01011000000000000000000010000000
+01111001001000001111111000000000
+01100111111000001100010011010000
+00100000001000000011000000111001
+01101111111000001100001011111011
+01110000010000101111101100000000
+11000000000000001011000000010110
+01110000010000101111100100000010
+00100000011000000000000000000000
+01110000000001100110111100110001
+00100000010000000111100000101011
+01110000010000101111110000001001
+00100000001000000010111110101011
+01101111111000001000010111111001
+11000000000000011011000000011110
+01110000010000101111100100000010
+00100000011000000000000000000000
+00100000010000000111000101111110
+01101111111000001100001011111110
+11000000010000011011000000100011
+11000000010000100011000000100011
+00100000010000000010111011110000
+00100000010000000111000101101011
+11011010001000000000011011010001
+11011010010000000000011001011110
+11011111001000000000000000010000
+00100000010000000111110101100100
+00100000001000101011000000101011
+01110000000000011011101000001011
+00100000001000000010111100101011
+00100000010000000111010001011011
+00100100001000101011000000101001
+01110000010000101001101000000001
+01101111111000001100001011111110
+11000000010000001011000000010110
+11000000010000011011000000010110
+11000000010000100011000000010110
+01110000010000101111100100000010
+01110000010000101111101000000111
+00100000011000000000000000000000
+01101111111000001100001011111110
+11000000010000011011000000111010
+11000000010000100011000000111010
+01110000010001001101000000000000
+00100000001000000010111100010011
+01110000010001001100111100000000
+11000001010000100000000000000000
+00100000001000000010111011110011
+01110000010000101111100100000010
+01101111111000001100010001101110
+11000000000000011011000001000001
+00100000011000000000000000000000
+01110000010000101111101000000010
+01110000000001011111100100000000
+00100000001000000111010100111100
+01110000010000101111100100000010
+01110000010000101111101000000011
+00100000001000000010111110100101
+01000111001101001100000000101101
+00011000000000000010010000000110
+00100000001000000010100111111011
+01101111111000001000000001001110
+11000000000000000011000001100001
+11000000000000001011000001101001
+11000000000000010011000001110001
+11000000000000011011000001110101
+11000000000000100011000010010011
+11000000000000101011000010011000
+11000000000000110011000010011100
+11000000000000111011000010100001
+11000000000001000011000010100010
+11000000000001001011000010100011
+11000000000001010011000010100100
+11000000000001011011000010101000
+11000000000001100011000010101001
+11000000000001101011000010101011
+11000000000010010011000010101100
+11000000000010011011000010101101
+11000000000010100011000010101110
+11000000000010101011000010110000
+11000000000010110011000010111011
+11000000000011000011000010111100
+01101010011000001000000001001110
+00100000001000000011000011011111
+11101111111001001000000000000110
+01100111111001001000000110011111
+11101111111000010000000000000110
+01100111111000010000000110001000
+01101111111000001000000101101000
+01111001001000000111111000000101
+01100111111000001000000101101000
+00100000011000000000000000000000
+11101111111000101000000000000110
+01100111111000101000000110011111
+11101111111000010000000000000110
+01100111111000010000000110001000
+01101111111000001000000101101000
+01111001001000000111111000000110
+01100111111000001000000101101000
+00100000011000000000000000000000
+01011000000000000000000000010100
+01100111111000010000000110010110
+01100111111000010100001011110101
+00100000011000000000000000000000
+11101111111001000000000000000110
+01100111111001000100001100000101
+11101111111000010000000000000110
+01100111111000010100001100000011
+11101111111001000000000000000110
+01100111111001000100001011100101
+11101111111000100000000000000110
+01100111111000100100010001011110
+00100000010000000011000011001100
+01000111001101010100000000101101
+01101111111000001100001011111100
+11000000000001001011000010000111
+01101111111000001100001100100001
+11000010100000001011000010001010
+01101111111000001100001111111010
+00100100010110100110111010010110
+01101111111000001100001010011010
+11000000000000000011000010001111
+01110000010000101111110100000001
+00100000010000000011000011011010
+00100000001000000111001001011100
+01110000010000101001101000000001
+11011000110000000100001100100010
+11011000101000000100001010001010
+00100000010000000111110010001111
+00100000001000000011000010000111
+01110000010000101111110100000000
+01110000010000101111110000000000
+01110000000001100110111101000001
+00100000001000000111100000101011
+11101111111001000000000000000110
+01100111111001000100001011101101
+11101111111000100000000000000110
+01100111111000100100010001100010
+00100000001000000111001001011100
+01101111111000001000000101101000
+01111001001000000111111000000100
+01100111111000001000000101101000
+00100000011000000000000000000000
+00100000011101001000000000000000
+01110000000001100110111100110010
+00100000010000000111100000101011
+01110000010000101111110100000100
+00100000001000000011000011011101
+00100000011000000000000000000000
+00100000001000000011000011100100
+00100000011000000000000000000000
+01110000010000101111110100000010
+00100000010000000011000011101011
+01110000000001100110111100110011
+00100000001000000111100000101011
+00100000011000000000000000000000
+00100000011101001000000000000000
+00100000001000000011000011101101
+00100000011000000000000000000000
+00100000001000000011000011111001
+00100000011000000000000000000000
+00100000010000000011000010110000
+00100000001000000011000011111101
+11101111111001000000000000000110
+01100111111001000100001110111000
+01101111111000010100001110111000
+01101000010010010100001111000100
+00100000010000000111110110110000
+01100111111000010100001110111000
+01101111111000010100001110111100
+01101000010010010100001111000000
+00100000010000000111110110110000
+01100111111000010100001110111100
+00100000011000000000000000000000
+00100000001000000011000100000011
+11101111111000010000000000000110
+01100111111000010000000110011111
+11101111111000010000000000000110
+01100111111000010000000110001000
+00100000011110100000000000000000
+01101111111000001000000101101000
+01111001001000000111111000000111
+01100111111000001000000101101000
+00100000011000000000000000000000
+11011010011000000000000000010011
+11011010001000000000000000000010
+11011010010000000000000000000010
+00100000010000000010100111110101
+00011010011000100111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+11011000101000000100001011101101
+00011000000000000111001000001000
+00100000010000000111110111101000
+11011000101000000100010001100010
+00011000000000000111001000000100
+00100000010000000111110111101000
+11011010001000000000000000001101
+11011010010000000000000000000100
+00100000010000000010100111110101
+01101111111001000100001011101101
+11100111111001000000000000000101
+01101111111000100100010001100010
+11100111111000100000000000000101
+00100000011000000000000000000000
+01110000010000101111110100000101
+11011010010000000000000000000101
+00100000001000000011000100001101
+11011010010000000000000000000110
+00100000001000000011000100001101
+11011010001000000000000000000010
+11011010010000000000000000000111
+00100000010000000010100111110101
+11100010011000001000000000000101
+00100000011000000000000000000000
+11011010001000000000000000001001
+11011010010000000000000000001001
+00100000010000000010100111110101
+01101111111001000100001110101110
+00011111111000011111111000000001
+11100111111001000000000000000101
+00100000011000000000000000000000
+11011010010000000000000000001011
+00100000001000000011000100001101
+11011010001000000000000000000110
+11011010010000000000000000001100
+00100000010000000010100111110101
+01101111111000101100000101011110
+11100111111000101000000000000101
+00100000011000000000000000000000
+11011010001000000000000000000010
+11011010010000000000000000001101
+00100000010000000010100111110101
+01011000000000000000000000000110
+11100111111000001000000000000101
+00100000011000000000000000000000
+11011010010000000000000000010011
+00100000001000000011000100001101
+11011010010000000000000000010100
+00100000001000000011000011111110
+11011010010000000000000000010101
+11011010001000000000000000001001
+00100000010000000010100111110101
+01101111111001000100001111000000
+11100111111001000000000000000101
+00100000011000000000000000000000
+11011010001000000000000000000011
+11011010010000000000000000010111
+00100000010000000010100111110101
+01101111111000001100001110110110
+00011111111000010111111000000111
+11100111111000001000000000000101
+01101111111000001100001110110111
+00011111111000010111111000000111
+11100111111000001000000000000101
+00100000011000000000000000000000
+11011010001000000000000000000001
+00100000001000000010100111110101
+01000111001101011100000000101101
+11000101000100111011001110100011
+00100000001000000011011000000011
+01000111001101100100000000101101
+01111000010001001111110000000000
+01111000010000111111110000000000
+01011000010101010101010101010101
+10011000000000000001111000000000
+01101111111000001100010110001101
+00100000001000000010010111001000
+01000111001101101100000000101101
+01101111111000001100010110110111
+00100000010000000010010110100100
+01101111111000100100010110001111
+10011000000000000001001000000000
+00100000010000000010000101100000
+01101000010010001100010110001101
+00100000010000000010010111001101
+00100000010000000011000100010010
+11000101100101111011000100100110
+01111000001111001111110000000000
+00100000000000000000000000011110
+00100000010000000011000100010010
+01111000010101111111110000000000
+01111000001001101111110000000000
+01111000001100001111110000000000
+01111000010100000111110000000000
+01111000001010000111110000000000
+01101111111000010100010110001011
+10011000000000000011011000000000
+00110111110000011000010000000000
+00100100001011000011000110000000
+00100000010000000110100001110111
+11000101000101111011000100110101
+01101111111000001100010111001010
+00100100001110100011000100110101
+01111000010001101111110000000000
+01111000001001011111110000000000
+01111000001000111111110000000000
+01111000001001001111110000000000
+00100000010000000011000101111101
+01100111111000001100010110101101
+01101000010010001100010110101100
+10011000010001100111110000000000
+00100100001000101011000110001000
+01000111001101110100000000101101
+01111000010110001111110000000000
+00101000000011111111111000101111
+00100000010000001011000101101111
+00100000001110001011000110001010
+00100000010000000011000101111101
+01100111111000001100010011110111
+11000101000100111011000101001000
+01101111111000001100010011110111
+01101000010010001100010110001001
+10101000010000000000111000000000
+00100100001000001011000110001100
+00100000010000000011000101111101
+00101000000011111111111000101111
+00100000010000001011000101111000
+11100111111000001000000000000101
+00011111111010010111111000000000
+00011111111001100111110000011111
+00100100001000010011000110001110
+00011111111000100111001000000000
+00100000001000101011000101010100
+00100000010000000011000101111101
+11100111111000001000000000000101
+11000010000000000011000101010001
+11000101000100111011000101011001
+00011000101000100010001000000000
+00100000010000000011000101111101
+01100111111000001100010111010011
+00011010001000100000101000000000
+00001001100000000000000000011000
+00011111111011110111111000000000
+00011111111100010111111000000000
+11100111111000011000000000000101
+01101111111000001100010111001010
+00100100001110100011000101101101
+01111000010001011111110000000000
+00101000000011111111111000100111
+00100000010000001011010111001000
+00100000001000110011000110010000
+00100000010000000110100001110110
+01000111001101111100000000101101
+01111000001101111111110000000000
+00100000010000000010011010111011
+11000110000100111000000000000000
+01101111111000001100010111010011
+01101000010010001100011000101010
+10011000010001100111110000000000
+00100000010000010111110110110010
+00100000001000000011010111001011
+01111000010001101111110000000000
+00100000001000000011000101100000
+00100000010000000011000101111101
+00011111111001100111110000000001
+00100000001000010111110111000010
+00011111111000001111111111111110
+11000101000100111011000101110110
+00100000001110100111110111000010
+00011111111000001111111111111111
+01100111111000001000011001111000
+00100000011000000000000000000000
+00011111111000010111111000000111
+01101000010010001000011001111000
+00011000010010011000010000000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+00001001100000000000000000001000
+00011001100010010111111000000000
+00100000011000000000000000000000
+01110000010001011100101100000001
+00101000000011111111111000100111
+00100000010000001011010111100011
+01000111001110000100000000101110
+00100000010000000010010110111100
+01111000010011011111110000000000
+01111000010001011111110000000000
+00100000001000000010000011001111
+01110000010001011100101100000010
+00100000001000000011000110000011
+01110000010001011100101100000011
+00100000001000000011000110000011
+01110000010001011100101100000100
+00100000001000000011000110000011
+01110000010001011100101100000101
+00100000001000000011000110000011
+01110000010001011100101100000110
+00100000001000000011000110000011
+00100000010000000010000101100000
+01101000010010001100010110001101
+00100000001000000010000111111001
+01000111001110001100000000101110
+01101111111000001100010110111000
+00100000010000000010010110100100
+01101111111000100100010110001111
+10011000000000000001001000000000
+00100000010000000011000100010010
+00100000010000000011000110010010
+01111001001000000010101000000000
+01111000001011101111110000000000
+01111000001100000111110000000000
+01111000010100001111110000000000
+00100000010000000110100001111101
+01111000010111010111110000000000
+11000101000101111011000111000111
+11000101000101101011000111011001
+00011001001100010111111000000000
+00011111111011001111111000000000
+00011111111100011111111000000000
+00001000000000001000011000101000
+01000111001110010100000000101110
+11000101000101111011000110101110
+01101111111000001100010111001010
+00100100001110100011000110101110
+01111000010011101111110000000000
+01111000001011011111110000000000
+01111000001000111111110000000000
+01111000001001001111110000000000
+01101111111000001100010110001010
+10011000000000000111001000000000
+11011000110000000100010100111001
+11101111111000001000000000000110
+00001000000000001000011000001000
+11000010000000000011000110110011
+01111000001001000111110000000000
+00001000000000001000011000011000
+01111000010001000111110000000000
+11000101100101111011000110111101
+01111000010000111111110000000000
+01011000000000000000000000000000
+00001000000000001000011000000011
+00110111110100111000001000000000
+00100000000000000000000001100100
+01111000010111010111110000000000
+01111000010011101111110000000000
+01101111111000001100010111001010
+00100100001110100011000111000100
+01111000010011011111110000000000
+01111000010111000111110000000000
+00100000010000000010000101100000
+00100000001000000110100001111011
+11011111001000000000000000001010
+01011000000000000000000000111100
+00001000000000001000011000001000
+11000010000000000011000111001000
+01111000010011101111110000000000
+01111000001111000111110000000000
+00011001001100010111111000000000
+00011111111100010111111000000000
+00011111111100011111111000000000
+00001000000000001000011000100000
+11000101000101110011000111010110
+01011000000000000000000000000001
+00001000000000001000011000000101
+01111000001111010111110000000000
+00100000001000000011000110101000
+01011000000000000000000000000000
+00001000000000001000011000000101
+00100000001000000011000110101000
+01101111111000001100000101001000
+00011111111000110111001000000000
+00100000000000000000000000000010
+11000010000000000011000111011011
+00011001001100010111111000000000
+00011111111011001111111000000000
+00011111111100011000010000000000
+00011000010000100111111000000000
+00001000000000001000011000001000
+00011000010000100111111000000000
+00001000000000001000011000101000
+00100000001000000011000110101000
+01000111001110011100000000101110
+01101111111000001100010110111000
+11000010100000010011001000000110
+01101111111000001100010110001000
+00011111111000001111111000000011
+01100111111000001100010110001010
+01101111111000001100010110101100
+01100111111000001100010100111001
+01101111111000001100010110001001
+11100111111000001000000000000101
+01101111111000001100010110001000
+00011111111010011111111000000000
+01101000010010001100010101111110
+00011000010000010000010000000011
+00011000010000111000010000000000
+10011000010000011111111000000000
+01101000010010001100010101111111
+10011000010000001111111000000000
+11100111111000001000000000000101
+01101111111000001100010110001000
+10011000000000000111001000000000
+11011000110000000100010100011001
+00100000010000000111110011011010
+01000111001110100100000000101110
+11000110100100111000000000000000
+01101111111000001000000000110101
+11100111111000001000000000000101
+01101111111000001100010110111000
+11000011100000010000000000000000
+01101111111000001100010110001010
+00011111111000001111111000000001
+01100111111000001100010110001010
+00100000011000000000000000000000
+01101111111000001100010110001000
+00011111111000001111111000000100
+11000101100100111011001000001010
+00011111111000001111111000000001
+01100111111000001100010110001010
+01101111111000001100010110101100
+01100111111000001100010100111001
+01101111111000001100010110001010
+00011111111000001111111111111110
+11100111111000001000000000000101
+01101111111000001100010110001001
+11100111111000001000000000000101
+01011000000000000000000000000000
+00100000001000000011000111110000
+01000111001110101100000000101110
+01101111111000001100010011111000
+00011111111010010111111000000000
+01100111111000001100010101111101
+00011111111000001111111000000001
+11011000110000000100010011111000
+10011000110000001000110000000000
+11101111111000011000000000000110
+01100111111000011100010110000000
+01101111111000001100010011111000
+00011111111000110111111000000000
+00011111111000010111111000000011
+01100111111000001100010110000110
+00100000011000000000000000000000
+01000111001110110100000000101110
+01101000010010001100010110001110
+00100000010000000011001000100111
+01100000010010001100010110001110
+00100000011000000000000000000000
+01000111001110111100000000101110
+00100000010000000011001000101100
+00011000010000001000010000000001
+00011000010000010000010000000011
+00100000011000000000000000000000
+01000111001111000100000000101111
+01101111111000001100010110001111
+00011111111000010111111000000011
+00011111111011111010001000000100
+01011000000000000100010110010011
+10011010001000001111111000000000
+10011000010000001000110000000000
+11101111111000001000000000000110
+01100111111000001100010110001101
+00100000011000000000000000000000
+01100111111000100100010110001111
+01000111001111001100000000101111
+11011010001000000000000000000000
+11011111001000000000000000000100
+11011000110000000100010110001111
+11101111111000001000000000000110
+10011010001000001010001000000000
+11000010000000000011001000111011
+00011010001000100111111000000000
+01100111111000010100010110101010
+01101111111000001100010110101010
+01101000010010001100010110101011
+10011000010000001111111000000000
+01100111111000001100010110101100
+00100000011000000000000000000000
+01000111001111010100000000101111
+00100000010000000111110110111100
+01101000010010100100010110100011
+00011100010000100111111000000000
+10011000010001100111110000000000
+00100100010000010011001001010101
+00011111111000100010010000000000
+01101111111000100100010110100011
+01101000010010001100010110100111
+10011000010000001000010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01111001001111111111111000011100
+01100111111000100100010110100011
+00100000001000000111110110111010
+00100000011000101000000000000000
+01111001001000000111111000011100
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000100100010110100011
+00100000011000000000000000000000
+01000111001111011100000000101111
+00111000000000000001001100000000
+00111000000001011001000010001011
+00111000000010110110000101010000
+00111000000011000011110100100000
+01100111111001001100010110010011
+00111000000000000011101000011010
+00111000000001001100010001010011
+00111000000010001101001100010010
+00111000000011000000000000000001
+11100111111000111000000000000101
+01101111111000001100010110111001
+00100000011110100000000000000000
+11011000110000000100010110111010
+11011000101000000100010110010011
+00100000001000000111110010001111
+01000111001111100100000000101111
+01011000010011100000000000011110
+01100111111000011100010110111011
+01011000000000110010001100000011
+11100111111000011000000000000101
+01011000001001010000011001000010
+11100111111000011000000000000101
+01011000000010010100110000000110
+11100111111000011000000000000101
+01011000001111000000100100100111
+11100111111000011000000000000101
+01110000010001011011100100000001
+00100000011000000000000000000000
+01000111001111101100000000101111
+11011000010000000110100101111000
+11000101000100111011001001111111
+11011000010000000001001011000000
+01101111111000001100010110110111
+11000011000000010011001001111111
+11011000010000000010111011100000
+01100000010010010100010110001011
+00100000011000000000000000000000
+01110000010001011011011100000001
+01110000010001011011100000000001
+00100000011000000000000000000000
+01110000010001011011011100000010
+01110000010001011011100000000010
+00100000011000000000000000000000
+01000111001111110100000000101111
+01110000010001011101000001001110
+01011000000100000001010100100000
+01100111111000011100010111001100
+01011000000000000000000000000101
+11100111111000001000000000000101
+00100000011000000000000000000000
+11011010011000000100010111011000
+11011010010000000011011001111010
+00100000001000000100001011100111
+01111001001000000000000000100110
+01101111111000001100010111111100
+01111001001111111111111000000010
+01111001001000000111111000000001
+01100111111000001100010111111100
+01011000000000000000000000000000
+01100111111000010100010111011110
+01101111111000010100010111010110
+01100111111000010100010111011000
+01110000010001011101010100000000
+00100000010000000011001011010110
+01110000010001010111111000000000
+01101111111000001100010111010000
+01100111111000001100010110001101
+01101111111000001100010111010001
+01100111111000001100000101000001
+01101111111000100100010111001100
+00100000001000000011001000110110
+01000111001111111100000000101111
+01110000010001011110001000000000
+01101111111000010100010111011010
+00011111111000001111111000000001
+01100111111000010100010111011010
+01101111111000001100010111011010
+00011111111000010111111011111111
+00100100011110100000000000000000
+01101111111000001100010111010100
+11000000011111111011001011111000
+11000000000000001011001010110010
+11000000000000010011001010110100
+11000000000000011011001010111010
+11000000000000100011001011000000
+00100000011000000000000000000000
+01110000010001010001100111111111
+00100000001000000011001011000001
+01101111111000001100010110101110
+00100000001110100011001010111000
+01101111111000100100011000000100
+00100000010000000011001000110110
+01110000010001010001100110101010
+00100000001000000011001011000001
+01110000010001010001100101010101
+01101111111000001100010110101110
+00100000001110100011001011000001
+01101111111000100100010111101000
+01100111111000100100010100011011
+00100000001000000011001011000011
+01110000010001010001100100100010
+01101111111000100100011000000100
+01100111111000100100010100011011
+01101111111000001100010110001001
+00011111111000010111111000000111
+01100111111000001100010100011010
+01110000010001010001111100000000
+01110000010001011000100000000111
+00100000010000000011000111100101
+00100000010000000011011001010001
+00100100011011000000000000000000
+00100100011101111000000000000000
+00100000010000000011010101111011
+00100000010000000011011001101110
+01000111010000000100000000110000
+01101111111000001100010111010100
+11000001011111111000000000000000
+11000000000000001011001011011011
+11000000000000010011001011011101
+11000000000000011011001011100011
+11000000000000100011001011101011
+00100000011000000000000000000000
+01110000010001011101010000000010
+01101111111000001100010110101110
+00100000011110100000000000000000
+01110000010001011101010000000001
+00100000011000000000000000000000
+01110000010001011101010000000010
+00100000001000000011011001001100
+01101111111000001100010110101110
+00100000001110100011001011100001
+01101111111000100100010101011111
+01100111111000100100010111101000
+01110000010001011101010000000011
+00100000001000000011011001001100
+01101111111000001100010110101110
+00100000001110100011001011101001
+01101111111000100100010101011111
+01101000010010100100011000000100
+10011000010001100111110000000000
+00100100011000101000000000000000
+01110000010001011101010000000100
+00100000001000000011011001001100
+01101111111000001100010110101110
+00100000001110100011001011110001
+01101111111000100100010101011111
+01101000010010100100010111101000
+10011000010001100111110000000000
+00100100011000101000000000000000
+01110000010001011101010011111111
+01110000000001100110111100111001
+00100000010000000111100000101011
+01011000000000000000000000000000
+01100111111000010100010111011000
+01101111111000100100010101011111
+00100000010000000011001000110110
+01101111111000001100010111111100
+01111001001111111111111000000001
+01100111111000001100010111111100
+00100000001000000011011001001100
+01110000010001100001011000000001
+01110000010001100001010100000000
+00100000011000000000000000000000
+01101111111000001100011000010101
+11000011100000001000000000000000
+01111001001000000111111000000001
+01100111111000001100011000010101
+01011000000000000000000000000000
+01100111111000011100010111010011
+01100111111000001100010111011110
+01100111111000001100010111011111
+01100111111000100100011000101100
+01110000010001100001000100000001
+00100000001000000011001010011100
+01110000010001100001000100000001
+01110000010001011000100000001000
+11011000110000000100010111010110
+11011000101000000100010100011001
+00100000001000000111110010001001
+01000111010000001100000000110000
+00100000010000000011001110111110
+00100000010000000011000100011001
+00100100001101111011001110111110
+00100000010000000011001100011110
+00100000010000000011001111110100
+00100000010000000011001110011001
+00100000010000000100100100111101
+01101111111000001100010110101110
+00100000011110100000000000000000
+01101111111000100100011000101100
+00100000011110100000000000000000
+00100000001000000011001000110110
+00100000010000000011001110111110
+00100000001000000011000110000011
+01110000010001100010001000000101
+11011000110000000100010011110111
+11011000101000000100010111101000
+00100000010000000111110010001001
+01000111010000010100000000110000
+01101111111000001100010111101010
+11000000010101010011001100101001
+11000000001010101011001100111010
+11000000000100010011001101011011
+11000000011111111011010110011011
+00100000011000000000000000000000
+01101111111000001100010111101011
+11000000000000001011001100101101
+11000000000000010011001100110101
+00100000011000000000000000000000
+01101111111000001100010111011110
+00100100011110100000000000000000
+01110000010001011101001100000001
+01110000010001011101011000000001
+01110000010001011101011110000000
+01101111111000110100010011110001
+01100111111000110100010111011000
+00100000011000000000000000000000
+01101111111000001100010111011111
+00100100011110100000000000000000
+01110000010001011101010000000001
+01110000010001011101011000000010
+00100000001000000011001100110001
+01101111111000001100010110101110
+00100000001110100011001101000000
+01101111111000100100010111101100
+01101000010010100100010011110001
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000001100010111101011
+11000000000000001011001101000100
+11000000000000010011001101010001
+00100000011000000000000000000000
+01101111111000001100010111011110
+00100100011110100000000000000000
+01101111111000001100010111010011
+11000000000000001011001101001001
+00100000011000000000000000000000
+01110000010001011101001100000010
+01101111111000001100010110101110
+00100000001110100011001100110000
+01110000010001011101011000000001
+01110000010001011101011110000000
+01101111111000100100011000101100
+01100111111000100100010111011000
+00100000001000000111110110111010
+01101111111000001100010111011111
+00100100011110100000000000000000
+01101111111000001100010111010100
+11000000000000001011001101010110
+00100000011000000000000000000000
+01110000010001011101010000000010
+01101111111000001100010110101110
+00100000001110100011001100111000
+01110000010001011101011000000010
+00100000001000000011001101001101
+01101111111000001100010110101110
+00100000001110100011001101100001
+01101111111000100100010111101100
+01101000010010100100011000101100
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000001100010111101011
+11000000000000001011001101100101
+11000000000000010011001101110010
+00100000011000000000000000000000
+01101111111000001100010111011110
+00100100011110100000000000000000
+01101111111000001100010111010011
+11000000000000010011001101101010
+00100000011000000000000000000000
+01110000010001011101111000000001
+00100000010000000011001100110000
+01101111111000001100010111010101
+00011111111000011111111000000001
+01100111111000001100010111010101
+01011000000000000000000000000000
+01100111111000010100010111010011
+00100000011000000000000000000000
+01101111111000001100010111011111
+00100100011110100000000000000000
+01101111111000001100010111010100
+11000000100000000011001101110111
+00100000011000000000000000000000
+01110000010001011101111100000001
+00100000010000000011001100111000
+01101111111000001100010111010101
+00011111111000011111111000000010
+01100111111000001100010111010101
+00100000010000000011001101101111
+00100000001000000100100100110111
+01101111111000001100011000010110
+11000001100000001000000000000000
+01101111111000001100011000010000
+00100100011110100000000000000000
+01101111111000001100010011111010
+11000000000000001011001110000110
+11000000000000010011001110001010
+00100000011000000000000000000000
+01101111111000001100011000101011
+11000100000000000000000000000000
+01111000010101111111110000000000
+00100000011000000000000000000000
+01101111111000001100011000101011
+11000100000000001000000000000000
+00100000001000000011001110001000
+01101111111000001100011000010000
+00100100011110100000000000000000
+01101111111000001100011000101011
+00011111111000011111111000000001
+01100111111000001100011000101011
+00100000011000000000000000000000
+01101111111000001100011000010000
+00100100011110100000000000000000
+01101111111000001100011000101011
+00011111111000011111111000000010
+01100111111000001100011000101011
+00100000011000000000000000000000
+01101111111000001100010111010101
+00100000011110100000000000000000
+01101111111000001100010111101011
+11000000000000001011001110001101
+11000000000000010011001110010011
+00100000011000000000000000000000
+01111001001000000000000000100111
+01101111111000001100000101000001
+01100111111000001100011000100011
+00100000001000000011010111010110
+01101111111000010100010111100000
+00100000001000000111110101111001
+01000111010000011100000000110000
+01110000010001011000100000000000
+01101111111000001100011000010001
+00100000011110100000000000000000
+01101111111000010100010111100010
+00100000001000000111110101111001
+00100000010000000011001111110001
+00100100001101111011001110111110
+00100000010000000011001111100011
+00100100001101000011001110111110
+01101111111000001100010101111101
+00100000001110100011001110111110
+00011111111000001111111000000010
+10011000000000000111001000000000
+11011000110000000100010011110111
+11011000101000000100010111101000
+00100000010000000111110011011010
+01110000010001100001001100000000
+01101111111000001100011000010000
+00100000010110100011001111111110
+01000111010000100100000000110000
+01101111111000001100010111101010
+11000000000000001011001111000100
+11000000000000010011001111010011
+11000000011111111011001111000010
+01000111010000101100000000110000
+11011000101000000100010011110111
+11011111001000000000000001000010
+00100000001000000111110010100001
+00100000010000000011001110011011
+00100000001000000011010110011011
+00100000010000000011001110001101
+00100000010000000011010100101110
+01101111111000001100011000001010
+01101000010010001100010111101000
+00101000010011111111111000000011
+01111001001000001111111000000000
+01100111111000001100011000001010
+11000000000000001011001111011001
+01101111111000001100011000010010
+01101000010010001100010111101000
+00101000010011111111111000000100
+01111001001000001111111000000000
+01100111111000001100011000010010
+01101111111000010100010111100100
+00100000001000000111110101111001
+00100000010000000011001110010011
+01101000010010001100010111101000
+00101000010011111111111000000011
+00100000001000001011001111100001
+01101111111000010100010111100110
+00100000001000000111110101111001
+01101111111000001100001111001011
+00011111111001100111110000001110
+00100000010000101100010001101001
+01101111111000001100010111011110
+00100100011110100000000000000000
+01110000010001011101111000000001
+01101111111000100100010111110010
+00100000001000000011010110100011
+01101111111000100100010111110010
+00100000001000000011010110101001
+00100000010000000111110110111100
+01101111111000001100010110000110
+01101000010010001100010110000111
+10011000010001100111110000000000
+00100100010000101111110110111010
+01101111111000001100010110000110
+01100111111000001100010110000111
+01101111111000011100010110000000
+01101000010010011100010110000011
+10011000010001100111110000000000
+00100100010000101111110110111010
+01101111111000011100010110000000
+01100111111000011100010110000011
+00100000011000000000000000000000
+00100000010000000011001110111110
+00100000010000000011000100011001
+00100100011101111000000000000000
+01101111111000001100010011110111
+01100111111000001100010110001001
+00100000010000000011001000010100
+01101111111000001100010011111000
+00101111111011111111111000000000
+00100000001000001011001111111101
+00100000010000000011001110100101
+00100000010000000011000111100101
+00100000010000000011000110010101
+00100000001000000011000110000011
+01110000010001100001010000000001
+01011000000000000000001010000000
+11011000111000000000000000001000
+00100000001000000111110011100001
+01000111010000110100000000110000
+01110000010001100001001100000001
+01110000010001100001011100000000
+01110000010001011010011111111111
+00100000001000000011001001011000
+01000111010000111100000000110000
+01101111111000001100011000010011
+00100000011110100000000000000000
+00100000010000000011001001000101
+00100100011101000000000000000000
+00100000010000000011010000010100
+01101111111000001100011000010111
+00011111111000001111111000000001
+00011111111000010111111000000001
+01100111111000001100011000010111
+11000000000000000011010000011001
+11000000000000001011010000011100
+00100000011000000000000000000000
+01101111111000001100011000100010
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100011000100010
+00100000011000000000000000000000
+01101111111000001100011000100010
+00100100011110100000000000000000
+00100000001000000011010001100000
+01101111111000001100011000100010
+00100100011110100000000000000000
+00100000001000000011001011111100
+01101111111000001100011000101010
+00100100011110100000000000000000
+01101111111000001100011000101000
+00100000010110100011010001001111
+01101111111000001100011000100101
+11000011100000000000000000000000
+01111001001000000111111000000000
+01100111111000001100011000100101
+01110000010001100010010000000001
+01110000010001100010100100000000
+01011000000000000000000000000000
+01100111111000010100011000100110
+01110000010001011010011101100000
+00100000001000000011001001011000
+01000111010001000100000000110001
+01101111111000001100011000010110
+11000001000000000000000000000000
+01101111111000001100011000101010
+00100100011110100000000000000000
+01101111111000001100011000101000
+00100100011110100000000000000000
+01101111111000001100011000100100
+00100000011110100000000000000000
+01101111111000001100011000101011
+00101111111000000000011000000011
+00100000001000001011010001001011
+00100000010000000011001001000101
+00100100011101000000000000000000
+01101111111000010100011000100110
+00011111111000001111111000000001
+01100111111000010100011000100110
+11011000010000000000011111010000
+10011000010001100111110000000000
+00100000001000010011010001001011
+01101111111000001100011000101001
+00011111111000001111111000000001
+00011111111000010111111000000001
+01100111111000001100011000101001
+11000000000000000011010100010100
+11000000000000001011001011111100
+00100000011000000000000000000000
+01101111111000001100011000100010
+00100100001110100011001011111100
+00100000001000000011010100010100
+01110000010001100010100000000001
+00100000001000000011010100010100
+01110000010001100010010000000000
+00100000011000000000000000000000
+01110000010001100010010000000001
+00100000011000000000000000000000
+01000111010001001100000000110001
+01101111111000001100011000010101
+11000011100000000000000000000000
+01111001001000000111111000000000
+01100111111000001100011000010101
+01101111111000001100011000100011
+01100111111000001100000101000001
+01110000010001100001000100000000
+01110000000010010000110100000000
+01110000010001100000101000000001
+01110000010001010111111000000000
+01101111111000100100010011110001
+00100000010000000011001000110110
+00100000010000000011001000100010
+00100000001000000011001110111110
+01110000010001100001000100000000
+01110000010001100001011000000000
+01110000010001100001010100000000
+00100000011000000000000000000000
+01101111111000001100011000010110
+11000001100000000000000000000000
+00100000010000000011010001010001
+00100000010000000011010100011000
+00100000001000000011001110101011
+01000111010001010100000000110001
+01101111111000001100011000010110
+11000001100000001000000000000000
+00100000010000000011001011111111
+00100000010000000011001100001111
+01101111111000001100011000010000
+00100100011110100000000000000000
+01101111111000001100010111010101
+00100000011110100000000000000000
+01110000010001100001001100000000
+00100000010000000011010001100000
+00100000010000000011001111111110
+00100000001000000011001001011000
+01101111111000001100011000010101
+11000011100000111000000000000000
+01111001001000000111111000000111
+01100111111000001100011000010101
+01101111111000001100011000100011
+01100111111000001100000101000001
+01110000010001100001011100000000
+01110000010001100001000100000001
+01011000000000000000000000000000
+01100111111000011100011000111101
+01100111111000111100011000011010
+00100000010000000011010100000110
+00100100011000101000000000000000
+01101111111000001100010110001110
+01100111111000001100011000011001
+01101111111000001100010110001101
+01100111111000001100011000011000
+00100000011000000000000000000000
+01000111010001011100000000110001
+01101111111000001100011000010110
+11000001100000111000000000000000
+00100000010000000011010001110110
+00100000010000000011010010101110
+00100000010000000011001111110001
+00100100001101111011001110111110
+00100000010000000011010100000110
+00100000010000101011001110101101
+01101111111000001100011000001010
+00100000010110100011010001001101
+01110000010001100001011000000000
+01101111111000001100011000010101
+01111001001000000111111000000000
+01100111111000001100011000010101
+01101111111000001100011000010001
+00011111111001100111110000000010
+00100100010000101011010100000100
+00100000010000000011001110111110
+00100000010000000011001111111110
+00100000010000000011010100000110
+00100000001000101011010010100111
+01101111111000100100010110001111
+01101000010010100100011000110100
+10011000010001100111110000000000
+00100000001000101011010010101010
+01101111111000100100010110001111
+01101000010010100100011000110000
+10011000010001100111110000000000
+00100000001000101011010010101100
+00100000011000000000000000000000
+01101111111000001100011000011001
+01100111111000001100010110001110
+00100000011000000000000000000000
+01101111111000001100011000011111
+00100000001000000011010010101000
+01101111111000001100011000011100
+00100000001000000011010010101000
+01000111010001100100000000110001
+01101111111000001100011000010111
+00011111111000001111111000000001
+00011111111000010111111000000011
+01100111111000001100011000010111
+11000000000000000011010011010010
+11000000000000001011010011101100
+11000000000000010011010010111000
+11000000000000011011010011101100
+00100000011000000000000000000000
+00100000010000000011001100110000
+01101111111000100100011000110000
+00100000001110100011010010101110
+00100000010000000011001000110110
+01101111111000001100011000011101
+00100000010110100011010011001101
+01101111111000001100011000011011
+01100111111000001100010110001101
+01101000010010001100011000111110
+01101010001000010100011001000100
+00100000010000000011010110101011
+01100000010010001100011000111110
+00100000010000000011010110110100
+01100000010010001100011000111011
+00011000010001100111110001010000
+00100100011000010000000000000000
+01101000010010001100011000011100
+00100000010000000011001000100111
+01100000010010001100011000011100
+01100111111000001100011000011011
+00100000011000000000000000000000
+01110000010001100001110100000001
+11011000010000000000000000000000
+00100000010000000011001000101100
+01100111111000001100011000011011
+00100000011000000000000000000000
+00100000010000000011001100111000
+01101111111000100100011000110100
+00100000001110100011010010101110
+00100000010000000011001000110110
+01101111111000001100011000100000
+00100000010110100011010011100111
+01101111111000001100011000011110
+01100111111000001100010110001101
+01101000010010001100011000111111
+01101010001000010100011001000110
+00100000010000000011010110101011
+01100000010010001100011000111111
+00100000010000000011010110110100
+01100000010010001100011000111100
+00011000010001100111110001010000
+00100100011000010000000000000000
+01101000010010001100011000011111
+00100000010000000011001000100111
+01100000010010001100011000011111
+01100111111000001100011000011110
+00100000011000000000000000000000
+01110000010001100010000000000001
+11011000010000000000000000000000
+00100000010000000011001000101100
+01100111111000001100011000011110
+00100000011000000000000000000000
+00100000010000000011001100110000
+01101111111000100100010011110001
+00100000010000000011001000110110
+01101111111000001100011000011010
+00100000010110100011010100000000
+01101111111000001100011000011000
+01100111111000001100010110001101
+01101000010010001100011000111101
+01101010001000010100011001000010
+00100000010000000011010110101011
+01100000010010001100011000111101
+00100000010000000011010110110100
+01100000010010001100011000111010
+00011000010001100111110001010000
+00100100011000010000000000000000
+01101000010010001100011000011001
+00100000010000000011001000100111
+01100000010010001100011000011001
+01100111111000001100011000011000
+00100000011000000000000000000000
+01110000010001100001101000000001
+01101111111000001100011000011000
+01100111111000001100010110001101
+00100000011000000000000000000000
+01110000010001100001000100000000
+00100000011000000000000000000000
+01101111111000100100010110001111
+01101000010010100100010011110001
+10011000010001100111110000000000
+00100000011000000000000000000000
+01101111111000001100011000010001
+11000001000000010000000000000000
+01101111111000001100011000010100
+00100000011110100000000000000000
+11011000111000000000000000001000
+00100000010000000111110011101111
+00100100011110100000000000000000
+01110000010001100001010000000000
+01110000010001100010001000000000
+00100000010000000011010000011111
+01000111010001101100000000110001
+01110000010001100001011000000111
+01110000010001100001010100000000
+00100000001000000011001110111110
+01000111010001110100000000110001
+01101111111000001100011000001010
+11000000000000001011010111101010
+01101111111000001100011000010010
+11000000000000001011010100101100
+01101000010010100100011000001011
+00011100010000100111111000000000
+10011000010001100111110000000000
+00100100010000010011001001010101
+00011111111000100010010000000000
+01101111111000100100011000001011
+01101000010010001100011000001111
+10011000010000001000010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01111001001111111111111000011100
+01100111111000100100011000001011
+01110000010001100000101000000001
+00100000001000000011001000100010
+01110000010001100001001000000000
+00100000001000000011001000100010
+00011100010000100111111000000000
+01100111111000100100011000001011
+00100000011000000000000000000000
+11011010011000000100010111011110
+11011010010000000011011001111010
+00100000001000000100001011100111
+01000111010001111100000000110001
+01111001001000000000000000100110
+01101111111000001100010111111100
+01111001001111111111111000000001
+01111001001000000111111000000010
+01100111111000001100010111111100
+01101111111000001100010111100011
+00100000001110100011010101001001
+01101111111000001100010111100010
+11000000000000001011010101000001
+11000000000000010011010101000001
+11000000000000011011010101010000
+11000000000000100011010101010000
+01101111111000001100010111010001
+01100111111000001100000101000001
+01101000010010001100010111101100
+01100000010010001100010110001110
+01101111111000100100010111100100
+00100000010000000011010101011010
+01100000010010001100010111101100
+00100000011000000000000000000000
+01110000010000010100000100000011
+01101000010010001100010111101101
+01100000010010001100010110001110
+01101111111000100100010111101000
+00100000010000000011010101011010
+01100000010010001100010111101101
+00100000011000000000000000000000
+01110000010000010100000100000011
+01101000010010001100010111101110
+01100000010010001100010110001110
+01101111111000100100011000000100
+00100000010000000011010101011010
+01100000010010001100010111101110
+00100000011000000000000000000000
+01101111111000100100010101011111
+00100000011110100000000000000000
+01100111111000100100010111101000
+00100000010000000011001000110110
+00100000001000000011001000100010
+01000111010010000100000000110010
+01101111111000010100010111100000
+11011000010000000000000111111000
+10011000010000010111111000000000
+00100000001110100011010101100101
+01101111111000010100010111100000
+00011111111000001111111000000001
+01100111111000010100010111100000
+00100000011000000000000000000000
+00100000010000000011010101111111
+00100000010000000011011001010001
+00100100001011000011010110000110
+00100100001101111011010110000110
+00100000010000000011011001101110
+01101111111000100100010111001100
+01101000010010100100010110001111
+10011000010001100111110000000000
+00100000001000101011001010010001
+01101111111000100100011000000100
+01101000010010100100010110001111
+10011000010001100111110000000000
+00100000010000101011010101010111
+01101111111000001100010111111100
+01111001001111111111111000000010
+01100111111000001100010111111100
+01011000000000000000000000000000
+01100111111000010100010111011000
+01100111111000010100010111100000
+01100111111000010100010111011110
+01110000000001100110111100111100
+00100000010000000111100000101011
+01000111010010001100000000110010
+11011111001000000000000000100000
+11011000101000000100010100011001
+00100000001000000111110010100011
+01110000010001010001100111111111
+01101111111000001100010110001001
+01100111111000001100010100011010
+01101111111000100100011000000100
+01100111111000100100010100011011
+01110000010001011000100000000110
+00100000001000000011000111100101
+01000111010010010100000000110010
+01101111111000001100010111100011
+00100000001110100011001000100010
+01101111111000010100010111100000
+00011111111000001111111000000001
+01100111111000010100010111100000
+00101111111011111111111000001001
+01101111111000001100010111100010
+11000000000000001011010110010011
+11000000000000010011010110010101
+11000000000000011011010110010111
+11000000000000100011010110011001
+00100000001000000011010101001001
+00100000001000001011010101001001
+00100000001000000011010101000001
+00100000001000001011010101010000
+00100000001000000011010101000001
+00100000001000001011010101010000
+00100000001000000011010101001001
+00100000001000001011010101010000
+00100000001000000011001010011100
+01101111111000001100010111101011
+11000000000000001011010110011111
+11000000000000010011010110100101
+00100000011000000000000000000000
+01101111111000001100010111011110
+00100100011110100000000000000000
+01101111111000100100010111101100
+01100111111000100100011000101100
+01100111111000100100011000110000
+00100000011000000000000000000000
+01101111111000001100010111011111
+00100100011110100000000000000000
+01101111111000100100010111101100
+01100111111000100100011000101100
+01100111111000100100011000110100
+00100000011000000000000000000000
+01000111010010011100000000110010
+00011010001000100111111000000000
+10011000010000001000101000000000
+01101111111000001000000000001001
+11100111111000001000000000000101
+00011000010000001000010000000001
+01101111111000001100010111010010
+10011000010000010000010000000000
+00100000011000000000000000000000
+01000111010010100100000000110010
+01101111111000001100010111010010
+00011111111000001111111000000001
+01100111111000010000011010011011
+00011111111000100111001000000000
+00011010001000100000110000000000
+11011111111000000000000000000000
+11101000010000001000000000000110
+10011000010000001111111000000000
+11000010000000000011010110111011
+01101000010010010000011010011011
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111000010000000000
+11000110000100111000000000000000
+00011000010000100111111000000000
+11000110100100110000000000000000
+00100000010000000010001100001000
+00011111111000100000010000000000
+00100000011000000000000000000000
+00100000001000000010001011101001
+01101111111000010100010111110000
+00100000001000000011010111011101
+00011111111000100010001000000000
+01101000010010001100010111101111
+01101111111000010100010111110000
+10011000010000001000101000000000
+00011010001000100111111000000000
+11100111111000001000000000000101
+00011000010000001000010000000001
+01101111111000001100010111010010
+10011000010000010000010000000000
+01100000010010001100010111101111
+00100000011000000000000000000000
+01101111111000010100011001000000
+00100000010000000011010111011101
+01101111111000010100011001000010
+00100000010000000011010111011101
+01101111111000010100011001000100
+00100000010000000011010111011101
+01101111111000010100011001000110
+00100000011110100000000000000000
+00011111111000100000101000000000
+01101111111000001100010111010010
+00011111111000001111111000000001
+00011111111000100111001000000000
+00100000001000000111110010100001
+00100000010000000011010111001000
+00100000011110100000000000000000
+01101000010010001100011000111001
+01101010001000010100011001000000
+00100000010000000011010110101011
+01100000010010001100011000111001
+00100000011000000000000000000000
+01101010001000010100011001000000
+00100000010000000011010110110100
+01100000010010001100011000111000
+00011000010001100111110001010000
+00100100011000010000000000000000
+00100000001000000011001000100010
+01101111111000100100010011110001
+01100111111000100100011000000100
+00100000001000000011010111001001
+01011000000000000010111110110010
+01100111111000011100011000001000
+01011000000100000000110000001100
+01100111111000011100010110100111
+01011000000000001011101110000000
+01100111111000011100011000001011
+01110000010001100010000100000101
+00100000011000000000000000000000
+01011000000000001111100000001100
+01100111111000011100011000001000
+01011000000111000001100100011001
+01100111111000011100010110100111
+01011000000000010111011100000000
+01100111111000011100011000001011
+01110000010001100010000100001011
+00100000011000000000000000000000
+11000110100100110000000000000000
+01101111111000001100010111111100
+11000010100000001011001010100011
+11000010100000010011010101011100
+01101111111000001100011000011000
+11000000000000001011011011000000
+01000111010010101100000000110010
+00100000010000000011011000100101
+00100100001101000011011010011111
+00100000010000000011011000111010
+00100000010000000011011011101000
+01101111111000001100001111001011
+11000000000001000110000000001010
+01101111111001000100011000001011
+01100111111001000100010110101111
+01101111111000010100011000011101
+01100111111000010100011000011111
+01101111111000010100010111111000
+00100000001000000111110101111001
+01000111010010110100000000110010
+00100000010000000011011010110100
+00100100011101000000000000000000
+00100000010000000011011010111110
+00100000010000000111110111100010
+01101111111000011100011000001000
+00100000001000000011011000100010
+01000111010010111100000000110010
+00100000010000000011011010110100
+00100100011101000000000000000000
+00100000010000000011011010111110
+01101111111001000100010110101111
+00100000010000000111110100100101
+01100000010010100100000010101001
+00100000001000000010010000011110
+00100000010000000011011000101000
+00100100011101000000000000000000
+00100000001000000011000111100101
+01101111111000010100010111110010
+00100000010000000111110101111001
+00100000001101000011011000101110
+01101111111000111100010100011010
+00100000011110100000000000000000
+00100000001000000111110110111010
+01110000010001100000001000000000
+00011010001000001111111000000001
+01100111111000001100010110001000
+00100000010000000011011000110110
+01100111111000001100010100011001
+00011010010000100000110000000000
+00011010001000100111001000000000
+00100000001000000111110011011010
+01101111111000001100010110001001
+00011111111000010111111000000111
+01100111111000001100010110001001
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000001100011000000001
+01100111111000010100011000100010
+00100000010000000011011001010001
+01101111111000001100010101111111
+11000000000000001011011001000110
+00100100001011000011011001011111
+00100100001101111011011001011111
+00100000010000000011011001101110
+01101111111000001100001111001011
+00011111111001100111110000001000
+00100000010000101110001001100010
+00100000010000000011011100011010
+00100000010000000011010101111011
+01101111111000001100010101111110
+00011111111000001111111000000001
+01100111111000001100010101111110
+00100000010000000011011010010010
+01000111010011000100000000110011
+01011000000000000000000000000000
+01100111111000001100010111111101
+01100111111000010100010111111110
+00100000011000000000000000000000
+01000111010011001100000000110011
+01111000010101111111110000000000
+00100000010000000011000110010101
+01101111111000001100010101111111
+11000000000000001011000110000011
+00011000000000000010101000000000
+01101111111000100100010110001111
+10011000000000000001001000000000
+01101000010010001000000000001000
+00100000010000000010000101101111
+00100000010000000010000110100110
+00100000010000000011000100100001
+00100000010101111011000110000011
+00100000011000000000000000000000
+01000111010011010100000000110011
+01101111111000001100001111001011
+11000000000001000110000011111001
+01101111111000001100011000000010
+00100100011110100000000000000000
+01101111111000010100010111111110
+00011111111000001111111000000001
+01100111111000010100010111111110
+01101111111000001100010111111111
+11000010100000100011011001110110
+00100000010000000011011001111100
+01101111111000010100011000100010
+00011111111000001111111000000001
+01100111111000010100011000100010
+00100000001000000011011000111101
+01000111010011011100000000110011
+00100000010000000011001000010100
+01101111111000001100010101111101
+00100000011110100000000000000000
+10011000000000000111001000000000
+11011000110000000100010011111001
+11011000101000000100010101011101
+00100000001000000111110011011010
+01000111010011100100000000110011
+01011000000000000000000000000000
+01100111111000010100010111111110
+01110000010001100000000000000001
+01110000000001100110111100111010
+00100000001000000111100000101011
+01000111010011101100000000110011
+01101000010010001100011000000001
+01101111111000001100011000100001
+10011000010001100111110000000000
+00100100001000010011011010011010
+00011000010000001000010000000001
+01100000010010001100011000000001
+01101111111000001100011000100001
+11000000000000101011011010001001
+01101111111000001100011000000001
+11000000000000110011011010010100
+11000000000001100011011010010100
+00100000011000000000000000000000
+01101111111000001100011000000001
+11000000000000011011011010010100
+11000000000000110011011010010100
+00100000011000000000000000000000
+11000101000101111011011010010000
+01100111111000001100010100111010
+00100000011000000000000000000000
+01100111111000001100010100111011
+00100000011000000000000000000000
+01101111111000001100010110001001
+11000100000000100000000000000000
+01101111111000001100010110001001
+01111001001111111111111000000100
+01100111111000001100010110001001
+00100000010000000011011010001101
+00100000010000000011011100011110
+00100000001000000011001000100010
+00100000010000000011011100001110
+00100000010000000011011100011110
+00100000001000000011001000100010
+01101111111000010100010111110100
+00100000001000000111110101111001
+01101111111000001100011000000010
+00100000010110100011011010100110
+01101111111000001100011000011000
+11000001000000001000000000000000
+00100000010000000011011010011101
+01101111111000010100010111111010
+00100000001000000111110101111001
+01110000010001011000100100000001
+01110000010001100000001000000001
+00100000010000000011011000110110
+01100111111000001100010100011001
+01011000000000000000000000000000
+01100111111000111100010100011010
+01101111111000100100011000000100
+01100111111000100100010100100001
+01110000010001011000100000001100
+01101111111000001100010110001001
+01111001001000000111111000000011
+01100111111000001100010110001001
+00100000010000000011000111100101
+00100000001000000011011000001100
+01000111010011110100000000110011
+01111000001101000111110000000000
+00100000010000000010010000001000
+01101111111000011100000010111101
+00100000001110100111110110111100
+01101111111000001100000010010100
+00100000001110100111110110111100
+01101111111000001100011000011000
+11000000000000001111110110111100
+00100000011000000000000000000000
+01101111111000010100010111110110
+00100000001000000111110101111001
+00100000010000000011001001000101
+00100100011101000000000000000000
+00100000010000000011011011010101
+01101111111000010100011000011001
+00011111111000001111111000000001
+01100111111000010100011000011001
+01101000010010010100011000011011
+10011000010001100111110000000000
+00100000010000101011011011001010
+00100000001000000011011000001001
+01110000010001100001100000000000
+01011000000000000000000000000000
+01100111111000010100011000011001
+01011000000000000000000001100100
+01100111111000010100011000011011
+01110000010001100001011100000000
+01101111111000001100010110101000
+01100111111000001100010110100111
+00100000011000000000000000000000
+01101111111000001100010110101001
+00100000001000000011011011010001
+01101111111000001100011000010111
+00011111111000001111111000000001
+01100111111000001100011000010111
+11000000000000100011011011010011
+11000000000000101011011011001111
+00100000011000000000000000000000
+01110000010001100001100000000001
+01011000000000000000000000000000
+01100111111000010100011000011001
+00100000011000000000000000000000
+11011111001000000000000000000010
+11011000110000000100010110001111
+00100000010000000111110110111010
+01011000000000001111111111111111
+11101000010000010000000000000110
+10011000010001100111110000000000
+00100100010000101111110110111100
+11000010000000000011011011100011
+00100000011000000000000000000000
+01000111010011111100000000110011
+01101111111000001100010000110111
+00100100011110100000000000000000
+01101111111000010100010011101001
+11000011100001011000000000000000
+01101010001000010100010111110000
+00100000010000000011010110110100
+01100000010010001100011000100100
+01101111111000001100011000101001
+11000101000100110011011011110011
+01101111111000001100011000101100
+10011000010001100111110000000000
+00100100001000010011011100001101
+01101111111000001100011000100110
+00011111111001100111110000000010
+00100100001000010011011011111011
+01101111111000001100011000100110
+11000000000000000011011100001110
+00100000011000000000000000000000
+01101111111000001100011000100110
+01101000010010001100011000100111
+10011000010001100111110000000000
+00100100011000101000000000000000
+01110000010001100010011000000000
+01101000010010001100011000100100
+01101111111000001100011000101000
+11000101000100110011011100000100
+01101111111000001100011000101011
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101111111000001100011000100101
+11000000000000000011011100010101
+00011111111000001111111111111111
+01100111111000001100011000100101
+11000000000000000011011100010101
+01110000010000010100000100000000
+00100000011000000000000000000000
+01110000010001100010011000000000
+01101111111000001100011000100101
+11000000000000010011011100010011
+00011111111000001111111000000001
+01100111111000001100011000100101
+11000000000000001011011100001011
+01110000010000010100000100000110
+00100000011000000000000000000000
+01110000010000010100000110000101
+00100000011000000000000000000000
+01110000010001100010010100000001
+01110000010001100010011000000000
+00100000011000000000000000000000
+01101111111000001100011000100110
+00011111111000001111111000000001
+01100111111000001100011000100110
+00100000011000000000000000000000
+01101111111000001100011000100110
+00011111111001100111110000000010
+00100100010000010011011100100110
+01101111111000001100011000100110
+11000001000000000000000000000000
+00011111111000001111111111111111
+01100111111000001100011000100110
+00100000011000000000000000000000
+01110000010001100010011000000011
+00100000011000000000000000000000
+01101111111000001000100011110011
+01100111111000001000011100001001
+00011110000000100000110000000000
+00100000010000000111110010001110
+01101111111000010100100000100110
+00100000001000000111110101111001
+01110000010010011011100000011110
+00100000010000000011011110001100
+01101111111000001000011100001010
+11000000000000000011011100111001
+11000000010000000011110101100111
+11000000010000010011111011010100
+11000000011010001011011110011001
+11000000011010000011011110111010
+11000000011010010011011110011001
+11000000011010101011011110111011
+00100000011000000000000000000000
+11011000110000000000011100001110
+11011000101000000100100101011001
+00100000010000000111110010001111
+01110000010001111110010000000000
+00100000010000000011101110111111
+00100000010000000011101110110001
+00100000010000000011011101011110
+00100000010000000011011101001111
+00100000010000000011011101010100
+01110000010001111110010000000000
+01101111111000010100100000101000
+00100000001000000111110101111001
+01011000000000000000000000000000
+01100111111000010100100000000110
+00011000000010100111111000000000
+00011111111000010111111000011111
+00011111111000001111111000011110
+01100111111000001100100000000100
+00011111111000001111111000000101
+01100111111000001100100000000011
+00100000010000000011111001010011
+00100000001000000011101001110001
+01101111111000001000100101010001
+01110000010001111110010000000100
+11000001000000001000000000000000
+01110000010001111110010000000000
+00100000011000000000000000000000
+01011000000000000000000010000000
+01100111111000001000011100100011
+01011000000000000000000000000011
+11100111111000001000000000000101
+01011000000000000000000000000000
+11100111111000001000000000000101
+01101111111000011000011100001011
+11100111111000011000000000000101
+01110000000001110010001000000110
+00100000001000000100000110110101
+01101111111000010100100001001100
+11000011100000010000000000000000
+00100000010000000011111000111110
+00011010001000001010011000000110
+01011111111111111111111111111111
+11100111111001000000000000010011
+11100111111001000000000000000101
+11101111111000010000000000010001
+11100111111000010000000000010011
+00011010010000100111111000000000
+10011010001000001010001000000000
+11000010000000000011011101100001
+01101111111000010100100001001000
+00100000001000000111110101111001
+01011000000000000000000010000010
+01100111111000001000011100100011
+01011000000000000000000000000100
+11100111111000001000000000000101
+01101111111000001000011100001100
+11100111111000001000000000000101
+01110000000001110010001000000011
+00100000001000000100000110110101
+01011000000000000000000010000010
+01100111111000001000011100100011
+01011000000000000000000001001110
+11100111111000001000000000000101
+01101111111000010000011100001100
+11100111111000010000000000000101
+01110000000001110010001000000100
+00100000001000000100000110110101
+01011000000000000000000010000010
+01100111111000001000011100100011
+01011000000000000000000001100000
+11100111111000001000000000000101
+01101111111000100000011100001100
+11100111111000100000000000000101
+01110000000001110010001000000110
+00100000001000000100000110110101
+01011000000000000000000001011110
+01100111111000001000011100100011
+01011000000000000000000000000000
+11100111111000001000000000000101
+01101111111000010000011100001100
+11100111111000010000000000000101
+01110000000001110010001000000100
+00100000001000000100000110110101
+01101111111000001100100000000100
+00100000011110100000000000000000
+00011111111000001111111000011110
+01100111111000001100100000000100
+00100000011000000000000000000000
+11011010011000000100100000000011
+11011010010000000011011111100100
+00100000001000000100001011100000
+11011010011000000100100000000100
+11011010010000000011011110010111
+00100000001000000100001011100000
+01101111111000010100100001010101
+00100000001000000111110101111001
+00100000010000000011011111000100
+00100100011101000000000000000000
+01000111010100000100000000110100
+01101111111000010000011100001110
+11011000010000001111000000011111
+10011000010001100111110000000000
+00100000001000101011011111011000
+11011000010000001111000000010100
+10011000010001100111110000000000
+00100000001000101011100100011100
+11011000010000001111000000010011
+10011000010001100111110000000000
+00100000001000101011100100000111
+11011000010000001111000000010111
+10011000010001100111110000000000
+00100000001000101011100000011001
+11011000010000001111000000011000
+10011000010001100111110000000000
+00100000001000101011100001000101
+11011000010000001111000000010110
+10011000010001100111110000000000
+00100000001000101011100001101010
+11011000010000000000010100110100
+10011000010001100111110000000000
+00100000001000101011011111001111
+11011000010000000000010100110011
+10011000010001100111110000000000
+00100000001000101011011111010010
+11011000010000000000000100100011
+10011000010001100111110000000000
+00100000001000101011011111010101
+01101111111000010100100000101100
+00100000001000000111110101111001
+00100000011000000000000000000000
+11101111111000010000000000000110
+11011000010000000000000110101000
+10011000010001100111110000000000
+00100100011000101000000000000000
+11101111111000001000000000000110
+01101000010010001100100110110110
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000001000000011101100101010
+00100000010000000111110110111100
+01101111111000010000011100001011
+11011000010000000000000110101000
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101000010010001100010011110001
+01101111111000001000011100001101
+10011000010001100111110000000000
+00100000011000101000000000000000
+01100111111000001100010011110001
+00100000001000000111110110111010
+00100000010000000011011111110100
+01101111111000010100100000111100
+00100000001000000111110101111001
+00100000010000000011011111110100
+01101111111000010100100000111110
+00100000001000000111110101111001
+00100000010000000011011111101110
+01101111111000010100100001000000
+00100000001000000111110101111001
+00100000010000000011011111110000
+01101111111000100000011100010000
+01100111111000100100010011110011
+00100000001000000011100010001001
+01011000000000000000000011010011
+01100111111000001000011100100011
+01011000000000000000000110101000
+11100111111000010000000000000101
+01101111111000001100010011110001
+11100111111000001000000000000101
+11100000010000010000000000000101
+00100000011000000000000000000000
+11011000111000000000000000000000
+11011000010000000000000000000011
+11011010001000001111000000001001
+00100000001000000011011111111100
+11011010001000000000000100000000
+00100000001000000011011111111100
+11011111001000000000000000001000
+00100000001000000011011111110110
+11011111001000000000000000001000
+00100000001000000011011111110110
+11011111001000000000000000000110
+00100000001000000011011111110110
+11011111001000000000000000000100
+00100000001000000011011111110110
+11011111001000000000000000000010
+00100000001000000011011111110110
+11011111001000000000000000000001
+00100000001000000011011111110110
+00011111001000001111111000000110
+01100111111000001000011100100010
+00100000010000000011011111011100
+11011000110000000000011100010000
+00100000010000000111110011011010
+00100000001000000100000110110101
+00100000010000000011100000001000
+11100010001000010000000000000101
+11100000010000001000000000000101
+01110000000001110010001000000111
+00100000001000000011100000000110
+00100000010000000011100000001000
+11100010001000010000000000000101
+11100000010000010000000000000101
+01110000000001110010001000001000
+00100000001000000011100000000110
+00100000010000000011111101101110
+00100000001000000100000110110101
+01101111111000001100011110101110
+01100111111000001000100100101011
+01011000000000000000000011110000
+01100111111000010000100101001100
+01101111111000001100010011110010
+00011111111000001111111000000001
+01100111111000001100010011110010
+11000000011000000011100000010111
+01011000000000000000000011010100
+01100111111000001000011100100011
+01011000000000000000000110101000
+11100111111000010000000000000101
+01101111111000001100010011110010
+11100111111000001000000000000101
+00100000011000000000000000000000
+01110000010001001111001010000000
+00100000011000000000000000000000
+00011000110000100010001000000000
+01101111111000001000011100001001
+11011000010000000000000000000110
+10011000010001100111111000000000
+01100111111000001100011000001000
+00011111111000100111001000000000
+00011010001000100000110000000000
+11011000101000000100011000001001
+00100000010000000111110011011010
+11011010010000000000000000000000
+11011111111000000100011000001001
+10011010010000001000010000000000
+11101111111000001000000000000010
+11000000011111111011100000111111
+00011111111000010111111001111111
+00100000010000000011100000110111
+00011010010000001010010000000001
+01101111111000001100011000001000
+10011010010001100111110000000000
+00100000001000010011100000100011
+00100000010000000011100101001010
+11011000010000001111000000010111
+00100000010000000011011111011100
+11011000010000000000000000000000
+11100000010000001000000000000101
+00011000101000100000010000000000
+00100000010000000011100100111011
+00011111111000001111111000000111
+01100111111000001000011100100010
+00100000001000000100000110110101
+00100000011110100000000000000000
+00011111111000001111111111111111
+00011111111011111111111000010010
+11011010001000000100010100000011
+10011010001000001010001000000000
+01011000000000000000000000000000
+11100111111000001000000000010001
+00100000011000000000000000000000
+11011111001000000000000000010010
+00011111001011111111001000001101
+11011000101000000100010100000011
+00100000010000000111110010100001
+00100000010000000011100101001010
+00100000001000000011100000101110
+11101111111000001000000000000110
+11000000011111111011100001011110
+01100111111000001100010111111111
+11101111111000001000000000000110
+00011111111000001111111111111111
+00011111111011111111111000010010
+11011000110000000100010100000011
+10011000110000001000110000000000
+11011000101000000100010111101101
+11011111001000000000000000010010
+00100000010000000111110011011010
+11011000010000001111000000011000
+00100000010000000011011111011100
+01101111111000001100010111101101
+00100000001110100011100001100111
+11011000010000000000000000000000
+11100000010000001000000000000101
+01101111111000001100010111111111
+11100111111000001000000000000101
+01101111111000001100010111101101
+11100111111000001000000000000101
+01101111111001000100010111101110
+11100111111001000000000000000101
+01110000000001110010001000010001
+00100000001000000100000110110101
+11011000010000001111000000011000
+00100000010000000011011111011100
+11011000010000000000000011111111
+11100000010000010000000000000101
+00011000101000100000010000000000
+00100000010000000011100100111011
+00011111111000001111111000001000
+01100111111000001000011100100010
+00100000001000000100000110110101
+11011000010000000000000010000000
+11100111111000001000000000000101
+00100000001000000011100001010110
+11101111111000001000000000000110
+01100111111000001100010111111111
+00011111111000010111111001111111
+00011111111000001111111111111111
+00011111111011111111111000010010
+11011000101000000100010100000011
+10011000101000001000101000000000
+01101111111000001100010111111111
+11100111111000001000000000000101
+00100000010000000011100101001010
+11011000010000001111000000010110
+00100000010000000011011111011100
+01011000000000000000000000000000
+11100111111000001000000000000101
+00011000101000100000010000000000
+00100000010000000011100100111011
+00011111111000001111111000000111
+01100111111000001000011100100010
+00100000001000000100000110110101
+00011100010000100000010000000000
+01101111111000100100010011110111
+10011000010001100111110000000000
+00100000010000010011100010001111
+00100000010000000011100010010110
+10011000010001100111110000000000
+00100000011000010000000000000000
+00100000010000000011100010001010
+01101111111000100100010011110011
+00011111111000001111111000000001
+01100111111000100100010011110011
+00100000001000000011100010011010
+00011100010000100111111000000000
+01100111111000100100010011110111
+01101111111000001100010011111010
+00011111111000010111111000001111
+01100111111000001100010011111010
+00100000011000000000000000000000
+00100000011000101000000000000000
+00011111111000100010010000000000
+01011000000100000000000000000000
+00011111111011010111111000000000
+10011000010000001000010000000000
+00011010010000100111111000000000
+00100000011000000000000000000000
+11011111001000000000000000010100
+00011111111000001111111010100000
+11000010000000000011100010010111
+00100000011000000000000000000000
+01011000000000000000000000001101
+01100111111000001100011000000010
+00011111111000001111111111111111
+00011111111011111111111000010010
+11011110000000000100010100000011
+10011110000000001110000000000000
+11101111111000001000000000110000
+00100100010110100011100010101000
+00011110000000001110000111101110
+01101111111000001100011000000010
+00011111111000001111111111111111
+00100000011110100000000000000000
+01100111111000001100011000000010
+00100000001000000011100010100000
+11011000111000000000000000000111
+10101111111011000000000000000000
+00100000011000001000000000000000
+00011111111000010111111001111111
+11011000010000000000000000001101
+10011000010001100111110000000000
+00100000011000010000000000000000
+00011110000000100000110000000000
+11011000101000000100010111101101
+11011111001000000000000000010010
+00100000010000000111110011011010
+01101111111000001100010111111110
+11000000001011001011100010111111
+01101000010010100100010011110011
+01101111111000100100010111101110
+10011000010001100111110000000000
+01101111111000001100010111110101
+00100000001000101011100011100011
+00100100001000010011100010111100
+00100000011000000000000000000000
+01011000000000000000000000000000
+11100111111000001000000000110000
+00100000011000000000000000000000
+01101111111000100100010011110011
+11011000010000000000000000111100
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001110111111000000000
+00100100011110100000000000000000
+01101111111000100100010011110011
+11011000010001010100011000000000
+10011000010001100111111000000000
+11011000010010010011101010000000
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001110111111000000000
+11011000010000010101000110000000
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001110010001000000000
+00011000000001111000111000000000
+01101111111000001100010111110010
+00100000001110100011100011010101
+10101111111011111111111111111111
+00100100011000001000000000000000
+00011010001000100111111000000000
+11011000010000000000000000111100
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111000010000000000
+01011000000000000000000111100000
+10011000010000001000010000000000
+01101111111000010100010111101110
+11011010001000000000111111111111
+10011010001000010111111000000000
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000001100010111110110
+00100000001000000011100011100011
+01100111111000001000011100001100
+01110000010001100000001000000001
+00011110000000100111111000000000
+01100111111000010000100100011111
+01101000010010001000011100001100
+01101000111000001100100001101001
+00100000010000000011011111101000
+01101111111000010000100100011111
+00011111111000100110000000000000
+00011110000000001000110000010001
+11101111111000001000000000000110
+11000000001011001011100011110100
+01011000000000000000000000000000
+11100111111000001000000000110000
+01101000111000001100100001101001
+00100000010000000011100011111111
+00100000001000000011100101001010
+01101111111000001100010111110010
+00100000001110100011100011101111
+11011000010000001111000000001001
+00100000010000000011011111011100
+01011000000000000000000000010001
+11100111111000001000000000000101
+11101111111000001000000000110000
+00011111111000011111111010000000
+11100111111000001000000000000101
+01110000000001110010001100001000
+00100000001000000011100000000110
+11011000010000001111000000100000
+00100000010000000011011111011100
+00011000101000100000010000000000
+00100000010000000011100100111011
+00011111111000001111111000000110
+01100111111000001000011100100010
+01110000000001110010001111010011
+00100000001000000011100000000110
+11011000101000000100010111101101
+11011111001000000000000000010000
+00100000010000000111110011011010
+01101111111000001100010111101101
+00011111111000010111111001111111
+01100111111000001100010111111111
+00011111111001100111110000001101
+00100100011000010000000000000000
+01101111111000100100010111101110
+11011000010000000000000000111100
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001110000010000000000
+10011000010001100111111000000000
+01100111111000100100010111101110
+01011000000000000000000000000000
+01100111111000010100010111111101
+11011010001000000100010111101101
+00100000010000000011100100110000
+11011000010000001111000000010011
+00100000001000000011100100101000
+11011000101000000100010111101101
+11011111001000000000000000010001
+00100000010000000111110011011010
+01101111111000001100010111101101
+00011111111000010111111001111111
+01100111111000001100010111111111
+00011111111001100111110000001101
+00100100011000010000000000000000
+01110000010001011111111001011001
+11011010001000000100010111101101
+00100000010000000011100100110000
+11011000010000001111000000010100
+00100000010000000011011111011100
+01011000000000000000000000000000
+01100111111000001000011100101001
+00011000101000100000010000000000
+00100000010000000011100100111011
+00011111111000001111111000000111
+01100111111000001000011100100010
+00100000001000000100000110110101
+00100000010000000011100100110111
+00011010001000100000110000000000
+11011000101000000100010100000011
+10011000101000001000101000000000
+11011111001000000000000000010010
+00100000010000000111110011011010
+00100000001000000011100101001010
+01101111111000001100010111111111
+00011111111000001111111111111111
+00011111111011111111111000010010
+00100000011000000000000000000000
+11011010001000000100010100000011
+11011010010000000000000000000000
+00011000010000100000101000000000
+11011111001000000000000000001101
+00011111001000001111001111111111
+11101111111000001000000000010001
+11000000011111111011100101000101
+00100000001110100011100101000101
+00011010010000001010010000000001
+11100111111000001000000000000101
+01011000000000000000000000010010
+10011010001000001010001000000000
+11000010000000000011100101000000
+00011010010000100111111000000000
+00100000011000000000000000000000
+01101111111000010100100001001010
+00100000001000000111110101111001
+01000111010100001100000000110100
+01011000000000000100101001011110
+01100111111000010100101011101101
+01011000000000000100101011101011
+01100111111000010000100100011001
+01110000000001111000011100010100
+01101111111000001100100000001000
+01100111111000001000011110001000
+01101111111000001000100100010110
+00011111111000001111111000001011
+00011111111000001111001111111110
+01100111111000001000011110001001
+00011111111000001111111111111111
+11100111111000001000000000000101
+01011000000000000000000000101010
+11100111111000001000000000000101
+11011000110000000100100110011000
+00100000010000000111110011001100
+01101010001000010000100100011001
+00100000010000000011100101100111
+00100000010000000111100010110010
+01101111111000010100010011101001
+00101111111011111111111000001001
+00100100011000001000000000000000
+00100000010000000011111001011110
+11011010001000000000011110000111
+00100000001000000111100010110010
+00011010001000001000110000000010
+11101111111000010000000000000110
+01100111111000010100001111111011
+11011010001000000000011110000111
+00100000011000000000000000000000
+01011000000000000100101001011110
+01100111111000010100001111111011
+00100000011000000000000000000000
+01101111111000001100100110110101
+11000001100000001000000000000000
+01110000010010011011010100000010
+00100000001000000011101011001110
+11011010001000000000011110001100
+11011000010000000000000000010010
+01011000000000000000000000100001
+00100100011000001000000000000000
+11011010001000000000011110011110
+01101000010010001000011110001001
+00011000010000001000010111101110
+01011000000000000000000000100010
+00100000011000000000000000000000
+11011000101000000100011000101011
+01011000000000000000000000000010
+11100111111000001000000000000101
+01011000000000000000000000000001
+11100111111000001000000000000101
+01011000000000000000000000000010
+11100111111000001000000000000101
+00100000011000000000000000000000
+11011000010000000001100000100111
+01011000000000000000000000000011
+11100111111000001000000000000101
+01011000000000000000000000000011
+11100111111000001000000000000101
+11100000010000010000000000000101
+00100000011000000000000000000000
+00100000010000000010010110111000
+00100000010000000010101011110101
+00100000010000000010011001001110
+00100100011101101000000000000000
+01101111111000001000000000000010
+00011111111000001111111000000001
+01100111111000001000000000000010
+01101111111000010100100000100100
+00100000010000000111110101111001
+00100000001000000010010110111100
+00100000010000000011100110100001
+00100000011101000000000000000000
+00100000010000000011100110001011
+00100000010000000010000000011000
+01101000010010010100001101000100
+11011000111000000000000000001010
+00100000010000000010000011011100
+00100000011101000000000000000000
+11011000111000000000000000001101
+00100000010000000111110011101111
+00100100001110100011100110010111
+00100000011000000000000000000000
+01101000010010010100001101000100
+11011000111000000000000000000100
+00100000010000000010000011011100
+00100000011101000000000000000000
+00100000010000000011100110101001
+01101111111000010100001101000100
+11011000111000000000000000001101
+00100000001000000111110011100001
+01101111111000001100011001001010
+00011111111000001111111000000001
+01100111111000001100011001001010
+01100111111000001000000000000111
+11000001100101000000000000000000
+01110000010001100100101000100101
+01110000000000000000011100100101
+00100000011000000000000000000000
+01101111111000001000000001001100
+00011111111000010111111000001111
+11000000000000000011100110110110
+11000000000000010011100110110110
+00100000011000000000000000000000
+11101000010000001000000000000110
+00011000010001100111110000000110
+00100000011000010000000000000000
+00011000010001100111110000100101
+00100100011000010000000000000000
+00011000010000001010001111111010
+00011000110000001010010000000110
+11101000010000001000000000010010
+00011000010001100111110000000001
+00100000011000010000000000000000
+00011000010001100111110000011110
+00100100011000010000000000000000
+00011000010000100111111000000000
+00100000011110100000000000000000
+01000111010100010100000000110100
+11101111111000001000000000000110
+11000000011111111011100111010001
+11000000000101010011111101111100
+00011000010000001111111000000001
+10011010001001100111110000000000
+00100000011000010000000000000000
+10011010010000001010010000000000
+00011000010001100111111111111111
+10011010001000001010001000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+00100000001000000011100110111101
+01110000000001111010101000000000
+00100000001000000011110011111010
+01101111111000001000000000000000
+00011111111000001111111000000001
+01100111111000001000000000000000
+01000111010100011100000000110100
+00100000010000000010010110111000
+11011111001000000000000000100111
+11011000110000000100000101101001
+11011000101000000000011110101010
+00100000010000000111110011001100
+01110000000000000000011100100101
+11011011011000000000011100001000
+01111000001010000111110000000000
+01111000010101101111110000000000
+00100000010000000010101011110101
+00100000010000000011100111110000
+00011000000010100111111000000000
+11011000010000000000000111111111
+10011000010000010111111000000000
+00011111111000001111111001100100
+00100000010000000111110010010001
+01101111111000001000000000000111
+00011111111000001111111000000001
+01100111111000001000000000000111
+11000000100101000011100111100000
+11011111001000000000000000100111
+11011000101000000100000101101001
+11011000110000000000011110101010
+00100000010000000111110011001100
+00100000001000000010010110111100
+11011000010000000000000000000010
+01100000010010001100000101101001
+01101000010010001100011000101010
+00011000010000001111111000000110
+01100111111000001100000101101010
+01101111111000110100001011011011
+01100111111000110100000101101011
+00011000010000100111001000000000
+11011000110000000100011000101011
+00100000010000000111110011001100
+00100000001000000010011100111110
+01000111010100100100000000110100
+01101000010010010000100011110100
+01101111111000001000100011110011
+00011000010000100000110000000000
+11011010001000000100011101101110
+11011110000000000100011101111110
+00100000010000000011110001011010
+00100000010000000111110110111100
+00011010011000100111111000000000
+10011110000000001000110000000000
+01101000010010100100011101111110
+01101111111000010000100100010000
+00011111111000100010001000000000
+11011111001000000000000000001010
+11101111111000100000000000010001
+00100000001110100011101000010110
+10011000010001100111110000000000
+00100000011000101000000000000000
+00011010001000001010001000000100
+11000010000000000011101000001001
+01101111111000010000100100010000
+00011111111000100000101000000000
+00011111111000001000110000000100
+11011111001000000000000000100100
+00100000010000000111110011001100
+11100000010000100000000000000101
+00100000001000000111110110111010
+11100000010000100000000000010001
+00100000001000000111110110111010
+01101111111000001100100001010111
+11000000000000001011101001000011
+00100000010000000011101000100001
+00100000010000000011101000100101
+00100000010000000011101000101100
+00100000010000000011101000110000
+00100000010000000011101000110100
+00100000010000000011101000110101
+00100000001000000011101000111001
+11011000010000000000000000011010
+11011010001000000100100000001010
+01011000000000011111111110100000
+00100000001000000110110001001101
+11011000010000000000000000010011
+11011010001000000100011111101111
+01011000000000011110000000000000
+00100000010000000110110001001101
+01101111111000001100011111111111
+01100111111000001100100001110001
+00100000011000000000000000000000
+11011000010000000000000000010000
+11011010001000000100100101011001
+01011000000000011110000100000000
+00100000001000000110110001001101
+11011000010000000000000000010000
+11011010001000000100011010100000
+01011000000000011110001000000000
+00100000001000000110110001001101
+00100000011000000000000000000000
+11011000010000000000000000000011
+11011010001000000100100110010010
+01011000000000011111000000000000
+00100000001000000110110001001101
+01101111111000010100100001001100
+11000011100000010000000000000000
+11011000010000000000000001000000
+11011010001000000000011010100001
+01011000000000011110010000000000
+00100000010000000110110001001101
+00100000010000000011111000111110
+11011000110000000000011010100001
+00011010001000001010001000000110
+00100000001000000011101001101011
+00100000010000000011101001001010
+00100000010000000011101001001110
+00100000010000000011101001010101
+00100000010000000011101001011001
+00100000010000000011101001011101
+00100000010000000011101001011110
+00100000001000000011101001100010
+11011000010000000000000000011010
+11011010001000000100100000001010
+11011010010000000000000000000000
+00100000001000000110110011100001
+11011000010000000000000000010011
+11011010001000000100011111101111
+11011010010000000000000000011010
+00100000010000000110110011100001
+01101111111000001100011111111111
+01100111111000001100100001110001
+00100000011000000000000000000000
+11011000010000000000000000010000
+11011010001000000100100101011001
+11011010010000000000000000101101
+00100000001000000110110011100001
+11011000010000000000000000010000
+11011010001000000100011010100000
+11011010010000000000000000111101
+00100000001000000110110011100001
+00100000011000000000000000000000
+11011000010000000000000000000011
+11011010001000000100100110010010
+11011010010000000000000001001110
+00100000001000000110110011100001
+01101111111000010100100001001100
+11000011100000010000000000000000
+11011000010000000000000001000000
+11011010001000000000011010100001
+11011010010000000000000001010001
+00100000010000000110110011100001
+00100000010000000011111000111110
+11011000110000000000011010100001
+00011010001000001010001000000110
+00011010001000100000101000000000
+00100000010000000111110010001111
+00011010010000100111111000000000
+10011010001000001010001000000000
+11000010000000000011101001101011
+00100000011000000000000000000000
+01101111111000001100100001010111
+11000000000000001011101010000011
+11000000000000010011101001110100
+00100000010000000011101001110111
+00100000010000000011101001111011
+00100000001000000011101001111111
+11011000010000000000000000010011
+11011010001000000100011111101111
+01011000000000011110000000000000
+00100000001000000110110000110011
+11011000010000000000000000010000
+11011010001000000100100101011001
+01011000000000011110000100000000
+00100000001000000110110000110011
+11011000010000000000000000010000
+11011010001000000100011010100000
+01011000000000011110001000000000
+00100000001000000110110000110011
+00100000010000000011101010000110
+00100000010000000011101010001010
+00100000001000000011101010001110
+11011000010000000000000000010011
+11011010001000000100011111101111
+11011010010000000000000000011010
+00100000001000000110110011010011
+11011000010000000000000000010000
+11011010001000000100100101011001
+11011010010000000000000000101101
+00100000001000000110110011010011
+11011000010000000000000000010000
+11011010001000000100011010100000
+11011010010000000000000000111101
+00100000001000000110110011010011
+01101111111000011100100110010010
+01101000010010011100110000100100
+10011000010001100111110000000000
+00100100011000010000000000000000
+00011111111000001111111010000000
+01100111111000011100110000100100
+01101111111000001100100001010111
+11000000000000001011101010011110
+11011000010000000000000000000011
+11011010001000000100110000100100
+01011000000000011111000000000000
+00100000001000000110110000110011
+11011000010000000000000000000011
+11011010001000000100110000100100
+11011010010000000000000001001110
+00100000001000000110110011010011
+00100000010000000011101010101101
+01101111111000001100100001010111
+11000000000000010011101010101001
+11011000010000000000000001000000
+11011010001000000000011010100001
+11011010010000000000000001010001
+00100000001000000110110011010011
+11011000010000000000000001000000
+11011010001000000000011010100001
+01011000000000011110010000000000
+00100000001000000110110000110011
+00100000010000000011111000111110
+11011000101000000000011010100001
+00011010001000001010001000000110
+00011010001000100000110000000000
+00100000010000000111110010001111
+00011010010000100111111000000000
+10011010001000001010001000000000
+11000010000000000011101010110000
+00100000011000000000000000000000
+01101111111000001100100001010111
+11000000000000001011101010111011
+01011000000000011110000000000000
+01100111111000011100010000011001
+00100000001000000110101111111010
+00100000011000000000000000000000
+01101111111000001100100001010111
+11000001100000010000000000000000
+01011000000000011101000000000000
+11011010001000000100010100000011
+11011000010000000000000000001101
+00011000010011111000010000010010
+00100000001000000110110000110011
+01101111111000001100100001010111
+11000001100000010000000000000000
+11011010001000000100010100000011
+11011000010000000000000000001101
+00011000010011111000010000010010
+01011000000000011101000000000000
+00100000001000000110110001001101
+00100000010000000100000001110011
+00100000001000000011101011010010
+00100000010000000011101100100011
+00100000001000000011101100011001
+01110000010001100100101100000001
+00100000011000000000000000000000
+01110000010001100100101100000000
+00100000011000000000000000000000
+11011010010000000011101011010110
+11011010001000000000000000011101
+11011000111000000000000000001110
+00100000001000000011101100001110
+01101111111000001100011111100100
+11000000000000001011101011111101
+11000000000000011011101011011100
+11000000000000010011101100001101
+11000000000000000011101011011110
+00100000001000000011101011011110
+01110000010000111000100000000000
+00100000001000000011101011010000
+00100000010000000011100101101100
+11011010001000000000011110000111
+00100000010000000111100011011100
+00100100011101000000000000000000
+01101111111000001100100110110111
+11000010100000010011101011101111
+01101111111000001000011110000111
+00011111111000001111111111111111
+11100111111000001000000000010010
+00011111111000010111111001111111
+00100000010110100011101011110101
+01101111111000001100100110110111
+11000100000000000000000000000000
+11011000101000000100011000101010
+11011000110000000000011110001001
+00100000010000000111110010001101
+00100000001000000011100111010011
+11011010001000000000011110000111
+00100000010000000111100011001010
+00100000010000000111100011111010
+00100100011110100000000000000000
+00100000010000000011101011111011
+00100000001000000011101011010000
+11011010001000000000011110000111
+00100000010000000111100011001010
+00100000010000000111100011111010
+00100100011110100000000000000000
+01110000010001100100111100000100
+00100000001000000011101011010000
+01110000010010011011010100000000
+00100000011000000000000000000000
+00100000010000000011110011100000
+00100000010000000011110011101100
+00100000010000000011101100000101
+00100100011000101000000000000000
+01101111111000001100011111100100
+11000000000000011011101100001001
+11000000000000001011101100001011
+00100000011000000000000000000000
+01101111111000001100011001001110
+00011111111000001111111111111111
+01100111111000001100011001001110
+00100000011000000000000000000000
+01110000010001100100111101011000
+00100000001000000011101011010000
+01110000010001100100111100000110
+00100000001000000011101011010000
+00100000001000000011100111010011
+01101111111000001100011001001011
+11000001100000001000000000000000
+00011000000010100111111000000000
+00011111111000010111111000000111
+10011010001000001010001000000000
+00100000010000000111110011101111
+00100100011110100000000000000000
+00011010001000100111111000000000
+00100000010000000111110011100001
+00011010010000100111111000000000
+00100000001000000111110101111001
+11011010011000000100011001001100
+11011010010000000011101100011100
+00100000001000000100001011100111
+01101111111000001100011111100100
+11000001100000001000000000000000
+01101111111000001100011111100111
+01111001001000000111111000000000
+01100111111000001100011111100111
+01110000010001111110010000000011
+00100000001000000011101100110001
+11011010011000000100011001001111
+11011010010000000011101100100110
+00100000001000000100001011100000
+01101111111000001100011111100100
+11000000000000001011101100101111
+11000000000000000011101011111011
+00100000011000000000000000000000
+00100000010000000011111001011010
+00100000010000000100001000001011
+01110000010001100100111100000000
+00100000010000000011101011010000
+00100000001000000011101011111011
+01110000010001100100111000000110
+00100000001000000011101011001110
+01110000010001100100111000000110
+00100000001000000011101011001110
+11011010010000000011101100110111
+11011010001000000000000000100000
+11011000111000000000000000001111
+00100000001000000011101100010000
+01101111111000001100100110110101
+00100100011110100000000000000000
+00100000010000000100000001101110
+11011010001000000000011110000111
+00100000010000000111100011011100
+00100100011101000000000000000000
+01101111111000001000011110000111
+00011111111000001111111111111111
+11100111111000001000000000010010
+00100000010110100111100011001010
+11011000101000000100011000101010
+11011000110000000000011110001001
+00100000010000000111110010001101
+00100000001000000011100111010011
+00100000010000000011101101001011
+00100000010000000011101101010011
+00100000010000000011101101011001
+00100000010000000011101101011111
+00100000010000000011101101100111
+00100000001000000011101101101011
+00100000010000000011101101111000
+11011000110000000100011011000000
+11011111001000000000000000001111
+00100000010000000011101111100111
+00100000010000000011110000000001
+11011000110000000000000110111101
+11011000101000000100011010110000
+00100000001000000111110010001111
+00100000010000000011101101111011
+00100000010000000011101101110101
+00100000010000000011110000000001
+11011000110000000000000110111101
+11011000101000000100011001100000
+00100000001000000111110010001111
+00100000010000000011101101111011
+00100000010000000011101101111000
+00100000010000000011110000000001
+11011000110000000000000110111101
+11011000101000000100011010010000
+00100000001000000111110010001111
+01101111111001000100011010000000
+01100111111001000100011001011000
+01101111111001000100011010001000
+01100111111001000100011001010000
+11011000110000000100011001010000
+11011010001000000100011010110000
+11011110000000000100011001110000
+00100000001000000011110001001000
+11011000110000000100011010000000
+11011010001000000100011010110000
+11011110000000000100011010000000
+00100000001000000011110001001000
+11011000110000000100011001110000
+11011111001000000000000000010000
+00100000010000000011101111100100
+11011000110000000100011011011001
+11011111001000000000000000001001
+00100000010000000011101111100111
+00100000010000000011110000000001
+11011000110000000000000110111101
+11011000101000000100011010100000
+00100000001000000111110010001111
+00100000010000000011101101111001
+11011000110000000100011010000000
+00100000001000000011101111100011
+00100000010000000011101101110110
+11011000110000000100011010001000
+00100000001000000011101111100011
+11011000110000000100100000001010
+11011111001000000000000000000100
+00100000010000000011101111101010
+11011000110000000100100000001110
+11011111001000000000000000000110
+00100000010000000011101111101010
+11011000110000000100100000010100
+11011111001000000000000000010000
+00100000010000000011101111100100
+00100000010000000011101111110001
+00100000001000000011101111101100
+00100000010000000011101110010010
+11011010001000000100011111101100
+11011010010000000000000110111101
+11011111001000000000000000001011
+11101111111000010000000000010001
+11101000010000010000000000010010
+10011000010000101111111000000000
+11100111111000010000000000010001
+00011010001000001010001000000010
+00011010010000001010010000000010
+11000010000000000011101110001010
+00100000011000000000000000000000
+11011000110000000100011001110000
+11011111001000000000000000010000
+00100000010000000011101111100100
+11011000110000000100011011001111
+11011111001000000000000000001010
+00100000010000000011101111100111
+00100000001000000011110000000001
+11011000110000000100011111101111
+11011000101000000100011100001101
+00100000010000000111110010001111
+11011000110000000100011100001101
+11011010001000000100011100011101
+11011110000000000100011100101101
+00100000010000000011110001001010
+11011110000000000100011100111101
+11011010010000000000000000000001
+01011000000000000000000000000000
+00100000010000000011110001001100
+01101111111000001100011101001100
+00011111111000010111111001111111
+01100111111000001100011101001101
+11011110000000000100011101011110
+11011010010000000000000000000010
+01011000000000000000000000010000
+11011010001000000100011100111101
+00100000010000000011110001001100
+11011110000000000100011101001110
+11011010010000000000000000000011
+01011000000000000000000000010000
+11011010001000000100011101011110
+00100000001000000011110001001100
+11011000110000000100100101011001
+11011010001000000100011101101110
+11011110000000000100011101111110
+00100000010000000011110001001010
+11011000110000000100011110001110
+11011010001000000100011101111110
+11011110000000000100011110011110
+01011000000000000000000000000100
+00100000010000000011110001011010
+01101111111000001100011110101101
+00011111111000010111111000111111
+01111001001000000111111000000110
+01100111111000001100011110101110
+00100000011000000000000000000000
+11011000110000000100011111101111
+11011010001000000100011110101111
+11011110000000000100011110111111
+00100000010000000011110001001010
+11011000110000000100011111001111
+11011010001000000100011110111111
+11011110000000000100011111010100
+01011000000000000000000000000101
+00100000010000000011110001011010
+01101111111000010100010011101001
+11000011100001001000000000000000
+01110000010000111000100000000001
+00100000011000000000000000000000
+11011010001000000100100110011001
+01101111111000111100100110011111
+00100000001000000011101111010001
+11011010001000000000100100100011
+01101111111000111000100100101001
+01100111111000111000100011011010
+01011000000000000000000000000000
+01100111111000101000100011010001
+00100000010000000011101111011010
+01101111111000110000100011100001
+11101000010000110000000000010001
+10011000010000101111111000000000
+11100111111000110000000000010001
+00100000011000000000000000000000
+01101111111000100100100001101110
+01100111111000100000100011010110
+11011000110000000100011101001110
+00100000010000000111001101011111
+11011000110000000000100011010001
+00100000010000000111001101100001
+00100000010000000111001011010001
+11011000101000000000100011100001
+00100000001000000111001101110101
+11011111001000000000000000001000
+00100000010000000011101111110001
+00100000010000000011110000111001
+00100000001000000011101111101110
+00100000010000000011101111110001
+00100000010000000111110011011010
+00100000001000000011101111101110
+00100000010000000011101111110001
+00100000010000000011110000111001
+01011000000000000000000000101100
+11100111111000001000000000000101
+00011000101000100111111000000000
+01100111111000010100011011110011
+00100000011000000000000000000000
+00011000110000100000010000000000
+00011111001000100010001000000000
+01101111111000010100011011110011
+00011111111000100000101000000000
+01101111111000001100011011100010
+00100000010110100011101111111010
+00011000010000100000110000000000
+00011010001000100111001000000000
+00100000011000000000000000000000
+01110000010001101110001000000001
+00100000010000000011101111111110
+11011000101000000000011111010001
+00100000011000000000000000000000
+11011111001000000000000100000000
+11011000101000000000011111010001
+00100000001000000111110010100011
+00100000010000000011110000010111
+00100000010000000011110000110010
+01011000000000000000011111010001
+01100111111000010100011011111010
+00100000010000000100000100110100
+01101111111000010100011011111010
+00011111111000100000110000000000
+11011000101000000000001000110001
+00100000010000000111110010000001
+00100000010000000100000100111011
+01101111111000010100011011111010
+00011111111000001111111001000000
+01100111111000010100011011111010
+01101111111000001100011011110111
+00011111111000001111111111111111
+01100111111000001100011011110111
+00100100001110100011110000000110
+00100000010000000100000101110110
+11011010001000000000000110111101
+11011111001000000000000000100000
+00100000010000000111110010110001
+00100000011000000000000000000000
+01110000010001101110001000000000
+01101111111000010100011011110011
+00011111111000100000101000000000
+11011000010000000000000010000000
+11100000010000001000000000000101
+11011000010000000000011111010001
+10011000010001100111111000000000
+01100111111001000100011011100011
+00011111111010011000010000000000
+01100000010011000100011011101011
+00011111111100011010011000000000
+00011010011010110010011000000000
+00011111111000010111111000111111
+00011111111001100111110000110111
+00100100010000010011110000110000
+00011010011000001111111000000001
+01100111111000001100011011110111
+00011111111011111010001001000000
+00011111111100100010011000000000
+00011010011000001010011111111111
+01011000000000000000011111001101
+10011010001000001010001000000000
+01101111111000100100011011101011
+11100111111000100000000000010001
+00100000011000000000000000000000
+00011010011000001010011000000001
+00100000011000000000000000000000
+11011010001000000000011111010001
+11011111001000000000000000000100
+00100000010000000111110010110001
+00011010001000001010001000000010
+00011010011000001010011111111111
+00100100001000101011110000110011
+00100000011000000000000000000000
+11101111111000001000000000000110
+00011111111100011000010000000000
+00100000010000000011110001000010
+11100000010000001000000000000101
+00011111111000010000010000001111
+00100000010000000011110001000010
+11100000010000001000000000000101
+11000010000000000011110000111001
+00100000011000000000000000000000
+00011000010001100111110000001001
+00100000001000010011110001000110
+00011000010000001000010001010111
+00100000011000000000000000000000
+00011000010000001000010000110000
+00100000011000000000000000000000
+01011000000000000000000000100000
+00100000001000000011110001011010
+01011000000000000000000000010000
+00100000001000000011110001011010
+01101000010010001100011011111100
+00011000010000001000010000000001
+10011000010000001000010000000000
+01100000010010001000001000110000
+00011010001000100000110000000000
+00011111111000100111001000000000
+00100000010000000111110011001100
+01101000010010001100011011111100
+00011000010000100111001000000000
+00100000010000000111110011011010
+00011010010000100111111000000000
+11100111111000001000000000000101
+11011010001000000100011100101101
+00100000001000000011110001011101
+01100111111000001000001000110000
+00011111111000100111001000000000
+00100000010000000111110011001100
+00011010001000100000110000000000
+11011000101000000000011010100001
+00100000010000000111110010001111
+00100000010000000111000111000001
+00011110000000100000101000000000
+00100000010000000111001101110101
+00100000011000000000000000000000
+01101000010010001000100011111110
+00100000001000000011110001100111
+00011000000000000000010000000001
+00011000000000000111000000000000
+01101111111000010000100011110001
+00011111111000100000110000000000
+11101111111000011000000000000110
+00011111111011010111111000000000
+10011000010000011101111000000000
+00011111000000001111000000000001
+11101111111000100000000000000110
+00011111111000100101111000000000
+00011111000000001111000000000001
+11101111111000100000000000000110
+00011111111000100101111000000000
+00011111000000001111000000000001
+00011010001100001101111000000000
+00011101111100000101111000000000
+11101111111000010000000000000110
+10011101111000011101111000000000
+00100000011000000000000000000000
+01101111111000001000100011110011
+00011111111000100010001000000000
+00100000010000000011110001100100
+00100000010000000111001011010001
+00011000000000000111000000001100
+00011101111000100111111000000000
+00011010001000100111001000000000
+01101000010010010000100011110100
+00011000010000100000110000000000
+00100000010000000111001101001001
+00100000001000000111001010001100
+01110000000010001111111000011001
+00100000001000000011110010001000
+01110000000010001111111000001001
+00100000001000000011110010001000
+01100111111000001000100011110011
+01100000010010010000100011110100
+01000111010100101100000000110100
+00100000010000000011110001111001
+00011000000000000111000000001000
+10011000000000000101111000000000
+00011000000000000111000000001101
+00011101111000100111111000000000
+00011000000000000111000000001001
+10011000000000000101111000000000
+00011000000000000010001000000000
+00011000010000100010011000000000
+00100000010000000011110001100110
+00100000010000000111001011010111
+00100000010000000011110011000111
+01100000010011000000100011110110
+01101111111000001000100011110011
+00011111111000100010010000000000
+00100000010000000011110011001111
+01101000010010001000100011110011
+01101111111000010000100011110100
+10011000010000001010001000000000
+01101000010011000000100011110110
+11100000010000100000000000010001
+01101111111000001000100011111110
+00011111111001100111111000001001
+00100000011110100000000000000000
+11100000010001000000000000010001
+00100000011000000000000000000000
+01110000000010001111111000011001
+00100000001000000011110010101001
+01110000000010001111111000001001
+00100000001000000011110010101001
+01100111111000001000100011110011
+01100000010010010000100011110100
+00011000010000100010011000000000
+00011111111000100010010000000000
+10011010011000001000110000000000
+01000111010100110100000000110100
+11101111111001000000000000000110
+00011000000000000111000000001000
+10011000000000000101111000000000
+00011000000000000111000000001001
+00011111111011110111111000000000
+10011000000000000101111000000000
+00011000000000000010001000000000
+00100000010000000011110001100110
+00100000010000000111001011010111
+00100000010000000011110011000111
+01100000010011000000100011110110
+00100000010000000011110011001111
+00100000010000000011110001111001
+00100000010000000011110011000111
+01101111111000001000100011111110
+11000000000011001011110011000100
+01100000010010100000100011111010
+01101111111000100000100011110110
+01101000010010100000100011111010
+10011000010001100111111000000000
+00100000011000000000000000000000
+01101111111001000000100011110110
+10011000010001100111111000000000
+00100000011000000000000000000000
+00011000000000000111000000001100
+00011101111000100111111000000000
+00011000000000000111000000001101
+00011101111000100000010000000000
+00011000010100000000010000000000
+00011000010100000000010000000000
+10011000010000011000010000000000
+00100000011000000000000000000000
+00011010001000001010001000000001
+00100000010000000011110001100110
+00011010011000100000110000000000
+00100000010000000111001101011101
+00100000010000000111001011010111
+00100000010000000111001101111100
+00011010011000001010011000010000
+00011010010000001010010111110000
+00100000001000010011110011001111
+00100000011000000000000000000000
+01000111010100111100000000110100
+01110000010001111110010000000001
+01110000010001111110010100000000
+01110000010001100100101100000001
+01011000000000000001011101110000
+01100111111000010100011001001100
+00100000011000000000000000000000
+01011000000000000000000110101000
+01100111111000010000100011111111
+01101111111000001100011111100110
+11100111111000001000000000000101
+01101111111000100100100000001010
+00100000010000000111110011000110
+11100111111000100000000000000101
+01101111111000110100001011011011
+11100111111000110000000000000101
+01101111111000011100011111100111
+11100111111000011000000000000101
+00100000011000000000000000000000
+00100000010000000011110011101110
+00100000001000000011100111010011
+01110000010001100010101000010101
+01011000000000000000000000010100
+01100111111000001100011000101011
+01011000000000000000000000101011
+11100111111000001000000000000101
+01011000000000000000000000000000
+11100111111000001000000000000101
+11011000110000000000100011111111
+00100000010000000111110010001111
+01101111111000010100011111101010
+11100111111000010000000000000101
+00100000011000000000000000000000
+00100000010000000011110101011010
+00100100011101000000000000000000
+11101111111000001000000000000110
+11000000000000000011110100000001
+11000000000000010011110100011100
+01000111010101000100000000110101
+00100000011000000000000000000000
+00100000010000000011110100001111
+00100100011101000000000000000000
+00100000010000000011101101000101
+00100000010000000011110100000111
+00100000010000000100000011111010
+00100000011000000000000000000000
+11011000010000000000000000010010
+00100000010000000011110101000110
+01011000000000000000000000000001
+11100111111000001000000000000101
+01101111111000010100100000010010
+11100111111000010000000000000101
+11011000110000000100011010000000
+00100000001000000111110010001111
+00100000010000000111110110111100
+11101000010000010000000000000110
+11011000101000000100011010000000
+00100000010000000111110010001111
+01101111111000010100100000010010
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000001100011111100101
+11000011100000001000000000000000
+01111001001000000111111000000001
+01100111111000001100011111100101
+01110000010001111110010000000010
+00100000001000000111110110111010
+00100000010000000011110100100111
+01101000010010010100011111101100
+01101111111000010100100000010010
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000010000000011101110111111
+00100000010000000100000011111010
+01101111111000001000011110101010
+11000001100000010000000000000000
+01110000010001111110010000000101
+00100000011000000000000000000000
+01000111010101001100000000110101
+00011000110000100010001000000000
+01101111111000001100011111100100
+11000001000000000000000000000000
+01101111111000001100011111100101
+11000100000000001000000000000000
+11000011100000010000000000000000
+00011010001000100000110000000000
+11011111001000000000000000010110
+11011000101000000100011111101100
+00100000010000000111110011011010
+00100000010000000011101110000110
+01101000010010010100011111101100
+01101111111000010100100000010010
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000001100011111100101
+01111001001000000111111000000010
+01100111111000001100011111100101
+00100000010000000011101110011001
+01101111111000001100011111111111
+01100111111000001100100001110001
+00100000010000000011110100111111
+00100000011000000000000000000000
+11011000010000000000000000000110
+00100000010000000011110101000110
+01011000000000000000000000000011
+11100111111000001000000000000101
+01101111111000110100100000001110
+11100111111000110000000000000101
+00100000011000000000000000000000
+01000111010101010100000000110101
+01011000000000000000000100101100
+01100111111000010100100000000110
+01101111111000001000011110101010
+00011111111001100111110000000000
+00100000010000101011101011001110
+00100100010000101011101011010000
+00011000010000001111111000001001
+01100111111000001100011000101010
+00100000010000000011100101111100
+00011000010000001111111000000101
+11100111111000001000000000000101
+01011000000000000000000011111111
+11100111111000001000000000000101
+01011000000000000000000110101000
+00011111111100001111111000000000
+11100111111000010000000000000101
+01101111111000001000100100001111
+11100111111000001000000000000101
+00100000011000000000000000000000
+00100000010000000111110110111100
+11101000010000010000000000000110
+01011000000000000000000110101000
+00011111111100001111111000000000
+10011000010001100111110000000000
+00100100011000101000000000000000
+11101111111000001000000000000110
+01100111111000001000100100001111
+00100000001000000111110110111010
+11011010011000000100100000000110
+11011010010000000011110101100110
+00100000001000000100001011100111
+00100000001000000011111001100001
+01101111111000001000011100001011
+11000000000001000011110110010010
+11000000001001001011110110110001
+11000000000011011011110110111101
+11000000000011100011110111000100
+11000000011110010011110101101110
+00100000011000000000000000000000
+00100000010000000011110111101100
+00100000010000000011110110000011
+00100000010000000011110111000010
+01011000000000000000000010000000
+01100111111000001000011100100011
+01011000000000000000000011110011
+11100111111000001000000000000101
+01011000000000000000000000000000
+11100111111000001000000000000101
+01101111111000010000011100001100
+11100111111000010000000000000101
+01101111111000001000011100001001
+11011000010000000000000000000100
+10011000010001100111001000000000
+11011000110000000000011100001110
+00100000010000000111110011011010
+01101111111000001000011100001001
+00011111111000001111111000000001
+01100111111000001000011100100010
+11011000111000000000000000000000
+00100000001000000011100000000110
+01101111111000001000011100001110
+00100000011110100000000000000000
+00011111111001100111110000001000
+00100100010000010011110110010000
+10011000000000000111001000000000
+11011000110000000000011100001111
+00011010001000001000101000000010
+00100000001000000011110110001011
+11101111111000010000000000000110
+00011111111100001111111000000000
+11100111111000010000000000000101
+11000010000000000011110110001011
+00100000011000000000000000000000
+01011000000000000000000000001000
+00100000011000000000000000000000
+01110000010001111110010000000110
+01011000000000000000000000000010
+01100111111000001000011100100011
+01011000000000000000000000000000
+11100111111000001000000000000101
+01011000000000000000000110101000
+11100111111000010000000000000101
+01011000000000000000000000000000
+11100111111000010000000000000101
+01011000000000000000000000000001
+11100111111000010000000000000101
+01011000000000000000000000000101
+11100111111000010000000000000101
+01011000000000000000000000000011
+11100111111000010000000000000101
+01011000000000000000000000000000
+11100111111000010000000000000101
+01011000000000000000000000000010
+11100111111000001000000000000101
+01011000000000000000000000000010
+11100111111000001000000000000101
+01011000000000000000000000000000
+11100111111000010000000000000101
+01011000000000000001000000000000
+11100111111000010000000000000101
+01011000000000000000000110101000
+11100111111000100000000000000101
+01011000000000010000000110101000
+11100111111000100000000000000101
+01110000000001110010001000011100
+00100000001000000100000110110101
+01110000010010000000010100010100
+01011000000000000000000010000000
+01100111111000001000011100100011
+01011000000000000000000001001010
+11100111111000001000000000000101
+01110000000001110010001000000010
+00100000001000000100000110110101
+11011010011000000100100000000101
+11011010010000000011110110111011
+00100000001000000100001011100000
+00100000010000000011111001010000
+00100000001000000110110010100011
+00100000010000000011110111100010
+01101111111000010100100001001100
+11000011100000010000000000000000
+00100000010000000011110111101100
+00100000010000000011110111110101
+01101111111000010100100001001000
+00100000001000000111110101111001
+00100000010000000011110111100010
+01101111111000010100100001001100
+11000011100000010000000000000000
+00100000010000000011110111101100
+01101000010010010000011100001110
+00011000010011001111111000000000
+00011111111100011111111000000000
+11000000000001100011110111010011
+00011000010100001000010000000000
+00100000010000000011110111011000
+00100100011101000000000000000000
+01011000000000000000000000000000
+11100111111000010000000000010001
+01101111111000010100100001001000
+00100000001000000111110101111001
+01011111111111111111111111111111
+11100111111001000000000000010001
+11100111111001000000000000000101
+01101111111000010100100001001000
+00100000001000000111110101111001
+11011111001000000000000000001000
+11101111111000010000000000010001
+11011010010000001111111111111111
+10011010010001100111110000000000
+00100000001000101111110110111010
+10011000010001100111110000000000
+00100000001000101111110110111010
+00011010001000001010001000000010
+11000010000000000011110111011001
+00100000001000000111110110111100
+01011000000000000000000010000000
+01100111111000001000011100100011
+01011000000000000000000000011111
+11100111111000001000000000000101
+01011000000000000000000000000000
+11100111111000001000000000000101
+01101111111000110000011100001100
+11100111111000110000000000000101
+01110000000001110010001000001001
+00100000001000000100000110110101
+00100000010000000011111000111110
+00011010001000001010001000000110
+01101111111000010000011100001100
+01101000010010010100100000000000
+00011000010100001000010000000000
+10011000010001100111111000000000
+10011010010011111111111000000000
+10011010001000001010001000000000
+00100000011000000000000000000000
+01101000010010010000011100001110
+11011111001000000000000000001000
+11101111111000010000000000010001
+00100000001110100011110111111111
+11011010010000001111111111111111
+10011010010001100111110000000000
+00100000001000101011110111111111
+00011010001000001010001000000010
+11000010000000000011110111110111
+00100000011000000000000000000000
+00011000010100001000010000000000
+11100000010000010000000000010001
+00100000011000000000000000000000
+00100000010000000111001110010110
+00100000010000000111001110011110
+01011000000000000011100110110001
+01100111111000010100100000100100
+01011000000000000011111001000010
+01100111111000010100001111011011
+01011000000000000100000000010110
+01100111111000010100100001000010
+01011000000000000011011101000101
+01100111111000010100100000101000
+01011000000000000011101010100010
+01100111111000010100100001001000
+01011000000000000011101010010010
+01100111111000010100100001000110
+01011000000000000011111001001010
+01100111111000010100001111100011
+01011000000000000011011100101110
+01100111111000010100100000100110
+01011000000000000100000010010000
+01100111111000010100001111011111
+01011000000000000100000011100011
+01100111111000010100001111011101
+01011000000000000011101010110110
+01100111111000010100100001010011
+01011000000000000011101010111100
+01100111111000010100100001001010
+00100000010000000011101011000011
+01110000010001100100101000100100
+00100000010000000011100000010111
+01000111010101011100000000110101
+01011000000000000000010000101000
+01100111111000010100100110111001
+00100000010000000011111001011000
+01011000000000000000010000100010
+01100111111000010100101001011110
+00100000010000000011111001011010
+01011000000000000000101000100010
+01100111111000010000101010001101
+00100000010000000011111001011100
+00100000010000000100000001110001
+00100000010000000100000001110001
+00100000010000000011101000011000
+00100000010000000011111000111010
+01101111111000001100011111101111
+11000000011111111011110011011001
+00100000010000000100001010010001
+00100000010000000011101110111111
+00100000010000000011101110110001
+00100000010000000011101110011001
+00011000000010100111111000000000
+00011111111000010111111000011111
+00011111111000001111111000110010
+01100111111000010100100000000100
+00011111111000001111111000000101
+01100111111000001100100000000011
+00100000011000000000000000000000
+01101111111000110100100000001110
+00100000010000000111110011000000
+01100111111000110100001011011011
+00100000011000000000000000000000
+01101111001000001100100001001110
+01101010001000010100100001001111
+01101010010000010100100001010001
+00100000011000000000000000000000
+01000111010101100100000000110101
+00100000010000000011100001111101
+00100000010000000011101011001010
+00100000010000000100000111011000
+00100000010000000011100101101111
+00100000010000000011101100110011
+00100000010000000100000001100000
+00100000001000000011100110010101
+00100000010000000011101011001100
+00100000010000000011110110111000
+00100000010000000011110101100011
+00100000010000000011011110010100
+00100000010000000011011110010001
+00100000001000000100001010001001
+00100000010000000011111001010011
+01101111111000010100100001010011
+00100000001000000111110101111001
+01101111111000001100100001010111
+11000001100000010000000000000000
+01011000000000011101000000000000
+01100111111000011100010000011001
+00100000001000000110101111111010
+00100000010000000100001010010010
+00100000001000000111100010101101
+00100000010000000011100101101100
+00100000001000000111100010101101
+00100000010000000011111001011110
+00100000001000000111100010101101
+01011000000000000000101010001101
+01100111111000010100001111111011
+00100000011000000000000000000000
+01110000010000111000100000000001
+01011000000000000001011101110000
+01100111111000010100011001001100
+01101111111000001100011111100111
+01111001001111111111111000000000
+01100111111000001100011111100111
+01110000010001111110010000000001
+01110000010001111110010100000000
+01110000010001110100110100000000
+00100000001000000011101100101111
+01000111010101101100000000110101
+01101111111000001000100100101011
+11000010100000111011111001110000
+01110000010010010110100100000000
+00100000001000000100000101111101
+00100000010000000011111001110110
+00100000011101000000000000000000
+00100000010000000011111010010111
+00100000011101000000000000000000
+00100000010000000011111010100111
+00100000001000000011111010110100
+00100000010000000111110110111100
+11011111001000000000000000000011
+11011010001000000000100100101100
+00100000010000000111110010110001
+01101010001000011000100100101100
+00011010001000010000010000011111
+01100000010010001100100001011100
+01101111111000001100100001100011
+10011000010001100111110000000000
+00100100001000010111110110111010
+00011010001100011111111000000000
+00011111111000110111111000000000
+00011111111000010000010000011111
+01100000010010001100100001011011
+00011111111100011111111000000000
+00011111111000110111111000000000
+11011010001000000001111111111111
+10011010001000010000010000000000
+00011111111000100010010000000000
+01101111111000010100100001011001
+10011000010001100111110000000000
+00100100010000101011111010010011
+01100000010010010100100001011001
+00011010010011001111111000000000
+00011111111100011111111000000000
+00011111111000110111111000000000
+01100111111000001100100001011000
+01100111111000001100100101101001
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000100100100001011101
+01110000010010000110001000000000
+00100000011000000000000000000000
+00100000010000000111110110111100
+01101111111000001100100001011011
+00011111111000100000111000000000
+01101111111000100100100001011101
+10101111111011111111111111111111
+00100000001000001111110110111010
+11111001001000000111111000000000
+01100111111000100100100001011101
+01101000010010001100100001011100
+00011000010000001111001000000001
+00011111001000001000111111111111
+10101111111011111111111111111111
+00100100011000001000000000000000
+11000010000000000011111010100001
+01110000010010000110000100000001
+00100000011000000000000000000000
+01101111111000001000100100100001
+00011111111000001111111111111010
+00011111111000100111001000000000
+01101000010010001100100001100010
+10011000010000001000010000000000
+01100000010010001100100001100010
+01101111111000010100100001100100
+10011000000000000000101000000000
+01101111111000001100100001011011
+00011111111011111111111000001100
+10011000101000001000101000000000
+11011000110000000000100100101111
+00100000001000000111110011011010
+01101111111000001100100001100001
+11000001000000000000000000000000
+01011000000000000000000000000000
+01100111111000101100100001011101
+01101000010010010000100100100101
+00011000010100001000010000000000
+01011000000000001110000000000000
+10011000010000010000010000000000
+01101111111000010100100001011001
+10011000010000011111111000000000
+00011111111100001111111000000000
+01100111111000010000100100100101
+00100000001000000100000110000111
+01101111111000001000011100100010
+00011111111000001000010000000001
+00011111111000100111001000000000
+01100000010010001000100100010110
+01101111111000001000100100101011
+01111001001111111111111000000111
+01100111111000001100100110100001
+11011000110000000000011100100011
+00100000010000000111110011001100
+00100000001000000100000001010010
+00011010001000001000010000000100
+00011010001000100111001000000000
+01100000010010001000100100010110
+11011000101000000100100110100101
+00100000010000000111110011001100
+01101111111000001000100100101011
+01111001001000000111111000000111
+01100111111000001100100110100001
+00100000001000000100000001010010
+01101111111000001000011100001011
+11000000000000001011111011011011
+11000000000000010011111011100001
+11000000001000010011111011100110
+11000000001001100011111011101001
+11000000001011110011111011101111
+00100000011000000000000000000000
+11011010011000000011111011011101
+00100000001000000011111101010011
+01101111111000010100100000110000
+00100000010000000111110101111001
+01100111111000001000011100001100
+00100000001000000011011101101100
+11011010011000000011111011100011
+00100000001000000011111101010011
+00100000010000000011011101101100
+01101111111000010100100000110010
+00100000001000000111110101111001
+00100000010000000011011110000100
+01101111111000010100100000110100
+00100000001000000111110101111001
+01101111111000010000011100001100
+00100000010000000011111011111110
+01100111111000001000011100010001
+00100000010000000011011101110100
+01101111111000010100100000110110
+00100000001000000111110101111001
+01101111111000010100100001100110
+01101000010010010000011100001110
+10011000010001100111110000000000
+00100000011000101000000000000000
+01101111111000010000011100001110
+00100000010000000011111100010000
+01100111111000001000011100010110
+01101111111000010000011100001110
+01100111111000010100100001100110
+01101111111000010100100000111000
+00100000010000000111110101111001
+01100000010010010000011100001100
+00100000010000000011011101111100
+01101111111000010100100000111010
+00100000001000000111110101111001
+00100000011110100000000000000000
+00011111111011111111111001100100
+11011000010000001111111111111111
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001110000010000000000
+00011000010011001000010000000000
+00011000000001111111111000000000
+00011000010001100111110011111111
+00100100011000101000000000000000
+00011111111000001111111000000001
+00100000011000000000000000000000
+11011111111000001111111111111111
+10011000010011111111111000000000
+00011111111001101111110001100100
+00100000010000000111110101100010
+00011000000001111000010000000000
+00100000011000000000000000000000
+11011000010000000000001100100000
+10011000010001100010001000000000
+00100000010000000011111100011111
+00011010001000100111111000000000
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+00100000011000000000000000000000
+00011000010000100010001000000000
+00100000010000000011111100011111
+00011010001000100111111000000000
+10011000010011111111111000000000
+11011000010000000000001100100000
+10011000010000001000010000000000
+00100000011000000000000000000000
+01011000000000000100111000100000
+11011000010000000000001100100000
+10011000010001100111111000000000
+00011111111001101111110001100100
+00100000010000000111110101100010
+00011000000001111000010000000000
+00100000011000000000000000000000
+11011000111000000000000000000000
+01101111001000001100100001001110
+00100000010000000111110110111100
+01101111111000010100100000000000
+10011000010001100111110000000000
+00100000001000101011111100110010
+00011111111100001111111000000000
+00011111111000001111111000000001
+00011111111100001111111000000000
+00011000111000001000111000000001
+11000010000000000011111100101010
+00100000011000000000000000000000
+01110000010010000110100000000000
+01100000111000001100100001101001
+00100000010000000011111101101110
+00100000001000000111110110111010
+11011000111000000000000000000000
+11011010011000000000000000000000
+00100000010000000011111000111110
+00100000010000000111110110111100
+01101111111000010100100001001100
+11000011000000010011111101001001
+11101111111000010000000000010001
+10011000010001100111110000000000
+00100000010000101011111101000111
+00011010010000100111111000000000
+10011010001000001010001000000000
+00011000111000001000111000000001
+11000010000000000011111100111010
+00011010011000100111111000000000
+00100000011110100000000000000000
+01100111111000001100100001101000
+00100000001000000111110110111010
+11111001001000000010011000000000
+00100000011000000000000000000000
+00011010001000001000110000000110
+11011110000000000000000000001000
+11101111111000010000000000000110
+10011000010001100111110000000000
+00100000001000101011111101010001
+00011110000000001110000111111111
+00100000001000101011111100111111
+00100000001000000011111101001011
+00100000010000000011111101000111
+00100000001000000011111100111111
+11011000111000000000000000000000
+01101111111000001100100001101000
+00100000001110100011111101011111
+00011111111000100010010000000000
+01101111001000001100100001001110
+01100000111000001100100001101001
+10101010010011111111111111111111
+00100000010000001011111101011111
+01101000111000001100100001101001
+00011000111000001000111000000001
+11000010000000000011111101011000
+00100000011000000000000000000000
+00100000010000000011111101100100
+00100000010000000011111101101110
+00011010011000100111111000000000
+00100000010000000111110101111001
+00100000001000000011111101101001
+01100111001000010000100100010111
+01100010001000010000100100011001
+01100010010000010000100100011011
+01100010011000010000100100011101
+00100000011000000000000000000000
+01101111001000010000100100010111
+01101010001000010000100100011001
+01101010010000010000100100011011
+01101010011000010000100100011101
+00100000011000000000000000000000
+01000111010101110100000000110101
+01101111111000010100100000000000
+00011111111100001111111000000000
+10011000111000001111111000000000
+00011111111100001111111000000000
+01100111111000010100100110010101
+00100000010000000011111000111110
+00011000111000100111111000000000
+10011010010011111111111000000000
+10011010001000001010001000000000
+00011010001000001000110000010111
+11101111111000010000000000000110
+01100111111000010100001111111011
+00100000011000000000000000000000
+01110000000010010101000100000000
+00011000010001100111110000001100
+00100000011000010000000000000000
+00011000010001100111110000011110
+00100100011000010000000000000000
+01000111010101111100000000110101
+00100000010000000100000000001110
+00100000010000000011111110001100
+00100100011101000000000000000000
+00100000010000000011111111011101
+00100100011101000000000000000000
+00100000010000000011101111001111
+00100000010000000011111110100001
+00100100011101000000000000000000
+00100000010000000011111110110010
+00100000001000000011111110110111
+00100000010000000111110110111010
+01101111111000001000100100100001
+11011000110000000000100100100101
+10011000110000001000110000000000
+11101111111000100000000000000110
+11101000010000100000000000000110
+10011000010000101000010000000000
+11011111001000000000000000010000
+11011000110000000000100111111101
+11101111111000100000000000000110
+10011000010001100111110000000000
+00100000001000101111110110111100
+11000010000000000011111110010101
+01101111111000001100100001101010
+00011111111000001111111000000100
+11011000101000000000100111111101
+10011000101000001000101000000000
+11100000010000100000000000000101
+00011111111000010111111000111111
+01100111111000001100100001101010
+00100000011000000000000000000000
+00100000010000000111110110111010
+01101000010010101000100100100100
+11011111001000000000000000010000
+11011000110000000000101000111101
+11101111111000101000000000000110
+10011000010001100111110000000000
+00100000001000101111110110111100
+11000010000000000011111110100101
+01101111111000001100100001101011
+00011111111000001111111000000001
+00011111111000010111111000001111
+01100111111000001100100001101011
+00011111111011111111111000000101
+11011000101000000000101000111101
+10011000101000001000101000000000
+11100000010000101000000000000101
+00100000011000000000000000000000
+01101111111000001000100101010001
+11000001000000000000000000000000
+01101111111000010000100100100111
+01100111111000010100100001101100
+00100000011000000000000000000000
+00100000010000000100000000000101
+01101111111000001000100100100001
+11011000010000000000100100101001
+00100000010000000011110010100111
+00100100011000101000000000000000
+01000111010110000100000000110110
+01101111111000001000100101010001
+00011111111001100111110000000010
+00100000010000101100000100000110
+01101000010010010000100100101001
+00100000010000000011111100100110
+00100000010101000011111111001111
+00100000001101000011111111101010
+11011111001000000000000000011101
+11011000101000000000011110101011
+11011000110000000000100100100010
+00100000010000000111110011011010
+00100000010000000011111111010011
+11011111001000000000000000011101
+11011000110000000000011110101011
+11011000101000000000100100100010
+00100000010000000111110011011010
+01101111111000010100100001000010
+00100000001000000111110101111001
+01110000000010010101001000000001
+01101111111000010100100110010101
+01100111111000010000100101010011
+00100000011000000000000000000000
+00100000010000000011111100110110
+00100000001101000011111111101010
+01110000010010000110100011111111
+01011000000000001111111111001111
+10011000010001100111110000000000
+00100000001000101011111111101010
+01011000000000001111111111111111
+10011000010001100111110000000000
+00100000001000101011111111101010
+00100000011000000000000000000000
+00100000010000000111110110111100
+01101000010010001000100100100010
+00011000010100011111111000000000
+00011111111010010111111000000000
+01101010001000001100100001110001
+00011010001000010010001000000001
+10011010001001100111110000000000
+00100100011000101000000000000000
+00011000010000010000010001111111
+01101111111000001100011101001101
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000001000000111110110111010
+11011010001000000100100001110010
+11011111001000000000000000001010
+01101000010010010000100100100111
+11101111111000010000000000010001
+00100000001110100011111111110100
+10011000010001100111110000000000
+00100000001000101011111111110101
+00011010001000001010001000000101
+11000010000000000011111111101100
+11011010001000000100100001110010
+11100000010000010000000000010001
+01100000010010010000100101001100
+00011010001000001010011000000010
+11101111111000011000000000010011
+01100111111000011000100101001110
+00100000001000000011111111111010
+00100000010000000100000000000010
+01101111111000011000100101001110
+01101000010010011000100100100100
+10011000010001100111110000000000
+00100000011000010000000000000000
+11100000010000011000000000010011
+00100000010000000100000000000010
+00100000001000000011111001101011
+11011010001000000000100100100100
+11011111001000000000000000000011
+00100000001000000111110010110001
+00100000010000000100000000001000
+11011000110000000100011101011110
+00100000001000000111001101011111
+11011000101000000000100100111111
+01011000000000000000000000000000
+11100111111000001000000000000101
+01101111111000110000100100100011
+11100111111001000000000000000101
+00100000001000000100000001101001
+00011000010000001111111111110100
+01100111111000001000100100100001
+11011111001000000000000000011101
+11011000101000000000100100100010
+00100000010000000111110010100001
+00011000010000001111001111111111
+11011000101000000000100100100010
+00100000001000000111110011001100
+00100000010000000100000001101110
+00100000010000000100000000110110
+00100100011101000000000000000000
+00100000010000000100000001001010
+01110000000001111000011100011110
+01101111111000001000100100100001
+00011111111000001000010000001101
+01100000010010001000011110001001
+00011000010000001000010111111111
+11100000010000001000000000000101
+01011000000000000000000000101010
+11100111111000001000000000000101
+00011000010000001111001111111111
+01101111111000111000100100100010
+11011000110000000000100100100010
+00100000010000000111110011011010
+11011010001000000000011110000111
+00100000010000000111100010110010
+00100000010000000100000000101011
+00100100011101000000000000000000
+00100000001000000011100101100001
+01101000010010010000011110110010
+00100000010000000111110110111100
+01101111111000001000100101111000
+00100000011110100000000000000000
+10011000000000000111001000000000
+11011000110000000000100101101000
+11101111111000010000000000000110
+10011000010001100111110000000000
+00100000001000101111110110111010
+11000010000000000100000000110001
+00100000011000000000000000000000
+00100000010000000111110110111100
+01101111111000001000100101010001
+11000001000000001000000000000000
+01101111111000010100100001001100
+11000011100000001000000000000000
+01101111111000001100011111100100
+11000001100000000000000000000000
+01101000010010010000100100100111
+00100000010000000011111100100110
+00100000001101000111110110111100
+00100000010000000100000001001111
+00100100011101000000000000000000
+01101111111000001000100100100011
+00100000001110100111110110111100
+00011111111000001111111111111111
+00100000001110100111110110111100
+01100111111000001000100100100011
+01011000000000000100100011001100
+01100111111000010100001111111011
+00100000001000000111110110111010
+00100000010000000100000000000101
+01101111111000001000100100100001
+11011000010000000000100100101001
+00100000010000000011110010000110
+00100000001000000011101111001111
+01011000000000000100100010100100
+01100111111000010000100100010000
+00100000001000000011100111111011
+01000111010110001100000000110110
+00100000010000000100000001010110
+00100000010000000100000001011111
+00100000001000000011100101001100
+01101111111000001000100100010110
+00011111111000001010001000000010
+00011111111000001111111000000100
+01100111111000001000100100010110
+11011000010000000100100110011111
+00100000001000000100000001011100
+00100000010000000100000000000101
+00011010001000100111111000000000
+00100000001000000011110010000110
+00100000001000000011101111001100
+00100000010000000011111001011110
+00100000010000000111100011111010
+00100000011110100000000000000000
+00100000010000000010101000101000
+00100100011110100000000000000000
+11011010001000000000011110000111
+00100000010000000111100011001010
+00100100011101000000000000000000
+00100000001000000100000011110000
+01101111111000100100100001101110
+11100111111000100000000000000101
+00011000101000001111111111110011
+01100111111000010000100011110001
+00100000011000000000000000000000
+01011000000000000100100011001100
+01100111111000010100001111111011
+00100000011000000000000000000000
+00100000010000000100000001101110
+00100000001000000111100010101101
+00100000010000000010100111001001
+01101111111000001100011111100100
+11000000000000001100000010000011
+11000000000000000100000001111001
+11000000000000101100000001111001
+00100000011000000000000000000000
+00111000000000010000001000010100
+00111000000001001100000010000000
+00111000000010101000000000110000
+00111000000011000011000001100000
+01100111111001001100001101001000
+01011000000110000010100000010110
+11100111111000100000000000000101
+01101111111001000100011111011100
+11100111111001000000000000000101
+00100000011000000000000000000000
+00100000010000000011110011100000
+00111000000000010000001000011101
+00111000000001001100000010000000
+00111000000010100111000000110000
+00111000000011000101010001100000
+01100111111001001100001101001000
+01011000000110000010011100010110
+11100111111000011000000000000101
+11011000110000000000100011111111
+00100000010000000111110010001111
+01101111111000010100011111101010
+11100111111000010000000000000101
+00100000011000000000000000000000
+01000111010110010100000000110110
+01101111111000010100001110011000
+11000000000001110100000010010101
+11000000000010100100000011010110
+00100000011000000000000000000000
+00011010010000100000010000000000
+11101111111000001000000000010001
+11000000000000000100000011100001
+11000000000000010100000010011010
+00100000011000000000000000000000
+00100000010000000100000000001110
+01101111111000001000100100100001
+00011111111000001111111111111100
+01100111111000001000100100100001
+00100000010000000011111111011101
+00100100011101000000000000000000
+00100000010000000011101111001111
+01101111111000001000100100100011
+11000010100000111100000010100100
+00100000011000000000000000000000
+00100000010000000100000011011010
+01101111111000001000100100100001
+11011000010000000000100100101001
+00100000010000000011110010100101
+00100100011000101000000000000000
+00100000010000000100000100000110
+01101111111000001000100100101011
+11000000000000000100000010111101
+11000000000000001100000010101110
+00100000011000000000000000000000
+01101111001000001000100100100001
+00011111001000001111001111111101
+00011111001000110111111000000000
+01101000010010010000100101111000
+10011000010000001111111000000000
+00011111111001100111110000001000
+00100100011000010000000000000000
+01100111111000010000100101111000
+11011000101000000000100101101000
+00011000010000111111111000000000
+10011000101000001000101000000000
+11011000110000000000100100101100
+00100000010000000111110011011010
+01101111111000001000100101111010
+00100000001000000100000010111111
+11101111111000001000000000000110
+01100111111000001000100101111010
+01100111111000001100100110100010
+01101111111000010000100101111000
+00011111111100001111111000000000
+01100111111000010100100110100011
+01110000010010011010000100000011
+01101111111001001000100100100010
+01100111111001001100100110011000
+01101111111000010100100110010101
+01100111111000010100100110011101
+00100000010000000100001001010011
+00100000010000000100001001100111
+00100000010000000100000011011010
+01011000000000000000000000000110
+11011000010000000100100110011111
+00100000010000000011110010000100
+00100000010000000100000001011111
+11011010001000000000000000010110
+11011000010000000000000000010000
+00100000010000000010110111101110
+01011000000000000000000000000010
+11100111111000001000000000000101
+11011000110000000100100110011000
+00100000001000000111110010001101
+01110000000001111010101000000010
+00011010010000100000010000000000
+00011010001000100000110000000000
+00100000001000000011110011111010
+11011000101000000000100101011011
+01011000000000000000000000000011
+11100111111000010000000000000101
+01101111111000101000100100100100
+11100111111000111000000000000101
+00100000010000000100000001101001
+00100000001000000100000000000110
+01110000000010010101000100000010
+00100000001000000011111101111101
+00011010011000100111111000000000
+11000000000010101100000011101000
+11000000000010100100000011100111
+00100000011000000000000000000000
+00100000001000000100000011101011
+01011000000000000000000000000000
+01100111111000010100100001101100
+00100000001000000100001100010111
+01011000000000000000000000000000
+01100111111000010000100101111000
+11011000101000000000100101101000
+11011111001000000000000000010000
+00100000001000000111110010100011
+00100000010000000010101000101000
+00100100011110100000000000000000
+01101111111000001000011110001001
+00011111111000001010001111111111
+11011000010000000000000000010000
+00100000010000000010110111101110
+01011000000000000000000000000000
+11100111111000001000000000000101
+11011000110000000000011110001100
+00100000001000000111110010001101
+01101111111000001000011110101010
+11000001000000000000000000000000
+01101111111000010100010011101001
+11000100000001001000000000000000
+00100000010000000010101000101000
+00100100011110100000000000000000
+01101111111000001100011000101010
+00011111111000001010001111111011
+11011000010000000000000000010110
+00100000010000000010110111101110
+11011000110000000100011000110000
+00100000001000000111110010001101
+01101111111000010000100101101000
+00100100011110100000000000000000
+01101111111000010000100100100111
+01100111111000010000100101101000
+01101111111000010000100101111000
+00011111111000001111111000000001
+01100111111000010000100101111000
+00100000011000000000000000000000
+11101111111000100000000000000110
+00011000000000000010001000000100
+00011000101000001000101000000011
+11100111111000001000000000000101
+00011111111011001111111000000000
+00011000101000001000101111111110
+00011010001000001010001111111111
+00100100001000101100000100010001
+00011000101000001000101000000101
+11000010000000000100000100001110
+00100000011000000000000000000000
+00011000111010111111111000000000
+10011001011000001000110000000000
+11101111111000100000000000000110
+00100000011000000000000000000000
+00011000000000000110000000010000
+11011001011000000000001000110001
+00011110000000001000111111111001
+00100000010000000100000100011001
+10011000000000000000010000000000
+00011110000000001000111111110000
+00100000010000000100000100011001
+10011000010000001000010000000000
+00011110000000001000111111111110
+00100000010000000100000100011001
+00011111111011100111111000000001
+10011000010000001000010000000000
+00011110000000001000111111110001
+00100000010000000100000100011001
+00011111111011100111111000000000
+10011000010000001000010000000000
+00011110000010111111111000000000
+10011001011000001000101000000000
+11100000010000100000000000000101
+00011110000000001110000000000001
+00101110000000011111111001000000
+00100100001000001100000100011111
+00100000011000000000000000000000
+11011000110000000000010101001001
+00011000000000000111000000000111
+11101111111000100000000000000110
+10011000000000000101111000000000
+00011111000000001111000111111111
+00100000001000010100000100110110
+00100000011000000000000000000000
+01000111010110011100000000110110
+00100000010000000100000100011101
+11011000101000000000001100110001
+00011000000000000111000000000000
+00011101111000100111111000000000
+11100111111000100000000000000101
+00011111000000001111000000000001
+00101111000000011111111000001000
+00100100001000001100000100111111
+11011001011000001001010111101101
+11011110000000000000001000110001
+00011000000000000111001001000000
+11101000010000100000000000110000
+11101111111000100000000000001011
+00011001011000001001011000000100
+00011110000000001110000000000100
+10011000010000001111111000000000
+00011000000000000111000000000111
+10011101111000001000010000000000
+00011000000000000111000000000100
+00011101111011100111111000000011
+10011000010000001000010000000000
+00011000000000000111000000000101
+00011101111000100111111000000000
+00011000000000000111000000000110
+10011101111000101111111000000000
+00011000000000000111000000000100
+10011101111000010111111000000000
+00011000000000000111000000000110
+10011101111000101111111000000000
+10011000010000001000010000000000
+00011000000000000111000000000111
+00011000010000100101111000000000
+00011000000000000111000000000011
+00011101111000100111111000000000
+10011000010000001101111000000000
+00011000000000000111000000000000
+00011101111000100111111000000000
+00011000000000000111000000000001
+10011101111000010000010000000000
+10011101111000011111111000000000
+00011000000000000111000000000010
+10011101111000010111111000000000
+10011000010000011000010000000000
+00011000000000000111000000000000
+00011101111011100111111000000010
+10011000010000001111111000000000
+00011000000000000111000000000111
+10011101111000001101111000000000
+10011000000011101111110000000000
+11000010000000000100000101000111
+11011000110000000000001100110001
+00011000000000000111000000000000
+11101111111000100000000000000110
+10011101111000001101111000000000
+00011111000000001111000000000001
+00101111000000011111111000001000
+00100100001000001100000101110000
+00100000011000000000000000000000
+11011000101000000000000110111101
+00011000000000000111000000000111
+00011101111000100111111000000000
+11100111111000100000000000000101
+00011111000000001111000111111111
+00100000001000010100000101111000
+00100000011000000000000000000000
+11000011000000110100000110000000
+00100000010000000100000110100010
+00100000001000000100000110000010
+00100000010000000100000110101111
+00100000001000000100000110000010
+01101111111000001000100100100001
+00011111111000001111111111111001
+11011110000000000000100100101100
+00100000010000000111110110111100
+00100000001000000100000110010100
+01101111111000001000100100101011
+11000011000000110100000110001011
+00100000010000000100000110100010
+00100000001000000100000110001101
+00100000010000000100000110101111
+00100000001000000100000110001101
+01101111111000001100100101101001
+00100100010110100111110110111010
+00100000010110100111110110111100
+01101111111000001100100001100010
+00011111111000001111111111111100
+01110000010010000110001000000000
+11011110000000000100101100111100
+00011110000000100000010000000000
+00100000010000000100000110011100
+00100100011000101000000000000000
+00100000010000000100000110011111
+00100100011101000000000000000000
+01101111111000010000100011110100
+00011111111000100110000000000000
+00100000001000000011011100101000
+00100100001101000011110010100111
+00011111111000001111111111111100
+00100000001000000011110010100101
+01011000000000000100100101101010
+01100111111000010000100100010000
+00100000001000000011100111111011
+00100000010000000100000110100101
+11011000110000000100100101011001
+00100000001000000111001101011111
+11011000101000000000100100111111
+01011000000000000000000000000001
+11100111111000001000000000000101
+01101111111000001100100101101001
+11011000010000000000000000000000
+01111101001110100000010000000111
+11100000010000001000000000000101
+01101111111000111000100100100100
+11100111111000111000000000000101
+00100000001000000100000001101001
+00100000010000000100000110110010
+11011000110000000100011010100000
+00100000001000000111001101011111
+11011000101000000000100100111111
+01011000000000000000000000000010
+00100000001000000100000110100111
+01000111010110100100000000110110
+00100000010000000100001001011011
+00100000010000000100000110111101
+00100000011101000000000000000000
+00100000010000000100000111010000
+00100000010000000100001010010010
+11011010001000000000100110000011
+00100000001000000111100010110010
+00100000010000000111110110111100
+11011000010000000000000000000001
+01101111111000001000100101010001
+00011111111001100111110000000010
+01111001001000101000010000000111
+01100000010010001000100110000011
+01101111111001001100100110011000
+01100111111001001000100110000111
+01101111111000001000011100100011
+11000001111010100000000000000000
+01101111111000001100011111100100
+11000000100000000111110110111010
+01101111111000001000011100100110
+01100111111000001000100110000110
+01101111111000001000100110000011
+00011111111000001111111000000001
+01111001001000000111111000000101
+01100111111000001000100110000011
+00100000011000000000000000000000
+01101111111000001000011100100010
+00011111111000100111001000000000
+01100111111000001000100110010000
+01101111111000001000100100101011
+01100111111000001000100110010001
+11011000101000000000100110010110
+11011000110000000000011100100011
+00100000001000000111110011011010
+01101111111000001100100110110101
+00100100011110100000000000000000
+00100000010000000100001010010010
+11011010001000000000100110000011
+00100000010000000111100011011100
+00100100011101000000000000000000
+01101000010010001000100110000011
+00011000010000010111111000001111
+00100000001110100100001000001011
+01110000010010011011010100000001
+00100000010000000100000111111100
+01101000010010001000100110000011
+00100000010000000100001000000010
+01100111111000001100100110110110
+01101111111000001100100110110111
+00101000010011111111111000000111
+01111001001000001111111000000010
+01100111111000001100100110110111
+01111001001000000000010000000100
+00011000010000001000010111111111
+11100000010000001000000000010010
+01101000010010001000100110000011
+00101000010011111111111000000100
+00100100001000001100001000001111
+01101000010010001000100110010000
+01100000010010001000011100100010
+00011000010000100111001000000000
+11011000101000000000011100100011
+11011000110000000000100110010110
+00100000010000000111110011011010
+00011000010001100111110000001111
+00100100001000010100000111111001
+00100000001000000011111011000001
+01101111111000100000100110010010
+01100111111000100000100101111110
+00100000001000000100001000110000
+01101111111000001000100110010001
+01100111111000001000100100101011
+01101111111001001000100110000111
+01100111111001001100100110011000
+01100111111001001000100100100010
+00100000011000000000000000000000
+01110000010010011011011100000001
+01101111111000001000100110000110
+00101000010011111111111000000101
+00100000011000001000000000000000
+01011000000000000000000000000000
+00100000011000000000000000000000
+00011010001000001000101000011010
+11100111111000001000000000000101
+00100000011000000000000000000000
+01110000010010011011011000000000
+00100000010000000100001010010010
+11011010001000000000100110000011
+00100000001000000111100011001010
+00100000010000000100001001010011
+00100000010000000100001001100111
+01101111111001001100100110011000
+01100111111001001000100110000111
+00100000010000000100001000101000
+01011000000000000000000000000000
+01100111111000001100100101101001
+00100000010000000100001001001001
+01101000010010001000011100100010
+01100000010010001000100110010000
+00011000010000100111001000000000
+11011000110000000000011100100011
+11011000101000000000100110010110
+00100000010000000111110011011010
+00011000010001100111110000001111
+00100100001000010100001000100010
+11011010001000000000100110000100
+00100000010000000111100011101011
+00100000001000000011111011000001
+00100000010000000100001001101111
+01101111111000100000100101111110
+01100111111000100000100110010010
+11011010001000000000100110000100
+00100000010000000111100011101011
+00100000001000000100001000110000
+01101111111000001000100110010000
+00011111111000100111001000000000
+01100111111000001000011100100010
+01101111111000001000100110010001
+01100111111000001000100100101011
+11011000110000000000100110010110
+11011000101000000000011100100011
+00100000001000000111110011011010
+00100000010000000100001001111100
+01011000000000000000011100100011
+01100111111000010000100101111011
+00100000010000000100000111111100
+00100000010000000100001001010011
+00100000010000000100001001100111
+01101000010010001000011100100010
+01011000000000000000000000001100
+00100000010000000111110110110000
+00011111111000100010001000000000
+00011000010000100111111000000000
+10011010001001100111111000000000
+01100111111000001000011100100010
+01101111111000010000100101111011
+00011111111000100000110000000000
+10011010001000001000010000000000
+01100000010010010000100101111011
+00100000010000000011111011001011
+01101111111000001000011100100010
+00100000011110100000000000000000
+01101111111000001000100110000000
+00011111111000001111111000000001
+01100111111000001000100110000000
+00100000010000000100001001111100
+00100000001000000100001000110011
+01101111111000001000100100101011
+11000011000000110100001001001101
+00100000010000000100000110100010
+00100000001000000100001001001110
+00100000010000000100000110101111
+01101111111000001000011100100010
+00011111111000001000010000000100
+01100000010010001000011100100010
+11011000010000000000011100100011
+00100000001000000011110010000110
+01101111111000011100100110010010
+00011111111000001111111000000001
+01100111111000011100100110010010
+01101111111000001100100000001000
+00011111111000001111111000000001
+01100111111000001100100000001000
+01101111111000010100100001000110
+00100000001000000111110101111001
+01101111111000001100100001110001
+00011111111100100111111000000000
+00011111111010011111111000000000
+01101000010010001100011101001101
+10011000010000011111111000000000
+01100111111000001100100110011000
+01101111111000001100100110010111
+01100111111000001100100110011001
+01101111111000010100100110010101
+01100111111000010100100110011101
+01101111111000010000100101001100
+01100111111000010100100110011111
+01101111111000011100100110010010
+01100111111000011100100110011010
+11011010001000000100100110011010
+11011111001000000000000000000011
+00100000010000000111110010110001
+01101111111001000100100110011001
+01100111111001000000100100100011
+00100000011000000000000000000000
+01101111111000001000011100100010
+00011111111001101111110000001100
+00100000010000000111110101100010
+00011000000001111000010000000000
+00011000000001110111111000000000
+00100000010110100100001010001111
+01100000010010001000100110000001
+01110000000010011000000000000000
+01101111111000011100100110010010
+11011000010000000001111111111111
+10011000010000010111111000000000
+01100111111000010000100101111110
+00100000011000000000000000000000
+01101111111000010000100101111110
+00011111111100100111111000000000
+00011111111000111111111000000000
+01101000010010001000100110000000
+10011000010000011111111000000000
+00011111111100100111111000000000
+00011111111000111111111000000000
+01101000010010001000100110000001
+10011000010000011111111000000000
+01100111111000011100100110100010
+11011111001000000000000000000011
+11011010001000000100100110100010
+00100000001000000111110010110001
+11011010011000000100100110111000
+11011010010000000100001010001100
+00100000001000000100001011100000
+11011111001000000000000000101000
+11011000101000000100100101101010
+00100000001000000111110010100001
+00011000010000001000010111111111
+00100000011000000000000000000000
+00100000001000000011101100101010
+01011000000000000100100110111001
+01100111111000010100001111111011
+00100000011000000000000000000000
+01000100110110001100000000010110
+01101111111000001100001111001011
+00100000001110100100001010010101
+11000000000000100100011110110111
+11000000000001001110001010101110
+11000000000001010101000010011001
+11000000000001110100001110110010
+11000000000000110110010001101110
+11000000000001101100011001110010
+11000000000001111100100101011001
+11000000000001100110100010000010
+11000000000001000101001111100000
+11000000000001011011111000000010
+00100000011000000000000000000000
+00100000011101011000000000000000
+00100000010000000110111101110100
+01101111111000001100001111001011
+11000000000001001110001111011001
+11000000000000110110001111011001
+11000000000000100100011111000010
+11000000000001000101010000101000
+11000000000001111101010000101100
+11000000000001101100011101110010
+00100000011000000000000000000000
+00100000010000000111011101110100
+00100000010000000111100001000001
+00100000010000000100001010110100
+01101111111000010100001111011011
+00100000001000000111110101111001
+01101111111000010100001111011001
+00100000001000000111110101111001
+01000100110110010100000000010110
+11011010001000000100010011010011
+00100000010000000111110110010111
+00100000011110100000000000000000
+00011111111000100010011000000000
+00100000010000000100001010111101
+00100000001000000100001011000001
+11011010011000000000000000000000
+00100000011000000000000000000000
+11000000000010000100001011010000
+11000000000010100100001011000111
+11000000000010101100001011001011
+00100000011000000000000000000000
+01101111111000010100001111011101
+00100000001000000111110101111001
+01101111111000010100001111010011
+00100000001000000111110101111001
+01101111111000010100001111010111
+00100000001000000111110101111001
+01101111111000010100010011101001
+01111001001000000111111000001001
+01100111111000010100010011101001
+00100000011000000000000000000000
+01110000010000111001011000000000
+01101111111000010100010011101001
+01111001001111111111111000001001
+01100111111000010100010011101001
+00100000001000000100001100101101
+01101111111000010100001111110001
+01111001001000000111111000000000
+01100111111000010100001111110001
+00100000011000000000000000000000
+01100111111000001000001000011101
+01000100110110011100000000010110
+01101111111000001000001000011101
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001000001000011101
+00100000010000000111011110000000
+00100000010000000100001100001110
+00100000010000000110101111101011
+01101111111000010100001111100011
+00100000010000000111110101111001
+00100000001000000100001011010101
+11101111111000001000000000010011
+00100000011110100000000000000000
+00011111111000001111111111111111
+11100111111000001000000000010011
+00100100011110100000000000000000
+00011010010000100111111000000000
+00100000001000000111110101111001
+11101111111000010000000000010011
+00100000011110100000000000000000
+00011111111000001111111111111111
+11100111111000010000000000010011
+00100100011110100000000000000000
+00011010010000100111111000000000
+00100000001000000111110101111001
+01101000010010010100010000110000
+00011000010000001010011000000001
+11011010010000000100001011110010
+00100000001000000100001011100000
+00100000010000000100001101000011
+11000000000000001100001011110101
+00100000001000000100001100100111
+01011000000000000000000000000010
+11100111111000001000000000010011
+00011000010000001010010000001000
+11101111111000010000000000010010
+00100000001000000111110101111001
+00100000010000000100001011111100
+00100000001000000100001100100111
+01011000000000000000000000000000
+01100111111000010100001111101111
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000010100001111110001
+00100000011000000000000000000000
+01101111111000010100001111110001
+01111001001000000111111000000111
+01100111111000010100001111101111
+01011000000000000000000000000000
+01100111111000010100001111110001
+00100000011000000000000000000000
+11011000111000000000000000001001
+00100000001000000010010011100111
+11011000111000000000000000001001
+00100000001000000010010011101011
+01110000010000111110110100000101
+00100000001000000100001100001000
+11011010011000000100001111101101
+11011010010000000100001100001010
+00100000001000000100001011100000
+01110000000001100110111100001111
+00100000001000000111100000110100
+01110000000001100110111100010000
+00100000001000000111100000110100
+01110000000001100110111100001110
+00100000001000000111100000110100
+01110000000001100110111100001101
+00100000001000000111100000110100
+01110000000001100110111100010111
+00100000001000000111100000110100
+01110000000001100110111100011000
+00100000001000000111100000110100
+01110000000001100110111100010110
+00100000001000000111100000110100
+01110000000001100110111100010001
+00100000001000000111100000110100
+01110000000001100110111100010101
+00100000001000000111100000110100
+01110000000001100110111100010100
+00100000001000000111100000110100
+01110000000001100110111100010011
+00100000001000000111100000110100
+01110000000001100110111100011001
+00100000001000000111100000110100
+01110000000001100110111100011111
+00100000001000000111100000110100
+01111001001000000000000000001101
+00100000011000000000000000000000
+01111001001111111000000000001101
+00100000011000000000000000000000
+00100000010000000100001101000011
+11000000000000010100001100111001
+01011000000000000000000000000001
+11100111111000001000000000010011
+00011000010000001010001000000011
+00011000010000001010010000000110
+11101000010000001000000000010001
+00011010011000001010011000000001
+11100000010000001000000000010011
+00100000001000000100001011111000
+01011000000000000000000000000000
+11100111111000001000000000010011
+01101111111000010100010011101001
+11000011000001001100001100111111
+00100000010000000011000011000101
+00100000010000000100001100011111
+01101000010010010100010000110000
+00011000010000001010001000000010
+00011000010000001010010000000100
+00100000001000000100001100110101
+01101000010010010100010000110000
+00011000010000001010011000000000
+11101111111000001000000000010011
+00100000011000000000000000000000
+00100000010000000100001101000011
+11000000100000000100001101001010
+00100000001000000100001100100111
+00011000010000001010010000001010
+00100000001000000100001011111000
+01101111111001000100110011101011
+01100111111001000100110011111110
+01110000010011010000111000000000
+01101111111000001100110100000010
+00011111111010111111111000000000
+11011000010000000100101110000111
+10011000010000001000010000000000
+11101111111000100000000000000010
+01100111111000100100110011111010
+01101111111000001100110100001110
+00100100001110100100001101011111
+01101000010010010100110011110100
+11101111111000001000000000000010
+01100111111000001100110100001010
+00011000010000001000010000000001
+01100000010010010100110011110100
+00011111111100011111111000000000
+01100111111000001100110011111001
+00100000001000000100001101100010
+01101111111000001100110100001010
+00011111111000010111111000001111
+01100111111000001100110011111001
+01101111111000001100110100001110
+01111001010000000111111000000000
+01100111111000001100110100001110
+11011000010000000100101101110111
+01101111111000001100110011111001
+10011000010000001000010000000000
+11101111111000001000000000000010
+01101000010010001100110100000010
+00100000010000000100001110011010
+01100111111000001100110100000010
+01101111111000001100110011111001
+00011111111000010000010000001000
+01100000010010001100110011111000
+00011111111000010000010000000111
+01100000010010001100110011111001
+00100000010000000100001110100011
+01100000010010100100110100000110
+01101111111000001100110011111000
+00100000001110100100001101111001
+01101111111000100100110011111110
+01101000010010100100110100000110
+10011000010001100111111000000000
+00100000001000000100001101111100
+01101111111000100100110011111110
+01101000010010100100110100000110
+10011000010000001111111000000000
+01100111111000100100110011111110
+11011000010000000111111111111111
+10011000010001100111111000000000
+11000010100011111100001110000010
+01100000010010100100110011111110
+00100000001000000100001110001000
+01101111111000100100110011111110
+11011000010000001000000000000000
+10011000010000001111111000000000
+11000011000011111100001110001000
+11011000010111111000000000000000
+01100000010010100100110011111110
+01101111111000001100110100000010
+00011111111010111111111000000000
+11011000010000000100101110000111
+10011000010000001000010000000000
+11101111111000100000000000000010
+01100111111000100100110011111010
+01101111111000010100110011110110
+01101000010010010100110011111110
+11100000010000010000000000111111
+00011111111000001111111000000010
+01100111111000010100110011110110
+01101111111000001100110011110011
+00011111111000001111111111111111
+01100111111000001100110011110011
+00100100001110100100001101010101
+01101111111001000100110011111110
+01100111111001000100110011101011
+00100000011000000000000000000000
+10011000010000001111111000000000
+11000011000000111100001110011110
+01011000000000000000000000000000
+00100000011000000000000000000000
+00011111111000010111111011111111
+00011111111001100111110001011000
+00100000011000010000000000000000
+01011000000000000000000001011000
+00100000011000000000000000000000
+01101010001000100100110011111010
+00011010001010010000010000000000
+01101111111000001100110011111001
+11000011000000010100001110101001
+00011010001000100111111000000000
+10011000010000001000010000000000
+01101111111000001100110011111001
+11000011000000001100001110101101
+00011010001000110111111000000000
+10011000010000001000010000000000
+01101111111000001100110011111001
+11000100000000000000000000000000
+00011010001010110111111000000000
+10011000010000001000010000000000
+00100000011000000000000000000000
+00100000010000000111001110010110
+00100000011101011000000000000000
+01011000000000000100010110111110
+01100111111000010100010111100000
+01011000000000000011001100001010
+01100111111000010100010111100010
+01011000000000000100011001011110
+01100111111000010100010111100100
+01011000000000000100010000101110
+01100111111000010100001111010101
+01011000000000000100010000110000
+01100111111000010100001111010111
+01011000000000000100010001010101
+01100111111000010100001111011011
+01011000000000000100010001110110
+01100111111000010100001111011101
+01011000000000000100001100001000
+01100111111000010100001111010011
+01011000000000000100010011010001
+01100111111000010100001111011111
+01011000000000000100010010010100
+01100111111000010100001111100011
+01000100100101110100000000000101
+00100000010000000100010000010010
+00100000010000000100010001100011
+00100000010000000111100010101101
+01110000010000001100000000000010
+01110000010010011011011100000000
+01101111111000001100011101111001
+01100111111000001100011001001000
+11000000000000000100001111011011
+01101111111000001100011101111010
+01100111111000001100010011101100
+01110000010000111000100000000000
+00100000010000000111011101110110
+00100000010000000111011110000000
+01110000010001111010000100000001
+01101111111000010100010011101001
+11000011100001100000000000000000
+00100000001000000100001100100111
+00100000001000000100001111111001
+01110000010001111010000100000010
+01110000010000111000100000000001
+01011000000000000000000000100000
+00100000010000000110001111000111
+11011000101000000100001001110011
+01101111111000001100001011011011
+00011111111000010000010011110000
+00011000010100011000010000000000
+00100000010000000100001111110011
+11100000010000001000000000000101
+00011111111000010000010000001111
+00100000010000000100001111110011
+11100000010000001000000000000101
+00100000010000000010100101010101
+01101000010010001100001001101011
+00011000010000100111001000000000
+11011000101000000100001101001011
+11011000110000000100001001101100
+00100000010000000111110011011010
+01101000010010001100001001101011
+00011000010000100111001000000000
+11011000101000000100001101101011
+11011000110000000100001001101100
+00100000001000000111110011011010
+00011000010001100111110000001001
+00100000001000010100001111110111
+00011000010000001000010000110111
+00100000011000000000000000000000
+00011000010000001000010000110000
+00100000011000000000000000000000
+01101111111000001100011101101110
+11000000111111111100010000001011
+01101111111000001100011101101100
+11000000111111111100010000001110
+01101111111000001100011101110111
+11000000111111111100010000010000
+01101111111000001100011011011010
+00011111111000100111001000000000
+01011000000000000100011011011011
+00011111111000100010001000000000
+00011010001000100000110000000000
+11101111111000001000000000000110
+00011000110000100010001000000000
+11000000011111111100010000001001
+00011111111000100000010000000000
+00100000010000000110111011110111
+11000010000000000100010000000011
+00100000011000000000000000000000
+01101111111001000100011101101110
+01100111111001000100011011011101
+00100000001000000100001111111011
+01100111111000001100011011011011
+00100000001000000100001111111101
+01100111111000001100011011011100
+00100000001000000100001111111111
+00100000010000000100010110111010
+00100000010000000100011001000000
+11011010001000000000000000000000
+00100000010000000111000001010101
+00100000010000000100001111111001
+00100000010000000100010001101011
+00100000010000000100010000101100
+00100000001000000100010000011011
+00100000011000000000000000000000
+01101111111000001100100110100100
+00011111111000100111001000000000
+01011000000000000100100110100101
+00011111111000100010001000000000
+00011010001000100000110000000000
+11101111111000001000000000000110
+00011000110000100010001000000000
+11000000011111111100010000100110
+00011111111000100000010000000000
+01100111111000001100100110101001
+00100000010000000100010000101000
+11000010000000000100010000011111
+00100000011000000000000000000000
+01101111111000001100100110101001
+11000001011111111000000000000000
+10011000000000000000010000000000
+00100000001000000110111011110111
+01110000010001110111110101100100
+00100000011000000000000000000000
+00100000010000000100010000110001
+00100000010000000111110111100010
+00100000001000000111000000011011
+00100000010000000111100010001011
+11011111001000000000000000010000
+11011000110000001000000001110000
+00011000110000100000101000000000
+11101111111000001000000000000110
+11000000000011111100010001000101
+11000000000100000100010001000101
+11000000000100001100010001000101
+11000000000100010100010001000101
+11000000000100011100010001000101
+11000000000101100100010001000101
+11000000000101101100010001000101
+11000000000000000100010001000101
+11000010000000000100010000110100
+11011111111000001000000011011100
+10011000110001100111110000000000
+00100000001000101100010001001011
+11011111001000000000000000001000
+11011000110000001000000011010100
+00100000001000000100010000110100
+01011000000000000000000001000000
+11100111111000001000000000000101
+00100000001000000100010000111110
+01011000000000000000000010000000
+11100111111000001000000000000101
+00100000001000000100010000111110
+01101111111000001100100110100100
+00011111111000100111001000000000
+11011000110000000100100110100101
+11101111111000001000000000000110
+01111001001000000111111000000111
+11011000010000000000000000111110
+00100000010000000110111100100000
+11000010000000000100010001001110
+00100000011000000000000000000000
+00100000001000000111000000100111
+00100000010000000100010001101101
+00100000010000000100010001011000
+00100000001000000100010001010100
+01101111111000010100010011101001
+11000011100001001000000000000000
+01101111111000001100100110110111
+11000000000000001100010001011101
+00100000011000000000000000000000
+01101111111000001100011110011000
+11000001000000001000000000000000
+01110000010001111001100000000001
+00100000010000000100010001100111
+00100000010000000100010001101001
+00100000001000000100010010000000
+01101111111000010100100110111100
+01100111111000010100100110111110
+01110000010010011100000000000000
+00100000011000000000000000000000
+01011000000000000000000000000000
+00100000001000000100010001100100
+11011010001000000000000000000000
+00100000001000000111011110111111
+11011010001000000000000000000000
+00100000001000000111011111000100
+01101111111000010100010011101001
+11000100000001001000000000000000
+00100000010000000010101000101000
+00100100011110100000000000000000
+11011010001000000100011011000110
+00100000010000000111100011001010
+00100100011101000000000000000000
+11011000110000000100011011000110
+00100000001000000110001111001011
+00011010011000100111111000000000
+11000000000101101100001101000111
+11000000000010000100001100101111
+11000000000010100100010001111100
+11000000000010101100010010000110
+00100000011000000000000000000000
+00100000010000000100010001100111
+00100000010000000100010001101001
+01111001001111111000000000100111
+00100000001000000100010010000010
+01101111111000010100011110011001
+01100111111000010100011110011011
+01110000010001110111110000010100
+01110000010000001001010000000000
+00100000010000000100001100010101
+00100000001000000100001100101011
+01111001001000000000000000100111
+00100000010000000100010001100011
+00100000010000000100010101101110
+00100000010000000100010101100010
+01011000000000000000000000000000
+01100111111000101100011101001010
+00100000010000000111100010101101
+01110000010001110000110000001010
+01110000010001110000111000001010
+01110000010001110001000000001010
+01110000010000001100000000000010
+01011000000000000000000000100000
+00100000010000000110001111000111
+00100000001000000100001100010111
+00100000010000000100010100001111
+00100000010000000100010100010010
+00100000010000000100010100010101
+00100000010000000100010010100001
+00100000001000000100010010011001
+11011010011000000100100110111000
+11011010010000000000000000000000
+00100000001000000100001011100000
+11011010011000000100100110111110
+11011010010000000100010010011111
+00100000001000000100001011100111
+01110000010010011100000000000001
+00100000011000000000000000000000
+11011010011000000100011110011011
+11011010010000000100010010100100
+00100000001000000100001011100111
+01110000010001111001100000000010
+01110000010010011011011100000000
+00100000001000000100010010001010
+01101111111000001100011101110110
+00100000011110100000000000000000
+11011010011000000100011101111100
+11011010010000000100010010101100
+00100000001000000100001011100000
+01101111111000001100011101111011
+01100111111000001100011101111100
+01101111111000001100011101111111
+00100100011110100000000000000000
+00100000010000000110111110110000
+01100111111000010100011110010110
+11011010001000000100011110010000
+00100000010000000110111111010111
+01101000010010001100011101111101
+10011000010001100111110000000000
+00100000001000010100010010111001
+01100111111000001100011101111101
+00011111111000100000010000000000
+01100000010010001100011101111110
+01101111111000001100011101111000
+10011000010001100111110000000000
+00100000010000010100010011000100
+01100000010010001100011110001001
+11011111001000000000000000000110
+11011000110000000100011110000100
+00100000010000000100010011001011
+01100111111000001100011110001010
+11011010001000000100011110000001
+00100000001000000111100010110010
+01101111111000001100011110000000
+00100100011110100000000000000000
+01110000010001111000000000000001
+11011010001000000000000000000001
+00100000001000000111011111000100
+11011010001000000000000000000001
+00100000001000000111011110111111
+11011010001000000000000000000000
+11101111111000001000000000000110
+10011010001000001010001000000000
+11000010000000000100010011001100
+00011010001000010111111011111111
+00100000011000000000000000000000
+01101111111000001100001110010111
+11000000000010010100010011010100
+00100000011000000000000000000000
+01101111111000010100001110011000
+11000000000011001100010011101011
+00100000011000000000000000000000
+01000100100101111100000000000101
+11101111111000101000000000010001
+01100111111000101000011011110001
+01101111111000010000011011110001
+11011000010000000110101101011010
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000010000011011110100
+00011111111100001111111000000000
+01100111111000010000011011110100
+00011111111000100111001000000000
+00011010001000001010001000000101
+00011010001000100000110000000000
+11011000101000000000011011110110
+00100000010000000111110011011010
+11101111111000001000000000000110
+01100111111000001000011100000000
+11011010001000000000011011110011
+11011010010000000000011011110110
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000101100011100000000
+01100111111000101100011100000101
+00100000010000000100010011010111
+00011010010000100000110000000000
+11011000101000000100011100000000
+11011111001000000000000000001010
+00100000010000000111110011011010
+01000100100110000100000000000110
+11101111111000001000000000010001
+11000000000000010100010100011110
+11000000000000011100010100110011
+11000000000000100100010100111010
+11000000000000101100010100111010
+11000000000000110100010110101010
+11000000000000111100010110101011
+11000000000001000100010110101110
+00100000011000000000000000000000
+00100000010000000100010011101011
+01101111111000001000011011110011
+11000000000000100100010100000010
+11000000000000101100010100000010
+00100000011000000000000000000000
+01101111111000001100011100000000
+00100100010110100100010100001001
+01101111111000001100011100000010
+00100100010110100100010100001011
+01101111111000001100011100000100
+00100100010110100100010100001101
+00100000011000000000000000000000
+01110000010010011010000100000101
+00100000011000000000000000000000
+01110000010010011010001000000101
+00100000011000000000000000000000
+01110000010010011010001100000101
+00100000011000000000000000000000
+11011010011000000100100110100001
+11011010010000000100010100011000
+00100000001000000100001011100000
+11011010011000000100100110100010
+11011010010000000100010100011010
+00100000001000000100001011100000
+11011010011000000100100110100011
+11011010010000000100010100011100
+00100000001000000100001011100000
+01110000010001110000000000000000
+00100000001000000100010100111010
+01110000010001110000001000000000
+00100000001000000100010100111010
+01110000010001110000010000000000
+00100000001000000100010100111010
+01101111111000001100011100000000
+01100111111000001100011100001011
+01101111111000001100011100000001
+01100111111000001100011100001101
+00100000001000000100010101000100
+01101111111000001100011100000000
+01100111111000001100011100001101
+00100000001000000100010101010010
+01101111111000001100011100001100
+00100000010000000100010100101011
+01101111111000001100011100000001
+01100111111000001100011100001011
+00100000001000000100010101010000
+11000000000000010100010100101111
+11000000000000011100010100110001
+01100111111000001100011100001100
+00100000011000000000000000000000
+01110000010001110000110000000101
+00100000011000000000000000000000
+01110000010001110000110000001010
+00100000011000000000000000000000
+01101111111000001100011100000000
+00100000010000000100010100101011
+01101111111000001100011100001100
+00100000010000000100010110011110
+00100000010000000100010110100001
+01110000000001100111000100000000
+00100000001000000111000001111010
+01101111111000001100011110011110
+00100100011110100000000000000000
+01101111111000110100011100000000
+01100111111000110100011100001011
+01101111111000001100011100001100
+01101000010010001100011100001110
+10011000010000010111111000000000
+01101000010010001100011100010000
+10011000010000010111111000000000
+00100000010110100100010101010110
+01000100100110001100000000000110
+01101111111000010100010011101001
+00101111111011111111111000001001
+00100100010000001100010001100011
+00100000010000000100010101010000
+00100000010000000100010101010010
+00100000001000000100010101001011
+01101111111000001100011100001011
+01101000010010001100011100001101
+10011000010000001111111000000000
+00100100001110100111100010001101
+00100000001000000111100010001011
+11011000110000000100011100001011
+00100000001000000100010101011000
+11011000110000000100011100001101
+00100000001000000100010101011101
+11011000110000000100011100001111
+00100000001000000100010101111010
+01110000010001110111111100000000
+00100000011000000000000000000000
+11101111111000001000000000000110
+11000000000000000100010101100010
+11000000000000001100010101100110
+11000000000000010100010101101010
+00100000011000000000000000000000
+11101111111000001000000000000110
+11000000000000000100010101101110
+11000000000000010100010101110010
+11000000000000001100010101110110
+00100000011000000000000000000000
+01101000010010001100100110100101
+00100000010000000110111011110011
+01101000010010001100100110100110
+00100000001000000110111011110011
+01101000010010001100100110100101
+00100000010000000110111011110111
+01101000010010001100100110100110
+00100000001000000110111011110011
+01101000010010001100100110100101
+00100000010000000110111011110011
+01101000010010001100100110100110
+00100000001000000110111011110111
+01101000010010001100100110100111
+00100000010000000110111011110011
+01101000010010001100100110101000
+00100000001000000110111011110011
+01101000010010001100100110100111
+00100000010000000110111011110111
+01101000010010001100100110101000
+00100000001000000110111011110011
+01101000010010001100100110100111
+00100000010000000110111011110011
+01101000010010001100100110101000
+00100000001000000110111011110111
+01000100100110010100000000000110
+11101111111000001000000000000110
+11000000000000000100010110000111
+11000000000000001100010110000000
+11000000000000010100010110000010
+00100000011000000000000000000000
+01110000010001110010100100000000
+00100000001000000100010110000011
+01110000010001110010100100000001
+11101111111000001000000000000110
+01100111111000001100011100101011
+11101111111001000000000000010010
+00100000001000000100010110001100
+11101111111000001000000000010010
+00100000010000000111000010111101
+00011010010000001010010000000001
+11101111111000001000000000010010
+00100000001000000111000010111101
+01100111111001000100011100101100
+01110000010001110111111100000001
+01101111111000001100011100101001
+11000000000000000100010110011010
+01101111111000001100011100101101
+01100111111000001100011100101110
+01101111111000001100011100101100
+00100000010000000111000010111101
+01101111111000001100011100101011
+00100000010000000100010110011110
+01100111111000001100011100110011
+01101111111000110100011100101110
+01100111111000110000011001110000
+00100000001000000111000001100110
+01101111111000001100011100101100
+01100111111000001100011100101110
+01101111111000001100011100101101
+00100000001000000100010110010011
+00011111111011111111111000000101
+00011111111000001111111000110010
+00100000011000000000000000000000
+11011000010000000010111011100000
+10011000010011111111111000000000
+00011111111001101111110001100100
+00100000010000000111110101100010
+00011000000001111000010000000000
+00011000010000100010001000000000
+01011000000000000010111011100000
+10011000010001100010010000000000
+00100000011000000000000000000000
+00100000011000000000000000000000
+01101111111001000100011100000000
+01100111111001000100011101001010
+00100000011000000000000000000000
+01101111111000001100011101100111
+01100111111000001100011101011101
+01101111111000001100011101101000
+01100111111000001100011101011110
+01101111111000001100011101101001
+01100111111000001100011101011111
+11011111001000000000000000001101
+11011000110000000100011101011000
+00100000010000000100010011001011
+01100111111000001100011101100101
+11011010001000000100011101010101
+00100000001000000111100010110010
+01011000000000000000000000000000
+01100111111001000100010111010110
+00100000010000000011001110011111
+00100000001000000011010000000010
+00100000010000000100010111000010
+00100000010000000100010111001010
+00100000010000000100011000001110
+00100000001000000100011001100101
+00100000010000000011010000000111
+01101111111000001100011000010110
+11000001100000001000000000000000
+01101111111000001100100110111000
+00100100001110100011010001100000
+01101111111000001100011110011000
+11000000000000010011010001100000
+00100000011000000000000000000000
+01101111111000001100011000010110
+11000001100000000000000000000000
+00100000010000000100010111011001
+00100000001101111100010111010111
+01101111111000001100100111000000
+00100000011110100000000000000000
+01101111111000001100100111000001
+00011111111000001111111000000001
+01100111111000001100100111000001
+11000000000000100100010111010111
+00100000010000000011001000100010
+00100000010000000100010111101010
+00100100001101111100010111001110
+01110000010010011100000100000000
+00100000011000000000000000000000
+01101111111000001100011000010110
+11000001100000000000000000000000
+00100000010000000100010111011110
+00100000010000000011010100011000
+00100000001000000100010111101010
+01101111111000001100011000010101
+11000011100000000000000000000000
+01111001001000000111111000000000
+01100111111000001100011000010101
+01101111111000001100011000100011
+01100111111000001100000101000001
+01110000010001100001000100000000
+01110000000010010000110100000000
+01110000010001100000101000000001
+01110000010001010111111000000000
+01101111111000100100100111011010
+00100000001000000011010001011101
+00100000010000000011001111110001
+00100100001101111011001110111110
+00100000010000000011001111100011
+00100100001101000011001110111110
+01101111111000001100010101111101
+00100000001110100011001110111110
+00011111111000001111111000000010
+10011000000000000111001000000000
+11011000110000000100010011110111
+11011000101000000100010111101000
+00100000010000000111110011011010
+01110000010001100001001100000000
+01101111111000001100011000010000
+00100000010110100011001111111110
+01101111111000001100010111101010
+11000000011111111100010111111100
+11000000000000001100011000000001
+00100000001000000011001110111011
+01101111111000001100011000010000
+00100100011110100000000000000000
+01101111111000001100010111010101
+00100000011110100000000000000000
+00100000001000000011010110011011
+00100000010000000011010100101110
+01101111111000001100011000001010
+01101000010010001100010111101000
+00101000010011111111111000000011
+01111001001000001111111000000000
+01100111111000001100011000001010
+11000000000000001100011000001001
+00100000001000000011001111001011
+01101111111000001100001111001011
+00011111111001100111110000001110
+00100000010000101111100010001101
+01101111111000100100010111110010
+00100000001000000011010110100011
+01101111111000001100011000010110
+11000001100000001000000000000000
+00100000010000000011001011111111
+00100000010000000100011001011011
+00100000010000000011001110111110
+00100000010000000011000100011001
+00100100001101111011001110111110
+00100000010000000011001100011110
+00100000010000000011001111110100
+00100000010000000011001110011001
+00100000010000000011001100010111
+01101111111000001100010111010101
+00100100001110100100011000100001
+00100000010000000011010100001010
+01101111111000001100011000010100
+00100000011110100000000000000000
+01011000000000000000000000000000
+01100111111000100100011000110000
+00100000011000000000000000000000
+01110000010001100001001100000000
+11011010001000000000000000000000
+00100000010000000111100010001101
+00100000010000000011010001100000
+00100000010000000011001001011000
+01101111111000100100010011110001
+01100111111000100100100111011010
+01101111111000001100100111100110
+00100100010110100100011000101100
+01101111111000100100100111011010
+00100000001000000011001000110110
+01101111111000001100100111100110
+00100000011110100000000000000000
+01101111111000001100011000101101
+01100111111000001100100111011101
+01101111111000001100010011110010
+01100111111000001100100111011100
+01101111111000001100011000101100
+01100111111000001100100111011011
+01101111111000001100010011110001
+01100111111000001100100111011010
+00100000011000000000000000000000
+00100000010000000100011001001010
+01101111111000100100100111011010
+01101000010010100100100111011110
+10011000010001100111110000000000
+00100000011000101000000000000000
+00011010011000100010010000000000
+11011010001000000100100111011010
+11011111001000000000000000000100
+00100000001000000110101101000101
+01101111111000100100010011110001
+01100111111000100100100111011010
+01101111111000001100100111100110
+00100000011110100000000000000000
+00100000011000000000000000000000
+00100000010000000100011001001010
+01101111111000100100100111011110
+00100000011110100000000000000000
+01100111111000100100100111011010
+00100000011000000000000000000000
+00100000011000000000000000000000
+01101111111000001100100111100110
+00100000011110100000000000000000
+11011010011000000000011100000000
+00011010011000100010010000000000
+11011010001000000100100111100010
+11011111001000000000000000000100
+00100000010000000110101101110100
+01101111111000100100100111100010
+00100000011110100000000000000000
+01100111111000100100100111011110
+00011010011000100111111000000000
+11011000010000000000011111001100
+10011000010001100111110000000000
+00100000011000010000000000000000
+00011010011000001010011000000100
+00100000001000000100011001001110
+01101111111000100100011000110000
+00100000011110100000000000000000
+00100000001000000011001000110110
+01101111111000010100010011101001
+11000011100001001000000000000000
+01101111111000010100011110011001
+01100111111000010100011110011011
+01110000010010011011011100000001
+11011010001000000100010111101011
+00100000001000000100010011111101
+01101111111000001100100111000000
+00100000011110100000000000000000
+00100000010000000100011001101101
+00100100011101000000000000000000
+01101111111000011100010110101111
+00100000010000000111110100100101
+01100000010010100100000010101001
+00100000001000000010010000011110
+01111000001101000111110000000000
+00100000010000000010010000001000
+01101111111000011100000010111101
+00100000001110100111110110111100
+00100000001000000100010000110000
+00100000011101011000000000000000
+00100000010000000100011101110010
+00100000010000000110111111110111
+01011000000000000100011101010110
+01100111111000010100010111110010
+01011000000000000100011010110110
+01100111111000010100010111110110
+01011000000000000100011010110001
+01100111111000010100001111010101
+01011000000000000100011011110000
+01100111111000010100001111011011
+01011000000000000100011011110010
+01100111111000010100001111011101
+01011000000000000100011100111011
+01100111111000010100001111100011
+01011000000000000100011010100110
+01100111111000010100011011101110
+01011000000000000100011010010110
+01100111111000010100011011110010
+01000100100110011100000000000110
+00100000010000000110110011000001
+00100000010000000100011010101101
+00100000010000000111100010101101
+01101111111000001100011010111110
+01100111111000001100011000101101
+11000000000000000100011010010101
+01101111111000001100011010111111
+01100111111000001100010011101100
+00100000010000000100011010100110
+00100000010000000111011101110110
+00100000010000000111011110000000
+01110000010001101110101000000001
+01101111111000010100010011101001
+11000011100001100000000000000000
+00100000001000000100001100100111
+01110000010001101110101000000010
+00100000010000000100011010100110
+11011010001000000000000000000000
+00100000010000000111011111000100
+00100000010000000100011100011001
+01101111111000100100011100000000
+01100111111000100100010110001111
+00100000001110100011001010010001
+01101111111000100100010110001111
+01100111111000100100010111101000
+01101111111000010100010111011100
+01100111111000010100010111011110
+00100000001000000011010100110100
+11011000010000000000000000000100
+11011010001000000100010110001111
+11011010010000000000000000000000
+00100000011000000000000000000000
+01000100100110100100000000000110
+01101111111000001100011010111100
+11000000111111111100011010101011
+01101000010010001100011010011001
+00100000001000000110111011110111
+01100111111000001100011010011001
+00100000001000000100011010101001
+00100000010000000011010111110000
+01101111111000010100011011100110
+01100111111000010100011011101000
+00100000011000000000000000000000
+00100000010000000100011010110110
+01101111111000001100011010001111
+01111001001000000111111000000111
+11011000010000000000000000111111
+00100000001000000110111100100000
+00100000010000000110111100110101
+00100000001000000111000000011011
+00100000010000000111000000100111
+00100000010000000100011011001001
+00100000010000000100011010111100
+00100000001000000100011011010111
+01101111111000001100011011110101
+11000001100000001000000000000000
+01101111111000100100011011111001
+00100000001110100100011011000011
+01110000010001101111111100000000
+01111000001101000111110000000000
+00100000001000000111100010001101
+01101111111000001100011011111111
+11000001011111111000000000000000
+00011111111000001111111000000001
+01100111111000001100011011111111
+01111000010101000111110000000000
+00100000001000000111100010001011
+01101000010010010100010000101110
+00011000010000010111111000000001
+00011000010000110000010000000000
+01100111111000001100011011111001
+00011000010000010111111000000001
+00011000010000110000010000000000
+01100111111000001100011011111010
+00011000010000010111111000000001
+00011000010000110000010000000000
+01100111111000001100011011111011
+00011000010000010111111000000001
+00011000010000110000010000000000
+01100111111000001100011011111100
+00100000011000000000000000000000
+01000100100110101100000000000110
+00100000010000000100011011100110
+00100000010000000100011011101011
+00100000010000000100011011011101
+00100100011101000000000000000000
+00100000001000000100011101010010
+01101111111000001100011011110101
+11000001100000001000000000000000
+01101111111000001100011011111111
+00100000011110100000000000000000
+00011111111001100111110000000001
+00100100011000010000000000000000
+01101111111000010100010111011100
+01100111111000010100010111011110
+00100000001000000111110110111010
+01101111111000001100011011111001
+00100100001110100100011101000110
+01101111111000001100011011111010
+00100100001110100100011101001000
+00100000001000000100011101001110
+01101111111000001100011011111011
+00100100001110100100011101001010
+01101111111000001100011011111100
+00100100001110100100011101001100
+00100000001000000100011101010000
+00100000010000000100011100110000
+00100000001000000100011010111000
+00011010011000100111111000000000
+11000000000101101100001101000111
+11000000000010000100001100101111
+11000000000111001100011011111010
+11000000000111100100011100000001
+11000000000111010100011011111001
+00100000011000000000000000000000
+00100000001000000011010101111011
+01000100100110110100000000000110
+01101111111000100100010111101000
+01100111111000100100011100000000
+01101111111000001100011100001100
+00100100010110100100011100000110
+01101111111000100100011100000000
+00100000010000000011001000110110
+01110000010001011111110000000000
+01110000010001101111011000000001
+01110000010001101111011100000001
+01110000010001011101111000000000
+00100000011000000000000000000000
+01101111111000001100011100001100
+00100000011110100000000000000000
+01101111111000001100010011110010
+01100111111000001100011100000011
+01101111111000001100010111101001
+01100111111000001100011100000010
+01101111111000001100010011110001
+01100111111000001100011100000001
+01101111111000001100010111101000
+01100111111000001100011100000000
+00100000010000000100011100100000
+01101111111000100100011100000000
+01101000010010100100011100000100
+10011000010001100111110000000000
+00100000011000101000000000000000
+00011010011000100010010000000000
+11011010001000000100011100000000
+11011111001000000000000000000100
+00100000001000000110101101000101
+01101111111000001100011100001100
+00100000011110100000000000000000
+00100000010000000100011100100000
+01101111111000100100011100000100
+00100000011110100000000000000000
+01100111111000100100011100000000
+00100000011000000000000000000000
+01101111111000001100011100001100
+00100000011110100000000000000000
+11011010011000000000011100000000
+00011010011000100010010000000000
+11011010001000000100011100000100
+11011111001000000000000000000100
+00100000010000000110101101110100
+01101111111000100100011100001000
+00100000011110100000000000000000
+01100111111000100100011100000100
+00011010011000100111111000000000
+11011000010000000000011111001100
+10011000010001100111110000000000
+00100000011000010000000000000000
+00011010011000001010011000000100
+00100000001000000100011100100011
+01101111111000001100011011110110
+11000001000000000000000000000000
+01101111111000001100011011110101
+11000001000000001000000000000000
+01110000010001101111010100000001
+11011010001000000000000000000000
+00100000001000000111011110111111
+11011010001000000000000000000000
+00100000010000000111011110111111
+00100000010000000100011010100110
+00100000001000000100001100100111
+00100000010000000100001011101110
+00100000010000000011001010001110
+00100000010000000011010100110001
+00100000001000000100011100111111
+01101111111000001100011011000000
+00100000011110100000000000000000
+01101111111000001100010000101110
+00100100001110100100011010101110
+11011010011000000100011011101000
+11011010010000000100011100110111
+00100000001000000100001011100111
+01110000010001101100011100000001
+00100000011000000000000000000000
+01110000010001101100011100000010
+00100000011000000000000000000000
+01110000010001101100100100000001
+00100000011000000000000000000000
+01110000010001101100100100000010
+00100000011000000000000000000000
+01110000010001101100011100000000
+00100000011000000000000000000000
+01110000010001101100100100000000
+00100000011000000000000000000000
+11011010001000000100011011000001
+00100000001000000111100010110010
+11011010001000000100011011001110
+00100000001000000111100010110010
+01101111111000001100011011110111
+11000000000000001100011101100000
+11011010001000000100011011010111
+00100000010000000111100011001010
+00100100001101000100011101100101
+11011000110000000100011011010111
+11101111111000001000000000000110
+00011111111000100010001000000000
+11011010010000000100011011011000
+00100000011000000000000000000000
+01110000010001101111011100000000
+01111000001101000111110000000000
+11011010001000000000000000000001
+11011010010000000100011011111000
+00100000011000000000000000000000
+01101111111000001100011011011010
+11000000000000100100011101101001
+11000000000000101100011101101001
+00100000011000000000000000000000
+01101111111000001100011011011101
+00100100001110100100011101110000
+01101111111000001100011011011111
+00100100001110100100011101110000
+01101111111000001100011011100001
+00100100001110100100011101110000
+00100000011000000000000000000000
+01111000001101000111110000000000
+00100000001000000100011101011011
+01110000010001001110101100010100
+01110000010001001110010000000001
+01011000000000000000011000001111
+01100111111000010100011000101110
+01011000000000000100011000101110
+01100111111000010100001111111011
+01110000010000001001010000000001
+01110000010000001010011000000110
+01110000010000001100000100000010
+01110000010001100010110100000000
+01011000000000000100011010001101
+01100111111000010100010011101111
+01110000010001001110111000000001
+01110000010001101000111011111111
+01011000000000000000001010010110
+01100111111000010100011010010000
+01011000000000000000011100111010
+01100111111000010100011010010010
+01011000000000000100011011101010
+01100111111000010100010000110000
+01011000000000000000110000001100
+01100111111000010100011011101100
+01011000000000000100011010100001
+01100111111000010100010000101100
+01110000010001101011111000000000
+01110000010001101011110011111111
+01110000010001101011111111111111
+01110000010001101011101000000000
+01110000010001101011101100000000
+01110000010001101011110100000000
+01110000010001101100000000000001
+01011000000000000100111001010101
+01100111111000010100011010101101
+01100111111000010100011010101111
+01011000000000000000000000000111
+01100111111000010100011010110011
+01110000010001000000011100000010
+00111000000000110101101000001100
+00111000000001000000000100011010
+00111000000010000000000001100000
+00111000000011000000000000101000
+01100111111001001100011011000001
+00111000000000100000000000001010
+00111000000001000000000000000010
+11100111111000100000000000000101
+00111000000000110101101000001000
+00111000000001000000000110011010
+00111000000010000000000000000000
+00111000000011000000000000000000
+01100111111001001100011011001110
+01011000000000000000000001100100
+01100111111000010100011011100110
+01110000010000010100000100000000
+01110000010001011000100100000001
+01110000010001100000001100000110
+01110000010001011010111000000001
+01110000010001011110001100000000
+00100000010000000011001001111000
+00100000010000000011010111111011
+00100000010000000011001001011011
+01011000000000000000011100001000
+01100111111000010100010111010110
+01011000000000000000000001010000
+01100111111000010100010111011100
+01011000000010100111011100000000
+01100111111000011100011000001011
+01011000011000000100100000000000
+01100111111000011100010110101111
+00100000011000000000000000000000
+01011000000000000100011111101010
+01100111111000010100010111100000
+01011000000000000100100011010100
+01100111111000010100010111100100
+01011000000000000100100011100101
+01100111111000010100010111100110
+01011000000000000100100010101011
+01100111111000010100010111100010
+01011000000000000100011111111001
+01100111111000010000100001011001
+00100000001000000111100100010010
+01000100100110111100000000000110
+00100000010000000100011111101111
+00100000010000000100011111100101
+01101111111000001100011001101001
+00101111111011111111111000000101
+00100000001000001100011111001011
+01101111111000001100011001101001
+00101111111011111111111000000110
+00100000010000001011001001101011
+01101111111000001100011010010100
+01100111111000001100000101000001
+01110000010001011101001011111111
+01011000000000000000100110011111
+01100111111000010100011001000000
+01011000000000000000101010011111
+01100111111000010100011001000010
+01011000000000000000101110011111
+01100111111000010100011001000100
+01011000000000000000110010011111
+01100111111000010100011001000110
+01110000010001011101000110000101
+01110000010001101001001000000000
+01110000010001100010101100000000
+00100000010000000011001010000001
+01101111111000001100011001101001
+00101111111011111111111000000011
+00100000010000001011001010000100
+00100000010000000011001110011111
+00100000010000000011001010000111
+00100000010000000011001001011011
+01101111111000001100011001110011
+01100111111000001000100001011011
+01101111111001001100011001101010
+01100111111001001000100001011100
+00100000011000000000000000000000
+01110000010000001001100100011000
+01101111111000001100011001101001
+11000100000000111000000000000000
+01110000010000001001100100010000
+00100000011000000000000000000000
+01101111111000001100011000010000
+11000000000000000100100010011011
+11000000000000001100100000100010
+11000000000001111100100000011110
+00100000011000000000000000000000
+01000100100111000100000000000111
+11011010010000000001111111011111
+11011010001000000100011001001000
+11011111001000000000000000000001
+00100000001000000110101101110100
+01000100100111001100000000000111
+11011111001000000000000000000001
+11011010001000000100011001001000
+11011010010000000001111111011111
+00100000001000000110101101000101
+01101111111000001100011001101001
+11000010100000100100011111111101
+01101111111000001100011001001000
+11000000101011010100100000000001
+01110000010001100100100001011010
+01101111111100100001001101111010
+01111001001000000111111000011101
+01100111111000100000011110110100
+00100000010000000100100000011000
+00100000010000000111100101100110
+00100000010000000100100000000101
+00100000001000000100100000001110
+01101111111000001000100001011100
+00100000011110100000000000000000
+01101111111000001100011001001000
+11000000001011010100100000001100
+01101111111000100000100001011101
+01100111111000100000011110110100
+00100000011000000000000000000000
+01101111111000100000100001100001
+00100000001000000100100000001010
+01101111111000001100011001001000
+11000000001011010100100000010100
+01011000000000001001001001110010
+01100111111000010000011110100111
+01110000000001111101100000011010
+00100000011000000000000000000000
+01011000000000001001001010001101
+01100111111000010000011110100111
+01110000000001111101100000111111
+00100000011000000000000000000000
+01101111111000001100011001110100
+00100000011110100000000000000000
+11011000110000000100011001110100
+11011000101000000000100000011101
+11011111001000000000000000011110
+00100000001000000111110011011010
+00100000010000000011010001100000
+00100000010000000100100010100011
+00100000010000000100100001100111
+00100000001000000100100000011111
+00100000010000000011010001100000
+00100000010000000100100010100011
+00100000010000000011010001101001
+00100000010000000100100001100111
+00100000001000000100100000100011
+00100000010000000100100000101011
+00100000010000000100100000111011
+00100000010000000100100001001100
+00100000001000000100100001011001
+01000100100111010100000000000111
+01101111111000001100011001101000
+00100000011110100000000000000000
+11011000111000000000000000001101
+00100000010000000111110011101111
+00100100011110100000000000000000
+01110000010001100110100000000000
+01011000000000000000000000000001
+01100111111000001000100100010011
+01011000000000000000000000000000
+11100111111000111000000000000101
+01110000000010010000110000100000
+01101111111000001000100100001101
+01111001001000000111111000000010
+01100111111000001000100100001101
+00100000011000000000000000000000
+01000100100111011100000000000111
+01101111111000001100011001100101
+00100000011110100000000000000000
+11011000111000000000000000001110
+00100000010000000111110011101111
+00100100011110100000000000000000
+01110000010001100110010100000000
+11011000101000000000100100100011
+00100000010000000111110010011001
+01101111111001000000100100100011
+01100111111001000100011001010001
+01110000000010010010001100000000
+01110000000010010000101100010000
+01101111111000001000100100001101
+01111001001000000111111000000001
+01100111111000001000100100001101
+00100000011000000000000000000000
+01101111111000001100011001100111
+00100000011110100000000000000000
+11011000111000000000000000001010
+00100000010000000111110011101111
+00100100011110100000000000000000
+01110000010001100110011100000000
+11011000101000000000100101000011
+00100000010000000111110010011001
+01110000000010010100001100000010
+01101111111000010000100101000011
+01100111111000010100011001011111
+01110000000010010000110000100010
+00100000001000000100100000110111
+01000100100111100100000000000111
+01101111111000001100011001100110
+00100000011110100000000000000000
+11011000111000000000000000001100
+00100000010000000111110011101111
+00100100011110100000000000000000
+01110000010001100110011000000000
+11011000101000000000100100110011
+00100000010000000111110010011001
+01110000000010010011001100000011
+01101111111000011000100100110011
+01100111111000011100011001011100
+01110000000010010000110000100001
+00100000001000000100100000110111
+01000100100111101100000000000111
+01101111111000001000100100000001
+00100000010110100100100010110101
+00100000010000000111100100000110
+01101111111000001000100011110111
+00100000011110100000000000000000
+01110000000010001111011100000000
+01101111111000010000100011110101
+11011000010000000000001010111010
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000001000100001110101
+11000001110111010000000000000000
+01101111111000001000100001110110
+11000000010100000100100001111100
+11000000010100001100100010000010
+11000000010100110100100010001110
+11000000010100111100100010010000
+11000000010101001100100010010110
+01110000000010001111100000000000
+00100000011000000000000000000000
+01101111111000001000100001110111
+11000000010000001100100001111111
+00100000001000000100100001111010
+00100000010000000011001011111100
+01110000000010001111100000000001
+00100000011000000000000000000000
+01101111111000001000100001110111
+11000000000000001100100010000111
+11000000010000100100100010001010
+11000000010100111100100010001100
+00100000001000000100100001111010
+01101111111000001100010111010101
+01100111111000001000100010110110
+00100000001000000100100010000000
+00100000010000000011010001100001
+00100000001000000100100010000111
+01110000000010001011011010100001
+00100000001000000100100010000000
+01110000000010001011011000010101
+00100000001000000100100010000000
+01101111111000001100011000010110
+11000000000000000100100010010100
+11000000000000001100100010001100
+00100000011000000000000000000000
+01110000000010001011011010100000
+00100000001000000100100010000000
+01110000000010001011011000000000
+01110000000010001011011100000000
+01110000000010001011100000000001
+01110000000010001011100100000111
+00100000001000000100100010000000
+00100000010000000011010000000010
+00100000010000000011010000000111
+00100000010000000011010000101101
+00100000010000000100100010100011
+00100000010000000011010001101001
+00100000010000000011010010001000
+00100000010000000100100001100111
+00100000001000000100100010011100
+01000100100111110100000000000111
+01101111111000001100011000010110
+11000001100000000000000000000000
+00100000010000000011010001100100
+00100000010000000100100000100111
+01101111111000001100011000010000
+00100100011110100000000000000000
+00100000001000000011010100001010
+01101111111000001100010110001001
+11000000000000001100100010101110
+11000000000000010100100010110111
+01101111111000001100011010010011
+11000010100000000100100010111101
+00100000001000000100100010111001
+01101111111000001100001111001011
+11000001100000100000000000000000
+01110000010001101001001100000011
+00100000011000000000000000000000
+01110000010001101001001100000000
+00100000011000000000000000000000
+01101111111000001100011010010011
+11000010100000001100100011000001
+01101111111000001100011000010001
+11000000000000001100100011001000
+11000000000000011100100011001100
+00100000011000000000000000000000
+01101111111000001100011010010011
+01111001001111111111111000000000
+01100111111000001100011010010011
+00100000001000000100100011000100
+01101111111000001100011010010011
+01111001001111111111111000000001
+01100111111000001100011010010011
+01110000010001011000100000000001
+01011000000000000000000011111111
+01100111111000001100010100011001
+00100000011000000000000000000000
+01110000010001100001000100000001
+00100000010000000011001101111110
+00100100011101111000000000000000
+00100000001000000011001100001010
+01101111111000001100010011111001
+11000000000000001100100011001000
+11000000011111111100100011001000
+01110000000010001111100100000000
+01110000010001011000100000000001
+01101111111000001100011000100001
+01100111111000001100010100011001
+00100000011000000000000000000000
+01011000000000000000000000000001
+01100111111000001000100100010011
+01101111111000111100010111101011
+11100111111000111000000000000101
+01101111111000001100010111101011
+00100100010110100100100011011101
+01101111111000001100010111101011
+00100000010110100100100011100001
+00100000001000000100100000110110
+01110000010001100110100000000001
+01011000000000000000000110000000
+11011000111000000000000000001101
+00100000001000000111110011100001
+01110000010001100110100000000000
+01011000000000000000000000000000
+11011000111000000000000000001101
+00100000001000000111110011100001
+01101111111000001100010111101011
+11000000000000000100100011101010
+11000000000000010100100100011101
+11000000000000011100100100000101
+00100000001000000011001110111110
+01101111111000001100010111101101
+01100111111000001100011000010001
+01110000010001011110110100000000
+11011000101000000000100100100011
+11011000110000000100010111101100
+11011111001000000000000000001000
+00100000010000000111110011011010
+01101111111001000000100100100011
+00100100010110100100100011111101
+01101111111001000000100100100011
+00100000010110100100100100000001
+01101111111001000000100100100011
+01100111111001000100011001001001
+01101000010011000100011001010001
+10011000010001100111110000000000
+00100100010000101100100001000111
+01101111111001000100011001001001
+01100111111001000100011001010001
+00100000001000000011001110111110
+01110000010001100110010100000001
+01011000000000000000000110000000
+11011000111000000000000000001110
+00100000001000000111110011100001
+01110000010001100110010100000000
+01011000000000000000000000000000
+11011000111000000000000000001110
+00100000001000000111110011100001
+11011000101000000000100100110011
+11011000110000000100010111101011
+11011111001000000000000000000011
+00100000010000000111110011011010
+01101111111000010000100100110100
+00100100010110100100100100010101
+01101111111000010000100100110100
+00100000010110100100100100011001
+01101111111000011000100100110011
+01100111111000011100011001011001
+01101000010010011100011001011100
+10011000010001100111110000000000
+00100100010000101100100001100101
+01101111111000011100011001011001
+01100111111000011100011001011100
+00100000001000000011001110111110
+01110000010001100110011000000001
+01011000000000000000000110000000
+11011000111000000000000000001100
+00100000001000000111110011100001
+01110000010001100110011000000000
+01011000000000000000000000000000
+11011000111000000000000000001100
+00100000001000000111110011100001
+11011000101000000000100101000011
+11011000110000000100010111101011
+11011111001000000000000000000010
+00100000010000000111110011011010
+01101111111000010000100101000011
+00100100010110100100100100101101
+01101111111000010000100101000011
+00100000010110100100100100110001
+01101111111000010000100101000011
+01100111111000010100011001011111
+01101000010010010100011001100010
+10011000010001100111110000000000
+00100100010000101100100100110101
+01101111111000010100011001011111
+01100111111000010100011001100010
+00100000001000000011001110111110
+01110000010001100110011100000001
+01011000000000000000000110000000
+11011000111000000000000000001010
+00100000001000000111110011100001
+01110000010001100110011100000000
+01011000000000000000000000000000
+11011000111000000000000000001010
+00100000001000000111110011100001
+01110000000010010000110000100010
+00100000001000000100100000110111
+01101111111000001100001111001011
+11000001100000100000000000000000
+01101111111000001100011001001000
+11000001001011010000000000000000
+01110000010001101001001000000001
+00100000011000000000000000000000
+01101111111000001100001111001011
+11000001100000100000000000000000
+01101111111000001100011010010010
+00100000011110100000000000000000
+01110000000001100111100000000000
+01110000010001100100100001011010
+00100000010000000100011111110100
+00100000010000000100011111101111
+01101111111000001000011001111000
+00011111111000001111111000000001
+01100111111000001000011001111000
+11000000011111111110110010100011
+01101111111000001100011001001000
+11000000101011010100100101000010
+00100000001000000110110010100011
+01101111111000001100001111001011
+11000001100001111000000000000000
+00100000010000000101010010101100
+00100100001101000010000000000010
+01101111111000001100100001000110
+00100000001110100010000000000010
+01101111111000001100011001010101
+11000001011111111000000000000000
+00011111111000100000111000000000
+01101111111000100000011010011101
+10101111111011000000000000000000
+00100000010000001100111001000101
+00100000001000000010000000000011
+00100000010000000111001110010110
+00100000010000000100100110100001
+00100000010000000100100111001000
+00100000010000000100100111101010
+00100000011101011000000000000000
+00100000010000000100100101100110
+00100000010000000100101001111010
+01101111111000001100011001100011
+11000011100000111000000000000000
+01101111111000010100010011101001
+11000010100001100100101110010101
+00100000010000000101111010110110
+00100000001000000100101111001111
+01101111111001000100011100010011
+11000100000001101000000000000000
+01011000000000000100100101101100
+01100111111000010000100001011001
+01110000010001100110010010100101
+00100000001000000100100110001110
+00100000010000000100100101101111
+00100000010000000100100101110100
+00100000001000000100100110000100
+01110000010001100110010100000000
+01101111111001000100011100010011
+11000100000010110000000000000000
+01110000010001100110010101011010
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000010100011101100100101111011
+11000010100011110100100101111110
+11000010100011111100100110000001
+01110000010001100110001000011001
+01110000000010000101101100001000
+00100000011000000000000000000000
+01110000010001100110001000001100
+01110000000010000101101100000100
+00100000011000000000000000000000
+01110000010001100110001000000110
+01110000000010000101101100000010
+00100000011000000000000000000000
+01110000010001100110001000000011
+01110000000010000101101100000001
+00100000011000000000000000000000
+00100000010000000111100101100110
+00100000010000000100100110000111
+00100000001000000100100110001100
+01101111111000001000100001011100
+00100000011110100000000000000000
+01101111111000001100011001100101
+11000000001011010100100000001100
+00100000001000000100100000001001
+01101111111000001100011001100101
+00100000001000000100100000001111
+01000100101000001100000000001000
+01101000010010001000100001101100
+00100000010000000110111011100110
+00100000001000001100100110010011
+00100000001000000100100110011010
+01101111111000001100011001100100
+11000001010100101000000000000000
+01110000010001100110010010100101
+01110000000010010000111000000000
+01110000000001110000100100000000
+01110000000010010000000000000000
+00100000001000000100100101100010
+01101111111000001100011001100100
+11000001001011010000000000000000
+01110000010001100110010001011010
+00100000010000000110000000011000
+00100000010000000101101010101010
+00100000010000000100111101110000
+00100000001000000111100100010010
+00100000011101011000000000000000
+00100000010000000011010111110000
+00100000010000000011001001011011
+00100000010000000100100110101111
+01101000010010001100100001100101
+00100000010000000110111011110011
+00100000010000000100101101101101
+00100000010000000110000101110111
+00100000010000000010101001000001
+01101111111001000100011100010011
+11000010100010100100100111111101
+11000010100010011101110101100000
+11000010100010010101110101101110
+00100000011000000000000000000000
+00100000010000000101010000111011
+01110000010010001110101100000000
+01011000001000110000000101110000
+01100111111000011100011000101101
+01011000000000010101001100000001
+11100111111000011000000000000101
+11011000101000000100011110100000
+11011111001000000000000000010100
+00100000010000000111110010100001
+01101111111000001100001001101011
+00011111111001100111110000001100
+00100100001000010100100111000110
+01011000000001101111111100000110
+01100111111000011100011110100000
+01011000000000000000001100000000
+11100111111000011000000000000101
+01011000000000000000000010000000
+11100111111000001000000000000101
+01101111111000001100001001101011
+00011111111000001111111000000001
+00011111111000100111001000000000
+11011000110000000100001101101001
+00100000001000000111110011011010
+11011000101000000100011110100000
+00100000001000000100100111000001
+01101000010010001100100001100100
+00100000010000000110111100001111
+01101000010010001100100001100011
+00100000010000000110111100001111
+01101000010010001100100001100101
+00100000010000000110111100001111
+01011000000000000100100001101110
+01100111111000010100100010010110
+01011000000000000100100001110110
+01100111111000010100100010011000
+01011000000000000100100010001010
+01100111111000010100100010011010
+01101111111000010100100010010110
+00011111111000100010010000000000
+11011111001000000000000000001000
+11101000010000001000000000010010
+00011000010001100111110011111111
+00100100010000101100100111100111
+00011010010000001010010000000001
+11000010000000000100100111010111
+00100000010000000010001111111101
+01101111111000010100100010011000
+00011111111000100010010000000000
+00011111111000100010011000000000
+11011111001000000000000000001011
+11101000010000001000000000010010
+00101000010011111111111000000111
+00100100010000001110111100001111
+00011010010000001010010000000001
+11000010000000000100100111100001
+00100000011000000000000000000000
+00100000010000000110111100001111
+11101000010000001000000000010010
+00100000001000000110111011000110
+01101111111000001100011001100110
+11000000000000001100100111110001
+01011000010111010100100000000000
+01100111111000100100011000010011
+01101111111000001100010000001100
+11000100000000000000000000000000
+00100000001000000101111111100100
+01110000010010010110101100001100
+01101111111000001100010000001100
+11000100000000000000000000000000
+01110000010010010110101100010000
+01101111111000001100011101111110
+00100000001110100101110000000001
+00100000011000000000000000000000
+01101111111000010100100111011111
+11011000010000000000010100101000
+10011000010001100111110000000000
+00100100011000010000000000000000
+00100000001000000010001101011010
+01000100101000010100000000001000
+01101111111000001100011001100110
+11000000000000000100101000000010
+11000000000000001100101000001100
+00100000011000000000000000000000
+11011011000000000000000001010000
+01011000000000000000010000000000
+10011011000001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+01100111111000010000011001110000
+11011111111000000001111111001100
+11011000010000000000000000000100
+11011101011000000000000000000100
+00100000001000000100101000010110
+11011011000000000000000100011000
+01011000000000000000010000000000
+10011011000001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+01100111111000010000011001110000
+11011111111000000001111111000010
+11011000010000000000000000001110
+11011101011000000000000000001110
+00100000001000000100101000010110
+01100000010010001000011001111000
+11011010001000000100100111000111
+11011010011000000000000000000000
+00011111111000100010010000000000
+01101111001000001000011001111000
+00100000010000000110101101110100
+01101111111001000100100111000111
+01101000010011000100100111001111
+10011000010000011111111000000000
+01101000010011000100100111010111
+10011000010000011111111000000000
+00100000001110100100101000101000
+00011010011000001010011000000001
+01101111111000010000011001110000
+10011010011001100111110000000000
+00011010010000100111111000000000
+10011011000001100111111000000000
+00100000001000000100101000011001
+00011010011001100111110000000000
+00100000001000101100101000111000
+00011010010000100111111000000000
+10011011000000001111111000000000
+10011101011001100111111000000000
+00011111111000100010010000000000
+01101111001000001000011001111000
+00100000010000000110101101110100
+01101111111001000100100111000111
+01101000010011000100100111001111
+10011000010000011111111000000000
+01101000010011000100100111010111
+10011000010000011111111000000000
+00100000001110100100101000111010
+00011010010000100111111000000000
+00100000001000000100101000101100
+01100101011000001100100111011111
+00100000011000000000000000000000
+01000100101000011100000000001000
+01011000000000000001111111010000
+10011010010001100111111000000000
+01100111111000010100100111011111
+00011010010000100111111000000000
+10011101011000001010010000000000
+01101111001000001000011001111000
+11011010001000000100100111000111
+00100000010000000110101101110100
+01101111111000001100011001100110
+11000000000000000100101001000111
+11000000000000001100101001001010
+00100000011000000000000000000000
+01101111111000110100100111000111
+01100111111000100100011010010001
+00100000001000000100101001110110
+01101111111000001100100111000111
+00011111111001100111110000000011
+00100100010000010111110111001010
+01100111111000001100100111000110
+01101111111000001100100111001000
+01100111111000001100011001100111
+01101111111000110100100111001001
+01100111111000110100011001101000
+01101111111000110100100111001111
+01100111111000110100011001101110
+00100000001000000101110001101111
+00100000001000000010001101011010
+01000100101000100100000000001000
+01101111111001000100011100010011
+11000010100010100100101001011100
+11000010100010011101110010110001
+11000010100010010101110010111001
+00100000011000000000000000000000
+00100000011000000000000000000000
+01101111111000001100011001100110
+11000000000000000100101001100001
+11000000000000001100101001101011
+00100000011000000000000000000000
+01101000010010010100100111011111
+01011000000000000001111111010000
+10011000010001100010010000000000
+11011010001000000100011010010001
+11011111001000000000000000000100
+00100000010000000110101101000101
+01101000010010010100100111011111
+00011000010000001000010000000100
+01100000010010010100100111011111
+00100000011000000000000000000000
+01101000010010010100100111011111
+01011000000000000001111111010000
+10011000010001100010010000000000
+00011010010000001010010000000001
+11011010001000000100011001101000
+11011111001000000000000000000110
+00100000010000000110101101000101
+00011010010000001010010000000111
+11011010001000000100011001101110
+11011111001000000000000000000110
+00100000001000000110101101000101
+01101111111000100100011010010001
+01100111111000100100010111101000
+01100111111000100100010110001111
+00100000011000000000000000000000
+01000100101000101100000000001000
+01011000000000000110000100001001
+01100111111000010100001111101001
+01011000000000000100111111100101
+01100111111000010100010111110010
+01011000000000000100111111111000
+01100111111000010100010111110100
+01011000000000000100111101000001
+01100111111000010100010111110110
+01011000000000000100101111100110
+01100111111000010100001111011001
+01011000000000000100111101011101
+01100111111000010100001111010111
+01011000000000000100101010011010
+01100111111000010100001111011101
+01011000000000000100101111001100
+01100111111000010100001111011011
+01011000000000000100111101100010
+01100111111000010100001111010101
+01011000000000000101101100001000
+01100111111000010100001111011111
+01011000000000000100101100011001
+01100111111000010100001111100011
+01011000000000000101010111111010
+01100111111000010100001111100111
+01011000000000000101010011000101
+01100111111000010100001111010011
+01011000000000000110001000100001
+01100111111000010100001111100001
+01011000000000000110001000101000
+01100111111000010100001111100101
+00100000011000000000000000000000
+01000100101000110100000000001000
+00011010011000100111111000000000
+11000000000110010100101011001011
+11000000001000100100101011010011
+11000000001000000100101011011101
+11000000000010101100101010111000
+11000000000010100100101010101010
+11000000000010000100101110010000
+11000000000110001101101011101101
+11000000000101001101101011101111
+11000000000111110100001100101001
+11000000001000100101101100010000
+11000000000111001100101011100010
+11000000000111100100101011100101
+11000000000111010100101011111110
+00100000011000000000000000000000
+01110000010001110111110100000000
+01110000010001111001010000000001
+00100000010000000110000001000010
+01101111111000001100011110010101
+00100100001110100100101010110000
+01110000010001111001011000010100
+01101111111000010100001111110001
+01111001001111111111111000000000
+01100111111000010100001111110001
+01110000010010000100010100000000
+01101111111000010100011110111110
+01100111111000010100011111000000
+00100000010000000101110000001011
+00100000001000000100101110111101
+01011000000000000000000000000000
+01100111111000010100011111000000
+01100111111000001100100001100000
+01100111111000001100100001100001
+01100111111000001100011110010100
+01110000010001111100001000000000
+01110000010010010101011000000000
+00100000010000000010100111001011
+00100000001000000100101011000001
+00100000010000000101101101111011
+01101111111000010100001111101111
+11000010100000111100101011000110
+11000010100000000100001011111100
+00100000001000000100101110010101
+00100000010000000101101100100001
+01101111111000010100001111101111
+11000010100000000100001011111100
+00100000010000000111110101111100
+00100000001000000100111101101100
+01101111111000001100011110010101
+11000000000000001100101011010000
+01110000010010000100010000010100
+01110000010010000110001000000101
+00100000001000000101101011110110
+00100000010000000101101011101111
+01110000010010000100010000000101
+00100000001000000101101011110110
+01101111111000001000000110100010
+00011111111001100111110000001100
+00100100001000010101101100000110
+01101111111000001000000110100100
+01101000010010001100100101101011
+10011000010001100111110000000000
+00100000001000010101101100011101
+01101111111000001000000110100100
+01100111111000001100000011000000
+00100000001000000101101100011111
+01101111111000001100100001100000
+00100100011110100000000000000000
+01110000010010000110000000000001
+01110000010010000110000100011110
+00100000011000000000000000000000
+00100000010000000100101011111001
+00100000010000000101110000001011
+00100000001000000110000010000110
+00100000010000000100101011111001
+01101111111000100100010110001111
+01100111111000100100010111101000
+01100111111000100100011010010001
+00100000010000000011010101011010
+00100000010000000110000110001110
+00100000010000000101110000001011
+00100000001000000110000001110101
+01110000010010000101111100000010
+00100000010000000100111100111110
+01110000010001110010110000000011
+00100000011000000000000000000000
+11011111001000000000000000000110
+11011000110000000100100001011000
+11101111111000001000000000000110
+11000000001010011100101011111001
+11000000000111001100101011111001
+11000000001000111100101011111001
+11000010000000000100101011110011
+00100000011000000000000000000000
+01110000010010011010101100000011
+01110000010010001111010000000001
+00100000011000000000000000000000
+01110000010010011010100100000001
+00100000011000000000000000000000
+01101111111000001100011000000000
+00100100001110100100101100010001
+01101111111000001100010111100010
+11000000000000010100101100001010
+11000000000000011100101100000100
+00100000001000000100101100000100
+00100000010000000110000000011000
+01101111111000001100011101111111
+00100100001110100101111100011011
+01101111111000001100011001100110
+11000000000000000100111101101100
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000010100111110110000000110100
+11000010100110000110000000110100
+11000011000111010110000001100111
+01101111111000100100011010010001
+00100000001110100100111000111001
+00100000001000000110000001100111
+01110000010001100000000000000000
+00100000010000000011011001000111
+01011111111111111111111111111111
+01100111111001000100010110101111
+01011000000000000000000000000000
+01100111111000111100100001000110
+01110000010001110011111100000001
+00100000001000000100111110011010
+01000100101000111100000000001000
+00100000010000000101010100111101
+00100000010000000100101101001111
+00100000010000000110000101001101
+00100000010000000011001010001110
+00100000010000000011010100110001
+00100000010000000101111111011101
+00100000010000000100101101100010
+00100000010000000100101101101000
+00100000010000000100101101000011
+00100000010000000100101101011000
+00100000010000000101101111100001
+00100000010000000100101101011100
+00100000010000000101101111100100
+00100000010000000100101101011111
+00100000010000000100101101010101
+00100000010000000101101111111110
+00100000010000000101011010110110
+00100000010000000100101101001000
+00100000010000000100101101110010
+00100000010000000100101110000010
+00100000010000000100101110000111
+01101111111000001100011001100110
+11000000000000000100101110001010
+00100000001000000101110000000101
+01101111111000001100100110000000
+11000001100000001000000000000000
+11011010011000000100100110000001
+11011010010000000101101010010100
+00100000001000000100001011100000
+01101111111000010100100011111010
+01101000010010010100100111111111
+10011000010001100111110000000000
+00100000001000101100101100111111
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100000001000101100101100111111
+00100000001000000101101110111010
+01101111111000001100100110000000
+11000001000000001000000000000000
+01110000010010011000000000000001
+00100000011000000000000000000000
+11011010011000000100011110010000
+11011010010000000100101101000110
+00100000001000000100001011100111
+00100000010000000100101110111101
+00100000001000000100111101101100
+11011010011000000100011011110011
+11011010010000000100101101001011
+00100000001000000100001011100000
+00100000010000000100101001010110
+01101111111000001100011110010011
+00100100001110100101111011010001
+00100000011000000000000000000000
+01101111111000001100011000110111
+00100000001110100100101101010011
+01110000010001100011000100111010
+00100000011000000000000000000000
+01110000010001100011000100110101
+00100000011000000000000000000000
+11011010011000000100100001100010
+11011010010000000101000000101111
+00100000001000000100001011100000
+11011010011000000100100001000101
+11011010010000000101101111011001
+00100000010000000100001011100000
+00100000001000000101101111010110
+01101111111001000100011100010011
+11000011100111011000000000000000
+00100000001000000101101111101110
+11011010011000000100100001100001
+11011010010000000101101011101111
+00100000001000000100001011100000
+01101111111000001100100110101001
+00100000011110100000000000000000
+01110000010010011010100100000000
+01110000010010001111010000000001
+00100000010000000011011000100101
+00100000001000000100111110100000
+11011010011000000100100110101100
+11011010010000000100101101101011
+00100000001000000100001011100000
+01110000010010011010101100000000
+00100000011000000000000000000000
+00100000010000000110000111101010
+00100000010000000100101101111100
+01101000010010001100100001101000
+00100000001000000110111011110011
+00100000011000000000000000000000
+01101111111000001100100001100110
+11000001011111111000000000000000
+01101111111000010100011110000001
+00100000011110100000000000000000
+01101111111000010100011100100101
+01101000010010010100011110000001
+10011000010001100000010000000000
+01101111111000010100100001101001
+10011000010001100111111000000000
+00100000001000010100101101111110
+01101000010010001100100001100110
+00100000001000000110111011110011
+01101111111000001100100110101010
+11000011000000001100101101111100
+01101000010010001100100001100110
+00100000001000000110111011110111
+11011010011000000100100011101110
+11011010010000000100101110000101
+00100000001000000100001011100111
+01110000010010001110101100000001
+00100000001000000100001100100111
+11011010011000000100100111000100
+11011010010000000100110110011110
+00100000001000000100001011100000
+11011010011000000100011110000001
+11011010010000000100101110001101
+00100000001000000100001011100111
+01101111111000001100011001100110
+11000000000000000100101100010001
+00100000001000000101101010101101
+00101000000011111111111000100110
+00100000010000001110000000011000
+00100000010000000101101010101101
+00100000010000000101101100100001
+00100000001000000100101110010101
+01000100101001000100000000001001
+00100000010000000110000110101011
+01101111111000010100010011101001
+00101111111011111111111000001011
+00100000010000001101110000111110
+01011000000000000000000000000000
+01100111111000010100011111000000
+00100000010000000100101101111100
+01110000010010011100011011111111
+01101111111000010100010011101001
+00101111111011111111111000001011
+00100000010000001101110000111110
+00100000010000000101101010101000
+01101111111000010100010011101001
+11000010100001011100101110101100
+01101111111001000100011100010011
+11000011000001000100101110101100
+01101000010010010100011010010101
+00011000010000001000010000000001
+01100000010010010100011010010101
+01100000010010010100001011011100
+00011000000010100111111000000000
+01100111111000001100001011011011
+01101111111000011100011110010111
+01100111111000011100001011011110
+00100000010000000100001100101101
+01101111111000010100011000111000
+01100111111000010100011110010000
+01011000000000000000000000000000
+01100111111000010100011110000001
+01100111111000010100011111000000
+01100111111000001100100001000101
+01100111111000001100011110010010
+01100111111000001100100101010110
+11011000111000000000000000000010
+00100000010000000101111100000000
+00100000010000000101111011110100
+00100000001000000101101101100010
+01110000010001100011011100000000
+00100000001000000110000101101110
+01000100101001001100000000001001
+01011000000000000000000000000000
+01100111111000010100011110010000
+11011000111000000000000000000110
+00100000010000000101111100000100
+01110000010001111001001000000000
+00100000010000000101110000111110
+00100000001000000100101101101101
+01000100101001010100000000001001
+01101111111001000100011100010011
+11000100000000010000000000000000
+11011000111000000000000000000010
+00100000010000000101111100000100
+00100000010000000101110001001010
+00100000001000000101110001001000
+01000100101001011100000000001001
+00100000010000000110001000001110
+00100000001000000111100010101010
+01000100101001100100000000001001
+01101111111001000100011100010011
+11000011000010101100101111011100
+00100000010000000110111110000010
+00100000010000000110111110110000
+01100111111000010100011000110011
+01101111111000010100010000001010
+10011000010001100111110000000000
+00100000001000010100101111001111
+11011010001000000100011000101101
+00100000010000000101010101100011
+01101111111000001100010000001100
+11000010100000001100111101101011
+01101111111000001100100110100100
+00100000010110100100111000100100
+01101111111000001100100110100011
+00100100011110100000000000000000
+01101111111000001100011001100110
+11000000000000000110000000101111
+00100000010000000101101010101000
+01101111111000110100011001101000
+00100000001110100101101010010100
+00100000001000000101010010100000
+01000100101001101100000000001001
+00100000010000000010101000101000
+00100100011110100000000000000000
+01101111111000001100011110001111
+11000000011111111100101111101110
+01101111111000001100100001000011
+00011111111000010111111000000011
+11000001100000011000000000000000
+01101111111001000100011100010011
+11000010100000001101101101011011
+11000010100000000101101101011011
+11000010100000101101101101011011
+11000010100000110101101101011011
+00100000010000000100111001000111
+00100100011101000000000000000000
+00100000010000000101101010111100
+00100000010000000101011010110001
+01101111111001000100011100010011
+11000011000010110101101100111100
+01101111111000001100100101101100
+00100000001000000101101100111101
+01101111111000001100001111001011
+11000001100001111000000000000000
+00100000010000000100110000000000
+00100000010000000100110010001011
+00100000001000000100110111110101
+01000100101001110100000000001001
+00100000010000000100110010000101
+01011000000000000000000000000000
+01100111111000010100100011101001
+11011000110000000100100010011100
+11011000101000000100100010110000
+11011111001000000000000000010100
+00100000010000000111110011011010
+01011000000000000100100010011100
+01100111111000010100100011100011
+01011000000000000100100011011000
+01100111111000010100100011100101
+00100000010000000100110000101111
+00100000010000000100110001010011
+00100000010000000100110010000011
+01101111111000010100100010011010
+00011111111000100010010000000000
+01110000010010001110100000000000
+11101000010000001000000000010010
+01101111111000010100100010011000
+00011111111000100010001000000000
+00011010001000100010011000000000
+11011111001000000000000000010100
+11101111111000001000000000010001
+10011000010001100111110000000000
+00100000001000101100110000100011
+00011010001000001010001000000001
+11000010000000000100110000010111
+00011010010000001010010000000001
+01101111111000001100100011101000
+00011111111000001111111000000001
+01100111111000001100100011101000
+00011111111001100111110000001010
+00100000001000010100110000010010
+00100000011000000000000000000000
+01101111111000010100100011100011
+00011111111000100000101000000000
+00011010001000100111111000000000
+10011010011001100111111000000000
+10011000101000001000101000000000
+01101111111000010100100011100101
+00011111111000100010011000000000
+01101111111000001100100011101000
+10011010011000001010011000000000
+11101111111000001000000000010011
+11100111111000001000000000000101
+00100000001000000100110000011100
+01000100101001111100000000001001
+00100000010000000100110010000011
+00100000010000000100110010000001
+01101111111000010100100011101001
+00011111111000001111111000000001
+01100111111000010100100011101001
+11000010100001001100110001110001
+01101000010010001100100001100100
+00100000010000000110111011100110
+00100100001000001100110000110010
+00100000000000000000000000010100
+00100000010000000100110001111001
+00100000010000000100110010000101
+01110000010010001110100000000000
+00100000010000000100110001111011
+00100000010000000100110001000110
+00100000010000000100110001111001
+00100000010000000100110001000110
+00011111111001100111110000001001
+00100000001000010100110000111101
+00100000010000000100110001111011
+00100000010000000100110001000110
+00100000001000000100110001111001
+01110000010010001110011100000000
+00100000000000000000000000110010
+00100000010000000100110001100101
+01101111111000010100100011100101
+00011111111000100000101000000000
+01101111111000001100100011101000
+10011000101000001000101000000000
+01101111111000001100100011100111
+11100111111000001000000000000101
+01101111111000001100100011101000
+00011111111000001111111000000001
+01100111111000001100100011101000
+00100000011000000000000000000000
+00100000000000000000000000010100
+01101111111000010100100010011000
+00011111111000100010010000000000
+01110000010010001110100000000000
+01110000010010001110011100000000
+11101000010000001000000000010010
+00101000010011111111111000000111
+00100000001000001100110001011111
+00100000010000000110111011110111
+00100000010000000100110001100101
+11101000010000001000000000010010
+00100000010000000110111100001111
+00011010010000001010010000000001
+01101111111000010100100011100011
+00100000010000000100110001001010
+00011111111001100111110000010011
+00100000001000010100110001010111
+00100000011000000000000000000000
+01101111111000010100100010010110
+00011111111000100010011000000000
+11011111001000000000000000001000
+11101000010000001000000000010011
+00100000010000000110111011100110
+01101111111000001100100011100111
+00011111111000110111111000000000
+01111001001000001111111000000111
+01100111111000001100100011100111
+00011010011000001010011000000001
+11000010000000000100110001101000
+00100000011000000000000000000000
+01101000010010001100100001100101
+00100000010000000110111011110111
+00100000000000000000000000010100
+01101000010010001100100001100101
+00100000010000000110111011110011
+00100000000000000001011101110000
+00100000011000000000000000000000
+00100000001000000100110000000000
+01101000010010001100100001100100
+00100000001000000110111011110011
+01101000010010001100100001100100
+00100000001000000110111011110111
+00011000010001100111110011111111
+00100000011000101000000000000000
+01111001001111111000010000000111
+00100000001000000110111011011101
+01101000010010001100100001100100
+00100000001000000110111011011101
+01101000010010001100100001100011
+00100000001000000110111011110011
+01101000010010001100100001100011
+00100000001000000110111011110111
+01110000010010001110101100000000
+01101111111000010100100011101100
+01100111111000010100100011101110
+00100000011000000000000000000000
+01000100101010000100000000001010
+11011010001000000100100010011100
+11011010010000000100100010110000
+11011111001000000000000000010100
+00100000010000000111110101100100
+00100100001000101100110010000111
+00100000010000000100110011000101
+00100000010110100100110010000111
+00100000010000000100110011001101
+01101111111000001100100101111011
+00100100011110100000000000000000
+01101111111000001100100111000001
+11000001000000001000000000000000
+11000001000000010000000000000000
+11000001000000100000000000000000
+01110000010010001110100000000000
+11011010001000000100100010011100
+11011010010000000100100011000100
+11101000010000001000000000010001
+11101111111000001000000000010010
+10011000010000101111111000000000
+00100000001110100100110010111101
+01100111111000001100100011100111
+01100000010010001100100011110110
+11100000010000001000000000010010
+01110000010010001111010000000001
+01110000010010001111011100000000
+01101111111000001100100011100111
+11000011000000000100110010110011
+01101111111000001100100011101000
+00011111111011111111111000001000
+01101000010010001100100011110111
+10011000010000001111111000000000
+11011000110000000100100100000001
+10011000110000001000110000000000
+11101111111000001000000000000110
+01100111111000001100100011110101
+00100000010000000100110011111100
+00100000010000000100110100111010
+00100000010000000100110110111011
+01101111111000001100100011100111
+00011111111000110111111000000000
+01100111111000001100100011100111
+01101111111000001100100011110110
+00011111111000110111111000000000
+01100111111000001100100011110110
+01101111111000001100100011110111
+00011111111000001111111000000001
+01100111111000001100100011110111
+11000010000000000100110010100110
+00011010001000001010001000000001
+00011010010000001010010000000001
+01101111111000001100100011101000
+00011111111000001111111000000001
+01100111111000001100100011101000
+00011111111001100111110000010011
+00100000001000010100110010011101
+00100000011000000000000000000000
+01101111111001000100100010011100
+00100100011110100000000000000000
+01101111111001000100100010100100
+00100100011110100000000000000000
+01101111111000100100100010101100
+00100100011110100000000000000000
+01110000010010011100000100000000
+00100000011000000000000000000000
+01000100101010001100000000001010
+01110000010010010111101100000000
+01110000010010001111000100000000
+11011010001000000100100010011100
+11011111001000000000000000010100
+01110000010010001111000000000000
+11101111111000001000000000010001
+00100000001110100100110011110111
+01101000010010001100100011110000
+00011000010000001000010000000001
+01100000010010001100100011110000
+00011111111000100000010000000000
+00011111111000001111111111111111
+10011000010000010111111000000000
+00100100001000101100110011010101
+01101111111000001100100011110000
+01101000010010001100100011110001
+10011000010000001000010000000000
+01100000010010001100100011110001
+00011111111001100111110000000001
+00100000001000010100110011110111
+00011000010001100111110000000010
+00100000001000010100110011110111
+01110000010010001110100000000000
+01110000010010001111001000000000
+11101000010000001000000000010001
+11011010010000000100100010011100
+01101111111000001100100011101000
+00011111111000001111111000000001
+01100111111000001100100011101000
+00011111111001100111110000010011
+00100100001000010100110011110111
+11101111111000001000000000010010
+10011000010000010111110000000000
+00100000001000101100110011111010
+01101111111000001100100011110010
+00011111111000001111111000000001
+01100111111000001100100011110010
+00011111111001100111110000000001
+00100000001000010100110011111010
+01110000010010010111101100000001
+00100000011000000000000000000000
+00011010001000001010001000000001
+11000010000000000100110011010010
+00100000011000000000000000000000
+00011010010000001010010000000001
+00100000001000000100110011101000
+01000100101010010100000000001010
+01101111111000001100100011110110
+00100100010110100100110101001110
+01101111111000001100100110100001
+00100100010110100100110100010001
+01101111111000001100100110101110
+01101000010010001100100110100001
+10011000010000101111111000000000
+00100000011000101000000000000000
+01101111111000001100100011110101
+11000000000101001100110100011001
+11000000001001100100110100011011
+00011111111001100111110001000101
+00100100011000010000000000000000
+11011000010000000000000000111010
+10011000010001100111111000000000
+00100100011000010000000000000000
+11011000110000000100100110110000
+10011000110000001000110000000000
+11101111111000001000000000000110
+00100000001000000100110100111000
+01101111111000001100100011110101
+11000000001010010100110100011101
+11000000001010001100110100100001
+11000000001010000100110100100101
+11000000001001111100110100101001
+11000000011100000100110100101101
+11000000000101100100110100110101
+00100000011000000000000000000000
+01101111111000001100100110101111
+00100000001000000100110100111000
+01101111111000001100100110111100
+00100000001000000100110100111000
+01101111111000001100100110111101
+00100000011110100000000000000000
+01011000000000000000000001001011
+00100000001000000100110100111000
+01101111111000001100100110111101
+00100000011110100000000000000000
+01011000000000000000000001001110
+00100000001000000100110100111000
+01101111111000001100100110111101
+00100000011110100000000000000000
+01011000000000000000000001001010
+00100000001000000100110100111000
+01101111111000001100100110111101
+00100000011110100000000000000000
+01011000000000000000000001001101
+00100000001000000100110100111000
+01101111111000001100100110111110
+00100000011110100000000000000000
+01101111111000001100100111000110
+11000000000000000100110100110011
+01011000000000000000000011111101
+00100000001000000100110100111000
+01011000000000000000000010101010
+00100000001000000100110100111000
+01101111111000001100100110111111
+00100000011110100000000000000000
+01011000000000000000000010101011
+01100111111000001100100011110101
+00100000011000000000000000000000
+01000100101010011100000000001010
+01101111111000001100100011110101
+11000000001000110100110101010000
+11000000001001011100110101010110
+11000000001001110100110101011100
+11000000001001010100110101011110
+11000000001001101100110101100000
+11000000010100101100110101100010
+11000000010100110100110101101001
+11000000010100111100110101101011
+11000000010101000100110101101101
+11000000010101001100110101101111
+11000000010101010100110101111010
+11000000010101011100110110000001
+11000000010101100100110110001100
+00100000011000000000000000000000
+01101111111000001100100011110110
+00100100011110100000000000000000
+01110000010010011100010000001010
+00100000011000000000000000000000
+01110000010010011100010000000000
+00100000011000000000000000000000
+01101111111000001100100111000110
+11000001000000000000000000000000
+11000001000000001000000000000000
+01110000010010011100001000001010
+01110000010010011100001100100000
+00100000001000000100110110010101
+01110000010010011100001101010010
+01101111111000001100100111000110
+11000001000000000000000000000000
+11000001000000001000000000000000
+01110000010010011100001000001000
+00100000001000000100110110010101
+01110000010010011100001101010001
+00100000001000000100110101010111
+01110000010010011100001101010000
+00100000001000000100110101010111
+01110000010010011100001101001111
+00100000001000000100110101010111
+01110000010010011100001100000100
+01110000010010011100001000000001
+01101111111000001100100111000110
+11000000000000000100110110010101
+11000000000000001100110110010101
+01110000010010011100001000001000
+00100000001000000100110110010101
+01110000010010011100001100000110
+00100000001000000100110101100011
+01110000010010011100001100011001
+00100000001000000100110101100011
+01110000010010011100001100011011
+00100000001000000100110101100011
+01101111111000001100100111000110
+11000000000000000100110101110100
+11000000000000011100110101110111
+01011000000000000000000011111100
+00100000001000000100110100111000
+01110000010010011100001000001000
+01110000010010011100001100001111
+00100000001000000100110110010101
+01110000010010011100001000001001
+01110000010010011100001100010100
+00100000001000000100110110010101
+01101111111000001100100111000110
+11000000000000000100110101111110
+01011000000000000000000011111101
+00100000001000000100110100111000
+01110000010010011100001000001001
+01110000010010011100001100010010
+00100000001000000100110110010101
+01101111111000001100100111000110
+11000000000000000100110110001000
+11000000000000001100110110001010
+01110000010010011100001000000001
+01110000010010011100001100101100
+00100000010000000100110101001010
+00100000001000000100110110010101
+01110000010010011100001000001000
+00100000001000000100110110000101
+01110000010010011100001000000010
+00100000001000000100110110000101
+01101111111000001100100111000110
+11000000000000000100110110010010
+11000000000000001100110110010010
+01110000010010011100001000000001
+01110000010010011100001101010010
+00100000001000000100110110010101
+01110000010010011100001000001000
+01110000010010011100001100101011
+00100000001000000100110110010101
+01110000010010001111010100000000
+01101111111000001100100011110110
+11000011000000000100110110011100
+01101111111000001100100111000001
+11000000000000011100110110101000
+01110000010010011100000100000001
+00100000011000000000000000000000
+01110000010010011100000100000100
+00100000011000000000000000000000
+01110000010010011100000100000110
+00100000011000000000000000000000
+01100111111000001100100001010110
+01100000010010001100100001011000
+00100000010000000111110110111010
+01110000010010000101010100000000
+00100000001000000100111010001001
+01101111111000001100100111000010
+11011000010000000000000000000000
+00100000010000000100110110100000
+01110000010010011100000100000010
+00100000011000000000000000000000
+01110000010010011100000100000011
+01101111111000001100100111000010
+01101000010010001100100111000011
+00100000001000000100110110100000
+01110000010010000101010100000000
+01101111111000001100100111000010
+11011000010000000000000000000000
+00100000010000000100110110100000
+01101111111000001100100111000100
+00100000001110100100110110011110
+01110000010010011100000100000101
+00100000011000000000000000000000
+00100000001000000100110110100010
+01110000010010011100000100000000
+11011111111000000000000000000000
+11011000010000000000000000000000
+00100000001000000100110110100000
+01000100101010100100000000001010
+01101111111000001100100011110101
+00011111111001100111110011100111
+00100000001000010100110111000011
+01110000010010011100010100000001
+01101111111000001100100011110110
+11000010100000000100110111000011
+01110000010010011100010100000010
+01110000010010010000000000000000
+01101111111000001100100011110110
+11000010100000000100110111011101
+01101000010010001100100011110101
+11011111001000000000000000000110
+11011000110000000100100011111010
+11101111111000001000000000000110
+00100000001110100100110111010100
+10011000010001100111110000000000
+00100100001000101100110111010011
+11101111111000001000000000000110
+00011000110000001000110111111110
+11100111111000001000000000000110
+00100000011110100000000000000000
+00011000110000001000110000000001
+11100000010000001000000000000110
+11000010000000000100110111001001
+00011000010001100111110011100111
+00100100011000010000000000000000
+00011000010001100111110010111111
+00100000011000010000000000000000
+00011000010000010000111000000111
+01101111111000001100100011111000
+11111001001111111111111000000000
+01100111111000001100100011111000
+00100000011000000000000000000000
+01101000010010001100100011110101
+11011111001000000000000000000110
+11011000110000000100100011111010
+11101111111000001000000000000110
+00100000001110100100110111101110
+10011000010001100111110000000000
+00100000011000101000000000000000
+11000010000000000100110111100000
+00011000010001100111110011100111
+00100100011000010000000000000000
+00011000010001100111110010111111
+00100000011000010000000000000000
+00011000010000010000111000000111
+01101111111000001100100011111000
+11111001001000000111111000000000
+01100111111000001100100011111000
+00100000011000000000000000000000
+00011000010001100111110011100111
+00100100001000010100110111110010
+00011000010001100111110010111111
+00100100001000010100110111101001
+00011000110000001000110111111111
+11100000010000001000000000000110
+00100000011000000000000000000000
+01000100101010101100000000001010
+00100000010000000100111000010100
+01110000010010011010000100000000
+01110000010010011010001000000000
+01110000010010011010001100000000
+01101111111000001100100011111000
+00100100010110100100111001000001
+11011000110000000100100011111010
+11011111001000000000000000000110
+11101111111000001000000000000110
+00011111111001100111110001111111
+00100000010000101100111001000011
+00011111111001100111110011011110
+00100000010000101100111001000101
+11000010000000000100110111111110
+01101111111000001100011001100110
+11000000000000000100111000010001
+00100000010000000100101100110111
+01101111111000001100100110100100
+00100000001110100100111000100100
+01101111111000010100100011111010
+01101000010010010100100110100101
+10011000010001100111110000000000
+00100000001000101100111000101001
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100000001000101100111000101001
+00100000011000000000000000000000
+01101111111000001100100110100100
+00100000001110100100111000100100
+00100000001000000100111000110010
+01101111111000001100100110100100
+00100100011110100000000000000000
+01101000010010001100011001010101
+00011000010001100111110011111111
+00100000011000101000000000000000
+00100000010000000110111011100110
+00100100001000001100111000100000
+11011111001000000000000000001000
+11011000101000000100100011111000
+00100000010000000111110010100001
+01110000010010001111101011011110
+00100000011000000000000000000000
+01101111111000001100100011111010
+11000001111011110000000000000000
+01110000010010001111101000000000
+00100000011000000000000000000000
+01000100101010110100000000001010
+01101111111000001100100110100011
+00100000011110100000000000000000
+01101111111000001100011001100110
+11000000000000000100111000111001
+01110000010010001111010000000000
+01101111111000001100011001100110
+11000001000000000000000000000000
+01101111111001000100011100010011
+11000011100000110000000000000000
+11011000111000000000000000000110
+00100000010000000101111100000000
+00100000010000000100001011010000
+00100000001000000100101110010000
+01101111111000010100100011111010
+01101000010010010100100110100111
+10011000010001100111110000000000
+00100000001000101100111000111001
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000010000000100100111111000
+01110000010010001111010000000000
+01101111111000010100010111011000
+00100100011110100000000000000000
+01011000000000000000000000000000
+01100111111000010100011110000001
+00100000010000000100101101111100
+00100000001000000110000001000111
+01110000010010011010001000000001
+00100000011000000000000000000000
+01110000010010011010000100000001
+00100000011000000000000000000000
+01110000010010011010001100000001
+00100000011000000000000000000000
+01000100101010111100000000001010
+01111000010101000111110000000000
+01110000010010010110110000000000
+01110000010010010110110100000000
+01110000010010010110111000000000
+01101111111000001100100111000001
+11000000000000001100110110100101
+11000000000000010100110110101010
+11000000000000011100110110101010
+11000000000000100100110110101110
+11000000000000110100110110110111
+01101111111000001100100011110100
+00100000001110100100111001100100
+00011111111000001111111111111111
+01100111111000001100100011110100
+00100000010000000100111001100001
+01110000010010011010110000001010
+00100000010000000101110000001011
+01101111111000001100100111000001
+11000000000000101100110110110110
+11011000101000000100100001010101
+11011111001000000000000000001010
+00100000010000000111110010100001
+00100000010000000100111001110100
+01110000010010000101111100000000
+00100000011000000000000000000000
+01110000010000001100000000000011
+01110000010001110111111000001010
+00100000011000000000000000000000
+01101111111000001100011001100110
+11000001000000001000000000000000
+01101111111000001100100110101011
+00100000011110100000000000000000
+01101111111000001100100110101001
+00100100011110100000000000000000
+01101000010010001100100110101101
+01101111111000001100100110101100
+10011000010001100111110000000000
+01100111111000001100100110101101
+00100000011000101000000000000000
+11011000101000000100100001010101
+11011111001000000000000000001010
+00100000010000000111110010100001
+00100000010000000111110110111010
+00100000001000000100111010001001
+01101111111000001100100111000101
+11000000000000010100111100000101
+11011000110000000100100011111010
+11011111001000000000000000000110
+11101111111000001000000000000110
+00011111111001100111110011100111
+00100100001000010100111010011100
+11000010000000000100111001111000
+01101111111000001100100011110001
+00100000010110100100111010010010
+01110000010010000101010100000000
+01101111111000001100100011111010
+00011111111001100111110001111111
+00100000001000101100111010010101
+11011000110000000100100011111000
+11011000101000000100100001010110
+11011111001000000000000000001000
+11101111111000001000000000000110
+11000000001111111100111010011010
+11100111111000001000000000000101
+11000010000000000100111010000101
+00100000010000000100111100010000
+01101111111000001100100001011111
+11000000000000001111110110111010
+11000000000000010100111010010000
+11000000000000011100111010010000
+11000000000000100100111010010000
+11000000000000101100111010010000
+00100000010000000101100100010111
+00100000001000000111110110111010
+11011000101000000100100011111000
+11011111001000000000000000001001
+00100000001000000111110010100001
+01101111111000010100100011111000
+01100111111000010100100001010110
+01101111111000110100100011111011
+01100111111000110100100001011000
+00100000001000000100111010001001
+01011000000000000000000000000000
+00100000001000000100111010000111
+00011111111000100000010000000000
+01000100101011000100000000001011
+00011000010000100111111000000000
+01110000010010000101010100000011
+01101000010010001100100011110001
+00011000010001100111110000000000
+00100000001000101100111100000101
+11000000011101000100111010111011
+11000000011101001100111010111110
+11000000011101010100111011000001
+11000000011101011100111011000100
+11000000011101100100111011000111
+11000000011101101100111011001010
+11000000011101110100111011001101
+11000000011101111100111011010000
+11000000011110000100111011010011
+11000000011110001100111011010110
+11000000011110010100111011011001
+11000000011110011100111011011100
+11000000011110100100111011011111
+11000000011110101100111011100010
+11000000011110110100111011100101
+11000000011110111100111011101000
+11000000011111000100111011101011
+11000000011111001100111011101110
+11000000011111010100111011110001
+11000000011111011100111011110111
+11000000011111100100111011111010
+11000000011111101100111011111101
+11000000011111111100111100001100
+00100000001000000100111010001001
+01011000000000000000000110000011
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000011001101
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000010110111
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000010110110
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000010110101
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000011101010
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000011101001
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000011100010
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000110010100
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000110001010
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000110010010
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000001110000
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000001101111
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000001000101010
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000001000100101
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000001000100100
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000001000100110
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000001000100111
+01100111111000010100100001010110
+00100000001000000100111010001001
+01101111111000001100100111000110
+11000000000000010100111011110111
+11000000000000011100111011110111
+01011000000000000000001000100001
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000001000100011
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000000000110000
+01100111111000010100100001010110
+00100000001000000100111010001001
+01101111111000001100100111000110
+11000000000000001100111100000010
+01011000000000000000000110101110
+01100111111000010100100001010110
+00100000001000000100111010001001
+01011000000000000000001100000111
+01100111111000010100100001010110
+00100000001000000100111010001001
+01110000010010001111010000000010
+01101111111000001100100011110001
+00100000010110100100111010010010
+01110000010010011100010100000000
+01011000000000000000000000000011
+01100111111000011100100001010101
+00100000001000000100111010001001
+01110000010010000101010100000010
+01011000000000000000000000000010
+01100111111000001100100001010110
+00100000001000000100111010001001
+01000100101011001100000000001011
+01101111111000001100011001100110
+11000000100000000100111100011000
+01110000010010011010100100000000
+01101111111000010100100001010101
+00100100010110100100101011111100
+01101111111000110100100001011000
+00100100010110100100101011111100
+01101111111000001100100001010101
+11000000000000000100111100100011
+11000000000000001100111100011110
+11000000000000011100111100101110
+11000000000000010100111100110110
+00100000011000000000000000000000
+01110000010010000101111100000001
+11011000110000000100100001010101
+11011000101000000100100001000110
+11011111001000000000000000000111
+00100000001000000111110011011010
+01110000010010000101111100000010
+00100000010000000100111100111110
+01101111111000001100011001100110
+11000000000000001100111100101010
+00100000010000000100101011110001
+01101111111000001100100110101011
+01100111111000001100100001010111
+11011000110000000100100001010101
+11011000101000000100011100101010
+11011111001000000000000000001001
+00100000001000000111110011011010
+01110000010010000101111100000100
+00100000010000000100111100111110
+01011000000000000000000000000011
+00100000010000000101111100010101
+11011000110000000100100001010110
+11011000101000000100011100101011
+11011111001000000000000000000010
+00100000001000000111110011011010
+01110000010010000101111100000101
+00100000010000000100111100111110
+01011000000000000000000000000010
+01100111111001000100011100101010
+01100111111001000100011100110011
+01101111111000001100100001010110
+01100111111000001100011100101011
+00100000011000000000000000000000
+11011111001000000000000000010010
+11011000101000000100011100101010
+00100000001000000111110010100001
+00100000010000000111110111100010
+00100000010000000101011000011100
+01101000010010001100011001001010
+00100000010000000110111010110010
+01101000010010001100011001001011
+00100000010000000110111010110010
+01101000010010001100011001010101
+00100000010000000110111010110110
+01101111111000010100100010011000
+00011111111000100010010000000000
+11011111001000000000000000010100
+11101000010000001000000000010010
+00101000010011111111111000000111
+00100100010000001110111011110111
+00011010010000001010010000000001
+11000010000000000100111101001100
+01101111111000010100100010010110
+00011111111000100010010000000000
+11011111001000000000000000001000
+11101000010000001000000000010010
+00011000010001100111110011111111
+00100100010000101110111010110010
+00011010010000001010010000000001
+11000010000000000100111101010100
+00100000011000000000000000000000
+01101111111000001100100011101011
+00100000001110100110111010110110
+00100000001000000110111010110010
+11000110000100110000000000000000
+00100000010000000100111101000001
+01101111111000001000000000010101
+00100100011110100000000000000000
+00100000001000000110111011010011
+01000100101011010100000000001011
+01110000010001100101100111111111
+00100000010000000111001110011010
+00100000010000000100111101110000
+00100000010000000101011010101001
+00100000010000000101010011011100
+00100000010000000101110110011110
+01101000010010001100011001011001
+00100000001000000110111011010011
+00100000010000000100111101110000
+01000100101011011100000000001011
+00100000010000000100111101110101
+00100000010000000111110101111100
+00100000001000000100001100100111
+01000100101011100100000000001011
+00100000010000000100101101101101
+00100000010000000100101101110001
+00100000010000000100101101111100
+00100000001000000100101101101111
+01000100101011101100000000001011
+00100000010000000111110111100010
+00100000010000000100111101110000
+00100000010000000101101010010010
+00100000010000000100111101000001
+00100000010000000101010011111001
+01101000010010001100011001011011
+00100000010000000101010110110101
+00100000010000000101010110111001
+00100000001000000101010011110010
+01101111111000010100010111100000
+00011111111000010111111011100000
+00100000001110100100111110000110
+01101111111000010100010111100000
+00011111111000001111111000000001
+01100111111000010100010111100000
+00100000011000000000000000000000
+00100000010000000011010101111111
+00100000010000000011011001010001
+00100100001011000011010110000110
+00100100001101111011010110000110
+00100000010000000101000000101000
+00100000001000000011010101101010
+00100000010000000011011000100101
+00100100001101000100111110010001
+00100000010000000100111110100000
+00100000010000000100111111010101
+00100000001000000100111111011011
+01101111111001000100100010011100
+00100100001110100100111110001110
+01101111111001000100100010100100
+00100100001110100100111110001110
+01101111111000100100100010101100
+00100100001110100100111110001110
+01101111111000001100011000011000
+11000001000000001000000000000000
+00100000010000000011011010011101
+00100000010000000100111111001000
+00100100011101000000000000000000
+01101111111000001100011100111111
+00100100010110100100111101110101
+01101111111000100100010110101111
+00100000001000000011011000100010
+01000100101011110100000000001011
+01110000010001100000000100000000
+01101001011000010000000001000000
+00110100011100110000001000000000
+00100000010000000100110111110101
+01101111111000001100100110100011
+00100100001110100101111011010001
+00100000010000000011011001010001
+01101111111000001100010101111111
+11000000000000001011011001000110
+00100100001011000100111110101111
+00100100001101111100111110101111
+00100000010000000101000000101000
+01110000010001110011111100000000
+00100000001000000011011001000110
+01101111111000001100011000000010
+00100100011110100000000000000000
+01101111111000010100010111111110
+00011111111000001111111000000001
+01100111111000010100010111111110
+01101111111000001100010111111110
+11000000011111111011011001110110
+00100000010000000100111110111000
+00100000001000000100111110100010
+01101000010010001100011000000001
+00011000010001100111110000010100
+00100000001000010100111110111110
+11011111001000000000000000011001
+00100000010000000111110010010110
+00100000001000000011011010010100
+00011000010000001000010000000001
+01100000010010001100011000000001
+01101111111000100100010110001111
+01101000010010100100010111100100
+10011000010001100111110000000000
+00100000001000101011001000100010
+01101111111000001100011000000001
+00011111111001100111110000000011
+00100000011000010000000000000000
+00100000001000000011011010011010
+01111000001101000111110000000000
+00100000010000000010010000001000
+01101111111000011100000010111101
+00100000001110100111110110111100
+01101111111000001100100110100001
+00100100001110100111110110111100
+01101111111000001100100110100010
+00100100001110100111110110111100
+01101111111000001100100111000100
+00100100001110100111110110111100
+01101111111000001100011000011000
+11000000000000001111110110111100
+00100000001000000011011010111001
+01101111111000100100010110001111
+01101000010010100100010111100100
+10011000010001100111110000000000
+00100100001000101011011011101001
+01110000010000010100000110011110
+00100000011000000000000000000000
+01101111111001000100011000001011
+01100111111001000100010110101111
+01101111111000010100011000011101
+01100111111000010100011000011111
+01000100101011111100000000001011
+00100000010000000011011010110100
+00100100011101000000000000000000
+00100000010000000111110111100010
+01101111111000011100011000001000
+00100000001000000011011000100010
+11000110100100110000000000000000
+00100000010000000100111001000111
+00100100011101000000000000000000
+01101111111001000100011100010011
+11000011000010110110000010100001
+01101111111000001100100101101100
+00100100001110100100111111101101
+00100000001000000110000010100001
+01110000010001011000100100000010
+11011010001000000000000000001001
+01101111111000001100100101101101
+00100100001110100100111111110011
+11011010010000000100011100110011
+00100000011000000000000000000000
+11011010010000000100011100101010
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000011100011011111000
+00100000011000000000000000000000
+01000100101100000100000000001100
+01101111111001000100011100010011
+11000100000001110000000000000000
+01101111111000001100011101111101
+00100000011110100000000000000000
+01101111111000001100011000000010
+00100000011110100000000000000000
+01101111111000001100011011110101
+00011111111000001111111000000001
+00011111111000010111111000000011
+01100111111000001100011011110101
+00100100011110100000000000000000
+01110000010001101111011000000000
+01101111111000001100011011110110
+00011111111000001111111000000001
+01100111111000001100011011110110
+00011111111001100111110000001000
+00100100001000010101000000010000
+00100000010000000011010101111111
+00100000010000000011011001010001
+00100100001011000101000000010110
+00100100001101111101000000010110
+00100000010000000101000000101000
+00100000010000000101000000100000
+00100000010000000011010101111011
+01101111111000001100011011110111
+00011111111000001111111000000001
+01100111111000001100011011110111
+11000000000010000101000000011000
+00100000011000000000000000000000
+00100000010000000011001000100010
+00100000001000000101000000000101
+01110000010001101111011100000000
+01101111111000001100011011111000
+11000011100000000000000000000000
+01111001001000000111111000000000
+01100111111000001100011011111000
+01101111111000010100011100100011
+01100111111000010100011110000001
+00100000011000000000000000000000
+01101111111000001100011000000010
+00100000001110100100111111110101
+01110000010001101111011100000000
+01101111111000001100011011111000
+11000100000000000000000000000000
+01111001001111111111111000000000
+01100111111000001100011011111000
+00100000001000000101110000001011
+00100000010000000011011001101110
+01101111111000001100010011111000
+00101111111000011111000000001000
+00100100011000001000000000000000
+01101111111000001100010011111001
+11000000011111111100101100010001
+00100000011000000000000000000000
+01110000010010011111000100000001
+11011010001000000000000000010111
+11011010010000000000000000000100
+00100000010000000010100111111011
+01011000000000000000000000000110
+11100111111000001000000000000101
+01011000000000000000000000000001
+11100111111000010000000000000101
+01011000000000001111111111111111
+11100111111000010000000000000101
+01011000000000000010100000000000
+11100111111000010000000000000101
+11011000110000000100100111100001
+00100000001000000111110010001111
+01000100101100001100000000001100
+01101111111000001100100111110001
+00100000011110100000000000000000
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110010111
+11000000000001011101000010010001
+11000000000001001101000001111000
+11000000000000111101000001001000
+11000000000000001101000001011011
+00100000001000000010101110010110
+01101111111000001100100111110001
+11000000000000010101000001101100
+01110000010010011100011000000010
+00100000001000000101000001010000
+01101111111000001100001011001011
+01100111111000001100100111000110
+00100000001000000101000001010000
+01110000010010011100011000000011
+01110000010010011111000100000000
+01101000010010010100100111011111
+01011000000000000001111111010000
+10011000010001100010010000000000
+11011010001000000100100111000110
+11011111001000000000000000000001
+00100000010000000110101101000101
+01101000010010010100100111011111
+00011000010000001000010000001110
+01100000010010010100100111011111
+00100000011000000000000000000000
+01101111111000001100100111110001
+11000000000000010101000001001100
+01110000010010011111000100000010
+11011010001000000000000000001001
+11011010010000000000000000000100
+00100000010000000010100111111011
+01011000000000000000000000000110
+11100111111000001000000000000101
+01011000000000000000000000000001
+11100111111000010000000000000101
+01011000000000001111111111111111
+11100111111000010000000000000101
+01011000000000000010100000000000
+11100111111000010000000000000101
+11011111001000000000000000000010
+11011000110000000100100111110010
+00100000001000000111110011011010
+11011010001000000000000000000111
+11011010010000000000000000000100
+00100000010000000010100111111011
+01011000000000000000000000001000
+11100111111000001000000000000101
+01101000010010010100001100111001
+00011000010000001000010000000101
+11101111111000100000000000000010
+11100111111000100000000000000101
+01011000000000000010100000000011
+11100111111000010000000000000101
+00100000011000000000000000000000
+01101111111000010100001100110101
+00011111111000001111111111111110
+00011111111001101111110000000111
+00100000010000000111110101100010
+00011000000001111111001000000000
+01101111111000010100001100111001
+00011111111000001000110000000110
+00100000001000000101000010000000
+00011000110000001000110000000011
+11101111111000010000000000000110
+00011111111000100010011000000000
+11101111111000010000000000000110
+11011000010000000010101000101001
+10011000010001100111110000000000
+00100000001000101101000010001001
+11000010000000000101000010000000
+00100000001000000101000001001100
+11011010001000000000000000000011
+11011010010000000000000000000100
+00100000010000000010100111111011
+01011000000000000000000000001010
+11100111111000001000000000000101
+00011010011000100111111000000000
+11100111111000010000000000000101
+00100000011000000000000000000000
+01101111111000010100001100110101
+11011111001000000000000000001001
+01101111111000010100001100111001
+00011111111000001010001000000101
+11011010010000000100100111110100
+00100000010000000111110101100100
+00100000001000101101000001001111
+00100000001000000101000001001100
+00100000001101011101000010111101
+00100000010000000010100101010010
+01011000000000000101000011000111
+01100111111000010100001111011011
+01011000000000000101000011001010
+01100111111000010100001111011101
+01011000000000000101000011000011
+01100111111000010100001111010011
+01011000000000000101000110000000
+01100111111000010100001111100001
+01011000000000000101001110110000
+01100111111000010100001111011111
+01011000000000000101001111000001
+01100111111000010100001111100011
+01000100101100010100000000001100
+00100000010000000101000010101011
+00100000010000000101000010111110
+00100000001000000101001100111011
+01101111111100001000000001100000
+01111001001111111111111000000000
+01100111111100001000000001100000
+01101111111001000100010100000000
+00100000010000000110110101101000
+01101111111000010100010100001000
+00100000010000000110110101110011
+00100000010000000110110110000010
+01110000100000000111011100001000
+01110000100000000111011001001001
+01110000100000000111100100001010
+01110000100000000111101000001011
+11011000010000000000000010000001
+01101111111000010100010100001111
+00101111111011111111111000000000
+01111001001000001000010000000100
+01100000010110001000000001100000
+00100000011000000000000000000000
+00100000001000000101000010101011
+01101000010010001100010011110101
+00100000010000000110111011110111
+00100000010000000101000011101101
+01101000010010001100010011110011
+00100000001000000110111011011101
+01101000010010001100010011110011
+00100000010000000110111011100110
+00100100001000001100001100001010
+00100000001000000100001100001000
+00100000010000000110100110101001
+00100100011110100000000000000000
+00100000001000000101000011101111
+00011010011000100111111000000000
+11000000000010100101000011011100
+11000000000010101101000011011000
+11000000000110000101001101110101
+11000000000110001101001101110111
+11000000000110010101001110000001
+11000000000110011101001101111111
+11000000000110100101001101101111
+11000000000111101101001101001111
+11000000001000001101000011100010
+11000000001000010101000011100100
+11000000001000011101001101101101
+11000000000111011101001101011000
+00100000011000000000000000000000
+00100000010000000010100111001011
+01110000010001010001000100000000
+00100000010000000101000011100000
+00100000001000000101001100100001
+00100000010000000101000011100111
+01101111111000001100010011111110
+01100111111000001100000011000000
+00100000001000000101001100011111
+00100000010000000101000101001001
+00100000001000000101000011100101
+00100000010000000011000011110011
+00100000001000000010111011010101
+00100000001000000101001110010001
+01101000010010001100010011110101
+00100000001000000110111011110111
+00100000010000000101000011101001
+00100000001000000101000011101101
+01101111111000001100010011111000
+00101111111011111111111000000001
+00100000010000001100001100010101
+00100000011000000000000000000000
+01101000010010001100010011110101
+00100000001000000110111011110011
+01101111111100001000000100001011
+11000011100000010000000000000000
+00100000010000000110110110010110
+11101111111000001000000000000011
+11000000100000001101000100000101
+01101111111100010000000100010010
+00011111111001100111110000000010
+00100000011000010000000000000000
+11101111111000001000000000000011
+01100111111000001000011011100010
+11101000010000001000000000000011
+00011000011000100010001000000000
+01100000010010001000011011100011
+00011000010000001000010000000011
+01101111111100010000000100010010
+10011000010001100000010000000000
+00100100011000010000000000000000
+01110000000001101110010000000001
+00100000010000000101000100010011
+01101111111000001000011011100100
+11000001000000000000000000000000
+00100000001000000101000100001110
+00100000010000000111110010010101
+00100000010000000101001101011110
+00100000001000000101000100001000
+01000100101100011100000000001100
+00100000010000000110110110010110
+01101111111100010000000100010010
+00100000011110100000000000000000
+10011000011000001000011000000000
+00100000001000000101000100010010
+00100000010000000110110110010110
+00011000011000001000011000000010
+11101111111000001000000000000011
+10011000011000001000011000000000
+00100000001000000110110110011100
+01000100101100100100000000001100
+01101111111000001000011011100010
+11000000000000001101000100111101
+11000000000000010101000101000010
+11000000000000100101000101010000
+11000000000001001101000101010100
+11000000000001011101000110101011
+11000000000001110101000110101100
+11000000000001111101000110110100
+11000000000010000101000110111100
+11000000000010010101000111000000
+11000000000100110101000111000100
+11000000000101000101000111001001
+11000000000101010101000111001100
+11000000000101011101000111111111
+11000000000101100101001000000101
+11000000000110000101001000001100
+11000000000110001101001000010001
+11000000000110010101001000100010
+11000000000110011101001000101101
+11000000000110100101001001011010
+11000000000110101101001001011101
+11000000000110110101001001100110
+11000000000110111101001001101111
+11000000000111000101001001110101
+11000000001000000101001001111101
+11000000001000010101001010000111
+11000000001001000101001010001100
+11000000001010001101001010010111
+11000000001100001101001010011011
+11000000001110110101001010101010
+11000000001110111101001010110000
+11000000001111000101001010110101
+11000000001111010101001011101011
+11000000001111011101001011111001
+11000000010010000101001011111111
+11000000010010001101001100000100
+11000000010010010101001100001000
+11000000010010011101001100001101
+11000000010010100101001100010001
+11000000011111111101001100010111
+00100000001000000101001100011001
+01101111111000001000011011100011
+11000000100000110101001100011001
+11101111111000110000000000000011
+01100111111000110100001011011011
+00100000001000000101001100011100
+01101111111000001000011011100011
+11000000100000001101001100011001
+11101000010000001000000000000011
+01100000010010001100010011111111
+00100000010000000101001100011100
+01101111111000010100010011101001
+11000011100001001000000000000000
+01101111111000001100010011111000
+00101111111011111111111000000001
+00100100011000001000000000000000
+01101000010010001100010011111111
+00101000010011111111111000000010
+00100000001000001100001100010111
+00100000001000000100001100010101
+11011111111000000000000000011101
+11011000101000000100001001101011
+00100000010000000101001001100000
+00100000001000000010100101010010
+01101111111000010100010011101001
+11000011000001001101001100011001
+00100000010000000101000110101000
+00100000001101000101001100011001
+01110000000001101110010000000000
+01101111111000010100010100001111
+11000010100001000101000101111001
+01101111111000001100010100010001
+00100100011110100000000000000000
+01110000000001101110010000000001
+11101111111000010000000000000011
+01100111111000010100010100010010
+01100000011000010100010100010100
+01101111111000001000011011100011
+00011111111000001111111111111110
+00100100001000010101001100011001
+00100000001000101101001100011001
+01100111111000001100010100010001
+01101000010010010100010100010010
+00011000010000001000010111111111
+00100000010000000010110011010010
+00100000001110100101000101111100
+11101000010000100000000000000110
+01011001001010000000001100000010
+10011000010001100111110000000000
+00100100001000101101000101111100
+11101111111000001000000000000110
+01100111111000001100010100010110
+00011111111000010111111000110000
+00100000001110100101000101111100
+01110000000001101110010000000000
+00100000010000000010100111001001
+00100000010000000101000110000000
+00100000010000000101000110000000
+00100000010000000101000110000000
+01101111111000010100010100001111
+11000100000001000000000000000000
+01110000000001101110010000000001
+00100000010000000101001111010110
+00100000001000000101001100011100
+01110000010001010001000100000000
+01110000000001101110010000000001
+00100000010000000101001111010110
+00100000001000000101001100011001
+01101111111000001100010100010001
+00100000011110100000000000000000
+00100000010000000010101000101000
+00100100011110100000000000000000
+00100000010000000101000110100011
+01000100101100101100000000001100
+01101111111000010100001011100001
+00100000010000000111110110110000
+00011111111000100000010000000000
+01101111111000001100001110010110
+11000011100000000000000000000000
+00011000010000001111111111111101
+11011000010000000000000011111011
+00100000010000000111110110110000
+01101000010010001100010100010001
+00100000010000000111110110110000
+00011111111000100010001000000000
+00011000010000100111111000000000
+10011010001001100111111000000000
+01100111111000001100010100010001
+00100000010000000101000110011110
+01101111111000010100010100010100
+00011111111000100000011000000000
+00011010001000100111001000000000
+00100000010000000110110111001010
+00011000011000100111111000000000
+01100111111000010100010100010100
+01101111111000001100010100010001
+00100100011110100000000000000000
+00100000001000000101001111010100
+01101000010010010100010100010010
+01101111111000001100010100010110
+11000010100000101010110111110111
+11000010100000100010110111101110
+00100000011000000000000000000000
+11011000010000000000000000010111
+01101111111000010100010100001111
+11000011100000001000000000000000
+01101000010010010100001011100011
+00100000011000000000000000000000
+01101111111000010100010100001111
+11000010100000010010110111000111
+00100000001000000111110110111100
+00100000001000000101001100111111
+11101111111000001000000000000011
+01101000010010001100010100001111
+01111101001110100000010000000000
+01100000010010001100010100001111
+01101000010110001000000001100000
+01111101001110100000010000000100
+01100000010110001000000001100000
+00100000001000000101001100011100
+01101111001000001000011011100011
+00100000010000000111110100110011
+00100000010000000110110101110111
+01100111111000010100010100001000
+00100000010000000101001100011100
+00100000010000000110110110101110
+01101111111000010100010100001000
+00100000001000000110110101110011
+11011010001000000000000000000010
+11011010010000000100010011110001
+11011000010000000000000000000000
+00100000001000000101001100100011
+01101111111000010100010011101001
+11000011000001001101001100011001
+00100000010000000101001100011100
+00100000001000000100001100011111
+01101111001000001000011011100011
+01101111111000010100001111111000
+00011111111000100000101000000000
+00100000010000000110110111001010
+00100000001000000101001100011100
+01101111111000010100010011101001
+11000010100001001101001010001100
+00100000001000000101001100011001
+11011111001000000000000001000000
+11011000101000000100001101001000
+00100000010000000111110010100001
+01011000000000000000000000000000
+01100111111000001000011010001000
+00011010001000100000011000000000
+00011000011000100111111000000000
+01100111111000010000011010001100
+00100000010000000101000111111010
+01101111111000001000011010001000
+01101000010010001000011001111000
+00011000010000001000010000000001
+10011000010000001111111000000000
+01100111111000001000011010001000
+00011111111001100111110000011111
+00100100001000010101000111100110
+01101000010010001100001101001000
+01011000000000000100001101001001
+10011000010000001111111000000000
+01100111111000010000011010010001
+01101000010010001000011001111000
+00011000010000001000010000000001
+01101111111000001100001101001000
+10011000010000001111111000000000
+01100111111000001100001101001000
+00100000001000000101000111101111
+01101000010010001100001101101000
+01011000000000000100001101101001
+10011000010000001111111000000000
+01100111111000010000011010010001
+01101000010010001000011001111000
+00011000010000001000010000000001
+01101111111000001100001101101000
+10011000010000001111111000000000
+01100111111000001100001101101000
+01101111111000010000011010010001
+00011111111000100000101000000000
+01101111111000010000011010001100
+00011111111000100000011000000000
+00011000010000100111001000000000
+00100000010000000110110111001010
+01101111111000001000011011100011
+01101000010010001000011010001000
+10011000010001100111110000000000
+00100100001000101101000111010010
+00100000001000000101001100011100
+11101111111000001000000000000011
+01100111111000001000011001111000
+11101111111000001000000000000011
+01100111111000001000011010000100
+00100000011000000000000000000000
+11011000010000000000000000000000
+11011010001000000000000000000010
+01101111111000010100010100001100
+01100111111000010000011010100001
+11011010010000000000011010100001
+00100000001000000101001100100011
+01101111111000001000011011100011
+11000000100000001101001100011001
+11101111111000001000000000000011
+01100111111000001100010100001010
+01011000000000000000000000000000
+01100111111000010100010100001100
+00100000001000000101001100011100
+01101111111000001000011011100011
+11000000100000100101001100011001
+01101111111000010100010011101001
+11000010100001001101001011101011
+00100000001000000101001100011001
+01101111111000001000011011100011
+11000000100000011101001100011001
+11101111111000001000000000000011
+11000000000000000101001000010111
+11000000000000001101001000011101
+00100000001000000101001100011001
+00100000010000000101001100011100
+11101000010000001000000000000011
+11101111111000001000000000000011
+11000000000000010110111100001111
+01111101001110100000010000000111
+00100000001000000110111011011101
+00100000010000000101001100011100
+11101000010000001000000000000011
+11101111111000001000000000000011
+00100000001110100110111011110111
+00100000001000000110111011110011
+01101111111000001000011011100011
+11000000100000001101001100011001
+11101000010000001000000000000011
+00100000010000000110111011100110
+01011000000000000000000000000000
+01111101001000001111111000000000
+11011010001000000000000000000001
+01100111111000010000011010100001
+11011010010000000000011010100001
+11011000010000000000000000000000
+00100000001000000101001100100011
+11101111111000001000000000000011
+00011111111000100000010000000000
+11000000010000001101001000111100
+11000000010000010101001001000000
+11000000010000011101001001000101
+11000000010000100101001001001001
+01100111111000001100001011111110
+00100000010000000111010011111111
+00100000010000000010111011000100
+01101111111000001100001011111110
+11000000000000000101001001001101
+11000000000000001101001001010000
+11000000000000010101001001010010
+11000000000000100101001001010100
+00100000001000000101001100011001
+01100000010010001100001011111110
+00100000010000000010111011000000
+01110000010000101100011100001101
+00100000001000000101001001001110
+01100000010010001100001011111110
+00100000010000000010111011000000
+01110000010000101100011100001101
+01110000010000101100010100000001
+00100000001000000101001100011100
+01100000010010001100001011111110
+00100000010000000010111011000000
+01110000010000101100011100001101
+00100000001000000101001001011000
+01100000010010001100001011111110
+00100000010000000010111011000000
+01110000010000101100011100001101
+00100000001000000101001001010110
+01110000010000101100011100000000
+01110000010000101100010100000011
+00100000001000000101001100011100
+01110000010000101100011100000001
+00100000001000000101001001001110
+01110000010000101100011100000101
+00100000001000000101001001011000
+01110000010000101100011100000101
+00100000001000000101001001010110
+01110000010000101100010100000010
+00100000001000000101001100011100
+01110000010000101100010100000000
+00100000001000000101001100011100
+11011111111000000000000000011111
+11011000101000000100001101001000
+00100000001000000101001001100000
+11011111111000000000000000011111
+11011000101000000100001101101000
+00100000001000000101001001100000
+01101111001000001000011011100011
+10011111001001100111110000000000
+00100100001000010101001100011001
+11100111001000001000000000000101
+00100000010000000110110111001010
+00100000001000000101001100011100
+01101111111000010100010011101001
+11000011000001001101001100011001
+01101111111000001000011011100011
+11000000100001000101001100011001
+11101111111001000000000000000011
+01100111111001000100001011010011
+01110000000001100110111100010010
+00100000010000000111100000110100
+00100000001000000101001100011100
+11101111111000010000000000000011
+01100111111000010100001110001001
+01100000010010001100000010100110
+10011000010000001111111000000000
+01100111111000010100000010100100
+00100000001000000101001100011100
+01101111111000001100001011111110
+00100000001110100101001100011001
+01101111111000001100001011111100
+11000000100000000101001100011001
+01101111111000001100001011111101
+11000000100000000101001100011001
+00100000010000000111100010101001
+00100000001000000101001100011100
+01101111111000001000011011100011
+11000000100000101101001100011001
+11101111111000001000000000000011
+01100111111000001100010011111001
+11101111111000100000000000000011
+01100111111000100100010011111010
+01101000010010001100010011111001
+00100000010000000110111011110111
+00100000010000000101001110101110
+00100000001000000101001100011100
+01101111111000001000011011100011
+11000000100000001101001100011001
+11101111111000001000000000000011
+01100111111000001100000101000001
+00100000001000000101001100011100
+11101111111000001000000000000011
+11000000000000001101001010010101
+01101111111000001100001011111010
+11000000000000011101001010010011
+11000000000000110101001010010011
+11000000000000111101001010010011
+00100000001000000101001100011001
+01110000010000101111101100000001
+00100000001000000101001100011100
+00100000010000000010111100101010
+00100000001000000101001100011100
+00100000010000000101001100011100
+00100000010000000110110110101110
+01110000100000000001000000000001
+00100000001000000010001101011010
+01101111111000001000011011100011
+11000000000000000101001100011001
+11101111111000001000000000000011
+00100000001110100101001010101000
+01101111111000001000011011100011
+11000000100000101101001100011001
+11101111111000100000000000000011
+11011000010011110100001001000000
+10011000010001100111110000000000
+00100000001000010101001100011001
+01100111111000100100001011111111
+00100000010000000010100111000001
+00100000001000000101001100011100
+00100000010000000010100111000011
+00100000001000000101001100011100
+11011000010000000000000000000001
+00100000010000000010110011010010
+00011000110000001000101111111110
+01011000000000000000000000000000
+11100111111000010000000000000101
+00100000001000000101001100011100
+00100000010000000101001010111001
+00100000010000000101001011100111
+01011000000000000000000000000000
+11100111111000010000000000000101
+00100000001000000101001110001000
+11101111111000001000000000000011
+00100000010000000101001010111101
+00100000010000000101001011000100
+00100000001000000101001110001000
+00100000010000000101001011100100
+01011000001010000000000000000010
+11100111111000011000000000000101
+00100000011000000000000000000000
+01100111111000001000011001110000
+00100000010000000101001011100100
+01011001001010000000001100000010
+11100111111000100000000000000101
+01101111111000001000011001110000
+11100111111000011000000000000101
+00100000011000000000000000000000
+00100000010000000010110011110110
+11101111111000001000000000000011
+00011111111000010111001000011111
+00011111111000100010001000000000
+00101010001011111111111000000111
+01111001001000001000010000001111
+00101010001011111111111000000110
+01111001001000001000010000001110
+11100000010000010000000000000101
+00011111001000100111111000000000
+11100111111000001000000000000101
+00100000010000000110110111011101
+00100000010000000101001011100111
+01011000000000000000000000000000
+11100111111000010000000000000101
+00011000010000010000010011111111
+00011000010000001000010111111111
+00100000010000000010110011010010
+00011000110000001000110000000100
+11101111111000001000000000000110
+11000010100000100101001011011100
+11000010100000101101001011011100
+00011000010000001000010000000001
+00100000011000000000000000000000
+00100000010000000010110011110110
+00101010001011111111111000000101
+01111001001000001000010000001111
+11100000010000010000000000000101
+01011010001010010000001000000010
+11100111111001000000000000000101
+00011000010000001000010111111111
+00100000011000000000000000000000
+00100000010000000010110011110110
+11100000010000010000000000000101
+00100000011000000000000000000000
+11101111111000001000000000000011
+00011111111000100111001000000000
+11100111111000001000000000000101
+00100000001000000110110111011101
+01101111111000001100001011111100
+11000000100000101101001100011001
+01101111111000001100001011111110
+11000000000000100101001011110111
+11000000010000100101001011110001
+00100000001000000101001100011001
+01110000010000101111100100000010
+01110000010000101111101000001000
+00100000001000000101001011110100
+11101111111000100000000000000011
+01100111111000100100001011111111
+00100000001000000101001100011100
+00100000010000000101001011110100
+00100000001000000010111100010011
+11101111111000110000000000000011
+01100111111000110100001011001100
+01110000000000011011110000011011
+01110000010001010001011100000001
+01110000010000110100001100000001
+00100000001000000101001100011100
+01101111111000001000011011100011
+11000000100000010101001100011001
+11101000010000010000000000000011
+00100000010000000010101000101101
+00100000001000000101001100011100
+11011000010000000000000000000000
+11011010001000000000000000000010
+11011010010000000100000001110101
+00100000001000000101001100100011
+01101111111000001000011011100011
+11000000100001000101001100011001
+11101111111001000000000000000011
+00100000010000000010101000101011
+00100000001000000101001100011100
+11101010001000001000000000000011
+11101010010000010000000000000011
+11011000010000000000000000000000
+00100000001000000101001100100011
+01101111001000001000011011100011
+00011111001000001111001111111110
+11101111111000010000000000000011
+00011111111000100000101000000000
+00100000010000000110110111001010
+00100000001000000101001100011100
+01110000010000001001010000000000
+00100000001000000101001100011100
+11011000010000000000000000000001
+11011010001000000000000000000000
+00100000001000000101001100100011
+11011000010000000000000000000000
+11011010001000000000000000000000
+00100000001000000101001100100011
+01110000000001101110001000000010
+00100000001000000101001100111100
+01110000000001101110001000000101
+00100000001000000101001100111100
+01101111111000001000011011100010
+00011111111000100010011000000000
+01110000000001101110001000000110
+01011000000000000000000000000010
+10011010001000001111111000000000
+00100000010000000101001110010111
+00011010011000100111111000000000
+11100111111000001000000000000011
+11100000010000001000000000000011
+00011010001000100111001000000000
+00011010010000100000110000000000
+00100000010000000110110111000100
+00100000001000000101001110100001
+01110000000001101110001000001000
+00011111001000001111111000000010
+00100000010000000101001110010111
+01101111111000010000011100001101
+11100111111000010000000000000011
+01101111111000010000011100001011
+00011111111000100000110000000000
+00100000010000000110110110110001
+00011000110000100111111000000000
+01100111111000010000011100001011
+00100000001000000101001110100001
+01110000000001101110001000001001
+01011000000000000000000000000000
+00100000010000000101001110010111
+00100000001000000101001110100001
+01110000000001101110001000001010
+01011000000000000000000000000001
+00100000010000000101001110010111
+00100000010000000101001101001001
+01101111111000010100010011101001
+11011000111000000000000000001001
+10101111111011111111111111111111
+01111001001000001000010000000101
+11100000010000001000000000000011
+00100000001000000101001110100001
+11011000010000000000000000000000
+01101111111000001100001110001000
+11011000111000000000000000000000
+10101111111011111111111111111111
+01111001001000001000010000000010
+00100000011000000000000000000000
+01110000000001101110001000001101
+01101111111000001100001111111010
+00011111111011111111111000100010
+00011111111000100111001000000000
+00100000010000000101001110010111
+01101111111000010100001111111000
+00011111111000100000110000000000
+00100000010000000110110110110001
+00100000001000000101001110100001
+01110000000001101110001000001110
+01011000000000000000000000000100
+00100000010000000101001110010111
+01101111111000100000010111111010
+11100111111000100000000000000011
+00100000001000000101001110100001
+01110000000001101110001000001111
+01101111111100010000000100010010
+11011000010000000000000001000000
+00100000010000000111110110110000
+00011111111000100010001000000000
+00011111111000100111001000000000
+00100000010000000110110110010110
+11011000101000000000011010100001
+00100000010000000110110111001010
+00011010001000100111111000000000
+00011010001000100111001000000000
+00100000010000000101001110010111
+11011000110000000000011010100001
+00100000010000000110110110110001
+00100000001000000101001110100001
+01110000000001101110001000010000
+00100000001000000101001100111100
+01110000000001101110001000010001
+01011000000000000000000000000100
+00100000010000000101001110010111
+01101111111000100100001011111111
+11100111111000100000000000000011
+00100000001000000101001110100001
+11011010001000000000000110000000
+00100000001000000101001101111001
+11011010001000000000000010000000
+00100000001000000101001101111001
+01110000000001101110001000010100
+01011000000000000000000000000010
+00100000010000000101001110010111
+00011010001000100111111000000000
+11100111111000010000000000000011
+00100000001000000101001110100001
+11011010011000000000000000000000
+00100000001000000101001110000010
+11011010011000000000000000000001
+01110000000001101110001000010101
+01011000000000000000000000000001
+00100000010000000101001110010111
+00011010011000100111111000000000
+11100111111000001000000000000011
+00100000001000000101001110100001
+01100000010010010000011001111000
+01110000000001101110001000101001
+01011000000000000000000000000010
+00100000010000000101001110010111
+01101000010010010000011001111000
+11100000010000010000000000000011
+00100000001000000101001110100001
+01110000000001101110001000101011
+00100000001000000101001100111100
+01110000000001101110001001000000
+01011000000000000000000000000010
+00100000010000000101001110010111
+01101111111000010100000001110101
+11100111111000010000000000000011
+00100000001000000101001110100001
+01110000000001101110000100000010
+01100111111000001000011011100011
+01100000010011000000011001111000
+01000100101100110100000000001100
+00100000010000000101001110100011
+01101000010011000000011001111000
+00100000010000000110110110100010
+01101111111000011000011011100001
+11100111111000011000000000000011
+00100000011000000000000000000000
+01000100101100111100000000001100
+00100000001000000110110110100100
+00100000010000000101001110101100
+00100000011000001000000000000000
+00100000010000000101001110101010
+01101111111000100100010011111010
+00011111111010110111111000000000
+00100000011110100000000000000000
+00100000001000000111110010010001
+01101000010010001100010011111001
+00100000001000000110111011110111
+01101000010010001100010011111001
+00100000001000000110111100000010
+01101000010010001100010011111001
+00100000001000000110111011110011
+01100010001000010000011100001011
+01100010010000010000011100001001
+01101111111000010100001110011000
+01100111111000010000011100001101
+00100000010000000101000110101000
+00100000011101000000000000000000
+01101000010010010000011100001001
+01101111111000001100010100001110
+00100000010000000111110110110000
+00011111111000100111001000000000
+00011000010000100111111000000000
+10011111001001100111111000000000
+01100111111000010000011100001001
+00100000010000000101001100110000
+01101111111000010000011100001001
+00100000011110100000000000000000
+00100000001000000101001110110110
+00100000011000000000000000000000
+01101111111000001100010100001010
+00100000011110100000000000000000
+01101111111000001100010100001011
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100010100001011
+00100100011110100000000000000000
+01110000010001010000101100000101
+00100000010000000110111110000010
+00100000010000000110111110110000
+00011111111001101111110000001010
+00100000010000000111110101011111
+00011111111001101111110001100100
+00100000010000000111110101011111
+00011000000001110000010000000000
+01100111111000001100010100001100
+01100000010010001100010100001101
+00100000011000000000000000000000
+11011000111000000000000000001000
+00100000001000000101001111011100
+11011000111000000000000000001000
+00100000001000000101001111011000
+01101111111000010100010100001111
+11111001001111111111111000000000
+01100111111000010100010100001111
+00100000011000000000000000000000
+01101111111000010100010100001111
+11111001001000000111111000000000
+01100111111000010100010100001111
+00100000011000000000000000000000
+00100000010000000111001110010110
+00100000010000000101010000010000
+00100000010000000101100101001001
+00100000011101011000000000000000
+00100000010000000101011101000111
+00100000010000000101111100110111
+00100000010000000101001111101100
+00100000010000000101100111101101
+01101111111000010100010011101001
+11000010100001100101110000011010
+00100000010000000101111010110110
+00100000001000000101010010001100
+01000100101101000100000000001101
+01011000000000000110001000110101
+01100111111000010100010111111000
+01011000000000000110001000101011
+01100111111000010100010111111010
+01011000000000000110000100001001
+01100111111000010100001111101001
+01011000000000000110000010010110
+01100111111000010100010111110010
+01011000000000000110000011000001
+01100111111000010100010111110100
+01011000000000000101010100001100
+01100111111000010100010111110110
+01011000000000000101101100100011
+01100111111000010100001111011001
+01011000000000000101010100000111
+01100111111000010100001111010111
+01011000000000000101101011000001
+01100111111000010100001111011101
+01011000000000000101111001011101
+01100111111000010100001111011011
+01011000000000000101010011010101
+01100111111000010100001111010101
+01011000000000000101101100001000
+01100111111000010100001111011111
+01011000000000000101101110000101
+01100111111000010100001111100011
+01011000000000000101010111111010
+01100111111000010100001111100111
+01011000000000000101010011000101
+01100111111000010100001111010011
+01011000000000000110001000100001
+01100111111000010100001111100001
+01011000000000000110001000101000
+01100111111000010100001111100101
+00100000011000000000000000000000
+00100000011101011000000000000000
+00100000010000000011010111110000
+00100000010000000011001001011011
+00100000010000000110001010101010
+00100000010000000101010110001001
+00100000010000000101010111000110
+00100000010000000101010001001010
+00100000010000000110000101110111
+00100000010000000010101001000001
+01000100101101001100000000001101
+01101111111001000100011100010011
+11000010100010011101110101100000
+11000010100010010101110101101110
+11000010100010100101110110100110
+00100000011000000000000000000000
+01110000010000001001100100010000
+01101111111001000100011100010011
+11000011100001100000000000000000
+01110000010000001001100100011000
+00100000011000000000000000000000
+00100000010000000011001010000001
+01101111111001000100011100010011
+11000100000111101000000000000000
+00100000001000000011001010000100
+01000100101101010100000000001101
+01101111111001000100011100010011
+00101111111011111111111000000101
+00100000010000001101111100001000
+01101111111000010100011000111010
+01100111111000010100010111010110
+01101111111000001100011000111101
+01100111111000010100010111011100
+01101111111000101100011000111111
+01100111111000101100011000101000
+01101111111000001100011000111110
+01100111111000001100010111010001
+01101111111000001100010110111001
+00100100010110100011001001101011
+01000100101101011100000000001101
+00100000010000000101010000011111
+00100000010000000101010000100100
+00100000010000000101111111100100
+00100000001000000011001010000111
+01011000000000001001000000000000
+01100111111000010100001011110111
+01110000010000001100000100000011
+01110000010000001010011000001000
+01110000010010010111111100000000
+01110000010010011000000000000000
+01011000000000000000001000000000
+01100111111000010100000010100100
+01110000010000101110000100010111
+01110000010000101110001100010111
+01011000000000000100011111000011
+01100111111000010100001100111111
+01011000000000000000000000010000
+01100111111000010100001101000001
+00100000001000000101010100111001
+01000100101101100100000000001101
+00100000010000000101010000111011
+01110000010010000111101000000000
+01011000000000000000101001110111
+01100111111000010100001111110101
+00111000000000000001001000100100
+00111000000001000100000000000000
+00111000000010000000000000000000
+11100111111000101000000000000101
+01101111111001000100011100010011
+11000011000011011101010001011000
+01011000000000000000000000000110
+01100111111000010100001011010011
+01100111111000010100001011010101
+00100000010000000101010010000001
+01101111111001000100011100010011
+11000011000011000101010001011100
+00100000010000000101010001110110
+01101111111000011100011000001000
+01100111111000011100011101011101
+01101111111000001100011001100110
+01100111111000001100100110100001
+01101111111000011100001011011110
+01100111111000011100011110010111
+01011000000000000000000000000000
+01100111111000111100100001000110
+01101111111000001100010011101011
+01100111111000001100100101111100
+01100111111000001100100101111101
+00100000010000000010100101101001
+01000100101101101100000000001101
+01101111111000001100011001001111
+01100111111000001100100101011000
+01101111111000001100011001001110
+11000001011111111000000000000000
+01101000010010001100011001001110
+00100000010000000101010110110101
+01101000010010001100011001001110
+00100000010000000110111011100110
+00100000010000001101010001110011
+00100000001000000101010110110001
+01101111111000001100011001010000
+01100111111000001100100101011000
+00100000011000000000000000000000
+01101111111000011100011101000011
+01100111111000011100011000001000
+01101111111000011100011101000110
+01100111111000011100011000001011
+01101111111000001100011101001001
+01100111111000001100011000100001
+01101111111000100100011101010101
+01100111111000100100011101010001
+01011000000100000000110000001100
+01100111111000011100010110100111
+00100000011000000000000000000000
+01101111111000011100011101001010
+01100111111000011100011000001000
+01101111111000011100011101001101
+01100111111000011100011000001011
+01101111111000001100011101010000
+01100111111000001100011000100001
+01101111111000100100011101011001
+01100111111000100100011101010001
+01011000000111000001100100011001
+01100111111000011100010110100111
+00100000011000000000000000000000
+01000100101101110100000000001101
+01101111111001000100011100010011
+11000010100111110110000000101101
+01101111111000001100011001100110
+11000000000000000110000000011100
+00100000010000000101101010101000
+01101111111000001100011001100110
+11000000000000001101010010010110
+11000000000000010101010010011011
+00100000011000000000000000000000
+01101111111000110100011001101000
+01101000010010110100011011100110
+10011000010001100111110000000000
+00100000001000101101101010010100
+00100000001000000101010010100000
+01101111111000110100011001110101
+01101000010010110100011011100110
+10011000010001100111110000000000
+00100000001000101101101010010100
+00100000001000000101010010100000
+01000100101101111100000000001101
+00100000010000000110000110011111
+11011010001000000100011001100111
+01101111111000001100011001100110
+00011111111000001111111111111111
+00011111111011111111111000011101
+10011010001000001010001000000000
+11101111111000001000000000010001
+01100111111000001100001111110011
+01101111111000001100001111110011
+11000000000110100101010010110110
+00100000001000000101101010010100
+01000100101110000100000000001110
+01111000010101000111110000000000
+01101111111001000100011100010011
+11000011000001011101010010110011
+01101111111100001000000100110010
+11000010100000100101010010110011
+01111000001101000111110000000000
+01101111111000001100011110000000
+01100111111000001100011101111111
+00100000011000000000000000000000
+01110000010001111001010100000001
+01101000010010001100011100011110
+01101111111000001100011110001111
+11000000011111111101010010111011
+01101000010010001100011000111100
+01100000010010001100100001000101
+00100000010000000100001100101101
+01101111111000011100011110011101
+01100111111000011100001101001101
+00100000010000000101101101101011
+01011000000000000000000000000100
+11100111111000001000000000000110
+11011000110000000100001101101001
+00100000010000000101101101110010
+00100000001000000111100001110000
+11000101000100110100001100001000
+01101111111000001100100101010110
+00100000001110100100001100001000
+01101111111000001100011111000010
+11000000000000001100001100001000
+01101111111000001100100001010111
+00100100001110100100001100001000
+00100000001000000100001100001010
+01000100101110001100000000001110
+01011000000000000000000000000110
+00100000010000000110100111100101
+11000010100000011101010011010011
+00100000010000000101100111011010
+00100000010000000101100111101101
+00100000010000000101010011011100
+00100000001000000100001100100111
+01000100101110010100000000001110
+00100000010000000111001110011010
+00100000010000000101011010101001
+00100000010000000101010011011100
+00100000010000000101110110011110
+01101000010010001100011001011001
+00100000001000000110111011010011
+01000100101110011100000000001110
+00100000010000000101101010010010
+00100000010000000111110111100010
+00100000010000000110000100011010
+00100000010000000101010100001100
+00100000010000000101010011111001
+01101000010010001100011001011011
+00100000010000000101010110110101
+00100000010000000101010110111001
+00100000010000000110000111111101
+00100000010000000101010011110010
+00100000001000000101010011101000
+01101111111001000100011100010011
+11000100000111100000000000000000
+01101000010010001100011001001010
+00100000010000000110111011010011
+01101000010010001100011001001011
+00100000010000000110111011010011
+01101000010010001100011001001010
+00100000010000000101010110110001
+01101000010010001100011001001011
+00100000001000000101010110110001
+01101111111001000100011100010011
+11000100000010101000000000000000
+01101111111000001100010000000111
+11000001100000010000000000000000
+01101111111000001100011000110101
+11011000010000000000000011000000
+00100000001000000110111100100001
+11011000110000001000000001110000
+11011111001000000000000000010000
+11101111111000001000000000000110
+00100100001110100101010100000000
+01011000000000000000000010000000
+00011000110000001000101111111111
+11100111111000001000000000000101
+11000010000000000101010011111011
+11011111111000001000000011011100
+10011000110001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000001000
+11011000110000001000000011010100
+00100000001000000101010011111011
+11000110000100110000000000000000
+00100000010000000101010100001100
+01101111111000001000000000010101
+00100100011110100000000000000000
+00100000001000000110111011010011
+01000100101110100100000000001110
+01101000010010001100011001001010
+00100000010000000110111011011101
+01101000010010001100011001001011
+00100000010000000110111011011101
+00100000010000000101011000011100
+01101111111000001100011001001100
+00100000010000000101100101000011
+00100000010000000110100111011100
+01101000010010001100011001000100
+00100000010000000110111010110110
+01101000010010001100011001000110
+00100000010000000110111010110110
+01101000010010001100011001000101
+00100000010000000110111010110110
+01101000010010001100011001000111
+00100000010000000110111010110110
+01101000010010001100011001001000
+00100000010000000110111010110110
+01101000010010001100011001001001
+00100000010000000110111010110110
+01101000010010001100011001010101
+00100000010000000110111010110110
+01101000010010001100011001010110
+00100000010000000110111010110110
+01101000010010001100011001001010
+00100000010000000110111010110010
+01101000010010001100011001001011
+00100000010000000110111010110010
+01101000010010001100011001010010
+00100000010000000110111010110010
+01101000010010001100011001010011
+00100000010000000110111010110010
+01101000010010001100011001011001
+00100000001000000110111010110110
+01101111111000010100010011101001
+11000100000001001000000000000000
+00011010001000100111111000000000
+00100100001110100010100111010101
+00100000001000000010100111011010
+01000100101110101100000000001110
+01101111111000001100010000000111
+11000001100000010000000000000000
+01101000010010001100011000110101
+00100000001000000110111100001111
+01101111111001000100011100010011
+11000100000010101000000000000000
+01110000010001100011011000000001
+00100000011000000000000000000000
+01000100101110110100000000001110
+01101111111001000100011100010011
+11000100000010101000000000000000
+00100000010000000101010100110100
+01101111111000001100010000000111
+11000000000000010101010101000101
+01110000010001100011011000000011
+00100000001000000101010101000111
+01110000010001100011011000000010
+00100000001000000101010101000111
+01000100101110111100000000001110
+00100000010000000110111110000010
+00100000010000000110111110110000
+01100111111000010100011000110011
+01101111111000001100010000000111
+11000000100000010101010101010011
+01101000010010010100011000110011
+00011000010011111111111000001000
+00011111111001101111110000001010
+00100000010000000111110101011111
+10011000010000001111111000000000
+01100111111000010100011000110011
+11011010001000000100011000101101
+00100000010000000101010101100011
+01101111111000001100010000001100
+11000010100000001101010011001101
+11000011000000000101010101011100
+01110000010001100011011100000001
+00100000001000000101010101011010
+11011000111000000000000000000100
+00100000001000000101111100000000
+11011000111000000000000000000100
+00100000010000000101111100000100
+01110000010001110000100100000001
+01101111111000001100011000110111
+00100000011110100000000000000000
+01110000010001100011011100000000
+00100000001000000110000101101110
+01000100101111000100000000001111
+11101111111001000000000000010001
+01100111111001000000011001110000
+01101111111000001100011000110110
+11000000000000000101010101101010
+11000000000000010101010101101010
+11000000000000011101010110001000
+00100000010000000110111111110011
+00100000010000000110111111101011
+01101111111000010000011001110110
+01101000010010010000011001110010
+10011000010001100111110000000000
+00100100010000010110111111101111
+01101000010010010000011001110100
+10011000010001100111110000000000
+00100100010000010110111111100111
+01101111111000010000011001110110
+01101000010010010000011001110000
+10011000010001100111110000000000
+00100000001000010101010110000100
+01101000010010010000011001110010
+10011000010001100111111000000000
+00100100001000010101010110000110
+00100000001110100101010110000110
+00011111111011111010001001100100
+01101111111000010000011001110000
+01101000010010010000011001110010
+10011000010001100000010000000000
+00011010001000100111111000000000
+10011000010001101111110000000000
+00100000010000000111110101011111
+01100111111000001100011110111101
+00100000011000000000000000000000
+01110000010001111011110101100100
+00100000011000000000000000000000
+01110000010001111011110100000000
+00100000011000000000000000000000
+00100000001000000101010101101010
+01101000010010001100010000100111
+00100000010000000110111011110111
+01101000010010001100011001000100
+00100000010000000101010110110101
+01101000010010001100011001000110
+00100000010000000101010110110101
+01101000010010001100011001000101
+00100000010000000101010110110101
+01101000010010001100011001000111
+00100000010000000101010110110101
+01101000010010001100011001001000
+00100000010000000101010110110101
+01101000010010001100011001001001
+00100000010000000101010110110101
+01101000010010001100011001010100
+00100000010000000101010110110101
+01101000010010001100011001010101
+00100000010000000101010110110101
+01101000010010001100011001010110
+00100000010000000101010110110101
+01101000010010001100011001001010
+00100000010000000101010110110101
+01101000010010001100011001001011
+00100000010000000101010110110101
+01101000010010001100011001010010
+00100000010000000101010110110101
+01101000010010001100011001010011
+00100000010000000101010110110101
+01101000010010001100011001011001
+00100000010000000101010110110101
+01101000010010001100011001011010
+00100000010000000101010110110101
+01101000010010001100011001001110
+00100000001000000101010110110101
+00011000010001100111110011111111
+00100000011000101000000000000000
+00011000010000010000111001111111
+01101111111100100000000100011100
+10101111111011111111111111111111
+00100000001000001101010110110101
+00011000010001100111110011111111
+00100000011000101000000000000000
+01111001001000000000010000000111
+00100000001000000110111011011101
+00011000010001100111110011111111
+00100000011000101000000000000000
+01111001001111111000010000000111
+00100000001000000110111011011101
+01101111111000011100011100111100
+01100111111000011000011001110000
+11011111001000000000000000001101
+11011000010000000000000000000000
+01101111111000011000011001110000
+00101111111011111111111000000000
+00100000010000001110111100001111
+01101111111000011000011001110000
+00011111111000111111111000000000
+01100111111000011000011001110000
+00011000010000001000010000000001
+11000010000000000101010110111101
+00100000011000000000000000000000
+01000100101111001100000000001111
+01101111111001000100100110001101
+00100000011110100000000000000000
+01101111111000001100100110001100
+00011111111000100010001000000000
+00011111111001100111110000001011
+00100100001000010101010111011101
+00100000010000000101010111010110
+11011000101000000100011110101001
+00100000010000000101010111010011
+11011000101000000100001101101011
+00100000010000000101010111010011
+11011000101000000100001001101100
+11011000110000000100100110001101
+00011010001000100111001000000000
+00100000001000000111110011011010
+11011000101000000100011110101001
+00100000010000000101010111011011
+11011000101000000100001101101011
+00100000010000000101010111011011
+11011000101000000100001001101100
+11011111001000000000000000001011
+00100000001000000111110010100001
+00100000010000000101010111110011
+01101111111000001100100110001100
+00011111111000001111111000000001
+01100111111000001100011110100000
+01110000010001111010000100001001
+11011000110000000100100110001101
+11011000101000000100011110100010
+00011010001000100111001000000000
+00100000010000000111110011011010
+01101111111000001100100110001100
+00011111111000001111111000000001
+01100111111000001100001101101001
+01110000010000110110101000001001
+11011000110000000100100110001101
+11011000101000000100001101101011
+00011010001000100111001000000000
+00100000010000000111110011011010
+11011000110000000100100110001100
+11011000101000000100001001101011
+00011010001000100111001000000000
+00011111001000001111001000000001
+00100000001000000111110011011010
+11011000101000000100011110100000
+11011111001000000000000000010100
+00100000001000000111110010100001
+00100000010000000101010111111011
+01110000010000111111010101110011
+00100000010000000101010111111010
+00100000001000000110100111100000
+00100000001000000110101111000110
+01101111111000001100011001001100
+11011000010000000000000000100001
+00100000010000000110111100100001
+01101111111000001100011001001101
+11011000010000000000000000100011
+00100000001000000110111100100001
+01000100101111010100000000001111
+01111000010101000111110000000000
+01011000000000000000000000000000
+01100111111000110100100001000111
+00100000010000000101100111110110
+01011000000000000000000010001001
+00100000010000000110100111100100
+00100000010000000101011101000111
+00100000010000000101011000010010
+00100000010000000101011000010111
+00100000010000000101011110100110
+01101111111000001100100001000110
+00011111111000010111111000011111
+01100111111000001100100001000110
+00100100001101000101111100110111
+00100000010000000101111100100110
+00100000001000000101110000001011
+01101111111000001100100001010110
+00100000011110100000000000000000
+01100111111000001100100001001011
+01110000010010000101011000000000
+00100000001000000111110110111010
+01101111111000001100100001010010
+00100000011110100000000000000000
+01100111111000001100100001001100
+01110000010010000101001000000000
+00100000001000000111110110111010
+00100000010000000101011000101001
+00100000010000000101011001100101
+01101111111000001100100001010000
+01101000010010001100100001001111
+01100111111000001100100001001111
+10011000010001100111110000000000
+00100100001000101100001100001100
+01101111111000001100100001010100
+01101000010010001100100001010011
+01100111111000001100100001010011
+10011000010001100111110000000000
+00100100001000101100001100001100
+00100000011000000000000000000000
+01101111111000001100011001010010
+11000001011111111000000000000000
+11011010001000000000000000000000
+01101000010010001100011001010010
+00100000010000000110111011100110
+01111001001000001010001000000000
+01101000010010001100011001010011
+00100000010000000110111011100110
+01111001001000001010001000000001
+00011010001000100111111000000000
+01100111111000001100100001010000
+11000000000000001101011000111001
+11000000000000010101011000111101
+01101111111000001100100001010001
+11000010100000111101011001001001
+00100000011000000000000000000000
+01101111111000001100100001001111
+11000000000000000101011001000001
+11000000000000011101011001000011
+00100000011000000000000000000000
+01101111111000001100100001001111
+11000000000000000101011001000101
+11000000000000011101011001000111
+00100000011000000000000000000000
+01110000010010000101000110000010
+00100000011000000000000000000000
+01110000010010000101000110000001
+00100000011000000000000000000000
+01110000010010000101000110000000
+00100000011000000000000000000000
+01110000010010000101000110000011
+00100000011000000000000000000000
+01101111111000001100100001010001
+01111001001111111111111000000111
+01100111111000001100100001010001
+11000000000000000101011001010001
+11000000000000001101011001010100
+11000000000000010101011001010111
+11000000000000011101011001011010
+00100000011000000000000000000000
+01101111111000001100100001010000
+11000000000000011101011001011101
+00100000011000000000000000000000
+01101111111000001100100001010000
+11000000000000000101011001011101
+00100000011000000000000000000000
+01101111111000001100100001010000
+11000000000000011101011001100001
+00100000011000000000000000000000
+01101111111000001100100001010000
+11000000000000000101011001100001
+00100000011000000000000000000000
+01101111111000001100100001010010
+00011111111000001111111000000001
+01100111111000001100100001010010
+00100000011000000000000000000000
+01101111111000001100100001010010
+00011111111000001111111111111111
+01100111111000001100100001010010
+00100000011000000000000000000000
+01101111111000001100011001001010
+11000001011111111000000000000000
+11011010001000000000000000000000
+01101000010010001100011001001010
+00100000010000000110111011100110
+01111001001000001010001000000000
+01101000010010001100011001001011
+00100000010000000110111011100110
+01111001001000001010001000000001
+00011010001000100111111000000000
+01100111111000001100100001010100
+11000000000000001101011001110101
+11000000000000010101011001111001
+01101111111000001100100001010101
+11000010100000111101011010000101
+00100000011000000000000000000000
+01101111111000001100100001010011
+11000000000000000101011001111101
+11000000000000011101011001111111
+00100000011000000000000000000000
+01101111111000001100100001010011
+11000000000000000101011010000001
+11000000000000011101011010000011
+00100000011000000000000000000000
+01110000010010000101010110000010
+00100000011000000000000000000000
+01110000010010000101010110000001
+00100000011000000000000000000000
+01110000010010000101010110000000
+00100000011000000000000000000000
+01110000010010000101010110000011
+00100000011000000000000000000000
+01101111111000001100100001010101
+01111001001111111111111000000111
+01100111111000001100100001010101
+11000000000000000101011010001101
+11000000000000001101011010010000
+11000000000000010101011010010011
+11000000000000011101011010010110
+00100000011000000000000000000000
+01101111111000001100100001010100
+11000000000000011101011010011001
+00100000011000000000000000000000
+01101111111000001100100001010100
+11000000000000000101011010011001
+00100000011000000000000000000000
+01101111111000001100100001010100
+11000000000000011101011010011101
+00100000011000000000000000000000
+01101111111000001100100001010100
+11000000000000000101011010011101
+00100000011000000000000000000000
+01101111111000001100100001010110
+00011111111000001111111000000001
+01100111111000001100100001010110
+00100000011000000000000000000000
+01101111111000001100100001010110
+00011111111000001111111111111111
+01100111111000001100100001010110
+00100000011000000000000000000000
+01101000010010001100011001001010
+00100000010000000110111010110010
+01101000010010001100011001001011
+00100000010000000110111010110010
+01101000010010001100011001010010
+00100000010000000110111010110010
+01101000010010001100011001010011
+00100000001000000110111010110010
+01101000010010001100011001001010
+00100000010000000101010110101011
+01101000010010001100011001001011
+00100000010000000101010110101011
+01101000010010001100011001010010
+00100000010000000101010110101011
+01101000010010001100011001010011
+00100000001000000101010110101011
+01101111111000010100100001001011
+00100000011110100000000000000000
+01110000010010000101011100000001
+01110000010010000101100000001010
+00100000011000000000000000000000
+11011010011000000100100001011000
+11011010010000000101011010111001
+00100000001000000100001011100000
+01110000010010000101011100000000
+00100000011000000000000000000000
+01101111111000001100011001001001
+11000001011111111000000000000000
+11011010001000000000000000000000
+01110000010010010111011100000101
+01101000010010001100011001001001
+00100000010000000101011011001000
+01100111111000001100100101110100
+01101111111000001100011001010100
+11000000011111111101011011011000
+00100000010000000101100011011111
+00011010001000100111111000000000
+11000010100000101101011011100000
+00100000001000000101011011100111
+01101111111001000100011100010011
+11000010100101011101011011011110
+01101111111000001100100101110100
+00011111111000100010011000000000
+01101111111000001100011001010100
+11000000011111111101100100110001
+01101111111000001100100101111011
+00100100001110100101011011011011
+00100000010000000110111011100110
+01101000010010001100011001010100
+00100000001000001101011011011110
+01101000010010001100011001010100
+00100000010000000110111011110111
+01101000010010001100011001001001
+01101111111000001100100101110100
+00100000001000000101100100100101
+01101000010010001100011001001001
+00100000010000000101010110110101
+00100000001000000101011011000101
+01110000010010000111101000000000
+01110000010010010111010000000000
+00100000011000000000000000000000
+01101111111000001100100101110100
+00100000001000000101100100100101
+01101111111000001100100001111010
+11000001000000001000000000000000
+01110000010010000111101000000001
+01101111111001000100011100010011
+11000011100101000000000000000000
+11000011100110110000000000000000
+00100000001000000101011011110111
+01101111111000001100100001111010
+11000001000000000000000000000000
+01110000010010000111101000000000
+01101111111001000100011100010011
+11000010100101000101011011101110
+11000010100110110101011011101110
+00100000011000000000000000000000
+01101111111000001100100001111011
+00100100001110100101011011110010
+01101111111000001100100101111101
+00100100010110100101011011110111
+01110000010010000111101100000000
+01101111111000001100010011101011
+01100111111000001100100101111101
+01100111111000001100100101111100
+00100000011000000000000000000000
+01000100101111011100000000001111
+00100000010000000101011100101000
+00100000011101000000000000000000
+01101111111000001100011010010000
+00011111111000100000010000000000
+01101111111001000100011100010011
+11000010100010111101011100000100
+00011000010000100111111000000000
+00011111111000001111111000000001
+00011111111000010111111000000011
+01100111111000001100011010010000
+00100000010000000101011101000100
+00100000001000000101110010101100
+01101111111000001100100110001010
+00100100001110100101011100100001
+01101111111001000100011100010011
+11000010100011100101011100010101
+00011000010000100111111000000000
+11000001000000001000000000000000
+11000000000000000101011100010001
+11000000000000010101011100001111
+00100000011000000000000000000000
+01011000000000000000000000000010
+00100000001000000101011100000001
+01011000000000000000000000000000
+00100000001000000101011100000001
+01011000000000000000000000000001
+00100000001000000101011100000001
+01011000000000000000000000000011
+00100000001000000101011100000001
+00011000010000100111111000000000
+11000001000000001000000000000000
+11000000000000000101011100010001
+11000000000000010101011100010011
+11000000000000011101011100001111
+00100000011000000000000000000000
+00011000010000100111111000000000
+11000001000000010000000000000000
+11000000000000000101011100010011
+11000000000000001101011100001111
+11000000000000011101011100001101
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000010100011100101011100011011
+00011000010000100111111000000000
+11000001000000010000000000000000
+11000000000000000101011100001101
+11000000000000001101011100001111
+00100000011000000000000000000000
+01111000010101000111110000000000
+01101111111001000100011100010011
+11000011100101011000000000000000
+00100000001000000101111010110001
+01101111111001000100011100010011
+11000010100101000101011100110000
+11000010100110110101011100110111
+00100000011000000000000000000000
+01101111111000001100100001111010
+11000001100000001000000000000000
+11011010011000000100100101111101
+11011010010000000101011100110101
+00100000001000000100001011100000
+01110000010010000111101100000001
+00100000001000000101111011000110
+01101111111000001100100001111010
+11000001100000001000000000000000
+11011010011000000100100101111100
+11011010010000000101011100111100
+00100000001000000100001011100000
+01110000010010000111101100000001
+00100000001000000101101110100011
+01101111111001000100011100010011
+11000011100011100000000000000000
+01101111111000001100011010010000
+11000001100000011000000000000000
+01110000010001101001000000000000
+00100000011000000000000000000000
+01000100101111100100000000001111
+00100000010000000101011100111110
+00100000010000000110000100111010
+01000100101111101100000000001111
+01101111111000001100100101010111
+11000000000001100101011101101011
+11000000000000011101011110000101
+11000000000001011101011110011001
+01101111111000001100011010010000
+11000000000000000101011101010011
+11000000000000001101011101010001
+11000000000000010101011101010101
+11000000000000011101011101010111
+01101000010010001100100001101001
+00100000001000000101011101011000
+01101000010010001100100001101000
+00100000001000000101011101011000
+01101000010010001100100001101010
+00100000001000000101011101011000
+01101000010010001100100001101011
+01101111111000001100100101010111
+11000000000000100101011101100111
+11000000000000101101011101100111
+11000000000001000101011101101001
+11000000000000111101011101101001
+11000000000000110101011101100111
+01100000010010001100100001111001
+01011000000000000000000000000110
+00100000010000000110100111100101
+00011111111000010000010011111000
+01101111111000001100100001111001
+10011000010000001111111000000000
+00011111111011010111111000000000
+00011111111000001111111000000110
+00100000001000000110100111100100
+00011000010000001000010111111111
+00100000001000000101011101011110
+00011000010000001000010000000010
+00100000001000000101011101011110
+01101111111000001100011010010000
+11000000000000000101011101101111
+11000000000000001101011101110101
+11000000000000010101011101111000
+01101111111000001100100001110100
+00011111111000100010001000000000
+00100000001000000101011101111101
+01101111111000001100100001110101
+00011111111000100010001000000000
+00100000001000000101011101111101
+01101111111000001100100001110110
+00011111111000100010001000000000
+00100000001000000101011101111101
+01101111111000001100100001110111
+00011111111000100010001000000000
+00100000001000000101011101111101
+01101111111000001100100001111000
+00011111111000100010001000000000
+01011000000000001100001100001001
+00100000010000000110100111100100
+00011010001000100111111000000000
+00011111111011010111111000000000
+00011111111000001111111000100011
+00100000010000000110100111100100
+01011000000000000000000000001001
+00100000001000000110100111100100
+01101111111000001100011010010000
+11000000000000000101011110001100
+11000000000000001101011110001010
+11000000000000010101011110001110
+11000000000000011101011110010000
+01101111111000001100100001101101
+00100000001000000101011110010001
+01101111111000001100100001101100
+00100000001000000101011110010001
+01101111111000001100100001101110
+00100000001000000101011110010001
+01101111111000001100100001101111
+01100111111000001100100001111001
+00011111111011010111111000000000
+00011111111000100010001000000000
+00011111111000001111111000001101
+00100000010000000110100111100100
+00011010001000100111111000000000
+00011111111000001111111000001110
+00100000001000000110100111100100
+01101111111000001100011010010000
+11000000000000000101011110100000
+11000000000000001101011110011110
+11000000000000010101011110100010
+11000000000000011101011110100100
+01101111111000001100100001110001
+00100000001000000101011110010001
+01101111111000001100100001110000
+00100000001000000101011110010001
+01101111111000001100100001110010
+00100000001000000101011110010001
+01101111111000001100100001110011
+00100000001000000101011110010001
+00100000010000000101100001001100
+01101111111000001100100110000111
+00100100001110100101100001100000
+01101111111000001100100110000010
+00100100001110100101100001011111
+00100000010000000101100010001000
+00100000010000000101011110111100
+00100000010000000101010100101111
+00100000010000000101011110110111
+00011010001000100111111000000000
+01101000010010001100100001001110
+01100111111000001100100001001110
+01100111111000001100100001000110
+10011000010000101111111000000000
+00011111111001100111110000000000
+00100000011000101000000000000000
+00100000001000000111110110111010
+11000110100100110000000000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+01100111111000001100100001000110
+00100000001000000111110110111010
+01110000010010010111100100000000
+01110000010010010111101000000000
+01110000010010010111101100000000
+00011111111000100010010000000000
+01101000010010001100011001000100
+01101111111000001100011001000111
+10011000010001100111110000000000
+00100000001000101101011111001100
+01101111111000001100011001001000
+10011000010001100111110000000000
+00100000001000101101011111010001
+01101000010010001100011001000101
+01101111111000001100011001000111
+10011000010001100111110000000000
+00100000001000101101011111100000
+00100000001000000101011111100011
+01101000010010001100011001000101
+01101111111000001100011001001000
+10011000010001100111110000000000
+00100000001000101101011111010110
+00100000001000000101011111011001
+01101000010010001100011001000101
+01101111111000001100011001000111
+10011000010001100111110000000000
+00100000001000101101011111011011
+00100000001000000101011111011110
+00100000010000000101011111101111
+00100000010000000101011111111011
+00100000001000000101011111100101
+00100000010000000101011111101111
+00100000001000000101011111100001
+00100000010000000101011111111000
+00100000010000000101011111110010
+00100000001000000101011111100101
+00100000010000000101011111111000
+00100000001000000101011111100100
+00100000010000000101011111110010
+00100000010000000101011111111110
+00100000001000000101011111100101
+00100000010000000101011111111011
+00100000010000000101011111110101
+00100000010000000101100000000001
+00100000010000000101100000000100
+01101111111000001100100101111010
+00100000011110100000000000000000
+01101111111000001100100101111001
+00100000011110100000000000000000
+01110000010010010111101100000001
+01101111111000001100100001001110
+00011111111000100010001000000000
+00100000011000000000000000000000
+00011010010000010111111000001001
+11000000000001001101100000001100
+00100000011000000000000000000000
+00011010010000010111111000001001
+11000000000010010101100000001100
+00100000011000000000000000000000
+00011010010000010111111000001001
+11000000000001010101100000001100
+00100000011000000000000000000000
+00011010010000010111111000001001
+11000000000010001101100000001100
+00100000011000000000000000000000
+00011010010000010111111000010100
+11000000000010100101100000001100
+00100000011000000000000000000000
+00011010010000010111111000010100
+11000000000010010101100000001100
+00100000011000000000000000000000
+00011010010000010111111000011000
+11000000000011000101100000001010
+00100000011000000000000000000000
+00011000010000010111111000000111
+11000000000000011101100000001010
+11000000000000101101100000001010
+11000000000000110101100000001010
+11000000000000111101100000001010
+00100000011000000000000000000000
+01110000010010010111101000000001
+00100000011000000000000000000000
+01110000010010010111100100000001
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000100000010111000000000000000
+11000011000101100101100000010110
+01101111111000001100011001011000
+00100000010000000101100101000011
+00100000010000000101100000100100
+01101000010010001100011001011000
+00100000001000000101010110110101
+01101111111000001100011001011000
+00100000010000000101100101000110
+01110000010010011000101100000000
+01101000010010001100011001011000
+01101111111000001100100110001000
+00100000010000000101100000111101
+00100000010000000101100000101000
+01101000010010001100011001011000
+00100000001000000101010110110101
+00100000010000000101010110110101
+01101111111000001100100110001001
+11000001000000001000000000000000
+01110000010010011000100100000001
+00100000001000000101011011110111
+01110000010010011000101100000000
+01101000010010001100011001011000
+01101111111000001100100110001000
+00100000010000000101100000110011
+01100111111000001100100110001000
+01101111111000001100100110001010
+00100000001110100101100000101111
+01101111111000001100100110001001
+11000001000000001000000000000000
+01110000010010011000100100000001
+00100000001000000101011011110111
+01101111111000001100100110001001
+11000001000000000000000000000000
+01110000010010011000100100000000
+00100000011000000000000000000000
+00011111111000111111111000000000
+00011111111000100010010000000000
+00100000010000000110111011100110
+01111001001000001010010000000000
+00011010010000010111111000000111
+01101000010010001100100110001011
+00011000010000100000111000000000
+11000000000000111101100001001000
+11000000000000000101100001001010
+00100000011000000000000000000000
+00011111111000111111111000000000
+00011111111000100010010000000000
+00100000010000000101010110110001
+00100000010000000110111011100110
+01111001001000001010010000000000
+00011010010000010111111000000111
+01101000010010001100100110001011
+00011000010000100000111000000000
+11000000000000111101100001001000
+11000000000000000101100001001010
+00100000011000000000000000000000
+01110000010010011000101000000001
+00100000011000000000000000000000
+01110000010010011000101000000000
+00100000011000000000000000000000
+11011010010000000000000000000000
+01101111111000001100011001010111
+11000001011111111000000000000000
+01101111111001000100011100010011
+11000011000101110101100001011001
+01101000010010001100011001010111
+00100000010000000101010110110101
+01101000010010001100011001010111
+00100000010000000110111011100110
+01111001001000001010010000000000
+00011010010000100111111000000000
+01100111111000001100100110000111
+00100000011000000000000000000000
+01101000010010001100011001010111
+00100000010000000101010110110001
+01101000010010001100011001010111
+00100000010000000110111011100110
+01111101001000001010010000000000
+00100000001000000101100001010110
+11000000000000100101100001111000
+00100000010000000101100001111011
+01101111111000100100100110000011
+11011000010000000000000010100000
+10011000010000001000010000000000
+00011100010000100111111000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01100111111000100100100110000011
+01101111111000001100100110000010
+11000000000000000101100001101110
+11000000000000001101100001110001
+11000000000000010101100001110100
+11000000000000011101100001110110
+00100000011000000000000000000000
+01110000010010011000001000000001
+01110000010010000100011000000001
+00100000001000000111110110111010
+01110000010010011000001000000010
+01110000010010000100011000000000
+00100000001000000111110110111010
+01110000010010011000001000000011
+00100000001000000101100001101111
+01110000010010011000001000000000
+00100000001000000101100001110010
+01110000010010011000001000000000
+01110000010010000100011000000000
+00100000011000000000000000000000
+01101000010010100100100110000011
+00011100010000100111111000000000
+10011000010001100111110000000000
+00100100010000010101100010000000
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000100100100110000011
+00100000011000000000000000000000
+00100000010000000101100010010101
+00100000010000000101100010001000
+01011000000000000000000000000000
+01100111111000011100100101101111
+00100000011000000000000000000000
+01000100101111110100000000001111
+01101111111000001100011100111111
+00100100010110100101100010010101
+11011010001000000000000000000000
+00100000010000000101100010011000
+00100000010000000101100010100001
+00100000010000000101100010101010
+00100000010000000101100010110011
+00100000010000000101100011001111
+00100000010000000101100001001100
+00100000010000000101100011101100
+00011010001000100111111000000000
+00100000011000000000000000000000
+01011000000000110000001100000011
+01100111111000011100100101101111
+00100000011000000000000000000000
+01101111111000001100011001000100
+00100000010000000101100101000011
+01110000010010010111011100000000
+01101000010010001100011001000100
+01101111111000001100100101101111
+00100000010000000101100100100101
+01100111111000001100100101101111
+01101000010010001100011001000100
+00100000001000000101010110110101
+01101111111000001100011001000110
+00100000010000000101100101000011
+01110000010010010111011100000001
+01101000010010001100011001000110
+01101111111000001100100101110000
+00100000010000000101100100100101
+01100111111000001100100101110000
+01101000010010001100011001000110
+00100000001000000101010110110101
+01101111111000001100011001000101
+00100000010000000101100101000011
+01110000010010010111011100000010
+01101000010010001100011001000101
+01101111111000001100100101110001
+00100000010000000101100100100101
+01100111111000001100100101110001
+01101000010010001100011001000101
+00100000001000000101010110110101
+01101111111000001100011001000111
+11000001011111111000000000000000
+01110000010010010111011100000011
+01101111111000001100100101110010
+00011111111000100010011000000000
+01101000010010001100011001000111
+01101111111000001100011001010100
+11000000011111111101100011001000
+00100000010000000110111011100110
+00100000001000001101100011000100
+01101000010010001100011001010100
+00100000010000000110111011110111
+01101000010010001100011001000111
+01101111111000001100100101110010
+00100000010000000101100100100101
+01100111111000001100100101110010
+00100000001000000101100011011111
+01101000010010001100011001010100
+01101111111000001100100101110010
+00100000010000000101100100100101
+00100000001000000101100011000010
+01101111111000001100011001000111
+00100000010000000101100101000110
+01101000010010001100011001000111
+00100000010000000101100100110001
+01100111111000001100100101110010
+01101000010010001100011001000111
+00100000001000000101010110110101
+01101111111000001100011001001000
+11000001011111111000000000000000
+01110000010010010111011100000100
+01101111111000001100100101110011
+00011111111000100010011000000000
+01101000010010001100011001001000
+01101111111000001100011001010100
+11000000011111111101100011100101
+00100000010000000110111011100110
+00100000001000001101100011100001
+01101000010010001100011001010100
+00100000010000000110111011110111
+01101000010010001100011001001000
+01101111111000001100100101110011
+00100000010000000101100100100101
+01100111111000001100100101110011
+01101000010010001100011001010100
+00100000001000000101010110110101
+01101000010010001100011001010100
+01101111111000001100100101110011
+00100000010000000101100100100101
+00100000001000000101100011011110
+01101111111000001100011001001000
+00100000010000000101100101000110
+01101000010010001100011001001000
+00100000010000000101100100110001
+01100111111000001100100101110011
+01101000010010001100011001001000
+00100000001000000101010110110101
+01110000010010010110110000000000
+01101111111000001100011001010110
+11000001011111111000000000000000
+01101111111001000100011100010011
+11000100000010110000000000000000
+11000010100101111101100011111101
+01110000010010010111011100000111
+01101000010010001100011001010110
+01101111111000001100100101110110
+00100000010000000101100100100101
+01100111111000001100100101110110
+00011010001000100111111000000000
+11000010100000111101100100010111
+00100000010000000101100100011010
+01101111111000001100100101101101
+01100111111000001100100101101110
+00100000011000000000000000000000
+01110000010010010111011100000111
+01101111111000001100100101110110
+00011111111000100010011000000000
+01101000010010001100011001010110
+01101111111000001100011001010100
+11000000011111111101100100001111
+00100000010000000110111011100110
+00100000001000001101100100001011
+01101000010010001100011001010100
+00100000010000000110111011110111
+01101000010010001100011001010110
+01101111111000001100100101110110
+00100000010000000101100100100101
+00100000001000000101100100010011
+01101000010010001100011001010100
+01101111111000001100100101110110
+00100000010000000101100100100101
+00100000001000000101100100010011
+01101111111000001100011001010110
+00100000010000000101100101000110
+01101000010010001100011001010110
+00100000010000000101100100110001
+01100111111000001100100101110110
+00100000010000000101100011110111
+01101000010010001100011001010110
+00100000001000000101010110110101
+01110000010010010110110100000001
+00100000010000000101100100011101
+00100000001000000101100011111010
+01110000010010010110110100000000
+01101111111000001100100101101110
+00100000011110100000000000000000
+01110000010010010110110000000001
+00100000011000000000000000000000
+00100000010000000110111011100110
+01101000010010001100100101110111
+00011000010000100000111000000000
+00100000001000001101100100101111
+11111001001111111010001000000000
+00100000011000000000000000000000
+00011111111000111111111000000000
+00011111111000100010010000000000
+00100000010000000110111011100110
+01111001001000001010010000000000
+00011010010000010111111000000111
+01101000010010001100100101110111
+00011000010000100000111000000000
+11000000000000111101100100101111
+11000000000000000101100100100011
+00100000011000000000000000000000
+11111001001000000010001000000000
+00100000011000000000000000000000
+01000100101111111100000000001111
+00011010011000100111111000000000
+01100111111000001100100101111000
+00011111111000111111111000000000
+00011111111000100010010000000000
+00011000010000100010011000000000
+00100000010000000101010110110001
+00011010011000100000010000000000
+00100000010000000110111011100110
+01111101001000001010010000000000
+00100000010000000101100100111101
+00100000001000000101100100101010
+01101000010010001100100101111000
+00011000010000010000010000000001
+00011010010000010111111000000001
+10011000010001100111110000000000
+00100100001000101101101010111100
+00100000011000000000000000000000
+11000001011111111000000000000000
+11011000010000000000000000111111
+00100000001000000110111100100001
+11000001011111111000000000000000
+11011000010000000000000000111110
+00100000001000000110111100100001
+01000100110000000100000000010000
+00100000010000000101010111110110
+00100000011101011000000000000000
+00100000010000000101100111100111
+01000100110000001100000000010000
+00100000010000000101100101011000
+11000000000110000101100101011111
+11000000000110001101100111000110
+11000000001011000101100111001111
+00100000010000000101100101010101
+00100000000000000001101011110100
+00100000001000000101100101001101
+01101000010010001100011001001100
+00100000010000000110100111000111
+00100000001000000101010111111011
+01011000000000000000000000000001
+00100000010000000110100111100101
+01100111111000001100100001011010
+01011000000000000000000000000000
+00100000010000000110100111100101
+01100111111000001100100001011001
+00100000011000000000000000000000
+01101111111000001100100001011010
+11000000001011010101100101101110
+11000000011011000101100101110100
+11000000011010001101100101101000
+11000000011010010101100110001100
+11000000000000010101100110010011
+11000000001010100101100110011100
+11000000001010000101100111000011
+00100000001000000101100101001101
+01011000000000000000000001001001
+00100000010000000110100111100101
+11000000010100001101100101101100
+00100000001000000101100110000011
+01110000010010010101011100001100
+00100000011000000000000000000000
+01110000010010010101011100000101
+00100000010000000101100111011010
+00100000010000000111110010010101
+11011010011000000100100011010110
+00100000010000000101100110010101
+00100000001000000101011101000111
+01011000000000000000000000010110
+00100000010000000110100111100101
+00011111111001100111110010111101
+00100100001000101101100101001001
+01011000000000000000000000011001
+00100000010000000110100111100101
+00011111111001100111110001010101
+00100100001000101101100101001001
+01011000000000000000000000011011
+00100000010000000110100111100101
+00011111111001100111110000011101
+00100100001000101101100101001001
+01110000010010010101011100000110
+11011010011000000100100100011010
+00100000001000000101100110010101
+01110000010010010101011100000000
+11011010011000000100100010010000
+00100000010000000101100110010101
+11011010011000000100100010011010
+00100000010000000101100110010101
+01011000000000000000100101000011
+00100000010000000110100111100100
+11011010011000000100100010110100
+00100000001000000101100110010101
+01110000010010010101011100000010
+11011010011000000100100010000110
+00100000010000000101100110010101
+11011010011000000100100010011010
+00100000010000000101100110010101
+11011010011000000100100010110100
+00100000001000000101100110010101
+01110000010010010101011100000011
+11011010011000000100100001111100
+11101111111000010000000000010011
+11011000010000001111111111111111
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100000010000000110100111100100
+00011010011000001010011000000010
+00100000001000000101100110010101
+00100000010000000101100111011000
+01011000000000001001101001011011
+00100000010000000110100111100100
+01011000000000000000000000001101
+00100000010000000110100111100101
+00011111111001100111110000010010
+00100000001000101101100110110000
+00011111111001100111110000001010
+00100100001000101101100110110011
+01011000000000000000000000001110
+00100000010000000110100111100101
+00011111111001100111110011100101
+00100100001000101101100101001101
+01011000000000000000000000010000
+00100000010000000110100111100101
+00011111111001100111110010100101
+00100000001000101101100110110000
+00100000010000000101100111000000
+01110000010010010101011100001000
+00100000011000000000000000000000
+01110000010010010101011100001001
+11011010011000000100100011111100
+00100000001000000101100110010101
+00011111111001100111110000010000
+00100100001000101101100101001101
+01011000000000000000000000001110
+00100000010000000110100111100101
+00011111111001100111110011000101
+00100100001000101101100101001101
+01011000000000000000000000010000
+00100000010000000110100111100101
+00011111111001100111110000111000
+00100100001000101101100101001101
+00100000010000000101100111000000
+01110000010010010101011100001010
+00100000011000000000000000000000
+01011000000000000000000001011011
+00100000010000000110100111100100
+00100000001000000101100111010110
+01110000010010010101011100000111
+11011010011000000100100100111010
+00100000001000000101100110010101
+00100000010000000101100111100111
+01101111111000001100100001011010
+11000000001110000101100111001101
+11000000000000000101100111001011
+00100000001000000101100101001101
+01110000010010010101011100000001
+00100000011000000000000000000000
+01110000010010010101011100000100
+00100000011000000000000000000000
+00100000010000000101100111100111
+01101111111000001100100001011010
+11000000001011001101100111010011
+00100000001000000101100101011111
+01110000010010010101011100001011
+11011010011000000100100100101010
+00100000001000000101100110010101
+01011000000000000000000000001001
+00100000001000000110100111100100
+01011000000000000101101000001001
+00100000001000000110100111100100
+11011000010000001000000000000110
+01101111111000001100100101010111
+11000000100001011101100111011110
+11011000010000001001011100000110
+00011000010000100111111000000000
+00100000010000000110100111100100
+00100000000000000010111011100000
+00100000011000000000000000000000
+11011010011000000100100101000110
+01101111111000001100100101010111
+11000001100001011000000000000000
+11011010011000000100100101001110
+00100000011000000000000000000000
+01000100110000010100000000010000
+00100000010000000101010111110110
+00100000010000000101100111011010
+00100000010000000101100111100010
+00100000010000000101100110010101
+00100000001000000101011101000111
+01000100110000011100000000010000
+00100000010000000101100101001001
+00100000010000000101010111110110
+11011000010000000000100000000110
+01101111111000001100100101010111
+11000000100001011101100111110100
+11011000010000000001111100000110
+00011000010000100111111000000000
+00100000001000000110100111100100
+01101111111000001100010000100000
+11000001100000000000000000000000
+01101111111000001100100101010111
+11000000000000000101101000000010
+11000000000000001101101000000010
+11000000000001000101101000000010
+11000000000000010101101000000010
+11000000000000011101101000100110
+11000000000000100101101000000010
+11000000000000110101101001001011
+11000000000001011101101001000100
+00100000001000000101101000000010
+00100000010000000101101001101101
+01111000010101000111110000000000
+01101111111000001100011001011001
+11000000011111111101101000001001
+01101000010010001100011001011001
+00100000010000000110111011100110
+00100100011000001000000000000000
+01011000000000000000000000000000
+00100000010000000110100111100101
+11000000100110000101101000011100
+01011000000000000000000000000010
+00100000010000000110100111100101
+11000100000000111000000000000000
+00100000010000000101101010000100
+01101111111000001100100001000111
+00100000010000000101101001111100
+01100111111000010100100001000111
+01101111111000001100100001001001
+00100000010000000101101001111100
+01100111111000010100100001001001
+01101111111000001100100101011000
+11000000000000000101101000011110
+11000000000000001101101000100000
+11000000000000010101101000100010
+11000000000000011101101000100100
+00100000011000000000000000000000
+11000000000110001101101000001100
+00100000001000000101100101010101
+00100000010000000101101001010110
+00100000001000000101101010001011
+00100000010000000101101001011110
+00100000001000000101101010001011
+00100000010000000101101001011010
+00100000001000000101101010001011
+00100000010000000101101001100110
+00100000001000000101101010001011
+00100000010000000101101001101101
+01101111111000001100011001011001
+11000000011111111101101000101100
+01101000010010001100011001011001
+00100000010000000110111011100110
+00100100011000001000000000000000
+01011000000000000000000000000000
+00100000010000000110100111100101
+11000000100110000101100101010101
+01011000000000000000000000000010
+00100000010000000110100111100101
+11000100000000111000000000000000
+00100000010000000101101010000100
+00100000010000000101101001000010
+01100111111000001100100001001101
+00011111111100011111111000000000
+00100000010000000101101010000000
+01100111111000001100100001001000
+01101111111000001100100001001101
+00011111111000010111111000001111
+00100000010000000101101010000000
+01100111111000001100100001001010
+01101111111000001100100101011000
+11000000000000000101101001010110
+11000000000000001101101001011110
+11000000000000010101101001011010
+11000000000000011101101001100110
+00100000011000000000000000000000
+01011000000000000000000000010010
+00100000001000000110100111100101
+00100000010000000101101001101101
+01101111111000001100011001011001
+11000000011111111101101001001010
+01101000010010001100011001011001
+00100000010000000110111011100110
+00100100011000001000000000000000
+00100000001000000101101000101111
+00100000010000000101101001101101
+01111000010101000111110000000000
+01011000000000000000000000000010
+00100000010000000110100111100101
+11000100000000111000000000000000
+01011000000000000000000000001000
+00100000010000000110100111100101
+00100000001110100101101000001111
+01011000000000000000000000000000
+01100111111000110100100001000111
+00100000011000000000000000000000
+01101111111000010100100001000111
+00011111111001100111111000000000
+01100111111000010100100001000111
+00100000001000000111110110111010
+01101111111000010100100001001001
+00011111111001100111111000000000
+01100111111000010100100001001001
+00100000001000000111110110111010
+01101111111000010100100001001001
+00011111111001100111111000000000
+01100111111000010100100001001001
+01101111111000010100100001000111
+00011111111001100111111000000000
+01100111111000010100100001000111
+00100000010000000101101001101000
+00100000001000000111110110111010
+00100000010000000101101001101000
+00100000001000000111110110111010
+01101111111000010100100001001001
+01101000010010010100100001000111
+01100111111000010100100001000111
+01100000010010010100100001001001
+00100000011000000000000000000000
+01101111111000001100100001100000
+00100000010110100101101010000100
+01110000010010000110000000000001
+00100000011000000000000000000000
+01110000010010010101011000000001
+00100000010000000010100111001001
+00100000001000000101100101001001
+01101111111000001100011001011001
+11000001111111111000000000000000
+01101111111000001100011101111101
+11000001100000001000000000000000
+01011000000000000000000000000000
+01100111111000001100011101111101
+01100111111000100100100001000111
+00100000001000000101101001110011
+11000100000000111000000000000000
+11011000010000001111111100000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+11000100000000011000000000000000
+11011000010000000000000011110000
+10011000010000011111111000000000
+00100000011000000000000000000000
+11011111111000000000000000000011
+00100000010000000110100111100101
+01100111111000010100100001000111
+11011111111000000000000000000100
+00100000010000000110100111100101
+01100111111000010100100001001001
+00100000011000000000000000000000
+01101000010010001100011001001101
+00100000010000000110111011100110
+00100000011000001000000000000000
+01011000000000000000000000001010
+00100000010000000110100111100101
+00100000000000000000001111101000
+00100000001000000101101010001011
+01011000000000001000000100000000
+00100000001000000110100111100100
+01110000010001111000111111111111
+01110000010000111111001100110100
+01011000000011110000111100001111
+01100111111000011100001011011011
+01100111111000011100001011011110
+00100000001000000101010010101001
+01000100110000100100000000010000
+00100000010000000101110001101111
+00100000010000000101101010101000
+01101111111000001100011001100110
+11000000000000001101101010100001
+11000000000000010101101010100011
+00100000011000000000000000000000
+01101111111000110100011001101000
+00100000001000000101101010100100
+01101111111000110100011001110101
+01101000010010110100011011100110
+10011000010001100111110000000000
+00100000001000101101110000011010
+00100000001000000101010010100000
+01110000010001111000111101011010
+00100000011000000000000000000000
+01101111111000010100010011101001
+11000010100001001100001100011111
+00100000001000000101110000111001
+01011000000000000000000000000000
+01100111111000010100011110000001
+01101111111000010100010011101001
+11000010100001001100001100011111
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000100000011011000000000000000
+00100100001101000101101010111010
+01101111111000001100100101011001
+00011111111000001111111000000001
+00011111111000010111111000001111
+01100111111000001100100101011001
+00100100011110100000000000000000
+01110000010010010101100100000000
+00100000001000000111110110111100
+01101111111000001100011001011001
+11000001111111111000000000000000
+01110000010000001100000000000000
+01110000010001110111111000011110
+00100000011000000000000000000000
+01000100110000101100000000010000
+00011010011000100111111000000000
+11000000000010100101101011010000
+11000000000010101101101011100000
+11000000000010000101110000010101
+11000000000110001101101011101101
+11000000000101001101101011101111
+11000000000110010101101011110001
+11000000000111110100001100101001
+11000000001000000101101011111100
+11000000000111001110000010000100
+11000000000111010110000001010011
+11000000000111100110000001110101
+11000000001000100101101100010000
+00100000011000000000000000000000
+00100000010000000110000110001110
+01110000010001110111110100000000
+00100000010000000101101001110011
+01110000010001111001010000000001
+00100000010000000110000001000010
+01101111111000001100011110010101
+00100100001110100101101011011000
+01110000010001111001011000010100
+01101111111000010100001111110001
+01111001001111111111111000000000
+01100111111000010100001111110001
+01110000010010000100010100000000
+01101111111000010100011110111110
+01100111111000010100011111000000
+00100000010000000101110000001011
+00100000001000000101110000111001
+01011000000000000000000000000000
+01100111111000010100011111000000
+01110000010001111001010000000000
+11011000010000000000000000000110
+01101111111001000100011100010011
+11000010100011011101101011100111
+11011000010000000000000000000111
+01100000010010010100001011010011
+01100000010010010100001011010101
+01110000010001111100001000000000
+01110000010010010101011000000000
+00100000010000000010100111001011
+00100000001000000101101101110110
+11011000111000000000000000000010
+00100000001000000101101011111000
+01110000000001100110111100010010
+00100000001000000111100000110100
+01101111111000001100011110010101
+11000000000000001101101011110100
+00100000001000000101101011110110
+00100000010000000101101011101111
+01110000010010000100010000010100
+11011000111000000000000000000001
+00100000001000000101101011111000
+01101111111000001100100001000011
+11111001001000000111111000000000
+01100111111000001100100001000011
+00100000011000000000000000000000
+01101111111000010100001100111100
+11000001000000000000000000000000
+01101111111000001000000101101010
+00011111111010110111111000000000
+00011111111001100111110000001100
+00100000011000010000000000000000
+01011000000000000000000000001001
+01100111111000010100001011010011
+01100111111000010100001011010101
+00100000010000000101101011101111
+01110000010001111100001000000001
+00100000011000000000000000000000
+01101111111000001100011110010101
+00100100011110100000000000000000
+01101111111000001100001110011000
+00011111111001100111111000100010
+00100100011000101000000000000000
+01110000010010000100010000000000
+11011000111000000000000000000000
+00100000001000000101101011111000
+01101111111000001000000110100010
+00011111111001100111110000001100
+00100100001000010101101100000110
+01100111111000010100001011010011
+01100111111000010100001011010101
+01101111111000001000000110100100
+00100000001110100101101100011101
+01101000010010001100100101101011
+10011000010001100111110000000000
+00100000001000010101101100011101
+01101111111000001000000110100100
+01100111111000001100000011000000
+00100000001000000101101100011111
+01101111111000001100100101101011
+01100111111000001100000011000000
+01110000010001111100001000000000
+00100000011000000000000000000000
+01110000010010000100001100000000
+00100000011000000000000000000000
+01000100110000110100000000010000
+00100000010000000010101000101000
+00100100011110100000000000000000
+01101111111000001100011110001111
+11000000011111111101101100101011
+01101111111000001100100001000011
+00011111111000010111111000000011
+11000001100000011000000000000000
+01101111111000001100100101010110
+00100000010110100101101001110001
+01101111111001000100011100010011
+11000010100000001101101101011011
+11000010100000000101101101011011
+11000010100000101101101101011011
+11000010100000110101101101011011
+00100000010000000101011000000001
+00100000010000000101101010110010
+00100100011101000000000000000000
+00100000010000000101101010111100
+00100000010000000101101001110100
+00100000010000000101011010110001
+01101111111001000100011100010011
+11000011000010110101101100111100
+01101111111000001100100101101100
+11000000000000001101101100111101
+00100000001000000101101101011101
+01101111111000001100100101101101
+00100000001110100101101101001101
+01101111111001000100011100101011
+01100111111001000000011001110000
+01101111111000001100011100101010
+11000000000000011101101101001111
+11000000000000010101101101010010
+01110000010001111011010000001000
+01101000010010010100011110110101
+01101111111000001100011110110100
+00011111111000100010001000000000
+00100000010000000010110111101110
+01101000010010001100011110110100
+00011000010000100111001000000000
+11011000110000000000011001110000
+00100000001000000111110011011010
+01101111111001000100011100110100
+00100000001000000101101101000000
+01110000010001111011010000000011
+01101000010010010100011110110111
+00100000001000000101101101000110
+01110000010001111011010000000010
+01101000010010010100011110111001
+00100000001000000101101101000110
+11011010001000000000000000000001
+01101000010010010100011110111011
+00100000010000000010110111101110
+01101111111000001100011110111101
+11100111111000001000000000000101
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000111100100001000110
+01110000010001111011010000000111
+01101111111000111100100001000110
+01100111111000111000011001110000
+01101000010010010100001110011011
+00100000001000000101101101000110
+01110000010001111001010100000000
+01101111111000011100011110011010
+01100111111000011100001101001101
+00100000010000000101101101101011
+01011000000000000000000000000101
+11100111111000001000000000000110
+11011000110000000100011110100000
+00100000010000000101101101110010
+00100000001000000111100001110000
+11011010001000000100001101001001
+11101111111000001000000000010001
+00100000011110100000000000000000
+10011000110000001010001000000000
+11101111111000001000000000000110
+11000001000000001000000000000000
+00100000001000000101101101101100
+11011000101000000100001101010100
+11011111001000000000000000010011
+00100000010000000111110011011010
+00100000001000000010100101101001
+00100000010000000101101101111011
+01101111111000010100001111101111
+11000010100000111101101110000001
+11000010100000000100001011111100
+00100000001000000101110000011010
+01011000000000000000000000000000
+01100111111001000100100001001111
+11100111111000100000000000000101
+01110000010010000110000000000000
+01110000010000101001101000000000
+00100000011000000000000000000000
+00100000010000000101101100100001
+01101111111000010100001111101111
+11000010100000000100001011111100
+00100000001000000101010011001101
+01000100110000111100000000010000
+00100000010000000110000101001101
+00100000010000000101010100111101
+00100000010000000110000100010000
+00100000010000000110000110110001
+00100000010000000110000100011110
+00100000010000000011001010001110
+00100000010000000011010100110001
+00100000010000000101111111011101
+00100000010000000101011100101100
+00100000010000000101101110011011
+00100000010000000101101110101011
+00100000010000000101101111001110
+00100000010000000101101111010011
+00100000010000000101101111100001
+00100000010000000101101111101110
+00100000010000000101101111100100
+00100000010000000101101111111011
+00100000010000000101101111111110
+00100000010000000101011010110110
+00100000010000000101110000001110
+00100000001000000101110000000101
+01101111111001000100011100010011
+11000010100110111101101110011110
+00100000011000000000000000000000
+01101111111000001100100101111111
+11000001100000001000000000000000
+11011010011000000100100101111100
+11011010010000000101101110100011
+00100000001000000100001011100000
+01101111111000001100011001100110
+11000001000000000000000000000000
+01101111111001000100011100010011
+11000011100000110000000000000000
+11011000111000000000000000000110
+00100000010000000101111100000000
+00100000010000000100001011010000
+00100000001000000101110000010101
+01101111111000001100011001100110
+11000000000000000101101110110001
+01101111111001000100011100010011
+11000100000110101000000000000000
+01101000010010001100011100100111
+00100000001000000101101110110100
+01101111111001000100011100010011
+11000100000110010000000000000000
+01101000010010001100011100101000
+01100000010010001100100101111110
+00100000010000000101100010001000
+00011111111000010111111000000111
+01101000010010001100100101111110
+10011000010001100111110000000000
+00100000001000101101101111000000
+01101111111000001100010011101011
+01100111111000001100100110000001
+01101111111000001100100110000000
+11000001000000000000000000000000
+01110000010010011000000000000000
+00100000011000000000000000000000
+00100000010000000101101111000101
+01101111111000001100100110000000
+11000001000000001000000000000000
+01110000010010011000000000000001
+00100000011000000000000000000000
+11011010010000000110000001000111
+11011010011000000100100110000001
+01101111111000001100011001100110
+11000000000000000100001011100000
+11011010010000000101101110100011
+00100000010000000100001011100000
+01101111111000001100100110000001
+11000000000000001101111011110010
+00100000011000000000000000000000
+11011010011000000100011110010000
+11011010010000000101101111010001
+00100000001000000100001011100111
+00100000010000000101110000111001
+00100000001000000101010011001101
+11011010011000000100100001000101
+11011010010000000101101111011001
+00100000010000000100001011100000
+01101111111000001100100001000101
+11000000000000001100001100010011
+00100000011000000000000000000000
+01101111111000001100011110001111
+11000000011111111101101010011010
+01101111111000001100011101111111
+00100100001110100101111100011011
+01101111111001000100011100010011
+11000010100110011101110000011010
+11000010100111110110000000111111
+00100000001000000101010011001101
+11011010011000000100100001000100
+11011010010000000101101100001110
+00100000001000000100001011100000
+01101111111000001100011110010100
+00100000011110100000000000000000
+11011010011000000100011110010110
+11011010010000000101101111101001
+00100000001000000100001011100000
+01101111111000001100011110010101
+00100100011110100000000000000000
+01101111111000001100001011111100
+11000001100000000000000000000000
+00100000001000000010111111001101
+01101111111001000100011100010011
+11000011100111011000000000000000
+11011010011000000100011111000000
+11011010010000000101101111110011
+00100000001000000100001011100000
+01101111111000010100011110111110
+01100111111000010100011111000000
+00100000001000000101101101010101
+01101111111000001100100001000011
+11000011100000010000000000000000
+00100000010000000101101011101111
+11011000111000000000000000000000
+00100000001000000101101011111000
+11011010011000000100011110010010
+11011010010000000101010011001101
+00100000001000000100001011100000
+11011010011000000100011101111110
+11011010010000000101110000000001
+00100000001000000100001011100000
+01101111111000001100100101101011
+01100111111000001100000011000000
+01110000010001110111110100000001
+00100000011000000000000000000000
+11011010011000000100011110000001
+11011010010000000101110000001000
+00100000001000000100001011100111
+01101111111000001100011001100110
+11000000000000000101111111110010
+00100000001000000101101010101101
+01101111111000010100011100100101
+01100111111000010100011110000001
+00100000011000000000000000000000
+11011010011000000100011011110011
+11011010010000000101110000010001
+00100000001000000100001011100000
+00100000010000000101110010100110
+01101111111000001100011110010011
+00100100001110100101111011010001
+00100000011000000000000000000000
+00101000000011111111111000100110
+00100000010000001110000000011000
+00100000010000000101101010101101
+00100000010000000101101100100001
+00100000001000000101110000011010
+01000100110001000100000000010001
+00100000010000000110000110101011
+01101111111000010100010011101001
+00101111111011111111111000001011
+00100000010000001101110000111110
+00100000010000000101101010101000
+01101111111000010100010011101001
+11000010100001011101110000101010
+01101111111001000100011100010011
+11000011000001000101110000101010
+01101000010010010100011010010101
+00011000010000001000010000000001
+01100000010010010100011010010101
+01100000010010010100001011011100
+00011000000010100111111000000000
+01100111111000001100001011011011
+01101111111000011100011110010111
+01100111111000011100001011011110
+00100000010000000100001100101101
+01101111111000010100011000111000
+01100111111000010100011110010000
+01011000000000000000000000000000
+01100111111000010100011110000001
+01100111111000010100011111000000
+01100111111000001100100001000101
+01100111111000001100011110010010
+01100111111000001100100101010110
+11011000111000000000000000000010
+00100000010000000101111100000000
+00100000010000000101111011110100
+00100000001000000101101101100010
+01000100110001001100000000010001
+11011000111000000000000000000110
+00100000010000000101111100000100
+01110000010001111001001000000000
+00100000001000000101110000111110
+01011000000000000000000000000000
+01100111111000001100100001000101
+01100111111000010100011110010000
+00100000001000000111100001110110
+01000100110001010100000000010001
+01101111111001000100011100010011
+11000100000000010000000000000000
+11011000111000000000000000000010
+00100000010000000101111100000100
+00100000010000000101110001001010
+00100000010000000101110001011001
+00100000001000000101110010100011
+01101111111000001000000000110010
+11000000000110100101110001001101
+00100000011000000000000000000000
+01100111111000001100100101011010
+01101111111000110000000101111000
+01100111111000110100100101011011
+01101111111000111100100101011010
+11011000110000000100011001100111
+11011111001000000000000000000011
+11101000010000111000000000000110
+10011000010001100111110000000000
+00100000001000101101110001101001
+00011000110000001000110000010110
+11000010000000000101110001010011
+00100000011000000000000000000000
+11011010001000000100011001100111
+01101111111000001100011001100110
+00011111111000001111111111111111
+00011111111011111111111000011101
+10011010001000001010001000000000
+01101111111000001000000000110010
+11100111111000001000000000010001
+11000000000110100101110001100010
+00100000011000000000000000000000
+01101111111000110000000101111000
+11100111111000110000000000000101
+11011000110000000100001010001010
+00100000010000000111110010001111
+01101111111000110100001011011011
+11100111111000110000000000000101
+00100000011000000000000000000000
+00011000110000001000110111111010
+00011000110000100000101000000000
+01101000010010110100100101011011
+00011000010000001000010000000011
+11100000010000110000000000000101
+00100000011000000000000000000000
+11011010001000000100011001100111
+01101111111000001100011001100110
+11000001000000000000000000000000
+00011111111000001111111111111111
+00011111111011111111111000011101
+10011010001000001010001000000000
+11101111111000001000000000010001
+01100111111000001100001111110011
+11000000000110100101110001111001
+00100000011000000000000000000000
+11101111111000110000000000000110
+01100111111000110100000100010110
+11011000101000000100001010001010
+00100000010000000111110010001111
+11101111111000110000000000000110
+01100111111000110100001011011011
+00100000011000000000000000000000
+01000100110001011100000000010001
+01101111111000010100011010001110
+11011000010000001010101001010101
+10011000010001100111110000000000
+00100000001000101101110010001111
+01100000010010010100011010001110
+00100000010000000101110010011100
+01101111111000001100100110100001
+01100111111000001100011001100110
+01101111111000100100010111100100
+01100111111000100100010111101000
+01100111111000100100010110001111
+01101111111000001100011001010001
+01100111111000001100011010010000
+00100000011000000000000000000000
+00100000010000000101110010010100
+01101111111000100100011010010001
+01100111111000100100010111101000
+01100111111000100100010110001111
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000100000001111000000000000000
+01101111111000010100100111111010
+00011111111000100010010000000000
+00100000010000000101111001010001
+01101111111000001100100111010100
+00100000010110100101110010001100
+00100000011000000000000000000000
+01101111111000110100001011011011
+01100111111000110100011001101110
+00011111111000001111111100000000
+01100111111000110100011001111011
+00011111111000001111111100000000
+01100111111000110100011010001000
+00100000011000000000000000000000
+01101111111000001100011011110100
+01100111111000001100011011110011
+00100000011000000000000000000000
+01000100110001100100000000010001
+01101111111001000100011100010011
+11000010100010011101110010110001
+11000010100010010101110010111001
+11000010100010100101110011000000
+00100000011000000000000000000000
+01000100110001101100000000010001
+01101111111001000100011100010011
+11000010100010011101110010110101
+11000010100010100101110100111100
+00100000011000000000000000000000
+11011000010000000000000010000000
+11011010001000000100011001100110
+11011010010000000000000000000000
+00100000001000000110110011010011
+11011000010000000000000000000001
+11011010001000000100011010010000
+11011010010000000000000001011010
+00100000001000000110110011010011
+00100000010000000110110000100000
+00100000010000000101110101111011
+00100000010000000101110110010000
+00100000010000000101110101110101
+00100000010000000101110110010011
+00100000010000000101110110000010
+00100000001000000101010111110110
+00100000010000000101110011000011
+00100000010000000101110011100101
+00100000001000000101110100100110
+01101010010000010100100111100010
+00011010010000100010011000000000
+00100000010000000101110111000000
+01101111111000001100100110100001
+00100000001110100101110011001111
+01100111111000001100100110100000
+00011010011000001010011000000001
+01101111111000010100100111100100
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101110011000101
+01101111111000001100100110100000
+00011111111000010111111011110000
+00100000001110100101110011011000
+01101111111000001100011001100110
+01100111111000001100100110100010
+11011111001000000000000000000001
+00011010011000100010010000000000
+11011010001000000100100110100010
+00100000001000000110101101000101
+01101111111000001100100110100000
+01101000010010001100011001100110
+10011000010001100111110000000000
+00100000011000101000000000000000
+00011000010100100000010000000000
+10011000010000001111111000000000
+01100111111000001100100110100010
+00011010011000100111111000000000
+01101000010010010100100111100010
+10011000010001100111110000000000
+00100000001000101101110011010100
+00011010011000001010011111111111
+00100000001000000101110011010100
+01101111111000001100011001100110
+11000000000000000101110011101010
+11000000000000001101110011111110
+11000000000000010101110100010010
+00100000011000000000000000000000
+01101010010000010100100111100110
+00011010010000100010011000000000
+00100000010000000101111000101001
+01101111111000100100100111011010
+00100000001110100101110011110110
+01100111111000100100100111010110
+00011010011000001010011000000100
+01101111111000010100100111101000
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101110011101100
+01101111111000100100100111010110
+01101000010010100100011010010001
+10011000010001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000000100
+11011010001000000100011010010001
+00011010011000100010010000000000
+00100000001000000110101101000101
+01101010010000010100100111101010
+00011010010000100010011000000000
+00100000010000000101110111100001
+01101111111000110100100110101001
+00100000001110100101110100001010
+01100111111000110100100110100011
+00011010011000001010011000000110
+01101111111000010100100111101100
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101110100000000
+01101111111000110100100110100011
+01101000010010110100011001101000
+10011000010001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000000110
+11011010001000000100011001101000
+00011010011000100010010000000000
+00100000001000000110101101000101
+01101010010000010100100111110010
+00011010010000100010011000000000
+00100000010000000101111000000101
+01101111111000110100100111000001
+00100000001110100101110100011110
+01100111111000110100100110111011
+00011010011000001010011000000110
+01101111111000010100100111110100
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101110100010100
+01101111111000110100100110111011
+01101000010010110100011001110101
+10011000010001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000000110
+11011010001000000100011001110101
+00011010011000100010010000000000
+00100000001000000110101101000101
+01101111111000001100011001100110
+11000001000000000000000000000000
+01101010010000010100100111111110
+00011010010000100010011000000000
+00100000010000000101111000111101
+01101111111000010100100111100000
+00100000001110100101110100110100
+01100111111000010100100111011110
+00011010011000001010011000000010
+01101111111000010100101000000000
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101110100101010
+01101111111000010100100111011110
+01101000010010010100011010010101
+10011000010001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000000010
+11011010001000000100011010010101
+00011010011000100010010000000000
+00100000001000000110101101000101
+01101111111001000100011100010011
+11000100000001111000000000000000
+01101010010000010100100111111010
+00011010010000100010011000000000
+00100000010000000101111001010001
+01101111111000001100100111010100
+00100000001110100101110101001010
+01100111111000001100100111010011
+00011010011000001010011000000001
+01101111111000010100100111111100
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101110101000000
+01101111111000001100100111010011
+00011111111000010111111011110000
+00100000001110100101110101010011
+01101111111000001100011010010000
+01100111111000001100100111010101
+11011111001000000000000000000001
+00011010011000100010010000000000
+11011010001000000100100111010101
+00100000001000000110101101000101
+01101111111000001100100111010011
+01101000010010001100011010010000
+10011000010001100111110000000000
+00100000011000101000000000000000
+00011000010100100000010000000000
+10011000010000001111111000000000
+01100111111000001100100111010101
+00011010011000100111111000000000
+01101000010010010100100111111010
+10011000010001100111110000000000
+00100000001000101101110101001111
+00011010011000001010011111111111
+00100000001000000101110101001111
+00100000010000000110110010111100
+01101111111001000100011100010011
+00101111111011111111111000001001
+00100100010000001110110011000100
+00100000010000000101110101100110
+00100000001000000101110010000000
+11011000010000000000000010000000
+11011010001000000100011001100110
+11011010010000000000000000000000
+00100000001000000110110011100001
+11011000010000000000000000000001
+11011010001000000100011010010000
+11011010010000000000000001011010
+00100000001000000110110011100001
+00100000010000000110110000100000
+00100000010000000101110101111011
+00100000010000000101110101110101
+00100000010000000110110001001101
+00100000010000000101110110000010
+00100000010000000101110010000000
+00100000001000000101010111110110
+01011000000000000100011011100110
+11011000010000000100011001100110
+10011000010001100000010000000000
+01101111111000011100011011101100
+11011010001000000100011001100110
+00100000011000000000000000000000
+01110000000001100111100010101011
+00100000010000000111000001011011
+00100000010000000110110000100110
+11011010001000000100011011101111
+01101000010010001000011001111000
+00100000010000000101110110000100
+00100000001000000111000001011011
+01110000000001100111100010111001
+00100000001000000101110101111100
+11100000010000001000000000010001
+00011111111100010000010000000000
+11100000010000001000000000000101
+00011111111011001000010000000000
+11100000010000001000000000000101
+11100111111000001000000000000101
+00011010001000100111111000000000
+01100111111100010000000010000100
+01011000000000000000000000000000
+01100111111100010000000010001000
+01110000100000000000011000000010
+00100000001000000110101111100000
+01101111111000011100011011101100
+01100111111000011100010000011001
+00100000001000000110101111111010
+00011111111000100010011000000000
+00011010001000100111111000000000
+00011111111000001111111111111100
+00011111111000100010010000000000
+11101111111000100000000000010010
+01100111111000100100011011101111
+00011010011000100111111000000000
+00100000010000000110110000111100
+01101111111000100100011011101111
+11100111111000100000000000010010
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000100000010010000000000000000
+00100000010000000101110110000010
+00100000010000000110100111100000
+01101000010010001100010000100001
+00100000010000000110111011110011
+01101000010010001100010000100110
+00100000001000000101010110110001
+00100000010000000101111001000011
+00100000010000000101110110110100
+00100000010000000101110111001100
+00100000010000000101111000101111
+11011111001000000000000000000010
+01101111111000010100101000000010
+00011111111000100010010000000000
+11011010001000000100011010001110
+00100000010000000110101101110100
+00100000010000000101110010000000
+11011111001000000000000000000010
+11011010001000000100011010001110
+01101010010000010100101000000010
+00100000001000000110101101000101
+01101010010000010100100111100010
+00011010010000100010011000000000
+00100000010000000101110111000000
+01101111111000001100100110100001
+00100000001110100101110111000011
+01100111111000001100100110100000
+00011010011000001010011000000001
+01101111111000010100100111100100
+10011010011001100111110000000000
+00100100001000010101110111000011
+00011010011000100010010000000000
+00100000001000000101110110110110
+11011111001000000000000000000001
+11011010001000000100100110100001
+00100000001000000110101101110100
+01101111111000001100100110100000
+00011111111000100000010000000000
+00011111111000010111111011110000
+00100000001110100101110111001001
+00011111111100011111111000000000
+00100000001000000101110111001010
+00011000010000100111111000000000
+01100111111000001100011001100110
+00100000011000000000000000000000
+01101111111000001100011001100110
+11000000000000000101111000011101
+11000000000000001101110111010001
+11000000000000010101110111010011
+00100000011000000000000000000000
+00100000010000000101110111010101
+00100000001000000101110111100111
+00100000010000000101110111111001
+00100000001000000101111000001011
+01101010010000010100100111101010
+00011010010000100010011000000000
+00100000010000000101110111100001
+01101111111000110100100110101001
+00100000001110100101110111100100
+01100111111000110100100110100011
+00011010011000001010011000000110
+01101111111000010100100111101100
+10011010011001100111110000000000
+00100100001000010101110111100100
+00011010011000100010010000000000
+00100000001000000101110111010111
+11011111001000000000000000000110
+11011010001000000100100110101001
+00100000001000000110101101110100
+01101111111000110100100110100011
+01100111111000110100011001101000
+00100000011000000000000000000000
+01101010010000010100100111101110
+00011010010000100010011000000000
+00100000010000000101110111110011
+01101111111000110100100110110101
+00100000001110100101110111110110
+01100111111000110100100110101111
+00011010011000001010011000000110
+01101111111000010100100111110000
+10011010011001100111110000000000
+00100100001000010101110111110110
+00011010011000100010010000000000
+00100000001000000101110111101001
+11011111001000000000000000000110
+11011010001000000100100110110101
+00100000001000000110101101110100
+01101111111000110100100110101111
+01100111111000110100011001101110
+00100000011000000000000000000000
+01101010010000010100100111110010
+00011010010000100010011000000000
+00100000010000000101111000000101
+01101111111000110100100111000001
+00100000001110100101111000001000
+01100111111000110100100110111011
+00011010011000001010011000000110
+01101111111000010100100111110100
+10011010011001100111110000000000
+00100100001000010101111000001000
+00011010011000100010010000000000
+00100000001000000101110111111011
+11011111001000000000000000000110
+11011010001000000100100111000001
+00100000001000000110101101110100
+01101111111000110100100110111011
+01100111111000110100011001110101
+00100000011000000000000000000000
+01101010010000010100100111110110
+00011010010000100010011000000000
+00100000010000000101111000010111
+01101111111000110100100111001101
+00100000001110100101111000011010
+01100111111000110100100111000111
+00011010011000001010011000000110
+01101111111000010100100111111000
+10011010011001100111110000000000
+00100100001000010101111000011010
+00011010011000100010010000000000
+00100000001000000101111000001101
+11011111001000000000000000000110
+11011010001000000100100111001101
+00100000001000000110101101110100
+01101111111000110100100111000111
+01100111111000110100011001111011
+00100000011000000000000000000000
+01101010010000010100100111100110
+00011010010000100010011000000000
+00100000010000000101111000101001
+01101111111000100100100111011010
+00100000001110100101111000101100
+01100111111000100100100111010110
+00011010011000001010011000000100
+01101111111000010100100111101000
+10011010011001100111110000000000
+00100100001000010101111000101100
+00011010011000100010010000000000
+00100000001000000101111000011111
+11011111001000000000000000000100
+11011010001000000100100111011010
+00100000001000000110101101110100
+01101111111000100100100111010110
+01100111111000100100011010010001
+00100000011000000000000000000000
+01101111111000001100011001100110
+11000001000000000000000000000000
+01101010010000010100100111111110
+00011010010000100010011000000000
+00100000010000000101111000111101
+01101111111000010100100111100000
+00100000001110100101111001000000
+01100111111000010100100111011110
+00011010011000001010011000000010
+01101111111000010100101000000000
+10011010011001100111110000000000
+00100100001000010101111001000000
+00011010011000100010010000000000
+00100000001000000101111000110011
+11011111001000000000000000000010
+11011010001000000100100111100000
+00100000001000000110101101110100
+01101111111000010100100111100000
+01100111111000010100011010010101
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000011000001111101110010001100
+01101010010000010100100111111010
+00011010010000100010011000000000
+00100000010000000101111001010001
+01101111111000001100100111010100
+00100000001110100101111001010100
+01100111111000001100100111010011
+00011010011000001010011000000001
+01101111111000010100100111111100
+10011010011001100111110000000000
+00100100001000010101111001010100
+00011010011000100010010000000000
+00100000001000000101111001000111
+11011111001000000000000000000001
+11011010001000000100100111010100
+00100000001000000110101101110100
+01101111111000001100100111010011
+00011111111000100000010000000000
+00011111111000010111111011110000
+00100000001110100101111001011010
+00011111111100011111111000000000
+00100000001000000101111001011011
+00011000010000100111111000000000
+01100111111000001100011010010000
+00100000011000000000000000000000
+01000100110001110100000000010001
+00100000010000000110001000001110
+00100000010000000111100010101010
+00100000010000000101011010111011
+00100000010000000101100000001110
+00100000010000000101111001100110
+00100000010000000101111010110110
+00100000010000000101111011100111
+00100000001000000101011000011100
+01101111111001000100011100010011
+11000010100101001101111001101011
+11000010100110111101111001101011
+00100000011000000000000000000000
+01110000010010010111010100000011
+00100000010000000101111001101101
+00100000001000000101111001111110
+01000100110001111100000000010001
+01101111111000001100011001010101
+11000001011111111000000000000000
+11011010001000000000000000000000
+01110000010010010111011100000110
+01101000010010001100011001010101
+00100000010000000101111010000001
+01100111111000001100100101110101
+01101111111000001100011001010100
+11000000011111111101111001111100
+00100000001000000101100011011111
+00100000010000000101111001101101
+00011010001000100111111000000000
+11000010100000110101111010100100
+00100000001000000101111010010111
+01101000010010001100011001010101
+00100000010000000101010110110101
+00011010001000100111111000000000
+11000010100000110101111010100010
+00100000001000000101111010010111
+01101111111001000100011100010011
+11000010100101101101111010001101
+01101111111000001100100101110101
+00011111111000100010011000000000
+01101111111000001100011001010100
+11000000011111111101100100110001
+01101111111000001100100101111011
+00100100001110100101111010001010
+00100000001000000101111010001111
+01110000010010010111111100000000
+01110000010010010111010100000000
+00100000011000000000000000000000
+01101111111000001100100101110101
+00100000001000000101100100100101
+00100000010000000110111011100110
+01101000010010001100011001010100
+00100000001000001101111010001101
+01101000010010001100011001010100
+00100000010000000110111011110111
+01101000010010001100011001010101
+01101111111000001100100101110101
+00100000001000000101100100100101
+01101111111000001100100101111111
+11000001000000000000000000000000
+01110000010010010111111100000000
+01101111111001000100011100010011
+11000011100110100000000000000000
+01101111111000001100100101111100
+00011111111001100111110000010100
+00100100010000010101111011000110
+01101111111000001100010011101011
+01100111111000001100100101111100
+00100000011000000000000000000000
+00100000010000000101111010101110
+00100000011101000000000000000000
+01101111111000001100100101111111
+11000001000000001000000000000000
+01110000010010010111111100000001
+01101111111001000100011100010011
+11000010100110100101101110100011
+01101111111000001100100001000101
+00100000011110100000000000000000
+01101111111000001100011000111100
+01100111111000001100100001000101
+00100000011000000000000000000000
+01111000010101000111110000000000
+01101111111001000100011100010011
+11000011100101101000000000000000
+01101111111000001100100101101111
+00100000011110100000000000000000
+01101111111000001100100101110000
+00100000011110100000000000000000
+00100000001000000111110110111010
+01000100110010000100000000010010
+01101111111001000100011100010011
+11000100000101010000000000000000
+01101000010010001100011001011010
+00100000010000000101010110110101
+01101000010010001100011001011010
+00100000010000000110111011100110
+00100000001000001101111011000010
+01101111111000001100011001100110
+11000001000000001000000000000000
+01110000010001100110011000000001
+00100000001000000101101010101010
+01101111111000001100011001100110
+11000001000000000000000000000000
+01110000010001100110011000000000
+00100000001000000110000000011000
+01000100110010001100000000010010
+01101111111000001100011100011011
+11000001000000001000000000000000
+00100000010000000101111011010011
+01100000010010001100011001100110
+00100000010000000101111011101010
+00100000010000000101101010101010
+00100000010000000100001011010000
+00100000010000000101111011101100
+01110000010001111001001100000001
+00100000001000000101110010100011
+00100000010000000101111011101010
+00100000001000000110110010100011
+01101000010010001100011001100110
+00011000010000001000010000000001
+01101111111001000100011100010011
+11000010100010001101111011011010
+00011000010001100111110000000010
+00100100010000010101111011100001
+00100000011000000000000000000000
+01101111111000001100011100011011
+00011111111000001111111111111111
+10011000010001100111110000000000
+00100100010000010101111011011111
+00100000011000000000000000000000
+11011000010000000000000000000000
+00100000011000000000000000000000
+11011000010000000000000000000001
+00100000011000000000000000000000
+11011000010000000000000000000001
+11011010001000000100011001100110
+11011010010000000000000000000000
+00100000001000000110110011010011
+01101111111001000100011100010011
+11000100000110100000000000000000
+00100000001000000101111001101011
+11011000111000000000000000000000
+00100000001000000101111100000000
+11011000111000000000000000000000
+00100000001000000101111100000100
+11011000111000000000000000000011
+00100000001000000101111100000000
+11011000111000000000000000000011
+00100000001000000101111100000100
+11011000111000000000000000000101
+00100000001000000101111100000000
+11011000111000000000000000000101
+00100000001000000101111100000100
+11011000111000000000000000010101
+00100000001000000101111100000000
+11011000111000000000000000011000
+00100000001000000101111100000000
+11011000111000000000000000001110
+00100000001000000101111100000000
+11011000111000000000000000001100
+00100000001000000101111100000000
+11011000111000000000000000011100
+00100000001000000101111100000000
+01101111111001000100011100010011
+11111001001000000111111000000000
+01100111111001000100011100010011
+00100000011000000000000000000000
+01101111111001000100011100010011
+11111001001111111111111000000000
+01100111111001000100011100010011
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111001000100011100101010
+01100111111001000100011100110011
+01101111111000001100011100101001
+11000000000000010101111100010010
+11000000000000011101111100010100
+11000000000000100101111100011001
+01011000000001110000000000001000
+01100111111001000100011100101011
+00100000011000000000000000000000
+01011000000001000000000000000101
+00100000001000000101111100010000
+01011000000000100010001100000011
+01100111111001000100011100101010
+01011000000000000000000000000011
+01100111111001000100011100110011
+00100000011000000000000000000000
+01011000000000001100110100000011
+00100000001000000101111100010101
+01000100110010010100000000010010
+01101111111000001100011101111111
+00011111111000001111111111111111
+01100111111000001100011101111111
+01101000010010001100011001100110
+00011000010001100111110000000001
+00100100010000101101111011010011
+01100000010010001100011001100110
+00100000010000000101111011100011
+00100000010000000101110001011001
+00100000001000000101010010100000
+01000100110010011100000000010010
+01101111111000001100100101010111
+11000001000000011000000000000000
+01101111111001000100011100010011
+11000100000111000000000000000000
+01101111111000100100100001000111
+00100000011110100000000000000000
+00100000010000000101111111001101
+01011000000000000000000000000011
+00100000010000000101111111000011
+00100000010110100101111110111111
+00100100010110100101111111000001
+01011000000000000000000000000010
+00100000010000000101111111001000
+00100000010110100101111110111111
+01101111111000001100100001100001
+11000000000000001101111100111100
+01101111111001000100011100010011
+11000100000111000000000000000000
+11011111001000000000000000000101
+11011000101000000100100001100001
+00100000001000000111110010100001
+00100000010000000101111101010000
+01101111111000010100100001100010
+01100111111000010000011100001011
+01101111111000010100100001000111
+01100111111000010000011100001101
+00100000010000000101111110001001
+01101111111000010000011100001011
+01100111111000010100100001100010
+01101111111000010000011100001101
+01100111111000010100100001000111
+01101111111000010100100001100100
+01100111111000010000011100001011
+01101111111000010100100001001001
+01100111111000010000011100001101
+00100000010000000101111110010001
+01101111111000010000011100001011
+01100111111000010100100001100100
+01101111111000010000011100001101
+01100111111000010100100001001001
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000100000111001000000000000000
+01000100110010100100000000010010
+01101111111000010100100001100010
+01100111111000010000011100010010
+00100000010000000101111101100100
+01100111111000010100100001100010
+01101111111000010100100001000111
+01100111111000010000011100010010
+00100000010000000101111101110010
+01100111111000010100100001000111
+01101111111000010100100001100100
+01100111111000010000011100010010
+00100000010000000101111101100100
+01100111111000010100100001100100
+01101111111000010100100001001001
+01100111111000010000011100010010
+00100000010000000101111101110010
+01100111111000010100100001001001
+00100000011000000000000000000000
+01101111111000001000011100010011
+00100000001110100101111101100111
+00100000001000000101111101101100
+01101111111000001000011100010010
+00100000010000000101111101111111
+01100111111000001000011100010010
+01101111111000010000011100010010
+00100000011000000000000000000000
+01101111111000001000011100010010
+00100000010000000101111110111011
+00100000010000000101111101111111
+00100000010110100111110111001000
+00100000010000000101111110110111
+00100000001000000101111101101010
+01101111111000001000011100010011
+00100000001110100101111101110101
+00100000001000000101111101111001
+01101111111000001000011100010010
+00100000010000000101111110000100
+01100111111000001000011100010010
+00100000001000000101111101101010
+01101111111000001000011100010010
+00100000010000000101111110111011
+00100000010000000101111110000100
+00100000010110100111110111001000
+00100000010000000101111110110111
+00100000001000000101111101101010
+00011111111011111111111000000100
+00011111111001101111110000000101
+00100000010000000111110101100010
+00011000000001111111111000000000
+00100000011000000000000000000000
+00011111111011111111111000001100
+00011111111001101111110000001010
+00100000010000000111110101100010
+00011000000001111111111000000000
+00100000011000000000000000000000
+01101111111000010000011100001011
+01101000010010010000011100001101
+10011000010000001111111000000000
+01101000010010001100100001100110
+10011000010000001111111000000000
+00011111111000010000010000000001
+01100000010010001100100001100110
+00100000001000000101111110011001
+01101111111000010000011100001011
+01101000010010010000011100001101
+10011000010000001111111000000000
+01101000010010001100100001100111
+10011000010000001111111000000000
+00011111111000010000010000000001
+01100000010010001100100001100111
+00100000001000000101111110011001
+01100111111000011000011100001111
+00101111111011111111111000010000
+00100000001000001101111110100011
+01101111111000001000011100010000
+11000000011111111101111110101010
+01101111111000001000011100001111
+00011111111000110111111000000000
+01100111111000010000011100001011
+01100111111000010000011100001101
+00100000011000000000000000000000
+01101111111000001000011100010000
+11000000000000000101111110100111
+01101111111000011000011100001111
+00100000001000000101111110011111
+01110000000001110001000100000000
+01101111111000001000011100001111
+00100000001000000101111110011111
+01101111111000001000011100001111
+00100000010000000101111110110101
+01100111111000001000011100001011
+01100111111000001000011100001101
+00100000001110100101111110110011
+01011000000000000000000011111111
+01100111111000001000011100001100
+01100111111000001000011100001110
+00100000011000000000000000000000
+01011000000000000000000000000000
+00100000001000000101111110110000
+00100000010000000101111110111011
+00011111111000110111111000000000
+00100000010000000101111110111100
+00011111111001100111111000000000
+01100111111000001000011100010010
+00100000011000000000000000000000
+00011111111001100111111000000000
+01100111111000001000011010000100
+01101111111000001000011010000100
+00100000011000000000000000000000
+01110000010010000110000100000000
+00100000011000000000000000000000
+01110000010010000110000100000001
+00100000011000000000000000000000
+10011010001001100111110000000000
+00100100001000010111110111001000
+10011010010001100111110000000000
+00100100001000010111110111001000
+00100000001000000111110111001010
+10011010001001100111110000000000
+00100100011000010000000000000000
+10011010010001100111110000000000
+00100100011000010000000000000000
+00100000001000000111110111001010
+01101111111000010100100001000111
+00100000010000000101111111010100
+00011111111000100010001000000000
+01101111111000010100100001001001
+00100000010000000101111111010100
+00011111111000100010010000000000
+00100000011000000000000000000000
+01100111111000010000011100001101
+01101111111000001000011100001110
+11000000011111111101111111011010
+01101111111000001000011100001101
+00011111111000010111111011111111
+00100000011000000000000000000000
+01101111111000010000011100001101
+00011111111001100111111000000000
+00100000001000000101111111011000
+11011010011000000100011000011111
+11011010010000000101111111100000
+00100000001000000100001011100000
+01101111111000100100011000010011
+01100111111000100100010110101111
+01110000010001110111110100000001
+00100000011000000000000000000000
+01101111111000001100011101000000
+11000000000000000101111111101100
+11000000000000001101111111101110
+11000000000000010101111111101001
+11000000000000011101111111110000
+01011000000011101010011000000000
+01100111111000100100011000010011
+00100000011000000000000000000000
+01011000000001011110011101000000
+00100000001000000101111111101010
+01011000000010010010011111000000
+00100000001000000101111111101010
+01011000000100100100111110000000
+00100000001000000101111111101010
+01000100110010101100000000010010
+01110000010001100000000000000000
+00100000010000000011011001000111
+01011111111111111111111111111111
+01100111111000100100010110101111
+01011000000000000000000000000000
+01100111111000111100100001000110
+01110000010001110011111100000001
+00100000010000000101100111101101
+00100000010000000101010011011100
+00100000001000000110001000101011
+01101111111000001100011100111111
+00100100010110100110000000000001
+01110000010001110011111100000000
+00100000011000000000000000000000
+00100000010000000101100101001100
+01101111111001000100011100010011
+11000100000111100000000000000000
+01101111111000001100011001001010
+11011000010000000000000001000000
+00100000010000000110111100100001
+01101111111000001100011001001011
+11011000010000000000000001000000
+00100000001000000110111100100001
+00100000010000000110000000001110
+01101111111000001100011100111111
+00100100001110100110001000110101
+00100000001000000011011000010000
+01101111111000100100010111101000
+01101000010010100100010111100100
+10011000010001100111110000000000
+00100000001000101110000000010011
+00100000001000000110000000010110
+01110000010000010100001100000000
+01110000010000010100000110101010
+00100000011000000000000000000000
+01110000010000010100001111111111
+00100000011000000000000000000000
+01111001001111111000000000100110
+01110000010001011111110000000000
+11011000111000000000000000000001
+00100000001000000101111100000100
+01101111111001000100011100010011
+11000011000010001110000000101010
+00100000010000000110000110010101
+00100000010000000101010010101100
+00100000001101000110000001100111
+01101111111001000100011100010011
+11000010100110000110000000101111
+11000011000110001110000000101111
+00100000010000000101100010000011
+00011010001000010111111000000111
+01101000010010001100011100101000
+10011000010001100111110000000000
+00100000001000101110000001000111
+00100000001000000110000000101111
+01101111111000001100011101111111
+00100100001110100101111100011011
+00100000011000000000000000000000
+00100000010000000101010010101100
+00100000001101000110000000111000
+01110000010001100110011000000000
+01101111111000010100011100100001
+01100111111000010100010111011110
+01110000010001011110001000000010
+00100000001000000011010100110100
+01101111111000010100010111010110
+01100111111000010100010111011110
+01110000010001011110001000000100
+00100000001000000011010100110100
+01101111111000001100011001100110
+11000000000000000110000001100111
+00100000010000000101101010101000
+00100000010000000110000000011000
+01110000010001100110011000000001
+00100000010000000101110001101111
+00100000001000000101010010100000
+00100000010000000101010010101100
+00100000001101000101010011001101
+00100000001000000101110000011010
+00100000010000000101010010101100
+00100000011101000000000000000000
+01101111111001000100011100010011
+11000010100111110101110010100011
+00100000011000000000000000000000
+00100000010000000110000110010101
+01110000010001011110001000000000
+11011000111000000000000000000001
+00100000010000000101111100000000
+01011000000000000000000000000000
+01100111111000010100010111011110
+00100000010000000101110000111001
+01110000010001011000100100000001
+01101111111001000100011100010011
+11000011000010110011001010010001
+01110000010001011000100100000010
+00100000001000000011001010010001
+01101111111000001100011000000000
+00100100001110100101111111110010
+01101111111000001100010111100010
+11000000000000010110000001011111
+11000000000000100110000001101011
+11000000000000011110000001110000
+00100000010000000110000000011000
+01101111111000001100011101111111
+00100100001110100101111100011011
+01101111111000001100011001100110
+11000000000000000101010011001101
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000010100111110110000000110100
+11000010100110000110000000110100
+11000011000111010110000001100111
+01101111111000100100011010010001
+01101000010010100100011011100110
+10011000010001100111110000000000
+00100000001000101110000001000111
+01101111111000010100010111011100
+01100111111000010100010111011110
+01110000010001011110001000000011
+00100000001000000011010100110100
+01101111111001000100011100010011
+11000011000111110110000001011001
+01101111111000001100011100011011
+11000000000000001110000001011001
+00100000001000000110000000111011
+01101111111001000100011100010011
+11000011000111110110000001011001
+11000010100010011110000001011001
+11000010100010010110000001011001
+00100000001000000110000000110101
+01101111111000100100010110001111
+01100111111000100100010111101000
+01100111111000100100011010010001
+00100000010000000011010101011010
+00100000010000000101110000001011
+00100000010000000110000110001110
+00100000010000000101101001110011
+01110000010001110111110100000000
+01110000010001011111110000000000
+01110000010001011110001000000000
+01101111111000100100010111101000
+01101111111000100100010111100100
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100000001000000110000001000010
+00100000010000000101101001110011
+00100000010000000101101010000100
+00100000010000000110000110001110
+00100000010000000101110000001011
+11011000111000000000000000000001
+00100000010000000101111100000100
+01011000000000000000000000000000
+01100111111000010100010111011000
+01100111111000010100010111011110
+01100111111000001100010111111100
+01100111111000001100100001100000
+01100111111000001100010111100010
+01101111111000100100010110001111
+01100111111000100100010111101000
+01100111111000100100011010010001
+00100000001000000101110010100011
+00100000010000000111110111100010
+00100000001000000010001111111101
+01000100110010110100000000010010
+11000110100100110000000000000000
+00100000010000000101011000000001
+00100100011101000000000000000000
+01101111111000001100011101111100
+01110000010001110111110000000000
+00100100010110100110000010010100
+01101111111001000100011100010011
+11000011000010110110000010100001
+01101111111000001100100101101100
+00100100001110100110000010110110
+00100000010000000101101001110100
+01101111111000001100010110001001
+11000010100000001110000010110000
+01101000010010001100010100011010
+01101111111000001100100001000110
+10011000010000011111111000000000
+01100111111000001100100001000110
+01101000010010001100010100011111
+01101111111000001100100001001011
+10011000010000001111111000000000
+01100111111000001100100001001011
+01101000010010001100010100100000
+01101111111000001100100001001100
+10011000010000001111111000000000
+01100111111000001100100001001100
+01110000010001011000100100000001
+11011010001000000000000000000111
+11011010010000000100100001000110
+01101111111000010100100001001011
+00100000011110100000000000000000
+00100000001000000011011011011011
+01110000010001011000100100000010
+11011010001000000000000000001001
+01101111111000001100100101101101
+00100100001110100110000010111100
+11011010010000000100011100110011
+00100000011000000000000000000000
+11011010010000000100011100101010
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000011100011011111000
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000100000001110000000000000000
+01101111111000001100011101111101
+00100000011110100000000000000000
+01101111111000001100011000000010
+00100000011110100000000000000000
+01101111111000001100011011110101
+00011111111000001111111000000001
+00011111111000010111111000000011
+01100111111000001100011011110101
+00100100011110100000000000000000
+01110000010001101111011000000000
+01000100110010111100000000010010
+01101111111000001100011011110110
+00011111111000001111111000000001
+01100111111000001100011011110110
+00011111111001100111110000001000
+00100100001000010110000011011001
+00100000010000000011010101111111
+00100000010000000011011001010001
+00100100001011000110000011011111
+00100100001101111110000011011111
+00100000010000000110000011110010
+00100000010000000110000011101001
+00100000010000000011010101111011
+01101111111000001100011011110111
+00011111111000001111111000000001
+01100111111000001100011011110111
+11000000000010000110000011100001
+00100000011000000000000000000000
+00100000010000000011001000100010
+00100000001000000110000011001101
+01110000010001101111011100000000
+01101111111000001100011011111000
+11000011100000000000000000000000
+01111001001000000111111000000000
+01100111111000001100011011111000
+01101111111000010100011100100011
+01100111111000010100011110000001
+00100000001000000101100111101101
+01101111111000001100011000000010
+00100000001110100110000010111110
+01110000010001101111011100000000
+01101111111000001100011011111000
+11000100000000000000000000000000
+01111001001111111111111000000000
+01100111111000001100011011111000
+00100000010000000101110000001011
+00100000001000000101100101001100
+00100000010000000011011001101110
+01101111111000001100010011111000
+00101111111000011111000000001000
+00100100011000001000000000000000
+01101111111000001100010011111001
+11000000011111111101111111110010
+00100000011000000000000000000000
+01101111111000001100011110010011
+00100100011110100000000000000000
+00100000010000000101111001111000
+00100000010000000110000011111110
+00100000001000000011011001100010
+11011000111000000000000000001100
+00100000010000000111110011101111
+00100100011110100000000000000000
+00100000010000000110000100000110
+00100000010000000101011100101100
+11011000111000000000000000001100
+01011000000000000000000010100000
+00100000001000000111110011100001
+01101111111001000100011100010011
+11000100000101000000000000000000
+00100000001000000101011010111011
+01101111111000001100011001100110
+11000000100000000010010000100001
+01101111111000001100010111001010
+00100000011110100000000000000000
+01110000100000000100001000000010
+01110000100000010011000011111000
+00100000011000000000000000000000
+01101111111000001100011001011100
+11000001011111111000000000000000
+01101111111000010100011110000001
+00100000011110100000000000000000
+01101111111000010100011100100101
+01101000010010010100011110000001
+10011000010001100000010000000000
+01101111111000010100011100001111
+10011000010001100111111000000000
+00100000001000010110000100011100
+01101000010010001100011001011100
+00100000001000000110000111100101
+01101000010010001100011001011100
+00100000001000000110000111100100
+11011010011000000100011100010001
+11011010010000000110000100100001
+00100000001000000100001011100000
+01000100110011000100000000010011
+01101111111000001100100101010111
+11000000000000011110000100110001
+11000000000001011110000100110001
+01101000010010001100011010010000
+00011000010000001000010000000010
+00011000010001100111110000000011
+00100000010000010110000100110100
+00100100010000010110000100111000
+00011000010000100111111000000000
+10011111111000001111111000000000
+01100111111000001100011100001100
+01110000010001101111111000000100
+00100000010000000110000110000101
+01110000010001101111110000000001
+00100000001000000110000110010010
+01101000010010001100011010010000
+00011000010000001000010000000001
+00100000001000000110000100100111
+01101111111001000100011100010011
+11000100000011100000000000000000
+00011000010000001000010000000001
+00100000011000000000000000000000
+00011000010000001000010111111101
+00100000011000000000000000000000
+01101111111000001100011001100001
+11000001011111111000000000000000
+01101111111000010100011110010000
+00100100011110100000000000000000
+01101111111000010100010111011000
+00100100011110100000000000000000
+01101111111000010100010111011110
+00100100011110100000000000000000
+01101111111000001100011100000001
+00100100011110100000000000000000
+01101111111000001100011100010010
+00100000001110100110000100100001
+01100111111000001100011100010001
+00100000011000000000000000000000
+01111000010101000111110000000000
+01101111111000001100011011111110
+00011111111001100111110000000100
+00100100011000101000000000000000
+00100000001000000111110110111010
+01101111111001000100011100010011
+11000100000100011000000000000000
+11000100000000100000000000000000
+01101111111000010100011110010000
+00100100011110100000000000000000
+01101111111000010100010111011000
+00100100011110100000000000000000
+01101111111000010100010111011110
+00100100011110100000000000000000
+01101111111000001100011100000001
+00100100011110100000000000000000
+00100000010000000110000101001000
+00100000011101000000000000000000
+01101111111000001100011100001110
+00100000001110100110000101110011
+01101000010010001100011100001001
+00011000010000001000010000000001
+01100000010010001100011100001001
+01101111111000001100011100000111
+10011000010001100111110000000000
+00100100010000010110000101101010
+01101111111000001100011100001000
+10011000010001100111110000000000
+00100100001000010110000101101110
+01101111111001000100011100010011
+11000010100100100110000111011001
+11000010100100110110000111011001
+01101000010010001100011001100000
+00100000001000000110000111100100
+01110000010001110000100100000001
+01101111111000001100011100001110
+00011111111000001111111111111111
+01100111111000001100011100001110
+01101111111001000100011100010011
+11000010100100100110000111101011
+11000010100100110110000111101011
+01101000010010001100011001100000
+00100000001000000110000111100101
+01101111111001000100011100010011
+11000010100100010110000101101110
+00100000010000000110000101111110
+00100000001000000110000101011100
+01110000010001101111101100000000
+00100000010000000110000111111101
+01110000010001101111111000000000
+01101111111000001100011100000111
+00011111111000110111111000000000
+01100111111000001100011100001000
+00100000011000000000000000000000
+01101111111000001100011100001101
+01100111111000001100011100001110
+00100000011000000000000000000000
+01101111111000001100011011111110
+11000000000000001110000110001000
+11000000000000010110000110001010
+11000000000000011110000110001100
+01101111111000001100011100000101
+01100111111000001100011100000110
+00100000011000000000000000000000
+01101111111000001100011100000010
+00100000001000000110000110000110
+01101111111000001100011100000011
+00100000001000000110000110000110
+01101111111000001100011100000100
+00100000001000000110000110000110
+01000100110011001100000000010011
+01101111111000001100011100000000
+01100111111000001100011100000001
+01110000010001101111110000000000
+01110000010001101111110100000000
+01110000010001101111101100000001
+00100000011000000000000000000000
+01000100110011010100000000010011
+01101111111000001100011001100110
+11000001100000000000000000000000
+00100000010000000110000110101110
+01110000010001101111111000000001
+00100000010000000110000110001000
+01101111111000001100011011111111
+00100000011110100000000000000000
+01101111111000001100011100001010
+00100000001000000110000110101001
+01101111111000001100011001100110
+11000001000000000000000000000000
+00100000010000000110000110101110
+01101111111001000100011100010011
+11000100000100001000000000000000
+01110000010001101111111000000011
+00100000010000000110000110001100
+01101111111000001100011011111111
+00100000011110100000000000000000
+01101111111000001100011100001011
+01100111111000001100011100001100
+00100000011000000000000000000000
+01110000010001101111111100000000
+01110000010001101111111000000010
+00100000010000000110000110001010
+01110000010001101111101100000001
+01110000010001101111110000000001
+00100000001000000110000111011000
+01101111111000001100011011111011
+00100000011110100000000000000000
+01101111111000001100011011111100
+11000000000000001110000110111101
+01101111111000001100011100000001
+00100000001110100110000110111010
+00011111111000001111111111111111
+01100111111000001100011100000001
+00100000001000000110000111011001
+01110000010001101111101100000000
+00100000010000000110000101111110
+00100000001000000110000111101011
+01000100110011011100000000010011
+01101111111000001100011011111110
+00100000011110100000000000000000
+11000000000000100110000111000101
+00100000001000000110000111000010
+01101111111000001100011011111111
+11000000000000001110000111000101
+00100000001000000110000111000111
+01101111111000001100011100001100
+00100000001110100110000111100110
+11011010011000000100011100000110
+11011010010000000110000111001010
+00100000001000000100001011100000
+01101111111000001100011011111110
+11000000000000100110000111010010
+01101111111000001100011011111111
+11000000000000001110000111010010
+00100000010000000110000110000001
+01101111111000001100011011111101
+11000000000000001110000111101000
+00100000001000000110000111010110
+01101111111000001100011100001100
+00011111111000001111111111111111
+01100111111000001100011100001100
+00100000001000000110000111001110
+01101111111000001100011011111110
+11000000000000100110001000001000
+01110000010001101111110100000001
+01000100110011100100000000010011
+01101111111000001100011001100110
+11000000000000000110000111011111
+11000000000000001110000111100001
+11000000000000010110000111100011
+00100000011000000000000000000000
+01101000010010001100011001011101
+00100000001000000110000111100100
+01101000010010001100011001011110
+00100000001000000110000111100100
+01101000010010001100011001011111
+00100000001000000110111011110111
+00100000001000000110111011110011
+01110000010001101111101100000000
+01110000010001101111111000000000
+01101111111000001100011011111110
+11000000000000100110001000000010
+01110000010001101111110100000000
+01000100110011101100000000010011
+01101111111000001100011001100110
+11000000000000000110000111110001
+11000000000000001110000111110101
+11000000000000010110000111111001
+00100000011000000000000000000000
+01101000010010001100011001011101
+01101111111001000100011100010011
+11000011000100000110000111100101
+00100000001000000110111100001111
+01101000010010001100011001011110
+01101111111001000100011100010011
+11000011000100000110000111100101
+00100000001000000110111100001111
+01101000010010001100011001011111
+01101111111001000100011100010011
+11000011000100000110000111100101
+00100000001000000110111100001111
+00100000010000000110000111110001
+00100000010000000110000111110101
+00100000010000000110000111111001
+00100000010000000110000101101110
+00100000001000000110001000000010
+01110000010001101111110100000000
+01101111111001000100011100010011
+11000010100100101110000111101010
+11000010100100110110000111101010
+01101000010010001100011001100001
+00100000001000000110000111100101
+01110000010001101111110100000001
+01101111111001000100011100010011
+11000010100100101110000111011000
+11000010100100110110000111011000
+01101000010010001100011001100001
+00100000001000000110000111100100
+01101111111001000100011100010011
+11000100000000100000000000000000
+01101111111000001100011100001001
+01101000010010001100011100001000
+00011111111001100111110000000010
+00100000001000010110001000011011
+01101111111000001100011001100110
+11000000000000000110001000011000
+01110000010000001001010000000001
+00100000011000000000000000000000
+01101111111001000100011100010011
+11000011100011000000000000000000
+00100000001000000011011011001010
+01101111111000001100011001100110
+11000000000000000011011011011011
+01110000010000001001010000000000
+00100000011000000000000000000000
+01101111111000001000000000001001
+00100000001000000011010111001011
+00100000010000000110001000011111
+00100000001000000011011011101000
+01101111111000001100100001000011
+00101111111000000000011000000011
+00100100001000001111110111001000
+00100000010000000100001100101011
+00100000001000000111110111001010
+01101111111000010100010011101001
+11000010100001001110001000100011
+00100000011000000000000000000000
+00100000010000000011011010110100
+00100100011101000000000000000000
+01110000010001110111110000000001
+00100000010000000011011010111110
+01110000010001110111001000000000
+00100000010000000110001010101010
+01101111111000001100011100111111
+00100100010110100101010011011100
+01101111111000100100010110101111
+00100000001000000011011000100010
+01101111111000001100011101111011
+00100000001110100011011000010110
+00100000010000000011011010110100
+00100100011101000000000000000000
+01101111111000001100011101110010
+01110000010001110111001000000000
+00011111111001100111110000000000
+00100100001000101110001001011100
+01101000010010010100011000100010
+00011000010001100111110000000000
+00100000001000101110001001010010
+01101111111000100100011101100111
+00100000001110100110001001010010
+01101000010010100100011101010001
+10011000010001100000010000000000
+01100000010010100100011101110111
+00100100001000010110001001010101
+01101111111000011100011000001000
+10011000010001100111111000000000
+00100100001000010110001001100000
+11011000010000000000011000000000
+10011000010001100111110000000000
+00100100001000010110001001100000
+01100111111000100100011101110011
+00100000010000000110001001011001
+01101111111000100100011101110011
+00100000010000000111110100100101
+01100000010010100100000010101001
+00100000001000000010010000011110
+00100000010000000110001001011001
+01101111111000011100011000001000
+00100000001000000110001001001100
+00011000010001100000010000000000
+01101111111000011100011000001000
+10011000010000001111111000000000
+00100000001000000110001001001100
+01011000000000000000000000000000
+01100111111000100100011101110111
+00100000011000000000000000000000
+01101111111000100100011101100111
+01101000010010100100011101110111
+10011000010000001111111000000000
+00100000001000000110001001000010
+01110000010001110111001000000001
+00100000011000000000000000000000
+00100000010000000110001001100100
+00100000001000000101111111111101
+01101111111000001100011101111011
+00100000011110100000000000000000
+01101111111000001100011000011000
+11000000000000001110001010100110
+01101111111000001100011101100000
+00100000001110100110001010100110
+00011011001000100111111000000000
+01101000010010110100011101100001
+01100111111000110100011101100001
+00100000010000000111110100010000
+01100111111000100100011101100111
+01101111111000001100011101110010
+00100100011110100000000000000000
+01101111111000010100011000100010
+00100100011110100000000000000000
+01101111111000100100011101100111
+01101000010010101100011101101011
+10011000010000001111111000000000
+01100111111000101100011101101011
+01101000010010001100011101100000
+01101111111000001100011101110000
+10011000010001100111110000000000
+00100000001000101110001001111110
+00011000010000001000010000000001
+01100000010010001100011101100000
+00100000011000000000000000000000
+01110000010001110110000000000001
+11011000010000000000000000000000
+01101111111000101100011101101011
+01100000010010101100011101101011
+01101000010010001100011101110000
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111010001000000000
+01101111111000100100011101010001
+01101000010010001100011101110001
+10011000010001100000010000000000
+00011000010000001000010111011000
+00011010001000100111111000000000
+10011000010001100111111000000000
+00100000001000010110001010011001
+00011111111001100111111000000000
+00011111111010110111111000000000
+01101000010010011100011000001000
+10011000010000001000010000000000
+01000100110011110100000000010011
+01101111111000011100011101011101
+11011010001000000001100000000000
+10011010001000001111111000000000
+10011000010001100111110000000000
+00100100001000010110001010100100
+01100000010010011100011000001000
+00100000011000000000000000000000
+00011111111010110000010000000000
+01101111111000011100011000001000
+10011000010001100000010000000000
+01000100110011111100000000010011
+01101111111000011100011101011101
+11011010001000000001100000000000
+10011010001001100111111000000000
+10011000010001100111110000000000
+00100000001000010110001010100100
+01100000010010011100011000001000
+00100000011000000000000000000000
+01100111111000011100011000001000
+00100000011000000000000000000000
+01110000010001110110000000000001
+00011011001000100111111000000000
+01100111111000110100011101100001
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000001100011101100000
+01100111111000101100011101101011
+00100000011000000000000000000000
+00100000010000000111001110010110
+00100000011101011000000000000000
+01011000000000000110001100100111
+01100111111000010100001111011011
+01011000000000000110001011011001
+01100111111000010100001111011101
+01011000000000000110001110001010
+01100111111000010100001111011111
+01011000000000000110001100001110
+01100111111000010100001111100011
+01011000000000000110001101100101
+01100111111000010100010100100100
+00100000010000000110001011000010
+01000100110100000100000000010100
+00100000010000000110001110010110
+01101111111000001100010100011010
+11000000000000000110001011010000
+01101111111000001100010100011011
+01100111111000001100010011101100
+00100000001000000110001110100001
+01011000000000000110001100101011
+01100111111000010100001111010101
+01011000000000000110001100101001
+01100111111000010100001111010111
+01011000000000000110001101000000
+01100111111000010100010100011111
+01011000000000000110001110011010
+01100111111000010100010100100001
+01110000010000010101111000000111
+00100000010000000010100101101001
+00100000010000000110001110001101
+00100000010000000110111111110111
+00100000010000000111100010101101
+00100000001000000111011110101100
+01110000010001001110110011111111
+01110000010001010001110000000001
+00100000001000000110001101000000
+01101111111000001100010100011100
+11000000000000010100001100001000
+00100000010000000110100110111001
+01101111111000001100010001000001
+00100100001110100100001100001000
+00100000001000000100001100001010
+00011010011000100111111000000000
+11000000000010100110001011100010
+11000000000010101110001011100110
+11000000000111111110001011101001
+11000000001000000110001011101111
+11000000000010000110001110110110
+11000000000101100110001011110101
+11000000000101101110001100000000
+00100000011000000000000000000000
+00100000010000000110001100101101
+01011000000000000000000000000000
+01100111111000010100010011111000
+00100000001000000100001100100101
+00100000010000000111100010101101
+01110000010001001111000100000000
+00100000001000000110001101000000
+00100000010000000111100010101101
+01110000010001001111000100000001
+01101111111001000100010100000010
+01100111111001000100001011010011
+00100000010000000100001100101011
+00100000001000000010111010010011
+01101111111000010100001100111100
+11000001000000000000000000000000
+01101111111001000100010100001010
+00100000011110100000000000000000
+01100111111001000100001011010011
+00100000001000000010111010010011
+01101111111000001100010100011010
+11000001000000000000000000000000
+01101111111000001100010100011100
+11000001100000001000000000000000
+00100000010000000110001011111011
+00100000001000000100001100100011
+01110000010001101011110100000001
+11011111001000000000000000001011
+11011000101000000100011010111110
+11011000110000000100011010100111
+00100000001000000111110011011010
+01101111111000001100010100011010
+11000001000000000000000000000000
+01101111111000001100010100011100
+11000000000000001110001100000101
+00100000001000000110001110110010
+01101111111000001100011010111101
+11000001100000001000000000000000
+01110000010001101011110100000000
+01101111111000010100010011101001
+11000010100001001100001100100101
+11011111001000000000000000001011
+11011000110000000100011010111110
+11011000101000000100011010100111
+00100000001000000111110011011010
+00100000010000000110001100010001
+00100000010000000110001100011000
+00100000001000000110001100100010
+11011010011000000100010100011000
+11011010010000000110001100010100
+00100000001000000100001011100111
+01110000010001010001110000000010
+00100000010000000100001100100101
+00100000010000000110001101001110
+00100000001000000110001110011110
+11011010011000000100011011001010
+11011010010000000110001100011011
+00100000001000000100001011100000
+01101111111000010100010011101001
+11000010100001001110001110011110
+01101111111000001100011010100111
+11000000000000001110001110011110
+11000000000000100110001110011110
+11000000000000101110001110011110
+00100000001000000100001100100111
+01101111111000001100010100011100
+11000001100000001000000000000000
+11011010011000000100010011111000
+11011010010000000110001100110001
+00100000001000000100001011100111
+00100000010000000110001101110110
+00100000001000000111000000100111
+00100000010000000110111100110101
+00100000001000000111000000011011
+00100000010000000110111100110101
+00100000001000000111001110011010
+01101111111000010100010100010100
+01100111111000010100010100010110
+01100111111000010100010100011000
+00100000001000000100001100010101
+01101111111000001100010100011100
+11000001100000001000000000000000
+01101111111000010100010011101001
+11000011100001001000000000000000
+01101111111000010100010100010010
+01100111111000010100010100010110
+01100111111000010100010100011000
+01101111111000010100010011110100
+00100000010000000110001111000111
+00100000010000000100001100100001
+01101111111000100100010011111110
+01100111111000100100011010101010
+01101111111000010100010011101001
+11000011100001011000000000000000
+00100000001000000100001100010111
+01101111111000001100010100011100
+11000001100000001000000000000000
+01101111111000010100010011111000
+01101000010010010100010011110110
+01100000010010010100010011111000
+00100100011110100000000000000000
+01101111111000010100010011110010
+00100000010000000110001111000111
+00100000010000000100001100100001
+01101111111000100100010011111010
+01100111111000100100011010101010
+01101111111000010100010011101001
+11000011100001011000000000000000
+00100000001000000100001100010111
+01101111111000010100010011101001
+11000010100001001100001100011111
+00100000001000000110001100101101
+00100000010000000111110110111100
+01101111111000010100010011101001
+11000010100001001110001101010101
+00100000011000000000000000000000
+01101111111000001100010011110001
+00100000011110100000000000000000
+00100000001000000111110110111010
+00100000010000000111110110111100
+01101111111000010100010011101001
+11000011100001001000000000000000
+00100000001000000111110110111010
+00100000001000000110001101000000
+01111000010101100111110000000000
+01101111111000010100010100010110
+01100111111000010100010100011000
+00100000010000000110001101011000
+00100000001101000110001101011100
+00100000010000000110001101010001
+00100100011101000000000000000000
+00100000001000000111110110111110
+00100000010000000110001101011101
+00100100011101100000000000000000
+00011010001000100111111000000000
+00100000001110100110001101101100
+00100000010000000100001100100011
+11011010011000000100010100101110
+00100000001000000110001101101110
+00100000010000000100001100100101
+11011010011000000100010101010110
+11011111111000000000000000000101
+10011000111011111111111000000000
+10011010011000001010011000000000
+11101111111000001000000000010011
+00100000011110100000000000000000
+00100000010000000110001110000010
+00011010011000001010011000000001
+00100000001000000110001101110001
+01101111111000010100010011101001
+11000010100001001110001101111001
+00100000011000000000000000000000
+00100000010000000010101000101000
+00100100011110100000000000000000
+00100000010000000110001110000101
+00100100011101000000000000000000
+00011111111000001111111111111111
+00011111111011111111111000000101
+11011000010000000100010101111110
+10011000010000001000110000000000
+00100000001000000110001111001011
+01100111111000001000011001110000
+11011010001000000000011001110000
+00100000001000000111100010110010
+11011010001000000000011001110000
+00100000010000000111100011001010
+00100100011101000000000000000000
+01101111111000001000011001110000
+00100000011000000000000000000000
+01101111111000010100001110011000
+11000000000011000110001011101001
+00100000011000000000000000000000
+01110000010001101100100100000010
+01011000001000000000000000001000
+01100111111000100100010100000010
+01011001001011000000000000000101
+11100111111000100000000000000101
+01110000010000101110000100010111
+01011000000000000000000000011011
+01100111111000010100001100110010
+00100000001000000010101001000001
+11011111001000000000000000101000
+11011000101000000100010101111110
+11011000110000001001010011111001
+00100000001000000111110011001100
+11011010001000000000000000000000
+11011010011000000100011010110010
+00100000010000000111011111001010
+00100000010000000110001101001110
+01101111111000001100011011001001
+01100111111000001100011011001010
+00100000011000000000000000000000
+01011000000000000000000000000000
+00100000010000000110001110101101
+01110000010001001110010000000001
+00100000010000000111011101110110
+00100000010000000111011110000000
+01101111111000001100011011010000
+00100000001110100110001110101010
+01101111111100001000000100110010
+11000010100000100110001110111001
+01101111111000010100010011101001
+11000011100001100000000000000000
+00100000001000000100001100100111
+01101000010010010100010000110000
+11100111111000001000000000000010
+11101111111000001000000000000101
+01100111111000001100010011101011
+00100000011000000000000000000000
+01101111111000010100010000110000
+11101111111000001000000000111111
+11000001100000000000000000000000
+00100000001000000100001100100111
+01101000010010010100010000110000
+11101111111000001000000000000010
+11000000000000001110001111000001
+01011000000000000000000000000001
+01101000010010010100010000110000
+11100111111000001000000000000010
+00011000010000001000110000000010
+11101111111000001000000000000110
+11100111111000001000000000101011
+11101111111000010000000000000110
+00100000001000000111110101111001
+01011000000000000000000000000010
+00100000010000000110001110101101
+00011000010000001000110000000101
+11101111111000010000000000000110
+00100000001110100100001100100111
+00100000001000000111110101111001
+01100111111000010100000010100100
+00011111111000001111111111111100
+01100111111000010100001110001001
+00100000011000000000000000000000
+11101111111000001000000000000110
+00011111111000100010001000000000
+11101000010000010000000000000110
+00100000010000000111110001101101
+00100000010000000010110111101110
+00011010001000100111001000000000
+00100000010000000111110001100111
+00100000001000000111110011011010
+01011000000000001001001111000000
+01100111111000010100001011110111
+00100000011000000000000000000000
+01011000000000000100011011010010
+01100111111000010100001011110111
+00100000011000000000000000000000
+01101111111000010100011011001011
+01100111111000010100010100100110
+01101111111000001100011011001101
+01100111111000001100011010101001
+01100111111000001100011010110100
+01101111111000001100011011001110
+01100111111000001100010100011010
+01101111111000001100011011001111
+01100111111000001100010100011011
+01011000000000000000000000000010
+01100111111000010100010100101110
+01100111111000010100010100110011
+01011000000000000000000000000110
+01100111111000010100010101010110
+01100111111000010100010101011011
+01011000000000000000000000000111
+01100111111000010100010100111000
+01011000000000000000000000001000
+01100111111000010100010101100000
+01011000000000000100010100011100
+01100111111000010100010000110000
+01011000001000000001010000000000
+01100111111000011100010100011100
+01110000010000001001010000000001
+01011000000000000000000100000000
+01100111111000010100000010100100
+01110000010000001010011000001000
+01110000010000001100000000000101
+01110000010000001100000100000010
+01011000000000000000000010010110
+01100111111000010100010011111010
+11100111111000010000000000000101
+01011000000000000000001010010110
+01100111111000010100010011111110
+11100111111000010000000000000101
+00111000000000000000000000010000
+00111000000001001000000000001000
+00111000000010101100000000000000
+00111000000011000000000000000100
+01100111111001000100010100001010
+01110000010001001110111000000001
+01011000000000000100011010100111
+01100111111000010100010011101111
+01011000000000000000000000000000
+01100111111000010100011010100111
+00111000000000000000000110100000
+00111000000001000000000001101000
+00111000000010000000000000000000
+00111000000011000000000000000000
+01100111111001000100011010101010
+01011000000000000000001100000001
+01100111111000010100011010110010
+00111000000000000000000110100000
+00111000000001000000000011101000
+00111000000010000000000000000000
+00111000000011000000000000000000
+01100111111001000100011010110101
+01011000000000000000000000001110
+01100111111000010100010011110010
+01011000000000000000000101000000
+01100111111000010100010011110100
+01100111111000010100001110001001
+01011000000000000000000001010000
+01100111111000010100010011110110
+01110000010000111001001100000111
+01110000010000111000100000000000
+00111000000000000000000011111011
+00111000000001101100001000010010
+00111000000010001000000000001111
+00111000000011000000000000100001
+01100111111001000100001111000000
+00111000000000000000101110111000
+00111000000001000000001011101110
+01100111111000100100010100010010
+01011000000000000100010111011000
+01100111111000010100001111111011
+01011000000000000010000000000001
+01100111111000010100010111011000
+01110000010000110100100000011111
+00111000000000010000000100000010
+00111000000001001000000011000001
+00111000000010011000000100100000
+00111000000011000110010000001100
+01100111111001001100001101001001
+00111000000000000000001111000001
+11100111111000010000000000000101
+01110000010000110110100000011111
+00111000000000100000100100001101
+00111000000001110100110000010101
+00111000000010101000010100110010
+00111000000011011101000111010101
+01100111111001001100001101101001
+00111000000000100110010101110100
+00111000000001000000000000011100
+11100111111000011000000000000101
+01011000000000000100010100100011
+01100111111000010100010000101100
+01110000010001010010001100000010
+01011000000000000100010111111101
+01100111111000010100001111111000
+01110000010000111111101000000101
+01101111111000001100011011010001
+11000000000000000110001111010011
+11000000000000001110001111010110
+00100000011000000000000000000000
+01101111111000110100111011110100
+01100111111000110100010100100110
+01110000010001010010001100000110
+01011000000000000100010100100011
+01100111111000010100010000101100
+00100000011000000000000000000000
+01101111111000111100111011110100
+01100111111000111100010100100110
+01110000010001010010001100000111
+01011000000000000100010100100011
+01100111111000010100010000101100
+00100000011000000000000000000000
+01101111111001000100111011110100
+01100111111001000100010100100110
+01110000010001010010001100001000
+01011000000000000100010100100011
+01100111111000010100010000101100
+00100000011000000000000000000000
+01101111111000001100111011110011
+11000000000000110110010001000010
+11000000000000111110010001001000
+11000000000001000110010001001110
+00100000011000000000000000000000
+01000100110100001100000000010100
+01101111111001000100111100011010
+01100111111001000100010100010010
+01011000000000000000000010010110
+01100111111000010100010011110110
+01101111111000111100111101101010
+01100111111000111100011010100111
+01101111111000111100111101110001
+01100111111000111100011010110010
+01101111111000100100111101111000
+01100111111000100100010011111010
+01101111111000100100111101111100
+01100111111000100100010011111110
+01011000000000000000000000001110
+01100111111000010100010011110010
+01011000000000000000000101000000
+01100111111000010100010011110100
+01100111111000010100001110001001
+01101111111001000100111100010010
+01100111111001000100010100001010
+00100000011000000000000000000000
+00100000010000000111001110010110
+00100000011101011000000000000000
+00100000010000000110010001010100
+00100000010000000110010001011001
+01011000000000000110010010000100
+01100111111000010100001111011011
+01011000000000000110010011011111
+01100111111000010100001111011101
+01011000000000000110011011000101
+01100111111000010100001111011111
+01011000000000000110010010110101
+01100111111000010100001111100011
+01011000000000000110010100000101
+01100111111000010100010100100100
+00100000010000000110001011000010
+01101111111000010100111110010111
+01100111111000010100001100110010
+01101111111001000100010100001010
+01100111111001000100010100000010
+00100000010000000110010010001110
+01000100110100010100000000010100
+00100000001000000110001010111101
+00100000010000000110010010011011
+11011000111000000000000000001001
+00100000010000000111110011101111
+00100100011110100000000000000000
+01011000000000000000000000100000
+11011000111000000000000000001001
+00100000010000000111110011100001
+01111000010101000111110000000000
+00100000010000000111000000011011
+00100000001000000110010101101110
+01011000000000000000000000011111
+00011111111011111111111000001010
+11011000010000000100110000010010
+10011000010000001010001000000000
+00011010001000001010001000000011
+11011000010000000000000001100010
+11100000010000001000000000010001
+00011010001000001010001000001011
+11011111111000000000111111111111
+10011000010001100111111000000000
+00011111111100100111111000000000
+11100111111000010000000000010001
+00100000011000000000000000000000
+01101111111000010100010011101001
+11000010100001001110010010100000
+11011000101000000100010111011010
+11011111001000000000000000100011
+00100000001000000111110010100001
+00100000010000000010101000101000
+00100100011110100000000000000000
+00100000010000000111100011111010
+00100000011110100000000000000000
+01101000010010100100100111110110
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100000011000101000000000000000
+00100100001000010110010010101100
+01101111111000001100100111110101
+10011000010001100111110000000000
+00100000011000010000000000000000
+00011100010000100111111000000000
+01100111111000100100100111110110
+00100000010000000110001110000101
+00100100011101000000000000000000
+00011111111000001111111111111111
+00011111111011111111111000001010
+11011000010000000100110000010010
+10011000010000001000110000000000
+00100000001000000110001111001011
+00100000010000000110100001011000
+00100000010000000110011101101100
+00100000010000000110011101011010
+00100000010000000110010010111100
+00100000010000000110010011010011
+00100000010000000110001100010001
+00100000001000000110010011011001
+11011010011000000100111011010001
+11011010010000000110010010111111
+00100000001000000100001011100000
+00100000010000000111100011111010
+00100100011110100000000000000000
+01101111111000010100100010111100
+00100100011110100000000000000000
+00100000010000000110011100110000
+00100000001110100110010011001101
+00011000111000100111111000000000
+00101111111000000000111000000100
+00100000001000001110010011001111
+00011000111000100111111000000000
+00101111111000000000111000000001
+00100000001000001110010011010001
+11011010011000000100111011000110
+00100000001000000110001101110001
+11011010011000000100111011011010
+00100000001000000110001101110001
+11011010011000000100111011011111
+00100000001000000110001101110001
+11011010011000000100111011101001
+00100000001000000110001101110001
+11011010011000000100110000001111
+11011010010000000110010011010110
+00100000001000000100001011100000
+11011111001000000000000000001010
+11011000101000000100101000000100
+00100000001000000111110010100001
+11011010011000000100011011001010
+11011010010000000110010011011100
+00100000001000000100001011100000
+01101111111000010100010011101001
+11000010100001001110001110011110
+00100000001000000100001100100111
+00011010011000100111111000000000
+11000000000010100110010011110100
+11000000000010101110010011101111
+11000000000110001110010011100110
+11000001001000000000000000000000
+11000000000110010110011011001000
+00100000001000000110001011011001
+01110000010011101101001000000001
+00100000010000000110011110000011
+01101111111000010100111110000100
+01100111111000010100111010111110
+01101000010010010100111110000110
+01011000000000000000111111111111
+10011000010001100111111000000000
+01100111111000010100111011000000
+00100000011000000000000000000000
+01110000010011101011101100000000
+01110000010011101101001000000000
+00100000010000000110010110101101
+00100000010000000110010100000000
+00100000001000000110001011100110
+00011100010000100111111000000000
+01100111111000100100100111110110
+00100000010000000110011100101001
+00100000001000000110001011100010
+01111000010101100111110000000000
+01101111111000010100010100010110
+01100111111000010100010100011000
+00100000010000000110001101011000
+00100000001101000110001101011100
+00100000010000000110001101010001
+00100100011101000000000000000000
+00100000001000000111110110111110
+01110000010011101101010100000000
+00100000011000000000000000000000
+00011000111000100111111000000000
+11000001100000001000000000000000
+00100000001000000110010100001100
+00100000010000000110010011111000
+00100100011101100000000000000000
+00011010001000100111111000000000
+00100000001110100110010100110111
+01000100110100011100000000010100
+01101111111000001100111110101111
+00100100001110100110010100000010
+01110000010011000001000000000001
+00100000010000000100001100100011
+00100000010000000110010100101100
+00100000010000000110010101100001
+00100000001000010110010100000000
+00011000111000100111111000000000
+01101000010010001100111011010101
+10011000010001100111110000000000
+00100100010000101110010100100110
+00011000111000100111111000000000
+01100111111000001100111011010101
+01101000010010001100111011011000
+10011000010001100111110000000000
+00100000001000101110010100100100
+01101111111000001100111011011001
+00100100001110100110010100011111
+00100000010000000110011100110010
+11011111111000000000000000001010
+00100000001000000110010101011010
+00100000010000000110011101111111
+00011000111000100111111000000000
+11000000000000001110010100011100
+00100000010000000110011001000010
+00100000001000000110010111110100
+01110000010011101101011000000001
+00100000001000000110010111110100
+01000100110100100100000000010100
+01101111111000001100111011011001
+00100000001110100110010011000011
+00011000111000100111111000000000
+11000000000000001110010011000011
+00100000011000000000000000000000
+11011111111000000000000000001010
+10011000111011111111111000000000
+11011010011000000100100111111010
+10011010011000001010011000000000
+00011100010000100111111000000000
+11100111111000100000000000010011
+00011010011000001010011000000100
+11101111111000001000000000010011
+00011111111000001111111000000001
+11100111111000001000000000010011
+00100000011000000000000000000000
+01000100110100101100000000010100
+01101111111000001100111011011001
+00100000010110100110010101001011
+11011111111000000000000000001010
+10011000111011111111111000000000
+11011010011000000100100111111010
+10011010011000001010011000000000
+11101000010000100000000000010011
+00011000010001100111110000000000
+00100000011000101000000000000000
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100100010000010111100000000110
+00011010011000001000110000001001
+11101111111000001000000000000110
+00100100001110100110010101100110
+00011010011000001010011000000101
+00011100010000100111111000000000
+11100111111000100000000000010011
+00100000011000000000000000000000
+01101111111000001100111110101111
+00100100001110100100001100100011
+00100000001000000100001100100101
+00011010011000001000110000000100
+11101111111000001000000000000110
+00100000001000000110010101010001
+00100000010000000110010101101011
+01101111111000001100111011011001
+00100100001110100110010101011101
+00100000010000000110010101100001
+00100000001000010110010100000000
+00100000010000000110011100111000
+00011000111000100111111000000000
+11000000000000011110011101000000
+11011111111000000000000000001111
+10011000111011111111111000000000
+10011010011000001010011000000000
+00100000001000000110001101110001
+00011000111000100111111000000000
+11000000000000001110010101010100
+11000000000000011110010101010100
+00100000011000000000000000000000
+00100000010000000111100100000010
+11101000010000001000000000000110
+10011000010001100111111000000000
+00011111111001100111110000001010
+00100000011000000000000000000000
+01110000010011101101000000000001
+00100000010000000110010101101011
+11011010011000000100101010111110
+11011111111000000000000000000011
+00100000001000000110010101011010
+11011111001000000000000000001010
+00011010011000100000101000000000
+00100000001000000111110010100001
+01101111111000010100100010111100
+01100111111000010100010000101110
+00100000010000000110010110111110
+01101111111000010100010000101110
+01100111111000010100100010111100
+11011000111000000000000000000000
+01101111111000001100010100100011
+00011111111000100111001000000000
+11011010011000000100100111111010
+00011111001000100111111000000000
+01100111111000010000011001111000
+00011010011000100111111000000000
+01100111111000010000011010001100
+00011000111000100111111000000000
+01100111111000010000011001111010
+00100000010000000110010110110100
+01101111111000010000011010001100
+00011111111000100010011000000000
+01101111111000010000011001111010
+00011111111000100000111000000000
+00100000010000000110010110001011
+01101111111000010000011001111010
+00011111111000001000111000000001
+01101111111000010000011010001100
+00011111111000001010011000001010
+01101111111000010000011001111000
+00011111111000100111001000000000
+11000010000000000110010101110111
+00100000011000000000000000000000
+11101111111000100000000000010011
+00100000011110100000000000000000
+00011111111000100000010000000000
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100100011000010000000000000000
+01011000000000000000100111000100
+10011000010001100111110000000000
+00100000011000010000000000000000
+00011100010000100111111000000000
+11100111111000100000000000010011
+00011010011000001010011000001001
+01011000000000000000000000000001
+11100111111000001000000000010011
+01101111111000001100111011010000
+00100000011110100000000000000000
+01110000010011101101000000000000
+01000100110100110100000000010100
+00100000010000000110011101010101
+01101111111000001100111011010111
+11000000000000000110010110100010
+11000000000000001110010110100101
+00100000011000000000000000000000
+00100000010000000110010110101111
+11011111111000000000000000000011
+00100000001000000110010101011010
+00011000111000100111111000000000
+01101000010010001100111011011000
+10011000010001100111110000000000
+00100100001000101110010110100010
+01101111111000001100111011011001
+01111001010000000111111000000000
+01100111111000001100111011011001
+00100100011110100000000000000000
+01110000010011101101100100000000
+00100000001000000100001100100101
+11011010011000000100101010101001
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100101111010000
+00100000011000000000000000000000
+00011010011000001010010000000101
+11101111111000100000000000010010
+00100000011110100000000000000000
+00011111111000100000010000000000
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100100010000010111100000000110
+01011000000000000000001111101000
+10011000010001100111110000000000
+00100000001000000110010101001110
+01101111111000010100010000101100
+11101111111000001000000000111111
+00100000011110100000000000000000
+01011000000000000000000000000000
+01100111111000010000011011110001
+00100000010000000111000000000011
+00100100001101000111011110100101
+00100000010000000111011110100011
+01111000010101000111110000000000
+01101111111000001100001110001000
+00100100011110100000000000000000
+01000100110100111100000000010100
+01101111111000001100111011010111
+11000000000000001110010111001111
+00100000010000000110011000101000
+00100000010000000110010111011100
+00100000011101000000000000000000
+00100000010000000110010111010101
+01101111111000010000011011110001
+01100111111000010000011011111000
+01110000000001101111101000000000
+00011000000000000000111000000000
+00100000001000000111000000111011
+01101111111000001100111011010101
+01101000010010001100111011011000
+10011000010001100111110000000000
+00100000001000101100001100100011
+01101111111000001100111011011001
+00100100001110100100001100100101
+00100000011000000000000000000000
+11011000111000000000000000000000
+11011010010000000100101011010011
+11011111111000000000000000000010
+10011000111011111111111000000000
+10011010010000001010010000000000
+11101111111000010000000000010010
+00100000011110100000000000000000
+01101000010010010000011011110001
+10011000010000101111110000000000
+00100000001000101110010111101000
+00011000111000001000111000000001
+00100000001000000110010111011101
+01100111111000010100101011011111
+00100000010000000100001100100011
+11011010011000000100101011100001
+11011111111000000000000000001010
+10011000111011111111111000000000
+10011010011000001010011000000000
+00100000010000000110010111110000
+00100000001000000110011000110011
+00100000010000000110011101111111
+11101111111000001000000000010011
+00100000011110100000000000000000
+00100000010000000110011001000010
+00100000010000000110011101111111
+00100000010000000110011000001001
+00100000010000000110011000010100
+00100000010000000110011000011110
+11011111111000000000000000000101
+00100000010000000110001110000010
+00100000010000000110011100110000
+00100000011110100000000000000000
+01110000010010011111010101111000
+11011111111000000000000000000110
+00100000001000000110001110000010
+01101000010010001100111010111010
+00100000010000000110011100110000
+00100000011110100000000000000000
+01101000010010001100111010111101
+00011000010000001000010000000001
+01101111111000001100111011010110
+00100000011110100000000000000000
+01101000010010001100111010111010
+01110000010011101101011000000000
+00100000011000000000000000000000
+00100000010000000110010111111111
+00011000010000100111111000000000
+00100000011110100000000000000000
+01100111111000001100111011000011
+11011111111000000000000000010011
+00100000010000000110001110000010
+01101111111000001100111011000011
+00011111111000001111111111111111
+01100111111000001100111011000011
+00100000011110100000000000000000
+00100000001000000110011000001101
+01101111111000001100111010111100
+00100000011110100000000000000000
+01100111111000001100111011000100
+11011111111000000000000000100000
+00100000010000000110001110000010
+01101111111000001100111011000100
+00011111111000001111111111111111
+01100111111000001100111011000100
+00100000011110100000000000000000
+00100000001000000110011000010111
+01101111111000001100111010111101
+00100000011110100000000000000000
+01100111111000001100111011000101
+11011111111000000000000000100001
+00100000010000000110001110000010
+01101111111000001100111011000101
+00011111111000001111111111111111
+01100111111000001100111011000101
+00100000011110100000000000000000
+00100000001000000110011000100001
+01101111111000010100101011011111
+00100000011110100000000000000000
+01101000010010010000011011110001
+00011000010001100111110000000000
+00100000001000101110011000110110
+10011000010001100111110000000000
+00100000011000101000000000000000
+01100000010010010100101011011111
+01101111111000010100111011010011
+10011000010001100111110000000000
+00100000010000101100001100100101
+01101111111000010000011011110001
+01100111111000010100010000101110
+00100000001000000111110110111010
+01110000010011101101000000000001
+00100000010000000100001100100101
+11011010011000000100101100011101
+00100000010000000110010111110000
+01011000000000000000000000000000
+01100111111000010100101011011111
+01110000010010001010111000110010
+00100000010000000110011000110011
+01101111111000001100010100100011
+00011111111011111111001000001010
+11011000101000000100100111111010
+00100000001000000111110010100001
+01000100110101000100000000010101
+01101111111000001100111011010111
+11000000000000001110011001000111
+11000000000000000110011001001101
+00100000011000000000000000000000
+00011000111000100111111000000000
+11000000000000101110011001110110
+11000000000000000110011010010011
+11000000000000100110011010011011
+11000000000000010110011010111110
+00100000011000000000000000000000
+11101111111000001000000000010011
+11000000000000001110011001110110
+11000000000000010110011010010011
+11000000000000011110011010011011
+11000000000000100110011010111110
+11000000000000101110011001010100
+00100000011000000000000000000000
+00100000010000000110011100110000
+00100100001110100110011001011110
+01011000000000000000000000000100
+00011111111011111111111000001010
+11011000010000000100110000010010
+10011000010000001000101000000000
+00011000101000001000101000000011
+01101111111000011100101100100111
+11100111111000011000000000000101
+00100000011000000000000000000000
+01011000000000000000000000000100
+00011111111011111111111000001010
+11011000010000000100110000010010
+10011000010000001000101000000000
+00011000101000001000101000000011
+01101111111000010100111010111110
+11100111111000011000000000000101
+00011000101000001000101000000111
+01101111111000010100111011000000
+00011111111100100111111000000000
+00011111111011010111111000000000
+11100111111000011000000000000101
+00100000011000000000000000000000
+01101111111000001100111010111100
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100111010111100
+11011111111000000000000001100010
+00100000011000000000000000000000
+11011000010000000000000000001010
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011000010000000000000000000111
+00100000011000000000000000000000
+00100000010000000110011001110001
+01101111111000010100111010111110
+10011000010001100111110000000000
+00100100010000010110011001101011
+00100100011000010000000000000000
+10011000010001100111111000000000
+01100111111000010100111010111110
+01000100110101001100000000010101
+01101111111000010100111010111110
+01101000010010010100111011000000
+00011000010011010000010000000000
+00011000010100100000010000000000
+10011000010000001111111000000000
+01100111111000011100101100100111
+00100000001000000110011001010100
+01101111111000010100111010111110
+11011000010000000000000001100010
+10011000010001100000010000000000
+00100100011000010000000000000000
+00011000010000100111111000000000
+01101000010010001100111010111100
+00011000010001100111110000000011
+00100000001000101110011010010000
+00011000010000001000010000000001
+01100000010010001100111010111100
+00100000001000000110011001111100
+01110000010011101011110000000000
+11011111111000000000000000000000
+00100000001000000110011001111100
+00100000010000000110011100110000
+00100100010110100110011010000101
+00100000010000000110011001110001
+01101111111000010100111010111110
+10011000010000001111111000000000
+11011000010000000000111111111111
+00100000010000000111110101101100
+00100000001000000110011001111100
+00100000010000000110011001110001
+01101111111000010100111011000000
+10011000010001100111111000000000
+01100111111000010100111011000000
+01101000010010010100111011000000
+00100000010000000110011100110000
+00100000001110100110011001111101
+01011000000000000000111111111111
+10011000010001100111111000000000
+11011000010000000000000001100010
+10011000010001100000010000000000
+00100100001000010110011001111101
+01011000000000000000111111111111
+10011000010001100111111000000000
+01101000010010001100111010111101
+00011000010001100111110000000101
+00100000001000101110011010101111
+00011000010000001000010000000001
+01100000010010001100111010111101
+00100000001000000110011010111100
+01110000010011101011110100000000
+01011000000000000000111111111111
+00100000001000000110011010111100
+00100000010000000110011100110000
+00100000001110100110011010110000
+01101111111000001100111010111101
+00100000001110100110011010110000
+00011111111000001111111111111111
+01100111111000001100111010111101
+01011000000000000000111111111111
+11011000010000000000000001100010
+10011000010001100111111000000000
+10011010001000001111111000000000
+01100111111000010100111011000000
+00100000001000000110011001111101
+00100000010000000110011001110001
+01101111111000010100111011000000
+10011000010000001111111000000000
+11011000010000000000111111111111
+10011000010001100010001000000000
+00100000001000010110011010110010
+00100000001000000110011010111100
+01101111111000010100001110011000
+11000000000100100110001011101001
+00100000011000000000000000000000
+11011010001000000000000000010111
+11011010010000000000000000000100
+00100000010000000010100111111011
+01011000000000000000000000000110
+11100111111000001000000000000101
+01011000000000000000000000000001
+11100111111000010000000000000101
+01011000000000001111111111111111
+11100111111000010000000000000101
+01011000000000000010100000000000
+11100111111000010000000000000101
+11011000110000000100100111100100
+00100000001000000111110010001111
+01000100110101010100000000010101
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110010111
+11000000000000111110011100000100
+11000000000000001110011100100101
+11000000000001010110011011110100
+11000000000001100110011011011110
+00100000001000000010101110010110
+11101111111000010000000000000110
+01100111111000010000011010110101
+10011000000000000010001000000000
+01101000010010010100001110011000
+01101111111000010100001100110010
+10011000010001100111110000000000
+00100100001000101010110101010000
+00100000010000000110011100110000
+00100100001110100110011011101001
+01101000010010010100100111100000
+00100000001000000110011011101010
+01101000010010010100100111100010
+11011000110000000100100010111110
+00100000010000000111110001101101
+00011000010000100111111000000000
+10011010001001100111111000000000
+00100100001000010010111000000011
+00011111111000001111111000000001
+00011111111001100111110000010111
+00100000001000010010110101011001
+00011000000000000111111000010111
+00100000001000000010110101011001
+01101000010010010100001110011000
+01101111111000001100001100100001
+11000010100000011110011011111000
+00100000001000000010110100011101
+01101111111000010100001100110010
+10011000010001100111110000000000
+00100100001000101010110100011101
+00100000010000000010110111000111
+00100100001101000110011011111110
+00100000001000000010110101000110
+01101111111000010100001100110010
+10011000010001100111110000000000
+00100100001000101010110100011101
+11011000110000000100100010111110
+00011000000000000111111000010111
+00100000001000000010110100101101
+01000100110101011100000000010101
+01110000010011101011101000000101
+01110000010010011111010000000001
+01110000010011101100001000000001
+01110000010010011111010111110000
+01110000010011101101000100001010
+01110000010011101101011000000001
+00100000010000000110011110111111
+01101111111000001100111011010010
+00100000011110100000000000000000
+00100000010000000110011110000011
+11011000010000000000000001100010
+01101111111000010100111110001000
+11011010001000000100111010111110
+11011010010000000100111010111100
+00100000010000000110011100011110
+11011000010000000000000001100010
+01101111111000010100111110001010
+11011010001000000100111011000000
+11011010010000000100111010111101
+00100000010000000110011100011110
+01011000000000000000111111111111
+01101000010010010100111011000000
+10011000010001100111111000000000
+01100111111000010100111011000000
+00100000011000000000000000000000
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+00011000000001110000010000000000
+11100111111000001000000000010010
+11100000010000010000000000010001
+00100000011000000000000000000000
+00011000110000001000110111111110
+11101111111000001000000000000110
+11000000000000110110011100101110
+00100000011000000000000000000000
+01110000010011101011101000000001
+01110000010010011111010000000000
+01110000010011101100001000000000
+01110000010010011111010100001010
+00100000011000000000000000000000
+00100000010000000110011100101001
+00100000001000000110011110111111
+01101111111000001100100111110100
+00100000011000000000000000000000
+11011010011000000100111100100100
+00100000010000000110011100110000
+00100000011110100000000000000000
+01110000010010011111010101111000
+11011010011000000100101100101011
+00100000011000000000000000000000
+11011010011000000100101001000000
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100101101100111
+01110000010010011111010100001100
+00011000111000100111111000000000
+11000001000000001000000000000000
+00100000011000000000000000000000
+01000100110101100100000000010101
+01101111111000001100110000001110
+01111001010000000111111000000000
+01100111111000001100110000001110
+11000000000000000110011101001001
+11000000000000001110011101000111
+00100000011000000000000000000000
+00100000010000000110011101010000
+00100000001000000110001101110001
+00100000010000000110011101001011
+00100000001000000110001101110001
+11011010011000000100101001101101
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100101110010100
+00100000011000000000000000000000
+11011010011000000100101111111010
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100110000000100
+00100000011000000000000000000000
+00011000111000100111111000000000
+11000000000000001110011101110111
+11000000000000010110011101100101
+11000000000000100110011101100001
+00100000011000000000000000000000
+11011010011000000100111110011101
+11011010010000000110011101011101
+00100000001000000100001011100000
+01110000010011111001110100000100
+01101111111000001100110000001110
+00100000001110100110011101100001
+00100000001000000110011101100101
+01110000010011000000111000000000
+01110000010011111001110100000100
+11011010011000000100101010110101
+00100000001000000110001101110001
+01110000010011000000111000000001
+01110000010011111001110100000100
+11011010011000000100101010101111
+00100000001000000110001101110001
+01110000010011000000111000000000
+01110000010011111001110100000000
+00100000011000000000000000000000
+11011010011000000100111110011110
+11011010010000000110011101101111
+00100000001000000100001011100000
+01110000010011111001111000000010
+00100000010000000110011101110010
+00100000001000000110001101110001
+11011010011000000100111110011111
+00100000010000000110011100110000
+00100000011110100000000000000000
+11011010011000000100111110100111
+00100000011000000000000000000000
+01101111111000001100111110101111
+00100100001110100110011101111100
+01110000010011111010111100000001
+01110000010011111001111000000010
+00100000011000000000000000000000
+01110000010011111010111100000000
+01110000010011111001111000000000
+00100000011000000000000000000000
+01101111111000001100111010111011
+00100100011110100000000000000000
+01110000010011101011101100000001
+00100000001000000110011001111101
+01011000000000000000000000000000
+01100111111000111100111010111100
+00100000011000000000000000000000
+00100000010000000110011100110000
+11000000000000001110011110001110
+11000000000000000110011110100000
+00100000011000000000000000000000
+01101111111000001100111110010000
+11000000000000001110011110100111
+11000000000000000110011110111001
+00100000011000000000000000000000
+01101111111000001100111010111100
+00011111111011111111111001100010
+00011111111000100000010000000000
+01101111111000010100111010111110
+10011000010000001111111000000000
+01100111111000010100111110001100
+01101111111000001100111010111101
+00011111111011111111111001100010
+00011111111000100000010000000000
+01101111111000010100111011000000
+00011111111000100010001000000000
+01011000000000000000111111111111
+10011010001001100111111000000000
+10011000010000001111111000000000
+01100111111000010100111110001110
+00100000010000000110011100110000
+01100111111000001100111110010000
+00100000011000000000000000000000
+01101111111000010100111010111110
+01100111111000010100111110001100
+01101111111000010100111011000000
+01100111111000010100111110001110
+00100000010000000110011100110000
+01100111111000001100111110010000
+00100000011000000000000000000000
+01101111111000010100111110001100
+00011111111001101111110001100010
+00100000010000000111110101100010
+00011000000001111111111000000000
+00011000000001110000010000000000
+01100111111000001100111010111100
+00011000010000100111111000000000
+01100111111000010100111010111110
+01101111111000010100111110001110
+00011111111001101111110001100010
+00100000010000000111110101100010
+00011000000001111111111000000000
+00011000000001110000010000000000
+01100111111000001100111010111101
+01011000000000000000111111111111
+10011000010001100111111000000000
+01100111111000010100111011000000
+00100000011000000000000000000000
+01101111111000010100111110001100
+01100111111000010100111010111110
+01101111111000010100111110001110
+01100111111000010100111011000000
+00100000011000000000000000000000
+00100000001000000110100000111100
+00100000001000000110100000100011
+00100000010000000110011111100010
+01101111111000010100111110010011
+00100000010000000110100001001111
+01110000010011111001101100000000
+01101111111000101100111110001100
+01110000010011111001110000000000
+01110000010011111001100100000000
+00100000010000000110011111100110
+01101111111000001100111110011001
+11000001000000000000000000000000
+00100000001000000110011111000000
+01101111111000010100111110000000
+00011111111000001111111111111011
+01100111111000010100111110010011
+00100000011000000000000000000000
+01101111111000010100111110010011
+00011111111000001111111111111011
+01100111111000010100111110010011
+00100000011000000000000000000000
+01101111111000010100111110010011
+00011111111000001111111000000101
+01100111111000010100111110010011
+00100000011000000000000000000000
+01101111111000010100111110010101
+00011111111000001111111000000101
+01100111111000010100111110010101
+01101111111000010100111110010101
+00011111111000100000010000000000
+01101111111000010100111110000000
+10011000010001100111111000000000
+11011000010000000000000000000101
+10011000010001100111110000000000
+00100100001000010110100000000110
+00100000011000000000000000000000
+01101111111000001100111110011011
+11000000000000001110011111001011
+11000000000000000110011111001111
+00100000011000000000000000000000
+11011010010000000000000000000000
+00011010010000100000010000000000
+01101111111000010100111110001100
+10101000010000111111111000000000
+00100100010000001110011111110110
+11011010010000000000000000000000
+00011010010000100000010000000000
+01101111111000010100111110001110
+10101000010000111111111000000000
+00100100010000001110011111110110
+11011010010000000000000000000000
+00011010010000100000010000000000
+01101111111000001100111110010000
+10101000010000011111111000000000
+00100100010000001110011111110110
+00100000011000000000000000000000
+01101111111000001100111110011001
+00011111111000001111111000000001
+01100111111000001100111110011001
+00100000011000000000000000000000
+01110000010011111001100100000001
+00100000010000000110011111010111
+01101111111000010100111110010101
+00100000010000000110100001001111
+00100000010000000110011100110000
+00011111111000100000010000000000
+01101111111000001100111110010000
+10101000010000011111111000000000
+00100000010000001110100000100001
+01101111111000001100111110011001
+11000001000000000000000000000000
+00100000001000000110011111111010
+01000100110101101100000000010101
+00100000010000000110100000100001
+00100000010000000110011100110000
+00100000001110100110100000001011
+00100000001000000110100000010010
+01101111111000010100111110000100
+01100111111000010100111010111110
+01101000010010010100111110000110
+01011000000000000000111111111111
+10011000010001100111111000000000
+01100111111000010100111011000000
+00100000001000000110011110111110
+11011000010000000000000001100010
+01101111111000010100111110001000
+11011010001000000100111010111110
+11011010010000000100111010111100
+00100000010000000110011100011110
+11011000010000000000000001100010
+01101111111000010100111110001010
+11011010001000000100111011000000
+11011010010000000100111010111101
+00100000010000000110011100011110
+01011000000000000000111111111111
+01101000010010010100111011000000
+10011000010001100111111000000000
+01100111111000010100111011000000
+00100000001000000110011110111110
+01110000010011111001100100000000
+00100000011000000000000000000000
+01000100110101110100000000010101
+01110000010011111001101100000001
+00100000010000000110011111000000
+01101111111000010100111110000010
+00011111111000100000010000000000
+01101111111000010100111110010011
+10011000010001100111111000000000
+11011000010000000000000000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101111111000010100111110010011
+00011111111000100000010000000000
+01101111111000010100111110000000
+00011111111000001111111111111011
+10011000010001100111111000000000
+01101111111000010100111110010011
+01100111111000010100111110010101
+00100000010000000110011111111010
+01101111111000010100111110010101
+00100100010000101110100001001111
+01110000010011111001100100000000
+00100000010000000110011111100110
+01101111111000001100111110011001
+11000001000000000000000000000000
+00100000001000000110011110001010
+01000100110101111100000000010101
+01110000010011111001101100000001
+00100000010000000110011111000000
+01101000010010010100111110000010
+01101111111000010100111110010011
+10011000010001100111111000000000
+11011000010000000000000000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101000010010010100111110010011
+01101111111000010100111110000000
+10011000010001100111111000000000
+11011000010000000000000000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101111111000010100111110010011
+01100111111000010100111110010001
+00100000010000000110011110000110
+00100000001000000110100001010100
+01000100110110000100000000010110
+00011111111000100010010000000000
+11011111001000000000000000000101
+11011010001000000100111110001100
+00100000001000000110101101110100
+11011111001000000000000000000101
+11011010001000000100111110001100
+01101010010000010100111110010001
+00100000001000000110101101000101
+11011010011000000100100010101110
+11011010010000000110011110111110
+00100000001000000100001011100000
+01101111111000010000100100010010
+11101000010000001000000000010011
+00011010011000001010011000000001
+00011000010011010000010000000000
+10011000010000101111111000000000
+00011111001000100010010000000000
+11011111001000000000000000001000
+00101111111011111111111000001111
+00011111111000111111111000000000
+00100100001000001110100001100111
+01101000010010010000100100010100
+10011000010000101111111000000000
+11000010000000000110100001100010
+00011010010000100111001000000000
+11000010000000000110100001011100
+01100111111000010000100100010010
+00100000011000000000000000000000
+01101111111000001100010000111111
+11011000010000000000000000111110
+00100000001000000110111100100000
+01101111111000001100010000111111
+11011000010000000000000000111111
+00100000001000000110111100100000
+00100000010000000110100001101111
+00100000010000000110100001101100
+00100000001000000110100001101111
+00100000010000000110100001110011
+00100000001000000110100001101100
+00100000001000000110100001110011
+00100000010000000110100001110011
+00100000001000000110100001110101
+00100000001000000110100001101100
+01101111111000001100010001000000
+00100000001000000110100001101101
+01101111111000001100010001000000
+00100000001000000110100001110000
+00100000010000000110100001111011
+00100000010000000110100001111101
+00100000001000000110100001111011
+00100000100000000000000000000000
+00100000010000000111000011010111
+00100000010000000110100010001101
+00100000010000000110100010001111
+00100000010000000110100010100011
+00100000010000000110100010111111
+00100000010000000110100011000011
+01110000000001110000111100000001
+01110000000001110000110000000100
+00100000010000000110100011001110
+00100000001000000110100010001011
+01110000100000000100001000000100
+00100000011000000000000000000000
+00100000010000000110100010010011
+00100000010000000110100010010111
+00100000010000000110100010011011
+00100000001000000110100010011111
+01101111111000001100010011110001
+00100100011110100000000000000000
+01110000010001001111000100000111
+00100000011000000000000000000000
+01101111111000001100010011110010
+00100100011110100000000000000000
+01110000010001001111001000000110
+00100000011000000000000000000000
+01101111111000001100010011110011
+00100100011110100000000000000000
+01110000010001001111001100001001
+00100000011000000000000000000000
+01101111111000001100010011110100
+00100100011110100000000000000000
+01110000010001001111010000001010
+00100000011000000000000000000000
+01011000000000000000110000000000
+01100111111000010000011001110000
+01011000000000000000111011111111
+11100111111000010000000000000101
+01011000000000000000111100000000
+11100111111000010000000000000101
+01011000000000000000111111111111
+11100111111000010000000000000101
+01101111111001000000011001110000
+00100000010000000110110101101000
+00100000010000000110110110000010
+11011000010000011100001000000000
+00100000010000000110110101110101
+01101111111000001100010011110001
+11011000010000000000000000001000
+00100000010000000110111100100001
+01101111111000001100010011110010
+11011000010000000000000001001001
+00100000010000000110111100100001
+01101111111000001100010011110011
+11011000010000000000000000001010
+00100000010000000110111100100001
+01101111111000001100010011110100
+11011000010000000000000000001011
+00100000010000000110111100100001
+11011000010000000000000010000001
+01100000010110001000000001100000
+00100000001000000111110101110110
+01101111111000001100010011110101
+00100100011110100000000000000000
+01110000010001001111010100001100
+00100000011000000000000000000000
+01101111111000001100010011110101
+11011000010000000000000000010000
+00100000010000000110111100100001
+11011010001000000000000001000000
+00100000010000000111000001010101
+11011010001000000000000000000000
+11011010010000000000000000000000
+01011000000000000000000000000000
+00100000010000000111000001111010
+11011000111000000000000000000000
+00100000001000000111000011000000
+01101111111100010000000100010010
+00011111111000001010001111111100
+00100100011000010000000000000000
+00100000010000000110110110010110
+11101111111000001000000000000011
+11000000000000001110100011010110
+00100000010000000111110010010101
+00100000001000000110110110011110
+11101111111000010000000000000011
+01100111111000010000011100010000
+11011000010000000000001111111111
+10011000010000010000010000000000
+01100000010010010000011100001001
+00011111111010110111111000000000
+00011111111011001111111000000000
+01100111111000001000011100001011
+11101111111000001000000000000011
+00011111111000001111111111111111
+10011010001001100111110000000000
+00100000011000010000000000000000
+00100000010000000110100011100100
+00100000001000000110100100111111
+01101111111000001000011100001011
+11000000000111111110100011100111
+00100000001000000110100100101011
+01000100110110100100000000010110
+01101111111000001000011100001001
+11000000000000000110100100101010
+11000000000000001110100011110010
+11000000000000010110100011110111
+11000000000000011110100100000101
+11000000000000100110100100001111
+11000000000000101110100100101010
+11000000000010000110100100100000
+11000000000010100110100100100110
+00100000001000000110100100101010
+01110000000001110001001000000000
+01101111111100010000000000000000
+01100111111000010000011100010011
+11011111001000000000000000000011
+00100000001000000110100100110010
+11101111111000010000000000000011
+01100111111100010000000001010010
+00100000011000000000000000000000
+11101111111000001000000000000011
+00011111111000100000010000000000
+01100111111100001000000000100100
+11101111111000001000000000000011
+10011000010000001000010000000000
+01111001001000000111111000000111
+01100111111100001000000000100011
+11101111111000001000000000000011
+10011000010000001000010000000000
+00011111111000100111001000000000
+00100000011000000000000000000000
+00100000010000000110100011111010
+11101111111000001000000000000011
+01100111111100001000000000100101
+10011000010000001000010000000000
+11000010000000000110100100000110
+00011000010000010000010011111111
+11101111111000001000000000000011
+10011000010001100111110000000000
+00100100001000101110100100011110
+00100000001000000110100100101010
+11011111001000000000000000100000
+11011000101000000100000000000000
+11011000010000000000000000000000
+11101111111000001000000000000011
+11100111111000001000000000000101
+10011000010000001000010000000000
+11000010000000000110100100010010
+00011000010000010000010011111111
+11101111111000001000000000000011
+10011000010001100111110000000000
+00100100001000101110100100011110
+01110000100000000010001100000000
+00100000010000000110100100101010
+00100000010000000110110110101110
+00100000001000000010000000000001
+01110000100000000010001100000000
+00100000001000000110100100101011
+11101111111000001000000000000011
+00011111111000100111001000000000
+11101111111000010000000000000011
+00011111111000100000101000000000
+00100000010000000110110111011101
+00100000001000000110100100101010
+01101111111100001000000001100000
+01111001001000000111111000000100
+01100111111100001000000001100000
+00100000001000000110100100101010
+00100000001000000110100100101111
+01110000000001110001001000000001
+00100000001000000110100100110000
+01110000000001110001001000001100
+00100000001000000110100100110000
+01110000000001110001001000000000
+11011111001000000000000000000001
+00100000001000000110100100110010
+01110000000001110000110100001110
+00011111001000001111111000000011
+01100111111000001000011100001110
+00100000010000000110100100111011
+01101111111000011000011100001111
+11100111111000011000000000000011
+11011000110000000000011100010010
+00100000010000000110110111000100
+00100000001000000110110110100100
+00100000010000000110110110100010
+01101111111000011000011100001100
+11100111111000011000000000000011
+00100000011000000000000000000000
+00100000010000000110110110010110
+00011000011000001000011000000011
+11101111111000001000000000000011
+10011000011000001000011000000000
+00100000001000000110110110011100
+01110000010000010001010000000000
+00100000011000000000000000000000
+00100000001101011110100101001011
+01011000000000000100010001010000
+11011000101000000100010001000001
+10011000101001100111001000000000
+00100000010000000111110010100001
+00100000011000000000000000000000
+11011000111000000000000000000000
+11011010010000000000000000000000
+00011000111001100111110000000111
+00100100011000010000000000000000
+10101010001011111111111111111111
+00100000001000001110100101010011
+00100000001000000110100101010111
+00011000010000100111111000000000
+00100000001110100110100101010111
+11111001001000000010010000000000
+00011000010000001000010111111111
+00011000111000001000111000000001
+00100000001000000110100101001110
+01101011000000010100001100111111
+01101101011000010100001101000001
+00100000010000000111110110111100
+00100000001000000110100101011101
+01000100110110110100000000010110
+00100000010000000110100110101001
+00100100001110100010001101011010
+00100000010000000110100110111001
+11011111001000000000000000001000
+01101000010010001100010001000001
+00011111001001100000111000001000
+10101000010011111111111111111111
+00100000001000001110100101101010
+00100000010000000110100101110001
+00100100001000010110100101101010
+00100000010000000110100110000111
+00100000001000000110100101101110
+00011101011000100111111000000000
+10011011000000001011000000000000
+11000010000000000110100101100010
+00100000001000000010001101011010
+00011011000000100111111000000000
+00011011000000100000101000000000
+00100000011000000000000000000000
+01000100110110111100000000010110
+00011111001001100000111000001000
+11011000010000000000000000000000
+11011001011000000000000000000000
+00011000111000100111111000000000
+11000000000001000110100110000010
+01101111111000001100010001000001
+10101111111011111111111111111111
+00100000001000001110100110000010
+11111001001000000001011000000000
+00011101011000100111111000000000
+10011000010000001000010000000000
+00011000111000001000111000000001
+00011010001000100111111000000000
+10011000010001100111110000000000
+00100000001000101110100110000010
+00100000001000010110100101110101
+00011000010000100111111000000000
+10011010001001100111110000000000
+00100100011000101000000000000000
+11111001001000000001011000000000
+00100000011000000000000000000000
+01000100110111000100000000010111
+00100000010000000110100110101001
+00100100001110100010001101011010
+00100000010000000110100110101111
+00100000001110100110100110010000
+01101111111001001100010001000101
+01100111111001001100010001000010
+01011000000000000000000000000000
+11100111111000011000000000000101
+01100001011000001100010001001011
+01100011000000010100010001001100
+00100000011000000000000000000000
+01000100110111001100000000010111
+00100000010000000110100110110010
+00011000110000001000110000000001
+11101111111000010000000000000110
+00100000011000000000000000000000
+01000100110111010100000000010111
+00100000010000000110100110110010
+00011000110000100000101000000000
+00011000110000100000010000000000
+01011000000000000000000000000000
+11100111111000011000000000000101
+00100000011000000000000000000000
+01000100110111011100000000010111
+00100000010000000110100110101111
+00100000001110100010001101011010
+01101111111000011100010001001000
+01100111111000011100010001001011
+01101111111000011100010001000101
+01100111111000011100010001001000
+01101111111000011100010001000010
+01100111111000011100010001000101
+00100000011000000000000000000000
+01000100110111100100000000010111
+01101111111000011100010001000010
+00100000011000000000000000000000
+01000100110111101100000000010111
+01101111111000011100010001000101
+00100000011000000000000000000000
+01000100110111110100000000010111
+01101111111000011100010001001011
+00100000011000000000000000000000
+00100000010000000110100110101111
+00100000001110100110100110110111
+11011000110000000100010001000010
+11101111111000011000000000000110
+00100000001110100110100110110101
+00011000110000001000110111111101
+00100000011000000000000000000000
+01000100110111111100000000010111
+11011111001000000000000000000100
+11011000110000000100010001000010
+11011000010000000000000000000000
+11101111111000011000000000000110
+00011111111000010111111011111111
+10011000010000011000010000000000
+11000010000000000110100110111101
+01100000010010001100010001000001
+00100000011000000000000000000000
+11011000111000000000000000001100
+00100000001000000010010011100111
+11011000111000000000000000001100
+00100000001000000010010011101011
+01000100111000001100000000011000
+00011000010001100111110011111111
+00100000011000101000000000000000
+00011000010000100111111000000000
+00011111111000010111111011111111
+00011111111001100111110000001111
+00100100001000010110100111011001
+11011000101000001000000001110000
+10011000101000001000101000000000
+00011000101000100010001000000000
+11011000010000000000000000111110
+11100000010000001000000000000101
+00100000010000000110100111011100
+00100000000000000000000000011110
+00011010001000100000101000000000
+11011000010000000000000000111111
+11100000010000001000000000000101
+00100000001000000110100111100000
+11011000101000001000000011010100
+00011111111000001111111111110000
+00100000001000000110100111001111
+01101111111100001000000010000001
+00011111111000010111111001111111
+01100111111100001000000010000001
+00100000011000000000000000000000
+01101111111100001000000010000001
+00011111111000011111111010000000
+01100111111100001000000010000001
+00100000011000000000000000000000
+00100000001000000110101111010000
+00100000001000000110101111010111
+01101111111100001000000001101111
+01111001001111111111111000000111
+01100111111100001000000001101111
+00100000011000000000000000000000
+00100100001101000110100111101110
+01101111111100001000000001101111
+01111001001000000111111000000111
+01100111111100001000000001101111
+00011000010000100111110000000000
+00100000001000101110100111110001
+00011010011000100111101000000000
+00101111110011000000000000000000
+00100000001000000110101100000000
+00011000000000000000010000000100
+11011010001000000000000111100111
+00100000010000000110100111100110
+00100000010000000110100111101110
+11011010001000000101010110101010
+01101111111000010000000111100111
+11101000010000010000000000000110
+10011010001001100111110000000000
+00100000011000000000000000000000
+00100000010101000110101000001110
+11011000010000000000000000000010
+11011010001000000100001111001000
+00100000010000000110100111101110
+01101111111000010100001111001000
+01100111111000010000000111100000
+00100000010101000110101000000100
+00100000011000000000000000000000
+11011000010000000000000000010000
+11011010001000000000000111101101
+00100000010000000110100111100110
+00100000010000000110100111101110
+11011000110000000000000111101101
+11011111001000000000000000010000
+00100000010000000111001101010011
+00100000010000000111001011011010
+00100000010000000111001101101111
+00100000001000000111001011010100
+01110000100000000010001100000000
+00100000010000000110100111100110
+00100000001000000111001101101111
+01011000000000000000000000000000
+01100111111000010000011010011001
+01111000010101101111110000000000
+00100000010000000110100111110011
+00100100011000101000000000000000
+01111000001101101111110000000000
+01011000000000001000000000000000
+01100111111100011000000000100010
+11011010001000001000000000100101
+00100000010000000110100111101010
+01110000100000000010001100000000
+01101111111000001000000111011101
+11000100000000000000000000000000
+11011000010000000000000000000110
+00100000010000000110100111110100
+00100100001000101110101000101110
+11101010001000010000000000000110
+00100000010000000110100111101110
+00100000010000000110101000100101
+00100000001000000110101000011110
+01101111111000010000011010011001
+11011111001000000000000000000110
+11011000110000000000000111100111
+00100000010000000111110111001100
+01101111001000010000000111101001
+00011010001000100000110000000000
+00100000010000000111110111001100
+01100111111000010000011010011001
+00100000011000000000000000000000
+01101111111000001000001000011100
+11000000001011010110101000111100
+11011010001000001010101001010101
+01101111111000010000000111100111
+10011010001001100111110000000000
+00100100001000101110101000111110
+11011010001000000101010110101010
+01101111111000010000000111101001
+10011010001001100111110000000000
+00100100001000101110101000111110
+01101111111000010000000111101011
+01101000010010010000011010011001
+10011000010001100111110000000000
+00100100001000101110101000111110
+01111001001000000010001000001111
+00100000001000000110100111110001
+01110000000000011101110100000000
+00100000011000000000000000000000
+00011111111000010111111011111111
+00011111111100011111111000000000
+01100111111000001100001111001011
+00100000001000000110101001011001
+01101111111100010000000101000011
+00100100001110100110101001000000
+00100000010000000110101001011001
+01101111111000010100001111001011
+00100000011110100000000000000000
+00100000010000000110101001001011
+00100000001000000010001110111010
+01101111111000001100001111001011
+00100000011110100000000000000000
+00011111111000010000010000001111
+01100000010010001100001111001011
+00011111111100011111111000000000
+10011000010000101111111000000000
+11000000100001111110101111000010
+00100000001000000110101110001101
+01101111111000001000001000011001
+00100100010110100010001111100000
+01101111111000001000001000011010
+00100000011110100000000000000000
+01100111111000001100000011001001
+00100000001000000010001111100100
+01111000010101000111110000000000
+01101111111000001100001111001010
+11000100000000011000000000000000
+00100000010000000110101010101101
+11011111111000000000111111110000
+10011010010000001010010000000000
+00011000000000000111001000010000
+11011010001000000000000111101101
+00100000010000000110101101110100
+01110000100000000000011000001000
+11011000110000000000000111101101
+00100000010000000111001101011111
+11011000101000000000000111101101
+00100000010000000111110010011001
+00100000001000000111110110111010
+01110000100000000101000000100101
+00100000010000000110101100111010
+11011010010000000000000000000000
+00011000000000000111001000001011
+11011010001000000100001111001000
+00100000010000000110101101110101
+01101110111000101100001111001000
+01101111111000001100001111001010
+11000011000000100110101001111000
+01110000100000000110111100000111
+01101111111100001000000101011110
+11000000100000111110101001110010
+01101111111100001000000101100000
+00011111111100100111111000000000
+01100111111100001000000001101111
+00100000001000000110101001111011
+00100000010000000110101011110101
+00100000010000000111110101110110
+00100000010000000111110101110100
+01100110111000101100001111001000
+00100000010000000110101010101101
+11011111111000000000111111010000
+10011010010000001010010000000000
+11011111001000000000000000100000
+11011010001000000000000111111101
+00100000010000000110101101110100
+00100000010000000110101001010011
+00100000010000000110101001000100
+01101111111000001100001111001010
+11000011000000011110101010001111
+01101000010010001100001111001100
+11011111111000000000000000000000
+01111001001000000111111000000110
+01111001001000000111111000000111
+10011000010000010010001000000000
+00011010001001100111110000000000
+00100000001000101110101011110001
+10011010001001100111110000000000
+00100000001000101110101011110001
+01110000000000000011000000000000
+11011010011000000110101100011110
+00100000010000000110101011100101
+00100100001000010110101011110001
+01101111111000010100001111001000
+00100000001110100110101010011100
+00100000010000000110101000000001
+00100000010000000110101000010001
+00100100001101101110101010011100
+01101111111000001000000111011101
+00101111111000000000011000000011
+00100100001000001110101010010001
+00100000010000000110101010101010
+00100000010000000110101100110111
+01110000000000000011000000000000
+00100000010000000110101011100101
+00100100001000010110101011110001
+00100000010000000110101011010111
+00100000010000000110110011000100
+01101111111000001100001111001010
+11000010100000010110101010111101
+00100000010000000110101011011111
+00100100001101101110101010110100
+01101111111000001000000111011101
+00101111111000000000011000000011
+00100100001000001110101010011110
+00100000001000000110101010111101
+01011000000000000000000111111111
+11011111101000000000000000000000
+00100000011000000000000000000000
+11011010010000000001000000000000
+01101111111100001000000101000100
+11000010100000111110101010110010
+01101111111000001100001111001100
+11000100000000111000000000000000
+11011010010000000000000000000000
+00100000011000000000000000000000
+00100000010000000110110011000001
+01101111111000001100001111001010
+11000010100000010110101010111101
+00100000010000000110101011011111
+00100100001101101110101010111101
+01101111111000001000000111011101
+00101111111000000000011000000011
+00100100001000001110101010011110
+00100000001000000110101011001101
+01110000000000000011000000000000
+00100000010000000110101011100101
+00100100001000010110101011110001
+01101111111000001100001111001010
+11000010100000001110101011001101
+00100000010000000110110000100000
+00100000000000000000000011001000
+00100000010000000110110000101111
+00100000000000000000000001100100
+11011010011000000110110001101100
+00100000010000000110100111111100
+00100000010000000110101000010001
+00100100001101101110101011001101
+01101111111000001000000111011101
+00101111111000000000011000000011
+00100100001000001110101010111110
+00100000010000000110101011010001
+01101111111000001100001111001010
+11000100000000000000000000000000
+00100000001000000110100010000010
+11011000101000000000000111101101
+00100000010000000111110010011001
+00011000000000000111000000000100
+00100000010000000111001101110000
+01110000100000000101000000100001
+00100000011000000000000000000000
+01101111111000001100010000101001
+01101000010010001100010000101000
+10011000010001100111110000000000
+00100100001000101110110010111100
+01110000010001000010011100000100
+01110000010001000010100000010111
+01110000010001000010100100010110
+00100000001000000110110010111100
+01011000000000000000000000000000
+01100111111000010000000111100000
+11011010011000000110110011100111
+00100000010000000110110010100101
+00100000010000000110100111111100
+00100000001000000110101000010001
+00100000010000000110101011101011
+01101111111000001000000000110000
+00011111111000001111111000000001
+00011111111001100111110000000011
+01100111111000001000000000110000
+00100000011000000000000000000000
+01101111111000001000000000110000
+00100000011110100000000000000000
+01101111111000001000001000011011
+00100000011110100000000000000000
+00011111111000100111001000000000
+00100000001000000111110010010110
+00100000010000000110101011010001
+00100000010000000110100111100110
+00100000010000000111110101111100
+00100000011000000000000000000000
+00011111111000010111111011100000
+00011111111000110111111000000000
+01100111111100001000000001101111
+01011000000000000000000000000001
+11011000110000000100001111001101
+11101000010000010000000000000110
+01100000010110010000000001001100
+01100111111100001000000000100000
+00011111111000111111111000000000
+11000011000000011110101011111010
+00100000011000000000000000000000
+01101111111000001000000111011101
+00011111111000111111111000000000
+01111001001000001111111000000000
+00101010001011000000000000001111
+00100000011000001000000000000000
+01100111111000001000000111011101
+00100000011000000000000000000000
+01101111111100001000000001101111
+11000100000000111000000000000000
+00100000001000000110101100001101
+01101111111100001000000100101000
+10101111111011111111111111111111
+00100000011000001000000000000000
+01101111111100001000000100001000
+11000011000000001110101100001010
+00100000010000000111001011010100
+00100000001000000110101100001010
+01101111111000010100000011110000
+00100000011110100000000000000000
+01110000100000000010001110000000
+01110000100000000010001000000000
+01110000100000000010010000000000
+01101000010010010100000011110010
+00011000010010111111001000000000
+10011000000000000000110000000000
+11101111111000001000000000000110
+01100111111100001000000000100101
+11000010000000000110101100011001
+01110000100000000010001100000000
+00100000011000000000000000000000
+00011000010000100111001000000000
+01101111111000010000000111100000
+10011000010000001000010000000000
+01100000010010010000000111100000
+10011000000000000010010000000000
+00011010001000100101110000000000
+01110000100000000000011000010000
+00100000010000000110101101110100
+00011101110000100010001000000000
+00101010001011000000000000001111
+00100000011000001000000000000000
+00100000010110100111110111000110
+00100000001000000110101100000000
+01110000100010101100100000000001
+00100000000000000000000100101100
+01110000100010101100100000000101
+00100000000000000000000001100100
+01110000100010101100100000100101
+00100000000000000000001111101000
+01110000100010101100100000100111
+00100000000000000000000100101100
+00100000011000000000000000000000
+00100000010000000110101100101011
+01110000100010101100100000111111
+00100000011000000000000000000000
+01110000100000000100011110000011
+01110000100010101100100000000000
+00100000011000000000000000000000
+00100000010000000110101100101011
+01110000100000000100011110000010
+00100000000000000000000000001100
+01110000100000000100011110000000
+01110000100000000100011110000010
+00100000000000000000000010010110
+00100000011000000000000000000000
+00011010010010011010010000000000
+01100010010100010000000001000100
+01110000100000000100011000000000
+00100000011000000000000000000000
+01000100111000100100000000011000
+00100000010000000110101100110100
+00100000010000000110101101000001
+00100000010000000110101100111011
+11101000010000001000000000010001
+00011010001000001010001000000001
+00011000000000000000111000000000
+10101000010011000000000000000000
+00100000001000001110101101101100
+01101111111100001000000001000110
+01111001001000000111111000000110
+01111001001000000111111000000111
+01100111111100001000000001000110
+01110000100000000100011100000010
+01110000100000000100011110000010
+01111001001111111111111000000111
+01100111111100001000000001000110
+01110000100000000100011110001010
+00100000000000000000000000001011
+01110000100000000100011111001010
+00100000000000000000000000100001
+01110000100000000100011101001010
+00100000000000000000000000101100
+01110000100000000100011111001010
+00100000000000000000000000010110
+01110000100000000100011110001010
+00100000000000000000000000100001
+01110000100000000100011110000010
+00100000000000000000000000000001
+01110000100000000100011110010010
+00100000000000000000000000001010
+01110000100000000100011110110010
+01101111111100001000000000000111
+01110000100000000100011110010010
+00100000000000000000000000000001
+01110000100000000100011110000010
+00100000000000000000000000000001
+10101111111011000000000000000000
+00100000001000001110101101001100
+01101111111100010000000001000100
+00011111111000001111111000000001
+01100111111100010000000001000100
+00011000111000001000111000000001
+00101000111000000001111000001000
+00100100001000001110101101001100
+11000010000000000110101101001001
+00100000001000000110101100111000
+01000100111000101100000000011000
+00100000010000000110101101000001
+01110000100000000100011110100010
+00011010010000001010010000001000
+11011000111000000000000000000000
+01011111111111111111111111111111
+01101000010110001000000000000111
+11100000010000001000000000010001
+10011000010011000111111000000000
+01110000100000000000011000100000
+01100010010100010000000001000100
+00101010001011111111111000001111
+00100000001000001110101110000011
+00011010001000001010001000000001
+00100000001000000110101110001001
+00100100001101000110101110001001
+00011000111000001000111000000001
+00101000111000000001111000000000
+00100100001000001110101110001001
+00100000010000000111001011010100
+01110000100000000000011000010000
+00011010010000001010010000001000
+11000010000000000110101101111010
+01110000100000000100011110000010
+00100000011000000000000000000000
+01101111111000001100001111001011
+11000000000001010110101110011110
+11000000000000100110101110011111
+11000000000001000110101110100011
+11000000000001001110101110100111
+11000000000000110110101110100111
+11000000000001100110101110011110
+11000000000001101110101110110001
+11000000000001110110101110101011
+11000000000001011110101110011001
+11000000000001111110101110011101
+00100000001000000110101111000010
+11011111111000000100001110110010
+11011000010000000110100001011000
+00100000010000000110101110110111
+00100000001000000110101110101110
+00100000001000000110101110101110
+00100000001000000110101110111111
+11011111111000000101000010011001
+11011000010000000110100001011000
+00100000010000000110101110110111
+00100000001000000110101110101110
+11011111111000000100001110110010
+11011000010000000101001111011100
+00100000010000000110101110110111
+00100000001000000110101110101110
+11011111111000000100001110110010
+11011000010000000100011101110000
+00100000010000000110101110110111
+00100000001000000110101110101110
+11011111111000000100011110110111
+11011000010000000110100001011000
+00100000010000000110101110110111
+11011111111000000011011100101000
+11011000010000000100001010010010
+00100000001000000110101110111100
+11011111111000000100011110110111
+11011000010000000110100001011000
+00100000010000000110101110110111
+11011111111000000010101011001011
+11011000010000000011000100001101
+00100000001000000110101110111100
+00011000010100000000010000000000
+10011000010000011111111000000000
+00100000001000000010001111001111
+11011111111000000010101110001111
+11011000010000000011000100001101
+00011000010100000000010000000000
+10011000010000011111111000000000
+00100000001000000010001111010110
+11011111111000000011000100010010
+11011000010000000011011011011111
+00100000001000000110101110111100
+00100000010000000110101110111111
+11011111111000000010101110001111
+11011000010000000011000100001101
+00100000001000000110101110110111
+01000100111000110100000000011000
+01101111111000001100001111110101
+01100111111100001000000010000000
+01101111111000001100001111110110
+01100111111100001000000010000001
+01011000000000000000000111011110
+01100111111100010000000010000100
+01011000000000000000000111100011
+01100111111100010000000010000110
+00100000001000000110100111011100
+01111001001000000111111000000111
+01100111111000010000000111011110
+01000100111000111100000000011000
+01110000100000001000001000000010
+01110000100000001000100000000000
+01110000100000000000011000000010
+00100000001000000110101111100000
+00011000000000000000010000000001
+01100111111000001000000111011110
+01000100111001000100000000011001
+01110000100000001000001000000001
+01100000010110010000000010001000
+01110000100000000000011000000010
+00100000010000000110101111100000
+01101111111000001000000111100011
+00100000011000000000000000000000
+00100000000000000000000000000101
+01101111111100001000000100101000
+11000011000000011110101111100000
+00100000011000000000000000000000
+01111000010101000111110000000000
+00011111111000100010010000000000
+01101111111000001100010000100000
+11000001100000000000000000000000
+01111000001101000111110000000000
+00011010010000100111111000000000
+00100000001000000110101111110010
+01101111111000001100010000100000
+11000000000000001110101111110010
+11000000000000010110101111111000
+11000000000000011110110000000000
+11000000000000100110110000000100
+11000000000000101110110000001011
+00100000011000000000000000000000
+01100111111000011100010000011001
+00011010001000100111111000000000
+01100111111000010100010000011100
+01100000010010010100010000011110
+01110000010001000010000000000010
+00100000001000000110110000100000
+00100000010000000110110000100000
+01110000010001000010000000000011
+00100000010000000110110000100110
+11011010001000000000000111011110
+01110000100000001000001000000100
+01101111111000011100010000011001
+11011000010000000000000000100000
+00100000001000000110110001000000
+00100000010000000110110000100000
+00100000010000000110110001100011
+01110000010001000010000000000100
+00100000011000000000000000000000
+01000100111001001100000000011001
+00100000010000000110110000100000
+01110000010001000010000000000101
+00100000010000000110110000100110
+00100000010000000110110000011000
+00100000010000000110110000111100
+00100000001000000110110000010011
+00100000010000000110110000100000
+00100000010000000110110000100110
+01011000000000000000000000000101
+00100000010000000110101111010111
+11000011100000000000000000000000
+01110000010001000010000000000000
+01101111111000010100001111100111
+00100000001000000111110101111001
+01101111111000100000011001111000
+01101000010010010100010000011100
+00011000010000001000010111111100
+11100111111000100000000000000010
+00100000011000000000000000000000
+01101000010010010100010000011100
+00011000010000100010001000000000
+00011000010000001000010111111100
+11101111111000100000000000000010
+01100111111000100000011001111000
+01101000010010010100010000011110
+01101111111000011100010000011001
+00100000011000000000000000000000
+01000100111001010100000000011001
+00100000010000000110110010001011
+00100000010000000110100111011100
+01011000000000000000000000000000
+01100111111000100000000111011110
+00100000011000000000000000000000
+01110000000000011101111000000110
+01011000000000000000000000000000
+01100111111100010000000010001000
+01011000000000000000000000000001
+01100111111100010000000010000010
+01011000000000000000000111011110
+01100111111100010000000010000100
+01110000100000000000011000000010
+00100000001000000110101111100000
+01110000000000011101111010101011
+00100000001000000110110000100111
+01110000000000011101111010111001
+00100000001000000110110000100111
+01100111111000011000011001110000
+01100000010010010000011001111000
+01100010001000010000011010000100
+01000111010110101100000000110110
+00100000010000000110110000100110
+01101111111000011000011001110000
+01101000010010010000011001111000
+01101010001000010000011010000100
+00100000001000000110110000111100
+00011000010000001000010000000100
+01100000010110010000000010000010
+11011000010000000000000000000010
+00011010001000001010001111111100
+11100000010000001000000000010001
+00011111111100010000010000000000
+11100000010000001000000000000101
+00011111111011001000010000000000
+11100000010000001000000000000101
+11100111111000001000000000000101
+00011010001000100111111000000000
+01100111111100010000000010000100
+01011000000000000000000000000000
+01100111111100010000000010001000
+01110000100000000000011000000010
+00100000010000000110101111100000
+00100000001000000110110001100011
+01100000010110010000000010001000
+00011111111100010000010000000000
+01100000010010001000000111011111
+00011111111011001000010000000000
+01100000010010001000000111100000
+01100111111000001000000111100001
+01011000000000000000000000000100
+01100111111100010000000010000010
+01110000000000011101111000000011
+01011000000000000000000111011110
+01100111111100010000000010000100
+00011010001000100111111000000000
+01100111111100010000000010000110
+01101111111100001000000010000000
+00101010001011000000000000001111
+01111001001000001111111000000110
+01100111111100001000000010000000
+01110000100000000000011000000010
+01101111111100001000000100101000
+11000010100000111110110001011111
+11011000111000000000000000000011
+00100000001000000110101111100000
+01011000000000000000011111010000
+00100000010000000010001101011100
+00100000010000000110110000100110
+01011000000000000000000111100011
+01100111111100010000000010000110
+01011000000000000000000000000101
+00100000010000000110101111010111
+11000010100000000110110001100011
+00100000011000000000000000000000
+01100000010110010000000010001000
+01011000000000000000000000000100
+01100111111100010000000010000010
+01110000000000011101111000000011
+01011000000000000000000111011110
+01100111111100010000000010000100
+00011010001000100111111000000000
+01100111111100010000000010000110
+01101111111100001000000010000000
+00101010001011000000000000001111
+01111001001000001111111000000110
+01100111111100001000000010000000
+01110000100000000000011000000010
+01101111111100001000000100101000
+11000010100000111110110001111001
+11011000111000000000000000000011
+00100000010000000110101100000111
+00100000010000000110101111100000
+00101111111011111111111000000010
+00100000010000000110101100000000
+01101111111000001000000111011111
+00011111111100000010010000000000
+01101111111000010000000111100000
+00011111111100001111111000000000
+10011010010000011111111000000000
+10011000010000001111111000000000
+01100111111000001000000111100001
+00011111111011001111111000000000
+00011111111100001111111000000000
+01100111111000010000000111011111
+00100000011000000000000000000000
+01101111111000001100010000100001
+01101000010010001100010000100011
+10011000010001100111110000000000
+00100100001000101110110010010000
+00100000010000000110110010011100
+01101111111000001100010000100001
+11011000010000000000000000100000
+00100000010000000110111100100001
+01101111111000001100010000100100
+11011000010000000000000000100001
+00100000010000000110111100100001
+01101111111000001100010000100010
+11011000010000000000000000100010
+00100000010000000110111100100001
+01101111111000001100010000100011
+11011000010000000000000000011111
+00100000001000000110111100100001
+01110000010001000010000100000001
+01110000010001000010001000000011
+01110000010001000010001100000000
+01110000010001000010010000000010
+01110000010001000010010100001011
+01110000010001000010011000001010
+00100000011000000000000000000000
+01110000100000000001000000000001
+00100000011000000000000000000000
+01110000100000001000101100000101
+01110000100000001000110000000111
+01110000100000001000110100000111
+01110000100000001000111000000111
+01110000100000001000111100000111
+01110000100000001001000000000101
+01110000100000001001000100000000
+00100000011000000000000000000000
+01110000100000001000101100001100
+01110000100000001000110000001101
+01110000100000001000110100001101
+01110000100000001000111000001101
+01110000100000001000111100001101
+01110000100000001001000000001100
+01110000100000001001000100000000
+00100000011000000000000000000000
+00100000010000000110110011011000
+01101111111000001100010000101000
+11011000010000000000000001101100
+00100000010000000110111100100001
+01101111111000001100010000101001
+11011000010000000000000001101101
+00100000001000000110111100100001
+00100000010000000110110011011111
+00100000001000000110110010110110
+01101111111100001000000100101000
+11000011000000101110110010111110
+00100000011000000000000000000000
+01111001001000000000000000101000
+01110000010000111111010000001000
+00100000011000000000000000000000
+01111001001111111000000000101000
+01110000010000111111010000100000
+00100000011000000000000000000000
+01101111111000001100001111101011
+10011010010000001111111000000000
+01100111111000001000000111100000
+00100000001000000110110011001110
+01101111111000010000000111100000
+00011111111100001111111000000000
+01100111111000001000000111100000
+01011000000000000000000000000011
+01100111111100010000000010010010
+01110000000000011101111110100000
+01110000000000011110000110100001
+00100000001000000110110011101101
+01100000010010010000011001111000
+00100000010000000110110011011000
+01101000010010010000011001111000
+00100000010000000110110100000111
+00100000001000000110110011011111
+01101111111000001100010000100111
+11000001011111111000000000000000
+11000011000000110110110011011101
+01011000000000100100100111110000
+00100000010000000010001101011100
+01101000010010001100010000100111
+00100000001000000110111011110111
+01101000010010001100010000100111
+00100000001000000110111011110011
+01000100111001011100000000011001
+11000101000101000110110011000111
+01101111111000010100001111101011
+10011010010000001111111000000000
+00011111111100001111111000000000
+01100111111000010000000111100000
+01000100111001100100000000011001
+11000101000101000110110011001011
+01011000000000000000000000000100
+01100111111100010000000010010010
+01110000000000011101111110100000
+01110000000000011110001010100001
+01011000000000000000000111011111
+01100111111100010000000010010100
+01100000010110010000000010011000
+01100010001100010000000010010110
+01011000000000000000000000000010
+00101010001011000000000000001111
+01111001001000001111111000000000
+01100111111100001000000010001010
+01110000100000000000011000000100
+11011000111000000000000000000101
+00100000010000000110101100000111
+00100000010000000110110010111110
+00101111111011111111111000000100
+00100000010000000110101100000000
+11000101000101000110110100000010
+01101111111000010000000111100000
+00011111111100001111111000000000
+10011000010000001111111000000000
+00011111111100001111111000000000
+01100111111000010000000111100000
+00100000011000000000000000000000
+01101111111000001000000111100000
+10011000010000001111111000000000
+00011111111100001111111000000000
+01100111111000010000000111100000
+00100000011000000000000000000000
+01101111111000010100001111101011
+10011010010000001111111000000000
+01100111111000010000011001110000
+01000100111001101100000000011001
+01100000010010010000011001111000
+01100010001000010000011010001111
+00100000010000000110110100011100
+01101000010010010000011010001000
+01101010001000010000011010001111
+01101111111000010000011001110000
+00100000010000000110110100111101
+01101111111000010000011010001000
+01101000010010010000011010001111
+10011000010000001000010000000000
+01100000010010010000011010001111
+01101000010010010000011001110000
+10011000010000001000010000000000
+01100000010010010000011001110000
+01101111111000010000011001111000
+00100100001110100110110100001101
+00100000011000000000000000000000
+01000100111001110100000000011001
+01101111111000001100001111110100
+00011111111000001111111111111111
+01101000010010010000011001110000
+10011000010000011111111000000000
+00011111111000001111111000000001
+01100111111000011000011010001100
+01101111111000010000011001111000
+10011000010000001111111000000000
+01101000010010011000011010001100
+10011000010001100111111000000000
+00100100001000010110110100101110
+01100111111000010000011001111000
+01101111111000011000011010001100
+01101000010010010000011001110000
+10011000010001100111111000000000
+01100111111000010000011010001000
+00100000011000000000000000000000
+01101111111000010000011001111000
+01100111111000010000011010001000
+01011000000000000000000000000000
+01100111111000010000011001111000
+00100000011000000000000000000000
+00011010010000100111111000000000
+00011000010000001000010000000010
+01100000010110010000000010010010
+00011010001000001010001111111110
+11101000010000011000000000010001
+00011000010000100010010000000000
+11011000010000000000000010100000
+11100000010000001000000000010001
+11100111111000001000000000000101
+00100000001000000110110101001010
+00011111111000100010010000000000
+01000100111001111100000000011001
+11000101000101000110110100110011
+00011010010000100111111000000000
+00011000010000001000010000000011
+01100000010110010000000010010010
+00011010001000001010001111111101
+11101000010000011000000000010001
+00011000010000100010010000000000
+11011000010000000000000010100000
+11100000010000001000000000010001
+00011111111100001111111000000000
+11100111111000010000000000000101
+01100010001100010000000010010100
+01011000000000000000000000000000
+01100111111100010000000010011000
+01110000100000001000101000000001
+01110000100000000000011000000100
+00100000010000000110110010111110
+11100010010000011000000000010001
+01000100111010000100000000011010
+01110000000000011110001000000000
+01011000000000000000000000000001
+01100111111100010000000010010010
+01110000000000011101111110100000
+01011000000000000000000111011111
+01100111111100010000000010010100
+01011000000000000000000000000000
+01100111111100010000000010011000
+01100111111100010000000010010110
+01011000000000000000000000000011
+01100111111100001000000010001010
+01110000100000000000011000000100
+00100000010000000110110010111110
+01101111111100001000000100101000
+11000100000000110000000000000000
+00100000000000000000010111011100
+01101111111000001000000111100010
+00011111111000001111111000000001
+01100111111000001000000111100010
+00011111111001100111110000101000
+00100100011000010000000000000000
+00100000001000000110110101010011
+00100000010000000111110110111010
+00100000001000000110110101101010
+00011111111100010000010000000000
+00100000010101000110110110001110
+00011111111011110111111000000000
+00011111111100010000010000000000
+00100000010101000110110110001010
+01101111111100010000000001010000
+01111001001111111111111000001111
+01100111111100010000000001010000
+00100000011000000000000000000000
+01100111111100010000000001010010
+00100000011000000000000000000000
+00100000010000000110110101110111
+00100000001000000110110101110011
+00100000010000000110110101111100
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+00100000011000000000000000000000
+01101111111100001000000001000011
+11000011000000000110110110000000
+01011010110111000110110000000000
+00100000011000000000000000000000
+01011001011011100011011000000000
+00100000011000000000000000000000
+01101111111100001000000001000011
+00011111111000010111111011111110
+01100111111100001000000001000011
+00100000011000000000000000000000
+01101111111100001000000001000011
+00011111111000011111111000000001
+01100111111100001000000001000011
+00100000011000000000000000000000
+01100111111100010000000001011010
+01100111111100010000000001011110
+01100000010110010000000001011100
+00100000011000000000000000000000
+01100111111100010000000001010100
+01100111111100010000000001011000
+01100000010110010000000001010110
+00100000011000000000000000000000
+01101001010100010000000001011010
+01101010000100010000000001011100
+01101000011100010000000001011110
+00100000011000000000000000000000
+01101001010100010000000001010100
+01101010000100010000000001010110
+01101000011100010000000001011000
+00100000011000000000000000000000
+01100000011100010000000001011110
+00100000011000000000000000000000
+01100000011100010000000001011000
+00100000011000000000000000000000
+00100000010000000110110110010110
+01101111111100010000000100010010
+10011000011000001000011000000000
+00100000001000000110110110011100
+00100000010000000110110110100110
+00100000001000000110110110010010
+00100000010000000110110110011010
+00100000001000000110110110101010
+01100000011000010000011010010111
+01100001010000010000011010010101
+01100010000000010000011010010011
+00100000011000000000000000000000
+01101000011000010000011010010111
+01101001010000010000011010010101
+01101010000000010000011010010011
+00100000011000000000000000000000
+01101111111100010000000100001110
+00100100001110100110110110101110
+00100000011000000000000000000000
+00011111001000100111111000000000
+00100000011110100000000000000000
+00011111001000001111001111111000
+00100000010000010110110110111110
+00100000011000101000000000000000
+00100000001000010110110110110011
+00011111001000001111001000001000
+00011111001000001111001111111100
+00100000010000010110110111000001
+00100000011000101000000000000000
+00100000001000010110110110111000
+00011111001000001111001000000100
+00100000001000000110110111000100
+11101111111001000000000000000110
+11100111111001000000000000000011
+00100000011000000000000000000000
+11101111111000100000000000000110
+11100111111000100000000000000011
+00100000011000000000000000000000
+00011111001000100111111000000000
+00100000011110100000000000000000
+11101111111000001000000000000110
+11100111111000001000000000000011
+11000010000000000110110111000110
+00100000011000000000000000000000
+00011111001000100111111000000000
+00100000011110100000000000000000
+00011111001000001111001111111000
+00100000010000010110110111010111
+00100000011000101000000000000000
+00100000001000010110110111001100
+00011111001000001111001000001000
+00011111001000001111001111111100
+00100000010000010110110111011010
+00100000011000101000000000000000
+00100000001000010110110111010001
+00011111001000001111001000000100
+00100000001000000110110111011101
+11101111111001000000000000000011
+11100111111001000000000000000101
+00100000011000000000000000000000
+11101111111000100000000000000011
+11100111111000100000000000000101
+00100000011000000000000000000000
+00011111001000100111111000000000
+00100000011110100000000000000000
+11101111111000001000000000000011
+11100111111000001000000000000101
+11000010000000000110110111011111
+00100000011000000000000000000000
+01110000000001100110111100111101
+00100000001000000111100000101011
+01000100111010001100000000011010
+01101111111000001100001111111010
+00100000011110100000000000000000
+00100000010000000110111010000111
+00100000010000101110111010001101
+00100000010000000111110111000000
+00100000010000000110111000011000
+01101111111000001100001111111010
+00011111111000100010011000000000
+01101000010010010100001111111000
+01100000010010010000000000110011
+00011010011000100111111000000000
+00100000001110100110110111100011
+00011010011000001010011111111111
+00011000010000100010001000000000
+11101111111000001000000000010001
+01101000010010001000000000110001
+10011000010001100111110000000000
+00100000010000101110111000000000
+00100000001000010110110111111100
+11101111111000001000000000010001
+00011111111000001111111000000001
+11100111111000001000000000010001
+01101000010010010000000000110011
+00011000010000001000010000100010
+01100000010010010000000000110011
+00100000001000000110110111110000
+01011000000000000000000000000000
+11100111111000001000000000010001
+01101111111000001000000000110010
+11100111111000001000000000000101
+11000000100110011110111000001101
+11101111111000110000000000000110
+11100111111001000000000000000101
+01011000000000000000000000000000
+11100111111001000000000000000101
+00011010010000100000110000000000
+00100000010000000111110010001111
+00011000000000000111110000000001
+00100000011000000000000000000000
+11000000000110110110111000010001
+11000000000110111110111000010101
+11011010010000000100001010001010
+00100000001000000110111000000101
+11011000110000000100001100001101
+00100000010000000111110010001111
+11011000110000000100001010001010
+00100000001000000110111000001010
+11011000110000000100001100000101
+00100000010000000111110010001111
+00100000001000000110111000010011
+01000100111010010100000000011010
+00100000010000000111110110111100
+01101111111000001100001111111010
+00100000011110100000000000000000
+01000100111010011100000000011010
+01101111111000010100010011101001
+11000100000001001000000000000000
+01101111111000001100001011001011
+11000000000000000110111000110100
+01101111111000001000000101111101
+00101111111000011000000011000000
+00100000001000001110111000100111
+00101111111000011000000001000000
+00100000001000001110111000111001
+00100000001000000110111000101110
+00100000001101100110111000101011
+01101111111000001100001011000010
+11000011000000001110111000110100
+00100000001000000110111000101110
+00100000010000000110111000110100
+00100000011101000000000000000000
+00100000001000000110111000101110
+01101111111000001100001011111110
+11000010100000111110111000110001
+00100000001000000110111000110111
+01101111111000110000000101111000
+01100111111001000100001100000101
+00100000001000000110111000110111
+01110000000000000011001000110101
+01101111111000110000000101111000
+00100000001000000110111000111011
+01110000000000000011001000110111
+00100000001000000110111000111011
+01110000000000000011001000110110
+00100000001000000110111000111011
+01000100111010100100000000011010
+01101111111000010100001111111000
+11101000010000001000000000111111
+00011111111000001111111000000001
+01100111111000010000000000110011
+01100000010010001000000000110001
+01101111111000001100001111111010
+00011111111000100010011000000000
+01101111111000010000000000110011
+00011111111000100010001000000000
+00100000010000000110111001010011
+00100000011101000000000000000000
+01101000010010010000000000110011
+00011000010000001000010000100010
+01100000010010010000000000110011
+00011000010000001000010111111111
+11101111111000001000000000000010
+01100111111000001000000000110001
+00011010011000001010011111111111
+00100100001000101110111001000011
+01101111111000001100001111111010
+00011111111000001111111111111111
+01100111111000001000000000110001
+00100000011000000000000000000000
+01101111111000001000000000110010
+11000000100110011110111001011010
+11011010010000000000000000110010
+11011111001000000000000000000111
+00100000010000000111110101100100
+00100000001000101111110110111010
+00100000011000000000000000000000
+11000000000110110110111001011101
+11000000000110111110111001111000
+00100000001000000110111001010101
+11101000010000001000000000010001
+10011000010001100111110000000000
+00100100011000101000000000000000
+11011000101000000000011010100001
+11011111001000000000000000010000
+00100000010000000111110010100001
+01101111111000011000000101111011
+01100111111000011000011010100001
+00100000010000000110111001101111
+01101111111000010000011010111110
+00011111111100001111111000000000
+00011111111011010000010000000000
+11101111111000001000000000000110
+10011000010000001111111000000000
+01101000010010011000000101111000
+10011000010001100111110000000000
+00100000001000101111110110111010
+00100000011000000000000000000000
+11011000110000000000011010100001
+00100000010000000111001101100001
+11101111111000001000000000010001
+00100000010000000111001101100010
+00011000000000000110110000111000
+00011000000000000110110000000000
+00100000010000000111001011001111
+11011000101000000000011010110001
+00100000001000000111001101110101
+11101000010000001000000000010001
+10011000010001100111110000000000
+00100100011000101000000000000000
+00011000110000100010001000000000
+00011000110000001010011000001000
+11011010010000000100001100000101
+11011111001000000000000000001000
+00100000010000000111110101100100
+00100000001000101111110110111010
+00011010011000100010001000000000
+11011010010000000100001100001101
+11011111001000000000000000001000
+00100000010000000111110101100100
+00100000001000101111110110111010
+00100000011000000000000000000000
+01101111111000010100001111111000
+11101000010000001000000000111111
+00011111111000001111111000100010
+11101111111000001000000000111111
+10011000010001100111110000000000
+00100000011000000000000000000000
+01101111111000001100001111111010
+00011111111000100111001000000000
+01101000010010010100001111111000
+01011000000000000000000000000000
+11100111111000001000000000000010
+00011000010000001000010000100010
+00011111111000001111111000000001
+11000010000000000110111010010001
+00100000011000000000000000000000
+00100000010000000111110110111110
+00100000010000000110111000011000
+00100100001101000110111010100001
+01101111111000010000000000110011
+00011111111000001000110000000001
+11011000101000000100001100001101
+00100000010000000111110010001111
+11011000101000000100001010001010
+00100000010000000111110010001111
+01110000010000101001101000000001
+00100000011000000000000000000000
+01110000010000101001101000000000
+00100000011000000000000000000000
+01110000000000000011001000110100
+00100000001000000110111010100101
+01101111111000001100001111001011
+11000000000001010110110111100101
+11000000000001000101110001000010
+00100000011000000000000000000000
+00011000010000010111111000011111
+00011111111000110111111000000000
+11011000101000000000000000010110
+10011000101000001000101000000000
+11011110000000000000000011110000
+00101000010011000000000000000000
+00100000011000001000000000000000
+11011110000000000000000000001111
+00100000011000000000000000000000
+01000100111010101100000000011010
+01111001001000000000010000000111
+00100000010000000110111011100110
+01111101001000001000010000000111
+01000100111010110100000000011010
+00011000010001100111110011111111
+00100000011000101000000000000000
+11011001000000000000000000000100
+00101000010011111111111000000111
+00100000001000001110111010111101
+11011001000000000000000000000010
+00100000010000000110111010101001
+00101000010011000000000000000000
+00100000001000001110111011000001
+00011001000100100001000000000000
+11101111111000001000000000000101
+10011110000000010111111000000000
+10011001000000011111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000100111010111100000000011010
+00011000010001100111110011111111
+00100000011000101000000000000000
+11011001000000000000000000000001
+00100000010000000110111010101001
+00101000010011000000000000000000
+00100000001000001110111011001110
+00011001000100100001000000000000
+11101111111000001000000000000101
+10011110000000010111111000000000
+10011001000000011111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000100111011000100000000011011
+00011000010001100111110011111111
+00100000011000101000000000000000
+00100000010000000110111010101001
+11101111111000001000000000000101
+10011110000000010111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+00100000010000000110111011010011
+00100000001000000110111011100000
+00011000010001100111110011111111
+00100000011000101000000000000000
+00100100010101011110111010110110
+00100000010000000110111100010100
+01011000000000000000000000000000
+00101000010011111111111000000111
+01111101001000001111111000000110
+01111001001000001111111000000111
+00100000001000000110111100001101
+01000100111011001100000000011011
+11011000101000001000000100011100
+00011000010000010000111000000111
+00011000010010010111111000000000
+00011111111000010111111000000011
+10011000101000001000101000000000
+11101111111000001000000000000101
+00101000010011111111111000000111
+00100000001000001110111011110001
+10101111111011000000000000000000
+00100000011000000000000000000000
+10101111111011111111111111111111
+00100000011000000000000000000000
+00011000010001100111110011111111
+00100000011000101000000000000000
+00101111110011111111111000000111
+00100000001000000110111011111010
+00011000010001100111110011111111
+00100000011000101000000000000000
+00101111110011000000000000000111
+01011000000000000000000000000000
+01111101001000001111111000000111
+10011000010000101000010000000000
+00100000010000000110111100010100
+01011000000000000000000000111111
+00101000010011111111111000000111
+01111001001000001111111000000000
+00100000001000000110111100001101
+00011000010001100111110011111111
+00100000001000101111110111000100
+00100000010000000110111100010100
+11101111111000001000000000000101
+11000010100000000110111100001001
+00101000010011000000000000000111
+00100000011000000000000000000000
+00101000010011111111111000000111
+00100000011000000000000000000000
+00100000010000000110111100010100
+01011000000000000000000011000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+00011000010001100111110011111111
+00100000011000101000000000000000
+00100000010000000110111100010100
+01011000000000000000000000000000
+00100000001000000110111100001101
+00011000010000010111111000111111
+00011111111001100111110000001111
+00100100001000010110111100011010
+11011000101000001000000001110000
+10011000101000001000101000000000
+00100000011000000000000000000000
+11011000101000001000000011010100
+00011111111000001111111111110000
+00100000001000000110111100011000
+00011111111000010000010011111111
+00011111111011001111111000000000
+00100000001000000110111100100001
+11000100000000111000000000000000
+00011111111000010111111000111111
+00011111111001100111110000001111
+00100100001000010110111100101000
+11011000101000001000000001110000
+10011000101000001000101000000000
+11100000010000001000000000000101
+00100000011000000000000000000000
+11011000101000001000000011010100
+00011111111000001111111111110000
+00100000001000000110111100100101
+00011000010000010000010000111111
+00011000010001100111110000001111
+00100100001000010110111100110010
+01011000000000001000000001110000
+10011000010000001000110000000000
+11101111111000001000000000000110
+00100000011000000000000000000000
+01011000000000001000000011010100
+00011000010000001000010111110000
+00100000001000000110111100101111
+11011111001000000000000000010000
+11011000110000001000000001110000
+00011000110000100000101000000000
+11101111111000001000000000000110
+11000000000011111110111101001000
+11000000000100000110111101001000
+11000000000100001110111101001000
+11000000000100010110111101001000
+11000000000100011110111101001000
+11000000000101100110111101001000
+11000000000101101110111101001000
+11000000000000000110111101001000
+11000010000000000110111100110111
+11011111111000001000000011011100
+10011000110001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000001000
+11011000110000001000000011010100
+00100000001000000110111100110111
+01011000000000000000000001000000
+11100111111000001000000000000101
+00100000001000000110111101000001
+01011000000000000000000010000000
+11100111111000001000000000000101
+00100000001000000110111101000001
+01000100111011010100000000011011
+00100000011101011000000000000000
+01110000100010100000011101110111
+01110000100010100000100011001001
+01110000100010100000101100000001
+01101111111000001100010000001001
+01100111111100001000000011001101
+00100000010000000110111110010111
+01110000100010100000100011000001
+11011111001000000000000000000111
+11011010001000000100010000010010
+01110000100010100000101000000101
+01101111111100001000101000001100
+11100111111000001000000000010001
+00011010001000001010001000000001
+01101111111100001000101000001010
+00011111111000001111111000100000
+01100111111100001000101000001010
+11000010000000000110111101011010
+01110000100010100000011100000000
+00100000011000000000000000000000
+01101111111100001000000011001100
+01111001001000000111111000000001
+01100111111100001000000011001100
+11011111001000000000000000000111
+11011010001000000100010000010010
+01110000100010100000101000010101
+11101111111000001000000000010001
+01100111111100001000101000001001
+00011010001000001010001000000001
+01101111111100001000101000001010
+00011111111000001111111000100000
+01100111111100001000101000001010
+11000010000000000110111101101001
+01101111111100001000000011001100
+01111001001111111111111000000001
+01100111111100001000000011001100
+00100000011000000000000000000000
+01000100111011011100000000011011
+01101111111001000000000111111101
+00100000001110100110111101111001
+01100111111001000100001111111101
+00100000011000000000000000000000
+01011000000000000000101110111110
+01100111111000010100001111111101
+01011000000000000000001111110000
+01100111111000010100010000000001
+01011000000000000000001001111110
+01100111111000010100001111111111
+01011000000000000000001111000100
+01100111111000010100010000000011
+00100000011000000000000000000000
+01000100111011100100000000011011
+00100000010000000110111101100011
+01101111111100001000101000001001
+01111001001111111111111000000111
+01100111111100001000101000001001
+01110000100010100000011101110111
+01110000100010100000100011000001
+01110000100010100000101100000001
+00100000010000000110111110010000
+01101111111000001100010000001001
+01100111111100001000000011001101
+00100000010000000110111110010111
+01110000100000001100110100000000
+00100000001000000110111110100001
+01101111111000001100010000001000
+00011111111100100111111000000000
+01101000010110001000101000001011
+00011000010000010000010000001111
+10011000010000011000010000000000
+01100000010110001000101000001011
+00100000011000000000000000000000
+01110000100000001100110000000011
+01101111111100001000000100101001
+11000011000000101110111110011000
+01101000010110010000000101100100
+01100000010010010100010000001010
+01110000100000001100110000000110
+01101111111100001000000100101001
+11000010100000101110111110011101
+01110000100000001100110000000000
+00100000011000000000000000000000
+01101111111000001100010000010001
+00100000011110100000000000000000
+01101111111100001000101000001001
+01111001001000000111111000000111
+01100111111100001000101000001001
+01101111111000001100010000001001
+01100111111100001000000011001101
+01101111111000010100010000001101
+01100111111100010000000011001110
+01101111111000010100010000001111
+01100111111100010000000011010000
+01110000100000001100110000001011
+00100000000000000000001111101000
+01110000100000001100110000000011
+00100000011000000000000000000000
+01000100111011101100000000011011
+01101111111000001100010000000111
+11000000000000001110111110110101
+11000000000000010110111110111011
+00100000011000000000000000000000
+01011000000000000000001111101000
+01100111111000010100010000000101
+01101000010010010100010000000011
+01101111111000010100001111111111
+11011010011000000000011111010000
+00100000001000000110111111000000
+01011000000000000000011111010000
+01100111111000010100010000000101
+01101000010010010100001111111101
+01101111111000010100010000000001
+11011010011000000000001111101000
+10011000010001100010001000000000
+01101111111000010100010000001010
+10011000010001100111111000000000
+00100100001000010110111111001101
+01101000010010010100010000000101
+10011000010011111010010000000000
+00011010011000100111111000000000
+10011010001011111111111000000000
+10011010010000001111111000000000
+10011010001001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+00100000011000000000000000000000
+00011000010000100111111000000000
+01101000010010010100010000001010
+10011000010001100111111000000000
+01101000010010010100010000000101
+10011000010011111010010000000000
+00011010011000100111111000000000
+10011010001011111111111000000000
+10011010010001100111111000000000
+00100100001000010111110111001010
+00100000001000000110111111001001
+11101111111001000000000000010001
+01100111111001000000011001110000
+01101111111000010000011001110000
+01101000010010010000011001110010
+10011000010001100010001000000000
+01101111111000010000011001110110
+10011000010001100010010000000000
+01101000010010010000011001110100
+10011000010001100111110000000000
+00100100010000010110111111100111
+00011010010011111111111001100100
+10011010001001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+00100000010110100110111111101111
+00100000011000000000000000000000
+01101111111000001100010000001100
+01111001001000000111111000000000
+01100111111000001100010000001100
+00100000011000000000000000000000
+01101111111000001100010000001100
+01111001001111111111111000000000
+01100111111000001100010000001100
+00100000011000000000000000000000
+01101000010010001100010000001100
+01111001001000000000010000000001
+01100000010010001100010000001100
+00100000011000000000000000000000
+01101000010010001100010000001100
+01111001001111111000010000000001
+01100000010010001100010000001100
+00100000011000000000000000000000
+01101111111000010100010000101100
+11101111111000001000000000111111
+00100000011110100000000000000000
+00011111111000100111001000000000
+01101111111000010100010000101100
+00011111111000001111111000000011
+00011111111000100010001000000000
+11101000010000001000000000010001
+00100000010000000110111011011101
+00011010001000001010001000000001
+11000010000000000110111111111110
+00100000011000000000000000000000
+01101111111000010100010000101100
+00011111111000001111111000000011
+00011111111000100010001000000000
+00011000000000000010010000000000
+01011000000000000000000000000000
+01100111111000010000011011110001
+11101000010000001000000000010001
+00100000010000000110111011100110
+01000100111011110100000000011011
+01101111111000010000011011110001
+00011010010000100000111000000000
+11111001001000001111111000000000
+01100111111000010000011011110001
+00011010001000001010001000000001
+00011010010000001010010000000001
+01101111111000010100010000101100
+11101111111000001000000000111111
+10011010010000101111110000000000
+00100100001000101111000000001001
+01101111111000010000011011110001
+01101000010010010100010000101110
+10011000010000101111110000000000
+00100000011000101000000000000000
+00100000001000000111110110111010
+01101111111000010100010000101100
+11101111111000001000000000111111
+00100000011110100000000000000000
+00011111111000100111001000000000
+01101111111000010100010000101100
+00011111111000001111111000000011
+00011111111000100010001000000000
+11101000010000001000000000010001
+00100000010000000110111010110010
+00011010001000001010001000000001
+11000010000000000111000000100010
+00100000011000000000000000000000
+11011000111000000000000000001001
+00100000010000000111110011101111
+00100100011110100000000000000000
+01011000000000000000000000100000
+11011000111000000000000000001001
+00100000010000000111110011100001
+01111000010101000111110000000000
+00100000010000000111000000011011
+01000100111011111100000000011011
+01101111111000010100010000101100
+11101111111000001000000000111111
+00100000011110100000000000000000
+00100000010000000111000000000011
+00100100001101000111011110100101
+00100000010000000111011110100011
+01111000010101000111110000000000
+01101111111000010000011011110001
+01100111111000010000011011111000
+01110000000001101111101000000000
+00011000000000000000111000000000
+01101111111000010100010000101110
+00011111111000110000010000000000
+01100000010010010100010000101110
+00011111111000010111111000000001
+01101000010010010000011011111000
+00011000010000010010001000000001
+00011000010000110000010000000000
+01100000010010010000011011111000
+10011010001000101111110000000000
+00100100010000101111000001010000
+01101111111000010100010000101100
+11101111111000001000000000111111
+01101000010010001000011011111010
+00011000010000001000010000000001
+01100000010010001000011011111010
+00011000010000100000111000000000
+10011000111000101111110000000000
+00100100001000101111000000111011
+01101111111000010000011011110001
+01100111111000010100010000101110
+00100000011000000000000000000000
+01000100111100000100000000011100
+01101111111000010100010000101100
+00011111111000001111111000000001
+11101111111000010000000000111111
+00100000001000000111110101111001
+01101111111100001000000001000010
+10011010001000011111111000000000
+01100111111100001000000001000010
+01101111111100010000000001010000
+01111001001111111111111000001101
+01100111111100010000000001010000
+00100000000000000000000001100100
+00100000011000000000000000000000
+01101111111100001000000001000010
+11000010100000110111000001100010
+11000010100000111111000001100100
+01011000101101110001101100000000
+00100000011000000000000000000000
+01011001011011100011011000000000
+00100000011000000000000000000000
+01011000000000001000000011101000
+00100000011000000000000000000000
+01101000010010011000011001110010
+00100000010000000111000001011101
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111000010000000000
+01101111111000001000011001110101
+10011000010011111111111000000000
+00011111111001101111110001100100
+00100000010000000111110101100010
+00011000000001111010001000000000
+00011000010000100111111000000000
+10011010001001100010010000000000
+01101111111000001000011001110001
+00100000010000000111000001111010
+01101111111000001000011001110000
+01101000010010001000011001110001
+00011000010000010000010000001111
+00011000010011010000010000000000
+10011000010000011111111000000000
+00100000001000000111000010111010
+10011000000000000000111000000000
+00100000010000000111000010001000
+00100000001000000111000001111101
+01101111111100001000000010111110
+11111001001000000111111000000000
+01100111111100001000000010111110
+01101000010110001000000001000010
+00101000010011111111111000000111
+00100000010000001111000010000110
+11111001001111111111111000000000
+01100111111100001000000010111110
+00100000011000000000000000000000
+00100000000000000000000111100000
+00100000011000000000000000000000
+00011111111000010111111000001111
+11011000101000001000000010011100
+00011111111011111111111000000100
+10011000101000001000101000000000
+00011010001000100111111000000000
+11100111111000010000000000000101
+00011010010000100111111000000000
+11100111111000010000000000000101
+00100000011000000000000000000000
+00011010010011001000111000000000
+00100000010000000111000010101111
+00011010010011001000111000000000
+00100000010000000111000010101001
+00011010001011001000111000000000
+01111000001000001111110000000000
+00100000010000000111000010101010
+00011010001000100111111000000000
+00100000010000000111000010110101
+00011010010000100111111000000000
+00100000001000000111000010111010
+00011010001000100111111000000000
+00100000010000000111000010111101
+00011010010000100111111000000000
+00100000010000000111000010111101
+00011010001011001000111000000000
+01111000010000001111110000000000
+00100000010000000111000010101010
+00011010010011001000111000000000
+01111000010000001111110000000000
+00100000010000000111000010110000
+00011010010011001000111000000000
+01111000010000001111110000000000
+00100000001000000111000010101010
+00101000111011111111111000000111
+00011000111000010000111000001111
+01101111111100001000000010111100
+11111001001000001111111000000000
+01100111111100001000000010111100
+00100000011000000000000000000000
+00101000111011111111111000000110
+00011000111000010000111000001111
+01101111111100001000000010011011
+11111001001000001111111000000000
+01100111111100001000000010011011
+00100000011000000000000000000000
+00100000010000000111000011000101
+00011111111011010111111000000000
+00011000111000001000010000010000
+10011000010000011111111000000000
+00100000001000000110111100011101
+01111000001101000111110000000000
+00100000010000000111000010110101
+00100000001000000111000011000000
+01111000010101000111110000000000
+00100000010000000111000011000101
+00100000001000000111000011000000
+00011000111000010000111000001111
+01101111111100001000000010011010
+11111001001101000111111000000000
+01100111111100001000000010011010
+00100000011000000000000000000000
+00011111111011001000111000000000
+00011000111000010000111000001111
+00100000011000000000000000000000
+00011111111000100000010000000000
+01000100111100001100000000011100
+00100000010000000111000011010101
+01011000000000000000100000000000
+10011000010001100111111000000000
+00011111111000100000010000000000
+00011000010100011000010000000000
+01100000010110001000000000000100
+00100000000000000000010101111000
+00011111111000100000010000000000
+00011000010000010000010000001111
+01100000010110001000000000001011
+00100000011000000000000000000000
+01111000001101100111110000000000
+00100000001000000111000011011001
+01000100111100010100000000011100
+01111000010101100111110000000000
+01101111111100001000000001000011
+01111001001101100111111000000011
+01100111111100001000000001000011
+00100000011000000000000000000000
+11011000010000000000000000110001
+01100111111100100000000001100010
+01100111111100010000000001100110
+01100000010110001000000001100001
+00100000011000000000000000000000
+01101111111100010000000100101100
+00100000011000000000000000000000
+01101000011100010000000001100110
+01101001010100010000000001100010
+01101010000100010000000001100100
+00100000011000000000000000000000
+01100000011100010000000001100110
+00100000011000000000000000000000
+00100000010000000111110110111010
+11011101011000000000000000000000
+00100000010000000111000011100010
+11000000000000010111000100101100
+00011111111001100111110000000100
+00100000011000010000000000000000
+00100000010000000111000011100100
+11101000010000010000000000000011
+01011000000000001010011001010100
+00100000010000000111000100110101
+00100100001000010111000100011010
+00011011000000100000010000000000
+01011000000000010111111110001110
+00100000010000000111000100110101
+00100100001000010111000100011010
+00011011000000100000010000000000
+01011000000000000010001100101000
+00100000010000000111000100110101
+00100000001000010111000100010001
+11101000010000010000000000000011
+01011000000000000001000110010100
+00100000010000000111000100110101
+00100000001000010111000100010001
+00100000010000000111000011100010
+00011111111001100111110010000101
+00100000011000010000000000000000
+11011111001000000000000000100000
+11101000010000010000000000000011
+01011000000000000000001000110000
+00100000010000000111000100110101
+00100000001000010111000100010001
+11101000010000010000000000000011
+01011000000000000000011010011010
+00100000010000000111000100110101
+00100100001000010111000100010110
+00011011000000100000010000000000
+01011000000000000000001000110000
+00100000010000000111000100110101
+00100100001000010111000100010111
+00011011000000100000010000000000
+01011000000000001111111111111111
+10011000010001100111110000000000
+00100000001000101111000100110001
+00100000001000000111000011101000
+01111001001000000101011000100000
+00011101011000110101011000000000
+11000010000000000111000100000101
+00100000001000000111000100100101
+00100000010000000111000011100010
+00011111111001100111110000000111
+00100000011000010000000000000000
+11101000010000010000000000000011
+01011000000000000010001100101000
+00100000010000000111000100110101
+00100000001000010111000100010001
+11101000010000010000000000000011
+01011000000000000000100011001010
+00100000010000000111000100110101
+00100000001000010111000100010001
+11101000010000010000000000000011
+01011000000000000000001000110000
+00100000010000000111000100110101
+00100000001000010111000100010001
+00100000010000000111000011101000
+00011010011000100111111000000000
+00100000001000000111110101111001
+00100000010000000111000011100100
+11101000010000010000000000000011
+01011000000000001111111111111111
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000010000000111000011101000
+00100000010000000111110110111100
+00011010011000100111111000000000
+00100000001000000111110101111001
+01101010010000001100010000110101
+00011000010000100011000000000000
+10011010010011111010010000000000
+00011000010000111000010000000000
+10011000010001100010001000000000
+00100100010000010111000100111110
+00011010001011111111111001100100
+10011010010001100111110000000000
+00100000011000000000000000000000
+00011010001001100010001000000000
+00100000011000000000000000000000
+01000100111100011100000000011100
+01110000000000100011000001010000
+11011000101000000000001000110001
+11011000110000000100001010101011
+00100000010000000111110010001111
+11011000110000000100010010001111
+00100000010000000111110010001101
+11011000110000000000010111111110
+00100000010000000111110010001101
+00100000010000000111000111111011
+11011000110000000000000101011000
+00100000010000000111000111110110
+00100000010000000111000111000001
+11011000101000000000011011010001
+00100000010000000111000111110010
+01011000000011110100001001000000
+00011111111000100010001000000000
+01101111111000100000011011010001
+10011010001001101111110000000000
+00100000010000000111110101100010
+00011000000001110111111000000000
+01100111111000100000010111111010
+00100000011000000000000000000000
+01110000000000100011000001000001
+11011000101000000000001000110001
+00100000010000000111000110100110
+00100000010000000111000110100001
+01101111111000011100001011000101
+11100111111000011000000000000101
+00100000010000000111000101100111
+11011000110000000000000101011000
+00100000010000000111110010001111
+11011000110000000100001010101011
+00100000010000000111110010001111
+00100000010000000111000111111011
+11011000110000000000011011110001
+11011000101000000000011010100001
+00100000010000000111110010001111
+00100000001000000111000111000001
+01101111111000100100001011111111
+11100111111000100000000000000101
+00100000010000000111110010011011
+00100000001000000111110010011010
+01000100111100100100000000011100
+01110000000000100011000001000001
+11011000101000000000001000110001
+00100000010000000111000110100001
+00100000010000000111000110100110
+01101111111000011100001010111110
+11100111111000011000000000000101
+00100000010000000111000101100111
+11011000110000000100001010101011
+00100000010000000111110010001111
+11011000110000000000000101011000
+00100000010000000111110010001111
+00100000010000000111000111111011
+11011000110000000000011011110001
+11011000101000000000011010100001
+00100000010000000111110010001111
+00100000010000000111000111000001
+11011000101000000000011011010001
+00100000001000000111000111110010
+01110000000000100011000000100000
+11011000110000000000011000111110
+11011000101000000000001000110001
+00100000010000000111110010001101
+00100000010000000111000111111011
+11011000110000000000010111101001
+00100000010000000111000111110110
+00100000010000000111000111000001
+11011000101000000000011010100001
+00100000010000000111001101110101
+11011000010000000000000000000001
+00100000010000000111000110010000
+11011000101000000100001010001010
+00100000010000000111000111110010
+11011000010000000000000000000000
+00100000010000000111000110010000
+11011000101000000000011011110001
+00100000001000000111001101110101
+01000100111100101100000000011100
+01110000000000100011000000110101
+01011000000000000000000100000000
+01100111111000010000001000110001
+00100000010000000111000110100001
+00100000010000000111000110100110
+11011000110000000100001010101011
+00100000010000000111110010001111
+11011000110000000000000101011000
+00100000010000000111110010001111
+01011000000000000110110001100101
+11100111111000010000000000000101
+01011000000000000110001001110100
+11100111111000010000000000000101
+11100000010000001000000000000101
+00100000010000000111000111111011
+00100000001000000111000111000001
+01101111111000110100001011011011
+11100111111000110000000000000101
+01101111111000001100001011010010
+11100111111000001000000000000101
+00100000011000000000000000000000
+01101111111000110000000101111000
+11100111111000110000000000000101
+01101111111000001100001011001011
+11100111111000001000000000000101
+00100000011000000000000000000000
+01110000000000100011000001000001
+01101111111000001100010011010000
+01100111111000001000001000110001
+11011000110000000100010010001111
+00100000010000000111110010001101
+11011000110000000000010111111110
+00100000010000000111110010001101
+00100000010000000111000111111011
+11011000110000000000000101011000
+00100000010000000111000111110110
+00100000001000000111000111000001
+01110000000000100011000001000001
+01101111111000001100010011010000
+01100111111000001000001000110001
+11011000110000000000010111111110
+00100000010000000111110010001101
+11011000110000000100010010001111
+00100000010000000111110010001101
+00100000010000000111000111111011
+11011000110000000100001010101011
+00100000010000000111000111110110
+00100000001000000111000111000001
+01000100111100110100000000011100
+00100000010000000111001000010000
+01101111111000001000001000110000
+00011111111000100000010000000000
+00011111111000001111111000001111
+00011111111100011111111000000000
+00011111111000100010010000000000
+00100000001110100111000111010011
+00011000010000010111111000001111
+00100100001110100111000111010110
+11011010011000000000011010110001
+11011111111000000000001000110001
+00011111111000001111111111110000
+10011000010000001010001000000000
+11011000101000000000011011100001
+11011111001000000000000000000100
+00100000010000000111110010101001
+00100000001000000111000111100001
+11011010010000000000000000000001
+11011010001000000000000000000000
+00100000001000000111000111010111
+00011000010000010010001000001111
+11011111111000000000001000110001
+10011000010000001111111000000000
+10011010001001100000110000000000
+11011000101000000000011011010001
+00100000010000000111001000110110
+11011010011000000000011011000001
+11011010001000000000011011010001
+11011000101000000000011011100001
+11011111001000000000000000000100
+00100000010000000111110010101001
+00100000010000000111001101101111
+00100000010000000111001011011010
+11011000110000000000001000110001
+00011010010000001010010111111111
+00011010010000100111111000000000
+00100000001110100111000111101010
+00100000010000000111001101100001
+00100000010000000111001011010100
+00100000001000000111000111100100
+11011000101000000000011011010001
+00100000010000000111001101110101
+11011000110000000000011011100001
+00100000010000000111001101100001
+00100000010000000111001011011010
+11011000110000000000011011010001
+00100000010000000111001101100001
+00100000001000000111001011010100
+00011000101000100010001000000000
+00100000010000000111001101110101
+11011111001000000000000000010000
+00100000001000000111110010110001
+11011000101000000000011010100001
+00100000010000000111110010001111
+11011111001000000000000000010000
+11011010001000000000011010100001
+00100000001000000111110010110001
+01101111111000001000001000110000
+00011111111000100111001000000000
+11011010001000000000001000110001
+00100000001000000111110010110001
+11101111111000001000000000010001
+00011111111000111111111000000000
+00101010011011111111111000000000
+01111001001000001111111000000000
+00101111111011111111111000001000
+01111001001000001010011000000000
+11100111111000001000000000010001
+00011010001000001010001111111111
+11000010000000000111000111111111
+00100000011000000000000000000000
+11011010001000000000011010110001
+00011010001000001010001000001111
+00011000000000000111001000010000
+00011000000000000010011000000000
+00100000001000000111000111111111
+11011010001000000000011011000001
+00100000001000000111001000001010
+11011000110000000000011010100001
+00100000010000000111001101011111
+00011000000000000111000000001000
+00100000010000000111001101110000
+00100000010000000111001101101111
+00100000010000000111001011010001
+11011000101000000000011010110001
+00100000010000000111001101110101
+01000100111100111100000000011100
+01101111111000001000011010110001
+00101111111011111111111000000111
+00100100001000001111001000100001
+00100000010000000111001000001001
+11011010011000000000011010110001
+11011000101000000000011010110001
+00100000010000000111001000101011
+00100000001000000111001000100010
+00100000010000000111001000001001
+11011000110000000000011010110001
+11011000101000000000011011000001
+00100000010000000111110010001111
+01101111111000001000011011000001
+00101111111011111111111000000111
+00100100001000001111001000001110
+00100000010000000111001000001110
+11011010011000000000011011000001
+11011000101000000000011011000001
+11011111001000000000000000000011
+11011000010000000000000000000000
+00100000010000000111001000110010
+00011010011000001010011000000100
+11000010000000000111001000101100
+11011000010000001000011100000000
+00011000010100000000010000000000
+11101111111000100000000000010011
+10011000010000101111111000000000
+11100111111000100000000000000101
+00100000011000000000000000000000
+01000100111101000100000000011101
+11011111001000000000000000010000
+11011111111000000000000000000000
+10011010001001100111110000000000
+00100000001000101111001001000001
+00100000001000010111001001000100
+11101000010000001000000000000110
+11100000010000001000000000000101
+00011111111000001111111000000001
+11000010000000000111001000111001
+00100000011000000000000000000000
+11011000010000000000000010000000
+11100000010000001000000000000101
+00100000001000000111001000111110
+11011000010000000000000000000000
+00100000001000000111001001000010
+00011000010011010000010000000000
+00011000010100000000010000000000
+10011000010000011000010000000000
+00100000011000000000000000000000
+01000100111101001100000000011101
+00100000010000000111001100000110
+11011000101000000100001010001010
+00100000001000000111001101110101
+11011000101000000100001010101011
+00100000001101001111001001010001
+11011000101000000000000101011000
+00011000110000100010001000000000
+00100000010000000111110010001111
+00100000010000000111001100011011
+11011000110000000100001010011011
+00100000001000000111001110001110
+11011010001000000000000101011000
+00100000001101001111001001011001
+11011010001000000100001010101011
+00011010001000100000101000000000
+00100000010000000111110111100111
+00100000001000000111001100011011
+11011000110000000100001011100101
+00100000010000000111001101100001
+11011000110000000100001010001010
+00100000010000000111001101100010
+00011000000000000110110000111000
+00011000000000000110110000000000
+00100000010000000111001011001111
+11011000101000000000000110101000
+00100000001000000111001101110101
+00011000000000000111000000001000
+00011000000000000111111001001001
+00100000001000000111001001101100
+00011000000000000111111001001001
+00100000001000000111001001101011
+00011000000000000111111000000001
+00011000000000000111000000000000
+00011000010011010101111000000000
+10011101111000011101111000000000
+00011111000000001111000000000001
+00011000010011001101111000000000
+00011101111100010101111000000000
+01101111111000010100010001011110
+00011111111100000111111000000000
+10011101111000011101111000000000
+00011111000000001111000000000001
+11101101111000100000000000000110
+00011111000000001111000000000001
+11101111111000010000000000000110
+00011010001100001101111000000000
+00011101111100000101111000000000
+10011101111000011101111000000000
+00011111000000001111000000000001
+00100000011000000000000000000000
+00011010011000001000110000000001
+11101111111000001000000000000110
+10011000000000000010001000000000
+00100000010000000111001001101000
+00100000010000000111001011010001
+00011000000000000111000000000000
+11101111111000001000000000010011
+00011111111000010111111000000011
+00011111111100000101111000000000
+01111001001000000101111000001000
+00100000010000000111001101101010
+00100000010000000111001011010100
+00011010001000100111001000000000
+00011010011000001000110000000010
+00100000010000000111001101001001
+00100000010000000111001101010011
+00100000010000000111001011010100
+00011111001000100111111000000000
+00100000001110100111001010010001
+00100000001000000111001010001100
+00011000000000000111000000001100
+00011101111000100111111000000000
+01100111111000100000000101010000
+00100000011000000000000000000000
+00011010001000001010001000000001
+00100000010000000111001001101010
+00011010011000100000110000000000
+00100000010000000111001101011101
+00100000010000000111001011010111
+00100000010000000111001101111100
+00011010011000001010011000010000
+00011010010000001010010111110000
+00100000001000010111001010010101
+00100000011000000000000000000000
+00100000010000000111001011000100
+01000100111101010100000000011101
+01110000100000000110110000000000
+01110000100000000110110100000001
+01101111111000001100000101101001
+00011111111000010111111000000011
+01100111111100001000000001101110
+01101111111000010000011010001111
+01100111111100010000000001101000
+01011000000000000100000101101011
+01100111111100010000000001101010
+01101010001000001100000101101010
+01101000010010101100010001010000
+00100000010000000111001001100101
+01110000100000000000101000000010
+01110000100000000000101000000011
+01101111111000001100000101101010
+01100111111100010000000011000000
+00011111111000001111111000000100
+01100111111000001100000101101010
+01101111111000101100010001010000
+00011111111000001111111000000001
+01111001001111111111111000100111
+01100111111000101100010001010000
+00100000011000000000000000000000
+01101111111100010000000100011010
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100100011110100000000000000000
+00100000001000000111001010111000
+01101111111100001000000100001000
+11000011000000110010001101011010
+01011000000000000100000101101011
+10011000010000001000101000000000
+11011111000000000000000000001100
+11100101111000100000000000000101
+00100000001000000111001011001101
+01000100111101011100000000011101
+00011000000000000111000000001100
+00100000010000000111001101110000
+00100000010000000111001101101111
+01011000000000000000000000000000
+01100111111100010000000011000000
+00100000011000000000000000000000
+01101111111100001000000100001000
+11000011000000110111001011001011
+01110000100000000000101000000000
+00100000011000000000000000000000
+00100100001110111111001011001111
+00100000011000000000000000000000
+00011000000000000110110000110000
+00011000000000000110110000000000
+00100000001000000111001011001111
+00011000000000000110110000110010
+00011000000000000110110000000010
+00100000001000000111001011001111
+00011000000000000110110000110100
+00011000000000000110110000000100
+00100000001000000111001011001111
+00011000000000000110110000000001
+00011000000000000110110000000000
+00100000011000000000000000000000
+01101111111100001000000101010101
+11000011000000010111001011011101
+00100000011000000000000000000000
+01100111111100010000000011010010
+00011000000000000110110011000000
+00011000000000000110110010000000
+00100000001000000111001011011101
+00011000000000000111000000000000
+00011010010000100000110000000000
+00011000000000000111001000000100
+00100000010000000111001011110011
+00011000000000000110110110000000
+00011000000000000110110010000000
+00100000010000000111001011001111
+00011000000000000111000000001100
+00011010011000100000101000000000
+00011000000000000111001000000100
+00011101111000100111111000000000
+11100111111000100000000000000101
+00011111000000001111000000000001
+11000010000000000111001011101110
+00100000011000000000000000000000
+11101111111000010000000000000110
+11101000010000010000000000000110
+00011000010100000000010000000000
+10011000010000011101111000000000
+00011111000000001111000000000001
+11000010000000000111001011110011
+00100000011000000000000000000000
+00011000000000000111000000001000
+00011010001000100000110000000000
+00011000000000000111001000000100
+00100000010000000111001011110011
+00011000000000000111000000000000
+00011010010000100000110000000000
+00011000000000000111001000000100
+00100000010000000111001011110011
+00011000000000000110110110000010
+00011000000000000110110010000010
+00100000010000000111001011001111
+00100000001000000111001011101011
+00011000000000000111000000000000
+01101111111000100000000101011000
+10011000000000000101111000000000
+00011111000000001111000000000001
+11101111111000100000000000000110
+10011000000000000101111000000000
+00011111000000001111000000000001
+01101111111000100100001010101011
+10011000000000000101111000000000
+00011111000000001111000000000001
+11101111111000100000000000000110
+10011000000000000101111000000000
+00011111000000001111000000000001
+00100000010000000111001101110000
+00011111000000001111000111111100
+01101111111000100100001011111111
+00011111111000100101111000000000
+00011111000000001111000000000100
+00011000000000000110110000111000
+00011000000000000110110000001000
+00100000001000000111001011001111
+01000100111101100100000000011101
+01101111111000110100001011011011
+01101000010010110000000101111000
+00100000001101001111001100100001
+01101111111000110000000101111000
+01101000010010110100001011011011
+00011000000000000111000000001000
+00011000010000100101111000000000
+00011111000000001111000000000001
+00011000010011110101111000000000
+00011111111100000111111000000000
+10011101111000011101111000000000
+00011111000000001111000000000001
+00011111111011110101111000000000
+00011111000000001111000000000001
+00011000000000000101111000000000
+00011000000000000111111000000000
+01101111111000001100001011001011
+01101000010010001100001110001100
+00100100001101001111001100110001
+01101111111000001100001011010010
+01101000010010001100001011001011
+01100111111000001100001010111011
+01100000010010001100001010111100
+00011000000000000111000000000000
+11011010010000000100001010111011
+00011000000000000111001000000100
+11101111111000100000000000010001
+11101000010000100000000000010010
+10011000010000101101111000000000
+00011111000000001111000000000001
+00011010001000001010001000000100
+00011010010000001010010000000100
+11000010000000000111001100110110
+00100000010000000111001101110000
+00011111000000001111000111111100
+01101111111000100100001011111111
+00011111111000100101111000000000
+00011111000000001111000000000100
+00011000000000000110110000111000
+00011000000000000110110000001100
+00100000010000000111001011001111
+00100000010000000111001101101111
+00011000000000000110110000111010
+00011000000000000110110000001000
+00100000001000000111001011001111
+00101111001000000000011000000000
+00100000011000001000000000000000
+00011000110000100111111000000000
+10011111001000001000101000000000
+00011000000000000111111000000000
+11100111111000001000000000000101
+00011111001000001111001000000001
+00101111001000000000011000000000
+00100000011000001000000000000000
+00100000001000000111001101001110
+00011000000000000111000000000000
+00011111001000100111111000000000
+00100000001110100111001101011000
+11101111111000100000000000000110
+00011111001000001111001111111100
+10011000000000000101111000000000
+00011111000000001111000000000001
+00101111000000000001111000000100
+00100000011000001000000000000000
+00100000001000000111001101010100
+00011000000000000111000000001000
+00100000001000000111001101100010
+00011000000000000111000000000100
+00100000001000000111001101100010
+00011000000000000111000000000000
+00011000000000000111001000000100
+11101111111000100000000000000110
+10011000000000000101111000000000
+00011111000000001111000000000001
+11000010000000000111001101100011
+00100000011000000000000000000000
+11011000110000000000000110101000
+00100000001000000111001101011111
+00011000000000000111001000000100
+00100000001000000111001101110010
+00011000000000000111000000000000
+00011000000000000111001000010000
+00100000001000000111001101110001
+00011000000000000111000000000000
+00011000000000000111001000000100
+00011000000000000101111000000000
+00011111000000001111000000000001
+11000010000000000111001101110001
+00100000011000000000000000000000
+00011000000000000111000000001100
+00011000000000000111001000000100
+00011101111000100111111000000000
+11100111111000100000000000000101
+00011111000000001111000000000001
+11000010000000000111001101110111
+00100000011000000000000000000000
+00011000000000000111000000001100
+00011010011000100000101000000000
+00011010010000001111001000000001
+00011111001001100111110000001111
+00100000001000010111001110000010
+00011000000000000111001000010000
+00011101111000100111111000000000
+00011111001001100111110000000011
+00100000001000010111001110001010
+11100111111000100000000000000101
+00011111001000001111001111111100
+00100000011000101000000000000000
+00011111000000001111000000000001
+00100000001000000111001110000010
+11100111111000001000000000000101
+00011111111011001111111000000000
+11000010000000000111001110001010
+00100000011000000000000000000000
+00011000000000000111000000001100
+00011000000000000111001000000100
+11101111111000100000000000000110
+10011101111001100111110000000000
+00100100011000101000000000000000
+00011111000000001111000000000001
+11000010000000000111001110010000
+00100000001000000111110110111000
+01101111111100001000000001010000
+01111001001111111111111000000000
+01100111111100001000000001010000
+00100000011000000000000000000000
+01101111111100001000000001010000
+01111001001000000111111000000000
+01100111111100001000000001010000
+00100000011000000000000000000000
+11011000101000000000010011010001
+00111000000000111111111111111111
+00111000000001111111111111111111
+00111000000010111111111111111111
+00111000000011111111101111111111
+11100111111001001000000000000101
+00111000000000111111111111111111
+00111000000001111111111111111111
+00111000000010111111111111111111
+00111000000011111111111111111111
+11100111111001001000000000000101
+00111000000000111111111111111111
+00111000000001111111111111111111
+00111000000010111100111111111111
+00111000000011111111111111111111
+11100111111001001000000000000101
+00111000000000111111111111111111
+00111000000001111111111111111111
+00111000000010111111111111101111
+00111000000011111111111111111111
+11100111111001001000000000000101
+00111000000000111111111111111111
+00111000000001111111111111111111
+00111000000010111111111111111111
+00111000000011111111111111111111
+11100111111001001000000000000101
+00111000000000111111111111111111
+00111000000001100110110001111111
+00111000000010000001010001101011
+00111000000011110111101110110011
+11100111111001001000000000000101
+00111000000000011111111010111000
+00111000000001010000110000010010
+00111000000010101011011100100010
+00111000000011101001111110100110
+11100111111001001000000000000101
+00111000000000001110011100001111
+00111000000001010110011100100000
+00111000000010000101000110011110
+00111000000011011001000010000100
+11100111111001001000000000000101
+00111000000000110001000000010010
+00111000000001110110000010111111
+00111000000010111111000010101111
+00111000000011000000001111010011
+11100111111001001000000000000101
+00111000000000111010000110001000
+00111000000001000011101011010000
+00111000000010111100101111110010
+00111000000011100100001111011001
+11100111111001001000000000000101
+00111000000000101011000000110000
+00111000000001110110101000000011
+00111000000010010001000110001000
+00111000000011011110010100100000
+11100111111001001000000000000101
+00111000000000111010000100011110
+00111000000001001111111001011101
+00111000000010001101110101010111
+00111000000011011010110010010011
+11100111111001001000000000000101
+00111000000000000001000111101101
+00111000000001100001100011000100
+00111000000010001000110110100111
+00111000000011100101011111111111
+11100111111001001000000000000101
+00111000000000110001100100101011
+00111000000001110100011001000001
+00111000000010011011111000001100
+00111000000011110110011010101101
+11100111111001001000000000000101
+00111000000000000001111110000011
+00111000000001010101101000100011
+00111000000010111111100110110000
+00111000000011000011100101001001
+11100111111001001000000000000101
+00111000000000010011101001010001
+00111000000001010101001111111101
+00111000000010110011011100101010
+00111000000011001111000110111011
+11100111111001001000000000000101
+00111000000000111010111010000101
+00111000000001011110111011011001
+00111000000010001001111001100110
+00111000000011000000000110101000
+11100111111001000000000000000101
+00100000011000000000000000000000
+11011000101000000000010101101001
+00111000000000111111111111111111
+00111000000001111111111111111111
+00111000000010111111111111111111
+00111000000011111111111111111111
+11100111111001001000000000000101
+00111000000000111111111111111111
+00111000000001000000000000111111
+00111000000010000000000000000000
+00111000000011000000000000000000
+11100111111001001000000000000101
+00111000000000000000000000000000
+00111000000001000000000000000000
+00111000000010000001000000000000
+00111000000011000000000000000000
+11100111111001001000000000000101
+00111000000000111111111100000000
+00111000000001111111111111111111
+00111000000010111111111111001111
+00111000000011111111111111111111
+11100111111001001000000000000101
+00111000000000111111111111111111
+00111000000001111111111111111111
+00111000000010111111111111111111
+00111000000011000000001111111111
+11100111111001001000000000000101
+00111000000000000000000000000000
+00111000000001000000000000000000
+00111000000010000000000000000000
+00111000000011000000000000000000
+11100111111001001000000000000101
+00111000000000010000000000000000
+00111000000001000000000000000000
+00111000000010111111000000000000
+00111000000011111111111111111111
+11100111111001001000000000000101
+00111000000000101001011011111111
+00111000000001100010011000110000
+00111000000010111001010001011101
+00111000000011111101001010000100
+11100111111001001000000000000101
+00111000000000110011001110100000
+00111000000001000100101101111010
+00111000000010000011011111011000
+00111000000011111100100111011100
+11100111111001001000000000000101
+00111000000000111010010001000000
+00111000000001011011100101011000
+00111000000010111000101111001110
+00111000000011010000100100011111
+11100111111001001000000000000101
+00111000000000101110000100101100
+00111000000001011111010001111100
+00111000000010110101011010110001
+00111000000011101111110101000111
+11100111111001001000000000000101
+00111000000000000110100000110111
+00111000000001101110110110010000
+00111000000010011110110011101100
+00111000000011011010110011000101
+11100111111001001000000000000101
+00111000000000100011001101010111
+00111000000001011000101011110011
+00111000000010001111100111100001
+00111000000011010010100111110000
+11100111111001001000000000000101
+00111000000000101110011111101011
+00111000000001111110011011100011
+00111000000010111110000110100111
+00111000000011010000101110001011
+11100111111001001000000000000101
+00111000000000100100111111100011
+00111000000001000010000011101111
+00111000000010011011010110100110
+00111000000011001101110000101111
+11100111111001001000000000000101
+00111000000000010011100001100000
+00111000000001101011110101101001
+00111000000010000011100100011010
+00111000000011011011001000100010
+11100111111001001000000000000101
+00100000011000000000000000000000
+00100000001000000111010011111100
+01000100111101101100000000011101
+01101111111000001100010001101100
+00100000011110100000000000000000
+01101111111000001100010001101110
+11000001000000011000000000000000
+01101111111000001100010001101101
+11000000000000000111010011111100
+00100000011000000000000000000000
+01110000010001000110110100000000
+00100000011000000000000000000000
+01000100111101110100000000011101
+01011000000000000000010111111110
+11011000101000000000010111111001
+10011000101001100111001000000000
+00100000010000000111110010100001
+01011000000000000100010011010001
+11011000101000000100010011001111
+10011000101001100111001000000000
+00100000001000000111110010100001
+00100000010000000111010001110110
+11011010001000000000011000011110
+11011000101000000000010010110001
+00100000010000000111011100011100
+11011010001000000000010111111110
+11011000101000000000010001110001
+00100000010000000111011100011100
+11011010001000000000010001110001
+11011010010000000000010111111110
+11011000101000000000010001110001
+00100000010000000111011010000100
+11011010001000000000010110001001
+11011010010000000000010111111110
+11011000101000000000010010010001
+00100000010000000111011010000100
+11011010001000000000010010010001
+11011010010000000000010001110001
+11011000101000000000010001110001
+00100000010000000111011100100000
+11011010001000000000010001010001
+11011010010000000000010001110001
+11011000101000000000010001010001
+00100000010000000111011100100000
+11011111001000000000000000100000
+11011010001000000000010010110001
+11011010010000000000010001010001
+00100000001000000111110101100100
+11011010001000000000010111001001
+11011000101000000000010001010001
+00100000010000000111011100011100
+11011010001000000000010110101001
+11011000101000000000010001110001
+00100000010000000111011100011100
+11011010001000000000010001110001
+11011010010000000000010110101001
+11011000101000000000010001110001
+00100000010000000111011010000100
+11011010001000000000010110001001
+11011010010000000000010110101001
+11011000101000000000010010010001
+00100000010000000111011010000100
+11011010001000000000010010010001
+11011010010000000000010001110001
+11011000101000000000010001110001
+00100000010000000111011100100000
+11011010001000000000010001010001
+11011010010000000000010001110001
+11011000101000000000010001010001
+00100000001000000111011100111001
+00011000111000001000111111111111
+00100100011000010000000000000000
+00011000000010100111111000000000
+11100111111000010000000000000101
+00100000001000000111010010001100
+00011000111000001000111111111111
+00100100001000010111010010011100
+11101111111000100000000000010001
+00011111111000100000010000000000
+11101111111000100000000000010010
+10011000010000101111111000000000
+00100100001000101111010010011011
+00011010001000001010001000000100
+00011010010000001010010000000100
+00100000001000000111010010010001
+00100000001000000111110111000100
+00100000001000000111110111000110
+00011111111000010000111000000111
+00011111111010010111111000000000
+10011000110000001000110000000000
+11101111111000001000000000000110
+10101111111011000000000000000000
+00100000011000000000000000000000
+11101111111001000000000000000110
+00100100011110100000000000000000
+11101111111001000000000000000110
+00100100011110100000000000000000
+11101111111001000000000000000110
+00100000011000000000000000000000
+11101111111000100000000000010001
+10011000000000000000010000000000
+11101111111000100000000000010010
+10011000010001100111110000000000
+00100100011000101000000000000000
+00011010001000001010001000000100
+00011010010000001010010000000100
+11000010000000000111010010101001
+00100000011000000000000000000000
+00011000000000000111001000000110
+00011010001000001010001000010100
+00011010010000001010010000010100
+11101111111000100000000000010010
+10011000000000000000010000000000
+11101111111000100000000000010001
+10011000010001100111111000000000
+00100100011000010000000000000000
+00100100011110100000000000000000
+00011010001000001010001111111100
+00011010010000001010010111111100
+11000010000000000111010010110101
+00100000011000000000000000000000
+00011000000000000111001000000110
+00011000000000000010011000000000
+11101111111000100000000000010001
+10011000000000000000010000000000
+11101111111000100000000000010010
+10011000010000001111111000000000
+10011010011000001111111000000000
+11100111111000100000000000000101
+00101111111011111111111000100000
+01111001001000001010011000000000
+00011010001000001010001000000100
+00011010010000001010010000000100
+11000010000000000111010011000001
+00100000011000000000000000000000
+00011000000000000111001000000110
+00011000000000000010011000000000
+11101111111000100000000000010010
+10011000000000000000010000000000
+11101111111000100000000000010001
+10011000010001100111111000000000
+10011010011001100111111000000000
+11100111111000100000000000000101
+00101111111011111111111000100000
+01111001001000001010011000000000
+00011010001000001010001000000100
+00011010010000001010010000000100
+11000010000000000111010011001111
+00100000011000000000000000000000
+00011000000000000111001000000110
+00011010001000001010001000010100
+00011000000000000010011000000000
+11101111111000100000000000010001
+00101111111011111111111000000000
+01111001001000001010011000000001
+00011111111000110111111000000000
+00101010011011111111111000000000
+01111001001000001111111000011111
+11100111111000100000000000010001
+00011010001000001010001111111100
+00011010011000110010011000000000
+11000010000000000111010011011110
+00100000011000000000000000000000
+00011000000000000111001000000110
+00011000000000000010011000000000
+11101111111000100000000000010001
+00101111111011111111111000011111
+01111001001000001010011000000001
+00011111111000111111111000000000
+00101010011011111111111000000000
+01111001001000001111111000000000
+11100111111000100000000000010001
+00011010001000001010001000000100
+00011010011000110010011000000000
+11000010000000000111010011101011
+00100000011000000000000000000000
+00011000000000000111001000000110
+11101111111000100000000000000110
+10011000000000000101111000000000
+00011111000000001111000000000001
+11000010000000000111010011110111
+00100000011000000000000000000000
+01000100111101111100000000011101
+01101111111000001100010001101100
+00100100001110100111010100011101
+01110000010001000110110100000000
+01110000010001000110111000000000
+00100000011000000000000000000000
+01101111111000001100010001101100
+00100000011110100000000000000000
+01101111111000001100010001101110
+11000001000000011000000000000000
+00100000010000000111010101010010
+00100000001000000111010100000010
+11011000101000000100010001101111
+00111000000000000001101010111101
+00111000000001011011001101001111
+00111000000010011001101110001010
+00111000000011100110010101100010
+11100111111001001000000000000101
+00111000000000110100000010110111
+00111000000001000001111011111010
+00111000000010001010111111110110
+00111000000011001111110101000001
+11100111111001001000000000000101
+00111000000000111101001000010000
+00111000000001100110110011111000
+00111000000010111000011101001100
+00111000000011110001010101111100
+11100111111001001000000000000101
+00111000000000101101010010100011
+00111000000001111101001001111101
+00111000000010000000000000000011
+11100111111000101000000000000101
+00100000011000000000000000000000
+01101111111000001100010001101110
+11000001100000000000000000000000
+01101111111000001100010001101101
+11000001100000000000000000000000
+00100000010000000111001111110101
+11011000101000000100010001101111
+00011000000000000000111000001111
+00100000010000000111010010001100
+00011000000010100111111000000000
+00011111111000110111111000000000
+11100111111000010000000000000101
+01101111111000001100010001101011
+00100100010110100111010100001000
+11011000101000000000001110110001
+11011000110000000100010001101111
+00100000010000000111110010001101
+11011000101000000000001010010001
+11011000110000000000010110101001
+00100000010000000111110010000001
+11011000101000000000001011010001
+00100000010000000111110010011101
+01110000000000101101000100000001
+00100000010000000111010101101010
+01110000010001000110110100000011
+00100000011000000000000000000000
+11011000101000000100010010001111
+11011000110000000000001011110001
+00100000010000000111110010000001
+01110000010001000110111000000011
+01110000010001000110110100000000
+00100000011000000000000000000000
+01101111111000001000010111111001
+11000001100000000000000000000000
+01101111111000001100010001101101
+11000001100000000000000000000000
+11011000101000000000001110110001
+11011000110000000100010001101111
+00100000010000000111110010001101
+11011000101000000000001010010001
+11011000110000000000010111111110
+00100000010000000111110010000001
+11011000101000000000001011010001
+00100000010000000111110010011101
+01110000000000101101000100000001
+00100000010000000111010101101010
+01110000010001000110110100000100
+00100000011000000000000000000000
+11011000101000000000011000111110
+11011000110000000000001011110001
+00100000010000000111110010001101
+01110000000001011111100100000011
+01110000010001000110110100000000
+00100000011000000000000000000000
+01101111111000001100010001101100
+00100000011110100000000000000000
+01101111111000001100010001101101
+00100000011110100000000000000000
+00011111111000001111111010000000
+01100111111000001100010001101101
+11000011100000111000000000000000
+01101111111000010000001000101110
+00100000001110100111010101011100
+00100000001000000111010101100010
+01000100111110000100000000011110
+00100000010000000111010101110111
+01101111111000001100010001101101
+11000000000000011111010100110110
+11000000000000100111010101001100
+00100000011000000000000000000000
+00100000010000000111010110001001
+01101111111000010000001000101110
+00011111111000001111111111111111
+01100111111000010000001000101110
+11011000110000000000001110110001
+00100000010000000111010010011101
+00100000011000001000000000000000
+00100000001000000111010111011010
+01000100111110001100000000011110
+01011000000000000000000100000000
+01100111111000010000001000101110
+01101111111000010000001000101110
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000010000001000101110
+11011000110000000000001110110001
+00100000010000000111010010011101
+00100000001000001111010101101101
+11011000110000000000001010010001
+11011000101000000000001101010001
+00100000001000000111110010000000
+11011010001000000000001110010001
+11011000101000000000010010010001
+00100000010000000111011001000110
+11011010001000000000010010010001
+11011000101000000000010000110001
+00100000010000000111011100011100
+11011010001000000000001101010001
+11011010010000000000010000110001
+11011000101000000000001011110001
+00100000010000000111011010000100
+11011010001000000000010010010001
+11011010010000000000010000110001
+11011000101000000000010001110001
+00100000010000000111011010000100
+11011010001000000000001101110001
+11011010010000000000010001110001
+11011000101000000000001100010001
+00100000001000000111011010000100
+11011010001000000000001110010001
+11011000101000000000010001110001
+00100000010000000111011100011100
+11011010001000000000010001110001
+11011000101000000000010010010001
+00100000010000000111011100011100
+11011010001000000000010110001001
+11011010010000000000010010010001
+11011000101000000000010010010001
+00100000010000000111011010000100
+11011010001000000000001101010001
+11011000101000000000010001110001
+00100000010000000111011100011100
+11011000110000000000010001110001
+11011000101000000000010000110001
+00100000010000000111110010001101
+11011010001000000000010000110001
+00100000010000000111011100100011
+11011010001000000000010001110001
+11011010010000000000010000110001
+11011000101000000000010001110001
+00100000010000000111011100100000
+11011010001000000000010001110001
+11011010010000000000010010010001
+11011000101000000000010001110001
+00100000010000000111011100100000
+11011000110000000000001101010001
+11011000101000000000010000110001
+00100000010000000111110010001101
+11011010001000000000001101110001
+11011000101000000000010010010001
+00100000010000000111011100011100
+11011010001000000000010000110001
+00100000010000000111011100100011
+11011010001000000000010000110001
+00100000010000000111011100100011
+11011010001000000000010000110001
+11011010010000000000010010010001
+11011000101000000000010000110001
+00100000010000000111011010000100
+11011010001000000000010010010001
+11011000101000000000010001010001
+00100000010000000111011100011100
+11011010001000000000010001010001
+00100000010000000111011100100011
+11011010001000000000010001010001
+00100000010000000111011100100011
+11011010001000000000010001010001
+00100000010000000111011100100011
+11011000110000000000001101110001
+11011000101000000000010010010001
+00100000010000000111110010001101
+11011010001000000000010010010001
+00100000010000000111011100100011
+11011010001000000000010010010001
+11011010010000000000001110010001
+11011000101000000000001110010001
+00100000010000000111011010000100
+11011010001000000000010001110001
+11011000101000000000010010010001
+00100000010000000111011100011100
+11011010001000000000010010010001
+11011010010000000000010000110001
+11011000101000000000010010010001
+00100000010000000111011100111001
+11011010001000000000010010010001
+11011010010000000000010000110001
+11011000101000000000001101010001
+00100000010000000111011100111001
+11011010001000000000010000110001
+11011010010000000000001101010001
+11011000101000000000010010010001
+00100000010000000111011100111001
+11011010001000000000010010010001
+11011010010000000000010001110001
+11011000101000000000010010010001
+00100000010000000111011010000100
+11011010001000000000010010010001
+11011010010000000000010001010001
+11011000101000000000001101110001
+00100000001000000111011100111001
+11011010001000000000001011010001
+11011000101000000000010010110001
+00100000010000000111011100011100
+11011010001000000000001101010001
+11011010010000000000010010110001
+11011000101000000000010001010001
+00100000010000000111011010000100
+11011010001000000000001011010001
+11011010010000000000010010110001
+11011000101000000000010010110001
+00100000010000000111011010000100
+11011010001000000000001101110001
+11011010010000000000010010110001
+11011000101000000000010000110001
+00100000010000000111011010000100
+11011010001000000000001110010001
+11011000101000000000010010110001
+00100000010000000111011100011100
+11011010001000000000001010010001
+11011010010000000000010010110001
+11011000101000000000010001110001
+00100000010000000111011010000100
+11011010001000000000001110010001
+11011010010000000000010010110001
+11011000101000000000010010110001
+00100000010000000111011010000100
+11011010001000000000001010110001
+11011010010000000000010010110001
+11011000101000000000010010010001
+00100000010000000111011010000100
+11011010010000000000010001010001
+11011010001000000000010001110001
+11011000101000000000010010110001
+00100000010000000111011100111001
+11011010001000000000010001010001
+11011010010000000000010001110001
+11011000101000000000010001010001
+00100000010000000111011100100000
+11011010010000000000010000110001
+11011010001000000000010010010001
+11011000101000000000010001110001
+00100000010000000111011100111001
+11011010001000000000010000110001
+11011010010000000000010010010001
+11011000101000000000010000110001
+00100000010000000111011100100000
+11011010001000000000010000110001
+11011010010000000000010010110001
+11011000101000000000010000110001
+00100000010000000111011010000100
+11011010001000000000001110010001
+11011010010000000000001011010001
+11011000101000000000010010010001
+00100000010000000111011010000100
+11011010001000000000010010010001
+11011010010000000000010010110001
+11011000101000000000001110010001
+00100000010000000111011010000100
+11011010001000000000010010110001
+11011000101000000000010010110001
+00100000010000000111011100011100
+11011010001000000000010010110001
+11011010010000000000010001010001
+11011000101000000000010010010001
+00100000010000000111011010000100
+11011010001000000000010010110001
+11011010010000000000010000110001
+11011000101000000000010000110001
+00100000010000000111011010000100
+11011010001000000000010001110001
+11011000101000000000001101010001
+00100000010000000111011100011100
+11011010001000000000001101010001
+11011010010000000000010010010001
+11011000101000000000001101010001
+00100000010000000111011100111001
+11011000110000000000001101010001
+11011000101000000000010010110001
+00100000010000000111110010001101
+11011010001000000000010010110001
+00100000010000000111011100100011
+11011010001000000000010010010001
+11011010010000000000010010110001
+11011000101000000000010010010001
+00100000010000000111011100111001
+11011010001000000000010010010001
+11011010010000000000010001110001
+11011000101000000000010001110001
+00100000010000000111011010000100
+11011010001000000000010001110001
+11011010010000000000010000110001
+11011000101000000000001101110001
+00100000010000000111011100111001
+11011010001000000000001101110001
+11011010010000000000010101101001
+11011000101000000000001101110001
+00011000000000000010011000000000
+01101111111000001000001101110001
+00101111111011111111111000000000
+00100000010000001111011100011110
+00011010011000100110000000000000
+11011010001000000000001101110001
+00100000010000000111011101001110
+01101111111000001000001110010000
+00101110000011111111111000000000
+01111001001000001111111000000111
+01100111111000001000001110010000
+00100000011000000000000000000000
+00011000101000100001011000000000
+11011000101000000000010001010001
+00100000010000000111110010011101
+00011000000000000111111000000000
+01100111111000100000010001110001
+01110000000001000101000100000001
+11011000101000000000001111010001
+00100000010000000111110010011111
+11011000110000000000010101101001
+11011000101000000000010000010001
+00100000010000000111110010001101
+00011010001000100000110000000000
+11011000101000000000010000110001
+00100000010000000111110010001101
+11011000110000000000010000110001
+00100000010000000111011101011000
+00100000001110100111011001111101
+11011010001000000000010000110001
+11011010010000000000010001010001
+00100000010000000111011101011011
+11011010001000000000010000010001
+11011010010000000000001111010001
+00100000010000000111011101011011
+11011010001000000000010000110001
+11011010010000000000010000010001
+00100000010000000111011101010100
+00100000001000010111011001101111
+11011010001000000000010000010001
+11011010010000000000010000110001
+00011010001000100000101000000000
+00100000010000000111011101001100
+11011010001000000000010001010001
+11011010010000000000001111010001
+00011010010000100000101000000000
+00100000010000000111011100011110
+11101111111000001000000000010001
+10011010011000001010011000000000
+11101111111000001000000000010010
+10011010011000001111111000000000
+11100111111000001000000000010010
+00100000001000000111011001010100
+11011010001000000000010000110001
+11011010010000000000010000010001
+00011010001000100000101000000000
+00100000010000000111011101001100
+11011010001000000000001111010001
+11011010010000000000010001010001
+00011010010000100000101000000000
+00100000010000000111011100011110
+11101111111000001000000000010001
+10011010011000001010011000000000
+11101111111000001000000000010010
+10011010011000001111111000000000
+11100111111000001000000000010010
+00100000001000000111011001010100
+11011010001000000000001111010001
+00011001011000100000101000000000
+00100000010000000111011010101101
+11011010001000000000010101101001
+00011001011000100010010000000000
+00011001011000100000101000000000
+00100000001000000111011100111001
+00011000101000100001011000000000
+00011000000000000111000000000000
+11011000101000000000001111010001
+00100000010000000111110010011111
+11011000101000000000011010110001
+00100000010000000111110010011111
+00011010001000100000110000000000
+01110000000001101011000100000000
+01011000000000000000000000000000
+00100000010000000111011100010110
+00011010010000100000110000000000
+00100000010000000111011100011010
+00011000000000000000111000000000
+11011000101000000000001111010001
+11011000010000000000011010110001
+00011000111000100010010000000000
+00011010010010111111111000000000
+10011000010000001010010000000000
+00011000000000000000010000000000
+00011000000000000010011000000000
+11101111111000100000000000000101
+10011000000000000010001000000000
+11101111111000100000000000010010
+00011010011000100111000000000000
+10011101111011111111111000000000
+10011010001000001111111000000000
+10011000010000001111111000000000
+11100111111000100000000000000101
+00011111111011110000010000000000
+00011010011000001010011000000001
+00101010011000011111111000001000
+00100100001000001111011010011000
+00011000010000100111111000000000
+11100111111000100000000000000101
+00011000101000001000101111100000
+00011000111000001000111000000001
+00101000111000011111111000001000
+00100100001000001111011010010010
+11011010001000000000001111010001
+00011001011000100000101000000000
+00100000001000000111011010101101
+01000100111110010100000000011110
+00011000101000100001011000000000
+00011010001000100110000000000000
+11011010010000000000010000010001
+00011010010000100000101000000000
+00100000010000000111110010011011
+11100111111001000000000000000101
+00011010001000001000110000101100
+00100000010000000111110010001001
+00100000010000000111110010000011
+00011010010000100010001000000000
+00100000010000000111011100100011
+11011010010000000000010000010001
+00011110000000100010001000000000
+00011001011000100000101000000000
+00100000010000000111011100100000
+11011010010000000000010000010001
+00011010010000100000101000000000
+00100000010000000111110010011011
+11100111111001000000000000000101
+00011110000000001000110000110000
+00100000010000000111110010001111
+00100000010000000111110010011011
+00011010010000100010001000000000
+00100000010000000111011100100011
+11011010010000000000010000010001
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100100000
+11011010010000000000010000010001
+00011010010000100000101000000000
+00011110000000001000110000100000
+00100000010000000111110010000011
+00100000010000000111110010011011
+11100111111001000000000000000101
+00011110000000001000110000111000
+00100000010000000111110010001001
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100100000
+11011010010000000000010000010001
+00011010010000100000101000000000
+00011110000000001000110000100100
+00100000010000000111110010000011
+00011110000000001000110000110100
+00100000010000000111110010000011
+00011110000000001000110000110100
+00100000010000000111110010000100
+00011110000000001000110000100000
+00100000010000000111110010000100
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100100000
+11011010010000000000010000010001
+00011010010000100000101000000000
+00011110000000001000110000101100
+00100000010000000111110010000011
+00100000010000000111110010011011
+11100111111001000000000000000101
+00011110000000001000110000100000
+00100000010000000111110010000100
+00011110000000001000110000101000
+00100000010000000111110010000100
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100111001
+11011010010000000000010000010001
+00011010010000100000101000000000
+00011110000000001000110000110000
+00100000010000000111110010001001
+00100000010000000111110010001001
+00011000000000000111111000000000
+11100111111001000000000000000101
+00011110000000001000110000100100
+00100000010000000111110010000100
+00011110000000001000110000101100
+00100000010000000111110010000100
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100111001
+11011010010000000000010000010001
+00011010010000100000101000000000
+00011110000000001000110000110100
+00100000010000000111110010000011
+00011110000000001000110000100000
+00100000010000000111110010000011
+00100000010000000111110010011011
+00011110000000001000110000110000
+00100000010000000111110010000100
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100111001
+11011010010000000000010000010001
+00011010010000100000101000000000
+00011110000000001000110000111000
+00100000010000000111110010001001
+00100000010000000111110010011011
+00011110000000001000110000100100
+00100000010000000111110010000011
+00100000010000000111110010011011
+00011110000000001000110000110100
+00100000010000000111110010000100
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000001000000111011100111001
+00011000000000000111001000100000
+11011000101000000000011010110001
+10011000101000001000101000000000
+00100000001000000111110011011010
+00011000000000000111001000001000
+00100000001000000111010011110111
+00011010001000100010010000000000
+00100000001000000111011010000100
+00011000000000000111001000001000
+00100000001000000111010011000000
+00100000010000000111011100011110
+00011000101000100010001000000000
+00100000001000000111011100100100
+00100000010000000111011101010001
+00101010011011111111111000000000
+00100000001000001111011100101101
+11011010010000000000010101101001
+00011010001000100010011000000000
+00011010001000001010001111100000
+00100000010000000111011101010100
+00100100011000010000000000000000
+00011010011000100010001000000000
+00100000001000000111011100110101
+00100000010000000111011100110101
+00011010001000100010011000000000
+00011010001000001010001111100000
+11011010010000000000010101101001
+00100000010000000111011101010100
+00100100011000010000000000000000
+00011010011000100010001000000000
+00100000001000000111011100110101
+00011010001000001010001111100000
+11011010010000000000010101101001
+00011010001000100000101000000000
+00100000001000000111011101001100
+00100000010000000111011101001100
+00100000001000001111011101000011
+00011000101000001010001111100000
+11011010010000000000010101101001
+00100000010000000111011101010100
+00100100011000010000000000000000
+11011010010000000000010101101001
+00011000101000001010001111100000
+00011010001000100000101000000000
+00100000001000000111011101001100
+00011000101000001010001111100000
+11011010010000000000010101101001
+00011010001000100000101000000000
+00100000010000000111011100011110
+00100000011000001000000000000000
+00011000101000001010001111100000
+11011010010000000000010101101001
+00011010001000100000101000000000
+00100000001000000111011100011110
+00011000000000000111001000001000
+00100000001000000111010011001110
+00011000000000000111001000001000
+00011010001000001010001000011100
+00100000001000000111010011011101
+00011000000000000111001000001000
+00011000000000000010011000000000
+00100000001000000111010011101011
+00011000000000000111001000001000
+00011010001000001010001000011100
+00011010010000001010010000011100
+00100000001000000111010010110101
+11101111111001000000000000000110
+00100100011110100000000000000000
+00100000001000000111010010100011
+00011010001000100110000000000000
+00011110000000100010001000000000
+11101111111000001000000000010001
+00101111111011111111111000000000
+00100000011000001000000000000000
+00100000010000000111011101001110
+11101111111000001000000000010010
+00101111111011000000000000000000
+00100000001000001111011101101011
+11011010001000000000010101101001
+00011010010000100000101000000000
+00100000010000000111011100011110
+11101111111000001000000000010010
+10011010011000001111111000000000
+11100111111000001000000000010010
+00011010010000001010010111100000
+00011010010000001010001000100000
+00011000000000000111001000001001
+00100000010000000111010011011101
+00100000001000000111011101011100
+00100000011101011000000000000000
+00100000010000000010001111011000
+00100000010000000111011101110110
+00100000010000000111100000011011
+00100000001000000111011110101100
+00100000010000000111011111001111
+00100000001000000111100000001010
+01101111111000001100010011101100
+11000001011111111000000000000000
+10011000000000000000010000000000
+00100000010000000110111011110111
+01101000010010001100010011101100
+00100000010000000110111011110011
+00100000000000000000000001100100
+01101000010010001100010011101100
+00100000010000000110111011011101
+00100000001000000111011110000000
+01000100111110011100000000011110
+01101111111000001100010011101100
+11000001011111111000000000000000
+00011111111000100000010000000000
+00100000010000000110111011100110
+00100100001000001111011110010010
+00100000010000000111011110011100
+01101111111000010100010011101001
+01111001001000000111111000001100
+01100111111000010100010011101001
+01101111111000001100010011100100
+11000001000000000000000000000000
+01110000010001001110010000000000
+01101111111000001100010011101011
+01100111111000001100010011100011
+00100000010000000111011110100011
+01110000000001100110111100101100
+00100000001000000111100000101011
+01101111111000010100010011101001
+01111001001111111111111000001100
+01100111111000010100010011101001
+01101111111000001100010011100100
+11000001000000001000000000000000
+01110000010001001110010000000001
+01110000010001001110001100000000
+00100000010000000111011110100101
+01110000000001100110111100101101
+00100000001000000111100000101011
+01101111111000001100010011100011
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100010011100011
+00100100011110100000000000000000
+01110000000001100110111100010000
+00100000001000000111100000101011
+11011000111000000000000000000111
+00100000001000000010010011100111
+11011000111000000000000000000111
+00100000001000000010010011101011
+01000100111110100100000000011110
+01101111111000010100010011101111
+00011010001011111010010000001011
+10011010010000001010010000000000
+00100000011000000000000000000000
+01101111111000001100010011101110
+00100000011110100000000000000000
+00011111111000100111001000000000
+01101111111000010100010011101111
+00011111111000100010010000000000
+00011010010000001010011000000010
+11101000010000001000000000010011
+00100000010000000111011110110111
+00011010010000001010010000001011
+11000010000000000111011110110001
+00100000011000000000000000000000
+01101111111000001100010011101101
+00100000001110100110111011110011
+00100000001000000110111011110111
+00100000010000000111011110100111
+01011000000000000000000000000010
+11100111111000001000000000010010
+00100000010000000111100000000100
+00100000001000000111011111011011
+00100000010000000111011110100111
+01011000000000000000000000000011
+11100111111000001000000000010010
+00100000010000000111100000000100
+00100000001000000111011111011000
+00100000010000000111011110100111
+01011000000000000000000000000001
+11100111111000001000000000010010
+01011000000000000000000011111111
+11100111111000001000000000000101
+00100000001000000111011111011000
+00100000010000000111011110100111
+11011111001000000000000000001011
+00011010011000100000110000000000
+00011010010000100000101000000000
+00100000001000000111110011001100
+01101111111000001100010011101110
+00100000011110100000000000000000
+11011010001000000000000000000000
+00100000010000000111011111011110
+00011010001000001010001000000001
+01101111111000001100010011101110
+10011010001001100111110000000000
+00100000011000101000000000000000
+00100000001000000111011111010010
+00011010010000001010011000000010
+11101000010000001000000000010011
+00100000001000000110111011110011
+00011010010000001010011000000010
+11101000010000001000000000010011
+00100000001000000110111011110111
+00011010001000001000111000001011
+00100000010000000111110011101111
+00100100011110100000000000000000
+00100000010000000111011110100111
+11101111111000001000000000010010
+11000000000000010111011111011011
+11000000000000011111011111011000
+11000000000000000111011111011000
+11000000000000101111011111110010
+00100000010000000111011111011011
+00011010010000001010011000000111
+00100000010000000111110001001001
+11101111111000010000000000010011
+00100000010000000111110101111001
+00100000010000000111110001010101
+01011000000000000000000000000101
+11100111111000001000000000010010
+00011010010000001010011000000011
+11101111111000010000000000010011
+00100000001000000111100000000010
+00100000010000000111011111011000
+00011010010000001010011000001001
+00100000010000000111110001001001
+11101111111000010000000000010011
+00100000010000000111110101111001
+00100000010000000111110001010101
+00011010010000001010011000000001
+11101111111000001000000000010011
+11000000011111111111011111111110
+00011111111000001111111111111111
+11100111111000001000000000010011
+00100000001110100111011110111111
+01011000000000000000000000000100
+11100111111000001000000000010010
+00011010010000001010011000000101
+11101111111000010000000000010011
+00011010001000001000111000001011
+00100000001000000111110011100001
+01011000000000000000000000000000
+00100000001000000111100000000010
+01011000000000000001000000000000
+00011111111100000111111000000000
+10011010010000001010010000000000
+00100000011000000000000000000000
+01000100111110101100000000011110
+11011010001000000000000000000000
+01101000010010100100010011100101
+00011100010000100010010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100010000010111100000000110
+00011010010000100111111000000000
+00011000010000001000010010100000
+00011000010000001000010010100000
+10011000010001100111110000000000
+00100100001000010111100000011110
+00011010001000001010001000000001
+00011010001000010111111000001111
+00100100001110100111100000010001
+11011010001000000000000000000000
+00100000010000000111100000100100
+00011100010000100111111000000000
+01100111111000100100010011100101
+00100000011000000000000000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+00011000010000001000010101100000
+00011000010000001000010101100000
+01111001001111111000010000011100
+01100000010010100100010011100101
+00100000001000000100001011010100
+01110000010001001101000100000001
+01101111111000001100010011010010
+00100100001110100111100000100110
+00100000011000000000000000000000
+01110000010001001101000100000000
+00100000011000000000000000000000
+01000100111110110100000000011110
+00100000010000000111100000100101
+00011010001000100111111000000000
+01100111111000100000011010000100
+11011010001000000100010011010011
+00100000010000000111110110001011
+01101111111000100000011010000100
+00011111111000100010001000000000
+00100000001000000111100000101001
+01000100111110111100000000011110
+00100000010000000111100000100101
+00011010001000100111111000000000
+01100111111000100000011010000100
+11011010001000000100010011011011
+00100000010000000111110110001011
+01101111111000100000011010000100
+00011111111000100010001000000000
+00100000001000000111100000101001
+01011000000000000000000000000000
+01100111111001000100010011011011
+01100111111001000100010011010011
+00100000011000000000000000000000
+01000100111111000100000000011111
+01101111111000001100000100010100
+00100100011110100000000000000000
+11011010001000000100010011011011
+00100000010000000111110110100011
+00100000011110100000000000000000
+01110000000001100110111000000000
+00100000010000000111100001001100
+01101111111000001000011001101110
+00100000001110100111100001000001
+00100000011000000000000000000000
+00100000010000000111100000100101
+11011010001000000100010011011011
+00100000010000000111110110010111
+00011111111000100000010000000000
+00100000010000000111100000101001
+01000100111111001100000000011111
+00011000010000100111111000000000
+00100000011110100000000000000000
+11000000000001101111100001110000
+11000000000001110111100001110110
+11000000000001111111100001111011
+11000000000010000111100010000001
+11000000000010011111100010001011
+11000000000010100111100010001101
+11000000000010101111100010001111
+11000000000010110111100010011001
+11000000000010111111100010011100
+11000000000011000111100010011110
+11000000000011001111100010100001
+01100111111000001000011001101111
+01101111111000001000011001101111
+11000101100001001111100001101001
+01000100111111010100000000011111
+01101111111000001000011001101111
+11000000000010001111100010000110
+11000000000011011111100010101001
+11000000000010010111100010001010
+11000000000011111110111010100011
+00100000011000000000000000000000
+01100111111000001000011001101111
+00100000010000000010000001011101
+00100000001000101111100001101110
+00100000010000000010000001100010
+00100100011000101000000000000000
+01110000000001100110111000000001
+00100000001000000111100000110100
+01110000010000111000100000000001
+01110000010000111000101100000000
+01101111111000010100010011101001
+01111001001000000111111000001011
+01100111111000010100010011101001
+00100000011000000000000000000000
+01101111111000010100010011101001
+01111001001111111111111000001011
+01100111111000010100010011101001
+01110000010000111000100000000000
+00100000011000000000000000000000
+01110000010000111000100000000001
+01110000010000111000101100000001
+01101111111000010100010011101001
+01111001001000000111111000001011
+01100111111000010100010011101001
+00100000011000000000000000000000
+01101111111000010100010011101001
+01111001001111111111111000001011
+01100111111000010100010011101001
+01110000010000111000100000000000
+00100000011000000000000000000000
+01011000000000000000000000010100
+01100111111000010000000110010110
+01100111111000010100001011110101
+00100000001000000011000011000101
+00100000001000000010111010010011
+11011010001000000000000000000000
+00100000001000000111011110111111
+11011010001000000000000000000000
+00100000001000000111011110111010
+11011010001000000000000000000000
+00100000010000000111011110100111
+11101111111000001000000000010010
+11000000000000001111100010010110
+11000000000000100111100010010110
+11000000000000101111100010010110
+00100000001000000111011111000100
+11101111111000001000000000000110
+11000001011111111000000000000000
+00100000001000000111011111000100
+01110000010000110100001100000001
+01110000010000010001010000011011
+00100000011000000000000000000000
+01110000010000110100001100000001
+00100000011000000000000000000000
+01110000010000110100001100000000
+01110000010000010001010000000000
+00100000011000000000000000000000
+01101111111000010100001111010101
+00100000010000000111110101111001
+01101111111000001100010011101100
+11000000011111111111100010100111
+00011111111000100000010000000000
+00100000010000000110111011011101
+00100000010000000111100000111101
+00100000001000000010010000010111
+00100000001000000010111011010101
+01101111111000001100010011101001
+11000100000001100000000000000000
+00100000011000000000000000000000
+01101111111000010100001111111011
+00011111111000001000101000000010
+01011000000000000000000000000000
+11100111111000011000000000000101
+00100000011000000000000000000000
+01000100111111011100000000011111
+00100000010000000111110110111100
+00100000010000000111100011111110
+00100000011110100000000000000000
+01101111111000010100001111111011
+00011111111000001010010000000010
+11101000010000001000000000010010
+00011000010000001000010000000001
+11100000010000001000000000010010
+11101000010000001000000000111111
+00011000010000100111001000000000
+00011111111000001010010000000100
+11101111111000001000000000010010
+10011000010011111111111000000000
+10011000110000001000101000000000
+00011010001000100000110000000000
+00100000010000000111110011011010
+00100000010000000111100100000010
+00011111111000001111111111111111
+11101000010000001000000000010010
+00011000010000001000010000000001
+10011000010000010000010000000000
+11100000010000001000000000010010
+00100000001000000111110110111010
+01000100111111100100000000011111
+00100000010000000111110110111100
+00100000010000000111100011111010
+00100000011110100000000000000000
+01101111111000010100001111111011
+00011111111000001010010000000010
+11101000010000001000000000010010
+00011000010000001000010111111111
+11100000010000001000000000010010
+11101000010000001000000000111111
+00011000010000100111001000000000
+00011111111000001010010000000011
+11101111111000001000000000010010
+10011000010011111111111000000000
+10011000110000001000110000000000
+00011000110000001000110000000001
+00011010001000100000101000000000
+00100000001000000111100011000010
+00100000010000000111110110111100
+00100000010000000111100011111010
+00100000011110100000000000000000
+01101111111000010100001111111011
+11101000010000001000000000111111
+00011000010000100111001000000000
+00011111111000001010010000000011
+11101111111000001000000000010010
+10011000010011111111111000000000
+10011000110000001000110000000000
+00011000110000001000110000000001
+00011000110000100010010000000000
+00011010001000100000101000000000
+00100000010000000111110011011010
+00100000001000000111110110111010
+00100000010000000111110110111100
+00100000010000000111100011111010
+00100000011110100000000000000000
+01101111111000010100001111111011
+11101000010000001000000000111111
+00011000010000100111001000000000
+00011111111000001010010000000011
+11101111111000001000000000010010
+10011000010011111111111000000000
+10011000110000001000110000000000
+00011000110000001000101000000010
+00011010001000100000110000000000
+00011111001000001111001111111111
+00100000010000000111110011011010
+00100000001000000111110110111010
+01101111111000010100001111111011
+00011111111000001000110000000010
+11101111111000001000000000000110
+00100000011000000000000000000000
+00100000010000000111100100000010
+11101000010000001000000000000110
+10011000010001100111111000000000
+00100000011000000000000000000000
+01101111111000010100001111111011
+00011111111000001000110000000001
+11101111111000001000000000000110
+00100000011000000000000000000000
+01000100111111101100000000011111
+01101111111100001000110000100010
+00101111111011111111111000000011
+00100000010000001111100100010101
+01101111111100010000110000100010
+01100111111100010000110000100010
+01100111111000010000011100001001
+00100000010000000111100101110011
+00100000010000000111100110100010
+00100000010000000111101110010110
+00100000010000000111101111011111
+00100000001000000111100101101011
+01000100111111110100000000011111
+00100000010000000111001110010110
+00100000010000000111100100110010
+01110000100011000000000000000000
+00100000000000000010011100010000
+01110000100011000001001000000000
+01101111111100010000000001010000
+01111001001111111111111000001010
+01100111111100010000000001010000
+01110000100011000001000000100001
+01110000100011000001000110011101
+01110000100011000000000000111100
+01011000000000000000011101100011
+01100111111100010000110000000010
+01100111111100010000110000000110
+01011000000000000000011110100011
+01100111111100010000110000000100
+01110000100011000001001010000000
+01110000100011000000000100000000
+01110000100011000010001011111111
+01011000000000000000100101011111
+11011000101000000000100001101101
+10011000101001100111001000000000
+00100000001000000111110010100001
+01101000010010001000100001101100
+00100000001000000110111011011101
+01101111111000001000100100001110
+00100000011110100000000000000000
+01101000010010001000100001101100
+00100000010000000110111011100110
+00100000001000001111100100010101
+00100000011000000000000000000000
+01110000000010000110101100000010
+01011000000000000000000000000000
+01100111111000001000011110100110
+01100111111000010000100001100101
+00011111111000001111111000000001
+01100111111000010000100001100111
+00011111111000001111111000000001
+01100111111000010000100001101001
+11011000101000000000011111111010
+01011000000000110000010000000100
+11100111111000011000000000000101
+01011000000000000000010000001001
+11100111111000010000000000000101
+11011000101000000000011111111111
+00111000000000010101100100000110
+00111000000001100001000011010010
+00111000000010010000010010010100
+00111000000011000000000000000001
+11100111111001001000000000000101
+11011000101000000000100000011101
+00111000000000010101011100001111
+00111000000001010101110010011010
+00111000000010100101011011000110
+00111000000011011100110111001101
+11100111111001001000000000000101
+00111000000000010100010000100000
+00111000000001100101110110011001
+00111000000010100101011000110110
+00111000000011000000000000000001
+11100111111000111000000000000101
+11011000101000000000100000111011
+00111000000000010110001000001010
+00111000000001000000110010001100
+00111000000010110000001100110011
+00111000000011001100000011000000
+11100111111001001000000000000101
+00111000000000000011000100110000
+11100111111000010000000000000101
+01011000000000001001001001110010
+01100111111000010000011110100111
+01011000000000001001001011001101
+01100111111000010000011110101001
+11011000110000001001001101110001
+11011000101000000000011110101011
+11011111001000000000000000010011
+00100000010000000111110011011010
+11011000110000001001001110000100
+11011000101000000000011110111110
+11011111001000000000000000111100
+00100000010000000111110011011010
+01101111111000010000100001011001
+00100000001000000111110101111001
+01101111111000001000100001011011
+00100000011110100000000000000000
+01100111111000001000011111100000
+01100111111000001000011111111001
+00100000011000000000000000000000
+11011000111000000000000000000001
+00100000010000000111110011101111
+00100100011110100000000000000000
+01101111111000001000100100001111
+00100100011110100000000000000000
+01101111111000001000100100001110
+00100100010110100111110000111000
+00100000011000000000000000000000
+01101111111000001000011100001001
+11000010100000010111100101110110
+00100000011000000000000000000000
+00100000010000000111100101111011
+00100000010000000111110011101110
+01011000000000000000001010000000
+11011000111000000000000000000001
+00100000001000000111110011100001
+01101111111000001000100100000000
+11000000100000010111100110000000
+01110000000010010000111100000000
+01110000000010010001000000000000
+00100000011000000000000000000000
+01101111111000001000100100010010
+00100000011110100000000000000000
+01110000000010010001001000000000
+01110000000010010000000000000010
+01110000000010010000111000000001
+00100000011000000000000000000000
+01101111111000001000011100001001
+11000010100000000111100110101111
+00100000011000000000000000000000
+01101001010100010000110000000010
+01101010000100010000110000000100
+01101000011100010000110000000110
+11101111111000010000000000000011
+00011111111011001000010000000000
+00011000010100011000010000000000
+11011000110000000000111111111111
+10011000110000010111001000000000
+01100111001000010000011100001100
+00100000011000000000000000000000
+00100000010000000111100110001001
+11101111111000001000000000000011
+11100111111000001000000000000101
+11000010000000000111100110010100
+01100000011100010000110000000110
+00100000011000000000000000000000
+11011000101000000000100101011111
+00100000010000000111100110010100
+11011000010000000000100101100011
+01100000010110010000110000001110
+01101111111000001000100101100000
+00011111111000001111111000000110
+11100111111000001000000000000010
+01110000100011000001100000001000
+00100000011000000000000000000000
+01000100111111111100000000011111
+01101111111000001000011100001001
+11000100000000101000000000000000
+00100000010000000111100110001001
+00101000010000011111111000001101
+00100000001000001111100110011001
+11011000101000000000100001101101
+00100000010000000111100110010100
+01101111111000001000011100001100
+11000000000000000111100110000110
+11000000000000001111100110110110
+00011111111001100111110000000111
+00100000011000010000000000000000
+01000111000000000100000000100000
+01111001001111111000000000100011
+01101111111000001000100001101101
+00011111111000010111111010000000
+11000000010000000111100110111010
+11000000000000000111100111000010
+00100000001000000010001101011010
+01101111111000001000100001101101
+11000011100000111000000000000000
+00100000010000000111101101101010
+00100000001000000111100111101001
+01101111111000001000100001101101
+00011111111100011111111000000000
+00011111111000110111111000000000
+00011111111000010111111000000011
+11000000000000000111100111001010
+11000000000000001111100111010000
+11000000000000010111100111010101
+00100000001000000010001101011010
+01101111111000001000100001101101
+00011111111100011111111000000000
+00011111111000110111111000000000
+00011111111000010111111000000011
+11000000000000000111100111010110
+11000000000000001111100111011110
+11000000000000010111100111100011
+00100000001000000010001101011010
+01101111111000001000100001101110
+11000000000001000111100111101011
+11000000000000110111101000000001
+11000000000001010111101001000110
+11000000000000000111101001011000
+00100000001000000111100111100100
+01101111111000001000100001101110
+11000000000000010111101010001101
+11000000000000001111101010010001
+11000000000000011111101010100010
+00100000001000000111100111100100
+00100000001000000111100111100100
+01101111111000001000100001101110
+11000000000000001111101010101100
+11000000000000011111101011011011
+11000000000000101111101100000110
+11000000000001001111101100011111
+11000000000001011111101100111010
+11000000000000111111100111100100
+00100000001000000111100111100100
+01101111111000001000100001101110
+11000000000001010111101101001011
+11000000000001001111101101011101
+11000000000001011111101101111100
+00100000001000000111100111100100
+00100000001000000111100111100100
+01000111000000001100000000100000
+01101111111100001000110000011001
+01111001001000000111111000000000
+01100111111100001000110000011001
+00100000001000000111100111101001
+01110000100011000001101100000001
+00100000011000000000000000000000
+01101111111000001000100001101101
+11000000110000000111100111100100
+01101111111000001000100001110001
+11000000100000000111100111100100
+01101111111000001000100001110010
+11000000100000000111100111100100
+01101111111000001000100001110011
+11000000100000001111100111100100
+01101111111000001000100001110100
+11000000100000000111100111100100
+01101111111000001000100001101111
+11000000100000000111100111100100
+01101111111000001000100001110000
+11000000100000000111100111100100
+01101111111000001000100001101011
+11000000000000100111100111111101
+11000000000000011111100111111111
+00100000001000000111100111100100
+11011010010000000000000000000001
+00100000001000000111101001110010
+11011010010000000000000000000001
+00100000001000000111101001110000
+01000111000000010100000000100000
+01101111111000001000100001110000
+11000000000000001111101000010100
+11000000000000010111101000101101
+11000000000000011111101000110000
+11000000000100001111101000001001
+11000000000100010111101000111110
+00100000001000000111100111100100
+01110000000010001111110100000000
+01101111111000001000100001110001
+11000000000000000111101000001110
+11000000000000001111101000010001
+00100000001000000111100111100100
+01101010010000001000011111010001
+11011010001000000000011111010001
+00100000001000000111101110001011
+01101010010000001000011111101010
+11011010001000000000011111101010
+00100000001000000111101110001011
+01101111111000001000100100010001
+00100100010110100111101000100101
+01011000000000000000011110101011
+01101000010010001000011110101011
+01100111111000010000100100001000
+01100000010010001000100100001010
+01101111111000001000100001110011
+10011000010001100111110000000000
+00100100001000010111101000100011
+01101111111000001000100100001010
+10011000000000000010010000000000
+01101111111000010000100100001000
+00011111111000001111111000000001
+10011000000000000010001000000000
+00100000001000000111101110001011
+01101111111000001000100001110011
+00100000001000000111101000011110
+01101111111100001000110000000001
+00100100010110100111101000101001
+01110000000010010001000100000000
+00100000011000000000000000000000
+01101111111100001000110000000001
+01111001001000000111111000000111
+01100111111100001000110000000001
+00100000011000000000000000000000
+01011000000000000000011110111110
+01101000010010001000011110111110
+00100000001000000111101000011000
+01101111111000001000100001101111
+00011111111001100111110000000011
+00100100001000010111100111100100
+01101111111000001000100001101111
+11011010001000000000011111111010
+11000000000000000111101110001001
+01111001001000000000000000100011
+11011010001000000000011111111111
+11000000000000001111101110001001
+11011010001000000000100000011101
+11000000000000010111101110001001
+11011010001000000000100000111011
+11000000000000011111101110001001
+00100000011000000000000000000000
+01101111111000010000100001110001
+11000000000000001111101001000010
+01101010001000010000011110100111
+00100000001000000111101110001001
+01110000000010010000111000000001
+01110000000010010000000000000001
+01101010001000010000011110101001
+00100000001000000111101110001001
+01101111111000001000100001101011
+11000000100000100111100111100100
+01101111111000001000100001101101
+11000000110000001111100111100100
+01101111111000001000100001101111
+11000000100000000111100111100100
+01101111111000001000100001110000
+11000000100000000111100111100100
+01101111111000001000100001110011
+11000000100000001111100111100100
+01101111111000001000100001110100
+11000000100000000111100111100100
+01101111111000001000100001110001
+11000000100000000111100111100100
+01101111111000001000100001110010
+11000000100000000111100111100100
+11011010010000000000000000000001
+00100000001000000111101001110000
+01101111111000001000100001101011
+11000000000000010111100111100100
+01101111111000001000100001101111
+11000000100000000111100111100100
+01101111111000001000100001110000
+11000000100000000111100111100100
+01101111111000001000100001110011
+11000000100000010111100111100100
+01101111111000001000100001110100
+11000000100000000111100111100100
+01101111111000001000100001110010
+11000000100000000111100111100100
+01101111111000001000100001101101
+11000000010000000111101001101011
+11000000010000001111101001110110
+11000000010000010111101001111010
+00100000001000000111100111100100
+01110000000010010000001100000001
+00100000001000000111101001110100
+01101111111000001000100001110001
+11000000100000000111100111100100
+11011010010000000000000000000010
+01101111111000001000100100000001
+11000000000000001111101001101001
+11011010001000000000100001100101
+00100000001000000111101110001011
+11011010001000000000100001100111
+00100000001000000111101110001011
+11011010001000000000100001101001
+00100000001000000111101110001011
+01101111111000001000100001101011
+11000000100000100111100111100100
+11011010010000000000000000000010
+00100000001000000111101001110000
+01101111111000001000100001101011
+11000000100000100111100111100100
+01101111111000001000100001110001
+11000000010000001111101010000111
+11000000010000010111101010001001
+11000000010000011111101010001011
+00011111111000010111111001111111
+11000000000000000111101010000011
+00100000001000000111100111100100
+01101111111000001000100100000100
+11011010010000000000000000000010
+11000000000000001111101001110010
+00100000001000000111101001110000
+01101111111000001000100100000101
+00100000001000000111101010000100
+01101111111000001000100100000110
+00100000001000000111101010000100
+01101111111000001000100100000111
+00100000001000000111101010000100
+01110000000010001111101100000001
+11011010001000000000100011111100
+11011010010000000000000000000001
+00100000001000000111101110001011
+01101111111000010000100001101111
+11011000010000000000000110111010
+10011000010001100111110000000000
+00100100001000101111100111100100
+01101111111000001000100011111000
+00100100001110100111101010011111
+01110000000010001011010100000000
+01101111111000001000100001110011
+10011000000000000010010000000000
+11011010001000000000100010110101
+00100000010000000111101110001011
+11011000101000000000100010110101
+11011111001000000000000001000000
+00100000001000000111110010100011
+01110000000010001111100000000000
+01110000000010001011010100000001
+00100000001000000111101010011000
+01101111111000001000100001110011
+11000000100000001111100111100100
+01110000000010001111110100000001
+11011010010000000000000000000001
+01101111111000001000100011111111
+11000000000000000111101010101010
+11000000000000001111101010101011
+00100000001000000111101001110000
+00100000001000000111101001110010
+00100000001000000111101001110000
+01101111111000001000100001101011
+11000000100000100111100111100100
+01101111111000001000100001110011
+11000000100000000111100111100100
+01101111111000001000100001110100
+11000000100000000111100111100100
+01101111111000001000100001110000
+11000000100000000111100111100100
+01101111111000001000100001110010
+11000000100000000111100111100100
+01101111111000001000100001101101
+11000000000000000111101010111011
+11000000000000001111101011001000
+11000000000000010111101011001001
+00100000001000000111100111100100
+01101111111000001000100001101111
+11000000100000001111100111100100
+01101111111100001000110000000000
+01111001001111111111111000000111
+01100111111100001000110000000000
+01110000000010010000000100000000
+01110000000010010000001000000001
+01101111111000001000100100000011
+00100000001110100111100111101001
+01110000000010010000001100000000
+01110000000010010000001000000000
+01110000000010010000000000000010
+00100000001000000111100111101001
+00100000001000000111100111100100
+01101111111000001000100001101111
+11000000100000000111100111100100
+01101111111000001000100001110001
+11000000010000001111101011010100
+11000000010000010111101011010111
+11000000010000011111101011011001
+00011111111000010111111001111111
+11000000000000000111101011010010
+00100000001000000111100111100100
+01110000000010010000010000000000
+00100000001000000111100111101001
+01110000000010010000010100000000
+01110000000010010001001000000001
+00100000001000000111100111101001
+01110000000010010000011000000000
+00100000001000000111101011010101
+01110000000010010000011100000000
+00100000001000000111101011010101
+01101111111000001000100001110011
+11000000100000000111100111100100
+01101111111000001000100001110100
+11000000100000000111100111100100
+01101111111000001000100001101101
+11000000000000000111101011100100
+11000000000000001111101011110010
+11000000000000010111101011110011
+00100000001000000111100111100100
+01101111111000001000100001101111
+11000000100000001111100111100100
+00100000010000000100100010110001
+01101111111100001000110000000000
+01111001001000000111111000000111
+01100111111100001000110000000000
+01110000000010010000000100000001
+01110000000010010000000000000011
+01110000000010001111100100000000
+00100000010000000111100111101001
+00100000010000000111110011101110
+01011000000000000001001110001000
+11011000111000000000000000001111
+00100000001000000111110011100001
+00100000001000000111100111100100
+01101111111000001000100001101111
+11000000100000000111100111100100
+01101111111000001000100001110000
+11000000100000000111100111100100
+01101111111000001000100001110001
+11000000010000001111101100000000
+11000000010000010111101100000010
+11000000010000011111101100000100
+00011111111000010111111001111111
+11000000000000000111101011111110
+00100000001000000111100111100100
+01110000000010010000010000000001
+00100000001000000111100111101001
+01110000000010010000010100000001
+00100000001000000111100111101001
+01110000000010010000011000000001
+00100000001000000111100111101001
+01110000000010010000011100000001
+00100000001000000111100111101001
+01101111111000001000100001101101
+11000000100000000111100111100100
+01101111111000001000100001110001
+11000000100000000111100111100100
+01101111111000001000100001110010
+11000000100000000111100111100100
+01101111111000001000100001110011
+11000000100000000111100111100100
+01101111111000001000100001110100
+11000000100000000111100111100100
+01101111111000001000100001110000
+11000000100000000111100111100100
+01101111111000001000100001101111
+00011111111000010111111010000000
+11000000100000000111100111100100
+01101111111000001000100001101111
+11000000100000000111101100011101
+01110000000010000110101100000010
+01101111111000001000100001101111
+01100111111100001000110000000001
+00100000010000000111100111101001
+01110000000010010001000100000001
+00100000011000000000000000000000
+01110000000010000110101100000011
+00100000001000000111101100011000
+01101111111000001000100001101011
+11000000000000010111100111100100
+01101111111000001000100001101101
+11000000100000000111100111100100
+01101111111000001000100001110001
+11000000100000000111100111100100
+01101111111000001000100001110010
+11000000100000000111100111100100
+01101111111000001000100001110011
+11000000100000000111100111100100
+01101111111000001000100001110100
+11000000100000000111100111100100
+01101111111000001000100001110000
+11000000100000000111100111100100
+01101111111000001000100001101111
+00011111111001100111110000000001
+00100100001000010111100111100100
+01101111111000001000100001101011
+11000000000000011111101100110100
+11000000000000100111101100110100
+00100000001000000111100111100100
+01101111111000001000100001101111
+11000000000000000111101100111000
+01110000000010000110101100000100
+00100000001000000111100111101001
+01110000000010000110101100000011
+00100000001000000111100111101001
+01101111111000001000100001101011
+11000000100000100111100111100100
+01101111111000001000100001101101
+11000000100000001111100111100100
+01101111111000001000100001101111
+11000000100000000111100111100100
+01101111111000001000100001110000
+11000000100000000111100111100100
+01101111111000001000100001110011
+11000000100000000111100111100100
+01101111111000001000100001110100
+11000000100000000111100111100100
+01101111111000001000100001110001
+11000000100000000111100111100100
+01101111111000001000100001110010
+11000000100000000111100111100100
+00100000001000000111100111101001
+01000111000000011100000000100000
+01110000000010001111101100000001
+01101111111000001000100001110000
+01100111111000001000100011111100
+01101111111000001000100001110001
+00011111111001100111110000000001
+00100000010000101111101101011001
+01101111111000001000100100000000
+11000000100000100111100111101001
+01110000000010010000000000000010
+00100000010000000111100111101001
+00100000000000000111010100110000
+00100000000000000111010100110000
+00100000011000000000000000000000
+01110000000010010000111000000001
+01110000000010010000001000000000
+01110000000010010000000000000100
+00100000011000000000000000000000
+00100000000000000011101010011000
+11011000101000000000100001110101
+00100000010000000111100110010011
+01110000000010001111011100000001
+00100000010000000111101101101110
+01101111111000010000100001101111
+01100111111000010000100011110101
+00100000010000000111100111101001
+01101111111000001100001111001011
+11000001100000100000000000000000
+01101111111000001000100011111001
+00100000011110100000000000000000
+01101111111000001000100001110101
+01100111111000001100011000100001
+01110000000010001111100100000000
+01110000010001100001000100000011
+00100000011000000000000000000000
+01101111111000010000100001101111
+11011000010000000000001000000000
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000010000100001110001
+11011000010000000000000000000000
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000010000100001110011
+11011000010000000000000000000001
+10011000010001100111110000000000
+00100100011000101000000000000000
+01110000000010001111100100000001
+00100000011000000000000000000000
+01101111111000001000100001110011
+11000000100000000111100111100100
+01101111111000001000100001101111
+11000000000000000111101110000010
+11000000000000001111101110000101
+00100000001000000111100111100100
+01110000000010001111111000000000
+01110000000010001111111100000001
+00100000001000000111100111101001
+01110000000010001111101000000001
+01110000000010001111111000000001
+01110000000010001111111100000000
+00100000001000000111100111101001
+11101010010000001000000000010001
+00011010001000001010001000000001
+01000111000000100100000000100000
+01111001001000000000000000001110
+11000101100100011111101110010000
+00011010010000001010010000000001
+00011010010000111010010000000000
+01100010001000010000011110100100
+01100010010000001000011110100110
+00100000001000000111101110010110
+00100000011000000000000000000000
+11011000111000000000000000000000
+00100000001000000111101111010111
+01000111000000101100000000100000
+01101111111100001000110000100101
+11000011100000000000000000000000
+01101111111000001000011110100110
+00100000011110100000000000000000
+00011111111000100111001000000000
+10011000000000000000010000000000
+01101111111000010000100001110011
+00011111111001100111110001000000
+00100000001000010111101110100100
+00011111001001100111110001000000
+00100000001000010111101110101000
+00011000000000000111001001000000
+00100000001000000111101110101000
+10011111001001100111110000000000
+00100000001000010111101110101000
+10011000000000000111001000000000
+01100111111000001000011110100110
+01101111111000001000011110100110
+10011111001001100111111000000000
+01100111111000001000011110100110
+00011111001000001111111111111111
+01100111111000001000011100001110
+11000101100100011111101110111010
+00011111111000110111111000000000
+00011111001000001111111111111111
+01100111111000001000011100001110
+11000101100001110111101110111010
+01111001001111111000000000001110
+11100000010000001000000000000101
+01011000000000000000000000000011
+11100111111000001000000000000101
+00011111001000001111001111111111
+00011111001000100111111000000000
+00100100001000101111101110111010
+00011111001000001111001000000001
+01101111111000010000011110100100
+00011111111000100000110000000000
+11101111111000001000000000000110
+11100111111000001000000000000101
+11000101100100011111101111000001
+01011000000000000000000000000000
+11100111111000001000000000000101
+11000010000000000111101110111100
+00011000110000100111111000000000
+01100111111000010000011110100100
+01011000000000000000011100001110
+01100111111100010000110000001000
+11011000111000000000000000000000
+00100000010000000111101111010111
+01101111111000001000011110100110
+00100100011110100000000000000000
+01110000100011000001101100000010
+01101111111000001000100100000000
+11000001100000001000000000000000
+01110000000010010000000000000010
+00100000011000000000000000000000
+11011010001000000000011101001111
+11011000111000000000000000000001
+01100010001100010000110000001010
+00011111001000001111111111111111
+11100111111000001000000000010001
+11101111111000001000000000000110
+11100111111000001000000000000101
+11000010000000000111101111010100
+01011000000000000000000000000000
+11111001001000000111111000000000
+01100111111100001000110000011000
+00100000011000000000000000000000
+11011000111000000000000000000010
+11011010001000000000011101011001
+01100010001100010000110000001100
+00100000001000000111101111010010
+01000111000000110100000000100000
+01101111111000001000100100001101
+00100000011110100000000000000000
+01101111111100001000110000100101
+00011111111000010111111000001111
+00100100001110100111110000110000
+01101111111000001000100100001110
+00100000001110100111110000000110
+01101111111000001000100100000000
+11000000000000011111110001000000
+11000000100000010111110000000110
+01101111111000001000100100000010
+00100100001110100111110000000110
+00100000010000000111101111101110
+00100000001000000111101111111001
+01101111111100001000110000100101
+11000011100000001000000000000000
+01101111111000001000100100001101
+11000100000000001000000000000000
+01101111111000001000100100001101
+01111001001111111111111000000001
+01100111111000001000100100001101
+01101111111000001000100100001011
+00100000011110100000000000000000
+11000000000010000111110000101000
+00100000001000000010001101011010
+01101111111100001000110000100101
+11000011100000010000000000000000
+01101111111000001000100100001101
+11000100000000010000000000000000
+01101111111000001000100100001101
+01111001001111111111111000000010
+01100111111000001000100100001101
+01101111111000001000100100001100
+00100000011110100000000000000000
+11000000000100000111110000001001
+11000000000100001111110000100100
+11000000000100010111110000101100
+00100000001000000010001101011010
+11011000101000000000100100010011
+11011111001000000000000001000000
+00100000001000000111110010100011
+01101111111000001000100011111011
+01101000010010001000100011111101
+10011000010000010111111000000000
+00100000001110100111110000100000
+01101000010010001000100011111110
+10011000010000001111111000000000
+11000000000000001111110000010001
+00100000001000000111110000100000
+01110000000010010000110000000000
+01101111111000001000100100010100
+11000000000000010111110000100001
+11000000000000011111110000100001
+01101111111000001000100100010100
+01100111111000001000100100010011
+01101111111000001000100100010101
+11100111111000001000000000000101
+01101111111000001000100100010111
+11100111111000001000000000000101
+01101111111000001000100100011001
+11100111111000001000000000000101
+11011111001000000000000000000100
+11011000110000000000100100010011
+00100000001000000111101111011011
+01110000000010010000110000000000
+11011111001000000000000000001000
+11011000110000000000100100010011
+00100000001000000111101111011011
+01110000000010010000110000000000
+11011111001000000000000000000011
+11011000110000000000100100110011
+00100000001000000111101111011011
+01110000000010010000101100000000
+11011111001000000000000000001000
+11011000110000000000100100100011
+00100000001000000111101111001111
+01110000000010010000110000000000
+11011111001000000000000000000010
+11011000110000000000100101000011
+00100000001000000111101111011011
+01101111111000001000100100000000
+11000000000000010111110000110011
+00100000011000000000000000000000
+01101111111100001000110000000000
+01111001001000000111111000000111
+01100111111100001000110000000000
+01110000000010010001000000000001
+00100000011000000000000000000000
+01101111111000001000100100000000
+11000001000000011000000000000000
+11000000000000010111110000111100
+00100000011000000000000000000000
+01101111111000001000100100010000
+00100000011110100000000000000000
+01110000000010010000111100000001
+00100000001000000111110001000011
+11011000111000000000000000001111
+00100000010000000111110011101111
+00100100011110100000000000000000
+01101111111100001000110000000000
+11000100000000111000000000000000
+01110000100011000000000011111100
+00100000000000000111010100110000
+01110000100011000000000000111100
+00100000011000000000000000000000
+01100000101000010000011010010001
+01100000010011000000011001111000
+01100001011000100000011010000000
+00100000010000000111110001010001
+01100000110000010000011010001111
+01100111001000010000011010011011
+01100000111000010000011010011001
+00100000011000000000000000000000
+01100010001000100000011010000100
+01100010010000100000011010001000
+01100010011000011000011010001100
+00100000011000000000000000000000
+01000111000000111100000000100000
+01101111111000010000011010010001
+10011000000000000000101000000000
+01101000010011000000011001111000
+01101001011000100000011010000000
+00100000010000000111110001100000
+01101111001000010000011010011011
+01101000111000010000011010011001
+01101111111000010000011010001111
+10011000000000000000110000000000
+00100000011000000000000000000000
+01101010001000100000011010000100
+01101010010000100000011010001000
+01101010011000011000011010001100
+00100000011000000000000000000000
+01101111111000010000011010010001
+00011111111000100000101000000000
+00100000011000000000000000000000
+01101111111000010000011010001111
+00011111111000100000110000000000
+00100000011000000000000000000000
+00011000101000100111111000000000
+01100111111000010000011010010001
+00100000011000000000000000000000
+00011000110000100111111000000000
+01100111111000010000011010001111
+00100000011000000000000000000000
+00011000101000100111111000000000
+01100111111000010000011010010001
+00011000110000100111111000000000
+01100111111000010000011010001111
+00100000011000000000000000000000
+01101111111000010000011010010001
+00011111111000100000101000000000
+01101111111000010000011010001111
+00011111111000100000110000000000
+00100000011000000000000000000000
+10011000010001100010001000000000
+00100000011000010000000000000000
+11011010001000000000000100000000
+10011010001000001111111000000000
+10011000010001100010001000000000
+00100000011000000000000000000000
+00100000010000000111110010001101
+00100000010000000111110010001101
+00100000001000000111110010001101
+00100000010000000111110010001001
+11101111111000001000000000000110
+11100111111000001000000000000101
+11101111111000011000000000000110
+11100111111000011000000000000101
+00100000011000000000000000000000
+11101111111001000000000000000110
+11100111111001000000000000000101
+00100000011000000000000000000000
+00100000010000000111110010001111
+00100000010000000111110010001001
+00100000010000000111110010001001
+00100000010000000111110010001001
+00100000001000000111110010001001
+00011111111000001111111111111111
+00100000000000000000000000100110
+00100100001110100111110010010001
+00100000011000000000000000000000
+11011111001000000000000000001010
+00100000000000000010111011100000
+11000010000000000111110010010110
+00100000011000000000000000000000
+00100000010000000111110010011010
+00100000010000000111110010011011
+00011000000000000111001000000100
+00100000001000000111110010100011
+00011000000000000111001000100000
+00100000001000000111110010100011
+00011000000000000111001001000000
+00100000001000000111110010100011
+00011111001000100111111000000000
+00100000011110100000000000000000
+00011000000000000111111000000000
+11100111111000000000000000000101
+00100000011000000000000000000000
+11011111001000000000000000100000
+11011000101000000000011010100001
+00100000001000000111110010100001
+11101111111000100000000000010011
+11101000010000100000000000010001
+10011000010000101111111000000000
+11100111111000100000000000000101
+00011010001000001010001000000100
+00011010011000001010011000000100
+11000010000000000111110010101001
+00100000011000000000000000000000
+01000111000001000100000000100001
+00011111001000100111111000000000
+00011111111001100111110000000001
+00100000011000010000000000000000
+10011010001000001010010000000000
+00011010010000001010010111111111
+00011111001000110111001000000000
+11101000010000001000000000010001
+11101111111000001000000000010010
+11100111111000001000000000010001
+11100000010000001000000000010010
+00011010010000001010010111111111
+00011010001000001010001000000001
+11000010000000000111110010111000
+00100000011000000000000000000000
+00011111111011110000010000000000
+00100000010000000111110011000110
+00011000010100001000010000000000
+00011111111100000111111000000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+00011111111100010000110000000000
+00011000110100001000110000000000
+00011111111100001111111000000000
+00011111111100000111111000000000
+10011000110000011111111000000000
+00100000011000000000000000000000
+01000111000001001100000000100001
+00011111001000100111111000000000
+00100000011110100000000000000000
+00011111001000001111001111111000
+00100000010000010111110010001001
+00100000011000101000000000000000
+00100000001000010111110011001111
+00011111001000001111001000001000
+00011111001000001111001111111100
+00100000010000010111110010000100
+00100000011000101000000000000000
+00100000001000010111110011010100
+00011111001000001111001000000100
+00100000001000000111110011011010
+00011111001000100111111000000000
+00100000011110100000000000000000
+11101111111000001000000000000110
+11100111111000001000000000000101
+11000010000000000111110011011100
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000010000011001110000
+01000111000001010100000000100001
+00100000010000000111110011101111
+01101000010010010000011001110000
+11011000101000000100000011110100
+00011000111000111111111000000000
+10011000101000001000101000000000
+11100000010000010000000000000101
+00100000011000000000000000000000
+11011001011000000000100000000000
+00011001011100000001011000000000
+10011001011000001111111000000000
+00100000011000000000000000000000
+11011000111000000000000000000000
+01000111000001011100000000100001
+01101000010010100100000010010101
+00011100010000110111111000000000
+01100111111000100100000010010101
+10011000010001100111110000000000
+00100100010000010111110011101010
+10011000010001100001011000000000
+00011001011000100000010000000000
+11011000110000000100000011110100
+00011000110000100000101000000000
+11011111001000000000000000010000
+11101111111000010000000000000110
+10011000010001100111111000000000
+00100000001000010111110011111110
+00011000000000000111111000000000
+11100111111000010000000000000101
+11000010000000000111110011111010
+11011000110000000100000011110100
+00011000111000111111111000000000
+10011000110000001000110000000000
+11101111111000010000000000000110
+00100000011000000000000000000000
+10011000010000001000010000000000
+00011000010000100111001000000000
+01101111111000010000000001000100
+10011111001001100111111000000000
+00100000011000010000000000000000
+00011111111001100111111000000000
+00011000010100010000010000000000
+00011000010000001000010000000001
+00011000010100000000010000000000
+10011000010000011000010000000000
+00100000011000000000000000000000
+00100000010000000111110100010010
+00100000001000000111110100011111
+01111000010101000111110000000000
+10011000010001100111111000000000
+00100000001000010111110100010111
+01111000001101000111110000000000
+00011111111001100111111000000000
+11000100000001111000000000000000
+00011111111000100010100000000000
+11011000010000010000000000000000
+01101111111000010000000001000100
+10011000010001100111111000000000
+10011010100000001111111000000000
+01111001001111111111111001000000
+00100000011000000000000000000000
+01101000010010010000000001000100
+10011000000000000000110000000000
+00011111111100010111111000000000
+10011000010011111111111000000000
+10011000110000001111111000000000
+00100000011000000000000000000000
+00011111111011010111111000000000
+00011111111100100111111000000000
+01101000010010011100000010111101
+10011000010001101111110000000000
+00100000010000000111110101100010
+00011000000001111000010000000000
+00100000011000000000000000000000
+01101000010010010000000001000100
+10011000010001101111110000000000
+00100000010000000111110101011111
+00011111111100000111111000000000
+00011000000001110000010000000000
+10011000010000011000010000000000
+00100000011000000000000000000000
+11011000010000000000000000000000
+00011000010000100010100000000000
+11101111111000001000000000000011
+00100000010000000111110100111111
+00011010100000100000010000000000
+00100000010000000111110101110000
+11011010010000000000000000001010
+10011010010011111111111000000000
+10011000010000001111111000000000
+00011111111000100000010000000000
+11000010000000000111110100110100
+00100000011000000000000000000000
+11011000010000000000000000111010
+10011000010001100111110000000000
+00100100001000010111110101001000
+11011000010000000000000001100001
+10011000010001100111110000000000
+00100000001000010111110101001011
+11011000010000000000000000110111
+10011000010001100111111000000000
+00100000011000000000000000000000
+11011000010000000000000000110000
+10011000010001100111111000000000
+00100000011000000000000000000000
+11011000010000000000000001010111
+10011000010001100111111000000000
+00100000011000000000000000000000
+00011111001001100111110000000000
+00100000011000101000000000000000
+00011111111000110111111000000000
+11000010000000000111110101010000
+00100000011000000000000000000000
+00011000000000000111111000000001
+00011111001001100111110000000000
+00100000011000101000000000000000
+00011111111000111111111000000000
+11000010000000000111110101010110
+00100000011000000000000000000000
+01011000000000000000000000000000
+00011111001000100010001000000000
+11101000010000010000000000000110
+10011000010000001111111000000000
+11000010000000000111110101011011
+10011010001001101111110000000000
+00100000010000000111110101100010
+00011000000001111111111000000000
+00100000011000000000000000000000
+00100000011110101000000000000000
+00100000001000000111110101100010
+11101111111000001000000000010001
+11101000010000001000000000010010
+10011000010001100111110000000000
+00100100011000101000000000000000
+00011010001000001010001000000001
+00011010010000001010010000000001
+11000010000000000111110101100100
+00100000001000000111110110111000
+10011000010001100111110000000000
+00100100011000010000000000000000
+00011000010000100111111000000000
+00100000011000000000000000000000
+10011000010000001111111000000000
+10011000010001100000010000000000
+10011000010001100111111000000000
+00100000011000000000000000000000
+11011000101000000000000000000000
+00100000001000000111110101110111
+11011000101000000100000000000000
+11011111001000000001000000000000
+00100000001000000111110010100011
+00100000011110100000000000000000
+00011111111000100111101000000000
+00100000010000000111000011010111
+01110000100000100000001100000001
+00100000011000000000000000000000
+01100111111100010000001000000101
+01101111111100001000001000000011
+01111001001000000111111000000100
+01100111111100001000001000000011
+00100000011000000000000000000000
+01100111111100010000001000000111
+01101111111100001000001000000011
+01111001001000000111111000000110
+01100111111100001000001000000011
+00100000011000000000000000000000
+01100111111100010000001000000101
+01110000100000100000001100110000
+00100000011000000000000000000000
+01000111000001100100000000100001
+11101000010001000000000000010001
+00011000010000010111111011111111
+00100100001110100111110110010001
+00011000010011001111111000000000
+11100111111001000000000000010001
+00011010001000001010001000000111
+11101111111000001000000000010001
+00100100001110100010001101011010
+01101111111000001000011001101111
+11100111111000001000000000010001
+00100000011000000000000000000000
+01000111000001101100000000100001
+11011111001000000000000000001000
+11101111111001000000000000010001
+00100000011110100000000000000000
+11101111111000001000000000010001
+00100100001110100111110110100000
+00011010001000001010001000000001
+11000010000000000111110110011011
+00100000001000000010001101011010
+11011000010000000000000000000000
+11100000010000001000000000010001
+00100000011000000000000000000000
+11101111111001000000000000010001
+00100000011000000000000000000000
+11101111111000001000000000010001
+00100000011000000000000000000000
+11101111111000010000000000010001
+00100000011000000000000000000000
+11011000010000000000000000000000
+01101111111000001000000000000110
+11000010000000000111110110101010
+00011000010000001000010000000001
+11000010000000000111110110101010
+00011000010000100111111000000000
+00100000011000000000000000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+00011000010000100111111000000000
+00100000011000000000000000000000
+00011000000000000111110111111111
+00100000011000000000000000000000
+00011000000000000111110000000001
+00100000011000000000000000000000
+00011000000000000111110000000000
+00100000011000000000000000000000
+01111000001101000111110000000000
+00100000011000000000000000000000
+01111000010101000111110000000000
+00100000011000000000000000000000
+01111000001101100111110000000000
+00100000011000000000000000000000
+01111000010101100111110000000000
+00100000011000000000000000000000
+01111000001110001111110000000000
+00100000011000000000000000000000
+01111000010000001111110000000000
+00100000011000000000000000000000
+01111000001000001111110000000000
+00100000011000000000000000000000
+01011000000000000000000000000001
+00100000011000000000000000000000
+01011000000000000000000000000000
+00100000011000000000000000000000
+00011111001001100111110000000000
+00100000011000101000000000000000
+11101000010000001000000000000110
+10011000010000001111111000000000
+11000010000000000111110111001110
+00100000011000000000000000000000
+00011111001000100111111000000000
+00100000011110100000000000000000
+00011000110000100111111000000000
+10011111001000001111111000000000
+00011111111000001111111111111111
+00011111111000100000110000000000
+11101111111000001000000000000110
+00011000110000001000110111111110
+11100111111000001000000000000101
+11000010000000000111110111011000
+00100000011000000000000000000000
+00011111111100000111111000000000
+00011111111010110111111000000000
+00100000011000000000000000000000
+00011111111011010111111000000000
+00100000001000000111110111011110
+01011000000000000000000000000000
+01100111111001000000000000010110
+01111001001000000111111000011001
+11100111111000100000000000000101
+00100000011000000000000000000000
+11011111001000000000000000010000
+00011000000010100111111000000000
+11100111111000001000000000000101
+11000010000000000111110111101000
+00100000011000000000000000000000
Index: output/eeprom.dat
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/eeprom.dat	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/eeprom.dat	(working copy)
@@ -0,0 +1,8284 @@
+00
+02
+94
+6f
+05
+88
+f9
+0f
+8b
+5e
+67
+52
+4b
+5c
+96
+56
+54
+a7
+aa
+55
+00
+1b
+69
+68
+f8
+fb
+d6
+8d
+ce
+12
+8d
+f8
+2a
+5c
+30
+58
+f7
+51
+43
+a3
+d5
+34
+b4
+d9
+01
+2f
+78
+97
+f9
+e5
+e0
+d3
+d5
+b5
+62
+06
+f8
+a0
+1c
+a4
+24
+df
+7c
+39
+fe
+7e
+00
+d8
+24
+8a
+72
+9d
+9d
+17
+43
+2f
+62
+af
+cf
+fa
+e3
+56
+12
+fc
+99
+f5
+f2
+d6
+3b
+d6
+ce
+df
+ba
+d6
+c0
+7a
+6c
+44
+cb
+91
+37
+68
+4b
+17
+61
+33
+57
+52
+e7
+c6
+cc
+eb
+a1
+16
+a4
+fb
+99
+f3
+34
+4c
+ab
+de
+2b
+f9
+71
+bd
+31
+01
+e0
+db
+30
+f1
+b2
+b9
+1b
+ef
+13
+b8
+88
+2d
+6c
+d5
+30
+19
+3f
+5f
+f5
+28
+67
+74
+a4
+b3
+e0
+61
+22
+b8
+d2
+a9
+a3
+23
+d8
+57
+08
+9a
+24
+b2
+24
+06
+8d
+db
+5c
+7a
+fd
+8b
+cc
+0d
+09
+02
+db
+5b
+7f
+b7
+7a
+49
+36
+0e
+dc
+8a
+06
+b4
+e8
+ec
+f8
+87
+08
+21
+5e
+f9
+ea
+58
+f0
+fc
+8f
+07
+4c
+ae
+aa
+63
+38
+75
+61
+da
+8f
+41
+56
+b3
+63
+60
+84
+70
+f7
+e1
+9f
+02
+6d
+ee
+e6
+fe
+98
+af
+e8
+45
+ea
+9e
+ff
+4f
+b9
+37
+28
+8e
+a7
+fb
+49
+cf
+8f
+fd
+e7
+c6
+e2
+3b
+c3
+2e
+8e
+07
+9a
+d0
+ba
+a3
+ac
+c6
+d5
+a9
+cb
+20
+74
+d7
+dc
+53
+e8
+f2
+f8
+d4
+b5
+ab
+c0
+55
+e0
+10
+1c
+20
+fc
+39
+ef
+eb
+c8
+60
+e0
+b6
+90
+82
+bb
+28
+26
+12
+be
+a8
+fd
+1b
+52
+c9
+d3
+be
+0c
+fd
+83
+b3
+29
+bf
+d7
+38
+2d
+7f
+df
+0d
+25
+79
+91
+bd
+9a
+03
+75
+29
+bc
+49
+bb
+8e
+32
+af
+92
+9e
+e6
+80
+d9
+d9
+ce
+fe
+63
+3b
+81
+5d
+42
+b8
+d9
+0f
+a4
+9a
+ca
+b4
+28
+22
+84
+b3
+85
+e3
+3b
+62
+ca
+49
+2a
+b7
+07
+d1
+87
+cd
+af
+fb
+6f
+95
+21
+f3
+23
+e7
+27
+25
+9b
+f4
+31
+52
+81
+34
+4b
+79
+f6
+3d
+f4
+ad
+37
+1b
+47
+b7
+7b
+f8
+97
+64
+eb
+0f
+eb
+43
+ea
+94
+b1
+39
+8c
+f5
+27
+e3
+8d
+e6
+1f
+a3
+80
+95
+69
+80
+8c
+17
+ef
+88
+2a
+cd
+32
+b5
+31
+b0
+e3
+91
+5b
+21
+9f
+cb
+13
+3c
+0d
+c4
+c9
+63
+01
+44
+f8
+8e
+83
+80
+47
+96
+08
+da
+f4
+be
+53
+48
+d3
+99
+34
+4d
+e5
+64
+0b
+42
+5b
+4d
+c6
+26
+e6
+9e
+8d
+0d
+6e
+58
+ec
+31
+af
+d5
+a0
+ab
+58
+8f
+98
+ee
+f9
+63
+8a
+b6
+5e
+05
+18
+18
+ac
+63
+86
+78
+92
+81
+8a
+b5
+cb
+d4
+01
+2e
+c9
+f7
+aa
+d4
+0b
+48
+5d
+62
+07
+67
+43
+7e
+15
+07
+28
+a0
+1b
+ff
+39
+1d
+fa
+23
+da
+58
+e4
+49
+e0
+72
+46
+f5
+6c
+fb
+92
+97
+e0
+ea
+97
+ac
+ae
+c2
+9c
+05
+aa
+4b
+07
+e2
+6a
+c3
+5a
+1b
+93
+2b
+ba
+7d
+79
+4d
+d9
+eb
+b4
+20
+bb
+c3
+6b
+2f
+7d
+b7
+e8
+99
+42
+5f
+fa
+94
+68
+a7
+1b
+ee
+5c
+42
+80
+ca
+f4
+a4
+92
+eb
+c0
+29
+e0
+ca
+f8
+f3
+4e
+fd
+4d
+f2
+e3
+03
+a0
+8b
+29
+c0
+c9
+81
+30
+41
+40
+24
+57
+96
+0f
+6d
+97
+e7
+7d
+fd
+96
+7c
+0e
+a6
+ee
+38
+59
+70
+f3
+0e
+d2
+e7
+73
+df
+4a
+0a
+23
+4b
+87
+1c
+9e
+ae
+8d
+96
+f7
+47
+36
+1a
+58
+20
+38
+7d
+d1
+ed
+21
+31
+3e
+32
+d5
+c9
+e4
+59
+66
+d1
+77
+a5
+c2
+f2
+03
+8c
+6e
+2b
+f4
+aa
+ad
+97
+a9
+3e
+88
+5e
+d4
+82
+9a
+46
+53
+68
+95
+5d
+81
+d2
+fd
+95
+b7
+57
+a0
+75
+95
+eb
+9e
+ea
+03
+f7
+e5
+e9
+a6
+dd
+62
+4b
+ad
+83
+0d
+a2
+b8
+0e
+83
+d9
+59
+4a
+07
+99
+bb
+88
+a6
+b4
+b2
+a2
+99
+99
+22
+2e
+25
+95
+2a
+f6
+ca
+85
+7c
+70
+4c
+54
+e8
+04
+e9
+9c
+c8
+4d
+19
+cb
+80
+4d
+7b
+9a
+69
+ea
+45
+5f
+a1
+bb
+70
+3b
+b1
+b1
+c9
+73
+ca
+98
+84
+db
+6a
+e4
+b5
+76
+05
+20
+a4
+fb
+a9
+0a
+9d
+63
+32
+74
+42
+d3
+57
+c1
+83
+0c
+47
+51
+b0
+cd
+76
+6a
+a8
+63
+91
+14
+11
+98
+62
+41
+7e
+7b
+70
+7c
+56
+1b
+60
+56
+1c
+23
+f4
+b7
+f9
+51
+02
+ad
+75
+96
+d3
+7f
+4a
+dc
+07
+70
+73
+14
+08
+f9
+3a
+4b
+00
+31
+ec
+40
+46
+1c
+a1
+a7
+f7
+b1
+95
+45
+d0
+ef
+e4
+79
+e9
+93
+7d
+52
+a9
+85
+a2
+25
+a5
+d8
+de
+ff
+4b
+d2
+fa
+e2
+0c
+98
+e3
+8a
+89
+a3
+c1
+1c
+e2
+a8
+0d
+b7
+c6
+32
+78
+7a
+74
+f4
+e2
+10
+de
+1f
+de
+5d
+86
+21
+f6
+06
+2a
+3b
+47
+21
+a3
+89
+a2
+fb
+eb
+5e
+5f
+b6
+bc
+71
+2e
+18
+de
+04
+86
+49
+40
+5e
+9d
+1a
+e8
+c3
+b1
+b0
+c1
+0c
+4a
+2f
+21
+b5
+5b
+72
+03
+be
+1c
+12
+4f
+46
+59
+ef
+9e
+57
+37
+49
+8d
+0f
+62
+c6
+2a
+ec
+85
+20
+49
+5d
+d7
+4c
+90
+19
+8f
+57
+49
+f2
+d8
+ff
+98
+33
+3e
+f9
+57
+08
+75
+06
+7a
+bc
+1a
+b4
+53
+5b
+9b
+a8
+12
+9e
+90
+98
+52
+59
+29
+88
+fe
+02
+af
+a9
+0e
+7e
+f1
+de
+17
+45
+8d
+bd
+f5
+57
+b3
+36
+91
+11
+04
+7e
+22
+ae
+ad
+9d
+a2
+97
+67
+7e
+3a
+8a
+90
+97
+65
+04
+80
+64
+ea
+11
+00
+e4
+b3
+75
+89
+04
+27
+be
+26
+5f
+84
+05
+e2
+aa
+e1
+ef
+21
+e5
+f8
+0c
+0b
+a5
+50
+7c
+65
+7a
+4f
+8b
+b8
+0b
+ff
+57
+a9
+13
+be
+1d
+01
+04
+1d
+e0
+a0
+fa
+4b
+1d
+1d
+a0
+0e
+54
+6d
+24
+36
+35
+30
+57
+a3
+7f
+bf
+a9
+05
+7f
+e5
+fe
+a0
+2a
+a6
+28
+f8
+e4
+df
+e6
+3d
+8c
+b7
+1c
+55
+4c
+8e
+8f
+b0
+e5
+99
+16
+8e
+e5
+e7
+f0
+6a
+d5
+b1
+8d
+85
+d8
+73
+05
+b0
+6d
+8b
+65
+1a
+ae
+72
+b6
+9c
+09
+32
+8e
+e5
+d7
+78
+c3
+ca
+51
+5c
+65
+51
+fc
+f2
+9f
+09
+ed
+2e
+13
+78
+88
+de
+cf
+a3
+f4
+7c
+58
+90
+f9
+cd
+f5
+0f
+9f
+1a
+77
+ba
+81
+d2
+5b
+4e
+df
+47
+d2
+f4
+9f
+16
+93
+ed
+f5
+51
+93
+57
+e7
+21
+83
+af
+8b
+97
+18
+04
+a9
+3e
+ad
+83
+48
+2e
+b6
+26
+6d
+58
+c8
+45
+f4
+3a
+1c
+3d
+a4
+e5
+5a
+df
+08
+9c
+be
+2a
+bc
+2d
+27
+1e
+e8
+22
+3b
+bd
+71
+56
+0b
+29
+f1
+7d
+45
+63
+fa
+16
+be
+9b
+fe
+4c
+c7
+3f
+14
+f3
+90
+51
+73
+cf
+a6
+91
+7f
+e1
+b1
+33
+82
+5a
+78
+f0
+4e
+3e
+26
+9c
+53
+11
+9d
+d6
+3f
+f7
+0c
+f6
+ff
+52
+67
+ad
+61
+f4
+e3
+b6
+77
+6b
+75
+e6
+23
+b6
+24
+69
+54
+ca
+85
+d7
+88
+6f
+ce
+74
+c5
+85
+02
+0d
+99
+62
+d9
+42
+04
+dc
+9a
+fc
+25
+83
+43
+25
+6e
+42
+74
+a4
+f3
+f0
+69
+fa
+f8
+59
+91
+be
+df
+51
+04
+67
+d9
+b8
+3d
+a3
+27
+f1
+76
+6e
+c0
+a2
+31
+31
+4d
+f9
+1d
+71
+70
+3d
+21
+b3
+fd
+d5
+dd
+ce
+d2
+48
+a8
+3c
+1e
+df
+b5
+96
+dd
+66
+50
+96
+41
+ae
+39
+6d
+36
+6b
+09
+e5
+4b
+23
+0c
+da
+2a
+b5
+91
+df
+04
+20
+b8
+76
+19
+c7
+19
+88
+bc
+74
+c5
+8c
+9b
+90
+f6
+b6
+13
+59
+34
+36
+bf
+5a
+2d
+50
+0a
+ba
+0d
+12
+12
+43
+3c
+78
+de
+a2
+96
+39
+46
+ee
+6c
+ca
+c3
+19
+54
+fe
+49
+21
+b9
+10
+56
+2c
+05
+e5
+42
+33
+68
+b0
+f5
+06
+ed
+27
+49
+da
+77
+32
+e3
+49
+09
+fe
+2c
+24
+cb
+78
+29
+c3
+6b
+99
+71
+f1
+d9
+7b
+2a
+cc
+8a
+5c
+1f
+1d
+64
+39
+15
+ff
+47
+e8
+4b
+e3
+c0
+97
+57
+a2
+e8
+69
+b0
+de
+81
+65
+e2
+55
+0f
+14
+ae
+77
+b5
+04
+60
+2e
+c3
+5b
+12
+11
+2a
+14
+bb
+b9
+42
+6b
+b4
+64
+08
+52
+53
+db
+08
+75
+13
+53
+47
+a6
+81
+63
+b2
+eb
+38
+17
+b8
+11
+37
+3b
+6b
+d0
+56
+e9
+c4
+ad
+26
+79
+53
+e4
+da
+e7
+b0
+91
+5e
+61
+12
+88
+4c
+ba
+a6
+2c
+26
+05
+11
+d1
+70
+d0
+af
+74
+2c
+c2
+f9
+c8
+63
+19
+ae
+6b
+90
+91
+da
+84
+80
+1d
+fd
+ff
+16
+23
+d5
+30
+09
+48
+a2
+37
+ea
+43
+bb
+1e
+19
+16
+2a
+43
+54
+b9
+30
+b7
+b1
+02
+4f
+87
+7a
+f0
+25
+52
+9c
+b1
+05
+a3
+98
+a3
+8a
+0f
+2c
+d3
+95
+de
+e8
+bd
+13
+5e
+37
+81
+92
+cb
+38
+ae
+3d
+07
+ce
+0c
+5a
+a8
+2f
+40
+77
+09
+fd
+cc
+c7
+ea
+10
+2a
+86
+42
+27
+57
+06
+2c
+ce
+23
+54
+c5
+8c
+9d
+d8
+92
+25
+86
+a5
+50
+a6
+f1
+f2
+48
+44
+e3
+a2
+1c
+24
+bf
+34
+7b
+49
+58
+66
+e7
+84
+fe
+ee
+c2
+67
+6c
+71
+18
+02
+d4
+5a
+f4
+e0
+7d
+09
+c5
+03
+3e
+08
+04
+1b
+ba
+b9
+73
+0f
+24
+40
+21
+e7
+fd
+a7
+3f
+4a
+e0
+75
+60
+26
+8c
+fb
+59
+b5
+8f
+89
+11
+cb
+e2
+99
+48
+25
+5f
+59
+02
+49
+7f
+65
+20
+54
+ec
+92
+78
+e9
+93
+b5
+f3
+fe
+78
+8f
+32
+03
+f8
+e5
+b1
+63
+8b
+3e
+24
+ea
+ca
+6a
+f8
+fe
+7f
+14
+81
+2a
+60
+14
+ef
+85
+f0
+33
+a2
+c4
+9f
+8e
+ae
+06
+2f
+6b
+c5
+c7
+d0
+f7
+10
+22
+2a
+2a
+4a
+0c
+04
+c3
+0a
+f7
+86
+c8
+0e
+45
+eb
+f4
+2c
+bb
+b0
+e3
+45
+ba
+d7
+62
+df
+01
+0e
+82
+13
+f6
+21
+1c
+47
+fe
+91
+00
+54
+a6
+24
+72
+25
+0f
+a3
+0e
+9a
+32
+c4
+73
+c3
+06
+1c
+f4
+6f
+f3
+1d
+4b
+8e
+ff
+43
+ab
+d2
+ba
+4e
+a0
+b5
+8c
+b9
+5e
+71
+02
+5e
+58
+56
+ba
+29
+bf
+99
+d1
+50
+4b
+a8
+1b
+44
+0c
+98
+08
+d2
+64
+04
+93
+1c
+57
+8d
+3b
+6c
+eb
+75
+9a
+38
+ef
+6f
+8d
+f2
+be
+2e
+53
+73
+f8
+3b
+71
+8b
+33
+94
+8a
+34
+cb
+89
+63
+7d
+db
+e5
+a3
+14
+2b
+8a
+dd
+51
+8e
+90
+81
+49
+c6
+cd
+eb
+88
+ac
+f6
+c2
+cc
+01
+ed
+4b
+e8
+5e
+80
+eb
+e0
+d4
+b6
+96
+d4
+08
+a1
+2b
+96
+b9
+f6
+b6
+90
+72
+9f
+df
+30
+a0
+00
+21
+73
+49
+c3
+82
+a9
+6b
+35
+ea
+31
+e1
+53
+96
+49
+41
+2a
+c9
+dd
+e7
+04
+a9
+9f
+a8
+d2
+b1
+5b
+27
+b4
+27
+6b
+92
+14
+ad
+1d
+ed
+bf
+07
+cc
+46
+e5
+4a
+8c
+80
+8b
+5e
+7d
+45
+54
+42
+49
+6c
+ea
+05
+04
+37
+59
+99
+de
+77
+4d
+6b
+cd
+44
+b5
+c4
+ed
+3a
+47
+eb
+d3
+32
+9e
+a1
+52
+e6
+28
+c5
+f1
+ba
+f7
+9c
+bd
+11
+ae
+22
+3d
+e8
+2d
+2e
+bc
+1e
+5b
+b4
+5b
+72
+5e
+4a
+e5
+5c
+a9
+a6
+7f
+55
+2c
+1a
+dd
+a6
+bf
+29
+9b
+42
+da
+9d
+26
+4e
+e5
+c5
+6a
+0b
+64
+b3
+28
+47
+63
+ce
+68
+72
+a9
+b4
+f2
+b3
+fb
+9a
+6a
+b6
+40
+b8
+46
+59
+01
+b4
+32
+d3
+04
+d3
+dd
+8d
+42
+5f
+cf
+9d
+ea
+67
+9b
+c5
+9f
+ea
+3e
+0c
+1e
+11
+3b
+ea
+0c
+57
+97
+19
+c1
+73
+2c
+89
+85
+92
+e3
+37
+67
+7a
+30
+66
+f4
+2e
+63
+06
+d5
+56
+98
+88
+51
+7d
+e3
+a3
+ba
+3f
+36
+92
+fa
+a6
+ab
+bf
+68
+bd
+e5
+fd
+94
+35
+8e
+7a
+1f
+f7
+59
+78
+3d
+4e
+14
+8d
+47
+37
+72
+af
+e2
+3d
+4a
+04
+91
+8b
+54
+ad
+99
+d2
+34
+98
+e2
+ed
+ed
+c0
+76
+28
+6d
+29
+a4
+2c
+bd
+27
+a7
+10
+6b
+bf
+c0
+f1
+0a
+91
+80
+88
+7f
+6e
+8b
+e9
+ec
+26
+0c
+9e
+ba
+7b
+f5
+fb
+04
+f3
+eb
+fb
+19
+83
+2c
+2f
+6a
+1a
+76
+58
+03
+a6
+41
+11
+50
+53
+9b
+35
+6f
+33
+5d
+63
+e5
+cb
+5a
+6c
+4d
+26
+94
+76
+b1
+11
+92
+40
+fc
+82
+85
+0f
+47
+ba
+b7
+69
+39
+86
+57
+5a
+ac
+9f
+5c
+00
+0e
+df
+76
+77
+8d
+02
+53
+cd
+ab
+1b
+ea
+95
+1d
+6c
+e3
+06
+9d
+8a
+d4
+77
+f4
+63
+c8
+cb
+94
+5a
+c4
+39
+4b
+d3
+1d
+66
+eb
+c7
+c4
+10
+20
+4e
+66
+42
+2d
+bb
+80
+2d
+bb
+76
+ba
+ba
+55
+07
+08
+f6
+ff
+e1
+b5
+2e
+8a
+61
+16
+13
+41
+ad
+7a
+f4
+18
+6d
+03
+0e
+a7
+68
+98
+9b
+bb
+9d
+b9
+2f
+a7
+8b
+96
+27
+69
+6f
+83
+10
+7c
+73
+b7
+9d
+21
+06
+ec
+fd
+34
+2b
+19
+ac
+a5
+60
+fa
+e3
+54
+9b
+4a
+bd
+a2
+1c
+fd
+c4
+eb
+b6
+24
+12
+ff
+72
+c4
+7d
+5e
+55
+68
+f3
+8e
+4e
+b9
+d1
+3f
+92
+c4
+b9
+df
+c4
+16
+62
+4e
+da
+1b
+5f
+ae
+00
+4d
+88
+51
+7a
+2d
+dd
+30
+c0
+cb
+1e
+8d
+45
+a6
+da
+02
+e1
+41
+08
+47
+a7
+30
+27
+4d
+c4
+11
+74
+e7
+0b
+05
+99
+45
+0d
+9f
+5a
+0d
+60
+02
+32
+cb
+24
+fb
+88
+36
+e2
+55
+c1
+58
+0d
+7b
+ca
+d7
+eb
+2a
+3b
+d3
+f1
+7d
+9b
+aa
+e1
+01
+22
+24
+e0
+8f
+f2
+62
+8b
+98
+30
+47
+cf
+4e
+49
+ae
+fb
+90
+98
+eb
+28
+d6
+d0
+49
+31
+b8
+ff
+db
+2c
+3a
+0d
+74
+f5
+95
+78
+b3
+c7
+55
+ca
+b4
+ec
+44
+4e
+13
+08
+70
+d3
+a6
+6d
+86
+fb
+14
+07
+28
+e0
+6a
+bc
+b0
+57
+dc
+05
+72
+b9
+c6
+cf
+51
+30
+70
+7f
+a3
+71
+75
+1f
+ed
+8a
+67
+f5
+0d
+54
+0d
+47
+b7
+1d
+e0
+35
+43
+37
+09
+fd
+55
+0b
+da
+91
+8c
+53
+f5
+76
+6c
+14
+1f
+36
+2f
+55
+3a
+6b
+e0
+7e
+38
+c0
+52
+86
+e5
+35
+8f
+f4
+67
+8d
+71
+f7
+dc
+a7
+eb
+6f
+fa
+dd
+28
+89
+c4
+c2
+59
+d2
+5f
+61
+cf
+a0
+57
+07
+e6
+47
+ef
+c0
+e9
+60
+3e
+fb
+70
+71
+8a
+94
+8d
+32
+ac
+c0
+21
+87
+22
+49
+72
+92
+06
+8e
+ae
+c8
+85
+73
+e0
+a4
+88
+46
+37
+dc
+13
+b5
+3a
+0a
+32
+19
+87
+a1
+d1
+b5
+e6
+c1
+d8
+29
+f9
+02
+8f
+51
+1b
+5d
+3a
+17
+1a
+55
+f6
+12
+e2
+94
+52
+ac
+0a
+34
+9a
+1f
+7c
+12
+ef
+de
+5b
+f5
+15
+ed
+38
+3b
+16
+ab
+a8
+f9
+ce
+28
+e1
+63
+80
+4a
+2d
+1d
+72
+fb
+65
+22
+02
+fc
+aa
+1d
+46
+a3
+85
+a9
+6d
+c5
+6c
+3e
+31
+e5
+5a
+ed
+46
+5e
+0f
+67
+9d
+18
+82
+87
+7d
+2f
+8c
+68
+d2
+d2
+79
+3c
+c1
+8c
+86
+5a
+82
+aa
+c0
+67
+3e
+f5
+3a
+a9
+ab
+15
+bb
+04
+f4
+57
+f0
+eb
+34
+ba
+7f
+f0
+2e
+b8
+12
+b1
+4b
+3c
+d1
+39
+fb
+98
+11
+0a
+5b
+13
+cb
+77
+b4
+92
+53
+0c
+0c
+ef
+45
+3d
+ed
+5a
+2d
+63
+44
+3f
+44
+9a
+f2
+16
+12
+5a
+6c
+23
+a2
+a4
+72
+72
+6a
+44
+02
+ac
+cd
+9c
+68
+b6
+ab
+66
+4f
+5d
+07
+95
+80
+bd
+ca
+f9
+5f
+45
+fe
+23
+a6
+12
+0a
+ee
+78
+e9
+89
+f2
+bb
+49
+df
+79
+3a
+d9
+84
+ba
+29
+f1
+64
+db
+43
+4b
+d8
+28
+3b
+48
+aa
+c2
+c4
+88
+86
+bd
+d1
+ab
+cd
+19
+61
+14
+f8
+09
+49
+62
+68
+1b
+f9
+4d
+f4
+d0
+65
+4d
+0f
+9f
+b6
+48
+61
+87
+d8
+9b
+c5
+9c
+f4
+89
+fc
+ae
+d7
+0b
+87
+92
+06
+0a
+3e
+d8
+f5
+0a
+78
+ae
+93
+5d
+95
+cd
+06
+17
+d2
+b6
+ef
+d7
+f8
+89
+70
+22
+b7
+c9
+a0
+c9
+0b
+75
+12
+e4
+49
+3b
+66
+2f
+99
+67
+54
+44
+0b
+3b
+68
+a2
+1e
+4d
+fd
+13
+c9
+d4
+49
+8c
+e8
+9f
+dd
+ef
+1b
+27
+84
+84
+69
+9a
+2b
+9e
+41
+4e
+ed
+4a
+ef
+98
+0e
+aa
+39
+89
+f3
+5b
+bb
+1f
+4f
+2b
+9c
+4b
+aa
+0c
+7e
+ba
+6f
+0c
+02
+b2
+7b
+90
+1a
+b4
+db
+4d
+df
+c1
+4f
+43
+68
+98
+88
+7a
+cf
+f3
+aa
+f1
+42
+df
+4f
+10
+a6
+94
+d8
+6f
+26
+91
+cd
+8d
+10
+9e
+22
+b3
+52
+42
+27
+3b
+34
+19
+98
+00
+29
+c3
+99
+cd
+1e
+89
+21
+0f
+ac
+9c
+6f
+ad
+ab
+ca
+64
+57
+c1
+5b
+93
+af
+5d
+5a
+6e
+53
+01
+48
+72
+cf
+59
+cc
+b7
+93
+5d
+0d
+a7
+b5
+63
+e0
+4c
+f6
+fc
+77
+f9
+e4
+18
+4f
+68
+de
+93
+c7
+4f
+0f
+9f
+8b
+d8
+0b
+69
+ae
+7c
+d3
+ea
+01
+28
+9c
+04
+d1
+b9
+65
+8b
+76
+a9
+cf
+80
+18
+3a
+43
+26
+11
+9d
+cd
+41
+b5
+1e
+6c
+e9
+22
+44
+e4
+56
+8f
+a5
+ee
+95
+e6
+39
+b8
+96
+7d
+39
+cc
+e9
+a4
+12
+8f
+3f
+48
+42
+11
+4c
+69
+fc
+5a
+a4
+94
+f4
+45
+9b
+e2
+96
+0c
+d0
+cb
+ff
+d0
+bd
+39
+f8
+53
+4b
+5c
+79
+68
+eb
+85
+c4
+38
+aa
+56
+44
+36
+0b
+2f
+2e
+71
+d6
+a6
+ce
+e2
+b6
+9c
+54
+0f
+a7
+46
+24
+a9
+a0
+f2
+ea
+77
+3c
+6f
+e4
+a7
+17
+be
+c3
+c4
+72
+48
+5c
+8a
+90
+a4
+a4
+ac
+8b
+32
+41
+6b
+04
+06
+e6
+4f
+aa
+72
+53
+8d
+26
+49
+17
+73
+c9
+d4
+a6
+9a
+b9
+0d
+0d
+6c
+dd
+1e
+aa
+b2
+ab
+b4
+8f
+cf
+cc
+7b
+28
+d9
+d6
+b2
+ad
+dc
+e8
+e7
+3b
+86
+96
+94
+c2
+3c
+eb
+75
+97
+dd
+1f
+41
+dc
+fb
+ef
+74
+88
+b7
+5c
+93
+5b
+de
+db
+9a
+b9
+91
+8a
+4d
+84
+91
+f3
+c3
+89
+e6
+5b
+f9
+6d
+4e
+96
+06
+9d
+a7
+88
+e0
+83
+d0
+43
+63
+c3
+ee
+bb
+2a
+46
+4d
+55
+bd
+7d
+d5
+da
+4a
+34
+50
+64
+a0
+19
+b7
+cf
+fe
+d7
+8b
+4c
+09
+f6
+27
+52
+da
+41
+5a
+99
+f2
+fd
+85
+03
+48
+1f
+5d
+a1
+a6
+18
+60
+4f
+a0
+c5
+c5
+09
+73
+eb
+92
+b8
+86
+d9
+3c
+96
+97
+d4
+cf
+a9
+d2
+16
+d3
+b1
+b0
+a4
+b1
+f9
+d2
+32
+ca
+b4
+8e
+41
+39
+df
+0b
+ce
+d0
+2c
+c2
+be
+ec
+ed
+25
+01
+39
+31
+d9
+04
+0d
+1b
+c4
+ce
+9b
+16
+d9
+41
+41
+1b
+9f
+81
+f6
+c0
+97
+9a
+c1
+48
+68
+86
+e7
+64
+54
+21
+6d
+ee
+af
+9b
+cb
+63
+e3
+1c
+1f
+ff
+35
+52
+9d
+48
+ba
+bb
+f9
+8b
+b4
+5f
+b9
+07
+b2
+0b
+4d
+67
+a1
+db
+40
+e2
+51
+29
+83
+0d
+b4
+b5
+de
+22
+c9
+f4
+fa
+a9
+c5
+76
+23
+cb
+8b
+51
+cc
+ff
+c7
+83
+b1
+46
+08
+ee
+97
+80
+a7
+32
+50
+7e
+5f
+06
+d8
+d3
+c6
+aa
+b2
+37
+df
+a8
+6c
+2b
+75
+f9
+3a
+c8
+3d
+10
+60
+3c
+ba
+4e
+83
+5d
+47
+c0
+b7
+d3
+5c
+7e
+20
+cb
+ec
+a5
+50
+e8
+63
+7d
+8b
+93
+32
+18
+32
+27
+f3
+ba
+a2
+17
+38
+03
+30
+aa
+0f
+12
+00
+d2
+d8
+a7
+00
+b9
+81
+be
+a1
+80
+34
+12
+03
+c8
+4c
+39
+6a
+96
+8a
+71
+22
+ee
+f0
+b7
+85
+51
+ba
+a5
+64
+56
+19
+21
+35
+ac
+1a
+6b
+8a
+7f
+af
+da
+fd
+ed
+39
+75
+e8
+6d
+ac
+8a
+4c
+89
+c2
+75
+e0
+98
+cf
+2a
+c8
+9e
+2f
+88
+b6
+d1
+2d
+d8
+f8
+50
+8d
+e4
+ab
+ea
+42
+75
+44
+26
+29
+b3
+e3
+19
+0f
+0c
+23
+b6
+e4
+51
+fc
+aa
+66
+ae
+d0
+c5
+ad
+3a
+f6
+bc
+e6
+91
+1a
+fc
+ee
+57
+3e
+1a
+e6
+d3
+44
+9e
+6d
+77
+24
+c6
+77
+3d
+c2
+cf
+e6
+0f
+e8
+36
+6f
+45
+19
+80
+a6
+ab
+6e
+d2
+3d
+e5
+30
+bc
+6d
+b3
+dc
+e6
+9b
+f5
+6f
+b8
+79
+e8
+9e
+3f
+bc
+e4
+8d
+ed
+1c
+e9
+37
+74
+62
+74
+5d
+63
+0a
+f4
+cf
+0c
+6c
+14
+53
+6f
+91
+06
+d1
+b9
+16
+4a
+31
+27
+e8
+8b
+8a
+c4
+35
+24
+3b
+ac
+fa
+89
+c4
+47
+f3
+b4
+2e
+3f
+e8
+f8
+61
+f1
+8d
+f3
+a5
+e7
+7f
+d6
+7e
+a8
+04
+fa
+b3
+df
+3c
+fb
+36
+35
+9a
+6a
+b1
+5a
+17
+eb
+94
+af
+78
+d2
+4a
+c8
+ae
+f3
+1c
+da
+00
+7f
+ad
+2a
+bb
+fa
+68
+c2
+c9
+a0
+74
+d1
+eb
+7d
+70
+57
+96
+89
+64
+1c
+3b
+d6
+41
+56
+70
+bc
+26
+f0
+7f
+d0
+cc
+67
+73
+86
+ec
+ab
+28
+eb
+03
+bf
+fa
+4a
+8c
+19
+be
+23
+49
+ef
+75
+0c
+06
+0e
+1f
+4a
+4f
+6f
+21
+61
+d9
+75
+3d
+06
+92
+d8
+54
+f3
+ba
+06
+b7
+0d
+ff
+b2
+69
+d7
+43
+e0
+6a
+60
+71
+bb
+58
+92
+18
+ce
+8d
+fd
+ec
+97
+1c
+95
+1c
+93
+4d
+be
+ab
+f4
+7a
+59
+c5
+77
+24
+20
+26
+5a
+f0
+52
+bc
+9c
+bf
+f5
+e2
+4c
+da
+6c
+b6
+8d
+7a
+6c
+8f
+2f
+0d
+7f
+1a
+53
+22
+e7
+84
+da
+42
+70
+f4
+63
+92
+13
+93
+63
+1a
+54
+fb
+32
+92
+24
+80
+9e
+8d
+ac
+e4
+ef
+e3
+96
+d8
+1b
+07
+bd
+bf
+e4
+4d
+08
+0b
+c6
+c8
+fa
+4d
+40
+d5
+a8
+16
+9f
+2d
+a0
+c4
+af
+29
+3c
+51
+50
+91
+7b
+b4
+12
+42
+56
+65
+18
+da
+27
+f0
+a4
+ae
+02
+cd
+51
+81
+9c
+cf
+7d
+9a
+d5
+23
+0b
+3e
+bc
+1b
+fa
+99
+43
+c7
+9a
+8e
+26
+3b
+67
+79
+01
+9d
+0c
+79
+da
+6c
+b1
+23
+b1
+30
+ce
+3a
+b7
+99
+aa
+fe
+4c
+b9
+bb
+49
+53
+21
+07
+54
+d3
+0c
+4d
+8d
+22
+79
+e1
+18
+11
+71
+6b
+0b
+d9
+47
+bb
+fe
+d4
+68
+ba
+42
+0d
+8a
+23
+4d
+a7
+dd
+9c
+fa
+5e
+50
+33
+63
+ca
+af
+b1
+ad
+77
+9d
+86
+ca
+32
+92
+6c
+b6
+81
+53
+1d
+2d
+bc
+e7
+61
+40
+41
+c2
+71
+0f
+49
+d2
+3e
+db
+af
+28
+a4
+84
+a5
+c4
+1a
+98
+99
+d7
+03
+37
+c6
+31
+31
+7e
+87
+7b
+97
+fd
+ca
+a9
+87
+e6
+85
+64
+bc
+64
+f7
+e0
+98
+7c
+5a
+67
+d4
+6b
+7f
+47
+b4
+02
+2c
+35
+24
+6e
+d5
+c0
+d4
+14
+10
+d9
+80
+14
+ad
+09
+1d
+a4
+16
+06
+30
+22
+d6
+e2
+74
+f4
+6a
+1f
+83
+9c
+3f
+8f
+33
+1a
+f4
+4b
+de
+06
+20
+ab
+c3
+e3
+7a
+b4
+c2
+47
+a2
+af
+68
+8a
+ab
+ca
+e5
+60
+d9
+17
+83
+8a
+72
+e2
+23
+ed
+17
+4d
+50
+2c
+2f
+9b
+9f
+eb
+16
+08
+18
+43
+37
+20
+2a
+4c
+3f
+c0
+59
+c0
+ed
+b4
+96
+fd
+0e
+89
+86
+f6
+fc
+35
+43
+58
+fa
+28
+44
+30
+57
+01
+78
+94
+14
+5e
+bd
+62
+69
+4d
+6b
+a5
+88
+0b
+b2
+ef
+64
+c3
+dd
+d7
+2f
+f3
+8a
+9e
+8d
+c1
+6a
+d8
+c3
+26
+cc
+7a
+6d
+06
+d9
+24
+73
+b0
+47
+3b
+a2
+73
+af
+b9
+2d
+22
+4c
+37
+99
+d6
+c0
+5c
+94
+de
+12
+f5
+70
+32
+53
+f2
+4f
+22
+47
+97
+1f
+7e
+9c
+7e
+d5
+6c
+99
+d1
+5a
+bd
+21
+31
+ae
+61
+9b
+5d
+23
+f9
+86
+b7
+0e
+88
+05
+fa
+74
+6b
+07
+09
+10
+49
+89
+fb
+e6
+e1
+9d
+0e
+72
+53
+89
+4d
+e5
+d8
+f3
+8b
+1d
+ac
+5c
+2f
+de
+d4
+4e
+5c
+80
+57
+10
+32
+72
+07
+13
+68
+b7
+6b
+a7
+c8
+ad
+5e
+e6
+9e
+9d
+b2
+5d
+8a
+a6
+96
+a5
+e5
+3a
+79
+79
+b3
+ce
+13
+8f
+54
+92
+79
+48
+ca
+3a
+43
+49
+98
+05
+84
+b8
+2f
+82
+7c
+f1
+d6
+2d
+62
+7e
+6e
+45
+31
+7c
+32
+67
+0f
+d0
+fb
+51
+a7
+cf
+89
+74
+5a
+1d
+1b
+dc
+46
+86
+20
+89
+e8
+08
+00
+e7
+34
+4e
+3e
+fd
+d5
+62
+2c
+71
+13
+00
+0e
+70
+ba
+f6
+71
+7c
+b7
+c3
+f8
+30
+3e
+7b
+70
+44
+c1
+7c
+d5
+27
+47
+a2
+8f
+2e
+86
+da
+1c
+93
+1d
+9d
+55
+a5
+39
+28
+1b
+9d
+98
+c8
+c7
+3e
+c3
+06
+64
+f9
+a3
+f3
+81
+8c
+aa
+97
+8d
+b0
+7f
+49
+15
+ff
+93
+4e
+15
+43
+8c
+2c
+06
+f2
+83
+e7
+dc
+ab
+e8
+dc
+25
+a6
+63
+ff
+01
+95
+f3
+28
+53
+20
+f2
+01
+67
+0c
+2c
+48
+02
+78
+ad
+ee
+9b
+8f
+12
+4a
+e5
+2f
+b1
+d0
+51
+79
+96
+ad
+7f
+df
+15
+0b
+57
+fa
+bd
+2a
+2a
+1b
+37
+4f
+e6
+4e
+51
+94
+7f
+66
+38
+68
+81
+e8
+a6
+58
+80
+78
+dd
+1d
+18
+6e
+bb
+e5
+8d
+6c
+64
+ba
+59
+01
+5e
+34
+ef
+a4
+1a
+08
+42
+aa
+bc
+40
+3b
+9d
+e6
+db
+7b
+e3
+a5
+12
+15
+a2
+f0
+59
+7c
+4d
+31
+26
+f8
+1d
+a7
+1e
+ae
+6b
+1e
+5d
+b9
+7b
+42
+d5
+93
+d2
+7a
+f2
+32
+04
+7a
+bf
+3a
+76
+82
+8c
+a1
+46
+6a
+e5
+13
+46
+e3
+74
+e2
+62
+1c
+8e
+40
+de
+20
+36
+1f
+69
+25
+55
+06
+96
+c5
+55
+56
+fd
+67
+e0
+6b
+fb
+8b
+de
+16
+09
+20
+dd
+ba
+8d
+c8
+bf
+7b
+86
+b5
+4f
+cd
+b1
+7a
+f6
+eb
+6b
+45
+61
+51
+49
+1f
+c6
+2c
+fe
+60
+a2
+d6
+b1
+6e
+ef
+ea
+b1
+48
+79
+87
+c6
+d0
+97
+a3
+8f
+ff
+d5
+14
+08
+46
+2e
+6c
+1c
+0d
+62
+1e
+26
+e4
+52
+03
+9a
+31
+17
+39
+c3
+a5
+be
+3f
+4b
+f1
+d9
+f6
+7d
+07
+f9
+cd
+5a
+24
+25
+8c
+4b
+0b
+5a
+94
+0f
+23
+5e
+51
+71
+fd
+28
+e8
+d1
+f2
+56
+8e
+15
+ec
+1b
+55
+b5
+b9
+bc
+67
+c3
+6c
+5f
+47
+71
+1a
+63
+bd
+59
+19
+d9
+c4
+8b
+fa
+73
+76
+24
+65
+f4
+f6
+e2
+32
+98
+31
+5a
+c2
+39
+73
+69
+c8
+61
+32
+84
+b7
+b8
+71
+de
+17
+a4
+34
+dd
+4e
+54
+c3
+c3
+5d
+06
+76
+60
+f3
+8f
+79
+e4
+15
+da
+83
+54
+d5
+99
+f7
+35
+df
+f9
+b7
+c7
+a9
+e0
+4e
+3f
+5f
+6e
+60
+37
+2d
+25
+c5
+16
+34
+6d
+57
+95
+6d
+7f
+60
+0a
+76
+82
+91
+4a
+36
+94
+5a
+b6
+d5
+0d
+ae
+eb
+bb
+0a
+8c
+7a
+66
+47
+57
+f1
+25
+de
+0f
+e3
+57
+ba
+f4
+f3
+c7
+2f
+60
+09
+f8
+53
+d5
+cf
+a7
+c3
+46
+81
+94
+bd
+74
+bf
+a3
+62
+22
+01
+ed
+f7
+3e
+2d
+5d
+d1
+40
+c7
+32
+d2
+6b
+aa
+14
+63
+10
+dc
+00
+aa
+2e
+a8
+51
+7e
+ba
+e4
+ec
+36
+ef
+08
+63
+46
+36
+ad
+29
+9f
+59
+d8
+6f
+76
+20
+e2
+24
+ce
+37
+88
+16
+8e
+ec
+98
+e2
+93
+83
+8e
+42
+cf
+c8
+0b
+5c
+2c
+a3
+22
+5b
+8e
+7f
+23
+f1
+d1
+fd
+4c
+0c
+51
+7e
+5f
+f9
+3a
+4a
+d3
+35
+29
+f5
+99
+8d
+28
+30
+e4
+e8
+a7
+37
+36
+7d
+d6
+f3
+fc
+bd
+c7
+86
+c9
+b9
+b3
+ce
+6b
+c6
+b5
+01
+7b
+03
+d9
+15
+3a
+8a
+98
+95
+bb
+1c
+be
+7d
+2b
+36
+3d
+06
+28
+f2
+bf
+f9
+1c
+d3
+75
+4a
+28
+b4
+36
+b4
+e6
+9e
+a2
+9c
+7d
+cd
+16
+03
+88
+12
+01
+23
+bd
+d6
+0e
+0e
+5a
+3a
+dc
+fd
+0e
+52
+13
+48
+b4
+36
+37
+da
+65
+4b
+5d
+4d
+c1
+5e
+eb
+5d
+ff
+ad
+17
+76
+c3
+c3
+3f
+35
+12
+35
+db
+21
+ab
+a4
+59
+a8
+b0
+5b
+6a
+9a
+39
+1f
+5c
+1c
+d4
+5c
+3b
+4b
+1f
+e7
+d4
+f5
+9c
+53
+f7
+e2
+5a
+5d
+31
+99
+4d
+65
+61
+84
+f2
+c8
+45
+31
+12
+77
+f8
+65
+1f
+3c
+0d
+83
+37
+0b
+ec
+cb
+6c
+79
+2b
+8f
+52
+e7
+c3
+b4
+c7
+d3
+d1
+03
+99
+8e
+9c
+49
+01
+95
+09
+e3
+84
+ee
+47
+d5
+01
+e4
+87
+46
+5e
+d9
+c9
+bb
+1f
+01
+a4
+35
+6c
+6b
+5d
+94
+94
+52
+30
+00
+a8
+b5
+2c
+f6
+70
+9c
+71
+d2
+5d
+27
+90
+d9
+96
+14
+56
+70
+14
+86
+20
+00
+a5
+3d
+45
+8a
+b9
+e2
+45
+80
+3c
+d4
+fd
+54
+9a
+0b
+f0
+c7
+c2
+ad
+6c
+9d
+05
+bd
+9a
+ab
+f0
+bd
+72
+46
+58
+77
+e5
+a9
+02
+6c
+c0
+50
+74
+1c
+25
+3c
+43
+03
+6f
+a7
+8a
+92
+31
+78
+76
+3f
+39
+91
+bc
+16
+d4
+bf
+84
+bc
+5c
+0d
+eb
+77
+e3
+41
+10
+25
+81
+bc
+cd
+b5
+cf
+9f
+ce
+15
+6a
+14
+57
+fd
+65
+27
+f5
+61
+77
+84
+04
+66
+70
+43
+89
+15
+1a
+68
+3b
+a4
+d4
+b5
+a7
+7e
+95
+f9
+6b
+f4
+15
+4c
+7a
+40
+d9
+24
+36
+71
+54
+ad
+82
+78
+19
+3a
+ed
+2a
+b4
+1a
+39
+34
+d0
+04
+85
+ae
+57
+80
+e9
+68
+b4
+68
+a7
+a1
+da
+3d
+78
+74
+d4
+14
+2c
+ba
+9c
+77
+31
+a1
+b5
+d9
+c8
+86
+94
+b9
+13
+77
+4a
+ed
+2e
+5a
+e8
+f7
+cc
+26
+8e
+61
+7d
+a4
+37
+74
+0d
+fb
+8d
+5b
+e4
+a8
+af
+52
+d4
+5a
+49
+64
+1d
+cc
+21
+21
+e4
+5f
+69
+e0
+54
+f6
+54
+e6
+9c
+a5
+f5
+3b
+aa
+eb
+f4
+aa
+f4
+27
+e0
+1b
+f0
+ad
+68
+c2
+09
+d1
+1c
+03
+e0
+3b
+1a
+7f
+a2
+58
+af
+c3
+c1
+63
+aa
+2a
+87
+df
+14
+9b
+68
+37
+a0
+b2
+bd
+06
+47
+4b
+f3
+5f
+a9
+92
+4c
+a8
+21
+b5
+b8
+0b
+85
+32
+75
+6a
+c3
+c5
+3c
+17
+ae
+1c
+3a
+fc
+31
+b7
+49
+97
+d4
+4f
+7c
+0c
+ec
+60
+33
+47
+6b
+9e
+49
+2b
+45
+58
+ae
+81
+b2
+c6
+5f
+0d
+cf
+c7
+b1
+32
+e2
+65
+d6
+8f
+82
+81
+60
+c0
+62
+8a
+8c
+7f
+5b
+8f
+3d
+ce
+5c
+e4
+17
+0b
+23
+ef
+e9
+a5
+eb
+3f
+5f
+cc
+98
+7b
+77
+d5
+60
+8f
+b4
+11
+8e
+fa
+52
+b5
+99
+01
+cb
+11
+3e
+35
+af
+e5
+55
+e5
+2a
+c8
+d2
+f2
+ad
+41
+4a
+dc
+d5
+cf
+a4
+0e
+98
+99
+1c
+3d
+0d
+56
+56
+9d
+5f
+3e
+db
+52
+8c
+85
+39
+a8
+77
+2b
+e8
+3c
+de
+ea
+fd
+c9
+6a
+d9
+d5
+3a
+a9
+56
+2d
+ca
+d1
+dc
+16
+25
+b5
+7a
+cb
+8f
+3c
+6f
+d8
+99
+a0
+7f
+84
+4c
+c0
+69
+94
+c3
+df
+bb
+e4
+87
+0b
+31
+77
+8a
+55
+11
+d4
+25
+28
+c3
+6d
+db
+99
+75
+70
+81
+9b
+14
+6c
+19
+4a
+09
+20
+1e
+a7
+28
+d5
+bb
+46
+3c
+f8
+23
+c4
+77
+e4
+aa
+d3
+82
+0d
+a1
+73
+05
+de
+1e
+5e
+ee
+77
+21
+b1
+c3
+5f
+d1
+0b
+fb
+d9
+0d
+ba
+15
+e5
+07
+7c
+af
+bc
+0f
+cf
+5e
+ec
+c4
+10
+26
+48
+4f
+71
+5d
+a5
+ad
+6d
+28
+2e
+75
+8b
+17
+7f
+51
+f2
+55
+01
+f6
+be
+db
+9d
+60
+6c
+a2
+14
+9f
+7d
+72
+94
+7a
+c7
+8f
+30
+3e
+98
+93
+2f
+fc
+c7
+49
+50
+b7
+f4
+0e
+4e
+46
+3c
+47
+54
+1c
+bd
+de
+fa
+a4
+9c
+c5
+2b
+79
+de
+fe
+48
+36
+bc
+26
+fc
+62
+18
+1a
+e0
+2f
+0d
+92
+9c
+4b
+62
+d4
+7f
+b9
+98
+ab
+73
+0e
+a2
+bb
+04
+94
+c3
+18
+82
+1e
+6f
+7e
+56
+6b
+95
+90
+80
+f4
+8a
+e6
+4e
+d5
+4c
+e8
+56
+44
+e7
+63
+f1
+4b
+9a
+ff
+f7
+9a
+98
+8c
+f2
+50
+ea
+45
+cf
+3c
+91
+f3
+a1
+c9
+c6
+ae
+12
+c6
+2e
+bf
+e1
+78
+5a
+eb
+ff
+4d
+12
+20
+9e
+46
+39
+1b
+db
+8d
+ee
+8a
+4e
+aa
+8e
+47
+ca
+49
+f2
+c9
+53
+3c
+1c
+9c
+65
+f6
+af
+0b
+77
+91
+f6
+50
+c7
+af
+b3
+99
+f5
+80
+c4
+9b
+1c
+33
+41
+ee
+9a
+88
+1f
+9b
+e5
+ef
+49
+80
+f2
+f1
+33
+17
+13
+36
+be
+f9
+d4
+35
+4a
+26
+c5
+4f
+b8
+87
+57
+25
+63
+a0
+ac
+72
+fe
+09
+a5
+ce
+7e
+f6
+01
+cd
+31
+9b
+9a
+97
+9e
+1d
+ba
+2e
+99
+1b
+29
+24
+b9
+25
+70
+e4
+fe
+91
+11
+49
+94
+25
+ff
+27
+5e
+8e
+e4
+36
+3d
+da
+a2
+02
+04
+49
+4e
+c1
+62
+a8
+db
+97
+0b
+50
+e7
+96
+96
+ed
+f3
+4e
+5a
+c3
+30
+87
+2b
+b3
+53
+c9
+fd
+e4
+c8
+86
+4b
+42
+2b
+e8
+46
+62
+16
+e6
+36
+63
+c9
+2c
+00
+19
+88
+80
+9c
+71
+20
+ec
+7f
+b8
+25
+3a
+e7
+0e
+da
+c8
+4c
+b6
+18
+14
+21
+e8
+66
+e3
+80
+30
+4d
+b0
+c3
+73
+84
+61
+16
+f6
+b8
+24
+1b
+cf
+b1
+89
+b6
+2e
+79
+aa
+40
+da
+e5
+68
+51
+62
+18
+a4
+cf
+7b
+26
+72
+b1
+73
+85
+05
+06
+88
+59
+95
+18
+38
+25
+af
+05
+dd
+8e
+17
+c6
+35
+d4
+ff
+34
+66
+ef
+9a
+cb
+7f
+fd
+98
+a7
+6f
+ff
+53
+e8
+8b
+c2
+90
+f4
+d8
+bb
+05
+9c
+d4
+88
+a0
+03
+dd
+8d
+25
+e5
+5a
+c4
+51
+c8
+ac
+bb
+07
+d4
+ad
+b1
+87
+a1
+bf
+91
+ca
+d2
+3b
+18
+c0
+de
+d1
+fc
+7f
+4d
+2c
+d9
+58
+13
+10
+ad
+95
+70
+47
+d9
+6d
+63
+c7
+ca
+a4
+6e
+d7
+ea
+24
+af
+74
+dc
+a8
+f9
+d1
+c5
+a1
+0c
+bd
+23
+75
+48
+4f
+37
+e6
+a2
+79
+1d
+2a
+d9
+6b
+c8
+55
+2d
+c8
+07
+bf
+13
+65
+a8
+c3
+c7
+6f
+e2
+e8
+63
+76
+4a
+af
+c1
+16
+b0
+43
+e4
+12
+99
+2d
+6e
+b4
+55
+a1
+7d
+da
+50
+ab
+10
+51
+fe
+e7
+06
+68
+34
+03
+93
+2c
+cc
+85
+41
+ed
+a8
+d6
+33
+31
+de
+8b
+b8
+22
+1b
+f1
+ce
+56
+e5
+36
+29
+11
+1a
+f6
+84
+bf
+af
+83
+1e
+ee
+32
+34
+65
+70
+32
+a1
+f3
+e4
+71
+06
+25
+b6
+7e
+d5
+49
+f5
+01
+58
+06
+89
+f7
+96
+5f
+ac
+ea
+35
+e6
+59
+54
+7f
+46
+6f
+d3
+38
+56
+07
+63
+92
+b0
+29
+e9
+bb
+f9
+bc
+3f
+52
+c5
+4e
+5d
+72
+74
+23
+4e
+0d
+b2
+49
+bc
+31
+41
+48
+ce
+fd
+34
+10
+7d
+5a
+fe
+37
+5e
+d1
+5e
+7b
+4d
+f6
+c0
+b9
+80
+43
+3d
+27
+c1
+7b
+d6
+94
+26
+4a
+24
+1e
+d5
+70
+59
+5b
+fa
+37
+00
+2a
+ff
+e0
+66
+20
+2a
+02
+73
+01
+e2
+16
+fa
+28
+58
+de
+1d
+5b
+db
+a2
+7b
+b8
+c6
+85
+f9
+63
+17
+ce
+2a
+c9
+f7
+0f
+d5
+64
+28
+b4
+62
+0d
+93
+b3
+7e
+e3
+fe
+e9
+d9
+e8
+a1
+db
+a4
+bc
+e0
+37
+8c
+c2
+dd
+ed
+59
+71
+00
+78
+6d
+19
+c9
+f6
+1b
+39
+0b
+70
+fe
+fb
+7b
+ce
+7a
+b1
+88
+a0
+f9
+98
+26
+18
+f6
+a2
+8f
+36
+f0
+ff
+45
+c7
+6f
+9e
+4c
+22
+aa
+29
+f6
+07
+05
+04
+db
+30
+73
+d2
+9c
+cc
+33
+18
+e8
+91
+49
+b6
+c2
+0d
+cd
+1d
+f5
+92
+84
+a9
+0b
+b1
+55
+9c
+60
+07
+e8
+20
+ea
+f0
+5b
+d9
+a4
+1a
+6d
+1c
+67
+2b
+9c
+8d
+c1
+fa
+7c
+35
+45
+ce
+cc
+65
+47
+1a
+92
+0d
+7a
+b8
+ca
+71
+4c
+b7
+7d
+a0
+03
+70
+95
+5b
+ad
+35
+c8
+5e
+2a
+db
+e5
+c0
+e0
+8e
+9f
+fe
+40
+c3
+1b
+d1
+2d
+51
+3e
+57
+39
+81
+24
+e9
+de
+e3
+74
+02
+e1
+5d
+ec
+55
+15
+55
+c5
+70
+41
+58
+e5
+6c
+2d
+d0
+bb
+d5
+06
+5e
+24
+76
+b3
+b8
+25
+25
+0a
+39
+1d
+c5
+59
+ef
+ac
+c8
+c6
+9b
+1a
+2b
+c0
+df
+2a
+e5
+9f
+20
+eb
+6f
+bc
+5b
+e4
+6b
+39
+32
+5c
+33
+71
+54
+71
+37
+8d
+58
+c6
+10
+74
+cc
+5e
+12
+06
+ee
+9f
+f1
+73
+9d
+0c
+2c
+24
+66
+9c
+02
+2b
+04
+2b
+c4
+98
+cd
+c8
+7c
+8c
+be
+96
+7b
+33
+23
+c0
+71
+7f
+e5
+34
+cd
+59
+9a
+a1
+15
+18
+17
+df
+77
+3a
+b3
+28
+91
+77
+53
+21
+c7
+79
+3f
+72
+28
+3f
+ba
+f0
+69
+23
+40
+12
+55
+02
+7a
+fe
+07
+44
+22
+c8
+22
+e3
+2c
+7d
+51
+49
+5e
+29
+38
+1f
+8f
+3c
+c3
+6f
+ac
+25
+23
+f9
+d8
+68
+66
+a4
+01
+ef
+ea
+21
+d1
+c1
+19
+19
+b3
+cb
+dc
+f2
+93
+6d
+f9
+4c
+9d
+f6
+ec
+05
+12
+50
+1a
+62
+cc
+02
+3e
+73
+44
+8a
+25
+0c
+8c
+9e
+13
+90
+d9
+c9
+04
+98
+9d
+44
+5d
+60
+f9
+50
+73
+f5
+95
+f1
+78
+a2
+61
+b1
+6f
+49
+30
+51
+f3
+a0
+0e
+ae
+2e
+62
+ab
+2b
+b7
+02
+9e
+49
+dd
+4a
+8b
+cf
+59
+3f
+03
+47
+3b
+fd
+7a
+83
+03
+f3
+f1
+2b
+1d
+a1
+50
+88
+06
+fa
+f2
+cc
+ad
+da
+00
+c4
+9d
+35
+ee
+41
+84
+37
+5e
+c0
+ac
+72
+d3
+ee
+b9
+42
+eb
+df
+9b
+67
+43
+eb
+06
+58
+65
+d4
+83
+81
+b7
+12
+4c
+f9
+06
+5b
+34
+40
+5e
+92
+51
+ae
+ea
+5d
+52
+7a
+64
+9f
+93
+96
+cc
+5e
+91
+a5
+4a
+30
+30
+67
+1c
+60
+ff
+53
+3b
+4f
+07
+aa
+44
+e7
+5c
+46
+cc
+2f
+8f
+1f
+8c
+a8
+03
+b9
+74
+25
+da
+72
+fd
+fe
+be
+fc
+e2
+d2
+fb
+ec
+89
+50
+a1
+24
+a2
+ca
+d0
+aa
+2c
+a0
+25
+b4
+86
+78
+09
+4e
+c1
+e2
+dc
+37
+a2
+e9
+e9
+d7
+ca
+3f
+9c
+64
+e1
+28
+15
+1d
+77
+23
+8b
+4f
+9c
+e1
+61
+28
+94
+2a
+c9
+15
+6e
+ee
+8e
+04
+4f
+1e
+a5
+20
+56
+74
+17
+91
+aa
+c1
+30
+2d
+5a
+dd
+df
+80
+31
+ed
+e7
+c6
+d1
+bc
+d5
+3f
+57
+22
+08
+38
+a3
+97
+43
+4a
+0b
+6e
+7d
+83
+67
+1e
+18
+84
+6f
+ad
+67
+d9
+f4
+d6
+6f
+c8
+91
+97
+2e
+7c
+09
+7f
+47
+64
+ee
+6f
+21
+ac
+b6
+4a
+b7
+09
+3a
+75
+5d
+31
+3f
+8d
+90
+b3
+a6
+7b
+64
+00
+95
+56
+c3
+fc
+63
+51
+6a
+29
+a9
+93
+94
+a0
+36
+cf
+cb
+c7
+78
+4c
+2a
+9a
+ba
+fa
+75
+6c
+6d
+3e
+51
+4d
+d0
+e1
+9b
+fe
+00
+f1
+5e
+14
+03
+1a
+60
+08
+7a
+05
+8b
+e9
+11
+96
+01
+14
+1f
+27
+bf
+58
+c7
+22
+df
+fc
+1a
+bb
+bf
+0a
+35
+f5
+19
+2f
+48
+cb
+68
+e3
+9b
+b1
+17
+72
+eb
+56
+81
+4d
+58
+e3
+20
+48
+00
+d6
+5a
+19
+0d
+53
+ef
+53
+19
+05
+f2
+4e
+7c
+24
+11
+30
+92
+24
+a7
+16
+4d
+aa
+55
+40
+00
+00
+40
+05
+00
+33
+07
+20
+01
+00
+00
+f4
+7f
+a5
+3e
+02
+80
+c2
+00
+11
+00
+00
+04
+00
+00
+02
+00
+20
+00
+20
+3c
+00
+00
+40
+04
+00
+00
+10
+04
+60
+00
+00
+00
+00
+30
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+13
+47
+04
+09
+72
+00
+08
+00
+00
+0c
+aa
+55
+01
+00
+cb
+43
+0f
+aa
+55
+01
+00
+ba
+4a
+01
+aa
+55
+01
+00
+ec
+44
+ff
+aa
+55
+01
+00
+eb
+44
+1e
+aa
+55
+03
+00
+ee
+44
+01
+0b
+4a
+aa
+55
+01
+00
+0d
+4a
+ff
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+d2
+45
+07
+aa
+55
+02
+00
+f0
+45
+83
+47
+aa
+55
+02
+00
+3f
+46
+85
+90
+aa
+55
+02
+00
+42
+46
+75
+80
+aa
+55
+01
+00
+41
+46
+63
+aa
+55
+01
+00
+27
+46
+7d
+aa
+55
+01
+00
+bd
+4b
+ff
+aa
+55
+09
+00
+c1
+4b
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+f1
+44
+33
+11
+3b
+55
+51
+a1
+aa
+55
+01
+00
+89
+45
+02
+aa
+55
+05
+00
+e3
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+b9
+45
+00
+aa
+55
+01
+00
+40
+47
+02
+aa
+55
+01
+00
+ca
+45
+00
+aa
+55
+02
+00
+8b
+45
+c0
+12
+aa
+55
+01
+00
+3e
+46
+94
+aa
+55
+03
+00
+af
+45
+00
+48
+60
+aa
+55
+02
+00
+1d
+46
+0a
+00
+aa
+55
+02
+00
+1b
+46
+50
+00
+aa
+55
+02
+00
+23
+47
+32
+00
+aa
+55
+01
+00
+f4
+46
+02
+aa
+55
+08
+00
+c0
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+20
+aa
+55
+01
+00
+6b
+49
+20
+aa
+55
+06
+00
+db
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+93
+43
+07
+aa
+55
+02
+00
+be
+47
+96
+00
+aa
+55
+02
+00
+b5
+47
+15
+00
+aa
+55
+02
+00
+9b
+43
+19
+00
+aa
+55
+04
+00
+b7
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+32
+43
+28
+00
+aa
+55
+02
+00
+bb
+47
+30
+00
+aa
+55
+0c
+00
+48
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+10
+00
+a0
+47
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+11
+00
+68
+43
+1f
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+0f
+00
+6b
+42
+0e
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d3
+42
+07
+00
+07
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+9a
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+f4
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+f2
+49
+0a
+18
+aa
+55
+10
+00
+e1
+49
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+fd
+49
+c1
+03
+aa
+55
+02
+00
+bb
+4a
+78
+00
+aa
+55
+08
+00
+99
+4b
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+06
+00
+2d
+46
+dc
+05
+84
+03
+e8
+03
+aa
+55
+01
+00
+07
+44
+02
+aa
+55
+01
+00
+09
+44
+0a
+aa
+55
+01
+00
+08
+44
+0c
+aa
+55
+01
+00
+11
+44
+00
+aa
+55
+04
+00
+0d
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+07
+4a
+1e
+aa
+55
+02
+00
+09
+4a
+e8
+03
+aa
+55
+02
+00
+21
+47
+02
+00
+aa
+55
+01
+00
+3d
+46
+64
+aa
+55
+02
+00
+3a
+46
+58
+02
+aa
+55
+01
+00
+1e
+47
+64
+aa
+55
+01
+00
+3c
+46
+64
+aa
+55
+02
+00
+38
+46
+58
+02
+aa
+55
+02
+00
+25
+47
+70
+17
+aa
+55
+02
+00
+09
+4d
+64
+00
+aa
+55
+02
+00
+ec
+48
+b8
+0b
+aa
+55
+02
+00
+69
+48
+58
+02
+aa
+55
+08
+00
+66
+46
+01
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+06
+00
+01
+4a
+ff
+ff
+ff
+ff
+ff
+ff
+aa
+55
+01
+00
+1b
+47
+01
+aa
+55
+01
+00
+a2
+4b
+00
+aa
+55
+0f
+00
+a8
+4b
+01
+7f
+1e
+01
+7f
+1f
+01
+7f
+20
+01
+7f
+21
+01
+7f
+22
+aa
+55
+07
+00
+d3
+4b
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+df
+4b
+50
+00
+aa
+55
+02
+00
+e4
+4b
+58
+02
+aa
+55
+06
+00
+cb
+4b
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+6b
+48
+ff
+ff
+ff
+aa
+55
+01
+00
+a4
+49
+01
+aa
+55
+01
+00
+55
+46
+ff
+aa
+55
+04
+00
+a5
+49
+7f
+06
+29
+14
+aa
+55
+03
+00
+27
+44
+ff
+17
+16
+aa
+55
+02
+00
+eb
+43
+80
+3f
+aa
+55
+03
+00
+66
+48
+88
+8c
+ff
+aa
+55
+01
+00
+bc
+4b
+80
+aa
+55
+01
+00
+bb
+4b
+80
+aa
+55
+04
+00
+b7
+4b
+80
+80
+ff
+ff
+aa
+55
+03
+00
+63
+48
+01
+02
+ff
+aa
+55
+01
+00
+59
+46
+ff
+aa
+55
+01
+00
+5b
+46
+05
+aa
+55
+0c
+00
+8a
+48
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+6e
+48
+0d
+0e
+0f
+10
+11
+12
+13
+14
+85
+c4
+c5
+c6
+c3
+c2
+03
+04
+83
+84
+82
+c7
+80
+07
+06
+81
+0a
+0b
+ff
+ff
+aa
+55
+90
+00
+16
+4a
+48
+00
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+8b
+35
+1e
+1a
+39
+16
+64
+1b
+8a
+3a
+1f
+08
+3c
+07
+3d
+06
+88
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+7f
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+00
+7f
+e2
+00
+e6
+00
+46
+89
+2a
+31
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+00
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+85
+58
+52
+e9
+50
+4a
+4d
+00
+e1
+e5
+ed
+ee
+ec
+eb
+e8
+f1
+e3
+f6
+f8
+f7
+f9
+ef
+fa
+91
+f5
+e7
+f0
+ea
+f2
+fb
+90
+aa
+55
+13
+00
+ae
+49
+00
+29
+e8
+ed
+ee
+ef
+eb
+ec
+e9
+ea
+fb
+f1
+f0
+f5
+4c
+01
+00
+00
+00
+aa
+55
+02
+00
+ff
+49
+2a
+10
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+3e
+aa
+55
+0c
+00
+16
+00
+00
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+05
+00
+5e
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+68
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+0c
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+1c
+02
+5a
+aa
+55
+01
+00
+38
+44
+a0
+aa
+55
+02
+00
+3b
+44
+bc
+02
+aa
+55
+02
+00
+39
+44
+90
+01
+aa
+55
+02
+00
+3d
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+1e
+81
+bf
+b5
+ff
+1e
+f0
Index: output/flash.dat
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/flash.dat	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/flash.dat	(working copy)
@@ -0,0 +1,8284 @@
+00
+02
+94
+6f
+05
+88
+f9
+0f
+8b
+5e
+67
+52
+4b
+5c
+96
+56
+54
+a7
+aa
+55
+00
+1b
+69
+68
+f8
+fb
+d6
+8d
+ce
+12
+8d
+f8
+2a
+5c
+30
+58
+f7
+51
+43
+a3
+d5
+34
+b4
+d9
+01
+2f
+78
+97
+f9
+e5
+e0
+d3
+d5
+b5
+62
+06
+f8
+a0
+1c
+a4
+24
+df
+7c
+39
+fe
+7e
+00
+d8
+24
+8a
+72
+9d
+9d
+17
+43
+2f
+62
+af
+cf
+fa
+e3
+56
+12
+fc
+99
+f5
+f2
+d6
+3b
+d6
+ce
+df
+ba
+d6
+c0
+7a
+6c
+44
+cb
+91
+37
+68
+4b
+17
+61
+33
+57
+52
+e7
+c6
+cc
+eb
+a1
+16
+a4
+fb
+99
+f3
+34
+4c
+ab
+de
+2b
+f9
+71
+bd
+31
+01
+e0
+db
+30
+f1
+b2
+b9
+1b
+ef
+13
+b8
+88
+2d
+6c
+d5
+30
+19
+3f
+5f
+f5
+28
+67
+74
+a4
+b3
+e0
+61
+22
+b8
+d2
+a9
+a3
+23
+d8
+57
+08
+9a
+24
+b2
+24
+06
+8d
+db
+5c
+7a
+fd
+8b
+cc
+0d
+09
+02
+db
+5b
+7f
+b7
+7a
+49
+36
+0e
+dc
+8a
+06
+b4
+e8
+ec
+f8
+87
+08
+21
+5e
+f9
+ea
+58
+f0
+fc
+8f
+07
+4c
+ae
+aa
+63
+38
+75
+61
+da
+8f
+41
+56
+b3
+63
+60
+84
+70
+f7
+e1
+9f
+02
+6d
+ee
+e6
+fe
+98
+af
+e8
+45
+ea
+9e
+ff
+4f
+b9
+37
+28
+8e
+a7
+fb
+49
+cf
+8f
+fd
+e7
+c6
+e2
+3b
+c3
+2e
+8e
+07
+9a
+d0
+ba
+a3
+ac
+c6
+d5
+a9
+cb
+20
+74
+d7
+dc
+53
+e8
+f2
+f8
+d4
+b5
+ab
+c0
+55
+e0
+10
+1c
+20
+fc
+39
+ef
+eb
+c8
+60
+e0
+b6
+90
+82
+bb
+28
+26
+12
+be
+a8
+fd
+1b
+52
+c9
+d3
+be
+0c
+fd
+83
+b3
+29
+bf
+d7
+38
+2d
+7f
+df
+0d
+25
+79
+91
+bd
+9a
+03
+75
+29
+bc
+49
+bb
+8e
+32
+af
+92
+9e
+e6
+80
+d9
+d9
+ce
+fe
+63
+3b
+81
+5d
+42
+b8
+d9
+0f
+a4
+9a
+ca
+b4
+28
+22
+84
+b3
+85
+e3
+3b
+62
+ca
+49
+2a
+b7
+07
+d1
+87
+cd
+af
+fb
+6f
+95
+21
+f3
+23
+e7
+27
+25
+9b
+f4
+31
+52
+81
+34
+4b
+79
+f6
+3d
+f4
+ad
+37
+1b
+47
+b7
+7b
+f8
+97
+64
+eb
+0f
+eb
+43
+ea
+94
+b1
+39
+8c
+f5
+27
+e3
+8d
+e6
+1f
+a3
+80
+95
+69
+80
+8c
+17
+ef
+88
+2a
+cd
+32
+b5
+31
+b0
+e3
+91
+5b
+21
+9f
+cb
+13
+3c
+0d
+c4
+c9
+63
+01
+44
+f8
+8e
+83
+80
+47
+96
+08
+da
+f4
+be
+53
+48
+d3
+99
+34
+4d
+e5
+64
+0b
+42
+5b
+4d
+c6
+26
+e6
+9e
+8d
+0d
+6e
+58
+ec
+31
+af
+d5
+a0
+ab
+58
+8f
+98
+ee
+f9
+63
+8a
+b6
+5e
+05
+18
+18
+ac
+63
+86
+78
+92
+81
+8a
+b5
+cb
+d4
+01
+2e
+c9
+f7
+aa
+d4
+0b
+48
+5d
+62
+07
+67
+43
+7e
+15
+07
+28
+a0
+1b
+ff
+39
+1d
+fa
+23
+da
+58
+e4
+49
+e0
+72
+46
+f5
+6c
+fb
+92
+97
+e0
+ea
+97
+ac
+ae
+c2
+9c
+05
+aa
+4b
+07
+e2
+6a
+c3
+5a
+1b
+93
+2b
+ba
+7d
+79
+4d
+d9
+eb
+b4
+20
+bb
+c3
+6b
+2f
+7d
+b7
+e8
+99
+42
+5f
+fa
+94
+68
+a7
+1b
+ee
+5c
+42
+80
+ca
+f4
+a4
+92
+eb
+c0
+29
+e0
+ca
+f8
+f3
+4e
+fd
+4d
+f2
+e3
+03
+a0
+8b
+29
+c0
+c9
+81
+30
+41
+40
+24
+57
+96
+0f
+6d
+97
+e7
+7d
+fd
+96
+7c
+0e
+a6
+ee
+38
+59
+70
+f3
+0e
+d2
+e7
+73
+df
+4a
+0a
+23
+4b
+87
+1c
+9e
+ae
+8d
+96
+f7
+47
+36
+1a
+58
+20
+38
+7d
+d1
+ed
+21
+31
+3e
+32
+d5
+c9
+e4
+59
+66
+d1
+77
+a5
+c2
+f2
+03
+8c
+6e
+2b
+f4
+aa
+ad
+97
+a9
+3e
+88
+5e
+d4
+82
+9a
+46
+53
+68
+95
+5d
+81
+d2
+fd
+95
+b7
+57
+a0
+75
+95
+eb
+9e
+ea
+03
+f7
+e5
+e9
+a6
+dd
+62
+4b
+ad
+83
+0d
+a2
+b8
+0e
+83
+d9
+59
+4a
+07
+99
+bb
+88
+a6
+b4
+b2
+a2
+99
+99
+22
+2e
+25
+95
+2a
+f6
+ca
+85
+7c
+70
+4c
+54
+e8
+04
+e9
+9c
+c8
+4d
+19
+cb
+80
+4d
+7b
+9a
+69
+ea
+45
+5f
+a1
+bb
+70
+3b
+b1
+b1
+c9
+73
+ca
+98
+84
+db
+6a
+e4
+b5
+76
+05
+20
+a4
+fb
+a9
+0a
+9d
+63
+32
+74
+42
+d3
+57
+c1
+83
+0c
+47
+51
+b0
+cd
+76
+6a
+a8
+63
+91
+14
+11
+98
+62
+41
+7e
+7b
+70
+7c
+56
+1b
+60
+56
+1c
+23
+f4
+b7
+f9
+51
+02
+ad
+75
+96
+d3
+7f
+4a
+dc
+07
+70
+73
+14
+08
+f9
+3a
+4b
+00
+31
+ec
+40
+46
+1c
+a1
+a7
+f7
+b1
+95
+45
+d0
+ef
+e4
+79
+e9
+93
+7d
+52
+a9
+85
+a2
+25
+a5
+d8
+de
+ff
+4b
+d2
+fa
+e2
+0c
+98
+e3
+8a
+89
+a3
+c1
+1c
+e2
+a8
+0d
+b7
+c6
+32
+78
+7a
+74
+f4
+e2
+10
+de
+1f
+de
+5d
+86
+21
+f6
+06
+2a
+3b
+47
+21
+a3
+89
+a2
+fb
+eb
+5e
+5f
+b6
+bc
+71
+2e
+18
+de
+04
+86
+49
+40
+5e
+9d
+1a
+e8
+c3
+b1
+b0
+c1
+0c
+4a
+2f
+21
+b5
+5b
+72
+03
+be
+1c
+12
+4f
+46
+59
+ef
+9e
+57
+37
+49
+8d
+0f
+62
+c6
+2a
+ec
+85
+20
+49
+5d
+d7
+4c
+90
+19
+8f
+57
+49
+f2
+d8
+ff
+98
+33
+3e
+f9
+57
+08
+75
+06
+7a
+bc
+1a
+b4
+53
+5b
+9b
+a8
+12
+9e
+90
+98
+52
+59
+29
+88
+fe
+02
+af
+a9
+0e
+7e
+f1
+de
+17
+45
+8d
+bd
+f5
+57
+b3
+36
+91
+11
+04
+7e
+22
+ae
+ad
+9d
+a2
+97
+67
+7e
+3a
+8a
+90
+97
+65
+04
+80
+64
+ea
+11
+00
+e4
+b3
+75
+89
+04
+27
+be
+26
+5f
+84
+05
+e2
+aa
+e1
+ef
+21
+e5
+f8
+0c
+0b
+a5
+50
+7c
+65
+7a
+4f
+8b
+b8
+0b
+ff
+57
+a9
+13
+be
+1d
+01
+04
+1d
+e0
+a0
+fa
+4b
+1d
+1d
+a0
+0e
+54
+6d
+24
+36
+35
+30
+57
+a3
+7f
+bf
+a9
+05
+7f
+e5
+fe
+a0
+2a
+a6
+28
+f8
+e4
+df
+e6
+3d
+8c
+b7
+1c
+55
+4c
+8e
+8f
+b0
+e5
+99
+16
+8e
+e5
+e7
+f0
+6a
+d5
+b1
+8d
+85
+d8
+73
+05
+b0
+6d
+8b
+65
+1a
+ae
+72
+b6
+9c
+09
+32
+8e
+e5
+d7
+78
+c3
+ca
+51
+5c
+65
+51
+fc
+f2
+9f
+09
+ed
+2e
+13
+78
+88
+de
+cf
+a3
+f4
+7c
+58
+90
+f9
+cd
+f5
+0f
+9f
+1a
+77
+ba
+81
+d2
+5b
+4e
+df
+47
+d2
+f4
+9f
+16
+93
+ed
+f5
+51
+93
+57
+e7
+21
+83
+af
+8b
+97
+18
+04
+a9
+3e
+ad
+83
+48
+2e
+b6
+26
+6d
+58
+c8
+45
+f4
+3a
+1c
+3d
+a4
+e5
+5a
+df
+08
+9c
+be
+2a
+bc
+2d
+27
+1e
+e8
+22
+3b
+bd
+71
+56
+0b
+29
+f1
+7d
+45
+63
+fa
+16
+be
+9b
+fe
+4c
+c7
+3f
+14
+f3
+90
+51
+73
+cf
+a6
+91
+7f
+e1
+b1
+33
+82
+5a
+78
+f0
+4e
+3e
+26
+9c
+53
+11
+9d
+d6
+3f
+f7
+0c
+f6
+ff
+52
+67
+ad
+61
+f4
+e3
+b6
+77
+6b
+75
+e6
+23
+b6
+24
+69
+54
+ca
+85
+d7
+88
+6f
+ce
+74
+c5
+85
+02
+0d
+99
+62
+d9
+42
+04
+dc
+9a
+fc
+25
+83
+43
+25
+6e
+42
+74
+a4
+f3
+f0
+69
+fa
+f8
+59
+91
+be
+df
+51
+04
+67
+d9
+b8
+3d
+a3
+27
+f1
+76
+6e
+c0
+a2
+31
+31
+4d
+f9
+1d
+71
+70
+3d
+21
+b3
+fd
+d5
+dd
+ce
+d2
+48
+a8
+3c
+1e
+df
+b5
+96
+dd
+66
+50
+96
+41
+ae
+39
+6d
+36
+6b
+09
+e5
+4b
+23
+0c
+da
+2a
+b5
+91
+df
+04
+20
+b8
+76
+19
+c7
+19
+88
+bc
+74
+c5
+8c
+9b
+90
+f6
+b6
+13
+59
+34
+36
+bf
+5a
+2d
+50
+0a
+ba
+0d
+12
+12
+43
+3c
+78
+de
+a2
+96
+39
+46
+ee
+6c
+ca
+c3
+19
+54
+fe
+49
+21
+b9
+10
+56
+2c
+05
+e5
+42
+33
+68
+b0
+f5
+06
+ed
+27
+49
+da
+77
+32
+e3
+49
+09
+fe
+2c
+24
+cb
+78
+29
+c3
+6b
+99
+71
+f1
+d9
+7b
+2a
+cc
+8a
+5c
+1f
+1d
+64
+39
+15
+ff
+47
+e8
+4b
+e3
+c0
+97
+57
+a2
+e8
+69
+b0
+de
+81
+65
+e2
+55
+0f
+14
+ae
+77
+b5
+04
+60
+2e
+c3
+5b
+12
+11
+2a
+14
+bb
+b9
+42
+6b
+b4
+64
+08
+52
+53
+db
+08
+75
+13
+53
+47
+a6
+81
+63
+b2
+eb
+38
+17
+b8
+11
+37
+3b
+6b
+d0
+56
+e9
+c4
+ad
+26
+79
+53
+e4
+da
+e7
+b0
+91
+5e
+61
+12
+88
+4c
+ba
+a6
+2c
+26
+05
+11
+d1
+70
+d0
+af
+74
+2c
+c2
+f9
+c8
+63
+19
+ae
+6b
+90
+91
+da
+84
+80
+1d
+fd
+ff
+16
+23
+d5
+30
+09
+48
+a2
+37
+ea
+43
+bb
+1e
+19
+16
+2a
+43
+54
+b9
+30
+b7
+b1
+02
+4f
+87
+7a
+f0
+25
+52
+9c
+b1
+05
+a3
+98
+a3
+8a
+0f
+2c
+d3
+95
+de
+e8
+bd
+13
+5e
+37
+81
+92
+cb
+38
+ae
+3d
+07
+ce
+0c
+5a
+a8
+2f
+40
+77
+09
+fd
+cc
+c7
+ea
+10
+2a
+86
+42
+27
+57
+06
+2c
+ce
+23
+54
+c5
+8c
+9d
+d8
+92
+25
+86
+a5
+50
+a6
+f1
+f2
+48
+44
+e3
+a2
+1c
+24
+bf
+34
+7b
+49
+58
+66
+e7
+84
+fe
+ee
+c2
+67
+6c
+71
+18
+02
+d4
+5a
+f4
+e0
+7d
+09
+c5
+03
+3e
+08
+04
+1b
+ba
+b9
+73
+0f
+24
+40
+21
+e7
+fd
+a7
+3f
+4a
+e0
+75
+60
+26
+8c
+fb
+59
+b5
+8f
+89
+11
+cb
+e2
+99
+48
+25
+5f
+59
+02
+49
+7f
+65
+20
+54
+ec
+92
+78
+e9
+93
+b5
+f3
+fe
+78
+8f
+32
+03
+f8
+e5
+b1
+63
+8b
+3e
+24
+ea
+ca
+6a
+f8
+fe
+7f
+14
+81
+2a
+60
+14
+ef
+85
+f0
+33
+a2
+c4
+9f
+8e
+ae
+06
+2f
+6b
+c5
+c7
+d0
+f7
+10
+22
+2a
+2a
+4a
+0c
+04
+c3
+0a
+f7
+86
+c8
+0e
+45
+eb
+f4
+2c
+bb
+b0
+e3
+45
+ba
+d7
+62
+df
+01
+0e
+82
+13
+f6
+21
+1c
+47
+fe
+91
+00
+54
+a6
+24
+72
+25
+0f
+a3
+0e
+9a
+32
+c4
+73
+c3
+06
+1c
+f4
+6f
+f3
+1d
+4b
+8e
+ff
+43
+ab
+d2
+ba
+4e
+a0
+b5
+8c
+b9
+5e
+71
+02
+5e
+58
+56
+ba
+29
+bf
+99
+d1
+50
+4b
+a8
+1b
+44
+0c
+98
+08
+d2
+64
+04
+93
+1c
+57
+8d
+3b
+6c
+eb
+75
+9a
+38
+ef
+6f
+8d
+f2
+be
+2e
+53
+73
+f8
+3b
+71
+8b
+33
+94
+8a
+34
+cb
+89
+63
+7d
+db
+e5
+a3
+14
+2b
+8a
+dd
+51
+8e
+90
+81
+49
+c6
+cd
+eb
+88
+ac
+f6
+c2
+cc
+01
+ed
+4b
+e8
+5e
+80
+eb
+e0
+d4
+b6
+96
+d4
+08
+a1
+2b
+96
+b9
+f6
+b6
+90
+72
+9f
+df
+30
+a0
+00
+21
+73
+49
+c3
+82
+a9
+6b
+35
+ea
+31
+e1
+53
+96
+49
+41
+2a
+c9
+dd
+e7
+04
+a9
+9f
+a8
+d2
+b1
+5b
+27
+b4
+27
+6b
+92
+14
+ad
+1d
+ed
+bf
+07
+cc
+46
+e5
+4a
+8c
+80
+8b
+5e
+7d
+45
+54
+42
+49
+6c
+ea
+05
+04
+37
+59
+99
+de
+77
+4d
+6b
+cd
+44
+b5
+c4
+ed
+3a
+47
+eb
+d3
+32
+9e
+a1
+52
+e6
+28
+c5
+f1
+ba
+f7
+9c
+bd
+11
+ae
+22
+3d
+e8
+2d
+2e
+bc
+1e
+5b
+b4
+5b
+72
+5e
+4a
+e5
+5c
+a9
+a6
+7f
+55
+2c
+1a
+dd
+a6
+bf
+29
+9b
+42
+da
+9d
+26
+4e
+e5
+c5
+6a
+0b
+64
+b3
+28
+47
+63
+ce
+68
+72
+a9
+b4
+f2
+b3
+fb
+9a
+6a
+b6
+40
+b8
+46
+59
+01
+b4
+32
+d3
+04
+d3
+dd
+8d
+42
+5f
+cf
+9d
+ea
+67
+9b
+c5
+9f
+ea
+3e
+0c
+1e
+11
+3b
+ea
+0c
+57
+97
+19
+c1
+73
+2c
+89
+85
+92
+e3
+37
+67
+7a
+30
+66
+f4
+2e
+63
+06
+d5
+56
+98
+88
+51
+7d
+e3
+a3
+ba
+3f
+36
+92
+fa
+a6
+ab
+bf
+68
+bd
+e5
+fd
+94
+35
+8e
+7a
+1f
+f7
+59
+78
+3d
+4e
+14
+8d
+47
+37
+72
+af
+e2
+3d
+4a
+04
+91
+8b
+54
+ad
+99
+d2
+34
+98
+e2
+ed
+ed
+c0
+76
+28
+6d
+29
+a4
+2c
+bd
+27
+a7
+10
+6b
+bf
+c0
+f1
+0a
+91
+80
+88
+7f
+6e
+8b
+e9
+ec
+26
+0c
+9e
+ba
+7b
+f5
+fb
+04
+f3
+eb
+fb
+19
+83
+2c
+2f
+6a
+1a
+76
+58
+03
+a6
+41
+11
+50
+53
+9b
+35
+6f
+33
+5d
+63
+e5
+cb
+5a
+6c
+4d
+26
+94
+76
+b1
+11
+92
+40
+fc
+82
+85
+0f
+47
+ba
+b7
+69
+39
+86
+57
+5a
+ac
+9f
+5c
+00
+0e
+df
+76
+77
+8d
+02
+53
+cd
+ab
+1b
+ea
+95
+1d
+6c
+e3
+06
+9d
+8a
+d4
+77
+f4
+63
+c8
+cb
+94
+5a
+c4
+39
+4b
+d3
+1d
+66
+eb
+c7
+c4
+10
+20
+4e
+66
+42
+2d
+bb
+80
+2d
+bb
+76
+ba
+ba
+55
+07
+08
+f6
+ff
+e1
+b5
+2e
+8a
+61
+16
+13
+41
+ad
+7a
+f4
+18
+6d
+03
+0e
+a7
+68
+98
+9b
+bb
+9d
+b9
+2f
+a7
+8b
+96
+27
+69
+6f
+83
+10
+7c
+73
+b7
+9d
+21
+06
+ec
+fd
+34
+2b
+19
+ac
+a5
+60
+fa
+e3
+54
+9b
+4a
+bd
+a2
+1c
+fd
+c4
+eb
+b6
+24
+12
+ff
+72
+c4
+7d
+5e
+55
+68
+f3
+8e
+4e
+b9
+d1
+3f
+92
+c4
+b9
+df
+c4
+16
+62
+4e
+da
+1b
+5f
+ae
+00
+4d
+88
+51
+7a
+2d
+dd
+30
+c0
+cb
+1e
+8d
+45
+a6
+da
+02
+e1
+41
+08
+47
+a7
+30
+27
+4d
+c4
+11
+74
+e7
+0b
+05
+99
+45
+0d
+9f
+5a
+0d
+60
+02
+32
+cb
+24
+fb
+88
+36
+e2
+55
+c1
+58
+0d
+7b
+ca
+d7
+eb
+2a
+3b
+d3
+f1
+7d
+9b
+aa
+e1
+01
+22
+24
+e0
+8f
+f2
+62
+8b
+98
+30
+47
+cf
+4e
+49
+ae
+fb
+90
+98
+eb
+28
+d6
+d0
+49
+31
+b8
+ff
+db
+2c
+3a
+0d
+74
+f5
+95
+78
+b3
+c7
+55
+ca
+b4
+ec
+44
+4e
+13
+08
+70
+d3
+a6
+6d
+86
+fb
+14
+07
+28
+e0
+6a
+bc
+b0
+57
+dc
+05
+72
+b9
+c6
+cf
+51
+30
+70
+7f
+a3
+71
+75
+1f
+ed
+8a
+67
+f5
+0d
+54
+0d
+47
+b7
+1d
+e0
+35
+43
+37
+09
+fd
+55
+0b
+da
+91
+8c
+53
+f5
+76
+6c
+14
+1f
+36
+2f
+55
+3a
+6b
+e0
+7e
+38
+c0
+52
+86
+e5
+35
+8f
+f4
+67
+8d
+71
+f7
+dc
+a7
+eb
+6f
+fa
+dd
+28
+89
+c4
+c2
+59
+d2
+5f
+61
+cf
+a0
+57
+07
+e6
+47
+ef
+c0
+e9
+60
+3e
+fb
+70
+71
+8a
+94
+8d
+32
+ac
+c0
+21
+87
+22
+49
+72
+92
+06
+8e
+ae
+c8
+85
+73
+e0
+a4
+88
+46
+37
+dc
+13
+b5
+3a
+0a
+32
+19
+87
+a1
+d1
+b5
+e6
+c1
+d8
+29
+f9
+02
+8f
+51
+1b
+5d
+3a
+17
+1a
+55
+f6
+12
+e2
+94
+52
+ac
+0a
+34
+9a
+1f
+7c
+12
+ef
+de
+5b
+f5
+15
+ed
+38
+3b
+16
+ab
+a8
+f9
+ce
+28
+e1
+63
+80
+4a
+2d
+1d
+72
+fb
+65
+22
+02
+fc
+aa
+1d
+46
+a3
+85
+a9
+6d
+c5
+6c
+3e
+31
+e5
+5a
+ed
+46
+5e
+0f
+67
+9d
+18
+82
+87
+7d
+2f
+8c
+68
+d2
+d2
+79
+3c
+c1
+8c
+86
+5a
+82
+aa
+c0
+67
+3e
+f5
+3a
+a9
+ab
+15
+bb
+04
+f4
+57
+f0
+eb
+34
+ba
+7f
+f0
+2e
+b8
+12
+b1
+4b
+3c
+d1
+39
+fb
+98
+11
+0a
+5b
+13
+cb
+77
+b4
+92
+53
+0c
+0c
+ef
+45
+3d
+ed
+5a
+2d
+63
+44
+3f
+44
+9a
+f2
+16
+12
+5a
+6c
+23
+a2
+a4
+72
+72
+6a
+44
+02
+ac
+cd
+9c
+68
+b6
+ab
+66
+4f
+5d
+07
+95
+80
+bd
+ca
+f9
+5f
+45
+fe
+23
+a6
+12
+0a
+ee
+78
+e9
+89
+f2
+bb
+49
+df
+79
+3a
+d9
+84
+ba
+29
+f1
+64
+db
+43
+4b
+d8
+28
+3b
+48
+aa
+c2
+c4
+88
+86
+bd
+d1
+ab
+cd
+19
+61
+14
+f8
+09
+49
+62
+68
+1b
+f9
+4d
+f4
+d0
+65
+4d
+0f
+9f
+b6
+48
+61
+87
+d8
+9b
+c5
+9c
+f4
+89
+fc
+ae
+d7
+0b
+87
+92
+06
+0a
+3e
+d8
+f5
+0a
+78
+ae
+93
+5d
+95
+cd
+06
+17
+d2
+b6
+ef
+d7
+f8
+89
+70
+22
+b7
+c9
+a0
+c9
+0b
+75
+12
+e4
+49
+3b
+66
+2f
+99
+67
+54
+44
+0b
+3b
+68
+a2
+1e
+4d
+fd
+13
+c9
+d4
+49
+8c
+e8
+9f
+dd
+ef
+1b
+27
+84
+84
+69
+9a
+2b
+9e
+41
+4e
+ed
+4a
+ef
+98
+0e
+aa
+39
+89
+f3
+5b
+bb
+1f
+4f
+2b
+9c
+4b
+aa
+0c
+7e
+ba
+6f
+0c
+02
+b2
+7b
+90
+1a
+b4
+db
+4d
+df
+c1
+4f
+43
+68
+98
+88
+7a
+cf
+f3
+aa
+f1
+42
+df
+4f
+10
+a6
+94
+d8
+6f
+26
+91
+cd
+8d
+10
+9e
+22
+b3
+52
+42
+27
+3b
+34
+19
+98
+00
+29
+c3
+99
+cd
+1e
+89
+21
+0f
+ac
+9c
+6f
+ad
+ab
+ca
+64
+57
+c1
+5b
+93
+af
+5d
+5a
+6e
+53
+01
+48
+72
+cf
+59
+cc
+b7
+93
+5d
+0d
+a7
+b5
+63
+e0
+4c
+f6
+fc
+77
+f9
+e4
+18
+4f
+68
+de
+93
+c7
+4f
+0f
+9f
+8b
+d8
+0b
+69
+ae
+7c
+d3
+ea
+01
+28
+9c
+04
+d1
+b9
+65
+8b
+76
+a9
+cf
+80
+18
+3a
+43
+26
+11
+9d
+cd
+41
+b5
+1e
+6c
+e9
+22
+44
+e4
+56
+8f
+a5
+ee
+95
+e6
+39
+b8
+96
+7d
+39
+cc
+e9
+a4
+12
+8f
+3f
+48
+42
+11
+4c
+69
+fc
+5a
+a4
+94
+f4
+45
+9b
+e2
+96
+0c
+d0
+cb
+ff
+d0
+bd
+39
+f8
+53
+4b
+5c
+79
+68
+eb
+85
+c4
+38
+aa
+56
+44
+36
+0b
+2f
+2e
+71
+d6
+a6
+ce
+e2
+b6
+9c
+54
+0f
+a7
+46
+24
+a9
+a0
+f2
+ea
+77
+3c
+6f
+e4
+a7
+17
+be
+c3
+c4
+72
+48
+5c
+8a
+90
+a4
+a4
+ac
+8b
+32
+41
+6b
+04
+06
+e6
+4f
+aa
+72
+53
+8d
+26
+49
+17
+73
+c9
+d4
+a6
+9a
+b9
+0d
+0d
+6c
+dd
+1e
+aa
+b2
+ab
+b4
+8f
+cf
+cc
+7b
+28
+d9
+d6
+b2
+ad
+dc
+e8
+e7
+3b
+86
+96
+94
+c2
+3c
+eb
+75
+97
+dd
+1f
+41
+dc
+fb
+ef
+74
+88
+b7
+5c
+93
+5b
+de
+db
+9a
+b9
+91
+8a
+4d
+84
+91
+f3
+c3
+89
+e6
+5b
+f9
+6d
+4e
+96
+06
+9d
+a7
+88
+e0
+83
+d0
+43
+63
+c3
+ee
+bb
+2a
+46
+4d
+55
+bd
+7d
+d5
+da
+4a
+34
+50
+64
+a0
+19
+b7
+cf
+fe
+d7
+8b
+4c
+09
+f6
+27
+52
+da
+41
+5a
+99
+f2
+fd
+85
+03
+48
+1f
+5d
+a1
+a6
+18
+60
+4f
+a0
+c5
+c5
+09
+73
+eb
+92
+b8
+86
+d9
+3c
+96
+97
+d4
+cf
+a9
+d2
+16
+d3
+b1
+b0
+a4
+b1
+f9
+d2
+32
+ca
+b4
+8e
+41
+39
+df
+0b
+ce
+d0
+2c
+c2
+be
+ec
+ed
+25
+01
+39
+31
+d9
+04
+0d
+1b
+c4
+ce
+9b
+16
+d9
+41
+41
+1b
+9f
+81
+f6
+c0
+97
+9a
+c1
+48
+68
+86
+e7
+64
+54
+21
+6d
+ee
+af
+9b
+cb
+63
+e3
+1c
+1f
+ff
+35
+52
+9d
+48
+ba
+bb
+f9
+8b
+b4
+5f
+b9
+07
+b2
+0b
+4d
+67
+a1
+db
+40
+e2
+51
+29
+83
+0d
+b4
+b5
+de
+22
+c9
+f4
+fa
+a9
+c5
+76
+23
+cb
+8b
+51
+cc
+ff
+c7
+83
+b1
+46
+08
+ee
+97
+80
+a7
+32
+50
+7e
+5f
+06
+d8
+d3
+c6
+aa
+b2
+37
+df
+a8
+6c
+2b
+75
+f9
+3a
+c8
+3d
+10
+60
+3c
+ba
+4e
+83
+5d
+47
+c0
+b7
+d3
+5c
+7e
+20
+cb
+ec
+a5
+50
+e8
+63
+7d
+8b
+93
+32
+18
+32
+27
+f3
+ba
+a2
+17
+38
+03
+30
+aa
+0f
+12
+00
+d2
+d8
+a7
+00
+b9
+81
+be
+a1
+80
+34
+12
+03
+c8
+4c
+39
+6a
+96
+8a
+71
+22
+ee
+f0
+b7
+85
+51
+ba
+a5
+64
+56
+19
+21
+35
+ac
+1a
+6b
+8a
+7f
+af
+da
+fd
+ed
+39
+75
+e8
+6d
+ac
+8a
+4c
+89
+c2
+75
+e0
+98
+cf
+2a
+c8
+9e
+2f
+88
+b6
+d1
+2d
+d8
+f8
+50
+8d
+e4
+ab
+ea
+42
+75
+44
+26
+29
+b3
+e3
+19
+0f
+0c
+23
+b6
+e4
+51
+fc
+aa
+66
+ae
+d0
+c5
+ad
+3a
+f6
+bc
+e6
+91
+1a
+fc
+ee
+57
+3e
+1a
+e6
+d3
+44
+9e
+6d
+77
+24
+c6
+77
+3d
+c2
+cf
+e6
+0f
+e8
+36
+6f
+45
+19
+80
+a6
+ab
+6e
+d2
+3d
+e5
+30
+bc
+6d
+b3
+dc
+e6
+9b
+f5
+6f
+b8
+79
+e8
+9e
+3f
+bc
+e4
+8d
+ed
+1c
+e9
+37
+74
+62
+74
+5d
+63
+0a
+f4
+cf
+0c
+6c
+14
+53
+6f
+91
+06
+d1
+b9
+16
+4a
+31
+27
+e8
+8b
+8a
+c4
+35
+24
+3b
+ac
+fa
+89
+c4
+47
+f3
+b4
+2e
+3f
+e8
+f8
+61
+f1
+8d
+f3
+a5
+e7
+7f
+d6
+7e
+a8
+04
+fa
+b3
+df
+3c
+fb
+36
+35
+9a
+6a
+b1
+5a
+17
+eb
+94
+af
+78
+d2
+4a
+c8
+ae
+f3
+1c
+da
+00
+7f
+ad
+2a
+bb
+fa
+68
+c2
+c9
+a0
+74
+d1
+eb
+7d
+70
+57
+96
+89
+64
+1c
+3b
+d6
+41
+56
+70
+bc
+26
+f0
+7f
+d0
+cc
+67
+73
+86
+ec
+ab
+28
+eb
+03
+bf
+fa
+4a
+8c
+19
+be
+23
+49
+ef
+75
+0c
+06
+0e
+1f
+4a
+4f
+6f
+21
+61
+d9
+75
+3d
+06
+92
+d8
+54
+f3
+ba
+06
+b7
+0d
+ff
+b2
+69
+d7
+43
+e0
+6a
+60
+71
+bb
+58
+92
+18
+ce
+8d
+fd
+ec
+97
+1c
+95
+1c
+93
+4d
+be
+ab
+f4
+7a
+59
+c5
+77
+24
+20
+26
+5a
+f0
+52
+bc
+9c
+bf
+f5
+e2
+4c
+da
+6c
+b6
+8d
+7a
+6c
+8f
+2f
+0d
+7f
+1a
+53
+22
+e7
+84
+da
+42
+70
+f4
+63
+92
+13
+93
+63
+1a
+54
+fb
+32
+92
+24
+80
+9e
+8d
+ac
+e4
+ef
+e3
+96
+d8
+1b
+07
+bd
+bf
+e4
+4d
+08
+0b
+c6
+c8
+fa
+4d
+40
+d5
+a8
+16
+9f
+2d
+a0
+c4
+af
+29
+3c
+51
+50
+91
+7b
+b4
+12
+42
+56
+65
+18
+da
+27
+f0
+a4
+ae
+02
+cd
+51
+81
+9c
+cf
+7d
+9a
+d5
+23
+0b
+3e
+bc
+1b
+fa
+99
+43
+c7
+9a
+8e
+26
+3b
+67
+79
+01
+9d
+0c
+79
+da
+6c
+b1
+23
+b1
+30
+ce
+3a
+b7
+99
+aa
+fe
+4c
+b9
+bb
+49
+53
+21
+07
+54
+d3
+0c
+4d
+8d
+22
+79
+e1
+18
+11
+71
+6b
+0b
+d9
+47
+bb
+fe
+d4
+68
+ba
+42
+0d
+8a
+23
+4d
+a7
+dd
+9c
+fa
+5e
+50
+33
+63
+ca
+af
+b1
+ad
+77
+9d
+86
+ca
+32
+92
+6c
+b6
+81
+53
+1d
+2d
+bc
+e7
+61
+40
+41
+c2
+71
+0f
+49
+d2
+3e
+db
+af
+28
+a4
+84
+a5
+c4
+1a
+98
+99
+d7
+03
+37
+c6
+31
+31
+7e
+87
+7b
+97
+fd
+ca
+a9
+87
+e6
+85
+64
+bc
+64
+f7
+e0
+98
+7c
+5a
+67
+d4
+6b
+7f
+47
+b4
+02
+2c
+35
+24
+6e
+d5
+c0
+d4
+14
+10
+d9
+80
+14
+ad
+09
+1d
+a4
+16
+06
+30
+22
+d6
+e2
+74
+f4
+6a
+1f
+83
+9c
+3f
+8f
+33
+1a
+f4
+4b
+de
+06
+20
+ab
+c3
+e3
+7a
+b4
+c2
+47
+a2
+af
+68
+8a
+ab
+ca
+e5
+60
+d9
+17
+83
+8a
+72
+e2
+23
+ed
+17
+4d
+50
+2c
+2f
+9b
+9f
+eb
+16
+08
+18
+43
+37
+20
+2a
+4c
+3f
+c0
+59
+c0
+ed
+b4
+96
+fd
+0e
+89
+86
+f6
+fc
+35
+43
+58
+fa
+28
+44
+30
+57
+01
+78
+94
+14
+5e
+bd
+62
+69
+4d
+6b
+a5
+88
+0b
+b2
+ef
+64
+c3
+dd
+d7
+2f
+f3
+8a
+9e
+8d
+c1
+6a
+d8
+c3
+26
+cc
+7a
+6d
+06
+d9
+24
+73
+b0
+47
+3b
+a2
+73
+af
+b9
+2d
+22
+4c
+37
+99
+d6
+c0
+5c
+94
+de
+12
+f5
+70
+32
+53
+f2
+4f
+22
+47
+97
+1f
+7e
+9c
+7e
+d5
+6c
+99
+d1
+5a
+bd
+21
+31
+ae
+61
+9b
+5d
+23
+f9
+86
+b7
+0e
+88
+05
+fa
+74
+6b
+07
+09
+10
+49
+89
+fb
+e6
+e1
+9d
+0e
+72
+53
+89
+4d
+e5
+d8
+f3
+8b
+1d
+ac
+5c
+2f
+de
+d4
+4e
+5c
+80
+57
+10
+32
+72
+07
+13
+68
+b7
+6b
+a7
+c8
+ad
+5e
+e6
+9e
+9d
+b2
+5d
+8a
+a6
+96
+a5
+e5
+3a
+79
+79
+b3
+ce
+13
+8f
+54
+92
+79
+48
+ca
+3a
+43
+49
+98
+05
+84
+b8
+2f
+82
+7c
+f1
+d6
+2d
+62
+7e
+6e
+45
+31
+7c
+32
+67
+0f
+d0
+fb
+51
+a7
+cf
+89
+74
+5a
+1d
+1b
+dc
+46
+86
+20
+89
+e8
+08
+00
+e7
+34
+4e
+3e
+fd
+d5
+62
+2c
+71
+13
+00
+0e
+70
+ba
+f6
+71
+7c
+b7
+c3
+f8
+30
+3e
+7b
+70
+44
+c1
+7c
+d5
+27
+47
+a2
+8f
+2e
+86
+da
+1c
+93
+1d
+9d
+55
+a5
+39
+28
+1b
+9d
+98
+c8
+c7
+3e
+c3
+06
+64
+f9
+a3
+f3
+81
+8c
+aa
+97
+8d
+b0
+7f
+49
+15
+ff
+93
+4e
+15
+43
+8c
+2c
+06
+f2
+83
+e7
+dc
+ab
+e8
+dc
+25
+a6
+63
+ff
+01
+95
+f3
+28
+53
+20
+f2
+01
+67
+0c
+2c
+48
+02
+78
+ad
+ee
+9b
+8f
+12
+4a
+e5
+2f
+b1
+d0
+51
+79
+96
+ad
+7f
+df
+15
+0b
+57
+fa
+bd
+2a
+2a
+1b
+37
+4f
+e6
+4e
+51
+94
+7f
+66
+38
+68
+81
+e8
+a6
+58
+80
+78
+dd
+1d
+18
+6e
+bb
+e5
+8d
+6c
+64
+ba
+59
+01
+5e
+34
+ef
+a4
+1a
+08
+42
+aa
+bc
+40
+3b
+9d
+e6
+db
+7b
+e3
+a5
+12
+15
+a2
+f0
+59
+7c
+4d
+31
+26
+f8
+1d
+a7
+1e
+ae
+6b
+1e
+5d
+b9
+7b
+42
+d5
+93
+d2
+7a
+f2
+32
+04
+7a
+bf
+3a
+76
+82
+8c
+a1
+46
+6a
+e5
+13
+46
+e3
+74
+e2
+62
+1c
+8e
+40
+de
+20
+36
+1f
+69
+25
+55
+06
+96
+c5
+55
+56
+fd
+67
+e0
+6b
+fb
+8b
+de
+16
+09
+20
+dd
+ba
+8d
+c8
+bf
+7b
+86
+b5
+4f
+cd
+b1
+7a
+f6
+eb
+6b
+45
+61
+51
+49
+1f
+c6
+2c
+fe
+60
+a2
+d6
+b1
+6e
+ef
+ea
+b1
+48
+79
+87
+c6
+d0
+97
+a3
+8f
+ff
+d5
+14
+08
+46
+2e
+6c
+1c
+0d
+62
+1e
+26
+e4
+52
+03
+9a
+31
+17
+39
+c3
+a5
+be
+3f
+4b
+f1
+d9
+f6
+7d
+07
+f9
+cd
+5a
+24
+25
+8c
+4b
+0b
+5a
+94
+0f
+23
+5e
+51
+71
+fd
+28
+e8
+d1
+f2
+56
+8e
+15
+ec
+1b
+55
+b5
+b9
+bc
+67
+c3
+6c
+5f
+47
+71
+1a
+63
+bd
+59
+19
+d9
+c4
+8b
+fa
+73
+76
+24
+65
+f4
+f6
+e2
+32
+98
+31
+5a
+c2
+39
+73
+69
+c8
+61
+32
+84
+b7
+b8
+71
+de
+17
+a4
+34
+dd
+4e
+54
+c3
+c3
+5d
+06
+76
+60
+f3
+8f
+79
+e4
+15
+da
+83
+54
+d5
+99
+f7
+35
+df
+f9
+b7
+c7
+a9
+e0
+4e
+3f
+5f
+6e
+60
+37
+2d
+25
+c5
+16
+34
+6d
+57
+95
+6d
+7f
+60
+0a
+76
+82
+91
+4a
+36
+94
+5a
+b6
+d5
+0d
+ae
+eb
+bb
+0a
+8c
+7a
+66
+47
+57
+f1
+25
+de
+0f
+e3
+57
+ba
+f4
+f3
+c7
+2f
+60
+09
+f8
+53
+d5
+cf
+a7
+c3
+46
+81
+94
+bd
+74
+bf
+a3
+62
+22
+01
+ed
+f7
+3e
+2d
+5d
+d1
+40
+c7
+32
+d2
+6b
+aa
+14
+63
+10
+dc
+00
+aa
+2e
+a8
+51
+7e
+ba
+e4
+ec
+36
+ef
+08
+63
+46
+36
+ad
+29
+9f
+59
+d8
+6f
+76
+20
+e2
+24
+ce
+37
+88
+16
+8e
+ec
+98
+e2
+93
+83
+8e
+42
+cf
+c8
+0b
+5c
+2c
+a3
+22
+5b
+8e
+7f
+23
+f1
+d1
+fd
+4c
+0c
+51
+7e
+5f
+f9
+3a
+4a
+d3
+35
+29
+f5
+99
+8d
+28
+30
+e4
+e8
+a7
+37
+36
+7d
+d6
+f3
+fc
+bd
+c7
+86
+c9
+b9
+b3
+ce
+6b
+c6
+b5
+01
+7b
+03
+d9
+15
+3a
+8a
+98
+95
+bb
+1c
+be
+7d
+2b
+36
+3d
+06
+28
+f2
+bf
+f9
+1c
+d3
+75
+4a
+28
+b4
+36
+b4
+e6
+9e
+a2
+9c
+7d
+cd
+16
+03
+88
+12
+01
+23
+bd
+d6
+0e
+0e
+5a
+3a
+dc
+fd
+0e
+52
+13
+48
+b4
+36
+37
+da
+65
+4b
+5d
+4d
+c1
+5e
+eb
+5d
+ff
+ad
+17
+76
+c3
+c3
+3f
+35
+12
+35
+db
+21
+ab
+a4
+59
+a8
+b0
+5b
+6a
+9a
+39
+1f
+5c
+1c
+d4
+5c
+3b
+4b
+1f
+e7
+d4
+f5
+9c
+53
+f7
+e2
+5a
+5d
+31
+99
+4d
+65
+61
+84
+f2
+c8
+45
+31
+12
+77
+f8
+65
+1f
+3c
+0d
+83
+37
+0b
+ec
+cb
+6c
+79
+2b
+8f
+52
+e7
+c3
+b4
+c7
+d3
+d1
+03
+99
+8e
+9c
+49
+01
+95
+09
+e3
+84
+ee
+47
+d5
+01
+e4
+87
+46
+5e
+d9
+c9
+bb
+1f
+01
+a4
+35
+6c
+6b
+5d
+94
+94
+52
+30
+00
+a8
+b5
+2c
+f6
+70
+9c
+71
+d2
+5d
+27
+90
+d9
+96
+14
+56
+70
+14
+86
+20
+00
+a5
+3d
+45
+8a
+b9
+e2
+45
+80
+3c
+d4
+fd
+54
+9a
+0b
+f0
+c7
+c2
+ad
+6c
+9d
+05
+bd
+9a
+ab
+f0
+bd
+72
+46
+58
+77
+e5
+a9
+02
+6c
+c0
+50
+74
+1c
+25
+3c
+43
+03
+6f
+a7
+8a
+92
+31
+78
+76
+3f
+39
+91
+bc
+16
+d4
+bf
+84
+bc
+5c
+0d
+eb
+77
+e3
+41
+10
+25
+81
+bc
+cd
+b5
+cf
+9f
+ce
+15
+6a
+14
+57
+fd
+65
+27
+f5
+61
+77
+84
+04
+66
+70
+43
+89
+15
+1a
+68
+3b
+a4
+d4
+b5
+a7
+7e
+95
+f9
+6b
+f4
+15
+4c
+7a
+40
+d9
+24
+36
+71
+54
+ad
+82
+78
+19
+3a
+ed
+2a
+b4
+1a
+39
+34
+d0
+04
+85
+ae
+57
+80
+e9
+68
+b4
+68
+a7
+a1
+da
+3d
+78
+74
+d4
+14
+2c
+ba
+9c
+77
+31
+a1
+b5
+d9
+c8
+86
+94
+b9
+13
+77
+4a
+ed
+2e
+5a
+e8
+f7
+cc
+26
+8e
+61
+7d
+a4
+37
+74
+0d
+fb
+8d
+5b
+e4
+a8
+af
+52
+d4
+5a
+49
+64
+1d
+cc
+21
+21
+e4
+5f
+69
+e0
+54
+f6
+54
+e6
+9c
+a5
+f5
+3b
+aa
+eb
+f4
+aa
+f4
+27
+e0
+1b
+f0
+ad
+68
+c2
+09
+d1
+1c
+03
+e0
+3b
+1a
+7f
+a2
+58
+af
+c3
+c1
+63
+aa
+2a
+87
+df
+14
+9b
+68
+37
+a0
+b2
+bd
+06
+47
+4b
+f3
+5f
+a9
+92
+4c
+a8
+21
+b5
+b8
+0b
+85
+32
+75
+6a
+c3
+c5
+3c
+17
+ae
+1c
+3a
+fc
+31
+b7
+49
+97
+d4
+4f
+7c
+0c
+ec
+60
+33
+47
+6b
+9e
+49
+2b
+45
+58
+ae
+81
+b2
+c6
+5f
+0d
+cf
+c7
+b1
+32
+e2
+65
+d6
+8f
+82
+81
+60
+c0
+62
+8a
+8c
+7f
+5b
+8f
+3d
+ce
+5c
+e4
+17
+0b
+23
+ef
+e9
+a5
+eb
+3f
+5f
+cc
+98
+7b
+77
+d5
+60
+8f
+b4
+11
+8e
+fa
+52
+b5
+99
+01
+cb
+11
+3e
+35
+af
+e5
+55
+e5
+2a
+c8
+d2
+f2
+ad
+41
+4a
+dc
+d5
+cf
+a4
+0e
+98
+99
+1c
+3d
+0d
+56
+56
+9d
+5f
+3e
+db
+52
+8c
+85
+39
+a8
+77
+2b
+e8
+3c
+de
+ea
+fd
+c9
+6a
+d9
+d5
+3a
+a9
+56
+2d
+ca
+d1
+dc
+16
+25
+b5
+7a
+cb
+8f
+3c
+6f
+d8
+99
+a0
+7f
+84
+4c
+c0
+69
+94
+c3
+df
+bb
+e4
+87
+0b
+31
+77
+8a
+55
+11
+d4
+25
+28
+c3
+6d
+db
+99
+75
+70
+81
+9b
+14
+6c
+19
+4a
+09
+20
+1e
+a7
+28
+d5
+bb
+46
+3c
+f8
+23
+c4
+77
+e4
+aa
+d3
+82
+0d
+a1
+73
+05
+de
+1e
+5e
+ee
+77
+21
+b1
+c3
+5f
+d1
+0b
+fb
+d9
+0d
+ba
+15
+e5
+07
+7c
+af
+bc
+0f
+cf
+5e
+ec
+c4
+10
+26
+48
+4f
+71
+5d
+a5
+ad
+6d
+28
+2e
+75
+8b
+17
+7f
+51
+f2
+55
+01
+f6
+be
+db
+9d
+60
+6c
+a2
+14
+9f
+7d
+72
+94
+7a
+c7
+8f
+30
+3e
+98
+93
+2f
+fc
+c7
+49
+50
+b7
+f4
+0e
+4e
+46
+3c
+47
+54
+1c
+bd
+de
+fa
+a4
+9c
+c5
+2b
+79
+de
+fe
+48
+36
+bc
+26
+fc
+62
+18
+1a
+e0
+2f
+0d
+92
+9c
+4b
+62
+d4
+7f
+b9
+98
+ab
+73
+0e
+a2
+bb
+04
+94
+c3
+18
+82
+1e
+6f
+7e
+56
+6b
+95
+90
+80
+f4
+8a
+e6
+4e
+d5
+4c
+e8
+56
+44
+e7
+63
+f1
+4b
+9a
+ff
+f7
+9a
+98
+8c
+f2
+50
+ea
+45
+cf
+3c
+91
+f3
+a1
+c9
+c6
+ae
+12
+c6
+2e
+bf
+e1
+78
+5a
+eb
+ff
+4d
+12
+20
+9e
+46
+39
+1b
+db
+8d
+ee
+8a
+4e
+aa
+8e
+47
+ca
+49
+f2
+c9
+53
+3c
+1c
+9c
+65
+f6
+af
+0b
+77
+91
+f6
+50
+c7
+af
+b3
+99
+f5
+80
+c4
+9b
+1c
+33
+41
+ee
+9a
+88
+1f
+9b
+e5
+ef
+49
+80
+f2
+f1
+33
+17
+13
+36
+be
+f9
+d4
+35
+4a
+26
+c5
+4f
+b8
+87
+57
+25
+63
+a0
+ac
+72
+fe
+09
+a5
+ce
+7e
+f6
+01
+cd
+31
+9b
+9a
+97
+9e
+1d
+ba
+2e
+99
+1b
+29
+24
+b9
+25
+70
+e4
+fe
+91
+11
+49
+94
+25
+ff
+27
+5e
+8e
+e4
+36
+3d
+da
+a2
+02
+04
+49
+4e
+c1
+62
+a8
+db
+97
+0b
+50
+e7
+96
+96
+ed
+f3
+4e
+5a
+c3
+30
+87
+2b
+b3
+53
+c9
+fd
+e4
+c8
+86
+4b
+42
+2b
+e8
+46
+62
+16
+e6
+36
+63
+c9
+2c
+00
+19
+88
+80
+9c
+71
+20
+ec
+7f
+b8
+25
+3a
+e7
+0e
+da
+c8
+4c
+b6
+18
+14
+21
+e8
+66
+e3
+80
+30
+4d
+b0
+c3
+73
+84
+61
+16
+f6
+b8
+24
+1b
+cf
+b1
+89
+b6
+2e
+79
+aa
+40
+da
+e5
+68
+51
+62
+18
+a4
+cf
+7b
+26
+72
+b1
+73
+85
+05
+06
+88
+59
+95
+18
+38
+25
+af
+05
+dd
+8e
+17
+c6
+35
+d4
+ff
+34
+66
+ef
+9a
+cb
+7f
+fd
+98
+a7
+6f
+ff
+53
+e8
+8b
+c2
+90
+f4
+d8
+bb
+05
+9c
+d4
+88
+a0
+03
+dd
+8d
+25
+e5
+5a
+c4
+51
+c8
+ac
+bb
+07
+d4
+ad
+b1
+87
+a1
+bf
+91
+ca
+d2
+3b
+18
+c0
+de
+d1
+fc
+7f
+4d
+2c
+d9
+58
+13
+10
+ad
+95
+70
+47
+d9
+6d
+63
+c7
+ca
+a4
+6e
+d7
+ea
+24
+af
+74
+dc
+a8
+f9
+d1
+c5
+a1
+0c
+bd
+23
+75
+48
+4f
+37
+e6
+a2
+79
+1d
+2a
+d9
+6b
+c8
+55
+2d
+c8
+07
+bf
+13
+65
+a8
+c3
+c7
+6f
+e2
+e8
+63
+76
+4a
+af
+c1
+16
+b0
+43
+e4
+12
+99
+2d
+6e
+b4
+55
+a1
+7d
+da
+50
+ab
+10
+51
+fe
+e7
+06
+68
+34
+03
+93
+2c
+cc
+85
+41
+ed
+a8
+d6
+33
+31
+de
+8b
+b8
+22
+1b
+f1
+ce
+56
+e5
+36
+29
+11
+1a
+f6
+84
+bf
+af
+83
+1e
+ee
+32
+34
+65
+70
+32
+a1
+f3
+e4
+71
+06
+25
+b6
+7e
+d5
+49
+f5
+01
+58
+06
+89
+f7
+96
+5f
+ac
+ea
+35
+e6
+59
+54
+7f
+46
+6f
+d3
+38
+56
+07
+63
+92
+b0
+29
+e9
+bb
+f9
+bc
+3f
+52
+c5
+4e
+5d
+72
+74
+23
+4e
+0d
+b2
+49
+bc
+31
+41
+48
+ce
+fd
+34
+10
+7d
+5a
+fe
+37
+5e
+d1
+5e
+7b
+4d
+f6
+c0
+b9
+80
+43
+3d
+27
+c1
+7b
+d6
+94
+26
+4a
+24
+1e
+d5
+70
+59
+5b
+fa
+37
+00
+2a
+ff
+e0
+66
+20
+2a
+02
+73
+01
+e2
+16
+fa
+28
+58
+de
+1d
+5b
+db
+a2
+7b
+b8
+c6
+85
+f9
+63
+17
+ce
+2a
+c9
+f7
+0f
+d5
+64
+28
+b4
+62
+0d
+93
+b3
+7e
+e3
+fe
+e9
+d9
+e8
+a1
+db
+a4
+bc
+e0
+37
+8c
+c2
+dd
+ed
+59
+71
+00
+78
+6d
+19
+c9
+f6
+1b
+39
+0b
+70
+fe
+fb
+7b
+ce
+7a
+b1
+88
+a0
+f9
+98
+26
+18
+f6
+a2
+8f
+36
+f0
+ff
+45
+c7
+6f
+9e
+4c
+22
+aa
+29
+f6
+07
+05
+04
+db
+30
+73
+d2
+9c
+cc
+33
+18
+e8
+91
+49
+b6
+c2
+0d
+cd
+1d
+f5
+92
+84
+a9
+0b
+b1
+55
+9c
+60
+07
+e8
+20
+ea
+f0
+5b
+d9
+a4
+1a
+6d
+1c
+67
+2b
+9c
+8d
+c1
+fa
+7c
+35
+45
+ce
+cc
+65
+47
+1a
+92
+0d
+7a
+b8
+ca
+71
+4c
+b7
+7d
+a0
+03
+70
+95
+5b
+ad
+35
+c8
+5e
+2a
+db
+e5
+c0
+e0
+8e
+9f
+fe
+40
+c3
+1b
+d1
+2d
+51
+3e
+57
+39
+81
+24
+e9
+de
+e3
+74
+02
+e1
+5d
+ec
+55
+15
+55
+c5
+70
+41
+58
+e5
+6c
+2d
+d0
+bb
+d5
+06
+5e
+24
+76
+b3
+b8
+25
+25
+0a
+39
+1d
+c5
+59
+ef
+ac
+c8
+c6
+9b
+1a
+2b
+c0
+df
+2a
+e5
+9f
+20
+eb
+6f
+bc
+5b
+e4
+6b
+39
+32
+5c
+33
+71
+54
+71
+37
+8d
+58
+c6
+10
+74
+cc
+5e
+12
+06
+ee
+9f
+f1
+73
+9d
+0c
+2c
+24
+66
+9c
+02
+2b
+04
+2b
+c4
+98
+cd
+c8
+7c
+8c
+be
+96
+7b
+33
+23
+c0
+71
+7f
+e5
+34
+cd
+59
+9a
+a1
+15
+18
+17
+df
+77
+3a
+b3
+28
+91
+77
+53
+21
+c7
+79
+3f
+72
+28
+3f
+ba
+f0
+69
+23
+40
+12
+55
+02
+7a
+fe
+07
+44
+22
+c8
+22
+e3
+2c
+7d
+51
+49
+5e
+29
+38
+1f
+8f
+3c
+c3
+6f
+ac
+25
+23
+f9
+d8
+68
+66
+a4
+01
+ef
+ea
+21
+d1
+c1
+19
+19
+b3
+cb
+dc
+f2
+93
+6d
+f9
+4c
+9d
+f6
+ec
+05
+12
+50
+1a
+62
+cc
+02
+3e
+73
+44
+8a
+25
+0c
+8c
+9e
+13
+90
+d9
+c9
+04
+98
+9d
+44
+5d
+60
+f9
+50
+73
+f5
+95
+f1
+78
+a2
+61
+b1
+6f
+49
+30
+51
+f3
+a0
+0e
+ae
+2e
+62
+ab
+2b
+b7
+02
+9e
+49
+dd
+4a
+8b
+cf
+59
+3f
+03
+47
+3b
+fd
+7a
+83
+03
+f3
+f1
+2b
+1d
+a1
+50
+88
+06
+fa
+f2
+cc
+ad
+da
+00
+c4
+9d
+35
+ee
+41
+84
+37
+5e
+c0
+ac
+72
+d3
+ee
+b9
+42
+eb
+df
+9b
+67
+43
+eb
+06
+58
+65
+d4
+83
+81
+b7
+12
+4c
+f9
+06
+5b
+34
+40
+5e
+92
+51
+ae
+ea
+5d
+52
+7a
+64
+9f
+93
+96
+cc
+5e
+91
+a5
+4a
+30
+30
+67
+1c
+60
+ff
+53
+3b
+4f
+07
+aa
+44
+e7
+5c
+46
+cc
+2f
+8f
+1f
+8c
+a8
+03
+b9
+74
+25
+da
+72
+fd
+fe
+be
+fc
+e2
+d2
+fb
+ec
+89
+50
+a1
+24
+a2
+ca
+d0
+aa
+2c
+a0
+25
+b4
+86
+78
+09
+4e
+c1
+e2
+dc
+37
+a2
+e9
+e9
+d7
+ca
+3f
+9c
+64
+e1
+28
+15
+1d
+77
+23
+8b
+4f
+9c
+e1
+61
+28
+94
+2a
+c9
+15
+6e
+ee
+8e
+04
+4f
+1e
+a5
+20
+56
+74
+17
+91
+aa
+c1
+30
+2d
+5a
+dd
+df
+80
+31
+ed
+e7
+c6
+d1
+bc
+d5
+3f
+57
+22
+08
+38
+a3
+97
+43
+4a
+0b
+6e
+7d
+83
+67
+1e
+18
+84
+6f
+ad
+67
+d9
+f4
+d6
+6f
+c8
+91
+97
+2e
+7c
+09
+7f
+47
+64
+ee
+6f
+21
+ac
+b6
+4a
+b7
+09
+3a
+75
+5d
+31
+3f
+8d
+90
+b3
+a6
+7b
+64
+00
+95
+56
+c3
+fc
+63
+51
+6a
+29
+a9
+93
+94
+a0
+36
+cf
+cb
+c7
+78
+4c
+2a
+9a
+ba
+fa
+75
+6c
+6d
+3e
+51
+4d
+d0
+e1
+9b
+fe
+00
+f1
+5e
+14
+03
+1a
+60
+08
+7a
+05
+8b
+e9
+11
+96
+01
+14
+1f
+27
+bf
+58
+c7
+22
+df
+fc
+1a
+bb
+bf
+0a
+35
+f5
+19
+2f
+48
+cb
+68
+e3
+9b
+b1
+17
+72
+eb
+56
+81
+4d
+58
+e3
+20
+48
+00
+d6
+5a
+19
+0d
+53
+ef
+53
+19
+05
+f2
+4e
+7c
+24
+11
+30
+92
+24
+a7
+16
+4d
+aa
+55
+40
+00
+00
+40
+05
+00
+33
+07
+20
+01
+00
+00
+f4
+7f
+a5
+3e
+02
+80
+c2
+00
+11
+00
+00
+04
+00
+00
+02
+00
+20
+00
+20
+3c
+00
+00
+40
+04
+00
+00
+10
+04
+60
+00
+00
+00
+00
+30
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+13
+47
+04
+09
+72
+00
+08
+00
+00
+0c
+aa
+55
+01
+00
+cb
+43
+0f
+aa
+55
+01
+00
+ba
+4a
+01
+aa
+55
+01
+00
+ec
+44
+ff
+aa
+55
+01
+00
+eb
+44
+1e
+aa
+55
+03
+00
+ee
+44
+01
+0b
+4a
+aa
+55
+01
+00
+0d
+4a
+ff
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+d2
+45
+07
+aa
+55
+02
+00
+f0
+45
+83
+47
+aa
+55
+02
+00
+3f
+46
+85
+90
+aa
+55
+02
+00
+42
+46
+75
+80
+aa
+55
+01
+00
+41
+46
+63
+aa
+55
+01
+00
+27
+46
+7d
+aa
+55
+01
+00
+bd
+4b
+ff
+aa
+55
+09
+00
+c1
+4b
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+f1
+44
+33
+11
+3b
+55
+51
+a1
+aa
+55
+01
+00
+89
+45
+02
+aa
+55
+05
+00
+e3
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+b9
+45
+00
+aa
+55
+01
+00
+40
+47
+02
+aa
+55
+01
+00
+ca
+45
+00
+aa
+55
+02
+00
+8b
+45
+c0
+12
+aa
+55
+01
+00
+3e
+46
+94
+aa
+55
+03
+00
+af
+45
+00
+48
+60
+aa
+55
+02
+00
+1d
+46
+0a
+00
+aa
+55
+02
+00
+1b
+46
+50
+00
+aa
+55
+02
+00
+23
+47
+32
+00
+aa
+55
+01
+00
+f4
+46
+02
+aa
+55
+08
+00
+c0
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+20
+aa
+55
+01
+00
+6b
+49
+20
+aa
+55
+06
+00
+db
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+93
+43
+07
+aa
+55
+02
+00
+be
+47
+96
+00
+aa
+55
+02
+00
+b5
+47
+15
+00
+aa
+55
+02
+00
+9b
+43
+19
+00
+aa
+55
+04
+00
+b7
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+32
+43
+28
+00
+aa
+55
+02
+00
+bb
+47
+30
+00
+aa
+55
+0c
+00
+48
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+10
+00
+a0
+47
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+11
+00
+68
+43
+1f
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+0f
+00
+6b
+42
+0e
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d3
+42
+07
+00
+07
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+9a
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+f4
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+f2
+49
+0a
+18
+aa
+55
+10
+00
+e1
+49
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+fd
+49
+c1
+03
+aa
+55
+02
+00
+bb
+4a
+78
+00
+aa
+55
+08
+00
+99
+4b
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+06
+00
+2d
+46
+dc
+05
+84
+03
+e8
+03
+aa
+55
+01
+00
+07
+44
+02
+aa
+55
+01
+00
+09
+44
+0a
+aa
+55
+01
+00
+08
+44
+0c
+aa
+55
+01
+00
+11
+44
+00
+aa
+55
+04
+00
+0d
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+07
+4a
+1e
+aa
+55
+02
+00
+09
+4a
+e8
+03
+aa
+55
+02
+00
+21
+47
+02
+00
+aa
+55
+01
+00
+3d
+46
+64
+aa
+55
+02
+00
+3a
+46
+58
+02
+aa
+55
+01
+00
+1e
+47
+64
+aa
+55
+01
+00
+3c
+46
+64
+aa
+55
+02
+00
+38
+46
+58
+02
+aa
+55
+02
+00
+25
+47
+70
+17
+aa
+55
+02
+00
+09
+4d
+64
+00
+aa
+55
+02
+00
+ec
+48
+b8
+0b
+aa
+55
+02
+00
+69
+48
+58
+02
+aa
+55
+08
+00
+66
+46
+01
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+06
+00
+01
+4a
+ff
+ff
+ff
+ff
+ff
+ff
+aa
+55
+01
+00
+1b
+47
+01
+aa
+55
+01
+00
+a2
+4b
+00
+aa
+55
+0f
+00
+a8
+4b
+01
+7f
+1e
+01
+7f
+1f
+01
+7f
+20
+01
+7f
+21
+01
+7f
+22
+aa
+55
+07
+00
+d3
+4b
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+df
+4b
+50
+00
+aa
+55
+02
+00
+e4
+4b
+58
+02
+aa
+55
+06
+00
+cb
+4b
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+6b
+48
+ff
+ff
+ff
+aa
+55
+01
+00
+a4
+49
+01
+aa
+55
+01
+00
+55
+46
+ff
+aa
+55
+04
+00
+a5
+49
+7f
+06
+29
+14
+aa
+55
+03
+00
+27
+44
+ff
+17
+16
+aa
+55
+02
+00
+eb
+43
+80
+3f
+aa
+55
+03
+00
+66
+48
+88
+8c
+ff
+aa
+55
+01
+00
+bc
+4b
+80
+aa
+55
+01
+00
+bb
+4b
+80
+aa
+55
+04
+00
+b7
+4b
+80
+80
+ff
+ff
+aa
+55
+03
+00
+63
+48
+01
+02
+ff
+aa
+55
+01
+00
+59
+46
+ff
+aa
+55
+01
+00
+5b
+46
+05
+aa
+55
+0c
+00
+8a
+48
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+6e
+48
+0d
+0e
+0f
+10
+11
+12
+13
+14
+85
+c4
+c5
+c6
+c3
+c2
+03
+04
+83
+84
+82
+c7
+80
+07
+06
+81
+0a
+0b
+ff
+ff
+aa
+55
+90
+00
+16
+4a
+48
+00
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+8b
+35
+1e
+1a
+39
+16
+64
+1b
+8a
+3a
+1f
+08
+3c
+07
+3d
+06
+88
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+7f
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+00
+7f
+e2
+00
+e6
+00
+46
+89
+2a
+31
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+00
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+85
+58
+52
+e9
+50
+4a
+4d
+00
+e1
+e5
+ed
+ee
+ec
+eb
+e8
+f1
+e3
+f6
+f8
+f7
+f9
+ef
+fa
+91
+f5
+e7
+f0
+ea
+f2
+fb
+90
+aa
+55
+13
+00
+ae
+49
+00
+29
+e8
+ed
+ee
+ef
+eb
+ec
+e9
+ea
+fb
+f1
+f0
+f5
+4c
+01
+00
+00
+00
+aa
+55
+02
+00
+ff
+49
+2a
+10
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+3e
+aa
+55
+0c
+00
+16
+00
+00
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+05
+00
+5e
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+68
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+0c
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+1c
+02
+5a
+aa
+55
+01
+00
+38
+44
+a0
+aa
+55
+02
+00
+3b
+44
+bc
+02
+aa
+55
+02
+00
+39
+44
+90
+01
+aa
+55
+02
+00
+3d
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+1e
+81
+bf
+b5
+ff
+1e
+f0
Index: output/memmap.format
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/memmap.format	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/memmap.format	(working copy)
@@ -0,0 +1,2540 @@
+0x0000 mem_le_adv_transmit
+0x0001 mem_le_adv_waitcnt
+0x0002 mem_le_adv_rcv
+0x0003 mem_le_req_rcv
+0x0004 mem_le_scanrsp_rcv
+0x0005 mem_le_conn_rcv
+0x0006 mem_current_context
+0x0007 mem_le_ch_mapped
+0x0008 mem_last_freq
+0x0009 mem_rssi
+0x000a mem_context_ptr
+0x000c mem_rx_window
+0x000e mem_lpm_adjust
+0x000f mem_sync_clke
+0x0015 mem_lpm_current_mult
+0x0016 mem_gpio_wakeup_cfg
+0x0022 mem_clkn_bt
+0x0026 mem_clke_bt
+0x002a mem_dpll_clkn
+0x002e mem_slot_offset
+0x0030 mem_loadcode_times
+0x0031 mem_select_list_item
+0x0032 mem_temp_reconn_record
+0x0032 mem_record_bt_mode
+0x0033 mem_list_item_ptr
+0x0035 mem_rssi_hex
+0x0036 mem_param_tx_setup
+0x0038 mem_param_rf_setup
+0x003a mem_param_conn_access
+0x003c mem_param_clke_cal
+0x003e mem_param_pll_setup
+0x0040 mem_param_rx_setup
+0x0042 mem_param_dpll_start_delay
+0x0044 mem_param_rt_rthalfslot
+0x0046 mem_param_clke_cal_le_1m
+0x0048 mem_param_clke_cal_le_2m
+0x004a mem_param_clke_cal_le_coded
+0x004c mem_le_rxbuf
+0x0150 mem_le_mic
+0x0154 mem_le_peer_mic
+0x0158 mem_le_mrand
+0x0168 mem_le_state
+0x0169 mem_le_mode
+0x016a mem_le_tsniff
+0x016c mem_le_anchor
+0x0170 mem_le_clk_offset
+0x0176 mem_le_receive_window
+0x0178 mem_le_plap
+0x017e mem_le_conn_handle
+0x017f mem_le_arq
+0x0180 mem_le_ch
+0x0181 mem_le_hop
+0x0182 mem_le_event_count
+0x0184 mem_le_supervision_timer
+0x0188 mem_le_instant
+0x018a mem_le_channels
+0x018b mem_le_op
+0x018c mem_le_access
+0x0190 mem_le_crcinit
+0x0193 mem_le_window_size
+0x0194 mem_le_slave_latency
+0x0196 mem_le_superto
+0x0198 mem_le_channel_map
+0x019d mem_le_rx_phy
+0x019e mem_le_tx_phy
+0x019f mem_le_update_new_param
+0x01a8 mem_le_sk
+0x01b8 mem_le_peer_sca
+0x01b9 mem_le_err_code
+0x01ba mem_le_ll_pairing_fail_reason
+0x01bb mem_le_testtype
+0x01bc mem_cmd_le_create_conn
+0x01bd memresult
+0x01bd mem_sp_calc_result
+0x01bd memh
+0x01c1 memg
+0x01c5 memf
+0x01c9 meme
+0x01cd mem_sp_calc_result_high
+0x01cd memd
+0x01d1 memc
+0x01d5 memb
+0x01d9 mema
+0x01dd mem_ucode_status
+0x01de mem_spid_tbuf
+0x01df mem_iicd_tbuf
+0x01df mem_addr_hi
+0x01e0 mem_addr_mi
+0x01e1 mem_addr_lo
+0x01e2 mem_iicd_addr
+0x01e3 mem_spid_rbuf
+0x01e7 mem_ucode_buf
+0x01e9 mem_ucode_len
+0x01eb mem_sched_addr
+0x01ed mem_ucode_keybuf
+0x01fd mem_otp_temp
+0x021d mem_app_evt_timer_count
+0x021e mem_input_store
+0x022e mem_ec_loopc
+0x0230 mem_aes_cmac_data_length
+0x0231 mem_dat
+0x0291 mem_ax_256//32 bytes
+0x02b1 mem_ay_256// 32 bytes
+0x02d1 mem_az_256// 32 bytes
+0x02f1 mem_bx_256// 32 bytes
+0x0311 mem_by_256// 31 bytes
+0x0331 mem_bz_256//32 bytes
+0x0331 mem_tmp1
+0x0331 memahbak
+0x0349 mem_tmp5
+0x0351 mem_cx_256//32 bytes
+0x0371 mem_cy_256// 32 bytes
+0x0390 mem_cy5_256// 1 byte
+0x0391 mem_cz_256// 32 bytes
+0x03b1 mem_k_256//32 bytes
+0x03d1 mem_tmp1_256//32 bytes
+0x03f1 mem_tmp5_256
+0x0411 mem_tmp2_256
+0x0431 mem_tmp3_256
+0x0431 mem_t1_256
+0x0451 mem_tmp0_256
+0x0451 mem_t0_256
+0x0471 mem_t2_256
+0x0491 mem_t3_256
+0x04b1 mem_t7_256
+0x04d1 mem_p
+0x04e9 mem_a
+0x0501 mem_b
+0x0519 mem_gx
+0x0531 mem_gy
+0x0549 memh0
+0x0569 mem_p_256
+0x0589 mem_a_256
+0x05a9 mem_gx_256
+0x05c9 mem_gy_256
+0x05e9 mem_le_slat
+0x05f9 mem_sp_state_start
+0x05f9 mem_sp_dhkey_invalid
+0x05fa mem_gkey
+0x05fe mem_sp_state_end
+0x05fe mem_le_pubkey_remote_x_256
+0x061e mem_le_pubkey_remote_y_256
+0x063e mem_le_dhkey_256
+0x065e mem_sp_confirm_remote
+0x066e mem_ipc_skip_continue_proc
+0x066f mem_fifo_temp
+0x0670 mem_pdatatemp
+0x0678 mem_temp//8 bytes
+0x0680 mem_timeup// 4 bytes
+0x0684 mem_rega//4 bytes
+0x0688 mem_regb//4 bytes
+0x068c mem_regc//3 bytes
+0x068f mem_contr//2 bytes
+0x0691 mem_contw//2 bytes
+0x0693 mem_contus
+0x0695 mem_contue
+0x0697 mem_contu
+0x0699 mem_queue
+0x069b mem_loopcnt
+0x069d mem_saved_gpio_in
+0x06a1 mem_module_rx_error_data_buffer
+0x06a1 mem_le_adv_channel_map_temp
+0x06a1 mem_le_data_len_temp//1byte
+0x06a1 mem_event_cmd_response_content//2byte
+0x06a1 mem_le_prand//16byte
+0x06a1 mem_AES_CMAC_k//16 bytes
+0x06a1 mem_regext_index//1 bytes
+0x06a1 mem_temp_block0
+0x06a2 mem_le_data_temp//15bytes
+0x06a2 mem_temp_block1
+0x06b1 mem_le_tx_buf_temp//48byte
+0x06b1 mem_le_aes_128//16byte
+0x06b1 mem_regext//64 bytes
+0x06b1 mem_AES_CMAC_k1//16 bytes
+0x06b1 mem_temp_block2
+0x06c1 mem_AES_CMAC_k2//16 bytes
+0x06c1 mem_temp_block3
+0x06d1 mem_AES_CMAC_temp// 16 bytes
+0x06d1 mem_temp_block4
+0x06e1 mem_AES_CMAC_M_last// 16 bytes
+0x06e1 mem_module_uart_cmd
+0x06e2 mem_module_uart_opcode
+0x06e3 mem_module_uart_len
+0x06e4 mem_module_temp_nl_discard_packet
+0x06e5 mem_temp_block5
+0x06f1 mem_le_mackey//16 bytes
+0x06f1 mem_app_receive_temp
+0x06f1 mem_key_value_temp
+0x06f3 mem_key_value
+0x06f5 mem_key_value_temp1
+0x06f6 mem_key_value_temp2
+0x06f7 mem_key_value_temp3
+0x06f8 mem_key_value_temp4
+0x06f9 mem_key_value_temp5
+0x06fa mem_key_value_temp6
+0x06fb mem_temp_block6
+0x0701 mem_scale_ratio
+0x0704 mem_xcnt
+0x0707 mem_scale_ratio_temp
+0x0709 mem_mesh_receive_model_message_payload_len
+0x070a mem_mesh_receive_model_message_payload_opcode
+0x070b mem_mesh_receive_model_message_payload
+0x0722 mem_mesh_access_layer_payload_len
+0x0723 mem_mesh_access_layer_payload
+0x0723 mem_mesh_access_payload
+0x0755 mem_mesh_access_payload_padding//为了透传模块预留
+0x0787 mem_mesh_queue_ele_temp
+0x0787 mem_mesh_queue_ele_duration
+0x0788 mem_mesh_queue_ele_gatt_msg_id
+0x0789 mem_mesh_queue_ele_len
+0x078a mem_mesh_queue_ele_payload
+0x07a9 mem_mesh_queue_ele_padding
+0x07aa mem_le_txheader_mesh_temp
+0x07d1 mem_mesh_sha256_chunk_start
+0x07d1 mem_mesh_sha256_chunk1
+0x0811 mem_mesh_sha256_chunk2
+0x0851 mem_mesh_sha256_chunk3
+0x0891 mem_mesh_sha256_chunk4
+0x08d1 mem_mesh_Privacy_Plaintext
+0x08d1 mem_mesh_Privacy_Plaintext_Zero_String
+0x08d6 mem_mesh_Privacy_Plaintext_IV_Index
+0x08da mem_mesh_Privacy_Plaintext_Privacy_Random
+0x08da mem_mesh_Privacy_Plaintext_Privacy_Random_EncDST
+0x08dc mem_mesh_Privacy_Plaintext_Privacy_Random_EncTransportPDU_or_NetMIC
+0x08e1 mem_mesh_PECB
+0x08f1 mem_nonce_ptr
+0x08f3 mem_ccm_data_len
+0x08f4 mem_ccm_data_ptr
+0x08f6 mem_ccm_mic
+0x08fe mem_ccm_type
+0x08ff mem_mesh_Device_UUID
+0x090f mem_mesh_receive_VID
+0x0910 mem_mesh_mic_cache_ptr
+0x0912 mem_adv_CRC_False_initValue
+0x0914 mem_CRC16_polynomial
+0x0916 mem_mesh_lower_transport_layer_payload_len
+0x0917 mem_mesh_loopcnt_tmep
+0x0919 mem_mesh_rega_temp
+0x091b mem_mesh_regb_temp
+0x091d mem_mesh_regc_temp
+0x091f mem_mesh_alarm_temp
+0x0921 mem_mesh_message_Transport_NetMIC_length
+0x0922 mem_mesh_message_NID
+0x0923 mem_mesh_message_TTL
+0x0924 mem_mesh_message_SEQ
+0x0927 mem_mesh_message_SRC
+0x0929 mem_mesh_message_DST
+0x092b mem_mesh_message_Proxy_TransportPDU_opcode
+0x092b mem_mesh_message_Transport_NetMIC
+0x092b mem_mesh_message_Transport_Head
+0x092c mem_mesh_message_Proxy_TransportPDU_Parameters
+0x092c mem_mesh_message_Transport_unsegmented_access_messagePDU
+0x092c mem_mesh_message_Transport_segmented_access_messagePDU
+0x092c mem_mesh_message_segment_access_SZMIC_SeqZero_SegO_SegN
+0x092f mem_mesh_message_Transport_segmented_access_messagePDU_Segment
+0x092f mem_mesh_message_Transport_NetMIC_end
+0x093f mem_mesh_nonce_struct
+0x094c mem_mesh_send_message_DST
+0x094e mem_mesh_last_message_SEQ
+0x0951 mem_mesh_network_packet_type
+0x0952 mem_mesh_receive_message_count
+0x0953 mem_mesh_receive_message_first_unicast_address
+0x0955 mem_mesh_receive_message_second_unicast_address
+0x0957 mem_mesh_receive_message_third_unicast_address
+0x0959 mem_mesh_receive_message_fourth_unicast_address
+0x095b mem_mesh_Proxy_Nonce
+0x095b mem_mesh_Proxy_Nonce_Nonce_Type
+0x095c mem_mesh_Proxy_Nonce_Pad
+0x095d mem_mesh_Proxy_Nonce_SEQ
+0x0960 mem_mesh_Proxy_Nonce_SRC
+0x0962 mem_mesh_Proxy_Nonce_Pad2
+0x0964 mem_mesh_Proxy_Nonce_IV_Index
+0x0968 mem_mesh_white_list
+0x0978 mem_mesh_white_list_num
+0x097a mem_mesh_addressed_filter_type
+0x097b mem_mesh_upper_transport_layer_payload_ptr
+0x097d mem_mesh_segmented_upper_transport_layer_payload_len
+0x097e mem_mesh_segmented_lower_transport_layer_SegZero
+0x0980 mem_mesh_segmented_lower_transport_layer_SegO
+0x0981 mem_mesh_segmented_lower_transport_layer_SegN
+0x0982 mem_mesh_segmented_last_packet_upper_teansport_payload_len
+0x0983 mem_mesh_upper_tran_layer_queue_temp
+0x0983 mem_mesh_upper_tran_layer_temp_packet_flag
+0x0984 mem_mesh_upper_tran_layer_temp_packet_transmit_delay
+0x0986 mem_mesh_upper_tran_layer_temp_packet_TID
+0x0987 mem_mesh_upper_tran_layer_temp_packet_header_IVI_NID
+0x0988 mem_mesh_upper_tran_layer_temp_packet_header_CTL_TTL
+0x0989 mem_mesh_upper_tran_layer_temp_packet_header_SEQ
+0x098c mem_mesh_upper_tran_layer_temp_packet_header_SRC
+0x098e mem_mesh_upper_tran_layer_temp_packet_header_DST
+0x0990 mem_mesh_upper_tran_layer_temp_packet_length
+0x0991 mem_mesh_upper_tran_layer_temp_packet_payload
+0x09fd mem_mesh_network_dup_cache
+0x0a3d mem_mesh_network_msg_cache
+0x0a8d mem_mesh_network_relay_gatt_queue_each_size
+0x0a8e mem_mesh_network_relay_gatt_queue_length
+0x0a8f mem_mesh_network_relay_gatt_queue_current_num
+0x0a90 mem_mesh_network_relay_gatt_queue_read_ptr
+0x0a91 mem_mesh_network_relay_gatt_queue_write_ptr
+0x0a92 mem_mesh_network_relay_gatt_queue_ele
+0x0709 mem_hci_opcode_ocf
+0x070b mem_hci_opcode_ogf
+0x070c mem_hci_event_head_type
+0x070d mem_hci_event_head_event_code
+0x070e mem_hci_event_para_total_length
+0x070f mem_hci_command_complete_num_hci_command_packet
+0x0710 mem_hci_command_complete_command_opcode
+0x0710 mem_hci_opcode
+0x0712 mem_hci_command_complete_return_parameter
+0x0712 mem_hci_command_complete_return_parameter_status
+0x0713 mem_hci_command_complete_return_parameter_chip_id
+0x0709 mem_module_le_rx_data_len
+0x070b mem_module_le_rx_data_address
+0x070d mem_module_le_rx_data_handle
+0x0709 mem_init_cnt
+0x070b mem_data_pre
+0x070d mem_data_current
+0x070f mem_data_sum
+0x0712 mem_data_value
+0x0709 mem_le_test_sync
+0x070b mem_le_test_pcnt
+0x070d mem_tst_pktcnt_crc
+0x070f mem_tst_pktcnt_dmh
+0x0711 mem_tmp_buffer_head
+0x0714 mem_tmp_buffer
+0x0709 mem_usb_status
+0x070b mem_usb_fifo_empty
+0x070c mem_usb_read_len
+0x070e mem_usb_txbuf
+0x074f mem_usb_txbuf1
+0x0759 mem_usb_txbuf2
+0x0763 mem_usb_rxbuf
+0x07a3 mem_usb_rxbuf_end
+0x07a4 mem_bufptr
+0x07a6 mem_remain
+0x07a7 mem_hidreportdesc_kb
+0x07a9 mem_hidreportdesc_m
+0x07ab mem_devicedesc
+0x07be mem_confdesc
+0x07fa mem_string0
+0x07ff mem_string1
+0x081d mem_string2
+0x083b mem_string3
+0x0859 mem_cb_usb_config
+0x085b mem_usb_tx_interval
+0x085c mem_usb_vid_pid
+0x0865 mem_usb_zero_packet
+0x0867 mem_usb_ones_packet
+0x0869 mem_usb_two_packet
+0x086b mem_usb0_state
+0x086c mem_usb_offline_check_gpio
+0x086d mem_usb_clear_mem_start
+0x086d mem_usb_setup
+0x086d mem_usb_setup_bmRequestType
+0x086e mem_usb_setup_bRequest
+0x086f mem_usb_setup_bValue
+0x0870 mem_usb_setup_bValueH
+0x0871 mem_usb_setup_wIndex
+0x0873 mem_usb_setup_bLength
+0x0874 mem_usb_setup_bLengthH
+0x0875 mem_usb0_set_report_data
+0x08b5 mem_usb0_get_report_data
+0x08f5 mem_usb_setup_bValue_temp
+0x08f7 mem_usb0_get_set_report
+0x08f8 mem_usb0_data_ready_report
+0x08f9 mem_usb_tx_win_enable
+0x08fa mem_usb_tx_mac_enable
+0x08fb mem_usb_idle_flag
+0x08fc mem_usb_idle_rate
+0x08fd mem_usb_get_protocol_flag
+0x08fe mem_usb_set_protocol_status
+0x08ff mem_usb_set_protocol_value
+0x0900 mem_usb_state
+0x0901 mem_usb_remote_wakeup
+0x0902 mem_usb_clear_remote_wakeup
+0x0903 mem_sdsystem_wakeup_flag
+0x0904 mem_usb_ep0_stall_status
+0x0905 mem_usb_ep1_stall_status
+0x0906 mem_usb_ep2_stall_status
+0x0907 mem_usb_ep3_stall_status
+0x0908 mem_dsc_info_data_pointer
+0x090a mem_dsc_info_len
+0x090b mem_usb_ep1_data
+0x090c mem_usb_ep2_data
+0x090d mem_usb_tx_enable
+0x090e mem_usb_device_enumeration_endflag
+0x090f mem_usb_wakestate_onetime_flag
+0x0910 mem_usb_mac_wakeup_trig
+0x0911 mem_usb_set_high_addr_flag
+0x0912 mem_usb_clear_halt
+0x0913 mem_usb_mouse_data
+0x0923 mem_usb_kb_data
+0x0933 mem_usb_kb_multikey
+0x0943 mem_usb_kb_system
+0x0953 mem_usb_test_cnt
+0x0955 mem_usb_test_kb
+0x095f mem_usb_clear_mem_end
+0x095f mem_usb_ccid_buf
+0x099f mem_dg_rssi_noise_buffer
+0x0a9f mem_dg_rssi_noise_dg_buffer
+0x0b9f mem_dg_rssi_noise_ms_buffer
+0x0c9f mem_dg_rssi_noise_kb_buffer
+
+0x019f mem_le_new_param
+0x019f mem_le_new_transmitwindowsize
+0x01a0 mem_le_new_transmitwindowoffset
+0x01a2 mem_le_new_conninterval
+0x01a4 mem_le_new_connslavelatency
+0x01a6 mem_le_new_connsupervisiontimeout
+0x019f mem_le_new_map
+0x019f mem_le_new_m2s_phy
+0x01a0 mem_le_new_s2m_phy
+0x004c mem_le_rxbuf_data_header
+0x004d mem_le_rxbuf_data_length
+0x004e mem_le_rxbuf_data_payload
+0x004c mem_le_rxbuf_data_ll_header
+0x004d mem_le_rxbuf_data_ll_length
+0x004e mem_le_rxbuf_data_ll_opcode
+0x004f mem_le_rxbuf_data_ll_control_data
+0x004c mem_le_rxbuf_adv_header
+0x004d mem_le_rxbuf_adv_length
+0x004e mem_le_rxbuf_adv_payload
+0x004c mem_le_rxbuf_adv_scan_req_header
+0x004d mem_le_rxbuf_adv_scan_req_length
+0x004e mem_le_rxbuf_adv_scan_req_scan_address
+0x0054 mem_le_rxbuf_adv_scan_req_adv_address
+0x004c mem_le_rxbuf_adv_connect_ind_header
+0x004d mem_le_rxbuf_adv_connect_ind_length
+0x004e mem_le_rxbuf_adv_connect_ind_init_address
+0x0054 mem_le_rxbuf_adv_connect_ind_adv_address
+0x005a mem_le_rxbuf_adv_connect_ind_access_address
+0x005e mem_le_rxbuf_adv_connect_ind_crc_init
+0x0061 mem_le_rxbuf_adv_connect_ind_win_size
+0x0062 mem_le_rxbuf_adv_connect_ind_win_offset
+0x0064 mem_le_rxbuf_adv_connect_ind_interval
+0x0066 mem_le_rxbuf_adv_connect_ind_latency
+0x0068 mem_le_rxbuf_adv_connect_ind_timeout
+0x006a mem_le_rxbuf_adv_connect_ind_channel_map
+0x006f mem_le_rxbuf_adv_connect_ind_hop_and_sca
+0x06b1 mem_le_search_handle_start
+0x06b3 mem_le_search_handle_end
+0x06b5 mem_le_att_offset
+0x06b5 mem_le_search_att_type_length
+0x06b6 mem_le_search_att_type
+0x06c6 mem_le_curr_att_len
+0x06c7 mem_le_cur_attlist_start_ptr
+0x06c9 mem_le_cur_handle_start
+0x06cb mem_le_cur_handle_end
+0x06cd mem_le_cur_uuid_length
+0x06ce mem_le_cur_uuid
+0x06de mem_le_cur_handle
+0x004c mem_le_rxbuf_data_att_header
+0x004d mem_le_rxbuf_data_att_length
+0x004e mem_le_rxbuf_data_att_l2cap_length
+0x0050 mem_le_rxbuf_data_att_cid
+0x0052 mem_le_rxbuf_data_att_opcode
+0x0053 mem_le_rxbuf_data_att_payload
+0x004c mem_le_rxbuf_data_continue_header
+0x004d mem_le_rxbuf_data_continue_length
+0x004e mem_le_rxbuf_data_continue_payload
+0x004c mem_le_rxbuf_data_att_write_header
+0x004d mem_le_rxbuf_data_att_write_length
+0x004e mem_le_rxbuf_data_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_att_write_cid
+0x0052 mem_le_rxbuf_data_att_write_opcode
+0x0053 mem_le_rxbuf_data_att_write_handle
+0x0055 mem_le_rxbuf_data_att_write_payload
+0x004c mem_le_rxbuf_data_prepare_att_write_header
+0x004d mem_le_rxbuf_data_prepare_att_write_length
+0x004e mem_le_rxbuf_data_prepare_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_prepare_att_write_cid
+0x0052 mem_le_rxbuf_data_prepare_att_write_opcode
+0x0053 mem_le_rxbuf_data_prepare_att_write_handle
+0x0055 mem_le_rxbuf_data_prepare_att_write_offset
+0x0057 mem_le_rxbuf_data_prepare_att_write_payload
+0x070b mem_mesh_NETKeyindex_and_APPKeyindex
+0x070e mem_mesh_receive_application_key
+0x070b mem_mesh_vendor_message_cid
+0x070d mem_mesh_vendor_message_tid
+0x070e mem_mesh_vendor_message_attr_type
+0x070b mem_mesh_vendor_message_header
+0x0710 mem_mesh_vendor_attr_parameter
+0x070b mem_mesh_vendor_message_delay_close_time_header
+0x0710 mem_mesh_vendor_delay_close_time
+0x070b mem_mesh_vendor_message_night_light_onoff_header
+0x0710 mem_mesh_vendor_night_light_onoff
+0x070b mem_mesh_vendor_message_color_header
+0x0710 mem_mesh_vendor_color_lightness
+0x0712 mem_mesh_vendor_color_hue
+0x0714 mem_mesh_vendor_color_saturation
+0x070b mem_mesh_vendor_message_back_light_onoff_header
+0x0710 mem_mesh_vendor_back_light_onoff
+0x070b mem_mesh_vendor_message_main_light_onoff_header
+0x0710 mem_mesh_vendor_main_light_onoff
+0x070b mem_mesh_vendor_message_standby_brightness_header
+0x0710 mem_mesh_vendor_standby_brightness
+0x070b mem_mesh_vendor_message_current_time_header
+0x0710 mem_mesh_vendor_message_current_time
+0x0723 mem_mesh_access_layer_payload_vendor_command
+0x0724 mem_mesh_access_layer_payload_vendor_CID
+0x0726 mem_mesh_access_layer_payload_vendor_tid
+0x0727 mem_mesh_access_layer_payload_vendor_attr_type
+0x0729 mem_mesh_access_layer_payload_vendor_attr_parameter
+0x06a1 mem_mesh_subscription_eep_temp
+0x0787 mem_mesh_gatt_package_receive_msg_buffer_ptr
+0x0789 mem_mesh_gatt_package_receive_msg_buffer_temp
+0x0789 mem_mesh_gatt_package_receive_msg_id
+0x078b mem_mesh_gatt_package_receive_MAC
+0x078b mem_mesh_gatt_package_receive_msg_num
+0x078c mem_mesh_gatt_package_receive_msg_total_length
+0x078d mem_mesh_gatt_package_receive_msg_payload
+0x08ff mem_mesh_receive_service_uuid_company_id
+0x0901 mem_mesh_receive_service_uuid_vid
+0x0902 mem_mesh_receive_service_uuid_provisioning_type
+0x0903 mem_mesh_receive_service_uuid_mac
+0x0905 mem_mesh_receive_service_uuid_msg_id
+0x0906 mem_mesh_receive_service_uuid_package_num
+0x0907 mem_mesh_receive_service_uuid_length
+0x0908 mem_mesh_receive_service_uuid_payload_data
+0x07aa mem_mesh_fast_pair_packet_type
+0x070b mem_mesh_configuration_health_message_opcode
+0x070b mem_mesh_configuration_health_message_opcode_config_model_subscription
+0x070c mem_mesh_subscription_element_address
+0x070e mem_mesh_subscription_value_address
+0x0710 mem_mesh_subscription_model_identifier
+0x070b mem_mesh_configuration_health_message_opcode_config_model_subscription_ow//overwrite
+0x070c mem_mesh_subscription_element_address_ow
+0x070e mem_mesh_subscription_list_num_ow
+0x070f mem_mesh_subscription_value_address_start_ow
+0x07d1 mem_chip_clear_paired_info
+0x070b mem_mesh_module_message_opcode
+0x070b mem_mesh_module_message_opcode_onoff_set
+0x070c mem_mesh_generic_onoff_set_payload_OnOff
+0x070d mem_mesh_generic_onoff_set_payload_TID
+0x070e mem_mesh_generic_onoff_set_payload_Transition_Time
+0x070f mem_mesh_generic_onoff_set_payload_Delay
+0x070b mem_mesh_module_message_opcode_scene_recall
+0x070c mem_mesh_scene_recall_payload_scene_number
+0x070e mem_mesh_scene_recall_payload_TID
+0x070f mem_mesh_scene_recall_payload_Transition_Time
+0x0710 mem_mesh_scene_recall_payload_Delay
+0x070b mem_mesh_module_message_opcode_set_light_lightness
+0x070c mem_mesh_light_lightness_set_payload_lightness
+0x070e mem_mesh_light_lightness_set_payload_TID
+0x070f mem_mesh_light_lightness_set_payload_Transition_Time
+0x0710 mem_mesh_light_lightness_set_payload_Delay
+0x0711 mem_mesh_light_lightness_calc_lightness
+0x070b mem_mesh_module_message_opcode_set_light_ctl
+0x070c mem_mesh_CTL_Lightness
+0x070e mem_mesh_CTL_Temperature
+0x0710 mem_mesh_CTL_Delta_UV
+0x0712 mem_mesh_CTL_lightness_TID
+0x0713 mem_mesh_CTL_lightness_Transition_Time
+0x0714 mem_mesh_CTL_lightness_Delay
+0x0715 mem_mesh_CTL_calc_lightness
+0x0716 mem_mesh_CTL_calc_temperature
+0x093f mem_mesh_Network_Nonce
+0x093f mem_mesh_Network_Nonce_nonce_type
+0x0940 mem_mesh_Network_Nonce_CTL_and_TTL
+0x0941 mem_mesh_Network_Nonce_SEQ
+0x0944 mem_mesh_Network_Nonce_SRC
+0x0946 mem_mesh_Network_Nonce_Pad//0x0000
+0x0948 mem_mesh_Network_Nonce_IV_Index
+0x07aa mem_mesh_network_packet_type_temp
+0x07ab mem_mesh_message_NID_temp
+0x07ac mem_mesh_message_TTL_temp
+0x07ad mem_mesh_message_SEQ_temp
+0x07b0 mem_mesh_message_SRC_temp
+0x07b2 mem_mesh_message_DST_temp
+0x07b4 mem_mesh_message_Transport_PDU_temp
+0x093f mem_mesh_Application_Nonce
+0x093f mem_mesh_Application_Nonce_Nonce_Type
+0x0940 mem_mesh_Application_Nonce_ASZMIC_and_Pad//
+0x0941 mem_mesh_Application_Nonce_SEQ
+0x0944 mem_mesh_Application_Nonce_SRC
+0x0946 mem_mesh_Application_Nonce_DST
+0x0948 mem_mesh_Application_Nonce_IV_Index
+0x093f mem_mesh_Device_Nonce
+0x093f mem_mesh_Device_Nonce_Nonce_Type
+0x0940 mem_mesh_Device_Nonce_ASZMIC_and_Pad//
+0x0941 mem_mesh_Device_Nonce_SEQ
+0x0944 mem_mesh_Device_Nonce_SRC
+0x0946 mem_mesh_Device_Nonce_DST
+0x0948 mem_mesh_Device_Nonce_IV_Index
+0x0722 mem_mesh_upper_transport_layer_payload_len
+0x0991 mem_mesh_upper_tran_layer_temp_pakcet_AKF_AID
+0x0991 mem_mesh_upper_tran_layer_temp_unsegmented_pakcet_AKF_AID
+0x0992 mem_mesh_upper_tran_layer_temp_unsegmented_packet_fill
+0x0996 mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu
+0x0996 mem_mesh_upper_tran_layer_temp_unsegmented_pakcet_upper_tran_access_pdu
+0x0991 mem_mesh_upper_tran_layer_temp_segmented_pakcet_AKF_AID
+0x0992 mem_mesh_upper_tran_layer_temp_segmented_pakcet_SeqZero
+0x0994 mem_mesh_upper_tran_layer_temp_segmented_pakcet_SegO
+0x0995 mem_mesh_upper_tran_layer_temp_segmented_pakcet_SegN
+0x0996 mem_mesh_upper_tran_layer_temp_segmented_pakcet_upper_tran_access_pdu
+0x01fd mem_otp_adc
+0x0205 mem_otp_temp0
+0x020d mem_otp_core_ldo
+0x020e mem_otp_verf_bg
+0x020f mem_otp_charge_pump
+0x0210 mem_otp_dpll_ibais
+0x0211 mem_otp_temp1
+0x0219 mem_otp_hv_sel
+0x021a mem_otp_ldo_vsel
+0x021b mem_otp_load_delay
+0x021c mem_otp_load_check_sum
+0x4000 mem_patch00
+0x4001 mem_patch01
+0x4002 mem_patch02
+0x4003 mem_patch03
+0x4004 mem_patch04
+0x4005 mem_patch05
+0x4006 mem_patch06
+0x4007 mem_patch07
+0x4008 mem_patch08
+0x4009 mem_patch09
+0x400a mem_patch0a
+0x400b mem_patch0b
+0x400c mem_patch0c
+0x400d mem_patch0d
+0x400e mem_patch0e
+0x400f mem_patch0f
+0x4010 mem_patch10
+0x4011 mem_patch11
+0x4012 mem_patch12
+0x4013 mem_patch13
+0x4014 mem_patch14
+0x4015 mem_patch15
+0x4016 mem_patch16
+0x4017 mem_patch17
+0x4018 mem_patch18
+0x4019 mem_patch19
+0x401a mem_patch1a
+0x401b mem_patch1b
+0x401c mem_patch1c
+0x401d mem_patch1d
+0x401e mem_patch1e
+0x401f mem_patch1f
+0x4020 mem_patch20
+0x4021 mem_patch21
+0x4022 mem_patch22
+0x4023 mem_patch23
+0x4024 mem_patch24
+0x4025 mem_patch25
+0x4026 mem_patch26
+0x4027 mem_patch27
+0x4028 mem_patch28
+0x4029 mem_patch29
+0x402a mem_patch2a
+0x402b mem_patch2b
+0x402c mem_patch2c
+0x402d mem_patch2d
+0x402e mem_patch2e
+0x402f mem_patch2f
+0x4030 mem_patch30
+0x4031 mem_patch31
+0x4032 mem_patch32
+0x4033 mem_patch33
+0x4034 mem_patch34
+0x4035 mem_patch35
+0x4036 mem_patch36
+0x4037 mem_patch37
+0x4038 mem_patch38
+0x4039 mem_patch39
+0x403a mem_patch3a
+0x403b mem_patch3b
+0x403c mem_patch3c
+0x403d mem_patch3d
+0x403e mem_patch3e
+0x403f mem_patch3f
+0x4040 mem_context
+0x4093 mem_current_amaddr
+0x4094 mem_lpm_mode
+0x4095 mem_last_clkn
+0x4099 mem_fcomp_div
+0x409a mem_rx_window_sniff
+0x409c mem_rf_init_ptr
+0x409e mem_rf_rccal
+0x409f mem_handle_num
+0x40a0 mem_chip_functions
+0x40a2 mem_lpm_wake_lock
+0x40a4 mem_lpm_interval
+0x40a6 mem_lpm_overhead
+0x40a7 mem_lpm_hibernate_switch
+0x40a8 mem_sniff_unint_lost
+0x40a9 mem_sleep_counter
+0x40ad mem_sleep_counter_all
+0x40b1 mem_sleep_clkn
+0x40b7 mem_sniff_rcv
+0x40ba mem_sniff_lost
+0x40bd mem_clks_per_lpo
+0x40c0 mem_lpm_mult
+0x40c1 mem_lpm_mult_timeout
+0x40c2 mem_lpm_mult_cnt
+0x40c3 mem_lpm_xtalcnt
+0x40c4 mem_lpm_buckcnt
+0x40c5 mem_lpm_ldocnt
+0x40c6 mem_lpm_isogate
+0x40c7 mem_lpm_isogate_stage2
+0x40c8 mem_lpm_isogate_final
+0x40c9 mem_lpm_ldo_sel
+0x40ca mem_lpm_sysctl
+0x40cb mem_lpm_hv_sel
+0x40cc mem_saved_gpio
+0x40e4 mem_saved_gsel
+0x40e7 mem_saved_mark
+0x40ef mem_saved_spidctrl
+0x40f0 mem_patch_ptr
+0x40f2 mem_patch_len
+0x40f4 mem_timers
+0x4114 mem_hci_cmd
+0x4115 mem_hci_conn_handle
+0x4116 mem_hci_plap
+0x4119 mem_hci_puap
+0x411a mem_hci_pnap
+0x411c mem_xtal_c_sel
+0x411d mem_ghpc_table
+0x4135 mem_aac_res_table
+0x4141 mem_tx_power
+0x4142 mem_modem_rssi
+0x4143 mem_gain_fix
+0x4144 mem_gain_table
+0x4147 mem_gain_second_agc_en
+0x4148 mem_system_clk
+0x4149 mem_rf_init_data
+0x415b mem_otp_charge_pump_x
+0x415c mem_otp_dpll_ibais_x
+0x415d mem_xtal_freq
+0x415e mem_version
+0x415f mem_company_id
+0x4161 mem_sub_version
+0x4163 mem_le_dsniff
+0x4165 mem_le_conn_interval
+0x4167 mem_le_tx_ifs_defference
+0x4168 mem_le_tx2m_delay
+0x4169 mem_le_txheader
+0x416a mem_le_txlen
+0x416b mem_le_txpayload
+0x426b mem_le_name_len
+0x426c mem_le_name
+0x428a mem_le_ltk
+0x429a mem_ltk_exists
+0x429b mem_le_rconfirm
+0x42ab mem_le_srand
+0x42bb mem_le_iat
+0x42bc mem_le_rat
+0x42bd mem_le_preq
+0x42be mem_le_preq_iocap
+0x42bf mem_le_preq_oob
+0x42c0 mem_le_preq_auth
+0x42c1 mem_le_preq_max_keysize
+0x42c2 mem_le_preq_init_key_distribution
+0x42c3 mem_le_preq_resp_key_distribution
+0x42c4 mem_le_pres
+0x42c5 mem_le_pres_iocap
+0x42c6 mem_le_pres_oob
+0x42c7 mem_le_pres_auth
+0x42c8 mem_le_pres_max_keysize
+0x42c9 mem_le_pres_init_key_distribution
+0x42ca mem_le_pres_resp_key_distribution
+0x42cb mem_le_conn_param
+0x42cb mem_le_conn_peer_addr_type
+0x42cc mem_le_conn_peer_addr
+0x42d2 mem_le_conn_own_addr_type
+0x42d3 mem_le_interval_min
+0x42d5 mem_le_interval_max
+0x42d7 mem_le_latency
+0x42d9 mem_le_timeout
+0x42db mem_le_lap
+0x42de mem_le_uap
+0x42df mem_le_nap
+0x42e1 mem_le_local_mtu
+0x42e3 mem_le_remote_mtu
+0x42e5 mem_le_skdm
+0x42ed mem_le_skds
+0x42f5 mem_le_init_superto
+0x42f7 mem_ui_le_uuid_table
+0x42f9 mem_le_secure_connect_flag
+0x42fa mem_le_secure_connect_state
+0x42fb mem_le_sc_confirm_gkey_flag
+0x42fc mem_le_pairing_state
+0x42fd mem_le_enc_state
+0x42fe mem_le_pairing_mode
+0x42ff mem_le_tk
+0x4303 mem_le_ediv
+0x4305 mem_le_rand
+0x430d mem_le_irk
+0x431d mem_le_transmit_window
+0x4321 mem_le_configuration
+0x4322 mem_le_fixed_ltk
+0x4332 mem_le_pairing_handle
+0x4334 mem_le_packet_llid
+0x4335 mem_le_l2cap_size
+0x4337 mem_le_packet_len_recved
+0x4339 mem_le_payload_ptr
+0x433b mem_le_signaling_identifier
+0x433c mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x433e mem_le_md_count
+0x433f mem_ble_l2cap_tx_buff0_ptr
+0x4341 mem_ble_l2cap_tx_buff_size_ptr
+0x4343 mem_le_scan_enable
+0x4344 mem_le_scan_interval
+0x4346 mem_le_scan_window
+0x4348 mem_le_adv_data_len
+0x4349 mem_le_adv_data
+0x4368 mem_le_scan_data_len
+0x4369 mem_le_scan_data
+0x4388 mem_le_adv_enable
+0x4389 mem_le_adv_param
+0x4389 mem_le_adv_interval
+0x438b mem_le_adv_type
+0x438c mem_le_adv_own_addr_type
+0x438d mem_le_adv_direct_addr
+0x4393 mem_le_adv_channel_map
+0x4394 mem_le_scan_params
+0x4394 mem_le_scan_type
+0x4395 mem_le_scan_own_addr_type
+0x4396 mem_le_l2cap_att_states
+0x4397 mem_le_att_opcode
+0x4398 mem_le_att_handle
+0x439a mem_le_search_res
+0x439b mem_le_notify_handle
+0x439d mem_le_search_uuid_length
+0x439e mem_le_search_uuid
+0x43ae mem_le_local_feature
+0x43b6 mem_le_tx_phys
+0x43b7 mem_le_rx_phys
+0x43b8 mem_remote_rx_max_octets
+0x43ba mem_remote_rx_max_time
+0x43bc mem_remote_tx_max_octets
+0x43be mem_remote_tx_max_time
+0x43c0 mem_local_rx_max_octets
+0x43c2 mem_local_rx_max_time
+0x43c4 mem_local_tx_max_octets
+0x43c6 mem_local_tx_max_time
+0x43c8 mem_ucode_ptr
+0x43ca mem_ucode_flag
+0x43cb mem_device_option
+0x43cc mem_peripheral_lock_flag
+0x43cd mem_bistfix_val
+0x43d3 mem_cb_check_wakelock
+0x43d5 mem_cb_before_hibernate
+0x43d7 mem_cb_before_lpm
+0x43d9 mem_cb_le_process
+0x43db mem_cb_idle_process
+0x43dd mem_cb_bb_event_process
+0x43df mem_cb_att_write
+0x43e1 mem_cb_ble_transmit
+0x43e3 mem_cb_event_timer
+0x43e5 mem_cb_bt_set_mult
+0x43e7 mem_cb_spi_flash_write_complate
+0x43e9 mem_cb_before_lpm_sleep
+0x43eb mem_eeprom_base
+0x43ed mem_wake_up_delay_timer
+0x43ee mem_app_connection_options
+0x43ef mem_app_disconn_reason
+0x43f1 mem_app_disconn_reason_flag
+0x43f3 mem_xrecord_mode
+0x43f4 mem_eeprom_block_size
+0x43f5 mem_spi_init_clk
+0x43f6 mem_spi_init_delay_time
+0x43f7 mem_spi_ncs_gpio
+0x43f8 mem_nv_data_ptr
+0x43fa mem_nv_data_number
+0x43fb mem_queue_ptr
+0x43fd mem_reference_inter1p8v_2v_adc_io_data
+0x43fd mem_inter1v_adc_ft_data
+0x43fd mem_3v_adc_io_data
+0x43ff mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+0x43ff mem_inter1p2v_adc_ft_data
+0x43ff mem_2v_adc_hvin_data
+0x4401 mem_reference_inter1p8v_1v_adc_io_data
+0x4401 mem_io1v_adc_ft_data
+0x4401 mem_1v_adc_io_data
+0x4403 mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+0x4403 mem_io2v_adc_ft_data
+0x4403 mem_3v_adc_hvin_data
+0x4405 mem_adc_ratio
+0x4405 mem_reference_voltage
+0x4407 mem_adc_config_flag
+0x4408 mem_adc_channel
+0x4409 mem_adc_clkdiv
+0x440a mem_adc_current_value
+0x440c mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
+0x440d mem_adc_saddr_ptr
+0x440f mem_adc_eaddr_ptr
+0x4411 mem_adc_dma_enable
+0x4412 mem_adc_cal_c0
+0x4413 mem_adc_cal_c1
+0x4414 mem_adc_cal_c2
+0x4415 mem_adc_cal_c3
+0x4416 mem_adc_cal_c4
+0x4417 mem_adc_cal_c5
+0x4418 mem_adc_cal_c6
+0x4419 mem_spi_write_addr
+0x441c mem_spi_write_ptr
+0x441e mem_spi_write_len
+0x4420 mem_spi_write_flash_sm
+0x4421 mem_spi_cs_gpio
+0x4422 mem_spi_si_gpio
+0x4423 mem_spi_so_gpio
+0x4424 mem_spi_sclk_gpio
+0x4425 mem_spi_wp_gpio
+0x4426 mem_spi_hold_gpio
+0x4427 mem_eeprom_wp_gpio
+0x4428 mem_eeprom_scl_gpio
+0x4429 mem_eeprom_sda_gpio
+0x442a mem_kscan_ptr
+0x442c mem_key_num_ptr
+0x442c mem_keyscan_ptr
+0x442e mem_key_value_retention
+0x4430 mem_power_param_ptr
+0x4432 mem_seqi
+0x4433 mem_adc_cal_c7
+0x4433 mem_set_cdb_on
+0x4434 mem_syn_cal_ctrl
+0x4435 mem_nec_decode_error_value
+0x4436 mem_wdt_always_work
+0x4437 mem_power_ctrl_disable
+0x4438 mem_ring_ibias_trim
+0x4439 mem_ring_ibias_vtune_low
+0x443b mem_ring_ibias_vtune_high
+0x443d mem_ring_ibias_calc_adc_gpio
+0x443e mem_ring_ibias_calc_adc_channel
+0x443f mem_rf_debug_rx_gpio
+0x4440 mem_rf_debug_tx_gpio
+0x4441 mem_l2cap_xmem_start
+0x4441 mem_used_map
+0x4442 mem_tx_fifo0
+0x4442 mem_tx_fifo0_map
+0x4443 mem_tx_fifo0_ptr
+0x4445 mem_tx_fifo1
+0x4445 mem_tx_fifo1_map
+0x4446 mem_tx_fifo1_ptr
+0x4448 mem_tx_fifo2
+0x4448 mem_tx_fifo2_map
+0x4449 mem_tx_fifo2_ptr
+0x444b mem_tx_fifo3
+0x444b mem_tx_fifo3_map
+0x444c mem_tx_fifo3_ptr
+0x444e mem_tx_fifo_end
+0x444e mem_l2cap_lpm_txbuf_ptr
+0x4450 mem_l2cap_xmem_end
+0x4450 mem_ccm_pcnt_tx
+0x4455 mem_ccm_pcnt_rx
+0x445a mem_ccm_last_mic
+0x445e mem_ccm_iv
+0x445e mem_ccm_ivm
+0x4462 mem_ccm_ivs
+0x4466 mem_ccm_len
+0x4468 mem_ccm_rx_ptr
+0x446a mem_sc_only_mode
+0x446b mem_sp_debug_mode
+0x446c mem_secure_connections_enable
+0x446d mem_sc_calc
+0x446e mem_sc_local_key_invalid
+0x446f mem_sc_private_key_256
+0x448f mem_sc_pubkey_local_x_256
+0x44af mem_sc_pubkey_local_y_256
+0x44cf mem_sp_state_xmem
+0x44cf mem_authentication_passkey_times
+0x44d0 mem_passkey_1bit
+0x44d1 mem_sp_state_xmem_end
+0x44d1 mem_ipc_lock_bt
+0x44d2 mem_ipc_lock_c51
+0x44d3 mem_ipc_fifo_bt2c51
+0x44db mem_ipc_fifo_c512bt
+0x44e3 mem_ui_button_timer
+0x44e4 mem_ui_button_last_state
+0x44e5 mem_ui_timer_last_btclk
+0x44e9 mem_ui_state_map
+0x44eb mem_ui_button_timeout
+0x44ec mem_ui_button_gpio
+0x44ed mem_ui_led_init_state_set
+0x44ee mem_ui_led_struct_num
+0x44ef mem_ui_led_struct_ptr
+0x44f1 mem_mesh_vendor_mesh_receive_tid
+0x44f2 mem_mesh_vendor_mesh_send_tid
+0x44f3 mem_mesh_vendor_timer_current_time
+0x44f7 mem_system_time
+0x44fb mem_mesh_vendor_timer_timing_delete_index1
+0x44fb mem_mesh_vendor_timer_timing_index1
+0x44fc mem_mesh_vendor_timer_timing_delete_index2
+0x44fc mem_mesh_vendor_timer_timing_time1
+0x4500 mem_mesh_vendor_timer_timing_attr_type1
+0x4502 mem_mesh_vendor_timer_timing_attr_para1
+0x4503 mem_mesh_vendor_timer_timing_buffer
+0x45ed mem_mesh_vendor_timer_timing_palyload
+0x45ff mem_mesh_vendor_timer_timing_temp
+0x4601 mem_mesh_vendor_timer_timing_time_cyclic_temp
+0x4602 mem_mesh_vendor_timer_check_loop
+0x4603 mem_tmall_revd_device_power_on_msge_flag
+0x4604 mem_tmall_send_power_on_msge_timeout
+0x4606 mem_mesh_vendor_timer_timing_temp1
+0x4608 mem_mesh_timer_index_buffer_len
+0x4609 mem_mesh_timer_index_buffer
+0x4629 mem_mesh_timer_index_count
+0x462a mem_mesh_adv_data_len
+0x462b mem_mesh_adv_data
+0x464a mem_mesh_adv_scan_channel
+0x464b mem_mesh_advertising_unprovisioned_device_beacon_switch
+0x464c mem_mesh_advertising_unprovisioned_device_beacon_timer
+0x464e mem_mesh_advertising_unprovisioned_device_beacon_duration
+0x464f mem_mesh_advertising_unprovisioned_device_beacon_interval
+0x4650 mem_mesh_calc_ConfirmationCloud_data
+0x4650 mem_mesh_ConfirmationCloud_RandomB
+0x4658 mem_mesh_ConfirmationCloud_RandomA
+0x4660 mem_mesh_AuthValueProv
+0x4670 mem_mesh_ConfirmationCloud
+0x4680 mem_mesh_ConfirmationDevice
+0x4680 mem_mesh_calc_ConfirmationDevice_data
+0x4680 mem_mesh_provisioning_random_A
+0x4688 mem_mesh_provisioning_random_B
+0x4690 mem_mesh_AuthValueDevice
+0x46a0 mem_mesh_Device_Key
+0x46b0 mem_mesh_Confirmationkey
+0x46c0 mem_mesh_sha256_ConfirmationKey_ascii
+0x46cf mem_mesh_sha256_SessionKey_ascii
+0x46d9 mem_mesh_sha256_DeviceKey_ascii
+0x46e2 mem_mesh_sha256_load_first_data_flag
+0x46e3 mem_mesh_sha256_data_len_byte
+0x46eb mem_mesh_sha256_data_len_bit
+0x46f3 mem_mesh_sha256_data_end_addr
+0x46f5 mem_mesh_sha256_data_len_addr
+0x46f7 mem_mesh_sha256_chunk_count
+0x46f8 mem_mesh_sha256_chunk_data_ptr
+0x46fa mem_mesh_sha256_chunk_ptr
+0x46fc mem_k2_P_len
+0x46fd mem_k2_P
+0x470d mem_k2_N
+0x471d mem_k2_SALT
+0x472d mem_k2_T
+0x473d mem_k2_T0
+0x473d mem_k2_T1
+0x474d mem_k2_NID
+0x474e mem_k2_T3
+0x475e mem_k2_T2
+0x476e mem_k4_SALT
+0x477e mem_k4_T
+0x478e mem_k4_id6_01
+0x479e mem_k4_k4N
+0x47ae mem_mesh_transport_AID
+0x47af mem_k3_SALT
+0x47bf mem_k3_T
+0x47cf mem_k3_id64_01
+0x47d4 mem_k3_k4N
+0x47dc mem_mesh_network_id
+0x47e4 mem_mesh_provisioned_flag
+0x47e5 mem_mesh_Provisioning_State_Flag
+0x47e6 mem_mesh_Device_PID
+0x47e7 mem_mesh_UUID_FeatureFlag
+0x47e8 mem_mesh_UUID_FeatureFlag1
+0x47e9 mem_mesh_PDU_RFU
+0x47ea mem_mesh_OOB_information
+0x47ec mem_mesh_Encrypt_Provisioning_Data
+0x47ec mem_mesh_provisioning_data_Mac_addr
+0x47ee mem_mesh_KeyFresh_and_Update_flag
+0x47ef mem_mesh_Network_Key
+0x47ff mem_mesh_last_IV_Index_byte
+0x4800 mem_mesh_Unicast_Address
+0x4802 mem_mesh_recv_cfg_appkey_add_timer
+0x4803 mem_mesh_report_power_on_timer
+0x4804 mem_mesh_report_full_attribute_timer
+0x4805 mem_mesh_health_node_reset_timer
+0x4806 mem_mesh_send_packet_timeout
+0x4808 mem_mesh_gatt_package_send_msg_id
+0x4809 mem_mesh_gatt_receive_msg_timer
+0x480a mem_mesh_three_tuple_ProductID
+0x480e mem_mesh_three_tuple_MAC
+0x4814 mem_mesh_three_tuple_secret
+0x4824 mem_mesh_cb_receive_advertising
+0x4826 mem_mesh_cb_receive_access_message
+0x4828 mem_mesh_cb_receive_config_appkey_add
+0x482a mem_mesh_cb_pairing_fail
+0x482c mem_mesh_cb_recv_vendor
+0x482e mem_mesh_scan_selete_next_ch
+0x4830 mem_mesh_cb_generic_onoff_get
+0x4832 mem_mesh_cb_generic_onoff_set
+0x4834 mem_mesh_cb_scene_recall
+0x4836 mem_mesh_cb_light_lightness_set
+0x4838 mem_mesh_cb_light_lightness_get
+0x483a mem_mesh_cb_light_ctl_set
+0x483c mem_mesh_cb_main_light_onoff_set
+0x483e mem_mesh_cb_background_onoff_set
+0x4840 mem_mesh_cb_color_set
+0x4842 mem_mesh_cb_network_relay
+0x4844 mem_mesh_cb_receive_node_reset
+0x4846 mem_mesh_cb_seq_changed
+0x4848 mem_mesh_cb_subscriptuion_list_changed
+0x484a mem_mesh_cb_vendor_timing_changed
+0x484c mem_mesh_core_feature
+0x484e mem_mesh_element_number
+0x484f mem_mesh_element_device_ptr
+0x4851 mem_mesh_element_device_length
+0x4853 mem_mesh_clear_provisioning_data
+0x4855 mem_mesh_app_deport_device_state
+0x4857 mem_mesh_chip_select
+0x4858 mem_mesh_segmented_access_message_SZMIC
+0x4859 mem_mesh_segmented_access_message_SeqZero
+0x485b mem_mesh_segmented_access_message_SegO
+0x485c mem_mesh_segmented_access_message_SegN
+0x485d mem_mesh_segmented_access_message_BlockAck
+0x4861 mem_mesh_segmented_access_message_receive_finish
+0x4862 mem_mesh_segmented_access_message_current_length
+0x4863 mem_mesh_segmented_access_message_SegN_upper_limit
+0x4864 mem_mesh_segmented_access_message_Segment_ptr
+0x4866 mem_mesh_last_CTL_Temperature
+0x4868 mem_mesh_receive_group_address
+0x4869 mem_mesh_receive_element_number
+0x486a mem_mesh_network_dup_cache_next
+0x486b mem_mesh_network_msg_cache_next
+0x486c mem_mesh_network_proxy_unicast_address
+0x486e mem_mesh_IV_Index
+0x4872 mem_mesh_TMALL_cache_start
+0x4872 mem_mesh_TMALL_SRC1
+0x4874 mem_mesh_TMALL_SEQ1
+0x4877 mem_mesh_TMALL_cache
+0x48a4 mem_mesh_TMALL_cache_end
+0x48a4 mem_mesh_transport_message_mic_cache
+0x48a4 mem_mesh_transport_message_mic_cache_buff1
+0x48a8 mem_mesh_transport_message_mic_cache_buff2_10
+0x48cc mem_mesh_network_relay_queue
+0x48cc mem_mesh_network_relay_queue_each_size
+0x48cd mem_mesh_network_relay_queue_length
+0x48ce mem_mesh_network_relay_queue_current_num
+0x48cf mem_mesh_network_relay_queue_read_ptr
+0x48d0 mem_mesh_network_relay_queue_write_ptr
+0x48d1 mem_mesh_network_relay_queue_ele
+0x4959 mem_mesh_application_key
+0x4969 mem_mesh_ASZMIC
+0x496a mem_mesh_access_message_mic_cache
+0x496a mem_mesh_access_message_mic_cache_buff1
+0x496e mem_mesh_access_message_mic_cache_buff2_10
+0x4992 mem_mesh_send_message_SEQ
+0x4995 mem_mesh_send_message_SRC
+0x4997 mem_mesh_send_message_TTL
+0x4998 mem_mesh_send_upper_layer_IVI_and_NID
+0x4999 mem_mesh_send_upper_layer_CTL_and_TTL
+0x499a mem_mesh_send_upper_layer_SEQ
+0x499d mem_mesh_send_upper_layer_SRC
+0x499f mem_mesh_send_upper_layer_DST
+0x49a1 mem_mesh_send_access_lower_transport_layer
+0x49b1 mem_mesh_send_network_layer_NetMIC
+0x49b5 mem_mesh_upper_tran_layer_packet_advertising
+0x49b6 mem_mesh_upper_tran_layer_packet_tid
+0x49b7 mem_mesh_upper_tran_layer_packet_type
+0x49b8 mem_mesh_upper_receive_new_message_timer
+0x49b9 mem_mesh_upper_tran_layer_queue_each_size
+0x49ba mem_mesh_upper_tran_layer_queue_length
+0x49bb mem_mesh_upper_tran_layer_queue_current_num
+0x49bc mem_mesh_upper_tran_layer_queue_read_ptr
+0x49bd mem_mesh_upper_tran_layer_queue_write_ptr
+0x49be mem_mesh_upper_tran_layer_queue_element_1
+0x49e6 mem_mesh_upper_tran_layer_queue_element_2
+0x4a0e mem_mesh_upper_tran_layer_queue_element_3
+0x4a36 mem_mesh_upper_tran_layer_queue_element_4
+0x4a5e mem_mesh_queue_each_size
+0x4a5f mem_mesh_queue_length
+0x4a60 mem_mesh_queue_current_num
+0x4a61 mem_mesh_queue_read_ptr
+0x4a62 mem_mesh_queue_write_ptr
+0x4a63 mem_mesh_queue_ele
+0x4aeb mem_mesh_element_device
+0x4aeb mem_mesh_element_device_group_addr
+0x4aed mem_mesh_element_device_queue_buffer_ptr
+0x4aef mem_mesh_element_device_timing_ptr
+0x4af1 mem_mesh_element_device_element_subscription_label
+0x4b01 mem_mesh_element_upper_adv_flag
+0x4b02 mem_mesh_element_upper_queue_buffer_ptr
+0x4b04 mem_mesh_element_tran_package_tid
+0x4b05 mem_mesh_element_tran_package_type
+0x4b06 mem_mesh_element_device1
+0x4b21 mem_mesh_element_device2
+0x4b3c mem_mesh_segmented_access_message_Segment
+0x4b60 mem_mesh_le_att_list
+0x4c24 mem_mesh_send_message_SEQ_temp
+0x44f1 mem_24g_lap
+0x44f7 mem_24g_rxbuf
+0x4519 mem_24g_txbuf
+0x4539 mem_24g_txpayload
+0x455d mem_24g_rxpayload
+0x457d mem_24g_rxdata_length
+0x457e mem_24g_pid
+0x457f mem_24g_no_ack
+0x4580 mem_24g_sta_crc
+0x4583 mem_24g_last_crc
+0x4586 mem_24g_sta_pid
+0x4587 mem_24g_last_pid
+0x4588 mem_24g_datalen
+0x4589 mem_24g_data_type
+0x458a mem_24g_txlen
+0x458b mem_24g_rx_window
+0x458d mem_24g_ch
+0x458e mem_24g_current_ch_number
+0x458f mem_24g_addr
+0x4593 mem_24g_ch_map1
+0x4597 mem_24g_ch_map2
+0x459b mem_24g_ch_map3
+0x459f mem_24g_ch_map4
+0x45a3 mem_24g_tx_btclk
+0x45a7 mem_24g_interval
+0x45a8 mem_24g_interval_min
+0x45a9 mem_24g_interval_max
+0x45aa mem_24g_syncword
+0x45ac mem_24g_syncword_crc8
+0x45ad mem_24g_get_syncword_crc8
+0x45ae mem_24g_pair_switch
+0x45af mem_24g_enter_hibernate
+0x45b7 mem_24g_rx_phy
+0x45b8 mem_24g_tx_phy
+0x45b9 mem_24g_ch_map_update
+0x45ba mem_24g_ch_update_map1
+0x45be mem_24g_ch_update_map2
+0x45c2 mem_24g_ch_update_map3
+0x45c6 mem_24g_ch_update_map4
+0x45ca mem_24g_disable_fec1
+0x45cb mem_24g_off_type
+0x45cc mem_24g_pair_addr
+0x45d0 mem_24g_pair_ch
+0x45d1 mem_24g_pair_tx_power
+0x45d2 mem_rssi_buff_index
+0x45d3 mem_24g_device1_bind_step
+0x45d4 mem_24g_device2_bind_step
+0x45d5 mem_24g_bind_device_status
+0x45d6 mem_24g_bind_payload
+0x45de mem_24g_device1_bind_disable
+0x45df mem_24g_device2_bind_disable
+0x45e0 mem_cb_24g_receive_process
+0x45e2 mem_cb_24g_ackpayload
+0x45e4 mem_cb_24g_data_device1
+0x45e6 mem_cb_24g_data_device2
+0x45e8 mem_24g_rxdata_temp
+0x460a mem_24g_abort_packet
+0x460b mem_24g_hop_btclk
+0x460f mem_24g_hop_interval
+0x4610 mem_24g_pair_mode
+0x4611 mem_24g_ackpayload_enable
+0x4612 mem_24g_hop_packet
+0x4613 mem_24g_mode_switch
+0x4614 mem_24g_nodata_timer_enable
+0x4615 mem_24g_mode_init
+0x4616 mem_24g_work_mode
+0x4617 mem_24g_time_slice
+0x4618 mem_24g_self_last_ch
+0x4619 mem_24g_self_ch_number
+0x461a mem_24g_self_config_ch_once
+0x461b mem_24g_device1_last_ch
+0x461c mem_24g_device1_ch_number
+0x461d mem_24g_device1_config_ch_once
+0x461e mem_24g_device2_last_ch
+0x461f mem_24g_device2_ch_number
+0x4620 mem_24g_device2_config_ch_once
+0x4621 mem_24g_led_status
+0x4622 mem_24g_bind_mode_continue
+0x4623 mem_tx_power_temp
+0x4624 mem_24g_mode_B_S_switch
+0x4625 mem_24g_mode_B_S_switch_init
+0x4626 mem_24g_mode_B_S_switch_cnt
+0x4628 mem_24g_mode_B_S_switch_exit
+0x4629 mem_24g_B_S_time_slice
+0x462a mem_24g_B_S_mode_switch_disable
+0x462b mem_24g_bind_device_living
+0x462c mem_24g_transmitter_addr
+0x4630 mem_24g_device1_addr
+0x4634 mem_24g_device2_addr
+0x4638 mem_rssi_noise_avg
+0x4639 mem_rssi_noise_index
+0x463a mem_rssi_noise_self_avg
+0x463b mem_rssi_noise_device1_avg
+0x463c mem_rssi_noise_device2_avg
+0x463d mem_rssi_noise_self_index
+0x463e mem_rssi_noise_device1_index
+0x463f mem_rssi_noise_device2_index
+0x4640 mem_rssi_noise_buffer_ptr
+0x4642 mem_rssi_noise_self_buffer_ptr
+0x4644 mem_rssi_noise_device1_buffer_ptr
+0x4646 mem_rssi_noise_device2_buffer_ptr
+0x4648 mem_car_hard_soft_switch
+0x4649 mem_car_queue_each_size
+0x464a mem_car__queue_length
+0x464b mem_car_queue_curr_num
+0x464c mem_car_queue_read_ptr
+0x464d mem_car_queue_write_ptr
+0x464e mem_car_queue_ele
+0x46c6 mem_car_pop_queue_buff
+0x46da mem_car_led_num
+0x46db mem_car_led_map
+0x46e5 mem_car_style1_led_type
+0x46e6 mem_car_style1_blink_count
+0x46e7 mem_car_style1_struct_led_gpio
+0x46e8 mem_car_style1_on_time
+0x46ea mem_car_style1_off_time
+0x46ec mem_car_style1_cb_ledon
+0x46ee mem_car_style1_cb_ledoff
+0x46f0 mem_car_style2_led_type
+0x46f1 mem_car_style2_blink_count
+0x46f2 mem_car_style2_struct_led_gpio
+0x46f3 mem_car_style2_on_time
+0x46f5 mem_car_style2_off_time
+0x46f7 mem_car_style2_cb_ledon
+0x46f9 mem_car_style2_cb_ledoff
+0x46fb mem_le_receive_data
+0x46fb mem_le_receive_packet_head
+0x46fd mem_le_receive_cmd
+0x46fe mem_le_receive_length
+0x4700 mem_le_receive_payload
+0x470a mem_le_receive_checksum
+0x470b mem_motor1_status
+0x470c mem_motor1_speed
+0x470d mem_motor2_status
+0x470e mem_motor2_speed
+0x470f mem_motor3_status
+0x4710 mem_motor3_speed
+0x4711 mem_motor1_pwm_set
+0x4711 mem_motor1_pwm_pin1_set
+0x4712 mem_motor1_pwm_pin2_set
+0x4713 mem_motor1_pwm_pin_set
+0x4714 mem_motor1_pwm_channel_set
+0x4715 mem_motor1_pwm_freq_set
+0x4718 mem_motor1_pwm_dute_set
+0x4719 mem_motor2_pwm_set
+0x4719 mem_motor2_pwm_pin1_set
+0x471a mem_motor2_pwm_pin2_set
+0x471b mem_motor2_pwm_pin_set
+0x471c mem_motor2_pwm_channel_set
+0x471d mem_motor2_pwm_freq_set
+0x4720 mem_motor2_pwm_dute_set
+0x4721 mem_motor3_pwm_set
+0x4721 mem_motor3_pwm_pin1_set
+0x4722 mem_motor3_pwm_pin2_set
+0x4723 mem_motor3_pwm_pin_set
+0x4724 mem_motor3_pwm_channel_set
+0x4725 mem_motor3_pwm_freq_set
+0x4728 mem_motor3_pwm_dute_set
+0x4729 mem_motor_select_p_n
+0x472a mem_car_motor_status
+0x472b mem_car_motor_speed
+0x472c mem_motor_pwm_set
+0x472c mem_motor_pwm_pin1_set
+0x472d mem_motor_pwm_pin2_set
+0x472e mem_motor_pwm_pin_set
+0x472f mem_motor_pwm_channel_set
+0x4730 mem_motor_pwm_freq_set
+0x4733 mem_motor_pwm_dute_set
+0x4734 mem_ir_rx_gpio
+0x4735 mem_ir_data
+0x4737 mem_ir_rx_buf
+0x4739 mem_ir_receive_clkn
+0x473d mem_ir_notify_data
+0x4740 mem_ir_notify_data_head
+0x4745 mem_ir_notify_data_payload
+0x4747 mem_ir_notify_data_check_sum
+0x4748 mem_car_ir_breakdown_check_timer
+0x4749 mem_car_ir_breakdown_flag
+0x474a mem_car_led_control
+0x474a mem_car_led1_status
+0x474b mem_car_led2_status
+0x474c mem_car_led3_status
+0x474d mem_car_led4_status
+0x474e mem_car_led5_status
+0x474f mem_car_led6_status
+0x4750 mem_car_led7_status
+0x4751 mem_car_led8_status
+0x4752 mem_car_led_control_timer
+0x4753 mem_car_led_blink_status
+0x4754 mem_car_led_no
+0x4755 mem_car_info_request
+0x4758 mem_car_info_request_head
+0x475d mem_car_info_request_payload
+0x4765 mem_car_info_request_checksum
+0x4766 mem_car_config_param
+0x4766 mem_car_config_setting_flag
+0x4767 mem_car_config_device_select
+0x4768 mem_car_config_motor_layout
+0x4769 mem_car_config_ir_enable
+0x476a mem_car_config_ir_rx_gpio
+0x476b mem_car_config_pairing_led_conn_status
+0x476c mem_car_config_pairing_led_gpio
+0x476d mem_car_config_led_num
+0x476e mem_car_config_blood_led_gpio
+0x476e mem_car_config_blood_led1_gpio
+0x476f mem_car_config_blood_led2_gpio
+0x4770 mem_car_config_blood_led3_gpio
+0x4771 mem_car_config_blood_led4_gpio
+0x4772 mem_car_config_blood_led5_gpio
+0x4773 mem_car_config_blood_led6_gpio
+0x4774 mem_car_config_blood_led7_gpio
+0x4775 mem_car_config_blood_led8_gpio
+0x4776 mem_car_config_bat_notify_enable
+0x4777 mem_car_config_low_voltage_led_gpio
+0x4778 mem_car_config_low_voltage_percent
+0x4779 mem_car_config_soft_switch_enable
+0x477a mem_car_config_soft_switch_gpio
+0x477b mem_car_notify_vdd_count
+0x477c mem_car_notify_vdd_timer
+0x477d mem_car_notify_vdd_value_last
+0x477e mem_car_notify_vdd_percent
+0x477f mem_car_working_flag
+0x4780 mem_low_bat_flag
+0x4781 mem_notify_bat_packet
+0x4784 mem_notify_bat_head
+0x4789 mem_notify_bat_payload
+0x478a mem_notify_bat_check_sum
+0x478b mem_vdd_notify_flag
+0x478c mem_car_current_vdd_value_temp
+0x478e mem_car_last_vdd_value
+0x4790 mem_vdd_calculate_set
+0x4790 mem_vdd_full_vol
+0x4792 mem_vdd_empty_vol
+0x4794 mem_vdd_low_vol
+0x4796 mem_vdd_now_vol
+0x4798 mem_car_24g_status
+0x4799 mem_car_24g_no_data_timeout_count
+0x479b mem_car_24g_no_data_timeout_timer
+0x479d mem_car_24g_ir_receive_attack_count
+0x479e mem_car_24g_go_die_flag
+0x479f mem_car_attack_shake_timer
+0x47a0 mem_car_attack_shake_flag
+0x47a1 mem_car_soft_power
+0x47a1 mem_car_power_state
+0x47a2 mem_car_power_timer
+0x47a3 mem_car_power_off_timeout
+0x47a4 mem_car_power_starting_timeout
+0x47a5 mem_car_power_off_cb
+0x47a7 mem_car_power_starting_cb
+0x47a9 mem_car_power_standby_cb
+0x47ab mem_car_ui_button_up_cb
+0x47ad mem_car_le_att_list
+0x49a1 mem_car_moto1_blank_timer
+0x49a2 mem_car_moto2_blank_timer
+0x49a3 mem_car_moto3_blank_timer
+0x49a4 mem_car_motor_gpio_num
+0x49a5 mem_car_motor_gpio_map
+0x49a5 mem_car_motor_left_gpio
+0x49a6 mem_car_motor_right_gpio
+0x49a7 mem_car_motor_front_gpio
+0x49a8 mem_car_motor_back_gpio
+0x49a9 mem_car_gpio
+0x49aa mem_car_app_send_speed
+0x49ab mem_rssi_sum
+0x49ad mem_check_rssi_high_count
+0x49af mem_rssi_data
+0x49b7 mem_car_24g_received_pac
+0x49b8 mem_car_24g_bind_enable_delay_count
+0x49b9 mem_car_keyscan
+0x49b9 mem_car_key_num
+0x49ba mem_cb_car_keyscan
+0x49bc mem_car_enter_lpm_timer_count
+0x49be mem_car_enter_lpm_timer
+0x49c0 mem_car_enter_lpm_flag
+0x49c1 mem_car_24g_ch_polling
+0x49c2 mem_car_rssi_noise_buffer
+0x49ca mem_car_rssi_noise_car_buffer
+0x49d2 mem_car_rssi_noise_remote_buffer
+0x49da mem_car_24g_commom_addr
+0x49de mem_car_24g_commom_addr_temp
+0x49e2 mem_car_24g_commom_addr_read
+0x49e6 mem_car_save_addr_flag
+0x49e7 mem_ble_att_list
+0x4b77 mem_ad_indexTable
+0x4b87 mem_ad_stepsizeTable
+0x4ceb mem_ad_state_valpred
+0x4cef mem_ad_state_index
+0x4cf3 mem_ad_in_numSamples
+0x4cf4 mem_ad_in_ptr
+0x4cf6 mem_ad_out_ptr
+0x4cf8 mem_ad_sign
+0x4cf9 mem_ad_delta
+0x4cfa mem_ad_step
+0x4cfe mem_ad_valpred
+0x4d02 mem_ad_index
+0x4d06 mem_ad_vpdiff
+0x4d0a mem_ad_inputbuffer
+0x4d0e mem_ad_bufferstep
+0x4648 mem_dg_kb_bind_flag
+0x4649 mem_dg_kb_data_sta_data
+0x4651 mem_dg_kb_data_last_data
+0x4659 mem_dg_kb_multikey_sta_data
+0x465c mem_dg_kb_multikey_last_data
+0x465f mem_dg_kb_system_sta_data
+0x4662 mem_dg_kb_system_last_data
+0x4665 mem_dg_kb_blank_data_enable
+0x4666 mem_dg_kb_mul_blank_data_enable
+0x4667 mem_dg_kb_system_crtl_blank_data_enable
+0x4668 mem_dg_ms_blank_data_enable
+0x4669 mem_dg_sys_config
+0x466a mem_dg_usb_vid_pid
+0x4673 mem_dg_usb_tx_interval
+0x4674 mem_dg_usb_device_name
+0x4692 mem_dg_kb_bind_success
+0x4693 mem_dg_pc_sleep_flag
+0x4694 mem_dg_24g_tx_power_default
+0x45d3 mem_rssi_hex_received
+0x45d4 mem_24g_pair_sm
+0x45d5 mem_24g_pair_no_ack
+0x45d6 mem_24g_pair_timeout_init
+0x45d8 mem_24g_pair_timeout
+0x45da mem_24g_pair_count
+0x45dc mem_24g_reconn_timeout_init
+0x45de mem_24g_reconn_timeout
+0x45e0 mem_24g_reconn_count
+0x45e2 mem_24g_reconn_type
+0x45e3 mem_24g_fast_conn_enable
+0x45e4 mem_24g_fast_conn_addr
+0x45e8 mem_24g_receiver_addr
+0x45ec mem_24g_fast_conn_temp_ch
+0x45ed mem_24g_receiver_temp_ch
+0x45ee mem_24g_device_temp_ch
+0x45ef mem_rssi_signal_index
+0x45f0 mem_rssi_signal_buf_ptr
+0x45f2 mem_cb_24g_transmit_data
+0x45f4 mem_cb_24g_search_receiver
+0x45f6 mem_cb_24g_lpm_before
+0x45f8 mem_cb_24g_transmit_short_sleep
+0x45fa mem_cb_24g_transmit_long_sleep
+0x45fc mem_24g_conn_sm
+0x45fd mem_24g_ensure
+0x45fe mem_24g_txfail_cnt
+0x4600 mem_24g_attempt_fail_flag
+0x4601 mem_24g_retry
+0x4602 mem_24g_abort_pac
+0x4603 mem_24g_max_retry
+0x4604 mem_24g_device_addr
+0x4608 mem_24g_short_sleep_set
+0x460b mem_24g_long_sleep_set
+0x4613 mem_24g_long_sleep_set1
+0x4617 mem_24g_pac_index
+0x4618 mem_24g_transmit_by_interrupt
+0x4619 mem_24g_transmit_by_interrupt_exit_count
+0x461b mem_24g_transmit_by_interrupt_exit_count_init
+0x461d mem_24g_long_sleep_param_update_timer_init
+0x461f mem_24g_long_sleep_param_update_timer
+0x4621 mem_24g_fast_hop_count
+0x4622 mem_24g_retransmit
+0x4624 mem_rssi_avg_received
+0x4625 mem_power_ctrl_level
+0x4626 mem_power_ctrl_pac_succ_cnt
+0x4627 mem_power_ctrl_pac_succ_cnt_init
+0x4628 mem_rssi_dis_min_24g
+0x4629 mem_rssi_dis_max_24g
+0x462a mem_rssi_hex_received_max_value
+0x462b mem_rssi_dis_min_ble
+0x462c mem_rssi_dis_max_ble
+0x462d mem_mouse_vdd_calculate_set
+0x462d mem_mouse_vdd_full_vol
+0x462f mem_mouse_vdd_empty_vol
+0x4631 mem_mouse_vdd_low_vol
+0x4633 mem_mouse_vdd_now_vol
+0x4635 mem_adc_channel_gpio
+0x4636 mem_adc_mux_status
+0x4637 mem_mouse_adc_last_low_voltage_flag
+0x4638 mem_mouse_discovery_timeout
+0x463a mem_mouse_24g_pair_timeout_init
+0x463c mem_mouse_direct_timeout
+0x463d mem_mouse_24g_reconn_timeout_init
+0x463e mem_mouse_24g_pair_tx_power
+0x463f mem_rssi_dis_min_24g_init
+0x4640 mem_rssi_dis_max_24g_init
+0x4641 mem_rssi_hex_received_max_value_init
+0x4642 mem_rssi_dis_min_ble_init
+0x4643 mem_rssi_dis_max_ble_init
+0x4644 mem_mouse_param_config
+0x4644 mem_lbutton_gpio
+0x4645 mem_mbutton_gpio
+0x4646 mem_rbutton_gpio
+0x4647 mem_bk_button_gpio
+0x4648 mem_fw_button_gpio
+0x4649 mem_dpi_button_gpio
+0x464a mem_whee_a_data_gpio
+0x464b mem_whee_b_data_gpio
+0x464c mem_mouse_sensor_sclk_gpio
+0x464d mem_mouse_sensor_sdio_gpio
+0x464e mem_select_sensor_angle_gpio
+0x464f mem_sensor_angle_default
+0x4650 mem_sensor_angle_switch
+0x4651 mem_config_sensor_dpi
+0x4652 mem_whee_ta_data_gpio
+0x4653 mem_whee_tb_data_gpio
+0x4654 mem_matrix_public_gpio
+0x4655 mem_config_select_device_button_gpio
+0x4656 mem_customer_key_gpio
+0x4657 mem_firebutton_gpio
+0x4658 mem_dpi_another_button_gpio
+0x4659 mem_sensor_motion_gpio
+0x465a mem_device_switch_gpio
+0x465b mem_mouse_reuse_2ice_gpio
+0x465c mem_mouse_logo_led_gpio
+0x465d mem_mouse_1io2led_multi_24gled
+0x465e mem_mouse_1io2led_multi_bt1led
+0x465f mem_mouse_1io2led_multi_bt2led
+0x4660 mem_mouse_low_voltage_alarm_gpio
+0x4661 mem_mouse_dpi_gpio
+0x4662 mem_mouse_param_config_end
+0x4662 mem_wire_usb_interval
+0x4663 mem_usb_addr
+0x4664 mem_mouse_usb_vdd_status
+0x4665 mem_mouse_usb_keyboard_flag
+0x4666 mem_mouse_information_start
+0x4666 mem_device_flag
+0x4667 mem_device1_type
+0x4668 mem_device1_addr
+0x466e mem_device1_locall_addr
+0x4674 mem_device2_type
+0x4675 mem_device2_addr
+0x467b mem_device2_locall_addr
+0x4681 mem_device3_type
+0x4682 mem_device3_addr
+0x4688 mem_device3_locall_addr
+0x468e mem_store_flag
+0x4690 mem_mouse_dpi
+0x4691 mem_mouse_24g_addr
+0x4695 mem_random_addr_increase_count
+0x4697 mem_mouse_retention
+0x46e6 mem_mouse_information_end
+0x46e6 mem_mouse_compare_addr
+0x46ec mem_flash_base
+0x46ef mem_write_flash_head_temp
+0x46f3 mem_store_information_delay_timer
+0x46f4 mem_store_information_delay_timer_init
+0x46f5 mem_mouse_search_dongle_interval
+0x46f6 mem_mouse_search_dongle_ch
+0x46f7 mem_mouse_search_dongle_count
+0x46f8 mem_mouse_search_dongle_action
+0x46f9 mem_24g_enter_lpm_timer
+0x46fa mem_mouse_24g_enter_lpm_enable
+0x46fb mem_mouse_multi_led_blink_enable
+0x46fc mem_mouse_multi_led_type
+0x46fd mem_mouse_multi_led_state
+0x46fe mem_mouse_multi_led_blink_type//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+0x46ff mem_mouse_le_reconn_blink_limit
+0x4700 mem_mouse_multi_led_powon_timer_init//power on time
+0x4701 mem_mouse_multi_led_powon_timer
+0x4702 mem_mouse_multi_24gled_blink_timer_init//24gled blink time
+0x4703 mem_mouse_multi_le_discovery_blink_timer_init//le discovery blink time
+0x4704 mem_mouse_multi_le_reconn_blink_timer_init//le reconn blink time
+0x4705 mem_mouse_dpi_led_blink_timer_init//dpi blink time
+0x4706 mem_mouse_multi_led_blink_timer
+0x4707 mem_mouse_low_led_blink_timer//low blink time
+0x4708 mem_mouse_low_led_blink_half_timer
+0x4709 mem_adc_low_volatage_led_timer_count
+0x470a mem_mouse_multi_24gled_blink_count_init//24g count
+0x470b mem_mouse_multi_le_reconn_blink_count_init//le reconn count
+0x470c mem_mouse_multi_led_blink_count
+0x470d mem_mouse_multi_lowled_blink_count_init//low count
+0x470e mem_mouse_multi_low_led_blink_count
+0x470f mem_mouse_logo_led_on_time_init
+0x4711 mem_mouse_dpi_led_delay_count
+0x4712 mem_mouse_dpi_led_delay_count_init
+0x4713 mem_mouse_flag
+0x471b mem_device_number
+0x471c mem_mouse_page_to
+0x471e mem_mouse_fast_direct_timeout
+0x471f mem_mouse_fast_page_to
+0x4721 mem_mouse_24g_power_on_fast_conn_timer
+0x4723 mem_mouse_24g_search_dongle_time_init
+0x4725 mem_mouse_no_data_timeout
+0x4727 mem_mouse_commbination_key_bt
+0x4728 mem_mouse_commbination_key_24g
+0x4729 mem_mouse_customer_function
+0x472a mem_customer_key_press
+0x4733 mem_customer_key_release
+0x473c mem_mouse_set_high_impedance_bit_set
+0x473f mem_sensor_shutdown_flag
+0x4740 mem_24g_long_sleep_set_level
+0x4741 mem_tx_power_factory_param
+0x4743 mem_mouse_24g_short_sleep_set_4ms
+0x4746 mem_mouse_24g_long_sleep_set_4ms
+0x4749 mem_mouse_24g_fast_hop_count_4ms
+0x474a mem_mouse_24g_short_sleep_set_8ms
+0x474d mem_mouse_24g_long_sleep_set_8ms
+0x4750 mem_mouse_24g_fast_hop_count_8ms
+0x4751 mem_mouse_24g_tsniff
+0x4755 mem_mouse_24g_tsniff_4ms
+0x4759 mem_mouse_24g_tsniff_8ms
+0x475d mem_mouse_24g_short_sleep_set_init
+0x4760 mem_mouse_24g_tx_count
+0x4761 mem_mouse_24g_tx_time_last
+0x4767 mem_mouse_24g_tx_time_last_delt
+0x476b mem_mouse_24g_tx_time_sum
+0x4770 mem_mouse_24g_tx_time_sum_count
+0x4771 mem_mouse_24g_tx_time_offset
+0x4772 mem_mouse_24g_sleep_miss
+0x4773 mem_mouse_24g_sleep_time_temp
+0x4777 mem_mouse_24g_sleep_miss_temp
+0x477b mem_mouse_sleep_deal_type
+0x477c mem_mouse_24g_long_sleep_flag
+0x477d mem_mouse_long_mult_flag
+0x477e mem_mouse_current_mult_timer
+0x477f mem_reconn_times
+0x4780 mem_reconn_times_init
+0x4781 mem_mouse_no_data_timer
+0x4783 mem_mouse_rssi_signal_buf
+0x478b mem_btclk_sensor
+0x478f mem_mouse_bluetooth_fast_conn_flag
+0x4790 mem_mouse_discovery_timer
+0x4792 mem_mouse_bluetooth_reconnect_timeout
+0x4793 mem_mouse_need_soft_reset
+0x4794 mem_mouse_le_bb_connected_flag
+0x4795 mem_mouse_le_reconnect_flag
+0x4796 mem_mouse_send_secutiry_request_timer
+0x4797 mem_mouse_le_lap_temp
+0x479a mem_le_adv_ind
+0x479d mem_le_adv_direct_ind
+0x47a0 mem_le_adv_swift_pair
+0x47b4 mem_le_data_len
+0x47b5 mem_le_keyboard_handle
+0x47b7 mem_le_multimedia_handle
+0x47b9 mem_le_systemctrl_handle
+0x47bb mem_le_battery_level_handle
+0x47bd mem_le_battery_level_percentage
+0x47be mem_le_battery_level_updata_timer_init
+0x47c0 mem_le_battery_level_updata_timer
+0x47c2 mem_mouse_le_conn_param_reject
+0x47c3 mem_le_tx_buffer0_omemalloc
+0x47e3 mem_le_tx_buffer1_omemalloc
+0x4803 mem_le_tx_buffer2_omemalloc
+0x4823 mem_le_tx_buffer3_omemalloc
+0x4843 mem_le_connect_status_flag
+0x4844 mem_le_start_encrypt_timer
+0x4845 mem_mouse_direct_timer
+0x4846 mem_power_on_flag
+0x4847 mem_mouse_factory_addr
+0x484d mem_keyboard_flag
+0x4855 mem_keyboard_tx_data
+0x485f mem_keyboard_data_send_flag
+0x4860 mem_keyboard_le_send_conn_param_update
+0x4861 mem_keyboard_le_send_conn_param_update_timer
+0x4862 mem_le_start_auto_reco_timer
+0x4863 mem_mcu_stb_gpio
+0x4864 mem_mcu_clk_gpio
+0x4865 mem_mcu_rstb_gpio
+0x4866 mem_keyboard_caps_led_gpio
+0x4867 mem_keyboard_num_led_gpio
+0x4868 mem_keyboard_power_led_gpio
+0x4869 mem_keyboard_caps_led_on_timer
+0x486b mem_keyboard_led_r_gpio
+0x486c mem_keyboard_led_g_gpio
+0x486d mem_keyboard_led_b_gpio
+0x486e mem_key_row_gpio
+0x4876 mem_key_col_gpio
+0x488a mem_key_excol_gpio
+0x4896 mem_kb_row_ptr
+0x4898 mem_kb_col_ptr
+0x489a mem_kb_excol_ptr
+0x489c mem_keyscan_value_current
+0x48b0 mem_keyscan_value_check
+0x48c4 mem_keyscan_value_old
+0x48d8 mem_keyscan_exmcu_value
+0x48e3 mem_keyscan_value_ptr
+0x48e5 mem_keyscan_exmcu_value_ptr
+0x48e7 mem_keyscan_value_temp
+0x48e8 mem_keyscan_col_loop_count
+0x48e9 mem_keyscan_exmcu_wait_wake_count
+0x48eb mem_same_keyvalue_timerout_flag
+0x48ec mem_same_keyvalue_timer_init
+0x48ee mem_same_keyvalue_timer
+0x48f0 mem_keyboard_current_col_press_key_count
+0x48f1 mem_keyboard_all_press_key_count
+0x48f2 mem_keyboard_same_row_press_key_count
+0x48f3 mem_keyboard_ghost_flag
+0x48f4 mem_keyboard_data_change_flag
+0x48f5 mem_keyboard_keyvalue_temp
+0x48f6 mem_keyboard_press_flag_temp
+0x48f7 mem_keyboard_keyvalue_bit_loop_count
+0x48f8 mem_keyboard_keyvalue_buffer
+0x4901 mem_keyboard_keyvalue_map
+0x49a1 mem_keyboard_fn_flag
+0x49a2 mem_keyboard_control_key_flag
+0x49a3 mem_keyboard_bt_button_flag
+0x49a4 mem_keyboard_pairing_type
+0x49a5 mem_keyboard_commbination_key_bt
+0x49a7 mem_keyboard_commbination_key_24g
+0x49a9 mem_24g_repeat_send_flag
+0x49aa mem_keyboard_led_status
+0x49ab mem_keyboard_led_status_get
+0x49ac mem_keyboard_led_status_get_timer
+0x49ad mem_keyboard_led_status_get_timer_last
+0x49ae mem_keyboard_fn_esc_f1_f12
+0x49ae mem_keyboard_fn_first
+0x49af mem_keyboard_fn_esc
+0x49b0 mem_keyboard_fn_f1
+0x49b1 mem_keyboard_fn_f2
+0x49b2 mem_keyboard_fn_f3
+0x49b3 mem_keyboard_fn_f4
+0x49b4 mem_keyboard_fn_f5
+0x49b5 mem_keyboard_fn_f6
+0x49b6 mem_keyboard_fn_f7
+0x49b7 mem_keyboard_fn_f8
+0x49b8 mem_keyboard_fn_f9
+0x49b9 mem_keyboard_fn_f10
+0x49ba mem_keyboard_fn_f11
+0x49bb mem_keyboard_fn_f12
+0x49bc mem_keyboard_fn_del
+0x49bd mem_keyboard_fn_arrow_enable_flag
+0x49be mem_keyboard_fn_left_ctrl_enable_flag
+0x49bf mem_keyboard_fn_space_enable_flag
+0x49c0 mem_keyboard_fn_system_switch_enable_flag
+0x49c1 mem_keyboard_commbination_key_step
+0x49c2 mem_keyboard_commbination_control_key_value
+0x49c3 mem_keyboard_commbination_standard_key_value
+0x49c4 mem_keyboard_commbination_control_key_delay_release_timer
+0x49c5 mem_keyboard_consumer_key_status
+0x49c6 mem_kb_computer_system
+0x49c7 mem_otp_read_retention_memory
+0x49df mem_otp_read_retention_offset
+0x49e1 mem_le_search_service_uuid
+0x49f1 mem_le_connect_ios_mac_flag
+0x49f2 mem_le_search_mac_uuid
+0x49f4 mem_le_search_mac_manu_name
+0x49fd mem_keybord_appearance
+0x49ff mem_keyboard_commbination_fast_conn_bt
+0x4a01 mem_keyboard_factory_addr
+0x4a07 mem_keyboard_device_poweron_timer_count_init
+0x4a08 mem_keyboard_device_poweron_timer_count
+0x4a09 mem_keyboard_disconvey_led_blink_time
+0x4a0b mem_keyboard_led_type
+0x4a0c mem_keyboard_blink_count
+0x4a0d mem_keyboard_struct_led_gpio
+0x4a0e mem_keyboard_on_time
+0x4a10 mem_keyboard_off_time
+0x4a12 mem_keyboard_cb_ledon
+0x4a14 mem_keyboard_cb_ledoff
+0x4a16 mem_keyboard_keyvalue_map_new
+0x4ab6 mem_keyboard_customer_key
+0x4ab7 mem_keyboard_customer_data_trigger
+0x4ab8 mem_keyboard_customer_data_trigger_last
+0x4ab9 mem_keyscan_exmcu_reset_count
+0x4aba mem_power_on_flag_new
+0x4abb mem_keyboard_le_map_len
+0x4abd mem_keyboard_le_hid_map
+0x4b99 mem_keyboard_change_vid_pid_flag
+0x4b9a mem_keybaord_pnp_vid_source
+0x4b9b mem_keyboard_vid
+0x4b9d mem_keyboard_pid
+0x4b9f mem_keyboard_product_version
+0x4ba1 mem_keyboard_switch_device_flag
+0x4ba2 mem_keyboard_usb_enable
+0x4ba3 mem_keyboard_switch_g24_enable
+0x4ba4 mem_keyboard_switch_g24_press_timer
+0x4ba5 mem_keyboard_switch_bt_enable
+0x4ba6 mem_keyboard_switch_bt_press_timer
+0x4ba7 mem_keyboard_switch_usb_enable
+0x4ba8 mem_keyboard_switch_device_to_g24
+0x4bab mem_keyboard_switch_device_to_bt1
+0x4bae mem_keyboard_switch_device_to_bt2
+0x4bb1 mem_keyboard_switch_device_to_bt3
+0x4bb4 mem_keyboard_switch_device_to_usb
+0x4bb7 mem_keyboard_24g_led_gpio
+0x4bb8 mem_keyboard_bt1_led_gpio
+0x4bb9 mem_keyboard_bt2_led_gpio
+0x4bba mem_keyboard_bt3_led_gpio
+0x4bbb mem_keyboard_scroll_led_gpio
+0x4bbc mem_keyboard_low_voltage_alarm_gpio
+0x4bbd mem_usb_level_check_gpio
+0x4bbe mem_mouse_usb_vdd_status_current
+0x4bbf mem_mouse_usb_vdd_status_last
+0x4bc0 mem_mouse_usb_wait_updata_timer
+0x4bc1 mem_usb_vid_pid_new
+0x4bca mem_keyboard_mode_led_on_timer
+0x4bcb mem_rgb_pwm_conf
+0x4bd1 mem_rgb_pwm_breathe_flag
+0x4bd2 mem_rgb_on_color_temp
+0x4bd3 mem_rgb_on_color
+0x4bda mem_pwm_lpm_mode_flag
+0x4bdb mem_ui_check_timer_setup
+0x4bdf mem_customize_timer_setup
+0x4be1 mem_backlight_on_flag
+0x4be2 mem_backlight_on_type
+0x4be3 mem_backlight_breathe_type
+0x4be4 mem_keyboard_led_on_time_init
+0x4be6 mem_device_flag_temp_new
+0x4be7 mem_otp_store_device_info_flag
+0x4be8 mem_otp_store_system_flag
+0x4be9 mem_adc_reference3v_ft_data
+0x4be9 mem_adc_reference3v_gpio1v_ft_data
+0x4beb mem_adc_reference3v_gpio2v_ft_data
+0x4bed mem_adc_reference3v_vdcdc3p6v_ft_data
+0x4bef mem_adc_reference3v_vdcdc4p6v_ft_data
+0x4bf1 mem_adc_reference3v_inter1v_ft_data
+0x4bf3 mem_adc_reference3v_inter1v_now_data
+0x4bf5 mem_adc_reference_mode
+0x4bf6 mem_le_conn_rcv_new
+0x4bf7 mem_le_conn_first_rcv
+0x4bf8 mem_le_check_retransmit_flag
+0x4bf9 mem_le_retransmit_cnt
+0x4bfa mem_le_check_retransmit_discon_flag
+0x4bfb mem_le_tx_buffer0_omemalloc_new
+0x4c3b mem_le_tx_buffer1_omemalloc_new
+0x4c7b mem_le_tx_buffer2_omemalloc_new
+0x4cbb mem_le_tx_buffer3_omemalloc_new
+0x4cfb mem_keyscan_exmcu_value_new
+0x4d07 mem_keyboard_pair_led_flag
+0x4d08 mem_keyboard_adc_low_volatage_led_timer_count
+0x4d09 mem_adc_low_volatage_led_blink_timer
+0x4d0b mem_keyboard_low_volatage_led_flag
+0x4d0c mem_keyboard_low_volatage_led_blink_new_data_enable
+0x4d0d mem_qdec_set_flag
+0x4846 mem_mouse_key
+0x4847 mem_mouse_x
+0x4849 mem_mouse_y
+0x484b mem_mouse_z
+0x484c mem_mouse_tz
+0x484d mem_mouse_xy_h
+0x484e mem_mouse_key_last
+0x484f mem_wheel_tb_old_pinlevel
+0x4850 mem_wheel_tb_new_pinlevel
+0x4851 mem_wheel_tog
+0x4852 mem_mouse_tz_data
+0x4853 mem_mwheel_b_old_pinlevel
+0x4854 mem_mwheel_b_new_pinlevel
+0x4855 mem_mwheel_tog
+0x4856 mem_mouse_z_data
+0x4857 mem_mouse_wheel_trigger
+0x4858 mem_mouse_wheel_trigger_timer
+0x4859 mem_sensor_id1
+0x485a mem_sensor_id2
+0x485b mem_sensor_shutter_hi
+0x485c mem_sensor_shutter_lo
+0x485d mem_sensor_smart_flag
+0x485e mem_sensor_squal_reg
+0x485f mem_sensor_iqc
+0x4860 mem_mouse_move_flag
+0x4861 mem_mouse_asm_flag
+0x4862 mem_mouse_x_pre
+0x4864 mem_mouse_y_pre
+0x4866 mem_mouse_data_xtemp
+0x4867 mem_mouse_data_ytemp
+0x4868 mem_mouse_dpi_seting
+0x4868 mem_320x_dpi_0
+0x4869 mem_320x_dpi_1
+0x486a mem_320x_dpi_2
+0x486b mem_320x_dpi_3
+0x486c mem_3212_dpi_0
+0x486d mem_3212_dpi_1
+0x486e mem_3212_dpi_2
+0x486f mem_3212_dpi_3
+0x4870 mem_ka8g2_dpi_0
+0x4871 mem_ka8g2_dpi_1
+0x4872 mem_ka8g2_dpi_2
+0x4873 mem_ka8g2_dpi_3
+0x4874 mem_sensor_s201_dpi
+0x4874 mem_sensor_s201_dpi_0
+0x4875 mem_sensor_s201_dpi_1
+0x4876 mem_sensor_s201_dpi_2
+0x4877 mem_sensor_s201_dpi_3
+0x4878 mem_sensor_s201_dpi_4
+0x4879 mem_mouse_cpi_count
+0x487a mem_mouse_dpi_button_state
+0x487b mem_mouse_dpi_long_press_flag
+0x487c mem_sensor_3212_init
+0x4886 mem_sensor_3204_init
+0x4890 mem_sensor_3205_init
+0x489a mem_sensor_32xx_init
+0x48b4 mem_sensor_32xx_init_1
+0x48d6 mem_sensor_8650_init
+0x48fc mem_sensor_ka8ul_init
+0x491a mem_sensor_8009_init
+0x492a mem_sensor_ka8g2_init
+0x493a mem_sensor_p6520_init
+0x4946 mem_sensor_poweron_init
+0x494e mem_sensor_ka8g2_poweron_init
+0x4956 mem_mouse_clear_sensor_data_flag
+0x4957 mem_config_sensor_type
+0x4958 mem_config_sensor_angle
+0x4959 mem_bluetooth_125hz_cnt
+0x495a mem_device_addr_temp
+0x4961 mem_mouse_bt_boot_mode
+0x4962 mem_mouse_bt_boot_data
+0x4967 mem_bt_send_max_slot_req_accept_after_switch
+0x4968 mem_mouse_bt_send_first_package_timer
+0x4969 mem_mouse_bt_send_first_package_flag
+0x496a mem_lmi_opcode_temp
+0x496b mem_lpm_mult_init
+0x496c mem_customer_key
+0x496d mem_customer_data_trigger
+0x496e mem_customer_data_trigger_last
+0x496f mem_mouse_lkey_press_status
+0x4970 mem_mouse_rkey_press_status
+0x4971 mem_mouse_mkey_press_status
+0x4972 mem_mouse_bkkey_press_status
+0x4973 mem_mouse_fwkey_press_status
+0x4974 mem_mouse_dpikey_press_status
+0x4975 mem_mouse_pbkey_press_status
+0x4976 mem_mouse_customerkey_press_status
+0x4977 mem_mouse_key_temp
+0x4978 mem_mouse_key_status
+0x4979 mem_mouse_matrix_key_cow_count
+0x497a mem_mouse_matrix_key_row_count
+0x497b mem_mouse_ghost_flag
+0x497c mem_bt_discovery_count
+0x497d mem_select_device_count
+0x497e mem_mouse_commbination_key
+0x497f mem_select_device_button_statue
+0x4980 mem_commbination_key_statue
+0x4981 mem_combination_ui_button_count
+0x4982 mem_fire_key_status
+0x4983 mem_fire_key_delay
+0x4987 mem_fire_key_flag
+0x4988 mem_dpi_another_press_status
+0x4989 mem_dpi_another_button_state
+0x498a mem_dpi_another_button_down_enable
+0x498b mem_mouse_key_temp_patch
+0x498c mem_le_name_patch_len
+0x498d mem_le_name_patch
+0x49a0 mem_device_flag_last
+0x49a1 mem_device_flag_temp
+0x49a2 mem_device_flag_value
+0x49a3 mem_mouse_le_addr1_last
+0x49a9 mem_mouse_le_addr1_temp
+0x49af mem_mouse_le_locall_addr1_last
+0x49b5 mem_mouse_le_locall_addr1_temp
+0x49bb mem_mouse_le_addr2_last
+0x49c1 mem_mouse_le_addr2_temp
+0x49c7 mem_mouse_le_locall_addr2_last
+0x49cd mem_mouse_le_locall_addr2_temp
+0x49d3 mem_mouse_dpi_last
+0x49d4 mem_mouse_dpi_temp
+0x49d5 mem_mouse_otp_dpi_value
+0x49d6 mem_mouse_24g_addr_last
+0x49da mem_mouse_24g_addr_temp
+0x49de mem_random_addr_increase_count_last
+0x49e0 mem_random_addr_increase_count_temp
+0x49e2 mem_otp_offset_device_flag
+0x49e4 mem_otp_offset_device_flag_end
+0x49e6 mem_otp_offset_24g_addr
+0x49e8 mem_otp_offset_24g_addr_end
+0x49ea mem_otp_offset_le_addr1
+0x49ec mem_otp_offset_le_addr1_end
+0x49ee mem_otp_offset_le_locall_addr1
+0x49f0 mem_otp_offset_le_locall_addr1_end
+0x49f2 mem_otp_offset_le_addr2
+0x49f4 mem_otp_offset_le_addr2_end
+0x49f6 mem_otp_offset_le_locall_addr2
+0x49f8 mem_otp_offset_le_locall_addr2_end
+0x49fa mem_otp_offset_dpi
+0x49fc mem_otp_offset_dpi_end
+0x49fe mem_otp_offset_le_addr_increase_count
+0x4a00 mem_otp_offset_le_addr_increase_count_end
+0x4a02 mem_otp_offset_app_initflag
+0x4a04 mem_24g_txpayload_buf
+0x4a14 mem_release_data_from_receiver_enable
+0x4a15 mem_release_data_from_transmiter_enable
+0x4a16 mem_flippen_key0_gpio
+0x4a17 mem_flippen_key1_gpio
+0x4a18 mem_flippen_key2_gpio
+0x4a19 mem_flippen_key3_gpio
+0x4a1a mem_flippen_key4_gpio
+0x4a1b mem_flippen_key5_gpio
+0x4a1c mem_flippen_key6_gpio
+0x4a1d mem_flippen_key7_gpio
+0x4a1e mem_flippen_key0_press_status
+0x4a1f mem_flippen_key1_press_status
+0x4a20 mem_flippen_key2_press_status
+0x4a21 mem_flippen_key3_press_status
+0x4a22 mem_flippen_key4_press_status
+0x4a23 mem_flippen_key5_press_status
+0x4a24 mem_flippen_key6_press_status
+0x4a25 mem_flippen_key7_press_status
+0x4a26 mem_key_press_data
+0x4a26 mem_key_pageup_data
+0x4a2f mem_key_pagedown_data
+0x4a38 mem_key_shift_f5_data
+0x4a41 mem_key_esc_data
+0x4a4a mem_key_b_data
+0x4a53 mem_key_tab
+0x4a5c mem_key_enter
+0x4a65 mem_key_alt_tab
+0x4a6e mem_key_alt_f4
+0x4a77 mem_key_play_pause
+0x4a80 mem_key_vol_up
+0x4a89 mem_key_vol_down
+0x4a92 mem_standard_key_release
+0x4a9b mem_system_ctrl_key_release
+0x4aa4 mem_media_key_release
+0x4aad mem_key0_long_press_flag
+0x4aae mem_key1_long_press_flag
+0x4aaf mem_key2_long_press_flag
+0x4ab0 mem_key3_long_press_flag
+0x4ab1 mem_key4_long_press_flag
+0x4ab2 mem_key0_long_press_event
+0x4ab3 mem_key1_long_press_event
+0x4ab4 mem_key2_long_press_event
+0x4ab5 mem_key3_long_press_event
+0x4ab6 mem_key4_long_press_event
+0x4ab7 mem_key0_short_press_flag
+0x4ab8 mem_key1_short_press_flag
+0x4ab9 mem_key2_short_press_flag
+0x4aba mem_key3_short_press_flag
+0x4abb mem_key4_short_press_flag
+0x4abc mem_key0_press_timer_count
+0x4abd mem_key1_press_timer_count
+0x4abe mem_key2_press_timer_count
+0x4abf mem_key3_press_timer_count
+0x4ac0 mem_key4_press_timer_count
+0x4ac1 mem_combination_key_down_flag
+0x4ac2 mem_combination_key_longpress_flag
+0x4ac3 mem_key_disable_timer
+0x4ac4 mem_24g_calculate_package_id_disable
+0x4ac5 mem_24g_package_id_abandon_flag
+0x4ac6 mem_24g_package_id
+0x4ac7 mem_key_state
+0x4ac8 mem_key_press_state
+0x4ac9 mem_poweron_first_blank_data_enable
+0x4aca mem_flippen_no_data_timeout
+0x4acc mem_flippen_start_pair_no_data_timeout
+0x4ace mem_key_longpress_timer_init
+0x4ad0 mem_key_longpress_timer
+0x4ad2 mem_low_voltage_led_blink_flag
+0x4ad3 mem_low_voltage_led_blink_start_timer
+0x4ad4 mem_poweron_led_blink_flag
+0x4ad5 mem_24g_pair_enable_flag
+0x4ad6 mem_24g_ch_work
+0x4ad7 mem_24g_pair_key_down_flag
+0x4ad8 mem_24g_pairing_stop_flag
+0x4ad9 mem_longpress_24g_enter_hibernate_flag
+0x4ada mem_g24_connected_state
+0x4adb mem_g24_pairing_stop_flag
+0x4adc mem_send_package_before_check
+0x462d mem_remote_car_hard_soft_switch
+0x462e mem_remote_car_queue_each_size
+0x462f mem_remote_car_queue_length
+0x4630 mem_remote_car_queue_curr_num
+0x4631 mem_remote_car_queue_read_ptr
+0x4632 mem_remote_car_queue_write_ptr
+0x4633 mem_remote_car_queue_ele
+0x468d mem_remote_style_led_type
+0x468e mem_remote_style_blink_count
+0x468f mem_remote_style_struct_led_gpio
+0x4690 mem_remote_style_on_time
+0x4692 mem_remote_style_off_time
+0x4694 mem_remote_style_cb_ledon
+0x4696 mem_remote_style_cb_ledoff
+0x4698 mem_remote_car_led_num
+0x4699 mem_remote_car_led_map
+0x46a1 mem_remote_car_keyscan
+0x46a1 mem_remote_car_key_num
+0x46a2 mem_cb_remote_car_keyscan
+0x46a4 mem_remote_car_key_conf0
+0x46a4 mem_remote_car_key_conf0_pin
+0x46a5 mem_remote_car_key_conf1
+0x46a5 mem_remote_car_key_conf1_pin
+0x46a6 mem_remote_car_key_conf2
+0x46a6 mem_remote_car_key_conf2_pin
+0x46a7 mem_remote_car_key_conf3
+0x46a7 mem_remote_car_key_conf3_pin
+0x46a8 mem_remote_car_key_conf4
+0x46a8 mem_remote_car_key_conf4_pin
+0x46a9 mem_remote_car_key_conf5
+0x46a9 mem_remote_car_key_conf5_pin
+0x46aa mem_remote_car_key_conf6
+0x46aa mem_remote_car_key_conf6_pin
+0x46ab mem_rocker_negative_flag
+0x46ac mem_rocker_work_status
+0x46ad mem_current_vdd_value_default_mid_x
+0x46af mem_current_vdd_value_default_mid_y
+0x46b1 mem_current_vdd_value_default_mid_temp
+0x46b3 mem_current_vdd_default_range
+0x46b5 mem_rocker_last_status
+0x46b7 mem_rocker_status
+0x46b7 mem_rocker_x_status
+0x46b8 mem_rocker_y_status
+0x46b9 mem_remote_car_config_param
+0x46b9 mem_remote_car_config_setting_flag
+0x46ba mem_remote_car_config_key_map
+0x46bb mem_remote_car_config_layout
+0x46bc mem_remote_car_config_connect_led_gpio
+0x46bd mem_remote_car_config_check_way
+0x46be mem_remote_car_config_soft_switch_enable
+0x46bf mem_remote_car_config_soft_switch_gpio
+0x46c0 mem_remote_car_config_timeout_shutdown_enable
+0x46c1 mem_remote_car_24g_motor_packet
+0x46c1 mem_remote_car_24g_motor_packet_lenght
+0x46c2 mem_remote_car_24g_motor_send_packet_head
+0x46c4 mem_remote_car_24g_motor_send_cmd
+0x46c5 mem_remote_car_24g_motor_send_length
+0x46c7 mem_remote_car_24g_motor_send_payload
+0x46c7 mem_remote_car_24g_motor1_payload
+0x46c9 mem_remote_car_24g_motor2_payload
+0x46cb mem_remote_car_24g_motor3_payload
+0x46cd mem_remote_car_24g_motor_send_checksum
+0x46ce mem_remote_car_24g_fire_packet
+0x46ce mem_remote_car_24g_fire_packet_lenght
+0x46cf mem_remote_car_24g_fire_send_packet_head
+0x46d1 mem_remote_car_24g_fire_send_cmd
+0x46d2 mem_remote_car_24g_fire_send_length
+0x46d4 mem_remote_car_24g_fire_send_payload
+0x46d6 mem_remote_car_24g_fire_send_checksum
+0x46d7 mem_remote_car_24g_tx_temp
+0x46e6 mem_remote_car_no_data_timeout
+0x46e8 mem_remote_car_no_data_timer
+0x46ea mem_remote_car_soft_power
+0x46ea mem_remote_car_power_state
+0x46eb mem_remote_car_power_timer
+0x46ec mem_remote_car_power_off_timeout
+0x46ed mem_remote_car_power_starting_timeout
+0x46ee mem_remote_car_power_off_cb
+0x46f0 mem_remote_car_power_starting_cb
+0x46f2 mem_remote_car_power_standby_cb
+0x46f4 mem_remote_key_status
+0x46f5 mem_remote_car_24g_status
+0x46f6 mem_remote_car_24g_auto_work_step
+0x46f7 mem_remote_car_24g_pair_success_flag
+0x46f8 mem_remote_car_empty_packet
+0x46f9 mem_remote_car_motor1_key0_press_state
+0x46fa mem_remote_car_motor1_key1_press_state
+0x46fb mem_remote_car_motor2_key2_press_state
+0x46fc mem_remote_car_motor2_key3_press_state
+0x46fd mem_remote_car_motor1_rel_state
+0x46fe mem_remote_car_motor2_rel_state
+0x46ff mem_remote_car_no_data_check
+0x4700 mem_remote_24g_commom_addr
+0x4704 mem_remote_24g_commom_addr_temp
+0x4708 mem_remote_24g_commom_addr_read
+0x470c mem_remote_save_addr_flag
+0x44f1 mem_hci_uart_tx_gpio
+0x44f2 mem_hci_uart_rx_gpio
+0x44f3 mem_hci_uart_rts_gpio
+0x44f4 mem_hci_uart_cts_gpio
+0x44f5 mem_hci_pwm_12mhz_gpio
+0x44f1 mem_soft_version_num
+0x44f3 mem_module_wake_up_gpio
+0x44f4 mem_module_state_gpio
+0x44f5 mem_module_connect_state_gpio
+0x44f6 mem_current_packet_length
+0x44f8 mem_module_state
+0x44f9 mem_module_mcu_wake_pin
+0x44fa mem_module_mcu_wake_delay_us
+0x44fe mem_module_le_lpm_mult
+0x44ff mem_module_bluetooth_stauts_by_command
+0x4500 mem_module_uart_rx_buffer
+0x4502 mem_module_uart_rx_buffer_end
+0x4504 mem_module_uart_tx_buffer
+0x4506 mem_module_uart_tx_buffer_end
+0x4508 mem_module_uarta_baud_rate
+0x450a mem_module_read_vdd_flag
+0x450b mem_module_read_vdd_count
+0x450c mem_module_vdd_quotient
+0x450d mem_module_vdd_remainder
+0x450e mem_module_ble_data_uart_max_length
+0x450f mem_module_flag
+0x4511 mem_module_hci_notify_len
+0x4512 mem_module_hci_notify_handle
+0x4514 mem_module_hci_nofiy_addr
+0x4516 mem_module_hci_notify_type
+0x4517 mem_le_conn_flag
+0x4518 mem_module_le_att_list
+0x4770 mem_module_le_att_list_end
+0x4770 mem_module_nv_data
+0x4770 mem_module_nv_data0
+0x4792 mem_module_nv_data1
+0x47b4 mem_module_nv_data2
+0x47d6 mem_module_nv_data3
+0x47f8 mem_module_nv_data4
+0x481a mem_module_nv_data_end
+0x44f1 mem_ble_shutter_enable_notify
+0x44f2 mem_ble_shutter_reconn_adv_interval
+0x44f4 mem_ble_shutter_discovery_adv_interval
+0x44f6 mem_ble_shutter_reconn_timeout
+0x44f8 mem_ble_shutter_reconn_timer
+0x44fa mem_ble_shutter_reconn_blink_on_time
+0x44fc mem_ble_shutter_reconn_blink_off_time
+0x44fe mem_ble_shutter_discovery_blink_on_time
+0x4500 mem_ble_shutter_discovery_blink_off_time
+0x4502 mem_ble_shutter_interval_min
+0x4504 mem_ble_shutter_interval_max
+0x4506 mem_ble_shutter_latency
+0x4508 mem_ble_shutter_timeout
+0x450a mem_ble_shutter_interval_min_new
+0x450c mem_ble_shutter_interval_max_new
+0x450e mem_ble_shutter_latency_new
+0x4510 mem_ble_shutter_timeout_new
+0x4512 mem_ble_shutter_discovery_timeout
+0x4514 mem_ble_shutter_connect_timeout
+0x4516 mem_shutter_sleep_timeout
+0x4518 mem_shutter_sleep_timer
+0x451a mem_shutter_hard_soft_switch_case
+0x451b mem_shutter_soft_switch_button_gpio
+0x451c mem_shutter_soft_switch_power_state
+0x451d mem_shutter_soft_switch_poweron_time
+0x451e mem_shutter_soft_switch_poweroff_time
+0x451f mem_shutter_soft_switch_poweron_callback_function
+0x4521 mem_shutter_soft_switch_poweroff_callback_function
+0x4523 mem_shutter_keyscan
+0x4523 mem_shutter_key_num
+0x4524 mem_cb_shutter_keycan
+0x4526 mem_shutter_key_conf0
+0x4527 mem_shutter_key_conf1
+0x4528 mem_shutter_key_conf2
+0x4529 mem_shutter_key_conf3
+0x452a mem_shutter_key_conf4
+0x452b mem_shutter_key_conf5
+0x452c mem_shutter_key_conf6
+0x452d mem_shutter_key_conf7
+0x452e mem_key0_press
+0x4533 mem_key1_press
+0x4538 mem_key2_press
+0x453d mem_key3_press
+0x4542 mem_key4_press
+0x4547 mem_key5_press
+0x454c mem_key6_press
+0x4551 mem_key7_press
+0x4556 mem_key0_release
+0x455b mem_key1_release
+0x4560 mem_key2_release
+0x4565 mem_key3_release
+0x456a mem_key4_release
+0x456f mem_key5_release
+0x4574 mem_key6_release
+0x4579 mem_key7_release
+0x457e mem_ble_data_buffer1
+0x4583 mem_ble_data_buffer2
+0x4588 mem_ble_data_buffer3
+0x458d mem_ble_data_buffer4
+0x4592 mem_ble_data_buffer5
+0x4597 mem_ble_data_buffer6
+0x459c mem_ble_data_buffer7
+0x45a1 mem_ble_data_buffer8
+0x45a6 mem_ble_data_buffer9_58
+0x45d8 mem_queue_each_size
+0x45d9 mem_queue_length
+0x45da mem_queue_curr_num
+0x45db mem_queue_read_ptr
+0x45dc mem_queue_write_ptr
+0x45dd mem_queue_ele
+0x45fd mem_shutter_nv_data
+0x46a7 mem_shutter_led_struct_app_led
+0x46a7 mem_shutter_led_struct_app_led_type
+0x46a8 mem_shutter_led_struct_app_led_blink_count
+0x46a9 mem_shutter_led_struct_app_led_gpio
+0x46aa mem_shutter_led_struct_app_led_on_time
+0x46ac mem_shutter_led_struct_app_led_off_time
+0x46ae mem_shutter_led_struct_app_led_on_callback
+0x46b0 mem_shutter_led_struct_app_led_off_callback
+0x46b2 mem_shutter_power_off_led_style
+0x46b2 mem_shutter_power_off_led_style_type
+0x46b3 mem_shutter_power_off_led_style_blink_count
+0x46b4 mem_shutter_power_off_led_style_gpio
+0x46b5 mem_shutter_power_off_led_style_on_time
+0x46b7 mem_shutter_power_off_led_style_off_time
+0x46b9 mem_shutter_power_off_led_style_on_callback
+0x46bb mem_shutter_power_off_led_style_off_callback
+0x46bd mem_shutter_soft_swtich_botton_down
+0x46be mem_shutter_soft_swtich_led_struct_temp
+0x46c9 mem_shutter_power_off_timeout
+0x46ca mem_shutter_power_off_timer
+0x46cb mem_shutter_key_conf0_temp
+0x46cd mem_shutter_led_struct_app_led_gpio_temp
+0x46ce mem_shutter_hard_soft_switch_case_temp
+0x46cf mem_shutter_soft_switch_button_gpio_temp
+0x46d0 mem_shutter_soft_switch_first_power_on
+0x46d1 mem_shutter_dy_conf
+0x46d2 mem_shutter_le_uuid_sup
+0x4876 mem_shutter_key_value_list
+0x489e mem_shutter_discovery_time_conf
+0x48a6 mem_shutter_reconn_or_discovery_blink_time_conf
+0x48ae mem_shutter_1s_timer
+0x48af mem_shutter_timer_625us
+0x48b1 mem_rf_init_data_new
+0x48bc mem_key_value_xmem
+0x48be mem_shutter_le_hid_map
+0x49e0 mem_shutter_le_map_len_android
+0x49e2 mem_shutter_le_map_len_ios
+0x49e4 mem_dy_le_search_service_uuid
+0x49f4 mem_iphone_flag
+0x49f5 mem_send_data_delay
+0x49f6 mem_key_send_clk
+0x49fa mem_shutter_key_state0
+0x4a04 mem_shutter_key_state1
+0x4a0e mem_shutter_key_state2
+0x4a18 mem_shutter_key_state3
+0x4a22 mem_shutter_key_state4
+0x4a2c mem_shutter_key_state5
+0x4a36 mem_shutter_key_state6
+0x4a40 mem_key0_release_new
+0x4a4f mem_key1_release_new
+0x4a5e mem_key2_release_new
+0x4a6d mem_key3_release_new
+0x4a7c mem_key4_release_new
+0x4a8b mem_key5_release_new
+0x4a9a mem_key6_release_new
+0x4aa9 mem_key0_long_press
+0x4aac mem_key1_long_press
+0x4aaf mem_key2_long_press
+0x4ab2 mem_key3_long_press
+0x4ab5 mem_key4_long_press
+0x4ab8 mem_key5_long_press
+0x4abb mem_key6_long_press
+0x4abe mem_key0_long_release
+0x4ac1 mem_key1_long_release
+0x4ac4 mem_key2_long_release
+0x4ac7 mem_key3_long_release
+0x4aca mem_key4_long_release
+0x4acd mem_key5_long_release
+0x4ad0 mem_key6_long_release
+0x4ad3 mem_combine_key0
+0x4ad5 mem_combine_key1
+0x4ad7 mem_combine_key2
+0x4ad9 mem_combine_key3
+0x4adb mem_combine_key4
+0x4add mem_combine_key5
+0x4adf mem_combine_key_state0
+0x4ae1 mem_combine_key0_press
+0x4aeb mem_combine_key1_press
+0x4af5 mem_combine_key2_press
+0x4aff mem_combine_key3_press
+0x4b09 mem_combine_key4_press
+0x4b13 mem_combine_key5_press
+0x4b1d mem_combine_key_release
+0x4b27 mem_shutter_move_data
+0x4b2b mem_key0_press_i
+0x4b35 mem_key1_press_i
+0x4b3f mem_key2_press_i
+0x4b49 mem_key3_press_i
+0x4b53 mem_key4_press_i
+0x4b5d mem_key5_press_i
+0x4b67 mem_key0_release_new_i
+0x4b76 mem_key1_release_new_i
+0x4b85 mem_key2_release_new_i
+0x4b94 mem_key3_release_new_i
+0x4ba3 mem_key4_release_new_i
+0x4bb2 mem_key5_release_new_i
+0x4bc1 mem_key6_release_new_i
+0x4bd0 mem_key0_long_press_i
+0x4bd3 mem_key1_long_press_i
+0x4bd6 mem_key2_long_press_i
+0x4bd9 mem_key3_long_press_i
+0x4bdc mem_key4_long_press_i
+0x4bdf mem_key5_long_press_i
+0x4be2 mem_key6_long_press_i
+0x4be5 mem_key0_long_release_i
+0x4be8 mem_key1_long_release_i
+0x4beb mem_key2_long_release_i
+0x4bee mem_key3_long_release_i
+0x4bf1 mem_key4_long_release_i
+0x4bf4 mem_key5_long_release_i
+0x4bf7 mem_key6_long_release_i
+0x4bfa mem_key3_release_new_t
+0x4c04 mem_key3_release_new_i_t
+0x4c0e mem_key3_press_count
+0x4c0f mem_shutter_like_timeout
+0x4c10 mem_shutter_key_pressed
+0x4c11 mem_shutter_combine_key_release
+0x4c12 mem_shutter_mousekey_value_list
+0x4eba mem_shutter_back_count
+0x4ebb mem_shutter_le_conned
+0x4ebc mem_move_config
+0x4ebc mem_shutter_iphone_beyond_x_count
+0x4ebd mem_shutter_iphone_beyond_y_count
+0x4ebe mem_shutter_move_data_x
+0x4ec0 mem_shutter_move_data_y
+0x4ec2 mem_last_shutter_le_iphone_flag
+0x4ec3 mem_move_config_end
+0x4ec3 mem_shutter_back_count_cache
+0x4ec4 mem_shutter_iphone_beyond_x_cache
+0x4ec5 mem_shutter_iphone_beyond_y_cache
+0x4ec6 mem_shutter_iphone_move_mid
+0x4ed0 mem_shutter_long_key_released_flag
+0x4ed1 mem_shutter_move_mid_timer
+0x4ed2 mem_shutter_pairing_success
+0x4ed3 mem_combine_key_release_value
+0x4ed5 mem_last_press_key_value
+0x4ed6 mem_shutter_first_move
+0x4ed7 mem_move_mode_set
+0x4ed8 mem_move_mode_key_index
+0x4ed9 mem_move_mode_trigger_enable
+0x4eda mem_shutter_android_move_mid
+0x4edf mem_shutter_iphone_up_mid
+0x4ee9 mem_shutter_iphone_like_mid
+0x4ef3 mem_shutter_key_num_conf
+0x4ef4 mem_shutter_dy_key_conf
+0x4efb mem_le_dy_adv_data
+0x4f06 mem_le_dy_scan_data
+0x4f12 mem_ble_shutter_dy_interval_min_new
+0x4f1a mem_shutter_ble_discovery_time_conf
+0x4f22 mem_queue_dy_each_size
+0x4f24 mem_dy_key0_press
+0x4f2e mem_dy_key1_press
+0x4f38 mem_dy_key2_press
+0x4f42 mem_dy_key3_press
+0x4f4c mem_dy_key4_press
+0x4f56 mem_dy_key5_press
+0x4f60 mem_dy_key6_press
+0x4f6a mem_shutter_led_on_light_dark_led_conf
+0x4f71 mem_shutter_led_off_light_dark_led_conf
+0x4f78 mem_shutter_reconn_blink_on_time_conf
+0x4f7c mem_shutter_discovery_blink_on_time_conf
+0x4f80 mem_shutter_efuse_start_offset
+0x4f82 mem_shutter_efuse_end_offset
+0x4f84 mem_initial_move_conf
+0x4f84 mem_android_initial_move_x
+0x4f86 mem_android_initial_move_y
+0x4f88 mem_iphone_initial_move_x
+0x4f8a mem_iphone_initial_move_y
+0x4f8c mem_otp_move_config
+0x4f8c mem_otp_shutter_move_data_x
+0x4f8e mem_otp_shutter_move_data_y
+0x4f90 mem_otp_last_shutter_le_iphone_flag
+0x4f91 mem_otp_move_config_end
+0x4f91 mem_otp_write_offset_addr
+0x4f93 mem_otp_read_offset_addr
+0x4f95 mem_otp_read_ios_android_addr
+0x4f97 mem_shutter_le_pairing_handle
+0x4f99 mem_shutter_temp_count
+0x4f9b mem_shutter_first_read_flag
+0x4f9c mem_shutter_valid_data_flag
+0x4f9d mem_shutter_volume_timer
+0x4f9e mem_shutter_link_timer
+0x4f9f mem_shutter_link_data
+0x4fa7 mem_shutter_link_data_i
+0x4faf mem_shutter_link_loop_flag
+0x4fb0 mem_shutter_end
+
+0x45ed mem_mesh_vendor_timer_timing_index_cyclic
+0x45ee mem_mesh_vendor_timer_timing_time_cyclic
+0x45f0 mem_mesh_vendor_timer_timing_zone_cyclic
+0x45f2 mem_mesh_vendor_timer_timing_weekdays_cyclic
+0x45f3 mem_mesh_vendor_timer_timing_attr_type_cyclic
+0x45f5 mem_mesh_vendor_timer_timing_attr_para_len_cyclic
+0x45f6 mem_mesh_vendor_timer_timing_attr_para_cyclic
+0x45fe mem_mesh_vendor_timer_timing_cyclic_flag
+0x45ed mem_mesh_vendor_timer_timing_index
+0x45ee mem_mesh_vendor_timer_timing_time
+0x45f2 mem_mesh_vendor_timer_timing_attr_type
+0x45f4 mem_mesh_vendor_timer_timing_attr_para_len
+0x45f5 mem_mesh_vendor_timer_timing_attr_para
+0x45fd mem_mesh_vendor_timer_timing_flag
+0x4806 mem_mesh_fast_pairing_timer
+0x49a1 mem_mesh_filter_status_message_opcode
+0x49a2 mem_mesh_filter_status_message_FilterType
+0x49a3 mem_mesh_filter_status_message_ListSize
+0x49a5 mem_mesh_filter_status_message_MIC
+0x49a1 mem_mesh_unsegmented_access_lower_transport_layer_head
+0x49a2 mem_mesh_unsegmented_access_lower_transport_layer_parameters
+0x49ad mem_mesh_unsegmented_access_lower_transport_layer_mic
+0x49a1 mem_mesh_segmented_access_lower_transport_layer_head
+0x49a2 mem_mesh_segmented_access_lower_transport_layer_SZMIC_SeqZero_SegO_SegN
+0x49a5 mem_mesh_segmented_access_lower_transport_layer_parameters
+0x49ad mem_mesh_segmented_access_lower_transport_layer_mic
+0x475e mem_k2_EncryptionKey
+0x474e mem_k2_PrivacyKey
Index: output/otp.dat
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/otp.dat	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/otp.dat	(working copy)
@@ -0,0 +1,8290 @@
+0b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
+94
+6f
+05
+88
+f9
+0f
+8b
+5e
+67
+52
+4b
+5c
+96
+56
+54
+a7
+aa
+55
+00
+1b
+69
+68
+f8
+fb
+d6
+8d
+ce
+12
+8d
+f8
+2a
+5c
+30
+58
+f7
+51
+43
+a3
+d5
+34
+b4
+d9
+01
+2f
+78
+97
+f9
+e5
+e0
+d3
+d5
+b5
+62
+06
+f8
+a0
+1c
+a4
+24
+df
+7c
+39
+fe
+7e
+00
+d8
+24
+8a
+72
+9d
+9d
+17
+43
+2f
+62
+af
+cf
+fa
+e3
+56
+12
+fc
+99
+f5
+f2
+d6
+3b
+d6
+ce
+df
+ba
+d6
+c0
+7a
+6c
+44
+cb
+91
+37
+68
+4b
+17
+61
+33
+57
+52
+e7
+c6
+cc
+eb
+a1
+16
+a4
+fb
+99
+f3
+34
+4c
+ab
+de
+2b
+f9
+71
+bd
+31
+01
+e0
+db
+30
+f1
+b2
+b9
+1b
+ef
+13
+b8
+88
+2d
+6c
+d5
+30
+19
+3f
+5f
+f5
+28
+67
+74
+a4
+b3
+e0
+61
+22
+b8
+d2
+a9
+a3
+23
+d8
+57
+08
+9a
+24
+b2
+24
+06
+8d
+db
+5c
+7a
+fd
+8b
+cc
+0d
+09
+02
+db
+5b
+7f
+b7
+7a
+49
+36
+0e
+dc
+8a
+06
+b4
+e8
+ec
+f8
+87
+08
+21
+5e
+f9
+ea
+58
+f0
+fc
+8f
+07
+4c
+ae
+aa
+63
+38
+75
+61
+da
+8f
+41
+56
+b3
+63
+60
+84
+70
+f7
+e1
+9f
+02
+6d
+ee
+e6
+fe
+98
+af
+e8
+45
+ea
+9e
+ff
+4f
+b9
+37
+28
+8e
+a7
+fb
+49
+cf
+8f
+fd
+e7
+c6
+e2
+3b
+c3
+2e
+8e
+07
+9a
+d0
+ba
+a3
+ac
+c6
+d5
+a9
+cb
+20
+74
+d7
+dc
+53
+e8
+f2
+f8
+d4
+b5
+ab
+c0
+55
+e0
+10
+1c
+20
+fc
+39
+ef
+eb
+c8
+60
+e0
+b6
+90
+82
+bb
+28
+26
+12
+be
+a8
+fd
+1b
+52
+c9
+d3
+be
+0c
+fd
+83
+b3
+29
+bf
+d7
+38
+2d
+7f
+df
+0d
+25
+79
+91
+bd
+9a
+03
+75
+29
+bc
+49
+bb
+8e
+32
+af
+92
+9e
+e6
+80
+d9
+d9
+ce
+fe
+63
+3b
+81
+5d
+42
+b8
+d9
+0f
+a4
+9a
+ca
+b4
+28
+22
+84
+b3
+85
+e3
+3b
+62
+ca
+49
+2a
+b7
+07
+d1
+87
+cd
+af
+fb
+6f
+95
+21
+f3
+23
+e7
+27
+25
+9b
+f4
+31
+52
+81
+34
+4b
+79
+f6
+3d
+f4
+ad
+37
+1b
+47
+b7
+7b
+f8
+97
+64
+eb
+0f
+eb
+43
+ea
+94
+b1
+39
+8c
+f5
+27
+e3
+8d
+e6
+1f
+a3
+80
+95
+69
+80
+8c
+17
+ef
+88
+2a
+cd
+32
+b5
+31
+b0
+e3
+91
+5b
+21
+9f
+cb
+13
+3c
+0d
+c4
+c9
+63
+01
+44
+f8
+8e
+83
+80
+47
+96
+08
+da
+f4
+be
+53
+48
+d3
+99
+34
+4d
+e5
+64
+0b
+42
+5b
+4d
+c6
+26
+e6
+9e
+8d
+0d
+6e
+58
+ec
+31
+af
+d5
+a0
+ab
+58
+8f
+98
+ee
+f9
+63
+8a
+b6
+5e
+05
+18
+18
+ac
+63
+86
+78
+92
+81
+8a
+b5
+cb
+d4
+01
+2e
+c9
+f7
+aa
+d4
+0b
+48
+5d
+62
+07
+67
+43
+7e
+15
+07
+28
+a0
+1b
+ff
+39
+1d
+fa
+23
+da
+58
+e4
+49
+e0
+72
+46
+f5
+6c
+fb
+92
+97
+e0
+ea
+97
+ac
+ae
+c2
+9c
+05
+aa
+4b
+07
+e2
+6a
+c3
+5a
+1b
+93
+2b
+ba
+7d
+79
+4d
+d9
+eb
+b4
+20
+bb
+c3
+6b
+2f
+7d
+b7
+e8
+99
+42
+5f
+fa
+94
+68
+a7
+1b
+ee
+5c
+42
+80
+ca
+f4
+a4
+92
+eb
+c0
+29
+e0
+ca
+f8
+f3
+4e
+fd
+4d
+f2
+e3
+03
+a0
+8b
+29
+c0
+c9
+81
+30
+41
+40
+24
+57
+96
+0f
+6d
+97
+e7
+7d
+fd
+96
+7c
+0e
+a6
+ee
+38
+59
+70
+f3
+0e
+d2
+e7
+73
+df
+4a
+0a
+23
+4b
+87
+1c
+9e
+ae
+8d
+96
+f7
+47
+36
+1a
+58
+20
+38
+7d
+d1
+ed
+21
+31
+3e
+32
+d5
+c9
+e4
+59
+66
+d1
+77
+a5
+c2
+f2
+03
+8c
+6e
+2b
+f4
+aa
+ad
+97
+a9
+3e
+88
+5e
+d4
+82
+9a
+46
+53
+68
+95
+5d
+81
+d2
+fd
+95
+b7
+57
+a0
+75
+95
+eb
+9e
+ea
+03
+f7
+e5
+e9
+a6
+dd
+62
+4b
+ad
+83
+0d
+a2
+b8
+0e
+83
+d9
+59
+4a
+07
+99
+bb
+88
+a6
+b4
+b2
+a2
+99
+99
+22
+2e
+25
+95
+2a
+f6
+ca
+85
+7c
+70
+4c
+54
+e8
+04
+e9
+9c
+c8
+4d
+19
+cb
+80
+4d
+7b
+9a
+69
+ea
+45
+5f
+a1
+bb
+70
+3b
+b1
+b1
+c9
+73
+ca
+98
+84
+db
+6a
+e4
+b5
+76
+05
+20
+a4
+fb
+a9
+0a
+9d
+63
+32
+74
+42
+d3
+57
+c1
+83
+0c
+47
+51
+b0
+cd
+76
+6a
+a8
+63
+91
+14
+11
+98
+62
+41
+7e
+7b
+70
+7c
+56
+1b
+60
+56
+1c
+23
+f4
+b7
+f9
+51
+02
+ad
+75
+96
+d3
+7f
+4a
+dc
+07
+70
+73
+14
+08
+f9
+3a
+4b
+00
+31
+ec
+40
+46
+1c
+a1
+a7
+f7
+b1
+95
+45
+d0
+ef
+e4
+79
+e9
+93
+7d
+52
+a9
+85
+a2
+25
+a5
+d8
+de
+ff
+4b
+d2
+fa
+e2
+0c
+98
+e3
+8a
+89
+a3
+c1
+1c
+e2
+a8
+0d
+b7
+c6
+32
+78
+7a
+74
+f4
+e2
+10
+de
+1f
+de
+5d
+86
+21
+f6
+06
+2a
+3b
+47
+21
+a3
+89
+a2
+fb
+eb
+5e
+5f
+b6
+bc
+71
+2e
+18
+de
+04
+86
+49
+40
+5e
+9d
+1a
+e8
+c3
+b1
+b0
+c1
+0c
+4a
+2f
+21
+b5
+5b
+72
+03
+be
+1c
+12
+4f
+46
+59
+ef
+9e
+57
+37
+49
+8d
+0f
+62
+c6
+2a
+ec
+85
+20
+49
+5d
+d7
+4c
+90
+19
+8f
+57
+49
+f2
+d8
+ff
+98
+33
+3e
+f9
+57
+08
+75
+06
+7a
+bc
+1a
+b4
+53
+5b
+9b
+a8
+12
+9e
+90
+98
+52
+59
+29
+88
+fe
+02
+af
+a9
+0e
+7e
+f1
+de
+17
+45
+8d
+bd
+f5
+57
+b3
+36
+91
+11
+04
+7e
+22
+ae
+ad
+9d
+a2
+97
+67
+7e
+3a
+8a
+90
+97
+65
+04
+80
+64
+ea
+11
+00
+e4
+b3
+75
+89
+04
+27
+be
+26
+5f
+84
+05
+e2
+aa
+e1
+ef
+21
+e5
+f8
+0c
+0b
+a5
+50
+7c
+65
+7a
+4f
+8b
+b8
+0b
+ff
+57
+a9
+13
+be
+1d
+01
+04
+1d
+e0
+a0
+fa
+4b
+1d
+1d
+a0
+0e
+54
+6d
+24
+36
+35
+30
+57
+a3
+7f
+bf
+a9
+05
+7f
+e5
+fe
+a0
+2a
+a6
+28
+f8
+e4
+df
+e6
+3d
+8c
+b7
+1c
+55
+4c
+8e
+8f
+b0
+e5
+99
+16
+8e
+e5
+e7
+f0
+6a
+d5
+b1
+8d
+85
+d8
+73
+05
+b0
+6d
+8b
+65
+1a
+ae
+72
+b6
+9c
+09
+32
+8e
+e5
+d7
+78
+c3
+ca
+51
+5c
+65
+51
+fc
+f2
+9f
+09
+ed
+2e
+13
+78
+88
+de
+cf
+a3
+f4
+7c
+58
+90
+f9
+cd
+f5
+0f
+9f
+1a
+77
+ba
+81
+d2
+5b
+4e
+df
+47
+d2
+f4
+9f
+16
+93
+ed
+f5
+51
+93
+57
+e7
+21
+83
+af
+8b
+97
+18
+04
+a9
+3e
+ad
+83
+48
+2e
+b6
+26
+6d
+58
+c8
+45
+f4
+3a
+1c
+3d
+a4
+e5
+5a
+df
+08
+9c
+be
+2a
+bc
+2d
+27
+1e
+e8
+22
+3b
+bd
+71
+56
+0b
+29
+f1
+7d
+45
+63
+fa
+16
+be
+9b
+fe
+4c
+c7
+3f
+14
+f3
+90
+51
+73
+cf
+a6
+91
+7f
+e1
+b1
+33
+82
+5a
+78
+f0
+4e
+3e
+26
+9c
+53
+11
+9d
+d6
+3f
+f7
+0c
+f6
+ff
+52
+67
+ad
+61
+f4
+e3
+b6
+77
+6b
+75
+e6
+23
+b6
+24
+69
+54
+ca
+85
+d7
+88
+6f
+ce
+74
+c5
+85
+02
+0d
+99
+62
+d9
+42
+04
+dc
+9a
+fc
+25
+83
+43
+25
+6e
+42
+74
+a4
+f3
+f0
+69
+fa
+f8
+59
+91
+be
+df
+51
+04
+67
+d9
+b8
+3d
+a3
+27
+f1
+76
+6e
+c0
+a2
+31
+31
+4d
+f9
+1d
+71
+70
+3d
+21
+b3
+fd
+d5
+dd
+ce
+d2
+48
+a8
+3c
+1e
+df
+b5
+96
+dd
+66
+50
+96
+41
+ae
+39
+6d
+36
+6b
+09
+e5
+4b
+23
+0c
+da
+2a
+b5
+91
+df
+04
+20
+b8
+76
+19
+c7
+19
+88
+bc
+74
+c5
+8c
+9b
+90
+f6
+b6
+13
+59
+34
+36
+bf
+5a
+2d
+50
+0a
+ba
+0d
+12
+12
+43
+3c
+78
+de
+a2
+96
+39
+46
+ee
+6c
+ca
+c3
+19
+54
+fe
+49
+21
+b9
+10
+56
+2c
+05
+e5
+42
+33
+68
+b0
+f5
+06
+ed
+27
+49
+da
+77
+32
+e3
+49
+09
+fe
+2c
+24
+cb
+78
+29
+c3
+6b
+99
+71
+f1
+d9
+7b
+2a
+cc
+8a
+5c
+1f
+1d
+64
+39
+15
+ff
+47
+e8
+4b
+e3
+c0
+97
+57
+a2
+e8
+69
+b0
+de
+81
+65
+e2
+55
+0f
+14
+ae
+77
+b5
+04
+60
+2e
+c3
+5b
+12
+11
+2a
+14
+bb
+b9
+42
+6b
+b4
+64
+08
+52
+53
+db
+08
+75
+13
+53
+47
+a6
+81
+63
+b2
+eb
+38
+17
+b8
+11
+37
+3b
+6b
+d0
+56
+e9
+c4
+ad
+26
+79
+53
+e4
+da
+e7
+b0
+91
+5e
+61
+12
+88
+4c
+ba
+a6
+2c
+26
+05
+11
+d1
+70
+d0
+af
+74
+2c
+c2
+f9
+c8
+63
+19
+ae
+6b
+90
+91
+da
+84
+80
+1d
+fd
+ff
+16
+23
+d5
+30
+09
+48
+a2
+37
+ea
+43
+bb
+1e
+19
+16
+2a
+43
+54
+b9
+30
+b7
+b1
+02
+4f
+87
+7a
+f0
+25
+52
+9c
+b1
+05
+a3
+98
+a3
+8a
+0f
+2c
+d3
+95
+de
+e8
+bd
+13
+5e
+37
+81
+92
+cb
+38
+ae
+3d
+07
+ce
+0c
+5a
+a8
+2f
+40
+77
+09
+fd
+cc
+c7
+ea
+10
+2a
+86
+42
+27
+57
+06
+2c
+ce
+23
+54
+c5
+8c
+9d
+d8
+92
+25
+86
+a5
+50
+a6
+f1
+f2
+48
+44
+e3
+a2
+1c
+24
+bf
+34
+7b
+49
+58
+66
+e7
+84
+fe
+ee
+c2
+67
+6c
+71
+18
+02
+d4
+5a
+f4
+e0
+7d
+09
+c5
+03
+3e
+08
+04
+1b
+ba
+b9
+73
+0f
+24
+40
+21
+e7
+fd
+a7
+3f
+4a
+e0
+75
+60
+26
+8c
+fb
+59
+b5
+8f
+89
+11
+cb
+e2
+99
+48
+25
+5f
+59
+02
+49
+7f
+65
+20
+54
+ec
+92
+78
+e9
+93
+b5
+f3
+fe
+78
+8f
+32
+03
+f8
+e5
+b1
+63
+8b
+3e
+24
+ea
+ca
+6a
+f8
+fe
+7f
+14
+81
+2a
+60
+14
+ef
+85
+f0
+33
+a2
+c4
+9f
+8e
+ae
+06
+2f
+6b
+c5
+c7
+d0
+f7
+10
+22
+2a
+2a
+4a
+0c
+04
+c3
+0a
+f7
+86
+c8
+0e
+45
+eb
+f4
+2c
+bb
+b0
+e3
+45
+ba
+d7
+62
+df
+01
+0e
+82
+13
+f6
+21
+1c
+47
+fe
+91
+00
+54
+a6
+24
+72
+25
+0f
+a3
+0e
+9a
+32
+c4
+73
+c3
+06
+1c
+f4
+6f
+f3
+1d
+4b
+8e
+ff
+43
+ab
+d2
+ba
+4e
+a0
+b5
+8c
+b9
+5e
+71
+02
+5e
+58
+56
+ba
+29
+bf
+99
+d1
+50
+4b
+a8
+1b
+44
+0c
+98
+08
+d2
+64
+04
+93
+1c
+57
+8d
+3b
+6c
+eb
+75
+9a
+38
+ef
+6f
+8d
+f2
+be
+2e
+53
+73
+f8
+3b
+71
+8b
+33
+94
+8a
+34
+cb
+89
+63
+7d
+db
+e5
+a3
+14
+2b
+8a
+dd
+51
+8e
+90
+81
+49
+c6
+cd
+eb
+88
+ac
+f6
+c2
+cc
+01
+ed
+4b
+e8
+5e
+80
+eb
+e0
+d4
+b6
+96
+d4
+08
+a1
+2b
+96
+b9
+f6
+b6
+90
+72
+9f
+df
+30
+a0
+00
+21
+73
+49
+c3
+82
+a9
+6b
+35
+ea
+31
+e1
+53
+96
+49
+41
+2a
+c9
+dd
+e7
+04
+a9
+9f
+a8
+d2
+b1
+5b
+27
+b4
+27
+6b
+92
+14
+ad
+1d
+ed
+bf
+07
+cc
+46
+e5
+4a
+8c
+80
+8b
+5e
+7d
+45
+54
+42
+49
+6c
+ea
+05
+04
+37
+59
+99
+de
+77
+4d
+6b
+cd
+44
+b5
+c4
+ed
+3a
+47
+eb
+d3
+32
+9e
+a1
+52
+e6
+28
+c5
+f1
+ba
+f7
+9c
+bd
+11
+ae
+22
+3d
+e8
+2d
+2e
+bc
+1e
+5b
+b4
+5b
+72
+5e
+4a
+e5
+5c
+a9
+a6
+7f
+55
+2c
+1a
+dd
+a6
+bf
+29
+9b
+42
+da
+9d
+26
+4e
+e5
+c5
+6a
+0b
+64
+b3
+28
+47
+63
+ce
+68
+72
+a9
+b4
+f2
+b3
+fb
+9a
+6a
+b6
+40
+b8
+46
+59
+01
+b4
+32
+d3
+04
+d3
+dd
+8d
+42
+5f
+cf
+9d
+ea
+67
+9b
+c5
+9f
+ea
+3e
+0c
+1e
+11
+3b
+ea
+0c
+57
+97
+19
+c1
+73
+2c
+89
+85
+92
+e3
+37
+67
+7a
+30
+66
+f4
+2e
+63
+06
+d5
+56
+98
+88
+51
+7d
+e3
+a3
+ba
+3f
+36
+92
+fa
+a6
+ab
+bf
+68
+bd
+e5
+fd
+94
+35
+8e
+7a
+1f
+f7
+59
+78
+3d
+4e
+14
+8d
+47
+37
+72
+af
+e2
+3d
+4a
+04
+91
+8b
+54
+ad
+99
+d2
+34
+98
+e2
+ed
+ed
+c0
+76
+28
+6d
+29
+a4
+2c
+bd
+27
+a7
+10
+6b
+bf
+c0
+f1
+0a
+91
+80
+88
+7f
+6e
+8b
+e9
+ec
+26
+0c
+9e
+ba
+7b
+f5
+fb
+04
+f3
+eb
+fb
+19
+83
+2c
+2f
+6a
+1a
+76
+58
+03
+a6
+41
+11
+50
+53
+9b
+35
+6f
+33
+5d
+63
+e5
+cb
+5a
+6c
+4d
+26
+94
+76
+b1
+11
+92
+40
+fc
+82
+85
+0f
+47
+ba
+b7
+69
+39
+86
+57
+5a
+ac
+9f
+5c
+00
+0e
+df
+76
+77
+8d
+02
+53
+cd
+ab
+1b
+ea
+95
+1d
+6c
+e3
+06
+9d
+8a
+d4
+77
+f4
+63
+c8
+cb
+94
+5a
+c4
+39
+4b
+d3
+1d
+66
+eb
+c7
+c4
+10
+20
+4e
+66
+42
+2d
+bb
+80
+2d
+bb
+76
+ba
+ba
+55
+07
+08
+f6
+ff
+e1
+b5
+2e
+8a
+61
+16
+13
+41
+ad
+7a
+f4
+18
+6d
+03
+0e
+a7
+68
+98
+9b
+bb
+9d
+b9
+2f
+a7
+8b
+96
+27
+69
+6f
+83
+10
+7c
+73
+b7
+9d
+21
+06
+ec
+fd
+34
+2b
+19
+ac
+a5
+60
+fa
+e3
+54
+9b
+4a
+bd
+a2
+1c
+fd
+c4
+eb
+b6
+24
+12
+ff
+72
+c4
+7d
+5e
+55
+68
+f3
+8e
+4e
+b9
+d1
+3f
+92
+c4
+b9
+df
+c4
+16
+62
+4e
+da
+1b
+5f
+ae
+00
+4d
+88
+51
+7a
+2d
+dd
+30
+c0
+cb
+1e
+8d
+45
+a6
+da
+02
+e1
+41
+08
+47
+a7
+30
+27
+4d
+c4
+11
+74
+e7
+0b
+05
+99
+45
+0d
+9f
+5a
+0d
+60
+02
+32
+cb
+24
+fb
+88
+36
+e2
+55
+c1
+58
+0d
+7b
+ca
+d7
+eb
+2a
+3b
+d3
+f1
+7d
+9b
+aa
+e1
+01
+22
+24
+e0
+8f
+f2
+62
+8b
+98
+30
+47
+cf
+4e
+49
+ae
+fb
+90
+98
+eb
+28
+d6
+d0
+49
+31
+b8
+ff
+db
+2c
+3a
+0d
+74
+f5
+95
+78
+b3
+c7
+55
+ca
+b4
+ec
+44
+4e
+13
+08
+70
+d3
+a6
+6d
+86
+fb
+14
+07
+28
+e0
+6a
+bc
+b0
+57
+dc
+05
+72
+b9
+c6
+cf
+51
+30
+70
+7f
+a3
+71
+75
+1f
+ed
+8a
+67
+f5
+0d
+54
+0d
+47
+b7
+1d
+e0
+35
+43
+37
+09
+fd
+55
+0b
+da
+91
+8c
+53
+f5
+76
+6c
+14
+1f
+36
+2f
+55
+3a
+6b
+e0
+7e
+38
+c0
+52
+86
+e5
+35
+8f
+f4
+67
+8d
+71
+f7
+dc
+a7
+eb
+6f
+fa
+dd
+28
+89
+c4
+c2
+59
+d2
+5f
+61
+cf
+a0
+57
+07
+e6
+47
+ef
+c0
+e9
+60
+3e
+fb
+70
+71
+8a
+94
+8d
+32
+ac
+c0
+21
+87
+22
+49
+72
+92
+06
+8e
+ae
+c8
+85
+73
+e0
+a4
+88
+46
+37
+dc
+13
+b5
+3a
+0a
+32
+19
+87
+a1
+d1
+b5
+e6
+c1
+d8
+29
+f9
+02
+8f
+51
+1b
+5d
+3a
+17
+1a
+55
+f6
+12
+e2
+94
+52
+ac
+0a
+34
+9a
+1f
+7c
+12
+ef
+de
+5b
+f5
+15
+ed
+38
+3b
+16
+ab
+a8
+f9
+ce
+28
+e1
+63
+80
+4a
+2d
+1d
+72
+fb
+65
+22
+02
+fc
+aa
+1d
+46
+a3
+85
+a9
+6d
+c5
+6c
+3e
+31
+e5
+5a
+ed
+46
+5e
+0f
+67
+9d
+18
+82
+87
+7d
+2f
+8c
+68
+d2
+d2
+79
+3c
+c1
+8c
+86
+5a
+82
+aa
+c0
+67
+3e
+f5
+3a
+a9
+ab
+15
+bb
+04
+f4
+57
+f0
+eb
+34
+ba
+7f
+f0
+2e
+b8
+12
+b1
+4b
+3c
+d1
+39
+fb
+98
+11
+0a
+5b
+13
+cb
+77
+b4
+92
+53
+0c
+0c
+ef
+45
+3d
+ed
+5a
+2d
+63
+44
+3f
+44
+9a
+f2
+16
+12
+5a
+6c
+23
+a2
+a4
+72
+72
+6a
+44
+02
+ac
+cd
+9c
+68
+b6
+ab
+66
+4f
+5d
+07
+95
+80
+bd
+ca
+f9
+5f
+45
+fe
+23
+a6
+12
+0a
+ee
+78
+e9
+89
+f2
+bb
+49
+df
+79
+3a
+d9
+84
+ba
+29
+f1
+64
+db
+43
+4b
+d8
+28
+3b
+48
+aa
+c2
+c4
+88
+86
+bd
+d1
+ab
+cd
+19
+61
+14
+f8
+09
+49
+62
+68
+1b
+f9
+4d
+f4
+d0
+65
+4d
+0f
+9f
+b6
+48
+61
+87
+d8
+9b
+c5
+9c
+f4
+89
+fc
+ae
+d7
+0b
+87
+92
+06
+0a
+3e
+d8
+f5
+0a
+78
+ae
+93
+5d
+95
+cd
+06
+17
+d2
+b6
+ef
+d7
+f8
+89
+70
+22
+b7
+c9
+a0
+c9
+0b
+75
+12
+e4
+49
+3b
+66
+2f
+99
+67
+54
+44
+0b
+3b
+68
+a2
+1e
+4d
+fd
+13
+c9
+d4
+49
+8c
+e8
+9f
+dd
+ef
+1b
+27
+84
+84
+69
+9a
+2b
+9e
+41
+4e
+ed
+4a
+ef
+98
+0e
+aa
+39
+89
+f3
+5b
+bb
+1f
+4f
+2b
+9c
+4b
+aa
+0c
+7e
+ba
+6f
+0c
+02
+b2
+7b
+90
+1a
+b4
+db
+4d
+df
+c1
+4f
+43
+68
+98
+88
+7a
+cf
+f3
+aa
+f1
+42
+df
+4f
+10
+a6
+94
+d8
+6f
+26
+91
+cd
+8d
+10
+9e
+22
+b3
+52
+42
+27
+3b
+34
+19
+98
+00
+29
+c3
+99
+cd
+1e
+89
+21
+0f
+ac
+9c
+6f
+ad
+ab
+ca
+64
+57
+c1
+5b
+93
+af
+5d
+5a
+6e
+53
+01
+48
+72
+cf
+59
+cc
+b7
+93
+5d
+0d
+a7
+b5
+63
+e0
+4c
+f6
+fc
+77
+f9
+e4
+18
+4f
+68
+de
+93
+c7
+4f
+0f
+9f
+8b
+d8
+0b
+69
+ae
+7c
+d3
+ea
+01
+28
+9c
+04
+d1
+b9
+65
+8b
+76
+a9
+cf
+80
+18
+3a
+43
+26
+11
+9d
+cd
+41
+b5
+1e
+6c
+e9
+22
+44
+e4
+56
+8f
+a5
+ee
+95
+e6
+39
+b8
+96
+7d
+39
+cc
+e9
+a4
+12
+8f
+3f
+48
+42
+11
+4c
+69
+fc
+5a
+a4
+94
+f4
+45
+9b
+e2
+96
+0c
+d0
+cb
+ff
+d0
+bd
+39
+f8
+53
+4b
+5c
+79
+68
+eb
+85
+c4
+38
+aa
+56
+44
+36
+0b
+2f
+2e
+71
+d6
+a6
+ce
+e2
+b6
+9c
+54
+0f
+a7
+46
+24
+a9
+a0
+f2
+ea
+77
+3c
+6f
+e4
+a7
+17
+be
+c3
+c4
+72
+48
+5c
+8a
+90
+a4
+a4
+ac
+8b
+32
+41
+6b
+04
+06
+e6
+4f
+aa
+72
+53
+8d
+26
+49
+17
+73
+c9
+d4
+a6
+9a
+b9
+0d
+0d
+6c
+dd
+1e
+aa
+b2
+ab
+b4
+8f
+cf
+cc
+7b
+28
+d9
+d6
+b2
+ad
+dc
+e8
+e7
+3b
+86
+96
+94
+c2
+3c
+eb
+75
+97
+dd
+1f
+41
+dc
+fb
+ef
+74
+88
+b7
+5c
+93
+5b
+de
+db
+9a
+b9
+91
+8a
+4d
+84
+91
+f3
+c3
+89
+e6
+5b
+f9
+6d
+4e
+96
+06
+9d
+a7
+88
+e0
+83
+d0
+43
+63
+c3
+ee
+bb
+2a
+46
+4d
+55
+bd
+7d
+d5
+da
+4a
+34
+50
+64
+a0
+19
+b7
+cf
+fe
+d7
+8b
+4c
+09
+f6
+27
+52
+da
+41
+5a
+99
+f2
+fd
+85
+03
+48
+1f
+5d
+a1
+a6
+18
+60
+4f
+a0
+c5
+c5
+09
+73
+eb
+92
+b8
+86
+d9
+3c
+96
+97
+d4
+cf
+a9
+d2
+16
+d3
+b1
+b0
+a4
+b1
+f9
+d2
+32
+ca
+b4
+8e
+41
+39
+df
+0b
+ce
+d0
+2c
+c2
+be
+ec
+ed
+25
+01
+39
+31
+d9
+04
+0d
+1b
+c4
+ce
+9b
+16
+d9
+41
+41
+1b
+9f
+81
+f6
+c0
+97
+9a
+c1
+48
+68
+86
+e7
+64
+54
+21
+6d
+ee
+af
+9b
+cb
+63
+e3
+1c
+1f
+ff
+35
+52
+9d
+48
+ba
+bb
+f9
+8b
+b4
+5f
+b9
+07
+b2
+0b
+4d
+67
+a1
+db
+40
+e2
+51
+29
+83
+0d
+b4
+b5
+de
+22
+c9
+f4
+fa
+a9
+c5
+76
+23
+cb
+8b
+51
+cc
+ff
+c7
+83
+b1
+46
+08
+ee
+97
+80
+a7
+32
+50
+7e
+5f
+06
+d8
+d3
+c6
+aa
+b2
+37
+df
+a8
+6c
+2b
+75
+f9
+3a
+c8
+3d
+10
+60
+3c
+ba
+4e
+83
+5d
+47
+c0
+b7
+d3
+5c
+7e
+20
+cb
+ec
+a5
+50
+e8
+63
+7d
+8b
+93
+32
+18
+32
+27
+f3
+ba
+a2
+17
+38
+03
+30
+aa
+0f
+12
+00
+d2
+d8
+a7
+00
+b9
+81
+be
+a1
+80
+34
+12
+03
+c8
+4c
+39
+6a
+96
+8a
+71
+22
+ee
+f0
+b7
+85
+51
+ba
+a5
+64
+56
+19
+21
+35
+ac
+1a
+6b
+8a
+7f
+af
+da
+fd
+ed
+39
+75
+e8
+6d
+ac
+8a
+4c
+89
+c2
+75
+e0
+98
+cf
+2a
+c8
+9e
+2f
+88
+b6
+d1
+2d
+d8
+f8
+50
+8d
+e4
+ab
+ea
+42
+75
+44
+26
+29
+b3
+e3
+19
+0f
+0c
+23
+b6
+e4
+51
+fc
+aa
+66
+ae
+d0
+c5
+ad
+3a
+f6
+bc
+e6
+91
+1a
+fc
+ee
+57
+3e
+1a
+e6
+d3
+44
+9e
+6d
+77
+24
+c6
+77
+3d
+c2
+cf
+e6
+0f
+e8
+36
+6f
+45
+19
+80
+a6
+ab
+6e
+d2
+3d
+e5
+30
+bc
+6d
+b3
+dc
+e6
+9b
+f5
+6f
+b8
+79
+e8
+9e
+3f
+bc
+e4
+8d
+ed
+1c
+e9
+37
+74
+62
+74
+5d
+63
+0a
+f4
+cf
+0c
+6c
+14
+53
+6f
+91
+06
+d1
+b9
+16
+4a
+31
+27
+e8
+8b
+8a
+c4
+35
+24
+3b
+ac
+fa
+89
+c4
+47
+f3
+b4
+2e
+3f
+e8
+f8
+61
+f1
+8d
+f3
+a5
+e7
+7f
+d6
+7e
+a8
+04
+fa
+b3
+df
+3c
+fb
+36
+35
+9a
+6a
+b1
+5a
+17
+eb
+94
+af
+78
+d2
+4a
+c8
+ae
+f3
+1c
+da
+00
+7f
+ad
+2a
+bb
+fa
+68
+c2
+c9
+a0
+74
+d1
+eb
+7d
+70
+57
+96
+89
+64
+1c
+3b
+d6
+41
+56
+70
+bc
+26
+f0
+7f
+d0
+cc
+67
+73
+86
+ec
+ab
+28
+eb
+03
+bf
+fa
+4a
+8c
+19
+be
+23
+49
+ef
+75
+0c
+06
+0e
+1f
+4a
+4f
+6f
+21
+61
+d9
+75
+3d
+06
+92
+d8
+54
+f3
+ba
+06
+b7
+0d
+ff
+b2
+69
+d7
+43
+e0
+6a
+60
+71
+bb
+58
+92
+18
+ce
+8d
+fd
+ec
+97
+1c
+95
+1c
+93
+4d
+be
+ab
+f4
+7a
+59
+c5
+77
+24
+20
+26
+5a
+f0
+52
+bc
+9c
+bf
+f5
+e2
+4c
+da
+6c
+b6
+8d
+7a
+6c
+8f
+2f
+0d
+7f
+1a
+53
+22
+e7
+84
+da
+42
+70
+f4
+63
+92
+13
+93
+63
+1a
+54
+fb
+32
+92
+24
+80
+9e
+8d
+ac
+e4
+ef
+e3
+96
+d8
+1b
+07
+bd
+bf
+e4
+4d
+08
+0b
+c6
+c8
+fa
+4d
+40
+d5
+a8
+16
+9f
+2d
+a0
+c4
+af
+29
+3c
+51
+50
+91
+7b
+b4
+12
+42
+56
+65
+18
+da
+27
+f0
+a4
+ae
+02
+cd
+51
+81
+9c
+cf
+7d
+9a
+d5
+23
+0b
+3e
+bc
+1b
+fa
+99
+43
+c7
+9a
+8e
+26
+3b
+67
+79
+01
+9d
+0c
+79
+da
+6c
+b1
+23
+b1
+30
+ce
+3a
+b7
+99
+aa
+fe
+4c
+b9
+bb
+49
+53
+21
+07
+54
+d3
+0c
+4d
+8d
+22
+79
+e1
+18
+11
+71
+6b
+0b
+d9
+47
+bb
+fe
+d4
+68
+ba
+42
+0d
+8a
+23
+4d
+a7
+dd
+9c
+fa
+5e
+50
+33
+63
+ca
+af
+b1
+ad
+77
+9d
+86
+ca
+32
+92
+6c
+b6
+81
+53
+1d
+2d
+bc
+e7
+61
+40
+41
+c2
+71
+0f
+49
+d2
+3e
+db
+af
+28
+a4
+84
+a5
+c4
+1a
+98
+99
+d7
+03
+37
+c6
+31
+31
+7e
+87
+7b
+97
+fd
+ca
+a9
+87
+e6
+85
+64
+bc
+64
+f7
+e0
+98
+7c
+5a
+67
+d4
+6b
+7f
+47
+b4
+02
+2c
+35
+24
+6e
+d5
+c0
+d4
+14
+10
+d9
+80
+14
+ad
+09
+1d
+a4
+16
+06
+30
+22
+d6
+e2
+74
+f4
+6a
+1f
+83
+9c
+3f
+8f
+33
+1a
+f4
+4b
+de
+06
+20
+ab
+c3
+e3
+7a
+b4
+c2
+47
+a2
+af
+68
+8a
+ab
+ca
+e5
+60
+d9
+17
+83
+8a
+72
+e2
+23
+ed
+17
+4d
+50
+2c
+2f
+9b
+9f
+eb
+16
+08
+18
+43
+37
+20
+2a
+4c
+3f
+c0
+59
+c0
+ed
+b4
+96
+fd
+0e
+89
+86
+f6
+fc
+35
+43
+58
+fa
+28
+44
+30
+57
+01
+78
+94
+14
+5e
+bd
+62
+69
+4d
+6b
+a5
+88
+0b
+b2
+ef
+64
+c3
+dd
+d7
+2f
+f3
+8a
+9e
+8d
+c1
+6a
+d8
+c3
+26
+cc
+7a
+6d
+06
+d9
+24
+73
+b0
+47
+3b
+a2
+73
+af
+b9
+2d
+22
+4c
+37
+99
+d6
+c0
+5c
+94
+de
+12
+f5
+70
+32
+53
+f2
+4f
+22
+47
+97
+1f
+7e
+9c
+7e
+d5
+6c
+99
+d1
+5a
+bd
+21
+31
+ae
+61
+9b
+5d
+23
+f9
+86
+b7
+0e
+88
+05
+fa
+74
+6b
+07
+09
+10
+49
+89
+fb
+e6
+e1
+9d
+0e
+72
+53
+89
+4d
+e5
+d8
+f3
+8b
+1d
+ac
+5c
+2f
+de
+d4
+4e
+5c
+80
+57
+10
+32
+72
+07
+13
+68
+b7
+6b
+a7
+c8
+ad
+5e
+e6
+9e
+9d
+b2
+5d
+8a
+a6
+96
+a5
+e5
+3a
+79
+79
+b3
+ce
+13
+8f
+54
+92
+79
+48
+ca
+3a
+43
+49
+98
+05
+84
+b8
+2f
+82
+7c
+f1
+d6
+2d
+62
+7e
+6e
+45
+31
+7c
+32
+67
+0f
+d0
+fb
+51
+a7
+cf
+89
+74
+5a
+1d
+1b
+dc
+46
+86
+20
+89
+e8
+08
+00
+e7
+34
+4e
+3e
+fd
+d5
+62
+2c
+71
+13
+00
+0e
+70
+ba
+f6
+71
+7c
+b7
+c3
+f8
+30
+3e
+7b
+70
+44
+c1
+7c
+d5
+27
+47
+a2
+8f
+2e
+86
+da
+1c
+93
+1d
+9d
+55
+a5
+39
+28
+1b
+9d
+98
+c8
+c7
+3e
+c3
+06
+64
+f9
+a3
+f3
+81
+8c
+aa
+97
+8d
+b0
+7f
+49
+15
+ff
+93
+4e
+15
+43
+8c
+2c
+06
+f2
+83
+e7
+dc
+ab
+e8
+dc
+25
+a6
+63
+ff
+01
+95
+f3
+28
+53
+20
+f2
+01
+67
+0c
+2c
+48
+02
+78
+ad
+ee
+9b
+8f
+12
+4a
+e5
+2f
+b1
+d0
+51
+79
+96
+ad
+7f
+df
+15
+0b
+57
+fa
+bd
+2a
+2a
+1b
+37
+4f
+e6
+4e
+51
+94
+7f
+66
+38
+68
+81
+e8
+a6
+58
+80
+78
+dd
+1d
+18
+6e
+bb
+e5
+8d
+6c
+64
+ba
+59
+01
+5e
+34
+ef
+a4
+1a
+08
+42
+aa
+bc
+40
+3b
+9d
+e6
+db
+7b
+e3
+a5
+12
+15
+a2
+f0
+59
+7c
+4d
+31
+26
+f8
+1d
+a7
+1e
+ae
+6b
+1e
+5d
+b9
+7b
+42
+d5
+93
+d2
+7a
+f2
+32
+04
+7a
+bf
+3a
+76
+82
+8c
+a1
+46
+6a
+e5
+13
+46
+e3
+74
+e2
+62
+1c
+8e
+40
+de
+20
+36
+1f
+69
+25
+55
+06
+96
+c5
+55
+56
+fd
+67
+e0
+6b
+fb
+8b
+de
+16
+09
+20
+dd
+ba
+8d
+c8
+bf
+7b
+86
+b5
+4f
+cd
+b1
+7a
+f6
+eb
+6b
+45
+61
+51
+49
+1f
+c6
+2c
+fe
+60
+a2
+d6
+b1
+6e
+ef
+ea
+b1
+48
+79
+87
+c6
+d0
+97
+a3
+8f
+ff
+d5
+14
+08
+46
+2e
+6c
+1c
+0d
+62
+1e
+26
+e4
+52
+03
+9a
+31
+17
+39
+c3
+a5
+be
+3f
+4b
+f1
+d9
+f6
+7d
+07
+f9
+cd
+5a
+24
+25
+8c
+4b
+0b
+5a
+94
+0f
+23
+5e
+51
+71
+fd
+28
+e8
+d1
+f2
+56
+8e
+15
+ec
+1b
+55
+b5
+b9
+bc
+67
+c3
+6c
+5f
+47
+71
+1a
+63
+bd
+59
+19
+d9
+c4
+8b
+fa
+73
+76
+24
+65
+f4
+f6
+e2
+32
+98
+31
+5a
+c2
+39
+73
+69
+c8
+61
+32
+84
+b7
+b8
+71
+de
+17
+a4
+34
+dd
+4e
+54
+c3
+c3
+5d
+06
+76
+60
+f3
+8f
+79
+e4
+15
+da
+83
+54
+d5
+99
+f7
+35
+df
+f9
+b7
+c7
+a9
+e0
+4e
+3f
+5f
+6e
+60
+37
+2d
+25
+c5
+16
+34
+6d
+57
+95
+6d
+7f
+60
+0a
+76
+82
+91
+4a
+36
+94
+5a
+b6
+d5
+0d
+ae
+eb
+bb
+0a
+8c
+7a
+66
+47
+57
+f1
+25
+de
+0f
+e3
+57
+ba
+f4
+f3
+c7
+2f
+60
+09
+f8
+53
+d5
+cf
+a7
+c3
+46
+81
+94
+bd
+74
+bf
+a3
+62
+22
+01
+ed
+f7
+3e
+2d
+5d
+d1
+40
+c7
+32
+d2
+6b
+aa
+14
+63
+10
+dc
+00
+aa
+2e
+a8
+51
+7e
+ba
+e4
+ec
+36
+ef
+08
+63
+46
+36
+ad
+29
+9f
+59
+d8
+6f
+76
+20
+e2
+24
+ce
+37
+88
+16
+8e
+ec
+98
+e2
+93
+83
+8e
+42
+cf
+c8
+0b
+5c
+2c
+a3
+22
+5b
+8e
+7f
+23
+f1
+d1
+fd
+4c
+0c
+51
+7e
+5f
+f9
+3a
+4a
+d3
+35
+29
+f5
+99
+8d
+28
+30
+e4
+e8
+a7
+37
+36
+7d
+d6
+f3
+fc
+bd
+c7
+86
+c9
+b9
+b3
+ce
+6b
+c6
+b5
+01
+7b
+03
+d9
+15
+3a
+8a
+98
+95
+bb
+1c
+be
+7d
+2b
+36
+3d
+06
+28
+f2
+bf
+f9
+1c
+d3
+75
+4a
+28
+b4
+36
+b4
+e6
+9e
+a2
+9c
+7d
+cd
+16
+03
+88
+12
+01
+23
+bd
+d6
+0e
+0e
+5a
+3a
+dc
+fd
+0e
+52
+13
+48
+b4
+36
+37
+da
+65
+4b
+5d
+4d
+c1
+5e
+eb
+5d
+ff
+ad
+17
+76
+c3
+c3
+3f
+35
+12
+35
+db
+21
+ab
+a4
+59
+a8
+b0
+5b
+6a
+9a
+39
+1f
+5c
+1c
+d4
+5c
+3b
+4b
+1f
+e7
+d4
+f5
+9c
+53
+f7
+e2
+5a
+5d
+31
+99
+4d
+65
+61
+84
+f2
+c8
+45
+31
+12
+77
+f8
+65
+1f
+3c
+0d
+83
+37
+0b
+ec
+cb
+6c
+79
+2b
+8f
+52
+e7
+c3
+b4
+c7
+d3
+d1
+03
+99
+8e
+9c
+49
+01
+95
+09
+e3
+84
+ee
+47
+d5
+01
+e4
+87
+46
+5e
+d9
+c9
+bb
+1f
+01
+a4
+35
+6c
+6b
+5d
+94
+94
+52
+30
+00
+a8
+b5
+2c
+f6
+70
+9c
+71
+d2
+5d
+27
+90
+d9
+96
+14
+56
+70
+14
+86
+20
+00
+a5
+3d
+45
+8a
+b9
+e2
+45
+80
+3c
+d4
+fd
+54
+9a
+0b
+f0
+c7
+c2
+ad
+6c
+9d
+05
+bd
+9a
+ab
+f0
+bd
+72
+46
+58
+77
+e5
+a9
+02
+6c
+c0
+50
+74
+1c
+25
+3c
+43
+03
+6f
+a7
+8a
+92
+31
+78
+76
+3f
+39
+91
+bc
+16
+d4
+bf
+84
+bc
+5c
+0d
+eb
+77
+e3
+41
+10
+25
+81
+bc
+cd
+b5
+cf
+9f
+ce
+15
+6a
+14
+57
+fd
+65
+27
+f5
+61
+77
+84
+04
+66
+70
+43
+89
+15
+1a
+68
+3b
+a4
+d4
+b5
+a7
+7e
+95
+f9
+6b
+f4
+15
+4c
+7a
+40
+d9
+24
+36
+71
+54
+ad
+82
+78
+19
+3a
+ed
+2a
+b4
+1a
+39
+34
+d0
+04
+85
+ae
+57
+80
+e9
+68
+b4
+68
+a7
+a1
+da
+3d
+78
+74
+d4
+14
+2c
+ba
+9c
+77
+31
+a1
+b5
+d9
+c8
+86
+94
+b9
+13
+77
+4a
+ed
+2e
+5a
+e8
+f7
+cc
+26
+8e
+61
+7d
+a4
+37
+74
+0d
+fb
+8d
+5b
+e4
+a8
+af
+52
+d4
+5a
+49
+64
+1d
+cc
+21
+21
+e4
+5f
+69
+e0
+54
+f6
+54
+e6
+9c
+a5
+f5
+3b
+aa
+eb
+f4
+aa
+f4
+27
+e0
+1b
+f0
+ad
+68
+c2
+09
+d1
+1c
+03
+e0
+3b
+1a
+7f
+a2
+58
+af
+c3
+c1
+63
+aa
+2a
+87
+df
+14
+9b
+68
+37
+a0
+b2
+bd
+06
+47
+4b
+f3
+5f
+a9
+92
+4c
+a8
+21
+b5
+b8
+0b
+85
+32
+75
+6a
+c3
+c5
+3c
+17
+ae
+1c
+3a
+fc
+31
+b7
+49
+97
+d4
+4f
+7c
+0c
+ec
+60
+33
+47
+6b
+9e
+49
+2b
+45
+58
+ae
+81
+b2
+c6
+5f
+0d
+cf
+c7
+b1
+32
+e2
+65
+d6
+8f
+82
+81
+60
+c0
+62
+8a
+8c
+7f
+5b
+8f
+3d
+ce
+5c
+e4
+17
+0b
+23
+ef
+e9
+a5
+eb
+3f
+5f
+cc
+98
+7b
+77
+d5
+60
+8f
+b4
+11
+8e
+fa
+52
+b5
+99
+01
+cb
+11
+3e
+35
+af
+e5
+55
+e5
+2a
+c8
+d2
+f2
+ad
+41
+4a
+dc
+d5
+cf
+a4
+0e
+98
+99
+1c
+3d
+0d
+56
+56
+9d
+5f
+3e
+db
+52
+8c
+85
+39
+a8
+77
+2b
+e8
+3c
+de
+ea
+fd
+c9
+6a
+d9
+d5
+3a
+a9
+56
+2d
+ca
+d1
+dc
+16
+25
+b5
+7a
+cb
+8f
+3c
+6f
+d8
+99
+a0
+7f
+84
+4c
+c0
+69
+94
+c3
+df
+bb
+e4
+87
+0b
+31
+77
+8a
+55
+11
+d4
+25
+28
+c3
+6d
+db
+99
+75
+70
+81
+9b
+14
+6c
+19
+4a
+09
+20
+1e
+a7
+28
+d5
+bb
+46
+3c
+f8
+23
+c4
+77
+e4
+aa
+d3
+82
+0d
+a1
+73
+05
+de
+1e
+5e
+ee
+77
+21
+b1
+c3
+5f
+d1
+0b
+fb
+d9
+0d
+ba
+15
+e5
+07
+7c
+af
+bc
+0f
+cf
+5e
+ec
+c4
+10
+26
+48
+4f
+71
+5d
+a5
+ad
+6d
+28
+2e
+75
+8b
+17
+7f
+51
+f2
+55
+01
+f6
+be
+db
+9d
+60
+6c
+a2
+14
+9f
+7d
+72
+94
+7a
+c7
+8f
+30
+3e
+98
+93
+2f
+fc
+c7
+49
+50
+b7
+f4
+0e
+4e
+46
+3c
+47
+54
+1c
+bd
+de
+fa
+a4
+9c
+c5
+2b
+79
+de
+fe
+48
+36
+bc
+26
+fc
+62
+18
+1a
+e0
+2f
+0d
+92
+9c
+4b
+62
+d4
+7f
+b9
+98
+ab
+73
+0e
+a2
+bb
+04
+94
+c3
+18
+82
+1e
+6f
+7e
+56
+6b
+95
+90
+80
+f4
+8a
+e6
+4e
+d5
+4c
+e8
+56
+44
+e7
+63
+f1
+4b
+9a
+ff
+f7
+9a
+98
+8c
+f2
+50
+ea
+45
+cf
+3c
+91
+f3
+a1
+c9
+c6
+ae
+12
+c6
+2e
+bf
+e1
+78
+5a
+eb
+ff
+4d
+12
+20
+9e
+46
+39
+1b
+db
+8d
+ee
+8a
+4e
+aa
+8e
+47
+ca
+49
+f2
+c9
+53
+3c
+1c
+9c
+65
+f6
+af
+0b
+77
+91
+f6
+50
+c7
+af
+b3
+99
+f5
+80
+c4
+9b
+1c
+33
+41
+ee
+9a
+88
+1f
+9b
+e5
+ef
+49
+80
+f2
+f1
+33
+17
+13
+36
+be
+f9
+d4
+35
+4a
+26
+c5
+4f
+b8
+87
+57
+25
+63
+a0
+ac
+72
+fe
+09
+a5
+ce
+7e
+f6
+01
+cd
+31
+9b
+9a
+97
+9e
+1d
+ba
+2e
+99
+1b
+29
+24
+b9
+25
+70
+e4
+fe
+91
+11
+49
+94
+25
+ff
+27
+5e
+8e
+e4
+36
+3d
+da
+a2
+02
+04
+49
+4e
+c1
+62
+a8
+db
+97
+0b
+50
+e7
+96
+96
+ed
+f3
+4e
+5a
+c3
+30
+87
+2b
+b3
+53
+c9
+fd
+e4
+c8
+86
+4b
+42
+2b
+e8
+46
+62
+16
+e6
+36
+63
+c9
+2c
+00
+19
+88
+80
+9c
+71
+20
+ec
+7f
+b8
+25
+3a
+e7
+0e
+da
+c8
+4c
+b6
+18
+14
+21
+e8
+66
+e3
+80
+30
+4d
+b0
+c3
+73
+84
+61
+16
+f6
+b8
+24
+1b
+cf
+b1
+89
+b6
+2e
+79
+aa
+40
+da
+e5
+68
+51
+62
+18
+a4
+cf
+7b
+26
+72
+b1
+73
+85
+05
+06
+88
+59
+95
+18
+38
+25
+af
+05
+dd
+8e
+17
+c6
+35
+d4
+ff
+34
+66
+ef
+9a
+cb
+7f
+fd
+98
+a7
+6f
+ff
+53
+e8
+8b
+c2
+90
+f4
+d8
+bb
+05
+9c
+d4
+88
+a0
+03
+dd
+8d
+25
+e5
+5a
+c4
+51
+c8
+ac
+bb
+07
+d4
+ad
+b1
+87
+a1
+bf
+91
+ca
+d2
+3b
+18
+c0
+de
+d1
+fc
+7f
+4d
+2c
+d9
+58
+13
+10
+ad
+95
+70
+47
+d9
+6d
+63
+c7
+ca
+a4
+6e
+d7
+ea
+24
+af
+74
+dc
+a8
+f9
+d1
+c5
+a1
+0c
+bd
+23
+75
+48
+4f
+37
+e6
+a2
+79
+1d
+2a
+d9
+6b
+c8
+55
+2d
+c8
+07
+bf
+13
+65
+a8
+c3
+c7
+6f
+e2
+e8
+63
+76
+4a
+af
+c1
+16
+b0
+43
+e4
+12
+99
+2d
+6e
+b4
+55
+a1
+7d
+da
+50
+ab
+10
+51
+fe
+e7
+06
+68
+34
+03
+93
+2c
+cc
+85
+41
+ed
+a8
+d6
+33
+31
+de
+8b
+b8
+22
+1b
+f1
+ce
+56
+e5
+36
+29
+11
+1a
+f6
+84
+bf
+af
+83
+1e
+ee
+32
+34
+65
+70
+32
+a1
+f3
+e4
+71
+06
+25
+b6
+7e
+d5
+49
+f5
+01
+58
+06
+89
+f7
+96
+5f
+ac
+ea
+35
+e6
+59
+54
+7f
+46
+6f
+d3
+38
+56
+07
+63
+92
+b0
+29
+e9
+bb
+f9
+bc
+3f
+52
+c5
+4e
+5d
+72
+74
+23
+4e
+0d
+b2
+49
+bc
+31
+41
+48
+ce
+fd
+34
+10
+7d
+5a
+fe
+37
+5e
+d1
+5e
+7b
+4d
+f6
+c0
+b9
+80
+43
+3d
+27
+c1
+7b
+d6
+94
+26
+4a
+24
+1e
+d5
+70
+59
+5b
+fa
+37
+00
+2a
+ff
+e0
+66
+20
+2a
+02
+73
+01
+e2
+16
+fa
+28
+58
+de
+1d
+5b
+db
+a2
+7b
+b8
+c6
+85
+f9
+63
+17
+ce
+2a
+c9
+f7
+0f
+d5
+64
+28
+b4
+62
+0d
+93
+b3
+7e
+e3
+fe
+e9
+d9
+e8
+a1
+db
+a4
+bc
+e0
+37
+8c
+c2
+dd
+ed
+59
+71
+00
+78
+6d
+19
+c9
+f6
+1b
+39
+0b
+70
+fe
+fb
+7b
+ce
+7a
+b1
+88
+a0
+f9
+98
+26
+18
+f6
+a2
+8f
+36
+f0
+ff
+45
+c7
+6f
+9e
+4c
+22
+aa
+29
+f6
+07
+05
+04
+db
+30
+73
+d2
+9c
+cc
+33
+18
+e8
+91
+49
+b6
+c2
+0d
+cd
+1d
+f5
+92
+84
+a9
+0b
+b1
+55
+9c
+60
+07
+e8
+20
+ea
+f0
+5b
+d9
+a4
+1a
+6d
+1c
+67
+2b
+9c
+8d
+c1
+fa
+7c
+35
+45
+ce
+cc
+65
+47
+1a
+92
+0d
+7a
+b8
+ca
+71
+4c
+b7
+7d
+a0
+03
+70
+95
+5b
+ad
+35
+c8
+5e
+2a
+db
+e5
+c0
+e0
+8e
+9f
+fe
+40
+c3
+1b
+d1
+2d
+51
+3e
+57
+39
+81
+24
+e9
+de
+e3
+74
+02
+e1
+5d
+ec
+55
+15
+55
+c5
+70
+41
+58
+e5
+6c
+2d
+d0
+bb
+d5
+06
+5e
+24
+76
+b3
+b8
+25
+25
+0a
+39
+1d
+c5
+59
+ef
+ac
+c8
+c6
+9b
+1a
+2b
+c0
+df
+2a
+e5
+9f
+20
+eb
+6f
+bc
+5b
+e4
+6b
+39
+32
+5c
+33
+71
+54
+71
+37
+8d
+58
+c6
+10
+74
+cc
+5e
+12
+06
+ee
+9f
+f1
+73
+9d
+0c
+2c
+24
+66
+9c
+02
+2b
+04
+2b
+c4
+98
+cd
+c8
+7c
+8c
+be
+96
+7b
+33
+23
+c0
+71
+7f
+e5
+34
+cd
+59
+9a
+a1
+15
+18
+17
+df
+77
+3a
+b3
+28
+91
+77
+53
+21
+c7
+79
+3f
+72
+28
+3f
+ba
+f0
+69
+23
+40
+12
+55
+02
+7a
+fe
+07
+44
+22
+c8
+22
+e3
+2c
+7d
+51
+49
+5e
+29
+38
+1f
+8f
+3c
+c3
+6f
+ac
+25
+23
+f9
+d8
+68
+66
+a4
+01
+ef
+ea
+21
+d1
+c1
+19
+19
+b3
+cb
+dc
+f2
+93
+6d
+f9
+4c
+9d
+f6
+ec
+05
+12
+50
+1a
+62
+cc
+02
+3e
+73
+44
+8a
+25
+0c
+8c
+9e
+13
+90
+d9
+c9
+04
+98
+9d
+44
+5d
+60
+f9
+50
+73
+f5
+95
+f1
+78
+a2
+61
+b1
+6f
+49
+30
+51
+f3
+a0
+0e
+ae
+2e
+62
+ab
+2b
+b7
+02
+9e
+49
+dd
+4a
+8b
+cf
+59
+3f
+03
+47
+3b
+fd
+7a
+83
+03
+f3
+f1
+2b
+1d
+a1
+50
+88
+06
+fa
+f2
+cc
+ad
+da
+00
+c4
+9d
+35
+ee
+41
+84
+37
+5e
+c0
+ac
+72
+d3
+ee
+b9
+42
+eb
+df
+9b
+67
+43
+eb
+06
+58
+65
+d4
+83
+81
+b7
+12
+4c
+f9
+06
+5b
+34
+40
+5e
+92
+51
+ae
+ea
+5d
+52
+7a
+64
+9f
+93
+96
+cc
+5e
+91
+a5
+4a
+30
+30
+67
+1c
+60
+ff
+53
+3b
+4f
+07
+aa
+44
+e7
+5c
+46
+cc
+2f
+8f
+1f
+8c
+a8
+03
+b9
+74
+25
+da
+72
+fd
+fe
+be
+fc
+e2
+d2
+fb
+ec
+89
+50
+a1
+24
+a2
+ca
+d0
+aa
+2c
+a0
+25
+b4
+86
+78
+09
+4e
+c1
+e2
+dc
+37
+a2
+e9
+e9
+d7
+ca
+3f
+9c
+64
+e1
+28
+15
+1d
+77
+23
+8b
+4f
+9c
+e1
+61
+28
+94
+2a
+c9
+15
+6e
+ee
+8e
+04
+4f
+1e
+a5
+20
+56
+74
+17
+91
+aa
+c1
+30
+2d
+5a
+dd
+df
+80
+31
+ed
+e7
+c6
+d1
+bc
+d5
+3f
+57
+22
+08
+38
+a3
+97
+43
+4a
+0b
+6e
+7d
+83
+67
+1e
+18
+84
+6f
+ad
+67
+d9
+f4
+d6
+6f
+c8
+91
+97
+2e
+7c
+09
+7f
+47
+64
+ee
+6f
+21
+ac
+b6
+4a
+b7
+09
+3a
+75
+5d
+31
+3f
+8d
+90
+b3
+a6
+7b
+64
+00
+95
+56
+c3
+fc
+63
+51
+6a
+29
+a9
+93
+94
+a0
+36
+cf
+cb
+c7
+78
+4c
+2a
+9a
+ba
+fa
+75
+6c
+6d
+3e
+51
+4d
+d0
+e1
+9b
+fe
+00
+f1
+5e
+14
+03
+1a
+60
+08
+7a
+05
+8b
+e9
+11
+96
+01
+14
+1f
+27
+bf
+58
+c7
+22
+df
+fc
+1a
+bb
+bf
+0a
+35
+f5
+19
+2f
+48
+cb
+68
+e3
+9b
+b1
+17
+72
+eb
+56
+81
+4d
+58
+e3
+20
+48
+00
+d6
+5a
+19
+0d
+53
+ef
+53
+19
+05
+f2
+4e
+7c
+24
+11
+30
+92
+24
+a7
+16
+4d
+aa
+55
+40
+00
+00
+40
+05
+00
+33
+07
+20
+01
+00
+00
+f4
+7f
+a5
+3e
+02
+80
+c2
+00
+11
+00
+00
+04
+00
+00
+02
+00
+20
+00
+20
+3c
+00
+00
+40
+04
+00
+00
+10
+04
+60
+00
+00
+00
+00
+30
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+13
+47
+04
+09
+72
+00
+08
+00
+00
+0c
+aa
+55
+01
+00
+cb
+43
+0f
+aa
+55
+01
+00
+ba
+4a
+01
+aa
+55
+01
+00
+ec
+44
+ff
+aa
+55
+01
+00
+eb
+44
+1e
+aa
+55
+03
+00
+ee
+44
+01
+0b
+4a
+aa
+55
+01
+00
+0d
+4a
+ff
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+d2
+45
+07
+aa
+55
+02
+00
+f0
+45
+83
+47
+aa
+55
+02
+00
+3f
+46
+85
+90
+aa
+55
+02
+00
+42
+46
+75
+80
+aa
+55
+01
+00
+41
+46
+63
+aa
+55
+01
+00
+27
+46
+7d
+aa
+55
+01
+00
+bd
+4b
+ff
+aa
+55
+09
+00
+c1
+4b
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+f1
+44
+33
+11
+3b
+55
+51
+a1
+aa
+55
+01
+00
+89
+45
+02
+aa
+55
+05
+00
+e3
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+b9
+45
+00
+aa
+55
+01
+00
+40
+47
+02
+aa
+55
+01
+00
+ca
+45
+00
+aa
+55
+02
+00
+8b
+45
+c0
+12
+aa
+55
+01
+00
+3e
+46
+94
+aa
+55
+03
+00
+af
+45
+00
+48
+60
+aa
+55
+02
+00
+1d
+46
+0a
+00
+aa
+55
+02
+00
+1b
+46
+50
+00
+aa
+55
+02
+00
+23
+47
+32
+00
+aa
+55
+01
+00
+f4
+46
+02
+aa
+55
+08
+00
+c0
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+20
+aa
+55
+01
+00
+6b
+49
+20
+aa
+55
+06
+00
+db
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+93
+43
+07
+aa
+55
+02
+00
+be
+47
+96
+00
+aa
+55
+02
+00
+b5
+47
+15
+00
+aa
+55
+02
+00
+9b
+43
+19
+00
+aa
+55
+04
+00
+b7
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+32
+43
+28
+00
+aa
+55
+02
+00
+bb
+47
+30
+00
+aa
+55
+0c
+00
+48
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+10
+00
+a0
+47
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+11
+00
+68
+43
+1f
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+0f
+00
+6b
+42
+0e
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d3
+42
+07
+00
+07
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+9a
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+f4
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+f2
+49
+0a
+18
+aa
+55
+10
+00
+e1
+49
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+fd
+49
+c1
+03
+aa
+55
+02
+00
+bb
+4a
+78
+00
+aa
+55
+08
+00
+99
+4b
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+06
+00
+2d
+46
+dc
+05
+84
+03
+e8
+03
+aa
+55
+01
+00
+07
+44
+02
+aa
+55
+01
+00
+09
+44
+0a
+aa
+55
+01
+00
+08
+44
+0c
+aa
+55
+01
+00
+11
+44
+00
+aa
+55
+04
+00
+0d
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+07
+4a
+1e
+aa
+55
+02
+00
+09
+4a
+e8
+03
+aa
+55
+02
+00
+21
+47
+02
+00
+aa
+55
+01
+00
+3d
+46
+64
+aa
+55
+02
+00
+3a
+46
+58
+02
+aa
+55
+01
+00
+1e
+47
+64
+aa
+55
+01
+00
+3c
+46
+64
+aa
+55
+02
+00
+38
+46
+58
+02
+aa
+55
+02
+00
+25
+47
+70
+17
+aa
+55
+02
+00
+09
+4d
+64
+00
+aa
+55
+02
+00
+ec
+48
+b8
+0b
+aa
+55
+02
+00
+69
+48
+58
+02
+aa
+55
+08
+00
+66
+46
+01
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+06
+00
+01
+4a
+ff
+ff
+ff
+ff
+ff
+ff
+aa
+55
+01
+00
+1b
+47
+01
+aa
+55
+01
+00
+a2
+4b
+00
+aa
+55
+0f
+00
+a8
+4b
+01
+7f
+1e
+01
+7f
+1f
+01
+7f
+20
+01
+7f
+21
+01
+7f
+22
+aa
+55
+07
+00
+d3
+4b
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+df
+4b
+50
+00
+aa
+55
+02
+00
+e4
+4b
+58
+02
+aa
+55
+06
+00
+cb
+4b
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+6b
+48
+ff
+ff
+ff
+aa
+55
+01
+00
+a4
+49
+01
+aa
+55
+01
+00
+55
+46
+ff
+aa
+55
+04
+00
+a5
+49
+7f
+06
+29
+14
+aa
+55
+03
+00
+27
+44
+ff
+17
+16
+aa
+55
+02
+00
+eb
+43
+80
+3f
+aa
+55
+03
+00
+66
+48
+88
+8c
+ff
+aa
+55
+01
+00
+bc
+4b
+80
+aa
+55
+01
+00
+bb
+4b
+80
+aa
+55
+04
+00
+b7
+4b
+80
+80
+ff
+ff
+aa
+55
+03
+00
+63
+48
+01
+02
+ff
+aa
+55
+01
+00
+59
+46
+ff
+aa
+55
+01
+00
+5b
+46
+05
+aa
+55
+0c
+00
+8a
+48
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+6e
+48
+0d
+0e
+0f
+10
+11
+12
+13
+14
+85
+c4
+c5
+c6
+c3
+c2
+03
+04
+83
+84
+82
+c7
+80
+07
+06
+81
+0a
+0b
+ff
+ff
+aa
+55
+90
+00
+16
+4a
+48
+00
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+8b
+35
+1e
+1a
+39
+16
+64
+1b
+8a
+3a
+1f
+08
+3c
+07
+3d
+06
+88
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+7f
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+00
+7f
+e2
+00
+e6
+00
+46
+89
+2a
+31
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+00
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+85
+58
+52
+e9
+50
+4a
+4d
+00
+e1
+e5
+ed
+ee
+ec
+eb
+e8
+f1
+e3
+f6
+f8
+f7
+f9
+ef
+fa
+91
+f5
+e7
+f0
+ea
+f2
+fb
+90
+aa
+55
+13
+00
+ae
+49
+00
+29
+e8
+ed
+ee
+ef
+eb
+ec
+e9
+ea
+fb
+f1
+f0
+f5
+4c
+01
+00
+00
+00
+aa
+55
+02
+00
+ff
+49
+2a
+10
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+3e
+aa
+55
+0c
+00
+16
+00
+00
+00
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+05
+00
+5e
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+68
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+0c
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+1c
+02
+5a
+aa
+55
+01
+00
+38
+44
+a0
+aa
+55
+02
+00
+3b
+44
+bc
+02
+aa
+55
+02
+00
+39
+44
+90
+01
+aa
+55
+02
+00
+3d
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+1e
+81
+bf
+b5
Index: output/program.lis
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/program.lis	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/program.lis	(working copy)
@@ -0,0 +1,34479 @@
+              include "bt_format "
+              org 0x0000
+0000 c2840033 bbit1 8 ,pf_patch_ext 
+0001 c000003b beq patch00_0 ,p_soft_reset 
+0002 c0010069 beq patch00_2 ,p_main_loop 
+0003 c0080073 beq patch02_0 ,p_shutdown_radio 
+0004 c0088075 beq patch02_1 ,p_set_sync_on 
+0005 c00a0158 beq patch02_4 ,p_set_lemode 
+0006 c00a80f6 beq patch02_5 ,p_rf_rx_enable 
+0007 c00c0103 beq patch03_0 ,p_txon 
+0008 c00c810a beq patch03_1 ,p_set_tx_power 
+0009 c00d0083 beq patch03_2 ,p_initialize_radio_cont 
+000a c01284aa beq patch04_5 ,p_lpm_sleep 
+000b c014049c beq patch05_0 ,p_lpm_dispatch 
+000c c0210177 beq patch08_2 ,p_keyboard_load_otp_info_check 
+000d c02201f4 beq patch08_4 ,p_keyboard_store_device_info 
+000e c0228428 beq patch08_5 ,p_keyboard_cb_fuction 
+000f c02301f7 beq patch08_6 ,p_keyboard_priority_bb_event 
+0010 c023820a beq patch08_7 ,p_keyboard_bb_event_timer 
+0011 c024052c beq patch09_0 ,p_keyboard_start_discovery 
+0012 c0248530 beq patch09_1 ,p_keyboard_stop_discovery 
+0013 c02505a2 beq patch09_2 ,p_keyboard_store_remote_bdaddr 
+0014 c02582e9 beq patch09_3 ,p_keyboard_idle 
+0015 c02602eb beq patch09_4 ,p_keyboard_start_work 
+0016 c0268539 beq patch09_5 ,p_keyboard_le 
+0017 c0270308 beq patch09_6 ,p_keyboard_keyscan 
+0018 c0280369 beq patch0a_0 ,p_keyboard_key_process 
+0019 c02903ef beq patch0a_2 ,p_keyboard_keyvalue_fn_replace 
+001a c02a8408 beq patch0a_5 ,p_keyboard_special_key_check 
+001b c02b8409 beq patch0a_7 ,p_keyboard_motion 
+001c c02c8419 beq patch0b_1 ,p_keyboard_device_data_tpye_check 
+001d c02d0478 beq patch0b_2 ,p_keyboard_before_hibernate 
+001e c02d8480 beq patch0b_3 ,p_keyboard_app_enter_hibernate 
+001f c02e047c beq patch0b_4 ,p_keyboard_device_led_all_off 
+0020 c02e8482 beq patch0b_5 ,p_keyboard_setgpio_hibernate 
+0021 c03085c4 beq patch0c_1 ,p_le_parse_att 
+0022 c037859d beq patch0d_7 ,p_keyboard_start_reconnect_device 
+0023 c0388480 beq patch0e_1 ,p_keyboard_app_enter_hibernate 
+0024 c03b004a beq patch0e_6 ,p_keyboard_adc_read 
+0025 c03b8223 beq patch0e_7 ,p_keyboard_adc_read_start 
+0026 c0400140 beq patch10_0 ,p_mouse_init_sunt 
+0027 c0420480 beq patch10_4 ,p_keyboard_app_enter_hibernate 
+0028 c04d02d1 beq patch13_2 ,p_keyboard_discover_setting_led_gpio 
+0029 c05884c9 beq patch16_1 ,p_keyboard_init 
+002a c0628174 beq patch18_5 ,p_otp_read_data 
+002b c06a8465 beq patch1a_5 ,p_gpio_set_wake_by_current_state 
+002c c06d0141 beq patch1b_2 ,p_sadc_calibration 
+002d c06d8666 beq patch1b_3 ,p_adc_init_data 
+002e c06e06a3 beq patch1b_4 ,p_enable_adc 
+002f c06e8684 beq patch1b_5 ,p_vdd_calculate_by_mode 
+0030 c07b051d beq patch1e_6 ,p_ui_ipc_send_event 
+0031 c07d0525 beq patch1f_2 ,p_check_51cmd_once_continue 
+0032 2020235a branch assert 
+
+pf_patch_ext:
+0033 c00a0551 beq patch22_4 ,p_le_slave_match 
+0034 c00d0550 beq patch23_2 ,p_le_got_first_packet 
+0035 c0128580 beq patch24_5 ,p_le_rx_dec 
+0036 c0130585 beq patch24_6 ,p_le_rx_nopayload 
+0037 c0260597 beq patch29_4 ,p_le_adv_not_match 
+0038 c026859b beq patch29_5 ,p_le_init_adv 
+0039 c17f8000 rtneq patch3f_7 
+003a 2020235a branch assert 
+
+p_soft_reset:
+003b 2435803e nbranch p_soft_reset_next ,wake 
+003c 37d98200 until null ,lpo_edge 
+003d 37d98200 until null ,lpo_edge 
+
+p_soft_reset_next:
+003e 204054ac call mouse_wakeup_from_power_check 
+003f 24342002 nbranch soft_reset + 1 ,user 
+0040 6fe0caba fetch 1 ,mem_power_on_flag_new 
+0041 203a2002 branch soft_reset + 1 ,blank 
+0042 704aba00 jam 0 ,mem_power_on_flag_new 
+0043 6fe0c655 fetch 1 ,mem_config_select_device_button_gpio 
+0044 c07fa002 beq ui_button_gpio_disable ,soft_reset + 1 
+0045 1fe20e00 copy pdata ,queue 
+0046 6fe2069d fetch 4 ,mem_saved_gpio_in 
+0047 afec0000 qisolate0 pdata 
+0048 2040ce45 call keyboard_pb_set ,true 
+0049 20202002 branch soft_reset + 1 
+
+p_keyboard_adc_read:
+004a 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+004b c40a8000 rtnbit0 mouse_enable_adc 
+004c 2040004e call p_keyboard_adc_gpio_set 
+004d 20205541 branch mouse_adc_read + 4 
+
+p_keyboard_adc_gpio_set:
+004e 6fe0c407 fetch 1 ,mem_adc_config_flag 
+004f c1810000 rtnne adc_config_gpio 
+0050 6fe0c408 fetch 1 ,mem_adc_channel 
+0051 20400057 call p_adc_channel_set_gpio 
+0052 18427e00 copy temp ,pdata 
+0053 67e0c635 store 1 ,mem_adc_channel_gpio 
+0054 79207e07 set1 gpio_active_bit ,pdata 
+0055 d8400000 arg gpcfg_input ,temp 
+0056 20206f20 branch gpio_config_function 
+
+p_adc_channel_set_gpio:
+0057 d8400012 arg 18 ,temp 
+0058 c1030000 rtneq 0x6 
+0059 d840000a arg 10 ,temp 
+005a c1038000 rtneq 0x7 
+005b d8400009 arg 9 ,temp 
+005c c1040000 rtneq 0x8 
+005d d840000c arg 12 ,temp 
+005e c1048000 rtneq 0x9 
+005f d8400006 arg 6 ,temp 
+0060 c1050000 rtneq 0xa 
+0061 d8400014 arg 20 ,temp 
+0062 c1058000 rtneq 0xb 
+0063 d8400015 arg 21 ,temp 
+0064 c1060000 rtneq 0xc 
+0065 d8400016 arg 22 ,temp 
+0066 c1068000 rtneq 0xd 
+0067 d840000d arg 13 ,temp 
+0068 20600000 rtn 
+
+p_main_loop:
+0069 20407552 call sp_calc_sequence_256 
+006a 20407448 call sp_calc_sequence_256_check 
+006b 20404bfb call kscan_dispatch 
+006c 20402a45 call le_advertising_dispatch 
+006d 2040202a call idle_dispatch 
+006e 204042ad call app_process_idle 
+006f 20402018 call connection_dispatch 
+0070 2040310f call g24_dispatch 
+0071 2040248c call lpm_dispatch 
+0072 20200069 branch p_main_loop 
+
+p_shutdown_radio:
+0073 70890000 jam 0 ,0x8900 
+0074 20202153 branch shutdown_radio + 1 
+
+p_set_sync_on:
+0075 708a0f60 jam 0x60 ,0x8a0f 
+0076 708a10aa jam 0xaa ,0x8a10 
+0077 708a127a jam 0x7a ,0x8a12 
+0078 708a2500 jam 0x00 ,0x8a25 
+0079 708a2600 jam 0x00 ,0x8a26 
+007a 2000003c nop 60 
+007b 708a2020 jam 0x20 ,0x8a20 
+007c 708a23f5 jam 0xf5 ,0x8a23 
+007d 708a2412 jam 0x12 ,0x8a24 
+007e 708a2410 jam 0x10 ,0x8a24 
+007f 2000003c nop 60 
+0080 708a1260 jam 0x60 ,0x8a12 
+0081 708a23dd jam 0xdd ,0x8a23 
+0082 20600000 rtn 
+
+p_initialize_radio_cont:
+0083 7001bb00 jam 0 ,mem_le_testtype 
+0084 7001bc00 jam 0 ,mem_cmd_le_create_conn 
+0085 37d98200 until null ,lpo_edge 
+0086 7089460d jam 0x0d ,0x8946 
+0087 70896f10 jam 0x10 ,0x896f 
+0088 708a13cd jam 0xcd ,0x8a13 
+0089 708a0610 jam 0x10 ,0x8a06 
+008a 708a844a jam 0x4a ,0x8a84 
+008b 708a8540 jam 0x40 ,0x8a85 
+008c 708a16fe jam 0xfe ,0x8a16 
+008d 204000ca call p_set_otp_config 
+008e 204070d7 call wdt_set_disable 
+008f 37d98200 until null ,lpo_edge 
+0090 70813b5f jam 0x5f ,0x813b 
+0091 37d98200 until null ,lpo_edge 
+0092 70813c88 jam 0x88 ,0x813c 
+0093 37d98200 until null ,lpo_edge 
+0094 6fe0c099 fetch 1 ,mem_fcomp_div 
+0095 c00800bf beq xtal_16m ,p_initialize_radio_16m 
+0096 6fe0c438 fetch 1 ,mem_ring_ibias_trim 
+0097 1fe1fe04 or_into 0x04 ,pdata 
+0098 67f08a02 store 1 ,0x8a02 
+0099 70890f01 jam 0x01 ,0x890f 
+009a 708a8024 jam 0x24 ,0x8a80 
+009b 708a8162 jam 0x62 ,0x8a81 
+009c 58e61212 setarg 0xe61212 
+009d 67f18a73 store 3 ,0x8a73 
+
+p_initialize_radio2:
+009e 708a8660 jam 0x60 ,0x8a86 
+009f 708a8b3b jam 0x3b ,0x8a8b 
+00a0 204000b1 call p_dpll_on 
+00a1 70804300 jam 0 ,core_config 
+00a2 70804205 jam clksel_dpll ,core_clksel 
+00a3 58557474 setarg 0x557474 
+00a4 67f18968 store 3 ,0x8968 
+00a5 7089606e jam 0x6e ,0x8960 
+00a6 20400112 call p_rx_dcoc 
+00a7 2040013d call p_rfpll_aac_ghpc 
+00a8 204000ab call p_set_xtal_cap 
+00a9 7041480c jam system_clk_12m ,mem_system_clk 
+00aa 20206f4e branch sadc_calibration 
+
+p_set_xtal_cap:
+00ab 20758000 rtn wake 
+00ac 37d98200 until null ,lpo_edge 
+00ad 6fe0c11c fetch 1 ,mem_xtal_c_sel 
+00ae 67f0813a store 1 ,core_xtal_cap 
+00af 37d98200 until null ,lpo_edge 
+00b0 20600000 rtn 
+
+p_dpll_on:
+00b1 6fe0c099 fetch 1 ,mem_fcomp_div 
+00b2 c00c00b7 beq xtal_24m ,p_dpll_on_24m 
+00b3 6fe0c438 fetch 1 ,mem_ring_ibias_trim 
+00b4 1fe1fe06 or_into 0x06 ,pdata 
+00b5 67f08a02 store 1 ,0x8a02 
+00b6 708a05e0 jam 0xe0 ,0x8a05 
+
+p_dpll_on_24m:
+00b7 708a00d8 jam 0xd8 ,0x8a00 
+00b8 2000003c nop 60 
+00b9 708a01a0 jam 0xa0 ,0x8a01 
+00ba 708a00df jam 0xdf ,0x8a00 
+00bb 708a01fa jam 0xfa ,0x8a01 
+00bc 20000014 nop 20 
+00bd 708a009f jam 0x9f ,0x8a00 
+00be 20600000 rtn 
+
+p_initialize_radio_16m:
+00bf 6fe0c438 fetch 1 ,mem_ring_ibias_trim 
+00c0 1fe1fe06 or_into 0x06 ,pdata 
+00c1 67f08a02 store 1 ,0x8a02 
+00c2 70890f00 jam 0x00 ,0x890f 
+00c3 708a8023 jam 0x23 ,0x8a80 
+00c4 708a81b0 jam 0xb0 ,0x8a81 
+00c5 58e40909 setarg 0xe40909 
+00c6 67f18a73 store 3 ,0x8a73 
+00c7 708a762a jam 0x2a ,0x8a76 
+00c8 70890204 jam 0x04 ,0x8902 
+00c9 2020009e branch p_initialize_radio2 
+
+p_set_otp_config:
+00ca 203580f2 branch p_set_otp_config_wake ,wake 
+00cb 6fe2020d fetch 4 ,mem_otp_core_ldo 
+00cc 207a0000 rtn blank 
+00cd 37d98200 until null ,lpo_edge 
+00ce 6ff08136 fetch 1 ,0x8136 
+00cf 1fe17ef0 and pdata ,0xf0 ,pdata 
+00d0 6848820d fetcht 1 ,mem_otp_core_ldo 
+00d1 9841fe00 ior temp ,pdata 
+00d2 1fe0fffd increase -3 ,pdata 
+00d3 67f08136 store 1 ,0x8136 
+00d4 37d98200 until null ,lpo_edge 
+00d5 6ff08138 fetch 1 ,0x8138 
+00d6 1fe17e07 and pdata ,0x7 ,pdata 
+00d7 6848820e fetcht 1 ,mem_otp_verf_bg 
+00d8 18498400 lshift3 temp ,temp 
+00d9 9841fe00 ior temp ,pdata 
+00da 67f08138 store 1 ,0x8138 
+00db 37d98200 until null ,lpo_edge 
+
+p_set_otp_config2:
+00dc 6ff08acb fetch 1 ,0x8acb 
+00dd 1fe17ef0 and pdata ,0xf0 ,pdata 
+00de 6848820f fetcht 1 ,mem_otp_charge_pump 
+00df 6048c15b storet 1 ,mem_otp_charge_pump_x 
+00e0 9841fe00 ior temp ,pdata 
+00e1 67f08acb store 1 ,0x8acb 
+00e2 6fe08210 fetch 1 ,mem_otp_dpll_ibais 
+00e3 67e0c15c store 1 ,mem_otp_dpll_ibais_x 
+00e4 2feffe03 isolate1 3 ,pdata 
+00e5 6ff08a06 fetch 1 ,0x8a06 
+00e6 7920fe07 setflag true ,7 ,pdata 
+00e7 67f08a06 store 1 ,0x8a06 
+00e8 6fe08210 fetch 1 ,mem_otp_dpll_ibais 
+00e9 1fe10407 and pdata ,7 ,temp 
+00ea 18520400 lshift4 temp ,temp 
+00eb 18438400 lshift temp ,temp 
+00ec 6048c438 storet 1 ,mem_ring_ibias_trim 
+00ed 6ff08a02 fetch 1 ,0x8a02 
+00ee 1fe17e1f and pdata ,0x1f ,pdata 
+00ef 9841fe00 ior temp ,pdata 
+00f0 67f08a02 store 1 ,0x8a02 
+00f1 20600000 rtn 
+
+p_set_otp_config_wake:
+00f2 6fe1415b fetch 2 ,mem_otp_charge_pump_x 
+00f3 207a0000 rtn blank 
+00f4 67e1020f store 2 ,mem_otp_charge_pump 
+00f5 202000dc branch p_set_otp_config2 
+
+p_rf_rx_enable:
+00f6 204021ba call rf_rx_agc_set 
+00f7 18002a08 force 8 ,radio_ctrl 
+00f8 18002a00 force 0 ,radio_ctrl 
+00f9 580aaada setarg 0x0aaada 
+00fa 67f18a0f store 3 ,0x8a0f 
+00fb 708a2540 jam 0x40 ,0x8a25 
+00fc 708a2610 jam 0x10 ,0x8a26 
+00fd 2000003c nop 60 
+00fe 708a01fb jam 0xfb ,0x8a01 
+00ff 708a25ff jam 0xff ,0x8a25 
+0100 708a2630 jam 0x30 ,0x8a26 
+0101 708a16fe jam 0xfe ,0x8a16 
+0102 202021b4 branch rf_rx_enable + 14 
+
+p_txon:
+0103 580aaa7e setarg 0x0aaa7e 
+0104 67f18a0f store 3 ,0x8a0f 
+0105 2000003c nop 60 
+0106 708a2500 jam 0x00 ,0x8a25 
+0107 708a260d jam 0x0d ,0x8a26 
+0108 708a16f6 jam 0xf6 ,0x8a16 
+0109 20202203 branch txon + 7 
+
+p_set_tx_power:
+010a 6fe0c141 fetch 1 ,mem_tx_power 
+010b c005010d beq tx_power_10db ,p_set_tx_power_10db 
+010c 2020220e branch set_tx_power + 2 
+
+p_set_tx_power_10db:
+010d 708a1425 jam 0x25 ,0x8a14 
+010e 58a93f3f setarg 0xa93f3f 
+010f 67f18a60 store 3 ,0x8a60 
+0110 708a631f jam 0x1f ,0x8a63 
+0111 20600000 rtn 
+
+p_rx_dcoc:
+0112 20758000 rtn wake 
+0113 20402160 call set_sync_on 
+0114 d8400027 arg 39 ,temp 
+0115 2040216f call set_freq_rx 
+0116 204021a6 call rf_rx_enable 
+0117 708a257f jam 0x7f ,0x8a25 
+0118 708a301a jam 0x1a ,0x8a30 
+0119 708a3178 jam 0x78 ,0x8a31 
+011a 708a8fb2 jam 0xb2 ,0x8a8f 
+011b 708ac200 jam 0 ,0x8ac2 
+011c 708ac300 jam 0 ,0x8ac3 
+011d d8e00006 arg 6 ,queue 
+011e 2040012f call p_rx_dcoc_avg 
+011f 2a2ffe0d isolate1 13 ,rega 
+0120 2040211d call qset_start 
+0121 2a4ffe0d isolate1 13 ,regb 
+0122 2040211e call qset_p 
+0123 d8e00005 arg 5 ,queue 
+
+p_rx_dcoc_loop2:
+0124 2040211c call qset1_p 
+0125 2040211e call qset_p 
+0126 2040012f call p_rx_dcoc_avg 
+0127 d8a08ac2 arg 0x8ac2 ,contw 
+0128 1a31fe00 rshift4 rega ,pdata 
+0129 20402117 call qsetxor 
+012a 1a51fe00 rshift4 regb ,pdata 
+012b 20402117 call qsetxor 
+012c 18e08fff increase -1 ,queue 
+012d 20210124 branch p_rx_dcoc_loop2 ,positive 
+012e 2020214f branch rx_dcoc_loop2 + 10 
+
+p_rx_dcoc_avg:
+012f 2000003c nop 60 
+0130 58000f00 setarg mem_dcoc_buf 
+0131 67f10982 store 2 ,0x8982 
+0132 58000ff0 setarg mem_dcoc_buf_end 
+0133 67f10984 store 2 ,0x8984 
+0134 70898109 jam 0x9 ,0x8981 
+0135 70898103 jam 0x3 ,0x8981 
+0136 70898006 jam 0x6 ,0x8980 
+0137 2000003c nop 60 
+0138 da200000 arg 0 ,rega 
+0139 da400000 arg 0 ,regb 
+013a df200010 arg 16 ,loopcnt 
+013b d8c00f00 arg mem_dcoc_buf ,contr 
+013c 2020212d branch rx_dcoc_loop 
+
+p_rfpll_aac_ghpc:
+013d 20758000 rtn wake 
+013e 20202272 branch rfpll_aac_ghpc + 1 
+
+p_keyboard_clear_pdata:
+013f 58000000 setarg 0 
+
+p_mouse_init_sunt:
+
+p_dpll_ring_ibias_calc:
+0140 20600000 rtn 
+
+p_sadc_calibration:
+0141 20758000 rtn wake 
+0142 708a0777 jam 0x77 ,core_gpadc_ctrl 
+0143 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
+0144 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+0145 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+0146 67f080cd store 1 ,core_sadc_clkdiv 
+0147 20000bb8 nop 3000 
+0148 20400151 call p_sadc_read 
+0149 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+014a 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+014b df200008 arg 8 ,loopcnt 
+014c 20406f58 call sadc_cal_read + 1 
+014d 6fe0c419 fetch 1 ,mem_spi_write_addr 
+014e 67e0c433 store 1 ,mem_adc_cal_c7 
+014f 6240c419 storer regb ,1 ,mem_spi_write_addr 
+0150 20600000 rtn 
+
+p_sadc_read:
+0151 7080cc03 jam 0x03 ,core_sadc_ctrl 
+
+p_sadc_read_wait:
+0152 6ff08129 fetch 1 ,core_perf_status 
+0153 c3028152 bbit0 saradc_done ,p_sadc_read_wait 
+0154 68590164 fetcht 2 ,core_sadc_data 
+0155 6049440a storet 2 ,mem_adc_current_value 
+0156 7080cc00 jam 0x00 ,core_sadc_ctrl 
+0157 20600000 rtn 
+
+p_set_lemode:
+0158 708a8211 jam 0x11 ,0x8a82 
+0159 708a8d12 jam 0x12 ,0x8a8d 
+015a 708a8e0a jam 0x0a ,0x8a8e 
+015b 6fe0c099 fetch 1 ,mem_fcomp_div 
+015c c0080171 beq xtal_16m ,p_set_lemode_2m_16m 
+015d 58005762 setarg 0x5762 
+015e 67f10907 store 2 ,0x8907 
+
+p_set_lemode_2m:
+015f 70890103 jam 3 ,0x8901 
+0160 70893003 jam 3 ,0x8930 
+0161 c6168000 rtnmark1 mark_ble_2m 
+0162 70890101 jam 1 ,0x8901 
+0163 708a8207 jam 0x07 ,0x8a82 
+0164 708a8d44 jam 0x44 ,0x8a8d 
+0165 708a8e0a jam 0x0a ,0x8a8e 
+0166 6fe0c099 fetch 1 ,mem_fcomp_div 
+0167 c008016e beq xtal_16m ,p_set_lemode_1m_16m 
+0168 58002bb1 setarg 0x2bb1 
+0169 67f10907 store 2 ,0x8907 
+
+p_set_lemode_1m:
+016a c6978000 rtnmark0 mark_ble_lr 
+016b 70893024 jam 0x24 ,0x8930 
+016c 70890105 jam 5 ,0x8901 
+016d 20600000 rtn 
+
+p_set_lemode_1m_16m:
+016e 58004189 setarg 0x4189 
+016f 67f10907 store 2 ,0x8907 
+0170 2020016a branch p_set_lemode_1m 
+
+p_set_lemode_2m_16m:
+0171 58008312 setarg 0x8312 
+0172 67f10907 store 2 ,0x8907 
+0173 2020015f branch p_set_lemode_2m 
+
+p_otp_read_data:
+0174 20406b3a call enable_otp_read 
+0175 20406b75 call otp_read_data + 1 
+0176 20206b38 branch otp_disable_chgpump 
+
+p_keyboard_load_otp_info_check:
+0177 6fe0c666 fetch 1 ,mem_device_flag 
+0178 c000017b beq mode_24g_device ,p_keyboard_load_otp_device_info_g24_init 
+0179 c0008185 beq mode_bt_device1 ,p_keyboard_load_otp_device_info_ble_init 
+017a 20600000 rtn 
+
+p_keyboard_load_otp_device_info_g24_init:
+017b db000050 arg 80 ,regd 
+017c 58000400 setarg 0x400 
+017d 9b06fc00 idiv regd 
+017e 20407d62 call wait_div_end 
+017f 1807fe00 quotient pdata 
+0180 67e10670 store 2 ,mem_pdatatemp 
+0181 dfe01fbc arg 0x1fbc ,pdata 
+0182 d8400004 arg 4 ,temp 
+0183 dd600004 arg 4 ,rege 
+0184 2020018f branch p_keyboard_load_otp_device_info 
+
+p_keyboard_load_otp_device_info_ble_init:
+0185 db000140 arg 320 ,regd 
+0186 58000400 setarg 0x400 
+0187 9b06fc00 idiv regd 
+0188 20407d62 call wait_div_end 
+0189 1807fe00 quotient pdata 
+018a 67e10670 store 2 ,mem_pdatatemp 
+018b dfe01fb0 arg 0x1fb0 ,pdata 
+018c d8400010 arg 16 ,temp 
+018d dd600010 arg 16 ,rege 
+018e 2020018f branch p_keyboard_load_otp_device_info 
+
+p_keyboard_load_otp_device_info:
+018f 67e10672 store 2 ,mem_pdatatemp + 2 
+0190 60488678 storet 1 ,mem_temp 
+0191 da2049c7 arg mem_otp_read_retention_memory ,rega 
+0192 da600000 arg 0 ,regc 
+
+p_keyboard_load_otp_info_check_page_loop:
+0193 6fe10672 fetch 2 ,mem_pdatatemp + 2 
+0194 1fe22400 copy pdata ,regb 
+0195 6f208678 fetchr loopcnt ,1 ,mem_temp 
+0196 da2049c7 arg mem_otp_read_retention_memory ,rega 
+0197 20406b74 call otp_read_data 
+0198 6fe449c7 fetch 8 ,mem_otp_read_retention_memory 
+0199 684c49cf fetcht 8 ,mem_otp_read_retention_memory + 8 
+019a 9841fe00 ior temp ,pdata 
+019b 684c49d7 fetcht 8 ,mem_otp_read_retention_memory + 16 
+019c 9841fe00 ior temp ,pdata 
+019d 203a01a5 branch p_keyboard_load_otp_info_check_first_time ,blank 
+019e 1a60a601 increase 1 ,regc 
+019f 6fe10670 fetch 2 ,mem_pdatatemp 
+01a0 9a667c00 isub regc ,null 
+01a1 6fe10672 fetch 2 ,mem_pdatatemp + 2 
+01a2 9b067e00 isub regd ,pdata 
+01a3 67e10672 store 2 ,mem_pdatatemp + 2 
+01a4 20200193 branch p_keyboard_load_otp_info_check_page_loop 
+
+p_keyboard_load_otp_info_check_first_time:
+01a5 1a667c00 sub regc ,0 ,null 
+01a6 2022ca38 branch keyboard_load_otp_info_check_first_time_process ,zero 
+
+p_keyboard_load_otp_info_check_first_time_loop_init:
+01a7 6fe10672 fetch 2 ,mem_pdatatemp + 2 
+01a8 9b00fe00 iadd regd ,pdata 
+
+p_keyboard_load_otp_info_check_first_time_loop:
+01a9 9d667e00 isub rege ,pdata 
+01aa 67e10672 store 2 ,mem_pdatatemp + 2 
+01ab 6fe10672 fetch 2 ,mem_pdatatemp + 2 
+01ac 1fe22400 copy pdata ,regb 
+01ad 6f208678 fetchr loopcnt ,1 ,mem_temp 
+01ae da2049c7 arg mem_otp_read_retention_memory ,rega 
+01af 20406b74 call otp_read_data 
+01b0 6fe449c7 fetch 8 ,mem_otp_read_retention_memory 
+01b1 684c49cf fetcht 8 ,mem_otp_read_retention_memory + 8 
+01b2 9841fe00 ior temp ,pdata 
+01b3 684c49d7 fetcht 8 ,mem_otp_read_retention_memory + 16 
+01b4 9841fe00 ior temp ,pdata 
+01b5 203a01b8 branch p_keyboard_load_otp_info_check_offset_process ,blank 
+01b6 6fe10672 fetch 2 ,mem_pdatatemp + 2 
+01b7 202001a9 branch p_keyboard_load_otp_info_check_first_time_loop 
+
+p_keyboard_load_otp_info_check_offset_process:
+01b8 58001fc0 setarg 0x1fc0 
+01b9 68490672 fetcht 2 ,mem_pdatatemp + 2 
+01ba 98467e00 isub temp ,pdata 
+01bb 67e149df store 2 ,mem_otp_read_retention_offset 
+01bc 18427e00 copy temp ,pdata 
+01bd 9d60a400 iadd rege ,regb 
+01be 6f208678 fetchr loopcnt ,1 ,mem_temp 
+01bf da2049c7 arg mem_otp_read_retention_memory ,rega 
+01c0 20406b74 call otp_read_data 
+01c1 6fe0c666 fetch 1 ,mem_device_flag 
+01c2 c0004a47 beq mode_24g_device ,keyboard_load_otp_info_check_offset_process_g24 
+01c3 c00081c5 beq mode_bt_device1 ,p_keyboard_load_otp_info_check_offset_process_ble 
+01c4 20600000 rtn 
+
+p_keyboard_load_otp_info_check_offset_process_ble:
+01c5 6fe0c9c7 fetch 1 ,mem_otp_read_retention_memory 
+01c6 1fe67c03 sub pdata ,system_os_mac ,null 
+01c7 24417dca ncall set_pdata_0 ,positive 
+01c8 67e0c9c6 store 1 ,mem_kb_computer_system 
+01c9 6fe0c9c8 fetch 1 ,mem_otp_read_retention_memory + 1 
+01ca 67e0c667 store 1 ,mem_device1_type 
+01cb 6fe349c9 fetch 6 ,mem_otp_read_retention_memory + 2 
+01cc 67e34668 store 6 ,mem_device1_addr 
+01cd 6fe349cf fetch 6 ,mem_otp_read_retention_memory + 8 
+01ce 67e3466e store 6 ,mem_device1_locall_addr 
+01cf 684949d5 fetcht 2 ,mem_otp_read_retention_memory + 14 
+01d0 180a7e00 random pdata 
+01d1 9840fe00 iadd temp ,pdata 
+01d2 67e14695 store 2 ,mem_random_addr_increase_count 
+01d3 202004e6 branch p_keyboard_select_reconn_device 
+
+p_keyboard_store_otp_device_info:
+01d4 6fe0c666 fetch 1 ,mem_device_flag 
+01d5 c00001d8 beq mode_24g_device ,p_keyboard_store_otp_device_info_g24 
+01d6 c00081db beq mode_bt_device1 ,p_keyboard_store_otp_device_info_ble 
+01d7 20600000 rtn 
+
+p_keyboard_store_otp_device_info_g24:
+01d8 684949df fetcht 2 ,mem_otp_read_retention_offset 
+01d9 58001fc0 setarg 0x1fc0 
+01da 20204a63 branch keyboard_store_otp_device_info_g24 + 2 
+
+p_keyboard_store_otp_device_info_ble:
+01db 704be701 jam 1 ,mem_otp_store_device_info_flag 
+01dc 6fe0cbe8 fetch 1 ,mem_otp_store_system_flag 
+01dd 207a0000 rtn blank 
+
+p_keyboard_wirte_otp_ble:
+01de 684949df fetcht 2 ,mem_otp_read_retention_offset 
+01df 58001fc0 setarg 0x1fc0 
+01e0 98467e00 isub temp ,pdata 
+01e1 67e10670 store 2 ,mem_pdatatemp 
+01e2 1fe22400 copy pdata ,regb 
+01e3 da2049c6 arg mem_kb_computer_system ,rega 
+01e4 df200001 arg 1 ,loopcnt 
+01e5 20406b45 call otp_write 
+01e6 6fe10670 fetch 2 ,mem_pdatatemp 
+01e7 1fe0a401 add pdata ,1 ,regb 
+01e8 da204667 arg mem_device1_type ,rega 
+01e9 df20000d arg 13 ,loopcnt 
+01ea 20406b45 call otp_write 
+01eb 6fe10670 fetch 2 ,mem_pdatatemp 
+01ec 1fe0a40e add pdata ,14 ,regb 
+01ed da204695 arg mem_random_addr_increase_count ,rega 
+01ee df200002 arg 2 ,loopcnt 
+01ef 20406b45 call otp_write 
+01f0 684949df fetcht 2 ,mem_otp_read_retention_offset 
+01f1 18408410 increase 16 ,temp 
+01f2 604949df storet 2 ,mem_otp_read_retention_offset 
+01f3 20600000 rtn 
+
+p_keyboard_store_device_info:
+01f4 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+01f5 c28a01d4 bbit1 mouse_enable_otp ,p_keyboard_store_otp_device_info 
+01f6 20204a58 branch keyboard_store_device_info + 2 
+
+p_keyboard_priority_bb_event:
+01f7 1a627e00 copy regc ,pdata 
+01f8 c00a81fa beq bt_evt_le_disconnected ,p_keyboard_le_bb_disconnected 
+01f9 20204a9c branch keyboard_priority_bb_event + 2 
+
+p_keyboard_le_bb_disconnected:
+01fa 58000000 setarg 0 
+01fb 67e147c0 store 2 ,mem_le_battery_level_updata_timer 
+01fc 67e0c860 store 1 ,mem_keyboard_le_send_conn_param_update 
+01fd 67e0c861 store 1 ,mem_keyboard_le_send_conn_param_update_timer 
+01fe 67e0c794 store 1 ,mem_mouse_le_bb_connected_flag 
+01ff 7047c200 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+0200 204029cb call le_clr_config_more_data 
+0201 70429a00 jam 0 ,mem_ltk_exists 
+0202 6fe143ef fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0203 c2838206 bbit1 app_disc_ble ,p_keyboard4_0_event_bb_disconn 
+0204 c28042fc bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0205 20204b95 branch keyboard_start_discovery 
+
+p_keyboard4_0_event_bb_disconn:
+0206 20405b21 call mouse_le_clean_connect_flag 
+0207 6fe143ef fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0208 c28042fc bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0209 20200480 branch p_keyboard_app_enter_hibernate 
+
+p_keyboard_bb_event_timer:
+020a 2040553d call mouse_adc_read 
+020b 2040029d call p_keyboard_low_voltage_led_timer 
+020c 2040328e call g24_pair_timeout_timer 
+020d 20403531 call g24_reconn_timeout_timer 
+020e 20405fdd call mouse_24g_long_sleep_param_update_timer 
+020f 2040023f call p_keyboard_24g_repeat_send_data 
+0210 20404b68 call keyboard_24g_led_status_get_timer 
+0211 20400242 call p_keyboard_num_capslock_led_on_timer 
+0212 20400267 call p_keyboard_device_poweron_timer 
+0213 20400291 call p_keyboard_device_pair_discovery_led_timer 
+0214 20400289 call p_keyboard_mode_led_timer 
+0215 20404b43 call keyboard_check_discovery_timeout_timer 
+0216 20404b58 call keyboard_check_direct_timeout_timer 
+0217 20405be1 call mouse_le_enable_att_list_timer 
+0218 20404b5c call keyboard_le_battery_updata_timer 
+0219 20405be4 call mouse_le_send_smp_security_request_timer 
+021a 20404b5f call keyboard_le_send_conn_param_update_timer 
+021b 20404b55 call keyboard_le_auto_recognize_timer 
+021c 204002da call p_keyboard_key_press_timer 
+021d 20404b32 call keyboard_commbination_key_process 
+021e 20405bfe call mouse_current_mult_update_timer 
+021f 20404b48 call keyboard_store_information_delay_timer 
+0220 204002d2 call p_keyboard_long_press_timer 
+0221 20404b87 call keyboard_commbination_delay_release_timer 
+0222 202002d7 branch p_keyboard_check_no_data_timeout_timer 
+
+p_keyboard_adc_read_start:
+0223 20400234 call p_keyboard_low_voltage_param_set 
+0224 20406f82 call enable_adc 
+0225 20406fb0 call vdd_calculate_by_mode 
+0226 1fe6fc0a div pdata ,10 
+0227 20407d5f call get_div_result 
+0228 67e14633 store 2 ,mem_mouse_vdd_now_vol 
+0229 da20462d arg mem_mouse_vdd_calculate_set ,rega 
+022a 20405563 call mouse_adc_bat_percent_lowpower_out 
+022b 6fe0c40c fetch 1 ,mem_adc_power_flag 
+022c c280cf6b bbit1 1 ,keyboard_power_down 
+022d c3000230 bbit0 0 ,p_keyboard_adc_no_low_voltage 
+022e 70463701 jam 1 ,mem_mouse_adc_last_low_voltage_flag 
+022f 2020555a branch mouse_adc_low_voltage 
+
+p_keyboard_adc_no_low_voltage:
+0230 d8e00004 arg mouse_low_voltage_flag ,queue 
+0231 20405f04 call mouse_disable_function_flag 
+0232 704d080c jam 12 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0233 2020555f branch mouse_adc_no_low_voltage + 3 
+
+p_keyboard_low_voltage_param_set:
+0234 204054f2 call mouse_adc_gpio_set_before_hibernate 
+
+p_keyboard_low_voltage_param_set_backlight_off:
+0235 58560094 setarg 0x560094 
+0236 67e1c62d store 3 ,mem_mouse_vdd_full_vol 
+0237 58006d00 setarg 0x006d00 
+0238 e7e18005 istore 3 ,contw 
+0239 6fe0c637 fetch 1 ,mem_mouse_adc_last_low_voltage_flag 
+023a 203a023d branch p_keyboard_low_voltage_param_set_backligh_off_1v0 ,blank 
+023b 70463173 jam 0x73 ,mem_mouse_vdd_low_vol 
+023c 20600000 rtn 
+
+p_keyboard_low_voltage_param_set_backligh_off_1v0:
+023d 7046316d jam 0x6d ,mem_mouse_vdd_low_vol 
+023e 20600000 rtn 
+
+p_keyboard_24g_repeat_send_data:
+023f 6fe0c8eb fetch 1 ,mem_same_keyvalue_timerout_flag 
+0240 247a0000 nrtn blank 
+0241 20204b62 branch keyboard_24g_repeat_send_data 
+
+p_keyboard_num_capslock_led_on_timer:
+0242 6fe14781 fetch 2 ,mem_mouse_no_data_timer 
+0243 207a0000 rtn blank 
+0244 6fe14725 fetch 2 ,mem_mouse_no_data_timeout 
+0245 68494781 fetcht 2 ,mem_mouse_no_data_timer 
+0246 98460400 isub temp ,temp 
+0247 6fe14869 fetch 2 ,mem_keyboard_caps_led_on_timer 
+0248 98467e00 isub temp ,pdata 
+0249 2021024d branch p_keyboard_num_cap_led_on ,positive 
+024a 20400254 call p_keyboard_numlock_led_off 
+024b 20400256 call p_keyboard_scrolllock_led_off 
+024c 20204b7c branch keyboard_capslock_led_off 
+
+p_keyboard_num_cap_led_on:
+024d 20400250 call p_keyboard_numlock_led_check_on 
+024e 2040025c call p_keyboard_scrolllock_led_check_on 
+024f 20204b7e branch keyboard_capslock_led_check_on 
+
+p_keyboard_numlock_led_check_on:
+0250 6fe0c9aa fetch 1 ,mem_keyboard_led_status 
+0251 c3000254 bbit0 kb_pc_keysel_numlock ,p_keyboard_numlock_led_off 
+0252 6848c867 fetcht 1 ,mem_keyboard_num_led_gpio 
+0253 20206ef7 branch gpio_out_active 
+
+p_keyboard_numlock_led_off:
+0254 6848c867 fetcht 1 ,mem_keyboard_num_led_gpio 
+0255 20206ef3 branch gpio_out_inactive 
+
+p_keyboard_scrolllock_led_off:
+0256 6fe0ca08 fetch 1 ,mem_keyboard_device_poweron_timer_count 
+0257 247a0000 nrtn blank 
+0258 6fe0c40c fetch 1 ,mem_adc_power_flag 
+0259 c3800000 rtnbit1 0 
+025a 6848cbbb fetcht 1 ,mem_keyboard_scroll_led_gpio 
+025b 20206ef3 branch gpio_out_inactive 
+
+p_keyboard_scrolllock_led_check_on:
+025c 6fe0ca08 fetch 1 ,mem_keyboard_device_poweron_timer_count 
+025d 247a0000 nrtn blank 
+025e 6fe0c40c fetch 1 ,mem_adc_power_flag 
+025f c3800000 rtnbit1 0 
+0260 6fe0c9aa fetch 1 ,mem_keyboard_led_status 
+0261 c3010256 bbit0 kb_pc_keysel_scrolllock ,p_keyboard_scrolllock_led_off 
+0262 6848cbbb fetcht 1 ,mem_keyboard_scroll_led_gpio 
+0263 20206ef7 branch gpio_out_active 
+
+p_keyboard_usb_led_check:
+0264 6fe0c621 fetch 1 ,mem_24g_led_status 
+0265 67e0c9aa store 1 ,mem_keyboard_led_status 
+0266 2020024d branch p_keyboard_num_cap_led_on 
+
+p_keyboard_device_poweron_timer:
+0267 6fe0ca08 fetch 1 ,mem_keyboard_device_poweron_timer_count 
+0268 207a0000 rtn blank 
+0269 1fe0ffff increase -1 ,pdata 
+026a 67e0ca08 store 1 ,mem_keyboard_device_poweron_timer_count 
+026b 203a026d branch p_keyboard_device_led_off ,blank 
+026c 20200273 branch p_keyboard_device_led_on 
+
+p_keyboard_device_led_off:
+026d 6fe0c666 fetch 1 ,mem_device_flag 
+026e c0000279 beq mode_24g_device ,p_keyboard_device_24g_led_off 
+026f c000827b beq mode_bt_device1 ,p_keyboard_device_bt1_led_off 
+0270 c001027d beq mode_bt_device2 ,p_keyboard_device_bt2_led_off 
+0271 c001827f beq mode_bt_device3 ,p_keyboard_device_bt3_led_off 
+0272 20600000 rtn 
+
+p_keyboard_device_led_on:
+0273 6fe0c666 fetch 1 ,mem_device_flag 
+0274 c0000281 beq mode_24g_device ,p_keyboard_device_24g_led_on 
+0275 c0008283 beq mode_bt_device1 ,p_keyboard_device_bt1_led_on 
+0276 c0010285 beq mode_bt_device2 ,p_keyboard_device_bt2_led_on 
+0277 c0018287 beq mode_bt_device3 ,p_keyboard_device_bt3_led_on 
+0278 20600000 rtn 
+
+p_keyboard_device_24g_led_off:
+0279 6848cbb7 fetcht 1 ,mem_keyboard_24g_led_gpio 
+027a 20206ef3 branch gpio_out_inactive 
+
+p_keyboard_device_bt1_led_off:
+027b 6848cbb8 fetcht 1 ,mem_keyboard_bt1_led_gpio 
+027c 20206ef3 branch gpio_out_inactive 
+
+p_keyboard_device_bt2_led_off:
+027d 6848cbb9 fetcht 1 ,mem_keyboard_bt2_led_gpio 
+027e 20206ef3 branch gpio_out_inactive 
+
+p_keyboard_device_bt3_led_off:
+027f 6848cbba fetcht 1 ,mem_keyboard_bt3_led_gpio 
+0280 20206ef3 branch gpio_out_inactive 
+
+p_keyboard_device_24g_led_on:
+0281 6848cbb7 fetcht 1 ,mem_keyboard_24g_led_gpio 
+0282 20206ef7 branch gpio_out_active 
+
+p_keyboard_device_bt1_led_on:
+0283 6848cbb8 fetcht 1 ,mem_keyboard_bt1_led_gpio 
+0284 20206ef7 branch gpio_out_active 
+
+p_keyboard_device_bt2_led_on:
+0285 6848cbb9 fetcht 1 ,mem_keyboard_bt2_led_gpio 
+0286 20206ef7 branch gpio_out_active 
+
+p_keyboard_device_bt3_led_on:
+0287 6848cbba fetcht 1 ,mem_keyboard_bt3_led_gpio 
+0288 20206ef7 branch gpio_out_active 
+
+p_keyboard_mode_led_timer:
+0289 6fe14781 fetch 2 ,mem_mouse_no_data_timer 
+028a 207a0000 rtn blank 
+028b 6fe0cbca fetch 1 ,mem_keyboard_mode_led_on_timer 
+028c 207a0000 rtn blank 
+028d 1fe0ffff increase -1 ,pdata 
+028e 67e0cbca store 1 ,mem_keyboard_mode_led_on_timer 
+028f c2800273 bbit1 0 ,p_keyboard_device_led_on 
+0290 2020026d branch p_keyboard_device_led_off 
+
+p_keyboard_device_pair_discovery_led_timer:
+0291 6fe0c666 fetch 1 ,mem_device_flag 
+0292 c0000296 beq mode_24g_device ,p_keyboard_device_pair_led 
+0293 6fe14790 fetch 2 ,mem_mouse_discovery_timer 
+0294 207a0000 rtn blank 
+0295 20200298 branch p_keyboard_device_pair_led + 2 
+
+p_keyboard_device_pair_led:
+0296 6fe145d8 fetch 2 ,mem_24g_pair_timeout 
+0297 207a0000 rtn blank 
+0298 6fe0cd07 fetch 1 ,mem_keyboard_pair_led_flag 
+0299 1fe0fe01 increase 1 ,pdata 
+029a 67e0cd07 store 1 ,mem_keyboard_pair_led_flag 
+029b c2810273 bbit1 2 ,p_keyboard_device_led_on 
+029c 2020026d branch p_keyboard_device_led_off 
+
+p_keyboard_low_voltage_led_timer:
+029d 704d0c00 jam 0 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+029e 6fe14790 fetch 2 ,mem_mouse_discovery_timer 
+029f 247a0000 nrtn blank 
+02a0 6fe145d8 fetch 2 ,mem_24g_pair_timeout 
+02a1 247a0000 nrtn blank 
+02a2 6fe145de fetch 2 ,mem_24g_reconn_timeout 
+02a3 247a0000 nrtn blank 
+02a4 6fe0ca08 fetch 1 ,mem_keyboard_device_poweron_timer_count 
+02a5 247a0000 nrtn blank 
+02a6 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+02a7 c4118000 rtnbit0 mouse_enable_low_led 
+02a8 c4020000 rtnbit0 mouse_low_voltage_flag 
+02a9 c29382ba bbit1 mouse_enable_low_voltage_led_blink_n_second ,p_keyboard_low_voltage_led_blink_new_data 
+02aa 6fe0cd08 fetch 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+02ab 1fe0fe01 increase 1 ,pdata 
+02ac 67e0cd08 store 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+02ad 1fe67c14 sub pdata ,20 ,null 
+02ae 244102b4 ncall p_keyboard_adc_low_volatage_led_timer_count_clean ,positive 
+02af c00102b6 beq 2 ,p_keyboard_low_voltage_led_on 
+02b0 c00202b8 beq 4 ,p_keyboard_low_voltage_led_off 
+02b1 c00302b6 beq 6 ,p_keyboard_low_voltage_led_on 
+02b2 c00402b8 beq 8 ,p_keyboard_low_voltage_led_off 
+02b3 20600000 rtn 
+
+p_keyboard_adc_low_volatage_led_timer_count_clean:
+02b4 704d0801 jam 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+02b5 202002b8 branch p_keyboard_low_voltage_led_off 
+
+p_keyboard_low_voltage_led_on:
+02b6 6848cbbc fetcht 1 ,mem_keyboard_low_voltage_alarm_gpio 
+02b7 20206ef7 branch gpio_out_active 
+
+p_keyboard_low_voltage_led_off:
+02b8 6848cbbc fetcht 1 ,mem_keyboard_low_voltage_alarm_gpio 
+02b9 20206ef3 branch gpio_out_inactive 
+
+p_keyboard_low_voltage_led_blink_new_data:
+02ba 6fe14725 fetch 2 ,mem_mouse_no_data_timeout 
+02bb 68494781 fetcht 2 ,mem_mouse_no_data_timer 
+02bc 98460400 isub temp ,temp 
+02bd 6fe14d09 fetch 2 ,mem_adc_low_volatage_led_blink_timer 
+02be 98467c00 isub temp ,null 
+02bf 242102b8 nbranch p_keyboard_low_voltage_led_off ,positive 
+02c0 704d0c01 jam 1 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+02c1 6fe0cd0b fetch 1 ,mem_keyboard_low_volatage_led_flag 
+02c2 1fe0fe01 increase 1 ,pdata 
+02c3 67e0cd0b store 1 ,mem_keyboard_low_volatage_led_flag 
+02c4 c28082b6 bbit1 1 ,p_keyboard_low_voltage_led_on 
+02c5 202002b8 branch p_keyboard_low_voltage_led_off 
+
+p_keyboard_low_voltage_led_no_enter_lpm:
+02c6 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+02c7 c4118000 rtnbit0 mouse_enable_low_led 
+02c8 c4020000 rtnbit0 mouse_low_voltage_flag 
+02c9 c29382ce bbit1 mouse_enable_low_voltage_led_blink_n_second ,p_mouse_low_voltage_led_no_enter_lpm_blink 
+02ca 6fe0cd08 fetch 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+02cb 1fe67c0a sub pdata ,10 ,null 
+02cc 2021621b branch mouse_lpm_mode_clear ,positive 
+02cd 20206214 branch mouse_low_voltage_led_no_enter_lpm_next 
+
+p_mouse_low_voltage_led_no_enter_lpm_blink:
+02ce 6fe0cd0c fetch 1 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+02cf 243a621b nbranch mouse_lpm_mode_clear ,blank 
+02d0 20206214 branch mouse_low_voltage_led_no_enter_lpm_next 
+
+p_keyboard_discover_setting_led_gpio:
+02d1 20600000 rtn 
+
+p_keyboard_long_press_timer:
+02d2 da6048ee arg mem_same_keyvalue_timer ,regc 
+02d3 da4002d5 arg p_keyboard_long_press_timerout ,regb 
+02d4 202042e7 branch timer_single_step_2b 
+
+p_keyboard_long_press_timerout:
+02d5 7048eb01 jam 1 ,mem_same_keyvalue_timerout_flag 
+02d6 20204f6c branch keyboard_app_enter_hibernate 
+
+p_keyboard_check_no_data_timeout_timer:
+02d7 da604781 arg mem_mouse_no_data_timer ,regc 
+02d8 da404b8d arg keyboard_check_no_data_timeout ,regb 
+02d9 202042e7 branch timer_single_step_2b 
+
+p_keyboard_key_press_timer:
+02da 6fe0cba1 fetch 1 ,mem_keyboard_switch_device_flag 
+02db c28082dd bbit1 keyboard_flag_bt_device_button ,p_keyboard_device_select_bt_press_timer 
+02dc 202002e7 branch p_keyboard_device_select_bt_nopress_timer 
+
+p_keyboard_device_select_bt_press_timer:
+02dd 6fe0cba6 fetch 1 ,mem_keyboard_switch_bt_press_timer 
+02de 1fe67c64 sub pdata ,100 ,null 
+02df 24610000 nrtn positive 
+02e0 1fe0fe01 increase 1 ,pdata 
+02e1 67e0cba6 store 1 ,mem_keyboard_switch_bt_press_timer 
+02e2 c18c8000 rtnne 25 
+02e3 704ba500 jam 0 ,mem_keyboard_switch_bt_enable 
+02e4 6fe0c666 fetch 1 ,mem_device_flag 
+02e5 c1020000 rtneq mode_usb_device 
+02e6 20204e2c branch keyboard_long_button_bt_discovery + 3 
+
+p_keyboard_device_select_bt_nopress_timer:
+02e7 704ba600 jam 0 ,mem_keyboard_switch_bt_press_timer 
+02e8 20600000 rtn 
+
+p_keyboard_idle:
+02e9 204002c6 call p_keyboard_low_voltage_led_no_enter_lpm 
+02ea 202078aa branch ui_check_paring_button 
+
+p_keyboard_start_work:
+
+p_keyboard_start_work_adc_check:
+02eb 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+02ec c30a82fe bbit0 mouse_enable_adc ,p_keyboard_start_work_next 
+02ed 20405534 call mouse_adc_gpio_set 
+02ee 20400234 call p_keyboard_low_voltage_param_set 
+02ef 20406f82 call enable_adc 
+02f0 20406fb0 call vdd_calculate_by_mode 
+02f1 1fe6fc0a div pdata ,10 
+02f2 20407d5f call get_div_result 
+02f3 67e14633 store 2 ,mem_mouse_vdd_now_vol 
+02f4 6fe1462f fetch 2 ,mem_mouse_vdd_empty_vol 
+02f5 1fe6fc02 div pdata ,2 
+02f6 20407d5f call get_div_result 
+02f7 68494633 fetcht 2 ,mem_mouse_vdd_now_vol 
+02f8 98467c00 isub temp ,null 
+02f9 202102eb branch p_keyboard_start_work_adc_check ,positive 
+02fa da20462d arg mem_mouse_vdd_calculate_set ,rega 
+02fb 20405563 call mouse_adc_bat_percent_lowpower_out 
+02fc 6fe0c40c fetch 1 ,mem_adc_power_flag 
+02fd c280cf6b bbit1 1 ,keyboard_power_down 
+
+p_keyboard_start_work_next:
+02fe 6fe0c9a4 fetch 1 ,mem_keyboard_pairing_type 
+02ff 205a4e24 call keyboard_enable_bt_button_pairing ,blank 
+0300 6fe0c9a3 fetch 1 ,mem_keyboard_bt_button_flag 
+0301 247a0000 nrtn blank 
+0302 6fe0c666 fetch 1 ,mem_device_flag 
+0303 c000602f beq mode_24g_device ,mouse_24g_reconn_general_dongle 
+0304 20405aa8 call mouse_bluetooth_fast_conn_disable 
+
+p_keyboard_start_ble1_reconnect:
+0305 6fe34668 fetch 6 ,mem_device1_addr 
+
+p_keyboard_start_ble_reconnect:
+0306 203a5a94 branch mouse_bluetooth_fast_conn_init ,blank 
+0307 202054a0 branch mouse_start_reconnect_device 
+
+p_keyboard_keyscan:
+0308 204004f3 call p_keyboard_gpio_init 
+0309 20404c85 call keyboard_stb_state_low 
+030a 58000000 setarg 0 
+030b 67e148e9 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+030c d8c0489c arg mem_keyscan_value_current ,contr 
+030d d8a048b0 arg mem_keyscan_value_check ,contw 
+030e df200014 arg 20 ,loopcnt 
+030f 20407cda call memcpy 
+0310 5800489c setarg mem_keyscan_value_current 
+0311 67e148e3 store 2 ,mem_keyscan_value_ptr 
+0312 58004cfb setarg mem_keyscan_exmcu_value_new 
+0313 67e148e5 store 2 ,mem_keyscan_exmcu_value_ptr 
+0314 20404c83 call keyboard_stb_state_high 
+0315 20404c81 call keyboard_clk_input 
+
+p_keyboard_keyscan_exmcu_start_check:
+0316 6fe148e9 fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+0317 1fe0fe01 increase 1 ,pdata 
+0318 67e148e9 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0319 c284834f bbit1 9 ,p_keyboard_keyscan_reset_exmcu 
+031a 6848c864 fetcht 1 ,mem_mcu_clk_gpio 
+031b 20406ee6 call gpio_get_bit 
+031c 24208316 nbranch p_keyboard_keyscan_exmcu_start_check ,true 
+031d 20404c85 call keyboard_stb_state_low 
+
+p_keyboard_keyscan_wait_wake_next:
+031e 6848c864 fetcht 1 ,mem_mcu_clk_gpio 
+031f 20406ee6 call gpio_get_bit 
+0320 2020831e branch p_keyboard_keyscan_wait_wake_next ,true 
+0321 20400346 call p_keyboard_keyscan_get_exmcu_value 
+0322 20400356 call p_keyboard_keyscan_get_mcu_value 
+0323 20404c81 call keyboard_clk_input 
+0324 20404c83 call keyboard_stb_state_high 
+
+p_keyboard_keyscan_copy_value:
+0325 6fe1489a fetch 2 ,mem_kb_excol_ptr 
+0326 1fe22400 copy pdata ,regb 
+0327 7048e800 jam 0 ,mem_keyscan_col_loop_count 
+
+p_keyboard_compare_col_excol_gpio_loop:
+0328 e8408012 ifetcht 1 ,regb 
+0329 6fe14898 fetch 2 ,mem_kb_col_ptr 
+032a 1fe22200 copy pdata ,rega 
+032b 1a222600 copy rega ,regc 
+032c df200014 arg 20 ,loopcnt 
+
+p_keyboard_compare_col_gpio_loop:
+032d efe08011 ifetch 1 ,rega 
+032e 98467c00 isub temp ,null 
+032f 2022833a branch p_keyboard_copy_value_exmcu_to_mcu ,zero 
+0330 1a20a201 increase 1 ,rega 
+0331 c200032d loop p_keyboard_compare_col_gpio_loop 
+
+p_keyboard_compare_col_excol_gpio_loop_next:
+0332 1a40a401 increase 1 ,regb 
+0333 6fe0c8e8 fetch 1 ,mem_keyscan_col_loop_count 
+0334 1fe0fe01 increase 1 ,pdata 
+0335 67e0c8e8 store 1 ,mem_keyscan_col_loop_count 
+0336 1fe67c0b sub pdata ,11 ,null 
+0337 20210328 branch p_keyboard_compare_col_excol_gpio_loop ,positive 
+0338 20400485 call p_keyboard_gpio_pu_idle 
+0339 20200502 branch p_keyboard_key_row_init 
+
+p_keyboard_copy_value_exmcu_to_mcu:
+033a 6fe148e3 fetch 2 ,mem_keyscan_value_ptr 
+033b 1fe20a00 copy pdata ,contw 
+033c 1a227e00 copy rega ,pdata 
+033d 9a667e00 isub regc ,pdata 
+033e 98a08a00 iadd contw ,contw 
+033f 6fe148e5 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+0340 1fe22600 copy pdata ,regc 
+0341 6fe0c8e8 fetch 1 ,mem_keyscan_col_loop_count 
+0342 9a60a600 iadd regc ,regc 
+0343 efe08013 ifetch 1 ,regc 
+0344 e7e08005 istore 1 ,contw 
+0345 20200332 branch p_keyboard_compare_col_excol_gpio_loop_next 
+
+p_keyboard_keyscan_get_exmcu_value:
+0346 704ab900 jam 0 ,mem_keyscan_exmcu_reset_count 
+0347 7048e800 jam 0 ,mem_keyscan_col_loop_count 
+
+p_keyboard_keyscan_exmcu_start_loop:
+0348 20404c7b call keyboard_clk_state_low 
+0349 20400350 call p_keyboard_keyscan_exmcu_get_col_value 
+034a 20404c79 call keyboard_clk_state_high 
+034b 20400350 call p_keyboard_keyscan_exmcu_get_col_value 
+034c 1fe67c0b sub pdata ,11 ,null 
+034d 20210348 branch p_keyboard_keyscan_exmcu_start_loop ,positive 
+034e 20204c7b branch keyboard_clk_state_low 
+
+p_keyboard_keyscan_reset_exmcu:
+034f 20200308 branch p_keyboard_keyscan 
+
+p_keyboard_keyscan_exmcu_get_col_value:
+0350 7048e700 jam 0 ,mem_keyscan_value_temp 
+0351 20400354 call p_keyboard_keyscan_get_col_value 
+0352 6fe148e5 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+0353 20204c4a branch keyboard_keyscan_value_store 
+
+p_keyboard_keyscan_get_col_value:
+0354 20000078 nop 120 
+0355 20204c65 branch keyboard_keyscan_get_col_value 
+
+p_keyboard_keyscan_get_mcu_value:
+0356 6fe14898 fetch 2 ,mem_kb_col_ptr 
+0357 1fe22400 copy pdata ,regb 
+0358 7048e800 jam 0 ,mem_keyscan_col_loop_count 
+
+p_keyboard_keyscan_mcu_start:
+0359 7048e700 jam 0 ,mem_keyscan_value_temp 
+035a e8408012 ifetcht 1 ,regb 
+035b 284ffe07 isolate1 7 ,temp 
+035c 20208363 branch p_keyboard_keyscan_mcu_start_loop ,true 
+035d 20406ef7 call gpio_out_active 
+035e 20400354 call p_keyboard_keyscan_get_col_value 
+035f e8408012 ifetcht 1 ,regb 
+0360 20406ef3 call gpio_out_inactive 
+0361 e8408012 ifetcht 1 ,regb 
+0362 20404c7d call keyboard_gpio_config_input_pu 
+
+p_keyboard_keyscan_mcu_start_loop:
+0363 1a40a401 increase 1 ,regb 
+0364 6fe148e3 fetch 2 ,mem_keyscan_value_ptr 
+0365 20404c4a call keyboard_keyscan_value_store 
+0366 1fe67c13 sub pdata ,19 ,null 
+0367 20210359 branch p_keyboard_keyscan_mcu_start ,positive 
+0368 20600000 rtn 
+
+p_keyboard_key_process:
+0369 da20489c arg mem_keyscan_value_current ,rega 
+036a da4048b0 arg mem_keyscan_value_check ,regb 
+036b df200014 arg 20 ,loopcnt 
+036c 20407d64 call string_compare 
+036d 2422cc87 nbranch keyboard_press_change_or_no_key ,zero 
+036e 204003a3 call p_keyboard_keyscan_value_current_zero_check 
+036f 205a4c87 call keyboard_press_change_or_no_key ,blank 
+0370 20404ccd call keyboard_ghost_key_check 
+0371 6fe0c97b fetch 1 ,mem_mouse_ghost_flag 
+0372 247a0000 nrtn blank 
+0373 6fe0c9c1 fetch 1 ,mem_keyboard_commbination_key_step 
+0374 c1008000 rtneq cammbination_key_press 
+0375 c1010000 rtneq cammbination_key_hold 
+0376 c1020000 rtneq cammbination_key_wait_release 
+0377 7048e800 jam 0 ,mem_keyscan_col_loop_count 
+0378 da20489c arg mem_keyscan_value_current ,rega 
+0379 da4048c4 arg mem_keyscan_value_old ,regb 
+
+p_keyboard_keyvalue_process:
+037a e8408011 ifetcht 1 ,rega 
+037b efe08012 ifetch 1 ,regb 
+037c 9842fe00 ixor temp ,pdata 
+037d 203a039b branch p_keyboard_keyvalue_process_loop ,blank 
+037e 67e0c8e7 store 1 ,mem_keyscan_value_temp 
+037f 6048c8f6 storet 1 ,mem_keyboard_press_flag_temp 
+0380 e0408012 istoret 1 ,regb 
+0381 7048f401 jam 1 ,mem_keyboard_data_change_flag 
+0382 7048f700 jam 0 ,mem_keyboard_keyvalue_bit_loop_count 
+
+p_keyboard_keyvalue_change:
+0383 6fe0c8e7 fetch 1 ,mem_keyscan_value_temp 
+0384 c3000390 bbit0 0 ,p_keyboard_keyvalue_change_loop 
+0385 6fe0c8e8 fetch 1 ,mem_keyscan_col_loop_count 
+0386 1feffe08 mul32 pdata ,8 ,pdata 
+0387 6848c8f7 fetcht 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0388 9840fe00 iadd temp ,pdata 
+0389 d8c04a16 arg mem_keyboard_keyvalue_map_new ,contr 
+038a 98c08c00 iadd contr ,contr 
+038b efe08006 ifetch 1 ,contr 
+038c 67e0c8f5 store 1 ,mem_keyboard_keyvalue_temp 
+038d 20404cfc call keyboard_keyvalue_fn_replace 
+038e 204003af call p_keyboard_keyvalue_commbination_replace 
+038f 204003b9 call p_keyboard_keyvalue_in_out 
+
+p_keyboard_keyvalue_change_loop:
+0390 6fe0c8e7 fetch 1 ,mem_keyscan_value_temp 
+0391 1fe37e00 rshift pdata ,pdata 
+0392 67e0c8e7 store 1 ,mem_keyscan_value_temp 
+0393 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+0394 1fe37e00 rshift pdata ,pdata 
+0395 67e0c8f6 store 1 ,mem_keyboard_press_flag_temp 
+0396 6fe0c8f7 fetch 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0397 1fe0fe01 increase 1 ,pdata 
+0398 67e0c8f7 store 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0399 1fe67c07 sub pdata ,7 ,null 
+039a 20210383 branch p_keyboard_keyvalue_change ,positive 
+
+p_keyboard_keyvalue_process_loop:
+039b 1a20a201 increase 1 ,rega 
+039c 1a40a401 increase 1 ,regb 
+039d 6fe0c8e8 fetch 1 ,mem_keyscan_col_loop_count 
+039e 1fe0fe01 increase 1 ,pdata 
+039f 67e0c8e8 store 1 ,mem_keyscan_col_loop_count 
+03a0 1fe67c13 sub pdata ,19 ,null 
+03a1 2021037a branch p_keyboard_keyvalue_process ,positive 
+03a2 20600000 rtn 
+
+p_keyboard_keyscan_value_current_zero_check:
+03a3 6fe4489c fetch 8 ,mem_keyscan_value_current 
+03a4 247a0000 nrtn blank 
+03a5 6fe448a4 fetch 8 ,mem_keyscan_value_current + 8 
+03a6 247a0000 nrtn blank 
+03a7 6fe248ac fetch 4 ,mem_keyscan_value_current + 16 
+03a8 247a0000 nrtn blank 
+03a9 6fe0c9c4 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+03aa 247a0000 nrtn blank 
+03ab 6fe0c9c1 fetch 1 ,mem_keyboard_commbination_key_step 
+03ac c1030000 rtneq cammbination_key_null 
+03ad 7049c100 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+03ae 20600000 rtn 
+
+p_keyboard_keyvalue_commbination_replace:
+03af 6fe0c8f5 fetch 1 ,mem_keyboard_keyvalue_temp 
+03b0 c05683b2 beq hid_key_search ,p_keyboard_commbination_search 
+03b1 20204d3c branch keyboard_keyvalue_commbination_replace + 2 
+
+p_keyboard_commbination_search:
+03b2 6fe0c9c6 fetch 1 ,mem_kb_computer_system 
+03b3 c00183b6 beq system_os_mac ,p_keyboard_commbination_mac_search 
+03b4 580000fa setarg hid_key_ac_search 
+03b5 20204d38 branch keyboard_keyvalue_store_temp 
+
+p_keyboard_commbination_mac_search:
+03b6 7049c208 jam left_gui ,mem_keyboard_commbination_control_key_value 
+03b7 7049c32c jam hid_key_space ,mem_keyboard_commbination_standard_key_value 
+03b8 20204d95 branch keyboard_commbination_keypress 
+
+p_keyboard_keyvalue_in_out:
+03b9 6fe0c8f5 fetch 1 ,mem_keyboard_keyvalue_temp 
+03ba d84000e0 arg hid_key_left_ctrl ,temp 
+03bb 98467c00 isub temp ,null 
+03bc 242103cb nbranch p_keyboard_keyvalue_standard ,positive 
+03bd 1fe67ce7 sub pdata ,hid_key_right_gui ,null 
+03be 242103e8 nbranch p_keyboard_keyvalue_consumer ,positive 
+03bf 1fe17e07 and_into 0x07 ,pdata 
+03c0 1fe20e00 copy pdata ,queue 
+03c1 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+03c2 c28003c7 bbit1 0 ,p_keyboard_keyvalue_control_key_in 
+
+p_keyboard_keyvalue_control_key_out:
+03c3 6fe0c8f8 fetch 1 ,mem_keyboard_keyvalue_buffer 
+03c4 f93ffe00 qset0 pdata 
+03c5 67e0c8f8 store 1 ,mem_keyboard_keyvalue_buffer 
+03c6 20600000 rtn 
+
+p_keyboard_keyvalue_control_key_in:
+03c7 6fe0c8f8 fetch 1 ,mem_keyboard_keyvalue_buffer 
+03c8 f9207e00 qset1 pdata 
+03c9 67e0c8f8 store 1 ,mem_keyboard_keyvalue_buffer 
+03ca 20600000 rtn 
+
+p_keyboard_keyvalue_standard:
+03cb 70490000 jam 0 ,mem_keyboard_keyvalue_buffer + 8 
+03cc 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+03cd c28003dc bbit1 0 ,p_keyboard_keyvalue_standard_in 
+
+p_keyboard_keyvalue_standard_out:
+03ce 6848c8f5 fetcht 1 ,mem_keyboard_keyvalue_temp 
+03cf df200006 arg 6 ,loopcnt 
+03d0 d8c048fa arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+
+p_keyboard_keyvalue_standard_out_loop:
+03d1 efe08006 ifetch 1 ,contr 
+03d2 98467c00 isub temp ,null 
+03d3 242283da nbranch p_keyboard_keyvalue_standard_out_next ,zero 
+03d4 efe08006 ifetch 1 ,contr 
+03d5 18c08dfe increase -2 ,contr 
+03d6 e7e08006 istore 1 ,contr 
+03d7 207a0000 rtn blank 
+03d8 18c08c01 increase 1 ,contr 
+03d9 e0408006 istoret 1 ,contr 
+
+p_keyboard_keyvalue_standard_out_next:
+03da c20003d1 loop p_keyboard_keyvalue_standard_out_loop 
+03db 20600000 rtn 
+
+p_keyboard_keyvalue_standard_in:
+03dc 6848c8f5 fetcht 1 ,mem_keyboard_keyvalue_temp 
+03dd df200006 arg 6 ,loopcnt 
+03de d8c048fa arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+
+p_keyboard_keyvalue_standard_in_loop:
+03df efe08006 ifetch 1 ,contr 
+03e0 203a03e5 branch p_keyboard_keyvalue_standard_in_data ,blank 
+03e1 98467c00 isub temp ,null 
+03e2 20628000 rtn zero 
+03e3 c20003df loop p_keyboard_keyvalue_standard_in_loop 
+03e4 20600000 rtn 
+
+p_keyboard_keyvalue_standard_in_data:
+03e5 18c08dff increase -1 ,contr 
+03e6 e0408006 istoret 1 ,contr 
+03e7 20600000 rtn 
+
+p_keyboard_keyvalue_consumer:
+03e8 7049c501 jam keyboard_consumer_key_press ,mem_keyboard_consumer_key_status 
+03e9 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+03ea 2fec0000 isolate0 0 ,pdata 
+03eb 204083ed call p_keyboard_consumer_key_release ,true 
+03ec 202003cb branch p_keyboard_keyvalue_standard 
+
+p_keyboard_consumer_key_release:
+03ed 7049c502 jam keyboard_consumer_key_release ,mem_keyboard_consumer_key_status 
+03ee 20600000 rtn 
+
+p_keyboard_keyvalue_fn_replace:
+03ef 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+03f0 2feffe00 isolate1 0 ,pdata 
+03f1 2040cd4e call keyboard_commbination_delay_release_clear ,true 
+03f2 6fe0c9a1 fetch 1 ,mem_keyboard_fn_flag 
+03f3 245a03f5 ncall p_keyboard_keyvalue_fn_replace_press ,blank 
+03f4 20204d01 branch keyboard_keyvalue_fn_replace + 5 
+
+p_keyboard_keyvalue_fn_replace_press:
+03f5 6fe0c8f5 fetch 1 ,mem_keyboard_keyvalue_temp 
+03f6 c00a03fa beq hid_key_q ,p_keyboard_keyvalue_os_andriod 
+03f7 c00d0400 beq hid_key_w ,p_keyboard_keyvalue_os_windows 
+03f8 c0040404 beq hid_key_e ,p_keyboard_keyvalue_os_ios 
+03f9 20204d12 branch keyboard_keyvalue_fn_replace_press + 1 
+
+p_keyboard_keyvalue_os_andriod:
+03fa 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+03fb c30003fe bbit0 0 ,p_keyboard_keyvalue_clear_temp_end 
+03fc 7049c601 jam system_os_andriod ,mem_kb_computer_system 
+
+p_keyboard_keyvalue_clear_temp:
+03fd 704bca06 jam 6 ,mem_keyboard_mode_led_on_timer 
+
+p_keyboard_keyvalue_clear_temp_end:
+03fe 58000000 setarg 0 
+03ff 20204d38 branch keyboard_keyvalue_store_temp 
+
+p_keyboard_keyvalue_os_windows:
+0400 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+0401 c30003fe bbit0 0 ,p_keyboard_keyvalue_clear_temp_end 
+0402 7049c600 jam system_os_windows ,mem_kb_computer_system 
+0403 202003fd branch p_keyboard_keyvalue_clear_temp 
+
+p_keyboard_keyvalue_os_ios:
+0404 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+0405 c30003fe bbit0 0 ,p_keyboard_keyvalue_clear_temp_end 
+0406 7049c602 jam system_os_ios ,mem_kb_computer_system 
+0407 202003fd branch p_keyboard_keyvalue_clear_temp 
+
+p_keyboard_special_key_check:
+0408 20204df6 branch keyboard_special_key_check + 1 
+
+p_keyboard_motion:
+0409 78547c00 disable user 
+040a 70496c00 jam 0 ,mem_customer_key 
+040b 70496d00 jam 0 ,mem_customer_data_trigger 
+040c 70496e00 jam 0 ,mem_customer_data_trigger_last 
+040d 6fe0c9c1 fetch 1 ,mem_keyboard_commbination_key_step 
+040e c000cda5 beq cammbination_key_press ,keyboard_commbination_key_press_process 
+040f c0014daa beq cammbination_key_hold ,keyboard_commbination_key_hold_process 
+0410 c001cdaa beq cammbination_key_complete ,keyboard_commbination_key_hold_process 
+0411 c0024dae beq cammbination_key_wait_release ,keyboard_commbination_key_wait_release_process 
+0412 c0034db7 beq cammbination_key_null ,keyboard_commbination_key_null_process 
+0413 6fe0c8f4 fetch 1 ,mem_keyboard_data_change_flag 
+0414 203a0416 branch p_keyboard_no_key_press ,blank 
+0415 20204e54 branch keyboard_motion + 13 
+
+p_keyboard_no_key_press:
+0416 6fe0c666 fetch 1 ,mem_device_flag 
+0417 c1800000 rtnne mode_24g_device 
+0418 20204e66 branch keyboard_no_key_press + 2 
+
+p_keyboard_device_data_tpye_check:
+0419 6fe0c666 fetch 1 ,mem_device_flag 
+041a c0800420 bne mode_24g_device ,p_keyboard_device_data_tpye_check_next 
+041b 7049a900 jam 0 ,mem_24g_repeat_send_flag 
+041c 6fe14855 fetch 2 ,mem_keyboard_tx_data 
+041d 245a4afc ncall keyboard_set_repeat_send_flag ,blank 
+041e 6fe34858 fetch 6 ,mem_keyboard_tx_data + 3 
+041f 245a4afc ncall keyboard_set_repeat_send_flag ,blank 
+
+p_keyboard_device_data_tpye_check_next:
+0420 6fe0c855 fetch 1 ,mem_keyboard_tx_data 
+0421 c0000423 beq hid_reportid_key_standard ,p_keyboard_standard_data_send 
+0422 20204f19 branch keyboard_device_data_tpye_check_next + 1 
+
+p_keyboard_standard_data_send:
+0423 70485f02 jam device_data_tpye_standard_keyboard ,mem_keyboard_data_send_flag 
+0424 20404f3e call keyboard_clear_key_data 
+0425 6fe0c666 fetch 1 ,mem_device_flag 
+0426 c0804f2a bne mode_24g_device ,keyboard_standard_data_send_end 
+0427 20204f27 branch keyboard_standard_data_send + 4 
+
+p_keyboard_cb_fuction:
+0428 58000445 setarg p_keyboard_24g_before_lpm_sleep 
+0429 67e143e9 store 2 ,mem_cb_before_lpm_sleep 
+042a 58004fe5 setarg keyboard_24g_package_data 
+042b 67e145f2 store 2 ,mem_cb_24g_transmit_data 
+042c 58004ff8 setarg keyboard_24g_search_dongle 
+042d 67e145f4 store 2 ,mem_cb_24g_search_receiver 
+042e 58000448 setarg p_keyboard_lpm_before_common 
+042f 67e145f6 store 2 ,mem_cb_24g_lpm_before 
+0430 58000539 setarg p_keyboard_le 
+0431 67e143d9 store 2 ,mem_cb_le_process 
+0432 58000476 setarg p_keyboard_process_lpm_before 
+0433 67e143d7 store 2 ,mem_cb_before_lpm 
+0434 58004a9a setarg keyboard_priority_bb_event 
+0435 67e143dd store 2 ,mem_cb_bb_event_process 
+0436 58004bcc setarg keyboard_idle 
+0437 67e143db store 2 ,mem_cb_idle_process 
+0438 58004f62 setarg keyboard_before_hibernate 
+0439 67e143d5 store 2 ,mem_cb_before_hibernate 
+043a 58005b08 setarg mouse_le_bb_event_connect_complete 
+043b 67e143df store 2 ,mem_cb_att_write 
+043c 58004b19 setarg keyboard_bb_event_timer 
+043d 67e143e3 store 2 ,mem_cb_event_timer 
+043e 580055fa setarg mouse_spi_write_flash_cb 
+043f 67e143e7 store 2 ,mem_cb_spi_flash_write_complate 
+0440 58006221 setarg mouse_le_transmit 
+0441 67e143e1 store 2 ,mem_cb_ble_transmit 
+0442 58006228 setarg mouse_set_lpm_mult 
+0443 67e143e5 store 2 ,mem_cb_bt_set_mult 
+0444 20600000 rtn 
+
+p_keyboard_24g_before_lpm_sleep:
+0445 6fe0c666 fetch 1 ,mem_device_flag 
+0446 c1800000 rtnne mode_24g_device 
+0447 2020610b branch mouse_24g_before_lpm_sleep + 2 
+
+p_keyboard_lpm_before_common:
+0448 20400470 call p_clear_wake 
+0449 6848c655 fetcht 1 ,mem_config_select_device_button_gpio 
+044a 20406eb6 call gpio_set_wake 
+044b 6848cbbd fetcht 1 ,mem_usb_level_check_gpio 
+044c 79200407 set1 7 ,temp 
+044d 20406eb6 call gpio_set_wake 
+044e 6fe14898 fetch 2 ,mem_kb_col_ptr 
+044f 1fe22400 copy pdata ,regb 
+0450 df200014 arg 20 ,loopcnt 
+
+p_keyboard_key_col_wake_init:
+0451 e8408012 ifetcht 1 ,regb 
+0452 284ffe07 isolate1 7 ,temp 
+0453 2440eef7 ncall gpio_out_active ,true 
+0454 1a40a401 increase 1 ,regb 
+0455 c2000451 loop p_keyboard_key_col_wake_init 
+0456 20400485 call p_keyboard_gpio_pu_idle 
+0457 704d0d00 jam 0 ,mem_qdec_set_flag 
+0458 6fe14896 fetch 2 ,mem_kb_row_ptr 
+0459 1fe22400 copy pdata ,regb 
+045a df200008 arg 8 ,loopcnt 
+
+p_keyboard_key_row_wake_init:
+045b e8408012 ifetcht 1 ,regb 
+045c 18467cff sub temp ,ui_button_gpio_disable ,null 
+045d 2442cf5a ncall keyboard_key_row_wake_set ,zero 
+045e 1a40a401 increase 1 ,regb 
+045f c200045b loop p_keyboard_key_row_wake_init 
+0460 20400493 call p_keyboard_puchk_set_check 
+0461 6848c65b fetcht 1 ,mem_mouse_reuse_2ice_gpio 
+0462 204055b5 call mouse_gpio_config_input_pu 
+0463 204055b9 call mouse_gpio_set_high_impedance 
+0464 202054f2 branch mouse_adc_gpio_set_before_hibernate 
+
+p_gpio_set_wake_by_current_state:
+0465 18467cff sub temp ,gpio_disable ,null 
+0466 20628000 rtn zero 
+0467 79200407 set1 gpio_active_bit ,temp 
+0468 20406ee6 call gpio_get_bit 
+0469 2420846c nbranch p_gpio_set_low_pullup ,true 
+046a 7d208407 nsetflag true ,gpio_active_bit ,temp 
+046b 20206eb6 branch gpio_set_wake 
+
+p_gpio_set_low_pullup:
+046c 704d0d01 jam 1 ,mem_qdec_set_flag 
+046d 20406f0f call gpio_set_high_impedance 
+046e d9000006 arg 6 ,debug 
+046f 20206ebd branch gpio_set_wake_high 
+
+p_clear_wake:
+0470 58000000 setarg 0 
+0471 79207e15 set1 21 ,pdata 
+0472 67e40016 store 8 ,mem_gpio_wakeup_cfg 
+0473 58000000 setarg 0 
+0474 e7e20005 istore 4 ,contw 
+0475 20600000 rtn 
+
+p_keyboard_process_lpm_before:
+0476 c6130000 rtnmark1 mark_24g 
+0477 20200448 branch p_keyboard_lpm_before_common 
+
+p_keyboard_before_hibernate:
+0478 704659ff jam 0xff ,mem_sensor_motion_gpio 
+0479 2040739a call disable_authrom 
+047a 20404f70 call keyboard_device_led_all_off 
+047b 20200482 branch p_keyboard_setgpio_hibernate 
+
+p_keyboard_device_led_all_off:
+047c 20404b6f call keyboard_power_led_off 
+047d 2040026d call p_keyboard_device_led_off 
+047e 20400254 call p_keyboard_numlock_led_off 
+047f 20204b7c branch keyboard_capslock_led_off 
+
+p_keyboard_app_enter_hibernate:
+0480 20400482 call p_keyboard_setgpio_hibernate 
+0481 20204327 branch app_enter_hibernate 
+
+p_keyboard_setgpio_hibernate:
+0482 20400470 call p_clear_wake 
+0483 20404f70 call keyboard_device_led_all_off 
+0484 20200448 branch p_keyboard_lpm_before_common 
+
+p_keyboard_gpio_pu_idle:
+0485 d8c08070 arg core_gpio_conf ,contr 
+0486 df200010 arg gpio_number ,loopcnt 
+
+p_keyboard_gpio_pu_idle_loop:
+0487 efe08006 ifetch 1 ,contr 
+0488 243a048c nbranch p_keyboard_gpio_pu_idle_configured ,blank 
+0489 58000040 setarg gpcfg_pullup 
+048a 18c08bff add contr ,-1 ,contw 
+048b e7e08005 istore 1 ,contw 
+
+p_keyboard_gpio_pu_idle_configured:
+048c c2000487 loop p_keyboard_gpio_pu_idle_loop 
+048d dfe080dc arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+048e 98c67c00 isub contr ,null 
+048f 20628000 rtn zero 
+0490 df200008 arg gpio_number_ext ,loopcnt 
+0491 d8c080d4 arg core_gpio_conf_hi ,contr 
+0492 20200487 branch p_keyboard_gpio_pu_idle_loop 
+
+p_keyboard_puchk_set_check:
+0493 6fe0cd0d fetch 1 ,mem_qdec_set_flag 
+0494 203a0496 branch p_keyboard_puchk_disable ,blank 
+0495 2020049a branch p_keyboard_puchk_enable 
+
+p_keyboard_puchk_disable:
+0496 58000010 setarg 0x10 
+
+p_keyboard_puchk_set:
+0497 67f08141 store 1 ,core_puwakeup 
+0498 37d98200 until null ,lpo_edge 
+0499 20600000 rtn 
+
+p_keyboard_puchk_enable:
+049a 58000080 setarg 0x80 
+049b 20200497 branch p_keyboard_puchk_set 
+
+p_lpm_dispatch:
+049c 20402408 call lpo_calibration 
+049d 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+049e 207a0000 rtn blank 
+049f 6fe0c9a1 fetch 1 ,mem_keyboard_fn_flag 
+04a0 247a0000 nrtn blank 
+04a1 6fe0c9a2 fetch 1 ,mem_keyboard_control_key_flag 
+04a2 247a0000 nrtn blank 
+04a3 6fe0c845 fetch 1 ,mem_mouse_direct_timer 
+04a4 247a0000 nrtn blank 
+04a5 6fe14790 fetch 2 ,mem_mouse_discovery_timer 
+04a6 247a0000 nrtn blank 
+04a7 6fe0c9c4 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+04a8 247a0000 nrtn blank 
+04a9 20202490 branch lpm_dispatch + 4 
+
+p_lpm_sleep:
+04aa 6fe143e9 fetch 2 ,mem_cb_before_lpm_sleep 
+04ab 20407d79 call callback_func 
+
+p_lpm_sleep_skip_cb_function:
+04ac 6fe240ad fetch 4 ,mem_sleep_counter_all 
+04ad 9840fe00 iadd temp ,pdata 
+04ae 67e240ad store 4 ,mem_sleep_counter_all 
+04af 204004b1 call p_lpm_save_context 
+04b0 20202425 branch lpm_sleep_skip_cb_function + 4 
+
+p_lpm_save_context:
+04b1 600440e7 storer mark ,8 ,mem_saved_mark 
+04b2 d8c08070 arg core_gpio_conf ,contr 
+04b3 d8a040cc arg mem_saved_gpio ,contw 
+04b4 20407c8f call memcpy16 
+04b5 d8c080d4 arg core_gpio_conf_hi ,contr 
+04b6 20407c89 call memcpy8 
+04b7 6ff08080 fetch 1 ,core_spid_ctrl 
+04b8 67e0c0ef store 1 ,mem_saved_spidctrl 
+04b9 18422400 copy temp ,regb 
+
+p_lpm_write_gpio_wakeup:
+04ba df20000c arg 12 ,loopcnt 
+04bb da200016 arg mem_gpio_wakeup_cfg ,rega 
+04bc da60814d arg core_gpio_wakeup_cfg ,regc 
+04bd 37d98200 until null ,lpo_edge 
+
+p_lpm_write_gpio_loop:
+04be efe08011 ifetch 1 ,rega 
+04bf e8408013 ifetcht 1 ,regc 
+04c0 98467c00 isub temp ,null 
+04c1 202284c4 branch p_lpm_write_gpio_loop_next ,zero 
+04c2 e7e08013 istore 1 ,regc 
+04c3 37d98200 until null ,lpo_edge 
+
+p_lpm_write_gpio_loop_next:
+04c4 1a20a201 increase 1 ,rega 
+04c5 1a60a601 increase 1 ,regc 
+04c6 c20004be loop p_lpm_write_gpio_loop 
+04c7 1a420400 copy regb ,temp 
+04c8 20600000 rtn 
+
+p_app_init:
+
+p_keyboard_init:
+04c9 20407396 call enable_authrom 
+04ca 2040065e call p_le_exchange_hid_map 
+04cb 204004d4 call p_keyboard_setting_config 
+04cc 204004f3 call p_keyboard_gpio_init 
+04cd 2040050b call p_keyboard_low_vol_mult_set 
+04ce 20758000 rtn wake 
+04cf 2040047c call p_keyboard_device_led_all_off 
+04d0 6fe0ca07 fetch 1 ,mem_keyboard_device_poweron_timer_count_init 
+04d1 67e0ca08 store 1 ,mem_keyboard_device_poweron_timer_count 
+04d2 20404a7a call keyboard_cb_fuction 
+04d3 20204962 branch keyboard_init_wireless 
+
+p_keyboard_setting_config:
+04d4 204042a3 call app_param_init 
+04d5 20400496 call p_keyboard_puchk_disable 
+04d6 20758000 rtn wake 
+04d7 204035f0 call g24_transmit_init 
+04d8 6fe0c666 fetch 1 ,mem_device_flag 
+04d9 67e0cbe6 store 1 ,mem_device_flag_temp_new 
+04da 6fe1c2de fetch 3 ,mem_le_lap + 3 
+04db 67e1c797 store 3 ,mem_mouse_le_lap_temp 
+04dc 204049af call keyboard_param_init 
+04dd 58004bfb setarg mem_le_tx_buffer0_omemalloc_new 
+04de 67e1433f store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+04df 58000020 setarg mouse_ble_l2cap_txbuff_size_new 
+04e0 67e14341 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+04e1 20402a41 call le_set_fixed_ltk_justwork 
+04e2 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+04e3 c28a49fd bbit1 mouse_enable_otp ,keyboard_load_otp_info_check 
+04e4 c2895d6e bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
+04e5 20600000 rtn 
+
+p_keyboard_select_reconn_device:
+04e6 da204667 arg mem_device1_type ,rega 
+04e7 6fe0c666 fetch 1 ,mem_device_flag 
+04e8 c1000000 rtneq mode_24g_device 
+04e9 1fe0ffff increase -1 ,pdata 
+04ea 1feffe0d mul32 pdata ,13 ,pdata 
+04eb 9a20a200 iadd rega ,rega 
+04ec efe08011 ifetch 1 ,rega 
+04ed 67e0c3f3 store 1 ,mem_xrecord_mode 
+04ee c01a04f0 beq rec_4_mode ,p_keyboard_load_le_device 
+04ef 20600000 rtn 
+
+p_keyboard_load_le_device:
+04f0 efe30006 ifetch 6 ,contr 
+04f1 67e34116 store 6 ,mem_hci_plap 
+04f2 20205c7d branch mouse_load_le_device_end + 3 
+
+p_keyboard_gpio_init:
+04f3 20400470 call p_clear_wake 
+04f4 6848c655 fetcht 1 ,mem_config_select_device_button_gpio 
+04f5 6048c659 storet 1 ,mem_sensor_motion_gpio 
+04f6 20404c7d call keyboard_gpio_config_input_pu 
+04f7 5800486e setarg mem_key_row_gpio 
+04f8 67e14896 store 2 ,mem_kb_row_ptr 
+04f9 58004876 setarg mem_key_col_gpio 
+04fa 67e14898 store 2 ,mem_kb_col_ptr 
+04fb 5800488a setarg mem_key_excol_gpio 
+04fc 67e1489a store 2 ,mem_kb_excol_ptr 
+04fd 20400502 call p_keyboard_key_row_init 
+04fe 6fe14898 fetch 2 ,mem_kb_col_ptr 
+04ff 1fe22400 copy pdata ,regb 
+0500 df200014 arg 20 ,loopcnt 
+0501 202049e1 branch keyboard_key_cow_init 
+
+p_keyboard_key_row_init:
+0502 6fe14896 fetch 2 ,mem_kb_row_ptr 
+0503 1fe22400 copy pdata ,regb 
+0504 df200008 arg 8 ,loopcnt 
+
+p_keyboard_key_row_init_loop:
+0505 e8408012 ifetcht 1 ,regb 
+0506 18467cff sub temp ,ui_button_gpio_disable ,null 
+0507 2442c9e7 ncall keboard_gpio_set_high_impedance ,zero 
+0508 1a40a401 increase 1 ,regb 
+0509 c2000505 loop p_keyboard_key_row_init_loop 
+050a 202004ba branch p_lpm_write_gpio_wakeup 
+
+p_keyboard_low_vol_mult_set:
+050b 6fe0c666 fetch 1 ,mem_device_flag 
+050c c080050f bne mode_24g_device ,p_keyboard_low_vol_mult_ble_set 
+050d 204035fb call g24_interval_param_8ms 
+050e 202049ec branch keyboard_low_vol_mult_set + 2 
+
+p_keyboard_low_vol_mult_ble_set:
+050f 580000a0 setarg 160 
+0510 20400515 call p_keyboard_mult_auto_get 
+0511 6fe0c40c fetch 1 ,mem_adc_power_flag 
+0512 c4000000 rtnbit0 0 
+0513 58000050 setarg 80 
+0514 20200515 branch p_keyboard_mult_auto_get 
+
+p_keyboard_mult_auto_get:
+0515 684942d3 fetcht 2 ,mem_le_interval_min 
+0516 9846fc00 idiv temp 
+0517 20407d5f call get_div_result 
+0518 67e0c96b store 1 ,mem_lpm_mult_init 
+0519 202049f5 branch keyboard_low_vol_mult_ble_set + 4 
+051a 6fe0c77e fetch 1 ,mem_mouse_current_mult_timer 
+051b 203a5c01 branch mouse_current_mult_reinit ,blank 
+051c 20600000 rtn 
+
+p_ui_ipc_send_event:
+051d 6fe0866f fetch 1 ,mem_fifo_temp 
+051e df200008 arg 8 ,loopcnt 
+051f d8c044d3 arg mem_ipc_fifo_bt2c51 ,contr 
+
+p_ui_ipc_fifo_check:
+0520 e8408006 ifetcht 1 ,contr 
+0521 98467c00 isub temp ,null 
+0522 20628000 rtn zero 
+0523 c2000520 loop p_ui_ipc_fifo_check 
+0524 2020782c branch ui_ipc_send_event + 1 
+
+p_check_51cmd_once_continue:
+0525 6fe0866f fetch 1 ,mem_fifo_temp 
+0526 c00f8528 beq bt_cmd_store_reconn_info_le ,p_eeprom_store_le_reconn_info 
+0527 20207864 branch check_51cmd_once_continue + 4 
+
+p_eeprom_store_le_reconn_info:
+0528 70003234 jam rec_4_mode ,mem_record_bt_mode 
+
+p_eeprom_store_reconn_info:
+0529 6fe0c3cb fetch 1 ,mem_device_option 
+052a c007cbc5 beq dvc_op_keyboard ,keyboard_store_remote_bdaddr 
+052b 20206ea6 branch eeprom_store_reconn_info + 1 
+
+p_keyboard_start_discovery:
+052c 2040047d call p_keyboard_device_led_all_off + 1 
+052d 58000000 setarg 0 
+052e 67e14be7 store 2 ,mem_otp_store_device_info_flag 
+052f 20204b9a branch keyboard_start_discovery + 5 
+
+p_keyboard_stop_discovery:
+0530 58000000 setarg 0 
+0531 67e14790 store 2 ,mem_mouse_discovery_timer 
+0532 d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0533 20405f04 call mouse_disable_function_flag 
+0534 70479200 jam 0 ,mem_mouse_bluetooth_reconnect_timeout 
+0535 20405c3e call mouse_stop_le_adv 
+0536 6fe0ca08 fetch 1 ,mem_keyboard_device_poweron_timer_count 
+0537 203a047d branch p_keyboard_device_led_all_off + 1 ,blank 
+0538 20600000 rtn 
+
+p_keyboard_le:
+0539 20402a28 call le_fifo_check_nearly_full 
+053a 247a0000 nrtn blank 
+053b 6fe0c78f fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+053c c07f8540 beq 0xff ,p_keyboard_le_next 
+053d 6fe0c843 fetch 1 ,mem_le_connect_status_flag 
+053e 1fe17e03 and pdata ,0x03 ,pdata 
+053f c1818000 rtnne 0x03 
+
+p_keyboard_le_next:
+0540 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+0541 c280854a bbit1 mouse_24g_pairing_flag ,p_keyboard_le_send_empty_packet 
+0542 c280054a bbit1 mouse_select_device_flag ,p_keyboard_le_send_empty_packet 
+0543 c282854a bbit1 mouse_bt_discovery_button_down_flag ,p_keyboard_le_send_empty_packet 
+0544 c283054a bbit1 mouse_bt_discovery_button_long_down_flag ,p_keyboard_le_send_empty_packet 
+0545 20404e47 call keyboard_motion 
+0546 24740000 nrtn user 
+0547 6fe0c96c fetch 1 ,mem_customer_key 
+0548 c000db3d beq 1 ,mouse_le_send_keyboard_package_data 
+0549 20600000 rtn 
+
+p_keyboard_le_send_empty_packet:
+054a 70496d00 jam 0 ,mem_customer_data_trigger 
+054b 20205b3d branch mouse_le_send_keyboard_package_data 
+
+p_le_check_retransmit_timesout:
+054c 6fe0cbf6 fetch 1 ,mem_le_conn_rcv_new 
+054d da600100 arg 256 ,regc 
+054e 9a60fe00 iadd regc ,pdata 
+054f 20600000 rtn 
+
+p_le_got_first_packet:
+0550 20200570 branch p_le_got_first_packet_new 
+
+p_le_slave_match:
+0551 20400553 call p_le_check_retransmit 
+0552 20202563 branch le_slave_match + 1 
+
+p_le_check_retransmit:
+0553 6fe0cbf7 fetch 1 ,mem_le_conn_first_rcv 
+0554 207a0000 rtn blank 
+0555 6fe0cbf8 fetch 1 ,mem_le_check_retransmit_flag 
+0556 247a0000 nrtn blank 
+0557 6848cbf7 fetcht 1 ,mem_le_conn_first_rcv 
+0558 6fe0cbf6 fetch 1 ,mem_le_conn_rcv_new 
+0559 98467c00 isub temp ,null 
+055a 2441054c ncall p_le_check_retransmit_timesout ,positive 
+055b 98467e00 isub temp ,pdata 
+055c 1fe67c64 sub pdata ,100 ,null 
+055d 20210565 branch p_le_check_retransmit_count ,positive 
+055e 6fe0cbf9 fetch 1 ,mem_le_retransmit_cnt 
+055f 1fe67c14 sub pdata ,20 ,null 
+0560 24410563 ncall p_app_ble_disconnect ,positive 
+0561 704bf801 jam 1 ,mem_le_check_retransmit_flag 
+0562 20600000 rtn 
+
+p_app_ble_disconnect:
+0563 704bfa01 jam 1 ,mem_le_check_retransmit_discon_flag 
+0564 2020431f branch app_ble_disconnect 
+
+p_le_check_retransmit_count:
+0565 6848817f fetcht 1 ,mem_le_arq 
+0566 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+0567 1fe37e00 rshift pdata ,pdata 
+0568 9842fe00 ixor temp ,pdata 
+0569 2feffe02 isolate1 nesn ,pdata 
+056a 58000000 setarg 0 
+056b 6848cbf9 fetcht 1 ,mem_le_retransmit_cnt 
+056c 7920fe00 setflag true ,0 ,pdata 
+056d 98408400 iadd temp ,temp 
+056e 6048cbf9 storet 1 ,mem_le_retransmit_cnt 
+056f 20600000 rtn 
+
+p_le_got_first_packet_new:
+0570 6fe08005 fetch 1 ,mem_le_conn_rcv 
+0571 1fe0fe01 increase 1 ,pdata 
+0572 67e08005 store 1 ,mem_le_conn_rcv 
+0573 24368577 nbranch p_le_got_first_packet_new + 7 ,match 
+0574 6fe0cbf6 fetch 1 ,mem_le_conn_rcv_new 
+0575 1fe0fe01 increase 1 ,pdata 
+0576 67e0cbf6 store 1 ,mem_le_conn_rcv_new 
+0577 6fe08168 fetch 1 ,mem_le_state 
+0578 c3818000 rtnbit1 lestate_got_first_packet 
+0579 79207e03 set1 lestate_got_first_packet ,pdata 
+057a 67e08168 store 1 ,mem_le_state 
+057b 6fe142f5 fetch 2 ,mem_le_init_superto 
+057c 67e10196 store 2 ,mem_le_superto 
+057d 58000000 setarg 0 
+057e 67e2431d store 4 ,mem_le_transmit_window 
+057f 20600000 rtn 
+
+p_le_rx_dec:
+0580 2040281c call le_check_retransmit 
+0581 6a20804d fetchr rega ,1 ,mem_le_rxbuf_data_length 
+0582 1a20a3fc increase -4 ,rega 
+0583 242126fa nbranch le_crc_fail_consecutive ,positive 
+0584 2020268e branch le_rx_dec + 6 
+
+p_le_rx_nopayload:
+0585 09800018 parse demod ,bucket ,24 
+0586 1fef7e00 rshift32 pdata ,pdata 
+0587 1ff17e00 rshift16 pdata ,pdata 
+0588 e7e18005 istore 3 ,contw 
+0589 78287c00 enable swfine 
+058a 2040270d call le_set_until_tx_timer 
+058b 202326f6 branch le_crc_fail ,crc_failed 
+058c c59926af bmark0 mark_ble_encryption ,le_rx_match 
+058d 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+058e 203a26af branch le_rx_match ,blank 
+058f 1fe0fffc increase -4 ,pdata 
+0590 67e0804d store 1 ,mem_le_rxbuf_data_length 
+0591 204072cb call wait_ccm_done 
+0592 6ff08108 fetch 1 ,core_misc_status 
+0593 c303a6fa bbit0 7 ,le_crc_fail_consecutive 
+0594 1800700c force regidx_result ,regext_index 
+0595 65e20154 storer regext ,4 ,mem_le_peer_mic 
+0596 202026af branch le_rx_match 
+
+p_le_adv_not_match:
+0597 20402152 call shutdown_radio 
+0598 70890000 jam 0 ,0x8900 
+0599 793f8030 set0 mark_ble_crc_fail ,mark 
+059a 20202ae3 branch le_adv_not_match + 1 
+
+p_le_init_adv:
+059b 793f8030 set0 mark_ble_crc_fail ,mark 
+059c 20202af6 branch le_init_adv + 1 
+
+p_keyboard_start_reconnect_device:
+059d da204667 arg mem_device1_type ,rega 
+059e 6fe0c666 fetch 1 ,mem_device_flag 
+059f 1fe0ffff increase -1 ,pdata 
+05a0 1feffe0d mul32 pdata ,13 ,pdata 
+05a1 202054a6 branch mouse_start_reconnect_device + 6 
+
+p_keyboard_store_remote_bdaddr:
+05a2 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+05a3 c4010000 rtnbit0 mouse_store_eeprom_flag 
+05a4 d8e00002 arg mouse_store_eeprom_flag ,queue 
+05a5 20405f04 call mouse_disable_function_flag 
+05a6 204005b5 call p_keyboard_check_device_addr 
+05a7 204005a9 call p_keyboard_unplug_clean_bdaddr 
+05a8 20205ca3 branch mouse_store_device_info_delay 
+
+p_keyboard_unplug_clean_bdaddr:
+05a9 da204667 arg mem_device1_type ,rega 
+05aa 6fe0c666 fetch 1 ,mem_device_flag 
+05ab 1fe0ffff increase -1 ,pdata 
+05ac 1feffe0d mul32 pdata ,13 ,pdata 
+05ad 9a20a200 iadd rega ,rega 
+05ae 6fe08032 fetch 1 ,mem_record_bt_mode 
+05af e7e08011 istore 1 ,rega 
+05b0 c01a05b2 beq rec_4_mode ,p_keyboard_store_le_device 
+05b1 20600000 rtn 
+
+p_keyboard_store_le_device:
+05b2 6fe30178 fetch 6 ,mem_le_plap 
+05b3 e7e30005 istore 6 ,contw 
+05b4 20205c66 branch mouse_store_le_device + 4 
+
+p_keyboard_check_device_addr:
+05b5 6fe08032 fetch 1 ,mem_record_bt_mode 
+05b6 c01a05b8 beq rec_4_mode ,p_keyboard_check_le_device_addr 
+05b7 20600000 rtn 
+
+p_keyboard_check_le_device_addr:
+05b8 67e0c95a store 1 ,mem_device_addr_temp 
+05b9 6fe30178 fetch 6 ,mem_le_plap 
+
+p_keyboard_check_bt_device_addr_common:
+05ba 67e3495b store 6 ,mem_device_addr_temp + 1 
+05bb 6fe3c95a fetch 7 ,mem_device_addr_temp 
+05bc d8c04667 arg mem_device1_type ,contr 
+05bd df200003 arg 3 ,loopcnt 
+
+p_keyboard_check_device_addr_end:
+05be e8438006 ifetcht 7 ,contr 
+05bf 98467c00 isub temp ,null 
+05c0 2022dc69 branch mouse_clean_addr ,zero 
+05c1 18c08c06 increase 6 ,contr 
+05c2 c20005be loop p_keyboard_check_device_addr_end 
+05c3 20600000 rtn 
+
+p_le_parse_att:
+05c4 1a220c00 copy rega ,contr 
+05c5 efe18006 ifetch 3 ,contr 
+05c6 67e1c397 store 3 ,mem_le_att_opcode 
+05c7 c00585d1 beq attop_read_response ,p_keyboard_le_parse_att_manu_resp 
+05c8 c0040601 beq attop_read_by_type_request ,p_le_parse_att_read_by_type_request 
+05c9 c00485e4 beq attop_read_by_type_response ,p_keyboard_le_send_att_read_by_type_rsp_mac 
+05ca c00385f6 beq attop_find_by_type_value_response ,p_keyboard_le_parse_att_find_by_type_value_rsp 
+05cb c00085fc beq attop_error_response ,p_keyboard_le_send_att_find_by_type_value_request_mac 
+05cc c0060616 beq attop_read_blob_request ,p_le_parse_att_read_blob_request 
+05cd c0050620 beq attop_read_request ,p_le_parse_att_read_request 
+05ce c0090641 beq attop_write_request ,p_le_parse_att_write_request 
+05cf c0290652 beq attop_write_command ,p_le_parse_att_write_command 
+05d0 20202b96 branch le_parse_att2 
+
+p_keyboard_le_parse_att_manu_resp:
+05d1 6fe0c9f1 fetch 1 ,mem_le_connect_ios_mac_flag 
+05d2 207a0000 rtn blank 
+
+p_keyboard_le_parse_att_manu_resp_next:
+05d3 6fe14335 fetch 2 ,mem_le_l2cap_size 
+05d4 df200009 arg 9 ,loopcnt 
+05d5 6fe14339 fetch 2 ,mem_le_payload_ptr 
+05d6 1fe0a205 add pdata ,5 ,rega 
+05d7 da4049f4 arg mem_le_search_mac_manu_name ,regb 
+05d8 20407d64 call string_compare 
+05d9 202285de branch p_keyboard_le_parse_att_find_mac_report ,zero 
+05da 202005db branch p_keyboard_le_parse_att_not_find_mac_report 
+
+p_keyboard_le_parse_att_not_find_mac_report:
+05db 6fe0c2cb fetch 1 ,mem_le_conn_peer_addr_type 
+05dc 67e0c9c6 store 1 ,mem_kb_computer_system 
+05dd 202005df branch p_keyboard_store_computer_system_ble 
+
+p_keyboard_le_parse_att_find_mac_report:
+05de 7049c603 jam system_os_mac ,mem_kb_computer_system 
+
+p_keyboard_store_computer_system_ble:
+05df 7049f100 jam 0 ,mem_le_connect_ios_mac_flag 
+05e0 704be801 jam 1 ,mem_otp_store_system_flag 
+05e1 6fe0cbe7 fetch 1 ,mem_otp_store_device_info_flag 
+05e2 207a0000 rtn blank 
+05e3 202001de branch p_keyboard_wirte_otp_ble 
+
+p_keyboard_le_send_att_read_by_type_rsp_mac:
+05e4 6fe0c9f1 fetch 1 ,mem_le_connect_ios_mac_flag 
+05e5 207a0000 rtn blank 
+
+p_keyboard_le_send_att_read_by_type_rsp_mac_next:
+05e6 6fe14335 fetch 2 ,mem_le_l2cap_size 
+05e7 1fe0fffe increase -2 ,pdata 
+05e8 1fe6fc07 div pdata ,7 
+05e9 20407d62 call wait_div_end 
+05ea 1807f200 quotient loopcnt 
+05eb 6fe14339 fetch 2 ,mem_le_payload_ptr 
+05ec 1fe08c06 add pdata ,6 ,contr 
+
+p_keyboard_le_check_att_read_type_manu_loop:
+05ed 18c08c03 increase 3 ,contr 
+05ee efe10006 ifetch 2 ,contr 
+05ef 1fe22600 copy pdata ,regc 
+05f0 efe10006 ifetch 2 ,contr 
+05f1 d8402a29 arg 0x2a29 ,temp 
+05f2 98467c00 isub temp ,null 
+05f3 2022d089 branch keyboard_le_send_att_read_by_type_rsp_manufactory ,zero 
+05f4 c20005ed loop p_keyboard_le_check_att_read_type_manu_loop 
+05f5 202005db branch p_keyboard_le_parse_att_not_find_mac_report 
+
+p_keyboard_le_parse_att_find_by_type_value_rsp:
+05f6 6fe0c9f1 fetch 1 ,mem_le_connect_ios_mac_flag 
+05f7 207a0000 rtn blank 
+
+p_keyboard_le_parse_att_find_by_type_value_rsp_next:
+05f8 6fe0c9f1 fetch 1 ,mem_le_connect_ios_mac_flag 
+05f9 c001506c beq 2 ,keyboard_le_parse_att_find_by_type_value_rsp_mac 
+
+p_keyboard_le_parse_att_find_ios_report:
+05fa 7049c602 jam system_os_ios ,mem_kb_computer_system 
+05fb 202005df branch p_keyboard_store_computer_system_ble 
+
+p_keyboard_le_send_att_find_by_type_value_request_mac:
+05fc 6fe0c9f1 fetch 1 ,mem_le_connect_ios_mac_flag 
+05fd 207a0000 rtn blank 
+
+p_keyboard_le_send_att_find_by_type_value_request_mac_next:
+05fe 6fe0c9f1 fetch 1 ,mem_le_connect_ios_mac_flag 
+05ff c00105db beq 2 ,p_keyboard_le_parse_att_not_find_mac_report 
+0600 2020505d branch keyboard_le_send_att_find_by_type_value_request_mac + 2 
+
+p_le_parse_att_read_by_type_request:
+0601 20402e41 call le_get_search_handle_start_end_common 
+0602 20402e4a call le_get_search_att_type 
+
+p_le_send_att_read_by_type_response:
+0603 684906b1 fetcht 2 ,mem_le_search_handle_start 
+0604 60490678 storet 2 ,mem_temp 
+0605 20402cc7 call le_init_attlist_search 
+0606 20402cd2 call le_att_get_handle_ptr2 
+0607 18c08dfe increase -2 ,contr 
+0608 18c27e00 copy contr ,pdata 
+0609 67e106c7 store 2 ,mem_le_cur_attlist_start_ptr 
+060a 684906b6 fetcht 2 ,mem_le_search_att_type 
+060b 58002a50 setarg uuid_chrctr_pnp_id 
+060c 98467c00 isub temp ,null 
+060d 2022860f branch p_le_send_att_read_by_type_res_pnp_id ,zero 
+060e 20202c4f branch le_send_att_read_by_type_response + 8 
+
+p_le_send_att_read_by_type_res_pnp_id:
+060f 6fe0cb99 fetch 1 ,mem_keyboard_change_vid_pid_flag 
+0610 203a2c4f branch le_send_att_read_by_type_response + 8 ,blank 
+0611 20402ce0 call le_att_get_uuid_ptr 
+0612 203a2e03 branch le_send_att_error_response_notfound ,blank 
+0613 d8c04b9a arg mem_keyboard_change_vid_pid_flag + 1 ,contr 
+0614 18007e0b force 11 ,pdata 
+0615 20202ca5 branch le_send_att_read_by_type_res_not_characteristic + 9 
+
+p_le_parse_att_read_blob_request:
+0616 efe10006 ifetch 2 ,contr 
+0617 67e106b5 store 2 ,mem_le_att_offset 
+0618 98002200 iforce rega 
+0619 68494398 fetcht 2 ,mem_le_att_handle 
+061a 6fe14332 fetch 2 ,mem_le_pairing_handle 
+061b 98467c00 isub temp ,null 
+061c 2422ad50 nbranch le_send_att_read_blob_response ,zero 
+061d 6fe14abb fetch 2 ,mem_keyboard_le_map_len 
+061e d8c04abd arg mem_keyboard_le_hid_map ,contr 
+061f 20202d53 branch le_send_att_read_blob_response + 3 
+
+p_le_parse_att_read_request:
+0620 68494398 fetcht 2 ,mem_le_att_handle 
+0621 6fe0c321 fetch 1 ,mem_le_configuration 
+0622 c281863b bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
+
+p_le_send_att_read_response:
+0623 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+0624 c30a8626 bbit0 mouse_enable_adc ,p_le_send_att_read_response + 3 
+0625 c31d8628 bbit0 mouse_enable_le_battery_service_cancel ,p_le_send_att_read_response_next 
+0626 6fe14398 fetch 2 ,mem_le_att_handle 
+0627 c0182e03 beq 0x30 ,le_send_att_error_response_notfound 
+
+p_le_send_att_read_response_next:
+0628 6fe14398 fetch 2 ,mem_le_att_handle 
+0629 c0028633 beq 0x05 ,p_le_send_att_appearance 
+062a c0080636 beq 0x10 ,p_le_send_att_pnp_id 
+
+p_le_send_att_read_response_next_1:
+062b 68494398 fetcht 2 ,mem_le_att_handle 
+062c 6fe14332 fetch 2 ,mem_le_pairing_handle 
+062d 98467c00 isub temp ,null 
+062e 2422ad1d nbranch le_send_att_read_response ,zero 
+062f 20402e46 call le_get_search_max_mtu_data 
+0630 68494abb fetcht 2 ,mem_keyboard_le_map_len 
+0631 d8c04abd arg mem_keyboard_le_hid_map ,contr 
+0632 20202d2b branch le_send_att_read_response + 14 
+
+p_le_send_att_appearance:
+0633 d8c049fd arg mem_keybord_appearance ,contr 
+0634 18007e03 force 3 ,pdata 
+0635 20202d2d branch le_send_att_read_response_less 
+
+p_le_send_att_pnp_id:
+0636 6fe0cb99 fetch 1 ,mem_keyboard_change_vid_pid_flag 
+0637 203a062b branch p_le_send_att_read_response_next_1 ,blank 
+0638 d8c04b9a arg mem_keyboard_change_vid_pid_flag + 1 ,contr 
+0639 18007e08 force 8 ,pdata 
+063a 20202d2d branch le_send_att_read_response_less 
+
+p_le_send_att_read_response_check_auth:
+063b 6fe14332 fetch 2 ,mem_le_pairing_handle 
+063c 98467c00 isub temp ,null 
+063d 24228623 nbranch p_le_send_att_read_response ,zero 
+063e 20402dc7 call le_check_encrypt_state 
+063f 24340628 nbranch p_le_send_att_read_response_next ,user 
+0640 20202d46 branch le_send_att_read_response_error_insufficient_auth 
+
+p_le_parse_att_write_request:
+0641 18c22200 copy contr ,rega 
+0642 6fe14335 fetch 2 ,mem_le_l2cap_size 
+0643 1fe0a5fd add pdata ,-3 ,regb 
+0644 20402929 call le_writeatt_cb 
+0645 20400653 call p_le_parse_att_write_command + 1 
+0646 6fe0c78f fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0647 c07fadac beq 0xff ,le_send_att_write_response_check_auth 
+0648 6fe0c795 fetch 1 ,mem_mouse_le_reconnect_flag 
+0649 203a2dac branch le_send_att_write_response_check_auth ,blank 
+064a 6fe0c843 fetch 1 ,mem_le_connect_status_flag 
+064b c280adac bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
+064c 5800001a setarg 0x001a 
+064d 68494398 fetcht 2 ,mem_le_att_handle 
+064e 98467c00 isub temp ,null 
+064f 2422adac nbranch le_send_att_write_response_check_auth ,zero 
+0650 7001b905 jam att_err_insufficient_authentication ,mem_le_err_code 
+0651 20202e05 branch le_send_att_error_response 
+
+p_le_parse_att_write_command:
+0652 20402dea call le_parse_att_write_command 
+0653 6fe0c78f fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0654 c07f8658 beq 0xff ,p_keyboard_le_fast_conn_led_get 
+0655 6fe14398 fetch 2 ,mem_le_att_handle 
+0656 c012865b beq 0x25 ,p_keyboard_le_led_get 
+0657 20600000 rtn 
+
+p_keyboard_le_fast_conn_led_get:
+0658 6fe14398 fetch 2 ,mem_le_att_handle 
+0659 c010865b beq 0x21 ,p_keyboard_le_led_get 
+065a 20600000 rtn 
+
+p_keyboard_le_led_get:
+065b 6fe08055 fetch 1 ,mem_le_rxbuf + 9 
+065c 67e0c9aa store 1 ,mem_keyboard_led_status 
+065d 20600000 rtn 
+
+p_le_exchange_hid_map:
+065e d8c0919f arg 0x919f ,contr 
+065f d8a04abd arg mem_keyboard_le_hid_map ,contw 
+0660 df200042 arg 66 ,loopcnt 
+0661 20407cda call memcpy 
+0662 d8c091e1 arg 0x91e1 ,contr 
+0663 d8a04aff arg mem_keyboard_le_hid_map + 66 ,contw 
+0664 df200036 arg 54 ,loopcnt 
+0665 20207cda branch memcpy 
+
+p_adc_init_data:
+0666 6fe401fd fetch 8 ,mem_otp_adc 
+0667 203a6f79 branch adc_init_cal_data_default ,blank 
+0668 67e443fd store 8 ,mem_reference_inter1p8v_2v_adc_io_data 
+0669 20406b3a call enable_otp_read 
+066a 20406aad call loadcode_check_otp_lock 
+066b dfe00fc0 arg otp_offset_adc_param_l_c0 ,pdata 
+066c 9a40a400 iadd regb ,regb 
+066d df20000a arg 10 ,loopcnt 
+066e da2001fd arg mem_otp_temp ,rega 
+066f 20406b74 call otp_read_data 
+0670 20406b37 call disable_otp 
+0671 6fe401fd fetch 8 ,mem_otp_temp 
+0672 207a0000 rtn blank 
+0673 67e44be9 store 8 ,mem_adc_reference3v_gpio1v_ft_data 
+0674 efe10006 ifetch 2 ,contr 
+0675 e7e10005 istore 2 ,contw 
+0676 20600000 rtn 
+
+p_sadc_cal_write:
+0677 6ff080cc fetch 1 ,core_sadc_ctrl 
+0678 79207e01 set1 1 ,pdata 
+0679 67f080cc store 1 ,core_sadc_ctrl 
+067a 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+067b 6fe0c433 fetch 1 ,mem_adc_cal_c7 
+067c 67e0c419 store 1 ,mem_spi_write_addr 
+067d df200008 arg 8 ,loopcnt 
+067e 20406f67 call sadc_cal_write + 4 
+067f 6240c419 storer regb ,1 ,mem_spi_write_addr 
+0680 6ff08a0a fetch 1 ,core_gpadc_cfg2 
+0681 793ffe04 set0 4 ,pdata 
+0682 67f08a0a store 1 ,core_gpadc_cfg2 
+0683 20600000 rtn 
+
+p_vdd_calculate_by_mode:
+
+p_vdd_reference_inter3v_calculate:
+0684 6fe0c407 fetch 1 ,mem_adc_config_flag 
+0685 c0008688 beq adc_config_hvin ,p_vdd_reference_inter3v_calculate_by_mode_vdcdc 
+0686 c001068f beq adc_config_gpio ,p_vdd_reference_inter3v_calculate_by_mode_gpio 
+0687 20600000 rtn 
+
+p_vdd_reference_inter3v_calculate_by_mode_vdcdc:
+0688 580003e8 setarg 1000 
+0689 67e14405 store 2 ,mem_reference_voltage 
+068a 68494bed fetcht 2 ,mem_adc_reference3v_vdcdc3p6v_ft_data 
+068b 6fe14bef fetch 2 ,mem_adc_reference3v_vdcdc4p6v_ft_data 
+068c da600e10 arg 3600 ,regc 
+068d 20406fc0 call vdd_calculate 
+068e 20200695 branch p_mul1v_div1v_to_cal 
+
+p_vdd_reference_inter3v_calculate_by_mode_gpio:
+068f 580003e8 setarg 1000 
+0690 67e14405 store 2 ,mem_reference_voltage 
+0691 68494be9 fetcht 2 ,mem_adc_reference3v_gpio1v_ft_data 
+0692 6fe14beb fetch 2 ,mem_adc_reference3v_gpio2v_ft_data 
+0693 da6003e8 arg 1000 ,regc 
+0694 20406fc0 call vdd_calculate 
+
+p_mul1v_div1v_to_cal:
+0695 68494bf1 fetcht 2 ,mem_adc_reference3v_inter1v_ft_data 
+0696 984ffe00 imul32 temp ,pdata 
+0697 68494bf3 fetcht 2 ,mem_adc_reference3v_inter1v_now_data 
+0698 9846fc00 idiv temp 
+0699 20207d5f branch get_div_result 
+
+p_enable_adc_init_config:
+069a 20400677 call p_sadc_cal_write 
+069b 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+069c 793ffe07 set0 7 ,pdata 
+069d 67f08a09 store 1 ,core_gpadc_cfg1 
+069e 708a0777 jam 0x77 ,core_gpadc_ctrl 
+069f 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+06a0 708a0d61 jam 0x61 ,core_vtest_ctrl0 
+06a1 708a0b00 jam 0x00 ,core_gpadc_cfg3 
+06a2 20600000 rtn 
+
+p_enable_adc:
+
+p_enable_adc_reference_source_inter3v:
+06a3 2040069a call p_enable_adc_init_config 
+06a4 20406f90 call sadc_channel 
+06a5 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+06a6 67f080cd store 1 ,core_sadc_clkdiv 
+06a7 20406f97 call sadc_read 
+06a8 708a0d60 jam 0x60 ,core_vtest_ctrl0 
+06a9 7080cd00 jam 0x00 ,core_sadc_clkdiv 
+
+p_read_adc_inter1v:
+06aa 2040069a call p_enable_adc_init_config 
+06ab 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+06ac 67f080cd store 1 ,core_sadc_clkdiv 
+06ad 708a0b50 jam 0x50 ,core_gpadc_cfg3 
+06ae 708a0ec0 jam 0xc0 ,core_vtest_ctrl1 
+06af df00000b arg 0xb ,regext_index 
+06b0 6de1440a fetchr regext ,2 ,mem_adc_current_value 
+06b1 7080cc03 jam 0x03 ,core_sadc_ctrl 
+06b2 204006bc call p_sar_adc_read_wait 
+06b3 68590164 fetcht 2 ,core_sadc_data 
+06b4 60494bf3 storet 2 ,mem_adc_reference3v_inter1v_now_data 
+06b5 20406f9c call sadc_read_wait + 4 
+06b6 df00000b arg 0xb ,regext_index 
+06b7 65e1440a storer regext ,2 ,mem_adc_current_value 
+06b8 708a0d60 jam 0x60 ,core_vtest_ctrl0 
+06b9 7080cd00 jam 0x00 ,core_sadc_clkdiv 
+06ba 7080cc00 jam 0x00 ,core_sadc_ctrl 
+06bb 20600000 rtn 
+
+p_sar_adc_read_wait:
+06bc 6ff08129 fetch 1 ,core_perf_status 
+06bd c30286bc bbit0 saradc_done ,p_sar_adc_read_wait 
+06be 20600000 rtn 
+              org 0x2000
+
+start:
+2000 20402385 call lpmstate 
+
+soft_reset:
+2001 44804000 bpatch patch00_0 ,mem_patch00 
+2002 20800000 clear_stack 
+2003 204042a3 call app_param_init 
+2004 2040223d call initialize_radio 
+2005 20406cad call iic_init_360khz 
+2006 20402363 call init_param 
+2007 20406946 call l2cap_init 
+2008 4480c000 bpatch patch00_1 ,mem_patch00 
+2009 2040776f call ui_init 
+200a 20404295 call app_init 
+200b 20407447 call publickey_init 
+200c 2055a44f call lpm_recover_clk ,wake 
+
+main_loop:
+200d 44814000 bpatch patch00_2 ,mem_patch00 
+200e 20407552 call sp_calc_sequence_256 
+200f 20407448 call sp_calc_sequence_256_check 
+2010 20402a45 call le_advertising_dispatch 
+2011 2040202a call idle_dispatch 
+2012 204042ad call app_process_idle 
+2013 20402018 call connection_dispatch 
+2014 2040310f call g24_dispatch 
+2015 2040248c call lpm_dispatch 
+2016 20404bfb call kscan_dispatch 
+2017 2020200d branch main_loop 
+
+connection_dispatch:
+2018 2040201d call connection_incontext 
+2019 c6848000 rtnmark0 mark_context 
+201a 793f8009 set0 mark_context ,mark 
+201b 20402041 call context_save 
+201c 202025bc branch le_disable 
+
+connection_incontext:
+201d 4481c000 bpatch patch00_3 ,mem_patch00 
+201e 20402066 call context_search_insniff 
+201f 2422a025 nbranch connection_nosniff ,zero 
+2020 20402036 call context_load 
+2021 1a208c01 add rega ,coffset_mode ,contr 
+2022 efe08006 ifetch 1 ,contr 
+2023 c2802536 bbit1 mode_le ,le_conn_dispatch 
+2024 20600000 rtn 
+
+connection_nosniff:
+2025 70000600 jam 0 ,mem_current_context 
+2026 20402047 call context_get_next 
+2027 1f227c00 copy loopcnt ,null 
+2028 20628000 rtn zero 
+2029 2020235a branch assert 
+
+idle_dispatch:
+202a 6fe0c114 fetch 1 ,mem_hci_cmd 
+202b 207a0000 rtn blank 
+202c c00da033 beq hci_cmd_le_create_conn ,idle_le_create_conn 
+202d 2040205f call context_search_conn_handle 
+202e 20628000 rtn zero 
+202f 20402062 call context_search_plap 
+2030 20628000 rtn zero 
+
+idle_exit:
+2031 70411400 jam 0 ,mem_hci_cmd 
+2032 20600000 rtn 
+
+idle_le_create_conn:
+2033 7001bc1b jam hci_cmd_le_create_conn ,mem_cmd_le_create_conn 
+2034 70411400 jam 0 ,mem_hci_cmd 
+2035 20600000 rtn 
+
+context_load:
+2036 44824000 bpatch patch00_4 ,mem_patch00 
+2037 79200009 set1 mark_context ,mark 
+2038 1a227e00 deposit rega 
+2039 67e1000a store 2 ,mem_context_ptr 
+203a 18007253 force context_size ,loopcnt 
+203b d8a00168 arg mem_le_state ,contw 
+203c 1a208c01 add rega ,coffset_mode ,contr 
+203d efe08006 ifetch 1 ,contr 
+203e 1a220c00 copy rega ,contr 
+203f c2807cda bbit1 mode_le ,memcpy 
+2040 20600000 rtn 
+
+context_save:
+2041 4482c000 bpatch patch00_5 ,mem_patch00 
+2042 6fe1000a fetch 2 ,mem_context_ptr 
+2043 98000a00 iforce contw 
+2044 18007253 force context_size ,loopcnt 
+2045 d8c00168 arg mem_le_state ,contr 
+2046 20207cda branch memcpy 
+
+context_get_next:
+2047 df200001 arg context_num ,loopcnt 
+2048 68488006 fetcht 1 ,mem_current_context 
+
+context_get_next_loop:
+2049 18408401 increase 1 ,temp 
+204a 2841fe01 compare context_num ,temp ,0xff 
+204b 2420a04d nbranch context_get_next_cont ,true 
+204c d8400000 arg 0 ,temp 
+
+context_get_next_cont:
+204d 60488006 storet 1 ,mem_current_context 
+204e 184ffe53 mul32 temp ,context_size ,pdata 
+204f da204040 arg mem_context ,rega 
+2050 9a20a200 iadd rega ,rega 
+2051 efe08011 ifetch 1 ,rega 
+2052 c280a054 bbit1 state_insniff ,context_get_next_sniff 
+2053 c3800000 rtnbit1 state_inconn 
+
+context_get_next_sniff:
+2054 c2002049 loop context_get_next_loop 
+2055 20600000 rtn 
+
+context_new:
+2056 44834000 bpatch patch00_6 ,mem_patch00 
+2057 da602073 arg context_search_empty ,regc 
+2058 20402069 call context_search 
+2059 24628000 nrtn zero 
+205a 1a227e00 deposit rega 
+205b 67e1000a store 2 ,mem_context_ptr 
+205c 20207db8 branch enable_zero 
+
+context_check_idle:
+205d da6020ad arg context_check_inconn ,regc 
+205e 20202069 branch context_search 
+
+context_search_conn_handle:
+205f 6848c115 fetcht 1 ,mem_hci_conn_handle 
+
+context_search_conn_handle2:
+2060 da60207b arg context_search_handle ,regc 
+2061 20202069 branch context_search 
+
+context_search_plap:
+2062 4483c000 bpatch patch00_7 ,mem_patch00 
+2063 684b4116 fetcht 6 ,mem_hci_plap 
+
+context_search_plap2:
+2064 da602075 arg context_search_lap ,regc 
+2065 20202069 branch context_search 
+
+context_search_insniff:
+2066 da602081 arg context_search_sniff ,regc 
+2067 20202069 branch context_search 
+
+context_search_sniff_window:
+2068 da6020c7 arg context_search_window ,regc 
+
+context_search:
+2069 44844001 bpatch patch01_0 ,mem_patch01 
+206a da204040 arg mem_context ,rega 
+206b df200001 arg context_num ,loopcnt 
+
+context_search_loop:
+206c efe08011 ifetch 1 ,rega 
+206d 1a627a00 copy regc ,pc 
+
+context_search_next:
+206e 4484c001 bpatch patch01_1 ,mem_patch01 
+206f 1a20a253 increase context_size ,rega 
+2070 c200206c loop context_search_loop 
+2071 18007c01 force 1 ,null 
+2072 20600000 rtn 
+
+context_search_empty:
+2073 c280206e bbit1 state_inconn ,context_search_next 
+2074 20207db8 branch enable_zero 
+
+context_search_lap:
+2075 c300206e bbit0 state_inconn ,context_search_next 
+
+context_search_lap_cont:
+2076 1a208c10 add rega ,coffset_plap ,contr 
+2077 efe30006 ifetch 6 ,contr 
+2078 98467c00 isub temp ,null 
+2079 20628000 rtn zero 
+207a 2020206e branch context_search_next 
+
+context_search_handle:
+207b c300206e bbit0 state_inconn ,context_search_next 
+207c 1a208c16 add rega ,coffset_conn_handle ,contr 
+207d efe08006 ifetch 1 ,contr 
+207e 98467c00 isub temp ,null 
+207f 20628000 rtn zero 
+2080 2020206e branch context_search_next 
+
+context_search_sniff:
+2081 c300a06e bbit0 state_insniff ,context_search_next 
+
+context_search_sniff_loop:
+2082 204020b4 call context_get_anchor 
+2083 2040209d call sign_pdata_temp 
+2084 98467e00 isub temp ,pdata 
+2085 1fe0fe01 increase 1 ,pdata 
+2086 20212097 branch context_search_sniff_miss ,positive 
+2087 18c22400 copy contr ,regb 
+2088 67e48678 store 9 ,mem_temp 
+2089 44854001 bpatch patch01_2 ,mem_patch01 
+208a 6fe0c46d fetch 1 ,mem_sc_calc 
+208b 243a2090 nbranch context_search_sniff_sc ,blank 
+208c 6fe48678 fetch 9 ,mem_temp 
+208d 1a420c00 copy regb ,contr 
+208e 1fe0fe05 increase 5 ,pdata 
+208f 20202093 branch context_search_meet1 
+
+context_search_sniff_sc:
+2090 6fe48678 fetch 9 ,mem_temp 
+2091 1a420c00 copy regb ,contr 
+2092 1fe0fe14 increase 20 ,pdata 
+
+context_search_meet1:
+2093 2421206e nbranch context_search_next ,positive 
+
+context_search_meet:
+2094 18424200 copy temp ,bt_clk 
+2095 204020c0 call context_next_anchor 
+2096 20207db8 branch enable_zero 
+
+context_search_sniff_miss:
+2097 98002400 iforce regb 
+2098 1a208c02 add rega ,coffset_tsniff ,contr 
+2099 efe10006 ifetch 2 ,contr 
+209a 203a2094 branch context_search_meet ,blank 
+209b 204020c0 call context_next_anchor 
+209c 20202082 branch context_search_sniff_loop 
+
+sign_pdata_temp:
+209d 1ff11600 rshift16 pdata ,timeup 
+209e 196c9600 rshift8 timeup ,timeup 
+209f 2022a0a7 branch sign_pdata_temp_p0 ,zero 
+20a0 29601e0f compare 0xf ,timeup ,0xf 
+20a1 24608000 nrtn true 
+20a2 18511600 rshift16 temp ,timeup 
+20a3 196c9600 rshift8 timeup ,timeup 
+20a4 24628000 nrtn zero 
+20a5 7920041c set1 28 ,temp 
+20a6 20600000 rtn 
+
+sign_pdata_temp_p0:
+20a7 18511600 rshift16 temp ,timeup 
+20a8 196c9600 rshift8 timeup ,timeup 
+20a9 29601e0f compare 0xf ,timeup ,0xf 
+20aa 24608000 nrtn true 
+20ab 79207e1c set1 28 ,pdata 
+20ac 20600000 rtn 
+
+context_check_inconn:
+20ad c300206e bbit0 state_inconn ,context_search_next 
+20ae 20207db8 branch enable_zero 
+
+context_check_a_wack:
+20af c300206e bbit0 state_inconn ,context_search_next 
+20b0 1a208c01 add rega ,coffset_mode ,contr 
+20b1 efe08006 ifetch 1 ,contr 
+20b2 c280206e bbit1 mode_le ,context_search_next 
+20b3 20600000 rtn 
+
+context_get_anchor:
+20b4 1a208c01 add rega ,coffset_mode ,contr 
+20b5 e8408006 ifetcht 1 ,contr 
+20b6 1c427e00 deposit clkn_bt 
+20b7 284ffe01 isolate1 mode_master ,temp 
+20b8 1a208c04 add rega ,coffset_sniff_anchor ,contr 
+20b9 e8420006 ifetcht 4 ,contr 
+20ba 20608000 rtn true 
+20bb 1a208c08 add rega ,coffset_clk_offset ,contr 
+20bc efe30006 ifetch 6 ,contr 
+20bd 20402109 call calc_clke2 
+20be 1d027e00 deposit clke_bt 
+20bf 20600000 rtn 
+
+context_next_anchor:
+20c0 1a208c02 add rega ,coffset_tsniff ,contr 
+20c1 1a208a04 add rega ,coffset_sniff_anchor ,contw 
+20c2 efe10006 ifetch 2 ,contr 
+20c3 98409600 iadd temp ,timeup 
+20c4 19627e00 deposit timeup 
+20c5 e7e20005 istore 4 ,contw 
+20c6 20202609 branch le_context_nextevent 
+
+context_search_window:
+20c7 c300a06e bbit0 state_insniff ,context_search_next 
+20c8 204020b4 call context_get_anchor 
+20c9 9b60fe00 iadd stop_watch ,pdata 
+20ca 9b60fe00 iadd stop_watch ,pdata 
+20cb 98e0fe00 iadd queue ,pdata 
+20cc 98467c00 isub temp ,null 
+20cd 2421206e nbranch context_search_next ,positive 
+20ce 20207db8 branch enable_zero 
+
+end_of_packet:
+20cf 4485c001 bpatch patch01_3 ,mem_patch01 
+20d0 785d7c00 disable lr_s2en 
+20d1 784efc00 disable encode_fec0 
+20d2 784e7c00 disable encode_fec2 
+20d3 7846fc00 disable decode_fec0 
+20d4 78467c00 disable decode_fec2 
+20d5 7844fc00 disable enable_crc 
+20d6 78477c00 disable encrypt 
+20d7 7843fc00 disable enable_white 
+20d8 2030a152 branch shutdown_radio ,is_rx 
+20d9 37d38200 until null ,tx_clear 
+20da 20000064 nop 100 
+20db 20202152 branch shutdown_radio 
+
+sniff_check_window:
+20dc 44864001 bpatch patch01_4 ,mem_patch01 
+20dd 78487c00 disable swfine 
+20de 18423600 copy temp ,stop_watch 
+20df 20402068 call context_search_sniff_window 
+20e0 78547c00 disable user 
+20e1 24628000 nrtn zero 
+20e2 18003600 force 0 ,stop_watch 
+20e3 20207dba branch enable_user 
+
+calc_slot_offset:
+20e4 4486c001 bpatch patch01_5 ,mem_patch01 
+20e5 37d10200 until null ,halfslot 
+20e6 1b427e00 deposit clke 
+20e7 98000c00 iforce contr 
+20e8 1ff17e00 rshift16 ,pdata ,pdata 
+20e9 9c467200 isub clkn_bt ,loopcnt 
+20ea 1f217203 and_into 3 ,loopcnt 
+20eb 2422a0ee nbranch calc_bt_portion ,zero 
+20ec 18007e00 force 0 ,pdata 
+20ed 202020f2 branch calc_skip_bt 
+
+calc_bt_portion:
+20ee 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
+20ef 18007e00 force 0 ,pdata 
+
+calc_slot_offset_loop:
+20f0 9840fe00 iadd temp ,pdata 
+20f1 c20020f0 loop calc_slot_offset_loop 
+
+calc_skip_bt:
+20f2 98c0fe00 iadd contr ,pdata 
+20f3 1fe6fc0c div pdata ,12 
+20f4 20407d5f call get_div_result 
+20f5 67e1002e store 2 ,mem_slot_offset 
+20f6 20600000 rtn 
+
+calc_clke_offset:
+20f7 44874001 bpatch patch01_6 ,mem_patch01 
+20f8 1b427e00 deposit clke 
+20f9 1b220400 copy clkn ,temp 
+20fa 98467c00 isub temp ,null 
+20fb 7d217e2c nsetflag positive ,44 ,pdata 
+20fc 98460400 isub temp ,temp 
+20fd 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
+20fe 284c000f isolate0 15 ,temp 
+20ff 2020a105 branch calc_clke_pos ,true 
+2100 18426000 copy temp ,alarm 
+2101 d8410000 arg 0x10000 ,temp 
+2102 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
+2103 98467e00 isub temp ,pdata 
+2104 9e008400 iadd alarm ,temp 
+
+calc_clke_pos:
+2105 604b0170 storet 6 ,mem_le_clk_offset 
+2106 20600000 rtn 
+
+calc_clke:
+2107 78587c00 disable clknt 
+2108 6fe30170 fetch 6 ,mem_le_clk_offset 
+
+calc_clke2:
+2109 9b20e000 iadd clkn ,alarm 
+210a 1e00e00a increase 10 ,alarm 
+210b 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
+210c 9e067e00 isub alarm ,pdata 
+210d 2fec000f isolate0 15 ,pdata 
+210e 2020a115 branch calc_clke_pos_adj ,true 
+210f 58010000 setarg 0x10000 
+2110 6b010044 fetchr regd ,2 ,mem_param_rt_rthalfslot 
+2111 9b067e00 isub regd ,pdata 
+2112 9e00e000 iadd alarm ,alarm 
+
+calc_clke_pos2:
+2113 1e023400 copy alarm ,clke 
+2114 20600000 rtn 
+
+calc_clke_pos_adj:
+2115 18007c00 force 0 ,null 
+2116 20202113 branch calc_clke_pos2 
+
+qsetxor:
+2117 1fe97e00 rshift3 pdata ,pdata 
+2118 ea208005 ifetchr rega ,1 ,contw 
+2119 9a22fe00 ixor rega ,pdata 
+211a 2fec0006 isolate0 6 ,pdata 
+211b 2020211e branch qset_p 
+
+qset1_p:
+211c 2fcc0000 isolate0 0 ,null 
+
+qset_start:
+211d d8a08ac2 arg 0x8ac2 ,contw 
+
+qset_p:
+211e efe08005 ifetch 1 ,contw 
+211f f920fe00 qsetflag true ,pdata 
+2120 e7e08005 istore 1 ,contw 
+2121 20600000 rtn 
+
+rx_dcoc_avg:
+2122 2000003c nop 60 
+
+btdma:
+2123 70898308 jam 8 ,0x8983 
+2124 70898509 jam 9 ,0x8985 
+2125 70898109 jam 0x9 ,0x8981 
+2126 70898103 jam 0x3 ,0x8981 
+2127 70898006 jam 0x6 ,0x8980 
+2128 2000003c nop 60 
+2129 da200000 arg 0 ,rega 
+212a da400000 arg 0 ,regb 
+212b df200010 arg 16 ,loopcnt 
+212c d8c00800 arg 0x800 ,contr 
+
+rx_dcoc_loop:
+212d efe10006 ifetch 2 ,contr 
+212e 9a20a200 iadd rega ,rega 
+212f efe10006 ifetch 2 ,contr 
+2130 9a40a400 iadd regb ,regb 
+2131 c200212d loop rx_dcoc_loop 
+2132 20600000 rtn 
+
+rx_dcoc:
+2133 4487c001 bpatch patch01_7 ,mem_patch01 
+2134 20402160 call set_sync_on 
+2135 d8400027 arg 39 ,temp 
+2136 2040216f call set_freq_rx 
+2137 204021a6 call rf_rx_enable 
+2138 708a257f jam 0x7f ,0x8a25 
+2139 708a301a jam 0x1a ,0x8a30 
+213a 708a3178 jam 0x78 ,0x8a31 
+213b 708a8fb2 jam 0xb2 ,0x8a8f 
+213c 708ac200 jam 0 ,0x8ac2 
+213d 708ac300 jam 0 ,0x8ac3 
+213e d8e00006 arg 6 ,queue 
+213f 20402122 call rx_dcoc_avg 
+2140 2a2ffe0d isolate1 13 ,rega 
+2141 2040211d call qset_start 
+2142 2a4ffe0d isolate1 13 ,regb 
+2143 2040211e call qset_p 
+2144 d8e00005 arg 5 ,queue 
+
+rx_dcoc_loop2:
+2145 2040211c call qset1_p 
+2146 2040211e call qset_p 
+2147 20402122 call rx_dcoc_avg 
+2148 d8a08ac2 arg 0x8ac2 ,contw 
+2149 1a31fe00 rshift4 rega ,pdata 
+214a 20402117 call qsetxor 
+214b 1a51fe00 rshift4 regb ,pdata 
+214c 20402117 call qsetxor 
+214d 18e08fff increase -1 ,queue 
+214e 20212145 branch rx_dcoc_loop2 ,positive 
+214f 708a8f52 jam 0x52 ,0x8a8f 
+2150 708a3002 jam 2 ,0x8a30 
+2151 70898100 jam 0 ,0x8981 
+
+shutdown_radio:
+2152 44884002 bpatch patch02_0 ,mem_patch02 
+2153 20406875 call rf_debug_shutdown_radio_line 
+2154 78507c00 disable is_tx 
+2155 7850fc00 disable is_rx 
+2156 58000200 setarg 0x0200 
+2157 67f20a23 store 4 ,0x8a23 
+2158 708a01fa jam 0xfa ,0x8a01 
+2159 2000000c nop 12 
+215a 708a0f00 jam 0 ,0x8a0f 
+215b 708a121a jam 0x1a ,0x8a12 
+215c 708a142b jam 0x2b ,0x8a14 
+215d 18002a08 force 8 ,radio_ctrl 
+215e 18002a00 force 0 ,radio_ctrl 
+215f 2020230f branch gain_control 
+
+set_sync_on:
+2160 4488c002 bpatch patch02_1 ,mem_patch02 
+2161 708a0f60 jam 0x60 ,0x8a0f 
+2162 708a10aa jam 0xaa ,0x8a10 
+2163 708a127a jam 0x7a ,0x8a12 
+2164 708a2500 jam 0x00 ,0x8a25 
+2165 708a2600 jam 0x00 ,0x8a26 
+2166 2000003c nop 60 
+2167 708a2020 jam 0x20 ,0x8a20 
+2168 708a23fd jam 0xfd ,0x8a23 
+2169 708a2412 jam 0x12 ,0x8a24 
+216a 708a2410 jam 0x10 ,0x8a24 
+216b 2000003c nop 60 
+216c 708a1260 jam 0x60 ,0x8a12 
+216d 708a23dd jam 0xdd ,0x8a23 
+216e 20600000 rtn 
+
+set_freq_rx:
+216f 44894002 bpatch patch02_2 ,mem_patch02 
+2170 70890001 jam 0x01 ,0x8900 
+2171 708a239d jam 0x9d ,0x8a23 
+2172 708a2402 jam 0x02 ,0x8a24 
+2173 20000014 nop 20 
+2174 708a7065 jam 0x65 ,0x8a70 
+2175 708a239f jam 0x9f ,0x8a23 
+2176 2040218f call set_lemode 
+2177 60488008 storet 1 ,mem_last_freq 
+2178 18408401 increase 1 ,temp 
+
+aac_res_lookup:
+2179 4489c002 bpatch patch02_3 ,mem_patch02 
+217a 1851fe00 rshift4 temp ,pdata 
+217b d8c04135 arg mem_aac_res_table ,contr 
+217c 98c08c00 iadd contr ,contr 
+217d efe08006 ifetch 1 ,contr 
+217e 6a308a71 fetchr rega ,1 ,0x8a71 
+217f 1a21220f and_into 0xf ,rega 
+2180 9a21fe00 ior rega ,pdata 
+2181 67f08a71 store 1 ,0x8a71 
+2182 204021d0 call calc_freq 
+2183 20000090 nop 144 
+2184 6fe0c099 fetch 1 ,mem_fcomp_div 
+2185 c00c2187 beq xtal_24m ,aac_res_lookup_end 
+2186 20000024 nop 36 
+
+aac_res_lookup_end:
+2187 708a2080 jam 0x80 ,0x8a20 
+2188 20600000 rtn 
+
+set_lemode_2m_16m:
+2189 58008312 setarg 0x8312 
+218a 67f10907 store 2 ,0x8907 
+218b 20202197 branch set_lemode_2m 
+
+set_lemode_1m_16m:
+218c 58004189 setarg 0x4189 
+218d 67f10907 store 2 ,0x8907 
+218e 202021a3 branch set_lemode_1m 
+
+set_lemode:
+218f 448a4002 bpatch patch02_4 ,mem_patch02 
+2190 708a8211 jam 0x11 ,0x8a82 
+2191 708a8d12 jam 0x12 ,0x8a8d 
+2192 708a8e0a jam 0x0a ,0x8a8e 
+2193 6fe0c099 fetch 1 ,mem_fcomp_div 
+2194 c0082189 beq xtal_16m ,set_lemode_2m_16m 
+2195 58005762 setarg 0x5762 
+2196 67f10907 store 2 ,0x8907 
+
+set_lemode_2m:
+2197 70890103 jam 3 ,0x8901 
+2198 70892084 jam 0x84 ,0x8920 
+2199 c6168000 rtnmark1 mark_ble_2m 
+219a 70890101 jam 1 ,0x8901 
+219b 70892080 jam 0x80 ,0x8920 
+219c 708a8207 jam 0x07 ,0x8a82 
+219d 708a8d44 jam 0x44 ,0x8a8d 
+219e 708a8e0a jam 0x0a ,0x8a8e 
+219f 6fe0c099 fetch 1 ,mem_fcomp_div 
+21a0 c008218c beq xtal_16m ,set_lemode_1m_16m 
+21a1 58002bb1 setarg 0x2bb1 
+21a2 67f10907 store 2 ,0x8907 
+
+set_lemode_1m:
+21a3 c6978000 rtnmark0 mark_ble_lr 
+21a4 70890105 jam 5 ,0x8901 
+21a5 20600000 rtn 
+
+rf_rx_enable:
+21a6 448ac002 bpatch patch02_5 ,mem_patch02 
+21a7 2040686f call rf_debug_rx_gpio_high 
+21a8 204021ba call rf_rx_agc_set 
+21a9 18002a08 force 8 ,radio_ctrl 
+21aa 18002a00 force 0 ,radio_ctrl 
+21ab 580aaada setarg 0x0aaada 
+21ac 67f18a0f store 3 ,0x8a0f 
+21ad 708a2540 jam 0x40 ,0x8a25 
+21ae 708a2610 jam 0x10 ,0x8a26 
+21af 2000003c nop 60 
+21b0 708a01fb jam 0xfb ,0x8a01 
+21b1 708a25ff jam 0xff ,0x8a25 
+21b2 708a2630 jam 0x30 ,0x8a26 
+21b3 708a165e jam 0x5e ,0x8a16 
+21b4 20000014 nop 20 
+21b5 708a1000 jam 0x00 ,0x8a10 
+21b6 708a1108 jam 0x08 ,0x8a11 
+21b7 20000078 nop 120 
+21b8 7089000d jam 0xd ,0x8900 
+21b9 20600000 rtn 
+
+rf_rx_agc_set:
+21ba 6fe0c143 fetch 1 ,mem_gain_fix 
+21bb c07fa1c1 beq 0xff ,rf_rx_enable_no_soft_agc 
+21bc d8c04144 arg mem_gain_table ,contr 
+21bd 98c08c00 iadd contr ,contr 
+21be efe08006 ifetch 1 ,contr 
+21bf 67f08961 store 1 ,core_rf_rx_gain_fix 
+21c0 70896027 jam 0x27 ,core_rf_rx_agc_ctrl 
+
+rf_rx_enable_no_soft_agc:
+21c1 6848c147 fetcht 1 ,mem_gain_second_agc_en 
+21c2 6ff08960 fetch 1 ,core_rf_rx_agc_ctrl 
+21c3 9841fe00 ior temp ,pdata 
+21c4 67f08960 store 1 ,core_rf_rx_agc_ctrl 
+21c5 20600000 rtn 
+
+set_freq_tx_int:
+21c6 70890003 jam 0x03 ,0x8900 
+21c7 708a2402 jam 0x02 ,0x8a24 
+21c8 20000014 nop 20 
+21c9 708a7065 jam 0x65 ,0x8a70 
+21ca 708a23df jam 0xdf ,0x8a23 
+21cb 2040218f call set_lemode 
+21cc 204021e8 call ghp_lookup 
+21cd 60488008 storet 1 ,mem_last_freq 
+21ce 18408402 increase 2 ,temp 
+21cf 20202179 branch aac_res_lookup 
+
+calc_freq:
+21d0 448b4002 bpatch patch02_6 ,mem_patch02 
+21d1 58000960 setarg 2400 
+21d2 9840fe00 iadd temp ,pdata 
+21d3 1fe22200 copy pdata ,rega 
+21d4 6848c099 fetcht 1 ,mem_fcomp_div 
+21d5 18430400 rshift temp ,temp 
+21d6 9846fc00 idiv temp 
+21d7 20407d62 call wait_div_end 
+21d8 1807fe00 quotient pdata 
+21d9 67f10909 store 2 ,0x8909 
+21da 18077e00 remainder pdata 
+21db 1ff07e00 lshift16 pdata ,pdata 
+21dc 1fed7e00 lshift8 pdata ,pdata 
+21dd 9846fc00 idiv temp 
+21de 20407d62 call wait_div_end 
+21df 1807fe00 quotient pdata 
+21e0 67f1890b store 3 ,0x890b 
+21e1 62308a22 storer rega ,1 ,0x8a22 
+21e2 1a2ca200 rshift8 rega ,rega 
+21e3 62308a21 storer rega ,1 ,0x8a21 
+21e4 708a20a0 jam 0xa0 ,0x8a20 
+21e5 708a20e0 jam 0xe0 ,0x8a20 
+21e6 708a20a0 jam 0xa0 ,0x8a20 
+21e7 20600000 rtn 
+
+ghp_lookup:
+21e8 1840fe02 add temp ,2 ,pdata 
+21e9 1fe97e00 rshift3 pdata ,pdata 
+21ea 1fe17ffe and_into -2 ,pdata 
+21eb d8c0411d arg mem_ghpc_table ,contr 
+21ec c596a1ee bmark0 mark_ble_2m ,ghp_1m 
+21ed 18c08c0c increase 12 ,contr 
+
+ghp_1m:
+21ee 98c08c00 iadd contr ,contr 
+21ef ea210006 ifetchr rega ,2 ,contr 
+21f0 efe10006 ifetch 2 ,contr 
+21f1 9a267e00 isub rega ,pdata 
+21f2 18408c02 add temp ,2 ,contr 
+21f3 18c10c0f and_into 0xf ,contr 
+21f4 98cffe00 imul32 contr ,pdata 
+21f5 1ff1fe00 rshift4 pdata ,pdata 
+21f6 9a20fe00 iadd rega ,pdata 
+21f7 67f10905 store 2 ,0x8905 
+21f8 20600000 rtn 
+
+set_freq_tx:
+21f9 448bc002 bpatch patch02_7 ,mem_patch02 
+21fa 204021c6 call set_freq_tx_int 
+21fb 20000258 nop 600 
+
+txon:
+21fc 448c4003 bpatch patch03_0 ,mem_patch03 
+21fd 580aaa7e setarg 0x0aaa7e 
+21fe 67f18a0f store 3 ,0x8a0f 
+21ff 2000003c nop 60 
+2200 708a2500 jam 0x00 ,0x8a25 
+2201 708a260d jam 0x0d ,0x8a26 
+2202 708a1656 jam 0x56 ,0x8a16 
+2203 2000001e nop 30 
+2204 708a151b jam 0x1b ,0x8a15 
+2205 2040220c call set_tx_power 
+2206 20000014 nop 20 
+2207 708a260f jam 0x0f ,0x8a26 
+2208 20000014 nop 20 
+2209 708a10a8 jam 0xa8 ,0x8a10 
+220a 708a1100 jam 0x00 ,0x8a11 
+220b 20600000 rtn 
+
+set_tx_power:
+220c 448cc003 bpatch patch03_1 ,mem_patch03 
+220d 6fe0c141 fetch 1 ,mem_tx_power 
+220e c0002217 beq tx_power_0db ,set_tx_power_0db 
+220f c001a21c beq tx_power_3db ,set_tx_power_3db 
+2210 c002a221 beq tx_power_5db ,set_tx_power_5db 
+2211 c003a225 beq tx_power_7db ,set_tx_power_7db 
+2212 c0052229 beq tx_power_10db ,set_tx_power_10db 
+2213 c041a22d beq tx_power_f3db ,set_tx_power_f3db 
+2214 c042a231 beq tx_power_f5db ,set_tx_power_f5db 
+2215 c0452235 beq tx_power_f10db ,set_tx_power_f10db 
+2216 c04a2239 beq tx_power_f20db ,set_tx_power_f20db 
+
+set_tx_power_0db:
+2217 708a1417 jam 0x17 ,0x8a14 
+2218 58251a3f setarg 0x251a3f 
+2219 67f18a60 store 3 ,0x8a60 
+
+set_tx_power_8a63_28:
+221a 708a6328 jam 0x28 ,0x8a63 
+221b 20600000 rtn 
+
+set_tx_power_3db:
+221c 708a1425 jam 0x25 ,0x8a14 
+221d 58a91c2d setarg 0xa91c2d 
+221e 67f18a60 store 3 ,0x8a60 
+
+set_tx_power_8a63_2f:
+221f 708a632f jam 0x2f ,0x8a63 
+2220 20600000 rtn 
+
+set_tx_power_5db:
+2221 708a1425 jam 0x25 ,0x8a14 
+2222 58a91c3f setarg 0xa91c3f 
+2223 67f18a60 store 3 ,0x8a60 
+2224 2020221f branch set_tx_power_8a63_2f 
+
+set_tx_power_7db:
+2225 708a1425 jam 0x25 ,0x8a14 
+2226 58a9383f setarg 0xa9383f 
+2227 67f18a60 store 3 ,0x8a60 
+2228 2020221f branch set_tx_power_8a63_2f 
+
+set_tx_power_10db:
+2229 708a1425 jam 0x25 ,0x8a14 
+222a 58a93f3f setarg 0xa93f3f 
+222b 67f18a60 store 3 ,0x8a60 
+222c 2020221f branch set_tx_power_8a63_2f 
+
+set_tx_power_f3db:
+222d 708a1417 jam 0x17 ,0x8a14 
+222e 58251827 setarg 0x251827 
+222f 67f18a60 store 3 ,0x8a60 
+2230 2020221a branch set_tx_power_8a63_28 
+
+set_tx_power_f5db:
+2231 708a1417 jam 0x17 ,0x8a14 
+2232 5825181c setarg 0x25181c 
+2233 67f18a60 store 3 ,0x8a60 
+2234 2020221a branch set_tx_power_8a63_28 
+
+set_tx_power_f10db:
+2235 708a1417 jam 0x17 ,0x8a14 
+2236 5825180b setarg 0x25180b 
+2237 67f18a60 store 3 ,0x8a60 
+2238 2020221a branch set_tx_power_8a63_28 
+
+set_tx_power_f20db:
+2239 708a1417 jam 0x17 ,0x8a14 
+223a 58251000 setarg 0x251000 
+223b 67f18a60 store 3 ,0x8a60 
+223c 2020221a branch set_tx_power_8a63_28 
+
+initialize_radio:
+223d 70804206 jam clksel_rc ,core_clksel 
+
+initialize_radio_wait:
+223e 6fe1409c fetch 2 ,mem_rf_init_ptr 
+223f c307223e bbit0 14 ,initialize_radio_wait 
+2240 98000c00 iforce contr 
+2241 d8408a00 arg 0x8a00 ,temp 
+
+initialize_radio_loop:
+2242 efe08006 ifetch 1 ,contr 
+2243 c07fa248 beq 0xff ,initialize_radio_cont 
+2244 98418a00 ior temp ,contw 
+2245 efe08006 ifetch 1 ,contr 
+2246 e7e08005 istore 1 ,contw 
+2247 20202242 branch initialize_radio_loop 
+
+initialize_radio_cont:
+2248 448d4003 bpatch patch03_2 ,mem_patch03 
+2249 6fe0c436 fetch 1 ,mem_wdt_always_work 
+224a 205a70d7 call wdt_set_disable ,blank 
+224b 37d98200 until null ,lpo_edge 
+224c 70813b5f jam 0x5f ,0x813b 
+224d 6fe0c099 fetch 1 ,mem_fcomp_div 
+224e c0082266 beq xtal_16m ,initialize_radio_16m 
+224f 6fe0c438 fetch 1 ,mem_ring_ibias_trim 
+2250 1fe1fe04 or_into 0x04 ,pdata 
+2251 67f08a02 store 1 ,0x8a02 
+2252 70890f01 jam 0x01 ,0x890f 
+2253 708a8024 jam 0x24 ,0x8a80 
+2254 708a8162 jam 0x62 ,0x8a81 
+2255 58e61212 setarg 0xe61212 
+2256 67f18a73 store 3 ,0x8a73 
+
+initialize_radio2:
+2257 708a8660 jam 0x60 ,0x8a86 
+2258 708a8b3b jam 0x3b ,0x8a8b 
+2259 20402286 call dpll_on 
+225a 70804300 jam 0 ,core_config 
+225b 70804205 jam clksel_dpll ,core_clksel 
+225c 58557474 setarg 0x557474 
+225d 67f18968 store 3 ,0x8968 
+225e 7089606e jam 0x6e ,0x8960 
+225f 20402133 call rx_dcoc 
+2260 20402271 call rfpll_aac_ghpc 
+2261 6fe0c11c fetch 1 ,mem_xtal_c_sel 
+2262 67f0813a store 1 ,core_xtal_cap 
+2263 7041480c jam system_clk_12m ,mem_system_clk 
+2264 20406f4e call sadc_calibration 
+2265 202022b4 branch dpll_ring_ibias_calc 
+
+initialize_radio_16m:
+2266 6fe0c438 fetch 1 ,mem_ring_ibias_trim 
+2267 1fe1fe06 or_into 0x06 ,pdata 
+2268 67f08a02 store 1 ,0x8a02 
+2269 70890f00 jam 0x00 ,0x890f 
+226a 708a8023 jam 0x23 ,0x8a80 
+226b 708a81b0 jam 0xb0 ,0x8a81 
+226c 58e40909 setarg 0xe40909 
+226d 67f18a73 store 3 ,0x8a73 
+226e 708a762a jam 0x2a ,0x8a76 
+226f 70890204 jam 0x04 ,0x8902 
+2270 20202257 branch initialize_radio2 
+
+rfpll_aac_ghpc:
+2271 448dc003 bpatch patch03_3 ,mem_patch03 
+2272 20402160 call set_sync_on 
+2273 70890003 jam 3 ,0x8900 
+2274 708a7001 jam 0x1 ,0x8a70 
+2275 da40411d arg mem_ghpc_table ,regb 
+2276 db004135 arg mem_aac_res_table ,regd 
+2277 2040227c call rfpll_aac_ghpc_once 
+2278 7920002d set1 mark_ble_2m ,mark 
+2279 2040227c call rfpll_aac_ghpc_once 
+227a 708a7061 jam 0x61 ,0x8a70 
+227b 20202152 branch shutdown_radio 
+
+rfpll_aac_ghpc_once:
+227c 2040218f call set_lemode 
+227d df200006 arg 6 ,loopcnt 
+227e da600000 arg 0 ,regc 
+
+rfpll_cal_loop:
+227f 1a620400 copy regc ,temp 
+2280 20402294 call aac_ghpc 
+2281 1a40a402 increase 2 ,regb 
+2282 1b00b001 increase 1 ,regd 
+2283 1a60a610 increase 16 ,regc 
+2284 c200227f loop rfpll_cal_loop 
+2285 20600000 rtn 
+
+dpll_on:
+2286 6fe0c099 fetch 1 ,mem_fcomp_div 
+2287 c00c228c beq xtal_24m ,dpll_on_24m 
+2288 6fe0c438 fetch 1 ,mem_ring_ibias_trim 
+2289 1fe1fe06 or_into 0x06 ,pdata 
+228a 67f08a02 store 1 ,0x8a02 
+228b 708a05e0 jam 0xe0 ,0x8a05 
+
+dpll_on_24m:
+228c 708a00c8 jam 0xc8 ,0x8a00 
+228d 2000003c nop 60 
+228e 708a01a0 jam 0xa0 ,0x8a01 
+228f 708a00cf jam 0xcf ,0x8a00 
+2290 708a01fa jam 0xfa ,0x8a01 
+2291 20000014 nop 20 
+2292 708a008f jam 0x8f ,0x8a00 
+2293 20600000 rtn 
+
+aac_ghpc:
+2294 448e4003 bpatch patch03_4 ,mem_patch03 
+2295 708a2030 jam 0x30 ,0x8a20 
+2296 708a23dd jam 0xdd ,0x8a23 
+2297 204021d0 call calc_freq 
+
+wait_cal_done:
+2298 6ff08a7c fetch 1 ,0x8a7c 
+2299 c3002298 bbit0 0 ,wait_cal_done 
+229a 708a7b30 jam 0x30 ,0x8a7b 
+229b 204022ae call read_cal_result 
+229c 98002200 iforce rega 
+229d 708a7b40 jam 0x40 ,0x8a7b 
+229e 204022ae call read_cal_result 
+229f 9a267e00 isub rega ,pdata 
+22a0 1fef847d mul32 pdata ,125 ,temp 
+22a1 58b00000 setarg 0xb00000 
+22a2 9846fc00 idiv temp 
+22a3 20407d62 call wait_div_end 
+22a4 1807fe00 quotient pdata 
+22a5 c596a2a7 bmark0 mark_ble_2m ,aac_ghpc_1m 
+22a6 1fe3fe00 lshift pdata ,pdata 
+
+aac_ghpc_1m:
+22a7 e7e10012 istore 2 ,regb 
+22a8 708a7b20 jam 0x20 ,0x8a7b 
+22a9 6ff08a7e fetch 1 ,0x8a7e 
+22aa 1ff27e00 lshift4 pdata ,pdata 
+22ab e7e08018 istore 1 ,regd 
+22ac 708a7b00 jam 0 ,0x8a7b 
+22ad 20600000 rtn 
+
+read_cal_result:
+22ae 6ff10a7d fetch 2 ,0x8a7d 
+22af 1ff0fe00 byteswap pdata ,pdata 
+22b0 68588a7c fetcht 1 ,0x8a7c 
+22b1 18500400 lshift16 temp ,temp 
+22b2 9841fe00 ior temp ,pdata 
+22b3 20600000 rtn 
+
+dpll_ring_ibias_calc:
+22b4 448ec003 bpatch patch03_5 ,mem_patch03 
+22b5 6ff08a0d fetch 1 ,core_vtest_ctrl0 
+22b6 79207e00 set1 0 ,pdata 
+22b7 67f08a0d store 1 ,core_vtest_ctrl0 
+22b8 708a0ef0 jam 0xf0 ,core_vtest_ctrl1 
+22b9 6ff08a05 fetch 1 ,core_bbpll_cfg3 
+22ba 1fe1fe16 or_into 0x16 ,pdata 
+22bb 67f08a05 store 1 ,core_bbpll_cfg3 
+22bc 6fe0c411 fetch 1 ,mem_adc_dma_enable 
+22bd 67e08678 store 1 ,mem_temp 
+22be 6fe0c408 fetch 1 ,mem_adc_channel 
+22bf 67e08679 store 1 ,mem_temp + 1 
+22c0 70441100 jam 0 ,mem_adc_dma_enable 
+22c1 6fe0c43e fetch 1 ,mem_ring_ibias_calc_adc_channel 
+22c2 67e0c408 store 1 ,mem_adc_channel 
+22c3 6848c43d fetcht 1 ,mem_ring_ibias_calc_adc_gpio 
+22c4 20406f0f call gpio_set_high_impedance 
+22c5 da200000 arg 0 ,rega 
+22c6 df200008 arg 8 ,loopcnt 
+
+dpll_ring_ibias_read_adc:
+22c7 20406f82 call enable_adc 
+22c8 6fe1440a fetch 2 ,mem_adc_current_value 
+22c9 9a20a200 iadd rega ,rega 
+22ca c20022c7 loop dpll_ring_ibias_read_adc 
+22cb 1a292200 rshift3 rega ,rega 
+22cc 67e1440a store 2 ,mem_adc_current_value 
+22cd 6fe08678 fetch 1 ,mem_temp 
+22ce 67e0c411 store 1 ,mem_adc_dma_enable 
+22cf 6fe08679 fetch 1 ,mem_temp + 1 
+22d0 67e0c408 store 1 ,mem_adc_channel 
+22d1 6ff08a05 fetch 1 ,core_bbpll_cfg3 
+22d2 1fe17ee0 and_into 0xe0 ,pdata 
+22d3 67f08a05 store 1 ,core_bbpll_cfg3 
+22d4 708a0e00 jam 0x00 ,core_vtest_ctrl1 
+22d5 6ff08a0d fetch 1 ,core_vtest_ctrl0 
+22d6 793ffe00 set0 0 ,pdata 
+22d7 67f08a0d store 1 ,core_vtest_ctrl0 
+22d8 20406fb0 call vdd_calculate_by_mode 
+22d9 6849443b fetcht 2 ,mem_ring_ibias_vtune_high 
+22da 98467c00 isub temp ,null 
+22db 202122e4 branch ring_ibias_trim_incrs ,positive 
+22dc 68494439 fetcht 2 ,mem_ring_ibias_vtune_low 
+22dd 98467c00 isub temp ,null 
+22de 20610000 rtn positive 
+
+ring_ibias_trim_decrs:
+22df 6fe0c438 fetch 1 ,mem_ring_ibias_trim 
+22e0 c1000000 rtneq 0x00 
+22e1 1fe0ffe0 increase -32 ,pdata 
+22e2 67e0c438 store 1 ,mem_ring_ibias_trim 
+22e3 20600000 rtn 
+
+ring_ibias_trim_incrs:
+22e4 6fe0c438 fetch 1 ,mem_ring_ibias_trim 
+22e5 c1700000 rtneq 0xe0 
+22e6 1fe0fe20 increase 32 ,pdata 
+22e7 67e0c438 store 1 ,mem_ring_ibias_trim 
+22e8 20600000 rtn 
+
+save_rssi:
+22e9 448f4003 bpatch patch03_6 ,mem_patch03 
+22ea 6ff089a2 fetch 1 ,modem_nb_pow 
+22eb 2feffe06 isolate1 6 ,pdata 
+22ec 7920fe07 setflag true ,7 ,pdata 
+22ed 67e0c142 store 1 ,mem_modem_rssi 
+22ee 6ff089a3 fetch 1 ,modem_gain 
+22ef 1fe1040f and pdata ,0x0f ,temp 
+22f0 18438400 lshift temp ,temp 
+22f1 1ff1fe00 rshift4 pdata ,pdata 
+22f2 98408400 iadd temp ,temp 
+22f3 184fa203 mul32 temp ,3 ,rega 
+22f4 6fe0c142 fetch 1 ,mem_modem_rssi 
+22f5 204022ff call byte_sign_extern 
+22f6 1fe67e00 sub pdata ,0 ,pdata 
+22f7 9a20fe00 iadd rega ,pdata 
+22f8 1fe0fff7 increase -9 ,pdata 
+22f9 1fe17fff and pdata ,0x1ff ,pdata 
+22fa 2feffe08 isolate1 8 ,pdata 
+22fb 2420a2fd nbranch save_rssi_store ,true 
+22fc 58000000 setarg 0 
+
+save_rssi_store:
+22fd 67e08035 store 1 ,mem_rssi_hex 
+22fe 20202304 branch rssi_hex2dec 
+
+byte_sign_extern:
+22ff 2feffe07 isolate1 7 ,pdata 
+2300 24608000 nrtn true 
+2301 d840ff00 arg 0xff00 ,temp 
+2302 9841fe00 ior temp ,pdata 
+2303 20600000 rtn 
+
+rssi_hex2dec:
+2304 6fe08035 fetch 1 ,mem_rssi_hex 
+2305 20402308 call bcd 
+2306 67e08009 store 1 ,mem_rssi 
+2307 20600000 rtn 
+
+bcd:
+2308 1fe17eff and_into 0xff ,pdata 
+2309 1fe6fc0a div pdata ,10 
+230a 20407d5f call get_div_result 
+230b 1ff27e00 lshift4 pdata ,pdata 
+230c 18070400 remainder temp 
+230d 9841fe00 ior temp ,pdata 
+230e 20600000 rtn 
+
+gain_control:
+230f 448fc003 bpatch patch03_7 ,mem_patch03 
+2310 6fe0c143 fetch 1 ,mem_gain_fix 
+2311 c17f8000 rtneq 0xff 
+2312 242c2336 nbranch gain_increase ,sync 
+2313 6fe0c142 fetch 1 ,mem_modem_rssi 
+2314 1fe67cf0 sub pdata ,0xf0 ,null 
+2315 2421233a nbranch gain_descend ,positive 
+2316 1fe67c7f sub pdata ,0x7f ,null 
+2317 2021233a branch gain_descend ,positive 
+2318 6a308961 fetchr rega ,1 ,core_rf_rx_gain_fix 
+2319 6fe0c143 fetch 1 ,mem_gain_fix 
+231a c1000000 rtneq 0 
+231b d8c04144 arg mem_gain_table ,contr 
+231c 98c08c00 iadd contr ,contr 
+231d efe08006 ifetch 1 ,contr 
+231e 9a267c00 isub rega ,null 
+231f 24628000 nrtn zero 
+2320 18c08dfe increase -2 ,contr 
+2321 e8408006 ifetcht 1 ,contr 
+2322 1851fe00 rshift4 temp ,pdata 
+2323 1a31a400 rshift4 rega ,regb 
+2324 9a462400 isub regb ,regb 
+2325 18417e0f and temp ,0xf ,pdata 
+2326 1a21220f and rega ,0xf ,rega 
+2327 9a262200 isub rega ,rega 
+2328 1a23fe00 lshift rega ,pdata 
+2329 9a40a400 iadd regb ,regb 
+232a 1a4fa403 mul32 regb ,3 ,regb 
+232b 6848c142 fetcht 1 ,mem_modem_rssi 
+232c 18417e80 and temp ,0x80 ,pdata 
+232d 207a0000 rtn blank 
+
+add_negative:
+232e 58000100 setarg 0x100 
+232f 98460400 isub temp ,temp 
+2330 1a427e00 copy regb ,pdata 
+2331 98467e00 isub temp ,pdata 
+2332 20610000 rtn positive 
+2333 1fe17eff and pdata ,0xff ,pdata 
+2334 c17f8000 rtneq 0xff 
+2335 c17f0000 rtneq 0xfe 
+
+gain_increase:
+2336 6fe0c143 fetch 1 ,mem_gain_fix 
+2337 c000a33f beq 1 ,set_rx_gain0 
+2338 c0012341 beq 2 ,set_rx_gain1 
+2339 2020233f branch set_rx_gain0 
+
+gain_descend:
+233a 6fe0c143 fetch 1 ,mem_gain_fix 
+233b c0002341 beq 0 ,set_rx_gain1 
+233c c000a33d beq 1 ,set_rx_gain2 
+
+set_rx_gain2:
+233d 70414302 jam 2 ,mem_gain_fix 
+233e 20600000 rtn 
+
+set_rx_gain0:
+233f 70414300 jam 0 ,mem_gain_fix 
+2340 20600000 rtn 
+
+set_rx_gain1:
+2341 70414301 jam 1 ,mem_gain_fix 
+2342 20600000 rtn 
+
+ahead_window:
+2343 1fe20400 copy pdata ,temp 
+2344 44904004 bpatch patch04_0 ,mem_patch04 
+2345 18427e00 copy temp ,pdata 
+2346 20407d2c call clk2bt 
+2347 1c307e00 lshift16 bt_clk ,pdata 
+2348 79207e2c set1 44 ,pdata 
+2349 20407d12 call clk_diff 
+234a 793ffe2c set0 44 ,pdata 
+234b 20402352 call get_clk 
+234c 20407d12 call clk_diff 
+234d 20740000 rtn user 
+234e 20407d1f call clk2rt 
+234f 98003600 iforce stop_watch 
+2350 37c18200 until null ,timeout 
+2351 20600000 rtn 
+
+get_clk:
+2352 1b220400 copy clkn ,temp 
+2353 20748000 rtn master 
+2354 1b420400 copy clke ,temp 
+2355 20600000 rtn 
+
+get_clkbt:
+2356 1c427e00 deposit clkn_bt 
+2357 20748000 rtn master 
+2358 1d027e00 deposit clke_bt 
+2359 20600000 rtn 
+
+assert:
+235a 4490c004 bpatch patch04_1 ,mem_patch04 
+235b 2020235a branch assert 
+
+sleep:
+235c 207a0000 rtn blank 
+235d 1fe37e00 rshift pdata ,pdata 
+235e 1fe0fffd increase -3 ,pdata 
+
+sleep_loop:
+235f 1fe0ffff increase -1 ,pdata 
+2360 2422a35f nbranch sleep_loop ,zero 
+2361 18007e00 force 0 ,pdata 
+2362 20600000 rtn 
+
+init_param:
+2363 58000e43 setarg param_tx_setup 
+2364 67e10036 store 2 ,mem_param_tx_setup 
+2365 58000600 setarg param_rf_setup 
+2366 67e10038 store 2 ,mem_param_rf_setup 
+2367 58000600 setarg param_conn_access 
+2368 67e1003a store 2 ,mem_param_conn_access 
+2369 58000d00 setarg param_rx_setup 
+236a 67e10040 store 2 ,mem_param_rx_setup 
+236b 580003bb setarg param_clke_cal 
+236c 67e1003c store 2 ,mem_param_clke_cal 
+236d 58000500 setarg param_pll_setup 
+236e 67e1003e store 2 ,mem_param_pll_setup 
+236f 580007d0 setarg param_dpll_start_delay 
+2370 67e10042 store 2 ,mem_param_dpll_start_delay 
+2371 58000ea6 setarg param_rt_rthalfslot 
+2372 67e10044 store 2 ,mem_param_rt_rthalfslot 
+2373 580001e0 setarg param_clke_cal_le_1m 
+2374 67e10046 store 2 ,mem_param_clke_cal_le_1m 
+2375 58000120 setarg param_clke_cal_le_2m 
+2376 67e10048 store 2 ,mem_param_clke_cal_le_2m 
+2377 5800011a setarg param_clke_cal_le_coded 
+2378 67e1004a store 2 ,mem_param_clke_cal_le_coded 
+2379 44914004 bpatch patch04_2 ,mem_patch04 
+237a 20758000 rtn wake 
+237b 58000017 setarg att_default_mtu 
+237c 67e142e3 store 2 ,mem_le_remote_mtu 
+237d 7041678b jam param_t_ifs_150us + param_sync_time_difference ,mem_le_tx_ifs_defference 
+237e 58000d00 setarg mem_ble_tx_buff0 
+237f 67e1433f store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+2380 58000060 setarg mem_ble_l2cap_tx_buff_size 
+2381 67e14341 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+2382 1c437e00 rshift clkn_bt ,pdata 
+2383 67e24095 store 4 ,mem_last_clkn 
+2384 20600000 rtn 
+
+lpmstate:
+2385 5800ee21 setarg 0xee21 
+2386 67f10050 store 2 ,core_clkoff 
+2387 6e12011c fetchr alarm ,4 ,core_gpio_in 
+2388 6ff08132 fetch 1 ,core_lpm_isogate 
+2389 c302a39c bbit0 gpio_latch ,power_up 
+238a 7835fc00 enable wake 
+238b c2822393 bbit1 cold_wake ,lpmwake 
+238c 7855fc00 disable wake 
+238d 1ce27e00 deposit auxcnt 
+238e 243a2393 nbranch lpmwake ,blank 
+238f 6ff08142 fetch 1 ,core_lpm_sysctl 
+2390 c2822393 bbit1 reload_code ,lpmwake 
+2391 d85fffff arg param_hibernate_clks ,temp 
+2392 20202434 branch lpm_enter_sleep 
+
+lpmwake:
+2393 204023a0 call lpm_poweron_retmem 
+2394 2055a3e6 call lpm_load_context ,wake 
+2395 6ff08132 fetch 1 ,core_lpm_isogate 
+2396 793ffe05 set0 gpio_latch ,pdata 
+2397 67f08132 store 1 ,core_lpm_isogate 
+2398 2435a39d nbranch boot_load ,wake 
+2399 20000001 nop 1 
+239a 6602069d storer alarm ,4 ,mem_saved_gpio_in 
+239b 20600000 rtn 
+
+power_up:
+239c 204023a0 call lpm_poweron_retmem 
+
+boot_load:
+239d 20406a68 call loadcode 
+239e 6602069d storer alarm ,4 ,mem_saved_gpio_in 
+239f 20600000 rtn 
+
+lpm_poweron_retmem:
+23a0 37d98200 until null ,lpo_edge 
+23a1 6ff08133 fetch 1 ,core_lpm_ldosel 
+23a2 1fe17e88 and_into 0x88 ,pdata 
+23a3 67f08133 store 1 ,core_lpm_ldosel 
+23a4 37d98200 until null ,lpo_edge 
+23a5 6ff08132 fetch 1 ,core_lpm_isogate 
+23a6 1fe1fe0f or_into 0xf ,pdata 
+23a7 67f08132 store 1 ,core_lpm_isogate 
+23a8 37d98200 until null ,lpo_edge 
+23a9 79207e07 set1 isogate ,pdata 
+23aa 67f08132 store 1 ,core_lpm_isogate 
+23ab 37d98200 until null ,lpo_edge 
+23ac 79207e06 set1 retmem_cs ,pdata 
+23ad 67f08132 store 1 ,core_lpm_isogate 
+23ae 37d98200 until null ,lpo_edge 
+23af 20600000 rtn 
+
+lpm_xtal_default:
+23b0 37d98200 until null ,lpo_edge 
+23b1 70813d76 jam 0x76 ,core_xtal_ib 
+23b2 37d98200 until null ,lpo_edge 
+23b3 70813a37 jam 0x37 ,core_xtal_cap 
+23b4 20600000 rtn 
+
+xtal_fast_wake:
+23b5 37d98200 until null ,lpo_edge 
+23b6 70813d76 jam 0x76 ,core_xtal_ib 
+23b7 37d98200 until null ,lpo_edge 
+23b8 70813a37 jam 0x37 ,core_xtal_cap 
+23b9 20600000 rtn 
+
+lpm_write_lock:
+23ba 6fe0c3cb fetch 1 ,mem_device_option 
+23bb 1ff27e00 lshift4 pdata ,pdata 
+23bc 67f08143 store 1 ,core_ucode_flag 
+23bd 37d98200 until null ,lpo_edge 
+23be 6fe0c3cc fetch 1 ,mem_peripheral_lock_flag 
+23bf 79207e05 set1 rom_lock_bit ,pdata 
+23c0 79207e06 set1 option_lock ,pdata 
+23c1 67f08144 store 1 ,core_peripheral_lock 
+23c2 202023e2 branch lpm_write_wait 
+
+lpm_write_ice_disable:
+23c3 6ff08142 fetch 1 ,core_lpm_sysctl 
+23c4 793ffe03 set0 ice_mode ,pdata 
+23c5 67f08142 store 1 ,core_lpm_sysctl 
+23c6 20600000 rtn 
+
+lpm_write_ice_enable:
+23c7 6ff08142 fetch 1 ,core_lpm_sysctl 
+23c8 79207e03 set1 ice_mode ,pdata 
+23c9 67f08142 store 1 ,core_lpm_sysctl 
+23ca 20600000 rtn 
+
+lpm_preon_counter:
+23cb 6fe1c0c3 fetch 3 ,mem_lpm_xtalcnt 
+23cc d8a0813e arg core_lpm_xtalcnt ,contw 
+
+lpm_write_3bytes:
+23cd df200003 arg 3 ,loopcnt 
+23ce 202023d1 branch lpm_write_loop 
+
+lpm_write_mpu_s0:
+23cf d8a08145 arg core_mpu_s0_saddr ,contw 
+
+lpm_write_dword:
+23d0 df200004 arg 4 ,loopcnt 
+
+lpm_write_loop:
+23d1 37d98200 until null ,lpo_edge 
+23d2 e7e08005 istore 1 ,contw 
+23d3 1fecfe00 rshift8 pdata ,pdata 
+23d4 c20023d1 loop lpm_write_loop 
+23d5 202023e2 branch lpm_write_wait 
+
+lpm_write_mpu_s1:
+23d6 d8a08149 arg core_mpu_s1_saddr ,contw 
+23d7 202023d0 branch lpm_write_dword 
+
+lpm_disable_exen_output:
+23d8 6ff08133 fetch 1 ,core_lpm_ldosel 
+23d9 793ffe03 set0 3 ,pdata 
+23da 67f08133 store 1 ,core_lpm_ldosel 
+23db 20600000 rtn 
+
+lpm_disable_io_dozed:
+23dc 6fe0c0cb fetch 1 ,mem_lpm_hv_sel 
+23dd 207a0000 rtn blank 
+23de 793ffe04 set0 lpm_doze_en_bit ,pdata 
+23df 202023e1 branch lpm_write_sel_hv 
+
+lpm_save_sel_hv:
+23e0 67e0c0cb store 1 ,mem_lpm_hv_sel 
+
+lpm_write_sel_hv:
+23e1 67f08135 store 1 ,core_io_doze_en 
+
+lpm_write_wait:
+23e2 37d98200 until null ,lpo_edge 
+23e3 20600000 rtn 
+
+lpm_write_io_vsel:
+23e4 67f08134 store 1 ,core_io_vsel 
+23e5 202023e2 branch lpm_write_wait 
+
+lpm_load_context:
+23e6 204023dc call lpm_disable_io_dozed 
+23e7 6fe0c0ef fetch 1 ,mem_saved_spidctrl 
+23e8 67f08080 store 1 ,core_spid_ctrl 
+23e9 d8c040cc arg mem_saved_gpio ,contr 
+23ea d8a08070 arg core_gpio_conf ,contw 
+23eb 20407c8f call memcpy16 
+23ec d8a080d4 arg core_gpio_conf_hi ,contw 
+23ed 20407c89 call memcpy8 
+23ee 680440e7 fetchr mark ,8 ,mem_saved_mark 
+23ef d8c0814d arg core_gpio_wakeup_cfg ,contr 
+23f0 d8a00016 arg mem_gpio_wakeup_cfg ,contw 
+23f1 df20000c arg 12 ,loopcnt 
+23f2 20407cda call memcpy 
+23f3 20206b11 branch load_ucode 
+
+lpm_save_context:
+23f4 600440e7 storer mark ,8 ,mem_saved_mark 
+23f5 d8c08070 arg core_gpio_conf ,contr 
+23f6 d8a040cc arg mem_saved_gpio ,contw 
+23f7 20407c8f call memcpy16 
+23f8 d8c080d4 arg core_gpio_conf_hi ,contr 
+23f9 20407c89 call memcpy8 
+23fa 6ff08080 fetch 1 ,core_spid_ctrl 
+23fb 67e0c0ef store 1 ,mem_saved_spidctrl 
+23fc 202023fd branch lpm_write_gpio_wakeup 
+
+lpm_write_gpio_wakeup:
+23fd df20000c arg 12 ,loopcnt 
+23fe d8c00016 arg mem_gpio_wakeup_cfg ,contr 
+23ff da20814d arg core_gpio_wakeup_cfg ,rega 
+
+lpm_write_gpio_loop:
+2400 efe08006 ifetch 1 ,contr 
+2401 245a2405 ncall lpm_write_gpio ,blank 
+2402 1a20a201 increase 1 ,rega 
+2403 c2002400 loop lpm_write_gpio_loop 
+2404 20600000 rtn 
+
+lpm_write_gpio:
+2405 e7e08011 istore 1 ,rega 
+2406 37d98200 until null ,lpo_edge 
+2407 20600000 rtn 
+
+lpo_calibration:
+2408 4491c004 bpatch patch04_3 ,mem_patch04 
+2409 6ff080cb fetch 1 ,core_ccnt_bit 
+240a 243a240f nbranch lpo_cal_inited ,blank 
+240b 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+240c 247a0000 nrtn blank 
+240d 7080cb0c jam 0xc ,core_ccnt_bit 
+240e 70800680 jam ccnt_start ,core_misc_ctrl 
+
+lpo_cal_inited:
+240f 6ff08129 fetch 1 ,core_perf_status 
+2410 c4008000 rtnbit0 1 
+2411 6ff1815b fetch 3 ,core_clk_counter 
+2412 67e1c0bd store 3 ,mem_clks_per_lpo 
+2413 20600000 rtn 
+
+lpm_doze:
+2414 6fe0c0ca fetch 1 ,mem_lpm_sysctl 
+2415 79207e04 set1 reload_code ,pdata 
+2416 67e0c0ca store 1 ,mem_lpm_sysctl 
+
+lpm_hibernate:
+2417 44924004 bpatch patch04_4 ,mem_patch04 
+2418 d85fffff arg param_hibernate_clks ,temp 
+2419 6fe0c0a7 fetch 1 ,mem_lpm_hibernate_switch 
+241a 67e0c0c8 store 1 ,mem_lpm_isogate_final 
+241b 6fe0c0ca fetch 1 ,mem_lpm_sysctl 
+241c 67f08142 store 1 ,core_lpm_sysctl 
+241d 37d98200 until null ,lpo_edge 
+
+lpm_sleep:
+241e 4492c004 bpatch patch04_5 ,mem_patch04 
+241f 6fe143e9 fetch 2 ,mem_cb_before_lpm_sleep 
+2420 20407d79 call callback_func 
+
+lpm_sleep_skip_cb_function:
+2421 6fe240ad fetch 4 ,mem_sleep_counter_all 
+2422 9840fe00 iadd temp ,pdata 
+2423 67e240ad store 4 ,mem_sleep_counter_all 
+2424 204023f4 call lpm_save_context 
+2425 6fe0c0cb fetch 1 ,mem_lpm_hv_sel 
+2426 79207e04 set1 lpm_doze_en_bit ,pdata 
+2427 204023e1 call lpm_write_sel_hv 
+2428 2455a3cb ncall lpm_preon_counter ,wake 
+2429 37d98200 until null ,lpo_edge 
+242a 632340b1 storer clkn ,6 ,mem_sleep_clkn 
+242b 6fe1c0c6 fetch 3 ,mem_lpm_isogate 
+242c 6a20c0c9 fetchr rega ,1 ,mem_lpm_ldo_sel 
+242d df200003 arg 3 ,loopcnt 
+
+lpm_sleep_loop:
+242e 37d98200 until null ,lpo_edge 
+242f 67f08132 store 1 ,core_lpm_isogate 
+2430 1fecfe00 rshift8 pdata ,pdata 
+2431 c200242e loop lpm_sleep_loop 
+2432 37d98200 until null ,lpo_edge 
+2433 62308133 storer rega ,1 ,core_lpm_ldosel 
+
+lpm_enter_sleep:
+2434 37d98200 until null ,lpo_edge 
+2435 605a004c storet 4 ,core_lpm_reg 
+2436 70800501 jam lpmreg_sel_counter ,core_lpm_wr 
+2437 37df8200 until null ,never 
+
+lpm_cal_xtal_startup:
+2438 6fe0c0c3 fetch 1 ,mem_lpm_xtalcnt 
+2439 247a0000 nrtn blank 
+243a 70804206 jam clksel_rc ,core_clksel 
+243b 708130f8 jam 0xf8 ,core_lpm_ctrl 
+243c 58030d40 setarg 200000 
+243d 2040235c call sleep 
+243e 204023b5 call xtal_fast_wake 
+243f 37d98200 until null ,lpo_edge 
+2440 708130ff jam 0xff ,core_lpm_ctrl 
+2441 1e226000 copy lpo_time ,alarm 
+2442 70804204 jam clksel_xtal ,core_clksel 
+2443 2000000a nop 10 
+2444 37d98200 until null ,lpo_edge 
+2445 1e227e00 deposit lpo_time 
+2446 9e067e00 isub alarm ,pdata 
+2447 1fe0fe30 increase 0x30 ,pdata 
+2448 d84000ff arg 0xff ,temp 
+2449 20407d6c call ceiling 
+244a 67e0c0c3 store 1 ,mem_lpm_xtalcnt 
+244b 20007530 nop 30000 
+244c 20007530 nop 30000 
+244d 20007530 nop 30000 
+244e 20600000 rtn 
+
+lpm_recover_clk:
+244f 44934004 bpatch patch04_6 ,mem_patch04 
+2450 58000000 setarg 0 
+2451 1ce27c00 copy auxcnt ,null 
+2452 2022a45a branch lpm_recover_timeout ,zero 
+2453 6ff0813e fetch 1 ,core_lpm_xtalcnt 
+2454 6858813f fetcht 1 ,core_lpm_buckcnt 
+2455 98467c00 isub temp ,null 
+2456 20212458 branch lpm_recover_xtal ,positive 
+2457 18427e00 deposit temp 
+
+lpm_recover_xtal:
+2458 9ce67e00 isub auxcnt ,pdata 
+2459 1fe0fe01 increase 1 ,pdata 
+
+lpm_recover_timeout:
+245a 1fe0fe08 increase 8 ,pdata 
+245b 37d98200 until null ,lpo_edge 
+245c 9e20fe00 iadd lpo_time ,pdata 
+245d 684a40a9 fetcht 4 ,mem_sleep_counter 
+245e 9840fe00 iadd temp ,pdata 
+245f 6849c0bd fetcht 3 ,mem_clks_per_lpo 
+2460 984ffe00 imul32 temp ,pdata 
+2461 1fecfe00 rshift8 pdata ,pdata 
+2462 1ff1fe00 rshift4 pdata ,pdata 
+2463 1fe0fe6e increase param_lpm_fix ,pdata 
+2464 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
+2465 9846fc00 idiv temp 
+2466 20407d5f call get_div_result 
+2467 1ff07e00 lshift16 pdata ,pdata 
+2468 18070400 remainder temp 
+2469 9841fe00 ior temp ,pdata 
+246a 684b40b1 fetcht 6 ,mem_sleep_clkn 
+246b 20407d05 call clk_add 
+246c 18423200 copy temp ,clkn 
+246d 6fe34048 fetch 6 ,mem_context + coffset_clk_offset 
+246e 20402109 call calc_clke2 
+246f 1b427e00 deposit clke 
+2470 67e30670 store 6 ,mem_pdatatemp 
+2471 1ce27e00 deposit auxcnt 
+2472 e7e08005 istore 1 ,contw 
+2473 6ff0811d fetch 1 ,core_gpio_in1 
+2474 1fe1fef0 or_into 0xf0 ,pdata 
+2475 e7e08005 istore 1 ,contw 
+2476 20600000 rtn 
+
+lpm_adjust_clk:
+2477 4493c004 bpatch patch04_7 ,mem_patch04 
+2478 1b427e00 deposit clke 
+2479 20407d10 call clk_diff_rt 
+247a 684a40ad fetcht 4 ,mem_sleep_counter_all 
+247b 18467cff sub temp ,0xff ,null 
+247c 20610000 rtn positive 
+247d 1fed7e00 lshift8 pdata ,pdata 
+247e 1ff27e00 lshift4 pdata ,pdata 
+247f 9846fc00 idiv temp 
+2480 20407d5f call get_div_result 
+2481 d84000c8 arg param_lpm_adjmax ,temp 
+2482 20407d6c call ceiling 
+2483 67e0800e store 1 ,mem_lpm_adjust 
+2484 24342486 nbranch lpm_adjust_positive ,user 
+2485 1fe67e00 sub pdata ,0 ,pdata 
+
+lpm_adjust_positive:
+2486 6849c0bd fetcht 3 ,mem_clks_per_lpo 
+2487 9840fe00 iadd temp ,pdata 
+2488 67e1c0bd store 3 ,mem_clks_per_lpo 
+
+lpm_clear_counter:
+2489 58000000 setarg 0 
+248a 67e240ad store 4 ,mem_sleep_counter_all 
+248b 20600000 rtn 
+
+lpm_dispatch:
+248c 44944005 bpatch patch05_0 ,mem_patch05 
+248d 20402408 call lpo_calibration 
+248e 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+248f 207a0000 rtn blank 
+2490 6fe0c094 fetch 1 ,mem_lpm_mode 
+2491 207a0000 rtn blank 
+2492 6fe0c46c fetch 1 ,mem_secure_connections_enable 
+2493 203a2496 branch lpm_dispatch_next ,blank 
+2494 6fe0c46e fetch 1 ,mem_sc_local_key_invalid 
+2495 207a0000 rtn blank 
+
+lpm_dispatch_next:
+2496 6fe0c46d fetch 1 ,mem_sc_calc 
+2497 247a0000 nrtn blank 
+2498 da6020af arg context_check_a_wack ,regc 
+2499 20402069 call context_search 
+249a 20628000 rtn zero 
+249b 204024ef call lpm_check_wake_lock 
+249c 247a0000 nrtn blank 
+249d 2040205d call context_check_idle 
+249e 2422a4bd nbranch lpm_dispatch_unconn ,zero 
+249f 20758000 rtn wake 
+24a0 4494c005 bpatch patch05_1 ,mem_patch05 
+24a1 68488015 fetcht 1 ,mem_lpm_current_mult 
+24a2 6fe14042 fetch 2 ,mem_context + coffset_tsniff 
+24a3 984ffe00 imul32 temp ,pdata 
+24a4 18518400 rshift4 temp ,temp 
+24a5 184b0400 rshift2 temp ,temp 
+24a6 98467e00 isub temp ,pdata 
+24a7 684a4044 fetcht 4 ,mem_context + coffset_sniff_anchor 
+24a8 9840fe00 iadd temp ,pdata 
+24a9 6848c0a6 fetcht 1 ,mem_lpm_overhead 
+24aa 98467e00 isub temp ,pdata 
+24ab 1ff06000 lshift16 pdata ,alarm 
+24ac 6fe1404e fetch 2 ,mem_context + coffset_rx_window 
+24ad 1fe37e00 rshift pdata ,pdata 
+24ae 20407d2c call clk2bt 
+24af 1e027e00 deposit alarm 
+24b0 20407d12 call clk_diff 
+24b1 1b420400 copy clke ,temp 
+24b2 20407d10 call clk_diff_rt 
+24b3 20740000 rtn user 
+
+lpm_dispatch_sleep:
+24b4 20407d25 call clk2lpo 
+
+lpm_dispatch_lpo:
+24b5 44954005 bpatch patch05_2 ,mem_patch05 
+24b6 6fe0c0c3 fetch 1 ,mem_lpm_xtalcnt 
+24b7 98467c00 isub temp ,null 
+24b8 20212489 branch lpm_clear_counter ,positive 
+24b9 604a40a9 storet 4 ,mem_sleep_counter 
+24ba 204042c5 call app_will_enter_lpm 
+24bb 684a40a9 fetcht 4 ,mem_sleep_counter 
+24bc 2020241e branch lpm_sleep 
+
+lpm_dispatch_unconn:
+24bd 4495c005 bpatch patch05_3 ,mem_patch05 
+24be 6fe0c388 fetch 1 ,mem_le_adv_enable 
+24bf 243a24c1 nbranch lpm_unconn_cont ,blank 
+24c0 20600000 rtn 
+
+lpm_unconn_cont:
+24c1 6fe140a4 fetch 2 ,mem_lpm_interval 
+24c2 207a0000 rtn blank 
+
+lpm_sleep_btclk:
+24c3 6848c0a6 fetcht 1 ,mem_lpm_overhead 
+24c4 98467e00 isub temp ,pdata 
+24c5 d8401d4c arg 7500 ,temp 
+24c6 984ffe00 imul32 temp ,pdata 
+24c7 202024b4 branch lpm_dispatch_sleep 
+
+lpm_mult_wait_timeout:
+24c8 6fe143e5 fetch 2 ,mem_cb_bt_set_mult 
+24c9 20407d79 call callback_func 
+24ca 243a24e0 nbranch lpm_mult_short ,blank 
+24cb 70001500 jam 0 ,mem_lpm_current_mult 
+24cc c586a4e0 bmark0 mark_lpm_mult_enable ,lpm_mult_short 
+24cd 6fe0c0c2 fetch 1 ,mem_lpm_mult_cnt 
+24ce 203a24e4 branch lpm_mult_long ,blank 
+24cf 1fe0ffff increase -1 ,pdata 
+24d0 67e0c0c2 store 1 ,mem_lpm_mult_cnt 
+24d1 20600000 rtn 
+
+lpm_match:
+24d2 7040a800 jam 0 ,mem_sniff_unint_lost 
+24d3 6fe1c0b7 fetch 3 ,mem_sniff_rcv 
+24d4 1fe0fe01 increase 1 ,pdata 
+24d5 67e1c0b7 store 3 ,mem_sniff_rcv 
+24d6 20600000 rtn 
+
+lpm_lost:
+24d7 44964005 bpatch patch05_4 ,mem_patch05 
+24d8 70001500 jam 0 ,mem_lpm_current_mult 
+24d9 6fe1c0ba fetch 3 ,mem_sniff_lost 
+24da 1fe0fe01 increase 1 ,pdata 
+24db 67e1c0ba store 3 ,mem_sniff_lost 
+24dc 6fe0c0a8 fetch 1 ,mem_sniff_unint_lost 
+24dd 1fe0fe01 increase 1 ,pdata 
+24de 67e0c0a8 store 1 ,mem_sniff_unint_lost 
+24df 20600000 rtn 
+
+lpm_mult_short:
+24e0 70001500 jam 0 ,mem_lpm_current_mult 
+24e1 6fe0c0c1 fetch 1 ,mem_lpm_mult_timeout 
+24e2 67e0c0c2 store 1 ,mem_lpm_mult_cnt 
+24e3 20600000 rtn 
+
+lpm_mult_long:
+24e4 6848c0c0 fetcht 1 ,mem_lpm_mult 
+24e5 60488015 storet 1 ,mem_lpm_current_mult 
+24e6 20600000 rtn 
+
+lpm_get_wake_lock:
+24e7 6fe140a2 fetch 2 ,mem_lpm_wake_lock 
+24e8 f9207e00 qset1 pdata 
+24e9 67e140a2 store 2 ,mem_lpm_wake_lock 
+24ea 20600000 rtn 
+
+lpm_put_wake_lock:
+24eb 6fe140a2 fetch 2 ,mem_lpm_wake_lock 
+24ec f93ffe00 qset0 pdata 
+24ed 67e140a2 store 2 ,mem_lpm_wake_lock 
+24ee 20600000 rtn 
+
+lpm_check_wake_lock:
+24ef 4496c005 bpatch patch05_5 ,mem_patch05 
+24f0 204042c3 call app_check_wake_lock 
+24f1 6fe140a2 fetch 2 ,mem_lpm_wake_lock 
+24f2 1fe22200 copy pdata ,rega 
+24f3 6fe1c44b fetch 3 ,mem_tx_fifo3 
+24f4 7d3a2201 nsetflag blank ,wake_lock_ble_tx ,rega 
+24f5 6fe444d3 fetch util_fifo_len ,mem_ipc_fifo_bt2c51 
+24f6 7d3a220f nsetflag blank ,wake_lock_ipc_bt2c51 ,rega 
+24f7 6fe444db fetch util_fifo_len ,mem_ipc_fifo_c512bt 
+24f8 7d3a220e nsetflag blank ,wake_lock_ipc_c512bt ,rega 
+24f9 6fe0c114 fetch 1 ,mem_hci_cmd 
+24fa 7d3a2208 nsetflag blank ,wake_lock_cmd ,rega 
+24fb 6fe0c3cb fetch 1 ,mem_device_option 
+24fc 2fe1fe0a compare dvc_op_module ,pdata ,0xff 
+24fd 2040a501 call lpm_uart_wake_lock ,true 
+24fe 1a227e00 copy rega ,pdata 
+24ff 67e140a2 store 2 ,mem_lpm_wake_lock 
+2500 20600000 rtn 
+
+lpm_uart_wake_lock:
+2501 6ff10112 fetch 2 ,core_uart_rxitems 
+2502 7d3a2206 nsetflag blank ,wake_lock_uart_rx ,rega 
+2503 6ff1010e fetch 2 ,core_uart_txitems 
+2504 7d3a2205 nsetflag blank ,wake_lock_uart_tx ,rega 
+2505 20600000 rtn 
+
+le_init_conn:
+2506 47074021 bpatchx patch21_6 ,mem_patch21 
+2507 7855fc00 disable wake 
+2508 70017e01 jam 1 ,mem_le_conn_handle 
+2509 70016803 jam 3 ,mem_le_state 
+250a 70017f01 jam 1 ,mem_le_arq 
+250b 5fffffff setarg -1 
+250c 67e10182 store 2 ,mem_le_event_count 
+250d 18007e00 force 0 ,pdata 
+250e 67e08180 store 1 ,mem_le_ch 
+250f 67e0818b store 1 ,mem_le_op 
+2510 67e1c0b7 store 3 ,mem_sniff_rcv 
+2511 67e1c0ba store 3 ,mem_sniff_lost 
+2512 2040285c call le_clear_enc 
+2513 70416901 jam 1 ,mem_le_txheader 
+2514 70416a00 jam 0 ,mem_le_txlen 
+2515 70019d01 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
+2516 70019e01 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
+2517 70439600 jam 0 ,mem_le_l2cap_att_states 
+2518 20202935 branch le_supervision_flush 
+
+le_init_master:
+2519 4707c021 bpatchx patch21_7 ,mem_patch21 
+251a 7834fc00 enable master 
+251b 70016903 jam lemode_master ,mem_le_mode 
+251c 70439801 jam 1 ,mem_le_att_handle 
+251d 7006b101 jam 1 ,mem_le_search_handle_start 
+251e 5800ffff setarg 0xffff 
+251f 67e106b3 store 2 ,mem_le_search_handle_end 
+2520 18007e00 force 0 ,pdata 
+2521 67e2c455 store 5 ,mem_ccm_pcnt_rx 
+2522 79207e27 set1 le_ccm_directionbit ,pdata 
+2523 67e2c450 store 5 ,mem_ccm_pcnt_tx 
+2524 20202506 branch le_init_conn 
+
+le_init_slave:
+2525 47084022 bpatchx patch22_0 ,mem_patch22 
+2526 7854fc00 disable master 
+2527 58000017 setarg 0x17 
+2528 67e142e3 store 2 ,mem_le_remote_mtu 
+2529 1fe0fe04 increase 4 ,pdata 
+252a 67e143b8 store 2 ,mem_remote_rx_max_octets 
+252b 70016901 jam lemode_slave ,mem_le_mode 
+252c 70438800 jam 0 ,mem_le_adv_enable 
+252d 70001500 jam 0 ,mem_lpm_current_mult 
+252e 20402592 call le_clear_pairing_state 
+252f 6fe10196 fetch 2 ,mem_le_superto 
+2530 67e142f5 store 2 ,mem_le_init_superto 
+2531 6fe1016a fetch 2 ,mem_le_tsniff 
+2532 1feffe05 mul32 pdata ,5 ,pdata 
+2533 1ff1fe00 rshift4 pdata ,pdata 
+2534 67e10196 store 2 ,mem_le_superto 
+2535 20202506 branch le_init_conn 
+
+le_conn_dispatch:
+2536 4708c022 bpatchx patch22_1 ,mem_patch22 
+2537 204025b8 call le_enable 
+2538 6fe08168 fetch 1 ,mem_le_state 
+2539 2feffe04 isolate1 lestate_encryption ,pdata 
+253a 79208032 setflag true ,mark_ble_encryption ,mark 
+253b 204042b2 call app_process_ble 
+253c 6fe08169 fetch 1 ,mem_le_mode 
+253d c280a53f bbit1 mode_master ,le_master_dispatch 
+253e 20202551 branch le_slave_dispatch 
+
+le_master_dispatch:
+253f 47094022 bpatchx patch22_2 ,mem_patch22 
+2540 7834fc00 enable master 
+2541 2040292b call le_supervision_update 
+2542 2021254e branch le_master_disconn ,positive 
+2543 204025fb call le_setup 
+2544 20402871 call le_prepare_tx 
+2545 7856fc00 disable match 
+2546 20402730 call le_transmit_receive_sifs 
+2547 24768000 nrtn match 
+2548 6fe08005 fetch 1 ,mem_le_conn_rcv 
+2549 1fe0fe01 increase 1 ,pdata 
+254a 67e08005 store 1 ,mem_le_conn_rcv 
+254b 20402823 call le_acknowledge 
+254c 7854fc00 disable master 
+254d 20600000 rtn 
+
+le_master_disconn:
+254e 20402586 call le_disconnect 
+254f 7854fc00 disable master 
+2550 20600000 rtn 
+
+le_slave_dispatch:
+2551 4709c022 bpatchx patch22_3 ,mem_patch22 
+2552 70433e00 jam 0 ,mem_le_md_count 
+2553 793f8030 set0 mark_ble_crc_fail ,mark 
+2554 20407552 call sp_calc_sequence_256 
+2555 20402ff5 call le_secure_connect_sm 
+2556 78577c00 disable attempt 
+2557 2040292b call le_supervision_update 
+2558 20212586 branch le_slave_disconn ,positive 
+2559 6fe0819d fetch 1 ,mem_le_rx_phy 
+255a 204025a4 call le_enable_phy_by_pdata 
+255b 204025fb call le_setup 
+255c 20402652 call le_receive_slave 
+255d 242c2577 nbranch le_slave_unsync ,sync 
+255e 20402597 call le_got_first_packet 
+255f 2036a562 branch le_slave_match ,match 
+2560 c5182562 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
+2561 20202571 branch le_slave_cont 
+
+le_slave_crc_fail:
+
+le_slave_match:
+2562 470a4022 bpatchx patch22_4 ,mem_patch22 
+2563 6fe0c33e fetch 1 ,mem_le_md_count 
+2564 1fe0fe01 pincrease 1 
+2565 67e0c33e store 1 ,mem_le_md_count 
+2566 c0062571 beq le_md_max_count ,le_slave_cont 
+2567 20402823 call le_acknowledge 
+2568 20402871 call le_prepare_tx 
+2569 6fe0819e fetch 1 ,mem_le_tx_phy 
+256a 204025a4 call le_enable_phy_by_pdata 
+256b 20402741 call le_transmit 
+256c 204028d4 call le_parse 
+256d 6fe143e1 fetch 2 ,mem_cb_ble_transmit 
+256e 20407d79 call callback_func 
+256f 2040257b call le_check_md 
+2570 20342580 branch le_slave_more_data ,user 
+
+le_slave_cont:
+2571 470ac022 bpatchx patch22_5 ,mem_patch22 
+2572 20402fba call le_pairing_sm 
+2573 20402fb1 call le_check_paring_time 
+2574 20407841 call check_51cmd 
+2575 6fe0818b fetch 1 ,mem_le_op 
+2576 c281a586 bbit1 op_disconn ,le_slave_disconn 
+
+le_slave_unsync:
+2577 470b4022 bpatchx patch22_6 ,mem_patch22 
+2578 204020cf call end_of_packet 
+2579 204029a5 call le_lpm_set_mult 
+257a 202020f7 branch calc_clke_offset 
+
+le_check_md:
+257b 78547c00 disable user 
+257c c5157dba bmark1 mark_ble_rx_md ,enable_user 
+257d c514fdba bmark1 mark_ble_tx_md ,enable_user 
+257e c5187dba bmark1 mark_ble_crc_fail ,enable_user 
+257f 20600000 rtn 
+
+le_slave_more_data:
+2580 470bc022 bpatchx patch22_7 ,mem_patch22 
+2581 78377c00 enable attempt 
+2582 20402734 call le_transmit_receive_sifs_notx 
+2583 2036a562 branch le_slave_match ,match 
+2584 c5182562 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
+2585 20202571 branch le_slave_cont 
+
+le_slave_disconn:
+
+le_disconnect:
+2586 470c4023 bpatchx patch23_0 ,mem_patch23 
+2587 2040258d call le_clear_connection_info 
+2588 20404302 call app_disconn_reason_collect_ble 
+2589 20402592 call le_clear_pairing_state 
+258a 20403003 call le_sc_state_clear 
+258b 70066f15 jam bt_evt_le_disconnected ,mem_fifo_temp 
+258c 2020782b branch ui_ipc_send_event 
+
+le_clear_connection_info:
+258d d8a04441 arg mem_used_map ,contw 
+258e 20407c99 call memset0_16 
+258f 70017e00 jam 0 ,mem_le_conn_handle 
+2590 70016900 jam lemode_idle ,mem_le_mode 
+2591 70016800 jam 0 ,mem_le_state 
+
+le_clear_pairing_state:
+2592 470cc023 bpatchx patch23_1 ,mem_patch23 
+2593 7042fd00 jam flag_le_enc_null ,mem_le_enc_state 
+2594 7042fc00 jam flag_le_pairing_null ,mem_le_pairing_state 
+2595 20407452 call sp_clear_flags 
+2596 20600000 rtn 
+
+le_got_first_packet:
+2597 470d4023 bpatchx patch23_2 ,mem_patch23 
+2598 6fe08005 fetch 1 ,mem_le_conn_rcv 
+2599 1fe0fe01 increase 1 ,pdata 
+259a 67e08005 store 1 ,mem_le_conn_rcv 
+259b 6fe08168 fetch 1 ,mem_le_state 
+259c c3818000 rtnbit1 lestate_got_first_packet 
+259d 79207e03 set1 lestate_got_first_packet ,pdata 
+259e 67e08168 store 1 ,mem_le_state 
+259f 6fe142f5 fetch 2 ,mem_le_init_superto 
+25a0 67e10196 store 2 ,mem_le_superto 
+25a1 58000000 setarg 0 
+25a2 67e2431d store 4 ,mem_le_transmit_window 
+25a3 20600000 rtn 
+
+le_enable_phy_by_pdata:
+25a4 1fe20400 copy pdata ,temp 
+25a5 470dc023 bpatchx patch23_3 ,mem_patch23 
+
+le_enable_phy_by_pdata1:
+25a6 18427e00 copy temp ,pdata 
+25a7 c28025b8 bbit1 bit_le_1m_phy ,le_enable 
+25a8 c280a5ad bbit1 bit_le_2m_phy ,le_enable_2m 
+25a9 c30125b8 bbit0 bit_le_coded_phy ,le_enable 
+25aa c283a5b4 bbit1 bit_le_coded_phy_s8 ,le_enable_coded_s8 
+25ab c28125b0 bbit1 bit_le_coded_phy_s2 ,le_enable_coded_s2 
+25ac 202025b8 branch le_enable 
+
+le_enable_2m:
+25ad 793f802f set0 mark_ble_lr ,mark 
+25ae 7920002d set1 mark_ble_2m ,mark 
+25af 20600000 rtn 
+
+le_enable_coded_s2:
+
+le_enable_coded:
+25b0 793f802d set0 mark_ble_2m ,mark 
+25b1 7920002f set1 mark_ble_lr ,mark 
+25b2 793f802e set0 mark_ble_lr_s8 ,mark 
+25b3 20600000 rtn 
+
+le_enable_coded_s8:
+25b4 793f802d set0 mark_ble_2m ,mark 
+25b5 7920002f set1 mark_ble_lr ,mark 
+25b6 7920002e set1 mark_ble_lr_s8 ,mark 
+25b7 20600000 rtn 
+
+le_enable:
+25b8 470e4023 bpatchx patch23_4 ,mem_patch23 
+25b9 793f802d set0 mark_ble_2m ,mark 
+25ba 793f802f set0 mark_ble_lr ,mark 
+25bb 20600000 rtn 
+
+le_disable:
+25bc 470ec023 bpatchx patch23_5 ,mem_patch23 
+25bd 793f8032 set0 mark_ble_encryption ,mark 
+25be 70890101 jam 0x01 ,0x8901 
+25bf 70892080 jam 0x80 ,0x8920 
+25c0 70893003 jam 0x03 ,0x8930 
+25c1 20600000 rtn 
+
+le_prep:
+25c2 470f4023 bpatchx patch23_6 ,mem_patch23 
+25c3 7844fc00 disable enable_crc 
+25c4 7843fc00 disable enable_white 
+25c5 6fe18190 fetch 3 ,mem_le_crcinit 
+25c6 98001e00 iforce crc24_init 
+25c7 6fe08007 fetch 1 ,mem_le_ch_mapped 
+
+le_prep_next:
+25c8 1fed8400 reverse pdata ,temp 
+25c9 79200401 set1 1 ,temp 
+25ca 18431c00 rshift temp ,white_init 
+25cb 20600000 rtn 
+
+le_rx_setfreq:
+25cc 204025d5 call le_setfreq 
+
+le_rf_rx_enable:
+25cd 2040216f call set_freq_rx 
+25ce 6fe1003e fetch 2 ,mem_param_pll_setup 
+25cf 2040235c call sleep 
+25d0 202021a6 branch rf_rx_enable 
+
+le_tx_setfreq:
+25d1 2036a1fc branch txon ,match 
+25d2 c51821fc bmark1 mark_ble_crc_fail ,txon 
+
+le_tx_setfreq0:
+25d3 204025d5 call le_setfreq 
+25d4 202021f9 branch set_freq_tx 
+
+le_setfreq:
+25d5 470fc023 bpatchx patch23_7 ,mem_patch23 
+25d6 20402160 call set_sync_on 
+25d7 6fe081bb fetch 1 ,mem_le_testtype 
+25d8 243a25e8 nbranch le_ctf_test ,blank 
+25d9 6fe08007 fetch 1 ,mem_le_ch_mapped 
+25da 1fe67c24 sub pdata ,36 ,null 
+25db 202125e2 branch le_ctf_normal ,positive 
+25dc 18000400 force 0 ,temp 
+25dd c1128000 rtneq 37 
+25de 18000418 force 24 ,temp 
+25df c1130000 rtneq 38 
+25e0 1800044e force 78 ,temp 
+25e1 20600000 rtn 
+
+le_ctf_normal:
+25e2 1fe67c0a sub pdata ,10 ,null 
+25e3 202125e5 branch le_ctf_low ,positive 
+25e4 1fe0fe01 increase 1 ,pdata 
+
+le_ctf_low:
+25e5 1fe3fe00 lshift pdata ,pdata 
+25e6 1fe08402 add pdata ,2 ,temp 
+25e7 20600000 rtn 
+
+le_ctf_test:
+25e8 6fe08007 fetch 1 ,mem_le_ch_mapped 
+25e9 1fe38400 lshift pdata ,temp 
+25ea 20600000 rtn 
+
+le_sca_map:
+25eb d84001f4 arg 500 ,temp 
+25ec 207a0000 rtn blank 
+25ed d84000fa arg 250 ,temp 
+25ee c1008000 rtneq 1 
+25ef d8400096 arg 150 ,temp 
+25f0 c1010000 rtneq 2 
+25f1 d8400064 arg 100 ,temp 
+25f2 c1018000 rtneq 3 
+25f3 d840004b arg 75 ,temp 
+25f4 c1020000 rtneq 4 
+25f5 d8400032 arg 50 ,temp 
+25f6 c1028000 rtneq 5 
+25f7 d8400028 arg 40 ,temp 
+25f8 c1030000 rtneq 6 
+25f9 d8400014 arg 20 ,temp 
+25fa 20600000 rtn 
+
+le_setup:
+25fb 47104024 bpatchx patch24_0 ,mem_patch24 
+25fc 78287c00 enable swfine 
+25fd 6fe2018c fetch 4 ,mem_le_access 
+25fe 98001200 iforce access 
+25ff 20402630 call le_map_channel 
+2600 58000200 setarg 0x200 
+2601 2034a604 branch le_setup_master ,master 
+2602 6fe10176 fetch 2 ,mem_le_receive_window 
+2603 1fe37e00 rshift pdata ,pdata 
+
+le_setup_master:
+2604 6849003e fetcht 2 ,mem_param_pll_setup 
+2605 9840fe00 iadd temp ,pdata 
+2606 20402343 call ahead_window 
+2607 1b427e00 deposit clke 
+2608 20600000 rtn 
+
+le_context_nextevent:
+2609 4710c024 bpatchx patch24_1 ,mem_patch24 
+260a 20407c51 call push_stack_rega_b_c 
+260b 6721069b storer loopcnt ,2 ,mem_loopcnt 
+260c 1a208c01 add rega ,coffset_mode ,contr 
+260d efe08006 ifetch 1 ,contr 
+260e c4000000 rtnbit0 mode_le 
+260f 1a208a1a add rega ,coffset_le_event_cnt ,contw 
+2610 efe10005 ifetch 2 ,contw 
+2611 1fe0fe01 increase 1 ,pdata 
+2612 e7e10005 istore 2 ,contw 
+2613 204027a2 call le_update_param 
+2614 204027c4 call le_update_channel_map 
+2615 204027cd call le_update_phy 
+2616 2040261a call le_context_nexthop 
+2617 20407c60 call pop_stack_rega_b_c 
+2618 6f21069b fetchr loopcnt ,2 ,mem_loopcnt 
+2619 20600000 rtn 
+
+le_context_nexthop:
+261a 1a208c19 add rega ,coffset_le_hop ,contr 
+261b efe08006 ifetch 1 ,contr 
+261c 1a208a18 add rega ,coffset_le_ch ,contw 
+261d e8408005 ifetcht 1 ,contw 
+261e 9840fe00 iadd temp ,pdata 
+261f 1fe67c24 sub pdata ,36 ,null 
+2620 20212622 branch le_nexthop_nowrap ,positive 
+2621 1fe0ffdb increase -37 ,pdata 
+
+le_nexthop_nowrap:
+2622 e7e08005 istore 1 ,contw 
+2623 20600000 rtn 
+
+le_calc_channel_map:
+2624 1a208c30 add rega ,coffset_le_channel_map ,contr 
+2625 efe28006 ifetch 5 ,contr 
+2626 18000400 force 0 ,temp 
+2627 18007225 force 37 ,loopcnt 
+
+le_count_channels_loop:
+2628 c300262a bbit0 0 ,le_count_channels_notused 
+2629 18408401 increase 1 ,temp 
+
+le_count_channels_notused:
+262a 1fe37e00 rshift pdata ,pdata 
+262b c2002628 loop le_count_channels_loop 
+262c 1840ffff add temp ,-1 ,pdata 
+262d 1a208a22 add rega ,coffset_le_channels ,contw 
+262e e7e08005 istore 1 ,contw 
+262f 20600000 rtn 
+
+le_map_channel:
+2630 47114024 bpatchx patch24_2 ,mem_patch24 
+2631 6fe08180 fetch 1 ,mem_le_ch 
+2632 98000e00 iforce queue 
+2633 684a8198 fetcht 5 ,mem_le_channel_map 
+2634 a84fffff qisolate1 temp 
+2635 2020a645 branch le_map_channel_end ,true 
+
+le_map_channel_next:
+2636 6fe0818a fetch 1 ,mem_le_channels 
+2637 98e67e00 isub queue ,pdata 
+2638 2021263b branch le_map_channel_cont ,positive 
+2639 1fe60fff sub pdata ,-1 ,queue 
+263a 20202636 branch le_map_channel_next 
+
+le_map_channel_cont:
+263b 18e27200 copy queue ,loopcnt 
+263c 18000e00 force 0 ,queue 
+
+le_map_channel_loop:
+263d a84fffff qisolate1 temp 
+263e 2020a640 branch le_map_channel_skip ,true 
+263f 1f20f201 increase 1 ,loopcnt 
+
+le_map_channel_skip:
+2640 1f227e00 deposit loopcnt 
+2641 203a2645 branch le_map_channel_end ,blank 
+2642 18e08e01 increase 1 ,queue 
+2643 1f20f3ff increase -1 ,loopcnt 
+2644 2020263d branch le_map_channel_loop 
+
+le_map_channel_end:
+2645 18e27e00 deposit queue 
+2646 67e08007 store 1 ,mem_le_ch_mapped 
+2647 20600000 rtn 
+
+le_wait_tx:
+2648 2034a64b branch le_wait_master ,master 
+2649 37c18200 until null ,timeout 
+264a 20600000 rtn 
+
+le_wait_master:
+264b d9600ea0 arg 0xea0 ,timeup 
+264c 34730200 until clkn_rt ,meet 
+264d 20600000 rtn 
+
+le_receive_adv:
+264e 78487c00 disable swfine 
+264f 6fe14346 fetch 2 ,mem_le_scan_window 
+2650 1fe21600 copy pdata ,timeup 
+2651 20202658 branch le_receive_packet 
+
+le_receive_slave:
+2652 4711c024 bpatchx patch24_3 ,mem_patch24 
+2653 204026be call le_dec_init 
+2654 78287c00 enable swfine 
+2655 6fe10176 fetch 2 ,mem_le_receive_window 
+2656 684a431d fetcht 4 ,mem_le_transmit_window 
+2657 98409600 iadd temp ,timeup 
+
+le_receive_packet:
+2658 204025cc call le_rx_setfreq 
+
+le_receive_rxon:
+2659 47124024 bpatchx patch24_4 ,mem_patch24 
+265a 204025c2 call le_prep 
+265b c597a660 bmark0 mark_ble_lr ,le_receive_nolr 
+265c 783cfc00 pulse dewhiten_code_calc 
+265d 2000001e nop 30 
+265e 204025c2 call le_prep 
+265f 19699600 lshift3 timeup ,timeup 
+
+le_receive_nolr:
+2660 7856fc00 disable match 
+2661 7826fc00 enable decode_fec0 
+2662 7830fc00 enable is_rx 
+2663 78507c00 disable is_tx 
+2664 19623600 copy timeup ,stop_watch 
+2665 37c18400 correlate null ,timeout 
+2666 20372669 branch le_receive_on_attempt ,attempt 
+2667 1b420400 copy clke ,temp 
+2668 604b000f storet 6 ,mem_sync_clke 
+
+le_receive_on_attempt:
+2669 242c26fa nbranch le_unsync_end ,sync 
+266a 78287c00 enable swfine 
+266b 6fe0c167 fetch 1 ,mem_le_tx_ifs_defference 
+266c d8404e20 arg param_20ms_init ,temp 
+266d 98408400 iadd temp ,temp 
+266e 6fe0c148 fetch 1 ,mem_system_clk 
+266f 984fb600 imul32 temp ,stop_watch 
+2670 20406877 call rf_debug_rx_sync_line 
+2671 20372677 branch le_receive_skip ,attempt 
+2672 204026ff call calc_clke_all_modem 
+2673 6fe08168 fetch 1 ,mem_le_state 
+2674 c301a677 bbit0 lestate_got_first_packet ,le_receive_skip 
+2675 684b000f fetcht 6 ,mem_sync_clke 
+2676 2055a477 call lpm_adjust_clk ,wake 
+
+le_receive_skip:
+2677 204022e9 call save_rssi 
+2678 7823fc00 enable enable_white 
+2679 7824fc00 enable enable_crc 
+267a 09800008 parse demod ,bucket ,8 
+267b 19897e00 rshift3 pwindow ,pdata 
+267c 67e0804c store 1 ,mem_le_rxbuf_data_header 
+267d 09800008 parse demod ,bucket ,8 
+267e 19897e00 rshift3 pwindow ,pdata 
+267f 67e0804d store 1 ,mem_le_rxbuf_data_length 
+2680 1fe27200 copy pdata ,loopcnt 
+2681 2022a69d branch le_rx_nopayload ,zero 
+2682 c5192688 bmark1 mark_ble_encryption ,le_rx_dec 
+
+le_rx_loop:
+2683 09800008 parse demod ,bucket ,8 
+2684 19897e00 rshift3 pwindow ,pdata 
+2685 e7e08005 istore 1 ,contw 
+2686 c2002683 loop le_rx_loop 
+2687 2020269d branch le_rx_nopayload 
+
+le_rx_dec:
+2688 18a22400 copy contw ,regb 
+2689 4712c024 bpatchx patch24_5 ,mem_patch24 
+268a 2040281c call le_check_retransmit 
+268b 6a20804d fetchr rega ,1 ,mem_le_rxbuf_data_length 
+268c 1a20a3fc increase -4 ,rega 
+268d 242126f2 nbranch le_mic_error ,positive 
+268e 204026c3 call le_dec_start 
+268f 1a420a00 copy regb ,contw 
+2690 d8400000 arg 0 ,temp 
+2691 6f20804d fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+2692 1f20f3fc increase -4 ,loopcnt 
+2693 2022a69b branch le_rx_dec_loop_end ,zero 
+
+le_rx_dec_loop:
+2694 09800008 parse demod ,bucket ,8 
+2695 19897e00 rshift3 pwindow ,pdata 
+2696 e7e08005 istore 1 ,contw 
+2697 18408401 increase 1 ,temp 
+2698 18417c0f and temp ,0xf ,null 
+2699 2042a6e1 call le_dec ,zero 
+269a c2002694 loop le_rx_dec_loop 
+
+le_rx_dec_loop_end:
+269b 204026e9 call le_dec_end 
+269c 1a420a00 copy regb ,contw 
+
+le_rx_nopayload:
+269d 47134024 bpatchx patch24_6 ,mem_patch24 
+269e 09800018 parse demod ,bucket ,24 
+269f 1fef7e00 rshift32 pdata ,pdata 
+26a0 1ff17e00 rshift16 pdata ,pdata 
+26a1 e7e18005 istore 3 ,contw 
+26a2 78287c00 enable swfine 
+26a3 2040270d call le_set_until_tx_timer 
+26a4 202326f6 branch le_crc_fail ,crc_failed 
+26a5 c59926af bmark0 mark_ble_encryption ,le_rx_match 
+26a6 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+26a7 203a26af branch le_rx_match ,blank 
+26a8 1fe0fffc increase -4 ,pdata 
+26a9 67e0804d store 1 ,mem_le_rxbuf_data_length 
+26aa 204072cb call wait_ccm_done 
+26ab 6ff08108 fetch 1 ,core_misc_status 
+26ac c303a6f2 bbit0 7 ,le_mic_error 
+26ad 1800700c force regidx_result ,regext_index 
+26ae 65e20154 storer regext ,4 ,mem_le_peer_mic 
+
+le_rx_match:
+26af 20406876 call rf_debug_rx_crc_line 
+26b0 7836fc00 enable match 
+26b1 793f8030 set0 mark_ble_crc_fail ,mark 
+
+le_crc_fail_tx:
+26b2 4713c024 bpatchx patch24_7 ,mem_patch24 
+26b3 204072cd call ccm_ctrl_clr 
+26b4 6fe0819d fetch 1 ,mem_le_rx_phy 
+26b5 7d3e7e07 nsetflag ble_coded_info ,bit_le_coded_phy_s8 ,pdata 
+26b6 67e0819d store 1 ,mem_le_rx_phy 
+26b7 204026b9 call le_match_set_sync_on 
+26b8 202026bb branch le_match_set_txfreq 
+
+le_match_set_sync_on:
+26b9 7846fc00 disable decode_fec0 
+26ba 20202160 branch set_sync_on 
+
+le_match_set_txfreq:
+26bb 47144025 bpatchx patch25_0 ,mem_patch25 
+26bc 68488008 fetcht 1 ,mem_last_freq 
+26bd 202021c6 branch set_freq_tx_int 
+
+le_dec_init:
+26be c6990000 rtnmark0 mark_ble_encryption 
+26bf 20407368 call load_sk 
+26c0 1800700c force regidx_result ,regext_index 
+26c1 20407370 call aes_clear 
+26c2 2020736f branch aes_clear_data 
+
+le_dec_start:
+26c3 4714c025 bpatchx patch25_1 ,mem_patch25 
+26c4 70806c00 jam 0 ,core_ccm_aad0 
+26c5 70806d01 jam 1 ,core_ccm_aad1 
+26c6 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+26c7 1fe17e03 and_into 0x3 ,pdata 
+26c8 67f0806e store 1 ,core_ccm_aad2 
+26c9 5800004e setarg mem_le_rxbuf_data_payload 
+26ca 67f10068 store 2 ,core_ccm_input_playload_addr 
+26cb 67f1006a store 2 ,core_ccm_output_playload_addr 
+26cc 6a20804d fetchr rega ,1 ,mem_le_rxbuf_data_length 
+26cd 1a20a3fc increase -4 ,rega 
+26ce 684ac455 fetcht 5 ,mem_ccm_pcnt_rx 
+26cf 280ffe0f isolate1 mark_old_packet ,mark 
+26d0 2040a6d7 call le_pcnt_rx_sub1 ,true 
+26d1 20407265 call ccm_b0 
+26d2 58000000 setarg 0 
+26d3 67f100c0 store 2 ,core_ccm_inptr 
+26d4 70800a06 jam 6 ,core_ccm_ctrl 
+26d5 70800a07 jam 7 ,core_ccm_ctrl 
+26d6 20600000 rtn 
+
+le_pcnt_rx_sub1:
+26d7 18467c00 sub temp ,0 ,null 
+26d8 2022a6dc branch le_pcnt_rx_sub1_0 ,zero 
+26d9 184085ff increase -1 ,temp 
+26da 79200427 set1 le_ccm_directionbit ,temp 
+26db 20600000 rtn 
+
+le_pcnt_rx_sub1_0:
+26dc 58ffffff setarg 0xffffff 
+26dd 1ff07e00 lshift16 pdata ,pdata 
+26de d840ffff arg 0xffff ,temp 
+26df 98418400 ior temp ,temp 
+26e0 20600000 rtn 
+
+le_dec:
+26e1 18a22400 copy contw ,regb 
+26e2 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+26e3 1fe0fffc increase -4 ,pdata 
+26e4 98467c00 isub temp ,null 
+26e5 20628000 rtn zero 
+26e6 605900c0 storet 2 ,core_ccm_inptr 
+26e7 1a420a00 copy regb ,contw 
+26e8 20600000 rtn 
+
+le_dec_end:
+26e9 09800020 parse demod ,bucket ,32 
+26ea 1fef7e00 rshift32 pdata ,pdata 
+26eb 1fecfe00 rshift8 pdata ,pdata 
+26ec e7e20005 istore 4 ,contw 
+26ed 18a22400 copy contw ,regb 
+26ee 18007000 force regidx_data ,regext_index 
+26ef 1fe25e00 copy pdata ,regext 
+26f0 605900c0 storet 2 ,core_ccm_inptr 
+26f1 20600000 rtn 
+
+le_mic_error:
+26f2 202026fc branch le_end_of_packet 
+
+le_retransmit_end_of_packet:
+26f3 2040270d call le_set_until_tx_timer 
+26f4 204020cf call end_of_packet 
+26f5 202026af branch le_rx_match 
+
+le_crc_fail:
+26f6 20406878 call rf_debug_rx_crc_fail_line 
+26f7 c51826fa bmark1 mark_ble_crc_fail ,le_crc_fail_consecutive 
+26f8 79200030 set1 mark_ble_crc_fail ,mark 
+26f9 202026b2 branch le_crc_fail_tx 
+
+le_unsync_end:
+
+le_crc_fail_consecutive:
+26fa 793f8030 set0 mark_ble_crc_fail ,mark 
+26fb 202026fc branch le_end_of_packet 
+
+le_end_of_packet:
+26fc 47154025 bpatchx patch25_2 ,mem_patch25 
+26fd 204072cd call ccm_ctrl_clr 
+26fe 202020cf branch end_of_packet 
+
+calc_clke_all_modem:
+26ff c517a705 bmark1 mark_ble_lr ,calc_clke_modem_coded 
+2700 c516a709 bmark1 mark_ble_2m ,calc_clke_modem_2m 
+2701 6fe10046 fetch 2 ,mem_param_clke_cal_le_1m 
+2702 1fe25200 copy pdata ,clke_rt 
+2703 1c225000 copy bt_clk ,clke_bt 
+2704 20600000 rtn 
+
+calc_clke_modem_coded:
+2705 6fe1004a fetch 2 ,mem_param_clke_cal_le_coded 
+2706 1fe25200 copy pdata ,clke_rt 
+2707 1c20d001 add bt_clk ,1 ,clke_bt 
+2708 20600000 rtn 
+
+calc_clke_modem_2m:
+2709 6fe10048 fetch 2 ,mem_param_clke_cal_le_2m 
+270a 1fe25200 copy pdata ,clke_rt 
+270b 1c225000 copy bt_clk ,clke_bt 
+270c 20600000 rtn 
+
+le_set_until_tx_timer:
+270d 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+270e 1fe08405 add pdata ,5 ,temp 
+270f 18498400 lshift3 temp ,temp 
+2710 6fe0819d fetch 1 ,mem_le_rx_phy 
+2711 c517a714 bmark1 mark_ble_lr ,le_set_until_tx_timer_rx_lr 
+2712 c2802716 bbit1 bit_le_1m_phy ,le_set_until_tx_timer_rx_1m 
+2713 c280a717 bbit1 bit_le_2m_phy ,le_set_until_tx_timer_rx_2m 
+
+le_set_until_tx_timer_rx_lr:
+2714 203e2719 branch le_set_until_tx_timer_rx_coded_s2 ,ble_coded_info 
+2715 2020271c branch le_set_until_tx_timer_rx_coded_s8 
+
+le_set_until_tx_timer_rx_1m:
+2716 20202721 branch le_calc_stop_watch 
+
+le_set_until_tx_timer_rx_2m:
+2717 18430400 rshift temp ,temp 
+2718 20202721 branch le_calc_stop_watch 
+
+le_set_until_tx_timer_rx_coded_s2:
+2719 18408403 add temp ,3 ,temp 
+271a 18438400 lshift temp ,temp 
+271b 2020271e branch le_set_until_tx_timer_rx_coded 
+
+le_set_until_tx_timer_rx_coded_s8:
+271c 18408403 add temp ,3 ,temp 
+271d 18498400 lshift3 temp ,temp 
+
+le_set_until_tx_timer_rx_coded:
+271e 58000028 setarg param_coded_c1_term1_time_40us 
+271f 98408400 iadd temp ,temp 
+2720 20202721 branch le_calc_stop_watch 
+
+le_calc_stop_watch:
+2721 6fe0c148 fetch 1 ,mem_system_clk 
+2722 984f8400 imul32 temp ,temp 
+2723 da204e20 arg param_20ms_init ,rega 
+2724 9a2ffe00 imul32 rega ,pdata 
+2725 98460400 isub temp ,temp 
+2726 1b627e00 copy stop_watch ,pdata 
+2727 98463600 isub temp ,stop_watch 
+2728 20600000 rtn 
+
+le_transmit_receive_sifs_without_change_mode:
+2729 20402741 call le_transmit 
+272a 68488008 fetcht 1 ,mem_last_freq 
+272b 2040216f call set_freq_rx 
+272c 204021a6 call rf_rx_enable 
+272d 78287c00 enable swfine 
+272e d960157c arg 5500 ,timeup 
+272f 20202659 branch le_receive_rxon 
+
+le_transmit_receive_sifs:
+2730 4715c025 bpatchx patch25_3 ,mem_patch25 
+2731 6fe0819e fetch 1 ,mem_le_tx_phy 
+2732 204025a4 call le_enable_phy_by_pdata 
+2733 20402741 call le_transmit 
+
+le_transmit_receive_sifs_notx:
+2734 6fe0819d fetch 1 ,mem_le_rx_phy 
+2735 204025a4 call le_enable_phy_by_pdata 
+2736 68488008 fetcht 1 ,mem_last_freq 
+2737 2040216f call set_freq_rx 
+2738 204021a6 call rf_rx_enable 
+2739 78287c00 enable swfine 
+273a d960157c arg 5500 ,timeup 
+273b c597a659 bmark0 mark_ble_lr ,le_receive_rxon 
+273c d9602134 arg 8500 ,timeup 
+273d 20202659 branch le_receive_rxon 
+
+le_transmit_norx:
+273e 47164025 bpatchx patch25_4 ,mem_patch25 
+273f 20402741 call le_transmit 
+2740 202020cf branch end_of_packet 
+
+le_transmit:
+2741 4716c025 bpatchx patch25_5 ,mem_patch25 
+2742 204025c2 call le_prep 
+2743 204025d1 call le_tx_setfreq 
+2744 2040687d call rf_debug_tx_on_line 
+2745 79202a00 set1 txgfsk ,radio_ctrl 
+2746 782efc00 enable encode_fec0 
+2747 78307c00 enable is_tx 
+2748 7850fc00 disable is_rx 
+2749 20402648 call le_wait_tx 
+274a 785d7c00 disable lr_s2en 
+274b c517a784 bmark1 mark_ble_lr ,le_transmit_lr 
+274c c516a796 bmark1 mark_ble_2m ,le_transmit_2m 
+274d 19317e00 rshift16 access ,pdata 
+274e 1fecfe00 rshift8 pdata ,pdata 
+274f 1ff1fe00 rshift4 pdata ,pdata 
+2750 08008628 inject mod ,40 
+
+le_transmit_packet:
+2751 7823fc00 enable enable_white 
+2752 7824fc00 enable enable_crc 
+2753 47174025 bpatchx patch25_6 ,mem_patch25 
+2754 6fe0c169 fetch 1 ,mem_le_txheader 
+2755 08008608 inject mod ,8 
+2756 efe08006 ifetch 1 ,contr 
+2757 1fe27200 copy pdata ,loopcnt 
+2758 08008608 inject mod ,8 
+2759 1f267c00 sub loopcnt ,0 ,null 
+275a 2022a762 branch le_tr_nopayload ,zero 
+275b 6ff0800a fetch 1 ,core_ccm_ctrl 
+275c 203a275e branch le_transmit_packet_not_enc ,blank 
+275d c5192779 bmark1 mark_ble_encryption ,le_transmit_packet_enc 
+
+le_transmit_packet_not_enc:
+275e d8c0416b arg mem_le_txpayload ,contr 
+
+le_tr_loop:
+275f efe08006 ifetch 1 ,contr 
+2760 08008608 inject mod ,8 
+2761 c200275f loop le_tr_loop 
+
+le_tr_nopayload:
+2762 78247c00 enable enable_parity 
+2763 08008618 inject mod ,24 
+2764 78447c00 disable enable_parity 
+2765 c597a769 bmark0 mark_ble_lr ,le_transmit_skip 
+2766 7843fc00 disable enable_white 
+2767 58000000 setarg 0 
+2768 08008603 inject mod ,3 
+
+le_transmit_skip:
+2769 37d38200 until null ,tx_clear 
+276a 20000064 nop 100 
+276b 4717c025 bpatchx patch25_7 ,mem_patch25 
+276c 784efc00 disable encode_fec0 
+276d 785c7c00 disable encode_fec3 
+276e 20402160 call set_sync_on 
+276f 2040687b call rf_debug_tx_off_line 
+
+le_check_start_pause_enc:
+2770 6fe0c169 fetch 1 ,mem_le_txheader 
+2771 1fe17e03 and pdata ,llid_le_ll ,pdata 
+2772 c1818000 rtnne llid_le_ll 
+2773 6fe0c2fd fetch 1 ,mem_le_enc_state 
+2774 c001285c beq flag_le_enc_pause ,le_clear_enc 
+2775 c1828000 rtnne flag_le_send_start_enc_req 
+2776 6fe0c16b fetch 1 ,mem_le_txpayload 
+2777 c002a857 beq ll_start_enc_req ,le_set_enc 
+2778 20600000 rtn 
+
+le_transmit_packet_enc:
+2779 1f20f3fc increase -4 ,loopcnt 
+277a 1f220400 copy loopcnt ,temp 
+277b 204072b8 call ccm_wait_enc 
+277c d8c0416b arg mem_le_txpayload ,contr 
+
+le_transmit_packet_enc_loop:
+277d efe08006 ifetch 1 ,contr 
+277e 08008608 inject mod ,8 
+277f c200277d loop le_transmit_packet_enc_loop 
+2780 204072bd call ccm_check_enc_done 
+2781 1de27e00 copy regext ,pdata 
+2782 08008620 inject mod ,32 
+2783 20202762 branch le_tr_nopayload 
+
+le_transmit_lr:
+2784 df20000a arg 10 ,loopcnt 
+
+le_transmit_lr_preamble_loop:
+2785 5800003c setarg 0x3c 
+2786 08008608 inject mod ,8 
+2787 c2002785 loop le_transmit_lr_preamble_loop 
+2788 784efc00 disable encode_fec0 
+2789 783c7c00 enable encode_fec3 
+278a 19317e00 rshift16 access ,pdata 
+278b 1ff17e00 rshift16 pdata ,pdata 
+278c 1ff1fe00 rshift4 pdata ,pdata 
+278d 08008620 inject mod ,32 
+278e c5172793 bmark1 mark_ble_lr_s8 ,le_transmit_lr_s8 
+
+le_transmit_lr_s2:
+278f 58000001 setarg 1 
+2790 08008605 inject mod ,5 
+2791 783d7c00 enable lr_s2en 
+2792 20202751 branch le_transmit_packet 
+
+le_transmit_lr_s8:
+2793 58000000 setarg 0 
+2794 08008605 inject mod ,5 
+2795 20202751 branch le_transmit_packet 
+
+le_transmit_2m:
+2796 6fe0c148 fetch 1 ,mem_system_clk 
+2797 6848c168 fetcht 1 ,mem_le_tx2m_delay 
+2798 9840fe00 iadd temp ,pdata 
+2799 2040235c call sleep 
+279a 19317e00 rshift16 access ,pdata 
+279b 1fecfe00 rshift8 pdata ,pdata 
+279c 1ff18400 rshift4 pdata ,temp 
+279d 18427e00 copy temp ,pdata 
+279e 08008608 inject mod ,8 
+279f 18427e00 copy temp ,pdata 
+27a0 08008628 inject mod ,40 
+27a1 20202751 branch le_transmit_packet 
+
+le_update_param:
+27a2 da6027a6 arg le_update_param_ahead1_cb ,regc 
+27a3 da4027bc arg le_update_param_cb ,regb 
+27a4 d8e00005 arg lestate_update_param ,queue 
+27a5 202027fb branch le_check_update_flag 
+
+le_update_param_ahead1_cb:
+27a6 1a208c04 add rega ,coffset_sniff_anchor ,contr 
+27a7 e8420006 ifetcht 4 ,contr 
+27a8 1a208c37 add rega ,coffest_le_new_transmitwindowsize ,contr 
+27a9 efe08006 ifetch 1 ,contr 
+27aa 1a208a2b add rega ,coffset_le_window_size ,contw 
+27ab e7e08005 istore 1 ,contw 
+27ac efe10006 ifetch 2 ,contr 
+27ad 1febfe00 lshift2 pdata ,pdata 
+27ae 98409600 iadd temp ,timeup 
+27af 1a208a04 add rega ,coffset_sniff_anchor ,contw 
+27b0 19627e00 deposit timeup 
+27b1 e7e20005 istore 4 ,contw 
+27b2 efe10006 ifetch 2 ,contr 
+27b3 1febfe00 lshift2 pdata ,pdata 
+27b4 1a208a02 add rega ,coffset_tsniff ,contw 
+27b5 e7e10005 istore 2 ,contw 
+27b6 efe10006 ifetch 2 ,contr 
+27b7 1a208a2c add rega ,coffset_le_slave_latency ,contw 
+27b8 e7e10005 istore 2 ,contw 
+27b9 efe10006 ifetch 2 ,contr 
+27ba 67e142f5 store 2 ,mem_le_init_superto 
+27bb 20202938 branch le_receive_window_size 
+
+le_update_param_cb:
+27bc efe08011 ifetch 1 ,rega 
+27bd 793ffe03 set0 lestate_got_first_packet ,pdata 
+27be e7e08011 istore 1 ,rega 
+27bf 62210684 storer rega ,2 ,mem_rega 
+27c0 70066f44 jam bt_evt_le_parse_conn_param_accepted ,mem_fifo_temp 
+27c1 2040782b call ui_ipc_send_event 
+27c2 6a210684 fetchr rega ,2 ,mem_rega 
+27c3 20600000 rtn 
+
+le_update_channel_map:
+27c4 da600000 arg 0 ,regc 
+27c5 da4027c8 arg le_update_channel_map_cb ,regb 
+27c6 d8e00006 arg lestate_update_map ,queue 
+27c7 202027fb branch le_check_update_flag 
+
+le_update_channel_map_cb:
+27c8 1a208c37 add rega ,coffset_le_new_map ,contr 
+27c9 efe28006 ifetch 5 ,contr 
+27ca 1a208a30 add rega ,coffset_le_channel_map ,contw 
+27cb e7e28005 istore 5 ,contw 
+27cc 20202624 branch le_calc_channel_map 
+
+le_update_phy:
+27cd da600000 arg 0 ,regc 
+27ce da4027d1 arg le_update_phy_cb ,regb 
+27cf d8e00007 arg lestate_update_phy ,queue 
+27d0 202027fb branch le_check_update_flag 
+
+le_update_phy_cb:
+27d1 1a208c37 add rega ,coffset_le_new_m2s_phy ,contr 
+27d2 efe08006 ifetch 1 ,contr 
+27d3 204027de call le_update_phy_cb_m2s 
+27d4 e7e08005 istore 1 ,contw 
+27d5 1a208c38 add rega ,coffset_le_new_s2m_phy ,contr 
+27d6 efe08006 ifetch 1 ,contr 
+27d7 204027ec call le_update_phy_cb_s2m 
+27d8 e7e08005 istore 1 ,contw 
+27d9 62210684 storer rega ,2 ,mem_rega 
+27da 70066f42 jam bt_evt_le_update_phy ,mem_fifo_temp 
+27db 2040782b call ui_ipc_send_event 
+27dc 6a210684 fetchr rega ,2 ,mem_rega 
+27dd 20600000 rtn 
+
+le_update_phy_cb_m2s:
+27de 205a27e6 call le_update_phy_cb_m2s_no_change ,blank 
+27df 1a208a35 add rega ,coffset_le_rx_phy ,contw 
+27e0 24748000 nrtn master 
+27e1 6848c3b6 fetcht 1 ,mem_le_tx_phys 
+27e2 284ffe07 isolate1 bit_le_coded_phy_s8 ,temp 
+27e3 7920fe07 setflag true ,bit_le_coded_phy_s8 ,pdata 
+27e4 1a208a36 add rega ,coffset_le_tx_phy ,contw 
+27e5 20600000 rtn 
+
+le_update_phy_cb_m2s_no_change:
+27e6 1a208c35 add rega ,coffset_le_rx_phy ,contr 
+27e7 efe08006 ifetch 1 ,contr 
+27e8 24748000 nrtn master 
+27e9 1a208c36 add rega ,coffset_le_tx_phy ,contr 
+27ea efe08006 ifetch 1 ,contr 
+27eb 20600000 rtn 
+
+le_update_phy_cb_s2m:
+27ec 205a27f5 call le_update_phy_cb_s2m_no_change ,blank 
+27ed 6848c3b6 fetcht 1 ,mem_le_tx_phys 
+27ee 284ffe07 isolate1 bit_le_coded_phy_s8 ,temp 
+27ef 7920fe07 setflag true ,bit_le_coded_phy_s8 ,pdata 
+27f0 1a208a36 add rega ,coffset_le_tx_phy ,contw 
+27f1 24748000 nrtn master 
+27f2 793ffe07 set0 bit_le_coded_phy_s8 ,pdata 
+27f3 1a208a35 add rega ,coffset_le_rx_phy ,contw 
+27f4 20600000 rtn 
+
+le_update_phy_cb_s2m_no_change:
+27f5 1a208c36 add rega ,coffset_le_tx_phy ,contr 
+27f6 efe08006 ifetch 1 ,contr 
+27f7 24748000 nrtn master 
+27f8 1a208c35 add rega ,coffset_le_rx_phy ,contr 
+27f9 efe08006 ifetch 1 ,contr 
+27fa 20600000 rtn 
+
+le_check_update_flag:
+27fb 47184026 bpatchx patch26_0 ,mem_patch26 
+27fc efe08011 ifetch 1 ,rega 
+27fd afec0000 qisolate0 pdata 
+27fe 20608000 rtn true 
+27ff 1a208c1a add rega ,coffset_le_event_cnt ,contr 
+2800 e8410006 ifetcht 2 ,contr 
+2801 1a208c20 add rega ,coffset_le_instant ,contr 
+2802 efe10006 ifetch 2 ,contr 
+2803 98467e00 isub temp ,pdata 
+2804 2022a80b branch le_update ,zero 
+2805 24212810 nbranch le_check_update_small ,positive 
+2806 1fe67c01 sub pdata ,1 ,null 
+2807 2022a809 branch le_update_ahead1 ,zero 
+2808 20600000 rtn 
+
+le_update_ahead1:
+2809 1a627e00 copy regc ,pdata 
+280a 20207d79 branch callback_func 
+
+le_update:
+280b efe08011 ifetch 1 ,rega 
+280c f93ffe00 qset0 pdata 
+280d e7e08011 istore 1 ,rega 
+280e 1a427e00 copy regb ,pdata 
+280f 20207d79 branch callback_func 
+
+le_check_update_small:
+2810 1a208c1a add rega ,coffset_le_event_cnt ,contr 
+2811 efe10006 ifetch 2 ,contr 
+2812 1a208c20 add rega ,coffset_le_instant ,contr 
+2813 efe10006 ifetch 2 ,contr 
+2814 98467e00 isub temp ,pdata 
+2815 d840ffff arg 0xffff ,temp 
+2816 98467c00 isub temp ,null 
+2817 2022a80b branch le_update ,zero 
+2818 d840f000 arg 0xf000 ,temp 
+2819 98467c00 isub temp ,null 
+281a 2421280b nbranch le_update ,positive 
+281b 20600000 rtn 
+
+le_check_retransmit:
+281c 6848817f fetcht 1 ,mem_le_arq 
+281d 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+281e 1fe37e00 rshift pdata ,pdata 
+281f 9842fe00 ixor temp ,pdata 
+2820 2feffe02 isolate1 nesn ,pdata 
+2821 7920800f setflag true ,mark_old_packet ,mark 
+2822 20600000 rtn 
+
+le_acknowledge:
+2823 4718c026 bpatchx patch26_1 ,mem_patch26 
+2824 20402935 call le_supervision_flush 
+2825 c6180000 rtnmark1 mark_ble_crc_fail 
+2826 2040284a call le_check_wak 
+2827 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+2828 2feffe04 isolate1 md ,pdata 
+2829 7920802a setflag true ,mark_ble_rx_md ,mark 
+282a 1fe37e00 rshift pdata ,pdata 
+282b 9842fe00 ixor temp ,pdata 
+282c 2feffe02 isolate1 nesn ,pdata 
+282d 7920800f setflag true ,mark_old_packet ,mark 
+282e c6078000 rtnmark1 mark_old_packet 
+282f 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+2830 203a283c branch le_ack_unenc ,blank 
+2831 6fe08168 fetch 1 ,mem_le_state 
+2832 c302283c bbit0 lestate_encryption ,le_ack_unenc 
+2833 684a0154 fetcht 4 ,mem_le_peer_mic 
+2834 6fe2445a fetch 4 ,mem_ccm_last_mic 
+2835 98467c00 isub temp ,null 
+2836 2022a35a branch assert ,zero 
+2837 604a445a storet 4 ,mem_ccm_last_mic 
+2838 6fe2c455 fetch 5 ,mem_ccm_pcnt_rx 
+2839 1fe0fe01 increase 1 ,pdata 
+283a 79207e27 set1 le_ccm_directionbit ,pdata 
+283b 67e2c455 store 5 ,mem_ccm_pcnt_rx 
+
+le_ack_unenc:
+283c 6848817f fetcht 1 ,mem_le_arq 
+283d 79400402 setflip nesn ,temp 
+283e 6048817f storet 1 ,mem_le_arq 
+283f 6fe0c321 fetch 1 ,mem_le_configuration 
+2840 c4030000 rtnbit0 bit_ble_deal_bb_packet 
+2841 47194026 bpatchx patch26_2 ,mem_patch26 
+2842 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+2843 207a0000 rtn blank 
+2844 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+2845 2fe00601 compare llid_continue ,pdata ,3 
+2846 2020ae65 branch le_parse_writing_attribute_continue ,true 
+2847 2fe00602 compare llid_start ,pdata ,3 
+2848 2020ae53 branch le_parse_writing_attribute_start ,true 
+2849 20600000 rtn 
+
+le_check_wak:
+284a 4719c026 bpatchx patch26_3 ,mem_patch26 
+284b 6848817f fetcht 1 ,mem_le_arq 
+284c 284c0005 isolate0 wak ,temp 
+284d 20608000 rtn true 
+284e 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+284f 1fe3fe00 lshift pdata ,pdata 
+2850 9842fe00 ixor temp ,pdata 
+2851 c4018000 rtnbit0 sn 
+2852 793f8405 set0 wak ,temp 
+2853 79400403 setflip sn ,temp 
+2854 6048817f storet 1 ,mem_le_arq 
+2855 28400603 compare 3 ,temp ,3 
+2856 20600000 rtn 
+
+le_set_enc:
+2857 6fe08168 fetch 1 ,mem_le_state 
+2858 79207e04 set1 lestate_encryption ,pdata 
+2859 67e08168 store 1 ,mem_le_state 
+285a 79200032 set1 mark_ble_encryption ,mark 
+285b 20600000 rtn 
+
+le_clear_enc:
+285c 471a4026 bpatchx patch26_4 ,mem_patch26 
+285d 7042fd00 jam flag_le_enc_null ,mem_le_enc_state 
+285e dfe00000 arg 0 ,pdata 
+285f 67e2445a store 4 ,mem_ccm_last_mic 
+2860 67e2c450 store 5 ,mem_ccm_pcnt_tx 
+2861 79207e27 set1 le_ccm_directionbit ,pdata 
+2862 67e2c455 store 5 ,mem_ccm_pcnt_rx 
+2863 6fe08168 fetch 1 ,mem_le_state 
+2864 793ffe04 set0 lestate_encryption ,pdata 
+2865 67e08168 store 1 ,mem_le_state 
+2866 793f8032 set0 mark_ble_encryption ,mark 
+2867 20600000 rtn 
+
+le_scan_check_sender_addr_type:
+2868 da200001 arg 1 ,rega 
+2869 6fe0804c fetch 1 ,mem_le_rxbuf_adv_connect_ind_header 
+286a c3830000 rtnbit1 le_sender_addr_bit 
+286b da200000 arg 0 ,rega 
+286c 20600000 rtn 
+
+le_get_master_rx_max:
+286d 18c20a00 copy contr ,contw 
+286e 684943b8 fetcht 2 ,mem_remote_rx_max_octets 
+286f 18a20c00 copy contw ,contr 
+2870 20600000 rtn 
+
+le_prepare_tx:
+2871 471ac026 bpatchx patch26_5 ,mem_patch26 
+2872 6fe0817f fetch 1 ,mem_le_arq 
+2873 c3828000 rtnbit1 wak 
+2874 20402892 call le_check_tx_md 
+2875 20402a10 call le_fifo_get_first_tx_ptr 
+2876 203a28b6 branch le_send_empty ,blank 
+2877 efe10006 ifetch 2 ,contr 
+2878 e8410006 ifetcht 2 ,contr 
+2879 18422200 copy temp ,rega 
+287a 9a267e00 isub rega ,pdata 
+287b 2040286d call le_get_master_rx_max 
+287c 20407db0 call not_greater_than 
+287d 1fe20400 copy pdata ,temp 
+287e e8208006 ifetchr type ,1 ,contr 
+287f 1a227e00 copy rega ,pdata 
+2880 98c0fe00 iadd contr ,pdata 
+2881 67e1068f store 2 ,mem_contr 
+2882 204028a6 call le_update_tx_type 
+2883 204028b8 call le_send_packet 
+2884 20402a10 call le_fifo_get_first_tx_ptr 
+2885 efe10006 ifetch 2 ,contr 
+2886 1fe22200 copy pdata ,rega 
+2887 18c22600 copy contr ,regc 
+2888 e8410006 ifetcht 2 ,contr 
+2889 18422400 copy temp ,regb 
+288a 9a467e00 isub regb ,pdata 
+288b 2040286d call le_get_master_rx_max 
+288c 20407db0 call not_greater_than 
+288d 9a40fe00 iadd regb ,pdata 
+288e e7e10013 istore 2 ,regc 
+288f 9a267c00 isub rega ,null 
+2890 24628000 nrtn zero 
+2891 20202a2a branch le_fifo_release_first_node 
+
+le_check_tx_md:
+2892 20402899 call le_check_continue 
+2893 c6148000 rtnmark1 mark_ble_tx_md 
+2894 6fe0c321 fetch 1 ,mem_le_configuration 
+2895 c30128a4 bbit0 bit_ble_transmit_packet_by_md ,le_clear_md 
+2896 20402a14 call le_fifo_get_second_tx_ptr 
+2897 203a28a4 branch le_clear_md ,blank 
+2898 202028a2 branch le_set_md 
+
+le_check_continue:
+2899 20402a10 call le_fifo_get_first_tx_ptr 
+289a 203a28a4 branch le_clear_md ,blank 
+289b efe10006 ifetch 2 ,contr 
+289c e8410006 ifetcht 2 ,contr 
+289d 98462200 isub temp ,rega 
+289e 2040286d call le_get_master_rx_max 
+289f 18427e00 copy temp ,pdata 
+28a0 9a267c00 isub rega ,null 
+28a1 202128a4 branch le_clear_md ,positive 
+
+le_set_md:
+28a2 79200029 set1 mark_ble_tx_md ,mark 
+28a3 20600000 rtn 
+
+le_clear_md:
+28a4 793f8029 set0 mark_ble_tx_md ,mark 
+28a5 20600000 rtn 
+
+le_update_tx_type:
+28a6 1a227e00 copy rega ,pdata 
+28a7 207a0000 rtn blank 
+28a8 d8200001 arg llid_continue ,type 
+28a9 20600000 rtn 
+
+le_att_check_notification_enable:
+28aa 471b4026 bpatchx patch26_6 ,mem_patch26 
+28ab 18408401 increase 1 ,temp 
+28ac 20402ccf call le_att_get_handle_ptr 
+28ad 18c08dfe increase -2 ,contr 
+28ae efe10006 ifetch 2 ,contr 
+28af d8402902 arg client_charactertic_configuration ,temp 
+28b0 98467c00 isub temp ,null 
+28b1 24628000 nrtn zero 
+28b2 18c08c01 increase 1 ,contr 
+28b3 18c22200 copy contr ,rega 
+28b4 efe08006 ifetch 1 ,contr 
+28b5 20600000 rtn 
+
+le_send_empty:
+28b6 18000400 force 0 ,temp 
+28b7 18000201 force 1 ,type 
+
+le_send_packet:
+28b8 471bc026 bpatchx patch26_7 ,mem_patch26 
+28b9 6048c16a storet 1 ,mem_le_txlen 
+28ba 6848817f fetcht 1 ,mem_le_arq 
+28bb 79200405 set1 wak ,temp 
+28bc 18417efc and temp ,0xfc ,pdata 
+28bd 9821fe00 ior type ,pdata 
+28be 67e0817f store 1 ,mem_le_arq 
+28bf 1fe17e1f and_into 0x1f ,pdata 
+28c0 280ffe29 isolate1 mark_ble_tx_md ,mark 
+28c1 7920fe04 setflag true ,md ,pdata 
+28c2 67e0c169 store 1 ,mem_le_txheader 
+28c3 6fe0c169 fetch 1 ,mem_le_txheader 
+28c4 28200601 compare 1 ,type ,3 
+28c5 2420a8c8 nbranch le_send_no_txlen ,true 
+28c6 6fe0c16a fetch 1 ,mem_le_txlen 
+28c7 207a0000 rtn blank 
+
+le_send_no_txlen:
+28c8 c51928ce bmark1 mark_ble_encryption ,le_send_packet_enc 
+28c9 6f20c16a fetchr loopcnt ,1 ,mem_le_txlen 
+28ca 6fe1068f fetch 2 ,mem_contr 
+28cb 1fe20c00 copy pdata ,contr 
+28cc d8a0416b arg mem_le_txpayload ,contw 
+28cd 20207ccc branch memcpy_fast 
+
+le_send_packet_enc:
+28ce 20407368 call load_sk 
+28cf 2020729f branch le_encrypt_new_start 
+
+get_lpm_wake_ble_rx_lock:
+28d0 d8e00000 arg wake_lock_ble_rx ,queue 
+28d1 202024e7 branch lpm_get_wake_lock 
+
+put_lpm_wake_ble_rx_lock:
+28d2 d8e00000 arg wake_lock_ble_rx ,queue 
+28d3 202024eb branch lpm_put_wake_lock 
+
+le_parse:
+28d4 471c4027 bpatchx patch27_0 ,mem_patch27 
+28d5 c6078000 rtnmark1 mark_old_packet 
+28d6 c6180000 rtnmark1 mark_ble_crc_fail 
+28d7 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+28d8 1fe17e03 and pdata ,0x3 ,pdata 
+28d9 67e0c334 store 1 ,mem_le_packet_llid 
+28da 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+28db 207a0000 rtn blank 
+28dc 5800004e setarg mem_le_rxbuf_data_payload 
+28dd 67e14339 store 2 ,mem_le_payload_ptr 
+28de 471cc027 bpatchx patch27_1 ,mem_patch27 
+28df 6fe0c334 fetch 1 ,mem_le_packet_llid 
+28e0 c001b04a beq llid_le_ll ,le_parse_ll 
+
+le_parse_l2cap:
+28e1 204028ee call le_check_l2cap_complete 
+28e2 243428d0 nbranch get_lpm_wake_ble_rx_lock ,user 
+28e3 204028d2 call put_lpm_wake_ble_rx_lock 
+28e4 58000000 setarg 0 
+28e5 67e14337 store 2 ,mem_le_packet_len_recved 
+28e6 6fe14339 fetch 2 ,mem_le_payload_ptr 
+28e7 1fe08c02 add pdata ,2 ,contr 
+28e8 471d4027 bpatchx patch27_2 ,mem_patch27 
+
+le_parse_l2cap_next:
+28e9 efe10006 ifetch 2 ,contr 
+28ea c0022b8f beq le_l2cap_cid_att ,le_parse_att 
+28eb c0032ec8 beq le_l2cap_cid_smp ,le_parse_smp 
+28ec c002ae8a beq le_l2cap_cid_signal ,le_parse_signaling 
+28ed 20600000 rtn 
+
+le_check_l2cap_complete:
+28ee 6fe0c334 fetch 1 ,mem_le_packet_llid 
+28ef c00128fd beq llid_start ,le_check_l2cap_llid_start 
+28f0 c000a914 beq llid_continue ,le_check_l2cap_llid_continue 
+28f1 20600000 rtn 
+
+le_check_l2cap_cid_legal:
+28f2 20407dba call enable_user 
+28f3 d8400004 arg le_l2cap_cid_att ,temp 
+28f4 9fe67c00 isub pdata ,null 
+28f5 20628000 rtn zero 
+28f6 d8400005 arg le_l2cap_cid_signal ,temp 
+28f7 9fe67c00 isub pdata ,null 
+28f8 20628000 rtn zero 
+28f9 d8400006 arg le_l2cap_cid_smp ,temp 
+28fa 9fe67c00 isub pdata ,null 
+28fb 20628000 rtn zero 
+28fc 20207dbc branch disable_user 
+
+le_check_l2cap_llid_start:
+28fd 6fe14339 fetch 2 ,mem_le_payload_ptr 
+28fe 1fe20c00 copy pdata ,contr 
+28ff efe10006 ifetch 2 ,contr 
+2900 67e14335 store 2 ,mem_le_l2cap_size 
+2901 efe10006 ifetch 2 ,contr 
+2902 204028f2 call le_check_l2cap_cid_legal 
+2903 24740000 nrtn user 
+2904 6848804d fetcht 1 ,mem_le_rxbuf_data_length 
+2905 60494337 storet 2 ,mem_le_packet_len_recved 
+2906 6fe14335 fetch 2 ,mem_le_l2cap_size 
+2907 1fe0fe04 increase 4 ,pdata 
+2908 98467c00 isub temp ,null 
+2909 2022fdba branch enable_user ,zero 
+290a 6f20804d fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+290b d8a00f00 arg mem_le_l2cap_buf ,contw 
+290c 6fe14339 fetch 2 ,mem_le_payload_ptr 
+290d 1fe20c00 copy pdata ,contr 
+290e 20407ccc call memcpy_fast 
+290f 20207dbc branch disable_user 
+
+le_check_l2cap_continue_legal:
+2910 20407dba call enable_user 
+2911 6fe14337 fetch 2 ,mem_le_packet_len_recved 
+2912 247a0000 nrtn blank 
+2913 20207dbc branch disable_user 
+
+le_check_l2cap_llid_continue:
+2914 20402910 call le_check_l2cap_continue_legal 
+2915 24740000 nrtn user 
+2916 6fe14337 fetch 2 ,mem_le_packet_len_recved 
+2917 d8a00f00 arg mem_le_l2cap_buf ,contw 
+2918 98a0a200 iadd contw ,rega 
+2919 6848804d fetcht 1 ,mem_le_rxbuf_data_length 
+291a 9840fe00 iadd temp ,pdata 
+291b 67e14337 store 2 ,mem_le_packet_len_recved 
+291c 6f20804d fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+291d 1a220a00 copy rega ,contw 
+291e 6fe14339 fetch 2 ,mem_le_payload_ptr 
+291f 1fe20c00 copy pdata ,contr 
+2920 20407ccc call memcpy_fast 
+2921 58000f00 setarg mem_le_l2cap_buf 
+2922 67e14339 store 2 ,mem_le_payload_ptr 
+2923 6fe14335 fetch 2 ,mem_le_l2cap_size 
+2924 1fe0fe04 increase 4 ,pdata 
+2925 68494337 fetcht 2 ,mem_le_packet_len_recved 
+2926 98467c00 isub temp ,null 
+2927 2022fdba branch enable_user ,zero 
+2928 20207dbc branch disable_user 
+
+le_writeatt_cb:
+2929 6fe143df fetch 2 ,mem_cb_att_write 
+292a 20207d79 branch callback_func 
+
+le_supervision_update:
+292b 471dc027 bpatchx patch27_3 ,mem_patch27 
+292c 684a0184 fetcht 4 ,mem_le_supervision_timer 
+292d 20402356 call get_clkbt 
+292e 98461600 isub temp ,timeup 
+292f 19627e00 deposit timeup 
+2930 68490196 fetcht 2 ,mem_le_superto 
+2931 18520400 lshift4 temp ,temp 
+2932 18438400 lshift temp ,temp 
+2933 98467e00 isub temp ,pdata 
+2934 20600000 rtn 
+
+le_supervision_flush:
+2935 20402356 call get_clkbt 
+2936 67e20184 store 4 ,mem_le_supervision_timer 
+2937 20600000 rtn 
+
+le_receive_window_size:
+2938 471e4027 bpatchx patch27_4 ,mem_patch27 
+2939 1a208c50 add rega ,coffset_le_peer_sca ,contr 
+293a efe08006 ifetch 1 ,contr 
+293b 204025eb call le_sca_map 
+293c 1a208c02 add rega ,coffset_tsniff ,contr 
+293d efe10006 ifetch 2 ,contr 
+293e 984ffe00 imul32 temp ,pdata 
+293f 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
+2940 984ffe00 imul32 temp ,pdata 
+2941 d84f4240 arg 1000000 ,temp 
+2942 9846fc00 idiv temp 
+2943 d8400682 arg param_windown_size ,temp 
+2944 6fe0c148 fetch 1 ,mem_system_clk 
+2945 984f8400 imul32 temp ,temp 
+2946 1a208c2b add rega ,coffset_le_window_size ,contr 
+2947 efe08006 ifetch 1 ,contr 
+2948 984ffe00 imul32 temp ,pdata 
+2949 9840fe00 iadd temp ,pdata 
+294a 67e2431d store 4 ,mem_le_transmit_window 
+294b 6fe1409a fetch 2 ,mem_rx_window_sniff 
+294c 20407d62 call wait_div_end 
+294d 18078400 quotient temp 
+294e 9840fe00 iadd temp ,pdata 
+294f 1a208a0e add rega ,coffset_rx_window ,contw 
+2950 e7e10005 istore 2 ,contw 
+2951 20600000 rtn 
+
+le_modified_name:
+2952 471ec027 bpatchx patch27_5 ,mem_patch27 
+2953 20402955 call le_modified_name_att_list 
+2954 20202969 branch le_modified_name_adv 
+
+le_modified_name_att_list:
+2955 7006b502 jam 2 ,mem_le_search_att_type_length 
+2956 d8402a00 arg uuid_chrctr_device_name ,temp 
+2957 604906b6 storet 2 ,mem_le_search_att_type 
+2958 20402ce0 call le_att_get_uuid_ptr 
+2959 207a0000 rtn blank 
+295a efe08006 ifetch 1 ,contr 
+295b 18c20a00 copy contr ,contw 
+295c 6848c26b fetcht 1 ,mem_le_name_len 
+295d 18427200 copy temp ,loopcnt 
+295e 98467c00 isub temp ,null 
+295f 24212966 nbranch le_name_length_longer_than_att ,positive 
+2960 98460400 isub temp ,temp 
+2961 d8c0426c arg mem_le_name ,contr 
+2962 20407ccc call memcpy_fast 
+2963 18427200 copy temp ,loopcnt 
+2964 2442a9a1 ncall memcpy_empty ,zero 
+2965 20600000 rtn 
+
+le_name_length_longer_than_att:
+2966 1fe27200 copy pdata ,loopcnt 
+2967 d8c0426c arg mem_le_name ,contr 
+2968 20207ccc branch memcpy_fast 
+
+le_modified_name_adv:
+2969 da604368 arg mem_le_adv_data_len + 32 ,regc 
+296a da204349 arg mem_le_adv_data ,rega 
+296b 20402976 call le_modified_name_adv_and_scan 
+296c 58000000 setarg 0 
+296d 79347e00 setflag user ,0 ,pdata 
+296e 67e08670 store 1 ,mem_pdatatemp 
+296f da604388 arg mem_le_scan_data_len + 32 ,regc 
+2970 da204369 arg mem_le_scan_data ,rega 
+2971 20402976 call le_modified_name_adv_and_scan 
+2972 20740000 rtn user 
+2973 6fe08670 fetch 1 ,mem_pdatatemp 
+2974 203a235a branch assert ,blank 
+2975 20600000 rtn 
+
+le_modified_name_adv_and_scan:
+2976 471f4027 bpatchx patch27_6 ,mem_patch27 
+2977 20407dba call enable_user 
+2978 20407ca6 call clear_temp_block 
+2979 da400000 arg 0 ,regb 
+297a d8a006a2 arg mem_le_data_temp ,contw 
+297b 20402990 call le_modified_name_adv_loop 
+297c 6fe0c26b fetch 1 ,mem_le_name_len 
+297d 1fe08401 add pdata ,1 ,temp 
+297e 9a40a200 iadd regb ,rega 
+297f 1a20a202 increase 2 ,rega 
+2980 1a267c1f sub rega ,0x1f ,null 
+2981 2421298e nbranch le_modified_name_adv_and_scan_name_overflow ,positive 
+2982 e0408005 istoret 1 ,contw 
+2983 d8400009 arg gap_adtype_local_name_complete ,temp 
+2984 e0408005 istoret 1 ,contw 
+2985 98007200 iforce loopcnt 
+2986 20407ccc call memcpy_fast 
+2987 1a222400 copy rega ,regb 
+
+le_modified_name_adv_and_scan_store_data:
+2988 1a427e00 deposit regb 
+2989 67e086a1 store 1 ,mem_le_data_len_temp 
+298a d8c006a1 arg mem_le_data_len_temp ,contr 
+298b 5fffffe0 setarg -32 
+298c 9a608a00 iadd regc ,contw 
+298d 20207c8d branch memcpy32 
+
+le_modified_name_adv_and_scan_name_overflow:
+298e 20407dbc call disable_user 
+298f 20202988 branch le_modified_name_adv_and_scan_store_data 
+
+le_modified_name_adv_loop:
+2990 efe08011 ifetch 1 ,rega 
+2991 207a0000 rtn blank 
+2992 1fe0fe01 pincrease 1 
+2993 e8408006 ifetcht 1 ,contr 
+2994 18467c09 sub temp ,gap_adtype_local_name_complete ,null 
+2995 2022a99f branch le_modified_name_adv_found_name ,zero 
+2996 9a40a400 iadd regb ,regb 
+2997 1a220c00 copy rega ,contr 
+2998 98007200 iforce loopcnt 
+2999 20407ccc call memcpy_fast 
+299a 18c22200 copy contr ,rega 
+
+le_modified_name_adv_loop2:
+299b 1a227e00 deposit rega 
+299c 9a667c00 isub regc ,null 
+299d 20610000 rtn positive 
+299e 20202990 branch le_modified_name_adv_loop 
+
+le_modified_name_adv_found_name:
+299f 9a20a200 iadd rega ,rega 
+29a0 2020299b branch le_modified_name_adv_loop2 
+
+memcpy_empty:
+29a1 58000020 setarg space 
+29a2 e7e08005 istore 1 ,contw 
+29a3 c20029a1 loop memcpy_empty 
+29a4 20600000 rtn 
+
+le_lpm_set_mult:
+29a5 471fc027 bpatchx patch27_7 ,mem_patch27 
+29a6 7855fc00 disable wake 
+29a7 203729a9 branch le_lpm_set_mult_attempt ,attempt 
+29a8 2436a9b8 nbranch le_lpm_lost ,match 
+
+le_lpm_set_mult_attempt:
+29a9 204024d2 call lpm_match 
+29aa 6fe1409a fetch 2 ,mem_rx_window_sniff 
+29ab 67e10176 store 2 ,mem_le_receive_window 
+29ac 6fe0c321 fetch 1 ,mem_le_configuration 
+29ad c282a4e0 bbit1 bit_ble_short_mult ,lpm_mult_short 
+29ae c507a4e0 bmark1 mark_old_packet ,lpm_mult_short 
+29af 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+29b0 243a24e0 nbranch lpm_mult_short ,blank 
+29b1 6fe0c16a fetch 1 ,mem_le_txlen 
+29b2 243a24e0 nbranch lpm_mult_short ,blank 
+29b3 6fe08168 fetch 1 ,mem_le_state 
+29b4 c282a4e0 bbit1 lestate_update_param ,lpm_mult_short 
+29b5 c283a4e0 bbit1 lestate_update_phy ,lpm_mult_short 
+29b6 c28324e0 bbit1 lestate_update_map ,lpm_mult_short 
+29b7 202024c8 branch lpm_mult_wait_timeout 
+
+le_lpm_lost:
+29b8 6fe0c0a8 fetch 1 ,mem_sniff_unint_lost 
+29b9 1fe67c1e sub pdata ,30 ,null 
+29ba 242124d7 nbranch lpm_lost ,positive 
+29bb 6849409a fetcht 2 ,mem_rx_window_sniff 
+29bc 18430400 rshift temp ,temp 
+29bd 6fe10176 fetch 2 ,mem_le_receive_window 
+29be 9840fe00 iadd temp ,pdata 
+29bf 67e10176 store 2 ,mem_le_receive_window 
+29c0 202024d7 branch lpm_lost 
+
+le_set_config_fixed_tk:
+29c1 d8e00000 arg bit_ble_passkey_fixed_key ,queue 
+29c2 202029d6 branch le_set_config 
+
+le_clr_config_fixed_tk:
+29c3 d8e00000 arg bit_ble_passkey_fixed_key ,queue 
+29c4 202029db branch le_clr_config 
+
+le_set_config_fixed_ltk:
+29c5 d8e00001 arg bit_ble_pairing_fixed_ltk ,queue 
+29c6 202029d6 branch le_set_config 
+
+le_clr_config_fixed_ltk:
+29c7 d8e00001 arg bit_ble_pairing_fixed_ltk ,queue 
+29c8 202029db branch le_clr_config 
+
+le_set_config_more_data:
+29c9 d8e00002 arg bit_ble_transmit_packet_by_md ,queue 
+29ca 202029d6 branch le_set_config 
+
+le_clr_config_more_data:
+29cb d8e00002 arg bit_ble_transmit_packet_by_md ,queue 
+29cc 202029db branch le_clr_config 
+
+le_set_config_read_authentication:
+29cd d8e00003 arg bit_ble_read_auth ,queue 
+29ce 202029d6 branch le_set_config 
+
+le_clr_config_read_authentication:
+29cf d8e00003 arg bit_ble_read_auth ,queue 
+29d0 202029db branch le_clr_config 
+
+le_set_config_write_authentication:
+29d1 d8e00004 arg bit_ble_write_auth ,queue 
+29d2 202029d6 branch le_set_config 
+
+le_clr_config_write_authentication:
+29d3 d8e00004 arg bit_ble_write_auth ,queue 
+29d4 202029db branch le_clr_config 
+
+le_set_config_short_mult:
+29d5 d8e00005 arg bit_ble_short_mult ,queue 
+
+le_set_config:
+29d6 6fe0c321 fetch 1 ,mem_le_configuration 
+29d7 f9207e00 qset1 pdata 
+29d8 67e0c321 store 1 ,mem_le_configuration 
+29d9 20600000 rtn 
+
+le_clr_config_short_mult:
+29da d8e00005 arg bit_ble_short_mult ,queue 
+
+le_clr_config:
+29db 6fe0c321 fetch 1 ,mem_le_configuration 
+29dc f93ffe00 qset0 pdata 
+29dd 67e0c321 store 1 ,mem_le_configuration 
+29de 20600000 rtn 
+
+le_set_fixed_ltk:
+29df 58112233 setarg 0x112233 
+29e0 67e1c322 store 3 ,mem_le_fixed_ltk 
+29e1 58445566 setarg 0x445566 
+29e2 e7e18005 istore 3 ,contw 
+29e3 58778899 setarg 0x778899 
+29e4 e7e18005 istore 3 ,contw 
+29e5 58001122 setarg 0x001122 
+29e6 e7e18005 istore 3 ,contw 
+29e7 58334455 setarg 0x334455 
+29e8 e7e18005 istore 3 ,contw 
+29e9 58000066 setarg 0x66 
+29ea e7e08005 istore 1 ,contw 
+29eb 20600000 rtn 
+
+le_set_justwork:
+29ec 59000302 setarg 0x01000302 
+29ed 67e242c4 store 4 ,mem_le_pres 
+29ee 58010010 setarg 0x010010 
+29ef 67e1c2c8 store 3 ,mem_le_pres_max_keysize 
+29f0 7042fe01 jam 1 ,mem_le_pairing_mode 
+29f1 20600000 rtn 
+
+le_fifo_malloc_tx_empty:
+29f2 da200000 arg 0 ,rega 
+29f3 d8200001 arg llid_empty ,type 
+29f4 20202a05 branch le_fifo_malloc_tx 
+
+le_fifo_malloc_tx_ll:
+29f5 47204028 bpatchx patch28_0 ,mem_patch28 
+29f6 d8200003 arg llid_le_ll ,type 
+29f7 20402a05 call le_fifo_malloc_tx 
+29f8 1a427e00 copy regb ,pdata 
+29f9 e7e08005 istore 1 ,contw 
+29fa 20600000 rtn 
+
+le_fifo_malloc_tx_l2cap:
+29fb 4720c028 bpatchx patch28_1 ,mem_patch28 
+29fc 18000202 force llid_start ,type 
+29fd 1a20a204 increase 4 ,rega 
+29fe 20402a05 call le_fifo_malloc_tx 
+29ff 1a20a3fc increase -4 ,rega 
+2a00 1a227e00 copy rega ,pdata 
+2a01 e7e10005 istore 2 ,contw 
+2a02 1a427e00 copy regb ,pdata 
+2a03 e7e10005 istore 2 ,contw 
+2a04 20600000 rtn 
+
+le_fifo_malloc_tx:
+2a05 47214028 bpatchx patch28_2 ,mem_patch28 
+2a06 1a20a205 increase 5 ,rega 
+2a07 20406959 call ble_l2cap_malloc 
+2a08 1a20a3fb increase -5 ,rega 
+2a09 1a227e00 copy rega ,pdata 
+2a0a e7e10005 istore 2 ,contw 
+2a0b 58000000 setarg 0 
+2a0c e7e10005 istore 2 ,contw 
+2a0d 18227e00 copy type ,pdata 
+2a0e e7e08005 istore 1 ,contw 
+2a0f 20600000 rtn 
+
+le_fifo_get_first_tx_ptr:
+2a10 4721c028 bpatchx patch28_3 ,mem_patch28 
+2a11 20406993 call l2cap_malloc_fifo_out 
+2a12 1fe20c00 copy pdata ,contr 
+2a13 20600000 rtn 
+
+le_fifo_get_second_tx_ptr:
+2a14 6fe14449 fetch 2 ,mem_tx_fifo2_ptr 
+2a15 20600000 rtn 
+
+le_fifo_get_last_tx_ptr:
+2a16 20402a19 call le_fifo_get_last_tx_ptr0 
+2a17 1fe20c00 copy pdata ,contr 
+2a18 20600000 rtn 
+
+le_fifo_get_last_tx_ptr0:
+2a19 6fe1444c fetch 2 ,mem_tx_fifo3_ptr 
+2a1a 20600000 rtn 
+
+le_fifo_get_first_l2cap_ptr:
+2a1b 20402a10 call le_fifo_get_first_tx_ptr 
+2a1c 18c08c05 increase 5 ,contr 
+2a1d 20600000 rtn 
+
+le_fifo_get_first_att_ptr:
+2a1e 20402a10 call le_fifo_get_first_tx_ptr 
+2a1f 18c08c09 increase 9 ,contr 
+2a20 20600000 rtn 
+
+le_fifo_get_last_att_ptr:
+2a21 20402a16 call le_fifo_get_last_tx_ptr 
+2a22 18c08c09 increase 9 ,contr 
+2a23 20600000 rtn 
+
+le_fifo_get_last_l2cap_ptr:
+2a24 20402a16 call le_fifo_get_last_tx_ptr 
+2a25 18c08c05 increase 5 ,contr 
+2a26 20600000 rtn 
+
+le_fifo_check_full:
+2a27 202069a9 branch l2cap_malloc_is_fifo_full 
+
+le_fifo_check_nearly_full:
+2a28 202069ac branch l2cap_malloc_is_fifo_nearly_full 
+
+le_fifo_check_empty:
+2a29 202069af branch l2cap_malloc_is_fifo_empty 
+
+le_fifo_release_first_node:
+2a2a 20206998 branch l2cap_malloc_free 
+
+le_set_dle:
+2a2b 67e443c0 store 8 ,mem_local_rx_max_octets 
+2a2c 20202a3c branch le_set_feature_data_packet_length_extension 
+
+le_set_phys:
+2a2d 184122ff and temp ,0xff ,rega 
+2a2e 20402a32 call le_set_tx_phy 
+2a2f 184ca200 rshift8 temp ,rega 
+
+le_set_rx_phy:
+2a30 6220c3b7 storer rega ,1 ,mem_le_rx_phys 
+2a31 20202a33 branch le_set_phy_common 
+
+le_set_tx_phy:
+2a32 6220c3b6 storer rega ,1 ,mem_le_tx_phys 
+
+le_set_phy_common:
+2a33 2a2ffe01 isolate1 bit_le_2m_phy ,rega 
+2a34 2040aa38 call le_set_feature_2m_phy ,true 
+2a35 2a2ffe02 isolate1 bit_le_coded_phy ,rega 
+2a36 2040aa3a call le_set_feature_coded_phy ,true 
+2a37 20600000 rtn 
+
+le_set_feature_2m_phy:
+2a38 d8e00008 arg bit_ll_feature_le_2m_phy ,queue 
+2a39 20202a3d branch le_set_feature 
+
+le_set_feature_coded_phy:
+2a3a d8e0000b arg bit_ll_feature_le_coded_phy ,queue 
+2a3b 20202a3d branch le_set_feature 
+
+le_set_feature_data_packet_length_extension:
+2a3c d8e00005 arg bit_ll_feature_le_data_packet_length_extension ,queue 
+
+le_set_feature:
+2a3d 6fe443ae fetch 8 ,mem_le_local_feature 
+2a3e f9207e00 qset1 pdata 
+2a3f 67e443ae store 8 ,mem_le_local_feature 
+2a40 20600000 rtn 
+
+le_set_fixed_ltk_justwork:
+2a41 204029c5 call le_set_config_fixed_ltk 
+2a42 204029ec call le_set_justwork 
+2a43 204029df call le_set_fixed_ltk 
+2a44 202029cd branch le_set_config_read_authentication 
+
+le_advertising_dispatch:
+2a45 70019d01 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
+2a46 70019e01 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
+2a47 204025b8 call le_enable 
+2a48 20402a4b call le_scan 
+2a49 20402acb call le_adv 
+2a4a 202025bc branch le_disable 
+
+le_scan:
+2a4b 47224028 bpatchx patch28_4 ,mem_patch28 
+2a4c 6fe0c343 fetch 1 ,mem_le_scan_enable 
+2a4d c1808000 rtnne le_scan_enable 
+2a4e d8e00002 arg le_scan_interval_timer ,queue 
+2a4f 20407cef call timer_check 
+2a50 247a0000 nrtn blank 
+2a51 6fe14344 fetch 2 ,mem_le_scan_interval 
+2a52 68494346 fetcht 2 ,mem_le_scan_window 
+2a53 98467e00 isub temp ,pdata 
+2a54 d8e00002 arg le_scan_interval_timer ,queue 
+2a55 20407ce1 call timer_init 
+2a56 7854fc00 disable master 
+2a57 20402af5 call le_init_adv 
+2a58 20402a6a call le_wait_adv 
+2a59 24768000 nrtn match 
+2a5a 4722c028 bpatchx patch28_5 ,mem_patch28 
+2a5b 6fe3004e fetch 6 ,mem_le_rxbuf + 2 
+2a5c 67e30178 store 6 ,mem_le_plap 
+2a5d 6fe08002 fetch 1 ,mem_le_adv_rcv 
+2a5e 1fe0fe01 increase 1 ,pdata 
+2a5f 67e08002 store 1 ,mem_le_adv_rcv 
+2a60 20402a71 call le_create_conn 
+2a61 20748000 rtn master 
+2a62 20402b1c call le_send_scan_request 
+2a63 24768000 nrtn match 
+2a64 6fe08004 fetch 1 ,mem_le_scanrsp_rcv 
+2a65 1fe0fe01 increase 1 ,pdata 
+2a66 67e08004 store 1 ,mem_le_scanrsp_rcv 
+2a67 6fe48054 fetch 9 ,mem_le_rxbuf + 8 
+2a68 67e486a1 store 9 ,mem_temp_block0 
+2a69 20600000 rtn 
+
+le_wait_adv:
+2a6a 47234028 bpatchx patch28_6 ,mem_patch28 
+2a6b 20402b68 call le_next_adv_channel 
+2a6c 2040264e call le_receive_adv 
+2a6d 6fe08001 fetch 1 ,mem_le_adv_waitcnt 
+2a6e 1fe0fe01 increase 1 ,pdata 
+2a6f 67e08001 store 1 ,mem_le_adv_waitcnt 
+2a70 20600000 rtn 
+
+le_create_conn:
+2a71 4723c028 bpatchx patch28_7 ,mem_patch28 
+2a72 6fe081bc fetch 1 ,mem_cmd_le_create_conn 
+2a73 c18d8000 rtnne hci_cmd_le_create_conn 
+2a74 6fe30178 fetch 6 ,mem_le_plap 
+2a75 684b42cc fetcht 6 ,mem_le_conn_peer_addr 
+2a76 98467c00 isub temp ,null 
+2a77 24628000 nrtn zero 
+2a78 20402056 call context_new 
+2a79 24628000 nrtn zero 
+2a7a 20402a84 call le_connect_request 
+2a7b 20402519 call le_init_master 
+2a7c 204030ed call le_send_version_ind 
+2a7d 70066f14 jam bt_evt_le_connected ,mem_fifo_temp 
+2a7e 2040782b call ui_ipc_send_event 
+2a7f 70411400 jam 0 ,mem_hci_cmd 
+2a80 7001b800 jam 0 ,mem_le_peer_sca 
+2a81 70434300 jam 0 ,mem_le_scan_enable 
+2a82 7001bc00 jam 0 ,mem_cmd_le_create_conn 
+2a83 20202041 branch context_save 
+
+le_connect_request:
+2a84 47244029 bpatchx patch29_0 ,mem_patch29 
+2a85 18007fff force -1 ,pdata 
+2a86 38080001 setsect 2 ,1 
+2a87 67e28198 store 5 ,mem_le_channel_map 
+2a88 da200168 arg mem_le_state ,rega 
+2a89 20402624 call le_calc_channel_map 
+2a8a 18007204 force 4 ,loopcnt 
+2a8b d8a0018c arg mem_le_access ,contw 
+2a8c 20407de8 call generate_random_loop 
+2a8d 6fe142d9 fetch 2 ,mem_le_timeout 
+2a8e 67e10196 store 2 ,mem_le_superto 
+
+le_con_req_hop_retry:
+2a8f 180a7e00 random pdata 
+2a90 1fe17e0f and_into 0xf ,pdata 
+2a91 1fe67c04 sub pdata ,4 ,null 
+2a92 20212a8f branch le_con_req_hop_retry ,positive 
+2a93 67e08181 store 1 ,mem_le_hop 
+2a94 4724c029 bpatchx patch29_1 ,mem_patch29 
+2a95 68494165 fetcht 2 ,mem_le_conn_interval 
+2a96 6049016a storet 2 ,mem_le_tsniff 
+2a97 18422600 copy temp ,regc 
+2a98 1c40fe07 add clkn_bt ,7 ,pdata 
+2a99 9a66fc00 idiv regc 
+2a9a 20407d62 call wait_div_end 
+2a9b 18072200 remainder rega 
+2a9c 9a267e00 isub rega ,pdata 
+2a9d 9a60fe00 iadd regc ,pdata 
+2a9e 68494163 fetcht 2 ,mem_le_dsniff 
+2a9f 9840fe00 iadd temp ,pdata 
+2aa0 67e2016c store 4 ,mem_le_anchor 
+2aa1 9c462200 isub clkn_bt ,rega 
+2aa2 1a20a3fa increase -6 ,rega 
+2aa3 da402205 arg 0x2205 ,regb 
+2aa4 6fe0c2d2 fetch 1 ,mem_le_conn_own_addr_type 
+2aa5 7d3a2406 nsetflag blank ,le_sender_addr_bit ,regb 
+2aa6 6fe0c2cb fetch 1 ,mem_le_conn_peer_addr_type 
+2aa7 7d3a2407 nsetflag blank ,le_receiver_addr_bit ,regb 
+2aa8 1a427e00 copy regb ,pdata 
+2aa9 67e14169 store 2 ,mem_le_txheader 
+2aaa 6fe342db fetch 6 ,mem_le_lap 
+2aab e7e30005 istore 6 ,contw 
+2aac 6fe30178 fetch 6 ,mem_le_plap 
+2aad e7e30005 istore 6 ,contw 
+2aae 6fe2018c fetch 4 ,mem_le_access 
+2aaf e7e20005 istore 4 ,contw 
+2ab0 180a7e00 random pdata 
+2ab1 e7e10005 istore 2 ,contw 
+2ab2 180a7e00 random pdata 
+2ab3 e7e08005 istore 1 ,contw 
+2ab4 18007e02 force 2 ,pdata 
+2ab5 e7e08005 istore 1 ,contw 
+2ab6 1a2b7e00 rshift2 rega ,pdata 
+2ab7 e7e10005 istore 2 ,contw 
+2ab8 1a6b7e00 rshift2 regc ,pdata 
+2ab9 e7e10005 istore 2 ,contw 
+2aba 47254029 bpatchx patch29_2 ,mem_patch29 
+2abb 58000000 setarg 0 
+2abc e7e10005 istore 2 ,contw 
+2abd 6fe142d9 fetch 2 ,mem_le_timeout 
+2abe e7e10005 istore 2 ,contw 
+2abf 6fe28198 fetch 5 ,mem_le_channel_map 
+2ac0 e7e28005 istore 5 ,contw 
+2ac1 6fe08181 fetch 1 ,mem_le_hop 
+2ac2 d84000a0 arg param_le_sca ,temp 
+2ac3 9841fe00 ior temp ,pdata 
+2ac4 e7e08005 istore 1 ,contw 
+2ac5 2040273e call le_transmit_norx 
+2ac6 58004169 setarg mem_le_txheader 
+2ac7 1fe08c12 add pdata ,18 ,contr 
+2ac8 efe18006 ifetch 3 ,contr 
+2ac9 67e18190 store 3 ,mem_le_crcinit 
+2aca 20600000 rtn 
+
+le_adv:
+2acb 70000724 jam 36 ,mem_le_ch_mapped 
+2acc 7006a100 jam 0 ,mem_le_adv_channel_map_temp 
+2acd 20402aef call le_send_adv_protect_txbuf 
+2ace 20402ad0 call le_adv_loop 
+2acf 20202af2 branch le_send_adv_recover_txbuf 
+
+le_adv_loop:
+2ad0 4725c029 bpatchx patch29_3 ,mem_patch29 
+2ad1 6fe0c388 fetch 1 ,mem_le_adv_enable 
+2ad2 207a0000 rtn blank 
+2ad3 d8e00000 arg le_adv_interval_timer ,queue 
+2ad4 20407cef call timer_check 
+2ad5 247a0000 nrtn blank 
+2ad6 78287c00 enable swfine 
+2ad7 20402af5 call le_init_adv 
+2ad8 20402b68 call le_next_adv_channel 
+2ad9 20402afe call le_send_adv_ind 
+2ada 2436aae2 nbranch le_adv_not_match ,match 
+2adb 6fe08003 fetch 1 ,mem_le_req_rcv 
+2adc 1fe0fe01 increase 1 ,pdata 
+2add 67e08003 store 1 ,mem_le_req_rcv 
+2ade 6fe0804c fetch 1 ,mem_le_rxbuf_adv_header 
+2adf 1fe17e0f and pdata ,0x0f ,pdata 
+2ae0 c001ab2d beq scan_req ,le_send_scan_response 
+2ae1 c002ab40 beq connect_req ,le_parse_connect_req 
+
+le_adv_not_match:
+2ae2 47264029 bpatchx patch29_4 ,mem_patch29 
+2ae3 6fe086a1 fetch 1 ,mem_le_adv_channel_map_temp 
+2ae4 6848c393 fetcht 1 ,mem_le_adv_channel_map 
+2ae5 98467c00 isub temp ,null 
+2ae6 2422aad0 nbranch le_adv_loop ,zero 
+2ae7 180a7e00 random pdata 
+2ae8 d84001ff arg 0x1ff ,temp 
+2ae9 98417e00 iand temp ,pdata 
+2aea 1fe0fefa add pdata ,250 ,pdata 
+2aeb 20407c91 call delay 
+2aec d8e00000 arg le_adv_interval_timer ,queue 
+2aed 6fe14389 fetch 2 ,mem_le_adv_interval 
+2aee 20207ce1 branch timer_init 
+
+le_send_adv_protect_txbuf:
+2aef d8a006b1 arg mem_le_tx_buf_temp ,contw 
+2af0 d8c04169 arg mem_le_txheader ,contr 
+2af1 20207c8c branch memcpy48 
+
+le_send_adv_recover_txbuf:
+2af2 d8c006b1 arg mem_le_tx_buf_temp ,contr 
+2af3 d8a04169 arg mem_le_txheader ,contw 
+2af4 20207c8c branch memcpy48 
+
+le_init_adv:
+2af5 4726c029 bpatchx patch29_5 ,mem_patch29 
+2af6 7854fc00 disable master 
+
+le_adv_access:
+2af7 588e89be setarg 0x8e89be 
+2af8 1fed7e00 lshift8 pdata ,pdata 
+2af9 1fe1fed6 or_into 0xd6 ,pdata 
+2afa 98001200 iforce access 
+2afb 58555555 setarg 0x555555 
+2afc 67e18190 store 3 ,mem_le_crcinit 
+2afd 20600000 rtn 
+
+le_send_adv_ind:
+2afe 47274029 bpatchx patch29_6 ,mem_patch29 
+2aff 6fe0c38b fetch 1 ,mem_le_adv_type 
+2b00 6848c38c fetcht 1 ,mem_le_adv_own_addr_type 
+2b01 18520400 lshift4 temp ,temp 
+2b02 184b8400 lshift2 temp ,temp 
+2b03 98408400 iadd temp ,temp 
+2b04 6048c169 storet 1 ,mem_le_txheader 
+2b05 c000ab0f beq adv_direct_ind ,le_send_adv_direct_ind 
+2b06 6848c348 fetcht 1 ,mem_le_adv_data_len 
+2b07 1840fe06 add temp ,6 ,pdata 
+2b08 67e0c16a store 1 ,mem_le_txlen 
+2b09 6fe342db fetch 6 ,mem_le_lap 
+2b0a 67e3416b store 6 ,mem_le_txpayload 
+2b0b 18427200 copy temp ,loopcnt 
+2b0c d8c04349 arg mem_le_adv_data ,contr 
+2b0d 20407ccc call memcpy_fast 
+2b0e 20202b15 branch le_send_adv_transmit 
+
+le_send_adv_direct_ind:
+2b0f 5800000c setarg 12 
+2b10 67e0c16a store 1 ,mem_le_txlen 
+2b11 6fe342db fetch 6 ,mem_le_lap 
+2b12 67e3416b store 6 ,mem_le_txpayload 
+2b13 6fe34116 fetch 6 ,mem_hci_plap 
+2b14 e7e30005 istore 6 ,contw 
+
+le_send_adv_transmit:
+2b15 4727c029 bpatchx patch29_7 ,mem_patch29 
+2b16 6fe08000 fetch 1 ,mem_le_adv_transmit 
+2b17 1fe0fe01 increase 1 ,pdata 
+2b18 67e08000 store 1 ,mem_le_adv_transmit 
+2b19 db600708 arg 1800 ,stop_watch 
+2b1a 7856fc00 disable match 
+2b1b 20202729 branch le_transmit_receive_sifs_without_change_mode 
+
+le_send_scan_request:
+2b1c 4728402a bpatchx patch2a_0 ,mem_patch2a 
+2b1d 6fe0c394 fetch 1 ,mem_le_scan_type 
+2b1e c1808000 rtnne le_scan_type_active 
+2b1f 6fe08000 fetch 1 ,mem_le_adv_transmit 
+2b20 1fe0fe01 increase 1 ,pdata 
+2b21 67e08000 store 1 ,mem_le_adv_transmit 
+2b22 d8400c03 arg 0x0c03 ,temp 
+2b23 6fe0c395 fetch 1 ,mem_le_scan_own_addr_type 
+2b24 7d3a0406 nsetflag blank ,le_sender_addr_bit ,temp 
+2b25 1a227e00 copy rega ,pdata 
+2b26 7d3a0407 nsetflag blank ,le_receiver_addr_bit ,temp 
+2b27 60494169 storet 2 ,mem_le_txheader 
+2b28 6fe342db fetch 6 ,mem_le_lap 
+2b29 e7e30005 istore 6 ,contw 
+2b2a 6fe30178 fetch 6 ,mem_le_plap 
+2b2b e7e30005 istore 6 ,contw 
+2b2c 20202729 branch le_transmit_receive_sifs_without_change_mode 
+
+le_send_scan_response:
+2b2d 4728c02a bpatchx patch2a_1 ,mem_patch2a 
+2b2e 6fe30054 fetch 6 ,mem_le_rxbuf_adv_scan_req_adv_address 
+2b2f 684b42db fetcht 6 ,mem_le_lap 
+2b30 98467c00 isub temp ,null 
+2b31 24628000 nrtn zero 
+2b32 d8400004 arg scan_rsp ,temp 
+2b33 6fe0c38c fetch 1 ,mem_le_adv_own_addr_type 
+2b34 7d3a0406 nsetflag blank ,le_sender_addr_bit ,temp 
+2b35 6048c169 storet 1 ,mem_le_txheader 
+2b36 6848c368 fetcht 1 ,mem_le_scan_data_len 
+2b37 1840fe06 add temp ,6 ,pdata 
+2b38 67e0c16a store 1 ,mem_le_txlen 
+2b39 6fe342db fetch 6 ,mem_le_lap 
+2b3a 67e3416b store 6 ,mem_le_txpayload 
+2b3b d8c04369 arg mem_le_scan_data ,contr 
+2b3c 18427200 copy temp ,loopcnt 
+2b3d 20407ccc call memcpy_fast 
+2b3e 2040273e call le_transmit_norx 
+2b3f 20202ae2 branch le_adv_not_match 
+
+le_parse_connect_req:
+2b40 6fe30054 fetch 6 ,mem_le_rxbuf_adv_connect_ind_adv_address 
+2b41 684b42db fetcht 6 ,mem_le_lap 
+2b42 98467c00 isub temp ,null 
+2b43 24628000 nrtn zero 
+2b44 20402868 call le_scan_check_sender_addr_type 
+2b45 6220c2cb storer rega ,1 ,mem_le_conn_peer_addr_type 
+2b46 6fe3004e fetch 6 ,mem_le_rxbuf_adv_connect_ind_init_address 
+2b47 67e30178 store 6 ,mem_le_plap 
+2b48 6fe4005a fetch 8 ,mem_le_rxbuf_adv_connect_ind_access_address 
+2b49 67e4018c store 8 ,mem_le_access 
+2b4a 68490062 fetcht 2 ,mem_le_rxbuf_adv_connect_ind_win_offset 
+2b4b 4729402a bpatchx patch2a_2 ,mem_patch2a 
+2b4c 184b8400 lshift2 temp ,temp 
+2b4d 6fe10064 fetch 2 ,mem_le_rxbuf_adv_connect_ind_interval 
+2b4e 1febfe00 lshift2 pdata ,pdata 
+2b4f 67e1016a store 2 ,mem_le_tsniff 
+2b50 67e2016c store 4 ,mem_le_anchor 
+2b51 98467e00 isub temp ,pdata 
+2b52 1fe0d1fe add pdata ,-2 ,clke_bt 
+2b53 6fe48066 fetch 9 ,mem_le_rxbuf_adv_connect_ind_latency 
+2b54 67e48194 store 9 ,mem_le_slave_latency 
+2b55 6fe0806f fetch 1 ,mem_le_rxbuf_adv_connect_ind_hop_and_sca 
+2b56 1fe1041f and pdata ,0x1f ,temp 
+2b57 60488181 storet 1 ,mem_le_hop 
+2b58 1ff18400 rshift4 pdata ,temp 
+2b59 18430400 rshift temp ,temp 
+2b5a 604881b8 storet 1 ,mem_le_peer_sca 
+2b5b da200168 arg mem_le_state ,rega 
+2b5c 20402938 call le_receive_window_size 
+2b5d da200168 arg mem_le_state ,rega 
+2b5e 20402624 call le_calc_channel_map 
+2b5f 20402525 call le_init_slave 
+2b60 20402056 call context_new 
+2b61 24628000 nrtn zero 
+2b62 4729c02a bpatchx patch2a_3 ,mem_patch2a 
+2b63 204020f7 call calc_clke_offset 
+2b64 20402ea7 call le_l2cap_reset_signaling_identifier 
+2b65 70066f14 jam bt_evt_le_connected ,mem_fifo_temp 
+2b66 2040782b call ui_ipc_send_event 
+2b67 20202041 branch context_save 
+
+le_next_adv_channel:
+2b68 472a402a bpatchx patch2a_4 ,mem_patch2a 
+2b69 6fe08007 fetch 1 ,mem_le_ch_mapped 
+2b6a c012ab6e beq 37 ,le_next_adv_channel_curr_channel_37 
+2b6b c0132b74 beq 38 ,le_next_adv_channel_curr_channel_38 
+2b6c c013ab7a beq 39 ,le_next_adv_channel_curr_channel_39 
+2b6d 20202b7a branch le_next_adv_channel_curr_channel_39 
+
+le_next_adv_channel_curr_channel_37:
+2b6e 6848c393 fetcht 1 ,mem_le_adv_channel_map 
+2b6f 284ffe01 isolate1 bit_adv_channel_map_38 ,temp 
+2b70 2020ab85 branch set_le_next_adv_channel_38 ,true 
+2b71 284ffe02 isolate1 bit_adv_channel_map_39 ,temp 
+2b72 2020ab8a branch set_le_next_adv_channel_39 ,true 
+2b73 20202b80 branch set_le_next_adv_channel_37 
+
+le_next_adv_channel_curr_channel_38:
+2b74 6848c393 fetcht 1 ,mem_le_adv_channel_map 
+2b75 284ffe02 isolate1 bit_adv_channel_map_39 ,temp 
+2b76 2020ab8a branch set_le_next_adv_channel_39 ,true 
+2b77 284ffe00 isolate1 bit_adv_channel_map_37 ,temp 
+2b78 2020ab80 branch set_le_next_adv_channel_37 ,true 
+2b79 20202b85 branch set_le_next_adv_channel_38 
+
+le_next_adv_channel_curr_channel_39:
+2b7a 6848c393 fetcht 1 ,mem_le_adv_channel_map 
+2b7b 284ffe00 isolate1 bit_adv_channel_map_37 ,temp 
+2b7c 2020ab80 branch set_le_next_adv_channel_37 ,true 
+2b7d 284ffe01 isolate1 bit_adv_channel_map_38 ,temp 
+2b7e 2020ab85 branch set_le_next_adv_channel_38 ,true 
+2b7f 20202b8a branch set_le_next_adv_channel_39 
+
+set_le_next_adv_channel_37:
+2b80 70000725 jam 37 ,mem_le_ch_mapped 
+2b81 6fe086a1 fetch 1 ,mem_le_adv_channel_map_temp 
+2b82 79207e00 set1 bit_adv_channel_map_37 ,pdata 
+2b83 67e086a1 store 1 ,mem_le_adv_channel_map_temp 
+2b84 20600000 rtn 
+
+set_le_next_adv_channel_38:
+2b85 70000726 jam 38 ,mem_le_ch_mapped 
+2b86 6fe086a1 fetch 1 ,mem_le_adv_channel_map_temp 
+2b87 79207e01 set1 bit_adv_channel_map_38 ,pdata 
+2b88 67e086a1 store 1 ,mem_le_adv_channel_map_temp 
+2b89 20600000 rtn 
+
+set_le_next_adv_channel_39:
+2b8a 70000727 jam 39 ,mem_le_ch_mapped 
+2b8b 6fe086a1 fetch 1 ,mem_le_adv_channel_map_temp 
+2b8c 79207e02 set1 bit_adv_channel_map_39 ,pdata 
+2b8d 67e086a1 store 1 ,mem_le_adv_channel_map_temp 
+2b8e 20600000 rtn 
+
+le_parse_att:
+2b8f 18c22200 copy contr ,rega 
+2b90 6fe0c3cb fetch 1 ,mem_device_option 
+2b91 c00366d5 beq dvc_op_shutter_dy ,shutter_dy_le_parse_att 
+2b92 c007d03d beq dvc_op_keyboard ,keyboard_le_att_auto_reco_process 
+2b93 1a220c00 copy rega ,contr 
+2b94 efe18006 ifetch 3 ,contr 
+2b95 67e1c397 store 3 ,mem_le_att_opcode 
+
+le_parse_att2:
+2b96 c0012bab beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
+2b97 c001abb0 beq attop_exchange_mtu_response ,le_parse_att_exchange_mtu_response 
+2b98 c0022bb3 beq attop_find_information_request ,le_parse_att_find_information_request 
+2b99 c0032bf7 beq attop_find_by_type_value_request ,le_parse_att_find_by_type_value_request 
+2b9a c0042c44 beq attop_read_by_type_request ,le_parse_att_read_by_type_request 
+2b9b c0052d19 beq attop_read_request ,le_parse_att_read_request 
+2b9c c0062d4c beq attop_read_blob_request ,le_parse_att_read_blob_request 
+2b9d c0082d63 beq attop_read_by_group_type_request ,le_parse_att_read_by_group_type_request 
+2b9e c0092da8 beq attop_write_request ,le_parse_att_write_request 
+2b9f c00b2dce beq attop_prepare_write_request ,le_parse_att_prepare_write_request 
+2ba0 c00c2de1 beq attop_execute_write_request ,le_parse_att_execute_write_request 
+2ba1 c00f2de6 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
+2ba2 c0292dea beq attop_write_command ,le_parse_att_write_command 
+2ba3 20600000 rtn 
+
+le_send_att_exchange_mtu_requset:
+2ba4 18002203 force 3 ,rega 
+2ba5 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2ba6 58000002 setarg attop_exchange_mtu_request 
+
+le_send_att_exchange_mtu_common:
+2ba7 e7e08005 istore 1 ,contw 
+2ba8 6fe142e1 fetch 2 ,mem_le_local_mtu 
+2ba9 e7e10005 istore 2 ,contw 
+2baa 20600000 rtn 
+
+le_parse_att_exchange_mtu_request:
+2bab 20402bb0 call le_parse_att_exchange_mtu_response 
+
+le_send_att_exchange_mtu_response:
+2bac 18002203 force 3 ,rega 
+2bad 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2bae 58000003 setarg attop_exchange_mtu_response 
+2baf 20202ba7 branch le_send_att_exchange_mtu_common 
+
+le_parse_att_exchange_mtu_response:
+2bb0 1fecfe00 rshift8 pdata ,pdata 
+2bb1 67e142e3 store 2 ,mem_le_remote_mtu 
+2bb2 20600000 rtn 
+
+le_parse_att_find_information_request:
+2bb3 20402e41 call le_get_search_handle_start_end_common 
+2bb4 20407dba call enable_user 
+2bb5 20202bc3 branch le_send_att_find_information_response 
+
+le_att_handle_inrange:
+2bb6 efe10006 ifetch 2 ,contr 
+2bb7 1fe17eff and_into 0xff ,pdata 
+2bb8 207a0000 rtn blank 
+2bb9 9a467c00 isub regb ,null 
+2bba 20628000 rtn zero 
+2bbb 24610000 nrtn positive 
+2bbc 9a667c00 isub regc ,null 
+2bbd 20628000 rtn zero 
+2bbe 20212bc1 branch le_att_handle_blank ,positive 
+2bbf 18007c01 force 1 ,null 
+2bc0 20600000 rtn 
+
+le_att_handle_blank:
+2bc1 18007e00 force 0 ,pdata 
+2bc2 20600000 rtn 
+
+le_send_att_find_information_response:
+2bc3 d9600003 arg 3 ,timeup 
+2bc4 20402cc7 call le_init_attlist_search 
+
+le_send_att_find_information_res_loop:
+2bc5 20402bb6 call le_att_handle_inrange 
+2bc6 203a2bf5 branch le_send_att_find_information_res_end ,blank 
+2bc7 24212bf3 nbranch le_send_att_find_information_res_next ,positive 
+2bc8 18c08dfe increase -2 ,contr 
+2bc9 20407c6d call store_contr 
+2bca 20407c64 call get_contw 
+2bcb 24342be3 nbranch le_send_att_find_information_res_store_info2 ,user 
+2bcc 20407c51 call push_stack_rega_b_c 
+2bcd 61620680 storer timeup ,4 ,mem_timeup 
+2bce 1800221e force 30 ,rega 
+2bcf 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2bd0 69620680 fetchr timeup ,4 ,mem_timeup 
+2bd1 20407c60 call pop_stack_rega_b_c 
+2bd2 20407dbc call disable_user 
+2bd3 58000005 setarg attop_find_information_response 
+2bd4 e7e08005 istore 1 ,contw 
+2bd5 20407c67 call get_contr 
+2bd6 efe10006 ifetch 2 ,contr 
+2bd7 ea208006 ifetchr rega ,1 ,contr 
+2bd8 1a267c10 sub rega ,16 ,null 
+2bd9 2022abdf branch le_send_att_find_information_res_uuid128 ,zero 
+2bda 1a267c02 sub rega ,2 ,null 
+2bdb 2422ae03 nbranch le_send_att_error_response_notfound ,zero 
+
+le_send_att_find_information_res_uuid16:
+2bdc 58000001 setarg uuid_size_16bit 
+2bdd e7e08005 istore 1 ,contw 
+2bde 20202be8 branch le_send_att_find_information_res_store_info 
+
+le_send_att_find_information_res_uuid128:
+2bdf 58000002 setarg uuid_size_128bit 
+2be0 e7e08005 istore 1 ,contw 
+2be1 d9600001 arg 1 ,timeup 
+2be2 20202be8 branch le_send_att_find_information_res_store_info 
+
+le_send_att_find_information_res_store_info2:
+2be3 20407c67 call get_contr 
+2be4 efe10006 ifetch 2 ,contr 
+2be5 efe08006 ifetch 1 ,contr 
+2be6 9a267c00 isub rega ,null 
+2be7 2422abf5 nbranch le_send_att_find_information_res_end ,zero 
+
+le_send_att_find_information_res_store_info:
+2be8 20407c67 call get_contr 
+2be9 efe10006 ifetch 2 ,contr 
+2bea 1fe17eff and_into 0xff ,pdata 
+2beb e7e10005 istore 2 ,contw 
+2bec ef208006 ifetchr loopcnt ,1 ,contr 
+2bed 20407cda call memcpy 
+2bee 20407c6a call store_contw 
+2bef 196097ff increase -1 ,timeup 
+2bf0 2022abf5 branch le_send_att_find_information_res_end ,zero 
+
+le_send_att_find_information_res_cont:
+2bf1 20402cdd call le_att_contr_add_len 
+2bf2 20202bc5 branch le_send_att_find_information_res_loop 
+
+le_send_att_find_information_res_next:
+2bf3 20402cdd call le_att_contr_add_len 
+2bf4 20202bf1 branch le_send_att_find_information_res_cont 
+
+le_send_att_find_information_res_end:
+2bf5 20342e03 branch le_send_att_error_response_notfound ,user 
+2bf6 20202e34 branch le_send_auto_len_by_mem 
+
+le_parse_att_find_by_type_value_request:
+2bf7 20402e41 call le_get_search_handle_start_end_common 
+2bf8 efe10006 ifetch 2 ,contr 
+2bf9 67e1439e store 2 ,mem_le_search_uuid 
+2bfa 20407c6d call store_contr 
+2bfb d8a006b5 arg mem_le_search_att_type_length ,contw 
+2bfc 6fe14335 fetch 2 ,mem_le_l2cap_size 
+2bfd 1fe0fff9 increase -7 ,pdata 
+2bfe 20402e4f call le_get_search_common2 
+2bff 20202c0a branch le_send_att_find_by_type_value_response 
+
+le_start_end_handle_check_1:
+2c00 78547c00 disable user 
+2c01 684906b1 fetcht 2 ,mem_le_search_handle_start 
+2c02 6fe106b3 fetch 2 ,mem_le_search_handle_end 
+2c03 98467c00 isub temp ,null 
+2c04 24212c07 nbranch le_start_end_handle_check_1_fail ,positive 
+2c05 18427e00 deposit temp 
+2c06 c1800000 rtnne 0 
+
+le_start_end_handle_check_1_fail:
+2c07 78347c00 enable user 
+2c08 7001b901 jam att_err_invalid_handle ,mem_le_err_code 
+2c09 20202e05 branch le_send_att_error_response 
+
+le_send_att_find_by_type_value_response:
+2c0a 20402c00 call le_start_end_handle_check_1 
+2c0b 20740000 rtn user 
+2c0c 6849439e fetcht 2 ,mem_le_search_uuid 
+2c0d 58002800 setarg uuid_gatt_primary_service 
+2c0e 98467c00 isub temp ,null 
+2c0f 2022ac11 branch le_send_att_find_by_type_value_res_primary ,zero 
+2c10 20202e03 branch le_send_att_error_response_notfound 
+
+le_send_att_find_by_type_value_res_primary:
+2c11 70439a00 jam le_find_by_type_val_res_not_found ,mem_le_search_res 
+2c12 684906b1 fetcht 2 ,mem_le_search_handle_start 
+2c13 60490678 storet 2 ,mem_temp 
+2c14 20402d04 call le_att_get_handle_info 
+2c15 243a2e03 nbranch le_send_att_error_response_notfound ,blank 
+
+le_send_att_find_primary_search_loop:
+2c16 68490678 fetcht 2 ,mem_temp 
+2c17 20402d04 call le_att_get_handle_info 
+2c18 243a2c2a nbranch le_send_att_error_response_notfound2 ,blank 
+2c19 18c22200 copy contr ,rega 
+2c1a 6fe086c6 fetch 1 ,mem_le_curr_att_len 
+2c1b 1fe27200 copy pdata ,loopcnt 
+2c1c 684886b5 fetcht 1 ,mem_le_search_att_type_length 
+2c1d 98467c00 isub temp ,null 
+2c1e 2422ac26 nbranch le_send_att_find_primary_search_loop1 ,zero 
+2c1f da4006b6 arg mem_le_search_att_type ,regb 
+2c20 20407d64 call string_compare 
+2c21 2022ac2d branch le_send_att_find_primary_search_end_start_handle_found ,zero 
+2c22 6fe106ce fetch 2 ,mem_le_cur_uuid 
+2c23 6849439e fetcht 2 ,mem_le_search_uuid 
+2c24 98467c00 isub temp ,null 
+2c25 2022ac35 branch le_send_att_find_primary_search_end_ending_handle_found ,zero 
+
+le_send_att_find_primary_search_loop1:
+2c26 6fe10678 fetch 2 ,mem_temp 
+2c27 1fe0fe01 increase 1 ,pdata 
+2c28 67e10678 store 2 ,mem_temp 
+2c29 20202c16 branch le_send_att_find_primary_search_loop 
+
+le_send_att_error_response_notfound2:
+2c2a 6fe0c39a fetch 1 ,mem_le_search_res 
+2c2b c000ac35 beq le_find_by_type_val_res_found_starting_handle ,le_send_att_find_primary_search_end_ending_handle_found 
+2c2c 20202e03 branch le_send_att_error_response_notfound 
+
+le_send_att_find_primary_search_end_start_handle_found:
+2c2d 6fe106ce fetch 2 ,mem_le_cur_uuid 
+2c2e 6849439e fetcht 2 ,mem_le_search_uuid 
+2c2f 98467c00 isub temp ,null 
+2c30 2422ac26 nbranch le_send_att_find_primary_search_loop1 ,zero 
+2c31 70439a01 jam le_find_by_type_val_res_found_starting_handle ,mem_le_search_res 
+2c32 68490678 fetcht 2 ,mem_temp 
+2c33 604906c9 storet 2 ,mem_le_cur_handle_start 
+2c34 20202c26 branch le_send_att_find_primary_search_loop1 
+
+le_send_att_find_primary_search_end_ending_handle_found:
+2c35 6fe0c39a fetch 1 ,mem_le_search_res 
+2c36 c0002c26 beq le_find_by_type_val_res_not_found ,le_send_att_find_primary_search_loop1 
+2c37 70439a02 jam le_find_by_type_val_res_found_ending_handle ,mem_le_search_res 
+2c38 68490678 fetcht 2 ,mem_temp 
+2c39 184085ff increase -1 ,temp 
+2c3a 604906cb storet 2 ,mem_le_cur_handle_end 
+
+le_send_att_find_primary_search_end:
+2c3b da200005 arg 5 ,rega 
+2c3c 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2c3d 58000007 setarg attop_find_by_type_value_response 
+2c3e e7e08005 istore 1 ,contw 
+2c3f 6fe106c9 fetch 2 ,mem_le_cur_handle_start 
+2c40 e7e10005 istore 2 ,contw 
+2c41 6fe106cb fetch 2 ,mem_le_cur_handle_end 
+2c42 e7e10005 istore 2 ,contw 
+2c43 20600000 rtn 
+
+le_parse_att_read_by_type_request:
+2c44 20402e41 call le_get_search_handle_start_end_common 
+2c45 20402e4a call le_get_search_att_type 
+2c46 20202c47 branch le_send_att_read_by_type_response 
+
+le_send_att_read_by_type_response:
+2c47 684906b1 fetcht 2 ,mem_le_search_handle_start 
+2c48 60490678 storet 2 ,mem_temp 
+2c49 20402cc7 call le_init_attlist_search 
+2c4a 20402cd2 call le_att_get_handle_ptr2 
+2c4b 18c08dfe increase -2 ,contr 
+2c4c 18c27e00 copy contr ,pdata 
+2c4d 67e106c7 store 2 ,mem_le_cur_attlist_start_ptr 
+2c4e 684906b6 fetcht 2 ,mem_le_search_att_type 
+2c4f 58002a00 setarg uuid_chrctr_device_name 
+2c50 98467c00 isub temp ,null 
+2c51 2022acb2 branch le_send_att_read_by_type_res_device_name ,zero 
+2c52 58002803 setarg uuid_gatt_characteristic 
+2c53 98467c00 isub temp ,null 
+2c54 2422ac9c nbranch le_send_att_read_by_type_res_not_characteristic ,zero 
+2c55 d9600002 arg 2 ,timeup 
+
+le_send_att_read_by_type_response_loop:
+2c56 20402e17 call le_att_check_handle_end 
+2c57 24212c79 nbranch le_send_att_read_by_type_response_end ,positive 
+2c58 68490678 fetcht 2 ,mem_temp 
+2c59 20402d02 call le_att_get_handle_info_from_ptr 
+2c5a 243a2c79 nbranch le_send_att_read_by_type_response_end ,blank 
+2c5b 20402e1b call le_att_same_type 
+2c5c 2422ac77 nbranch le_send_att_read_by_type_response_next_handle ,zero 
+2c5d 24342c7b nbranch le_send_att_read_by_type_res_found_next ,user 
+2c5e 78547c00 disable user 
+2c5f 20402e46 call le_get_search_max_mtu_data 
+2c60 1fe22200 copy pdata ,rega 
+2c61 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2c62 58000009 setarg attop_read_by_type_response 
+2c63 e7e08005 istore 1 ,contw 
+2c64 18a26000 copy contw ,alarm 
+2c65 18a08a01 increase 1 ,contw 
+2c66 20402c89 call le_send_att_read_by_type_write_properties 
+2c67 20402e13 call le_att_next_handle 
+2c68 20402d02 call le_att_get_handle_info_from_ptr 
+2c69 20402c90 call le_send_att_read_by_type_write_uuid 
+2c6a 6fe086cd fetch 1 ,mem_le_cur_uuid_length 
+2c6b 1fe0a205 add pdata ,5 ,rega 
+2c6c e2208030 istorer rega ,1 ,alarm 
+2c6d 1a267c07 sub rega ,7 ,null 
+2c6e 2442fdbe ncall enable_user2 ,zero 
+2c6f 2042fdc0 call disable_user2 ,zero 
+2c70 20402e46 call le_get_search_max_mtu_data 
+2c71 1fe0fffe increase -2 ,pdata 
+2c72 9a26fc00 idiv rega 
+2c73 20407d62 call wait_div_end 
+2c74 18079600 quotient timeup 
+2c75 196097ff increase -1 ,timeup 
+2c76 2022ac79 branch le_send_att_read_by_type_response_end ,zero 
+
+le_send_att_read_by_type_response_next_handle:
+2c77 20402e13 call le_att_next_handle 
+2c78 20202c56 branch le_send_att_read_by_type_response_loop 
+
+le_send_att_read_by_type_response_end:
+2c79 20342e03 branch le_send_att_error_response_notfound ,user 
+2c7a 20202e34 branch le_send_auto_len_by_mem 
+
+le_send_att_read_by_type_res_found_next:
+2c7b 20402e24 call le_store_att_record 
+2c7c 20402e13 call le_att_next_handle 
+2c7d 20402d02 call le_att_get_handle_info_from_ptr 
+2c7e 20402d96 call le_send_att_read_by_type_res_check_pair_length_type 
+2c7f 243a2c79 nbranch le_send_att_read_by_type_response_end ,blank 
+2c80 20407c64 call get_contw 
+2c81 6fe10678 fetch 2 ,mem_temp 
+2c82 1fe0ffff increase -1 ,pdata 
+2c83 e7e10005 istore 2 ,contw 
+2c84 20402e30 call le_write_att_record_common 
+2c85 20402c90 call le_send_att_read_by_type_write_uuid 
+2c86 196097ff increase -1 ,timeup 
+2c87 2022ac79 branch le_send_att_read_by_type_response_end ,zero 
+2c88 20202c77 branch le_send_att_read_by_type_response_next_handle 
+
+le_send_att_read_by_type_write_properties:
+2c89 6fe10678 fetch 2 ,mem_temp 
+2c8a e7e10005 istore 2 ,contw 
+2c8b 6fe086c6 fetch 1 ,mem_le_curr_att_len 
+2c8c 1fe27200 copy pdata ,loopcnt 
+2c8d 20407c67 call get_contr 
+2c8e 20407ccc call memcpy_fast 
+2c8f 20207c6a branch store_contw 
+
+le_send_att_read_by_type_write_uuid:
+2c90 20407c64 call get_contw 
+2c91 6fe10678 fetch 2 ,mem_temp 
+2c92 e7e10005 istore 2 ,contw 
+2c93 20407c6a call store_contw 
+2c94 6fe086cd fetch 1 ,mem_le_cur_uuid_length 
+2c95 1fe27200 copy pdata ,loopcnt 
+2c96 20407c64 call get_contw 
+2c97 20407c67 call get_contr 
+2c98 9f260c00 isub loopcnt ,contr 
+2c99 18c08dff increase -1 ,contr 
+2c9a 20407ccc call memcpy_fast 
+2c9b 20207c6a branch store_contw 
+
+le_send_att_read_by_type_res_not_characteristic:
+2c9c 472ac02a bpatchx patch2a_5 ,mem_patch2a 
+2c9d 20402ce0 call le_att_get_uuid_ptr 
+2c9e 203a2e03 branch le_send_att_error_response_notfound ,blank 
+2c9f 18c22600 copy contr ,regc 
+2ca0 20402e46 call le_get_search_max_mtu_data 
+2ca1 1a620c00 copy regc ,contr 
+2ca2 e8408006 ifetcht 1 ,contr 
+2ca3 18408404 increase 4 ,temp 
+2ca4 20407db0 call not_greater_than 
+2ca5 1fe22600 copy pdata ,regc 
+2ca6 1fe22200 copy pdata ,rega 
+2ca7 20407c6d call store_contr 
+2ca8 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2ca9 58000009 setarg attop_read_by_type_response 
+2caa e7e08005 istore 1 ,contw 
+2cab 1a60fffe add regc ,-2 ,pdata 
+2cac 1fe0f3fe add pdata ,-2 ,loopcnt 
+2cad e7e08005 istore 1 ,contw 
+2cae 6fe106de fetch 2 ,mem_le_cur_handle 
+2caf e7e10005 istore 2 ,contw 
+2cb0 20407c67 call get_contr 
+2cb1 20207ccc branch memcpy_fast 
+
+le_send_att_read_by_type_res_device_name:
+2cb2 20402ce0 call le_att_get_uuid_ptr 
+2cb3 203a2e03 branch le_send_att_error_response_notfound ,blank 
+2cb4 18c08dfb increase -5 ,contr 
+2cb5 efe10006 ifetch 2 ,contr 
+2cb6 67e10678 store 2 ,mem_temp 
+2cb7 20402e46 call le_get_search_max_mtu_data 
+2cb8 6848c26b fetcht 1 ,mem_le_name_len 
+2cb9 18408404 increase 4 ,temp 
+2cba 20407db0 call not_greater_than 
+2cbb 1fe22600 copy pdata ,regc 
+2cbc 1fe22200 copy pdata ,rega 
+2cbd 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2cbe 58000009 setarg attop_read_by_type_response 
+2cbf e7e08005 istore 1 ,contw 
+2cc0 1a60fffe add regc ,-2 ,pdata 
+2cc1 1fe0f3fe add pdata ,-2 ,loopcnt 
+2cc2 e7e08005 istore 1 ,contw 
+2cc3 6fe10678 fetch 2 ,mem_temp 
+2cc4 e7e10005 istore 2 ,contw 
+2cc5 d8c0426c arg mem_le_name ,contr 
+2cc6 20207ccc branch memcpy_fast 
+
+le_init_attlist_search:
+2cc7 472b402a bpatchx patch2a_6 ,mem_patch2a 
+2cc8 6fe106b1 fetch 2 ,mem_le_search_handle_start 
+2cc9 98002400 iforce regb 
+2cca 6fe106b3 fetch 2 ,mem_le_search_handle_end 
+2ccb 98002600 iforce regc 
+2ccc 6fe142f7 fetch 2 ,mem_ui_le_uuid_table 
+2ccd 98000c00 iforce contr 
+2cce 20207dba branch enable_user 
+
+le_att_get_handle_ptr:
+2ccf 20402cd2 call le_att_get_handle_ptr2 
+2cd0 2022acdd branch le_att_get_handle_ptr_found ,zero 
+2cd1 20600000 rtn 
+
+le_att_get_handle_ptr2:
+2cd2 472bc02a bpatchx patch2a_7 ,mem_patch2a 
+2cd3 6fe142f7 fetch 2 ,mem_ui_le_uuid_table 
+2cd4 98000c00 iforce contr 
+
+le_att_get_handle_loop1:
+2cd5 efe10006 ifetch 2 ,contr 
+2cd6 1fe17eff and_into 0xff ,pdata 
+2cd7 207a0000 rtn blank 
+2cd8 98467c00 isub temp ,null 
+2cd9 20628000 rtn zero 
+2cda 20402cdd call le_att_contr_add_len 
+2cdb 20402cdd call le_att_contr_add_len 
+2cdc 20202cd5 branch le_att_get_handle_loop1 
+
+le_att_get_handle_ptr_found:
+
+le_att_contr_add_len:
+2cdd efe08006 ifetch 1 ,contr 
+2cde 98c08c00 iadd contr ,contr 
+2cdf 20600000 rtn 
+
+le_att_get_uuid_ptr:
+2ce0 472c402b bpatchx patch2b_0 ,mem_patch2b 
+2ce1 6fe142f7 fetch 2 ,mem_ui_le_uuid_table 
+2ce2 98000c00 iforce contr 
+
+le_att_get_uuid_loop:
+2ce3 efe10006 ifetch 2 ,contr 
+2ce4 1fe17eff and_into 0xff ,pdata 
+2ce5 207a0000 rtn blank 
+2ce6 67e106de store 2 ,mem_le_cur_handle 
+2ce7 efe08006 ifetch 1 ,contr 
+2ce8 18c20a00 copy contr ,contw 
+2ce9 98c08c00 iadd contr ,contr 
+2cea 684886b5 fetcht 1 ,mem_le_search_att_type_length 
+2ceb 98467c00 isub temp ,null 
+2cec 2422acf3 nbranch le_att_get_uuid_ptr_next ,zero 
+2ced 1fe27200 copy pdata ,loopcnt 
+2cee 18a22400 copy contw ,regb 
+2cef da2006b6 arg mem_le_search_att_type ,rega 
+2cf0 20407d64 call string_compare 
+2cf1 20628000 rtn zero 
+2cf2 6fe086b5 fetch 1 ,mem_le_search_att_type_length 
+
+le_att_get_uuid_ptr_next:
+2cf3 98a08c00 iadd contw ,contr 
+2cf4 20402cdd call le_att_contr_add_len 
+2cf5 20202ce3 branch le_att_get_uuid_loop 
+
+le_att_get_last_handle:
+2cf6 d8400001 arg 0x01 ,temp 
+2cf7 6fe142f7 fetch 2 ,mem_ui_le_uuid_table 
+2cf8 98000c00 iforce contr 
+2cf9 18c20a00 copy contr ,contw 
+
+le_att_get_last_handle_loop:
+2cfa efe10006 ifetch 2 ,contr 
+2cfb 1fe17eff and_into 0xff ,pdata 
+2cfc 207a0000 rtn blank 
+2cfd 1fe08401 add pdata ,1 ,temp 
+2cfe 20402cdd call le_att_contr_add_len 
+2cff 20402cdd call le_att_contr_add_len 
+2d00 18c20a00 copy contr ,contw 
+2d01 20202cfa branch le_att_get_last_handle_loop 
+
+le_att_get_handle_info_from_ptr:
+2d02 6fe106c7 fetch 2 ,mem_le_cur_attlist_start_ptr 
+2d03 20202d06 branch le_att_get_handle_info_fast 
+
+le_att_get_handle_info:
+2d04 472cc02b bpatchx patch2b_1 ,mem_patch2b 
+2d05 6fe142f7 fetch 2 ,mem_ui_le_uuid_table 
+
+le_att_get_handle_info_fast:
+2d06 98000c00 iforce contr 
+
+le_att_get_handle_loop:
+2d07 efe10006 ifetch 2 ,contr 
+2d08 1fe17eff and_into 0xff ,pdata 
+2d09 203a2d0f branch le_att_unfind_handle ,blank 
+2d0a 98467c00 isub temp ,null 
+2d0b 2022ad10 branch le_att_finded_handle ,zero 
+2d0c 20402cdd call le_att_contr_add_len 
+2d0d 20402cdd call le_att_contr_add_len 
+2d0e 20202d07 branch le_att_get_handle_loop 
+
+le_att_unfind_handle:
+2d0f 20207dc8 branch disable_blank 
+
+le_att_finded_handle:
+2d10 efe08006 ifetch 1 ,contr 
+2d11 67e086cd store 1 ,mem_le_cur_uuid_length 
+2d12 1fe27200 copy pdata ,loopcnt 
+2d13 d8a006ce arg mem_le_cur_uuid ,contw 
+2d14 20407ccc call memcpy_fast 
+2d15 efe08006 ifetch 1 ,contr 
+2d16 67e086c6 store 1 ,mem_le_curr_att_len 
+2d17 20407c6d call store_contr 
+2d18 20207dca branch enable_blank 
+
+le_parse_att_read_request:
+2d19 20402dc7 call le_check_encrypt_state 
+2d1a 68494398 fetcht 2 ,mem_le_att_handle 
+2d1b 6fe0c321 fetch 1 ,mem_le_configuration 
+2d1c c281ad42 bbit1 bit_ble_read_auth ,le_send_att_read_response_check_auth 
+
+le_send_att_read_response:
+2d1d 20402cd2 call le_att_get_handle_ptr2 
+2d1e 2422ae03 nbranch le_send_att_error_response_notfound ,zero 
+2d1f 20542d48 call le_send_att_read_response_check_handle ,user 
+2d20 20740000 rtn user 
+2d21 20402cdd call le_att_get_handle_ptr_found 
+2d22 18c08dfe increase -2 ,contr 
+2d23 efe10006 ifetch 2 ,contr 
+2d24 d8402a00 arg uuid_chrctr_device_name ,temp 
+2d25 98467c00 isub temp ,null 
+2d26 2022ad36 branch le_send_device_name ,zero 
+2d27 18c22600 copy contr ,regc 
+2d28 20402e46 call le_get_search_max_mtu_data 
+2d29 1a620c00 copy regc ,contr 
+2d2a e8408006 ifetcht 1 ,contr 
+2d2b 18408401 increase 1 ,temp 
+2d2c 20407db0 call not_greater_than 
+
+le_send_att_read_response_less:
+2d2d 1fe22600 copy pdata ,regc 
+2d2e 1fe22200 copy pdata ,rega 
+2d2f 20407c6d call store_contr 
+2d30 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2d31 5800000b setarg attop_read_response 
+2d32 e7e08005 istore 1 ,contw 
+2d33 1a60f3ff add regc ,-1 ,loopcnt 
+2d34 20407c67 call get_contr 
+2d35 20207cda branch memcpy 
+
+le_send_device_name:
+2d36 20402e46 call le_get_search_max_mtu_data 
+2d37 6848c26b fetcht 1 ,mem_le_name_len 
+2d38 18408401 increase 1 ,temp 
+2d39 20407db0 call not_greater_than 
+2d3a 1fe22600 copy pdata ,regc 
+2d3b 1fe22200 copy pdata ,rega 
+2d3c 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2d3d 5800000b setarg attop_read_response 
+2d3e e7e08005 istore 1 ,contw 
+2d3f 1a60f3ff add regc ,-1 ,loopcnt 
+2d40 d8c0426c arg mem_le_name ,contr 
+2d41 20207cda branch memcpy 
+
+le_send_att_read_response_check_auth:
+2d42 6fe14332 fetch 2 ,mem_le_pairing_handle 
+2d43 98467c00 isub temp ,null 
+2d44 2422ad1d nbranch le_send_att_read_response ,zero 
+2d45 24342d1d nbranch le_send_att_read_response ,user 
+
+le_send_att_read_response_error_insufficient_auth:
+2d46 7001b905 jam att_err_insufficient_authentication ,mem_le_err_code 
+2d47 20202e05 branch le_send_att_error_response 
+
+le_send_att_read_response_check_handle:
+2d48 18c08dfe increase -2 ,contr 
+2d49 efe10006 ifetch 2 ,contr 
+2d4a c2872d46 bbit1 bit_of_att_handle_read_authenticated ,le_send_att_read_response_error_insufficient_auth 
+2d4b 20207dbc branch disable_user 
+
+le_parse_att_read_blob_request:
+2d4c efe10006 ifetch 2 ,contr 
+2d4d 67e106b5 store 2 ,mem_le_att_offset 
+2d4e 98002200 iforce rega 
+2d4f 68494398 fetcht 2 ,mem_le_att_handle 
+
+le_send_att_read_blob_response:
+2d50 20402ccf call le_att_get_handle_ptr 
+2d51 203a2e03 branch le_send_att_error_response_notfound ,blank 
+2d52 efe08006 ifetch 1 ,contr 
+2d53 9a267200 isub rega ,loopcnt 
+2d54 24212e03 nbranch le_send_att_error_response_notfound ,positive 
+2d55 20407c6d call store_contr 
+2d56 20402e46 call le_get_search_max_mtu_data 
+2d57 1f208401 add loopcnt ,1 ,temp 
+2d58 20407db0 call not_greater_than 
+
+le_send_att_read_blob_response_less:
+2d59 1fe22200 copy pdata ,rega 
+2d5a 1fe22600 copy pdata ,regc 
+2d5b 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2d5c 5800000d setarg attop_read_blob_response 
+2d5d e7e08005 istore 1 ,contw 
+2d5e 1a60f3ff add regc ,-1 ,loopcnt 
+2d5f 684906b5 fetcht 2 ,mem_le_att_offset 
+2d60 20407c67 call get_contr 
+2d61 98408c00 iadd temp ,contr 
+2d62 20207ccc branch memcpy_fast 
+
+le_parse_att_read_by_group_type_request:
+2d63 20402e41 call le_get_search_handle_start_end_common 
+2d64 20402e4a call le_get_search_att_type 
+2d65 20202d66 branch le_send_att_read_by_group_type_response 
+
+le_send_att_read_by_group_type_response:
+2d66 d9600002 arg 2 ,timeup 
+2d67 684906b1 fetcht 2 ,mem_le_search_handle_start 
+2d68 60490678 storet 2 ,mem_temp 
+2d69 20402cd2 call le_att_get_handle_ptr2 
+2d6a 18c08dfe increase -2 ,contr 
+2d6b 18c27e00 copy contr ,pdata 
+2d6c 67e106c7 store 2 ,mem_le_cur_attlist_start_ptr 
+
+le_send_att_read_by_group_type_response_loop:
+2d6d 20402e17 call le_att_check_handle_end 
+2d6e 24212d9e nbranch le_send_att_read_by_group_type_end0 ,positive 
+2d6f 68490678 fetcht 2 ,mem_temp 
+2d70 20402d02 call le_att_get_handle_info_from_ptr 
+2d71 243a2da1 nbranch le_send_att_read_by_group_type_end1 ,blank 
+2d72 20402e1b call le_att_same_type 
+2d73 2422ad94 nbranch le_send_att_read_by_group_type_next_handle ,zero 
+2d74 19627e00 copy timeup ,pdata 
+2d75 c0002da1 beq 0 ,le_send_att_read_by_group_type_end1 
+2d76 24342d8a nbranch le_send_att_read_by_group_type_store_write_record ,user 
+2d77 78547c00 disable user 
+2d78 20402e46 call le_get_search_max_mtu_data 
+2d79 1fe22200 copy pdata ,rega 
+2d7a 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2d7b 58000011 setarg attop_read_by_group_type_response 
+2d7c e7e08005 istore 1 ,contw 
+2d7d 6fe086c6 fetch 1 ,mem_le_curr_att_len 
+2d7e 1fe0a204 add pdata ,4 ,rega 
+2d7f e2208005 istorer rega ,1 ,contw 
+2d80 20407c6a call store_contw 
+2d81 1a267c06 sub rega ,6 ,null 
+2d82 2442fdbe ncall enable_user2 ,zero 
+2d83 2042fdc0 call disable_user2 ,zero 
+2d84 20402e46 call le_get_search_max_mtu_data 
+2d85 1fe0fffe increase -2 ,pdata 
+2d86 9a26fc00 idiv rega 
+2d87 20407d62 call wait_div_end 
+2d88 18079600 quotient timeup 
+2d89 20202d90 branch le_send_att_read_by_group_type_store_record 
+
+le_send_att_read_by_group_type_store_write_record:
+2d8a 20402d98 call le_send_att_read_by_group_type_check_pair_length_type 
+2d8b 243a2da1 nbranch le_send_att_read_by_group_type_end1 ,blank 
+2d8c 6fe10678 fetch 2 ,mem_temp 
+2d8d 1fe0ffff increase -1 ,pdata 
+2d8e 67e106cb store 2 ,mem_le_cur_handle_end 
+2d8f 20402e2a call le_write_att_record 
+
+le_send_att_read_by_group_type_store_record:
+2d90 6fe10678 fetch 2 ,mem_temp 
+2d91 67e106c9 store 2 ,mem_le_cur_handle_start 
+2d92 20402e24 call le_store_att_record 
+2d93 196097ff increase -1 ,timeup 
+
+le_send_att_read_by_group_type_next_handle:
+2d94 20402e13 call le_att_next_handle 
+2d95 20202d6d branch le_send_att_read_by_group_type_response_loop 
+
+le_send_att_read_by_type_res_check_pair_length_type:
+2d96 6fe086cd fetch 1 ,mem_le_cur_uuid_length 
+2d97 20202d99 branch le_send_att_read_by_group_type_check_pair_length_type + 1 
+
+le_send_att_read_by_group_type_check_pair_length_type:
+2d98 6fe086c6 fetch 1 ,mem_le_curr_att_len 
+2d99 20362d9c branch le_send_att_read_by_group_type_check_pair_length_type_16byte ,user2 
+2d9a 1fe0fffe increase -2 ,pdata 
+2d9b 20600000 rtn 
+
+le_send_att_read_by_group_type_check_pair_length_type_16byte:
+2d9c 1fe0fff0 increase -16 ,pdata 
+2d9d 20600000 rtn 
+
+le_send_att_read_by_group_type_end0:
+2d9e 6fe10678 fetch 2 ,mem_temp 
+2d9f 67e106cb store 2 ,mem_le_cur_handle_end 
+2da0 20202da5 branch le_send_att_read_by_group_type_end_common 
+
+le_send_att_read_by_group_type_end1:
+2da1 6fe10678 fetch 2 ,mem_temp 
+2da2 1fe0ffff increase -1 ,pdata 
+2da3 67e106cb store 2 ,mem_le_cur_handle_end 
+2da4 20202da5 branch le_send_att_read_by_group_type_end_common 
+
+le_send_att_read_by_group_type_end_common:
+2da5 20342e03 branch le_send_att_error_response_notfound ,user 
+2da6 20402e2a call le_write_att_record 
+2da7 20202e34 branch le_send_auto_len_by_mem 
+
+le_parse_att_write_request:
+2da8 18c22200 copy contr ,rega 
+2da9 6fe14335 fetch 2 ,mem_le_l2cap_size 
+2daa 1fe0a5fd add pdata ,-3 ,regb 
+2dab 20402929 call le_writeatt_cb 
+
+le_send_att_write_response_check_auth:
+2dac 472d402b bpatchx patch2b_2 ,mem_patch2b 
+2dad 20402dc7 call le_check_encrypt_state 
+2dae 68494398 fetcht 2 ,mem_le_att_handle 
+2daf 20402cd2 call le_att_get_handle_ptr2 
+2db0 2422adc5 nbranch le_send_att_write_response_error_invalid_handle ,zero 
+2db1 20542dc1 call le_send_att_write_response_check_handle ,user 
+2db2 20740000 rtn user 
+2db3 6fe0c321 fetch 1 ,mem_le_configuration 
+2db4 c3022dbc bbit0 bit_ble_write_auth ,le_send_att_write_response 
+2db5 68494398 fetcht 2 ,mem_le_att_handle 
+2db6 6fe14332 fetch 2 ,mem_le_pairing_handle 
+2db7 98467c00 isub temp ,null 
+2db8 2422adbc nbranch le_send_att_write_response ,zero 
+2db9 20402dc7 call le_check_encrypt_state 
+2dba 24342dbc nbranch le_send_att_write_response ,user 
+2dbb 20202d46 branch le_send_att_read_response_error_insufficient_auth 
+
+le_send_att_write_response:
+2dbc 18002201 force 1 ,rega 
+2dbd 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2dbe 58000013 setarg attop_write_response 
+2dbf e7e08005 istore 1 ,contw 
+2dc0 20600000 rtn 
+
+le_send_att_write_response_check_handle:
+2dc1 18c08dfe increase -2 ,contr 
+2dc2 efe10006 ifetch 2 ,contr 
+2dc3 c287ad46 bbit1 bit_of_att_handle_write_authenticated ,le_send_att_read_response_error_insufficient_auth 
+2dc4 20207dbc branch disable_user 
+
+le_send_att_write_response_error_invalid_handle:
+2dc5 7001b901 jam att_err_invalid_handle ,mem_le_err_code 
+2dc6 20202e05 branch le_send_att_error_response 
+
+le_check_encrypt_state:
+2dc7 472dc02b bpatchx patch2b_3 ,mem_patch2b 
+2dc8 20407dbc call disable_user 
+2dc9 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2dca c1000000 rtneq le_pairing_mode_none 
+2dcb 6fe0c040 fetch 1 ,mem_context 
+2dcc c3820000 rtnbit1 lestate_encryption 
+2dcd 20207dba branch enable_user 
+
+le_parse_att_prepare_write_request:
+2dce 18c0a202 add contr ,2 ,rega 
+2dcf 6fe14335 fetch 2 ,mem_le_l2cap_size 
+2dd0 1fe0a5fb add pdata ,-5 ,regb 
+2dd1 20402929 call le_writeatt_cb 
+2dd2 20202dd3 branch le_send_att_prepare_write_response 
+
+le_send_att_prepare_write_response:
+2dd3 6fe14335 fetch 2 ,mem_le_l2cap_size 
+2dd4 1fe22200 copy pdata ,rega 
+2dd5 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2dd6 58000017 setarg attop_prepare_write_response 
+2dd7 e7e08005 istore 1 ,contw 
+2dd8 6fe14398 fetch 2 ,mem_le_att_handle 
+2dd9 e7e10005 istore 2 ,contw 
+2dda 6fe14335 fetch 2 ,mem_le_l2cap_size 
+2ddb 1fe0f3fb add pdata ,-5 ,loopcnt 
+2ddc 6fe14339 fetch 2 ,mem_le_payload_ptr 
+2ddd 1fe08c07 add pdata ,7 ,contr 
+2dde efe10006 ifetch 2 ,contr 
+2ddf e7e10005 istore 2 ,contw 
+2de0 20207ccc branch memcpy_fast 
+
+le_parse_att_execute_write_request:
+
+le_send_att_execute_write_response:
+2de1 18002201 force 1 ,rega 
+2de2 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2de3 58000019 setarg attop_execute_write_response 
+2de4 e7e08005 istore 1 ,contw 
+2de5 20600000 rtn 
+
+le_parse_handle_value_confirmation:
+2de6 6fe0c396 fetch 1 ,mem_le_l2cap_att_states 
+2de7 793ffe00 set0 ble_l2cap_recv_confirmation_packet ,pdata 
+2de8 67e0c396 store 1 ,mem_le_l2cap_att_states 
+2de9 20600000 rtn 
+
+le_parse_att_write_command:
+2dea 18c22200 copy contr ,rega 
+2deb 6fe14335 fetch 2 ,mem_le_l2cap_size 
+2dec 1fe0a5fd add pdata ,-3 ,regb 
+2ded 20202929 branch le_writeatt_cb 
+
+le_att_malloc_tx_notify:
+2dee 18422600 copy temp ,regc 
+2def 1a20a203 increase 3 ,rega 
+2df0 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2df1 1a20a3fd increase -3 ,rega 
+2df2 5800001b setarg attop_handle_value_notification 
+2df3 e7e08005 istore 1 ,contw 
+2df4 1a620400 copy regc ,temp 
+2df5 e0410005 istoret 2 ,contw 
+2df6 20600000 rtn 
+
+le_att_malloc_tx_indication:
+2df7 6fe0c396 fetch 1 ,mem_le_l2cap_att_states 
+2df8 79207e00 set1 ble_l2cap_send_indication_packet ,pdata 
+2df9 67e0c396 store 1 ,mem_le_l2cap_att_states 
+2dfa 18422600 copy temp ,regc 
+2dfb 1a20a203 increase 3 ,rega 
+2dfc 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2dfd 1a20a3fd increase -3 ,rega 
+2dfe 5800001d setarg attop_handle_value_indication 
+2dff e7e08005 istore 1 ,contw 
+2e00 1a620400 copy regc ,temp 
+2e01 e0410005 istoret 2 ,contw 
+2e02 20600000 rtn 
+
+le_send_att_error_response_notfound:
+2e03 472e402b bpatchx patch2b_4 ,mem_patch2b 
+2e04 7001b90a jam att_err_attribute_not_found ,mem_le_err_code 
+
+le_send_att_error_response:
+2e05 18002205 force 5 ,rega 
+2e06 20402e10 call le_fifo_malloc_tx_l2cap_gatt 
+2e07 58000001 setarg attop_error_response 
+2e08 e7e08005 istore 1 ,contw 
+2e09 6fe0c397 fetch 1 ,mem_le_att_opcode 
+2e0a e7e08005 istore 1 ,contw 
+2e0b 6fe14398 fetch 2 ,mem_le_att_handle 
+2e0c e7e10005 istore 2 ,contw 
+2e0d 6fe081b9 fetch 1 ,mem_le_err_code 
+2e0e e7e08005 istore 1 ,contw 
+2e0f 20600000 rtn 
+
+le_fifo_malloc_tx_l2cap_gatt:
+2e10 472ec02b bpatchx patch2b_5 ,mem_patch2b 
+2e11 18002404 force le_l2cap_cid_att ,regb 
+2e12 202029fb branch le_fifo_malloc_tx_l2cap 
+
+le_att_next_handle:
+2e13 68490678 fetcht 2 ,mem_temp 
+2e14 18408401 increase 1 ,temp 
+2e15 60490678 storet 2 ,mem_temp 
+2e16 20600000 rtn 
+
+le_att_check_handle_end:
+2e17 68490678 fetcht 2 ,mem_temp 
+2e18 6fe106b3 fetch 2 ,mem_le_search_handle_end 
+2e19 98467c00 isub temp ,null 
+2e1a 20600000 rtn 
+
+le_att_same_type:
+2e1b 472f402b bpatchx patch2b_6 ,mem_patch2b 
+2e1c 684886b5 fetcht 1 ,mem_le_search_att_type_length 
+2e1d da2006b6 arg mem_le_search_att_type ,rega 
+
+le_att_check_same_common:
+2e1e 6fe086cd fetch 1 ,mem_le_cur_uuid_length 
+2e1f 1fe27200 copy pdata ,loopcnt 
+2e20 98467c00 isub temp ,null 
+2e21 24628000 nrtn zero 
+2e22 da4006ce arg mem_le_cur_uuid ,regb 
+2e23 20207d64 branch string_compare 
+
+le_store_att_record:
+2e24 472fc02b bpatchx patch2b_7 ,mem_patch2b 
+2e25 6fe086c6 fetch 1 ,mem_le_curr_att_len 
+2e26 67e086a1 store 1 ,mem_temp_block0 
+2e27 1fe27200 copy pdata ,loopcnt 
+2e28 20407c67 call get_contr 
+2e29 20207ccc branch memcpy_fast 
+
+le_write_att_record:
+2e2a 4730402c bpatchx patch2c_0 ,mem_patch2c 
+2e2b 20407c64 call get_contw 
+2e2c 6fe106c9 fetch 2 ,mem_le_cur_handle_start 
+2e2d e7e10005 istore 2 ,contw 
+2e2e 6fe106cb fetch 2 ,mem_le_cur_handle_end 
+2e2f e7e10005 istore 2 ,contw 
+
+le_write_att_record_common:
+2e30 6fe086a1 fetch 1 ,mem_temp_block0 
+2e31 1fe27200 copy pdata ,loopcnt 
+2e32 20407ccc call memcpy_fast 
+2e33 20207c6a branch store_contw 
+
+le_send_auto_len_by_mem:
+2e34 4730c02c bpatchx patch2c_1 ,mem_patch2c 
+2e35 20407c64 call get_contw 
+2e36 20402a21 call le_fifo_get_last_att_ptr 
+2e37 18a27e00 copy contw ,pdata 
+2e38 98c62200 isub contr ,rega 
+2e39 20402a24 call le_fifo_get_last_l2cap_ptr 
+2e3a 1a227e00 copy rega ,pdata 
+2e3b e7e10006 istore 2 ,contr 
+2e3c 1a20a204 increase 4 ,rega 
+2e3d 20402a16 call le_fifo_get_last_tx_ptr 
+2e3e 1a227e00 copy rega ,pdata 
+2e3f e7e08006 istore 1 ,contr 
+2e40 20600000 rtn 
+
+le_get_search_handle_start_end_common:
+2e41 1fecfe00 rshift8 pdata ,pdata 
+2e42 67e106b1 store 2 ,mem_le_search_handle_start 
+2e43 efe10006 ifetch 2 ,contr 
+2e44 67e106b3 store 2 ,mem_le_search_handle_end 
+2e45 20600000 rtn 
+
+le_get_search_max_mtu_data:
+2e46 4731402c bpatchx patch2c_2 ,mem_patch2c 
+2e47 6fe142e3 fetch 2 ,mem_le_remote_mtu 
+2e48 684942e1 fetcht 2 ,mem_le_local_mtu 
+2e49 20207db0 branch not_greater_than 
+
+le_get_search_att_type:
+2e4a 4731c02c bpatchx patch2c_3 ,mem_patch2c 
+2e4b 20407c6d call store_contr 
+2e4c d8a006b5 arg mem_le_search_att_type_length ,contw 
+
+le_get_search_common:
+2e4d 6fe14335 fetch 2 ,mem_le_l2cap_size 
+2e4e 1fe0fffb increase -5 ,pdata 
+
+le_get_search_common2:
+2e4f e7e08005 istore 1 ,contw 
+2e50 1fe27200 copy pdata ,loopcnt 
+2e51 20407c67 call get_contr 
+2e52 20207ccc branch memcpy_fast 
+
+le_parse_writing_attribute_start:
+2e53 6fe10050 fetch 2 ,mem_le_rxbuf_data_att_cid 
+2e54 c1820000 rtnne le_l2cap_cid_att 
+2e55 6fe0c396 fetch 1 ,mem_le_l2cap_att_states 
+2e56 79207e01 set1 ble_l2cap_deal_with_continue_packet ,pdata 
+2e57 67e0c396 store 1 ,mem_le_l2cap_att_states 
+2e58 6fe18052 fetch 3 ,mem_le_rxbuf_data_att_opcode 
+2e59 67e1c397 store 3 ,mem_le_att_opcode 
+2e5a 7920000f set1 mark_old_packet ,mark 
+2e5b c0092e6e beq attop_write_request ,le_parse_attribute_write_request 
+2e5c c0292e73 beq attop_write_command ,le_parse_attribute_write_command 
+2e5d c00c2de1 beq attop_execute_write_request ,le_parse_att_execute_write_request 
+2e5e c0012bab beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
+2e5f c00f2de6 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
+2e60 793f800f set0 mark_old_packet ,mark 
+
+le_clear_l2cap_att_states_deal_with_contiune_packet:
+2e61 6fe0c396 fetch 1 ,mem_le_l2cap_att_states 
+2e62 793ffe01 set0 ble_l2cap_deal_with_continue_packet ,pdata 
+2e63 67e0c396 store 1 ,mem_le_l2cap_att_states 
+2e64 20600000 rtn 
+
+le_parse_writing_attribute_continue:
+2e65 6fe0c396 fetch 1 ,mem_le_l2cap_att_states 
+2e66 c4008000 rtnbit0 ble_l2cap_deal_with_continue_packet 
+2e67 7920000f set1 mark_old_packet ,mark 
+2e68 20402e7e call le_parse_l2cap_continue_common 
+2e69 20402e84 call le_parse_attribute_check_complete_packet 
+2e6a 20542e61 call le_clear_l2cap_att_states_deal_with_contiune_packet ,user 
+2e6b 6fe0c397 fetch 1 ,mem_le_att_opcode 
+2e6c c0092dac beq attop_write_request ,le_send_att_write_response_check_auth 
+2e6d 20600000 rtn 
+
+le_parse_attribute_write_request:
+2e6e 20402e73 call le_parse_attribute_write_command 
+2e6f 20202e70 branch le_send_attribute_write_response_check_auth 
+
+le_send_attribute_write_response_check_auth:
+2e70 20402e84 call le_parse_attribute_check_complete_packet 
+2e71 24740000 nrtn user 
+2e72 20202dac branch le_send_att_write_response_check_auth 
+
+le_parse_attribute_write_command:
+2e73 4732402c bpatchx patch2c_4 ,mem_patch2c 
+2e74 20402e77 call le_parse_attribute_check_complete_packet_init 
+2e75 da200055 arg mem_le_rxbuf_data_att_write_payload ,rega 
+2e76 20202929 branch le_writeatt_cb 
+
+le_parse_attribute_check_complete_packet_init:
+2e77 6fe0804d fetch 1 ,mem_le_rxbuf_data_att_write_length 
+2e78 1fe0a5f9 add pdata ,-7 ,regb 
+2e79 1fe0fffc increase -4 ,pdata 
+2e7a 67e14337 store 2 ,mem_le_packet_len_recved 
+2e7b 6849004e fetcht 2 ,mem_le_rxbuf_data_att_write_l2cap_length 
+2e7c 60494335 storet 2 ,mem_le_l2cap_size 
+2e7d 20600000 rtn 
+
+le_parse_l2cap_continue_common:
+2e7e 6a40804d fetchr regb ,1 ,mem_le_rxbuf_data_continue_length 
+2e7f 6fe14337 fetch 2 ,mem_le_packet_len_recved 
+2e80 9a408400 iadd regb ,temp 
+2e81 60494337 storet 2 ,mem_le_packet_len_recved 
+2e82 da20004e arg mem_le_rxbuf_data_continue_payload ,rega 
+2e83 20202929 branch le_writeatt_cb 
+
+le_parse_attribute_check_complete_packet:
+2e84 20407dbc call disable_user 
+2e85 6fe14337 fetch 2 ,mem_le_packet_len_recved 
+2e86 68494335 fetcht 2 ,mem_le_l2cap_size 
+2e87 98467c00 isub temp ,null 
+2e88 24628000 nrtn zero 
+2e89 20207dba branch enable_user 
+
+le_parse_signaling:
+2e8a efe08006 ifetch 1 ,contr 
+2e8b e8408006 ifetcht 1 ,contr 
+2e8c e8410006 ifetcht 2 ,contr 
+2e8d c009ae8f beq l2cap_connection_parameter_update_response ,le_l2cap_parse_conn_parameter_update_rsp 
+2e8e 20600000 rtn 
+
+le_l2cap_parse_conn_parameter_update_rsp:
+2e8f efe10006 ifetch 2 ,contr 
+2e90 67e1433c store 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+2e91 70066f40 jam bt_evt_le_parse_conn_papa_update_rsp ,mem_fifo_temp 
+2e92 2020782b branch ui_ipc_send_event 
+
+le_l2cap_tx_update_req:
+2e93 da20000c arg 0x0c ,rega 
+2e94 da600012 arg l2cap_connection_parameter_update_request ,regc 
+2e95 20402e9b call le_fifo_malloc_tx_l2cap_signaling 
+2e96 58000008 setarg 0x08 
+2e97 e7e10005 istore 2 ,contw 
+2e98 6fe442d3 fetch 8 ,mem_le_interval_min 
+2e99 e7e40005 istore 8 ,contw 
+2e9a 20600000 rtn 
+
+le_fifo_malloc_tx_l2cap_signaling:
+2e9b 20402ea3 call le_l2cap_update_signaling_identifier 
+2e9c da400005 arg le_l2cap_cid_signal ,regb 
+2e9d 204029fb call le_fifo_malloc_tx_l2cap 
+2e9e 1a627e00 copy regc ,pdata 
+2e9f e7e08005 istore 1 ,contw 
+2ea0 6fe0c33b fetch 1 ,mem_le_signaling_identifier 
+2ea1 e7e08005 istore 1 ,contw 
+2ea2 20600000 rtn 
+
+le_l2cap_update_signaling_identifier:
+2ea3 6fe0c33b fetch 1 ,mem_le_signaling_identifier 
+2ea4 1fe0fe01 pincrease 1 
+2ea5 67e0c33b store 1 ,mem_le_signaling_identifier 
+2ea6 c1800000 rtnne 0 
+
+le_l2cap_reset_signaling_identifier:
+2ea7 70433b01 jam 1 ,mem_le_signaling_identifier 
+2ea8 20600000 rtn 
+
+le_pairing_mode_init:
+2ea9 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2eaa c0002eb8 beq le_pairing_mode_none ,le_set_no_pairing 
+2eab c000aebb beq le_pairing_mode_lagacy_justwork ,le_set_pairing_mode_lagacy_just_work 
+2eac c0012ebd beq le_pairing_mode_lagacy_passkey ,le_set_pairing_mode_lagacy_passkey 
+2ead c040aeb1 beq le_pairing_mode_secure_connect_justwork ,le_set_pairing_mode_secure_justwork 
+2eae c0412eb3 beq le_pairing_mode_secure_connect_numeric ,le_set_pairing_mode_secure_numeric 
+2eaf c041aeb6 beq le_pairing_mode_secure_connect_passkey ,le_set_pairing_mode_secure_passkey 
+2eb0 20600000 rtn 
+
+le_set_pairing_mode_secure_justwork:
+2eb1 7042c70d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+2eb2 20202eb9 branch le_set_noinputnooutput 
+
+le_set_pairing_mode_secure_numeric:
+2eb3 7042c70d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+2eb4 7042c501 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+2eb5 20600000 rtn 
+
+le_set_pairing_mode_secure_passkey:
+2eb6 7042c70d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+2eb7 20202ebe branch le_set_displayonly 
+
+le_set_no_pairing:
+2eb8 7042c700 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+
+le_set_noinputnooutput:
+2eb9 7042c503 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+2eba 20600000 rtn 
+
+le_set_pairing_mode_lagacy_just_work:
+2ebb 7042c705 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+2ebc 20202eb9 branch le_set_noinputnooutput 
+
+le_set_pairing_mode_lagacy_passkey:
+2ebd 7042c705 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+
+le_set_displayonly:
+2ebe 7042c500 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+2ebf 20600000 rtn 
+
+le_secure_connection_enable:
+2ec0 6fe0c46c fetch 1 ,mem_secure_connections_enable 
+2ec1 79207e00 set1 secure_connections_le_bit ,pdata 
+2ec2 67e0c46c store 1 ,mem_secure_connections_enable 
+2ec3 20600000 rtn 
+
+le_secure_connection_disable:
+2ec4 6fe0c46c fetch 1 ,mem_secure_connections_enable 
+2ec5 793ffe00 set0 secure_connections_le_bit ,pdata 
+2ec6 67e0c46c store 1 ,mem_secure_connections_enable 
+2ec7 20600000 rtn 
+
+le_parse_smp:
+2ec8 efe08006 ifetch 1 ,contr 
+2ec9 c000aedc beq smp_pairing_request ,le_parse_smp_pairing_request 
+2eca c001af03 beq smp_pairing_confirm ,le_parse_smp_pairing_confirm 
+2ecb c0022f24 beq smp_pairing_random ,le_parse_smp_pairing_random 
+2ecc c002af31 beq smp_pairing_failed ,le_parse_smp_pairing_failed 
+2ecd c003af9a beq smp_master_identification ,le_parse_smp_master_identification 
+2ece c0042f86 beq smp_identity_information ,le_parse_smp_identity_information 
+2ecf c004af96 beq smp_identity_address_information ,le_parse_smp_identity_address_information 
+2ed0 c0052f9a beq smp_signing_information ,le_parse_smp_signing_information 
+2ed1 c005af9a beq smp_security_request ,le_parse_smp_security_request 
+2ed2 c0062f9b beq smp_pairing_public_key ,le_parse_smp_public_key 
+2ed3 c006afa0 beq smp_pairing_dhkey_check ,le_parse_smp_dhkey_check 
+2ed4 20600000 rtn 
+
+le_send_smp_security_request:
+2ed5 18002202 force 2 ,rega 
+2ed6 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2ed7 5800000b setarg smp_security_request 
+2ed8 e7e08005 istore 1 ,contw 
+2ed9 6fe0c2c7 fetch 1 ,mem_le_pres_auth 
+2eda e7e08005 istore 1 ,contw 
+2edb 20600000 rtn 
+
+le_parse_smp_pairing_request:
+2edc 67e0c2bd store 1 ,mem_le_preq 
+2edd efe30006 ifetch 6 ,contr 
+2ede e7e30005 istore 6 ,contw 
+2edf 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2ee0 c0002f37 beq le_pairing_mode_none ,le_smp_pairing_fail_reason_not_support_pairing 
+2ee1 20402efe call le_send_smp_pairing_response 
+2ee2 6fe0c46a fetch 1 ,mem_sc_only_mode 
+2ee3 203a2ee8 branch le_parse_smp_pairing_request2 ,blank 
+2ee4 6fe0c2c0 fetch 1 ,mem_le_preq_auth 
+2ee5 c301c31f bbit0 le_auth_secure_connection_pairing_bit ,app_ble_disconnect 
+2ee6 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2ee7 c303c31f bbit0 le_pairing_mode_secure_connect_bit ,app_ble_disconnect 
+
+le_parse_smp_pairing_request2:
+2ee8 7042fc03 jam flag_le_pairing_rcv_pairing_req ,mem_le_pairing_state 
+2ee9 6fe0c2be fetch 1 ,mem_le_preq_iocap 
+2eea c0002ef0 beq flag_iocap_displayonly ,le_set_tk_0 
+2eeb c000aef0 beq flag_iocap_displayyesno ,le_set_tk_0 
+2eec c001aef0 beq flag_iocap_noinputnooutput ,le_set_tk_0 
+2eed 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2eee c0012ef3 beq le_pairing_mode_lagacy_passkey ,le_parse_smp_pairing_req_passkey 
+2eef c1418000 rtneq le_pairing_mode_secure_connect_passkey 
+
+le_set_tk_0:
+2ef0 dfe00000 arg 0 ,pdata 
+2ef1 67e242ff store 4 ,mem_le_tk 
+2ef2 20600000 rtn 
+
+le_parse_smp_pairing_req_passkey:
+2ef3 6fe0c321 fetch 1 ,mem_le_configuration 
+2ef4 c2802efc bbit1 bit_ble_passkey_fixed_key ,le_parse_smp_pairing_req_fixed_passkey 
+
+le_genernate_tk:
+2ef5 da2042ff arg mem_le_tk ,rega 
+2ef6 1a220a00 copy rega ,contw 
+2ef7 df200003 arg 3 ,loopcnt 
+2ef8 20407de8 call generate_random_loop 
+2ef9 6fe14301 fetch 2 ,mem_le_tk + 2 
+2efa 1fe17e07 and_into 0x7 ,pdata 
+2efb 67e14301 store 2 ,mem_le_tk + 2 
+
+le_parse_smp_pairing_req_fixed_passkey:
+2efc 70066f34 jam bt_evt_le_tk_generate ,mem_fifo_temp 
+2efd 2020782b branch ui_ipc_send_event 
+
+le_send_smp_pairing_response:
+2efe 18002207 force 7 ,rega 
+2eff 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2f00 6fe3c2c4 fetch 7 ,mem_le_pres 
+2f01 e7e38005 istore 7 ,contw 
+2f02 20600000 rtn 
+
+le_parse_smp_pairing_confirm:
+2f03 7042fc05 jam flag_le_pairing_receive_pairing_confirm ,mem_le_pairing_state 
+2f04 d8a0429b arg mem_le_rconfirm ,contw 
+2f05 20407c8f call memcpy16 
+2f06 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2f07 c0022f0b beq le_pairing_mode_lagacy_passkey_res_input ,le_parse_smp_pairing_confirm_passkey_res_input 
+2f08 c041af0d beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_confirm_secure_passkey 
+2f09 c0422f10 beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_confirm_sc_passkey_res_input 
+2f0a 20202f13 branch le_send_smp_pairing_confirm 
+
+le_parse_smp_pairing_confirm_passkey_res_input:
+2f0b 70066f43 jam bt_evt_le_get_passkey ,mem_fifo_temp 
+2f0c 2020782b branch ui_ipc_send_event 
+
+le_parse_smp_pairing_confirm_secure_passkey:
+2f0d 7042f902 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+2f0e 7042fa08 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
+2f0f 20600000 rtn 
+
+le_parse_smp_pairing_confirm_sc_passkey_res_input:
+2f10 6fe242ff fetch 4 ,mem_le_tk 
+2f11 203a2f0b branch le_parse_smp_pairing_confirm_passkey_res_input ,blank 
+2f12 20202f0d branch le_parse_smp_pairing_confirm_secure_passkey 
+
+le_send_smp_pairing_confirm:
+2f13 7042fc06 jam flag_le_pairing_send_pairing_confirm ,mem_le_pairing_state 
+2f14 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2f15 c283af1c bbit1 le_pairing_mode_secure_connect_bit ,le_send_smp_pairing_confirm_sc 
+2f16 20407256 call generate_confirm 
+2f17 18002211 force 17 ,rega 
+2f18 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2f19 58000003 setarg smp_pairing_confirm 
+2f1a e7e08005 istore 1 ,contw 
+2f1b 20207375 branch store_aes_result 
+
+le_send_smp_pairing_confirm_sc:
+2f1c d8a042ab arg mem_le_srand ,contw 
+2f1d 20407de7 call generate_random 
+2f1e 204071b6 call function_f4_cb 
+2f1f 18002211 force 17 ,rega 
+2f20 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2f21 58000003 setarg smp_pairing_confirm 
+2f22 e7e08005 istore 1 ,contw 
+2f23 202071f2 branch load_inverse_result 
+
+le_parse_smp_pairing_random:
+2f24 18c22200 copy contr ,rega 
+2f25 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2f26 c283af39 bbit1 le_pairing_mode_secure_connect_bit ,le_parse_smp_pairing_random_sc 
+2f27 1a220c00 copy rega ,contr 
+2f28 2040724e call authenticate_rconfirm 
+2f29 2022af4e branch le_parse_smp_pairing_random_success ,zero 
+
+le_send_pairing_confirm_value_failed:
+2f2a 7001ba04 jam pairing_failed_confirm_value_failed ,mem_le_ll_pairing_fail_reason 
+
+le_send_pairing_failed:
+2f2b 18002202 force 2 ,rega 
+2f2c 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2f2d 58000005 setarg smp_pairing_failed 
+2f2e e7e08005 istore 1 ,contw 
+2f2f 6fe081ba fetch 1 ,mem_le_ll_pairing_fail_reason 
+2f30 e7e08005 istore 1 ,contw 
+
+le_parse_smp_pairing_failed:
+2f31 4732c02c bpatchx patch2c_5 ,mem_patch2c 
+2f32 18000e07 force smp_pairing_timer ,queue 
+2f33 20407ce0 call timer_stop 
+2f34 7042fc00 jam flag_le_pairing_null ,mem_le_pairing_state 
+2f35 70066f30 jam bt_evt_le_pairing_fail ,mem_fifo_temp 
+2f36 2020782b branch ui_ipc_send_event 
+
+le_smp_pairing_fail_reason_not_support_pairing:
+2f37 7001ba05 jam pairing_failed_pairing_not_supported ,mem_le_ll_pairing_fail_reason 
+2f38 20202f2b branch le_send_pairing_failed 
+
+le_parse_smp_pairing_random_sc:
+2f39 d8a00158 arg mem_le_mrand ,contw 
+2f3a 1a220c00 copy rega ,contr 
+2f3b 20407c8f call memcpy16 
+2f3c 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2f3d c041af45 beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_random_sc_passkey 
+2f3e c0422f45 beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_random_sc_passkey 
+2f3f 20407140 call function_g2 
+2f40 20402f53 call le_send_smp_pairing_random 
+2f41 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2f42 c1c10000 rtnne le_pairing_mode_secure_connect_numeric 
+2f43 70066f3b jam bt_evt_le_gkey_generate ,mem_fifo_temp 
+2f44 2020782b branch ui_ipc_send_event 
+
+le_parse_smp_pairing_random_sc_passkey:
+2f45 204071ab call function_f4_ca 
+2f46 d8a006d1 arg mem_aes_cmac_temp ,contw 
+2f47 204071f2 call load_inverse_result 
+2f48 da2006d1 arg mem_aes_cmac_temp ,rega 
+2f49 da40429b arg mem_le_rconfirm ,regb 
+2f4a df200010 arg 16 ,loopcnt 
+2f4b 20407d64 call string_compare 
+2f4c 2422af2a nbranch le_send_pairing_confirm_value_failed ,zero 
+2f4d 20202f53 branch le_send_smp_pairing_random 
+
+le_parse_smp_pairing_random_success:
+2f4e 2040724a call generate_stk 
+2f4f 70066f31 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+2f50 2040782b call ui_ipc_send_event 
+2f51 70429a01 jam 1 ,mem_ltk_exists 
+2f52 7042fc09 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+
+le_send_smp_pairing_random:
+2f53 18002211 force 17 ,rega 
+2f54 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2f55 58000004 setarg smp_pairing_random 
+2f56 e7e08005 istore 1 ,contw 
+2f57 d8c042ab arg mem_le_srand ,contr 
+2f58 20207c8f branch memcpy16 
+
+le_send_smp_encryption_information:
+2f59 18002211 force 17 ,rega 
+2f5a 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2f5b 58000006 setarg smp_encryption_information 
+2f5c e7e08005 istore 1 ,contw 
+2f5d 6fe0c321 fetch 1 ,mem_le_configuration 
+2f5e c280af61 bbit1 bit_ble_pairing_fixed_ltk ,le_send_fixed_ltk 
+2f5f d8c0428a arg mem_le_ltk ,contr 
+2f60 20207c8f branch memcpy16 
+
+le_send_fixed_ltk:
+2f61 d8c04322 arg mem_le_fixed_ltk ,contr 
+2f62 20207c8f branch memcpy16 
+
+le_send_smp_master_identification:
+2f63 d8a04303 arg mem_le_ediv ,contw 
+2f64 1800720a force 10 ,loopcnt 
+2f65 20407de8 call generate_random_loop 
+2f66 1800220b force 11 ,rega 
+2f67 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2f68 58000007 setarg smp_master_identification 
+2f69 e7e08005 istore 1 ,contw 
+2f6a 6fe14303 fetch 2 ,mem_le_ediv 
+2f6b e7e10005 istore 2 ,contw 
+2f6c 6fe44305 fetch 8 ,mem_le_rand 
+2f6d e7e40005 istore 8 ,contw 
+2f6e 20600000 rtn 
+
+le_send_smp_identity_information:
+2f6f 18002211 force 17 ,rega 
+2f70 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2f71 58000008 setarg smp_identity_information 
+2f72 e7e08005 istore 1 ,contw 
+2f73 58000000 setarg 0 
+2f74 e7e40005 istore 8 ,contw 
+2f75 e7e40005 istore 8 ,contw 
+2f76 20600000 rtn 
+
+le_send_smp_identity_address_information:
+2f77 18002208 force 8 ,rega 
+2f78 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2f79 58000009 setarg smp_identity_address_information 
+2f7a e7e08005 istore 1 ,contw 
+2f7b 6fe0c2d2 fetch 1 ,mem_le_conn_own_addr_type 
+2f7c e7e08005 istore 1 ,contw 
+2f7d 6fe342db fetch 6 ,mem_le_lap 
+2f7e e7e30005 istore 6 ,contw 
+2f7f 20600000 rtn 
+
+le_send_pairing_fail_unspecified_reason:
+2f80 7001ba08 jam pairing_failed_unspecified_reason ,mem_le_ll_pairing_fail_reason 
+2f81 20202f2b branch le_send_pairing_failed 
+
+le_check_init_key_distribution:
+2f82 6fe0c2c9 fetch 1 ,mem_le_pres_init_key_distribution 
+2f83 6848c2c9 fetcht 1 ,mem_le_pres_init_key_distribution 
+2f84 98417e00 iand temp ,pdata 
+2f85 20600000 rtn 
+
+le_parse_smp_identity_information:
+2f86 d8a0430d arg mem_le_irk ,contw 
+2f87 20407c8f call memcpy16 
+2f88 20402f82 call le_check_init_key_distribution 
+2f89 2fec0001 isolate0 le_initator_irk_bit ,pdata 
+2f8a 2020af80 branch le_send_pairing_fail_unspecified_reason ,true 
+2f8b 6fe0c3cb fetch 1 ,mem_device_option 
+2f8c c1850000 rtnne dvc_op_module 
+2f8d 20402f90 call le_check_master_addr_type 
+2f8e 24740000 nrtn user 
+2f8f 20204329 branch app_ble_store_reconn_info 
+
+le_check_master_addr_type:
+2f90 20407dbc call disable_user 
+2f91 6fe0c2cb fetch 1 ,mem_le_conn_peer_addr_type 
+2f92 c1000000 rtneq master_public_addr 
+2f93 6fe0c2c2 fetch 1 ,mem_le_preq_init_key_distribution 
+2f94 c4008000 rtnbit0 le_initator_irk_bit 
+2f95 20207dba branch enable_user 
+
+le_parse_smp_identity_address_information:
+2f96 20402f82 call le_check_init_key_distribution 
+2f97 2fec0001 isolate0 le_initator_irk_bit ,pdata 
+2f98 2020af80 branch le_send_pairing_fail_unspecified_reason ,true 
+2f99 20600000 rtn 
+
+le_parse_smp_master_identification:
+
+le_parse_smp_signing_information:
+
+le_parse_smp_security_request:
+2f9a 20600000 rtn 
+
+le_parse_smp_public_key:
+2f9b d8a005fe arg mem_le_pubkey_remote_x_256 ,contw 
+2f9c 20407c81 call memcpy64 
+2f9d 7042f902 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+2f9e 7042fa01 jam le_sc_stat_receive_public_key ,mem_le_secure_connect_state 
+2f9f 20600000 rtn 
+
+le_parse_smp_dhkey_check:
+2fa0 d8a0065e arg mem_sp_confirm_remote ,contw 
+2fa1 20407c8f call memcpy16 
+2fa2 7042fa06 jam le_sc_stat_receive_dhkey ,mem_le_secure_connect_state 
+2fa3 7042f902 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+2fa4 20600000 rtn 
+
+le_send_smp_pairing_public_key:
+2fa5 18002241 force 65 ,rega 
+2fa6 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2fa7 5800000c setarg smp_pairing_public_key 
+2fa8 e7e08005 istore 1 ,contw 
+2fa9 d8c0448f arg mem_sc_pubkey_local_x_256 ,contr 
+2faa 20207c81 branch memcpy64 
+
+le_send_smp_pairing_dhkey_check:
+2fab 20407157 call function_f6_eb 
+2fac 18002211 force 17 ,rega 
+2fad 20403047 call le_fifo_malloc_tx_l2cap_smp 
+2fae 5800000d setarg smp_pairing_dhkey_check 
+2faf e7e08005 istore 1 ,contw 
+2fb0 202071f2 branch load_inverse_result 
+
+le_check_paring_time:
+2fb1 6fe0c2fc fetch 1 ,mem_le_pairing_state 
+2fb2 c17f8000 rtneq flag_le_pairing_end 
+2fb3 d8400003 arg flag_le_pairing_rcv_pairing_req ,temp 
+2fb4 98467c00 isub temp ,null 
+2fb5 24610000 nrtn positive 
+2fb6 d8e00007 arg smp_pairing_timer ,queue 
+2fb7 20407cef call timer_check 
+2fb8 247a0000 nrtn blank 
+2fb9 20202f80 branch le_send_pairing_fail_unspecified_reason 
+
+le_pairing_sm:
+2fba 4733402c bpatchx patch2c_6 ,mem_patch2c 
+2fbb 20402a28 call le_fifo_check_nearly_full 
+2fbc 247a0000 nrtn blank 
+2fbd 6fe0c2fc fetch 1 ,mem_le_pairing_state 
+2fbe c0002fc7 beq flag_le_pairing_null ,le_pairing_sm_null 
+2fbf c000afcd beq flag_le_pairing_start ,le_pairing_sm_start 
+2fc0 c0012fc7 beq flag_le_pairing_send_recurity_req ,le_pairing_sm_send_sec_req 
+2fc1 c001afcf beq flag_le_pairing_rcv_pairing_req ,le_pairing_sm_rcv_pairing_req 
+2fc2 c004afd3 beq flag_le_pairing_after_auth ,le_pairing_sm_after_auth 
+2fc3 c005afe3 beq flag_le_paring_send_enc_information ,le_pairng_sm_send_enc_information 
+2fc4 c0062fe5 beq flag_le_paring_send_master_identification ,le_pairng_sm_send_master_indentification 
+2fc5 c006afec beq flag_le_paring_send_indentity_information ,le_pairng_sm_send_indentity_information 
+2fc6 20600000 rtn 
+
+le_pairing_sm_null:
+
+le_pairing_sm_send_sec_req:
+2fc7 6fe0c2fd fetch 1 ,mem_le_enc_state 
+2fc8 c1820000 rtnne flag_le_send_start_enc_rsp 
+2fc9 7042fdff jam flag_le_enc_end ,mem_le_enc_state 
+2fca 7042fcff jam flag_le_pairing_end ,mem_le_pairing_state 
+2fcb 70066f3f jam bt_evt_le_reconnect_complete ,mem_fifo_temp 
+2fcc 2020782b branch ui_ipc_send_event 
+
+le_pairing_sm_start:
+2fcd 7042fc02 jam flag_le_pairing_send_recurity_req ,mem_le_pairing_state 
+2fce 20202ed5 branch le_send_smp_security_request 
+
+le_pairing_sm_rcv_pairing_req:
+2fcf 7042fc04 jam flag_le_pairing_wait_stk_generation ,mem_le_pairing_state 
+2fd0 58017700 setarg timer_smp_pairing_timeout 
+2fd1 d8e00007 arg smp_pairing_timer ,queue 
+2fd2 20207ce1 branch timer_init 
+
+le_pairing_sm_after_auth:
+2fd3 6fe0c2fd fetch 1 ,mem_le_enc_state 
+2fd4 c0022fd6 beq flag_le_send_start_enc_rsp ,le_pairing_sm_after_auth_start_enc 
+2fd5 20600000 rtn 
+
+le_pairing_sm_after_auth_start_enc:
+2fd6 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2fd7 c283afe1 bbit1 le_pairing_mode_secure_connect_bit ,le_pairing_sm_after_auth_start_enc_sc 
+2fd8 7042fc0b jam flag_le_paring_send_enc_information ,mem_le_pairing_state 
+2fd9 20402f59 call le_send_smp_encryption_information 
+
+le_pairing_sm_after_auth_start_enc_common:
+2fda 70066f29 jam bt_evt_le_enc_info ,mem_fifo_temp 
+2fdb 2040782b call ui_ipc_send_event 
+2fdc 6fe0c3cb fetch 1 ,mem_device_option 
+2fdd c1850000 rtnne dvc_op_module 
+2fde 20402f90 call le_check_master_addr_type 
+2fdf 20740000 rtn user 
+2fe0 20204329 branch app_ble_store_reconn_info 
+
+le_pairing_sm_after_auth_start_enc_sc:
+2fe1 7042fc0c jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
+2fe2 20202fda branch le_pairing_sm_after_auth_start_enc_common 
+
+le_pairng_sm_send_enc_information:
+2fe3 7042fc0c jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
+2fe4 20202f63 branch le_send_smp_master_identification 
+
+le_pairng_sm_send_master_indentification:
+2fe5 6fe0c2c3 fetch 1 ,mem_le_preq_resp_key_distribution 
+2fe6 6848c2ca fetcht 1 ,mem_le_pres_resp_key_distribution 
+2fe7 98417e00 iand temp ,pdata 
+2fe8 2fec0001 isolate0 le_initator_irk_bit ,pdata 
+2fe9 2020afee branch le_parse_start_enc_rsp_after_auth_end ,true 
+2fea 7042fc0d jam flag_le_paring_send_indentity_information ,mem_le_pairing_state 
+2feb 20202f6f branch le_send_smp_identity_information 
+
+le_pairng_sm_send_indentity_information:
+2fec 20402f77 call le_send_smp_identity_address_information 
+2fed 20202fee branch le_parse_start_enc_rsp_after_auth_end 
+
+le_parse_start_enc_rsp_after_auth_end:
+2fee 4733c02c bpatchx patch2c_7 ,mem_patch2c 
+2fef 18000e07 force smp_pairing_timer ,queue 
+2ff0 20407ce0 call timer_stop 
+2ff1 7042fdff jam flag_le_enc_end ,mem_le_enc_state 
+2ff2 7042fcff jam flag_le_pairing_end ,mem_le_pairing_state 
+2ff3 70066f3e jam bt_evt_le_pairing_complete ,mem_fifo_temp 
+2ff4 2020782b branch ui_ipc_send_event 
+
+le_secure_connect_sm:
+2ff5 4734402d bpatchx patch2d_0 ,mem_patch2d 
+2ff6 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+2ff7 c4038000 rtnbit0 le_pairing_mode_secure_connect_bit 
+2ff8 6fe0c2f9 fetch 1 ,mem_le_secure_connect_flag 
+2ff9 c1810000 rtnne le_sp_flag_commit_256 
+2ffa 7042f900 jam sp_flag_standby ,mem_le_secure_connect_flag 
+2ffb 6fe0c2fa fetch 1 ,mem_le_secure_connect_state 
+2ffc c000b03d beq le_sc_stat_receive_public_key ,le_sc_sm_receive_public_key 
+2ffd c0013044 beq le_sc_stat_wait_send_public_key ,le_sc_sm_wait_send_public_key 
+2ffe c001b035 beq le_sc_stat_send_public_key ,le_sc_sm_send_public_key 
+2fff c003301a beq le_sc_stat_receive_dhkey ,le_sc_sm_receive_dhkey 
+3000 c003b011 beq le_sc_stat_wait_confirm_gkey ,le_sc_sm_wait_confirm_gkey 
+3001 c0043007 beq le_sc_stat_passkey_wait_confirm ,le_sc_sm_passkey_wait_confirm 
+3002 20600000 rtn 
+
+le_sc_state_clear:
+3003 7042f900 jam sp_flag_standby ,mem_le_secure_connect_flag 
+3004 7042fa00 jam le_sc_stat_null ,mem_le_secure_connect_state 
+3005 7042fb00 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
+3006 20600000 rtn 
+
+le_sc_sm_passkey_wait_confirm:
+3007 6fe0c4cf fetch 1 ,mem_authentication_passkey_times 
+3008 1fe20e00 copy pdata ,queue 
+3009 1fe0fe01 increase 1 ,pdata 
+300a 67e0c4cf store 1 ,mem_authentication_passkey_times 
+300b 6fe242ff fetch 4 ,mem_le_tk 
+300c afefffff qisolate1 pdata 
+300d 58000080 setarg 0x80 
+300e 7920fe00 setflag true ,0 ,pdata 
+300f 67e0c4d0 store 1 ,mem_passkey_1bit 
+3010 20203039 branch le_sc_sm_ready_send_pairing_confirm 
+
+le_sc_sm_wait_confirm_gkey:
+3011 6fe0c2fb fetch 1 ,mem_le_sc_confirm_gkey_flag 
+3012 7042fb00 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
+3013 c000b016 beq flag_le_sc_confrim_gkey_ok ,le_sc_confirm_gkey_ok 
+3014 7042f902 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+3015 20600000 rtn 
+
+le_sc_confirm_gkey_ok:
+3016 70066f31 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+3017 2040782b call ui_ipc_send_event 
+3018 7042fc09 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+3019 20202fab branch le_send_smp_pairing_dhkey_check 
+
+le_sc_sm_receive_dhkey:
+301a 6fe085f9 fetch 1 ,mem_sp_dhkey_invalid 
+301b c001b01e beq sp_key_valid_256 ,le_dhkey_ready 
+301c 7042f902 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+301d 20600000 rtn 
+
+le_dhkey_ready:
+301e 2040717e call function_f5 
+301f 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+3020 c041b023 beq le_pairing_mode_secure_connect_passkey ,le_dhkey_ready_common 
+3021 c0423023 beq le_pairing_mode_secure_connect_passkey_res_input ,le_dhkey_ready_common 
+3022 20402ef0 call le_set_tk_0 
+
+le_dhkey_ready_common:
+3023 2040716b call function_f6_ea 
+3024 da2006d1 arg mem_aes_cmac_temp ,rega 
+3025 da40065e arg mem_sp_confirm_remote ,regb 
+3026 df200010 arg 16 ,loopcnt 
+3027 20407d64 call string_compare 
+3028 2022b02b branch le_dhkey_check_ok ,zero 
+
+le_dhkey_check_fail:
+3029 7001ba0b jam pairing_failed_dhkey_check_failed ,mem_le_ll_pairing_fail_reason 
+302a 20202f2b branch le_send_pairing_failed 
+
+le_dhkey_check_ok:
+302b 2040745b call sp_calc_check_publickey_256 
+302c 2422b029 nbranch le_dhkey_check_fail ,zero 
+302d 70429a01 jam 1 ,mem_ltk_exists 
+302e 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+302f c040b016 beq le_pairing_mode_secure_connect_justwork ,le_sc_confirm_gkey_ok 
+3030 c041b016 beq le_pairing_mode_secure_connect_passkey ,le_sc_confirm_gkey_ok 
+3031 c0423016 beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_confirm_gkey_ok 
+3032 7042f902 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+3033 7042fa07 jam le_sc_stat_wait_confirm_gkey ,mem_le_secure_connect_state 
+3034 20600000 rtn 
+
+le_sc_sm_send_public_key:
+3035 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+3036 c041b03a beq le_pairing_mode_secure_connect_passkey ,le_sc_sm_send_public_key_passkey 
+3037 c042303a beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_sm_send_public_key_passkey 
+3038 7044d000 jam 0 ,mem_passkey_1bit 
+
+le_sc_sm_ready_send_pairing_confirm:
+3039 20202f13 branch le_send_smp_pairing_confirm 
+
+le_sc_sm_send_public_key_passkey:
+303a 7044cf00 jam 0 ,mem_authentication_passkey_times 
+303b c1420000 rtneq le_pairing_mode_secure_connect_passkey_res_input 
+303c 20202ef3 branch le_parse_smp_pairing_req_passkey 
+
+le_sc_sm_receive_public_key:
+303d 7042f902 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+303e 6fe0c46e fetch 1 ,mem_sc_local_key_invalid 
+303f c001b041 beq sp_key_valid_256 ,le_public_key_ready 
+3040 20600000 rtn 
+
+le_public_key_ready:
+3041 7042fa02 jam le_sc_stat_wait_send_public_key ,mem_le_secure_connect_state 
+3042 7005f900 jam sp_key_invalid ,mem_sp_dhkey_invalid 
+3043 2020753c branch sp_dhkey_calc_256 
+
+le_sc_sm_wait_send_public_key:
+3044 7042f902 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+3045 7042fa03 jam le_sc_stat_send_public_key ,mem_le_secure_connect_state 
+3046 20202fa5 branch le_send_smp_pairing_public_key 
+
+le_fifo_malloc_tx_l2cap_smp:
+3047 4734c02d bpatchx patch2d_1 ,mem_patch2d 
+3048 18002406 force le_l2cap_cid_smp ,regb 
+3049 202029fb branch le_fifo_malloc_tx_l2cap 
+
+le_parse_ll:
+304a 6fe0804e fetch 1 ,mem_le_rxbuf_data_ll_opcode 
+304b c0003061 beq ll_connection_update_ind ,le_parse_connection_update_ind 
+304c c000b069 beq ll_channel_map_ind ,le_parse_channel_map_ind 
+304d c0013071 beq ll_terminate_ind ,le_parse_terminate_ind 
+304e c001b075 beq ll_enc_req ,le_parse_enc_req 
+304f c0023093 beq ll_enc_rsp ,le_parse_enc_rsp 
+3050 c002b098 beq ll_start_enc_req ,le_parse_start_enc_req 
+3051 c003309c beq ll_start_enc_rsp ,le_parse_start_enc_rsp 
+3052 c003b0a1 beq ll_unknown_rsp ,le_parse_unknown_rsp 
+3053 c00430a2 beq ll_feature_req ,le_parse_feature_req 
+3054 c004b0a3 beq ll_feature_rsp ,le_parse_feature_rsp 
+3055 c00530a4 beq ll_pause_enc_req ,le_parse_pause_enc_req 
+3056 c005b0a8 beq ll_pause_enc_rsp ,le_parse_pause_enc_rsp 
+3057 c00630a9 beq ll_version_ind ,le_parse_version_ind 
+3058 c006b0ab beq ll_reject_ind ,le_parse_reject_ind 
+3059 c00930ac beq ll_ping_req ,le_parse_ping_req 
+305a c009b0ad beq ll_ping_rsp ,le_parse_ping_rsp 
+305b c00a30ae beq ll_length_req ,le_parse_length_req 
+305c c00ab0b0 beq ll_length_rsp ,le_parse_length_rsp 
+305d c00b30bb beq ll_phy_req ,le_parse_phy_req 
+305e c00c30bc beq ll_phy_update_ind ,le_parse_phy_update_ind 
+305f 6a60804e fetchr regc ,1 ,mem_le_rxbuf_data_ll_opcode 
+3060 202030df branch le_send_unknown_rsp 
+
+le_parse_connection_update_ind:
+3061 efe48006 ifetch 9 ,contr 
+3062 67e4819f store 9 ,mem_le_new_param 
+3063 efe10006 ifetch 2 ,contr 
+3064 67e10188 store 2 ,mem_le_instant 
+3065 6fe08168 fetch 1 ,mem_le_state 
+3066 79207e05 set1 lestate_update_param ,pdata 
+3067 67e08168 store 1 ,mem_le_state 
+3068 20600000 rtn 
+
+le_parse_channel_map_ind:
+3069 efe28006 ifetch 5 ,contr 
+306a 67e2819f store 5 ,mem_le_new_map 
+306b efe10006 ifetch 2 ,contr 
+306c 67e10188 store 2 ,mem_le_instant 
+
+le_update_map_enable:
+306d 6fe08168 fetch 1 ,mem_le_state 
+306e 79207e06 set1 lestate_update_map ,pdata 
+306f 67e08168 store 1 ,mem_le_state 
+3070 20600000 rtn 
+
+le_parse_terminate_ind:
+3071 58000014 setarg 20 
+3072 67e10196 store 2 ,mem_le_superto 
+3073 67e142f5 store 2 ,mem_le_init_superto 
+3074 20600000 rtn 
+
+le_parse_enc_req:
+3075 efe40006 ifetch 8 ,contr 
+3076 67e44305 store 8 ,mem_le_rand 
+3077 efe10006 ifetch 2 ,contr 
+3078 67e14303 store 2 ,mem_le_ediv 
+3079 efe40006 ifetch 8 ,contr 
+307a 67e442e5 store 8 ,mem_le_skdm 
+307b efe20006 ifetch 4 ,contr 
+307c 67e2445e store 4 ,mem_ccm_ivm 
+307d 204030cc call le_send_enc_rsp 
+307e 4735402d bpatchx patch2d_2 ,mem_patch2d 
+307f 6fe0c2fc fetch 1 ,mem_le_pairing_state 
+3080 c004b087 beq flag_le_pairing_after_auth ,le_parse_enc_req_after_auth 
+3081 6fe0c321 fetch 1 ,mem_le_configuration 
+3082 c280b08a bbit1 bit_ble_pairing_fixed_ltk ,le_parse_enc_req_fixed_ltk 
+3083 6fe0c3fa fetch 1 ,mem_nv_data_number 
+3084 245a6e96 ncall load_device_list_mode_4 ,blank 
+3085 6fe0c29a fetch 1 ,mem_ltk_exists 
+3086 c000308f beq 0 ,le_ltk_lost 
+
+le_parse_enc_req_after_auth:
+3087 7042fd01 jam flag_le_rcv_enc_start ,mem_le_enc_state 
+3088 204030da call le_send_start_enc_req 
+3089 2020725c branch generate_sk 
+
+le_parse_enc_req_fixed_ltk:
+308a 70429a01 jam 1 ,mem_ltk_exists 
+308b d8c04322 arg mem_le_fixed_ltk ,contr 
+308c d8a0428a arg mem_le_ltk ,contw 
+308d 20407c8f call memcpy16 
+308e 20203087 branch le_parse_enc_req_after_auth 
+
+le_ltk_lost:
+308f 7042fd00 jam flag_le_enc_null ,mem_le_enc_state 
+3090 7042fc00 jam flag_le_enc_null ,mem_le_pairing_state 
+3091 70066f41 jam bt_evt_le_ltk_lost ,mem_fifo_temp 
+3092 2020782b branch ui_ipc_send_event 
+
+le_parse_enc_rsp:
+3093 efe40006 ifetch 8 ,contr 
+3094 67e442ed store 8 ,mem_le_skds 
+3095 efe20006 ifetch 4 ,contr 
+3096 67e24462 store 4 ,mem_ccm_ivs 
+3097 2020725c branch generate_sk 
+
+le_parse_start_enc_req:
+3098 6fe08168 fetch 1 ,mem_le_state 
+3099 79207e04 set1 lestate_encryption ,pdata 
+309a 67e08168 store 1 ,mem_le_state 
+309b 20600000 rtn 
+
+le_parse_start_enc_rsp:
+309c 20748000 rtn master 
+309d 70066f32 jam bt_evt_le_start_enc ,mem_fifo_temp 
+309e 2040782b call ui_ipc_send_event 
+309f 7042fd04 jam flag_le_send_start_enc_rsp ,mem_le_enc_state 
+30a0 202030dd branch le_send_start_enc_rsp 
+
+le_parse_unknown_rsp:
+30a1 20600000 rtn 
+
+le_parse_feature_req:
+30a2 202030e4 branch le_send_feature_rsp 
+
+le_parse_feature_rsp:
+30a3 20600000 rtn 
+
+le_parse_pause_enc_req:
+30a4 7042fd02 jam flag_le_enc_pause ,mem_le_enc_state 
+30a5 204030eb call le_send_pause_enc_rsp 
+30a6 70066f33 jam bt_evt_le_pause_enc ,mem_fifo_temp 
+30a7 2020782b branch ui_ipc_send_event 
+
+le_parse_pause_enc_rsp:
+30a8 20600000 rtn 
+
+le_parse_version_ind:
+30a9 20748000 rtn master 
+30aa 202030ed branch le_send_version_ind 
+
+le_parse_reject_ind:
+30ab 20600000 rtn 
+
+le_parse_ping_req:
+30ac 202030f9 branch le_send_ping_rsp 
+
+le_parse_ping_rsp:
+30ad 20600000 rtn 
+
+le_parse_length_req:
+30ae 204030b0 call le_parse_length_rsp 
+30af 202030fd branch le_send_data_length_res 
+
+le_parse_length_rsp:
+30b0 efe40006 ifetch 8 ,contr 
+30b1 67e443b8 store 8 ,mem_remote_rx_max_octets 
+30b2 6fe143b8 fetch 2 ,mem_remote_rx_max_octets 
+30b3 684943c4 fetcht 2 ,mem_local_tx_max_octets 
+30b4 20407db0 call not_greater_than 
+30b5 67e143b8 store 2 ,mem_remote_rx_max_octets 
+30b6 6fe143bc fetch 2 ,mem_remote_tx_max_octets 
+30b7 684943c0 fetcht 2 ,mem_local_rx_max_octets 
+30b8 20407db0 call not_greater_than 
+30b9 67e143bc store 2 ,mem_remote_tx_max_octets 
+30ba 20600000 rtn 
+
+le_parse_phy_req:
+30bb 20203103 branch le_send_phy_rsp 
+
+le_parse_phy_update_ind:
+30bc efe10006 ifetch 2 ,contr 
+30bd 67e1019f store 2 ,mem_le_new_m2s_phy 
+30be efe10006 ifetch 2 ,contr 
+30bf 67e10188 store 2 ,mem_le_instant 
+30c0 207a0000 rtn blank 
+30c1 6fe08168 fetch 1 ,mem_le_state 
+30c2 79207e07 set1 lestate_update_phy ,pdata 
+30c3 67e08168 store 1 ,mem_le_state 
+30c4 20600000 rtn 
+
+le_send_terminate_ind_user_terminated:
+30c5 da600013 arg error_remote_user_terminated_connection ,regc 
+
+le_send_terminate_ind:
+30c6 da200002 arg 2 ,rega 
+30c7 da400002 arg ll_terminate_ind ,regb 
+30c8 204029f5 call le_fifo_malloc_tx_ll 
+30c9 1a627e00 copy regc ,pdata 
+30ca e7e08005 istore 1 ,contw 
+30cb 20600000 rtn 
+
+le_send_enc_rsp:
+30cc d8a042ed arg mem_le_skds ,contw 
+30cd 18007208 force 8 ,loopcnt 
+30ce 20407de8 call generate_random_loop 
+30cf d8a04462 arg mem_ccm_ivs ,contw 
+30d0 18007204 force 4 ,loopcnt 
+30d1 20407de8 call generate_random_loop 
+30d2 da20000d arg 13 ,rega 
+30d3 da400004 arg ll_enc_rsp ,regb 
+30d4 204029f5 call le_fifo_malloc_tx_ll 
+30d5 6fe442ed fetch 8 ,mem_le_skds 
+30d6 e7e40005 istore 8 ,contw 
+30d7 6fe24462 fetch 4 ,mem_ccm_ivs 
+30d8 e7e20005 istore 4 ,contw 
+30d9 20600000 rtn 
+
+le_send_start_enc_req:
+30da 7042fd05 jam flag_le_send_start_enc_req ,mem_le_enc_state 
+30db da400005 arg ll_start_enc_req ,regb 
+30dc 2020310d branch le_send_ll_one_lenth 
+
+le_send_start_enc_rsp:
+30dd da400006 arg ll_start_enc_rsp ,regb 
+30de 2020310d branch le_send_ll_one_lenth 
+
+le_send_unknown_rsp:
+30df da200002 arg 2 ,rega 
+30e0 da400007 arg ll_unknown_rsp ,regb 
+30e1 204029f5 call le_fifo_malloc_tx_ll 
+30e2 e2608005 istorer regc ,1 ,contw 
+30e3 20600000 rtn 
+
+le_send_feature_rsp:
+30e4 da200009 arg 9 ,rega 
+30e5 da400009 arg ll_feature_rsp ,regb 
+30e6 204029f5 call le_fifo_malloc_tx_ll 
+30e7 6fe443ae fetch 8 ,mem_le_local_feature 
+30e8 1fe1fe01 or pdata ,fun_ll_feature_le_encryption ,pdata 
+30e9 e7e40005 istore 8 ,contw 
+30ea 20600000 rtn 
+
+le_send_pause_enc_rsp:
+30eb da40000b arg ll_pause_enc_rsp ,regb 
+30ec 2020310d branch le_send_ll_one_lenth 
+
+le_send_version_ind:
+30ed da200006 arg 6 ,rega 
+30ee da40000c arg ll_version_ind ,regb 
+30ef 204029f5 call le_fifo_malloc_tx_ll 
+30f0 6fe2c15e fetch 5 ,mem_version 
+30f1 e7e28005 istore 5 ,contw 
+30f2 20600000 rtn 
+
+le_send_reject_ind:
+30f3 da200002 arg 2 ,rega 
+30f4 da40000d arg ll_reject_ind ,regb 
+30f5 204029f5 call le_fifo_malloc_tx_ll 
+30f6 58000006 setarg le_err_pin_or_key_missing 
+30f7 e7e08005 istore 1 ,contw 
+30f8 20600000 rtn 
+
+le_send_ping_rsp:
+30f9 da400013 arg ll_ping_rsp ,regb 
+30fa 2020310d branch le_send_ll_one_lenth 
+
+le_send_data_length_req:
+30fb da400014 arg ll_length_req ,regb 
+30fc 202030fe branch le_send_data_length 
+
+le_send_data_length_res:
+30fd da400015 arg ll_length_rsp ,regb 
+
+le_send_data_length:
+30fe da200009 arg 9 ,rega 
+30ff 204029f5 call le_fifo_malloc_tx_ll 
+3100 6fe443c0 fetch 8 ,mem_local_rx_max_octets 
+3101 e7e40005 istore 8 ,contw 
+3102 20600000 rtn 
+
+le_send_phy_rsp:
+3103 da200003 arg 3 ,rega 
+3104 da400017 arg ll_phy_rsp ,regb 
+3105 204029f5 call le_fifo_malloc_tx_ll 
+3106 6fe0c3b6 fetch 1 ,mem_le_tx_phys 
+3107 1fe17e07 and pdata ,0x07 ,pdata 
+3108 e7e08005 istore 1 ,contw 
+3109 6fe0c3b7 fetch 1 ,mem_le_rx_phys 
+310a 1fe17e07 and pdata ,0x07 ,pdata 
+310b e7e08005 istore 1 ,contw 
+310c 20600000 rtn 
+
+le_send_ll_one_lenth:
+310d da200001 arg 1 ,rega 
+310e 202029f5 branch le_fifo_malloc_tx_ll 
+
+g24_dispatch:
+310f 4735c02d bpatchx patch2d_3 ,mem_patch2d 
+3110 c513b3a3 bmark1 mark_24g_rxmode ,g24_receive_dispatch 
+3111 20203603 branch g24_transmit_dispatch 
+
+g24_prep:
+3112 4736402d bpatchx patch2d_4 ,mem_patch2d 
+3113 7844fc00 disable enable_crc 
+3114 7843fc00 disable enable_white 
+3115 58555555 setarg 0x555555 
+3116 98001e00 iforce crc24_init 
+3117 6fe0c58d fetch 1 ,mem_24g_ch 
+3118 202025c8 branch le_prep_next 
+
+g24_receive_packet:
+3119 4736c02d bpatchx patch2d_5 ,mem_patch2d 
+311a 6fe0c5b7 fetch 1 ,mem_24g_rx_phy 
+311b 204025a4 call le_enable_phy_by_pdata 
+311c 6fe2458f fetch 4 ,mem_24g_addr 
+311d 98001200 iforce access 
+311e 20402160 call set_sync_on 
+311f 6848c58d fetcht 1 ,mem_24g_ch 
+3120 204025cd call le_rf_rx_enable 
+
+g24_receive_rxon:
+3121 20403112 call g24_prep 
+3122 c597b126 bmark0 mark_ble_lr ,g24_receive_nolr 
+3123 783cfc00 pulse dewhiten_code_calc 
+3124 2000001e nop 30 
+3125 20403112 call g24_prep 
+
+g24_receive_nolr:
+3126 7857fc00 disable user3 
+3127 7826fc00 enable decode_fec0 
+3128 7830fc00 enable is_rx 
+3129 78507c00 disable is_tx 
+312a 78287c00 enable swfine 
+312b 6fe1458b fetch 2 ,mem_24g_rx_window 
+312c 98003600 iforce stop_watch 
+312d 37c18400 correlate null ,timeout 
+312e 242c3180 nbranch g24_sync_timeout ,sync 
+312f 20406877 call rf_debug_rx_sync_line 
+3130 c517b135 bmark1 mark_ble_lr ,g24_receive_skip_fec1 
+3131 6fe0c5ca fetch 1 ,mem_24g_disable_fec1 
+3132 243a3135 nbranch g24_receive_skip_fec1 ,blank 
+3133 7846fc00 disable decode_fec0 
+3134 7825fc00 enable decode_fec1 
+
+g24_receive_skip_fec1:
+3135 7823fc00 enable enable_white 
+3136 7824fc00 enable enable_crc 
+3137 2040317d call g24_receive_byte 
+3138 67e0c5ad store 1 ,mem_24g_get_syncword_crc8 
+3139 6848c5ac fetcht 1 ,mem_24g_syncword_crc8 
+313a 98467c00 isub temp ,null 
+313b 2422b188 nbranch g24_hec_error ,zero 
+313c 4737402d bpatchx patch2d_6 ,mem_patch2d 
+313d 7858fc00 disable user7 
+313e 280ffe2f isolate1 mark_ble_lr ,mark 
+313f 2040b16f call g24_lr_receive_pdu_len ,true 
+3140 2038b18a branch g24_lr_len_error ,user7 
+3141 2040317d call g24_receive_byte 
+3142 67e0c4f7 store 1 ,mem_24g_rxbuf 
+3143 c513b148 bmark1 mark_24g_rxmode ,g24_receive_skip 
+3144 6fe0c4f7 fetch 1 ,mem_24g_rxbuf 
+3145 6848c589 fetcht 1 ,mem_24g_data_type 
+3146 a8400e00 icompare bits_data ,temp 
+3147 2420b18c nbranch g24_type_error ,true 
+
+g24_receive_skip:
+3148 2040317d call g24_receive_byte 
+3149 280ffe2f isolate1 mark_ble_lr ,mark 
+314a 2040b178 call g24_lr_receive_payload_len ,true 
+314b e7e08005 istore 1 ,contw 
+314c 1fe97e00 rshift3 pdata ,pdata 
+314d 1fe67c1f sub pdata ,0x1f ,null 
+314e 2421318e nbranch g24_len_over_error ,positive 
+314f 1fe27200 copy pdata ,loopcnt 
+3150 2022b154 branch g24rx_nopayload ,zero 
+
+g24rx_loop:
+3151 2040317d call g24_receive_byte 
+3152 e7e08005 istore 1 ,contw 
+3153 c2003151 loop g24rx_loop 
+
+g24rx_nopayload:
+3154 c513b159 bmark1 mark_24g_rxmode ,g24_receive_skip_rssi 
+3155 18a22200 copy contw ,rega 
+3156 2040317d call g24_receive_byte 
+3157 67e0c5d3 store 1 ,mem_rssi_hex_received 
+3158 1a220a00 copy rega ,contw 
+
+g24_receive_skip_rssi:
+3159 09800018 parse demod ,bucket ,24 
+315a 1fef7e00 rshift32 pdata ,pdata 
+315b 1ff17e00 rshift16 pdata ,pdata 
+315c e7e18005 istore 3 ,contw 
+315d 6fe0c5ca fetch 1 ,mem_24g_disable_fec1 
+315e 243a316d nbranch g24_receive_skip_disable_fec1 ,blank 
+315f 7845fc00 disable decode_fec1 
+
+g24_receive_skip_next:
+3160 280ffe27 isolate1 mark_24g_rxmode ,mark 
+3161 2040b5c8 call save_rssi_dec ,true 
+3162 20233190 branch g24_crc_error ,crc_failed 
+3163 20406876 call rf_debug_rx_crc_line 
+3164 4737c02d bpatchx patch2d_7 ,mem_patch2d 
+3165 7837fc00 enable user3 
+3166 204026bb call le_match_set_txfreq 
+3167 c6138000 rtnmark1 mark_24g_rxmode 
+3168 6fe0c5d3 fetch 1 ,mem_rssi_hex_received 
+3169 6848c62a fetcht 1 ,mem_rssi_hex_received_max_value 
+316a 98467c00 isub temp ,null 
+316b 20417db2 call copy_temp2pdata ,positive 
+316c 202035cb branch rssi_signal 
+
+g24_receive_skip_disable_fec1:
+316d 7846fc00 disable decode_fec0 
+316e 20203160 branch g24_receive_skip_next 
+
+g24_lr_receive_pdu_len:
+316f 2040317d call g24_receive_byte 
+3170 1fe67c01 sub pdata ,1 ,null 
+3171 20217dc2 branch enable_user7 ,positive 
+3172 1fe0fffe increase -2 ,pdata 
+3173 c513b176 bmark1 mark_24g_rxmode ,g24_lr_receive_pdu_norssi 
+3174 203a7dc2 branch enable_user7 ,blank 
+3175 1fe0ffff increase -1 ,pdata 
+
+g24_lr_receive_pdu_norssi:
+3176 67e08678 store 1 ,mem_temp 
+3177 20600000 rtn 
+
+g24_lr_receive_payload_len:
+3178 1fe17e07 and_into 0x07 ,pdata 
+3179 68488678 fetcht 1 ,mem_temp 
+317a 18498400 lshift3 temp ,temp 
+317b 9841fe00 ior temp ,pdata 
+317c 20600000 rtn 
+
+g24_receive_byte:
+317d 09800008 parse demod ,bucket ,8 
+317e 19897e00 rshift3 pwindow ,pdata 
+317f 20600000 rtn 
+
+g24_sync_timeout:
+3180 7045cb01 jam err_sync_to ,mem_24g_off_type 
+3181 280ffe27 isolate1 mark_24g_rxmode ,mark 
+3182 2040b5e3 call rssi_noise ,true 
+
+g24_end_of_packet:
+3183 4738402e bpatchx patch2e_0 ,mem_patch2e 
+3184 204025bc call le_disable 
+3185 784dfc00 disable encode_fec1 
+3186 7845fc00 disable decode_fec1 
+3187 202020cf branch end_of_packet 
+
+g24_hec_error:
+3188 7045cb02 jam err_hec ,mem_24g_off_type 
+3189 20203183 branch g24_end_of_packet 
+
+g24_lr_len_error:
+318a 7045cb03 jam err_lr_len ,mem_24g_off_type 
+318b 20203183 branch g24_end_of_packet 
+
+g24_type_error:
+318c 7045cb04 jam err_type ,mem_24g_off_type 
+318d 20203183 branch g24_end_of_packet 
+
+g24_len_over_error:
+318e 7045cb05 jam err_len_over ,mem_24g_off_type 
+318f 20203183 branch g24_end_of_packet 
+
+g24_crc_error:
+3190 7045cb06 jam err_crc ,mem_24g_off_type 
+3191 20203183 branch g24_end_of_packet 
+
+g24_set_freq_tx:
+3192 20402160 call set_sync_on 
+3193 6848c58d fetcht 1 ,mem_24g_ch 
+3194 202021f9 branch set_freq_tx 
+
+g24_transmit:
+3195 4738c02e bpatchx patch2e_1 ,mem_patch2e 
+3196 6fe0c5b8 fetch 1 ,mem_24g_tx_phy 
+3197 204025a4 call le_enable_phy_by_pdata 
+3198 6fe2458f fetch 4 ,mem_24g_addr 
+3199 98001200 iforce access 
+319a 20403112 call g24_prep 
+319b 20403192 call g24_set_freq_tx 
+319c 79202a00 set1 txgfsk ,radio_ctrl 
+319d 782efc00 enable encode_fec0 
+319e 78307c00 enable is_tx 
+319f 7850fc00 disable is_rx 
+31a0 2040687d call rf_debug_tx_on_line 
+31a1 785d7c00 disable lr_s2en 
+31a2 c517b1c7 bmark1 mark_ble_lr ,g24_transmit_lr 
+31a3 c516b1d9 bmark1 mark_ble_2m ,g24_transmit_2m 
+31a4 19317e00 rshift16 access ,pdata 
+31a5 1fecfe00 rshift8 pdata ,pdata 
+31a6 1ff1fe00 rshift4 pdata ,pdata 
+31a7 08008628 inject mod ,40 
+
+g24_transmit_packet:
+31a8 4739402e bpatchx patch2e_2 ,mem_patch2e 
+31a9 c517b1ae bmark1 mark_ble_lr ,g24_transmit_nolr 
+31aa 6fe0c5ca fetch 1 ,mem_24g_disable_fec1 
+31ab 243a31ae nbranch g24_transmit_nolr ,blank 
+31ac 784efc00 disable encode_fec0 
+31ad 782dfc00 enable encode_fec1 
+
+g24_transmit_nolr:
+31ae 7823fc00 enable enable_white 
+31af 7824fc00 enable enable_crc 
+31b0 6fe0c58a fetch 1 ,mem_24g_txlen 
+31b1 98007200 iforce loopcnt 
+31b2 d8c04539 arg mem_24g_txpayload ,contr 
+
+g24tr_loop:
+31b3 efe08006 ifetch 1 ,contr 
+31b4 08008608 inject mod ,8 
+31b5 c20031b3 loop g24tr_loop 
+31b6 78247c00 enable enable_parity 
+31b7 08008618 inject mod ,24 
+31b8 78447c00 disable enable_parity 
+31b9 c597b1bd bmark0 mark_ble_lr ,g24_transmit_skip 
+31ba 7843fc00 disable enable_white 
+31bb 58000000 setarg 0 
+31bc 08008603 inject mod ,3 
+
+g24_transmit_skip:
+31bd 37d38200 until null ,tx_clear 
+31be 20000064 nop 100 
+31bf 785d7c00 disable lr_s2en 
+31c0 784efc00 disable encode_fec0 
+31c1 6fe0c5ca fetch 1 ,mem_24g_disable_fec1 
+31c2 243a31c4 nbranch g24_transmit_skip_disable_fec1 ,blank 
+31c3 784dfc00 disable encode_fec1 
+
+g24_transmit_skip_disable_fec1:
+31c4 785c7c00 disable encode_fec3 
+31c5 20402160 call set_sync_on 
+31c6 2020687b branch rf_debug_tx_off_line 
+
+g24_transmit_lr:
+31c7 df20000a arg 10 ,loopcnt 
+
+g24_transmit_lr_preamble_loop:
+31c8 5800003c setarg 0x3c 
+31c9 08008608 inject mod ,8 
+31ca c20031c8 loop g24_transmit_lr_preamble_loop 
+31cb 784efc00 disable encode_fec0 
+31cc 783c7c00 enable encode_fec3 
+31cd 19317e00 rshift16 access ,pdata 
+31ce 1ff17e00 rshift16 pdata ,pdata 
+31cf 1ff1fe00 rshift4 pdata ,pdata 
+31d0 08008620 inject mod ,32 
+31d1 c51731d6 bmark1 mark_ble_lr_s8 ,g24_transmit_lr_s8 
+
+g24_transmit_lr_s2:
+31d2 58000001 setarg 1 
+31d3 08008605 inject mod ,5 
+31d4 783d7c00 enable lr_s2en 
+31d5 202031a8 branch g24_transmit_packet 
+
+g24_transmit_lr_s8:
+31d6 58000000 setarg 0 
+31d7 08008605 inject mod ,5 
+31d8 202031a8 branch g24_transmit_packet 
+
+g24_transmit_2m:
+31d9 6fe0c148 fetch 1 ,mem_system_clk 
+31da 1fe37200 rshift pdata ,loopcnt 
+
+g24_transmit_2m_dealy:
+31db 20000002 nop 2 
+31dc c20031db loop g24_transmit_2m_dealy 
+31dd 19317e00 rshift16 access ,pdata 
+31de 1fecfe00 rshift8 pdata ,pdata 
+31df 1ff18400 rshift4 pdata ,temp 
+31e0 18427e00 copy temp ,pdata 
+31e1 08008608 inject mod ,8 
+31e2 18427e00 copy temp ,pdata 
+31e3 08008628 inject mod ,40 
+31e4 202031a8 branch g24_transmit_packet 
+
+g24_transmit_prep:
+31e5 4739c02e bpatchx patch2e_3 ,mem_patch2e 
+31e6 6fe0c5b8 fetch 1 ,mem_24g_tx_phy 
+31e7 c2813206 bbit1 bit_le_coded_phy ,g24_lr_transmit_prep 
+31e8 6fe0c588 fetch 1 ,mem_24g_datalen 
+31e9 1fe0fe03 increase 3 ,pdata 
+31ea 67e0c58a store 1 ,mem_24g_txlen 
+31eb 6fe0c5ac fetch 1 ,mem_24g_syncword_crc8 
+31ec 67e0c539 store 1 ,mem_24g_txpayload 
+31ed 6fe0c589 fetch 1 ,mem_24g_data_type 
+31ee e7e08005 istore 1 ,contw 
+31ef 6fe0c588 fetch 1 ,mem_24g_datalen 
+
+g24_transmit_prep_pdu:
+31f0 1fe9fe00 lshift3 pdata ,pdata 
+31f1 6848c57e fetcht 1 ,mem_24g_pid 
+31f2 18410403 and temp ,0x03 ,temp 
+31f3 18438400 lshift temp ,temp 
+31f4 9841fe00 ior temp ,pdata 
+31f5 6848c57f fetcht 1 ,mem_24g_no_ack 
+31f6 9840fe00 iadd temp ,pdata 
+31f7 e7e08005 istore 1 ,contw 
+31f8 6fe0c588 fetch 1 ,mem_24g_datalen 
+31f9 98007200 iforce loopcnt 
+31fa d8c04519 arg mem_24g_txbuf ,contr 
+31fb 20407cda call memcpy 
+31fc 473a402e bpatchx patch2e_4 ,mem_patch2e 
+31fd c6938000 rtnmark0 mark_24g_rxmode 
+31fe 6fe08035 fetch 1 ,mem_rssi_hex 
+31ff e7e08005 istore 1 ,contw 
+3200 6fe0c5b8 fetch 1 ,mem_24g_tx_phy 
+3201 c3810000 rtnbit1 bit_le_coded_phy 
+3202 6fe0c58a fetch 1 ,mem_24g_txlen 
+3203 1fe0fe01 increase 1 ,pdata 
+3204 67e0c58a store 1 ,mem_24g_txlen 
+3205 20600000 rtn 
+
+g24_lr_transmit_prep:
+3206 6fe0c588 fetch 1 ,mem_24g_datalen 
+3207 1fe0fe04 increase 4 ,pdata 
+3208 c593b20a bmark0 mark_24g_rxmode ,g24_lr_transmit_prep_skip 
+3209 1fe0fe01 increase 1 ,pdata 
+
+g24_lr_transmit_prep_skip:
+320a 67e0c58a store 1 ,mem_24g_txlen 
+320b 6fe0c5ac fetch 1 ,mem_24g_syncword_crc8 
+320c 67e0c539 store 1 ,mem_24g_txpayload 
+320d 6fe0c58a fetch 1 ,mem_24g_txlen 
+320e 1fe0fffe increase -2 ,pdata 
+320f e7e08005 istore 1 ,contw 
+3210 6fe0c589 fetch 1 ,mem_24g_data_type 
+3211 e7e08005 istore 1 ,contw 
+3212 58000000 setarg 0 
+3213 202031f0 branch g24_transmit_prep_pdu 
+
+g24_read_len_pid_crc:
+3214 473ac02e bpatchx patch2e_5 ,mem_patch2e 
+3215 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+3216 1fe97e00 rshift3 pdata ,pdata 
+3217 67e0c57d store 1 ,mem_24g_rxdata_length 
+3218 1fe0fe01 increase 1 ,pdata 
+3219 d8c044f8 arg mem_24g_rxbuf + 1 ,contr 
+321a 98c08c00 iadd contr ,contr 
+321b efe18006 ifetch 3 ,contr 
+321c 67e1c580 store 3 ,mem_24g_sta_crc 
+321d 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+321e 1fe37e00 rshift pdata ,pdata 
+321f 1fe17e03 and pdata ,0x03 ,pdata 
+3220 67e0c586 store 1 ,mem_24g_sta_pid 
+3221 20600000 rtn 
+
+g24_ch:
+3222 473b402e bpatchx patch2e_6 ,mem_patch2e 
+3223 6848c58e fetcht 1 ,mem_24g_current_ch_number 
+3224 20403227 call g24_ch_map_size 
+3225 6048c58e storet 1 ,mem_24g_current_ch_number 
+3226 20600000 rtn 
+
+g24_ch_map_size:
+3227 473bc02e bpatchx patch2e_7 ,mem_patch2e 
+3228 2040322c call g24_ch_calc 
+3229 18408401 increase 1 ,temp 
+322a 18410403 and_into 3 ,temp 
+322b 20600000 rtn 
+
+g24_ch_calc:
+322c 473c402f bpatchx patch2f_0 ,mem_patch2f 
+322d 6fe0c58f fetch 1 ,mem_24g_addr 
+322e 1fe17e03 and_into 0x03 ,pdata 
+322f 1fefa204 mul32 pdata ,4 ,rega 
+3230 58004593 setarg mem_24g_ch_map1 
+3231 9a20fe00 iadd rega ,pdata 
+3232 98408c00 iadd temp ,contr 
+3233 efe08006 ifetch 1 ,contr 
+3234 67e0c58d store 1 ,mem_24g_ch 
+3235 20600000 rtn 
+
+g24_update_addr_and_synccrc8:
+3236 67e2458f store 4 ,mem_24g_addr 
+3237 473cc02f bpatchx patch2f_1 ,mem_patch2f 
+
+g24_syncword_crc8:
+3238 da200000 arg 0 ,rega 
+3239 df200004 arg 4 ,loopcnt 
+323a d8c0458f arg mem_24g_addr ,contr 
+
+g24_syncword_crc8_loop:
+323b efe08006 ifetch 1 ,contr 
+323c 9a20a200 iadd rega ,rega 
+323d c200323b loop g24_syncword_crc8_loop 
+323e 1a227e00 copy rega ,pdata 
+323f 67e145aa store 2 ,mem_24g_syncword 
+3240 6fe0c5aa fetch 1 ,mem_24g_syncword 
+3241 6848c5ab fetcht 1 ,mem_24g_syncword + 1 
+3242 9840fe00 iadd temp ,pdata 
+3243 67e0c5ac store 1 ,mem_24g_syncword_crc8 
+3244 20600000 rtn 
+
+g24_timer_check:
+3245 473d402f bpatchx patch2f_2 ,mem_patch2f 
+3246 20407dbc call disable_user 
+3247 684a45a3 fetcht 4 ,mem_24g_tx_btclk 
+3248 1c427e00 copy clkn_bt ,pdata 
+3249 98467c00 isub temp ,null 
+324a 24413255 ncall g24_timer_timeout ,positive 
+324b 1fe22400 copy pdata ,regb 
+324c 6fe245a3 fetch 4 ,mem_24g_tx_btclk 
+324d 6848c5a7 fetcht 1 ,mem_24g_interval 
+324e 98408400 iadd temp ,temp 
+324f 1a427e00 copy regb ,pdata 
+3250 98467c00 isub temp ,null 
+3251 24610000 nrtn positive 
+3252 793ffe1c set0 28 ,pdata 
+3253 67e245a3 store 4 ,mem_24g_tx_btclk 
+3254 20207dba branch enable_user 
+
+g24_timer_timeout:
+3255 20628000 rtn zero 
+3256 79207e1c set1 28 ,pdata 
+3257 20600000 rtn 
+
+g24_timer_init:
+3258 58000000 setarg 0 
+3259 67e245a3 store 4 ,mem_24g_tx_btclk 
+325a 20600000 rtn 
+
+g24_chmap_param_init:
+325b 473dc02f bpatchx patch2f_3 ,mem_patch2f 
+325c 38001300 setsect 0 ,0x1300 
+325d 3805908b setsect 1 ,0x1908b 
+325e 380b6150 setsect 2 ,0x36150 
+325f 380c3d20 setsect 3 ,0x3d20 
+3260 67e4c593 store 9 ,mem_24g_ch_map1 
+3261 38003a1a setsect 0 ,0x3a1a 
+3262 3804c453 setsect 1 ,0xc453 
+3263 3808d312 setsect 2 ,0xd312 
+3264 380c0001 setsect 3 ,0x1 
+3265 e7e38005 istore 7 ,contw 
+3266 6fe0c5b9 fetch 1 ,mem_24g_ch_map_update 
+3267 207a0000 rtn blank 
+3268 d8c045ba arg mem_24g_ch_update_map1 ,contr 
+3269 d8a04593 arg mem_24g_ch_map1 ,contw 
+326a 20207c8f branch memcpy16 
+
+g24_chamap_param_update:
+326b 473e402f bpatchx patch2f_4 ,mem_patch2f 
+326c 584e001e setarg 0x4e001e 
+326d 67e1c5bb store 3 ,mem_24g_ch_update_map1 + 1 
+326e 58032303 setarg 0x032303 
+326f e7e18005 istore 3 ,contw 
+3270 58250642 setarg 0x250642 
+3271 e7e18005 istore 3 ,contw 
+3272 58094c06 setarg 0x094c06 
+3273 e7e18005 istore 3 ,contw 
+3274 583c0927 setarg 0x3c0927 
+3275 e7e18005 istore 3 ,contw 
+3276 7045b901 jam 1 ,mem_24g_ch_map_update 
+3277 20600000 rtn 
+
+g24_rx_window_init:
+3278 473ec02f bpatchx patch2f_5 ,mem_patch2f 
+3279 d8406978 arg 0x6978 ,temp 
+327a c513b27f bmark1 mark_24g_rxmode ,g24_rx_window_store 
+327b d84012c0 arg 0x12c0 ,temp 
+327c 6fe0c5b7 fetch 1 ,mem_24g_rx_phy 
+327d c301327f bbit0 2 ,g24_rx_window_store 
+327e d8402ee0 arg 0x2ee0 ,temp 
+
+g24_rx_window_store:
+327f 6049458b storet 2 ,mem_24g_rx_window 
+3280 20600000 rtn 
+
+g24_enable_1m:
+3281 7045b701 jam 0x01 ,mem_24g_rx_phy 
+3282 7045b801 jam 0x01 ,mem_24g_tx_phy 
+3283 20600000 rtn 
+
+g24_enable_2m:
+3284 7045b702 jam 0x02 ,mem_24g_rx_phy 
+3285 7045b802 jam 0x02 ,mem_24g_tx_phy 
+3286 20600000 rtn 
+
+g24_pair_param_init:
+3287 473f402f bpatchx patch2f_6 ,mem_patch2f 
+3288 7045d04e jam 0x4e ,mem_24g_pair_ch 
+3289 58101520 setarg 0x101520 
+328a 67e1c5cc store 3 ,mem_24g_pair_addr 
+328b 58000005 setarg 0x05 
+328c e7e08005 istore 1 ,contw 
+328d 20600000 rtn 
+
+g24_pair_timeout_timer:
+328e da6045d8 arg mem_24g_pair_timeout ,regc 
+328f da40367a arg g24_stop_24g_mode ,regb 
+3290 202042e7 branch timer_single_step_2b 
+
+g24_pair_start:
+3291 79200026 set1 mark_24g ,mark 
+3292 6fe0c5fc fetch 1 ,mem_24g_conn_sm 
+3293 793ffe02 set0 state_24g_reconn ,pdata 
+3294 79207e01 set1 state_24g_pair ,pdata 
+3295 67e0c5fc store 1 ,mem_24g_conn_sm 
+3296 58000000 setarg 0 
+3297 67e145de store 2 ,mem_24g_reconn_timeout 
+3298 6fe145d6 fetch 2 ,mem_24g_pair_timeout_init 
+3299 67e145d8 store 2 ,mem_24g_pair_timeout 
+329a 7045d500 jam 0 ,mem_24g_pair_no_ack 
+329b 204032d6 call g24_pair_sm_reinit 
+
+g24_pair_init_param:
+329c 70457e00 jam 0 ,mem_24g_pid 
+329d 6fe0c5d0 fetch 1 ,mem_24g_pair_ch 
+329e 67e0c58d store 1 ,mem_24g_ch 
+329f 6fe0c5d1 fetch 1 ,mem_24g_pair_tx_power 
+32a0 67e0c141 store 1 ,mem_tx_power 
+32a1 6fe245cc fetch 4 ,mem_24g_pair_addr 
+32a2 20203236 branch g24_update_addr_and_synccrc8 
+
+g24_pair_dispatch:
+32a3 473fc02f bpatchx patch2f_7 ,mem_patch2f 
+32a4 7045e200 jam default_24g_device ,mem_24g_reconn_type 
+32a5 6fe145da fetch 2 ,mem_24g_pair_count 
+32a6 1fe0fe01 increase 1 ,pdata 
+32a7 67e145da store 2 ,mem_24g_pair_count 
+32a8 6fe0c5da fetch 1 ,mem_24g_pair_count 
+32a9 1fe17eff and pdata ,0xff ,pdata 
+32aa 247a0000 nrtn blank 
+32ab 6fe0c5d4 fetch 1 ,mem_24g_pair_sm 
+32ac c07fb2f8 beq state_24g_pairing_success ,g24_pair_exit 
+32ad c000b2b2 beq state_24g_pairing_1 ,g24_pair_sm_1 
+32ae c00132b4 beq state_24g_pairing_2 ,g24_pair_sm_2 
+32af c001b2ba beq state_24g_pairing_3 ,g24_pair_sm_3 
+32b0 c00232c0 beq state_24g_pairing_4 ,g24_pair_sm_4 
+32b1 20600000 rtn 
+
+g24_pair_sm_1:
+32b2 704519ff jam datatype_attemp ,mem_24g_txbuf 
+32b3 202032c1 branch g24_pair_sm_prep 
+
+g24_pair_sm_2:
+32b4 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+32b5 203a32b8 branch g24_pair_sm_2_skip ,blank 
+32b6 6fe24604 fetch 4 ,mem_24g_device_addr 
+32b7 20403236 call g24_update_addr_and_synccrc8 
+
+g24_pair_sm_2_skip:
+32b8 704519aa jam datatype_bind ,mem_24g_txbuf 
+32b9 202032c1 branch g24_pair_sm_prep 
+
+g24_pair_sm_3:
+32ba 70451955 jam datatype_config ,mem_24g_txbuf 
+32bb 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+32bc 203a32c1 branch g24_pair_sm_prep ,blank 
+32bd 6fe245e8 fetch 4 ,mem_24g_receiver_addr 
+32be 67e2451b store 4 ,mem_24g_txbuf + 2 
+32bf 202032c3 branch g24_pair_sm_common 
+
+g24_pair_sm_4:
+32c0 70451922 jam datatype_ok ,mem_24g_txbuf 
+
+g24_pair_sm_prep:
+32c1 6fe24604 fetch 4 ,mem_24g_device_addr 
+32c2 67e2451b store 4 ,mem_24g_txbuf + 2 
+
+g24_pair_sm_common:
+32c3 6fe0c589 fetch 1 ,mem_24g_data_type 
+32c4 1fe17e07 and_into bits_data ,pdata 
+32c5 67e0c51a store 1 ,mem_24g_txbuf + 1 
+32c6 70451f00 jam 0 ,mem_24g_txbuf + 6 
+32c7 70458807 jam 7 ,mem_24g_datalen 
+32c8 204031e5 call g24_transmit_prep 
+32c9 20403651 call g24_transmit_receive_ack 
+32ca 246c0000 nrtn sync 
+32cb 24778000 nrtn user3 
+32cc 2040357b call g24_txbuf_clear 
+32cd 2040366e call g24_ackpayload_parse 
+32ce 47404030 bpatchx patch30_0 ,mem_patch30 
+32cf 6fe0c5d4 fetch 1 ,mem_24g_pair_sm 
+32d0 c17f8000 rtneq state_24g_pairing_success 
+32d1 c000b2db beq state_24g_pairing_1 ,g24_pair_sm_1_waiting_ack 
+32d2 c00132dd beq state_24g_pairing_2 ,g24_pair_sm_2_waiting_ack 
+32d3 c001b2e3 beq state_24g_pairing_3 ,g24_pair_sm_3_waiting_ack 
+32d4 c00232eb beq state_24g_pairing_4 ,g24_pair_sm_4_waiting_ack 
+32d5 20600000 rtn 
+
+g24_pair_sm_reinit:
+32d6 7045d402 jam state_24g_pairing_2 ,mem_24g_pair_sm 
+32d7 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+32d8 207a0000 rtn blank 
+32d9 7045d401 jam state_24g_pairing_1 ,mem_24g_pair_sm 
+32da 20600000 rtn 
+
+g24_pair_sm_1_waiting_ack:
+32db 7045d402 jam state_24g_pairing_2 ,mem_24g_pair_sm 
+32dc 2020364c branch g24_transmit_abandon 
+
+g24_pair_sm_2_waiting_ack:
+32dd 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+32de 203a32e1 branch g24_pair_sm_2_waiting_ack_skip ,blank 
+32df 6fe2455f fetch 4 ,mem_24g_rxpayload + 2 
+32e0 67e245e8 store 4 ,mem_24g_receiver_addr 
+
+g24_pair_sm_2_waiting_ack_skip:
+32e1 7045d403 jam state_24g_pairing_3 ,mem_24g_pair_sm 
+32e2 2020364c branch g24_transmit_abandon 
+
+g24_pair_sm_3_waiting_ack:
+32e3 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+32e4 203a32e9 branch g24_pair_sm_3_waiting_ack_skip ,blank 
+32e5 6fe2455f fetch 4 ,mem_24g_rxpayload + 2 
+32e6 684a4604 fetcht 4 ,mem_24g_device_addr 
+32e7 98467c00 isub temp ,null 
+32e8 24628000 nrtn zero 
+
+g24_pair_sm_3_waiting_ack_skip:
+32e9 7045d404 jam state_24g_pairing_4 ,mem_24g_pair_sm 
+32ea 2020364c branch g24_transmit_abandon 
+
+g24_pair_sm_4_waiting_ack:
+32eb 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+32ec 203a32f1 branch g24_pair_sm_4_waiting_ack_skip ,blank 
+32ed 6fe2455f fetch 4 ,mem_24g_rxpayload + 2 
+32ee 684a45e8 fetcht 4 ,mem_24g_receiver_addr 
+32ef 98467c00 isub temp ,null 
+32f0 24628000 nrtn zero 
+
+g24_pair_sm_4_waiting_ack_skip:
+32f1 7045d4ff jam state_24g_pairing_success ,mem_24g_pair_sm 
+32f2 70066f39 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
+32f3 2040782b call ui_ipc_send_event 
+32f4 58000000 setarg 0 
+32f5 67e145d8 store 2 ,mem_24g_pair_timeout 
+32f6 6fe2455f fetch 4 ,mem_24g_rxpayload + 2 
+32f7 20403236 call g24_update_addr_and_synccrc8 
+
+g24_pair_exit:
+32f8 6fe0c5fc fetch 1 ,mem_24g_conn_sm 
+32f9 793ffe01 set0 state_24g_pair ,pdata 
+32fa 67e0c5fc store 1 ,mem_24g_conn_sm 
+32fb 2020364c branch g24_transmit_abandon 
+
+g24_bind_mode_enable:
+32fc 70461601 jam dongle_bind ,mem_24g_work_mode 
+32fd 70461500 jam clear_init ,mem_24g_mode_init 
+32fe 20600000 rtn 
+
+g24_bind_init:
+32ff 6fe0c615 fetch 1 ,mem_24g_mode_init 
+3300 c3808000 rtnbit1 dongle_bind 
+3301 79207e01 set1 dongle_bind ,pdata 
+3302 67e0c615 store 1 ,mem_24g_mode_init 
+3303 58000000 setarg 0 
+3304 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
+3305 67e0c5de store 1 ,mem_24g_device1_bind_disable 
+3306 67e0c5df store 1 ,mem_24g_device2_bind_disable 
+3307 67e2462c store 4 ,mem_24g_transmitter_addr 
+3308 70461101 jam 1 ,mem_24g_ackpayload_enable 
+3309 2020329c branch g24_pair_init_param 
+
+g24_bind_ackpayload_prep:
+330a 70461101 jam 1 ,mem_24g_ackpayload_enable 
+330b 70458808 jam 0x08 ,mem_24g_datalen 
+330c d8c045d6 arg mem_24g_bind_payload ,contr 
+330d d8a04519 arg mem_24g_txbuf ,contw 
+330e 20207c89 branch memcpy8 
+
+g24_bind_data_process:
+330f 4740c030 bpatchx patch30_1 ,mem_patch30 
+3310 204033be call g24_rx_interrupt_clear 
+3311 20403119 call g24_receive_packet 
+3312 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+3313 2040331e call g24_bind_data_parse 
+3314 204033f4 call g24_transmit_ack 
+3315 20403399 call g24_bind_device_status_check 
+3316 2040493d call dongle_kb_bind_soft_reset 
+3317 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+3318 207a0000 rtn blank 
+3319 6fe2462c fetch 4 ,mem_24g_transmitter_addr 
+331a 207a0000 rtn blank 
+331b 20203236 branch g24_update_addr_and_synccrc8 
+
+g24_bind_data_error:
+331c 204033be call g24_rx_interrupt_clear 
+331d 20203183 branch g24_end_of_packet 
+
+g24_bind_data_parse:
+331e 70462205 jam bind_mode_continue ,mem_24g_bind_mode_continue 
+331f d8c044f7 arg mem_24g_rxbuf ,contr 
+3320 d8a045e8 arg mem_24g_rxdata_temp ,contw 
+3321 20407c89 call memcpy8 
+3322 47414030 bpatchx patch30_2 ,mem_patch30 
+3323 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+3324 c0553329 beq datatype_bind ,g24_bind_first_step 
+3325 c02ab33a beq datatype_config ,g24_bind_second_step 
+3326 c011335b beq datatype_ok ,g24_bind_third_step 
+3327 c07fb59b beq datatype_attemp ,g24_data_attemp 
+3328 20600000 rtn 
+
+g24_bind_first_step:
+3329 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+332a c000b32d beq datatype_device1 ,g24_bind_first_step_device1 
+332b c0013335 beq datatype_device2 ,g24_bind_first_step_device2 
+332c 20600000 rtn 
+
+g24_bind_first_step_device1:
+332d 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+332e 247a0000 nrtn blank 
+332f 7045d301 jam 1 ,mem_24g_device1_bind_step 
+
+g24_bind_dvc1_payload_cfg:
+3330 7045d601 jam datatype_device1 ,mem_24g_bind_payload 
+
+g24_bind_payload_cfg:
+3331 7045d780 jam 0x80 ,mem_24g_bind_payload + 1 
+3332 6fe344f1 fetch 6 ,mem_24g_lap 
+3333 67e345d8 store 6 ,mem_24g_bind_payload + 2 
+3334 20600000 rtn 
+
+g24_bind_first_step_device2:
+3335 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
+3336 247a0000 nrtn blank 
+3337 7045d401 jam 1 ,mem_24g_device2_bind_step 
+
+g24_bind_dvc2_payload_cfg:
+3338 7045d602 jam datatype_device2 ,mem_24g_bind_payload 
+3339 20203331 branch g24_bind_payload_cfg 
+
+g24_bind_second_step:
+333a 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+333b 203a3340 branch g24_bind_second_step_skip ,blank 
+333c 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
+333d 684a44f1 fetcht 4 ,mem_24g_lap 
+333e 98467c00 isub temp ,null 
+333f 24628000 nrtn zero 
+
+g24_bind_second_step_skip:
+3340 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+3341 c000b344 beq datatype_device1 ,g24_bind_second_step_device1 
+3342 c0013351 beq datatype_device2 ,g24_bind_second_step_device2 
+3343 20600000 rtn 
+
+g24_bind_second_step_device1:
+3344 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+3345 247a0000 nrtn blank 
+3346 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+3347 c000b349 beq 1 ,g24_bind_dvc1_step_set2 
+3348 20600000 rtn 
+
+g24_bind_dvc1_step_set2:
+3349 7045d302 jam 2 ,mem_24g_device1_bind_step 
+334a 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+334b 203a3330 branch g24_bind_dvc1_payload_cfg ,blank 
+
+g24_bind_dvc1_payload_cfg_transmitter_addr:
+334c 7045d601 jam datatype_device1 ,mem_24g_bind_payload 
+
+g24_bind_payload_cfg_transmitter_addr:
+334d 7045d780 jam 0x80 ,mem_24g_bind_payload + 1 
+334e 6fe2462c fetch 4 ,mem_24g_transmitter_addr 
+334f 67e245d8 store 4 ,mem_24g_bind_payload + 2 
+3350 20207dba branch enable_user 
+
+g24_bind_second_step_device2:
+3351 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
+3352 247a0000 nrtn blank 
+3353 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+3354 c000b356 beq 1 ,g24_bind_dvc2_step_set2 
+3355 20600000 rtn 
+
+g24_bind_dvc2_step_set2:
+3356 7045d402 jam 2 ,mem_24g_device2_bind_step 
+3357 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+3358 203a3338 branch g24_bind_dvc2_payload_cfg ,blank 
+3359 7045d602 jam datatype_device2 ,mem_24g_bind_payload 
+335a 2020334d branch g24_bind_payload_cfg_transmitter_addr 
+
+g24_bind_third_step:
+335b 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+335c 203a3361 branch g24_bind_third_step_skip ,blank 
+335d 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
+335e 684a462c fetcht 4 ,mem_24g_transmitter_addr 
+335f 98467c00 isub temp ,null 
+3360 24628000 nrtn zero 
+
+g24_bind_third_step_skip:
+3361 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+3362 c000b365 beq datatype_device1 ,g24_bind_third_step_device1 
+3363 c0013372 beq datatype_device2 ,g24_bind_third_step_device2 
+3364 20600000 rtn 
+
+g24_bind_third_step_device1:
+3365 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+3366 247a0000 nrtn blank 
+3367 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+3368 c001336a beq 2 ,g24_bind_dvc1_step_success 
+3369 20600000 rtn 
+
+g24_bind_dvc1_step_success:
+336a 7045de01 jam 1 ,mem_24g_device1_bind_disable 
+336b 20403330 call g24_bind_dvc1_payload_cfg 
+336c 6fe0c5d5 fetch 1 ,mem_24g_bind_device_status 
+336d 1fe1fe01 or_into 0x01 ,pdata 
+336e 67e0c5d5 store 1 ,mem_24g_bind_device_status 
+
+g24_bind_exit:
+336f 58000000 setarg 0 
+3370 67e145d3 store 2 ,mem_24g_device1_bind_step 
+3371 20600000 rtn 
+
+g24_bind_third_step_device2:
+3372 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
+3373 247a0000 nrtn blank 
+3374 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+3375 c0803377 bne 0 ,g24_bind_dvc2_step_success 
+3376 20600000 rtn 
+
+g24_bind_dvc2_step_success:
+3377 7045df01 jam 1 ,mem_24g_device2_bind_disable 
+3378 20403338 call g24_bind_dvc2_payload_cfg 
+3379 6fe0c5d5 fetch 1 ,mem_24g_bind_device_status 
+337a 1fe1fe02 or_into 0x02 ,pdata 
+337b 67e0c5d5 store 1 ,mem_24g_bind_device_status 
+337c 2040336f call g24_bind_exit 
+337d 20204937 branch dongle_g24_store_dvc2_bind_flag 
+
+g24_binding_device_check:
+337e 6fe0c616 fetch 1 ,mem_24g_work_mode 
+337f c1808000 rtnne dongle_bind 
+3380 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+3381 247a0000 nrtn blank 
+3382 6fe0c4fa fetch 1 ,mem_24g_rxbuf + 3 
+3383 c000b386 beq datatype_device1 ,g24_binding_dvc1_status 
+3384 c001338a beq datatype_device2 ,g24_binding_dvc2_status 
+3385 20600000 rtn 
+
+g24_binding_dvc1_status:
+3386 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
+3387 c4000000 rtnbit0 0 
+
+disable_user3:
+3388 7857fc00 disable user3 
+3389 20600000 rtn 
+
+g24_binding_dvc2_status:
+338a 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
+338b c4008000 rtnbit0 1 
+338c 20203388 branch disable_user3 
+
+g24_binding_dvc1_living:
+338d 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+338e 247a0000 nrtn blank 
+338f 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
+3390 1fe1fe01 or_into 0x01 ,pdata 
+3391 67e0c62b store 1 ,mem_24g_bind_device_living 
+3392 20600000 rtn 
+
+g24_binding_dvc2_living:
+3393 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+3394 247a0000 nrtn blank 
+3395 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
+3396 1fe1fe02 or_into 0x02 ,pdata 
+3397 67e0c62b store 1 ,mem_24g_bind_device_living 
+3398 20600000 rtn 
+
+g24_bind_device_status_check:
+3399 6fe0c5d5 fetch 1 ,mem_24g_bind_device_status 
+339a 207a0000 rtn blank 
+
+g24_bind_device_status:
+339b 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+339c c000b38d beq datatype_device1 ,g24_binding_dvc1_living 
+339d c0013393 beq datatype_device2 ,g24_binding_dvc2_living 
+339e 20600000 rtn 
+
+g24_receive_init:
+339f 79200027 set1 mark_24g_rxmode ,mark 
+33a0 6fe0c141 fetch 1 ,mem_tx_power 
+33a1 67e0c623 store 1 ,mem_tx_power_temp 
+33a2 202035d6 branch rssi_receiver_buff_init 
+
+g24_receive_dispatch:
+33a3 6fe145e0 fetch 2 ,mem_cb_24g_receive_process 
+33a4 20207d79 branch callback_func 
+
+g24_ackpayload_prep:
+33a5 4741c030 bpatchx patch30_3 ,mem_patch30 
+33a6 70458800 jam 0 ,mem_24g_datalen 
+33a7 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
+33a8 207a0000 rtn blank 
+33a9 6fe145e2 fetch 2 ,mem_cb_24g_ackpayload 
+33aa 20207d79 branch callback_func 
+
+g24_receive_packet_start:
+33ab 204033f1 call g24_receive_transmit_ack 
+33ac 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+
+g24_receive_packet_parse:
+33ad 204033e3 call g24_receive_packet_parse_pid_crc 
+33ae 243433be nbranch g24_rx_interrupt_clear ,user 
+33af 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+33b0 203a33be branch g24_rx_interrupt_clear ,blank 
+33b1 1fe0fe02 increase 2 ,pdata 
+33b2 98007200 iforce loopcnt 
+33b3 d8c044f7 arg mem_24g_rxbuf ,contr 
+33b4 d8a045e8 arg mem_24g_rxdata_temp ,contw 
+33b5 20407cda call memcpy 
+33b6 70461300 jam 0 ,mem_24g_mode_switch 
+33b7 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+33b8 205a33fe call g24_enable_nodata_timer ,blank 
+33b9 47424030 bpatchx patch30_4 ,mem_patch30 
+33ba 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+33bb c000b3c4 beq datatype_device1 ,g24_data_device1 
+33bc c00133d3 beq datatype_device2 ,g24_data_device2 
+33bd c07fb3c2 beq datatype_attemp ,g24_data_receive_attemp 
+
+g24_rx_interrupt_clear:
+33be 4742c030 bpatchx patch30_5 ,mem_patch30 
+33bf d8a044f7 arg mem_24g_rxbuf ,contw 
+33c0 df200042 arg 66 ,loopcnt 
+33c1 20207ca1 branch clear_mem 
+
+g24_data_receive_attemp:
+33c2 2040339b call g24_bind_device_status 
+33c3 2020359b branch g24_data_attemp 
+
+g24_data_device1:
+33c4 2040338d call g24_binding_dvc1_living 
+33c5 2040352e call g24_ch_timer_reinit 
+33c6 6fe0c60a fetch 1 ,mem_24g_abort_packet 
+33c7 6848c5e8 fetcht 1 ,mem_24g_rxdata_temp 
+33c8 284ffe03 isolate1 bit_abort ,temp 
+33c9 7920fe00 setflag true ,0 ,pdata 
+33ca 67e0c60a store 1 ,mem_24g_abort_packet 
+33cb c000b3d9 beq 1 ,g24_data_attemp_device1_abort 
+33cc 6fe0c612 fetch 1 ,mem_24g_hop_packet 
+33cd 6848c5e8 fetcht 1 ,mem_24g_rxdata_temp 
+33ce 284ffe04 isolate1 bit_hop ,temp 
+33cf 7920fe00 setflag true ,0 ,pdata 
+33d0 67e0c612 store 1 ,mem_24g_hop_packet 
+33d1 6fe145e4 fetch 2 ,mem_cb_24g_data_device1 
+33d2 20207d79 branch callback_func 
+
+g24_data_device2:
+33d3 20403393 call g24_binding_dvc2_living 
+33d4 6848c5e8 fetcht 1 ,mem_24g_rxdata_temp 
+33d5 284ffe03 isolate1 bit_abort ,temp 
+33d6 2020b3e1 branch g24_data_attemp_device2_abort ,true 
+33d7 6fe145e6 fetch 2 ,mem_cb_24g_data_device2 
+33d8 20207d79 branch callback_func 
+
+g24_data_attemp_device1_abort:
+33d9 6fe0c3cb fetch 1 ,mem_device_option 
+33da 1fe67c0e sub pdata ,dvc_op_car ,null 
+33db 2042c469 call car_stop_blink ,zero 
+33dc 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+33dd 247a0000 nrtn blank 
+33de 7045de01 jam 1 ,mem_24g_device1_bind_disable 
+33df 6fe245f2 fetch 4 ,mem_24g_rxdata_temp + 10 
+33e0 202035a3 branch g24_store_device1_addr 
+
+g24_data_attemp_device2_abort:
+33e1 6fe245f2 fetch 4 ,mem_24g_rxdata_temp + 10 
+33e2 202035a9 branch g24_store_device2_addr 
+
+g24_receive_packet_parse_pid_crc:
+33e3 20407dbc call disable_user 
+33e4 6fe0c586 fetch 1 ,mem_24g_sta_pid 
+33e5 6848c587 fetcht 1 ,mem_24g_last_pid 
+33e6 98467c00 isub temp ,null 
+33e7 2442fdba ncall enable_user ,zero 
+33e8 6fe0c586 fetch 1 ,mem_24g_sta_pid 
+33e9 67e0c587 store 1 ,mem_24g_last_pid 
+33ea 6fe1c580 fetch 3 ,mem_24g_sta_crc 
+33eb 6849c583 fetcht 3 ,mem_24g_last_crc 
+33ec 98467c00 isub temp ,null 
+33ed 2442fdba ncall enable_user ,zero 
+33ee 6fe1c580 fetch 3 ,mem_24g_sta_crc 
+33ef 67e1c583 store 3 ,mem_24g_last_crc 
+33f0 20600000 rtn 
+
+g24_receive_transmit_ack:
+33f1 204033be call g24_rx_interrupt_clear 
+33f2 20403119 call g24_receive_packet 
+33f3 24778000 nrtn user3 
+
+g24_transmit_ack:
+33f4 6fe0c4f7 fetch 1 ,mem_24g_rxbuf 
+33f5 67e0c589 store 1 ,mem_24g_data_type 
+33f6 20403214 call g24_read_len_pid_crc 
+33f7 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+33f8 2feffe00 isolate1 bit_ack_24g ,pdata 
+33f9 2020b3fd branch g24tx_no_ack ,true 
+
+g24tx_with_ack:
+33fa 204033a5 call g24_ackpayload_prep 
+33fb 204031e5 call g24_transmit_prep 
+33fc 20403195 call g24_transmit 
+
+g24tx_no_ack:
+33fd 20203183 branch g24_end_of_packet 
+
+g24_enable_nodata_timer:
+33fe 70461401 jam 1 ,mem_24g_nodata_timer_enable 
+
+g24_enable_nodata_timer_init:
+33ff 58000280 setarg timer_nodata_delay 
+3400 d8e00008 arg g24_timer_nodata ,queue 
+3401 20207ce1 branch timer_init 
+
+g24_mode_switch_init:
+3402 47434030 bpatchx patch30_6 ,mem_patch30 
+3403 70461301 jam 1 ,mem_24g_mode_switch 
+3404 70461700 jam 0 ,mem_24g_time_slice 
+3405 7045a7ff jam 0xff ,mem_24g_interval 
+3406 20203258 branch g24_timer_init 
+
+g24_mode_switch_bind_work:
+3407 4743c030 bpatchx patch30_7 ,mem_patch30 
+3408 6fe0c613 fetch 1 ,mem_24g_mode_switch 
+3409 207a0000 rtn blank 
+340a 20403245 call g24_timer_check 
+340b 24740000 nrtn user 
+340c 20403414 call g24_bind_mode_continue 
+340d 6fe0c617 fetch 1 ,mem_24g_time_slice 
+340e 1fe0fe01 increase 1 ,pdata 
+340f 1fe17e01 and_into 1 ,pdata 
+3410 67e0c617 store 1 ,mem_24g_time_slice 
+3411 c0003419 beq 0 ,g24_work_mode_switch 
+3412 c000b41c beq 1 ,g24_bind_mode_switch 
+3413 20600000 rtn 
+
+g24_bind_mode_continue:
+3414 6fe0c622 fetch 1 ,mem_24g_bind_mode_continue 
+3415 207a0000 rtn blank 
+3416 1fe0ffff increase -1 ,pdata 
+3417 67e0c622 store 1 ,mem_24g_bind_mode_continue 
+3418 20600000 rtn 
+
+g24_work_mode_switch:
+3419 6fe0c622 fetch 1 ,mem_24g_bind_mode_continue 
+341a 247a0000 nrtn blank 
+341b 20203460 branch g24_switch_work_mode 
+
+g24_bind_mode_switch:
+341c 6fe0c622 fetch 1 ,mem_24g_bind_mode_continue 
+341d 247a0000 nrtn blank 
+341e 202032fc branch g24_bind_mode_enable 
+
+g24_mode_b_s_switch_init:
+341f 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
+3420 247a0000 nrtn blank 
+3421 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+3422 205a344f call g24_mode_b_s_switch_start ,blank 
+3423 6fe0c625 fetch 1 ,mem_24g_mode_b_s_switch_init 
+3424 c3800000 rtnbit1 0 
+3425 79207e00 set1 0 ,pdata 
+3426 67e0c625 store 1 ,mem_24g_mode_b_s_switch_init 
+3427 70462401 jam 1 ,mem_24g_mode_b_s_switch 
+3428 70462900 jam 0 ,mem_24g_b_s_time_slice 
+3429 58000000 setarg 0 
+342a 67e14626 store 2 ,mem_24g_mode_b_s_switch_cnt 
+342b 7045a760 jam 0x60 ,mem_24g_interval 
+342c 20203258 branch g24_timer_init 
+
+g24_mode_switch_bind_search:
+342d 47444031 bpatchx patch31_0 ,mem_patch31 
+342e 6fe0c616 fetch 1 ,mem_24g_work_mode 
+342f c1000000 rtneq dongle_work 
+3430 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
+3431 247a0000 nrtn blank 
+3432 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+3433 247a0000 nrtn blank 
+3434 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
+3435 207a0000 rtn blank 
+3436 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
+3437 2fe00603 compare 3 ,pdata ,3 
+3438 2020b44b branch g24_mode_b_s_switch_exit ,true 
+3439 20403245 call g24_timer_check 
+343a 24740000 nrtn user 
+343b 6fe14626 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+343c 1fe0fe01 increase 1 ,pdata 
+343d 67e14626 store 2 ,mem_24g_mode_b_s_switch_cnt 
+343e d84007d0 arg 0x7d0 ,temp 
+343f 98467c00 isub temp ,null 
+3440 2021344b branch g24_mode_b_s_switch_exit ,positive 
+3441 6fe0c629 fetch 1 ,mem_24g_b_s_time_slice 
+3442 1fe0fe01 increase 1 ,pdata 
+3443 1fe17e01 and_into 1 ,pdata 
+3444 67e0c629 store 1 ,mem_24g_b_s_time_slice 
+3445 c0003514 beq 0 ,g24_search_mode_enable 
+3446 c000b2fc beq 1 ,g24_bind_mode_enable 
+3447 20600000 rtn 
+
+g24_mode_switch_search:
+3448 6fe0c622 fetch 1 ,mem_24g_bind_mode_continue 
+3449 243a32fc nbranch g24_bind_mode_enable ,blank 
+344a 20203514 branch g24_search_mode_enable 
+
+g24_mode_b_s_switch_exit:
+344b 70462801 jam 1 ,mem_24g_mode_b_s_switch_exit 
+344c 20203514 branch g24_search_mode_enable 
+
+g24_mode_b_s_switch_stop:
+344d 70462400 jam 0 ,mem_24g_mode_b_s_switch 
+344e 20600000 rtn 
+
+g24_mode_b_s_switch_start:
+344f 70462401 jam 1 ,mem_24g_mode_b_s_switch 
+3450 20600000 rtn 
+
+g24_work_init:
+3451 4744c031 bpatchx patch31_1 ,mem_patch31 
+3452 6fe0c615 fetch 1 ,mem_24g_mode_init 
+3453 c3800000 rtnbit1 dongle_work 
+3454 79207e00 set1 dongle_work ,pdata 
+3455 67e0c615 store 1 ,mem_24g_mode_init 
+3456 6fe0c623 fetch 1 ,mem_tx_power_temp 
+3457 67e0c141 store 1 ,mem_tx_power 
+3458 70461100 jam 0 ,mem_24g_ackpayload_enable 
+3459 70090d00 jam 0 ,mem_usb_tx_enable 
+345a 70460a01 jam 1 ,mem_24g_abort_packet 
+345b 70457e00 jam 0 ,mem_24g_pid 
+345c 6fe244f1 fetch 4 ,mem_24g_lap 
+345d 20403236 call g24_update_addr_and_synccrc8 
+345e 20403222 call g24_ch 
+345f 202033be branch g24_rx_interrupt_clear 
+
+g24_switch_work_mode:
+3460 70461100 jam 0 ,mem_24g_ackpayload_enable 
+
+g24_work_mode_enable:
+3461 70461600 jam dongle_work ,mem_24g_work_mode 
+3462 70461500 jam clear_init ,mem_24g_mode_init 
+3463 20600000 rtn 
+
+g24_work_mode_start:
+3464 6fe0c616 fetch 1 ,mem_24g_work_mode 
+3465 c1800000 rtnne dongle_work 
+3466 20403451 call g24_work_init 
+3467 20403518 call g24_ch_process 
+3468 202033ab branch g24_receive_packet_start 
+
+g24_bind_mode_auto:
+3469 47454031 bpatchx patch31_2 ,mem_patch31 
+346a 6fe0c616 fetch 1 ,mem_24g_work_mode 
+346b c1808000 rtnne dongle_bind 
+346c 204032ff call g24_bind_init 
+346d 2040330f call g24_bind_data_process 
+346e 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+346f 247a0000 nrtn blank 
+3470 6fe0c5d5 fetch 1 ,mem_24g_bind_device_status 
+3471 207a0000 rtn blank 
+3472 70461300 jam 0 ,mem_24g_mode_switch 
+3473 20403460 call g24_switch_work_mode 
+3474 204033fe call g24_enable_nodata_timer 
+3475 20203258 branch g24_timer_init 
+
+g24_search_mode_init:
+3476 6fe0c615 fetch 1 ,mem_24g_mode_init 
+3477 c3838000 rtnbit1 dongle_search 
+3478 79207e07 set1 dongle_search ,pdata 
+3479 67e0c615 store 1 ,mem_24g_mode_init 
+347a 6fe0c623 fetch 1 ,mem_tx_power_temp 
+347b 67e0c141 store 1 ,mem_tx_power 
+347c 70461700 jam 0 ,mem_24g_time_slice 
+347d 70461101 jam 1 ,mem_24g_ackpayload_enable 
+347e 58000000 setarg 0 
+347f 67e1c63d store 3 ,mem_rssi_noise_self_index 
+3480 67e3c61a store 7 ,mem_24g_self_config_ch_once 
+3481 20403506 call g24_receiver_addr_check 
+3482 24628000 nrtn zero 
+3483 6fe0c58e fetch 1 ,mem_24g_current_ch_number 
+3484 67e0c619 store 1 ,mem_24g_self_ch_number 
+3485 6fe0c58d fetch 1 ,mem_24g_ch 
+3486 67e0c618 store 1 ,mem_24g_self_last_ch 
+3487 20600000 rtn 
+
+g24_search_mode_auto:
+3488 4745c031 bpatchx patch31_3 ,mem_patch31 
+3489 6fe0c616 fetch 1 ,mem_24g_work_mode 
+348a c1838000 rtnne dongle_search 
+348b 20403476 call g24_search_mode_init 
+348c 204034ae call g24_auto_addr_ch_search 
+348d 204033f1 call g24_receive_transmit_ack 
+348e 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+348f 20403506 call g24_receiver_addr_check 
+3490 2042b3ad call g24_receive_packet_parse ,zero 
+3491 6fe0c60a fetch 1 ,mem_24g_abort_packet 
+3492 205a344d call g24_mode_b_s_switch_stop ,blank 
+3493 70461600 jam dongle_work ,mem_24g_work_mode 
+3494 6fe0c615 fetch 1 ,mem_24g_mode_init 
+3495 79207e00 set1 dongle_work ,pdata 
+3496 67e0c615 store 1 ,mem_24g_mode_init 
+3497 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
+3498 1fe67c02 sub pdata ,2 ,null 
+3499 2442b504 ncall g24_ackpayload_disable ,zero 
+349a 204033be call g24_rx_interrupt_clear 
+349b 204033fe call g24_enable_nodata_timer 
+349c 20403506 call g24_receiver_addr_check 
+349d 2022b4a7 branch g24_self_ch_num_reinit ,zero 
+349e 6fe2458f fetch 4 ,mem_24g_addr 
+349f 684a4634 fetcht 4 ,mem_24g_device2_addr 
+34a0 98467c00 isub temp ,null 
+34a1 2022b4aa branch g24_device2_ch_num_reinit ,zero 
+34a2 6fe2458f fetch 4 ,mem_24g_addr 
+34a3 684a4630 fetcht 4 ,mem_24g_device1_addr 
+34a4 98467c00 isub temp ,null 
+34a5 2022b4ac branch g24_device1_ch_num_reinit ,zero 
+34a6 20600000 rtn 
+
+g24_self_ch_num_reinit:
+34a7 6fe0c619 fetch 1 ,mem_24g_self_ch_number 
+
+g24_current_ch_num_reinit:
+34a8 67e0c58e store 1 ,mem_24g_current_ch_number 
+34a9 20600000 rtn 
+
+g24_device2_ch_num_reinit:
+34aa 6fe0c61f fetch 1 ,mem_24g_device2_ch_number 
+34ab 202034a8 branch g24_current_ch_num_reinit 
+
+g24_device1_ch_num_reinit:
+34ac 6fe0c61c fetch 1 ,mem_24g_device1_ch_number 
+34ad 202034a8 branch g24_current_ch_num_reinit 
+
+g24_auto_addr_ch_search:
+34ae 47464031 bpatchx patch31_4 ,mem_patch31 
+34af 6fe0c617 fetch 1 ,mem_24g_time_slice 
+34b0 1fe0fe01 increase 1 ,pdata 
+34b1 1fe17e03 and_into 3 ,pdata 
+34b2 67e0c617 store 1 ,mem_24g_time_slice 
+34b3 c00034d2 beq 0 ,g24_auto_bind_config_device2 
+34b4 c000b4ec beq 1 ,g24_auto_bind_config_self 
+34b5 c00134b8 beq 2 ,g24_auto_bind_config_device1 
+34b6 c001b4ec beq 3 ,g24_auto_bind_config_self 
+34b7 20600000 rtn 
+
+g24_auto_bind_config_device1:
+34b8 20403330 call g24_bind_dvc1_payload_cfg 
+34b9 6fe24630 fetch 4 ,mem_24g_device1_addr 
+34ba 203a34ae branch g24_auto_addr_ch_search ,blank 
+34bb 20403236 call g24_update_addr_and_synccrc8 
+34bc 6fe0c61d fetch 1 ,mem_24g_device1_config_ch_once 
+34bd 205a34cd call g24_device1_config_ch_once ,blank 
+34be 6fe0c61b fetch 1 ,mem_24g_device1_last_ch 
+34bf 67e0c58d store 1 ,mem_24g_ch 
+34c0 6848c63e fetcht 1 ,mem_rssi_noise_device1_index 
+34c1 6a214644 fetchr rega ,2 ,mem_rssi_noise_device1_buffer_ptr 
+34c2 204035ab call rssi_store 
+34c3 6048c63e storet 1 ,mem_rssi_noise_device1_index 
+34c4 204035b4 call rssi_average 
+34c5 6048c63b storet 1 ,mem_rssi_noise_device1_avg 
+34c6 18467c50 sub temp ,rssi_thresh_noise ,null 
+34c7 24610000 nrtn positive 
+34c8 6848c61c fetcht 1 ,mem_24g_device1_ch_number 
+34c9 20403227 call g24_ch_map_size 
+34ca 6048c61c storet 1 ,mem_24g_device1_ch_number 
+34cb 67e0c61b store 1 ,mem_24g_device1_last_ch 
+34cc 20600000 rtn 
+
+g24_device1_config_ch_once:
+34cd 70461d01 jam 1 ,mem_24g_device1_config_ch_once 
+34ce d8400000 arg 0 ,temp 
+34cf 2040322c call g24_ch_calc 
+34d0 67e0c61b store 1 ,mem_24g_device1_last_ch 
+34d1 20600000 rtn 
+
+g24_auto_bind_config_device2:
+34d2 20403338 call g24_bind_dvc2_payload_cfg 
+34d3 6fe24634 fetch 4 ,mem_24g_device2_addr 
+34d4 203a34ae branch g24_auto_addr_ch_search ,blank 
+34d5 20403236 call g24_update_addr_and_synccrc8 
+34d6 6fe0c620 fetch 1 ,mem_24g_device2_config_ch_once 
+34d7 205a34e7 call g24_device2_config_ch_once ,blank 
+34d8 6fe0c61e fetch 1 ,mem_24g_device2_last_ch 
+34d9 67e0c58d store 1 ,mem_24g_ch 
+34da 6848c63f fetcht 1 ,mem_rssi_noise_device2_index 
+34db 6a214646 fetchr rega ,2 ,mem_rssi_noise_device2_buffer_ptr 
+34dc 204035ab call rssi_store 
+34dd 6048c63f storet 1 ,mem_rssi_noise_device2_index 
+34de 204035b4 call rssi_average 
+34df 6048c63c storet 1 ,mem_rssi_noise_device2_avg 
+34e0 18467c50 sub temp ,rssi_thresh_noise ,null 
+34e1 24610000 nrtn positive 
+34e2 6848c61f fetcht 1 ,mem_24g_device2_ch_number 
+34e3 20403227 call g24_ch_map_size 
+34e4 6048c61f storet 1 ,mem_24g_device2_ch_number 
+34e5 67e0c61e store 1 ,mem_24g_device2_last_ch 
+34e6 20600000 rtn 
+
+g24_device2_config_ch_once:
+34e7 70462001 jam 1 ,mem_24g_device2_config_ch_once 
+34e8 d8400000 arg 0 ,temp 
+34e9 2040322c call g24_ch_calc 
+34ea 67e0c61e store 1 ,mem_24g_device2_last_ch 
+34eb 20600000 rtn 
+
+g24_auto_bind_config_self:
+34ec 20403330 call g24_bind_dvc1_payload_cfg 
+34ed 6fe244f1 fetch 4 ,mem_24g_lap 
+34ee 20403236 call g24_update_addr_and_synccrc8 
+34ef 6fe0c61a fetch 1 ,mem_24g_self_config_ch_once 
+34f0 205a3500 call g24_self_config_ch_once ,blank 
+34f1 6fe0c618 fetch 1 ,mem_24g_self_last_ch 
+34f2 67e0c58d store 1 ,mem_24g_ch 
+34f3 6848c63d fetcht 1 ,mem_rssi_noise_self_index 
+34f4 6a214642 fetchr rega ,2 ,mem_rssi_noise_self_buffer_ptr 
+34f5 204035ab call rssi_store 
+34f6 6048c63d storet 1 ,mem_rssi_noise_self_index 
+34f7 204035b4 call rssi_average 
+34f8 6048c63a storet 1 ,mem_rssi_noise_self_avg 
+34f9 18467c50 sub temp ,rssi_thresh_noise ,null 
+34fa 24610000 nrtn positive 
+34fb 6848c619 fetcht 1 ,mem_24g_self_ch_number 
+34fc 20403227 call g24_ch_map_size 
+34fd 6048c619 storet 1 ,mem_24g_self_ch_number 
+34fe 67e0c618 store 1 ,mem_24g_self_last_ch 
+34ff 20600000 rtn 
+
+g24_self_config_ch_once:
+3500 70461a01 jam 1 ,mem_24g_self_config_ch_once 
+3501 6fe0c618 fetch 1 ,mem_24g_self_last_ch 
+3502 67e0c58d store 1 ,mem_24g_ch 
+3503 20600000 rtn 
+
+g24_ackpayload_disable:
+3504 70461100 jam 0 ,mem_24g_ackpayload_enable 
+3505 20600000 rtn 
+
+g24_receiver_addr_check:
+3506 6fe2458f fetch 4 ,mem_24g_addr 
+3507 684a44f1 fetcht 4 ,mem_24g_lap 
+3508 98467c00 isub temp ,null 
+3509 20600000 rtn 
+
+g24_nodata_process:
+350a 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
+350b c1010000 rtneq 2 
+350c 6fe0c614 fetch 1 ,mem_24g_nodata_timer_enable 
+350d 207a0000 rtn blank 
+350e d8e00008 arg g24_timer_nodata ,queue 
+350f 20407cef call timer_check 
+3510 247a0000 nrtn blank 
+3511 70461400 jam 0 ,mem_24g_nodata_timer_enable 
+3512 70462200 jam 0 ,mem_24g_bind_mode_continue 
+3513 2040341f call g24_mode_b_s_switch_init 
+
+g24_search_mode_enable:
+3514 4746c031 bpatchx patch31_5 ,mem_patch31 
+3515 70461607 jam dongle_search ,mem_24g_work_mode 
+3516 70461500 jam clear_init ,mem_24g_mode_init 
+3517 202033be branch g24_rx_interrupt_clear 
+
+g24_ch_process:
+3518 47474031 bpatchx patch31_6 ,mem_patch31 
+3519 6fe0c60a fetch 1 ,mem_24g_abort_packet 
+351a c000b5ea beq 1 ,rssi_noise_monitor 
+351b 6fe0c612 fetch 1 ,mem_24g_hop_packet 
+351c c000b52c beq 1 ,g24_ch_receive_hop_pac 
+351d 684a460b fetcht 4 ,mem_24g_hop_btclk 
+351e 1c427e00 copy clkn_bt ,pdata 
+351f 98467c00 isub temp ,null 
+3520 24413255 ncall g24_timer_timeout ,positive 
+3521 1fe22400 copy pdata ,regb 
+3522 6fe2460b fetch 4 ,mem_24g_hop_btclk 
+3523 6848c60f fetcht 1 ,mem_24g_hop_interval 
+3524 98408400 iadd temp ,temp 
+3525 1a427e00 copy regb ,pdata 
+3526 98467c00 isub temp ,null 
+3527 24610000 nrtn positive 
+3528 793ffe1c set0 28 ,pdata 
+3529 67e2460b store 4 ,mem_24g_hop_btclk 
+352a 70460a01 jam 1 ,mem_24g_abort_packet 
+352b 20203222 branch g24_ch 
+
+g24_ch_receive_hop_pac:
+352c 70461200 jam 0 ,mem_24g_hop_packet 
+352d 20203222 branch g24_ch 
+
+g24_ch_timer_reinit:
+352e 1c427e00 copy clkn_bt ,pdata 
+352f 67e2460b store 4 ,mem_24g_hop_btclk 
+3530 20600000 rtn 
+
+g24_reconn_timeout_timer:
+3531 da6045de arg mem_24g_reconn_timeout ,regc 
+3532 da40367a arg g24_stop_24g_mode ,regb 
+3533 202042e7 branch timer_single_step_2b 
+
+g24_reconn_start:
+3534 4747c031 bpatchx patch31_7 ,mem_patch31 
+3535 79200026 set1 mark_24g ,mark 
+3536 6fe0c5fc fetch 1 ,mem_24g_conn_sm 
+3537 793ffe01 set0 state_24g_pair ,pdata 
+3538 79207e02 set1 state_24g_reconn ,pdata 
+3539 67e0c5fc store 1 ,mem_24g_conn_sm 
+353a 6fe0c5e3 fetch 1 ,mem_24g_fast_conn_enable 
+353b 203a3549 branch g24_reconn_receiver_addr ,blank 
+353c 6fe0c5e2 fetch 1 ,mem_24g_reconn_type 
+353d c000b541 beq fast_conn_and_receiver ,g24_reconn_fast_conn 
+353e c0013541 beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn 
+353f c001b550 beq receiver_and_3_0_addr ,g24_reconn_device_3_0_addr 
+3540 c0023550 beq pair_and_3_0_addr ,g24_reconn_device_3_0_addr 
+
+g24_reconn_fast_conn:
+3541 6fe0c5d1 fetch 1 ,mem_24g_pair_tx_power 
+3542 67e0c141 store 1 ,mem_tx_power 
+3543 6848c5ec fetcht 1 ,mem_24g_fast_conn_temp_ch 
+3544 6048c58e storet 1 ,mem_24g_current_ch_number 
+3545 6fe245e4 fetch 4 ,mem_24g_fast_conn_addr 
+3546 2040355a call g24_ch_syncword_crc8_init 
+3547 6048c5ec storet 1 ,mem_24g_fast_conn_temp_ch 
+3548 20600000 rtn 
+
+g24_reconn_receiver_addr:
+3549 70414103 jam tx_power_3db ,mem_tx_power 
+354a 6848c5ed fetcht 1 ,mem_24g_receiver_temp_ch 
+354b 6048c58e storet 1 ,mem_24g_current_ch_number 
+354c 6fe245e8 fetch 4 ,mem_24g_receiver_addr 
+354d 2040355a call g24_ch_syncword_crc8_init 
+354e 6048c5ed storet 1 ,mem_24g_receiver_temp_ch 
+354f 20600000 rtn 
+
+g24_reconn_device_3_0_addr:
+3550 70414103 jam tx_power_3db ,mem_tx_power 
+3551 6848c5ee fetcht 1 ,mem_24g_device_temp_ch 
+3552 6048c58e storet 1 ,mem_24g_current_ch_number 
+3553 6fe24604 fetch 4 ,mem_24g_device_addr 
+3554 2040355a call g24_ch_syncword_crc8_init 
+3555 6048c5ee storet 1 ,mem_24g_device_temp_ch 
+3556 20600000 rtn 
+
+g24_store_receiver_addr:
+3557 6fe2455f fetch 4 ,mem_24g_rxpayload + 2 
+3558 207a0000 rtn blank 
+3559 67e245e8 store 4 ,mem_24g_receiver_addr 
+
+g24_ch_syncword_crc8_init:
+355a 20403236 call g24_update_addr_and_synccrc8 
+355b 20203222 branch g24_ch 
+
+g24_reconn_dispatch:
+355c 47484032 bpatchx patch32_0 ,mem_patch32 
+355d 6fe145e0 fetch 2 ,mem_24g_reconn_count 
+355e d84001f8 arg 0x01f8 ,temp 
+355f 98417e00 iand temp ,pdata 
+3560 203a3565 branch g24_reconn_dispatch_next ,blank 
+3561 6fe145e0 fetch 2 ,mem_24g_reconn_count 
+3562 1fe0fe01 increase 1 ,pdata 
+3563 67e145e0 store 2 ,mem_24g_reconn_count 
+3564 20600000 rtn 
+
+g24_reconn_dispatch_next:
+3565 2040357f call g24_reconn_data_prep 
+3566 20403651 call g24_transmit_receive_ack 
+3567 242c3586 nbranch g24_reconn_device_fail ,sync 
+3568 2437b586 nbranch g24_reconn_device_fail ,user3 
+3569 2040366e call g24_ackpayload_parse 
+356a 6fe245cc fetch 4 ,mem_24g_pair_addr 
+356b 684a458f fetcht 4 ,mem_24g_addr 
+356c 98467c00 isub temp ,null 
+356d 2022b291 branch g24_pair_start ,zero 
+356e 6fe24604 fetch 4 ,mem_24g_device_addr 
+356f 684a458f fetcht 4 ,mem_24g_addr 
+3570 98467c00 isub temp ,null 
+3571 2042b557 call g24_store_receiver_addr ,zero 
+3572 6fe0c5fc fetch 1 ,mem_24g_conn_sm 
+3573 793ffe02 set0 state_24g_reconn ,pdata 
+3574 67e0c5fc store 1 ,mem_24g_conn_sm 
+3575 58000000 setarg 0 
+3576 67e145d8 store 2 ,mem_24g_pair_timeout 
+3577 67e145e0 store 2 ,mem_24g_reconn_count 
+3578 67e145de store 2 ,mem_24g_reconn_timeout 
+3579 70066f3c jam bt_evt_24g_attempt_success ,mem_fifo_temp 
+357a 2040782b call ui_ipc_send_event 
+
+g24_txbuf_clear:
+357b 4748c032 bpatchx patch32_1 ,mem_patch32 
+357c df200020 arg 32 ,loopcnt 
+357d d8a04519 arg mem_24g_txbuf ,contw 
+357e 20207ca3 branch memset0 
+
+g24_reconn_data_prep:
+357f 704519ff jam datatype_attemp ,mem_24g_txbuf 
+3580 6fe0c589 fetch 1 ,mem_24g_data_type 
+3581 67e0c51a store 1 ,mem_24g_txbuf + 1 
+3582 6fe24604 fetch 4 ,mem_24g_device_addr 
+3583 67e2451b store 4 ,mem_24g_txbuf + 2 
+3584 70458806 jam 6 ,mem_24g_datalen 
+3585 202031e5 branch g24_transmit_prep 
+
+g24_reconn_device_fail:
+3586 47494032 bpatchx patch32_2 ,mem_patch32 
+3587 6fe0c5e3 fetch 1 ,mem_24g_fast_conn_enable 
+3588 203a3222 branch g24_ch ,blank 
+3589 6fe145e0 fetch 2 ,mem_24g_reconn_count 
+358a 1fe0fe01 increase 1 ,pdata 
+358b 67e145e0 store 2 ,mem_24g_reconn_count 
+358c 2feffe09 isolate1 9 ,pdata 
+358d 6fe0c5e2 fetch 1 ,mem_24g_reconn_type 
+358e c000b593 beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
+358f c0013595 beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
+3590 c001b597 beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
+3591 c0023599 beq pair_and_3_0_addr ,g24_reconn_pair_and_3_0 
+3592 20203549 branch g24_reconn_receiver_addr 
+
+g24_reconn_fast_conn_and_receiver:
+3593 2020b549 branch g24_reconn_receiver_addr ,true 
+3594 20203541 branch g24_reconn_fast_conn 
+
+g24_reconn_fast_conn_and_3_0:
+3595 2020b550 branch g24_reconn_device_3_0_addr ,true 
+3596 20203541 branch g24_reconn_fast_conn 
+
+g24_reconn_receiver_and_3_0:
+3597 2020b550 branch g24_reconn_device_3_0_addr ,true 
+3598 20203549 branch g24_reconn_receiver_addr 
+
+g24_reconn_pair_and_3_0:
+3599 2020b550 branch g24_reconn_device_3_0_addr ,true 
+359a 2020329c branch g24_pair_init_param 
+
+g24_data_attemp:
+359b 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+359c c000b59f beq datatype_device1 ,g24_data_attemp_device1 
+359d c00135a5 beq datatype_device2 ,g24_data_attemp_device2 
+359e 20600000 rtn 
+
+g24_data_attemp_device1:
+359f 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+35a0 247a0000 nrtn blank 
+35a1 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
+35a2 67e2462c store 4 ,mem_24g_transmitter_addr 
+
+g24_store_device1_addr:
+35a3 67e24630 store 4 ,mem_24g_device1_addr 
+35a4 20600000 rtn 
+
+g24_data_attemp_device2:
+35a5 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
+35a6 247a0000 nrtn blank 
+35a7 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
+35a8 67e2462c store 4 ,mem_24g_transmitter_addr 
+
+g24_store_device2_addr:
+35a9 67e24634 store 4 ,mem_24g_device2_addr 
+35aa 20600000 rtn 
+
+rssi_store:
+35ab 4749c032 bpatchx patch32_3 ,mem_patch32 
+35ac 1a227e00 copy rega ,pdata 
+35ad 98408a00 iadd temp ,contw 
+35ae 6fe08009 fetch 1 ,mem_rssi 
+35af e7e08005 istore 1 ,contw 
+35b0 18408401 increase 1 ,temp 
+35b1 6fe0c5d2 fetch 1 ,mem_rssi_buff_index 
+35b2 98410400 iand temp ,temp 
+35b3 20600000 rtn 
+
+rssi_average:
+35b4 474a4032 bpatchx patch32_4 ,mem_patch32 
+35b5 6fe0c5d2 fetch 1 ,mem_rssi_buff_index 
+35b6 1fe0fe01 increase 1 ,pdata 
+35b7 67e1069b store 2 ,mem_loopcnt 
+35b8 1fe27200 copy pdata ,loopcnt 
+35b9 1a220c00 copy rega ,contr 
+35ba dfe00000 arg 0 ,pdata 
+
+rssi_average_loop:
+35bb e8408006 ifetcht 1 ,contr 
+35bc 9840fe00 iadd temp ,pdata 
+35bd c20035bb loop rssi_average_loop 
+35be 6849069b fetcht 2 ,mem_loopcnt 
+35bf 9846fc00 idiv temp 
+35c0 20407d62 call wait_div_end 
+35c1 18078400 quotient temp 
+35c2 c6138000 rtnmark1 mark_24g_rxmode 
+35c3 18427e00 copy temp ,pdata 
+35c4 c6930000 rtnmark0 mark_24g 
+35c5 20402308 call bcd 
+35c6 1fe20400 copy pdata ,temp 
+35c7 20600000 rtn 
+
+save_rssi_dec:
+35c8 202022e9 branch save_rssi 
+
+rssi_transmitter_buff_init:
+35c9 6fe145f0 fetch 2 ,mem_rssi_signal_buf_ptr 
+35ca 202035dd branch rssi_buff_clear 
+
+rssi_signal:
+35cb 1fe22200 copy pdata ,rega 
+35cc 6848c5ef fetcht 1 ,mem_rssi_signal_index 
+35cd 6fe145f0 fetch 2 ,mem_rssi_signal_buf_ptr 
+35ce 98408a00 iadd temp ,contw 
+35cf 1a227e00 copy rega ,pdata 
+35d0 e7e08005 istore 1 ,contw 
+35d1 18408401 increase 1 ,temp 
+35d2 6fe0c5d2 fetch 1 ,mem_rssi_buff_index 
+35d3 98410400 iand temp ,temp 
+35d4 6048c5ef storet 1 ,mem_rssi_signal_index 
+35d5 20600000 rtn 
+
+rssi_receiver_buff_init:
+35d6 6fe14640 fetch 2 ,mem_rssi_noise_buffer_ptr 
+35d7 204035dd call rssi_buff_clear 
+35d8 6fe14642 fetch 2 ,mem_rssi_noise_self_buffer_ptr 
+35d9 204035dd call rssi_buff_clear 
+35da 6fe14644 fetch 2 ,mem_rssi_noise_device1_buffer_ptr 
+35db 204035dd call rssi_buff_clear 
+35dc 6fe14646 fetch 2 ,mem_rssi_noise_device2_buffer_ptr 
+
+rssi_buff_clear:
+35dd 207a0000 rtn blank 
+35de 1fe20a00 copy pdata ,contw 
+35df 6fe0c5d2 fetch 1 ,mem_rssi_buff_index 
+35e0 1fe0fe01 increase 1 ,pdata 
+35e1 1fe27200 copy pdata ,loopcnt 
+35e2 20207ca1 branch clear_mem 
+
+rssi_noise:
+35e3 204035c8 call save_rssi_dec 
+35e4 207a0000 rtn blank 
+35e5 6848c639 fetcht 1 ,mem_rssi_noise_index 
+35e6 6a214640 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
+35e7 204035ab call rssi_store 
+35e8 6048c639 storet 1 ,mem_rssi_noise_index 
+35e9 20600000 rtn 
+
+rssi_noise_monitor:
+35ea 6a214640 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
+35eb 204035b4 call rssi_average 
+35ec 6048c638 storet 1 ,mem_rssi_noise_avg 
+35ed 18467c50 sub temp ,rssi_thresh_noise ,null 
+35ee 24610000 nrtn positive 
+35ef 20203222 branch g24_ch 
+
+g24_transmit_init:
+35f0 6fe244f1 fetch 4 ,mem_24g_lap 
+35f1 67e24604 store 4 ,mem_24g_device_addr 
+35f2 202035c9 branch rssi_transmitter_buff_init 
+
+g24_interval_param_4ms:
+35f3 58002fb2 setarg g24_4ms_interval_param 
+35f4 67e1c608 store 3 ,mem_24g_short_sleep_set 
+35f5 58100c0c setarg 0x100c0c 
+35f6 67e1c5a7 store 3 ,mem_24g_interval 
+35f7 5800bb80 setarg 0x00bb80 
+35f8 67e1c60b store 3 ,mem_24g_long_sleep_set 
+35f9 70462105 jam 5 ,mem_24g_fast_hop_count 
+35fa 20600000 rtn 
+
+g24_interval_param_8ms:
+35fb 5800f80c setarg g24_8ms_interval_param 
+35fc 67e1c608 store 3 ,mem_24g_short_sleep_set 
+35fd 581c1919 setarg 0x1c1919 
+35fe 67e1c5a7 store 3 ,mem_24g_interval 
+35ff 58017700 setarg 0x017700 
+3600 67e1c60b store 3 ,mem_24g_long_sleep_set 
+3601 7046210b jam 11 ,mem_24g_fast_hop_count 
+3602 20600000 rtn 
+
+g24_transmit_dispatch:
+3603 c6930000 rtnmark0 mark_24g 
+3604 6fe0c5fc fetch 1 ,mem_24g_conn_sm 
+3605 c280b2a3 bbit1 state_24g_pair ,g24_pair_dispatch 
+3606 c281355c bbit1 state_24g_reconn ,g24_reconn_dispatch 
+3607 6fe0c618 fetch 1 ,mem_24g_transmit_by_interrupt 
+3608 c000b6c0 beq g24_tx_timer_int_enable ,g24_transmit_by_interrupt 
+
+g24_transmit_no_interrupt:
+3609 474ac032 bpatchx patch32_5 ,mem_patch32 
+360a 20403625 call g24_txdata_prep 
+360b 2434369f nbranch g24_nodata_transmit ,user 
+
+g24_transmit_start:
+360c 2040363a call g24_transmit_process 
+360d 204036e8 call power_ctrl_start 
+360e 6fe0c3cb fetch 1 ,mem_device_option 
+360f c004600a beq dvc_op_mouse ,mouse_24g_transmit_start 
+
+g24_transmit_start_next:
+3610 6fe4460b fetch 8 ,mem_24g_long_sleep_set 
+3611 67e445af store 8 ,mem_24g_enter_hibernate 
+3612 6fe1461d fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+3613 67e1461f store 2 ,mem_24g_long_sleep_param_update_timer 
+3614 6fe145f8 fetch 2 ,mem_cb_24g_transmit_short_sleep 
+3615 20207d79 branch callback_func 
+
+g24_short_sleep:
+3616 474b4032 bpatchx patch32_6 ,mem_patch32 
+3617 204036b4 call g24_lpm_wait 
+3618 24740000 nrtn user 
+3619 204036be call g24_setgpio_lpm_before 
+361a 20407de2 call clear_wake 
+361b 6fe1c608 fetch 3 ,mem_24g_short_sleep_set 
+361c 20203622 branch g24_long_seep2 
+
+g24_long_sleep:
+361d 474bc032 bpatchx patch32_7 ,mem_patch32 
+361e 204036b4 call g24_lpm_wait 
+361f 24740000 nrtn user 
+3620 204036be call g24_setgpio_lpm_before 
+3621 6fe445af fetch 8 ,mem_24g_enter_hibernate 
+
+g24_long_seep2:
+3622 20407d25 call clk2lpo 
+3623 604a40a9 storet 4 ,mem_sleep_counter 
+3624 2020241e branch lpm_sleep 
+
+g24_txdata_prep:
+3625 20403628 call g24_package_data 
+3626 24740000 nrtn user 
+3627 202031e5 branch g24_transmit_prep 
+
+g24_package_data:
+3628 6fe145f2 fetch 2 ,mem_cb_24g_transmit_data 
+3629 20407d79 call callback_func 
+362a 2034362e branch g24_accumulate_data ,user 
+362b 6fe3c51a fetch 7 ,mem_24g_txbuf + 1 
+362c 207a0000 rtn blank 
+362d 20207dba branch enable_user 
+
+g24_accumulate_data:
+362e 70460200 jam 0 ,mem_24g_abort_pac 
+362f 1a20fe01 add rega ,1 ,pdata 
+3630 67e0c588 store 1 ,mem_24g_datalen 
+3631 20403636 call g24_transmit_rf_ctrl_clear 
+3632 67e0c519 store 1 ,mem_24g_txbuf 
+3633 1a420c00 copy regb ,contr 
+3634 1a227200 copy rega ,loopcnt 
+3635 20207cda branch memcpy 
+
+g24_transmit_rf_ctrl_clear:
+3636 6fe0c589 fetch 1 ,mem_24g_data_type 
+3637 1fe17e07 and_into bits_data ,pdata 
+3638 67e0c589 store 1 ,mem_24g_data_type 
+3639 20600000 rtn 
+
+g24_transmit_process:
+363a 58000000 setarg 0 
+363b 67e0c601 store 1 ,mem_24g_retry 
+363c 67e14622 store 2 ,mem_24g_retransmit 
+
+g24_transmit_loop:
+363d 20403651 call g24_transmit_receive_ack 
+363e 6fe0c57f fetch 1 ,mem_24g_no_ack 
+363f c000b646 beq no_ack_24g ,g24_transmit_no_ack 
+3640 242c365f nbranch g24_retransmit ,sync 
+3641 2437b65f nbranch g24_retransmit ,user3 
+3642 2040366e call g24_ackpayload_parse 
+3643 6fe0c3cb fetch 1 ,mem_device_option 
+3644 1fe67c08 sub pdata ,dvc_op_mouse ,null 
+3645 2042e262 call mouse_24g_transmit_callback ,zero 
+
+g24_transmit_no_ack:
+3646 2040371a call power_ctrl_pac_succ_incrs 
+
+g24_transmit_next_packet:
+3647 2040357b call g24_txbuf_clear 
+3648 6fe0c57e fetch 1 ,mem_24g_pid 
+3649 1fe0fe01 increase 1 ,pdata 
+364a 67e0c57e store 1 ,mem_24g_pid 
+364b 20403692 call g24_hop_enable_packet 
+
+g24_transmit_abandon:
+364c 474c4033 bpatchx patch33_0 ,mem_patch33 
+364d 58000000 setarg 0 
+364e 67e0c5fd store 1 ,mem_24g_ensure 
+364f 67e145fe store 2 ,mem_24g_txfail_cnt 
+3650 20600000 rtn 
+
+g24_transmit_receive_ack:
+3651 474cc033 bpatchx patch33_1 ,mem_patch33 
+3652 7857fc00 disable user3 
+3653 20403195 call g24_transmit 
+3654 6fe0c57f fetch 1 ,mem_24g_no_ack 
+3655 c000b183 beq no_ack_24g ,g24_end_of_packet 
+3656 18002a00 force 0 ,radio_ctrl 
+3657 6fe2458f fetch 4 ,mem_24g_addr 
+3658 98001200 iforce access 
+3659 68488008 fetcht 1 ,mem_last_freq 
+365a 2040216f call set_freq_rx 
+365b 204021a6 call rf_rx_enable 
+365c 20403121 call g24_receive_rxon 
+365d 2057b183 call g24_end_of_packet ,user3 
+365e 20600000 rtn 
+
+g24_retransmit:
+365f 474d4033 bpatchx patch33_2 ,mem_patch33 
+3660 6fe0c3cb fetch 1 ,mem_device_option 
+3661 c00460f9 beq dvc_op_mouse ,mouse_g24_retransmit 
+
+g24_retransmit0:
+3662 6fe0c602 fetch 1 ,mem_24g_abort_pac 
+3663 247a0000 nrtn blank 
+3664 6fe145fe fetch 2 ,mem_24g_txfail_cnt 
+3665 1fe0fe01 increase 1 ,pdata 
+3666 67e145fe store 2 ,mem_24g_txfail_cnt 
+3667 6fe0c5ff fetch 1 ,mem_24g_txfail_cnt + 1 
+3668 c2823676 bbit1 4 ,g24_tx_attempt_fail 
+3669 2040367c call g24_transmit_hop_process 
+366a 6fe14622 fetch 2 ,mem_24g_retransmit 
+366b 1fe0fe01 increase 1 ,pdata 
+366c 67e14622 store 2 ,mem_24g_retransmit 
+366d 2020363d branch g24_transmit_loop 
+
+g24_ackpayload_parse:
+366e 474dc033 bpatchx patch33_3 ,mem_patch33 
+366f 20403214 call g24_read_len_pid_crc 
+3670 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+3671 207a0000 rtn blank 
+3672 98007200 iforce loopcnt 
+3673 d8c044f9 arg mem_24g_rxbuf + 2 ,contr 
+3674 d8a0455d arg mem_24g_rxpayload ,contw 
+3675 20207cda branch memcpy 
+
+g24_tx_attempt_fail:
+3676 474e4033 bpatchx patch33_4 ,mem_patch33 
+3677 58000000 setarg 0 
+3678 67e145fe store 2 ,mem_24g_txfail_cnt 
+3679 70460001 jam 1 ,mem_24g_attempt_fail_flag 
+
+g24_stop_24g_mode:
+367a 70066f3a jam bt_evt_24g_attempt_fail ,mem_fifo_temp 
+367b 2020782b branch ui_ipc_send_event 
+
+g24_transmit_hop_process:
+367c 474ec033 bpatchx patch33_5 ,mem_patch33 
+367d 6848c601 fetcht 1 ,mem_24g_retry 
+367e 6fe0c621 fetch 1 ,mem_24g_fast_hop_count 
+367f 98467c00 isub temp ,null 
+3680 2421369a nbranch g24_tx_fast_hop ,positive 
+3681 18408401 increase 1 ,temp 
+3682 6048c601 storet 1 ,mem_24g_retry 
+3683 6fe0c621 fetch 1 ,mem_24g_fast_hop_count 
+3684 c002b689 beq 5 ,g24_transmit_hop_process_4ms 
+3685 6fe0c601 fetch 1 ,mem_24g_retry 
+3686 c0033694 beq 6 ,g24_hop_ch_disable 
+3687 c0063694 beq 12 ,g24_hop_ch_disable 
+3688 20600000 rtn 
+
+g24_transmit_hop_process_4ms:
+3689 6fe0c601 fetch 1 ,mem_24g_retry 
+368a c001b694 beq 3 ,g24_hop_ch_disable 
+368b c0033694 beq 6 ,g24_hop_ch_disable 
+368c 20600000 rtn 
+
+g24_hop_ch_enable:
+
+g24_txpayload_type_update:
+368d c517b690 bmark1 mark_ble_lr ,g24_lr_type_update 
+368e 67e0c53a store 1 ,mem_24g_txpayload + offset_data_type 
+368f 20600000 rtn 
+
+g24_lr_type_update:
+3690 67e0c53b store 1 ,mem_24g_txpayload + offset_lr_data_type 
+3691 20600000 rtn 
+
+g24_hop_enable_packet:
+3692 6fe0c589 fetch 1 ,mem_24g_data_type 
+3693 c4020000 rtnbit0 bit_hop 
+
+g24_hop_ch_disable:
+3694 6fe0c589 fetch 1 ,mem_24g_data_type 
+3695 793ffe04 set0 bit_hop ,pdata 
+3696 67e0c589 store 1 ,mem_24g_data_type 
+3697 2040368d call g24_txpayload_type_update 
+3698 2040371e call power_ctrl_pac_succ_decrs 
+3699 20203222 branch g24_ch 
+
+g24_tx_fast_hop:
+369a 2040370e call power_ctrl_txpower_incrs 
+369b 2040371e call power_ctrl_pac_succ_decrs 
+369c 20203222 branch g24_ch 
+
+g24_search_receiver:
+369d 6fe145f4 fetch 2 ,mem_cb_24g_search_receiver 
+369e 20207d79 branch callback_func 
+
+g24_nodata_transmit:
+369f 6fe0c602 fetch 1 ,mem_24g_abort_pac 
+36a0 205a36a6 call g24_send_abort_packet ,blank 
+36a1 6fe0c618 fetch 1 ,mem_24g_transmit_by_interrupt 
+36a2 c1008000 rtneq g24_tx_timer_int_enable 
+36a3 2040369d call g24_search_receiver 
+36a4 6fe145fa fetch 2 ,mem_cb_24g_transmit_long_sleep 
+36a5 20207d79 branch callback_func 
+
+g24_send_abort_packet:
+36a6 70458901 jam type_ms ,mem_24g_data_type 
+36a7 70460201 jam 1 ,mem_24g_abort_pac 
+36a8 20403636 call g24_transmit_rf_ctrl_clear 
+36a9 67e0c519 store 1 ,mem_24g_txbuf 
+36aa 58000000 setarg 0 
+36ab 67e3c51a store 7 ,mem_24g_txbuf + 1 
+36ac 6fe24604 fetch 4 ,mem_24g_device_addr 
+36ad 67e24521 store 4 ,mem_24g_txbuf + 8 
+36ae 7045880c jam 12 ,mem_24g_datalen 
+36af 6fe0c589 fetch 1 ,mem_24g_data_type 
+36b0 79207e03 set1 bit_abort ,pdata 
+36b1 67e0c589 store 1 ,mem_24g_data_type 
+36b2 204031e5 call g24_transmit_prep 
+36b3 2020360c branch g24_transmit_start 
+
+g24_lpm_wait:
+36b4 474f4033 bpatchx patch33_6 ,mem_patch33 
+36b5 78347c00 enable user 
+36b6 20402408 call lpo_calibration 
+36b7 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+36b8 203a7dbc branch disable_user ,blank 
+36b9 6fe0c094 fetch 1 ,mem_lpm_mode 
+36ba 203a7dbc branch disable_user ,blank 
+36bb 6fe0c618 fetch 1 ,mem_24g_transmit_by_interrupt 
+36bc c000fdbc beq g24_tx_timer_int_enable ,disable_user 
+36bd 20600000 rtn 
+
+g24_setgpio_lpm_before:
+36be 6fe145f6 fetch 2 ,mem_cb_24g_lpm_before 
+36bf 20207d79 branch callback_func 
+
+g24_transmit_by_interrupt:
+36c0 20403245 call g24_timer_check 
+36c1 24740000 nrtn user 
+36c2 204036d5 call g24_interval_calibrate 
+36c3 6fe14619 fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
+36c4 1fe0fe01 increase 1 ,pdata 
+36c5 67e14619 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+36c6 6849461b fetcht 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+36c7 98467c00 isub temp ,null 
+36c8 2042b6ca call g24_transmit_by_interrupt_exit ,zero 
+36c9 20203609 branch g24_transmit_no_interrupt 
+
+g24_transmit_by_interrupt_exit:
+36ca 70461800 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
+36cb 58000000 setarg 0 
+36cc 67e14619 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+36cd 58000064 setarg 100 
+36ce 67e1461b store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+
+g24_interval_min:
+36cf 70461700 jam 0 ,mem_24g_pac_index 
+36d0 6fe0c5a8 fetch 1 ,mem_24g_interval_min 
+
+g24_interval_store:
+36d1 67e0c5a7 store 1 ,mem_24g_interval 
+36d2 20600000 rtn 
+
+g24_interval_max:
+36d3 6fe0c5a9 fetch 1 ,mem_24g_interval_max 
+36d4 202036d1 branch g24_interval_store 
+
+g24_interval_calibrate:
+36d5 6fe0c617 fetch 1 ,mem_24g_pac_index 
+36d6 1fe0fe01 increase 1 ,pdata 
+36d7 67e0c617 store 1 ,mem_24g_pac_index 
+36d8 c00236d3 beq 4 ,g24_interval_max 
+36d9 c002b6cf beq 5 ,g24_interval_min 
+36da 20600000 rtn 
+
+g24_transmit_by_interrupt_enable:
+36db 70461801 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
+36dc 58000000 setarg 0 
+36dd 67e14619 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+36de 20600000 rtn 
+
+g24_factory_check:
+36df df200002 arg 2 ,loopcnt 
+36e0 d8c0458f arg mem_24g_addr ,contr 
+
+pdata_0xff_check:
+36e1 20407dba call enable_user 
+36e2 5800ffff setarg 0xffff 
+
+pdata_0xff_check_loop:
+36e3 e8410006 ifetcht 2 ,contr 
+36e4 98467c00 isub temp ,null 
+36e5 2442fdbc ncall disable_user ,zero 
+36e6 c20036e3 loop pdata_0xff_check_loop 
+36e7 20600000 rtn 
+
+power_ctrl_start:
+36e8 474fc033 bpatchx patch33_7 ,mem_patch33 
+36e9 6fe0c437 fetch 1 ,mem_power_ctrl_disable 
+36ea 247a0000 nrtn blank 
+36eb 6fe144e9 fetch 2 ,mem_ui_state_map 
+36ec c3858000 rtnbit1 ui_state_ble_adv 
+36ed 6a2145f0 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
+36ee 204035b4 call rssi_average 
+36ef 6048c624 storet 1 ,mem_rssi_avg_received 
+36f0 6fe0c629 fetch 1 ,mem_rssi_dis_max_24g 
+36f1 c51336f3 bmark1 mark_24g ,power_ctrl_start_next 
+36f2 6fe0c62c fetch 1 ,mem_rssi_dis_max_ble 
+
+power_ctrl_start_next:
+36f3 98467c00 isub temp ,null 
+36f4 2421370d nbranch power_ctrl_txpower_incrs_force ,positive 
+36f5 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+36f6 1fe67c02 sub pdata ,2 ,null 
+36f7 242136fb nbranch power_ctrl_txpower_decrs_check ,positive 
+36f8 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+36f9 c000370e beq 0 ,power_ctrl_txpower_incrs 
+36fa 20600000 rtn 
+
+power_ctrl_txpower_decrs_check:
+36fb 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+36fc 6848c627 fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
+36fd 98467c00 isub temp ,null 
+36fe 24628000 nrtn zero 
+36ff 70462600 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+
+power_ctrl_txpower_decrs:
+3700 6848c624 fetcht 1 ,mem_rssi_avg_received 
+3701 6fe0c628 fetch 1 ,mem_rssi_dis_min_24g 
+3702 c5133704 bmark1 mark_24g ,power_ctrl_txpower_decrs_next 
+3703 6fe0c62b fetch 1 ,mem_rssi_dis_min_ble 
+
+power_ctrl_txpower_decrs_next:
+3704 98467c00 isub temp ,null 
+3705 24610000 nrtn positive 
+3706 6fe0c625 fetch 1 ,mem_power_ctrl_level 
+3707 c0003715 beq 0 ,power_ctrl_decrs_level0 
+3708 1fe0ffff increase -1 ,pdata 
+3709 67e0c625 store 1 ,mem_power_ctrl_level 
+370a c0003715 beq 0 ,power_ctrl_decrs_level0 
+
+power_ctrl_decrs_level1:
+
+power_ctrl_incrs_level1:
+370b 70414100 jam tx_power_0db ,mem_tx_power 
+370c 20600000 rtn 
+
+power_ctrl_txpower_incrs_force:
+370d 70462600 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+
+power_ctrl_txpower_incrs:
+370e 6fe0c625 fetch 1 ,mem_power_ctrl_level 
+370f c0013713 beq 2 ,power_ctrl_incrs_level2 
+3710 1fe0fe01 increase 1 ,pdata 
+3711 67e0c625 store 1 ,mem_power_ctrl_level 
+3712 c000b70b beq 1 ,power_ctrl_incrs_level1 
+
+power_ctrl_incrs_level2:
+3713 70414106 jam tx_power_6db ,mem_tx_power 
+3714 20600000 rtn 
+
+power_ctrl_decrs_level0:
+3715 70414185 jam tx_power_f5db ,mem_tx_power 
+3716 20600000 rtn 
+
+power_ctrl_pac_succ_cnt_init:
+3717 70462501 jam 1 ,mem_power_ctrl_level 
+3718 70462600 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+3719 20600000 rtn 
+
+power_ctrl_pac_succ_incrs:
+371a 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+371b 1fe0fe01 increase 1 ,pdata 
+371c 67e0c626 store 1 ,mem_power_ctrl_pac_succ_cnt 
+371d 20600000 rtn 
+
+power_ctrl_pac_succ_decrs:
+371e 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+371f 1fe67c02 sub pdata ,2 ,null 
+3720 24413726 ncall power_ctrl_pac_succ_cnt_reinit ,positive 
+3721 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+3722 c1000000 rtneq 0 
+3723 1fe0ffff increase -1 ,pdata 
+3724 67e0c626 store 1 ,mem_power_ctrl_pac_succ_cnt 
+3725 20600000 rtn 
+
+power_ctrl_pac_succ_cnt_reinit:
+3726 70462603 jam 3 ,mem_power_ctrl_pac_succ_cnt 
+3727 20600000 rtn 
+
+ali_mesh_access_layer_resolve_message:
+3728 6fe088f3 fetch 1 ,mem_ccm_data_len 
+3729 67e08709 store 1 ,mem_mesh_receive_model_message_payload_len 
+372a 1e020c00 copy alarm ,contr 
+372b 20407c8e call memcpy24 
+372c 6fe14826 fetch 2 ,mem_mesh_cb_receive_access_message 
+372d 20207d79 branch callback_func 
+
+ali_mesh_access_layer_check_access_message_opcode:
+372e 7049b81e jam mesh_receive_new_message_timer ,mem_mesh_upper_receive_new_message_timer 
+372f 2040378c call ali_mesh_app_recv_new_mesh_pkt 
+3730 6fe0870a fetch 1 ,mem_mesh_receive_model_message_payload_opcode 
+3731 c0003739 beq mesh_message_opcode_config_appkey_add ,ali_mesh_access_layer_message_opcode_config_appkey_add 
+3732 c0403d67 beq mesh_configuration_and_health_message_opcode_header ,ali_mesh_access_layer_config_or_health_message_opcode 
+3733 c0413ed4 beq mesh_module_message_opcode_header ,ali_mesh_model_layer_check_model_message_opcode 
+3734 c068b799 beq vendor_message_attr_set ,ali_mesh_ali_vendor_message_attribute_set 
+3735 c06837ba beq vendor_message_attr_get ,ali_mesh_ali_vendor_message_opcode_attr_get 
+3736 c0693799 beq vendor_message_attr_set_unacknowledged ,ali_mesh_ali_vendor_message_attribute_set 
+3737 c06ab7bb beq vendor_message_attr_confirmation ,ali_mesh_ali_vendor_message_opcode_attr_confrimation 
+3738 20600000 rtn 
+
+ali_mesh_access_layer_message_opcode_config_appkey_add:
+3739 d8c0070e arg mem_mesh_receive_application_key ,contr 
+373a d8a04959 arg mem_mesh_application_key ,contw 
+373b 20407c8f call memcpy16 
+373c 7047e400 jam paired_status ,mem_mesh_provisioned_flag 
+373d 20403bbf call ali_mesh_encrypt_base_function_k3 
+373e 20403bb1 call ali_mesh_encrypt_base_function_k4 
+373f 2040375e call ali_mesh_access_layer_finish_pairing_init_subscription_list 
+3740 2040374f call ali_mesh_accesss_layer_check_message_type 
+3741 20403754 call ali_mesh_access_layer_send_config_appkey_status 
+3742 7047e400 jam paired_status ,mem_mesh_provisioned_flag 
+3743 6fe14828 fetch 2 ,mem_mesh_cb_receive_config_appkey_add 
+3744 20207d79 branch callback_func 
+
+ali_mesh_access_layer_recv_cfg_appkey_add_cb:
+3745 58000000 setarg 0 
+3746 67e14806 store 2 ,mem_mesh_fast_pairing_timer 
+3747 180a7e00 random pdata 
+3748 1fe17e1f and pdata ,0x1f ,pdata 
+3749 1fe0fe1e add pdata ,30 ,pdata 
+374a 67e0c804 store 1 ,mem_mesh_report_full_attribute_timer 
+374b 1fe0fe05 add pdata ,5 ,pdata 
+374c 67e0c803 store 1 ,mem_mesh_report_power_on_timer 
+374d 20403e53 call mesh_clear_timer_data 
+374e 20203a71 branch mesh_receive_config_appkey_add_cb 
+
+ali_mesh_accesss_layer_check_message_type:
+374f 6fe08951 fetch 1 ,mem_mesh_network_packet_type 
+3750 7047e404 jam received_config_appkey_add ,mem_mesh_provisioned_flag 
+3751 c1008000 rtneq mesh_message_app 
+3752 7047e400 jam paired_status ,mem_mesh_provisioned_flag 
+3753 20600000 rtn 
+
+ali_mesh_access_layer_send_config_appkey_status:
+3754 58000080 setarg mesh_configuration_and_health_message_opcode_header 
+3755 67e08723 store 1 ,mem_mesh_access_layer_payload 
+3756 58000003 setarg mesh_message_opcode_config_config_model_publication_set 
+3757 e7e08005 istore 1 ,contw 
+3758 58000000 setarg status_code_success 
+3759 e7e08005 istore 1 ,contw 
+375a 6fe1870b fetch 3 ,mem_mesh_netkeyindex_and_appkeyindex 
+375b e7e18005 istore 3 ,contw 
+375c 70072206 jam 6 ,mem_mesh_access_layer_payload_len 
+375d 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_access_layer_finish_pairing_init_subscription_list:
+375e 6fe1484c fetch 2 ,mem_mesh_core_feature 
+375f c3810000 rtnbit1 mesh_feature_disable_subscription 
+3760 20403e3e call mesh_get_element_info_config 
+
+ali_mesh_access_layer_finish_pairing_init_subscription_list_loop:
+3761 1a20a606 add rega ,element_device_subscription_label ,regc 
+3762 5fffffff setarg -1 
+3763 e7e40013 istore subscription_max_count ,regc 
+3764 e7e40005 istore subscription_max_count ,contw 
+3765 efe10011 ifetch 2 ,rega 
+3766 e7e10013 istore 2 ,regc 
+3767 1a427e00 copy regb ,pdata 
+3768 9a20a200 iadd rega ,rega 
+3769 c2003761 loop ali_mesh_access_layer_finish_pairing_init_subscription_list_loop 
+376a 6fe14848 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+376b 20207d79 branch callback_func 
+
+ali_mesh_access_layer_send_generic_onoff_status:
+376c 58000082 setarg mesh_module_message_opcode_header 
+376d 67e08723 store 1 ,mem_mesh_access_layer_payload 
+376e 58000004 setarg mesh_module_message_opcode_generic_onoff_status_no_head 
+376f e7e08005 istore 1 ,contw 
+3770 6fe0870c fetch 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+3771 e7e08005 istore 1 ,contw 
+3772 70072203 jam 3 ,mem_mesh_access_layer_payload_len 
+3773 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_access_layer_send_light_lightness_status:
+3774 58000082 setarg mesh_module_message_opcode_header 
+3775 67e08723 store 1 ,mem_mesh_access_layer_payload 
+3776 5800004e setarg mesh_module_message_opcode_light_lightness_status_no_head 
+3777 e7e08005 istore 1 ,contw 
+3778 6fe1070c fetch 2 ,mem_mesh_light_lightness_set_payload_lightness 
+3779 e7e10005 istore 2 ,contw 
+377a 70072204 jam 4 ,mem_mesh_access_layer_payload_len 
+377b 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_access_layer_send_light_ctl_stauts:
+377c 58000082 setarg mesh_module_message_opcode_header 
+377d 67e08723 store 1 ,mem_mesh_access_layer_payload 
+377e 58000060 setarg mesh_module_message_opcode_light_ctl_status_no_head 
+377f e7e08005 istore 1 ,contw 
+3780 6fe2070c fetch 4 ,mem_mesh_ctl_lightness 
+3781 e7e20005 istore 4 ,contw 
+3782 70072206 jam 6 ,mem_mesh_access_layer_payload_len 
+3783 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_access_layer_send_scene_status:
+3784 5800005e setarg mesh_module_message_opcode_scene_status 
+3785 67e08723 store 1 ,mem_mesh_access_layer_payload 
+3786 58000000 setarg mesh_success 
+3787 e7e08005 istore 1 ,contw 
+3788 6fe1070c fetch 2 ,mem_mesh_scene_recall_payload_scene_number 
+3789 e7e10005 istore 2 ,contw 
+378a 70072204 jam 4 ,mem_mesh_access_layer_payload_len 
+378b 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_app_recv_new_mesh_pkt:
+378c 6fe0c804 fetch 1 ,mem_mesh_report_full_attribute_timer 
+378d 207a0000 rtn blank 
+378e 1fe0fe1e pincrease 30 
+378f 67e0c804 store 1 ,mem_mesh_report_full_attribute_timer 
+3790 20600000 rtn 
+
+ali_mesh_report_power_on_timer:
+3791 da604803 arg mem_mesh_report_power_on_timer ,regc 
+3792 da4037e4 arg ali_mesh_ali_vendor_message_opcode_device_power_on ,regb 
+3793 202042e0 branch timer_single_step 
+
+ali_mesh_report_full_attribute_timer:
+3794 da604804 arg mem_mesh_report_full_attribute_timer ,regc 
+3795 da403797 arg ali_mesh_app_report_device_state ,regb 
+3796 202042e0 branch timer_single_step 
+
+ali_mesh_app_report_device_state:
+3797 6fe14855 fetch 2 ,mem_mesh_app_deport_device_state 
+3798 20207d79 branch callback_func 
+
+ali_mesh_ali_vendor_message_attribute_set:
+3799 204037c4 call ali_mesh_ali_vendor_message_attrbute_check_company_id_and_tid 
+379a 24740000 nrtn user 
+379b 47504034 bpatchx patch34_0 ,mem_patch34 
+379c 6fe1070e fetch 2 ,mem_mesh_vendor_message_attr_type 
+379d d840f01f arg vendor_message_attr_type_time ,temp 
+379e 98467c00 isub temp ,null 
+379f 2022b7d8 branch ali_mesh_ali_vendor_message_opcode_timer_set_curr_time ,zero 
+37a0 d840f014 arg vendor_mseeage_attr_type_set_time_repeat ,temp 
+37a1 98467c00 isub temp ,null 
+37a2 2022b91c branch ali_mesh_ali_vendor_message_opcode_timer_set_timing_cyclically ,zero 
+37a3 d840f013 arg vendor_mseeage_attr_type_set_time_single ,temp 
+37a4 98467c00 isub temp ,null 
+37a5 2022b907 branch ali_mesh_ali_vendor_message_opcode_timer_set_timing ,zero 
+37a6 d840f017 arg vendor_message_attr_type_timer_deleate ,temp 
+37a7 98467c00 isub temp ,null 
+37a8 2022b819 branch ali_mesh_ali_vendor_message_opcode_delete_timer ,zero 
+37a9 d840f018 arg vendor_message_attr_type_timer_inquire ,temp 
+37aa 98467c00 isub temp ,null 
+37ab 2022b845 branch ali_mesh_ali_vendor_message_opcode_timer_inquire ,zero 
+37ac d840f016 arg vendor_mseeage_attr_type_timer_enable ,temp 
+37ad 98467c00 isub temp ,null 
+37ae 2022b86a branch ali_mesh_ali_vendor_message_opcode_timer_set_state ,zero 
+37af d8400534 arg vendor_message_attr_type_main_light ,temp 
+37b0 98467c00 isub temp ,null 
+37b1 2022b7cf branch ali_mesh_ali_vendor_message_attribute_set_main_light ,zero 
+37b2 d8400533 arg vendor_message_attr_type_background_light ,temp 
+37b3 98467c00 isub temp ,null 
+37b4 2022b7d2 branch ali_mesh_ali_vendor_message_attribute_set_background_light ,zero 
+37b5 d8400123 arg vendor_message_attr_type_color ,temp 
+37b6 98467c00 isub temp ,null 
+37b7 2022b7d5 branch ali_mesh_ali_vendor_message_attribute_set_color ,zero 
+37b8 6fe1482c fetch 2 ,mem_mesh_cb_recv_vendor 
+37b9 20207d79 branch callback_func 
+
+ali_mesh_ali_vendor_message_opcode_attr_get:
+37ba 20600000 rtn 
+
+ali_mesh_ali_vendor_message_opcode_attr_confrimation:
+37bb efe10006 ifetch 2 ,contr 
+37bc d84001a8 arg vendor_message_opcode_company_id ,temp 
+37bd 98467c00 isub temp ,null 
+37be 24628000 nrtn zero 
+37bf efe08006 ifetch 1 ,contr 
+37c0 6848c9b6 fetcht 1 ,mem_mesh_upper_tran_layer_packet_tid 
+37c1 98467c00 isub temp ,null 
+37c2 24628000 nrtn zero 
+37c3 20203b2a branch ali_mesh_stop_send_indication_packet 
+
+ali_mesh_ali_vendor_message_attrbute_check_company_id_and_tid:
+37c4 20407dbc call disable_user 
+37c5 6fe1070b fetch 2 ,mem_mesh_vendor_message_cid 
+37c6 d84001a8 arg vendor_message_opcode_company_id ,temp 
+37c7 98467c00 isub temp ,null 
+37c8 24628000 nrtn zero 
+37c9 6848c4f1 fetcht 1 ,mem_mesh_vendor_mesh_receive_tid 
+37ca 6fe0870d fetch 1 ,mem_mesh_vendor_message_tid 
+37cb 98467c00 isub temp ,null 
+37cc 20628000 rtn zero 
+37cd 67e0c4f1 store 1 ,mem_mesh_vendor_mesh_receive_tid 
+37ce 20207dba branch enable_user 
+
+ali_mesh_ali_vendor_message_attribute_set_main_light:
+37cf 204037f4 call ali_mesh_ali_vendor_message_ack_attr_status_uint8 
+37d0 6fe1483c fetch 2 ,mem_mesh_cb_main_light_onoff_set 
+37d1 20207d79 branch callback_func 
+
+ali_mesh_ali_vendor_message_attribute_set_background_light:
+37d2 204037f4 call ali_mesh_ali_vendor_message_ack_attr_status_uint8 
+37d3 6fe1483e fetch 2 ,mem_mesh_cb_background_onoff_set 
+37d4 20207d79 branch callback_func 
+
+ali_mesh_ali_vendor_message_attribute_set_color:
+37d5 204037ee call ali_mesh_ali_vendor_message_ack_attr_status_uint48 
+37d6 6fe14840 fetch 2 ,mem_mesh_cb_color_set 
+37d7 20207d79 branch callback_func 
+
+ali_mesh_ali_vendor_message_opcode_timer_set_curr_time:
+37d8 204037f0 call ali_mesh_ali_vendor_message_ack_attr_status_uint32 
+37d9 6fe20710 fetch 4 ,mem_mesh_vendor_message_current_time 
+37da 67e244f3 store 4 ,mem_mesh_vendor_timer_current_time 
+37db 20203889 branch ali_mesh_time_init_system_time 
+
+ali_mesh_ali_vendor_message_status_add_head:
+37dc 580000d3 setarg vendor_message_attr_status 
+37dd 67e08723 store 1 ,mem_mesh_access_layer_payload 
+37de 580001a8 setarg vendor_message_opcode_company_id 
+37df e7e10005 istore 2 ,contw 
+37e0 6fe0c4f1 fetch 1 ,mem_mesh_vendor_mesh_receive_tid 
+37e1 e7e08005 istore 1 ,contw 
+37e2 e0410005 istoret 2 ,contw 
+37e3 20600000 rtn 
+
+ali_mesh_ali_vendor_message_opcode_device_power_on:
+37e4 d8e00000 arg 0 ,queue 
+37e5 d8400003 arg vendor_message_event_device_power_on ,temp 
+37e6 da20f009 arg vendor_attr_type_event_trigger ,rega 
+37e7 202037fc branch ali_mesh_ali_vendor_message_opcode_para_uint8 
+
+ali_mesh_ali_vendor_message_opcode_generic_onoff:
+37e8 da200100 arg vendor_attr_generic_onoff_server ,rega 
+37e9 202037fc branch ali_mesh_ali_vendor_message_opcode_para_uint8 
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint64:
+37ea df200008 arg 8 ,loopcnt 
+37eb 202037f6 branch ali_mesh_ali_vendor_message_ack_attr_status 
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint56:
+37ec df200008 arg 8 ,loopcnt 
+37ed 202037f6 branch ali_mesh_ali_vendor_message_ack_attr_status 
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint48:
+37ee df200006 arg 6 ,loopcnt 
+37ef 202037f6 branch ali_mesh_ali_vendor_message_ack_attr_status 
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint32:
+37f0 df200004 arg 4 ,loopcnt 
+37f1 202037f6 branch ali_mesh_ali_vendor_message_ack_attr_status 
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint16:
+37f2 df200002 arg 2 ,loopcnt 
+37f3 202037f6 branch ali_mesh_ali_vendor_message_ack_attr_status 
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint8:
+37f4 df200001 arg 1 ,loopcnt 
+37f5 202037f6 branch ali_mesh_ali_vendor_message_ack_attr_status 
+
+ali_mesh_ali_vendor_message_ack_attr_status:
+37f6 1f20fe06 add loopcnt ,6 ,pdata 
+37f7 67e08722 store 1 ,mem_mesh_access_layer_payload_len 
+37f8 204037dc call ali_mesh_ali_vendor_message_status_add_head 
+37f9 d8c00710 arg mem_mesh_vendor_attr_parameter ,contr 
+37fa 20407cda call memcpy 
+37fb 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_ali_vendor_message_opcode_para_uint8:
+37fc 20403808 call ali_mesh_ali_vendor_message_indication_info_add_head 
+37fd e2210005 istorer rega ,2 ,contw 
+37fe e0408005 istoret 1 ,contw 
+37ff 70072207 jam 7 ,mem_mesh_access_layer_payload_len 
+3800 20203806 branch ali_mesh_ali_vendor_message_send_message 
+
+ali_mesh_ali_vendor_message_opcode_para_uint16:
+3801 20403808 call ali_mesh_ali_vendor_message_indication_info_add_head 
+3802 e2210005 istorer rega ,2 ,contw 
+3803 e0410005 istoret 2 ,contw 
+3804 70072208 jam 8 ,mem_mesh_access_layer_payload_len 
+3805 20203806 branch ali_mesh_ali_vendor_message_send_message 
+
+ali_mesh_ali_vendor_message_send_message:
+3806 20403f6e call ali_mesh_more_element_calc_queue_address 
+3807 202041b5 branch ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer 
+
+ali_mesh_ali_vendor_message_indication_info_add_head:
+3808 6fe0c7ae fetch 1 ,mem_mesh_transport_aid 
+3809 67e0892b store 1 ,mem_mesh_message_transport_head 
+380a 580000f0 setarg vendor_message_tmall_dst 
+380b 67e1094c store 2 ,mem_mesh_send_message_dst 
+380c 6fe0c4f2 fetch 1 ,mem_mesh_vendor_mesh_send_tid 
+380d 1fe0fe01 pincrease 1 
+380e 67e0c4f2 store 1 ,mem_mesh_vendor_mesh_send_tid 
+380f c0603817 beq vendor_message_send_tid_max ,ali_mesh_ali_vendor_message_indication_info_reset_tid 
+3810 580000d4 setarg vendor_message_attr_indication 
+3811 67e08723 store 1 ,mem_mesh_access_layer_payload 
+3812 580001a8 setarg vendor_message_opcode_company_id 
+3813 e7e10005 istore 2 ,contw 
+3814 6fe0c4f2 fetch 1 ,mem_mesh_vendor_mesh_send_tid 
+3815 e7e08005 istore 1 ,contw 
+3816 20600000 rtn 
+
+ali_mesh_ali_vendor_message_indication_info_reset_tid:
+3817 7044f280 jam vendor_message_send_tid_min ,mem_mesh_vendor_mesh_send_tid 
+3818 20600000 rtn 
+
+ali_mesh_ali_vendor_message_opcode_delete_timer:
+3819 18c22200 copy contr ,rega 
+381a 6fe08709 fetch 1 ,mem_mesh_receive_model_message_payload_len 
+381b d8400006 arg 6 ,temp 
+381c 98467e00 isub temp ,pdata 
+381d 67e0c608 store 1 ,mem_mesh_timer_index_buffer_len 
+381e 1fe27200 copy pdata ,loopcnt 
+381f 1a220c00 copy rega ,contr 
+3820 d8a04609 arg mem_mesh_timer_index_buffer ,contw 
+3821 20407cda call memcpy 
+3822 da400000 arg 0 ,regb 
+
+ali_mesh_ali_vendor_message_opcode_delete_timer_loop:
+3823 dfe04609 arg mem_mesh_timer_index_buffer ,pdata 
+3824 9a408400 iadd regb ,temp 
+3825 efe08002 ifetch 1 ,temp 
+3826 c07fb83f beq 0xff ,ali_mesh_ali_vendor_aim_timer_buffer_clear_all 
+3827 1fe17e7f and pdata ,0x7f ,pdata 
+3828 20403837 call ali_mesh_ali_vendor_aim_timer_buffer_clear 
+3829 1a40a401 increase 1 ,regb 
+382a 6fe0c608 fetch 1 ,mem_mesh_timer_index_buffer_len 
+382b 9a467c00 isub regb ,null 
+382c 20213823 branch ali_mesh_ali_vendor_message_opcode_delete_timer_loop ,positive 
+382d 2040394a call peripherals_write_mesh_timer_infmatn 
+
+ali_mesh_access_layer_send_ali_vendor_message_delete_timer:
+382e d840f017 arg vendor_message_attr_type_timer_deleate ,temp 
+382f 204037dc call ali_mesh_ali_vendor_message_status_add_head 
+3830 d8400000 arg 0 ,temp 
+3831 e0408005 istoret 1 ,contw 
+3832 18a20400 copy contw ,temp 
+3833 2040393b call ali_mesh_get_all_timer_index_timer 
+3834 1fe0fe07 pincrease 7 
+3835 67e08722 store 1 ,mem_mesh_access_layer_payload_len 
+3836 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_ali_vendor_aim_timer_buffer_clear:
+3837 207a0000 rtn blank 
+3838 1fe0ffff pincrease -1 
+3839 1feffe12 mul32 pdata ,18 ,pdata 
+383a da204503 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+383b 9a20a200 iadd rega ,rega 
+383c 58000000 setarg 0 
+383d e7e08011 istore 1 ,rega 
+383e 20600000 rtn 
+
+ali_mesh_ali_vendor_aim_timer_buffer_clear_all:
+383f df200012 arg 18 ,loopcnt 
+3840 1f2ff20d mul32 loopcnt ,mesh_x_timers ,loopcnt 
+3841 d8a04503 arg mem_mesh_vendor_timer_timing_buffer ,contw 
+3842 20407ca1 call clear_mem 
+3843 2040394a call peripherals_write_mesh_timer_infmatn 
+3844 2020382e branch ali_mesh_access_layer_send_ali_vendor_message_delete_timer 
+
+ali_mesh_ali_vendor_message_opcode_timer_inquire:
+3845 efe08006 ifetch 1 ,contr 
+3846 c07fb85e beq 0xff ,ali_mesh_ali_vendor_message_opcode_timer_inquire_all_timer 
+3847 67e0c5ff store 1 ,mem_mesh_vendor_timer_timing_temp 
+3848 efe08006 ifetch 1 ,contr 
+3849 1fe0ffff pincrease -1 
+384a 1feffe12 mul32 pdata ,18 ,pdata 
+384b d8c04503 arg mem_mesh_vendor_timer_timing_buffer ,contr 
+384c 98c08c00 iadd contr ,contr 
+384d d8a045ed arg mem_mesh_vendor_timer_timing_palyload ,contw 
+384e df200012 arg 18 ,loopcnt 
+384f 20407cda call memcpy 
+3850 d840f018 arg vendor_message_attr_type_timer_inquire ,temp 
+3851 204037dc call ali_mesh_ali_vendor_message_status_add_head 
+3852 6fe0c5ed fetch 1 ,mem_mesh_vendor_timer_timing_index 
+3853 203a3867 branch ali_mesh_ali_vendor_message_opcode_timer_inquire_time_error ,blank 
+3854 d8400000 arg 0 ,temp 
+3855 e0408005 istoret 1 ,contw 
+
+ali_mesh_ali_vendor_message_opcode_timer_inquire_time:
+3856 6fe0c5ff fetch 1 ,mem_mesh_vendor_timer_timing_temp 
+3857 e7e08005 istore 1 ,contw 
+3858 6fe0c5ed fetch 1 ,mem_mesh_vendor_timer_timing_index 
+3859 e7e08005 istore 1 ,contw 
+385a 6fe445ee fetch 8 ,mem_mesh_vendor_timer_timing_time 
+385b e7e40005 istore 8 ,contw 
+385c 70072211 jam 17 ,mem_mesh_access_layer_payload_len 
+385d 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_ali_vendor_message_opcode_timer_inquire_all_timer:
+385e d840f018 arg vendor_message_attr_type_timer_inquire ,temp 
+385f 204037dc call ali_mesh_ali_vendor_message_status_add_head 
+3860 d84000ff arg 0xff ,temp 
+3861 e0410005 istoret 2 ,contw 
+3862 18a20400 copy contw ,temp 
+3863 2040393b call ali_mesh_get_all_timer_index_timer 
+3864 1fe0fe08 pincrease 8 
+3865 67e08722 store 1 ,mem_mesh_access_layer_payload_len 
+3866 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_ali_vendor_message_opcode_timer_inquire_time_error:
+3867 d8400080 arg 0x80 ,temp 
+3868 e7e08005 istore 1 ,contw 
+3869 20203856 branch ali_mesh_ali_vendor_message_opcode_timer_inquire_time 
+
+ali_mesh_ali_vendor_message_opcode_timer_set_state:
+386a efe08006 ifetch 1 ,contr 
+386b 67e0c5ff store 1 ,mem_mesh_vendor_timer_timing_temp 
+386c 1fe17e7f and pdata ,0x7f ,pdata 
+386d 1fe0ffff pincrease -1 
+386e 1feffe12 mul32 pdata ,18 ,pdata 
+386f d8a04503 arg mem_mesh_vendor_timer_timing_buffer ,contw 
+3870 98a08a00 iadd contw ,contw 
+3871 6fe0c5ff fetch 1 ,mem_mesh_vendor_timer_timing_temp 
+3872 e7e08005 istore 1 ,contw 
+3873 2040394a call peripherals_write_mesh_timer_infmatn 
+3874 d840f016 arg vendor_mseeage_attr_type_timer_enable ,temp 
+3875 204037dc call ali_mesh_ali_vendor_message_status_add_head 
+3876 58000000 setarg 0 
+3877 e7e08005 istore 1 ,contw 
+3878 18a20400 copy contw ,temp 
+3879 2040393b call ali_mesh_get_all_timer_index_timer 
+387a 1fe0fe07 pincrease 7 
+387b 67e08722 store 1 ,mem_mesh_access_layer_payload_len 
+387c 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_time_function:
+387d 1c420400 copy clkn_bt ,temp 
+387e 6fe244f7 fetch 4 ,mem_system_time 
+387f 98467c00 isub temp ,null 
+3880 2041388f call ali_mesh_timer_timeout ,positive 
+3881 20403896 call ali_mesh_clkn_bt_add_1s 
+3882 98467c00 isub temp ,null 
+3883 20610000 rtn positive 
+3884 2040388a call ali_mesh_time_init_system_time_without_clk 
+3885 6fe244f3 fetch 4 ,mem_mesh_vendor_timer_current_time 
+3886 1fe0fe01 pincrease 1 
+3887 67e244f3 store 4 ,mem_mesh_vendor_timer_current_time 
+3888 2020389a branch ali_mesh_ali_vendor_check_time 
+
+ali_mesh_time_init_system_time:
+3889 1c427e00 copy clkn_bt ,pdata 
+
+ali_mesh_time_init_system_time_without_clk:
+388a 67e244f7 store 4 ,mem_system_time 
+388b 6fe0c4fa fetch 1 ,mem_system_time + 3 
+388c 1fe17e0f and_into 0x0f ,pdata 
+388d 67e0c4fa store 1 ,mem_system_time + 3 
+388e 20600000 rtn 
+
+ali_mesh_timer_timeout:
+388f 20628000 rtn zero 
+3890 1fe22400 copy pdata ,regb 
+3891 58100000 setarg 0x100000 
+3892 1fed7e00 lshift8 pdata ,pdata 
+3893 98408400 iadd temp ,temp 
+3894 1a427e00 copy regb ,pdata 
+3895 20600000 rtn 
+
+ali_mesh_clkn_bt_add_1s:
+3896 df200014 arg 20 ,loopcnt 
+
+ali_mesh_time_loop:
+3897 1fe0fea0 pincrease 160 
+3898 c2003897 loop ali_mesh_time_loop 
+3899 20600000 rtn 
+
+ali_mesh_ali_vendor_check_time:
+389a 5800000d setarg mesh_x_timers 
+389b 67e0c602 store 1 ,mem_mesh_vendor_timer_check_loop 
+389c 1fe0ffff pincrease -1 
+389d 1feffe12 mul32 pdata ,18 ,pdata 
+389e de004503 arg mem_mesh_vendor_timer_timing_buffer ,alarm 
+389f 9e00e000 iadd alarm ,alarm 
+
+ali_mesh_ali_vendor_check_time_loop:
+38a0 efe08030 ifetch 1 ,alarm 
+38a1 245a38a8 ncall ali_mesh_ali_vendor_had_timing ,blank 
+38a2 1e00e1ee increase -18 ,alarm 
+38a3 6fe0c602 fetch 1 ,mem_mesh_vendor_timer_check_loop 
+38a4 1fe0ffff pincrease -1 
+38a5 207a0000 rtn blank 
+38a6 67e0c602 store 1 ,mem_mesh_vendor_timer_check_loop 
+38a7 202038a0 branch ali_mesh_ali_vendor_check_time_loop 
+
+ali_mesh_ali_vendor_had_timing:
+38a8 d8e00007 arg 7 ,queue 
+38a9 afec0000 qisolate0 pdata 
+38aa 20608000 rtn true 
+38ab 1fe17e7f and pdata ,0x7f ,pdata 
+38ac d840000d arg mesh_x_timers ,temp 
+38ad 98467c00 isub temp ,null 
+38ae 20610000 rtn positive 
+38af 1e020c00 copy alarm ,contr 
+38b0 d8a045ed arg mem_mesh_vendor_timer_timing_palyload ,contw 
+38b1 df200012 arg 18 ,loopcnt 
+38b2 20407cda call memcpy 
+38b3 6fe0c5fe fetch 1 ,mem_mesh_vendor_timer_timing_palyload + 17 
+38b4 c02cb8bf beq 0x59 ,ali_mesh_ali_vendor_had_timing_cyclically 
+
+ali_mesh_ali_vendor_had_timing_single_time:
+38b5 684a44f3 fetcht 4 ,mem_mesh_vendor_timer_current_time 
+38b6 6fe245ee fetch 4 ,mem_mesh_vendor_timer_timing_time 
+38b7 98467c00 isub temp ,null 
+38b8 6fe0c5f5 fetch 1 ,mem_mesh_vendor_timer_timing_attr_para 
+38b9 2022b8e3 branch ali_mesh_ali_vendor_time_timeout ,zero 
+38ba 242138bc nbranch ali_mesh_ali_vendor_time_out_of_date ,positive 
+38bb 20600000 rtn 
+
+ali_mesh_ali_vendor_time_out_of_date:
+38bc 58000000 setarg 0 
+38bd e7e08030 istore 1 ,alarm 
+38be 20600000 rtn 
+
+ali_mesh_ali_vendor_had_timing_cyclically:
+38bf 6fe244f3 fetch 4 ,mem_mesh_vendor_timer_current_time 
+38c0 d840003c arg seconds_of_min ,temp 
+38c1 9846fc00 idiv temp 
+38c2 20407d62 call wait_div_end 
+38c3 18077e00 remainder pdata 
+38c4 247a0000 nrtn blank 
+38c5 6fe244f3 fetch 4 ,mem_mesh_vendor_timer_current_time 
+38c6 d8454600 arg seconds_of_four_days ,temp 
+38c7 98467e00 isub temp ,pdata 
+38c8 d8493a80 arg seconds_of_week ,temp 
+38c9 9846fc00 idiv temp 
+38ca 20407d62 call wait_div_end 
+38cb 18077e00 remainder pdata 
+38cc d8415180 arg seconds_of_day ,temp 
+38cd 9846fc00 idiv temp 
+38ce 20407d62 call wait_div_end 
+38cf 18072200 remainder rega 
+38d0 18078e00 quotient queue 
+38d1 6fe0c5f2 fetch 1 ,mem_mesh_vendor_timer_timing_weekdays_cyclic 
+38d2 203a38d5 branch ali_mesh_ali_vendor_had_timing_cyclically_continue ,blank 
+38d3 afefffff qisolate1 pdata 
+38d4 24608000 nrtn true 
+
+ali_mesh_ali_vendor_had_timing_cyclically_continue:
+38d5 1a227e00 deposit rega 
+38d6 d840003c arg seconds_of_min ,temp 
+38d7 9846fc00 idiv temp 
+38d8 20407d62 call wait_div_end 
+38d9 18078400 quotient temp 
+38da 580001e0 setarg eight_hours_time_zone_offset 
+38db 98408400 iadd temp ,temp 
+38dc 6fe145ee fetch 2 ,mem_mesh_vendor_timer_timing_time_cyclic 
+38dd da200fff arg 0xfff ,rega 
+38de 9a217e00 iand rega ,pdata 
+38df 98467c00 isub temp ,null 
+38e0 24628000 nrtn zero 
+38e1 6fe0c5f6 fetch 1 ,mem_mesh_vendor_timer_timing_attr_para_cyclic 
+38e2 202038e3 branch ali_mesh_ali_vendor_time_timeout 
+
+ali_mesh_ali_vendor_time_timeout:
+38e3 67e0870c store 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+38e4 70460201 jam 1 ,mem_mesh_vendor_timer_check_loop 
+38e5 1e027e00 copy alarm ,pdata 
+38e6 67e1091f store 2 ,mem_mesh_alarm_temp 
+38e7 6848870c fetcht 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+38e8 68e0c869 fetchr queue ,1 ,mem_mesh_receive_element_number 
+38e9 204037e8 call ali_mesh_ali_vendor_message_opcode_generic_onoff 
+38ea 6fe1091f fetch 2 ,mem_mesh_alarm_temp 
+38eb 1fe26000 copy pdata ,alarm 
+38ec 1e008c11 add alarm ,17 ,contr 
+38ed efe08006 ifetch 1 ,contr 
+38ee c02cb8f4 beq timer_cyclical_falg ,ali_mesh_ali_vendor_time_timeout_cyclic 
+
+ali_mesh_ali_vendor_time_timeout_continue:
+38ef 58000000 setarg 0 
+38f0 e7e08030 istore 1 ,alarm 
+38f1 68e0c869 fetchr queue ,1 ,mem_mesh_receive_element_number 
+38f2 204038ff call ali_mesh_ali_vendor_message_opcode_timing_finish 
+38f3 2020394a branch peripherals_write_mesh_timer_infmatn 
+
+ali_mesh_ali_vendor_time_timeout_cyclic:
+38f4 6fe0c5f2 fetch 1 ,mem_mesh_vendor_timer_timing_weekdays_cyclic 
+38f5 203a38ef branch ali_mesh_ali_vendor_time_timeout_continue ,blank 
+38f6 d840f009 arg vendor_attr_type_event_trigger ,temp 
+38f7 204037dc call ali_mesh_ali_vendor_message_status_add_head 
+38f8 58000011 setarg 0x11 
+38f9 e7e08005 istore 1 ,contw 
+38fa efe08030 ifetch 1 ,alarm 
+38fb 1fe1fe80 or pdata ,0x80 ,pdata 
+38fc e7e08005 istore 1 ,contw 
+38fd 70072308 jam 8 ,mem_mesh_access_layer_payload 
+38fe 20203806 branch ali_mesh_ali_vendor_message_send_message 
+
+ali_mesh_ali_vendor_message_opcode_timing_finish:
+38ff d840f020 arg vendor_attr_type_event_index_report ,temp 
+3900 204037dc call ali_mesh_ali_vendor_message_status_add_head 
+3901 18a20400 copy contw ,temp 
+3902 2040393b call ali_mesh_get_all_timer_index_timer 
+3903 1fe0fe06 pincrease 6 
+3904 67e08722 store 1 ,mem_mesh_access_layer_payload_len 
+3905 700723d3 jam vendor_message_attr_status ,mem_mesh_access_layer_payload 
+3906 20203806 branch ali_mesh_ali_vendor_message_send_message 
+
+ali_mesh_ali_vendor_message_opcode_timer_set_timing:
+3907 d8a045ed arg mem_mesh_vendor_timer_timing_index ,contw 
+3908 df200010 arg 16 ,loopcnt 
+3909 20407cda call memcpy 
+390a 6fe0c5ed fetch 1 ,mem_mesh_vendor_timer_timing_index 
+390b 1fe17e7f and pdata ,0x7f ,pdata 
+390c 67e0c5ff store 1 ,mem_mesh_vendor_timer_timing_temp 
+390d 1fe67c0d sub pdata ,mesh_x_timers ,null 
+390e 24610000 nrtn positive 
+390f 6fe245ee fetch 4 ,mem_mesh_vendor_timer_timing_time 
+3910 d840003c arg 60 ,temp 
+3911 9846fc00 idiv temp 
+3912 20407d62 call wait_div_end 
+3913 18070400 remainder temp 
+3914 98467e00 isub temp ,pdata 
+3915 67e245ee store 4 ,mem_mesh_vendor_timer_timing_time 
+3916 58000000 setarg 0 
+3917 67e145fd store 2 ,mem_mesh_vendor_timer_timing_flag 
+3918 da2045ed arg mem_mesh_vendor_timer_timing_index ,rega 
+3919 20403930 call ali_mesh_ali_vendor_store_mesh_timer_infmatn 
+391a d840f013 arg vendor_mseeage_attr_type_set_time_single ,temp 
+391b 20203928 branch ali_mesh_access_layer_send_ali_vendor_message_current_timing 
+
+ali_mesh_ali_vendor_message_opcode_timer_set_timing_cyclically:
+391c d8a045ed arg mem_mesh_vendor_timer_timing_index_cyclic ,contw 
+391d df200011 arg 17 ,loopcnt 
+391e 20407cda call memcpy 
+391f 6fe0c5ed fetch 1 ,mem_mesh_vendor_timer_timing_index_cyclic 
+3920 1fe17e7f and pdata ,0x7f ,pdata 
+3921 67e0c5ff store 1 ,mem_mesh_vendor_timer_timing_temp 
+3922 1fe67c0d sub pdata ,mesh_x_timers ,null 
+3923 24610000 nrtn positive 
+3924 7045fe59 jam 0x59 ,mem_mesh_vendor_timer_timing_cyclic_flag 
+3925 da2045ed arg mem_mesh_vendor_timer_timing_index_cyclic ,rega 
+3926 20403930 call ali_mesh_ali_vendor_store_mesh_timer_infmatn 
+3927 d840f014 arg vendor_mseeage_attr_type_set_time_repeat ,temp 
+
+ali_mesh_access_layer_send_ali_vendor_message_current_timing:
+3928 204037dc call ali_mesh_ali_vendor_message_status_add_head 
+3929 58000000 setarg 0 
+392a 67e08729 store 1 ,mem_mesh_access_layer_payload + 6 
+392b 18a20400 copy contw ,temp 
+392c 2040393b call ali_mesh_get_all_timer_index_timer 
+392d 1fe0fe07 pincrease 7 
+392e 67e08722 store 1 ,mem_mesh_access_layer_payload_len 
+392f 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_ali_vendor_store_mesh_timer_infmatn:
+3930 20403937 call ali_mesh_vendor_timer_buffer_offset_cal 
+3931 1a220c00 copy rega ,contr 
+3932 d8a04503 arg mem_mesh_vendor_timer_timing_buffer ,contw 
+3933 98a08a00 iadd contw ,contw 
+3934 df200012 arg 18 ,loopcnt 
+3935 20407cda call memcpy 
+3936 2020394a branch peripherals_write_mesh_timer_infmatn 
+
+ali_mesh_vendor_timer_buffer_offset_cal:
+3937 6fe0c5ff fetch 1 ,mem_mesh_vendor_timer_timing_temp 
+3938 1fe0ffff pincrease -1 
+3939 1feffe12 mul32 pdata ,18 ,pdata 
+393a 20600000 rtn 
+
+ali_mesh_get_all_timer_index_timer:
+393b da204503 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+393c da400000 arg 0 ,regb 
+393d 18420a00 copy temp ,contw 
+393e df20000d arg mesh_x_timers ,loopcnt 
+393f 1f20f3ff increase -1 ,loopcnt 
+
+ali_mesh_get_all_timer_index_timer_loop:
+3940 efe08011 ifetch 1 ,rega 
+3941 c07fb945 beq 0xff ,ali_mesh_get_all_timer_index_timer_loop_end 
+3942 203a3945 branch ali_mesh_get_all_timer_index_timer_loop_end ,blank 
+3943 1a40a401 increase 1 ,regb 
+3944 e7e08005 istore 1 ,contw 
+
+ali_mesh_get_all_timer_index_timer_loop_end:
+3945 58000012 setarg 18 
+3946 9a20a200 iadd rega ,rega 
+3947 c2003940 loop ali_mesh_get_all_timer_index_timer_loop 
+3948 1a427e00 copy regb ,pdata 
+3949 20600000 rtn 
+
+peripherals_write_mesh_timer_infmatn:
+394a 6fe1484a fetch 2 ,mem_mesh_cb_vendor_timing_changed 
+394b 20207d79 branch callback_func 
+
+ali_mesh_bearer_layer_send_packet_by_network_layer:
+394c 4750c034 bpatchx patch34_1 ,mem_patch34 
+394d 58004a5e setarg mem_mesh_queue_each_size 
+394e 67e14aed store 2 ,mem_mesh_element_device_queue_buffer_ptr 
+394f 58004aeb setarg mem_mesh_element_device 
+3950 67e10919 store 2 ,mem_mesh_rega_temp 
+3951 70078714 jam adv_pairing_mesh_message_duration ,mem_mesh_queue_ele_duration 
+3952 6fe0c808 fetch 1 ,mem_mesh_gatt_package_send_msg_id 
+3953 67e08788 store 1 ,mem_mesh_queue_ele_gatt_msg_id 
+3954 6fe08916 fetch 1 ,mem_mesh_lower_transport_layer_payload_len 
+3955 1fe0fe0b pincrease 11 
+3956 1fe0f3fe add pdata ,-2 ,loopcnt 
+3957 67e08789 store 1 ,mem_mesh_queue_ele_len 
+3958 1fe0ffff pincrease -1 
+3959 e7e08005 istore 1 ,contw 
+395a 5800002a setarg gap_adtype_mesh_message 
+395b e7e08005 istore 1 ,contw 
+395c d8c04998 arg mem_mesh_send_upper_layer_ivi_and_nid ,contr 
+395d 20407ccc call memcpy_fast 
+395e 6a210919 fetchr rega ,2 ,mem_mesh_rega_temp 
+395f 20403967 call ali_mesh_advertising_bearer_layer_init_queue 
+3960 204078b2 call queue_push 
+
+ali_mesh_bearer_layer_gatt_send_packet_by_network_layer:
+3961 6fe144e9 fetch 2 ,mem_ui_state_map 
+3962 2feffe09 isolate1 ui_state_ble_connected ,pdata 
+3963 24608000 nrtn true 
+
+ali_mesh_send_ble_data_control_package:
+3964 20403e5e call ali_mesh_network_layer_init_gatt_queue_param 
+3965 da200787 arg mem_mesh_queue_ele_temp ,rega 
+3966 202078b2 branch queue_push 
+
+ali_mesh_advertising_bearer_layer_init_queue:
+3967 1a208c02 add rega ,element_device_queue_buffer_ptr ,contr 
+3968 efe10006 ifetch 2 ,contr 
+3969 67e143fb store 2 ,mem_queue_ptr 
+396a da200787 arg mem_mesh_queue_ele_temp ,rega 
+396b 20600000 rtn 
+
+ali_mesh_advertising_bearer_layer_init_queue_param:
+396c 58004a5e setarg mem_mesh_queue_each_size 
+396d 67e143fb store 2 ,mem_queue_ptr 
+396e 20600000 rtn 
+
+ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue:
+
+ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue_deal:
+396f 6fe0c9b5 fetch 1 ,mem_mesh_upper_tran_layer_packet_advertising 
+3970 c1808000 rtnne packet_in_bearer 
+3971 7049b502 jam packet_in_adverting ,mem_mesh_upper_tran_layer_packet_advertising 
+3972 20203ace branch ali_mesh_control_ble_advertising_on_advertising 
+
+ali_mesh_advertising_bearer_layer_send_packet_by_app_bearer_calc_param:
+3973 da20078c arg mem_mesh_queue_ele_payload + 2 ,rega 
+3974 d8400012 arg max_app_mssage_payload_length ,temp 
+3975 58000021 setarg 0x21 
+3976 24608000 nrtn true 
+3977 da20079e arg mem_mesh_queue_ele_payload + 20 ,rega 
+3978 68488789 fetcht 1 ,mem_mesh_queue_ele_len 
+3979 184085ee increase -18 ,temp 
+397a 58000022 setarg 0x22 
+397b 20600000 rtn 
+
+ali_mesh_advertising_add_adtype_flags:
+397c d8a0462b arg mem_mesh_adv_data ,contw 
+397d 58000002 setarg 0x02 
+397e e7e08005 istore 1 ,contw 
+397f 58000001 setarg gap_adtype_flags 
+3980 e7e08005 istore 1 ,contw 
+3981 58000002 setarg 0x02 
+3982 e7e08005 istore 1 ,contw 
+3983 20600000 rtn 
+
+ali_mesh_advertising_add_adtype_16bit_complete:
+3984 d8401827 arg mesh_provisioning_uuid ,temp 
+3985 58000003 setarg 0x03 
+3986 e7e08005 istore 1 ,contw 
+3987 58000003 setarg gap_adtype_16bit_complete 
+3988 e7e08005 istore 1 ,contw 
+3989 e0410005 istoret 2 ,contw 
+398a 20600000 rtn 
+
+mesh_ble_rx_packet_only:
+398b 204025b8 call le_enable 
+398c 20402af5 call le_init_adv 
+398d 2040264e call le_receive_adv 
+398e 24768000 nrtn match 
+398f 6fe08002 fetch 1 ,mem_le_adv_rcv 
+3990 1fe0fe01 pincrease 1 
+3991 67e08002 store 1 ,mem_le_adv_rcv 
+3992 6fe14824 fetch 2 ,mem_mesh_cb_receive_advertising 
+3993 20407d79 call callback_func 
+3994 202025bc branch le_disable 
+
+mesh_ble_rx_packet:
+3995 204039a1 call mesh_ble_rx_packet_check_and_init 
+3996 20740000 rtn user 
+
+mesh_ble_rx_packet_check_timer:
+3997 2040398b call mesh_ble_rx_packet_only 
+3998 20402018 call connection_dispatch 
+3999 68494344 fetcht 2 ,mem_le_scan_interval 
+399a d8e0000a arg 10 ,queue 
+399b 204020dc call sniff_check_window 
+399c 20740000 rtn user 
+399d d8e0000d arg mesh_ble_rx_timer ,queue 
+399e 20407cef call timer_check 
+399f 243a3997 nbranch mesh_ble_rx_packet_check_timer ,blank 
+39a0 20600000 rtn 
+
+mesh_ble_rx_packet_check_and_init:
+39a1 68494344 fetcht 2 ,mem_le_scan_interval 
+39a2 d8e00004 arg 4 ,queue 
+39a3 204020dc call sniff_check_window 
+39a4 20740000 rtn user 
+39a5 204039a9 call mesh_le_calc_next_scan_channel 
+39a6 6fe14344 fetch 2 ,mem_le_scan_interval 
+39a7 d8e0000d arg mesh_ble_rx_timer ,queue 
+39a8 20207ce1 branch timer_init 
+
+mesh_le_calc_next_scan_channel:
+39a9 6fe0c64a fetch 1 ,mem_mesh_adv_scan_channel 
+39aa 1fe0fe01 pincrease 1 
+39ab 67e0c64a store 1 ,mem_mesh_adv_scan_channel 
+39ac 67e08007 store 1 ,mem_le_ch_mapped 
+39ad c1940000 rtnne 40 
+39ae 70464a25 jam 37 ,mem_mesh_adv_scan_channel 
+39af 70000725 jam 37 ,mem_le_ch_mapped 
+39b0 20600000 rtn 
+
+mesh_check_ble_rx_packet:
+39b1 6fe0804c fetch 1 ,mem_le_rxbuf 
+39b2 1fe17e0f and pdata ,0x0f ,pdata 
+39b3 c00039b6 beq adv_ind ,ali_mesh_match_advertising_packet 
+39b4 c00139b6 beq adv_nonconn_ind ,ali_mesh_match_advertising_packet 
+39b5 20600000 rtn 
+
+ali_mesh_match_advertising_packet:
+39b6 e8408006 ifetcht 1 ,contr 
+39b7 18467c06 sub temp ,adv_packet_min_length ,null 
+39b8 20610000 rtn positive 
+39b9 18467c25 sub temp ,adv_packet_max_length ,null 
+39ba 24610000 nrtn positive 
+39bb 1840a3fa add temp ,-6 ,rega 
+39bc 18c0a406 add contr ,6 ,regb 
+
+ali_mesh_find_adv_ind_packet:
+39bd e8408012 ifetcht 1 ,regb 
+39be 18467c01 sub temp ,ad_type_min_length ,null 
+39bf 20610000 rtn positive 
+39c0 18467c1e sub temp ,ad_type_max_length ,null 
+39c1 24610000 nrtn positive 
+39c2 18427e00 copy temp ,pdata 
+39c3 207a0000 rtn blank 
+39c4 47514034 bpatchx patch34_2 ,mem_patch34 
+39c5 efe08006 ifetch 1 ,contr 
+39c6 c07fb9d1 beq gap_adtype_manufacturer_specific ,ali_mesh_receive_adtype_manufacturer_specific_tmall_control 
+39c7 c0153f7c beq gap_adtype_mesh_message ,ali_mesh_receive_adtype_mesh_message 
+39c8 1840fe01 add temp ,1 ,pdata 
+39c9 9a267c00 isub rega ,null 
+39ca 20610000 rtn positive 
+39cb 9a40a400 iadd regb ,regb 
+39cc 18467fff sub temp ,-1 ,pdata 
+39cd 9a20a200 iadd rega ,rega 
+39ce 1a227e00 copy rega ,pdata 
+39cf 207a0000 rtn blank 
+39d0 202039bd branch ali_mesh_find_adv_ind_packet 
+
+ali_mesh_receive_adtype_manufacturer_specific_tmall_control:
+39d1 7007aa00 jam mesh_message_tmall ,mem_mesh_fast_pair_packet_type 
+39d2 20203cfa branch ali_mesh_receive_adtype_manufacturer_specific 
+
+mesh_le_send_adv:
+39d3 6fe08000 fetch 1 ,mem_le_adv_transmit 
+39d4 1fe0fe01 pincrease 1 
+39d5 67e08000 store 1 ,mem_le_adv_transmit 
+39d6 4751c034 bpatchx patch34_3 ,mem_patch34 
+39d7 204025b8 call le_enable 
+39d8 df200027 arg 39 ,loopcnt 
+39d9 d8c04169 arg mem_le_txheader ,contr 
+39da d8a007aa arg mem_le_txheader_mesh_temp ,contw 
+39db 20407ccc call memcpy_fast 
+39dc 70000725 jam 37 ,mem_le_ch_mapped 
+39dd db600708 arg 1800 ,stop_watch 
+39de 78287c00 enable swfine 
+39df 7856fc00 disable match 
+
+mesh_le_send_adv_loop:
+39e0 20402af5 call le_init_adv 
+39e1 204039f0 call mesh_le_send_adv_nonconn_ind 
+39e2 180a7e00 random pdata 
+39e3 d84001ff arg 0x1ff ,temp 
+39e4 98417e00 iand temp ,pdata 
+39e5 1fe0fe64 add pdata ,100 ,pdata 
+39e6 20407c91 call delay 
+39e7 6fe08007 fetch 1 ,mem_le_ch_mapped 
+39e8 1fe0fe01 pincrease 1 
+39e9 67e08007 store 1 ,mem_le_ch_mapped 
+39ea c09439e0 bne 40 ,mesh_le_send_adv_loop 
+39eb df200027 arg 39 ,loopcnt 
+39ec d8a04169 arg mem_le_txheader ,contw 
+39ed d8c007aa arg mem_le_txheader_mesh_temp ,contr 
+39ee 20407ccc call memcpy_fast 
+39ef 202025bc branch le_disable 
+
+mesh_le_send_adv_nonconn_ind:
+39f0 d8400002 arg adv_nonconn_ind ,temp 
+39f1 6048c169 storet 1 ,mem_le_txheader 
+39f2 6848c62a fetcht 1 ,mem_mesh_adv_data_len 
+39f3 1840fe06 add temp ,6 ,pdata 
+39f4 67e0c16a store 1 ,mem_le_txlen 
+39f5 6fe342db fetch 6 ,mem_le_lap 
+39f6 67e3416b store 6 ,mem_le_txpayload 
+39f7 18427200 copy temp ,loopcnt 
+39f8 d8c0462b arg mem_mesh_adv_data ,contr 
+39f9 20407ccc call memcpy_fast 
+39fa 2020273e branch le_transmit_norx 
+
+ali_mesh_base_adt_cache:
+39fb 47524034 bpatchx patch34_4 ,mem_patch34 
+39fc 684908f4 fetcht 2 ,mem_ccm_data_ptr 
+39fd 6fe088f3 fetch 1 ,mem_ccm_data_len 
+39fe 18420c00 copy temp ,contr 
+39ff da20476e arg mem_k4_salt ,rega 
+3a00 de00477e arg mem_k4_t ,alarm 
+3a01 20403c5a call ali_mesh_encrypt_base_function_aes_cmac 
+3a02 20407dbc call disable_user 
+3a03 1a627e00 copy regc ,pdata 
+3a04 9e008c00 iadd alarm ,contr 
+3a05 684a477e fetcht 4 ,mem_k4_t 
+3a06 6fe10910 fetch 2 ,mem_mesh_mic_cache_ptr 
+3a07 1fe22200 copy pdata ,rega 
+3a08 df20000a arg transport_mic_cache_space_num ,loopcnt 
+
+ali_mesh_base_adt_cache_loop:
+3a09 efe20011 ifetch 4 ,rega 
+3a0a 203a3a16 branch ali_mesh_base_adt_cache_empty_space ,blank 
+3a0b 98467c00 isub temp ,null 
+3a0c 20628000 rtn zero 
+3a0d 1a20a204 increase transport_mic_cache_space_size ,rega 
+3a0e c2003a09 loop ali_mesh_base_adt_cache_loop 
+3a0f 6fe10910 fetch 2 ,mem_mesh_mic_cache_ptr 
+3a10 1fe20a00 copy pdata ,contw 
+3a11 1fe08c04 add pdata ,transport_mic_cache_space_size ,contr 
+3a12 df200024 arg transport_mic_cache_total_size ,loopcnt 
+3a13 20407ccc call memcpy_fast 
+3a14 e0420005 istoret 4 ,contw 
+3a15 20207dba branch enable_user 
+
+ali_mesh_base_adt_cache_empty_space:
+3a16 e0420011 istoret 4 ,rega 
+3a17 20207dba branch enable_user 
+
+ali_mesh_chip_peripherals_load_data:
+3a18 6fe0c857 fetch 1 ,mem_mesh_chip_select 
+3a19 c000ba43 beq mesh_chip_from_eeprom ,ali_mesh_chip_peripherals_load_data_from_eep 
+
+ali_mesh_chip_peripherals_load_data_from_flash:
+3a1a 20403a21 call ali_mesh_chip_peripherals_load_three_tuple_from_flash 
+3a1b 20403a25 call ali_mesh_chip_peripherals_load_network_key_from_flash 
+3a1c 20403a2c call ali_mesh_chip_peripherals_load_application_key_from_flash 
+3a1d 20403a30 call ali_mesh_chip_peripherals_load_device_key_from_flash 
+3a1e 20403a34 call ali_mesh_chip_peripherals_load_reset_count_from_flash 
+3a1f 20403a35 call ali_mesh_chip_peripherals_load_seq_from_flash 
+3a20 20203a39 branch ali_mesh_chip_peripherals_load_subscription_from_flash 
+
+ali_mesh_chip_peripherals_load_three_tuple_from_flash:
+3a21 d840001a arg mesh_eep_three_tuple_length ,temp 
+3a22 da20480a arg mem_mesh_three_tuple_productid ,rega 
+3a23 5801ffa0 setarg 0x1ffa0 
+3a24 20206c4d branch spid_read_flash 
+
+ali_mesh_chip_peripherals_load_network_key_from_flash:
+3a25 d8400013 arg mesh_eep_network_key_length ,temp 
+3a26 da2047ef arg mem_mesh_network_key ,rega 
+3a27 5801e000 setarg mesh_flash_network_key_addr 
+3a28 20406c4d call spid_read_flash 
+3a29 6fe0c7ff fetch 1 ,mem_mesh_last_iv_index_byte 
+3a2a 67e0c871 store 1 ,mem_mesh_iv_index + 3 
+3a2b 20600000 rtn 
+
+ali_mesh_chip_peripherals_load_application_key_from_flash:
+3a2c d8400010 arg mesh_eep_application_key_length ,temp 
+3a2d da204959 arg mem_mesh_application_key ,rega 
+3a2e 5801e100 setarg mesh_flash_application_key_addr 
+3a2f 20206c4d branch spid_read_flash 
+
+ali_mesh_chip_peripherals_load_device_key_from_flash:
+3a30 d8400010 arg mesh_eep_device_key_length ,temp 
+3a31 da2046a0 arg mem_mesh_device_key ,rega 
+3a32 5801e200 setarg mesh_flash_device_key_addr 
+3a33 20206c4d branch spid_read_flash 
+
+ali_mesh_chip_peripherals_load_reset_count_from_flash:
+3a34 20600000 rtn 
+
+ali_mesh_chip_peripherals_load_seq_from_flash:
+3a35 d8400003 arg mesh_eep_seq_length ,temp 
+3a36 da204992 arg mem_mesh_send_message_seq ,rega 
+3a37 5801f000 setarg mesh_flash_message_seq_addr 
+3a38 20206c4d branch spid_read_flash 
+
+ali_mesh_chip_peripherals_load_subscription_from_flash:
+3a39 6fe1484c fetch 2 ,mem_mesh_core_feature 
+3a3a c3810000 rtnbit1 mesh_feature_disable_subscription 
+3a3b d8400040 arg mesh_eep_subscription_total_length ,temp 
+3a3c da2006a1 arg mem_mesh_subscription_eep_temp ,rega 
+3a3d 5801e400 setarg mesh_flash_subscription_addr 
+3a3e 20406c4d call spid_read_flash 
+3a3f 20403e3e call mesh_get_element_info_config 
+3a40 d8c006a1 arg mem_mesh_subscription_eep_temp ,contr 
+3a41 1a20a206 add rega ,element_device_subscription_label ,rega 
+3a42 20203a6b branch ali_mesh_chip_peripherals_load_subscription_loop 
+
+ali_mesh_chip_peripherals_load_data_from_eep:
+3a43 20403a4a call ali_mesh_chip_peripherals_load_three_tuple_from_eep 
+3a44 20403a4e call ali_mesh_chip_peripherals_load_network_key_from_eep 
+3a45 20403a55 call ali_mesh_chip_peripherals_load_application_key_from_eep 
+3a46 20403a59 call ali_mesh_chip_peripherals_load_device_key_from_eep 
+3a47 20403a5d call ali_mesh_chip_peripherals_load_reset_count_from_eep 
+3a48 20403a5e call ali_mesh_chip_peripherals_load_seq_from_eep 
+3a49 20203a62 branch ali_mesh_chip_peripherals_load_subscription_from_eep 
+
+ali_mesh_chip_peripherals_load_three_tuple_from_eep:
+3a4a d840001a arg mesh_eep_three_tuple_length ,temp 
+3a4b da20480a arg mem_mesh_three_tuple_productid ,rega 
+3a4c da400000 arg mesh_eep_three_tuple_offset ,regb 
+3a4d 20206ce1 branch iicd_read_eep_data 
+
+ali_mesh_chip_peripherals_load_network_key_from_eep:
+3a4e d8400013 arg mesh_eep_network_key_length ,temp 
+3a4f da2047ef arg mem_mesh_network_key ,rega 
+3a50 da40001a arg mesh_eep_network_key_offset ,regb 
+3a51 20406ce1 call iicd_read_eep_data 
+3a52 6fe0c7ff fetch 1 ,mem_mesh_last_iv_index_byte 
+3a53 67e0c871 store 1 ,mem_mesh_iv_index + 3 
+3a54 20600000 rtn 
+
+ali_mesh_chip_peripherals_load_application_key_from_eep:
+3a55 d8400010 arg mesh_eep_application_key_length ,temp 
+3a56 da204959 arg mem_mesh_application_key ,rega 
+3a57 da40002d arg mesh_eep_application_key_offset ,regb 
+3a58 20206ce1 branch iicd_read_eep_data 
+
+ali_mesh_chip_peripherals_load_device_key_from_eep:
+3a59 d8400010 arg mesh_eep_device_key_length ,temp 
+3a5a da2046a0 arg mem_mesh_device_key ,rega 
+3a5b da40003d arg mesh_eep_device_key_offset ,regb 
+3a5c 20206ce1 branch iicd_read_eep_data 
+
+ali_mesh_chip_peripherals_load_reset_count_from_eep:
+3a5d 20600000 rtn 
+
+ali_mesh_chip_peripherals_load_seq_from_eep:
+3a5e d8400003 arg mesh_eep_seq_length ,temp 
+3a5f da204992 arg mem_mesh_send_message_seq ,rega 
+3a60 da40004e arg mesh_eep_seq_offset ,regb 
+3a61 20206ce1 branch iicd_read_eep_data 
+
+ali_mesh_chip_peripherals_load_subscription_from_eep:
+3a62 6fe1484c fetch 2 ,mem_mesh_core_feature 
+3a63 c3810000 rtnbit1 mesh_feature_disable_subscription 
+3a64 d8400040 arg mesh_eep_subscription_total_length ,temp 
+3a65 da2006a1 arg mem_mesh_subscription_eep_temp ,rega 
+3a66 da400051 arg mesh_eep_subscription_offset ,regb 
+3a67 20406ce1 call iicd_read_eep_data 
+3a68 20403e3e call mesh_get_element_info_config 
+3a69 d8c006a1 arg mem_mesh_subscription_eep_temp ,contr 
+3a6a 1a20a206 add rega ,element_device_subscription_label ,rega 
+
+ali_mesh_chip_peripherals_load_subscription_loop:
+3a6b 1a220a00 copy rega ,contw 
+3a6c 20407c8f call memcpy16 
+3a6d 1a427e00 copy regb ,pdata 
+3a6e 9a20a200 iadd rega ,rega 
+3a6f c2003a6b loop ali_mesh_chip_peripherals_load_subscription_loop 
+3a70 20600000 rtn 
+
+mesh_receive_config_appkey_add_cb:
+3a71 6fe0c857 fetch 1 ,mem_mesh_chip_select 
+3a72 c000ba83 beq mesh_chip_from_eeprom ,mesh_receive_config_appkey_add_eeprom_cb 
+3a73 c0013a74 beq mesh_chip_from_flash ,mesh_receive_config_appkey_add_flash_cb 
+
+mesh_receive_config_appkey_add_flash_cb:
+3a74 20403a77 call ali_mesh_chip_peripherals_save_network_key_from_flash 
+3a75 20403a7b call ali_mesh_chip_peripherals_save_application_key_from_flash 
+3a76 20203a7f branch ali_mesh_chip_peripherals_save_device_key_from_flash 
+
+ali_mesh_chip_peripherals_save_network_key_from_flash:
+3a77 d8400013 arg mesh_eep_network_key_length ,temp 
+3a78 da2047ef arg mem_mesh_network_key ,rega 
+3a79 5801e000 setarg mesh_flash_network_key_addr 
+3a7a 20206c33 branch spid_write_flash_data 
+
+ali_mesh_chip_peripherals_save_application_key_from_flash:
+3a7b d8400010 arg mesh_eep_application_key_length ,temp 
+3a7c da204959 arg mem_mesh_application_key ,rega 
+3a7d 5801e100 setarg mesh_flash_application_key_addr 
+3a7e 20206c33 branch spid_write_flash_data 
+
+ali_mesh_chip_peripherals_save_device_key_from_flash:
+3a7f d8400010 arg mesh_eep_device_key_length ,temp 
+3a80 da2046a0 arg mem_mesh_device_key ,rega 
+3a81 5801e200 setarg mesh_flash_device_key_addr 
+3a82 20206c33 branch spid_write_flash_data 
+
+mesh_receive_config_appkey_add_eeprom_cb:
+3a83 20403a86 call ali_mesh_chip_peripherals_save_network_key_from_eep 
+3a84 20403a8a call ali_mesh_chip_peripherals_save_application_key_from_eep 
+3a85 20203a8e branch ali_mesh_chip_peripherals_save_device_key_from_eep 
+
+ali_mesh_chip_peripherals_save_network_key_from_eep:
+3a86 d8400013 arg mesh_eep_network_key_length ,temp 
+3a87 da2047ef arg mem_mesh_network_key ,rega 
+3a88 da40001a arg mesh_eep_network_key_offset ,regb 
+3a89 20206cd3 branch iicd_write_protect_eep_data 
+
+ali_mesh_chip_peripherals_save_application_key_from_eep:
+3a8a d8400010 arg mesh_eep_application_key_length ,temp 
+3a8b da204959 arg mem_mesh_application_key ,rega 
+3a8c da40002d arg mesh_eep_application_key_offset ,regb 
+3a8d 20206cd3 branch iicd_write_protect_eep_data 
+
+ali_mesh_chip_peripherals_save_device_key_from_eep:
+3a8e d8400010 arg mesh_eep_device_key_length ,temp 
+3a8f da2046a0 arg mem_mesh_device_key ,rega 
+3a90 da40003d arg mesh_eep_device_key_offset ,regb 
+3a91 20206cd3 branch iicd_write_protect_eep_data 
+
+mesh_store_new_seq_data:
+3a92 6fe1c992 fetch 3 ,mem_mesh_send_message_seq 
+3a93 6849cc24 fetcht 3 ,mem_mesh_send_message_seq_temp 
+3a94 98467c00 isub temp ,null 
+3a95 24610000 nrtn positive 
+3a96 1fe0fe80 add pdata ,128 ,pdata 
+3a97 67e1cc24 store 3 ,mem_mesh_send_message_seq_temp 
+3a98 6fe0c857 fetch 1 ,mem_mesh_chip_select 
+3a99 c000ba9e beq 1 ,ali_mesh_chip_peripherals_save_seq_from_eep 
+
+ali_mesh_chip_peripherals_save_seq_from_flash:
+3a9a d8400003 arg mesh_eep_seq_length ,temp 
+3a9b da204c24 arg mem_mesh_send_message_seq_temp ,rega 
+3a9c 5801f000 setarg mesh_flash_message_seq_addr 
+3a9d 20206c33 branch spid_write_flash_data 
+
+ali_mesh_chip_peripherals_save_seq_from_eep:
+3a9e d8400003 arg mesh_eep_seq_length ,temp 
+3a9f da204c24 arg mem_mesh_send_message_seq_temp ,rega 
+3aa0 da40004e arg mesh_eep_seq_offset ,regb 
+3aa1 20206cd3 branch iicd_write_protect_eep_data 
+
+mesh_store_new_subscriptuion_list_data:
+3aa2 20403aad call ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep 
+3aa3 6fe0c857 fetch 1 ,mem_mesh_chip_select 
+3aa4 c0013aa9 beq 2 ,mesh_store_new_subscriptuion_list_data_from_flash 
+3aa5 d8400040 arg mesh_eep_subscription_total_length ,temp 
+3aa6 da2006a1 arg mem_mesh_subscription_eep_temp ,rega 
+3aa7 da400051 arg mesh_eep_subscription_offset ,regb 
+3aa8 20206cd3 branch iicd_write_protect_eep_data 
+
+mesh_store_new_subscriptuion_list_data_from_flash:
+3aa9 d8400040 arg mesh_eep_subscription_total_length ,temp 
+3aaa da2006a1 arg mem_mesh_subscription_eep_temp ,rega 
+3aab 5801e400 setarg mesh_flash_subscription_addr 
+3aac 20206c33 branch spid_write_flash_data 
+
+ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep:
+3aad 20403e3e call mesh_get_element_info_config 
+3aae d8a006a1 arg mem_mesh_subscription_eep_temp ,contw 
+3aaf 1a20a206 add rega ,element_device_subscription_label ,rega 
+
+ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep_loop:
+3ab0 1a220c00 copy rega ,contr 
+3ab1 20407c8f call memcpy16 
+3ab2 1a427e00 copy regb ,pdata 
+3ab3 9a20a200 iadd rega ,rega 
+3ab4 c2003ab0 loop ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep_loop 
+3ab5 20600000 rtn 
+
+mesh_clear_pairing_key:
+3ab6 6fe0c857 fetch 1 ,mem_mesh_chip_select 
+3ab7 c000babb beq 1 ,ali_mesh_chip_clear_pairing_key_from_eeprom 
+
+ali_mesh_chip_clear_pairing_key_from_flash:
+3ab8 5801e000 setarg 0x1e000 
+3ab9 67e1c419 store 3 ,mem_spi_write_addr 
+3aba 20206bfa branch spid_flash_erase_sector + 2 
+
+ali_mesh_chip_clear_pairing_key_from_eeprom:
+3abb 20600000 rtn 
+
+mesh_vendor_timming_chage_cb:
+3abc 6fe0c857 fetch 1 ,mem_mesh_chip_select 
+3abd c1810000 rtnne 2 
+3abe 5801d000 setarg 0x1d000 
+3abf da204503 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+3ac0 d840000d arg mesh_x_timers ,temp 
+3ac1 184f8412 mul32 temp ,18 ,temp 
+3ac2 20206c33 branch spid_write_flash_data 
+
+ali_mesh_vendor_timer_message_read:
+3ac3 6fe0c857 fetch 1 ,mem_mesh_chip_select 
+3ac4 c1810000 rtnne 2 
+3ac5 da204503 arg mem_mesh_vendor_timer_timing_buffer ,rega 
+3ac6 d840000d arg mesh_x_timers ,temp 
+3ac7 184f8412 mul32 temp ,18 ,temp 
+3ac8 5801d000 setarg 0x1d000 
+3ac9 20206c4d branch spid_read_flash 
+
+ali_mesh_control_ble_adv_process:
+3aca 20404073 call ali_mesh_ble_adv 
+3acb 20203ad2 branch ali_mesh_control_ble_adv_tmall_packet 
+
+ali_mesh_control_ble_adv_timer_process:
+3acc 20403b23 call ali_mesh_advertising_unprovisioned_timer_interval_timer 
+3acd 20203b19 branch ali_mesh_advertising_unprovisioned_timer 
+
+ali_mesh_control_ble_advertising_on_advertising:
+3ace 70464b01 jam device_beacon_on ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+3acf 20600000 rtn 
+
+ali_mesh_control_ble_advertising_off_advertising:
+3ad0 70464b00 jam device_beacon_off ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+3ad1 20600000 rtn 
+
+ali_mesh_control_ble_adv_tmall_packet:
+3ad2 da403ad6 arg ali_mesh_control_ble_adv_tmall_packet_send_package ,regb 
+3ad3 da20001d arg mesh_adv_tmall_message_interval ,rega 
+3ad4 d8e0000e arg mesh_ble_adv_tmall ,queue 
+3ad5 20203b0e branch ali_mesh_chip_timer_check_with_random_timer 
+
+ali_mesh_control_ble_adv_tmall_packet_send_package:
+3ad6 6fe0c7e4 fetch 1 ,mem_mesh_provisioned_flag 
+3ad7 c000bafd beq unprovisioned_beacon_status ,ali_mesh_control_ble_advertising_send_device_beacon_packet 
+3ad8 c001badc beq silence_beacon_status ,ali_mesh_control_ble_advertising_send_device_silence_beacon_packet 
+3ad9 c0013b0d beq pairing_status ,ali_mesh_control_ble_advertising_send_pairing_packet 
+3ada c0003ade beq paired_status ,ali_mesh_control_ble_advertising_send_paired_packet 
+3adb 20203ade branch ali_mesh_control_ble_advertising_send_paired_packet 
+
+ali_mesh_control_ble_advertising_send_device_silence_beacon_packet:
+3adc 70438800 jam 0 ,mem_le_adv_enable 
+3add 20203ad0 branch ali_mesh_control_ble_advertising_off_advertising 
+
+ali_mesh_control_ble_advertising_send_paired_packet:
+3ade 2040396c call ali_mesh_advertising_bearer_layer_init_queue_param 
+3adf da200787 arg mem_mesh_queue_ele_temp ,rega 
+3ae0 204078dc call queue_get_new_ele 
+3ae1 24740000 nrtn user 
+3ae2 6fe0c9b7 fetch 1 ,mem_mesh_upper_tran_layer_packet_type 
+3ae3 c2813aef bbit1 bit_uuper_tran_proxy_message ,ali_mesh_control_ble_advertising_send_paired_packet_end_duration_proxy 
+3ae4 6fe08787 fetch 1 ,mem_mesh_queue_ele_duration 
+3ae5 1fe0ffff pincrease -1 
+3ae6 e7e08012 istore 1 ,regb 
+3ae7 1fe17e7f and pdata ,0x7f ,pdata 
+3ae8 205a3af5 call ali_mesh_control_ble_advertising_send_paired_packet_end_duration ,blank 
+3ae9 6fe0c9b7 fetch 1 ,mem_mesh_upper_tran_layer_packet_type 
+3aea c4000000 rtnbit0 bit_upper_tran_tmall_message 
+3aeb d8a0462a arg mem_mesh_adv_data_len ,contw 
+3aec d8c00789 arg mem_mesh_queue_ele_len ,contr 
+3aed 20407c8d call memcpy32 
+3aee 202039d3 branch mesh_le_send_adv 
+
+ali_mesh_control_ble_advertising_send_paired_packet_end_duration_proxy:
+3aef da200787 arg mem_mesh_queue_ele_duration ,rega 
+3af0 204078ca call queue_pop 
+3af1 204078fa call queue_empty 
+3af2 247a0000 nrtn blank 
+3af3 20403afb call ali_mesh_send_paired_packet_init_advertising 
+3af4 20203ad0 branch ali_mesh_control_ble_advertising_off_advertising 
+
+ali_mesh_control_ble_advertising_send_paired_packet_end_duration:
+3af5 da200787 arg mem_mesh_queue_ele_duration ,rega 
+3af6 204078ca call queue_pop 
+3af7 204078fa call queue_empty 
+3af8 247a0000 nrtn blank 
+3af9 70464f04 jam adv_pairing_mesh_message_interval ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+3afa 20203ad0 branch ali_mesh_control_ble_advertising_off_advertising 
+
+ali_mesh_send_paired_packet_init_advertising:
+3afb 7049b500 jam null_packet_advertising ,mem_mesh_upper_tran_layer_packet_advertising 
+3afc 20600000 rtn 
+
+ali_mesh_control_ble_advertising_send_device_beacon_packet:
+3afd 20403ce0 call ali_mesh_config_device_uuid_by_three_tuple 
+3afe 20403cec call ali_mesh_send_unprovisioned_beacons_tmall 
+3aff 20403b05 call ali_mesh_control_ble_advertising_device_beacon_check_duration 
+3b00 24628000 nrtn zero 
+3b01 6fe0c7e4 fetch 1 ,mem_mesh_provisioned_flag 
+3b02 c001bb09 beq silence_beacon_status ,ali_mesh_end_advertising_silence_device_beacon_packet 
+3b03 c000bb0b beq unprovisioned_beacon_status ,ali_mesh_end_advertising_unprovisioned_device_beacon_packet 
+3b04 20600000 rtn 
+
+ali_mesh_control_ble_advertising_device_beacon_check_duration:
+3b05 6fe0c64e fetch 1 ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+3b06 1fe0ffff add pdata ,-1 ,pdata 
+3b07 67e0c64e store 1 ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+3b08 20600000 rtn 
+
+ali_mesh_end_advertising_silence_device_beacon_packet:
+3b09 70464f58 jam adv_silence_device_beacon_interval ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+3b0a 20203ad0 branch ali_mesh_control_ble_advertising_off_advertising 
+
+ali_mesh_end_advertising_unprovisioned_device_beacon_packet:
+3b0b 70464f06 jam adv_unprovisioned_device_beacon_duration ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+3b0c 20203ad0 branch ali_mesh_control_ble_advertising_off_advertising 
+
+ali_mesh_control_ble_advertising_send_pairing_packet:
+3b0d 202039d3 branch mesh_le_send_adv 
+
+ali_mesh_chip_timer_check_with_random_timer:
+3b0e 6fe0c64b fetch 1 ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+3b0f c1808000 rtnne device_beacon_on 
+
+ali_mesh_chip_timer_check_with_random_timer_continue:
+3b10 180a7e00 random pdata 
+3b11 1fe17e07 and pdata ,0x07 ,pdata 
+3b12 9a20a200 iadd rega ,rega 
+
+ali_mesh_chip_timer_check:
+3b13 20407cef call timer_check 
+3b14 247a0000 nrtn blank 
+3b15 1a227e00 copy rega ,pdata 
+3b16 20407ce1 call timer_init 
+3b17 1a427e00 copy regb ,pdata 
+3b18 20207d79 branch callback_func 
+
+ali_mesh_advertising_unprovisioned_timer:
+3b19 da60464c arg mem_mesh_advertising_unprovisioned_device_beacon_timer ,regc 
+3b1a da403b1c arg ali_mesh_advertising_unprovisioned_timeout ,regb 
+3b1b 202042e7 branch timer_single_step_2b 
+
+ali_mesh_advertising_unprovisioned_timeout:
+3b1c 6fe0c7e4 fetch 1 ,mem_mesh_provisioned_flag 
+3b1d c1808000 rtnne unprovisioned_beacon_status 
+3b1e 6fe0c7e7 fetch 1 ,mem_mesh_uuid_featureflag 
+3b1f 79207e00 set1 bit_silence_adv_flag ,pdata 
+3b20 67e0c7e7 store 1 ,mem_mesh_uuid_featureflag 
+3b21 7047e403 jam silence_beacon_status ,mem_mesh_provisioned_flag 
+3b22 20203b31 branch ali_mesh_send_silence_device_beacon_init_advertising 
+
+ali_mesh_advertising_unprovisioned_timer_interval_timer:
+3b23 da60464f arg mem_mesh_advertising_unprovisioned_device_beacon_interval ,regc 
+3b24 da403b26 arg ali_mesh_advertising_unprovisioned_timer_interval_timeout ,regb 
+3b25 202042e0 branch timer_single_step 
+
+ali_mesh_advertising_unprovisioned_timer_interval_timeout:
+3b26 6fe0c7e4 fetch 1 ,mem_mesh_provisioned_flag 
+3b27 c000bb2f beq unprovisioned_beacon_status ,ali_mesh_send_unprovisioned_device_beacon_init_advertising 
+3b28 c0003afb beq paired_status ,ali_mesh_send_paired_packet_init_advertising 
+3b29 20600000 rtn 
+
+ali_mesh_stop_send_indication_packet:
+3b2a 20403e5a call ali_mesh_advertising_bearer_layer_queue_init 
+3b2b 2040420b call ali_mesh_upper_transport_layer_queue_pop 
+3b2c 70464f00 jam 0 ,mem_mesh_advertising_unprovisioned_device_beacon_interval 
+3b2d 20403ad0 call ali_mesh_control_ble_advertising_off_advertising 
+3b2e 20203afb branch ali_mesh_send_paired_packet_init_advertising 
+
+ali_mesh_send_unprovisioned_device_beacon_init_advertising:
+3b2f 70464e06 jam adv_unprovisioned_device_beacon_duration ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+3b30 20203ace branch ali_mesh_control_ble_advertising_on_advertising 
+
+ali_mesh_send_silence_device_beacon_init_advertising:
+3b31 70464e06 jam adv_silence_device_beacon_duration ,mem_mesh_advertising_unprovisioned_device_beacon_duration 
+3b32 20203ace branch ali_mesh_control_ble_advertising_on_advertising 
+
+ali_mesh_network_layer_control_relay_packet:
+3b33 da403b37 arg ali_mesh_network_layer_control_send_relay_packet ,regb 
+3b34 da200020 arg mesh_adv_relay_message_interval ,rega 
+3b35 d8e0000f arg mesh_ble_relay_timer ,queue 
+3b36 20203b10 branch ali_mesh_chip_timer_check_with_random_timer_continue 
+
+ali_mesh_network_layer_control_send_relay_packet:
+3b37 6fe0c9b5 fetch 1 ,mem_mesh_upper_tran_layer_packet_advertising 
+3b38 247a0000 nrtn blank 
+3b39 2040406e call ali_mesh_network_layer_init_queue_param 
+3b3a da200787 arg mem_mesh_queue_ele_temp ,rega 
+3b3b 204078dc call queue_get_new_ele 
+3b3c 24740000 nrtn user 
+3b3d 6fe08787 fetch 1 ,mem_mesh_queue_ele_duration 
+3b3e 1fe0ffff pincrease -1 
+3b3f e7e08012 istore 1 ,regb 
+3b40 205a78ca call queue_pop ,blank 
+3b41 d8a0462a arg mem_mesh_adv_data_len ,contw 
+3b42 d8c00789 arg mem_mesh_queue_ele_len ,contr 
+3b43 20407c8d call memcpy32 
+3b44 202039d3 branch mesh_le_send_adv 
+
+ali_mesh_encrypt_calc_random_data:
+3b45 20403b4b call ali_mesh_encrypt_calc_random_data_calc_confirmationkey 
+3b46 20403b53 call ali_mesh_encrypt_calc_random_data_calc_authvalueprov 
+3b47 20403b59 call ali_mesh_encrypt_calc_random_data_calc_authvaluedevice 
+3b48 20403b5f call ali_mesh_encrypt_calc_random_data_calc_confirmationcloud 
+3b49 20403b67 call ali_mesh_encrypt_calc_random_data_calc_confirmationdevice 
+3b4a 20203b6b branch ali_mesh_encrypt_calc_random_data_calc_devicekey 
+
+ali_mesh_encrypt_calc_random_data_calc_confirmationkey:
+3b4b 20403b78 call ali_mesh_encrypt_load_randomab_to_sha256 
+3b4c d8c046c0 arg mem_mesh_sha256_confirmationkey_ascii ,contr 
+3b4d df20000f arg 0xf ,loopcnt 
+3b4e 20403be7 call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii 
+3b4f 20403c01 call ali_mesh_encrypt_base_function_sha256_calc 
+3b50 d8c001bd arg memresult ,contr 
+3b51 d8a046b0 arg mem_mesh_confirmationkey ,contw 
+3b52 20207c8f branch memcpy16 
+
+ali_mesh_encrypt_calc_random_data_calc_authvalueprov:
+3b53 20403b7b call ali_mesh_encrypt_load_three_tuple_to_sha256 
+3b54 20403b75 call ali_mesh_encrypt_load_randomba_to_sha256 
+3b55 20403c01 call ali_mesh_encrypt_base_function_sha256_calc 
+3b56 d8c001bd arg memresult ,contr 
+3b57 d8a04660 arg mem_mesh_authvalueprov ,contw 
+3b58 20207c8f branch memcpy16 
+
+ali_mesh_encrypt_calc_random_data_calc_authvaluedevice:
+3b59 20403b7b call ali_mesh_encrypt_load_three_tuple_to_sha256 
+3b5a 20403b78 call ali_mesh_encrypt_load_randomab_to_sha256 
+3b5b 20403c01 call ali_mesh_encrypt_base_function_sha256_calc 
+3b5c d8c001bd arg memresult ,contr 
+3b5d d8a04690 arg mem_mesh_authvaluedevice ,contw 
+3b5e 20207c8f branch memcpy16 
+
+ali_mesh_encrypt_calc_random_data_calc_confirmationcloud:
+3b5f 6fe44680 fetch 8 ,mem_mesh_provisioning_random_a 
+3b60 67e44658 store 8 ,mem_mesh_confirmationcloud_randoma 
+3b61 6fe44688 fetch 8 ,mem_mesh_provisioning_random_b 
+3b62 67e44650 store 8 ,mem_mesh_confirmationcloud_randomb 
+3b63 d8c04650 arg mem_mesh_calc_confirmationcloud_data ,contr 
+3b64 da2046b0 arg mem_mesh_confirmationkey ,rega 
+3b65 de004670 arg mem_mesh_confirmationcloud ,alarm 
+3b66 20203c48 branch ali_mesh_encrypt_base_function_aes_cmac_32byte 
+
+ali_mesh_encrypt_calc_random_data_calc_confirmationdevice:
+3b67 d8c04680 arg mem_mesh_calc_confirmationdevice_data ,contr 
+3b68 da2046b0 arg mem_mesh_confirmationkey ,rega 
+3b69 de004680 arg mem_mesh_confirmationdevice ,alarm 
+3b6a 20203c48 branch ali_mesh_encrypt_base_function_aes_cmac_32byte 
+
+ali_mesh_encrypt_calc_random_data_calc_devicekey:
+3b6b d8c04670 arg mem_mesh_confirmationcloud ,contr 
+3b6c df200010 arg 0x10 ,loopcnt 
+3b6d 20403be4 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii 
+3b6e d8c046d9 arg mem_mesh_sha256_devicekey_ascii ,contr 
+3b6f df200009 arg 9 ,loopcnt 
+3b70 20403be7 call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii 
+3b71 20403c01 call ali_mesh_encrypt_base_function_sha256_calc 
+3b72 d8c001bd arg memresult ,contr 
+3b73 d8a046a0 arg mem_mesh_device_key ,contw 
+3b74 20207c8f branch memcpy16 
+
+ali_mesh_encrypt_load_randomba_to_sha256:
+3b75 20403b79 call ali_mesh_encrypt_load_randomb_to_sha256 
+
+ali_mesh_encrypt_load_randoma_to_sha256:
+3b76 d8c04680 arg mem_mesh_provisioning_random_a ,contr 
+3b77 20203be3 branch ali_mesh_encrypt_base_function_sha256_load_data_64bit 
+
+ali_mesh_encrypt_load_randomab_to_sha256:
+3b78 20403b76 call ali_mesh_encrypt_load_randoma_to_sha256 
+
+ali_mesh_encrypt_load_randomb_to_sha256:
+3b79 d8c04688 arg mem_mesh_provisioning_random_b ,contr 
+3b7a 20203be3 branch ali_mesh_encrypt_base_function_sha256_load_data_64bit 
+
+ali_mesh_encrypt_load_three_tuple_to_sha256:
+3b7b d8c0480a arg mem_mesh_three_tuple_productid ,contr 
+3b7c df200004 arg 4 ,loopcnt 
+3b7d 20403bea call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma 
+3b7e d8c0480e arg mem_mesh_three_tuple_mac ,contr 
+3b7f df200006 arg 6 ,loopcnt 
+3b80 20403bea call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma 
+3b81 d8c04814 arg mem_mesh_three_tuple_secret ,contr 
+3b82 df200010 arg 0x10 ,loopcnt 
+3b83 20403be4 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii 
+3b84 20403bf1 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+3b85 20203bec branch ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma + 2 
+
+ali_mesh_encrypt_calc_provisioning_data:
+3b86 20403b92 call ali_mesh_encrypt_calc_provisioning_data_calc_sessionkey 
+
+ali_mesh_encrypt_calc_provisioning_data_xor_prov_data:
+3b87 da2047ec arg mem_mesh_encrypt_provisioning_data ,rega 
+3b88 da4001bd arg memresult ,regb 
+3b89 df20000b arg 0xb ,loopcnt 
+
+ali_mesh_encrypt_calc_provisioning_data_xor_prov_data_loop:
+3b8a efe10011 ifetch 2 ,rega 
+3b8b e8410012 ifetcht 2 ,regb 
+3b8c 9842fe00 ixor temp ,pdata 
+3b8d e7e10011 istore 2 ,rega 
+3b8e 1a20a202 increase 2 ,rega 
+3b8f 1a40a402 increase 2 ,regb 
+3b90 c2003b8a loop ali_mesh_encrypt_calc_provisioning_data_xor_prov_data_loop 
+3b91 20600000 rtn 
+
+ali_mesh_encrypt_calc_provisioning_data_calc_sessionkey:
+3b92 d8c04670 arg mem_mesh_confirmationcloud ,contr 
+3b93 df200010 arg 0x10 ,loopcnt 
+3b94 20403be4 call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii 
+3b95 d8c046cf arg mem_mesh_sha256_sessionkey_ascii ,contr 
+3b96 df20000a arg 0xa ,loopcnt 
+3b97 20403be7 call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii 
+3b98 20203c01 branch ali_mesh_encrypt_base_function_sha256_calc 
+
+ali_mesh_encrypt_calc_network_key_by_k2:
+3b99 d8c047ef arg mem_mesh_network_key ,contr 
+3b9a d8a0470d arg mem_k2_n ,contw 
+3b9b 20407c8f call memcpy16 
+
+ali_mesh_encrypt_base_function_k2:
+3b9c d8c0470d arg mem_k2_n ,contr 
+3b9d da20471d arg mem_k2_salt ,rega 
+3b9e de00472d arg mem_k2_t ,alarm 
+3b9f 20403c4a call ali_mesh_encrypt_base_function_aes_cmac_16byte 
+3ba0 de00473d arg mem_k2_t1 ,alarm 
+3ba1 da400001 arg 0x01 ,regb 
+3ba2 58000000 setarg 0 
+3ba3 20403c4c call ali_mesh_encrypt_base_function_k2_aes_cmac_t 
+3ba4 6fe0c74c fetch 1 ,mem_k2_t1 + 15 
+3ba5 1fe17e7f and pdata ,0x7f ,pdata 
+3ba6 67e0c74d store 1 ,mem_k2_nid 
+3ba7 de00475e arg mem_k2_t2 ,alarm 
+3ba8 da400002 arg 0x02 ,regb 
+3ba9 58000010 setarg 0x10 
+3baa da20473d arg mem_k2_t1 ,rega 
+3bab 20403c4c call ali_mesh_encrypt_base_function_k2_aes_cmac_t 
+3bac de00474e arg mem_k2_t3 ,alarm 
+3bad da400003 arg 0x03 ,regb 
+3bae 58000010 setarg 0x10 
+3baf da20475e arg mem_k2_t2 ,rega 
+3bb0 20203c4c branch ali_mesh_encrypt_base_function_k2_aes_cmac_t 
+
+ali_mesh_encrypt_base_function_k4:
+3bb1 d8c04959 arg mem_mesh_application_key ,contr 
+3bb2 da20476e arg mem_k4_salt ,rega 
+3bb3 de00477e arg mem_k4_t ,alarm 
+3bb4 20403c4a call ali_mesh_encrypt_base_function_aes_cmac_16byte 
+3bb5 d8c0478e arg mem_k4_id6_01 ,contr 
+3bb6 da20477e arg mem_k4_t ,rega 
+3bb7 de00479e arg mem_k4_k4n ,alarm 
+3bb8 58000004 setarg 4 
+3bb9 20403c5a call ali_mesh_encrypt_base_function_aes_cmac 
+3bba 6fe0c7ad fetch 1 ,mem_k4_k4n + 15 
+3bbb 1fe17e3f and pdata ,0x3f ,pdata 
+3bbc 79207e06 set1 transport_head_bit_akf ,pdata 
+3bbd 67e0c7ae store 1 ,mem_mesh_transport_aid 
+3bbe 20600000 rtn 
+
+ali_mesh_encrypt_base_function_k3:
+3bbf d8c047ef arg mem_mesh_network_key ,contr 
+3bc0 da2047af arg mem_k3_salt ,rega 
+3bc1 de0047bf arg mem_k3_t ,alarm 
+3bc2 20403c4a call ali_mesh_encrypt_base_function_aes_cmac_16byte 
+3bc3 d8c047cf arg mem_k3_id64_01 ,contr 
+3bc4 da2047bf arg mem_k3_t ,rega 
+3bc5 de0047d4 arg mem_k3_k4n ,alarm 
+3bc6 58000005 setarg 5 
+3bc7 20403c5a call ali_mesh_encrypt_base_function_aes_cmac 
+3bc8 6fe144e9 fetch 2 ,mem_ui_state_map 
+3bc9 c3848000 rtnbit1 ui_state_ble_connected 
+3bca 70438801 jam 1 ,mem_le_adv_enable 
+3bcb 20600000 rtn 
+
+ali_mesh_encrypt_obfuscation_deceypt_send_message:
+3bcc da204999 arg mem_mesh_send_upper_layer_ctl_and_ttl ,rega 
+3bcd 6fe3c99f fetch 7 ,mem_mesh_send_upper_layer_dst 
+3bce 20203bd1 branch ali_mesh_encrypt_obfuscation_deceypt 
+
+ali_mesh_encrypt_obfuscation_deceypt_recevie_message:
+3bcf da200923 arg mem_mesh_message_ttl ,rega 
+3bd0 6fe38929 fetch 7 ,mem_mesh_message_dst 
+
+ali_mesh_encrypt_obfuscation_deceypt:
+3bd1 67e388da store 7 ,mem_mesh_privacy_plaintext_privacy_random 
+3bd2 58000000 setarg 0 
+3bd3 67e288d1 store 5 ,mem_mesh_privacy_plaintext_zero_string 
+3bd4 20403bda call ali_mesh_encrypt_generate_pecb 
+3bd5 6fe308e1 fetch 6 ,mem_mesh_pecb 
+3bd6 e8430011 ifetcht 6 ,rega 
+3bd7 9842fe00 ixor temp ,pdata 
+3bd8 e7e30011 istore 6 ,rega 
+3bd9 20600000 rtn 
+
+ali_mesh_encrypt_generate_pecb:
+
+ali_mesh_encrypt_generate_privacy_random:
+3bda 6fe2486e fetch 4 ,mem_mesh_iv_index 
+3bdb 67e208d6 store 4 ,mem_mesh_privacy_plaintext_iv_index 
+
+ali_mesh_encrypt_base_function_generate_pecb:
+3bdc d8c0474e arg mem_k2_privacykey ,contr 
+3bdd 2040735f call load_key 
+3bde d8c008d1 arg mem_mesh_privacy_plaintext ,contr 
+3bdf 20407361 call load_data128 
+3be0 204072d1 call do_aes_ocb 
+3be1 d8a008e1 arg mem_mesh_pecb ,contw 
+3be2 20207375 branch store_aes_result 
+
+ali_mesh_encrypt_base_function_sha256_load_data_64bit:
+3be3 df200008 arg 8 ,loopcnt 
+
+ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii:
+3be4 20403bf1 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+3be5 20403c39 call ali_mesh_encrypt_base_function_hex2ascii 
+3be6 20203bee branch ali_mesh_encrypt_base_function_sha256_store_dataptr 
+
+ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii:
+3be7 20403bf1 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+3be8 20407cda call memcpy 
+3be9 20203bee branch ali_mesh_encrypt_base_function_sha256_store_dataptr 
+
+ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma:
+3bea 20403bf1 call ali_mesh_encrypt_base_function_sha256_check_first_load_data 
+3beb 20403c39 call ali_mesh_encrypt_base_function_hex2ascii 
+3bec 5800002c setarg comma 
+3bed e7e08005 istore 1 ,contw 
+
+ali_mesh_encrypt_base_function_sha256_store_dataptr:
+3bee 18a27e00 copy contw ,pdata 
+3bef 67e146f3 store 2 ,mem_mesh_sha256_data_end_addr 
+3bf0 20600000 rtn 
+
+ali_mesh_encrypt_base_function_sha256_check_first_load_data:
+3bf1 18c20400 copy contr ,temp 
+3bf2 1f222200 copy loopcnt ,rega 
+3bf3 6fe146f3 fetch 2 ,mem_mesh_sha256_data_end_addr 
+3bf4 1fe20a00 copy pdata ,contw 
+3bf5 6fe0c6e2 fetch 1 ,mem_mesh_sha256_load_first_data_flag 
+3bf6 205a3bfa call ali_mesh_encrypt_base_function_sha256_first_load_data ,blank 
+3bf7 18420c00 copy temp ,contr 
+3bf8 1a227200 copy rega ,loopcnt 
+3bf9 20600000 rtn 
+
+ali_mesh_encrypt_base_function_sha256_first_load_data:
+3bfa 7046e201 jam 1 ,mem_mesh_sha256_load_first_data_flag 
+3bfb 20403bfe call ali_mesh_encrypt_base_function_sha256_clear_data_chunk 
+3bfc d8a007d1 arg mem_mesh_sha256_chunk_start ,contw 
+3bfd 20600000 rtn 
+
+ali_mesh_encrypt_base_function_sha256_clear_data_chunk:
+3bfe df200100 arg 0x100 ,loopcnt 
+3bff d8a007d1 arg mem_mesh_sha256_chunk_start ,contw 
+3c00 20207ca3 branch memset0 
+
+ali_mesh_encrypt_base_function_sha256_calc:
+3c01 20403c17 call ali_mesh_encrypt_base_function_sha256_load_data_end 
+3c02 20403c32 call ali_mesh_encrypt_base_function_sha256_input_data_init_inverse 
+3c03 580007d1 setarg mem_mesh_sha256_chunk_start 
+3c04 67e146fa store 2 ,mem_mesh_sha256_chunk_ptr 
+3c05 20404134 call sha_init 
+
+ali_mesh_encrypt_base_function_sha256_calc_loop:
+3c06 6fe146fa fetch 2 ,mem_mesh_sha256_chunk_ptr 
+3c07 1fe20c00 copy pdata ,contr 
+3c08 d8a00231 arg mem_dat ,contw 
+3c09 20407c81 call memcpy64 
+3c0a 2040413b call sha 
+3c0b 6fe146fa fetch 2 ,mem_mesh_sha256_chunk_ptr 
+3c0c 1fe0fe40 pincrease 64 
+3c0d 67e146fa store 2 ,mem_mesh_sha256_chunk_ptr 
+3c0e 6fe0c6f7 fetch 1 ,mem_mesh_sha256_chunk_count 
+3c0f 1fe0ffff pincrease -1 
+3c10 67e0c6f7 store 1 ,mem_mesh_sha256_chunk_count 
+3c11 243a3c06 nbranch ali_mesh_encrypt_base_function_sha256_calc_loop ,blank 
+3c12 20404176 call sha_result 
+3c13 da2001bd arg memresult ,rega 
+3c14 df200020 arg 0x20 ,loopcnt 
+3c15 20407cb1 call inverse_data 
+3c16 20600000 rtn 
+
+ali_mesh_encrypt_base_function_sha256_load_data_end:
+3c17 7046e200 jam 0 ,mem_mesh_sha256_load_first_data_flag 
+3c18 6fe146f3 fetch 2 ,mem_mesh_sha256_data_end_addr 
+3c19 1fe20a00 copy pdata ,contw 
+3c1a d8400080 arg 0x80 ,temp 
+3c1b e0408005 istoret 1 ,contw 
+3c1c d84007d1 arg mem_mesh_sha256_chunk_start ,temp 
+3c1d 98467e00 isub temp ,pdata 
+3c1e 67e446e3 store 8 ,mem_mesh_sha256_data_len_byte 
+3c1f 1fe98400 lshift3 pdata ,temp 
+3c20 604c46eb storet 8 ,mem_mesh_sha256_data_len_bit 
+3c21 1ff1a600 rshift4 pdata ,regc 
+3c22 1a6b2600 rshift2 regc ,regc 
+3c23 1fe17e3f and pdata ,0x3f ,pdata 
+3c24 1fe67c37 sub pdata ,55 ,null 
+3c25 24413c30 ncall ali_mesh_encrypt_base_function_sha256_add_chunk ,positive 
+3c26 1a60fe01 add regc ,1 ,pdata 
+3c27 67e0c6f7 store 1 ,mem_mesh_sha256_chunk_count 
+3c28 1fefa240 mul32 pdata ,64 ,rega 
+3c29 1ff22600 lshift4 pdata ,regc 
+3c2a 1a60a7ff increase -1 ,regc 
+3c2b 580007cd setarg mem_mesh_sha256_chunk_start + decreased_four 
+3c2c 9a20a200 iadd rega ,rega 
+3c2d 6fe246eb fetch 4 ,mem_mesh_sha256_data_len_bit 
+3c2e e7e20011 istore 4 ,rega 
+3c2f 20600000 rtn 
+
+ali_mesh_encrypt_base_function_sha256_add_chunk:
+3c30 1a60a601 increase 1 ,regc 
+3c31 20600000 rtn 
+
+ali_mesh_encrypt_base_function_sha256_input_data_init_inverse:
+3c32 da2007d1 arg mem_mesh_sha256_chunk_start ,rega 
+
+ali_mesh_encrypt_base_function_sha256_data_inverse_4byte:
+3c33 df200004 arg 4 ,loopcnt 
+3c34 20407cb1 call inverse_data 
+3c35 1a20a202 increase 2 ,rega 
+3c36 1a60a7ff add regc ,-1 ,regc 
+3c37 2422bc33 nbranch ali_mesh_encrypt_base_function_sha256_data_inverse_4byte ,zero 
+3c38 20600000 rtn 
+
+ali_mesh_encrypt_base_function_hex2ascii:
+3c39 efe08006 ifetch 1 ,contr 
+3c3a 1ff18400 rshift4 pdata ,temp 
+3c3b 20403c42 call ali_mesh_encrypt_base_function_dialog2uchar 
+3c3c e0408005 istoret 1 ,contw 
+3c3d 1fe1040f and pdata ,0x0f ,temp 
+3c3e 20403c42 call ali_mesh_encrypt_base_function_dialog2uchar 
+3c3f e0408005 istoret 1 ,contw 
+3c40 c2003c39 loop ali_mesh_encrypt_base_function_hex2ascii 
+3c41 20600000 rtn 
+
+ali_mesh_encrypt_base_function_dialog2uchar:
+3c42 18467c09 sub temp ,9 ,null 
+3c43 20213c46 branch ali_mesh_encrypt_base_function_dialog2uchar_num ,positive 
+3c44 18408457 add temp ,87 ,temp 
+3c45 20600000 rtn 
+
+ali_mesh_encrypt_base_function_dialog2uchar_num:
+3c46 18408430 add temp ,48 ,temp 
+3c47 20600000 rtn 
+
+ali_mesh_encrypt_base_function_aes_cmac_32byte:
+3c48 58000020 setarg 0x20 
+3c49 20203c5a branch ali_mesh_encrypt_base_function_aes_cmac 
+
+ali_mesh_encrypt_base_function_aes_cmac_16byte:
+3c4a 58000010 setarg 0x10 
+3c4b 20203c5a branch ali_mesh_encrypt_base_function_aes_cmac 
+
+ali_mesh_encrypt_base_function_k2_aes_cmac_t:
+3c4c 6848c6fc fetcht 1 ,mem_k2_p_len 
+3c4d 18408401 increase 1 ,temp 
+3c4e 98408400 iadd temp ,temp 
+3c4f 60488230 storet 1 ,mem_aes_cmac_data_length 
+3c50 1a220c00 copy rega ,contr 
+3c51 1fe27200 copy pdata ,loopcnt 
+3c52 20407ccc call memcpy_fast 
+3c53 6848c6fc fetcht 1 ,mem_k2_p_len 
+3c54 18427200 copy temp ,loopcnt 
+3c55 20407cda call memcpy 
+3c56 1a427e00 copy regb ,pdata 
+3c57 e7e08005 istore 1 ,contw 
+3c58 da20472d arg mem_k2_t ,rega 
+3c59 20203c5d branch ali_mesh_encrypt_base_function_aes_cmac + 3 
+
+ali_mesh_encrypt_base_function_aes_cmac:
+3c5a 67e08230 store 1 ,mem_aes_cmac_data_length 
+3c5b 1fe27200 copy pdata ,loopcnt 
+3c5c 20407ccc call memcpy_fast 
+3c5d 1a220c00 copy rega ,contr 
+3c5e d8a006a1 arg mem_aes_cmac_k ,contw 
+3c5f 20407c8f call memcpy16 
+3c60 204071c1 call function_aes_cmac 
+3c61 1e020a00 copy alarm ,contw 
+3c62 20407375 call store_aes_result 
+3c63 20600000 rtn 
+
+ali_b0_block_generate:
+3c64 684888fe fetcht 1 ,mem_ccm_type 
+3c65 20203c67 branch ali_block_generate 
+
+ali_a_block_generate:
+3c66 18000401 force 0x01 ,temp 
+
+ali_block_generate:
+3c67 18007000 force regidx_data ,regext_index 
+3c68 6fe108f1 fetch 2 ,mem_nonce_ptr 
+3c69 1fe20c00 copy pdata ,contr 
+3c6a efe18006 ifetch 3 ,contr 
+3c6b 1fed7e00 lshift8 pdata ,pdata 
+3c6c 9841de00 ior temp ,regext 
+3c6d 1f00f001 increase 1 ,regext_index 
+3c6e efe20006 ifetch 4 ,contr 
+3c6f 1fe25e00 copy pdata ,regext 
+3c70 1f00f001 increase 1 ,regext_index 
+3c71 efe20006 ifetch 4 ,contr 
+3c72 1fe25e00 copy pdata ,regext 
+3c73 1f00f001 increase 1 ,regext_index 
+3c74 1a30de00 byteswap rega ,regext 
+3c75 1df05e00 lshift16 regext ,regext 
+3c76 efe10006 ifetch 2 ,contr 
+3c77 9de1de00 ior regext ,regext 
+3c78 20600000 rtn 
+
+ali_generate_mic:
+3c79 6fe088f3 fetch 1 ,mem_ccm_data_len 
+3c7a 1fe22200 copy pdata ,rega 
+3c7b 20403c64 call ali_b0_block_generate 
+3c7c 204072d1 call do_aes_ocb 
+3c7d 1800700c force regidx_result ,regext_index 
+3c7e 1de27e00 deposit regext 
+3c7f 1a227200 copy rega ,loopcnt 
+3c80 684908f4 fetcht 2 ,mem_ccm_data_ptr 
+3c81 18420c00 copy temp ,contr 
+3c82 20407349 call padding_data 
+3c83 2020728c branch generate_mic_loop 
+
+ali_ccm_encrypt_64bit:
+3c84 7008fe19 jam mic_size_64bit ,mem_ccm_type 
+3c85 20203c88 branch ali_ccm_encrypt_function 
+
+ali_ccm_encrypt:
+3c86 7008fe09 jam mic_size_32bit ,mem_ccm_type 
+3c87 20203c88 branch ali_ccm_encrypt_function 
+
+ali_ccm_encrypt_function:
+3c88 67e088f3 store 1 ,mem_ccm_data_len 
+3c89 604908f4 storet 2 ,mem_ccm_data_ptr 
+3c8a 4752c034 bpatchx patch34_5 ,mem_patch34 
+3c8b 20403c79 call ali_generate_mic 
+3c8c 18007008 force regidx_xor ,regext_index 
+3c8d 98005e00 iforce regext 
+3c8e 1800700d force regidx_result + 1 ,regext_index 
+3c8f 1de27e00 copy regext ,pdata 
+3c90 18007009 force regidx_xor + 1 ,regext_index 
+3c91 98005e00 iforce regext 
+3c92 18002200 force 0 ,rega 
+3c93 18422600 copy temp ,regc 
+3c94 20403c66 call ali_a_block_generate 
+3c95 204072d7 call do_aes_ctr 
+3c96 20403cc7 call ali_fetcht_ccm_mic 
+3c97 604c08f6 storet 8 ,mem_ccm_mic 
+3c98 6fe088f3 fetch 1 ,mem_ccm_data_len 
+3c99 1fe22400 copy pdata ,regb 
+3c9a 20403ccf call ali_aes_crypt_data 
+3c9b 684888f3 fetcht 1 ,mem_ccm_data_len 
+3c9c 6fe108f4 fetch 2 ,mem_ccm_data_ptr 
+3c9d 9840a200 iadd temp ,rega 
+3c9e 684c08f6 fetcht 8 ,mem_ccm_mic 
+3c9f e0420011 istoret 4 ,rega 
+3ca0 6fe088fe fetch 1 ,mem_ccm_type 
+3ca1 1fe67e09 sub pdata ,mic_size_32bit ,pdata 
+3ca2 207a0000 rtn blank 
+3ca3 e0440011 istoret 8 ,rega 
+3ca4 20600000 rtn 
+
+ali_ccm_decrypt_64bit:
+3ca5 7008fe19 jam mic_size_64bit ,mem_ccm_type 
+3ca6 20203ca9 branch ali_ccm_decrypt_function 
+
+ali_ccm_decrypt:
+3ca7 7008fe09 jam mic_size_32bit ,mem_ccm_type 
+3ca8 20203ca9 branch ali_ccm_decrypt_function 
+
+ali_ccm_decrypt_function:
+3ca9 67e088f3 store 1 ,mem_ccm_data_len 
+3caa 604908f4 storet 2 ,mem_ccm_data_ptr 
+3cab 18422600 copy temp ,regc 
+3cac 1fe22400 copy pdata ,regb 
+3cad 9a608c00 iadd regc ,contr 
+3cae 47534034 bpatchx patch34_6 ,mem_patch34 
+3caf efe40006 ifetch 8 ,contr 
+3cb0 18007008 force regidx_xor ,regext_index 
+3cb1 98005e00 iforce regext 
+3cb2 18007009 force regidx_xor + 1 ,regext_index 
+3cb3 1fef7e00 rshift32 pdata ,pdata 
+3cb4 98005e00 iforce regext 
+3cb5 18002200 force 0 ,rega 
+3cb6 20403c66 call ali_a_block_generate 
+3cb7 204072d7 call do_aes_ctr 
+3cb8 20403cc7 call ali_fetcht_ccm_mic 
+3cb9 604c08f6 storet 8 ,mem_ccm_mic 
+3cba 20403ccf call ali_aes_crypt_data 
+3cbb 20403c79 call ali_generate_mic 
+3cbc 20403cc7 call ali_fetcht_ccm_mic 
+3cbd 6fe088fe fetch 1 ,mem_ccm_type 
+3cbe c00cbcc4 beq mic_size_64bit ,ali_ccm_decrypt_function_check_mic64 
+3cbf 604a08fa storet 4 ,mem_ccm_mic + 4 
+3cc0 6fe208f6 fetch 4 ,mem_ccm_mic 
+3cc1 684a08fa fetcht 4 ,mem_ccm_mic + 4 
+3cc2 98467e00 isub temp ,pdata 
+3cc3 20600000 rtn 
+
+ali_ccm_decrypt_function_check_mic64:
+3cc4 6fe408f6 fetch 8 ,mem_ccm_mic 
+3cc5 98467e00 isub temp ,pdata 
+3cc6 20600000 rtn 
+
+ali_fetcht_ccm_mic:
+3cc7 1800700c force regidx_result ,regext_index 
+3cc8 1de27e00 deposit regext 
+3cc9 1800700d force regidx_result + 1 ,regext_index 
+3cca 1de20400 copy regext ,temp 
+3ccb 18500400 lshift16 temp ,temp 
+3ccc 18500400 lshift16 temp ,temp 
+3ccd 98418400 ior temp ,temp 
+3cce 20600000 rtn 
+
+ali_aes_crypt_data:
+3ccf 1a20a201 increase 1 ,rega 
+3cd0 20403c66 call ali_a_block_generate 
+3cd1 1a620c00 copy regc ,contr 
+3cd2 2040735d call aes_load_xor 
+3cd3 204072d7 call do_aes_ctr 
+3cd4 2040737c call store_enc_data 
+3cd5 1a60a610 increase 16 ,regc 
+3cd6 1a40a5f0 increase -16 ,regb 
+3cd7 20213ccf branch ali_aes_crypt_data ,positive 
+3cd8 20600000 rtn 
+
+mesh_send_unprovisioned_beacons:
+3cd9 4753c034 bpatchx patch34_7 ,mem_patch34 
+3cda 7047e401 jam unprovisioned_beacon_status ,mem_mesh_provisioned_flag 
+3cdb 7047e500 jam 0x00 ,mem_mesh_provisioning_state_flag 
+3cdc 70464b01 jam 1 ,mem_mesh_advertising_unprovisioned_device_beacon_switch 
+3cdd 58001770 setarg adv_unprovisioned_device_beacon_timeout 
+3cde 67e1464c store 2 ,mem_mesh_advertising_unprovisioned_device_beacon_timer 
+3cdf 20600000 rtn 
+
+ali_mesh_config_device_uuid_by_three_tuple:
+3ce0 580001a8 setarg company_identifiers_alibaba 
+3ce1 67e108ff store 2 ,mem_mesh_device_uuid 
+3ce2 6fe0c7e6 fetch 1 ,mem_mesh_device_pid 
+3ce3 e7e08005 istore 1 ,contw 
+3ce4 6fe2480a fetch 4 ,mem_mesh_three_tuple_productid 
+3ce5 20407cc6 call inverse_data_4byte 
+3ce6 e7e20005 istore 4 ,contw 
+3ce7 6fe342db fetch 6 ,mem_le_lap 
+3ce8 e7e30005 istore 6 ,contw 
+3ce9 6fe1c7e7 fetch 3 ,mem_mesh_uuid_featureflag 
+3cea e7e18005 istore 3 ,contw 
+3ceb 20600000 rtn 
+
+ali_mesh_send_unprovisioned_beacons_tmall:
+3cec 20403cee call ali_mesh_init_adv_data_tmall_unprovisioned_beacons_package 
+3ced 202039d3 branch mesh_le_send_adv 
+
+ali_mesh_init_adv_data_tmall_unprovisioned_beacons_package:
+3cee 70462a15 jam 0x15 ,mem_mesh_adv_data_len 
+3cef 58000014 setarg 0x14 
+3cf0 67e0c62b store 1 ,mem_mesh_adv_data 
+3cf1 5800002b setarg gap_adtype_mesh_beacon 
+3cf2 e7e08005 istore 1 ,contw 
+3cf3 58000000 setarg unprovisioned_device_beacon 
+3cf4 e7e08005 istore 1 ,contw 
+
+ali_mesh_advertising_send_unprovisioned_beacons_store_device_uuid:
+3cf5 d8c008ff arg mem_mesh_device_uuid ,contr 
+3cf6 20407c8f call memcpy16 
+3cf7 6fe147ea fetch 2 ,mem_mesh_oob_information 
+3cf8 e7e10005 istore 2 ,contw 
+3cf9 20600000 rtn 
+
+ali_mesh_receive_adtype_manufacturer_specific:
+3cfa 20403d5a call ali_mesh_receive_provisioning_package_check_header 
+3cfb 24740000 nrtn user 
+3cfc efe08006 ifetch 1 ,contr 
+3cfd c0003d01 beq provisioning_random ,ali_mesh_advertising_receive_privisioning_random 
+3cfe c0013d1c beq provisioning_data ,ali_mesh_decrypt_tmall_privisioning_data_package 
+3cff 47544035 bpatchx patch35_0 ,mem_patch35 
+3d00 20600000 rtn 
+
+ali_mesh_advertising_receive_privisioning_random:
+3d01 20403d0f call ali_mesh_advertising_receive_privisioning_random_check_states 
+3d02 24740000 nrtn user 
+
+ali_mesh_advertising_calc_encrypt_random_data:
+3d03 20403b45 call ali_mesh_encrypt_calc_random_data 
+3d04 20403d07 call ali_mesh_advertising_send_provisioning_confirmation 
+3d05 204040fa call ali_mesh_send_pairing_data 
+3d06 20600000 rtn 
+
+ali_mesh_advertising_send_provisioning_confirmation:
+3d07 d8400012 arg provisioning_packet_confirmation_mac + provisioning_packet_confirmation_device ,temp 
+3d08 20403d46 call ali_mesh_advertising_send_packet_common 
+3d09 58000001 setarg provisioning_confirmation 
+3d0a e7e08005 istore 1 ,contw 
+3d0b 6fe14812 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+3d0c e7e10005 istore 2 ,contw 
+3d0d d8c04680 arg mem_mesh_confirmationdevice ,contr 
+3d0e 20207c8f branch memcpy16 
+
+ali_mesh_advertising_receive_privisioning_random_check_states:
+3d0f 20407dbc call disable_user 
+3d10 e8410006 ifetcht 2 ,contr 
+3d11 d8a04680 arg mem_mesh_provisioning_random_a ,contw 
+3d12 20407c8f call memcpy16 
+3d13 6fe14812 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+3d14 98467c00 isub temp ,null 
+3d15 24628000 nrtn zero 
+3d16 6fe0c7e5 fetch 1 ,mem_mesh_provisioning_state_flag 
+3d17 c3808000 rtnbit1 receive_provisioning_random 
+3d18 79207e01 set1 receive_provisioning_random ,pdata 
+3d19 67e0c7e5 store 1 ,mem_mesh_provisioning_state_flag 
+3d1a 7047e402 jam pairing_status ,mem_mesh_provisioned_flag 
+3d1b 20207dba branch enable_user 
+
+ali_mesh_decrypt_tmall_privisioning_data_package:
+3d1c 20403d27 call ali_mesh_advertising_receive_privisioning_data 
+3d1d 684947ec fetcht 2 ,mem_mesh_provisioning_data_mac_addr 
+3d1e 6fe14812 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+3d1f 98467c00 isub temp ,null 
+3d20 24628000 nrtn zero 
+3d21 20403bbf call ali_mesh_encrypt_base_function_k3 
+3d22 204040fa call ali_mesh_send_pairing_data 
+3d23 6fe087aa fetch 1 ,mem_mesh_fast_pair_packet_type 
+3d24 c1810000 rtnne mesh_message_proxy 
+3d25 7047e405 jam wait_receive_appkey ,mem_mesh_provisioned_flag 
+3d26 20600000 rtn 
+
+ali_mesh_advertising_receive_privisioning_data:
+3d27 4754c035 bpatchx patch35_1 ,mem_patch35 
+3d28 18c22200 copy contr ,rega 
+3d29 6fe0c7e4 fetch 1 ,mem_mesh_provisioned_flag 
+3d2a c1000000 rtneq paired_status 
+3d2b 6fe0c7e5 fetch 1 ,mem_mesh_provisioning_state_flag 
+3d2c c4008000 rtnbit0 receive_provisioning_random 
+3d2d c3810000 rtnbit1 receive_provisioning_data 
+3d2e 1a220c00 copy rega ,contr 
+3d2f df200016 arg 0x16 ,loopcnt 
+3d30 d8a047ec arg mem_mesh_encrypt_provisioning_data ,contw 
+3d31 20407cda call memcpy 
+3d32 20403b86 call ali_mesh_encrypt_calc_provisioning_data 
+3d33 684947ec fetcht 2 ,mem_mesh_provisioning_data_mac_addr 
+3d34 6fe14812 fetch 2 ,mem_mesh_three_tuple_mac + 4 
+3d35 98467c00 isub temp ,null 
+3d36 24628000 nrtn zero 
+
+ali_mesh_resolve_privisioning_data_package:
+3d37 6fe0c7e5 fetch 1 ,mem_mesh_provisioning_state_flag 
+3d38 79207e02 set1 receive_provisioning_data ,pdata 
+3d39 67e0c7e5 store 1 ,mem_mesh_provisioning_state_flag 
+3d3a 20403b99 call ali_mesh_encrypt_calc_network_key_by_k2 
+3d3b 6fe0c7ff fetch 1 ,mem_mesh_last_iv_index_byte 
+3d3c 67e0c871 store 1 ,mem_mesh_iv_index + 3 
+3d3d 20403d3f call ali_mesh_advertising_send_provisioning_complete 
+3d3e 20600000 rtn 
+
+ali_mesh_advertising_send_provisioning_complete:
+3d3f d8400006 arg provisioning_packet_complete_mac ,temp 
+3d40 20403d46 call ali_mesh_advertising_send_packet_common 
+3d41 58000003 setarg provisioning_complete 
+3d42 e7e08005 istore 1 ,contw 
+3d43 6fe3480e fetch 6 ,mem_mesh_three_tuple_mac 
+3d44 e7e30005 istore 6 ,contw 
+3d45 20600000 rtn 
+
+ali_mesh_advertising_send_packet_common:
+3d46 47554035 bpatchx patch35_2 ,mem_patch35 
+3d47 5800012c setarg fast_pairing_timeout_provisioning 
+3d48 67e14806 store 2 ,mem_mesh_fast_pairing_timer 
+3d49 6fe087aa fetch 1 ,mem_mesh_fast_pair_packet_type 
+3d4a 1fe67c00 sub pdata ,mesh_message_tmall ,null 
+3d4b 2042bace call ali_mesh_control_ble_advertising_on_advertising ,zero 
+3d4c 2442bad0 ncall ali_mesh_control_ble_advertising_off_advertising ,zero 
+3d4d 1840fe09 add temp ,provisioning_packet_length_ad_type_company_id_vid_provisioning_type + provisioning_packet_length_flags ,pdata 
+3d4e 67e0c62a store 1 ,mem_mesh_adv_data_len 
+3d4f 2040397c call ali_mesh_advertising_add_adtype_flags 
+3d50 1840fe05 add temp ,provisioning_packet_ad_type_company_id_vid_provisioning_type ,pdata 
+3d51 e7e08005 istore 1 ,contw 
+3d52 580000ff setarg gap_adtype_manufacturer_specific 
+3d53 e7e08005 istore 1 ,contw 
+3d54 580001a8 setarg company_identifiers_alibaba 
+3d55 1ff0fe00 byteswap pdata ,pdata 
+3d56 e7e10005 istore 2 ,contw 
+3d57 6fe0890f fetch 1 ,mem_mesh_receive_vid 
+3d58 e7e08005 istore 1 ,contw 
+3d59 20600000 rtn 
+
+ali_mesh_receive_provisioning_package_check_header:
+3d5a 20407dbc call disable_user 
+3d5b e8410006 ifetcht 2 ,contr 
+3d5c 580001a8 setarg company_identifiers_alibaba 
+3d5d 1ff0fe00 byteswap pdata ,pdata 
+3d5e 98467c00 isub temp ,null 
+3d5f 24628000 nrtn zero 
+3d60 efe08006 ifetch 1 ,contr 
+3d61 67e0890f store 1 ,mem_mesh_receive_vid 
+3d62 20207dba branch enable_user 
+
+ali_mesh_fast_pairing_timer:
+3d63 da604806 arg mem_mesh_fast_pairing_timer ,regc 
+3d64 da403d66 arg ali_mesh_fast_pairing_timeout ,regb 
+3d65 202042e7 branch timer_single_step_2b 
+
+ali_mesh_fast_pairing_timeout:
+
+ali_mesh_fast_pairing_failed:
+3d66 20203e61 branch ali_mesh_advertising_init_send_unprovisioned_device_beacon 
+
+ali_mesh_access_layer_config_or_health_message_opcode:
+3d67 6fe0870b fetch 1 ,mem_mesh_configuration_health_message_opcode 
+3d68 c0043d92 beq mesh_message_opcode_config_composition_data_get_no_head ,ali_mesh_access_layer_config_composition_data 
+3d69 c024bdb1 beq mesh_message_opcode_config_node_reset_no_head ,ali_mesh_access_layer_config_or_health_message_opcode_node_reset 
+3d6a c00dbdbd beq mesh_message_opcode_config_model_subscription_add_no_head ,ali_mesh_message_config_modle_subscription_add 
+3d6b c00e3dc4 beq mesh_message_opcode_config_model_subscription_delete_no_head ,ali_mesh_message_config_modle_subscription_delete 
+3d6c c0793d6e beq mesh_message_opcode_config_model_subscription_add_ow_no_head ,ali_mesh_message_config_modle_subscription_add_overwrite 
+3d6d 20600000 rtn 
+
+ali_mesh_message_config_modle_subscription_add_overwrite:
+3d6e 20403dec call ali_mesh_message_config_modle_subscription_check_element 
+3d6f 20403d83 call ali_mesh_message_config_modle_subscription_add_value_address_ow 
+3d70 20403dc2 call ali_mesh_message_config_modle_subscription_save 
+3d71 58000080 setarg mesh_configuration_and_health_message_opcode_header 
+3d72 67e08723 store 1 ,mem_mesh_access_layer_payload 
+3d73 580000f3 setarg mesh_message_opcode_config_model_subscription_add_ow_status 
+3d74 e7e08005 istore 1 ,contw 
+3d75 58000000 setarg mesh_success 
+3d76 e7e08005 istore 1 ,contw 
+3d77 6fe1070c fetch 2 ,mem_mesh_subscription_element_address_ow 
+3d78 e7e10005 istore 2 ,contw 
+3d79 6fe08709 fetch 1 ,mem_mesh_receive_model_message_payload_len 
+3d7a d8400004 arg 4 ,temp 
+3d7b 98467200 isub temp ,loopcnt 
+3d7c d8c0070e arg mem_mesh_subscription_list_num_ow ,contr 
+3d7d 20407cda call memcpy 
+3d7e 6fe08709 fetch 1 ,mem_mesh_receive_model_message_payload_len 
+3d7f 1fe0fe01 pincrease 1 
+3d80 67e08722 store 1 ,mem_mesh_access_layer_payload_len 
+3d81 d8e00000 arg 0 ,queue 
+3d82 20203806 branch ali_mesh_ali_vendor_message_send_message 
+
+ali_mesh_message_config_modle_subscription_add_value_address_ow:
+3d83 6fe0870e fetch 1 ,mem_mesh_subscription_list_num_ow 
+3d84 207a0000 rtn blank 
+3d85 1fe67c08 sub pdata ,subscription_max_count ,null 
+3d86 24413d90 ncall ali_mesh_message_config_modle_subscription_set_addr_max ,positive 
+3d87 98007200 iforce loopcnt 
+3d88 d8c0070f arg mem_mesh_subscription_value_address_start_ow ,contr 
+3d89 1a208a02 add rega ,2 ,contw 
+3d8a 20203d8b branch ali_mesh_byte_swap 
+
+ali_mesh_byte_swap:
+3d8b efe10006 ifetch 2 ,contr 
+3d8c 1ff0fe00 byteswap pdata ,pdata 
+3d8d e7e10005 istore 2 ,contw 
+3d8e c2003d8b loop ali_mesh_byte_swap 
+3d8f 20600000 rtn 
+
+ali_mesh_message_config_modle_subscription_set_addr_max:
+3d90 58000008 setarg subscription_max_count 
+3d91 20600000 rtn 
+
+ali_mesh_access_layer_config_composition_data:
+3d92 7047e406 jam receive_config_composition_data_get ,mem_mesh_provisioned_flag 
+3d93 58000002 setarg mesh_message_opcode_config_composition_data_status 
+3d94 67e08723 store 1 ,mem_mesh_access_layer_payload 
+3d95 58000000 setarg 0x00 
+3d96 e7e08005 istore 1 ,contw 
+3d97 580001a8 setarg company_identifiers_alibaba 
+3d98 e7e10005 istore 2 ,contw 
+3d99 58000000 setarg 0x0000 
+3d9a e7e10005 istore 2 ,contw 
+3d9b 58000001 setarg 0x0001 
+3d9c e7e10005 istore 2 ,contw 
+3d9d 58000005 setarg 0x0005 
+3d9e e7e10005 istore 2 ,contw 
+3d9f 58000003 setarg 0x0003 
+3da0 e7e10005 istore 2 ,contw 
+3da1 58000000 setarg 0x0000 
+3da2 e7e10005 istore 2 ,contw 
+3da3 58000002 setarg 0x02 
+3da4 e7e08005 istore 1 ,contw 
+3da5 58000002 setarg 0x02 
+3da6 e7e08005 istore 1 ,contw 
+3da7 58000000 setarg 0x0000 
+3da8 e7e10005 istore 2 ,contw 
+3da9 58001000 setarg 0x1000 
+3daa e7e10005 istore 2 ,contw 
+3dab 580001a8 setarg 0x000001a8 
+3dac e7e20005 istore 4 ,contw 
+3dad 580101a8 setarg 0x000101a8 
+3dae e7e20005 istore 4 ,contw 
+3daf 7007221c jam 28 ,mem_mesh_access_layer_payload_len 
+3db0 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_access_layer_config_or_health_message_opcode_node_reset:
+3db1 70480514 jam health_node_reset_timeout ,mem_mesh_health_node_reset_timer 
+
+ali_mesh_access_layer_send_config_node_reset_status:
+3db2 58000080 setarg mesh_configuration_and_health_message_opcode_header 
+3db3 67e08723 store 1 ,mem_mesh_access_layer_payload 
+3db4 5800004a setarg mesh_message_opcode_config_node_reset_status_no_head 
+3db5 e7e08005 istore 1 ,contw 
+3db6 70072202 jam 2 ,mem_mesh_access_layer_payload_len 
+3db7 202041b5 branch ali_mesh_upper_transport_layer_send_access_message 
+
+ali_mesh_access_layer_health_node_reset_timer:
+3db8 da604805 arg mem_mesh_health_node_reset_timer ,regc 
+3db9 da403dbb arg ali_mesh_access_layer_health_node_reset_timeout ,regb 
+3dba 202042e0 branch timer_single_step 
+
+ali_mesh_access_layer_health_node_reset_timeout:
+3dbb 20403e50 call mesh_clear_provisioning_data_only 
+
+ali_mesh_app_delete_paired:
+3dbc 20206ca3 branch soft_reset_chip 
+
+ali_mesh_message_config_modle_subscription_add:
+3dbd 20403de2 call ali_mesh_message_config_modle_subscription_status 
+3dbe 6fe1484c fetch 2 ,mem_mesh_core_feature 
+3dbf c3810000 rtnbit1 mesh_feature_disable_subscription 
+3dc0 20403dec call ali_mesh_message_config_modle_subscription_check_element 
+3dc1 20403df5 call ali_mesh_message_config_modle_subscription_add_value_address 
+
+ali_mesh_message_config_modle_subscription_save:
+3dc2 6fe14848 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+3dc3 20207d79 branch callback_func 
+
+ali_mesh_message_config_modle_subscription_delete:
+3dc4 20403de2 call ali_mesh_message_config_modle_subscription_status 
+3dc5 6fe1484c fetch 2 ,mem_mesh_core_feature 
+3dc6 c3810000 rtnbit1 mesh_feature_disable_subscription 
+3dc7 20403dec call ali_mesh_message_config_modle_subscription_check_element 
+3dc8 6849070e fetcht 2 ,mem_mesh_subscription_value_address 
+3dc9 184cfe00 rshift8 temp ,pdata 
+3dca 1ff1fe00 rshift4 pdata ,pdata 
+3dcb c0063dd3 beq 0x0c ,ali_mesh_message_config_modle_subscription_delete_group_addr 
+3dcc 18508400 byteswap temp ,temp 
+
+ali_mesh_message_config_modle_subscription_delete_next:
+3dcd 20403dd8 call ali_mesh_message_config_modle_subscription_check_value_address 
+3dce 24740000 nrtn user 
+3dcf 58000000 setarg 0 
+3dd0 e7e10011 istore 2 ,rega 
+3dd1 6fe14848 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+3dd2 20207d79 branch callback_func 
+
+ali_mesh_message_config_modle_subscription_delete_group_addr:
+3dd3 5fffffff setarg -1 
+3dd4 e7e40011 istore subscription_max_count ,rega 
+3dd5 e7e40005 istore subscription_max_count ,contw 
+3dd6 6fe14848 fetch 2 ,mem_mesh_cb_subscriptuion_list_changed 
+3dd7 20207d79 branch callback_func 
+
+ali_mesh_message_config_modle_subscription_check_value_address:
+3dd8 df200008 arg subscription_max_count ,loopcnt 
+
+ali_mesh_message_config_modle_subscription_check_value_address_loop:
+3dd9 efe10011 ifetch 2 ,rega 
+3dda da40ffff arg 0xffff ,regb 
+3ddb 9a467c00 isub regb ,null 
+3ddc 2022fdba branch enable_user ,zero 
+3ddd 98467c00 isub temp ,null 
+3dde 2022fdba branch enable_user ,zero 
+
+ali_mesh_message_config_modle_subscription_check_value_address_loop_empty:
+3ddf 1a20a202 increase 2 ,rega 
+3de0 c2003dd9 loop ali_mesh_message_config_modle_subscription_check_value_address_loop 
+3de1 20207dbc branch disable_user 
+
+ali_mesh_message_config_modle_subscription_status:
+3de2 58000080 setarg mesh_configuration_and_health_message_opcode_header 
+3de3 67e08723 store 1 ,mem_mesh_access_layer_payload 
+3de4 5800001f setarg mesh_message_opcode_config_model_subscription_status_no_head 
+3de5 e7e08005 istore 1 ,contw 
+3de6 58000000 setarg mesh_success 
+3de7 e7e08005 istore 1 ,contw 
+3de8 6fe3070c fetch 6 ,mem_mesh_subscription_element_address 
+3de9 e7e30005 istore 6 ,contw 
+3dea 70072209 jam 9 ,mem_mesh_access_layer_payload_len 
+3deb 202041b5 branch ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer 
+
+ali_mesh_message_config_modle_subscription_check_element:
+3dec 20403e3e call mesh_get_element_info_config 
+3ded 1a20a206 add rega ,element_device_subscription_label ,rega 
+3dee 6fe1070c fetch 2 ,mem_mesh_subscription_element_address 
+3def 68494800 fetcht 2 ,mem_mesh_unicast_address 
+3df0 18508400 byteswap temp ,temp 
+3df1 98467e00 isub temp ,pdata 
+3df2 9a4ffe00 imul32 regb ,pdata 
+3df3 9a20a200 iadd rega ,rega 
+3df4 20600000 rtn 
+
+ali_mesh_message_config_modle_subscription_add_value_address:
+3df5 6849070e fetcht 2 ,mem_mesh_subscription_value_address 
+3df6 df200008 arg subscription_max_count ,loopcnt 
+
+ali_mesh_message_config_modle_subscription_add_value_address_loop:
+3df7 efe10011 ifetch 2 ,rega 
+3df8 203a3dff branch ali_mesh_message_config_modle_subscription_add_value_address_in ,blank 
+3df9 da40ffff arg 0xffff ,regb 
+3dfa 9a467c00 isub regb ,null 
+3dfb 2022bdff branch ali_mesh_message_config_modle_subscription_add_value_address_in ,zero 
+3dfc 1a20a202 increase 2 ,rega 
+3dfd c2003df7 loop ali_mesh_message_config_modle_subscription_add_value_address_loop 
+3dfe 20600000 rtn 
+
+ali_mesh_message_config_modle_subscription_add_value_address_in:
+3dff 18508400 byteswap temp ,temp 
+3e00 e0410011 istoret 2 ,rega 
+3e01 20600000 rtn 
+
+ali_mesh_init:
+3e02 20407396 call enable_authrom 
+3e03 2040739e call init_memp 
+3e04 580039b1 setarg mesh_check_ble_rx_packet 
+3e05 67e14824 store 2 ,mem_mesh_cb_receive_advertising 
+3e06 58003e42 setarg mesh_idle_process 
+3e07 67e143db store 2 ,mem_cb_idle_process 
+3e08 58004016 setarg ali_mesh_network_layer_relay_access_message 
+3e09 67e14842 store 2 ,mem_mesh_cb_network_relay 
+3e0a 58003745 setarg ali_mesh_access_layer_recv_cfg_appkey_add_cb 
+3e0b 67e14828 store 2 ,mem_mesh_cb_receive_config_appkey_add 
+3e0c 58003aa2 setarg mesh_store_new_subscriptuion_list_data 
+3e0d 67e14848 store 2 ,mem_mesh_cb_subscriptuion_list_changed 
+3e0e 58003a92 setarg mesh_store_new_seq_data 
+3e0f 67e14846 store 2 ,mem_mesh_cb_seq_changed 
+3e10 58003e4a setarg mesh_cb_event_timer 
+3e11 67e143e3 store 2 ,mem_cb_event_timer 
+3e12 5800372e setarg ali_mesh_access_layer_check_access_message_opcode 
+3e13 67e14826 store 2 ,mem_mesh_cb_receive_access_message 
+3e14 58004090 setarg mesh_le_receive_data 
+3e15 67e143df store 2 ,mem_cb_att_write 
+3e16 580040e3 setarg ali_mesh_proxy_process_bb_event 
+3e17 67e143dd store 2 ,mem_cb_bb_event_process 
+3e18 58003ab6 setarg mesh_clear_pairing_key 
+3e19 67e14853 store 2 ,mem_mesh_clear_provisioning_data 
+3e1a 58003abc setarg mesh_vendor_timming_chage_cb 
+3e1b 67e1484a store 2 ,mem_mesh_cb_vendor_timing_changed 
+3e1c 20403ac3 call ali_mesh_vendor_timer_message_read 
+3e1d 70464a24 jam 36 ,mem_mesh_adv_scan_channel 
+3e1e 20403817 call ali_mesh_ali_vendor_message_indication_info_reset_tid 
+3e1f 4755c035 bpatchx patch35_3 ,mem_patch35 
+3e20 58000428 setarg 0x0428 
+3e21 67e149b9 store 2 ,mem_mesh_upper_tran_layer_queue_each_size 
+3e22 20403e58 call ali_mesh_upper_transport_layer_queue_init 
+3e23 58000422 setarg 0x0422 
+3e24 67e14a5e store 2 ,mem_mesh_queue_each_size 
+3e25 20403e5a call ali_mesh_advertising_bearer_layer_queue_init 
+3e26 58000a22 setarg 0x0a22 
+3e27 67e10a8d store 2 ,mem_mesh_network_relay_gatt_queue_each_size 
+3e28 20403e5c call ali_mesh_network_layer_gatt_queue_init 
+3e29 20404071 call ali_mesh_network_layer_queue_init 
+3e2a 20404071 call ali_mesh_network_layer_queue_init 
+3e2b 20403a18 call ali_mesh_chip_peripherals_load_data 
+3e2c 20403e3a call mesh_inverse_three_tuple_mac 
+3e2d 6fe0c7ef fetch 1 ,mem_mesh_network_key 
+3e2e c07fbcd9 beq 0xff ,mesh_send_unprovisioned_beacons 
+3e2f 20404291 call ali_mesh_upper_transport_layer_clear_tx_buffer 
+3e30 20403bbf call ali_mesh_encrypt_base_function_k3 
+3e31 20403bb1 call ali_mesh_encrypt_base_function_k4 
+3e32 20403b99 call ali_mesh_encrypt_calc_network_key_by_k2 
+3e33 180a7e00 random pdata 
+3e34 1fe17e1f and pdata ,0x1f ,pdata 
+3e35 1fe0fe32 add pdata ,50 ,pdata 
+3e36 67e14804 store 2 ,mem_mesh_report_full_attribute_timer 
+3e37 1fe0fe05 add pdata ,5 ,pdata 
+3e38 67e0c803 store 1 ,mem_mesh_report_power_on_timer 
+3e39 20600000 rtn 
+
+mesh_inverse_three_tuple_mac:
+3e3a 6fe3480e fetch 6 ,mem_mesh_three_tuple_mac 
+3e3b 20407cc0 call inverse_data_6byte 
+3e3c 67e342db store 6 ,mem_le_lap 
+3e3d 20600000 rtn 
+
+mesh_get_element_info_config:
+3e3e 6f20c84e fetchr loopcnt ,1 ,mem_mesh_element_number 
+3e3f 6a21484f fetchr rega ,2 ,mem_mesh_element_device_ptr 
+3e40 6a414851 fetchr regb ,2 ,mem_mesh_element_device_length 
+3e41 20600000 rtn 
+
+mesh_idle_process:
+3e42 47564035 bpatchx patch35_4 ,mem_patch35 
+3e43 2040387d call ali_mesh_time_function 
+3e44 20403aca call ali_mesh_control_ble_adv_process 
+3e45 204041d8 call ali_mesh_upper_transport_layer_control_packet 
+3e46 2040396f call ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue 
+3e47 20403b33 call ali_mesh_network_layer_control_relay_packet 
+3e48 20404060 call ali_mesh_network_layer_check_gatt_relay_packet 
+3e49 20203995 branch mesh_ble_rx_packet 
+
+mesh_cb_event_timer:
+3e4a 20403acc call ali_mesh_control_ble_adv_timer_process 
+3e4b 20403db8 call ali_mesh_access_layer_health_node_reset_timer 
+3e4c 20403d63 call ali_mesh_fast_pairing_timer 
+3e4d 20403794 call ali_mesh_report_full_attribute_timer 
+3e4e 20403791 call ali_mesh_report_power_on_timer 
+3e4f 20204289 branch ali_mesh_upper_transport_layer_receive_new_msg_timer 
+
+mesh_clear_provisioning_data_only:
+3e50 20403e53 call mesh_clear_timer_data 
+3e51 6fe14853 fetch 2 ,mem_mesh_clear_provisioning_data 
+3e52 20207d79 branch callback_func 
+
+mesh_clear_timer_data:
+3e53 6fe0c857 fetch 1 ,mem_mesh_chip_select 
+3e54 c1810000 rtnne 2 
+3e55 5801d000 setarg 0x1d000 
+3e56 67e1c419 store 3 ,mem_spi_write_addr 
+3e57 20206bfa branch spid_flash_erase_sector + 2 
+
+ali_mesh_upper_transport_layer_queue_init:
+3e58 20404292 call ali_mesh_upper_transport_layer_init_queue_param 
+3e59 202078ad branch queue_init 
+
+ali_mesh_advertising_bearer_layer_queue_init:
+3e5a 2040396c call ali_mesh_advertising_bearer_layer_init_queue_param 
+3e5b 202078ad branch queue_init 
+
+ali_mesh_network_layer_gatt_queue_init:
+3e5c 20403e5e call ali_mesh_network_layer_init_gatt_queue_param 
+3e5d 202078ad branch queue_init 
+
+ali_mesh_network_layer_init_gatt_queue_param:
+3e5e 58000a8d setarg mem_mesh_network_relay_gatt_queue_each_size 
+3e5f 67e143fb store 2 ,mem_queue_ptr 
+3e60 20600000 rtn 
+
+ali_mesh_advertising_init_send_unprovisioned_device_beacon:
+3e61 70438801 jam 1 ,mem_le_adv_enable 
+3e62 58001770 setarg adv_unprovisioned_device_beacon_timeout 
+3e63 67e1464c store 2 ,mem_mesh_advertising_unprovisioned_device_beacon_timer 
+3e64 6fe0c7e7 fetch 1 ,mem_mesh_uuid_featureflag 
+3e65 793ffe00 set0 bit_silence_adv_flag ,pdata 
+3e66 67e0c7e7 store 1 ,mem_mesh_uuid_featureflag 
+3e67 7047e401 jam unprovisioned_beacon_status ,mem_mesh_provisioned_flag 
+3e68 7047e500 jam 0x00 ,mem_mesh_provisioning_state_flag 
+3e69 70474d00 jam 0x00 ,mem_k2_nid 
+3e6a 20203b2f branch ali_mesh_send_unprovisioned_device_beacon_init_advertising 
+
+ali_mesh_lower_transport_layer_receive_lower_transport_pdu:
+3e6b 4756c035 bpatchx patch35_5 ,mem_patch35 
+3e6c 6fe0892b fetch 1 ,mem_mesh_message_transport_head 
+3e6d c283be70 bbit1 transport_head_bit_seg ,ali_mesh_lower_transport_layer_receive_lower_transport_pdu_segmented_message 
+3e6e 70496900 jam 0 ,mem_mesh_aszmic 
+3e6f 2020417d branch ali_mesh_upper_transport_layer_receive_unsegmented_access_message 
+
+ali_mesh_lower_transport_layer_receive_lower_transport_pdu_segmented_message:
+3e70 20403e76 call ali_mesh_lower_transport_layer_receive_segaccmess_resolve_szmic_seqzero_segon 
+3e71 20740000 rtn user 
+3e72 20403e97 call ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack 
+3e73 20740000 rtn user 
+3e74 20403ea7 call ali_mesh_lower_transport_layer_receive_segmented_access_message_store_segment 
+3e75 20203eb4 branch ali_mesh_lower_transport_layer_receive_segmented_access_message_decrypt_segment 
+
+ali_mesh_lower_transport_layer_receive_segaccmess_resolve_szmic_seqzero_segon:
+3e76 20407dbc call disable_user 
+3e77 df200003 arg 3 ,loopcnt 
+3e78 da20092c arg mem_mesh_message_segment_access_szmic_seqzero_sego_segn ,rega 
+3e79 20407cb1 call inverse_data 
+3e7a 6a21892c fetchr rega ,3 ,mem_mesh_message_segment_access_szmic_seqzero_sego_segn 
+3e7b 1a21041f and rega ,0x1f ,temp 
+3e7c 6048c85c storet 1 ,mem_mesh_segmented_access_message_segn 
+3e7d 6fe0c863 fetch 1 ,mem_mesh_segmented_access_message_segn_upper_limit 
+3e7e 98467c00 isub temp ,null 
+3e7f 24217dba nbranch enable_user ,positive 
+3e80 1a31fe00 rshift4 rega ,pdata 
+3e81 1fe37e00 rshift pdata ,pdata 
+3e82 1fe1041f and pdata ,0x1f ,temp 
+3e83 6048c85b storet 1 ,mem_mesh_segmented_access_message_sego 
+3e84 1ff1fe00 rshift4 pdata ,pdata 
+3e85 1fe37e00 rshift pdata ,pdata 
+3e86 da201fff arg 0x1fff ,rega 
+3e87 9a210400 iand rega ,temp 
+3e88 1fe22400 copy pdata ,regb 
+3e89 6fe14859 fetch 2 ,mem_mesh_segmented_access_message_seqzero 
+3e8a 98467c00 isub temp ,null 
+3e8b 2442be93 ncall ali_mesh_lower_transport_layer_receive_segmented_access_message_recover_seqzero ,zero 
+3e8c 60494859 storet 2 ,mem_mesh_segmented_access_message_seqzero 
+3e8d 1a4cfe00 rshift8 regb ,pdata 
+3e8e 1ff1fe00 rshift4 pdata ,pdata 
+3e8f 1fe37e00 rshift pdata ,pdata 
+3e90 67e0c858 store 1 ,mem_mesh_segmented_access_message_szmic 
+3e91 67e0c969 store 1 ,mem_mesh_aszmic 
+3e92 20600000 rtn 
+
+ali_mesh_lower_transport_layer_receive_segmented_access_message_recover_seqzero:
+3e93 58000000 setarg 0 
+3e94 67e2485d store 4 ,mem_mesh_segmented_access_message_blockack 
+3e95 70486200 jam 0 ,mem_mesh_segmented_access_message_current_length 
+3e96 20600000 rtn 
+
+ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack:
+3e97 20407dbc call disable_user 
+3e98 6fe0c85b fetch 1 ,mem_mesh_segmented_access_message_sego 
+3e99 1fe20e00 copy pdata ,queue 
+3e9a 6fe2485d fetch 4 ,mem_mesh_segmented_access_message_blockack 
+3e9b afefffff qisolate1 pdata 
+3e9c 2020fdba branch enable_user ,true 
+3e9d f9207e00 qset1 pdata 
+3e9e 67e2485d store 4 ,mem_mesh_segmented_access_message_blockack 
+3e9f 6848c85c fetcht 1 ,mem_mesh_segmented_access_message_segn 
+3ea0 1840f201 add temp ,1 ,loopcnt 
+
+ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack_loop:
+3ea1 1f208fff add loopcnt ,-1 ,queue 
+3ea2 afefffff qisolate1 pdata 
+3ea3 24608000 nrtn true 
+3ea4 c2003ea1 loop ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockack_loop 
+3ea5 70486101 jam 1 ,mem_mesh_segmented_access_message_receive_finish 
+3ea6 20600000 rtn 
+
+ali_mesh_lower_transport_layer_receive_segmented_access_message_store_segment:
+3ea7 6fe08921 fetch 1 ,mem_mesh_message_transport_netmic_length 
+3ea8 1fe0fffa pincrease -6 
+3ea9 1fe27200 copy pdata ,loopcnt 
+3eaa 6848c862 fetcht 1 ,mem_mesh_segmented_access_message_current_length 
+3eab 98408400 iadd temp ,temp 
+3eac 6048c862 storet 1 ,mem_mesh_segmented_access_message_current_length 
+3ead 6fe14864 fetch 2 ,mem_mesh_segmented_access_message_segment_ptr 
+3eae 98000a00 iforce contw 
+3eaf 6fe0c85b fetch 1 ,mem_mesh_segmented_access_message_sego 
+3eb0 1feffe0c mul32 pdata ,12 ,pdata 
+3eb1 98a08a00 iadd contw ,contw 
+3eb2 d8c0092f arg mem_mesh_message_transport_segmented_access_messagepdu_segment ,contr 
+3eb3 20207cda branch memcpy 
+
+ali_mesh_lower_transport_layer_receive_segmented_access_message_decrypt_segment:
+3eb4 6fe0c861 fetch 1 ,mem_mesh_segmented_access_message_receive_finish 
+3eb5 c1000000 rtneq 0 
+3eb6 58000000 setarg 0 
+3eb7 67e2c85d store 5 ,mem_mesh_segmented_access_message_blockack 
+3eb8 68490925 fetcht 2 ,mem_mesh_message_seq + 1 
+3eb9 18508400 byteswap temp ,temp 
+3eba 5800e000 setarg 0xe000 
+3ebb 98410400 iand temp ,temp 
+3ebc 6fe14859 fetch 2 ,mem_mesh_segmented_access_message_seqzero 
+3ebd 9841fe00 ior temp ,pdata 
+3ebe 1ff0fe00 byteswap pdata ,pdata 
+3ebf 67e10925 store 2 ,mem_mesh_message_seq + 1 
+3ec0 20204187 branch ali_mesh_upper_transport_layer_receive_segmented_access_message 
+
+ali_mesh_lower_transport_layer_send_unsegmented_access_message:
+3ec1 6fe08722 fetch 1 ,mem_mesh_upper_transport_layer_payload_len 
+3ec2 1fe08401 add pdata ,1 ,temp 
+3ec3 1fe27200 copy pdata ,loopcnt 
+3ec4 60488916 storet 1 ,mem_mesh_lower_transport_layer_payload_len 
+3ec5 6fe0892b fetch 1 ,mem_mesh_message_transport_head 
+3ec6 793ffe07 set0 transport_head_bit_seg ,pdata 
+3ec7 67e0c9a1 store 1 ,mem_mesh_unsegmented_access_lower_transport_layer_head 
+3ec8 d8c00723 arg mem_mesh_access_layer_payload ,contr 
+3ec9 20407ccc call memcpy_fast 
+3eca 20204052 branch ali_mesh_network_layer_send_access_message 
+
+ali_mesh_lower_transport_layer_send_segmented_access_message:
+3ecb 1a208404 add rega ,4 ,temp 
+3ecc 1a227200 copy rega ,loopcnt 
+3ecd 60488916 storet 1 ,mem_mesh_lower_transport_layer_payload_len 
+3ece d8a049a5 arg mem_mesh_segmented_access_lower_transport_layer_parameters ,contw 
+3ecf 20407ccc call memcpy_fast 
+3ed0 6fe0892b fetch 1 ,mem_mesh_message_transport_head 
+3ed1 79207e07 set1 transport_head_bit_seg ,pdata 
+3ed2 67e0c9a1 store 1 ,mem_mesh_segmented_access_lower_transport_layer_head 
+3ed3 20204052 branch ali_mesh_network_layer_send_access_message 
+
+ali_mesh_model_layer_check_model_message_opcode:
+3ed4 6fe0870b fetch 1 ,mem_mesh_module_message_opcode 
+
+ali_mesh_model_layer_check_generic_onoff_message_opcde:
+3ed5 c000bedb beq mesh_module_message_opcode_generic_onoff_get_no_head ,ali_mesh_model_layer_message_opcode_generic_onoff_get 
+3ed6 c0013ee1 beq mesh_module_message_opcode_generic_onoff_set_no_head ,ali_mesh_model_layer_message_opcde_generic_onoff_set 
+3ed7 c0213ee6 beq mesh_module_message_opcode_scene_recall_no_head ,ali_mesh_model_layer_message_opcde_scene_recall 
+3ed8 c0263ee9 beq mesh_module_message_opcode_light_lightness_set_no_head ,ali_mesh_model_layer_message_opcde_light_lightness_set 
+3ed9 c02f3eef beq mesh_module_message_opcode_light_ctl_set_no_head ,ali_mesh_model_layer_message_opcde_light_ctl_set 
+3eda 20600000 rtn 
+
+ali_mesh_model_layer_message_opcode_generic_onoff_get:
+3edb da603edd arg ali_mesh_model_layer_message_opcode_generic_onoff_get_cb ,regc 
+3edc 20203f53 branch ali_mesh_more_element_check_element_address 
+
+ali_mesh_model_layer_message_opcode_generic_onoff_get_cb:
+3edd 6fe14830 fetch 2 ,mem_mesh_cb_generic_onoff_get 
+3ede 20407d79 call callback_func 
+3edf 67e0870c store 1 ,mem_mesh_generic_onoff_set_payload_onoff 
+3ee0 2020376c branch ali_mesh_access_layer_send_generic_onoff_status 
+
+ali_mesh_model_layer_message_opcde_generic_onoff_set:
+3ee1 da603ee3 arg ali_mesh_model_layer_message_opcde_generic_onoff_set_cb ,regc 
+3ee2 20203f53 branch ali_mesh_more_element_check_element_address 
+
+ali_mesh_model_layer_message_opcde_generic_onoff_set_cb:
+3ee3 2040376c call ali_mesh_access_layer_send_generic_onoff_status 
+3ee4 6fe14832 fetch 2 ,mem_mesh_cb_generic_onoff_set 
+3ee5 20207d79 branch callback_func 
+
+ali_mesh_model_layer_message_opcde_scene_recall:
+3ee6 20403784 call ali_mesh_access_layer_send_scene_status 
+3ee7 6fe14834 fetch 2 ,mem_mesh_cb_scene_recall 
+3ee8 20207d79 branch callback_func 
+
+ali_mesh_model_layer_message_opcde_light_lightness_set:
+3ee9 6fe1070c fetch 2 ,mem_mesh_light_lightness_set_payload_lightness 
+3eea 20403efe call ali_mesh_model_layer_message_calc_lightness 
+3eeb 67e08711 store 1 ,mem_mesh_light_lightness_calc_lightness 
+3eec 20403774 call ali_mesh_access_layer_send_light_lightness_status 
+3eed 6fe14836 fetch 2 ,mem_mesh_cb_light_lightness_set 
+3eee 20207d79 branch callback_func 
+
+ali_mesh_model_layer_message_opcde_light_ctl_set:
+3eef 6fe14866 fetch 2 ,mem_mesh_last_ctl_temperature 
+3ef0 6849070e fetcht 2 ,mem_mesh_ctl_temperature 
+3ef1 98467c00 isub temp ,null 
+3ef2 20628000 rtn zero 
+3ef3 6fe1070e fetch 2 ,mem_mesh_ctl_temperature 
+3ef4 20403f10 call ali_mesh_model_layer_message_calc_temperature 
+3ef5 67e08716 store 1 ,mem_mesh_ctl_calc_temperature 
+3ef6 6fe1070e fetch 2 ,mem_mesh_ctl_temperature 
+3ef7 67e14866 store 2 ,mem_mesh_last_ctl_temperature 
+3ef8 6fe14838 fetch 2 ,mem_mesh_cb_light_lightness_get 
+3ef9 20407d79 call callback_func 
+3efa 6049070c storet 2 ,mem_mesh_ctl_lightness 
+3efb 2040377c call ali_mesh_access_layer_send_light_ctl_stauts 
+3efc 6fe1483a fetch 2 ,mem_mesh_cb_light_ctl_set 
+3efd 20207d79 branch callback_func 
+
+ali_mesh_model_layer_message_calc_lightness:
+3efe 207a0000 rtn blank 
+3eff 1feffe64 mul32 pdata ,ali_mesh_lightness_level ,pdata 
+3f00 d840ffff arg ali_mesh_lightness_max ,temp 
+3f01 9846fc00 idiv temp 
+3f02 20407d62 call wait_div_end 
+3f03 18070400 remainder temp 
+3f04 184c8400 rshift8 temp ,temp 
+3f05 1807fe00 quotient pdata 
+3f06 18467cff sub temp ,0xff ,null 
+3f07 24628000 nrtn zero 
+3f08 1fe0fe01 pincrease 1 
+3f09 20600000 rtn 
+
+ali_mesh_model_layer_message_calc_actual_lightness:
+3f0a dfe0ffff arg ali_mesh_lightness_max ,pdata 
+3f0b 984ffe00 imul32 temp ,pdata 
+3f0c 1fe6fc64 div pdata ,ali_mesh_lightness_level 
+3f0d 20407d62 call wait_div_end 
+3f0e 18078400 quotient temp 
+3f0f 20600000 rtn 
+
+ali_mesh_model_layer_message_calc_temperature:
+3f10 d8400320 arg ali_mesh_temperature_min ,temp 
+3f11 98462200 isub temp ,rega 
+3f12 20403f1f call ali_mesh_model_layer_message_calc_temperature_k 
+3f13 1a227e00 copy rega ,pdata 
+3f14 9846fc00 idiv temp 
+3f15 20407d62 call wait_div_end 
+3f16 1807fe00 quotient pdata 
+3f17 20600000 rtn 
+
+ali_mesh_model_layer_message_calc_actual_temperature:
+3f18 18422200 copy temp ,rega 
+3f19 20403f1f call ali_mesh_model_layer_message_calc_temperature_k 
+3f1a 1a227e00 copy rega ,pdata 
+3f1b 984ffe00 imul32 temp ,pdata 
+3f1c d8400320 arg ali_mesh_temperature_min ,temp 
+3f1d 98408400 iadd temp ,temp 
+3f1e 20600000 rtn 
+
+ali_mesh_model_layer_message_calc_temperature_k:
+3f1f 58004e20 setarg ali_mesh_temperature_max 
+3f20 d8400320 arg ali_mesh_temperature_min ,temp 
+3f21 98467e00 isub temp ,pdata 
+3f22 1fe6fc64 div pdata ,ali_mesh_temperature_level 
+3f23 20407d62 call wait_div_end 
+3f24 18078400 quotient temp 
+3f25 20600000 rtn 
+
+ali_mesh_more_element_check_unicast_address:
+3f26 d8e00000 arg 0 ,queue 
+3f27 6f20c84e fetchr loopcnt ,1 ,mem_mesh_element_number 
+3f28 20407dbc call disable_user 
+3f29 6fe14800 fetch 2 ,mem_mesh_unicast_address 
+
+ali_mesh_more_element_check_unicast_address_loop:
+3f2a 98467c00 isub temp ,null 
+3f2b 2022bf32 branch ali_mesh_more_element_found_unicast_address_element ,zero 
+3f2c 1ff0fe00 byteswap pdata ,pdata 
+3f2d 1fe0fe01 pincrease 1 
+3f2e 1ff0fe00 byteswap pdata ,pdata 
+3f2f 18e08e01 increase 1 ,queue 
+3f30 c2003f2a loop ali_mesh_more_element_check_unicast_address_loop 
+3f31 20600000 rtn 
+
+ali_mesh_more_element_found_unicast_address_element:
+3f32 70486800 jam 0 ,mem_mesh_receive_group_address 
+3f33 60e0c869 storer queue ,1 ,mem_mesh_receive_element_number 
+3f34 20403f6e call ali_mesh_more_element_calc_queue_address 
+3f35 20207dba branch enable_user 
+
+ali_mesh_more_element_check_group_address:
+3f36 d8e00000 arg 0 ,queue 
+3f37 da600000 arg 0 ,regc 
+3f38 20403e3e call mesh_get_element_info_config 
+3f39 20407dbc call disable_user 
+
+ali_mesh_more_element_check_group_address_loop:
+3f3a 6fe1484c fetch 2 ,mem_mesh_core_feature 
+3f3b c3013f49 bbit0 mesh_feature_disable_subscription ,ali_mesh_more_element_check_subscription_address 
+3f3c efe10011 ifetch 2 ,rega 
+3f3d 98467c00 isub temp ,null 
+3f3e 2042bf47 call ali_mesh_more_element_found_group_address_element ,zero 
+
+ali_mesh_more_element_check_address_common:
+3f3f 1a427e00 copy regb ,pdata 
+3f40 9a20a200 iadd rega ,rega 
+3f41 18e08e01 increase 1 ,queue 
+3f42 c2003f3a loop ali_mesh_more_element_check_group_address_loop 
+3f43 1a627e00 copy regc ,pdata 
+3f44 207a0000 rtn blank 
+3f45 67e0c868 store 1 ,mem_mesh_receive_group_address 
+3f46 20207dba branch enable_user 
+
+ali_mesh_more_element_found_group_address_element:
+3f47 f9202600 qset1 regc 
+3f48 20600000 rtn 
+
+ali_mesh_more_element_check_subscription_address:
+3f49 1a208c06 add rega ,element_device_subscription_label ,contr 
+3f4a de000008 arg subscription_max_count ,alarm 
+
+ali_mesh_more_element_check_subscription_address_loop:
+3f4b efe10006 ifetch 2 ,contr 
+3f4c 98467c00 isub temp ,null 
+3f4d 2022bf51 branch ali_mesh_more_element_found_subscription_address_element ,zero 
+3f4e 1e00e1ff increase -1 ,alarm 
+3f4f 2022bf3f branch ali_mesh_more_element_check_address_common ,zero 
+3f50 20203f4b branch ali_mesh_more_element_check_subscription_address_loop 
+
+ali_mesh_more_element_found_subscription_address_element:
+3f51 20403f47 call ali_mesh_more_element_found_group_address_element 
+3f52 20203f3f branch ali_mesh_more_element_check_address_common 
+
+ali_mesh_more_element_check_element_address:
+3f53 d8e00000 arg 0 ,queue 
+3f54 6fe0c868 fetch 1 ,mem_mesh_receive_group_address 
+3f55 203a3f5f branch ali_mesh_more_element_check_element_address_no_group_address ,blank 
+3f56 1fe22400 copy pdata ,regb 
+3f57 6f20c84e fetchr loopcnt ,1 ,mem_mesh_element_number 
+
+ali_mesh_more_element_check_element_address_loop:
+3f58 60e0c869 storer queue ,1 ,mem_mesh_receive_element_number 
+3f59 aa4fffff qisolate1 regb 
+3f5a 2040bf5f call ali_mesh_more_element_check_element_address_no_group_address ,true 
+3f5b 68e0c869 fetchr queue ,1 ,mem_mesh_receive_element_number 
+3f5c 18e08e01 increase 1 ,queue 
+3f5d c2003f58 loop ali_mesh_more_element_check_element_address_loop 
+3f5e 20600000 rtn 
+
+ali_mesh_more_element_check_element_address_no_group_address:
+3f5f 20403f64 call ali_mesh_more_element_push_stack 
+3f60 20403f6e call ali_mesh_more_element_calc_queue_address 
+3f61 1a627e00 copy regc ,pdata 
+3f62 20407d79 call callback_func 
+3f63 20203f69 branch ali_mesh_more_element_pop_stack 
+
+ali_mesh_more_element_push_stack:
+3f64 67210917 storer loopcnt ,2 ,mem_mesh_loopcnt_tmep 
+3f65 62210919 storer rega ,2 ,mem_mesh_rega_temp 
+3f66 6241091b storer regb ,2 ,mem_mesh_regb_temp 
+3f67 6261091d storer regc ,2 ,mem_mesh_regc_temp 
+3f68 20600000 rtn 
+
+ali_mesh_more_element_pop_stack:
+3f69 6f210917 fetchr loopcnt ,2 ,mem_mesh_loopcnt_tmep 
+3f6a 6a210919 fetchr rega ,2 ,mem_mesh_rega_temp 
+3f6b 6a41091b fetchr regb ,2 ,mem_mesh_regb_temp 
+3f6c 6a61091d fetchr regc ,2 ,mem_mesh_regc_temp 
+3f6d 20600000 rtn 
+
+ali_mesh_more_element_calc_queue_address:
+3f6e 47574035 bpatchx patch35_6 ,mem_patch35 
+3f6f 6fe14800 fetch 2 ,mem_mesh_unicast_address 
+3f70 1ff0fe00 byteswap pdata ,pdata 
+3f71 98e0fe00 iadd queue ,pdata 
+3f72 1ff0fe00 byteswap pdata ,pdata 
+3f73 67e14995 store 2 ,mem_mesh_send_message_src 
+3f74 20403e3e call mesh_get_element_info_config 
+3f75 18e27e00 copy queue ,pdata 
+3f76 9a4ffe00 imul32 regb ,pdata 
+3f77 9a20a200 iadd rega ,rega 
+3f78 1a208c17 add rega ,element_device_upper_queue_ptr ,contr 
+3f79 efe10006 ifetch 2 ,contr 
+3f7a 67e143fb store ,2 ,mem_queue_ptr 
+3f7b 20600000 rtn 
+
+ali_mesh_receive_adtype_mesh_message:
+3f7c 70095100 jam mesh_message_tmall ,mem_mesh_network_packet_type 
+
+ali_mesh_network_layer_recevice_network_pdu:
+3f7d 18467c0c sub temp ,mesh_network_packet_min_length ,null 
+3f7e 20610000 rtn positive 
+3f7f 18467c1e sub temp ,mesh_network_packet_max_length ,null 
+3f80 24610000 nrtn positive 
+3f81 4757c035 bpatchx patch35_7 ,mem_patch35 
+3f82 2040400e call ali_mesh_network_store_in_mem 
+3f83 20403f8c call ali_mesh_network_layer_check_dup 
+3f84 24740000 nrtn user 
+3f85 20403fdd call ali_mesh_network_layer_check_nid_ivi 
+3f86 24740000 nrtn user 
+3f87 20403bcf call ali_mesh_encrypt_obfuscation_deceypt_recevie_message 
+3f88 20403fa1 call ali_mesh_network_layer_check_msg 
+3f89 24740000 nrtn user 
+3f8a 20403fb2 call ali_mesh_network_layer_store_proxy_unicast_address 
+3f8b 20203fb7 branch ali_mesh_network_layer_recevice_network_pdu_decrypt_netmic32 
+
+ali_mesh_network_layer_check_dup:
+3f8c 20407dba call enable_user 
+3f8d 6fe08921 fetch 1 ,mem_mesh_message_transport_netmic_length 
+3f8e d8c00925 arg mem_mesh_message_nid + 3 ,contr 
+3f8f 98c08c00 iadd contr ,contr 
+3f90 efe20006 ifetch 4 ,contr 
+3f91 e8420006 ifetcht 4 ,contr 
+3f92 98428400 ixor temp ,temp 
+3f93 df200010 arg 16 ,loopcnt 
+3f94 d8c009fd arg mem_mesh_network_dup_cache ,contr 
+
+ali_mesh_network_layer_check_dup_loop:
+3f95 efe20006 ifetch 4 ,contr 
+3f96 98467c00 isub temp ,null 
+3f97 2022fdbc branch disable_user ,zero 
+3f98 c2003f95 loop ali_mesh_network_layer_check_dup_loop 
+3f99 6fe0c86a fetch 1 ,mem_mesh_network_dup_cache_next 
+3f9a 1fe0fe04 pincrease 4 
+3f9b d8a009fd arg mem_mesh_network_dup_cache ,contw 
+3f9c 98a08a00 iadd contw ,contw 
+3f9d e0420005 istoret 4 ,contw 
+3f9e 1fe17e3f and pdata ,0x3f ,pdata 
+3f9f 67e0c86a store 1 ,mem_mesh_network_dup_cache_next 
+3fa0 20600000 rtn 
+
+ali_mesh_network_layer_check_msg:
+3fa1 20407dba call enable_user 
+3fa2 684a8924 fetcht 5 ,mem_mesh_message_seq 
+3fa3 df200010 arg 16 ,loopcnt 
+3fa4 d8c00a3d arg mem_mesh_network_msg_cache ,contr 
+
+ali_mesh_network_layer_check_msg_loop:
+3fa5 efe28006 ifetch 5 ,contr 
+3fa6 98467c00 isub temp ,null 
+3fa7 2022fdbc branch disable_user ,zero 
+3fa8 c2003fa5 loop ali_mesh_network_layer_check_msg_loop 
+3fa9 6fe0c86b fetch 1 ,mem_mesh_network_msg_cache_next 
+3faa 1fe0fe01 pincrease 1 
+3fab 1fe17e0f and pdata ,0x0f ,pdata 
+3fac 67e0c86b store 1 ,mem_mesh_network_msg_cache_next 
+3fad 1feffe05 mul32 pdata ,5 ,pdata 
+3fae d8a00a3d arg mem_mesh_network_msg_cache ,contw 
+3faf 98a08a00 iadd contw ,contw 
+3fb0 e0428005 istoret 5 ,contw 
+3fb1 20600000 rtn 
+
+ali_mesh_network_layer_store_proxy_unicast_address:
+3fb2 6fe08951 fetch 1 ,mem_mesh_network_packet_type 
+3fb3 c1000000 rtneq mesh_message_tmall 
+3fb4 6fe10927 fetch 2 ,mem_mesh_message_src 
+3fb5 67e1486c store 2 ,mem_mesh_network_proxy_unicast_address 
+3fb6 20600000 rtn 
+
+ali_mesh_network_layer_recevice_network_pdu_decrypt_netmic32:
+3fb7 20404005 call ali_mesh_network_load_network_nonce_and_encryptionkey 
+3fb8 6fe08921 fetch 1 ,mem_mesh_message_transport_netmic_length 
+3fb9 d8400929 arg mem_mesh_message_dst ,temp 
+3fba 20403ca7 call ali_ccm_decrypt 
+3fbb 24628000 nrtn zero 
+
+ali_mesh_network_layer_recevice_network_pdu_check_dst:
+3fbc 47584036 bpatchx patch36_0 ,mem_patch36 
+3fbd 6fe08951 fetch 1 ,mem_mesh_network_packet_type 
+3fbe 1fe67c02 sub pdata ,mesh_message_proxy ,null 
+3fbf 2042c106 call ali_mesh_white_filter_check ,zero 
+3fc0 68490929 fetcht 2 ,mem_mesh_message_dst 
+3fc1 20403f26 call ali_mesh_more_element_check_unicast_address 
+3fc2 20543fcf call ali_mesh_more_found_unicast_address_element ,user 
+3fc3 20343fea branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,user 
+3fc4 df20001d arg 29 ,loopcnt 
+3fc5 d8a007ab arg mem_mesh_message_nid_temp ,contw 
+3fc6 d8c00922 arg mem_mesh_message_nid ,contr 
+3fc7 20407cda call memcpy 
+3fc8 20403fd3 call ali_mesh_network_layer_recevice_network_pdu_check_dst_group_address 
+3fc9 df20001d arg 29 ,loopcnt 
+3fca d8c007ab arg mem_mesh_message_nid_temp ,contr 
+3fcb d8a00922 arg mem_mesh_message_nid ,contw 
+3fcc 20407cda call memcpy 
+3fcd 6fe14842 fetch 2 ,mem_mesh_cb_network_relay 
+3fce 20207d79 branch callback_func 
+
+ali_mesh_more_found_unicast_address_element:
+3fcf 70095201 jam 1 ,mem_mesh_receive_message_count 
+3fd0 6fe14995 fetch 2 ,mem_mesh_send_message_src 
+3fd1 67e10953 store 2 ,mem_mesh_receive_message_first_unicast_address 
+3fd2 20600000 rtn 
+
+ali_mesh_network_layer_recevice_network_pdu_check_dst_group_address:
+3fd3 20403f36 call ali_mesh_more_element_check_group_address 
+3fd4 20343fea branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,user 
+3fd5 704868ff jam 0xff ,mem_mesh_receive_group_address 
+3fd6 5800ffcf setarg group_address_0xcfff_little_endian 
+3fd7 98467c00 isub temp ,null 
+3fd8 2022bfea branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,zero 
+3fd9 5800ffff setarg group_address_0xffff_little_endian 
+3fda 98467c00 isub temp ,null 
+3fdb 2022bfea branch ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq ,zero 
+3fdc 20600000 rtn 
+
+ali_mesh_network_layer_check_nid_ivi:
+3fdd 20407dbc call disable_user 
+3fde 68488922 fetcht 1 ,mem_mesh_message_nid 
+3fdf 1851fe00 rshift4 temp ,pdata 
+3fe0 1fe97e00 rshift3 pdata ,pdata 
+3fe1 6a20c871 fetchr rega ,1 ,mem_mesh_iv_index + 3 
+3fe2 1a212201 and rega ,0x01 ,rega 
+3fe3 9a267c00 isub rega ,null 
+3fe4 24628000 nrtn zero 
+3fe5 1841047f and temp ,0x7f ,temp 
+3fe6 6fe0c74d fetch 1 ,mem_k2_nid 
+3fe7 98467c00 isub temp ,null 
+3fe8 24628000 nrtn zero 
+3fe9 20207dba branch enable_user 
+
+ali_mesh_network_layer_recevice_network_pdu_check_src_and_seq:
+3fea da204872 arg mem_mesh_tmall_cache_start ,rega 
+3feb df20000a arg cache_space_num ,loopcnt 
+
+ali_mesh_network_layer_raverse_src_seq_cache:
+3fec 68490927 fetcht 2 ,mem_mesh_message_src 
+3fed efe10011 ifetch 2 ,rega 
+3fee 203a3ff4 branch ali_mesh_network_layer_find_empty_space ,blank 
+3fef 98467c00 isub temp ,null 
+3ff0 2022bff5 branch ali_mesh_network_layer_find_src_space ,zero 
+3ff1 1a20a205 increase cache_space_size ,rega 
+3ff2 c2003fec loop ali_mesh_network_layer_raverse_src_seq_cache 
+3ff3 da204872 arg mem_mesh_tmall_cache_start ,rega 
+
+ali_mesh_network_layer_find_empty_space:
+3ff4 e0410011 istoret 2 ,rega 
+
+ali_mesh_network_layer_find_src_space:
+3ff5 6049094c storet 2 ,mem_mesh_send_message_dst 
+3ff6 1a20a602 add rega ,2 ,regc 
+3ff7 efe18013 ifetch 3 ,regc 
+3ff8 67e1894e store 3 ,mem_mesh_last_message_seq 
+3ff9 20203ffa branch ali_mesh_network_layer_recevice_network_pdu_check_seq_legal 
+
+ali_mesh_network_layer_recevice_network_pdu_check_seq_legal:
+3ffa 20404002 call ali_mesh_inverse_seq 
+3ffb 6fe1894e fetch 3 ,mem_mesh_last_message_seq 
+3ffc 68498924 fetcht 3 ,mem_mesh_message_seq 
+3ffd 98467c00 isub temp ,null 
+3ffe 20610000 rtn positive 
+3fff e0418013 istoret 3 ,regc 
+4000 20404002 call ali_mesh_inverse_seq 
+4001 20203e6b branch ali_mesh_lower_transport_layer_receive_lower_transport_pdu 
+
+ali_mesh_inverse_seq:
+4002 da200924 arg mem_mesh_message_seq ,rega 
+4003 df200003 arg 3 ,loopcnt 
+4004 20207cb1 branch inverse_data 
+
+ali_mesh_network_load_network_nonce_and_encryptionkey:
+4005 20404008 call ali_mesh_network_layer_load_network_nonce 
+
+ali_mesh_upper_transport_layer_load_encryptionkey:
+4006 d8c0475e arg mem_k2_encryptionkey ,contr 
+4007 2020735f branch load_key 
+
+ali_mesh_network_layer_load_network_nonce:
+4008 d8a0093f arg mem_mesh_network_nonce ,contw 
+4009 58000000 setarg network_nonce 
+400a e7e08005 istore 1 ,contw 
+400b 6fe30923 fetch 6 ,mem_mesh_message_ttl 
+400c e7e40005 istore 8 ,contw 
+400d 20204069 branch mesh_generate_nonce 
+
+ali_mesh_network_store_in_mem:
+400e 1840fff4 add temp ,-12 ,pdata 
+400f 67e08921 store 1 ,mem_mesh_message_transport_netmic_length 
+4010 df20001d arg 29 ,loopcnt 
+4011 d8a00922 arg mem_mesh_message_nid ,contw 
+4012 20407ca1 call clear_mem 
+4013 1840f3ff add temp ,-1 ,loopcnt 
+4014 d8a00922 arg mem_mesh_message_nid ,contw 
+4015 20207ccc branch memcpy_fast 
+
+ali_mesh_network_layer_relay_access_message:
+4016 2040406e call ali_mesh_network_layer_init_queue_param 
+4017 20404036 call ali_mesh_network_layer_check_relay_states 
+4018 24740000 nrtn user 
+4019 2040404a call ali_mesh_network_layer_encrypt_relay_package 
+401a 7007871e jam adv_relay_mesh_message_duration ,mem_mesh_queue_ele_duration 
+401b 6fe08921 fetch 1 ,mem_mesh_message_transport_netmic_length 
+401c 1fe0840d add pdata ,13 ,temp 
+401d 60488789 storet 1 ,mem_mesh_queue_ele_len 
+401e 184085ff increase -1 ,temp 
+401f e0408005 istoret 1 ,contw 
+4020 5800002a setarg gap_adtype_mesh_message 
+4021 e7e08005 istore 1 ,contw 
+4022 1840f3ff add temp ,-1 ,loopcnt 
+4023 6fe38922 fetch 7 ,mem_mesh_message_nid 
+4024 d8c00922 arg mem_mesh_message_nid ,contr 
+4025 20407cda call memcpy 
+4026 da200787 arg mem_mesh_queue_ele_temp ,rega 
+4027 204078b2 call queue_push 
+4028 2040402b call ali_mesh_network_layer_white_list_fliter 
+4029 24740000 nrtn user 
+402a 20203961 branch ali_mesh_bearer_layer_gatt_send_packet_by_network_layer 
+
+ali_mesh_network_layer_white_list_fliter:
+402b 684907b2 fetcht 2 ,mem_mesh_message_dst_temp 
+
+ali_mesh_network_layer_white_list_fliter_check:
+402c 20407dbc call disable_user 
+402d 6fe08978 fetch 1 ,mem_mesh_white_list_num 
+402e 207a0000 rtn blank 
+402f 98007200 iforce loopcnt 
+4030 d8c00968 arg mem_mesh_white_list ,contr 
+
+ali_mesh_network_layer_white_list_fliter_check_loop:
+4031 efe10006 ifetch 2 ,contr 
+4032 98467c00 isub temp ,null 
+4033 2022fdba branch enable_user ,zero 
+4034 c2004031 loop ali_mesh_network_layer_white_list_fliter_check_loop 
+4035 20600000 rtn 
+
+ali_mesh_network_layer_check_relay_states:
+4036 20407dbc call disable_user 
+4037 6fe08951 fetch 1 ,mem_mesh_network_packet_type 
+4038 c1008000 rtneq mesh_message_app 
+4039 6fe1484c fetch 2 ,mem_mesh_core_feature 
+403a c3808000 rtnbit1 mesh_feature_disable_relay 
+403b 6fe0c7e4 fetch 1 ,mem_mesh_provisioned_flag 
+403c c1800000 rtnne paired_status 
+403d 68490927 fetcht 2 ,mem_mesh_message_src 
+403e 20403f26 call ali_mesh_more_element_check_unicast_address 
+403f 20347dbc branch disable_user ,user 
+4040 2040404f call ali_mesh_network_layer_check_network_mic_cache 
+4041 24740000 nrtn user 
+4042 6fe08923 fetch 1 ,mem_mesh_message_ttl 
+4043 203a7dbc branch disable_user ,blank 
+4044 1fe0ffff pincrease -1 
+4045 203a7dbc branch disable_user ,blank 
+4046 67e08923 store 1 ,mem_mesh_message_ttl 
+4047 580048cc setarg mem_mesh_network_relay_queue 
+4048 67e143fb store 2 ,mem_queue_ptr 
+4049 20207dba branch enable_user 
+
+ali_mesh_network_layer_encrypt_relay_package:
+404a 20404005 call ali_mesh_network_load_network_nonce_and_encryptionkey 
+404b 6fe08921 fetch 1 ,mem_mesh_message_transport_netmic_length 
+404c d8400929 arg mem_mesh_message_dst ,temp 
+404d 20403c86 call ali_ccm_encrypt 
+404e 20203bcf branch ali_mesh_encrypt_obfuscation_deceypt_recevie_message 
+
+ali_mesh_network_layer_check_network_mic_cache:
+404f 580048a4 setarg mem_mesh_transport_message_mic_cache 
+4050 67e10910 store 2 ,mem_mesh_mic_cache_ptr 
+4051 202039fb branch ali_mesh_base_adt_cache 
+
+ali_mesh_network_layer_send_access_message:
+4052 4758c036 bpatchx patch36_1 ,mem_patch36 
+4053 20404056 call ali_mesh_network_layer_send_access_message_encrypt_netmic 
+4054 2040405f call ali_mesh_network_layer_send_access_message_encrypt_obfuscation 
+4055 2020394c branch ali_mesh_bearer_layer_send_packet_by_network_layer 
+
+ali_mesh_network_layer_send_access_message_encrypt_netmic:
+4056 6fe08916 fetch 1 ,mem_mesh_lower_transport_layer_payload_len 
+4057 1fe0a202 add pdata ,2 ,rega 
+4058 1fe0fe04 pincrease 4 
+4059 67e08916 store 1 ,mem_mesh_lower_transport_layer_payload_len 
+405a d840499f arg mem_mesh_send_upper_layer_dst ,temp 
+405b 2020405c branch ali_mesh_network_layer_encrypt_by_network_nonce 
+
+ali_mesh_network_layer_encrypt_by_network_nonce:
+405c 20404005 call ali_mesh_network_load_network_nonce_and_encryptionkey 
+405d 1a227e00 copy rega ,pdata 
+405e 20203c86 branch ali_ccm_encrypt 
+
+ali_mesh_network_layer_send_access_message_encrypt_obfuscation:
+405f 20203bcc branch ali_mesh_encrypt_obfuscation_deceypt_send_message 
+
+ali_mesh_network_layer_check_gatt_relay_packet:
+4060 20403e5e call ali_mesh_network_layer_init_gatt_queue_param 
+4061 204078fa call queue_empty 
+4062 207a0000 rtn blank 
+4063 20402a28 call le_fifo_check_nearly_full 
+4064 247a0000 nrtn blank 
+4065 da200787 arg mem_mesh_queue_ele_temp ,rega 
+4066 204078ca call queue_pop 
+4067 24740000 nrtn user 
+4068 202040f0 branch ali_mesh_send_ble_data 
+
+mesh_generate_nonce:
+4069 6fe2486e fetch 4 ,mem_mesh_iv_index 
+406a e7e20005 istore 4 ,contw 
+406b 18a0fff3 add contw ,-13 ,pdata 
+406c 67e108f1 store 2 ,mem_nonce_ptr 
+406d 20600000 rtn 
+
+ali_mesh_network_layer_init_queue_param:
+406e 580048cc setarg mem_mesh_network_relay_queue_each_size 
+406f 67e143fb store 2 ,mem_queue_ptr 
+4070 20600000 rtn 
+
+ali_mesh_network_layer_queue_init:
+4071 2040406e call ali_mesh_network_layer_init_queue_param 
+4072 202078ad branch queue_init 
+
+ali_mesh_ble_adv:
+4073 204029c9 call le_set_config_more_data 
+4074 6fe0c7e4 fetch 1 ,mem_mesh_provisioned_flag 
+4075 c000c083 beq unprovisioned_beacon_status ,ali_mesh_ble_adv_mesh_beacon 
+4076 c0004079 beq paired_status ,ali_mesh_ble_adv_network_id 
+4077 c002c079 beq wait_receive_appkey ,ali_mesh_ble_adv_network_id 
+4078 20600000 rtn 
+
+ali_mesh_ble_adv_network_id:
+4079 38010214 setsect 0 ,0x10214 
+407a 3804c080 setsect 1 ,0xc080 
+407b 380a8030 setsect 2 ,0x28030 
+407c 380c3060 setsect 3 ,0x3060 
+407d 67e4c348 store 9 ,mem_le_adv_data_len 
+407e 58182816 setarg 0x182816 
+407f e7e20005 istore 4 ,contw 
+4080 6fe447dc fetch 8 ,mem_mesh_network_id 
+4081 e7e40005 istore 8 ,contw 
+4082 20600000 rtn 
+
+ali_mesh_ble_adv_mesh_beacon:
+4083 20403ce0 call ali_mesh_config_device_uuid_by_three_tuple 
+4084 3801021d setsect 0 ,0x1021d 
+4085 3804c080 setsect 1 ,0xc080 
+4086 380a7030 setsect 2 ,0x27030 
+4087 380c5460 setsect 3 ,0x5460 
+4088 67e4c348 store 9 ,mem_le_adv_data_len 
+4089 58182716 setarg 0x182716 
+408a e7e18005 istore 3 ,contw 
+408b d8c008ff arg mem_mesh_device_uuid ,contr 
+408c 20407c8f call memcpy16 
+408d 6fe147ea fetch 2 ,mem_mesh_oob_information 
+408e e7e10005 istore 2 ,contw 
+408f 20600000 rtn 
+
+mesh_le_receive_data:
+4090 47594036 bpatchx patch36_2 ,mem_patch36 
+4091 6fe14398 fetch 2 ,mem_le_att_handle 
+4092 c0074095 beq mesh_proxy_data_in_handle ,ali_mesh_receive_ble_data_proxy_data_in 
+4093 c00a40d6 beq mesh_provisioning_data_in_handle ,ali_mesh_receive_ble_data_provisioning_data_in 
+4094 20600000 rtn 
+
+ali_mesh_receive_ble_data_proxy_data_in:
+4095 1a420400 copy regb ,temp 
+4096 efe08011 ifetch 1 ,rega 
+4097 c00040e1 beq mesh_proxy_message_type_network_pdu ,ali_mesh_network_layer_recevice_network_pdu_proxy_control 
+4098 c001409a beq mesh_proxy_message_type_proxy_configuration ,ali_mesh_network_layer_recevice_proxy_configuration_messages 
+4099 20600000 rtn 
+
+ali_mesh_network_layer_recevice_proxy_configuration_messages:
+409a 2040400e call ali_mesh_network_store_in_mem 
+409b 6fe08921 fetch 1 ,mem_mesh_message_transport_netmic_length 
+409c 1fe0fffc pincrease -4 
+409d 67e08921 store 1 ,mem_mesh_message_transport_netmic_length 
+409e 20403fdd call ali_mesh_network_layer_check_nid_ivi 
+409f 24740000 nrtn user 
+40a0 20403bcf call ali_mesh_encrypt_obfuscation_deceypt_recevie_message 
+40a1 6fe08923 fetch 1 ,mem_mesh_message_ttl 
+40a2 c283c0a4 bbit1 bit_ctl ,ali_mesh_recevice_proxy_configuration_messages_decrypt 
+40a3 20600000 rtn 
+
+ali_mesh_recevice_proxy_configuration_messages_decrypt:
+40a4 204040da call ali_mesh_network_load_proxy_nonce_and_encryptionkey 
+40a5 6fe08921 fetch 1 ,mem_mesh_message_transport_netmic_length 
+40a6 d8400929 arg mem_mesh_message_dst ,temp 
+40a7 20403ca5 call ali_ccm_decrypt_64bit 
+40a8 24628000 nrtn zero 
+40a9 20404106 call ali_mesh_white_filter_check 
+40aa 6fe0892b fetch 1 ,mem_mesh_message_proxy_transportpdu_opcode 
+40ab c00040bd beq proxy_opcode_set_filter_type ,ali_mesh_proxy_configuration_message_set_filter_type 
+40ac c000c0ae beq proxy_opcode_add_addr_to_filter ,ali_mesh_proxy_configuration_message_add_addr_to_filter 
+40ad 20600000 rtn 
+
+ali_mesh_proxy_configuration_message_add_addr_to_filter:
+40ae 6f208921 fetchr loopcnt ,1 ,mem_mesh_message_transport_netmic_length 
+40af 1f20f3fd increase -3 ,loopcnt 
+40b0 1f237e00 rshift loopcnt ,pdata 
+40b1 68490978 fetcht 2 ,mem_mesh_white_list_num 
+40b2 9840fe00 iadd temp ,pdata 
+40b3 1fe67c08 sub pdata ,8 ,null 
+40b4 24610000 nrtn positive 
+40b5 67e10978 store 2 ,mem_mesh_white_list_num 
+40b6 d8a00968 arg mem_mesh_white_list ,contw 
+40b7 1843fe00 lshift temp ,pdata 
+40b8 98a08a00 iadd contw ,contw 
+40b9 d8c0092c arg mem_mesh_message_proxy_transportpdu_parameters ,contr 
+40ba 20407cda call memcpy 
+40bb 6fe0897a fetch 1 ,mem_mesh_addressed_filter_type 
+40bc 202040bf branch ali_mesh_proxy_configuration_message_filter_status 
+
+ali_mesh_proxy_configuration_message_set_filter_type:
+40bd efe08006 ifetch 1 ,contr 
+40be 67e0897a store 1 ,mem_mesh_addressed_filter_type 
+
+ali_mesh_proxy_configuration_message_filter_status:
+40bf 67e0c9a2 store 1 ,mem_mesh_filter_status_message_filtertype 
+40c0 6fe10978 fetch 2 ,mem_mesh_white_list_num 
+40c1 1ff0fe00 byteswap pdata ,pdata 
+40c2 67e149a3 store 2 ,mem_mesh_filter_status_message_listsize 
+40c3 7049a103 jam proxy_opcode_filter_status ,mem_mesh_filter_status_message_opcode 
+40c4 6fe48922 fetch 9 ,mem_mesh_message_nid 
+40c5 67e4c998 store 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+40c6 6fe14995 fetch 2 ,mem_mesh_send_message_src 
+40c7 67e1499d store 2 ,mem_mesh_send_upper_layer_src 
+40c8 20404253 call ali_mesh_upper_transport_layer_send_access_message_calc_seq 
+40c9 20404267 call ali_mesh_upper_transport_layer_send_access_message_add_seq 
+40ca 204040da call ali_mesh_network_load_proxy_nonce_and_encryptionkey 
+40cb 58000006 setarg 6 
+40cc d840499f arg mem_mesh_send_upper_layer_dst ,temp 
+40cd 20403c84 call ali_ccm_encrypt_64bit 
+40ce 2040405f call ali_mesh_network_layer_send_access_message_encrypt_obfuscation 
+40cf da200016 arg 22 ,rega 
+40d0 d8400010 arg mesh_proxy_data_out_handle ,temp 
+40d1 20402dee call le_att_malloc_tx_notify 
+40d2 58000002 setarg mesh_proxy_message_type_proxy_configuration 
+40d3 e7e08005 istore 1 ,contw 
+40d4 d8c04998 arg mem_mesh_send_upper_layer_ivi_and_nid ,contr 
+40d5 20207c8d branch memcpy32 
+
+ali_mesh_receive_ble_data_provisioning_data_in:
+40d6 7007aa02 jam mesh_message_proxy ,mem_mesh_fast_pair_packet_type 
+40d7 1a420400 copy regb ,temp 
+40d8 1a220c00 copy rega ,contr 
+40d9 20203cfa branch ali_mesh_receive_adtype_manufacturer_specific 
+
+ali_mesh_network_load_proxy_nonce_and_encryptionkey:
+40da d8a0095b arg mem_mesh_proxy_nonce ,contw 
+40db 58000003 setarg proxy_nonce 
+40dc e7e10005 istore 2 ,contw 
+40dd 6fe28924 fetch 5 ,mem_mesh_message_seq 
+40de e7e38005 istore 7 ,contw 
+40df 20404069 call mesh_generate_nonce 
+40e0 20204006 branch ali_mesh_upper_transport_layer_load_encryptionkey 
+
+ali_mesh_network_layer_recevice_network_pdu_proxy_control:
+40e1 70095102 jam mesh_message_proxy ,mem_mesh_network_packet_type 
+40e2 20203f7d branch ali_mesh_network_layer_recevice_network_pdu 
+
+ali_mesh_proxy_process_bb_event:
+40e3 1a627e00 copy regc ,pdata 
+40e4 c00ac0e8 beq bt_evt_le_disconnected ,mesh_ble_start_adv 
+40e5 c00a40e7 beq bt_evt_le_connected ,app_ble_conn_event 
+40e6 20600000 rtn 
+
+app_ble_conn_event:
+40e7 202040eb branch ali_mesh_proxy_white_list_clear 
+
+mesh_ble_start_adv:
+40e8 58000000 setarg 0 
+40e9 67e1486c store 2 ,mem_mesh_network_proxy_unicast_address 
+40ea 20204317 branch app_ble_start_adv 
+
+ali_mesh_proxy_white_list_clear:
+40eb 58000000 setarg 0 
+40ec 67e10978 store 2 ,mem_mesh_white_list_num 
+40ed d8a00968 arg mem_mesh_white_list ,contw 
+40ee df200010 arg 16 ,loopcnt 
+40ef 20207ca3 branch memset0 
+
+ali_mesh_send_ble_data:
+40f0 20402a28 call le_fifo_check_nearly_full 
+40f1 247a0000 nrtn blank 
+40f2 6fe08789 fetch 1 ,mem_mesh_queue_ele_len 
+40f3 1fe0a3ff add pdata ,-1 ,rega 
+40f4 d8400010 arg mesh_proxy_data_out_handle ,temp 
+40f5 20402dee call le_att_malloc_tx_notify 
+40f6 58000000 setarg mesh_proxy_message_type_network_pdu 
+40f7 e7e08005 istore 1 ,contw 
+40f8 d8c0078c arg mem_mesh_queue_ele_payload + 2 ,contr 
+40f9 20207c8d branch memcpy32 
+
+ali_mesh_send_pairing_data:
+40fa 6fe087aa fetch 1 ,mem_mesh_fast_pair_packet_type 
+40fb c1000000 rtneq mesh_message_tmall 
+40fc 6fe144e9 fetch 2 ,mem_ui_state_map 
+40fd c4048000 rtnbit0 ui_state_ble_connected 
+40fe 20402a28 call le_fifo_check_nearly_full 
+40ff 247a0000 nrtn blank 
+4100 6fe0c62a fetch 1 ,mem_mesh_adv_data_len 
+4101 1fe0a3fb add pdata ,-5 ,rega 
+4102 d8400016 arg mesh_provisioning_data_out_handle ,temp 
+4103 20402dee call le_att_malloc_tx_notify 
+4104 d8c04630 arg mem_mesh_adv_data + 5 ,contr 
+4105 20207c8d branch memcpy32 
+
+ali_mesh_white_filter_check:
+4106 6fe10968 fetch 2 ,mem_mesh_white_list 
+4107 247a0000 nrtn blank 
+4108 6fe10927 fetch 2 ,mem_mesh_message_src 
+4109 67e10968 store 2 ,mem_mesh_white_list 
+
+ali_mesh_white_list_num_increase:
+410a 6fe10978 fetch 2 ,mem_mesh_white_list_num 
+410b 1fe0fe01 pincrease 1 
+410c 67e10978 store 2 ,mem_mesh_white_list_num 
+410d 20600000 rtn 
+
+sha_endian_swap2:
+410e efe20006 ifetch 4 ,contr 
+410f 18002204 force 4 ,rega 
+4110 18a08a03 increase 3 ,contw 
+
+sha_endian_loop:
+4111 e7e08005 istore 1 ,contw 
+4112 1fecfe00 rshift8 pdata ,pdata 
+4113 18a08bfe increase -2 ,contw 
+4114 1a20a3ff increase -1 ,rega 
+4115 2422c111 nbranch sha_endian_loop ,zero 
+4116 18a08a05 increase 5 ,contw 
+4117 c200410e loop sha_endian_swap2 
+4118 20600000 rtn 
+
+sha_getw:
+4119 18ebfe00 lshift2 queue ,pdata 
+411a 99608c00 iadd timeup ,contr 
+411b efe20006 ifetch 4 ,contr 
+411c 20600000 rtn 
+
+sha_r:
+411d 18006010 force 16 ,alarm 
+411e d9600231 arg mem_dat ,timeup 
+
+sha_r_loop:
+411f 1e008ff9 add alarm ,-7 ,queue 
+4120 20404119 call sha_getw 
+4121 98000400 iforce temp 
+4122 1e008ff0 add alarm ,-16 ,queue 
+4123 20404119 call sha_getw 
+4124 98408400 iadd temp ,temp 
+4125 1e008ffe add alarm ,-2 ,queue 
+4126 20404119 call sha_getw 
+4127 1fee7e01 shasx pdata ,1 ,pdata 
+4128 98408400 iadd temp ,temp 
+4129 1e008ff1 add alarm ,-15 ,queue 
+412a 20404119 call sha_getw 
+412b 1fee7e00 shasx pdata ,0 ,pdata 
+412c 98408400 iadd temp ,temp 
+412d 1e0bfe00 lshift2 alarm ,pdata 
+412e 99608a00 iadd timeup ,contw 
+412f e0420005 istoret 4 ,contw 
+4130 1e00e001 increase 1 ,alarm 
+4131 2e01fe40 compare 64 ,alarm ,0xff 
+4132 2420c11f nbranch sha_r_loop ,true 
+4133 20600000 rtn 
+
+sha_init:
+4134 d8c00549 arg memh0 ,contr 
+4135 18007007 force 7 ,regext_index 
+
+sha_init_0:
+4136 efe20006 ifetch 4 ,contr 
+4137 98005e00 iforce regext 
+4138 1f00f1ff increase -1 ,regext_index 
+4139 20214136 branch sha_init_0 ,positive 
+413a 20600000 rtn 
+
+sha:
+413b 4759c036 bpatchx patch36_3 ,mem_patch36 
+413c 2040411d call sha_r 
+413d d8a00331 arg memahbak ,contw 
+413e 18007000 force 0 ,regext_index 
+
+sha_0:
+413f 1de27e00 deposit regext 
+4140 e7e20005 istore 4 ,contw 
+4141 1f00f001 increase 1 ,regext_index 
+4142 2f01fe08 compare 8 ,regext_index ,0xff 
+4143 2420c13f nbranch sha_0 ,true 
+4144 d96095ed arg ble_mesh_sha256_addr ,timeup 
+4145 de000231 arg mem_dat ,alarm 
+4146 18007240 force 64 ,loopcnt 
+
+sha_loop:
+4147 e8420030 ifetcht 4 ,alarm 
+4148 efe2000b ifetch 4 ,timeup 
+4149 19609604 increase 4 ,timeup 
+414a 1e00e004 increase 4 ,alarm 
+414b 9840fe00 iadd temp ,pdata 
+414c 18007007 force 7 ,regext_index 
+414d 9de08400 iadd regext ,temp 
+414e 18007004 force 4 ,regext_index 
+414f 1dee7e03 shasx regext ,3 ,pdata 
+4150 98408400 iadd temp ,temp 
+4151 18007005 force 5 ,regext_index 
+4152 1de27e00 deposit regext 
+4153 18007006 force 6 ,regext_index 
+4154 9de2fe00 ixor regext ,pdata 
+4155 18007004 force 4 ,regext_index 
+4156 9de17e00 iand regext ,pdata 
+4157 18007006 force 6 ,regext_index 
+4158 9de2fe00 ixor regext ,pdata 
+4159 98408400 iadd temp ,temp 
+415a 18007007 force 7 ,regext_index 
+415b 18425e00 copy temp ,regext 
+415c 18007003 force 3 ,regext_index 
+415d 1de27e00 deposit regext 
+415e 9840de00 iadd temp ,regext 
+415f 18007000 force 0 ,regext_index 
+4160 1de27e00 deposit regext 
+4161 18007001 force 1 ,regext_index 
+4162 9de10400 iand regext ,temp 
+4163 9de1fe00 ior regext ,pdata 
+4164 18007002 force 2 ,regext_index 
+4165 9de17e00 iand regext ,pdata 
+4166 98418400 ior temp ,temp 
+4167 18007000 force 0 ,regext_index 
+4168 1dee7e02 shasx regext ,2 ,pdata 
+4169 9840fe00 iadd temp ,pdata 
+416a 18007007 force 7 ,regext_index 
+416b 9de0de00 iadd regext ,regext 
+416c 980efc00 regexrot 
+416d c2004147 loop sha_loop 
+416e d8c00331 arg memahbak ,contr 
+416f 18007000 force 0 ,regext_index 
+
+sha_1:
+4170 efe20006 ifetch 4 ,contr 
+4171 9de0de00 iadd regext ,regext 
+4172 1f00f001 increase 1 ,regext_index 
+4173 2f01fe08 compare 8 ,regext_index ,0xff 
+4174 2420c170 nbranch sha_1 ,true 
+4175 20600000 rtn 
+
+sha_result:
+4176 d8a001bd arg memresult ,contw 
+4177 18007007 force 7 ,regext_index 
+
+sha_regext_save:
+4178 1de27e00 deposit regext 
+4179 e7e20005 istore 4 ,contw 
+417a 1f00f1ff increase -1 ,regext_index 
+417b 20214178 branch sha_regext_save ,positive 
+417c 20600000 rtn 
+
+ali_mesh_upper_transport_layer_receive_unsegmented_access_message:
+417d c3034180 bbit0 transport_head_bit_akf ,ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_device_key 
+
+ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_application_key:
+417e 204041a2 call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key 
+417f 20204182 branch ali_mesh_upper_transport_layer_decrypt_unsegmented_message 
+
+ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_device_key:
+4180 204041af call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key 
+4181 20204182 branch ali_mesh_upper_transport_layer_decrypt_unsegmented_message 
+
+ali_mesh_upper_transport_layer_decrypt_unsegmented_message:
+4182 6fe08921 fetch 1 ,mem_mesh_message_transport_netmic_length 
+4183 1fe0fff9 pincrease -7 
+4184 de00092c arg mem_mesh_message_transport_unsegmented_access_messagepdu ,alarm 
+4185 20407dbc call disable_user 
+4186 20204194 branch ali_mesh_upper_transport_layer_decrypt_message 
+
+ali_mesh_upper_transport_layer_receive_segmented_access_message:
+4187 6fe0892b fetch 1 ,mem_mesh_message_transport_head 
+4188 c303418b bbit0 transport_head_bit_akf ,ali_mesh_uuper_transport_layer_decrypt_segment_access_by_device_key 
+
+ali_mesh_uuper_transport_layer_decrypt_segment_access_by_application_key:
+4189 204041a2 call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key 
+418a 2020418d branch ali_mesh_upper_transport_layer_decrypt_segmented_message 
+
+ali_mesh_uuper_transport_layer_decrypt_segment_access_by_device_key:
+418b 204041af call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key 
+418c 2020418d branch ali_mesh_upper_transport_layer_decrypt_segmented_message 
+
+ali_mesh_upper_transport_layer_decrypt_segmented_message:
+418d 6fe0c969 fetch 1 ,mem_mesh_aszmic 
+418e 245a7dba ncall enable_user ,blank 
+418f 205a7dbc call disable_user ,blank 
+4190 6fe0c862 fetch 1 ,mem_mesh_segmented_access_message_current_length 
+4191 1fe0fffc pincrease -4 
+4192 70486200 jam 0 ,mem_mesh_segmented_access_message_current_length 
+4193 de004b3c arg mem_mesh_segmented_access_message_segment ,alarm 
+
+ali_mesh_upper_transport_layer_decrypt_message:
+4194 1e020400 copy alarm ,temp 
+4195 2040419c call ali_mesh_upper_transport_layer_decrypt_message_decrypt_transmic 
+4196 24628000 nrtn zero 
+4197 2040419f call ali_mesh_upper_transport_layer_check_transport_mic_cache 
+4198 24740000 nrtn user 
+4199 6fe108f4 fetch 2 ,mem_ccm_data_ptr 
+419a 1fe26000 copy pdata ,alarm 
+419b 20203728 branch ali_mesh_access_layer_resolve_message 
+
+ali_mesh_upper_transport_layer_decrypt_message_decrypt_transmic:
+419c 24343ca7 nbranch ali_ccm_decrypt ,user 
+419d 1fe0fffc pincrease -4 
+419e 20203ca5 branch ali_ccm_decrypt_64bit 
+
+ali_mesh_upper_transport_layer_check_transport_mic_cache:
+419f 5800496a setarg mem_mesh_access_message_mic_cache 
+41a0 67e10910 store 2 ,mem_mesh_mic_cache_ptr 
+41a1 202039fb branch ali_mesh_base_adt_cache 
+
+ali_mesh_upper_transport_layer_load_application_nonce_and_application_key:
+41a2 204041a5 call ali_mesh_upper_transport_layer_load_application_nonce 
+
+ali_mesh_upper_transport_layer_load_application_key:
+41a3 d8c04959 arg mem_mesh_application_key ,contr 
+41a4 2020735f branch load_key 
+
+ali_mesh_upper_transport_layer_load_application_nonce:
+41a5 d8a0093f arg mem_mesh_application_nonce ,contw 
+41a6 58000001 setarg application_nonce 
+41a7 e7e08005 istore 1 ,contw 
+41a8 6fe0c969 fetch 1 ,mem_mesh_aszmic 
+41a9 d8400000 arg 0 ,temp 
+41aa 7d3a0407 nsetflag blank ,7 ,temp 
+41ab e0408005 istoret 1 ,contw 
+41ac 6fe38924 fetch 7 ,mem_mesh_message_seq 
+41ad e7e38005 istore 7 ,contw 
+41ae 20204069 branch mesh_generate_nonce 
+
+ali_mesh_upper_transport_layer_load_device_nonce_and_device_key:
+41af 204041b2 call ali_mesh_upper_transport_layer_load_device_nonce 
+
+ali_mesh_upper_transport_layer_load_device_key:
+41b0 d8c046a0 arg mem_mesh_device_key ,contr 
+41b1 2020735f branch load_key 
+
+ali_mesh_upper_transport_layer_load_device_nonce:
+41b2 d8a0093f arg mem_mesh_device_nonce ,contw 
+41b3 58000002 setarg device_nonce 
+41b4 202041a7 branch ali_mesh_upper_transport_layer_load_application_nonce + 2 
+
+ali_mesh_upper_transport_layer_send_access_message:
+
+ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer:
+41b5 475a4036 bpatchx patch36_4 ,mem_patch36 
+41b6 2040425b call ali_mesh_upper_transport_layer_send_access_message_add_nid_src_ttl_seq_dst 
+41b7 204041bd call ali_mesh_upper_transport_layer_store_packet_header 
+41b8 20740000 rtn user 
+41b9 204041d0 call ali_mesh_upper_transport_layer_store_unsegment_msg_original_access_pdu 
+41ba 20404292 call ali_mesh_upper_transport_layer_init_queue_param 
+41bb da200983 arg mem_mesh_upper_tran_layer_queue_temp ,rega 
+41bc 202078b2 branch queue_push 
+
+ali_mesh_upper_transport_layer_store_packet_header:
+41bd 20407dbc call disable_user 
+41be d8400001 arg upper_retry_count_status ,temp 
+41bf 6fe08951 fetch 1 ,mem_mesh_network_packet_type 
+41c0 1fe67c02 sub pdata ,mesh_message_proxy ,null 
+41c1 79228407 setflag zero ,bit_upper_flag_proxy_control ,temp 
+41c2 60488983 storet 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+41c3 6fe4c998 fetch 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+41c4 67e48987 store 9 ,mem_mesh_upper_tran_layer_temp_packet_header_ivi_nid 
+41c5 6fe08723 fetch 1 ,mem_mesh_access_layer_payload_vendor_command 
+41c6 c1ea0000 rtnne vendor_message_attr_indication 
+41c7 6fe0c7e4 fetch 1 ,mem_mesh_provisioned_flag 
+41c8 c0807dba bne paired_status ,enable_user 
+41c9 6fe08726 fetch 1 ,mem_mesh_access_layer_payload_vendor_tid 
+41ca 67e08986 store 1 ,mem_mesh_upper_tran_layer_temp_packet_tid 
+41cb 6fe08983 fetch 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+41cc 1fe0fe01 pincrease upper_retry_count_indication 
+41cd 79207e05 set1 bit_upper_flag_vendor_indication ,pdata 
+41ce 67e08983 store 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+41cf 20600000 rtn 
+
+ali_mesh_upper_transport_layer_store_unsegment_msg_original_access_pdu:
+41d0 6fe08722 fetch 1 ,mem_mesh_access_layer_payload_len 
+41d1 1fe27200 copy pdata ,loopcnt 
+41d2 67e08990 store 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+41d3 6fe0892b fetch 1 ,mem_mesh_message_transport_head 
+41d4 67e08991 store 1 ,mem_mesh_upper_tran_layer_temp_pakcet_akf_aid 
+41d5 d8a00996 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contw 
+41d6 d8c00723 arg mem_mesh_access_layer_payload ,contr 
+41d7 20207cda branch memcpy 
+
+ali_mesh_upper_transport_layer_control_packet:
+
+ali_mesh_upper_transport_layer_control_packet_deal:
+41d8 6fe0c9b5 fetch 1 ,mem_mesh_upper_tran_layer_packet_advertising 
+41d9 247a0000 nrtn blank 
+41da 20404292 call ali_mesh_upper_transport_layer_init_queue_param 
+41db da200983 arg mem_mesh_upper_tran_layer_queue_temp ,rega 
+41dc 204078dc call queue_get_new_ele 
+41dd 24740000 nrtn user 
+41de 68488983 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+41df 18417e0f and temp ,data_upper_flag_max_retry_count ,pdata 
+41e0 203a420b branch ali_mesh_upper_transport_layer_queue_pop ,blank 
+41e1 7049b501 jam packet_in_bearer ,mem_mesh_upper_tran_layer_packet_advertising 
+41e2 204041fc call ali_mesh_upper_transport_layer_control_packet_load_header 
+41e3 68488983 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+41e4 20404202 call ali_mesh_upper_transport_layer_control_packet_load_app_control 
+41e5 67e0c9b6 store 1 ,mem_mesh_upper_tran_layer_packet_tid 
+41e6 6fe0c9b7 fetch 1 ,mem_mesh_upper_tran_layer_packet_type 
+41e7 284ffe07 isolate1 bit_upper_flag_proxy_control ,temp 
+41e8 7920fe02 setflag true ,bit_uuper_tran_proxy_message ,pdata 
+41e9 67e0c9b7 store 1 ,mem_mesh_upper_tran_layer_packet_type 
+41ea 79200404 set1 bit_upper_flag_retransmit ,temp 
+41eb 184085ff increase -1 ,temp 
+41ec e0408012 istoret 1 ,regb 
+41ed 68488983 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_flag 
+41ee 284ffe04 isolate1 bit_upper_flag_retransmit ,temp 
+41ef 2420c20f nbranch ali_mesh_upper_transport_layer_control_packet_encrypt_access ,true 
+41f0 68488990 fetcht 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+41f1 60488722 storet 1 ,mem_mesh_upper_transport_layer_payload_len 
+41f2 18427200 copy temp ,loopcnt 
+41f3 d8a00723 arg mem_mesh_access_layer_payload ,contw 
+41f4 d8c00996 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contr 
+41f5 20407cda call memcpy 
+41f6 18467c0f sub temp ,unsegmented_access_message_max_upper_transport_access_pdu_len ,null 
+41f7 242141f9 nbranch ali_mesh_upper_transport_layer_control_packet_segment_msg ,positive 
+
+ali_mesh_upper_transport_layer_control_packet_unsegment_msg:
+41f8 20203ec1 branch ali_mesh_lower_transport_layer_send_unsegmented_access_message 
+
+ali_mesh_upper_transport_layer_control_packet_segment_msg:
+41f9 6fe20992 fetch 4 ,mem_mesh_upper_tran_layer_temp_segmented_pakcet_seqzero 
+41fa 67e2097e store 4 ,mem_mesh_segmented_lower_transport_layer_segzero 
+41fb 20204230 branch ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer 
+
+ali_mesh_upper_transport_layer_control_packet_load_header:
+41fc 6fe08991 fetch 1 ,mem_mesh_upper_tran_layer_temp_pakcet_akf_aid 
+41fd 67e0892b store 1 ,mem_mesh_message_transport_head 
+41fe 6fe48987 fetch 9 ,mem_mesh_upper_tran_layer_temp_packet_header_ivi_nid 
+41ff 67e4c998 store 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+4200 67e48922 store 9 ,mem_mesh_message_nid 
+4201 20600000 rtn 
+
+ali_mesh_upper_transport_layer_control_packet_load_app_control:
+4202 7049b701 jam upper_tran_tmall_message ,mem_mesh_upper_tran_layer_packet_type 
+4203 6fe08986 fetch 1 ,mem_mesh_upper_tran_layer_temp_packet_tid 
+4204 284ffe05 isolate1 bit_upper_flag_vendor_indication ,temp 
+4205 20608000 rtn true 
+4206 58000000 setarg 0 
+4207 20600000 rtn 
+
+ali_mesh_store_tran_package_type:
+4208 1a208a1a add rega ,element_device_tran_package_type ,contw 
+4209 e7e08005 istore 1 ,contw 
+420a 20600000 rtn 
+
+ali_mesh_upper_transport_layer_queue_pop:
+420b 7049b600 jam 0 ,mem_mesh_upper_tran_layer_packet_tid 
+420c 20404292 call ali_mesh_upper_transport_layer_init_queue_param 
+420d da200983 arg mem_mesh_upper_tran_layer_queue_temp ,rega 
+420e 202078ca branch queue_pop 
+
+ali_mesh_upper_transport_layer_control_packet_encrypt_access:
+420f 20404253 call ali_mesh_upper_transport_layer_send_access_message_calc_seq 
+4210 20404267 call ali_mesh_upper_transport_layer_send_access_message_add_seq 
+4211 6fe4c998 fetch 9 ,mem_mesh_send_upper_layer_ivi_and_nid 
+4212 67e48987 store 9 ,mem_mesh_upper_tran_layer_temp_packet_header_ivi_nid 
+4213 20404228 call ali_mesh_upper_transport_layer_control_packet_encrypt_access_load_payload 
+4214 58000000 setarg 0 
+4215 67e0c969 store 1 ,mem_mesh_aszmic 
+4216 20404249 call ali_mesh_upper_transport_layer_calc_transport_mic 
+4217 68488722 fetcht 1 ,mem_mesh_upper_transport_layer_payload_len 
+4218 60488990 storet 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+4219 18427200 copy temp ,loopcnt 
+421a d8c00723 arg mem_mesh_access_layer_payload ,contr 
+421b d8a00996 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contw 
+421c 20407cda call memcpy 
+421d 18467c0f sub temp ,unsegmented_access_message_max_upper_transport_access_pdu_len ,null 
+421e 24214222 nbranch ali_mesh_upper_transport_layer_control_packet_encrypt_access_segment_msg ,positive 
+
+ali_mesh_upper_transport_layer_control_packet_encrypt_access_unsegment_msg:
+421f da200984 arg mem_mesh_upper_tran_layer_temp_packet_transmit_delay ,rega 
+4220 204078eb call queue_store_new_ele 
+4221 20203ec1 branch ali_mesh_lower_transport_layer_send_unsegmented_access_message 
+
+ali_mesh_upper_transport_layer_control_packet_encrypt_access_segment_msg:
+4222 2040426f call ali_mesh_upper_transport_layer_send_segmented_access_message_get_seqzero_segon 
+4223 6fe2097e fetch 4 ,mem_mesh_segmented_lower_transport_layer_segzero 
+4224 67e20992 store 4 ,mem_mesh_upper_tran_layer_temp_segmented_pakcet_seqzero 
+4225 da200984 arg mem_mesh_upper_tran_layer_temp_packet_transmit_delay ,rega 
+4226 204078eb call queue_store_new_ele 
+4227 20204230 branch ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer 
+
+ali_mesh_upper_transport_layer_control_packet_encrypt_access_load_payload:
+4228 6fe08990 fetch 1 ,mem_mesh_upper_tran_layer_temp_packet_length 
+4229 1fe27200 copy pdata ,loopcnt 
+422a 67e08722 store 1 ,mem_mesh_access_layer_payload_len 
+422b 6fe08991 fetch 1 ,mem_mesh_upper_tran_layer_temp_pakcet_akf_aid 
+422c 67e0892b store 1 ,mem_mesh_message_transport_head 
+422d d8c00996 arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu ,contr 
+422e d8a00723 arg mem_mesh_access_layer_payload ,contw 
+422f 20207cda branch memcpy 
+
+ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer:
+4230 2040427c call ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header 
+4231 58000723 setarg mem_mesh_access_payload 
+4232 67e1097b store 2 ,mem_mesh_upper_transport_layer_payload_ptr 
+
+ali_mesh_upper_transport_layer_send_segmented_access_message_loop:
+4233 204041fc call ali_mesh_upper_transport_layer_control_packet_load_header 
+4234 20404253 call ali_mesh_upper_transport_layer_send_access_message_calc_seq 
+4235 20404267 call ali_mesh_upper_transport_layer_send_access_message_add_seq 
+4236 68488722 fetcht 1 ,mem_mesh_access_layer_payload_len 
+4237 5800000c setarg segmented_access_message_unint_pdu_len 
+4238 20407db0 call not_greater_than 
+4239 1fe22200 copy pdata ,rega 
+423a 18427e00 copy temp ,pdata 
+423b 9a267e00 isub rega ,pdata 
+423c 67e08722 store 1 ,mem_mesh_access_layer_payload_len 
+423d 6fe1097b fetch 2 ,mem_mesh_upper_transport_layer_payload_ptr 
+423e 1fe20c00 copy pdata ,contr 
+423f 9a208400 iadd rega ,temp 
+4240 6049097b storet 2 ,mem_mesh_upper_transport_layer_payload_ptr 
+4241 20403ecb call ali_mesh_lower_transport_layer_send_segmented_access_message 
+4242 6fe08722 fetch 1 ,mem_mesh_access_layer_payload_len 
+4243 207a0000 rtn blank 
+4244 6fe08980 fetch 1 ,mem_mesh_segmented_lower_transport_layer_sego 
+4245 1fe0fe01 pincrease 1 
+4246 67e08980 store 1 ,mem_mesh_segmented_lower_transport_layer_sego 
+4247 2040427c call ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header 
+4248 20204233 branch ali_mesh_upper_transport_layer_send_segmented_access_message_loop 
+
+ali_mesh_upper_transport_layer_calc_transport_mic:
+4249 6fe0892b fetch 1 ,mem_mesh_message_transport_head 
+424a c303424d bbit0 transport_head_bit_akf ,ali_mesh_upper_transport_layer_calc_transport_mic_by_devicekey 
+
+ali_mesh_upper_transport_layer_calc_transport_mic_by_appkey:
+424b 204041a2 call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key 
+424c 2020424e branch ali_mesh_upper_transport_layer_calc_transport_mic_encrypt_aesccm 
+
+ali_mesh_upper_transport_layer_calc_transport_mic_by_devicekey:
+424d 204041af call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key 
+
+ali_mesh_upper_transport_layer_calc_transport_mic_encrypt_aesccm:
+424e 6fe08722 fetch 1 ,mem_mesh_access_layer_payload_len 
+424f 1fe08404 add pdata ,4 ,temp 
+4250 60488722 storet 1 ,mem_mesh_upper_transport_layer_payload_len 
+4251 d8400723 arg mem_mesh_access_layer_payload ,temp 
+4252 20203c86 branch ali_ccm_encrypt 
+
+ali_mesh_upper_transport_layer_send_access_message_calc_seq:
+4253 6fe1c992 fetch 3 ,mem_mesh_send_message_seq 
+4254 1fe0fe01 pincrease 1 
+4255 67e1c992 store 3 ,mem_mesh_send_message_seq 
+4256 6fe0c808 fetch 1 ,mem_mesh_gatt_package_send_msg_id 
+4257 1fe0fe01 pincrease 1 
+4258 67e0c808 store 1 ,mem_mesh_gatt_package_send_msg_id 
+4259 6fe14846 fetch 2 ,mem_mesh_cb_seq_changed 
+425a 20207d79 branch callback_func 
+
+ali_mesh_upper_transport_layer_send_access_message_add_nid_src_ttl_seq_dst:
+425b 6fe0c871 fetch 1 ,mem_mesh_iv_index + 3 
+425c 1ff27e00 lshift4 pdata ,pdata 
+425d 1fe9fe00 lshift3 pdata ,pdata 
+425e 6848c74d fetcht 1 ,mem_k2_nid 
+425f 9841fe00 ior temp ,pdata 
+4260 67e0c998 store 1 ,mem_mesh_send_upper_layer_ivi_and_nid 
+4261 6fe0c997 fetch 1 ,mem_mesh_send_message_ttl 
+4262 67e0c999 store 1 ,mem_mesh_send_upper_layer_ctl_and_ttl 
+4263 6fe14995 fetch 2 ,mem_mesh_send_message_src 
+4264 67e1499d store 2 ,mem_mesh_send_upper_layer_src 
+4265 6fe1094c fetch 2 ,mem_mesh_send_message_dst 
+4266 67e1499f store 2 ,mem_mesh_send_upper_layer_dst 
+
+ali_mesh_upper_transport_layer_send_access_message_add_seq:
+4267 6fe1c992 fetch 3 ,mem_mesh_send_message_seq 
+4268 67e1c99a store 3 ,mem_mesh_send_upper_layer_seq 
+4269 da20499a arg mem_mesh_send_upper_layer_seq ,rega 
+426a df200003 arg 3 ,loopcnt 
+426b 20407cb1 call inverse_data 
+426c 6fe44999 fetch 8 ,mem_mesh_send_upper_layer_ctl_and_ttl 
+426d 67e40923 store 8 ,mem_mesh_message_ttl 
+426e 20600000 rtn 
+
+ali_mesh_upper_transport_layer_send_segmented_access_message_get_seqzero_segon:
+426f 6fe08722 fetch 1 ,mem_mesh_upper_transport_layer_payload_len 
+4270 1fe6fc0c div pdata ,segmented_access_message_unint_pdu_len 
+4271 20407d62 call wait_div_end 
+4272 18078400 quotient temp 
+4273 18077e00 remainder pdata 
+4274 205a428f call ali_mesh_upper_transport_layer_send_segmented_access_message_sub_segn_one ,blank 
+4275 60488981 storet 1 ,mem_mesh_segmented_lower_transport_layer_segn 
+4276 70098000 jam 0 ,mem_mesh_segmented_lower_transport_layer_sego 
+4277 6fe1c992 fetch 3 ,mem_mesh_send_message_seq 
+4278 d8401fff arg 0x1fff ,temp 
+4279 98417e00 iand temp ,pdata 
+427a 67e1097e store 2 ,mem_mesh_segmented_lower_transport_layer_segzero 
+427b 20600000 rtn 
+
+ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header:
+427c 6fe1097e fetch 2 ,mem_mesh_segmented_lower_transport_layer_segzero 
+427d 1ff27e00 lshift4 pdata ,pdata 
+427e 1fe3fe00 lshift pdata ,pdata 
+427f 68488980 fetcht 1 ,mem_mesh_segmented_lower_transport_layer_sego 
+4280 9841fe00 ior temp ,pdata 
+4281 1ff27e00 lshift4 pdata ,pdata 
+4282 1fe3fe00 lshift pdata ,pdata 
+4283 68488981 fetcht 1 ,mem_mesh_segmented_lower_transport_layer_segn 
+4284 9841fe00 ior temp ,pdata 
+4285 67e1c9a2 store 3 ,mem_mesh_segmented_access_lower_transport_layer_szmic_seqzero_sego_segn 
+4286 df200003 arg 3 ,loopcnt 
+4287 da2049a2 arg mem_mesh_segmented_access_lower_transport_layer_szmic_seqzero_sego_segn ,rega 
+4288 20207cb1 branch inverse_data 
+
+ali_mesh_upper_transport_layer_receive_new_msg_timer:
+4289 da6049b8 arg mem_mesh_upper_receive_new_message_timer ,regc 
+428a da40428c arg ali_mesh_upper_transport_layer_receive_new_msg_timeout ,regb 
+428b 202042e0 branch timer_single_step 
+
+ali_mesh_upper_transport_layer_receive_new_msg_timeout:
+428c df200028 arg 40 ,loopcnt 
+428d d8a0496a arg mem_mesh_access_message_mic_cache ,contw 
+428e 20207ca1 branch clear_mem 
+
+ali_mesh_upper_transport_layer_send_segmented_access_message_sub_segn_one:
+428f 184085ff increase -1 ,temp 
+4290 20600000 rtn 
+
+ali_mesh_upper_transport_layer_clear_tx_buffer:
+4291 20203b2a branch ali_mesh_stop_send_indication_packet 
+
+ali_mesh_upper_transport_layer_init_queue_param:
+4292 580049b9 setarg mem_mesh_upper_tran_layer_queue_each_size 
+4293 67e143fb store 2 ,mem_queue_ptr 
+4294 20600000 rtn 
+
+app_init:
+4295 44d8c016 bpatch patch16_1 ,mem_patch16 
+4296 6fe0c3cb fetch 1 ,mem_device_option 
+4297 203a4295 branch app_init ,blank 
+4298 c00247b7 beq dvc_op_dongle ,dongle_init 
+4299 c004e2ae beq dvc_op_shutter ,shutter_init 
+429a c0055099 beq dvc_op_module ,module_init 
+429b c00743b2 beq dvc_op_car ,car_init 
+429c c003646e beq dvc_op_shutter_dy ,shutter_dy_init 
+429d c006c672 beq dvc_op_remote_car ,remote_car_init 
+429e c007c959 beq dvc_op_keyboard ,keyboard_init 
+429f c0066882 beq dvc_op_hci_boot ,hci_init 
+42a0 c00453e0 beq dvc_op_mouse ,mouse_init 
+42a1 c005be02 beq dvc_op_mesh ,ali_mesh_init 
+42a2 20600000 rtn 
+
+app_param_init:
+42a3 20758000 rtn wake 
+42a4 20406f74 call adc_init_data 
+42a5 6fe0c3cb fetch 1 ,mem_device_option 
+42a6 c004e3d9 beq dvc_op_shutter ,shutter_default_init 
+42a7 c00363d9 beq dvc_op_shutter_dy ,shutter_default_init 
+42a8 c00247c2 beq dvc_op_dongle ,dongle_default_init 
+42a9 c0045428 beq dvc_op_mouse ,mouse_default_init 
+42aa c007d42c beq dvc_op_keyboard ,mouse_default_parm_init 
+42ab c006c772 beq dvc_op_remote_car ,remote_car_default_init 
+42ac 20600000 rtn 
+
+app_process_idle:
+42ad 20407774 call ui_dispatch 
+42ae 20407841 call check_51cmd 
+42af 204042b4 call app_process_bb_event 
+42b0 6fe143db fetch 2 ,mem_cb_idle_process 
+42b1 20207d79 branch callback_func 
+
+app_process_ble:
+42b2 6fe143d9 fetch 2 ,mem_cb_le_process 
+42b3 20207d79 branch callback_func 
+
+app_process_bb_event:
+42b4 44d94016 bpatch patch16_2 ,mem_patch16 
+42b5 da2044d3 arg mem_ipc_fifo_bt2c51 ,rega 
+42b6 20407d97 call fifo_out 
+42b7 207a0000 rtn blank 
+42b8 1fe22600 copy pdata ,regc 
+42b9 204042bd call app_event_normal_process 
+42ba 202042c1 branch app_process_bb_event_priority 
+
+app_discard_event:
+42bb da600000 arg 0 ,regc 
+42bc 20600000 rtn 
+
+app_event_normal_process:
+42bd c00842d0 beq bt_evt_button_long_pressed ,app_evt_button_long_pressed 
+42be c00a42c7 beq bt_evt_le_connected ,app_le_event_bb_connected 
+42bf c00ac2cb beq bt_evt_le_disconnected ,app_le_event_bb_disconn 
+42c0 20600000 rtn 
+
+app_process_bb_event_priority:
+42c1 6fe143dd fetch 2 ,mem_cb_bb_event_process 
+42c2 20207d79 branch callback_func 
+
+app_check_wake_lock:
+42c3 6fe143d3 fetch 2 ,mem_cb_check_wakelock 
+42c4 20207d79 branch callback_func 
+
+app_will_enter_lpm:
+42c5 6fe143d7 fetch 2 ,mem_cb_before_lpm 
+42c6 20207d79 branch callback_func 
+
+app_le_event_bb_connected:
+42c7 6fe144e9 fetch 2 ,mem_ui_state_map 
+42c8 79207e09 set1 ui_state_ble_connected ,pdata 
+42c9 67e144e9 store 2 ,mem_ui_state_map 
+42ca 20600000 rtn 
+
+app_le_event_bb_disconn:
+42cb 70439600 jam 0 ,mem_le_l2cap_att_states 
+42cc 6fe144e9 fetch 2 ,mem_ui_state_map 
+42cd 793ffe09 set0 ui_state_ble_connected ,pdata 
+42ce 67e144e9 store 2 ,mem_ui_state_map 
+42cf 2020432d branch app_lpm_mult_disable 
+
+app_evt_button_long_pressed:
+42d0 6fe143f1 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+42d1 79207e00 set1 app_disc_by_button ,pdata 
+42d2 67e143f1 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+42d3 20600000 rtn 
+
+app_evt_timer:
+42d4 67e0821d store 1 ,mem_app_evt_timer_count 
+
+app_evt_100ms_loop:
+42d5 44d9c016 bpatch patch16_3 ,mem_patch16 
+42d6 6fe0821d fetch 1 ,mem_app_evt_timer_count 
+42d7 207a0000 rtn blank 
+42d8 1fe0ffff increase -1 ,pdata 
+42d9 67e0821d store 1 ,mem_app_evt_timer_count 
+42da 20407780 call ui_button_polling 
+42db 2040430e call app_lpm_wake_auto_lock_timer 
+42dc 20406beb call flash_write_spi_sm_timer 
+42dd 6fe143e3 fetch 2 ,mem_cb_event_timer 
+42de 20407d79 call callback_func 
+42df 202042d5 branch app_evt_100ms_loop 
+
+timer_single_step:
+42e0 efe08013 ifetch 1 ,regc 
+42e1 207a0000 rtn blank 
+42e2 1fe0ffff pincrease -1 
+42e3 e7e08013 istore 1 ,regc 
+42e4 247a0000 nrtn blank 
+42e5 1a427e00 copy regb ,pdata 
+42e6 20207d79 branch callback_func 
+
+timer_single_step_2b:
+42e7 efe10013 ifetch 2 ,regc 
+42e8 207a0000 rtn blank 
+42e9 1fe0ffff pincrease -1 
+42ea e7e10013 istore 2 ,regc 
+42eb 247a0000 nrtn blank 
+42ec 1a427e00 copy regb ,pdata 
+42ed 20207d79 branch callback_func 
+
+app_power_timer:
+42ee 68494430 fetcht 2 ,mem_power_param_ptr 
+42ef 1840a601 add temp ,power_timer_offset ,regc 
+42f0 da4042f2 arg app_power_timer_timeout ,regb 
+42f1 202042e0 branch timer_single_step 
+
+app_power_timer_timeout:
+42f2 20404343 call app_got_power_state_common 
+42f3 c000c2f5 beq power_starting ,app_enter_power_stanby_state 
+
+app_enter_power_off_state:
+42f4 20204327 branch app_enter_hibernate 
+
+app_enter_power_stanby_state:
+42f5 58000002 setarg power_standby 
+42f6 e7e08013 istore 1 ,regc 
+42f7 1840a408 add temp ,power_standby_cb_offset ,regb 
+
+app_power_cb_common:
+42f8 efe10012 ifetch 2 ,regb 
+42f9 20207d79 branch callback_func 
+
+app_bb_hibernate:
+42fa 204042fc call app_disconn_reason_clear 
+42fb 20204327 branch app_enter_hibernate 
+
+app_disconn_reason_clear:
+42fc 58000000 setarg 0 
+42fd 67e143ef store app_disc_rsn_size ,mem_app_disconn_reason 
+42fe 20600000 rtn 
+
+app_disconn_reason_flag_clear:
+42ff 58000000 setarg 0 
+4300 67e143f1 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+4301 20600000 rtn 
+
+app_disconn_reason_collect_ble:
+4302 6fe143f1 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+4303 79207e07 set1 app_disc_ble ,pdata 
+4304 67e143ef store app_disc_rsn_size ,mem_app_disconn_reason 
+4305 58000000 setarg 0 
+4306 67e143f1 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+4307 20600000 rtn 
+
+app_get_lpm_wake_lock:
+4308 d8e00009 arg wake_lock_app ,queue 
+4309 202024e7 branch lpm_get_wake_lock 
+
+app_put_lpm_wake_lock:
+430a d8e00009 arg wake_lock_app ,queue 
+430b 202024eb branch lpm_put_wake_lock 
+
+app_lpm_wake_auto_lock:
+430c 7043ed05 jam lpm_wake_up_delay_timer ,mem_wake_up_delay_timer 
+430d 20204308 branch app_get_lpm_wake_lock 
+
+app_lpm_wake_auto_lock_timer:
+430e da6043ed arg mem_wake_up_delay_timer ,regc 
+430f da40430a arg app_put_lpm_wake_lock ,regb 
+4310 202042e0 branch timer_single_step 
+
+app_ble_start_direct_adv:
+4311 70066f0f jam bt_cmd_start_direct_adv ,mem_fifo_temp 
+4312 20207834 branch ui_ipc_send_cmd 
+
+app_ble_stop_direct_adv:
+4313 70066f10 jam bt_cmd_stop_direct_adv ,mem_fifo_temp 
+4314 20207834 branch ui_ipc_send_cmd 
+
+app_ble_stop_adv:
+4315 70066f0e jam bt_cmd_stop_adv ,mem_fifo_temp 
+4316 20207834 branch ui_ipc_send_cmd 
+
+app_ble_start_adv:
+4317 70066f0d jam bt_cmd_start_adv ,mem_fifo_temp 
+4318 20207834 branch ui_ipc_send_cmd 
+
+app_ble_start_scan:
+4319 70066f17 jam bt_cmd_le_start_scan ,mem_fifo_temp 
+431a 20207834 branch ui_ipc_send_cmd 
+
+app_ble_stop_scan:
+431b 70066f18 jam bt_cmd_le_stop_scan ,mem_fifo_temp 
+431c 20207834 branch ui_ipc_send_cmd 
+
+app_ble_start_conn:
+431d 70066f16 jam bt_cmd_le_start_conn ,mem_fifo_temp 
+431e 20207834 branch ui_ipc_send_cmd 
+
+app_ble_disconnect:
+431f 70066f11 jam bt_cmd_le_disconnect ,mem_fifo_temp 
+4320 20207834 branch ui_ipc_send_cmd 
+
+app_led_start_blink:
+4321 70066f15 jam bt_cmd_led_blink ,mem_fifo_temp 
+4322 20207834 branch ui_ipc_send_cmd 
+
+app_led_on:
+4323 70066f14 jam bt_cmd_led_on ,mem_fifo_temp 
+4324 20207834 branch ui_ipc_send_cmd 
+
+app_led_stop_blink:
+
+app_led_off:
+4325 70066f13 jam bt_cmd_led_off ,mem_fifo_temp 
+4326 20207834 branch ui_ipc_send_cmd 
+
+app_enter_hibernate:
+4327 70066f19 jam bt_cmd_enter_hibernate ,mem_fifo_temp 
+4328 20207834 branch ui_ipc_send_cmd 
+
+app_ble_store_reconn_info:
+4329 70066f1f jam bt_cmd_store_reconn_info_le ,mem_fifo_temp 
+432a 20207834 branch ui_ipc_send_cmd 
+
+app_lpm_mult_enable:
+432b 7920000d set1 mark_lpm_mult_enable ,mark 
+432c 20600000 rtn 
+
+app_lpm_mult_disable:
+432d 793f800d set0 mark_lpm_mult_enable ,mark 
+432e 20600000 rtn 
+
+app_button_long_pressed:
+432f 20404343 call app_got_power_state_common 
+4330 c0014339 beq power_standby ,app_power_shutting_down 
+
+app_power_starting:
+4331 58000001 setarg power_starting 
+4332 e7e08013 istore 1 ,regc 
+4333 1840a203 add temp ,power_starting_timeout_offset ,rega 
+4334 1840a406 add temp ,power_starting_cb_offset ,regb 
+
+app_power_common:
+4335 e8408011 ifetcht 1 ,rega 
+4336 1a60a601 increase 1 ,regc 
+4337 e0408013 istoret 1 ,regc 
+4338 202042f8 branch app_power_cb_common 
+
+app_power_shutting_down:
+4339 58000000 setarg power_off 
+433a e7e08013 istore 1 ,regc 
+433b 6fe144e9 fetch 2 ,mem_ui_state_map 
+433c c304c33f bbit0 ui_state_ble_connected ,app_power_off_end 
+433d 204030c5 call le_send_terminate_ind_user_terminated 
+433e 2040431f call app_ble_disconnect 
+
+app_power_off_end:
+433f 68494430 fetcht 2 ,mem_power_param_ptr 
+4340 1840a202 add temp ,power_off_timeout_offset ,rega 
+4341 1840a404 add temp ,power_off_cb_offset ,regb 
+4342 20204335 branch app_power_common 
+
+app_got_power_state_common:
+4343 68494430 fetcht 2 ,mem_power_param_ptr 
+4344 1840a600 add temp ,power_state_offset ,regc 
+4345 efe08013 ifetch 1 ,regc 
+4346 20600000 rtn 
+
+app_event_button_up:
+4347 20404343 call app_got_power_state_common 
+4348 c080434a bne power_off ,app_power_release 
+4349 20204327 branch app_enter_hibernate 
+
+app_power_release:
+434a 1840a40a add temp ,ui_butten_up_cb_offset ,regb 
+434b 202042f8 branch app_power_cb_common 
+
+adpcm_decode:
+434c 6fe44ceb fetch 8 ,mem_ad_state_valpred 
+434d 67e44cfe store 8 ,mem_ad_valpred 
+434e 704d0e00 jam 0 ,mem_ad_bufferstep 
+434f 6fe0cd02 fetch 1 ,mem_ad_index 
+4350 1febfe00 lshift2 pdata ,pdata 
+4351 d8404b87 arg mem_ad_stepsizetable ,temp 
+4352 98408400 iadd temp ,temp 
+4353 efe20002 ifetch 4 ,temp 
+4354 67e24cfa store 4 ,mem_ad_step 
+
+adpcm_decode_loop:
+4355 6fe0cd0e fetch 1 ,mem_ad_bufferstep 
+4356 243a435f nbranch adpcm_next_byte ,blank 
+4357 68494cf4 fetcht 2 ,mem_ad_in_ptr 
+4358 efe08002 ifetch 1 ,temp 
+4359 67e0cd0a store 1 ,mem_ad_inputbuffer 
+435a 18408401 increase 1 ,temp 
+435b 60494cf4 storet 2 ,mem_ad_in_ptr 
+435c 1ff1fe00 rshift4 pdata ,pdata 
+435d 67e0ccf9 store 1 ,mem_ad_delta 
+435e 20204362 branch adpcm_cal 
+
+adpcm_next_byte:
+435f 6fe0cd0a fetch 1 ,mem_ad_inputbuffer 
+4360 1fe17e0f and pdata ,0x0f ,pdata 
+4361 67e0ccf9 store 1 ,mem_ad_delta 
+
+adpcm_cal:
+4362 6fe0cd0e fetch 1 ,mem_ad_bufferstep 
+4363 79407e00 setflip 0 ,pdata 
+4364 67e0cd0e store 1 ,mem_ad_bufferstep 
+4365 d8404b77 arg mem_ad_indextable ,temp 
+4366 6fe0ccf9 fetch 1 ,mem_ad_delta 
+4367 98408400 iadd temp ,temp 
+4368 efe08002 ifetch 1 ,temp 
+4369 6848cd02 fetcht 1 ,mem_ad_index 
+436a 2040439a call adpcm_cal_index 
+436b 67e0cd02 store 1 ,mem_ad_index 
+436c 6fe0ccf9 fetch 1 ,mem_ad_delta 
+436d 1fe10408 and pdata ,0x08 ,temp 
+436e 6048ccf8 storet 1 ,mem_ad_sign 
+436f 1fe10407 and pdata ,0x07 ,temp 
+4370 6048ccf9 storet 1 ,mem_ad_delta 
+4371 204043a3 call adpcm_cal_vpdiff 
+4372 604a4d06 storet 4 ,mem_ad_vpdiff 
+4373 6fe0ccf8 fetch 1 ,mem_ad_sign 
+4374 203a4379 branch adpcm_cal_valpred ,blank 
+4375 6fe24cfe fetch 4 ,mem_ad_valpred 
+4376 684a4d06 fetcht 4 ,mem_ad_vpdiff 
+4377 98467e00 isub temp ,pdata 
+4378 2020437c branch adpcm_cal_valpred_end 
+
+adpcm_cal_valpred:
+4379 6fe24cfe fetch 4 ,mem_ad_valpred 
+437a 684a4d06 fetcht 4 ,mem_ad_vpdiff 
+437b 9840fe00 iadd temp ,pdata 
+
+adpcm_cal_valpred_end:
+437c 67e24cfe store 4 ,mem_ad_valpred 
+437d d8407fff arg 32767 ,temp 
+437e 98467e00 isub temp ,pdata 
+437f c28fc382 bbit1 31 ,adpcm_cal_valpred_overflow 
+4380 604a4cfe storet 4 ,mem_ad_valpred 
+4381 20204388 branch adpcm_cal_valpred_overflow_end 
+
+adpcm_cal_valpred_overflow:
+4382 6fe24cfe fetch 4 ,mem_ad_valpred 
+4383 d8408000 arg 32768 ,temp 
+4384 9840fe00 iadd temp ,pdata 
+4385 c30fc388 bbit0 31 ,adpcm_cal_valpred_overflow_end 
+4386 d85f8000 arg -32768 ,temp 
+4387 604a4cfe storet 4 ,mem_ad_valpred 
+
+adpcm_cal_valpred_overflow_end:
+4388 6fe0cd02 fetch 1 ,mem_ad_index 
+4389 1febfe00 lshift2 pdata ,pdata 
+438a d8404b87 arg mem_ad_stepsizetable ,temp 
+438b 98408400 iadd temp ,temp 
+438c efe20002 ifetch 4 ,temp 
+438d 67e24cfa store 4 ,mem_ad_step 
+438e 6fe14cf6 fetch 2 ,mem_ad_out_ptr 
+438f 68494cfe fetcht 2 ,mem_ad_valpred 
+4390 e041003f istoret 2 ,pdata 
+4391 1fe0fe02 increase 2 ,pdata 
+4392 67e14cf6 store 2 ,mem_ad_out_ptr 
+4393 6fe0ccf3 fetch 1 ,mem_ad_in_numsamples 
+4394 1fe0ffff increase -1 ,pdata 
+4395 67e0ccf3 store 1 ,mem_ad_in_numsamples 
+4396 243a4355 nbranch adpcm_decode_loop ,blank 
+4397 6fe44cfe fetch 8 ,mem_ad_valpred 
+4398 67e44ceb store 8 ,mem_ad_state_valpred 
+4399 20600000 rtn 
+
+adpcm_cal_index:
+439a 9840fe00 iadd temp ,pdata 
+439b c303c39e bbit0 7 ,adpcm_cal_bigger_zero 
+439c 58000000 setarg 0 
+439d 20600000 rtn 
+
+adpcm_cal_bigger_zero:
+439e 1fe17eff and pdata ,0xff ,pdata 
+439f 1fe67c58 sub pdata ,88 ,null 
+43a0 20610000 rtn positive 
+43a1 58000058 setarg 88 
+43a2 20600000 rtn 
+
+adpcm_cal_vpdiff:
+43a3 6a224cfa fetchr rega ,4 ,mem_ad_step 
+43a4 1a290400 rshift3 rega ,temp 
+43a5 6fe0ccf9 fetch 1 ,mem_ad_delta 
+43a6 c30143a9 bbit0 2 ,adpcm_cal_vpdiff1 
+43a7 1a227e00 copy rega ,pdata 
+43a8 98408400 iadd temp ,temp 
+
+adpcm_cal_vpdiff1:
+43a9 6fe0ccf9 fetch 1 ,mem_ad_delta 
+43aa c300c3ad bbit0 1 ,adpcm_cal_vpdiff2 
+43ab 1a237e00 rshift rega ,pdata 
+43ac 98408400 iadd temp ,temp 
+
+adpcm_cal_vpdiff2:
+43ad 6fe0ccf9 fetch 1 ,mem_ad_delta 
+43ae c4000000 rtnbit0 0 
+43af 1a2b7e00 rshift2 rega ,pdata 
+43b0 98408400 iadd temp ,temp 
+43b1 20600000 rtn 
+
+car_init:
+43b2 20407396 call enable_authrom 
+43b3 20758000 rtn wake 
+43b4 580045be setarg car_g24_receive_process 
+43b5 67e145e0 store 2 ,mem_cb_24g_receive_process 
+43b6 5800330a setarg g24_bind_ackpayload_prep 
+43b7 67e145e2 store 2 ,mem_cb_24g_ackpayload 
+43b8 5800465e setarg car_g24_cb_data_device1 
+43b9 67e145e4 store 2 ,mem_cb_24g_data_device1 
+43ba 5800442e setarg car_le_before_hibernate 
+43bb 67e143d5 store 2 ,mem_cb_before_hibernate 
+43bc 58004430 setarg car_le_process_lpm_before 
+43bd 67e143d7 store 2 ,mem_cb_before_lpm 
+43be 58004455 setarg car_scale_process_idle 
+43bf 67e143db store 2 ,mem_cb_idle_process 
+43c0 58004476 setarg car_scale_process_bb_event 
+43c1 67e143dd store 2 ,mem_cb_bb_event_process 
+43c2 58004308 setarg app_get_lpm_wake_lock 
+43c3 67e143d3 store 2 ,mem_cb_check_wakelock 
+43c4 580044d1 setarg car_le_receive_data 
+43c5 67e143df store 2 ,mem_cb_att_write 
+43c6 58004494 setarg car_le_bb_event_timer 
+43c7 67e143e3 store 2 ,mem_cb_event_timer 
+43c8 44974005 bpatch patch05_6 ,mem_patch05 
+43c9 20404412 call car_init_environment 
+43ca 20404463 call car_lpm_timer_enable 
+43cb 204078ad call queue_init 
+43cc 7040c002 jam 2 ,mem_lpm_mult 
+43cd 7049b700 jam power_on ,mem_car_24g_received_pac 
+43ce 6fe0c779 fetch 1 ,mem_car_config_soft_switch_enable 
+43cf 67e0c648 store 1 ,mem_car_hard_soft_switch 
+43d0 c00043db beq hard_switch ,car_hard_switch_power_on_signal 
+43d1 6fe0c77a fetch 1 ,mem_car_config_soft_switch_gpio 
+43d2 67e0c4ec store 1 ,mem_ui_button_gpio 
+43d3 70438800 jam off ,mem_le_adv_enable 
+
+car_soft_switch_power_on_init:
+43d4 20407776 call ui_button_init 
+43d5 20407780 call ui_button_polling 
+43d6 7047a101 jam power_starting ,mem_car_power_state 
+43d7 6fe144e9 fetch 2 ,mem_ui_state_map 
+43d8 c3860000 rtnbit1 ui_state_btn_down 
+43d9 20204327 branch app_enter_hibernate 
+
+car_power_off_signal:
+43da 202043f9 branch car_ui_led_init 
+
+car_hard_switch_power_on_signal:
+43db 7047a102 jam power_standby ,mem_car_power_state 
+
+car_soft_switch_power_on_signal:
+43dc 70438801 jam on ,mem_le_adv_enable 
+43dd 58000020 setarg fast_adv_interval_value_car 
+43de 204063c7 call shutter_ble_adv_interval_set 
+
+car_le_modified_name_adv:
+43df d8a04273 arg mem_le_name + 7 ,contw 
+43e0 6fe0c2db fetch 1 ,mem_le_lap 
+
+car_name_loop:
+43e1 1fe104f0 and pdata ,0xF0 ,temp 
+43e2 18518400 rshift4 temp ,temp 
+43e3 204043f3 call car_hex_to_ascii 
+43e4 e0408005 istoret 1 ,contw 
+43e5 1fe1040f and pdata ,0x0F ,temp 
+43e6 204043f3 call car_hex_to_ascii 
+43e7 e0408005 istoret 1 ,contw 
+43e8 20402955 call le_modified_name_att_list 
+43e9 6848c26b fetcht 1 ,mem_le_name_len 
+43ea 18427200 copy temp ,loopcnt 
+43eb d8a0434b arg mem_le_adv_data + 2 ,contw 
+43ec d8c0426c arg mem_le_name ,contr 
+43ed 20407cda call memcpy 
+
+car_le_modified_name_scan:
+43ee 6848c26b fetcht 1 ,mem_le_name_len 
+43ef 18427200 copy temp ,loopcnt 
+43f0 d8a0436b arg mem_le_scan_data + 2 ,contw 
+43f1 d8c0426c arg mem_le_name ,contr 
+43f2 20207cda branch memcpy 
+
+car_hex_to_ascii:
+43f3 18467c09 sub temp ,9 ,null 
+43f4 202143f7 branch car_hex_num ,positive 
+43f5 18408437 add temp ,55 ,temp 
+43f6 20600000 rtn 
+
+car_hex_num:
+43f7 18408430 add temp ,48 ,temp 
+43f8 20600000 rtn 
+
+car_ui_led_init:
+43f9 6fe0c76e fetch 1 ,mem_car_config_blood_led1_gpio 
+43fa c0ffc40b bne invalid_pin_num ,car_blood_led_gpio_set 
+
+car_ui_led_init_1:
+43fb 6fe0c76c fetch 1 ,mem_car_config_pairing_led_gpio 
+43fc c0ffc40e bne invalid_pin_num ,car_pairing_led_gpio_set 
+
+car_ui_led_init_2:
+43fd 6fe0c777 fetch 1 ,mem_car_config_low_voltage_led_gpio 
+43fe c0ffc410 bne invalid_pin_num ,car_low_voltage_led_gpio_set 
+
+car_ui_led_init_3:
+43ff 6fe0c6da fetch 1 ,mem_car_led_num 
+4400 1fe27200 copy pdata ,loopcnt 
+4401 580046db setarg mem_car_led_map 
+4402 1fe22200 copy pdata ,rega 
+
+car_in_lp1:
+4403 1a220c00 copy rega ,contr 
+4404 efe08006 ifetch 1 ,contr 
+4405 18c22200 copy contr ,rega 
+4406 c07fc409 beq invalid_pin_num ,car_in_lp1_end 
+4407 1fe20400 copy pdata ,temp 
+4408 20406ef7 call gpio_config_output 
+
+car_in_lp1_end:
+4409 c2004403 loop car_in_lp1 
+
+car_ui_led_init_end:
+440a 20600000 rtn 
+
+car_blood_led_gpio_set:
+440b 6fe4476e fetch 8 ,mem_car_config_blood_led1_gpio 
+440c 67e446dd store 8 ,mem_car_led_map + 2 
+440d 202043fb branch car_ui_led_init_1 
+
+car_pairing_led_gpio_set:
+440e 67e0c6db store 1 ,mem_car_led_map 
+440f 202043fd branch car_ui_led_init_2 
+
+car_low_voltage_led_gpio_set:
+4410 67e0c6dc store 1 ,mem_car_led_map + 1 
+4411 202043ff branch car_ui_led_init_3 
+
+car_init_environment:
+4412 204045ba call car_g24_init 
+4413 20404640 call car_g24_load_commom_addr 
+4414 da200000 arg 0 ,rega 
+4415 20407055 call pwm_init 
+4416 204043f9 call car_ui_led_init 
+4417 2040446b call car_start_blink 
+4418 2040442c call car_init_adc_hvin 
+4419 2020441b branch car_motor_init 
+
+car_read_otp_addr:
+441a 20600000 rtn 
+
+car_motor_init:
+441b 6fe0c9a4 fetch 1 ,mem_car_motor_gpio_num 
+441c 1fe27200 copy pdata ,loopcnt 
+441d 580049a5 setarg mem_car_motor_gpio_map 
+441e 1fe22200 copy pdata ,rega 
+
+p_in_lp1:
+441f 1a220c00 copy rega ,contr 
+4420 efe08006 ifetch 1 ,contr 
+4421 18c22200 copy contr ,rega 
+4422 c07fc426 beq invalid_pin_num ,p_in_lp1_end 
+4423 1fe20400 copy pdata ,temp 
+4424 67e0c9a9 store 1 ,mem_car_gpio 
+4425 20404428 call car_ui_gpio_init 
+
+p_in_lp1_end:
+4426 c200441f loop p_in_lp1 
+
+p_car_ui_led_init_end:
+4427 20600000 rtn 
+
+car_ui_gpio_init:
+4428 6fe0c9a9 fetch 1 ,mem_car_gpio 
+4429 c17f8000 rtneq ui_button_gpio_disable 
+442a 98000400 iforce temp 
+442b 20206ef7 branch gpio_config_output 
+
+car_init_adc_hvin:
+442c 70477d64 jam 100 ,mem_car_notify_vdd_value_last 
+442d 20600000 rtn 
+
+car_le_before_hibernate:
+442e 20404431 call car_gpio_set_before_hibernate 
+442f 20407de2 call clear_wake 
+
+car_le_process_lpm_before:
+4430 2020701b branch keyscan_process_lpm_before 
+
+car_gpio_set_before_hibernate:
+4431 2040788b call check_51cmd_led_off 
+
+car_gpio_set_before_lpm_common:
+4432 df200010 arg gpio_number ,loopcnt 
+4433 d8c08070 arg core_gpio_conf ,contr 
+
+car_setgpio_loop:
+4434 18c20a00 copy contr ,contw 
+4435 efe08006 ifetch 1 ,contr 
+4436 c00fc445 beq gpcfg_spid_miso ,car_setgpio_pullup 
+4437 c0104445 beq gpcfg_spid_ncs ,car_setgpio_pullup 
+4438 c010c445 beq gpcfg_spid_sck ,car_setgpio_pullup 
+4439 c0114445 beq gpcfg_spid_mosi ,car_setgpio_pullup 
+443a c011c445 beq gpcfg_spid_sdio ,car_setgpio_pullup 
+443b c0164445 beq gpcfg_iic_scl ,car_setgpio_pullup 
+443c c016c445 beq gpcfg_iic_sda ,car_setgpio_pullup 
+443d c0004445 beq gpcfg_input ,car_setgpio_pullup 
+
+car_setgpio_loop_end:
+443e c2004434 loop car_setgpio_loop 
+443f dfe080dc arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+4440 98c67c00 isub contr ,null 
+4441 2022c44b branch car_motor_setgpio ,zero 
+
+car_setgpio_loop_ext:
+4442 df200008 arg gpio_number_ext ,loopcnt 
+4443 d8c080d4 arg core_gpio_conf_hi ,contr 
+4444 20204434 branch car_setgpio_loop 
+
+car_setgpio_pullup:
+4445 58000040 setarg gpcfg_pullup 
+4446 e7e08005 istore 1 ,contw 
+4447 2020443e branch car_setgpio_loop_end 
+
+car_setgpio_pulldown:
+4448 58000080 setarg gpcfg_pulldown 
+4449 e7e08005 istore 1 ,contw 
+444a 2020443e branch car_setgpio_loop_end 
+
+car_motor_setgpio:
+444b 6fe0c9a4 fetch 1 ,mem_car_motor_gpio_num 
+444c 1fe27200 copy pdata ,loopcnt 
+444d d8c049a5 arg mem_car_motor_gpio_map ,contr 
+
+car_motor_setgpio_loop:
+444e efe08006 ifetch 1 ,contr 
+444f 79207e07 set1 7 ,pdata 
+4450 d840003e arg gpcfg_output_low ,temp 
+4451 20406f20 call gpio_config_function 
+4452 c200444e loop car_motor_setgpio_loop 
+4453 20600000 rtn 
+
+car_key_scan_process:
+4454 20207027 branch keyscan_key_process 
+
+car_scale_process_idle:
+4455 2040446d call car_le_send_packet 
+4456 20404458 call car_g24_status_process 
+4457 20204454 branch car_key_scan_process 
+
+car_g24_status_process:
+4458 6fe144e9 fetch 2 ,mem_ui_state_map 
+4459 c3848000 rtnbit1 ui_state_ble_connected 
+445a 6fe0c9b7 fetch 1 ,mem_car_24g_received_pac 
+445b c000c45d beq work_paired ,car_g24_connected_event 
+445c 20600000 rtn 
+
+car_g24_connected_event:
+445d 6fe0c798 fetch 1 ,mem_car_24g_status 
+445e c1008000 rtneq work_paired 
+445f 70479801 jam work_paired ,mem_car_24g_status 
+4460 20404467 call car_lpm_timer_disable 
+4461 20404469 call car_stop_blink 
+4462 20204480 branch car_g24_connected 
+
+car_lpm_timer_enable:
+4463 6fe149bc fetch 2 ,mem_car_enter_lpm_timer_count 
+4464 67e149be store 2 ,mem_car_enter_lpm_timer 
+4465 7049c000 jam 0 ,mem_car_enter_lpm_flag 
+4466 20600000 rtn 
+
+car_lpm_timer_disable:
+4467 58000000 setarg 0 
+4468 20204464 branch car_lpm_timer_enable + 1 
+
+car_stop_blink:
+4469 da200000 arg 0 ,rega 
+446a 202077bf branch ui_led_blink_stop_global 
+
+car_start_blink:
+446b da200000 arg 0 ,rega 
+446c 202077c4 branch ui_led_blink_start_global 
+
+car_le_send_packet:
+446d 6fe144e9 fetch 2 ,mem_ui_state_map 
+446e c4048000 rtnbit0 ui_state_ble_connected 
+446f 20402a28 call le_fifo_check_nearly_full 
+4470 247a0000 nrtn blank 
+4471 da2046c6 arg mem_car_pop_queue_buff ,rega 
+4472 204078ca call queue_pop 
+4473 24740000 nrtn user 
+4474 d8c046c6 arg mem_car_pop_queue_buff ,contr 
+4475 202063cb branch le_send_notify_from_list 
+
+car_scale_process_bb_event:
+4476 1a627e00 copy regc ,pdata 
+4477 c016c347 beq bt_evt_button_up ,app_event_button_up 
+4478 c008432f beq bt_evt_button_long_pressed ,app_button_long_pressed 
+4479 c00a447c beq bt_evt_le_connected ,car_scale_event_le_conn 
+447a c00ac486 beq bt_evt_le_disconnected ,car_scale_event_le_discon 
+447b 20600000 rtn 
+
+car_scale_event_le_conn:
+447c 20404467 call car_lpm_timer_disable 
+447d 20404469 call car_stop_blink 
+447e 793f8027 set0 mark_24g_rxmode ,mark 
+447f 20204482 branch car_scale_process_conn 
+
+car_g24_connected:
+4480 6fe14799 fetch 2 ,mem_car_24g_no_data_timeout_count 
+4481 67e1479b store 2 ,mem_car_24g_no_data_timeout_timer 
+
+car_scale_process_conn:
+4482 70477c14 jam 0x14 ,mem_car_notify_vdd_timer 
+4483 70409400 jam 0 ,mem_lpm_mode 
+4484 20404315 call app_ble_stop_adv 
+4485 2020432b branch app_lpm_mult_enable 
+
+car_scale_event_le_discon:
+4486 79200027 set1 mark_24g_rxmode ,mark 
+4487 20404463 call car_lpm_timer_enable 
+4488 2040456e call car_fb_motor_stop 
+4489 20404562 call car_lr_motor_stop 
+
+car_g24_disconnect:
+448a 58000000 setarg 0 
+448b 67e2c74a store 5 ,mem_car_led_control 
+448c 204078ad call queue_init 
+448d 70470c0a jam 10 ,mem_motor1_speed 
+448e 70470e0a jam 10 ,mem_motor2_speed 
+448f 7047100a jam 10 ,mem_motor3_speed 
+4490 7040c002 jam 2 ,mem_lpm_mult 
+4491 58000020 setarg fast_adv_interval_value_car 
+4492 204063c7 call shutter_ble_adv_interval_set 
+4493 20204317 branch app_ble_start_adv 
+
+car_le_bb_event_timer:
+4494 2040450f call car_moto1_blank_data_timer 
+4495 20404512 call car_moto2_blank_data_timer 
+4496 20404515 call car_moto3_blank_data_timer 
+4497 204044a1 call car_24g_no_data_timeout_timer 
+4498 20204499 branch car_24g_bind_enable_timer 
+
+car_24g_bind_enable_timer:
+4499 da6049b8 arg mem_car_24g_bind_enable_delay_count ,regc 
+449a da400000 arg 0 ,regb 
+449b 202042e0 branch timer_single_step 
+
+car_enter_lpm_timer:
+449c da6049be arg mem_car_enter_lpm_timer ,regc 
+449d da40449f arg car_enter_lpm_enable ,regb 
+449e 202042e7 branch timer_single_step_2b 
+
+car_enter_lpm_enable:
+449f 7049c001 jam 1 ,mem_car_enter_lpm_flag 
+44a0 20600000 rtn 
+
+car_24g_no_data_timeout_timer:
+44a1 da60479b arg mem_car_24g_no_data_timeout_timer ,regc 
+44a2 da4044a4 arg car_24g_no_data_timer_timeout ,regb 
+44a3 202042e7 branch timer_single_step_2b 
+
+car_24g_no_data_timer_timeout:
+44a4 70479802 jam work_search ,mem_car_24g_status 
+44a5 7049b700 jam power_on ,mem_car_24g_received_pac 
+44a6 2020448a branch car_g24_disconnect 
+
+car_notify_vdd_timer:
+44a7 6fe0c776 fetch 1 ,mem_car_config_bat_notify_enable 
+44a8 207a0000 rtn blank 
+44a9 da60477c arg mem_car_notify_vdd_timer ,regc 
+44aa da4044ac arg car_notify_vdd ,regb 
+44ab 202042e0 branch timer_single_step 
+
+car_notify_vdd:
+44ac 6fe0c77b fetch 1 ,mem_car_notify_vdd_count 
+44ad 67e0c77c store 1 ,mem_car_notify_vdd_timer 
+44ae 6fe0c77f fetch 1 ,mem_car_working_flag 
+44af 247a0000 nrtn blank 
+
+car_read_hvin:
+44b0 20406fb0 call vdd_calculate_by_mode 
+44b1 67e14796 store 2 ,mem_vdd_now_vol 
+44b2 da204790 arg mem_vdd_calculate_set ,rega 
+44b3 20406fd7 call adc_bat_percent_lowpower_out 
+44b4 6848c77d fetcht 1 ,mem_car_notify_vdd_value_last 
+44b5 98467c00 isub temp ,null 
+44b6 202144b9 branch car_notify_vdd_next2 ,positive 
+44b7 67e0c77d store 1 ,mem_car_notify_vdd_value_last 
+44b8 1fe20400 copy pdata ,temp 
+
+car_notify_vdd_next2:
+44b9 6048c77e storet 1 ,mem_car_notify_vdd_percent 
+44ba 6fe0c778 fetch 1 ,mem_car_config_low_voltage_percent 
+44bb 98467c00 isub temp ,null 
+44bc 204144c4 call car_enter_low_bat ,positive 
+44bd 6048c789 storet 1 ,mem_notify_bat_payload 
+44be df200006 arg 6 ,loopcnt 
+44bf d8c04784 arg mem_notify_bat_head ,contr 
+44c0 204044cb call calc_check_sum_start 
+44c1 67e0c78a store 1 ,mem_notify_bat_check_sum 
+44c2 da204781 arg mem_notify_bat_packet ,rega 
+44c3 202078b2 branch queue_push 
+
+car_enter_low_bat:
+44c4 6fe0c780 fetch 1 ,mem_low_bat_flag 
+44c5 247a0000 nrtn blank 
+44c6 70478001 jam 1 ,mem_low_bat_flag 
+44c7 da200001 arg 1 ,rega 
+44c8 202077c4 branch ui_led_blink_start_global 
+
+car_low_bat_led_off:
+44c9 da200001 arg 1 ,rega 
+44ca 202077bf branch ui_led_blink_stop_global 
+
+calc_check_sum_start:
+44cb da200000 arg 0 ,rega 
+
+calc_check_sum_loop:
+44cc efe08006 ifetch 1 ,contr 
+44cd 9a20a200 iadd rega ,rega 
+44ce c20044cc loop calc_check_sum_loop 
+
+calc_check_sum_and:
+44cf 1a217eff and rega ,0xff ,pdata 
+44d0 20600000 rtn 
+
+car_le_receive_data:
+44d1 6fe0c397 fetch 1 ,mem_le_att_opcode 
+44d2 c00944d4 beq attop_write_request ,car_le_parse_att_write_request 
+44d3 20600000 rtn 
+
+car_le_parse_att_write_request:
+44d4 6fe14398 fetch 2 ,mem_le_att_handle 
+44d5 c00cc4eb beq att_car_control_handle ,car_control_le_receive 
+44d6 20600000 rtn 
+
+le_app_receive_data:
+44d7 4497c005 bpatch patch05_7 ,mem_patch05 
+44d8 efe28011 ifetch 5 ,rega 
+44d9 67e286f1 store 5 ,mem_app_receive_temp 
+44da 6fe106f1 fetch 2 ,mem_app_receive_temp 
+44db d8406b5a arg le_receive_packet_head ,temp 
+44dc 98467c00 isub temp ,null 
+44dd 24628000 nrtn zero 
+44de 6fe106f4 fetch 2 ,mem_app_receive_temp + 3 
+44df 1ff0fe00 byteswap pdata ,pdata 
+44e0 67e106f4 store 2 ,mem_app_receive_temp + 3 
+44e1 1fe27200 copy pdata ,loopcnt 
+44e2 1a20a205 increase 5 ,rega 
+44e3 1a220c00 copy rega ,contr 
+44e4 d8a006f6 arg mem_app_receive_temp + 5 ,contw 
+44e5 20407cda call memcpy 
+44e6 efe08006 ifetch 1 ,contr 
+44e7 67e08700 store 1 ,mem_app_receive_temp + 15 
+44e8 da2006f3 arg mem_app_receive_temp + 2 ,rega 
+44e9 da4006f6 arg mem_app_receive_temp + 5 ,regb 
+44ea 20600000 rtn 
+
+car_control_le_receive:
+44eb 58000000 setarg 0 
+44ec 67e2c700 store 5 ,mem_le_receive_payload 
+44ed 67e2c705 store 5 ,mem_le_receive_payload + 5 
+44ee 204044d7 call le_app_receive_data 
+44ef 1a420c00 copy regb ,contr 
+44f0 d8a04700 arg mem_le_receive_payload ,contw 
+44f1 df20000a arg 10 ,loopcnt 
+44f2 20407cda call memcpy 
+
+car_receive_cmd_select:
+44f3 44984006 bpatch patch06_0 ,mem_patch06 
+44f4 efe08011 ifetch 1 ,rega 
+44f5 c001451e beq car_cmd_old_car_control ,car_drive_old 
+44f6 c001c533 beq car_cmd_old_speed_control ,car_speed_set_old 
+44f7 c002453a beq car_cmd_l_r_motor_control ,car_motor_control 
+44f8 c002c53a beq car_cmd_f_b_motor_control ,car_motor_control 
+44f9 c00345aa beq car_cmd_ir_control ,car_ir_data_rx_from_app 
+44fa c003c5ab beq car_cmd_led_control ,car_led_control_receive 
+44fb c00445ae beq car_cmd_device_info ,car_info_request 
+44fc 20600000 rtn 
+
+car_24g_receive_data:
+44fd 204044eb call car_control_le_receive 
+44fe 6fe086f3 fetch 1 ,mem_app_receive_temp + 2 
+44ff c0024502 beq car_cmd_l_r_motor_control ,car_24g_receive_data_next 
+4500 c002c502 beq car_cmd_f_b_motor_control ,car_24g_receive_data_next 
+4501 20600000 rtn 
+
+car_24g_receive_data_next:
+4502 6fe0c700 fetch 1 ,mem_le_receive_payload 
+4503 245a4509 ncall car_moto1_enable_blank_data_timer ,blank 
+4504 6fe0c702 fetch 1 ,mem_le_receive_payload + 2 
+4505 245a450b ncall car_moto2_enable_blank_data_timer ,blank 
+4506 6fe0c704 fetch 1 ,mem_le_receive_payload + 4 
+4507 245a450d ncall car_moto3_enable_blank_data_timer ,blank 
+4508 20600000 rtn 
+
+car_moto1_enable_blank_data_timer:
+4509 7049a105 jam 5 ,mem_car_moto1_blank_timer 
+450a 20600000 rtn 
+
+car_moto2_enable_blank_data_timer:
+450b 7049a205 jam 5 ,mem_car_moto2_blank_timer 
+450c 20600000 rtn 
+
+car_moto3_enable_blank_data_timer:
+450d 7049a305 jam 5 ,mem_car_moto3_blank_timer 
+450e 20600000 rtn 
+
+car_moto1_blank_data_timer:
+450f da6049a1 arg mem_car_moto1_blank_timer ,regc 
+4510 da404518 arg car_moto1_blank_data ,regb 
+4511 202042e0 branch timer_single_step 
+
+car_moto2_blank_data_timer:
+4512 da6049a2 arg mem_car_moto2_blank_timer ,regc 
+4513 da40451a arg car_moto2_blank_data ,regb 
+4514 202042e0 branch timer_single_step 
+
+car_moto3_blank_data_timer:
+4515 da6049a3 arg mem_car_moto3_blank_timer ,regc 
+4516 da40451c arg car_moto3_blank_data ,regb 
+4517 202042e0 branch timer_single_step 
+
+car_moto1_blank_data:
+4518 70470000 jam 0 ,mem_le_receive_payload 
+4519 2020453a branch car_motor_control 
+
+car_moto2_blank_data:
+451a 70470200 jam 0 ,mem_le_receive_payload + 2 
+451b 2020453a branch car_motor_control 
+
+car_moto3_blank_data:
+451c 70470400 jam 0 ,mem_le_receive_payload + 4 
+451d 2020453a branch car_motor_control 
+
+car_drive_old:
+451e 6fe0c700 fetch 1 ,mem_le_receive_payload 
+451f 67e0c70b store 1 ,mem_motor1_status 
+4520 6fe0c701 fetch 1 ,mem_le_receive_payload + 1 
+4521 67e0c70d store 1 ,mem_motor2_status 
+4522 20204544 branch car_motor_control_common 
+
+car_left_right_control_old:
+4523 6fe0c700 fetch 1 ,mem_le_receive_payload 
+4524 67e0c70d store 1 ,mem_motor2_status 
+4525 20204552 branch car_motor2_control 
+
+car_front_back_control_old:
+4526 6fe0c70c fetch 1 ,mem_motor1_speed 
+4527 2040452b call car_reset_old_speed 
+4528 6fe0c701 fetch 1 ,mem_le_receive_payload + 1 
+4529 67e0c70b store 1 ,mem_motor1_status 
+452a 20204550 branch car_motor1_control 
+
+car_reset_old_speed:
+452b c001452f beq speed_level_2 ,car_reset_old_speed2 
+452c c001c531 beq speed_level_3 ,car_reset_old_speed3 
+452d 67e0c70c store 1 ,mem_motor1_speed 
+452e 20600000 rtn 
+
+car_reset_old_speed2:
+452f 70470c05 jam speed_level_5 ,mem_motor1_speed 
+4530 20600000 rtn 
+
+car_reset_old_speed3:
+4531 70470c0a jam speed_level_10 ,mem_motor1_speed 
+4532 20600000 rtn 
+
+car_speed_set_old:
+4533 6fe0c700 fetch 1 ,mem_le_receive_payload 
+4534 2040452b call car_reset_old_speed 
+4535 6fe0c70c fetch 1 ,mem_motor1_speed 
+4536 2040459e call car_motor_speed_duty_setting 
+4537 204045a1 call car_motor_speed_duty_transform 
+4538 70067100 jam 0x00 ,mem_pdatatemp + 1 
+4539 2020707a branch pwm_duty_cycle_set 
+
+car_motor_control:
+453a 6fe0c79e fetch 1 ,mem_car_24g_go_die_flag 
+453b 247a0000 nrtn blank 
+453c 6fe34700 fetch 6 ,mem_le_receive_payload 
+453d 67e3470b store 6 ,mem_motor1_status 
+453e 6fe0c70c fetch 1 ,mem_motor1_speed 
+453f 6848c70e fetcht 1 ,mem_motor2_speed 
+4540 98417e00 iand temp ,pdata 
+4541 6848c710 fetcht 1 ,mem_motor3_speed 
+4542 98417e00 iand temp ,pdata 
+4543 205a4556 call car_motor_working_flag ,blank 
+
+car_motor_control_common:
+4544 4498c006 bpatch patch06_1 ,mem_patch06 
+4545 6fe144e9 fetch 2 ,mem_ui_state_map 
+4546 2feffe09 isolate1 ui_state_ble_connected ,pdata 
+4547 2440c463 ncall car_lpm_timer_enable ,true 
+4548 20404550 call car_motor1_control 
+4549 20404552 call car_motor2_control 
+454a 2020454b branch car_conn_led_state 
+
+car_conn_led_state:
+454b 6fe0c70b fetch 1 ,mem_motor1_status 
+454c 6848c70d fetcht 1 ,mem_motor2_status 
+454d 9840fe00 iadd temp ,pdata 
+454e 243a788d nbranch check_51cmd_led_on ,blank 
+454f 2020788b branch check_51cmd_led_off 
+
+car_motor1_control:
+4550 d8c0470b arg mem_motor1_status ,contr 
+4551 20204558 branch car_motor1_status_select 
+
+car_motor2_control:
+4552 d8c0470d arg mem_motor2_status ,contr 
+4553 2020455d branch car_motor2_status_select 
+
+car_motor3_control:
+4554 d8c0470f arg mem_motor3_status ,contr 
+4555 2020457a branch car_motor_status_select 
+
+car_motor_working_flag:
+4556 70477f00 jam 0 ,mem_car_working_flag 
+4557 20600000 rtn 
+
+car_motor1_status_select:
+4558 efe08006 ifetch 1 ,contr 
+4559 c0004562 beq turn_front ,car_lr_motor_stop 
+455a c000c566 beq turn_left ,car_lr_motor_left 
+455b c001456a beq turn_right ,car_lr_motor_right 
+455c 20600000 rtn 
+
+car_motor2_status_select:
+455d efe08006 ifetch 1 ,contr 
+455e c000456e beq motor_stop ,car_fb_motor_stop 
+455f c0014572 beq go_back ,car_fb_motor_front 
+4560 c000c576 beq go_front ,car_fb_motor_back 
+4561 20600000 rtn 
+
+car_lr_motor_stop:
+4562 6848c9a5 fetcht 1 ,mem_car_motor_left_gpio 
+4563 20406ef3 call gpio_out_inactive 
+4564 6848c9a6 fetcht 1 ,mem_car_motor_right_gpio 
+4565 20206ef3 branch gpio_out_inactive 
+
+car_lr_motor_left:
+4566 6848c9a5 fetcht 1 ,mem_car_motor_left_gpio 
+4567 20406ef7 call gpio_out_active 
+4568 6848c9a6 fetcht 1 ,mem_car_motor_right_gpio 
+4569 20206ef3 branch gpio_out_inactive 
+
+car_lr_motor_right:
+456a 6848c9a5 fetcht 1 ,mem_car_motor_left_gpio 
+456b 20406ef3 call gpio_out_inactive 
+456c 6848c9a6 fetcht 1 ,mem_car_motor_right_gpio 
+456d 20206ef7 branch gpio_out_active 
+
+car_fb_motor_stop:
+456e 6848c9a7 fetcht 1 ,mem_car_motor_front_gpio 
+456f 20406ef3 call gpio_out_inactive 
+4570 6848c9a8 fetcht 1 ,mem_car_motor_back_gpio 
+4571 20206ef3 branch gpio_out_inactive 
+
+car_fb_motor_front:
+4572 6848c9a7 fetcht 1 ,mem_car_motor_front_gpio 
+4573 20406ef7 call gpio_out_active 
+4574 6848c9a8 fetcht 1 ,mem_car_motor_back_gpio 
+4575 20206ef3 branch gpio_out_inactive 
+
+car_fb_motor_back:
+4576 6848c9a7 fetcht 1 ,mem_car_motor_front_gpio 
+4577 20406ef3 call gpio_out_inactive 
+4578 6848c9a8 fetcht 1 ,mem_car_motor_back_gpio 
+4579 20206ef7 branch gpio_out_active 
+
+car_motor_status_select:
+457a 44994006 bpatch patch06_2 ,mem_patch06 
+457b efe08006 ifetch 1 ,contr 
+457c c0004587 beq motor_stop ,car_motor_stop 
+457d c000c580 beq go_front ,car_motor_positive 
+457e c0014582 beq go_back ,car_motor_negative 
+457f 20600000 rtn 
+
+car_motor_positive:
+4580 70472900 jam 0 ,mem_motor_select_p_n 
+4581 20204583 branch car_motor_negative + 1 
+
+car_motor_negative:
+4582 70472901 jam 1 ,mem_motor_select_p_n 
+4583 efe08006 ifetch 1 ,contr 
+4584 67e0c72b store 1 ,mem_car_motor_speed 
+4585 efe40012 ifetch 8 ,regb 
+4586 2020458c branch car_motor_work 
+
+car_motor_stop:
+4587 efe08012 ifetch 1 ,regb 
+4588 204070bd call pwm_disable 
+4589 1a40a401 increase 1 ,regb 
+458a efe08012 ifetch 1 ,regb 
+458b 202070bd branch pwm_disable 
+
+car_motor_work:
+458c 67e4472c store 8 ,mem_motor_pwm_pin1_set 
+458d 70477f01 jam 1 ,mem_car_working_flag 
+458e 6fe0c729 fetch 1 ,mem_motor_select_p_n 
+458f c000459a beq 0 ,car_motor_select_positive 
+
+car_motor_select_negative:
+4590 6fe0c72d fetch 1 ,mem_motor_pwm_pin2_set 
+4591 67e0c72e store 1 ,mem_motor_pwm_pin_set 
+4592 6fe0c72c fetch 1 ,mem_motor_pwm_pin1_set 
+
+car_motor_work_next:
+4593 204070bd call pwm_disable 
+4594 6fe0c72b fetch 1 ,mem_car_motor_speed 
+4595 2040459e call car_motor_speed_duty_setting 
+4596 67e0c733 store 1 ,mem_motor_pwm_dute_set 
+4597 6fe3472e fetch 6 ,mem_motor_pwm_pin_set 
+4598 67e30670 store 6 ,mem_pdatatemp 
+4599 20207066 branch pwm_out_set 
+
+car_motor_select_positive:
+459a 6fe0c72c fetch 1 ,mem_motor_pwm_pin1_set 
+459b 67e0c72e store 1 ,mem_motor_pwm_pin_set 
+459c 6fe0c72d fetch 1 ,mem_motor_pwm_pin2_set 
+459d 20204593 branch car_motor_work_next 
+
+car_motor_speed_duty_setting:
+459e 1feffe05 mul32 pdata ,5 ,pdata 
+459f 1fe0fe32 add pdata ,50 ,pdata 
+45a0 20600000 rtn 
+
+car_motor_speed_duty_transform:
+45a1 d8402ee0 arg 12000 ,temp 
+45a2 984ffe00 imul32 temp ,pdata 
+45a3 1fe6fc64 div pdata ,100 
+45a4 20407d62 call wait_div_end 
+45a5 18078400 quotient temp 
+45a6 18422200 copy temp ,rega 
+45a7 58002ee0 setarg 12000 
+45a8 98462400 isub temp ,regb 
+45a9 20600000 rtn 
+
+car_ir_data_rx_from_app:
+45aa 20600000 rtn 
+
+car_led_control_receive:
+45ab 6fe44700 fetch 8 ,mem_le_receive_payload 
+45ac 67e4474a store 8 ,mem_car_led_control 
+45ad 20600000 rtn 
+
+car_info_request:
+45ae 6fe0c767 fetch 1 ,mem_car_config_device_select 
+45af 67e0c75d store 1 ,mem_car_info_request_payload 
+45b0 6fe0c768 fetch 1 ,mem_car_config_motor_layout 
+45b1 67e0c75e store 1 ,mem_car_info_request_payload + 1 
+45b2 6fe0c769 fetch 1 ,mem_car_config_ir_enable 
+45b3 67e0c75f store 1 ,mem_car_info_request_payload + 2 
+45b4 df20000d arg 13 ,loopcnt 
+45b5 d8c04758 arg mem_car_info_request_head ,contr 
+45b6 204044cb call calc_check_sum_start 
+45b7 67e0c765 store 1 ,mem_car_info_request_checksum 
+45b8 da204755 arg mem_car_info_request ,rega 
+45b9 202078b2 branch queue_push 
+
+car_g24_init:
+45ba 58000000 setarg 0 
+45bb 67e445d6 store 8 ,mem_24g_bind_payload 
+45bc 2040339f call g24_receive_init 
+45bd 20203402 branch g24_mode_switch_init 
+
+car_g24_receive_process:
+45be 204045c2 call car_g24_mode_switch 
+45bf 204045ca call car_g24_work_mode 
+45c0 2040460e call car_g24_bind_mode 
+45c1 20204665 branch car_g24_lpm_dipatch 
+
+car_g24_mode_switch:
+45c2 20403407 call g24_mode_switch_bind_work 
+
+car_g24_bind_mode_enable:
+45c3 6fe0c616 fetch 1 ,mem_24g_work_mode 
+45c4 c1808000 rtnne dongle_bind 
+45c5 6fe0c9b8 fetch 1 ,mem_car_24g_bind_enable_delay_count 
+45c6 243a3460 nbranch g24_switch_work_mode ,blank 
+45c7 6fe0c798 fetch 1 ,mem_car_24g_status 
+45c8 c0013460 beq work_search ,g24_switch_work_mode 
+45c9 20600000 rtn 
+
+car_g24_work_mode:
+45ca 6fe0c616 fetch 1 ,mem_24g_work_mode 
+45cb c1800000 rtnne dongle_work 
+45cc 204045d9 call car_g24_work_mode_start 
+45cd 2037c5d7 branch car_g24_ch_polling_clear ,user3 
+
+car_g24_receive_ch_polling:
+45ce 6fe0c9c0 fetch 1 ,mem_car_enter_lpm_flag 
+45cf 207a0000 rtn blank 
+45d0 6fe0c9c1 fetch 1 ,mem_car_24g_ch_polling 
+45d1 1fe0fe01 increase 1 ,pdata 
+45d2 67e0c9c1 store 1 ,mem_car_24g_ch_polling 
+45d3 c00245d7 beq 4 ,car_g24_ch_polling_clear 
+45d4 20403222 call g24_ch 
+45d5 204045ea call car_g24_receive_packet_start 
+45d6 2437c5ce nbranch car_g24_receive_ch_polling ,user3 
+
+car_g24_ch_polling_clear:
+45d7 7049c100 jam 0 ,mem_car_24g_ch_polling 
+45d8 20600000 rtn 
+
+car_g24_work_mode_start:
+45d9 6fe0c616 fetch 1 ,mem_24g_work_mode 
+45da c1800000 rtnne dongle_work 
+45db 204045de call car_g24_work_init 
+45dc 20403518 call g24_ch_process 
+45dd 202045ea branch car_g24_receive_packet_start 
+
+car_g24_work_init:
+45de 6fe0c615 fetch 1 ,mem_24g_mode_init 
+45df c3800000 rtnbit1 dongle_work 
+45e0 79207e00 set1 dongle_work ,pdata 
+45e1 67e0c615 store 1 ,mem_24g_mode_init 
+45e2 6fe0c623 fetch 1 ,mem_tx_power_temp 
+45e3 67e0c141 store 1 ,mem_tx_power 
+45e4 70461100 jam 0 ,mem_24g_ackpayload_enable 
+45e5 70090d00 jam 0 ,mem_usb_tx_enable 
+45e6 70460a01 jam 1 ,mem_24g_abort_packet 
+45e7 70457e00 jam 0 ,mem_24g_pid 
+45e8 6fe249da fetch 4 ,mem_car_24g_commom_addr 
+45e9 2020345d branch g24_work_init + 12 
+
+car_g24_receive_packet_start:
+45ea 204033f1 call g24_receive_transmit_ack 
+45eb 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+
+p_g24_receive_packet_parse:
+45ec 204033e3 call g24_receive_packet_parse_pid_crc 
+45ed 243433be nbranch g24_rx_interrupt_clear ,user 
+45ee 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+45ef 203a33be branch g24_rx_interrupt_clear ,blank 
+45f0 1fe0fe02 increase 2 ,pdata 
+45f1 98007200 iforce loopcnt 
+45f2 d8c044f7 arg mem_24g_rxbuf ,contr 
+45f3 d8a045e8 arg mem_24g_rxdata_temp ,contw 
+45f4 20407cda call memcpy 
+45f5 70461300 jam 0 ,mem_24g_mode_switch 
+45f6 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+45f7 205a33fe call g24_enable_nodata_timer ,blank 
+45f8 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+45f9 c07fc5fc beq datatype_attemp ,car_g24_data_attemp 
+45fa c000c601 beq datatype_device1 ,car_g24_data_device1 
+45fb 202033bb branch g24_receive_packet_parse + 14 
+
+car_g24_data_attemp:
+45fc 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+45fd 247a0000 nrtn blank 
+45fe 6fe0c5d5 fetch 1 ,mem_24g_bind_device_status 
+45ff 207a0000 rtn blank 
+4600 2020359b branch g24_data_attemp 
+
+car_g24_data_device1:
+4601 2040352e call g24_ch_timer_reinit 
+4602 6fe0c60a fetch 1 ,mem_24g_abort_packet 
+4603 6848c5e8 fetcht 1 ,mem_24g_rxdata_temp 
+4604 284ffe03 isolate1 bit_abort ,temp 
+4605 7920fe00 setflag true ,0 ,pdata 
+4606 67e0c60a store 1 ,mem_24g_abort_packet 
+4607 c000c609 beq 1 ,car_g24_data_attemp_device1_abort 
+4608 202033cb branch g24_data_device1 + 7 
+
+car_g24_data_attemp_device1_abort:
+4609 6fe0c3cb fetch 1 ,mem_device_option 
+460a 1fe67c0e sub pdata ,dvc_op_car ,null 
+460b 2042f88d call check_51cmd_led_on ,zero 
+460c 6fe245f2 fetch 4 ,mem_24g_rxdata_temp + 10 
+460d 202035a3 branch g24_store_device1_addr 
+
+car_g24_bind_mode:
+460e 6fe0c616 fetch 1 ,mem_24g_work_mode 
+460f c1808000 rtnne dongle_bind 
+4610 204032ff call g24_bind_init 
+4611 2040465b call car_g24_bind_device_addr 
+4612 204033be call g24_rx_interrupt_clear 
+4613 20403119 call g24_receive_packet 
+4614 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+4615 2040331e call g24_bind_data_parse 
+4616 204033f4 call g24_transmit_ack 
+4617 20403399 call g24_bind_device_status_check 
+4618 20403317 call g24_bind_data_process + 8 
+4619 6fe0c5d5 fetch 1 ,mem_24g_bind_device_status 
+461a 243a4621 nbranch car_g24_bind_mode_exit ,blank 
+461b 2040350a call g24_nodata_process 
+461c 6fe0c614 fetch 1 ,mem_24g_nodata_timer_enable 
+461d 207a0000 rtn blank 
+461e 58000000 setarg 0 
+461f 67e24630 store 4 ,mem_24g_device1_addr 
+4620 20600000 rtn 
+
+car_g24_bind_mode_exit:
+4621 70461300 jam 0 ,mem_24g_mode_switch 
+4622 da200000 arg 0 ,rega 
+4623 2040788d call check_51cmd_led_on 
+4624 20403460 call g24_switch_work_mode 
+4625 20403258 call g24_timer_init 
+4626 6fe244f1 fetch 4 ,mem_24g_lap 
+4627 67e249da store 4 ,mem_car_24g_commom_addr 
+4628 6fe0c9e6 fetch 1 ,mem_car_save_addr_flag 
+4629 245a462c ncall car_g24_save_commom_addr ,blank 
+462a 6fe249da fetch 4 ,mem_car_24g_commom_addr 
+462b 20203236 branch g24_update_addr_and_synccrc8 
+
+car_g24_save_commom_addr:
+462c 6fe0c9e6 fetch 1 ,mem_car_save_addr_flag 
+462d 207a0000 rtn blank 
+462e 6fe0c62d fetch 1 ,mem_24g_transmitter_addr + 1 
+462f 67e0c9dd store 1 ,mem_car_24g_commom_addr + 3 
+4630 6fe0c4f2 fetch 1 ,mem_24g_lap + 1 
+4631 67e0c9dc store 1 ,mem_car_24g_commom_addr + 2 
+4632 6fe0c62c fetch 1 ,mem_24g_transmitter_addr 
+4633 67e0c9db store 1 ,mem_car_24g_commom_addr + 1 
+4634 6fe0c4f1 fetch 1 ,mem_24g_lap 
+4635 67e0c9da store 1 ,mem_car_24g_commom_addr 
+4636 20600000 rtn 
+4637 2040464a call car_g24_search_commom_addr 
+4638 6fe249da fetch 4 ,mem_car_24g_commom_addr 
+4639 684a49de fetcht 4 ,mem_car_24g_commom_addr_temp 
+463a 98467c00 isub temp ,null 
+463b 20628000 rtn zero 
+463c 1a622400 copy regc ,regb 
+463d da2049da arg mem_car_24g_commom_addr ,rega 
+463e df200004 arg 4 ,loopcnt 
+463f 20206b45 branch otp_write 
+
+car_g24_load_commom_addr:
+4640 6fe244f1 fetch 4 ,mem_24g_lap 
+4641 67e249da store 4 ,mem_car_24g_commom_addr 
+4642 6fe0c9e6 fetch 1 ,mem_car_save_addr_flag 
+4643 207a0000 rtn blank 
+4644 20600000 rtn 
+4645 2040464a call car_g24_search_commom_addr 
+4646 6fe249de fetch 4 ,mem_car_24g_commom_addr_temp 
+4647 207a0000 rtn blank 
+4648 67e249da store 4 ,mem_car_24g_commom_addr 
+4649 20600000 rtn 
+
+car_g24_search_commom_addr:
+464a 20600000 rtn 
+464b 6fe0c9e6 fetch 1 ,mem_car_save_addr_flag 
+464c 207a0000 rtn blank 
+464d da600700 arg otp_offset_car_commom_start_addr ,regc 
+
+car_g24_search_commom_addr_loop:
+464e 1a622400 copy regc ,regb 
+464f da2049e2 arg mem_car_24g_commom_addr_read ,rega 
+4650 df200004 arg 4 ,loopcnt 
+4651 20406b74 call otp_read_data 
+4652 6fe249e2 fetch 4 ,mem_car_24g_commom_addr_read 
+4653 207a0000 rtn blank 
+4654 67e249de store 4 ,mem_car_24g_commom_addr_temp 
+4655 1a627e00 copy regc ,pdata 
+4656 d84007cc arg otp_offset_car_commom_end_addr ,temp 
+4657 98467c00 isub temp ,null 
+4658 20610000 rtn positive 
+4659 1a60a604 increase 4 ,regc 
+465a 2020464e branch car_g24_search_commom_addr_loop 
+
+car_g24_bind_device_addr:
+465b 6fe24630 fetch 4 ,mem_24g_device1_addr 
+465c 207a0000 rtn blank 
+465d 20203236 branch g24_update_addr_and_synccrc8 
+
+car_g24_cb_data_device1:
+465e 6fe144e9 fetch 2 ,mem_ui_state_map 
+465f c3848000 rtnbit1 ui_state_ble_connected 
+4660 6fe14799 fetch 2 ,mem_car_24g_no_data_timeout_count 
+4661 67e1479b store 2 ,mem_car_24g_no_data_timeout_timer 
+4662 7049b701 jam work_paired ,mem_car_24g_received_pac 
+4663 da2045eb arg mem_24g_rxdata_temp + 3 ,rega 
+4664 202044fd branch car_24g_receive_data 
+
+car_g24_lpm_dipatch:
+4665 6fe0c9c0 fetch 1 ,mem_car_enter_lpm_flag 
+4666 207a0000 rtn blank 
+4667 2040466d call car_g24_lpm_wait 
+4668 24740000 nrtn user 
+4669 6fe1c5af fetch 3 ,mem_24g_enter_hibernate 
+466a 20407d25 call clk2lpo 
+466b 604a40a9 storet 4 ,mem_sleep_counter 
+466c 2020241e branch lpm_sleep 
+
+car_g24_lpm_wait:
+466d 78347c00 enable user 
+466e 20402408 call lpo_calibration 
+466f 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+4670 203a7dbc branch disable_user ,blank 
+4671 20204430 branch car_le_process_lpm_before 
+
+remote_car_init:
+4672 20758000 rtn wake 
+4673 20404772 call remote_car_default_init 
+4674 20406ff7 call keyscan_key_init 
+4675 58004756 setarg remote_car_g24_package_data 
+4676 67e145f2 store 2 ,mem_cb_24g_transmit_data 
+4677 580046b6 setarg remote_car_process_lpm_before 
+4678 67e145f6 store 2 ,mem_cb_24g_lpm_before 
+4679 580046b1 setarg remote_car_le_before_hibernate 
+467a 67e143d5 store 2 ,mem_cb_before_hibernate 
+467b 580046f0 setarg remote_car_scale_process_idle 
+467c 67e143db store 2 ,mem_cb_idle_process 
+467d 580046f2 setarg remote_car_scale_process_bb_event 
+467e 67e143dd store 2 ,mem_cb_bb_event_process 
+467f 5800473b setarg remote_car_event_timer 
+4680 67e143e3 store 2 ,mem_cb_event_timer 
+4681 580046a6 setarg remote_car_power_off_signal 
+4682 67e146ee store 2 ,mem_remote_car_power_off_cb 
+4683 58004696 setarg remote_car_soft_switch_power_on_signal 
+4684 67e146f2 store 2 ,mem_remote_car_power_standby_cb 
+4685 4499c006 bpatch patch06_3 ,mem_patch06 
+4686 20406cc1 call set_eeprom_size_2k 
+4687 204046ad call remote_car_init_environment 
+4688 204078ad call queue_init 
+4689 6fe0c6be fetch 1 ,mem_remote_car_config_soft_switch_enable 
+468a 67e0c62d store 1 ,mem_remote_car_hard_soft_switch 
+468b c0004695 beq hard_switch ,remote_car_hard_switch_power_on_signal 
+468c 6fe0c6bf fetch 1 ,mem_remote_car_config_soft_switch_gpio 
+468d 67e0c4ec store 1 ,mem_ui_button_gpio 
+
+remote_car_soft_switch_power_on_init:
+468e 204046a6 call remote_car_ui_led_init 
+468f 20407776 call ui_button_init 
+4690 20407780 call ui_button_polling 
+4691 7046ea01 jam power_starting ,mem_remote_car_power_state 
+4692 6fe144e9 fetch 2 ,mem_ui_state_map 
+4693 c3860000 rtnbit1 ui_state_btn_down 
+4694 20204327 branch app_enter_hibernate 
+
+remote_car_hard_switch_power_on_signal:
+4695 7046ea02 jam power_standby ,mem_remote_car_power_state 
+
+remote_car_soft_switch_power_on_signal:
+4696 204046a6 call remote_car_ui_led_init 
+4697 da200000 arg 0 ,rega 
+4698 204077c4 call ui_led_blink_start_global 
+4699 20404719 call remote_car_g24_load_commom_addr 
+469a 6fe24700 fetch 4 ,mem_remote_24g_commom_addr 
+469b 67e2458f store 4 ,mem_24g_addr 
+469c 203a3291 branch g24_pair_start ,blank 
+469d 6fe2458f fetch 4 ,mem_24g_addr 
+469e 67e245e8 store 4 ,mem_24g_receiver_addr 
+469f 6fe145dc fetch 2 ,mem_24g_reconn_timeout_init 
+46a0 67e145de store 2 ,mem_24g_reconn_timeout 
+46a1 20203534 branch g24_reconn_start 
+
+remote_car_set_24g_addr_eeprom:
+46a2 d8400004 arg 4 ,temp 
+46a3 da20458f arg mem_24g_addr ,rega 
+46a4 da400000 arg remote_info_eeprom_offect ,regb 
+46a5 20600000 rtn 
+
+remote_car_power_off_signal:
+
+remote_car_ui_led_init:
+46a6 449a4006 bpatch patch06_4 ,mem_patch06 
+46a7 6fe0c6bc fetch 1 ,mem_remote_car_config_connect_led_gpio 
+46a8 c0ffc6ab bne invalid_pin_num ,remote_car_pairing_led_gpio_set 
+
+remote_car_ui_led_init_1:
+46a9 6848c699 fetcht 1 ,mem_remote_car_led_map 
+46aa 20206ef7 branch gpio_config_output 
+
+remote_car_pairing_led_gpio_set:
+46ab 67e0c699 store 1 ,mem_remote_car_led_map 
+46ac 202046a9 branch remote_car_ui_led_init_1 
+
+remote_car_init_environment:
+46ad 204035f0 call g24_transmit_init 
+
+remote_no_data_timer_init:
+46ae 6fe146e6 fetch 2 ,mem_remote_car_no_data_timeout 
+46af 67e146e8 store 2 ,mem_remote_car_no_data_timer 
+46b0 20600000 rtn 
+
+remote_car_le_before_hibernate:
+46b1 204046b6 call remote_car_process_lpm_before 
+
+remote_gpio_set_before_hibernate:
+46b2 6fe0c68f fetch 1 ,mem_remote_style_struct_led_gpio 
+46b3 79207e07 set1 7 ,pdata 
+46b4 d840003f arg gpcfg_output_high ,temp 
+46b5 20206f20 branch gpio_config_function 
+
+remote_car_process_lpm_before:
+46b6 20406f35 call gpio_set_before_lpm 
+46b7 2020701b branch keyscan_process_lpm_before 
+
+remote_car_key_scan_process:
+46b8 20407027 call keyscan_key_process 
+46b9 204046c9 call get_remote_key_state 
+46ba 204046bc call remote_conn_led_state 
+46bb 202046d7 branch send_data 
+
+remote_conn_led_state:
+46bc 6fe0c6f5 fetch 1 ,mem_remote_car_24g_status 
+46bd c1808000 rtnne work_paired 
+46be 6fe246f9 fetch 4 ,mem_remote_car_motor1_key0_press_state 
+46bf 203a46c3 branch remote_car_stop_state ,blank 
+46c0 7046ff00 jam 0 ,mem_remote_car_no_data_check 
+46c1 78347c00 enable user 
+46c2 2020788d branch check_51cmd_led_on 
+
+remote_car_stop_state:
+46c3 6fe0c6ff fetch 1 ,mem_remote_car_no_data_check 
+46c4 c17f8000 rtneq 0xff 
+46c5 1fe0fe01 pincrease 1 
+46c6 67e0c6ff store 1 ,mem_remote_car_no_data_check 
+46c7 78547c00 disable user 
+46c8 2020788b branch check_51cmd_led_off 
+
+get_remote_key_state:
+46c9 6849442e fetcht 2 ,mem_key_value_retention 
+46ca 18417e01 and temp ,0x01 ,pdata 
+46cb 18430400 rshift temp ,temp 
+46cc 67e0c6f9 store 1 ,mem_remote_car_motor1_key0_press_state 
+46cd 18417e01 and temp ,0x01 ,pdata 
+46ce 18430400 rshift temp ,temp 
+46cf 67e0c6fa store 1 ,mem_remote_car_motor1_key1_press_state 
+46d0 18417e01 and temp ,0x01 ,pdata 
+46d1 18430400 rshift temp ,temp 
+46d2 67e0c6fb store 1 ,mem_remote_car_motor2_key2_press_state 
+46d3 18417e01 and temp ,0x01 ,pdata 
+46d4 18430400 rshift temp ,temp 
+46d5 67e0c6fc store 1 ,mem_remote_car_motor2_key3_press_state 
+46d6 20600000 rtn 
+
+send_data:
+46d7 449ac006 bpatch patch06_5 ,mem_patch06 
+46d8 204046e6 call remote_car_fb_check 
+46d9 204046eb call remote_car_lr_check 
+46da 204046dd call remote_car_no_data_timeout_check 
+46db 24740000 nrtn user 
+46dc 20204752 branch remote_car_send_key 
+
+remote_car_no_data_timeout_check:
+46dd 6fe0c6f5 fetch 1 ,mem_remote_car_24g_status 
+46de c1808000 rtnne work_paired 
+46df 6fe0c6ff fetch 1 ,mem_remote_car_no_data_check 
+46e0 207a0000 rtn blank 
+46e1 1fe67c01 sub pdata ,1 ,null 
+46e2 24610000 nrtn positive 
+46e3 6fe145dc fetch 2 ,mem_24g_reconn_timeout_init 
+46e4 67e145de store 2 ,mem_24g_reconn_timeout 
+46e5 20207dba branch enable_user 
+
+remote_car_fb_check:
+46e6 6fe0c6f9 fetch 1 ,mem_remote_car_motor1_key0_press_state 
+46e7 243a4746 nbranch remote_car_send_motor1_key0_press ,blank 
+46e8 6fe0c6fa fetch 1 ,mem_remote_car_motor1_key1_press_state 
+46e9 243a4748 nbranch remote_car_send_motor1_key1_press ,blank 
+46ea 2020474e branch remote_car_send_motor1_key0_rel 
+
+remote_car_lr_check:
+46eb 6fe0c6fb fetch 1 ,mem_remote_car_motor2_key2_press_state 
+46ec 243a474a nbranch remote_car_send_motor2_key2_press ,blank 
+46ed 6fe0c6fc fetch 1 ,mem_remote_car_motor2_key3_press_state 
+46ee 243a474c nbranch remote_car_send_motor2_key3_press ,blank 
+46ef 20204750 branch remote_car_send_motor2_key2_rel 
+
+remote_car_scale_process_idle:
+46f0 20404730 call remote_car_24g_status_process 
+46f1 202046b8 branch remote_car_key_scan_process 
+
+remote_car_scale_process_bb_event:
+46f2 1a627e00 copy regc ,pdata 
+46f3 c016c347 beq bt_evt_button_up ,app_event_button_up 
+46f4 c008432f beq bt_evt_button_long_pressed ,app_button_long_pressed 
+46f5 c01cc6fa beq bt_evt_24g_pairing_complete ,remote_car_24g_pairing_complete 
+46f6 c01e4701 beq bt_evt_24g_attempt_success ,remote_car_24g_attempt_success 
+46f7 c01d46f9 beq bt_evt_24g_attempt_fail ,remote_car_24g_attempt_fail 
+46f8 20600000 rtn 
+
+remote_car_24g_attempt_fail:
+46f9 2020357b branch g24_txbuf_clear 
+
+remote_car_24g_pairing_complete:
+46fa 449b4006 bpatch patch06_6 ,mem_patch06 
+46fb 6fe245e8 fetch 4 ,mem_24g_receiver_addr 
+46fc 67e24700 store 4 ,mem_remote_24g_commom_addr 
+46fd 6fe0c70c fetch 1 ,mem_remote_save_addr_flag 
+46fe 245a4706 ncall remote_car_g24_save_commom_addr ,blank 
+46ff 6fe24700 fetch 4 ,mem_remote_24g_commom_addr 
+4700 20403236 call g24_update_addr_and_synccrc8 
+
+remote_car_24g_attempt_success:
+4701 7045fc00 jam 0 ,mem_24g_conn_sm 
+4702 7046f601 jam work_paired ,mem_remote_car_24g_auto_work_step 
+4703 7046f701 jam work_paired ,mem_remote_car_24g_pair_success_flag 
+4704 7045de00 jam 0 ,mem_24g_reconn_timeout 
+4705 20600000 rtn 
+
+remote_car_g24_save_commom_addr:
+4706 6fe0c70c fetch 1 ,mem_remote_save_addr_flag 
+4707 207a0000 rtn blank 
+4708 6fe0c4f2 fetch 1 ,mem_24g_lap + 1 
+4709 67e0c703 store 1 ,mem_remote_24g_commom_addr + 3 
+470a 6fe0c5e9 fetch 1 ,mem_24g_receiver_addr + 1 
+470b 67e0c702 store 1 ,mem_remote_24g_commom_addr + 2 
+470c 6fe0c4f1 fetch 1 ,mem_24g_lap 
+470d 67e0c701 store 1 ,mem_remote_24g_commom_addr + 1 
+470e 6fe0c5e8 fetch 1 ,mem_24g_receiver_addr 
+470f 67e0c700 store 1 ,mem_remote_24g_commom_addr 
+4710 20404720 call remote_car_g24_search_commom_addr 
+4711 6fe24700 fetch 4 ,mem_remote_24g_commom_addr 
+4712 684a4704 fetcht 4 ,mem_remote_24g_commom_addr_temp 
+4713 98467c00 isub temp ,null 
+4714 20628000 rtn zero 
+4715 1a622400 copy regc ,regb 
+4716 da204700 arg mem_remote_24g_commom_addr ,rega 
+4717 df200004 arg 4 ,loopcnt 
+4718 20206b45 branch otp_write 
+
+remote_car_g24_load_commom_addr:
+4719 6fe0c70c fetch 1 ,mem_remote_save_addr_flag 
+471a 207a0000 rtn blank 
+471b 20404720 call remote_car_g24_search_commom_addr 
+471c 6fe24704 fetch 4 ,mem_remote_24g_commom_addr_temp 
+471d 207a0000 rtn blank 
+471e 67e24700 store 4 ,mem_remote_24g_commom_addr 
+471f 20600000 rtn 
+
+remote_car_g24_search_commom_addr:
+4720 6fe0c70c fetch 1 ,mem_remote_save_addr_flag 
+4721 207a0000 rtn blank 
+4722 da600700 arg otp_offset_remote_commom_start_addr ,regc 
+
+remote_car_g24_search_commom_addr_loop:
+4723 1a622400 copy regc ,regb 
+4724 da204704 arg mem_remote_24g_commom_addr_temp ,rega 
+4725 df200004 arg 4 ,loopcnt 
+4726 20406b74 call otp_read_data 
+4727 6fe24708 fetch 4 ,mem_remote_24g_commom_addr_read 
+4728 207a0000 rtn blank 
+4729 67e24704 store 4 ,mem_remote_24g_commom_addr_temp 
+472a 1a627e00 copy regc ,pdata 
+472b d84007cc arg otp_offset_remote_commom_end_addr ,temp 
+472c 98467c00 isub temp ,null 
+472d 20610000 rtn positive 
+472e 1a60a604 increase 4 ,regc 
+472f 20204723 branch remote_car_g24_search_commom_addr_loop 
+
+remote_car_24g_status_process:
+4730 6fe0c6f6 fetch 1 ,mem_remote_car_24g_auto_work_step 
+4731 c1000000 rtneq power_on 
+4732 6fe0c6f5 fetch 1 ,mem_remote_car_24g_status 
+4733 c1008000 rtneq work_paired 
+4734 7046f501 jam work_paired ,mem_remote_car_24g_status 
+
+remote_car_scale_process_paired:
+4735 da200000 arg 0 ,rega 
+4736 202077bf branch ui_led_off_global 
+
+remote_car_scale_process_shutdown:
+4737 da200000 arg 0 ,rega 
+4738 204077bf call ui_led_off_global 
+4739 204046a6 call remote_car_ui_led_init 
+473a 20204327 branch app_enter_hibernate 
+
+remote_car_event_timer:
+473b 204042ee call app_power_timer 
+473c 2040328e call g24_pair_timeout_timer 
+473d 20403531 call g24_reconn_timeout_timer 
+473e 2020473f branch remote_car_no_data_timer 
+
+remote_car_no_data_timer:
+473f 6fe0c6c0 fetch 1 ,mem_remote_car_config_timeout_shutdown_enable 
+4740 207a0000 rtn blank 
+4741 6fe0c42e fetch 1 ,mem_key_value_retention 
+4742 243a46ae nbranch remote_no_data_timer_init ,blank 
+4743 da6046e8 arg mem_remote_car_no_data_timer ,regc 
+4744 da404737 arg remote_car_scale_process_shutdown ,regb 
+4745 202042e7 branch timer_single_step_2b 
+
+remote_car_send_motor1_key0_press:
+4746 7046c701 jam motor_positive ,mem_remote_car_24g_motor1_payload 
+4747 20600000 rtn 
+
+remote_car_send_motor1_key1_press:
+4748 7046c702 jam motor_negative ,mem_remote_car_24g_motor1_payload 
+4749 20600000 rtn 
+
+remote_car_send_motor2_key2_press:
+474a 7046c901 jam motor_positive ,mem_remote_car_24g_motor2_payload 
+474b 20600000 rtn 
+
+remote_car_send_motor2_key3_press:
+474c 7046c902 jam motor_negative ,mem_remote_car_24g_motor2_payload 
+474d 20600000 rtn 
+
+remote_car_send_motor1_key0_rel:
+
+remote_car_send_motor1_key1_rel:
+474e 7046c700 jam motor_stop ,mem_remote_car_24g_motor1_payload 
+474f 20600000 rtn 
+
+remote_car_send_motor2_key2_rel:
+
+remote_car_send_motor2_key3_rel:
+4750 7046c900 jam motor_stop ,mem_remote_car_24g_motor2_payload 
+4751 20600000 rtn 
+
+remote_car_send_key:
+4752 da2046c1 arg mem_remote_car_24g_motor_packet ,rega 
+4753 202078b2 branch queue_push 
+
+remote_car_send_attack:
+4754 da2046ce arg mem_remote_car_24g_fire_packet ,rega 
+4755 202078b2 branch queue_push 
+
+remote_car_g24_package_data:
+4756 6fe0c6f7 fetch 1 ,mem_remote_car_24g_pair_success_flag 
+4757 c000c760 beq work_paired ,remote_car_g24_send_empty 
+4758 da2046d7 arg mem_remote_car_24g_tx_temp ,rega 
+4759 204078ca call queue_pop 
+475a 24344765 nbranch remote_car_moto_data ,user 
+
+remote_car_g24_package_data_continue:
+475b d8c046d7 arg mem_remote_car_24g_tx_temp ,contr 
+475c efe08006 ifetch 1 ,contr 
+475d 1fe22200 copy pdata ,rega 
+475e da4046d8 arg mem_remote_car_24g_tx_temp + 1 ,regb 
+475f 20600000 rtn 
+
+remote_car_g24_send_empty:
+4760 7046f700 jam 0 ,mem_remote_car_24g_pair_success_flag 
+4761 78347c00 enable user 
+4762 da200001 arg 1 ,rega 
+4763 da4046f8 arg mem_remote_car_empty_packet ,regb 
+4764 20600000 rtn 
+
+remote_car_moto_data:
+4765 6fe0c6da fetch 1 ,mem_remote_car_24g_tx_temp + 3 
+4766 c0024769 beq car_cmd_l_r_motor_control ,remote_car_moto_data_next 
+4767 c002c769 beq car_cmd_f_b_motor_control ,remote_car_moto_data_next 
+4768 20600000 rtn 
+
+remote_car_moto_data_next:
+4769 6fe0c6dd fetch 1 ,mem_remote_car_24g_tx_temp + 6 
+476a 243a4770 nbranch remote_car_moto_data_enable_user ,blank 
+476b 6fe0c6df fetch 1 ,mem_remote_car_24g_tx_temp + 8 
+476c 243a4770 nbranch remote_car_moto_data_enable_user ,blank 
+476d 6fe0c6e1 fetch 1 ,mem_remote_car_24g_tx_temp + 10 
+476e 243a4770 nbranch remote_car_moto_data_enable_user ,blank 
+476f 20600000 rtn 
+
+remote_car_moto_data_enable_user:
+4770 78347c00 enable user 
+4771 2020475b branch remote_car_g24_package_data_continue 
+
+remote_car_default_init:
+4772 7044eb14 jam 0x14 ,mem_ui_button_timeout 
+4773 7044e401 jam 0x01 ,mem_ui_button_last_state 
+4774 5800060f setarg 0x060f 
+4775 67e1462e store 2 ,mem_remote_car_queue_each_size 
+4776 5800462e setarg mem_remote_car_queue_each_size 
+4777 67e143fb store 2 ,mem_queue_ptr 
+4778 70409401 jam 0x01 ,mem_lpm_mode 
+4779 7040a606 jam 0x06 ,mem_lpm_overhead 
+477a 7040c102 jam 0x02 ,mem_lpm_mult_timeout 
+477b 70462d00 jam 0x00 ,mem_remote_car_hard_soft_switch 
+477c 5800468d setarg mem_remote_style_led_type 
+477d 67e144ef store 2 ,mem_ui_led_struct_ptr 
+477e 7044ee01 jam 0x01 ,mem_ui_led_struct_num 
+477f 70468eff jam 0xff ,mem_remote_style_blink_count 
+4780 58000296 setarg 0x0296 
+4781 67e14690 store 2 ,mem_remote_style_on_time 
+4782 5800073a setarg 0x073a 
+4783 67e14692 store 2 ,mem_remote_style_off_time 
+4784 580046ea setarg mem_remote_car_soft_power 
+4785 67e14430 store 2 ,mem_power_param_ptr 
+4786 58000c0c setarg 0x0c0c 
+4787 67e146ec store 2 ,mem_remote_car_power_off_timeout 
+4788 580046a1 setarg mem_remote_car_keyscan 
+4789 67e1442c store 2 ,mem_keyscan_ptr 
+478a 7046be00 jam 0x00 ,mem_remote_car_config_soft_switch_enable 
+478b 7046bcff jam 0xff ,mem_remote_car_config_connect_led_gpio 
+478c 7046bfff jam 0xff ,mem_remote_car_config_soft_switch_gpio 
+478d 7046ba00 jam 0x00 ,mem_remote_car_config_key_map 
+478e 7046bb00 jam 0x00 ,mem_remote_car_config_layout 
+478f 7046bd00 jam 0x00 ,mem_remote_car_config_check_way 
+4790 7046c001 jam 0x01 ,mem_remote_car_config_timeout_shutdown_enable 
+4791 58004e55 setarg 0x4e55 
+4792 67e146ad store 2 ,mem_current_vdd_value_default_mid_x 
+4793 67e146af store 2 ,mem_current_vdd_value_default_mid_y 
+4794 58000007 setarg 0x0007 
+4795 67e146b3 store 2 ,mem_current_vdd_default_range 
+4796 70440702 jam 0x02 ,mem_adc_config_flag 
+4797 38035a0c setsect 0 ,0x35a0c 
+4798 3804011a setsect 1 ,0x11a 
+4799 38080060 setsect 2 ,0x60 
+479a 380c0028 setsect 3 ,0x28 
+479b 67e4c6c1 store 9 ,mem_remote_car_24g_motor_packet 
+479c 3802000a setsect 0 ,0x2000a 
+479d 38040002 setsect 1 ,0x02 
+479e e7e20005 istore 4 ,contw 
+479f 38035a08 setsect 0 ,0x35a08 
+47a0 3804019a setsect 1 ,0x19a 
+47a1 38080000 setsect 2 ,0x00 
+47a2 380c0000 setsect 3 ,0x00 
+47a3 67e4c6ce store 9 ,mem_remote_car_24g_fire_packet 
+47a4 58000064 setarg 0x0064 
+47a5 67e146e6 store 2 ,mem_remote_car_no_data_timeout 
+47a6 70414100 jam tx_power_0db ,mem_tx_power 
+47a7 70458901 jam 0x01 ,mem_24g_data_type 
+47a8 70460306 jam 0x06 ,mem_24g_max_retry 
+47a9 7045ae01 jam 0x01 ,mem_24g_pair_switch 
+47aa 7045e300 jam 0x00 ,mem_24g_fast_conn_enable 
+47ab 20403278 call g24_rx_window_init 
+47ac 204035fb call g24_interval_param_8ms 
+47ad 2040325b call g24_chmap_param_init 
+47ae 58000708 setarg 0x0708 
+47af 67e145d6 store 2 ,mem_24g_pair_timeout_init 
+47b0 58000050 setarg 0x0050 
+47b1 67e145dc store 2 ,mem_24g_reconn_timeout_init 
+47b2 580a7700 setarg 0x0a7700 
+47b3 67e1c60b store 3 ,mem_24g_long_sleep_set 
+47b4 58604800 setarg 0x604800 
+47b5 67e1c5af store 3 ,mem_24g_enter_hibernate 
+47b6 20600000 rtn 
+
+dongle_init:
+47b7 580047ea setarg dongle_dispatch 
+47b8 67e145e0 store 2 ,mem_cb_24g_receive_process 
+47b9 580048d4 setarg dongle_g24_mouse 
+47ba 67e145e4 store 2 ,mem_cb_24g_data_device1 
+47bb 580048e5 setarg dongle_g24_kb 
+47bc 67e145e6 store 2 ,mem_cb_24g_data_device2 
+47bd 580048ab setarg dongle_ackpayload_prep 
+47be 67e145e2 store 2 ,mem_cb_24g_ackpayload 
+47bf 580047f9 setarg dongle_usb_config 
+47c0 67e10859 store 2 ,mem_cb_usb_config 
+47c1 20207912 branch usb_init 
+
+dongle_default_init:
+47c2 449bc006 bpatch patch06_7 ,mem_patch06 
+47c3 204047ef call dongle_read_kb_bind_status 
+47c4 204047e5 call dongle_xtal_select 
+47c5 6fe0c669 fetch 1 ,mem_dg_sys_config 
+47c6 2feffe05 isolate1 dg_enable_eeprom ,pdata 
+47c7 2020c7cb branch dongle_default_no_eeprom ,true 
+47c8 6fe0c669 fetch 1 ,mem_dg_sys_config 
+47c9 2feffe06 isolate1 dg_enable_new_chmap ,pdata 
+47ca 2040b26b call g24_chamap_param_update ,true 
+
+dongle_default_no_eeprom:
+47cb 6fe0c694 fetch 1 ,mem_dg_24g_tx_power_default 
+47cc 67e0c141 store 1 ,mem_tx_power 
+47cd 7045d2ff jam 0xff ,mem_rssi_buff_index 
+47ce 5800099f setarg mem_dg_rssi_noise_buffer 
+47cf 67e14640 store 2 ,mem_rssi_noise_buffer_ptr 
+47d0 58000a9f setarg mem_dg_rssi_noise_dg_buffer 
+47d1 67e14642 store 2 ,mem_rssi_noise_self_buffer_ptr 
+47d2 58000b9f setarg mem_dg_rssi_noise_ms_buffer 
+47d3 67e14644 store 2 ,mem_rssi_noise_device1_buffer_ptr 
+47d4 58000c9f setarg mem_dg_rssi_noise_kb_buffer 
+47d5 67e14646 store 2 ,mem_rssi_noise_device2_buffer_ptr 
+47d6 7045d185 jam tx_power_f5db ,mem_24g_pair_tx_power 
+47d7 70469200 jam 0 ,mem_dg_kb_bind_success 
+47d8 70462b00 jam 0 ,mem_24g_bind_device_living 
+47d9 20403281 call g24_enable_1m 
+47da 6fe0c669 fetch 1 ,mem_dg_sys_config 
+47db 2feffe03 isolate1 dg_enable_24g_2m ,pdata 
+47dc 2040b284 call g24_enable_2m ,true 
+47dd 2040339f call g24_receive_init 
+47de 20403287 call g24_pair_param_init 
+47df 2040325b call g24_chmap_param_init 
+47e0 6fe0c673 fetch 1 ,mem_dg_usb_tx_interval 
+47e1 67e0885b store 1 ,mem_usb_tx_interval 
+47e2 6fe4c66a fetch 9 ,mem_dg_usb_vid_pid 
+47e3 67e4885c store 9 ,mem_usb_vid_pid 
+47e4 20600000 rtn 
+
+dongle_xtal_select:
+47e5 70409918 jam xtal_24m ,mem_fcomp_div 
+47e6 6fe0c669 fetch 1 ,mem_dg_sys_config 
+47e7 c4038000 rtnbit0 dg_enable_xtal_24m 
+47e8 70409910 jam xtal_16m ,mem_fcomp_div 
+47e9 20600000 rtn 
+
+dongle_dispatch:
+47ea 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+47eb c000489b beq 0x00 ,dongle_auto_bind 
+47ec c000c822 beq 0x01 ,dongle_pc_bind 
+47ed c007c81e beq 0x0f ,dongle_all_powerful 
+47ee 20600000 rtn 
+
+dongle_read_kb_bind_status:
+47ef 449c4007 bpatch patch07_0 ,mem_patch07 
+47f0 da401fdf arg dongle_kb_bind_efuse_offect ,regb 
+47f1 da204648 arg mem_dg_kb_bind_flag ,rega 
+47f2 df200001 arg 1 ,loopcnt 
+47f3 20206b74 branch otp_read_data 
+
+dongle_write_kb_bind_status:
+47f4 449cc007 bpatch patch07_1 ,mem_patch07 
+47f5 df200001 arg 1 ,loopcnt 
+47f6 da204648 arg mem_dg_kb_bind_flag ,rega 
+47f7 da401fdf arg dongle_kb_bind_efuse_offect ,regb 
+47f8 20206b45 branch otp_write 
+
+dongle_usb_config:
+47f9 6fe0c669 fetch 1 ,mem_dg_sys_config 
+47fa c28247fd bbit1 dg_enable_kb_icon ,dongle_usb_config_kb 
+47fb 6fe0c648 fetch 1 ,mem_dg_kb_bind_flag 
+47fc c0ad4801 bne dongle_kb_bind_success ,dongle_usb_config_param 
+
+dongle_usb_config_kb:
+47fd 7046485a jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+47fe 6ff2137a fetch 4 ,usb_devicedata_addr + 9 
+47ff 79207e1d set1 29 ,pdata 
+4800 67e207b4 store 4 ,mem_devicedesc + 9 
+
+dongle_usb_config_param:
+4801 20404818 call dongle_usb_device_name 
+4802 20407966 call usb_tx_interval_config 
+4803 20404805 call dongle_usb_vid_pid_config 
+4804 2020480e branch dongle_usb_hid_icon_config 
+
+dongle_usb_vid_pid_config:
+4805 6fe0885c fetch 1 ,mem_usb_vid_pid 
+4806 207a0000 rtn blank 
+4807 6fe0c648 fetch 1 ,mem_dg_kb_bind_flag 
+4808 c02d480c beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+
+dongle_usb_vid_pid_for_mouse_only_auto_pair:
+4809 6fe2085d fetch 4 ,mem_usb_vid_pid + 1 
+
+dongle_usb_vid_pid_store:
+480a 67e207b4 store 4 ,mem_devicedesc + 9 
+480b 20600000 rtn 
+
+dongle_usb_vid_pid_for_suit:
+480c 6fe20861 fetch 4 ,mem_usb_vid_pid + 5 
+480d 2020480a branch dongle_usb_vid_pid_store 
+
+dongle_usb_hid_icon_config:
+480e 6fe0c648 fetch 1 ,mem_dg_kb_bind_flag 
+480f c02d4814 beq dongle_kb_bind_success ,dongle_usb_kb_hidreportdesc 
+4810 58009272 setarg usb_kbdata_vendor_define_addr 
+4811 67e107a7 store 2 ,mem_hidreportdesc_kb 
+4812 7007d81a jam 0x1a ,mem_confdesc + 26 
+4813 20600000 rtn 
+
+dongle_usb_kb_hidreportdesc:
+4814 5800928d setarg usb_kbdata_addr 
+4815 67e107a7 store 2 ,mem_hidreportdesc_kb 
+4816 7007d83f jam 0x3f ,mem_confdesc + 26 
+4817 20600000 rtn 
+
+dongle_usb_device_name:
+4818 6fe0c674 fetch 1 ,mem_dg_usb_device_name 
+4819 207a0000 rtn blank 
+481a d8c04674 arg mem_dg_usb_device_name ,contr 
+481b d8a0081d arg mem_string2 ,contw 
+481c df20001e arg 30 ,loopcnt 
+481d 20207cda branch memcpy 
+
+dongle_all_powerful:
+481e 20403460 call g24_switch_work_mode 
+
+dongle_all_powerful_loop:
+481f 204048a3 call dongle_work_mode_auto 
+4820 20404867 call dongle_usb_dispatch 
+4821 2020481f branch dongle_all_powerful_loop 
+
+dongle_pc_bind:
+4822 20403460 call g24_switch_work_mode 
+
+dongle_pc_bind_loop:
+4823 204048a3 call dongle_work_mode_auto 
+4824 20403469 call g24_bind_mode_auto 
+4825 20404867 call dongle_usb_dispatch 
+4826 20204823 branch dongle_pc_bind_loop 
+
+dongle_g24_blank_data_process:
+4827 2040482b call dongle_g24_ms_blank_data 
+4828 2040483b call dongle_g24_kb_blank_data 
+4829 2040484c call dongle_g24_kb_sys_ctrl_blank_data 
+482a 20204859 branch dongle_g24_kb_mul_blank_data 
+
+dongle_g24_ms_blank_data:
+482b 449d4007 bpatch patch07_2 ,mem_patch07 
+482c 6fe0c668 fetch 1 ,mem_dg_ms_blank_data_enable 
+482d 207a0000 rtn blank 
+482e d8e0000d arg g24_timer_ms_blank ,queue 
+482f 20407cef call timer_check 
+4830 247a0000 nrtn blank 
+4831 70466800 jam 0 ,mem_dg_ms_blank_data_enable 
+4832 58000001 setarg ms_report_id 
+4833 67e08913 store 1 ,mem_usb_mouse_data 
+4834 58000000 setarg 0 
+4835 e7e38005 istore 7 ,contw 
+
+dongle_usb_tx_ms_data:
+4836 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
+
+dongle_usb_tx_enable_ep2:
+4837 6fe0890d fetch 1 ,mem_usb_tx_enable 
+4838 79207e02 set1 2 ,pdata 
+4839 67e0890d store 1 ,mem_usb_tx_enable 
+483a 20600000 rtn 
+
+dongle_g24_kb_blank_data:
+483b 449dc007 bpatch patch07_3 ,mem_patch07 
+483c 6fe0c665 fetch 1 ,mem_dg_kb_blank_data_enable 
+483d 207a0000 rtn blank 
+483e d8e0000e arg g24_timer_kb_blank ,queue 
+483f 20407cef call timer_check 
+4840 247a0000 nrtn blank 
+4841 70466500 jam 0 ,mem_dg_kb_blank_data_enable 
+4842 d8a00923 arg mem_usb_kb_data ,contw 
+4843 20407c99 call memset0_16 
+4844 6fe40923 fetch 8 ,mem_usb_kb_data 
+4845 67e44651 store 8 ,mem_dg_kb_data_last_data 
+
+dongle_usb_tx_kb_data:
+4846 70092300 jam kb_normal_report_id ,mem_usb_kb_data 
+
+dongle_usb_tx_enable_ep1:
+4847 70090b10 jam usb_ep1_kb ,mem_usb_ep1_data 
+4848 6fe0890d fetch 1 ,mem_usb_tx_enable 
+4849 79207e01 set1 1 ,pdata 
+484a 67e0890d store 1 ,mem_usb_tx_enable 
+484b 20600000 rtn 
+
+dongle_g24_kb_sys_ctrl_blank_data:
+484c 6fe0c667 fetch 1 ,mem_dg_kb_system_crtl_blank_data_enable 
+484d 207a0000 rtn blank 
+484e d8e0000a arg g24_timer_kb_sys_crtl_blank ,queue 
+484f 20407cef call timer_check 
+4850 247a0000 nrtn blank 
+4851 70466700 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
+4852 d8a00943 arg mem_usb_kb_system ,contw 
+4853 20407c99 call memset0_16 
+4854 70094302 jam kb_system_conctrl_report_id ,mem_usb_kb_system 
+4855 6fe10943 fetch 2 ,mem_usb_kb_system 
+4856 67e1465f store 2 ,mem_dg_kb_system_sta_data 
+
+dongle_usb_tx_sys_ctrl_data:
+4857 70090c22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+4858 20204837 branch dongle_usb_tx_enable_ep2 
+
+dongle_g24_kb_mul_blank_data:
+4859 449e4007 bpatch patch07_4 ,mem_patch07 
+485a 6fe0c666 fetch 1 ,mem_dg_kb_mul_blank_data_enable 
+485b 207a0000 rtn blank 
+485c d8e0000c arg g24_timer_kb_mul_blank ,queue 
+485d 20407cef call timer_check 
+485e 247a0000 nrtn blank 
+485f 70466600 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+4860 d8a00933 arg mem_usb_kb_multikey ,contw 
+4861 20407c99 call memset0_16 
+4862 70093303 jam kb_multikey_report_id ,mem_usb_kb_multikey 
+4863 6fe18933 fetch 3 ,mem_usb_kb_multikey 
+4864 67e1c65c store 3 ,mem_dg_kb_multikey_last_data 
+
+dongle_usb_tx_multikey_data:
+4865 70090c21 jam usb_ep2_multikey ,mem_usb_ep2_data 
+4866 20204837 branch dongle_usb_tx_enable_ep2 
+
+dongle_usb_dispatch:
+4867 449ec007 bpatch patch07_5 ,mem_patch07 
+4868 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
+4869 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
+486a 20407906 call usb_isr 
+486b 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
+486c 207a0000 rtn blank 
+486d 7008f700 jam 0 ,mem_usb0_get_set_report 
+486e 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
+486f d84002ba arg pc_set_report ,temp 
+4870 98467c00 isub temp ,null 
+4871 24628000 nrtn zero 
+4872 6fe08875 fetch 1 ,mem_usb0_set_report_data 
+4873 c1dd0000 rtnne pc_report_id 
+4874 6fe08876 fetch 1 ,mem_usb0_set_report_data + 1 
+4875 c050487c beq command_mode ,dongle_dispose_cmd_mode 
+4876 c050c882 beq command_bind ,dongle_dispose_cmd_bind 
+4877 c053488e beq command_current_project ,dongle_dispose_cmd_current_project 
+4878 c053c890 beq command_current_mode ,dongle_dispose_cmd_current_mode 
+4879 c054c896 beq command_current_fw_version ,dongle_dispose_cmd_current_fw_version 
+
+dongle_usb0_data_ready_report_set0:
+487a 7008f800 jam 0 ,mem_usb0_data_ready_report 
+487b 20600000 rtn 
+
+dongle_dispose_cmd_mode:
+487c 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+487d c040c87f beq com_mode_bind ,dongle_enter_bind_mode 
+487e 2020487a branch dongle_usb0_data_ready_report_set0 
+
+dongle_enter_bind_mode:
+487f 204032fc call g24_bind_mode_enable 
+
+dongle_usb0_data_ready_report_set1:
+4880 7008f801 jam 1 ,mem_usb0_data_ready_report 
+4881 20600000 rtn 
+
+dongle_dispose_cmd_bind:
+4882 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
+4883 c000c887 beq com_bind_get ,dongle_dispose_cmd_get_bind 
+4884 c042488a beq com_bind_exit ,dongle_dispose_cmd_exit_bind 
+4885 c053c88c beq com_read_mode ,dongle_dispose_cmd_read_mode 
+4886 2020487a branch dongle_usb0_data_ready_report_set0 
+
+dongle_dispose_cmd_get_bind:
+4887 6fe0c5d5 fetch 1 ,mem_24g_bind_device_status 
+4888 67e088b6 store 1 ,mem_usb0_get_report_data + 1 
+4889 20204880 branch dongle_usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_exit_bind:
+488a 20403461 call g24_work_mode_enable 
+488b 20204887 branch dongle_dispose_cmd_get_bind 
+
+dongle_dispose_cmd_read_mode:
+
+dongle_dispose_in_bind_mode:
+488c 7008b6a1 jam command_bind ,mem_usb0_get_report_data + 1 
+488d 20204880 branch dongle_usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_current_project:
+488e 7008b615 jam product_id ,mem_usb0_get_report_data + 1 
+488f 20204880 branch dongle_usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_current_mode:
+4890 6fe0c616 fetch 1 ,mem_24g_work_mode 
+4891 c0004894 beq dongle_work ,dongle_dispose_in_work_mode 
+4892 c000c88c beq dongle_bind ,dongle_dispose_in_bind_mode 
+4893 20600000 rtn 
+
+dongle_dispose_in_work_mode:
+4894 7008b6a0 jam command_mode ,mem_usb0_get_report_data + 1 
+4895 20204880 branch dongle_usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_current_fw_version:
+4896 7008b600 jam fw_version0 ,mem_usb0_get_report_data + 1 
+4897 7008b700 jam fw_version1 ,mem_usb0_get_report_data + 2 
+4898 7008b801 jam fw_version2 ,mem_usb0_get_report_data + 3 
+4899 7008b907 jam fw_version3 ,mem_usb0_get_report_data + 4 
+489a 20204880 branch dongle_usb0_data_ready_report_set1 
+
+dongle_auto_bind:
+489b 20403402 call g24_mode_switch_init 
+
+dongle_auto_bind_loop:
+489c 20403407 call g24_mode_switch_bind_work 
+489d 2040342d call g24_mode_switch_bind_search 
+489e 204048a3 call dongle_work_mode_auto 
+489f 20403469 call g24_bind_mode_auto 
+48a0 20403488 call g24_search_mode_auto 
+48a1 20404867 call dongle_usb_dispatch 
+48a2 2020489c branch dongle_auto_bind_loop 
+
+dongle_work_mode_auto:
+48a3 449f4007 bpatch patch07_6 ,mem_patch07 
+48a4 6fe0c616 fetch 1 ,mem_24g_work_mode 
+48a5 c1800000 rtnne dongle_work 
+48a6 20403464 call g24_work_mode_start 
+48a7 20404827 call dongle_g24_blank_data_process 
+48a8 6fe0c610 fetch 1 ,mem_24g_pair_mode 
+48a9 247a0000 nrtn blank 
+48aa 2020350a branch g24_nodata_process 
+
+dongle_ackpayload_prep:
+48ab 6fe0c589 fetch 1 ,mem_24g_data_type 
+48ac c000c8ae beq datatype_device1 ,dongle_ackpayload_prep_mouse 
+48ad c00148b7 beq datatype_device2 ,dongle_ackpayload_prep_keyboard 
+
+dongle_ackpayload_prep_mouse:
+48ae 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+48af c28048bd bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
+48b0 202048b9 branch dongle_ackpayload_prep_end 
+
+dongle_set_pc_sleep_flag:
+48b1 6fe0c3cb fetch 1 ,mem_device_option 
+48b2 c1820000 rtnne dvc_op_dongle 
+48b3 70469303 jam 3 ,mem_dg_pc_sleep_flag 
+48b4 20600000 rtn 
+
+dongle_clear_pc_sleep_flag:
+48b5 70469300 jam 0 ,mem_dg_pc_sleep_flag 
+48b6 20600000 rtn 
+
+dongle_ackpayload_prep_keyboard:
+48b7 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+48b8 c280c8c1 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
+
+dongle_ackpayload_prep_end:
+48b9 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
+48ba c000c8c8 beq bind_ackpayload ,dongle_g24_bind_ackpayload_prep 
+48bb c001c8cc beq kb_led_ackpayload ,dongle_g24_kb_led_ackpayload_prep 
+48bc 20600000 rtn 
+
+dongle_pc_sleep_ackpayload_prep_mouse:
+48bd 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+48be 793ffe00 set0 0 ,pdata 
+48bf 67e0c693 store 1 ,mem_dg_pc_sleep_flag 
+48c0 202048c4 branch dongle_pc_sleep_ackpayload_prep 
+
+dongle_pc_sleep_ackpayload_prep_keyboard:
+48c1 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+48c2 793ffe01 set0 1 ,pdata 
+48c3 67e0c693 store 1 ,mem_dg_pc_sleep_flag 
+
+dongle_pc_sleep_ackpayload_prep:
+48c4 70458801 jam 0x01 ,mem_24g_datalen 
+48c5 580000ff setarg 0xff 
+48c6 67e0c519 store 1 ,mem_24g_txbuf 
+48c7 20600000 rtn 
+
+dongle_g24_bind_ackpayload_prep:
+48c8 70461101 jam 1 ,mem_24g_ackpayload_enable 
+48c9 2040337e call g24_binding_device_check 
+48ca 24778000 nrtn user3 
+48cb 2020330a branch g24_bind_ackpayload_prep 
+
+dongle_g24_kb_led_ackpayload_prep:
+48cc 6fe0c4f9 fetch 1 ,mem_24g_rxbuf + 2 
+48cd c000c8c8 beq datatype_device1 ,dongle_g24_bind_ackpayload_prep 
+48ce c07fc8c8 beq datatype_attemp ,dongle_g24_bind_ackpayload_prep 
+48cf 7008f900 jam 0 ,mem_usb_tx_win_enable 
+48d0 70458801 jam 0x01 ,mem_24g_datalen 
+48d1 6fe0c621 fetch 1 ,mem_24g_led_status 
+48d2 67e0c519 store 1 ,mem_24g_txbuf 
+48d3 20600000 rtn 
+
+dongle_g24_mouse:
+48d4 58000001 setarg ms_report_id 
+48d5 67e08913 store 1 ,mem_usb_mouse_data 
+48d6 6fe3c5eb fetch 7 ,mem_24g_rxdata_temp + 3 
+48d7 e7e38005 istore 7 ,contw 
+48d8 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+48d9 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+48da 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+48db 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+48dc 20204836 branch dongle_usb_tx_ms_data 
+
+dongle_g24_ms_enable_blank_data_forcibly:
+48dd 70466801 jam 1 ,mem_dg_ms_blank_data_enable 
+48de 58000180 setarg timer_ms_blank_delay 
+48df d8e0000d arg g24_timer_ms_blank ,queue 
+48e0 20207ce1 branch timer_init 
+
+dongle_g24_ms_disable_blank_data_forcibly:
+48e1 70466800 jam 0 ,mem_dg_ms_blank_data_enable 
+48e2 58000000 setarg 0 
+48e3 d8e0000d arg g24_timer_ms_blank ,queue 
+48e4 20207ce1 branch timer_init 
+
+dongle_g24_kb:
+48e5 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+48e6 c00048ea beq 0 ,dongle_g24_kb_type0 
+48e7 c001491d beq 2 ,dongle_g24_kb_type2 
+48e8 c001c905 beq 3 ,dongle_g24_kb_type3 
+48e9 202033be branch g24_rx_interrupt_clear 
+
+dongle_g24_kb_type0:
+48ea 6fe0c5ed fetch 1 ,mem_24g_rxdata_temp + 5 
+48eb 67e0c611 store 1 ,mem_24g_ackpayload_enable 
+48ec 7045ed00 jam 0 ,mem_24g_rxdata_temp + 5 
+48ed d8a00923 arg mem_usb_kb_data ,contw 
+48ee d8c045ec arg mem_24g_rxdata_temp + 4 ,contr 
+48ef df200008 arg 8 ,loopcnt 
+48f0 20407cda call memcpy 
+48f1 6fe40923 fetch 8 ,mem_usb_kb_data 
+48f2 245a48fd ncall dongle_g24_kb_enable_blank_data_forcibly ,blank 
+48f3 6fe40923 fetch 8 ,mem_usb_kb_data 
+48f4 205a4901 call dongle_g24_kb_disable_blank_data_forcibly ,blank 
+48f5 6fe40923 fetch 8 ,mem_usb_kb_data 
+48f6 67e44649 store 8 ,mem_dg_kb_data_sta_data 
+48f7 684c4651 fetcht 8 ,mem_dg_kb_data_last_data 
+48f8 98467c00 isub temp ,null 
+48f9 2442c847 ncall dongle_usb_tx_enable_ep1 ,zero 
+48fa 6fe44649 fetch 8 ,mem_dg_kb_data_sta_data 
+48fb 67e44651 store 8 ,mem_dg_kb_data_last_data 
+48fc 202033be branch g24_rx_interrupt_clear 
+
+dongle_g24_kb_enable_blank_data_forcibly:
+48fd 70466501 jam 1 ,mem_dg_kb_blank_data_enable 
+48fe 58000180 setarg timer_kb_blank_delay 
+48ff d8e0000e arg g24_timer_kb_blank ,queue 
+4900 20207ce1 branch timer_init 
+
+dongle_g24_kb_disable_blank_data_forcibly:
+4901 70466500 jam 0 ,mem_dg_kb_blank_data_enable 
+4902 58000000 setarg 0 
+4903 d8e0000e arg g24_timer_kb_blank ,queue 
+4904 20207ce1 branch timer_init 
+
+dongle_g24_kb_type3:
+4905 d8a00933 arg mem_usb_kb_multikey ,contw 
+4906 d8c045eb arg mem_24g_rxdata_temp + 3 ,contr 
+4907 df200003 arg 3 ,loopcnt 
+4908 20407cda call memcpy 
+4909 6fe10934 fetch 2 ,mem_usb_kb_multikey + 1 
+490a 245a4915 ncall dongle_g24_kb_mul_enable_blank_data_forcibly ,blank 
+490b 6fe10934 fetch 2 ,mem_usb_kb_multikey + 1 
+490c 205a4919 call dongle_g24_kb_mul_disable_blank_data_forcibly ,blank 
+490d 6fe18933 fetch 3 ,mem_usb_kb_multikey 
+490e 67e1c659 store 3 ,mem_dg_kb_multikey_sta_data 
+490f 6849c65c fetcht 3 ,mem_dg_kb_multikey_last_data 
+4910 98467c00 isub temp ,null 
+4911 2442c865 ncall dongle_usb_tx_multikey_data ,zero 
+4912 6fe1c659 fetch 3 ,mem_dg_kb_multikey_sta_data 
+4913 67e1c65c store 3 ,mem_dg_kb_multikey_last_data 
+4914 202033be branch g24_rx_interrupt_clear 
+
+dongle_g24_kb_mul_enable_blank_data_forcibly:
+4915 70466601 jam 1 ,mem_dg_kb_mul_blank_data_enable 
+4916 58000180 setarg timer_kb_mul_blank_delay 
+4917 d8e0000c arg g24_timer_kb_mul_blank ,queue 
+4918 20207ce1 branch timer_init 
+
+dongle_g24_kb_mul_disable_blank_data_forcibly:
+4919 70466600 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+491a 58000000 setarg 0 
+491b d8e0000c arg g24_timer_kb_mul_blank ,queue 
+491c 20207ce1 branch timer_init 
+
+dongle_g24_kb_type2:
+491d d8a00943 arg mem_usb_kb_system ,contw 
+491e d8c045eb arg mem_24g_rxdata_temp + 3 ,contr 
+491f df200002 arg 2 ,loopcnt 
+4920 20407cda call memcpy 
+4921 6fe10943 fetch 2 ,mem_usb_kb_system 
+4922 245a492d ncall dongle_g24_kb_sys_enable_blank_data_forcibly ,blank 
+4923 6fe10943 fetch 2 ,mem_usb_kb_system 
+4924 205a4931 call dongle_g24_kb_sys_disable_blank_data_forcibly ,blank 
+4925 6fe10943 fetch 2 ,mem_usb_kb_system 
+4926 67e1465f store 2 ,mem_dg_kb_system_sta_data 
+4927 68494662 fetcht 2 ,mem_dg_kb_system_last_data 
+4928 98467c00 isub temp ,null 
+4929 2442c935 ncall dongle_usb_tx_sys_data ,zero 
+492a 6fe1465f fetch 2 ,mem_dg_kb_system_sta_data 
+492b 67e14662 store 2 ,mem_dg_kb_system_last_data 
+492c 202033be branch g24_rx_interrupt_clear 
+
+dongle_g24_kb_sys_enable_blank_data_forcibly:
+492d 70466701 jam 1 ,mem_dg_kb_system_crtl_blank_data_enable 
+492e 58000180 setarg timer_kb_sys_crtl_blank_delay 
+492f d8e0000a arg g24_timer_kb_sys_crtl_blank ,queue 
+4930 20207ce1 branch timer_init 
+
+dongle_g24_kb_sys_disable_blank_data_forcibly:
+4931 70466700 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
+4932 58000000 setarg 0 
+4933 d8e0000a arg g24_timer_kb_sys_crtl_blank ,queue 
+4934 20207ce1 branch timer_init 
+
+dongle_usb_tx_sys_data:
+4935 70090c22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+4936 20204837 branch dongle_usb_tx_enable_ep2 
+
+dongle_g24_store_dvc2_bind_flag:
+4937 6fe0c3cb fetch 1 ,mem_device_option 
+4938 c1820000 rtnne dvc_op_dongle 
+4939 6fe0c648 fetch 1 ,mem_dg_kb_bind_flag 
+493a c12d0000 rtneq dongle_kb_bind_success 
+
+dongle_prep_soft_reset:
+493b 70469201 jam 1 ,mem_dg_kb_bind_success 
+493c 20600000 rtn 
+
+dongle_kb_bind_soft_reset:
+493d 6fe0c3cb fetch 1 ,mem_device_option 
+493e c1820000 rtnne dvc_op_dongle 
+493f 6fe0c692 fetch 1 ,mem_dg_kb_bind_success 
+4940 207a0000 rtn blank 
+4941 70067800 jam 0 ,mem_temp 
+
+dongle_wirte_efuse_bind_status:
+4942 7046485a jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+4943 204047f4 call dongle_write_kb_bind_status 
+4944 204047ef call dongle_read_kb_bind_status 
+4945 6fe08678 fetch 1 ,mem_temp 
+4946 1fe0fe01 increase 1 ,pdata 
+4947 67e08678 store 1 ,mem_temp 
+4948 c07feca3 beq 0xff ,soft_reset_chip 
+4949 6fe0c648 fetch 1 ,mem_dg_kb_bind_flag 
+494a c0ad4942 bne dongle_kb_bind_success ,dongle_wirte_efuse_bind_status 
+494b 20206ca3 branch soft_reset_chip 
+
+keyboard_softreset_process:
+494c 6fe0c3cb fetch 1 ,mem_device_option 
+494d c1878000 rtnne dvc_op_keyboard 
+494e 204054ac call mouse_wakeup_from_power_check 
+494f 24342002 nbranch soft_reset + 1 ,user 
+4950 6fe0c846 fetch 1 ,mem_power_on_flag 
+4951 203a2002 branch soft_reset + 1 ,blank 
+4952 6fe0c655 fetch 1 ,mem_config_select_device_button_gpio 
+4953 c17f8000 rtneq ui_button_gpio_disable 
+4954 1fe20e00 copy pdata ,queue 
+4955 6fe2069d fetch 4 ,mem_saved_gpio_in 
+4956 afec0000 qisolate0 pdata 
+4957 2040ce45 call keyboard_pb_set ,true 
+4958 20202003 branch soft_reset + 2 
+
+keyboard_init:
+4959 20407396 call enable_authrom 
+495a 204049a1 call keyboard_setting_config 
+495b 204049c8 call keyboard_gpio_init 
+495c 204049ea call keyboard_low_vol_mult_set 
+495d 20758000 rtn wake 
+495e 20404966 call keyboard_usb_check_enable 
+495f 20404a7a call keyboard_cb_fuction 
+4960 6fe0c663 fetch 1 ,mem_usb_addr 
+4961 c3838000 rtnbit1 7 
+
+keyboard_init_wireless:
+4962 6fe144e9 fetch 2 ,mem_ui_state_map 
+4963 c2864b95 bbit1 ui_state_btn_down ,keyboard_start_discovery 
+4964 20405eb6 call mouse_check_select_device_by_switch 
+4965 20204bcf branch keyboard_start_work 
+
+keyboard_usb_check_enable:
+4966 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4967 c4068000 rtnbit0 mouse_enable_usb 
+4968 5800496c setarg keyboard_usb_config_param 
+4969 67e10859 store 2 ,mem_cb_usb_config 
+496a 704664a5 jam mouse_usb_interface_remove ,mem_mouse_usb_vdd_status 
+496b 2020498e branch keyboard_usb_interface_check 
+
+keyboard_usb_config_param:
+496c 2040496f call keyboard_usb_config_kb_check 
+496d 20404974 call keyboard_usb_config_param_init 
+496e 20204984 branch keyboard_usb_config_param_setup 
+
+keyboard_usb_config_kb_check:
+496f 70466500 jam dongle_kb_bind_eeprom_offect ,mem_mouse_usb_keyboard_flag 
+4970 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4971 c40b0000 rtnbit0 mouse_enable_keyboard 
+4972 7046655a jam dongle_kb_bind_success ,mem_mouse_usb_keyboard_flag 
+4973 20600000 rtn 
+
+keyboard_usb_config_param_init:
+4974 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4975 c28ec97b bbit1 mouse_enable_usb_250 ,keyboard_usb_report_rate_set_250hz 
+4976 c28f497e bbit1 mouse_enable_usb_500 ,keyboard_usb_report_rate_set_500hz 
+4977 c28fc981 bbit1 mouse_enable_usb_1000 ,keyboard_usb_report_rate_set_1000hz 
+4978 70466219 jam 0x19 ,mem_wire_usb_interval 
+4979 70085b08 jam 0x08 ,mem_usb_tx_interval 
+497a 20600000 rtn 
+
+keyboard_usb_report_rate_set_250hz:
+497b 7046620c jam 0x0c ,mem_wire_usb_interval 
+497c 70085b04 jam 0x04 ,mem_usb_tx_interval 
+497d 20600000 rtn 
+
+keyboard_usb_report_rate_set_500hz:
+497e 70466206 jam 0x06 ,mem_wire_usb_interval 
+497f 70085b02 jam 0x02 ,mem_usb_tx_interval 
+4980 20600000 rtn 
+
+keyboard_usb_report_rate_set_1000hz:
+4981 70466203 jam 0x03 ,mem_wire_usb_interval 
+4982 70085b01 jam 0x01 ,mem_usb_tx_interval 
+4983 20600000 rtn 
+
+keyboard_usb_config_param_setup:
+4984 20407966 call usb_tx_interval_config 
+4985 20404987 call keyboard_usb_vid_pid_config 
+4986 2020498c branch keyboard_usb_hid_icon_config 
+
+keyboard_usb_vid_pid_config:
+4987 6fe0885c fetch 1 ,mem_usb_vid_pid 
+4988 207a0000 rtn blank 
+4989 6fe0c665 fetch 1 ,mem_mouse_usb_keyboard_flag 
+498a c02d480c beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+498b 20204809 branch dongle_usb_vid_pid_for_mouse_only_auto_pair 
+
+keyboard_usb_hid_icon_config:
+498c 6fe0c665 fetch 1 ,mem_mouse_usb_keyboard_flag 
+498d 2020480f branch dongle_usb_hid_icon_config + 1 
+
+keyboard_usb_interface_check:
+498e 44a0c008 bpatch patch08_1 ,mem_patch08 
+498f 6848886c fetcht 1 ,mem_usb_offline_check_gpio 
+4990 20406ee6 call gpio_get_bit 
+4991 2020c993 branch keyboard_usb_gpio_low ,true 
+4992 2020499a branch keyboard_usb_gpio_high 
+
+keyboard_usb_gpio_low:
+4993 6fe0c664 fetch 1 ,mem_mouse_usb_vdd_status 
+4994 c1528000 rtneq mouse_usb_interface_remove 
+4995 704664a5 jam mouse_usb_interface_remove ,mem_mouse_usb_vdd_status 
+4996 70090e00 jam 0 ,mem_usb_device_enumeration_endflag 
+4997 70070900 jam 0 ,mem_usb_status 
+4998 70090000 jam 0 ,mem_usb_state 
+4999 20204962 branch keyboard_init_wireless 
+
+keyboard_usb_gpio_high:
+499a 6fe0c664 fetch 1 ,mem_mouse_usb_vdd_status 
+499b c12d0000 rtneq mouse_usb_interface_insert 
+499c 7046645a jam mouse_usb_interface_insert ,mem_mouse_usb_vdd_status 
+499d 20406018 call mouse_24g_stop 
+499e 20405aaa call mouse_stop_bluetooth_mode 
+499f 20404f70 call keyboard_device_led_all_off 
+49a0 20207912 branch usb_init 
+
+keyboard_setting_config:
+49a1 20758000 rtn wake 
+49a2 204035f0 call g24_transmit_init 
+49a3 2040325b call g24_chmap_param_init 
+49a4 204049af call keyboard_param_init 
+49a5 6848c865 fetcht 1 ,mem_mcu_rstb_gpio 
+49a6 20406ef3 call gpio_out_inactive 
+49a7 20404b6d call keyboard_device_led_off 
+49a8 20406177 call mouse_device_multi_led_parm_init 
+49a9 20402a41 call le_set_fixed_ltk_justwork 
+49aa 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+49ab c28a49fd bbit1 mouse_enable_otp ,keyboard_load_otp_info_check 
+49ac c289dd60 bbit1 mouse_enable_eeprom ,mouse_load_eeprom_info_check 
+49ad c2895d6e bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
+49ae 20600000 rtn 
+
+keyboard_param_init:
+49af 2040543b call mouse_param_common_init 
+49b0 7048eb00 jam 0 ,mem_same_keyvalue_timerout_flag 
+49b1 58230170 setarg 0x230170 
+49b2 67e1c62d store 3 ,mem_mouse_vdd_full_vol 
+49b3 58015301 setarg 0x015301 
+49b4 e7e18005 istore 3 ,contw 
+49b5 d8a047a0 arg mem_le_adv_swift_pair ,contw 
+49b6 df200014 arg 20 ,loopcnt 
+49b7 20407ca1 call clear_mem 
+49b8 6fe0c26b fetch 1 ,mem_le_name_len 
+49b9 1fe67c0c sub pdata ,12 ,null 
+49ba 242149c6 nbranch ble_name_set_no_swift_pair ,positive 
+49bb 5806ff06 setarg 0x06ff06 
+49bc 67e1c7a0 store 3 ,mem_le_adv_swift_pair 
+49bd 58000300 setarg 0x000300 
+49be e7e18005 istore 3 ,contw 
+49bf 58000080 setarg 0x80 
+49c0 e7e08005 istore 1 ,contw 
+
+ble_store_le_name:
+49c1 6fe0c26b fetch 1 ,mem_le_name_len 
+49c2 1fe0fe01 increase 1 ,pdata 
+49c3 1fe27200 copy pdata ,loopcnt 
+49c4 d8c04369 arg mem_le_scan_data ,contr 
+49c5 20207cda branch memcpy 
+
+ble_name_set_no_swift_pair:
+49c6 d8a047a0 arg mem_le_adv_swift_pair ,contw 
+49c7 202049c1 branch ble_store_le_name 
+
+keyboard_gpio_init:
+49c8 6848c864 fetcht 1 ,mem_mcu_clk_gpio 
+49c9 20406f0f call gpio_set_high_impedance 
+49ca 6848c863 fetcht 1 ,mem_mcu_stb_gpio 
+49cb 20406f0f call gpio_set_high_impedance 
+49cc 6848c865 fetcht 1 ,mem_mcu_rstb_gpio 
+49cd 20406f0f call gpio_set_high_impedance 
+49ce 5800486e setarg mem_key_row_gpio 
+49cf 67e14896 store 2 ,mem_kb_row_ptr 
+49d0 58004876 setarg mem_key_col_gpio 
+49d1 67e14898 store 2 ,mem_kb_col_ptr 
+49d2 5800488a setarg mem_key_excol_gpio 
+49d3 67e1489a store 2 ,mem_kb_excol_ptr 
+
+keyboard_keyscan_gpio_init:
+49d4 6fe14896 fetch 2 ,mem_kb_row_ptr 
+49d5 1fe22400 copy pdata ,regb 
+49d6 df200008 arg 8 ,loopcnt 
+
+keyboard_key_row_init:
+49d7 e8408012 ifetcht 1 ,regb 
+49d8 18467cff sub temp ,ui_button_gpio_disable ,null 
+49d9 2442c9e7 ncall keboard_gpio_set_high_impedance ,zero 
+49da 1a40a401 increase 1 ,regb 
+49db c20049d7 loop keyboard_key_row_init 
+49dc 204023fd call lpm_write_gpio_wakeup 
+49dd 6fe14898 fetch 2 ,mem_kb_col_ptr 
+49de 1fe22400 copy pdata ,regb 
+49df 1fe22600 copy pdata ,regc 
+49e0 df20000b arg 11 ,loopcnt 
+
+keyboard_key_cow_init:
+49e1 e8408012 ifetcht 1 ,regb 
+49e2 284ffe07 isolate1 7 ,temp 
+49e3 2440ef0f ncall gpio_set_high_impedance ,true 
+49e4 1a40a401 increase 1 ,regb 
+49e5 c20049e1 loop keyboard_key_cow_init 
+49e6 20600000 rtn 
+
+keboard_gpio_set_high_impedance:
+49e7 20406f0f call gpio_set_high_impedance 
+49e8 e8408012 ifetcht 1 ,regb 
+49e9 20206ec6 branch gpio_set_low_pullup 
+
+keyboard_low_vol_mult_set:
+49ea 6fe0c666 fetch 1 ,mem_device_flag 
+49eb c000c9f1 beq mode_bt_device1 ,keyboard_low_vol_mult_ble_set 
+49ec 585d4800 setarg 0x5d4800 
+49ed 67e24613 store 4 ,mem_24g_long_sleep_set1 
+49ee 6fe0c40c fetch 1 ,mem_adc_power_flag 
+49ef c4000000 rtnbit0 0 
+49f0 20205fe4 branch mouse_24g_long_sleep_set 
+
+keyboard_low_vol_mult_ble_set:
+49f1 70496b0c jam 0x0c ,mem_lpm_mult_init 
+49f2 6fe0c40c fetch 1 ,mem_adc_power_flag 
+49f3 c4000000 rtnbit0 0 
+49f4 70496b10 jam 0x10 ,mem_lpm_mult_init 
+49f5 6fe0c77e fetch 1 ,mem_mouse_current_mult_timer 
+49f6 203a5c01 branch mouse_current_mult_reinit ,blank 
+49f7 20600000 rtn 
+
+keyboard_pairing_check_otp_offset:
+49f8 6fe149df fetch 2 ,mem_otp_read_retention_offset 
+49f9 d8400528 arg 0x528 ,temp 
+49fa 98467c00 isub temp ,null 
+49fb 24610000 nrtn positive 
+49fc 2020235a branch assert 
+
+keyboard_load_otp_info_check:
+49fd 44a14008 bpatch patch08_2 ,mem_patch08 
+49fe 6fe0c666 fetch 1 ,mem_device_flag 
+49ff c0004a02 beq mode_24g_device ,keyboard_load_otp_device_info_g24_init 
+4a00 c000ca0c beq mode_bt_device1 ,keyboard_load_otp_device_info_ble_init 
+4a01 20600000 rtn 
+
+keyboard_load_otp_device_info_g24_init:
+4a02 db000050 arg 80 ,regd 
+4a03 58000400 setarg 0x400 
+4a04 9b06fc00 idiv regd 
+4a05 20407d62 call wait_div_end 
+4a06 1807fe00 quotient pdata 
+4a07 67e10670 store 2 ,mem_pdatatemp 
+4a08 dfe01fcc arg 0x1fcc ,pdata 
+4a09 d8400004 arg 4 ,temp 
+4a0a dd600004 arg 4 ,rege 
+4a0b 20204a16 branch keyboard_load_otp_device_info 
+
+keyboard_load_otp_device_info_ble_init:
+4a0c db000118 arg 280 ,regd 
+4a0d 58000400 setarg 0x400 
+4a0e 9b06fc00 idiv regd 
+4a0f 20407d62 call wait_div_end 
+4a10 1807fe00 quotient pdata 
+4a11 67e10670 store 2 ,mem_pdatatemp 
+4a12 dfe01fc2 arg 0x1fc2 ,pdata 
+4a13 d840000e arg 14 ,temp 
+4a14 dd60000e arg 14 ,rege 
+4a15 20204a16 branch keyboard_load_otp_device_info 
+
+keyboard_load_otp_device_info:
+4a16 60488678 storet 1 ,mem_temp 
+4a17 da2049c7 arg mem_otp_read_retention_memory ,rega 
+4a18 da600000 arg 0 ,regc 
+
+keyboard_load_otp_info_check_page_loop:
+4a19 1fe22400 copy pdata ,regb 
+4a1a 6f208678 fetchr loopcnt ,1 ,mem_temp 
+4a1b 20406b74 call otp_read_data 
+4a1c 6fe449c7 fetch 8 ,mem_otp_read_retention_memory 
+4a1d 684c49cf fetcht 8 ,mem_otp_read_retention_memory + 8 
+4a1e 9841fe00 ior temp ,pdata 
+4a1f 684c49d7 fetcht 8 ,mem_otp_read_retention_memory + 16 
+4a20 9841fe00 ior temp ,pdata 
+4a21 203a4a28 branch keyboard_load_otp_info_check_first_time ,blank 
+4a22 1a60a601 increase 1 ,regc 
+4a23 6fe10670 fetch 2 ,mem_pdatatemp 
+4a24 9a667c00 isub regc ,null 
+4a25 1a427e00 copy regb ,pdata 
+4a26 9b067e00 isub regd ,pdata 
+4a27 20204a19 branch keyboard_load_otp_info_check_page_loop 
+
+keyboard_load_otp_info_check_first_time:
+4a28 1a667c00 sub regc ,0 ,null 
+4a29 2022ca38 branch keyboard_load_otp_info_check_first_time_process ,zero 
+
+keyboard_load_otp_info_check_first_time_loop_init:
+4a2a 1a427e00 copy regb ,pdata 
+4a2b 9b00fe00 iadd regd ,pdata 
+
+keyboard_load_otp_info_check_first_time_loop:
+4a2c 9d667e00 isub rege ,pdata 
+4a2d 1fe22400 copy pdata ,regb 
+4a2e 6f208678 fetchr loopcnt ,1 ,mem_temp 
+4a2f 20406b74 call otp_read_data 
+4a30 6fe449c7 fetch 8 ,mem_otp_read_retention_memory 
+4a31 684c49cf fetcht 8 ,mem_otp_read_retention_memory + 8 
+4a32 9841fe00 ior temp ,pdata 
+4a33 684c49d7 fetcht 8 ,mem_otp_read_retention_memory + 16 
+4a34 9841fe00 ior temp ,pdata 
+4a35 203a4a3a branch keyboard_load_otp_info_check_offset_process ,blank 
+4a36 1a427e00 copy regb ,pdata 
+4a37 20204a2c branch keyboard_load_otp_info_check_first_time_loop 
+
+keyboard_load_otp_info_check_first_time_process:
+4a38 6560c9df storer rege ,1 ,mem_otp_read_retention_offset 
+4a39 20600000 rtn 
+
+keyboard_load_otp_info_check_offset_process:
+4a3a 44a1c008 bpatch patch08_3 ,mem_patch08 
+4a3b 58001fd0 setarg 0x1fd0 
+4a3c 9a467e00 isub regb ,pdata 
+4a3d 67e149df store 2 ,mem_otp_read_retention_offset 
+4a3e 1a427e00 copy regb ,pdata 
+4a3f 9d60a400 iadd rege ,regb 
+4a40 6f208678 fetchr loopcnt ,1 ,mem_temp 
+4a41 da2049c7 arg mem_otp_read_retention_memory ,rega 
+4a42 20406b74 call otp_read_data 
+4a43 6fe0c666 fetch 1 ,mem_device_flag 
+4a44 c0004a47 beq mode_24g_device ,keyboard_load_otp_info_check_offset_process_g24 
+4a45 c000ca4a beq mode_bt_device1 ,keyboard_load_otp_info_check_offset_process_ble 
+4a46 20600000 rtn 
+
+keyboard_load_otp_info_check_offset_process_g24:
+4a47 6fe349c7 fetch 6 ,mem_otp_read_retention_memory 
+4a48 67e24691 store 4 ,mem_mouse_24g_addr 
+4a49 20204a76 branch keybaord_load_device_info 
+
+keyboard_load_otp_info_check_offset_process_ble:
+4a4a 6fe0c9c7 fetch 1 ,mem_otp_read_retention_memory 
+4a4b 1fe67c03 sub pdata ,system_os_mac ,null 
+4a4c 24417dca ncall set_pdata_0 ,positive 
+4a4d 67e0c9c6 store 1 ,mem_kb_computer_system 
+4a4e 6fe0c9c8 fetch 1 ,mem_otp_read_retention_memory + 1 
+4a4f 67e0c667 store 1 ,mem_device1_type 
+4a50 6fe349c9 fetch 6 ,mem_otp_read_retention_memory + 2 
+4a51 67e34668 store 6 ,mem_device1_addr 
+4a52 6fe349cf fetch 6 ,mem_otp_read_retention_memory + 8 
+4a53 67e3466e store 6 ,mem_device1_locall_addr 
+4a54 20205c6f branch mouse_select_reconn_device 
+
+keyboard_load_otp_info_check_overwise:
+4a55 2020235a branch assert 
+
+keyboard_store_device_info:
+4a56 44a24008 bpatch patch08_4 ,mem_patch08 
+4a57 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4a58 c28a4a5c bbit1 mouse_enable_otp ,keyboard_store_otp_device_info 
+4a59 c289dcb1 bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
+4a5a c2895cb9 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+4a5b 20600000 rtn 
+
+keyboard_store_otp_device_info:
+4a5c 20600000 rtn 
+4a5d 6fe0c666 fetch 1 ,mem_device_flag 
+4a5e c0004a61 beq mode_24g_device ,keyboard_store_otp_device_info_g24 
+4a5f c000ca6b beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
+4a60 20600000 rtn 
+
+keyboard_store_otp_device_info_g24:
+4a61 684949df fetcht 2 ,mem_otp_read_retention_offset 
+4a62 58001fd0 setarg 0x1fd0 
+4a63 98462400 isub temp ,regb 
+4a64 da204691 arg mem_mouse_24g_addr ,rega 
+4a65 df200004 arg 4 ,loopcnt 
+4a66 20406b45 call otp_write 
+4a67 684949df fetcht 2 ,mem_otp_read_retention_offset 
+4a68 18408404 increase 4 ,temp 
+4a69 604949df storet 2 ,mem_otp_read_retention_offset 
+4a6a 20600000 rtn 
+
+keyboard_store_otp_device_info_ble:
+4a6b 684949df fetcht 2 ,mem_otp_read_retention_offset 
+4a6c 58001fd0 setarg 0x1fd0 
+4a6d 98462400 isub temp ,regb 
+4a6e 1a40a401 add regb ,1 ,regb 
+4a6f da204668 arg mem_device1_addr ,rega 
+4a70 df200006 arg 6 ,loopcnt 
+4a71 20406b45 call otp_write 
+4a72 1a40a407 add regb ,7 ,regb 
+4a73 da20466e arg mem_device1_locall_addr ,rega 
+4a74 df200006 arg 6 ,loopcnt 
+4a75 20206b45 branch otp_write 
+
+keybaord_load_device_info:
+4a76 6fe24691 fetch 4 ,mem_mouse_24g_addr 
+4a77 67e245e8 store 4 ,mem_24g_receiver_addr 
+4a78 67e2458f store 4 ,mem_24g_addr 
+4a79 20600000 rtn 
+
+keyboard_cb_fuction:
+4a7a 44a2c008 bpatch patch08_5 ,mem_patch08 
+4a7b 58006109 setarg mouse_24g_before_lpm_sleep 
+4a7c 67e143e9 store 2 ,mem_cb_before_lpm_sleep 
+4a7d 58004fe5 setarg keyboard_24g_package_data 
+4a7e 67e145f2 store 2 ,mem_cb_24g_transmit_data 
+4a7f 58004ff8 setarg keyboard_24g_search_dongle 
+4a80 67e145f4 store 2 ,mem_cb_24g_search_receiver 
+4a81 58004f41 setarg keyboard_lpm_before_common 
+4a82 67e145f6 store 2 ,mem_cb_24g_lpm_before 
+4a83 58004be6 setarg keyboard_le 
+4a84 67e143d9 store 2 ,mem_cb_le_process 
+4a85 58004f5d setarg keyboard_process_lpm_before 
+4a86 67e143d7 store 2 ,mem_cb_before_lpm 
+4a87 58004a9a setarg keyboard_priority_bb_event 
+4a88 67e143dd store 2 ,mem_cb_bb_event_process 
+4a89 58004bcc setarg keyboard_idle 
+4a8a 67e143db store 2 ,mem_cb_idle_process 
+4a8b 58004f62 setarg keyboard_before_hibernate 
+4a8c 67e143d5 store 2 ,mem_cb_before_hibernate 
+4a8d 58005b08 setarg mouse_le_bb_event_connect_complete 
+4a8e 67e143df store 2 ,mem_cb_att_write 
+4a8f 58004b19 setarg keyboard_bb_event_timer 
+4a90 67e143e3 store 2 ,mem_cb_event_timer 
+4a91 580055fa setarg mouse_spi_write_flash_cb 
+4a92 67e143e7 store 2 ,mem_cb_spi_flash_write_complate 
+4a93 580054c5 setarg mouse_lpm_check_wake_lock 
+4a94 67e143d3 store 2 ,mem_cb_check_wakelock 
+4a95 58006221 setarg mouse_le_transmit 
+4a96 67e143e1 store 2 ,mem_cb_ble_transmit 
+4a97 58006228 setarg mouse_set_lpm_mult 
+4a98 67e143e5 store 2 ,mem_cb_bt_set_mult 
+4a99 20600000 rtn 
+
+keyboard_priority_bb_event:
+4a9a 44a34008 bpatch patch08_6 ,mem_patch08 
+4a9b 1a627e00 copy regc ,pdata 
+4a9c c0194acb beq bt_evt_le_start_enc ,keyboard_le_ll_start_encryt 
+4a9d c0224ad3 beq bt_evt_le_parse_conn_param_accepted ,keyboard_le_parse_conn_param_accepted 
+4a9e c0204add beq bt_evt_le_parse_conn_papa_update_rsp ,keyboard_le_conn_param_update_rsp_recieved 
+4a9f c00acab8 beq bt_evt_le_disconnected ,keyboard_le_bb_disconnected 
+4aa0 c00a4aaa beq bt_evt_le_connected ,keyboard_le_bb_event_connected 
+4aa1 c0084b90 beq bt_evt_button_long_pressed ,keyboard_bb_event_discovery_btn 
+4aa2 c018daed beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+4aa3 c014daef beq bt_evt_le_enc_info ,mouse_le_enc_info 
+4aa4 c01f4329 beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
+4aa5 c0225b10 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
+4aa6 c01ccae2 beq bt_evt_24g_pairing_complete ,keyboard_24g_pairing_complete 
+4aa7 c01e4ae5 beq bt_evt_24g_attempt_success ,keyboard_24g_attempt_success 
+4aa8 c01d4afe beq bt_evt_24g_attempt_fail ,keyboard_24g_attempt_fail 
+4aa9 20600000 rtn 
+
+keyboard_le_bb_event_connected:
+4aaa 70477d00 jam 0 ,mem_mouse_long_mult_flag 
+4aab 70479401 jam 1 ,mem_mouse_le_bb_connected_flag 
+4aac 20406042 call mouse_24g_first_store_reconn_info 
+4aad 6fe0c795 fetch 1 ,mem_mouse_le_reconnect_flag 
+4aae 243a4ab0 nbranch keyboard_le_bb_event_connected_next ,blank 
+4aaf 70479614 jam 0x14 ,mem_mouse_send_secutiry_request_timer 
+
+keyboard_le_bb_event_connected_next:
+4ab0 6fe143f1 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+4ab1 793ffe00 set0 app_disc_by_button ,pdata 
+4ab2 67e143f1 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+4ab3 70484500 jam 0 ,mem_mouse_direct_timer 
+4ab4 6fe147be fetch 2 ,mem_le_battery_level_updata_timer_init 
+4ab5 67e147c0 store 2 ,mem_le_battery_level_updata_timer 
+4ab6 20405c0b call mouse_no_data_timer_init 
+4ab7 20204bbd branch keyboard_stop_discovery 
+
+keyboard_le_bb_disconnected:
+4ab8 58000000 setarg 0 
+4ab9 67e147c0 store 2 ,mem_le_battery_level_updata_timer 
+4aba 67e0c860 store 1 ,mem_keyboard_le_send_conn_param_update 
+4abb 67e0c861 store 1 ,mem_keyboard_le_send_conn_param_update_timer 
+4abc 67e0c794 store 1 ,mem_mouse_le_bb_connected_flag 
+
+keyboard_le_bb_disconnected_next:
+4abd 7047c200 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+4abe 70495600 jam 0 ,mem_mouse_clear_sensor_data_flag 
+4abf 204029cb call le_clr_config_more_data 
+4ac0 20204ac1 branch keyboard_bb_disconnected 
+
+keyboard_bb_disconnected:
+4ac1 20405b7b call mouse_bb_discon_clear_stack 
+4ac2 6fe143ef fetch app_disc_rsn_size ,mem_app_disconn_reason 
+4ac3 c283cac6 bbit1 app_disc_ble ,keyboard4_0_event_bb_disconn 
+4ac4 c28042fc bbit1 app_disc_by_button ,app_disconn_reason_clear 
+4ac5 20204b95 branch keyboard_start_discovery 
+
+keyboard4_0_event_bb_disconn:
+4ac6 20405b21 call mouse_le_clean_connect_flag 
+4ac7 6fe143ef fetch app_disc_rsn_size ,mem_app_disconn_reason 
+4ac8 c28042fc bbit1 app_disc_by_button ,app_disconn_reason_clear 
+4ac9 20407d7c call ice_break 
+4aca 20204f6c branch keyboard_app_enter_hibernate 
+
+keyboard_le_ll_start_encryt:
+4acb 6fe0c795 fetch 1 ,mem_mouse_le_reconnect_flag 
+4acc c000cad0 beq 1 ,keyboard_le_ll_reconn_start_encryt 
+4acd 70484414 jam 20 ,mem_le_start_encrypt_timer 
+4ace 70486205 jam 5 ,mem_le_start_auto_reco_timer 
+4acf 20205af6 branch mouse_le_ll_enable_start_enc_flag 
+
+keyboard_le_ll_reconn_start_encryt:
+4ad0 20405aef call mouse_updata_le_param 
+4ad1 70484405 jam 5 ,mem_le_start_encrypt_timer 
+4ad2 20205af6 branch mouse_le_ll_enable_start_enc_flag 
+
+keyboard_le_parse_conn_param_accepted:
+4ad3 6fe081a2 fetch 1 ,mem_le_new_conninterval 
+4ad4 1fe67c0c sub pdata ,le_interval_15ms ,null 
+4ad5 24215b06 nbranch mouse_le_conn_param_lpm_disable ,positive 
+4ad6 6fe081a4 fetch 1 ,mem_le_new_connslavelatency 
+4ad7 6848c96b fetcht 1 ,mem_lpm_mult_init 
+4ad8 98467c00 isub temp ,null 
+4ad9 20215b1d branch mouse_le_lpm_mult_reinit ,positive 
+4ada 6fe081a4 fetch 1 ,mem_le_new_connslavelatency 
+4adb 67e0c0c0 store 1 ,mem_lpm_mult 
+4adc 20205b1f branch mouse_le_conn_param_lpm_enable 
+
+keyboard_le_conn_param_update_rsp_recieved:
+4add 6fe0c860 fetch 1 ,mem_keyboard_le_send_conn_param_update 
+4ade 247a0000 nrtn blank 
+4adf 70486001 jam 1 ,mem_keyboard_le_send_conn_param_update 
+4ae0 7048611e jam 30 ,mem_keyboard_le_send_conn_param_update_timer 
+4ae1 20600000 rtn 
+
+keyboard_24g_pairing_complete:
+4ae2 20404af9 call keyboard_get_24g_led_enable 
+4ae3 20405c0b call mouse_no_data_timer_init 
+4ae4 20206086 branch mouse_24g_pairing_complete_common 
+
+keyboard_24g_attempt_success:
+4ae5 20404af9 call keyboard_get_24g_led_enable 
+4ae6 6fe2458f fetch 4 ,mem_24g_addr 
+4ae7 67e245e8 store 4 ,mem_24g_receiver_addr 
+4ae8 67e24691 store 4 ,mem_mouse_24g_addr 
+4ae9 2040355a call g24_ch_syncword_crc8_init 
+4aea 2040618e call mouse_device_poweron_led_config 
+4aeb 20405c0b call mouse_no_data_timer_init 
+4aec 20206075 branch mouse_24g_attempt_success 
+
+keyboard_24g_get_led:
+4aed 70485f02 jam device_data_tpye_standard_keyboard ,mem_keyboard_data_send_flag 
+4aee 20404f3e call keyboard_clear_key_data 
+4aef 70472c03 jam 0x03 ,mem_customer_key_press + 2 
+4af0 20600000 rtn 
+
+keyboard_24g_led_get_status_check:
+4af1 df200006 arg 6 ,loopcnt 
+4af2 d8c04858 arg mem_keyboard_tx_data + 3 ,contr 
+
+keyboard_24g_led_data_check:
+4af3 efe08006 ifetch 1 ,contr 
+4af4 c029caf9 beq hid_key_num_lock ,keyboard_get_24g_led_enable 
+4af5 c01ccaf9 beq hid_key_caps_lock ,keyboard_get_24g_led_enable 
+4af6 c023caf9 beq hid_key_scroll_lock ,keyboard_get_24g_led_enable 
+4af7 c2004af3 loop keyboard_24g_led_data_check 
+4af8 20600000 rtn 
+
+keyboard_get_24g_led_enable:
+4af9 7049ab03 jam 0x03 ,mem_keyboard_led_status_get 
+4afa 7048f401 jam 1 ,mem_keyboard_data_change_flag 
+4afb 20600000 rtn 
+
+keyboard_set_repeat_send_flag:
+4afc 7049a901 jam 1 ,mem_24g_repeat_send_flag 
+4afd 20600000 rtn 
+
+keyboard_24g_attempt_fail:
+4afe 6fe0c600 fetch 1 ,mem_24g_attempt_fail_flag 
+4aff 243a4b11 nbranch keyboard_24g_hibernate_set ,blank 
+4b00 6fe0c5e2 fetch 1 ,mem_24g_reconn_type 
+4b01 c0014b0a beq fast_conn_and_3_0_addr ,keyboard_24g_fast_conn_attempt_fail 
+4b02 c001cb04 beq receiver_and_3_0_addr ,keyboard_24g_attempt_fail_enter_hibernate 
+4b03 20204b04 branch keyboard_24g_attempt_fail_enter_hibernate 
+
+keyboard_24g_attempt_fail_enter_hibernate:
+4b04 20406018 call mouse_24g_stop 
+4b05 6fe0c77f fetch 1 ,mem_reconn_times 
+4b06 243a5f1b nbranch mouse_polling_device ,blank 
+4b07 6fe0c666 fetch 1 ,mem_device_flag 
+4b08 c0004f6c beq mode_24g_device ,keyboard_app_enter_hibernate 
+4b09 20600000 rtn 
+
+keyboard_24g_fast_conn_attempt_fail:
+4b0a 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4b0b c29f6034 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+4b0c c2986034 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+4b0d c31d6067 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+4b0e 6fe24691 fetch 4 ,mem_mouse_24g_addr 
+4b0f 203a4e39 branch keyboard_24g_start_pair_mode ,blank 
+4b10 20206067 branch mouse_24g_reconn_dongle_start 
+
+keyboard_24g_hibernate_set:
+4b11 70460000 jam 0 ,mem_24g_attempt_fail_flag 
+4b12 20403647 call g24_transmit_next_packet 
+4b13 5fffffff setarg -1 
+4b14 67e445af store 8 ,mem_24g_enter_hibernate 
+4b15 58000000 setarg 0 
+4b16 67e3c846 store 7 ,mem_mouse_key 
+4b17 70473f01 jam 1 ,mem_sensor_shutdown_flag 
+4b18 20204f9a branch keyboard_g24_long_sleep 
+
+keyboard_bb_event_timer:
+4b19 44a3c008 bpatch patch08_7 ,mem_patch08 
+4b1a 2040553d call mouse_adc_read 
+4b1b 20404b4f call keyboard_low_voltage_param_set 
+4b1c 2040614d call mouse_low_voltage_led_timer 
+4b1d 2040328e call g24_pair_timeout_timer 
+4b1e 20403531 call g24_reconn_timeout_timer 
+4b1f 20405fdd call mouse_24g_long_sleep_param_update_timer 
+4b20 20404b62 call keyboard_24g_repeat_send_data 
+4b21 20404b68 call keyboard_24g_led_status_get_timer 
+4b22 20404b43 call keyboard_check_discovery_timeout_timer 
+4b23 20404b58 call keyboard_check_direct_timeout_timer 
+4b24 20405be1 call mouse_le_enable_att_list_timer 
+4b25 20404b5c call keyboard_le_battery_updata_timer 
+4b26 20405be4 call mouse_le_send_smp_security_request_timer 
+4b27 20404b5f call keyboard_le_send_conn_param_update_timer 
+4b28 20404b55 call keyboard_le_auto_recognize_timer 
+4b29 20405bfe call mouse_current_mult_update_timer 
+4b2a 204056b6 call mouse_wheel_trigger_timer 
+4b2b 20404b48 call keyboard_store_information_delay_timer 
+4b2c 20404b72 call keyboard_capslock_led_on_timer 
+4b2d 20404b82 call keyboard_long_press_timer 
+4b2e 20404b87 call keyboard_commbination_delay_release_timer 
+4b2f 6fe0c666 fetch 1 ,mem_device_flag 
+4b30 c0004b8a beq mode_24g_device ,keyboard_check_no_data_timeout_timer 
+4b31 20205c05 branch mouse_check_no_data_timeout_timer 
+
+keyboard_commbination_key_process:
+4b32 6fe0c980 fetch 1 ,mem_commbination_key_statue 
+4b33 c1808000 rtnne commbination_key_state_down 
+4b34 da604981 arg mem_combination_ui_button_count ,regc 
+4b35 da405a94 arg mouse_bluetooth_fast_conn_init ,regb 
+4b36 202042e0 branch timer_single_step 
+
+keyboard_commbination_fast_conn_bt_check:
+4b37 6fe148fa fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+4b38 684949ff fetcht 2 ,mem_keyboard_commbination_fast_conn_bt 
+4b39 98467c00 isub temp ,null 
+4b3a 2022cb3f branch keyboard_commbination_key_down ,zero 
+4b3b 18508400 byteswap temp ,temp 
+4b3c 98467c00 isub temp ,null 
+4b3d 2022cb3f branch keyboard_commbination_key_down ,zero 
+4b3e 20205bba branch mouse_commbination_key_up 
+
+keyboard_commbination_key_down:
+4b3f 6fe0c980 fetch 1 ,mem_commbination_key_statue 
+4b40 c1008000 rtneq commbination_key_state_down 
+4b41 70498001 jam commbination_key_state_down ,mem_commbination_key_statue 
+4b42 20600000 rtn 
+
+keyboard_check_discovery_timeout_timer:
+4b43 da604790 arg mem_mouse_discovery_timer ,regc 
+4b44 da404b46 arg keyboard_check_discovery_timeout ,regb 
+4b45 202042e7 branch timer_single_step_2b 
+
+keyboard_check_discovery_timeout:
+4b46 20404bbd call keyboard_stop_discovery 
+4b47 20204f6c branch keyboard_app_enter_hibernate 
+
+keyboard_store_information_delay_timer:
+4b48 da6046f3 arg mem_store_information_delay_timer ,regc 
+4b49 da404b4b arg keyboard_store_device_info_check ,regb 
+4b4a 202042e0 branch timer_single_step 
+
+keyboard_store_device_info_check:
+4b4b 20404a56 call keyboard_store_device_info 
+4b4c 6fe0c793 fetch 1 ,mem_mouse_need_soft_reset 
+4b4d 243a5ed1 nbranch mouse_soft_reset ,blank 
+4b4e 20600000 rtn 
+
+keyboard_low_voltage_param_set:
+4b4f 6fe0c637 fetch 1 ,mem_mouse_adc_last_low_voltage_flag 
+4b50 203a4b53 branch keyboard_low_voltage_param_set_33v ,blank 
+4b51 7046313a jam 58 ,mem_mouse_vdd_low_vol 
+4b52 20600000 rtn 
+
+keyboard_low_voltage_param_set_33v:
+4b53 70463135 jam 53 ,mem_mouse_vdd_low_vol 
+4b54 20600000 rtn 
+
+keyboard_le_auto_recognize_timer:
+4b55 da604862 arg mem_le_start_auto_reco_timer ,regc 
+4b56 da40502f arg keyboard_le_send_att_find_by_type_value_request_ancs ,regb 
+4b57 202042e0 branch timer_single_step 
+
+keyboard_check_direct_timeout_timer:
+4b58 da604845 arg mem_mouse_direct_timer ,regc 
+4b59 da405bd9 arg mouse_check_direct_timeout ,regb 
+4b5a 204042e0 call timer_single_step 
+4b5b 20205bd6 branch mouse_check_direct_timeout_timer + 3 
+
+keyboard_le_battery_updata_timer:
+4b5c 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4b5d c39d8000 rtnbit1 mouse_enable_le_battery_service_cancel 
+4b5e 20205bee branch mouse_le_battery_updata_timer 
+
+keyboard_le_send_conn_param_update_timer:
+4b5f da604861 arg mem_keyboard_le_send_conn_param_update_timer ,regc 
+4b60 da405aef arg mouse_updata_le_param ,regb 
+4b61 202042e0 branch timer_single_step 
+
+keyboard_24g_repeat_send_data:
+4b62 6fe0c9a9 fetch 1 ,mem_24g_repeat_send_flag 
+4b63 207a0000 rtn blank 
+4b64 7049a900 jam 0 ,mem_24g_repeat_send_flag 
+4b65 7048f401 jam 1 ,mem_keyboard_data_change_flag 
+4b66 20403625 call g24_txdata_prep 
+4b67 20204fa0 branch keyboard_g24_transmit_process 
+
+keyboard_24g_led_status_get_timer:
+4b68 da6049ac arg mem_keyboard_led_status_get_timer ,regc 
+4b69 da404b6b arg keyboard_24g_led_status_clear ,regb 
+4b6a 202042e0 branch timer_single_step 
+
+keyboard_24g_led_status_clear:
+4b6b 7049ab00 jam 0 ,mem_keyboard_led_status_get 
+4b6c 20600000 rtn 
+
+keyboard_device_led_off:
+4b6d 204061ea call mouse_device_multi_led_off 
+4b6e 20404b7c call keyboard_capslock_led_off 
+
+keyboard_power_led_off:
+4b6f 6848c868 fetcht 1 ,mem_keyboard_power_led_gpio 
+4b70 20206ef3 branch gpio_out_inactive 
+
+keyboard_numlock_led_off:
+4b71 20600000 rtn 
+
+keyboard_capslock_led_on_timer:
+4b72 6fe0c866 fetch 1 ,mem_keyboard_caps_led_gpio 
+4b73 c17f8000 rtneq gpio_disable 
+4b74 6fe14781 fetch 2 ,mem_mouse_no_data_timer 
+4b75 207a0000 rtn blank 
+4b76 6fe14725 fetch 2 ,mem_mouse_no_data_timeout 
+4b77 68494781 fetcht 2 ,mem_mouse_no_data_timer 
+4b78 98460400 isub temp ,temp 
+4b79 6fe14869 fetch 2 ,mem_keyboard_caps_led_on_timer 
+4b7a 98467e00 isub temp ,pdata 
+4b7b 20214b7e branch keyboard_capslock_led_check_on ,positive 
+
+keyboard_capslock_led_off:
+4b7c 6848c866 fetcht 1 ,mem_keyboard_caps_led_gpio 
+4b7d 20206ef3 branch gpio_out_inactive 
+
+keyboard_capslock_led_check_on:
+4b7e 6fe0c9aa fetch 1 ,mem_keyboard_led_status 
+4b7f c300cb7c bbit0 kb_pc_keysel_capslock ,keyboard_capslock_led_off 
+4b80 6848c866 fetcht 1 ,mem_keyboard_caps_led_gpio 
+4b81 20206ef7 branch gpio_out_active 
+
+keyboard_long_press_timer:
+4b82 da6048ee arg mem_same_keyvalue_timer ,regc 
+4b83 da404b85 arg keyboard_long_press_timerout ,regb 
+4b84 202042e7 branch timer_single_step_2b 
+
+keyboard_long_press_timerout:
+4b85 7048eb01 jam 1 ,mem_same_keyvalue_timerout_flag 
+4b86 20204327 branch app_enter_hibernate 
+
+keyboard_commbination_delay_release_timer:
+4b87 da6049c4 arg mem_keyboard_commbination_control_key_delay_release_timer ,regc 
+4b88 da404d9e arg keyboard_commbination_key_null_set ,regb 
+4b89 202042e0 branch timer_single_step 
+
+keyboard_check_no_data_timeout_timer:
+4b8a da604781 arg mem_mouse_no_data_timer ,regc 
+4b8b da404b8d arg keyboard_check_no_data_timeout ,regb 
+4b8c 202042e7 branch timer_single_step_2b 
+
+keyboard_check_no_data_timeout:
+4b8d 6fe0c666 fetch 1 ,mem_device_flag 
+4b8e c0004b11 beq mode_24g_device ,keyboard_24g_hibernate_set 
+4b8f 20205aad branch mouse_disconnect 
+
+keyboard_bb_event_discovery_btn:
+4b90 280ffe26 isolate1 mark_24g ,mark 
+4b91 2040e018 call mouse_24g_stop ,true 
+4b92 20405aad call mouse_disconnect 
+4b93 20405b21 call mouse_le_clean_connect_flag 
+4b94 20204b95 branch keyboard_start_discovery 
+
+keyboard_start_discovery:
+4b95 44a44009 bpatch patch09_0 ,mem_patch09 
+4b96 204061ab call mouse_device_discovery_led_config 
+4b97 6fe144e9 fetch 2 ,mem_ui_state_map 
+4b98 2feffe0b isolate1 ui_state_ble_adv ,pdata 
+4b99 2040dc3e call mouse_stop_le_adv ,true 
+4b9a 58000000 setarg 0 
+4b9b 67e147c0 store 2 ,mem_le_battery_level_updata_timer 
+4b9c 20404b7c call keyboard_capslock_led_off 
+4b9d 7049c6ff jam 0xff ,mem_kb_computer_system 
+4b9e 6fe144e9 fetch 2 ,mem_ui_state_map 
+4b9f 2feffe0b isolate1 ui_state_ble_adv ,pdata 
+4ba0 2040dc3e call mouse_stop_le_adv ,true 
+4ba1 20405aa8 call mouse_bluetooth_fast_conn_disable 
+4ba2 6fe144e9 fetch 2 ,mem_ui_state_map 
+4ba3 c285cbac bbit1 ui_state_ble_adv ,keyboard_start_discovery_norandom 
+4ba4 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4ba5 c3044bac bbit0 mouse_enable_ble_random_addre ,keyboard_start_discovery_norandom 
+4ba6 68494695 fetcht 2 ,mem_random_addr_increase_count 
+4ba7 18408401 increase 1 ,temp 
+4ba8 60494695 storet 2 ,mem_random_addr_increase_count 
+4ba9 604942dc storet 2 ,mem_le_lap + 1 
+4baa 180a7e00 random pdata 
+4bab 67e0c2db store 1 ,mem_le_lap 
+
+keyboard_start_discovery_norandom:
+4bac 6fe1c797 fetch 3 ,mem_mouse_le_lap_temp 
+4bad 67e1c2de store 3 ,mem_le_lap + 3 
+4bae 2040432d call app_lpm_mult_disable 
+4baf 6fe14638 fetch 2 ,mem_mouse_discovery_timeout 
+4bb0 67e14790 store 2 ,mem_mouse_discovery_timer 
+4bb1 58000000 setarg 0 
+4bb2 67e14781 store 2 ,mem_mouse_no_data_timer 
+4bb3 67e147c0 store 2 ,mem_le_battery_level_updata_timer 
+4bb4 67e0c845 store 1 ,mem_mouse_direct_timer 
+4bb5 67e0c792 store 1 ,mem_mouse_bluetooth_reconnect_timeout 
+4bb6 67e0c956 store 1 ,mem_mouse_clear_sensor_data_flag 
+4bb7 d8e00002 arg mouse_store_eeprom_flag ,queue 
+4bb8 20405f00 call mouse_enable_function_flag 
+4bb9 20405ef4 call mouse_bt_discovery_button_down_disable 
+4bba 20205b62 branch mouse_check_51cmd_adv 
+
+keyboard_low_voltage_led_blink_disable:
+4bbb 70463700 jam 0 ,mem_mouse_adc_last_low_voltage_flag 
+4bbc 2020616e branch mouse_low_voltage_led_off_judge 
+
+keyboard_stop_discovery:
+4bbd 44a4c009 bpatch patch09_1 ,mem_patch09 
+4bbe 58000000 setarg 0 
+4bbf 67e14790 store 2 ,mem_mouse_discovery_timer 
+4bc0 d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
+4bc1 20405f04 call mouse_disable_function_flag 
+4bc2 70479200 jam 0 ,mem_mouse_bluetooth_reconnect_timeout 
+4bc3 20405c3e call mouse_stop_le_adv 
+4bc4 20204b6d branch keyboard_device_led_off 
+
+keyboard_store_remote_bdaddr:
+4bc5 44a54009 bpatch patch09_2 ,mem_patch09 
+4bc6 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4bc7 c4010000 rtnbit0 mouse_store_eeprom_flag 
+4bc8 d8e00002 arg mouse_store_eeprom_flag ,queue 
+4bc9 20405f04 call mouse_disable_function_flag 
+4bca 20405c4a call mouse_check_device_addr 
+4bcb 20205c48 branch mouse_unplug_clean_bdaddr 
+
+keyboard_idle:
+4bcc 44a5c009 bpatch patch09_3 ,mem_patch09 
+4bcd 2040620e call mouse_low_voltage_led_no_enter_lpm 
+4bce 202078aa branch ui_check_paring_button 
+
+keyboard_start_work:
+4bcf 44a64009 bpatch patch09_4 ,mem_patch09 
+4bd0 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4bd1 c30acbdc bbit0 mouse_enable_adc ,keyboard_start_work_next 
+4bd2 20406f82 call enable_adc 
+4bd3 20406fb0 call vdd_calculate_by_mode 
+4bd4 67e14633 store 2 ,mem_mouse_vdd_now_vol 
+4bd5 6fe1440a fetch 2 ,mem_adc_current_value 
+4bd6 98467c00 isub temp ,null 
+4bd7 20214bcf branch keyboard_start_work ,positive 
+4bd8 da20462d arg mem_mouse_vdd_calculate_set ,rega 
+4bd9 20405563 call mouse_adc_bat_percent_lowpower_out 
+4bda 6fe0c40c fetch 1 ,mem_adc_power_flag 
+4bdb c280cf6b bbit1 1 ,keyboard_power_down 
+
+keyboard_start_work_next:
+4bdc 6fe0c9a4 fetch 1 ,mem_keyboard_pairing_type 
+4bdd 205a4e24 call keyboard_enable_bt_button_pairing ,blank 
+4bde 6fe0c9a3 fetch 1 ,mem_keyboard_bt_button_flag 
+4bdf 247a0000 nrtn blank 
+4be0 6fe0c666 fetch 1 ,mem_device_flag 
+4be1 c000602f beq mode_24g_device ,mouse_24g_reconn_general_dongle 
+4be2 20405aa8 call mouse_bluetooth_fast_conn_disable 
+4be3 6fe34668 fetch 6 ,mem_device1_addr 
+4be4 203a5a94 branch mouse_bluetooth_fast_conn_init ,blank 
+4be5 202054a0 branch mouse_start_reconnect_device 
+
+keyboard_le:
+4be6 44a6c009 bpatch patch09_5 ,mem_patch09 
+4be7 20402a28 call le_fifo_check_nearly_full 
+4be8 247a0000 nrtn blank 
+4be9 6fe0c78f fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+4bea c07fcbee beq 0xff ,keyboard_le_next 
+4beb 6fe0c843 fetch 1 ,mem_le_connect_status_flag 
+4bec 1fe17e03 and pdata ,0x03 ,pdata 
+4bed c1818000 rtnne 0x03 
+
+keyboard_le_next:
+4bee 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4bef c280db5b bbit1 mouse_24g_pairing_flag ,mouse_le_send_empty_packet 
+4bf0 c2805b5b bbit1 mouse_select_device_flag ,mouse_le_send_empty_packet 
+4bf1 c282db5b bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
+4bf2 c2835b5b bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_le_send_empty_packet 
+4bf3 20404e47 call keyboard_motion 
+4bf4 24740000 nrtn user 
+4bf5 20405abc call mouse_current_mult_update 
+4bf6 204056b1 call mouse_wheel_trigger 
+4bf7 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4bf8 c30b5b3c bbit0 mouse_enable_keyboard ,mouse_le_send_mouse_data 
+4bf9 6fe0c96c fetch 1 ,mem_customer_key 
+4bfa 20205b3d branch mouse_le_send_keyboard_package_data 
+
+kscan_dispatch:
+4bfb 6fe0c3cb fetch 1 ,mem_device_option 
+4bfc c1878000 rtnne dvc_op_keyboard 
+4bfd 20404c00 call keyboard_keyscan 
+4bfe 20404c8b call keyboard_key_process 
+4bff 20204df5 branch keyboard_special_key_check 
+
+keyboard_keyscan:
+4c00 44a74009 bpatch patch09_6 ,mem_patch09 
+4c01 20404c85 call keyboard_stb_state_low 
+4c02 58000000 setarg 0 
+4c03 67e148e9 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+4c04 d8c0489c arg mem_keyscan_value_current ,contr 
+4c05 d8a048b0 arg mem_keyscan_value_check ,contw 
+4c06 df200014 arg 20 ,loopcnt 
+4c07 20407cda call memcpy 
+4c08 5800489c setarg mem_keyscan_value_current 
+4c09 67e148e3 store 2 ,mem_keyscan_value_ptr 
+4c0a 580048d8 setarg mem_keyscan_exmcu_value 
+4c0b 67e148e5 store 2 ,mem_keyscan_exmcu_value_ptr 
+4c0c 20404c2f call keyboard_keyscan_get_exmcu_value 
+4c0d 20404c53 call keyboard_keyscan_get_mcu_value 
+4c0e 20404c83 call keyboard_stb_state_high 
+
+keyboard_keyscan_copy_value:
+4c0f 6fe1489a fetch 2 ,mem_kb_excol_ptr 
+4c10 1fe22400 copy pdata ,regb 
+4c11 7048e800 jam 0 ,mem_keyscan_col_loop_count 
+
+keyboard_compare_col_excol_gpio_loop:
+4c12 e8408012 ifetcht 1 ,regb 
+4c13 6fe14898 fetch 2 ,mem_kb_col_ptr 
+4c14 1fe22200 copy pdata ,rega 
+4c15 1a222600 copy rega ,regc 
+4c16 df200014 arg 20 ,loopcnt 
+
+keyboard_compare_col_gpio_loop:
+4c17 efe08011 ifetch 1 ,rega 
+4c18 98467c00 isub temp ,null 
+4c19 2022cc23 branch keyboard_copy_value_exmcu_to_mcu ,zero 
+4c1a 1a20a201 increase 1 ,rega 
+4c1b c2004c17 loop keyboard_compare_col_gpio_loop 
+
+keyboard_compare_col_excol_gpio_loop_next:
+4c1c 1a40a401 increase 1 ,regb 
+4c1d 6fe0c8e8 fetch 1 ,mem_keyscan_col_loop_count 
+4c1e 1fe0fe01 increase 1 ,pdata 
+4c1f 67e0c8e8 store 1 ,mem_keyscan_col_loop_count 
+4c20 1fe67c0a sub pdata ,10 ,null 
+4c21 20214c12 branch keyboard_compare_col_excol_gpio_loop ,positive 
+4c22 20600000 rtn 
+
+keyboard_copy_value_exmcu_to_mcu:
+4c23 6fe148e3 fetch 2 ,mem_keyscan_value_ptr 
+4c24 1fe20a00 copy pdata ,contw 
+4c25 1a227e00 copy rega ,pdata 
+4c26 9a667e00 isub regc ,pdata 
+4c27 98a08a00 iadd contw ,contw 
+4c28 6fe148e5 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+4c29 1fe22600 copy pdata ,regc 
+4c2a 6fe0c8e8 fetch 1 ,mem_keyscan_col_loop_count 
+4c2b 9a60a600 iadd regc ,regc 
+4c2c efe08013 ifetch 1 ,regc 
+4c2d e7e08005 istore 1 ,contw 
+4c2e 20204c1c branch keyboard_compare_col_excol_gpio_loop_next 
+
+keyboard_keyscan_get_exmcu_value:
+4c2f 44a7c009 bpatch patch09_7 ,mem_patch09 
+4c30 20404c83 call keyboard_stb_state_high 
+4c31 20404c81 call keyboard_clk_input 
+
+keyboard_keyscan_exmcu_start:
+4c32 6fe148e9 fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+4c33 1fe0fe01 increase 1 ,pdata 
+4c34 67e148e9 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+4c35 c284cc71 bbit1 9 ,keyboard_keyscan_reset_exmcu 
+4c36 6848c864 fetcht 1 ,mem_mcu_clk_gpio 
+4c37 20406ee6 call gpio_get_bit 
+4c38 2420cc32 nbranch keyboard_keyscan_exmcu_start ,true 
+4c39 20000014 nop 20 
+4c3a 20404c79 call keyboard_clk_state_high 
+4c3b 20404c85 call keyboard_stb_state_low 
+4c3c 7048e800 jam 0 ,mem_keyscan_col_loop_count 
+
+keyboard_keyscan_exmcu_start_loop:
+4c3d 20404c7b call keyboard_clk_state_low 
+4c3e 20404c46 call keyboard_keyscan_exmcu_get_col_value 
+4c3f 20404c79 call keyboard_clk_state_high 
+4c40 20404c46 call keyboard_keyscan_exmcu_get_col_value 
+4c41 1fe67c09 sub pdata ,9 ,null 
+4c42 20214c3d branch keyboard_keyscan_exmcu_start_loop ,positive 
+4c43 20404c7b call keyboard_clk_state_low 
+4c44 20404c46 call keyboard_keyscan_exmcu_get_col_value 
+4c45 20204c79 branch keyboard_clk_state_high 
+
+keyboard_keyscan_exmcu_get_col_value:
+4c46 7048e700 jam 0 ,mem_keyscan_value_temp 
+4c47 20000032 nop 50 
+4c48 20404c65 call keyboard_keyscan_get_col_value 
+4c49 6fe148e5 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+
+keyboard_keyscan_value_store:
+4c4a 1fe20a00 copy pdata ,contw 
+4c4b 6fe0c8e8 fetch 1 ,mem_keyscan_col_loop_count 
+4c4c 98a08a00 iadd contw ,contw 
+4c4d 6fe0c8e7 fetch 1 ,mem_keyscan_value_temp 
+4c4e e7e08005 istore 1 ,contw 
+4c4f 6fe0c8e8 fetch 1 ,mem_keyscan_col_loop_count 
+4c50 1fe0fe01 increase 1 ,pdata 
+4c51 67e0c8e8 store 1 ,mem_keyscan_col_loop_count 
+4c52 20600000 rtn 
+
+keyboard_keyscan_get_mcu_value:
+4c53 20000014 nop 20 
+4c54 6fe14898 fetch 2 ,mem_kb_col_ptr 
+4c55 1fe22400 copy pdata ,regb 
+4c56 7048e800 jam 0 ,mem_keyscan_col_loop_count 
+
+keyboard_keyscan_mcu_start:
+4c57 7048e700 jam 0 ,mem_keyscan_value_temp 
+4c58 e8408012 ifetcht 1 ,regb 
+4c59 284ffe07 isolate1 7 ,temp 
+4c5a 2020cc5f branch keyboard_keyscan_mcu_start_loop ,true 
+4c5b 20406ef7 call gpio_out_active 
+4c5c 20404c65 call keyboard_keyscan_get_col_value 
+4c5d e8408012 ifetcht 1 ,regb 
+4c5e 20406f0f call gpio_set_high_impedance 
+
+keyboard_keyscan_mcu_start_loop:
+4c5f 1a40a401 increase 1 ,regb 
+4c60 6fe148e3 fetch 2 ,mem_keyscan_value_ptr 
+4c61 20404c4a call keyboard_keyscan_value_store 
+4c62 1fe67c13 sub pdata ,19 ,null 
+4c63 20214c57 branch keyboard_keyscan_mcu_start ,positive 
+4c64 20600000 rtn 
+
+keyboard_keyscan_get_col_value:
+4c65 6fe14896 fetch 2 ,mem_kb_row_ptr 
+4c66 1fe22600 copy pdata ,regc 
+4c67 df200008 arg 8 ,loopcnt 
+
+keyboard_keyscan_get_col_value_loop:
+4c68 e8408013 ifetcht 1 ,regc 
+4c69 20406ee6 call gpio_get_bit 
+4c6a 6fe0c8e7 fetch 1 ,mem_keyscan_value_temp 
+4c6b 1fe37e00 rshift pdata ,pdata 
+4c6c 7920fe07 setflag true ,7 ,pdata 
+4c6d 67e0c8e7 store 1 ,mem_keyscan_value_temp 
+4c6e 1a60a601 increase 1 ,regc 
+4c6f c2004c68 loop keyboard_keyscan_get_col_value_loop 
+4c70 20600000 rtn 
+
+keyboard_keyscan_reset_exmcu:
+4c71 6848c865 fetcht 1 ,mem_mcu_rstb_gpio 
+4c72 20406ef7 call gpio_out_active 
+4c73 20000014 nop 20 
+4c74 6848c865 fetcht 1 ,mem_mcu_rstb_gpio 
+4c75 20406ef3 call gpio_out_inactive 
+4c76 20001770 nop 6000 
+4c77 20600000 rtn 
+4c78 20204c00 branch keyboard_keyscan 
+
+keyboard_clk_state_high:
+4c79 6848c864 fetcht 1 ,mem_mcu_clk_gpio 
+4c7a 20206ef3 branch gpio_out_inactive 
+
+keyboard_clk_state_low:
+4c7b 6848c864 fetcht 1 ,mem_mcu_clk_gpio 
+4c7c 20206ef7 branch gpio_out_active 
+
+keyboard_gpio_config_input_pu:
+4c7d 18467cff sub temp ,ui_button_gpio_disable ,null 
+4c7e 20628000 rtn zero 
+4c7f 793f8407 set0 gpio_active_bit ,temp 
+4c80 20206edd branch gpio_config_input 
+
+keyboard_clk_input:
+4c81 6848c864 fetcht 1 ,mem_mcu_clk_gpio 
+4c82 20206edd branch gpio_config_input 
+
+keyboard_stb_state_high:
+4c83 6848c863 fetcht 1 ,mem_mcu_stb_gpio 
+4c84 20206ef3 branch gpio_out_inactive 
+
+keyboard_stb_state_low:
+4c85 6848c863 fetcht 1 ,mem_mcu_stb_gpio 
+4c86 20206ef7 branch gpio_out_active 
+
+keyboard_press_change_or_no_key:
+4c87 7048eb00 jam 0 ,mem_same_keyvalue_timerout_flag 
+4c88 6fe148ec fetch 2 ,mem_same_keyvalue_timer_init 
+4c89 67e148ee store 2 ,mem_same_keyvalue_timer 
+4c8a 20600000 rtn 
+
+keyboard_key_process:
+4c8b 44a8400a bpatch patch0a_0 ,mem_patch0a 
+4c8c da20489c arg mem_keyscan_value_current ,rega 
+4c8d da4048b0 arg mem_keyscan_value_check ,regb 
+4c8e df200014 arg 20 ,loopcnt 
+4c8f 20407d64 call string_compare 
+4c90 2422cc87 nbranch keyboard_press_change_or_no_key ,zero 
+4c91 20404cc5 call keyboard_keyscan_value_current_zero_check 
+4c92 205a4c87 call keyboard_press_change_or_no_key ,blank 
+4c93 20404ccd call keyboard_ghost_key_check 
+4c94 6fe0c97b fetch 1 ,mem_mouse_ghost_flag 
+4c95 247a0000 nrtn blank 
+4c96 6fe0c9c1 fetch 1 ,mem_keyboard_commbination_key_step 
+4c97 c1008000 rtneq cammbination_key_press 
+4c98 c1010000 rtneq cammbination_key_hold 
+4c99 c1020000 rtneq cammbination_key_wait_release 
+4c9a 7048e800 jam 0 ,mem_keyscan_col_loop_count 
+4c9b da20489c arg mem_keyscan_value_current ,rega 
+4c9c da4048c4 arg mem_keyscan_value_old ,regb 
+
+keyboard_keyvalue_process:
+4c9d e8408011 ifetcht 1 ,rega 
+4c9e efe08012 ifetch 1 ,regb 
+4c9f 9842fe00 ixor temp ,pdata 
+4ca0 203a4cbd branch keyboard_keyvalue_process_loop ,blank 
+4ca1 67e0c8e7 store 1 ,mem_keyscan_value_temp 
+4ca2 6048c8f6 storet 1 ,mem_keyboard_press_flag_temp 
+4ca3 e0408012 istoret 1 ,regb 
+4ca4 7048f401 jam 1 ,mem_keyboard_data_change_flag 
+4ca5 7048f700 jam 0 ,mem_keyboard_keyvalue_bit_loop_count 
+
+keyboard_keyvalue_change:
+4ca6 6fe0c8e7 fetch 1 ,mem_keyscan_value_temp 
+4ca7 c3004cb3 bbit0 0 ,keyboard_keyvalue_change_loop 
+4ca8 6fe0c8e8 fetch 1 ,mem_keyscan_col_loop_count 
+4ca9 1feffe08 mul32 pdata ,8 ,pdata 
+4caa 6848c8f7 fetcht 1 ,mem_keyboard_keyvalue_bit_loop_count 
+4cab 9840fe00 iadd temp ,pdata 
+4cac d8c04901 arg mem_keyboard_keyvalue_map ,contr 
+4cad 98c08c00 iadd contr ,contr 
+4cae efe08006 ifetch 1 ,contr 
+4caf 67e0c8f5 store 1 ,mem_keyboard_keyvalue_temp 
+4cb0 20404cfc call keyboard_keyvalue_fn_replace 
+4cb1 20404d3a call keyboard_keyvalue_commbination_replace 
+4cb2 20404dbb call keyboard_keyvalue_in_out 
+
+keyboard_keyvalue_change_loop:
+4cb3 6fe0c8e7 fetch 1 ,mem_keyscan_value_temp 
+4cb4 1fe37e00 rshift pdata ,pdata 
+4cb5 67e0c8e7 store 1 ,mem_keyscan_value_temp 
+4cb6 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+4cb7 1fe37e00 rshift pdata ,pdata 
+4cb8 67e0c8f6 store 1 ,mem_keyboard_press_flag_temp 
+4cb9 6fe0c8f7 fetch 1 ,mem_keyboard_keyvalue_bit_loop_count 
+4cba 1fe0fe01 increase 1 ,pdata 
+4cbb 67e0c8f7 store 1 ,mem_keyboard_keyvalue_bit_loop_count 
+4cbc c2004ca6 loop keyboard_keyvalue_change 
+
+keyboard_keyvalue_process_loop:
+4cbd 1a20a201 increase 1 ,rega 
+4cbe 1a40a401 increase 1 ,regb 
+4cbf 6fe0c8e8 fetch 1 ,mem_keyscan_col_loop_count 
+4cc0 1fe0fe01 increase 1 ,pdata 
+4cc1 67e0c8e8 store 1 ,mem_keyscan_col_loop_count 
+4cc2 1fe67c13 sub pdata ,19 ,null 
+4cc3 20214c9d branch keyboard_keyvalue_process ,positive 
+4cc4 20600000 rtn 
+
+keyboard_keyscan_value_current_zero_check:
+4cc5 6fe4489c fetch 8 ,mem_keyscan_value_current 
+4cc6 247a0000 nrtn blank 
+4cc7 6fe448a4 fetch 8 ,mem_keyscan_value_current + 8 
+4cc8 247a0000 nrtn blank 
+4cc9 6fe248ac fetch 4 ,mem_keyscan_value_current + 16 
+4cca 247a0000 nrtn blank 
+4ccb 7049c100 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+4ccc 20600000 rtn 
+
+keyboard_ghost_key_check:
+4ccd 44a8c00a bpatch patch0a_1 ,mem_patch0a 
+4cce 70497b00 jam 0 ,mem_mouse_ghost_flag 
+4ccf 7048f100 jam 0 ,mem_keyboard_all_press_key_count 
+4cd0 da20489c arg mem_keyscan_value_current ,rega 
+4cd1 df200014 arg 20 ,loopcnt 
+
+keyboard_ghost_key_check_loop:
+4cd2 7048f000 jam 0 ,mem_keyboard_current_col_press_key_count 
+4cd3 efe08011 ifetch 1 ,rega 
+4cd4 203a4cf7 branch keyboard_ghost_key_check_next_loop ,blank 
+
+keyboard_current_col_press_key_count_check:
+4cd5 6848c8f0 fetcht 1 ,mem_keyboard_current_col_press_key_count 
+4cd6 18408401 increase 1 ,temp 
+4cd7 6048c8f0 storet 1 ,mem_keyboard_current_col_press_key_count 
+4cd8 1fe20400 copy pdata ,temp 
+4cd9 1fe0ffff increase -1 ,pdata 
+4cda 98417e00 iand temp ,pdata 
+4cdb 2422ccd5 nbranch keyboard_current_col_press_key_count_check ,zero 
+4cdc 6fe0c8f0 fetch 1 ,mem_keyboard_current_col_press_key_count 
+4cdd 6848c8f1 fetcht 1 ,mem_keyboard_all_press_key_count 
+4cde 98408400 iadd temp ,temp 
+4cdf 6048c8f1 storet 1 ,mem_keyboard_all_press_key_count 
+4ce0 1fe67c01 sub pdata ,1 ,null 
+4ce1 20214cf7 branch keyboard_ghost_key_check_next_loop ,positive 
+4ce2 18467c02 sub temp ,2 ,null 
+4ce3 20214cf7 branch keyboard_ghost_key_check_next_loop ,positive 
+4ce4 7048e800 jam 0 ,mem_keyscan_col_loop_count 
+4ce5 7048f200 jam 0 ,mem_keyboard_same_row_press_key_count 
+4ce6 e8408011 ifetcht 1 ,rega 
+4ce7 da40489c arg mem_keyscan_value_current ,regb 
+
+keyboard_same_row_key_check:
+4ce8 6fe0c8e8 fetch 1 ,mem_keyscan_col_loop_count 
+4ce9 1fe0fe01 increase 1 ,pdata 
+4cea 67e0c8e8 store 1 ,mem_keyscan_col_loop_count 
+4ceb 1fe67c13 sub pdata ,19 ,null 
+4cec 24214cf7 nbranch keyboard_ghost_key_check_next_loop ,positive 
+4ced efe08012 ifetch 1 ,regb 
+4cee 98417c00 iand temp ,null 
+4cef 2022ccfa branch keyboard_same_row_key_check_loop ,zero 
+4cf0 6fe0c8f2 fetch 1 ,mem_keyboard_same_row_press_key_count 
+4cf1 1fe0fe01 increase 1 ,pdata 
+4cf2 67e0c8f2 store 1 ,mem_keyboard_same_row_press_key_count 
+4cf3 1fe67c01 sub pdata ,1 ,null 
+4cf4 20214cfa branch keyboard_same_row_key_check_loop ,positive 
+4cf5 70497b01 jam 1 ,mem_mouse_ghost_flag 
+4cf6 20600000 rtn 
+
+keyboard_ghost_key_check_next_loop:
+4cf7 1a20a201 increase 1 ,rega 
+4cf8 c2004cd2 loop keyboard_ghost_key_check_loop 
+4cf9 20600000 rtn 
+
+keyboard_same_row_key_check_loop:
+4cfa 1a40a401 increase 1 ,regb 
+4cfb 20204ce8 branch keyboard_same_row_key_check 
+
+keyboard_keyvalue_fn_replace:
+4cfc 44a9400a bpatch patch0a_2 ,mem_patch0a 
+4cfd 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+4cfe 245a4d4e ncall keyboard_commbination_delay_release_clear ,blank 
+4cff 6fe0c9a1 fetch 1 ,mem_keyboard_fn_flag 
+4d00 245a4d11 ncall keyboard_keyvalue_fn_replace_press ,blank 
+4d01 6fe0c9ae fetch 1 ,mem_keyboard_fn_first 
+4d02 6848c9a1 fetcht 1 ,mem_keyboard_fn_flag 
+4d03 9842fe00 ixor temp ,pdata 
+4d04 20628000 rtn zero 
+4d05 6fe0c8f5 fetch 1 ,mem_keyboard_keyvalue_temp 
+4d06 c014cd19 beq hid_key_esc ,keyboard_keyvalue_fn_esc 
+4d07 c0264d1b beq hid_key_delete ,keyboard_keyvalue_fn_delete 
+4d08 1fe67c45 sub pdata ,hid_key_f12 ,null 
+4d09 24610000 nrtn positive 
+4d0a d840003a arg hid_key_f1 ,temp 
+4d0b 98467e00 isub temp ,pdata 
+4d0c 24610000 nrtn positive 
+4d0d d8c049b0 arg mem_keyboard_fn_f1 ,contr 
+4d0e 98c08c00 iadd contr ,contr 
+4d0f efe08006 ifetch 1 ,contr 
+4d10 20204d38 branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_replace_press:
+4d11 6fe0c8f5 fetch 1 ,mem_keyboard_keyvalue_temp 
+4d12 c0294d1d beq hid_key_up_arrow ,keyboard_keyvalue_fn_up_arrow 
+4d13 c028cd21 beq hid_key_down_arrow ,keyboard_keyvalue_fn_down_arrow 
+4d14 c0284d25 beq hid_key_left_arrow ,keyboard_keyvalue_fn_left_arrow 
+4d15 c027cd29 beq hid_key_right_arrow ,keyboard_keyvalue_fn_right_arrow 
+4d16 c0704d2d beq hid_key_left_ctrl ,keyboard_keyvalue_fn_left_ctrl 
+4d17 c0164d35 beq hid_key_space ,keyboard_keyvalue_fn_space 
+4d18 20600000 rtn 
+
+keyboard_keyvalue_fn_esc:
+4d19 6fe0c9af fetch 1 ,mem_keyboard_fn_esc 
+4d1a 20204d38 branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_delete:
+4d1b 6fe0c9bc fetch 1 ,mem_keyboard_fn_del 
+4d1c 20204d38 branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_up_arrow:
+4d1d 6fe0c9bd fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+4d1e 207a0000 rtn blank 
+4d1f 5800004b setarg hid_key_page_up 
+4d20 20204d38 branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_down_arrow:
+4d21 6fe0c9bd fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+4d22 207a0000 rtn blank 
+4d23 5800004e setarg hid_key_page_down 
+4d24 20204d38 branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_left_arrow:
+4d25 6fe0c9bd fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+4d26 207a0000 rtn blank 
+4d27 5800004a setarg hid_key_home 
+4d28 20204d38 branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_right_arrow:
+4d29 6fe0c9bd fetch 1 ,mem_keyboard_fn_arrow_enable_flag 
+4d2a 207a0000 rtn blank 
+4d2b 5800004d setarg hid_key_end 
+4d2c 20204d38 branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_left_ctrl:
+4d2d 6fe0c9be fetch 1 ,mem_keyboard_fn_left_ctrl_enable_flag 
+4d2e 207a0000 rtn blank 
+4d2f 6fe0c9c6 fetch 1 ,mem_kb_computer_system 
+4d30 c0004d33 beq system_os_windows ,keyboard_keyvalue_windows_osk 
+4d31 580000fd setarg hid_key_os_soft_kb 
+4d32 20204d38 branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_windows_osk:
+4d33 580000aa setarg hid_key_osk 
+4d34 20204d38 branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_space:
+4d35 6fe0c9bf fetch 1 ,mem_keyboard_fn_space_enable_flag 
+4d36 207a0000 rtn blank 
+4d37 580000ab setarg hid_key_language 
+
+keyboard_keyvalue_store_temp:
+4d38 67e0c8f5 store 1 ,mem_keyboard_keyvalue_temp 
+4d39 20600000 rtn 
+
+keyboard_keyvalue_commbination_replace:
+4d3a 44a9c00a bpatch patch0a_3 ,mem_patch0a 
+4d3b 6fe0c8f5 fetch 1 ,mem_keyboard_keyvalue_temp 
+4d3c c0234d50 beq hid_key_print_screen ,keyboard_commination_screen_shot_replace 
+4d3d c025cd56 beq hid_key_page_up ,keyboard_commination_pageup_replace 
+4d3e c0274d5c beq hid_key_page_down ,keyboard_commination_pagedown_replace 
+4d3f c0254d5e beq hid_key_home ,keyboard_commination_home_replace 
+4d40 c026cd60 beq hid_key_end ,keyboard_commination_end_replace 
+4d41 c052cd62 beq hid_key_select_all ,keyboard_commination_select_all 
+4d42 c0534d69 beq hid_key_copy ,keyboard_commbination_copy 
+4d43 c053cd6b beq hid_key_paste ,keyboard_commbination_paste 
+4d44 c0544d6d beq hid_key_cut ,keyboard_commbination_cut 
+4d45 c054cd6f beq hid_key_all_os_lock ,keyboard_commination_os_lock 
+4d46 c0554d7a beq hid_key_osk ,keyboard_commbination_osk 
+4d47 c055cd81 beq hid_key_language ,keyboard_commbination_language 
+4d48 c0564d8c beq hid_key_app_tiling ,keyboard_commbination_app_tiling 
+4d49 20600000 rtn 
+
+keyboard_commbination_delay_release_set:
+4d4a 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+4d4b 247a0000 nrtn blank 
+4d4c 7049c40a jam 10 ,mem_keyboard_commbination_control_key_delay_release_timer 
+4d4d 20600000 rtn 
+
+keyboard_commbination_delay_release_clear:
+4d4e 7049c400 jam 0 ,mem_keyboard_commbination_control_key_delay_release_timer 
+4d4f 20600000 rtn 
+
+keyboard_commination_screen_shot_replace:
+4d50 6fe0c9c6 fetch 1 ,mem_kb_computer_system 
+4d51 c1000000 rtneq system_os_windows 
+4d52 c1008000 rtneq system_os_andriod 
+4d53 7049c20a jam left_shift_gui ,mem_keyboard_commbination_control_key_value 
+4d54 7049c320 jam hid_key_3 ,mem_keyboard_commbination_standard_key_value 
+4d55 20204d95 branch keyboard_commbination_keypress 
+
+keyboard_commination_pageup_replace:
+4d56 7049c352 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
+
+keyboard_commination_ios_mac_command_commiation:
+4d57 6fe0c9c6 fetch 1 ,mem_kb_computer_system 
+4d58 c1000000 rtneq system_os_windows 
+4d59 c1008000 rtneq system_os_andriod 
+4d5a 7049c208 jam left_gui ,mem_keyboard_commbination_control_key_value 
+4d5b 20204d95 branch keyboard_commbination_keypress 
+
+keyboard_commination_pagedown_replace:
+4d5c 7049c351 jam hid_key_down_arrow ,mem_keyboard_commbination_standard_key_value 
+4d5d 20204d57 branch keyboard_commination_ios_mac_command_commiation 
+
+keyboard_commination_home_replace:
+4d5e 7049c350 jam hid_key_left_arrow ,mem_keyboard_commbination_standard_key_value 
+4d5f 20204d57 branch keyboard_commination_ios_mac_command_commiation 
+
+keyboard_commination_end_replace:
+4d60 7049c34f jam hid_key_right_arrow ,mem_keyboard_commbination_standard_key_value 
+4d61 20204d57 branch keyboard_commination_ios_mac_command_commiation 
+
+keyboard_commination_select_all:
+4d62 7049c304 jam hid_key_a ,mem_keyboard_commbination_standard_key_value 
+
+keyboard_commbination_text_edit:
+4d63 7049c201 jam left_control ,mem_keyboard_commbination_control_key_value 
+4d64 6fe0c9c6 fetch 1 ,mem_kb_computer_system 
+4d65 c0004d95 beq system_os_windows ,keyboard_commbination_keypress 
+4d66 c000cd95 beq system_os_andriod ,keyboard_commbination_keypress 
+4d67 7049c208 jam left_gui ,mem_keyboard_commbination_control_key_value 
+4d68 20204d95 branch keyboard_commbination_keypress 
+
+keyboard_commbination_copy:
+4d69 7049c306 jam hid_key_c ,mem_keyboard_commbination_standard_key_value 
+4d6a 20204d63 branch keyboard_commbination_text_edit 
+
+keyboard_commbination_paste:
+4d6b 7049c319 jam hid_key_v ,mem_keyboard_commbination_standard_key_value 
+4d6c 20204d63 branch keyboard_commbination_text_edit 
+
+keyboard_commbination_cut:
+4d6d 7049c31b jam hid_key_x ,mem_keyboard_commbination_standard_key_value 
+4d6e 20204d63 branch keyboard_commbination_text_edit 
+
+keyboard_commination_os_lock:
+4d6f 6fe0c9c6 fetch 1 ,mem_kb_computer_system 
+4d70 c0004d74 beq system_os_windows ,keyboard_commination_windows_lock 
+4d71 c001cd77 beq system_os_mac ,keyboard_commination_mac_lock 
+4d72 580000fc setarg hid_key_ios_android_os_lock 
+4d73 20204d38 branch keyboard_keyvalue_store_temp 
+
+keyboard_commination_windows_lock:
+4d74 7049c208 jam left_gui ,mem_keyboard_commbination_control_key_value 
+4d75 7049c30f jam hid_key_l ,mem_keyboard_commbination_standard_key_value 
+4d76 20204d95 branch keyboard_commbination_keypress 
+
+keyboard_commination_mac_lock:
+4d77 7049c209 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
+4d78 7049c314 jam hid_key_q ,mem_keyboard_commbination_standard_key_value 
+4d79 20204d95 branch keyboard_commbination_keypress 
+
+keyboard_commbination_osk:
+4d7a 6fe0c9c6 fetch 1 ,mem_kb_computer_system 
+4d7b c0004d7e beq system_os_windows ,keyboard_commbination_windows_osk 
+4d7c 580000fd setarg hid_key_os_soft_kb 
+4d7d 20204d38 branch keyboard_keyvalue_store_temp 
+
+keyboard_commbination_windows_osk:
+4d7e 7049c209 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
+4d7f 7049c312 jam hid_key_o ,mem_keyboard_commbination_standard_key_value 
+4d80 20204d95 branch keyboard_commbination_keypress 
+
+keyboard_commbination_language:
+4d81 6fe0c9c6 fetch 1 ,mem_kb_computer_system 
+4d82 c0004d88 beq system_os_windows ,keyboard_commbination_language_windows 
+4d83 c000cd8a beq system_os_andriod ,keyboard_commbination_language_andriod 
+4d84 7049c201 jam left_control ,mem_keyboard_commbination_control_key_value 
+
+keyboard_commbination_language_next:
+4d85 7049c32c jam hid_key_space ,mem_keyboard_commbination_standard_key_value 
+4d86 20404d4a call keyboard_commbination_delay_release_set 
+4d87 20204d95 branch keyboard_commbination_keypress 
+
+keyboard_commbination_language_windows:
+4d88 7049c208 jam left_gui ,mem_keyboard_commbination_control_key_value 
+4d89 20204d85 branch keyboard_commbination_language_next 
+
+keyboard_commbination_language_andriod:
+4d8a 7049c202 jam left_shift ,mem_keyboard_commbination_control_key_value 
+4d8b 20204d85 branch keyboard_commbination_language_next 
+
+keyboard_commbination_app_tiling:
+4d8c 6fe0c9c6 fetch 1 ,mem_kb_computer_system 
+4d8d c0004d92 beq system_os_windows ,keyboard_commbination_app_tiling_windows_android 
+4d8e c000cd92 beq system_os_andriod ,keyboard_commbination_app_tiling_windows_android 
+4d8f 7049c201 jam left_control ,mem_keyboard_commbination_control_key_value 
+4d90 7049c352 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
+4d91 20204d95 branch keyboard_commbination_keypress 
+
+keyboard_commbination_app_tiling_windows_android:
+4d92 7049c208 jam left_gui ,mem_keyboard_commbination_control_key_value 
+4d93 7049c32b jam hid_key_tab ,mem_keyboard_commbination_standard_key_value 
+4d94 20204d95 branch keyboard_commbination_keypress 
+
+keyboard_commbination_keypress:
+4d95 7048f500 jam 0 ,mem_keyboard_keyvalue_temp 
+4d96 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+4d97 c3004d9c bbit0 0 ,keyboard_commbination_key_wait_release_set 
+4d98 6fe0c9c1 fetch 1 ,mem_keyboard_commbination_key_step 
+4d99 c001cda8 beq cammbination_key_complete ,keyboard_commbination_key_hold_set 
+
+keyboard_commbination_key_press_set:
+4d9a 7049c101 jam cammbination_key_press ,mem_keyboard_commbination_key_step 
+4d9b 20600000 rtn 
+
+keyboard_commbination_key_wait_release_set:
+4d9c 7049c104 jam cammbination_key_wait_release ,mem_keyboard_commbination_key_step 
+4d9d 20600000 rtn 
+
+keyboard_commbination_key_null_set:
+4d9e 7049c106 jam cammbination_key_null ,mem_keyboard_commbination_key_step 
+4d9f 20600000 rtn 
+
+keyboard_commbination_key_value_store:
+4da0 67e0c856 store 1 ,mem_keyboard_tx_data + 1 
+4da1 6048c858 storet 1 ,mem_keyboard_tx_data + 3 
+4da2 20407dba call enable_user 
+4da3 70485500 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+4da4 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_commbination_key_press_process:
+4da5 6fe0c9c2 fetch 1 ,mem_keyboard_commbination_control_key_value 
+4da6 d8400000 arg 0 ,temp 
+4da7 20404da0 call keyboard_commbination_key_value_store 
+
+keyboard_commbination_key_hold_set:
+4da8 7049c102 jam cammbination_key_hold ,mem_keyboard_commbination_key_step 
+4da9 20600000 rtn 
+
+keyboard_commbination_key_hold_process:
+4daa 7049c103 jam cammbination_key_complete ,mem_keyboard_commbination_key_step 
+4dab 6fe0c9c2 fetch 1 ,mem_keyboard_commbination_control_key_value 
+4dac 6848c9c3 fetcht 1 ,mem_keyboard_commbination_standard_key_value 
+4dad 20204da0 branch keyboard_commbination_key_value_store 
+
+keyboard_commbination_key_wait_release_process:
+4dae 70485500 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+4daf 6fe0c9c2 fetch 1 ,mem_keyboard_commbination_control_key_value 
+4db0 d8400000 arg 0 ,temp 
+4db1 20404da0 call keyboard_commbination_key_value_store 
+4db2 6fe0c9c4 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+4db3 203a4d9e branch keyboard_commbination_key_null_set ,blank 
+
+keyboard_commbination_key_release_set:
+4db4 7049c105 jam cammbination_key_release ,mem_keyboard_commbination_key_step 
+4db5 20600000 rtn 
+
+keyboard_commbination_key_release_process:
+4db6 20204da2 branch keyboard_commbination_key_value_store + 2 
+
+keyboard_commbination_key_null_process:
+4db7 7049c100 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+4db8 dfe00000 arg 0 ,pdata 
+4db9 d8400000 arg 0 ,temp 
+4dba 20204da0 branch keyboard_commbination_key_value_store 
+
+keyboard_keyvalue_in_out:
+4dbb 44aa400a bpatch patch0a_4 ,mem_patch0a 
+4dbc 6fe0c8f5 fetch 1 ,mem_keyboard_keyvalue_temp 
+4dbd 1fe67ce7 sub pdata ,hid_key_right_gui ,null 
+4dbe 20214dc3 branch keyboard_keyvalue_standard ,positive 
+4dbf 7049c501 jam keyboard_consumer_key_press ,mem_keyboard_consumer_key_status 
+4dc0 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+4dc1 c2804dc3 bbit1 0 ,keyboard_keyvalue_standard 
+4dc2 7049c502 jam keyboard_consumer_key_release ,mem_keyboard_consumer_key_status 
+
+keyboard_keyvalue_standard:
+4dc3 70490000 jam 0 ,mem_keyboard_keyvalue_buffer + 8 
+4dc4 6fe0c8f6 fetch 1 ,mem_keyboard_press_flag_temp 
+4dc5 c2804ddd bbit1 0 ,keyboard_keyvalue_standard_in 
+
+keyboard_keyvalue_standard_out:
+4dc6 6848c8f5 fetcht 1 ,mem_keyboard_keyvalue_temp 
+4dc7 df200006 arg 6 ,loopcnt 
+4dc8 d8c048fa arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+
+keyboard_keyvalue_standard_out_loop:
+4dc9 efe08006 ifetch 1 ,contr 
+4dca 203a4dd4 branch keyboard_keyvalue_standard_out_next + 1 ,blank 
+4dcb 98467c00 isub temp ,null 
+4dcc 2422cdd3 nbranch keyboard_keyvalue_standard_out_next ,zero 
+4dcd efe08006 ifetch 1 ,contr 
+4dce 18c08dfe increase -2 ,contr 
+4dcf e7e08006 istore 1 ,contr 
+4dd0 207a0000 rtn blank 
+4dd1 18c08c01 increase 1 ,contr 
+4dd2 e0408006 istoret 1 ,contr 
+
+keyboard_keyvalue_standard_out_next:
+4dd3 c2004dc9 loop keyboard_keyvalue_standard_out_loop 
+4dd4 18467ce7 sub temp ,hid_key_right_gui ,null 
+4dd5 24610000 nrtn positive 
+4dd6 18467cbf sub temp ,0xbf ,null 
+4dd7 20610000 rtn positive 
+
+keyboard_keyvalue_control_key_out:
+4dd8 18410e07 and temp ,0x07 ,queue 
+4dd9 6fe0c8f8 fetch 1 ,mem_keyboard_keyvalue_buffer 
+4dda f93ffe00 qset0 pdata 
+4ddb 67e0c8f8 store 1 ,mem_keyboard_keyvalue_buffer 
+4ddc 20600000 rtn 
+
+keyboard_keyvalue_standard_in:
+4ddd 6848c8f5 fetcht 1 ,mem_keyboard_keyvalue_temp 
+4dde df200006 arg 6 ,loopcnt 
+4ddf d8c048fa arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+
+keyboard_keyvalue_standard_in_loop:
+4de0 efe08006 ifetch 1 ,contr 
+4de1 203a4dee branch keyboard_keyvalue_standard_in_data ,blank 
+4de2 98467c00 isub temp ,null 
+4de3 20628000 rtn zero 
+4de4 c2004de0 loop keyboard_keyvalue_standard_in_loop 
+4de5 18467ce7 sub temp ,hid_key_right_gui ,null 
+4de6 24610000 nrtn positive 
+4de7 18467cbf sub temp ,0xbf ,null 
+4de8 20610000 rtn positive 
+
+keyboard_keyvalue_control_key_in:
+4de9 18410e07 and temp ,0x07 ,queue 
+4dea 6fe0c8f8 fetch 1 ,mem_keyboard_keyvalue_buffer 
+4deb f9207e00 qset1 pdata 
+4dec 67e0c8f8 store 1 ,mem_keyboard_keyvalue_buffer 
+4ded 20600000 rtn 
+
+keyboard_keyvalue_standard_in_data:
+4dee 18467ce7 sub temp ,hid_key_right_gui ,null 
+4def 24214df2 nbranch keyboard_keyvalue_standard_in_data_next ,positive 
+4df0 18467cbf sub temp ,0xbf ,null 
+4df1 24214de9 nbranch keyboard_keyvalue_control_key_in ,positive 
+
+keyboard_keyvalue_standard_in_data_next:
+4df2 18c08dff increase -1 ,contr 
+4df3 e0408006 istoret 1 ,contr 
+4df4 20600000 rtn 
+
+keyboard_special_key_check:
+4df5 44aac00a bpatch patch0a_5 ,mem_patch0a 
+4df6 20404e14 call keyboard_pairing_button_check 
+4df7 7049a100 jam 0 ,mem_keyboard_fn_flag 
+4df8 7049a200 jam 0 ,mem_keyboard_control_key_flag 
+4df9 7049a300 jam 0 ,mem_keyboard_bt_button_flag 
+4dfa 6fe0c8f8 fetch 1 ,mem_keyboard_keyvalue_buffer 
+4dfb 245a4e41 ncall keyborad_control_key_set ,blank 
+4dfc d8c048fa arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+4dfd df200006 arg 6 ,loopcnt 
+
+keyboard_special_key_check_loop:
+4dfe efe08006 ifetch 1 ,contr 
+4dff 1fe67c7f sub pdata ,hid_key_fn ,null 
+4e00 2042ce43 call keyboard_fn_set ,zero 
+4e01 1fe67cde sub pdata ,hid_key_pb ,null 
+4e02 2042ce45 call keyboard_pb_set ,zero 
+4e03 c2004dfe loop keyboard_special_key_check_loop 
+4e04 6fe0c666 fetch 1 ,mem_device_flag 
+4e05 c0004e11 beq mode_24g_device ,keyboard_special_key_check_24g 
+
+keyboard_special_key_check_bluetooth:
+4e06 20404b37 call keyboard_commbination_fast_conn_bt_check 
+4e07 6fe0c9a4 fetch 1 ,mem_keyboard_pairing_type 
+4e08 203a4e24 branch keyboard_enable_bt_button_pairing ,blank 
+4e09 6fe148fa fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+4e0a 684949a5 fetcht 2 ,mem_keyboard_commbination_key_bt 
+4e0b 98467c00 isub temp ,null 
+4e0c 2022ce29 branch keyboard_long_button_bt_discovery ,zero 
+4e0d 18508400 byteswap temp ,temp 
+4e0e 98467c00 isub temp ,null 
+4e0f 2022ce29 branch keyboard_long_button_bt_discovery ,zero 
+4e10 20600000 rtn 
+
+keyboard_special_key_check_24g:
+4e11 6fe0c9a4 fetch 1 ,mem_keyboard_pairing_type 
+4e12 203a4e24 branch keyboard_enable_bt_button_pairing ,blank 
+4e13 20204e32 branch keyboard_commbination_pairing_24g_check 
+
+keyboard_pairing_button_check:
+4e14 6fe0c9a4 fetch 1 ,mem_keyboard_pairing_type 
+4e15 247a0000 nrtn blank 
+4e16 6848c655 fetcht 1 ,mem_config_select_device_button_gpio 
+4e17 18467cff sub temp ,ui_button_gpio_disable ,null 
+4e18 20628000 rtn zero 
+4e19 20406ee6 call gpio_get_bit 
+4e1a 2420ce20 nbranch keyboard_pairing_button_release ,true 
+4e1b df200008 arg 8 ,loopcnt 
+4e1c d8a048f8 arg mem_keyboard_keyvalue_buffer ,contw 
+4e1d 20407ca1 call clear_mem 
+4e1e 7048fade jam hid_key_pb ,mem_keyboard_keyvalue_buffer + 2 
+4e1f 20600000 rtn 
+
+keyboard_pairing_button_release:
+4e20 6fe0c8fa fetch 1 ,mem_keyboard_keyvalue_buffer + 2 
+4e21 c1ef0000 rtnne hid_key_pb 
+4e22 7048fa00 jam hid_key_null ,mem_keyboard_keyvalue_buffer + 2 
+4e23 20600000 rtn 
+
+keyboard_enable_bt_button_pairing:
+4e24 44ab400a bpatch patch0a_6 ,mem_patch0a 
+4e25 6fe0c9a3 fetch 1 ,mem_keyboard_bt_button_flag 
+4e26 207a0000 rtn blank 
+4e27 6fe0c666 fetch 1 ,mem_device_flag 
+4e28 c0004e39 beq mode_24g_device ,keyboard_24g_start_pair_mode 
+
+keyboard_long_button_bt_discovery:
+4e29 7048f400 jam 0 ,mem_keyboard_data_change_flag 
+4e2a 6fe0c666 fetch 1 ,mem_device_flag 
+4e2b c1000000 rtneq mode_24g_device 
+4e2c 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4e2d c3830000 rtnbit1 mouse_bt_discovery_button_long_down_flag 
+4e2e d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
+4e2f 20405f00 call mouse_enable_function_flag 
+4e30 204042d0 call app_evt_button_long_pressed 
+4e31 20204b90 branch keyboard_bb_event_discovery_btn 
+
+keyboard_commbination_pairing_24g_check:
+4e32 6fe148fa fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+4e33 684949a7 fetcht 2 ,mem_keyboard_commbination_key_24g 
+4e34 98467c00 isub temp ,null 
+4e35 2022ce39 branch keyboard_24g_start_pair_mode ,zero 
+4e36 18508400 byteswap temp ,temp 
+4e37 98467c00 isub temp ,null 
+4e38 24628000 nrtn zero 
+
+keyboard_24g_start_pair_mode:
+4e39 204049f8 call keyboard_pairing_check_otp_offset 
+4e3a 7048f400 jam 0 ,mem_keyboard_data_change_flag 
+4e3b 6fe145d8 fetch 2 ,mem_24g_pair_timeout 
+4e3c 247a0000 nrtn blank 
+4e3d 58000000 setarg 0 
+4e3e 67e14781 store 2 ,mem_mouse_no_data_timer 
+4e3f 20404b7c call keyboard_capslock_led_off 
+4e40 20206047 branch mouse_24g_start_pair_mode 
+
+keyborad_control_key_set:
+4e41 7049a201 jam 1 ,mem_keyboard_control_key_flag 
+4e42 20600000 rtn 
+
+keyboard_fn_set:
+4e43 7049a101 jam 1 ,mem_keyboard_fn_flag 
+4e44 20600000 rtn 
+
+keyboard_pb_set:
+4e45 7049a301 jam 1 ,mem_keyboard_bt_button_flag 
+4e46 20600000 rtn 
+
+keyboard_motion:
+4e47 44abc00a bpatch patch0a_7 ,mem_patch0a 
+4e48 78547c00 disable user 
+4e49 70496c00 jam 0 ,mem_customer_key 
+4e4a 70496d00 jam 0 ,mem_customer_data_trigger 
+4e4b 70496e00 jam 0 ,mem_customer_data_trigger_last 
+4e4c 6fe0c9c1 fetch 1 ,mem_keyboard_commbination_key_step 
+4e4d c000cda5 beq cammbination_key_press ,keyboard_commbination_key_press_process 
+4e4e c0014daa beq cammbination_key_hold ,keyboard_commbination_key_hold_process 
+4e4f c001cdaa beq cammbination_key_complete ,keyboard_commbination_key_hold_process 
+4e50 c0024dae beq cammbination_key_wait_release ,keyboard_commbination_key_wait_release_process 
+4e51 c0034db7 beq cammbination_key_null ,keyboard_commbination_key_null_process 
+4e52 6fe0c8f4 fetch 1 ,mem_keyboard_data_change_flag 
+4e53 203a4e64 branch keyboard_no_key_press ,blank 
+4e54 1fe0ffff increase -1 ,pdata 
+4e55 67e0c8f4 store 1 ,mem_keyboard_data_change_flag 
+4e56 20404e61 call keyboard_current_mult_update 
+4e57 7049ac0a jam 10 ,mem_keyboard_led_status_get_timer 
+4e58 20405c0b call mouse_no_data_timer_init 
+4e59 6fe0c9c1 fetch 1 ,mem_keyboard_commbination_key_step 
+4e5a c002cdb6 beq cammbination_key_release ,keyboard_commbination_key_release_process 
+4e5b d8a04855 arg mem_keyboard_tx_data ,contw 
+4e5c df20000a arg 10 ,loopcnt 
+4e5d 20407ca1 call clear_mem 
+4e5e 20404e74 call keyboard_motion_data_check 
+4e5f 70485f00 jam 0 ,mem_keyboard_data_send_flag 
+4e60 20600000 rtn 
+
+keyboard_current_mult_update:
+4e61 7040c003 jam 3 ,mem_lpm_mult 
+4e62 70477e0a jam 10 ,mem_mouse_current_mult_timer 
+4e63 20600000 rtn 
+
+keyboard_no_key_press:
+4e64 6fe0c666 fetch 1 ,mem_device_flag 
+4e65 c1008000 rtneq mode_bt_device1 
+4e66 6fe0c9ab fetch 1 ,mem_keyboard_led_status_get 
+4e67 207a0000 rtn blank 
+4e68 6fe0c9a9 fetch 1 ,mem_24g_repeat_send_flag 
+4e69 247a0000 nrtn blank 
+4e6a 6848c9ad fetcht 1 ,mem_keyboard_led_status_get_timer_last 
+4e6b 6fe0c9ac fetch 1 ,mem_keyboard_led_status_get_timer 
+4e6c 98467c00 isub temp ,null 
+4e6d 67e0c9ad store 1 ,mem_keyboard_led_status_get_timer_last 
+4e6e 20628000 rtn zero 
+4e6f d8a04855 arg mem_keyboard_tx_data ,contw 
+4e70 df20000a arg 10 ,loopcnt 
+4e71 20407ca1 call clear_mem 
+4e72 20407dba call enable_user 
+4e73 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_motion_data_check:
+4e74 6fe0c9c5 fetch 1 ,mem_keyboard_consumer_key_status 
+4e75 c0014f05 beq keyboard_consumer_key_release ,keyboard_value_consumer_release 
+4e76 d8c048fa arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+4e77 df200006 arg 6 ,loopcnt 
+
+keyboard_value_tpye_check:
+4e78 efe08006 ifetch 1 ,contr 
+4e79 1fe67ce7 sub pdata ,hid_key_right_gui ,null 
+4e7a 24214e9c nbranch keyboard_value_tpye_consumer_set ,positive 
+
+keyboard_value_tpye_check_loop:
+4e7b c2004e78 loop keyboard_value_tpye_check 
+4e7c 6fe0c8f1 fetch 1 ,mem_keyboard_all_press_key_count 
+4e7d 205a4e92 call keyboard_value_release_all_key ,blank 
+4e7e 70485500 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+4e7f 6fe0c8fa fetch 1 ,mem_keyboard_keyvalue_buffer + 2 
+4e80 1fe67c7f sub pdata ,hid_key_fn ,null 
+4e81 2022ce95 branch keyboard_tx_data_skip_fn ,zero 
+4e82 d8c048f8 arg mem_keyboard_keyvalue_buffer ,contr 
+4e83 d8a04856 arg mem_keyboard_tx_data + 1 ,contw 
+4e84 df200008 arg 8 ,loopcnt 
+
+keyboard_tx_data_store:
+4e85 efe08006 ifetch 1 ,contr 
+4e86 c03fce9a beq hid_key_fn ,keyboard_tx_data_clear_fn 
+
+keyboard_tx_data_store_loop:
+4e87 e7e08005 istore 1 ,contw 
+4e88 c2004e85 loop keyboard_tx_data_store 
+
+keyboard_motion_data_check_next:
+4e89 20404f10 call keyboard_device_data_tpye_check 
+4e8a 6fe0c85f fetch 1 ,mem_keyboard_data_send_flag 
+4e8b c000fdba beq device_data_tpye_mouse ,enable_user 
+4e8c c0014e90 beq device_data_tpye_standard_keyboard ,device_send_keyboard_data 
+4e8d c001ce90 beq device_data_tpye_nonstarndard_keyboard ,device_send_keyboard_data 
+4e8e c0024e90 beq device_data_tpye_consumer ,device_send_keyboard_data 
+4e8f c002ce90 beq device_data_tpye_system_conctol ,device_send_keyboard_data 
+
+device_send_keyboard_data:
+4e90 20405917 call mouse_customerkey_press 
+4e91 20207dba branch enable_user 
+
+keyboard_value_release_all_key:
+4e92 d8a048f8 arg mem_keyboard_keyvalue_buffer ,contw 
+4e93 df200009 arg 9 ,loopcnt 
+4e94 20207ca1 branch clear_mem 
+
+keyboard_tx_data_skip_fn:
+4e95 6fe148f8 fetch 2 ,mem_keyboard_keyvalue_buffer 
+4e96 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4e97 6fe348fb fetch 6 ,mem_keyboard_keyvalue_buffer + 3 
+4e98 67e34858 store 6 ,mem_keyboard_tx_data + 3 
+4e99 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_tx_data_clear_fn:
+4e9a 58000000 setarg 0 
+4e9b 20204e87 branch keyboard_tx_data_store_loop 
+
+keyboard_value_tpye_consumer_set:
+4e9c 1fe20400 copy pdata ,temp 
+4e9d 44ac400b bpatch patch0b_0 ,mem_patch0b 
+4e9e 18427e00 copy temp ,pdata 
+4e9f 70485503 jam hid_reportid_consumer_key ,mem_keyboard_tx_data 
+4ea0 6848c8f1 fetcht 1 ,mem_keyboard_all_press_key_count 
+4ea1 18467c00 sub temp ,hid_key_null ,null 
+4ea2 2022cf05 branch keyboard_value_consumer_all_key_release ,zero 
+4ea3 c0744ebb beq hid_key_multikey_media ,keyboard_value_media 
+4ea4 c074cebe beq hid_key_multikey_paly ,keyboard_value_play 
+4ea5 c0754ec1 beq hid_key_multikey_stop ,keyboard_value_stop 
+4ea6 c075cec4 beq hid_key_multikey_pre_track ,keyboard_value_pre_track 
+4ea7 c0764ec7 beq hid_key_multikey_next_track ,keyboard_value_next_track 
+4ea8 c076ceca beq hid_key_multikey_vol_down ,keyboard_value_vol_down 
+4ea9 c0774ecd beq hid_key_multikey_vol_up ,keyboard_value_vol_up 
+4eaa c077ced0 beq hid_key_multikey_mute ,keyboard_value_mute 
+4eab c0784ed3 beq hid_key_my_computer ,keyboard_value_my_computer 
+4eac c078ced6 beq hid_key_mail ,keyboard_value_mail 
+4ead c0794ed9 beq hid_key_calculator ,keyboard_value_calculator 
+4eae c079cedc beq hid_key_light_down ,keyboard_value_light_down 
+4eaf c07a4edf beq hid_key_light_up ,keyboard_value_light_up 
+4eb0 c07acee2 beq hid_key_ac_favorites ,keyboard_value_ac_favorites 
+4eb1 c07b4ee5 beq hid_key_ac_forward ,keyboard_value_ac_forward 
+4eb2 c07bcee8 beq hid_key_ac_back ,keyboard_value_ac_back 
+4eb3 c07c4eeb beq hid_key_ac_stop ,keyboard_value_ac_stop 
+4eb4 c07cceee beq hid_key_ac_refresh ,keyboard_value_ac_refresh 
+4eb5 c07d4ef1 beq hid_key_ac_search ,keyboard_value_ac_search 
+4eb6 c07dcef7 beq hid_key_ac_home ,keyboard_value_ac_home 
+4eb7 c07e4efa beq hid_key_ios_android_os_lock ,keyboard_value_os_lock 
+4eb8 c07ecefd beq hid_key_os_soft_kb ,keyboard_value_os_soft_kb 
+4eb9 c07fcf0c beq hid_key_system_sleep ,keyboard_value_system_sleep 
+4eba 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_media:
+4ebb 58000183 setarg 0x0183 
+4ebc 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ebd 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_play:
+4ebe 580000cd setarg 0x00cd 
+4ebf 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ec0 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_stop:
+4ec1 580000b7 setarg 0x00b7 
+4ec2 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ec3 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_pre_track:
+4ec4 580000b6 setarg 0x00b6 
+4ec5 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ec6 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_next_track:
+4ec7 580000b5 setarg 0x00b5 
+4ec8 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ec9 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_vol_down:
+4eca 580000ea setarg 0x00ea 
+4ecb 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ecc 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_vol_up:
+4ecd 580000e9 setarg 0x00e9 
+4ece 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ecf 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_mute:
+4ed0 580000e2 setarg 0x00e2 
+4ed1 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ed2 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_my_computer:
+4ed3 58000194 setarg 0x0194 
+4ed4 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ed5 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_mail:
+4ed6 5800018a setarg 0x018a 
+4ed7 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ed8 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_calculator:
+4ed9 58000192 setarg 0x0192 
+4eda 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4edb 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_light_down:
+4edc 58000070 setarg 0x0070 
+4edd 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ede 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_light_up:
+4edf 5800006f setarg 0x006f 
+4ee0 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ee1 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_ac_favorites:
+4ee2 5800022a setarg 0x022a 
+4ee3 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ee4 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_ac_forward:
+4ee5 58000225 setarg 0x0225 
+4ee6 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ee7 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_ac_back:
+4ee8 58000224 setarg 0x0224 
+4ee9 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4eea 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_ac_stop:
+4eeb 58000226 setarg 0x0226 
+4eec 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4eed 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_ac_refresh:
+4eee 58000227 setarg 0x0227 
+4eef 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ef0 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_ac_search:
+4ef1 6fe0c9c6 fetch 1 ,mem_kb_computer_system 
+4ef2 c0014ef7 beq system_os_ios ,keyboard_value_ac_home 
+4ef3 c001cef7 beq system_os_mac ,keyboard_value_ac_home 
+4ef4 58000221 setarg 0x0221 
+4ef5 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ef6 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_ac_home:
+4ef7 58000223 setarg 0x0223 
+4ef8 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4ef9 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_os_lock:
+4efa 58000030 setarg 0x0030 
+4efb 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4efc 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_os_soft_kb:
+4efd 6fe0c9c6 fetch 1 ,mem_kb_computer_system 
+4efe c000cf02 beq system_os_andriod ,keyboard_value_os_soft_kb_andriod 
+4eff 580001ae setarg 0x01ae 
+4f00 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4f01 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_os_soft_kb_andriod:
+4f02 58000307 setarg 0x0307 
+4f03 67e14856 store 2 ,mem_keyboard_tx_data + 1 
+4f04 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_consumer_all_key_release:
+
+keyboard_value_consumer_release:
+4f05 7048f402 jam 2 ,mem_keyboard_data_change_flag 
+4f06 6fe0c8f1 fetch 1 ,mem_keyboard_all_press_key_count 
+4f07 205a4e92 call keyboard_value_release_all_key ,blank 
+4f08 7049c500 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
+4f09 58000003 setarg 0x03 
+4f0a 67e1c855 store 3 ,mem_keyboard_tx_data 
+4f0b 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_value_system_sleep:
+4f0c 70485502 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
+4f0d 58000002 setarg 0x02 
+4f0e 67e0c856 store 1 ,mem_keyboard_tx_data + 1 
+4f0f 20204e89 branch keyboard_motion_data_check_next 
+
+keyboard_device_data_tpye_check:
+4f10 44acc00b bpatch patch0b_1 ,mem_patch0b 
+4f11 6fe0c666 fetch 1 ,mem_device_flag 
+4f12 c0804f18 bne mode_24g_device ,keyboard_device_data_tpye_check_next 
+4f13 7049a900 jam 0 ,mem_24g_repeat_send_flag 
+4f14 6fe14855 fetch 2 ,mem_keyboard_tx_data 
+4f15 245a4afc ncall keyboard_set_repeat_send_flag ,blank 
+4f16 6fe34858 fetch 6 ,mem_keyboard_tx_data + 3 
+4f17 245a4afc ncall keyboard_set_repeat_send_flag ,blank 
+
+keyboard_device_data_tpye_check_next:
+4f18 6fe0c855 fetch 1 ,mem_keyboard_tx_data 
+4f19 c0004f23 beq hid_reportid_key_standard ,keyboard_standard_data_send 
+4f1a c000cf1e beq hid_reportid_mouse ,keyboard_mouse_data_send 
+4f1b c001cf2e beq hid_reportid_consumer_key ,keyboard_consumer_data_send 
+4f1c c0014f36 beq hid_reportid_system_ctrl ,keyboard_system_control_data_send 
+4f1d 20600000 rtn 
+
+keyboard_mouse_data_send:
+4f1e 70485f01 jam device_data_tpye_mouse ,mem_keyboard_data_send_flag 
+4f1f d8c04855 arg mem_keyboard_tx_data ,contr 
+4f20 d8a04846 arg mem_mouse_key ,contw 
+4f21 df200007 arg 7 ,loopcnt 
+4f22 20207cda branch memcpy 
+
+keyboard_standard_data_send:
+4f23 70485f02 jam device_data_tpye_standard_keyboard ,mem_keyboard_data_send_flag 
+4f24 20404f3e call keyboard_clear_key_data 
+4f25 6fe0c666 fetch 1 ,mem_device_flag 
+4f26 c000cf2a beq mode_bt_device1 ,keyboard_standard_data_send_end 
+4f27 20404af1 call keyboard_24g_led_get_status_check 
+4f28 6fe0c9ab fetch 1 ,mem_keyboard_led_status_get 
+4f29 67e0c857 store 1 ,mem_keyboard_tx_data + 2 
+
+keyboard_standard_data_send_end:
+4f2a d8c04855 arg mem_keyboard_tx_data ,contr 
+4f2b d8a0472a arg mem_customer_key_press ,contw 
+4f2c df200009 arg 9 ,loopcnt 
+4f2d 20207cda branch memcpy 
+
+keyboard_consumer_data_send:
+4f2e 70485f04 jam device_data_tpye_consumer ,mem_keyboard_data_send_flag 
+4f2f 20404f3e call keyboard_clear_key_data 
+4f30 58000003 setarg 0x03 
+4f31 20405f15 call mouse_customer_media_key_set 
+4f32 d8c04856 arg mem_keyboard_tx_data + 1 ,contr 
+4f33 d8a0472b arg mem_customer_key_press + 1 ,contw 
+4f34 df200002 arg 2 ,loopcnt 
+4f35 20207cda branch memcpy 
+
+keyboard_system_control_data_send:
+4f36 70485f05 jam device_data_tpye_system_conctol ,mem_keyboard_data_send_flag 
+4f37 20404f3e call keyboard_clear_key_data 
+4f38 58000002 setarg 0x02 
+4f39 67e4472a store 8 ,mem_customer_key_press 
+4f3a 67e44733 store 8 ,mem_customer_key_release 
+4f3b 6fe0c856 fetch 1 ,mem_keyboard_tx_data + 1 
+4f3c 67e0c72b store 1 ,mem_customer_key_press + 1 
+4f3d 20600000 rtn 
+
+keyboard_clear_key_data:
+4f3e df200012 arg 18 ,loopcnt 
+4f3f d8a0472a arg mem_customer_key_press ,contw 
+4f40 20207ca1 branch clear_mem 
+
+keyboard_lpm_before_common:
+4f41 20407de2 call clear_wake 
+4f42 2040561c call mouse_wheel_check 
+4f43 6848c64a fetcht 1 ,mem_whee_a_data_gpio 
+4f44 20406eb2 call gpio_set_wake_by_current_state 
+4f45 6848c64b fetcht 1 ,mem_whee_b_data_gpio 
+4f46 20406eb2 call gpio_set_wake_by_current_state 
+4f47 6848c655 fetcht 1 ,mem_config_select_device_button_gpio 
+4f48 20406eb6 call gpio_set_wake 
+4f49 6fe14898 fetch 2 ,mem_kb_col_ptr 
+4f4a 1fe22400 copy pdata ,regb 
+4f4b df200014 arg 20 ,loopcnt 
+
+keyboard_key_col_wake_init:
+4f4c e8408012 ifetcht 1 ,regb 
+4f4d 284ffe07 isolate1 7 ,temp 
+4f4e 2440eef7 ncall gpio_out_active ,true 
+4f4f 1a40a401 increase 1 ,regb 
+4f50 c2004f4c loop keyboard_key_col_wake_init 
+4f51 6fe14896 fetch 2 ,mem_kb_row_ptr 
+4f52 1fe22400 copy pdata ,regb 
+4f53 df200008 arg 8 ,loopcnt 
+
+keyboard_key_row_wake_init:
+4f54 e8408012 ifetcht 1 ,regb 
+4f55 18467cff sub temp ,ui_button_gpio_disable ,null 
+4f56 2442eeb2 ncall gpio_set_wake_by_current_state ,zero 
+4f57 1a40a401 increase 1 ,regb 
+4f58 c2004f54 loop keyboard_key_row_wake_init 
+4f59 20600000 rtn 
+
+keyboard_key_row_wake_set:
+4f5a 6fe0c8eb fetch 1 ,mem_same_keyvalue_timerout_flag 
+4f5b 203a6eb6 branch gpio_set_wake ,blank 
+4f5c 20206eb2 branch gpio_set_wake_by_current_state 
+
+keyboard_process_lpm_before:
+4f5d c6130000 rtnmark1 mark_24g 
+4f5e 20404f41 call keyboard_lpm_before_common 
+4f5f 6fe08015 fetch 1 ,mem_lpm_current_mult 
+4f60 247a0000 nrtn blank 
+4f61 20206ed3 branch gpio_clr_wake 
+
+keyboard_before_hibernate:
+4f62 44ad400b bpatch patch0b_2 ,mem_patch0b 
+4f63 704659ff jam 0xff ,mem_sensor_motion_gpio 
+4f64 2040739a call disable_authrom 
+4f65 20404f70 call keyboard_device_led_all_off 
+4f66 204056a9 call mouse_before_hibernate_wheel_gpio_set 
+4f67 204054dc call mouse_setgpio_hibernate 
+4f68 20405d9e call mouse_flash_power_down 
+4f69 6848c659 fetcht 1 ,mem_sensor_motion_gpio 
+4f6a 20206ed3 branch gpio_clr_wake 
+
+keyboard_power_down:
+4f6b 20404f70 call keyboard_device_led_all_off 
+
+keyboard_app_enter_hibernate:
+4f6c 44adc00b bpatch patch0b_3 ,mem_patch0b 
+4f6d 20404f75 call keyboard_setgpio_hibernate 
+4f6e 20407d7c call ice_break 
+4f6f 20204327 branch app_enter_hibernate 
+
+keyboard_device_led_all_off:
+4f70 44ae400b bpatch patch0b_4 ,mem_patch0b 
+4f71 20404b6d call keyboard_device_led_off 
+4f72 20404b71 call keyboard_numlock_led_off 
+4f73 20404b7c call keyboard_capslock_led_off 
+4f74 20204b6f branch keyboard_power_led_off 
+
+keyboard_setgpio_hibernate:
+4f75 44aec00b bpatch patch0b_5 ,mem_patch0b 
+4f76 20407de2 call clear_wake 
+4f77 20404f70 call keyboard_device_led_all_off 
+4f78 20405a92 call mouse_set_sdio_high 
+4f79 20404f41 call keyboard_lpm_before_common 
+4f7a 204054f9 call mouse_gpio_pd_idle 
+4f7b 6848c65b fetcht 1 ,mem_mouse_reuse_2ice_gpio 
+4f7c 204055b5 call mouse_gpio_config_input_pu 
+4f7d 204055b9 call mouse_gpio_set_high_impedance 
+4f7e 202054f2 branch mouse_adc_gpio_set_before_hibernate 
+
+keyboard_g24_reconn_dispatch:
+4f7f 6fe145e0 fetch 2 ,mem_24g_reconn_count 
+4f80 1fe17ee0 and_into 0xe0 ,pdata 
+4f81 203a4f86 branch keyboard_g24_reconn_dispatch_next ,blank 
+4f82 6fe145e0 fetch 2 ,mem_24g_reconn_count 
+4f83 1fe0fe01 increase 1 ,pdata 
+4f84 67e145e0 store 2 ,mem_24g_reconn_count 
+4f85 20600000 rtn 
+
+keyboard_g24_reconn_dispatch_next:
+4f86 2040357f call g24_reconn_data_prep 
+4f87 20403651 call g24_transmit_receive_ack 
+4f88 242c3586 nbranch g24_reconn_device_fail ,sync 
+4f89 2437b586 nbranch g24_reconn_device_fail ,user3 
+4f8a 20405028 call keyboard_g24_ackpayload_parse 
+4f8b 2020356a branch g24_reconn_dispatch_next + 5 
+
+keyboard_g24_transmit_no_interrupt:
+4f8c 20403625 call g24_txdata_prep 
+4f8d 24344f91 nbranch keyboard_g24_nodata_transmit ,user 
+
+keyboard_g24_transmit_start:
+4f8e 20404fa0 call keyboard_g24_transmit_process 
+4f8f 20404fd5 call keyboard_power_ctrl_start 
+4f90 20204fdb branch keyboard_g24_transmit_start_next 
+
+keyboard_g24_nodata_transmit:
+4f91 6fe4489c fetch 8 ,mem_keyscan_value_current 
+4f92 243a4f8e nbranch keyboard_g24_transmit_start ,blank 
+4f93 6fe448a4 fetch 8 ,mem_keyscan_value_current + 8 
+4f94 243a4f8e nbranch keyboard_g24_transmit_start ,blank 
+4f95 6fe248ac fetch 4 ,mem_keyscan_value_current + 16 
+4f96 243a4f8e nbranch keyboard_g24_transmit_start ,blank 
+4f97 6fe0c618 fetch 1 ,mem_24g_transmit_by_interrupt 
+4f98 c1008000 rtneq g24_tx_timer_int_enable 
+4f99 2040369d call g24_search_receiver 
+
+keyboard_g24_long_sleep:
+4f9a 20404fc8 call keyboard_g24_lpm_wait 
+4f9b 24740000 nrtn user 
+4f9c 6fe0c73f fetch 1 ,mem_sensor_shutdown_flag 
+4f9d 245a4f75 ncall keyboard_setgpio_hibernate ,blank 
+4f9e 6fe245af fetch 4 ,mem_24g_enter_hibernate 
+4f9f 20203622 branch g24_long_seep2 
+
+keyboard_g24_transmit_process:
+4fa0 44af400b bpatch patch0b_6 ,mem_patch0b 
+4fa1 70460100 jam 0 ,mem_24g_retry 
+
+keyboard_g24_transmit_loop:
+4fa2 69610040 fetchr timeup ,2 ,mem_param_rx_setup 
+4fa3 34730200 until clkn_rt ,meet 
+4fa4 20404df5 call keyboard_special_key_check 
+4fa5 6fe0c9a3 fetch 1 ,mem_keyboard_bt_button_flag 
+4fa6 243a5ed1 nbranch mouse_soft_reset ,blank 
+4fa7 20403651 call g24_transmit_receive_ack 
+4fa8 6fe0c57f fetch 1 ,mem_24g_no_ack 
+4fa9 c000b646 beq no_ack_24g ,g24_transmit_no_ack 
+4faa 242c4faf nbranch keyboard_g24_retransmit ,sync 
+4fab 2437cfaf nbranch keyboard_g24_retransmit ,user3 
+4fac 20405028 call keyboard_g24_ackpayload_parse 
+4fad 70473f00 jam 0 ,mem_sensor_shutdown_flag 
+4fae 20203646 branch g24_transmit_no_ack 
+
+keyboard_g24_retransmit:
+4faf 6fe0c602 fetch 1 ,mem_24g_abort_pac 
+4fb0 247a0000 nrtn blank 
+4fb1 6fe145fe fetch 2 ,mem_24g_txfail_cnt 
+4fb2 1fe0fe01 increase 1 ,pdata 
+4fb3 67e145fe store 2 ,mem_24g_txfail_cnt 
+4fb4 6fe0c5fe fetch 1 ,mem_24g_txfail_cnt 
+4fb5 c07fb676 beq 0xff ,g24_tx_attempt_fail 
+4fb6 20404fb8 call keyboard_g24_transmit_hop_process 
+4fb7 20204fa2 branch keyboard_g24_transmit_loop 
+
+keyboard_g24_transmit_hop_process:
+4fb8 6848c601 fetcht 1 ,mem_24g_retry 
+4fb9 18467c14 sub temp ,20 ,null 
+4fba 20214fbe branch keyboard_g24_tx_fast_hop ,positive 
+4fbb df200019 arg 25 ,loopcnt 
+4fbc 20407c96 call delay_ms_wait 
+4fbd 20203694 branch g24_hop_ch_disable 
+
+keyboard_g24_tx_fast_hop:
+4fbe 18408401 increase 1 ,temp 
+4fbf 6048c601 storet 1 ,mem_24g_retry 
+4fc0 6fe2458f fetch 4 ,mem_24g_addr 
+4fc1 684a45e4 fetcht 4 ,mem_24g_fast_conn_addr 
+4fc2 98467c00 isub temp ,null 
+4fc3 2022b222 branch g24_ch ,zero 
+4fc4 6fe0c601 fetch 1 ,mem_24g_retry 
+4fc5 1fe67c03 sub pdata ,3 ,null 
+4fc6 20610000 rtn positive 
+4fc7 2020369a branch g24_tx_fast_hop 
+
+keyboard_g24_lpm_wait:
+4fc8 78347c00 enable user 
+4fc9 20402408 call lpo_calibration 
+4fca 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+4fcb 203a7dbc branch disable_user ,blank 
+4fcc 6fe0c9a1 fetch 1 ,mem_keyboard_fn_flag 
+4fcd 243a7dbc nbranch disable_user ,blank 
+4fce 6fe0c9a2 fetch 1 ,mem_keyboard_control_key_flag 
+4fcf 243a7dbc nbranch disable_user ,blank 
+4fd0 6fe0c9c4 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+4fd1 243a7dbc nbranch disable_user ,blank 
+4fd2 6fe0c618 fetch 1 ,mem_24g_transmit_by_interrupt 
+4fd3 c000fdbc beq g24_tx_timer_int_enable ,disable_user 
+4fd4 202036b9 branch g24_lpm_wait + 5 
+
+keyboard_power_ctrl_start:
+4fd5 6fe2458f fetch 4 ,mem_24g_addr 
+4fd6 684a45e4 fetcht 4 ,mem_24g_fast_conn_addr 
+4fd7 98467c00 isub temp ,null 
+4fd8 2422b6e9 nbranch power_ctrl_start + 1 ,zero 
+4fd9 7041419e jam tx_power_f30db ,mem_tx_power 
+4fda 20600000 rtn 
+
+keyboard_g24_transmit_start_next:
+4fdb 6fe4460b fetch 8 ,mem_24g_long_sleep_set 
+4fdc 67e445af store 8 ,mem_24g_enter_hibernate 
+4fdd 6fe1461d fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+4fde 67e1461f store 2 ,mem_24g_long_sleep_param_update_timer 
+
+keyboard_g24_short_sleep:
+4fdf 44afc00b bpatch patch0b_7 ,mem_patch0b 
+4fe0 204036b4 call g24_lpm_wait 
+4fe1 24740000 nrtn user 
+4fe2 20407de2 call clear_wake 
+4fe3 6fe1c608 fetch 3 ,mem_24g_short_sleep_set 
+4fe4 20203622 branch g24_long_seep2 
+
+keyboard_24g_package_data:
+4fe5 c6930000 rtnmark0 mark_24g 
+4fe6 20404e47 call keyboard_motion 
+4fe7 24740000 nrtn user 
+4fe8 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4fe9 c30b60a1 bbit0 mouse_enable_keyboard ,mouse_24g_mouse_package_data 
+4fea 6fe0c96c fetch 1 ,mem_customer_key 
+4feb 243a4fed nbranch keyboard_24g_keyboard_package_data ,blank 
+4fec 202060a1 branch mouse_24g_mouse_package_data 
+
+keyboard_24g_keyboard_package_data:
+4fed 70458902 jam type_kb ,mem_24g_data_type 
+4fee da200009 arg 9 ,rega 
+4fef 6fe0c96d fetch 1 ,mem_customer_data_trigger 
+4ff0 243a4ff3 nbranch keyboard_customer_key_press ,blank 
+4ff1 da404733 arg mem_customer_key_release ,regb 
+4ff2 20600000 rtn 
+
+keyboard_customer_key_press:
+4ff3 da40472a arg mem_customer_key_press ,regb 
+4ff4 20600000 rtn 
+
+keyboard_24g_search_dongle_init:
+4ff5 58000000 setarg 0 
+4ff6 67e1c6f8 store 3 ,mem_mouse_search_dongle_action 
+4ff7 20600000 rtn 
+
+keyboard_24g_search_dongle:
+4ff8 44b0400c bpatch patch0c_0 ,mem_patch0c 
+4ff9 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+4ffa c4070000 rtnbit0 mouse_enable_24g_search_dongle 
+4ffb 6fe0c77d fetch 1 ,mem_mouse_long_mult_flag 
+4ffc 207a0000 rtn blank 
+4ffd 6fe0c602 fetch 1 ,mem_24g_abort_pac 
+4ffe 207a0000 rtn blank 
+4fff 6fe0c6f5 fetch 1 ,mem_mouse_search_dongle_interval 
+5000 1fe0fe01 increase 1 ,pdata 
+5001 1fe17e03 and_into 3 ,pdata 
+5002 67e0c6f5 store 1 ,mem_mouse_search_dongle_interval 
+5003 247a0000 nrtn blank 
+5004 7046f600 jam 0 ,mem_mouse_search_dongle_ch 
+
+keyboard_24g_search_dongle_loop:
+5005 6fe0c6f6 fetch 1 ,mem_mouse_search_dongle_ch 
+5006 1fe0fe01 increase 1 ,pdata 
+5007 67e0c6f6 store 1 ,mem_mouse_search_dongle_ch 
+5008 1fe67c08 sub pdata ,g24_ch_number ,null 
+5009 24215010 nbranch keyboard_24g_search_dongle_loop_end ,positive 
+500a 2040357f call g24_reconn_data_prep 
+500b 20403651 call g24_transmit_receive_ack 
+500c 242c5016 nbranch keyboard_24g_search_dongle_loop_retry ,sync 
+500d 2437d016 nbranch keyboard_24g_search_dongle_loop_retry ,user3 
+500e 20405028 call keyboard_g24_ackpayload_parse 
+500f 20405020 call keyboard_24g_search_dongle_success 
+
+keyboard_24g_search_dongle_loop_end:
+5010 2040357b call g24_txbuf_clear 
+5011 6fe0c6f7 fetch 1 ,mem_mouse_search_dongle_count 
+5012 1fe0fe01 increase 1 ,pdata 
+5013 67e0c6f7 store 1 ,mem_mouse_search_dongle_count 
+5014 c0085018 beq g24_ch_poll_count ,keyboard_24g_search_dongle_check 
+5015 20600000 rtn 
+
+keyboard_24g_search_dongle_loop_retry:
+5016 20403222 call g24_ch 
+5017 20205005 branch keyboard_24g_search_dongle_loop 
+
+keyboard_24g_search_dongle_check:
+5018 7046f700 jam 0 ,mem_mouse_search_dongle_count 
+5019 6fe0c6f8 fetch 1 ,mem_mouse_search_dongle_action 
+501a c3800000 rtnbit1 g24_disconn_state 
+501b 79207e00 set1 g24_disconn_state ,pdata 
+501c 67e0c6f8 store 1 ,mem_mouse_search_dongle_action 
+501d 6fe14723 fetch 2 ,mem_mouse_24g_search_dongle_time_init 
+501e 67e14781 store 2 ,mem_mouse_no_data_timer 
+501f 20600000 rtn 
+
+keyboard_24g_search_dongle_success:
+5020 6fe0c602 fetch 1 ,mem_24g_abort_pac 
+5021 203a4ff5 branch keyboard_24g_search_dongle_init ,blank 
+5022 7046f700 jam 0 ,mem_mouse_search_dongle_count 
+5023 6fe0c6f8 fetch 1 ,mem_mouse_search_dongle_action 
+5024 c4000000 rtnbit0 g24_disconn_state 
+5025 793ffe00 set0 g24_disconn_state ,pdata 
+5026 67e0c6f8 store 1 ,mem_mouse_search_dongle_action 
+5027 20205c0b branch mouse_no_data_timer_init 
+
+keyboard_g24_ackpayload_parse:
+5028 2040366e call g24_ackpayload_parse 
+5029 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+502a 2fe1f008 compare 0x08 ,pdata ,0xf8 
+502b 24608000 nrtn true 
+502c 6fe0c4f9 fetch 1 ,mem_24g_rxbuf + 2 
+502d c07fcb11 beq 0xff ,keyboard_24g_hibernate_set 
+502e 20600000 rtn 
+
+keyboard_le_send_att_find_by_type_value_request_ancs:
+502f 7049f101 jam 1 ,mem_le_connect_ios_mac_flag 
+5030 da200017 arg 23 ,rega 
+5031 da400004 arg le_l2cap_cid_att ,regb 
+5032 204029fb call le_fifo_malloc_tx_l2cap 
+5033 58000006 setarg attop_find_by_type_value_request 
+5034 e7e08005 istore 1 ,contw 
+5035 58000001 setarg 0x0001 
+5036 e7e10005 istore 2 ,contw 
+5037 5800ffff setarg 0xffff 
+5038 e7e10005 istore 2 ,contw 
+5039 58002800 setarg 0x2800 
+503a e7e10005 istore 2 ,contw 
+503b d8c049e1 arg mem_le_search_service_uuid ,contr 
+503c 20207c8f branch memcpy16 
+
+keyboard_le_att_auto_reco_process:
+503d 44b0c00c bpatch patch0c_1 ,mem_patch0c 
+503e 6fe0c9f1 fetch 1 ,mem_le_connect_ios_mac_flag 
+503f 207a0000 rtn blank 
+5040 1a220c00 copy rega ,contr 
+5041 efe18006 ifetch 3 ,contr 
+5042 67e1c397 store 3 ,mem_le_att_opcode 
+5043 c005d091 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
+5044 c004d078 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
+5045 c003d048 beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
+5046 c000d05b beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
+5047 20202b96 branch le_parse_att2 
+
+keyboard_le_parse_att_find_by_type_value_rsp:
+5048 6fe0c9f1 fetch 1 ,mem_le_connect_ios_mac_flag 
+5049 c001506c beq 2 ,keyboard_le_parse_att_find_by_type_value_rsp_mac 
+
+keyboard_le_parse_att_find_ios_report:
+504a 7049c602 jam system_os_ios ,mem_kb_computer_system 
+504b 20205050 branch keyboard_otp_store_computer_system_ble 
+
+keyboard_le_parse_att_not_find_mac_report:
+504c 6fe0c2cb fetch 1 ,mem_le_conn_peer_addr_type 
+504d 67e0c9c6 store 1 ,mem_kb_computer_system 
+504e 20205050 branch keyboard_otp_store_computer_system_ble 
+
+keyboard_le_parse_att_find_mac_report:
+504f 7049c603 jam system_os_mac ,mem_kb_computer_system 
+
+keyboard_otp_store_computer_system_ble:
+5050 7049f100 jam 0 ,mem_le_connect_ios_mac_flag 
+5051 684949df fetcht 2 ,mem_otp_read_retention_offset 
+5052 58001fd0 setarg 0x1fd0 
+5053 98462400 isub temp ,regb 
+5054 da2049c6 arg mem_kb_computer_system ,rega 
+5055 df200001 arg 1 ,loopcnt 
+5056 20406b45 call otp_write 
+5057 684949df fetcht 2 ,mem_otp_read_retention_offset 
+5058 1840840e increase 14 ,temp 
+5059 604949df storet 2 ,mem_otp_read_retention_offset 
+505a 20600000 rtn 
+
+keyboard_le_send_att_find_by_type_value_request_mac:
+505b 6fe0c9f1 fetch 1 ,mem_le_connect_ios_mac_flag 
+505c c001504c beq 2 ,keyboard_le_parse_att_not_find_mac_report 
+505d 7049f102 jam 2 ,mem_le_connect_ios_mac_flag 
+505e da200009 arg 9 ,rega 
+505f da400004 arg le_l2cap_cid_att ,regb 
+5060 204029fb call le_fifo_malloc_tx_l2cap 
+5061 58000006 setarg attop_find_by_type_value_request 
+5062 e7e08005 istore 1 ,contw 
+5063 58000001 setarg 0x0001 
+5064 e7e10005 istore 2 ,contw 
+5065 5800ffff setarg 0xffff 
+5066 e7e10005 istore 2 ,contw 
+5067 58002800 setarg 0x2800 
+5068 e7e10005 istore 2 ,contw 
+5069 df200002 arg 2 ,loopcnt 
+506a d8c049f2 arg mem_le_search_mac_uuid ,contr 
+506b 20207cda branch memcpy 
+
+keyboard_le_parse_att_find_by_type_value_rsp_mac:
+506c da200007 arg 7 ,rega 
+506d da400004 arg le_l2cap_cid_att ,regb 
+506e 204029fb call le_fifo_malloc_tx_l2cap 
+506f 58000008 setarg attop_read_by_type_request 
+5070 e7e08005 istore 1 ,contw 
+5071 68494339 fetcht 2 ,mem_le_payload_ptr 
+5072 18408405 increase 5 ,temp 
+5073 efe20002 ifetch 4 ,temp 
+5074 e7e20005 istore 4 ,contw 
+5075 58002803 setarg 0x2803 
+5076 e7e10005 istore 2 ,contw 
+5077 20600000 rtn 
+
+keyboard_le_send_att_read_by_type_rsp_mac:
+5078 6fe14335 fetch 2 ,mem_le_l2cap_size 
+5079 1fe0fffe increase -2 ,pdata 
+507a 1fe6fc07 div pdata ,7 
+507b 20407d62 call wait_div_end 
+507c 1807f200 quotient loopcnt 
+507d 6fe14339 fetch 2 ,mem_le_payload_ptr 
+507e 1fe08c06 add pdata ,6 ,contr 
+507f 20205080 branch keyboard_le_check_att_read_type_manu_loop 
+
+keyboard_le_check_att_read_type_manu_loop:
+5080 18c08c03 increase 3 ,contr 
+5081 efe10006 ifetch 2 ,contr 
+5082 1fe22600 copy pdata ,regc 
+5083 efe10006 ifetch 2 ,contr 
+5084 d8402a29 arg 0x2a29 ,temp 
+5085 98467c00 isub temp ,null 
+5086 2022d089 branch keyboard_le_send_att_read_by_type_rsp_manufactory ,zero 
+5087 c2005080 loop keyboard_le_check_att_read_type_manu_loop 
+5088 2020504c branch keyboard_le_parse_att_not_find_mac_report 
+
+keyboard_le_send_att_read_by_type_rsp_manufactory:
+5089 da200003 arg 3 ,rega 
+508a da400004 arg le_l2cap_cid_att ,regb 
+508b 204029fb call le_fifo_malloc_tx_l2cap 
+508c 5800000a setarg attop_read_request 
+508d e7e08005 istore 1 ,contw 
+508e 1a627e00 copy regc ,pdata 
+508f e7e10005 istore 2 ,contw 
+5090 20600000 rtn 
+
+keyboard_le_parse_att_manu_resp:
+5091 6fe14335 fetch 2 ,mem_le_l2cap_size 
+5092 df200009 arg 9 ,loopcnt 
+5093 6fe14339 fetch 2 ,mem_le_payload_ptr 
+5094 1fe0a205 add pdata ,5 ,rega 
+5095 da4049f4 arg mem_le_search_mac_manu_name ,regb 
+5096 20407d64 call string_compare 
+5097 2022d04f branch keyboard_le_parse_att_find_mac_report ,zero 
+5098 2020504c branch keyboard_le_parse_att_not_find_mac_report 
+
+module_init:
+5099 2035d0bd branch module_lpm_init ,wake 
+509a 20402952 call le_modified_name 
+509b 580050c7 setarg module_process_idle 
+509c 67e143db store 2 ,mem_cb_idle_process 
+509d 580050ca setarg module_process_bb_event 
+509e 67e143dd store 2 ,mem_cb_bb_event_process 
+509f 580050c3 setarg module_lpm_lock 
+50a0 67e143d3 store 2 ,mem_cb_check_wakelock 
+50a1 58005180 setarg module_hci_cmd_transmit_le_notify 
+50a2 67e143e1 store 2 ,mem_cb_ble_transmit 
+50a3 580053b0 setarg module_le_receive_data 
+50a4 67e143df store 2 ,mem_cb_att_write 
+50a5 580053c1 setarg module_bb_event_timer 
+50a6 67e143e3 store 2 ,mem_cb_event_timer 
+50a7 44b1400c bpatch patch0c_2 ,mem_patch0c 
+50a8 204050ab call module_lpm_uart_init 
+50a9 204050be call module_gpio_init 
+50aa 2020533b branch module_hci_event_enter_standby_mode 
+
+module_lpm_uart_init:
+50ab 6ff08060 fetch 1 ,core_uart_ctrl 
+50ac 793ffe00 set0 bit_uart_control_enable ,pdata 
+50ad 67f08060 store 1 ,core_uart_ctrl 
+50ae 6fe44500 fetch 8 ,mem_module_uart_rx_buffer 
+50af 20406d68 call uarta_init_dma_mem 
+50b0 6fe14508 fetch uart_baud_len ,mem_module_uarta_baud_rate 
+50b1 20406d73 call uarta_init_baud_rate 
+50b2 20406d82 call uart_clock_select_main_freq_crystal 
+50b3 70807708 jam gpcfg_uart_txd ,core_gpio_conf + hci_uart_tx_gpio_num 
+50b4 70807649 jam gpcfg_uart_rxd | gpcfg_pullup ,core_gpio_conf + hci_uart_rx_gpio_num 
+50b5 7080790a jam gpcfg_uart_rts ,core_gpio_conf + hci_uart_rts_gpio_num 
+50b6 70807a0b jam gpcfg_uart_cts ,core_gpio_conf + hci_uart_cts_gpio_num 
+50b7 d8400081 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
+50b8 6fe1450f fetch 2 ,mem_module_flag 
+50b9 2feffe00 isolate1 module_flag_uart_flow_control ,pdata 
+50ba 79208404 setflag true ,bit_uart_control_flow_control ,temp 
+50bb 60588060 storet 1 ,core_uart_ctrl 
+50bc 20600000 rtn 
+
+module_lpm_init:
+50bd 202050ab branch module_lpm_uart_init 
+
+module_gpio_init:
+50be 6848c4f5 fetcht 1 ,mem_module_connect_state_gpio 
+50bf 20406ef7 call gpio_config_output 
+50c0 204050ed call module_set_conn_pin_low 
+50c1 6848c4f3 fetcht 1 ,mem_module_wake_up_gpio 
+50c2 20206edd branch gpio_config_input 
+
+module_lpm_lock:
+50c3 6848c4f3 fetcht 1 ,mem_module_wake_up_gpio 
+50c4 20406ee6 call gpio_get_bit 
+50c5 2420c30a nbranch app_put_lpm_wake_lock ,true 
+50c6 20204308 branch app_get_lpm_wake_lock 
+
+module_process_idle:
+50c7 204069a9 call l2cap_malloc_is_fifo_full 
+50c8 247a0000 nrtn blank 
+50c9 202050ef branch module_process_check_hci_command_complete 
+
+module_process_bb_event:
+50ca 1a627e00 copy regc ,pdata 
+50cb c00a50dc beq bt_evt_le_connected ,module_process_le_conn 
+50cc c00ad0d8 beq bt_evt_le_disconnected ,module_process_bb_even_le_disconn 
+50cd c0185375 beq bt_evt_le_pairing_fail ,module_hci_event_le_pairing_fail 
+50ce c018d377 beq bt_evt_le_pairing_success ,module_hci_event_le_pairing_success 
+50cf c0195381 beq bt_evt_le_start_enc ,module_hci_event_start_enc 
+50d0 c019d37f beq bt_evt_le_pause_enc ,module_hci_event_pause_enc 
+50d1 c01a536f beq bt_evt_le_tk_generate ,module_hci_event_le_tk 
+50d2 c01ed34f beq bt_evt_store_nvram ,module_hci_event_store_device 
+50d3 c020d0e2 beq bt_evt_le_ltk_lost ,module_process_ble_ltk_lost 
+50d4 c02150e4 beq bt_evt_le_update_phy ,module_process_ble_update_phy 
+50d5 c021d36d beq bt_evt_le_get_passkey ,module_hci_event_passkey_entry_mode 
+50d6 c01dd358 beq bt_evt_le_gkey_generate ,module_hci_event_gkey_generate 
+50d7 20600000 rtn 
+
+module_process_bb_even_le_disconn:
+50d8 204029cb call le_clr_config_more_data 
+50d9 70451100 jam 0 ,mem_module_hci_notify_len 
+50da 204050e0 call module_disconn_start 
+50db 20205321 branch module_hci_event_le_disconnect 
+
+module_process_le_conn:
+50dc 204050e7 call module_conn_start 
+50dd 6fe0c4fe fetch 1 ,mem_module_le_lpm_mult 
+50de 67e0c0c0 store 1 ,mem_lpm_mult 
+50df 2020531f branch module_hci_event_le_connect 
+
+module_disconn_start:
+50e0 20405149 call module_start_adv_discovery_by_command 
+50e1 202050e5 branch module_set_conn_pin_high 
+
+module_process_ble_ltk_lost:
+50e2 204030f3 call le_send_reject_ind 
+50e3 20202ed5 branch le_send_smp_security_request 
+
+module_process_ble_update_phy:
+50e4 20205391 branch module_hci_event_le_update_phy 
+
+module_set_conn_pin_high:
+50e5 6848c4f5 fetcht 1 ,mem_module_connect_state_gpio 
+50e6 20206ef7 branch gpio_out_active 
+
+module_conn_start:
+50e7 204050e9 call module_stop_adv_discovery 
+50e8 202050ed branch module_set_conn_pin_low 
+
+module_stop_adv_discovery:
+50e9 6fe0c4f8 fetch 1 ,mem_module_state 
+50ea 2feffe01 isolate1 moudle_state_ble_bit ,pdata 
+50eb 2040c315 call app_ble_stop_adv ,true 
+50ec 20600000 rtn 
+
+module_set_conn_pin_low:
+50ed 6848c4f5 fetcht 1 ,mem_module_connect_state_gpio 
+50ee 20206ef3 branch gpio_out_inactive 
+
+module_process_check_hci_command_complete:
+50ef 6ff0810b fetch 1 ,core_uart_status 
+50f0 c3810000 rtnbit1 uart_status_rx_fifo_empty 
+50f1 20406d96 call uarta_prepare_rx 
+50f2 efe08003 ifetch 1 ,contru 
+50f3 c080d105 bne 0x01 ,module_hci_in_excp 
+50f4 6ff10112 fetch 2 ,core_uart_rxitems 
+50f5 1fe67c02 sub pdata ,2 ,null 
+50f6 20610000 rtn positive 
+50f7 efe08003 ifetch 1 ,contru 
+50f8 67e086e2 store 1 ,mem_module_uart_opcode 
+50f9 e8408003 ifetcht 1 ,contru 
+50fa 18622200 copy contru ,rega 
+50fb 604886e3 storet 1 ,mem_module_uart_len 
+50fc 18408403 add temp ,3 ,temp 
+50fd 6ff10112 fetch 2 ,core_uart_rxitems 
+50fe 98460400 isub temp ,temp 
+50ff 24610000 nrtn positive 
+5100 7006e401 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+5101 20405113 call module_hci_cmd_control 
+5102 6fe086e4 fetch 1 ,mem_module_temp_nl_discard_packet 
+5103 c1000000 rtneq hci_not_discard_packet 
+5104 2020510e branch module_hci_dicard_packet 
+
+module_hci_in_excp:
+5105 20407c95 call delay_10ms 
+5106 2040535e call module_hci_event_invalid_packet 
+5107 20205108 branch module_hci_release_except 
+
+module_hci_release_except:
+5108 44b1c00c bpatch patch0c_3 ,mem_patch0c 
+5109 20406d96 call uarta_prepare_rx 
+510a 6ff10112 fetch 2 ,core_uart_rxitems 
+510b 207a0000 rtn blank 
+510c 98608600 iadd contru ,contru 
+510d 20205112 branch module_hci_dicard_bytes 
+
+module_hci_dicard_packet:
+510e 20406d96 call uarta_prepare_rx 
+510f 18608602 increase 2 ,contu 
+5110 efe08003 ifetch 1 ,contu 
+5111 98608600 iadd contu ,contu 
+
+module_hci_dicard_bytes:
+5112 20206d9c branch uarta_rxdone 
+
+module_hci_cmd_control:
+5113 44b2400c bpatch patch0c_4 ,mem_patch0c 
+5114 6fe086e2 fetch 1 ,mem_module_uart_opcode 
+5115 c000d13d beq hci_cmd_set_le_addr_req ,module_hci_cmd_set_le_addr 
+5116 c0015142 beq hci_cmd_set_visibility_req ,module_hci_cmd_set_visibility 
+5117 c0025150 beq hci_cmd_set_le_name_req ,module_hci_cmd_set_le_name 
+5118 c004d154 beq hci_cmd_le_data_req ,module_hci_cmd_receive_le_data 
+5119 c005d1ab beq hci_cmd_status_irq ,module_hci_cmd_inquire_status 
+511a c00751ac beq hci_cmd_set_uartcontrol_req ,module_hci_cmd_set_uart_control_mode 
+511b c007d1b4 beq hci_cmd_set_uart_baud_req ,module_hci_cmd_set_uart_baud 
+511c c00851bc beq hci_cmd_version_req ,module_hci_cmd_version_request 
+511d c00951c0 beq hci_cmd_ble_disconnect ,module_hci_cmd_ble_disconnect 
+511e c01351c4 beq hci_cmd_set_nvram_req ,module_hci_cmd_set_nvram 
+511f c01451c9 beq hci_cmd_confirm_gkey ,module_hci_cmd_confirm_gkey 
+5120 c01551cc beq hci_cmd_auto_adv_scan ,module_hci_cmd_auto_adv 
+5121 c015d1ff beq hci_cmd_power_req ,module_hci_cmd_power_request 
+5122 c0165205 beq hci_cmd_power_set ,module_hci_cmd_power_set 
+5123 c018520c beq hci_cmd_passkey_entry ,module_hci_cmd_passkey_entry 
+5124 c018d211 beq hci_cmd_set_gpio ,module_hci_cmd_set_gpio 
+5125 c0195222 beq hci_cmd_read_gpio ,module_hci_cmd_read_gpio 
+5126 c019d22d beq hci_cmd_le_set_pairing ,module_hci_cmd_le_set_pairing_mode 
+5127 c01a525a beq hci_cmd_le_set_adv_data ,module_hci_cmd_le_set_adv_data 
+5128 c01ad25d beq hci_cmd_le_set_scan_data ,module_hci_cmd_le_set_scan_data 
+5129 c01b5266 beq hci_cmd_le_send_conn_update_req ,module_hci_cmd_le_send_conn_update_req 
+512a c01bd26f beq hci_cmd_le_set_adv_parm ,module_hci_cmd_set_le_adv_parameter 
+512b c01c5275 beq hci_cmd_le_start_pairing ,module_hci_cmd_le_start_pairing 
+512c c020527d beq hci_cmd_set_wake_gpio ,module_hci_cmd_set_wake_gpio 
+512d c0215287 beq hci_cmd_set_tx_power ,module_hci_cmd_set_tx_power 
+512e c024528c beq hci_cmd_le_confirm_gkey ,module_hci_cmd_le_confirm_gkey 
+512f c028d297 beq hci_cmd_reset_chip_req ,module_hci_cmd_reset_chip 
+5130 c030d29b beq hci_cmd_le_set_fixed_passkey ,module_hci_cmd_le_set_fixed_passkey 
+5131 c03b52aa beq hci_cmd_delete_customize_service ,module_hci_cmd_delete_customize_service 
+5132 c03bd2b0 beq hci_cmd_add_service_uuid ,module_hci_cmd_add_service_uuid 
+5133 c03c52b5 beq hci_cmd_add_characteristic_uuid ,module_hci_cmd_add_characteristic_uuid 
+5134 c03d52eb beq hci_cmd_passkey_entry_input ,module_hci_cmd_le_passkey_entry_input 
+5135 c03dd2f9 beq hci_cmd_le_creat_conn ,module_hci_cmd_le_create_conn 
+5136 c04852ff beq hci_cmd_ble_set_phy ,module_hci_cmd_ble_set_phy 
+5137 c048d304 beq hci_cmd_ble_read_current_phy ,module_hci_cmd_ble_read_current_phy 
+5138 c0495308 beq hci_cmd_ble_set_dle ,module_hci_cmd_ble_set_dle 
+5139 c049d30d beq hci_cmd_read_chip_data ,module_hci_cmd_read_chip_data 
+513a c04a5311 beq hci_cmd_write_chip_data ,module_hci_cmd_write_chip_data 
+513b c07fd317 beq hci_cmd_close_lpm ,module_hci_cmd_close_lpm 
+513c 20205319 branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_set_le_addr:
+513d 6fe086e3 fetch 1 ,mem_module_uart_len 
+513e c0835319 bne 6 ,module_hci_event_receive_invalid_cmd 
+513f efe30003 ifetch 6 ,contru 
+5140 67e342db store 6 ,mem_le_lap 
+5141 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_visibility:
+5142 6fe086e3 fetch 1 ,mem_module_uart_len 
+5143 c080d319 bne 1 ,module_hci_event_receive_invalid_cmd 
+5144 e8408003 ifetcht 1 ,contru 
+5145 6048c4ff storet 1 ,mem_module_bluetooth_stauts_by_command 
+5146 2040531c call module_hci_event_receive_valid_cmd 
+5147 6fe144e9 fetch 2 ,mem_ui_state_map 
+5148 c3848000 rtnbit1 ui_state_ble_connected 
+
+module_start_adv_discovery_by_command:
+
+moudle_start_adv_by_command:
+5149 6fe0c4f8 fetch 1 ,mem_module_state 
+514a 2feffe01 isolate1 moudle_state_ble_bit ,pdata 
+514b 24608000 nrtn true 
+514c 6848c4ff fetcht 1 ,mem_module_bluetooth_stauts_by_command 
+514d 284ffe02 isolate1 2 ,temp 
+514e 2020c317 branch app_ble_start_adv ,true 
+514f 20204315 branch app_ble_stop_adv 
+
+module_hci_cmd_set_le_name:
+5150 dfe0001d arg 29 ,pdata 
+5151 d8a0426b arg mem_le_name_len ,contw 
+5152 20405260 call module_hci_cmd_receive_store_mem 
+5153 20202952 branch le_modified_name 
+
+module_hci_cmd_receive_le_data:
+5154 6fe144e9 fetch 2 ,mem_ui_state_map 
+5155 c304d319 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+5156 204051a8 call module_check_ble_encrypt_state 
+5157 20345319 branch module_hci_event_receive_invalid_cmd ,user 
+5158 7006e400 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+5159 6fe1450f fetch 2 ,mem_module_flag 
+515a c2845179 bbit1 module_flag_ble_data_finish ,module_hci_cmd_receive_le_data_finish 
+515b 6fe0c511 fetch 1 ,mem_module_hci_notify_len 
+515c 247a0000 nrtn blank 
+515d 7006e401 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+515e efe10003 ifetch 2 ,contru 
+515f 67e14512 store 2 ,mem_module_hci_notify_handle 
+5160 60614514 storer contru ,2 ,mem_module_hci_nofiy_addr 
+5161 6fe086e3 fetch 1 ,mem_module_uart_len 
+5162 1fe0fffe pincrease -2 
+5163 24215319 nbranch module_hci_event_receive_invalid_cmd ,positive 
+5164 2022d319 branch module_hci_event_receive_invalid_cmd ,zero 
+5165 67e0c511 store 1 ,mem_module_hci_notify_len 
+5166 68494512 fetcht 2 ,mem_module_hci_notify_handle 
+5167 184085ff increase -1 ,temp 
+5168 20402cd2 call le_att_get_handle_ptr2 
+5169 203a517c branch module_hci_cmd_transmit_handle_error ,blank 
+516a e8420006 ifetcht 4 ,contr 
+516b 59280302 setarg 0x01280302 
+516c 98467c00 isub temp ,null 
+516d 2422d17c nbranch module_hci_cmd_transmit_handle_error ,zero 
+516e efe08006 ifetch 1 ,contr 
+516f 67e0c516 store 1 ,mem_module_hci_notify_type 
+5170 1fe17e30 and_into 0x30 ,pdata 
+5171 203a517c branch module_hci_cmd_transmit_handle_error ,blank 
+5172 7006e400 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+5173 204029c9 call le_set_config_more_data 
+5174 20405180 call module_hci_cmd_transmit_le_notify 
+5175 20405180 call module_hci_cmd_transmit_le_notify 
+5176 20405180 call module_hci_cmd_transmit_le_notify 
+5177 6fe1450f fetch 2 ,mem_module_flag 
+5178 c4040000 rtnbit0 module_flag_ble_data_finish 
+
+module_hci_cmd_receive_le_data_finish:
+5179 7006e401 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+517a 204053d6 call module_clear_le_tx_data_flag 
+517b 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_transmit_handle_error:
+517c 70451100 jam 0 ,mem_module_hci_notify_len 
+517d 7006e401 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+517e 204053d6 call module_clear_le_tx_data_flag 
+517f 20205319 branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_transmit_le_notify:
+5180 6fe0c511 fetch 1 ,mem_module_hci_notify_len 
+5181 207a0000 rtn blank 
+5182 20402a28 call le_fifo_check_nearly_full 
+5183 247a0000 nrtn blank 
+5184 204051a3 call module_get_le_remote_mtu 
+5185 44b2c00c bpatch patch0c_5 ,mem_patch0c 
+5186 6fe142e1 fetch 2 ,mem_le_local_mtu 
+5187 20407db0 call not_greater_than 
+5188 1fe20400 copy pdata ,temp 
+5189 6fe0c396 fetch 1 ,mem_le_l2cap_att_states 
+518a c3800000 rtnbit1 ble_l2cap_recv_confirmation_packet 
+518b 1840fffd add temp ,-3 ,pdata 
+518c d84000fb arg 251 ,temp 
+518d 20407db0 call not_greater_than 
+518e 6848c511 fetcht 1 ,mem_module_hci_notify_len 
+518f 20407db0 call not_greater_than 
+5190 1fe22200 copy pdata ,rega 
+5191 18427e00 copy temp ,pdata 
+5192 9a267e00 isub rega ,pdata 
+5193 67e0c511 store 1 ,mem_module_hci_notify_len 
+5194 2040519e call module_hci_cmd_transmit_le_notify_malloc_l2cap 
+5195 6fe14514 fetch 2 ,mem_module_hci_nofiy_addr 
+5196 1fe20600 copy pdata ,contru 
+5197 1a227200 copy rega ,loopcnt 
+5198 20406dca call uart_copy_rx_bytes_fast 
+5199 18627e00 copy contru ,pdata 
+519a 67e14514 store 2 ,mem_module_hci_nofiy_addr 
+519b 6fe0c511 fetch 1 ,mem_module_hci_notify_len 
+519c 247a0000 nrtn blank 
+519d 202053d4 branch module_set_le_tx_data_flag 
+
+module_hci_cmd_transmit_le_notify_malloc_l2cap:
+519e 68494512 fetcht 2 ,mem_module_hci_notify_handle 
+519f 6fe0c516 fetch 1 ,mem_module_hci_notify_type 
+51a0 c282adf7 bbit1 bit_characteristic_indicate ,le_att_malloc_tx_indication 
+51a1 c2822dee bbit1 bit_characteristic_notify ,le_att_malloc_tx_notify 
+51a2 20600000 rtn 
+
+module_get_le_remote_mtu:
+51a3 d8400017 arg 0x17 ,temp 
+51a4 6fe1450f fetch 2 ,mem_module_flag 
+51a5 c3808000 rtnbit1 module_flag_ble_send_mtu23 
+51a6 684942e3 fetcht 2 ,mem_le_remote_mtu 
+51a7 20600000 rtn 
+
+module_check_ble_encrypt_state:
+51a8 6fe1450f fetch 2 ,mem_module_flag 
+51a9 c2812dc7 bbit1 module_flag_ble_data_encrypt ,le_check_encrypt_state 
+51aa 20207dbc branch disable_user 
+
+module_hci_cmd_inquire_status:
+51ab 2020533f branch module_hci_event_status_res 
+
+module_hci_cmd_set_uart_control_mode:
+51ac efe08003 ifetch 1 ,contru 
+51ad 6848c50f fetcht 1 ,mem_module_flag 
+51ae 7d3a0400 nsetflag blank ,module_flag_uart_flow_control ,temp 
+51af 6048c50f storet 1 ,mem_module_flag 
+51b0 68588060 fetcht 1 ,core_uart_ctrl 
+51b1 7d3a0404 nsetflag blank ,bit_uart_control_flow_control ,temp 
+51b2 60588060 storet 1 ,core_uart_ctrl 
+51b3 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_uart_baud:
+51b4 6f2086e3 fetchr loopcnt ,1 ,mem_module_uart_len 
+51b5 20407d33 call string2dec_from_uart 
+51b6 20406d77 call uart_calc_baud_rate_config 
+51b7 67e14508 store uart_baud_len ,mem_module_uarta_baud_rate 
+51b8 2040531c call module_hci_event_receive_valid_cmd 
+51b9 20406dae call wait_uarttx 
+51ba 6fe14508 fetch uart_baud_len ,mem_module_uarta_baud_rate 
+51bb 20206d73 branch uarta_init_baud_rate 
+
+module_hci_cmd_version_request:
+51bc da200002 arg 2 ,rega 
+51bd da4044f1 arg mem_soft_version_num ,regb 
+51be d8400000 arg 0 ,temp 
+51bf 20205323 branch module_hci_event_set_cmd 
+
+module_hci_cmd_ble_disconnect:
+51c0 6fe144e9 fetch 2 ,mem_ui_state_map 
+51c1 c304d319 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_ble_disconnect_doing:
+51c2 2040531c call module_hci_event_receive_valid_cmd 
+51c3 2020431f branch app_ble_disconnect 
+
+module_hci_cmd_set_nvram:
+51c4 6f2086e3 fetchr loopcnt ,1 ,mem_module_uart_len 
+51c5 6fe143f8 fetch 2 ,mem_nv_data_ptr 
+51c6 1fe20a00 icopy contw 
+51c7 20406dca call uart_copy_rx_bytes_fast 
+51c8 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_confirm_gkey:
+51c9 6fe144e9 fetch 2 ,mem_ui_state_map 
+51ca c284d28c bbit1 ui_state_ble_connected ,module_hci_cmd_le_confirm_gkey 
+51cb 20205319 branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_auto_adv:
+51cc df200040 arg 0x40 ,loopcnt 
+51cd d8a04348 arg mem_le_adv_data_len ,contw 
+51ce 20407ca1 call clear_mem 
+51cf 58000000 setarg 0 
+51d0 67e08688 store 1 ,mem_regb 
+51d1 1a220600 copy rega ,contru 
+
+module_hci_cmd_auto_adv_loop:
+51d2 18627e00 copy contru ,pdata 
+51d3 67e1068c store 2 ,mem_regc 
+51d4 204051fa call module_hci_cmd_auto_adv_adv_analys 
+51d5 6fe08688 fetch 1 ,mem_regb 
+51d6 68488678 fetcht 1 ,mem_temp 
+51d7 18408401 increase 1 ,temp 
+51d8 9840fe00 iadd temp ,pdata 
+51d9 67e08688 store 1 ,mem_regb 
+51da 1fe67c1f sub pdata ,31 ,null 
+51db 242151e6 nbranch module_hci_cmd_auto_adv_store_scan ,positive 
+
+module_hci_cmd_auto_adv_store_adv:
+51dc 6848c348 fetcht 1 ,mem_le_adv_data_len 
+51dd 58004349 setarg mem_le_adv_data 
+51de 9840fe00 iadd temp ,pdata 
+51df 67e10691 store 2 ,mem_contw 
+51e0 68488678 fetcht 1 ,mem_temp 
+51e1 18408401 increase 1 ,temp 
+51e2 6fe0c348 fetch 1 ,mem_le_adv_data_len 
+51e3 9840fe00 iadd temp ,pdata 
+51e4 67e0c348 store 1 ,mem_le_adv_data_len 
+51e5 202051ef branch module_hci_cmd_auto_adv_store_common 
+
+module_hci_cmd_auto_adv_store_scan:
+51e6 6848c368 fetcht 1 ,mem_le_scan_data_len 
+51e7 58004369 setarg mem_le_scan_data 
+51e8 9840fe00 iadd temp ,pdata 
+51e9 67e10691 store 2 ,mem_contw 
+51ea 68488678 fetcht 1 ,mem_temp 
+51eb 18408401 increase 1 ,temp 
+51ec 6fe0c368 fetch 1 ,mem_le_scan_data_len 
+51ed 9840fe00 iadd temp ,pdata 
+51ee 67e0c368 store 1 ,mem_le_scan_data_len 
+
+module_hci_cmd_auto_adv_store_common:
+51ef 6fe10691 fetch 2 ,mem_contw 
+51f0 1fe20a00 copy pdata ,contw 
+51f1 6fe1068c fetch 2 ,mem_regc 
+51f2 1fe20600 copy pdata ,contru 
+51f3 18427200 copy temp ,loopcnt 
+51f4 20406dca call uart_copy_rx_bytes_fast 
+51f5 6fe086e3 fetch 1 ,mem_module_uart_len 
+51f6 68488688 fetcht 1 ,mem_regb 
+51f7 98467c00 isub temp ,null 
+51f8 2422d1d2 nbranch module_hci_cmd_auto_adv_loop ,zero 
+51f9 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_auto_adv_adv_analys:
+51fa efe08003 ifetch 1 ,contru 
+51fb 67e08678 store 1 ,mem_temp 
+51fc efe08003 ifetch 1 ,contru 
+51fd 67e08684 store 1 ,mem_rega 
+51fe 20600000 rtn 
+
+module_hci_cmd_power_request:
+51ff d8400000 arg 0 ,temp 
+5200 da200002 arg 2 ,rega 
+5201 6fe1450c fetch 2 ,mem_module_vdd_quotient 
+5202 67e106a1 store 2 ,mem_event_cmd_response_content 
+5203 da4006a1 arg mem_event_cmd_response_content ,regb 
+5204 20205323 branch module_hci_event_set_cmd 
+
+module_hci_cmd_power_set:
+5205 6fe086e3 fetch 1 ,mem_module_uart_len 
+5206 c080d319 bne 1 ,module_hci_event_receive_invalid_cmd 
+5207 efe08003 ifetch 1 ,contru 
+5208 67e0c50a store 1 ,mem_module_read_vdd_flag 
+5209 58000000 setarg 0x00 
+520a 67e1450c store 2 ,mem_module_vdd_quotient 
+520b 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_passkey_entry:
+520c 6fe086e3 fetch 1 ,mem_module_uart_len 
+520d c0825319 bne 4 ,module_hci_event_receive_invalid_cmd 
+520e 6fe144e9 fetch 2 ,mem_ui_state_map 
+520f c284d2eb bbit1 ui_state_ble_connected ,module_hci_cmd_le_passkey_entry_input 
+5210 20205319 branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_set_gpio:
+5211 6fe086e3 fetch 1 ,mem_module_uart_len 
+5212 c081d319 bne 3 ,module_hci_event_receive_invalid_cmd 
+5213 efe08003 ifetch 1 ,contru 
+5214 c0005217 beq hci_cmd_config_gpio_input ,module_set_gpio_input 
+5215 c000d21d beq hci_cmd_config_gpio_output ,module_set_gpio_output 
+5216 20205319 branch module_hci_event_receive_invalid_cmd 
+
+module_set_gpio_input:
+5217 2040531c call module_hci_event_receive_valid_cmd 
+5218 e8408003 ifetcht 1 ,contru 
+5219 efe08003 ifetch 1 ,contru 
+521a c0016f0f beq gpio_input_high_impedance ,gpio_set_high_impedance 
+521b 7d3a0407 nsetflag blank ,7 ,temp 
+521c 20206edd branch gpio_config_input 
+
+module_set_gpio_output:
+521d 2040531c call module_hci_event_receive_valid_cmd 
+521e e8408003 ifetcht 1 ,contru 
+521f efe08003 ifetch 1 ,contru 
+5220 203a6ef7 branch gpio_out_active ,blank 
+5221 20206ef3 branch gpio_out_inactive 
+
+module_hci_cmd_read_gpio:
+5222 6fe086e3 fetch 1 ,mem_module_uart_len 
+5223 c080d319 bne 1 ,module_hci_event_receive_invalid_cmd 
+5224 e8408003 ifetcht 1 ,contru 
+5225 20406ee6 call gpio_get_bit 
+5226 58000000 setarg 0x0 
+5227 7d20fe00 nsetflag true ,0 ,pdata 
+5228 da200001 arg 1 ,rega 
+5229 67e106a1 store 2 ,mem_event_cmd_response_content 
+522a da4006a1 arg mem_event_cmd_response_content ,regb 
+522b d8400000 arg 0 ,temp 
+522c 20205323 branch module_hci_event_set_cmd 
+
+module_hci_cmd_le_set_pairing_mode:
+522d efe08003 ifetch 1 ,contru 
+522e 1fe20400 copy pdata ,temp 
+522f c040d23c beq le_pairing_mode_secure_connect_justwork ,module_le_set_pairing_mode_secure_justwork 
+5230 c0415240 beq le_pairing_mode_secure_connect_numeric ,module_le_set_pairing_mode_secure_numeric 
+5231 c041d245 beq le_pairing_mode_secure_connect_passkey ,module_le_set_pairing_mode_secure_passkey 
+5232 c0425249 beq le_pairing_mode_secure_connect_passkey_res_input ,module_le_set_pairing_mode_secure_passkey_res_input 
+5233 67e0c2fe store 1 ,mem_le_pairing_mode 
+5234 204074ff call sc_reset 
+5235 20402ec4 call le_secure_connection_disable 
+5236 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+5237 c000524d beq le_pairing_mode_none ,module_le_set_no_pairing 
+5238 c000d250 beq le_pairing_mode_lagacy_justwork ,module_le_set_pairing_mode_lagacy_just_work 
+5239 c0015252 beq le_pairing_mode_lagacy_passkey ,module_le_set_pairing_mode_lagacy_passkey 
+523a c0025254 beq le_pairing_mode_lagacy_passkey_res_input ,module_le_set_pairing_mode_lagacy_passkey_res_input 
+523b 20205319 branch module_hci_event_receive_invalid_cmd 
+
+module_le_set_pairing_mode_secure_justwork:
+523c 6048c2fe storet 1 ,mem_le_pairing_mode 
+523d 20402ec0 call le_secure_connection_enable 
+523e 7042c70d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+523f 2020524e branch module_le_set_noinputnooutput 
+
+module_le_set_pairing_mode_secure_numeric:
+5240 6048c2fe storet 1 ,mem_le_pairing_mode 
+5241 20402ec0 call le_secure_connection_enable 
+5242 7042c70d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+5243 7042c501 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+5244 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_le_set_pairing_mode_secure_passkey:
+5245 6048c2fe storet 1 ,mem_le_pairing_mode 
+5246 20402ec0 call le_secure_connection_enable 
+5247 7042c70d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+5248 20205258 branch module_le_set_displayonly 
+
+module_le_set_pairing_mode_secure_passkey_res_input:
+5249 6048c2fe storet 1 ,mem_le_pairing_mode 
+524a 20402ec0 call le_secure_connection_enable 
+524b 7042c70d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+524c 20205256 branch module_le_set_keboadonly 
+
+module_le_set_no_pairing:
+524d 7042c700 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+
+module_le_set_noinputnooutput:
+524e 7042c503 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+524f 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_le_set_pairing_mode_lagacy_just_work:
+5250 7042c701 jam flag_le_bonding_no_mitm ,mem_le_pres_auth 
+5251 2020524e branch module_le_set_noinputnooutput 
+
+module_le_set_pairing_mode_lagacy_passkey:
+5252 7042c705 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+5253 20205258 branch module_le_set_displayonly 
+
+module_le_set_pairing_mode_lagacy_passkey_res_input:
+5254 7042c705 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+5255 20205256 branch module_le_set_keboadonly 
+
+module_le_set_keboadonly:
+5256 7042c502 jam flag_iocap_keyboardonly ,mem_le_pres_iocap 
+5257 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_le_set_displayonly:
+5258 7042c500 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+5259 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_set_adv_data:
+525a dfe0001f arg 31 ,pdata 
+525b d8a04348 arg mem_le_adv_data_len ,contw 
+525c 20205260 branch module_hci_cmd_receive_store_mem 
+
+module_hci_cmd_le_set_scan_data:
+525d dfe0001f arg 31 ,pdata 
+525e d8a04368 arg mem_le_scan_data_len ,contw 
+525f 20205260 branch module_hci_cmd_receive_store_mem 
+
+module_hci_cmd_receive_store_mem:
+5260 6f2086e3 fetchr loopcnt ,1 ,mem_module_uart_len 
+5261 9f267c00 isub loopcnt ,null 
+5262 24215319 nbranch module_hci_event_receive_invalid_cmd ,positive 
+5263 e7208005 istorer loopcnt ,1 ,contw 
+5264 20406dca call uart_copy_rx_bytes_fast 
+5265 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_send_conn_update_req:
+5266 6fe144e9 fetch 2 ,mem_ui_state_map 
+5267 c304d319 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+5268 6fe086e3 fetch 1 ,mem_module_uart_len 
+5269 c0845319 bne 0x08 ,module_hci_event_receive_invalid_cmd 
+526a efe40003 ifetch 8 ,contru 
+526b 67e442d3 store 8 ,mem_le_interval_min 
+526c 70066f12 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+526d 20407834 call ui_ipc_send_cmd 
+526e 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_le_adv_parameter:
+526f efe10003 ifetch 2 ,contru 
+5270 67e14389 store 2 ,mem_le_adv_interval 
+5271 6048c0a6 storet 1 ,mem_lpm_overhead 
+5272 9840fe00 iadd temp ,pdata 
+5273 67e140a4 store 2 ,mem_lpm_interval 
+5274 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_start_pairing:
+5275 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+5276 203a5319 branch module_hci_event_receive_invalid_cmd ,blank 
+5277 6fe0c2fc fetch 1 ,mem_le_pairing_state 
+5278 c0805319 bne flag_le_pairing_null ,module_hci_event_receive_invalid_cmd 
+5279 6fe0c2fd fetch 1 ,mem_le_enc_state 
+527a c0805319 bne flag_le_enc_null ,module_hci_event_receive_invalid_cmd 
+527b 204078a9 call check_51cmd_le_smp_sec_req 
+527c 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_wake_gpio:
+527d 6fe086e3 fetch 1 ,mem_module_uart_len 
+527e c082d319 bne 5 ,module_hci_event_receive_invalid_cmd 
+527f efe08003 ifetch 1 ,contru 
+5280 67e0c4f9 store 1 ,mem_module_mcu_wake_pin 
+5281 efe20003 ifetch 4 ,contru 
+5282 67e244fa store 4 ,mem_module_mcu_wake_delay_us 
+5283 6848c4f9 fetcht 1 ,mem_module_mcu_wake_pin 
+5284 20406ef7 call gpio_config_output 
+5285 204053ae call module_set_mcu_wake_pin_low 
+5286 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_tx_power:
+5287 6fe086e3 fetch 1 ,mem_module_uart_len 
+5288 c080d319 bne 0x01 ,module_hci_event_receive_invalid_cmd 
+5289 efe08003 ifetch 1 ,contru 
+528a 67e0c141 store 1 ,mem_tx_power 
+528b 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_confirm_gkey:
+528c efe08003 ifetch 1 ,contru 
+528d c000d295 beq 0x01 ,module_hci_cmd_le_confirm_gkey_fail 
+528e 6fe0c2fa fetch 1 ,mem_le_secure_connect_state 
+528f c001d293 beq le_sc_stat_send_public_key ,module_hci_cmd_le_confirm_gkey_ok 
+5290 c0035293 beq le_sc_stat_receive_dhkey ,module_hci_cmd_le_confirm_gkey_ok 
+5291 c003d293 beq le_sc_stat_wait_confirm_gkey ,module_hci_cmd_le_confirm_gkey_ok 
+5292 20205319 branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_le_confirm_gkey_ok:
+5293 7042fb01 jam flag_le_sc_confrim_gkey_ok ,mem_le_sc_confirm_gkey_flag 
+5294 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_confirm_gkey_fail:
+5295 20402f2a call le_send_pairing_confirm_value_failed 
+5296 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_reset_chip:
+5297 2040531c call module_hci_event_receive_valid_cmd 
+5298 20406dae call wait_uarttx 
+5299 70801001 jam 0x01 ,core_reset 
+529a 2020235a branch assert 
+
+module_hci_cmd_le_set_fixed_passkey:
+529b 6fe086e3 fetch 1 ,mem_module_uart_len 
+529c c0005319 beq 0 ,module_hci_event_receive_invalid_cmd 
+529d efe08003 ifetch 1 ,contru 
+529e 203a52a8 branch module_hci_cmd_le_set_random_passkey ,blank 
+529f 6fe086e3 fetch 1 ,mem_module_uart_len 
+52a0 c082d319 bne 5 ,module_hci_event_receive_invalid_cmd 
+52a1 efe20003 ifetch 4 ,contru 
+52a2 d84f4240 arg 1000000 ,temp 
+52a3 98467c00 isub temp ,null 
+52a4 20215319 branch module_hci_event_receive_invalid_cmd ,positive 
+52a5 67e242ff store 4 ,mem_le_tk 
+52a6 204029c1 call le_set_config_fixed_tk 
+52a7 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_set_random_passkey:
+52a8 204029c3 call le_clr_config_fixed_tk 
+52a9 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_delete_customize_service:
+52aa d8400001 arg 0x0001 ,temp 
+52ab 20402cd2 call le_att_get_handle_ptr2 
+52ac 18c08bfe add contr ,-2 ,contw 
+52ad 58000000 setarg 0x0000 
+52ae e7e10005 istore 2 ,contw 
+52af 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_add_service_uuid:
+52b0 204052b9 call module_hci_cmd_add_service_uuid_set_uuid 
+52b1 204052e7 call uart_copy_rx_bytes_len_data 
+52b2 58000000 setarg 0x0000 
+52b3 e7e10005 istore 2 ,contw 
+52b4 20205388 branch module_hci_event_uuid_handle 
+
+module_hci_cmd_add_characteristic_uuid:
+52b5 efe08003 ifetch 1 ,contru 
+52b6 204052bd call module_hci_cmd_add_characteristic_uuid_set_handle 
+52b7 204052c4 call module_hci_cmd_add_characteristic_uuid_set_uuid 
+52b8 20205388 branch module_hci_event_uuid_handle 
+
+module_hci_cmd_add_service_uuid_set_uuid:
+52b9 204052e4 call le_att_creat_new_handle 
+52ba 58280002 setarg 0x280002 
+52bb e7e18005 istore 3 ,contw 
+52bc 20600000 rtn 
+
+module_hci_cmd_add_characteristic_uuid_set_handle:
+52bd 67e08670 store 1 ,mem_pdatatemp 
+52be 204052e4 call le_att_creat_new_handle 
+52bf 59280302 setarg 0x01280302 
+52c0 e7e20005 istore 4 ,contw 
+52c1 6fe08670 fetch 1 ,mem_pdatatemp 
+52c2 e7e18005 istore 3 ,contw 
+52c3 20600000 rtn 
+
+module_hci_cmd_add_characteristic_uuid_set_uuid:
+52c4 20402cf6 call le_att_get_last_handle 
+52c5 efe08003 ifetch 1 ,contru 
+52c6 1fe1721f and pdata ,0x1f ,loopcnt 
+52c7 1fe22200 copy pdata ,rega 
+52c8 2a2ffe07 isolate1 bit_of_write_authenticated ,rega 
+52c9 7920840f setflag true ,bit_of_att_handle_write_authenticated ,temp 
+52ca 2a2ffe06 isolate1 bit_of_read_authenticated ,rega 
+52cb 7920840e setflag true ,bit_of_att_handle_read_authenticated ,temp 
+52cc e0410005 istoret 2 ,contw 
+52cd 1f227e00 copy loopcnt ,pdata 
+52ce e7e08005 istore 1 ,contw 
+52cf 20406ddd call uart_copy_rx_bytes 
+52d0 204052e7 call uart_copy_rx_bytes_len_data 
+52d1 58000000 setarg 0 
+52d2 e7e10005 istore 2 ,contw 
+52d3 184104ff and temp ,0xff ,temp 
+52d4 184085ff increase -1 ,temp 
+52d5 20402cd2 call le_att_get_handle_ptr2 
+52d6 18c08c04 add contr ,4 ,contr 
+52d7 efe08006 ifetch 1 ,contr 
+52d8 c28252dc bbit1 bit_characteristic_notify ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
+52d9 c282d2dc bbit1 bit_characteristic_indicate ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
+52da 18408401 increase 1 ,temp 
+52db 20600000 rtn 
+
+module_hci_cmd_add_characteristic_uuid_set_ccc_uuid:
+52dc 20402cf6 call le_att_get_last_handle 
+52dd 2a2ffe05 isolate1 bit_of_notify_authenticated ,rega 
+52de 7920840f setflag true ,bit_of_att_handle_write_authenticated ,temp 
+52df e0410005 istoret 2 ,contw 
+52e0 5a290202 setarg 0x02290202 
+52e1 e7e40005 istore 8 ,contw 
+52e2 184085ff increase -1 ,temp 
+52e3 20600000 rtn 
+
+le_att_creat_new_handle:
+52e4 20402cf6 call le_att_get_last_handle 
+52e5 e0410005 istoret 2 ,contw 
+52e6 20600000 rtn 
+
+uart_copy_rx_bytes_len_data:
+52e7 efe08003 ifetch 1 ,contru 
+52e8 1fe27200 copy pdata ,loopcnt 
+52e9 e7e08005 istore 1 ,contw 
+52ea 20206ddd branch uart_copy_rx_bytes 
+
+module_hci_cmd_le_passkey_entry_input:
+52eb 6fe0c2fc fetch 1 ,mem_le_pairing_state 
+52ec c082d319 bne flag_le_pairing_receive_pairing_confirm ,module_hci_event_receive_invalid_cmd 
+52ed 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+52ee c00252f7 beq le_pairing_mode_lagacy_passkey_res_input ,module_hci_cmd_passkey_entry_res_input 
+52ef c04252f1 beq le_pairing_mode_secure_connect_passkey_res_input ,module_hci_cmd_passkey_entry_sc_res_input 
+52f0 20205319 branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_passkey_entry_sc_res_input:
+52f1 7042f902 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+52f2 7042fa08 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
+52f3 202052f4 branch module_hci_cmd_receive_ble_passkey 
+
+module_hci_cmd_receive_ble_passkey:
+52f4 efe20003 ifetch 4 ,contru 
+52f5 67e242ff store 4 ,mem_le_tk 
+52f6 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_passkey_entry_res_input:
+52f7 204052f4 call module_hci_cmd_receive_ble_passkey 
+52f8 20202f13 branch le_send_smp_pairing_confirm 
+
+module_hci_cmd_le_create_conn:
+52f9 efe30003 ifetch 6 ,contru 
+52fa 67e342cc store 6 ,mem_le_conn_peer_addr 
+52fb 7001bc1b jam hci_cmd_le_create_conn ,mem_cmd_le_create_conn 
+52fc 70451701 jam on ,mem_le_conn_flag 
+52fd 70434301 jam on ,mem_le_scan_enable 
+52fe 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_ble_set_phy:
+52ff 6fe086e3 fetch 1 ,mem_module_uart_len 
+5300 c0815319 bne 2 ,module_hci_event_receive_invalid_cmd 
+5301 e8410003 ifetcht 2 ,contru 
+5302 20402a2d call le_set_phys 
+5303 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_ble_read_current_phy:
+5304 d8400000 arg 0 ,temp 
+5305 da200002 arg 2 ,rega 
+5306 da404075 arg mem_context + coffset_le_rx_phy ,regb 
+5307 20205323 branch module_hci_event_set_cmd 
+
+module_hci_cmd_ble_set_dle:
+5308 6fe086e3 fetch 1 ,mem_module_uart_len 
+5309 c0845319 bne 8 ,module_hci_event_receive_invalid_cmd 
+530a efe40003 ifetch 8 ,contru 
+530b 20402a2b call le_set_dle 
+530c 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_read_chip_data:
+530d ea208003 ifetchr rega ,1 ,contru 
+530e ea410003 ifetchr regb ,2 ,contru 
+530f d8400000 arg 0 ,temp 
+5310 20205323 branch module_hci_event_set_cmd 
+
+module_hci_cmd_write_chip_data:
+5311 6f2086e3 fetchr loopcnt ,1 ,mem_module_uart_len 
+5312 1f20f3fe increase -2 ,loopcnt 
+5313 efe10003 ifetch 2 ,contru 
+5314 1fe20a00 copy pdata ,contw 
+5315 20406dca call uart_copy_rx_bytes_fast 
+5316 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_close_lpm:
+5317 70409400 jam 0 ,mem_lpm_mode 
+5318 2020531c branch module_hci_event_receive_valid_cmd 
+
+module_hci_event_receive_invalid_cmd:
+5319 d8400001 arg 1 ,temp 
+531a da200000 arg 0 ,rega 
+531b 20205323 branch module_hci_event_set_cmd 
+
+module_hci_event_receive_valid_cmd:
+531c d8400000 arg 0 ,temp 
+531d da200000 arg 0 ,rega 
+531e 20205323 branch module_hci_event_set_cmd 
+
+module_hci_event_le_connect:
+531f 7006e202 jam hci_event_le_conn_rep ,mem_module_uart_opcode 
+5320 2020533c branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_le_disconnect:
+5321 7006e205 jam hci_event_le_dis_rep ,mem_module_uart_opcode 
+5322 2020533c branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_set_cmd:
+5323 6fe086e2 fetch 1 ,mem_module_uart_opcode 
+5324 1fe22600 copy pdata ,regc 
+5325 7006e206 jam hci_event_cmd_res ,mem_module_uart_opcode 
+5326 58000002 setarg 2 
+5327 9a20fe00 iadd rega ,pdata 
+5328 20405397 call module_hci_prepare_tx 
+5329 1a627e00 copy regc ,pdata 
+532a e7e08003 istore 1 ,contwu 
+532b e0408003 istoret 1 ,contwu 
+532c 1a227200 copy rega ,loopcnt 
+532d 1a420c00 copy regb ,contr 
+532e 20406dc4 call uart_copy_tx_bytes 
+532f 202053a1 branch module_hci_transmit_tx 
+
+module_hci_event_receive_le_data:
+5330 7006e208 jam hci_event_le_data_rep ,mem_module_uart_opcode 
+5331 1f20fe02 add loopcnt ,2 ,pdata 
+5332 20405397 call module_hci_prepare_tx 
+5333 6fe1070d fetch 2 ,mem_module_le_rx_data_handle 
+5334 e7e10003 istore 2 ,contwu 
+5335 6fe1070b fetch 2 ,mem_module_le_rx_data_address 
+5336 1fe20c00 icopy contr 
+5337 20406db1 call uart_copy_tx_bytes_fast 
+5338 18c27e00 copy contr ,pdata 
+5339 67e1070b store 2 ,mem_module_le_rx_data_address 
+533a 202053a1 branch module_hci_transmit_tx 
+
+module_hci_event_enter_standby_mode:
+533b 7006e209 jam hci_event_standby_rep ,mem_module_uart_opcode 
+
+module_hci_event_enter_standby_mode_len0:
+533c 58000000 setarg 0 
+533d 20405397 call module_hci_prepare_tx 
+533e 202053a1 branch module_hci_transmit_tx 
+
+module_hci_event_status_res:
+533f 7006e20a jam hci_event_status_res ,mem_module_uart_opcode 
+5340 58000001 setarg 1 
+5341 20405397 call module_hci_prepare_tx 
+5342 20405349 call module_hci_read_bt_status 
+5343 6fe144e9 fetch 2 ,mem_ui_state_map 
+5344 d8e00009 arg ui_state_ble_connected ,queue 
+5345 afefffff qisolate1 pdata 
+5346 79208405 setflag true ,5 ,temp 
+5347 e0408003 istoret 1 ,contwu 
+5348 202053a1 branch module_hci_transmit_tx 
+
+module_hci_read_bt_status:
+5349 d8400000 arg 0 ,temp 
+534a 6fe0c388 fetch 1 ,mem_le_adv_enable 
+534b d8e00000 arg 0 ,queue 
+534c afefffff qisolate1 pdata 
+534d 79208402 setflag true ,2 ,temp 
+534e 20600000 rtn 
+
+module_hci_event_store_device:
+534f 7006e20d jam hci_event_nvram_rep ,mem_module_uart_opcode 
+5350 6fe0c3fa fetch 1 ,mem_nv_data_number 
+5351 1feffe22 mul32 pdata ,34 ,pdata 
+5352 1fe27200 icopy loopcnt 
+5353 20405397 call module_hci_prepare_tx 
+5354 6fe143f8 fetch 2 ,mem_nv_data_ptr 
+5355 1fe20c00 icopy contr 
+5356 20406db1 call uart_copy_tx_bytes_fast 
+5357 202053a1 branch module_hci_transmit_tx 
+
+module_hci_event_gkey_generate:
+5358 7006e20e jam hci_event_gkey ,mem_module_uart_opcode 
+5359 58000004 setarg 4 
+535a 20405397 call module_hci_prepare_tx 
+535b 6fe205fa fetch 4 ,mem_gkey 
+535c e7e20003 istore 4 ,contwu 
+535d 202053a1 branch module_hci_transmit_tx 
+
+module_hci_event_invalid_packet:
+535e 7006e20f jam hci_event_invalid_packet ,mem_module_uart_opcode 
+535f 6ff10112 fetch 2 ,core_uart_rxitems 
+5360 d8400040 arg 0x40 ,temp 
+5361 20407db0 call not_greater_than 
+5362 1fe22200 copy pdata ,rega 
+5363 1fe27200 copy pdata ,loopcnt 
+5364 20406d96 call uarta_prepare_rx 
+5365 d8a006a1 arg mem_module_rx_error_data_buffer ,contw 
+5366 20406dca call uart_copy_rx_bytes_fast 
+5367 1a227e00 copy rega ,pdata 
+5368 1a227200 copy rega ,loopcnt 
+5369 20405397 call module_hci_prepare_tx 
+536a d8c006a1 arg mem_module_rx_error_data_buffer ,contr 
+536b 20406db1 call uart_copy_tx_bytes_fast 
+536c 202053a1 branch module_hci_transmit_tx 
+
+module_hci_event_passkey_entry_mode:
+536d 7006e210 jam hci_event_get_passkey ,mem_module_uart_opcode 
+536e 2020533c branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_le_tk:
+536f 7006e211 jam hci_event_le_tk ,mem_module_uart_opcode 
+5370 58000004 setarg 4 
+5371 20405397 call module_hci_prepare_tx 
+5372 6fe242ff fetch 4 ,mem_le_tk 
+5373 e7e20003 istore 4 ,contwu 
+5374 202053a1 branch module_hci_transmit_tx 
+
+module_hci_event_le_pairing_fail:
+5375 da200180 arg flag_ble_pairing_fail ,rega 
+5376 20205379 branch module_hci_event_pairing_completed 
+
+module_hci_event_le_pairing_success:
+5377 da200080 arg flag_ble_pairing_success ,rega 
+5378 20205379 branch module_hci_event_pairing_completed 
+
+module_hci_event_pairing_completed:
+5379 7006e214 jam hci_event_le_pairing_state ,mem_module_uart_opcode 
+537a 58000002 setarg 2 
+537b 20405397 call module_hci_prepare_tx 
+537c 1a227e00 copy rega ,pdata 
+537d e7e10003 istore 2 ,contwu 
+537e 202053a1 branch module_hci_transmit_tx 
+
+module_hci_event_pause_enc:
+537f da600000 arg flag_event_pause_enc ,regc 
+5380 20205382 branch module_hci_event_enc 
+
+module_hci_event_start_enc:
+5381 da600001 arg flag_event_start_enc ,regc 
+
+module_hci_event_enc:
+5382 7006e215 jam hci_event_le_encryption_state ,mem_module_uart_opcode 
+5383 58000001 setarg 1 
+5384 20405397 call module_hci_prepare_tx 
+5385 1a627e00 copy regc ,pdata 
+5386 e7e08003 istore 1 ,contwu 
+5387 202053a1 branch module_hci_transmit_tx 
+
+module_hci_event_uuid_handle:
+5388 60490678 storet 2 ,mem_temp 
+5389 7006e229 jam hci_event_uuid_handle ,mem_module_uart_opcode 
+538a 58000002 setarg 2 
+538b 20405397 call module_hci_prepare_tx 
+538c 68490678 fetcht 2 ,mem_temp 
+538d e0410003 istoret 2 ,contwu 
+538e 202053a1 branch module_hci_transmit_tx 
+
+module_hci_event_le_input_passkey:
+538f 7006e22b jam hci_event_le_input_gkey ,mem_module_uart_opcode 
+5390 2020533c branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_le_update_phy:
+5391 7006e240 jam hci_ble_update_phy_event ,mem_module_uart_opcode 
+5392 58000002 setarg 2 
+5393 20405397 call module_hci_prepare_tx 
+5394 6fe14075 fetch 2 ,mem_context + coffset_le_rx_phy 
+5395 e7e10003 istore 2 ,contwu 
+5396 202053a1 branch module_hci_transmit_tx 
+
+module_hci_prepare_tx:
+5397 7006e102 jam 0x02 ,mem_module_uart_cmd 
+5398 67e086e3 store 1 ,mem_module_uart_len 
+5399 604c0678 storet 8 ,mem_temp 
+539a 44b3400c bpatch patch0c_6 ,mem_patch0c 
+539b 204053a3 call module_set_mcu_wake_pin_high_delay 
+539c 684c0678 fetcht 8 ,mem_temp 
+539d 20406da2 call uarta_prepare_tx_register_push 
+539e 6fe186e1 fetch 3 ,mem_module_uart_cmd 
+539f e7e18003 istore 3 ,contwu 
+53a0 20600000 rtn 
+
+module_hci_transmit_tx:
+53a1 44b3c00c bpatch patch0c_7 ,mem_patch0c 
+53a2 20206da4 branch uarta_send_register_pop 
+
+module_set_mcu_wake_pin_high_delay:
+53a3 204053ac call module_check_mcu_wake_pin_high 
+53a4 20608000 rtn true 
+
+module_set_mcu_wake_pin_h_delay:
+53a5 204053aa call module_set_mcu_wake_pin_high 
+53a6 6fe244fa fetch 4 ,mem_module_mcu_wake_delay_us 
+53a7 1feb7e00 rshift2 pdata ,pdata 
+53a8 207a0000 rtn blank 
+53a9 20207c91 branch delay 
+
+module_set_mcu_wake_pin_high:
+53aa 6848c4f9 fetcht 1 ,mem_module_mcu_wake_pin 
+53ab 20206ef7 branch gpio_out_active 
+
+module_check_mcu_wake_pin_high:
+53ac 6848c4f9 fetcht 1 ,mem_module_mcu_wake_pin 
+53ad 20206f02 branch gpio_check_active 
+
+module_set_mcu_wake_pin_low:
+53ae 6848c4f9 fetcht 1 ,mem_module_mcu_wake_pin 
+53af 20206ef3 branch gpio_out_inactive 
+
+module_le_receive_data:
+53b0 6221070b storer rega ,2 ,mem_module_le_rx_data_address 
+53b1 62410709 storer regb ,2 ,mem_module_le_rx_data_len 
+53b2 6fe14398 fetch 2 ,mem_le_att_handle 
+53b3 67e1070d store 2 ,mem_module_le_rx_data_handle 
+53b4 204051a8 call module_check_ble_encrypt_state 
+53b5 20740000 rtn user 
+
+module_le_receive_data_ok:
+53b6 68490709 fetcht 2 ,mem_module_le_rx_data_len 
+53b7 6fe0c50e fetch 1 ,mem_module_ble_data_uart_max_length 
+53b8 20407db0 call not_greater_than 
+53b9 1fe27200 copy pdata ,loopcnt 
+53ba 18427e00 copy temp ,pdata 
+53bb 9f267e00 isub loopcnt ,pdata 
+53bc 67e10709 store 2 ,mem_module_le_rx_data_len 
+53bd 20405330 call module_hci_event_receive_le_data 
+53be 6fe10709 fetch 2 ,mem_module_le_rx_data_len 
+53bf 207a0000 rtn blank 
+53c0 202053b6 branch module_le_receive_data_ok 
+
+module_bb_event_timer:
+53c1 20600000 rtn 
+
+module_read_vdd_timer:
+53c2 6fe0c50a fetch 1 ,mem_module_read_vdd_flag 
+53c3 207a0000 rtn blank 
+53c4 6fe0c50b fetch 1 ,mem_module_read_vdd_count 
+53c5 207a0000 rtn blank 
+53c6 1fe0ffff increase -1 ,pdata 
+53c7 67e0c50b store 1 ,mem_module_read_vdd_count 
+53c8 247a0000 nrtn blank 
+53c9 70450b05 jam flag_module_read_vdd_count ,mem_module_read_vdd_count 
+53ca 20406f82 call enable_adc 
+53cb 20406fb0 call vdd_calculate_by_mode 
+53cc 1fe6fc0a div pdata ,10 
+53cd 20407d5f call get_div_result 
+53ce 1fe6fc64 div pdata ,100 
+53cf 20407d5f call get_div_result 
+53d0 18070400 remainder temp 
+53d1 67e0c50c store 1 ,mem_module_vdd_quotient 
+53d2 6048c50d storet 1 ,mem_module_vdd_remainder 
+53d3 20600000 rtn 
+
+module_set_le_tx_data_flag:
+53d4 d8e00008 arg module_flag_ble_data_finish ,queue 
+53d5 202053dc branch module_set_state 
+
+module_clear_le_tx_data_flag:
+53d6 d8e00008 arg module_flag_ble_data_finish ,queue 
+53d7 202053d8 branch module_clr_state 
+
+module_clr_state:
+53d8 6fe1450f fetch 2 ,mem_module_flag 
+53d9 f93ffe00 qset0 pdata 
+53da 67e1450f store 2 ,mem_module_flag 
+53db 20600000 rtn 
+
+module_set_state:
+53dc 6fe1450f fetch 2 ,mem_module_flag 
+53dd f9207e00 qset1 pdata 
+53de 67e1450f store 2 ,mem_module_flag 
+53df 20600000 rtn 
+
+mouse_init:
+53e0 20407396 call enable_authrom 
+53e1 20405410 call mouse_setting_config 
+53e2 20405949 call mouse_init_sunt 
+53e3 20758000 rtn wake 
+53e4 20405747 call mouse_setting_sensor_type 
+53e5 20405f37 call mouse_drawing_optima_init 
+53e6 204053ec call mouse_cb_fuction 
+53e7 204059ed call mouse_sensor_powerdown 
+
+mouse_init_wireless:
+53e8 6fe144e9 fetch 2 ,mem_ui_state_map 
+53e9 c2865c1a bbit1 ui_state_btn_down ,mouse_start_discovery 
+53ea 20405eb6 call mouse_check_select_device_by_switch 
+53eb 2020548c branch mouse_start_work 
+
+mouse_cb_fuction:
+53ec 44b4400d bpatch patch0d_0 ,mem_patch0d 
+53ed 58006235 setarg mouse_24g_short_sleep 
+53ee 67e145f8 store 2 ,mem_cb_24g_transmit_short_sleep 
+53ef 5800622b setarg mouse_24g_long_sleep 
+53f0 67e145fa store 2 ,mem_cb_24g_transmit_long_sleep 
+53f1 58006109 setarg mouse_24g_before_lpm_sleep 
+53f2 67e143e9 store 2 ,mem_cb_before_lpm_sleep 
+53f3 58006096 setarg mouse_24g_package_data 
+53f4 67e145f2 store 2 ,mem_cb_24g_transmit_data 
+53f5 580060c1 setarg mouse_24g_search_dongle 
+53f6 67e145f4 store 2 ,mem_cb_24g_search_receiver 
+53f7 5800550c setarg mouse_lpm_before_common 
+53f8 67e145f6 store 2 ,mem_cb_24g_lpm_before 
+53f9 58005b23 setarg mouse_le 
+53fa 67e143d9 store 2 ,mem_cb_le_process 
+53fb 58005507 setarg mouse_process_lpm_before 
+53fc 67e143d7 store 2 ,mem_cb_before_lpm 
+53fd 58005ac1 setarg mouse_priority_bb_event 
+53fe 67e143dd store 2 ,mem_cb_bb_event_process 
+53ff 58005e5d setarg mouse_idle 
+5400 67e143db store 2 ,mem_cb_idle_process 
+5401 580054d5 setarg mouse_before_hibernate 
+5402 67e143d5 store 2 ,mem_cb_before_hibernate 
+5403 58005b08 setarg mouse_le_bb_event_connect_complete 
+5404 67e143df store 2 ,mem_cb_att_write 
+5405 58005b85 setarg mouse_bb_event_timer 
+5406 67e143e3 store 2 ,mem_cb_event_timer 
+5407 580055fa setarg mouse_spi_write_flash_cb 
+5408 67e143e7 store 2 ,mem_cb_spi_flash_write_complate 
+5409 580054c5 setarg mouse_lpm_check_wake_lock 
+540a 67e143d3 store 2 ,mem_cb_check_wakelock 
+540b 58006221 setarg mouse_le_transmit 
+540c 67e143e1 store 2 ,mem_cb_ble_transmit 
+540d 58006228 setarg mouse_set_lpm_mult 
+540e 67e143e5 store 2 ,mem_cb_bt_set_mult 
+540f 20600000 rtn 
+
+mouse_setting_config:
+5410 20758000 rtn wake 
+5411 204035f0 call g24_transmit_init 
+5412 2040325b call g24_chmap_param_init 
+5413 204062aa call mouse_24g_send_time_long_wake 
+5414 20405589 call mouse_gpio_init 
+5415 204055c6 call mouse_le_name_modify 
+5416 2040544a call mouse_param_init 
+5417 20406177 call mouse_device_multi_led_parm_init 
+5418 20402a41 call le_set_fixed_ltk_justwork 
+
+mouse_load_device_info_check:
+5419 44b4c00d bpatch patch0d_1 ,mem_patch0d 
+541a 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+541b c289dd60 bbit1 mouse_enable_eeprom ,mouse_load_eeprom_info_check 
+541c c2895d6e bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
+541d c28a5da6 bbit1 mouse_enable_otp ,mouse_load_otp_info_check 
+541e 20600000 rtn 
+
+mouse_xtal_init:
+541f 70409910 jam xtal_16m ,mem_fcomp_div 
+5420 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5421 c3860000 rtnbit1 mouse_enable_16m 
+5422 70409918 jam xtal_24m ,mem_fcomp_div 
+5423 20600000 rtn 
+
+mouse_24g_phy_select:
+5424 20403281 call g24_enable_1m 
+5425 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5426 c41e8000 rtnbit0 mouse_enable_24g_2m_phy 
+5427 20203284 branch g24_enable_2m 
+
+mouse_default_init:
+5428 44b5400d bpatch patch0d_2 ,mem_patch0d 
+5429 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+542a 2feffe05 isolate1 mouse_keyboard_enable ,pdata 
+542b 2040df08 call mouse_customer_key_enable ,true 
+
+mouse_default_parm_init:
+542c 6fe1463a fetch 2 ,mem_mouse_24g_pair_timeout_init 
+542d 67e145d6 store 2 ,mem_24g_pair_timeout_init 
+542e 6fe0c63d fetch 1 ,mem_mouse_24g_reconn_timeout_init 
+542f 67e145dc store 2 ,mem_24g_reconn_timeout_init 
+5430 6fe2c63f fetch 5 ,mem_rssi_dis_min_24g_init 
+5431 67e2c628 store 5 ,mem_rssi_dis_min_24g 
+5432 6fe0c63e fetch 1 ,mem_mouse_24g_pair_tx_power 
+5433 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
+5434 6fe0c5b9 fetch 1 ,mem_24g_ch_map_update 
+5435 245a326b ncall g24_chamap_param_update ,blank 
+
+mouse_default_parm_init_next:
+5436 44b5c00d bpatch patch0d_3 ,mem_patch0d 
+5437 2040541f call mouse_xtal_init 
+5438 20405424 call mouse_24g_phy_select 
+5439 20405fe4 call mouse_24g_long_sleep_set 
+543a 20203287 branch g24_pair_param_init 
+
+mouse_param_common_init:
+543b 58009000 setarg mouse_ble_att_list_addr 
+543c 67e142f7 store 2 ,mem_ui_le_uuid_table 
+543d 7040c103 jam 3 ,mem_lpm_mult_timeout 
+543e 7040a608 jam 8 ,mem_lpm_overhead 
+543f 70497f00 jam pb_button_state_up ,mem_select_device_button_statue 
+5440 70498000 jam commbination_key_state_up ,mem_commbination_key_statue 
+5441 58000200 setarg 0x0200 
+5442 67e140a4 store 2 ,mem_lpm_interval 
+5443 7042e117 jam 0x17 ,mem_le_local_mtu 
+5444 7042e317 jam 0x17 ,mem_le_remote_mtu 
+5445 580047c3 setarg mem_le_tx_buffer0_omemalloc 
+5446 67e1433f store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+5447 58000010 setarg mouse_ble_l2cap_txbuff_size 
+5448 67e14341 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+5449 20205539 branch mouse_adc_gpio_mux_init 
+
+mouse_param_init:
+544a 44b6400d bpatch patch0d_4 ,mem_patch0d 
+544b 2040543b call mouse_param_common_init 
+544c 70487a00 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+544d 58000a77 setarg 0x0a77 
+544e 67e143f5 store 2 ,mem_spi_init_clk 
+544f 38001224 setsect 0 ,0x1224 
+5450 38044000 setsect 1 ,0x4000 
+5451 38080000 setsect 2 ,0x0 
+5452 e7e28005 istore 5 ,contw 
+5453 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5454 c30dd458 bbit0 mouse_enable_bt_125hz ,mouse_param_init_intervl_end 
+5455 58000006 setarg le_interval_7_5ms 
+5456 67e142d3 store 2 ,mem_le_interval_min 
+5457 67e142d5 store 2 ,mem_le_interval_min + 2 
+
+mouse_param_init_intervl_end:
+5458 20405481 call mouse_g24_interval_param_8ms 
+5459 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+545a c30c545c bbit0 mouse_enable_24g_250hz ,mouse_24g_short_sleep_set_end 
+545b 20405476 call mouse_g24_interval_param_4ms 
+
+mouse_24g_short_sleep_set_end:
+545c 6fe1c608 fetch 3 ,mem_24g_short_sleep_set 
+545d 67e1c75d store 3 ,mem_mouse_24g_short_sleep_set_init 
+545e 6fe0c666 fetch 1 ,mem_device_flag 
+545f 67e0c9a1 store 1 ,mem_device_flag_temp 
+5460 6fe1c2de fetch 3 ,mem_le_lap + 3 
+5461 67e1c797 store 3 ,mem_mouse_le_lap_temp 
+5462 58000000 setarg 0 
+5463 67e3c846 store 7 ,mem_mouse_key 
+5464 6fe0c4eb fetch 1 ,mem_ui_button_timeout 
+5465 67e0c97c store 1 ,mem_bt_discovery_count 
+5466 67e0c97d store 1 ,mem_select_device_count 
+5467 20402969 call le_modified_name_adv 
+
+mouse_sensor_set_angle:
+5468 44b6c00d bpatch patch0d_5 ,mem_patch0d 
+5469 6fe0c64f fetch 1 ,mem_sensor_angle_default 
+546a 67e0c958 store 1 ,mem_config_sensor_angle 
+546b 6fe0c64e fetch 1 ,mem_select_sensor_angle_gpio 
+546c c17f8000 rtneq gpio_disable 
+546d 6848c64e fetcht 1 ,mem_select_sensor_angle_gpio 
+546e 204055b5 call mouse_gpio_config_input_pu 
+546f 6848c64e fetcht 1 ,mem_select_sensor_angle_gpio 
+5470 20406ee6 call gpio_get_bit 
+5471 2040d473 call mouse_sensor_switch_angle ,true 
+5472 202055b1 branch mouse_gpio_config_input_pd 
+
+mouse_sensor_switch_angle:
+5473 6fe0c650 fetch 1 ,mem_sensor_angle_switch 
+5474 67e0c958 store 1 ,mem_config_sensor_angle 
+5475 20600000 rtn 
+
+mouse_g24_interval_param_4ms:
+5476 6fe1c743 fetch 3 ,mem_mouse_24g_short_sleep_set_4ms 
+5477 67e1c608 store 3 ,mem_24g_short_sleep_set 
+5478 6fe1c746 fetch 3 ,mem_mouse_24g_long_sleep_set_4ms 
+5479 67e1c60b store 3 ,mem_24g_long_sleep_set 
+547a 6fe0c749 fetch 1 ,mem_mouse_24g_fast_hop_count_4ms 
+547b 67e0c621 store 1 ,mem_24g_fast_hop_count 
+547c 6fe24755 fetch 4 ,mem_mouse_24g_tsniff_4ms 
+547d 67e24751 store 4 ,mem_mouse_24g_tsniff 
+
+mouse_report_rate_set_250hz:
+547e 58100c0c setarg 0x100c0c 
+547f 67e1c5a7 store 3 ,mem_24g_interval 
+5480 20600000 rtn 
+
+mouse_g24_interval_param_8ms:
+5481 6fe1c74a fetch 3 ,mem_mouse_24g_short_sleep_set_8ms 
+5482 67e1c608 store 3 ,mem_24g_short_sleep_set 
+5483 6fe1c74d fetch 3 ,mem_mouse_24g_long_sleep_set_8ms 
+5484 67e1c60b store 3 ,mem_24g_long_sleep_set 
+5485 6fe0c750 fetch 1 ,mem_mouse_24g_fast_hop_count_8ms 
+5486 67e0c621 store 1 ,mem_24g_fast_hop_count 
+5487 6fe24759 fetch 4 ,mem_mouse_24g_tsniff_8ms 
+5488 67e24751 store 4 ,mem_mouse_24g_tsniff 
+
+mouse_report_rate_set_125hz:
+5489 581c1919 setarg 0x1c1919 
+548a 67e1c5a7 store 3 ,mem_24g_interval 
+548b 20600000 rtn 
+
+mouse_start_work:
+548c 44b7400d bpatch patch0d_6 ,mem_patch0d 
+548d 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+548e c29f602d bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
+548f 6fe0c666 fetch 1 ,mem_device_flag 
+5490 c000601c beq mode_24g_device ,mouse_24g_start_mode 
+
+mouse_le_fast_conn_judge:
+5491 20405aa8 call mouse_bluetooth_fast_conn_disable 
+5492 6fe0c666 fetch 1 ,mem_device_flag 
+5493 c000d496 beq mode_bt_device1 ,mouse_le_device1_judge 
+5494 c001549b beq mode_bt_device2 ,mouse_le_device2_judge 
+5495 20600000 rtn 
+
+mouse_le_device1_judge:
+5496 6fe34668 fetch 6 ,mem_device1_addr 
+5497 684b46e6 fetcht 6 ,mem_mouse_compare_addr 
+5498 98467c00 isub temp ,null 
+5499 2022da94 branch mouse_bluetooth_fast_conn_init ,zero 
+549a 202054a0 branch mouse_start_reconnect_device 
+
+mouse_le_device2_judge:
+549b 6fe34675 fetch 6 ,mem_device2_addr 
+549c 684b46e6 fetcht 6 ,mem_mouse_compare_addr 
+549d 98467c00 isub temp ,null 
+549e 2022da94 branch mouse_bluetooth_fast_conn_init ,zero 
+549f 202054a0 branch mouse_start_reconnect_device 
+
+mouse_start_reconnect_device:
+54a0 44b7c00d bpatch patch0d_7 ,mem_patch0d 
+54a1 2040619f call mouse_device_le_reconn_led_config 
+54a2 da204667 arg mem_device1_type ,rega 
+54a3 6fe0c666 fetch 1 ,mem_device_flag 
+54a4 1fe0ffff increase -1 ,pdata 
+54a5 1feffe1d mul32 pdata ,29 ,pdata 
+54a6 9a20a200 iadd rega ,rega 
+54a7 efe08011 ifetch 1 ,rega 
+54a8 67e0c3f3 store 1 ,mem_xrecord_mode 
+
+mouse_start_reconnect:
+54a9 6fe0c3f3 fetch 1 ,mem_xrecord_mode 
+54aa c01a54b6 beq rec_4_mode ,mouse4_0_check_reconn_target 
+54ab 20205a94 branch mouse_bluetooth_fast_conn_init 
+
+mouse_wakeup_from_power_check:
+54ac 44b8400e bpatch patch0e_0 ,mem_patch0e 
+54ad 78547c00 disable user 
+54ae 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+54af c305d4b3 bbit0 mouse_enable_wakeup_from_power ,mouse_wakeup_from_poweron 
+54b0 6ff08132 fetch 1 ,core_lpm_isogate 
+54b1 c28254b3 bbit1 cold_wake ,mouse_wakeup_from_poweron 
+54b2 78347c00 enable user 
+
+mouse_wakeup_from_poweron:
+54b3 6fe0c780 fetch 1 ,mem_reconn_times_init 
+54b4 67e0c77f store 1 ,mem_reconn_times 
+54b5 20600000 rtn 
+
+mouse4_0_check_reconn_target:
+54b6 70479501 jam 1 ,mem_mouse_le_reconnect_flag 
+54b7 6848c71e fetcht 1 ,mem_mouse_fast_direct_timeout 
+54b8 6fe0c78f fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+54b9 c07fd4bb beq 0xff ,mouse4_0_check_reconn_target_next 
+54ba 6848c63c fetcht 1 ,mem_mouse_direct_timeout 
+
+mouse4_0_check_reconn_target_next:
+54bb 6048c845 storet 1 ,mem_mouse_direct_timer 
+54bc 2040432d call app_lpm_mult_disable 
+54bd 6fe1c79d fetch 3 ,mem_le_adv_direct_ind 
+54be 67e1c34d store 3 ,mem_le_adv_data + 4 
+54bf 20405b6b call mouse_le_check_adv_flag 
+54c0 58000004 setarg adv_flag_bredr_not_supported 
+54c1 e7e08006 istore 1 ,contr 
+54c2 d8c04369 arg mem_le_scan_data ,contr 
+54c3 20405b72 call mouse_le_adv_data_update 
+54c4 20207870 branch check_51cmd_adv 
+
+mouse_lpm_check_wake_lock:
+54c5 c5134308 bmark1 mark_24g ,app_get_lpm_wake_lock 
+54c6 6fe0c956 fetch 1 ,mem_mouse_clear_sensor_data_flag 
+54c7 203a4308 branch app_get_lpm_wake_lock ,blank 
+54c8 6fe0c7c2 fetch 1 ,mem_mouse_le_conn_param_reject 
+54c9 c000c308 beq le_lpm_disable ,app_get_lpm_wake_lock 
+54ca 6fe0c857 fetch 1 ,mem_mouse_wheel_trigger 
+54cb 243a4308 nbranch app_get_lpm_wake_lock ,blank 
+54cc 2020430a branch app_put_lpm_wake_lock 
+
+mouse_app_enter_hibernate:
+54cd 44b8c00e bpatch patch0e_1 ,mem_patch0e 
+54ce 58000006 setarg pan_reg_config 
+54cf 204069e5 call twspi_read 
+54d0 c281d4d3 bbit1 3 ,mouse_app_enter_hibernate_next 
+54d1 204059da call mouse_sensor_reset 
+54d2 204059ed call mouse_sensor_powerdown 
+
+mouse_app_enter_hibernate_next:
+54d3 204054dc call mouse_setgpio_hibernate 
+54d4 20204327 branch app_enter_hibernate 
+
+mouse_before_hibernate:
+54d5 44b9400e bpatch patch0e_2 ,mem_patch0e 
+54d6 2040739a call disable_authrom 
+54d7 204056a9 call mouse_before_hibernate_wheel_gpio_set 
+54d8 204054dc call mouse_setgpio_hibernate 
+54d9 20405d9e call mouse_flash_power_down 
+54da 6848c659 fetcht 1 ,mem_sensor_motion_gpio 
+54db 20206ed3 branch gpio_clr_wake 
+
+mouse_setgpio_hibernate:
+54dc 44b9c00e bpatch patch0e_3 ,mem_patch0e 
+54dd 20405a92 call mouse_set_sdio_high 
+54de 20407de2 call clear_wake 
+54df 2040611a call mouse_logo_led_off 
+54e0 2040550c call mouse_lpm_before_common 
+54e1 204054f9 call mouse_gpio_pd_idle 
+54e2 6848c65b fetcht 1 ,mem_mouse_reuse_2ice_gpio 
+54e3 204055b5 call mouse_gpio_config_input_pu 
+54e4 204055b9 call mouse_gpio_set_high_impedance 
+54e5 204061fd call mouse_device_multi_led_all_off 
+54e6 204054f2 call mouse_adc_gpio_set_before_hibernate 
+54e7 202054e8 branch mouse_wheel_gpio_set_before_hibernate 
+
+mouse_wheel_gpio_set_before_hibernate:
+54e8 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+54e9 c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+
+mouse_wheel_gpio_clr_wakeup:
+54ea 6848c64a fetcht 1 ,mem_whee_a_data_gpio 
+54eb 20406ed3 call gpio_clr_wake 
+54ec 6848c64b fetcht 1 ,mem_whee_b_data_gpio 
+54ed 20406ed3 call gpio_clr_wake 
+54ee 6848c64a fetcht 1 ,mem_whee_a_data_gpio 
+54ef 204055b1 call mouse_gpio_config_input_pd 
+54f0 6848c64b fetcht 1 ,mem_whee_b_data_gpio 
+54f1 202055b1 branch mouse_gpio_config_input_pd 
+
+mouse_adc_gpio_set_before_hibernate:
+54f2 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+54f3 c40a8000 rtnbit0 mouse_enable_adc 
+54f4 6fe0c407 fetch 1 ,mem_adc_config_flag 
+54f5 c1810000 rtnne adc_config_gpio 
+54f6 6fe0c635 fetch 1 ,mem_adc_channel_gpio 
+54f7 d84000c0 arg gpcfg_no_ie ,temp 
+54f8 20206f21 branch gpio_config_function_int 
+
+mouse_gpio_pd_idle:
+54f9 d8c08070 arg core_gpio_conf ,contr 
+54fa df200010 arg gpio_number ,loopcnt 
+
+mouse_gpio_pd_idle_loop:
+54fb efe08006 ifetch 1 ,contr 
+54fc 243a5500 nbranch mouse_gpio_pd_idle_configured ,blank 
+54fd 58000080 setarg gpcfg_pulldown 
+54fe 18c08bff add contr ,-1 ,contw 
+54ff e7e08005 istore 1 ,contw 
+
+mouse_gpio_pd_idle_configured:
+5500 c20054fb loop mouse_gpio_pd_idle_loop 
+5501 dfe080dc arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+5502 98c67c00 isub contr ,null 
+5503 20628000 rtn zero 
+
+mouse_gpio_pd_idle_ext:
+5504 df200008 arg gpio_number_ext ,loopcnt 
+5505 d8c080d4 arg core_gpio_conf_hi ,contr 
+5506 202054fb branch mouse_gpio_pd_idle_loop 
+
+mouse_process_lpm_before:
+5507 c6130000 rtnmark1 mark_24g 
+5508 2040550c call mouse_lpm_before_common 
+5509 6fe08015 fetch 1 ,mem_lpm_current_mult 
+550a 247a0000 nrtn blank 
+550b 20206ed3 branch gpio_clr_wake 
+
+mouse_lpm_before_common:
+550c 44ba400e bpatch patch0e_4 ,mem_patch0e 
+550d 6848c64a fetcht 1 ,mem_whee_a_data_gpio 
+550e 20406edd call gpio_config_input 
+550f 6848c64b fetcht 1 ,mem_whee_b_data_gpio 
+5510 20406edd call gpio_config_input 
+5511 2040561c call mouse_wheel_check 
+5512 6fe0c64c fetch 1 ,mem_mouse_sensor_sclk_gpio 
+5513 20405943 call mouse_gpio_config_output_high 
+5514 204069dc call twspi_disable 
+5515 6848c644 fetcht 1 ,mem_lbutton_gpio 
+5516 20406eb6 call gpio_set_wake 
+5517 6848c646 fetcht 1 ,mem_rbutton_gpio 
+5518 20406eb6 call gpio_set_wake 
+5519 6848c645 fetcht 1 ,mem_mbutton_gpio 
+551a 20406eb6 call gpio_set_wake 
+551b 6848c647 fetcht 1 ,mem_bk_button_gpio 
+551c 20406eb6 call gpio_set_wake 
+551d 6848c648 fetcht 1 ,mem_fw_button_gpio 
+551e 20406eb6 call gpio_set_wake 
+551f 6848c649 fetcht 1 ,mem_dpi_button_gpio 
+5520 20406eb6 call gpio_set_wake 
+5521 6848c655 fetcht 1 ,mem_config_select_device_button_gpio 
+5522 20406eb6 call gpio_set_wake 
+5523 6848c656 fetcht 1 ,mem_customer_key_gpio 
+5524 20406eb6 call gpio_set_wake 
+5525 6848c64a fetcht 1 ,mem_whee_a_data_gpio 
+5526 20406eb2 call gpio_set_wake_by_current_state 
+5527 6848c64b fetcht 1 ,mem_whee_b_data_gpio 
+5528 20406eb2 call gpio_set_wake_by_current_state 
+5529 6848c652 fetcht 1 ,mem_whee_ta_data_gpio 
+552a 20406eb2 call gpio_set_wake_by_current_state 
+552b 6848c653 fetcht 1 ,mem_whee_tb_data_gpio 
+552c 20406eb2 call gpio_set_wake_by_current_state 
+552d 6848c659 fetcht 1 ,mem_sensor_motion_gpio 
+552e 20206eb6 branch gpio_set_wake 
+
+mouse_set_mult:
+552f 6fe144e9 fetch 2 ,mem_ui_state_map 
+5530 c4048000 rtnbit0 ui_state_ble_connected 
+5531 1a227e00 copy rega ,pdata 
+5532 243a29d5 nbranch le_set_config_short_mult ,blank 
+5533 202029da branch le_clr_config_short_mult 
+
+mouse_adc_gpio_set:
+5534 44bac00e bpatch patch0e_5 ,mem_patch0e 
+5535 6fe0c407 fetch 1 ,mem_adc_config_flag 
+5536 c1810000 rtnne adc_config_gpio 
+5537 6848c635 fetcht 1 ,mem_adc_channel_gpio 
+5538 20206f0f branch gpio_set_high_impedance 
+
+mouse_adc_gpio_mux_init:
+5539 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+553a c40a8000 rtnbit0 mouse_enable_adc 
+553b 70463601 jam mouse_adc_check_multiple ,mem_adc_mux_status 
+553c 20600000 rtn 
+
+mouse_adc_read:
+553d 44bb400e bpatch patch0e_6 ,mem_patch0e 
+553e 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+553f c40a8000 rtnbit0 mouse_enable_adc 
+5540 20405534 call mouse_adc_gpio_set 
+5541 6fe0c407 fetch 1 ,mem_adc_config_flag 
+5542 c0015545 beq adc_config_gpio ,mouse_adc_read_gpio_mux_start 
+5543 70463603 jam mouse_adc_check_hvin_multiple ,mem_adc_mux_status 
+5544 20205547 branch mouse_adc_read_start 
+
+mouse_adc_read_gpio_mux_start:
+5545 70463602 jam mouse_adc_check_gpio_multiple ,mem_adc_mux_status 
+5546 20205547 branch mouse_adc_read_start 
+
+mouse_adc_read_start:
+5547 44bbc00e bpatch patch0e_7 ,mem_patch0e 
+5548 20406f82 call enable_adc 
+5549 20406fb0 call vdd_calculate_by_mode 
+554a 67e14633 store 2 ,mem_mouse_vdd_now_vol 
+554b 6fe0c407 fetch 1 ,mem_adc_config_flag 
+554c c0815553 bne adc_config_gpio ,mouse_adc_data_process 
+554d 68494633 fetcht 2 ,mem_mouse_vdd_now_vol 
+554e 184ffe08 mul32 temp ,8 ,pdata 
+554f 1fe6fc0a div pdata ,10 
+5550 20407d5f call get_div_result 
+5551 9840fe00 iadd temp ,pdata 
+5552 67e14633 store 2 ,mem_mouse_vdd_now_vol 
+
+mouse_adc_data_process:
+5553 da20462d arg mem_mouse_vdd_calculate_set ,rega 
+5554 20405563 call mouse_adc_bat_percent_lowpower_out 
+5555 6fe0c40c fetch 1 ,mem_adc_power_flag 
+5556 c280d4cd bbit1 1 ,mouse_app_enter_hibernate 
+5557 c300555c bbit0 0 ,mouse_adc_no_low_voltage 
+5558 70463701 jam 1 ,mem_mouse_adc_last_low_voltage_flag 
+5559 2020555a branch mouse_adc_low_voltage 
+
+mouse_adc_low_voltage:
+555a d8e00004 arg mouse_low_voltage_flag ,queue 
+555b 20205f00 branch mouse_enable_function_flag 
+
+mouse_adc_no_low_voltage:
+555c d8e00004 arg mouse_low_voltage_flag ,queue 
+555d 20405f04 call mouse_disable_function_flag 
+555e 70470901 jam 1 ,mem_adc_low_volatage_led_timer_count 
+555f 6fe0c637 fetch 1 ,mem_mouse_adc_last_low_voltage_flag 
+5560 207a0000 rtn blank 
+5561 70463700 jam 0 ,mem_mouse_adc_last_low_voltage_flag 
+5562 2020616e branch mouse_low_voltage_led_off_judge 
+
+mouse_adc_bat_percent_lowpower_out:
+5563 44bc400f bpatch patch0f_0 ,mem_patch0f 
+5564 efe40011 ifetch 8 ,rega 
+5565 67e40670 store 8 ,mem_pdatatemp 
+5566 6fe0c636 fetch 1 ,mem_adc_mux_status 
+5567 c000556a beq mouse_adc_check_battery_only ,mouse_adc_bat_percent_lowpower_out_battery 
+5568 c001556a beq mouse_adc_check_gpio_multiple ,mouse_adc_bat_percent_lowpower_out_battery 
+5569 c001d588 beq mouse_adc_check_hvin_multiple ,mouse_adc_bat_percent_lowpower_out_hvin_multiple 
+
+mouse_adc_bat_percent_lowpower_out_battery:
+556a 20406ff3 call adc_clear_no_power_flag 
+556b 20406feb call adc_clear_low_power_flag 
+556c 6fe10676 fetch 2 ,mem_pdatatemp + 6 
+556d 68490672 fetcht 2 ,mem_pdatatemp + 2 
+556e 98467c00 isub temp ,null 
+556f 24416fef ncall adc_set_no_power_flag ,positive 
+5570 68490674 fetcht 2 ,mem_pdatatemp + 4 
+5571 98467c00 isub temp ,null 
+5572 24416fe7 ncall adc_set_low_power_flag ,positive 
+
+mouse_adc_bat_level_set:
+5573 6fe10676 fetch 2 ,mem_pdatatemp + 6 
+5574 68490670 fetcht 2 ,mem_pdatatemp 
+5575 98467c00 isub temp ,null 
+5576 20215584 branch mouse_adc_bat_level_100_percent ,positive 
+5577 68490672 fetcht 2 ,mem_pdatatemp + 2 
+5578 98467e00 isub temp ,pdata 
+5579 24215586 nbranch mouse_adc_bat_level_0_percent ,positive 
+557a 203a5586 branch mouse_adc_bat_level_0_percent ,blank 
+557b 1fefa264 mul32 pdata ,100 ,rega 
+557c 6fe10670 fetch 2 ,mem_pdatatemp 
+557d 68490672 fetcht 2 ,mem_pdatatemp + 2 
+557e 98460400 isub temp ,temp 
+557f 1a227e00 copy rega ,pdata 
+5580 9846fc00 idiv temp 
+5581 20407d5f call get_div_result 
+5582 67e0c7bd store 1 ,mem_le_battery_level_percentage 
+5583 20600000 rtn 
+
+mouse_adc_bat_level_100_percent:
+5584 7047bd64 jam 100 ,mem_le_battery_level_percentage 
+5585 20600000 rtn 
+
+mouse_adc_bat_level_0_percent:
+5586 7047bd00 jam 0 ,mem_le_battery_level_percentage 
+5587 20600000 rtn 
+
+mouse_adc_bat_percent_lowpower_out_hvin_multiple:
+5588 2020556a branch mouse_adc_bat_percent_lowpower_out_battery 
+
+mouse_gpio_init:
+5589 6848c427 fetcht 1 ,mem_eeprom_wp_gpio 
+558a 20406ef7 call gpio_config_output 
+558b 6848c644 fetcht 1 ,mem_lbutton_gpio 
+558c 204055b5 call mouse_gpio_config_input_pu 
+558d 6848c646 fetcht 1 ,mem_rbutton_gpio 
+558e 204055b5 call mouse_gpio_config_input_pu 
+558f 6848c645 fetcht 1 ,mem_mbutton_gpio 
+5590 204055b5 call mouse_gpio_config_input_pu 
+5591 6848c647 fetcht 1 ,mem_bk_button_gpio 
+5592 204055b5 call mouse_gpio_config_input_pu 
+5593 6848c648 fetcht 1 ,mem_fw_button_gpio 
+5594 204055b5 call mouse_gpio_config_input_pu 
+5595 6848c649 fetcht 1 ,mem_dpi_button_gpio 
+5596 204055b5 call mouse_gpio_config_input_pu 
+5597 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+5598 204055b5 call mouse_gpio_config_input_pu 
+5599 6848c655 fetcht 1 ,mem_config_select_device_button_gpio 
+559a 204055b5 call mouse_gpio_config_input_pu 
+559b 6848c656 fetcht 1 ,mem_customer_key_gpio 
+559c 204055b5 call mouse_gpio_config_input_pu 
+559d 6848c64a fetcht 1 ,mem_whee_a_data_gpio 
+559e 204055b5 call mouse_gpio_config_input_pu 
+559f 6848c64b fetcht 1 ,mem_whee_b_data_gpio 
+55a0 204055b5 call mouse_gpio_config_input_pu 
+55a1 6848c652 fetcht 1 ,mem_whee_ta_data_gpio 
+55a2 204055b5 call mouse_gpio_config_input_pu 
+55a3 6848c653 fetcht 1 ,mem_whee_tb_data_gpio 
+55a4 204055b5 call mouse_gpio_config_input_pu 
+55a5 6848c659 fetcht 1 ,mem_sensor_motion_gpio 
+55a6 204055b5 call mouse_gpio_config_input_pu 
+55a7 6848c65a fetcht 1 ,mem_device_switch_gpio 
+55a8 204055b5 call mouse_gpio_config_input_pu 
+55a9 6848c64e fetcht 1 ,mem_select_sensor_angle_gpio 
+55aa 202055b5 branch mouse_gpio_config_input_pu 
+
+mouse_gpio_set_pupd_by_input:
+55ab 18467cff sub temp ,ui_button_gpio_disable ,null 
+55ac 20628000 rtn zero 
+55ad 18410e7f and temp ,0x7f ,queue 
+55ae 6ff2011c fetch 4 ,core_gpio_in 
+55af afefffff qisolate1 pdata 
+55b0 2020d5b5 branch mouse_gpio_config_input_pu ,true 
+
+mouse_gpio_config_input_pd:
+55b1 18467cff sub temp ,ui_button_gpio_disable ,null 
+55b2 20628000 rtn zero 
+55b3 79200407 set1 gpio_active_bit ,temp 
+55b4 20206edd branch gpio_config_input 
+
+mouse_gpio_config_input_pu:
+55b5 18467cff sub temp ,ui_button_gpio_disable ,null 
+55b6 20628000 rtn zero 
+55b7 793f8407 set0 gpio_active_bit ,temp 
+55b8 20206edd branch gpio_config_input 
+
+mouse_gpio_set_high_impedance:
+55b9 6fe1c73c fetch 3 ,mem_mouse_set_high_impedance_bit_set 
+55ba 67e18670 store 3 ,mem_pdatatemp 
+55bb df20000d arg 13 ,loopcnt 
+55bc d8400000 arg 0 ,temp 
+
+mouse_gpio_set_high_impedance_bit_loop:
+55bd 6fe18670 fetch 3 ,mem_pdatatemp 
+55be 2feffe00 isolate1 0 ,pdata 
+55bf 2040ef0f call gpio_set_high_impedance ,true 
+55c0 6fe18670 fetch 3 ,mem_pdatatemp 
+55c1 1fe3fe00 lshift pdata ,pdata 
+55c2 67e18670 store 3 ,mem_pdatatemp 
+55c3 18408401 increase 1 ,temp 
+55c4 c20055bd loop mouse_gpio_set_high_impedance_bit_loop 
+55c5 20600000 rtn 
+
+mouse_le_name_modify:
+55c6 44bcc00f bpatch patch0f_1 ,mem_patch0f 
+55c7 6fe4498d fetch 8 ,mem_le_name_patch 
+55c8 207a0000 rtn blank 
+55c9 6fe0c98c fetch 1 ,mem_le_name_patch_len 
+55ca 1fe22200 copy pdata ,rega 
+55cb 1fe67c0b sub pdata ,11 ,null 
+55cc 242155dd nbranch mouse_le_name_patch_len_overflow ,positive 
+55cd 204055d6 call mouse_le_name_clear 
+55ce d8a047a9 arg mem_le_adv_swift_pair + 9 ,contw 
+55cf 204055d3 call mouse_le_name_modify_next 
+55d0 d8a0436b arg mem_le_scan_data + 2 ,contw 
+55d1 204055d3 call mouse_le_name_modify_next 
+55d2 d8a0426c arg mem_le_name ,contw 
+
+mouse_le_name_modify_next:
+55d3 d8c0498d arg mem_le_name_patch ,contr 
+55d4 1a227200 copy rega ,loopcnt 
+55d5 20207cda branch memcpy 
+
+mouse_le_name_clear:
+55d6 d8a047a9 arg mem_le_adv_swift_pair + 9 ,contw 
+55d7 204055db call mouse_le_name_clear_next 
+55d8 d8a0436b arg mem_le_scan_data + 2 ,contw 
+55d9 204055db call mouse_le_name_clear_next 
+55da d8a0426c arg mem_le_name ,contw 
+
+mouse_le_name_clear_next:
+55db df20000b arg 11 ,loopcnt 
+55dc 20207ca1 branch clear_mem 
+
+mouse_le_name_patch_len_overflow:
+55dd 204055f3 call mouse_le_swift_pair_disable 
+55de 6fe0c98c fetch 1 ,mem_le_name_patch_len 
+55df 1fe0fe01 increase 1 ,pdata 
+55e0 67e0c7a0 store 1 ,mem_le_adv_swift_pair 
+55e1 7047a109 jam 9 ,mem_le_adv_swift_pair + 1 
+55e2 d8c0498d arg mem_le_name_patch ,contr 
+55e3 d8a047a2 arg mem_le_adv_swift_pair + 2 ,contw 
+55e4 1a227200 copy rega ,loopcnt 
+55e5 20407cda call memcpy 
+55e6 6fe0c98c fetch 1 ,mem_le_name_patch_len 
+55e7 1fe0fe01 increase 1 ,pdata 
+55e8 67e0c369 store 1 ,mem_le_scan_data 
+55e9 70436a09 jam 9 ,mem_le_scan_data + 1 
+55ea d8c0498d arg mem_le_name_patch ,contr 
+55eb d8a0436b arg mem_le_scan_data + 2 ,contw 
+55ec 1a227200 copy rega ,loopcnt 
+55ed 20407cda call memcpy 
+55ee d8c0498c arg mem_le_name_patch_len ,contr 
+55ef d8a0426b arg mem_le_name_len ,contw 
+55f0 1a227200 copy rega ,loopcnt 
+55f1 1f20f201 increase 1 ,loopcnt 
+55f2 20207cda branch memcpy 
+
+mouse_le_swift_pair_disable:
+55f3 d8a047a0 arg mem_le_adv_swift_pair ,contw 
+55f4 df200014 arg 20 ,loopcnt 
+55f5 20207ca1 branch clear_mem 
+
+mouse_sensor_spi_init:
+55f6 204055fb call mouse_spid_init_pin 
+55f7 7043f573 jam 0x73 ,mem_spi_init_clk 
+55f8 204055fa call mouse_spi_init 
+55f9 202069e0 branch twspi_enable 
+
+mouse_spi_write_flash_cb:
+
+mouse_spi_init:
+55fa 20206bc6 branch spid_init 
+
+mouse_spid_init_pin:
+55fb 6fe0c64c fetch 1 ,mem_mouse_sensor_sclk_gpio 
+55fc d8400021 arg gpcfg_spid_sck ,temp 
+55fd 20406f21 call gpio_config_function_int 
+55fe 6fe0c64d fetch 1 ,mem_mouse_sensor_sdio_gpio 
+55ff d8400023 arg gpcfg_spid_sdio ,temp 
+5600 20206f21 branch gpio_config_function_int 
+
+mouse_motion:
+5601 44bd400f bpatch patch0f_2 ,mem_patch0f 
+5602 78547c00 disable user 
+5603 58000000 setarg 0 
+5604 67e34847 store 6 ,mem_mouse_x 
+5605 204059f6 call mouse_check_sensor_data 
+5606 58000089 setarg 0x0089 
+5607 204069e4 call twspi_write 
+5608 20405747 call mouse_setting_sensor_type 
+5609 20405612 call mouse_zwheel 
+560a 20405617 call mouse_t_zwheel 
+560b 204057a6 call mouse_key 
+560c 6fe0c846 fetch 1 ,mem_mouse_key 
+560d 1fe17e1f and_into 0x1f ,pdata 
+560e 67e0c846 store 1 ,mem_mouse_key 
+560f 24345f37 nbranch mouse_drawing_optima_init ,user 
+5610 20405f26 call mouse_drawing_optima 
+5611 20205c0b branch mouse_no_data_timer_init 
+
+mouse_zwheel:
+5612 6fe0c856 fetch 1 ,mem_mouse_z_data 
+5613 207a0000 rtn blank 
+5614 67e0c84b store 1 ,mem_mouse_z 
+5615 70485600 jam 0 ,mem_mouse_z_data 
+5616 20207dba branch enable_user 
+
+mouse_t_zwheel:
+5617 6fe0c852 fetch 1 ,mem_mouse_tz_data 
+5618 207a0000 rtn blank 
+5619 67e0c84c store 1 ,mem_mouse_tz 
+561a 70485200 jam 0 ,mem_mouse_tz_data 
+561b 20207dba branch enable_user 
+
+mouse_wheel_check:
+561c 20405629 call mouse_t_wheel_scan 
+561d 20405665 call mouse_wheel_scan 
+561e 6fe0c850 fetch 1 ,mem_wheel_tb_new_pinlevel 
+561f 6848c84f fetcht 1 ,mem_wheel_tb_old_pinlevel 
+5620 67e0c84f store 1 ,mem_wheel_tb_old_pinlevel 
+5621 98467c00 isub temp ,null 
+5622 2422c30c nbranch app_lpm_wake_auto_lock ,zero 
+5623 6fe0c854 fetch 1 ,mem_mwheel_b_new_pinlevel 
+5624 6848c853 fetcht 1 ,mem_mwheel_b_old_pinlevel 
+5625 67e0c853 store 1 ,mem_mwheel_b_old_pinlevel 
+5626 98467c00 isub temp ,null 
+5627 2422c30c nbranch app_lpm_wake_auto_lock ,zero 
+5628 20600000 rtn 
+
+mouse_t_wheel_scan:
+5629 6fe0c652 fetch 1 ,mem_whee_ta_data_gpio 
+562a c17f8000 rtneq gpio_disable 
+562b da200000 arg 0 ,rega 
+562c 6848c652 fetcht 1 ,mem_whee_ta_data_gpio 
+562d 20406ee6 call gpio_get_bit 
+562e 7920a200 setflag true ,0 ,rega 
+562f 6848c653 fetcht 1 ,mem_whee_tb_data_gpio 
+5630 20406ee6 call gpio_get_bit 
+5631 7920a201 setflag true ,1 ,rega 
+5632 1a227e00 copy rega ,pdata 
+5633 67e0c850 store 1 ,mem_wheel_tb_new_pinlevel 
+5634 c000d639 beq 0x01 ,mouse_t_wheel_scan_judge1 
+5635 c001563d beq 0x02 ,mouse_t_wheel_scan_judge2 
+5636 6fe0c851 fetch 1 ,mem_wheel_tog 
+5637 c283d649 bbit1 7 ,mouse_t_wheel_scan_judge3 
+5638 20600000 rtn 
+
+mouse_t_wheel_scan_judge1:
+5639 6fe0c84f fetch 1 ,mem_wheel_tb_old_pinlevel 
+563a c0005641 beq 0 ,mouse_t_wheel_scan_judge11 
+563b c001d643 beq 3 ,mouse_t_wheel_scan_judge12 
+563c 20600000 rtn 
+
+mouse_t_wheel_scan_judge2:
+563d 6fe0c84f fetch 1 ,mem_wheel_tb_old_pinlevel 
+563e c0005645 beq 0 ,mouse_t_wheel_scan_judge21 
+563f c001d647 beq 3 ,mouse_t_wheel_scan_judge22 
+5640 20600000 rtn 
+
+mouse_t_wheel_scan_judge11:
+5641 70485182 jam 0x82 ,mem_wheel_tog 
+5642 20600000 rtn 
+
+mouse_t_wheel_scan_judge12:
+5643 70485181 jam 0x81 ,mem_wheel_tog 
+5644 20600000 rtn 
+
+mouse_t_wheel_scan_judge21:
+5645 70485180 jam 0x80 ,mem_wheel_tog 
+5646 20600000 rtn 
+
+mouse_t_wheel_scan_judge22:
+5647 70485183 jam 0x83 ,mem_wheel_tog 
+5648 20600000 rtn 
+
+mouse_t_wheel_scan_judge3:
+5649 6fe0c851 fetch 1 ,mem_wheel_tog 
+564a 793ffe07 set0 7 ,pdata 
+564b 67e0c851 store 1 ,mem_wheel_tog 
+564c c0005651 beq 0 ,mouse_t_wheel_scan_judge30 
+564d c000d654 beq 1 ,mouse_t_wheel_scan_judge31 
+564e c0015657 beq 2 ,mouse_t_wheel_scan_judge32 
+564f c001d65a beq 3 ,mouse_t_wheel_scan_judge33 
+5650 20600000 rtn 
+
+mouse_t_wheel_scan_judge30:
+5651 6fe0c850 fetch 1 ,mem_wheel_tb_new_pinlevel 
+5652 c001d65d beq 3 ,mouse_wheel_t_forward 
+5653 20600000 rtn 
+
+mouse_t_wheel_scan_judge31:
+5654 6fe0c850 fetch 1 ,mem_wheel_tb_new_pinlevel 
+5655 c000565d beq 0 ,mouse_wheel_t_forward 
+5656 20600000 rtn 
+
+mouse_t_wheel_scan_judge32:
+5657 6fe0c850 fetch 1 ,mem_wheel_tb_new_pinlevel 
+5658 c001d661 beq 3 ,mouse_wheel_t_back 
+5659 20600000 rtn 
+
+mouse_t_wheel_scan_judge33:
+565a 6fe0c850 fetch 1 ,mem_wheel_tb_new_pinlevel 
+565b c0005661 beq 0 ,mouse_wheel_t_back 
+565c 20600000 rtn 
+
+mouse_wheel_t_forward:
+565d 6fe0c852 fetch 1 ,mem_mouse_tz_data 
+565e 1fe0fe01 increase 1 ,pdata 
+565f 67e0c852 store 1 ,mem_mouse_tz_data 
+5660 20600000 rtn 
+
+mouse_wheel_t_back:
+5661 6fe0c852 fetch 1 ,mem_mouse_tz_data 
+5662 1fe0ffff increase -1 ,pdata 
+5663 67e0c852 store 1 ,mem_mouse_tz_data 
+5664 20600000 rtn 
+
+mouse_wheel_scan:
+5665 6fe0c64a fetch 1 ,mem_whee_a_data_gpio 
+5666 c17f8000 rtneq gpio_disable 
+5667 da200000 arg 0 ,rega 
+5668 6848c64a fetcht 1 ,mem_whee_a_data_gpio 
+5669 20406ee6 call gpio_get_bit 
+566a 7920a200 setflag true ,0 ,rega 
+566b 6848c64b fetcht 1 ,mem_whee_b_data_gpio 
+566c 20406ee6 call gpio_get_bit 
+566d 7920a201 setflag true ,1 ,rega 
+566e 1a227e00 copy rega ,pdata 
+566f 67e0c854 store 1 ,mem_mwheel_b_new_pinlevel 
+5670 c000d675 beq 0x01 ,mouse_wheel_scan_judge1 
+5671 c0015679 beq 0x02 ,mouse_wheel_scan_judge2 
+5672 6fe0c855 fetch 1 ,mem_mwheel_tog 
+5673 c283d685 bbit1 7 ,mouse_wheel_scan_judge3 
+5674 20600000 rtn 
+
+mouse_wheel_scan_judge1:
+5675 6fe0c853 fetch 1 ,mem_mwheel_b_old_pinlevel 
+5676 c000567d beq 0 ,mouse_wheel_scan_judge11 
+5677 c001d67f beq 3 ,mouse_wheel_scan_judge12 
+5678 20600000 rtn 
+
+mouse_wheel_scan_judge2:
+5679 6fe0c853 fetch 1 ,mem_mwheel_b_old_pinlevel 
+567a c0005681 beq 0 ,mouse_wheel_scan_judge21 
+567b c001d683 beq 3 ,mouse_wheel_scan_judge22 
+567c 20600000 rtn 
+
+mouse_wheel_scan_judge11:
+567d 70485582 jam 0x82 ,mem_mwheel_tog 
+567e 20600000 rtn 
+
+mouse_wheel_scan_judge12:
+567f 70485581 jam 0x81 ,mem_mwheel_tog 
+5680 20600000 rtn 
+
+mouse_wheel_scan_judge21:
+5681 70485580 jam 0x80 ,mem_mwheel_tog 
+5682 20600000 rtn 
+
+mouse_wheel_scan_judge22:
+5683 70485583 jam 0x83 ,mem_mwheel_tog 
+5684 20600000 rtn 
+
+mouse_wheel_scan_judge3:
+5685 6fe0c855 fetch 1 ,mem_mwheel_tog 
+5686 793ffe07 set0 7 ,pdata 
+5687 67e0c855 store 1 ,mem_mwheel_tog 
+5688 c000568d beq 0 ,mouse_wheel_scan_judge30 
+5689 c000d690 beq 1 ,mouse_wheel_scan_judge31 
+568a c0015693 beq 2 ,mouse_wheel_scan_judge32 
+568b c001d696 beq 3 ,mouse_wheel_scan_judge33 
+568c 20600000 rtn 
+
+mouse_wheel_scan_judge30:
+568d 6fe0c854 fetch 1 ,mem_mwheel_b_new_pinlevel 
+568e c001d699 beq 3 ,mouse_wheel_forward 
+568f 20600000 rtn 
+
+mouse_wheel_scan_judge31:
+5690 6fe0c854 fetch 1 ,mem_mwheel_b_new_pinlevel 
+5691 c0005699 beq 0 ,mouse_wheel_forward 
+5692 20600000 rtn 
+
+mouse_wheel_scan_judge32:
+5693 6fe0c854 fetch 1 ,mem_mwheel_b_new_pinlevel 
+5694 c001d69d beq 3 ,mouse_wheel_back 
+5695 20600000 rtn 
+
+mouse_wheel_scan_judge33:
+5696 6fe0c854 fetch 1 ,mem_mwheel_b_new_pinlevel 
+5697 c000569d beq 0 ,mouse_wheel_back 
+5698 20600000 rtn 
+
+mouse_wheel_forward:
+5699 6fe0c856 fetch 1 ,mem_mouse_z_data 
+569a 1fe0fe01 increase 1 ,pdata 
+569b 67e0c856 store 1 ,mem_mouse_z_data 
+569c 20600000 rtn 
+
+mouse_wheel_back:
+569d 6fe0c856 fetch 1 ,mem_mouse_z_data 
+569e 1fe0ffff increase -1 ,pdata 
+569f 67e0c856 store 1 ,mem_mouse_z_data 
+56a0 20600000 rtn 
+
+mouse_wheel_gpio_set_wake:
+56a1 6848c64a fetcht 1 ,mem_whee_a_data_gpio 
+56a2 20406eb2 call gpio_set_wake_by_current_state 
+56a3 6848c64b fetcht 1 ,mem_whee_b_data_gpio 
+56a4 20406eb2 call gpio_set_wake_by_current_state 
+56a5 6848c652 fetcht 1 ,mem_whee_ta_data_gpio 
+56a6 20406eb2 call gpio_set_wake_by_current_state 
+56a7 6848c653 fetcht 1 ,mem_whee_tb_data_gpio 
+56a8 20206eb2 branch gpio_set_wake_by_current_state 
+
+mouse_before_hibernate_wheel_gpio_set:
+56a9 6848c64a fetcht 1 ,mem_whee_a_data_gpio 
+56aa 204055ab call mouse_gpio_set_pupd_by_input 
+56ab 6848c64b fetcht 1 ,mem_whee_b_data_gpio 
+56ac 204055ab call mouse_gpio_set_pupd_by_input 
+56ad 6848c652 fetcht 1 ,mem_whee_ta_data_gpio 
+56ae 204055ab call mouse_gpio_set_pupd_by_input 
+56af 6848c653 fetcht 1 ,mem_whee_tb_data_gpio 
+56b0 202055ab branch mouse_gpio_set_pupd_by_input 
+
+mouse_wheel_trigger:
+56b1 6fe1484b fetch 2 ,mem_mouse_z 
+56b2 207a0000 rtn blank 
+56b3 70485701 jam 1 ,mem_mouse_wheel_trigger 
+56b4 7048580a jam 10 ,mem_mouse_wheel_trigger_timer 
+56b5 20600000 rtn 
+
+mouse_wheel_trigger_timer:
+56b6 da604858 arg mem_mouse_wheel_trigger_timer ,regc 
+56b7 da4056b9 arg mouse_wheel_trigger_disable ,regb 
+56b8 202042e0 branch timer_single_step 
+
+mouse_wheel_trigger_disable:
+56b9 70485700 jam 0 ,mem_mouse_wheel_trigger 
+56ba 20600000 rtn 
+
+mouse_dpi_check:
+56bb 6fe0c649 fetch 1 ,mem_dpi_button_gpio 
+56bc c17f8000 rtneq gpio_disable 
+56bd da200000 arg 0 ,rega 
+56be 70497705 jam mouse_dpi_key ,mem_mouse_key_temp 
+56bf 6848c649 fetcht 1 ,mem_dpi_button_gpio 
+56c0 204056c8 call mouse_dpi_key_check 
+
+mouse_dpi_check_next:
+56c1 67e0c974 store 1 ,mem_mouse_dpikey_press_status 
+56c2 6fe0c654 fetch 1 ,mem_matrix_public_gpio 
+56c3 c07fd6d8 beq gpio_disable ,mouse_3io6key_dpi_check_end 
+56c4 204058df call mouse_matrix_public_gpio_reset 
+
+mouse_dpi_check_exit:
+56c5 1a227e00 copy rega ,pdata 
+56c6 c282d6e0 bbit1 mouse_dpi_key ,mouse_dpi_down 
+56c7 202056e7 branch mouse_dpi_up 
+
+mouse_dpi_key_check:
+56c8 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+56c9 c295d6de bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+56ca 6fe0c974 fetch 1 ,mem_mouse_dpikey_press_status 
+56cb 1fe22600 copy pdata ,regc 
+56cc 6fe0c654 fetch 1 ,mem_matrix_public_gpio 
+56cd c07fd931 beq gpio_disable ,mouse_3io6key_check 
+
+mouse_dpi_key_check_next:
+56ce 6fe0c97b fetch 1 ,mem_mouse_ghost_flag 
+56cf 243a56db nbranch mouse_dpi_check_end ,blank 
+
+mouse_dpi_key_connect_matrix:
+56d0 20406ee6 call gpio_get_bit 
+56d1 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+56d2 2020d6de branch mouse_dpi_key_connect_gnd ,true 
+56d3 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+56d4 20406ef7 call gpio_out_active 
+56d5 6848c649 fetcht 1 ,mem_dpi_button_gpio 
+56d6 6fe0c974 fetch 1 ,mem_mouse_dpikey_press_status 
+56d7 20205925 branch mouse_check_key_connect_gnd 
+
+mouse_3io6key_dpi_check_end:
+56d8 6848c649 fetcht 1 ,mem_dpi_button_gpio 
+56d9 204055b5 call mouse_gpio_config_input_pu 
+56da 202056c5 branch mouse_dpi_check_exit 
+
+mouse_dpi_check_end:
+56db 70487a00 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+56dc 70497400 jam 0 ,mem_mouse_dpikey_press_status 
+56dd 20600000 rtn 
+
+mouse_dpi_key_connect_gnd:
+56de 6fe0c974 fetch 1 ,mem_mouse_dpikey_press_status 
+56df 20205925 branch mouse_check_key_connect_gnd 
+
+mouse_dpi_down:
+56e0 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
+56e1 c1008000 rtneq dpi_button_state_down 
+56e2 70487a01 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
+56e3 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+56e4 c3940000 rtnbit1 mouse_enable_select_device_by_dpi_button 
+56e5 c39b0000 rtnbit1 mouse_enable_dpi_key_long_press_disconvery 
+56e6 202056f7 branch mouse_dpi_process 
+
+mouse_dpi_up:
+56e7 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
+56e8 c1000000 rtneq dpi_button_state_up 
+56e9 70487a00 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+56ea 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+56eb c29456ee bbit1 mouse_enable_select_device_by_dpi_button ,mouse_dpi_up_next 
+56ec c29b56ee bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_dpi_up_next 
+56ed 20600000 rtn 
+
+mouse_dpi_up_next:
+56ee 6fe0c87b fetch 1 ,mem_mouse_dpi_long_press_flag 
+56ef 243a56f2 nbranch mouse_dpi_up_after_long_press ,blank 
+56f0 6fe0c97d fetch 1 ,mem_select_device_count 
+56f1 245a56f7 ncall mouse_dpi_process ,blank 
+
+mouse_dpi_up_after_long_press:
+56f2 70487b00 jam 0 ,mem_mouse_dpi_long_press_flag 
+56f3 6fe0c4eb fetch 1 ,mem_ui_button_timeout 
+56f4 67e0c97d store 1 ,mem_select_device_count 
+56f5 67e0c97c store 1 ,mem_bt_discovery_count 
+56f6 20600000 rtn 
+
+mouse_dpi_process:
+56f7 44bdc00f bpatch patch0f_3 ,mem_patch0f 
+56f8 20405728 call mouse_dpi_ghost_check 
+56f9 20740000 rtn user 
+56fa 6fe0c690 fetch 1 ,mem_mouse_dpi 
+56fb 1fe20400 copy pdata ,temp 
+56fc 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+56fd c28bd704 bbit1 mouse_enable_double_dpi_key ,mouse_double_dpi_check 
+56fe 18427e00 copy temp ,pdata 
+56ff 1fe0fe01 increase 1 ,pdata 
+5700 1fe17e03 and pdata ,0x03 ,pdata 
+
+mouse_dpi_level_store:
+5701 67e0c690 store 1 ,mem_mouse_dpi 
+5702 20405744 call mouse_setting_dpi 
+5703 20205cac branch mouse_store_dpi_info_check 
+
+mouse_double_dpi_check:
+5704 6fe0c98a fetch 1 ,mem_dpi_another_button_down_enable 
+5705 243a5721 nbranch mouse_another_dpi_button_down ,blank 
+
+mouse_dpi_increase:
+5706 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5707 c28e5715 bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_increase_level_4 
+5708 18427e00 copy temp ,pdata 
+5709 c1008000 rtneq mouse_dpi_level2 
+
+mouse_dpi_increase_level:
+570a c0005711 beq mouse_dpi_level1 ,mouse_dpi_level_3 
+570b c001570f beq mouse_dpi_level3 ,mouse_dpi_level_2 
+570c 20600000 rtn 
+
+mouse_dpi_level_1:
+570d 58000002 setarg 2 
+570e 20205701 branch mouse_dpi_level_store 
+
+mouse_dpi_level_2:
+570f 58000000 setarg 0 
+5710 20205701 branch mouse_dpi_level_store 
+
+mouse_dpi_level_3:
+5711 58000001 setarg 1 
+5712 20205701 branch mouse_dpi_level_store 
+
+mouse_dpi_level_4:
+5713 58000003 setarg 3 
+5714 20205701 branch mouse_dpi_level_store 
+
+mouse_dpi_increase_level_4:
+5715 18427e00 copy temp ,pdata 
+5716 c1008000 rtneq mouse_dpi_level2 
+5717 c0005711 beq mouse_dpi_level1 ,mouse_dpi_level_3 
+5718 c0015713 beq mouse_dpi_level3 ,mouse_dpi_level_4 
+5719 c001d70f beq mouse_dpi_level4 ,mouse_dpi_level_2 
+571a 20600000 rtn 
+
+mouse_dpi_decrease_level_4:
+571b 18427e00 copy temp ,pdata 
+571c c1010000 rtneq mouse_dpi_level3 
+571d c0005713 beq mouse_dpi_level1 ,mouse_dpi_level_4 
+571e c000d70f beq mouse_dpi_level2 ,mouse_dpi_level_2 
+571f c001d70d beq mouse_dpi_level4 ,mouse_dpi_level_1 
+5720 20600000 rtn 
+
+mouse_another_dpi_button_down:
+
+mouse_dpi_decrease:
+5721 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5722 c28e571b bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_decrease_level_4 
+5723 18427e00 copy temp ,pdata 
+5724 c1010000 rtneq mouse_dpi_level3 
+
+mouse_dpi_decrease_level:
+5725 c000570d beq mouse_dpi_level1 ,mouse_dpi_level_1 
+5726 c000d70f beq mouse_dpi_level2 ,mouse_dpi_level_2 
+5727 20600000 rtn 
+
+mouse_dpi_ghost_check:
+5728 78547c00 disable user 
+5729 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+572a c3958000 rtnbit1 mouse_enable_dpi_key_connect_gnd 
+572b 20205eb1 branch mouse_ghost_key_value_check 
+
+mouse_dpi_key_check_long_press:
+572c 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+572d c2945730 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_select_device_by_dpi_button 
+572e c29b5737 bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_discovery_by_dpi_button 
+572f 20600000 rtn 
+
+mouse_select_device_by_dpi_button:
+5730 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
+5731 c1808000 rtnne dpi_button_state_down 
+5732 da60497d arg mem_select_device_count ,regc 
+5733 da405735 arg mouse_ready_reconnection_by_dpi_button ,regb 
+5734 202042e0 branch timer_single_step 
+
+mouse_ready_reconnection_by_dpi_button:
+5735 70487b01 jam 1 ,mem_mouse_dpi_long_press_flag 
+5736 20205ec6 branch mouse_ready_reconnection_by_button 
+
+mouse_discovery_by_dpi_button:
+5737 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
+5738 c1808000 rtnne dpi_button_state_down 
+5739 da60497c arg mem_bt_discovery_count ,regc 
+573a da40573c arg mouse_long_dpi_button_bt_discovery ,regb 
+573b 202042e0 branch timer_single_step 
+
+mouse_long_dpi_button_bt_discovery:
+573c 70487b01 jam 1 ,mem_mouse_dpi_long_press_flag 
+573d 20205ba3 branch mouse_long_button_bt_discovery 
+
+mouse_setting_dpi_4_level:
+573e 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+573f c38e0000 rtnbit1 mouse_enable_dpi_level_4 
+5740 6fe0c690 fetch 1 ,mem_mouse_dpi 
+5741 c1818000 rtnne mouse_dpi_level4 
+5742 70469000 jam mouse_dpi_level1 ,mem_mouse_dpi 
+5743 20600000 rtn 
+
+mouse_setting_dpi:
+5744 44be400f bpatch patch0f_4 ,mem_patch0f 
+5745 2040573e call mouse_setting_dpi_4_level 
+5746 2040613a call mouse_dpi_led_blink_delay 
+
+mouse_setting_sensor_type:
+5747 44bec00f bpatch patch0f_5 ,mem_patch0f 
+5748 6fe0c957 fetch 1 ,mem_config_sensor_type 
+5749 c006576b beq s201x ,mouse_seting_s201_dpi 
+574a c001d785 beq p3212 ,mouse_seting_3212_dpi 
+574b c005d799 beq ka8g2 ,mouse_seting_ka8g2_dpi 
+574c 6fe0c690 fetch 1 ,mem_mouse_dpi 
+574d c0005753 beq mouse_dpi_level1 ,mouse_set_cpi0 
+574e c000d751 beq mouse_dpi_level2 ,mouse_set_cpi1 
+574f c0015755 beq mouse_dpi_level3 ,mouse_set_cpi2 
+5750 c001d757 beq mouse_dpi_level4 ,mouse_set_cpi3 
+
+mouse_set_cpi1:
+5751 6848c869 fetcht 1 ,mem_320x_dpi_1 
+5752 20205758 branch mouse_dpi_store 
+
+mouse_set_cpi0:
+5753 6848c868 fetcht 1 ,mem_320x_dpi_0 
+5754 20205758 branch mouse_dpi_store 
+
+mouse_set_cpi2:
+5755 6848c86a fetcht 1 ,mem_320x_dpi_2 
+5756 20205758 branch mouse_dpi_store 
+
+mouse_set_cpi3:
+5757 6848c86b fetcht 1 ,mem_320x_dpi_3 
+
+mouse_dpi_store:
+5758 6fe0c957 fetch 1 ,mem_config_sensor_type 
+5759 c0025767 beq p3065_xy ,mouse_3065xy_set_dpi 
+575a c002d767 beq mx8650 ,mouse_3065xy_set_dpi 
+575b c0045769 beq ka8 ,mouse_ka8_set_dpi 
+575c c003d769 beq p6520 ,mouse_ka8_set_dpi 
+575d c0035767 beq p8009 ,mouse_3065xy_set_dpi 
+
+mouse_dpi_write:
+575e 6048c879 storet 1 ,mem_mouse_cpi_count 
+575f 58000006 setarg mouse_dpi_address 
+5760 204069e5 call twspi_read 
+5761 1fe104f8 and pdata ,0xf8 ,temp 
+5762 6fe0c879 fetch 1 ,mem_mouse_cpi_count 
+5763 9840fe00 iadd temp ,pdata 
+5764 1fed7e00 lshift8 pdata ,pdata 
+5765 1fe0fe06 add pdata ,mouse_dpi_address ,pdata 
+5766 202069e4 branch twspi_write 
+
+mouse_3065xy_set_dpi:
+5767 184085ff increase -1 ,temp 
+5768 2020575e branch mouse_dpi_write 
+
+mouse_ka8_set_dpi:
+5769 18408402 increase 2 ,temp 
+576a 2020575e branch mouse_dpi_write 
+
+mouse_seting_s201_dpi:
+576b 6fe0c690 fetch 1 ,mem_mouse_dpi 
+576c c000576f beq mouse_dpi_level1 ,mouse_set_s201_dpi_0 
+576d c000d775 beq mouse_dpi_level2 ,mouse_set_s201_dpi_2 
+576e c0015778 beq mouse_dpi_level3 ,mouse_set_s201_dpi_3 
+
+mouse_set_s201_dpi_0:
+576f 6fe0c874 fetch 1 ,mem_sensor_s201_dpi_0 
+5770 1fe22200 copy pdata ,rega 
+5771 2020577d branch mouse_dpi_s201_store 
+
+mouse_set_s201_dpi_1:
+5772 6fe0c875 fetch 1 ,mem_sensor_s201_dpi_1 
+5773 1fe22200 copy pdata ,rega 
+5774 2020577d branch mouse_dpi_s201_store 
+
+mouse_set_s201_dpi_2:
+5775 6fe0c876 fetch 1 ,mem_sensor_s201_dpi_2 
+5776 1fe22200 copy pdata ,rega 
+5777 2020577d branch mouse_dpi_s201_store 
+
+mouse_set_s201_dpi_3:
+5778 6fe0c877 fetch 1 ,mem_sensor_s201_dpi_3 
+5779 1fe22200 copy pdata ,rega 
+577a 2020577d branch mouse_dpi_s201_store 
+
+mouse_set_s201_dpi_4:
+577b 6fe0c878 fetch 1 ,mem_sensor_s201_dpi_4 
+577c 1fe22200 copy pdata ,rega 
+
+mouse_dpi_s201_store:
+577d 5800c309 setarg 0xc309 
+577e 204069e4 call twspi_write 
+577f 1a227e00 copy rega ,pdata 
+5780 1fed7e00 lshift8 pdata ,pdata 
+5781 1fe0fe23 add pdata ,0x23 ,pdata 
+5782 204069e4 call twspi_write 
+5783 58000009 setarg 0x0009 
+5784 202069e4 branch twspi_write 
+
+mouse_seting_3212_dpi:
+5785 6fe0c690 fetch 1 ,mem_mouse_dpi 
+5786 c000578c beq mouse_dpi_level1 ,mouse_set_p3212_cpi0 
+5787 c000d78a beq mouse_dpi_level2 ,mouse_set_p3212_cpi1 
+5788 c001578e beq mouse_dpi_level3 ,mouse_set_p3212_cpi2 
+5789 c001d790 beq mouse_dpi_level4 ,mouse_set_p3212_cpi3 
+
+mouse_set_p3212_cpi1:
+578a 6fe0c86d fetch 1 ,mem_3212_dpi_1 
+578b 20205791 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi0:
+578c 6fe0c86c fetch 1 ,mem_3212_dpi_0 
+578d 20205791 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi2:
+578e 6fe0c86e fetch 1 ,mem_3212_dpi_2 
+578f 20205791 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi3:
+5790 6fe0c86f fetch 1 ,mem_3212_dpi_3 
+
+mouse_p3212_dpi:
+5791 67e0c879 store 1 ,mem_mouse_cpi_count 
+5792 1fed7e00 lshift8 pdata ,pdata 
+5793 1fe22200 copy pdata ,rega 
+5794 1fe0fe0d add pdata ,mouse_p3212_dpi_xaddress ,pdata 
+5795 204069e4 call twspi_write 
+5796 1a227e00 copy rega ,pdata 
+5797 1fe0fe0e add pdata ,mouse_p3212_dpi_yaddress ,pdata 
+5798 202069e4 branch twspi_write 
+
+mouse_seting_ka8g2_dpi:
+5799 6fe0c690 fetch 1 ,mem_mouse_dpi 
+579a c00057a0 beq mouse_dpi_level1 ,mouse_set_pka8g2_cpi0 
+579b c000d79e beq mouse_dpi_level2 ,mouse_set_pka8g2_cpi1 
+579c c00157a2 beq mouse_dpi_level3 ,mouse_set_pka8g2_cpi2 
+579d c001d7a4 beq mouse_dpi_level4 ,mouse_set_pka8g2_cpi3 
+
+mouse_set_pka8g2_cpi1:
+579e 6fe0c871 fetch 1 ,mem_ka8g2_dpi_1 
+579f 20205791 branch mouse_p3212_dpi 
+
+mouse_set_pka8g2_cpi0:
+57a0 6fe0c870 fetch 1 ,mem_ka8g2_dpi_0 
+57a1 20205791 branch mouse_p3212_dpi 
+
+mouse_set_pka8g2_cpi2:
+57a2 6fe0c872 fetch 1 ,mem_ka8g2_dpi_2 
+57a3 20205791 branch mouse_p3212_dpi 
+
+mouse_set_pka8g2_cpi3:
+57a4 6fe0c873 fetch 1 ,mem_ka8g2_dpi_3 
+57a5 20205791 branch mouse_p3212_dpi 
+
+mouse_key:
+57a6 2040584c call mouse_check_firekey_gpio 
+57a7 6fe0c987 fetch 1 ,mem_fire_key_flag 
+57a8 243a5860 nbranch fire_key_press ,blank 
+57a9 6fe0c982 fetch 1 ,mem_fire_key_status 
+57aa 243a585f nbranch fire_key_process ,blank 
+57ab 20405888 call mouse_check_key_gpio 
+57ac 204057bc call mouse_ghost_key_check 
+57ad 2040552f call mouse_set_mult 
+57ae 204057b7 call mouse_24g_key 
+57af 1a227e00 copy rega ,pdata 
+57b0 6848c84e fetcht 1 ,mem_mouse_key_last 
+57b1 67e0c84e store 1 ,mem_mouse_key_last 
+57b2 67e0c846 store 1 ,mem_mouse_key 
+57b3 9842fe00 ixor temp ,pdata 
+57b4 1fe67c00 sub pdata ,0 ,null 
+57b5 20628000 rtn zero 
+57b6 20207dba branch enable_user 
+
+mouse_24g_key:
+57b7 c6930000 rtnmark0 mark_24g 
+57b8 1a227e00 copy rega ,pdata 
+57b9 207a0000 rtn blank 
+57ba 67e0c846 store 1 ,mem_mouse_key 
+57bb 20207dba branch enable_user 
+
+mouse_ghost_key_check:
+57bc 70497900 jam 0 ,mem_mouse_matrix_key_cow_count 
+57bd 70497a00 jam 0 ,mem_mouse_matrix_key_row_count 
+57be 70497b00 jam 0 ,mem_mouse_ghost_flag 
+57bf 1fe22400 copy pdata ,regb 
+57c0 6848c644 fetcht 1 ,mem_lbutton_gpio 
+57c1 6fe0c647 fetch 1 ,mem_bk_button_gpio 
+57c2 98467c00 isub temp ,null 
+57c3 2022d7cc branch mouse_matrix_ghost_key_l_bk ,zero 
+57c4 6fe0c648 fetch 1 ,mem_fw_button_gpio 
+57c5 98467c00 isub temp ,null 
+57c6 2022d7d1 branch mouse_matrix_ghost_key_l_fw ,zero 
+57c7 6848c645 fetcht 1 ,mem_mbutton_gpio 
+57c8 6fe0c647 fetch 1 ,mem_bk_button_gpio 
+57c9 98467c00 isub temp ,null 
+57ca 2022d7e0 branch mouse_ghost_key_mbk_rfw ,zero 
+57cb 202057e3 branch mouse_ghost_key_mfw_rbk 
+
+mouse_matrix_ghost_key_l_bk:
+57cc 6848c645 fetcht 1 ,mem_mbutton_gpio 
+57cd 6fe0c648 fetch 1 ,mem_fw_button_gpio 
+57ce 98467c00 isub temp ,null 
+57cf 2022d7d6 branch mouse_ghost_key_lbk_mfw ,zero 
+57d0 202057d9 branch mouse_ghost_key_lbk_rfw 
+
+mouse_matrix_ghost_key_l_fw:
+57d1 6848c645 fetcht 1 ,mem_mbutton_gpio 
+57d2 6fe0c647 fetch 1 ,mem_bk_button_gpio 
+57d3 98467c00 isub temp ,null 
+57d4 2022d7db branch mouse_ghost_key_lfw_mbk ,zero 
+57d5 202057de branch mouse_ghost_key_lfw_rbk 
+
+mouse_ghost_key_lbk_mfw:
+57d6 204057ef call mouse_ghost_key_check_l_bk 
+57d7 204057fb call mouse_ghost_key_check_m_fw 
+57d8 202057e5 branch mouse_ghost_key_check_next 
+
+mouse_ghost_key_lbk_rfw:
+57d9 204057ef call mouse_ghost_key_check_l_bk 
+57da 202057e1 branch mouse_ghost_key_rfw 
+
+mouse_ghost_key_lfw_mbk:
+57db 204057f8 call mouse_ghost_key_check_l_fw 
+57dc 204057f2 call mouse_ghost_key_check_m_bk 
+57dd 202057e5 branch mouse_ghost_key_check_next 
+
+mouse_ghost_key_lfw_rbk:
+57de 204057f8 call mouse_ghost_key_check_l_fw 
+57df 202057e4 branch mouse_ghost_key_rbk 
+
+mouse_ghost_key_mbk_rfw:
+57e0 204057f2 call mouse_ghost_key_check_m_bk 
+
+mouse_ghost_key_rfw:
+57e1 204057fe call mouse_ghost_key_check_r_fw 
+57e2 202057e5 branch mouse_ghost_key_check_next 
+
+mouse_ghost_key_mfw_rbk:
+57e3 204057fb call mouse_ghost_key_check_m_fw 
+
+mouse_ghost_key_rbk:
+57e4 204057f5 call mouse_ghost_key_check_r_bk 
+
+mouse_ghost_key_check_next:
+57e5 20405801 call mouse_ghost_key_check_bk_fw 
+57e6 20405804 call mouse_ghost_key_check_lmr 
+57e7 6fe0c97a fetch 1 ,mem_mouse_matrix_key_row_count 
+57e8 207a0000 rtn blank 
+57e9 6fe0c979 fetch 1 ,mem_mouse_matrix_key_cow_count 
+57ea 207a0000 rtn blank 
+57eb 70497b01 jam 1 ,mem_mouse_ghost_flag 
+57ec 6fe0c84e fetch 1 ,mem_mouse_key_last 
+57ed 1fe22200 copy pdata ,rega 
+57ee 20600000 rtn 
+
+mouse_ghost_key_check_l_bk:
+57ef 1a417e09 and regb ,mouse_l_bk_button ,pdata 
+57f0 c004d80c beq mouse_l_bk_button ,mouse_matrix_cow_more_than_one_key 
+57f1 20600000 rtn 
+
+mouse_ghost_key_check_m_bk:
+57f2 1a417e09 and regb ,mouse_l_bk_button ,pdata 
+57f3 c009580c beq mouse_m_bk_button ,mouse_matrix_cow_more_than_one_key 
+57f4 20600000 rtn 
+
+mouse_ghost_key_check_r_bk:
+57f5 1a417e09 and regb ,mouse_l_bk_button ,pdata 
+57f6 c005580c beq mouse_r_bk_button ,mouse_matrix_cow_more_than_one_key 
+57f7 20600000 rtn 
+
+mouse_ghost_key_check_l_fw:
+57f8 1a417e09 and regb ,mouse_l_bk_button ,pdata 
+57f9 c008d80c beq mouse_l_fw_button ,mouse_matrix_cow_more_than_one_key 
+57fa 20600000 rtn 
+
+mouse_ghost_key_check_m_fw:
+57fb 1a417e14 and regb ,mouse_m_fw_button ,pdata 
+57fc c00a580c beq mouse_m_fw_button ,mouse_matrix_cow_more_than_one_key 
+57fd 20600000 rtn 
+
+mouse_ghost_key_check_r_fw:
+57fe 1a417e14 and regb ,mouse_m_fw_button ,pdata 
+57ff c009580c beq mouse_r_fw_button ,mouse_matrix_cow_more_than_one_key 
+5800 20600000 rtn 
+
+mouse_ghost_key_check_bk_fw:
+5801 1a417e18 and regb ,mouse_bk_fw_button ,pdata 
+5802 c00c580a beq mouse_bk_fw_button ,mouse_matrix_row_more_than_one_key 
+5803 20600000 rtn 
+
+mouse_ghost_key_check_lmr:
+5804 18417e07 and temp ,mouse_lmr_button ,pdata 
+5805 c001d80a beq mouse_lr_button ,mouse_matrix_row_more_than_one_key 
+5806 c002d80a beq mouse_lm_button ,mouse_matrix_row_more_than_one_key 
+5807 c003580a beq mouse_rm_button ,mouse_matrix_row_more_than_one_key 
+5808 c003d80a beq mouse_lmr_button ,mouse_matrix_row_more_than_one_key 
+5809 20600000 rtn 
+
+mouse_matrix_row_more_than_one_key:
+580a 70497a01 jam 1 ,mem_mouse_matrix_key_row_count 
+580b 20600000 rtn 
+
+mouse_matrix_cow_more_than_one_key:
+580c 70497901 jam 1 ,mem_mouse_matrix_key_cow_count 
+580d 20600000 rtn 
+
+mouse_dpi_another_gpio_check:
+580e 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+580f c40b8000 rtnbit0 mouse_enable_double_dpi_key 
+5810 c3165816 bbit0 mouse_enable_another_dpi_key_connect_gnd ,mouse_dpi_another_gpio_connect_vin_check 
+
+mouse_dpi_another_gpio_connect_gnd_check:
+5811 6fe0c658 fetch 1 ,mem_dpi_another_button_gpio 
+5812 20405943 call mouse_gpio_config_output_high 
+5813 20405824 call mouse_dpi_another_check 
+5814 6848c658 fetcht 1 ,mem_dpi_another_button_gpio 
+5815 202055b5 branch mouse_gpio_config_input_pu 
+
+mouse_dpi_another_gpio_connect_vin_check:
+5816 6fe0c658 fetch 1 ,mem_dpi_another_button_gpio 
+5817 20405946 call mouse_gpio_config_output_low 
+5818 70498b00 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+5819 6848c658 fetcht 1 ,mem_dpi_another_button_gpio 
+581a 6fe0c988 fetch 1 ,mem_dpi_another_press_status 
+581b 2040583d call mouse_check_key_connect_vin_new 
+581c 20405828 call mouse_dpi_another_state_check 
+581d 6848c658 fetcht 1 ,mem_dpi_another_button_gpio 
+581e 202055b5 branch mouse_gpio_config_input_pu 
+
+mouse_dpi_another_down_new:
+581f 204055b5 call mouse_gpio_config_input_pu 
+5820 6fe0c989 fetch 1 ,mem_dpi_another_button_state 
+5821 c1008000 rtneq dpi_button_state_down 
+5822 70498901 jam dpi_button_state_down ,mem_dpi_another_button_state 
+5823 202056f7 branch mouse_dpi_process 
+
+mouse_dpi_another_check:
+5824 70498b00 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+5825 6848c658 fetcht 1 ,mem_dpi_another_button_gpio 
+5826 6fe0c988 fetch 1 ,mem_dpi_another_press_status 
+5827 20405833 call mouse_check_key_connect_gnd_new 
+
+mouse_dpi_another_state_check:
+5828 67e0c988 store 1 ,mem_dpi_another_press_status 
+5829 6fe0c98a fetch 1 ,mem_dpi_another_button_down_enable 
+582a 203a582f branch mouse_dpi_another_up ,blank 
+
+mouse_dpi_another_down:
+582b 6fe0c989 fetch 1 ,mem_dpi_another_button_state 
+582c c1008000 rtneq dpi_button_state_down 
+582d 70498901 jam dpi_button_state_down ,mem_dpi_another_button_state 
+582e 202056f7 branch mouse_dpi_process 
+
+mouse_dpi_another_up:
+582f 6fe0c989 fetch 1 ,mem_dpi_another_button_state 
+5830 c1000000 rtneq dpi_button_state_up 
+5831 70498900 jam dpi_button_state_up ,mem_dpi_another_button_state 
+5832 20600000 rtn 
+
+mouse_check_key_connect_gnd_new:
+5833 1fe3fe00 lshift pdata ,pdata 
+5834 1fe22400 copy pdata ,regb 
+5835 20406ee6 call gpio_get_bit 
+5836 7920a400 setflag true ,0 ,regb 
+5837 1a417e07 and regb ,0x07 ,pdata 
+5838 6848c98b fetcht 1 ,mem_mouse_key_temp_patch 
+5839 18420e00 copy temp ,queue 
+583a c003d848 beq 0x07 ,mouse_another_dpi_key_press 
+583b c000584a beq 0x00 ,mouse_another_dpi_key_release 
+583c 20600000 rtn 
+
+mouse_check_key_connect_vin_new:
+583d 1fe3fe00 lshift pdata ,pdata 
+583e 1fe22400 copy pdata ,regb 
+583f 204055b1 call mouse_gpio_config_input_pd 
+5840 20406ee6 call gpio_get_bit 
+5841 7920a400 setflag true ,0 ,regb 
+5842 1a417e07 and regb ,0x07 ,pdata 
+5843 6848c98b fetcht 1 ,mem_mouse_key_temp_patch 
+5844 18420e00 copy temp ,queue 
+5845 c003d848 beq 0x07 ,mouse_another_dpi_key_press 
+5846 c000584a beq 0x00 ,mouse_another_dpi_key_release 
+5847 20600000 rtn 
+
+mouse_another_dpi_key_press:
+5848 70498a01 jam 1 ,mem_dpi_another_button_down_enable 
+5849 20600000 rtn 
+
+mouse_another_dpi_key_release:
+584a 70498a00 jam 0 ,mem_dpi_another_button_down_enable 
+584b 20600000 rtn 
+
+mouse_check_firekey_gpio:
+584c da400000 arg 0 ,regb 
+584d 6fe0c657 fetch 1 ,mem_firebutton_gpio 
+584e c17f8000 rtneq gpio_disable 
+584f 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5850 c3175859 bbit0 mouse_enable_fire_key_connect_gnd ,mouse_check_firekey_connect_vin 
+
+mouse_check_firekey_connect_gnd:
+5851 6848c657 fetcht 1 ,mem_firebutton_gpio 
+5852 204055b5 call mouse_gpio_config_input_pu 
+5853 6848c657 fetcht 1 ,mem_firebutton_gpio 
+5854 20406ee6 call gpio_get_bit 
+5855 7920a400 setflag true ,0 ,regb 
+
+mouse_firekey_state_store:
+5856 1a427e00 copy regb ,pdata 
+5857 67e0c987 store 1 ,mem_fire_key_flag 
+5858 20600000 rtn 
+
+mouse_check_firekey_connect_vin:
+5859 6848c657 fetcht 1 ,mem_firebutton_gpio 
+585a 204055b1 call mouse_gpio_config_input_pd 
+585b 6848c657 fetcht 1 ,mem_firebutton_gpio 
+585c 20406ee6 call gpio_get_bit 
+585d 7d20a400 nsetflag true ,0 ,regb 
+585e 20205856 branch mouse_firekey_state_store 
+
+fire_key_process:
+585f c0025878 beq 4 ,fire_key_process_end 
+
+fire_key_press:
+5860 2040587b call firekey_clkn_bt_timer_check 
+5861 6fe24983 fetch 4 ,mem_fire_key_delay 
+5862 d84000a0 arg 0xa0 ,temp 
+5863 98408400 iadd temp ,temp 
+5864 1c427e00 copy clkn_bt ,pdata 
+5865 98467c00 isub temp ,null 
+5866 24610000 nrtn positive 
+5867 67e24983 store 4 ,mem_fire_key_delay 
+5868 6fe0c982 fetch 1 ,mem_fire_key_status 
+5869 c000586e beq 0 ,fire_key_process_start 
+586a c000d871 beq 1 ,fire_key_process_release1 
+586b c0015874 beq 2 ,fire_key_process_start2 
+586c c001d876 beq 3 ,fire_key_process_release2 
+586d 20600000 rtn 
+
+fire_key_process_start:
+586e 70498201 jam 1 ,mem_fire_key_status 
+
+fire_key_down:
+586f 70484601 jam 1 ,mem_mouse_key 
+5870 20207dba branch enable_user 
+
+fire_key_process_release1:
+5871 70498202 jam 2 ,mem_fire_key_status 
+
+fire_key_release:
+5872 70484600 jam 0 ,mem_mouse_key 
+5873 20207dba branch enable_user 
+
+fire_key_process_start2:
+5874 70498203 jam 3 ,mem_fire_key_status 
+5875 2020586f branch fire_key_down 
+
+fire_key_process_release2:
+5876 70498200 jam 0 ,mem_fire_key_status 
+5877 20205872 branch fire_key_release 
+
+fire_key_process_end:
+5878 70498200 jam 0 ,mem_fire_key_status 
+5879 70484600 jam 0 ,mem_mouse_key 
+587a 20600000 rtn 
+
+firekey_clkn_bt_timer_check:
+587b 684a4983 fetcht 4 ,mem_fire_key_delay 
+587c 1c427e00 copy clkn_bt ,pdata 
+587d 98467c00 isub temp ,null 
+587e 24415880 ncall firekey_clkn_bt_timer_timeout ,positive 
+587f 20600000 rtn 
+
+firekey_clkn_bt_timer_timeout:
+5880 58000000 setarg 0 
+5881 67e24983 store 4 ,mem_fire_key_delay 
+5882 20600000 rtn 
+
+mouse_key_check_once:
+5883 20405895 call mouse_check_key_gpio_once 
+5884 20405888 call mouse_check_key_gpio 
+5885 58000000 setarg 0x00 
+5886 67e1c96f store 3 ,mem_mouse_lkey_press_status 
+5887 20600000 rtn 
+
+mouse_check_key_gpio:
+5888 44bf400f bpatch patch0f_6 ,mem_patch0f 
+5889 6fe0c73f fetch 1 ,mem_sensor_shutdown_flag 
+588a 245a5895 ncall mouse_check_key_gpio_once ,blank 
+588b da200000 arg 0 ,rega 
+588c 20405898 call mouse_check_lkey_gpio 
+588d 204058a1 call mouse_check_rkey_gpio 
+588e 204058aa call mouse_check_mkey_gpio 
+588f 204058b3 call mouse_check_bkkey_gpio 
+5890 204058cf call mouse_check_fwkey_gpio 
+5891 2040584c call mouse_check_firekey_gpio 
+5892 204058ec call mouse_check_customerkey_gpio 
+5893 1a227e00 copy rega ,pdata 
+5894 20600000 rtn 
+
+mouse_check_key_gpio_once:
+5895 58030303 setarg 0x030303 
+5896 67e1c96f store 3 ,mem_mouse_lkey_press_status 
+5897 20600000 rtn 
+
+mouse_check_lkey_gpio:
+5898 6fe0c644 fetch 1 ,mem_lbutton_gpio 
+5899 20405943 call mouse_gpio_config_output_high 
+589a 70497700 jam mouse_l_key ,mem_mouse_key_temp 
+589b 6848c644 fetcht 1 ,mem_lbutton_gpio 
+589c 6fe0c96f fetch 1 ,mem_mouse_lkey_press_status 
+589d 20405925 call mouse_check_key_connect_gnd 
+589e 67e0c96f store 1 ,mem_mouse_lkey_press_status 
+589f 6848c644 fetcht 1 ,mem_lbutton_gpio 
+58a0 202055b5 branch mouse_gpio_config_input_pu 
+
+mouse_check_rkey_gpio:
+58a1 6fe0c646 fetch 1 ,mem_rbutton_gpio 
+58a2 20405943 call mouse_gpio_config_output_high 
+58a3 70497701 jam mouse_r_key ,mem_mouse_key_temp 
+58a4 6848c646 fetcht 1 ,mem_rbutton_gpio 
+58a5 6fe0c970 fetch 1 ,mem_mouse_rkey_press_status 
+58a6 20405925 call mouse_check_key_connect_gnd 
+58a7 67e0c970 store 1 ,mem_mouse_rkey_press_status 
+58a8 6848c646 fetcht 1 ,mem_rbutton_gpio 
+58a9 202055b5 branch mouse_gpio_config_input_pu 
+
+mouse_check_mkey_gpio:
+58aa 6fe0c645 fetch 1 ,mem_mbutton_gpio 
+58ab 20405943 call mouse_gpio_config_output_high 
+58ac 70497702 jam mouse_m_key ,mem_mouse_key_temp 
+58ad 6848c645 fetcht 1 ,mem_mbutton_gpio 
+58ae 6fe0c971 fetch 1 ,mem_mouse_mkey_press_status 
+58af 20405925 call mouse_check_key_connect_gnd 
+58b0 67e0c971 store 1 ,mem_mouse_mkey_press_status 
+58b1 6848c645 fetcht 1 ,mem_mbutton_gpio 
+58b2 202055b5 branch mouse_gpio_config_input_pu 
+
+mouse_check_bkkey_gpio:
+58b3 6fe0c647 fetch 1 ,mem_bk_button_gpio 
+58b4 c17f8000 rtneq gpio_disable 
+58b5 70497703 jam mouse_bk_key ,mem_mouse_key_temp 
+58b6 6fe0c972 fetch 1 ,mem_mouse_bkkey_press_status 
+58b7 1fe22600 copy pdata ,regc 
+58b8 6848c647 fetcht 1 ,mem_bk_button_gpio 
+58b9 6fe0c654 fetch 1 ,mem_matrix_public_gpio 
+58ba c07fd8c8 beq gpio_disable ,mouse_3io6key_bk_check 
+58bb 20406ee6 call gpio_get_bit 
+58bc 2020d8c4 branch mouse_check_bk_button_connect_gnd ,true 
+58bd 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+58be 20406ef7 call gpio_out_active 
+58bf 6848c647 fetcht 1 ,mem_bk_button_gpio 
+58c0 6fe0c972 fetch 1 ,mem_mouse_bkkey_press_status 
+58c1 20405925 call mouse_check_key_connect_gnd 
+
+mouse_check_bkkey_gpio_end:
+58c2 67e0c972 store 1 ,mem_mouse_bkkey_press_status 
+58c3 202058df branch mouse_matrix_public_gpio_reset 
+
+mouse_check_bk_button_connect_gnd:
+58c4 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+58c5 6fe0c972 fetch 1 ,mem_mouse_bkkey_press_status 
+58c6 20405925 call mouse_check_key_connect_gnd 
+58c7 202058c2 branch mouse_check_bkkey_gpio_end 
+
+mouse_3io6key_bk_check:
+58c8 6fe0c647 fetch 1 ,mem_bk_button_gpio 
+58c9 20405946 call mouse_gpio_config_output_low 
+58ca 6848c647 fetcht 1 ,mem_bk_button_gpio 
+58cb 20405931 call mouse_3io6key_check 
+58cc 67e0c972 store 1 ,mem_mouse_bkkey_press_status 
+58cd 6848c647 fetcht 1 ,mem_bk_button_gpio 
+58ce 202055b5 branch mouse_gpio_config_input_pu 
+
+mouse_check_fwkey_gpio:
+58cf 6fe0c648 fetch 1 ,mem_fw_button_gpio 
+58d0 c17f8000 rtneq gpio_disable 
+58d1 70497704 jam mouse_fw_key ,mem_mouse_key_temp 
+58d2 6fe0c973 fetch 1 ,mem_mouse_fwkey_press_status 
+58d3 1fe22600 copy pdata ,regc 
+58d4 6848c648 fetcht 1 ,mem_fw_button_gpio 
+58d5 6fe0c654 fetch 1 ,mem_matrix_public_gpio 
+58d6 c07fd8e5 beq gpio_disable ,mouse_3io6key_fw_check 
+58d7 20406ee6 call gpio_get_bit 
+58d8 2020d8e1 branch mouse_check_fw_button_connect_gnd ,true 
+58d9 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+58da 20406ef7 call gpio_out_active 
+58db 6848c648 fetcht 1 ,mem_fw_button_gpio 
+58dc 6fe0c973 fetch 1 ,mem_mouse_fwkey_press_status 
+58dd 20405925 call mouse_check_key_connect_gnd 
+
+mouse_check_fwkey_gpio_end:
+58de 67e0c973 store 1 ,mem_mouse_fwkey_press_status 
+
+mouse_matrix_public_gpio_reset:
+58df 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+58e0 202055b5 branch mouse_gpio_config_input_pu 
+
+mouse_check_fw_button_connect_gnd:
+58e1 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+58e2 6fe0c973 fetch 1 ,mem_mouse_fwkey_press_status 
+58e3 20405925 call mouse_check_key_connect_gnd 
+58e4 202058de branch mouse_check_fwkey_gpio_end 
+
+mouse_3io6key_fw_check:
+58e5 6fe0c648 fetch 1 ,mem_fw_button_gpio 
+58e6 20405946 call mouse_gpio_config_output_low 
+58e7 6848c648 fetcht 1 ,mem_fw_button_gpio 
+58e8 20405931 call mouse_3io6key_check 
+58e9 67e0c973 store 1 ,mem_mouse_fwkey_press_status 
+58ea 6848c648 fetcht 1 ,mem_fw_button_gpio 
+58eb 202055b5 branch mouse_gpio_config_input_pu 
+
+mouse_check_customerkey_gpio:
+58ec 70496c00 jam 0 ,mem_customer_key 
+58ed 6fe0c656 fetch 1 ,mem_customer_key_gpio 
+58ee c17f8000 rtneq gpio_disable 
+58ef 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+58f0 c40b0000 rtnbit0 mouse_enable_keyboard 
+58f1 c297d8fd bbit1 mouse_enable_customer_key_connect_vin_or_matrix ,mouse_customer_key_connect_vin 
+
+mouse_customer_key_connect_gnd:
+58f2 70497707 jam mouse_customer_key ,mem_mouse_key_temp 
+58f3 6848c656 fetcht 1 ,mem_customer_key_gpio 
+58f4 6fe0c976 fetch 1 ,mem_mouse_customerkey_press_status 
+58f5 20405925 call mouse_check_key_connect_gnd 
+58f6 67e0c976 store 1 ,mem_mouse_customerkey_press_status 
+
+mouse_check_customerkey_gpio_next:
+58f7 1a227e00 copy rega ,pdata 
+58f8 c283d917 bbit1 mouse_customer_key ,mouse_customerkey_press 
+58f9 2040591a call mouse_customerkey_release 
+
+mouse_check_customerkey_gpio_exit:
+58fa 6fe0c96d fetch 1 ,mem_customer_data_trigger 
+58fb 67e0c96e store 1 ,mem_customer_data_trigger_last 
+58fc 20600000 rtn 
+
+mouse_customer_key_connect_vin:
+58fd 70497707 jam mouse_customer_key ,mem_mouse_key_temp 
+58fe 6fe0c976 fetch 1 ,mem_mouse_customerkey_press_status 
+58ff 1fe22600 copy pdata ,regc 
+5900 6848c656 fetcht 1 ,mem_customer_key_gpio 
+5901 6fe0c654 fetch 1 ,mem_matrix_public_gpio 
+5902 c07fd90f beq gpio_disable ,mouse_3io6key_customer_key_check_vin 
+5903 20406ee6 call gpio_get_bit 
+5904 2020d90b branch mouse_check_customer_button_connect_gnd ,true 
+5905 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+5906 20406ef7 call gpio_out_active 
+5907 6848c656 fetcht 1 ,mem_customer_key_gpio 
+5908 6fe0c976 fetch 1 ,mem_mouse_customerkey_press_status 
+5909 20405925 call mouse_check_key_connect_gnd 
+590a 20205913 branch mouse_check_customerkey_gpio_over 
+
+mouse_check_customer_button_connect_gnd:
+590b 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+590c 6fe0c976 fetch 1 ,mem_mouse_customerkey_press_status 
+590d 20405925 call mouse_check_key_connect_gnd 
+590e 20205913 branch mouse_check_customerkey_gpio_over 
+
+mouse_3io6key_customer_key_check_vin:
+590f 6fe0c656 fetch 1 ,mem_customer_key_gpio 
+5910 20405946 call mouse_gpio_config_output_low 
+5911 6848c656 fetcht 1 ,mem_customer_key_gpio 
+5912 20405931 call mouse_3io6key_check 
+
+mouse_check_customerkey_gpio_over:
+5913 67e0c976 store 1 ,mem_mouse_customerkey_press_status 
+5914 204058f7 call mouse_check_customerkey_gpio_next 
+5915 6848c656 fetcht 1 ,mem_customer_key_gpio 
+5916 202055b5 branch mouse_gpio_config_input_pu 
+
+mouse_customerkey_press:
+5917 70496d01 jam 1 ,mem_customer_data_trigger 
+5918 2040591d call mouse_customer_key_need_send 
+5919 202058fa branch mouse_check_customerkey_gpio_exit 
+
+mouse_customerkey_release:
+591a 70496d00 jam 0 ,mem_customer_data_trigger 
+591b 6fe0c96e fetch 1 ,mem_customer_data_trigger_last 
+591c 207a0000 rtn blank 
+
+mouse_customer_key_need_send:
+591d 70496c01 jam 1 ,mem_customer_key 
+591e 20600000 rtn 
+
+mouse_check_matrix_button_connect_gnd:
+591f 20406ee6 call gpio_get_bit 
+5920 6848c977 fetcht 1 ,mem_mouse_key_temp 
+5921 18420e00 copy temp ,queue 
+5922 2020d92f branch mouse_key_press ,true 
+
+mouse_key_release:
+5923 f93fa200 qset0 rega 
+5924 20600000 rtn 
+
+mouse_check_key_connect_gnd:
+5925 1fe3fe00 lshift pdata ,pdata 
+5926 1fe22400 copy pdata ,regb 
+5927 20406ee6 call gpio_get_bit 
+5928 7920a400 setflag true ,0 ,regb 
+
+mouse_check_key_connect_gnd_1:
+5929 1a417e07 and regb ,0x07 ,pdata 
+
+mouse_check_key_connect_gnd_next:
+592a 6848c977 fetcht 1 ,mem_mouse_key_temp 
+592b 18420e00 copy temp ,queue 
+592c c003d92f beq 0x07 ,mouse_key_press 
+592d c0005923 beq 0x00 ,mouse_key_release 
+592e 20600000 rtn 
+
+mouse_key_press:
+592f f9202200 qset1 rega 
+5930 20600000 rtn 
+
+mouse_3io6key_check:
+5931 44bfc00f bpatch patch0f_7 ,mem_patch0f 
+5932 1a627e00 copy regc ,pdata 
+5933 67e0c978 store 1 ,mem_mouse_key_status 
+5934 1fe3fe00 lshift pdata ,pdata 
+5935 1fe22400 copy pdata ,regb 
+5936 18422600 copy temp ,regc 
+5937 204055b1 call mouse_gpio_config_input_pd 
+5938 1a620400 copy regc ,temp 
+5939 20406ee6 call gpio_get_bit 
+593a 7d20a400 nsetflag true ,0 ,regb 
+593b 2040593d call mouse_check_press 
+593c 2020592a branch mouse_check_key_connect_gnd_next 
+
+mouse_check_press:
+593d 6848c978 fetcht 1 ,mem_mouse_key_status 
+593e 18410401 and_into 0x01 ,temp 
+593f 1a417e01 and regb ,0x01 ,pdata 
+5940 98467c00 isub temp ,null 
+5941 2422dabc nbranch mouse_current_mult_update ,zero 
+5942 20600000 rtn 
+
+mouse_gpio_config_output_high:
+5943 c17f8000 rtneq gpio_disable 
+5944 d840003f arg gpcfg_output_high ,temp 
+5945 20206f21 branch gpio_config_function_int 
+
+mouse_gpio_config_output_low:
+5946 c17f8000 rtneq gpio_disable 
+5947 d840003e arg gpcfg_output_low ,temp 
+5948 20206f21 branch gpio_config_function_int 
+
+mouse_init_sunt:
+5949 44c04010 bpatch patch10_0 ,mem_patch10 
+594a 204055f6 call mouse_sensor_spi_init 
+594b 20758000 rtn wake 
+
+mouse_init_sensor_wakeup:
+594c 204059e7 call mouse_sensor_poweron 
+
+mouse_init_sensor:
+594d 44c0c010 bpatch patch10_1 ,mem_patch10 
+594e 20405958 call mouse_read_sensor_id 
+594f c018595f beq p32xx_id1 ,mouse_init_p32xx_id2_judge 
+5950 c018d9c6 beq p3065_id1 ,mouse_init_p3065 
+5951 c02c59cf beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
+5952 20405955 call mouse_twspi_reset 
+5953 20001af4 nop 6900 
+5954 2020594d branch mouse_init_sensor 
+
+mouse_twspi_reset:
+5955 6848c64c fetcht 1 ,mem_mouse_sensor_sclk_gpio 
+5956 204069c7 call twspi_reset 
+5957 202055fb branch mouse_spid_init_pin 
+
+mouse_read_sensor_id:
+5958 58000001 setarg pan_reg_pid_h 
+5959 204069e5 call twspi_read 
+595a 67e0c85a store 1 ,mem_sensor_id2 
+595b 58000000 setarg pan_reg_pid_l 
+595c 204069e5 call twspi_read 
+595d 67e0c859 store 1 ,mem_sensor_id1 
+595e 20600000 rtn 
+
+mouse_init_p32xx_id2_judge:
+595f 6fe0c85a fetch 1 ,mem_sensor_id2 
+5960 c02d596e beq p_mx8650 ,mouse_mx8650_init_param 
+5961 c06c5974 beq p8009_id2 ,mouse_8009_init_param 
+5962 c068d968 beq p3205_tj3t_id2 ,mouse_s210x_3205_3t_judge 
+5963 c069598c beq p3204_tj3l_id2 ,mouse_3204_3l_init_param 
+5964 c0015993 beq p3212_id2 ,mouse_3212_init_param 
+5965 c02a599c beq pka8_id2 ,mouse_ka8_init_param_check 
+5966 c02859c3 beq p6520a_id2 ,mouse_p6520_init_param 
+5967 2020594d branch mouse_init_sensor 
+
+mouse_s210x_3205_3t_judge:
+5968 58000049 setarg 0x49 
+5969 204069e5 call twspi_read 
+596a c050d96c beq 0xa1 ,mouse_s201x_init_param 
+596b 20205983 branch mouse_3205_3t_init_param 
+
+mouse_s201x_init_param:
+596c 7049570c jam s201x ,mem_config_sensor_type 
+596d 20600000 rtn 
+
+mouse_mx8650_init_param:
+596e 70495705 jam mx8650 ,mem_config_sensor_type 
+596f 204059da call mouse_sensor_reset 
+5970 20407c95 call delay_10ms 
+5971 da6048d6 arg mem_sensor_8650_init ,regc 
+5972 20405995 call mouse_sensor_wr_seq 
+5973 20205747 branch mouse_setting_sensor_type 
+
+mouse_8009_init_param:
+5974 58000016 setarg 0x16 
+5975 204069e5 call twspi_read 
+5976 1fe67cbd sub pdata ,0xbd ,null 
+5977 2422d949 nbranch mouse_init_sunt ,zero 
+5978 58000019 setarg 0x19 
+5979 204069e5 call twspi_read 
+597a 1fe67c55 sub pdata ,0x55 ,null 
+597b 2422d949 nbranch mouse_init_sunt ,zero 
+597c 5800001b setarg 0x1b 
+597d 204069e5 call twspi_read 
+597e 1fe67c1d sub pdata ,0x1d ,null 
+597f 2422d949 nbranch mouse_init_sunt ,zero 
+5980 70495706 jam p8009 ,mem_config_sensor_type 
+5981 da60491a arg mem_sensor_8009_init ,regc 
+5982 20205995 branch mouse_sensor_wr_seq 
+
+mouse_3205_3t_init_param:
+5983 70495700 jam p3205 ,mem_config_sensor_type 
+5984 da604890 arg mem_sensor_3205_init ,regc 
+5985 20405995 call mouse_sensor_wr_seq 
+5986 da60489a arg mem_sensor_32xx_init ,regc 
+5987 20405995 call mouse_sensor_wr_seq 
+5988 58000943 setarg 0x0943 
+5989 204069e4 call twspi_write 
+598a da6048b4 arg mem_sensor_32xx_init_1 ,regc 
+598b 20205995 branch mouse_sensor_wr_seq 
+
+mouse_3204_3l_init_param:
+598c 70495702 jam p3204 ,mem_config_sensor_type 
+598d da604886 arg mem_sensor_3204_init ,regc 
+598e 20405995 call mouse_sensor_wr_seq 
+598f da60489a arg mem_sensor_32xx_init ,regc 
+5990 20405995 call mouse_sensor_wr_seq 
+5991 da6048b4 arg mem_sensor_32xx_init_1 ,regc 
+5992 20205995 branch mouse_sensor_wr_seq 
+
+mouse_3212_init_param:
+5993 70495703 jam p3212 ,mem_config_sensor_type 
+5994 da60487c arg mem_sensor_3212_init ,regc 
+
+mouse_sensor_wr_seq:
+5995 efe10013 ifetch 2 ,regc 
+5996 d840ffff arg 0xffff ,temp 
+5997 98467c00 isub temp ,null 
+5998 20628000 rtn zero 
+5999 204069e4 call twspi_write 
+599a 1a60a602 increase 2 ,regc 
+599b 20205995 branch mouse_sensor_wr_seq 
+
+mouse_ka8_init_param_check:
+599c 204059d8 call mouse_sensor_disable_wp 
+599d 58009a5b setarg 0x9a5b 
+599e 204069e4 call twspi_write 
+599f 5800000d setarg 0x0d 
+59a0 204069e5 call twspi_read 
+59a1 1fe67c12 sub pdata ,0x12 ,null 
+59a2 2022d9b0 branch mouse_ka8ul_init_param ,zero 
+59a3 1fe67c0a sub pdata ,0x0a ,null 
+59a4 2422d9b3 nbranch mouse_ka8hd_sensor_judge ,zero 
+59a5 5800000e setarg 0x0e 
+59a6 204069e5 call twspi_read 
+59a7 1fe67ce5 sub pdata ,0xe5 ,null 
+59a8 2422d94d nbranch mouse_init_sensor ,zero 
+59a9 58000010 setarg 0x10 
+59aa 204069e5 call twspi_read 
+59ab 1fe67ca5 sub pdata ,0xa5 ,null 
+59ac 2022d9b0 branch mouse_ka8ul_init_param ,zero 
+59ad 204059c0 call mouse_enable_ka8_sensor_wp 
+
+mouse_ka8_init_param:
+59ae 70495708 jam ka8 ,mem_config_sensor_type 
+59af 20600000 rtn 
+
+mouse_ka8ul_init_param:
+59b0 70495709 jam ka8_ul ,mem_config_sensor_type 
+59b1 da6048fc arg mem_sensor_ka8ul_init ,regc 
+59b2 20205995 branch mouse_sensor_wr_seq 
+
+mouse_ka8hd_sensor_judge:
+59b3 1fe67c10 sub pdata ,0x10 ,null 
+59b4 2422d94d nbranch mouse_init_sensor ,zero 
+59b5 5800000e setarg 0x0e 
+59b6 204069e5 call twspi_read 
+59b7 1fe67cc5 sub pdata ,0xc5 ,null 
+59b8 2422d94d nbranch mouse_init_sensor ,zero 
+59b9 58000010 setarg 0x10 
+59ba 204069e5 call twspi_read 
+59bb 1fe67c38 sub pdata ,0x38 ,null 
+59bc 2422d94d nbranch mouse_init_sensor ,zero 
+
+mouse_ka8hd_init_param:
+59bd 204059c0 call mouse_enable_ka8_sensor_wp 
+59be 7049570a jam ka8_hd ,mem_config_sensor_type 
+59bf 20600000 rtn 
+
+mouse_enable_ka8_sensor_wp:
+59c0 5800005b setarg 0x005b 
+59c1 204069e4 call twspi_write 
+59c2 202059d6 branch mouse_sensor_enable_wp 
+
+mouse_p6520_init_param:
+59c3 70495707 jam p6520 ,mem_config_sensor_type 
+59c4 da60493a arg mem_sensor_p6520_init ,regc 
+59c5 20205995 branch mouse_sensor_wr_seq 
+
+mouse_init_p3065:
+59c6 204059e7 call mouse_sensor_poweron 
+59c7 6fe0c85a fetch 1 ,mem_sensor_id2 
+59c8 c03859cd beq p3065_xy_id2 ,mouse_p3065xy_init_param 
+59c9 c00059cb beq p3065_id2 ,mouse_p3065_init_param 
+59ca 2020594d branch mouse_init_sensor 
+
+mouse_p3065_init_param:
+59cb 70495701 jam p3065 ,mem_config_sensor_type 
+59cc 20600000 rtn 
+
+mouse_p3065xy_init_param:
+59cd 70495704 jam p3065_xy ,mem_config_sensor_type 
+59ce 20600000 rtn 
+
+mouse_ka8g2_id2_judge:
+59cf 204059e7 call mouse_sensor_poweron 
+59d0 6fe0c85a fetch 1 ,mem_sensor_id2 
+59d1 c02cd9d3 beq pka8g2_id2 ,mouse_ka8g2_init_param 
+59d2 2020595f branch mouse_init_p32xx_id2_judge 
+
+mouse_ka8g2_init_param:
+59d3 7049570b jam ka8g2 ,mem_config_sensor_type 
+59d4 da60492a arg mem_sensor_ka8g2_init ,regc 
+59d5 20205995 branch mouse_sensor_wr_seq 
+
+mouse_sensor_enable_wp:
+59d6 58000009 setarg 0x0009 
+59d7 202069e4 branch twspi_write 
+
+mouse_sensor_disable_wp:
+59d8 58005a09 setarg 0x5a09 
+59d9 202069e4 branch twspi_write 
+
+mouse_sensor_reset:
+59da d8408006 arg 0x8006 ,temp 
+59db 6fe0c957 fetch 1 ,mem_config_sensor_type 
+59dc c085d9de bne ka8g2 ,mouse_sensor_reset_end 
+59dd d8409706 arg 0x9706 ,temp 
+
+mouse_sensor_reset_end:
+59de 18427e00 copy temp ,pdata 
+59df 204069e4 call twspi_write 
+59e0 20002ee0 nop 12000 
+59e1 20600000 rtn 
+
+mouse_sensor_poweron_init:
+59e2 da604946 arg mem_sensor_poweron_init ,regc 
+59e3 6fe0c957 fetch 1 ,mem_config_sensor_type 
+59e4 c1858000 rtnne ka8g2 
+59e5 da60494e arg mem_sensor_ka8g2_poweron_init ,regc 
+59e6 20600000 rtn 
+
+mouse_sensor_poweron:
+59e7 44c14010 bpatch patch10_2 ,mem_patch10 
+59e8 204055f6 call mouse_sensor_spi_init 
+59e9 204059da call mouse_sensor_reset 
+59ea 204059e2 call mouse_sensor_poweron_init 
+59eb 20405995 call mouse_sensor_wr_seq 
+59ec 20205747 branch mouse_setting_sensor_type 
+
+mouse_sensor_powerdown:
+59ed 44c1c010 bpatch patch10_3 ,mem_patch10 
+59ee 20405949 call mouse_init_sunt 
+59ef 204055f6 call mouse_sensor_spi_init 
+59f0 d8400806 arg 0x0806 ,temp 
+59f1 6fe0c957 fetch 1 ,mem_config_sensor_type 
+59f2 c085d9f4 bne ka8g2 ,mouse_sensor_powerdown_end 
+59f3 d8401f06 arg 0x1f06 ,temp 
+
+mouse_sensor_powerdown_end:
+59f4 18427e00 copy temp ,pdata 
+59f5 202069e4 branch twspi_write 
+
+mouse_check_sensor_data:
+59f6 6fe0c420 fetch 1 ,mem_spi_write_flash_sm 
+59f7 c1800000 rtnne flash_sm_no_buys 
+59f8 6fe0c957 fetch 1 ,mem_config_sensor_type 
+59f9 c0005a02 beq p3205 ,mouse_p32xx_sensor_motion 
+59fa c000da02 beq p3065 ,mouse_p32xx_sensor_motion 
+59fb c0045a02 beq ka8 ,mouse_p32xx_sensor_motion 
+59fc c0015a02 beq p3204 ,mouse_p32xx_sensor_motion 
+59fd c001da26 beq p3212 ,mouse_p3212_sensor_motion 
+59fe c0025a02 beq p3065_xy ,mouse_p32xx_sensor_motion 
+59ff c0035a4b beq p8009 ,mouse_p8009_sensor_motion 
+5a00 c005da44 beq ka8g2 ,mouse_pka8g2_sensor_motion 
+5a01 20205a02 branch mouse_p32xx_sensor_motion 
+
+mouse_p32xx_sensor_motion:
+5a02 20405a6d call mouse_clear_sensor_data 
+5a03 78547c00 disable user 
+5a04 6fe0c659 fetch 1 ,mem_sensor_motion_gpio 
+5a05 c07fda09 beq gpio_disable ,mouse_p32xx_sensor_motion_2 
+5a06 6848c659 fetcht 1 ,mem_sensor_motion_gpio 
+5a07 20406ee6 call gpio_get_bit 
+5a08 24608000 nrtn true 
+
+mouse_p32xx_sensor_motion_2:
+5a09 58000000 setarg pan_reg_pid_l 
+5a0a 204069e5 call twspi_read 
+5a0b c0985a1c bne p32xx_id1 ,mouse_p3065_judge 
+
+mouse_p32xx_sensor_motion_1:
+5a0c 58000002 setarg pan_reg_motion_staus 
+5a0d 204069e5 call twspi_read 
+5a0e c4038000 rtnbit0 7 
+5a0f 20405a84 call mouse_read_sensor_common 
+5a10 6fe0c847 fetch 1 ,mem_mouse_x 
+5a11 20405a7c call mouse_data_extsign 
+5a12 67e14847 store 2 ,mem_mouse_x 
+5a13 6fe0c849 fetch 1 ,mem_mouse_y 
+5a14 20405a7c call mouse_data_extsign 
+5a15 67e14849 store 2 ,mem_mouse_y 
+5a16 6fe0c958 fetch 1 ,mem_config_sensor_angle 
+5a17 c0005a1e beq mouse_6clk_angle ,mouse_motion32xx_6clk_direction_selection 
+5a18 c000da20 beq mouse_9clk_angle ,mouse_motion32xx_9clk_direction_selection 
+5a19 c0015a22 beq mouse_12clk_angle ,mouse_motion32xx_12clk_direction_selection 
+5a1a c001da24 beq mouse_3clk_angle ,mouse_motion32xx_3clk_direction_selection 
+5a1b 20600000 rtn 
+
+mouse_p3065_judge:
+5a1c c018da0c beq p3065_id1 ,mouse_p32xx_sensor_motion_1 
+5a1d 20205955 branch mouse_twspi_reset 
+
+mouse_motion32xx_6clk_direction_selection:
+5a1e 20405a56 call mouse_motion_6clk_direction_dispose 
+5a1f 20205a8b branch mouse_sensor_sdio_low 
+
+mouse_motion32xx_9clk_direction_selection:
+5a20 20405a5e call mouse_motion_9clk_direction_dispose 
+5a21 20205a8b branch mouse_sensor_sdio_low 
+
+mouse_motion32xx_12clk_direction_selection:
+5a22 20405a5a call mouse_motion_12clk_direction_dispose 
+5a23 20205a8b branch mouse_sensor_sdio_low 
+
+mouse_motion32xx_3clk_direction_selection:
+5a24 20405a66 call mouse_motion_3clk_direction_dispose 
+5a25 20205a8b branch mouse_sensor_sdio_low 
+
+mouse_p3212_sensor_motion:
+5a26 20405a6d call mouse_clear_sensor_data 
+5a27 6fe0c659 fetch 1 ,mem_sensor_motion_gpio 
+5a28 c07fda2c beq gpio_disable ,mouse_p3212_sensor_motion_1 
+5a29 6848c659 fetcht 1 ,mem_sensor_motion_gpio 
+5a2a 20406ee6 call gpio_get_bit 
+5a2b 24608000 nrtn true 
+
+mouse_p3212_sensor_motion_1:
+5a2c 58000000 setarg pan_reg_pid_l 
+5a2d 204069e5 call twspi_read 
+5a2e c0985955 bne p32xx_id1 ,mouse_twspi_reset 
+
+mouse_p3212_sensor_motion_2:
+5a2f 58000002 setarg pan_reg_motion_staus 
+5a30 204069e5 call twspi_read 
+5a31 c4038000 rtnbit0 7 
+5a32 20405a84 call mouse_read_sensor_common 
+5a33 20405a42 call mouse_read_3212sensor_xy_high 
+5a34 67e0c84d store 1 ,mem_mouse_xy_h 
+5a35 1ff1fe00 rshift4 pdata ,pdata 
+5a36 20405a80 call mouse_data_extsign_bit3 
+5a37 67e0c848 store 1 ,mem_mouse_x + 1 
+5a38 6fe0c84d fetch 1 ,mem_mouse_xy_h 
+5a39 1fe17e0f and pdata ,0x0f ,pdata 
+5a3a 20405a80 call mouse_data_extsign_bit3 
+5a3b 67e0c84a store 1 ,mem_mouse_y + 1 
+5a3c 6fe0c958 fetch 1 ,mem_config_sensor_angle 
+5a3d c0005a56 beq mouse_6clk_angle ,mouse_motion_6clk_direction_dispose 
+5a3e c000da5e beq mouse_9clk_angle ,mouse_motion_9clk_direction_dispose 
+5a3f c0015a5a beq mouse_12clk_angle ,mouse_motion_12clk_direction_dispose 
+5a40 c001da66 beq mouse_3clk_angle ,mouse_motion_3clk_direction_dispose 
+5a41 20600000 rtn 
+
+mouse_read_3212sensor_xy_high:
+5a42 58000012 setarg 0x12 
+5a43 202069e5 branch twspi_read 
+
+mouse_pka8g2_sensor_motion:
+5a44 20405a6d call mouse_clear_sensor_data 
+5a45 6fe0c659 fetch 1 ,mem_sensor_motion_gpio 
+5a46 c07fda4a beq gpio_disable ,mouse_pka8g2_sensor_motion_1 
+5a47 6848c659 fetcht 1 ,mem_sensor_motion_gpio 
+5a48 20406ee6 call gpio_get_bit 
+5a49 24608000 nrtn true 
+
+mouse_pka8g2_sensor_motion_1:
+5a4a 20205a2f branch mouse_p3212_sensor_motion_2 
+
+mouse_p8009_sensor_motion:
+5a4b 20405a6d call mouse_clear_sensor_data 
+5a4c 78547c00 disable user 
+5a4d 58000002 setarg pan_reg_motion_staus 
+5a4e 204069e5 call twspi_read 
+5a4f c4038000 rtnbit0 7 
+5a50 58000008 setarg pan_reg_opration_state 
+5a51 204069e5 call twspi_read 
+5a52 203a5a0f branch mouse_p32xx_sensor_motion_1 + 3 ,blank 
+5a53 58000000 setarg 0 
+5a54 67e34847 store 6 ,mem_mouse_x 
+5a55 20600000 rtn 
+
+mouse_motion_6clk_direction_dispose:
+5a56 6fe14847 fetch 2 ,mem_mouse_x 
+5a57 1fe67e00 sub pdata ,0 ,pdata 
+5a58 67e14847 store 2 ,mem_mouse_x 
+5a59 20207dba branch enable_user 
+
+mouse_motion_12clk_direction_dispose:
+5a5a 6fe14849 fetch 2 ,mem_mouse_y 
+5a5b 1fe67e00 sub pdata ,0 ,pdata 
+5a5c 67e14849 store 2 ,mem_mouse_y 
+5a5d 20207dba branch enable_user 
+
+mouse_motion_9clk_direction_dispose:
+5a5e 6fe14849 fetch 2 ,mem_mouse_y 
+5a5f 1fe67e00 sub pdata ,0 ,pdata 
+5a60 67e14849 store 2 ,mem_mouse_y 
+5a61 6fe14847 fetch 2 ,mem_mouse_x 
+5a62 1fe67e00 sub pdata ,0 ,pdata 
+5a63 67e14847 store 2 ,mem_mouse_x 
+5a64 20405a68 call mouse_sensor_data_swap_places 
+5a65 20207dba branch enable_user 
+
+mouse_motion_3clk_direction_dispose:
+5a66 20405a68 call mouse_sensor_data_swap_places 
+5a67 20207dba branch enable_user 
+
+mouse_sensor_data_swap_places:
+5a68 6fe14849 fetch 2 ,mem_mouse_y 
+5a69 68494847 fetcht 2 ,mem_mouse_x 
+5a6a 67e14847 store 2 ,mem_mouse_x 
+5a6b 60494849 storet 2 ,mem_mouse_y 
+5a6c 20600000 rtn 
+
+mouse_clear_sensor_data:
+5a6d 6fe0c860 fetch 1 ,mem_mouse_move_flag 
+5a6e 205a5a84 call mouse_read_sensor_common ,blank 
+5a6f 70486001 jam 1 ,mem_mouse_move_flag 
+5a70 20600000 rtn 
+
+mouse_clear_sensor_data_by_reset:
+5a71 70495601 jam 1 ,mem_mouse_clear_sensor_data_flag 
+5a72 204029c9 call le_set_config_more_data 
+
+mouse_init_sensor_reset:
+5a73 20205949 branch mouse_init_sunt 
+
+mouse_data_xy_release:
+5a74 6fe0c659 fetch 1 ,mem_sensor_motion_gpio 
+5a75 c1ff8000 rtnne gpio_disable 
+5a76 6fe0c77d fetch 1 ,mem_mouse_long_mult_flag 
+5a77 c1808000 rtnne 1 
+5a78 58000000 setarg 0 
+5a79 67e0c77d store 1 ,mem_mouse_long_mult_flag 
+5a7a 67e24847 store 4 ,mem_mouse_x 
+5a7b 20205a73 branch mouse_init_sensor_reset 
+
+mouse_data_extsign:
+5a7c c4038000 rtnbit0 7 
+5a7d d840ff00 arg 0xff00 ,temp 
+5a7e 9841fe00 ior temp ,pdata 
+5a7f 20600000 rtn 
+
+mouse_data_extsign_bit3:
+5a80 c4018000 rtnbit0 3 
+5a81 d84000f0 arg 0xf0 ,temp 
+5a82 9841fe00 ior temp ,pdata 
+5a83 20600000 rtn 
+
+mouse_read_sensor_common:
+5a84 dfe00003 arg pan_reg_delta_x ,pdata 
+5a85 204069e5 call twspi_read 
+5a86 67e14847 store 2 ,mem_mouse_x 
+5a87 dfe00004 arg pan_reg_delta_y ,pdata 
+5a88 204069e5 call twspi_read 
+5a89 67e14849 store 2 ,mem_mouse_y 
+5a8a 20600000 rtn 
+
+mouse_sensor_sdio_low:
+5a8b 6848c64d fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+5a8c 20406ee6 call gpio_get_bit 
+5a8d 20608000 rtn true 
+5a8e 5800000a setarg 0x0a 
+5a8f 204069e5 call twspi_read 
+5a90 200003e8 nop 1000 
+5a91 20205a8b branch mouse_sensor_sdio_low 
+
+mouse_set_sdio_high:
+5a92 58008100 setarg 0x8100 
+5a93 202069e4 branch twspi_write 
+
+mouse_bluetooth_fast_conn_init:
+5a94 70478fff jam 0xff ,mem_mouse_bluetooth_fast_conn_flag 
+
+mouse_ble_fast_conn_init:
+5a95 7043f334 jam 0x34 ,mem_xrecord_mode 
+5a96 580f0f0f setarg 0x0f0f0f 
+5a97 67e1c2db store 3 ,mem_le_lap 
+5a98 67e1c2de store 3 ,mem_le_lap + 3 
+5a99 202054a9 branch mouse_start_reconnect 
+
+mouse_buletooth_fast_conn_end:
+5a9a 44c24010 bpatch patch10_4 ,mem_patch10 
+5a9b 20405c6f call mouse_select_reconn_device 
+5a9c 20405aa8 call mouse_bluetooth_fast_conn_disable 
+5a9d 6fe0c666 fetch 1 ,mem_device_flag 
+5a9e c000daa1 beq mode_bt_device1 ,mouse_device1_check_auto_discover 
+5a9f c0015aa3 beq mode_bt_device2 ,mouse_device2_check_auto_discover 
+5aa0 20600000 rtn 
+
+mouse_device1_check_auto_discover:
+5aa1 6fe34668 fetch 6 ,mem_device1_addr 
+5aa2 20205aa4 branch mouse_device_check_auto_discover 
+
+mouse_device2_check_auto_discover:
+5aa3 6fe34675 fetch 6 ,mem_device2_addr 
+
+mouse_device_check_auto_discover:
+5aa4 684b46e6 fetcht 6 ,mem_mouse_compare_addr 
+5aa5 98467c00 isub temp ,null 
+5aa6 2022dc1a branch mouse_start_discovery ,zero 
+5aa7 202054a0 branch mouse_start_reconnect_device 
+
+mouse_bluetooth_fast_conn_disable:
+5aa8 70478f5a jam 0x5a ,mem_mouse_bluetooth_fast_conn_flag 
+5aa9 20600000 rtn 
+
+mouse_stop_bluetooth_mode:
+5aaa 6fe144e9 fetch 2 ,mem_ui_state_map 
+5aab c284c31f bbit1 ui_state_ble_connected ,app_ble_disconnect 
+5aac 20205c39 branch mouse_stop_discovery 
+
+mouse_disconnect:
+5aad 58000000 setarg 0 
+5aae 67e14781 store 2 ,mem_mouse_no_data_timer 
+5aaf 6fe144e9 fetch 2 ,mem_ui_state_map 
+5ab0 c284c31f bbit1 ui_state_ble_connected ,app_ble_disconnect 
+5ab1 20600000 rtn 
+
+mouse_check_125hz:
+5ab2 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5ab3 c40d8000 rtnbit0 mouse_enable_bt_125hz 
+
+mouse_bluetooth_125hz:
+5ab4 24345aba nbranch mouse_bluetooth_125hz_clear ,user 
+5ab5 6fe0c959 fetch 1 ,mem_bluetooth_125hz_cnt 
+5ab6 1fe0fe01 increase 1 ,pdata 
+5ab7 1fe17e0f and_into 0x0f ,pdata 
+5ab8 67e0c959 store 1 ,mem_bluetooth_125hz_cnt 
+5ab9 247a0000 nrtn blank 
+
+mouse_bluetooth_125hz_clear:
+5aba 70495900 jam 0 ,mem_bluetooth_125hz_cnt 
+5abb 20207dbc branch disable_user 
+
+mouse_current_mult_update:
+5abc 6fe0c659 fetch 1 ,mem_sensor_motion_gpio 
+5abd c1ff8000 rtnne gpio_disable 
+5abe 7040c000 jam 0 ,mem_lpm_mult 
+5abf 70477e1e jam 30 ,mem_mouse_current_mult_timer 
+5ac0 20600000 rtn 
+
+mouse_priority_bb_event:
+5ac1 44c2c010 bpatch patch10_5 ,mem_patch10 
+5ac2 1a627e00 copy regc ,pdata 
+5ac3 c00a5ad0 beq bt_evt_le_connected ,mouse_le_bb_event_connected 
+5ac4 c00adae0 beq bt_evt_le_disconnected ,mouse_le_bb_disconnected 
+5ac5 c0085c15 beq bt_evt_button_long_pressed ,mouse_bb_event_discovery_btn 
+5ac6 c018daed beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+5ac7 c014daef beq bt_evt_le_enc_info ,mouse_le_enc_info 
+5ac8 c0195af1 beq bt_evt_le_start_enc ,mouse_le_ll_start_encryt 
+5ac9 c01f4329 beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
+5aca c0205afc beq bt_evt_le_parse_conn_papa_update_rsp ,mouse_le_conn_param_update_rsp_recieved 
+5acb c01ce084 beq bt_evt_24g_pairing_complete ,mouse_24g_pairing_complete 
+5acc c01d6053 beq bt_evt_24g_attempt_fail ,mouse_24g_attempt_fail 
+5acd c01e6075 beq bt_evt_24g_attempt_success ,mouse_24g_attempt_success 
+5ace c0225b10 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
+5acf 20600000 rtn 
+
+mouse_le_bb_event_connected:
+5ad0 2040618e call mouse_device_poweron_led_config 
+5ad1 70477d00 jam 0 ,mem_mouse_long_mult_flag 
+5ad2 20405a73 call mouse_init_sensor_reset 
+5ad3 70479401 jam 1 ,mem_mouse_le_bb_connected_flag 
+5ad4 20406042 call mouse_24g_first_store_reconn_info 
+5ad5 6fe0c795 fetch 1 ,mem_mouse_le_reconnect_flag 
+5ad6 243a5ad8 nbranch mouse_le_bb_event_connected_next ,blank 
+5ad7 70479614 jam 0x14 ,mem_mouse_send_secutiry_request_timer 
+
+mouse_le_bb_event_connected_next:
+5ad8 6fe143f1 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+5ad9 793ffe00 set0 app_disc_by_button ,pdata 
+5ada 67e143f1 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+5adb 70484500 jam 0 ,mem_mouse_direct_timer 
+5adc 6fe147be fetch 2 ,mem_le_battery_level_updata_timer_init 
+5add 67e147c0 store 2 ,mem_le_battery_level_updata_timer 
+5ade 20405c0b call mouse_no_data_timer_init 
+5adf 20205c39 branch mouse_stop_discovery 
+
+mouse_le_bb_disconnected:
+5ae0 58000000 setarg 0 
+5ae1 67e147c0 store 2 ,mem_le_battery_level_updata_timer 
+5ae2 70479400 jam 0 ,mem_mouse_le_bb_connected_flag 
+5ae3 d8400006 arg le_interval_7_5ms ,temp 
+5ae4 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5ae5 c28ddae7 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next 
+5ae6 d8400007 arg le_interval_8_75ms ,temp 
+
+mouse_le_bb_disconnected_next:
+5ae7 604942d3 storet 2 ,mem_le_interval_min 
+5ae8 604942d5 storet 2 ,mem_le_interval_min + 2 
+5ae9 7047c200 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+5aea 70495600 jam 0 ,mem_mouse_clear_sensor_data_flag 
+5aeb 204029cb call le_clr_config_more_data 
+5aec 20205b76 branch mouse_bb_disconnected 
+
+mouse_le_pairing_success:
+5aed d8e00002 arg ll_pairing_success_flag ,queue 
+5aee 20205af8 branch mouse_le_enable_connect_flag 
+
+mouse_le_enc_info:
+
+mouse_updata_le_param:
+5aef 70066f12 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+5af0 20207834 branch ui_ipc_send_cmd 
+
+mouse_le_ll_start_encryt:
+5af1 6fe0c795 fetch 1 ,mem_mouse_le_reconnect_flag 
+5af2 c000daf4 beq 1 ,mouse_le_ll_reconn_start_encryt 
+5af3 20205af6 branch mouse_le_ll_enable_start_enc_flag 
+
+mouse_le_ll_reconn_start_encryt:
+5af4 20405aef call mouse_updata_le_param 
+5af5 70484414 jam 20 ,mem_le_start_encrypt_timer 
+
+mouse_le_ll_enable_start_enc_flag:
+5af6 d8e00001 arg ll_start_enc_flag ,queue 
+5af7 20205af8 branch mouse_le_enable_connect_flag 
+
+mouse_le_enable_connect_flag:
+5af8 6fe0c843 fetch 1 ,mem_le_connect_status_flag 
+5af9 f9207e00 qset1 pdata 
+5afa 67e0c843 store 1 ,mem_le_connect_status_flag 
+5afb 20600000 rtn 
+
+mouse_le_conn_param_update_rsp_recieved:
+5afc 6fe1433c fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+5afd c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
+5afe 6fe0816a fetch 1 ,mem_le_tsniff 
+5aff 1feb7e00 rshift2 pdata ,pdata 
+5b00 1fe67c0c sub pdata ,le_interval_15ms ,null 
+5b01 20610000 rtn positive 
+5b02 58000009 setarg le_interval_11_25ms 
+5b03 67e142d3 store 2 ,mem_le_interval_min 
+5b04 67e142d5 store 2 ,mem_le_interval_min + 2 
+5b05 20405aef call mouse_updata_le_param 
+
+mouse_le_conn_param_lpm_disable:
+5b06 7047c201 jam le_lpm_disable ,mem_mouse_le_conn_param_reject 
+5b07 20600000 rtn 
+
+mouse_le_bb_event_connect_complete:
+5b08 6fe0c795 fetch 1 ,mem_mouse_le_reconnect_flag 
+5b09 247a0000 nrtn blank 
+5b0a 6fe0c398 fetch 1 ,mem_le_att_handle 
+5b0b 1fe67e22 sub pdata ,34 ,pdata 
+5b0c 24628000 nrtn zero 
+5b0d 70484400 jam 0 ,mem_le_start_encrypt_timer 
+
+mouse_le_write_enable:
+5b0e d8e00000 arg write_req_enable_flag ,queue 
+5b0f 20205af8 branch mouse_le_enable_connect_flag 
+
+mouse_le_parse_conn_param_accepted:
+5b10 6fe081a2 fetch 1 ,mem_le_new_conninterval 
+5b11 1fe67c0c sub pdata ,le_interval_15ms ,null 
+5b12 24215b06 nbranch mouse_le_conn_param_lpm_disable ,positive 
+5b13 67e142d3 store 2 ,mem_le_interval_min 
+5b14 67e142d5 store 2 ,mem_le_interval_min + 2 
+5b15 6fe081a4 fetch 1 ,mem_le_new_connslavelatency 
+5b16 203a5b1d branch mouse_le_lpm_mult_reinit ,blank 
+5b17 6848c96b fetcht 1 ,mem_lpm_mult_init 
+5b18 98467c00 isub temp ,null 
+5b19 20215b1d branch mouse_le_lpm_mult_reinit ,positive 
+5b1a 6fe081a4 fetch 1 ,mem_le_new_connslavelatency 
+5b1b 67e0c0c0 store 1 ,mem_lpm_mult 
+5b1c 20205b1f branch mouse_le_conn_param_lpm_enable 
+
+mouse_le_lpm_mult_reinit:
+5b1d 6fe0c96b fetch 1 ,mem_lpm_mult_init 
+5b1e 67e0c0c0 store 1 ,mem_lpm_mult 
+
+mouse_le_conn_param_lpm_enable:
+5b1f 7047c200 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+5b20 20600000 rtn 
+
+mouse_le_clean_connect_flag:
+5b21 70484300 jam 0 ,mem_le_connect_status_flag 
+5b22 20600000 rtn 
+
+mouse_le:
+5b23 44c34010 bpatch patch10_6 ,mem_patch10 
+5b24 20402a28 call le_fifo_check_nearly_full 
+5b25 247a0000 nrtn blank 
+5b26 6fe0c78f fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+5b27 c07fdb2b beq 0xff ,mouse_le_next 
+5b28 6fe0c843 fetch 1 ,mem_le_connect_status_flag 
+5b29 1fe17e03 and pdata ,0x03 ,pdata 
+5b2a c1818000 rtnne 0x03 
+
+mouse_le_next:
+5b2b 6fe0c956 fetch 1 ,mem_mouse_clear_sensor_data_flag 
+5b2c 205a5a71 call mouse_clear_sensor_data_by_reset ,blank 
+5b2d 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5b2e c280db5b bbit1 mouse_24g_pairing_flag ,mouse_le_send_empty_packet 
+5b2f c2805b5b bbit1 mouse_select_device_flag ,mouse_le_send_empty_packet 
+5b30 c282db5b bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
+5b31 c2835b5b bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_le_send_empty_packet 
+5b32 20405601 call mouse_motion 
+5b33 20405ab2 call mouse_check_125hz 
+5b34 24740000 nrtn user 
+5b35 20405abc call mouse_current_mult_update 
+5b36 20405a74 call mouse_data_xy_release 
+5b37 204056b1 call mouse_wheel_trigger 
+5b38 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5b39 c30b5b3c bbit0 mouse_enable_keyboard ,mouse_le_send_mouse_data 
+5b3a 6fe0c96c fetch 1 ,mem_customer_key 
+5b3b c000db3d beq 1 ,mouse_le_send_keyboard_package_data 
+
+mouse_le_send_mouse_data:
+5b3c 20205b5d branch mouse_fill_mouse_data_le 
+
+mouse_le_send_keyboard_package_data:
+5b3d 6fe0c96d fetch 1 ,mem_customer_data_trigger 
+5b3e 203a5b4d branch mouse_le_release_keyboard_data ,blank 
+5b3f 6fe4472b fetch 8 ,mem_customer_key_press + 1 
+
+mouse_fill_keyboard_package_data_le:
+5b40 67e40670 store 8 ,mem_pdatatemp 
+5b41 6fe0c72a fetch 1 ,mem_customer_key_press 
+5b42 c001db4f beq kb_multikey_report_id ,mouse_fill_multimedia_key_data_le 
+5b43 c0015b52 beq kb_system_conctrl_report_id ,mouse_fill_systemctrl_key_data_le 
+5b44 7047b408 jam 8 ,mem_le_data_len 
+5b45 684947b5 fetcht 2 ,mem_le_keyboard_handle 
+
+mouse_fill_data_le:
+5b46 6fe0c7b4 fetch 1 ,mem_le_data_len 
+5b47 1fe22200 copy pdata ,rega 
+5b48 20402dee call le_att_malloc_tx_notify 
+5b49 6848c7b4 fetcht 1 ,mem_le_data_len 
+5b4a 18427200 copy temp ,loopcnt 
+5b4b d8c00670 arg mem_pdatatemp ,contr 
+5b4c 20207cda branch memcpy 
+
+mouse_le_release_keyboard_data:
+5b4d 6fe44734 fetch 8 ,mem_customer_key_release + 1 
+5b4e 20205b40 branch mouse_fill_keyboard_package_data_le 
+
+mouse_fill_multimedia_key_data_le:
+5b4f 7047b403 jam 3 ,mem_le_data_len 
+5b50 684947b7 fetcht 2 ,mem_le_multimedia_handle 
+5b51 20205b46 branch mouse_fill_data_le 
+
+mouse_fill_systemctrl_key_data_le:
+5b52 7047b402 jam 2 ,mem_le_data_len 
+5b53 684947b9 fetcht 2 ,mem_le_systemctrl_handle 
+5b54 20205b46 branch mouse_fill_data_le 
+
+mouse_fill_battery_level_le:
+5b55 da200001 arg 1 ,rega 
+5b56 684947bb fetcht 2 ,mem_le_battery_level_handle 
+5b57 20402dee call le_att_malloc_tx_notify 
+5b58 6fe0c7bd fetch 1 ,mem_le_battery_level_percentage 
+5b59 e7e08005 istore 1 ,contw 
+5b5a 20600000 rtn 
+
+mouse_le_send_empty_packet:
+5b5b 58000000 setarg 0 
+5b5c 67e3c846 store 7 ,mem_mouse_key 
+
+mouse_fill_mouse_data_le:
+5b5d 7047b407 jam 7 ,mem_le_data_len 
+5b5e 6fe3c846 fetch 7 ,mem_mouse_key 
+5b5f 67e38670 store 7 ,mem_pdatatemp 
+5b60 6849439b fetcht 2 ,mem_le_notify_handle 
+5b61 20205b46 branch mouse_fill_data_le 
+
+mouse_check_51cmd_adv:
+5b62 70479500 jam 0 ,mem_mouse_le_reconnect_flag 
+5b63 6fe1c79a fetch 3 ,mem_le_adv_ind 
+5b64 67e1c34d store 3 ,mem_le_adv_data + 4 
+5b65 20405b6b call mouse_le_check_adv_flag 
+5b66 58000005 setarg adv_flag_bredr_not_supported | adv_flag_limited_discoverable 
+5b67 e7e08006 istore 1 ,contr 
+5b68 d8c047a0 arg mem_le_adv_swift_pair ,contr 
+5b69 20405b72 call mouse_le_adv_data_update 
+5b6a 20207870 branch check_51cmd_adv 
+
+mouse_le_check_adv_flag:
+5b6b da204349 arg mem_le_adv_data ,rega 
+
+mouse_le_check_adv_flag_loop:
+5b6c efe08011 ifetch 1 ,rega 
+5b6d 207a0000 rtn blank 
+5b6e 98c0a200 iadd contr ,rega 
+5b6f efe08006 ifetch 1 ,contr 
+5b70 c1008000 rtneq 0x01 
+5b71 20205b6c branch mouse_le_check_adv_flag_loop 
+
+mouse_le_adv_data_update:
+5b72 d8a04354 arg mem_le_adv_data + 11 ,contw 
+5b73 df200013 arg 19 ,loopcnt 
+5b74 20407cda call memcpy 
+5b75 20202969 branch le_modified_name_adv 
+
+mouse_bb_disconnected:
+5b76 20405b7b call mouse_bb_discon_clear_stack 
+5b77 6fe143ef fetch app_disc_rsn_size ,mem_app_disconn_reason 
+5b78 c283db81 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
+5b79 c28042fc bbit1 app_disc_by_button ,app_disconn_reason_clear 
+5b7a 20205c1a branch mouse_start_discovery 
+
+mouse_bb_discon_clear_stack:
+5b7b 58000000 setarg 0 
+5b7c 67e4484f store 8 ,mem_wheel_tb_old_pinlevel 
+5b7d e7e20005 istore 4 ,contw 
+5b7e 70486000 jam 0 ,mem_mouse_move_flag 
+5b7f 70429a00 jam 0 ,mem_ltk_exists 
+5b80 20600000 rtn 
+
+mouse4_0_event_bb_disconn:
+5b81 20405b21 call mouse_le_clean_connect_flag 
+5b82 6fe143ef fetch app_disc_rsn_size ,mem_app_disconn_reason 
+5b83 c28042fc bbit1 app_disc_by_button ,app_disconn_reason_clear 
+5b84 202054cd branch mouse_app_enter_hibernate 
+
+mouse_bb_event_timer:
+5b85 44c3c010 bpatch patch10_7 ,mem_patch10 
+5b86 2040614d call mouse_low_voltage_led_timer 
+5b87 2040553d call mouse_adc_read 
+5b88 20406110 call mouse_logo_led_on_timer 
+5b89 204061b1 call mouse_led_multi_timer 
+5b8a 2040611e call mouse_dpi_led_blink_delay_timer 
+5b8b 2040328e call g24_pair_timeout_timer 
+5b8c 20403531 call g24_reconn_timeout_timer 
+5b8d 20405fdd call mouse_24g_long_sleep_param_update_timer 
+5b8e 2040572c call mouse_dpi_key_check_long_press 
+5b8f 20405b9b call mouse_bt_discovery_check 
+5b90 20405bab call mouse_commbination_key_process 
+5b91 20405bce call mouse_check_discovery_timeout_timer 
+5b92 20405bd3 call mouse_check_direct_timeout_timer 
+5b93 20405be1 call mouse_le_enable_att_list_timer 
+5b94 20405bee call mouse_le_battery_updata_timer 
+5b95 20405be4 call mouse_le_send_smp_security_request_timer 
+5b96 20405bfb call mouse_check_reconnect_delay_long_sleep 
+5b97 20405bfe call mouse_current_mult_update_timer 
+5b98 204056b6 call mouse_wheel_trigger_timer 
+5b99 20405c0e call mouse_store_information_delay_timer 
+5b9a 20205c05 branch mouse_check_no_data_timeout_timer 
+
+mouse_bt_discovery_check:
+5b9b 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5b9c c29bdb9e bbit1 mouse_enable_pb_button_long_press_disconvery ,mouse_bt_discovery_by_pb_button 
+5b9d 20600000 rtn 
+
+mouse_bt_discovery_by_pb_button:
+5b9e 6fe0c97f fetch 1 ,mem_select_device_button_statue 
+5b9f c1808000 rtnne pb_button_state_down 
+5ba0 da60497c arg mem_bt_discovery_count ,regc 
+5ba1 da405ba3 arg mouse_long_button_bt_discovery ,regb 
+5ba2 202042e0 branch timer_single_step 
+
+mouse_long_button_bt_discovery:
+5ba3 6fe0c666 fetch 1 ,mem_device_flag 
+5ba4 c1000000 rtneq mode_24g_device 
+5ba5 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5ba6 c3830000 rtnbit1 mouse_bt_discovery_button_long_down_flag 
+5ba7 d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
+5ba8 20405f00 call mouse_enable_function_flag 
+5ba9 204042d0 call app_evt_button_long_pressed 
+5baa 20205c15 branch mouse_bb_event_discovery_btn 
+
+mouse_commbination_key_process:
+5bab 6fe0c666 fetch 1 ,mem_device_flag 
+5bac c0005bb1 beq mode_24g_device ,mouse_24g_commbination_key_process 
+5bad 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5bae c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
+5baf 6848c727 fetcht 1 ,mem_mouse_commbination_key_bt 
+5bb0 20205bb4 branch mouse_commbination_key_start 
+
+mouse_24g_commbination_key_process:
+5bb1 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5bb2 c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
+5bb3 6848c728 fetcht 1 ,mem_mouse_commbination_key_24g 
+
+mouse_commbination_key_start:
+5bb4 6048c97e storet 1 ,mem_mouse_commbination_key 
+5bb5 20405888 call mouse_check_key_gpio 
+5bb6 1fe17e07 and pdata ,0x07 ,pdata 
+5bb7 6848c97e fetcht 1 ,mem_mouse_commbination_key 
+5bb8 98467c00 isub temp ,null 
+5bb9 2022dbc0 branch mouse_commbination_key_down ,zero 
+
+mouse_commbination_key_up:
+5bba 6fe0c4eb fetch 1 ,mem_ui_button_timeout 
+5bbb 67e0c981 store 1 ,mem_combination_ui_button_count 
+5bbc 6fe0c980 fetch 1 ,mem_commbination_key_statue 
+5bbd c1000000 rtneq commbination_key_state_up 
+5bbe 70498000 jam commbination_key_state_up ,mem_commbination_key_statue 
+5bbf 20600000 rtn 
+
+mouse_commbination_key_down:
+5bc0 20405bc5 call mouse_combination_ui_timer 
+5bc1 6fe0c980 fetch 1 ,mem_commbination_key_statue 
+5bc2 c1008000 rtneq commbination_key_state_down 
+5bc3 70498001 jam commbination_key_state_down ,mem_commbination_key_statue 
+5bc4 20600000 rtn 
+
+mouse_combination_ui_timer:
+5bc5 da406047 arg mouse_24g_start_pair_mode ,regb 
+5bc6 da604981 arg mem_combination_ui_button_count ,regc 
+5bc7 6fe0c666 fetch 1 ,mem_device_flag 
+5bc8 c00042e0 beq mode_24g_device ,timer_single_step 
+5bc9 da405ba3 arg mouse_long_button_bt_discovery ,regb 
+5bca 204042e0 call timer_single_step 
+5bcb 6fe0c981 fetch 1 ,mem_combination_ui_button_count 
+5bcc c000def2 beq 1 ,mouse_bt_discovery_button_down_enable 
+5bcd 20600000 rtn 
+
+mouse_check_discovery_timeout_timer:
+5bce da604790 arg mem_mouse_discovery_timer ,regc 
+5bcf da405bd1 arg mouse_check_discovery_timeout ,regb 
+5bd0 202042e7 branch timer_single_step_2b 
+
+mouse_check_discovery_timeout:
+5bd1 20405c39 call mouse_stop_discovery 
+5bd2 202054cd branch mouse_app_enter_hibernate 
+
+mouse_check_direct_timeout_timer:
+5bd3 da604845 arg mem_mouse_direct_timer ,regc 
+5bd4 da405bd9 arg mouse_check_direct_timeout ,regb 
+5bd5 204042e0 call timer_single_step 
+5bd6 6fe0c845 fetch 1 ,mem_mouse_direct_timer 
+5bd7 c000c313 beq 1 ,app_ble_stop_direct_adv 
+5bd8 20600000 rtn 
+
+mouse_check_direct_timeout:
+5bd9 6fe0c78f fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+5bda c07fda9a beq 0xff ,mouse_buletooth_fast_conn_end 
+5bdb 6fe0c77f fetch 1 ,mem_reconn_times 
+5bdc 243a5f1b nbranch mouse_polling_device ,blank 
+5bdd 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5bde c299dc1a bbit1 mouse_enable_bt_reconnect_timeout_enter_discovery ,mouse_start_discovery 
+5bdf c29f603f bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_bb_event_reconn_timeout 
+5be0 202054cd branch mouse_app_enter_hibernate 
+
+mouse_le_enable_att_list_timer:
+5be1 da604844 arg mem_le_start_encrypt_timer ,regc 
+5be2 da405b0e arg mouse_le_write_enable ,regb 
+5be3 202042e0 branch timer_single_step 
+
+mouse_le_send_smp_security_request_timer:
+5be4 6fe0c794 fetch 1 ,mem_mouse_le_bb_connected_flag 
+5be5 207a0000 rtn blank 
+5be6 da604796 arg mem_mouse_send_secutiry_request_timer ,regc 
+5be7 da405be9 arg mouse_le_pairing_sm_start_check ,regb 
+5be8 202042e0 branch timer_single_step 
+
+mouse_le_pairing_sm_start_check:
+5be9 6fe0c795 fetch 1 ,mem_mouse_le_reconnect_flag 
+5bea 247a0000 nrtn blank 
+5beb 6fe0c2fc fetch 1 ,mem_le_pairing_state 
+5bec c1800000 rtnne flag_le_pairing_null 
+5bed 20202fcd branch le_pairing_sm_start 
+
+mouse_le_battery_updata_timer:
+5bee 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5bef c39d8000 rtnbit1 mouse_enable_le_battery_service_cancel 
+5bf0 da6047c0 arg mem_le_battery_level_updata_timer ,regc 
+5bf1 da405bf3 arg mouse_le_battery_level_updata ,regb 
+5bf2 202042e0 branch timer_single_step 
+
+mouse_le_battery_level_updata:
+5bf3 6fe147be fetch 2 ,mem_le_battery_level_updata_timer_init 
+5bf4 67e147c0 store 2 ,mem_le_battery_level_updata_timer 
+5bf5 20205b55 branch mouse_fill_battery_level_le 
+
+mouse_le_enable_att_list:
+5bf6 6fe0c843 fetch 1 ,mem_le_connect_status_flag 
+5bf7 c3810000 rtnbit1 ll_pairing_success_flag 
+5bf8 20405aef call mouse_updata_le_param 
+5bf9 d8e00000 arg write_req_enable_flag ,queue 
+5bfa 20205af8 branch mouse_le_enable_connect_flag 
+
+mouse_check_reconnect_delay_long_sleep:
+5bfb da604792 arg mem_mouse_bluetooth_reconnect_timeout ,regc 
+5bfc da4054cd arg mouse_app_enter_hibernate ,regb 
+5bfd 202042e0 branch timer_single_step 
+
+mouse_current_mult_update_timer:
+5bfe da60477e arg mem_mouse_current_mult_timer ,regc 
+5bff da405c01 arg mouse_current_mult_reinit ,regb 
+5c00 202042e0 branch timer_single_step 
+
+mouse_current_mult_reinit:
+5c01 6fe0c96b fetch 1 ,mem_lpm_mult_init 
+5c02 67e0c0c0 store 1 ,mem_lpm_mult 
+5c03 70477d01 jam 1 ,mem_mouse_long_mult_flag 
+5c04 20600000 rtn 
+
+mouse_check_no_data_timeout_timer:
+5c05 da604781 arg mem_mouse_no_data_timer ,regc 
+5c06 da405c08 arg mouse_check_no_data_timeout ,regb 
+5c07 202042e7 branch timer_single_step_2b 
+
+mouse_check_no_data_timeout:
+5c08 6fe0c666 fetch 1 ,mem_device_flag 
+5c09 c0005ff2 beq mode_24g_device ,mouse_24g_hibernate_set 
+5c0a 20205aad branch mouse_disconnect 
+
+mouse_no_data_timer_init:
+5c0b 6fe14725 fetch 2 ,mem_mouse_no_data_timeout 
+5c0c 67e14781 store 2 ,mem_mouse_no_data_timer 
+5c0d 20600000 rtn 
+
+mouse_store_information_delay_timer:
+5c0e da6046f3 arg mem_store_information_delay_timer ,regc 
+5c0f da405c11 arg mouse_store_device_info_check ,regb 
+5c10 202042e0 branch timer_single_step 
+
+mouse_store_device_info_check:
+5c11 20405ca6 call mouse_store_device_info 
+5c12 6fe0c793 fetch 1 ,mem_mouse_need_soft_reset 
+5c13 243a5ed1 nbranch mouse_soft_reset ,blank 
+5c14 20600000 rtn 
+
+mouse_bb_event_discovery_btn:
+5c15 280ffe26 isolate1 mark_24g ,mark 
+5c16 2040e018 call mouse_24g_stop ,true 
+5c17 20405aad call mouse_disconnect 
+5c18 20405b21 call mouse_le_clean_connect_flag 
+5c19 20205c1a branch mouse_start_discovery 
+
+mouse_start_discovery:
+5c1a 44c44011 bpatch patch11_0 ,mem_patch11 
+5c1b 204061ab call mouse_device_discovery_led_config 
+5c1c 6fe144e9 fetch 2 ,mem_ui_state_map 
+5c1d 2feffe0b isolate1 ui_state_ble_adv ,pdata 
+5c1e 2040dc3e call mouse_stop_le_adv ,true 
+5c1f 20405aa8 call mouse_bluetooth_fast_conn_disable 
+5c20 6fe144e9 fetch 2 ,mem_ui_state_map 
+5c21 c285dc2a bbit1 ui_state_ble_adv ,mouse_start_discovery_norandom 
+5c22 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5c23 c3045c2a bbit0 mouse_enable_ble_random_addre ,mouse_start_discovery_norandom 
+5c24 68494695 fetcht 2 ,mem_random_addr_increase_count 
+5c25 18408401 increase 1 ,temp 
+5c26 60494695 storet 2 ,mem_random_addr_increase_count 
+5c27 604942dc storet 2 ,mem_le_lap + 1 
+5c28 180a7e00 random pdata 
+5c29 67e0c2db store 1 ,mem_le_lap 
+
+mouse_start_discovery_norandom:
+5c2a 6fe1c797 fetch 3 ,mem_mouse_le_lap_temp 
+5c2b 67e1c2de store 3 ,mem_le_lap + 3 
+5c2c 2040432d call app_lpm_mult_disable 
+5c2d 6fe14638 fetch 2 ,mem_mouse_discovery_timeout 
+5c2e 67e14790 store 2 ,mem_mouse_discovery_timer 
+5c2f 58000000 setarg 0 
+5c30 67e14781 store 2 ,mem_mouse_no_data_timer 
+5c31 67e147c0 store 2 ,mem_le_battery_level_updata_timer 
+5c32 67e0c845 store 1 ,mem_mouse_direct_timer 
+5c33 67e0c792 store 1 ,mem_mouse_bluetooth_reconnect_timeout 
+5c34 67e0c956 store 1 ,mem_mouse_clear_sensor_data_flag 
+5c35 d8e00002 arg mouse_store_eeprom_flag ,queue 
+5c36 20405f00 call mouse_enable_function_flag 
+5c37 20405ef4 call mouse_bt_discovery_button_down_disable 
+5c38 20205b62 branch mouse_check_51cmd_adv 
+
+mouse_stop_discovery:
+5c39 44c4c011 bpatch patch11_1 ,mem_patch11 
+5c3a d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
+5c3b 20405f04 call mouse_disable_function_flag 
+5c3c 70479200 jam 0 ,mem_mouse_bluetooth_reconnect_timeout 
+5c3d 20205c3e branch mouse_stop_le_adv 
+
+mouse_stop_le_adv:
+5c3e 58000000 setarg 0 
+5c3f 67e0c845 store 1 ,mem_mouse_direct_timer 
+5c40 67e14790 store 2 ,mem_mouse_discovery_timer 
+5c41 20207876 branch check_51cmd_stop_adv 
+
+mouse_store_remote_bdaddr:
+5c42 44c54011 bpatch patch11_2 ,mem_patch11 
+5c43 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5c44 c4010000 rtnbit0 mouse_store_eeprom_flag 
+5c45 d8e00002 arg mouse_store_eeprom_flag ,queue 
+5c46 20405f04 call mouse_disable_function_flag 
+5c47 20405c4a call mouse_check_device_addr 
+
+mouse_unplug_clean_bdaddr:
+5c48 20405c59 call mouse_before_store_reconn_info 
+5c49 20205ca3 branch mouse_store_device_info_delay 
+
+mouse_check_device_addr:
+5c4a 6fe08032 fetch 1 ,mem_record_bt_mode 
+5c4b c01a5c4d beq rec_4_mode ,mouse_check_le_device_addr 
+5c4c 20600000 rtn 
+
+mouse_check_le_device_addr:
+5c4d 67e0c95a store 1 ,mem_device_addr_temp 
+5c4e 6fe30178 fetch 6 ,mem_le_plap 
+
+mouse_check_bt_device_addr_common:
+5c4f 67e3495b store 6 ,mem_device_addr_temp + 1 
+5c50 6fe3c95a fetch 7 ,mem_device_addr_temp 
+5c51 d8c04667 arg mem_device1_type ,contr 
+5c52 df200003 arg 3 ,loopcnt 
+
+mouse_check_device_addr_end:
+5c53 e8438006 ifetcht 7 ,contr 
+5c54 98467c00 isub temp ,null 
+5c55 2022dc69 branch mouse_clean_addr ,zero 
+5c56 18c08c16 increase 22 ,contr 
+5c57 c2005c53 loop mouse_check_device_addr_end 
+5c58 20600000 rtn 
+
+mouse_before_store_reconn_info:
+5c59 da204667 arg mem_device1_type ,rega 
+5c5a 6fe0c666 fetch 1 ,mem_device_flag 
+5c5b 1fe0ffff increase -1 ,pdata 
+5c5c 1feffe1d mul32 pdata ,29 ,pdata 
+5c5d 9a20a200 iadd rega ,rega 
+5c5e 6fe08032 fetch 1 ,mem_record_bt_mode 
+5c5f e7e08011 istore 1 ,rega 
+5c60 c01a5c62 beq rec_4_mode ,mouse_store_le_device 
+5c61 20600000 rtn 
+
+mouse_store_le_device:
+5c62 6fe30178 fetch 6 ,mem_le_plap 
+5c63 e7e30005 istore 6 ,contw 
+5c64 d8c0428a arg mem_le_ltk ,contr 
+5c65 20407c8f call memcpy16 
+5c66 6fe342db fetch 6 ,mem_le_lap 
+5c67 e7e30005 istore 6 ,contw 
+5c68 20600000 rtn 
+
+mouse_clean_addr:
+5c69 18c08dfa increase -6 ,contr 
+5c6a 18c20a00 copy contr ,contw 
+5c6b 684b495b fetcht 6 ,mem_device_addr_temp + 1 
+5c6c 18408403 increase 3 ,temp 
+5c6d e0430005 istoret 6 ,contw 
+5c6e 20600000 rtn 
+
+mouse_select_reconn_device:
+5c6f da204667 arg mem_device1_type ,rega 
+5c70 6fe0c666 fetch 1 ,mem_device_flag 
+5c71 c1000000 rtneq mode_24g_device 
+5c72 1fe0ffff increase -1 ,pdata 
+5c73 1feffe1d mul32 pdata ,29 ,pdata 
+5c74 9a20a200 iadd rega ,rega 
+5c75 efe08011 ifetch 1 ,rega 
+5c76 67e0c3f3 store 1 ,mem_xrecord_mode 
+5c77 c01a5c79 beq rec_4_mode ,mouse_load_le_device 
+5c78 20600000 rtn 
+
+mouse_load_le_device:
+5c79 efe30006 ifetch 6 ,contr 
+
+mouse_load_le_device_end:
+5c7a 67e34116 store 6 ,mem_hci_plap 
+5c7b d8a0428a arg mem_le_ltk ,contw 
+5c7c 20407c8f call memcpy16 
+5c7d efe30006 ifetch 6 ,contr 
+5c7e 67e342db store 6 ,mem_le_lap 
+5c7f 20600000 rtn 
+
+mouse_app_initflag_check:
+5c80 44c5c011 bpatch patch11_3 ,mem_patch11 
+5c81 6fe1468e fetch 2 ,mem_store_flag 
+5c82 d840aa55 arg eeprom_init_flag ,temp 
+5c83 98467c00 isub temp ,null 
+5c84 2022dc8f branch mouse_load_device_info ,zero 
+
+mouse_app_initflag_check_next:
+5c85 6049468e storet 2 ,mem_store_flag 
+5c86 20405c9c call mouse_ble_init_address 
+5c87 6fe0c9a1 fetch 1 ,mem_device_flag_temp 
+5c88 67e0c666 store 1 ,mem_device_flag 
+5c89 6fe245e4 fetch 4 ,mem_24g_fast_conn_addr 
+5c8a 67e245e8 store 4 ,mem_24g_receiver_addr 
+5c8b 67e2458f store 4 ,mem_24g_addr 
+
+mouse_load_default_dpi:
+5c8c 6fe0c651 fetch 1 ,mem_config_sensor_dpi 
+5c8d 67e0c690 store 1 ,mem_mouse_dpi 
+5c8e 20600000 rtn 
+
+mouse_load_device_info:
+5c8f 20405c94 call mouse_otp_load_dpi 
+5c90 6fe24691 fetch 4 ,mem_mouse_24g_addr 
+5c91 67e245e8 store 4 ,mem_24g_receiver_addr 
+5c92 67e2458f store 4 ,mem_24g_addr 
+5c93 20600000 rtn 
+
+mouse_otp_load_dpi:
+5c94 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5c95 c4078000 rtnbit0 mouse_enable_load_and_store_dpi 
+5c96 6fe149fa fetch 2 ,mem_otp_offset_dpi 
+5c97 1fe22400 copy pdata ,regb 
+5c98 20405e51 call mouse_read_otp_dpi_common 
+5c99 6fe0c9d4 fetch 1 ,mem_mouse_dpi_temp 
+5c9a 205a5c8c call mouse_load_default_dpi ,blank 
+5c9b 20600000 rtn 
+
+mouse_ble_init_address:
+5c9c 6fe342db fetch 6 ,mem_le_lap 
+5c9d 67e3466e store 6 ,mem_device1_locall_addr 
+5c9e 1fe0ff00 add pdata ,0x0100 ,pdata 
+5c9f 67e3467b store 6 ,mem_device2_locall_addr 
+5ca0 1fe0ff00 add pdata ,0x0100 ,pdata 
+5ca1 67e34688 store 6 ,mem_device3_locall_addr 
+5ca2 20600000 rtn 
+
+mouse_store_device_info_delay:
+5ca3 6fe0c6f4 fetch 1 ,mem_store_information_delay_timer_init 
+5ca4 67e0c6f3 store 1 ,mem_store_information_delay_timer 
+5ca5 20600000 rtn 
+
+mouse_store_device_info:
+5ca6 44c64011 bpatch patch11_4 ,mem_patch11 
+5ca7 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5ca8 c289dcb1 bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
+5ca9 c2895cb9 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+5caa c28a5cc0 bbit1 mouse_enable_otp ,mouse_store_otp_device_info 
+5cab 20600000 rtn 
+
+mouse_store_dpi_info_check:
+5cac 44c6c011 bpatch patch11_5 ,mem_patch11 
+5cad 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5cae c289dcb5 bbit1 mouse_enable_eeprom ,mouse_store_eerpom_dpi 
+5caf c28a5d3c bbit1 mouse_enable_otp ,mouse_store_otp_dpi 
+5cb0 20600000 rtn 
+
+mouse_store_eeprom_device_info:
+5cb1 d8400080 arg 128 ,temp 
+5cb2 da204666 arg mem_device_flag ,rega 
+5cb3 da400000 arg mouse_info_eeprom_offect ,regb 
+5cb4 20206cd3 branch iicd_write_protect_eep_data 
+
+mouse_store_eerpom_dpi:
+5cb5 d8400001 arg 1 ,temp 
+5cb6 da204690 arg mem_mouse_dpi ,rega 
+5cb7 da40005a arg mouse_dpi_eeprom_offect ,regb 
+5cb8 20206cd3 branch iicd_write_protect_eep_data 
+
+mouse_store_flash_device_info:
+5cb9 20406c20 call spid_init_flash 
+5cba 20405d7b call mouse_spid_flash_release_form_powerdown 
+5cbb 20405d90 call mouse_flash_erase_sector 
+5cbc 20405d75 call mouse_information_flash_parameters 
+5cbd 20405d93 call mouse_spid_write_flash 
+5cbe 20405d82 call mouse_spid_flash_powerdown 
+5cbf 202055f6 branch mouse_sensor_spi_init 
+
+mouse_store_otp_device_info:
+5cc0 20405cc3 call mouse_write_otp_device_flag 
+5cc1 20405ce5 call mouse_write_otp_device_info 
+5cc2 20205d26 branch mouse_write_otp_le_addr_increase_count_info 
+
+mouse_write_otp_device_flag:
+5cc3 6a4149e2 fetchr regb ,2 ,mem_otp_offset_device_flag 
+5cc4 1a422600 copy regb ,regc 
+
+mouse_write_otp_device_flag_loop:
+5cc5 20405dc0 call mouse_read_otp_device_flag_common 
+5cc6 6fe0c9a1 fetch 1 ,mem_device_flag_temp 
+5cc7 203a5ccf branch mouse_device_flag_store ,blank 
+5cc8 67e0c9a0 store 1 ,mem_device_flag_last 
+5cc9 1a60a601 increase 1 ,regc 
+5cca 6fe149e4 fetch 2 ,mem_otp_offset_device_flag_end 
+5ccb 9a667c00 isub regc ,null 
+5ccc 24610000 nrtn positive 
+5ccd 1a622400 copy regc ,regb 
+5cce 20205cc5 branch mouse_write_otp_device_flag_loop 
+
+mouse_device_flag_store:
+5ccf 6fe0c9a0 fetch 1 ,mem_device_flag_last 
+5cd0 1fe17ef0 and pdata ,0xf0 ,pdata 
+5cd1 203a5cd8 branch mouse_device_flag_store_check ,blank 
+5cd2 6fe0c666 fetch 1 ,mem_device_flag 
+5cd3 67e0c9a2 store 1 ,mem_device_flag_value 
+
+mouse_devoce_flag_store_end:
+5cd4 df200001 arg 1 ,loopcnt 
+5cd5 1a622400 copy regc ,regb 
+5cd6 da2049a2 arg mem_device_flag_value ,rega 
+5cd7 20206b45 branch otp_write 
+
+mouse_device_flag_store_check:
+5cd8 6fe0c9a0 fetch 1 ,mem_device_flag_last 
+5cd9 6848c666 fetcht 1 ,mem_device_flag 
+5cda 98467c00 isub temp ,null 
+5cdb 20628000 rtn zero 
+5cdc 18520400 lshift4 temp ,temp 
+5cdd 9840fe00 iadd temp ,pdata 
+5cde 67e0c9a2 store 1 ,mem_device_flag_value 
+5cdf 1a627e00 copy regc ,pdata 
+5ce0 684949e2 fetcht 2 ,mem_otp_offset_device_flag 
+5ce1 98467c00 isub temp ,null 
+5ce2 2022dcd4 branch mouse_devoce_flag_store_end ,zero 
+5ce3 1a60a7ff increase -1 ,regc 
+5ce4 20205cd4 branch mouse_devoce_flag_store_end 
+
+mouse_write_otp_device_info:
+5ce5 6fe0c666 fetch 1 ,mem_device_flag 
+5ce6 c0005cea beq mode_24g_device ,mouse_write_otp_24g_addr 
+5ce7 c000dcfe beq mode_bt_device1 ,mouse_write_otp_le_device1 
+5ce8 c0015d12 beq mode_bt_device2 ,mouse_write_otp_le_device2 
+5ce9 20600000 rtn 
+
+mouse_write_otp_24g_addr:
+5cea 6a4149e6 fetchr regb ,2 ,mem_otp_offset_24g_addr 
+5ceb 1a422600 copy regb ,regc 
+
+mouse_otp_store_24g_addr_loop:
+5cec 20405e29 call mouse_read_otp_24g_addr_common 
+5ced 6fe249da fetch 4 ,mem_mouse_24g_addr_temp 
+5cee 203a5cf6 branch mouse_24g_addr_store ,blank 
+5cef 67e249d6 store 4 ,mem_mouse_24g_addr_last 
+5cf0 1a60a604 increase 4 ,regc 
+5cf1 6fe149e8 fetch 2 ,mem_otp_offset_24g_addr_end 
+5cf2 9a667c00 isub regc ,null 
+5cf3 24610000 nrtn positive 
+5cf4 1a622400 copy regc ,regb 
+5cf5 20205cec branch mouse_otp_store_24g_addr_loop 
+
+mouse_24g_addr_store:
+5cf6 6fe249d6 fetch 4 ,mem_mouse_24g_addr_last 
+5cf7 684a4691 fetcht 4 ,mem_mouse_24g_addr 
+5cf8 98467c00 isub temp ,null 
+5cf9 20628000 rtn zero 
+5cfa df200004 arg 4 ,loopcnt 
+5cfb da204691 arg mem_mouse_24g_addr ,rega 
+5cfc 1a622400 copy regc ,regb 
+5cfd 20206b45 branch otp_write 
+
+mouse_write_otp_le_device1:
+5cfe 6a4149ea fetchr regb ,2 ,mem_otp_offset_le_addr1 
+5cff 1a422600 copy regb ,regc 
+
+mouse_otp_store_le_addr1_loop:
+5d00 20405de1 call mouse_read_otp_le_addr1_common 
+5d01 6fe349a9 fetch 6 ,mem_mouse_le_addr1_temp 
+5d02 203a5d0a branch mouse_le_addr1_store ,blank 
+5d03 67e349a3 store 6 ,mem_mouse_le_addr1_last 
+5d04 1a60a606 increase 6 ,regc 
+5d05 6fe149ec fetch 2 ,mem_otp_offset_le_addr1_end 
+5d06 9a667c00 isub regc ,null 
+5d07 24610000 nrtn positive 
+5d08 1a622400 copy regc ,regb 
+5d09 20205d00 branch mouse_otp_store_le_addr1_loop 
+
+mouse_le_addr1_store:
+5d0a 6fe349a3 fetch 6 ,mem_mouse_le_addr1_last 
+5d0b 684b4668 fetcht 6 ,mem_device1_addr 
+5d0c 98467c00 isub temp ,null 
+5d0d 20628000 rtn zero 
+5d0e df200006 arg 6 ,loopcnt 
+5d0f da204668 arg mem_device1_addr ,rega 
+5d10 1a622400 copy regc ,regb 
+5d11 20206b45 branch otp_write 
+
+mouse_write_otp_le_device2:
+5d12 6a4149f2 fetchr regb ,2 ,mem_otp_offset_le_addr2 
+5d13 1a422600 copy regb ,regc 
+
+mouse_otp_store_le_addr2_loop:
+5d14 20405e05 call mouse_read_otp_le_addr2_common 
+5d15 6fe349c1 fetch 6 ,mem_mouse_le_addr2_temp 
+5d16 203a5d1e branch mouse_le_addr2_store ,blank 
+5d17 67e349bb store 6 ,mem_mouse_le_addr2_last 
+5d18 1a60a606 increase 6 ,regc 
+5d19 6fe149f4 fetch 2 ,mem_otp_offset_le_addr2_end 
+5d1a 9a667c00 isub regc ,null 
+5d1b 24610000 nrtn positive 
+5d1c 1a622400 copy regc ,regb 
+5d1d 20205d14 branch mouse_otp_store_le_addr2_loop 
+
+mouse_le_addr2_store:
+5d1e 6fe349bb fetch 6 ,mem_mouse_le_addr2_last 
+5d1f 684b4675 fetcht 6 ,mem_device2_addr 
+5d20 98467c00 isub temp ,null 
+5d21 20628000 rtn zero 
+5d22 df200006 arg 6 ,loopcnt 
+5d23 da204675 arg mem_device2_addr ,rega 
+5d24 1a622400 copy regc ,regb 
+5d25 20206b45 branch otp_write 
+
+mouse_write_otp_le_addr_increase_count_info:
+5d26 6fe0c666 fetch 1 ,mem_device_flag 
+5d27 c1000000 rtneq mode_24g_device 
+5d28 6a4149fe fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
+5d29 1a422600 copy regb ,regc 
+
+mouse_otp_store_le_addr_increase_count_loop:
+5d2a 20405e3d call mouse_read_otp_le_addr_increase_count_common 
+5d2b 6fe149e0 fetch 2 ,mem_random_addr_increase_count_temp 
+5d2c 203a5d34 branch mouse_le_addr_increase_count_store ,blank 
+5d2d 67e149de store 2 ,mem_random_addr_increase_count_last 
+5d2e 1a60a602 increase 2 ,regc 
+5d2f 6fe14a00 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
+5d30 9a667c00 isub regc ,null 
+5d31 24610000 nrtn positive 
+5d32 1a622400 copy regc ,regb 
+5d33 20205d2a branch mouse_otp_store_le_addr_increase_count_loop 
+
+mouse_le_addr_increase_count_store:
+5d34 6fe149de fetch 2 ,mem_random_addr_increase_count_last 
+5d35 68494695 fetcht 2 ,mem_random_addr_increase_count 
+5d36 98467c00 isub temp ,null 
+5d37 20628000 rtn zero 
+5d38 df200002 arg 2 ,loopcnt 
+5d39 da204695 arg mem_random_addr_increase_count ,rega 
+5d3a 1a622400 copy regc ,regb 
+5d3b 20206b45 branch otp_write 
+
+mouse_store_otp_dpi:
+5d3c 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5d3d c4078000 rtnbit0 mouse_enable_load_and_store_dpi 
+5d3e 6a4149fa fetchr regb ,2 ,mem_otp_offset_dpi 
+5d3f 1a422600 copy regb ,regc 
+
+mouse_otp_store_dpi_loop:
+5d40 20405e51 call mouse_read_otp_dpi_common 
+5d41 6fe0c9d4 fetch 1 ,mem_mouse_dpi_temp 
+5d42 203a5d4a branch mouse_otp_dpi_store ,blank 
+5d43 67e0c9d3 store 1 ,mem_mouse_dpi_last 
+5d44 1a60a601 increase 1 ,regc 
+5d45 6fe149fc fetch 2 ,mem_otp_offset_dpi_end 
+5d46 9a667c00 isub regc ,null 
+5d47 24610000 nrtn positive 
+5d48 1a622400 copy regc ,regb 
+5d49 20205d40 branch mouse_otp_store_dpi_loop 
+
+mouse_otp_dpi_store:
+5d4a 6fe0c9d3 fetch 1 ,mem_mouse_dpi_last 
+5d4b 1fe17ef0 and pdata ,0xf0 ,pdata 
+5d4c 203a5d53 branch mouse_dpi_store_last ,blank 
+5d4d 6fe0c690 fetch 1 ,mem_mouse_dpi 
+5d4e 67e0c9d5 store 1 ,mem_mouse_otp_dpi_value 
+
+mouse_dpi_store_end:
+5d4f df200001 arg 1 ,loopcnt 
+5d50 1a622400 copy regc ,regb 
+5d51 da2049d5 arg mem_mouse_otp_dpi_value ,rega 
+5d52 20206b45 branch otp_write 
+
+mouse_dpi_store_last:
+5d53 6fe0c9d3 fetch 1 ,mem_mouse_dpi_last 
+5d54 6848c690 fetcht 1 ,mem_mouse_dpi 
+5d55 98467c00 isub temp ,null 
+5d56 20628000 rtn zero 
+5d57 18520400 lshift4 temp ,temp 
+5d58 9840fe00 iadd temp ,pdata 
+5d59 67e0c9d5 store 1 ,mem_mouse_otp_dpi_value 
+5d5a 1a627e00 copy regc ,pdata 
+5d5b 684949fa fetcht 2 ,mem_otp_offset_dpi 
+5d5c 98467c00 isub temp ,null 
+5d5d 2022dd4f branch mouse_dpi_store_end ,zero 
+5d5e 1a60a7ff increase -1 ,regc 
+5d5f 20205d4f branch mouse_dpi_store_end 
+
+mouse_load_eeprom_info_check:
+5d60 20406cbc call iicd_read_init_pin 
+5d61 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5d62 2feffe09 isolate1 mouse_enable_2k_eeprom ,pdata 
+5d63 2440ecc4 ncall clear_eeprom_size_2k ,true 
+5d64 20405d66 call mouse_eeprom_load_recon_info 
+5d65 20205c80 branch mouse_app_initflag_check 
+
+mouse_eeprom_load_recon_info:
+5d66 d8400080 arg 128 ,temp 
+5d67 da204666 arg mem_device_flag ,rega 
+5d68 da400000 arg mouse_info_eeprom_offect ,regb 
+5d69 20206ce1 branch iicd_read_eep_data 
+
+mouse_load_eeprom_dpi:
+5d6a d8400001 arg 1 ,temp 
+5d6b da204690 arg mem_mouse_dpi ,rega 
+5d6c da40005a arg mouse_dpi_eeprom_offect ,regb 
+5d6d 20206ce1 branch iicd_read_eep_data 
+
+mouse_load_flash_info_check:
+5d6e 20406c20 call spid_init_flash 
+5d6f 20405d7b call mouse_spid_flash_release_form_powerdown 
+5d70 20405d75 call mouse_information_flash_parameters 
+5d71 20406c4d call spid_read_flash 
+5d72 20405d82 call mouse_spid_flash_powerdown 
+5d73 20405c80 call mouse_app_initflag_check 
+5d74 202055f6 branch mouse_sensor_spi_init 
+
+mouse_information_flash_parameters:
+5d75 580046e6 setarg mem_mouse_information_end 
+5d76 d8404666 arg mem_mouse_information_start ,temp 
+5d77 98460400 isub temp ,temp 
+5d78 6fe1c6ec fetch 3 ,mem_flash_base 
+5d79 da204666 arg mem_mouse_information_start ,rega 
+5d7a 20600000 rtn 
+
+mouse_spid_flash_release_form_powerdown:
+5d7b 700678ab jam flash_command_release_from_powerdown ,mem_temp 
+
+mouse_spid_write_flash_cmd:
+5d7c 2040705b call delay_nop100 
+5d7d 20406c26 call spid_unlock_flash 
+5d7e da2046ef arg mem_write_flash_head_temp ,rega 
+5d7f 68488678 fetcht 1 ,mem_temp 
+5d80 20405d84 call mouse_spid_write_flash_cmd_common 
+5d81 2020705b branch delay_nop100 
+
+mouse_spid_flash_powerdown:
+5d82 700678b9 jam flash_command_powerdown ,mem_temp 
+5d83 20205d7c branch mouse_spid_write_flash_cmd 
+
+mouse_spid_write_flash_cmd_common:
+5d84 e0408011 istoret 1 ,rega 
+5d85 1ff10400 rshift16 pdata ,temp 
+5d86 e0408005 istoret 1 ,contw 
+5d87 1fec8400 rshift8 pdata ,temp 
+5d88 e0408005 istoret 1 ,contw 
+5d89 e7e08005 istore 1 ,contw 
+5d8a 1a227e00 deposit rega 
+5d8b 67f10084 store 2 ,core_spid_txaddr 
+5d8c 58000000 setarg 0 
+5d8d 67f10088 store 2 ,core_spid_rxlen 
+5d8e 70800602 jam spid_start ,core_misc_ctrl 
+5d8f 20206be0 branch wait_spid_done 
+
+mouse_flash_erase_sector:
+5d90 6fe1c6ec fetch 3 ,mem_flash_base 
+5d91 67e1c419 store 3 ,mem_spi_write_addr 
+5d92 20206bfa branch spid_flash_erase_sector + 2 
+
+mouse_spid_write_flash:
+5d93 1fe22600 copy pdata ,regc 
+5d94 1a227e00 copy rega ,pdata 
+5d95 1fe0fffc increase -4 ,pdata 
+5d96 1fe22400 copy pdata ,regb 
+5d97 efe20012 ifetch 4 ,regb 
+5d98 67e246ef store 4 ,mem_write_flash_head_temp 
+5d99 1a627e00 copy regc ,pdata 
+5d9a 20406c3c call spid_write_flash 
+5d9b 6fe246ef fetch 4 ,mem_write_flash_head_temp 
+5d9c e7e20012 istore 4 ,regb 
+5d9d 20600000 rtn 
+
+mouse_flash_power_down:
+5d9e 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5d9f c4090000 rtnbit0 mouse_enable_flash 
+5da0 20405d82 call mouse_spid_flash_powerdown 
+5da1 204069e0 call twspi_enable 
+5da2 6848c421 fetcht 1 ,mem_spi_cs_gpio 
+5da3 20406ef3 call gpio_out_inactive 
+5da4 6848c426 fetcht 1 ,mem_spi_hold_gpio 
+5da5 202055b1 branch mouse_gpio_config_input_pd 
+
+mouse_load_otp_info_check:
+5da6 20405e43 call mouse_read_otp_dpi 
+5da7 20405db4 call mouse_read_otp_device_flag 
+5da8 20405dcc call mouse_read_otp_device_info 
+5da9 20405e2f call mouse_read_otp_le_addr_increase_count_info 
+
+mouse_otp_load_app_initflag:
+5daa df200002 arg 2 ,loopcnt 
+5dab 6fe14a02 fetch 2 ,mem_otp_offset_app_initflag 
+5dac 1fe22400 copy pdata ,regb 
+5dad da20468e arg mem_store_flag ,rega 
+5dae 20406b74 call otp_read_data 
+5daf 20405c80 call mouse_app_initflag_check 
+
+mouse_otp_store_app_initflag:
+5db0 df200002 arg 2 ,loopcnt 
+5db1 da20468e arg mem_store_flag ,rega 
+5db2 6a414a02 fetchr regb ,2 ,mem_otp_offset_app_initflag 
+5db3 20206b45 branch otp_write 
+
+mouse_read_otp_device_flag:
+5db4 6a4149e2 fetchr regb ,2 ,mem_otp_offset_device_flag 
+5db5 1a422600 copy regb ,regc 
+
+mouse_read_otp_device_flag_loop:
+5db6 20405dc0 call mouse_read_otp_device_flag_common 
+5db7 6fe0c9a1 fetch 1 ,mem_device_flag_temp 
+5db8 203a5dc3 branch mouse_device_flag_load ,blank 
+5db9 67e0c9a0 store 1 ,mem_device_flag_last 
+5dba 1a60a601 increase 1 ,regc 
+5dbb 6fe149e4 fetch 2 ,mem_otp_offset_device_flag_end 
+5dbc 9a667c00 isub regc ,null 
+5dbd 24215dc3 nbranch mouse_device_flag_load ,positive 
+5dbe 1a622400 copy regc ,regb 
+5dbf 20205db6 branch mouse_read_otp_device_flag_loop 
+
+mouse_read_otp_device_flag_common:
+5dc0 df200001 arg 1 ,loopcnt 
+5dc1 da2049a1 arg mem_device_flag_temp ,rega 
+5dc2 20206b74 branch otp_read_data 
+
+mouse_device_flag_load:
+5dc3 6fe0c9a0 fetch 1 ,mem_device_flag_last 
+5dc4 1fe20400 copy pdata ,temp 
+5dc5 1fe17ef0 and pdata ,0xf0 ,pdata 
+5dc6 203a5dc9 branch mouse_device_flag_load_last ,blank 
+5dc7 1ff1fe00 rshift4 pdata ,pdata 
+5dc8 20205dca branch mouse_device_flag_load_end 
+
+mouse_device_flag_load_last:
+5dc9 18427e00 copy temp ,pdata 
+
+mouse_device_flag_load_end:
+5dca 67e0c666 store 1 ,mem_device_flag 
+5dcb 20600000 rtn 
+
+mouse_read_otp_device_info:
+5dcc 6fe0c666 fetch 1 ,mem_device_flag 
+5dcd c0005e1d beq mode_24g_device ,mouse_read_otp_24g_addr 
+5dce c000ddd1 beq mode_bt_device1 ,mouse_read_otp_le_device1 
+5dcf c0015dd3 beq mode_bt_device2 ,mouse_read_otp_le_device2 
+5dd0 20600000 rtn 
+
+mouse_read_otp_le_device1:
+5dd1 20405dd5 call mouse_read_otp_le_device1_addr 
+5dd2 20205de7 branch mouse_read_otp_le_device1_locall_addr 
+
+mouse_read_otp_le_device2:
+5dd3 20405df9 call mouse_read_otp_le_device2_addr 
+5dd4 20205e0b branch mouse_read_otp_le_device2_locall_addr 
+
+mouse_read_otp_le_device1_addr:
+5dd5 6a4149ea fetchr regb ,2 ,mem_otp_offset_le_addr1 
+5dd6 1a422600 copy regb ,regc 
+
+mouse_read_otp_le_device1_addr_loop:
+5dd7 20405de1 call mouse_read_otp_le_addr1_common 
+5dd8 6fe349a9 fetch 6 ,mem_mouse_le_addr1_temp 
+5dd9 203a5de4 branch mouse_le_addr1_load ,blank 
+5dda 67e349a3 store 6 ,mem_mouse_le_addr1_last 
+5ddb 1a60a606 increase 6 ,regc 
+5ddc 6fe149ec fetch 2 ,mem_otp_offset_le_addr1_end 
+5ddd 9a667c00 isub regc ,null 
+5dde 24215de4 nbranch mouse_le_addr1_load ,positive 
+5ddf 1a622400 copy regc ,regb 
+5de0 20205dd7 branch mouse_read_otp_le_device1_addr_loop 
+
+mouse_read_otp_le_addr1_common:
+5de1 df200006 arg 6 ,loopcnt 
+5de2 da2049a9 arg mem_mouse_le_addr1_temp ,rega 
+5de3 20206b74 branch otp_read_data 
+
+mouse_le_addr1_load:
+5de4 6fe349a3 fetch 6 ,mem_mouse_le_addr1_last 
+5de5 67e34668 store 6 ,mem_device1_addr 
+5de6 20600000 rtn 
+
+mouse_read_otp_le_device1_locall_addr:
+5de7 6a4149ee fetchr regb ,2 ,mem_otp_offset_le_locall_addr1 
+5de8 1a422600 copy regb ,regc 
+
+mouse_read_otp_le_device1_locall_addr_loop:
+5de9 20405df3 call mouse_read_otp_le_locall_addr1_common 
+5dea 6fe349b5 fetch 6 ,mem_mouse_le_locall_addr1_temp 
+5deb 203a5df6 branch mouse_le_locall_addr1_load ,blank 
+5dec 67e349af store 6 ,mem_mouse_le_locall_addr1_last 
+5ded 1a60a606 increase 6 ,regc 
+5dee 6fe149f0 fetch 2 ,mem_otp_offset_le_locall_addr1_end 
+5def 9a667c00 isub regc ,null 
+5df0 24215df6 nbranch mouse_le_locall_addr1_load ,positive 
+5df1 1a622400 copy regc ,regb 
+5df2 20205de9 branch mouse_read_otp_le_device1_locall_addr_loop 
+
+mouse_read_otp_le_locall_addr1_common:
+5df3 df200006 arg 6 ,loopcnt 
+5df4 da2049b5 arg mem_mouse_le_locall_addr1_temp ,rega 
+5df5 20206b74 branch otp_read_data 
+
+mouse_le_locall_addr1_load:
+5df6 6fe349af fetch 6 ,mem_mouse_le_locall_addr1_last 
+5df7 67e3466e store 6 ,mem_device1_locall_addr 
+5df8 20600000 rtn 
+
+mouse_read_otp_le_device2_addr:
+5df9 6a4149f2 fetchr regb ,2 ,mem_otp_offset_le_addr2 
+5dfa 1a422600 copy regb ,regc 
+
+mouse_read_otp_le_device2_addr_loop:
+5dfb 20405e05 call mouse_read_otp_le_addr2_common 
+5dfc 6fe349c1 fetch 6 ,mem_mouse_le_addr2_temp 
+5dfd 203a5e08 branch mouse_le_addr2_load ,blank 
+5dfe 67e349bb store 6 ,mem_mouse_le_addr2_last 
+5dff 1a60a606 increase 6 ,regc 
+5e00 6fe149f4 fetch 2 ,mem_otp_offset_le_addr2_end 
+5e01 9a667c00 isub regc ,null 
+5e02 24215e08 nbranch mouse_le_addr2_load ,positive 
+5e03 1a622400 copy regc ,regb 
+5e04 20205dfb branch mouse_read_otp_le_device2_addr_loop 
+
+mouse_read_otp_le_addr2_common:
+5e05 df200006 arg 6 ,loopcnt 
+5e06 da2049c1 arg mem_mouse_le_addr2_temp ,rega 
+5e07 20206b74 branch otp_read_data 
+
+mouse_le_addr2_load:
+5e08 6fe349bb fetch 6 ,mem_mouse_le_addr2_last 
+5e09 67e34675 store 6 ,mem_device2_addr 
+5e0a 20600000 rtn 
+
+mouse_read_otp_le_device2_locall_addr:
+5e0b 6a4149f6 fetchr regb ,2 ,mem_otp_offset_le_locall_addr2 
+5e0c 1a422600 copy regb ,regc 
+
+mouse_read_otp_le_device2_locall_addr_loop:
+5e0d 20405e17 call mouse_read_otp_le_locall_addr2_common 
+5e0e 6fe349cd fetch 6 ,mem_mouse_le_locall_addr2_temp 
+5e0f 203a5e1a branch mouse_le_locall_addr2_load ,blank 
+5e10 67e349c7 store 6 ,mem_mouse_le_locall_addr2_last 
+5e11 1a60a606 increase 6 ,regc 
+5e12 6fe149f8 fetch 2 ,mem_otp_offset_le_locall_addr2_end 
+5e13 9a667c00 isub regc ,null 
+5e14 24215e1a nbranch mouse_le_locall_addr2_load ,positive 
+5e15 1a622400 copy regc ,regb 
+5e16 20205e0d branch mouse_read_otp_le_device2_locall_addr_loop 
+
+mouse_read_otp_le_locall_addr2_common:
+5e17 df200006 arg 6 ,loopcnt 
+5e18 da2049cd arg mem_mouse_le_locall_addr2_temp ,rega 
+5e19 20206b74 branch otp_read_data 
+
+mouse_le_locall_addr2_load:
+5e1a 6fe349c7 fetch 6 ,mem_mouse_le_locall_addr2_last 
+5e1b 67e3467b store 6 ,mem_device2_locall_addr 
+5e1c 20600000 rtn 
+
+mouse_read_otp_24g_addr:
+5e1d 6a4149e6 fetchr regb ,2 ,mem_otp_offset_24g_addr 
+5e1e 1a422600 copy regb ,regc 
+
+mouse_read_otp_24g_addr_loop:
+5e1f 20405e29 call mouse_read_otp_24g_addr_common 
+5e20 6fe249da fetch 4 ,mem_mouse_24g_addr_temp 
+5e21 203a5e2c branch mouse_24g_addr_load ,blank 
+5e22 67e249d6 store 4 ,mem_mouse_24g_addr_last 
+5e23 1a60a604 increase 4 ,regc 
+5e24 6fe149e8 fetch 2 ,mem_otp_offset_24g_addr_end 
+5e25 9a667c00 isub regc ,null 
+5e26 24215e2c nbranch mouse_24g_addr_load ,positive 
+5e27 1a622400 copy regc ,regb 
+5e28 20205e1f branch mouse_read_otp_24g_addr_loop 
+
+mouse_read_otp_24g_addr_common:
+5e29 df200004 arg 4 ,loopcnt 
+5e2a da2049da arg mem_mouse_24g_addr_temp ,rega 
+5e2b 20206b74 branch otp_read_data 
+
+mouse_24g_addr_load:
+5e2c 6fe249d6 fetch 4 ,mem_mouse_24g_addr_last 
+5e2d 67e24691 store 4 ,mem_mouse_24g_addr 
+5e2e 20600000 rtn 
+
+mouse_read_otp_le_addr_increase_count_info:
+5e2f 6fe0c666 fetch 1 ,mem_device_flag 
+5e30 c1000000 rtneq mode_24g_device 
+5e31 6a4149fe fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
+5e32 1a422600 copy regb ,regc 
+
+mouse_read_otp_le_addr_increase_count_loop:
+5e33 20405e3d call mouse_read_otp_le_addr_increase_count_common 
+5e34 6fe149e0 fetch 2 ,mem_random_addr_increase_count_temp 
+5e35 203a5e40 branch mouse_le_addr_increase_count_load ,blank 
+5e36 67e149de store 2 ,mem_random_addr_increase_count_last 
+5e37 1a60a602 increase 2 ,regc 
+5e38 6fe14a00 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
+5e39 9a667c00 isub regc ,null 
+5e3a 24215e40 nbranch mouse_le_addr_increase_count_load ,positive 
+5e3b 1a622400 copy regc ,regb 
+5e3c 20205e33 branch mouse_read_otp_le_addr_increase_count_loop 
+
+mouse_read_otp_le_addr_increase_count_common:
+5e3d df200002 arg 2 ,loopcnt 
+5e3e da2049e0 arg mem_random_addr_increase_count_temp ,rega 
+5e3f 20206b74 branch otp_read_data 
+
+mouse_le_addr_increase_count_load:
+5e40 6fe149e0 fetch 2 ,mem_random_addr_increase_count_temp 
+5e41 67e14695 store 2 ,mem_random_addr_increase_count 
+5e42 20600000 rtn 
+
+mouse_read_otp_dpi:
+5e43 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5e44 c307dc8c bbit0 mouse_enable_load_and_store_dpi ,mouse_load_default_dpi 
+5e45 6a4149fa fetchr regb ,2 ,mem_otp_offset_dpi 
+5e46 1a422600 copy regb ,regc 
+
+mouse_read_otp_dpi_loop:
+5e47 20405e51 call mouse_read_otp_dpi_common 
+5e48 6fe0c9d4 fetch 1 ,mem_mouse_dpi_temp 
+5e49 203a5e54 branch mouse_dpi_load ,blank 
+5e4a 67e0c9d3 store 1 ,mem_mouse_dpi_last 
+5e4b 1a60a601 increase 1 ,regc 
+5e4c 6fe149fc fetch 2 ,mem_otp_offset_dpi_end 
+5e4d 9a667c00 isub regc ,null 
+5e4e 24215e54 nbranch mouse_dpi_load ,positive 
+5e4f 1a622400 copy regc ,regb 
+5e50 20205e47 branch mouse_read_otp_dpi_loop 
+
+mouse_read_otp_dpi_common:
+5e51 df200001 arg 1 ,loopcnt 
+5e52 da2049d4 arg mem_mouse_dpi_temp ,rega 
+5e53 20206b74 branch otp_read_data 
+
+mouse_dpi_load:
+5e54 6fe0c9d3 fetch 1 ,mem_mouse_dpi_last 
+5e55 1fe20400 copy pdata ,temp 
+5e56 1fe17ef0 and pdata ,0xf0 ,pdata 
+5e57 203a5e5a branch mouse_dpi_load_last ,blank 
+5e58 1ff1fe00 rshift4 pdata ,pdata 
+5e59 20205e5b branch mouse_dpi_load_end 
+
+mouse_dpi_load_last:
+5e5a 18427e00 copy temp ,pdata 
+
+mouse_dpi_load_end:
+5e5b 67e0c690 store 1 ,mem_mouse_dpi 
+5e5c 20600000 rtn 
+
+mouse_idle:
+5e5d 44c74011 bpatch patch11_6 ,mem_patch11 
+5e5e 2040620e call mouse_low_voltage_led_no_enter_lpm 
+5e5f 204078aa call ui_check_paring_button 
+5e60 204056bb call mouse_dpi_check 
+5e61 2040580e call mouse_dpi_another_gpio_check 
+5e62 20405e66 call mouse_select_device_check 
+5e63 20405eb6 call mouse_check_select_device_by_switch 
+5e64 20405ee7 call mouse_bt_button_check 
+5e65 2020561c branch mouse_wheel_check 
+
+mouse_select_device_check:
+5e66 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5e67 c294de6b bbit1 mouse_enable_select_device_by_pb_button ,mouse_select_device_by_pb_button 
+5e68 c29bde6b bbit1 mouse_enable_pb_button_long_press_disconvery ,mouse_select_device_by_pb_button 
+5e69 20600000 rtn 
+
+mouse_select_device_by_pb_button_check_once:
+5e6a 70497503 jam 0x03 ,mem_mouse_pbkey_press_status 
+
+mouse_select_device_by_pb_button:
+5e6b 20405e6d call mouse_select_device_by_pb_button_check 
+5e6c 20205e7e branch mouse_select_device_by_pb_button_exit 
+
+mouse_select_device_by_pb_button_check:
+5e6d 44c7c011 bpatch patch11_7 ,mem_patch11 
+5e6e 6fe0c655 fetch 1 ,mem_config_select_device_button_gpio 
+5e6f c17f8000 rtneq gpio_disable 
+5e70 da200000 arg 0 ,rega 
+5e71 70497706 jam mouse_pb_key ,mem_mouse_key_temp 
+5e72 6848c655 fetcht 1 ,mem_config_select_device_button_gpio 
+5e73 20405e81 call mouse_pb_button_check 
+5e74 67e0c975 store 1 ,mem_mouse_pbkey_press_status 
+5e75 6fe0c654 fetch 1 ,mem_matrix_public_gpio 
+5e76 c07fde7c beq gpio_disable ,mouse_3io6key_pb_button_check_end 
+5e77 202058df branch mouse_matrix_public_gpio_reset 
+
+mouse_retransmit_select_device_by_pb_button:
+5e78 20405e6d call mouse_select_device_by_pb_button_check 
+5e79 1a227e00 copy rega ,pdata 
+5e7a c2835ea4 bbit1 mouse_pb_key ,mouse_select_device_button_down + 2 
+5e7b 20205e97 branch mouse_select_device_button_up 
+
+mouse_3io6key_pb_button_check_end:
+5e7c 6848c655 fetcht 1 ,mem_config_select_device_button_gpio 
+5e7d 204055b5 call mouse_gpio_config_input_pu 
+
+mouse_select_device_by_pb_button_exit:
+5e7e 1a227e00 copy rega ,pdata 
+5e7f c2835ea2 bbit1 mouse_pb_key ,mouse_select_device_button_down 
+5e80 20205e97 branch mouse_select_device_button_up 
+
+mouse_pb_button_check:
+5e81 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5e82 c296de8d bbit1 mouse_enable_pb_button_connect_gnd ,mouse_pb_button_connect_gnd 
+5e83 6fe0c975 fetch 1 ,mem_mouse_pbkey_press_status 
+5e84 1fe22600 copy pdata ,regc 
+5e85 6fe0c654 fetch 1 ,mem_matrix_public_gpio 
+5e86 c07fd931 beq gpio_disable ,mouse_3io6key_check 
+5e87 6fe0c97b fetch 1 ,mem_mouse_ghost_flag 
+5e88 243a5e8a nbranch mouse_select_device_by_pb_button_end ,blank 
+5e89 20205e8f branch mouse_pb_button_connect_matrix 
+
+mouse_select_device_by_pb_button_end:
+5e8a 70497f00 jam pb_button_state_up ,mem_select_device_button_statue 
+5e8b 70497500 jam 0 ,mem_mouse_pbkey_press_status 
+5e8c 20600000 rtn 
+
+mouse_pb_button_connect_gnd:
+5e8d 6fe0c975 fetch 1 ,mem_mouse_pbkey_press_status 
+5e8e 20205925 branch mouse_check_key_connect_gnd 
+
+mouse_pb_button_connect_matrix:
+5e8f 20406ee6 call gpio_get_bit 
+5e90 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+5e91 2020de8d branch mouse_pb_button_connect_gnd ,true 
+5e92 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+5e93 20406ef7 call gpio_out_active 
+5e94 6848c655 fetcht 1 ,mem_config_select_device_button_gpio 
+5e95 6fe0c975 fetch 1 ,mem_mouse_pbkey_press_status 
+5e96 20205925 branch mouse_check_key_connect_gnd 
+
+mouse_select_device_button_up:
+5e97 6fe0c97f fetch 1 ,mem_select_device_button_statue 
+5e98 c1000000 rtneq pb_button_state_up 
+5e99 70497f00 jam pb_button_state_up ,mem_select_device_button_statue 
+5e9a 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5e9b c39a0000 rtnbit1 mouse_enable_pb_button_short_press_enter_discovery 
+5e9c 6fe0c97c fetch 1 ,mem_bt_discovery_count 
+5e9d 1fe67c14 sub pdata ,20 ,null 
+5e9e 24415ec6 ncall mouse_ready_reconnection_by_button ,positive 
+5e9f 6fe0c4eb fetch 1 ,mem_ui_button_timeout 
+5ea0 67e0c97c store 1 ,mem_bt_discovery_count 
+5ea1 20600000 rtn 
+
+mouse_select_device_button_down:
+5ea2 20405eae call mouse_select_device_ghost_check 
+5ea3 20740000 rtn user 
+5ea4 6fe0c97f fetch 1 ,mem_select_device_button_statue 
+5ea5 c1008000 rtneq pb_button_state_down 
+5ea6 70497f01 jam pb_button_state_down ,mem_select_device_button_statue 
+5ea7 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5ea8 c29a5ba3 bbit1 mouse_enable_pb_button_short_press_enter_discovery ,mouse_long_button_bt_discovery 
+5ea9 6fe0c845 fetch 1 ,mem_mouse_direct_timer 
+5eaa 207a0000 rtn blank 
+5eab 6fe0c63c fetch 1 ,mem_mouse_direct_timeout 
+5eac 67e0c845 store 1 ,mem_mouse_direct_timer 
+5ead 20600000 rtn 
+
+mouse_select_device_ghost_check:
+5eae 78547c00 disable user 
+5eaf 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5eb0 c3968000 rtnbit1 mouse_enable_pb_button_connect_gnd 
+
+mouse_ghost_key_value_check:
+5eb1 6fe0c96f fetch 1 ,mem_mouse_lkey_press_status 
+5eb2 207a0000 rtn blank 
+5eb3 6fe0c970 fetch 1 ,mem_mouse_rkey_press_status 
+5eb4 207a0000 rtn blank 
+5eb5 20207dba branch enable_user 
+
+mouse_check_select_device_by_switch:
+5eb6 44c84012 bpatch patch12_0 ,mem_patch12 
+5eb7 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5eb8 c4150000 rtnbit0 mouse_enable_select_device_by_switch_gpio 
+5eb9 6848c65a fetcht 1 ,mem_device_switch_gpio 
+5eba 204055b5 call mouse_gpio_config_input_pu 
+5ebb 6848c65a fetcht 1 ,mem_device_switch_gpio 
+5ebc 20406ee6 call gpio_get_bit 
+5ebd 2020dec2 branch mouse_check_select_24g_device ,true 
+
+mouse_select_btdevice:
+5ebe 6fe0c666 fetch 1 ,mem_device_flag 
+5ebf c1008000 rtneq mode_bt_device1 
+5ec0 70466601 jam mode_bt_device1 ,mem_device_flag 
+5ec1 20205aaa branch mouse_stop_bluetooth_mode 
+
+mouse_check_select_24g_device:
+5ec2 6fe0c666 fetch 1 ,mem_device_flag 
+5ec3 c1000000 rtneq mode_24g_device 
+5ec4 70466600 jam mode_24g_device ,mem_device_flag 
+5ec5 20206018 branch mouse_24g_stop 
+
+mouse_ready_reconnection_by_button:
+5ec6 44c8c012 bpatch patch12_1 ,mem_patch12 
+5ec7 6fe0c71b fetch 1 ,mem_device_number 
+5ec8 c1008000 rtneq 1 
+5ec9 20405ed3 call mouse_select_device_number 
+5eca 6048c666 storet 1 ,mem_device_flag 
+
+mouse_store_device_number_before_reset:
+5ecb 20405eea call mouse_select_device_enable 
+5ecc 20405aaa call mouse_stop_bluetooth_mode 
+5ecd 204042d0 call app_evt_button_long_pressed 
+5ece 20405eec call mouse_select_device_disable 
+5ecf 70479301 jam 1 ,mem_mouse_need_soft_reset 
+5ed0 20205ca3 branch mouse_store_device_info_delay 
+
+mouse_soft_reset:
+5ed1 20405eea call mouse_select_device_enable 
+5ed2 20206ca3 branch soft_reset_chip 
+
+mouse_select_device_number:
+5ed3 6848c666 fetcht 1 ,mem_device_flag 
+5ed4 18408401 increase 1 ,temp 
+5ed5 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5ed6 c288deda bbit1 mouse_enable_24g ,mouse_select_device_number_24g 
+5ed7 18467c02 sub temp ,2 ,null 
+5ed8 24415ee1 ncall mouse_select_device_count_clean_bt ,positive 
+5ed9 20600000 rtn 
+
+mouse_select_device_number_24g:
+5eda 6fe0c71b fetch 1 ,mem_device_number 
+5edb 1fe0ffff increase -1 ,pdata 
+5edc 98467c00 isub temp ,null 
+5edd 24415edf ncall mouse_select_device_count_clean_24g ,positive 
+5ede 20600000 rtn 
+
+mouse_select_device_count_clean_24g:
+5edf d8400000 arg 0 ,temp 
+5ee0 20600000 rtn 
+
+mouse_select_device_count_clean_bt:
+5ee1 d8400001 arg 1 ,temp 
+5ee2 20600000 rtn 
+
+mouse_store_device_number2eeprom:
+5ee3 d8400001 arg 1 ,temp 
+5ee4 da204666 arg mem_device_flag ,rega 
+5ee5 da400000 arg 0 ,regb 
+5ee6 20206cd3 branch iicd_write_protect_eep_data 
+
+mouse_bt_button_check:
+5ee7 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5ee8 c41a0000 rtnbit0 mouse_enable_pb_button_short_press_enter_discovery 
+5ee9 20205e6b branch mouse_select_device_by_pb_button 
+
+mouse_select_device_enable:
+5eea d8e00000 arg mouse_select_device_flag ,queue 
+5eeb 20205f00 branch mouse_enable_function_flag 
+
+mouse_select_device_disable:
+5eec d8e00000 arg mouse_select_device_flag ,queue 
+5eed 20205f04 branch mouse_disable_function_flag 
+
+mouse_bt_cannel_reconn_enable:
+5eee d8e00003 arg mouse_bt_cannel_reconn_flag ,queue 
+5eef 20205f00 branch mouse_enable_function_flag 
+
+mouse_bt_cannel_reconn_disable:
+5ef0 d8e00003 arg mouse_bt_cannel_reconn_flag ,queue 
+5ef1 20205f04 branch mouse_disable_function_flag 
+
+mouse_bt_discovery_button_down_enable:
+5ef2 d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
+5ef3 20205f00 branch mouse_enable_function_flag 
+
+mouse_bt_discovery_button_down_disable:
+5ef4 d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
+5ef5 20205f04 branch mouse_disable_function_flag 
+
+mouse_adc_read_enable:
+5ef6 d8e00015 arg mouse_enable_adc ,queue 
+5ef7 20205f00 branch mouse_enable_function_flag 
+
+mouse_24g_set_250hz:
+5ef8 d8e00018 arg mouse_enable_24g_250hz ,queue 
+5ef9 20205f00 branch mouse_enable_function_flag 
+
+mouse_24g_search_dongle_enable:
+5efa d8e0000e arg mouse_enable_24g_search_dongle ,queue 
+5efb 20205f00 branch mouse_enable_function_flag 
+
+mouse_16m_enable:
+5efc d8e0000c arg mouse_enable_16m ,queue 
+5efd 20205f00 branch mouse_enable_function_flag 
+
+mouse_dpi_4level_enable:
+5efe d8e0001c arg mouse_enable_dpi_level_4 ,queue 
+5eff 20205f00 branch mouse_enable_function_flag 
+
+mouse_enable_function_flag:
+5f00 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5f01 f9207e00 qset1 pdata 
+5f02 67e44713 store mouse_flag_len ,mem_mouse_flag 
+5f03 20600000 rtn 
+
+mouse_disable_function_flag:
+5f04 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5f05 f93ffe00 qset0 pdata 
+5f06 67e44713 store mouse_flag_len ,mem_mouse_flag 
+5f07 20600000 rtn 
+
+mouse_customer_key_enable:
+5f08 58000000 setarg 0 
+5f09 67e4472a store 8 ,mem_customer_key_press 
+5f0a 67e44733 store 8 ,mem_customer_key_release 
+5f0b 6fe0c729 fetch 1 ,mem_mouse_customer_function 
+5f0c c0015f12 beq 2 ,mouse_customer_key_ctrl_alt_a 
+5f0d c001df14 beq 3 ,mouse_customer_ac_home 
+5f0e c0025f19 beq 4 ,mouse_customer_key_play 
+5f0f 58070008 setarg 0x070008 
+
+mouse_customer_standrad_key_set:
+5f10 67e4472b store 8 ,mem_customer_key_press + 1 
+5f11 20600000 rtn 
+
+mouse_customer_key_ctrl_alt_a:
+5f12 58040005 setarg 0x040005 
+5f13 20205f10 branch mouse_customer_standrad_key_set 
+
+mouse_customer_ac_home:
+5f14 58022303 setarg 0x022303 
+
+mouse_customer_media_key_set:
+5f15 67e4472a store 8 ,mem_customer_key_press 
+5f16 58000003 setarg 0x03 
+5f17 67e44733 store 8 ,mem_customer_key_release 
+5f18 20600000 rtn 
+
+mouse_customer_key_play:
+5f19 5800cd03 setarg 0x00cd03 
+5f1a 20205f15 branch mouse_customer_media_key_set 
+
+mouse_polling_device:
+5f1b 44c94012 bpatch patch12_2 ,mem_patch12 
+5f1c 6fe0c77f fetch 1 ,mem_reconn_times 
+5f1d 1fe0ffff increase -1 ,pdata 
+5f1e 67e0c77f store 1 ,mem_reconn_times 
+5f1f 6848c666 fetcht 1 ,mem_device_flag 
+5f20 18467c01 sub temp ,1 ,null 
+5f21 2442ded3 ncall mouse_select_device_number ,zero 
+5f22 6048c666 storet 1 ,mem_device_flag 
+5f23 20405ee3 call mouse_store_device_number2eeprom 
+5f24 20405c59 call mouse_before_store_reconn_info 
+5f25 202054a0 branch mouse_start_reconnect_device 
+
+mouse_drawing_optima:
+5f26 44c9c012 bpatch patch12_3 ,mem_patch12 
+5f27 6fe0c957 fetch 1 ,mem_config_sensor_type 
+5f28 c1018000 rtneq p3212 
+5f29 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5f2a c41c0000 rtnbit0 mouse_enable_smoother 
+5f2b 6fe24847 fetch 4 ,mem_mouse_x 
+5f2c 207a0000 rtn blank 
+5f2d 20405fcd call mouse_data_abs_check 
+5f2e 58000003 setarg 0x03 
+5f2f 20405fc3 call mouse_pdata_greater_than_check 
+5f30 205a5fbf call mouse_disable_asm ,blank 
+5f31 245a5fc1 ncall mouse_enable_asm ,blank 
+5f32 58000002 setarg 0x02 
+5f33 20405fc8 call mouse_data_less_than_check 
+5f34 205a5fbf call mouse_disable_asm ,blank 
+5f35 6fe0c861 fetch 1 ,mem_mouse_asm_flag 
+5f36 c000df3c beq 1 ,mouse_drawing_optima_modify 
+
+mouse_drawing_optima_init:
+5f37 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5f38 c41c0000 rtnbit0 mouse_enable_smoother 
+5f39 df200005 arg 5 ,loopcnt 
+5f3a d8a04861 arg mem_mouse_asm_flag ,contw 
+5f3b 20207ca1 branch clear_mem 
+
+mouse_drawing_optima_modify:
+5f3c 20405f50 call mouse_drawing_optima_xy_offset_modify 
+5f3d 6fe14862 fetch 2 ,mem_mouse_x_pre 
+5f3e 67e1070b store 2 ,mem_data_pre 
+5f3f 6fe14847 fetch 2 ,mem_mouse_x 
+5f40 67e1070d store 2 ,mem_data_current 
+5f41 20405f89 call mouse_drawing_optima_data_x 
+5f42 6fe1070b fetch 2 ,mem_data_pre 
+5f43 67e14862 store 2 ,mem_mouse_x_pre 
+5f44 6fe1070d fetch 2 ,mem_data_current 
+5f45 67e14847 store 2 ,mem_mouse_x 
+5f46 6fe14864 fetch 2 ,mem_mouse_y_pre 
+5f47 67e1070b store 2 ,mem_data_pre 
+5f48 6fe14849 fetch 2 ,mem_mouse_y 
+5f49 67e1070d store 2 ,mem_data_current 
+5f4a 20405f91 call mouse_drawing_optima_data_y 
+5f4b 6fe1070b fetch 2 ,mem_data_pre 
+5f4c 67e14864 store 2 ,mem_mouse_y_pre 
+5f4d 6fe1070d fetch 2 ,mem_data_current 
+5f4e 67e14849 store 2 ,mem_mouse_y 
+5f4f 20600000 rtn 
+
+mouse_drawing_optima_xy_offset_modify:
+5f50 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+5f51 c41c8000 rtnbit0 mouse_enable_xy_offset 
+5f52 44ca4012 bpatch patch12_4 ,mem_patch12 
+5f53 6fe14862 fetch 2 ,mem_mouse_x_pre 
+5f54 67e10712 store 2 ,mem_data_value 
+5f55 20405f64 call mouse_pre_xy_data_judge 
+5f56 67e14862 store 2 ,mem_mouse_x_pre 
+5f57 6fe14847 fetch 2 ,mem_mouse_x 
+5f58 67e10712 store 2 ,mem_data_value 
+5f59 20405f72 call mouse_current_xy_data_judge 
+5f5a 67e14847 store 2 ,mem_mouse_x 
+5f5b 6fe14864 fetch 2 ,mem_mouse_y_pre 
+5f5c 67e10712 store 2 ,mem_data_value 
+5f5d 20405f64 call mouse_pre_xy_data_judge 
+5f5e 67e14864 store 2 ,mem_mouse_y_pre 
+5f5f 6fe14849 fetch 2 ,mem_mouse_y 
+5f60 67e10712 store 2 ,mem_data_value 
+5f61 20405f72 call mouse_current_xy_data_judge 
+5f62 67e14849 store 2 ,mem_mouse_y 
+5f63 20600000 rtn 
+
+mouse_pre_xy_data_judge:
+5f64 6fe08713 fetch 1 ,mem_data_value + 1 
+5f65 203a5f67 branch mouse_pre_xy_pdata_offset ,blank 
+5f66 20205f6c branch mouse_pre_xy_ndata_offset 
+
+mouse_pre_xy_pdata_offset:
+5f67 6fe08712 fetch 1 ,mem_data_value 
+5f68 20405f7f call mouse_pre_xy_get_0_4_times 
+5f69 67e08712 store 1 ,mem_data_value 
+
+mouse_xy_data_offset_new:
+5f6a 6fe10712 fetch 2 ,mem_data_value 
+5f6b 20600000 rtn 
+
+mouse_pre_xy_ndata_offset:
+5f6c 6fe08712 fetch 1 ,mem_data_value 
+5f6d 20405fbb call mouse_pdata_invert 
+5f6e 20405f7f call mouse_pre_xy_get_0_4_times 
+5f6f 205a7dc8 call disable_blank ,blank 
+5f70 20405fb7 call mouse_pdata_get_new_value 
+5f71 20205f6a branch mouse_xy_data_offset_new 
+
+mouse_current_xy_data_judge:
+5f72 6fe08713 fetch 1 ,mem_data_value + 1 
+5f73 203a5f75 branch mouse_current_xy_pdata_offset ,blank 
+5f74 20205f79 branch mouse_current_xy_ndata_offset 
+
+mouse_current_xy_pdata_offset:
+5f75 6fe08712 fetch 1 ,mem_data_value 
+5f76 20405f84 call mouse_current_xy_get_0_6_times 
+5f77 67e08712 store 1 ,mem_data_value 
+5f78 20205f6a branch mouse_xy_data_offset_new 
+
+mouse_current_xy_ndata_offset:
+5f79 6fe08712 fetch 1 ,mem_data_value 
+5f7a 20405fbb call mouse_pdata_invert 
+5f7b 20405f84 call mouse_current_xy_get_0_6_times 
+5f7c 205a7dc8 call disable_blank ,blank 
+5f7d 20405fb7 call mouse_pdata_get_new_value 
+5f7e 20205f6a branch mouse_xy_data_offset_new 
+
+mouse_pre_xy_get_0_4_times:
+5f7f 1feffe04 mul32 pdata ,4 ,pdata 
+5f80 1fe6fc05 div pdata ,5 
+5f81 20407d62 call wait_div_end 
+5f82 1807fe00 quotient pdata 
+5f83 20600000 rtn 
+
+mouse_current_xy_get_0_6_times:
+5f84 1feffe0c mul32 pdata ,12 ,pdata 
+5f85 1fe6fc0a div pdata ,10 
+5f86 20407d62 call wait_div_end 
+5f87 1807fe00 quotient pdata 
+5f88 20600000 rtn 
+
+mouse_drawing_optima_data_x:
+5f89 6fe1070b fetch 2 ,mem_data_pre 
+5f8a 6849070d fetcht 2 ,mem_data_current 
+5f8b 9840fe00 iadd temp ,pdata 
+5f8c 6848c866 fetcht 1 ,mem_mouse_data_xtemp 
+5f8d 9840fe00 iadd temp ,pdata 
+5f8e 1fe10401 and pdata ,0x01 ,temp 
+5f8f 6048c866 storet 1 ,mem_mouse_data_xtemp 
+5f90 20205f99 branch mouse_drawing_optima_data 
+
+mouse_drawing_optima_data_y:
+5f91 6fe1070b fetch 2 ,mem_data_pre 
+5f92 6849070d fetcht 2 ,mem_data_current 
+5f93 9840fe00 iadd temp ,pdata 
+5f94 6848c867 fetcht 1 ,mem_mouse_data_ytemp 
+5f95 9840fe00 iadd temp ,pdata 
+5f96 1fe10401 and pdata ,0x01 ,temp 
+5f97 6048c867 storet 1 ,mem_mouse_data_ytemp 
+5f98 20205f99 branch mouse_drawing_optima_data 
+
+mouse_drawing_optima_data:
+5f99 67e1870f store 3 ,mem_data_sum 
+5f9a 2feffe10 isolate1 16 ,pdata 
+5f9b 2020dfa3 branch mouse_data_sum_overflow ,true 
+5f9c 6fe08710 fetch 1 ,mem_data_sum + 1 
+5f9d c07fdfaa beq 0xff ,mouse_data_sum_n 
+5f9e 6fe0870f fetch 1 ,mem_data_sum 
+
+mouse_data_store_pre:
+5f9f 1fe37e00 rshift pdata ,pdata 
+5fa0 67e1070b store 2 ,mem_data_pre 
+5fa1 67e1070d store 2 ,mem_data_current 
+5fa2 20600000 rtn 
+
+mouse_data_sum_overflow:
+5fa3 6fe08710 fetch 1 ,mem_data_sum + 1 
+5fa4 c0005fa7 beq 0 ,mouse_data_sum_overflow_p 
+5fa5 6fe1870f fetch 3 ,mem_data_sum 
+5fa6 20205f9f branch mouse_data_store_pre 
+
+mouse_data_sum_overflow_p:
+5fa7 70071100 jam 0 ,mem_data_sum + 2 
+5fa8 6fe0870f fetch 1 ,mem_data_sum 
+5fa9 20205f9f branch mouse_data_store_pre 
+
+mouse_data_sum_n:
+5faa 6fe0870f fetch 1 ,mem_data_sum 
+5fab 20405fb5 call mouse_pdata_get_half 
+5fac 67e0870b store 1 ,mem_data_pre 
+5fad 67e0870d store 1 ,mem_data_current 
+5fae 203a5fb3 branch mouse_data_zero ,blank 
+5faf 580000ff setarg 0xff 
+
+mouse_data_set_direction:
+5fb0 67e0870c store 1 ,mem_data_pre + 1 
+5fb1 67e0870e store 1 ,mem_data_current + 1 
+5fb2 20600000 rtn 
+
+mouse_data_zero:
+5fb3 58000000 setarg 0 
+5fb4 20205fb0 branch mouse_data_set_direction 
+
+mouse_pdata_get_half:
+5fb5 20405fbb call mouse_pdata_invert 
+5fb6 1fe37e00 rshift pdata ,pdata 
+
+mouse_pdata_get_new_value:
+5fb7 20405fbc call mouse_rega_in_out 
+5fb8 1fe67e00 sub pdata ,0 ,pdata 
+5fb9 67e08712 store 1 ,mem_data_value 
+5fba 20600000 rtn 
+
+mouse_pdata_invert:
+5fbb 1fe67e00 sub pdata ,0 ,pdata 
+
+mouse_rega_in_out:
+5fbc 67e08684 store 1 ,mem_rega 
+5fbd 6fe08684 fetch 1 ,mem_rega 
+5fbe 20600000 rtn 
+
+mouse_disable_asm:
+5fbf 70486100 jam 0 ,mem_mouse_asm_flag 
+5fc0 20600000 rtn 
+
+mouse_enable_asm:
+5fc1 70486101 jam 1 ,mem_mouse_asm_flag 
+5fc2 20600000 rtn 
+
+mouse_pdata_greater_than_check:
+5fc3 9a267c00 isub rega ,null 
+5fc4 24217dc8 nbranch disable_blank ,positive 
+5fc5 9a467c00 isub regb ,null 
+5fc6 24217dc8 nbranch disable_blank ,positive 
+5fc7 20207dca branch enable_blank 
+
+mouse_data_less_than_check:
+5fc8 9a267c00 isub rega ,null 
+5fc9 24610000 nrtn positive 
+5fca 9a467c00 isub regb ,null 
+5fcb 24610000 nrtn positive 
+5fcc 20207dca branch enable_blank 
+
+mouse_data_abs_check:
+5fcd 6fe14847 fetch 2 ,mem_mouse_x 
+5fce 20405fd4 call mouse_data_abs 
+5fcf 1fe22200 copy pdata ,rega 
+5fd0 6fe14849 fetch 2 ,mem_mouse_y 
+5fd1 20405fd4 call mouse_data_abs 
+5fd2 1fe22400 copy pdata ,regb 
+5fd3 20600000 rtn 
+
+mouse_data_abs:
+5fd4 67e1070d store 2 ,mem_data_current 
+5fd5 6fe0870e fetch 1 ,mem_data_current + 1 
+5fd6 c07fdfda beq 0xff ,mouse_data_reversal 
+5fd7 6fe0870d fetch 1 ,mem_data_current 
+
+mouse_data_abs_store:
+5fd8 1fe17eff and_into 0xff ,pdata 
+5fd9 20600000 rtn 
+
+mouse_data_reversal:
+5fda 6fe1070d fetch 2 ,mem_data_current 
+5fdb 1fe67e00 sub pdata ,0 ,pdata 
+5fdc 20205fd8 branch mouse_data_abs_store 
+
+mouse_24g_long_sleep_param_update_timer:
+5fdd da60461f arg mem_24g_long_sleep_param_update_timer ,regc 
+5fde da405fe0 arg mouse_24g_long_sleep_normal_param ,regb 
+5fdf 202042e0 branch timer_single_step 
+
+mouse_24g_long_sleep_normal_param:
+5fe0 6fe24613 fetch 4 ,mem_24g_long_sleep_set1 
+5fe1 67e245af store 4 ,mem_24g_enter_hibernate 
+5fe2 70477d01 jam 1 ,mem_mouse_long_mult_flag 
+5fe3 20600000 rtn 
+
+mouse_24g_long_sleep_set:
+5fe4 6fe0c740 fetch 1 ,mem_24g_long_sleep_set_level 
+5fe5 c0005fec beq 0x00 ,mouse_24g_long_sleep_set_30ms 
+5fe6 c000dfee beq 0x01 ,mouse_24g_long_sleep_set_50ms 
+5fe7 c0015fe9 beq 0x02 ,mouse_24g_long_sleep_set_80ms 
+5fe8 c001dff0 beq 0x03 ,mouse_24g_long_sleep_set_100ms 
+
+mouse_24g_long_sleep_set_80ms:
+5fe9 580ea600 setarg 0x0ea600 
+
+mouse_24g_long_sleep_set_end:
+5fea 67e24613 store 4 ,mem_24g_long_sleep_set1 
+5feb 20600000 rtn 
+
+mouse_24g_long_sleep_set_30ms:
+5fec 5805e740 setarg 0x05e740 
+5fed 20205fea branch mouse_24g_long_sleep_set_end 
+
+mouse_24g_long_sleep_set_50ms:
+5fee 580927c0 setarg 0x0927c0 
+5fef 20205fea branch mouse_24g_long_sleep_set_end 
+
+mouse_24g_long_sleep_set_100ms:
+5ff0 58124f80 setarg 0x124f80 
+5ff1 20205fea branch mouse_24g_long_sleep_set_end 
+
+mouse_24g_hibernate_set:
+5ff2 44cac012 bpatch patch12_5 ,mem_patch12 
+5ff3 70460000 jam 0 ,mem_24g_attempt_fail_flag 
+5ff4 20403647 call g24_transmit_next_packet 
+5ff5 5fffffff setarg -1 
+5ff6 67e245af store 4 ,mem_24g_enter_hibernate 
+5ff7 58000000 setarg 0 
+5ff8 67e3c846 store 7 ,mem_mouse_key 
+5ff9 70473f01 jam 1 ,mem_sensor_shutdown_flag 
+5ffa 204059ed call mouse_sensor_powerdown 
+5ffb 204054dc call mouse_setgpio_hibernate 
+5ffc 2020622b branch mouse_24g_long_sleep 
+
+mouse_wakeup_24g:
+5ffd 6fe0c73f fetch 1 ,mem_sensor_shutdown_flag 
+5ffe 245a6001 ncall mouse_wakeup_24g_from_long_sleep ,blank 
+5fff 70473f00 jam 0 ,mem_sensor_shutdown_flag 
+6000 20600000 rtn 
+
+mouse_wakeup_24g_from_long_sleep:
+6001 2040594c call mouse_init_sensor_wakeup 
+6002 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6003 c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+
+mouse_wheel_gpio_init:
+6004 6fe0c64a fetch 1 ,mem_whee_a_data_gpio 
+6005 d8400040 arg gpcfg_pullup ,temp 
+6006 20406f21 call gpio_config_function_int 
+6007 6fe0c64b fetch 1 ,mem_whee_b_data_gpio 
+6008 d8400040 arg gpcfg_pullup ,temp 
+6009 20206f21 branch gpio_config_function_int 
+
+mouse_24g_transmit_start:
+600a 2040600e call mouse_24g_fast_conn_mode_check 
+600b 6fe0c73f fetch 1 ,mem_sensor_shutdown_flag 
+600c 243a6235 nbranch mouse_24g_short_sleep ,blank 
+600d 20203610 branch g24_transmit_start_next 
+
+mouse_24g_fast_conn_mode_check:
+600e 6fe245e8 fetch 4 ,mem_24g_receiver_addr 
+600f 684a45e4 fetcht 4 ,mem_24g_fast_conn_addr 
+6010 98467c00 isub temp ,null 
+6011 2022e013 branch mouse_soft_agc_enable ,zero 
+6012 20206016 branch mouse_soft_agc_disable 
+
+mouse_soft_agc_enable:
+6013 70414300 jam 0 ,mem_gain_fix 
+6014 704141aa jam tx_power_factory ,mem_tx_power 
+6015 20600000 rtn 
+
+mouse_soft_agc_disable:
+6016 704143ff jam 0xff ,mem_gain_fix 
+6017 20600000 rtn 
+
+mouse_24g_stop:
+6018 793f8026 set0 mark_24g ,mark 
+6019 7045fc00 jam state_24g_stop ,mem_24g_conn_sm 
+601a d8e00001 arg mouse_24g_pairing_flag ,queue 
+601b 20205f04 branch mouse_disable_function_flag 
+
+mouse_24g_start_mode:
+601c 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+601d c308e02a bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+601e 20406195 call mouse_device_24g_pair_led_config 
+601f 204054ac call mouse_wakeup_from_power_check 
+6020 20346067 branch mouse_24g_reconn_dongle_start ,user 
+6021 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6022 c298602f bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
+6023 c318e02f bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
+6024 20405883 call mouse_key_check_once 
+6025 1a217e07 and rega ,0x07 ,pdata 
+6026 6848c728 fetcht 1 ,mem_mouse_commbination_key_24g 
+6027 98467c00 isub temp ,null 
+6028 2022e047 branch mouse_24g_start_pair_mode ,zero 
+6029 2020602f branch mouse_24g_reconn_general_dongle 
+
+mouse_24g_mode_setup_error:
+602a 6fe0c77f fetch 1 ,mem_reconn_times 
+602b 243a5f1b nbranch mouse_polling_device ,blank 
+602c 20600000 rtn 
+
+mouse_24g_first_start_auto_pair_mode:
+602d 204054ac call mouse_wakeup_from_power_check 
+602e 20346038 branch mouse_24g_first_start_reconn ,user 
+
+mouse_24g_reconn_general_dongle:
+602f 70466600 jam mode_24g_device ,mem_device_flag 
+6030 6fe14721 fetch 2 ,mem_mouse_24g_power_on_fast_conn_timer 
+6031 67e145de store 2 ,mem_24g_reconn_timeout 
+6032 7045e202 jam fast_conn_and_3_0_addr ,mem_24g_reconn_type 
+6033 20203534 branch g24_reconn_start 
+
+mouse_24g_start_auto_pair:
+6034 6fe145d6 fetch 2 ,mem_24g_pair_timeout_init 
+6035 67e145de store 2 ,mem_24g_reconn_timeout 
+6036 7045e204 jam pair_and_3_0_addr ,mem_24g_reconn_type 
+6037 20203534 branch g24_reconn_start 
+
+mouse_24g_first_start_reconn:
+6038 6fe0c666 fetch 1 ,mem_device_flag 
+6039 c0006067 beq mode_24g_device ,mouse_24g_reconn_dongle_start 
+603a 20405aa8 call mouse_bluetooth_fast_conn_disable 
+
+mouse_24g_first_bluetooth_reconnect:
+603b 20406018 call mouse_24g_stop 
+603c 70466601 jam mode_bt_device1 ,mem_device_flag 
+603d 20405c6f call mouse_select_reconn_device 
+603e 202054a0 branch mouse_start_reconnect_device 
+
+mouse_24g_first_bb_event_reconn_timeout:
+603f 204054ac call mouse_wakeup_from_power_check 
+6040 203454cd branch mouse_app_enter_hibernate ,user 
+6041 20205c1a branch mouse_start_discovery 
+
+mouse_24g_first_store_reconn_info:
+6042 204054ac call mouse_wakeup_from_power_check 
+6043 20740000 rtn user 
+6044 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6045 c29f5ca3 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_store_device_info_delay 
+6046 20600000 rtn 
+
+mouse_24g_start_pair_mode:
+6047 20406195 call mouse_device_24g_pair_led_config 
+6048 7045e200 jam 0 ,mem_24g_reconn_type 
+6049 d8e00001 arg mouse_24g_pairing_flag ,queue 
+604a 20405f00 call mouse_enable_function_flag 
+604b 58000000 setarg 0 
+604c 67e145de store 2 ,mem_24g_reconn_timeout 
+604d 20405c39 call mouse_stop_discovery 
+604e 70458901 jam type_ms ,mem_24g_data_type 
+604f 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6050 c30b3291 bbit0 mouse_enable_keyboard ,g24_pair_start 
+6051 70458902 jam type_kb ,mem_24g_data_type 
+6052 20203291 branch g24_pair_start 
+
+mouse_24g_attempt_fail:
+6053 6fe0c600 fetch 1 ,mem_24g_attempt_fail_flag 
+6054 243a5ff2 nbranch mouse_24g_hibernate_set ,blank 
+6055 6fe0c5e2 fetch 1 ,mem_24g_reconn_type 
+6056 c001605f beq fast_conn_and_3_0_addr ,mouse_24g_fast_conn_attempt_fail 
+6057 c002606b beq pair_and_3_0_addr ,mouse_24g_auto_pair_attempt_fail 
+6058 c001e070 beq receiver_and_3_0_addr ,mouse_reconn_dongle_attempt_fail 
+
+mouse_24g_attempt_fail_enter_hibernate:
+6059 20406018 call mouse_24g_stop 
+605a 6fe0c77f fetch 1 ,mem_reconn_times 
+605b 243a5f1b nbranch mouse_polling_device ,blank 
+605c 6fe0c666 fetch 1 ,mem_device_flag 
+605d c00054cd beq mode_24g_device ,mouse_app_enter_hibernate 
+605e 20600000 rtn 
+
+mouse_24g_fast_conn_attempt_fail:
+605f 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6060 c29f6034 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+6061 c2986034 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+6062 c31d6067 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+6063 6fe24691 fetch 4 ,mem_mouse_24g_addr 
+6064 684a46e6 fetcht 4 ,mem_mouse_compare_addr 
+6065 98467c00 isub temp ,null 
+6066 2022e047 branch mouse_24g_start_pair_mode ,zero 
+
+mouse_24g_reconn_dongle_start:
+6067 6fe145dc fetch 2 ,mem_24g_reconn_timeout_init 
+6068 67e145de store 2 ,mem_24g_reconn_timeout 
+6069 7045e203 jam receiver_and_3_0_addr ,mem_24g_reconn_type 
+606a 20203534 branch g24_reconn_start 
+
+mouse_24g_auto_pair_attempt_fail:
+606b 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+606c c31f6059 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+606d 6fe0c71b fetch 1 ,mem_device_number 
+606e c000e059 beq 1 ,mouse_24g_attempt_fail_enter_hibernate 
+606f 2020603b branch mouse_24g_first_bluetooth_reconnect 
+
+mouse_reconn_dongle_attempt_fail:
+6070 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6071 c31f6059 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+6072 c289e059 bbit1 mouse_enable_eeprom ,mouse_24g_attempt_fail_enter_hibernate 
+6073 c2896059 bbit1 mouse_enable_flash ,mouse_24g_attempt_fail_enter_hibernate 
+6074 20206035 branch mouse_24g_start_auto_pair + 1 
+
+mouse_24g_attempt_success:
+6075 6fe2458f fetch 4 ,mem_24g_addr 
+6076 67e245e8 store 4 ,mem_24g_receiver_addr 
+6077 67e24691 store 4 ,mem_mouse_24g_addr 
+6078 2040355a call g24_ch_syncword_crc8_init 
+6079 20405c0b call mouse_no_data_timer_init 
+607a 2040618e call mouse_device_poweron_led_config 
+607b 20405a73 call mouse_init_sensor_reset 
+607c 70477d00 jam 0 ,mem_mouse_long_mult_flag 
+607d 7045fc00 jam 0 ,mem_24g_conn_sm 
+607e 7045e200 jam 0 ,mem_24g_reconn_type 
+607f 6fe245e8 fetch 4 ,mem_24g_receiver_addr 
+6080 6fe245e4 fetch 4 ,mem_24g_fast_conn_addr 
+6081 98467c00 isub temp ,null 
+6082 20628000 rtn zero 
+6083 20206042 branch mouse_24g_first_store_reconn_info 
+
+mouse_24g_pairing_complete:
+6084 20405a73 call mouse_init_sensor_reset 
+6085 20405a84 call mouse_read_sensor_common 
+
+mouse_24g_pairing_complete_common:
+6086 2040618e call mouse_device_poweron_led_config 
+6087 20405c0b call mouse_no_data_timer_init 
+6088 d8e00001 arg mouse_24g_pairing_flag ,queue 
+6089 20405f04 call mouse_disable_function_flag 
+608a 58000000 setarg 0 
+608b 67e145d8 store 2 ,mem_24g_pair_timeout 
+608c 67e145de store 2 ,mem_24g_reconn_timeout 
+608d 67e0c5fc store 1 ,mem_24g_conn_sm 
+608e 67e0c860 store 1 ,mem_mouse_move_flag 
+608f 67e0c5e2 store 1 ,mem_24g_reconn_type 
+6090 6fe2458f fetch 4 ,mem_24g_addr 
+6091 67e245e8 store 4 ,mem_24g_receiver_addr 
+6092 67e24691 store 4 ,mem_mouse_24g_addr 
+6093 20205ca3 branch mouse_store_device_info_delay 
+
+mouse_24g_short_sleep_clear_wake:
+6094 20407de2 call clear_wake 
+6095 202023fd branch lpm_write_gpio_wakeup 
+
+mouse_24g_package_data:
+6096 44cb4012 bpatch patch12_6 ,mem_patch12 
+6097 c6930000 rtnmark0 mark_24g 
+6098 20405601 call mouse_motion 
+6099 24740000 nrtn user 
+609a 6fe0c77c fetch 1 ,mem_mouse_24g_long_sleep_flag 
+609b 70477c00 jam 0 ,mem_mouse_24g_long_sleep_flag 
+609c 245a6094 ncall mouse_24g_short_sleep_clear_wake ,blank 
+609d 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+609e c30b60a1 bbit0 mouse_enable_keyboard ,mouse_24g_mouse_package_data 
+609f 6fe0c96c fetch 1 ,mem_customer_key 
+60a0 243a60b6 nbranch mouse_24g_keyboard_package_data ,blank 
+
+mouse_24g_mouse_package_data:
+60a1 20405a74 call mouse_data_xy_release 
+60a2 6fe0c589 fetch 1 ,mem_24g_data_type 
+60a3 c280e0b0 bbit1 1 ,mouse_24g_mouse_package_data_now 
+60a4 6848c51a fetcht 1 ,mem_24g_txbuf + 1 
+60a5 6fe0c846 fetch 1 ,mem_mouse_key 
+60a6 9841fe00 ior temp ,pdata 
+60a7 67e0c846 store 1 ,mem_mouse_key 
+60a8 6848c51f fetcht 1 ,mem_24g_txbuf + 6 
+60a9 6fe0c84b fetch 1 ,mem_mouse_z 
+60aa 9840fe00 iadd temp ,pdata 
+60ab 67e0c84b store 1 ,mem_mouse_z 
+60ac 6848c520 fetcht 1 ,mem_24g_txbuf + 7 
+60ad 6fe0c84c fetch 1 ,mem_mouse_tz 
+60ae 9840fe00 iadd temp ,pdata 
+60af 67e0c84c store 1 ,mem_mouse_tz 
+
+mouse_24g_mouse_package_data_now:
+60b0 70458901 jam type_ms ,mem_24g_data_type 
+60b1 da200007 arg 7 ,rega 
+60b2 da404846 arg mem_mouse_key ,regb 
+60b3 6fe1484b fetch 2 ,mem_mouse_z 
+60b4 207a0000 rtn blank 
+60b5 202036db branch g24_transmit_by_interrupt_enable 
+
+mouse_24g_keyboard_package_data:
+60b6 70458902 jam type_kb ,mem_24g_data_type 
+60b7 da200009 arg 9 ,rega 
+60b8 6fe0c96d fetch 1 ,mem_customer_data_trigger 
+60b9 243a60bc nbranch mouse_customer_key_press ,blank 
+60ba da404733 arg mem_customer_key_release ,regb 
+60bb 20600000 rtn 
+
+mouse_customer_key_press:
+60bc da40472a arg mem_customer_key_press ,regb 
+60bd 20600000 rtn 
+
+mouse_24g_search_dongle_init:
+60be 58000000 setarg 0 
+60bf 67e1c6f8 store 3 ,mem_mouse_search_dongle_action 
+60c0 20600000 rtn 
+
+mouse_24g_search_dongle:
+60c1 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+60c2 c4070000 rtnbit0 mouse_enable_24g_search_dongle 
+60c3 6fe0c77d fetch 1 ,mem_mouse_long_mult_flag 
+60c4 207a0000 rtn blank 
+60c5 6fe0c602 fetch 1 ,mem_24g_abort_pac 
+60c6 207a0000 rtn blank 
+60c7 6fe0c6f5 fetch 1 ,mem_mouse_search_dongle_interval 
+60c8 1fe0fe01 increase 1 ,pdata 
+60c9 1fe17e03 and_into 3 ,pdata 
+60ca 67e0c6f5 store 1 ,mem_mouse_search_dongle_interval 
+60cb 247a0000 nrtn blank 
+60cc 7046f600 jam 0 ,mem_mouse_search_dongle_ch 
+
+mouse_24g_search_dongle_loop:
+60cd 44cbc012 bpatch patch12_7 ,mem_patch12 
+60ce 6fe0c6f6 fetch 1 ,mem_mouse_search_dongle_ch 
+60cf 1fe0fe01 increase 1 ,pdata 
+60d0 67e0c6f6 store 1 ,mem_mouse_search_dongle_ch 
+60d1 1fe67c08 sub pdata ,g24_ch_number ,null 
+60d2 242160d9 nbranch mouse_24g_search_dongle_loop_end ,positive 
+60d3 2040357f call g24_reconn_data_prep 
+60d4 20403651 call g24_transmit_receive_ack 
+60d5 242c60df nbranch mouse_24g_search_dongle_loop_retry ,sync 
+60d6 2437e0df nbranch mouse_24g_search_dongle_loop_retry ,user3 
+60d7 204060f2 call mouse_g24_ackpayload_parse 
+60d8 204060e9 call mouse_24g_search_dongle_success 
+
+mouse_24g_search_dongle_loop_end:
+60d9 2040357b call g24_txbuf_clear 
+60da 6fe0c6f7 fetch 1 ,mem_mouse_search_dongle_count 
+60db 1fe0fe01 increase 1 ,pdata 
+60dc 67e0c6f7 store 1 ,mem_mouse_search_dongle_count 
+60dd c00860e1 beq g24_ch_poll_count ,mouse_24g_search_dongle_check 
+60de 20600000 rtn 
+
+mouse_24g_search_dongle_loop_retry:
+60df 20403222 call g24_ch 
+60e0 202060cd branch mouse_24g_search_dongle_loop 
+
+mouse_24g_search_dongle_check:
+60e1 7046f700 jam 0 ,mem_mouse_search_dongle_count 
+60e2 6fe0c6f8 fetch 1 ,mem_mouse_search_dongle_action 
+60e3 c3800000 rtnbit1 g24_disconn_state 
+60e4 79207e00 set1 g24_disconn_state ,pdata 
+60e5 67e0c6f8 store 1 ,mem_mouse_search_dongle_action 
+60e6 6fe14723 fetch 2 ,mem_mouse_24g_search_dongle_time_init 
+60e7 67e14781 store 2 ,mem_mouse_no_data_timer 
+60e8 202059ed branch mouse_sensor_powerdown 
+
+mouse_24g_search_dongle_success:
+60e9 6fe0c602 fetch 1 ,mem_24g_abort_pac 
+60ea 203a60be branch mouse_24g_search_dongle_init ,blank 
+60eb 7046f700 jam 0 ,mem_mouse_search_dongle_count 
+60ec 6fe0c6f8 fetch 1 ,mem_mouse_search_dongle_action 
+60ed c4000000 rtnbit0 g24_disconn_state 
+60ee 793ffe00 set0 g24_disconn_state ,pdata 
+60ef 67e0c6f8 store 1 ,mem_mouse_search_dongle_action 
+60f0 20405c0b call mouse_no_data_timer_init 
+60f1 2020594c branch mouse_init_sensor_wakeup 
+
+mouse_g24_ackpayload_parse:
+60f2 2040366e call g24_ackpayload_parse 
+60f3 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+60f4 2fe1f008 compare 0x08 ,pdata ,0xf8 
+60f5 24608000 nrtn true 
+60f6 6fe0c4f9 fetch 1 ,mem_24g_rxbuf + 2 
+60f7 c07fdff2 beq 0xff ,mouse_24g_hibernate_set 
+60f8 20600000 rtn 
+
+mouse_g24_retransmit:
+60f9 6fe0c793 fetch 1 ,mem_mouse_need_soft_reset 
+60fa 247a0000 nrtn blank 
+60fb 20405e78 call mouse_retransmit_select_device_by_pb_button 
+60fc 204060fe call mouse_select_device_by_dpi_button_once 
+60fd 20203662 branch g24_retransmit0 
+
+mouse_select_device_by_dpi_button_once:
+60fe d8e0000c arg 12 ,queue 
+60ff 20407cef call timer_check 
+6100 247a0000 nrtn blank 
+6101 20406106 call mouse_dpi_check_once 
+6102 2040572c call mouse_dpi_key_check_long_press 
+
+mouse_g24_retransmit_100ms_timer_init:
+6103 d8e0000c arg 12 ,queue 
+6104 580000a0 setarg 160 
+6105 20207ce1 branch timer_init 
+
+mouse_dpi_check_once:
+6106 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6107 c4140000 rtnbit0 mouse_enable_select_device_by_dpi_button 
+6108 202056bb branch mouse_dpi_check 
+
+mouse_24g_before_lpm_sleep:
+6109 6fe0c666 fetch 1 ,mem_device_flag 
+610a c0802421 bne mode_24g_device ,lpm_sleep_skip_cb_function 
+610b 6fe0c5ca fetch 1 ,mem_24g_disable_fec1 
+610c 207a0000 rtn blank 
+
+mouse_peripheral_clock_off:
+610d 70804202 jam 2 ,core_clksel 
+610e 708130f8 jam 0xf8 ,core_lpm_ctrl 
+610f 20600000 rtn 
+
+mouse_logo_led_on_timer:
+6110 6fe0c65c fetch 1 ,mem_mouse_logo_led_gpio 
+6111 c17f8000 rtneq gpio_disable 
+6112 6fe14781 fetch 2 ,mem_mouse_no_data_timer 
+6113 207a0000 rtn blank 
+6114 6fe14725 fetch 2 ,mem_mouse_no_data_timeout 
+6115 68494781 fetcht 2 ,mem_mouse_no_data_timer 
+6116 98460400 isub temp ,temp 
+6117 6fe1470f fetch 2 ,mem_mouse_logo_led_on_time_init 
+6118 98467e00 isub temp ,pdata 
+6119 2021611c branch mouse_logo_led_on ,positive 
+
+mouse_logo_led_off:
+611a 6848c65c fetcht 1 ,mem_mouse_logo_led_gpio 
+611b 202061e5 branch mouse_led_off 
+
+mouse_logo_led_on:
+611c 6848c65c fetcht 1 ,mem_mouse_logo_led_gpio 
+611d 202061e4 branch mouse_led_on 
+
+mouse_dpi_led_blink_delay_timer:
+611e da604711 arg mem_mouse_dpi_led_delay_count ,regc 
+611f da406121 arg mouse_dpi_led_blink_init ,regb 
+6120 202042e0 branch timer_single_step 
+
+mouse_dpi_led_blink_init:
+6121 44cc4013 bpatch patch13_0 ,mem_patch13 
+6122 6fe0c957 fetch 1 ,mem_config_sensor_type 
+6123 c001e131 beq p3212 ,mouse_dpi_led_blink_init_another 
+6124 c005e131 beq ka8g2 ,mouse_dpi_led_blink_init_another 
+6125 6848c690 fetcht 1 ,mem_mouse_dpi 
+6126 18408402 increase 2 ,temp 
+
+mouse_dpi_led_blink_init_next:
+6127 18467c03 sub temp ,3 ,null 
+6128 20416134 call mouse_dpi_led_blink_init_level_4 ,positive 
+6129 24416138 ncall mouse_dpi_led_blink_count_clean ,positive 
+612a 18427e00 copy temp ,pdata 
+612b 9fe0fe00 iadd pdata ,pdata 
+612c 67e0c70c store 1 ,mem_mouse_multi_led_blink_count 
+
+mouse_multi_dpi_led_blink_enable:
+612d 7046fe04 jam 4 ,mem_mouse_multi_led_blink_type 
+612e 20406185 call mouse_multi_dpi_led_blink_timer_init 
+612f 7046fc01 jam multi_led_blink ,mem_mouse_multi_led_type 
+6130 20206192 branch mouse_multi_led_enable 
+
+mouse_dpi_led_blink_init_another:
+6131 6848c690 fetcht 1 ,mem_mouse_dpi 
+6132 18408401 increase 1 ,temp 
+6133 20206127 branch mouse_dpi_led_blink_init_next 
+
+mouse_dpi_led_blink_init_level_4:
+6134 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6135 c40e0000 rtnbit0 mouse_enable_dpi_level_4 
+6136 18408401 increase 1 ,temp 
+6137 20600000 rtn 
+
+mouse_dpi_led_blink_count_clean:
+6138 184085fd increase -3 ,temp 
+6139 20600000 rtn 
+
+mouse_dpi_led_blink_delay:
+613a 6fe0c661 fetch 1 ,mem_mouse_dpi_gpio 
+613b c17f8000 rtneq gpio_disable 
+613c 6fe14790 fetch 2 ,mem_mouse_discovery_timer 
+613d 247a0000 nrtn blank 
+613e 6fe145d8 fetch 2 ,mem_24g_pair_timeout 
+613f 247a0000 nrtn blank 
+6140 6fe145de fetch 2 ,mem_24g_reconn_timeout 
+6141 247a0000 nrtn blank 
+6142 6fe0c701 fetch 1 ,mem_mouse_multi_led_powon_timer 
+6143 247a0000 nrtn blank 
+6144 6fe0c712 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
+6145 203a6121 branch mouse_dpi_led_blink_init ,blank 
+6146 67e0c711 store 1 ,mem_mouse_dpi_led_delay_count 
+6147 20600000 rtn 
+
+mouse_check_dpi_blink:
+6148 78547c00 disable user 
+6149 6fe0c6fe fetch 1 ,mem_mouse_multi_led_blink_type 
+614a 1fe67c04 sub pdata ,4 ,null 
+614b 24628000 nrtn zero 
+614c 20207dba branch enable_user 
+
+mouse_low_voltage_led_timer:
+614d 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+614e c4118000 rtnbit0 mouse_enable_low_led 
+614f c4020000 rtnbit0 mouse_low_voltage_flag 
+6150 6fe14790 fetch 2 ,mem_mouse_discovery_timer 
+6151 247a0000 nrtn blank 
+6152 6fe145d8 fetch 2 ,mem_24g_pair_timeout 
+6153 247a0000 nrtn blank 
+6154 6fe145de fetch 2 ,mem_24g_reconn_timeout 
+6155 247a0000 nrtn blank 
+6156 6fe0c701 fetch 1 ,mem_mouse_multi_led_powon_timer 
+6157 247a0000 nrtn blank 
+6158 20406148 call mouse_check_dpi_blink 
+6159 20740000 rtn user 
+615a 6fe0c70e fetch 1 ,mem_mouse_multi_low_led_blink_count 
+615b 203a6173 branch mouse_low_led_blink_count_init_judge ,blank 
+
+mouse_low_led_blink_timer:
+615c 6848c709 fetcht 1 ,mem_adc_low_volatage_led_timer_count 
+615d 18408401 increase 1 ,temp 
+615e 6048c709 storet 1 ,mem_adc_low_volatage_led_timer_count 
+615f 6fe0c707 fetch 1 ,mem_mouse_low_led_blink_timer 
+6160 98467c00 isub temp ,null 
+6161 2441616a ncall mouse_low_led_timer_count_clean ,positive 
+6162 6fe0c708 fetch 1 ,mem_mouse_low_led_blink_half_timer 
+6163 98467c00 isub temp ,null 
+6164 2421616e nbranch mouse_low_voltage_led_off_judge ,positive 
+
+mouse_low_voltage_led_on_judge:
+6165 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6166 c29261d9 bbit1 mouse_enable_low_for_led ,mouse_device_led_on 
+6167 c29361d9 bbit1 mouse_enable_dpi_low_for_led ,mouse_device_led_on 
+
+mouse_low_voltage_led_on:
+6168 6848c660 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
+6169 202061e4 branch mouse_led_on 
+
+mouse_low_led_timer_count_clean:
+616a 70470901 jam 1 ,mem_adc_low_volatage_led_timer_count 
+616b 6fe0c70e fetch 1 ,mem_mouse_multi_low_led_blink_count 
+616c 1fe0ffff increase -1 ,pdata 
+616d 67e0c70e store 1 ,mem_mouse_multi_low_led_blink_count 
+
+mouse_low_voltage_led_off_judge:
+616e 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+616f c29261eb bbit1 mouse_enable_low_for_led ,mouse_device_led_off 
+6170 c29361eb bbit1 mouse_enable_dpi_low_for_led ,mouse_device_led_off 
+
+mouse_low_voltage_led_off:
+6171 6848c660 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
+6172 202061e5 branch mouse_led_off 
+
+mouse_low_led_blink_count_init_judge:
+6173 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6174 c291616e bbit1 mouse_enable_low_led_blink_limit ,mouse_low_voltage_led_off_judge 
+6175 2040617e call mouse_multi_low_led_blink_count_init 
+6176 2020615c branch mouse_low_led_blink_timer 
+
+mouse_device_multi_led_parm_init:
+6177 7046fb00 jam 0 ,mem_mouse_multi_led_blink_enable 
+6178 204061fd call mouse_device_multi_led_all_off 
+6179 7046fe00 jam 0 ,mem_mouse_multi_led_blink_type 
+617a 6fe0c707 fetch 1 ,mem_mouse_low_led_blink_timer 
+617b 1fe37e00 rshift pdata ,pdata 
+617c 67e0c708 store 1 ,mem_mouse_low_led_blink_half_timer 
+617d 20600000 rtn 
+
+mouse_multi_low_led_blink_count_init:
+617e 6fe0c70d fetch 1 ,mem_mouse_multi_lowled_blink_count_init 
+617f 67e0c70e store 1 ,mem_mouse_multi_low_led_blink_count 
+6180 20600000 rtn 
+
+mouse_multi_led_blink_timer_init:
+6181 6fe0c6fe fetch 1 ,mem_mouse_multi_led_blink_type 
+6182 c000e188 beq 1 ,mouse_device_24g_led_blink_timer_init 
+6183 c001618a beq 2 ,mouse_device_le_discovery_led_blink_timer_init 
+6184 c001e18c beq 3 ,mouse_device_le_reconn_led_blink_timer_init 
+
+mouse_multi_dpi_led_blink_timer_init:
+6185 6fe0c705 fetch 1 ,mem_mouse_dpi_led_blink_timer_init 
+
+mouse_store_multi_led_blink_timer:
+6186 67e0c706 store 1 ,mem_mouse_multi_led_blink_timer 
+6187 20600000 rtn 
+
+mouse_device_24g_led_blink_timer_init:
+6188 6fe0c702 fetch 1 ,mem_mouse_multi_24gled_blink_timer_init 
+6189 20206186 branch mouse_store_multi_led_blink_timer 
+
+mouse_device_le_discovery_led_blink_timer_init:
+618a 6fe0c703 fetch 1 ,mem_mouse_multi_le_discovery_blink_timer_init 
+618b 20206186 branch mouse_store_multi_led_blink_timer 
+
+mouse_device_le_reconn_led_blink_timer_init:
+618c 6fe0c704 fetch 1 ,mem_mouse_multi_le_reconn_blink_timer_init 
+618d 20206186 branch mouse_store_multi_led_blink_timer 
+
+mouse_device_poweron_led_config:
+618e 44ccc013 bpatch patch13_1 ,mem_patch13 
+618f 6fe0c700 fetch 1 ,mem_mouse_multi_led_powon_timer_init 
+6190 67e0c701 store 1 ,mem_mouse_multi_led_powon_timer 
+6191 7046fc00 jam multi_led_on ,mem_mouse_multi_led_type 
+
+mouse_multi_led_enable:
+6192 7046fd00 jam off ,mem_mouse_multi_led_state 
+6193 7046fb01 jam on ,mem_mouse_multi_led_blink_enable 
+6194 20600000 rtn 
+
+mouse_device_24g_pair_led_config:
+6195 44cd4013 bpatch patch13_2 ,mem_patch13 
+6196 6fe0c666 fetch 1 ,mem_device_flag 
+6197 c1800000 rtnne mode_24g_device 
+6198 204061ae call mouse_multi_led_blink_enable_init 
+6199 7046fe01 jam 1 ,mem_mouse_multi_led_blink_type 
+619a 20406188 call mouse_device_24g_led_blink_timer_init 
+619b 6fe0c6ff fetch 1 ,mem_mouse_le_reconn_blink_limit 
+619c 207a0000 rtn blank 
+619d 6fe0c70a fetch 1 ,mem_mouse_multi_24gled_blink_count_init 
+619e 202061a9 branch mouse_device_led_blink_count_init 
+
+mouse_device_le_reconn_led_config:
+619f 6fe0c666 fetch 1 ,mem_device_flag 
+61a0 c1000000 rtneq mode_24g_device 
+61a1 204061ae call mouse_multi_led_blink_enable_init 
+61a2 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+61a3 c4108000 rtnbit0 mouse_enable_bt_reconn_led_effect 
+61a4 7046fe03 jam 3 ,mem_mouse_multi_led_blink_type 
+61a5 2040618c call mouse_device_le_reconn_led_blink_timer_init 
+61a6 6fe0c6ff fetch 1 ,mem_mouse_le_reconn_blink_limit 
+61a7 207a0000 rtn blank 
+61a8 6fe0c70b fetch 1 ,mem_mouse_multi_le_reconn_blink_count_init 
+
+mouse_device_led_blink_count_init:
+61a9 67e0c70c store 1 ,mem_mouse_multi_led_blink_count 
+61aa 20600000 rtn 
+
+mouse_device_discovery_led_config:
+61ab 7046ff00 jam 0 ,mem_mouse_le_reconn_blink_limit 
+61ac 7046fe02 jam 2 ,mem_mouse_multi_led_blink_type 
+61ad 2040618a call mouse_device_le_discovery_led_blink_timer_init 
+
+mouse_multi_led_blink_enable_init:
+61ae 7046fb01 jam 1 ,mem_mouse_multi_led_blink_enable 
+61af 7046fc01 jam multi_led_blink ,mem_mouse_multi_led_type 
+61b0 202061d8 branch mouse_device_multi_led_on 
+
+mouse_led_multi_timer:
+61b1 6fe0c6fb fetch 1 ,mem_mouse_multi_led_blink_enable 
+61b2 207a0000 rtn blank 
+61b3 6fe0c6fc fetch 1 ,mem_mouse_multi_led_type 
+61b4 c000e1bd beq multi_led_blink ,mouse_multi_led_type_blink 
+
+mouse_device_multi_led_type_on:
+61b5 6fe0c701 fetch 1 ,mem_mouse_multi_led_powon_timer 
+61b6 203a61ba branch mouse_device_poweron_led_off ,blank 
+61b7 1fe0ffff increase -1 
+61b8 67e0c701 store 1 ,mem_mouse_multi_led_powon_timer 
+61b9 202061d9 branch mouse_device_led_on 
+
+mouse_device_poweron_led_off:
+61ba 7046fb00 jam 0 ,mem_mouse_multi_led_blink_enable 
+61bb 2040617e call mouse_multi_low_led_blink_count_init 
+61bc 202061eb branch mouse_device_led_off 
+
+mouse_multi_led_type_blink:
+61bd 44cdc013 bpatch patch13_3 ,mem_patch13 
+61be 6fe0c6fe fetch 1 ,mem_mouse_multi_led_blink_type 
+61bf 207a0000 rtn blank 
+61c0 c00261c5 beq 4 ,mouse_device_led_blink_limit 
+61c1 202061c2 branch mouse_device_led_blink_judge 
+
+mouse_device_led_blink_judge:
+61c2 6fe0c6ff fetch 1 ,mem_mouse_le_reconn_blink_limit 
+61c3 c000e1c5 beq 1 ,mouse_device_led_blink_limit 
+61c4 202061c7 branch mouse_multi_led_type_blink_next 
+
+mouse_device_led_blink_limit:
+61c5 6fe0c70c fetch 1 ,mem_mouse_multi_led_blink_count 
+61c6 203a61e6 branch mouse_multi_led_off_judge ,blank 
+
+mouse_multi_led_type_blink_next:
+61c7 da604706 arg mem_mouse_multi_led_blink_timer ,regc 
+61c8 da4061ca arg mouse_multi_led_type_blink_start ,regb 
+61c9 202042e0 branch timer_single_step 
+
+mouse_multi_led_type_blink_start:
+61ca 6fe0c6fe fetch 1 ,mem_mouse_multi_led_blink_type 
+61cb c00261d2 beq 4 ,mouse_multi_led_blink_count_decrease 
+61cc 6fe0c6ff fetch 1 ,mem_mouse_le_reconn_blink_limit 
+61cd c000e1d2 beq 1 ,mouse_multi_led_blink_count_decrease 
+
+mouse_multi_led_blink:
+61ce 20406181 call mouse_multi_led_blink_timer_init 
+61cf 6fe0c6fd fetch 1 ,mem_mouse_multi_led_state 
+61d0 c000e1e8 beq on ,mouse_multi_led_off_judge_next 
+61d1 202061d6 branch mouse_multi_led_on_judge 
+
+mouse_multi_led_blink_count_decrease:
+61d2 6fe0c70c fetch 1 ,mem_mouse_multi_led_blink_count 
+61d3 1fe0ffff increase -1 
+61d4 67e0c70c store 1 ,mem_mouse_multi_led_blink_count 
+61d5 202061ce branch mouse_multi_led_blink 
+
+mouse_multi_led_on_judge:
+61d6 6fe0c6fe fetch 1 ,mem_mouse_multi_led_blink_type 
+61d7 c0026208 beq 4 ,mouse_multi_dpi_led_on_judge 
+
+mouse_device_multi_led_on:
+61d8 7046fd01 jam on ,mem_mouse_multi_led_state 
+
+mouse_device_led_on:
+61d9 44ce4013 bpatch patch13_4 ,mem_patch13 
+61da 6fe0c666 fetch 1 ,mem_device_flag 
+61db c00061df beq mode_24g_device ,mouse_device_24g_led_on 
+61dc c000e1e1 beq mode_bt_device1 ,mouse_device_bt1_led_on 
+61dd c00161e3 beq mode_bt_device2 ,mouse_device_bt2_led_on 
+61de 20600000 rtn 
+
+mouse_device_24g_led_on:
+61df 6848c65d fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+61e0 202061e4 branch mouse_led_on 
+
+mouse_device_bt1_led_on:
+61e1 6848c65e fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+61e2 202061e4 branch mouse_led_on 
+
+mouse_device_bt2_led_on:
+61e3 6848c65f fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+
+mouse_led_on:
+61e4 20206ef7 branch gpio_out_active 
+
+mouse_led_off:
+61e5 20206ef3 branch gpio_out_inactive 
+
+mouse_multi_led_off_judge:
+61e6 7046fb00 jam 0 ,mem_mouse_multi_led_blink_enable 
+61e7 7046fe00 jam 0 ,mem_mouse_multi_led_blink_type 
+
+mouse_multi_led_off_judge_next:
+61e8 6fe0c6fe fetch 1 ,mem_mouse_multi_led_blink_type 
+61e9 c0026202 beq 4 ,mouse_multi_dpi_led_off_judge 
+
+mouse_device_multi_led_off:
+61ea 7046fd00 jam off ,mem_mouse_multi_led_state 
+
+mouse_device_led_off:
+61eb 44cec013 bpatch patch13_5 ,mem_patch13 
+61ec 6fe0c666 fetch 1 ,mem_device_flag 
+61ed c00061f1 beq mode_24g_device ,mouse_device_24g_led_off 
+61ee c000e1f5 beq mode_bt_device1 ,mouse_device_bt1_led_off 
+61ef c00161f9 beq mode_bt_device2 ,mouse_device_bt2_led_off 
+61f0 20600000 rtn 
+
+mouse_device_24g_led_off:
+61f1 6848c65d fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+61f2 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+61f3 c31061e5 bbit0 mouse_enable_1io2led ,mouse_led_off 
+61f4 20206f0f branch gpio_set_high_impedance 
+
+mouse_device_bt1_led_off:
+61f5 6848c65e fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+61f6 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+61f7 c31061e5 bbit0 mouse_enable_1io2led ,mouse_led_off 
+61f8 20206f0f branch gpio_set_high_impedance 
+
+mouse_device_bt2_led_off:
+61f9 6848c65f fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+61fa 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+61fb c31061e5 bbit0 mouse_enable_1io2led ,mouse_led_off 
+61fc 20206f0f branch gpio_set_high_impedance 
+
+mouse_device_multi_led_all_off:
+61fd 204061f1 call mouse_device_24g_led_off 
+61fe 204061f5 call mouse_device_bt1_led_off 
+61ff 204061f9 call mouse_device_bt2_led_off 
+6200 2040616e call mouse_low_voltage_led_off_judge 
+6201 20206202 branch mouse_multi_dpi_led_off_judge 
+
+mouse_multi_dpi_led_off_judge:
+6202 7046fd00 jam off ,mem_mouse_multi_led_state 
+6203 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6204 c292e1ea bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_off 
+6205 c29361ea bbit1 mouse_enable_dpi_low_for_led ,mouse_device_multi_led_off 
+
+mouse_multi_dpi_led_off:
+6206 6848c661 fetcht 1 ,mem_mouse_dpi_gpio 
+6207 202061e5 branch mouse_led_off 
+
+mouse_multi_dpi_led_on_judge:
+6208 7046fd01 jam on ,mem_mouse_multi_led_state 
+6209 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+620a c292e1d8 bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_on 
+620b c29361d8 bbit1 mouse_enable_dpi_low_for_led ,mouse_device_multi_led_on 
+
+mouse_multi_dpi_led_on:
+620c 6848c661 fetcht 1 ,mem_mouse_dpi_gpio 
+620d 202061e4 branch mouse_led_on 
+
+mouse_low_voltage_led_no_enter_lpm:
+620e 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+620f c4020000 rtnbit0 mouse_low_voltage_flag 
+6210 6fe0c709 fetch 1 ,mem_adc_low_volatage_led_timer_count 
+6211 6848c708 fetcht 1 ,mem_mouse_low_led_blink_half_timer 
+6212 1fe67c02 sub pdata ,temp ,null 
+6213 2021621b branch mouse_lpm_mode_clear ,positive 
+
+mouse_low_voltage_led_no_enter_lpm_next:
+6214 6fe0c666 fetch 1 ,mem_device_flag 
+6215 c0006218 beq mode_24g_device ,g24_transmit_by_interrupt_exit_check 
+6216 70409401 jam 1 ,mem_lpm_mode 
+6217 20600000 rtn 
+
+g24_transmit_by_interrupt_exit_check:
+6218 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+6219 c38c0000 rtnbit1 mouse_enable_24g_250hz 
+621a 202036ca branch g24_transmit_by_interrupt_exit 
+
+mouse_lpm_mode_clear:
+621b 6fe0c666 fetch 1 ,mem_device_flag 
+621c c00036db beq mode_24g_device ,g24_transmit_by_interrupt_enable 
+621d 70409400 jam 0 ,mem_lpm_mode 
+621e 20600000 rtn 
+
+mouse_store_signal_rssi:
+621f 6fe08009 fetch 1 ,mem_rssi 
+6220 202035cb branch rssi_signal 
+
+mouse_le_transmit:
+6221 2040621f call mouse_store_signal_rssi 
+6222 202036e8 branch power_ctrl_start 
+
+mouse_le_set_lpm_mult:
+6223 6fe0c843 fetch 1 ,mem_le_connect_status_flag 
+6224 2fe00603 compare 3 ,pdata ,3 
+6225 2420fdc8 nbranch disable_blank ,true 
+6226 2040432b call app_lpm_mult_enable 
+6227 20207dca branch enable_blank 
+
+mouse_set_lpm_mult:
+6228 6fe144e9 fetch 2 ,mem_ui_state_map 
+6229 c284e223 bbit1 ui_state_ble_connected ,mouse_le_set_lpm_mult 
+622a 20600000 rtn 
+
+mouse_24g_long_sleep:
+622b 204036b4 call g24_lpm_wait 
+622c 24740000 nrtn user 
+622d 70477c01 jam 1 ,mem_mouse_24g_long_sleep_flag 
+622e 204036be call g24_setgpio_lpm_before 
+622f 70477200 jam 0 ,mem_mouse_24g_sleep_miss 
+6230 204062aa call mouse_24g_send_time_long_wake 
+6231 6fe0c73f fetch 1 ,mem_sensor_shutdown_flag 
+6232 245a54dc ncall mouse_setgpio_hibernate ,blank 
+6233 6fe245af fetch 4 ,mem_24g_enter_hibernate 
+6234 20203622 branch g24_long_seep2 
+
+mouse_24g_short_sleep:
+6235 6fe0c77b fetch 1 ,mem_mouse_sleep_deal_type 
+6236 203a3616 branch g24_short_sleep ,blank 
+6237 204036b4 call g24_lpm_wait 
+6238 24740000 nrtn user 
+6239 6fe0c772 fetch 1 ,mem_mouse_24g_sleep_miss 
+623a 70477200 jam 0 ,mem_mouse_24g_sleep_miss 
+623b 1fe67c00 sub pdata ,0 ,null 
+623c 2422e25c nbranch mouse_24g_short_sleep_last_miss ,zero 
+623d 68494622 fetcht 2 ,mem_24g_retransmit 
+623e 18467c00 sub temp ,0 ,null 
+623f 2022e252 branch mouse_24g_short_sleep_default ,zero 
+6240 6fe24767 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+6241 203a6252 branch mouse_24g_short_sleep_default ,blank 
+
+mouse_24g_short_sleep_notify:
+6242 684a4751 fetcht 4 ,mem_mouse_24g_tsniff 
+6243 98460400 isub temp ,temp 
+6244 604a4777 storet 4 ,mem_mouse_24g_sleep_miss_temp 
+6245 24216255 nbranch mouse_24g_short_sleep_long ,positive 
+6246 6fe1c608 fetch 3 ,mem_24g_short_sleep_set 
+6247 98467e00 isub temp ,pdata 
+6248 24216260 nbranch mouse_24g_short_sleep_2 ,positive 
+6249 d8400600 arg 0x600 ,temp 
+624a 98467c00 isub temp ,null 
+624b 24216260 nbranch mouse_24g_short_sleep_2 ,positive 
+
+mouse_24g_short_sleep2:
+624c 67e24773 store 4 ,mem_mouse_24g_sleep_time_temp 
+624d 20406259 call mouse_24g_miss_temp_clear 
+624e 6fe24773 fetch 4 ,mem_mouse_24g_sleep_time_temp 
+
+mouse_24g_short_sleep3:
+624f 20407d25 call clk2lpo 
+6250 604a40a9 storet 4 ,mem_sleep_counter 
+6251 2020241e branch lpm_sleep 
+
+mouse_24g_short_sleep_default:
+6252 20406259 call mouse_24g_miss_temp_clear 
+6253 6fe1c608 fetch 3 ,mem_24g_short_sleep_set 
+6254 2020624c branch mouse_24g_short_sleep2 
+
+mouse_24g_short_sleep_long:
+6255 18460400 sub temp ,0 ,temp 
+6256 6fe1c608 fetch 3 ,mem_24g_short_sleep_set 
+6257 9840fe00 iadd temp ,pdata 
+6258 2020624c branch mouse_24g_short_sleep2 
+
+mouse_24g_miss_temp_clear:
+6259 58000000 setarg 0 
+625a 67e24777 store 4 ,mem_mouse_24g_sleep_miss_temp 
+625b 20600000 rtn 
+
+mouse_24g_short_sleep_last_miss:
+625c 6fe24767 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+625d 684a4777 fetcht 4 ,mem_mouse_24g_sleep_miss_temp 
+625e 9840fe00 iadd temp ,pdata 
+625f 20206242 branch mouse_24g_short_sleep_notify 
+
+mouse_24g_short_sleep_2:
+6260 70477201 jam 1 ,mem_mouse_24g_sleep_miss 
+6261 20600000 rtn 
+
+mouse_24g_transmit_callback:
+6262 20406264 call mouse_24g_send_time_check 
+6263 20205ffd branch mouse_wakeup_24g 
+
+mouse_24g_send_time_check:
+6264 6fe0c77b fetch 1 ,mem_mouse_sleep_deal_type 
+6265 207a0000 rtn blank 
+6266 6fe0c618 fetch 1 ,mem_24g_transmit_by_interrupt 
+6267 c000e2a6 beq g24_tx_timer_int_enable ,mouse_24g_send_timer_first 
+6268 6fe0c760 fetch 1 ,mem_mouse_24g_tx_count 
+6269 203a62a6 branch mouse_24g_send_timer_first ,blank 
+626a 1b227e00 copy clkn ,pdata 
+626b 684b4761 fetcht 6 ,mem_mouse_24g_tx_time_last 
+626c 67e34761 store 6 ,mem_mouse_24g_tx_time_last 
+626d 20407d10 call clk_diff_rt 
+626e 67e24767 store 4 ,mem_mouse_24g_tx_time_last_delt 
+626f 6fe0c772 fetch 1 ,mem_mouse_24g_sleep_miss 
+6270 247a0000 nrtn blank 
+6271 6fe14622 fetch 2 ,mem_24g_retransmit 
+6272 247a0000 nrtn blank 
+6273 6fe24767 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+
+mouse_24g_send_time_check_1:
+6274 684ac76b fetcht 5 ,mem_mouse_24g_tx_time_sum 
+6275 9840fe00 iadd temp ,pdata 
+6276 67e2c76b store 5 ,mem_mouse_24g_tx_time_sum 
+6277 6848c760 fetcht 1 ,mem_mouse_24g_tx_count 
+6278 6fe0c770 fetch 1 ,mem_mouse_24g_tx_time_sum_count 
+6279 98467c00 isub temp ,null 
+627a 2022e27e branch mouse_24g_send_time_check_average ,zero 
+627b 18408401 increase 1 ,temp 
+627c 6048c760 storet 1 ,mem_mouse_24g_tx_count 
+627d 20600000 rtn 
+
+mouse_24g_send_time_check_average:
+627e 70476001 jam 1 ,mem_mouse_24g_tx_count 
+627f d8400000 arg 0 ,temp 
+6280 6fe2c76b fetch 5 ,mem_mouse_24g_tx_time_sum 
+6281 604ac76b storet 5 ,mem_mouse_24g_tx_time_sum 
+6282 6848c770 fetcht 1 ,mem_mouse_24g_tx_time_sum_count 
+6283 9846fc00 idiv temp 
+6284 20407d62 call wait_div_end 
+6285 1807a200 quotient rega 
+6286 6fe24751 fetch 4 ,mem_mouse_24g_tsniff 
+6287 6848c771 fetcht 1 ,mem_mouse_24g_tx_time_offset 
+6288 98460400 isub temp ,temp 
+6289 184085d8 increase -40 ,temp 
+628a 1a227e00 copy rega ,pdata 
+628b 98467e00 isub temp ,pdata 
+628c 20216299 branch mouse_24g_send_time_check_average_late ,positive 
+628d 1fe67e00 sub pdata ,0 ,pdata 
+628e 1feb7e00 rshift2 pdata ,pdata 
+628f 6849c608 fetcht 3 ,mem_24g_short_sleep_set 
+6290 98408400 iadd temp ,temp 
+6291 44cf4013 bpatch patch13_6 ,mem_patch13 
+6292 6fe1c75d fetch 3 ,mem_mouse_24g_short_sleep_set_init 
+6293 da201800 arg 0x1800 ,rega 
+6294 9a20fe00 iadd rega ,pdata 
+6295 98467c00 isub temp ,null 
+6296 242162a4 nbranch mouse_24g_send_time_check_average_min ,positive 
+6297 6049c608 storet 3 ,mem_24g_short_sleep_set 
+6298 20600000 rtn 
+
+mouse_24g_send_time_check_average_late:
+6299 1feb0400 rshift2 pdata ,temp 
+629a 6fe1c608 fetch 3 ,mem_24g_short_sleep_set 
+629b 98460400 isub temp ,temp 
+629c 44cfc013 bpatch patch13_7 ,mem_patch13 
+629d 6fe1c75d fetch 3 ,mem_mouse_24g_short_sleep_set_init 
+629e da201800 arg 0x1800 ,rega 
+629f 9a267e00 isub rega ,pdata 
+62a0 98467c00 isub temp ,null 
+62a1 202162a4 branch mouse_24g_send_time_check_average_min ,positive 
+62a2 6049c608 storet 3 ,mem_24g_short_sleep_set 
+62a3 20600000 rtn 
+
+mouse_24g_send_time_check_average_min:
+62a4 67e1c608 store 3 ,mem_24g_short_sleep_set 
+62a5 20600000 rtn 
+
+mouse_24g_send_timer_first:
+62a6 70476001 jam 1 ,mem_mouse_24g_tx_count 
+62a7 1b227e00 copy clkn ,pdata 
+62a8 67e34761 store 6 ,mem_mouse_24g_tx_time_last 
+62a9 20600000 rtn 
+
+mouse_24g_send_time_long_wake:
+62aa 58000000 setarg 0 
+62ab 67e0c760 store 1 ,mem_mouse_24g_tx_count 
+62ac 67e2c76b store 5 ,mem_mouse_24g_tx_time_sum 
+62ad 20600000 rtn 
+
+shutter_init:
+62ae 20407396 call enable_authrom 
+62af 20758000 rtn wake 
+62b0 58006327 setarg shutter_process_idle 
+62b1 67e143db store 2 ,mem_cb_idle_process 
+62b2 580062d9 setarg shutter_process_bb_event 
+62b3 67e143dd store 2 ,mem_cb_bb_event_process 
+62b4 5800638a setarg ble_shutter_receive_data 
+62b5 67e143df store 2 ,mem_cb_att_write 
+62b6 5800630e setarg shutter_le_bb_event_timer 
+62b7 67e143e3 store 2 ,mem_cb_event_timer 
+62b8 58006365 setarg shutter_key_change 
+62b9 67e14524 store 2 ,mem_cb_shutter_keycan 
+62ba 204062c2 call shutter_common_init 
+62bb 44d04014 bpatch patch14_0 ,mem_patch14 
+62bc 20406396 call shutter_load_buffer_config_form_datarom 
+
+shutter_power_switch:
+62bd 6fe0c51a fetch 1 ,mem_shutter_hard_soft_switch_case 
+62be c00062d0 beq hard_switch ,shutter_hart_swtich_power_on 
+62bf 6fe0c51b fetch 1 ,mem_shutter_soft_switch_button_gpio 
+62c0 67e0c4ec store 1 ,mem_ui_button_gpio 
+62c1 202063a1 branch ui_soft_swtich_init 
+
+shutter_common_init:
+62c2 5800632b setarg shutter_le_before_hibernate 
+62c3 67e143d5 store 2 ,mem_cb_before_hibernate 
+62c4 58006329 setarg shutter_process_lpm_before 
+62c5 67e143d7 store 2 ,mem_cb_before_lpm 
+62c6 58006340 setarg shutter_soft_swtich_power_on 
+62c7 67e1451f store 2 ,mem_shutter_soft_switch_poweron_callback_function 
+62c8 5800639a setarg shutter_soft_swtich_power_off 
+62c9 67e14521 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
+62ca 70415e07 jam 7 ,mem_version 
+62cb 20402969 call le_modified_name_adv 
+62cc 2040638d call shutter_init_param 
+62cd 20406ff7 call keyscan_key_init 
+62ce 204078ad call queue_init 
+62cf 202077ac branch ui_led_init_global 
+
+shutter_hart_swtich_power_on:
+62d0 7044ecff jam ui_button_gpio_disable ,mem_ui_button_gpio 
+62d1 70451c01 jam ss_state_power_on ,mem_shutter_soft_switch_power_state 
+62d2 20206340 branch shutter_start_reconnect 
+
+shutter_le_scale_lpm_lock:
+62d3 6fe0c51c fetch 1 ,mem_shutter_soft_switch_power_state 
+62d4 c0014308 beq ss_state_power_off ,app_get_lpm_wake_lock 
+62d5 204069b9 call l2cap_malloc_get_full_map 
+62d6 6fe0c441 fetch 1 ,mem_used_map 
+62d7 243a4308 nbranch app_get_lpm_wake_lock ,blank 
+62d8 2020430a branch app_put_lpm_wake_lock 
+
+shutter_process_bb_event:
+62d9 1a627e00 copy regc ,pdata 
+62da c00a62e2 beq bt_evt_le_connected ,ble_shutter_process_baseband_connect 
+62db c00ae2e6 beq bt_evt_le_disconnected ,ble_shutter_process_baseband_disconnect 
+62dc c01fe2e9 beq bt_evt_le_reconnect_complete ,ble_shutter_process_reconnect_complete 
+62dd c02062ef beq bt_evt_le_parse_conn_papa_update_rsp ,ble_shutter_process_parse_connect_parameter_update_response 
+62de c00863b6 beq bt_evt_button_long_pressed ,ui_soft_switch_botton_long_press 
+62df c01662f5 beq bt_evt_button_down ,shutter_process_soft_swtich_button_down 
+62e0 c016e300 beq bt_evt_button_up ,shutter_process_soft_swtich_button_up 
+62e1 20600000 rtn 
+
+ble_shutter_process_baseband_connect:
+62e2 2040632d call shutter_stop_bluetooth_discovery 
+62e3 58000000 setarg 0 
+62e4 67e144f8 store 2 ,mem_ble_shutter_reconn_timer 
+62e5 20204325 branch app_led_off 
+
+ble_shutter_process_baseband_disconnect:
+62e6 204078ad call queue_init 
+62e7 7044f100 jam 0 ,mem_ble_shutter_enable_notify 
+62e8 20206340 branch shutter_start_reconnect 
+
+ble_shutter_process_reconnect_complete:
+62e9 204078ad call queue_init 
+62ea 7044f101 jam 1 ,mem_ble_shutter_enable_notify 
+62eb 6fe44502 fetch 8 ,mem_ble_shutter_interval_min 
+62ec 67e442d3 store 8 ,mem_le_interval_min 
+62ed 2040432b call app_lpm_mult_enable 
+62ee 20202e93 branch le_l2cap_tx_update_req 
+
+ble_shutter_process_parse_connect_parameter_update_response:
+62ef 6fe1433c fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+62f0 c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
+62f1 6fe4450a fetch 8 ,mem_ble_shutter_interval_min_new 
+62f2 207a0000 rtn blank 
+62f3 67e442d3 store 8 ,mem_le_interval_min 
+62f4 20202e93 branch le_l2cap_tx_update_req 
+
+shutter_process_soft_swtich_button_down:
+62f5 6fe0c51a fetch 1 ,mem_shutter_hard_soft_switch_case 
+62f6 c1000000 rtneq hard_switch 
+62f7 6fe0c51c fetch 1 ,mem_shutter_soft_switch_power_state 
+62f8 c1808000 rtnne ss_state_power_on 
+62f9 204062fb call shutter_store_currenct_led_state 
+62fa 20204323 branch app_led_on 
+
+shutter_store_currenct_led_state:
+62fb 7046bd01 jam 1 ,mem_shutter_soft_swtich_botton_down 
+62fc df20000b arg 11 ,loopcnt 
+62fd d8a046be arg mem_shutter_soft_swtich_led_struct_temp ,contw 
+62fe d8c046a7 arg mem_shutter_led_struct_app_led ,contr 
+62ff 20207cda branch memcpy 
+
+shutter_process_soft_swtich_button_up:
+6300 6fe0c51a fetch 1 ,mem_shutter_hard_soft_switch_case 
+6301 c1000000 rtneq hard_switch 
+6302 6fe0c51c fetch 1 ,mem_shutter_soft_switch_power_state 
+6303 c000e305 beq ss_state_power_on ,shutter_load_currenct_led_state 
+6304 202063b2 branch ui_soft_switch_botton_up 
+
+shutter_load_currenct_led_state:
+6305 6fe0c6bd fetch 1 ,mem_shutter_soft_swtich_botton_down 
+6306 c1808000 rtnne 1 
+6307 7046bd00 jam 0 ,mem_shutter_soft_swtich_botton_down 
+6308 6fe144e9 fetch 2 ,mem_ui_state_map 
+6309 c284c325 bbit1 ui_state_ble_connected ,app_led_off 
+630a df20000b arg 11 ,loopcnt 
+630b d8c046be arg mem_shutter_soft_swtich_led_struct_temp ,contr 
+630c d8a046a7 arg mem_shutter_led_struct_app_led ,contw 
+630d 20207cda branch memcpy 
+
+shutter_le_bb_event_timer:
+630e 20406311 call shutter_check_sleep_timer 
+630f 20406318 call shutter_check_power_off_timer 
+6310 20206322 branch ble_shutter_reconn_timer 
+
+shutter_check_sleep_timer:
+6311 da604518 arg mem_shutter_sleep_timer ,regc 
+6312 da406314 arg shutter_sleep_timeout ,regb 
+6313 202042e7 branch timer_single_step_2b 
+
+shutter_sleep_timeout:
+6314 70451c02 jam ss_state_power_off ,mem_shutter_soft_switch_power_state 
+6315 20404325 call app_led_off 
+6316 2040634e call shutter_disconnect_current_connection 
+6317 2020639e branch shutter_wait_power_off 
+
+shutter_check_power_off_timer:
+6318 da6046ca arg mem_shutter_power_off_timer ,regc 
+6319 da40631b arg shutter_check_power_off_timeout ,regb 
+631a 202042e0 branch timer_single_step 
+
+shutter_check_power_off_timeout:
+631b 6fe144e9 fetch 2 ,mem_ui_state_map 
+631c c284e39e bbit1 ui_state_ble_connected ,shutter_wait_power_off 
+631d 6fe0c6a7 fetch 1 ,mem_shutter_led_struct_app_led_type 
+631e c000e39e beq ui_led_state_blink_start ,shutter_wait_power_off 
+631f c002639e beq ui_led_state_blink_lighting ,shutter_wait_power_off 
+6320 c002e39e beq ui_led_state_blink_darking ,shutter_wait_power_off 
+6321 20204327 branch app_enter_hibernate 
+
+ble_shutter_reconn_timer:
+6322 6fe0c51c fetch 1 ,mem_shutter_soft_switch_power_state 
+6323 c1808000 rtnne ss_state_power_on 
+6324 da6044f8 arg mem_ble_shutter_reconn_timer ,regc 
+6325 da406331 arg shutter_start_bluetooth_discovery ,regb 
+6326 202042e7 branch timer_single_step_2b 
+
+shutter_process_idle:
+6327 20406376 call shutter_send_data_to_master 
+6328 20207027 branch keyscan_key_process 
+
+shutter_process_lpm_before:
+6329 20406f35 call gpio_set_before_lpm 
+632a 2020701b branch keyscan_process_lpm_before 
+
+shutter_le_before_hibernate:
+632b 20406f35 call gpio_set_before_lpm 
+632c 2020739a branch disable_authrom 
+
+shutter_stop_bluetooth_discovery:
+
+ble_shutter_stop_bluetooth_discovery:
+632d 6fe14514 fetch 2 ,mem_ble_shutter_connect_timeout 
+632e 67e14516 store 2 ,mem_shutter_sleep_timeout 
+632f 67e14518 store 2 ,mem_shutter_sleep_timer 
+6330 20204315 branch app_ble_stop_adv 
+
+shutter_start_bluetooth_discovery:
+6331 6fe0c51c fetch 1 ,mem_shutter_soft_switch_power_state 
+6332 c1808000 rtnne ss_state_power_on 
+
+ble_shutter_start_discovery:
+6333 6fe144e9 fetch 2 ,mem_ui_state_map 
+6334 c3848000 rtnbit1 ui_state_ble_connected 
+6335 6fe14512 fetch 2 ,mem_ble_shutter_discovery_timeout 
+6336 67e14516 store 2 ,mem_shutter_sleep_timeout 
+6337 67e14518 store 2 ,mem_shutter_sleep_timer 
+6338 6fe144f4 fetch 2 ,mem_ble_shutter_discovery_adv_interval 
+6339 204063c7 call shutter_ble_adv_interval_set 
+633a 20404321 call app_led_start_blink 
+633b 6fe244fe fetch 4 ,mem_ble_shutter_discovery_blink_on_time 
+633c 67e246aa store 4 ,mem_shutter_led_struct_app_led_on_time 
+633d 6fe144e9 fetch 2 ,mem_ui_state_map 
+633e c3858000 rtnbit1 ui_state_ble_adv 
+633f 20204317 branch app_ble_start_adv 
+
+shutter_soft_swtich_power_on:
+
+shutter_start_reconnect:
+6340 6fe0c51c fetch 1 ,mem_shutter_soft_switch_power_state 
+6341 c1808000 rtnne ss_state_power_on 
+
+ble_shutter_start_reconnect:
+6342 6fe144f8 fetch 2 ,mem_ble_shutter_reconn_timer 
+6343 684944f6 fetcht 2 ,mem_ble_shutter_reconn_timeout 
+6344 604944f8 storet 2 ,mem_ble_shutter_reconn_timer 
+6345 247a0000 nrtn blank 
+6346 6fe144f2 fetch 2 ,mem_ble_shutter_reconn_adv_interval 
+6347 204063c7 call shutter_ble_adv_interval_set 
+6348 20404321 call app_led_start_blink 
+6349 6fe244fa fetch 4 ,mem_ble_shutter_reconn_blink_on_time 
+634a 67e246aa store 4 ,mem_shutter_led_struct_app_led_on_time 
+634b 6fe144e9 fetch 2 ,mem_ui_state_map 
+634c c3858000 rtnbit1 ui_state_ble_adv 
+634d 20204317 branch app_ble_start_adv 
+
+shutter_disconnect_current_connection:
+634e 6fe144e9 fetch 2 ,mem_ui_state_map 
+634f c284c31f bbit1 ui_state_ble_connected ,app_ble_disconnect 
+6350 2020632d branch shutter_stop_bluetooth_discovery 
+
+shutter_check_data_enable:
+6351 20407dbc call disable_user 
+6352 6fe144e9 fetch 2 ,mem_ui_state_map 
+6353 c284e355 bbit1 ui_state_ble_connected ,shutter_check_ble_data_enable 
+6354 20600000 rtn 
+
+shutter_check_ble_data_enable:
+6355 6fe0c4f1 fetch 1 ,mem_ble_shutter_enable_notify 
+6356 207a0000 rtn blank 
+6357 20207dba branch enable_user 
+
+shutter_check_bluetooth_conn:
+6358 20407dbc call disable_user 
+6359 6fe144e9 fetch 2 ,mem_ui_state_map 
+635a c3848000 rtnbit1 ui_state_ble_connected 
+635b 20207dba branch enable_user 
+
+shutter_change_bluetooth_status_bt_disconn:
+
+ble_shutter_change_bluetooth_status_bt_disconn:
+635c 20206340 branch shutter_start_reconnect 
+
+shutter_check_send_data:
+635d 78567c00 disable user2 
+635e 6fe14516 fetch 2 ,mem_shutter_sleep_timeout 
+635f 67e14518 store 2 ,mem_shutter_sleep_timer 
+6360 20406358 call shutter_check_bluetooth_conn 
+6361 2034635c branch shutter_change_bluetooth_status_bt_disconn ,user 
+6362 20406351 call shutter_check_data_enable 
+6363 24740000 nrtn user 
+6364 20207dbe branch enable_user2 
+
+shutter_key_change:
+6365 2040635d call shutter_check_send_data 
+6366 24760000 nrtn user2 
+6367 1a227e00 deposit rega 
+6368 203a636c branch shutter_key_release ,blank 
+
+shutter_key_press:
+6369 20404323 call app_led_on 
+636a da60452e arg mem_key0_press ,regc 
+636b 2020636e branch push_queue_press_or_release 
+
+shutter_key_release:
+636c 20404325 call app_led_off 
+636d da604556 arg mem_key0_release ,regc 
+
+push_queue_press_or_release:
+636e dfe00005 arg max_queue_num ,pdata 
+636f 98effe00 imul32 queue ,pdata 
+6370 9a60a600 iadd regc ,regc 
+
+push_buffer_in_queue:
+6371 efe08013 ifetch 1 ,regc 
+6372 207a0000 rtn blank 
+6373 20406382 call queue_push_one_byte 
+6374 1a60a601 increase 1 ,regc 
+6375 20206371 branch push_buffer_in_queue 
+
+shutter_send_data_to_master:
+6376 6fe144e9 fetch 2 ,mem_ui_state_map 
+6377 c284e379 bbit1 ui_state_ble_connected ,pop_queue_to_ble_data 
+6378 20600000 rtn 
+
+pop_queue_to_ble_data:
+6379 20402a28 call le_fifo_check_nearly_full 
+637a 247a0000 nrtn blank 
+637b 20406385 call queue_pop_one_byte 
+637c 24740000 nrtn user 
+637d 1fe0ffff pincrease -1 
+637e 1feffe05 mul32 pdata ,shutter_ble_data_buffer ,pdata 
+637f d840457e arg mem_ble_data_buffer1 ,temp 
+6380 98408c00 iadd temp ,contr 
+6381 202063cb branch le_send_notify_from_list 
+
+queue_push_one_byte:
+6382 67e08670 store 1 ,mem_pdatatemp 
+6383 da200670 arg mem_pdatatemp ,rega 
+6384 202078b2 branch queue_push 
+
+queue_pop_one_byte:
+6385 da200670 arg mem_pdatatemp ,rega 
+6386 204078ca call queue_pop 
+6387 24740000 nrtn user 
+6388 6fe08670 fetch 1 ,mem_pdatatemp 
+6389 20600000 rtn 
+
+ble_shutter_receive_data:
+638a 6fe14398 fetch 2 ,mem_le_att_handle 
+638b c00c62e9 beq gatt_keyboard_write_handle ,ble_shutter_process_reconnect_complete 
+638c 20600000 rtn 
+
+shutter_init_param:
+638d 7046c902 jam 0x02 ,mem_shutter_power_off_timeout 
+638e 58200008 setarg 0x00200008 
+638f 67e24502 store 4 ,mem_ble_shutter_interval_min 
+6390 592c0005 setarg 0x012c0005 
+6391 e7e20005 istore 4 ,contw 
+6392 7042e117 jam 0x17 ,mem_le_local_mtu 
+6393 5800001b setarg 0x1b 
+6394 67e14332 store 2 ,mem_le_pairing_handle 
+6395 20202a41 branch le_set_fixed_ltk_justwork 
+
+shutter_load_buffer_config_form_datarom:
+6396 df200028 arg ble_key_value_list_size ,loopcnt 
+6397 d8a0457e arg mem_ble_data_buffer1 ,contw 
+6398 d8c094f9 arg ble_shutter_key_value_list_addr ,contr 
+6399 20207ccc branch memcpy_fast 
+
+shutter_soft_swtich_power_off:
+639a da200000 arg 0 ,rega 
+639b da6046b2 arg mem_shutter_power_off_led_style ,regc 
+639c 204077ca call ui_led_set_style_global 
+639d 2040634e call shutter_disconnect_current_connection 
+
+shutter_wait_power_off:
+639e 6fe0c6c9 fetch 1 ,mem_shutter_power_off_timeout 
+639f 67e0c6ca store 1 ,mem_shutter_power_off_timer 
+63a0 20600000 rtn 
+
+ui_soft_swtich_init:
+63a1 58000000 setarg ss_state_power_up 
+63a2 204063ad call ui_soft_swtich_init_power_on_time 
+63a3 7044e401 jam ui_button_state_up ,mem_ui_button_last_state 
+63a4 20407776 call ui_button_init 
+63a5 20407780 call ui_button_polling 
+
+ui_soft_switch_first_power_on:
+63a6 6fe0c6d0 fetch 1 ,mem_shutter_soft_switch_first_power_on 
+63a7 203a63aa branch ui_soft_swtich_init_next ,blank 
+63a8 6ff08132 fetch 1 ,core_lpm_isogate 
+63a9 c28263b9 bbit1 cold_wake ,ui_soft_switch_power_on 
+
+ui_soft_swtich_init_next:
+63aa 6fe144e9 fetch 2 ,mem_ui_state_map 
+63ab c3860000 rtnbit1 ui_state_btn_down 
+63ac 20204327 branch app_enter_hibernate 
+
+ui_soft_swtich_init_power_on_time:
+63ad 68494430 fetcht 2 ,mem_power_param_ptr 
+63ae e7e08002 istore 1 ,temp 
+63af efe08005 ifetch 1 ,contw 
+63b0 67e0c4eb store 1 ,mem_ui_button_timeout 
+63b1 20600000 rtn 
+
+ui_soft_switch_botton_up:
+63b2 6fe14430 fetch 2 ,mem_power_param_ptr 
+63b3 efe0803f ifetch 1 ,pdata 
+63b4 c1800000 rtnne ss_state_power_up 
+63b5 20204327 branch app_enter_hibernate 
+
+ui_soft_switch_botton_long_press:
+63b6 68494430 fetcht 2 ,mem_power_param_ptr 
+63b7 efe08002 ifetch 1 ,temp 
+63b8 c000e3c1 beq ss_state_power_on ,ui_soft_switch_power_off 
+
+ui_soft_switch_power_on:
+63b9 58000001 setarg ss_state_power_on 
+63ba 68494430 fetcht 2 ,mem_power_param_ptr 
+63bb e7e08002 istore 1 ,temp 
+63bc 18408c02 add temp ,ss_power_off_time ,contr 
+63bd efe08006 ifetch 1 ,contr 
+63be e7e0802b istore 1 ,mem_ui_button_timeout 
+63bf efe10006 ifetch 2 ,contr 
+63c0 20207d79 branch callback_func 
+
+ui_soft_switch_power_off:
+63c1 58000002 setarg ss_state_power_off 
+63c2 204063ad call ui_soft_swtich_init_power_on_time 
+63c3 18408c05 add temp ,ss_power_off_cb ,contr 
+63c4 efe10006 ifetch 2 ,contr 
+63c5 203a4327 branch app_enter_hibernate ,blank 
+63c6 20207d79 branch callback_func 
+
+shutter_ble_adv_interval_set:
+63c7 67e140a4 store 2 ,mem_lpm_interval 
+63c8 1fe0fffc increase -4 ,pdata 
+63c9 67e14389 store 2 ,mem_le_adv_interval 
+63ca 20600000 rtn 
+
+le_send_notify_from_list:
+63cb efe08006 ifetch 1 ,contr 
+63cc 1fe22200 copy pdata ,rega 
+63cd e8410006 ifetcht 2 ,contr 
+63ce 20407c6d call store_contr 
+63cf 20402dee call le_att_malloc_tx_notify 
+63d0 1a227200 copy rega ,loopcnt 
+63d1 20407c67 call get_contr 
+63d2 20207cda branch memcpy 
+
+shutter_le_uuid_table_conf:
+63d3 580093c0 setarg ble_shutter_gatt_list_addr 
+63d4 67e142f7 store 2 ,mem_ui_le_uuid_table 
+63d5 20600000 rtn 
+
+shutter_dy_le_uuid_table_conf:
+63d6 580046d2 setarg mem_shutter_le_uuid_sup 
+63d7 67e142f7 store 2 ,mem_ui_le_uuid_table 
+63d8 20600000 rtn 
+
+shutter_default_init:
+63d9 6fe146cb fetch 2 ,mem_shutter_key_conf0_temp 
+63da 67e14526 store 2 ,mem_shutter_key_conf0 
+63db 6fe0c6cd fetch 1 ,mem_shutter_led_struct_app_led_gpio_temp 
+63dc 67e0c6a9 store 1 ,mem_shutter_led_struct_app_led_gpio 
+63dd 67e0c6b4 store 1 ,mem_shutter_power_off_led_style_gpio 
+63de 6fe0c6ce fetch 1 ,mem_shutter_hard_soft_switch_case_temp 
+63df 67e0c51a store 1 ,mem_shutter_hard_soft_switch_case 
+63e0 6fe0c6cf fetch 1 ,mem_shutter_soft_switch_button_gpio_temp 
+63e1 67e0c51b store 1 ,mem_shutter_soft_switch_button_gpio 
+63e2 58000002 setarg 0x0002 
+63e3 67e1452e store 2 ,mem_key0_press 
+63e4 67e14533 store 2 ,mem_key1_press 
+63e5 58000006 setarg 0x0006 
+63e6 67e14556 store 2 ,mem_key0_release 
+63e7 67e1455b store 2 ,mem_key1_release 
+63e8 58000007 setarg 0x0007 
+63e9 67e14538 store 2 ,mem_key2_press 
+63ea 58000008 setarg 0x0008 
+63eb 67e14560 store 2 ,mem_key2_release 
+63ec 5800451c setarg mem_shutter_soft_switch_power_state 
+63ed 67e14430 store 2 ,mem_power_param_ptr 
+63ee 58201400 setarg 0x201400 
+63ef 67e1c51c store 3 ,mem_shutter_soft_switch_power_state 
+63f0 70409401 jam 0x01 ,mem_lpm_mode 
+63f1 58000100 setarg 0x0100 
+63f2 67e140a4 store 2 ,mem_lpm_interval 
+63f3 7040a608 jam 0x08 ,mem_lpm_overhead 
+63f4 7040c005 jam 0x05 ,mem_lpm_mult 
+63f5 7040c102 jam 0x02 ,mem_lpm_mult_timeout 
+63f6 58000096 setarg 0x0096 
+63f7 67e144fa store 2 ,mem_ble_shutter_reconn_blink_on_time 
+63f8 e7e10005 istore 2 ,contw 
+63f9 58000296 setarg 0x0296 
+63fa 67e144fe store 2 ,mem_ble_shutter_discovery_blink_on_time 
+63fb e7e10005 istore 2 ,contw 
+63fc 38000010 setsect 0 ,0x10 
+63fd 38048008 setsect 1 ,0x8008 
+63fe 380ac000 setsect 2 ,0x2c000 
+63ff 380c0004 setsect 3 ,0x04 
+6400 67e4450a store 8 ,mem_ble_shutter_interval_min_new 
+6401 7044ee01 jam 0x01 ,mem_ui_led_struct_num 
+6402 580046a7 setarg mem_shutter_led_struct_app_led 
+6403 67e144ef store 2 ,mem_ui_led_struct_ptr 
+6404 58000000 setarg 0x0000 
+6405 67e146a7 store 2 ,mem_shutter_led_struct_app_led 
+6406 380001a0 setsect 0 ,0x1a0 
+6407 38040068 setsect 1 ,0x68 
+6408 38080000 setsect 2 ,0x00 
+6409 380c0000 setsect 3 ,0x00 
+640a 67e446aa store 8 ,mem_shutter_led_struct_app_led_on_time 
+640b 58000301 setarg 0x0301 
+640c 67e146b2 store 2 ,mem_shutter_power_off_led_style 
+640d 380001a0 setsect 0 ,0x1a0 
+640e 380400e8 setsect 1 ,0xe8 
+640f 38080000 setsect 2 ,0x00 
+6410 380c0000 setsect 3 ,0x00 
+6411 67e446b5 store 8 ,mem_shutter_power_off_led_style_on_time 
+6412 5800000e setarg 0x000e 
+6413 67e144f2 store 2 ,mem_ble_shutter_reconn_adv_interval 
+6414 58000140 setarg 0x0140 
+6415 67e144f4 store 2 ,mem_ble_shutter_discovery_adv_interval 
+6416 67e14389 store 2 ,mem_le_adv_interval 
+6417 58000050 setarg 0x0050 
+6418 67e144f6 store 2 ,mem_ble_shutter_reconn_timeout 
+6419 70439307 jam 0x07 ,mem_le_adv_channel_map 
+641a 70438800 jam 0x00 ,mem_le_adv_enable 
+641b 380000fb setsect 0 ,0xfb 
+641c 3806c212 setsect 1 ,0x2c212 
+641d 3808800f setsect 2 ,0x800f 
+641e 380c0021 setsect 3 ,0x21 
+641f 67e443c0 store 8 ,mem_local_rx_max_octets 
+6420 38000bb8 setsect 0 ,0x0bb8 
+6421 380402ee setsect 1 ,0x02ee 
+6422 67e24512 store 4 ,mem_ble_shutter_discovery_timeout 
+6423 580045d8 setarg mem_queue_each_size 
+6424 67e143fb store 2 ,mem_queue_ptr 
+6425 58002001 setarg 0x2001 
+6426 67e145d8 store 2 ,mem_queue_each_size 
+6427 7043481f jam 0x1f ,mem_le_adv_data_len 
+6428 38010102 setsect 0 ,0x10102 
+6429 380480c1 setsect 1 ,0x80c1 
+642a 38098120 setsect 2 ,0x18120 
+642b 380c640c setsect 3 ,0x640c 
+642c 67e4c349 store 9 ,mem_le_adv_data 
+642d 380003c1 setsect 0 ,0x3c1 
+642e e7e10005 istore 2 ,contw 
+642f 7043681f jam 0x1f ,mem_le_scan_data_len 
+6430 3802090d setsect 0 ,0x2090d 
+6431 38074c15 setsect 1 ,0x34c15 
+6432 380a8532 setsect 2 ,0x28532 
+6433 380dd1d5 setsect 3 ,0x1d1d5 
+6434 67e4c369 store 9 ,mem_le_scan_data 
+6435 38026574 setsect 0 ,0x26574 
+6436 3804001c setsect 1 ,0x1c 
+6437 e7e18005 istore 3 ,contw 
+6438 58004523 setarg mem_shutter_keyscan 
+6439 67e1442c store 2 ,mem_keyscan_ptr 
+643a 70452302 jam 0x02 ,mem_shutter_key_num 
+643b 580045fd setarg mem_shutter_nv_data 
+643c 67e143f8 store 2 ,mem_nv_data_ptr 
+643d 7043fa05 jam 0x05 ,mem_nv_data_number 
+643e 6fe0c6d1 fetch 1 ,mem_shutter_dy_conf 
+643f c00063d3 beq shutter_type ,shutter_le_uuid_table_conf 
+6440 c000e3d6 beq shutter_dy_type ,shutter_dy_le_uuid_table_conf 
+6441 20600000 rtn 
+
+shutter_dy_6_key_conf:
+6442 6fe34ef4 fetch shutter_six_key ,mem_shutter_dy_key_conf 
+6443 67e34526 store shutter_six_key ,mem_shutter_key_conf0 
+6444 70452306 jam shutter_six_key ,mem_shutter_key_num 
+6445 58004523 setarg mem_shutter_key_num 
+6446 67e1442c store 2 ,mem_keyscan_ptr 
+6447 20600000 rtn 
+
+shutter_dy_7_key_conf:
+6448 6fe3cef4 fetch shutter_seven_key ,mem_shutter_dy_key_conf 
+6449 67e3c526 store shutter_seven_key ,mem_shutter_key_conf0 
+644a 70452307 jam shutter_seven_key ,mem_shutter_key_num 
+644b 58004523 setarg mem_shutter_key_num 
+644c 67e1442c store 2 ,mem_keyscan_ptr 
+644d 20600000 rtn 
+
+shutter_dy_8_key_conf:
+644e 6fe44ef4 fetch shutter_eight_key ,mem_shutter_dy_key_conf 
+644f 67e44526 store shutter_eight_key ,mem_shutter_key_conf0 
+6450 70452308 jam shutter_eight_key ,mem_shutter_key_num 
+6451 58004523 setarg mem_shutter_key_num 
+6452 67e1442c store 2 ,mem_keyscan_ptr 
+6453 20600000 rtn 
+
+shutter_dy_key_conf:
+6454 6fe0cef3 fetch 1 ,mem_shutter_key_num_conf 
+6455 c0036442 beq shutter_six_key ,shutter_dy_6_key_conf 
+6456 c003e448 beq shutter_seven_key ,shutter_dy_7_key_conf 
+6457 c004644e beq shutter_eight_key ,shutter_dy_8_key_conf 
+6458 20600000 rtn 
+
+shutter_dy_adv_conf:
+6459 44d0c014 bpatch patch14_1 ,mem_patch14 
+645a 6fe44f1a fetch 8 ,mem_shutter_ble_discovery_time_conf 
+645b 67e44512 store 8 ,mem_ble_shutter_discovery_timeout 
+645c 58000096 setarg 0x0096 
+645d 67e144f6 store 2 ,mem_ble_shutter_reconn_timeout 
+645e 6fe3cf6a fetch 7 ,mem_shutter_led_on_light_dark_led_conf 
+645f 67e3c6a7 store 7 ,mem_shutter_led_struct_app_led 
+6460 6fe3cf71 fetch 7 ,mem_shutter_led_off_light_dark_led_conf 
+6461 67e3c6b2 store 7 ,mem_shutter_power_off_led_style 
+6462 6fe24f78 fetch 4 ,mem_shutter_reconn_blink_on_time_conf 
+6463 67e244fa store 4 ,mem_ble_shutter_reconn_blink_on_time 
+6464 6fe24f7c fetch 4 ,mem_shutter_discovery_blink_on_time_conf 
+6465 67e244fe store 4 ,mem_ble_shutter_discovery_blink_on_time 
+6466 5800000e setarg 0x000e 
+6467 67e144f2 store 2 ,mem_ble_shutter_reconn_adv_interval 
+6468 58000140 setarg 0x0140 
+6469 67e144f4 store 2 ,mem_ble_shutter_discovery_adv_interval 
+646a 67e14389 store 2 ,mem_le_adv_interval 
+646b 6fe44f12 fetch 8 ,mem_ble_shutter_dy_interval_min_new 
+646c 67e4450a store 8 ,mem_ble_shutter_interval_min_new 
+646d 20600000 rtn 
+
+shutter_dy_init:
+646e 20407396 call enable_authrom 
+646f 20758000 rtn wake 
+6470 20406454 call shutter_dy_key_conf 
+6471 20406459 call shutter_dy_adv_conf 
+6472 58006484 setarg shutter_dy_process_idle 
+6473 67e143db store 2 ,mem_cb_idle_process 
+6474 580064df setarg shutter_dy_process_bb_event 
+6475 67e143dd store 2 ,mem_cb_bb_event_process 
+6476 580066c5 setarg ble_shutter_dy_receive_data 
+6477 67e143df store 2 ,mem_cb_att_write 
+6478 580064b5 setarg shutter_dy_le_bb_event_timer 
+6479 67e143e3 store 2 ,mem_cb_event_timer 
+647a 58006505 setarg shutter_dy_key_change 
+647b 67e14524 store 2 ,mem_cb_shutter_keycan 
+647c 204062c2 call shutter_common_init 
+647d 6fe14f97 fetch 2 ,mem_shutter_le_pairing_handle 
+647e 67e14332 store 2 ,mem_le_pairing_handle 
+647f 6fe4450a fetch 8 ,mem_ble_shutter_interval_min_new 
+6480 67e44502 store 8 ,mem_ble_shutter_interval_min 
+6481 2040648e call shutter_dy_iphone_every_move_max_set 
+6482 44d14014 bpatch patch14_2 ,mem_patch14 
+6483 202062bd branch shutter_power_switch 
+
+shutter_dy_process_idle:
+6484 2040649b call shutter_dy_shutter_send_data_to_master 
+6485 d8e00009 arg key_scan_timer ,queue 
+6486 20407cef call timer_check 
+6487 247a0000 nrtn blank 
+6488 58000020 setarg 0x20 
+6489 d8e00009 arg key_scan_timer ,queue 
+648a 20407ce1 call timer_init 
+648b 78547c00 disable user 
+648c 2040701b call keyscan_process_lpm_before 
+648d 2020656e branch shutter_dy_keyscan_key_process 
+
+shutter_dy_iphone_every_move_max_set:
+648e 5800001f setarg 0x1f 
+648f 1feffe0a mul32 pdata ,every_payload_len ,pdata 
+6490 d8404c12 arg mem_shutter_mousekey_value_list ,temp 
+6491 9840a200 iadd temp ,rega 
+6492 1a20a203 increase 3 ,rega 
+6493 d8400062 arg iphone_once_max_move_value ,temp 
+6494 e0408011 istoret 1 ,rega 
+6495 1a20a20b increase 11 ,rega 
+6496 dfe00fff arg 0xfff ,pdata 
+6497 98467e00 isub temp ,pdata 
+6498 1ff27e00 lshift4 pdata ,pdata 
+6499 e7e10011 istore 2 ,rega 
+649a 20600000 rtn 
+
+shutter_dy_shutter_send_data_to_master:
+649b 6fe144e9 fetch 2 ,mem_ui_state_map 
+649c c284e4a0 bbit1 ui_state_ble_connected ,shutter_dy_pop_queue_to_ble_data 
+649d d8a045da arg mem_queue_curr_num ,contw 
+649e df200023 arg 35 ,loopcnt 
+649f 20207ca1 branch clear_mem 
+
+shutter_dy_pop_queue_to_ble_data:
+64a0 20402a28 call le_fifo_check_nearly_full 
+64a1 247a0000 nrtn blank 
+64a2 204078fa call queue_empty 
+64a3 207a0000 rtn blank 
+64a4 684a49f6 fetcht 4 ,mem_key_send_clk 
+64a5 1c427e00 copy clkn_bt ,pdata 
+64a6 98460400 isub temp ,temp 
+64a7 20628000 rtn zero 
+64a8 242164ac nbranch shutter_dy_pop_queue_to_ble_data2 ,positive 
+64a9 6fe0c9f5 fetch 1 ,mem_send_data_delay 
+64aa 98467c00 isub temp ,null 
+64ab 20610000 rtn positive 
+
+shutter_dy_pop_queue_to_ble_data2:
+64ac 1c427e00 copy clkn_bt ,pdata 
+64ad 67e249f6 store 4 ,mem_key_send_clk 
+64ae 20406385 call queue_pop_one_byte 
+64af 24740000 nrtn user 
+64b0 1fe0ffff pincrease -1 
+64b1 1feffe0a mul32 pdata ,10 ,pdata 
+64b2 d8404c12 arg mem_shutter_mousekey_value_list ,temp 
+64b3 98408c00 iadd temp ,contr 
+64b4 202063cb branch le_send_notify_from_list 
+
+shutter_dy_le_bb_event_timer:
+64b5 20406858 call shutter_dy_shutter_1s_timer 
+64b6 2040676c call shutter_dy_link_key_loop_timer 
+64b7 2040675a call shutter_dy_long_key_volume_timer 
+64b8 204064bc call shutter_dy_iphone_move_mid_timer 
+64b9 204064d3 call shutter_dy_clear_key_state_timer 
+64ba 20406311 call shutter_check_sleep_timer 
+64bb 202064d9 branch shutter_dy_check_power_off_timer 
+
+shutter_dy_iphone_move_mid_timer:
+64bc da604ed1 arg mem_shutter_move_mid_timer ,regc 
+64bd da4064bf arg shutter_dy_iphone_move_mid_timeout ,regb 
+64be 202042e0 branch timer_single_step 
+
+shutter_dy_iphone_move_mid_timeout:
+64bf 204078fa call queue_empty 
+64c0 247a0000 nrtn blank 
+64c1 6fe148bc fetch 2 ,mem_key_value_xmem 
+64c2 247a0000 nrtn blank 
+
+shutter_dy_iphone_move_mid:
+64c3 20406730 call shutter_dy_check_iphone 
+64c4 203a64cd branch shutter_dy_android_like_loaction_mid ,blank 
+64c5 18e27e00 copy queue ,pdata 
+64c6 2fe00e04 compare 0x04 ,pdata ,0x07 
+64c7 2020e4cf branch shutter_dy_iphone_up_mid ,true 
+64c8 18e27e00 copy queue ,pdata 
+64c9 2fe00e01 compare 0x01 ,pdata ,0x07 
+64ca 2020e4d1 branch shutter_dy_iphone_like_mid ,true 
+64cb da604ec6 arg mem_shutter_iphone_move_mid ,regc 
+64cc 20206371 branch push_buffer_in_queue 
+
+shutter_dy_android_like_loaction_mid:
+64cd da604eda arg mem_shutter_android_move_mid ,regc 
+64ce 20206371 branch push_buffer_in_queue 
+
+shutter_dy_iphone_up_mid:
+64cf da604edf arg mem_shutter_iphone_up_mid ,regc 
+64d0 20206371 branch push_buffer_in_queue 
+
+shutter_dy_iphone_like_mid:
+64d1 da604ee9 arg mem_shutter_iphone_like_mid ,regc 
+64d2 20206371 branch push_buffer_in_queue 
+
+shutter_dy_clear_key_state_timer:
+64d3 da604c0f arg mem_shutter_like_timeout ,regc 
+64d4 da4064d6 arg shutter_dy_clear_key_state_timeout ,regb 
+64d5 202042e0 branch timer_single_step 
+
+shutter_dy_clear_key_state_timeout:
+64d6 df20000a arg shutter_key_conf_sate_bytes ,loopcnt 
+64d7 d8a04a04 arg mem_shutter_key_state1 ,contw 
+64d8 20207ca1 branch clear_mem 
+
+shutter_dy_check_power_off_timer:
+64d9 da6046ca arg mem_shutter_power_off_timer ,regc 
+64da da4064dc arg shutter_dy_check_power_off_timeout ,regb 
+64db 202042e0 branch timer_single_step 
+
+shutter_dy_check_power_off_timeout:
+64dc 6fe144e9 fetch 2 ,mem_ui_state_map 
+64dd c284e39e bbit1 ui_state_ble_connected ,shutter_wait_power_off 
+64de 20204327 branch app_enter_hibernate 
+
+shutter_dy_process_bb_event:
+64df 1a627e00 copy regc ,pdata 
+64e0 c00a64f4 beq bt_evt_le_connected ,ble_shutter_dy_process_baseband_connect 
+64e1 c00ae4ef beq bt_evt_le_disconnected ,ble_shutter_dy_process_baseband_disconnect 
+64e2 c018e4e6 beq bt_evt_le_pairing_success ,ble_shutter_dy_pairing_success 
+64e3 c1200000 rtneq bt_evt_le_parse_conn_papa_update_rsp 
+64e4 c01966c8 beq bt_evt_le_start_enc ,shutter_dy_le_find_service_hand_by_uuid 
+64e5 202062d9 branch shutter_process_bb_event 
+
+ble_shutter_dy_pairing_success:
+64e6 704ed201 jam 1 ,mem_shutter_pairing_success 
+64e7 20406783 call shutter_dy_clear_move_config 
+64e8 6fe14f84 fetch 2 ,mem_android_initial_move_x 
+64e9 67e14ebe store 2 ,mem_shutter_move_data_x 
+64ea 68494f86 fetcht 2 ,mem_android_initial_move_y 
+64eb 58000fff setarg 0xfff 
+64ec 98467e00 isub temp ,pdata 
+64ed 67e14ec0 store 2 ,mem_shutter_move_data_y 
+64ee 20600000 rtn 
+
+ble_shutter_dy_process_baseband_disconnect:
+64ef 704ebb00 jam 0 ,mem_shutter_le_conned 
+64f0 704ed200 jam 0 ,mem_shutter_pairing_success 
+64f1 204065ad call shutter_dy_move_mode_disable 
+64f2 20406500 call shutter_dy_over_clear 
+64f3 202062e6 branch ble_shutter_process_baseband_disconnect 
+
+ble_shutter_dy_process_baseband_connect:
+64f4 1c427e00 copy clkn_bt ,pdata 
+64f5 67e249f6 store 4 ,mem_key_send_clk 
+64f6 20406729 call shutter_dy_remote_not_iphone 
+64f7 202062e2 branch ble_shutter_process_baseband_connect 
+
+shutter_dy_check_send_data:
+64f8 78567c00 disable user2 
+64f9 6fe14516 fetch 2 ,mem_shutter_sleep_timeout 
+64fa 67e14518 store 2 ,mem_shutter_sleep_timer 
+64fb 20406358 call shutter_check_bluetooth_conn 
+64fc 2034635c branch shutter_change_bluetooth_status_bt_disconn ,user 
+64fd 20406351 call shutter_check_data_enable 
+64fe 24740000 nrtn user 
+64ff 20207dbe branch enable_user2 
+
+shutter_dy_over_clear:
+6500 704ed500 jam 0 ,mem_last_press_key_value 
+6501 20600000 rtn 
+
+shutter_dy_key_value_filter:
+6502 18e27e00 copy queue ,pdata 
+6503 c1808000 rtnne shutter_like_key_num 
+6504 2020650c branch shutter_dy_key_press_next 
+
+shutter_dy_key_change:
+6505 204064f8 call shutter_dy_check_send_data 
+6506 24760000 nrtn user2 
+6507 1a227e00 deposit rega 
+6508 203a6537 branch shutter_dy_shutter_key_release ,blank 
+
+shutter_dy_key_press:
+6509 44d1c014 bpatch patch14_3 ,mem_patch14 
+650a 6fe0cfaf fetch 1 ,mem_shutter_link_loop_flag 
+650b 243a6502 nbranch shutter_dy_key_value_filter ,blank 
+
+shutter_dy_key_press_next:
+650c 704c1001 jam 1 ,mem_shutter_key_pressed 
+650d 20404323 call app_led_on 
+650e 2040652c call shutter_dy_key_press_clk 
+650f 20406561 call shutter_dy_jude_queue_size 
+6510 20216500 branch shutter_dy_over_clear ,positive 
+6511 18e27e00 copy queue ,pdata 
+6512 6848ced5 fetcht 1 ,mem_last_press_key_value 
+6513 98467c00 isub temp ,null 
+6514 2442e526 ncall shutter_dy_iphone_check_move_mid ,zero 
+6515 18e27e00 copy queue ,pdata 
+6516 67e0ced5 store 1 ,mem_last_press_key_value 
+6517 6848ced8 fetcht 1 ,mem_move_mode_key_index 
+6518 98467c00 isub temp ,null 
+6519 2022e524 branch shutter_dy_key_move_to_specify_location ,zero 
+651a 6fe0ced9 fetch 1 ,mem_move_mode_trigger_enable 
+651b 243a651f nbranch shutter_dy_move_set ,blank 
+
+shutter_dy_page_set:
+651c 20406732 call shutter_dy_le_get_press_ptr 
+651d dfe0000a arg max_queue_new_press ,pdata 
+651e 2020655a branch shutter_dy_push_queue_press_or_release 
+
+shutter_dy_move_set:
+651f 2040677f call shutter_dy_jude_clear_move_config 
+6520 18e27e00 copy queue ,pdata 
+6521 c000e51c beq shutter_like_key_num ,shutter_dy_page_set 
+6522 20406642 call shutter_dy_check_move_data 
+6523 202065f4 branch shutter_dy_move_to_specify_location 
+
+shutter_dy_key_move_to_specify_location:
+6524 704ed601 jam 1 ,mem_shutter_first_move 
+6525 202065f4 branch shutter_dy_move_to_specify_location 
+
+shutter_dy_iphone_check_move_mid:
+6526 44d24014 bpatch patch14_4 ,mem_patch14 
+6527 6fe0ced9 fetch 1 ,mem_move_mode_trigger_enable 
+6528 203a64c3 branch shutter_dy_iphone_move_mid ,blank 
+6529 18e27e00 copy queue ,pdata 
+652a c000e4c3 beq shutter_like_key_num ,shutter_dy_iphone_move_mid 
+652b 20600000 rtn 
+
+shutter_dy_key_press_clk:
+652c dfe0000a arg shutter_key_conf_sate_bytes ,pdata 
+652d 98effe00 imul32 queue ,pdata 
+652e da6049fa arg mem_shutter_key_state0 ,regc 
+652f 9a60a600 iadd regc ,regc 
+6530 1c427e00 copy clkn_bt ,pdata 
+6531 e7e20013 istore key_state_press_clk_length ,regc 
+6532 1a60a604 increase key_state_press_count_offset ,regc 
+6533 efe08013 ifetch 1 ,regc 
+6534 1fe0fe01 increase 1 ,pdata 
+6535 e7e08013 istore 1 ,regc 
+6536 20600000 rtn 
+
+shutter_dy_shutter_key_release:
+6537 44d2c014 bpatch patch14_5 ,mem_patch14 
+6538 6fe0ced9 fetch 1 ,mem_move_mode_trigger_enable 
+6539 205a654b call shutter_dy_key_release_led ,blank 
+
+shutter_dy_shutter_key_release_time:
+653a dfe0000a arg shutter_key_conf_sate_bytes ,pdata 
+653b 98effe00 imul32 queue ,pdata 
+653c da6049fa arg mem_shutter_key_state0 ,regc 
+653d 9a60a600 iadd regc ,regc 
+653e e8420013 ifetcht 4 ,regc 
+653f 18467c00 sub temp ,0 ,null 
+6540 20628000 rtn zero 
+6541 1c427e00 copy clkn_bt ,pdata 
+6542 98460400 isub temp ,temp 
+6543 24417806 ncall ui_timer_timeout ,positive 
+6544 1a608c09 add regc ,key_state_longpress_offset ,contr 
+6545 efe08006 ifetch 1 ,contr 
+6546 243a6566 nbranch shutter_dy_push_queue_long_release ,blank 
+6547 1a60a605 increase key_state_release_clk_offset ,regc 
+6548 1c427e00 copy clkn_bt ,pdata 
+6549 e7e20013 istore key_state_release_clk_length ,regc 
+654a 20600000 rtn 
+
+shutter_dy_key_release_led:
+654b 6fe0cfaf fetch 1 ,mem_shutter_link_loop_flag 
+654c 243a4323 nbranch app_led_on ,blank 
+654d 20204325 branch app_led_off 
+
+shutter_dy_push_queue_release:
+654e 1a608c04 add regc ,4 ,contr 
+654f efe08006 ifetch 1 ,contr 
+6550 20206551 branch shutter_dy_push_queue_release1 
+
+shutter_dy_push_queue_release1:
+6551 2040656b call shutter_clear_dy_key_state 
+6552 6fe0ced9 fetch 1 ,mem_move_mode_trigger_enable 
+6553 243a655d nbranch shutter_dy_move_mode_queue_release ,blank 
+
+shutter_dy_push_queue_release1_next:
+6554 20406561 call shutter_dy_jude_queue_size 
+6555 20216500 branch shutter_dy_over_clear ,positive 
+6556 20406738 call shutter_dy_le_get_release_ptr 
+6557 18e27e00 copy queue ,pdata 
+6558 c001e740 beq shutter_photo_key_num ,shutter_dy_le_get_release_ptr_volume 
+6559 dfe0000f arg max_queue_num_release ,pdata 
+
+shutter_dy_push_queue_press_or_release:
+655a 98effe00 imul32 queue ,pdata 
+655b 9a60a600 iadd regc ,regc 
+655c 20206371 branch push_buffer_in_queue 
+
+shutter_dy_move_mode_queue_release:
+655d 18e27e00 copy queue ,pdata 
+655e c000e554 beq shutter_like_key_num ,shutter_dy_push_queue_release1_next 
+655f c001e554 beq shutter_photo_key_num ,shutter_dy_push_queue_release1_next 
+6560 20600000 rtn 
+
+shutter_dy_jude_queue_size:
+6561 20407902 call queue_get_size 
+6562 e8408006 ifetcht 1 ,contr 
+6563 98467e00 isub temp ,pdata 
+6564 1fe67c0a sub pdata ,max_queue_new_press ,null 
+6565 20600000 rtn 
+
+shutter_dy_push_queue_long_release:
+6566 704ed001 jam 1 ,mem_shutter_long_key_released_flag 
+6567 2040656b call shutter_clear_dy_key_state 
+6568 da604abe arg mem_key0_long_release ,regc 
+6569 dfe00003 arg max_queue_num_long_release ,pdata 
+656a 2020655a branch shutter_dy_push_queue_press_or_release 
+
+shutter_clear_dy_key_state:
+656b df20000a arg shutter_key_conf_sate_bytes ,loopcnt 
+656c 1a620a00 copy regc ,contw 
+656d 20207ca1 branch clear_mem 
+
+shutter_dy_keyscan_key_process:
+656e 6fe148bc fetch 2 ,mem_key_value_xmem 
+656f 67e1442e store 2 ,mem_key_value_retention 
+6570 204065be call shutter_dy_keyscan_key_process_next 
+6571 6fe1442e fetch 2 ,mem_key_value_retention 
+6572 67e148bc store 2 ,mem_key_value_xmem 
+6573 d8e00000 arg 0 ,queue 
+6574 6fe0c523 fetch 1 ,mem_shutter_key_num 
+6575 1fe27200 copy pdata ,loopcnt 
+6576 da6049fa arg mem_shutter_key_state0 ,regc 
+
+shutter_dy_keyscan_key_check_release_loop:
+6577 1f227e00 copy loopcnt ,pdata 
+6578 67e10678 store 2 ,mem_temp 
+6579 1a627e00 copy regc ,pdata 
+657a 67e1068c store 2 ,mem_regc 
+657b 18e27e00 copy queue ,pdata 
+657c 67e1067a store 2 ,mem_temp + 2 
+657d 204065b4 call shutter_dy_keyscan_key_check_release 
+657e 6fe1068c fetch 2 ,mem_regc 
+657f 1fe22600 copy pdata ,regc 
+6580 6fe1067a fetch 2 ,mem_temp + 2 
+6581 1fe20e00 copy pdata ,queue 
+6582 2040658b call shutter_dy_keyscan_key_check_long_press 
+6583 6fe1067a fetch 2 ,mem_temp + 2 
+6584 1fe08e01 add pdata ,1 ,queue 
+6585 6fe1068c fetch 2 ,mem_regc 
+6586 1fe0a60a add pdata ,shutter_key_conf_sate_bytes ,regc 
+6587 6fe10678 fetch 2 ,mem_temp 
+6588 1fe27200 copy pdata ,loopcnt 
+6589 c2006577 loop shutter_dy_keyscan_key_check_release_loop 
+658a 20600000 rtn 
+
+shutter_dy_keyscan_key_check_long_press:
+658b efe20013 ifetch key_state_press_clk_length ,regc 
+658c 207a0000 rtn blank 
+658d 1fe20400 copy pdata ,temp 
+658e 1c427e00 copy clkn_bt ,pdata 
+658f 98460400 isub temp ,temp 
+6590 24610000 nrtn positive 
+6591 580009c4 setarg 2500 
+6592 98467c00 isub temp ,null 
+6593 20610000 rtn positive 
+6594 1c427e00 copy clkn_bt ,pdata 
+6595 e7e20013 istore 4 ,regc 
+6596 1a60a609 increase key_state_longpress_offset ,regc 
+6597 58000001 setarg 1 
+6598 e7e08013 istore key_state_longpress_length ,regc 
+6599 6fe0ced0 fetch 1 ,mem_shutter_long_key_released_flag 
+659a 207a0000 rtn blank 
+659b 704ed000 jam 0 ,mem_shutter_long_key_released_flag 
+659c 44d34014 bpatch patch14_6 ,mem_patch14 
+659d 20406755 call shutter_dy_long_key_function 
+659e 6fe0ced7 fetch 1 ,mem_move_mode_set 
+659f c00065a2 beq move_combine_key ,shutter_dy_key_long_press_set_key_normal 
+65a0 c000e5a5 beq move_single_key ,shutter_dy_key_long_press_set_move_trigger 
+65a1 20600000 rtn 
+
+shutter_dy_key_long_press_set_key_normal:
+65a2 204065af call shutter_dy_long_press_android_or_ios 
+65a3 dfe00003 arg max_queue_num_long ,pdata 
+65a4 2020655a branch shutter_dy_push_queue_press_or_release 
+
+shutter_dy_key_long_press_set_move_trigger:
+65a5 18e27e00 copy queue ,pdata 
+65a6 6848ced8 fetcht 1 ,mem_move_mode_key_index 
+65a7 98467c00 isub temp ,null 
+65a8 2422e5a2 nbranch shutter_dy_key_long_press_set_key_normal ,zero 
+65a9 6fe0ced9 fetch 1 ,mem_move_mode_trigger_enable 
+65aa 79407e00 setflip 0 ,pdata 
+65ab 67e0ced9 store 1 ,mem_move_mode_trigger_enable 
+65ac 247a0000 nrtn blank 
+
+shutter_dy_move_mode_disable:
+65ad 704ed900 jam 0 ,mem_move_mode_trigger_enable 
+65ae 20204325 branch app_led_off 
+
+shutter_dy_long_press_android_or_ios:
+65af da604aa9 arg mem_key0_long_press ,regc 
+65b0 20406730 call shutter_dy_check_iphone 
+65b1 207a0000 rtn blank 
+65b2 da604bd0 arg mem_key0_long_press_i ,regc 
+65b3 20600000 rtn 
+
+shutter_dy_keyscan_key_check_release:
+65b4 1a60a405 add regc ,key_state_release_clk_offset ,regb 
+65b5 efe20012 ifetch key_state_release_clk_length ,regb 
+65b6 207a0000 rtn blank 
+65b7 1fe20400 copy pdata ,temp 
+65b8 1c427e00 copy clkn_bt ,pdata 
+65b9 98460400 isub temp ,temp 
+65ba 24417806 ncall ui_timer_timeout ,positive 
+65bb 580003e8 setarg 1000 
+65bc 98467c00 isub temp ,null 
+65bd 2020654e branch shutter_dy_push_queue_release 
+
+shutter_dy_keyscan_key_process_next:
+65be 6fe1442c fetch 2 ,mem_key_num_ptr 
+65bf efe0803f ifetch 1 ,pdata 
+65c0 207a0000 rtn blank 
+65c1 58000000 setarg 0 
+65c2 67e106f1 store 2 ,mem_key_value_temp 
+65c3 20407003 call keyscan_scan_key 
+65c4 243477a5 nbranch lpm_button_clean_wake_lock ,user 
+65c5 204077a3 call lpm_button_get_wake_lock 
+65c6 78547c00 disable user 
+65c7 6fe0c388 fetch 1 ,mem_le_adv_enable 
+65c8 247a0000 nrtn blank 
+65c9 44d3c014 bpatch patch14_7 ,mem_patch14 
+65ca 6fe0ced7 fetch 1 ,mem_move_mode_set 
+65cb c000e5cf beq move_single_key ,shutter_dy_skip_check_combine_key 
+65cc 20406628 call shutter_dy_check_combine_key_release 
+65cd 204065dc call shutter_dy_check_combine_key 
+65ce 20740000 rtn user 
+
+shutter_dy_skip_check_combine_key:
+65cf 204065d5 call shutter_dy_single_key_led 
+65d0 6fe106f1 fetch 2 ,mem_key_value_temp 
+65d1 67e106f8 store 2 ,mem_key_value_temp4 
+65d2 7006fa00 jam 0 ,mem_key_value_temp6 
+65d3 18000e00 force 0 ,queue 
+65d4 2020703b branch keyscan_key_lp1 
+
+shutter_dy_single_key_led:
+65d5 6fe0ced5 fetch 1 ,mem_last_press_key_value 
+65d6 6848ced8 fetcht 1 ,mem_move_mode_key_index 
+65d7 98467c00 isub temp ,null 
+65d8 2022c323 branch app_led_on ,zero 
+65d9 6fe0ced9 fetch 1 ,mem_move_mode_trigger_enable 
+65da 243a4325 nbranch app_led_off ,blank 
+65db 20600000 rtn 
+
+shutter_dy_check_combine_key:
+65dc d8e00000 arg 0 ,queue 
+
+shutter_dy_check_combine_key_loop:
+65dd da404ad3 arg mem_combine_key0 ,regb 
+65de dfe00002 arg 2 ,pdata 
+65df 98effe00 imul32 queue ,pdata 
+65e0 9a40a400 iadd regb ,regb 
+65e1 efe10012 ifetch 2 ,regb 
+65e2 207a0000 rtn blank 
+65e3 684906f1 fetcht 2 ,mem_key_value_temp 
+65e4 9842fc00 ixor temp ,null 
+65e5 2022e5e8 branch shutter_dy_check_combine_key_parse ,zero 
+65e6 18e08e01 increase 1 ,queue 
+65e7 202065dd branch shutter_dy_check_combine_key_loop 
+
+shutter_dy_check_combine_key_parse:
+65e8 67e14adf store 2 ,mem_combine_key_state0 
+65e9 20404323 call app_led_on 
+65ea da604ae1 arg mem_combine_key0_press ,regc 
+65eb dfe0000a arg max_queue_num_combinekey ,pdata 
+65ec 98effe00 imul32 queue ,pdata 
+65ed 9a60a600 iadd regc ,regc 
+65ee 204065f0 call shutter_dy_push_buffer_in_queue 
+65ef 20206633 branch shutter_dy_combine_key_enableuser 
+
+shutter_dy_push_buffer_in_queue:
+65f0 2040677f call shutter_dy_jude_clear_move_config 
+65f1 efe08013 ifetch 1 ,regc 
+65f2 207a0000 rtn blank 
+65f3 20406642 call shutter_dy_check_move_data 
+
+shutter_dy_move_to_specify_location:
+65f4 2040677f call shutter_dy_jude_clear_move_config 
+65f5 20406609 call shutter_dy_move_down_left_corner 
+65f6 20406614 call shutter_dy_move_x_max 
+65f7 2040661e call shutter_dy_move_y_max 
+65f8 dfe00005 arg 0x05 ,pdata 
+65f9 20406382 call queue_push_one_byte 
+65fa 20406730 call shutter_dy_check_iphone 
+65fb 207a0000 rtn blank 
+65fc 7049f578 jam 120 ,mem_send_data_delay 
+65fd dfe00006 arg 0x06 ,pdata 
+65fe 20206382 branch queue_push_one_byte 
+
+shutter_dy_move_down_left_corner_count_set:
+65ff 6848ceba fetcht 1 ,mem_shutter_back_count 
+6600 20406730 call shutter_dy_check_iphone 
+6601 207a0000 rtn blank 
+6602 6848cebd fetcht 1 ,mem_shutter_iphone_beyond_y_count 
+6603 18408401 increase 1 ,temp 
+6604 6fe0ced6 fetch 1 ,mem_shutter_first_move 
+6605 207a0000 rtn blank 
+6606 6848ceba fetcht 1 ,mem_shutter_back_count 
+6607 704ed600 jam 0 ,mem_shutter_first_move 
+6608 20600000 rtn 
+
+shutter_dy_move_down_left_corner:
+6609 204065ff call shutter_dy_move_down_left_corner_count_set 
+660a 18427e00 copy temp ,pdata 
+660b 207a0000 rtn blank 
+660c 67e0cec3 store 1 ,mem_shutter_back_count_cache 
+
+shutter_dy_move_down_left_corner_loop:
+660d dfe00013 arg 0x13 ,pdata 
+660e 20406382 call queue_push_one_byte 
+660f 6fe0cec3 fetch 1 ,mem_shutter_back_count_cache 
+6610 1fe0ffff increase -1 ,pdata 
+6611 67e0cec3 store 1 ,mem_shutter_back_count_cache 
+6612 207a0000 rtn blank 
+6613 2020660d branch shutter_dy_move_down_left_corner_loop 
+
+shutter_dy_move_x_max:
+6614 6fe0cebc fetch 1 ,mem_shutter_iphone_beyond_x_count 
+6615 207a0000 rtn blank 
+6616 67e0cec4 store 1 ,mem_shutter_iphone_beyond_x_cache 
+
+shutter_dy_move_x_max_number:
+6617 dfe00020 arg 0x20 ,pdata 
+6618 20406382 call queue_push_one_byte 
+6619 6fe0cec4 fetch 1 ,mem_shutter_iphone_beyond_x_cache 
+661a 1fe0ffff increase -1 ,pdata 
+661b 67e0cec4 store 1 ,mem_shutter_iphone_beyond_x_cache 
+661c 207a0000 rtn blank 
+661d 20206617 branch shutter_dy_move_x_max_number 
+
+shutter_dy_move_y_max:
+661e 6fe0cebd fetch 1 ,mem_shutter_iphone_beyond_y_count 
+661f 207a0000 rtn blank 
+6620 67e0cec5 store 1 ,mem_shutter_iphone_beyond_y_cache 
+
+shutter_dy_move_y_max_number:
+6621 dfe00021 arg 0x21 ,pdata 
+6622 20406382 call queue_push_one_byte 
+6623 6fe0cec5 fetch 1 ,mem_shutter_iphone_beyond_y_cache 
+6624 1fe0ffff increase -1 ,pdata 
+6625 67e0cec5 store 1 ,mem_shutter_iphone_beyond_y_cache 
+6626 207a0000 rtn blank 
+6627 20206621 branch shutter_dy_move_y_max_number 
+
+shutter_dy_check_combine_key_release:
+6628 6fe14adf fetch 2 ,mem_combine_key_state0 
+6629 207a0000 rtn blank 
+662a 684906f1 fetcht 2 ,mem_key_value_temp 
+662b 18467c00 sub temp ,0 ,null 
+662c 2022e636 branch shutter_dy_check_combine_key_release_all ,zero 
+662d 98467c00 isub temp ,null 
+662e 20628000 rtn zero 
+662f 60494adf storet 2 ,mem_combine_key_state0 
+6630 6fe14ed3 fetch 2 ,mem_combine_key_release_value 
+6631 98467c00 isub temp ,null 
+6632 2042c325 call app_led_off ,zero 
+
+shutter_dy_combine_key_enableuser:
+6633 6fe106f1 fetch 2 ,mem_key_value_temp 
+6634 67e1442e store 2 ,mem_key_value_retention 
+6635 20207dba branch enable_user 
+
+shutter_dy_check_combine_key_release_all:
+6636 704ed001 jam 1 ,mem_shutter_long_key_released_flag 
+6637 20404325 call app_led_off 
+6638 da604b1d arg mem_combine_key_release ,regc 
+6639 204065f0 call shutter_dy_push_buffer_in_queue 
+663a 58000000 setarg 0 
+663b 67e14adf store 2 ,mem_combine_key_state0 
+663c 7048ae32 jam 50 ,mem_shutter_1s_timer 
+663d 20406633 call shutter_dy_combine_key_enableuser 
+663e 6fe0c523 fetch 1 ,mem_shutter_key_num 
+663f 1feff20a mul32 pdata ,shutter_key_conf_sate_bytes ,loopcnt 
+6640 d8a049fa arg mem_shutter_key_state0 ,contw 
+6641 20207ca1 branch clear_mem 
+
+shutter_dy_check_move_data:
+6642 44d44015 bpatch patch15_0 ,mem_patch15 
+6643 6fe0ced7 fetch 1 ,mem_move_mode_set 
+6644 c000e647 beq move_single_key ,shutter_dy_check_move_data_single_key 
+6645 c000664d beq move_combine_key ,shutter_dy_check_move_data_combine_key 
+6646 20600000 rtn 
+
+shutter_dy_check_move_data_single_key:
+6647 18e27e00 copy queue ,pdata 
+6648 c002e676 beq shutter_left_key_num ,shutter_dy_move_left 
+6649 c0006693 beq shutter_right_key_num ,shutter_dy_move_right 
+664a c002669b beq shutter_up_key_num ,shutter_dy_move_up 
+664b c00166be beq shutter_down_key_num ,shutter_dy_move_down 
+664c 20600000 rtn 
+
+shutter_dy_check_move_data_combine_key:
+664d efe08013 ifetch 1 ,regc 
+664e c000e676 beq 0x01 ,shutter_dy_move_left 
+664f c0016693 beq 0x02 ,shutter_dy_move_right 
+6650 c001e69b beq 0x03 ,shutter_dy_move_up 
+6651 c00266be beq 0x04 ,shutter_dy_move_down 
+6652 c002e654 beq 0x05 ,shutter_dy_get_move_data 
+6653 20600000 rtn 
+
+shutter_dy_get_move_data:
+6654 20406730 call shutter_dy_check_iphone 
+6655 243a665e nbranch shutter_dy_get_move_data_iphone ,blank 
+6656 58000004 setarg 4 
+6657 1feffe0a mul32 pdata ,every_payload_len ,pdata 
+6658 d8404c12 arg mem_shutter_mousekey_value_list ,temp 
+6659 98408a00 iadd temp ,contw 
+665a 18a08a03 increase 3 ,contw 
+665b 6fe1cb27 fetch 3 ,mem_shutter_move_data 
+665c e7e18005 istore 3 ,contw 
+665d 20600000 rtn 
+
+shutter_dy_get_move_data_iphone:
+665e 58000004 setarg 4 
+665f 1feffe0a mul32 pdata ,every_payload_len ,pdata 
+6660 d8404c12 arg mem_shutter_mousekey_value_list ,temp 
+6661 98408a00 iadd temp ,contw 
+6662 18a08a03 increase 3 ,contw 
+6663 6fe14ebe fetch 2 ,mem_shutter_move_data_x 
+6664 e7e18005 istore 3 ,contw 
+6665 18a08a07 increase 7 ,contw 
+6666 6fe14ec0 fetch 2 ,mem_shutter_move_data_y 
+6667 1ff27e00 lshift4 pdata ,pdata 
+6668 1fed7e00 lshift8 pdata ,pdata 
+6669 e7e18005 istore 3 ,contw 
+666a 20600000 rtn 
+
+shutter_dy_move_x_empty_check:
+666b 6fe0cebc fetch 1 ,mem_shutter_iphone_beyond_x_count 
+666c 207a0000 rtn blank 
+666d 1fe0ffff increase -1 ,pdata 
+666e 67e0cebc store 1 ,mem_shutter_iphone_beyond_x_count 
+666f dfe00062 arg iphone_once_max_move_value ,pdata 
+6670 20600000 rtn 
+
+shutter_dy_every_move_size_set:
+6671 d840000a arg android_every_move_size ,temp 
+6672 20406730 call shutter_dy_check_iphone 
+6673 207a0000 rtn blank 
+6674 d8400007 arg iphone_every_move_size ,temp 
+6675 20600000 rtn 
+
+shutter_dy_move_left:
+6676 20406671 call shutter_dy_every_move_size_set 
+6677 6fe14ebe fetch 2 ,mem_shutter_move_data_x 
+6678 98467c00 isub temp ,null 
+6679 2441666b ncall shutter_dy_move_x_empty_check ,positive 
+667a 24610000 nrtn positive 
+667b 98467e00 isub temp ,pdata 
+
+shutter_dy_move_store_x:
+667c 67e14ebe store 2 ,mem_shutter_move_data_x 
+
+shutter_dy_move_data_store:
+667d 44d4c015 bpatch patch15_1 ,mem_patch15 
+667e 6fe14ebe fetch 2 ,mem_shutter_move_data_x 
+667f 68494ec0 fetcht 2 ,mem_shutter_move_data_y 
+6680 184d0400 lshift8 temp ,temp 
+6681 18520400 lshift4 temp ,temp 
+6682 9840fe00 iadd temp ,pdata 
+6683 67e1cb27 store 3 ,mem_shutter_move_data 
+6684 20206654 branch shutter_dy_get_move_data 
+
+shutter_dy_move_x_check_max:
+6685 6fe14ebe fetch 2 ,mem_shutter_move_data_x 
+6686 d8400062 arg iphone_once_max_move_value ,temp 
+6687 98460400 isub temp ,temp 
+6688 24610000 nrtn positive 
+6689 18427e00 copy temp ,pdata 
+668a 6848cebc fetcht 1 ,mem_shutter_iphone_beyond_x_count 
+668b 18467c03 sub temp ,0x03 ,null 
+668c 2022e690 branch shutter_dy_clear_move_x ,zero 
+668d 18408401 increase 1 ,temp 
+668e 6048cebc storet 1 ,mem_shutter_iphone_beyond_x_count 
+668f 2020667c branch shutter_dy_move_store_x 
+
+shutter_dy_clear_move_x:
+6690 704ebc00 jam 0 ,mem_shutter_iphone_beyond_x_count 
+6691 dfe00000 arg 0 ,pdata 
+6692 2020667c branch shutter_dy_move_store_x 
+
+shutter_dy_move_right:
+6693 20406730 call shutter_dy_check_iphone 
+6694 245a6685 ncall shutter_dy_move_x_check_max ,blank 
+6695 20406671 call shutter_dy_every_move_size_set 
+6696 6fe14ebe fetch 2 ,mem_shutter_move_data_x 
+
+shutter_dy_move_right_next:
+6697 9840fe00 iadd temp ,pdata 
+6698 d8400fff arg 0xfff ,temp 
+6699 20407d6c call ceiling 
+669a 2020667c branch shutter_dy_move_store_x 
+
+shutter_dy_move_up:
+669b 20406671 call shutter_dy_every_move_size_set 
+669c 6fe14ec0 fetch 2 ,mem_shutter_move_data_y 
+669d 98467e00 isub temp ,pdata 
+669e 67e14ec0 store 2 ,mem_shutter_move_data_y 
+
+shutter_dy_move_y_check_max:
+669f 68494ec0 fetcht 2 ,mem_shutter_move_data_y 
+66a0 20406730 call shutter_dy_check_iphone 
+66a1 203a667d branch shutter_dy_move_data_store ,blank 
+66a2 58000fff setarg 0xfff 
+66a3 98467e00 isub temp ,pdata 
+66a4 d8400062 arg iphone_once_max_move_value ,temp 
+66a5 98460400 isub temp ,temp 
+66a6 2421667d nbranch shutter_dy_move_data_store ,positive 
+66a7 58000fff setarg 0xfff 
+66a8 98467e00 isub temp ,pdata 
+66a9 6848cebd fetcht 1 ,mem_shutter_iphone_beyond_y_count 
+66aa 18467c05 sub temp ,0x05 ,null 
+66ab 2022e6af branch shutter_dy_clear_move_y ,zero 
+66ac 18408401 increase 1 ,temp 
+66ad 6048cebd storet 1 ,mem_shutter_iphone_beyond_y_count 
+66ae 202066bc branch shutter_dy_move_store_y 
+
+shutter_dy_clear_move_y:
+66af 704ebd00 jam 0 ,mem_shutter_iphone_beyond_y_count 
+
+shutter_dy_android_move_y_empty_check:
+66b0 58000fff setarg 0xfff 
+66b1 202066bc branch shutter_dy_move_store_y 
+
+shutter_dy_move_y_empty_check:
+66b2 20406730 call shutter_dy_check_iphone 
+66b3 203a66b0 branch shutter_dy_android_move_y_empty_check ,blank 
+66b4 6fe0cebd fetch 1 ,mem_shutter_iphone_beyond_y_count 
+66b5 203a66b0 branch shutter_dy_android_move_y_empty_check ,blank 
+66b6 1fe0ffff increase -1 ,pdata 
+66b7 67e0cebd store 1 ,mem_shutter_iphone_beyond_y_count 
+66b8 58000fff setarg 0xfff 
+66b9 d8400062 arg iphone_once_max_move_value ,temp 
+66ba 98467e00 isub temp ,pdata 
+66bb 9a20fe00 iadd rega ,pdata 
+
+shutter_dy_move_store_y:
+66bc 67e14ec0 store 2 ,mem_shutter_move_data_y 
+66bd 2020667d branch shutter_dy_move_data_store 
+
+shutter_dy_move_down:
+66be 20406671 call shutter_dy_every_move_size_set 
+66bf 6fe14ec0 fetch 2 ,mem_shutter_move_data_y 
+
+shutter_dy_move_down_next:
+66c0 9840fe00 iadd temp ,pdata 
+66c1 d8400fff arg 0xfff ,temp 
+66c2 98462200 isub temp ,rega 
+66c3 202166b2 branch shutter_dy_move_y_empty_check ,positive 
+66c4 202066bc branch shutter_dy_move_store_y 
+
+ble_shutter_dy_receive_data:
+66c5 6fe14398 fetch 2 ,mem_le_att_handle 
+66c6 c01262e9 beq gatt_keyboard_write_handle_new ,ble_shutter_process_reconnect_complete 
+66c7 20600000 rtn 
+
+shutter_dy_le_find_service_hand_by_uuid:
+66c8 da200017 arg 23 ,rega 
+66c9 da400004 arg le_l2cap_cid_att ,regb 
+66ca 204029fb call le_fifo_malloc_tx_l2cap 
+66cb 58000006 setarg attop_find_by_type_value_request 
+66cc e7e08005 istore 1 ,contw 
+66cd 58000001 setarg 0x0001 
+66ce e7e10005 istore 2 ,contw 
+66cf 5800ffff setarg 0xffff 
+66d0 e7e10005 istore 2 ,contw 
+66d1 58002800 setarg 0x2800 
+66d2 e7e10005 istore 2 ,contw 
+66d3 d8c049e4 arg mem_dy_le_search_service_uuid ,contr 
+66d4 20207c8f branch memcpy16 
+
+shutter_dy_le_parse_att:
+66d5 44d54015 bpatch patch15_2 ,mem_patch15 
+66d6 1a220c00 copy rega ,contr 
+66d7 efe18006 ifetch 3 ,contr 
+66d8 67e1c397 store 3 ,mem_le_att_opcode 
+66d9 c003e704 beq attop_find_by_type_value_response ,shutter_dy_le_parse_att_find_by_type_value_rsp 
+66da c000e725 beq attop_error_response ,shutter_dy_le_parse_error_rsp 
+66db c00566f4 beq attop_read_request ,shutter_dy_le_parse_att_read_request 
+66dc c00666de beq attop_read_blob_request ,shutter_dy_le_parse_att_read_blob_request 
+66dd 20202b96 branch le_parse_att2 
+
+shutter_dy_le_parse_att_read_blob_request:
+66de efe10006 ifetch 2 ,contr 
+66df 67e106b5 store 2 ,mem_le_att_offset 
+66e0 98002200 iforce rega 
+66e1 68494398 fetcht 2 ,mem_le_att_handle 
+66e2 6fe14332 fetch 2 ,mem_le_pairing_handle 
+66e3 98467c00 isub temp ,null 
+66e4 2422ad50 nbranch le_send_att_read_blob_response ,zero 
+66e5 20406730 call shutter_dy_check_iphone 
+66e6 243a66e9 nbranch shutter_dy_le_parse_att_read_blob_request_ios ,blank 
+66e7 684949e0 fetcht 2 ,mem_shutter_le_map_len_android 
+66e8 202066ea branch shutter_dy_le_parse_att_read_blob_request2 
+
+shutter_dy_le_parse_att_read_blob_request_ios:
+66e9 684949e2 fetcht 2 ,mem_shutter_le_map_len_ios 
+
+shutter_dy_le_parse_att_read_blob_request2:
+66ea d8c048be arg mem_shutter_le_hid_map ,contr 
+66eb 20407c6d call store_contr 
+66ec 18427e00 copy temp ,pdata 
+66ed 9a267e00 isub rega ,pdata 
+66ee 24212e03 nbranch le_send_att_error_response_notfound ,positive 
+66ef 1fe0fe01 increase 1 ,pdata 
+66f0 1fe67c17 sub pdata ,23 ,null 
+66f1 20212d59 branch le_send_att_read_blob_response_less ,positive 
+66f2 18007e17 force 23 ,pdata 
+66f3 20202d59 branch le_send_att_read_blob_response_less 
+
+shutter_dy_le_parse_att_read_request:
+66f4 68494398 fetcht 2 ,mem_le_att_handle 
+66f5 6fe0c321 fetch 1 ,mem_le_configuration 
+66f6 c281e6f8 bbit1 bit_ble_read_auth ,shutter_dy_le_send_att_read_response_check_auth 
+66f7 20202d1d branch le_send_att_read_response 
+
+shutter_dy_le_send_att_read_response_check_auth:
+66f8 6fe14332 fetch 2 ,mem_le_pairing_handle 
+66f9 98467c00 isub temp ,null 
+66fa 2422ad1d nbranch le_send_att_read_response ,zero 
+66fb 20402dc7 call le_check_encrypt_state 
+66fc 243466fe nbranch shutter_dy_le_send_att_read_response ,user 
+66fd 20202d46 branch le_send_att_read_response_error_insufficient_auth 
+
+shutter_dy_le_send_att_read_response:
+66fe 6fe14332 fetch 2 ,mem_le_pairing_handle 
+66ff 98467c00 isub temp ,null 
+6700 2422ad1d nbranch le_send_att_read_response ,zero 
+6701 d8c048be arg mem_shutter_le_hid_map ,contr 
+6702 18007e17 force 23 ,pdata 
+6703 20202d2d branch le_send_att_read_response_less 
+
+shutter_dy_le_parse_att_find_by_type_value_rsp:
+
+shutter_dy_le_remote_iphone:
+6704 44d5c015 bpatch patch15_3 ,mem_patch15 
+6705 704eba05 jam 5 ,mem_shutter_back_count 
+6706 7049f401 jam 1 ,mem_iphone_flag 
+6707 704ec201 jam 1 ,mem_last_shutter_le_iphone_flag 
+6708 7049f5f0 jam 240 ,mem_send_data_delay 
+6709 704ed10a jam 10 ,mem_shutter_move_mid_timer 
+670a 704ed601 jam 1 ,mem_shutter_first_move 
+670b 204067bf call shutter_dy_load_move_config_info 
+670c 6fe0ced2 fetch 1 ,mem_shutter_pairing_success 
+670d 207a0000 rtn blank 
+670e 20406783 call shutter_dy_clear_move_config 
+670f d8400062 arg iphone_once_max_move_value ,temp 
+6710 6fe14f88 fetch 2 ,mem_iphone_initial_move_x 
+6711 da204ebe arg mem_shutter_move_data_x ,rega 
+6712 da404ebc arg mem_shutter_iphone_beyond_x_count ,regb 
+6713 2040671e call shutter_dy_iphone_move_initial_set 
+6714 d8400062 arg iphone_once_max_move_value ,temp 
+6715 6fe14f8a fetch 2 ,mem_iphone_initial_move_y 
+6716 da204ec0 arg mem_shutter_move_data_y ,rega 
+6717 da404ebd arg mem_shutter_iphone_beyond_y_count ,regb 
+6718 2040671e call shutter_dy_iphone_move_initial_set 
+6719 58000fff setarg 0xfff 
+671a 68494ec0 fetcht 2 ,mem_shutter_move_data_y 
+671b 98467e00 isub temp ,pdata 
+671c 67e14ec0 store 2 ,mem_shutter_move_data_y 
+671d 20600000 rtn 
+
+shutter_dy_iphone_move_initial_set:
+671e 9846fc00 idiv temp 
+671f 20407d62 call wait_div_end 
+6720 1807fe00 quotient pdata 
+6721 18070400 remainder temp 
+6722 e7e08012 istore 1 ,regb 
+6723 e0410011 istoret 2 ,rega 
+6724 20600000 rtn 
+
+shutter_dy_le_parse_error_rsp:
+6725 18c08dfe increase -2 ,contr 
+6726 efe08006 ifetch 1 ,contr 
+6727 c003672e beq attop_find_by_type_value_request ,shutter_dy_not_iphone_read_conf 
+6728 20600000 rtn 
+
+shutter_dy_remote_not_iphone:
+6729 704eba01 jam 1 ,mem_shutter_back_count 
+672a 7049f400 jam 0 ,mem_iphone_flag 
+672b 704ec200 jam 0 ,mem_last_shutter_le_iphone_flag 
+672c 7049f50a jam 10 ,mem_send_data_delay 
+672d 20600000 rtn 
+
+shutter_dy_not_iphone_read_conf:
+672e 20406729 call shutter_dy_remote_not_iphone 
+672f 202067bf branch shutter_dy_load_move_config_info 
+
+shutter_dy_check_iphone:
+6730 6fe0c9f4 fetch 1 ,mem_iphone_flag 
+6731 20600000 rtn 
+
+shutter_dy_le_get_press_ptr:
+6732 da604f24 arg mem_dy_key0_press ,regc 
+6733 20406730 call shutter_dy_check_iphone 
+6734 207a0000 rtn blank 
+6735 7049f578 jam 120 ,mem_send_data_delay 
+6736 da604b2b arg mem_key0_press_i ,regc 
+6737 20600000 rtn 
+
+shutter_dy_le_get_release_ptr:
+
+shutter_dy_le_get_release_ptr_set:
+6738 da604a40 arg mem_key0_release_new ,regc 
+6739 20406730 call shutter_dy_check_iphone 
+673a 207a0000 rtn blank 
+673b da604b67 arg mem_key0_release_new_i ,regc 
+673c 7049f50c jam 12 ,mem_send_data_delay 
+673d 18e27e00 copy queue ,pdata 
+673e c1008000 rtneq shutter_like_key_num 
+673f 20600000 rtn 
+
+shutter_dy_le_get_release_ptr_volume:
+6740 44d64015 bpatch patch15_4 ,mem_patch15 
+6741 6fe0cc0e fetch 1 ,mem_key3_press_count 
+6742 79407e00 setflip 0 ,pdata 
+6743 67e0cc0e store 1 ,mem_key3_press_count 
+6744 c0006749 beq 0 ,shutter_dy_le_get_release_ptr_set_volume_inc 
+6745 c000e747 beq 1 ,shutter_dy_le_get_release_ptr_set_volume_dec 
+6746 20600000 rtn 
+
+shutter_dy_le_get_release_ptr_set_volume_dec:
+6747 20406750 call shutter_dy_le_get_vol_dec_ptr 
+6748 20206371 branch push_buffer_in_queue 
+
+shutter_dy_le_get_release_ptr_set_volume_inc:
+6749 2040674b call shutter_dy_le_get_vol_inc_ptr 
+674a 20206371 branch push_buffer_in_queue 
+
+shutter_dy_le_get_vol_inc_ptr:
+674b da604a6d arg mem_key3_release_new ,regc 
+674c 20406730 call shutter_dy_check_iphone 
+674d 207a0000 rtn blank 
+674e da604b94 arg mem_key3_release_new_i ,regc 
+674f 20600000 rtn 
+
+shutter_dy_le_get_vol_dec_ptr:
+6750 da604bfa arg mem_key3_release_new_t ,regc 
+6751 20406730 call shutter_dy_check_iphone 
+6752 207a0000 rtn blank 
+6753 da604c04 arg mem_key3_release_new_i_t ,regc 
+6754 20600000 rtn 
+
+shutter_dy_long_key_function:
+6755 18e27e00 copy queue ,pdata 
+6756 c000e777 beq shutter_like_key_num ,shutter_dy_link_key_long_press 
+6757 c0016765 beq shutter_down_key_num ,shutter_dy_loop_send_volume_dec_page 
+6758 c0026761 beq shutter_up_key_num ,shutter_dy_loop_send_volume_inc_page 
+6759 20600000 rtn 
+
+shutter_dy_long_key_volume_timer:
+675a da604f9d arg mem_shutter_volume_timer ,regc 
+675b da40675d arg shutter_dy_long_key_volume_timeout ,regb 
+675c 202042e0 branch timer_single_step 
+
+shutter_dy_long_key_volume_timeout:
+675d 704f9d04 jam 4 ,mem_shutter_volume_timer 
+675e 6fe0cc0e fetch 1 ,mem_key3_press_count 
+675f 203a6761 branch shutter_dy_loop_send_volume_inc_page ,blank 
+6760 20206765 branch shutter_dy_loop_send_volume_dec_page 
+
+shutter_dy_loop_send_volume_inc_page:
+6761 704c0e00 jam 0 ,mem_key3_press_count 
+6762 704f9d04 jam 4 ,mem_shutter_volume_timer 
+6763 da604ab5 arg mem_key4_long_press ,regc 
+6764 20206371 branch push_buffer_in_queue 
+
+shutter_dy_loop_send_volume_dec_page:
+6765 704c0e01 jam 1 ,mem_key3_press_count 
+6766 704f9d04 jam 4 ,mem_shutter_volume_timer 
+6767 da604aaf arg mem_key2_long_press ,regc 
+6768 20206371 branch push_buffer_in_queue 
+
+shutter_dy_clear_volume_timer:
+6769 704c0e00 jam 0 ,mem_key3_press_count 
+676a 704f9d00 jam 0 ,mem_shutter_volume_timer 
+676b 20600000 rtn 
+
+shutter_dy_link_key_loop_timer:
+676c da604f9e arg mem_shutter_link_timer ,regc 
+676d da40676f arg shutter_dy_link_key_loop_timeout ,regb 
+676e 202042e0 branch timer_single_step 
+
+shutter_dy_link_key_loop_timeout:
+676f 704f9e02 jam 2 ,mem_shutter_link_timer 
+6770 20406772 call shutter_dy_link_data_android_or_ios 
+6771 20206371 branch push_buffer_in_queue 
+
+shutter_dy_link_data_android_or_ios:
+6772 da604f9f arg mem_shutter_link_data ,regc 
+6773 20406730 call shutter_dy_check_iphone 
+6774 207a0000 rtn blank 
+6775 da604fa7 arg mem_shutter_link_data_i ,regc 
+6776 20600000 rtn 
+
+shutter_dy_link_key_long_press:
+6777 6fe0cfaf fetch 1 ,mem_shutter_link_loop_flag 
+6778 243a677c nbranch shutter_dy_clear_link_key_timer ,blank 
+6779 704faf01 jam 1 ,mem_shutter_link_loop_flag 
+677a 704f9e02 jam 2 ,mem_shutter_link_timer 
+677b 20600000 rtn 
+
+shutter_dy_clear_link_key_timer:
+677c 704faf00 jam 0 ,mem_shutter_link_loop_flag 
+677d 704f9e00 jam 0 ,mem_shutter_link_timer 
+677e 20600000 rtn 
+
+shutter_dy_jude_clear_move_config:
+677f 6fe0cebb fetch 1 ,mem_shutter_le_conned 
+6780 247a0000 nrtn blank 
+6781 704ebb01 jam 1 ,mem_shutter_le_conned 
+6782 2020667d branch shutter_dy_move_data_store 
+
+shutter_dy_clear_move_config:
+6783 58000000 setarg 0 
+6784 67e3cebc store 7 ,mem_move_config 
+6785 20600000 rtn 
+
+shutter_dy_write_otp_convert_data:
+6786 20406730 call shutter_dy_check_iphone 
+6787 c000e78e beq 0x01 ,shutter_dy_store_ios_config_data 
+6788 c00067a0 beq 0x00 ,shutter_dy_store_android_config 
+6789 20600000 rtn 
+
+shutter_dy_read_otp_convert_data:
+678a 6fe0cf90 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+678b c000e7a7 beq 0x01 ,shutter_dy_get_ios_config 
+678c c00067b9 beq 0x00 ,shutter_dy_get_android_config 
+678d 20600000 rtn 
+
+shutter_dy_store_ios_config_data:
+678e 6fe0cebc fetch 1 ,mem_shutter_iphone_beyond_x_count 
+678f 1feffe62 mul32 pdata ,iphone_once_max_move_value ,pdata 
+6790 1fe20400 copy pdata ,temp 
+6791 6fe14ebe fetch 2 ,mem_shutter_move_data_x 
+6792 9840fe00 iadd temp ,pdata 
+6793 67e14f8c store 2 ,mem_otp_shutter_move_data_x 
+6794 6fe0cebd fetch 1 ,mem_shutter_iphone_beyond_y_count 
+6795 1feffe62 mul32 pdata ,iphone_once_max_move_value ,pdata 
+6796 1fe20400 copy pdata ,temp 
+6797 6fe14ec0 fetch 2 ,mem_shutter_move_data_y 
+6798 1fe22200 copy pdata ,rega 
+6799 58000fff setarg 0xfff 
+679a 9a267e00 isub rega ,pdata 
+679b 9840fe00 iadd temp ,pdata 
+679c 67e14f8e store 2 ,mem_otp_shutter_move_data_y 
+679d 20406730 call shutter_dy_check_iphone 
+679e 67e0cf90 store 1 ,mem_otp_last_shutter_le_iphone_flag 
+679f 20600000 rtn 
+
+shutter_dy_store_android_config:
+67a0 6fe14ebe fetch 2 ,mem_shutter_move_data_x 
+67a1 67e14f8c store 2 ,mem_otp_shutter_move_data_x 
+67a2 6fe14ec0 fetch 2 ,mem_shutter_move_data_y 
+67a3 67e14f8e store 2 ,mem_otp_shutter_move_data_y 
+67a4 20406730 call shutter_dy_check_iphone 
+67a5 67e0cf90 store 1 ,mem_otp_last_shutter_le_iphone_flag 
+67a6 20600000 rtn 
+
+shutter_dy_get_ios_config:
+67a7 6fe14f8c fetch 2 ,mem_otp_shutter_move_data_x 
+67a8 1fe6fc62 div pdata ,iphone_once_max_move_value 
+67a9 20407d62 call wait_div_end 
+67aa 1807fe00 quotient pdata 
+67ab 18070400 remainder temp 
+67ac 67e0cebc store 1 ,mem_shutter_iphone_beyond_x_count 
+67ad 18427e00 copy temp ,pdata 
+67ae 67e14ebe store 2 ,mem_shutter_move_data_x 
+67af 6fe14f8e fetch 2 ,mem_otp_shutter_move_data_y 
+67b0 1fe6fc62 div pdata ,iphone_once_max_move_value 
+67b1 20407d62 call wait_div_end 
+67b2 1807fe00 quotient pdata 
+67b3 18070400 remainder temp 
+67b4 67e0cebd store 1 ,mem_shutter_iphone_beyond_y_count 
+67b5 58000fff setarg 0xfff 
+67b6 98467e00 isub temp ,pdata 
+67b7 67e14ec0 store 2 ,mem_shutter_move_data_y 
+67b8 20600000 rtn 
+
+shutter_dy_get_android_config:
+67b9 6fe14f8c fetch 2 ,mem_otp_shutter_move_data_x 
+67ba 67e14ebe store 2 ,mem_shutter_move_data_x 
+67bb 6fe14f8e fetch 2 ,mem_otp_shutter_move_data_y 
+67bc 67e14ec0 store 2 ,mem_shutter_move_data_y 
+67bd 20600000 rtn 
+
+shutter_dy_store_move_config_info:
+67be 2020683c branch shutter_dy_campare_effective_addr_write_otp 
+
+shutter_dy_load_move_config_info:
+67bf 20206823 branch shutter_dy_campare_effective_addr_read_otp 
+
+shutter_dy_shutter_uart_config_loop:
+67c0 204067e2 call shutter_dy_update_read_check_addr 
+67c1 6fe14f93 fetch 2 ,mem_otp_read_offset_addr 
+67c2 2040684f call shutter_dy_shutter_read_move_config_from_otp_addr 
+67c3 704f9b00 jam 0 ,mem_shutter_first_read_flag 
+67c4 6fe2cf8c fetch 5 ,mem_otp_move_config 
+67c5 704f9c00 jam 0 ,mem_shutter_valid_data_flag 
+67c6 704f9900 jam 0 ,mem_shutter_temp_count 
+67c7 204067e6 call shutter_dy_campare_otp_data 
+67c8 6fe0cf99 fetch 1 ,mem_shutter_temp_count 
+67c9 c1000000 rtneq 0 
+67ca 202067c0 branch shutter_dy_shutter_uart_config_loop 
+
+shutter_dy_shutter_get_first_read_addr:
+67cb 6fe14f80 fetch 2 ,mem_shutter_efuse_start_offset 
+67cc 1fe0fffb increase -5 ,pdata 
+67cd 67e14f93 store 2 ,mem_otp_read_offset_addr 
+67ce 20600000 rtn 
+
+shutter_dy_shutter_next_read_addr:
+67cf 6fe14f93 fetch 2 ,mem_otp_read_offset_addr 
+67d0 1fe0fffb increase -5 ,pdata 
+67d1 67e14f93 store 2 ,mem_otp_read_offset_addr 
+67d2 20600000 rtn 
+
+shutter_dy_shutter_last_read_addr:
+67d3 6fe14f93 fetch 2 ,mem_otp_read_offset_addr 
+67d4 1fe0fe05 pincrease 5 
+67d5 67e14f93 store 2 ,mem_otp_read_offset_addr 
+67d6 20600000 rtn 
+
+shutter_dy_shutter_read_ios_android_addr:
+67d7 6fe14f95 fetch 2 ,mem_otp_read_ios_android_addr 
+67d8 1fe0fe05 pincrease 5 
+67d9 67e14f95 store 2 ,mem_otp_read_ios_android_addr 
+67da 6fe14f95 fetch 2 ,mem_otp_read_ios_android_addr 
+67db 1fe20400 copy pdata ,temp 
+67dc 6fe14f80 fetch 2 ,mem_shutter_efuse_start_offset 
+67dd 98467e00 isub temp ,pdata 
+67de d8400005 arg shutter_para_total_num ,temp 
+67df 98467c00 isub temp ,null 
+67e0 24216806 nbranch shutter_dy_shutter_not_find_ios_or_android ,positive 
+67e1 20600000 rtn 
+
+shutter_dy_update_read_check_addr:
+67e2 6fe0cf9b fetch 1 ,mem_shutter_first_read_flag 
+67e3 c000e7cb beq 0x01 ,shutter_dy_shutter_get_first_read_addr 
+67e4 c00067cf beq 0x00 ,shutter_dy_shutter_next_read_addr 
+67e5 20600000 rtn 
+
+shutter_dy_campare_otp_data:
+67e6 da400000 arg 0x0 ,regb 
+67e7 1a420400 copy regb ,temp 
+67e8 6fe14f8c fetch 2 ,mem_otp_shutter_move_data_x 
+67e9 a843fe00 icompare 0xffff ,temp 
+67ea 2440e7f6 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+67eb da400000 arg 0x0 ,regb 
+67ec 1a420400 copy regb ,temp 
+67ed 6fe14f8e fetch 2 ,mem_otp_shutter_move_data_y 
+67ee a843fe00 icompare 0xffff ,temp 
+67ef 2440e7f6 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+67f0 da400000 arg 0x0 ,regb 
+67f1 1a420400 copy regb ,temp 
+67f2 6fe0cf90 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+67f3 a841fe00 icompare 0xff ,temp 
+67f4 2440e7f6 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+67f5 20600000 rtn 
+
+shutter_dy_set_shutter_valid_data_flag:
+67f6 6fe0cf99 fetch 1 ,mem_shutter_temp_count 
+67f7 1fe0fe01 pincrease 1 
+67f8 67e0cf99 store 1 ,mem_shutter_temp_count 
+67f9 20600000 rtn 
+
+shutter_dy_shutter_judge_ios_or_android:
+67fa 704f9901 jam 1 ,mem_shutter_temp_count 
+67fb 204067d7 call shutter_dy_shutter_read_ios_android_addr 
+67fc 6fe14f95 fetch 2 ,mem_otp_read_ios_android_addr 
+67fd 2040684f call shutter_dy_shutter_read_move_config_from_otp_addr 
+67fe 20406730 call shutter_dy_check_iphone 
+67ff 1fe20400 copy pdata ,temp 
+6800 6fe0cf90 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+6801 a841fe00 icompare 0xff ,temp 
+6802 2040e821 call shutter_dy_clear_temp_count ,true 
+6803 6fe0cf99 fetch 1 ,mem_shutter_temp_count 
+6804 c1000000 rtneq 0 
+6805 202067fa branch shutter_dy_shutter_judge_ios_or_android 
+
+shutter_dy_shutter_not_find_ios_or_android:
+6806 44d6c015 bpatch patch15_5 ,mem_patch15 
+6807 20406821 call shutter_dy_clear_temp_count 
+6808 20406730 call shutter_dy_check_iphone 
+6809 203a680b branch shutter_dy_shutter_android_save_init_loaction ,blank 
+680a 20206812 branch shutter_dy_shutter_ios_save_init_loaction 
+
+shutter_dy_shutter_android_save_init_loaction:
+680b 6fe14f84 fetch 2 ,mem_android_initial_move_x 
+680c 67e14ebe store 2 ,mem_shutter_move_data_x 
+680d 68494f86 fetcht 2 ,mem_android_initial_move_y 
+680e 58000fff setarg 0xfff 
+680f 98467e00 isub temp ,pdata 
+6810 67e14ec0 store 2 ,mem_shutter_move_data_y 
+6811 202067be branch shutter_dy_store_move_config_info 
+
+shutter_dy_shutter_ios_save_init_loaction:
+6812 d8400062 arg iphone_once_max_move_value ,temp 
+6813 6fe14f88 fetch 2 ,mem_iphone_initial_move_x 
+6814 da204ebe arg mem_shutter_move_data_x ,rega 
+6815 da404ebc arg mem_shutter_iphone_beyond_x_count ,regb 
+6816 2040671e call shutter_dy_iphone_move_initial_set 
+6817 d8400062 arg iphone_once_max_move_value ,temp 
+6818 6fe14f8a fetch 2 ,mem_iphone_initial_move_y 
+6819 da204ec0 arg mem_shutter_move_data_y ,rega 
+681a da404ebd arg mem_shutter_iphone_beyond_y_count ,regb 
+681b 2040671e call shutter_dy_iphone_move_initial_set 
+681c 58000fff setarg 0xfff 
+681d 68494ec0 fetcht 2 ,mem_shutter_move_data_y 
+681e 98467e00 isub temp ,pdata 
+681f 67e14ec0 store 2 ,mem_shutter_move_data_y 
+6820 202067be branch shutter_dy_store_move_config_info 
+
+shutter_dy_clear_temp_count:
+6821 704f9900 jam 0 ,mem_shutter_temp_count 
+6822 20600000 rtn 
+
+shutter_dy_campare_effective_addr_read_otp:
+6823 44d74015 bpatch patch15_6 ,mem_patch15 
+6824 704f9b01 jam 1 ,mem_shutter_first_read_flag 
+6825 204067c0 call shutter_dy_shutter_uart_config_loop 
+6826 6fe14f82 fetch 2 ,mem_shutter_efuse_end_offset 
+6827 1fe20400 copy pdata ,temp 
+6828 6fe14f93 fetch 2 ,mem_otp_read_offset_addr 
+6829 98467e00 isub temp ,pdata 
+682a d8400000 arg 0x0 ,temp 
+682b 98467c00 isub temp ,null 
+682c 24610000 nrtn positive 
+682d 6fe14f93 fetch 2 ,mem_otp_read_offset_addr 
+682e 1fe20400 copy pdata ,temp 
+682f 6fe14f80 fetch 2 ,mem_shutter_efuse_start_offset 
+6830 1fe0fffb increase -5 ,pdata 
+6831 98467e00 isub temp ,pdata 
+6832 6fe14f93 fetch 2 ,mem_otp_read_offset_addr 
+6833 67e14f95 store 2 ,mem_otp_read_ios_android_addr 
+6834 204067fa call shutter_dy_shutter_judge_ios_or_android 
+6835 6fe14f95 fetch 2 ,mem_otp_read_ios_android_addr 
+6836 2442e84f ncall shutter_dy_shutter_read_move_config_from_otp_addr ,zero 
+6837 704f9900 jam 0 ,mem_shutter_temp_count 
+6838 204067e6 call shutter_dy_campare_otp_data 
+6839 6fe0cf99 fetch 1 ,mem_shutter_temp_count 
+683a c1000000 rtneq 0 
+683b 2020678a branch shutter_dy_read_otp_convert_data 
+
+shutter_dy_campare_effective_addr_write_otp:
+683c 44d7c015 bpatch patch15_7 ,mem_patch15 
+683d 704f9b01 jam 1 ,mem_shutter_first_read_flag 
+683e 204067c0 call shutter_dy_shutter_uart_config_loop 
+683f 68494f82 fetcht 2 ,mem_shutter_efuse_end_offset 
+6840 6fe14f93 fetch 2 ,mem_otp_read_offset_addr 
+6841 98467e00 isub temp ,pdata 
+6842 d8400000 arg 0x0 ,temp 
+6843 98467c00 isub temp ,null 
+6844 24610000 nrtn positive 
+6845 68494f93 fetcht 2 ,mem_otp_read_offset_addr 
+6846 6fe14f80 fetch 2 ,mem_shutter_efuse_start_offset 
+6847 98467e00 isub temp ,pdata 
+6848 d8400000 arg 0x0 ,temp 
+6849 98467c00 isub temp ,null 
+684a 24610000 nrtn positive 
+684b 6fe14f93 fetch 2 ,mem_otp_read_offset_addr 
+684c 67e14f91 store 2 ,mem_otp_write_offset_addr 
+684d 20406786 call shutter_dy_write_otp_convert_data 
+684e 20206854 branch shutter_dy_shutter_write_move_config_to_otp_addr 
+
+shutter_dy_shutter_read_move_config_from_otp_addr:
+684f 44d84016 bpatch patch16_0 ,mem_patch16 
+6850 1fe22400 copy pdata ,regb 
+6851 df200005 arg shutter_para_total_num ,loopcnt 
+6852 da204f8c arg mem_otp_move_config ,rega 
+6853 20206b74 branch otp_read_data 
+
+shutter_dy_shutter_write_move_config_to_otp_addr:
+6854 df200005 arg shutter_para_total_num ,loopcnt 
+6855 da204f8c arg mem_otp_move_config ,rega 
+6856 6a414f91 fetchr regb ,2 ,mem_otp_write_offset_addr 
+6857 20206b45 branch otp_write 
+
+shutter_dy_shutter_1s_timer:
+6858 da6048ae arg mem_shutter_1s_timer ,regc 
+6859 da4067be arg shutter_dy_store_move_config_info ,regb 
+685a 202042e0 branch timer_single_step 
+
+p_crc16_ccitt_false:
+685b 6fe10912 fetch 2 ,mem_adv_crc_false_initvalue 
+
+p_crc16_ccitt_false_loop:
+685c e8408013 ifetcht 1 ,regc 
+685d 1a60a601 increase 1 ,regc 
+685e 184d0400 lshift8 temp ,temp 
+685f 9842fe00 ixor temp ,pdata 
+
+p_crc16_for_byte:
+6860 1f222400 copy loopcnt ,regb 
+6861 df200008 arg 8 ,loopcnt 
+
+p_crc16_for_byte_loop:
+6862 2feffe0f isolate1 15 ,pdata 
+6863 1fe3fe00 lshift pdata ,pdata 
+6864 2420e867 nbranch p_crc16_for_byte_continue ,true 
+6865 68490914 fetcht 2 ,mem_crc16_polynomial 
+6866 9842fe00 ixor temp ,pdata 
+
+p_crc16_for_byte_continue:
+6867 c2006862 loop p_crc16_for_byte_loop 
+6868 1a427200 copy regb ,loopcnt 
+6869 c200685c loop p_crc16_ccitt_false_loop 
+686a 67e10912 store 2 ,mem_adv_crc_false_initvalue 
+686b 20600000 rtn 
+
+rf_debug_rx_gpio_low:
+686c 6fe0c43f fetch 1 ,mem_rf_debug_rx_gpio 
+
+rf_debug_gpio_low:
+686d d840003e arg gpcfg_output_low ,temp 
+686e 20206f20 branch gpio_config_function 
+
+rf_debug_rx_on_line:
+
+rf_debug_rx_gpio_high:
+686f 6fe0c43f fetch 1 ,mem_rf_debug_rx_gpio 
+
+rf_debug_gpio_high:
+6870 d840003f arg gpcfg_output_high ,temp 
+6871 20206f20 branch gpio_config_function 
+
+rf_debug_rx_gpio_h_l_h:
+6872 2040686f call rf_debug_rx_gpio_high 
+
+rf_debug_rx_gpio_l_h:
+6873 2040686c call rf_debug_rx_gpio_low 
+6874 2020686f branch rf_debug_rx_gpio_high 
+
+rf_debug_rx_gpio_l_h_l:
+
+rf_debug_shutdown_radio_line:
+6875 20406873 call rf_debug_rx_gpio_l_h 
+
+rf_debug_rx_crc_line:
+6876 2020686c branch rf_debug_rx_gpio_low 
+
+rf_debug_rx_sync_line:
+6877 20206873 branch rf_debug_rx_gpio_l_h 
+
+rf_debug_rx_crc_fail_line:
+6878 20406873 call rf_debug_rx_gpio_l_h 
+6879 20206875 branch rf_debug_rx_gpio_l_h_l 
+
+rf_debug_rx_match_line:
+
+rf_debug_rx_crc_error_line:
+
+rf_debug_rx_sync_timeout_line:
+687a 2020686c branch rf_debug_rx_gpio_low 
+
+rf_debug_tx_off_line:
+
+rf_debug_tx_gpio_low:
+687b 6fe0c440 fetch 1 ,mem_rf_debug_tx_gpio 
+687c 2020686d branch rf_debug_gpio_low 
+
+rf_debug_tx_on_line:
+
+rf_debug_tx_gpio_high:
+687d 6fe0c440 fetch 1 ,mem_rf_debug_tx_gpio 
+687e 20206870 branch rf_debug_gpio_high 
+
+rf_debug_tx_gpio_l_h_l:
+687f 2040687b call rf_debug_tx_gpio_low 
+6880 2040687d call rf_debug_tx_gpio_high 
+6881 2020687b branch rf_debug_tx_gpio_low 
+
+hci_init:
+6882 20800000 clear_stack 
+6883 204070d7 call wdt_set_disable 
+6884 2040688d call hci_init_clksel_xtal 
+6885 2040688f call hci_init_uart_default_config 
+6886 204068a3 call hci_init_uart_config 
+6887 204068bf call hci_init_pwm_default_config 
+6888 204068c3 call hci_init_pwm 
+6889 70070f01 jam 1 ,mem_hci_command_complete_num_hci_command_packet 
+688a 70070c04 jam hci_h4_type_event ,mem_hci_event_head_type 
+
+hci_process_loop:
+688b 204068ce call hci_process_check_uart_rx 
+688c 2020688b branch hci_process_loop 
+
+hci_init_clksel_xtal:
+688d 70804204 jam clksel_xtal ,core_clksel 
+688e 20600000 rtn 
+
+hci_init_uart_default_config:
+688f 20406893 call hci_init_uart_default_config_tx 
+6890 20406897 call hci_init_uart_default_config_rx 
+6891 2040689b call hci_init_uart_default_config_rts 
+6892 2020689f branch hci_init_uart_default_config_cts 
+
+hci_init_uart_default_config_tx:
+6893 6fe0c4f1 fetch 1 ,mem_hci_uart_tx_gpio 
+6894 247a0000 nrtn blank 
+6895 7044f107 jam hci_uart_tx_gpio_num ,mem_hci_uart_tx_gpio 
+6896 20600000 rtn 
+
+hci_init_uart_default_config_rx:
+6897 6fe0c4f2 fetch 1 ,mem_hci_uart_rx_gpio 
+6898 247a0000 nrtn blank 
+6899 7044f206 jam hci_uart_rx_gpio_num ,mem_hci_uart_rx_gpio 
+689a 20600000 rtn 
+
+hci_init_uart_default_config_rts:
+689b 6fe0c4f3 fetch 1 ,mem_hci_uart_rts_gpio 
+689c 247a0000 nrtn blank 
+689d 7044f309 jam hci_uart_rts_gpio_num ,mem_hci_uart_rts_gpio 
+689e 20600000 rtn 
+
+hci_init_uart_default_config_cts:
+689f 6fe0c4f4 fetch 1 ,mem_hci_uart_cts_gpio 
+68a0 247a0000 nrtn blank 
+68a1 7044f40a jam hci_uart_cts_gpio_num ,mem_hci_uart_cts_gpio 
+68a2 20600000 rtn 
+
+hci_init_uart_config:
+68a3 58000c00 setarg mem_h5rx_buf 
+68a4 67e10670 store 2 ,mem_pdatatemp 
+68a5 58000eff setarg mem_h5rx_buf_end 
+68a6 e7e10005 istore 2 ,contw 
+68a7 58000f00 setarg mem_h5tx_buf 
+68a8 e7e10005 istore 2 ,contw 
+68a9 58000fff setarg mem_h5tx_buf_end 
+68aa e7e10005 istore 2 ,contw 
+68ab 6fe40670 fetch 8 ,mem_pdatatemp 
+68ac 20406d68 call uarta_init_dma_mem 
+68ad 20406d82 call uart_clock_select_main_freq_crystal 
+68ae d841c200 arg 115200 ,temp 
+68af 20406d75 call uarta_calc_baud_rate_config 
+68b0 6fe0c4f1 fetch 1 ,mem_hci_uart_tx_gpio 
+68b1 d8400008 arg gpcfg_uart_txd ,temp 
+68b2 20406f21 call gpio_config_function_int 
+68b3 6fe0c4f2 fetch 1 ,mem_hci_uart_rx_gpio 
+68b4 d8400049 arg gpcfg_uart_rxd | gpcfg_pullup ,temp 
+68b5 20406f21 call gpio_config_function_int 
+68b6 6fe0c4f3 fetch 1 ,mem_hci_uart_rts_gpio 
+68b7 d840000a arg gpcfg_uart_rts ,temp 
+68b8 20406f21 call gpio_config_function_int 
+68b9 6fe0c4f4 fetch 1 ,mem_hci_uart_cts_gpio 
+68ba d840000b arg gpcfg_uart_cts ,temp 
+68bb 20406f21 call gpio_config_function_int 
+68bc d8400081 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
+68bd 60588060 storet 1 ,core_uart_ctrl 
+68be 20207d76 branch clean_xmem 
+
+hci_init_pwm_default_config:
+68bf 6fe0c4f5 fetch 1 ,mem_hci_pwm_12mhz_gpio 
+68c0 247a0000 nrtn blank 
+68c1 7044f50c jam hci_pmw_12mhz_gpio_num ,mem_hci_pwm_12mhz_gpio 
+68c2 20600000 rtn 
+
+hci_init_pwm:
+68c3 6fe0c4f5 fetch 1 ,mem_hci_pwm_12mhz_gpio 
+68c4 d8400010 arg gpcfg_pwm_out0 ,temp 
+68c5 20406f21 call gpio_config_function_int 
+68c6 da200040 arg 0x40 ,rega 
+68c7 20407055 call pwm_init 
+68c8 da200000 arg 0 ,rega 
+68c9 da400000 arg 0 ,regb 
+68ca 58000000 setarg 0 
+68cb 2040707a call pwm_duty_cycle_set 
+68cc d8e00000 arg 0 ,queue 
+68cd 202070c0 branch pwm_set_select 
+
+hci_process_check_uart_rx:
+68ce 6ff10112 fetch 2 ,core_uart_rxitems 
+68cf 1fe0a3fc add pdata ,-4 ,rega 
+68d0 24610000 nrtn positive 
+68d1 20406d96 call uarta_prepare_rx 
+68d2 efe08003 ifetch 1 ,contru 
+68d3 c000e8d6 beq hci_h4_type_cmd ,hci_parse_packet_cmd 
+68d4 20407c95 call delay_10ms 
+68d5 20206d9e branch uarta_clear_current_rx 
+
+hci_parse_packet_cmd:
+68d6 efe10003 ifetch 2 ,contru 
+68d7 67e10710 store 2 ,mem_hci_opcode 
+68d8 d84003ff arg 0x3ff ,temp 
+68d9 98410400 iand temp ,temp 
+68da 60490709 storet 2 ,mem_hci_opcode_ocf 
+68db 1feb7e00 rshift2 pdata ,pdata 
+68dc 1fecfe00 rshift8 pdata ,pdata 
+68dd 67e0870b store 1 ,mem_hci_opcode_ogf 
+68de efe08003 ifetch 1 ,contru 
+68df 1fe0ffff pincrease -1 
+68e0 9a267c00 isub rega ,null 
+68e1 20610000 rtn positive 
+68e2 204068e4 call hci_parse_complete_packet 
+68e3 2020693f branch hci_drop_current_packet 
+
+hci_parse_complete_packet:
+68e4 6fe0870b fetch 1 ,mem_hci_opcode_ogf 
+68e5 c01fe8e7 beq hci_ogf_vendor_specific_debug ,hci_parse_packet_cmd_ogf_vendorspecific_debug 
+68e6 2020692b branch hci_send_event_command_complete_error_command_nuknown 
+
+hci_parse_packet_cmd_ogf_vendorspecific_debug:
+68e7 44da4016 bpatch patch16_4 ,mem_patch16 
+68e8 6fe08709 fetch 1 ,mem_hci_opcode_ocf 
+68e9 c000692a beq hci_vendor_cmd_reset ,hci_normal_reply 
+68ea c000e8f2 beq hci_vendor_cmd_chipid ,phci_grp_vendor_chipid 
+68eb c00168f7 beq hci_vendor_cmd_baud ,phci_grp_vendor_baud 
+68ec c001e905 beq hci_vendor_cmd_patch ,phci_grp_vendor_patch 
+68ed c002690f beq hci_vendor_cmd_patch_done ,phci_grp_vendor_done 
+68ee c002e92a beq hci_vendor_cmd_echo ,hci_normal_reply 
+68ef c0086920 beq hci_vendor_cmd_mem ,phci_grp_vendor_mem 
+68f0 c00a6926 beq hci_vendor_cmd_set_flow_control ,phci_grp_vendor_flow_control 
+68f1 2020692a branch hci_normal_reply 
+
+phci_grp_vendor_chipid:
+68f2 70071200 jam command_succeeded ,mem_hci_command_complete_return_parameter 
+68f3 6ff10000 fetch 2 ,core_chipid 
+68f4 67e10713 store 2 ,mem_hci_command_complete_return_parameter_chip_id 
+68f5 df200003 arg 3 ,loopcnt 
+68f6 20206932 branch hci_send_event_command_complete 
+
+phci_grp_vendor_baud:
+68f7 efe10003 ifetch 2 ,contu 
+68f8 67f10052 store 2 ,core_uart_baud 
+68f9 20600000 rtn 
+
+phci_grp_vendor_patch_common:
+68fa efe08003 ifetch 1 ,contu 
+68fb 1fe20400 copy pdata ,temp 
+68fc 67f08024 store 1 ,core_ucode_low 
+68fd efe08003 ifetch 1 ,contu 
+68fe 98408400 iadd temp ,temp 
+68ff 79207e07 set1 7 ,pdata 
+6900 67f08023 store 1 ,core_ucode_ctrl 
+6901 efe08003 ifetch 1 ,contu 
+6902 98408400 iadd temp ,temp 
+6903 1fe27200 copy pdata ,loopcnt 
+6904 20600000 rtn 
+
+phci_grp_vendor_patch:
+6905 204068fa call phci_grp_vendor_patch_common 
+
+phci_grp_vendor_patch_loop:
+6906 efe08003 ifetch 1 ,contu 
+6907 67f08025 store 1 ,core_ucode_data 
+6908 98408400 iadd temp ,temp 
+6909 c2006906 loop phci_grp_vendor_patch_loop 
+
+phci_grp_vendor_patch_check_sum:
+690a 184104ff and temp ,0xff ,temp 
+690b efe08003 ifetch 1 ,contu 
+690c 98467c00 isub temp ,null 
+690d 2422e91e nbranch phci_grp_vendor_patch_bad ,zero 
+690e 2020692a branch hci_normal_reply 
+
+phci_grp_vendor_done:
+690f df200020 arg 0x20 ,loopcnt 
+6910 d8a04000 arg mem_patch00 ,contw 
+6911 d8400000 arg 0 ,temp 
+
+phci_grp_vendor_done_loop:
+6912 efe08003 ifetch 1 ,contu 
+6913 e7e08005 istore 1 ,contw 
+6914 98408400 iadd temp ,temp 
+6915 c2006912 loop phci_grp_vendor_done_loop 
+6916 184104ff and temp ,0xff ,temp 
+6917 efe08003 ifetch 1 ,contu 
+6918 98467c00 isub temp ,null 
+6919 2422e91e nbranch phci_grp_vendor_patch_bad ,zero 
+691a 70802300 jam 0 ,core_ucode_ctrl 
+691b 2040692a call hci_normal_reply 
+691c 20406dae call wait_uarttx 
+691d 20202001 branch soft_reset 
+
+phci_grp_vendor_patch_bad:
+691e 70802300 jam 0 ,core_ucode_ctrl 
+691f 2020692b branch hci_send_event_command_complete_error_command_nuknown 
+
+phci_grp_vendor_mem:
+6920 efe08003 ifetch 1 ,contu 
+6921 1fe27200 copy pdata ,loopcnt 
+6922 efe10003 ifetch 2 ,contu 
+6923 1fe20a00 copy pdata ,contw 
+6924 20406ddd call uart_copy_rx_bytes 
+6925 2020692a branch hci_normal_reply 
+
+phci_grp_vendor_flow_control:
+6926 6ff08060 fetch 1 ,core_uart_ctrl 
+6927 79207e04 set1 bit_uart_control_flow_control ,pdata 
+6928 67f08060 store 1 ,core_uart_ctrl 
+6929 2020692a branch hci_normal_reply 
+
+hci_normal_reply:
+692a 2020692f branch hci_send_event_command_complete_without_payload 
+
+hci_send_event_command_complete_error_command_nuknown:
+692b 70071201 jam command_unknown ,mem_hci_command_complete_return_parameter 
+692c 20206930 branch hci_send_event_command_complete_without_payload + 1 
+
+hci_send_event_command_complete_error_command_disallowed:
+692d 7007120c jam command_disallowed ,mem_hci_command_complete_return_parameter 
+692e 20206930 branch hci_send_event_command_complete_without_payload + 1 
+
+hci_send_event_command_complete_without_payload:
+692f 70071200 jam command_succeeded ,mem_hci_command_complete_return_parameter 
+6930 df200001 arg 1 ,loopcnt 
+6931 20206932 branch hci_send_event_command_complete 
+
+hci_send_event_command_complete:
+6932 70070d0e jam hci_event_command_complete ,mem_hci_event_head_event_code 
+6933 1f20fe03 add loopcnt ,3 ,pdata 
+6934 67e0870e store 1 ,mem_hci_event_para_total_length 
+6935 2040693b call hci_prepare_send_event 
+6936 6fe1870f fetch 3 ,mem_hci_command_complete_num_hci_command_packet 
+6937 e7e18003 istore 3 ,contwu 
+6938 d8c00712 arg mem_hci_command_complete_return_parameter ,contr 
+6939 20406dc4 call uart_copy_tx_bytes 
+693a 20206da4 branch uarta_send_register_pop 
+
+hci_prepare_send_event:
+693b 20406da2 call uarta_prepare_tx_register_push 
+693c 6fe1870c fetch 3 ,mem_hci_event_head_type 
+693d e7e18003 istore 3 ,contwu 
+693e 20600000 rtn 
+
+hci_drop_current_packet:
+693f 20406d96 call uarta_prepare_rx 
+6940 18608603 increase 3 ,contru 
+6941 efe08003 ifetch 1 ,contru 
+6942 98608600 iadd contru ,contru 
+6943 20206d9c branch uarta_rxdone 
+
+cmd_exit:
+6944 70411400 jam 0 ,mem_hci_cmd 
+6945 20600000 rtn 
+
+l2cap_init:
+6946 2035e94b branch l2cap_init_wake ,wake 
+6947 58004450 setarg mem_l2cap_xmem_end 
+6948 d8a04441 arg mem_l2cap_xmem_start ,contw 
+6949 98a67200 isub contw ,loopcnt 
+694a 20407ca1 call clear_mem 
+
+l2cap_init_wake:
+694b 20600000 rtn 
+
+check_l2cap_map:
+694c d8e00000 arg 0 ,queue 
+694d da400000 arg 0 ,regb 
+
+check_l2cap_map_loop:
+694e 18e67c07 sub queue ,7 ,null 
+694f 24610000 nrtn positive 
+6950 aa2fffff qisolate1 rega 
+6951 2020e953 branch check_l2cap_map_used ,true 
+6952 20206957 branch check_l2cap_map_used2 
+
+check_l2cap_map_used:
+6953 18427e00 copy temp ,pdata 
+6954 203a6957 branch check_l2cap_map_used2 ,blank 
+6955 f9202400 qset1 regb 
+6956 184085ff increase -1 ,temp 
+
+check_l2cap_map_used2:
+6957 18e08e01 increase 1 ,queue 
+6958 2020694e branch check_l2cap_map_loop 
+
+ble_l2cap_malloc:
+6959 6b01433f fetchr regd ,2 ,mem_ble_l2cap_tx_buff0_ptr 
+695a 6d614341 fetchr rege ,2 ,mem_ble_l2cap_tx_buff_size_ptr 
+695b 20407dbc call disable_user 
+695c 2020695d branch host_l2cap_malloc 
+
+host_l2cap_malloc:
+695d 44db4016 bpatch patch16_6 ,mem_patch16 
+695e 204069a9 call l2cap_malloc_is_fifo_full 
+695f 243a235a nbranch assert ,blank 
+6960 204069b9 call l2cap_malloc_get_full_map 
+6961 df200008 arg 8 ,loopcnt 
+
+host_l2cap_malloc_loop:
+6962 6848c441 fetcht 1 ,mem_used_map 
+6963 1f260e08 sub loopcnt ,8 ,queue 
+6964 a84fffff qisolate1 temp 
+6965 2020e96a branch host_l2cap_malloc_next_buffer ,true 
+6966 20406971 call host_l2cap_malloc_check_buffer_enough 
+6967 2421696a nbranch host_l2cap_malloc_next_buffer ,positive 
+6968 20406987 call host_l2cap_malloc_into_fifo 
+6969 2020696e branch host_l2cap_malloc_succ 
+
+host_l2cap_malloc_next_buffer:
+696a 1d627e00 copy rege ,pdata 
+696b 9b00b000 iadd regd ,regd 
+696c c2006962 loop host_l2cap_malloc_loop 
+696d 2020235a branch assert 
+
+host_l2cap_malloc_succ:
+696e 1b027e00 copy regd ,pdata 
+696f 1b020a00 copy regd ,contw 
+6970 20600000 rtn 
+
+host_l2cap_malloc_check_buffer_enough:
+6971 44dbc016 bpatch patch16_7 ,mem_patch16 
+6972 1f260e08 sub loopcnt ,8 ,queue 
+6973 d8400000 arg 0 ,temp 
+6974 d9600000 arg 0 ,timeup 
+
+host_l2cap_malloc_check_buffer_enough_loop:
+6975 18e27e00 copy queue ,pdata 
+6976 c0046982 beq 8 ,host_l2cap_malloc_check_buffer_enough_end 
+6977 6fe0c441 fetch 1 ,mem_used_map 
+6978 afefffff qisolate1 pdata 
+6979 2020e982 branch host_l2cap_malloc_check_buffer_enough_end ,true 
+697a f9201600 qset1 timeup 
+697b 1d627e00 copy rege ,pdata 
+697c 98408400 iadd temp ,temp 
+697d 18e08e01 increase 1 ,queue 
+697e 1a227e00 copy rega ,pdata 
+697f 98467c00 isub temp ,null 
+6980 2022e982 branch host_l2cap_malloc_check_buffer_enough_end ,zero 
+6981 20216975 branch host_l2cap_malloc_check_buffer_enough_loop ,positive 
+
+host_l2cap_malloc_check_buffer_enough_end:
+6982 18427e00 copy temp ,pdata 
+6983 9a267c00 isub rega ,null 
+6984 24628000 nrtn zero 
+6985 f9201600 qset1 timeup 
+6986 20600000 rtn 
+
+host_l2cap_malloc_into_fifo:
+6987 44dc4017 bpatch patch17_0 ,mem_patch17 
+6988 204069a9 call l2cap_malloc_is_fifo_full 
+6989 243a235a nbranch assert ,blank 
+698a 204069af call l2cap_malloc_is_fifo_empty 
+698b 203a6990 branch host_l2cap_malloc_into_fifo_no_push ,blank 
+698c 6fe4c445 fetch 9 ,mem_tx_fifo1 
+698d 67e4c442 store 9 ,mem_tx_fifo0 
+698e 58000000 setarg 0 
+698f e7e18005 istore 3 ,contw 
+
+host_l2cap_malloc_into_fifo_no_push:
+6990 6160c44b storer timeup ,1 ,mem_tx_fifo3_map 
+6991 6301444c storer regd ,2 ,mem_tx_fifo3_ptr 
+6992 20600000 rtn 
+
+l2cap_malloc_fifo_out:
+6993 44dcc017 bpatch patch17_1 ,mem_patch17 
+6994 204069b2 call l2cap_malloc_fifo_get_first_ptr 
+6995 18c08c01 increase 1 ,contr 
+6996 efe10006 ifetch 2 ,contr 
+6997 20600000 rtn 
+
+l2cap_malloc_free:
+6998 44dd4017 bpatch patch17_2 ,mem_patch17 
+6999 204069b2 call l2cap_malloc_fifo_get_first_ptr 
+699a 18c20a00 copy contr ,contw 
+699b 18c20400 copy contr ,temp 
+699c 58000000 setarg 0 
+699d e7e18005 istore 3 ,contw 
+699e 20600000 rtn 
+
+l2cap_malloc_discard:
+699f 44ddc017 bpatch patch17_3 ,mem_patch17 
+69a0 204069af call l2cap_malloc_is_fifo_empty 
+69a1 203a235a branch assert ,blank 
+69a2 6fe1c448 fetch 3 ,mem_tx_fifo2 
+69a3 67e1c44b store 3 ,mem_tx_fifo3 
+69a4 6fe1c445 fetch 3 ,mem_tx_fifo1 
+69a5 67e1c448 store 3 ,mem_tx_fifo2 
+69a6 6fe1c442 fetch 3 ,mem_tx_fifo0 
+69a7 67e1c445 store 3 ,mem_tx_fifo1 
+69a8 20600000 rtn 
+
+l2cap_malloc_is_fifo_full:
+69a9 44de4017 bpatch patch17_4 ,mem_patch17 
+69aa 6fe1c442 fetch 3 ,mem_tx_fifo0 
+69ab 20600000 rtn 
+
+l2cap_malloc_is_fifo_nearly_full:
+69ac 44dec017 bpatch patch17_5 ,mem_patch17 
+69ad 6fe1c445 fetch 3 ,mem_tx_fifo1 
+69ae 20600000 rtn 
+
+l2cap_malloc_is_fifo_empty:
+69af 44df4017 bpatch patch17_6 ,mem_patch17 
+69b0 6fe1c44b fetch 3 ,mem_tx_fifo3 
+69b1 20600000 rtn 
+
+l2cap_malloc_fifo_get_first_ptr:
+69b2 204069af call l2cap_malloc_is_fifo_empty 
+69b3 203a69b7 branch l2cap_malloc_fifo_get_first_ptr_empty ,blank 
+69b4 d8c04442 arg mem_tx_fifo0 ,contr 
+
+l2cap_malloc_free_loop:
+69b5 efe18006 ifetch 3 ,contr 
+69b6 203a69b5 branch l2cap_malloc_free_loop ,blank 
+
+l2cap_malloc_fifo_get_first_ptr_empty:
+69b7 18c08dfd increase -3 ,contr 
+69b8 20600000 rtn 
+
+l2cap_malloc_get_full_map:
+69b9 44dfc017 bpatch patch17_7 ,mem_patch17 
+69ba df200004 arg 4 ,loopcnt 
+69bb d8c04442 arg mem_tx_fifo0_map ,contr 
+69bc d8400000 arg 0 ,temp 
+
+l2cap_malloc_get_full_map_loop:
+69bd efe18006 ifetch 3 ,contr 
+69be 1fe17eff and pdata ,0xff ,pdata 
+69bf 98418400 ior temp ,temp 
+69c0 c20069bd loop l2cap_malloc_get_full_map_loop 
+69c1 6048c441 storet 1 ,mem_used_map 
+69c2 20600000 rtn 
+
+l2cap_lpm_get_wake_lock:
+69c3 d8e0000c arg wake_lock_l2cap_tx ,queue 
+69c4 202024e7 branch lpm_get_wake_lock 
+
+l2cap_lpm_put_wake_lock:
+69c5 d8e0000c arg wake_lock_l2cap_tx ,queue 
+69c6 202024eb branch lpm_put_wake_lock 
+
+twspi_reset:
+69c7 44e0c018 bpatch patch18_1 ,mem_patch18 
+69c8 18467cff sub temp ,ui_button_gpio_disable ,null 
+69c9 20628000 rtn zero 
+69ca 18427e00 copy temp ,pdata 
+69cb 1fe17eff and_into 0xff ,pdata 
+69cc 1fe67c0f sub pdata ,gpio_number + -1 ,null 
+69cd 242169d9 nbranch twspi_reset_ext ,positive 
+69ce d8a08070 arg core_gpio_conf ,contw 
+
+twspi_reset_next:
+69cf 98a08a00 iadd contw ,contw 
+69d0 18a22200 copy contw ,rega 
+69d1 d840003e arg gpcfg_output_low ,temp 
+69d2 e0408005 istoret 1 ,contw 
+69d3 204069dc call twspi_disable 
+69d4 2000001e nop 30 
+69d5 1a220a00 copy rega ,contw 
+69d6 d840003f arg gpcfg_output_high ,temp 
+69d7 e0408005 istoret 1 ,contw 
+69d8 202069e0 branch twspi_enable 
+
+twspi_reset_ext:
+69d9 d8a080d4 arg core_gpio_conf_hi ,contw 
+69da 1fe0fff0 increase -16 ,pdata 
+69db 202069cf branch twspi_reset_next 
+
+twspi_disable:
+69dc 6ff08081 fetch 1 ,core_spid_delay 
+69dd 1fe17e7f and_into 0x7f ,pdata 
+69de 67f08081 store 1 ,core_spid_delay 
+69df 20600000 rtn 
+
+twspi_enable:
+69e0 6ff08081 fetch 1 ,core_spid_delay 
+69e1 1fe1fe80 or_into 0x80 ,pdata 
+69e2 67f08081 store 1 ,core_spid_delay 
+69e3 20600000 rtn 
+
+twspi_write:
+69e4 20206bd0 branch spid_write_reg 
+
+twspi_read:
+69e5 20206bd7 branch spid_read_reg 
+
+aes_disable:
+69e6 6ff0806f fetch 1 ,core_bist_ctrl 
+69e7 793ffe07 set0 aes_en ,pdata 
+69e8 67f0806f store 1 ,core_bist_ctrl 
+69e9 20600000 rtn 
+
+read_function_aes:
+69ea 243469ee nbranch read_function ,user 
+69eb 6ff0806f fetch 1 ,core_bist_ctrl 
+69ec 79207e07 set1 aes_en ,pdata 
+69ed 67f0806f store 1 ,core_bist_ctrl 
+
+read_function:
+69ee 18427c00 copy temp ,null 
+69ef 2022e9f1 branch read_fuction_zero ,zero 
+69f0 1a627a00 copy regc ,pc 
+
+read_fuction_zero:
+69f1 2fcc0000 isolate0 0 ,null 
+69f2 20206b00 branch set_ucode_status 
+
+get_block_header:
+69f3 18000404 force 4 ,temp 
+
+get_block_header0:
+69f4 da2001e7 arg mem_ucode_buf ,rega 
+69f5 204069e6 call aes_disable 
+69f6 204069ee call read_function 
+69f7 da2055aa arg 0x55aa ,rega 
+69f8 6fe101e7 fetch 2 ,mem_ucode_buf 
+69f9 e8410006 ifetcht 2 ,contr 
+69fa 9a267c00 isub rega ,null 
+69fb 20600000 rtn 
+
+read_first_block:
+69fc 20546a0e call load_aes_reinit ,user 
+69fd d8400002 arg 2 ,temp 
+69fe da2043c8 arg mem_ucode_ptr ,rega 
+69ff 204069ee call read_function 
+6a00 6fe143c8 fetch 2 ,mem_ucode_ptr 
+
+read_first_block_cont:
+6a01 67e101e0 store 2 ,mem_addr_mi 
+6a02 20546a04 call get_iv ,user 
+6a03 20600000 rtn 
+
+get_iv:
+6a04 d8400010 arg 16 ,temp 
+6a05 da2001ed arg mem_ucode_keybuf ,rega 
+6a06 204069e6 call aes_disable 
+6a07 204069ee call read_function 
+
+set_iv:
+6a08 d8c001ed arg mem_ucode_keybuf ,contr 
+6a09 df200010 arg 16 ,loopcnt 
+6a0a 20407353 call aes_load_data 
+6a0b 204072da call aes_init 
+6a0c 2040736f call aes_clear_data 
+6a0d 202072d4 branch do_aes_cbc 
+
+load_aes_reinit:
+6a0e 70802300 jam 0x0 ,core_ucode_ctrl 
+6a0f 204069e6 call aes_disable 
+6a10 2020736f branch aes_clear_data 
+
+load_storage:
+6a11 58000000 setarg 0 
+6a12 67e10699 store 2 ,mem_queue 
+6a13 7856fc00 disable match 
+6a14 204069f3 call get_block_header 
+6a15 24628000 nrtn zero 
+6a16 7836fc00 enable match 
+6a17 58008000 setarg 0x8000 
+6a18 67f18022 store 3 ,core_ucode_hi 
+6a19 da208025 arg core_ucode_data ,rega 
+6a1a 204069ea call read_function_aes 
+6a1b 70802300 jam 0x0 ,core_ucode_ctrl 
+6a1c 6fe081dd fetch 1 ,mem_ucode_status 
+6a1d c4000000 rtnbit0 0 
+
+load_storage_loop:
+6a1e d8400006 arg 6 ,temp 
+6a1f 204069f4 call get_block_header0 
+6a20 2422ea2e nbranch load_data_checksum_compare ,zero 
+6a21 ea210006 ifetchr rega ,2 ,contr 
+6a22 204069ee call read_function 
+6a23 20406a25 call load_data_checksum_calc 
+6a24 20206a1e branch load_storage_loop 
+
+load_data_checksum_calc:
+6a25 6fe10699 fetch 2 ,mem_queue 
+6a26 df200006 arg 6 ,loopcnt 
+6a27 d8c001e7 arg mem_ucode_buf ,contr 
+6a28 20407dcc call cal_sum 
+6a29 6f2101e9 fetchr loopcnt ,2 ,mem_ucode_len 
+6a2a 1a220c00 copy rega ,contr 
+6a2b 20407dcc call cal_sum 
+6a2c 67e10699 store 2 ,mem_queue 
+6a2d 20600000 rtn 
+
+load_data_checksum_compare:
+6a2e 6fe0821c fetch 1 ,mem_otp_load_check_sum 
+6a2f c02d6a3c beq 0x5a ,load_data_checksum_ok 
+6a30 da20aa55 arg 0xaa55 ,rega 
+6a31 6fe101e7 fetch 2 ,mem_ucode_buf 
+6a32 9a267c00 isub rega ,null 
+6a33 2422ea3e nbranch load_data_checksum_compare_fail ,zero 
+6a34 da2055aa arg 0x55aa ,rega 
+6a35 6fe101e9 fetch 2 ,mem_ucode_len 
+6a36 9a267c00 isub rega ,null 
+6a37 2422ea3e nbranch load_data_checksum_compare_fail ,zero 
+6a38 6fe101eb fetch 2 ,mem_sched_addr 
+6a39 68490699 fetcht 2 ,mem_queue 
+6a3a 98467c00 isub temp ,null 
+6a3b 2422ea3e nbranch load_data_checksum_compare_fail ,zero 
+
+load_data_checksum_ok:
+6a3c 7920220f set1 15 ,rega 
+6a3d 202069f1 branch read_fuction_zero 
+
+load_data_checksum_compare_fail:
+6a3e 7001dd00 jam 0 ,mem_ucode_status 
+6a3f 20600000 rtn 
+
+loadcode_lock_load_ucode:
+6a40 1fe17eff and pdata ,0xff ,pdata 
+6a41 1ff1fe00 rshift4 pdata ,pdata 
+6a42 67e0c3cb store 1 ,mem_device_option 
+6a43 20206a59 branch loadcode_load_key 
+
+loadcode_lock:
+6a44 6ff10143 fetch 2 ,core_ucode_flag 
+6a45 243a6a40 nbranch loadcode_lock_load_ucode ,blank 
+6a46 20406a59 call loadcode_load_key 
+6a47 6fe143cb fetch 2 ,mem_device_option 
+6a48 207a0000 rtn blank 
+6a49 20406a4b call loadcode_set_lock 
+6a4a 202023ba branch lpm_write_lock 
+
+loadcode_set_lock:
+6a4b 6fe0c3cb fetch 1 ,mem_device_option 
+6a4c 207a0000 rtn blank 
+6a4d 1fe1040f and pdata ,0xf ,temp 
+6a4e 6048c3cb storet 1 ,mem_device_option 
+6a4f 1ff1fe00 rshift4 pdata ,pdata 
+6a50 9842fe00 ixor temp ,pdata 
+6a51 c087ebc2 bne 0xf ,app_lpm_mpu_lock_24g_ble 
+6a52 20206b8d branch app_lpm_lock_check 
+
+load_otp_hv_vsel:
+6a53 6fe08219 fetch 1 ,mem_otp_hv_sel 
+6a54 245a23e0 ncall lpm_save_sel_hv ,blank 
+6a55 6fe0821a fetch 1 ,mem_otp_ldo_vsel 
+6a56 207a0000 rtn blank 
+6a57 67e0c0c9 store 1 ,mem_lpm_ldo_sel 
+6a58 202023e4 branch lpm_write_io_vsel 
+
+loadcode_load_key:
+6a59 78547c00 disable user 
+6a5a 6fe0c3ca fetch 1 ,mem_ucode_flag 
+6a5b c4018000 rtnbit0 otp_uflag_aes 
+6a5c 20406aad call loadcode_check_otp_lock 
+6a5d dfe00ff0 arg otp_offset_ucode_key_l ,pdata 
+6a5e 9a40a400 iadd regb ,regb 
+6a5f 18007210 force 16 ,loopcnt 
+6a60 da2001ed arg mem_ucode_keybuf ,rega 
+6a61 20406b74 call otp_read_data 
+6a62 70800608 jam otp_key_lock ,core_misc_ctrl 
+6a63 d8c001ed arg mem_ucode_keybuf ,contr 
+6a64 2040735f call load_key 
+6a65 d8a001ed arg mem_ucode_keybuf ,contw 
+6a66 20407c99 call memset0_16 
+6a67 20207dba branch enable_user 
+
+loadcode:
+6a68 70805025 jam 0x25 ,core_clkoff 
+6a69 20406b3a call enable_otp_read 
+6a6a da400000 arg otp_offset_patch_ptr ,regb 
+6a6b 1800720b force 11 ,loopcnt 
+6a6c da2043c8 arg mem_ucode_ptr ,rega 
+6a6d 20406b75 call otp_read_data1 
+6a6e 6ee2c3c8 fetchr regf ,5 ,mem_ucode_ptr 
+6a6f 6fe0c3ca fetch 1 ,mem_ucode_flag 
+6a70 c3026a78 bbit0 otp_uflag_bist ,loadcode_nobist 
+6a71 70806f07 jam 0x7 ,core_bist_ctrl 
+
+loadcode_bistwait:
+6a72 6ff0815e fetch 1 ,core_bist_done 
+6a73 c083ea72 bne 7 ,loadcode_bistwait 
+6a74 6ff08160 fetch 1 ,core_bist_fail 
+6a75 1ff27e00 lshift4 pdata ,pdata 
+6a76 67f0806f store 1 ,core_bist_ctrl 
+6a77 20206a7b branch loadcode_otp 
+
+loadcode_nobist:
+6a78 20406af5 call set_bistfix 
+6a79 20407d76 call clean_xmem 
+6a7a 20407d74 call clean_smem 
+
+loadcode_otp:
+6a7b 66e2c3c8 storer regf ,5 ,mem_ucode_ptr 
+6a7c 20406aad call loadcode_check_otp_lock 
+6a7d dfe00fd0 arg otp_offset_adc_param_l ,pdata 
+6a7e 9a40a400 iadd regb ,regb 
+6a7f df200020 arg 32 ,loopcnt 
+6a80 da2001fd arg mem_otp_temp ,rega 
+6a81 20406b74 call otp_read_data 
+6a82 20406a53 call load_otp_hv_vsel 
+6a83 20406a44 call loadcode_lock 
+6a84 6fe0c3ca fetch 1 ,mem_ucode_flag 
+6a85 c301ea8f bbit0 otp_uflag_aes ,loadcode_unenc 
+6a86 6848c3cc fetcht 1 ,mem_peripheral_lock_flag 
+6a87 dfe00000 arg 0 ,pdata 
+6a88 79207e06 set1 otp_not_limit ,pdata 
+6a89 79207e07 set1 otp_limit ,pdata 
+6a8a 98412200 iand temp ,rega 
+6a8b 1a267c00 sub rega ,0 ,null 
+6a8c 2022eaf1 branch loadcode_error ,zero 
+6a8d 9a267c00 isub rega ,null 
+6a8e 2022eaf1 branch loadcode_error ,zero 
+
+loadcode_unenc:
+6a8f 70003000 jam 0 ,mem_loadcode_times 
+6a90 da606b1e arg otp_load_code ,regc 
+
+loadcode_otp_loop:
+6a91 20406ae5 call loadcode_timeout 
+6a92 24216af1 nbranch loadcode_error ,positive 
+6a93 6fe143c8 fetch 2 ,mem_ucode_ptr 
+6a94 203a6a9c branch loadcode_otp_end ,blank 
+6a95 20406a01 call read_first_block_cont 
+6a96 20406a11 call load_storage 
+6a97 2436ea9c nbranch loadcode_otp_end ,match 
+6a98 6fe081dd fetch 1 ,mem_ucode_status 
+6a99 2fe00603 compare 3 ,pdata ,3 
+6a9a 2420ea91 nbranch loadcode_otp_loop ,true 
+6a9b 20406aaa call run_otp_code 
+
+loadcode_otp_end:
+6a9c 20406b37 call disable_otp 
+6a9d 70003000 jam 0 ,mem_loadcode_times 
+
+loadcode_iic_loop:
+6a9e 20406ae5 call loadcode_timeout 
+6a9f 24216af1 nbranch loadcode_error ,positive 
+6aa0 20406ad7 call iicd_load_gpio_init 
+6aa1 20406cc4 call clear_eeprom_size_2k 
+6aa2 6fe0c3ca fetch 1 ,mem_ucode_flag 
+6aa3 c2816abd bbit1 otp_uflag_skip_eep ,loadcode_spi 
+6aa4 20406adf call loadcode_iic_by_eeprom 
+6aa5 2436eab4 nbranch loadcode_iic_eeprom_2k ,match 
+6aa6 6fe081dd fetch 1 ,mem_ucode_status 
+6aa7 2fe00603 compare 3 ,pdata ,3 
+6aa8 2420ea9e nbranch loadcode_iic_loop ,true 
+6aa9 20206abd branch loadcode_spi 
+
+run_otp_code:
+6aaa 580001ff setarg 0x1ff 
+6aab dfa00000 arg 0 ,pc 
+6aac 20600000 rtn 
+
+loadcode_check_otp_lock:
+6aad da401000 arg otp_offset_h ,regb 
+6aae 6ff08144 fetch 1 ,core_peripheral_lock 
+6aaf c283eab2 bbit1 otp_limit ,loadcode_otp_lock 
+6ab0 6fe0c3cc fetch 1 ,mem_peripheral_lock_flag 
+6ab1 c4038000 rtnbit0 otp_limit 
+
+loadcode_otp_lock:
+6ab2 da400000 arg 0 ,regb 
+6ab3 20600000 rtn 
+
+loadcode_iic_eeprom_2k:
+6ab4 20406cc1 call set_eeprom_size_2k 
+6ab5 6fe0c3ca fetch 1 ,mem_ucode_flag 
+6ab6 c2816abd bbit1 otp_uflag_skip_eep ,loadcode_spi 
+6ab7 20406adf call loadcode_iic_by_eeprom 
+6ab8 2436eabd nbranch loadcode_spi ,match 
+6ab9 6fe081dd fetch 1 ,mem_ucode_status 
+6aba 2fe00603 compare 3 ,pdata ,3 
+6abb 2420ea9e nbranch loadcode_iic_loop ,true 
+6abc 20206acd branch loadcode_hci 
+
+loadcode_spi:
+6abd 70003000 jam 0 ,mem_loadcode_times 
+
+loadcode_spi_loop:
+6abe 20406ae5 call loadcode_timeout 
+6abf 24216af1 nbranch loadcode_error ,positive 
+6ac0 6fe0c3ca fetch 1 ,mem_ucode_flag 
+6ac1 c280eacd bbit1 otp_uflag_skip_flash ,loadcode_hci 
+6ac2 20406c20 call spid_init_flash 
+6ac3 200000c8 nop 200 
+6ac4 20406c2f call spid_flash_release_form_powerdown 
+6ac5 20000064 nop 100 
+6ac6 da606c6c arg spid_load_flash ,regc 
+6ac7 204069fc call read_first_block 
+6ac8 20406a11 call load_storage 
+6ac9 2436eacd nbranch loadcode_hci ,match 
+6aca 6fe081dd fetch 1 ,mem_ucode_status 
+6acb 2fe00603 compare 3 ,pdata ,3 
+6acc 2420eabe nbranch loadcode_spi_loop ,true 
+
+loadcode_hci:
+6acd 20406ad1 call clear_key_buf 
+6ace 6fe0c3ca fetch 1 ,mem_ucode_flag 
+6acf c4000000 rtnbit0 otp_uflag_hci 
+6ad0 20206882 branch hci_init 
+
+clear_key_buf:
+6ad1 d8a001ed arg mem_ucode_keybuf ,contw 
+6ad2 20407c99 call memset0_16 
+6ad3 18007004 force regidx_key ,regext_index 
+6ad4 20407370 call aes_clear 
+6ad5 70805021 jam 0x21 ,core_clkoff 
+6ad6 20600000 rtn 
+
+iicd_load_gpio_init:
+6ad7 6fe0c429 fetch 1 ,mem_eeprom_sda_gpio 
+6ad8 6848c428 fetcht 1 ,mem_eeprom_scl_gpio 
+6ad9 98467c00 isub temp ,null 
+6ada 2422ecbc nbranch iicd_read_init_pin ,zero 
+
+iicd_load_default_gpio:
+6adb 70442704 jam 4 ,mem_eeprom_wp_gpio 
+6adc 70442817 jam 23 ,mem_eeprom_scl_gpio 
+6add 70442916 jam 22 ,mem_eeprom_sda_gpio 
+6ade 20206cbc branch iicd_read_init_pin 
+
+loadcode_iic_by_eeprom:
+6adf 58000000 setarg 0x0 
+6ae0 67e101e0 store 2 ,mem_addr_mi 
+6ae1 da606ce7 arg iicd_read_eep ,regc 
+6ae2 20406ca5 call iic_init_600khz 
+6ae3 204069fc call read_first_block 
+6ae4 20206a11 branch load_storage 
+
+loadcode_timeout:
+6ae5 20406aeb call loadcode_error_delay 
+6ae6 6fe08030 fetch 1 ,mem_loadcode_times 
+6ae7 1fe0fe01 increase 1 ,pdata 
+6ae8 1fe67c03 sub pdata ,3 ,null 
+6ae9 67e08030 store 1 ,mem_loadcode_times 
+6aea 20600000 rtn 
+
+loadcode_error_delay:
+6aeb 6fe08030 fetch 1 ,mem_loadcode_times 
+6aec 207a0000 rtn blank 
+6aed 6fe0821b fetch 1 ,mem_otp_load_delay 
+6aee 207a0000 rtn blank 
+6aef 1fe27200 copy pdata ,loopcnt 
+6af0 20207c96 branch delay_ms_wait 
+
+loadcode_error:
+6af1 20406ad1 call clear_key_buf 
+6af2 204069e6 call aes_disable 
+6af3 20407d7c call ice_break 
+6af4 20600000 rtn 
+
+set_bistfix:
+6af5 1fe17ee0 and_into 0xe0 ,pdata 
+6af6 1fe37e00 rshift pdata ,pdata 
+6af7 67f0806f store 1 ,core_bist_ctrl 
+6af8 58000001 setarg 1 
+6af9 d8c043cd arg mem_bistfix_val ,contr 
+
+set_bistfix_loop:
+6afa e8410006 ifetcht 2 ,contr 
+6afb 6059004c storet 2 ,core_lpm_reg 
+6afc 67f08020 store 1 ,core_set_bistfix 
+6afd 1fe3fe00 lshift pdata ,pdata 
+6afe c301eafa bbit0 3 ,set_bistfix_loop 
+6aff 20600000 rtn 
+
+set_ucode_status:
+6b00 6fe081dd fetch 1 ,mem_ucode_status 
+6b01 1fe3fe00 lshift pdata ,pdata 
+6b02 7920fe00 setflag true ,0 ,pdata 
+6b03 2a2c000f isolate0 15 ,rega 
+6b04 20608000 rtn true 
+6b05 67e081dd store 1 ,mem_ucode_status 
+6b06 20600000 rtn 
+
+decrypt_code:
+6b07 6ff0806f fetch 1 ,core_bist_ctrl 
+6b08 c4038000 rtnbit0 aes_en 
+6b09 20206b0d branch decrypt_code_skip 
+
+decrypt_code_loop:
+6b0a 6ff08128 fetch 1 ,core_dma_status 
+6b0b afefffff qisolate1 pdata 
+6b0c 20608000 rtn true 
+
+decrypt_code_skip:
+6b0d 6ff08108 fetch 1 ,core_misc_status 
+6b0e c300eb0a bbit0 1 ,decrypt_code_loop 
+6b0f 204072d4 call do_aes_cbc 
+6b10 20206b0a branch decrypt_code_loop 
+
+load_ucode:
+6b11 6fe140f0 fetch 2 ,mem_patch_ptr 
+6b12 207a0000 rtn blank 
+6b13 70802380 jam 0x80 ,core_ucode_ctrl 
+6b14 70802200 jam 0 ,core_ucode_hi 
+6b15 70802400 jam 0 ,core_ucode_low 
+6b16 684940f2 fetcht 2 ,mem_patch_len 
+6b17 184bf200 lshift2 temp ,loopcnt 
+6b18 98000c00 iforce contr 
+
+load_ucode_loop:
+6b19 efe08006 ifetch 1 ,contr 
+6b1a 67f08025 store 1 ,core_ucode_data 
+6b1b c2006b19 loop load_ucode_loop 
+6b1c 70802300 jam 0x0 ,core_ucode_ctrl 
+6b1d 20600000 rtn 
+
+otp_load_code:
+6b1e 18427200 copy temp ,loopcnt 
+6b1f 6fe101e0 fetch 2 ,mem_addr_mi 
+6b20 98408400 iadd temp ,temp 
+6b21 604901e0 storet 2 ,mem_addr_mi 
+6b22 98002400 iforce regb 
+6b23 1a225c00 copy rega ,nap 
+6b24 70800610 jam init_key ,core_misc_ctrl 
+6b25 20406b74 call otp_read_data 
+6b26 1dc22200 copy nap ,rega 
+6b27 2a2c000f isolate0 15 ,rega 
+6b28 20608000 rtn true 
+6b29 205a7dc6 call enable_true ,blank 
+6b2a 20206b00 branch set_ucode_status 
+
+otp_enable_chgpump25:
+6b2b 708ac801 jam 0x1 ,core_chgpump_ctrl 
+6b2c 2000012c nop 300 
+6b2d 708ac805 jam 0x5 ,core_chgpump_ctrl 
+6b2e 20000064 nop 100 
+6b2f 708ac825 jam 0x25 ,core_chgpump_ctrl 
+6b30 200003e8 nop 1000 
+6b31 708ac827 jam 0x27 ,core_chgpump_ctrl 
+6b32 2000012c nop 300 
+6b33 20600000 rtn 
+
+otp_enable_chgpump65:
+6b34 20406b2b call otp_enable_chgpump25 
+6b35 708ac83f jam 0x3f ,core_chgpump_ctrl 
+6b36 20600000 rtn 
+
+disable_otp:
+6b37 70804783 jam 0x83 ,core_otp_ctrl 
+
+otp_disable_chgpump:
+6b38 708ac800 jam 0 ,core_chgpump_ctrl 
+6b39 20600000 rtn 
+
+enable_otp_read:
+6b3a 20406b2b call otp_enable_chgpump25 
+
+otp_reset:
+6b3b 70804782 jam 0x82 ,core_otp_ctrl 
+6b3c 2000000c nop 12 
+6b3d 70804780 jam 0x80 ,core_otp_ctrl 
+6b3e 70804782 jam 0x82 ,core_otp_ctrl 
+6b3f 20000096 nop 150 
+6b40 20600000 rtn 
+
+otp_set_addr:
+6b41 1a49a400 lshift3 regb ,regb 
+6b42 62510044 storer regb ,2 ,core_otp_addr 
+6b43 70804600 jam 0 ,core_otp_din 
+6b44 20600000 rtn 
+
+otp_write:
+6b45 44e24018 bpatch patch18_4 ,mem_patch18 
+6b46 20406b34 call otp_enable_chgpump65 
+6b47 20406b41 call otp_set_addr 
+6b48 20406b3b call otp_reset 
+
+otp_program:
+6b49 e8408011 ifetcht 1 ,rega 
+6b4a 1a20a201 increase 1 ,rega 
+6b4b 18000e00 force 0 ,queue 
+
+otp_program_bit:
+6b4c a84c0000 qisolate0 temp 
+6b4d 2020eb6c branch otp_skip_0 ,true 
+6b4e 6ff08046 fetch 1 ,core_otp_din 
+6b4f 79207e06 set1 6 ,pdata 
+6b50 79207e07 set1 7 ,pdata 
+6b51 67f08046 store 1 ,core_otp_din 
+6b52 70804702 jam 0x02 ,core_otp_ctrl 
+6b53 70804782 jam 0x82 ,core_otp_ctrl 
+6b54 793ffe07 set0 7 ,pdata 
+6b55 67f08046 store 1 ,core_otp_din 
+6b56 7080478a jam 0x8a ,core_otp_ctrl 
+6b57 2000000b nop 11 
+6b58 708047ca jam 0xca ,core_otp_ctrl 
+6b59 20000021 nop 33 
+6b5a 7080474a jam 0x4a ,core_otp_ctrl 
+6b5b 2000002c nop 44 
+6b5c 708047ca jam 0xca ,core_otp_ctrl 
+6b5d 20000016 nop 22 
+6b5e 7080478a jam 0x8a ,core_otp_ctrl 
+6b5f 20000021 nop 33 
+6b60 70804782 jam 0x82 ,core_otp_ctrl 
+6b61 20000001 nop 1 
+6b62 70804792 jam 0x92 ,core_otp_ctrl 
+6b63 2000000a nop 10 
+6b64 708047b2 jam 0xb2 ,core_otp_ctrl 
+6b65 6ff08007 fetch 1 ,core_otp_rdata 
+6b66 70804792 jam 0x92 ,core_otp_ctrl 
+6b67 20000001 nop 1 
+6b68 70804782 jam 0x82 ,core_otp_ctrl 
+6b69 20000001 nop 1 
+6b6a afec0000 qisolate0 pdata 
+6b6b 2020eb4c branch otp_program_bit ,true 
+
+otp_skip_0:
+6b6c 6ff10044 fetch 2 ,core_otp_addr 
+6b6d 1fe0fe01 increase 1 ,pdata 
+6b6e 67f10044 store 2 ,core_otp_addr 
+6b6f 18e08e01 increase 1 ,queue 
+6b70 28e01e08 compare 8 ,queue ,0xf 
+6b71 2420eb4c nbranch otp_program_bit ,true 
+6b72 c2006b49 loop otp_program 
+6b73 20206b38 branch otp_disable_chgpump 
+
+otp_read_data:
+6b74 44e2c018 bpatch patch18_5 ,mem_patch18 
+
+otp_read_data1:
+6b75 20406b41 call otp_set_addr 
+6b76 708047a2 jam 0xa2 ,core_otp_ctrl 
+6b77 1a40a408 increase 8 ,regb 
+6b78 d8e00000 arg 0 ,queue 
+6b79 5fffffff setarg -1 
+
+otp_read_data_loop:
+6b7a 68588007 fetcht 1 ,core_otp_rdata 
+6b7b e0408011 istoret 1 ,rega 
+6b7c 984c7e00 bcrc temp 
+6b7d 70800620 jam shift_key ,core_misc_ctrl 
+6b7e 62510044 storer regb ,2 ,core_otp_addr 
+6b7f 2a2ffe0f isolate1 15 ,rega 
+6b80 2020eb83 branch otp_read_noinc ,true 
+6b81 1a20a201 increase 1 ,rega 
+6b82 20206b89 branch otp_read_unenc 
+
+otp_read_noinc:
+6b83 24346b89 nbranch otp_read_unenc ,user 
+6b84 18e08e01 increase 1 ,queue 
+6b85 28e01e00 compare 0 ,queue ,0xf 
+6b86 2420eb89 nbranch otp_read_unenc ,true 
+6b87 204072d4 call do_aes_cbc 
+6b88 70800610 jam init_key ,core_misc_ctrl 
+
+otp_read_unenc:
+6b89 1a40a408 increase 8 ,regb 
+6b8a c2006b7a loop otp_read_data_loop 
+6b8b 70804782 jam 0x82 ,core_otp_ctrl 
+6b8c 20600000 rtn 
+
+app_lpm_lock_check:
+6b8d 6fe0c3cb fetch 1 ,mem_device_option 
+6b8e c0056b9e beq dvc_op_module ,app_lpm_module_lock 
+6b8f c0026b9f beq dvc_op_dongle ,app_lpm_dongle_lock 
+6b90 c0046ba3 beq dvc_op_mouse ,app_lpm_mouse_lock 
+6b91 c004eba7 beq dvc_op_shutter ,app_lpm_shutter_lock 
+6b92 c0036ba7 beq dvc_op_shutter_dy ,app_lpm_shutter_lock 
+6b93 c0066b9e beq dvc_op_hci_boot ,app_lpm_hciboot_lock 
+6b94 c006ebb1 beq dvc_op_remote_car ,app_lpm_car_lock_application_and_ble 
+6b95 c0076bab beq dvc_op_car ,app_lpm_car_lock 
+6b96 c005eb99 beq dvc_op_mesh ,app_lpm_mesh_lock 
+6b97 c007eb9d beq dvc_op_keyboard ,app_lpm_kb_lock 
+6b98 20206bc2 branch app_lpm_mpu_lock_24g_ble 
+
+app_lpm_mesh_lock:
+6b99 dfe043b2 arg car_init ,pdata 
+6b9a d8406858 arg shutter_dy_shutter_1s_timer ,temp 
+6b9b 20406bb7 call app_mpu_s0_lock 
+6b9c 20206bae branch app_lpm_lock_mesh 
+
+app_lpm_kb_lock:
+6b9d 20206bae branch app_lpm_lock_mesh 
+
+app_lpm_module_lock:
+
+app_lpm_hciboot_lock:
+6b9e 20206bbf branch app_lpm_mpu_lock_24g 
+
+app_lpm_dongle_lock:
+6b9f dfe05099 arg module_init ,pdata 
+6ba0 d8406858 arg shutter_dy_shutter_1s_timer ,temp 
+6ba1 20406bb7 call app_mpu_s0_lock 
+6ba2 20206bae branch app_lpm_lock_mesh 
+
+app_lpm_mouse_lock:
+6ba3 dfe043b2 arg car_init ,pdata 
+6ba4 d84053dc arg module_set_state ,temp 
+6ba5 20406bb7 call app_mpu_s0_lock 
+6ba6 20206bae branch app_lpm_lock_mesh 
+
+app_lpm_shutter_lock:
+6ba7 dfe043b2 arg car_init ,pdata 
+6ba8 d8404770 arg remote_car_moto_data_enable_user ,temp 
+6ba9 20406bb7 call app_mpu_s0_lock 
+6baa 20206bae branch app_lpm_lock_mesh 
+
+app_lpm_car_lock:
+6bab dfe047b7 arg dongle_init ,pdata 
+6bac d8406858 arg shutter_dy_shutter_1s_timer ,temp 
+6bad 20406bb7 call app_mpu_s0_lock 
+
+app_lpm_lock_mesh:
+6bae dfe03728 arg ali_mesh_access_layer_resolve_message ,pdata 
+6baf d8404292 arg ali_mesh_upper_transport_layer_init_queue_param ,temp 
+6bb0 20206bbc branch app_mpu_s1_lock 
+
+app_lpm_car_lock_application_and_ble:
+6bb1 dfe047b7 arg dongle_init ,pdata 
+6bb2 d8406858 arg shutter_dy_shutter_1s_timer ,temp 
+6bb3 20406bb7 call app_mpu_s0_lock 
+6bb4 dfe02acb arg le_adv ,pdata 
+6bb5 d840310d arg le_send_ll_one_lenth ,temp 
+6bb6 20206bbc branch app_mpu_s1_lock 
+
+app_mpu_s0_lock:
+6bb7 18500400 lshift16 temp ,temp 
+6bb8 9841fe00 ior temp ,pdata 
+6bb9 202023cf branch lpm_write_mpu_s0 
+
+app_lpm_mpu_lock_ble:
+6bba dfe02b8f arg le_parse_att ,pdata 
+6bbb d840310d arg le_send_ll_one_lenth ,temp 
+
+app_mpu_s1_lock:
+6bbc 18500400 lshift16 temp ,temp 
+6bbd 9841fe00 ior temp ,pdata 
+6bbe 202023d6 branch lpm_write_mpu_s1 
+
+app_lpm_mpu_lock_24g:
+6bbf dfe03112 arg g24_prep ,pdata 
+6bc0 d84036df arg g24_factory_check ,temp 
+6bc1 20206bbc branch app_mpu_s1_lock 
+
+app_lpm_mpu_lock_24g_ble:
+6bc2 20406bbf call app_lpm_mpu_lock_24g 
+6bc3 dfe02b8f arg le_parse_att ,pdata 
+6bc4 d840310d arg le_send_ll_one_lenth ,temp 
+6bc5 20206bb7 branch app_mpu_s0_lock 
+
+spid_init:
+6bc6 44e34018 bpatch patch18_6 ,mem_patch18 
+
+spid_init_common:
+6bc7 6fe0c3f5 fetch 1 ,mem_spi_init_clk 
+6bc8 67f08080 store 1 ,core_spid_ctrl 
+6bc9 6fe0c3f6 fetch 1 ,mem_spi_init_delay_time 
+6bca 67f08081 store 1 ,core_spid_delay 
+6bcb 580001de setarg mem_spid_tbuf 
+6bcc 67f10084 store 2 ,core_spid_txaddr 
+6bcd 580001e3 setarg mem_spid_rbuf 
+6bce 67f10086 store 2 ,core_spid_rxaddr 
+6bcf 202069dc branch twspi_disable 
+
+spid_write_reg:
+6bd0 79207e07 set1 7 ,pdata 
+6bd1 67e101de store 2 ,mem_spid_tbuf 
+6bd2 44e3c018 bpatch patch18_7 ,mem_patch18 
+6bd3 70808202 jam 2 ,core_spid_txlen 
+6bd4 70808800 jam 0 ,core_spid_rxlen 
+6bd5 70800602 jam spid_start ,core_misc_ctrl 
+6bd6 20206be0 branch wait_spid_done 
+
+spid_read_reg:
+6bd7 18000401 force 1 ,temp 
+
+spid_read_regs:
+6bd8 67e081de store 1 ,mem_spid_tbuf 
+6bd9 44e44019 bpatch patch19_0 ,mem_patch19 
+6bda 70808201 jam 1 ,core_spid_txlen 
+6bdb 60590088 storet 2 ,core_spid_rxlen 
+6bdc 70800602 jam spid_start ,core_misc_ctrl 
+6bdd 20406be0 call wait_spid_done 
+6bde 6fe081e3 fetch 1 ,mem_spid_rbuf 
+6bdf 20600000 rtn 
+
+wait_spid_done:
+6be0 20000005 nop 5 
+6be1 6ff08128 fetch 1 ,core_dma_status 
+6be2 c301ebe0 bbit0 spid_done ,wait_spid_done 
+6be3 20600000 rtn 
+
+flash_write:
+6be4 78547c00 disable user 
+6be5 1fe22400 copy pdata ,regb 
+6be6 6fe0c420 fetch 1 ,mem_spi_write_flash_sm 
+6be7 c1800000 rtnne flash_sm_no_buys 
+6be8 78347c00 enable user 
+6be9 1a427e00 copy regb ,pdata 
+6bea 20206bf2 branch spid_flash_write_start 
+
+flash_write_spi_sm_timer:
+6beb 6fe0c420 fetch 1 ,mem_spi_write_flash_sm 
+6bec c000ebf2 beq flash_sm_start ,spid_flash_write_start 
+6bed c0016bf8 beq flash_sm_erase_sector ,spid_flash_erase_sector 
+6bee c001ec00 beq flash_sm_wait_erase_sector ,spid_flash_wait_erase_sector 
+6bef c0026c04 beq flash_sm_write_data ,spid_flash_write_data 
+6bf0 c002ec0b beq flash_sm_wait_write_data ,spid_flash_wait_write_data 
+6bf1 20600000 rtn 
+
+spid_flash_write_start:
+6bf2 67e1c419 store 3 ,mem_spi_write_addr 
+6bf3 1a227e00 copy rega ,pdata 
+6bf4 67e1441c store 2 ,mem_spi_write_ptr 
+6bf5 6049441e storet 2 ,mem_spi_write_len 
+6bf6 70442002 jam flash_sm_erase_sector ,mem_spi_write_flash_sm 
+6bf7 20206c20 branch spid_init_flash 
+
+spid_flash_erase_sector:
+6bf8 20406c20 call spid_init_flash 
+6bf9 70442003 jam flash_sm_wait_erase_sector ,mem_spi_write_flash_sm 
+6bfa 20406c26 call spid_unlock_flash 
+6bfb da2001de arg mem_spid_tbuf ,rega 
+6bfc 70808204 jam 4 ,core_spid_txlen 
+6bfd 6fe1c419 fetch 3 ,mem_spi_write_addr 
+6bfe d8400020 arg flash_command_sector_erase ,temp 
+6bff 20206c40 branch spid_write_flash_common 
+
+spid_flash_wait_erase_sector:
+6c00 20406c20 call spid_init_flash 
+6c01 20406c63 call wait_spid_flash_done 
+6c02 70442004 jam flash_sm_write_data ,mem_spi_write_flash_sm 
+6c03 20600000 rtn 
+
+spid_flash_write_data:
+6c04 44e4c019 bpatch patch19_1 ,mem_patch19 
+6c05 20406c20 call spid_init_flash 
+6c06 70442005 jam flash_sm_wait_write_data ,mem_spi_write_flash_sm 
+6c07 20406c26 call spid_unlock_flash 
+6c08 20406c18 call spid_flash_data_preserve 
+6c09 20406c3c call spid_write_flash 
+6c0a 20206c13 branch spid_flash_data_recover 
+
+spid_flash_wait_write_data:
+6c0b 20406c20 call spid_init_flash 
+6c0c 20406c26 call spid_unlock_flash 
+6c0d 58000005 setarg flash_read_satus 
+6c0e 20406bd7 call spid_read_reg 
+6c0f c3800000 rtnbit1 flash_status_wip 
+6c10 70442000 jam flash_sm_no_buys ,mem_spi_write_flash_sm 
+6c11 6fe143e7 fetch 2 ,mem_cb_spi_flash_write_complate 
+6c12 20207d79 branch callback_func 
+
+spid_flash_data_recover:
+6c13 6fe20678 fetch 4 ,mem_temp 
+6c14 6849441c fetcht 2 ,mem_spi_write_ptr 
+
+spid_flash_data_recover_comm:
+6c15 184085fc increase -4 ,temp 
+6c16 e7e20002 istore 4 ,temp 
+6c17 20600000 rtn 
+
+spid_flash_data_preserve:
+6c18 6849441c fetcht 2 ,mem_spi_write_ptr 
+6c19 18422200 copy temp ,rega 
+6c1a 184085fc increase -4 ,temp 
+6c1b efe20002 ifetch 4 ,temp 
+6c1c 67e20678 store 4 ,mem_temp 
+6c1d 6849441e fetcht 2 ,mem_spi_write_len 
+6c1e 6fe1c419 fetch 3 ,mem_spi_write_addr 
+6c1f 20600000 rtn 
+
+spid_init_flash:
+6c20 44e54019 bpatch patch19_2 ,mem_patch19 
+6c21 20406c8b call spi_gpio_init 
+6c22 204069dc call twspi_disable 
+6c23 58000000 setarg 0 
+6c24 67e201de store 4 ,mem_spid_tbuf 
+6c25 20600000 rtn 
+
+spid_unlock_flash:
+6c26 7001de06 jam flash_command_write_enable ,mem_spid_tbuf 
+
+spid_sendcmd_common:
+6c27 58000000 setarg 0 
+6c28 67f10088 store 2 ,core_spid_rxlen 
+6c29 58000001 setarg 1 
+6c2a 67f10082 store 2 ,core_spid_txlen 
+6c2b 580001de setarg mem_spid_tbuf 
+6c2c 67f10084 store 2 ,core_spid_txaddr 
+6c2d 70800602 jam spid_start ,core_misc_ctrl 
+6c2e 20206be0 branch wait_spid_done 
+
+spid_flash_release_form_powerdown:
+6c2f 7001deab jam flash_command_release_from_powerdown ,mem_spid_tbuf 
+6c30 20206c27 branch spid_sendcmd_common 
+
+spid_flash_powerdown:
+6c31 7001deb9 jam flash_command_powerdown ,mem_spid_tbuf 
+6c32 20206c27 branch spid_sendcmd_common 
+
+spid_write_flash_data:
+6c33 67e18670 store 3 ,mem_pdatatemp 
+6c34 60490678 storet 2 ,mem_temp 
+6c35 62210684 storer rega ,2 ,mem_rega 
+6c36 475ac036 bpatchx patch36_5 ,mem_patch36 
+6c37 20406c26 call spid_unlock_flash 
+6c38 6fe18670 fetch 3 ,mem_pdatatemp 
+6c39 68490678 fetcht 2 ,mem_temp 
+6c3a 6a210684 fetchr rega ,2 ,mem_rega 
+6c3b 20206c3c branch spid_write_flash 
+
+spid_write_flash:
+6c3c 18408404 increase 4 ,temp 
+6c3d 60590082 storet 2 ,core_spid_txlen 
+6c3e d8400002 arg flash_command_write_data ,temp 
+6c3f 1a20a3fc increase -4 ,rega 
+
+spid_write_flash_common:
+6c40 e0408011 istoret 1 ,rega 
+6c41 1ff10400 rshift16 pdata ,temp 
+6c42 e0408005 istoret 1 ,contw 
+6c43 1fec8400 rshift8 pdata ,temp 
+6c44 e0408005 istoret 1 ,contw 
+6c45 e7e08005 istore 1 ,contw 
+6c46 1a227e00 deposit rega 
+6c47 67f10084 store 2 ,core_spid_txaddr 
+6c48 58000000 setarg 0 
+6c49 67f10088 store 2 ,core_spid_rxlen 
+6c4a 70800602 jam spid_start ,core_misc_ctrl 
+6c4b 20406be0 call wait_spid_done 
+6c4c 20206c63 branch wait_spid_flash_done 
+
+spid_read_flash:
+6c4d 60590088 storet 2 ,core_spid_rxlen 
+6c4e 1ff10400 rshift16 pdata ,temp 
+6c4f 604881df storet 1 ,mem_addr_hi 
+6c50 1fec8400 rshift8 pdata ,temp 
+6c51 604881e0 storet 1 ,mem_addr_mi 
+6c52 67e081e1 store 1 ,mem_addr_lo 
+6c53 58000004 setarg 4 
+6c54 67f10082 store 2 ,core_spid_txlen 
+6c55 7001de03 jam flash_command_read_data ,mem_spid_tbuf 
+6c56 580001de setarg mem_spid_tbuf 
+6c57 67f10084 store 2 ,core_spid_txaddr 
+6c58 1a227e00 deposit rega 
+6c59 67f10086 store 2 ,core_spid_rxaddr 
+6c5a 6ff08080 fetch 1 ,core_spid_ctrl 
+6c5b 2a2c000f isolate0 15 ,rega 
+6c5c 7920fe06 setflag true ,6 ,pdata 
+6c5d 67f08080 store 1 ,core_spid_ctrl 
+6c5e 70800602 jam spid_start ,core_misc_ctrl 
+
+spid_read_flash_wait:
+6c5f 6ff08128 fetch 1 ,core_dma_status 
+6c60 c283ec5f bbit1 7 ,spid_read_flash_wait 
+6c61 d8e00003 arg spid_done ,queue 
+6c62 20206be0 branch wait_spid_done 
+
+wait_spid_flash_done:
+6c63 580007d0 setarg 2000 
+6c64 2040235c call sleep 
+6c65 20406c26 call spid_unlock_flash 
+6c66 580001e3 setarg mem_spid_rbuf 
+6c67 67f10086 store 2 ,core_spid_rxaddr 
+6c68 58000005 setarg flash_read_satus 
+6c69 20406bd7 call spid_read_reg 
+6c6a c2806c63 bbit1 flash_status_wip ,wait_spid_flash_done 
+6c6b 20600000 rtn 
+
+spid_load_flash:
+6c6c 60590088 storet 2 ,core_spid_rxlen 
+6c6d 58000004 setarg 4 
+6c6e 67f10082 store 2 ,core_spid_txlen 
+6c6f 7001de03 jam 3 ,mem_spid_tbuf 
+6c70 580001de setarg mem_spid_tbuf 
+6c71 67f10084 store 2 ,core_spid_txaddr 
+6c72 1a227e00 deposit rega 
+6c73 67f10086 store 2 ,core_spid_rxaddr 
+6c74 6ff08080 fetch 1 ,core_spid_ctrl 
+6c75 2a2c000f isolate0 15 ,rega 
+6c76 7920fe06 setflag true ,6 ,pdata 
+6c77 67f08080 store 1 ,core_spid_ctrl 
+6c78 70800602 jam spid_start ,core_misc_ctrl 
+
+spi_load_flash_wait:
+6c79 6ff08128 fetch 1 ,core_dma_status 
+6c7a c283ec79 bbit1 7 ,spi_load_flash_wait 
+6c7b d8e00003 arg spid_done ,queue 
+6c7c 20406b07 call decrypt_code 
+6c7d 20406be0 call wait_spid_done 
+6c7e 2feffe02 isolate1 spid_crcok ,pdata 
+6c7f 20406b00 call set_ucode_status 
+6c80 6fe081df fetch 1 ,mem_addr_hi 
+6c81 1ff02400 lshift16 pdata ,regb 
+6c82 6fe101e0 fetch 2 ,mem_addr_mi 
+6c83 1ff0fe00 byteswap pdata ,pdata 
+6c84 9a41fe00 ior regb ,pdata 
+6c85 9840fe00 iadd temp ,pdata 
+6c86 67e081e1 store 1 ,mem_addr_lo 
+6c87 1fecfe00 rshift8 pdata ,pdata 
+6c88 1ff0fe00 byteswap pdata ,pdata 
+6c89 67e101df store 2 ,mem_addr_hi 
+6c8a 20600000 rtn 
+
+spi_gpio_init:
+6c8b 6fe0c421 fetch 1 ,mem_spi_cs_gpio 
+6c8c 6848c423 fetcht 1 ,mem_spi_so_gpio 
+6c8d 98467c00 isub temp ,null 
+6c8e 2422ec90 nbranch spi_pin_set ,zero 
+6c8f 20406c9c call spi_gpio_default_init 
+
+spi_pin_set:
+6c90 6fe0c421 fetch 1 ,mem_spi_cs_gpio 
+6c91 d8400020 arg gpcfg_spid_ncs ,temp 
+6c92 20406f21 call gpio_config_function_int 
+6c93 6fe0c424 fetch 1 ,mem_spi_sclk_gpio 
+6c94 d8400021 arg gpcfg_spid_sck ,temp 
+6c95 20406f21 call gpio_config_function_int 
+6c96 6fe0c422 fetch 1 ,mem_spi_si_gpio 
+6c97 d8400022 arg gpcfg_spid_mosi ,temp 
+6c98 20406f21 call gpio_config_function_int 
+6c99 6fe0c423 fetch 1 ,mem_spi_so_gpio 
+6c9a d840001f arg gpcfg_spid_miso ,temp 
+6c9b 20206f21 branch gpio_config_function_int 
+
+spi_gpio_default_init:
+6c9c 70442101 jam 1 ,mem_spi_cs_gpio 
+6c9d 70442203 jam 3 ,mem_spi_si_gpio 
+6c9e 70442300 jam 0 ,mem_spi_so_gpio 
+6c9f 70442402 jam 2 ,mem_spi_sclk_gpio 
+6ca0 7044250b jam 11 ,mem_spi_wp_gpio 
+6ca1 7044260a jam 10 ,mem_spi_hold_gpio 
+6ca2 20600000 rtn 
+
+soft_reset_chip:
+6ca3 70801001 jam 1 ,core_reset 
+6ca4 20600000 rtn 
+
+iic_init_600khz:
+6ca5 70808b05 jam 5 ,core_iicd_scl_low 
+6ca6 70808c07 jam 7 ,core_iicd_scl_high 
+6ca7 70808d07 jam 7 ,core_iicd_start_setup 
+6ca8 70808e07 jam 7 ,core_iicd_start_hold 
+6ca9 70808f07 jam 7 ,core_iicd_stop_setup 
+6caa 70809005 jam 5 ,core_iicd_data_setup 
+6cab 70809100 jam 0 ,core_iicd_data_hold 
+6cac 20600000 rtn 
+
+iic_init_360khz:
+6cad 70808b0c jam 12 ,core_iicd_scl_low 
+6cae 70808c0d jam 13 ,core_iicd_scl_high 
+6caf 70808d0d jam 13 ,core_iicd_start_setup 
+6cb0 70808e0d jam 13 ,core_iicd_start_hold 
+6cb1 70808f0d jam 13 ,core_iicd_stop_setup 
+6cb2 7080900c jam 12 ,core_iicd_data_setup 
+6cb3 70809100 jam 0 ,core_iicd_data_hold 
+6cb4 20600000 rtn 
+
+iicd_init_pin:
+6cb5 20406cd8 call iicd_eeprom_write_enable 
+
+iicd_init_pin_scl_sda:
+6cb6 6fe0c428 fetch 1 ,mem_eeprom_scl_gpio 
+6cb7 d840006c arg gpcfg_iic_scl | gpcfg_pullup ,temp 
+6cb8 20406f21 call gpio_config_function_int 
+6cb9 6fe0c429 fetch 1 ,mem_eeprom_sda_gpio 
+6cba d840006d arg gpcfg_iic_sda | gpcfg_pullup ,temp 
+6cbb 20206f21 branch gpio_config_function_int 
+
+iicd_read_init_pin:
+6cbc 20406cdf call iicd_eeprom_write_disable 
+6cbd 20206cb6 branch iicd_init_pin_scl_sda 
+
+wait_iicd_done:
+6cbe 6ff08128 fetch 1 ,core_dma_status 
+6cbf c302ecbe bbit0 iicd_done ,wait_iicd_done 
+6cc0 20600000 rtn 
+
+set_eeprom_size_2k:
+6cc1 79200028 set1 mark_eeprom_size ,mark 
+6cc2 7043f408 jam 0x08 ,mem_eeprom_block_size 
+6cc3 20600000 rtn 
+
+clear_eeprom_size_2k:
+6cc4 793f8028 set0 mark_eeprom_size ,mark 
+6cc5 7043f420 jam 0x20 ,mem_eeprom_block_size 
+6cc6 20600000 rtn 
+
+iicd_read_eep_data_size_2k:
+6cc7 6fe0c3eb fetch 1 ,mem_eeprom_base 
+6cc8 9a40fe00 iadd regb ,pdata 
+6cc9 67e081e0 store 1 ,mem_addr_mi 
+6cca 20206cce branch iicd_read_eep_size_2k 
+
+iicd_read_eep_size_2k_lcadcode:
+6ccb 6fe101e0 fetch 2 ,mem_addr_mi 
+6ccc 1ff0fe00 byteswap pdata ,pdata 
+6ccd 67e081e0 store 1 ,mem_addr_mi 
+
+iicd_read_eep_size_2k:
+6cce 58000003 setarg 3 
+6ccf 67f10092 store 2 ,core_iicd_txlen 
+6cd0 7001dfa0 jam 0xa0 ,mem_iicd_tbuf 
+6cd1 7001e1a1 jam 0xa1 ,mem_iicd_tbuf + 2 
+6cd2 20206ced branch iicd_read_eep_common 
+
+iicd_write_protect_eep_data:
+6cd3 60490678 storet 2 ,mem_temp 
+6cd4 20406cd8 call iicd_eeprom_write_enable 
+6cd5 68490678 fetcht 2 ,mem_temp 
+6cd6 20406d07 call iicd_write_eep_data 
+6cd7 20206cdf branch iicd_eeprom_write_disable 
+
+iicd_eeprom_write_enable:
+6cd8 6fe0c427 fetch 1 ,mem_eeprom_wp_gpio 
+6cd9 c17f8000 rtneq gpio_disable 
+6cda c3036cdd bbit0 6 ,iicd_wp_gpio_output_low 
+6cdb 580249f0 setarg 150000 
+6cdc 2040235c call sleep 
+
+iicd_wp_gpio_output_low:
+6cdd 6848c427 fetcht 1 ,mem_eeprom_wp_gpio 
+6cde 20206ef7 branch gpio_out_active 
+
+iicd_eeprom_write_disable:
+6cdf 6848c427 fetcht 1 ,mem_eeprom_wp_gpio 
+6ce0 20206ef3 branch gpio_out_inactive 
+
+iicd_read_eep_data:
+6ce1 44e5c019 bpatch patch19_3 ,mem_patch19 
+6ce2 c5146cc7 bmark1 mark_eeprom_size ,iicd_read_eep_data_size_2k 
+6ce3 6fe143eb fetch 2 ,mem_eeprom_base 
+6ce4 9a40fe00 iadd regb ,pdata 
+6ce5 1ff0fe00 byteswap pdata ,pdata 
+6ce6 67e101e0 store 2 ,mem_addr_mi 
+
+iicd_read_eep:
+6ce7 44e64019 bpatch patch19_4 ,mem_patch19 
+6ce8 c5146ccb bmark1 mark_eeprom_size ,iicd_read_eep_size_2k_lcadcode 
+6ce9 58000004 setarg 4 
+6cea 67f10092 store 2 ,core_iicd_txlen 
+6ceb 7001dfa0 jam 0xa0 ,mem_iicd_tbuf 
+6cec 7001e2a1 jam 0xa1 ,mem_iicd_tbuf + 3 
+
+iicd_read_eep_common:
+6ced 580001df setarg mem_iicd_tbuf 
+6cee 67f10094 store 2 ,core_iicd_txaddr 
+6cef 60590098 storet 2 ,core_iicd_rxlen 
+6cf0 62310096 storer rega ,2 ,core_iicd_rxaddr 
+6cf1 58000002 setarg 2 
+6cf2 2a2c000f isolate0 15 ,rega 
+6cf3 7920fe00 setflag true ,0 ,pdata 
+6cf4 67f0808a store 1 ,core_iicd_ctrl 
+6cf5 70800604 jam iicd_start ,core_misc_ctrl 
+6cf6 d8e00005 arg iicd_done ,queue 
+6cf7 20406b07 call decrypt_code 
+6cf8 20406cbe call wait_iicd_done 
+6cf9 2feffe04 isolate1 iicd_crcok ,pdata 
+6cfa 20406b00 call set_ucode_status 
+6cfb c5146d02 bmark1 mark_eeprom_size ,iicd_read_eep_load_code_size_2k 
+
+iicd_inc_addr:
+6cfc 6fe101e0 fetch 2 ,mem_addr_mi 
+6cfd 1ff0fe00 byteswap pdata ,pdata 
+6cfe 9840fe00 iadd temp ,pdata 
+6cff 1ff0fe00 byteswap pdata ,pdata 
+6d00 67e101e0 store 2 ,mem_addr_mi 
+6d01 20600000 rtn 
+
+iicd_read_eep_load_code_size_2k:
+6d02 6fe081e0 fetch 1 ,mem_addr_mi 
+6d03 9840fe00 iadd temp ,pdata 
+6d04 1ff0fe00 byteswap pdata ,pdata 
+6d05 67e101e0 store 2 ,mem_addr_mi 
+6d06 20600000 rtn 
+
+iicd_write_eep_data:
+6d07 6fe143eb fetch 2 ,mem_eeprom_base 
+6d08 9a40fe00 iadd regb ,pdata 
+6d09 67e10670 store 2 ,mem_pdatatemp 
+6d0a 44e6c019 bpatch patch19_5 ,mem_patch19 
+6d0b 60490678 storet 2 ,mem_temp 
+6d0c 6221068f storer rega ,2 ,mem_contr 
+
+iicd_write_eep_loop:
+6d0d 20406d1c call iicd_eep_transparency 
+6d0e 68490688 fetcht 2 ,mem_regb 
+6d0f 6a21068f fetchr rega ,2 ,mem_contr 
+6d10 6fe10670 fetch 2 ,mem_pdatatemp 
+6d11 20406d3d call iicd_write_eep 
+6d12 6fe10688 fetch 2 ,mem_regb 
+6d13 6849068f fetcht 2 ,mem_contr 
+6d14 98408400 iadd temp ,temp 
+6d15 6049068f storet 2 ,mem_contr 
+6d16 68490670 fetcht 2 ,mem_pdatatemp 
+6d17 98408400 iadd temp ,temp 
+6d18 60490670 storet 2 ,mem_pdatatemp 
+6d19 6fe10678 fetch 2 ,mem_temp 
+6d1a 243a6d0d nbranch iicd_write_eep_loop ,blank 
+6d1b 20600000 rtn 
+
+iicd_eep_transparency:
+6d1c 44e74019 bpatch patch19_6 ,mem_patch19 
+6d1d 6fe0c3f4 fetch 1 ,mem_eeprom_block_size 
+6d1e 1fe0ffff increase -1 ,pdata 
+6d1f 68490670 fetcht 2 ,mem_pdatatemp 
+6d20 9841fe00 ior temp ,pdata 
+6d21 1fe0fe01 increase 1 ,pdata 
+6d22 67e1868c store 3 ,mem_regc 
+6d23 6fe10678 fetch 2 ,mem_temp 
+6d24 9840fe00 iadd temp ,pdata 
+6d25 6849868c fetcht 3 ,mem_regc 
+6d26 98467e00 isub temp ,pdata 
+6d27 24216d2e nbranch iicd_eep_deal_short_packet ,positive 
+6d28 67e10678 store 2 ,mem_temp 
+6d29 6fe1868c fetch 3 ,mem_regc 
+6d2a 68490670 fetcht 2 ,mem_pdatatemp 
+6d2b 98467e00 isub temp ,pdata 
+6d2c 67e10688 store 2 ,mem_regb 
+6d2d 20600000 rtn 
+
+iicd_eep_deal_short_packet:
+6d2e 6fe10678 fetch 2 ,mem_temp 
+6d2f 67e10688 store 2 ,mem_regb 
+6d30 58000000 setarg 0 
+6d31 67e10678 store 2 ,mem_temp 
+6d32 20600000 rtn 
+
+iicd_write_eep_size_2k:
+6d33 1a427e00 copy regb ,pdata 
+6d34 18408402 increase 2 ,temp 
+6d35 60590092 storet 2 ,core_iicd_txlen 
+6d36 1a20a3fe increase -2 ,rega 
+6d37 e8418011 ifetcht 3 ,rega 
+6d38 18422400 copy temp ,regb 
+6d39 d84000a0 arg 0xa0 ,temp 
+6d3a e0408011 istoret 1 ,rega 
+6d3b e7e08005 istore 1 ,contw 
+6d3c 20206d4a branch iicd_write_eep_common 
+
+iicd_write_eep:
+6d3d 1fe22400 copy pdata ,regb 
+6d3e 44e7c019 bpatch patch19_7 ,mem_patch19 
+6d3f c5146d33 bmark1 mark_eeprom_size ,iicd_write_eep_size_2k 
+6d40 1a427e00 copy regb ,pdata 
+6d41 18408403 increase 3 ,temp 
+6d42 60590092 storet 2 ,core_iicd_txlen 
+6d43 1a20a3fd increase -3 ,rega 
+6d44 e8418011 ifetcht 3 ,rega 
+6d45 18422400 copy temp ,regb 
+6d46 d84000a0 arg 0xa0 ,temp 
+6d47 e0408011 istoret 1 ,rega 
+6d48 1ff0fe00 byteswap pdata ,pdata 
+6d49 e7e10005 istore 2 ,contw 
+
+iicd_write_eep_common:
+6d4a 62310094 storer rega ,2 ,core_iicd_txaddr 
+6d4b 58000000 setarg 0 
+6d4c 67f10098 store 2 ,core_iicd_rxlen 
+6d4d 70808a01 jam 1 ,core_iicd_ctrl 
+6d4e 70800604 jam iicd_start ,core_misc_ctrl 
+6d4f 20406cbe call wait_iicd_done 
+6d50 e2418011 istorer regb ,3 ,rega 
+
+iic_check_eeprom_standby:
+6d51 44e8401a bpatch patch1a_0 ,mem_patch1a 
+6d52 7001e200 jam 0 ,mem_iicd_tbuf + 3 
+
+iic_check_eeprom_standby_wait:
+6d53 58000001 setarg 1 
+6d54 67f10092 store 2 ,core_iicd_txlen 
+6d55 7001dfa0 jam 0xa0 ,mem_iicd_tbuf 
+6d56 580001df setarg mem_iicd_tbuf 
+6d57 67f10094 store 2 ,core_iicd_txaddr 
+6d58 58000000 setarg 0 
+6d59 67f10098 store 2 ,core_iicd_rxlen 
+6d5a 67f10096 store 2 ,core_iicd_rxaddr 
+6d5b 58000003 setarg 3 
+6d5c 67f0808a store 1 ,core_iicd_ctrl 
+6d5d 70800604 jam iicd_start ,core_misc_ctrl 
+6d5e 20406cbe call wait_iicd_done 
+6d5f 6ff08128 fetch 1 ,core_dma_status 
+6d60 c4030000 rtnbit0 iicd_ack 
+6d61 200005dc nop 1500 
+6d62 6fe081e2 fetch 1 ,mem_iicd_tbuf + 3 
+6d63 1fe0fe01 increase 1 ,pdata 
+6d64 67e081e2 store 1 ,mem_iicd_tbuf + 3 
+6d65 1fe67c28 sub pdata ,40 ,null 
+6d66 24610000 nrtn positive 
+6d67 20206d53 branch iic_check_eeprom_standby_wait 
+
+uarta_init_dma_mem:
+6d68 20407dba call enable_user 
+6d69 20206d6a branch uart_init_dma_mem 
+
+uart_init_dma_mem:
+6d6a 1ff10400 rshift16 pdata ,temp 
+6d6b 20546d8e call uarta_init_rx ,user 
+6d6c 1fef7e00 rshift32 pdata ,pdata 
+6d6d 1ff10400 rshift16 pdata ,temp 
+6d6e 20546d8a call uarta_init_tx ,user 
+6d6f 6ff10050 fetch 2 ,core_clkoff 
+6d70 793ffe0f set0 clock_off_uart ,pdata 
+6d71 67f10050 store 2 ,core_clkoff 
+6d72 20600000 rtn 
+
+uarta_init_baud_rate:
+6d73 67f10052 store uart_baud_len ,core_uart_baud 
+6d74 20600000 rtn 
+
+uarta_calc_baud_rate_config:
+6d75 20406d77 call uart_calc_baud_rate_config 
+6d76 20206d73 branch uarta_init_baud_rate 
+
+uart_calc_baud_rate_config:
+6d77 20406d7c call uart_calc_baud_rate_config_choice_uart_clock 
+6d78 9846fc00 idiv temp 
+6d79 20407d62 call wait_div_end 
+6d7a 1807fe00 quotient pdata 
+6d7b 20600000 rtn 
+
+uart_calc_baud_rate_config_choice_uart_clock:
+6d7c 6ff08043 fetch 1 ,core_uart_clksel 
+6d7d c3006d80 bbit0 uart_clock_select_bit ,uart_calc_baud_rate_config_choice_uart_clock_crystal 
+6d7e 5adc6c00 setarg uart_clock_freq_48m 
+6d7f 20600000 rtn 
+
+uart_calc_baud_rate_config_choice_uart_clock_crystal:
+6d80 596e3600 setarg uart_clock_freq_24m 
+6d81 20600000 rtn 
+
+uart_clock_select_main_freq_crystal:
+6d82 6ff08043 fetch 1 ,core_uart_clksel 
+6d83 1fe17efe and pdata ,uart_clock_select_crystal ,pdata 
+6d84 67f08043 store 1 ,core_uart_clksel 
+6d85 20600000 rtn 
+
+uart_clock_select_main_freq_dpll:
+6d86 6ff08043 fetch 1 ,core_uart_clksel 
+6d87 1fe1fe01 or pdata ,uart_clock_select_dpll ,pdata 
+6d88 67f08043 store 1 ,core_uart_clksel 
+6d89 20600000 rtn 
+
+uarta_init_tx:
+6d8a 67f1005a store 2 ,core_uart_tsaddr 
+6d8b 67f1005e store 2 ,core_uart_twptr 
+6d8c 6059005c storet 2 ,core_uart_teaddr 
+6d8d 20600000 rtn 
+
+uarta_init_rx:
+6d8e 67f10054 store 2 ,core_uart_rsaddr 
+6d8f 67f10058 store 2 ,core_uart_rrptr 
+6d90 60590056 storet 2 ,core_uart_readdr 
+6d91 20600000 rtn 
+
+uarta_prepare_tx:
+6d92 6951005a fetchr contus ,2 ,core_uart_tsaddr 
+6d93 6a11005c fetchr contue ,2 ,core_uart_teaddr 
+6d94 6871005e fetchr contu ,2 ,core_uart_twptr 
+6d95 20600000 rtn 
+
+uarta_prepare_rx:
+6d96 69510054 fetchr contus ,2 ,core_uart_rsaddr 
+6d97 6a110056 fetchr contue ,2 ,core_uart_readdr 
+6d98 68710058 fetchr contu ,2 ,core_uart_rrptr 
+6d99 20600000 rtn 
+
+uarta_send:
+6d9a 6071005e storer contu ,2 ,core_uart_twptr 
+6d9b 20600000 rtn 
+
+uarta_rxdone:
+6d9c 60710058 storer contu ,2 ,core_uart_rrptr 
+6d9d 20600000 rtn 
+
+uarta_clear_current_rx:
+6d9e 20406d96 call uarta_prepare_rx 
+6d9f 6ff10112 fetch 2 ,core_uart_rxitems 
+6da0 98608600 iadd contu ,contu 
+6da1 20206d9c branch uarta_rxdone 
+
+uarta_prepare_tx_register_push:
+6da2 20406da6 call uart_register_push 
+6da3 20206d92 branch uarta_prepare_tx 
+
+uarta_send_register_pop:
+6da4 20406d9a call uarta_send 
+6da5 20206daa branch uart_register_pop 
+
+uart_register_push:
+6da6 60610697 storer contu ,2 ,mem_contu 
+6da7 61410695 storer contus ,2 ,mem_contue 
+6da8 62010693 storer contue ,2 ,mem_contus 
+6da9 20600000 rtn 
+
+uart_register_pop:
+6daa 68610697 fetchr contu ,2 ,mem_contu 
+6dab 69410695 fetchr contus ,2 ,mem_contue 
+6dac 6a010693 fetchr contue ,2 ,mem_contus 
+6dad 20600000 rtn 
+
+wait_uarttx:
+6dae 6ff1010e fetch 2 ,core_uart_txitems 
+6daf 243a6dae nbranch wait_uarttx ,blank 
+6db0 20600000 rtn 
+
+uart_copy_tx_bytes_fast:
+6db1 1f227e00 deposit loopcnt 
+6db2 207a0000 rtn blank 
+
+uart_copy_tx_bytes_fast_loop:
+6db3 1f20f3f8 increase -8 ,loopcnt 
+6db4 20416dbe call uart_tx_8_bytes ,positive 
+6db5 20628000 rtn zero 
+6db6 20216db3 branch uart_copy_tx_bytes_fast_loop ,positive 
+6db7 1f20f208 increase 8 ,loopcnt 
+
+uart_copy_tx_bytes_fast_loop_four:
+6db8 1f20f3fc increase -4 ,loopcnt 
+6db9 20416dc1 call uart_tx_4_bytes ,positive 
+6dba 20628000 rtn zero 
+6dbb 20216db8 branch uart_copy_tx_bytes_fast_loop_four ,positive 
+6dbc 1f20f204 increase 4 ,loopcnt 
+6dbd 20206dc4 branch uart_copy_tx_bytes 
+
+uart_tx_8_bytes:
+6dbe efe40006 ifetch 8 ,contr 
+6dbf e7e40003 istore 8 ,contu 
+6dc0 20600000 rtn 
+
+uart_tx_4_bytes:
+6dc1 efe20006 ifetch 4 ,contr 
+6dc2 e7e20003 istore 4 ,contu 
+6dc3 20600000 rtn 
+
+uart_copy_tx_bytes:
+6dc4 1f227e00 deposit loopcnt 
+6dc5 207a0000 rtn blank 
+
+uart_copy_tx_bytes_loop:
+6dc6 efe08006 ifetch 1 ,contr 
+6dc7 e7e08003 istore 1 ,contu 
+6dc8 c2006dc6 loop uart_copy_tx_bytes_loop 
+6dc9 20600000 rtn 
+
+uart_copy_rx_bytes_fast:
+6dca 1f227e00 deposit loopcnt 
+6dcb 207a0000 rtn blank 
+
+uart_copy_rx_bytes_fast_loop:
+6dcc 1f20f3f8 increase -8 ,loopcnt 
+6dcd 20416dd7 call uart_rx_8_bytes ,positive 
+6dce 20628000 rtn zero 
+6dcf 20216dcc branch uart_copy_rx_bytes_fast_loop ,positive 
+6dd0 1f20f208 increase 8 ,loopcnt 
+
+uart_copy_rx_bytes_fast_loop_four:
+6dd1 1f20f3fc increase -4 ,loopcnt 
+6dd2 20416dda call uart_rx_4_bytes ,positive 
+6dd3 20628000 rtn zero 
+6dd4 20216dd1 branch uart_copy_rx_bytes_fast_loop_four ,positive 
+6dd5 1f20f204 increase 4 ,loopcnt 
+6dd6 20206ddd branch uart_copy_rx_bytes 
+
+uart_rx_8_bytes:
+6dd7 efe40003 ifetch 8 ,contu 
+6dd8 e7e40005 istore 8 ,contw 
+6dd9 20600000 rtn 
+
+uart_rx_4_bytes:
+6dda efe20003 ifetch 4 ,contu 
+6ddb e7e20005 istore 4 ,contw 
+6ddc 20600000 rtn 
+
+uart_copy_rx_bytes:
+6ddd 1f227e00 deposit loopcnt 
+6dde 207a0000 rtn blank 
+
+uart_copy_rx_bytes_loop:
+6ddf efe08003 ifetch 1 ,contu 
+6de0 e7e08005 istore 1 ,contw 
+6de1 c2006ddf loop uart_copy_rx_bytes_loop 
+6de2 20600000 rtn 
+
+app_store_nvram_event:
+6de3 70066f3d jam bt_evt_store_nvram ,mem_fifo_temp 
+6de4 2020782b branch ui_ipc_send_event 
+
+check_51cmd_update_device_record:
+6de5 44e8c01a bpatch patch1a_1 ,mem_patch1a 
+6de6 6fe0c3fa fetch 1 ,mem_nv_data_number 
+6de7 207a0000 rtn blank 
+6de8 20406e87 call check_nvram 
+6de9 2042ee8d call init_device_list ,zero 
+6dea 20407dc0 call disable_user2 
+6deb 20406e18 call nvram_find_addr_from_bd_list 
+
+write_device_record:
+6dec 6fe0c3fa fetch 1 ,mem_nv_data_number 
+6ded 1fe22600 icopy regc 
+6dee 684943f8 fetcht 2 ,mem_nv_data_ptr 
+6def 60490033 storet 2 ,mem_list_item_ptr 
+
+write_device_loop_find:
+6df0 1a627e00 copy regc ,pdata 
+6df1 203a6de3 branch app_store_nvram_event ,blank 
+6df2 1a60a7ff increase -1 ,regc 
+6df3 18422200 copy temp ,rega 
+6df4 efe08011 ifetch 1 ,rega 
+6df5 68488031 fetcht 1 ,mem_select_list_item 
+6df6 98467c00 isub temp ,null 
+6df7 2042ee00 call set_index_finded_device ,zero 
+6df8 20216dfc branch write_device_loop_find0 ,positive 
+6df9 efe08011 ifetch 1 ,rega 
+6dfa 1fe0fe01 increase 1 ,pdata 
+6dfb e7e08011 istore 1 ,rega 
+
+write_device_loop_find0:
+6dfc 68490033 fetcht 2 ,mem_list_item_ptr 
+6dfd 18408422 increase nv_data_len ,temp 
+6dfe 60490033 storet 2 ,mem_list_item_ptr 
+6dff 20206df0 branch write_device_loop_find 
+
+set_index_finded_device:
+6e00 58000000 setarg 0 
+6e01 e7e08011 istore 1 ,rega 
+6e02 6fe08032 fetch 1 ,mem_temp_reconn_record 
+6e03 e7e08005 istore 1 ,contw 
+6e04 c099ee0d bne rec_3_mode ,set_index_finded_device_ble_mode 
+
+set_index_find_device_master_addr:
+6e05 efe30006 ifetch 6 ,contr 
+6e06 e7e40005 istore 8 ,contw 
+6e07 58000000 setarg 0 
+6e08 e7e40005 istore 8 ,contw 
+6e09 1a420c00 copy regb ,contr 
+
+store_rec_data_common:
+6e0a 20407c8f call memcpy16 
+6e0b 18007c01 force 1 ,null 
+6e0c 20600000 rtn 
+
+set_index_finded_device_ble_mode:
+6e0d c01b6e11 beq rec_4_mode_random_resolvable_private_address ,set_index_finded_device_irk 
+6e0e c01bee15 beq rec_4_mode_random_non_resolvable_private_address ,set_index_finded_device_ediv 
+6e0f da40428a arg mem_le_ltk ,regb 
+6e10 20206e05 branch set_index_find_device_master_addr 
+
+set_index_finded_device_irk:
+6e11 d8c0430d arg mem_le_irk ,contr 
+6e12 20407c8f call memcpy16 
+
+store_ble_rec_data_common:
+6e13 d8c0428a arg mem_le_ltk ,contr 
+6e14 20206e0a branch store_rec_data_common 
+
+set_index_finded_device_ediv:
+6e15 d8c04305 arg mem_le_rand ,contr 
+6e16 20407c8f call memcpy16 
+6e17 20206e13 branch store_ble_rec_data_common 
+
+nvram_find_addr_from_bd_list:
+6e18 44e9401a bpatch patch1a_2 ,mem_patch1a 
+6e19 20407dbc call disable_user 
+6e1a 6fe0c3fa fetch 1 ,mem_nv_data_number 
+6e1b 207a0000 rtn blank 
+6e1c 44e9c01a bpatch patch1a_3 ,mem_patch1a 
+6e1d 6fe144e9 fetch 2 ,mem_ui_state_map 
+6e1e c4048000 rtnbit0 ui_state_ble_connected 
+
+find_addr_from_bd_list_ble_mode:
+6e1f 6fe0c2cb fetch 1 ,mem_le_conn_peer_addr_type 
+6e20 c0006e34 beq master_public_addr ,find_addr_from_bd_list_public_device_addr 
+6e21 6fe0817d fetch 1 ,mem_le_plap + 5 
+6e22 2fe180c0 compare 0xc0 ,pdata ,0xc0 
+6e23 2020ee27 branch find_addr_from_bd_list_static_addr ,true 
+6e24 2fe18040 compare 0x40 ,pdata ,0xc0 
+6e25 2020ee39 branch find_addr_from_bd_list_random_addr ,true 
+6e26 20206e2e branch find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy 
+
+find_addr_from_bd_list_static_addr:
+6e27 20366e2b branch find_addr_from_bd_list_static_addr_reconnect ,user2 
+6e28 6fe0c2c2 fetch 1 ,mem_le_preq_init_key_distribution 
+6e29 c300ee34 bbit0 le_initator_irk_bit ,find_addr_from_bd_list_public_device_addr 
+6e2a 20206e2e branch find_addr_from_bd_list_static_addr_sc_or_legacy 
+
+find_addr_from_bd_list_static_addr_reconnect:
+6e2b 20406e34 call find_addr_from_bd_list_public_device_addr 
+6e2c 20740000 rtn user 
+6e2d 20206e2e branch find_addr_from_bd_list_static_addr_sc_or_legacy 
+
+find_addr_from_bd_list_static_addr_sc_or_legacy:
+
+find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy:
+6e2e 6fe0c2fe fetch 1 ,mem_le_pairing_mode 
+6e2f c283ee31 bbit1 le_pairing_mode_secure_connect_bit ,find_addr_from_bd_list_random_non_resolvable_private_address_sc 
+6e30 20206e37 branch find_addr_from_bd_list_random_non_resolvable_private_address 
+
+find_addr_from_bd_list_static_addr_sc:
+
+find_addr_from_bd_list_random_non_resolvable_private_address_sc:
+6e31 6fe30178 fetch 6 ,mem_le_plap 
+6e32 67e44305 store 8 ,mem_le_rand 
+6e33 20206e37 branch find_addr_from_bd_list_random_non_resolvable_private_address 
+
+find_addr_from_bd_list_public_device_addr:
+6e34 70003235 jam rec_4_mode_static_address ,mem_temp_reconn_record 
+6e35 6fe30178 fetch 6 ,mem_le_plap 
+6e36 20206e3b branch find_addr_from_bd_list_common 
+
+find_addr_from_bd_list_random_non_resolvable_private_address:
+6e37 70003237 jam rec_4_mode_random_non_resolvable_private_address ,mem_temp_reconn_record 
+6e38 20206e3b branch find_addr_from_bd_list_common 
+
+find_addr_from_bd_list_random_addr:
+6e39 70003236 jam rec_4_mode_random_resolvable_private_address ,mem_temp_reconn_record 
+6e3a 20206e3b branch find_addr_from_bd_list_common 
+
+find_addr_from_bd_list_common:
+6e3b 44ea401a bpatch patch1a_4 ,mem_patch1a 
+6e3c 6fe143f8 fetch 2 ,mem_nv_data_ptr 
+6e3d e840803f ifetcht 1 ,pdata 
+6e3e 1fe0fe01 pincrease 1 
+6e3f 67e10033 store 2 ,mem_list_item_ptr 
+6e40 60488031 storet 1 ,mem_select_list_item 
+6e41 6fe0c3fa fetch 1 ,mem_nv_data_number 
+6e42 1fe22600 icopy regc 
+
+nvram_find_addr_from_list:
+6e43 6fe10033 fetch 2 ,mem_list_item_ptr 
+6e44 1fe22200 copy pdata ,rega 
+6e45 20406e53 call nvram_find_addr_from_list_compare 
+6e46 20740000 rtn user 
+6e47 68490033 fetcht 2 ,mem_list_item_ptr 
+6e48 18408422 increase nv_data_len ,temp 
+6e49 60490033 storet 2 ,mem_list_item_ptr 
+6e4a 184085ff increase -1 ,temp 
+6e4b efe08002 ifetch 1 ,temp 
+6e4c 67e08031 store 1 ,mem_select_list_item 
+6e4d 1a60a7ff increase -1 ,regc 
+6e4e 2422ee43 nbranch nvram_find_addr_from_list ,zero 
+6e4f 6fe0c3fa fetch 1 ,mem_nv_data_number 
+6e50 1fe0ffff pincrease decreased_one 
+6e51 67e08031 store 1 ,mem_select_list_item 
+6e52 20600000 rtn 
+
+nvram_find_addr_from_list_compare:
+6e53 6fe08032 fetch 1 ,mem_temp_reconn_record 
+6e54 c099ee5a bne rec_3_mode ,find_addr_from_list_compare_ble_mode 
+
+find_master_addr_from_list_compare:
+6e55 da400032 arg mem_temp_reconn_record ,regb 
+6e56 df200007 arg 7 ,loopcnt 
+6e57 20407d64 call string_compare 
+6e58 2022fdba branch enable_user ,zero 
+6e59 20600000 rtn 
+
+find_addr_from_list_compare_ble_mode:
+6e5a c01b6e5d beq rec_4_mode_random_resolvable_private_address ,find_irk_form_list_compare 
+6e5b c01bee78 beq rec_4_mode_random_non_resolvable_private_address ,find_ediv_form_list_compare 
+6e5c 20206e55 branch find_master_addr_from_list_compare 
+
+find_irk_form_list_compare:
+6e5d e8408011 ifetcht 1 ,rega 
+6e5e 98467c00 isub temp ,null 
+6e5f 24628000 nrtn zero 
+6e60 d8a006a1 arg mem_le_prand ,contw 
+6e61 df200010 arg 16 ,loopcnt 
+6e62 20407ca1 call clear_mem 
+6e63 6fe1817b fetch 3 ,mem_le_plap + 3 
+6e64 67e186a1 store 3 ,mem_le_prand 
+6e65 20406e6f call genernate_master_macaddress 
+6e66 6fe106be fetch 2 ,mem_le_aes_128 + 13 
+6e67 1ff0fe00 byteswap pdata ,pdata 
+6e68 1fed0400 lshift8 pdata ,temp 
+6e69 efe08006 ifetch 1 ,contr 
+6e6a 9840fe00 iadd temp ,pdata 
+6e6b 68498178 fetcht 3 ,mem_le_plap 
+6e6c 98467c00 isub temp ,null 
+6e6d 2022fdba branch enable_user ,zero 
+6e6e 20600000 rtn 
+
+genernate_master_macaddress:
+6e6f d8c006a1 arg mem_le_prand ,contr 
+6e70 20407361 call load_data128 
+6e71 efe08011 ifetch 1 ,rega 
+6e72 20407362 call load_regext 
+6e73 18006c38 force 0x38 ,aes_ctrl 
+6e74 18006c00 force 0x0 ,aes_ctrl 
+6e75 204072cf call wait_aes 
+6e76 d8a006b1 arg mem_le_aes_128 ,contw 
+6e77 20207375 branch store_aes_result 
+
+find_ediv_form_list_compare:
+6e78 e8408011 ifetcht 1 ,rega 
+6e79 98467c00 isub temp ,null 
+6e7a 24628000 nrtn zero 
+6e7b 18c22200 copy contr ,rega 
+6e7c 18c0a608 add contr ,8 ,regc 
+6e7d da404305 arg mem_le_rand ,regb 
+6e7e df200008 arg 8 ,loopcnt 
+6e7f 20407d64 call string_compare 
+6e80 2022fdba branch enable_user ,zero 
+6e81 1a622200 copy regc ,rega 
+6e82 da40430d arg mem_le_irk ,regb 
+6e83 df200008 arg 8 ,loopcnt 
+6e84 20407d64 call string_compare 
+6e85 2022fdba branch enable_user ,zero 
+6e86 20600000 rtn 
+
+check_nvram:
+6e87 6fe143f8 fetch 2 ,mem_nv_data_ptr 
+6e88 e840803f ifetcht 1 ,pdata 
+6e89 1fe0fe22 pincrease nv_data_len 
+6e8a efe0803f ifetch 1 ,pdata 
+6e8b 98467c00 isub temp ,null 
+6e8c 20600000 rtn 
+
+init_device_list:
+6e8d 6fe0c3fa fetch 1 ,mem_nv_data_number 
+6e8e 1fe27200 icopy loopcnt 
+6e8f 684943f8 fetcht 2 ,mem_nv_data_ptr 
+6e90 58000000 setarg 0 
+
+init_device_list_loop:
+6e91 e7e08002 istore 1 ,temp 
+6e92 18408422 increase nv_data_len ,temp 
+6e93 1fe0fe01 pincrease 1 
+6e94 c2006e91 loop init_device_list_loop 
+6e95 20600000 rtn 
+
+load_device_list_mode_4:
+6e96 20407dbe call enable_user2 
+6e97 20406e18 call nvram_find_addr_from_bd_list 
+6e98 24346ea1 nbranch clear_ltk_exists ,user 
+6e99 6fe10033 fetch 2 ,mem_list_item_ptr 
+6e9a 1fe08c01 add pdata ,1 ,contr 
+6e9b d8a0430d arg mem_le_irk ,contw 
+6e9c 20407c8f call memcpy16 
+6e9d d8a0428a arg mem_le_ltk ,contw 
+6e9e 20407c8f call memcpy16 
+6e9f 70429a01 jam 1 ,mem_ltk_exists 
+6ea0 20600000 rtn 
+
+clear_ltk_exists:
+6ea1 70429a00 jam 0 ,mem_ltk_exists 
+6ea2 20600000 rtn 
+
+eeprom_store_le_reconn_info:
+6ea3 70003234 jam rec_4_mode ,mem_record_bt_mode 
+6ea4 20206ea5 branch eeprom_store_reconn_info 
+
+eeprom_store_reconn_info:
+6ea5 6fe0c3cb fetch 1 ,mem_device_option 
+6ea6 c0056de5 beq dvc_op_module ,check_51cmd_update_device_record 
+6ea7 c0045c42 beq dvc_op_mouse ,mouse_store_remote_bdaddr 
+6ea8 20600000 rtn 
+
+get_gpio_wakeup_index:
+6ea9 18417e1f and temp ,0x1f ,pdata 
+6eaa 1fe37e00 rshift pdata ,pdata 
+6eab d8a00016 arg mem_gpio_wakeup_cfg ,contw 
+6eac 98a08a00 iadd contw ,contw 
+6ead de0000f0 arg 0xf0 ,alarm 
+6eae 284c0000 isolate0 0 ,temp 
+6eaf 20608000 rtn true 
+6eb0 de00000f arg 0xf ,alarm 
+6eb1 20600000 rtn 
+
+gpio_set_wake_by_current_state:
+6eb2 44eac01a bpatch patch1a_5 ,mem_patch1a 
+6eb3 79200407 set1 gpio_active_bit ,temp 
+6eb4 20406ee6 call gpio_get_bit 
+6eb5 7d208407 nsetflag true ,gpio_active_bit ,temp 
+
+gpio_set_wake:
+6eb6 44eb401a bpatch patch1a_6 ,mem_patch1a 
+6eb7 18467cff sub temp ,ui_button_gpio_disable ,null 
+6eb8 20628000 rtn zero 
+6eb9 d9000004 arg 4 ,debug 
+6eba 284ffe07 isolate1 gpio_active_bit ,temp 
+6ebb 2020eebd branch gpio_set_wake_high ,true 
+6ebc d9000002 arg 2 ,debug 
+
+gpio_set_wake_high:
+6ebd 20406ea9 call get_gpio_wakeup_index 
+6ebe 284c0000 isolate0 0 ,temp 
+6ebf 2020eec1 branch gpio_set_wake_low4bit ,true 
+6ec0 19121000 lshift4 debug ,debug 
+
+gpio_set_wake_low4bit:
+6ec1 efe08005 ifetch 1 ,contw 
+6ec2 9e017e00 iand alarm ,pdata 
+6ec3 9901fe00 ior debug ,pdata 
+6ec4 e7e08005 istore 1 ,contw 
+6ec5 20600000 rtn 
+
+gpio_set_low_pullup:
+6ec6 44ebc01a bpatch patch1a_7 ,mem_patch1a 
+6ec7 18467cff sub temp ,ui_button_gpio_disable ,null 
+6ec8 20628000 rtn zero 
+6ec9 d9000001 arg 1 ,debug 
+6eca 20406ea9 call get_gpio_wakeup_index 
+6ecb 284c0000 isolate0 0 ,temp 
+6ecc 2020eece branch gpio_set_low_pullup_low4bit ,true 
+6ecd 19121000 lshift4 debug ,debug 
+
+gpio_set_low_pullup_low4bit:
+6ece efe08005 ifetch 1 ,contw 
+6ecf 9e017e00 iand alarm ,pdata 
+6ed0 9901fe00 ior debug ,pdata 
+6ed1 e7e08005 istore 1 ,contw 
+6ed2 20600000 rtn 
+
+gpio_clr_wake:
+6ed3 44ec401b bpatch patch1b_0 ,mem_patch1b 
+6ed4 18467cff sub temp ,ui_button_gpio_disable ,null 
+6ed5 20628000 rtn zero 
+6ed6 20406ea9 call get_gpio_wakeup_index 
+6ed7 efe08005 ifetch 1 ,contw 
+6ed8 9e017e00 iand alarm ,pdata 
+6ed9 e7e08005 istore 1 ,contw 
+6eda 20600000 rtn 
+
+gpio_config_input_nowake:
+6edb 20406ed3 call gpio_clr_wake 
+6edc 20206ee0 branch gpio_config_input_without_wake 
+
+gpio_config_input:
+6edd 18467cff sub temp ,ui_button_gpio_disable ,null 
+6ede 20628000 rtn zero 
+6edf 2455eeb6 ncall gpio_set_wake ,wake 
+
+gpio_config_input_without_wake:
+6ee0 20406f14 call gpio_addr 
+6ee1 58000000 setarg 0 
+6ee2 284ffe07 isolate1 gpio_active_bit ,temp 
+6ee3 7d20fe06 nsetflag true ,6 ,pdata 
+6ee4 7920fe07 setflag true ,7 ,pdata 
+6ee5 20206f0d branch gpio_write 
+
+gpio_get_bit:
+6ee6 44ecc01b bpatch patch1b_1 ,mem_patch1b 
+6ee7 d8a0811c arg core_gpio_in ,contw 
+6ee8 18410e07 and temp ,0x07 ,queue 
+6ee9 18497e00 rshift3 temp ,pdata 
+6eea 1fe17e03 and_into 3 ,pdata 
+6eeb 98a08a00 iadd contw ,contw 
+6eec efe08005 ifetch 1 ,contw 
+6eed 284ffe07 isolate1 gpio_active_bit ,temp 
+6eee 2020eef1 branch gpio_get_bit_reverse ,true 
+6eef afec0000 qisolate0 pdata 
+6ef0 20600000 rtn 
+
+gpio_get_bit_reverse:
+6ef1 afefffff qisolate1 pdata 
+6ef2 20600000 rtn 
+
+gpio_out_inactive:
+6ef3 18467cff sub temp ,ui_button_gpio_disable ,null 
+6ef4 20628000 rtn zero 
+6ef5 2fcffe07 isolate1 gpio_active_bit ,null 
+6ef6 20206efa branch gpio_out_flag 
+
+gpio_config_output:
+
+gpio_out_active:
+6ef7 18467cff sub temp ,ui_button_gpio_disable ,null 
+6ef8 20628000 rtn zero 
+6ef9 2fcc0007 isolate0 gpio_active_bit ,null 
+
+gpio_out_flag:
+6efa 58000000 setarg 0 
+6efb 7d20fe07 nsetflag true ,gpio_active_bit ,pdata 
+6efc 98428400 ixor temp ,temp 
+
+gpio_out:
+6efd 20406f14 call gpio_addr 
+6efe 5800003f setarg gpcfg_output_high 
+6eff 284ffe07 isolate1 gpio_active_bit ,temp 
+6f00 7920fe00 setflag true ,0 ,pdata 
+6f01 20206f0d branch gpio_write 
+
+gpio_check_active:
+6f02 18467cff sub temp ,ui_button_gpio_disable ,null 
+6f03 2022fdc4 branch disable_true ,zero 
+6f04 20406f14 call gpio_addr 
+6f05 efe08005 ifetch 1 ,contw 
+6f06 c2806f09 bbit1 0 ,gpio_check_active_high 
+6f07 284c0007 isolate0 gpio_active_bit ,temp 
+6f08 20600000 rtn 
+
+gpio_check_active_high:
+6f09 284ffe07 isolate1 gpio_active_bit ,temp 
+6f0a 20600000 rtn 
+
+gpio_set_analog:
+6f0b 20406f14 call gpio_addr 
+6f0c 580000c0 setarg gpcfg_no_ie 
+
+gpio_write:
+6f0d e7e08005 istore 1 ,contw 
+6f0e 20600000 rtn 
+
+gpio_set_high_impedance:
+6f0f 18467cff sub temp ,ui_button_gpio_disable ,null 
+6f10 20628000 rtn zero 
+6f11 20406f14 call gpio_addr 
+6f12 58000000 setarg gpcfg_high_impedance 
+6f13 20206f0d branch gpio_write 
+
+gpio_addr:
+6f14 18417e3f and temp ,0x3f ,pdata 
+6f15 1fe67c0f sub pdata ,gpio_number + -1 ,null 
+6f16 24216f1a nbranch gpio_addr_ext ,positive 
+6f17 d8a08070 arg core_gpio_conf ,contw 
+
+gpio_addr_next:
+6f18 98a08a00 iadd contw ,contw 
+6f19 20600000 rtn 
+
+gpio_addr_ext:
+6f1a d8a080d4 arg core_gpio_conf_hi ,contw 
+6f1b 1fe0fff0 increase -16 ,pdata 
+6f1c 20206f18 branch gpio_addr_next 
+
+gpio_config_param:
+6f1d 1fe104ff and pdata ,0xff ,temp 
+6f1e 1fecfe00 rshift8 pdata ,pdata 
+6f1f 20206f21 branch gpio_config_function_int 
+
+gpio_config_function:
+6f20 c4038000 rtnbit0 gpio_active_bit 
+
+gpio_config_function_int:
+6f21 1fe17e3f and_into 0x3f ,pdata 
+6f22 1fe67c0f sub pdata ,gpio_number + -1 ,null 
+6f23 24216f28 nbranch gpio_config_function_int_ext ,positive 
+6f24 d8a08070 arg core_gpio_conf ,contw 
+
+gpio_config_function_int_next:
+6f25 98a08a00 iadd contw ,contw 
+6f26 e0408005 istoret 1 ,contw 
+6f27 20600000 rtn 
+
+gpio_config_function_int_ext:
+6f28 d8a080d4 arg core_gpio_conf_hi ,contw 
+6f29 1fe0fff0 increase -16 ,pdata 
+6f2a 20206f25 branch gpio_config_function_int_next 
+
+gpio_get_config:
+6f2b 1841043f and_into 0x3f ,temp 
+6f2c 18467c0f sub temp ,gpio_number + -1 ,null 
+6f2d 24216f32 nbranch gpio_get_config_ext ,positive 
+6f2e 58008070 setarg core_gpio_conf 
+
+gpio_get_config_next:
+6f2f 98408c00 iadd temp ,contr 
+6f30 efe08006 ifetch 1 ,contr 
+6f31 20600000 rtn 
+
+gpio_get_config_ext:
+6f32 580080d4 setarg core_gpio_conf_hi 
+6f33 184085f0 increase -16 ,temp 
+6f34 20206f2f branch gpio_get_config_next 
+
+gpio_set_before_lpm:
+6f35 df200010 arg gpio_number ,loopcnt 
+6f36 d8c08070 arg core_gpio_conf ,contr 
+
+setgpio_loop:
+6f37 18c20a00 copy contr ,contw 
+6f38 efe08006 ifetch 1 ,contr 
+6f39 c00fef48 beq gpcfg_spid_miso ,setgpio_pullup 
+6f3a c0106f48 beq gpcfg_spid_ncs ,setgpio_pullup 
+6f3b c010ef48 beq gpcfg_spid_sck ,setgpio_pullup 
+6f3c c0116f48 beq gpcfg_spid_mosi ,setgpio_pullup 
+6f3d c011ef48 beq gpcfg_spid_sdio ,setgpio_pullup 
+6f3e c0166f48 beq gpcfg_iic_scl ,setgpio_pullup 
+6f3f c016ef48 beq gpcfg_iic_sda ,setgpio_pullup 
+6f40 c0006f48 beq gpcfg_input ,setgpio_pullup 
+
+setgpio_loop_end:
+6f41 c2006f37 loop setgpio_loop 
+6f42 dfe080dc arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+6f43 98c67c00 isub contr ,null 
+6f44 20628000 rtn zero 
+
+gpio_set_before_lpm_ext:
+6f45 df200008 arg gpio_number_ext ,loopcnt 
+6f46 d8c080d4 arg core_gpio_conf_hi ,contr 
+6f47 20206f37 branch setgpio_loop 
+
+setgpio_pullup:
+6f48 58000040 setarg gpcfg_pullup 
+6f49 e7e08005 istore 1 ,contw 
+6f4a 20206f41 branch setgpio_loop_end 
+
+setgpio_pulldown:
+6f4b 58000080 setarg gpcfg_pulldown 
+6f4c e7e08005 istore 1 ,contw 
+6f4d 20206f41 branch setgpio_loop_end 
+
+sadc_calibration:
+6f4e 44ed401b bpatch patch1b_2 ,mem_patch1b 
+6f4f 20758000 rtn wake 
+6f50 708a0777 jam 0x77 ,core_gpadc_ctrl 
+6f51 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
+6f52 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+6f53 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+6f54 67f080cd store 1 ,core_sadc_clkdiv 
+6f55 20406f97 call sadc_read 
+6f56 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+
+sadc_cal_read:
+6f57 df200007 arg 7 ,loopcnt 
+6f58 da204412 arg mem_adc_cal_c0 ,rega 
+6f59 708a0a05 jam 0x05 ,core_gpadc_cfg2 
+
+sadc_cal_read_loop:
+6f5a 6ff08a0c fetch 1 ,core_gpadc_status 
+6f5b e7e08011 istore 1 ,rega 
+6f5c 1a20a201 increase 1 ,rega 
+6f5d 6ff08a0a fetch 1 ,core_gpadc_cfg2 
+6f5e 1fe0fe20 increase 0x20 ,pdata 
+6f5f 67f08a0a store 1 ,core_gpadc_cfg2 
+6f60 c2006f5a loop sadc_cal_read_loop 
+6f61 708a0700 jam 0x00 ,core_gpadc_ctrl 
+6f62 20600000 rtn 
+
+sadc_cal_write:
+6f63 6ff080cc fetch 1 ,core_sadc_ctrl 
+6f64 79207e01 set1 1 ,pdata 
+6f65 67f080cc store 1 ,core_sadc_ctrl 
+6f66 df200007 arg 7 ,loopcnt 
+6f67 da204412 arg mem_adc_cal_c0 ,rega 
+6f68 708a0a15 jam 0x15 ,core_gpadc_cfg2 
+
+sadc_cal_write_loop:
+6f69 efe08011 ifetch 1 ,rega 
+6f6a 67f08a09 store 1 ,core_gpadc_cfg1 
+6f6b 1a20a201 increase 1 ,rega 
+6f6c 6ff08a0a fetch 1 ,core_gpadc_cfg2 
+6f6d 1fe0fe20 increase 0x20 ,pdata 
+6f6e 67f08a0a store 1 ,core_gpadc_cfg2 
+6f6f c2006f69 loop sadc_cal_write_loop 
+6f70 6ff080cc fetch 1 ,core_sadc_ctrl 
+6f71 793ffe01 set0 1 ,pdata 
+6f72 67f080cc store 1 ,core_sadc_ctrl 
+6f73 20600000 rtn 
+
+adc_init_data:
+6f74 44edc01b bpatch patch1b_3 ,mem_patch1b 
+6f75 6fe401fd fetch 8 ,mem_otp_adc 
+6f76 203a6f79 branch adc_init_cal_data_default ,blank 
+6f77 67e443fd store 8 ,mem_3v_adc_io_data 
+6f78 20600000 rtn 
+
+adc_init_cal_data_default:
+6f79 58000bbe setarg 0x0bbe 
+6f7a 67e143fd store 2 ,mem_3v_adc_io_data 
+6f7b 580003f0 setarg 0x03f0 
+6f7c 67e14401 store 2 ,mem_1v_adc_io_data 
+6f7d 5800027e setarg 0x027e 
+6f7e 67e143ff store 2 ,mem_2v_adc_hvin_data 
+6f7f 580003c4 setarg 0x03c4 
+6f80 67e14403 store 2 ,mem_3v_adc_hvin_data 
+6f81 20600000 rtn 
+
+enable_adc:
+6f82 44ee401b bpatch patch1b_4 ,mem_patch1b 
+6f83 20406f63 call sadc_cal_write 
+6f84 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+6f85 793ffe07 set0 7 ,pdata 
+6f86 67f08a09 store 1 ,core_gpadc_cfg1 
+6f87 708a0777 jam 0x77 ,core_gpadc_ctrl 
+6f88 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+6f89 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+6f8a 20406f90 call sadc_channel 
+6f8b 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+6f8c 67f080cd store 1 ,core_sadc_clkdiv 
+6f8d 20406f97 call sadc_read 
+6f8e 7080cd00 jam 0 ,core_sadc_clkdiv 
+6f8f 20206fa1 branch sadc_dma 
+
+sadc_channel:
+6f90 6fe0c408 fetch 1 ,mem_adc_channel 
+6f91 1ff27e00 lshift4 pdata ,pdata 
+6f92 68588a0b fetcht 1 ,core_gpadc_cfg3 
+6f93 1841040f and_into 0x0f ,temp 
+6f94 98418400 ior temp ,temp 
+6f95 60588a0b storet 1 ,core_gpadc_cfg3 
+6f96 20600000 rtn 
+
+sadc_read:
+6f97 7080cc03 jam 0x03 ,core_sadc_ctrl 
+
+sadc_read_wait:
+6f98 6ff08129 fetch 1 ,core_perf_status 
+6f99 c302ef98 bbit0 saradc_done ,sadc_read_wait 
+6f9a 68590164 fetcht 2 ,core_sadc_data 
+6f9b 6049440a storet 2 ,mem_adc_current_value 
+6f9c 7080cc06 jam 0x06 ,core_sadc_ctrl 
+
+sadc_read_wait2:
+6f9d 6ff08129 fetch 1 ,core_perf_status 
+6f9e c282ef9d bbit1 saradc_done ,sadc_read_wait2 
+6f9f 7080cc00 jam 0x00 ,core_sadc_ctrl 
+6fa0 20600000 rtn 
+
+sadc_dma:
+6fa1 6fe0c411 fetch 1 ,mem_adc_dma_enable 
+6fa2 207a0000 rtn blank 
+6fa3 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+6fa4 79207e07 set1 7 ,pdata 
+6fa5 67f08a09 store 1 ,core_gpadc_cfg1 
+6fa6 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+6fa7 67f080cd store 1 ,core_sadc_clkdiv 
+6fa8 6fe1440d fetch 2 ,mem_adc_saddr_ptr 
+6fa9 67f100ce store 2 ,core_sadc_saddr 
+6faa 6fe1440f fetch 2 ,mem_adc_eaddr_ptr 
+6fab 67f100d0 store 2 ,core_sadc_eaddr 
+6fac 7080cc0b jam 0x0b ,core_sadc_ctrl 
+6fad 200003e8 nop 1000 
+6fae 7080cc03 jam 0x03 ,core_sadc_ctrl 
+6faf 20600000 rtn 
+
+vdd_calculate_by_mode:
+6fb0 44eec01b bpatch patch1b_5 ,mem_patch1b 
+6fb1 6fe0c407 fetch 1 ,mem_adc_config_flag 
+6fb2 c000efb5 beq adc_config_hvin ,vdd_calculate_hvin 
+6fb3 c0016fbb beq adc_config_gpio ,vdd_calculate_io 
+6fb4 20600000 rtn 
+
+vdd_calculate_hvin:
+6fb5 580003e8 setarg 1000 
+6fb6 67e14405 store 2 ,mem_reference_voltage 
+6fb7 68494403 fetcht 2 ,mem_3v_adc_hvin_data 
+6fb8 6fe143ff fetch 2 ,mem_2v_adc_hvin_data 
+6fb9 da6007d0 arg 2000 ,regc 
+6fba 20206fc0 branch vdd_calculate 
+
+vdd_calculate_io:
+6fbb 580007d0 setarg 2000 
+6fbc 67e14405 store 2 ,mem_reference_voltage 
+6fbd 684943fd fetcht 2 ,mem_3v_adc_io_data 
+6fbe 6fe14401 fetch 2 ,mem_1v_adc_io_data 
+6fbf da6003e8 arg 1000 ,regc 
+
+vdd_calculate:
+6fc0 98462200 isub temp ,rega 
+6fc1 6fe1440a fetch 2 ,mem_adc_current_value 
+6fc2 98467e00 isub temp ,pdata 
+6fc3 24216fcd nbranch vdd_calculate1 ,positive 
+6fc4 68494405 fetcht 2 ,mem_reference_voltage 
+6fc5 984fa400 imul32 temp ,regb 
+6fc6 1a627e00 copy regc ,pdata 
+6fc7 9a2ffe00 imul32 rega ,pdata 
+6fc8 9a40fe00 iadd regb ,pdata 
+
+vdd_calculate2:
+6fc9 9a26fc00 idiv rega 
+6fca 20407d62 call wait_div_end 
+6fcb 1807fe00 quotient pdata 
+6fcc 20600000 rtn 
+
+vdd_calculate1:
+6fcd 18427e00 copy temp ,pdata 
+6fce 6849440a fetcht 2 ,mem_adc_current_value 
+6fcf 98467e00 isub temp ,pdata 
+6fd0 68494405 fetcht 2 ,mem_reference_voltage 
+6fd1 984fa400 imul32 temp ,regb 
+6fd2 1a627e00 copy regc ,pdata 
+6fd3 9a2ffe00 imul32 rega ,pdata 
+6fd4 9a467e00 isub regb ,pdata 
+6fd5 24217dca nbranch set_pdata_0 ,positive 
+6fd6 20206fc9 branch vdd_calculate2 
+
+adc_bat_percent_lowpower_out:
+6fd7 efe40011 ifetch 8 ,rega 
+6fd8 67e40670 store 8 ,mem_pdatatemp 
+6fd9 6fe10670 fetch 2 ,mem_pdatatemp 
+6fda 68490672 fetcht 2 ,mem_pdatatemp + 2 
+6fdb 98462200 isub temp ,rega 
+6fdc 6fe10676 fetch 2 ,mem_pdatatemp + 6 
+6fdd 98462400 isub temp ,regb 
+6fde 68490674 fetcht 2 ,mem_pdatatemp + 4 
+6fdf 98467c00 isub temp ,null 
+6fe0 24416fe7 ncall adc_set_low_power_flag ,positive 
+6fe1 1a4ffe64 mul32 regb ,100 ,pdata 
+6fe2 9a26fc00 idiv rega 
+6fe3 20407d62 call wait_div_end 
+6fe4 1807fe00 quotient pdata 
+6fe5 205a6fef call adc_set_no_power_flag ,blank 
+6fe6 20600000 rtn 
+
+adc_set_low_power_flag:
+6fe7 6fe0c40c fetch 1 ,mem_adc_power_flag 
+6fe8 79207e00 set1 0 ,pdata 
+6fe9 67e0c40c store 1 ,mem_adc_power_flag 
+6fea 20600000 rtn 
+
+adc_clear_low_power_flag:
+6feb 6fe0c40c fetch 1 ,mem_adc_power_flag 
+6fec 793ffe00 set0 0 ,pdata 
+6fed 67e0c40c store 1 ,mem_adc_power_flag 
+6fee 20600000 rtn 
+
+adc_set_no_power_flag:
+6fef 6848c40c fetcht 1 ,mem_adc_power_flag 
+6ff0 79200401 set1 1 ,temp 
+6ff1 6048c40c storet 1 ,mem_adc_power_flag 
+6ff2 20600000 rtn 
+
+adc_clear_no_power_flag:
+6ff3 6848c40c fetcht 1 ,mem_adc_power_flag 
+6ff4 793f8401 set0 1 ,temp 
+6ff5 6048c40c storet 1 ,mem_adc_power_flag 
+6ff6 20600000 rtn 
+
+keyscan_key_init:
+6ff7 6fe1442c fetch 2 ,mem_key_num_ptr 
+6ff8 efe0803f ifetch 1 ,pdata 
+
+keyscan_key_init_next:
+6ff9 207a0000 rtn blank 
+6ffa 1fe27200 copy pdata ,loopcnt 
+6ffb 6fe1442c fetch 2 ,mem_keyscan_ptr 
+6ffc 1fe0fe03 increase 3 ,pdata 
+6ffd 1fe22200 copy pdata ,rega 
+
+keyscan_key_init_lp1:
+6ffe e8408011 ifetcht 1 ,rega 
+6fff 20406edd call gpio_config_input 
+7000 1a20a201 increase key_conf_struct_len ,rega 
+7001 c2006ffe loop keyscan_key_init_lp1 
+
+keyscan_key_init_end:
+7002 20600000 rtn 
+
+keyscan_scan_key:
+7003 6fe1442c fetch 2 ,mem_keyscan_ptr 
+7004 1fe0fe03 increase 3 ,pdata 
+7005 1fe22200 copy pdata ,rega 
+7006 18002400 force 0 ,regb 
+7007 58000000 setarg 0 
+7008 67e106f1 store 2 ,mem_key_value_temp 
+
+keyscan_scan_key_lp1:
+7009 e8408011 ifetcht 1 ,rega 
+700a 20406ee6 call gpio_get_bit 
+700b 44ef401b bpatch patch1b_6 ,mem_patch1b 
+700c 6fe106f1 fetch 2 ,mem_key_value_temp 
+700d 1a420e00 copy regb ,queue 
+700e f920fe00 qsetflag true ,pdata 
+700f 67e106f1 store 2 ,mem_key_value_temp 
+7010 1a20a201 increase key_conf_struct_len ,rega 
+7011 1a40a401 increase 1 ,regb 
+7012 6fe1442c fetch 2 ,mem_key_num_ptr 
+7013 efe0803f ifetch 1 ,pdata 
+
+keyscan_scan_key_lp1_next:
+7014 9a42fc00 ixor regb ,null 
+7015 2422f009 nbranch keyscan_scan_key_lp1 ,zero 
+7016 6fe106f1 fetch 2 ,mem_key_value_temp 
+7017 6849442e fetcht 2 ,mem_key_value_retention 
+7018 9842fc00 ixor temp ,null 
+7019 20628000 rtn zero 
+701a 20207dba branch enable_user 
+
+keyscan_process_lpm_before:
+701b 6fe1442c fetch 2 ,mem_key_num_ptr 
+701c efe0803f ifetch 1 ,pdata 
+
+keyscan_process_lpm_before_next:
+701d 207a0000 rtn blank 
+701e 1fe27200 copy pdata ,loopcnt 
+701f 6fe1442c fetch 2 ,mem_keyscan_ptr 
+7020 1fe0fe03 increase 3 ,pdata 
+7021 1fe22200 copy pdata ,rega 
+
+keyscan_process_lpm_before_lp1:
+7022 e8408011 ifetcht 1 ,rega 
+7023 20406eb2 call gpio_set_wake_by_current_state 
+7024 1a20a201 increase key_conf_struct_len ,rega 
+7025 c2007022 loop keyscan_process_lpm_before_lp1 
+
+keyscan_process_lpm_before_end:
+7026 20600000 rtn 
+
+keyscan_key_process:
+7027 d8e00009 arg key_scan_timer ,queue 
+7028 20407cef call timer_check 
+7029 247a0000 nrtn blank 
+702a 58000020 setarg 0x20 
+702b d8e00009 arg key_scan_timer ,queue 
+702c 20407ce1 call timer_init 
+702d 78547c00 disable user 
+702e 2040701b call keyscan_process_lpm_before 
+702f 44efc01b bpatch patch1b_7 ,mem_patch1b 
+7030 6fe1442c fetch 2 ,mem_key_num_ptr 
+7031 efe0803f ifetch 1 ,pdata 
+
+keyscan_key_process_next:
+7032 207a0000 rtn blank 
+7033 20407003 call keyscan_scan_key 
+7034 243477a5 nbranch lpm_button_clean_wake_lock ,user 
+7035 204077a3 call lpm_button_get_wake_lock 
+7036 78547c00 disable user 
+7037 6fe106f1 fetch 2 ,mem_key_value_temp 
+7038 67e106f8 store 2 ,mem_key_value_temp4 
+7039 7006fa00 jam 0 ,mem_key_value_temp6 
+703a 18000e00 force 0 ,queue 
+
+keyscan_key_lp1:
+703b 6fe1442e fetch 2 ,mem_key_value_retention 
+703c 1fe30400 rshift pdata ,temp 
+703d 6049442e storet 2 ,mem_key_value_retention 
+703e 1fe17e01 and pdata ,0x01 ,pdata 
+703f 684906f8 fetcht 2 ,mem_key_value_temp4 
+7040 18412201 and temp ,0x01 ,rega 
+7041 18430400 rshift temp ,temp 
+7042 604906f8 storet 2 ,mem_key_value_temp4 
+7043 9a22fc00 ixor rega ,null 
+7044 2442f050 ncall keyscan_send_key_data ,zero 
+7045 6fe1442c fetch 2 ,mem_key_num_ptr 
+7046 efe0803f ifetch 1 ,pdata 
+
+keyscan_key_lp1_next:
+7047 684886fa fetcht 1 ,mem_key_value_temp6 
+7048 18408401 increase 1 ,temp 
+7049 604886fa storet 1 ,mem_key_value_temp6 
+704a 18420e00 copy temp ,queue 
+704b 98e2fc00 ixor queue ,null 
+704c 2422f03b nbranch keyscan_key_lp1 ,zero 
+704d 6fe106f1 fetch 2 ,mem_key_value_temp 
+704e 67e1442e store 2 ,mem_key_value_retention 
+704f 20600000 rtn 
+
+keyscan_send_key_data:
+7050 44f0401c bpatch patch1c_0 ,mem_patch1c 
+7051 6fe1442c fetch 2 ,mem_keyscan_ptr 
+7052 1fe0fe01 increase 1 ,pdata 
+7053 efe1003f ifetch 2 ,pdata 
+7054 20207d79 branch callback_func 
+
+pwm_init:
+7055 6ff08042 fetch 1 ,core_clksel 
+7056 9a21fe00 ior rega ,pdata 
+7057 67f08042 store 1 ,core_clksel 
+7058 6ff10050 fetch 2 ,core_clkoff 
+7059 793ffe0d set0 clock_off_pwm ,pdata 
+705a 67f10050 store 2 ,core_clkoff 
+
+delay_nop100:
+705b 20000064 nop 100 
+705c 20600000 rtn 
+
+pwm_clk_set:
+705d 6ff08042 fetch 1 ,core_clksel 
+705e c2837062 bbit1 6 ,pwm_24m_clk_set 
+705f c283f064 bbit1 7 ,pwm_33k_clk_set 
+
+pwm_12m_clk_set:
+7060 58b71b00 setarg pwm_12mhz 
+7061 20600000 rtn 
+
+pwm_24m_clk_set:
+7062 596e3600 setarg pwm_24mhz 
+7063 20600000 rtn 
+
+pwm_33k_clk_set:
+7064 580080e8 setarg pwm_33khz 
+7065 20600000 rtn 
+
+pwm_out_set:
+7066 68498672 fetcht 3 ,mem_pdatatemp + 2 
+7067 2040705d call pwm_clk_set 
+7068 9846fc00 idiv temp 
+7069 20407d62 call wait_div_end 
+706a 18078400 quotient temp 
+706b 6fe08675 fetch 1 ,mem_pdatatemp + 5 
+706c 984ffe00 imul32 temp ,pdata 
+706d 1fe6fc64 div pdata ,100 
+706e 20407d62 call wait_div_end 
+706f 1807a200 quotient rega 
+7070 18427e00 copy temp ,pdata 
+7071 9a262400 isub rega ,regb 
+7072 6fe08671 fetch 1 ,mem_pdatatemp + 1 
+7073 2040707a call pwm_duty_cycle_set 
+7074 6fe08670 fetch 1 ,mem_pdatatemp 
+7075 68488671 fetcht 1 ,mem_pdatatemp + 1 
+7076 1841040f and_into 0x0f ,temp 
+7077 184d0400 lshift8 temp ,temp 
+7078 9841fe00 ior temp ,pdata 
+7079 202070ba branch pwm_enable 
+
+pwm_duty_cycle_set:
+707a 98000e00 iforce queue 
+707b 20407088 call pwm_duty_cycle_set_without_autoload 
+707c 2020707d branch pwm_autoload_set 
+
+pwm_autoload_set:
+707d 6ff080be fetch 1 ,core_pwm_autoload 
+707e f9207e00 qset1 pdata 
+707f 67f080be store 1 ,core_pwm_autoload 
+7080 68588042 fetcht 1 ,core_clksel 
+7081 284ffe07 isolate1 7 ,temp 
+7082 2040f086 call delay_1clk_of_33k ,true 
+7083 f93ffe00 qset0 pdata 
+7084 67f080be store 1 ,core_pwm_autoload 
+7085 20600000 rtn 
+
+delay_1clk_of_33k:
+7086 200001e0 nop 480 
+7087 20600000 rtn 
+
+pwm_duty_cycle_set_without_autoload:
+7088 1fe17e0f and_into 0x0f ,pdata 
+7089 d8a0809c arg core_pwm_pcnt0 ,contw 
+708a 1feffe04 mul32 pdata ,4 ,pdata 
+708b 98a08a00 iadd contw ,contw 
+708c 1a227e00 copy rega ,pdata 
+708d e7e10005 istore 2 ,contw 
+708e 1a427e00 copy regb ,pdata 
+708f e7e10005 istore 2 ,contw 
+7090 20600000 rtn 
+
+pwm_enable_in_syncmode:
+7091 1a4c8e00 rshift8 regb ,queue 
+7092 204070af call pwm_init_bit_set 
+7093 1a4c8e00 rshift8 regb ,queue 
+7094 204070a9 call pwm_syncmode_set 
+7095 1a2c8e00 rshift8 rega ,queue 
+7096 7820fc00 enable true 
+7097 204070aa call pwm_syncmode_set_process 
+7098 1a227e00 deposit rega 
+7099 204070b5 call pwm_gpio_select 
+709a 1a427e00 deposit regb 
+709b 202070ba branch pwm_enable 
+
+pwm_disable_in_syncmode:
+709c 1a227e00 deposit rega 
+709d 204070bd call pwm_disable 
+709e 1a427e00 deposit regb 
+709f 204070bd call pwm_disable 
+70a0 1a2c8e00 rshift8 rega ,queue 
+70a1 7840fc00 disable true 
+70a2 204070aa call pwm_syncmode_set_process 
+70a3 1a4c8e00 rshift8 regb ,queue 
+70a4 7840fc00 disable true 
+70a5 204070b0 call pwm_init_bit_set_process 
+70a6 1a4c8e00 rshift8 regb ,queue 
+70a7 7840fc00 disable true 
+70a8 202070aa branch pwm_syncmode_set_process 
+
+pwm_syncmode_set:
+70a9 28effe07 isolate1 7 ,queue 
+
+pwm_syncmode_set_process:
+70aa 18e10e0f and queue ,0x0f ,queue 
+70ab 6ff080bc fetch 1 ,core_pwm_sync 
+70ac f920fe00 qsetflag true ,pdata 
+70ad 67f080bc store 1 ,core_pwm_sync 
+70ae 20600000 rtn 
+
+pwm_init_bit_set:
+70af 28effe06 isolate1 6 ,queue 
+
+pwm_init_bit_set_process:
+70b0 18e10e0f and queue ,0x0f ,queue 
+70b1 6ff0809b fetch 1 ,core_pwm_init 
+70b2 f920fe00 qsetflag true ,pdata 
+70b3 67f0809b store 1 ,core_pwm_init 
+70b4 20600000 rtn 
+
+pwm_gpio_select:
+70b5 204070c5 call pwm_select_channel 
+
+pwm_gpio_select_process:
+70b6 1fed7e00 lshift8 pdata ,pdata 
+70b7 18e08410 add queue ,gpcfg_pwm_out0 ,temp 
+70b8 9841fe00 ior temp ,pdata 
+70b9 20206f1d branch gpio_config_param 
+
+pwm_enable:
+70ba 78347c00 enable user 
+70bb 204070b5 call pwm_gpio_select 
+70bc 202070c0 branch pwm_set_select 
+
+pwm_disable:
+70bd 78547c00 disable user 
+70be 204070c5 call pwm_select_channel 
+70bf 202070c0 branch pwm_set_select 
+
+pwm_set_select:
+70c0 18e10e0f and queue ,0x0f ,queue 
+70c1 6ff0809a fetch 1 ,core_pwm_en 
+70c2 f9347e00 qsetflag user ,pdata 
+70c3 67f0809a store 1 ,core_pwm_en 
+70c4 20600000 rtn 
+
+pwm_select_channel:
+70c5 1fec8e00 rshift8 pdata ,queue 
+70c6 18e10e0f and queue ,0x0f ,queue 
+70c7 20600000 rtn 
+
+wdt_init_config:
+70c8 1fe20400 copy pdata ,temp 
+70c9 44f0c01c bpatch patch1c_1 ,mem_patch1c 
+70ca 204070d5 call wdt_set_enable 
+70cb 58000800 setarg 2048 
+70cc 98467e00 isub temp ,pdata 
+70cd 1fe20400 copy pdata ,temp 
+70ce 18518400 rshift4 temp ,temp 
+70cf 60588004 storet 1 ,core_write_wdt 
+70d0 20000578 nop 1400 
+70d1 1fe20400 copy pdata ,temp 
+70d2 1841040f and_into 0x0f ,temp 
+70d3 6058800b storet 1 ,core_write_wdt2 
+70d4 20600000 rtn 
+
+wdt_set_enable:
+70d5 78367c00 enable user2 
+70d6 202070d9 branch wdt_init_set 
+
+wdt_set_disable:
+70d7 44f1401c bpatch patch1c_2 ,mem_patch1c 
+70d8 78567c00 disable user2 
+
+wdt_init_set:
+70d9 6ff08043 fetch 1 ,core_config 
+70da 79367e03 setflag user2 ,3 ,pdata 
+70db 67f08043 store 1 ,core_config 
+70dc 20600000 rtn 
+
+nec61212_init:
+70dd d8400031 arg fun_nec_enable | fun_nec_clk_divide_24 ,temp 
+
+nec_init_config:
+70de 67f20062 store 4 ,core_nec_start_addr 
+70df 67f10066 store 2 ,core_nec_rptr 
+70e0 60588061 storet 1 ,core_nec_ctrl 
+70e1 20600000 rtn 
+
+nec_check_rxbuff_size:
+70e2 6ff1012c fetch 2 ,core_nec_rxitem 
+70e3 20600000 rtn 
+
+nec_prepare_read:
+70e4 68710066 fetchr contu ,2 ,core_nec_rptr 
+70e5 69510062 fetchr contus ,2 ,core_nec_start_addr 
+70e6 6a110064 fetchr contue ,2 ,core_nec_end_addr 
+70e7 20600000 rtn 
+
+nec_read_done:
+70e8 60710066 storer contu ,2 ,core_nec_rptr 
+70e9 20600000 rtn 
+
+nec_parse_nec61212:
+70ea 20407dba call enable_user 
+70eb dd600000 arg 0 ,rege 
+70ec 204070e2 call nec_check_rxbuff_size 
+70ed c001712c beq 2 ,nec_parse_nec61212_check_timeout 
+70ee 1fe67c04 sub pdata ,4 ,null 
+70ef 20610000 rtn positive 
+70f0 204070e4 call nec_prepare_read 
+70f1 e8410003 ifetcht 2 ,contu 
+70f2 5800a654 setarg nec61212_data2repeat_time 
+70f3 20407135 call nec_check_pulse_range_legal_default_deviation 
+70f4 2421711a nbranch nec_parse_nec61212_check_repeat_data ,positive 
+70f5 1b020400 copy regd ,temp 
+70f6 58017f8e setarg nec61212_repeat2repeat_time 
+70f7 20407135 call nec_check_pulse_range_legal_default_deviation 
+70f8 2421711a nbranch nec_parse_nec61212_check_repeat_data ,positive 
+70f9 1b020400 copy regd ,temp 
+70fa 58002328 setarg nec61212_boot_code_start_time 
+70fb 20407135 call nec_check_pulse_range_legal_default_deviation 
+70fc 20217111 branch nec_parse_nec61212_error_data ,positive 
+70fd e8410003 ifetcht 2 ,contu 
+70fe 58001194 setarg nec61212_boot_code_end_time 
+70ff 20407135 call nec_check_pulse_range_legal_default_deviation 
+7100 20217111 branch nec_parse_nec61212_error_data ,positive 
+7101 204070e2 call nec_check_rxbuff_size 
+7102 1fe67c85 sub pdata ,133 ,null 
+7103 20610000 rtn positive 
+7104 df200020 arg 32 ,loopcnt 
+
+nec_parse_nec61212_data:
+7105 e8410003 ifetcht 2 ,contu 
+7106 58000230 setarg nec61212_data_bit_1_start_time 
+7107 20407135 call nec_check_pulse_range_legal_default_deviation 
+7108 20217111 branch nec_parse_nec61212_error_data ,positive 
+7109 e8410003 ifetcht 2 ,contu 
+710a 5800069a setarg nec61212_data_bit_1_end_time 
+710b 20407135 call nec_check_pulse_range_legal_default_deviation 
+710c 24217116 nbranch nec_parse_nec61212_add_bit1 ,positive 
+710d 1b020400 copy regd ,temp 
+710e 58000230 setarg nec61212_data_bit_0_end_time 
+710f 20407135 call nec_check_pulse_range_legal_default_deviation 
+7110 24217117 nbranch nec_parse_nec61212_add_bit0 ,positive 
+
+nec_parse_nec61212_error_data:
+7111 1b020400 copy regd ,temp 
+7112 5800ffff setarg nec61212_timeout_time 
+7113 98467c00 isub temp ,null 
+7114 2022f131 branch nec_parse_nec61212_check_timeout_cb ,zero 
+7115 202070e8 branch nec_read_done 
+
+nec_parse_nec61212_add_bit1:
+7116 79205620 set1 32 ,rege 
+
+nec_parse_nec61212_add_bit0:
+7117 1d635600 rshift rege ,rege 
+7118 c2007105 loop nec_parse_nec61212_data 
+7119 20207125 branch nec_parse_nec61212_check_stop_bit 
+
+nec_parse_nec61212_check_repeat_data:
+711a 204070e2 call nec_check_rxbuff_size 
+711b 1fe67c07 sub pdata ,7 ,null 
+711c 20610000 rtn positive 
+711d e8410003 ifetcht 2 ,contu 
+711e 58002328 setarg nec61212_repeat_start_time 
+711f 20407135 call nec_check_pulse_range_legal_default_deviation 
+7120 20217111 branch nec_parse_nec61212_error_data ,positive 
+7121 e8410003 ifetcht 2 ,contu 
+7122 580008ca setarg nec61212_repeat_end_time 
+7123 20407135 call nec_check_pulse_range_legal_default_deviation 
+7124 20217111 branch nec_parse_nec61212_error_data ,positive 
+
+nec_parse_nec61212_check_stop_bit:
+7125 e8410003 ifetcht 2 ,contu 
+7126 58000230 setarg nec61212_stop_time 
+7127 20407135 call nec_check_pulse_range_legal_default_deviation 
+7128 20217111 branch nec_parse_nec61212_error_data ,positive 
+7129 204070e8 call nec_read_done 
+712a 1a627e00 copy regc ,pdata 
+712b 20207d79 branch callback_func 
+
+nec_parse_nec61212_check_timeout:
+712c 204070e4 call nec_prepare_read 
+712d e8410003 ifetcht 2 ,contu 
+712e 5800ffff setarg nec61212_timeout_time 
+712f 98467c00 isub temp ,null 
+7130 24628000 nrtn zero 
+
+nec_parse_nec61212_check_timeout_cb:
+7131 204070e8 call nec_read_done 
+7132 20407dbc call disable_user 
+7133 1a627e00 copy regc ,pdata 
+7134 20207d79 branch callback_func 
+
+nec_check_pulse_range_legal_default_deviation:
+7135 6a40c435 fetchr regb ,1 ,mem_nec_decode_error_value 
+
+nec_check_pulse_range_legal:
+7136 18423000 copy temp ,regd 
+7137 9a4fa400 imul32 regb ,regb 
+7138 18438400 lshift temp ,temp 
+7139 98462200 isub temp ,rega 
+713a 2441713e ncall nec_check_pulse_range_legal_data_negative ,positive 
+713b 1a2ffe64 mul32 rega ,100 ,pdata 
+713c 9a467c00 isub regb ,null 
+713d 20600000 rtn 
+
+nec_check_pulse_range_legal_data_negative:
+713e 1a262200 sub rega ,0 ,rega 
+713f 20600000 rtn 
+
+function_g2:
+7140 44f1c01c bpatch patch1c_3 ,mem_patch1c 
+7141 70023050 jam 80 ,mem_aes_cmac_data_length 
+7142 d8a00231 arg mem_dat ,contw 
+7143 d8c042ab arg mem_le_srand ,contr 
+7144 20407c8f call memcpy16 
+7145 d8c0448f arg mem_sc_pubkey_local_x_256 ,contr 
+7146 20407c8d call memcpy32 
+7147 d8c005fe arg mem_le_pubkey_remote_x_256 ,contr 
+7148 20407c8d call memcpy32 
+7149 204071fb call inverse_memdat 
+714a d8c00158 arg mem_le_mrand ,contr 
+714b 204071f6 call store_inverse_k 
+714c 204071c1 call function_aes_cmac 
+714d d8a006d1 arg mem_aes_cmac_temp ,contw 
+714e 204071f2 call load_inverse_result 
+714f 580f4240 setarg 1000000 
+7150 1fe22200 copy pdata ,rega 
+7151 6fe206d1 fetch 4 ,mem_aes_cmac_temp 
+7152 9a26fc00 idiv rega 
+7153 20407d62 call wait_div_end 
+7154 18077e00 remainder pdata 
+7155 67e205fa store 4 ,mem_gkey 
+7156 20600000 rtn 
+
+function_f6_eb:
+7157 70023041 jam 65 ,mem_aes_cmac_data_length 
+7158 d8a00231 arg mem_dat ,contw 
+7159 204071a6 call store_addr_common_a 
+715a 204071a1 call store_addr_common_b 
+715b 6fe1c2c5 fetch 3 ,mem_le_pres + 1 
+715c e7e18005 istore 3 ,contw 
+715d 20407167 call get_r 
+715e d8c00158 arg mem_le_mrand ,contr 
+715f 20407c8f call memcpy16 
+7160 d8c042ab arg mem_le_srand ,contr 
+7161 20407c8f call memcpy16 
+7162 204071fb call inverse_memdat 
+7163 d8c006f1 arg mem_le_mackey ,contr 
+7164 d8a006a1 arg mem_aes_cmac_k ,contw 
+7165 20407c8f call memcpy16 
+7166 202071c1 branch function_aes_cmac 
+
+get_r:
+7167 6fe242ff fetch 4 ,mem_le_tk 
+7168 e7e20005 istore 4 ,contw 
+7169 20407c9b call memset0_4 
+716a 20207c9a branch memset0_8 
+
+function_f6_ea:
+716b 44f2401c bpatch patch1c_4 ,mem_patch1c 
+716c 70023041 jam 65 ,mem_aes_cmac_data_length 
+716d d8a00231 arg mem_dat ,contw 
+716e 204071a1 call store_addr_common_b 
+716f 204071a6 call store_addr_common_a 
+7170 6fe1c2be fetch 3 ,mem_le_preq + 1 
+7171 e7e18005 istore 3 ,contw 
+7172 20407167 call get_r 
+7173 d8c042ab arg mem_le_srand ,contr 
+7174 20407c8f call memcpy16 
+7175 d8c00158 arg mem_le_mrand ,contr 
+7176 20407c8f call memcpy16 
+7177 204071fb call inverse_memdat 
+7178 d8c006f1 arg mem_le_mackey ,contr 
+7179 d8a006a1 arg mem_aes_cmac_k ,contw 
+717a 20407c8f call memcpy16 
+717b 204071c1 call function_aes_cmac 
+717c d8a006d1 arg mem_aes_cmac_temp ,contw 
+717d 202071f2 branch load_inverse_result 
+
+function_f5:
+717e 70023020 jam 32 ,mem_aes_cmac_data_length 
+717f d8c0063e arg mem_le_dhkey_256 ,contr 
+7180 d8a00231 arg mem_dat ,contw 
+7181 20407c8d call memcpy32 
+7182 204071fb call inverse_memdat 
+7183 d8c005e9 arg mem_le_slat ,contr 
+7184 204071f6 call store_inverse_k 
+7185 204071c1 call function_aes_cmac 
+7186 d8a006a1 arg mem_aes_cmac_k ,contw 
+7187 20407375 call store_aes_result 
+7188 d8400001 arg 1 ,temp 
+7189 20407190 call function_f5_common 
+718a d8a0428a arg mem_le_ltk ,contw 
+718b 204071f2 call load_inverse_result 
+718c d8400000 arg 0 ,temp 
+718d 20407190 call function_f5_common 
+718e d8a006f1 arg mem_le_mackey ,contw 
+718f 20207375 branch store_aes_result 
+
+function_f5_common:
+7190 44f2c01c bpatch patch1c_5 ,mem_patch1c 
+7191 70023035 jam 53 ,mem_aes_cmac_data_length 
+7192 58000100 setarg 0x100 
+7193 67e10231 store 2 ,mem_dat 
+7194 204071a1 call store_addr_common_b 
+7195 204071a6 call store_addr_common_a 
+7196 d8c042ab arg mem_le_srand ,contr 
+7197 20407c8f call memcpy16 
+7198 d8c00158 arg mem_le_mrand ,contr 
+7199 20407c8f call memcpy16 
+719a 58006c65 setarg 0x6c65 
+719b e7e10005 istore 2 ,contw 
+719c 58006274 setarg 0x6274 
+719d e7e10005 istore 2 ,contw 
+719e e0408005 istoret 1 ,contw 
+719f 204071fb call inverse_memdat 
+71a0 202071c1 branch function_aes_cmac 
+
+store_addr_common_b:
+71a1 6fe342db fetch 6 ,mem_le_lap 
+71a2 e7e30005 istore 6 ,contw 
+71a3 6fe0c2d2 fetch 1 ,mem_le_conn_own_addr_type 
+71a4 e7e08005 istore 1 ,contw 
+71a5 20600000 rtn 
+
+store_addr_common_a:
+71a6 6fe30178 fetch 6 ,mem_le_plap 
+71a7 e7e30005 istore 6 ,contw 
+71a8 6fe0c2cb fetch 1 ,mem_le_conn_peer_addr_type 
+71a9 e7e08005 istore 1 ,contw 
+71aa 20600000 rtn 
+
+function_f4_ca:
+71ab 70023041 jam 65 ,mem_aes_cmac_data_length 
+71ac 6fe0c4d0 fetch 1 ,mem_passkey_1bit 
+71ad 67e08231 store 1 ,mem_dat 
+71ae d8c0448f arg mem_sc_pubkey_local_x_256 ,contr 
+71af 20407c8d call memcpy32 
+71b0 d8c005fe arg mem_le_pubkey_remote_x_256 ,contr 
+71b1 20407c8d call memcpy32 
+71b2 204071fb call inverse_memdat 
+71b3 d8c00158 arg mem_le_mrand ,contr 
+71b4 204071f6 call store_inverse_k 
+71b5 202071c1 branch function_aes_cmac 
+
+function_f4_cb:
+71b6 70023041 jam 65 ,mem_aes_cmac_data_length 
+71b7 6fe0c4d0 fetch 1 ,mem_passkey_1bit 
+71b8 67e08231 store 1 ,mem_dat 
+71b9 d8c005fe arg mem_le_pubkey_remote_x_256 ,contr 
+71ba 20407c8d call memcpy32 
+71bb d8c0448f arg mem_sc_pubkey_local_x_256 ,contr 
+71bc 20407c8d call memcpy32 
+71bd 204071fb call inverse_memdat 
+71be d8c042ab arg mem_le_srand ,contr 
+71bf 204071f6 call store_inverse_k 
+71c0 202071c1 branch function_aes_cmac 
+
+function_aes_cmac:
+71c1 44f3401c bpatch patch1c_6 ,mem_patch1c 
+71c2 20407210 call function_aes_cmac_generate_subkey 
+71c3 6fe08230 fetch 1 ,mem_aes_cmac_data_length 
+71c4 1fe20400 copy pdata ,temp 
+
+function_ceil16:
+71c5 1fe0fe0f increase 15 ,pdata 
+71c6 1ff1fe00 rshift4 pdata ,pdata 
+71c7 1fe22400 copy pdata ,regb 
+71c8 203a71d3 branch function_aes_cmac_set_flag_0_balnk ,blank 
+71c9 18417e0f and temp ,0x0f ,pdata 
+71ca 243a71d6 nbranch function_aes_cmac_set_flag_0 ,blank 
+71cb da6006b1 arg mem_aes_cmac_k1 ,regc 
+71cc dfe00231 arg mem_dat ,pdata 
+71cd 1fe0fff0 increase -16 ,pdata 
+71ce 9840a200 iadd temp ,rega 
+71cf d8a006e1 arg mem_aes_cmac_m_last ,contw 
+71d0 df200004 arg 4 ,loopcnt 
+71d1 20407ca9 call xor_loop 
+71d2 202071e1 branch function_aes_cmac_aes 
+
+function_aes_cmac_set_flag_0_balnk:
+71d3 da400001 arg 1 ,regb 
+71d4 da200000 arg 0 ,rega 
+71d5 202071d7 branch function_aes_cmac_set_flag_0_common 
+
+function_aes_cmac_set_flag_0:
+71d6 1841220f and temp ,0x0f ,rega 
+
+function_aes_cmac_set_flag_0_common:
+71d7 dfe00231 arg mem_dat ,pdata 
+71d8 9840fe00 iadd temp ,pdata 
+71d9 9a260c00 isub rega ,contr 
+71da d8a006d1 arg mem_aes_cmac_temp ,contw 
+71db 20407236 call function_aes_cmac_padding 
+71dc da6006c1 arg mem_aes_cmac_k2 ,regc 
+71dd da2006d1 arg mem_aes_cmac_temp ,rega 
+71de d8a006e1 arg mem_aes_cmac_m_last ,contw 
+71df df200004 arg 4 ,loopcnt 
+71e0 20407ca9 call xor_loop 
+
+function_aes_cmac_aes:
+71e1 2040736f call aes_clear_data 
+71e2 204072da call aes_init 
+71e3 d8c00231 arg mem_dat ,contr 
+
+function_aes_cmac_aes_loop:
+71e4 1a40a5ff increase -1 ,regb 
+71e5 1a427e00 deposit regb 
+71e6 203a71ea branch function_aes_cmac_aes_loop_end ,blank 
+71e7 20407361 call load_data128 
+71e8 204072d4 call do_aes_cbc 
+71e9 202071e4 branch function_aes_cmac_aes_loop 
+
+function_aes_cmac_aes_loop_end:
+71ea d8a006d1 arg mem_aes_cmac_temp ,contw 
+71eb 20407375 call store_aes_result 
+71ec d8c006e1 arg mem_aes_cmac_m_last ,contr 
+71ed 20407361 call load_data128 
+71ee 204072da call aes_init 
+71ef d8c006d1 arg mem_aes_cmac_temp ,contr 
+71f0 20407361 call load_data128 
+71f1 202072d4 branch do_aes_cbc 
+
+load_inverse_result:
+71f2 18a22200 copy contw ,rega 
+71f3 20407375 call store_aes_result 
+71f4 df200010 arg 16 ,loopcnt 
+71f5 20207cb1 branch inverse_data 
+
+store_inverse_k:
+71f6 d8a006a1 arg mem_aes_cmac_k ,contw 
+71f7 20407c8f call memcpy16 
+
+inverse_k:
+71f8 df200010 arg 16 ,loopcnt 
+71f9 da2006a1 arg mem_aes_cmac_k ,rega 
+71fa 20207cb1 branch inverse_data 
+
+inverse_memdat:
+71fb 6fe08230 fetch 1 ,mem_aes_cmac_data_length 
+71fc 1fe27200 copy pdata ,loopcnt 
+71fd da200231 arg mem_dat ,rega 
+71fe 20207cb1 branch inverse_data 
+
+bn_lshift_0_inverse:
+71ff efe08011 ifetch 1 ,rega 
+7200 1fe3fe00 lshift pdata ,pdata 
+7201 2a6ffe00 isolate1 0 ,regc 
+7202 7920fe00 setflag true ,0 ,pdata 
+7203 2feffe08 isolate1 8 ,pdata 
+7204 7920a600 setflag true ,0 ,regc 
+7205 e7e08011 istore 1 ,rega 
+7206 1a20a3ff increase -1 ,rega 
+7207 c20071ff loop bn_lshift_0_inverse 
+7208 20600000 rtn 
+
+function_aes_cmac_k1_inverse:
+7209 da2006b1 arg mem_aes_cmac_k1 ,rega 
+
+function_aes_cmac_inverse_common:
+720a 1a20a20f increase 15 ,rega 
+720b 18007210 force 16 ,loopcnt 
+720c 18002600 force 0 ,regc 
+720d 202071ff branch bn_lshift_0_inverse 
+
+function_aes_cmac_k2_inverse:
+720e da2006c1 arg mem_aes_cmac_k2 ,rega 
+720f 2020720a branch function_aes_cmac_inverse_common 
+
+function_aes_cmac_generate_subkey:
+7210 d8c006a1 arg mem_aes_cmac_k ,contr 
+7211 2040735f call load_key 
+7212 18007008 force regidx_xor ,regext_index 
+7213 20407370 call aes_clear 
+7214 2040736f call aes_clear_data 
+7215 204072d1 call do_aes_ocb 
+7216 d8a006b1 arg mem_aes_cmac_k1 ,contw 
+7217 20407375 call store_aes_result 
+
+function_aes_cmac_k1:
+7218 44f3c01c bpatch patch1c_7 ,mem_patch1c 
+7219 6fe086b1 fetch 1 ,mem_aes_cmac_k1 
+721a 2feffe07 isolate1 7 ,pdata 
+721b 2420f221 nbranch function_aes_cmac_k1_0 ,true 
+721c 20407209 call function_aes_cmac_k1_inverse 
+721d da6006b1 arg mem_aes_cmac_k1 ,regc 
+721e d8a006b1 arg mem_aes_cmac_k1 ,contw 
+721f 2040722b call function_aes_cmac_xor_rb 
+7220 20207222 branch function_aes_cmac_k2 
+
+function_aes_cmac_k1_0:
+7221 20407209 call function_aes_cmac_k1_inverse 
+
+function_aes_cmac_k2:
+7222 d8c006b1 arg mem_aes_cmac_k1 ,contr 
+7223 d8a006c1 arg mem_aes_cmac_k2 ,contw 
+7224 20407c8f call memcpy16 
+7225 6fe086c1 fetch 1 ,mem_aes_cmac_k2 
+7226 2feffe07 isolate1 7 ,pdata 
+7227 2420f20e nbranch function_aes_cmac_k2_inverse ,true 
+7228 2040720e call function_aes_cmac_k2_inverse 
+7229 da6006c1 arg mem_aes_cmac_k2 ,regc 
+722a d8a006c1 arg mem_aes_cmac_k2 ,contw 
+
+function_aes_cmac_xor_rb:
+722b df200003 arg 3 ,loopcnt 
+
+function_aes_cmac_xor_rb_loop:
+722c d8400000 arg 0 ,temp 
+722d 20407232 call function_aes_cmac_xor_loop_common 
+722e 1a60a604 increase 4 ,regc 
+722f c200722c loop function_aes_cmac_xor_rb_loop 
+7230 d8408700 arg 0x8700 ,temp 
+7231 18500400 lshift16 temp ,temp 
+
+function_aes_cmac_xor_loop_common:
+7232 efe20013 ifetch 4 ,regc 
+7233 9842fe00 ixor temp ,pdata 
+7234 e7e20005 istore 4 ,contw 
+7235 20600000 rtn 
+
+function_aes_cmac_padding:
+7236 44f4401d bpatch patch1d_0 ,mem_patch1d 
+7237 df200010 arg 16 ,loopcnt 
+7238 dfe00000 arg 0 ,pdata 
+
+function_aes_cmac_padding_loop:
+7239 9a267c00 isub rega ,null 
+723a 2022f241 branch function_aes_cmac_padding_beq_length ,zero 
+723b 20217244 branch function_aes_cmac_padding_big_length ,positive 
+723c e8408006 ifetcht 1 ,contr 
+723d e0408005 istoret 1 ,contw 
+
+function_aes_cmac_padding_loop2:
+723e 1fe0fe01 increase 1 ,pdata 
+723f c2007239 loop function_aes_cmac_padding_loop 
+7240 20600000 rtn 
+
+function_aes_cmac_padding_beq_length:
+7241 d8400080 arg 0x80 ,temp 
+
+function_aes_cmac_padding_common:
+7242 e0408005 istoret 1 ,contw 
+7243 2020723e branch function_aes_cmac_padding_loop2 
+
+function_aes_cmac_padding_big_length:
+7244 d8400000 arg 0 ,temp 
+7245 20207242 branch function_aes_cmac_padding_common 
+
+concatenate_temp24:
+7246 184d0400 lshift8 temp ,temp 
+
+concatenate_temp16:
+7247 18500400 lshift16 temp ,temp 
+7248 98418400 ior temp ,temp 
+7249 20600000 rtn 
+
+generate_stk:
+724a 44f4c01d bpatch patch1d_1 ,mem_patch1d 
+724b 20407306 call function_s1 
+724c d8a0428a arg mem_le_ltk ,contw 
+724d 20207375 branch store_aes_result 
+
+authenticate_rconfirm:
+724e d8a042ab arg mem_le_srand ,contw 
+724f 2034f251 branch authenticate_mconfirm ,master 
+7250 d8a00158 arg mem_le_mrand ,contw 
+
+authenticate_mconfirm:
+7251 18c22200 copy contr ,rega 
+7252 20407c8f call memcpy16 
+7253 2040731b call function_c1 
+7254 d8c0429b arg mem_le_rconfirm ,contr 
+7255 2020738e branch compare_res 
+
+generate_confirm:
+7256 da200158 arg mem_le_mrand ,rega 
+7257 2034f259 branch generate_mrand ,master 
+7258 da2042ab arg mem_le_srand ,rega 
+
+generate_mrand:
+7259 1a220a00 copy rega ,contw 
+725a 20407de7 call generate_random 
+725b 2020731b branch function_c1 
+
+generate_sk:
+725c d8c042e5 arg mem_le_skdm ,contr 
+725d 20407361 call load_data128 
+725e d8c0428a arg mem_le_ltk ,contr 
+725f 20407362 call load_regext 
+7260 18006c38 force 0x38 ,aes_ctrl 
+7261 18006c00 force 0x0 ,aes_ctrl 
+7262 204072cf call wait_aes 
+7263 d8a001a8 arg mem_le_sk ,contw 
+7264 20207375 branch store_aes_result 
+
+ccm_b0:
+7265 18007008 force regidx_xor ,regext_index 
+7266 18007e49 force 0x49 ,pdata 
+7267 2020726c branch iv_common 
+
+first_block_counter:
+7268 18007e49 force 0x49 ,pdata 
+7269 2020726b branch first_block 
+
+first_block_data:
+726a 18007e01 force 1 ,pdata 
+
+first_block:
+726b 18007000 force regidx_data ,regext_index 
+
+iv_common:
+726c 184d5e00 lshift8 temp ,regext 
+726d 9de1de00 ior regext ,regext 
+726e 1f00f001 increase 1 ,regext_index 
+726f 184cde00 rshift8 temp ,regext 
+7270 1df15e00 rshift16 regext ,regext 
+7271 6fe1445e fetch 2 ,mem_ccm_iv 
+7272 1ff07e00 lshift16 pdata ,pdata 
+7273 9de1de00 ior regext ,regext 
+7274 1f00f001 increase 1 ,regext_index 
+7275 ede20006 ifetchr regext ,4 ,contr 
+7276 1f00f001 increase 1 ,regext_index 
+7277 efe10006 ifetch 2 ,contr 
+7278 1a30de00 byteswap rega ,regext 
+7279 1df05e00 lshift16 regext ,regext 
+727a 9de1de00 ior regext ,regext 
+727b 1f00f001 increase 1 ,regext_index 
+727c 20600000 rtn 
+
+generate_mic:
+727d 1a608c01 add regc ,1 ,contr 
+727e efe08006 ifetch 1 ,contr 
+727f 98002200 iforce rega 
+7280 20407268 call first_block_counter 
+7281 204072d1 call do_aes_ocb 
+7282 18007000 force regidx_data ,regext_index 
+7283 efe08013 ifetch 1 ,regc 
+7284 1fe17e03 and_into 0x3 ,pdata 
+7285 1ff05e00 lshift16 pdata ,regext 
+7286 79205e08 set1 8 ,regext 
+7287 2040736a call clear_hidata 
+7288 204072d4 call do_aes_cbc 
+7289 1a227200 copy rega ,loopcnt 
+728a 1a608c02 add regc ,2 ,contr 
+728b 20407349 call padding_data 
+
+generate_mic_loop:
+728c 20407353 call aes_load_data 
+728d 204072d4 call do_aes_cbc 
+728e 1f227e00 deposit loopcnt 
+728f 203a7291 branch generate_mic_end ,blank 
+7290 2020728c branch generate_mic_loop 
+
+generate_mic_end:
+7291 1800700c force regidx_result ,regext_index 
+7292 1de27e00 deposit regext 
+7293 67e20150 store 4 ,mem_le_mic 
+7294 20600000 rtn 
+
+aes_crypt_data:
+7295 1a20a201 increase 1 ,rega 
+7296 2040726a call first_block_data 
+7297 1a620c00 copy regc ,contr 
+7298 2040735d call aes_load_xor 
+7299 204072d7 call do_aes_ctr 
+729a 2040737c call store_enc_data 
+729b 1a60a610 increase 16 ,regc 
+729c 1a40a5f0 increase -16 ,regb 
+729d 20217295 branch aes_crypt_data ,positive 
+729e 20600000 rtn 
+
+le_encrypt_new_start:
+729f 204072c4 call ccm_init_common 
+72a0 44f5401d bpatch patch1d_2 ,mem_patch1d 
+72a1 70806c00 jam 0 ,core_ccm_aad0 
+72a2 70806d01 jam 1 ,core_ccm_aad1 
+72a3 6fe0c169 fetch 1 ,mem_le_txheader 
+72a4 1fe17e03 and_into 0x3 ,pdata 
+72a5 67f0806e store 1 ,core_ccm_aad2 
+72a6 6fe1068f fetch 2 ,mem_contr 
+72a7 67f10068 store 2 ,core_ccm_input_playload_addr 
+72a8 5800416b setarg mem_le_txpayload 
+72a9 67f1006a store 2 ,core_ccm_output_playload_addr 
+72aa 6a20c16a fetchr rega ,1 ,mem_le_txlen 
+72ab 684ac450 fetcht 5 ,mem_ccm_pcnt_tx 
+72ac 20407265 call ccm_b0 
+72ad 70800a02 jam 2 ,core_ccm_ctrl 
+72ae 70800a03 jam 3 ,core_ccm_ctrl 
+72af 6fe0c16a fetch 1 ,mem_le_txlen 
+72b0 67f100c0 store 2 ,core_ccm_inptr 
+72b1 1fe0fe04 increase 4 ,pdata 
+72b2 67e0c16a store 1 ,mem_le_txlen 
+72b3 6fe2c450 fetch 5 ,mem_ccm_pcnt_tx 
+72b4 1fe0fe01 increase 1 ,pdata 
+72b5 793ffe27 set0 le_ccm_directionbit ,pdata 
+72b6 67e2c450 store 5 ,mem_ccm_pcnt_tx 
+72b7 20600000 rtn 
+
+ccm_wait_enc:
+72b8 6ff1011a fetch 2 ,core_ccm_outptr 
+72b9 98467c00 isub temp ,null 
+72ba 20628000 rtn zero 
+72bb 247a0000 nrtn blank 
+72bc 202072b8 branch ccm_wait_enc 
+
+ccm_check_enc_done:
+72bd 6ff08108 fetch 1 ,core_misc_status 
+72be c303235a bbit0 6 ,assert 
+
+ccm_enc_done:
+72bf 5800416b setarg mem_le_txpayload 
+72c0 98408a00 iadd temp ,contw 
+72c1 df00000c arg regidx_result ,regext_index 
+72c2 e5e20005 istorer regext ,4 ,contw 
+72c3 202072cd branch ccm_ctrl_clr 
+
+ccm_init_common:
+72c4 44f5c01d bpatch patch1d_3 ,mem_patch1d 
+72c5 1800700c force regidx_result ,regext_index 
+72c6 20407370 call aes_clear 
+72c7 2040736f call aes_clear_data 
+72c8 58000000 setarg 0 
+72c9 67f100c0 store 2 ,core_ccm_inptr 
+72ca 20600000 rtn 
+
+wait_ccm_done:
+72cb 6ff08108 fetch 1 ,core_misc_status 
+72cc c30372cb bbit0 6 ,wait_ccm_done 
+
+ccm_ctrl_clr:
+72cd 70800a00 jam 0 ,core_ccm_ctrl 
+72ce 20600000 rtn 
+
+wait_aes:
+72cf 243bf2cf nbranch wait_aes ,aes_ready 
+72d0 20600000 rtn 
+
+do_aes_ocb:
+72d1 18006c30 force 0x30 ,aes_ctrl 
+72d2 18006c00 force 0x0 ,aes_ctrl 
+72d3 202072cf branch wait_aes 
+
+do_aes_cbc:
+72d4 18006c32 force 0x32 ,aes_ctrl 
+72d5 18006c02 force 0x2 ,aes_ctrl 
+72d6 202072cf branch wait_aes 
+
+do_aes_ctr:
+72d7 18006c34 force 0x34 ,aes_ctrl 
+72d8 18006c04 force 0x4 ,aes_ctrl 
+72d9 202072cf branch wait_aes 
+
+aes_init:
+72da 18006c01 force 1 ,aes_ctrl 
+72db 18006c00 force 0 ,aes_ctrl 
+72dc 20600000 rtn 
+
+wait_keyinit_done:
+72dd 6ff08155 fetch 1 ,core_aes_decode_key_init 
+72de c30172dd bbit0 2 ,wait_keyinit_done 
+72df 20600000 rtn 
+
+dec_key_initial:
+72e0 67f100d2 store 2 ,core_keybuf_saddr 
+72e1 18006cc0 force 0xc0 ,aes_ctrl 
+72e2 18006c80 force 0x80 ,aes_ctrl 
+72e3 202072dd branch wait_keyinit_done 
+
+do_aes_ecb_dec:
+72e4 18007000 force regidx_data ,regext_index 
+72e5 1a420c00 copy regb ,contr 
+72e6 18007204 force 4 ,loopcnt 
+72e7 204072f3 call aes_ecb_dec_loop 
+72e8 18006d80 force 0x180 ,aes_ctrl 
+72e9 18006c80 force 0x80 ,aes_ctrl 
+72ea 204072cf call wait_aes 
+
+ecb_dec_generate:
+72eb 1800700c force regidx_result ,regext_index 
+72ec 1a620a00 copy regc ,contw 
+72ed 18007204 force 4 ,loopcnt 
+
+ecb_dec_generate_loop:
+72ee 1de27e00 copy regext ,pdata 
+72ef e7e20005 istore 4 ,contw 
+72f0 1f00f001 increase 1 ,regext_index 
+72f1 c20072ee loop ecb_dec_generate_loop 
+72f2 20600000 rtn 
+
+aes_ecb_dec_loop:
+72f3 efe10006 ifetch 2 ,contr 
+72f4 e8410006 ifetcht 2 ,contr 
+72f5 18500400 lshift16 temp ,temp 
+72f6 9841de00 ior temp ,regext 
+72f7 1f00f001 increase 1 ,regext_index 
+72f8 c20072f3 loop aes_ecb_dec_loop 
+72f9 20600000 rtn 
+
+do_aes_cbc_dec:
+72fa 18007008 force regidx_xor ,regext_index 
+72fb 1a220c00 copy rega ,contr 
+72fc 18007204 force 4 ,loopcnt 
+72fd 204072f3 call aes_ecb_dec_loop 
+72fe 18007000 force regidx_data ,regext_index 
+72ff 1a420c00 copy regb ,contr 
+7300 18007204 force 4 ,loopcnt 
+7301 204072f3 call aes_ecb_dec_loop 
+7302 18006d82 force 0x182 ,aes_ctrl 
+7303 18006c82 force 0x82 ,aes_ctrl 
+7304 204072cf call wait_aes 
+7305 202072eb branch ecb_dec_generate 
+
+function_s1:
+7306 18007000 force regidx_data ,regext_index 
+7307 6fe20158 fetch 4 ,mem_le_mrand 
+7308 98005e00 iforce regext 
+7309 1f00f001 increase 1 ,regext_index 
+730a efe20006 ifetch 4 ,contr 
+730b 98005e00 iforce regext 
+730c 1f00f001 increase 1 ,regext_index 
+730d 6fe242ab fetch 4 ,mem_le_srand 
+730e 98005e00 iforce regext 
+730f 1f00f001 increase 1 ,regext_index 
+7310 efe20006 ifetch 4 ,contr 
+7311 98005e00 iforce regext 
+7312 1f00f001 increase 1 ,regext_index 
+7313 20407370 call aes_clear 
+7314 1f00f1fc increase -4 ,regext_index 
+7315 6fe242ff fetch 4 ,mem_le_tk 
+7316 1fe25e00 copy pdata ,regext 
+7317 1f00f004 increase 4 ,regext_index 
+7318 18006c38 force 0x38 ,aes_ctrl 
+7319 18006c08 force 0x8 ,aes_ctrl 
+731a 202072cf branch wait_aes 
+
+function_c1:
+731b 44f6401d bpatch patch1d_4 ,mem_patch1d 
+731c 6fe342db fetch 6 ,mem_le_lap 
+731d 684b0178 fetcht 6 ,mem_le_plap 
+731e 2034f321 branch function_c1_master ,master 
+731f 6fe30178 fetch 6 ,mem_le_plap 
+7320 684b42db fetcht 6 ,mem_le_lap 
+
+function_c1_master:
+7321 18007008 force regidx_xor ,regext_index 
+7322 18425e00 copy temp ,regext 
+7323 1f00f001 increase 1 ,regext_index 
+7324 184f5e00 rshift32 temp ,regext 
+7325 1ff07e00 lshift16 pdata ,pdata 
+7326 9de1de00 ior regext ,regext 
+7327 1f00f001 increase 1 ,regext_index 
+7328 1fef5e00 rshift32 pdata ,regext 
+7329 1f00f001 increase 1 ,regext_index 
+732a 18005e00 force 0 ,regext 
+732b 18007e00 force 0 ,pdata 
+732c 6fe0c2cb fetch 1 ,mem_le_conn_peer_addr_type 
+732d 6848c38c fetcht 1 ,mem_le_adv_own_addr_type 
+732e 2434f331 nbranch function_c1_irat ,master 
+732f 6fe0c2d2 fetch 1 ,mem_le_conn_own_addr_type 
+7330 6848c2cb fetcht 1 ,mem_le_conn_peer_addr_type 
+
+function_c1_irat:
+7331 67e0c2bb store 1 ,mem_le_iat 
+7332 6048c2bc storet 1 ,mem_le_rat 
+7333 18007000 force regidx_data ,regext_index 
+7334 da4042bb arg mem_le_iat ,regb 
+7335 18007204 force 4 ,loopcnt 
+
+function_c1_loop1:
+7336 efe20011 ifetch 4 ,rega 
+7337 e8420012 ifetcht 4 ,regb 
+7338 9842de00 ixor temp ,regext 
+7339 1f00f001 increase 1 ,regext_index 
+733a 1a20a204 increase 4 ,rega 
+733b 1a40a404 increase 4 ,regb 
+733c c2007336 loop function_c1_loop1 
+733d 20407370 call aes_clear 
+733e 1f00f1fc increase -4 ,regext_index 
+733f 6fe242ff fetch 4 ,mem_le_tk 
+7340 1fe25e00 copy pdata ,regext 
+7341 1f00f004 increase 4 ,regext_index 
+7342 18006c38 force 0x38 ,aes_ctrl 
+7343 18006c0c force 0xc ,aes_ctrl 
+7344 204072cf call wait_aes 
+7345 2040736f call aes_clear_data 
+7346 18006c3a force 0x3a ,aes_ctrl 
+7347 18006c08 force 0x8 ,aes_ctrl 
+7348 202072cf branch wait_aes 
+
+padding_data:
+7349 2f200600 compare 0 ,loopcnt ,3 
+734a 20608000 rtn true 
+734b 18c27e00 deposit contr 
+734c 9f208a00 iadd loopcnt ,contw 
+734d 18007e00 force 0 ,pdata 
+
+padding_loop:
+734e e7e08005 istore 1 ,contw 
+734f 1f20f201 increase 1 ,loopcnt 
+7350 2f200600 compare 0 ,loopcnt ,3 
+7351 20608000 rtn true 
+7352 2020734e branch padding_loop 
+
+aes_load_data:
+7353 18007000 force regidx_data ,regext_index 
+
+load_data_loop:
+7354 1f227e00 deposit loopcnt 
+7355 203a7358 branch load_data_padding ,blank 
+7356 efe20006 ifetch 4 ,contr 
+7357 1f20f3fc increase -4 ,loopcnt 
+
+load_data_padding:
+7358 98005e00 iforce regext 
+7359 1f00f001 increase 1 ,regext_index 
+735a 2f001e04 compare regidx_key ,regext_index ,0xf 
+735b 20608000 rtn true 
+735c 20207354 branch load_data_loop 
+
+aes_load_xor:
+735d 18007008 force regidx_xor ,regext_index 
+735e 20207362 branch load_regext 
+
+load_key:
+735f 18007004 force regidx_key ,regext_index 
+7360 20207362 branch load_regext 
+
+load_data128:
+7361 18007000 force regidx_data ,regext_index 
+
+load_regext:
+7362 18007204 force 4 ,loopcnt 
+
+load_regext_loop:
+7363 efe20006 ifetch 4 ,contr 
+7364 98005e00 iforce regext 
+7365 1f00f001 increase 1 ,regext_index 
+7366 c2007363 loop load_regext_loop 
+7367 20600000 rtn 
+
+load_sk:
+7368 d8c001a8 arg mem_le_sk ,contr 
+7369 2020735f branch load_key 
+
+clear_hidata:
+736a 18007204 force 4 ,loopcnt 
+736b 20207372 branch clear_data_rest 
+
+regext_clear:
+736c 18007000 force 0 ,regext_index 
+736d 18007210 force 16 ,loopcnt 
+736e 20207371 branch clear_loop 
+
+aes_clear_data:
+736f 18007000 force regidx_data ,regext_index 
+
+aes_clear:
+7370 18007204 force 4 ,loopcnt 
+
+clear_loop:
+7371 18005e00 force 0 ,regext 
+
+clear_data_rest:
+7372 1f00f001 increase 1 ,regext_index 
+7373 c2007371 loop clear_loop 
+7374 20600000 rtn 
+
+store_aes_result:
+7375 1800700c force regidx_result ,regext_index 
+7376 18007204 force 4 ,loopcnt 
+
+send_aes_result_loop:
+7377 1de27e00 deposit regext 
+7378 e7e20005 istore 4 ,contw 
+7379 1f00f001 increase 1 ,regext_index 
+737a c2007377 loop send_aes_result_loop 
+737b 20600000 rtn 
+
+store_enc_data:
+737c 1800700c force regidx_result ,regext_index 
+737d 1a620a00 copy regc ,contw 
+737e 1a40f201 add regb ,1 ,loopcnt 
+737f 1f267c0f sub loopcnt ,15 ,null 
+7380 20217382 branch store_enc_loop ,positive 
+7381 18007210 force 16 ,loopcnt 
+
+store_enc_loop:
+7382 1de27e00 deposit regext 
+7383 1f267c03 sub loopcnt ,3 ,null 
+7384 2021738a branch store_enc_byte ,positive 
+7385 e7e20005 istore 4 ,contw 
+7386 1f20f3fc increase -4 ,loopcnt 
+7387 20628000 rtn zero 
+7388 1f00f001 increase 1 ,regext_index 
+7389 20207382 branch store_enc_loop 
+
+store_enc_byte:
+738a e7e08005 istore 1 ,contw 
+738b 1fecfe00 rshift8 pdata ,pdata 
+738c c200738a loop store_enc_byte 
+738d 20600000 rtn 
+
+compare_res:
+738e 1800700c force regidx_result ,regext_index 
+738f 18007204 force 4 ,loopcnt 
+
+compare_res_loop:
+7390 efe20006 ifetch 4 ,contr 
+7391 9de67c00 isub regext ,null 
+7392 24628000 nrtn zero 
+7393 1f00f001 increase 1 ,regext_index 
+7394 c2007390 loop compare_res_loop 
+7395 20207db8 branch enable_zero 
+
+enable_authrom:
+7396 6ff08050 fetch 1 ,core_clkoff 
+7397 793ffe00 set0 clock_off_auth_rom ,pdata 
+7398 67f08050 store 1 ,core_clkoff 
+7399 20600000 rtn 
+
+disable_authrom:
+739a 6ff08050 fetch 1 ,core_clkoff 
+739b 79207e00 set1 clock_off_auth_rom ,pdata 
+739c 67f08050 store 1 ,core_clkoff 
+739d 20600000 rtn 
+
+init_memp:
+739e d8a004d1 arg mem_p ,contw 
+739f 3803ffff setsect 0 ,0x3ffff 
+73a0 3807ffff setsect 1 ,0x3ffff 
+73a1 380bffff setsect 2 ,0x3ffff 
+73a2 380ffbff setsect 3 ,0x3fbff 
+73a3 e7e48005 istore 9 ,contw 
+73a4 3803ffff setsect 0 ,0x3ffff 
+73a5 3807ffff setsect 1 ,0x3ffff 
+73a6 380bffff setsect 2 ,0x3ffff 
+73a7 380fffff setsect 3 ,0x3ffff 
+73a8 e7e48005 istore 9 ,contw 
+73a9 3803ffff setsect 0 ,0x3ffff 
+73aa 3807ffff setsect 1 ,0x3ffff 
+73ab 380bcfff setsect 2 ,0x3cfff 
+73ac 380fffff setsect 3 ,0x3ffff 
+73ad e7e48005 istore 9 ,contw 
+73ae 3803ffff setsect 0 ,0x3ffff 
+73af 3807ffff setsect 1 ,0x3ffff 
+73b0 380bffef setsect 2 ,0x3ffef 
+73b1 380fffff setsect 3 ,0x3ffff 
+73b2 e7e48005 istore 9 ,contw 
+73b3 3803ffff setsect 0 ,0x3ffff 
+73b4 3807ffff setsect 1 ,0x3ffff 
+73b5 380bffff setsect 2 ,0x3ffff 
+73b6 380fffff setsect 3 ,0x3ffff 
+73b7 e7e48005 istore 9 ,contw 
+73b8 3803ffff setsect 0 ,0x3ffff 
+73b9 38066c7f setsect 1 ,0x26c7f 
+73ba 3808146b setsect 2 ,0x146b 
+73bb 380f7bb3 setsect 3 ,0x37bb3 
+73bc e7e48005 istore 9 ,contw 
+73bd 3801feb8 setsect 0 ,0x1feb8 
+73be 38050c12 setsect 1 ,0x10c12 
+73bf 380ab722 setsect 2 ,0x2b722 
+73c0 380e9fa6 setsect 3 ,0x29fa6 
+73c1 e7e48005 istore 9 ,contw 
+73c2 3800e70f setsect 0 ,0xe70f 
+73c3 38056720 setsect 1 ,0x16720 
+73c4 3808519e setsect 2 ,0x519e 
+73c5 380d9084 setsect 3 ,0x19084 
+73c6 e7e48005 istore 9 ,contw 
+73c7 38031012 setsect 0 ,0x31012 
+73c8 380760bf setsect 1 ,0x360bf 
+73c9 380bf0af setsect 2 ,0x3f0af 
+73ca 380c03d3 setsect 3 ,0x3d3 
+73cb e7e48005 istore 9 ,contw 
+73cc 3803a188 setsect 0 ,0x3a188 
+73cd 38043ad0 setsect 1 ,0x3ad0 
+73ce 380bcbf2 setsect 2 ,0x3cbf2 
+73cf 380e43d9 setsect 3 ,0x243d9 
+73d0 e7e48005 istore 9 ,contw 
+73d1 3802b030 setsect 0 ,0x2b030 
+73d2 38076a03 setsect 1 ,0x36a03 
+73d3 38091188 setsect 2 ,0x11188 
+73d4 380de520 setsect 3 ,0x1e520 
+73d5 e7e48005 istore 9 ,contw 
+73d6 3803a11e setsect 0 ,0x3a11e 
+73d7 3804fe5d setsect 1 ,0xfe5d 
+73d8 3808dd57 setsect 2 ,0xdd57 
+73d9 380dac93 setsect 3 ,0x1ac93 
+73da e7e48005 istore 9 ,contw 
+73db 380011ed setsect 0 ,0x11ed 
+73dc 380618c4 setsect 1 ,0x218c4 
+73dd 38088da7 setsect 2 ,0x8da7 
+73de 380e57ff setsect 3 ,0x257ff 
+73df e7e48005 istore 9 ,contw 
+73e0 3803192b setsect 0 ,0x3192b 
+73e1 38074641 setsect 1 ,0x34641 
+73e2 3809be0c setsect 2 ,0x1be0c 
+73e3 380f66ad setsect 3 ,0x366ad 
+73e4 e7e48005 istore 9 ,contw 
+73e5 38001f83 setsect 0 ,0x1f83 
+73e6 38055a23 setsect 1 ,0x15a23 
+73e7 380bf9b0 setsect 2 ,0x3f9b0 
+73e8 380c3949 setsect 3 ,0x3949 
+73e9 e7e48005 istore 9 ,contw 
+73ea 38013a51 setsect 0 ,0x13a51 
+73eb 380553fd setsect 1 ,0x153fd 
+73ec 380b372a setsect 2 ,0x3372a 
+73ed 380cf1bb setsect 3 ,0xf1bb 
+73ee e7e48005 istore 9 ,contw 
+73ef 3803ae85 setsect 0 ,0x3ae85 
+73f0 3805eed9 setsect 1 ,0x1eed9 
+73f1 38089e66 setsect 2 ,0x9e66 
+73f2 380c01a8 setsect 3 ,0x1a8 
+73f3 e7e40005 istore 8 ,contw 
+73f4 20600000 rtn 
+
+init_memp_256:
+73f5 d8a00569 arg mem_p_256 ,contw 
+73f6 3803ffff setsect 0 ,0x3ffff 
+73f7 3807ffff setsect 1 ,0x3ffff 
+73f8 380bffff setsect 2 ,0x3ffff 
+73f9 380fffff setsect 3 ,0x3ffff 
+73fa e7e48005 istore 9 ,contw 
+73fb 3803ffff setsect 0 ,0x3ffff 
+73fc 3804003f setsect 1 ,0x3f 
+73fd 38080000 setsect 2 ,0x0 
+73fe 380c0000 setsect 3 ,0x0 
+73ff e7e48005 istore 9 ,contw 
+7400 38000000 setsect 0 ,0x0 
+7401 38040000 setsect 1 ,0x0 
+7402 38081000 setsect 2 ,0x1000 
+7403 380c0000 setsect 3 ,0x0 
+7404 e7e48005 istore 9 ,contw 
+7405 3803ff00 setsect 0 ,0x3ff00 
+7406 3807ffff setsect 1 ,0x3ffff 
+7407 380bffcf setsect 2 ,0x3ffcf 
+7408 380fffff setsect 3 ,0x3ffff 
+7409 e7e48005 istore 9 ,contw 
+740a 3803ffff setsect 0 ,0x3ffff 
+740b 3807ffff setsect 1 ,0x3ffff 
+740c 380bffff setsect 2 ,0x3ffff 
+740d 380c03ff setsect 3 ,0x3ff 
+740e e7e48005 istore 9 ,contw 
+740f 38000000 setsect 0 ,0x0 
+7410 38040000 setsect 1 ,0x0 
+7411 38080000 setsect 2 ,0x0 
+7412 380c0000 setsect 3 ,0x0 
+7413 e7e48005 istore 9 ,contw 
+7414 38010000 setsect 0 ,0x10000 
+7415 38040000 setsect 1 ,0x0 
+7416 380bf000 setsect 2 ,0x3f000 
+7417 380fffff setsect 3 ,0x3ffff 
+7418 e7e48005 istore 9 ,contw 
+7419 380296ff setsect 0 ,0x296ff 
+741a 38062630 setsect 1 ,0x22630 
+741b 380b945d setsect 2 ,0x3945d 
+741c 380fd284 setsect 3 ,0x3d284 
+741d e7e48005 istore 9 ,contw 
+741e 380333a0 setsect 0 ,0x333a0 
+741f 38044b7a setsect 1 ,0x4b7a 
+7420 380837d8 setsect 2 ,0x37d8 
+7421 380fc9dc setsect 3 ,0x3c9dc 
+7422 e7e48005 istore 9 ,contw 
+7423 3803a440 setsect 0 ,0x3a440 
+7424 3805b958 setsect 1 ,0x1b958 
+7425 380b8bce setsect 2 ,0x38bce 
+7426 380d091f setsect 3 ,0x1091f 
+7427 e7e48005 istore 9 ,contw 
+7428 3802e12c setsect 0 ,0x2e12c 
+7429 3805f47c setsect 1 ,0x1f47c 
+742a 380b56b1 setsect 2 ,0x356b1 
+742b 380efd47 setsect 3 ,0x2fd47 
+742c e7e48005 istore 9 ,contw 
+742d 38006837 setsect 0 ,0x6837 
+742e 3806ed90 setsect 1 ,0x2ed90 
+742f 3809ecec setsect 2 ,0x1ecec 
+7430 380dacc5 setsect 3 ,0x1acc5 
+7431 e7e48005 istore 9 ,contw 
+7432 38023357 setsect 0 ,0x23357 
+7433 38058af3 setsect 1 ,0x18af3 
+7434 3808f9e1 setsect 2 ,0xf9e1 
+7435 380d29f0 setsect 3 ,0x129f0 
+7436 e7e48005 istore 9 ,contw 
+7437 3802e7eb setsect 0 ,0x2e7eb 
+7438 3807e6e3 setsect 1 ,0x3e6e3 
+7439 380be1a7 setsect 2 ,0x3e1a7 
+743a 380d0b8b setsect 3 ,0x10b8b 
+743b e7e48005 istore 9 ,contw 
+743c 38024fe3 setsect 0 ,0x24fe3 
+743d 380420ef setsect 1 ,0x20ef 
+743e 3809b5a6 setsect 2 ,0x1b5a6 
+743f 380cdc2f setsect 3 ,0xdc2f 
+7440 e7e48005 istore 9 ,contw 
+7441 38013860 setsect 0 ,0x13860 
+7442 3806bd69 setsect 1 ,0x2bd69 
+7443 3808391a setsect 2 ,0x391a 
+7444 380db222 setsect 3 ,0x1b222 
+7445 e7e48005 istore 9 ,contw 
+7446 20600000 rtn 
+
+publickey_init:
+7447 202074fc branch sp_initialize_256 
+
+sp_calc_sequence_256_check:
+7448 44f6c01d bpatch patch1d_5 ,mem_patch1d 
+7449 6fe0c46c fetch 1 ,mem_secure_connections_enable 
+744a 207a0000 rtn blank 
+744b 6fe0c46e fetch 1 ,mem_sc_local_key_invalid 
+744c c1018000 rtneq sp_key_valid_256 
+744d 6fe0c46d fetch 1 ,mem_sc_calc 
+744e c00074fc beq sp_calc_standby ,sp_initialize_256 
+744f 20600000 rtn 
+
+stop_publickey_calc_256:
+7450 70446d00 jam sp_calc_standby ,mem_sc_calc 
+7451 20600000 rtn 
+
+sp_clear_flags:
+7452 44f7401d bpatch patch1d_6 ,mem_patch1d 
+7453 580005fe setarg mem_sp_state_end 
+7454 d8a005f9 arg mem_sp_state_start ,contw 
+7455 98a67200 isub contw ,loopcnt 
+7456 20407ca1 call clear_mem 
+7457 580044d1 setarg mem_sp_state_xmem_end 
+7458 d8a044cf arg mem_sp_state_xmem ,contw 
+7459 98a67200 isub contw ,loopcnt 
+745a 20207ca1 branch clear_mem 
+
+sp_calc_check_publickey_256:
+745b 20407476 call sp_calc_b256 
+745c da20061e arg mem_le_pubkey_remote_y_256 ,rega 
+745d d8a004b1 arg mem_t7_256 ,contw 
+745e 2040771c call bn_sqrmod_256 
+745f da2005fe arg mem_le_pubkey_remote_x_256 ,rega 
+7460 d8a00471 arg mem_t2_256 ,contw 
+7461 2040771c call bn_sqrmod_256 
+7462 da200471 arg mem_t2_256 ,rega 
+7463 da4005fe arg mem_le_pubkey_remote_x_256 ,regb 
+7464 d8a00471 arg mem_t2_256 ,contw 
+7465 20407684 call bn_mulmod_256 
+7466 da200589 arg mem_a_256 ,rega 
+7467 da4005fe arg mem_le_pubkey_remote_x_256 ,regb 
+7468 d8a00491 arg mem_t3_256 ,contw 
+7469 20407684 call bn_mulmod_256 
+746a da200491 arg mem_t3_256 ,rega 
+746b da400471 arg mem_t2_256 ,regb 
+746c d8a00471 arg mem_t2_256 ,contw 
+746d 20407720 call bn_addmod_256 
+746e da200451 arg mem_t0_256 ,rega 
+746f da400471 arg mem_t2_256 ,regb 
+7470 d8a00451 arg mem_t0_256 ,contw 
+7471 20407720 call bn_addmod_256 
+7472 df200020 arg 32 ,loopcnt 
+7473 da2004b1 arg mem_t7_256 ,rega 
+7474 da400451 arg mem_t0_256 ,regb 
+7475 20207d64 branch string_compare 
+
+sp_calc_b256:
+7476 da2005c9 arg mem_gy_256 ,rega 
+7477 d8a00451 arg mem_t0_256 ,contw 
+7478 2040771c call bn_sqrmod_256 
+7479 da2005a9 arg mem_gx_256 ,rega 
+747a d8a00471 arg mem_t2_256 ,contw 
+747b 2040771c call bn_sqrmod_256 
+747c da200471 arg mem_t2_256 ,rega 
+747d da4005a9 arg mem_gx_256 ,regb 
+747e d8a00471 arg mem_t2_256 ,contw 
+747f 20407684 call bn_mulmod_256 
+7480 da200589 arg mem_a_256 ,rega 
+7481 da4005a9 arg mem_gx_256 ,regb 
+7482 d8a00491 arg mem_t3_256 ,contw 
+7483 20407684 call bn_mulmod_256 
+7484 da200491 arg mem_t3_256 ,rega 
+7485 da400471 arg mem_t2_256 ,regb 
+7486 d8a00471 arg mem_t2_256 ,contw 
+7487 20407720 call bn_addmod_256 
+7488 da200451 arg mem_t0_256 ,rega 
+7489 da400471 arg mem_t2_256 ,regb 
+748a d8a00451 arg mem_t0_256 ,contw 
+748b 20207739 branch bn_submod_256 
+
+random_generator:
+748c 18e08fff increase -1 ,queue 
+748d 24610000 nrtn positive 
+748e 180a7e00 random pdata 
+748f e7e10005 istore 2 ,contw 
+7490 2020748c branch random_generator 
+
+compare4:
+7491 18e08fff increase -1 ,queue 
+7492 2421749c nbranch compare4_success ,positive 
+7493 efe20011 ifetch 4 ,rega 
+7494 1fe20400 copy pdata ,temp 
+7495 efe20012 ifetch 4 ,regb 
+7496 9842fe00 iflip temp ,pdata 
+7497 2422f49b nbranch compare4_failed ,zero 
+7498 1a20a204 increase 4 ,rega 
+7499 1a40a404 increase 4 ,regb 
+749a 20207491 branch compare4 
+
+compare4_failed:
+749b 20207dc4 branch disable_true 
+
+compare4_success:
+749c 20207dc6 branch enable_true 
+
+bn_testbit:
+749d 1fe10e07 and pdata ,7 ,queue 
+749e 1fe97e00 rshift3 pdata ,pdata 
+749f 98c08c00 iadd contr ,contr 
+74a0 efe08006 ifetch 1 ,contr 
+74a1 afec0000 qisolate0 pdata 
+74a2 20600000 rtn 
+
+bn_eq_zero:
+74a3 efe40006 ifetch 8 ,contr 
+74a4 247a0000 nrtn blank 
+74a5 efe40006 ifetch 8 ,contr 
+74a6 247a0000 nrtn blank 
+74a7 efe40006 ifetch 8 ,contr 
+74a8 20600000 rtn 
+
+bn_eq_0:
+74a9 efe20011 ifetch 4 ,rega 
+74aa 98000400 iforce temp 
+74ab efe20012 ifetch 4 ,regb 
+74ac 98467c00 isub temp ,null 
+74ad 24628000 nrtn zero 
+74ae 1a20a204 increase 4 ,rega 
+74af 1a40a404 increase 4 ,regb 
+74b0 c20074a9 loop bn_eq_0 
+74b1 20600000 rtn 
+
+bn_bigeq:
+74b2 18007206 force 6 ,loopcnt 
+74b3 1a20a214 increase 20 ,rega 
+74b4 1a40a414 increase 20 ,regb 
+
+bn_bigeq_0:
+74b5 efe20012 ifetch 4 ,regb 
+74b6 98000400 iforce temp 
+74b7 efe20011 ifetch 4 ,rega 
+74b8 98467e00 isub temp ,pdata 
+74b9 24610000 nrtn positive 
+74ba 247a0000 nrtn blank 
+74bb 1a20a3fc increase -4 ,rega 
+74bc 1a40a5fc increase -4 ,regb 
+74bd c20074b5 loop bn_bigeq_0 
+74be 20600000 rtn 
+
+bn_add:
+74bf 18007206 force 6 ,loopcnt 
+74c0 18002600 force 0 ,regc 
+
+bn_add_0:
+74c1 efe20011 ifetch 4 ,rega 
+74c2 98000400 iforce temp 
+74c3 efe20012 ifetch 4 ,regb 
+74c4 9840fe00 iadd temp ,pdata 
+74c5 9a60fe00 iadd regc ,pdata 
+74c6 e7e20005 istore 4 ,contw 
+74c7 2feffe20 isolate1 32 ,pdata 
+74c8 7920a600 setflag true ,0 ,regc 
+74c9 1a20a204 increase 4 ,rega 
+74ca 1a40a404 increase 4 ,regb 
+74cb c20074c1 loop bn_add_0 
+74cc 20600000 rtn 
+
+bn_sub:
+74cd 18007206 force 6 ,loopcnt 
+74ce 18002600 force 0 ,regc 
+
+bn_sub_0:
+74cf efe20012 ifetch 4 ,regb 
+74d0 98000400 iforce temp 
+74d1 efe20011 ifetch 4 ,rega 
+74d2 98467e00 isub temp ,pdata 
+74d3 9a667e00 isub regc ,pdata 
+74d4 e7e20005 istore 4 ,contw 
+74d5 2feffe20 isolate1 32 ,pdata 
+74d6 7920a600 setflag true ,0 ,regc 
+74d7 1a20a204 increase 4 ,rega 
+74d8 1a40a404 increase 4 ,regb 
+74d9 c20074cf loop bn_sub_0 
+74da 20600000 rtn 
+
+bn_rshift6:
+74db 18007206 force 6 ,loopcnt 
+74dc 1a20a214 increase 20 ,rega 
+
+bn_rshift:
+74dd 18002600 force 0 ,regc 
+
+bn_rshift_0:
+74de efe20011 ifetch 4 ,rega 
+74df 2feffe00 isolate1 0 ,pdata 
+74e0 7920a601 setflag true ,1 ,regc 
+74e1 1fe37e00 rshift pdata ,pdata 
+74e2 2a6ffe00 isolate1 0 ,regc 
+74e3 7920fe1f setflag true ,31 ,pdata 
+74e4 e7e20011 istore 4 ,rega 
+74e5 1a20a3fc increase -4 ,rega 
+74e6 1a632600 rshift regc ,regc 
+74e7 c20074de loop bn_rshift_0 
+74e8 20600000 rtn 
+
+bn_lshift:
+74e9 18007206 force 6 ,loopcnt 
+74ea 18002600 force 0 ,regc 
+
+bn_lshift_0:
+74eb efe20011 ifetch 4 ,rega 
+74ec 2feffe1f isolate1 31 ,pdata 
+74ed 7920a601 setflag true ,1 ,regc 
+74ee 1fe3fe00 lshift pdata ,pdata 
+74ef 2a6ffe00 isolate1 0 ,regc 
+74f0 7920fe00 setflag true ,0 ,pdata 
+74f1 e7e20011 istore 4 ,rega 
+74f2 1a20a204 increase 4 ,rega 
+74f3 1a632600 rshift regc ,regc 
+74f4 c20074eb loop bn_lshift_0 
+74f5 20600000 rtn 
+
+bn_load:
+74f6 18007206 force 6 ,loopcnt 
+
+bn_load_0:
+74f7 efe20006 ifetch 4 ,contr 
+74f8 98005e00 iforce regext 
+74f9 1f00f001 increase 1 ,regext_index 
+74fa c20074f7 loop bn_load_0 
+74fb 20600000 rtn 
+
+sp_initialize_256:
+74fc 44f7c01d bpatch patch1d_7 ,mem_patch1d 
+74fd 6fe0c46c fetch 1 ,mem_secure_connections_enable 
+74fe 243a751d nbranch sp_pubkey_calc_256 ,blank 
+
+sc_reset:
+74ff 70446d00 jam sp_calc_standby ,mem_sc_calc 
+7500 70446e00 jam sp_key_invalid ,mem_sc_local_key_invalid 
+7501 20600000 rtn 
+
+sp_wait_pubkey_calc_256_done:
+7502 6fe0c46c fetch 1 ,mem_secure_connections_enable 
+7503 207a0000 rtn blank 
+7504 6fe0c46e fetch 1 ,mem_sc_local_key_invalid 
+7505 c1018000 rtneq sp_key_valid_256 
+7506 20407552 call sp_calc_sequence_256 
+7507 20207502 branch sp_wait_pubkey_calc_256_done 
+
+sp_debug_private_256:
+7508 d8a0446f arg mem_sc_private_key_256 ,contw 
+7509 38001abd setsect 0 ,0x1abd 
+750a 3805b34f setsect 1 ,0x1b34f 
+750b 38099b8a setsect 2 ,0x19b8a 
+750c 380e6562 setsect 3 ,0x26562 
+750d e7e48005 istore 9 ,contw 
+750e 380340b7 setsect 0 ,0x340b7 
+750f 38041efa setsect 1 ,0x1efa 
+7510 3808aff6 setsect 2 ,0xaff6 
+7511 380cfd41 setsect 3 ,0xfd41 
+7512 e7e48005 istore 9 ,contw 
+7513 3803d210 setsect 0 ,0x3d210 
+7514 38066cf8 setsect 1 ,0x26cf8 
+7515 380b874c setsect 2 ,0x3874c 
+7516 380f157c setsect 3 ,0x3157c 
+7517 e7e48005 istore 9 ,contw 
+7518 3802d4a3 setsect 0 ,0x2d4a3 
+7519 3807d27d setsect 1 ,0x3d27d 
+751a 38080003 setsect 2 ,0x3 
+751b e7e28005 istore 5 ,contw 
+751c 20600000 rtn 
+
+sp_pubkey_calc_256:
+751d 6fe0c46e fetch 1 ,mem_sc_local_key_invalid 
+751e c1800000 rtnne sp_key_invalid 
+751f 6fe0c46d fetch 1 ,mem_sc_calc 
+7520 c1800000 rtnne sp_calc_standby 
+7521 204073f5 call init_memp_256 
+7522 d8a0446f arg mem_sc_private_key_256 ,contw 
+7523 18000e0f force 15 ,queue 
+7524 2040748c call random_generator 
+7525 180a7e00 random pdata 
+7526 1fe37e00 rshift pdata ,pdata 
+7527 e7e10005 istore 2 ,contw 
+7528 6fe0c46b fetch 1 ,mem_sp_debug_mode 
+7529 245a7508 ncall sp_debug_private_256 ,blank 
+752a d8a003b1 arg mem_k_256 ,contw 
+752b d8c0446f arg mem_sc_private_key_256 ,contr 
+752c 20407c8d call memcpy32 
+752d d8a00291 arg mem_ax_256 ,contw 
+752e d8c005a9 arg mem_gx_256 ,contr 
+752f 20407c81 call memcpy64 
+7530 d8a002d1 arg mem_az_256 ,contw 
+7531 20407c9d call clear_mem_256 
+7532 7002d101 jam 1 ,mem_az_256 
+7533 2040756a call eckp_calc_init_256 
+7534 70446d03 jam sp_calc_pubkey_256 ,mem_sc_calc 
+7535 20600000 rtn 
+
+sp_pubkey_generated_256:
+7536 d8a0448f arg mem_sc_pubkey_local_x_256 ,contw 
+7537 d8c002f1 arg mem_bx_256 ,contr 
+7538 20407c81 call memcpy64 
+7539 70446e03 jam sp_key_valid_256 ,mem_sc_local_key_invalid 
+753a 70446d00 jam sp_calc_standby ,mem_sc_calc 
+753b 20600000 rtn 
+
+sp_dhkey_calc_256:
+753c 6fe085f9 fetch 1 ,mem_sp_dhkey_invalid 
+753d c1800000 rtnne sp_key_invalid 
+753e 6fe0c46d fetch 1 ,mem_sc_calc 
+753f c1800000 rtnne sp_calc_standby 
+7540 d8a003b1 arg mem_k_256 ,contw 
+7541 d8c0446f arg mem_sc_private_key_256 ,contr 
+7542 20407c8d call memcpy32 
+7543 d8a00291 arg mem_ax_256 ,contw 
+7544 d8c005fe arg mem_le_pubkey_remote_x_256 ,contr 
+7545 20407c81 call memcpy64 
+7546 d8a002d1 arg mem_az_256 ,contw 
+7547 20407c9d call clear_mem_256 
+7548 7002d101 jam 1 ,mem_az_256 
+7549 2040756a call eckp_calc_init_256 
+754a 70446d04 jam sp_calc_dhkey_256 ,mem_sc_calc 
+754b 20600000 rtn 
+
+sp_dhkey_generated_256:
+754c d8a0063e arg mem_le_dhkey_256 ,contw 
+754d d8c002f1 arg mem_bx_256 ,contr 
+754e 20407c8d call memcpy32 
+754f 7005f903 jam sp_key_valid_256 ,mem_sp_dhkey_invalid 
+7550 70446d00 jam sp_calc_standby ,mem_sc_calc 
+7551 20600000 rtn 
+
+sp_calc_sequence_256:
+7552 6fe0c46c fetch 1 ,mem_secure_connections_enable 
+7553 207a0000 rtn blank 
+7554 6fe0c46d fetch 1 ,mem_sc_calc 
+7555 207a0000 rtn blank 
+7556 1fe0fe80 increase 0x80 ,pdata 
+7557 67e0c46d store 1 ,mem_sc_calc 
+7558 c3838000 rtnbit1 7 
+7559 6fe1022e fetch 2 ,mem_ec_loopc 
+755a 203a755c branch sp_calc_sequence_done_256 ,blank 
+755b 20207562 branch eckp_calc_256 
+
+sp_calc_sequence_done_256:
+755c 44f8401e bpatch patch1e_0 ,mem_patch1e 
+755d 20407577 call ecunmapz_256 
+755e 6fe0c46d fetch 1 ,mem_sc_calc 
+755f c001f536 beq sp_calc_pubkey_256 ,sp_pubkey_generated_256 
+7560 c002754c beq sp_calc_dhkey_256 ,sp_dhkey_generated_256 
+7561 20600000 rtn 
+
+eckp_calc_256:
+7562 20407589 call ecdbl_256 
+7563 6fe1022e fetch 2 ,mem_ec_loopc 
+7564 1fe0ffff increase -1 ,pdata 
+7565 67e1022e store 2 ,mem_ec_loopc 
+7566 d8c003b1 arg mem_k_256 ,contr 
+7567 2040749d call bn_testbit 
+7568 20608000 rtn true 
+7569 202075da branch ecadd_256 
+
+eckp_calc_init_256:
+756a 44f8c01e bpatch patch1e_1 ,mem_patch1e 
+756b 58000100 setarg 256 
+756c 67e1022e store 2 ,mem_ec_loopc 
+
+eckp_calc_init_256_1:
+756d 6fe1022e fetch 2 ,mem_ec_loopc 
+756e 207a0000 rtn blank 
+756f 1fe0ffff increase -1 ,pdata 
+7570 67e1022e store 2 ,mem_ec_loopc 
+7571 d8c003b1 arg mem_k_256 ,contr 
+7572 2040749d call bn_testbit 
+7573 2020f56d branch eckp_calc_init_256_1 ,true 
+7574 d8c00291 arg mem_ax_256 ,contr 
+7575 d8a00351 arg mem_cx_256 ,contw 
+7576 20207c80 branch memcpy96 
+
+ecunmapz_256:
+7577 da200391 arg mem_cz_256 ,rega 
+7578 d8a00491 arg mem_t3_256 ,contw 
+7579 20407646 call bn_invmod_256 
+757a da200491 arg mem_t3_256 ,rega 
+757b d8a00431 arg mem_t1_256 ,contw 
+757c 2040771c call bn_sqrmod_256 
+757d da200351 arg mem_cx_256 ,rega 
+757e da400431 arg mem_t1_256 ,regb 
+757f d8a002f1 arg mem_bx_256 ,contw 
+7580 20407684 call bn_mulmod_256 
+7581 da200491 arg mem_t3_256 ,rega 
+7582 da400431 arg mem_t1_256 ,regb 
+7583 d8a00471 arg mem_t2_256 ,contw 
+7584 20407684 call bn_mulmod_256 
+7585 da200371 arg mem_cy_256 ,rega 
+7586 da400471 arg mem_t2_256 ,regb 
+7587 d8a00311 arg mem_by_256 ,contw 
+7588 20207684 branch bn_mulmod_256 
+
+ecdbl_256:
+7589 da200391 arg mem_cz_256 ,rega 
+758a d8a00471 arg mem_t2_256 ,contw 
+758b 2040771c call bn_sqrmod_256 
+758c da200471 arg mem_t2_256 ,rega 
+758d d8a00491 arg mem_t3_256 ,contw 
+758e 2040771c call bn_sqrmod_256 
+758f da200589 arg mem_a_256 ,rega 
+7590 da400491 arg mem_t3_256 ,regb 
+7591 d8a00491 arg mem_t3_256 ,contw 
+7592 20407684 call bn_mulmod_256 
+7593 da200351 arg mem_cx_256 ,rega 
+7594 d8a00471 arg mem_t2_256 ,contw 
+7595 2040771c call bn_sqrmod_256 
+7596 d8c00471 arg mem_t2_256 ,contr 
+7597 d8a00431 arg mem_t1_256 ,contw 
+7598 20407c8d call memcpy32 
+7599 da200431 arg mem_t1_256 ,rega 
+759a 20407723 call bn_lshiftmod_256 
+759b da200471 arg mem_t2_256 ,rega 
+759c da400431 arg mem_t1_256 ,regb 
+759d d8a00471 arg mem_t2_256 ,contw 
+759e 20407720 call bn_addmod_256 
+759f da200471 arg mem_t2_256 ,rega 
+75a0 da400491 arg mem_t3_256 ,regb 
+75a1 d8a00471 arg mem_t2_256 ,contw 
+75a2 20407720 call bn_addmod_256 
+75a3 d8c00351 arg mem_cx_256 ,contr 
+75a4 d8a00431 arg mem_t1_256 ,contw 
+75a5 20407c8d call memcpy32 
+75a6 da200371 arg mem_cy_256 ,rega 
+75a7 d8a00491 arg mem_t3_256 ,contw 
+75a8 2040771c call bn_sqrmod_256 
+75a9 da200431 arg mem_t1_256 ,rega 
+75aa 20407723 call bn_lshiftmod_256 
+75ab da200431 arg mem_t1_256 ,rega 
+75ac 20407723 call bn_lshiftmod_256 
+75ad da200431 arg mem_t1_256 ,rega 
+75ae da400491 arg mem_t3_256 ,regb 
+75af d8a00431 arg mem_t1_256 ,contw 
+75b0 20407684 call bn_mulmod_256 
+75b1 da200491 arg mem_t3_256 ,rega 
+75b2 d8a00451 arg mem_t0_256 ,contw 
+75b3 2040771c call bn_sqrmod_256 
+75b4 da200451 arg mem_t0_256 ,rega 
+75b5 20407723 call bn_lshiftmod_256 
+75b6 da200451 arg mem_t0_256 ,rega 
+75b7 20407723 call bn_lshiftmod_256 
+75b8 da200451 arg mem_t0_256 ,rega 
+75b9 20407723 call bn_lshiftmod_256 
+75ba d8c00371 arg mem_cy_256 ,contr 
+75bb d8a00491 arg mem_t3_256 ,contw 
+75bc 20407c8d call memcpy32 
+75bd da200491 arg mem_t3_256 ,rega 
+75be 20407723 call bn_lshiftmod_256 
+75bf da200491 arg mem_t3_256 ,rega 
+75c0 da400391 arg mem_cz_256 ,regb 
+75c1 d8a00391 arg mem_cz_256 ,contw 
+75c2 20407684 call bn_mulmod_256 
+75c3 da200471 arg mem_t2_256 ,rega 
+75c4 d8a00491 arg mem_t3_256 ,contw 
+75c5 2040771c call bn_sqrmod_256 
+75c6 da200491 arg mem_t3_256 ,rega 
+75c7 da400431 arg mem_t1_256 ,regb 
+75c8 d8a00491 arg mem_t3_256 ,contw 
+75c9 20407739 call bn_submod_256 
+75ca da200491 arg mem_t3_256 ,rega 
+75cb da400431 arg mem_t1_256 ,regb 
+75cc d8a00351 arg mem_cx_256 ,contw 
+75cd 20407739 call bn_submod_256 
+75ce da200431 arg mem_t1_256 ,rega 
+75cf da400351 arg mem_cx_256 ,regb 
+75d0 d8a00491 arg mem_t3_256 ,contw 
+75d1 20407739 call bn_submod_256 
+75d2 da200491 arg mem_t3_256 ,rega 
+75d3 da400471 arg mem_t2_256 ,regb 
+75d4 d8a00491 arg mem_t3_256 ,contw 
+75d5 20407684 call bn_mulmod_256 
+75d6 da200491 arg mem_t3_256 ,rega 
+75d7 da400451 arg mem_t0_256 ,regb 
+75d8 d8a00371 arg mem_cy_256 ,contw 
+75d9 20207739 branch bn_submod_256 
+
+ecadd_256:
+75da da2002d1 arg mem_az_256 ,rega 
+75db d8a004b1 arg mem_t7_256 ,contw 
+75dc 2040771c call bn_sqrmod_256 
+75dd da200351 arg mem_cx_256 ,rega 
+75de da4004b1 arg mem_t7_256 ,regb 
+75df d8a00451 arg mem_t0_256 ,contw 
+75e0 20407684 call bn_mulmod_256 
+75e1 da2002d1 arg mem_az_256 ,rega 
+75e2 da4004b1 arg mem_t7_256 ,regb 
+75e3 d8a004b1 arg mem_t7_256 ,contw 
+75e4 20407684 call bn_mulmod_256 
+75e5 da200371 arg mem_cy_256 ,rega 
+75e6 da4004b1 arg mem_t7_256 ,regb 
+75e7 d8a00431 arg mem_t1_256 ,contw 
+75e8 20407684 call bn_mulmod_256 
+75e9 da200391 arg mem_cz_256 ,rega 
+75ea d8a004b1 arg mem_t7_256 ,contw 
+75eb 2040771c call bn_sqrmod_256 
+75ec da200291 arg mem_ax_256 ,rega 
+75ed da4004b1 arg mem_t7_256 ,regb 
+75ee d8a00471 arg mem_t2_256 ,contw 
+75ef 20407684 call bn_mulmod_256 
+75f0 da200391 arg mem_cz_256 ,rega 
+75f1 da4004b1 arg mem_t7_256 ,regb 
+75f2 d8a004b1 arg mem_t7_256 ,contw 
+75f3 20407684 call bn_mulmod_256 
+75f4 da2002b1 arg mem_ay_256 ,rega 
+75f5 da4004b1 arg mem_t7_256 ,regb 
+75f6 d8a00491 arg mem_t3_256 ,contw 
+75f7 20407684 call bn_mulmod_256 
+75f8 da400451 arg mem_t0_256 ,regb 
+75f9 da200471 arg mem_t2_256 ,rega 
+75fa d8a004b1 arg mem_t7_256 ,contw 
+75fb 20407739 call bn_submod_256 
+75fc da200451 arg mem_t0_256 ,rega 
+75fd da400471 arg mem_t2_256 ,regb 
+75fe d8a00451 arg mem_t0_256 ,contw 
+75ff 20407720 call bn_addmod_256 
+7600 da400431 arg mem_t1_256 ,regb 
+7601 da200491 arg mem_t3_256 ,rega 
+7602 d8a00471 arg mem_t2_256 ,contw 
+7603 20407739 call bn_submod_256 
+7604 da200431 arg mem_t1_256 ,rega 
+7605 da400491 arg mem_t3_256 ,regb 
+7606 d8a00431 arg mem_t1_256 ,contw 
+7607 20407720 call bn_addmod_256 
+7608 da200431 arg mem_t1_256 ,rega 
+7609 da4004b1 arg mem_t7_256 ,regb 
+760a d8a00431 arg mem_t1_256 ,contw 
+760b 20407684 call bn_mulmod_256 
+760c da200391 arg mem_cz_256 ,rega 
+760d da4002d1 arg mem_az_256 ,regb 
+760e d8a00491 arg mem_t3_256 ,contw 
+760f 20407684 call bn_mulmod_256 
+7610 da200491 arg mem_t3_256 ,rega 
+7611 da4004b1 arg mem_t7_256 ,regb 
+7612 d8a00391 arg mem_cz_256 ,contw 
+7613 20407684 call bn_mulmod_256 
+7614 da2004b1 arg mem_t7_256 ,rega 
+7615 d8a004b1 arg mem_t7_256 ,contw 
+7616 2040771c call bn_sqrmod_256 
+7617 da2004b1 arg mem_t7_256 ,rega 
+7618 da400451 arg mem_t0_256 ,regb 
+7619 d8a00491 arg mem_t3_256 ,contw 
+761a 20407684 call bn_mulmod_256 
+761b da2004b1 arg mem_t7_256 ,rega 
+761c da400431 arg mem_t1_256 ,regb 
+761d d8a00431 arg mem_t1_256 ,contw 
+761e 20407684 call bn_mulmod_256 
+761f da200471 arg mem_t2_256 ,rega 
+7620 d8a00351 arg mem_cx_256 ,contw 
+7621 2040771c call bn_sqrmod_256 
+7622 da200351 arg mem_cx_256 ,rega 
+7623 da400491 arg mem_t3_256 ,regb 
+7624 d8a00351 arg mem_cx_256 ,contw 
+7625 20407739 call bn_submod_256 
+7626 d8c00351 arg mem_cx_256 ,contr 
+7627 d8a004b1 arg mem_t7_256 ,contw 
+7628 20407c8d call memcpy32 
+7629 da2004b1 arg mem_t7_256 ,rega 
+762a 20407723 call bn_lshiftmod_256 
+762b da200491 arg mem_t3_256 ,rega 
+762c da4004b1 arg mem_t7_256 ,regb 
+762d d8a00491 arg mem_t3_256 ,contw 
+762e 20407739 call bn_submod_256 
+762f da200491 arg mem_t3_256 ,rega 
+7630 da400471 arg mem_t2_256 ,regb 
+7631 d8a00471 arg mem_t2_256 ,contw 
+7632 20407684 call bn_mulmod_256 
+7633 da200471 arg mem_t2_256 ,rega 
+7634 da400431 arg mem_t1_256 ,regb 
+7635 d8a00371 arg mem_cy_256 ,contw 
+7636 20407739 call bn_submod_256 
+7637 da200371 arg mem_cy_256 ,rega 
+7638 da400569 arg mem_p_256 ,regb 
+7639 d8a00371 arg mem_cy_256 ,contw 
+763a 18002600 force 0 ,regc 
+763b 6fe08371 fetch 1 ,mem_cy_256 
+763c 2feffe00 isolate1 0 ,pdata 
+763d 2040f71e call bn_add_256 ,true 
+763e 1a626000 copy regc ,alarm 
+763f da200371 arg mem_cy_256 ,rega 
+7640 2040774e call bn_rshift_256 
+7641 6fe08390 fetch 1 ,mem_cy5_256 
+7642 2e0ffe00 isolate1 0 ,alarm 
+7643 7920fe07 setflag true ,7 ,pdata 
+7644 67e08390 store 1 ,mem_cy5_256 
+7645 20600000 rtn 
+
+bn_invmod_256:
+7646 18a21600 copy contw ,timeup 
+7647 d8a00451 arg mem_tmp0_256 ,contw 
+7648 20407c9d call clear_mem_256 
+7649 18007e00 force 0 ,pdata 
+764a 67e20471 store 4 ,mem_t2_256 
+764b 70045101 jam 1 ,mem_tmp0_256 
+764c d8a003d1 arg mem_tmp1_256 ,contw 
+764d 20407c9f call clear_mem_512 
+764e d8c00569 arg mem_p_256 ,contr 
+764f d8a00411 arg mem_tmp2_256 ,contw 
+7650 20407c8d call memcpy32 
+7651 1a220c00 copy rega ,contr 
+7652 d8a00431 arg mem_tmp3_256 ,contw 
+7653 20407c8d call memcpy32 
+
+bn_invmod_256_2:
+7654 d8c00431 arg mem_tmp3_256 ,contr 
+7655 20407758 call bn_eq_zero_256 
+7656 203a767d branch bn_invmod_256_0 ,blank 
+7657 da200431 arg mem_tmp3_256 ,rega 
+7658 da400451 arg mem_tmp0_256 ,regb 
+7659 2040775b call bn_rshifteven_256 
+765a da200411 arg mem_tmp2_256 ,rega 
+765b da4003d1 arg mem_tmp1_256 ,regb 
+765c 2040775b call bn_rshifteven_256 
+765d da200431 arg mem_tmp3_256 ,rega 
+765e da400411 arg mem_tmp2_256 ,regb 
+765f 20407754 call bn_bigeq_256 
+7660 2021766f branch bn_invmod_256_1 ,positive 
+7661 da200411 arg mem_tmp2_256 ,rega 
+7662 da400431 arg mem_tmp3_256 ,regb 
+7663 1a220a00 copy rega ,contw 
+7664 2040774c call bn_sub_256 
+7665 da200451 arg mem_tmp0_256 ,rega 
+7666 da4003d1 arg mem_tmp1_256 ,regb 
+7667 1a420a00 copy regb ,contw 
+7668 2040771e call bn_add_256 
+7669 efe08011 ifetch 1 ,rega 
+766a 9a60a600 iadd regc ,regc 
+766b efe08012 ifetch 1 ,regb 
+766c 9a60fe00 iadd regc ,pdata 
+766d e7e08012 istore 1 ,regb 
+766e 20207654 branch bn_invmod_256_2 
+
+bn_invmod_256_1:
+766f da200431 arg mem_tmp3_256 ,rega 
+7670 da400411 arg mem_tmp2_256 ,regb 
+7671 1a220a00 copy rega ,contw 
+7672 2040774c call bn_sub_256 
+7673 da2003d1 arg mem_tmp1_256 ,rega 
+7674 da400451 arg mem_tmp0_256 ,regb 
+7675 1a420a00 copy regb ,contw 
+7676 2040771e call bn_add_256 
+7677 efe08011 ifetch 1 ,rega 
+7678 9a60a600 iadd regc ,regc 
+7679 efe08012 ifetch 1 ,regb 
+767a 9a60fe00 iadd regc ,pdata 
+767b e7e08012 istore 1 ,regb 
+767c 20207654 branch bn_invmod_256_2 
+
+bn_invmod_256_0:
+767d da2003d1 arg mem_tmp1_256 ,rega 
+767e 19620a00 copy timeup ,contw 
+767f 204076ad call bn_p256mod 
+7680 da200569 arg mem_p_256 ,rega 
+7681 19622400 copy timeup ,regb 
+7682 19620a00 copy timeup ,contw 
+7683 20207739 branch bn_submod_256 
+
+bn_mulmod_256:
+7684 18a21600 copy contw ,timeup 
+7685 18007000 force 0 ,regext_index 
+7686 d8a003d1 arg mem_tmp1_256 ,contw 
+7687 20407c9f call clear_mem_512 
+7688 d8a006b1 arg mem_regext ,contw 
+7689 20407c9f call clear_mem_512 
+768a 1a220c00 copy rega ,contr 
+768b 7006b100 jam 0 ,mem_regext 
+768c 58000000 setarg 0 
+768d 20407716 call bn_load_mem 
+768e 1a420c00 copy regb ,contr 
+768f 2040771a call bn_load_256 
+7690 18000e00 force 0 ,queue 
+7691 d8a003d1 arg mem_tmp1_256 ,contw 
+
+bn_mulmod_256_1:
+7692 d84006b1 arg mem_regext ,temp 
+7693 18e22400 copy queue ,regb 
+7694 1a4bfe00 lshift2 regb ,pdata 
+7695 9840a400 iadd temp ,regb 
+7696 18000400 force 0 ,temp 
+7697 18002600 force 0 ,regc 
+
+bn_mulmod_256_0:
+7698 efe20005 ifetch 4 ,contw 
+7699 98002200 iforce rega 
+769a efe20012 ifetch 4 ,regb 
+769b 1a627000 copy regc ,regext_index 
+769c 9deffe00 imul32 regext ,pdata 
+769d 9a20fe00 iadd rega ,pdata 
+769e 9840fe00 iadd temp ,pdata 
+769f e7e20005 istore 4 ,contw 
+76a0 1fef0400 rshift32 pdata ,temp 
+76a1 1a60a601 increase 1 ,regc 
+76a2 2a61fe08 compare 8 ,regc ,0xff 
+76a3 2420f698 nbranch bn_mulmod_256_0 ,true 
+76a4 18427e00 deposit temp 
+76a5 e7e20005 istore 4 ,contw 
+76a6 18a08be0 increase -32 ,contw 
+76a7 18e08e01 increase 1 ,queue 
+76a8 28e1fe08 compare 8 ,queue ,0xff 
+76a9 2420f692 nbranch bn_mulmod_256_1 ,true 
+76aa da2003d1 arg mem_tmp1_256 ,rega 
+76ab 19620a00 copy timeup ,contw 
+76ac 202076ad branch bn_p256mod 
+
+bn_p256mod:
+76ad 44f9401e bpatch patch1e_2 ,mem_patch1e 
+76ae 18a21600 copy contw ,timeup 
+76af 1a226000 copy rega ,alarm 
+76b0 da400411 arg mem_tmp2_256 ,regb 
+76b1 1a420a00 copy regb ,contw 
+76b2 20407c9b call memset0_4 
+76b3 e7e40005 istore 8 ,contw 
+76b4 1a208c2c add rega ,44 ,contr 
+76b5 20407c89 call memcpy8 
+76b6 20407c83 call memcpy12 
+76b7 1a422200 copy regb ,rega 
+76b8 20407723 call bn_lshiftmod_256 
+76b9 da400411 arg mem_tmp2_256 ,regb 
+76ba 1e022200 copy alarm ,rega 
+76bb 19620a00 copy timeup ,contw 
+76bc 20407720 call bn_addmod_256 
+76bd da400411 arg mem_tmp2_256 ,regb 
+76be 1a420a00 copy regb ,contw 
+76bf 20407c9b call memset0_4 
+76c0 e7e40005 istore 8 ,contw 
+76c1 1e008c30 add alarm ,48 ,contr 
+76c2 20407c8f call memcpy16 
+76c3 20407c9b call memset0_4 
+76c4 1a422200 copy regb ,rega 
+76c5 20407723 call bn_lshiftmod_256 
+76c6 da400411 arg mem_tmp2_256 ,regb 
+76c7 19622200 copy timeup ,rega 
+76c8 1a220a00 copy rega ,contw 
+76c9 20407720 call bn_addmod_256 
+76ca da400411 arg mem_tmp2_256 ,regb 
+76cb 1a420a00 copy regb ,contw 
+76cc 1e008c20 add alarm ,32 ,contr 
+76cd 20407c83 call memcpy12 
+76ce 20407c9b call memset0_4 
+76cf e7e40005 istore 8 ,contw 
+76d0 1e008c38 add alarm ,56 ,contr 
+76d1 20407c89 call memcpy8 
+76d2 19622200 copy timeup ,rega 
+76d3 1a220a00 copy rega ,contw 
+76d4 20407720 call bn_addmod_256 
+76d5 da400411 arg mem_tmp2_256 ,regb 
+76d6 1a420a00 copy regb ,contw 
+76d7 1e008c24 add alarm ,36 ,contr 
+76d8 20407c83 call memcpy12 
+76d9 1e008c34 add alarm ,52 ,contr 
+76da 20407c83 call memcpy12 
+76db 1e008c34 add alarm ,52 ,contr 
+76dc 20407c84 call memcpy4 
+76dd 1e008c20 add alarm ,32 ,contr 
+76de 20407c84 call memcpy4 
+76df 19622200 copy timeup ,rega 
+76e0 1a220a00 copy rega ,contw 
+76e1 20407720 call bn_addmod_256 
+76e2 da400411 arg mem_tmp2_256 ,regb 
+76e3 1a420a00 copy regb ,contw 
+76e4 1e008c2c add alarm ,44 ,contr 
+76e5 20407c83 call memcpy12 
+76e6 20407c9b call memset0_4 
+76e7 e7e40005 istore 8 ,contw 
+76e8 1e008c20 add alarm ,32 ,contr 
+76e9 20407c84 call memcpy4 
+76ea 1e008c28 add alarm ,40 ,contr 
+76eb 20407c84 call memcpy4 
+76ec 19622200 copy timeup ,rega 
+76ed 1a220a00 copy rega ,contw 
+76ee 20407739 call bn_submod_256 
+76ef da400411 arg mem_tmp2_256 ,regb 
+76f0 1a420a00 copy regb ,contw 
+76f1 1e008c30 add alarm ,48 ,contr 
+76f2 20407c89 call memcpy8 
+76f3 20407c89 call memcpy8 
+76f4 18007e00 force 0 ,pdata 
+76f5 e7e40005 istore 8 ,contw 
+76f6 1e008c24 add alarm ,36 ,contr 
+76f7 20407c84 call memcpy4 
+76f8 1e008c2c add alarm ,44 ,contr 
+76f9 20407c84 call memcpy4 
+76fa 19622200 copy timeup ,rega 
+76fb 1a220a00 copy rega ,contw 
+76fc 20407739 call bn_submod_256 
+76fd da400411 arg mem_tmp2_256 ,regb 
+76fe 1a420a00 copy regb ,contw 
+76ff 1e008c34 add alarm ,52 ,contr 
+7700 20407c83 call memcpy12 
+7701 1e008c20 add alarm ,32 ,contr 
+7702 20407c83 call memcpy12 
+7703 20407c9b call memset0_4 
+7704 1e008c30 add alarm ,48 ,contr 
+7705 20407c84 call memcpy4 
+7706 19622200 copy timeup ,rega 
+7707 1a220a00 copy rega ,contw 
+7708 20407739 call bn_submod_256 
+7709 da400411 arg mem_tmp2_256 ,regb 
+770a 1a420a00 copy regb ,contw 
+770b 1e008c38 add alarm ,56 ,contr 
+770c 20407c89 call memcpy8 
+770d 20407c9b call memset0_4 
+770e 1e008c24 add alarm ,36 ,contr 
+770f 20407c83 call memcpy12 
+7710 20407c9b call memset0_4 
+7711 1e008c34 add alarm ,52 ,contr 
+7712 20407c84 call memcpy4 
+7713 19622200 copy timeup ,rega 
+7714 1a220a00 copy rega ,contw 
+7715 20207739 branch bn_submod_256 
+
+bn_load_mem:
+7716 18007220 force 32 ,loopcnt 
+7717 d8a006b1 arg mem_regext ,contw 
+7718 98a08a00 iadd contw ,contw 
+7719 20207cda branch memcpy 
+
+bn_load_256:
+771a 18007208 force 8 ,loopcnt 
+771b 202074f7 branch bn_load_0 
+
+bn_sqrmod_256:
+771c 1a222400 copy rega ,regb 
+771d 20207684 branch bn_mulmod_256 
+
+bn_add_256:
+771e 18007208 force 8 ,loopcnt 
+771f 202074c0 branch bn_add + 1 
+
+bn_addmod_256:
+7720 2040771e call bn_add_256 
+7721 18a22200 copy contw ,rega 
+7722 20207724 branch bn_lshiftmod_ismod_256 
+
+bn_lshiftmod_256:
+7723 20407751 call bn_lshift_256 
+
+bn_lshiftmod_ismod_256:
+7724 2a6ffe00 isolate1 0 ,regc 
+7725 2020f72d branch bn_lshiftmod_p_256 ,true 
+7726 da400569 arg mem_p_256 ,regb 
+7727 1a222600 copy rega ,regc 
+7728 1a20a3e0 increase -32 ,rega 
+7729 20407754 call bn_bigeq_256 
+772a 24610000 nrtn positive 
+772b 1a622200 copy regc ,rega 
+772c 20207735 branch sub_p2_256 
+
+bn_lshiftmod_p_256:
+772d 20407735 call sub_p2_256 
+772e 1a222600 copy rega ,regc 
+772f 1a20a3e0 increase -32 ,rega 
+7730 da400569 arg mem_p_256 ,regb 
+7731 20407754 call bn_bigeq_256 
+7732 24610000 nrtn positive 
+7733 1a622200 copy regc ,rega 
+7734 20207735 branch sub_p2_256 
+
+sub_p2_256:
+7735 1a20a3e0 increase -32 ,rega 
+7736 da400569 arg mem_p_256 ,regb 
+7737 1a220a00 copy rega ,contw 
+7738 2020774c branch bn_sub_256 
+
+bn_submod_256:
+7739 2040774c call bn_sub_256 
+773a 2020f743 branch bn_submod_256_np ,true 
+773b 18a0a3e0 add contw ,-32 ,rega 
+773c da400569 arg mem_p_256 ,regb 
+773d 20407754 call bn_bigeq_256 
+773e 24610000 nrtn positive 
+773f da400569 arg mem_p_256 ,regb 
+7740 18a0a3e0 add contw ,-32 ,rega 
+7741 1a220a00 copy rega ,contw 
+7742 2020774c branch bn_sub_256 
+
+bn_submod_256_np:
+7743 18a0a3e0 add contw ,-32 ,rega 
+7744 da400569 arg mem_p_256 ,regb 
+7745 1a220a00 copy rega ,contw 
+7746 2040771e call bn_add_256 
+7747 20608000 rtn true 
+7748 18a0a3e0 add contw ,-32 ,rega 
+7749 da400569 arg mem_p_256 ,regb 
+774a 1a220a00 copy rega ,contw 
+774b 2020771e branch bn_add_256 
+
+bn_sub_256:
+774c 18007208 force 8 ,loopcnt 
+774d 202074ce branch bn_sub + 1 
+
+bn_rshift_256:
+774e 18007208 force 8 ,loopcnt 
+774f 1a20a21c increase 28 ,rega 
+7750 202074dd branch bn_rshift 
+
+bn_lshift_256:
+7751 18007208 force 8 ,loopcnt 
+7752 18002600 force 0 ,regc 
+7753 202074eb branch bn_lshift_0 
+
+bn_bigeq_256:
+7754 18007208 force 8 ,loopcnt 
+7755 1a20a21c increase 28 ,rega 
+7756 1a40a41c increase 28 ,regb 
+7757 202074b5 branch bn_bigeq_0 
+
+bn_eq_zero_256:
+7758 efe40006 ifetch 8 ,contr 
+7759 247a0000 nrtn blank 
+775a 202074a3 branch bn_eq_zero 
+
+bn_rshifteven_256:
+775b 1a226000 copy rega ,alarm 
+
+bn_rshifteven_256_1:
+775c 1e022200 copy alarm ,rega 
+775d efe08011 ifetch 1 ,rega 
+775e 2feffe00 isolate1 0 ,pdata 
+775f 20608000 rtn true 
+7760 2040774e call bn_rshift_256 
+7761 efe08012 ifetch 1 ,regb 
+7762 2fec0000 isolate0 0 ,pdata 
+7763 2020f76b branch bn_rshifteven_256_0 ,true 
+7764 da200569 arg mem_p_256 ,rega 
+7765 1a420a00 copy regb ,contw 
+7766 2040771e call bn_add_256 
+7767 efe08012 ifetch 1 ,regb 
+7768 9a60fe00 iadd regc ,pdata 
+7769 e7e08012 istore 1 ,regb 
+776a 1a40a5e0 increase -32 ,regb 
+
+bn_rshifteven_256_0:
+776b 1a40a220 add regb ,32 ,rega 
+776c 18007209 force 9 ,loopcnt 
+776d 204074dd call bn_rshift 
+776e 2020775c branch bn_rshifteven_256_1 
+
+ui_init:
+776f 20758000 rtn wake 
+7770 204023d8 call lpm_disable_exen_output 
+7771 20407776 call ui_button_init 
+7772 2040781b call ui_timer_init 
+7773 202077ac branch ui_led_init_global 
+
+ui_dispatch:
+7774 204077cf call ui_led_dispatch 
+7775 2020780a branch ui_timer_check 
+
+ui_button_init:
+7776 6fe0c4ec fetch 1 ,mem_ui_button_gpio 
+7777 c17f8000 rtneq ui_button_gpio_disable 
+7778 98000400 iforce temp 
+7779 20406ef7 call gpio_config_output 
+777a 6848c4ec fetcht 1 ,mem_ui_button_gpio 
+777b 20406ef3 call gpio_out_inactive 
+777c 20000064 nop 100 
+777d 6848c4ec fetcht 1 ,mem_ui_button_gpio 
+777e 20406edd call gpio_config_input 
+777f 20207780 branch ui_button_polling 
+
+ui_button_polling:
+7780 44f9c01e bpatch patch1e_3 ,mem_patch1e 
+7781 6fe0c4ec fetch 1 ,mem_ui_button_gpio 
+7782 c17f8000 rtneq ui_button_gpio_disable 
+7783 1fe20400 copy pdata ,temp 
+7784 20406ee6 call gpio_get_bit 
+7785 2420f792 nbranch ui_button_up ,true 
+
+ui_button_down:
+7786 2040779c call ui_button_check_long_press 
+7787 6fe144e9 fetch 2 ,mem_ui_state_map 
+7788 79207e0c set1 ui_state_btn_down ,pdata 
+7789 67e144e9 store 2 ,mem_ui_state_map 
+778a 6fe0c4e4 fetch 1 ,mem_ui_button_last_state 
+778b c1000000 rtneq ui_button_state_down 
+778c 7044e400 jam ui_button_state_down ,mem_ui_button_last_state 
+778d 6fe0c4eb fetch 1 ,mem_ui_button_timeout 
+778e 67e0c4e3 store 1 ,mem_ui_button_timer 
+778f 204077a3 call lpm_button_get_wake_lock 
+7790 70066f2c jam bt_evt_button_down ,mem_fifo_temp 
+7791 2020782b branch ui_ipc_send_event 
+
+ui_button_up:
+7792 6fe144e9 fetch 2 ,mem_ui_state_map 
+7793 793ffe0c set0 ui_state_btn_down ,pdata 
+7794 67e144e9 store 2 ,mem_ui_state_map 
+7795 6fe0c4e4 fetch 1 ,mem_ui_button_last_state 
+7796 c1008000 rtneq ui_button_state_up 
+7797 7044e401 jam ui_button_state_up ,mem_ui_button_last_state 
+7798 7044e300 jam 0 ,mem_ui_button_timer 
+7799 204077a5 call lpm_button_clean_wake_lock 
+779a 70066f2d jam bt_evt_button_up ,mem_fifo_temp 
+779b 2020782b branch ui_ipc_send_event 
+
+ui_button_check_long_press:
+779c 6fe0c4e3 fetch 1 ,mem_ui_button_timer 
+779d 207a0000 rtn blank 
+779e 1fe0ffff increase -1 ,pdata 
+779f 67e0c4e3 store 1 ,mem_ui_button_timer 
+77a0 247a0000 nrtn blank 
+77a1 70066f10 jam bt_evt_button_long_pressed ,mem_fifo_temp 
+77a2 2020782b branch ui_ipc_send_event 
+
+lpm_button_get_wake_lock:
+77a3 d8e00007 arg wake_lock_button ,queue 
+77a4 202024e7 branch lpm_get_wake_lock 
+
+lpm_button_clean_wake_lock:
+77a5 d8e00007 arg wake_lock_button ,queue 
+77a6 202024eb branch lpm_put_wake_lock 
+
+calc_curr_struct_prt:
+77a7 44fa401e bpatch patch1e_4 ,mem_patch1e 
+77a8 6fe144ef fetch 2 ,mem_ui_led_struct_ptr 
+77a9 1a2fa40b mul32 rega ,led_offset_length ,regb 
+77aa 9a40a400 iadd regb ,regb 
+77ab 20600000 rtn 
+
+ui_led_init_global:
+77ac 6fe0c4ee fetch 1 ,mem_ui_led_struct_num 
+77ad 207a0000 rtn blank 
+77ae 1fe27200 copy pdata ,loopcnt 
+77af 6fe144ef fetch 2 ,mem_ui_led_struct_ptr 
+77b0 1fe22400 copy pdata ,regb 
+
+ui_led_init_loop:
+77b1 1a40a602 add regb ,led_offset_led_gpio ,regc 
+77b2 e8408013 ifetcht 1 ,regc 
+77b3 204077b7 call ui_led_init_set 
+77b4 1a40a40b increase led_offset_length ,regb 
+77b5 c20077b1 loop ui_led_init_loop 
+77b6 20600000 rtn 
+
+ui_led_init_set:
+77b7 6fe0c4ed fetch 1 ,mem_ui_led_init_state_set 
+77b8 203a6ef3 branch gpio_out_inactive ,blank 
+77b9 20206ef7 branch gpio_out_active 
+
+ui_led_on_global:
+77ba 204077a7 call calc_curr_struct_prt 
+77bb 58000002 setarg ui_led_state_lighting 
+77bc e7e08012 istore 1 ,regb 
+77bd 20407804 call ui_led_stop_timer 
+77be 202077db branch ui_led_on_static 
+
+ui_led_blink_stop_global:
+
+ui_led_off_global:
+77bf 204077a7 call calc_curr_struct_prt 
+77c0 58000003 setarg ui_led_state_darking 
+77c1 e7e08012 istore 1 ,regb 
+77c2 20407804 call ui_led_stop_timer 
+77c3 202077d8 branch ui_led_off_static 
+
+ui_led_blink_start_global:
+77c4 204077a7 call calc_curr_struct_prt 
+77c5 58000001 setarg ui_led_state_blink_start 
+77c6 e7e08012 istore 1 ,regb 
+77c7 580000ff setarg led_infinite_flash_num 
+77c8 e7e08005 istore 1 ,contw 
+77c9 202077d8 branch ui_led_off_static 
+
+ui_led_set_style_global:
+77ca 204077a7 call calc_curr_struct_prt 
+77cb df20000b arg led_offset_length ,loopcnt 
+77cc 1a620c00 copy regc ,contr 
+77cd 1a420a00 copy regb ,contw 
+77ce 20207ccc branch memcpy_fast 
+
+ui_led_dispatch:
+77cf 6fe0c4ee fetch 1 ,mem_ui_led_struct_num 
+77d0 207a0000 rtn blank 
+77d1 da200000 arg 0 ,rega 
+
+ui_led_blink_polling:
+77d2 204077de call ui_led_change_style_by_type 
+77d3 1a20a201 increase 1 ,rega 
+77d4 6fe0c4ee fetch 1 ,mem_ui_led_struct_num 
+77d5 9a267c00 isub rega ,null 
+77d6 20628000 rtn zero 
+77d7 202077d2 branch ui_led_blink_polling 
+
+ui_led_off_static:
+77d8 1a40a602 add regb ,led_offset_led_gpio ,regc 
+77d9 e8408013 ifetcht 1 ,regc 
+77da 20206ef3 branch gpio_out_inactive 
+
+ui_led_on_static:
+77db 1a40a602 add regb ,led_offset_led_gpio ,regc 
+77dc e8408013 ifetcht 1 ,regc 
+77dd 20206ef7 branch gpio_out_active 
+
+ui_led_change_style_by_type:
+77de 1a208e0b add rega ,ui_led_blink ,queue 
+77df 20407cef call timer_check 
+77e0 247a0000 nrtn blank 
+77e1 204077a7 call calc_curr_struct_prt 
+77e2 efe08012 ifetch 1 ,regb 
+77e3 c00177db beq ui_led_state_lighting ,ui_led_on_static 
+77e4 c001f7d8 beq ui_led_state_darking ,ui_led_off_static 
+77e5 c00077d8 beq ui_led_state_blink_stop ,ui_led_off_static 
+77e6 c002f7f2 beq ui_led_state_blink_darking ,ui_led_blink_state_darking 
+
+ui_led_blink_state_lighting:
+77e7 204077db call ui_led_on_static 
+77e8 1a40a607 add regb ,led_offset_cb_ledon ,regc 
+77e9 20407c49 call push_stack 
+77ea efe10013 ifetch 2 ,regc 
+77eb 20407d79 call callback_func 
+77ec 20407c55 call pop_stack 
+77ed 58000005 setarg ui_led_state_blink_darking 
+77ee e7e08012 istore 1 ,regb 
+77ef 1a40a603 add regb ,led_offset_on_time ,regc 
+77f0 efe10013 ifetch 2 ,regc 
+77f1 20207802 branch ui_led_blink_timer_start 
+
+ui_led_blink_state_darking:
+77f2 204077d8 call ui_led_off_static 
+77f3 1a40a609 add regb ,led_offset_cb_ledoff ,regc 
+77f4 20407c49 call push_stack 
+77f5 efe10013 ifetch 2 ,regc 
+77f6 20407d79 call callback_func 
+77f7 20407c55 call pop_stack 
+77f8 1a40a601 add regb ,led_offset_blink_count ,regc 
+77f9 efe08013 ifetch 1 ,regc 
+77fa c07ff7fe beq led_infinite_flash_num ,ui_led_blink_infinite 
+77fb 1fe0ffff increase -1 ,pdata 
+77fc e7e08013 istore 1 ,regc 
+77fd 203a77bf branch ui_led_blink_stop_global ,blank 
+
+ui_led_blink_infinite:
+77fe 58000004 setarg ui_led_state_blink_lighting 
+77ff e7e08012 istore 1 ,regb 
+7800 1a40a605 add regb ,led_offset_off_time ,regc 
+7801 efe10013 ifetch 2 ,regc 
+
+ui_led_blink_timer_start:
+7802 1a208e0b add rega ,ui_led_blink ,queue 
+7803 20207ce1 branch timer_init 
+
+ui_led_stop_timer:
+7804 58000000 setarg 0 
+7805 20207802 branch ui_led_blink_timer_start 
+
+ui_timer_timeout:
+7806 58001000 setarg 0x1000 
+7807 1ff07e00 lshift16 pdata ,pdata 
+7808 9a40a400 iadd regb ,regb 
+7809 20600000 rtn 
+
+ui_timer_check:
+780a 44fac01e bpatch patch1e_5 ,mem_patch1e 
+780b da200000 arg 0 ,rega 
+780c 684a44e5 fetcht 4 ,mem_ui_timer_last_btclk 
+780d 1c422400 copy clkn_bt ,regb 
+780e 1a427e00 copy regb ,pdata 
+780f 98467c00 isub temp ,null 
+7810 24417806 ncall ui_timer_timeout ,positive 
+
+ui_timer_check_loop:
+7811 1a427e00 copy regb ,pdata 
+7812 184084a0 increase 160 ,temp 
+7813 184084a0 increase 160 ,temp 
+7814 98467c00 isub temp ,null 
+7815 2421781e nbranch ui_timer_check_end ,positive 
+7816 1a20a201 increase 1 ,rega 
+7817 1a217e0f and rega ,0x0f ,pdata 
+7818 243a7811 nbranch ui_timer_check_loop ,blank 
+7819 da200000 arg 0 ,rega 
+781a 20407824 call ui_timer_check_send_evt 
+
+ui_timer_init:
+781b 1c427e00 copy clkn_bt ,pdata 
+781c 67e244e5 store 4 ,mem_ui_timer_last_btclk 
+781d 20600000 rtn 
+
+ui_timer_check_end:
+781e 1a227e00 copy rega ,pdata 
+781f 207a0000 rtn blank 
+7820 18408560 increase -160 ,temp 
+7821 18408560 increase -160 ,temp 
+7822 793f841c set0 28 ,temp 
+7823 604a44e5 storet 4 ,mem_ui_timer_last_btclk 
+
+ui_timer_check_send_evt:
+7824 202042d4 branch app_evt_timer 
+
+ui_ipc_get_lock:
+7825 7044d101 jam 1 ,mem_ipc_lock_bt 
+
+ui_ipc_get_lock_wait:
+7826 6fe0c4d2 fetch 1 ,mem_ipc_lock_c51 
+7827 243a7826 nbranch ui_ipc_get_lock_wait ,blank 
+7828 20600000 rtn 
+
+ui_ipc_put_lock:
+7829 7044d100 jam 0 ,mem_ipc_lock_bt 
+782a 20600000 rtn 
+
+ui_ipc_send_event:
+782b 44fb401e bpatch patch1e_6 ,mem_patch1e 
+782c 20407825 call ui_ipc_get_lock 
+782d 1a227e00 copy rega ,pdata 
+782e 67e20684 store 4 ,mem_rega 
+782f da2044d3 arg mem_ipc_fifo_bt2c51 ,rega 
+7830 20407d8b call fifo_in 
+7831 6fe20684 fetch 4 ,mem_rega 
+7832 1fe22200 copy pdata ,rega 
+7833 20207829 branch ui_ipc_put_lock 
+
+ui_ipc_send_cmd:
+7834 44fbc01e bpatch patch1e_7 ,mem_patch1e 
+7835 20407825 call ui_ipc_get_lock 
+7836 1a227e00 copy rega ,pdata 
+7837 67e20684 store 4 ,mem_rega 
+7838 da2044db arg mem_ipc_fifo_c512bt ,rega 
+7839 20407d8b call fifo_in 
+783a 6fe20684 fetch 4 ,mem_rega 
+783b 1fe22200 copy pdata ,rega 
+783c 20207829 branch ui_ipc_put_lock 
+
+ui_ipc_clean_all_fifo:
+783d 58000000 setarg 0 
+783e 67e444db store util_fifo_len ,mem_ipc_fifo_c512bt 
+783f 67e444d3 store util_fifo_len ,mem_ipc_fifo_bt2c51 
+7840 20600000 rtn 
+
+check_51cmd:
+7841 44fc401f bpatch patch1f_0 ,mem_patch1f 
+7842 6fe0c114 fetch 1 ,mem_hci_cmd 
+7843 247a0000 nrtn blank 
+7844 da2044db arg mem_ipc_fifo_c512bt ,rega 
+7845 20407da3 call fifo_is_empty 
+7846 207a0000 rtn blank 
+7847 70066e00 jam ipc_continue_process ,mem_ipc_skip_continue_proc 
+7848 2040784c call check_51cmd_once 
+7849 6fe0866e fetch 1 ,mem_ipc_skip_continue_proc 
+784a 203a7841 branch check_51cmd ,blank 
+784b 20600000 rtn 
+
+check_51cmd_once:
+784c 20407825 call ui_ipc_get_lock 
+784d da2044db arg mem_ipc_fifo_c512bt ,rega 
+784e 20407d97 call fifo_out 
+784f 1fe20400 copy pdata ,temp 
+7850 20407829 call ui_ipc_put_lock 
+7851 44fcc01f bpatch patch1f_1 ,mem_patch1f 
+7852 18427e00 copy temp ,pdata 
+7853 207a0000 rtn blank 
+7854 c006f870 beq bt_cmd_start_adv ,check_51cmd_adv 
+7855 c0077876 beq bt_cmd_stop_adv ,check_51cmd_stop_adv 
+7856 c007f87b beq bt_cmd_start_direct_adv ,check_51cmd_direct_adv 
+7857 c0087881 beq bt_cmd_stop_direct_adv ,check_51cmd_stop_direct_adv 
+7858 c009f88b beq bt_cmd_led_off ,check_51cmd_led_off 
+7859 c00a788d beq bt_cmd_led_on ,check_51cmd_led_on 
+785a c00af88f beq bt_cmd_led_blink ,check_51cmd_led_start_blink 
+785b c00b7899 beq bt_cmd_le_start_conn ,check_51cmd_le_start_con 
+785c c00bf89c beq bt_cmd_le_start_scan ,check_51cmd_start_scan 
+785d c00c789e beq bt_cmd_le_stop_scan ,check_51cmd_stop_scan 
+785e c00cf8a1 beq bt_cmd_enter_hibernate ,check_51cmd_hibernate 
+785f 67e0866f store 1 ,mem_fifo_temp 
+
+check_51cmd_once_continue:
+7860 6fe0866f fetch 1 ,mem_fifo_temp 
+7861 c584f869 bmark0 mark_context ,check_51cmd_check_idle 
+7862 44fd401f bpatch patch1f_2 ,mem_patch1f 
+7863 6fe0866f fetch 1 ,mem_fifo_temp 
+7864 c008f886 beq bt_cmd_le_disconnect ,check_51cmd_le_disconnect 
+7865 c00df8a9 beq bt_cmd_le_smp_security_request ,check_51cmd_le_smp_sec_req 
+7866 c009788a beq bt_cmd_le_update_conn ,check_51cmd_ble_update_connect_param 
+7867 c00feea3 beq bt_cmd_store_reconn_info_le ,eeprom_store_le_reconn_info 
+7868 20600000 rtn 
+
+check_51cmd_check_idle:
+7869 67e0866f store 1 ,mem_fifo_temp 
+786a 2040205d call context_check_idle 
+786b 2022f86e branch check_51cmd_restore ,zero 
+786c 20402062 call context_search_plap 
+786d 24628000 nrtn zero 
+
+check_51cmd_restore:
+786e 70066e01 jam ipc_skip_continue_process ,mem_ipc_skip_continue_proc 
+786f 20207834 branch ui_ipc_send_cmd 
+
+check_51cmd_adv:
+7870 70438801 jam on ,mem_le_adv_enable 
+7871 70438b00 jam adv_ind ,mem_le_adv_type 
+7872 6fe144e9 fetch 2 ,mem_ui_state_map 
+7873 79207e0b set1 ui_state_ble_adv ,pdata 
+7874 67e144e9 store 2 ,mem_ui_state_map 
+7875 20600000 rtn 
+
+check_51cmd_stop_adv:
+7876 6fe144e9 fetch 2 ,mem_ui_state_map 
+7877 793ffe0b set0 ui_state_ble_adv ,pdata 
+7878 67e144e9 store 2 ,mem_ui_state_map 
+7879 70438800 jam off ,mem_le_adv_enable 
+787a 20600000 rtn 
+
+check_51cmd_direct_adv:
+787b 70438801 jam on ,mem_le_adv_enable 
+787c 70438b01 jam adv_direct_ind ,mem_le_adv_type 
+787d 6fe144e9 fetch 2 ,mem_ui_state_map 
+787e 79207e0b set1 ui_state_ble_adv ,pdata 
+787f 67e144e9 store 2 ,mem_ui_state_map 
+7880 20600000 rtn 
+
+check_51cmd_stop_direct_adv:
+7881 6fe144e9 fetch 2 ,mem_ui_state_map 
+7882 793ffe0b set0 ui_state_ble_adv ,pdata 
+7883 67e144e9 store 2 ,mem_ui_state_map 
+7884 70438800 jam off ,mem_le_adv_enable 
+7885 20600000 rtn 
+
+check_51cmd_le_disconnect:
+7886 58000014 setarg 20 
+7887 67e10196 store 2 ,mem_le_superto 
+7888 67e142f5 store 2 ,mem_le_init_superto 
+7889 202030c5 branch le_send_terminate_ind_user_terminated 
+
+check_51cmd_ble_update_connect_param:
+788a 20202e93 branch le_l2cap_tx_update_req 
+
+check_51cmd_led_off:
+788b da200000 arg 0 ,rega 
+788c 202077bf branch ui_led_off_global 
+
+check_51cmd_led_on:
+788d da200000 arg 0 ,rega 
+788e 202077ba branch ui_led_on_global 
+
+check_51cmd_led_start_blink:
+788f da200000 arg 0 ,rega 
+7890 204077a7 call calc_curr_struct_prt 
+7891 efe08012 ifetch 1 ,regb 
+7892 c000f896 beq ui_led_state_blink_start ,check_51cmd_led_start_blink_in_blink 
+7893 c0027896 beq ui_led_state_blink_lighting ,check_51cmd_led_start_blink_in_blink 
+7894 c002f896 beq ui_led_state_blink_darking ,check_51cmd_led_start_blink_in_blink 
+7895 202077c4 branch ui_led_blink_start_global 
+
+check_51cmd_led_start_blink_in_blink:
+7896 efe08006 ifetch 1 ,contr 
+7897 c17f8000 rtneq led_infinite_flash_num 
+7898 202077c4 branch ui_led_blink_start_global 
+
+check_51cmd_le_start_con:
+7899 70434301 jam on ,mem_le_scan_enable 
+789a 7041141b jam hci_cmd_le_create_conn ,mem_hci_cmd 
+789b 20600000 rtn 
+
+check_51cmd_start_scan:
+789c 70434301 jam on ,mem_le_scan_enable 
+789d 20600000 rtn 
+
+check_51cmd_stop_scan:
+789e 70434300 jam off ,mem_le_scan_enable 
+789f 70411400 jam 0 ,mem_hci_cmd 
+78a0 20600000 rtn 
+
+check_51cmd_hibernate:
+78a1 6fe143d5 fetch 2 ,mem_cb_before_hibernate 
+78a2 20407d79 call callback_func 
+78a3 6fe0c4ec fetch 1 ,mem_ui_button_gpio 
+78a4 c07ff8a7 beq ui_button_gpio_disable ,check_51cmd_hibernate_btn_disabled 
+78a5 1fe20400 copy pdata ,temp 
+78a6 20406edd call gpio_config_input 
+
+check_51cmd_hibernate_btn_disabled:
+78a7 2040783d call ui_ipc_clean_all_fifo 
+78a8 20202417 branch lpm_hibernate 
+
+check_51cmd_le_smp_sec_req:
+78a9 20202ed5 branch le_send_smp_security_request 
+
+ui_check_paring_button:
+78aa 6fe0c4e9 fetch 1 ,mem_ui_state_map 
+78ab c4060000 rtnbit0 ui_state_btn_down 
+78ac 20600000 rtn 
+
+queue_init:
+78ad 6fe143fb fetch 2 ,mem_queue_ptr 
+78ae 1fe08a02 add pdata ,queue_offset_curr_num ,contw 
+78af 58000000 setarg 0 
+78b0 e7e18005 istore 3 ,contw 
+78b1 20600000 rtn 
+
+queue_push:
+78b2 44fdc01f bpatch patch1f_3 ,mem_patch1f 
+78b3 20407dbc call disable_user 
+78b4 204078fe call queue_full 
+78b5 207a0000 rtn blank 
+78b6 6fe143fb fetch 2 ,mem_queue_ptr 
+78b7 1fe0a402 add pdata ,queue_offset_curr_num ,regb 
+78b8 e8408012 ifetcht 1 ,regb 
+78b9 18408401 increase 1 ,temp 
+78ba e0408012 istoret 1 ,regb 
+78bb e840803f ifetcht 1 ,pdata 
+78bc 18427200 copy temp ,loopcnt 
+78bd 1fe0a404 add pdata ,queue_offset_write_ptr ,regb 
+78be efe08012 ifetch 1 ,regb 
+78bf 984ffe00 imul32 temp ,pdata 
+78c0 98c08a00 iadd contr ,contw 
+78c1 1a220c00 copy rega ,contr 
+
+calc_queue_next_ptr:
+78c2 20407cda call memcpy 
+78c3 20407902 call queue_get_size 
+78c4 1fe0ffff pincrease -1 
+78c5 e8408012 ifetcht 1 ,regb 
+78c6 18408401 increase 1 ,temp 
+78c7 98410400 iand temp ,temp 
+78c8 e0408012 istoret 1 ,regb 
+78c9 20207dba branch enable_user 
+
+queue_pop:
+78ca 44fe401f bpatch patch1f_4 ,mem_patch1f 
+78cb 20407dbc call disable_user 
+78cc 204078fa call queue_empty 
+78cd 207a0000 rtn blank 
+78ce 6fe143fb fetch 2 ,mem_queue_ptr 
+78cf 1fe0a402 add pdata ,queue_offset_curr_num ,regb 
+78d0 e8408012 ifetcht 1 ,regb 
+78d1 184085ff increase -1 ,temp 
+78d2 e0408012 istoret 1 ,regb 
+78d3 e840803f ifetcht 1 ,pdata 
+78d4 18427200 copy temp ,loopcnt 
+78d5 1fe0a403 add pdata ,queue_offset_read_ptr ,regb 
+78d6 efe08012 ifetch 1 ,regb 
+78d7 984ffe00 imul32 temp ,pdata 
+78d8 98c08c00 iadd contr ,contr 
+78d9 18c08c01 increase 1 ,contr 
+78da 1a220a00 copy rega ,contw 
+78db 202078c2 branch calc_queue_next_ptr 
+
+queue_get_new_ele:
+78dc 20407dbc call disable_user 
+78dd 204078fa call queue_empty 
+78de 207a0000 rtn blank 
+78df 6fe143fb fetch 2 ,mem_queue_ptr 
+78e0 e840803f ifetcht 1 ,pdata 
+78e1 18427200 copy temp ,loopcnt 
+78e2 1fe0a403 add pdata ,queue_offset_read_ptr ,regb 
+78e3 efe08012 ifetch 1 ,regb 
+78e4 984ffe00 imul32 temp ,pdata 
+78e5 98c08c00 iadd contr ,contr 
+78e6 18c08c01 increase 1 ,contr 
+78e7 18c22400 copy contr ,regb 
+78e8 1a220a00 copy rega ,contw 
+78e9 20407cda call memcpy 
+78ea 20207dba branch enable_user 
+
+queue_store_new_ele:
+78eb 20407dbc call disable_user 
+78ec 204078fa call queue_empty 
+78ed 207a0000 rtn blank 
+78ee 6fe143fb fetch 2 ,mem_queue_ptr 
+78ef e840803f ifetcht 1 ,pdata 
+78f0 18427200 copy temp ,loopcnt 
+78f1 1fe0a403 add pdata ,queue_offset_read_ptr ,regb 
+78f2 efe08012 ifetch 1 ,regb 
+78f3 984ffe00 imul32 temp ,pdata 
+78f4 98c08c00 iadd contr ,contr 
+78f5 18c08a02 add contr ,2 ,contw 
+78f6 1a220c00 copy rega ,contr 
+78f7 1f20f3ff increase -1 ,loopcnt 
+78f8 20407cda call memcpy 
+78f9 20207dba branch enable_user 
+
+queue_empty:
+78fa 6fe143fb fetch 2 ,mem_queue_ptr 
+78fb 1fe08c02 add pdata ,queue_offset_curr_num ,contr 
+78fc efe08006 ifetch 1 ,contr 
+78fd 20600000 rtn 
+
+queue_full:
+78fe 20407902 call queue_get_size 
+78ff e8408006 ifetcht 1 ,contr 
+7900 98467e00 isub temp ,pdata 
+7901 20600000 rtn 
+
+queue_get_size:
+7902 6fe143fb fetch 2 ,mem_queue_ptr 
+7903 1fe08c01 add pdata ,queue_offset_length ,contr 
+7904 efe08006 ifetch 1 ,contr 
+7905 20600000 rtn 
+
+usb_isr:
+7906 44fec01f bpatch patch1f_5 ,mem_patch1f 
+7907 6ff08c22 fetch 1 ,core_usb_status 
+7908 2feffe03 isolate1 usb_status_reset ,pdata 
+7909 2040f915 call usb_init_restart ,true 
+790a 6ff10c22 fetch 2 ,core_usb_status 
+790b 67f10c22 store 2 ,core_usb_status 
+790c 67e10709 store 2 ,mem_usb_status 
+790d 20407973 call usb_nak_state_judge 
+790e 204079a2 call usb_rx 
+790f 20407b96 call usb0_tx 
+7910 20407bdf call usb_tx 
+7911 2020796b branch usb_nak_state 
+
+usb_init:
+7912 44ff401f bpatch patch1f_6 ,mem_patch1f 
+7913 20407396 call enable_authrom 
+7914 20407932 call usb_init_param 
+
+usb_init_restart:
+7915 708c0000 jam 0x00 ,core_usb_config 
+7916 20002710 nop 10000 
+7917 708c1200 jam 0x0 ,core_usb_hmode 
+7918 6ff10050 fetch 2 ,core_clkoff 
+7919 793ffe0a set0 clock_off_usb ,pdata 
+791a 67f10050 store 2 ,core_clkoff 
+791b 708c1021 jam 0x21 ,core_usb_epmap 
+791c 708c119d jam 0x9d ,core_usb_pupd 
+791d 708c003c jam 0x3c ,core_usb_config 
+791e 58000763 setarg mem_usb_rxbuf 
+791f 67f10c02 store 2 ,core_usb_rx_saddr 
+7920 67f10c06 store 2 ,core_usb_rxptr 
+7921 580007a3 setarg mem_usb_rxbuf_end 
+7922 67f10c04 store 2 ,core_usb_rx_eaddr 
+7923 708c1280 jam 0x80 ,core_usb_hmode 
+7924 708c0100 jam 0 ,core_usb_addr 
+7925 708c22ff jam 0xff ,core_usb_status 
+7926 5800095f setarg mem_usb_clear_mem_end 
+7927 d8a0086d arg mem_usb_clear_mem_start ,contw 
+7928 98a67200 isub contw ,loopcnt 
+7929 20207ca1 branch clear_mem 
+
+usb_offline_check_init:
+792a 6848886c fetcht 1 ,mem_usb_offline_check_gpio 
+792b 20206edd branch gpio_config_input 
+
+usb_offline_state:
+792c 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+792d 207a0000 rtn blank 
+792e 6848886c fetcht 1 ,mem_usb_offline_check_gpio 
+792f 20406ee6 call gpio_get_bit 
+7930 2020f915 branch usb_init_restart ,true 
+7931 20600000 rtn 
+
+usb_init_param:
+7932 70086b02 jam dev_default ,mem_usb0_state 
+7933 58000000 setarg 0x0 
+7934 67e087a6 store 1 ,mem_remain 
+7935 67e10865 store 2 ,mem_usb_zero_packet 
+7936 1fe0fe01 pincrease 1 
+7937 67e10867 store 2 ,mem_usb_ones_packet 
+7938 1fe0fe01 pincrease 1 
+7939 67e10869 store 2 ,mem_usb_two_packet 
+793a d8a007fa arg mem_string0 ,contw 
+793b 58030404 setarg 0x030404 
+793c e7e18005 istore 3 ,contw 
+793d 58000409 setarg 0x0409 
+793e e7e10005 istore 2 ,contw 
+793f d8a007ff arg mem_string1 ,contw 
+7940 38015906 setsect 0 ,0x15906 
+7941 380610d2 setsect 1 ,0x210d2 
+7942 38090494 setsect 2 ,0x10494 
+7943 380c0001 setsect 3 ,0x1 
+7944 e7e48005 istore 9 ,contw 
+7945 d8a0081d arg mem_string2 ,contw 
+7946 3801570f setsect 0 ,0x1570f 
+7947 38055c9a setsect 1 ,0x15c9a 
+7948 380a56c6 setsect 2 ,0x256c6 
+7949 380dcdcd setsect 3 ,0x1cdcd 
+794a e7e48005 istore 9 ,contw 
+794b 38014420 setsect 0 ,0x14420 
+794c 38065d99 setsect 1 ,0x25d99 
+794d 380a5636 setsect 2 ,0x25636 
+794e 380c0001 setsect 3 ,0x1 
+794f e7e38005 istore 7 ,contw 
+7950 d8a0083b arg mem_string3 ,contw 
+7951 3801620a setsect 0 ,0x1620a 
+7952 38040c8c setsect 1 ,0xc8c 
+7953 380b0333 setsect 2 ,0x30333 
+7954 380cc0c0 setsect 3 ,0xc0c0 
+7955 e7e48005 istore 9 ,contw 
+7956 38003130 setsect 0 ,0x3130 
+7957 e7e10005 istore 2 ,contw 
+7958 58009272 setarg usb_kbdata_vendor_define_addr 
+7959 67e107a7 store 2 ,mem_hidreportdesc_kb 
+795a 580092cd setarg usb_msdata_addr 
+795b 67e107a9 store 2 ,mem_hidreportdesc_m 
+795c d8c09371 arg usb_devicedata_addr ,contr 
+795d d8a007ab arg mem_devicedesc ,contw 
+795e df200013 arg 19 ,loopcnt 
+795f 20407cda call memcpy 
+7960 d8c09384 arg usb_confdata_addr ,contr 
+7961 d8a007be arg mem_confdesc ,contw 
+7962 df20003c arg 60 ,loopcnt 
+7963 20407cda call memcpy 
+
+usb_config_cb:
+7964 6fe10859 fetch 2 ,mem_cb_usb_config 
+7965 20207d79 branch callback_func 
+
+usb_tx_interval_config:
+7966 6fe0885b fetch 1 ,mem_usb_tx_interval 
+7967 207a0000 rtn blank 
+7968 67e087e0 store 1 ,mem_confdesc + 34 
+7969 67e087f9 store 1 ,mem_confdesc + 59 
+796a 20600000 rtn 
+
+usb_nak_state:
+796b d8e00001 arg usb_timer_nak ,queue 
+796c 20407cef call timer_check 
+796d 247a0000 nrtn blank 
+796e 6fe0890f fetch 1 ,mem_usb_wakestate_onetime_flag 
+796f 247a0000 nrtn blank 
+7970 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+7971 245a7c38 ncall usb_mac_wakeup_judge ,blank 
+7972 20600000 rtn 
+
+usb_nak_state_judge:
+7973 6fe08709 fetch 1 ,mem_usb_status 
+7974 c2817976 bbit1 usb_status_nak ,usb_nak_state_timer_init 
+7975 20600000 rtn 
+
+usb_nak_state_timer_init:
+7976 2040797b call usb0_attached_state_judge 
+7977 20407cee call timer_reinit 
+7978 58000280 setarg timer_nak_delay 
+7979 d8e00001 arg usb_timer_nak ,queue 
+797a 20207ce1 branch timer_init 
+
+usb0_attached_state_judge:
+797b 6fe08900 fetch 1 ,mem_usb_state 
+797c c0817980 bne usb_connected ,usb_clear_halt_dispose 
+797d 70090f00 jam 0 ,mem_usb_wakestate_onetime_flag 
+797e 70091000 jam 0 ,mem_usb_mac_wakeup_trig 
+797f 20600000 rtn 
+
+usb_clear_halt_dispose:
+7980 6fe08912 fetch 1 ,mem_usb_clear_halt 
+7981 207a0000 rtn blank 
+7982 70091200 jam 0 ,mem_usb_clear_halt 
+7983 70090002 jam usb_connected ,mem_usb_state 
+7984 70090e01 jam 1 ,mem_usb_device_enumeration_endflag 
+7985 20600000 rtn 
+
+usb_rx_no_data:
+7986 6fe08709 fetch 1 ,mem_usb_status 
+7987 c28079af bbit1 usb_status_setup ,usb_class_type 
+7988 20600000 rtn 
+
+usb_rx_len:
+7989 69510c02 fetchr contus ,2 ,core_usb_rx_saddr 
+798a 6a110c04 fetchr contue ,2 ,core_usb_rx_eaddr 
+798b 68710c06 fetchr contu ,2 ,core_usb_rxptr 
+798c efe10003 ifetch 2 ,contu 
+798d 1fec8400 rshift8 pdata ,temp 
+798e 18518400 rshift4 temp ,temp 
+798f d8c00fff arg 0xfff ,contr 
+7990 98c17200 iand contr ,loopcnt 
+7991 6721070c storer loopcnt ,2 ,mem_usb_read_len 
+7992 20600000 rtn 
+
+usb_rx_data:
+7993 20407989 call usb_rx_len 
+
+usb_rx_read:
+7994 efe08003 ifetch 1 ,contu 
+7995 e7e08005 istore 1 ,contw 
+7996 c2007994 loop usb_rx_read 
+7997 60710c06 storer contu ,2 ,core_usb_rxptr 
+7998 20600000 rtn 
+
+usb_rx_ep13:
+7999 d8a0095f arg mem_usb_ccid_buf ,contw 
+799a 20407994 call usb_rx_read 
+799b d8400963 arg mem_usb_ccid_buf + 4 ,temp 
+799c 60590c0e storet 2 ,core_usb_tx_saddr3 
+799d 6fe08960 fetch 1 ,mem_usb_ccid_buf + 1 
+799e 1fe0fe06 pincrease 6 
+799f e7e08002 istore 1 ,temp 
+79a0 708c1808 jam 0x8 ,core_usb_trig 
+79a1 20600000 rtn 
+
+usb_rx:
+79a2 44ffc01f bpatch patch1f_7 ,mem_patch1f 
+79a3 6fe08709 fetch 1 ,mem_usb_status 
+79a4 c4028000 rtnbit0 usb_status_rxready 
+79a5 20407989 call usb_rx_len 
+79a6 2841fe0d compare 13 ,temp ,0xff 
+79a7 2020f999 branch usb_rx_ep13 ,true 
+79a8 d8a0086d arg mem_usb_setup ,contw 
+79a9 20407994 call usb_rx_read 
+79aa 6fe0870c fetch 1 ,mem_usb_read_len 
+79ab c0007986 beq 0x00 ,usb_rx_no_data 
+79ac c000f9b6 beq 0x01 ,usb_out_one_byte 
+79ad 1fe67c07 sub pdata ,7 ,null 
+79ae 20610000 rtn positive 
+
+usb_class_type:
+79af 47004020 bpatchx patch20_0 ,mem_patch20 
+79b0 793f8023 set0 mark_isstr ,mark 
+79b1 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+79b2 1fe17e80 and_into 0x80 ,pdata 
+79b3 c04079ba beq in_device ,usb_in_device 
+79b4 c00079c2 beq out_device ,usb_out_device 
+79b5 2020235a branch assert 
+
+usb_out_one_byte:
+79b6 6fe0886d fetch 1 ,mem_usb_setup 
+79b7 c3838000 rtnbit1 7 
+79b8 20407b6a call usb_get_led_status 
+79b9 202079e9 branch usb0_reply_zerolen 
+
+usb_in_device:
+79ba 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+79bb 1ff1fe00 rshift4 pdata ,pdata 
+79bc 1fe37e00 rshift pdata ,pdata 
+79bd 1fe17e03 and_into 0x03 ,pdata 
+79be c00079ca beq standard_req ,usb_in_standard_req 
+79bf c000f9d0 beq class_req ,usb_in_class_req 
+79c0 c00179d5 beq manufacturer_req ,usb_in_manufacturer_req 
+79c1 2020235a branch assert 
+
+usb_out_device:
+79c2 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+79c3 1ff1fe00 rshift4 pdata ,pdata 
+79c4 1fe37e00 rshift pdata ,pdata 
+79c5 1fe17e03 and_into 0x03 ,pdata 
+79c6 c00079d6 beq standard_req ,usb_out_standard_req 
+79c7 c000f9de beq class_req ,usb_out_class_req 
+79c8 c00179e3 beq manufacturer_req ,usb_out_manufacturer_req 
+79c9 2020235a branch assert 
+
+usb_in_standard_req:
+79ca 6fe0886e fetch 1 ,mem_usb_setup_brequest 
+79cb c00479eb beq get_configuration ,usb0_request_get_configuration 
+79cc c0037a01 beq get_descriptor ,usb0_request_get_descriptor 
+79cd c0057a46 beq get_interface ,usb0_request_get_interface 
+79ce c0007a58 beq get_status ,usb0_request_get_status 
+79cf 202079e4 branch usb0_force_stall 
+
+usb_in_class_req:
+79d0 6fe0886e fetch 1 ,mem_usb_setup_brequest 
+79d1 c0017a8d beq get_idle ,usb_get_idle 
+79d2 c000fa91 beq get_report ,usb_get_report 
+79d3 c001faa2 beq get_protocol ,usb_get_protocol_req 
+79d4 202079e4 branch usb0_force_stall 
+
+usb_in_manufacturer_req:
+79d5 202079e4 branch usb0_force_stall 
+
+usb_out_standard_req:
+79d6 6fe0886e fetch 1 ,mem_usb_setup_brequest 
+79d7 c000faac beq clear_feature ,usb0_request_clear_feature 
+79d8 c001fadb beq set_feature ,usb0_request_set_feature 
+79d9 c002fb06 beq set_address ,usb0_request_set_address 
+79da c004fb1f beq set_configuration ,usb0_request_set_configuration 
+79db c005fb3a beq set_interface ,usb0_request_set_interface 
+79dc c003f9e4 beq set_descriptor ,usb0_force_stall 
+79dd 202079e4 branch usb0_force_stall 
+
+usb_out_class_req:
+79de 6fe0886e fetch 1 ,mem_usb_setup_brequest 
+79df c0057b4b beq set_idle ,usb_set_idle 
+79e0 c004fb5d beq set_report ,usb_set_report 
+79e1 c005fb7c beq set_protocol ,usb_set_protocol_req 
+79e2 202079e4 branch usb0_force_stall 
+
+usb_out_manufacturer_req:
+79e3 202079e4 branch usb0_force_stall 
+
+usb0_force_stall:
+79e4 4700c020 bpatchx patch20_1 ,mem_patch20 
+79e5 6ff08c19 fetch 1 ,core_usb_stall 
+79e6 79207e00 set1 0 ,pdata 
+79e7 67f08c19 store 1 ,core_usb_stall 
+79e8 202079e9 branch usb0_reply_zerolen 
+
+usb0_reply_zerolen:
+79e9 708c1b01 jam 0x1 ,core_usb_clear_nak 
+79ea 20600000 rtn 
+
+usb0_request_get_configuration:
+79eb 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+79ec c0c079e4 bne in_device ,usb0_force_stall 
+79ed 6fe08871 fetch 1 ,mem_usb_setup_windex 
+79ee c08079e4 bne 0 ,usb0_force_stall 
+79ef 6fe08872 fetch 1 ,mem_usb_setup_windex + 1 
+79f0 c08079e4 bne 0 ,usb0_force_stall 
+79f1 6fe08873 fetch 1 ,mem_usb_setup_blength 
+79f2 c080f9e4 bne 1 ,usb0_force_stall 
+79f3 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
+79f4 c08079e4 bne 0 ,usb0_force_stall 
+79f5 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+79f6 c08079e4 bne 0 ,usb0_force_stall 
+79f7 6fe08870 fetch 1 ,mem_usb_setup_bvalue + 1 
+79f8 c08079e4 bne 0 ,usb0_force_stall 
+79f9 6fe0886b fetch 1 ,mem_usb0_state 
+79fa c00279fd beq dev_configured ,usb0_request_get_cfg_dev_cfg 
+79fb c001f9ff beq dev_address ,usb0_request_get_cfg_dev_addr 
+79fc 202079e4 branch usb0_force_stall 
+
+usb0_request_get_cfg_dev_cfg:
+79fd da400001 arg 1 ,regb 
+79fe 20207a72 branch usb_send_ones_packet 
+
+usb0_request_get_cfg_dev_addr:
+79ff da400001 arg 1 ,regb 
+7a00 20207a70 branch usb_send_zero_packet 
+
+usb0_request_get_descriptor:
+7a01 47014020 bpatchx patch20_2 ,mem_patch20 
+7a02 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+7a03 c000fa14 beq dsc_device ,dsc_device_info 
+7a04 c0017a2d beq dsc_config ,dsc_config_info 
+7a05 c001fa30 beq dsc_string ,dsc_string_info 
+7a06 c010fa09 beq dsc_hid ,dsc_hid_info 
+7a07 c0117a3e beq dsc_hid_report ,dsc_hid_report_info 
+7a08 202079e4 branch usb0_force_stall 
+
+dsc_hid_info:
+7a09 7008fd00 jam 0 ,mem_usb_get_protocol_flag 
+7a0a 6fe08871 fetch 1 ,mem_usb_setup_windex 
+7a0b c0007a0e beq 0 ,dsc_hid_info_interface0 
+7a0c c000fa11 beq 1 ,dsc_hid_info_interface1 
+7a0d 202079e4 branch usb0_force_stall 
+
+dsc_hid_info_interface0:
+7a0e 6a4087d1 fetchr regb ,1 ,mem_confdesc + 19 
+7a0f da2007d1 arg mem_confdesc + 19 ,rega 
+7a10 20207b8b branch usb0_respond 
+
+dsc_hid_info_interface1:
+7a11 6a4087ea fetchr regb ,1 ,mem_confdesc + 44 
+7a12 da2007ea arg mem_confdesc + 44 ,rega 
+7a13 20207b8b branch usb0_respond 
+
+dsc_device_info:
+7a14 6fe08911 fetch 1 ,mem_usb_set_high_addr_flag 
+7a15 245a7a25 ncall usb_set_high_addr ,blank 
+7a16 580007ab setarg mem_devicedesc 
+7a17 684887ab fetcht 1 ,mem_devicedesc 
+
+dsc_info_set_data_len:
+7a18 67e10908 store 2 ,mem_dsc_info_data_pointer 
+7a19 6048890a storet 1 ,mem_dsc_info_len 
+7a1a 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7a1b 98467c00 isub temp ,null 
+7a1c 24217a23 nbranch dsc_info_set_current_data_len ,positive 
+
+dsc_info_set_initial_data_len:
+7a1d 6fe0890a fetch 1 ,mem_dsc_info_len 
+
+dsc_info_set_data_size_completed:
+7a1e 98002400 iforce regb 
+7a1f 6fe10908 fetch 2 ,mem_dsc_info_data_pointer 
+7a20 1fe0fe01 add pdata ,1 ,pdata 
+7a21 98002200 iforce rega 
+7a22 20207b8b branch usb0_respond 
+
+dsc_info_set_current_data_len:
+7a23 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7a24 20207a1e branch dsc_info_set_data_size_completed 
+
+usb_set_high_addr:
+7a25 6ff08c01 fetch 1 ,core_usb_addr 
+7a26 245a7a29 ncall usb0_set_addr ,blank 
+7a27 70091100 jam 0 ,mem_usb_set_high_addr_flag 
+7a28 20600000 rtn 
+
+usb0_set_addr:
+7a29 6ff08c01 fetch 1 ,core_usb_addr 
+7a2a 79207e07 set1 7 ,pdata 
+7a2b 67f08c01 store 1 ,core_usb_addr 
+7a2c 20600000 rtn 
+
+dsc_config_info:
+7a2d 580007be setarg mem_confdesc 
+7a2e 684887be fetcht 1 ,mem_confdesc 
+7a2f 20207a18 branch dsc_info_set_data_len 
+
+dsc_string_info:
+7a30 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7a31 1fe67c03 sub pdata ,3 ,null 
+7a32 242179e4 nbranch usb0_force_stall ,positive 
+7a33 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7a34 da2007fa arg mem_string0 ,rega 
+7a35 c0007b89 beq 0 ,usb0_respond_length 
+7a36 79200023 set1 mark_isstr ,mark 
+7a37 da2007ff arg mem_string1 ,rega 
+7a38 c000fb89 beq 1 ,usb0_respond_length 
+7a39 da20081d arg mem_string2 ,rega 
+7a3a c0017b89 beq 2 ,usb0_respond_length 
+7a3b da20083b arg mem_string3 ,rega 
+7a3c c001fb89 beq 3 ,usb0_respond_length 
+7a3d 20600000 rtn 
+
+dsc_hid_report_info:
+7a3e 6fe10871 fetch 2 ,mem_usb_setup_windex 
+7a3f c000fa42 beq 1 ,dsc_hid_report_info0 
+7a40 6a2107a7 fetchr rega ,2 ,mem_hidreportdesc_kb 
+7a41 20207b89 branch usb0_respond_length 
+
+dsc_hid_report_info0:
+7a42 70090e01 jam 1 ,mem_usb_device_enumeration_endflag 
+7a43 70090001 jam usb_got_report_req ,mem_usb_state 
+7a44 6a2107a9 fetchr rega ,2 ,mem_hidreportdesc_m 
+7a45 20207b89 branch usb0_respond_length 
+
+usb0_request_get_interface:
+7a46 6fe0886b fetch 1 ,mem_usb0_state 
+7a47 c08279e4 bne dev_configured ,usb0_force_stall 
+7a48 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+7a49 c0c0f9e4 bne in_interface ,usb0_force_stall 
+7a4a 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7a4b c08079e4 bne 0 ,usb0_force_stall 
+7a4c 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+7a4d c08079e4 bne 0 ,usb0_force_stall 
+7a4e 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7a4f c080f9e4 bne 1 ,usb0_force_stall 
+7a50 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
+7a51 c08079e4 bne 0 ,usb0_force_stall 
+7a52 6fe08871 fetch 1 ,mem_usb_setup_windex 
+7a53 c08079e4 bne 0 ,usb0_force_stall 
+7a54 6fe08872 fetch 1 ,mem_usb_setup_windex + 1 
+7a55 c08079e4 bne 0 ,usb0_force_stall 
+7a56 da400001 arg 1 ,regb 
+7a57 20207a70 branch usb_send_zero_packet 
+
+usb0_request_get_status:
+7a58 6fe0886b fetch 1 ,mem_usb0_state 
+7a59 c00179e4 beq dev_default ,usb0_force_stall 
+7a5a 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7a5b c08079e4 bne 0 ,usb0_force_stall 
+7a5c 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+7a5d c08079e4 bne 0 ,usb0_force_stall 
+7a5e 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7a5f c08179e4 bne 2 ,usb0_force_stall 
+7a60 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
+7a61 c08079e4 bne 0 ,usb0_force_stall 
+7a62 6fe08872 fetch 1 ,mem_usb_setup_windex + 1 
+7a63 c08079e4 bne 0 ,usb0_force_stall 
+7a64 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+7a65 c0407a6b beq in_device ,usb0_get_status_in_device 
+7a66 c040fa76 beq in_interface ,usb0_get_status_in_interface 
+7a67 c0417a7a beq in_endpoint ,usb0_get_status_in_endpoint 
+7a68 202079e4 branch usb0_force_stall 
+
+usb0_sdsystem_dispose:
+7a69 70090301 jam 1 ,mem_sdsystem_wakeup_flag 
+7a6a 20207a74 branch usb_send_two_packet 
+
+usb0_get_status_in_device:
+7a6b 6fe08871 fetch 1 ,mem_usb_setup_windex 
+7a6c c08079e4 bne 0 ,usb0_force_stall 
+7a6d da400002 arg 2 ,regb 
+7a6e 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
+7a6f c000fa69 beq 0x01 ,usb0_sdsystem_dispose 
+
+usb_send_zero_packet:
+7a70 da200865 arg mem_usb_zero_packet ,rega 
+7a71 20207b8b branch usb0_respond 
+
+usb_send_ones_packet:
+7a72 da200867 arg mem_usb_ones_packet ,rega 
+7a73 20207b8b branch usb0_respond 
+
+usb_send_two_packet:
+7a74 da200869 arg mem_usb_two_packet ,rega 
+7a75 20207b8b branch usb0_respond 
+
+usb0_get_status_in_interface:
+7a76 6fe0886b fetch 1 ,mem_usb0_state 
+7a77 c08279e4 bne dev_configured ,usb0_force_stall 
+7a78 da400002 arg 2 ,regb 
+7a79 20207a70 branch usb_send_zero_packet 
+
+usb0_get_status_in_endpoint:
+7a7a 6fe0886b fetch 1 ,mem_usb0_state 
+7a7b c08279e4 bne dev_configured ,usb0_force_stall 
+7a7c 6fe08871 fetch 1 ,mem_usb_setup_windex 
+7a7d c040fa87 beq in_ep1 ,usb0_get_status_in_ep_in_ep1 
+7a7e c0417a89 beq in_ep2 ,usb0_get_status_in_ep_in_ep2 
+7a7f c041fa8b beq in_ep3 ,usb0_get_status_in_ep_in_ep3 
+7a80 1fe17e7f and_into 0x7f ,pdata 
+7a81 c0007a83 beq 0x00 ,usb0_get_status_in_ep_in_ep0 
+7a82 202079e4 branch usb0_force_stall 
+
+usb0_get_status_in_ep_in_ep0:
+7a83 6fe08904 fetch 1 ,mem_usb_ep0_stall_status 
+
+usb0_get_status_in_ep_in_ack:
+7a84 da400002 arg 2 ,regb 
+7a85 c000fa72 beq 1 ,usb_send_ones_packet 
+7a86 20207a70 branch usb_send_zero_packet 
+
+usb0_get_status_in_ep_in_ep1:
+7a87 6fe08905 fetch 1 ,mem_usb_ep1_stall_status 
+7a88 20207a84 branch usb0_get_status_in_ep_in_ack 
+
+usb0_get_status_in_ep_in_ep2:
+7a89 6fe08906 fetch 1 ,mem_usb_ep2_stall_status 
+7a8a 20207a84 branch usb0_get_status_in_ep_in_ack 
+
+usb0_get_status_in_ep_in_ep3:
+7a8b 6fe08907 fetch 1 ,mem_usb_ep3_stall_status 
+7a8c 20207a84 branch usb0_get_status_in_ep_in_ack 
+
+usb_get_idle:
+7a8d 7008fb01 jam 1 ,mem_usb_idle_flag 
+7a8e da2008fc arg mem_usb_idle_rate ,rega 
+7a8f da400001 arg 1 ,regb 
+7a90 20207b8b branch usb0_respond 
+
+usb_get_report:
+7a91 6fe1086f fetch 2 ,mem_usb_setup_bvalue 
+7a92 d84001ba arg pc_get_report ,temp 
+7a93 98467c00 isub temp ,null 
+7a94 2422f9e4 nbranch usb0_force_stall ,zero 
+
+usb_get_report_dispose:
+7a95 6fe088f8 fetch 1 ,mem_usb0_data_ready_report 
+7a96 243a7a9f nbranch usb_get_report_data_success ,blank 
+7a97 7008b500 jam pc_get_nondata ,mem_usb0_get_report_data 
+
+usb_get_report_send_data:
+7a98 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7a99 98002400 iforce regb 
+7a9a da2008b5 arg mem_usb0_get_report_data ,rega 
+7a9b 20407b8b call usb0_respond 
+
+usb_get_report_data_release:
+7a9c d8a008b5 arg mem_usb0_get_report_data ,contw 
+7a9d df200040 arg 64 ,loopcnt 
+7a9e 20207ca3 branch memset0 
+
+usb_get_report_data_success:
+7a9f 7008f800 jam 0 ,mem_usb0_data_ready_report 
+7aa0 7008b501 jam pc_get_data ,mem_usb0_get_report_data 
+7aa1 20207a98 branch usb_get_report_send_data 
+
+usb_get_protocol_req:
+7aa2 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7aa3 c080f9e4 bne 1 ,usb0_force_stall 
+7aa4 7008fd01 jam 1 ,mem_usb_get_protocol_flag 
+7aa5 da400001 arg 1 ,regb 
+7aa6 6fe088ff fetch 1 ,mem_usb_set_protocol_value 
+7aa7 c0007aaa beq 0 ,usb_get_report_protocol 
+7aa8 c000faab beq 1 ,usb_get_boot_protocol 
+7aa9 20207a70 branch usb_send_zero_packet 
+
+usb_get_report_protocol:
+7aaa 20207a72 branch usb_send_ones_packet 
+
+usb_get_boot_protocol:
+7aab 20207a70 branch usb_send_zero_packet 
+
+usb0_request_clear_feature:
+7aac 6fe0886b fetch 1 ,mem_usb0_state 
+7aad c08279e4 bne dev_configured ,usb0_force_stall 
+7aae 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7aaf c08079e4 bne 0 ,usb0_force_stall 
+7ab0 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
+7ab1 c08079e4 bne 0 ,usb0_force_stall 
+7ab2 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+7ab3 c08079e4 bne 0 ,usb0_force_stall 
+7ab4 6fe08872 fetch 1 ,mem_usb_setup_windex + 1 
+7ab5 c08079e4 bne 0 ,usb0_force_stall 
+7ab6 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+7ab7 c0007abb beq out_device ,usb0_request_clear_feature_out_device 
+7ab8 c000fac8 beq out_interface ,usb0_request_clear_feature_out_interface 
+7ab9 c0017ac9 beq out_endpoint ,usb0_request_clear_feature_out_endpoint 
+7aba 202079e4 branch usb0_force_stall 
+
+usb0_request_clear_feature_out_device:
+7abb 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7abc c080f9e4 bne device_remote_wakeup ,usb0_force_stall 
+7abd 6ff08c00 fetch 1 ,core_usb_config 
+7abe 793ffe07 set0 7 ,pdata 
+7abf 67f08c00 store 1 ,core_usb_config 
+7ac0 70090100 jam 0 ,mem_usb_remote_wakeup 
+7ac1 70090201 jam 1 ,mem_usb_clear_remote_wakeup 
+7ac2 6fe08903 fetch 1 ,mem_sdsystem_wakeup_flag 
+7ac3 203a79e9 branch usb0_reply_zerolen ,blank 
+7ac4 70090300 jam 0 ,mem_sdsystem_wakeup_flag 
+7ac5 70090200 jam 0 ,mem_usb_clear_remote_wakeup 
+7ac6 70090002 jam usb_connected ,mem_usb_state 
+7ac7 202079e9 branch usb0_reply_zerolen 
+
+usb0_request_clear_feature_out_interface:
+7ac8 202079e4 branch usb0_force_stall 
+
+usb0_request_clear_feature_out_endpoint:
+7ac9 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7aca c08079e4 bne endpoint_halt ,usb0_force_stall 
+7acb 6fe08871 fetch 1 ,mem_usb_setup_windex 
+7acc c040fad4 beq in_ep1 ,usb0_force_stall_ep1_in_off 
+7acd c0417ad7 beq in_ep2 ,usb0_force_stall_ep2_in_off 
+7ace c041fad9 beq in_ep3 ,usb0_force_stall_ep3_in_off 
+7acf 1fe17e7f and_into 0x7f ,pdata 
+7ad0 c0007ad2 beq 0x00 ,usb0_force_stall_ep0_in_off 
+7ad1 202079e4 branch usb0_force_stall 
+
+usb0_force_stall_ep0_in_off:
+7ad2 70090400 jam 0 ,mem_usb_ep0_stall_status 
+7ad3 202079e9 branch usb0_reply_zerolen 
+
+usb0_force_stall_ep1_in_off:
+7ad4 70090500 jam 0 ,mem_usb_ep1_stall_status 
+
+usb0_force_stall_ep1_in_off_reply:
+7ad5 70091201 jam 1 ,mem_usb_clear_halt 
+7ad6 202079e9 branch usb0_reply_zerolen 
+
+usb0_force_stall_ep2_in_off:
+7ad7 70090600 jam 0 ,mem_usb_ep2_stall_status 
+7ad8 20207ad5 branch usb0_force_stall_ep1_in_off_reply 
+
+usb0_force_stall_ep3_in_off:
+7ad9 70090700 jam 0 ,mem_usb_ep3_stall_status 
+7ada 20207ad5 branch usb0_force_stall_ep1_in_off_reply 
+
+usb0_request_set_feature:
+7adb 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7adc c08079e4 bne 0 ,usb0_force_stall 
+7add 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
+7ade c08079e4 bne 0 ,usb0_force_stall 
+7adf 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+7ae0 c0007ae4 beq out_device ,usb0_request_set_feature_out_device 
+7ae1 c000faf2 beq out_interface ,usb0_request_set_feature_out_interface 
+7ae2 c0017af3 beq out_endpoint ,usb0_request_set_feature_out_endpoint 
+7ae3 202079e4 branch usb0_force_stall 
+
+usb0_request_set_feature_out_device:
+7ae4 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7ae5 c080f9e4 bne device_remote_wakeup ,usb0_force_stall 
+7ae6 204048b1 call dongle_set_pc_sleep_flag 
+7ae7 6ff08c00 fetch 1 ,core_usb_config 
+7ae8 79207e07 set1 7 ,pdata 
+7ae9 67f08c00 store 1 ,core_usb_config 
+7aea 70090101 jam 1 ,mem_usb_remote_wakeup 
+7aeb 70090003 jam usb_sleep ,mem_usb_state 
+7aec 7008f900 jam 0 ,mem_usb_tx_win_enable 
+7aed 204079e9 call usb0_reply_zerolen 
+
+usb_wakeup_timer_reinit:
+7aee 20407cee call timer_reinit 
+7aef 58001388 setarg timer_wakeup_delay 
+7af0 d8e0000f arg usb_timer_wakeup ,queue 
+7af1 20207ce1 branch timer_init 
+
+usb0_request_set_feature_out_interface:
+7af2 202079e4 branch usb0_force_stall 
+
+usb0_request_set_feature_out_endpoint:
+7af3 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7af4 c08079e4 bne endpoint_halt ,usb0_force_stall 
+7af5 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+7af6 c08079e4 bne 0 ,usb0_force_stall 
+7af7 6fe08871 fetch 1 ,mem_usb_setup_windex 
+7af8 c040fb00 beq in_ep1 ,usb0_force_stall_ep1_in_on 
+7af9 c0417b02 beq in_ep2 ,usb0_force_stall_ep2_in_on 
+7afa c041fb04 beq in_ep3 ,usb0_force_stall_ep3_in_on 
+7afb 1fe17e7f and_into 0x7f ,pdata 
+7afc c0007afe beq 0x00 ,usb0_force_stall_ep0_in_on 
+7afd 202079e4 branch usb0_force_stall 
+
+usb0_force_stall_ep0_in_on:
+7afe 70090401 jam 1 ,mem_usb_ep0_stall_status 
+7aff 202079e9 branch usb0_reply_zerolen 
+
+usb0_force_stall_ep1_in_on:
+7b00 70090501 jam 1 ,mem_usb_ep1_stall_status 
+7b01 202079e9 branch usb0_reply_zerolen 
+
+usb0_force_stall_ep2_in_on:
+7b02 70090601 jam 1 ,mem_usb_ep2_stall_status 
+7b03 202079e9 branch usb0_reply_zerolen 
+
+usb0_force_stall_ep3_in_on:
+7b04 70090701 jam 1 ,mem_usb_ep3_stall_status 
+7b05 202079e9 branch usb0_reply_zerolen 
+
+usb0_request_set_address:
+7b06 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+7b07 c08079e4 bne out_device ,usb0_force_stall 
+7b08 6fe08871 fetch 1 ,mem_usb_setup_windex 
+7b09 c08079e4 bne 0 ,usb0_force_stall 
+7b0a 6fe08872 fetch 1 ,mem_usb_setup_windex + 1 
+7b0b c08079e4 bne 0 ,usb0_force_stall 
+7b0c 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7b0d c08079e4 bne 0 ,usb0_force_stall 
+7b0e 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
+7b0f c08079e4 bne 0 ,usb0_force_stall 
+7b10 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+7b11 c08079e4 bne 0 ,usb0_force_stall 
+7b12 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7b13 1fe17e80 and_into 0x80 ,pdata 
+7b14 c08079e4 bne 0 ,usb0_force_stall 
+7b15 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7b16 c0807b1d bne 0 ,usb_usb0_state_set_dev_addr 
+
+usb_usb0_state_set_dev_default:
+7b17 70086b02 jam dev_default ,mem_usb0_state 
+
+usb0_request_set_wait_address:
+7b18 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7b19 67f08c01 store 1 ,core_usb_addr 
+7b1a 204079e9 call usb0_reply_zerolen 
+7b1b 70091101 jam 1 ,mem_usb_set_high_addr_flag 
+7b1c 20600000 rtn 
+
+usb_usb0_state_set_dev_addr:
+7b1d 70086b03 jam dev_address ,mem_usb0_state 
+7b1e 20207b18 branch usb0_request_set_wait_address 
+
+usb0_request_set_configuration:
+7b1f 6fe0886b fetch 1 ,mem_usb0_state 
+7b20 c00179e4 beq dev_default ,usb0_force_stall 
+7b21 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+7b22 c08079e4 bne out_device ,usb0_force_stall 
+7b23 6fe08871 fetch 1 ,mem_usb_setup_windex 
+7b24 c08079e4 bne 0 ,usb0_force_stall 
+7b25 6fe08872 fetch 1 ,mem_usb_setup_windex + 1 
+7b26 c08079e4 bne 0 ,usb0_force_stall 
+7b27 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7b28 c08079e4 bne 0 ,usb0_force_stall 
+7b29 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
+7b2a c08079e4 bne 0 ,usb0_force_stall 
+7b2b 6fe08870 fetch 1 ,mem_usb_setup_bvalue + 1 
+7b2c c08079e4 bne 0 ,usb0_force_stall 
+7b2d 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7b2e 1fe67c01 sub pdata ,usb_max_num_cfg ,null 
+7b2f 242179e4 nbranch usb0_force_stall ,positive 
+7b30 6fe0886b fetch 1 ,mem_usb0_state 
+7b31 c001fb34 beq dev_address ,usb0_request_set_cfg_addr_state 
+7b32 c0027b34 beq dev_configured ,usb0_request_set_cfg_cfg_state 
+7b33 202079e4 branch usb0_force_stall 
+
+usb0_request_set_cfg_addr_state:
+
+usb0_request_set_cfg_cfg_state:
+7b34 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7b35 c0007b38 beq 0 ,usb0_request_set_cfg_stay_addr_state 
+7b36 70086b04 jam dev_configured ,mem_usb0_state 
+7b37 202079e9 branch usb0_reply_zerolen 
+
+usb0_request_set_cfg_stay_addr_state:
+7b38 70086b03 jam dev_address ,mem_usb0_state 
+7b39 202079e9 branch usb0_reply_zerolen 
+
+usb0_request_set_interface:
+7b3a 6fe0886b fetch 1 ,mem_usb0_state 
+7b3b c08279e4 bne dev_configured ,usb0_force_stall 
+7b3c 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+7b3d c080f9e4 bne out_interface ,usb0_force_stall 
+7b3e 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7b3f c08079e4 bne 0 ,usb0_force_stall 
+7b40 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+7b41 c08079e4 bne 0 ,usb0_force_stall 
+7b42 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7b43 c08079e4 bne 0 ,usb0_force_stall 
+7b44 6fe08874 fetch 1 ,mem_usb_setup_blengthh 
+7b45 c08079e4 bne 0 ,usb0_force_stall 
+7b46 6fe08871 fetch 1 ,mem_usb_setup_windex 
+7b47 c08079e4 bne 0 ,usb0_force_stall 
+7b48 6fe08872 fetch 1 ,mem_usb_setup_windex + 1 
+7b49 c08079e4 bne 0 ,usb0_force_stall 
+7b4a 202079e9 branch usb0_reply_zerolen 
+
+usb_set_idle:
+7b4b 4701c020 bpatchx patch20_3 ,mem_patch20 
+7b4c 7008fb01 jam 1 ,mem_usb_idle_flag 
+7b4d 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+7b4e 67e088fc store 1 ,mem_usb_idle_rate 
+7b4f 6fe08871 fetch 1 ,mem_usb_setup_windex 
+7b50 1fe67c01 sub pdata ,1 ,null 
+7b51 2042fb59 call usb_clear_remote_wakeup_set0 ,zero 
+7b52 6fe08900 fetch 1 ,mem_usb_state 
+7b53 c08279e9 bne usb_resume ,usb0_reply_zerolen 
+7b54 70090002 jam usb_connected ,mem_usb_state 
+7b55 204079e9 call usb0_reply_zerolen 
+7b56 20007530 nop 30000 
+7b57 20007530 nop 30000 
+7b58 20600000 rtn 
+
+usb_clear_remote_wakeup_set0:
+7b59 70090e01 jam 1 ,mem_usb_device_enumeration_endflag 
+7b5a 70090200 jam 0 ,mem_usb_clear_remote_wakeup 
+7b5b 70090004 jam usb_resume ,mem_usb_state 
+7b5c 20600000 rtn 
+
+usb_set_report:
+7b5d 20003a98 nop 15000 
+7b5e d8a00875 arg mem_usb0_set_report_data ,contw 
+7b5f 20407993 call usb_rx_data 
+7b60 7008f701 jam 1 ,mem_usb0_get_set_report 
+7b61 20407b6e call usb_set_report_resume_judge 
+7b62 6fe1086f fetch 2 ,mem_usb_setup_bvalue 
+7b63 67e108f5 store 2 ,mem_usb_setup_bvalue_temp 
+7b64 204079e9 call usb0_reply_zerolen 
+7b65 6fe0c3cb fetch 1 ,mem_device_option 
+7b66 c1820000 rtnne dvc_op_dongle 
+7b67 6fe088f9 fetch 1 ,mem_usb_tx_win_enable 
+7b68 207a0000 rtn blank 
+7b69 6fe08875 fetch 1 ,mem_usb0_set_report_data 
+
+usb_get_led_status:
+7b6a 67e0c621 store 1 ,mem_24g_led_status 
+7b6b 7008f900 jam 0 ,mem_usb_tx_win_enable 
+7b6c 70461103 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
+7b6d 20600000 rtn 
+
+usb_set_report_resume_judge:
+7b6e 6fe1086f fetch 2 ,mem_usb_setup_bvalue 
+7b6f d8400200 arg pc_set_report_bvalue ,temp 
+7b70 98467c00 isub temp ,null 
+7b71 24628000 nrtn zero 
+7b72 6fe10871 fetch 2 ,mem_usb_setup_windex 
+7b73 d8400000 arg pc_set_report_windex ,temp 
+7b74 98467c00 isub temp ,null 
+7b75 24628000 nrtn zero 
+7b76 6fe10873 fetch 2 ,mem_usb_setup_blength 
+7b77 d8400001 arg pc_set_report_blength ,temp 
+7b78 98467c00 isub temp ,null 
+7b79 24628000 nrtn zero 
+7b7a 7008f901 jam 1 ,mem_usb_tx_win_enable 
+7b7b 20600000 rtn 
+
+usb_set_protocol_req:
+7b7c 6fe08873 fetch 1 ,mem_usb_setup_blength 
+7b7d c08079e4 bne 0 ,usb0_force_stall 
+7b7e 6fe0886f fetch 1 ,mem_usb_setup_bvalue 
+7b7f c0007b82 beq boot_protocol ,usb_set_boot_protocol 
+7b80 c000fb85 beq report_protocol ,usb_set_report_protocol 
+7b81 202079e4 branch usb0_force_stall 
+
+usb_set_boot_protocol:
+7b82 7008fe00 jam 0 ,mem_usb_set_protocol_status 
+7b83 7008ff01 jam 1 ,mem_usb_set_protocol_value 
+7b84 202079e9 branch usb0_reply_zerolen 
+
+usb_set_report_protocol:
+7b85 7008fa01 jam 1 ,mem_usb_tx_mac_enable 
+7b86 7008fe01 jam 1 ,mem_usb_set_protocol_status 
+7b87 7008ff00 jam 0 ,mem_usb_set_protocol_value 
+7b88 202079e9 branch usb0_reply_zerolen 
+
+usb0_respond_length:
+7b89 ea408011 ifetchr regb ,1 ,rega 
+7b8a 1a20a201 increase 1 ,rega 
+
+usb0_respond:
+7b8b 47024020 bpatchx patch20_4 ,mem_patch20 
+7b8c 7920000e set1 mark_usb_first_resp ,mark 
+7b8d c591fb90 bmark0 mark_isstr ,usb0_respond_nostr 
+7b8e 1a40a401 increase 1 ,regb 
+7b8f 1a43a400 lshift regb ,regb 
+
+usb0_respond_nostr:
+7b90 622107a4 storer rega ,2 ,mem_bufptr 
+7b91 624087a6 storer regb ,1 ,mem_remain 
+7b92 20207b96 branch usb0_tx 
+7b93 20600000 rtn 
+
+usb_no_respond_data:
+7b94 d8e00000 arg 0 ,queue 
+7b95 20207bd7 branch usb_trig 
+
+usb0_tx:
+7b96 4702c020 bpatchx patch20_5 ,mem_patch20 
+7b97 6ff08c25 fetch 1 ,core_usb_txbusy 
+7b98 c3800000 rtnbit1 0 
+7b99 6fe087a6 fetch 1 ,mem_remain 
+7b9a 207a0000 rtn blank 
+7b9b 1fe27200 copy pdata ,loopcnt 
+7b9c 98000400 iforce temp 
+7b9d 6fe10873 fetch 2 ,mem_usb_setup_blength 
+7b9e 1fe67c40 sub pdata ,ep0_packet_size ,null 
+7b9f 20217ba4 branch usb0_tx_short ,positive 
+7ba0 1f267c40 sub loopcnt ,ep0_packet_size ,null 
+7ba1 20217ba8 branch usb0_tx_info ,positive 
+7ba2 18007240 force ep0_packet_size ,loopcnt 
+7ba3 20207ba8 branch usb0_tx_info 
+
+usb0_tx_short:
+7ba4 9f267c00 isub loopcnt ,null 
+7ba5 20217ba8 branch usb0_tx_info ,positive 
+7ba6 98007200 iforce loopcnt 
+7ba7 67e087a6 store 1 ,mem_remain 
+
+usb0_tx_info:
+7ba8 6fe087a6 fetch 1 ,mem_remain 
+7ba9 9f267e00 isub loopcnt ,pdata 
+7baa 67e087a6 store 1 ,mem_remain 
+7bab 1f20ffff add loopcnt ,-1 ,pdata 
+7bac 67e0870e store 1 ,mem_usb_txbuf 
+7bad c591fbba bmark0 mark_isstr ,usb0_tx_nostr 
+7bae 1fe37e00 rshift pdata ,pdata 
+7baf 1f20ffff add loopcnt ,-1 ,pdata 
+7bb0 67e0870e store 1 ,mem_usb_txbuf 
+7bb1 c5877bba bmark0 mark_usb_first_resp ,usb0_tx_nostr 
+7bb2 793f800e set0 mark_usb_first_resp ,mark 
+7bb3 e0408005 istoret 1 ,contw 
+7bb4 58000003 setarg 3 
+7bb5 e7e08005 istore 1 ,contw 
+7bb6 1f20f3ff increase -1 ,loopcnt 
+7bb7 1f227e00 copy loopcnt ,pdata 
+7bb8 2422fbba nbranch usb0_tx_nostr ,zero 
+7bb9 1f20f201 increase 1 ,loopcnt 
+
+usb0_tx_nostr:
+7bba 6fe107a4 fetch 2 ,mem_bufptr 
+7bbb 1fe20c00 copy pdata ,contr 
+
+usb0_tx0:
+7bbc efe08006 ifetch 1 ,contr 
+7bbd e7e08005 istore 1 ,contw 
+7bbe c591fbc1 bmark0 mark_isstr ,usb0_tx1 
+7bbf 58000000 setarg 0 
+7bc0 e7e08005 istore 1 ,contw 
+
+usb0_tx1:
+7bc1 c2007bbc loop usb0_tx0 
+7bc2 18c27e00 copy contr ,pdata 
+7bc3 67e107a4 store 2 ,mem_bufptr 
+7bc4 5800070e setarg mem_usb_txbuf 
+7bc5 67f10c08 store 2 ,core_usb_tx_saddr0 
+7bc6 d8e00000 arg 0 ,queue 
+7bc7 20407bd7 call usb_trig 
+7bc8 6fe087a6 fetch 1 ,mem_remain 
+7bc9 247a0000 nrtn blank 
+7bca 708c1b02 jam 2 ,core_usb_clear_nak 
+7bcb 6fe08900 fetch 1 ,mem_usb_state 
+7bcc c1808000 rtnne usb_got_report_req 
+7bcd 70090002 jam usb_connected ,mem_usb_state 
+7bce 20600000 rtn 
+
+usb_tx_ep1:
+7bcf da20074f arg mem_usb_txbuf1 ,rega 
+7bd0 d8e00001 arg 1 ,queue 
+7bd1 62310c0a storer rega ,2 ,core_usb_tx_saddr1 
+
+usb_tx_buf:
+7bd2 1f20ffff add loopcnt ,-1 ,pdata 
+7bd3 e7e08011 istore 1 ,rega 
+
+usb_tx_loop:
+7bd4 efe08006 ifetch 1 ,contr 
+7bd5 e7e08005 istore 1 ,contw 
+7bd6 c2007bd4 loop usb_tx_loop 
+
+usb_trig:
+7bd7 58000000 setarg 0 
+7bd8 f9207e00 qset1 pdata 
+7bd9 67f08c18 store 1 ,core_usb_trig 
+7bda 20600000 rtn 
+
+usb_tx_ep2:
+7bdb d8e00002 arg 2 ,queue 
+7bdc da200759 arg mem_usb_txbuf2 ,rega 
+7bdd 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
+7bde 20207bd2 branch usb_tx_buf 
+
+usb_tx:
+7bdf 47034020 bpatchx patch20_6 ,mem_patch20 
+7be0 6fe0890d fetch 1 ,mem_usb_tx_enable 
+7be1 207a0000 rtn blank 
+7be2 6ff08c25 fetch 1 ,core_usb_txbusy 
+7be3 1fe17e0f and_into 0x0f ,pdata 
+7be4 243a7c30 nbranch usb_inwake_state_tx_dispose ,blank 
+7be5 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+7be6 203a7c06 branch usb_tx_fifo_release ,blank 
+7be7 6fe08900 fetch 1 ,mem_usb_state 
+7be8 c001fc40 beq usb_sleep ,usb_windows_wakeup 
+7be9 c0817c06 bne usb_connected ,usb_tx_fifo_release 
+7bea 6fe08902 fetch 1 ,mem_usb_clear_remote_wakeup 
+7beb 243a7c06 nbranch usb_tx_fifo_release ,blank 
+7bec 20407bee call usb_tx_data_ep1 
+7bed 20207bf9 branch usb_tx_data_ep2 
+
+usb_tx_data_ep1:
+7bee 6ff08c25 fetch 1 ,core_usb_txbusy 
+7bef c3808000 rtnbit1 1 
+7bf0 6fe0890d fetch 1 ,mem_usb_tx_enable 
+7bf1 c4008000 rtnbit0 1 
+7bf2 6fe0890d fetch 1 ,mem_usb_tx_enable 
+7bf3 793ffe01 set0 1 ,pdata 
+7bf4 67e0890d store 1 ,mem_usb_tx_enable 
+7bf5 6fe0890b fetch 1 ,mem_usb_ep1_data 
+7bf6 207a0000 rtn blank 
+7bf7 c0087c28 beq usb_ep1_kb ,usb_tx_kb_normal_data 
+7bf8 2020235a branch assert 
+
+usb_tx_data_ep2:
+7bf9 6ff08c25 fetch 1 ,core_usb_txbusy 
+7bfa c3810000 rtnbit1 2 
+7bfb 6fe0890d fetch 1 ,mem_usb_tx_enable 
+7bfc c4010000 rtnbit0 2 
+7bfd 6fe0890d fetch 1 ,mem_usb_tx_enable 
+7bfe 793ffe02 set0 2 ,pdata 
+7bff 67e0890d store 1 ,mem_usb_tx_enable 
+7c00 6fe0890c fetch 1 ,mem_usb_ep2_data 
+7c01 207a0000 rtn blank 
+7c02 c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
+7c03 c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+7c04 c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+7c05 2020235a branch assert 
+
+usb_tx_fifo_release:
+7c06 d8a00913 arg mem_usb_mouse_data ,contw 
+7c07 df200040 arg 64 ,loopcnt 
+7c08 20207ca3 branch memset0 
+
+usb_tx_ms_data:
+7c09 6fe088fb fetch 1 ,mem_usb_idle_flag 
+7c0a 684888fd fetcht 1 ,mem_usb_get_protocol_flag 
+7c0b 98417e00 iand temp ,pdata 
+7c0c 203a7c20 branch usb_tx_ms_data_normal_mode ,blank 
+7c0d 684888fe fetcht 1 ,mem_usb_set_protocol_status 
+7c0e 9840fe00 iadd temp ,pdata 
+7c0f c000fc11 beq mac_boot_mode ,usb_tx_ms_data_mac_boot_mode 
+7c10 20207c20 branch usb_tx_ms_data_normal_mode 
+
+usb_tx_ms_data_mac_boot_mode:
+7c11 70090c00 jam 0 ,mem_usb_ep2_data 
+
+usb_tx_ms_data_mac_boot_regroup:
+7c12 6fe08914 fetch 1 ,mem_usb_mouse_data + 1 
+7c13 c0017c21 beq r_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+7c14 c001fc21 beq lr_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+7c15 6fe08914 fetch 1 ,mem_usb_mouse_data + 1 
+7c16 67e08913 store 1 ,mem_usb_mouse_data 
+7c17 6fe08915 fetch 1 ,mem_usb_mouse_data + 2 
+7c18 e7e08005 istore 1 ,contw 
+7c19 6fe08917 fetch 1 ,mem_usb_mouse_data + 4 
+7c1a e7e08005 istore 1 ,contw 
+7c1b 6fe08919 fetch 1 ,mem_usb_mouse_data + 6 
+7c1c e7e08005 istore 1 ,contw 
+7c1d df200004 arg 4 ,loopcnt 
+7c1e d8c00913 arg mem_usb_mouse_data ,contr 
+7c1f 20207bdb branch usb_tx_ep2 
+
+usb_tx_ms_data_normal_mode:
+7c20 70090c00 jam 0 ,mem_usb_ep2_data 
+
+usb_tx_mac_boot_ms_regroup_r_or_lrkey:
+7c21 df200008 arg 8 ,loopcnt 
+7c22 d8c00913 arg mem_usb_mouse_data ,contr 
+7c23 20207bdb branch usb_tx_ep2 
+
+usb_tx_kb_multikey_data:
+7c24 70090c00 jam 0 ,mem_usb_ep2_data 
+7c25 df200003 arg 3 ,loopcnt 
+7c26 d8c00933 arg mem_usb_kb_multikey ,contr 
+7c27 20207bdb branch usb_tx_ep2 
+
+usb_tx_kb_normal_data:
+7c28 70090b00 jam 0 ,mem_usb_ep1_data 
+7c29 df200008 arg 8 ,loopcnt 
+7c2a d8c00923 arg mem_usb_kb_data ,contr 
+7c2b 20207bcf branch usb_tx_ep1 
+
+usb_tx_kb_systemkey_data:
+7c2c 70090c00 jam 0 ,mem_usb_ep2_data 
+7c2d df200002 arg 2 ,loopcnt 
+7c2e d8c00943 arg mem_usb_kb_system ,contr 
+7c2f 20207bdb branch usb_tx_ep2 
+
+usb_inwake_state_tx_dispose:
+7c30 6fe08900 fetch 1 ,mem_usb_state 
+7c31 c0017c33 beq usb_connected ,usb_mac_wakeup_trig 
+7c32 20600000 rtn 
+
+usb_mac_wakeup_trig:
+7c33 6ff08c00 fetch 1 ,core_usb_config 
+7c34 79207e07 set1 7 ,pdata 
+7c35 67f08c00 store 1 ,core_usb_config 
+7c36 70091001 jam 1 ,mem_usb_mac_wakeup_trig 
+7c37 20600000 rtn 
+
+usb_mac_wakeup_judge:
+7c38 6fe08900 fetch 1 ,mem_usb_state 
+7c39 c1018000 rtneq usb_sleep 
+7c3a c0017c3c beq usb_connected ,usb_mac_wakeup 
+7c3b 20600000 rtn 
+
+usb_mac_wakeup:
+7c3c 6fe08910 fetch 1 ,mem_usb_mac_wakeup_trig 
+7c3d 207a0000 rtn blank 
+7c3e 70090f01 jam 1 ,mem_usb_wakestate_onetime_flag 
+7c3f 20207c43 branch usb_wakeup 
+
+usb_windows_wakeup:
+7c40 d8e0000f arg usb_timer_wakeup ,queue 
+7c41 20407cef call timer_check 
+7c42 247a0000 nrtn blank 
+
+usb_wakeup:
+7c43 6ff08c00 fetch 1 ,core_usb_config 
+7c44 c4038000 rtnbit0 7 
+7c45 708c00fc jam 0xfc ,core_usb_config 
+7c46 20007530 nop 30000 
+7c47 708c003c jam 0x3c ,core_usb_config 
+7c48 20600000 rtn 
+
+push_stack:
+7c49 60a10691 storer contw ,2 ,mem_contw 
+7c4a 604c0678 storet 8 ,mem_temp 
+7c4b 61620680 storer timeup ,4 ,mem_timeup 
+7c4c 20407c51 call push_stack_rega_b_c 
+7c4d 60c1068f storer contr ,2 ,mem_contr 
+7c4e 6721069b storer loopcnt ,2 ,mem_loopcnt 
+7c4f 60e10699 storer queue ,2 ,mem_queue 
+7c50 20600000 rtn 
+
+push_stack_rega_b_c:
+7c51 62220684 storer rega ,4 ,mem_rega 
+7c52 62420688 storer regb ,4 ,mem_regb 
+7c53 6261868c storer regc ,3 ,mem_regc 
+7c54 20600000 rtn 
+
+pop_stack:
+7c55 4703c020 bpatchx patch20_7 ,mem_patch20 
+7c56 6fe10691 fetch 2 ,mem_contw 
+7c57 98000a00 iforce contw 
+7c58 684c0678 fetcht 8 ,mem_temp 
+7c59 69620680 fetchr timeup ,4 ,mem_timeup 
+7c5a 20407c60 call pop_stack_rega_b_c 
+7c5b 6f21069b fetchr loopcnt ,2 ,mem_loopcnt 
+7c5c 68e10699 fetchr queue ,2 ,mem_queue 
+7c5d 6fe1068f fetch 2 ,mem_contr 
+7c5e 98000c00 iforce contr 
+7c5f 20600000 rtn 
+
+pop_stack_rega_b_c:
+7c60 6a220684 fetchr rega ,4 ,mem_rega 
+7c61 6a420688 fetchr regb ,4 ,mem_regb 
+7c62 6a61868c fetchr regc ,3 ,mem_regc 
+7c63 20600000 rtn 
+
+get_contw:
+7c64 6fe10691 fetch 2 ,mem_contw 
+7c65 1fe20a00 copy pdata ,contw 
+7c66 20600000 rtn 
+
+get_contr:
+7c67 6fe1068f fetch 2 ,mem_contr 
+7c68 1fe20c00 copy pdata ,contr 
+7c69 20600000 rtn 
+
+store_contw:
+7c6a 18a27e00 copy contw ,pdata 
+7c6b 67e10691 store 2 ,mem_contw 
+7c6c 20600000 rtn 
+
+store_contr:
+7c6d 18c27e00 copy contr ,pdata 
+7c6e 67e1068f store 2 ,mem_contr 
+7c6f 20600000 rtn 
+
+save_cont_pointers:
+7c70 18a27e00 copy contw ,pdata 
+7c71 67e10691 store 2 ,mem_contw 
+7c72 18c27e00 copy contr ,pdata 
+7c73 67e1068f store 2 ,mem_contr 
+7c74 20600000 rtn 
+
+load_cont_pointers:
+7c75 6fe10691 fetch 2 ,mem_contw 
+7c76 1fe20a00 copy pdata ,contw 
+7c77 6fe1068f fetch 2 ,mem_contr 
+7c78 1fe20c00 copy pdata ,contr 
+7c79 20600000 rtn 
+
+get_diff:
+7c7a 98462200 isub temp ,rega 
+7c7b 20610000 rtn positive 
+7c7c da200100 arg 0x100 ,rega 
+7c7d 9a20fe00 iadd rega ,pdata 
+7c7e 98462200 isub temp ,rega 
+7c7f 20600000 rtn 
+
+memcpy96:
+7c80 20407c8d call memcpy32 
+
+memcpy64:
+7c81 20407c8d call memcpy32 
+7c82 20207c8d branch memcpy32 
+
+memcpy12:
+7c83 20407c89 call memcpy8 
+
+memcpy4:
+7c84 efe08006 ifetch 1 ,contr 
+7c85 e7e08005 istore 1 ,contw 
+
+memcpy3:
+7c86 efe18006 ifetch 3 ,contr 
+7c87 e7e18005 istore 3 ,contw 
+7c88 20600000 rtn 
+
+memcpy8:
+7c89 efe40006 ifetch 8 ,contr 
+7c8a e7e40005 istore 8 ,contw 
+7c8b 20600000 rtn 
+
+memcpy48:
+7c8c 20407c8f call memcpy16 
+
+memcpy32:
+7c8d 20407c89 call memcpy8 
+
+memcpy24:
+7c8e 20407c89 call memcpy8 
+
+memcpy16:
+7c8f 20407c89 call memcpy8 
+7c90 20207c89 branch memcpy8 
+
+delay:
+7c91 1fe0ffff increase -1 ,pdata 
+7c92 20000026 nop 38 
+7c93 243a7c91 nbranch delay ,blank 
+7c94 20600000 rtn 
+
+delay_10ms:
+7c95 df20000a arg 10 ,loopcnt 
+
+delay_ms_wait:
+7c96 20002ee0 nop 12000 
+7c97 c2007c96 loop delay_ms_wait 
+7c98 20600000 rtn 
+
+memset0_16:
+7c99 20407c9a call memset0_8 
+
+memset0_8:
+7c9a 20407c9b call memset0_4 
+
+memset0_4:
+7c9b 18007204 force 4 ,loopcnt 
+7c9c 20207ca3 branch memset0 
+
+clear_mem_256:
+7c9d 18007220 force 32 ,loopcnt 
+7c9e 20207ca3 branch memset0 
+
+clear_mem_512:
+7c9f 18007240 force 64 ,loopcnt 
+7ca0 20207ca3 branch memset0 
+
+clear_mem:
+7ca1 1f227e00 deposit loopcnt 
+7ca2 207a0000 rtn blank 
+
+memset0:
+7ca3 18007e00 force 0 ,pdata 
+7ca4 e7e00005 lstore contw 
+7ca5 20600000 rtn 
+
+clear_temp_block:
+7ca6 df200020 arg 32 ,loopcnt 
+7ca7 d8a006a1 arg mem_temp_block0 ,contw 
+7ca8 20207ca1 branch clear_mem 
+
+xor_loop:
+7ca9 efe20013 ifetch 4 ,regc 
+7caa e8420011 ifetcht 4 ,rega 
+7cab 9842fe00 ixor temp ,pdata 
+7cac e7e20005 istore 4 ,contw 
+7cad 1a20a204 increase 4 ,rega 
+7cae 1a60a604 increase 4 ,regc 
+7caf c2007ca9 loop xor_loop 
+7cb0 20600000 rtn 
+
+inverse_data:
+7cb1 47044021 bpatchx patch21_0 ,mem_patch21 
+7cb2 1f227e00 copy loopcnt ,pdata 
+7cb3 1fe67c01 sub pdata ,1 ,null 
+7cb4 20610000 rtn positive 
+7cb5 9a20a400 iadd rega ,regb 
+7cb6 1a40a5ff increase -1 ,regb 
+7cb7 1f237200 rshift loopcnt ,loopcnt 
+
+inverse_loop:
+7cb8 e8408011 ifetcht 1 ,rega 
+7cb9 efe08012 ifetch 1 ,regb 
+7cba e7e08011 istore 1 ,rega 
+7cbb e0408012 istoret 1 ,regb 
+7cbc 1a40a5ff increase -1 ,regb 
+7cbd 1a20a201 increase 1 ,rega 
+7cbe c2007cb8 loop inverse_loop 
+7cbf 20600000 rtn 
+
+le2be_6byte:
+
+inverse_data_6byte:
+7cc0 1fef0400 rshift32 pdata ,temp 
+7cc1 20407cc6 call inverse_data_4byte 
+7cc2 18508400 byteswap temp ,temp 
+7cc3 1ff07e00 lshift16 pdata ,pdata 
+7cc4 9841fe00 ior temp ,pdata 
+7cc5 20600000 rtn 
+
+le2be_4byte:
+
+inverse_data_4byte:
+7cc6 1ff10c00 rshift16 pdata ,contr 
+7cc7 18d08c00 byteswap contr ,contr 
+7cc8 1ff0fe00 byteswap pdata ,pdata 
+7cc9 1ff07e00 lshift16 pdata ,pdata 
+7cca 98c1fe00 ior contr ,pdata 
+7ccb 20600000 rtn 
+
+memcpy_fast:
+7ccc 4704c021 bpatchx patch21_1 ,mem_patch21 
+7ccd 1f227e00 deposit loopcnt 
+7cce 207a0000 rtn blank 
+
+memcpy_fast_loop:
+7ccf 1f20f3f8 increase -8 ,loopcnt 
+7cd0 20417c89 call memcpy8 ,positive 
+7cd1 20628000 rtn zero 
+7cd2 20217ccf branch memcpy_fast_loop ,positive 
+7cd3 1f20f208 increase 8 ,loopcnt 
+
+memcpy_fast_loop_four:
+7cd4 1f20f3fc increase -4 ,loopcnt 
+7cd5 20417c84 call memcpy4 ,positive 
+7cd6 20628000 rtn zero 
+7cd7 20217cd4 branch memcpy_fast_loop_four ,positive 
+7cd8 1f20f204 increase 4 ,loopcnt 
+7cd9 20207cda branch memcpy 
+
+memcpy:
+7cda 1f227e00 deposit loopcnt 
+7cdb 207a0000 rtn blank 
+
+memcpy_loop:
+7cdc efe08006 ifetch 1 ,contr 
+7cdd e7e08005 istore 1 ,contw 
+7cde c2007cdc loop memcpy_loop 
+7cdf 20600000 rtn 
+
+timer_stop:
+7ce0 58000000 setarg 0 
+
+timer_init:
+7ce1 67e10670 store 2 ,mem_pdatatemp 
+7ce2 47054021 bpatchx patch21_2 ,mem_patch21 
+7ce3 20407cef call timer_check 
+7ce4 68490670 fetcht 2 ,mem_pdatatemp 
+7ce5 d8a040f4 arg mem_timers ,contw 
+7ce6 18e3fe00 lshift queue ,pdata 
+7ce7 98a08a00 iadd contw ,contw 
+7ce8 e0410005 istoret 2 ,contw 
+7ce9 20600000 rtn 
+
+timer_check_timeout:
+7cea d9600800 arg 0x800 ,timeup 
+7ceb 19701600 lshift16 timeup ,timeup 
+7cec 9960fe00 iadd timeup ,pdata 
+7ced 20600000 rtn 
+
+timer_reinit:
+7cee d8e00000 arg 0 ,queue 
+
+timer_check:
+7cef 4705c021 bpatchx patch21_3 ,mem_patch21 
+7cf0 684a4095 fetcht 4 ,mem_last_clkn 
+7cf1 1c437e00 rshift clkn_bt ,pdata 
+7cf2 67e24095 store 4 ,mem_last_clkn 
+7cf3 98467c00 isub temp ,null 
+7cf4 24417cea ncall timer_check_timeout ,positive 
+7cf5 98461600 isub temp ,timeup 
+7cf6 19620400 copy timeup ,temp 
+7cf7 d8c040f4 arg mem_timers ,contr 
+7cf8 18c20a00 copy contr ,contw 
+7cf9 df200010 arg 16 ,loopcnt 
+
+timer_loop:
+7cfa efe10006 ifetch 2 ,contr 
+7cfb 98467e00 isub temp ,pdata 
+7cfc 20217cfe branch timer_counting ,positive 
+7cfd 18007e00 force 0 ,pdata 
+
+timer_counting:
+7cfe e7e10005 istore 2 ,contw 
+7cff c2007cfa loop timer_loop 
+7d00 d8c040f4 arg mem_timers ,contr 
+7d01 18e3fe00 lshift queue ,pdata 
+7d02 98c08c00 iadd contr ,contr 
+7d03 efe10006 ifetch 2 ,contr 
+7d04 20600000 rtn 
+
+clk_add:
+7d05 98408400 iadd temp ,temp 
+7d06 18427200 copy temp ,loopcnt 
+7d07 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
+7d08 9f267e00 isub loopcnt ,pdata 
+7d09 20610000 rtn positive 
+7d0a 1fe67e00 sub pdata ,0 ,pdata 
+7d0b 18510400 rshift16 temp ,temp 
+7d0c 18408401 increase 1 ,temp 
+7d0d 18500400 lshift16 temp ,temp 
+7d0e 98418400 ior temp ,temp 
+7d0f 20600000 rtn 
+
+clk_diff_rt:
+7d10 20407d12 call clk_diff 
+7d11 20207d1f branch clk2rt 
+
+clk_diff:
+7d12 78547c00 disable user 
+7d13 98467e00 isub temp ,pdata 
+7d14 20217d17 branch clk_diff_pos ,positive 
+7d15 78347c00 enable user 
+7d16 1fe67e00 sub pdata ,0 ,pdata 
+
+clk_diff_pos:
+7d17 c4078000 rtnbit0 15 
+7d18 1fe22800 copy pdata ,regab 
+7d19 d8410000 arg 0x10000 ,temp 
+7d1a 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
+7d1b 98467e00 isub temp ,pdata 
+7d1c 9a80fe00 iadd regab ,pdata 
+7d1d 793ffe40 set0 64 ,pdata 
+7d1e 20600000 rtn 
+
+clk2rt:
+7d1f 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
+7d20 98000c00 iforce contr 
+7d21 1ff17e00 rshift16 pdata ,pdata 
+7d22 984ffe00 imul32 temp ,pdata 
+7d23 98c0fe00 iadd contr ,pdata 
+7d24 20600000 rtn 
+
+clk2lpo:
+7d25 1fed7e00 lshift8 pdata ,pdata 
+7d26 1ff27e00 lshift4 pdata ,pdata 
+7d27 6849c0bd fetcht 3 ,mem_clks_per_lpo 
+7d28 9846fc00 idiv temp 
+7d29 20407d62 call wait_div_end 
+7d2a 18078400 quotient temp 
+7d2b 20600000 rtn 
+
+clk2bt:
+7d2c 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
+7d2d 9846fc00 idiv temp 
+7d2e 20407d5f call get_div_result 
+7d2f 1ff07e00 lshift16 pdata ,pdata 
+7d30 18070400 remainder temp 
+7d31 98418400 ior temp ,temp 
+7d32 20600000 rtn 
+
+string2dec_from_uart:
+7d33 d8400000 arg 0 ,temp 
+
+string2dec_from_uart_done:
+7d34 18422800 copy temp ,regab 
+7d35 efe08003 ifetch 1 ,contu 
+7d36 20407d3f call uchar2dialog 
+7d37 1a820400 copy regab ,temp 
+7d38 20407d70 call swap 
+7d39 da40000a arg 10 ,regb 
+7d3a 9a4ffe00 imul32 regb ,pdata 
+7d3b 9840fe00 iadd temp ,pdata 
+7d3c 1fe20400 copy pdata ,temp 
+7d3d c2007d34 loop string2dec_from_uart_done 
+7d3e 20600000 rtn 
+
+uchar2dialog:
+7d3f d840003a arg 0x3a ,temp 
+7d40 98467c00 isub temp ,null 
+7d41 24217d48 nbranch uchar2dialog_number ,positive 
+7d42 d8400061 arg 0x61 ,temp 
+7d43 98467c00 isub temp ,null 
+7d44 20217d4b branch uchar2dialog_a2f ,positive 
+7d45 d8400037 arg 0x37 ,temp 
+7d46 98467e00 isub temp ,pdata 
+7d47 20600000 rtn 
+
+uchar2dialog_number:
+7d48 d8400030 arg 0x30 ,temp 
+7d49 98467e00 isub temp ,pdata 
+7d4a 20600000 rtn 
+
+uchar2dialog_a2f:
+7d4b d8400057 arg 0x57 ,temp 
+7d4c 98467e00 isub temp ,pdata 
+7d4d 20600000 rtn 
+
+right_shift_n:
+7d4e 1f267c00 sub loopcnt ,0 ,null 
+7d4f 20628000 rtn zero 
+
+right_shift_n_loop:
+7d50 1fe37e00 rshift pdata ,pdata 
+7d51 c2007d50 loop right_shift_n_loop 
+7d52 20600000 rtn 
+
+left_shift_n:
+7d53 18007e01 force 1 ,pdata 
+7d54 1f267c00 sub loopcnt ,0 ,null 
+7d55 20628000 rtn zero 
+
+left_shift_n_loop:
+7d56 1fe3fe00 lshift pdata ,pdata 
+7d57 c2007d56 loop left_shift_n_loop 
+7d58 20600000 rtn 
+
+calc_average:
+7d59 58000000 setarg 0 
+7d5a 1f222200 copy loopcnt ,rega 
+
+calc_average_loop:
+7d5b e8410006 ifetcht 2 ,contr 
+7d5c 9840fe00 iadd temp ,pdata 
+7d5d c2007d5b loop calc_average_loop 
+7d5e 9a26fc00 idiv rega 
+
+get_div_result:
+7d5f 20407d62 call wait_div_end 
+7d60 1807fe00 quotient pdata 
+7d61 20600000 rtn 
+
+wait_div_end:
+7d62 207a8000 rtn modone 
+7d63 20207d62 branch wait_div_end 
+
+compare_loop:
+
+string_compare:
+7d64 efe08011 ifetch 1 ,rega 
+7d65 e8408012 ifetcht 1 ,regb 
+7d66 98467c00 isub temp ,null 
+7d67 24628000 nrtn zero 
+7d68 1a20a201 increase 1 ,rega 
+7d69 1a40a401 increase 1 ,regb 
+7d6a c2007d64 loop string_compare 
+7d6b 20207db8 branch enable_zero 
+
+ceiling:
+7d6c 98467c00 isub temp ,null 
+7d6d 24610000 nrtn positive 
+7d6e 18427e00 deposit temp 
+7d6f 20600000 rtn 
+
+swap:
+7d70 9840fe00 iadd temp ,pdata 
+7d71 98460400 isub temp ,temp 
+7d72 98467e00 isub temp ,pdata 
+7d73 20600000 rtn 
+
+clean_smem:
+7d74 d8a00000 arg 0 ,contw 
+7d75 20207d77 branch clean_mem 
+
+clean_xmem:
+7d76 d8a04000 arg 0x4000 ,contw 
+
+clean_mem:
+7d77 df201000 arg 0x1000 ,loopcnt 
+7d78 20207ca3 branch memset0 
+
+callback_func:
+7d79 207a0000 rtn blank 
+7d7a 1fe27a00 copy pdata ,pc 
+
+ice_break_disable_wdt:
+7d7b 204070d7 call wdt_set_disable 
+
+ice_break:
+7d7c 70820301 jam 0x1 ,core_ice_ctrl 
+7d7d 20600000 rtn 
+
+ice_setbp:
+7d7e 67f10205 store 2 ,core_ice_break0 
+7d7f 6ff08203 fetch 1 ,core_ice_ctrl 
+7d80 79207e04 set1 4 ,pdata 
+7d81 67f08203 store 1 ,core_ice_ctrl 
+7d82 20600000 rtn 
+
+ice_setbp2:
+7d83 67f10207 store 2 ,core_ice_break1 
+7d84 6ff08203 fetch 1 ,core_ice_ctrl 
+7d85 79207e06 set1 6 ,pdata 
+7d86 67f08203 store 1 ,core_ice_ctrl 
+7d87 20600000 rtn 
+
+ice_set_write_bp:
+7d88 67f10205 store 2 ,core_ice_break0 
+7d89 70820330 jam 0x30 ,core_ice_ctrl 
+7d8a 20600000 rtn 
+
+fifo_in:
+7d8b 47064021 bpatchx patch21_4 ,mem_patch21 
+7d8c e8440011 ifetcht util_fifo_len ,rega 
+7d8d 18417eff and temp ,0xff ,pdata 
+7d8e 243a7d91 nbranch fifo_in_push ,blank 
+7d8f 184cfe00 rshift8 temp ,pdata 
+7d90 e7e40011 istore util_fifo_len ,rega 
+
+fifo_in_push:
+7d91 1a20a207 increase util_fifo_len + util_fifo_offset ,rega 
+7d92 efe08011 ifetch 1 ,rega 
+7d93 243a235a nbranch assert ,blank 
+7d94 6fe0866f fetch 1 ,mem_fifo_temp 
+7d95 e7e08011 istore 1 ,rega 
+7d96 20600000 rtn 
+
+fifo_out:
+7d97 4706c021 bpatchx patch21_5 ,mem_patch21 
+7d98 df200008 arg util_fifo_len ,loopcnt 
+7d99 efe40011 ifetch util_fifo_len ,rega 
+7d9a 207a0000 rtn blank 
+
+fifo_out_loop:
+7d9b efe08011 ifetch 1 ,rega 
+7d9c 243a7da0 nbranch fifo_out_end ,blank 
+7d9d 1a20a201 increase 1 ,rega 
+7d9e c2007d9b loop fifo_out_loop 
+7d9f 2020235a branch assert 
+
+fifo_out_end:
+7da0 d8400000 arg 0 ,temp 
+7da1 e0408011 istoret 1 ,rega 
+7da2 20600000 rtn 
+
+fifo_is_empty:
+7da3 efe40011 ifetch util_fifo_len ,rega 
+7da4 20600000 rtn 
+
+fifo_is_full:
+7da5 efe08011 ifetch 1 ,rega 
+7da6 20600000 rtn 
+
+fifo_is_near_full:
+7da7 efe10011 ifetch 2 ,rega 
+7da8 20600000 rtn 
+
+fifo_content_count:
+7da9 d8400000 arg 0 ,temp 
+
+fifo_content_count_loop:
+7daa 6fe08006 fetch 1 ,contr 
+7dab c2007daa loop fifo_content_count_loop ,blank 
+7dac 18408401 increase 1 ,temp 
+7dad c2007daa loop fifo_content_count_loop 
+7dae 18427e00 copy temp ,pdata 
+7daf 20600000 rtn 
+
+not_greater_than:
+7db0 98467c00 isub temp ,null 
+7db1 24610000 nrtn positive 
+
+copy_temp2pdata:
+7db2 18427e00 copy temp ,pdata 
+7db3 20600000 rtn 
+
+disable_positive:
+7db4 18007dff force -1 ,null 
+7db5 20600000 rtn 
+
+enable_positive:
+
+disable_zero:
+7db6 18007c01 force 1 ,null 
+7db7 20600000 rtn 
+
+enable_zero:
+7db8 18007c00 force 0 ,null 
+7db9 20600000 rtn 
+
+enable_user:
+7dba 78347c00 enable user 
+7dbb 20600000 rtn 
+
+disable_user:
+7dbc 78547c00 disable user 
+7dbd 20600000 rtn 
+
+enable_user2:
+7dbe 78367c00 enable user2 
+7dbf 20600000 rtn 
+
+disable_user2:
+7dc0 78567c00 disable user2 
+7dc1 20600000 rtn 
+
+enable_user7:
+7dc2 7838fc00 enable user7 
+7dc3 20600000 rtn 
+
+disable_true:
+7dc4 7840fc00 disable true 
+7dc5 20600000 rtn 
+
+enable_true:
+7dc6 7820fc00 enable true 
+7dc7 20600000 rtn 
+
+disable_blank:
+7dc8 58000001 setarg 1 
+7dc9 20600000 rtn 
+
+enable_blank:
+
+set_pdata_0:
+7dca 58000000 setarg 0 
+7dcb 20600000 rtn 
+
+cal_sum:
+7dcc 1f267c00 sub loopcnt ,0 ,null 
+7dcd 20628000 rtn zero 
+
+cal_sum_loop:
+7dce e8408006 ifetcht 1 ,contr 
+7dcf 9840fe00 iadd temp ,pdata 
+7dd0 c2007dce loop cal_sum_loop 
+7dd1 20600000 rtn 
+
+reverse_byte:
+7dd2 1f227e00 copy loopcnt ,pdata 
+7dd3 207a0000 rtn blank 
+7dd4 18c27e00 copy contr ,pdata 
+7dd5 9f20fe00 iadd loopcnt ,pdata 
+7dd6 1fe0ffff increase -1 ,pdata 
+7dd7 1fe20c00 copy pdata ,contr 
+
+reverse_loop:
+7dd8 efe08006 ifetch 1 ,contr 
+7dd9 18c08dfe increase -2 ,contr 
+7dda e7e08005 istore 1 ,contw 
+7ddb c2007dd8 loop reverse_loop 
+7ddc 20600000 rtn 
+
+lshift14:
+7ddd 1ff07e00 lshift16 pdata ,pdata 
+
+rshift2:
+7dde 1feb7e00 rshift2 pdata ,pdata 
+7ddf 20600000 rtn 
+
+lshift6:
+7de0 1fed7e00 lshift8 pdata ,pdata 
+7de1 20207dde branch rshift2 
+
+clear_wake:
+7de2 58000000 setarg 0 
+7de3 67e40016 store 8 ,mem_gpio_wakeup_cfg 
+7de4 79207e19 set1 25 ,pdata 
+7de5 e7e20005 istore 4 ,contw 
+7de6 20600000 rtn 
+
+generate_random:
+7de7 df200010 arg 16 ,loopcnt 
+
+generate_random_loop:
+7de8 180a7e00 random pdata 
+7de9 e7e08005 istore 1 ,contw 
+7dea c2007de8 loop generate_random_loop 
+7deb 20600000 rtn 
+
Index: output/ramcode.rom
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/ramcode.rom	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/ramcode.rom	(working copy)
@@ -0,0 +1,1727 @@
+c2840033
+c000003b
+c0010069
+c0080073
+c0088075
+c00a0158
+c00a80f6
+c00c0103
+c00c810a
+c00d0083
+c01284aa
+c014049c
+c0210177
+c02201f4
+c0228428
+c02301f7
+c023820a
+c024052c
+c0248530
+c02505a2
+c02582e9
+c02602eb
+c0268539
+c0270308
+c0280369
+c02903ef
+c02a8408
+c02b8409
+c02c8419
+c02d0478
+c02d8480
+c02e047c
+c02e8482
+c03085c4
+c037859d
+c0388480
+c03b004a
+c03b8223
+c0400140
+c0420480
+c04d02d1
+c05884c9
+c0628174
+c06a8465
+c06d0141
+c06d8666
+c06e06a3
+c06e8684
+c07b051d
+c07d0525
+2020235a
+c00a0551
+c00d0550
+c0128580
+c0130585
+c0260597
+c026859b
+c17f8000
+2020235a
+2435803e
+37d98200
+37d98200
+204054ac
+24342002
+6fe0caba
+203a2002
+704aba00
+6fe0c655
+c07fa002
+1fe20e00
+6fe2069d
+afec0000
+2040ce45
+20202002
+6fe44713
+c40a8000
+2040004e
+20205541
+6fe0c407
+c1810000
+6fe0c408
+20400057
+18427e00
+67e0c635
+79207e07
+d8400000
+20206f20
+d8400012
+c1030000
+d840000a
+c1038000
+d8400009
+c1040000
+d840000c
+c1048000
+d8400006
+c1050000
+d8400014
+c1058000
+d8400015
+c1060000
+d8400016
+c1068000
+d840000d
+20600000
+20407552
+20407448
+20404bfb
+20402a45
+2040202a
+204042ad
+20402018
+2040310f
+2040248c
+20200069
+70890000
+20202153
+708a0f60
+708a10aa
+708a127a
+708a2500
+708a2600
+2000003c
+708a2020
+708a23f5
+708a2412
+708a2410
+2000003c
+708a1260
+708a23dd
+20600000
+7001bb00
+7001bc00
+37d98200
+7089460d
+70896f10
+708a13cd
+708a0610
+708a844a
+708a8540
+708a16fe
+204000ca
+204070d7
+37d98200
+70813b5f
+37d98200
+70813c88
+37d98200
+6fe0c099
+c00800bf
+6fe0c438
+1fe1fe04
+67f08a02
+70890f01
+708a8024
+708a8162
+58e61212
+67f18a73
+708a8660
+708a8b3b
+204000b1
+70804300
+70804205
+58557474
+67f18968
+7089606e
+20400112
+2040013d
+204000ab
+7041480c
+20206f4e
+20758000
+37d98200
+6fe0c11c
+67f0813a
+37d98200
+20600000
+6fe0c099
+c00c00b7
+6fe0c438
+1fe1fe06
+67f08a02
+708a05e0
+708a00d8
+2000003c
+708a01a0
+708a00df
+708a01fa
+20000014
+708a009f
+20600000
+6fe0c438
+1fe1fe06
+67f08a02
+70890f00
+708a8023
+708a81b0
+58e40909
+67f18a73
+708a762a
+70890204
+2020009e
+203580f2
+6fe2020d
+207a0000
+37d98200
+6ff08136
+1fe17ef0
+6848820d
+9841fe00
+1fe0fffd
+67f08136
+37d98200
+6ff08138
+1fe17e07
+6848820e
+18498400
+9841fe00
+67f08138
+37d98200
+6ff08acb
+1fe17ef0
+6848820f
+6048c15b
+9841fe00
+67f08acb
+6fe08210
+67e0c15c
+2feffe03
+6ff08a06
+7920fe07
+67f08a06
+6fe08210
+1fe10407
+18520400
+18438400
+6048c438
+6ff08a02
+1fe17e1f
+9841fe00
+67f08a02
+20600000
+6fe1415b
+207a0000
+67e1020f
+202000dc
+204021ba
+18002a08
+18002a00
+580aaada
+67f18a0f
+708a2540
+708a2610
+2000003c
+708a01fb
+708a25ff
+708a2630
+708a16fe
+202021b4
+580aaa7e
+67f18a0f
+2000003c
+708a2500
+708a260d
+708a16f6
+20202203
+6fe0c141
+c005010d
+2020220e
+708a1425
+58a93f3f
+67f18a60
+708a631f
+20600000
+20758000
+20402160
+d8400027
+2040216f
+204021a6
+708a257f
+708a301a
+708a3178
+708a8fb2
+708ac200
+708ac300
+d8e00006
+2040012f
+2a2ffe0d
+2040211d
+2a4ffe0d
+2040211e
+d8e00005
+2040211c
+2040211e
+2040012f
+d8a08ac2
+1a31fe00
+20402117
+1a51fe00
+20402117
+18e08fff
+20210124
+2020214f
+2000003c
+58000f00
+67f10982
+58000ff0
+67f10984
+70898109
+70898103
+70898006
+2000003c
+da200000
+da400000
+df200010
+d8c00f00
+2020212d
+20758000
+20202272
+58000000
+20600000
+20758000
+708a0777
+708a08c9
+708a0b01
+6fe0c409
+67f080cd
+20000bb8
+20400151
+708a08c1
+6a40c419
+df200008
+20406f58
+6fe0c419
+67e0c433
+6240c419
+20600000
+7080cc03
+6ff08129
+c3028152
+68590164
+6049440a
+7080cc00
+20600000
+708a8211
+708a8d12
+708a8e0a
+6fe0c099
+c0080171
+58005762
+67f10907
+70890103
+70893003
+c6168000
+70890101
+708a8207
+708a8d44
+708a8e0a
+6fe0c099
+c008016e
+58002bb1
+67f10907
+c6978000
+70893024
+70890105
+20600000
+58004189
+67f10907
+2020016a
+58008312
+67f10907
+2020015f
+20406b3a
+20406b75
+20206b38
+6fe0c666
+c000017b
+c0008185
+20600000
+db000050
+58000400
+9b06fc00
+20407d62
+1807fe00
+67e10670
+dfe01fbc
+d8400004
+dd600004
+2020018f
+db000140
+58000400
+9b06fc00
+20407d62
+1807fe00
+67e10670
+dfe01fb0
+d8400010
+dd600010
+2020018f
+67e10672
+60488678
+da2049c7
+da600000
+6fe10672
+1fe22400
+6f208678
+da2049c7
+20406b74
+6fe449c7
+684c49cf
+9841fe00
+684c49d7
+9841fe00
+203a01a5
+1a60a601
+6fe10670
+9a667c00
+6fe10672
+9b067e00
+67e10672
+20200193
+1a667c00
+2022ca38
+6fe10672
+9b00fe00
+9d667e00
+67e10672
+6fe10672
+1fe22400
+6f208678
+da2049c7
+20406b74
+6fe449c7
+684c49cf
+9841fe00
+684c49d7
+9841fe00
+203a01b8
+6fe10672
+202001a9
+58001fc0
+68490672
+98467e00
+67e149df
+18427e00
+9d60a400
+6f208678
+da2049c7
+20406b74
+6fe0c666
+c0004a47
+c00081c5
+20600000
+6fe0c9c7
+1fe67c03
+24417dca
+67e0c9c6
+6fe0c9c8
+67e0c667
+6fe349c9
+67e34668
+6fe349cf
+67e3466e
+684949d5
+180a7e00
+9840fe00
+67e14695
+202004e6
+6fe0c666
+c00001d8
+c00081db
+20600000
+684949df
+58001fc0
+20204a63
+704be701
+6fe0cbe8
+207a0000
+684949df
+58001fc0
+98467e00
+67e10670
+1fe22400
+da2049c6
+df200001
+20406b45
+6fe10670
+1fe0a401
+da204667
+df20000d
+20406b45
+6fe10670
+1fe0a40e
+da204695
+df200002
+20406b45
+684949df
+18408410
+604949df
+20600000
+6fe44713
+c28a01d4
+20204a58
+1a627e00
+c00a81fa
+20204a9c
+58000000
+67e147c0
+67e0c860
+67e0c861
+67e0c794
+7047c200
+204029cb
+70429a00
+6fe143ef
+c2838206
+c28042fc
+20204b95
+20405b21
+6fe143ef
+c28042fc
+20200480
+2040553d
+2040029d
+2040328e
+20403531
+20405fdd
+2040023f
+20404b68
+20400242
+20400267
+20400291
+20400289
+20404b43
+20404b58
+20405be1
+20404b5c
+20405be4
+20404b5f
+20404b55
+204002da
+20404b32
+20405bfe
+20404b48
+204002d2
+20404b87
+202002d7
+20400234
+20406f82
+20406fb0
+1fe6fc0a
+20407d5f
+67e14633
+da20462d
+20405563
+6fe0c40c
+c280cf6b
+c3000230
+70463701
+2020555a
+d8e00004
+20405f04
+704d080c
+2020555f
+204054f2
+58560094
+67e1c62d
+58006d00
+e7e18005
+6fe0c637
+203a023d
+70463173
+20600000
+7046316d
+20600000
+6fe0c8eb
+247a0000
+20204b62
+6fe14781
+207a0000
+6fe14725
+68494781
+98460400
+6fe14869
+98467e00
+2021024d
+20400254
+20400256
+20204b7c
+20400250
+2040025c
+20204b7e
+6fe0c9aa
+c3000254
+6848c867
+20206ef7
+6848c867
+20206ef3
+6fe0ca08
+247a0000
+6fe0c40c
+c3800000
+6848cbbb
+20206ef3
+6fe0ca08
+247a0000
+6fe0c40c
+c3800000
+6fe0c9aa
+c3010256
+6848cbbb
+20206ef7
+6fe0c621
+67e0c9aa
+2020024d
+6fe0ca08
+207a0000
+1fe0ffff
+67e0ca08
+203a026d
+20200273
+6fe0c666
+c0000279
+c000827b
+c001027d
+c001827f
+20600000
+6fe0c666
+c0000281
+c0008283
+c0010285
+c0018287
+20600000
+6848cbb7
+20206ef3
+6848cbb8
+20206ef3
+6848cbb9
+20206ef3
+6848cbba
+20206ef3
+6848cbb7
+20206ef7
+6848cbb8
+20206ef7
+6848cbb9
+20206ef7
+6848cbba
+20206ef7
+6fe14781
+207a0000
+6fe0cbca
+207a0000
+1fe0ffff
+67e0cbca
+c2800273
+2020026d
+6fe0c666
+c0000296
+6fe14790
+207a0000
+20200298
+6fe145d8
+207a0000
+6fe0cd07
+1fe0fe01
+67e0cd07
+c2810273
+2020026d
+704d0c00
+6fe14790
+247a0000
+6fe145d8
+247a0000
+6fe145de
+247a0000
+6fe0ca08
+247a0000
+6fe44713
+c4118000
+c4020000
+c29382ba
+6fe0cd08
+1fe0fe01
+67e0cd08
+1fe67c14
+244102b4
+c00102b6
+c00202b8
+c00302b6
+c00402b8
+20600000
+704d0801
+202002b8
+6848cbbc
+20206ef7
+6848cbbc
+20206ef3
+6fe14725
+68494781
+98460400
+6fe14d09
+98467c00
+242102b8
+704d0c01
+6fe0cd0b
+1fe0fe01
+67e0cd0b
+c28082b6
+202002b8
+6fe44713
+c4118000
+c4020000
+c29382ce
+6fe0cd08
+1fe67c0a
+2021621b
+20206214
+6fe0cd0c
+243a621b
+20206214
+20600000
+da6048ee
+da4002d5
+202042e7
+7048eb01
+20204f6c
+da604781
+da404b8d
+202042e7
+6fe0cba1
+c28082dd
+202002e7
+6fe0cba6
+1fe67c64
+24610000
+1fe0fe01
+67e0cba6
+c18c8000
+704ba500
+6fe0c666
+c1020000
+20204e2c
+704ba600
+20600000
+204002c6
+202078aa
+6fe44713
+c30a82fe
+20405534
+20400234
+20406f82
+20406fb0
+1fe6fc0a
+20407d5f
+67e14633
+6fe1462f
+1fe6fc02
+20407d5f
+68494633
+98467c00
+202102eb
+da20462d
+20405563
+6fe0c40c
+c280cf6b
+6fe0c9a4
+205a4e24
+6fe0c9a3
+247a0000
+6fe0c666
+c000602f
+20405aa8
+6fe34668
+203a5a94
+202054a0
+204004f3
+20404c85
+58000000
+67e148e9
+d8c0489c
+d8a048b0
+df200014
+20407cda
+5800489c
+67e148e3
+58004cfb
+67e148e5
+20404c83
+20404c81
+6fe148e9
+1fe0fe01
+67e148e9
+c284834f
+6848c864
+20406ee6
+24208316
+20404c85
+6848c864
+20406ee6
+2020831e
+20400346
+20400356
+20404c81
+20404c83
+6fe1489a
+1fe22400
+7048e800
+e8408012
+6fe14898
+1fe22200
+1a222600
+df200014
+efe08011
+98467c00
+2022833a
+1a20a201
+c200032d
+1a40a401
+6fe0c8e8
+1fe0fe01
+67e0c8e8
+1fe67c0b
+20210328
+20400485
+20200502
+6fe148e3
+1fe20a00
+1a227e00
+9a667e00
+98a08a00
+6fe148e5
+1fe22600
+6fe0c8e8
+9a60a600
+efe08013
+e7e08005
+20200332
+704ab900
+7048e800
+20404c7b
+20400350
+20404c79
+20400350
+1fe67c0b
+20210348
+20204c7b
+20200308
+7048e700
+20400354
+6fe148e5
+20204c4a
+20000078
+20204c65
+6fe14898
+1fe22400
+7048e800
+7048e700
+e8408012
+284ffe07
+20208363
+20406ef7
+20400354
+e8408012
+20406ef3
+e8408012
+20404c7d
+1a40a401
+6fe148e3
+20404c4a
+1fe67c13
+20210359
+20600000
+da20489c
+da4048b0
+df200014
+20407d64
+2422cc87
+204003a3
+205a4c87
+20404ccd
+6fe0c97b
+247a0000
+6fe0c9c1
+c1008000
+c1010000
+c1020000
+7048e800
+da20489c
+da4048c4
+e8408011
+efe08012
+9842fe00
+203a039b
+67e0c8e7
+6048c8f6
+e0408012
+7048f401
+7048f700
+6fe0c8e7
+c3000390
+6fe0c8e8
+1feffe08
+6848c8f7
+9840fe00
+d8c04a16
+98c08c00
+efe08006
+67e0c8f5
+20404cfc
+204003af
+204003b9
+6fe0c8e7
+1fe37e00
+67e0c8e7
+6fe0c8f6
+1fe37e00
+67e0c8f6
+6fe0c8f7
+1fe0fe01
+67e0c8f7
+1fe67c07
+20210383
+1a20a201
+1a40a401
+6fe0c8e8
+1fe0fe01
+67e0c8e8
+1fe67c13
+2021037a
+20600000
+6fe4489c
+247a0000
+6fe448a4
+247a0000
+6fe248ac
+247a0000
+6fe0c9c4
+247a0000
+6fe0c9c1
+c1030000
+7049c100
+20600000
+6fe0c8f5
+c05683b2
+20204d3c
+6fe0c9c6
+c00183b6
+580000fa
+20204d38
+7049c208
+7049c32c
+20204d95
+6fe0c8f5
+d84000e0
+98467c00
+242103cb
+1fe67ce7
+242103e8
+1fe17e07
+1fe20e00
+6fe0c8f6
+c28003c7
+6fe0c8f8
+f93ffe00
+67e0c8f8
+20600000
+6fe0c8f8
+f9207e00
+67e0c8f8
+20600000
+70490000
+6fe0c8f6
+c28003dc
+6848c8f5
+df200006
+d8c048fa
+efe08006
+98467c00
+242283da
+efe08006
+18c08dfe
+e7e08006
+207a0000
+18c08c01
+e0408006
+c20003d1
+20600000
+6848c8f5
+df200006
+d8c048fa
+efe08006
+203a03e5
+98467c00
+20628000
+c20003df
+20600000
+18c08dff
+e0408006
+20600000
+7049c501
+6fe0c8f6
+2fec0000
+204083ed
+202003cb
+7049c502
+20600000
+6fe0c8f6
+2feffe00
+2040cd4e
+6fe0c9a1
+245a03f5
+20204d01
+6fe0c8f5
+c00a03fa
+c00d0400
+c0040404
+20204d12
+6fe0c8f6
+c30003fe
+7049c601
+704bca06
+58000000
+20204d38
+6fe0c8f6
+c30003fe
+7049c600
+202003fd
+6fe0c8f6
+c30003fe
+7049c602
+202003fd
+20204df6
+78547c00
+70496c00
+70496d00
+70496e00
+6fe0c9c1
+c000cda5
+c0014daa
+c001cdaa
+c0024dae
+c0034db7
+6fe0c8f4
+203a0416
+20204e54
+6fe0c666
+c1800000
+20204e66
+6fe0c666
+c0800420
+7049a900
+6fe14855
+245a4afc
+6fe34858
+245a4afc
+6fe0c855
+c0000423
+20204f19
+70485f02
+20404f3e
+6fe0c666
+c0804f2a
+20204f27
+58000445
+67e143e9
+58004fe5
+67e145f2
+58004ff8
+67e145f4
+58000448
+67e145f6
+58000539
+67e143d9
+58000476
+67e143d7
+58004a9a
+67e143dd
+58004bcc
+67e143db
+58004f62
+67e143d5
+58005b08
+67e143df
+58004b19
+67e143e3
+580055fa
+67e143e7
+58006221
+67e143e1
+58006228
+67e143e5
+20600000
+6fe0c666
+c1800000
+2020610b
+20400470
+6848c655
+20406eb6
+6848cbbd
+79200407
+20406eb6
+6fe14898
+1fe22400
+df200014
+e8408012
+284ffe07
+2440eef7
+1a40a401
+c2000451
+20400485
+704d0d00
+6fe14896
+1fe22400
+df200008
+e8408012
+18467cff
+2442cf5a
+1a40a401
+c200045b
+20400493
+6848c65b
+204055b5
+204055b9
+202054f2
+18467cff
+20628000
+79200407
+20406ee6
+2420846c
+7d208407
+20206eb6
+704d0d01
+20406f0f
+d9000006
+20206ebd
+58000000
+79207e15
+67e40016
+58000000
+e7e20005
+20600000
+c6130000
+20200448
+704659ff
+2040739a
+20404f70
+20200482
+20404b6f
+2040026d
+20400254
+20204b7c
+20400482
+20204327
+20400470
+20404f70
+20200448
+d8c08070
+df200010
+efe08006
+243a048c
+58000040
+18c08bff
+e7e08005
+c2000487
+dfe080dc
+98c67c00
+20628000
+df200008
+d8c080d4
+20200487
+6fe0cd0d
+203a0496
+2020049a
+58000010
+67f08141
+37d98200
+20600000
+58000080
+20200497
+20402408
+6fe1c0bd
+207a0000
+6fe0c9a1
+247a0000
+6fe0c9a2
+247a0000
+6fe0c845
+247a0000
+6fe14790
+247a0000
+6fe0c9c4
+247a0000
+20202490
+6fe143e9
+20407d79
+6fe240ad
+9840fe00
+67e240ad
+204004b1
+20202425
+600440e7
+d8c08070
+d8a040cc
+20407c8f
+d8c080d4
+20407c89
+6ff08080
+67e0c0ef
+18422400
+df20000c
+da200016
+da60814d
+37d98200
+efe08011
+e8408013
+98467c00
+202284c4
+e7e08013
+37d98200
+1a20a201
+1a60a601
+c20004be
+1a420400
+20600000
+20407396
+2040065e
+204004d4
+204004f3
+2040050b
+20758000
+2040047c
+6fe0ca07
+67e0ca08
+20404a7a
+20204962
+204042a3
+20400496
+20758000
+204035f0
+6fe0c666
+67e0cbe6
+6fe1c2de
+67e1c797
+204049af
+58004bfb
+67e1433f
+58000020
+67e14341
+20402a41
+6fe44713
+c28a49fd
+c2895d6e
+20600000
+da204667
+6fe0c666
+c1000000
+1fe0ffff
+1feffe0d
+9a20a200
+efe08011
+67e0c3f3
+c01a04f0
+20600000
+efe30006
+67e34116
+20205c7d
+20400470
+6848c655
+6048c659
+20404c7d
+5800486e
+67e14896
+58004876
+67e14898
+5800488a
+67e1489a
+20400502
+6fe14898
+1fe22400
+df200014
+202049e1
+6fe14896
+1fe22400
+df200008
+e8408012
+18467cff
+2442c9e7
+1a40a401
+c2000505
+202004ba
+6fe0c666
+c080050f
+204035fb
+202049ec
+580000a0
+20400515
+6fe0c40c
+c4000000
+58000050
+20200515
+684942d3
+9846fc00
+20407d5f
+67e0c96b
+202049f5
+6fe0c77e
+203a5c01
+20600000
+6fe0866f
+df200008
+d8c044d3
+e8408006
+98467c00
+20628000
+c2000520
+2020782c
+6fe0866f
+c00f8528
+20207864
+70003234
+6fe0c3cb
+c007cbc5
+20206ea6
+2040047d
+58000000
+67e14be7
+20204b9a
+58000000
+67e14790
+d8e00006
+20405f04
+70479200
+20405c3e
+6fe0ca08
+203a047d
+20600000
+20402a28
+247a0000
+6fe0c78f
+c07f8540
+6fe0c843
+1fe17e03
+c1818000
+6fe44713
+c280854a
+c280054a
+c282854a
+c283054a
+20404e47
+24740000
+6fe0c96c
+c000db3d
+20600000
+70496d00
+20205b3d
+6fe0cbf6
+da600100
+9a60fe00
+20600000
+20200570
+20400553
+20202563
+6fe0cbf7
+207a0000
+6fe0cbf8
+247a0000
+6848cbf7
+6fe0cbf6
+98467c00
+2441054c
+98467e00
+1fe67c64
+20210565
+6fe0cbf9
+1fe67c14
+24410563
+704bf801
+20600000
+704bfa01
+2020431f
+6848817f
+6fe0804c
+1fe37e00
+9842fe00
+2feffe02
+58000000
+6848cbf9
+7920fe00
+98408400
+6048cbf9
+20600000
+6fe08005
+1fe0fe01
+67e08005
+24368577
+6fe0cbf6
+1fe0fe01
+67e0cbf6
+6fe08168
+c3818000
+79207e03
+67e08168
+6fe142f5
+67e10196
+58000000
+67e2431d
+20600000
+2040281c
+6a20804d
+1a20a3fc
+242126fa
+2020268e
+09800018
+1fef7e00
+1ff17e00
+e7e18005
+78287c00
+2040270d
+202326f6
+c59926af
+6fe0804d
+203a26af
+1fe0fffc
+67e0804d
+204072cb
+6ff08108
+c303a6fa
+1800700c
+65e20154
+202026af
+20402152
+70890000
+793f8030
+20202ae3
+793f8030
+20202af6
+da204667
+6fe0c666
+1fe0ffff
+1feffe0d
+202054a6
+6fe44713
+c4010000
+d8e00002
+20405f04
+204005b5
+204005a9
+20205ca3
+da204667
+6fe0c666
+1fe0ffff
+1feffe0d
+9a20a200
+6fe08032
+e7e08011
+c01a05b2
+20600000
+6fe30178
+e7e30005
+20205c66
+6fe08032
+c01a05b8
+20600000
+67e0c95a
+6fe30178
+67e3495b
+6fe3c95a
+d8c04667
+df200003
+e8438006
+98467c00
+2022dc69
+18c08c06
+c20005be
+20600000
+1a220c00
+efe18006
+67e1c397
+c00585d1
+c0040601
+c00485e4
+c00385f6
+c00085fc
+c0060616
+c0050620
+c0090641
+c0290652
+20202b96
+6fe0c9f1
+207a0000
+6fe14335
+df200009
+6fe14339
+1fe0a205
+da4049f4
+20407d64
+202285de
+202005db
+6fe0c2cb
+67e0c9c6
+202005df
+7049c603
+7049f100
+704be801
+6fe0cbe7
+207a0000
+202001de
+6fe0c9f1
+207a0000
+6fe14335
+1fe0fffe
+1fe6fc07
+20407d62
+1807f200
+6fe14339
+1fe08c06
+18c08c03
+efe10006
+1fe22600
+efe10006
+d8402a29
+98467c00
+2022d089
+c20005ed
+202005db
+6fe0c9f1
+207a0000
+6fe0c9f1
+c001506c
+7049c602
+202005df
+6fe0c9f1
+207a0000
+6fe0c9f1
+c00105db
+2020505d
+20402e41
+20402e4a
+684906b1
+60490678
+20402cc7
+20402cd2
+18c08dfe
+18c27e00
+67e106c7
+684906b6
+58002a50
+98467c00
+2022860f
+20202c4f
+6fe0cb99
+203a2c4f
+20402ce0
+203a2e03
+d8c04b9a
+18007e0b
+20202ca5
+efe10006
+67e106b5
+98002200
+68494398
+6fe14332
+98467c00
+2422ad50
+6fe14abb
+d8c04abd
+20202d53
+68494398
+6fe0c321
+c281863b
+6fe44713
+c30a8626
+c31d8628
+6fe14398
+c0182e03
+6fe14398
+c0028633
+c0080636
+68494398
+6fe14332
+98467c00
+2422ad1d
+20402e46
+68494abb
+d8c04abd
+20202d2b
+d8c049fd
+18007e03
+20202d2d
+6fe0cb99
+203a062b
+d8c04b9a
+18007e08
+20202d2d
+6fe14332
+98467c00
+24228623
+20402dc7
+24340628
+20202d46
+18c22200
+6fe14335
+1fe0a5fd
+20402929
+20400653
+6fe0c78f
+c07fadac
+6fe0c795
+203a2dac
+6fe0c843
+c280adac
+5800001a
+68494398
+98467c00
+2422adac
+7001b905
+20202e05
+20402dea
+6fe0c78f
+c07f8658
+6fe14398
+c012865b
+20600000
+6fe14398
+c010865b
+20600000
+6fe08055
+67e0c9aa
+20600000
+d8c0919f
+d8a04abd
+df200042
+20407cda
+d8c091e1
+d8a04aff
+df200036
+20207cda
+6fe401fd
+203a6f79
+67e443fd
+20406b3a
+20406aad
+dfe00fc0
+9a40a400
+df20000a
+da2001fd
+20406b74
+20406b37
+6fe401fd
+207a0000
+67e44be9
+efe10006
+e7e10005
+20600000
+6ff080cc
+79207e01
+67f080cc
+6a40c419
+6fe0c433
+67e0c419
+df200008
+20406f67
+6240c419
+6ff08a0a
+793ffe04
+67f08a0a
+20600000
+6fe0c407
+c0008688
+c001068f
+20600000
+580003e8
+67e14405
+68494bed
+6fe14bef
+da600e10
+20406fc0
+20200695
+580003e8
+67e14405
+68494be9
+6fe14beb
+da6003e8
+20406fc0
+68494bf1
+984ffe00
+68494bf3
+9846fc00
+20207d5f
+20400677
+6ff08a09
+793ffe07
+67f08a09
+708a0777
+708a08c1
+708a0d61
+708a0b00
+20600000
+2040069a
+20406f90
+6fe0c409
+67f080cd
+20406f97
+708a0d60
+7080cd00
+2040069a
+6fe0c409
+67f080cd
+708a0b50
+708a0ec0
+df00000b
+6de1440a
+7080cc03
+204006bc
+68590164
+60494bf3
+20406f9c
+df00000b
+65e1440a
+708a0d60
+7080cd00
+7080cc00
+20600000
+6ff08129
+c30286bc
+20600000
Index: output/romcode.rom
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/romcode.rom	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/romcode.rom	(working copy)
@@ -0,0 +1,24576 @@
+20402385
+44804000
+20800000
+204042a3
+2040223d
+20406cad
+20402363
+20406946
+4480c000
+2040776f
+20404295
+20407447
+2055a44f
+44814000
+20407552
+20407448
+20402a45
+2040202a
+204042ad
+20402018
+2040310f
+2040248c
+20404bfb
+2020200d
+2040201d
+c6848000
+793f8009
+20402041
+202025bc
+4481c000
+20402066
+2422a025
+20402036
+1a208c01
+efe08006
+c2802536
+20600000
+70000600
+20402047
+1f227c00
+20628000
+2020235a
+6fe0c114
+207a0000
+c00da033
+2040205f
+20628000
+20402062
+20628000
+70411400
+20600000
+7001bc1b
+70411400
+20600000
+44824000
+79200009
+1a227e00
+67e1000a
+18007253
+d8a00168
+1a208c01
+efe08006
+1a220c00
+c2807cda
+20600000
+4482c000
+6fe1000a
+98000a00
+18007253
+d8c00168
+20207cda
+df200001
+68488006
+18408401
+2841fe01
+2420a04d
+d8400000
+60488006
+184ffe53
+da204040
+9a20a200
+efe08011
+c280a054
+c3800000
+c2002049
+20600000
+44834000
+da602073
+20402069
+24628000
+1a227e00
+67e1000a
+20207db8
+da6020ad
+20202069
+6848c115
+da60207b
+20202069
+4483c000
+684b4116
+da602075
+20202069
+da602081
+20202069
+da6020c7
+44844001
+da204040
+df200001
+efe08011
+1a627a00
+4484c001
+1a20a253
+c200206c
+18007c01
+20600000
+c280206e
+20207db8
+c300206e
+1a208c10
+efe30006
+98467c00
+20628000
+2020206e
+c300206e
+1a208c16
+efe08006
+98467c00
+20628000
+2020206e
+c300a06e
+204020b4
+2040209d
+98467e00
+1fe0fe01
+20212097
+18c22400
+67e48678
+44854001
+6fe0c46d
+243a2090
+6fe48678
+1a420c00
+1fe0fe05
+20202093
+6fe48678
+1a420c00
+1fe0fe14
+2421206e
+18424200
+204020c0
+20207db8
+98002400
+1a208c02
+efe10006
+203a2094
+204020c0
+20202082
+1ff11600
+196c9600
+2022a0a7
+29601e0f
+24608000
+18511600
+196c9600
+24628000
+7920041c
+20600000
+18511600
+196c9600
+29601e0f
+24608000
+79207e1c
+20600000
+c300206e
+20207db8
+c300206e
+1a208c01
+efe08006
+c280206e
+20600000
+1a208c01
+e8408006
+1c427e00
+284ffe01
+1a208c04
+e8420006
+20608000
+1a208c08
+efe30006
+20402109
+1d027e00
+20600000
+1a208c02
+1a208a04
+efe10006
+98409600
+19627e00
+e7e20005
+20202609
+c300a06e
+204020b4
+9b60fe00
+9b60fe00
+98e0fe00
+98467c00
+2421206e
+20207db8
+4485c001
+785d7c00
+784efc00
+784e7c00
+7846fc00
+78467c00
+7844fc00
+78477c00
+7843fc00
+2030a152
+37d38200
+20000064
+20202152
+44864001
+78487c00
+18423600
+20402068
+78547c00
+24628000
+18003600
+20207dba
+4486c001
+37d10200
+1b427e00
+98000c00
+1ff17e00
+9c467200
+1f217203
+2422a0ee
+18007e00
+202020f2
+68490044
+18007e00
+9840fe00
+c20020f0
+98c0fe00
+1fe6fc0c
+20407d5f
+67e1002e
+20600000
+44874001
+1b427e00
+1b220400
+98467c00
+7d217e2c
+98460400
+6fe10044
+284c000f
+2020a105
+18426000
+d8410000
+6fe10044
+98467e00
+9e008400
+604b0170
+20600000
+78587c00
+6fe30170
+9b20e000
+1e00e00a
+6fe10044
+9e067e00
+2fec000f
+2020a115
+58010000
+6b010044
+9b067e00
+9e00e000
+1e023400
+20600000
+18007c00
+20202113
+1fe97e00
+ea208005
+9a22fe00
+2fec0006
+2020211e
+2fcc0000
+d8a08ac2
+efe08005
+f920fe00
+e7e08005
+20600000
+2000003c
+70898308
+70898509
+70898109
+70898103
+70898006
+2000003c
+da200000
+da400000
+df200010
+d8c00800
+efe10006
+9a20a200
+efe10006
+9a40a400
+c200212d
+20600000
+4487c001
+20402160
+d8400027
+2040216f
+204021a6
+708a257f
+708a301a
+708a3178
+708a8fb2
+708ac200
+708ac300
+d8e00006
+20402122
+2a2ffe0d
+2040211d
+2a4ffe0d
+2040211e
+d8e00005
+2040211c
+2040211e
+20402122
+d8a08ac2
+1a31fe00
+20402117
+1a51fe00
+20402117
+18e08fff
+20212145
+708a8f52
+708a3002
+70898100
+44884002
+20406875
+78507c00
+7850fc00
+58000200
+67f20a23
+708a01fa
+2000000c
+708a0f00
+708a121a
+708a142b
+18002a08
+18002a00
+2020230f
+4488c002
+708a0f60
+708a10aa
+708a127a
+708a2500
+708a2600
+2000003c
+708a2020
+708a23fd
+708a2412
+708a2410
+2000003c
+708a1260
+708a23dd
+20600000
+44894002
+70890001
+708a239d
+708a2402
+20000014
+708a7065
+708a239f
+2040218f
+60488008
+18408401
+4489c002
+1851fe00
+d8c04135
+98c08c00
+efe08006
+6a308a71
+1a21220f
+9a21fe00
+67f08a71
+204021d0
+20000090
+6fe0c099
+c00c2187
+20000024
+708a2080
+20600000
+58008312
+67f10907
+20202197
+58004189
+67f10907
+202021a3
+448a4002
+708a8211
+708a8d12
+708a8e0a
+6fe0c099
+c0082189
+58005762
+67f10907
+70890103
+70892084
+c6168000
+70890101
+70892080
+708a8207
+708a8d44
+708a8e0a
+6fe0c099
+c008218c
+58002bb1
+67f10907
+c6978000
+70890105
+20600000
+448ac002
+2040686f
+204021ba
+18002a08
+18002a00
+580aaada
+67f18a0f
+708a2540
+708a2610
+2000003c
+708a01fb
+708a25ff
+708a2630
+708a165e
+20000014
+708a1000
+708a1108
+20000078
+7089000d
+20600000
+6fe0c143
+c07fa1c1
+d8c04144
+98c08c00
+efe08006
+67f08961
+70896027
+6848c147
+6ff08960
+9841fe00
+67f08960
+20600000
+70890003
+708a2402
+20000014
+708a7065
+708a23df
+2040218f
+204021e8
+60488008
+18408402
+20202179
+448b4002
+58000960
+9840fe00
+1fe22200
+6848c099
+18430400
+9846fc00
+20407d62
+1807fe00
+67f10909
+18077e00
+1ff07e00
+1fed7e00
+9846fc00
+20407d62
+1807fe00
+67f1890b
+62308a22
+1a2ca200
+62308a21
+708a20a0
+708a20e0
+708a20a0
+20600000
+1840fe02
+1fe97e00
+1fe17ffe
+d8c0411d
+c596a1ee
+18c08c0c
+98c08c00
+ea210006
+efe10006
+9a267e00
+18408c02
+18c10c0f
+98cffe00
+1ff1fe00
+9a20fe00
+67f10905
+20600000
+448bc002
+204021c6
+20000258
+448c4003
+580aaa7e
+67f18a0f
+2000003c
+708a2500
+708a260d
+708a1656
+2000001e
+708a151b
+2040220c
+20000014
+708a260f
+20000014
+708a10a8
+708a1100
+20600000
+448cc003
+6fe0c141
+c0002217
+c001a21c
+c002a221
+c003a225
+c0052229
+c041a22d
+c042a231
+c0452235
+c04a2239
+708a1417
+58251a3f
+67f18a60
+708a6328
+20600000
+708a1425
+58a91c2d
+67f18a60
+708a632f
+20600000
+708a1425
+58a91c3f
+67f18a60
+2020221f
+708a1425
+58a9383f
+67f18a60
+2020221f
+708a1425
+58a93f3f
+67f18a60
+2020221f
+708a1417
+58251827
+67f18a60
+2020221a
+708a1417
+5825181c
+67f18a60
+2020221a
+708a1417
+5825180b
+67f18a60
+2020221a
+708a1417
+58251000
+67f18a60
+2020221a
+70804206
+6fe1409c
+c307223e
+98000c00
+d8408a00
+efe08006
+c07fa248
+98418a00
+efe08006
+e7e08005
+20202242
+448d4003
+6fe0c436
+205a70d7
+37d98200
+70813b5f
+6fe0c099
+c0082266
+6fe0c438
+1fe1fe04
+67f08a02
+70890f01
+708a8024
+708a8162
+58e61212
+67f18a73
+708a8660
+708a8b3b
+20402286
+70804300
+70804205
+58557474
+67f18968
+7089606e
+20402133
+20402271
+6fe0c11c
+67f0813a
+7041480c
+20406f4e
+202022b4
+6fe0c438
+1fe1fe06
+67f08a02
+70890f00
+708a8023
+708a81b0
+58e40909
+67f18a73
+708a762a
+70890204
+20202257
+448dc003
+20402160
+70890003
+708a7001
+da40411d
+db004135
+2040227c
+7920002d
+2040227c
+708a7061
+20202152
+2040218f
+df200006
+da600000
+1a620400
+20402294
+1a40a402
+1b00b001
+1a60a610
+c200227f
+20600000
+6fe0c099
+c00c228c
+6fe0c438
+1fe1fe06
+67f08a02
+708a05e0
+708a00c8
+2000003c
+708a01a0
+708a00cf
+708a01fa
+20000014
+708a008f
+20600000
+448e4003
+708a2030
+708a23dd
+204021d0
+6ff08a7c
+c3002298
+708a7b30
+204022ae
+98002200
+708a7b40
+204022ae
+9a267e00
+1fef847d
+58b00000
+9846fc00
+20407d62
+1807fe00
+c596a2a7
+1fe3fe00
+e7e10012
+708a7b20
+6ff08a7e
+1ff27e00
+e7e08018
+708a7b00
+20600000
+6ff10a7d
+1ff0fe00
+68588a7c
+18500400
+9841fe00
+20600000
+448ec003
+6ff08a0d
+79207e00
+67f08a0d
+708a0ef0
+6ff08a05
+1fe1fe16
+67f08a05
+6fe0c411
+67e08678
+6fe0c408
+67e08679
+70441100
+6fe0c43e
+67e0c408
+6848c43d
+20406f0f
+da200000
+df200008
+20406f82
+6fe1440a
+9a20a200
+c20022c7
+1a292200
+67e1440a
+6fe08678
+67e0c411
+6fe08679
+67e0c408
+6ff08a05
+1fe17ee0
+67f08a05
+708a0e00
+6ff08a0d
+793ffe00
+67f08a0d
+20406fb0
+6849443b
+98467c00
+202122e4
+68494439
+98467c00
+20610000
+6fe0c438
+c1000000
+1fe0ffe0
+67e0c438
+20600000
+6fe0c438
+c1700000
+1fe0fe20
+67e0c438
+20600000
+448f4003
+6ff089a2
+2feffe06
+7920fe07
+67e0c142
+6ff089a3
+1fe1040f
+18438400
+1ff1fe00
+98408400
+184fa203
+6fe0c142
+204022ff
+1fe67e00
+9a20fe00
+1fe0fff7
+1fe17fff
+2feffe08
+2420a2fd
+58000000
+67e08035
+20202304
+2feffe07
+24608000
+d840ff00
+9841fe00
+20600000
+6fe08035
+20402308
+67e08009
+20600000
+1fe17eff
+1fe6fc0a
+20407d5f
+1ff27e00
+18070400
+9841fe00
+20600000
+448fc003
+6fe0c143
+c17f8000
+242c2336
+6fe0c142
+1fe67cf0
+2421233a
+1fe67c7f
+2021233a
+6a308961
+6fe0c143
+c1000000
+d8c04144
+98c08c00
+efe08006
+9a267c00
+24628000
+18c08dfe
+e8408006
+1851fe00
+1a31a400
+9a462400
+18417e0f
+1a21220f
+9a262200
+1a23fe00
+9a40a400
+1a4fa403
+6848c142
+18417e80
+207a0000
+58000100
+98460400
+1a427e00
+98467e00
+20610000
+1fe17eff
+c17f8000
+c17f0000
+6fe0c143
+c000a33f
+c0012341
+2020233f
+6fe0c143
+c0002341
+c000a33d
+70414302
+20600000
+70414300
+20600000
+70414301
+20600000
+1fe20400
+44904004
+18427e00
+20407d2c
+1c307e00
+79207e2c
+20407d12
+793ffe2c
+20402352
+20407d12
+20740000
+20407d1f
+98003600
+37c18200
+20600000
+1b220400
+20748000
+1b420400
+20600000
+1c427e00
+20748000
+1d027e00
+20600000
+4490c004
+2020235a
+207a0000
+1fe37e00
+1fe0fffd
+1fe0ffff
+2422a35f
+18007e00
+20600000
+58000e43
+67e10036
+58000600
+67e10038
+58000600
+67e1003a
+58000d00
+67e10040
+580003bb
+67e1003c
+58000500
+67e1003e
+580007d0
+67e10042
+58000ea6
+67e10044
+580001e0
+67e10046
+58000120
+67e10048
+5800011a
+67e1004a
+44914004
+20758000
+58000017
+67e142e3
+7041678b
+58000d00
+67e1433f
+58000060
+67e14341
+1c437e00
+67e24095
+20600000
+5800ee21
+67f10050
+6e12011c
+6ff08132
+c302a39c
+7835fc00
+c2822393
+7855fc00
+1ce27e00
+243a2393
+6ff08142
+c2822393
+d85fffff
+20202434
+204023a0
+2055a3e6
+6ff08132
+793ffe05
+67f08132
+2435a39d
+20000001
+6602069d
+20600000
+204023a0
+20406a68
+6602069d
+20600000
+37d98200
+6ff08133
+1fe17e88
+67f08133
+37d98200
+6ff08132
+1fe1fe0f
+67f08132
+37d98200
+79207e07
+67f08132
+37d98200
+79207e06
+67f08132
+37d98200
+20600000
+37d98200
+70813d76
+37d98200
+70813a37
+20600000
+37d98200
+70813d76
+37d98200
+70813a37
+20600000
+6fe0c3cb
+1ff27e00
+67f08143
+37d98200
+6fe0c3cc
+79207e05
+79207e06
+67f08144
+202023e2
+6ff08142
+793ffe03
+67f08142
+20600000
+6ff08142
+79207e03
+67f08142
+20600000
+6fe1c0c3
+d8a0813e
+df200003
+202023d1
+d8a08145
+df200004
+37d98200
+e7e08005
+1fecfe00
+c20023d1
+202023e2
+d8a08149
+202023d0
+6ff08133
+793ffe03
+67f08133
+20600000
+6fe0c0cb
+207a0000
+793ffe04
+202023e1
+67e0c0cb
+67f08135
+37d98200
+20600000
+67f08134
+202023e2
+204023dc
+6fe0c0ef
+67f08080
+d8c040cc
+d8a08070
+20407c8f
+d8a080d4
+20407c89
+680440e7
+d8c0814d
+d8a00016
+df20000c
+20407cda
+20206b11
+600440e7
+d8c08070
+d8a040cc
+20407c8f
+d8c080d4
+20407c89
+6ff08080
+67e0c0ef
+202023fd
+df20000c
+d8c00016
+da20814d
+efe08006
+245a2405
+1a20a201
+c2002400
+20600000
+e7e08011
+37d98200
+20600000
+4491c004
+6ff080cb
+243a240f
+6fe1c0bd
+247a0000
+7080cb0c
+70800680
+6ff08129
+c4008000
+6ff1815b
+67e1c0bd
+20600000
+6fe0c0ca
+79207e04
+67e0c0ca
+44924004
+d85fffff
+6fe0c0a7
+67e0c0c8
+6fe0c0ca
+67f08142
+37d98200
+4492c004
+6fe143e9
+20407d79
+6fe240ad
+9840fe00
+67e240ad
+204023f4
+6fe0c0cb
+79207e04
+204023e1
+2455a3cb
+37d98200
+632340b1
+6fe1c0c6
+6a20c0c9
+df200003
+37d98200
+67f08132
+1fecfe00
+c200242e
+37d98200
+62308133
+37d98200
+605a004c
+70800501
+37df8200
+6fe0c0c3
+247a0000
+70804206
+708130f8
+58030d40
+2040235c
+204023b5
+37d98200
+708130ff
+1e226000
+70804204
+2000000a
+37d98200
+1e227e00
+9e067e00
+1fe0fe30
+d84000ff
+20407d6c
+67e0c0c3
+20007530
+20007530
+20007530
+20600000
+44934004
+58000000
+1ce27c00
+2022a45a
+6ff0813e
+6858813f
+98467c00
+20212458
+18427e00
+9ce67e00
+1fe0fe01
+1fe0fe08
+37d98200
+9e20fe00
+684a40a9
+9840fe00
+6849c0bd
+984ffe00
+1fecfe00
+1ff1fe00
+1fe0fe6e
+68490044
+9846fc00
+20407d5f
+1ff07e00
+18070400
+9841fe00
+684b40b1
+20407d05
+18423200
+6fe34048
+20402109
+1b427e00
+67e30670
+1ce27e00
+e7e08005
+6ff0811d
+1fe1fef0
+e7e08005
+20600000
+4493c004
+1b427e00
+20407d10
+684a40ad
+18467cff
+20610000
+1fed7e00
+1ff27e00
+9846fc00
+20407d5f
+d84000c8
+20407d6c
+67e0800e
+24342486
+1fe67e00
+6849c0bd
+9840fe00
+67e1c0bd
+58000000
+67e240ad
+20600000
+44944005
+20402408
+6fe1c0bd
+207a0000
+6fe0c094
+207a0000
+6fe0c46c
+203a2496
+6fe0c46e
+207a0000
+6fe0c46d
+247a0000
+da6020af
+20402069
+20628000
+204024ef
+247a0000
+2040205d
+2422a4bd
+20758000
+4494c005
+68488015
+6fe14042
+984ffe00
+18518400
+184b0400
+98467e00
+684a4044
+9840fe00
+6848c0a6
+98467e00
+1ff06000
+6fe1404e
+1fe37e00
+20407d2c
+1e027e00
+20407d12
+1b420400
+20407d10
+20740000
+20407d25
+44954005
+6fe0c0c3
+98467c00
+20212489
+604a40a9
+204042c5
+684a40a9
+2020241e
+4495c005
+6fe0c388
+243a24c1
+20600000
+6fe140a4
+207a0000
+6848c0a6
+98467e00
+d8401d4c
+984ffe00
+202024b4
+6fe143e5
+20407d79
+243a24e0
+70001500
+c586a4e0
+6fe0c0c2
+203a24e4
+1fe0ffff
+67e0c0c2
+20600000
+7040a800
+6fe1c0b7
+1fe0fe01
+67e1c0b7
+20600000
+44964005
+70001500
+6fe1c0ba
+1fe0fe01
+67e1c0ba
+6fe0c0a8
+1fe0fe01
+67e0c0a8
+20600000
+70001500
+6fe0c0c1
+67e0c0c2
+20600000
+6848c0c0
+60488015
+20600000
+6fe140a2
+f9207e00
+67e140a2
+20600000
+6fe140a2
+f93ffe00
+67e140a2
+20600000
+4496c005
+204042c3
+6fe140a2
+1fe22200
+6fe1c44b
+7d3a2201
+6fe444d3
+7d3a220f
+6fe444db
+7d3a220e
+6fe0c114
+7d3a2208
+6fe0c3cb
+2fe1fe0a
+2040a501
+1a227e00
+67e140a2
+20600000
+6ff10112
+7d3a2206
+6ff1010e
+7d3a2205
+20600000
+47074021
+7855fc00
+70017e01
+70016803
+70017f01
+5fffffff
+67e10182
+18007e00
+67e08180
+67e0818b
+67e1c0b7
+67e1c0ba
+2040285c
+70416901
+70416a00
+70019d01
+70019e01
+70439600
+20202935
+4707c021
+7834fc00
+70016903
+70439801
+7006b101
+5800ffff
+67e106b3
+18007e00
+67e2c455
+79207e27
+67e2c450
+20202506
+47084022
+7854fc00
+58000017
+67e142e3
+1fe0fe04
+67e143b8
+70016901
+70438800
+70001500
+20402592
+6fe10196
+67e142f5
+6fe1016a
+1feffe05
+1ff1fe00
+67e10196
+20202506
+4708c022
+204025b8
+6fe08168
+2feffe04
+79208032
+204042b2
+6fe08169
+c280a53f
+20202551
+47094022
+7834fc00
+2040292b
+2021254e
+204025fb
+20402871
+7856fc00
+20402730
+24768000
+6fe08005
+1fe0fe01
+67e08005
+20402823
+7854fc00
+20600000
+20402586
+7854fc00
+20600000
+4709c022
+70433e00
+793f8030
+20407552
+20402ff5
+78577c00
+2040292b
+20212586
+6fe0819d
+204025a4
+204025fb
+20402652
+242c2577
+20402597
+2036a562
+c5182562
+20202571
+470a4022
+6fe0c33e
+1fe0fe01
+67e0c33e
+c0062571
+20402823
+20402871
+6fe0819e
+204025a4
+20402741
+204028d4
+6fe143e1
+20407d79
+2040257b
+20342580
+470ac022
+20402fba
+20402fb1
+20407841
+6fe0818b
+c281a586
+470b4022
+204020cf
+204029a5
+202020f7
+78547c00
+c5157dba
+c514fdba
+c5187dba
+20600000
+470bc022
+78377c00
+20402734
+2036a562
+c5182562
+20202571
+470c4023
+2040258d
+20404302
+20402592
+20403003
+70066f15
+2020782b
+d8a04441
+20407c99
+70017e00
+70016900
+70016800
+470cc023
+7042fd00
+7042fc00
+20407452
+20600000
+470d4023
+6fe08005
+1fe0fe01
+67e08005
+6fe08168
+c3818000
+79207e03
+67e08168
+6fe142f5
+67e10196
+58000000
+67e2431d
+20600000
+1fe20400
+470dc023
+18427e00
+c28025b8
+c280a5ad
+c30125b8
+c283a5b4
+c28125b0
+202025b8
+793f802f
+7920002d
+20600000
+793f802d
+7920002f
+793f802e
+20600000
+793f802d
+7920002f
+7920002e
+20600000
+470e4023
+793f802d
+793f802f
+20600000
+470ec023
+793f8032
+70890101
+70892080
+70893003
+20600000
+470f4023
+7844fc00
+7843fc00
+6fe18190
+98001e00
+6fe08007
+1fed8400
+79200401
+18431c00
+20600000
+204025d5
+2040216f
+6fe1003e
+2040235c
+202021a6
+2036a1fc
+c51821fc
+204025d5
+202021f9
+470fc023
+20402160
+6fe081bb
+243a25e8
+6fe08007
+1fe67c24
+202125e2
+18000400
+c1128000
+18000418
+c1130000
+1800044e
+20600000
+1fe67c0a
+202125e5
+1fe0fe01
+1fe3fe00
+1fe08402
+20600000
+6fe08007
+1fe38400
+20600000
+d84001f4
+207a0000
+d84000fa
+c1008000
+d8400096
+c1010000
+d8400064
+c1018000
+d840004b
+c1020000
+d8400032
+c1028000
+d8400028
+c1030000
+d8400014
+20600000
+47104024
+78287c00
+6fe2018c
+98001200
+20402630
+58000200
+2034a604
+6fe10176
+1fe37e00
+6849003e
+9840fe00
+20402343
+1b427e00
+20600000
+4710c024
+20407c51
+6721069b
+1a208c01
+efe08006
+c4000000
+1a208a1a
+efe10005
+1fe0fe01
+e7e10005
+204027a2
+204027c4
+204027cd
+2040261a
+20407c60
+6f21069b
+20600000
+1a208c19
+efe08006
+1a208a18
+e8408005
+9840fe00
+1fe67c24
+20212622
+1fe0ffdb
+e7e08005
+20600000
+1a208c30
+efe28006
+18000400
+18007225
+c300262a
+18408401
+1fe37e00
+c2002628
+1840ffff
+1a208a22
+e7e08005
+20600000
+47114024
+6fe08180
+98000e00
+684a8198
+a84fffff
+2020a645
+6fe0818a
+98e67e00
+2021263b
+1fe60fff
+20202636
+18e27200
+18000e00
+a84fffff
+2020a640
+1f20f201
+1f227e00
+203a2645
+18e08e01
+1f20f3ff
+2020263d
+18e27e00
+67e08007
+20600000
+2034a64b
+37c18200
+20600000
+d9600ea0
+34730200
+20600000
+78487c00
+6fe14346
+1fe21600
+20202658
+4711c024
+204026be
+78287c00
+6fe10176
+684a431d
+98409600
+204025cc
+47124024
+204025c2
+c597a660
+783cfc00
+2000001e
+204025c2
+19699600
+7856fc00
+7826fc00
+7830fc00
+78507c00
+19623600
+37c18400
+20372669
+1b420400
+604b000f
+242c26fa
+78287c00
+6fe0c167
+d8404e20
+98408400
+6fe0c148
+984fb600
+20406877
+20372677
+204026ff
+6fe08168
+c301a677
+684b000f
+2055a477
+204022e9
+7823fc00
+7824fc00
+09800008
+19897e00
+67e0804c
+09800008
+19897e00
+67e0804d
+1fe27200
+2022a69d
+c5192688
+09800008
+19897e00
+e7e08005
+c2002683
+2020269d
+18a22400
+4712c024
+2040281c
+6a20804d
+1a20a3fc
+242126f2
+204026c3
+1a420a00
+d8400000
+6f20804d
+1f20f3fc
+2022a69b
+09800008
+19897e00
+e7e08005
+18408401
+18417c0f
+2042a6e1
+c2002694
+204026e9
+1a420a00
+47134024
+09800018
+1fef7e00
+1ff17e00
+e7e18005
+78287c00
+2040270d
+202326f6
+c59926af
+6fe0804d
+203a26af
+1fe0fffc
+67e0804d
+204072cb
+6ff08108
+c303a6f2
+1800700c
+65e20154
+20406876
+7836fc00
+793f8030
+4713c024
+204072cd
+6fe0819d
+7d3e7e07
+67e0819d
+204026b9
+202026bb
+7846fc00
+20202160
+47144025
+68488008
+202021c6
+c6990000
+20407368
+1800700c
+20407370
+2020736f
+4714c025
+70806c00
+70806d01
+6fe0804c
+1fe17e03
+67f0806e
+5800004e
+67f10068
+67f1006a
+6a20804d
+1a20a3fc
+684ac455
+280ffe0f
+2040a6d7
+20407265
+58000000
+67f100c0
+70800a06
+70800a07
+20600000
+18467c00
+2022a6dc
+184085ff
+79200427
+20600000
+58ffffff
+1ff07e00
+d840ffff
+98418400
+20600000
+18a22400
+6fe0804d
+1fe0fffc
+98467c00
+20628000
+605900c0
+1a420a00
+20600000
+09800020
+1fef7e00
+1fecfe00
+e7e20005
+18a22400
+18007000
+1fe25e00
+605900c0
+20600000
+202026fc
+2040270d
+204020cf
+202026af
+20406878
+c51826fa
+79200030
+202026b2
+793f8030
+202026fc
+47154025
+204072cd
+202020cf
+c517a705
+c516a709
+6fe10046
+1fe25200
+1c225000
+20600000
+6fe1004a
+1fe25200
+1c20d001
+20600000
+6fe10048
+1fe25200
+1c225000
+20600000
+6fe0804d
+1fe08405
+18498400
+6fe0819d
+c517a714
+c2802716
+c280a717
+203e2719
+2020271c
+20202721
+18430400
+20202721
+18408403
+18438400
+2020271e
+18408403
+18498400
+58000028
+98408400
+20202721
+6fe0c148
+984f8400
+da204e20
+9a2ffe00
+98460400
+1b627e00
+98463600
+20600000
+20402741
+68488008
+2040216f
+204021a6
+78287c00
+d960157c
+20202659
+4715c025
+6fe0819e
+204025a4
+20402741
+6fe0819d
+204025a4
+68488008
+2040216f
+204021a6
+78287c00
+d960157c
+c597a659
+d9602134
+20202659
+47164025
+20402741
+202020cf
+4716c025
+204025c2
+204025d1
+2040687d
+79202a00
+782efc00
+78307c00
+7850fc00
+20402648
+785d7c00
+c517a784
+c516a796
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+7823fc00
+7824fc00
+47174025
+6fe0c169
+08008608
+efe08006
+1fe27200
+08008608
+1f267c00
+2022a762
+6ff0800a
+203a275e
+c5192779
+d8c0416b
+efe08006
+08008608
+c200275f
+78247c00
+08008618
+78447c00
+c597a769
+7843fc00
+58000000
+08008603
+37d38200
+20000064
+4717c025
+784efc00
+785c7c00
+20402160
+2040687b
+6fe0c169
+1fe17e03
+c1818000
+6fe0c2fd
+c001285c
+c1828000
+6fe0c16b
+c002a857
+20600000
+1f20f3fc
+1f220400
+204072b8
+d8c0416b
+efe08006
+08008608
+c200277d
+204072bd
+1de27e00
+08008620
+20202762
+df20000a
+5800003c
+08008608
+c2002785
+784efc00
+783c7c00
+19317e00
+1ff17e00
+1ff1fe00
+08008620
+c5172793
+58000001
+08008605
+783d7c00
+20202751
+58000000
+08008605
+20202751
+6fe0c148
+6848c168
+9840fe00
+2040235c
+19317e00
+1fecfe00
+1ff18400
+18427e00
+08008608
+18427e00
+08008628
+20202751
+da6027a6
+da4027bc
+d8e00005
+202027fb
+1a208c04
+e8420006
+1a208c37
+efe08006
+1a208a2b
+e7e08005
+efe10006
+1febfe00
+98409600
+1a208a04
+19627e00
+e7e20005
+efe10006
+1febfe00
+1a208a02
+e7e10005
+efe10006
+1a208a2c
+e7e10005
+efe10006
+67e142f5
+20202938
+efe08011
+793ffe03
+e7e08011
+62210684
+70066f44
+2040782b
+6a210684
+20600000
+da600000
+da4027c8
+d8e00006
+202027fb
+1a208c37
+efe28006
+1a208a30
+e7e28005
+20202624
+da600000
+da4027d1
+d8e00007
+202027fb
+1a208c37
+efe08006
+204027de
+e7e08005
+1a208c38
+efe08006
+204027ec
+e7e08005
+62210684
+70066f42
+2040782b
+6a210684
+20600000
+205a27e6
+1a208a35
+24748000
+6848c3b6
+284ffe07
+7920fe07
+1a208a36
+20600000
+1a208c35
+efe08006
+24748000
+1a208c36
+efe08006
+20600000
+205a27f5
+6848c3b6
+284ffe07
+7920fe07
+1a208a36
+24748000
+793ffe07
+1a208a35
+20600000
+1a208c36
+efe08006
+24748000
+1a208c35
+efe08006
+20600000
+47184026
+efe08011
+afec0000
+20608000
+1a208c1a
+e8410006
+1a208c20
+efe10006
+98467e00
+2022a80b
+24212810
+1fe67c01
+2022a809
+20600000
+1a627e00
+20207d79
+efe08011
+f93ffe00
+e7e08011
+1a427e00
+20207d79
+1a208c1a
+efe10006
+1a208c20
+efe10006
+98467e00
+d840ffff
+98467c00
+2022a80b
+d840f000
+98467c00
+2421280b
+20600000
+6848817f
+6fe0804c
+1fe37e00
+9842fe00
+2feffe02
+7920800f
+20600000
+4718c026
+20402935
+c6180000
+2040284a
+6fe0804c
+2feffe04
+7920802a
+1fe37e00
+9842fe00
+2feffe02
+7920800f
+c6078000
+6fe0804d
+203a283c
+6fe08168
+c302283c
+684a0154
+6fe2445a
+98467c00
+2022a35a
+604a445a
+6fe2c455
+1fe0fe01
+79207e27
+67e2c455
+6848817f
+79400402
+6048817f
+6fe0c321
+c4030000
+47194026
+6fe0804d
+207a0000
+6fe0804c
+2fe00601
+2020ae65
+2fe00602
+2020ae53
+20600000
+4719c026
+6848817f
+284c0005
+20608000
+6fe0804c
+1fe3fe00
+9842fe00
+c4018000
+793f8405
+79400403
+6048817f
+28400603
+20600000
+6fe08168
+79207e04
+67e08168
+79200032
+20600000
+471a4026
+7042fd00
+dfe00000
+67e2445a
+67e2c450
+79207e27
+67e2c455
+6fe08168
+793ffe04
+67e08168
+793f8032
+20600000
+da200001
+6fe0804c
+c3830000
+da200000
+20600000
+18c20a00
+684943b8
+18a20c00
+20600000
+471ac026
+6fe0817f
+c3828000
+20402892
+20402a10
+203a28b6
+efe10006
+e8410006
+18422200
+9a267e00
+2040286d
+20407db0
+1fe20400
+e8208006
+1a227e00
+98c0fe00
+67e1068f
+204028a6
+204028b8
+20402a10
+efe10006
+1fe22200
+18c22600
+e8410006
+18422400
+9a467e00
+2040286d
+20407db0
+9a40fe00
+e7e10013
+9a267c00
+24628000
+20202a2a
+20402899
+c6148000
+6fe0c321
+c30128a4
+20402a14
+203a28a4
+202028a2
+20402a10
+203a28a4
+efe10006
+e8410006
+98462200
+2040286d
+18427e00
+9a267c00
+202128a4
+79200029
+20600000
+793f8029
+20600000
+1a227e00
+207a0000
+d8200001
+20600000
+471b4026
+18408401
+20402ccf
+18c08dfe
+efe10006
+d8402902
+98467c00
+24628000
+18c08c01
+18c22200
+efe08006
+20600000
+18000400
+18000201
+471bc026
+6048c16a
+6848817f
+79200405
+18417efc
+9821fe00
+67e0817f
+1fe17e1f
+280ffe29
+7920fe04
+67e0c169
+6fe0c169
+28200601
+2420a8c8
+6fe0c16a
+207a0000
+c51928ce
+6f20c16a
+6fe1068f
+1fe20c00
+d8a0416b
+20207ccc
+20407368
+2020729f
+d8e00000
+202024e7
+d8e00000
+202024eb
+471c4027
+c6078000
+c6180000
+6fe0804c
+1fe17e03
+67e0c334
+6fe0804d
+207a0000
+5800004e
+67e14339
+471cc027
+6fe0c334
+c001b04a
+204028ee
+243428d0
+204028d2
+58000000
+67e14337
+6fe14339
+1fe08c02
+471d4027
+efe10006
+c0022b8f
+c0032ec8
+c002ae8a
+20600000
+6fe0c334
+c00128fd
+c000a914
+20600000
+20407dba
+d8400004
+9fe67c00
+20628000
+d8400005
+9fe67c00
+20628000
+d8400006
+9fe67c00
+20628000
+20207dbc
+6fe14339
+1fe20c00
+efe10006
+67e14335
+efe10006
+204028f2
+24740000
+6848804d
+60494337
+6fe14335
+1fe0fe04
+98467c00
+2022fdba
+6f20804d
+d8a00f00
+6fe14339
+1fe20c00
+20407ccc
+20207dbc
+20407dba
+6fe14337
+247a0000
+20207dbc
+20402910
+24740000
+6fe14337
+d8a00f00
+98a0a200
+6848804d
+9840fe00
+67e14337
+6f20804d
+1a220a00
+6fe14339
+1fe20c00
+20407ccc
+58000f00
+67e14339
+6fe14335
+1fe0fe04
+68494337
+98467c00
+2022fdba
+20207dbc
+6fe143df
+20207d79
+471dc027
+684a0184
+20402356
+98461600
+19627e00
+68490196
+18520400
+18438400
+98467e00
+20600000
+20402356
+67e20184
+20600000
+471e4027
+1a208c50
+efe08006
+204025eb
+1a208c02
+efe10006
+984ffe00
+68490044
+984ffe00
+d84f4240
+9846fc00
+d8400682
+6fe0c148
+984f8400
+1a208c2b
+efe08006
+984ffe00
+9840fe00
+67e2431d
+6fe1409a
+20407d62
+18078400
+9840fe00
+1a208a0e
+e7e10005
+20600000
+471ec027
+20402955
+20202969
+7006b502
+d8402a00
+604906b6
+20402ce0
+207a0000
+efe08006
+18c20a00
+6848c26b
+18427200
+98467c00
+24212966
+98460400
+d8c0426c
+20407ccc
+18427200
+2442a9a1
+20600000
+1fe27200
+d8c0426c
+20207ccc
+da604368
+da204349
+20402976
+58000000
+79347e00
+67e08670
+da604388
+da204369
+20402976
+20740000
+6fe08670
+203a235a
+20600000
+471f4027
+20407dba
+20407ca6
+da400000
+d8a006a2
+20402990
+6fe0c26b
+1fe08401
+9a40a200
+1a20a202
+1a267c1f
+2421298e
+e0408005
+d8400009
+e0408005
+98007200
+20407ccc
+1a222400
+1a427e00
+67e086a1
+d8c006a1
+5fffffe0
+9a608a00
+20207c8d
+20407dbc
+20202988
+efe08011
+207a0000
+1fe0fe01
+e8408006
+18467c09
+2022a99f
+9a40a400
+1a220c00
+98007200
+20407ccc
+18c22200
+1a227e00
+9a667c00
+20610000
+20202990
+9a20a200
+2020299b
+58000020
+e7e08005
+c20029a1
+20600000
+471fc027
+7855fc00
+203729a9
+2436a9b8
+204024d2
+6fe1409a
+67e10176
+6fe0c321
+c282a4e0
+c507a4e0
+6fe0804d
+243a24e0
+6fe0c16a
+243a24e0
+6fe08168
+c282a4e0
+c283a4e0
+c28324e0
+202024c8
+6fe0c0a8
+1fe67c1e
+242124d7
+6849409a
+18430400
+6fe10176
+9840fe00
+67e10176
+202024d7
+d8e00000
+202029d6
+d8e00000
+202029db
+d8e00001
+202029d6
+d8e00001
+202029db
+d8e00002
+202029d6
+d8e00002
+202029db
+d8e00003
+202029d6
+d8e00003
+202029db
+d8e00004
+202029d6
+d8e00004
+202029db
+d8e00005
+6fe0c321
+f9207e00
+67e0c321
+20600000
+d8e00005
+6fe0c321
+f93ffe00
+67e0c321
+20600000
+58112233
+67e1c322
+58445566
+e7e18005
+58778899
+e7e18005
+58001122
+e7e18005
+58334455
+e7e18005
+58000066
+e7e08005
+20600000
+59000302
+67e242c4
+58010010
+67e1c2c8
+7042fe01
+20600000
+da200000
+d8200001
+20202a05
+47204028
+d8200003
+20402a05
+1a427e00
+e7e08005
+20600000
+4720c028
+18000202
+1a20a204
+20402a05
+1a20a3fc
+1a227e00
+e7e10005
+1a427e00
+e7e10005
+20600000
+47214028
+1a20a205
+20406959
+1a20a3fb
+1a227e00
+e7e10005
+58000000
+e7e10005
+18227e00
+e7e08005
+20600000
+4721c028
+20406993
+1fe20c00
+20600000
+6fe14449
+20600000
+20402a19
+1fe20c00
+20600000
+6fe1444c
+20600000
+20402a10
+18c08c05
+20600000
+20402a10
+18c08c09
+20600000
+20402a16
+18c08c09
+20600000
+20402a16
+18c08c05
+20600000
+202069a9
+202069ac
+202069af
+20206998
+67e443c0
+20202a3c
+184122ff
+20402a32
+184ca200
+6220c3b7
+20202a33
+6220c3b6
+2a2ffe01
+2040aa38
+2a2ffe02
+2040aa3a
+20600000
+d8e00008
+20202a3d
+d8e0000b
+20202a3d
+d8e00005
+6fe443ae
+f9207e00
+67e443ae
+20600000
+204029c5
+204029ec
+204029df
+202029cd
+70019d01
+70019e01
+204025b8
+20402a4b
+20402acb
+202025bc
+47224028
+6fe0c343
+c1808000
+d8e00002
+20407cef
+247a0000
+6fe14344
+68494346
+98467e00
+d8e00002
+20407ce1
+7854fc00
+20402af5
+20402a6a
+24768000
+4722c028
+6fe3004e
+67e30178
+6fe08002
+1fe0fe01
+67e08002
+20402a71
+20748000
+20402b1c
+24768000
+6fe08004
+1fe0fe01
+67e08004
+6fe48054
+67e486a1
+20600000
+47234028
+20402b68
+2040264e
+6fe08001
+1fe0fe01
+67e08001
+20600000
+4723c028
+6fe081bc
+c18d8000
+6fe30178
+684b42cc
+98467c00
+24628000
+20402056
+24628000
+20402a84
+20402519
+204030ed
+70066f14
+2040782b
+70411400
+7001b800
+70434300
+7001bc00
+20202041
+47244029
+18007fff
+38080001
+67e28198
+da200168
+20402624
+18007204
+d8a0018c
+20407de8
+6fe142d9
+67e10196
+180a7e00
+1fe17e0f
+1fe67c04
+20212a8f
+67e08181
+4724c029
+68494165
+6049016a
+18422600
+1c40fe07
+9a66fc00
+20407d62
+18072200
+9a267e00
+9a60fe00
+68494163
+9840fe00
+67e2016c
+9c462200
+1a20a3fa
+da402205
+6fe0c2d2
+7d3a2406
+6fe0c2cb
+7d3a2407
+1a427e00
+67e14169
+6fe342db
+e7e30005
+6fe30178
+e7e30005
+6fe2018c
+e7e20005
+180a7e00
+e7e10005
+180a7e00
+e7e08005
+18007e02
+e7e08005
+1a2b7e00
+e7e10005
+1a6b7e00
+e7e10005
+47254029
+58000000
+e7e10005
+6fe142d9
+e7e10005
+6fe28198
+e7e28005
+6fe08181
+d84000a0
+9841fe00
+e7e08005
+2040273e
+58004169
+1fe08c12
+efe18006
+67e18190
+20600000
+70000724
+7006a100
+20402aef
+20402ad0
+20202af2
+4725c029
+6fe0c388
+207a0000
+d8e00000
+20407cef
+247a0000
+78287c00
+20402af5
+20402b68
+20402afe
+2436aae2
+6fe08003
+1fe0fe01
+67e08003
+6fe0804c
+1fe17e0f
+c001ab2d
+c002ab40
+47264029
+6fe086a1
+6848c393
+98467c00
+2422aad0
+180a7e00
+d84001ff
+98417e00
+1fe0fefa
+20407c91
+d8e00000
+6fe14389
+20207ce1
+d8a006b1
+d8c04169
+20207c8c
+d8c006b1
+d8a04169
+20207c8c
+4726c029
+7854fc00
+588e89be
+1fed7e00
+1fe1fed6
+98001200
+58555555
+67e18190
+20600000
+47274029
+6fe0c38b
+6848c38c
+18520400
+184b8400
+98408400
+6048c169
+c000ab0f
+6848c348
+1840fe06
+67e0c16a
+6fe342db
+67e3416b
+18427200
+d8c04349
+20407ccc
+20202b15
+5800000c
+67e0c16a
+6fe342db
+67e3416b
+6fe34116
+e7e30005
+4727c029
+6fe08000
+1fe0fe01
+67e08000
+db600708
+7856fc00
+20202729
+4728402a
+6fe0c394
+c1808000
+6fe08000
+1fe0fe01
+67e08000
+d8400c03
+6fe0c395
+7d3a0406
+1a227e00
+7d3a0407
+60494169
+6fe342db
+e7e30005
+6fe30178
+e7e30005
+20202729
+4728c02a
+6fe30054
+684b42db
+98467c00
+24628000
+d8400004
+6fe0c38c
+7d3a0406
+6048c169
+6848c368
+1840fe06
+67e0c16a
+6fe342db
+67e3416b
+d8c04369
+18427200
+20407ccc
+2040273e
+20202ae2
+6fe30054
+684b42db
+98467c00
+24628000
+20402868
+6220c2cb
+6fe3004e
+67e30178
+6fe4005a
+67e4018c
+68490062
+4729402a
+184b8400
+6fe10064
+1febfe00
+67e1016a
+67e2016c
+98467e00
+1fe0d1fe
+6fe48066
+67e48194
+6fe0806f
+1fe1041f
+60488181
+1ff18400
+18430400
+604881b8
+da200168
+20402938
+da200168
+20402624
+20402525
+20402056
+24628000
+4729c02a
+204020f7
+20402ea7
+70066f14
+2040782b
+20202041
+472a402a
+6fe08007
+c012ab6e
+c0132b74
+c013ab7a
+20202b7a
+6848c393
+284ffe01
+2020ab85
+284ffe02
+2020ab8a
+20202b80
+6848c393
+284ffe02
+2020ab8a
+284ffe00
+2020ab80
+20202b85
+6848c393
+284ffe00
+2020ab80
+284ffe01
+2020ab85
+20202b8a
+70000725
+6fe086a1
+79207e00
+67e086a1
+20600000
+70000726
+6fe086a1
+79207e01
+67e086a1
+20600000
+70000727
+6fe086a1
+79207e02
+67e086a1
+20600000
+18c22200
+6fe0c3cb
+c00366d5
+c007d03d
+1a220c00
+efe18006
+67e1c397
+c0012bab
+c001abb0
+c0022bb3
+c0032bf7
+c0042c44
+c0052d19
+c0062d4c
+c0082d63
+c0092da8
+c00b2dce
+c00c2de1
+c00f2de6
+c0292dea
+20600000
+18002203
+20402e10
+58000002
+e7e08005
+6fe142e1
+e7e10005
+20600000
+20402bb0
+18002203
+20402e10
+58000003
+20202ba7
+1fecfe00
+67e142e3
+20600000
+20402e41
+20407dba
+20202bc3
+efe10006
+1fe17eff
+207a0000
+9a467c00
+20628000
+24610000
+9a667c00
+20628000
+20212bc1
+18007c01
+20600000
+18007e00
+20600000
+d9600003
+20402cc7
+20402bb6
+203a2bf5
+24212bf3
+18c08dfe
+20407c6d
+20407c64
+24342be3
+20407c51
+61620680
+1800221e
+20402e10
+69620680
+20407c60
+20407dbc
+58000005
+e7e08005
+20407c67
+efe10006
+ea208006
+1a267c10
+2022abdf
+1a267c02
+2422ae03
+58000001
+e7e08005
+20202be8
+58000002
+e7e08005
+d9600001
+20202be8
+20407c67
+efe10006
+efe08006
+9a267c00
+2422abf5
+20407c67
+efe10006
+1fe17eff
+e7e10005
+ef208006
+20407cda
+20407c6a
+196097ff
+2022abf5
+20402cdd
+20202bc5
+20402cdd
+20202bf1
+20342e03
+20202e34
+20402e41
+efe10006
+67e1439e
+20407c6d
+d8a006b5
+6fe14335
+1fe0fff9
+20402e4f
+20202c0a
+78547c00
+684906b1
+6fe106b3
+98467c00
+24212c07
+18427e00
+c1800000
+78347c00
+7001b901
+20202e05
+20402c00
+20740000
+6849439e
+58002800
+98467c00
+2022ac11
+20202e03
+70439a00
+684906b1
+60490678
+20402d04
+243a2e03
+68490678
+20402d04
+243a2c2a
+18c22200
+6fe086c6
+1fe27200
+684886b5
+98467c00
+2422ac26
+da4006b6
+20407d64
+2022ac2d
+6fe106ce
+6849439e
+98467c00
+2022ac35
+6fe10678
+1fe0fe01
+67e10678
+20202c16
+6fe0c39a
+c000ac35
+20202e03
+6fe106ce
+6849439e
+98467c00
+2422ac26
+70439a01
+68490678
+604906c9
+20202c26
+6fe0c39a
+c0002c26
+70439a02
+68490678
+184085ff
+604906cb
+da200005
+20402e10
+58000007
+e7e08005
+6fe106c9
+e7e10005
+6fe106cb
+e7e10005
+20600000
+20402e41
+20402e4a
+20202c47
+684906b1
+60490678
+20402cc7
+20402cd2
+18c08dfe
+18c27e00
+67e106c7
+684906b6
+58002a00
+98467c00
+2022acb2
+58002803
+98467c00
+2422ac9c
+d9600002
+20402e17
+24212c79
+68490678
+20402d02
+243a2c79
+20402e1b
+2422ac77
+24342c7b
+78547c00
+20402e46
+1fe22200
+20402e10
+58000009
+e7e08005
+18a26000
+18a08a01
+20402c89
+20402e13
+20402d02
+20402c90
+6fe086cd
+1fe0a205
+e2208030
+1a267c07
+2442fdbe
+2042fdc0
+20402e46
+1fe0fffe
+9a26fc00
+20407d62
+18079600
+196097ff
+2022ac79
+20402e13
+20202c56
+20342e03
+20202e34
+20402e24
+20402e13
+20402d02
+20402d96
+243a2c79
+20407c64
+6fe10678
+1fe0ffff
+e7e10005
+20402e30
+20402c90
+196097ff
+2022ac79
+20202c77
+6fe10678
+e7e10005
+6fe086c6
+1fe27200
+20407c67
+20407ccc
+20207c6a
+20407c64
+6fe10678
+e7e10005
+20407c6a
+6fe086cd
+1fe27200
+20407c64
+20407c67
+9f260c00
+18c08dff
+20407ccc
+20207c6a
+472ac02a
+20402ce0
+203a2e03
+18c22600
+20402e46
+1a620c00
+e8408006
+18408404
+20407db0
+1fe22600
+1fe22200
+20407c6d
+20402e10
+58000009
+e7e08005
+1a60fffe
+1fe0f3fe
+e7e08005
+6fe106de
+e7e10005
+20407c67
+20207ccc
+20402ce0
+203a2e03
+18c08dfb
+efe10006
+67e10678
+20402e46
+6848c26b
+18408404
+20407db0
+1fe22600
+1fe22200
+20402e10
+58000009
+e7e08005
+1a60fffe
+1fe0f3fe
+e7e08005
+6fe10678
+e7e10005
+d8c0426c
+20207ccc
+472b402a
+6fe106b1
+98002400
+6fe106b3
+98002600
+6fe142f7
+98000c00
+20207dba
+20402cd2
+2022acdd
+20600000
+472bc02a
+6fe142f7
+98000c00
+efe10006
+1fe17eff
+207a0000
+98467c00
+20628000
+20402cdd
+20402cdd
+20202cd5
+efe08006
+98c08c00
+20600000
+472c402b
+6fe142f7
+98000c00
+efe10006
+1fe17eff
+207a0000
+67e106de
+efe08006
+18c20a00
+98c08c00
+684886b5
+98467c00
+2422acf3
+1fe27200
+18a22400
+da2006b6
+20407d64
+20628000
+6fe086b5
+98a08c00
+20402cdd
+20202ce3
+d8400001
+6fe142f7
+98000c00
+18c20a00
+efe10006
+1fe17eff
+207a0000
+1fe08401
+20402cdd
+20402cdd
+18c20a00
+20202cfa
+6fe106c7
+20202d06
+472cc02b
+6fe142f7
+98000c00
+efe10006
+1fe17eff
+203a2d0f
+98467c00
+2022ad10
+20402cdd
+20402cdd
+20202d07
+20207dc8
+efe08006
+67e086cd
+1fe27200
+d8a006ce
+20407ccc
+efe08006
+67e086c6
+20407c6d
+20207dca
+20402dc7
+68494398
+6fe0c321
+c281ad42
+20402cd2
+2422ae03
+20542d48
+20740000
+20402cdd
+18c08dfe
+efe10006
+d8402a00
+98467c00
+2022ad36
+18c22600
+20402e46
+1a620c00
+e8408006
+18408401
+20407db0
+1fe22600
+1fe22200
+20407c6d
+20402e10
+5800000b
+e7e08005
+1a60f3ff
+20407c67
+20207cda
+20402e46
+6848c26b
+18408401
+20407db0
+1fe22600
+1fe22200
+20402e10
+5800000b
+e7e08005
+1a60f3ff
+d8c0426c
+20207cda
+6fe14332
+98467c00
+2422ad1d
+24342d1d
+7001b905
+20202e05
+18c08dfe
+efe10006
+c2872d46
+20207dbc
+efe10006
+67e106b5
+98002200
+68494398
+20402ccf
+203a2e03
+efe08006
+9a267200
+24212e03
+20407c6d
+20402e46
+1f208401
+20407db0
+1fe22200
+1fe22600
+20402e10
+5800000d
+e7e08005
+1a60f3ff
+684906b5
+20407c67
+98408c00
+20207ccc
+20402e41
+20402e4a
+20202d66
+d9600002
+684906b1
+60490678
+20402cd2
+18c08dfe
+18c27e00
+67e106c7
+20402e17
+24212d9e
+68490678
+20402d02
+243a2da1
+20402e1b
+2422ad94
+19627e00
+c0002da1
+24342d8a
+78547c00
+20402e46
+1fe22200
+20402e10
+58000011
+e7e08005
+6fe086c6
+1fe0a204
+e2208005
+20407c6a
+1a267c06
+2442fdbe
+2042fdc0
+20402e46
+1fe0fffe
+9a26fc00
+20407d62
+18079600
+20202d90
+20402d98
+243a2da1
+6fe10678
+1fe0ffff
+67e106cb
+20402e2a
+6fe10678
+67e106c9
+20402e24
+196097ff
+20402e13
+20202d6d
+6fe086cd
+20202d99
+6fe086c6
+20362d9c
+1fe0fffe
+20600000
+1fe0fff0
+20600000
+6fe10678
+67e106cb
+20202da5
+6fe10678
+1fe0ffff
+67e106cb
+20202da5
+20342e03
+20402e2a
+20202e34
+18c22200
+6fe14335
+1fe0a5fd
+20402929
+472d402b
+20402dc7
+68494398
+20402cd2
+2422adc5
+20542dc1
+20740000
+6fe0c321
+c3022dbc
+68494398
+6fe14332
+98467c00
+2422adbc
+20402dc7
+24342dbc
+20202d46
+18002201
+20402e10
+58000013
+e7e08005
+20600000
+18c08dfe
+efe10006
+c287ad46
+20207dbc
+7001b901
+20202e05
+472dc02b
+20407dbc
+6fe0c2fe
+c1000000
+6fe0c040
+c3820000
+20207dba
+18c0a202
+6fe14335
+1fe0a5fb
+20402929
+20202dd3
+6fe14335
+1fe22200
+20402e10
+58000017
+e7e08005
+6fe14398
+e7e10005
+6fe14335
+1fe0f3fb
+6fe14339
+1fe08c07
+efe10006
+e7e10005
+20207ccc
+18002201
+20402e10
+58000019
+e7e08005
+20600000
+6fe0c396
+793ffe00
+67e0c396
+20600000
+18c22200
+6fe14335
+1fe0a5fd
+20202929
+18422600
+1a20a203
+20402e10
+1a20a3fd
+5800001b
+e7e08005
+1a620400
+e0410005
+20600000
+6fe0c396
+79207e00
+67e0c396
+18422600
+1a20a203
+20402e10
+1a20a3fd
+5800001d
+e7e08005
+1a620400
+e0410005
+20600000
+472e402b
+7001b90a
+18002205
+20402e10
+58000001
+e7e08005
+6fe0c397
+e7e08005
+6fe14398
+e7e10005
+6fe081b9
+e7e08005
+20600000
+472ec02b
+18002404
+202029fb
+68490678
+18408401
+60490678
+20600000
+68490678
+6fe106b3
+98467c00
+20600000
+472f402b
+684886b5
+da2006b6
+6fe086cd
+1fe27200
+98467c00
+24628000
+da4006ce
+20207d64
+472fc02b
+6fe086c6
+67e086a1
+1fe27200
+20407c67
+20207ccc
+4730402c
+20407c64
+6fe106c9
+e7e10005
+6fe106cb
+e7e10005
+6fe086a1
+1fe27200
+20407ccc
+20207c6a
+4730c02c
+20407c64
+20402a21
+18a27e00
+98c62200
+20402a24
+1a227e00
+e7e10006
+1a20a204
+20402a16
+1a227e00
+e7e08006
+20600000
+1fecfe00
+67e106b1
+efe10006
+67e106b3
+20600000
+4731402c
+6fe142e3
+684942e1
+20207db0
+4731c02c
+20407c6d
+d8a006b5
+6fe14335
+1fe0fffb
+e7e08005
+1fe27200
+20407c67
+20207ccc
+6fe10050
+c1820000
+6fe0c396
+79207e01
+67e0c396
+6fe18052
+67e1c397
+7920000f
+c0092e6e
+c0292e73
+c00c2de1
+c0012bab
+c00f2de6
+793f800f
+6fe0c396
+793ffe01
+67e0c396
+20600000
+6fe0c396
+c4008000
+7920000f
+20402e7e
+20402e84
+20542e61
+6fe0c397
+c0092dac
+20600000
+20402e73
+20202e70
+20402e84
+24740000
+20202dac
+4732402c
+20402e77
+da200055
+20202929
+6fe0804d
+1fe0a5f9
+1fe0fffc
+67e14337
+6849004e
+60494335
+20600000
+6a40804d
+6fe14337
+9a408400
+60494337
+da20004e
+20202929
+20407dbc
+6fe14337
+68494335
+98467c00
+24628000
+20207dba
+efe08006
+e8408006
+e8410006
+c009ae8f
+20600000
+efe10006
+67e1433c
+70066f40
+2020782b
+da20000c
+da600012
+20402e9b
+58000008
+e7e10005
+6fe442d3
+e7e40005
+20600000
+20402ea3
+da400005
+204029fb
+1a627e00
+e7e08005
+6fe0c33b
+e7e08005
+20600000
+6fe0c33b
+1fe0fe01
+67e0c33b
+c1800000
+70433b01
+20600000
+6fe0c2fe
+c0002eb8
+c000aebb
+c0012ebd
+c040aeb1
+c0412eb3
+c041aeb6
+20600000
+7042c70d
+20202eb9
+7042c70d
+7042c501
+20600000
+7042c70d
+20202ebe
+7042c700
+7042c503
+20600000
+7042c705
+20202eb9
+7042c705
+7042c500
+20600000
+6fe0c46c
+79207e00
+67e0c46c
+20600000
+6fe0c46c
+793ffe00
+67e0c46c
+20600000
+efe08006
+c000aedc
+c001af03
+c0022f24
+c002af31
+c003af9a
+c0042f86
+c004af96
+c0052f9a
+c005af9a
+c0062f9b
+c006afa0
+20600000
+18002202
+20403047
+5800000b
+e7e08005
+6fe0c2c7
+e7e08005
+20600000
+67e0c2bd
+efe30006
+e7e30005
+6fe0c2fe
+c0002f37
+20402efe
+6fe0c46a
+203a2ee8
+6fe0c2c0
+c301c31f
+6fe0c2fe
+c303c31f
+7042fc03
+6fe0c2be
+c0002ef0
+c000aef0
+c001aef0
+6fe0c2fe
+c0012ef3
+c1418000
+dfe00000
+67e242ff
+20600000
+6fe0c321
+c2802efc
+da2042ff
+1a220a00
+df200003
+20407de8
+6fe14301
+1fe17e07
+67e14301
+70066f34
+2020782b
+18002207
+20403047
+6fe3c2c4
+e7e38005
+20600000
+7042fc05
+d8a0429b
+20407c8f
+6fe0c2fe
+c0022f0b
+c041af0d
+c0422f10
+20202f13
+70066f43
+2020782b
+7042f902
+7042fa08
+20600000
+6fe242ff
+203a2f0b
+20202f0d
+7042fc06
+6fe0c2fe
+c283af1c
+20407256
+18002211
+20403047
+58000003
+e7e08005
+20207375
+d8a042ab
+20407de7
+204071b6
+18002211
+20403047
+58000003
+e7e08005
+202071f2
+18c22200
+6fe0c2fe
+c283af39
+1a220c00
+2040724e
+2022af4e
+7001ba04
+18002202
+20403047
+58000005
+e7e08005
+6fe081ba
+e7e08005
+4732c02c
+18000e07
+20407ce0
+7042fc00
+70066f30
+2020782b
+7001ba05
+20202f2b
+d8a00158
+1a220c00
+20407c8f
+6fe0c2fe
+c041af45
+c0422f45
+20407140
+20402f53
+6fe0c2fe
+c1c10000
+70066f3b
+2020782b
+204071ab
+d8a006d1
+204071f2
+da2006d1
+da40429b
+df200010
+20407d64
+2422af2a
+20202f53
+2040724a
+70066f31
+2040782b
+70429a01
+7042fc09
+18002211
+20403047
+58000004
+e7e08005
+d8c042ab
+20207c8f
+18002211
+20403047
+58000006
+e7e08005
+6fe0c321
+c280af61
+d8c0428a
+20207c8f
+d8c04322
+20207c8f
+d8a04303
+1800720a
+20407de8
+1800220b
+20403047
+58000007
+e7e08005
+6fe14303
+e7e10005
+6fe44305
+e7e40005
+20600000
+18002211
+20403047
+58000008
+e7e08005
+58000000
+e7e40005
+e7e40005
+20600000
+18002208
+20403047
+58000009
+e7e08005
+6fe0c2d2
+e7e08005
+6fe342db
+e7e30005
+20600000
+7001ba08
+20202f2b
+6fe0c2c9
+6848c2c9
+98417e00
+20600000
+d8a0430d
+20407c8f
+20402f82
+2fec0001
+2020af80
+6fe0c3cb
+c1850000
+20402f90
+24740000
+20204329
+20407dbc
+6fe0c2cb
+c1000000
+6fe0c2c2
+c4008000
+20207dba
+20402f82
+2fec0001
+2020af80
+20600000
+20600000
+d8a005fe
+20407c81
+7042f902
+7042fa01
+20600000
+d8a0065e
+20407c8f
+7042fa06
+7042f902
+20600000
+18002241
+20403047
+5800000c
+e7e08005
+d8c0448f
+20207c81
+20407157
+18002211
+20403047
+5800000d
+e7e08005
+202071f2
+6fe0c2fc
+c17f8000
+d8400003
+98467c00
+24610000
+d8e00007
+20407cef
+247a0000
+20202f80
+4733402c
+20402a28
+247a0000
+6fe0c2fc
+c0002fc7
+c000afcd
+c0012fc7
+c001afcf
+c004afd3
+c005afe3
+c0062fe5
+c006afec
+20600000
+6fe0c2fd
+c1820000
+7042fdff
+7042fcff
+70066f3f
+2020782b
+7042fc02
+20202ed5
+7042fc04
+58017700
+d8e00007
+20207ce1
+6fe0c2fd
+c0022fd6
+20600000
+6fe0c2fe
+c283afe1
+7042fc0b
+20402f59
+70066f29
+2040782b
+6fe0c3cb
+c1850000
+20402f90
+20740000
+20204329
+7042fc0c
+20202fda
+7042fc0c
+20202f63
+6fe0c2c3
+6848c2ca
+98417e00
+2fec0001
+2020afee
+7042fc0d
+20202f6f
+20402f77
+20202fee
+4733c02c
+18000e07
+20407ce0
+7042fdff
+7042fcff
+70066f3e
+2020782b
+4734402d
+6fe0c2fe
+c4038000
+6fe0c2f9
+c1810000
+7042f900
+6fe0c2fa
+c000b03d
+c0013044
+c001b035
+c003301a
+c003b011
+c0043007
+20600000
+7042f900
+7042fa00
+7042fb00
+20600000
+6fe0c4cf
+1fe20e00
+1fe0fe01
+67e0c4cf
+6fe242ff
+afefffff
+58000080
+7920fe00
+67e0c4d0
+20203039
+6fe0c2fb
+7042fb00
+c000b016
+7042f902
+20600000
+70066f31
+2040782b
+7042fc09
+20202fab
+6fe085f9
+c001b01e
+7042f902
+20600000
+2040717e
+6fe0c2fe
+c041b023
+c0423023
+20402ef0
+2040716b
+da2006d1
+da40065e
+df200010
+20407d64
+2022b02b
+7001ba0b
+20202f2b
+2040745b
+2422b029
+70429a01
+6fe0c2fe
+c040b016
+c041b016
+c0423016
+7042f902
+7042fa07
+20600000
+6fe0c2fe
+c041b03a
+c042303a
+7044d000
+20202f13
+7044cf00
+c1420000
+20202ef3
+7042f902
+6fe0c46e
+c001b041
+20600000
+7042fa02
+7005f900
+2020753c
+7042f902
+7042fa03
+20202fa5
+4734c02d
+18002406
+202029fb
+6fe0804e
+c0003061
+c000b069
+c0013071
+c001b075
+c0023093
+c002b098
+c003309c
+c003b0a1
+c00430a2
+c004b0a3
+c00530a4
+c005b0a8
+c00630a9
+c006b0ab
+c00930ac
+c009b0ad
+c00a30ae
+c00ab0b0
+c00b30bb
+c00c30bc
+6a60804e
+202030df
+efe48006
+67e4819f
+efe10006
+67e10188
+6fe08168
+79207e05
+67e08168
+20600000
+efe28006
+67e2819f
+efe10006
+67e10188
+6fe08168
+79207e06
+67e08168
+20600000
+58000014
+67e10196
+67e142f5
+20600000
+efe40006
+67e44305
+efe10006
+67e14303
+efe40006
+67e442e5
+efe20006
+67e2445e
+204030cc
+4735402d
+6fe0c2fc
+c004b087
+6fe0c321
+c280b08a
+6fe0c3fa
+245a6e96
+6fe0c29a
+c000308f
+7042fd01
+204030da
+2020725c
+70429a01
+d8c04322
+d8a0428a
+20407c8f
+20203087
+7042fd00
+7042fc00
+70066f41
+2020782b
+efe40006
+67e442ed
+efe20006
+67e24462
+2020725c
+6fe08168
+79207e04
+67e08168
+20600000
+20748000
+70066f32
+2040782b
+7042fd04
+202030dd
+20600000
+202030e4
+20600000
+7042fd02
+204030eb
+70066f33
+2020782b
+20600000
+20748000
+202030ed
+20600000
+202030f9
+20600000
+204030b0
+202030fd
+efe40006
+67e443b8
+6fe143b8
+684943c4
+20407db0
+67e143b8
+6fe143bc
+684943c0
+20407db0
+67e143bc
+20600000
+20203103
+efe10006
+67e1019f
+efe10006
+67e10188
+207a0000
+6fe08168
+79207e07
+67e08168
+20600000
+da600013
+da200002
+da400002
+204029f5
+1a627e00
+e7e08005
+20600000
+d8a042ed
+18007208
+20407de8
+d8a04462
+18007204
+20407de8
+da20000d
+da400004
+204029f5
+6fe442ed
+e7e40005
+6fe24462
+e7e20005
+20600000
+7042fd05
+da400005
+2020310d
+da400006
+2020310d
+da200002
+da400007
+204029f5
+e2608005
+20600000
+da200009
+da400009
+204029f5
+6fe443ae
+1fe1fe01
+e7e40005
+20600000
+da40000b
+2020310d
+da200006
+da40000c
+204029f5
+6fe2c15e
+e7e28005
+20600000
+da200002
+da40000d
+204029f5
+58000006
+e7e08005
+20600000
+da400013
+2020310d
+da400014
+202030fe
+da400015
+da200009
+204029f5
+6fe443c0
+e7e40005
+20600000
+da200003
+da400017
+204029f5
+6fe0c3b6
+1fe17e07
+e7e08005
+6fe0c3b7
+1fe17e07
+e7e08005
+20600000
+da200001
+202029f5
+4735c02d
+c513b3a3
+20203603
+4736402d
+7844fc00
+7843fc00
+58555555
+98001e00
+6fe0c58d
+202025c8
+4736c02d
+6fe0c5b7
+204025a4
+6fe2458f
+98001200
+20402160
+6848c58d
+204025cd
+20403112
+c597b126
+783cfc00
+2000001e
+20403112
+7857fc00
+7826fc00
+7830fc00
+78507c00
+78287c00
+6fe1458b
+98003600
+37c18400
+242c3180
+20406877
+c517b135
+6fe0c5ca
+243a3135
+7846fc00
+7825fc00
+7823fc00
+7824fc00
+2040317d
+67e0c5ad
+6848c5ac
+98467c00
+2422b188
+4737402d
+7858fc00
+280ffe2f
+2040b16f
+2038b18a
+2040317d
+67e0c4f7
+c513b148
+6fe0c4f7
+6848c589
+a8400e00
+2420b18c
+2040317d
+280ffe2f
+2040b178
+e7e08005
+1fe97e00
+1fe67c1f
+2421318e
+1fe27200
+2022b154
+2040317d
+e7e08005
+c2003151
+c513b159
+18a22200
+2040317d
+67e0c5d3
+1a220a00
+09800018
+1fef7e00
+1ff17e00
+e7e18005
+6fe0c5ca
+243a316d
+7845fc00
+280ffe27
+2040b5c8
+20233190
+20406876
+4737c02d
+7837fc00
+204026bb
+c6138000
+6fe0c5d3
+6848c62a
+98467c00
+20417db2
+202035cb
+7846fc00
+20203160
+2040317d
+1fe67c01
+20217dc2
+1fe0fffe
+c513b176
+203a7dc2
+1fe0ffff
+67e08678
+20600000
+1fe17e07
+68488678
+18498400
+9841fe00
+20600000
+09800008
+19897e00
+20600000
+7045cb01
+280ffe27
+2040b5e3
+4738402e
+204025bc
+784dfc00
+7845fc00
+202020cf
+7045cb02
+20203183
+7045cb03
+20203183
+7045cb04
+20203183
+7045cb05
+20203183
+7045cb06
+20203183
+20402160
+6848c58d
+202021f9
+4738c02e
+6fe0c5b8
+204025a4
+6fe2458f
+98001200
+20403112
+20403192
+79202a00
+782efc00
+78307c00
+7850fc00
+2040687d
+785d7c00
+c517b1c7
+c516b1d9
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+4739402e
+c517b1ae
+6fe0c5ca
+243a31ae
+784efc00
+782dfc00
+7823fc00
+7824fc00
+6fe0c58a
+98007200
+d8c04539
+efe08006
+08008608
+c20031b3
+78247c00
+08008618
+78447c00
+c597b1bd
+7843fc00
+58000000
+08008603
+37d38200
+20000064
+785d7c00
+784efc00
+6fe0c5ca
+243a31c4
+784dfc00
+785c7c00
+20402160
+2020687b
+df20000a
+5800003c
+08008608
+c20031c8
+784efc00
+783c7c00
+19317e00
+1ff17e00
+1ff1fe00
+08008620
+c51731d6
+58000001
+08008605
+783d7c00
+202031a8
+58000000
+08008605
+202031a8
+6fe0c148
+1fe37200
+20000002
+c20031db
+19317e00
+1fecfe00
+1ff18400
+18427e00
+08008608
+18427e00
+08008628
+202031a8
+4739c02e
+6fe0c5b8
+c2813206
+6fe0c588
+1fe0fe03
+67e0c58a
+6fe0c5ac
+67e0c539
+6fe0c589
+e7e08005
+6fe0c588
+1fe9fe00
+6848c57e
+18410403
+18438400
+9841fe00
+6848c57f
+9840fe00
+e7e08005
+6fe0c588
+98007200
+d8c04519
+20407cda
+473a402e
+c6938000
+6fe08035
+e7e08005
+6fe0c5b8
+c3810000
+6fe0c58a
+1fe0fe01
+67e0c58a
+20600000
+6fe0c588
+1fe0fe04
+c593b20a
+1fe0fe01
+67e0c58a
+6fe0c5ac
+67e0c539
+6fe0c58a
+1fe0fffe
+e7e08005
+6fe0c589
+e7e08005
+58000000
+202031f0
+473ac02e
+6fe0c4f8
+1fe97e00
+67e0c57d
+1fe0fe01
+d8c044f8
+98c08c00
+efe18006
+67e1c580
+6fe0c4f8
+1fe37e00
+1fe17e03
+67e0c586
+20600000
+473b402e
+6848c58e
+20403227
+6048c58e
+20600000
+473bc02e
+2040322c
+18408401
+18410403
+20600000
+473c402f
+6fe0c58f
+1fe17e03
+1fefa204
+58004593
+9a20fe00
+98408c00
+efe08006
+67e0c58d
+20600000
+67e2458f
+473cc02f
+da200000
+df200004
+d8c0458f
+efe08006
+9a20a200
+c200323b
+1a227e00
+67e145aa
+6fe0c5aa
+6848c5ab
+9840fe00
+67e0c5ac
+20600000
+473d402f
+20407dbc
+684a45a3
+1c427e00
+98467c00
+24413255
+1fe22400
+6fe245a3
+6848c5a7
+98408400
+1a427e00
+98467c00
+24610000
+793ffe1c
+67e245a3
+20207dba
+20628000
+79207e1c
+20600000
+58000000
+67e245a3
+20600000
+473dc02f
+38001300
+3805908b
+380b6150
+380c3d20
+67e4c593
+38003a1a
+3804c453
+3808d312
+380c0001
+e7e38005
+6fe0c5b9
+207a0000
+d8c045ba
+d8a04593
+20207c8f
+473e402f
+584e001e
+67e1c5bb
+58032303
+e7e18005
+58250642
+e7e18005
+58094c06
+e7e18005
+583c0927
+e7e18005
+7045b901
+20600000
+473ec02f
+d8406978
+c513b27f
+d84012c0
+6fe0c5b7
+c301327f
+d8402ee0
+6049458b
+20600000
+7045b701
+7045b801
+20600000
+7045b702
+7045b802
+20600000
+473f402f
+7045d04e
+58101520
+67e1c5cc
+58000005
+e7e08005
+20600000
+da6045d8
+da40367a
+202042e7
+79200026
+6fe0c5fc
+793ffe02
+79207e01
+67e0c5fc
+58000000
+67e145de
+6fe145d6
+67e145d8
+7045d500
+204032d6
+70457e00
+6fe0c5d0
+67e0c58d
+6fe0c5d1
+67e0c141
+6fe245cc
+20203236
+473fc02f
+7045e200
+6fe145da
+1fe0fe01
+67e145da
+6fe0c5da
+1fe17eff
+247a0000
+6fe0c5d4
+c07fb2f8
+c000b2b2
+c00132b4
+c001b2ba
+c00232c0
+20600000
+704519ff
+202032c1
+6fe0c5ae
+203a32b8
+6fe24604
+20403236
+704519aa
+202032c1
+70451955
+6fe0c5ae
+203a32c1
+6fe245e8
+67e2451b
+202032c3
+70451922
+6fe24604
+67e2451b
+6fe0c589
+1fe17e07
+67e0c51a
+70451f00
+70458807
+204031e5
+20403651
+246c0000
+24778000
+2040357b
+2040366e
+47404030
+6fe0c5d4
+c17f8000
+c000b2db
+c00132dd
+c001b2e3
+c00232eb
+20600000
+7045d402
+6fe0c5ae
+207a0000
+7045d401
+20600000
+7045d402
+2020364c
+6fe0c5ae
+203a32e1
+6fe2455f
+67e245e8
+7045d403
+2020364c
+6fe0c5ae
+203a32e9
+6fe2455f
+684a4604
+98467c00
+24628000
+7045d404
+2020364c
+6fe0c5ae
+203a32f1
+6fe2455f
+684a45e8
+98467c00
+24628000
+7045d4ff
+70066f39
+2040782b
+58000000
+67e145d8
+6fe2455f
+20403236
+6fe0c5fc
+793ffe01
+67e0c5fc
+2020364c
+70461601
+70461500
+20600000
+6fe0c615
+c3808000
+79207e01
+67e0c615
+58000000
+67e1c5d3
+67e0c5de
+67e0c5df
+67e2462c
+70461101
+2020329c
+70461101
+70458808
+d8c045d6
+d8a04519
+20207c89
+4740c030
+204033be
+20403119
+2437b3be
+2040331e
+204033f4
+20403399
+2040493d
+6fe0c5ae
+207a0000
+6fe2462c
+207a0000
+20203236
+204033be
+20203183
+70462205
+d8c044f7
+d8a045e8
+20407c89
+47414030
+6fe0c5ea
+c0553329
+c02ab33a
+c011335b
+c07fb59b
+20600000
+6fe0c5eb
+c000b32d
+c0013335
+20600000
+6fe0c5de
+247a0000
+7045d301
+7045d601
+7045d780
+6fe344f1
+67e345d8
+20600000
+6fe0c5df
+247a0000
+7045d401
+7045d602
+20203331
+6fe0c5ae
+203a3340
+6fe245ec
+684a44f1
+98467c00
+24628000
+6fe0c5eb
+c000b344
+c0013351
+20600000
+6fe0c5de
+247a0000
+6fe0c5d3
+c000b349
+20600000
+7045d302
+6fe0c5ae
+203a3330
+7045d601
+7045d780
+6fe2462c
+67e245d8
+20207dba
+6fe0c5df
+247a0000
+6fe0c5d4
+c000b356
+20600000
+7045d402
+6fe0c5ae
+203a3338
+7045d602
+2020334d
+6fe0c5ae
+203a3361
+6fe245ec
+684a462c
+98467c00
+24628000
+6fe0c5eb
+c000b365
+c0013372
+20600000
+6fe0c5de
+247a0000
+6fe0c5d3
+c001336a
+20600000
+7045de01
+20403330
+6fe0c5d5
+1fe1fe01
+67e0c5d5
+58000000
+67e145d3
+20600000
+6fe0c5df
+247a0000
+6fe0c5d4
+c0803377
+20600000
+7045df01
+20403338
+6fe0c5d5
+1fe1fe02
+67e0c5d5
+2040336f
+20204937
+6fe0c616
+c1808000
+6fe0c610
+247a0000
+6fe0c4fa
+c000b386
+c001338a
+20600000
+6fe0c62b
+c4000000
+7857fc00
+20600000
+6fe0c62b
+c4008000
+20203388
+6fe0c610
+247a0000
+6fe0c62b
+1fe1fe01
+67e0c62b
+20600000
+6fe0c610
+247a0000
+6fe0c62b
+1fe1fe02
+67e0c62b
+20600000
+6fe0c5d5
+207a0000
+6fe0c5eb
+c000b38d
+c0013393
+20600000
+79200027
+6fe0c141
+67e0c623
+202035d6
+6fe145e0
+20207d79
+4741c030
+70458800
+6fe0c611
+207a0000
+6fe145e2
+20207d79
+204033f1
+2437b3be
+204033e3
+243433be
+6fe0c57d
+203a33be
+1fe0fe02
+98007200
+d8c044f7
+d8a045e8
+20407cda
+70461300
+6fe0c610
+205a33fe
+47424030
+6fe0c5ea
+c000b3c4
+c00133d3
+c07fb3c2
+4742c030
+d8a044f7
+df200042
+20207ca1
+2040339b
+2020359b
+2040338d
+2040352e
+6fe0c60a
+6848c5e8
+284ffe03
+7920fe00
+67e0c60a
+c000b3d9
+6fe0c612
+6848c5e8
+284ffe04
+7920fe00
+67e0c612
+6fe145e4
+20207d79
+20403393
+6848c5e8
+284ffe03
+2020b3e1
+6fe145e6
+20207d79
+6fe0c3cb
+1fe67c0e
+2042c469
+6fe0c5de
+247a0000
+7045de01
+6fe245f2
+202035a3
+6fe245f2
+202035a9
+20407dbc
+6fe0c586
+6848c587
+98467c00
+2442fdba
+6fe0c586
+67e0c587
+6fe1c580
+6849c583
+98467c00
+2442fdba
+6fe1c580
+67e1c583
+20600000
+204033be
+20403119
+24778000
+6fe0c4f7
+67e0c589
+20403214
+6fe0c4f8
+2feffe00
+2020b3fd
+204033a5
+204031e5
+20403195
+20203183
+70461401
+58000280
+d8e00008
+20207ce1
+47434030
+70461301
+70461700
+7045a7ff
+20203258
+4743c030
+6fe0c613
+207a0000
+20403245
+24740000
+20403414
+6fe0c617
+1fe0fe01
+1fe17e01
+67e0c617
+c0003419
+c000b41c
+20600000
+6fe0c622
+207a0000
+1fe0ffff
+67e0c622
+20600000
+6fe0c622
+247a0000
+20203460
+6fe0c622
+247a0000
+202032fc
+6fe0c62a
+247a0000
+6fe0c628
+205a344f
+6fe0c625
+c3800000
+79207e00
+67e0c625
+70462401
+70462900
+58000000
+67e14626
+7045a760
+20203258
+47444031
+6fe0c616
+c1000000
+6fe0c62a
+247a0000
+6fe0c628
+247a0000
+6fe0c624
+207a0000
+6fe0c62b
+2fe00603
+2020b44b
+20403245
+24740000
+6fe14626
+1fe0fe01
+67e14626
+d84007d0
+98467c00
+2021344b
+6fe0c629
+1fe0fe01
+1fe17e01
+67e0c629
+c0003514
+c000b2fc
+20600000
+6fe0c622
+243a32fc
+20203514
+70462801
+20203514
+70462400
+20600000
+70462401
+20600000
+4744c031
+6fe0c615
+c3800000
+79207e00
+67e0c615
+6fe0c623
+67e0c141
+70461100
+70090d00
+70460a01
+70457e00
+6fe244f1
+20403236
+20403222
+202033be
+70461100
+70461600
+70461500
+20600000
+6fe0c616
+c1800000
+20403451
+20403518
+202033ab
+47454031
+6fe0c616
+c1808000
+204032ff
+2040330f
+6fe0c610
+247a0000
+6fe0c5d5
+207a0000
+70461300
+20403460
+204033fe
+20203258
+6fe0c615
+c3838000
+79207e07
+67e0c615
+6fe0c623
+67e0c141
+70461700
+70461101
+58000000
+67e1c63d
+67e3c61a
+20403506
+24628000
+6fe0c58e
+67e0c619
+6fe0c58d
+67e0c618
+20600000
+4745c031
+6fe0c616
+c1838000
+20403476
+204034ae
+204033f1
+2437b3be
+20403506
+2042b3ad
+6fe0c60a
+205a344d
+70461600
+6fe0c615
+79207e00
+67e0c615
+6fe0c611
+1fe67c02
+2442b504
+204033be
+204033fe
+20403506
+2022b4a7
+6fe2458f
+684a4634
+98467c00
+2022b4aa
+6fe2458f
+684a4630
+98467c00
+2022b4ac
+20600000
+6fe0c619
+67e0c58e
+20600000
+6fe0c61f
+202034a8
+6fe0c61c
+202034a8
+47464031
+6fe0c617
+1fe0fe01
+1fe17e03
+67e0c617
+c00034d2
+c000b4ec
+c00134b8
+c001b4ec
+20600000
+20403330
+6fe24630
+203a34ae
+20403236
+6fe0c61d
+205a34cd
+6fe0c61b
+67e0c58d
+6848c63e
+6a214644
+204035ab
+6048c63e
+204035b4
+6048c63b
+18467c50
+24610000
+6848c61c
+20403227
+6048c61c
+67e0c61b
+20600000
+70461d01
+d8400000
+2040322c
+67e0c61b
+20600000
+20403338
+6fe24634
+203a34ae
+20403236
+6fe0c620
+205a34e7
+6fe0c61e
+67e0c58d
+6848c63f
+6a214646
+204035ab
+6048c63f
+204035b4
+6048c63c
+18467c50
+24610000
+6848c61f
+20403227
+6048c61f
+67e0c61e
+20600000
+70462001
+d8400000
+2040322c
+67e0c61e
+20600000
+20403330
+6fe244f1
+20403236
+6fe0c61a
+205a3500
+6fe0c618
+67e0c58d
+6848c63d
+6a214642
+204035ab
+6048c63d
+204035b4
+6048c63a
+18467c50
+24610000
+6848c619
+20403227
+6048c619
+67e0c618
+20600000
+70461a01
+6fe0c618
+67e0c58d
+20600000
+70461100
+20600000
+6fe2458f
+684a44f1
+98467c00
+20600000
+6fe0c611
+c1010000
+6fe0c614
+207a0000
+d8e00008
+20407cef
+247a0000
+70461400
+70462200
+2040341f
+4746c031
+70461607
+70461500
+202033be
+47474031
+6fe0c60a
+c000b5ea
+6fe0c612
+c000b52c
+684a460b
+1c427e00
+98467c00
+24413255
+1fe22400
+6fe2460b
+6848c60f
+98408400
+1a427e00
+98467c00
+24610000
+793ffe1c
+67e2460b
+70460a01
+20203222
+70461200
+20203222
+1c427e00
+67e2460b
+20600000
+da6045de
+da40367a
+202042e7
+4747c031
+79200026
+6fe0c5fc
+793ffe01
+79207e02
+67e0c5fc
+6fe0c5e3
+203a3549
+6fe0c5e2
+c000b541
+c0013541
+c001b550
+c0023550
+6fe0c5d1
+67e0c141
+6848c5ec
+6048c58e
+6fe245e4
+2040355a
+6048c5ec
+20600000
+70414103
+6848c5ed
+6048c58e
+6fe245e8
+2040355a
+6048c5ed
+20600000
+70414103
+6848c5ee
+6048c58e
+6fe24604
+2040355a
+6048c5ee
+20600000
+6fe2455f
+207a0000
+67e245e8
+20403236
+20203222
+47484032
+6fe145e0
+d84001f8
+98417e00
+203a3565
+6fe145e0
+1fe0fe01
+67e145e0
+20600000
+2040357f
+20403651
+242c3586
+2437b586
+2040366e
+6fe245cc
+684a458f
+98467c00
+2022b291
+6fe24604
+684a458f
+98467c00
+2042b557
+6fe0c5fc
+793ffe02
+67e0c5fc
+58000000
+67e145d8
+67e145e0
+67e145de
+70066f3c
+2040782b
+4748c032
+df200020
+d8a04519
+20207ca3
+704519ff
+6fe0c589
+67e0c51a
+6fe24604
+67e2451b
+70458806
+202031e5
+47494032
+6fe0c5e3
+203a3222
+6fe145e0
+1fe0fe01
+67e145e0
+2feffe09
+6fe0c5e2
+c000b593
+c0013595
+c001b597
+c0023599
+20203549
+2020b549
+20203541
+2020b550
+20203541
+2020b550
+20203549
+2020b550
+2020329c
+6fe0c5eb
+c000b59f
+c00135a5
+20600000
+6fe0c5de
+247a0000
+6fe245ec
+67e2462c
+67e24630
+20600000
+6fe0c5df
+247a0000
+6fe245ec
+67e2462c
+67e24634
+20600000
+4749c032
+1a227e00
+98408a00
+6fe08009
+e7e08005
+18408401
+6fe0c5d2
+98410400
+20600000
+474a4032
+6fe0c5d2
+1fe0fe01
+67e1069b
+1fe27200
+1a220c00
+dfe00000
+e8408006
+9840fe00
+c20035bb
+6849069b
+9846fc00
+20407d62
+18078400
+c6138000
+18427e00
+c6930000
+20402308
+1fe20400
+20600000
+202022e9
+6fe145f0
+202035dd
+1fe22200
+6848c5ef
+6fe145f0
+98408a00
+1a227e00
+e7e08005
+18408401
+6fe0c5d2
+98410400
+6048c5ef
+20600000
+6fe14640
+204035dd
+6fe14642
+204035dd
+6fe14644
+204035dd
+6fe14646
+207a0000
+1fe20a00
+6fe0c5d2
+1fe0fe01
+1fe27200
+20207ca1
+204035c8
+207a0000
+6848c639
+6a214640
+204035ab
+6048c639
+20600000
+6a214640
+204035b4
+6048c638
+18467c50
+24610000
+20203222
+6fe244f1
+67e24604
+202035c9
+58002fb2
+67e1c608
+58100c0c
+67e1c5a7
+5800bb80
+67e1c60b
+70462105
+20600000
+5800f80c
+67e1c608
+581c1919
+67e1c5a7
+58017700
+67e1c60b
+7046210b
+20600000
+c6930000
+6fe0c5fc
+c280b2a3
+c281355c
+6fe0c618
+c000b6c0
+474ac032
+20403625
+2434369f
+2040363a
+204036e8
+6fe0c3cb
+c004600a
+6fe4460b
+67e445af
+6fe1461d
+67e1461f
+6fe145f8
+20207d79
+474b4032
+204036b4
+24740000
+204036be
+20407de2
+6fe1c608
+20203622
+474bc032
+204036b4
+24740000
+204036be
+6fe445af
+20407d25
+604a40a9
+2020241e
+20403628
+24740000
+202031e5
+6fe145f2
+20407d79
+2034362e
+6fe3c51a
+207a0000
+20207dba
+70460200
+1a20fe01
+67e0c588
+20403636
+67e0c519
+1a420c00
+1a227200
+20207cda
+6fe0c589
+1fe17e07
+67e0c589
+20600000
+58000000
+67e0c601
+67e14622
+20403651
+6fe0c57f
+c000b646
+242c365f
+2437b65f
+2040366e
+6fe0c3cb
+1fe67c08
+2042e262
+2040371a
+2040357b
+6fe0c57e
+1fe0fe01
+67e0c57e
+20403692
+474c4033
+58000000
+67e0c5fd
+67e145fe
+20600000
+474cc033
+7857fc00
+20403195
+6fe0c57f
+c000b183
+18002a00
+6fe2458f
+98001200
+68488008
+2040216f
+204021a6
+20403121
+2057b183
+20600000
+474d4033
+6fe0c3cb
+c00460f9
+6fe0c602
+247a0000
+6fe145fe
+1fe0fe01
+67e145fe
+6fe0c5ff
+c2823676
+2040367c
+6fe14622
+1fe0fe01
+67e14622
+2020363d
+474dc033
+20403214
+6fe0c57d
+207a0000
+98007200
+d8c044f9
+d8a0455d
+20207cda
+474e4033
+58000000
+67e145fe
+70460001
+70066f3a
+2020782b
+474ec033
+6848c601
+6fe0c621
+98467c00
+2421369a
+18408401
+6048c601
+6fe0c621
+c002b689
+6fe0c601
+c0033694
+c0063694
+20600000
+6fe0c601
+c001b694
+c0033694
+20600000
+c517b690
+67e0c53a
+20600000
+67e0c53b
+20600000
+6fe0c589
+c4020000
+6fe0c589
+793ffe04
+67e0c589
+2040368d
+2040371e
+20203222
+2040370e
+2040371e
+20203222
+6fe145f4
+20207d79
+6fe0c602
+205a36a6
+6fe0c618
+c1008000
+2040369d
+6fe145fa
+20207d79
+70458901
+70460201
+20403636
+67e0c519
+58000000
+67e3c51a
+6fe24604
+67e24521
+7045880c
+6fe0c589
+79207e03
+67e0c589
+204031e5
+2020360c
+474f4033
+78347c00
+20402408
+6fe1c0bd
+203a7dbc
+6fe0c094
+203a7dbc
+6fe0c618
+c000fdbc
+20600000
+6fe145f6
+20207d79
+20403245
+24740000
+204036d5
+6fe14619
+1fe0fe01
+67e14619
+6849461b
+98467c00
+2042b6ca
+20203609
+70461800
+58000000
+67e14619
+58000064
+67e1461b
+70461700
+6fe0c5a8
+67e0c5a7
+20600000
+6fe0c5a9
+202036d1
+6fe0c617
+1fe0fe01
+67e0c617
+c00236d3
+c002b6cf
+20600000
+70461801
+58000000
+67e14619
+20600000
+df200002
+d8c0458f
+20407dba
+5800ffff
+e8410006
+98467c00
+2442fdbc
+c20036e3
+20600000
+474fc033
+6fe0c437
+247a0000
+6fe144e9
+c3858000
+6a2145f0
+204035b4
+6048c624
+6fe0c629
+c51336f3
+6fe0c62c
+98467c00
+2421370d
+6fe0c626
+1fe67c02
+242136fb
+6fe0c626
+c000370e
+20600000
+6fe0c626
+6848c627
+98467c00
+24628000
+70462600
+6848c624
+6fe0c628
+c5133704
+6fe0c62b
+98467c00
+24610000
+6fe0c625
+c0003715
+1fe0ffff
+67e0c625
+c0003715
+70414100
+20600000
+70462600
+6fe0c625
+c0013713
+1fe0fe01
+67e0c625
+c000b70b
+70414106
+20600000
+70414185
+20600000
+70462501
+70462600
+20600000
+6fe0c626
+1fe0fe01
+67e0c626
+20600000
+6fe0c626
+1fe67c02
+24413726
+6fe0c626
+c1000000
+1fe0ffff
+67e0c626
+20600000
+70462603
+20600000
+6fe088f3
+67e08709
+1e020c00
+20407c8e
+6fe14826
+20207d79
+7049b81e
+2040378c
+6fe0870a
+c0003739
+c0403d67
+c0413ed4
+c068b799
+c06837ba
+c0693799
+c06ab7bb
+20600000
+d8c0070e
+d8a04959
+20407c8f
+7047e400
+20403bbf
+20403bb1
+2040375e
+2040374f
+20403754
+7047e400
+6fe14828
+20207d79
+58000000
+67e14806
+180a7e00
+1fe17e1f
+1fe0fe1e
+67e0c804
+1fe0fe05
+67e0c803
+20403e53
+20203a71
+6fe08951
+7047e404
+c1008000
+7047e400
+20600000
+58000080
+67e08723
+58000003
+e7e08005
+58000000
+e7e08005
+6fe1870b
+e7e18005
+70072206
+202041b5
+6fe1484c
+c3810000
+20403e3e
+1a20a606
+5fffffff
+e7e40013
+e7e40005
+efe10011
+e7e10013
+1a427e00
+9a20a200
+c2003761
+6fe14848
+20207d79
+58000082
+67e08723
+58000004
+e7e08005
+6fe0870c
+e7e08005
+70072203
+202041b5
+58000082
+67e08723
+5800004e
+e7e08005
+6fe1070c
+e7e10005
+70072204
+202041b5
+58000082
+67e08723
+58000060
+e7e08005
+6fe2070c
+e7e20005
+70072206
+202041b5
+5800005e
+67e08723
+58000000
+e7e08005
+6fe1070c
+e7e10005
+70072204
+202041b5
+6fe0c804
+207a0000
+1fe0fe1e
+67e0c804
+20600000
+da604803
+da4037e4
+202042e0
+da604804
+da403797
+202042e0
+6fe14855
+20207d79
+204037c4
+24740000
+47504034
+6fe1070e
+d840f01f
+98467c00
+2022b7d8
+d840f014
+98467c00
+2022b91c
+d840f013
+98467c00
+2022b907
+d840f017
+98467c00
+2022b819
+d840f018
+98467c00
+2022b845
+d840f016
+98467c00
+2022b86a
+d8400534
+98467c00
+2022b7cf
+d8400533
+98467c00
+2022b7d2
+d8400123
+98467c00
+2022b7d5
+6fe1482c
+20207d79
+20600000
+efe10006
+d84001a8
+98467c00
+24628000
+efe08006
+6848c9b6
+98467c00
+24628000
+20203b2a
+20407dbc
+6fe1070b
+d84001a8
+98467c00
+24628000
+6848c4f1
+6fe0870d
+98467c00
+20628000
+67e0c4f1
+20207dba
+204037f4
+6fe1483c
+20207d79
+204037f4
+6fe1483e
+20207d79
+204037ee
+6fe14840
+20207d79
+204037f0
+6fe20710
+67e244f3
+20203889
+580000d3
+67e08723
+580001a8
+e7e10005
+6fe0c4f1
+e7e08005
+e0410005
+20600000
+d8e00000
+d8400003
+da20f009
+202037fc
+da200100
+202037fc
+df200008
+202037f6
+df200008
+202037f6
+df200006
+202037f6
+df200004
+202037f6
+df200002
+202037f6
+df200001
+202037f6
+1f20fe06
+67e08722
+204037dc
+d8c00710
+20407cda
+202041b5
+20403808
+e2210005
+e0408005
+70072207
+20203806
+20403808
+e2210005
+e0410005
+70072208
+20203806
+20403f6e
+202041b5
+6fe0c7ae
+67e0892b
+580000f0
+67e1094c
+6fe0c4f2
+1fe0fe01
+67e0c4f2
+c0603817
+580000d4
+67e08723
+580001a8
+e7e10005
+6fe0c4f2
+e7e08005
+20600000
+7044f280
+20600000
+18c22200
+6fe08709
+d8400006
+98467e00
+67e0c608
+1fe27200
+1a220c00
+d8a04609
+20407cda
+da400000
+dfe04609
+9a408400
+efe08002
+c07fb83f
+1fe17e7f
+20403837
+1a40a401
+6fe0c608
+9a467c00
+20213823
+2040394a
+d840f017
+204037dc
+d8400000
+e0408005
+18a20400
+2040393b
+1fe0fe07
+67e08722
+202041b5
+207a0000
+1fe0ffff
+1feffe12
+da204503
+9a20a200
+58000000
+e7e08011
+20600000
+df200012
+1f2ff20d
+d8a04503
+20407ca1
+2040394a
+2020382e
+efe08006
+c07fb85e
+67e0c5ff
+efe08006
+1fe0ffff
+1feffe12
+d8c04503
+98c08c00
+d8a045ed
+df200012
+20407cda
+d840f018
+204037dc
+6fe0c5ed
+203a3867
+d8400000
+e0408005
+6fe0c5ff
+e7e08005
+6fe0c5ed
+e7e08005
+6fe445ee
+e7e40005
+70072211
+202041b5
+d840f018
+204037dc
+d84000ff
+e0410005
+18a20400
+2040393b
+1fe0fe08
+67e08722
+202041b5
+d8400080
+e7e08005
+20203856
+efe08006
+67e0c5ff
+1fe17e7f
+1fe0ffff
+1feffe12
+d8a04503
+98a08a00
+6fe0c5ff
+e7e08005
+2040394a
+d840f016
+204037dc
+58000000
+e7e08005
+18a20400
+2040393b
+1fe0fe07
+67e08722
+202041b5
+1c420400
+6fe244f7
+98467c00
+2041388f
+20403896
+98467c00
+20610000
+2040388a
+6fe244f3
+1fe0fe01
+67e244f3
+2020389a
+1c427e00
+67e244f7
+6fe0c4fa
+1fe17e0f
+67e0c4fa
+20600000
+20628000
+1fe22400
+58100000
+1fed7e00
+98408400
+1a427e00
+20600000
+df200014
+1fe0fea0
+c2003897
+20600000
+5800000d
+67e0c602
+1fe0ffff
+1feffe12
+de004503
+9e00e000
+efe08030
+245a38a8
+1e00e1ee
+6fe0c602
+1fe0ffff
+207a0000
+67e0c602
+202038a0
+d8e00007
+afec0000
+20608000
+1fe17e7f
+d840000d
+98467c00
+20610000
+1e020c00
+d8a045ed
+df200012
+20407cda
+6fe0c5fe
+c02cb8bf
+684a44f3
+6fe245ee
+98467c00
+6fe0c5f5
+2022b8e3
+242138bc
+20600000
+58000000
+e7e08030
+20600000
+6fe244f3
+d840003c
+9846fc00
+20407d62
+18077e00
+247a0000
+6fe244f3
+d8454600
+98467e00
+d8493a80
+9846fc00
+20407d62
+18077e00
+d8415180
+9846fc00
+20407d62
+18072200
+18078e00
+6fe0c5f2
+203a38d5
+afefffff
+24608000
+1a227e00
+d840003c
+9846fc00
+20407d62
+18078400
+580001e0
+98408400
+6fe145ee
+da200fff
+9a217e00
+98467c00
+24628000
+6fe0c5f6
+202038e3
+67e0870c
+70460201
+1e027e00
+67e1091f
+6848870c
+68e0c869
+204037e8
+6fe1091f
+1fe26000
+1e008c11
+efe08006
+c02cb8f4
+58000000
+e7e08030
+68e0c869
+204038ff
+2020394a
+6fe0c5f2
+203a38ef
+d840f009
+204037dc
+58000011
+e7e08005
+efe08030
+1fe1fe80
+e7e08005
+70072308
+20203806
+d840f020
+204037dc
+18a20400
+2040393b
+1fe0fe06
+67e08722
+700723d3
+20203806
+d8a045ed
+df200010
+20407cda
+6fe0c5ed
+1fe17e7f
+67e0c5ff
+1fe67c0d
+24610000
+6fe245ee
+d840003c
+9846fc00
+20407d62
+18070400
+98467e00
+67e245ee
+58000000
+67e145fd
+da2045ed
+20403930
+d840f013
+20203928
+d8a045ed
+df200011
+20407cda
+6fe0c5ed
+1fe17e7f
+67e0c5ff
+1fe67c0d
+24610000
+7045fe59
+da2045ed
+20403930
+d840f014
+204037dc
+58000000
+67e08729
+18a20400
+2040393b
+1fe0fe07
+67e08722
+202041b5
+20403937
+1a220c00
+d8a04503
+98a08a00
+df200012
+20407cda
+2020394a
+6fe0c5ff
+1fe0ffff
+1feffe12
+20600000
+da204503
+da400000
+18420a00
+df20000d
+1f20f3ff
+efe08011
+c07fb945
+203a3945
+1a40a401
+e7e08005
+58000012
+9a20a200
+c2003940
+1a427e00
+20600000
+6fe1484a
+20207d79
+4750c034
+58004a5e
+67e14aed
+58004aeb
+67e10919
+70078714
+6fe0c808
+67e08788
+6fe08916
+1fe0fe0b
+1fe0f3fe
+67e08789
+1fe0ffff
+e7e08005
+5800002a
+e7e08005
+d8c04998
+20407ccc
+6a210919
+20403967
+204078b2
+6fe144e9
+2feffe09
+24608000
+20403e5e
+da200787
+202078b2
+1a208c02
+efe10006
+67e143fb
+da200787
+20600000
+58004a5e
+67e143fb
+20600000
+6fe0c9b5
+c1808000
+7049b502
+20203ace
+da20078c
+d8400012
+58000021
+24608000
+da20079e
+68488789
+184085ee
+58000022
+20600000
+d8a0462b
+58000002
+e7e08005
+58000001
+e7e08005
+58000002
+e7e08005
+20600000
+d8401827
+58000003
+e7e08005
+58000003
+e7e08005
+e0410005
+20600000
+204025b8
+20402af5
+2040264e
+24768000
+6fe08002
+1fe0fe01
+67e08002
+6fe14824
+20407d79
+202025bc
+204039a1
+20740000
+2040398b
+20402018
+68494344
+d8e0000a
+204020dc
+20740000
+d8e0000d
+20407cef
+243a3997
+20600000
+68494344
+d8e00004
+204020dc
+20740000
+204039a9
+6fe14344
+d8e0000d
+20207ce1
+6fe0c64a
+1fe0fe01
+67e0c64a
+67e08007
+c1940000
+70464a25
+70000725
+20600000
+6fe0804c
+1fe17e0f
+c00039b6
+c00139b6
+20600000
+e8408006
+18467c06
+20610000
+18467c25
+24610000
+1840a3fa
+18c0a406
+e8408012
+18467c01
+20610000
+18467c1e
+24610000
+18427e00
+207a0000
+47514034
+efe08006
+c07fb9d1
+c0153f7c
+1840fe01
+9a267c00
+20610000
+9a40a400
+18467fff
+9a20a200
+1a227e00
+207a0000
+202039bd
+7007aa00
+20203cfa
+6fe08000
+1fe0fe01
+67e08000
+4751c034
+204025b8
+df200027
+d8c04169
+d8a007aa
+20407ccc
+70000725
+db600708
+78287c00
+7856fc00
+20402af5
+204039f0
+180a7e00
+d84001ff
+98417e00
+1fe0fe64
+20407c91
+6fe08007
+1fe0fe01
+67e08007
+c09439e0
+df200027
+d8a04169
+d8c007aa
+20407ccc
+202025bc
+d8400002
+6048c169
+6848c62a
+1840fe06
+67e0c16a
+6fe342db
+67e3416b
+18427200
+d8c0462b
+20407ccc
+2020273e
+47524034
+684908f4
+6fe088f3
+18420c00
+da20476e
+de00477e
+20403c5a
+20407dbc
+1a627e00
+9e008c00
+684a477e
+6fe10910
+1fe22200
+df20000a
+efe20011
+203a3a16
+98467c00
+20628000
+1a20a204
+c2003a09
+6fe10910
+1fe20a00
+1fe08c04
+df200024
+20407ccc
+e0420005
+20207dba
+e0420011
+20207dba
+6fe0c857
+c000ba43
+20403a21
+20403a25
+20403a2c
+20403a30
+20403a34
+20403a35
+20203a39
+d840001a
+da20480a
+5801ffa0
+20206c4d
+d8400013
+da2047ef
+5801e000
+20406c4d
+6fe0c7ff
+67e0c871
+20600000
+d8400010
+da204959
+5801e100
+20206c4d
+d8400010
+da2046a0
+5801e200
+20206c4d
+20600000
+d8400003
+da204992
+5801f000
+20206c4d
+6fe1484c
+c3810000
+d8400040
+da2006a1
+5801e400
+20406c4d
+20403e3e
+d8c006a1
+1a20a206
+20203a6b
+20403a4a
+20403a4e
+20403a55
+20403a59
+20403a5d
+20403a5e
+20203a62
+d840001a
+da20480a
+da400000
+20206ce1
+d8400013
+da2047ef
+da40001a
+20406ce1
+6fe0c7ff
+67e0c871
+20600000
+d8400010
+da204959
+da40002d
+20206ce1
+d8400010
+da2046a0
+da40003d
+20206ce1
+20600000
+d8400003
+da204992
+da40004e
+20206ce1
+6fe1484c
+c3810000
+d8400040
+da2006a1
+da400051
+20406ce1
+20403e3e
+d8c006a1
+1a20a206
+1a220a00
+20407c8f
+1a427e00
+9a20a200
+c2003a6b
+20600000
+6fe0c857
+c000ba83
+c0013a74
+20403a77
+20403a7b
+20203a7f
+d8400013
+da2047ef
+5801e000
+20206c33
+d8400010
+da204959
+5801e100
+20206c33
+d8400010
+da2046a0
+5801e200
+20206c33
+20403a86
+20403a8a
+20203a8e
+d8400013
+da2047ef
+da40001a
+20206cd3
+d8400010
+da204959
+da40002d
+20206cd3
+d8400010
+da2046a0
+da40003d
+20206cd3
+6fe1c992
+6849cc24
+98467c00
+24610000
+1fe0fe80
+67e1cc24
+6fe0c857
+c000ba9e
+d8400003
+da204c24
+5801f000
+20206c33
+d8400003
+da204c24
+da40004e
+20206cd3
+20403aad
+6fe0c857
+c0013aa9
+d8400040
+da2006a1
+da400051
+20206cd3
+d8400040
+da2006a1
+5801e400
+20206c33
+20403e3e
+d8a006a1
+1a20a206
+1a220c00
+20407c8f
+1a427e00
+9a20a200
+c2003ab0
+20600000
+6fe0c857
+c000babb
+5801e000
+67e1c419
+20206bfa
+20600000
+6fe0c857
+c1810000
+5801d000
+da204503
+d840000d
+184f8412
+20206c33
+6fe0c857
+c1810000
+da204503
+d840000d
+184f8412
+5801d000
+20206c4d
+20404073
+20203ad2
+20403b23
+20203b19
+70464b01
+20600000
+70464b00
+20600000
+da403ad6
+da20001d
+d8e0000e
+20203b0e
+6fe0c7e4
+c000bafd
+c001badc
+c0013b0d
+c0003ade
+20203ade
+70438800
+20203ad0
+2040396c
+da200787
+204078dc
+24740000
+6fe0c9b7
+c2813aef
+6fe08787
+1fe0ffff
+e7e08012
+1fe17e7f
+205a3af5
+6fe0c9b7
+c4000000
+d8a0462a
+d8c00789
+20407c8d
+202039d3
+da200787
+204078ca
+204078fa
+247a0000
+20403afb
+20203ad0
+da200787
+204078ca
+204078fa
+247a0000
+70464f04
+20203ad0
+7049b500
+20600000
+20403ce0
+20403cec
+20403b05
+24628000
+6fe0c7e4
+c001bb09
+c000bb0b
+20600000
+6fe0c64e
+1fe0ffff
+67e0c64e
+20600000
+70464f58
+20203ad0
+70464f06
+20203ad0
+202039d3
+6fe0c64b
+c1808000
+180a7e00
+1fe17e07
+9a20a200
+20407cef
+247a0000
+1a227e00
+20407ce1
+1a427e00
+20207d79
+da60464c
+da403b1c
+202042e7
+6fe0c7e4
+c1808000
+6fe0c7e7
+79207e00
+67e0c7e7
+7047e403
+20203b31
+da60464f
+da403b26
+202042e0
+6fe0c7e4
+c000bb2f
+c0003afb
+20600000
+20403e5a
+2040420b
+70464f00
+20403ad0
+20203afb
+70464e06
+20203ace
+70464e06
+20203ace
+da403b37
+da200020
+d8e0000f
+20203b10
+6fe0c9b5
+247a0000
+2040406e
+da200787
+204078dc
+24740000
+6fe08787
+1fe0ffff
+e7e08012
+205a78ca
+d8a0462a
+d8c00789
+20407c8d
+202039d3
+20403b4b
+20403b53
+20403b59
+20403b5f
+20403b67
+20203b6b
+20403b78
+d8c046c0
+df20000f
+20403be7
+20403c01
+d8c001bd
+d8a046b0
+20207c8f
+20403b7b
+20403b75
+20403c01
+d8c001bd
+d8a04660
+20207c8f
+20403b7b
+20403b78
+20403c01
+d8c001bd
+d8a04690
+20207c8f
+6fe44680
+67e44658
+6fe44688
+67e44650
+d8c04650
+da2046b0
+de004670
+20203c48
+d8c04680
+da2046b0
+de004680
+20203c48
+d8c04670
+df200010
+20403be4
+d8c046d9
+df200009
+20403be7
+20403c01
+d8c001bd
+d8a046a0
+20207c8f
+20403b79
+d8c04680
+20203be3
+20403b76
+d8c04688
+20203be3
+d8c0480a
+df200004
+20403bea
+d8c0480e
+df200006
+20403bea
+d8c04814
+df200010
+20403be4
+20403bf1
+20203bec
+20403b92
+da2047ec
+da4001bd
+df20000b
+efe10011
+e8410012
+9842fe00
+e7e10011
+1a20a202
+1a40a402
+c2003b8a
+20600000
+d8c04670
+df200010
+20403be4
+d8c046cf
+df20000a
+20403be7
+20203c01
+d8c047ef
+d8a0470d
+20407c8f
+d8c0470d
+da20471d
+de00472d
+20403c4a
+de00473d
+da400001
+58000000
+20403c4c
+6fe0c74c
+1fe17e7f
+67e0c74d
+de00475e
+da400002
+58000010
+da20473d
+20403c4c
+de00474e
+da400003
+58000010
+da20475e
+20203c4c
+d8c04959
+da20476e
+de00477e
+20403c4a
+d8c0478e
+da20477e
+de00479e
+58000004
+20403c5a
+6fe0c7ad
+1fe17e3f
+79207e06
+67e0c7ae
+20600000
+d8c047ef
+da2047af
+de0047bf
+20403c4a
+d8c047cf
+da2047bf
+de0047d4
+58000005
+20403c5a
+6fe144e9
+c3848000
+70438801
+20600000
+da204999
+6fe3c99f
+20203bd1
+da200923
+6fe38929
+67e388da
+58000000
+67e288d1
+20403bda
+6fe308e1
+e8430011
+9842fe00
+e7e30011
+20600000
+6fe2486e
+67e208d6
+d8c0474e
+2040735f
+d8c008d1
+20407361
+204072d1
+d8a008e1
+20207375
+df200008
+20403bf1
+20403c39
+20203bee
+20403bf1
+20407cda
+20203bee
+20403bf1
+20403c39
+5800002c
+e7e08005
+18a27e00
+67e146f3
+20600000
+18c20400
+1f222200
+6fe146f3
+1fe20a00
+6fe0c6e2
+205a3bfa
+18420c00
+1a227200
+20600000
+7046e201
+20403bfe
+d8a007d1
+20600000
+df200100
+d8a007d1
+20207ca3
+20403c17
+20403c32
+580007d1
+67e146fa
+20404134
+6fe146fa
+1fe20c00
+d8a00231
+20407c81
+2040413b
+6fe146fa
+1fe0fe40
+67e146fa
+6fe0c6f7
+1fe0ffff
+67e0c6f7
+243a3c06
+20404176
+da2001bd
+df200020
+20407cb1
+20600000
+7046e200
+6fe146f3
+1fe20a00
+d8400080
+e0408005
+d84007d1
+98467e00
+67e446e3
+1fe98400
+604c46eb
+1ff1a600
+1a6b2600
+1fe17e3f
+1fe67c37
+24413c30
+1a60fe01
+67e0c6f7
+1fefa240
+1ff22600
+1a60a7ff
+580007cd
+9a20a200
+6fe246eb
+e7e20011
+20600000
+1a60a601
+20600000
+da2007d1
+df200004
+20407cb1
+1a20a202
+1a60a7ff
+2422bc33
+20600000
+efe08006
+1ff18400
+20403c42
+e0408005
+1fe1040f
+20403c42
+e0408005
+c2003c39
+20600000
+18467c09
+20213c46
+18408457
+20600000
+18408430
+20600000
+58000020
+20203c5a
+58000010
+20203c5a
+6848c6fc
+18408401
+98408400
+60488230
+1a220c00
+1fe27200
+20407ccc
+6848c6fc
+18427200
+20407cda
+1a427e00
+e7e08005
+da20472d
+20203c5d
+67e08230
+1fe27200
+20407ccc
+1a220c00
+d8a006a1
+20407c8f
+204071c1
+1e020a00
+20407375
+20600000
+684888fe
+20203c67
+18000401
+18007000
+6fe108f1
+1fe20c00
+efe18006
+1fed7e00
+9841de00
+1f00f001
+efe20006
+1fe25e00
+1f00f001
+efe20006
+1fe25e00
+1f00f001
+1a30de00
+1df05e00
+efe10006
+9de1de00
+20600000
+6fe088f3
+1fe22200
+20403c64
+204072d1
+1800700c
+1de27e00
+1a227200
+684908f4
+18420c00
+20407349
+2020728c
+7008fe19
+20203c88
+7008fe09
+20203c88
+67e088f3
+604908f4
+4752c034
+20403c79
+18007008
+98005e00
+1800700d
+1de27e00
+18007009
+98005e00
+18002200
+18422600
+20403c66
+204072d7
+20403cc7
+604c08f6
+6fe088f3
+1fe22400
+20403ccf
+684888f3
+6fe108f4
+9840a200
+684c08f6
+e0420011
+6fe088fe
+1fe67e09
+207a0000
+e0440011
+20600000
+7008fe19
+20203ca9
+7008fe09
+20203ca9
+67e088f3
+604908f4
+18422600
+1fe22400
+9a608c00
+47534034
+efe40006
+18007008
+98005e00
+18007009
+1fef7e00
+98005e00
+18002200
+20403c66
+204072d7
+20403cc7
+604c08f6
+20403ccf
+20403c79
+20403cc7
+6fe088fe
+c00cbcc4
+604a08fa
+6fe208f6
+684a08fa
+98467e00
+20600000
+6fe408f6
+98467e00
+20600000
+1800700c
+1de27e00
+1800700d
+1de20400
+18500400
+18500400
+98418400
+20600000
+1a20a201
+20403c66
+1a620c00
+2040735d
+204072d7
+2040737c
+1a60a610
+1a40a5f0
+20213ccf
+20600000
+4753c034
+7047e401
+7047e500
+70464b01
+58001770
+67e1464c
+20600000
+580001a8
+67e108ff
+6fe0c7e6
+e7e08005
+6fe2480a
+20407cc6
+e7e20005
+6fe342db
+e7e30005
+6fe1c7e7
+e7e18005
+20600000
+20403cee
+202039d3
+70462a15
+58000014
+67e0c62b
+5800002b
+e7e08005
+58000000
+e7e08005
+d8c008ff
+20407c8f
+6fe147ea
+e7e10005
+20600000
+20403d5a
+24740000
+efe08006
+c0003d01
+c0013d1c
+47544035
+20600000
+20403d0f
+24740000
+20403b45
+20403d07
+204040fa
+20600000
+d8400012
+20403d46
+58000001
+e7e08005
+6fe14812
+e7e10005
+d8c04680
+20207c8f
+20407dbc
+e8410006
+d8a04680
+20407c8f
+6fe14812
+98467c00
+24628000
+6fe0c7e5
+c3808000
+79207e01
+67e0c7e5
+7047e402
+20207dba
+20403d27
+684947ec
+6fe14812
+98467c00
+24628000
+20403bbf
+204040fa
+6fe087aa
+c1810000
+7047e405
+20600000
+4754c035
+18c22200
+6fe0c7e4
+c1000000
+6fe0c7e5
+c4008000
+c3810000
+1a220c00
+df200016
+d8a047ec
+20407cda
+20403b86
+684947ec
+6fe14812
+98467c00
+24628000
+6fe0c7e5
+79207e02
+67e0c7e5
+20403b99
+6fe0c7ff
+67e0c871
+20403d3f
+20600000
+d8400006
+20403d46
+58000003
+e7e08005
+6fe3480e
+e7e30005
+20600000
+47554035
+5800012c
+67e14806
+6fe087aa
+1fe67c00
+2042bace
+2442bad0
+1840fe09
+67e0c62a
+2040397c
+1840fe05
+e7e08005
+580000ff
+e7e08005
+580001a8
+1ff0fe00
+e7e10005
+6fe0890f
+e7e08005
+20600000
+20407dbc
+e8410006
+580001a8
+1ff0fe00
+98467c00
+24628000
+efe08006
+67e0890f
+20207dba
+da604806
+da403d66
+202042e7
+20203e61
+6fe0870b
+c0043d92
+c024bdb1
+c00dbdbd
+c00e3dc4
+c0793d6e
+20600000
+20403dec
+20403d83
+20403dc2
+58000080
+67e08723
+580000f3
+e7e08005
+58000000
+e7e08005
+6fe1070c
+e7e10005
+6fe08709
+d8400004
+98467200
+d8c0070e
+20407cda
+6fe08709
+1fe0fe01
+67e08722
+d8e00000
+20203806
+6fe0870e
+207a0000
+1fe67c08
+24413d90
+98007200
+d8c0070f
+1a208a02
+20203d8b
+efe10006
+1ff0fe00
+e7e10005
+c2003d8b
+20600000
+58000008
+20600000
+7047e406
+58000002
+67e08723
+58000000
+e7e08005
+580001a8
+e7e10005
+58000000
+e7e10005
+58000001
+e7e10005
+58000005
+e7e10005
+58000003
+e7e10005
+58000000
+e7e10005
+58000002
+e7e08005
+58000002
+e7e08005
+58000000
+e7e10005
+58001000
+e7e10005
+580001a8
+e7e20005
+580101a8
+e7e20005
+7007221c
+202041b5
+70480514
+58000080
+67e08723
+5800004a
+e7e08005
+70072202
+202041b5
+da604805
+da403dbb
+202042e0
+20403e50
+20206ca3
+20403de2
+6fe1484c
+c3810000
+20403dec
+20403df5
+6fe14848
+20207d79
+20403de2
+6fe1484c
+c3810000
+20403dec
+6849070e
+184cfe00
+1ff1fe00
+c0063dd3
+18508400
+20403dd8
+24740000
+58000000
+e7e10011
+6fe14848
+20207d79
+5fffffff
+e7e40011
+e7e40005
+6fe14848
+20207d79
+df200008
+efe10011
+da40ffff
+9a467c00
+2022fdba
+98467c00
+2022fdba
+1a20a202
+c2003dd9
+20207dbc
+58000080
+67e08723
+5800001f
+e7e08005
+58000000
+e7e08005
+6fe3070c
+e7e30005
+70072209
+202041b5
+20403e3e
+1a20a206
+6fe1070c
+68494800
+18508400
+98467e00
+9a4ffe00
+9a20a200
+20600000
+6849070e
+df200008
+efe10011
+203a3dff
+da40ffff
+9a467c00
+2022bdff
+1a20a202
+c2003df7
+20600000
+18508400
+e0410011
+20600000
+20407396
+2040739e
+580039b1
+67e14824
+58003e42
+67e143db
+58004016
+67e14842
+58003745
+67e14828
+58003aa2
+67e14848
+58003a92
+67e14846
+58003e4a
+67e143e3
+5800372e
+67e14826
+58004090
+67e143df
+580040e3
+67e143dd
+58003ab6
+67e14853
+58003abc
+67e1484a
+20403ac3
+70464a24
+20403817
+4755c035
+58000428
+67e149b9
+20403e58
+58000422
+67e14a5e
+20403e5a
+58000a22
+67e10a8d
+20403e5c
+20404071
+20404071
+20403a18
+20403e3a
+6fe0c7ef
+c07fbcd9
+20404291
+20403bbf
+20403bb1
+20403b99
+180a7e00
+1fe17e1f
+1fe0fe32
+67e14804
+1fe0fe05
+67e0c803
+20600000
+6fe3480e
+20407cc0
+67e342db
+20600000
+6f20c84e
+6a21484f
+6a414851
+20600000
+47564035
+2040387d
+20403aca
+204041d8
+2040396f
+20403b33
+20404060
+20203995
+20403acc
+20403db8
+20403d63
+20403794
+20403791
+20204289
+20403e53
+6fe14853
+20207d79
+6fe0c857
+c1810000
+5801d000
+67e1c419
+20206bfa
+20404292
+202078ad
+2040396c
+202078ad
+20403e5e
+202078ad
+58000a8d
+67e143fb
+20600000
+70438801
+58001770
+67e1464c
+6fe0c7e7
+793ffe00
+67e0c7e7
+7047e401
+7047e500
+70474d00
+20203b2f
+4756c035
+6fe0892b
+c283be70
+70496900
+2020417d
+20403e76
+20740000
+20403e97
+20740000
+20403ea7
+20203eb4
+20407dbc
+df200003
+da20092c
+20407cb1
+6a21892c
+1a21041f
+6048c85c
+6fe0c863
+98467c00
+24217dba
+1a31fe00
+1fe37e00
+1fe1041f
+6048c85b
+1ff1fe00
+1fe37e00
+da201fff
+9a210400
+1fe22400
+6fe14859
+98467c00
+2442be93
+60494859
+1a4cfe00
+1ff1fe00
+1fe37e00
+67e0c858
+67e0c969
+20600000
+58000000
+67e2485d
+70486200
+20600000
+20407dbc
+6fe0c85b
+1fe20e00
+6fe2485d
+afefffff
+2020fdba
+f9207e00
+67e2485d
+6848c85c
+1840f201
+1f208fff
+afefffff
+24608000
+c2003ea1
+70486101
+20600000
+6fe08921
+1fe0fffa
+1fe27200
+6848c862
+98408400
+6048c862
+6fe14864
+98000a00
+6fe0c85b
+1feffe0c
+98a08a00
+d8c0092f
+20207cda
+6fe0c861
+c1000000
+58000000
+67e2c85d
+68490925
+18508400
+5800e000
+98410400
+6fe14859
+9841fe00
+1ff0fe00
+67e10925
+20204187
+6fe08722
+1fe08401
+1fe27200
+60488916
+6fe0892b
+793ffe07
+67e0c9a1
+d8c00723
+20407ccc
+20204052
+1a208404
+1a227200
+60488916
+d8a049a5
+20407ccc
+6fe0892b
+79207e07
+67e0c9a1
+20204052
+6fe0870b
+c000bedb
+c0013ee1
+c0213ee6
+c0263ee9
+c02f3eef
+20600000
+da603edd
+20203f53
+6fe14830
+20407d79
+67e0870c
+2020376c
+da603ee3
+20203f53
+2040376c
+6fe14832
+20207d79
+20403784
+6fe14834
+20207d79
+6fe1070c
+20403efe
+67e08711
+20403774
+6fe14836
+20207d79
+6fe14866
+6849070e
+98467c00
+20628000
+6fe1070e
+20403f10
+67e08716
+6fe1070e
+67e14866
+6fe14838
+20407d79
+6049070c
+2040377c
+6fe1483a
+20207d79
+207a0000
+1feffe64
+d840ffff
+9846fc00
+20407d62
+18070400
+184c8400
+1807fe00
+18467cff
+24628000
+1fe0fe01
+20600000
+dfe0ffff
+984ffe00
+1fe6fc64
+20407d62
+18078400
+20600000
+d8400320
+98462200
+20403f1f
+1a227e00
+9846fc00
+20407d62
+1807fe00
+20600000
+18422200
+20403f1f
+1a227e00
+984ffe00
+d8400320
+98408400
+20600000
+58004e20
+d8400320
+98467e00
+1fe6fc64
+20407d62
+18078400
+20600000
+d8e00000
+6f20c84e
+20407dbc
+6fe14800
+98467c00
+2022bf32
+1ff0fe00
+1fe0fe01
+1ff0fe00
+18e08e01
+c2003f2a
+20600000
+70486800
+60e0c869
+20403f6e
+20207dba
+d8e00000
+da600000
+20403e3e
+20407dbc
+6fe1484c
+c3013f49
+efe10011
+98467c00
+2042bf47
+1a427e00
+9a20a200
+18e08e01
+c2003f3a
+1a627e00
+207a0000
+67e0c868
+20207dba
+f9202600
+20600000
+1a208c06
+de000008
+efe10006
+98467c00
+2022bf51
+1e00e1ff
+2022bf3f
+20203f4b
+20403f47
+20203f3f
+d8e00000
+6fe0c868
+203a3f5f
+1fe22400
+6f20c84e
+60e0c869
+aa4fffff
+2040bf5f
+68e0c869
+18e08e01
+c2003f58
+20600000
+20403f64
+20403f6e
+1a627e00
+20407d79
+20203f69
+67210917
+62210919
+6241091b
+6261091d
+20600000
+6f210917
+6a210919
+6a41091b
+6a61091d
+20600000
+47574035
+6fe14800
+1ff0fe00
+98e0fe00
+1ff0fe00
+67e14995
+20403e3e
+18e27e00
+9a4ffe00
+9a20a200
+1a208c17
+efe10006
+67e143fb
+20600000
+70095100
+18467c0c
+20610000
+18467c1e
+24610000
+4757c035
+2040400e
+20403f8c
+24740000
+20403fdd
+24740000
+20403bcf
+20403fa1
+24740000
+20403fb2
+20203fb7
+20407dba
+6fe08921
+d8c00925
+98c08c00
+efe20006
+e8420006
+98428400
+df200010
+d8c009fd
+efe20006
+98467c00
+2022fdbc
+c2003f95
+6fe0c86a
+1fe0fe04
+d8a009fd
+98a08a00
+e0420005
+1fe17e3f
+67e0c86a
+20600000
+20407dba
+684a8924
+df200010
+d8c00a3d
+efe28006
+98467c00
+2022fdbc
+c2003fa5
+6fe0c86b
+1fe0fe01
+1fe17e0f
+67e0c86b
+1feffe05
+d8a00a3d
+98a08a00
+e0428005
+20600000
+6fe08951
+c1000000
+6fe10927
+67e1486c
+20600000
+20404005
+6fe08921
+d8400929
+20403ca7
+24628000
+47584036
+6fe08951
+1fe67c02
+2042c106
+68490929
+20403f26
+20543fcf
+20343fea
+df20001d
+d8a007ab
+d8c00922
+20407cda
+20403fd3
+df20001d
+d8c007ab
+d8a00922
+20407cda
+6fe14842
+20207d79
+70095201
+6fe14995
+67e10953
+20600000
+20403f36
+20343fea
+704868ff
+5800ffcf
+98467c00
+2022bfea
+5800ffff
+98467c00
+2022bfea
+20600000
+20407dbc
+68488922
+1851fe00
+1fe97e00
+6a20c871
+1a212201
+9a267c00
+24628000
+1841047f
+6fe0c74d
+98467c00
+24628000
+20207dba
+da204872
+df20000a
+68490927
+efe10011
+203a3ff4
+98467c00
+2022bff5
+1a20a205
+c2003fec
+da204872
+e0410011
+6049094c
+1a20a602
+efe18013
+67e1894e
+20203ffa
+20404002
+6fe1894e
+68498924
+98467c00
+20610000
+e0418013
+20404002
+20203e6b
+da200924
+df200003
+20207cb1
+20404008
+d8c0475e
+2020735f
+d8a0093f
+58000000
+e7e08005
+6fe30923
+e7e40005
+20204069
+1840fff4
+67e08921
+df20001d
+d8a00922
+20407ca1
+1840f3ff
+d8a00922
+20207ccc
+2040406e
+20404036
+24740000
+2040404a
+7007871e
+6fe08921
+1fe0840d
+60488789
+184085ff
+e0408005
+5800002a
+e7e08005
+1840f3ff
+6fe38922
+d8c00922
+20407cda
+da200787
+204078b2
+2040402b
+24740000
+20203961
+684907b2
+20407dbc
+6fe08978
+207a0000
+98007200
+d8c00968
+efe10006
+98467c00
+2022fdba
+c2004031
+20600000
+20407dbc
+6fe08951
+c1008000
+6fe1484c
+c3808000
+6fe0c7e4
+c1800000
+68490927
+20403f26
+20347dbc
+2040404f
+24740000
+6fe08923
+203a7dbc
+1fe0ffff
+203a7dbc
+67e08923
+580048cc
+67e143fb
+20207dba
+20404005
+6fe08921
+d8400929
+20403c86
+20203bcf
+580048a4
+67e10910
+202039fb
+4758c036
+20404056
+2040405f
+2020394c
+6fe08916
+1fe0a202
+1fe0fe04
+67e08916
+d840499f
+2020405c
+20404005
+1a227e00
+20203c86
+20203bcc
+20403e5e
+204078fa
+207a0000
+20402a28
+247a0000
+da200787
+204078ca
+24740000
+202040f0
+6fe2486e
+e7e20005
+18a0fff3
+67e108f1
+20600000
+580048cc
+67e143fb
+20600000
+2040406e
+202078ad
+204029c9
+6fe0c7e4
+c000c083
+c0004079
+c002c079
+20600000
+38010214
+3804c080
+380a8030
+380c3060
+67e4c348
+58182816
+e7e20005
+6fe447dc
+e7e40005
+20600000
+20403ce0
+3801021d
+3804c080
+380a7030
+380c5460
+67e4c348
+58182716
+e7e18005
+d8c008ff
+20407c8f
+6fe147ea
+e7e10005
+20600000
+47594036
+6fe14398
+c0074095
+c00a40d6
+20600000
+1a420400
+efe08011
+c00040e1
+c001409a
+20600000
+2040400e
+6fe08921
+1fe0fffc
+67e08921
+20403fdd
+24740000
+20403bcf
+6fe08923
+c283c0a4
+20600000
+204040da
+6fe08921
+d8400929
+20403ca5
+24628000
+20404106
+6fe0892b
+c00040bd
+c000c0ae
+20600000
+6f208921
+1f20f3fd
+1f237e00
+68490978
+9840fe00
+1fe67c08
+24610000
+67e10978
+d8a00968
+1843fe00
+98a08a00
+d8c0092c
+20407cda
+6fe0897a
+202040bf
+efe08006
+67e0897a
+67e0c9a2
+6fe10978
+1ff0fe00
+67e149a3
+7049a103
+6fe48922
+67e4c998
+6fe14995
+67e1499d
+20404253
+20404267
+204040da
+58000006
+d840499f
+20403c84
+2040405f
+da200016
+d8400010
+20402dee
+58000002
+e7e08005
+d8c04998
+20207c8d
+7007aa02
+1a420400
+1a220c00
+20203cfa
+d8a0095b
+58000003
+e7e10005
+6fe28924
+e7e38005
+20404069
+20204006
+70095102
+20203f7d
+1a627e00
+c00ac0e8
+c00a40e7
+20600000
+202040eb
+58000000
+67e1486c
+20204317
+58000000
+67e10978
+d8a00968
+df200010
+20207ca3
+20402a28
+247a0000
+6fe08789
+1fe0a3ff
+d8400010
+20402dee
+58000000
+e7e08005
+d8c0078c
+20207c8d
+6fe087aa
+c1000000
+6fe144e9
+c4048000
+20402a28
+247a0000
+6fe0c62a
+1fe0a3fb
+d8400016
+20402dee
+d8c04630
+20207c8d
+6fe10968
+247a0000
+6fe10927
+67e10968
+6fe10978
+1fe0fe01
+67e10978
+20600000
+efe20006
+18002204
+18a08a03
+e7e08005
+1fecfe00
+18a08bfe
+1a20a3ff
+2422c111
+18a08a05
+c200410e
+20600000
+18ebfe00
+99608c00
+efe20006
+20600000
+18006010
+d9600231
+1e008ff9
+20404119
+98000400
+1e008ff0
+20404119
+98408400
+1e008ffe
+20404119
+1fee7e01
+98408400
+1e008ff1
+20404119
+1fee7e00
+98408400
+1e0bfe00
+99608a00
+e0420005
+1e00e001
+2e01fe40
+2420c11f
+20600000
+d8c00549
+18007007
+efe20006
+98005e00
+1f00f1ff
+20214136
+20600000
+4759c036
+2040411d
+d8a00331
+18007000
+1de27e00
+e7e20005
+1f00f001
+2f01fe08
+2420c13f
+d96095ed
+de000231
+18007240
+e8420030
+efe2000b
+19609604
+1e00e004
+9840fe00
+18007007
+9de08400
+18007004
+1dee7e03
+98408400
+18007005
+1de27e00
+18007006
+9de2fe00
+18007004
+9de17e00
+18007006
+9de2fe00
+98408400
+18007007
+18425e00
+18007003
+1de27e00
+9840de00
+18007000
+1de27e00
+18007001
+9de10400
+9de1fe00
+18007002
+9de17e00
+98418400
+18007000
+1dee7e02
+9840fe00
+18007007
+9de0de00
+980efc00
+c2004147
+d8c00331
+18007000
+efe20006
+9de0de00
+1f00f001
+2f01fe08
+2420c170
+20600000
+d8a001bd
+18007007
+1de27e00
+e7e20005
+1f00f1ff
+20214178
+20600000
+c3034180
+204041a2
+20204182
+204041af
+20204182
+6fe08921
+1fe0fff9
+de00092c
+20407dbc
+20204194
+6fe0892b
+c303418b
+204041a2
+2020418d
+204041af
+2020418d
+6fe0c969
+245a7dba
+205a7dbc
+6fe0c862
+1fe0fffc
+70486200
+de004b3c
+1e020400
+2040419c
+24628000
+2040419f
+24740000
+6fe108f4
+1fe26000
+20203728
+24343ca7
+1fe0fffc
+20203ca5
+5800496a
+67e10910
+202039fb
+204041a5
+d8c04959
+2020735f
+d8a0093f
+58000001
+e7e08005
+6fe0c969
+d8400000
+7d3a0407
+e0408005
+6fe38924
+e7e38005
+20204069
+204041b2
+d8c046a0
+2020735f
+d8a0093f
+58000002
+202041a7
+475a4036
+2040425b
+204041bd
+20740000
+204041d0
+20404292
+da200983
+202078b2
+20407dbc
+d8400001
+6fe08951
+1fe67c02
+79228407
+60488983
+6fe4c998
+67e48987
+6fe08723
+c1ea0000
+6fe0c7e4
+c0807dba
+6fe08726
+67e08986
+6fe08983
+1fe0fe01
+79207e05
+67e08983
+20600000
+6fe08722
+1fe27200
+67e08990
+6fe0892b
+67e08991
+d8a00996
+d8c00723
+20207cda
+6fe0c9b5
+247a0000
+20404292
+da200983
+204078dc
+24740000
+68488983
+18417e0f
+203a420b
+7049b501
+204041fc
+68488983
+20404202
+67e0c9b6
+6fe0c9b7
+284ffe07
+7920fe02
+67e0c9b7
+79200404
+184085ff
+e0408012
+68488983
+284ffe04
+2420c20f
+68488990
+60488722
+18427200
+d8a00723
+d8c00996
+20407cda
+18467c0f
+242141f9
+20203ec1
+6fe20992
+67e2097e
+20204230
+6fe08991
+67e0892b
+6fe48987
+67e4c998
+67e48922
+20600000
+7049b701
+6fe08986
+284ffe05
+20608000
+58000000
+20600000
+1a208a1a
+e7e08005
+20600000
+7049b600
+20404292
+da200983
+202078ca
+20404253
+20404267
+6fe4c998
+67e48987
+20404228
+58000000
+67e0c969
+20404249
+68488722
+60488990
+18427200
+d8c00723
+d8a00996
+20407cda
+18467c0f
+24214222
+da200984
+204078eb
+20203ec1
+2040426f
+6fe2097e
+67e20992
+da200984
+204078eb
+20204230
+6fe08990
+1fe27200
+67e08722
+6fe08991
+67e0892b
+d8c00996
+d8a00723
+20207cda
+2040427c
+58000723
+67e1097b
+204041fc
+20404253
+20404267
+68488722
+5800000c
+20407db0
+1fe22200
+18427e00
+9a267e00
+67e08722
+6fe1097b
+1fe20c00
+9a208400
+6049097b
+20403ecb
+6fe08722
+207a0000
+6fe08980
+1fe0fe01
+67e08980
+2040427c
+20204233
+6fe0892b
+c303424d
+204041a2
+2020424e
+204041af
+6fe08722
+1fe08404
+60488722
+d8400723
+20203c86
+6fe1c992
+1fe0fe01
+67e1c992
+6fe0c808
+1fe0fe01
+67e0c808
+6fe14846
+20207d79
+6fe0c871
+1ff27e00
+1fe9fe00
+6848c74d
+9841fe00
+67e0c998
+6fe0c997
+67e0c999
+6fe14995
+67e1499d
+6fe1094c
+67e1499f
+6fe1c992
+67e1c99a
+da20499a
+df200003
+20407cb1
+6fe44999
+67e40923
+20600000
+6fe08722
+1fe6fc0c
+20407d62
+18078400
+18077e00
+205a428f
+60488981
+70098000
+6fe1c992
+d8401fff
+98417e00
+67e1097e
+20600000
+6fe1097e
+1ff27e00
+1fe3fe00
+68488980
+9841fe00
+1ff27e00
+1fe3fe00
+68488981
+9841fe00
+67e1c9a2
+df200003
+da2049a2
+20207cb1
+da6049b8
+da40428c
+202042e0
+df200028
+d8a0496a
+20207ca1
+184085ff
+20600000
+20203b2a
+580049b9
+67e143fb
+20600000
+44d8c016
+6fe0c3cb
+203a4295
+c00247b7
+c004e2ae
+c0055099
+c00743b2
+c003646e
+c006c672
+c007c959
+c0066882
+c00453e0
+c005be02
+20600000
+20758000
+20406f74
+6fe0c3cb
+c004e3d9
+c00363d9
+c00247c2
+c0045428
+c007d42c
+c006c772
+20600000
+20407774
+20407841
+204042b4
+6fe143db
+20207d79
+6fe143d9
+20207d79
+44d94016
+da2044d3
+20407d97
+207a0000
+1fe22600
+204042bd
+202042c1
+da600000
+20600000
+c00842d0
+c00a42c7
+c00ac2cb
+20600000
+6fe143dd
+20207d79
+6fe143d3
+20207d79
+6fe143d7
+20207d79
+6fe144e9
+79207e09
+67e144e9
+20600000
+70439600
+6fe144e9
+793ffe09
+67e144e9
+2020432d
+6fe143f1
+79207e00
+67e143f1
+20600000
+67e0821d
+44d9c016
+6fe0821d
+207a0000
+1fe0ffff
+67e0821d
+20407780
+2040430e
+20406beb
+6fe143e3
+20407d79
+202042d5
+efe08013
+207a0000
+1fe0ffff
+e7e08013
+247a0000
+1a427e00
+20207d79
+efe10013
+207a0000
+1fe0ffff
+e7e10013
+247a0000
+1a427e00
+20207d79
+68494430
+1840a601
+da4042f2
+202042e0
+20404343
+c000c2f5
+20204327
+58000002
+e7e08013
+1840a408
+efe10012
+20207d79
+204042fc
+20204327
+58000000
+67e143ef
+20600000
+58000000
+67e143f1
+20600000
+6fe143f1
+79207e07
+67e143ef
+58000000
+67e143f1
+20600000
+d8e00009
+202024e7
+d8e00009
+202024eb
+7043ed05
+20204308
+da6043ed
+da40430a
+202042e0
+70066f0f
+20207834
+70066f10
+20207834
+70066f0e
+20207834
+70066f0d
+20207834
+70066f17
+20207834
+70066f18
+20207834
+70066f16
+20207834
+70066f11
+20207834
+70066f15
+20207834
+70066f14
+20207834
+70066f13
+20207834
+70066f19
+20207834
+70066f1f
+20207834
+7920000d
+20600000
+793f800d
+20600000
+20404343
+c0014339
+58000001
+e7e08013
+1840a203
+1840a406
+e8408011
+1a60a601
+e0408013
+202042f8
+58000000
+e7e08013
+6fe144e9
+c304c33f
+204030c5
+2040431f
+68494430
+1840a202
+1840a404
+20204335
+68494430
+1840a600
+efe08013
+20600000
+20404343
+c080434a
+20204327
+1840a40a
+202042f8
+6fe44ceb
+67e44cfe
+704d0e00
+6fe0cd02
+1febfe00
+d8404b87
+98408400
+efe20002
+67e24cfa
+6fe0cd0e
+243a435f
+68494cf4
+efe08002
+67e0cd0a
+18408401
+60494cf4
+1ff1fe00
+67e0ccf9
+20204362
+6fe0cd0a
+1fe17e0f
+67e0ccf9
+6fe0cd0e
+79407e00
+67e0cd0e
+d8404b77
+6fe0ccf9
+98408400
+efe08002
+6848cd02
+2040439a
+67e0cd02
+6fe0ccf9
+1fe10408
+6048ccf8
+1fe10407
+6048ccf9
+204043a3
+604a4d06
+6fe0ccf8
+203a4379
+6fe24cfe
+684a4d06
+98467e00
+2020437c
+6fe24cfe
+684a4d06
+9840fe00
+67e24cfe
+d8407fff
+98467e00
+c28fc382
+604a4cfe
+20204388
+6fe24cfe
+d8408000
+9840fe00
+c30fc388
+d85f8000
+604a4cfe
+6fe0cd02
+1febfe00
+d8404b87
+98408400
+efe20002
+67e24cfa
+6fe14cf6
+68494cfe
+e041003f
+1fe0fe02
+67e14cf6
+6fe0ccf3
+1fe0ffff
+67e0ccf3
+243a4355
+6fe44cfe
+67e44ceb
+20600000
+9840fe00
+c303c39e
+58000000
+20600000
+1fe17eff
+1fe67c58
+20610000
+58000058
+20600000
+6a224cfa
+1a290400
+6fe0ccf9
+c30143a9
+1a227e00
+98408400
+6fe0ccf9
+c300c3ad
+1a237e00
+98408400
+6fe0ccf9
+c4000000
+1a2b7e00
+98408400
+20600000
+20407396
+20758000
+580045be
+67e145e0
+5800330a
+67e145e2
+5800465e
+67e145e4
+5800442e
+67e143d5
+58004430
+67e143d7
+58004455
+67e143db
+58004476
+67e143dd
+58004308
+67e143d3
+580044d1
+67e143df
+58004494
+67e143e3
+44974005
+20404412
+20404463
+204078ad
+7040c002
+7049b700
+6fe0c779
+67e0c648
+c00043db
+6fe0c77a
+67e0c4ec
+70438800
+20407776
+20407780
+7047a101
+6fe144e9
+c3860000
+20204327
+202043f9
+7047a102
+70438801
+58000020
+204063c7
+d8a04273
+6fe0c2db
+1fe104f0
+18518400
+204043f3
+e0408005
+1fe1040f
+204043f3
+e0408005
+20402955
+6848c26b
+18427200
+d8a0434b
+d8c0426c
+20407cda
+6848c26b
+18427200
+d8a0436b
+d8c0426c
+20207cda
+18467c09
+202143f7
+18408437
+20600000
+18408430
+20600000
+6fe0c76e
+c0ffc40b
+6fe0c76c
+c0ffc40e
+6fe0c777
+c0ffc410
+6fe0c6da
+1fe27200
+580046db
+1fe22200
+1a220c00
+efe08006
+18c22200
+c07fc409
+1fe20400
+20406ef7
+c2004403
+20600000
+6fe4476e
+67e446dd
+202043fb
+67e0c6db
+202043fd
+67e0c6dc
+202043ff
+204045ba
+20404640
+da200000
+20407055
+204043f9
+2040446b
+2040442c
+2020441b
+20600000
+6fe0c9a4
+1fe27200
+580049a5
+1fe22200
+1a220c00
+efe08006
+18c22200
+c07fc426
+1fe20400
+67e0c9a9
+20404428
+c200441f
+20600000
+6fe0c9a9
+c17f8000
+98000400
+20206ef7
+70477d64
+20600000
+20404431
+20407de2
+2020701b
+2040788b
+df200010
+d8c08070
+18c20a00
+efe08006
+c00fc445
+c0104445
+c010c445
+c0114445
+c011c445
+c0164445
+c016c445
+c0004445
+c2004434
+dfe080dc
+98c67c00
+2022c44b
+df200008
+d8c080d4
+20204434
+58000040
+e7e08005
+2020443e
+58000080
+e7e08005
+2020443e
+6fe0c9a4
+1fe27200
+d8c049a5
+efe08006
+79207e07
+d840003e
+20406f20
+c200444e
+20600000
+20207027
+2040446d
+20404458
+20204454
+6fe144e9
+c3848000
+6fe0c9b7
+c000c45d
+20600000
+6fe0c798
+c1008000
+70479801
+20404467
+20404469
+20204480
+6fe149bc
+67e149be
+7049c000
+20600000
+58000000
+20204464
+da200000
+202077bf
+da200000
+202077c4
+6fe144e9
+c4048000
+20402a28
+247a0000
+da2046c6
+204078ca
+24740000
+d8c046c6
+202063cb
+1a627e00
+c016c347
+c008432f
+c00a447c
+c00ac486
+20600000
+20404467
+20404469
+793f8027
+20204482
+6fe14799
+67e1479b
+70477c14
+70409400
+20404315
+2020432b
+79200027
+20404463
+2040456e
+20404562
+58000000
+67e2c74a
+204078ad
+70470c0a
+70470e0a
+7047100a
+7040c002
+58000020
+204063c7
+20204317
+2040450f
+20404512
+20404515
+204044a1
+20204499
+da6049b8
+da400000
+202042e0
+da6049be
+da40449f
+202042e7
+7049c001
+20600000
+da60479b
+da4044a4
+202042e7
+70479802
+7049b700
+2020448a
+6fe0c776
+207a0000
+da60477c
+da4044ac
+202042e0
+6fe0c77b
+67e0c77c
+6fe0c77f
+247a0000
+20406fb0
+67e14796
+da204790
+20406fd7
+6848c77d
+98467c00
+202144b9
+67e0c77d
+1fe20400
+6048c77e
+6fe0c778
+98467c00
+204144c4
+6048c789
+df200006
+d8c04784
+204044cb
+67e0c78a
+da204781
+202078b2
+6fe0c780
+247a0000
+70478001
+da200001
+202077c4
+da200001
+202077bf
+da200000
+efe08006
+9a20a200
+c20044cc
+1a217eff
+20600000
+6fe0c397
+c00944d4
+20600000
+6fe14398
+c00cc4eb
+20600000
+4497c005
+efe28011
+67e286f1
+6fe106f1
+d8406b5a
+98467c00
+24628000
+6fe106f4
+1ff0fe00
+67e106f4
+1fe27200
+1a20a205
+1a220c00
+d8a006f6
+20407cda
+efe08006
+67e08700
+da2006f3
+da4006f6
+20600000
+58000000
+67e2c700
+67e2c705
+204044d7
+1a420c00
+d8a04700
+df20000a
+20407cda
+44984006
+efe08011
+c001451e
+c001c533
+c002453a
+c002c53a
+c00345aa
+c003c5ab
+c00445ae
+20600000
+204044eb
+6fe086f3
+c0024502
+c002c502
+20600000
+6fe0c700
+245a4509
+6fe0c702
+245a450b
+6fe0c704
+245a450d
+20600000
+7049a105
+20600000
+7049a205
+20600000
+7049a305
+20600000
+da6049a1
+da404518
+202042e0
+da6049a2
+da40451a
+202042e0
+da6049a3
+da40451c
+202042e0
+70470000
+2020453a
+70470200
+2020453a
+70470400
+2020453a
+6fe0c700
+67e0c70b
+6fe0c701
+67e0c70d
+20204544
+6fe0c700
+67e0c70d
+20204552
+6fe0c70c
+2040452b
+6fe0c701
+67e0c70b
+20204550
+c001452f
+c001c531
+67e0c70c
+20600000
+70470c05
+20600000
+70470c0a
+20600000
+6fe0c700
+2040452b
+6fe0c70c
+2040459e
+204045a1
+70067100
+2020707a
+6fe0c79e
+247a0000
+6fe34700
+67e3470b
+6fe0c70c
+6848c70e
+98417e00
+6848c710
+98417e00
+205a4556
+4498c006
+6fe144e9
+2feffe09
+2440c463
+20404550
+20404552
+2020454b
+6fe0c70b
+6848c70d
+9840fe00
+243a788d
+2020788b
+d8c0470b
+20204558
+d8c0470d
+2020455d
+d8c0470f
+2020457a
+70477f00
+20600000
+efe08006
+c0004562
+c000c566
+c001456a
+20600000
+efe08006
+c000456e
+c0014572
+c000c576
+20600000
+6848c9a5
+20406ef3
+6848c9a6
+20206ef3
+6848c9a5
+20406ef7
+6848c9a6
+20206ef3
+6848c9a5
+20406ef3
+6848c9a6
+20206ef7
+6848c9a7
+20406ef3
+6848c9a8
+20206ef3
+6848c9a7
+20406ef7
+6848c9a8
+20206ef3
+6848c9a7
+20406ef3
+6848c9a8
+20206ef7
+44994006
+efe08006
+c0004587
+c000c580
+c0014582
+20600000
+70472900
+20204583
+70472901
+efe08006
+67e0c72b
+efe40012
+2020458c
+efe08012
+204070bd
+1a40a401
+efe08012
+202070bd
+67e4472c
+70477f01
+6fe0c729
+c000459a
+6fe0c72d
+67e0c72e
+6fe0c72c
+204070bd
+6fe0c72b
+2040459e
+67e0c733
+6fe3472e
+67e30670
+20207066
+6fe0c72c
+67e0c72e
+6fe0c72d
+20204593
+1feffe05
+1fe0fe32
+20600000
+d8402ee0
+984ffe00
+1fe6fc64
+20407d62
+18078400
+18422200
+58002ee0
+98462400
+20600000
+20600000
+6fe44700
+67e4474a
+20600000
+6fe0c767
+67e0c75d
+6fe0c768
+67e0c75e
+6fe0c769
+67e0c75f
+df20000d
+d8c04758
+204044cb
+67e0c765
+da204755
+202078b2
+58000000
+67e445d6
+2040339f
+20203402
+204045c2
+204045ca
+2040460e
+20204665
+20403407
+6fe0c616
+c1808000
+6fe0c9b8
+243a3460
+6fe0c798
+c0013460
+20600000
+6fe0c616
+c1800000
+204045d9
+2037c5d7
+6fe0c9c0
+207a0000
+6fe0c9c1
+1fe0fe01
+67e0c9c1
+c00245d7
+20403222
+204045ea
+2437c5ce
+7049c100
+20600000
+6fe0c616
+c1800000
+204045de
+20403518
+202045ea
+6fe0c615
+c3800000
+79207e00
+67e0c615
+6fe0c623
+67e0c141
+70461100
+70090d00
+70460a01
+70457e00
+6fe249da
+2020345d
+204033f1
+2437b3be
+204033e3
+243433be
+6fe0c57d
+203a33be
+1fe0fe02
+98007200
+d8c044f7
+d8a045e8
+20407cda
+70461300
+6fe0c610
+205a33fe
+6fe0c5ea
+c07fc5fc
+c000c601
+202033bb
+6fe0c610
+247a0000
+6fe0c5d5
+207a0000
+2020359b
+2040352e
+6fe0c60a
+6848c5e8
+284ffe03
+7920fe00
+67e0c60a
+c000c609
+202033cb
+6fe0c3cb
+1fe67c0e
+2042f88d
+6fe245f2
+202035a3
+6fe0c616
+c1808000
+204032ff
+2040465b
+204033be
+20403119
+2437b3be
+2040331e
+204033f4
+20403399
+20403317
+6fe0c5d5
+243a4621
+2040350a
+6fe0c614
+207a0000
+58000000
+67e24630
+20600000
+70461300
+da200000
+2040788d
+20403460
+20403258
+6fe244f1
+67e249da
+6fe0c9e6
+245a462c
+6fe249da
+20203236
+6fe0c9e6
+207a0000
+6fe0c62d
+67e0c9dd
+6fe0c4f2
+67e0c9dc
+6fe0c62c
+67e0c9db
+6fe0c4f1
+67e0c9da
+20600000
+2040464a
+6fe249da
+684a49de
+98467c00
+20628000
+1a622400
+da2049da
+df200004
+20206b45
+6fe244f1
+67e249da
+6fe0c9e6
+207a0000
+20600000
+2040464a
+6fe249de
+207a0000
+67e249da
+20600000
+20600000
+6fe0c9e6
+207a0000
+da600700
+1a622400
+da2049e2
+df200004
+20406b74
+6fe249e2
+207a0000
+67e249de
+1a627e00
+d84007cc
+98467c00
+20610000
+1a60a604
+2020464e
+6fe24630
+207a0000
+20203236
+6fe144e9
+c3848000
+6fe14799
+67e1479b
+7049b701
+da2045eb
+202044fd
+6fe0c9c0
+207a0000
+2040466d
+24740000
+6fe1c5af
+20407d25
+604a40a9
+2020241e
+78347c00
+20402408
+6fe1c0bd
+203a7dbc
+20204430
+20758000
+20404772
+20406ff7
+58004756
+67e145f2
+580046b6
+67e145f6
+580046b1
+67e143d5
+580046f0
+67e143db
+580046f2
+67e143dd
+5800473b
+67e143e3
+580046a6
+67e146ee
+58004696
+67e146f2
+4499c006
+20406cc1
+204046ad
+204078ad
+6fe0c6be
+67e0c62d
+c0004695
+6fe0c6bf
+67e0c4ec
+204046a6
+20407776
+20407780
+7046ea01
+6fe144e9
+c3860000
+20204327
+7046ea02
+204046a6
+da200000
+204077c4
+20404719
+6fe24700
+67e2458f
+203a3291
+6fe2458f
+67e245e8
+6fe145dc
+67e145de
+20203534
+d8400004
+da20458f
+da400000
+20600000
+449a4006
+6fe0c6bc
+c0ffc6ab
+6848c699
+20206ef7
+67e0c699
+202046a9
+204035f0
+6fe146e6
+67e146e8
+20600000
+204046b6
+6fe0c68f
+79207e07
+d840003f
+20206f20
+20406f35
+2020701b
+20407027
+204046c9
+204046bc
+202046d7
+6fe0c6f5
+c1808000
+6fe246f9
+203a46c3
+7046ff00
+78347c00
+2020788d
+6fe0c6ff
+c17f8000
+1fe0fe01
+67e0c6ff
+78547c00
+2020788b
+6849442e
+18417e01
+18430400
+67e0c6f9
+18417e01
+18430400
+67e0c6fa
+18417e01
+18430400
+67e0c6fb
+18417e01
+18430400
+67e0c6fc
+20600000
+449ac006
+204046e6
+204046eb
+204046dd
+24740000
+20204752
+6fe0c6f5
+c1808000
+6fe0c6ff
+207a0000
+1fe67c01
+24610000
+6fe145dc
+67e145de
+20207dba
+6fe0c6f9
+243a4746
+6fe0c6fa
+243a4748
+2020474e
+6fe0c6fb
+243a474a
+6fe0c6fc
+243a474c
+20204750
+20404730
+202046b8
+1a627e00
+c016c347
+c008432f
+c01cc6fa
+c01e4701
+c01d46f9
+20600000
+2020357b
+449b4006
+6fe245e8
+67e24700
+6fe0c70c
+245a4706
+6fe24700
+20403236
+7045fc00
+7046f601
+7046f701
+7045de00
+20600000
+6fe0c70c
+207a0000
+6fe0c4f2
+67e0c703
+6fe0c5e9
+67e0c702
+6fe0c4f1
+67e0c701
+6fe0c5e8
+67e0c700
+20404720
+6fe24700
+684a4704
+98467c00
+20628000
+1a622400
+da204700
+df200004
+20206b45
+6fe0c70c
+207a0000
+20404720
+6fe24704
+207a0000
+67e24700
+20600000
+6fe0c70c
+207a0000
+da600700
+1a622400
+da204704
+df200004
+20406b74
+6fe24708
+207a0000
+67e24704
+1a627e00
+d84007cc
+98467c00
+20610000
+1a60a604
+20204723
+6fe0c6f6
+c1000000
+6fe0c6f5
+c1008000
+7046f501
+da200000
+202077bf
+da200000
+204077bf
+204046a6
+20204327
+204042ee
+2040328e
+20403531
+2020473f
+6fe0c6c0
+207a0000
+6fe0c42e
+243a46ae
+da6046e8
+da404737
+202042e7
+7046c701
+20600000
+7046c702
+20600000
+7046c901
+20600000
+7046c902
+20600000
+7046c700
+20600000
+7046c900
+20600000
+da2046c1
+202078b2
+da2046ce
+202078b2
+6fe0c6f7
+c000c760
+da2046d7
+204078ca
+24344765
+d8c046d7
+efe08006
+1fe22200
+da4046d8
+20600000
+7046f700
+78347c00
+da200001
+da4046f8
+20600000
+6fe0c6da
+c0024769
+c002c769
+20600000
+6fe0c6dd
+243a4770
+6fe0c6df
+243a4770
+6fe0c6e1
+243a4770
+20600000
+78347c00
+2020475b
+7044eb14
+7044e401
+5800060f
+67e1462e
+5800462e
+67e143fb
+70409401
+7040a606
+7040c102
+70462d00
+5800468d
+67e144ef
+7044ee01
+70468eff
+58000296
+67e14690
+5800073a
+67e14692
+580046ea
+67e14430
+58000c0c
+67e146ec
+580046a1
+67e1442c
+7046be00
+7046bcff
+7046bfff
+7046ba00
+7046bb00
+7046bd00
+7046c001
+58004e55
+67e146ad
+67e146af
+58000007
+67e146b3
+70440702
+38035a0c
+3804011a
+38080060
+380c0028
+67e4c6c1
+3802000a
+38040002
+e7e20005
+38035a08
+3804019a
+38080000
+380c0000
+67e4c6ce
+58000064
+67e146e6
+70414100
+70458901
+70460306
+7045ae01
+7045e300
+20403278
+204035fb
+2040325b
+58000708
+67e145d6
+58000050
+67e145dc
+580a7700
+67e1c60b
+58604800
+67e1c5af
+20600000
+580047ea
+67e145e0
+580048d4
+67e145e4
+580048e5
+67e145e6
+580048ab
+67e145e2
+580047f9
+67e10859
+20207912
+449bc006
+204047ef
+204047e5
+6fe0c669
+2feffe05
+2020c7cb
+6fe0c669
+2feffe06
+2040b26b
+6fe0c694
+67e0c141
+7045d2ff
+5800099f
+67e14640
+58000a9f
+67e14642
+58000b9f
+67e14644
+58000c9f
+67e14646
+7045d185
+70469200
+70462b00
+20403281
+6fe0c669
+2feffe03
+2040b284
+2040339f
+20403287
+2040325b
+6fe0c673
+67e0885b
+6fe4c66a
+67e4885c
+20600000
+70409918
+6fe0c669
+c4038000
+70409910
+20600000
+6fe0c610
+c000489b
+c000c822
+c007c81e
+20600000
+449c4007
+da401fdf
+da204648
+df200001
+20206b74
+449cc007
+df200001
+da204648
+da401fdf
+20206b45
+6fe0c669
+c28247fd
+6fe0c648
+c0ad4801
+7046485a
+6ff2137a
+79207e1d
+67e207b4
+20404818
+20407966
+20404805
+2020480e
+6fe0885c
+207a0000
+6fe0c648
+c02d480c
+6fe2085d
+67e207b4
+20600000
+6fe20861
+2020480a
+6fe0c648
+c02d4814
+58009272
+67e107a7
+7007d81a
+20600000
+5800928d
+67e107a7
+7007d83f
+20600000
+6fe0c674
+207a0000
+d8c04674
+d8a0081d
+df20001e
+20207cda
+20403460
+204048a3
+20404867
+2020481f
+20403460
+204048a3
+20403469
+20404867
+20204823
+2040482b
+2040483b
+2040484c
+20204859
+449d4007
+6fe0c668
+207a0000
+d8e0000d
+20407cef
+247a0000
+70466800
+58000001
+67e08913
+58000000
+e7e38005
+70090c20
+6fe0890d
+79207e02
+67e0890d
+20600000
+449dc007
+6fe0c665
+207a0000
+d8e0000e
+20407cef
+247a0000
+70466500
+d8a00923
+20407c99
+6fe40923
+67e44651
+70092300
+70090b10
+6fe0890d
+79207e01
+67e0890d
+20600000
+6fe0c667
+207a0000
+d8e0000a
+20407cef
+247a0000
+70466700
+d8a00943
+20407c99
+70094302
+6fe10943
+67e1465f
+70090c22
+20204837
+449e4007
+6fe0c666
+207a0000
+d8e0000c
+20407cef
+247a0000
+70466600
+d8a00933
+20407c99
+70093303
+6fe18933
+67e1c65c
+70090c21
+20204837
+449ec007
+6fe08901
+205a48b5
+20407906
+6fe088f7
+207a0000
+7008f700
+6fe108f5
+d84002ba
+98467c00
+24628000
+6fe08875
+c1dd0000
+6fe08876
+c050487c
+c050c882
+c053488e
+c053c890
+c054c896
+7008f800
+20600000
+6fe08877
+c040c87f
+2020487a
+204032fc
+7008f801
+20600000
+6fe08877
+c000c887
+c042488a
+c053c88c
+2020487a
+6fe0c5d5
+67e088b6
+20204880
+20403461
+20204887
+7008b6a1
+20204880
+7008b615
+20204880
+6fe0c616
+c0004894
+c000c88c
+20600000
+7008b6a0
+20204880
+7008b600
+7008b700
+7008b801
+7008b907
+20204880
+20403402
+20403407
+2040342d
+204048a3
+20403469
+20403488
+20404867
+2020489c
+449f4007
+6fe0c616
+c1800000
+20403464
+20404827
+6fe0c610
+247a0000
+2020350a
+6fe0c589
+c000c8ae
+c00148b7
+6fe0c693
+c28048bd
+202048b9
+6fe0c3cb
+c1820000
+70469303
+20600000
+70469300
+20600000
+6fe0c693
+c280c8c1
+6fe0c611
+c000c8c8
+c001c8cc
+20600000
+6fe0c693
+793ffe00
+67e0c693
+202048c4
+6fe0c693
+793ffe01
+67e0c693
+70458801
+580000ff
+67e0c519
+20600000
+70461101
+2040337e
+24778000
+2020330a
+6fe0c4f9
+c000c8c8
+c07fc8c8
+7008f900
+70458801
+6fe0c621
+67e0c519
+20600000
+58000001
+67e08913
+6fe3c5eb
+e7e38005
+6fe0c5eb
+245a48dd
+6fe0c5eb
+205a48e1
+20204836
+70466801
+58000180
+d8e0000d
+20207ce1
+70466800
+58000000
+d8e0000d
+20207ce1
+6fe0c5eb
+c00048ea
+c001491d
+c001c905
+202033be
+6fe0c5ed
+67e0c611
+7045ed00
+d8a00923
+d8c045ec
+df200008
+20407cda
+6fe40923
+245a48fd
+6fe40923
+205a4901
+6fe40923
+67e44649
+684c4651
+98467c00
+2442c847
+6fe44649
+67e44651
+202033be
+70466501
+58000180
+d8e0000e
+20207ce1
+70466500
+58000000
+d8e0000e
+20207ce1
+d8a00933
+d8c045eb
+df200003
+20407cda
+6fe10934
+245a4915
+6fe10934
+205a4919
+6fe18933
+67e1c659
+6849c65c
+98467c00
+2442c865
+6fe1c659
+67e1c65c
+202033be
+70466601
+58000180
+d8e0000c
+20207ce1
+70466600
+58000000
+d8e0000c
+20207ce1
+d8a00943
+d8c045eb
+df200002
+20407cda
+6fe10943
+245a492d
+6fe10943
+205a4931
+6fe10943
+67e1465f
+68494662
+98467c00
+2442c935
+6fe1465f
+67e14662
+202033be
+70466701
+58000180
+d8e0000a
+20207ce1
+70466700
+58000000
+d8e0000a
+20207ce1
+70090c22
+20204837
+6fe0c3cb
+c1820000
+6fe0c648
+c12d0000
+70469201
+20600000
+6fe0c3cb
+c1820000
+6fe0c692
+207a0000
+70067800
+7046485a
+204047f4
+204047ef
+6fe08678
+1fe0fe01
+67e08678
+c07feca3
+6fe0c648
+c0ad4942
+20206ca3
+6fe0c3cb
+c1878000
+204054ac
+24342002
+6fe0c846
+203a2002
+6fe0c655
+c17f8000
+1fe20e00
+6fe2069d
+afec0000
+2040ce45
+20202003
+20407396
+204049a1
+204049c8
+204049ea
+20758000
+20404966
+20404a7a
+6fe0c663
+c3838000
+6fe144e9
+c2864b95
+20405eb6
+20204bcf
+6fe44713
+c4068000
+5800496c
+67e10859
+704664a5
+2020498e
+2040496f
+20404974
+20204984
+70466500
+6fe44713
+c40b0000
+7046655a
+20600000
+6fe44713
+c28ec97b
+c28f497e
+c28fc981
+70466219
+70085b08
+20600000
+7046620c
+70085b04
+20600000
+70466206
+70085b02
+20600000
+70466203
+70085b01
+20600000
+20407966
+20404987
+2020498c
+6fe0885c
+207a0000
+6fe0c665
+c02d480c
+20204809
+6fe0c665
+2020480f
+44a0c008
+6848886c
+20406ee6
+2020c993
+2020499a
+6fe0c664
+c1528000
+704664a5
+70090e00
+70070900
+70090000
+20204962
+6fe0c664
+c12d0000
+7046645a
+20406018
+20405aaa
+20404f70
+20207912
+20758000
+204035f0
+2040325b
+204049af
+6848c865
+20406ef3
+20404b6d
+20406177
+20402a41
+6fe44713
+c28a49fd
+c289dd60
+c2895d6e
+20600000
+2040543b
+7048eb00
+58230170
+67e1c62d
+58015301
+e7e18005
+d8a047a0
+df200014
+20407ca1
+6fe0c26b
+1fe67c0c
+242149c6
+5806ff06
+67e1c7a0
+58000300
+e7e18005
+58000080
+e7e08005
+6fe0c26b
+1fe0fe01
+1fe27200
+d8c04369
+20207cda
+d8a047a0
+202049c1
+6848c864
+20406f0f
+6848c863
+20406f0f
+6848c865
+20406f0f
+5800486e
+67e14896
+58004876
+67e14898
+5800488a
+67e1489a
+6fe14896
+1fe22400
+df200008
+e8408012
+18467cff
+2442c9e7
+1a40a401
+c20049d7
+204023fd
+6fe14898
+1fe22400
+1fe22600
+df20000b
+e8408012
+284ffe07
+2440ef0f
+1a40a401
+c20049e1
+20600000
+20406f0f
+e8408012
+20206ec6
+6fe0c666
+c000c9f1
+585d4800
+67e24613
+6fe0c40c
+c4000000
+20205fe4
+70496b0c
+6fe0c40c
+c4000000
+70496b10
+6fe0c77e
+203a5c01
+20600000
+6fe149df
+d8400528
+98467c00
+24610000
+2020235a
+44a14008
+6fe0c666
+c0004a02
+c000ca0c
+20600000
+db000050
+58000400
+9b06fc00
+20407d62
+1807fe00
+67e10670
+dfe01fcc
+d8400004
+dd600004
+20204a16
+db000118
+58000400
+9b06fc00
+20407d62
+1807fe00
+67e10670
+dfe01fc2
+d840000e
+dd60000e
+20204a16
+60488678
+da2049c7
+da600000
+1fe22400
+6f208678
+20406b74
+6fe449c7
+684c49cf
+9841fe00
+684c49d7
+9841fe00
+203a4a28
+1a60a601
+6fe10670
+9a667c00
+1a427e00
+9b067e00
+20204a19
+1a667c00
+2022ca38
+1a427e00
+9b00fe00
+9d667e00
+1fe22400
+6f208678
+20406b74
+6fe449c7
+684c49cf
+9841fe00
+684c49d7
+9841fe00
+203a4a3a
+1a427e00
+20204a2c
+6560c9df
+20600000
+44a1c008
+58001fd0
+9a467e00
+67e149df
+1a427e00
+9d60a400
+6f208678
+da2049c7
+20406b74
+6fe0c666
+c0004a47
+c000ca4a
+20600000
+6fe349c7
+67e24691
+20204a76
+6fe0c9c7
+1fe67c03
+24417dca
+67e0c9c6
+6fe0c9c8
+67e0c667
+6fe349c9
+67e34668
+6fe349cf
+67e3466e
+20205c6f
+2020235a
+44a24008
+6fe44713
+c28a4a5c
+c289dcb1
+c2895cb9
+20600000
+20600000
+6fe0c666
+c0004a61
+c000ca6b
+20600000
+684949df
+58001fd0
+98462400
+da204691
+df200004
+20406b45
+684949df
+18408404
+604949df
+20600000
+684949df
+58001fd0
+98462400
+1a40a401
+da204668
+df200006
+20406b45
+1a40a407
+da20466e
+df200006
+20206b45
+6fe24691
+67e245e8
+67e2458f
+20600000
+44a2c008
+58006109
+67e143e9
+58004fe5
+67e145f2
+58004ff8
+67e145f4
+58004f41
+67e145f6
+58004be6
+67e143d9
+58004f5d
+67e143d7
+58004a9a
+67e143dd
+58004bcc
+67e143db
+58004f62
+67e143d5
+58005b08
+67e143df
+58004b19
+67e143e3
+580055fa
+67e143e7
+580054c5
+67e143d3
+58006221
+67e143e1
+58006228
+67e143e5
+20600000
+44a34008
+1a627e00
+c0194acb
+c0224ad3
+c0204add
+c00acab8
+c00a4aaa
+c0084b90
+c018daed
+c014daef
+c01f4329
+c0225b10
+c01ccae2
+c01e4ae5
+c01d4afe
+20600000
+70477d00
+70479401
+20406042
+6fe0c795
+243a4ab0
+70479614
+6fe143f1
+793ffe00
+67e143f1
+70484500
+6fe147be
+67e147c0
+20405c0b
+20204bbd
+58000000
+67e147c0
+67e0c860
+67e0c861
+67e0c794
+7047c200
+70495600
+204029cb
+20204ac1
+20405b7b
+6fe143ef
+c283cac6
+c28042fc
+20204b95
+20405b21
+6fe143ef
+c28042fc
+20407d7c
+20204f6c
+6fe0c795
+c000cad0
+70484414
+70486205
+20205af6
+20405aef
+70484405
+20205af6
+6fe081a2
+1fe67c0c
+24215b06
+6fe081a4
+6848c96b
+98467c00
+20215b1d
+6fe081a4
+67e0c0c0
+20205b1f
+6fe0c860
+247a0000
+70486001
+7048611e
+20600000
+20404af9
+20405c0b
+20206086
+20404af9
+6fe2458f
+67e245e8
+67e24691
+2040355a
+2040618e
+20405c0b
+20206075
+70485f02
+20404f3e
+70472c03
+20600000
+df200006
+d8c04858
+efe08006
+c029caf9
+c01ccaf9
+c023caf9
+c2004af3
+20600000
+7049ab03
+7048f401
+20600000
+7049a901
+20600000
+6fe0c600
+243a4b11
+6fe0c5e2
+c0014b0a
+c001cb04
+20204b04
+20406018
+6fe0c77f
+243a5f1b
+6fe0c666
+c0004f6c
+20600000
+6fe44713
+c29f6034
+c2986034
+c31d6067
+6fe24691
+203a4e39
+20206067
+70460000
+20403647
+5fffffff
+67e445af
+58000000
+67e3c846
+70473f01
+20204f9a
+44a3c008
+2040553d
+20404b4f
+2040614d
+2040328e
+20403531
+20405fdd
+20404b62
+20404b68
+20404b43
+20404b58
+20405be1
+20404b5c
+20405be4
+20404b5f
+20404b55
+20405bfe
+204056b6
+20404b48
+20404b72
+20404b82
+20404b87
+6fe0c666
+c0004b8a
+20205c05
+6fe0c980
+c1808000
+da604981
+da405a94
+202042e0
+6fe148fa
+684949ff
+98467c00
+2022cb3f
+18508400
+98467c00
+2022cb3f
+20205bba
+6fe0c980
+c1008000
+70498001
+20600000
+da604790
+da404b46
+202042e7
+20404bbd
+20204f6c
+da6046f3
+da404b4b
+202042e0
+20404a56
+6fe0c793
+243a5ed1
+20600000
+6fe0c637
+203a4b53
+7046313a
+20600000
+70463135
+20600000
+da604862
+da40502f
+202042e0
+da604845
+da405bd9
+204042e0
+20205bd6
+6fe44713
+c39d8000
+20205bee
+da604861
+da405aef
+202042e0
+6fe0c9a9
+207a0000
+7049a900
+7048f401
+20403625
+20204fa0
+da6049ac
+da404b6b
+202042e0
+7049ab00
+20600000
+204061ea
+20404b7c
+6848c868
+20206ef3
+20600000
+6fe0c866
+c17f8000
+6fe14781
+207a0000
+6fe14725
+68494781
+98460400
+6fe14869
+98467e00
+20214b7e
+6848c866
+20206ef3
+6fe0c9aa
+c300cb7c
+6848c866
+20206ef7
+da6048ee
+da404b85
+202042e7
+7048eb01
+20204327
+da6049c4
+da404d9e
+202042e0
+da604781
+da404b8d
+202042e7
+6fe0c666
+c0004b11
+20205aad
+280ffe26
+2040e018
+20405aad
+20405b21
+20204b95
+44a44009
+204061ab
+6fe144e9
+2feffe0b
+2040dc3e
+58000000
+67e147c0
+20404b7c
+7049c6ff
+6fe144e9
+2feffe0b
+2040dc3e
+20405aa8
+6fe144e9
+c285cbac
+6fe44713
+c3044bac
+68494695
+18408401
+60494695
+604942dc
+180a7e00
+67e0c2db
+6fe1c797
+67e1c2de
+2040432d
+6fe14638
+67e14790
+58000000
+67e14781
+67e147c0
+67e0c845
+67e0c792
+67e0c956
+d8e00002
+20405f00
+20405ef4
+20205b62
+70463700
+2020616e
+44a4c009
+58000000
+67e14790
+d8e00006
+20405f04
+70479200
+20405c3e
+20204b6d
+44a54009
+6fe44713
+c4010000
+d8e00002
+20405f04
+20405c4a
+20205c48
+44a5c009
+2040620e
+202078aa
+44a64009
+6fe44713
+c30acbdc
+20406f82
+20406fb0
+67e14633
+6fe1440a
+98467c00
+20214bcf
+da20462d
+20405563
+6fe0c40c
+c280cf6b
+6fe0c9a4
+205a4e24
+6fe0c9a3
+247a0000
+6fe0c666
+c000602f
+20405aa8
+6fe34668
+203a5a94
+202054a0
+44a6c009
+20402a28
+247a0000
+6fe0c78f
+c07fcbee
+6fe0c843
+1fe17e03
+c1818000
+6fe44713
+c280db5b
+c2805b5b
+c282db5b
+c2835b5b
+20404e47
+24740000
+20405abc
+204056b1
+6fe44713
+c30b5b3c
+6fe0c96c
+20205b3d
+6fe0c3cb
+c1878000
+20404c00
+20404c8b
+20204df5
+44a74009
+20404c85
+58000000
+67e148e9
+d8c0489c
+d8a048b0
+df200014
+20407cda
+5800489c
+67e148e3
+580048d8
+67e148e5
+20404c2f
+20404c53
+20404c83
+6fe1489a
+1fe22400
+7048e800
+e8408012
+6fe14898
+1fe22200
+1a222600
+df200014
+efe08011
+98467c00
+2022cc23
+1a20a201
+c2004c17
+1a40a401
+6fe0c8e8
+1fe0fe01
+67e0c8e8
+1fe67c0a
+20214c12
+20600000
+6fe148e3
+1fe20a00
+1a227e00
+9a667e00
+98a08a00
+6fe148e5
+1fe22600
+6fe0c8e8
+9a60a600
+efe08013
+e7e08005
+20204c1c
+44a7c009
+20404c83
+20404c81
+6fe148e9
+1fe0fe01
+67e148e9
+c284cc71
+6848c864
+20406ee6
+2420cc32
+20000014
+20404c79
+20404c85
+7048e800
+20404c7b
+20404c46
+20404c79
+20404c46
+1fe67c09
+20214c3d
+20404c7b
+20404c46
+20204c79
+7048e700
+20000032
+20404c65
+6fe148e5
+1fe20a00
+6fe0c8e8
+98a08a00
+6fe0c8e7
+e7e08005
+6fe0c8e8
+1fe0fe01
+67e0c8e8
+20600000
+20000014
+6fe14898
+1fe22400
+7048e800
+7048e700
+e8408012
+284ffe07
+2020cc5f
+20406ef7
+20404c65
+e8408012
+20406f0f
+1a40a401
+6fe148e3
+20404c4a
+1fe67c13
+20214c57
+20600000
+6fe14896
+1fe22600
+df200008
+e8408013
+20406ee6
+6fe0c8e7
+1fe37e00
+7920fe07
+67e0c8e7
+1a60a601
+c2004c68
+20600000
+6848c865
+20406ef7
+20000014
+6848c865
+20406ef3
+20001770
+20600000
+20204c00
+6848c864
+20206ef3
+6848c864
+20206ef7
+18467cff
+20628000
+793f8407
+20206edd
+6848c864
+20206edd
+6848c863
+20206ef3
+6848c863
+20206ef7
+7048eb00
+6fe148ec
+67e148ee
+20600000
+44a8400a
+da20489c
+da4048b0
+df200014
+20407d64
+2422cc87
+20404cc5
+205a4c87
+20404ccd
+6fe0c97b
+247a0000
+6fe0c9c1
+c1008000
+c1010000
+c1020000
+7048e800
+da20489c
+da4048c4
+e8408011
+efe08012
+9842fe00
+203a4cbd
+67e0c8e7
+6048c8f6
+e0408012
+7048f401
+7048f700
+6fe0c8e7
+c3004cb3
+6fe0c8e8
+1feffe08
+6848c8f7
+9840fe00
+d8c04901
+98c08c00
+efe08006
+67e0c8f5
+20404cfc
+20404d3a
+20404dbb
+6fe0c8e7
+1fe37e00
+67e0c8e7
+6fe0c8f6
+1fe37e00
+67e0c8f6
+6fe0c8f7
+1fe0fe01
+67e0c8f7
+c2004ca6
+1a20a201
+1a40a401
+6fe0c8e8
+1fe0fe01
+67e0c8e8
+1fe67c13
+20214c9d
+20600000
+6fe4489c
+247a0000
+6fe448a4
+247a0000
+6fe248ac
+247a0000
+7049c100
+20600000
+44a8c00a
+70497b00
+7048f100
+da20489c
+df200014
+7048f000
+efe08011
+203a4cf7
+6848c8f0
+18408401
+6048c8f0
+1fe20400
+1fe0ffff
+98417e00
+2422ccd5
+6fe0c8f0
+6848c8f1
+98408400
+6048c8f1
+1fe67c01
+20214cf7
+18467c02
+20214cf7
+7048e800
+7048f200
+e8408011
+da40489c
+6fe0c8e8
+1fe0fe01
+67e0c8e8
+1fe67c13
+24214cf7
+efe08012
+98417c00
+2022ccfa
+6fe0c8f2
+1fe0fe01
+67e0c8f2
+1fe67c01
+20214cfa
+70497b01
+20600000
+1a20a201
+c2004cd2
+20600000
+1a40a401
+20204ce8
+44a9400a
+6fe0c8f6
+245a4d4e
+6fe0c9a1
+245a4d11
+6fe0c9ae
+6848c9a1
+9842fe00
+20628000
+6fe0c8f5
+c014cd19
+c0264d1b
+1fe67c45
+24610000
+d840003a
+98467e00
+24610000
+d8c049b0
+98c08c00
+efe08006
+20204d38
+6fe0c8f5
+c0294d1d
+c028cd21
+c0284d25
+c027cd29
+c0704d2d
+c0164d35
+20600000
+6fe0c9af
+20204d38
+6fe0c9bc
+20204d38
+6fe0c9bd
+207a0000
+5800004b
+20204d38
+6fe0c9bd
+207a0000
+5800004e
+20204d38
+6fe0c9bd
+207a0000
+5800004a
+20204d38
+6fe0c9bd
+207a0000
+5800004d
+20204d38
+6fe0c9be
+207a0000
+6fe0c9c6
+c0004d33
+580000fd
+20204d38
+580000aa
+20204d38
+6fe0c9bf
+207a0000
+580000ab
+67e0c8f5
+20600000
+44a9c00a
+6fe0c8f5
+c0234d50
+c025cd56
+c0274d5c
+c0254d5e
+c026cd60
+c052cd62
+c0534d69
+c053cd6b
+c0544d6d
+c054cd6f
+c0554d7a
+c055cd81
+c0564d8c
+20600000
+6fe0c8f6
+247a0000
+7049c40a
+20600000
+7049c400
+20600000
+6fe0c9c6
+c1000000
+c1008000
+7049c20a
+7049c320
+20204d95
+7049c352
+6fe0c9c6
+c1000000
+c1008000
+7049c208
+20204d95
+7049c351
+20204d57
+7049c350
+20204d57
+7049c34f
+20204d57
+7049c304
+7049c201
+6fe0c9c6
+c0004d95
+c000cd95
+7049c208
+20204d95
+7049c306
+20204d63
+7049c319
+20204d63
+7049c31b
+20204d63
+6fe0c9c6
+c0004d74
+c001cd77
+580000fc
+20204d38
+7049c208
+7049c30f
+20204d95
+7049c209
+7049c314
+20204d95
+6fe0c9c6
+c0004d7e
+580000fd
+20204d38
+7049c209
+7049c312
+20204d95
+6fe0c9c6
+c0004d88
+c000cd8a
+7049c201
+7049c32c
+20404d4a
+20204d95
+7049c208
+20204d85
+7049c202
+20204d85
+6fe0c9c6
+c0004d92
+c000cd92
+7049c201
+7049c352
+20204d95
+7049c208
+7049c32b
+20204d95
+7048f500
+6fe0c8f6
+c3004d9c
+6fe0c9c1
+c001cda8
+7049c101
+20600000
+7049c104
+20600000
+7049c106
+20600000
+67e0c856
+6048c858
+20407dba
+70485500
+20204e89
+6fe0c9c2
+d8400000
+20404da0
+7049c102
+20600000
+7049c103
+6fe0c9c2
+6848c9c3
+20204da0
+70485500
+6fe0c9c2
+d8400000
+20404da0
+6fe0c9c4
+203a4d9e
+7049c105
+20600000
+20204da2
+7049c100
+dfe00000
+d8400000
+20204da0
+44aa400a
+6fe0c8f5
+1fe67ce7
+20214dc3
+7049c501
+6fe0c8f6
+c2804dc3
+7049c502
+70490000
+6fe0c8f6
+c2804ddd
+6848c8f5
+df200006
+d8c048fa
+efe08006
+203a4dd4
+98467c00
+2422cdd3
+efe08006
+18c08dfe
+e7e08006
+207a0000
+18c08c01
+e0408006
+c2004dc9
+18467ce7
+24610000
+18467cbf
+20610000
+18410e07
+6fe0c8f8
+f93ffe00
+67e0c8f8
+20600000
+6848c8f5
+df200006
+d8c048fa
+efe08006
+203a4dee
+98467c00
+20628000
+c2004de0
+18467ce7
+24610000
+18467cbf
+20610000
+18410e07
+6fe0c8f8
+f9207e00
+67e0c8f8
+20600000
+18467ce7
+24214df2
+18467cbf
+24214de9
+18c08dff
+e0408006
+20600000
+44aac00a
+20404e14
+7049a100
+7049a200
+7049a300
+6fe0c8f8
+245a4e41
+d8c048fa
+df200006
+efe08006
+1fe67c7f
+2042ce43
+1fe67cde
+2042ce45
+c2004dfe
+6fe0c666
+c0004e11
+20404b37
+6fe0c9a4
+203a4e24
+6fe148fa
+684949a5
+98467c00
+2022ce29
+18508400
+98467c00
+2022ce29
+20600000
+6fe0c9a4
+203a4e24
+20204e32
+6fe0c9a4
+247a0000
+6848c655
+18467cff
+20628000
+20406ee6
+2420ce20
+df200008
+d8a048f8
+20407ca1
+7048fade
+20600000
+6fe0c8fa
+c1ef0000
+7048fa00
+20600000
+44ab400a
+6fe0c9a3
+207a0000
+6fe0c666
+c0004e39
+7048f400
+6fe0c666
+c1000000
+6fe44713
+c3830000
+d8e00006
+20405f00
+204042d0
+20204b90
+6fe148fa
+684949a7
+98467c00
+2022ce39
+18508400
+98467c00
+24628000
+204049f8
+7048f400
+6fe145d8
+247a0000
+58000000
+67e14781
+20404b7c
+20206047
+7049a201
+20600000
+7049a101
+20600000
+7049a301
+20600000
+44abc00a
+78547c00
+70496c00
+70496d00
+70496e00
+6fe0c9c1
+c000cda5
+c0014daa
+c001cdaa
+c0024dae
+c0034db7
+6fe0c8f4
+203a4e64
+1fe0ffff
+67e0c8f4
+20404e61
+7049ac0a
+20405c0b
+6fe0c9c1
+c002cdb6
+d8a04855
+df20000a
+20407ca1
+20404e74
+70485f00
+20600000
+7040c003
+70477e0a
+20600000
+6fe0c666
+c1008000
+6fe0c9ab
+207a0000
+6fe0c9a9
+247a0000
+6848c9ad
+6fe0c9ac
+98467c00
+67e0c9ad
+20628000
+d8a04855
+df20000a
+20407ca1
+20407dba
+20204e89
+6fe0c9c5
+c0014f05
+d8c048fa
+df200006
+efe08006
+1fe67ce7
+24214e9c
+c2004e78
+6fe0c8f1
+205a4e92
+70485500
+6fe0c8fa
+1fe67c7f
+2022ce95
+d8c048f8
+d8a04856
+df200008
+efe08006
+c03fce9a
+e7e08005
+c2004e85
+20404f10
+6fe0c85f
+c000fdba
+c0014e90
+c001ce90
+c0024e90
+c002ce90
+20405917
+20207dba
+d8a048f8
+df200009
+20207ca1
+6fe148f8
+67e14856
+6fe348fb
+67e34858
+20204e89
+58000000
+20204e87
+1fe20400
+44ac400b
+18427e00
+70485503
+6848c8f1
+18467c00
+2022cf05
+c0744ebb
+c074cebe
+c0754ec1
+c075cec4
+c0764ec7
+c076ceca
+c0774ecd
+c077ced0
+c0784ed3
+c078ced6
+c0794ed9
+c079cedc
+c07a4edf
+c07acee2
+c07b4ee5
+c07bcee8
+c07c4eeb
+c07cceee
+c07d4ef1
+c07dcef7
+c07e4efa
+c07ecefd
+c07fcf0c
+20204e89
+58000183
+67e14856
+20204e89
+580000cd
+67e14856
+20204e89
+580000b7
+67e14856
+20204e89
+580000b6
+67e14856
+20204e89
+580000b5
+67e14856
+20204e89
+580000ea
+67e14856
+20204e89
+580000e9
+67e14856
+20204e89
+580000e2
+67e14856
+20204e89
+58000194
+67e14856
+20204e89
+5800018a
+67e14856
+20204e89
+58000192
+67e14856
+20204e89
+58000070
+67e14856
+20204e89
+5800006f
+67e14856
+20204e89
+5800022a
+67e14856
+20204e89
+58000225
+67e14856
+20204e89
+58000224
+67e14856
+20204e89
+58000226
+67e14856
+20204e89
+58000227
+67e14856
+20204e89
+6fe0c9c6
+c0014ef7
+c001cef7
+58000221
+67e14856
+20204e89
+58000223
+67e14856
+20204e89
+58000030
+67e14856
+20204e89
+6fe0c9c6
+c000cf02
+580001ae
+67e14856
+20204e89
+58000307
+67e14856
+20204e89
+7048f402
+6fe0c8f1
+205a4e92
+7049c500
+58000003
+67e1c855
+20204e89
+70485502
+58000002
+67e0c856
+20204e89
+44acc00b
+6fe0c666
+c0804f18
+7049a900
+6fe14855
+245a4afc
+6fe34858
+245a4afc
+6fe0c855
+c0004f23
+c000cf1e
+c001cf2e
+c0014f36
+20600000
+70485f01
+d8c04855
+d8a04846
+df200007
+20207cda
+70485f02
+20404f3e
+6fe0c666
+c000cf2a
+20404af1
+6fe0c9ab
+67e0c857
+d8c04855
+d8a0472a
+df200009
+20207cda
+70485f04
+20404f3e
+58000003
+20405f15
+d8c04856
+d8a0472b
+df200002
+20207cda
+70485f05
+20404f3e
+58000002
+67e4472a
+67e44733
+6fe0c856
+67e0c72b
+20600000
+df200012
+d8a0472a
+20207ca1
+20407de2
+2040561c
+6848c64a
+20406eb2
+6848c64b
+20406eb2
+6848c655
+20406eb6
+6fe14898
+1fe22400
+df200014
+e8408012
+284ffe07
+2440eef7
+1a40a401
+c2004f4c
+6fe14896
+1fe22400
+df200008
+e8408012
+18467cff
+2442eeb2
+1a40a401
+c2004f54
+20600000
+6fe0c8eb
+203a6eb6
+20206eb2
+c6130000
+20404f41
+6fe08015
+247a0000
+20206ed3
+44ad400b
+704659ff
+2040739a
+20404f70
+204056a9
+204054dc
+20405d9e
+6848c659
+20206ed3
+20404f70
+44adc00b
+20404f75
+20407d7c
+20204327
+44ae400b
+20404b6d
+20404b71
+20404b7c
+20204b6f
+44aec00b
+20407de2
+20404f70
+20405a92
+20404f41
+204054f9
+6848c65b
+204055b5
+204055b9
+202054f2
+6fe145e0
+1fe17ee0
+203a4f86
+6fe145e0
+1fe0fe01
+67e145e0
+20600000
+2040357f
+20403651
+242c3586
+2437b586
+20405028
+2020356a
+20403625
+24344f91
+20404fa0
+20404fd5
+20204fdb
+6fe4489c
+243a4f8e
+6fe448a4
+243a4f8e
+6fe248ac
+243a4f8e
+6fe0c618
+c1008000
+2040369d
+20404fc8
+24740000
+6fe0c73f
+245a4f75
+6fe245af
+20203622
+44af400b
+70460100
+69610040
+34730200
+20404df5
+6fe0c9a3
+243a5ed1
+20403651
+6fe0c57f
+c000b646
+242c4faf
+2437cfaf
+20405028
+70473f00
+20203646
+6fe0c602
+247a0000
+6fe145fe
+1fe0fe01
+67e145fe
+6fe0c5fe
+c07fb676
+20404fb8
+20204fa2
+6848c601
+18467c14
+20214fbe
+df200019
+20407c96
+20203694
+18408401
+6048c601
+6fe2458f
+684a45e4
+98467c00
+2022b222
+6fe0c601
+1fe67c03
+20610000
+2020369a
+78347c00
+20402408
+6fe1c0bd
+203a7dbc
+6fe0c9a1
+243a7dbc
+6fe0c9a2
+243a7dbc
+6fe0c9c4
+243a7dbc
+6fe0c618
+c000fdbc
+202036b9
+6fe2458f
+684a45e4
+98467c00
+2422b6e9
+7041419e
+20600000
+6fe4460b
+67e445af
+6fe1461d
+67e1461f
+44afc00b
+204036b4
+24740000
+20407de2
+6fe1c608
+20203622
+c6930000
+20404e47
+24740000
+6fe44713
+c30b60a1
+6fe0c96c
+243a4fed
+202060a1
+70458902
+da200009
+6fe0c96d
+243a4ff3
+da404733
+20600000
+da40472a
+20600000
+58000000
+67e1c6f8
+20600000
+44b0400c
+6fe44713
+c4070000
+6fe0c77d
+207a0000
+6fe0c602
+207a0000
+6fe0c6f5
+1fe0fe01
+1fe17e03
+67e0c6f5
+247a0000
+7046f600
+6fe0c6f6
+1fe0fe01
+67e0c6f6
+1fe67c08
+24215010
+2040357f
+20403651
+242c5016
+2437d016
+20405028
+20405020
+2040357b
+6fe0c6f7
+1fe0fe01
+67e0c6f7
+c0085018
+20600000
+20403222
+20205005
+7046f700
+6fe0c6f8
+c3800000
+79207e00
+67e0c6f8
+6fe14723
+67e14781
+20600000
+6fe0c602
+203a4ff5
+7046f700
+6fe0c6f8
+c4000000
+793ffe00
+67e0c6f8
+20205c0b
+2040366e
+6fe0c4f8
+2fe1f008
+24608000
+6fe0c4f9
+c07fcb11
+20600000
+7049f101
+da200017
+da400004
+204029fb
+58000006
+e7e08005
+58000001
+e7e10005
+5800ffff
+e7e10005
+58002800
+e7e10005
+d8c049e1
+20207c8f
+44b0c00c
+6fe0c9f1
+207a0000
+1a220c00
+efe18006
+67e1c397
+c005d091
+c004d078
+c003d048
+c000d05b
+20202b96
+6fe0c9f1
+c001506c
+7049c602
+20205050
+6fe0c2cb
+67e0c9c6
+20205050
+7049c603
+7049f100
+684949df
+58001fd0
+98462400
+da2049c6
+df200001
+20406b45
+684949df
+1840840e
+604949df
+20600000
+6fe0c9f1
+c001504c
+7049f102
+da200009
+da400004
+204029fb
+58000006
+e7e08005
+58000001
+e7e10005
+5800ffff
+e7e10005
+58002800
+e7e10005
+df200002
+d8c049f2
+20207cda
+da200007
+da400004
+204029fb
+58000008
+e7e08005
+68494339
+18408405
+efe20002
+e7e20005
+58002803
+e7e10005
+20600000
+6fe14335
+1fe0fffe
+1fe6fc07
+20407d62
+1807f200
+6fe14339
+1fe08c06
+20205080
+18c08c03
+efe10006
+1fe22600
+efe10006
+d8402a29
+98467c00
+2022d089
+c2005080
+2020504c
+da200003
+da400004
+204029fb
+5800000a
+e7e08005
+1a627e00
+e7e10005
+20600000
+6fe14335
+df200009
+6fe14339
+1fe0a205
+da4049f4
+20407d64
+2022d04f
+2020504c
+2035d0bd
+20402952
+580050c7
+67e143db
+580050ca
+67e143dd
+580050c3
+67e143d3
+58005180
+67e143e1
+580053b0
+67e143df
+580053c1
+67e143e3
+44b1400c
+204050ab
+204050be
+2020533b
+6ff08060
+793ffe00
+67f08060
+6fe44500
+20406d68
+6fe14508
+20406d73
+20406d82
+70807708
+70807649
+7080790a
+70807a0b
+d8400081
+6fe1450f
+2feffe00
+79208404
+60588060
+20600000
+202050ab
+6848c4f5
+20406ef7
+204050ed
+6848c4f3
+20206edd
+6848c4f3
+20406ee6
+2420c30a
+20204308
+204069a9
+247a0000
+202050ef
+1a627e00
+c00a50dc
+c00ad0d8
+c0185375
+c018d377
+c0195381
+c019d37f
+c01a536f
+c01ed34f
+c020d0e2
+c02150e4
+c021d36d
+c01dd358
+20600000
+204029cb
+70451100
+204050e0
+20205321
+204050e7
+6fe0c4fe
+67e0c0c0
+2020531f
+20405149
+202050e5
+204030f3
+20202ed5
+20205391
+6848c4f5
+20206ef7
+204050e9
+202050ed
+6fe0c4f8
+2feffe01
+2040c315
+20600000
+6848c4f5
+20206ef3
+6ff0810b
+c3810000
+20406d96
+efe08003
+c080d105
+6ff10112
+1fe67c02
+20610000
+efe08003
+67e086e2
+e8408003
+18622200
+604886e3
+18408403
+6ff10112
+98460400
+24610000
+7006e401
+20405113
+6fe086e4
+c1000000
+2020510e
+20407c95
+2040535e
+20205108
+44b1c00c
+20406d96
+6ff10112
+207a0000
+98608600
+20205112
+20406d96
+18608602
+efe08003
+98608600
+20206d9c
+44b2400c
+6fe086e2
+c000d13d
+c0015142
+c0025150
+c004d154
+c005d1ab
+c00751ac
+c007d1b4
+c00851bc
+c00951c0
+c01351c4
+c01451c9
+c01551cc
+c015d1ff
+c0165205
+c018520c
+c018d211
+c0195222
+c019d22d
+c01a525a
+c01ad25d
+c01b5266
+c01bd26f
+c01c5275
+c020527d
+c0215287
+c024528c
+c028d297
+c030d29b
+c03b52aa
+c03bd2b0
+c03c52b5
+c03d52eb
+c03dd2f9
+c04852ff
+c048d304
+c0495308
+c049d30d
+c04a5311
+c07fd317
+20205319
+6fe086e3
+c0835319
+efe30003
+67e342db
+2020531c
+6fe086e3
+c080d319
+e8408003
+6048c4ff
+2040531c
+6fe144e9
+c3848000
+6fe0c4f8
+2feffe01
+24608000
+6848c4ff
+284ffe02
+2020c317
+20204315
+dfe0001d
+d8a0426b
+20405260
+20202952
+6fe144e9
+c304d319
+204051a8
+20345319
+7006e400
+6fe1450f
+c2845179
+6fe0c511
+247a0000
+7006e401
+efe10003
+67e14512
+60614514
+6fe086e3
+1fe0fffe
+24215319
+2022d319
+67e0c511
+68494512
+184085ff
+20402cd2
+203a517c
+e8420006
+59280302
+98467c00
+2422d17c
+efe08006
+67e0c516
+1fe17e30
+203a517c
+7006e400
+204029c9
+20405180
+20405180
+20405180
+6fe1450f
+c4040000
+7006e401
+204053d6
+2020531c
+70451100
+7006e401
+204053d6
+20205319
+6fe0c511
+207a0000
+20402a28
+247a0000
+204051a3
+44b2c00c
+6fe142e1
+20407db0
+1fe20400
+6fe0c396
+c3800000
+1840fffd
+d84000fb
+20407db0
+6848c511
+20407db0
+1fe22200
+18427e00
+9a267e00
+67e0c511
+2040519e
+6fe14514
+1fe20600
+1a227200
+20406dca
+18627e00
+67e14514
+6fe0c511
+247a0000
+202053d4
+68494512
+6fe0c516
+c282adf7
+c2822dee
+20600000
+d8400017
+6fe1450f
+c3808000
+684942e3
+20600000
+6fe1450f
+c2812dc7
+20207dbc
+2020533f
+efe08003
+6848c50f
+7d3a0400
+6048c50f
+68588060
+7d3a0404
+60588060
+2020531c
+6f2086e3
+20407d33
+20406d77
+67e14508
+2040531c
+20406dae
+6fe14508
+20206d73
+da200002
+da4044f1
+d8400000
+20205323
+6fe144e9
+c304d319
+2040531c
+2020431f
+6f2086e3
+6fe143f8
+1fe20a00
+20406dca
+2020531c
+6fe144e9
+c284d28c
+20205319
+df200040
+d8a04348
+20407ca1
+58000000
+67e08688
+1a220600
+18627e00
+67e1068c
+204051fa
+6fe08688
+68488678
+18408401
+9840fe00
+67e08688
+1fe67c1f
+242151e6
+6848c348
+58004349
+9840fe00
+67e10691
+68488678
+18408401
+6fe0c348
+9840fe00
+67e0c348
+202051ef
+6848c368
+58004369
+9840fe00
+67e10691
+68488678
+18408401
+6fe0c368
+9840fe00
+67e0c368
+6fe10691
+1fe20a00
+6fe1068c
+1fe20600
+18427200
+20406dca
+6fe086e3
+68488688
+98467c00
+2422d1d2
+2020531c
+efe08003
+67e08678
+efe08003
+67e08684
+20600000
+d8400000
+da200002
+6fe1450c
+67e106a1
+da4006a1
+20205323
+6fe086e3
+c080d319
+efe08003
+67e0c50a
+58000000
+67e1450c
+2020531c
+6fe086e3
+c0825319
+6fe144e9
+c284d2eb
+20205319
+6fe086e3
+c081d319
+efe08003
+c0005217
+c000d21d
+20205319
+2040531c
+e8408003
+efe08003
+c0016f0f
+7d3a0407
+20206edd
+2040531c
+e8408003
+efe08003
+203a6ef7
+20206ef3
+6fe086e3
+c080d319
+e8408003
+20406ee6
+58000000
+7d20fe00
+da200001
+67e106a1
+da4006a1
+d8400000
+20205323
+efe08003
+1fe20400
+c040d23c
+c0415240
+c041d245
+c0425249
+67e0c2fe
+204074ff
+20402ec4
+6fe0c2fe
+c000524d
+c000d250
+c0015252
+c0025254
+20205319
+6048c2fe
+20402ec0
+7042c70d
+2020524e
+6048c2fe
+20402ec0
+7042c70d
+7042c501
+2020531c
+6048c2fe
+20402ec0
+7042c70d
+20205258
+6048c2fe
+20402ec0
+7042c70d
+20205256
+7042c700
+7042c503
+2020531c
+7042c701
+2020524e
+7042c705
+20205258
+7042c705
+20205256
+7042c502
+2020531c
+7042c500
+2020531c
+dfe0001f
+d8a04348
+20205260
+dfe0001f
+d8a04368
+20205260
+6f2086e3
+9f267c00
+24215319
+e7208005
+20406dca
+2020531c
+6fe144e9
+c304d319
+6fe086e3
+c0845319
+efe40003
+67e442d3
+70066f12
+20407834
+2020531c
+efe10003
+67e14389
+6048c0a6
+9840fe00
+67e140a4
+2020531c
+6fe0c2fe
+203a5319
+6fe0c2fc
+c0805319
+6fe0c2fd
+c0805319
+204078a9
+2020531c
+6fe086e3
+c082d319
+efe08003
+67e0c4f9
+efe20003
+67e244fa
+6848c4f9
+20406ef7
+204053ae
+2020531c
+6fe086e3
+c080d319
+efe08003
+67e0c141
+2020531c
+efe08003
+c000d295
+6fe0c2fa
+c001d293
+c0035293
+c003d293
+20205319
+7042fb01
+2020531c
+20402f2a
+2020531c
+2040531c
+20406dae
+70801001
+2020235a
+6fe086e3
+c0005319
+efe08003
+203a52a8
+6fe086e3
+c082d319
+efe20003
+d84f4240
+98467c00
+20215319
+67e242ff
+204029c1
+2020531c
+204029c3
+2020531c
+d8400001
+20402cd2
+18c08bfe
+58000000
+e7e10005
+2020531c
+204052b9
+204052e7
+58000000
+e7e10005
+20205388
+efe08003
+204052bd
+204052c4
+20205388
+204052e4
+58280002
+e7e18005
+20600000
+67e08670
+204052e4
+59280302
+e7e20005
+6fe08670
+e7e18005
+20600000
+20402cf6
+efe08003
+1fe1721f
+1fe22200
+2a2ffe07
+7920840f
+2a2ffe06
+7920840e
+e0410005
+1f227e00
+e7e08005
+20406ddd
+204052e7
+58000000
+e7e10005
+184104ff
+184085ff
+20402cd2
+18c08c04
+efe08006
+c28252dc
+c282d2dc
+18408401
+20600000
+20402cf6
+2a2ffe05
+7920840f
+e0410005
+5a290202
+e7e40005
+184085ff
+20600000
+20402cf6
+e0410005
+20600000
+efe08003
+1fe27200
+e7e08005
+20206ddd
+6fe0c2fc
+c082d319
+6fe0c2fe
+c00252f7
+c04252f1
+20205319
+7042f902
+7042fa08
+202052f4
+efe20003
+67e242ff
+2020531c
+204052f4
+20202f13
+efe30003
+67e342cc
+7001bc1b
+70451701
+70434301
+2020531c
+6fe086e3
+c0815319
+e8410003
+20402a2d
+2020531c
+d8400000
+da200002
+da404075
+20205323
+6fe086e3
+c0845319
+efe40003
+20402a2b
+2020531c
+ea208003
+ea410003
+d8400000
+20205323
+6f2086e3
+1f20f3fe
+efe10003
+1fe20a00
+20406dca
+2020531c
+70409400
+2020531c
+d8400001
+da200000
+20205323
+d8400000
+da200000
+20205323
+7006e202
+2020533c
+7006e205
+2020533c
+6fe086e2
+1fe22600
+7006e206
+58000002
+9a20fe00
+20405397
+1a627e00
+e7e08003
+e0408003
+1a227200
+1a420c00
+20406dc4
+202053a1
+7006e208
+1f20fe02
+20405397
+6fe1070d
+e7e10003
+6fe1070b
+1fe20c00
+20406db1
+18c27e00
+67e1070b
+202053a1
+7006e209
+58000000
+20405397
+202053a1
+7006e20a
+58000001
+20405397
+20405349
+6fe144e9
+d8e00009
+afefffff
+79208405
+e0408003
+202053a1
+d8400000
+6fe0c388
+d8e00000
+afefffff
+79208402
+20600000
+7006e20d
+6fe0c3fa
+1feffe22
+1fe27200
+20405397
+6fe143f8
+1fe20c00
+20406db1
+202053a1
+7006e20e
+58000004
+20405397
+6fe205fa
+e7e20003
+202053a1
+7006e20f
+6ff10112
+d8400040
+20407db0
+1fe22200
+1fe27200
+20406d96
+d8a006a1
+20406dca
+1a227e00
+1a227200
+20405397
+d8c006a1
+20406db1
+202053a1
+7006e210
+2020533c
+7006e211
+58000004
+20405397
+6fe242ff
+e7e20003
+202053a1
+da200180
+20205379
+da200080
+20205379
+7006e214
+58000002
+20405397
+1a227e00
+e7e10003
+202053a1
+da600000
+20205382
+da600001
+7006e215
+58000001
+20405397
+1a627e00
+e7e08003
+202053a1
+60490678
+7006e229
+58000002
+20405397
+68490678
+e0410003
+202053a1
+7006e22b
+2020533c
+7006e240
+58000002
+20405397
+6fe14075
+e7e10003
+202053a1
+7006e102
+67e086e3
+604c0678
+44b3400c
+204053a3
+684c0678
+20406da2
+6fe186e1
+e7e18003
+20600000
+44b3c00c
+20206da4
+204053ac
+20608000
+204053aa
+6fe244fa
+1feb7e00
+207a0000
+20207c91
+6848c4f9
+20206ef7
+6848c4f9
+20206f02
+6848c4f9
+20206ef3
+6221070b
+62410709
+6fe14398
+67e1070d
+204051a8
+20740000
+68490709
+6fe0c50e
+20407db0
+1fe27200
+18427e00
+9f267e00
+67e10709
+20405330
+6fe10709
+207a0000
+202053b6
+20600000
+6fe0c50a
+207a0000
+6fe0c50b
+207a0000
+1fe0ffff
+67e0c50b
+247a0000
+70450b05
+20406f82
+20406fb0
+1fe6fc0a
+20407d5f
+1fe6fc64
+20407d5f
+18070400
+67e0c50c
+6048c50d
+20600000
+d8e00008
+202053dc
+d8e00008
+202053d8
+6fe1450f
+f93ffe00
+67e1450f
+20600000
+6fe1450f
+f9207e00
+67e1450f
+20600000
+20407396
+20405410
+20405949
+20758000
+20405747
+20405f37
+204053ec
+204059ed
+6fe144e9
+c2865c1a
+20405eb6
+2020548c
+44b4400d
+58006235
+67e145f8
+5800622b
+67e145fa
+58006109
+67e143e9
+58006096
+67e145f2
+580060c1
+67e145f4
+5800550c
+67e145f6
+58005b23
+67e143d9
+58005507
+67e143d7
+58005ac1
+67e143dd
+58005e5d
+67e143db
+580054d5
+67e143d5
+58005b08
+67e143df
+58005b85
+67e143e3
+580055fa
+67e143e7
+580054c5
+67e143d3
+58006221
+67e143e1
+58006228
+67e143e5
+20600000
+20758000
+204035f0
+2040325b
+204062aa
+20405589
+204055c6
+2040544a
+20406177
+20402a41
+44b4c00d
+6fe44713
+c289dd60
+c2895d6e
+c28a5da6
+20600000
+70409910
+6fe44713
+c3860000
+70409918
+20600000
+20403281
+6fe44713
+c41e8000
+20203284
+44b5400d
+6fe44713
+2feffe05
+2040df08
+6fe1463a
+67e145d6
+6fe0c63d
+67e145dc
+6fe2c63f
+67e2c628
+6fe0c63e
+67e0c5d1
+6fe0c5b9
+245a326b
+44b5c00d
+2040541f
+20405424
+20405fe4
+20203287
+58009000
+67e142f7
+7040c103
+7040a608
+70497f00
+70498000
+58000200
+67e140a4
+7042e117
+7042e317
+580047c3
+67e1433f
+58000010
+67e14341
+20205539
+44b6400d
+2040543b
+70487a00
+58000a77
+67e143f5
+38001224
+38044000
+38080000
+e7e28005
+6fe44713
+c30dd458
+58000006
+67e142d3
+67e142d5
+20405481
+6fe44713
+c30c545c
+20405476
+6fe1c608
+67e1c75d
+6fe0c666
+67e0c9a1
+6fe1c2de
+67e1c797
+58000000
+67e3c846
+6fe0c4eb
+67e0c97c
+67e0c97d
+20402969
+44b6c00d
+6fe0c64f
+67e0c958
+6fe0c64e
+c17f8000
+6848c64e
+204055b5
+6848c64e
+20406ee6
+2040d473
+202055b1
+6fe0c650
+67e0c958
+20600000
+6fe1c743
+67e1c608
+6fe1c746
+67e1c60b
+6fe0c749
+67e0c621
+6fe24755
+67e24751
+58100c0c
+67e1c5a7
+20600000
+6fe1c74a
+67e1c608
+6fe1c74d
+67e1c60b
+6fe0c750
+67e0c621
+6fe24759
+67e24751
+581c1919
+67e1c5a7
+20600000
+44b7400d
+6fe44713
+c29f602d
+6fe0c666
+c000601c
+20405aa8
+6fe0c666
+c000d496
+c001549b
+20600000
+6fe34668
+684b46e6
+98467c00
+2022da94
+202054a0
+6fe34675
+684b46e6
+98467c00
+2022da94
+202054a0
+44b7c00d
+2040619f
+da204667
+6fe0c666
+1fe0ffff
+1feffe1d
+9a20a200
+efe08011
+67e0c3f3
+6fe0c3f3
+c01a54b6
+20205a94
+44b8400e
+78547c00
+6fe44713
+c305d4b3
+6ff08132
+c28254b3
+78347c00
+6fe0c780
+67e0c77f
+20600000
+70479501
+6848c71e
+6fe0c78f
+c07fd4bb
+6848c63c
+6048c845
+2040432d
+6fe1c79d
+67e1c34d
+20405b6b
+58000004
+e7e08006
+d8c04369
+20405b72
+20207870
+c5134308
+6fe0c956
+203a4308
+6fe0c7c2
+c000c308
+6fe0c857
+243a4308
+2020430a
+44b8c00e
+58000006
+204069e5
+c281d4d3
+204059da
+204059ed
+204054dc
+20204327
+44b9400e
+2040739a
+204056a9
+204054dc
+20405d9e
+6848c659
+20206ed3
+44b9c00e
+20405a92
+20407de2
+2040611a
+2040550c
+204054f9
+6848c65b
+204055b5
+204055b9
+204061fd
+204054f2
+202054e8
+6fe44713
+c41e0000
+6848c64a
+20406ed3
+6848c64b
+20406ed3
+6848c64a
+204055b1
+6848c64b
+202055b1
+6fe44713
+c40a8000
+6fe0c407
+c1810000
+6fe0c635
+d84000c0
+20206f21
+d8c08070
+df200010
+efe08006
+243a5500
+58000080
+18c08bff
+e7e08005
+c20054fb
+dfe080dc
+98c67c00
+20628000
+df200008
+d8c080d4
+202054fb
+c6130000
+2040550c
+6fe08015
+247a0000
+20206ed3
+44ba400e
+6848c64a
+20406edd
+6848c64b
+20406edd
+2040561c
+6fe0c64c
+20405943
+204069dc
+6848c644
+20406eb6
+6848c646
+20406eb6
+6848c645
+20406eb6
+6848c647
+20406eb6
+6848c648
+20406eb6
+6848c649
+20406eb6
+6848c655
+20406eb6
+6848c656
+20406eb6
+6848c64a
+20406eb2
+6848c64b
+20406eb2
+6848c652
+20406eb2
+6848c653
+20406eb2
+6848c659
+20206eb6
+6fe144e9
+c4048000
+1a227e00
+243a29d5
+202029da
+44bac00e
+6fe0c407
+c1810000
+6848c635
+20206f0f
+6fe44713
+c40a8000
+70463601
+20600000
+44bb400e
+6fe44713
+c40a8000
+20405534
+6fe0c407
+c0015545
+70463603
+20205547
+70463602
+20205547
+44bbc00e
+20406f82
+20406fb0
+67e14633
+6fe0c407
+c0815553
+68494633
+184ffe08
+1fe6fc0a
+20407d5f
+9840fe00
+67e14633
+da20462d
+20405563
+6fe0c40c
+c280d4cd
+c300555c
+70463701
+2020555a
+d8e00004
+20205f00
+d8e00004
+20405f04
+70470901
+6fe0c637
+207a0000
+70463700
+2020616e
+44bc400f
+efe40011
+67e40670
+6fe0c636
+c000556a
+c001556a
+c001d588
+20406ff3
+20406feb
+6fe10676
+68490672
+98467c00
+24416fef
+68490674
+98467c00
+24416fe7
+6fe10676
+68490670
+98467c00
+20215584
+68490672
+98467e00
+24215586
+203a5586
+1fefa264
+6fe10670
+68490672
+98460400
+1a227e00
+9846fc00
+20407d5f
+67e0c7bd
+20600000
+7047bd64
+20600000
+7047bd00
+20600000
+2020556a
+6848c427
+20406ef7
+6848c644
+204055b5
+6848c646
+204055b5
+6848c645
+204055b5
+6848c647
+204055b5
+6848c648
+204055b5
+6848c649
+204055b5
+6848c654
+204055b5
+6848c655
+204055b5
+6848c656
+204055b5
+6848c64a
+204055b5
+6848c64b
+204055b5
+6848c652
+204055b5
+6848c653
+204055b5
+6848c659
+204055b5
+6848c65a
+204055b5
+6848c64e
+202055b5
+18467cff
+20628000
+18410e7f
+6ff2011c
+afefffff
+2020d5b5
+18467cff
+20628000
+79200407
+20206edd
+18467cff
+20628000
+793f8407
+20206edd
+6fe1c73c
+67e18670
+df20000d
+d8400000
+6fe18670
+2feffe00
+2040ef0f
+6fe18670
+1fe3fe00
+67e18670
+18408401
+c20055bd
+20600000
+44bcc00f
+6fe4498d
+207a0000
+6fe0c98c
+1fe22200
+1fe67c0b
+242155dd
+204055d6
+d8a047a9
+204055d3
+d8a0436b
+204055d3
+d8a0426c
+d8c0498d
+1a227200
+20207cda
+d8a047a9
+204055db
+d8a0436b
+204055db
+d8a0426c
+df20000b
+20207ca1
+204055f3
+6fe0c98c
+1fe0fe01
+67e0c7a0
+7047a109
+d8c0498d
+d8a047a2
+1a227200
+20407cda
+6fe0c98c
+1fe0fe01
+67e0c369
+70436a09
+d8c0498d
+d8a0436b
+1a227200
+20407cda
+d8c0498c
+d8a0426b
+1a227200
+1f20f201
+20207cda
+d8a047a0
+df200014
+20207ca1
+204055fb
+7043f573
+204055fa
+202069e0
+20206bc6
+6fe0c64c
+d8400021
+20406f21
+6fe0c64d
+d8400023
+20206f21
+44bd400f
+78547c00
+58000000
+67e34847
+204059f6
+58000089
+204069e4
+20405747
+20405612
+20405617
+204057a6
+6fe0c846
+1fe17e1f
+67e0c846
+24345f37
+20405f26
+20205c0b
+6fe0c856
+207a0000
+67e0c84b
+70485600
+20207dba
+6fe0c852
+207a0000
+67e0c84c
+70485200
+20207dba
+20405629
+20405665
+6fe0c850
+6848c84f
+67e0c84f
+98467c00
+2422c30c
+6fe0c854
+6848c853
+67e0c853
+98467c00
+2422c30c
+20600000
+6fe0c652
+c17f8000
+da200000
+6848c652
+20406ee6
+7920a200
+6848c653
+20406ee6
+7920a201
+1a227e00
+67e0c850
+c000d639
+c001563d
+6fe0c851
+c283d649
+20600000
+6fe0c84f
+c0005641
+c001d643
+20600000
+6fe0c84f
+c0005645
+c001d647
+20600000
+70485182
+20600000
+70485181
+20600000
+70485180
+20600000
+70485183
+20600000
+6fe0c851
+793ffe07
+67e0c851
+c0005651
+c000d654
+c0015657
+c001d65a
+20600000
+6fe0c850
+c001d65d
+20600000
+6fe0c850
+c000565d
+20600000
+6fe0c850
+c001d661
+20600000
+6fe0c850
+c0005661
+20600000
+6fe0c852
+1fe0fe01
+67e0c852
+20600000
+6fe0c852
+1fe0ffff
+67e0c852
+20600000
+6fe0c64a
+c17f8000
+da200000
+6848c64a
+20406ee6
+7920a200
+6848c64b
+20406ee6
+7920a201
+1a227e00
+67e0c854
+c000d675
+c0015679
+6fe0c855
+c283d685
+20600000
+6fe0c853
+c000567d
+c001d67f
+20600000
+6fe0c853
+c0005681
+c001d683
+20600000
+70485582
+20600000
+70485581
+20600000
+70485580
+20600000
+70485583
+20600000
+6fe0c855
+793ffe07
+67e0c855
+c000568d
+c000d690
+c0015693
+c001d696
+20600000
+6fe0c854
+c001d699
+20600000
+6fe0c854
+c0005699
+20600000
+6fe0c854
+c001d69d
+20600000
+6fe0c854
+c000569d
+20600000
+6fe0c856
+1fe0fe01
+67e0c856
+20600000
+6fe0c856
+1fe0ffff
+67e0c856
+20600000
+6848c64a
+20406eb2
+6848c64b
+20406eb2
+6848c652
+20406eb2
+6848c653
+20206eb2
+6848c64a
+204055ab
+6848c64b
+204055ab
+6848c652
+204055ab
+6848c653
+202055ab
+6fe1484b
+207a0000
+70485701
+7048580a
+20600000
+da604858
+da4056b9
+202042e0
+70485700
+20600000
+6fe0c649
+c17f8000
+da200000
+70497705
+6848c649
+204056c8
+67e0c974
+6fe0c654
+c07fd6d8
+204058df
+1a227e00
+c282d6e0
+202056e7
+6fe44713
+c295d6de
+6fe0c974
+1fe22600
+6fe0c654
+c07fd931
+6fe0c97b
+243a56db
+20406ee6
+6848c654
+2020d6de
+6848c654
+20406ef7
+6848c649
+6fe0c974
+20205925
+6848c649
+204055b5
+202056c5
+70487a00
+70497400
+20600000
+6fe0c974
+20205925
+6fe0c87a
+c1008000
+70487a01
+6fe44713
+c3940000
+c39b0000
+202056f7
+6fe0c87a
+c1000000
+70487a00
+6fe44713
+c29456ee
+c29b56ee
+20600000
+6fe0c87b
+243a56f2
+6fe0c97d
+245a56f7
+70487b00
+6fe0c4eb
+67e0c97d
+67e0c97c
+20600000
+44bdc00f
+20405728
+20740000
+6fe0c690
+1fe20400
+6fe44713
+c28bd704
+18427e00
+1fe0fe01
+1fe17e03
+67e0c690
+20405744
+20205cac
+6fe0c98a
+243a5721
+6fe44713
+c28e5715
+18427e00
+c1008000
+c0005711
+c001570f
+20600000
+58000002
+20205701
+58000000
+20205701
+58000001
+20205701
+58000003
+20205701
+18427e00
+c1008000
+c0005711
+c0015713
+c001d70f
+20600000
+18427e00
+c1010000
+c0005713
+c000d70f
+c001d70d
+20600000
+6fe44713
+c28e571b
+18427e00
+c1010000
+c000570d
+c000d70f
+20600000
+78547c00
+6fe44713
+c3958000
+20205eb1
+6fe44713
+c2945730
+c29b5737
+20600000
+6fe0c87a
+c1808000
+da60497d
+da405735
+202042e0
+70487b01
+20205ec6
+6fe0c87a
+c1808000
+da60497c
+da40573c
+202042e0
+70487b01
+20205ba3
+6fe44713
+c38e0000
+6fe0c690
+c1818000
+70469000
+20600000
+44be400f
+2040573e
+2040613a
+44bec00f
+6fe0c957
+c006576b
+c001d785
+c005d799
+6fe0c690
+c0005753
+c000d751
+c0015755
+c001d757
+6848c869
+20205758
+6848c868
+20205758
+6848c86a
+20205758
+6848c86b
+6fe0c957
+c0025767
+c002d767
+c0045769
+c003d769
+c0035767
+6048c879
+58000006
+204069e5
+1fe104f8
+6fe0c879
+9840fe00
+1fed7e00
+1fe0fe06
+202069e4
+184085ff
+2020575e
+18408402
+2020575e
+6fe0c690
+c000576f
+c000d775
+c0015778
+6fe0c874
+1fe22200
+2020577d
+6fe0c875
+1fe22200
+2020577d
+6fe0c876
+1fe22200
+2020577d
+6fe0c877
+1fe22200
+2020577d
+6fe0c878
+1fe22200
+5800c309
+204069e4
+1a227e00
+1fed7e00
+1fe0fe23
+204069e4
+58000009
+202069e4
+6fe0c690
+c000578c
+c000d78a
+c001578e
+c001d790
+6fe0c86d
+20205791
+6fe0c86c
+20205791
+6fe0c86e
+20205791
+6fe0c86f
+67e0c879
+1fed7e00
+1fe22200
+1fe0fe0d
+204069e4
+1a227e00
+1fe0fe0e
+202069e4
+6fe0c690
+c00057a0
+c000d79e
+c00157a2
+c001d7a4
+6fe0c871
+20205791
+6fe0c870
+20205791
+6fe0c872
+20205791
+6fe0c873
+20205791
+2040584c
+6fe0c987
+243a5860
+6fe0c982
+243a585f
+20405888
+204057bc
+2040552f
+204057b7
+1a227e00
+6848c84e
+67e0c84e
+67e0c846
+9842fe00
+1fe67c00
+20628000
+20207dba
+c6930000
+1a227e00
+207a0000
+67e0c846
+20207dba
+70497900
+70497a00
+70497b00
+1fe22400
+6848c644
+6fe0c647
+98467c00
+2022d7cc
+6fe0c648
+98467c00
+2022d7d1
+6848c645
+6fe0c647
+98467c00
+2022d7e0
+202057e3
+6848c645
+6fe0c648
+98467c00
+2022d7d6
+202057d9
+6848c645
+6fe0c647
+98467c00
+2022d7db
+202057de
+204057ef
+204057fb
+202057e5
+204057ef
+202057e1
+204057f8
+204057f2
+202057e5
+204057f8
+202057e4
+204057f2
+204057fe
+202057e5
+204057fb
+204057f5
+20405801
+20405804
+6fe0c97a
+207a0000
+6fe0c979
+207a0000
+70497b01
+6fe0c84e
+1fe22200
+20600000
+1a417e09
+c004d80c
+20600000
+1a417e09
+c009580c
+20600000
+1a417e09
+c005580c
+20600000
+1a417e09
+c008d80c
+20600000
+1a417e14
+c00a580c
+20600000
+1a417e14
+c009580c
+20600000
+1a417e18
+c00c580a
+20600000
+18417e07
+c001d80a
+c002d80a
+c003580a
+c003d80a
+20600000
+70497a01
+20600000
+70497901
+20600000
+6fe44713
+c40b8000
+c3165816
+6fe0c658
+20405943
+20405824
+6848c658
+202055b5
+6fe0c658
+20405946
+70498b00
+6848c658
+6fe0c988
+2040583d
+20405828
+6848c658
+202055b5
+204055b5
+6fe0c989
+c1008000
+70498901
+202056f7
+70498b00
+6848c658
+6fe0c988
+20405833
+67e0c988
+6fe0c98a
+203a582f
+6fe0c989
+c1008000
+70498901
+202056f7
+6fe0c989
+c1000000
+70498900
+20600000
+1fe3fe00
+1fe22400
+20406ee6
+7920a400
+1a417e07
+6848c98b
+18420e00
+c003d848
+c000584a
+20600000
+1fe3fe00
+1fe22400
+204055b1
+20406ee6
+7920a400
+1a417e07
+6848c98b
+18420e00
+c003d848
+c000584a
+20600000
+70498a01
+20600000
+70498a00
+20600000
+da400000
+6fe0c657
+c17f8000
+6fe44713
+c3175859
+6848c657
+204055b5
+6848c657
+20406ee6
+7920a400
+1a427e00
+67e0c987
+20600000
+6848c657
+204055b1
+6848c657
+20406ee6
+7d20a400
+20205856
+c0025878
+2040587b
+6fe24983
+d84000a0
+98408400
+1c427e00
+98467c00
+24610000
+67e24983
+6fe0c982
+c000586e
+c000d871
+c0015874
+c001d876
+20600000
+70498201
+70484601
+20207dba
+70498202
+70484600
+20207dba
+70498203
+2020586f
+70498200
+20205872
+70498200
+70484600
+20600000
+684a4983
+1c427e00
+98467c00
+24415880
+20600000
+58000000
+67e24983
+20600000
+20405895
+20405888
+58000000
+67e1c96f
+20600000
+44bf400f
+6fe0c73f
+245a5895
+da200000
+20405898
+204058a1
+204058aa
+204058b3
+204058cf
+2040584c
+204058ec
+1a227e00
+20600000
+58030303
+67e1c96f
+20600000
+6fe0c644
+20405943
+70497700
+6848c644
+6fe0c96f
+20405925
+67e0c96f
+6848c644
+202055b5
+6fe0c646
+20405943
+70497701
+6848c646
+6fe0c970
+20405925
+67e0c970
+6848c646
+202055b5
+6fe0c645
+20405943
+70497702
+6848c645
+6fe0c971
+20405925
+67e0c971
+6848c645
+202055b5
+6fe0c647
+c17f8000
+70497703
+6fe0c972
+1fe22600
+6848c647
+6fe0c654
+c07fd8c8
+20406ee6
+2020d8c4
+6848c654
+20406ef7
+6848c647
+6fe0c972
+20405925
+67e0c972
+202058df
+6848c654
+6fe0c972
+20405925
+202058c2
+6fe0c647
+20405946
+6848c647
+20405931
+67e0c972
+6848c647
+202055b5
+6fe0c648
+c17f8000
+70497704
+6fe0c973
+1fe22600
+6848c648
+6fe0c654
+c07fd8e5
+20406ee6
+2020d8e1
+6848c654
+20406ef7
+6848c648
+6fe0c973
+20405925
+67e0c973
+6848c654
+202055b5
+6848c654
+6fe0c973
+20405925
+202058de
+6fe0c648
+20405946
+6848c648
+20405931
+67e0c973
+6848c648
+202055b5
+70496c00
+6fe0c656
+c17f8000
+6fe44713
+c40b0000
+c297d8fd
+70497707
+6848c656
+6fe0c976
+20405925
+67e0c976
+1a227e00
+c283d917
+2040591a
+6fe0c96d
+67e0c96e
+20600000
+70497707
+6fe0c976
+1fe22600
+6848c656
+6fe0c654
+c07fd90f
+20406ee6
+2020d90b
+6848c654
+20406ef7
+6848c656
+6fe0c976
+20405925
+20205913
+6848c654
+6fe0c976
+20405925
+20205913
+6fe0c656
+20405946
+6848c656
+20405931
+67e0c976
+204058f7
+6848c656
+202055b5
+70496d01
+2040591d
+202058fa
+70496d00
+6fe0c96e
+207a0000
+70496c01
+20600000
+20406ee6
+6848c977
+18420e00
+2020d92f
+f93fa200
+20600000
+1fe3fe00
+1fe22400
+20406ee6
+7920a400
+1a417e07
+6848c977
+18420e00
+c003d92f
+c0005923
+20600000
+f9202200
+20600000
+44bfc00f
+1a627e00
+67e0c978
+1fe3fe00
+1fe22400
+18422600
+204055b1
+1a620400
+20406ee6
+7d20a400
+2040593d
+2020592a
+6848c978
+18410401
+1a417e01
+98467c00
+2422dabc
+20600000
+c17f8000
+d840003f
+20206f21
+c17f8000
+d840003e
+20206f21
+44c04010
+204055f6
+20758000
+204059e7
+44c0c010
+20405958
+c018595f
+c018d9c6
+c02c59cf
+20405955
+20001af4
+2020594d
+6848c64c
+204069c7
+202055fb
+58000001
+204069e5
+67e0c85a
+58000000
+204069e5
+67e0c859
+20600000
+6fe0c85a
+c02d596e
+c06c5974
+c068d968
+c069598c
+c0015993
+c02a599c
+c02859c3
+2020594d
+58000049
+204069e5
+c050d96c
+20205983
+7049570c
+20600000
+70495705
+204059da
+20407c95
+da6048d6
+20405995
+20205747
+58000016
+204069e5
+1fe67cbd
+2422d949
+58000019
+204069e5
+1fe67c55
+2422d949
+5800001b
+204069e5
+1fe67c1d
+2422d949
+70495706
+da60491a
+20205995
+70495700
+da604890
+20405995
+da60489a
+20405995
+58000943
+204069e4
+da6048b4
+20205995
+70495702
+da604886
+20405995
+da60489a
+20405995
+da6048b4
+20205995
+70495703
+da60487c
+efe10013
+d840ffff
+98467c00
+20628000
+204069e4
+1a60a602
+20205995
+204059d8
+58009a5b
+204069e4
+5800000d
+204069e5
+1fe67c12
+2022d9b0
+1fe67c0a
+2422d9b3
+5800000e
+204069e5
+1fe67ce5
+2422d94d
+58000010
+204069e5
+1fe67ca5
+2022d9b0
+204059c0
+70495708
+20600000
+70495709
+da6048fc
+20205995
+1fe67c10
+2422d94d
+5800000e
+204069e5
+1fe67cc5
+2422d94d
+58000010
+204069e5
+1fe67c38
+2422d94d
+204059c0
+7049570a
+20600000
+5800005b
+204069e4
+202059d6
+70495707
+da60493a
+20205995
+204059e7
+6fe0c85a
+c03859cd
+c00059cb
+2020594d
+70495701
+20600000
+70495704
+20600000
+204059e7
+6fe0c85a
+c02cd9d3
+2020595f
+7049570b
+da60492a
+20205995
+58000009
+202069e4
+58005a09
+202069e4
+d8408006
+6fe0c957
+c085d9de
+d8409706
+18427e00
+204069e4
+20002ee0
+20600000
+da604946
+6fe0c957
+c1858000
+da60494e
+20600000
+44c14010
+204055f6
+204059da
+204059e2
+20405995
+20205747
+44c1c010
+20405949
+204055f6
+d8400806
+6fe0c957
+c085d9f4
+d8401f06
+18427e00
+202069e4
+6fe0c420
+c1800000
+6fe0c957
+c0005a02
+c000da02
+c0045a02
+c0015a02
+c001da26
+c0025a02
+c0035a4b
+c005da44
+20205a02
+20405a6d
+78547c00
+6fe0c659
+c07fda09
+6848c659
+20406ee6
+24608000
+58000000
+204069e5
+c0985a1c
+58000002
+204069e5
+c4038000
+20405a84
+6fe0c847
+20405a7c
+67e14847
+6fe0c849
+20405a7c
+67e14849
+6fe0c958
+c0005a1e
+c000da20
+c0015a22
+c001da24
+20600000
+c018da0c
+20205955
+20405a56
+20205a8b
+20405a5e
+20205a8b
+20405a5a
+20205a8b
+20405a66
+20205a8b
+20405a6d
+6fe0c659
+c07fda2c
+6848c659
+20406ee6
+24608000
+58000000
+204069e5
+c0985955
+58000002
+204069e5
+c4038000
+20405a84
+20405a42
+67e0c84d
+1ff1fe00
+20405a80
+67e0c848
+6fe0c84d
+1fe17e0f
+20405a80
+67e0c84a
+6fe0c958
+c0005a56
+c000da5e
+c0015a5a
+c001da66
+20600000
+58000012
+202069e5
+20405a6d
+6fe0c659
+c07fda4a
+6848c659
+20406ee6
+24608000
+20205a2f
+20405a6d
+78547c00
+58000002
+204069e5
+c4038000
+58000008
+204069e5
+203a5a0f
+58000000
+67e34847
+20600000
+6fe14847
+1fe67e00
+67e14847
+20207dba
+6fe14849
+1fe67e00
+67e14849
+20207dba
+6fe14849
+1fe67e00
+67e14849
+6fe14847
+1fe67e00
+67e14847
+20405a68
+20207dba
+20405a68
+20207dba
+6fe14849
+68494847
+67e14847
+60494849
+20600000
+6fe0c860
+205a5a84
+70486001
+20600000
+70495601
+204029c9
+20205949
+6fe0c659
+c1ff8000
+6fe0c77d
+c1808000
+58000000
+67e0c77d
+67e24847
+20205a73
+c4038000
+d840ff00
+9841fe00
+20600000
+c4018000
+d84000f0
+9841fe00
+20600000
+dfe00003
+204069e5
+67e14847
+dfe00004
+204069e5
+67e14849
+20600000
+6848c64d
+20406ee6
+20608000
+5800000a
+204069e5
+200003e8
+20205a8b
+58008100
+202069e4
+70478fff
+7043f334
+580f0f0f
+67e1c2db
+67e1c2de
+202054a9
+44c24010
+20405c6f
+20405aa8
+6fe0c666
+c000daa1
+c0015aa3
+20600000
+6fe34668
+20205aa4
+6fe34675
+684b46e6
+98467c00
+2022dc1a
+202054a0
+70478f5a
+20600000
+6fe144e9
+c284c31f
+20205c39
+58000000
+67e14781
+6fe144e9
+c284c31f
+20600000
+6fe44713
+c40d8000
+24345aba
+6fe0c959
+1fe0fe01
+1fe17e0f
+67e0c959
+247a0000
+70495900
+20207dbc
+6fe0c659
+c1ff8000
+7040c000
+70477e1e
+20600000
+44c2c010
+1a627e00
+c00a5ad0
+c00adae0
+c0085c15
+c018daed
+c014daef
+c0195af1
+c01f4329
+c0205afc
+c01ce084
+c01d6053
+c01e6075
+c0225b10
+20600000
+2040618e
+70477d00
+20405a73
+70479401
+20406042
+6fe0c795
+243a5ad8
+70479614
+6fe143f1
+793ffe00
+67e143f1
+70484500
+6fe147be
+67e147c0
+20405c0b
+20205c39
+58000000
+67e147c0
+70479400
+d8400006
+6fe44713
+c28ddae7
+d8400007
+604942d3
+604942d5
+7047c200
+70495600
+204029cb
+20205b76
+d8e00002
+20205af8
+70066f12
+20207834
+6fe0c795
+c000daf4
+20205af6
+20405aef
+70484414
+d8e00001
+20205af8
+6fe0c843
+f9207e00
+67e0c843
+20600000
+6fe1433c
+c1000000
+6fe0816a
+1feb7e00
+1fe67c0c
+20610000
+58000009
+67e142d3
+67e142d5
+20405aef
+7047c201
+20600000
+6fe0c795
+247a0000
+6fe0c398
+1fe67e22
+24628000
+70484400
+d8e00000
+20205af8
+6fe081a2
+1fe67c0c
+24215b06
+67e142d3
+67e142d5
+6fe081a4
+203a5b1d
+6848c96b
+98467c00
+20215b1d
+6fe081a4
+67e0c0c0
+20205b1f
+6fe0c96b
+67e0c0c0
+7047c200
+20600000
+70484300
+20600000
+44c34010
+20402a28
+247a0000
+6fe0c78f
+c07fdb2b
+6fe0c843
+1fe17e03
+c1818000
+6fe0c956
+205a5a71
+6fe44713
+c280db5b
+c2805b5b
+c282db5b
+c2835b5b
+20405601
+20405ab2
+24740000
+20405abc
+20405a74
+204056b1
+6fe44713
+c30b5b3c
+6fe0c96c
+c000db3d
+20205b5d
+6fe0c96d
+203a5b4d
+6fe4472b
+67e40670
+6fe0c72a
+c001db4f
+c0015b52
+7047b408
+684947b5
+6fe0c7b4
+1fe22200
+20402dee
+6848c7b4
+18427200
+d8c00670
+20207cda
+6fe44734
+20205b40
+7047b403
+684947b7
+20205b46
+7047b402
+684947b9
+20205b46
+da200001
+684947bb
+20402dee
+6fe0c7bd
+e7e08005
+20600000
+58000000
+67e3c846
+7047b407
+6fe3c846
+67e38670
+6849439b
+20205b46
+70479500
+6fe1c79a
+67e1c34d
+20405b6b
+58000005
+e7e08006
+d8c047a0
+20405b72
+20207870
+da204349
+efe08011
+207a0000
+98c0a200
+efe08006
+c1008000
+20205b6c
+d8a04354
+df200013
+20407cda
+20202969
+20405b7b
+6fe143ef
+c283db81
+c28042fc
+20205c1a
+58000000
+67e4484f
+e7e20005
+70486000
+70429a00
+20600000
+20405b21
+6fe143ef
+c28042fc
+202054cd
+44c3c010
+2040614d
+2040553d
+20406110
+204061b1
+2040611e
+2040328e
+20403531
+20405fdd
+2040572c
+20405b9b
+20405bab
+20405bce
+20405bd3
+20405be1
+20405bee
+20405be4
+20405bfb
+20405bfe
+204056b6
+20405c0e
+20205c05
+6fe44713
+c29bdb9e
+20600000
+6fe0c97f
+c1808000
+da60497c
+da405ba3
+202042e0
+6fe0c666
+c1000000
+6fe44713
+c3830000
+d8e00006
+20405f00
+204042d0
+20205c15
+6fe0c666
+c0005bb1
+6fe44713
+c41a8000
+6848c727
+20205bb4
+6fe44713
+c4190000
+6848c728
+6048c97e
+20405888
+1fe17e07
+6848c97e
+98467c00
+2022dbc0
+6fe0c4eb
+67e0c981
+6fe0c980
+c1000000
+70498000
+20600000
+20405bc5
+6fe0c980
+c1008000
+70498001
+20600000
+da406047
+da604981
+6fe0c666
+c00042e0
+da405ba3
+204042e0
+6fe0c981
+c000def2
+20600000
+da604790
+da405bd1
+202042e7
+20405c39
+202054cd
+da604845
+da405bd9
+204042e0
+6fe0c845
+c000c313
+20600000
+6fe0c78f
+c07fda9a
+6fe0c77f
+243a5f1b
+6fe44713
+c299dc1a
+c29f603f
+202054cd
+da604844
+da405b0e
+202042e0
+6fe0c794
+207a0000
+da604796
+da405be9
+202042e0
+6fe0c795
+247a0000
+6fe0c2fc
+c1800000
+20202fcd
+6fe44713
+c39d8000
+da6047c0
+da405bf3
+202042e0
+6fe147be
+67e147c0
+20205b55
+6fe0c843
+c3810000
+20405aef
+d8e00000
+20205af8
+da604792
+da4054cd
+202042e0
+da60477e
+da405c01
+202042e0
+6fe0c96b
+67e0c0c0
+70477d01
+20600000
+da604781
+da405c08
+202042e7
+6fe0c666
+c0005ff2
+20205aad
+6fe14725
+67e14781
+20600000
+da6046f3
+da405c11
+202042e0
+20405ca6
+6fe0c793
+243a5ed1
+20600000
+280ffe26
+2040e018
+20405aad
+20405b21
+20205c1a
+44c44011
+204061ab
+6fe144e9
+2feffe0b
+2040dc3e
+20405aa8
+6fe144e9
+c285dc2a
+6fe44713
+c3045c2a
+68494695
+18408401
+60494695
+604942dc
+180a7e00
+67e0c2db
+6fe1c797
+67e1c2de
+2040432d
+6fe14638
+67e14790
+58000000
+67e14781
+67e147c0
+67e0c845
+67e0c792
+67e0c956
+d8e00002
+20405f00
+20405ef4
+20205b62
+44c4c011
+d8e00006
+20405f04
+70479200
+20205c3e
+58000000
+67e0c845
+67e14790
+20207876
+44c54011
+6fe44713
+c4010000
+d8e00002
+20405f04
+20405c4a
+20405c59
+20205ca3
+6fe08032
+c01a5c4d
+20600000
+67e0c95a
+6fe30178
+67e3495b
+6fe3c95a
+d8c04667
+df200003
+e8438006
+98467c00
+2022dc69
+18c08c16
+c2005c53
+20600000
+da204667
+6fe0c666
+1fe0ffff
+1feffe1d
+9a20a200
+6fe08032
+e7e08011
+c01a5c62
+20600000
+6fe30178
+e7e30005
+d8c0428a
+20407c8f
+6fe342db
+e7e30005
+20600000
+18c08dfa
+18c20a00
+684b495b
+18408403
+e0430005
+20600000
+da204667
+6fe0c666
+c1000000
+1fe0ffff
+1feffe1d
+9a20a200
+efe08011
+67e0c3f3
+c01a5c79
+20600000
+efe30006
+67e34116
+d8a0428a
+20407c8f
+efe30006
+67e342db
+20600000
+44c5c011
+6fe1468e
+d840aa55
+98467c00
+2022dc8f
+6049468e
+20405c9c
+6fe0c9a1
+67e0c666
+6fe245e4
+67e245e8
+67e2458f
+6fe0c651
+67e0c690
+20600000
+20405c94
+6fe24691
+67e245e8
+67e2458f
+20600000
+6fe44713
+c4078000
+6fe149fa
+1fe22400
+20405e51
+6fe0c9d4
+205a5c8c
+20600000
+6fe342db
+67e3466e
+1fe0ff00
+67e3467b
+1fe0ff00
+67e34688
+20600000
+6fe0c6f4
+67e0c6f3
+20600000
+44c64011
+6fe44713
+c289dcb1
+c2895cb9
+c28a5cc0
+20600000
+44c6c011
+6fe44713
+c289dcb5
+c28a5d3c
+20600000
+d8400080
+da204666
+da400000
+20206cd3
+d8400001
+da204690
+da40005a
+20206cd3
+20406c20
+20405d7b
+20405d90
+20405d75
+20405d93
+20405d82
+202055f6
+20405cc3
+20405ce5
+20205d26
+6a4149e2
+1a422600
+20405dc0
+6fe0c9a1
+203a5ccf
+67e0c9a0
+1a60a601
+6fe149e4
+9a667c00
+24610000
+1a622400
+20205cc5
+6fe0c9a0
+1fe17ef0
+203a5cd8
+6fe0c666
+67e0c9a2
+df200001
+1a622400
+da2049a2
+20206b45
+6fe0c9a0
+6848c666
+98467c00
+20628000
+18520400
+9840fe00
+67e0c9a2
+1a627e00
+684949e2
+98467c00
+2022dcd4
+1a60a7ff
+20205cd4
+6fe0c666
+c0005cea
+c000dcfe
+c0015d12
+20600000
+6a4149e6
+1a422600
+20405e29
+6fe249da
+203a5cf6
+67e249d6
+1a60a604
+6fe149e8
+9a667c00
+24610000
+1a622400
+20205cec
+6fe249d6
+684a4691
+98467c00
+20628000
+df200004
+da204691
+1a622400
+20206b45
+6a4149ea
+1a422600
+20405de1
+6fe349a9
+203a5d0a
+67e349a3
+1a60a606
+6fe149ec
+9a667c00
+24610000
+1a622400
+20205d00
+6fe349a3
+684b4668
+98467c00
+20628000
+df200006
+da204668
+1a622400
+20206b45
+6a4149f2
+1a422600
+20405e05
+6fe349c1
+203a5d1e
+67e349bb
+1a60a606
+6fe149f4
+9a667c00
+24610000
+1a622400
+20205d14
+6fe349bb
+684b4675
+98467c00
+20628000
+df200006
+da204675
+1a622400
+20206b45
+6fe0c666
+c1000000
+6a4149fe
+1a422600
+20405e3d
+6fe149e0
+203a5d34
+67e149de
+1a60a602
+6fe14a00
+9a667c00
+24610000
+1a622400
+20205d2a
+6fe149de
+68494695
+98467c00
+20628000
+df200002
+da204695
+1a622400
+20206b45
+6fe44713
+c4078000
+6a4149fa
+1a422600
+20405e51
+6fe0c9d4
+203a5d4a
+67e0c9d3
+1a60a601
+6fe149fc
+9a667c00
+24610000
+1a622400
+20205d40
+6fe0c9d3
+1fe17ef0
+203a5d53
+6fe0c690
+67e0c9d5
+df200001
+1a622400
+da2049d5
+20206b45
+6fe0c9d3
+6848c690
+98467c00
+20628000
+18520400
+9840fe00
+67e0c9d5
+1a627e00
+684949fa
+98467c00
+2022dd4f
+1a60a7ff
+20205d4f
+20406cbc
+6fe44713
+2feffe09
+2440ecc4
+20405d66
+20205c80
+d8400080
+da204666
+da400000
+20206ce1
+d8400001
+da204690
+da40005a
+20206ce1
+20406c20
+20405d7b
+20405d75
+20406c4d
+20405d82
+20405c80
+202055f6
+580046e6
+d8404666
+98460400
+6fe1c6ec
+da204666
+20600000
+700678ab
+2040705b
+20406c26
+da2046ef
+68488678
+20405d84
+2020705b
+700678b9
+20205d7c
+e0408011
+1ff10400
+e0408005
+1fec8400
+e0408005
+e7e08005
+1a227e00
+67f10084
+58000000
+67f10088
+70800602
+20206be0
+6fe1c6ec
+67e1c419
+20206bfa
+1fe22600
+1a227e00
+1fe0fffc
+1fe22400
+efe20012
+67e246ef
+1a627e00
+20406c3c
+6fe246ef
+e7e20012
+20600000
+6fe44713
+c4090000
+20405d82
+204069e0
+6848c421
+20406ef3
+6848c426
+202055b1
+20405e43
+20405db4
+20405dcc
+20405e2f
+df200002
+6fe14a02
+1fe22400
+da20468e
+20406b74
+20405c80
+df200002
+da20468e
+6a414a02
+20206b45
+6a4149e2
+1a422600
+20405dc0
+6fe0c9a1
+203a5dc3
+67e0c9a0
+1a60a601
+6fe149e4
+9a667c00
+24215dc3
+1a622400
+20205db6
+df200001
+da2049a1
+20206b74
+6fe0c9a0
+1fe20400
+1fe17ef0
+203a5dc9
+1ff1fe00
+20205dca
+18427e00
+67e0c666
+20600000
+6fe0c666
+c0005e1d
+c000ddd1
+c0015dd3
+20600000
+20405dd5
+20205de7
+20405df9
+20205e0b
+6a4149ea
+1a422600
+20405de1
+6fe349a9
+203a5de4
+67e349a3
+1a60a606
+6fe149ec
+9a667c00
+24215de4
+1a622400
+20205dd7
+df200006
+da2049a9
+20206b74
+6fe349a3
+67e34668
+20600000
+6a4149ee
+1a422600
+20405df3
+6fe349b5
+203a5df6
+67e349af
+1a60a606
+6fe149f0
+9a667c00
+24215df6
+1a622400
+20205de9
+df200006
+da2049b5
+20206b74
+6fe349af
+67e3466e
+20600000
+6a4149f2
+1a422600
+20405e05
+6fe349c1
+203a5e08
+67e349bb
+1a60a606
+6fe149f4
+9a667c00
+24215e08
+1a622400
+20205dfb
+df200006
+da2049c1
+20206b74
+6fe349bb
+67e34675
+20600000
+6a4149f6
+1a422600
+20405e17
+6fe349cd
+203a5e1a
+67e349c7
+1a60a606
+6fe149f8
+9a667c00
+24215e1a
+1a622400
+20205e0d
+df200006
+da2049cd
+20206b74
+6fe349c7
+67e3467b
+20600000
+6a4149e6
+1a422600
+20405e29
+6fe249da
+203a5e2c
+67e249d6
+1a60a604
+6fe149e8
+9a667c00
+24215e2c
+1a622400
+20205e1f
+df200004
+da2049da
+20206b74
+6fe249d6
+67e24691
+20600000
+6fe0c666
+c1000000
+6a4149fe
+1a422600
+20405e3d
+6fe149e0
+203a5e40
+67e149de
+1a60a602
+6fe14a00
+9a667c00
+24215e40
+1a622400
+20205e33
+df200002
+da2049e0
+20206b74
+6fe149e0
+67e14695
+20600000
+6fe44713
+c307dc8c
+6a4149fa
+1a422600
+20405e51
+6fe0c9d4
+203a5e54
+67e0c9d3
+1a60a601
+6fe149fc
+9a667c00
+24215e54
+1a622400
+20205e47
+df200001
+da2049d4
+20206b74
+6fe0c9d3
+1fe20400
+1fe17ef0
+203a5e5a
+1ff1fe00
+20205e5b
+18427e00
+67e0c690
+20600000
+44c74011
+2040620e
+204078aa
+204056bb
+2040580e
+20405e66
+20405eb6
+20405ee7
+2020561c
+6fe44713
+c294de6b
+c29bde6b
+20600000
+70497503
+20405e6d
+20205e7e
+44c7c011
+6fe0c655
+c17f8000
+da200000
+70497706
+6848c655
+20405e81
+67e0c975
+6fe0c654
+c07fde7c
+202058df
+20405e6d
+1a227e00
+c2835ea4
+20205e97
+6848c655
+204055b5
+1a227e00
+c2835ea2
+20205e97
+6fe44713
+c296de8d
+6fe0c975
+1fe22600
+6fe0c654
+c07fd931
+6fe0c97b
+243a5e8a
+20205e8f
+70497f00
+70497500
+20600000
+6fe0c975
+20205925
+20406ee6
+6848c654
+2020de8d
+6848c654
+20406ef7
+6848c655
+6fe0c975
+20205925
+6fe0c97f
+c1000000
+70497f00
+6fe44713
+c39a0000
+6fe0c97c
+1fe67c14
+24415ec6
+6fe0c4eb
+67e0c97c
+20600000
+20405eae
+20740000
+6fe0c97f
+c1008000
+70497f01
+6fe44713
+c29a5ba3
+6fe0c845
+207a0000
+6fe0c63c
+67e0c845
+20600000
+78547c00
+6fe44713
+c3968000
+6fe0c96f
+207a0000
+6fe0c970
+207a0000
+20207dba
+44c84012
+6fe44713
+c4150000
+6848c65a
+204055b5
+6848c65a
+20406ee6
+2020dec2
+6fe0c666
+c1008000
+70466601
+20205aaa
+6fe0c666
+c1000000
+70466600
+20206018
+44c8c012
+6fe0c71b
+c1008000
+20405ed3
+6048c666
+20405eea
+20405aaa
+204042d0
+20405eec
+70479301
+20205ca3
+20405eea
+20206ca3
+6848c666
+18408401
+6fe44713
+c288deda
+18467c02
+24415ee1
+20600000
+6fe0c71b
+1fe0ffff
+98467c00
+24415edf
+20600000
+d8400000
+20600000
+d8400001
+20600000
+d8400001
+da204666
+da400000
+20206cd3
+6fe44713
+c41a0000
+20205e6b
+d8e00000
+20205f00
+d8e00000
+20205f04
+d8e00003
+20205f00
+d8e00003
+20205f04
+d8e00005
+20205f00
+d8e00005
+20205f04
+d8e00015
+20205f00
+d8e00018
+20205f00
+d8e0000e
+20205f00
+d8e0000c
+20205f00
+d8e0001c
+20205f00
+6fe44713
+f9207e00
+67e44713
+20600000
+6fe44713
+f93ffe00
+67e44713
+20600000
+58000000
+67e4472a
+67e44733
+6fe0c729
+c0015f12
+c001df14
+c0025f19
+58070008
+67e4472b
+20600000
+58040005
+20205f10
+58022303
+67e4472a
+58000003
+67e44733
+20600000
+5800cd03
+20205f15
+44c94012
+6fe0c77f
+1fe0ffff
+67e0c77f
+6848c666
+18467c01
+2442ded3
+6048c666
+20405ee3
+20405c59
+202054a0
+44c9c012
+6fe0c957
+c1018000
+6fe44713
+c41c0000
+6fe24847
+207a0000
+20405fcd
+58000003
+20405fc3
+205a5fbf
+245a5fc1
+58000002
+20405fc8
+205a5fbf
+6fe0c861
+c000df3c
+6fe44713
+c41c0000
+df200005
+d8a04861
+20207ca1
+20405f50
+6fe14862
+67e1070b
+6fe14847
+67e1070d
+20405f89
+6fe1070b
+67e14862
+6fe1070d
+67e14847
+6fe14864
+67e1070b
+6fe14849
+67e1070d
+20405f91
+6fe1070b
+67e14864
+6fe1070d
+67e14849
+20600000
+6fe44713
+c41c8000
+44ca4012
+6fe14862
+67e10712
+20405f64
+67e14862
+6fe14847
+67e10712
+20405f72
+67e14847
+6fe14864
+67e10712
+20405f64
+67e14864
+6fe14849
+67e10712
+20405f72
+67e14849
+20600000
+6fe08713
+203a5f67
+20205f6c
+6fe08712
+20405f7f
+67e08712
+6fe10712
+20600000
+6fe08712
+20405fbb
+20405f7f
+205a7dc8
+20405fb7
+20205f6a
+6fe08713
+203a5f75
+20205f79
+6fe08712
+20405f84
+67e08712
+20205f6a
+6fe08712
+20405fbb
+20405f84
+205a7dc8
+20405fb7
+20205f6a
+1feffe04
+1fe6fc05
+20407d62
+1807fe00
+20600000
+1feffe0c
+1fe6fc0a
+20407d62
+1807fe00
+20600000
+6fe1070b
+6849070d
+9840fe00
+6848c866
+9840fe00
+1fe10401
+6048c866
+20205f99
+6fe1070b
+6849070d
+9840fe00
+6848c867
+9840fe00
+1fe10401
+6048c867
+20205f99
+67e1870f
+2feffe10
+2020dfa3
+6fe08710
+c07fdfaa
+6fe0870f
+1fe37e00
+67e1070b
+67e1070d
+20600000
+6fe08710
+c0005fa7
+6fe1870f
+20205f9f
+70071100
+6fe0870f
+20205f9f
+6fe0870f
+20405fb5
+67e0870b
+67e0870d
+203a5fb3
+580000ff
+67e0870c
+67e0870e
+20600000
+58000000
+20205fb0
+20405fbb
+1fe37e00
+20405fbc
+1fe67e00
+67e08712
+20600000
+1fe67e00
+67e08684
+6fe08684
+20600000
+70486100
+20600000
+70486101
+20600000
+9a267c00
+24217dc8
+9a467c00
+24217dc8
+20207dca
+9a267c00
+24610000
+9a467c00
+24610000
+20207dca
+6fe14847
+20405fd4
+1fe22200
+6fe14849
+20405fd4
+1fe22400
+20600000
+67e1070d
+6fe0870e
+c07fdfda
+6fe0870d
+1fe17eff
+20600000
+6fe1070d
+1fe67e00
+20205fd8
+da60461f
+da405fe0
+202042e0
+6fe24613
+67e245af
+70477d01
+20600000
+6fe0c740
+c0005fec
+c000dfee
+c0015fe9
+c001dff0
+580ea600
+67e24613
+20600000
+5805e740
+20205fea
+580927c0
+20205fea
+58124f80
+20205fea
+44cac012
+70460000
+20403647
+5fffffff
+67e245af
+58000000
+67e3c846
+70473f01
+204059ed
+204054dc
+2020622b
+6fe0c73f
+245a6001
+70473f00
+20600000
+2040594c
+6fe44713
+c41e0000
+6fe0c64a
+d8400040
+20406f21
+6fe0c64b
+d8400040
+20206f21
+2040600e
+6fe0c73f
+243a6235
+20203610
+6fe245e8
+684a45e4
+98467c00
+2022e013
+20206016
+70414300
+704141aa
+20600000
+704143ff
+20600000
+793f8026
+7045fc00
+d8e00001
+20205f04
+6fe44713
+c308e02a
+20406195
+204054ac
+20346067
+6fe44713
+c298602f
+c318e02f
+20405883
+1a217e07
+6848c728
+98467c00
+2022e047
+2020602f
+6fe0c77f
+243a5f1b
+20600000
+204054ac
+20346038
+70466600
+6fe14721
+67e145de
+7045e202
+20203534
+6fe145d6
+67e145de
+7045e204
+20203534
+6fe0c666
+c0006067
+20405aa8
+20406018
+70466601
+20405c6f
+202054a0
+204054ac
+203454cd
+20205c1a
+204054ac
+20740000
+6fe44713
+c29f5ca3
+20600000
+20406195
+7045e200
+d8e00001
+20405f00
+58000000
+67e145de
+20405c39
+70458901
+6fe44713
+c30b3291
+70458902
+20203291
+6fe0c600
+243a5ff2
+6fe0c5e2
+c001605f
+c002606b
+c001e070
+20406018
+6fe0c77f
+243a5f1b
+6fe0c666
+c00054cd
+20600000
+6fe44713
+c29f6034
+c2986034
+c31d6067
+6fe24691
+684a46e6
+98467c00
+2022e047
+6fe145dc
+67e145de
+7045e203
+20203534
+6fe44713
+c31f6059
+6fe0c71b
+c000e059
+2020603b
+6fe44713
+c31f6059
+c289e059
+c2896059
+20206035
+6fe2458f
+67e245e8
+67e24691
+2040355a
+20405c0b
+2040618e
+20405a73
+70477d00
+7045fc00
+7045e200
+6fe245e8
+6fe245e4
+98467c00
+20628000
+20206042
+20405a73
+20405a84
+2040618e
+20405c0b
+d8e00001
+20405f04
+58000000
+67e145d8
+67e145de
+67e0c5fc
+67e0c860
+67e0c5e2
+6fe2458f
+67e245e8
+67e24691
+20205ca3
+20407de2
+202023fd
+44cb4012
+c6930000
+20405601
+24740000
+6fe0c77c
+70477c00
+245a6094
+6fe44713
+c30b60a1
+6fe0c96c
+243a60b6
+20405a74
+6fe0c589
+c280e0b0
+6848c51a
+6fe0c846
+9841fe00
+67e0c846
+6848c51f
+6fe0c84b
+9840fe00
+67e0c84b
+6848c520
+6fe0c84c
+9840fe00
+67e0c84c
+70458901
+da200007
+da404846
+6fe1484b
+207a0000
+202036db
+70458902
+da200009
+6fe0c96d
+243a60bc
+da404733
+20600000
+da40472a
+20600000
+58000000
+67e1c6f8
+20600000
+6fe44713
+c4070000
+6fe0c77d
+207a0000
+6fe0c602
+207a0000
+6fe0c6f5
+1fe0fe01
+1fe17e03
+67e0c6f5
+247a0000
+7046f600
+44cbc012
+6fe0c6f6
+1fe0fe01
+67e0c6f6
+1fe67c08
+242160d9
+2040357f
+20403651
+242c60df
+2437e0df
+204060f2
+204060e9
+2040357b
+6fe0c6f7
+1fe0fe01
+67e0c6f7
+c00860e1
+20600000
+20403222
+202060cd
+7046f700
+6fe0c6f8
+c3800000
+79207e00
+67e0c6f8
+6fe14723
+67e14781
+202059ed
+6fe0c602
+203a60be
+7046f700
+6fe0c6f8
+c4000000
+793ffe00
+67e0c6f8
+20405c0b
+2020594c
+2040366e
+6fe0c4f8
+2fe1f008
+24608000
+6fe0c4f9
+c07fdff2
+20600000
+6fe0c793
+247a0000
+20405e78
+204060fe
+20203662
+d8e0000c
+20407cef
+247a0000
+20406106
+2040572c
+d8e0000c
+580000a0
+20207ce1
+6fe44713
+c4140000
+202056bb
+6fe0c666
+c0802421
+6fe0c5ca
+207a0000
+70804202
+708130f8
+20600000
+6fe0c65c
+c17f8000
+6fe14781
+207a0000
+6fe14725
+68494781
+98460400
+6fe1470f
+98467e00
+2021611c
+6848c65c
+202061e5
+6848c65c
+202061e4
+da604711
+da406121
+202042e0
+44cc4013
+6fe0c957
+c001e131
+c005e131
+6848c690
+18408402
+18467c03
+20416134
+24416138
+18427e00
+9fe0fe00
+67e0c70c
+7046fe04
+20406185
+7046fc01
+20206192
+6848c690
+18408401
+20206127
+6fe44713
+c40e0000
+18408401
+20600000
+184085fd
+20600000
+6fe0c661
+c17f8000
+6fe14790
+247a0000
+6fe145d8
+247a0000
+6fe145de
+247a0000
+6fe0c701
+247a0000
+6fe0c712
+203a6121
+67e0c711
+20600000
+78547c00
+6fe0c6fe
+1fe67c04
+24628000
+20207dba
+6fe44713
+c4118000
+c4020000
+6fe14790
+247a0000
+6fe145d8
+247a0000
+6fe145de
+247a0000
+6fe0c701
+247a0000
+20406148
+20740000
+6fe0c70e
+203a6173
+6848c709
+18408401
+6048c709
+6fe0c707
+98467c00
+2441616a
+6fe0c708
+98467c00
+2421616e
+6fe44713
+c29261d9
+c29361d9
+6848c660
+202061e4
+70470901
+6fe0c70e
+1fe0ffff
+67e0c70e
+6fe44713
+c29261eb
+c29361eb
+6848c660
+202061e5
+6fe44713
+c291616e
+2040617e
+2020615c
+7046fb00
+204061fd
+7046fe00
+6fe0c707
+1fe37e00
+67e0c708
+20600000
+6fe0c70d
+67e0c70e
+20600000
+6fe0c6fe
+c000e188
+c001618a
+c001e18c
+6fe0c705
+67e0c706
+20600000
+6fe0c702
+20206186
+6fe0c703
+20206186
+6fe0c704
+20206186
+44ccc013
+6fe0c700
+67e0c701
+7046fc00
+7046fd00
+7046fb01
+20600000
+44cd4013
+6fe0c666
+c1800000
+204061ae
+7046fe01
+20406188
+6fe0c6ff
+207a0000
+6fe0c70a
+202061a9
+6fe0c666
+c1000000
+204061ae
+6fe44713
+c4108000
+7046fe03
+2040618c
+6fe0c6ff
+207a0000
+6fe0c70b
+67e0c70c
+20600000
+7046ff00
+7046fe02
+2040618a
+7046fb01
+7046fc01
+202061d8
+6fe0c6fb
+207a0000
+6fe0c6fc
+c000e1bd
+6fe0c701
+203a61ba
+1fe0ffff
+67e0c701
+202061d9
+7046fb00
+2040617e
+202061eb
+44cdc013
+6fe0c6fe
+207a0000
+c00261c5
+202061c2
+6fe0c6ff
+c000e1c5
+202061c7
+6fe0c70c
+203a61e6
+da604706
+da4061ca
+202042e0
+6fe0c6fe
+c00261d2
+6fe0c6ff
+c000e1d2
+20406181
+6fe0c6fd
+c000e1e8
+202061d6
+6fe0c70c
+1fe0ffff
+67e0c70c
+202061ce
+6fe0c6fe
+c0026208
+7046fd01
+44ce4013
+6fe0c666
+c00061df
+c000e1e1
+c00161e3
+20600000
+6848c65d
+202061e4
+6848c65e
+202061e4
+6848c65f
+20206ef7
+20206ef3
+7046fb00
+7046fe00
+6fe0c6fe
+c0026202
+7046fd00
+44cec013
+6fe0c666
+c00061f1
+c000e1f5
+c00161f9
+20600000
+6848c65d
+6fe44713
+c31061e5
+20206f0f
+6848c65e
+6fe44713
+c31061e5
+20206f0f
+6848c65f
+6fe44713
+c31061e5
+20206f0f
+204061f1
+204061f5
+204061f9
+2040616e
+20206202
+7046fd00
+6fe44713
+c292e1ea
+c29361ea
+6848c661
+202061e5
+7046fd01
+6fe44713
+c292e1d8
+c29361d8
+6848c661
+202061e4
+6fe44713
+c4020000
+6fe0c709
+6848c708
+1fe67c02
+2021621b
+6fe0c666
+c0006218
+70409401
+20600000
+6fe44713
+c38c0000
+202036ca
+6fe0c666
+c00036db
+70409400
+20600000
+6fe08009
+202035cb
+2040621f
+202036e8
+6fe0c843
+2fe00603
+2420fdc8
+2040432b
+20207dca
+6fe144e9
+c284e223
+20600000
+204036b4
+24740000
+70477c01
+204036be
+70477200
+204062aa
+6fe0c73f
+245a54dc
+6fe245af
+20203622
+6fe0c77b
+203a3616
+204036b4
+24740000
+6fe0c772
+70477200
+1fe67c00
+2422e25c
+68494622
+18467c00
+2022e252
+6fe24767
+203a6252
+684a4751
+98460400
+604a4777
+24216255
+6fe1c608
+98467e00
+24216260
+d8400600
+98467c00
+24216260
+67e24773
+20406259
+6fe24773
+20407d25
+604a40a9
+2020241e
+20406259
+6fe1c608
+2020624c
+18460400
+6fe1c608
+9840fe00
+2020624c
+58000000
+67e24777
+20600000
+6fe24767
+684a4777
+9840fe00
+20206242
+70477201
+20600000
+20406264
+20205ffd
+6fe0c77b
+207a0000
+6fe0c618
+c000e2a6
+6fe0c760
+203a62a6
+1b227e00
+684b4761
+67e34761
+20407d10
+67e24767
+6fe0c772
+247a0000
+6fe14622
+247a0000
+6fe24767
+684ac76b
+9840fe00
+67e2c76b
+6848c760
+6fe0c770
+98467c00
+2022e27e
+18408401
+6048c760
+20600000
+70476001
+d8400000
+6fe2c76b
+604ac76b
+6848c770
+9846fc00
+20407d62
+1807a200
+6fe24751
+6848c771
+98460400
+184085d8
+1a227e00
+98467e00
+20216299
+1fe67e00
+1feb7e00
+6849c608
+98408400
+44cf4013
+6fe1c75d
+da201800
+9a20fe00
+98467c00
+242162a4
+6049c608
+20600000
+1feb0400
+6fe1c608
+98460400
+44cfc013
+6fe1c75d
+da201800
+9a267e00
+98467c00
+202162a4
+6049c608
+20600000
+67e1c608
+20600000
+70476001
+1b227e00
+67e34761
+20600000
+58000000
+67e0c760
+67e2c76b
+20600000
+20407396
+20758000
+58006327
+67e143db
+580062d9
+67e143dd
+5800638a
+67e143df
+5800630e
+67e143e3
+58006365
+67e14524
+204062c2
+44d04014
+20406396
+6fe0c51a
+c00062d0
+6fe0c51b
+67e0c4ec
+202063a1
+5800632b
+67e143d5
+58006329
+67e143d7
+58006340
+67e1451f
+5800639a
+67e14521
+70415e07
+20402969
+2040638d
+20406ff7
+204078ad
+202077ac
+7044ecff
+70451c01
+20206340
+6fe0c51c
+c0014308
+204069b9
+6fe0c441
+243a4308
+2020430a
+1a627e00
+c00a62e2
+c00ae2e6
+c01fe2e9
+c02062ef
+c00863b6
+c01662f5
+c016e300
+20600000
+2040632d
+58000000
+67e144f8
+20204325
+204078ad
+7044f100
+20206340
+204078ad
+7044f101
+6fe44502
+67e442d3
+2040432b
+20202e93
+6fe1433c
+c1000000
+6fe4450a
+207a0000
+67e442d3
+20202e93
+6fe0c51a
+c1000000
+6fe0c51c
+c1808000
+204062fb
+20204323
+7046bd01
+df20000b
+d8a046be
+d8c046a7
+20207cda
+6fe0c51a
+c1000000
+6fe0c51c
+c000e305
+202063b2
+6fe0c6bd
+c1808000
+7046bd00
+6fe144e9
+c284c325
+df20000b
+d8c046be
+d8a046a7
+20207cda
+20406311
+20406318
+20206322
+da604518
+da406314
+202042e7
+70451c02
+20404325
+2040634e
+2020639e
+da6046ca
+da40631b
+202042e0
+6fe144e9
+c284e39e
+6fe0c6a7
+c000e39e
+c002639e
+c002e39e
+20204327
+6fe0c51c
+c1808000
+da6044f8
+da406331
+202042e7
+20406376
+20207027
+20406f35
+2020701b
+20406f35
+2020739a
+6fe14514
+67e14516
+67e14518
+20204315
+6fe0c51c
+c1808000
+6fe144e9
+c3848000
+6fe14512
+67e14516
+67e14518
+6fe144f4
+204063c7
+20404321
+6fe244fe
+67e246aa
+6fe144e9
+c3858000
+20204317
+6fe0c51c
+c1808000
+6fe144f8
+684944f6
+604944f8
+247a0000
+6fe144f2
+204063c7
+20404321
+6fe244fa
+67e246aa
+6fe144e9
+c3858000
+20204317
+6fe144e9
+c284c31f
+2020632d
+20407dbc
+6fe144e9
+c284e355
+20600000
+6fe0c4f1
+207a0000
+20207dba
+20407dbc
+6fe144e9
+c3848000
+20207dba
+20206340
+78567c00
+6fe14516
+67e14518
+20406358
+2034635c
+20406351
+24740000
+20207dbe
+2040635d
+24760000
+1a227e00
+203a636c
+20404323
+da60452e
+2020636e
+20404325
+da604556
+dfe00005
+98effe00
+9a60a600
+efe08013
+207a0000
+20406382
+1a60a601
+20206371
+6fe144e9
+c284e379
+20600000
+20402a28
+247a0000
+20406385
+24740000
+1fe0ffff
+1feffe05
+d840457e
+98408c00
+202063cb
+67e08670
+da200670
+202078b2
+da200670
+204078ca
+24740000
+6fe08670
+20600000
+6fe14398
+c00c62e9
+20600000
+7046c902
+58200008
+67e24502
+592c0005
+e7e20005
+7042e117
+5800001b
+67e14332
+20202a41
+df200028
+d8a0457e
+d8c094f9
+20207ccc
+da200000
+da6046b2
+204077ca
+2040634e
+6fe0c6c9
+67e0c6ca
+20600000
+58000000
+204063ad
+7044e401
+20407776
+20407780
+6fe0c6d0
+203a63aa
+6ff08132
+c28263b9
+6fe144e9
+c3860000
+20204327
+68494430
+e7e08002
+efe08005
+67e0c4eb
+20600000
+6fe14430
+efe0803f
+c1800000
+20204327
+68494430
+efe08002
+c000e3c1
+58000001
+68494430
+e7e08002
+18408c02
+efe08006
+e7e0802b
+efe10006
+20207d79
+58000002
+204063ad
+18408c05
+efe10006
+203a4327
+20207d79
+67e140a4
+1fe0fffc
+67e14389
+20600000
+efe08006
+1fe22200
+e8410006
+20407c6d
+20402dee
+1a227200
+20407c67
+20207cda
+580093c0
+67e142f7
+20600000
+580046d2
+67e142f7
+20600000
+6fe146cb
+67e14526
+6fe0c6cd
+67e0c6a9
+67e0c6b4
+6fe0c6ce
+67e0c51a
+6fe0c6cf
+67e0c51b
+58000002
+67e1452e
+67e14533
+58000006
+67e14556
+67e1455b
+58000007
+67e14538
+58000008
+67e14560
+5800451c
+67e14430
+58201400
+67e1c51c
+70409401
+58000100
+67e140a4
+7040a608
+7040c005
+7040c102
+58000096
+67e144fa
+e7e10005
+58000296
+67e144fe
+e7e10005
+38000010
+38048008
+380ac000
+380c0004
+67e4450a
+7044ee01
+580046a7
+67e144ef
+58000000
+67e146a7
+380001a0
+38040068
+38080000
+380c0000
+67e446aa
+58000301
+67e146b2
+380001a0
+380400e8
+38080000
+380c0000
+67e446b5
+5800000e
+67e144f2
+58000140
+67e144f4
+67e14389
+58000050
+67e144f6
+70439307
+70438800
+380000fb
+3806c212
+3808800f
+380c0021
+67e443c0
+38000bb8
+380402ee
+67e24512
+580045d8
+67e143fb
+58002001
+67e145d8
+7043481f
+38010102
+380480c1
+38098120
+380c640c
+67e4c349
+380003c1
+e7e10005
+7043681f
+3802090d
+38074c15
+380a8532
+380dd1d5
+67e4c369
+38026574
+3804001c
+e7e18005
+58004523
+67e1442c
+70452302
+580045fd
+67e143f8
+7043fa05
+6fe0c6d1
+c00063d3
+c000e3d6
+20600000
+6fe34ef4
+67e34526
+70452306
+58004523
+67e1442c
+20600000
+6fe3cef4
+67e3c526
+70452307
+58004523
+67e1442c
+20600000
+6fe44ef4
+67e44526
+70452308
+58004523
+67e1442c
+20600000
+6fe0cef3
+c0036442
+c003e448
+c004644e
+20600000
+44d0c014
+6fe44f1a
+67e44512
+58000096
+67e144f6
+6fe3cf6a
+67e3c6a7
+6fe3cf71
+67e3c6b2
+6fe24f78
+67e244fa
+6fe24f7c
+67e244fe
+5800000e
+67e144f2
+58000140
+67e144f4
+67e14389
+6fe44f12
+67e4450a
+20600000
+20407396
+20758000
+20406454
+20406459
+58006484
+67e143db
+580064df
+67e143dd
+580066c5
+67e143df
+580064b5
+67e143e3
+58006505
+67e14524
+204062c2
+6fe14f97
+67e14332
+6fe4450a
+67e44502
+2040648e
+44d14014
+202062bd
+2040649b
+d8e00009
+20407cef
+247a0000
+58000020
+d8e00009
+20407ce1
+78547c00
+2040701b
+2020656e
+5800001f
+1feffe0a
+d8404c12
+9840a200
+1a20a203
+d8400062
+e0408011
+1a20a20b
+dfe00fff
+98467e00
+1ff27e00
+e7e10011
+20600000
+6fe144e9
+c284e4a0
+d8a045da
+df200023
+20207ca1
+20402a28
+247a0000
+204078fa
+207a0000
+684a49f6
+1c427e00
+98460400
+20628000
+242164ac
+6fe0c9f5
+98467c00
+20610000
+1c427e00
+67e249f6
+20406385
+24740000
+1fe0ffff
+1feffe0a
+d8404c12
+98408c00
+202063cb
+20406858
+2040676c
+2040675a
+204064bc
+204064d3
+20406311
+202064d9
+da604ed1
+da4064bf
+202042e0
+204078fa
+247a0000
+6fe148bc
+247a0000
+20406730
+203a64cd
+18e27e00
+2fe00e04
+2020e4cf
+18e27e00
+2fe00e01
+2020e4d1
+da604ec6
+20206371
+da604eda
+20206371
+da604edf
+20206371
+da604ee9
+20206371
+da604c0f
+da4064d6
+202042e0
+df20000a
+d8a04a04
+20207ca1
+da6046ca
+da4064dc
+202042e0
+6fe144e9
+c284e39e
+20204327
+1a627e00
+c00a64f4
+c00ae4ef
+c018e4e6
+c1200000
+c01966c8
+202062d9
+704ed201
+20406783
+6fe14f84
+67e14ebe
+68494f86
+58000fff
+98467e00
+67e14ec0
+20600000
+704ebb00
+704ed200
+204065ad
+20406500
+202062e6
+1c427e00
+67e249f6
+20406729
+202062e2
+78567c00
+6fe14516
+67e14518
+20406358
+2034635c
+20406351
+24740000
+20207dbe
+704ed500
+20600000
+18e27e00
+c1808000
+2020650c
+204064f8
+24760000
+1a227e00
+203a6537
+44d1c014
+6fe0cfaf
+243a6502
+704c1001
+20404323
+2040652c
+20406561
+20216500
+18e27e00
+6848ced5
+98467c00
+2442e526
+18e27e00
+67e0ced5
+6848ced8
+98467c00
+2022e524
+6fe0ced9
+243a651f
+20406732
+dfe0000a
+2020655a
+2040677f
+18e27e00
+c000e51c
+20406642
+202065f4
+704ed601
+202065f4
+44d24014
+6fe0ced9
+203a64c3
+18e27e00
+c000e4c3
+20600000
+dfe0000a
+98effe00
+da6049fa
+9a60a600
+1c427e00
+e7e20013
+1a60a604
+efe08013
+1fe0fe01
+e7e08013
+20600000
+44d2c014
+6fe0ced9
+205a654b
+dfe0000a
+98effe00
+da6049fa
+9a60a600
+e8420013
+18467c00
+20628000
+1c427e00
+98460400
+24417806
+1a608c09
+efe08006
+243a6566
+1a60a605
+1c427e00
+e7e20013
+20600000
+6fe0cfaf
+243a4323
+20204325
+1a608c04
+efe08006
+20206551
+2040656b
+6fe0ced9
+243a655d
+20406561
+20216500
+20406738
+18e27e00
+c001e740
+dfe0000f
+98effe00
+9a60a600
+20206371
+18e27e00
+c000e554
+c001e554
+20600000
+20407902
+e8408006
+98467e00
+1fe67c0a
+20600000
+704ed001
+2040656b
+da604abe
+dfe00003
+2020655a
+df20000a
+1a620a00
+20207ca1
+6fe148bc
+67e1442e
+204065be
+6fe1442e
+67e148bc
+d8e00000
+6fe0c523
+1fe27200
+da6049fa
+1f227e00
+67e10678
+1a627e00
+67e1068c
+18e27e00
+67e1067a
+204065b4
+6fe1068c
+1fe22600
+6fe1067a
+1fe20e00
+2040658b
+6fe1067a
+1fe08e01
+6fe1068c
+1fe0a60a
+6fe10678
+1fe27200
+c2006577
+20600000
+efe20013
+207a0000
+1fe20400
+1c427e00
+98460400
+24610000
+580009c4
+98467c00
+20610000
+1c427e00
+e7e20013
+1a60a609
+58000001
+e7e08013
+6fe0ced0
+207a0000
+704ed000
+44d34014
+20406755
+6fe0ced7
+c00065a2
+c000e5a5
+20600000
+204065af
+dfe00003
+2020655a
+18e27e00
+6848ced8
+98467c00
+2422e5a2
+6fe0ced9
+79407e00
+67e0ced9
+247a0000
+704ed900
+20204325
+da604aa9
+20406730
+207a0000
+da604bd0
+20600000
+1a60a405
+efe20012
+207a0000
+1fe20400
+1c427e00
+98460400
+24417806
+580003e8
+98467c00
+2020654e
+6fe1442c
+efe0803f
+207a0000
+58000000
+67e106f1
+20407003
+243477a5
+204077a3
+78547c00
+6fe0c388
+247a0000
+44d3c014
+6fe0ced7
+c000e5cf
+20406628
+204065dc
+20740000
+204065d5
+6fe106f1
+67e106f8
+7006fa00
+18000e00
+2020703b
+6fe0ced5
+6848ced8
+98467c00
+2022c323
+6fe0ced9
+243a4325
+20600000
+d8e00000
+da404ad3
+dfe00002
+98effe00
+9a40a400
+efe10012
+207a0000
+684906f1
+9842fc00
+2022e5e8
+18e08e01
+202065dd
+67e14adf
+20404323
+da604ae1
+dfe0000a
+98effe00
+9a60a600
+204065f0
+20206633
+2040677f
+efe08013
+207a0000
+20406642
+2040677f
+20406609
+20406614
+2040661e
+dfe00005
+20406382
+20406730
+207a0000
+7049f578
+dfe00006
+20206382
+6848ceba
+20406730
+207a0000
+6848cebd
+18408401
+6fe0ced6
+207a0000
+6848ceba
+704ed600
+20600000
+204065ff
+18427e00
+207a0000
+67e0cec3
+dfe00013
+20406382
+6fe0cec3
+1fe0ffff
+67e0cec3
+207a0000
+2020660d
+6fe0cebc
+207a0000
+67e0cec4
+dfe00020
+20406382
+6fe0cec4
+1fe0ffff
+67e0cec4
+207a0000
+20206617
+6fe0cebd
+207a0000
+67e0cec5
+dfe00021
+20406382
+6fe0cec5
+1fe0ffff
+67e0cec5
+207a0000
+20206621
+6fe14adf
+207a0000
+684906f1
+18467c00
+2022e636
+98467c00
+20628000
+60494adf
+6fe14ed3
+98467c00
+2042c325
+6fe106f1
+67e1442e
+20207dba
+704ed001
+20404325
+da604b1d
+204065f0
+58000000
+67e14adf
+7048ae32
+20406633
+6fe0c523
+1feff20a
+d8a049fa
+20207ca1
+44d44015
+6fe0ced7
+c000e647
+c000664d
+20600000
+18e27e00
+c002e676
+c0006693
+c002669b
+c00166be
+20600000
+efe08013
+c000e676
+c0016693
+c001e69b
+c00266be
+c002e654
+20600000
+20406730
+243a665e
+58000004
+1feffe0a
+d8404c12
+98408a00
+18a08a03
+6fe1cb27
+e7e18005
+20600000
+58000004
+1feffe0a
+d8404c12
+98408a00
+18a08a03
+6fe14ebe
+e7e18005
+18a08a07
+6fe14ec0
+1ff27e00
+1fed7e00
+e7e18005
+20600000
+6fe0cebc
+207a0000
+1fe0ffff
+67e0cebc
+dfe00062
+20600000
+d840000a
+20406730
+207a0000
+d8400007
+20600000
+20406671
+6fe14ebe
+98467c00
+2441666b
+24610000
+98467e00
+67e14ebe
+44d4c015
+6fe14ebe
+68494ec0
+184d0400
+18520400
+9840fe00
+67e1cb27
+20206654
+6fe14ebe
+d8400062
+98460400
+24610000
+18427e00
+6848cebc
+18467c03
+2022e690
+18408401
+6048cebc
+2020667c
+704ebc00
+dfe00000
+2020667c
+20406730
+245a6685
+20406671
+6fe14ebe
+9840fe00
+d8400fff
+20407d6c
+2020667c
+20406671
+6fe14ec0
+98467e00
+67e14ec0
+68494ec0
+20406730
+203a667d
+58000fff
+98467e00
+d8400062
+98460400
+2421667d
+58000fff
+98467e00
+6848cebd
+18467c05
+2022e6af
+18408401
+6048cebd
+202066bc
+704ebd00
+58000fff
+202066bc
+20406730
+203a66b0
+6fe0cebd
+203a66b0
+1fe0ffff
+67e0cebd
+58000fff
+d8400062
+98467e00
+9a20fe00
+67e14ec0
+2020667d
+20406671
+6fe14ec0
+9840fe00
+d8400fff
+98462200
+202166b2
+202066bc
+6fe14398
+c01262e9
+20600000
+da200017
+da400004
+204029fb
+58000006
+e7e08005
+58000001
+e7e10005
+5800ffff
+e7e10005
+58002800
+e7e10005
+d8c049e4
+20207c8f
+44d54015
+1a220c00
+efe18006
+67e1c397
+c003e704
+c000e725
+c00566f4
+c00666de
+20202b96
+efe10006
+67e106b5
+98002200
+68494398
+6fe14332
+98467c00
+2422ad50
+20406730
+243a66e9
+684949e0
+202066ea
+684949e2
+d8c048be
+20407c6d
+18427e00
+9a267e00
+24212e03
+1fe0fe01
+1fe67c17
+20212d59
+18007e17
+20202d59
+68494398
+6fe0c321
+c281e6f8
+20202d1d
+6fe14332
+98467c00
+2422ad1d
+20402dc7
+243466fe
+20202d46
+6fe14332
+98467c00
+2422ad1d
+d8c048be
+18007e17
+20202d2d
+44d5c015
+704eba05
+7049f401
+704ec201
+7049f5f0
+704ed10a
+704ed601
+204067bf
+6fe0ced2
+207a0000
+20406783
+d8400062
+6fe14f88
+da204ebe
+da404ebc
+2040671e
+d8400062
+6fe14f8a
+da204ec0
+da404ebd
+2040671e
+58000fff
+68494ec0
+98467e00
+67e14ec0
+20600000
+9846fc00
+20407d62
+1807fe00
+18070400
+e7e08012
+e0410011
+20600000
+18c08dfe
+efe08006
+c003672e
+20600000
+704eba01
+7049f400
+704ec200
+7049f50a
+20600000
+20406729
+202067bf
+6fe0c9f4
+20600000
+da604f24
+20406730
+207a0000
+7049f578
+da604b2b
+20600000
+da604a40
+20406730
+207a0000
+da604b67
+7049f50c
+18e27e00
+c1008000
+20600000
+44d64015
+6fe0cc0e
+79407e00
+67e0cc0e
+c0006749
+c000e747
+20600000
+20406750
+20206371
+2040674b
+20206371
+da604a6d
+20406730
+207a0000
+da604b94
+20600000
+da604bfa
+20406730
+207a0000
+da604c04
+20600000
+18e27e00
+c000e777
+c0016765
+c0026761
+20600000
+da604f9d
+da40675d
+202042e0
+704f9d04
+6fe0cc0e
+203a6761
+20206765
+704c0e00
+704f9d04
+da604ab5
+20206371
+704c0e01
+704f9d04
+da604aaf
+20206371
+704c0e00
+704f9d00
+20600000
+da604f9e
+da40676f
+202042e0
+704f9e02
+20406772
+20206371
+da604f9f
+20406730
+207a0000
+da604fa7
+20600000
+6fe0cfaf
+243a677c
+704faf01
+704f9e02
+20600000
+704faf00
+704f9e00
+20600000
+6fe0cebb
+247a0000
+704ebb01
+2020667d
+58000000
+67e3cebc
+20600000
+20406730
+c000e78e
+c00067a0
+20600000
+6fe0cf90
+c000e7a7
+c00067b9
+20600000
+6fe0cebc
+1feffe62
+1fe20400
+6fe14ebe
+9840fe00
+67e14f8c
+6fe0cebd
+1feffe62
+1fe20400
+6fe14ec0
+1fe22200
+58000fff
+9a267e00
+9840fe00
+67e14f8e
+20406730
+67e0cf90
+20600000
+6fe14ebe
+67e14f8c
+6fe14ec0
+67e14f8e
+20406730
+67e0cf90
+20600000
+6fe14f8c
+1fe6fc62
+20407d62
+1807fe00
+18070400
+67e0cebc
+18427e00
+67e14ebe
+6fe14f8e
+1fe6fc62
+20407d62
+1807fe00
+18070400
+67e0cebd
+58000fff
+98467e00
+67e14ec0
+20600000
+6fe14f8c
+67e14ebe
+6fe14f8e
+67e14ec0
+20600000
+2020683c
+20206823
+204067e2
+6fe14f93
+2040684f
+704f9b00
+6fe2cf8c
+704f9c00
+704f9900
+204067e6
+6fe0cf99
+c1000000
+202067c0
+6fe14f80
+1fe0fffb
+67e14f93
+20600000
+6fe14f93
+1fe0fffb
+67e14f93
+20600000
+6fe14f93
+1fe0fe05
+67e14f93
+20600000
+6fe14f95
+1fe0fe05
+67e14f95
+6fe14f95
+1fe20400
+6fe14f80
+98467e00
+d8400005
+98467c00
+24216806
+20600000
+6fe0cf9b
+c000e7cb
+c00067cf
+20600000
+da400000
+1a420400
+6fe14f8c
+a843fe00
+2440e7f6
+da400000
+1a420400
+6fe14f8e
+a843fe00
+2440e7f6
+da400000
+1a420400
+6fe0cf90
+a841fe00
+2440e7f6
+20600000
+6fe0cf99
+1fe0fe01
+67e0cf99
+20600000
+704f9901
+204067d7
+6fe14f95
+2040684f
+20406730
+1fe20400
+6fe0cf90
+a841fe00
+2040e821
+6fe0cf99
+c1000000
+202067fa
+44d6c015
+20406821
+20406730
+203a680b
+20206812
+6fe14f84
+67e14ebe
+68494f86
+58000fff
+98467e00
+67e14ec0
+202067be
+d8400062
+6fe14f88
+da204ebe
+da404ebc
+2040671e
+d8400062
+6fe14f8a
+da204ec0
+da404ebd
+2040671e
+58000fff
+68494ec0
+98467e00
+67e14ec0
+202067be
+704f9900
+20600000
+44d74015
+704f9b01
+204067c0
+6fe14f82
+1fe20400
+6fe14f93
+98467e00
+d8400000
+98467c00
+24610000
+6fe14f93
+1fe20400
+6fe14f80
+1fe0fffb
+98467e00
+6fe14f93
+67e14f95
+204067fa
+6fe14f95
+2442e84f
+704f9900
+204067e6
+6fe0cf99
+c1000000
+2020678a
+44d7c015
+704f9b01
+204067c0
+68494f82
+6fe14f93
+98467e00
+d8400000
+98467c00
+24610000
+68494f93
+6fe14f80
+98467e00
+d8400000
+98467c00
+24610000
+6fe14f93
+67e14f91
+20406786
+20206854
+44d84016
+1fe22400
+df200005
+da204f8c
+20206b74
+df200005
+da204f8c
+6a414f91
+20206b45
+da6048ae
+da4067be
+202042e0
+6fe10912
+e8408013
+1a60a601
+184d0400
+9842fe00
+1f222400
+df200008
+2feffe0f
+1fe3fe00
+2420e867
+68490914
+9842fe00
+c2006862
+1a427200
+c200685c
+67e10912
+20600000
+6fe0c43f
+d840003e
+20206f20
+6fe0c43f
+d840003f
+20206f20
+2040686f
+2040686c
+2020686f
+20406873
+2020686c
+20206873
+20406873
+20206875
+2020686c
+6fe0c440
+2020686d
+6fe0c440
+20206870
+2040687b
+2040687d
+2020687b
+20800000
+204070d7
+2040688d
+2040688f
+204068a3
+204068bf
+204068c3
+70070f01
+70070c04
+204068ce
+2020688b
+70804204
+20600000
+20406893
+20406897
+2040689b
+2020689f
+6fe0c4f1
+247a0000
+7044f107
+20600000
+6fe0c4f2
+247a0000
+7044f206
+20600000
+6fe0c4f3
+247a0000
+7044f309
+20600000
+6fe0c4f4
+247a0000
+7044f40a
+20600000
+58000c00
+67e10670
+58000eff
+e7e10005
+58000f00
+e7e10005
+58000fff
+e7e10005
+6fe40670
+20406d68
+20406d82
+d841c200
+20406d75
+6fe0c4f1
+d8400008
+20406f21
+6fe0c4f2
+d8400049
+20406f21
+6fe0c4f3
+d840000a
+20406f21
+6fe0c4f4
+d840000b
+20406f21
+d8400081
+60588060
+20207d76
+6fe0c4f5
+247a0000
+7044f50c
+20600000
+6fe0c4f5
+d8400010
+20406f21
+da200040
+20407055
+da200000
+da400000
+58000000
+2040707a
+d8e00000
+202070c0
+6ff10112
+1fe0a3fc
+24610000
+20406d96
+efe08003
+c000e8d6
+20407c95
+20206d9e
+efe10003
+67e10710
+d84003ff
+98410400
+60490709
+1feb7e00
+1fecfe00
+67e0870b
+efe08003
+1fe0ffff
+9a267c00
+20610000
+204068e4
+2020693f
+6fe0870b
+c01fe8e7
+2020692b
+44da4016
+6fe08709
+c000692a
+c000e8f2
+c00168f7
+c001e905
+c002690f
+c002e92a
+c0086920
+c00a6926
+2020692a
+70071200
+6ff10000
+67e10713
+df200003
+20206932
+efe10003
+67f10052
+20600000
+efe08003
+1fe20400
+67f08024
+efe08003
+98408400
+79207e07
+67f08023
+efe08003
+98408400
+1fe27200
+20600000
+204068fa
+efe08003
+67f08025
+98408400
+c2006906
+184104ff
+efe08003
+98467c00
+2422e91e
+2020692a
+df200020
+d8a04000
+d8400000
+efe08003
+e7e08005
+98408400
+c2006912
+184104ff
+efe08003
+98467c00
+2422e91e
+70802300
+2040692a
+20406dae
+20202001
+70802300
+2020692b
+efe08003
+1fe27200
+efe10003
+1fe20a00
+20406ddd
+2020692a
+6ff08060
+79207e04
+67f08060
+2020692a
+2020692f
+70071201
+20206930
+7007120c
+20206930
+70071200
+df200001
+20206932
+70070d0e
+1f20fe03
+67e0870e
+2040693b
+6fe1870f
+e7e18003
+d8c00712
+20406dc4
+20206da4
+20406da2
+6fe1870c
+e7e18003
+20600000
+20406d96
+18608603
+efe08003
+98608600
+20206d9c
+70411400
+20600000
+2035e94b
+58004450
+d8a04441
+98a67200
+20407ca1
+20600000
+d8e00000
+da400000
+18e67c07
+24610000
+aa2fffff
+2020e953
+20206957
+18427e00
+203a6957
+f9202400
+184085ff
+18e08e01
+2020694e
+6b01433f
+6d614341
+20407dbc
+2020695d
+44db4016
+204069a9
+243a235a
+204069b9
+df200008
+6848c441
+1f260e08
+a84fffff
+2020e96a
+20406971
+2421696a
+20406987
+2020696e
+1d627e00
+9b00b000
+c2006962
+2020235a
+1b027e00
+1b020a00
+20600000
+44dbc016
+1f260e08
+d8400000
+d9600000
+18e27e00
+c0046982
+6fe0c441
+afefffff
+2020e982
+f9201600
+1d627e00
+98408400
+18e08e01
+1a227e00
+98467c00
+2022e982
+20216975
+18427e00
+9a267c00
+24628000
+f9201600
+20600000
+44dc4017
+204069a9
+243a235a
+204069af
+203a6990
+6fe4c445
+67e4c442
+58000000
+e7e18005
+6160c44b
+6301444c
+20600000
+44dcc017
+204069b2
+18c08c01
+efe10006
+20600000
+44dd4017
+204069b2
+18c20a00
+18c20400
+58000000
+e7e18005
+20600000
+44ddc017
+204069af
+203a235a
+6fe1c448
+67e1c44b
+6fe1c445
+67e1c448
+6fe1c442
+67e1c445
+20600000
+44de4017
+6fe1c442
+20600000
+44dec017
+6fe1c445
+20600000
+44df4017
+6fe1c44b
+20600000
+204069af
+203a69b7
+d8c04442
+efe18006
+203a69b5
+18c08dfd
+20600000
+44dfc017
+df200004
+d8c04442
+d8400000
+efe18006
+1fe17eff
+98418400
+c20069bd
+6048c441
+20600000
+d8e0000c
+202024e7
+d8e0000c
+202024eb
+44e0c018
+18467cff
+20628000
+18427e00
+1fe17eff
+1fe67c0f
+242169d9
+d8a08070
+98a08a00
+18a22200
+d840003e
+e0408005
+204069dc
+2000001e
+1a220a00
+d840003f
+e0408005
+202069e0
+d8a080d4
+1fe0fff0
+202069cf
+6ff08081
+1fe17e7f
+67f08081
+20600000
+6ff08081
+1fe1fe80
+67f08081
+20600000
+20206bd0
+20206bd7
+6ff0806f
+793ffe07
+67f0806f
+20600000
+243469ee
+6ff0806f
+79207e07
+67f0806f
+18427c00
+2022e9f1
+1a627a00
+2fcc0000
+20206b00
+18000404
+da2001e7
+204069e6
+204069ee
+da2055aa
+6fe101e7
+e8410006
+9a267c00
+20600000
+20546a0e
+d8400002
+da2043c8
+204069ee
+6fe143c8
+67e101e0
+20546a04
+20600000
+d8400010
+da2001ed
+204069e6
+204069ee
+d8c001ed
+df200010
+20407353
+204072da
+2040736f
+202072d4
+70802300
+204069e6
+2020736f
+58000000
+67e10699
+7856fc00
+204069f3
+24628000
+7836fc00
+58008000
+67f18022
+da208025
+204069ea
+70802300
+6fe081dd
+c4000000
+d8400006
+204069f4
+2422ea2e
+ea210006
+204069ee
+20406a25
+20206a1e
+6fe10699
+df200006
+d8c001e7
+20407dcc
+6f2101e9
+1a220c00
+20407dcc
+67e10699
+20600000
+6fe0821c
+c02d6a3c
+da20aa55
+6fe101e7
+9a267c00
+2422ea3e
+da2055aa
+6fe101e9
+9a267c00
+2422ea3e
+6fe101eb
+68490699
+98467c00
+2422ea3e
+7920220f
+202069f1
+7001dd00
+20600000
+1fe17eff
+1ff1fe00
+67e0c3cb
+20206a59
+6ff10143
+243a6a40
+20406a59
+6fe143cb
+207a0000
+20406a4b
+202023ba
+6fe0c3cb
+207a0000
+1fe1040f
+6048c3cb
+1ff1fe00
+9842fe00
+c087ebc2
+20206b8d
+6fe08219
+245a23e0
+6fe0821a
+207a0000
+67e0c0c9
+202023e4
+78547c00
+6fe0c3ca
+c4018000
+20406aad
+dfe00ff0
+9a40a400
+18007210
+da2001ed
+20406b74
+70800608
+d8c001ed
+2040735f
+d8a001ed
+20407c99
+20207dba
+70805025
+20406b3a
+da400000
+1800720b
+da2043c8
+20406b75
+6ee2c3c8
+6fe0c3ca
+c3026a78
+70806f07
+6ff0815e
+c083ea72
+6ff08160
+1ff27e00
+67f0806f
+20206a7b
+20406af5
+20407d76
+20407d74
+66e2c3c8
+20406aad
+dfe00fd0
+9a40a400
+df200020
+da2001fd
+20406b74
+20406a53
+20406a44
+6fe0c3ca
+c301ea8f
+6848c3cc
+dfe00000
+79207e06
+79207e07
+98412200
+1a267c00
+2022eaf1
+9a267c00
+2022eaf1
+70003000
+da606b1e
+20406ae5
+24216af1
+6fe143c8
+203a6a9c
+20406a01
+20406a11
+2436ea9c
+6fe081dd
+2fe00603
+2420ea91
+20406aaa
+20406b37
+70003000
+20406ae5
+24216af1
+20406ad7
+20406cc4
+6fe0c3ca
+c2816abd
+20406adf
+2436eab4
+6fe081dd
+2fe00603
+2420ea9e
+20206abd
+580001ff
+dfa00000
+20600000
+da401000
+6ff08144
+c283eab2
+6fe0c3cc
+c4038000
+da400000
+20600000
+20406cc1
+6fe0c3ca
+c2816abd
+20406adf
+2436eabd
+6fe081dd
+2fe00603
+2420ea9e
+20206acd
+70003000
+20406ae5
+24216af1
+6fe0c3ca
+c280eacd
+20406c20
+200000c8
+20406c2f
+20000064
+da606c6c
+204069fc
+20406a11
+2436eacd
+6fe081dd
+2fe00603
+2420eabe
+20406ad1
+6fe0c3ca
+c4000000
+20206882
+d8a001ed
+20407c99
+18007004
+20407370
+70805021
+20600000
+6fe0c429
+6848c428
+98467c00
+2422ecbc
+70442704
+70442817
+70442916
+20206cbc
+58000000
+67e101e0
+da606ce7
+20406ca5
+204069fc
+20206a11
+20406aeb
+6fe08030
+1fe0fe01
+1fe67c03
+67e08030
+20600000
+6fe08030
+207a0000
+6fe0821b
+207a0000
+1fe27200
+20207c96
+20406ad1
+204069e6
+20407d7c
+20600000
+1fe17ee0
+1fe37e00
+67f0806f
+58000001
+d8c043cd
+e8410006
+6059004c
+67f08020
+1fe3fe00
+c301eafa
+20600000
+6fe081dd
+1fe3fe00
+7920fe00
+2a2c000f
+20608000
+67e081dd
+20600000
+6ff0806f
+c4038000
+20206b0d
+6ff08128
+afefffff
+20608000
+6ff08108
+c300eb0a
+204072d4
+20206b0a
+6fe140f0
+207a0000
+70802380
+70802200
+70802400
+684940f2
+184bf200
+98000c00
+efe08006
+67f08025
+c2006b19
+70802300
+20600000
+18427200
+6fe101e0
+98408400
+604901e0
+98002400
+1a225c00
+70800610
+20406b74
+1dc22200
+2a2c000f
+20608000
+205a7dc6
+20206b00
+708ac801
+2000012c
+708ac805
+20000064
+708ac825
+200003e8
+708ac827
+2000012c
+20600000
+20406b2b
+708ac83f
+20600000
+70804783
+708ac800
+20600000
+20406b2b
+70804782
+2000000c
+70804780
+70804782
+20000096
+20600000
+1a49a400
+62510044
+70804600
+20600000
+44e24018
+20406b34
+20406b41
+20406b3b
+e8408011
+1a20a201
+18000e00
+a84c0000
+2020eb6c
+6ff08046
+79207e06
+79207e07
+67f08046
+70804702
+70804782
+793ffe07
+67f08046
+7080478a
+2000000b
+708047ca
+20000021
+7080474a
+2000002c
+708047ca
+20000016
+7080478a
+20000021
+70804782
+20000001
+70804792
+2000000a
+708047b2
+6ff08007
+70804792
+20000001
+70804782
+20000001
+afec0000
+2020eb4c
+6ff10044
+1fe0fe01
+67f10044
+18e08e01
+28e01e08
+2420eb4c
+c2006b49
+20206b38
+44e2c018
+20406b41
+708047a2
+1a40a408
+d8e00000
+5fffffff
+68588007
+e0408011
+984c7e00
+70800620
+62510044
+2a2ffe0f
+2020eb83
+1a20a201
+20206b89
+24346b89
+18e08e01
+28e01e00
+2420eb89
+204072d4
+70800610
+1a40a408
+c2006b7a
+70804782
+20600000
+6fe0c3cb
+c0056b9e
+c0026b9f
+c0046ba3
+c004eba7
+c0036ba7
+c0066b9e
+c006ebb1
+c0076bab
+c005eb99
+c007eb9d
+20206bc2
+dfe043b2
+d8406858
+20406bb7
+20206bae
+20206bae
+20206bbf
+dfe05099
+d8406858
+20406bb7
+20206bae
+dfe043b2
+d84053dc
+20406bb7
+20206bae
+dfe043b2
+d8404770
+20406bb7
+20206bae
+dfe047b7
+d8406858
+20406bb7
+dfe03728
+d8404292
+20206bbc
+dfe047b7
+d8406858
+20406bb7
+dfe02acb
+d840310d
+20206bbc
+18500400
+9841fe00
+202023cf
+dfe02b8f
+d840310d
+18500400
+9841fe00
+202023d6
+dfe03112
+d84036df
+20206bbc
+20406bbf
+dfe02b8f
+d840310d
+20206bb7
+44e34018
+6fe0c3f5
+67f08080
+6fe0c3f6
+67f08081
+580001de
+67f10084
+580001e3
+67f10086
+202069dc
+79207e07
+67e101de
+44e3c018
+70808202
+70808800
+70800602
+20206be0
+18000401
+67e081de
+44e44019
+70808201
+60590088
+70800602
+20406be0
+6fe081e3
+20600000
+20000005
+6ff08128
+c301ebe0
+20600000
+78547c00
+1fe22400
+6fe0c420
+c1800000
+78347c00
+1a427e00
+20206bf2
+6fe0c420
+c000ebf2
+c0016bf8
+c001ec00
+c0026c04
+c002ec0b
+20600000
+67e1c419
+1a227e00
+67e1441c
+6049441e
+70442002
+20206c20
+20406c20
+70442003
+20406c26
+da2001de
+70808204
+6fe1c419
+d8400020
+20206c40
+20406c20
+20406c63
+70442004
+20600000
+44e4c019
+20406c20
+70442005
+20406c26
+20406c18
+20406c3c
+20206c13
+20406c20
+20406c26
+58000005
+20406bd7
+c3800000
+70442000
+6fe143e7
+20207d79
+6fe20678
+6849441c
+184085fc
+e7e20002
+20600000
+6849441c
+18422200
+184085fc
+efe20002
+67e20678
+6849441e
+6fe1c419
+20600000
+44e54019
+20406c8b
+204069dc
+58000000
+67e201de
+20600000
+7001de06
+58000000
+67f10088
+58000001
+67f10082
+580001de
+67f10084
+70800602
+20206be0
+7001deab
+20206c27
+7001deb9
+20206c27
+67e18670
+60490678
+62210684
+475ac036
+20406c26
+6fe18670
+68490678
+6a210684
+20206c3c
+18408404
+60590082
+d8400002
+1a20a3fc
+e0408011
+1ff10400
+e0408005
+1fec8400
+e0408005
+e7e08005
+1a227e00
+67f10084
+58000000
+67f10088
+70800602
+20406be0
+20206c63
+60590088
+1ff10400
+604881df
+1fec8400
+604881e0
+67e081e1
+58000004
+67f10082
+7001de03
+580001de
+67f10084
+1a227e00
+67f10086
+6ff08080
+2a2c000f
+7920fe06
+67f08080
+70800602
+6ff08128
+c283ec5f
+d8e00003
+20206be0
+580007d0
+2040235c
+20406c26
+580001e3
+67f10086
+58000005
+20406bd7
+c2806c63
+20600000
+60590088
+58000004
+67f10082
+7001de03
+580001de
+67f10084
+1a227e00
+67f10086
+6ff08080
+2a2c000f
+7920fe06
+67f08080
+70800602
+6ff08128
+c283ec79
+d8e00003
+20406b07
+20406be0
+2feffe02
+20406b00
+6fe081df
+1ff02400
+6fe101e0
+1ff0fe00
+9a41fe00
+9840fe00
+67e081e1
+1fecfe00
+1ff0fe00
+67e101df
+20600000
+6fe0c421
+6848c423
+98467c00
+2422ec90
+20406c9c
+6fe0c421
+d8400020
+20406f21
+6fe0c424
+d8400021
+20406f21
+6fe0c422
+d8400022
+20406f21
+6fe0c423
+d840001f
+20206f21
+70442101
+70442203
+70442300
+70442402
+7044250b
+7044260a
+20600000
+70801001
+20600000
+70808b05
+70808c07
+70808d07
+70808e07
+70808f07
+70809005
+70809100
+20600000
+70808b0c
+70808c0d
+70808d0d
+70808e0d
+70808f0d
+7080900c
+70809100
+20600000
+20406cd8
+6fe0c428
+d840006c
+20406f21
+6fe0c429
+d840006d
+20206f21
+20406cdf
+20206cb6
+6ff08128
+c302ecbe
+20600000
+79200028
+7043f408
+20600000
+793f8028
+7043f420
+20600000
+6fe0c3eb
+9a40fe00
+67e081e0
+20206cce
+6fe101e0
+1ff0fe00
+67e081e0
+58000003
+67f10092
+7001dfa0
+7001e1a1
+20206ced
+60490678
+20406cd8
+68490678
+20406d07
+20206cdf
+6fe0c427
+c17f8000
+c3036cdd
+580249f0
+2040235c
+6848c427
+20206ef7
+6848c427
+20206ef3
+44e5c019
+c5146cc7
+6fe143eb
+9a40fe00
+1ff0fe00
+67e101e0
+44e64019
+c5146ccb
+58000004
+67f10092
+7001dfa0
+7001e2a1
+580001df
+67f10094
+60590098
+62310096
+58000002
+2a2c000f
+7920fe00
+67f0808a
+70800604
+d8e00005
+20406b07
+20406cbe
+2feffe04
+20406b00
+c5146d02
+6fe101e0
+1ff0fe00
+9840fe00
+1ff0fe00
+67e101e0
+20600000
+6fe081e0
+9840fe00
+1ff0fe00
+67e101e0
+20600000
+6fe143eb
+9a40fe00
+67e10670
+44e6c019
+60490678
+6221068f
+20406d1c
+68490688
+6a21068f
+6fe10670
+20406d3d
+6fe10688
+6849068f
+98408400
+6049068f
+68490670
+98408400
+60490670
+6fe10678
+243a6d0d
+20600000
+44e74019
+6fe0c3f4
+1fe0ffff
+68490670
+9841fe00
+1fe0fe01
+67e1868c
+6fe10678
+9840fe00
+6849868c
+98467e00
+24216d2e
+67e10678
+6fe1868c
+68490670
+98467e00
+67e10688
+20600000
+6fe10678
+67e10688
+58000000
+67e10678
+20600000
+1a427e00
+18408402
+60590092
+1a20a3fe
+e8418011
+18422400
+d84000a0
+e0408011
+e7e08005
+20206d4a
+1fe22400
+44e7c019
+c5146d33
+1a427e00
+18408403
+60590092
+1a20a3fd
+e8418011
+18422400
+d84000a0
+e0408011
+1ff0fe00
+e7e10005
+62310094
+58000000
+67f10098
+70808a01
+70800604
+20406cbe
+e2418011
+44e8401a
+7001e200
+58000001
+67f10092
+7001dfa0
+580001df
+67f10094
+58000000
+67f10098
+67f10096
+58000003
+67f0808a
+70800604
+20406cbe
+6ff08128
+c4030000
+200005dc
+6fe081e2
+1fe0fe01
+67e081e2
+1fe67c28
+24610000
+20206d53
+20407dba
+20206d6a
+1ff10400
+20546d8e
+1fef7e00
+1ff10400
+20546d8a
+6ff10050
+793ffe0f
+67f10050
+20600000
+67f10052
+20600000
+20406d77
+20206d73
+20406d7c
+9846fc00
+20407d62
+1807fe00
+20600000
+6ff08043
+c3006d80
+5adc6c00
+20600000
+596e3600
+20600000
+6ff08043
+1fe17efe
+67f08043
+20600000
+6ff08043
+1fe1fe01
+67f08043
+20600000
+67f1005a
+67f1005e
+6059005c
+20600000
+67f10054
+67f10058
+60590056
+20600000
+6951005a
+6a11005c
+6871005e
+20600000
+69510054
+6a110056
+68710058
+20600000
+6071005e
+20600000
+60710058
+20600000
+20406d96
+6ff10112
+98608600
+20206d9c
+20406da6
+20206d92
+20406d9a
+20206daa
+60610697
+61410695
+62010693
+20600000
+68610697
+69410695
+6a010693
+20600000
+6ff1010e
+243a6dae
+20600000
+1f227e00
+207a0000
+1f20f3f8
+20416dbe
+20628000
+20216db3
+1f20f208
+1f20f3fc
+20416dc1
+20628000
+20216db8
+1f20f204
+20206dc4
+efe40006
+e7e40003
+20600000
+efe20006
+e7e20003
+20600000
+1f227e00
+207a0000
+efe08006
+e7e08003
+c2006dc6
+20600000
+1f227e00
+207a0000
+1f20f3f8
+20416dd7
+20628000
+20216dcc
+1f20f208
+1f20f3fc
+20416dda
+20628000
+20216dd1
+1f20f204
+20206ddd
+efe40003
+e7e40005
+20600000
+efe20003
+e7e20005
+20600000
+1f227e00
+207a0000
+efe08003
+e7e08005
+c2006ddf
+20600000
+70066f3d
+2020782b
+44e8c01a
+6fe0c3fa
+207a0000
+20406e87
+2042ee8d
+20407dc0
+20406e18
+6fe0c3fa
+1fe22600
+684943f8
+60490033
+1a627e00
+203a6de3
+1a60a7ff
+18422200
+efe08011
+68488031
+98467c00
+2042ee00
+20216dfc
+efe08011
+1fe0fe01
+e7e08011
+68490033
+18408422
+60490033
+20206df0
+58000000
+e7e08011
+6fe08032
+e7e08005
+c099ee0d
+efe30006
+e7e40005
+58000000
+e7e40005
+1a420c00
+20407c8f
+18007c01
+20600000
+c01b6e11
+c01bee15
+da40428a
+20206e05
+d8c0430d
+20407c8f
+d8c0428a
+20206e0a
+d8c04305
+20407c8f
+20206e13
+44e9401a
+20407dbc
+6fe0c3fa
+207a0000
+44e9c01a
+6fe144e9
+c4048000
+6fe0c2cb
+c0006e34
+6fe0817d
+2fe180c0
+2020ee27
+2fe18040
+2020ee39
+20206e2e
+20366e2b
+6fe0c2c2
+c300ee34
+20206e2e
+20406e34
+20740000
+20206e2e
+6fe0c2fe
+c283ee31
+20206e37
+6fe30178
+67e44305
+20206e37
+70003235
+6fe30178
+20206e3b
+70003237
+20206e3b
+70003236
+20206e3b
+44ea401a
+6fe143f8
+e840803f
+1fe0fe01
+67e10033
+60488031
+6fe0c3fa
+1fe22600
+6fe10033
+1fe22200
+20406e53
+20740000
+68490033
+18408422
+60490033
+184085ff
+efe08002
+67e08031
+1a60a7ff
+2422ee43
+6fe0c3fa
+1fe0ffff
+67e08031
+20600000
+6fe08032
+c099ee5a
+da400032
+df200007
+20407d64
+2022fdba
+20600000
+c01b6e5d
+c01bee78
+20206e55
+e8408011
+98467c00
+24628000
+d8a006a1
+df200010
+20407ca1
+6fe1817b
+67e186a1
+20406e6f
+6fe106be
+1ff0fe00
+1fed0400
+efe08006
+9840fe00
+68498178
+98467c00
+2022fdba
+20600000
+d8c006a1
+20407361
+efe08011
+20407362
+18006c38
+18006c00
+204072cf
+d8a006b1
+20207375
+e8408011
+98467c00
+24628000
+18c22200
+18c0a608
+da404305
+df200008
+20407d64
+2022fdba
+1a622200
+da40430d
+df200008
+20407d64
+2022fdba
+20600000
+6fe143f8
+e840803f
+1fe0fe22
+efe0803f
+98467c00
+20600000
+6fe0c3fa
+1fe27200
+684943f8
+58000000
+e7e08002
+18408422
+1fe0fe01
+c2006e91
+20600000
+20407dbe
+20406e18
+24346ea1
+6fe10033
+1fe08c01
+d8a0430d
+20407c8f
+d8a0428a
+20407c8f
+70429a01
+20600000
+70429a00
+20600000
+70003234
+20206ea5
+6fe0c3cb
+c0056de5
+c0045c42
+20600000
+18417e1f
+1fe37e00
+d8a00016
+98a08a00
+de0000f0
+284c0000
+20608000
+de00000f
+20600000
+44eac01a
+79200407
+20406ee6
+7d208407
+44eb401a
+18467cff
+20628000
+d9000004
+284ffe07
+2020eebd
+d9000002
+20406ea9
+284c0000
+2020eec1
+19121000
+efe08005
+9e017e00
+9901fe00
+e7e08005
+20600000
+44ebc01a
+18467cff
+20628000
+d9000001
+20406ea9
+284c0000
+2020eece
+19121000
+efe08005
+9e017e00
+9901fe00
+e7e08005
+20600000
+44ec401b
+18467cff
+20628000
+20406ea9
+efe08005
+9e017e00
+e7e08005
+20600000
+20406ed3
+20206ee0
+18467cff
+20628000
+2455eeb6
+20406f14
+58000000
+284ffe07
+7d20fe06
+7920fe07
+20206f0d
+44ecc01b
+d8a0811c
+18410e07
+18497e00
+1fe17e03
+98a08a00
+efe08005
+284ffe07
+2020eef1
+afec0000
+20600000
+afefffff
+20600000
+18467cff
+20628000
+2fcffe07
+20206efa
+18467cff
+20628000
+2fcc0007
+58000000
+7d20fe07
+98428400
+20406f14
+5800003f
+284ffe07
+7920fe00
+20206f0d
+18467cff
+2022fdc4
+20406f14
+efe08005
+c2806f09
+284c0007
+20600000
+284ffe07
+20600000
+20406f14
+580000c0
+e7e08005
+20600000
+18467cff
+20628000
+20406f14
+58000000
+20206f0d
+18417e3f
+1fe67c0f
+24216f1a
+d8a08070
+98a08a00
+20600000
+d8a080d4
+1fe0fff0
+20206f18
+1fe104ff
+1fecfe00
+20206f21
+c4038000
+1fe17e3f
+1fe67c0f
+24216f28
+d8a08070
+98a08a00
+e0408005
+20600000
+d8a080d4
+1fe0fff0
+20206f25
+1841043f
+18467c0f
+24216f32
+58008070
+98408c00
+efe08006
+20600000
+580080d4
+184085f0
+20206f2f
+df200010
+d8c08070
+18c20a00
+efe08006
+c00fef48
+c0106f48
+c010ef48
+c0116f48
+c011ef48
+c0166f48
+c016ef48
+c0006f48
+c2006f37
+dfe080dc
+98c67c00
+20628000
+df200008
+d8c080d4
+20206f37
+58000040
+e7e08005
+20206f41
+58000080
+e7e08005
+20206f41
+44ed401b
+20758000
+708a0777
+708a08c9
+708a0b01
+6fe0c409
+67f080cd
+20406f97
+708a08c1
+df200007
+da204412
+708a0a05
+6ff08a0c
+e7e08011
+1a20a201
+6ff08a0a
+1fe0fe20
+67f08a0a
+c2006f5a
+708a0700
+20600000
+6ff080cc
+79207e01
+67f080cc
+df200007
+da204412
+708a0a15
+efe08011
+67f08a09
+1a20a201
+6ff08a0a
+1fe0fe20
+67f08a0a
+c2006f69
+6ff080cc
+793ffe01
+67f080cc
+20600000
+44edc01b
+6fe401fd
+203a6f79
+67e443fd
+20600000
+58000bbe
+67e143fd
+580003f0
+67e14401
+5800027e
+67e143ff
+580003c4
+67e14403
+20600000
+44ee401b
+20406f63
+6ff08a09
+793ffe07
+67f08a09
+708a0777
+708a08c1
+708a0b01
+20406f90
+6fe0c409
+67f080cd
+20406f97
+7080cd00
+20206fa1
+6fe0c408
+1ff27e00
+68588a0b
+1841040f
+98418400
+60588a0b
+20600000
+7080cc03
+6ff08129
+c302ef98
+68590164
+6049440a
+7080cc06
+6ff08129
+c282ef9d
+7080cc00
+20600000
+6fe0c411
+207a0000
+6ff08a09
+79207e07
+67f08a09
+6fe0c409
+67f080cd
+6fe1440d
+67f100ce
+6fe1440f
+67f100d0
+7080cc0b
+200003e8
+7080cc03
+20600000
+44eec01b
+6fe0c407
+c000efb5
+c0016fbb
+20600000
+580003e8
+67e14405
+68494403
+6fe143ff
+da6007d0
+20206fc0
+580007d0
+67e14405
+684943fd
+6fe14401
+da6003e8
+98462200
+6fe1440a
+98467e00
+24216fcd
+68494405
+984fa400
+1a627e00
+9a2ffe00
+9a40fe00
+9a26fc00
+20407d62
+1807fe00
+20600000
+18427e00
+6849440a
+98467e00
+68494405
+984fa400
+1a627e00
+9a2ffe00
+9a467e00
+24217dca
+20206fc9
+efe40011
+67e40670
+6fe10670
+68490672
+98462200
+6fe10676
+98462400
+68490674
+98467c00
+24416fe7
+1a4ffe64
+9a26fc00
+20407d62
+1807fe00
+205a6fef
+20600000
+6fe0c40c
+79207e00
+67e0c40c
+20600000
+6fe0c40c
+793ffe00
+67e0c40c
+20600000
+6848c40c
+79200401
+6048c40c
+20600000
+6848c40c
+793f8401
+6048c40c
+20600000
+6fe1442c
+efe0803f
+207a0000
+1fe27200
+6fe1442c
+1fe0fe03
+1fe22200
+e8408011
+20406edd
+1a20a201
+c2006ffe
+20600000
+6fe1442c
+1fe0fe03
+1fe22200
+18002400
+58000000
+67e106f1
+e8408011
+20406ee6
+44ef401b
+6fe106f1
+1a420e00
+f920fe00
+67e106f1
+1a20a201
+1a40a401
+6fe1442c
+efe0803f
+9a42fc00
+2422f009
+6fe106f1
+6849442e
+9842fc00
+20628000
+20207dba
+6fe1442c
+efe0803f
+207a0000
+1fe27200
+6fe1442c
+1fe0fe03
+1fe22200
+e8408011
+20406eb2
+1a20a201
+c2007022
+20600000
+d8e00009
+20407cef
+247a0000
+58000020
+d8e00009
+20407ce1
+78547c00
+2040701b
+44efc01b
+6fe1442c
+efe0803f
+207a0000
+20407003
+243477a5
+204077a3
+78547c00
+6fe106f1
+67e106f8
+7006fa00
+18000e00
+6fe1442e
+1fe30400
+6049442e
+1fe17e01
+684906f8
+18412201
+18430400
+604906f8
+9a22fc00
+2442f050
+6fe1442c
+efe0803f
+684886fa
+18408401
+604886fa
+18420e00
+98e2fc00
+2422f03b
+6fe106f1
+67e1442e
+20600000
+44f0401c
+6fe1442c
+1fe0fe01
+efe1003f
+20207d79
+6ff08042
+9a21fe00
+67f08042
+6ff10050
+793ffe0d
+67f10050
+20000064
+20600000
+6ff08042
+c2837062
+c283f064
+58b71b00
+20600000
+596e3600
+20600000
+580080e8
+20600000
+68498672
+2040705d
+9846fc00
+20407d62
+18078400
+6fe08675
+984ffe00
+1fe6fc64
+20407d62
+1807a200
+18427e00
+9a262400
+6fe08671
+2040707a
+6fe08670
+68488671
+1841040f
+184d0400
+9841fe00
+202070ba
+98000e00
+20407088
+2020707d
+6ff080be
+f9207e00
+67f080be
+68588042
+284ffe07
+2040f086
+f93ffe00
+67f080be
+20600000
+200001e0
+20600000
+1fe17e0f
+d8a0809c
+1feffe04
+98a08a00
+1a227e00
+e7e10005
+1a427e00
+e7e10005
+20600000
+1a4c8e00
+204070af
+1a4c8e00
+204070a9
+1a2c8e00
+7820fc00
+204070aa
+1a227e00
+204070b5
+1a427e00
+202070ba
+1a227e00
+204070bd
+1a427e00
+204070bd
+1a2c8e00
+7840fc00
+204070aa
+1a4c8e00
+7840fc00
+204070b0
+1a4c8e00
+7840fc00
+202070aa
+28effe07
+18e10e0f
+6ff080bc
+f920fe00
+67f080bc
+20600000
+28effe06
+18e10e0f
+6ff0809b
+f920fe00
+67f0809b
+20600000
+204070c5
+1fed7e00
+18e08410
+9841fe00
+20206f1d
+78347c00
+204070b5
+202070c0
+78547c00
+204070c5
+202070c0
+18e10e0f
+6ff0809a
+f9347e00
+67f0809a
+20600000
+1fec8e00
+18e10e0f
+20600000
+1fe20400
+44f0c01c
+204070d5
+58000800
+98467e00
+1fe20400
+18518400
+60588004
+20000578
+1fe20400
+1841040f
+6058800b
+20600000
+78367c00
+202070d9
+44f1401c
+78567c00
+6ff08043
+79367e03
+67f08043
+20600000
+d8400031
+67f20062
+67f10066
+60588061
+20600000
+6ff1012c
+20600000
+68710066
+69510062
+6a110064
+20600000
+60710066
+20600000
+20407dba
+dd600000
+204070e2
+c001712c
+1fe67c04
+20610000
+204070e4
+e8410003
+5800a654
+20407135
+2421711a
+1b020400
+58017f8e
+20407135
+2421711a
+1b020400
+58002328
+20407135
+20217111
+e8410003
+58001194
+20407135
+20217111
+204070e2
+1fe67c85
+20610000
+df200020
+e8410003
+58000230
+20407135
+20217111
+e8410003
+5800069a
+20407135
+24217116
+1b020400
+58000230
+20407135
+24217117
+1b020400
+5800ffff
+98467c00
+2022f131
+202070e8
+79205620
+1d635600
+c2007105
+20207125
+204070e2
+1fe67c07
+20610000
+e8410003
+58002328
+20407135
+20217111
+e8410003
+580008ca
+20407135
+20217111
+e8410003
+58000230
+20407135
+20217111
+204070e8
+1a627e00
+20207d79
+204070e4
+e8410003
+5800ffff
+98467c00
+24628000
+204070e8
+20407dbc
+1a627e00
+20207d79
+6a40c435
+18423000
+9a4fa400
+18438400
+98462200
+2441713e
+1a2ffe64
+9a467c00
+20600000
+1a262200
+20600000
+44f1c01c
+70023050
+d8a00231
+d8c042ab
+20407c8f
+d8c0448f
+20407c8d
+d8c005fe
+20407c8d
+204071fb
+d8c00158
+204071f6
+204071c1
+d8a006d1
+204071f2
+580f4240
+1fe22200
+6fe206d1
+9a26fc00
+20407d62
+18077e00
+67e205fa
+20600000
+70023041
+d8a00231
+204071a6
+204071a1
+6fe1c2c5
+e7e18005
+20407167
+d8c00158
+20407c8f
+d8c042ab
+20407c8f
+204071fb
+d8c006f1
+d8a006a1
+20407c8f
+202071c1
+6fe242ff
+e7e20005
+20407c9b
+20207c9a
+44f2401c
+70023041
+d8a00231
+204071a1
+204071a6
+6fe1c2be
+e7e18005
+20407167
+d8c042ab
+20407c8f
+d8c00158
+20407c8f
+204071fb
+d8c006f1
+d8a006a1
+20407c8f
+204071c1
+d8a006d1
+202071f2
+70023020
+d8c0063e
+d8a00231
+20407c8d
+204071fb
+d8c005e9
+204071f6
+204071c1
+d8a006a1
+20407375
+d8400001
+20407190
+d8a0428a
+204071f2
+d8400000
+20407190
+d8a006f1
+20207375
+44f2c01c
+70023035
+58000100
+67e10231
+204071a1
+204071a6
+d8c042ab
+20407c8f
+d8c00158
+20407c8f
+58006c65
+e7e10005
+58006274
+e7e10005
+e0408005
+204071fb
+202071c1
+6fe342db
+e7e30005
+6fe0c2d2
+e7e08005
+20600000
+6fe30178
+e7e30005
+6fe0c2cb
+e7e08005
+20600000
+70023041
+6fe0c4d0
+67e08231
+d8c0448f
+20407c8d
+d8c005fe
+20407c8d
+204071fb
+d8c00158
+204071f6
+202071c1
+70023041
+6fe0c4d0
+67e08231
+d8c005fe
+20407c8d
+d8c0448f
+20407c8d
+204071fb
+d8c042ab
+204071f6
+202071c1
+44f3401c
+20407210
+6fe08230
+1fe20400
+1fe0fe0f
+1ff1fe00
+1fe22400
+203a71d3
+18417e0f
+243a71d6
+da6006b1
+dfe00231
+1fe0fff0
+9840a200
+d8a006e1
+df200004
+20407ca9
+202071e1
+da400001
+da200000
+202071d7
+1841220f
+dfe00231
+9840fe00
+9a260c00
+d8a006d1
+20407236
+da6006c1
+da2006d1
+d8a006e1
+df200004
+20407ca9
+2040736f
+204072da
+d8c00231
+1a40a5ff
+1a427e00
+203a71ea
+20407361
+204072d4
+202071e4
+d8a006d1
+20407375
+d8c006e1
+20407361
+204072da
+d8c006d1
+20407361
+202072d4
+18a22200
+20407375
+df200010
+20207cb1
+d8a006a1
+20407c8f
+df200010
+da2006a1
+20207cb1
+6fe08230
+1fe27200
+da200231
+20207cb1
+efe08011
+1fe3fe00
+2a6ffe00
+7920fe00
+2feffe08
+7920a600
+e7e08011
+1a20a3ff
+c20071ff
+20600000
+da2006b1
+1a20a20f
+18007210
+18002600
+202071ff
+da2006c1
+2020720a
+d8c006a1
+2040735f
+18007008
+20407370
+2040736f
+204072d1
+d8a006b1
+20407375
+44f3c01c
+6fe086b1
+2feffe07
+2420f221
+20407209
+da6006b1
+d8a006b1
+2040722b
+20207222
+20407209
+d8c006b1
+d8a006c1
+20407c8f
+6fe086c1
+2feffe07
+2420f20e
+2040720e
+da6006c1
+d8a006c1
+df200003
+d8400000
+20407232
+1a60a604
+c200722c
+d8408700
+18500400
+efe20013
+9842fe00
+e7e20005
+20600000
+44f4401d
+df200010
+dfe00000
+9a267c00
+2022f241
+20217244
+e8408006
+e0408005
+1fe0fe01
+c2007239
+20600000
+d8400080
+e0408005
+2020723e
+d8400000
+20207242
+184d0400
+18500400
+98418400
+20600000
+44f4c01d
+20407306
+d8a0428a
+20207375
+d8a042ab
+2034f251
+d8a00158
+18c22200
+20407c8f
+2040731b
+d8c0429b
+2020738e
+da200158
+2034f259
+da2042ab
+1a220a00
+20407de7
+2020731b
+d8c042e5
+20407361
+d8c0428a
+20407362
+18006c38
+18006c00
+204072cf
+d8a001a8
+20207375
+18007008
+18007e49
+2020726c
+18007e49
+2020726b
+18007e01
+18007000
+184d5e00
+9de1de00
+1f00f001
+184cde00
+1df15e00
+6fe1445e
+1ff07e00
+9de1de00
+1f00f001
+ede20006
+1f00f001
+efe10006
+1a30de00
+1df05e00
+9de1de00
+1f00f001
+20600000
+1a608c01
+efe08006
+98002200
+20407268
+204072d1
+18007000
+efe08013
+1fe17e03
+1ff05e00
+79205e08
+2040736a
+204072d4
+1a227200
+1a608c02
+20407349
+20407353
+204072d4
+1f227e00
+203a7291
+2020728c
+1800700c
+1de27e00
+67e20150
+20600000
+1a20a201
+2040726a
+1a620c00
+2040735d
+204072d7
+2040737c
+1a60a610
+1a40a5f0
+20217295
+20600000
+204072c4
+44f5401d
+70806c00
+70806d01
+6fe0c169
+1fe17e03
+67f0806e
+6fe1068f
+67f10068
+5800416b
+67f1006a
+6a20c16a
+684ac450
+20407265
+70800a02
+70800a03
+6fe0c16a
+67f100c0
+1fe0fe04
+67e0c16a
+6fe2c450
+1fe0fe01
+793ffe27
+67e2c450
+20600000
+6ff1011a
+98467c00
+20628000
+247a0000
+202072b8
+6ff08108
+c303235a
+5800416b
+98408a00
+df00000c
+e5e20005
+202072cd
+44f5c01d
+1800700c
+20407370
+2040736f
+58000000
+67f100c0
+20600000
+6ff08108
+c30372cb
+70800a00
+20600000
+243bf2cf
+20600000
+18006c30
+18006c00
+202072cf
+18006c32
+18006c02
+202072cf
+18006c34
+18006c04
+202072cf
+18006c01
+18006c00
+20600000
+6ff08155
+c30172dd
+20600000
+67f100d2
+18006cc0
+18006c80
+202072dd
+18007000
+1a420c00
+18007204
+204072f3
+18006d80
+18006c80
+204072cf
+1800700c
+1a620a00
+18007204
+1de27e00
+e7e20005
+1f00f001
+c20072ee
+20600000
+efe10006
+e8410006
+18500400
+9841de00
+1f00f001
+c20072f3
+20600000
+18007008
+1a220c00
+18007204
+204072f3
+18007000
+1a420c00
+18007204
+204072f3
+18006d82
+18006c82
+204072cf
+202072eb
+18007000
+6fe20158
+98005e00
+1f00f001
+efe20006
+98005e00
+1f00f001
+6fe242ab
+98005e00
+1f00f001
+efe20006
+98005e00
+1f00f001
+20407370
+1f00f1fc
+6fe242ff
+1fe25e00
+1f00f004
+18006c38
+18006c08
+202072cf
+44f6401d
+6fe342db
+684b0178
+2034f321
+6fe30178
+684b42db
+18007008
+18425e00
+1f00f001
+184f5e00
+1ff07e00
+9de1de00
+1f00f001
+1fef5e00
+1f00f001
+18005e00
+18007e00
+6fe0c2cb
+6848c38c
+2434f331
+6fe0c2d2
+6848c2cb
+67e0c2bb
+6048c2bc
+18007000
+da4042bb
+18007204
+efe20011
+e8420012
+9842de00
+1f00f001
+1a20a204
+1a40a404
+c2007336
+20407370
+1f00f1fc
+6fe242ff
+1fe25e00
+1f00f004
+18006c38
+18006c0c
+204072cf
+2040736f
+18006c3a
+18006c08
+202072cf
+2f200600
+20608000
+18c27e00
+9f208a00
+18007e00
+e7e08005
+1f20f201
+2f200600
+20608000
+2020734e
+18007000
+1f227e00
+203a7358
+efe20006
+1f20f3fc
+98005e00
+1f00f001
+2f001e04
+20608000
+20207354
+18007008
+20207362
+18007004
+20207362
+18007000
+18007204
+efe20006
+98005e00
+1f00f001
+c2007363
+20600000
+d8c001a8
+2020735f
+18007204
+20207372
+18007000
+18007210
+20207371
+18007000
+18007204
+18005e00
+1f00f001
+c2007371
+20600000
+1800700c
+18007204
+1de27e00
+e7e20005
+1f00f001
+c2007377
+20600000
+1800700c
+1a620a00
+1a40f201
+1f267c0f
+20217382
+18007210
+1de27e00
+1f267c03
+2021738a
+e7e20005
+1f20f3fc
+20628000
+1f00f001
+20207382
+e7e08005
+1fecfe00
+c200738a
+20600000
+1800700c
+18007204
+efe20006
+9de67c00
+24628000
+1f00f001
+c2007390
+20207db8
+6ff08050
+793ffe00
+67f08050
+20600000
+6ff08050
+79207e00
+67f08050
+20600000
+d8a004d1
+3803ffff
+3807ffff
+380bffff
+380ffbff
+e7e48005
+3803ffff
+3807ffff
+380bffff
+380fffff
+e7e48005
+3803ffff
+3807ffff
+380bcfff
+380fffff
+e7e48005
+3803ffff
+3807ffff
+380bffef
+380fffff
+e7e48005
+3803ffff
+3807ffff
+380bffff
+380fffff
+e7e48005
+3803ffff
+38066c7f
+3808146b
+380f7bb3
+e7e48005
+3801feb8
+38050c12
+380ab722
+380e9fa6
+e7e48005
+3800e70f
+38056720
+3808519e
+380d9084
+e7e48005
+38031012
+380760bf
+380bf0af
+380c03d3
+e7e48005
+3803a188
+38043ad0
+380bcbf2
+380e43d9
+e7e48005
+3802b030
+38076a03
+38091188
+380de520
+e7e48005
+3803a11e
+3804fe5d
+3808dd57
+380dac93
+e7e48005
+380011ed
+380618c4
+38088da7
+380e57ff
+e7e48005
+3803192b
+38074641
+3809be0c
+380f66ad
+e7e48005
+38001f83
+38055a23
+380bf9b0
+380c3949
+e7e48005
+38013a51
+380553fd
+380b372a
+380cf1bb
+e7e48005
+3803ae85
+3805eed9
+38089e66
+380c01a8
+e7e40005
+20600000
+d8a00569
+3803ffff
+3807ffff
+380bffff
+380fffff
+e7e48005
+3803ffff
+3804003f
+38080000
+380c0000
+e7e48005
+38000000
+38040000
+38081000
+380c0000
+e7e48005
+3803ff00
+3807ffff
+380bffcf
+380fffff
+e7e48005
+3803ffff
+3807ffff
+380bffff
+380c03ff
+e7e48005
+38000000
+38040000
+38080000
+380c0000
+e7e48005
+38010000
+38040000
+380bf000
+380fffff
+e7e48005
+380296ff
+38062630
+380b945d
+380fd284
+e7e48005
+380333a0
+38044b7a
+380837d8
+380fc9dc
+e7e48005
+3803a440
+3805b958
+380b8bce
+380d091f
+e7e48005
+3802e12c
+3805f47c
+380b56b1
+380efd47
+e7e48005
+38006837
+3806ed90
+3809ecec
+380dacc5
+e7e48005
+38023357
+38058af3
+3808f9e1
+380d29f0
+e7e48005
+3802e7eb
+3807e6e3
+380be1a7
+380d0b8b
+e7e48005
+38024fe3
+380420ef
+3809b5a6
+380cdc2f
+e7e48005
+38013860
+3806bd69
+3808391a
+380db222
+e7e48005
+20600000
+202074fc
+44f6c01d
+6fe0c46c
+207a0000
+6fe0c46e
+c1018000
+6fe0c46d
+c00074fc
+20600000
+70446d00
+20600000
+44f7401d
+580005fe
+d8a005f9
+98a67200
+20407ca1
+580044d1
+d8a044cf
+98a67200
+20207ca1
+20407476
+da20061e
+d8a004b1
+2040771c
+da2005fe
+d8a00471
+2040771c
+da200471
+da4005fe
+d8a00471
+20407684
+da200589
+da4005fe
+d8a00491
+20407684
+da200491
+da400471
+d8a00471
+20407720
+da200451
+da400471
+d8a00451
+20407720
+df200020
+da2004b1
+da400451
+20207d64
+da2005c9
+d8a00451
+2040771c
+da2005a9
+d8a00471
+2040771c
+da200471
+da4005a9
+d8a00471
+20407684
+da200589
+da4005a9
+d8a00491
+20407684
+da200491
+da400471
+d8a00471
+20407720
+da200451
+da400471
+d8a00451
+20207739
+18e08fff
+24610000
+180a7e00
+e7e10005
+2020748c
+18e08fff
+2421749c
+efe20011
+1fe20400
+efe20012
+9842fe00
+2422f49b
+1a20a204
+1a40a404
+20207491
+20207dc4
+20207dc6
+1fe10e07
+1fe97e00
+98c08c00
+efe08006
+afec0000
+20600000
+efe40006
+247a0000
+efe40006
+247a0000
+efe40006
+20600000
+efe20011
+98000400
+efe20012
+98467c00
+24628000
+1a20a204
+1a40a404
+c20074a9
+20600000
+18007206
+1a20a214
+1a40a414
+efe20012
+98000400
+efe20011
+98467e00
+24610000
+247a0000
+1a20a3fc
+1a40a5fc
+c20074b5
+20600000
+18007206
+18002600
+efe20011
+98000400
+efe20012
+9840fe00
+9a60fe00
+e7e20005
+2feffe20
+7920a600
+1a20a204
+1a40a404
+c20074c1
+20600000
+18007206
+18002600
+efe20012
+98000400
+efe20011
+98467e00
+9a667e00
+e7e20005
+2feffe20
+7920a600
+1a20a204
+1a40a404
+c20074cf
+20600000
+18007206
+1a20a214
+18002600
+efe20011
+2feffe00
+7920a601
+1fe37e00
+2a6ffe00
+7920fe1f
+e7e20011
+1a20a3fc
+1a632600
+c20074de
+20600000
+18007206
+18002600
+efe20011
+2feffe1f
+7920a601
+1fe3fe00
+2a6ffe00
+7920fe00
+e7e20011
+1a20a204
+1a632600
+c20074eb
+20600000
+18007206
+efe20006
+98005e00
+1f00f001
+c20074f7
+20600000
+44f7c01d
+6fe0c46c
+243a751d
+70446d00
+70446e00
+20600000
+6fe0c46c
+207a0000
+6fe0c46e
+c1018000
+20407552
+20207502
+d8a0446f
+38001abd
+3805b34f
+38099b8a
+380e6562
+e7e48005
+380340b7
+38041efa
+3808aff6
+380cfd41
+e7e48005
+3803d210
+38066cf8
+380b874c
+380f157c
+e7e48005
+3802d4a3
+3807d27d
+38080003
+e7e28005
+20600000
+6fe0c46e
+c1800000
+6fe0c46d
+c1800000
+204073f5
+d8a0446f
+18000e0f
+2040748c
+180a7e00
+1fe37e00
+e7e10005
+6fe0c46b
+245a7508
+d8a003b1
+d8c0446f
+20407c8d
+d8a00291
+d8c005a9
+20407c81
+d8a002d1
+20407c9d
+7002d101
+2040756a
+70446d03
+20600000
+d8a0448f
+d8c002f1
+20407c81
+70446e03
+70446d00
+20600000
+6fe085f9
+c1800000
+6fe0c46d
+c1800000
+d8a003b1
+d8c0446f
+20407c8d
+d8a00291
+d8c005fe
+20407c81
+d8a002d1
+20407c9d
+7002d101
+2040756a
+70446d04
+20600000
+d8a0063e
+d8c002f1
+20407c8d
+7005f903
+70446d00
+20600000
+6fe0c46c
+207a0000
+6fe0c46d
+207a0000
+1fe0fe80
+67e0c46d
+c3838000
+6fe1022e
+203a755c
+20207562
+44f8401e
+20407577
+6fe0c46d
+c001f536
+c002754c
+20600000
+20407589
+6fe1022e
+1fe0ffff
+67e1022e
+d8c003b1
+2040749d
+20608000
+202075da
+44f8c01e
+58000100
+67e1022e
+6fe1022e
+207a0000
+1fe0ffff
+67e1022e
+d8c003b1
+2040749d
+2020f56d
+d8c00291
+d8a00351
+20207c80
+da200391
+d8a00491
+20407646
+da200491
+d8a00431
+2040771c
+da200351
+da400431
+d8a002f1
+20407684
+da200491
+da400431
+d8a00471
+20407684
+da200371
+da400471
+d8a00311
+20207684
+da200391
+d8a00471
+2040771c
+da200471
+d8a00491
+2040771c
+da200589
+da400491
+d8a00491
+20407684
+da200351
+d8a00471
+2040771c
+d8c00471
+d8a00431
+20407c8d
+da200431
+20407723
+da200471
+da400431
+d8a00471
+20407720
+da200471
+da400491
+d8a00471
+20407720
+d8c00351
+d8a00431
+20407c8d
+da200371
+d8a00491
+2040771c
+da200431
+20407723
+da200431
+20407723
+da200431
+da400491
+d8a00431
+20407684
+da200491
+d8a00451
+2040771c
+da200451
+20407723
+da200451
+20407723
+da200451
+20407723
+d8c00371
+d8a00491
+20407c8d
+da200491
+20407723
+da200491
+da400391
+d8a00391
+20407684
+da200471
+d8a00491
+2040771c
+da200491
+da400431
+d8a00491
+20407739
+da200491
+da400431
+d8a00351
+20407739
+da200431
+da400351
+d8a00491
+20407739
+da200491
+da400471
+d8a00491
+20407684
+da200491
+da400451
+d8a00371
+20207739
+da2002d1
+d8a004b1
+2040771c
+da200351
+da4004b1
+d8a00451
+20407684
+da2002d1
+da4004b1
+d8a004b1
+20407684
+da200371
+da4004b1
+d8a00431
+20407684
+da200391
+d8a004b1
+2040771c
+da200291
+da4004b1
+d8a00471
+20407684
+da200391
+da4004b1
+d8a004b1
+20407684
+da2002b1
+da4004b1
+d8a00491
+20407684
+da400451
+da200471
+d8a004b1
+20407739
+da200451
+da400471
+d8a00451
+20407720
+da400431
+da200491
+d8a00471
+20407739
+da200431
+da400491
+d8a00431
+20407720
+da200431
+da4004b1
+d8a00431
+20407684
+da200391
+da4002d1
+d8a00491
+20407684
+da200491
+da4004b1
+d8a00391
+20407684
+da2004b1
+d8a004b1
+2040771c
+da2004b1
+da400451
+d8a00491
+20407684
+da2004b1
+da400431
+d8a00431
+20407684
+da200471
+d8a00351
+2040771c
+da200351
+da400491
+d8a00351
+20407739
+d8c00351
+d8a004b1
+20407c8d
+da2004b1
+20407723
+da200491
+da4004b1
+d8a00491
+20407739
+da200491
+da400471
+d8a00471
+20407684
+da200471
+da400431
+d8a00371
+20407739
+da200371
+da400569
+d8a00371
+18002600
+6fe08371
+2feffe00
+2040f71e
+1a626000
+da200371
+2040774e
+6fe08390
+2e0ffe00
+7920fe07
+67e08390
+20600000
+18a21600
+d8a00451
+20407c9d
+18007e00
+67e20471
+70045101
+d8a003d1
+20407c9f
+d8c00569
+d8a00411
+20407c8d
+1a220c00
+d8a00431
+20407c8d
+d8c00431
+20407758
+203a767d
+da200431
+da400451
+2040775b
+da200411
+da4003d1
+2040775b
+da200431
+da400411
+20407754
+2021766f
+da200411
+da400431
+1a220a00
+2040774c
+da200451
+da4003d1
+1a420a00
+2040771e
+efe08011
+9a60a600
+efe08012
+9a60fe00
+e7e08012
+20207654
+da200431
+da400411
+1a220a00
+2040774c
+da2003d1
+da400451
+1a420a00
+2040771e
+efe08011
+9a60a600
+efe08012
+9a60fe00
+e7e08012
+20207654
+da2003d1
+19620a00
+204076ad
+da200569
+19622400
+19620a00
+20207739
+18a21600
+18007000
+d8a003d1
+20407c9f
+d8a006b1
+20407c9f
+1a220c00
+7006b100
+58000000
+20407716
+1a420c00
+2040771a
+18000e00
+d8a003d1
+d84006b1
+18e22400
+1a4bfe00
+9840a400
+18000400
+18002600
+efe20005
+98002200
+efe20012
+1a627000
+9deffe00
+9a20fe00
+9840fe00
+e7e20005
+1fef0400
+1a60a601
+2a61fe08
+2420f698
+18427e00
+e7e20005
+18a08be0
+18e08e01
+28e1fe08
+2420f692
+da2003d1
+19620a00
+202076ad
+44f9401e
+18a21600
+1a226000
+da400411
+1a420a00
+20407c9b
+e7e40005
+1a208c2c
+20407c89
+20407c83
+1a422200
+20407723
+da400411
+1e022200
+19620a00
+20407720
+da400411
+1a420a00
+20407c9b
+e7e40005
+1e008c30
+20407c8f
+20407c9b
+1a422200
+20407723
+da400411
+19622200
+1a220a00
+20407720
+da400411
+1a420a00
+1e008c20
+20407c83
+20407c9b
+e7e40005
+1e008c38
+20407c89
+19622200
+1a220a00
+20407720
+da400411
+1a420a00
+1e008c24
+20407c83
+1e008c34
+20407c83
+1e008c34
+20407c84
+1e008c20
+20407c84
+19622200
+1a220a00
+20407720
+da400411
+1a420a00
+1e008c2c
+20407c83
+20407c9b
+e7e40005
+1e008c20
+20407c84
+1e008c28
+20407c84
+19622200
+1a220a00
+20407739
+da400411
+1a420a00
+1e008c30
+20407c89
+20407c89
+18007e00
+e7e40005
+1e008c24
+20407c84
+1e008c2c
+20407c84
+19622200
+1a220a00
+20407739
+da400411
+1a420a00
+1e008c34
+20407c83
+1e008c20
+20407c83
+20407c9b
+1e008c30
+20407c84
+19622200
+1a220a00
+20407739
+da400411
+1a420a00
+1e008c38
+20407c89
+20407c9b
+1e008c24
+20407c83
+20407c9b
+1e008c34
+20407c84
+19622200
+1a220a00
+20207739
+18007220
+d8a006b1
+98a08a00
+20207cda
+18007208
+202074f7
+1a222400
+20207684
+18007208
+202074c0
+2040771e
+18a22200
+20207724
+20407751
+2a6ffe00
+2020f72d
+da400569
+1a222600
+1a20a3e0
+20407754
+24610000
+1a622200
+20207735
+20407735
+1a222600
+1a20a3e0
+da400569
+20407754
+24610000
+1a622200
+20207735
+1a20a3e0
+da400569
+1a220a00
+2020774c
+2040774c
+2020f743
+18a0a3e0
+da400569
+20407754
+24610000
+da400569
+18a0a3e0
+1a220a00
+2020774c
+18a0a3e0
+da400569
+1a220a00
+2040771e
+20608000
+18a0a3e0
+da400569
+1a220a00
+2020771e
+18007208
+202074ce
+18007208
+1a20a21c
+202074dd
+18007208
+18002600
+202074eb
+18007208
+1a20a21c
+1a40a41c
+202074b5
+efe40006
+247a0000
+202074a3
+1a226000
+1e022200
+efe08011
+2feffe00
+20608000
+2040774e
+efe08012
+2fec0000
+2020f76b
+da200569
+1a420a00
+2040771e
+efe08012
+9a60fe00
+e7e08012
+1a40a5e0
+1a40a220
+18007209
+204074dd
+2020775c
+20758000
+204023d8
+20407776
+2040781b
+202077ac
+204077cf
+2020780a
+6fe0c4ec
+c17f8000
+98000400
+20406ef7
+6848c4ec
+20406ef3
+20000064
+6848c4ec
+20406edd
+20207780
+44f9c01e
+6fe0c4ec
+c17f8000
+1fe20400
+20406ee6
+2420f792
+2040779c
+6fe144e9
+79207e0c
+67e144e9
+6fe0c4e4
+c1000000
+7044e400
+6fe0c4eb
+67e0c4e3
+204077a3
+70066f2c
+2020782b
+6fe144e9
+793ffe0c
+67e144e9
+6fe0c4e4
+c1008000
+7044e401
+7044e300
+204077a5
+70066f2d
+2020782b
+6fe0c4e3
+207a0000
+1fe0ffff
+67e0c4e3
+247a0000
+70066f10
+2020782b
+d8e00007
+202024e7
+d8e00007
+202024eb
+44fa401e
+6fe144ef
+1a2fa40b
+9a40a400
+20600000
+6fe0c4ee
+207a0000
+1fe27200
+6fe144ef
+1fe22400
+1a40a602
+e8408013
+204077b7
+1a40a40b
+c20077b1
+20600000
+6fe0c4ed
+203a6ef3
+20206ef7
+204077a7
+58000002
+e7e08012
+20407804
+202077db
+204077a7
+58000003
+e7e08012
+20407804
+202077d8
+204077a7
+58000001
+e7e08012
+580000ff
+e7e08005
+202077d8
+204077a7
+df20000b
+1a620c00
+1a420a00
+20207ccc
+6fe0c4ee
+207a0000
+da200000
+204077de
+1a20a201
+6fe0c4ee
+9a267c00
+20628000
+202077d2
+1a40a602
+e8408013
+20206ef3
+1a40a602
+e8408013
+20206ef7
+1a208e0b
+20407cef
+247a0000
+204077a7
+efe08012
+c00177db
+c001f7d8
+c00077d8
+c002f7f2
+204077db
+1a40a607
+20407c49
+efe10013
+20407d79
+20407c55
+58000005
+e7e08012
+1a40a603
+efe10013
+20207802
+204077d8
+1a40a609
+20407c49
+efe10013
+20407d79
+20407c55
+1a40a601
+efe08013
+c07ff7fe
+1fe0ffff
+e7e08013
+203a77bf
+58000004
+e7e08012
+1a40a605
+efe10013
+1a208e0b
+20207ce1
+58000000
+20207802
+58001000
+1ff07e00
+9a40a400
+20600000
+44fac01e
+da200000
+684a44e5
+1c422400
+1a427e00
+98467c00
+24417806
+1a427e00
+184084a0
+184084a0
+98467c00
+2421781e
+1a20a201
+1a217e0f
+243a7811
+da200000
+20407824
+1c427e00
+67e244e5
+20600000
+1a227e00
+207a0000
+18408560
+18408560
+793f841c
+604a44e5
+202042d4
+7044d101
+6fe0c4d2
+243a7826
+20600000
+7044d100
+20600000
+44fb401e
+20407825
+1a227e00
+67e20684
+da2044d3
+20407d8b
+6fe20684
+1fe22200
+20207829
+44fbc01e
+20407825
+1a227e00
+67e20684
+da2044db
+20407d8b
+6fe20684
+1fe22200
+20207829
+58000000
+67e444db
+67e444d3
+20600000
+44fc401f
+6fe0c114
+247a0000
+da2044db
+20407da3
+207a0000
+70066e00
+2040784c
+6fe0866e
+203a7841
+20600000
+20407825
+da2044db
+20407d97
+1fe20400
+20407829
+44fcc01f
+18427e00
+207a0000
+c006f870
+c0077876
+c007f87b
+c0087881
+c009f88b
+c00a788d
+c00af88f
+c00b7899
+c00bf89c
+c00c789e
+c00cf8a1
+67e0866f
+6fe0866f
+c584f869
+44fd401f
+6fe0866f
+c008f886
+c00df8a9
+c009788a
+c00feea3
+20600000
+67e0866f
+2040205d
+2022f86e
+20402062
+24628000
+70066e01
+20207834
+70438801
+70438b00
+6fe144e9
+79207e0b
+67e144e9
+20600000
+6fe144e9
+793ffe0b
+67e144e9
+70438800
+20600000
+70438801
+70438b01
+6fe144e9
+79207e0b
+67e144e9
+20600000
+6fe144e9
+793ffe0b
+67e144e9
+70438800
+20600000
+58000014
+67e10196
+67e142f5
+202030c5
+20202e93
+da200000
+202077bf
+da200000
+202077ba
+da200000
+204077a7
+efe08012
+c000f896
+c0027896
+c002f896
+202077c4
+efe08006
+c17f8000
+202077c4
+70434301
+7041141b
+20600000
+70434301
+20600000
+70434300
+70411400
+20600000
+6fe143d5
+20407d79
+6fe0c4ec
+c07ff8a7
+1fe20400
+20406edd
+2040783d
+20202417
+20202ed5
+6fe0c4e9
+c4060000
+20600000
+6fe143fb
+1fe08a02
+58000000
+e7e18005
+20600000
+44fdc01f
+20407dbc
+204078fe
+207a0000
+6fe143fb
+1fe0a402
+e8408012
+18408401
+e0408012
+e840803f
+18427200
+1fe0a404
+efe08012
+984ffe00
+98c08a00
+1a220c00
+20407cda
+20407902
+1fe0ffff
+e8408012
+18408401
+98410400
+e0408012
+20207dba
+44fe401f
+20407dbc
+204078fa
+207a0000
+6fe143fb
+1fe0a402
+e8408012
+184085ff
+e0408012
+e840803f
+18427200
+1fe0a403
+efe08012
+984ffe00
+98c08c00
+18c08c01
+1a220a00
+202078c2
+20407dbc
+204078fa
+207a0000
+6fe143fb
+e840803f
+18427200
+1fe0a403
+efe08012
+984ffe00
+98c08c00
+18c08c01
+18c22400
+1a220a00
+20407cda
+20207dba
+20407dbc
+204078fa
+207a0000
+6fe143fb
+e840803f
+18427200
+1fe0a403
+efe08012
+984ffe00
+98c08c00
+18c08a02
+1a220c00
+1f20f3ff
+20407cda
+20207dba
+6fe143fb
+1fe08c02
+efe08006
+20600000
+20407902
+e8408006
+98467e00
+20600000
+6fe143fb
+1fe08c01
+efe08006
+20600000
+44fec01f
+6ff08c22
+2feffe03
+2040f915
+6ff10c22
+67f10c22
+67e10709
+20407973
+204079a2
+20407b96
+20407bdf
+2020796b
+44ff401f
+20407396
+20407932
+708c0000
+20002710
+708c1200
+6ff10050
+793ffe0a
+67f10050
+708c1021
+708c119d
+708c003c
+58000763
+67f10c02
+67f10c06
+580007a3
+67f10c04
+708c1280
+708c0100
+708c22ff
+5800095f
+d8a0086d
+98a67200
+20207ca1
+6848886c
+20206edd
+6fe0890e
+207a0000
+6848886c
+20406ee6
+2020f915
+20600000
+70086b02
+58000000
+67e087a6
+67e10865
+1fe0fe01
+67e10867
+1fe0fe01
+67e10869
+d8a007fa
+58030404
+e7e18005
+58000409
+e7e10005
+d8a007ff
+38015906
+380610d2
+38090494
+380c0001
+e7e48005
+d8a0081d
+3801570f
+38055c9a
+380a56c6
+380dcdcd
+e7e48005
+38014420
+38065d99
+380a5636
+380c0001
+e7e38005
+d8a0083b
+3801620a
+38040c8c
+380b0333
+380cc0c0
+e7e48005
+38003130
+e7e10005
+58009272
+67e107a7
+580092cd
+67e107a9
+d8c09371
+d8a007ab
+df200013
+20407cda
+d8c09384
+d8a007be
+df20003c
+20407cda
+6fe10859
+20207d79
+6fe0885b
+207a0000
+67e087e0
+67e087f9
+20600000
+d8e00001
+20407cef
+247a0000
+6fe0890f
+247a0000
+6fe0890e
+245a7c38
+20600000
+6fe08709
+c2817976
+20600000
+2040797b
+20407cee
+58000280
+d8e00001
+20207ce1
+6fe08900
+c0817980
+70090f00
+70091000
+20600000
+6fe08912
+207a0000
+70091200
+70090002
+70090e01
+20600000
+6fe08709
+c28079af
+20600000
+69510c02
+6a110c04
+68710c06
+efe10003
+1fec8400
+18518400
+d8c00fff
+98c17200
+6721070c
+20600000
+20407989
+efe08003
+e7e08005
+c2007994
+60710c06
+20600000
+d8a0095f
+20407994
+d8400963
+60590c0e
+6fe08960
+1fe0fe06
+e7e08002
+708c1808
+20600000
+44ffc01f
+6fe08709
+c4028000
+20407989
+2841fe0d
+2020f999
+d8a0086d
+20407994
+6fe0870c
+c0007986
+c000f9b6
+1fe67c07
+20610000
+47004020
+793f8023
+6fe0886d
+1fe17e80
+c04079ba
+c00079c2
+2020235a
+6fe0886d
+c3838000
+20407b6a
+202079e9
+6fe0886d
+1ff1fe00
+1fe37e00
+1fe17e03
+c00079ca
+c000f9d0
+c00179d5
+2020235a
+6fe0886d
+1ff1fe00
+1fe37e00
+1fe17e03
+c00079d6
+c000f9de
+c00179e3
+2020235a
+6fe0886e
+c00479eb
+c0037a01
+c0057a46
+c0007a58
+202079e4
+6fe0886e
+c0017a8d
+c000fa91
+c001faa2
+202079e4
+202079e4
+6fe0886e
+c000faac
+c001fadb
+c002fb06
+c004fb1f
+c005fb3a
+c003f9e4
+202079e4
+6fe0886e
+c0057b4b
+c004fb5d
+c005fb7c
+202079e4
+202079e4
+4700c020
+6ff08c19
+79207e00
+67f08c19
+202079e9
+708c1b01
+20600000
+6fe0886d
+c0c079e4
+6fe08871
+c08079e4
+6fe08872
+c08079e4
+6fe08873
+c080f9e4
+6fe08874
+c08079e4
+6fe0886f
+c08079e4
+6fe08870
+c08079e4
+6fe0886b
+c00279fd
+c001f9ff
+202079e4
+da400001
+20207a72
+da400001
+20207a70
+47014020
+6fe08870
+c000fa14
+c0017a2d
+c001fa30
+c010fa09
+c0117a3e
+202079e4
+7008fd00
+6fe08871
+c0007a0e
+c000fa11
+202079e4
+6a4087d1
+da2007d1
+20207b8b
+6a4087ea
+da2007ea
+20207b8b
+6fe08911
+245a7a25
+580007ab
+684887ab
+67e10908
+6048890a
+6fe08873
+98467c00
+24217a23
+6fe0890a
+98002400
+6fe10908
+1fe0fe01
+98002200
+20207b8b
+6fe08873
+20207a1e
+6ff08c01
+245a7a29
+70091100
+20600000
+6ff08c01
+79207e07
+67f08c01
+20600000
+580007be
+684887be
+20207a18
+6fe0886f
+1fe67c03
+242179e4
+6fe0886f
+da2007fa
+c0007b89
+79200023
+da2007ff
+c000fb89
+da20081d
+c0017b89
+da20083b
+c001fb89
+20600000
+6fe10871
+c000fa42
+6a2107a7
+20207b89
+70090e01
+70090001
+6a2107a9
+20207b89
+6fe0886b
+c08279e4
+6fe0886d
+c0c0f9e4
+6fe0886f
+c08079e4
+6fe08870
+c08079e4
+6fe08873
+c080f9e4
+6fe08874
+c08079e4
+6fe08871
+c08079e4
+6fe08872
+c08079e4
+da400001
+20207a70
+6fe0886b
+c00179e4
+6fe0886f
+c08079e4
+6fe08870
+c08079e4
+6fe08873
+c08179e4
+6fe08874
+c08079e4
+6fe08872
+c08079e4
+6fe0886d
+c0407a6b
+c040fa76
+c0417a7a
+202079e4
+70090301
+20207a74
+6fe08871
+c08079e4
+da400002
+6fe08901
+c000fa69
+da200865
+20207b8b
+da200867
+20207b8b
+da200869
+20207b8b
+6fe0886b
+c08279e4
+da400002
+20207a70
+6fe0886b
+c08279e4
+6fe08871
+c040fa87
+c0417a89
+c041fa8b
+1fe17e7f
+c0007a83
+202079e4
+6fe08904
+da400002
+c000fa72
+20207a70
+6fe08905
+20207a84
+6fe08906
+20207a84
+6fe08907
+20207a84
+7008fb01
+da2008fc
+da400001
+20207b8b
+6fe1086f
+d84001ba
+98467c00
+2422f9e4
+6fe088f8
+243a7a9f
+7008b500
+6fe08873
+98002400
+da2008b5
+20407b8b
+d8a008b5
+df200040
+20207ca3
+7008f800
+7008b501
+20207a98
+6fe08873
+c080f9e4
+7008fd01
+da400001
+6fe088ff
+c0007aaa
+c000faab
+20207a70
+20207a72
+20207a70
+6fe0886b
+c08279e4
+6fe08873
+c08079e4
+6fe08874
+c08079e4
+6fe08870
+c08079e4
+6fe08872
+c08079e4
+6fe0886d
+c0007abb
+c000fac8
+c0017ac9
+202079e4
+6fe0886f
+c080f9e4
+6ff08c00
+793ffe07
+67f08c00
+70090100
+70090201
+6fe08903
+203a79e9
+70090300
+70090200
+70090002
+202079e9
+202079e4
+6fe0886f
+c08079e4
+6fe08871
+c040fad4
+c0417ad7
+c041fad9
+1fe17e7f
+c0007ad2
+202079e4
+70090400
+202079e9
+70090500
+70091201
+202079e9
+70090600
+20207ad5
+70090700
+20207ad5
+6fe08873
+c08079e4
+6fe08874
+c08079e4
+6fe0886d
+c0007ae4
+c000faf2
+c0017af3
+202079e4
+6fe0886f
+c080f9e4
+204048b1
+6ff08c00
+79207e07
+67f08c00
+70090101
+70090003
+7008f900
+204079e9
+20407cee
+58001388
+d8e0000f
+20207ce1
+202079e4
+6fe0886f
+c08079e4
+6fe08870
+c08079e4
+6fe08871
+c040fb00
+c0417b02
+c041fb04
+1fe17e7f
+c0007afe
+202079e4
+70090401
+202079e9
+70090501
+202079e9
+70090601
+202079e9
+70090701
+202079e9
+6fe0886d
+c08079e4
+6fe08871
+c08079e4
+6fe08872
+c08079e4
+6fe08873
+c08079e4
+6fe08874
+c08079e4
+6fe08870
+c08079e4
+6fe0886f
+1fe17e80
+c08079e4
+6fe0886f
+c0807b1d
+70086b02
+6fe0886f
+67f08c01
+204079e9
+70091101
+20600000
+70086b03
+20207b18
+6fe0886b
+c00179e4
+6fe0886d
+c08079e4
+6fe08871
+c08079e4
+6fe08872
+c08079e4
+6fe08873
+c08079e4
+6fe08874
+c08079e4
+6fe08870
+c08079e4
+6fe0886f
+1fe67c01
+242179e4
+6fe0886b
+c001fb34
+c0027b34
+202079e4
+6fe0886f
+c0007b38
+70086b04
+202079e9
+70086b03
+202079e9
+6fe0886b
+c08279e4
+6fe0886d
+c080f9e4
+6fe0886f
+c08079e4
+6fe08870
+c08079e4
+6fe08873
+c08079e4
+6fe08874
+c08079e4
+6fe08871
+c08079e4
+6fe08872
+c08079e4
+202079e9
+4701c020
+7008fb01
+6fe08870
+67e088fc
+6fe08871
+1fe67c01
+2042fb59
+6fe08900
+c08279e9
+70090002
+204079e9
+20007530
+20007530
+20600000
+70090e01
+70090200
+70090004
+20600000
+20003a98
+d8a00875
+20407993
+7008f701
+20407b6e
+6fe1086f
+67e108f5
+204079e9
+6fe0c3cb
+c1820000
+6fe088f9
+207a0000
+6fe08875
+67e0c621
+7008f900
+70461103
+20600000
+6fe1086f
+d8400200
+98467c00
+24628000
+6fe10871
+d8400000
+98467c00
+24628000
+6fe10873
+d8400001
+98467c00
+24628000
+7008f901
+20600000
+6fe08873
+c08079e4
+6fe0886f
+c0007b82
+c000fb85
+202079e4
+7008fe00
+7008ff01
+202079e9
+7008fa01
+7008fe01
+7008ff00
+202079e9
+ea408011
+1a20a201
+47024020
+7920000e
+c591fb90
+1a40a401
+1a43a400
+622107a4
+624087a6
+20207b96
+20600000
+d8e00000
+20207bd7
+4702c020
+6ff08c25
+c3800000
+6fe087a6
+207a0000
+1fe27200
+98000400
+6fe10873
+1fe67c40
+20217ba4
+1f267c40
+20217ba8
+18007240
+20207ba8
+9f267c00
+20217ba8
+98007200
+67e087a6
+6fe087a6
+9f267e00
+67e087a6
+1f20ffff
+67e0870e
+c591fbba
+1fe37e00
+1f20ffff
+67e0870e
+c5877bba
+793f800e
+e0408005
+58000003
+e7e08005
+1f20f3ff
+1f227e00
+2422fbba
+1f20f201
+6fe107a4
+1fe20c00
+efe08006
+e7e08005
+c591fbc1
+58000000
+e7e08005
+c2007bbc
+18c27e00
+67e107a4
+5800070e
+67f10c08
+d8e00000
+20407bd7
+6fe087a6
+247a0000
+708c1b02
+6fe08900
+c1808000
+70090002
+20600000
+da20074f
+d8e00001
+62310c0a
+1f20ffff
+e7e08011
+efe08006
+e7e08005
+c2007bd4
+58000000
+f9207e00
+67f08c18
+20600000
+d8e00002
+da200759
+62310c0c
+20207bd2
+47034020
+6fe0890d
+207a0000
+6ff08c25
+1fe17e0f
+243a7c30
+6fe0890e
+203a7c06
+6fe08900
+c001fc40
+c0817c06
+6fe08902
+243a7c06
+20407bee
+20207bf9
+6ff08c25
+c3808000
+6fe0890d
+c4008000
+6fe0890d
+793ffe01
+67e0890d
+6fe0890b
+207a0000
+c0087c28
+2020235a
+6ff08c25
+c3810000
+6fe0890d
+c4010000
+6fe0890d
+793ffe02
+67e0890d
+6fe0890c
+207a0000
+c0107c09
+c010fc24
+c0117c2c
+2020235a
+d8a00913
+df200040
+20207ca3
+6fe088fb
+684888fd
+98417e00
+203a7c20
+684888fe
+9840fe00
+c000fc11
+20207c20
+70090c00
+6fe08914
+c0017c21
+c001fc21
+6fe08914
+67e08913
+6fe08915
+e7e08005
+6fe08917
+e7e08005
+6fe08919
+e7e08005
+df200004
+d8c00913
+20207bdb
+70090c00
+df200008
+d8c00913
+20207bdb
+70090c00
+df200003
+d8c00933
+20207bdb
+70090b00
+df200008
+d8c00923
+20207bcf
+70090c00
+df200002
+d8c00943
+20207bdb
+6fe08900
+c0017c33
+20600000
+6ff08c00
+79207e07
+67f08c00
+70091001
+20600000
+6fe08900
+c1018000
+c0017c3c
+20600000
+6fe08910
+207a0000
+70090f01
+20207c43
+d8e0000f
+20407cef
+247a0000
+6ff08c00
+c4038000
+708c00fc
+20007530
+708c003c
+20600000
+60a10691
+604c0678
+61620680
+20407c51
+60c1068f
+6721069b
+60e10699
+20600000
+62220684
+62420688
+6261868c
+20600000
+4703c020
+6fe10691
+98000a00
+684c0678
+69620680
+20407c60
+6f21069b
+68e10699
+6fe1068f
+98000c00
+20600000
+6a220684
+6a420688
+6a61868c
+20600000
+6fe10691
+1fe20a00
+20600000
+6fe1068f
+1fe20c00
+20600000
+18a27e00
+67e10691
+20600000
+18c27e00
+67e1068f
+20600000
+18a27e00
+67e10691
+18c27e00
+67e1068f
+20600000
+6fe10691
+1fe20a00
+6fe1068f
+1fe20c00
+20600000
+98462200
+20610000
+da200100
+9a20fe00
+98462200
+20600000
+20407c8d
+20407c8d
+20207c8d
+20407c89
+efe08006
+e7e08005
+efe18006
+e7e18005
+20600000
+efe40006
+e7e40005
+20600000
+20407c8f
+20407c89
+20407c89
+20407c89
+20207c89
+1fe0ffff
+20000026
+243a7c91
+20600000
+df20000a
+20002ee0
+c2007c96
+20600000
+20407c9a
+20407c9b
+18007204
+20207ca3
+18007220
+20207ca3
+18007240
+20207ca3
+1f227e00
+207a0000
+18007e00
+e7e00005
+20600000
+df200020
+d8a006a1
+20207ca1
+efe20013
+e8420011
+9842fe00
+e7e20005
+1a20a204
+1a60a604
+c2007ca9
+20600000
+47044021
+1f227e00
+1fe67c01
+20610000
+9a20a400
+1a40a5ff
+1f237200
+e8408011
+efe08012
+e7e08011
+e0408012
+1a40a5ff
+1a20a201
+c2007cb8
+20600000
+1fef0400
+20407cc6
+18508400
+1ff07e00
+9841fe00
+20600000
+1ff10c00
+18d08c00
+1ff0fe00
+1ff07e00
+98c1fe00
+20600000
+4704c021
+1f227e00
+207a0000
+1f20f3f8
+20417c89
+20628000
+20217ccf
+1f20f208
+1f20f3fc
+20417c84
+20628000
+20217cd4
+1f20f204
+20207cda
+1f227e00
+207a0000
+efe08006
+e7e08005
+c2007cdc
+20600000
+58000000
+67e10670
+47054021
+20407cef
+68490670
+d8a040f4
+18e3fe00
+98a08a00
+e0410005
+20600000
+d9600800
+19701600
+9960fe00
+20600000
+d8e00000
+4705c021
+684a4095
+1c437e00
+67e24095
+98467c00
+24417cea
+98461600
+19620400
+d8c040f4
+18c20a00
+df200010
+efe10006
+98467e00
+20217cfe
+18007e00
+e7e10005
+c2007cfa
+d8c040f4
+18e3fe00
+98c08c00
+efe10006
+20600000
+98408400
+18427200
+6fe10044
+9f267e00
+20610000
+1fe67e00
+18510400
+18408401
+18500400
+98418400
+20600000
+20407d12
+20207d1f
+78547c00
+98467e00
+20217d17
+78347c00
+1fe67e00
+c4078000
+1fe22800
+d8410000
+6fe10044
+98467e00
+9a80fe00
+793ffe40
+20600000
+68490044
+98000c00
+1ff17e00
+984ffe00
+98c0fe00
+20600000
+1fed7e00
+1ff27e00
+6849c0bd
+9846fc00
+20407d62
+18078400
+20600000
+68490044
+9846fc00
+20407d5f
+1ff07e00
+18070400
+98418400
+20600000
+d8400000
+18422800
+efe08003
+20407d3f
+1a820400
+20407d70
+da40000a
+9a4ffe00
+9840fe00
+1fe20400
+c2007d34
+20600000
+d840003a
+98467c00
+24217d48
+d8400061
+98467c00
+20217d4b
+d8400037
+98467e00
+20600000
+d8400030
+98467e00
+20600000
+d8400057
+98467e00
+20600000
+1f267c00
+20628000
+1fe37e00
+c2007d50
+20600000
+18007e01
+1f267c00
+20628000
+1fe3fe00
+c2007d56
+20600000
+58000000
+1f222200
+e8410006
+9840fe00
+c2007d5b
+9a26fc00
+20407d62
+1807fe00
+20600000
+207a8000
+20207d62
+efe08011
+e8408012
+98467c00
+24628000
+1a20a201
+1a40a401
+c2007d64
+20207db8
+98467c00
+24610000
+18427e00
+20600000
+9840fe00
+98460400
+98467e00
+20600000
+d8a00000
+20207d77
+d8a04000
+df201000
+20207ca3
+207a0000
+1fe27a00
+204070d7
+70820301
+20600000
+67f10205
+6ff08203
+79207e04
+67f08203
+20600000
+67f10207
+6ff08203
+79207e06
+67f08203
+20600000
+67f10205
+70820330
+20600000
+47064021
+e8440011
+18417eff
+243a7d91
+184cfe00
+e7e40011
+1a20a207
+efe08011
+243a235a
+6fe0866f
+e7e08011
+20600000
+4706c021
+df200008
+efe40011
+207a0000
+efe08011
+243a7da0
+1a20a201
+c2007d9b
+2020235a
+d8400000
+e0408011
+20600000
+efe40011
+20600000
+efe08011
+20600000
+efe10011
+20600000
+d8400000
+6fe08006
+c2007daa
+18408401
+c2007daa
+18427e00
+20600000
+98467c00
+24610000
+18427e00
+20600000
+18007dff
+20600000
+18007c01
+20600000
+18007c00
+20600000
+78347c00
+20600000
+78547c00
+20600000
+78367c00
+20600000
+78567c00
+20600000
+7838fc00
+20600000
+7840fc00
+20600000
+7820fc00
+20600000
+58000001
+20600000
+58000000
+20600000
+1f267c00
+20628000
+e8408006
+9840fe00
+c2007dce
+20600000
+1f227e00
+207a0000
+18c27e00
+9f20fe00
+1fe0ffff
+1fe20c00
+efe08006
+18c08dfe
+e7e08005
+c2007dd8
+20600000
+1ff07e00
+1feb7e00
+20600000
+1fed7e00
+20207dde
+58000000
+67e40016
+79207e19
+e7e20005
+20600000
+df200010
+180a7e00
+e7e08005
+c2007de8
+20600000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+000082d8
\ No newline at end of file
Index: output/sched.rom
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/sched.rom	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/output/sched.rom	(working copy)
@@ -0,0 +1,509 @@
+mem_patch00:
+05   #mem_patch00
+00   #mem_patch01
+33   #mem_patch02
+07   #mem_patch03
+20   #mem_patch04
+01   #mem_patch05
+00   #mem_patch06
+00   #mem_patch07
+f4   #mem_patch08
+7f   #mem_patch09
+a5   #mem_patch0a
+3e   #mem_patch0b
+02   #mem_patch0c
+80   #mem_patch0d
+c2   #mem_patch0e
+00   #mem_patch0f
+11   #mem_patch10
+00   #mem_patch11
+00   #mem_patch12
+04   #mem_patch13
+00   #mem_patch14
+00   #mem_patch15
+02   #mem_patch16
+00   #mem_patch17
+20   #mem_patch18
+00   #mem_patch19
+20   #mem_patch1a
+3c   #mem_patch1b
+00   #mem_patch1c
+00   #mem_patch1d
+40   #mem_patch1e
+04   #mem_patch1f
+00   #mem_patch20
+00   #mem_patch21
+10   #mem_patch22
+04   #mem_patch23
+60   #mem_patch24
+00   #mem_patch25
+00   #mem_patch26
+00   #mem_patch27
+00   #mem_patch28
+30   #mem_patch29
+00   #mem_patch2a
+00   #mem_patch2b
+00   #mem_patch2c
+00   #mem_patch2d
+00   #mem_patch2e
+00   #mem_patch2f
+00   #mem_patch30
+00   #mem_patch31
+00   #mem_patch32
+00   #mem_patch33
+00   #mem_patch34
+00   #mem_patch35
+00   #mem_patch36
+00   #mem_patch37
+00   #mem_patch38
+00   #mem_patch39
+00   #mem_patch3a
+00   #mem_patch3b
+00   #mem_patch3c
+00   #mem_patch3d
+00   #mem_patch3e
+00   #mem_patch3f
+
+
+mem_mouse_flag:
+#mouse flag byte1
+#bit0 MOUSE_SELECT_DEVICE_FLAG
+#bit1 MOUSE_24G_PAIRING_FLAG
+#bit2 MOUSE_STORE_EEPROM_FLAG
+#bit3 MOUSE_BT_CANNEL_RECONN_FLAG
+#bit4 MOUSE_LOW_VOLTAGE_FLAG
+#bit5 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+#bit6 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+04
+
+#mouse flag byte2
+#bit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+#bit1 MOUSE_ENABLE_2K_EEPROM
+#bit2 MOUSE_ENABLE_INIT_DELAY
+#bit3 MOUSE_ENABLE_WAKEUP_FROM_POWER
+#bit4 MOUSE_ENABLE_16M
+#bit5 MOUSE_ENABLE_USB
+#bit6 MOUSE_ENABLE_24G_SEARCH_DONGLE
+#bit7 MOUSE_ENABLE_LOAD_AND_STORE_DPI
+09
+
+#mouse flag byte3
+#bit0 MOUSE_ENABLE_SPI2
+#bit1 MOUSE_ENABLE_24G
+#bit2 MOUSE_ENABLE_FLASH
+#bit3 MOUSE_ENABLE_EEPROM
+#bit4 MOUSE_ENABLE_OTP
+#bit5 MOUSE_ENABLE_ADC
+#bit6 MOUSE_ENABLE_KEYBOARD
+#bit7 MOUSE_ENABLE_DOUBLE_DPI_KEY
+#6a	#eeprom
+72	#otp
+
+#mouse flag byte4
+#bit0 MOUSE_ENABLE_24G_250Hz
+#bit1 MOUSE_ENABLE_24G_500Hz
+#bit2 MOUSE_ENABLE_24G_1000
+#bit3 MOUSE_ENABLE_BT_125Hz
+#bit4 MOUSE_ENABLE_DPI_LEVEL_4
+#bit5 MOUSE_ENABLE_USB_250
+#bit6 MOUSE_ENABLE_USB_500
+#bit7 MOUSE_ENABLE_USB_1000
+00
+
+#mouse flag byte5
+#bit0 MOUSE_ENABLE_1IO2LED
+#bit1 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+#bit2 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+#bit3 MOUSE_ENABLE_LOW_LED
+#bit4 MOUSE_ENABLE_LOW_FOR_LED
+#bit5 MOUSE_ENABLE_DPI_FOR_LED
+#bit6 MOUSE_ENABLE_DPI_LOW_FOR_LED
+#bit7 MOUSE_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+08
+
+#mouse flag byte6 
+#bit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+#bit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
+#bit2 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+#bit3 MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN_OR_MATRIX
+#bit4 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+#bit5 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+#bit6 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING 
+00
+
+#mouse flag byte7
+#bit0 MOUSE_ENABLE_AUTO_24G_PARING
+#bit1 MOUSE_ENABLE_24G_POWER_ON_PAIRING
+#bit2 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+#bit3 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+#bit4 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+#bit5 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+#bit6 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+#bit7 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+00
+
+#mouse flag byte8
+#bit0 MOUSE_ENABLE_SMOOTHER
+#bit1 MOUSE_ENABLE_XY_OFFSET
+#bit2 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+#bit3 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+#bit4 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+#bit5 MOUSE_ENABLE_24G_2M_PHY
+#bit6 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+0c
+
+
+mem_device_option:0f
+mem_power_on_flag_new:01
+
+#ui
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:1e
+mem_ui_led_struct_num:01
+mem_ui_led_struct_ptr:mem_keyboard_led_type
+mem_keyboard_struct_led_gpio:ff
+
+#rf
+mem_tx_power:01	#00--0db 01--3db  02--5db  03--f3db  04--f5db
+mem_rssi_buff_index:07
+mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
+mem_rssi_dis_min_24g_init:85
+mem_rssi_dis_max_24g_init:90
+mem_rssi_dis_min_ble_init:75
+mem_rssi_dis_max_ble_init:80
+mem_rssi_hex_received_max_value_init:63
+mem_power_ctrl_pac_succ_cnt_init:7d
+
+#usb
+mem_usb_level_check_gpio:ff
+mem_usb_vid_pid_new:
+01 #enable
+#mouse only#auto pair
+51 31#VID
+10 50#PID
+#mouse & keyboard
+51 31#VID
+20 50#PID
+
+#2.4g
+mem_24g_lap: 33 11 3b 55 51 a1
+mem_24g_data_type:02	#01--mouse  02--keyboard
+mem_24g_fast_conn_enable:01
+mem_24g_fast_conn_addr:0f 0f 0f 0f
+mem_24g_ch_map_update:00   #00--disable   01--enable
+mem_24g_long_sleep_set_level:02    #00--30ms   01--50ms  02--80ms  03--100ms
+mem_24g_disable_fec1:00	 #00--default mode  01--new process
+mem_24g_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
+mem_mouse_24g_pair_tx_power:94 #-20dBm
+
+mem_24g_enter_hibernate:00 48 60
+mem_24g_long_sleep_param_update_timer_init:0a 00	#1s
+mem_24g_transmit_by_interrupt_exit_count_init:50 00
+mem_mouse_24g_search_dongle_time_init:32 00	#3mins
+mem_store_information_delay_timer_init:02
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+
+#bt
+mem_lpm_mode:01
+mem_lpm_mult:20
+mem_lpm_mult_init:20
+
+
+#ble
+mem_le_lap:73 83 92 a1 b1 c1
+mem_le_adv_channel_map:07
+
+mem_le_battery_level_updata_timer_init:96 00
+mem_le_keyboard_handle:15 00
+mem_le_notify_handle:19 00
+mem_le_multimedia_handle:1d 00
+mem_le_systemctrl_handle:21 00
+mem_le_pairing_handle:28 00
+mem_le_battery_level_handle:30 00
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#flag
+02 01 05 
+#uuid
+03 03 12 18 
+#appearance
+03 19 c1 03
+
+mem_le_adv_swift_pair:
+#microsoft swift pair
+#06 ff 06 00 03 00 80	
+#name
+'\09BT5.2 Keyboard
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BT5.2 Keyboard
+
+#max 20bytes, att list data rom limits
+mem_le_name_len:
+'BT5.2 Keyboard
+
+mem_le_interval_min:
+07 00 #min interval
+07 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+mem_le_adv_ind:03 12 18
+mem_le_adv_direct_ind:ff 00 00
+
+mem_le_search_mac_manu_name:
+41 70 70 6c 65 20 49 6e 63
+mem_le_search_mac_uuid:
+0a 18
+mem_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
+mem_keybord_appearance:c1 03
+mem_keyboard_le_map_len:78 00
+
+mem_keyboard_change_vid_pid_flag:
+01			# 00:disable    01:enable
+02
+e8 04		# vid: 04 e8
+21 70		# pid: 70 21
+01 00
+
+#adc
+#adc
+mem_mouse_vdd_full_vol:dc 05		#1.5V
+84 03#mem_mouse_vdd_empty_vol  :0.9V
+e8 03#mem_mouse_vdd_low_vol   :1.0V
+#mem_mouse_vdd_full_vol:e4 0c		#3.3V
+#b8 0b#mem_mouse_vdd_empty_vol  :3.0V
+#80 0c#mem_mouse_vdd_low_vol   :3.2V
+
+#adc config
+mem_adc_config_flag:02
+#01 ADC_CONFIG_HVIN
+#02 ADC_CONFIG_GPIO
+mem_adc_clkdiv:0a
+mem_adc_channel:0c
+#00 ADC_CH_VBAT
+#01 ADC_CH_VDCDC5V
+#06 ADC_CH_GPIO18
+#07 ADC_CH_GPIO10
+#08 ADC_CH_GPIO9
+#09 ADC_CH_GPIO12
+#0a ADC_CH_GPIO6
+#0b ADC_CH_GPIO20
+#0c ADC_CH_GPIO21
+#0d ADC_CH_GPIO22
+#0e ADC_CH_GPIO13
+
+mem_adc_dma_enable:00
+mem_adc_saddr_ptr:00 07
+mem_adc_eaddr_ptr:ff 07
+
+#led
+mem_keyboard_device_poweron_timer_count_init:1e
+mem_keyboard_disconvey_led_blink_time:e8 03	#500ms on 500ms off
+
+
+#system
+mem_mouse_24g_power_on_fast_conn_timer:02 00	#1s
+mem_mouse_24g_reconn_timeout_init:64 #10s
+mem_mouse_24g_pair_timeout_init:58 02  #1min
+mem_mouse_fast_direct_timeout:64 #10s
+mem_mouse_direct_timeout:64  #10s
+mem_mouse_discovery_timeout:58 02  #1min
+mem_mouse_no_data_timeout:70 17   #10mins
+mem_adc_low_volatage_led_blink_timer:64 00 #10s
+
+mem_same_keyvalue_timer_init:B8 0B		#5min
+mem_keyboard_caps_led_on_timer:58 02	#1min
+
+
+mem_device_flag:01	#00--24g 01--bt/ble
+mem_device1_type:34
+mem_device1_addr:00 00 00 00 00 00
+mem_keyboard_factory_addr:ff ff ff ff ff ff
+
+mem_device_number:01
+mem_keyboard_usb_enable:00
+mem_keyboard_switch_device_to_g24:01 7f 1e		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt1:01  7f 1f		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt2:01  7f 20		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt3:01  7f 21		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_usb:01  7f 22
+
+#rgb
+mem_rgb_on_color:
+07		#white
+01		#blue
+02		#green
+04		#red
+03		#cyan
+05		#purple
+06		#orange
+
+mem_customize_timer_setup: 50 00  	# n*0.3125ms
+mem_keyboard_led_on_time_init:58 02		#1min
+
+mem_rgb_pwm_conf:
+13	#pwm gpio
+01	#pwm channel
+a0	#three  byte frequency
+0f
+00
+1e 	#duty cycle (by percent %)
+
+mem_keyboard_led_r_gpio:ff #13
+mem_keyboard_led_g_gpio:ff #14
+mem_keyboard_led_b_gpio:ff #15
+
+##												bt button connct gnd          bt button in matrix        two button commbination
+mem_keyboard_pairing_type:01					#                 00                                    00                                 01
+mem_config_select_device_button_gpio:ff			#              00~16			               ff					ff
+mem_keyboard_commbination_key_bt:7f 06			#		 not care				   not care			     Fn+C
+mem_keyboard_commbination_key_24g:29 14		#		 not care				   not care			     Esc+Q
+mem_eeprom_wp_gpio:ff
+mem_eeprom_scl_gpio:17
+mem_eeprom_sda_gpio:16
+mem_eeprom_base:80 3f
+
+
+mem_keyboard_caps_led_gpio:88
+mem_keyboard_num_led_gpio:8c
+mem_keyboard_power_led_gpio:ff
+mem_keyboard_low_voltage_alarm_gpio:80
+mem_keyboard_scroll_led_gpio:80
+mem_keyboard_24g_led_gpio:80
+mem_keyboard_bt1_led_gpio:80
+mem_keyboard_bt2_led_gpio:ff
+mem_keyboard_bt3_led_gpio:ff
+
+
+
+mem_mcu_stb_gpio:01
+mem_mcu_clk_gpio:02
+mem_mcu_rstb_gpio:ff
+
+mem_sensor_motion_gpio:ff
+mem_mouse_reuse_2ice_gpio:05
+#portA:8x,portB:cx,fixed conf,don't change
+mem_key_excol_gpio:c2 c3 c4 c5 c6 c7 80 81 82 83 84 85
+
+#gpio00~16
+mem_key_row_gpio:
+0d		#r0
+0e 		#r1
+0f		#r2
+10 		#r3
+11 		#r4
+12 		#r5
+13 		#r6
+14		#r7
+
+#gpio00~16   portA:8x,portB:cx
+mem_key_col_gpio:
+85		#c0
+c4		#c1
+c5		#c2
+c6		#c3
+c3		#c4
+c2		#c5
+03		#c6
+04		#c7
+83		#c8
+84		#c9
+82		#c10
+c7		#c11
+80		#c12
+07		#c13
+06		#c14
+81		#c15
+0a		#c16
+0b		#c17
+ff		#c18
+ff		#c19
+
+mem_keyboard_keyvalue_map_new:
+#r0 ~ r7
+48 00 00 00 e4 00 e0 3e 				#c0
+14 2b 04 29 1d 8b 35 1e 				#c1
+1a 39 16 64 1b 8a 3a 1f 					#c2
+08 3c 07 3d 06 88 3b 20 				#c3
+15 17 09 0a 19 05 22 21 				#c4
+18 1c 0d 0b 10 11 23 24					#c5
+0c 30 0e 3f 36 87 2e 25 					#c6
+12 40 0f 00 37 7f 41 26 					#c7
+13 2f 33 34 32 38 2d 27 					#c8	
+47 00 7f e2 00 e6 00 46					#c9
+89 2a 31 44 28 45 42 43 				#c10
+5f 5c 59 2c 53 51 4c 00 					#c11
+60 5d 5a 62 54 4f 49 00 					#c12
+61 5e 5b 63 55 56 4b 4e 				#c13
+57 85 58 52 e9 50 4a 4d					#c14
+00 e1 e5 ed ee ec eb e8 				#c15
+f1 e3 f6 f8 f7 f9 ef fa					#c16
+91 f5 e7 f0 ea f2 fb 90					#c17
+
+mem_keyboard_fn_first:	00			#fn first  00:press f1~f12=f1~f12      01:press fn+f1~f12=f1~f12
+mem_keyboard_fn_esc:	29			#esc
+mem_keyboard_fn_f1:	e8			#f1
+mem_keyboard_fn_f2:	ed			#f2
+mem_keyboard_fn_f3:	ee			#f3
+mem_keyboard_fn_f4:	ef			#f4
+mem_keyboard_fn_f5:	eb			#f5
+mem_keyboard_fn_f6:	ec			#f6
+mem_keyboard_fn_f7:	e9			#f7
+mem_keyboard_fn_f8:	ea			#f8
+mem_keyboard_fn_f9:	fb			#f9
+mem_keyboard_fn_f10:	f1			#f10
+mem_keyboard_fn_f11:	f0			#f11
+mem_keyboard_fn_f12:	f5			#f12
+mem_keyboard_fn_del:	4c			#delete
+
+# 00: disable           01: enable
+mem_keyboard_fn_arrow_enable_flag:01
+mem_keyboard_fn_left_ctrl_enable_flag:00
+mem_keyboard_fn_space_enable_flag:00
+mem_keyboard_fn_system_switch_enable_flag:00
+
+
+mem_keyboard_commbination_fast_conn_bt:2a 10	# bs+M
+
+
+
+mem_system_clk:0c
+mem_lpm_xtalcnt:35 3f 64
+mem_lpm_isogate:db 7b 3b
+mem_lpm_hibernate_switch:20
+mem_lpm_ldo_sel:00
+mem_lpm_sysctl:08
+mem_lpm_hv_sel:b4
+
+mem_fcomp_div:18
+mem_xtal_c_sel:3e
+mem_gpio_wakeup_cfg:00 00 20 00 00 00 00 00 00 00 00 00
+
+mem_version:08 0e 05 03 00
+mem_le_tx2m_delay:20
+
+mem_rx_window_sniff:00 0c
+
+mem_gain_fix:ff	#00:soft agc; ff:hw agc
+mem_gain_table:04 00 00
+mem_gain_second_agc_en:08	#hw agc: 0:second agc disable
+mem_otp_load_check_sum:5a
+
+
+mem_ring_ibias_trim:a0
+mem_ring_ibias_vtune_high:bc 02 #700mv
+mem_ring_ibias_vtune_low:90 01 #400mv
+mem_ring_ibias_calc_adc_gpio:03
+mem_ring_ibias_calc_adc_channel:09
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
+
Index: program/app.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app.prog	(working copy)
@@ -0,0 +1,331 @@
+app_init:
+	bpatch patch16_1,mem_patch16
+	fetch 1,mem_device_option
+	branch app_init,blank				/* wait ram to be initialized */
+	beq DVC_OP_DONGLE,dongle_init
+	beq DVC_OP_SHUTTER,shutter_init
+	beq DVC_OP_MODULE,module_init
+	beq DVC_OP_CAR,car_init
+	beq DVC_OP_SHUTTER_DY,shutter_dy_init
+	beq DVC_OP_REMOTE_CAR,remote_car_init
+	beq DVC_OP_KEYBOARD,keyboard_init
+	beq DVC_OP_HCI_BOOT,hci_init
+//	beq DVC_OP_TEST,test_init
+	beq DVC_OP_MOUSE,mouse_init
+	beq DVC_OP_MESH,ali_mesh_init
+	rtn
+
+
+app_param_init:
+	rtn wake
+	call adc_init_data
+	fetch 1,mem_device_option
+	beq DVC_OP_SHUTTER,shutter_default_init
+	beq DVC_OP_SHUTTER_DY,shutter_default_init
+	beq DVC_OP_DONGLE,dongle_default_init
+	beq DVC_OP_MOUSE,mouse_default_init
+	beq DVC_OP_KEYBOARD,mouse_default_parm_init
+	beq DVC_OP_REMOTE_CAR,remote_car_default_init
+	rtn
+	
+app_process_idle:
+	call ui_dispatch
+	call check_51cmd
+	call app_process_bb_event
+	fetch 2,mem_cb_idle_process
+	branch callback_func
+
+app_process_ble:
+	fetch 2,mem_cb_le_process
+	branch callback_func
+
+app_process_bb_event:
+	bpatch patch16_2,mem_patch16
+	//return if c51 need to process bb event
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_out
+	rtn blank
+	//reaching here mains c51 cannot get bb event.
+	copy pdata,regc
+	call app_event_normal_process
+	branch app_process_bb_event_priority
+	
+app_discard_event:
+	arg 0,regc
+	rtn
+
+//************************************************//
+//*APP BB EVENT NORMAL PROCESS**//
+//************************************************//
+app_event_normal_process:
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_evt_button_long_pressed
+	beq BT_EVT_LE_CONNECTED,app_le_event_bb_connected
+	beq BT_EVT_LE_DISCONNECTED,app_le_event_bb_disconn
+	rtn
+
+
+
+app_process_bb_event_priority:
+	fetch 2,mem_cb_bb_event_process
+	branch callback_func
+	
+app_check_wake_lock:
+	fetch 2,mem_cb_check_wakelock
+	branch callback_func
+	
+app_will_enter_lpm:
+	fetch 2,mem_cb_before_lpm
+	branch callback_func
+
+app_le_event_bb_connected:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	rtn
+	
+app_le_event_bb_disconn:
+	jam 0,mem_le_l2cap_att_states
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	branch app_lpm_mult_disable
+	
+
+app_evt_button_long_pressed:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_BY_BUTTON,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+	
+
+app_evt_timer:
+	store 1,mem_app_evt_timer_count
+app_evt_100ms_loop:
+	bpatch patch16_3,mem_patch16
+	fetch 1,mem_app_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_app_evt_timer_count
+	call ui_button_polling
+	call app_lpm_wake_auto_lock_timer
+	call flash_write_spi_sm_timer
+	fetch 2,mem_cb_event_timer
+	call callback_func
+	branch app_evt_100ms_loop
+
+
+//regc:timer addr
+//regb:timer up call back fuction
+timer_single_step:
+	ifetch 1,regc
+	rtn blank
+	pincrease -1
+	istore 1,regc
+	nrtn blank
+	copy regb,pdata
+	branch callback_func
+
+//regc:timer addr
+//regb:timer up call back fuction
+timer_single_step_2B:
+	ifetch 2,regc
+	rtn blank
+	pincrease -1
+	istore 2,regc
+	nrtn blank
+	copy regb,pdata
+	branch callback_func
+	
+app_power_timer:
+	fetcht 2,mem_power_param_ptr
+	add temp,power_timer_offset,regc
+	arg app_power_timer_timeout,regb
+	branch timer_single_step
+	
+app_power_timer_timeout:
+	call app_got_power_state_common
+	beq POWER_STARTING,app_enter_power_stanby_state
+app_enter_power_off_state:
+	branch app_enter_hibernate
+app_enter_power_stanby_state:
+	setarg POWER_STANDBY
+	istore 1,regc
+	add temp,power_standby_cb_offset,regb
+app_power_cb_common:
+	ifetch 2,regb
+	branch callback_func
+
+
+app_bb_hibernate:
+	call app_disconn_reason_clear
+	branch app_enter_hibernate
+
+	
+app_disconn_reason_clear:
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	rtn
+app_disconn_reason_flag_clear:
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+
+	
+app_disconn_reason_collect_ble:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_BLE,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+	
+//************************************************//
+//********APP SHARED FUNCSIONS*******//
+//************************************************//
+
+
+app_get_lpm_wake_lock:
+	arg wake_lock_app,queue
+	branch lpm_get_wake_lock
+
+app_put_lpm_wake_lock:
+	arg wake_lock_app,queue
+	branch lpm_put_wake_lock
+	
+app_lpm_wake_auto_lock:
+	jam  LPM_WAKE_UP_DELAY_TIMER,mem_wake_up_delay_timer
+	branch app_get_lpm_wake_lock
+	
+app_lpm_wake_auto_lock_timer:
+	arg mem_wake_up_delay_timer,regc
+	arg app_put_lpm_wake_lock,regb
+	branch timer_single_step
+
+
+app_ble_start_direct_adv:
+	jam BT_CMD_START_DIRECT_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_ble_stop_direct_adv:
+	jam BT_CMD_STOP_DIRECT_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_stop_adv:
+	jam BT_CMD_STOP_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_adv:	
+	jam BT_CMD_START_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_scan:
+	jam BT_CMD_LE_START_SCAN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_stop_scan:
+	jam BT_CMD_LE_STOP_SCAN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_conn:
+	jam BT_CMD_LE_START_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_disconnect:
+	jam BT_CMD_LE_DISCONNECT,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_led_start_blink:	
+	jam BT_CMD_LED_BLINK,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_led_on:
+	jam BT_CMD_LED_ON,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_led_stop_blink:
+app_led_off:
+	jam BT_CMD_LED_OFF,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_enter_hibernate:
+	jam BT_CMD_ENTER_HIBERNATE,mem_fifo_temp 
+	branch ui_ipc_send_cmd
+	
+
+app_ble_store_reconn_info:
+	jam BT_CMD_STORE_RECONN_INFO_LE,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+
+app_lpm_mult_enable:
+	set1 mark_lpm_mult_enable,mark
+	rtn
+
+app_lpm_mult_disable:
+	set0 mark_lpm_mult_enable,mark
+	rtn
+
+
+/*
+
+mem_power_param struct
+{
+	usigned char     mem_power_state
+	usigned char     mem_power_timer
+	usigned char	 mem_power_off_timeout
+	usigned char	 mem_power_starting_timeout
+	usigned long	 mem_power_off_cb
+	usigned long	 mem_power_starting_cb
+	usigned long	 mem_power_standby_cb
+	usigned long 	 mem_ui_butten_up_cb
+}
+    	functions:power state switching by mem_app_power_timer timeout or by button_long_pressed event
+    	(power off -> power starting->power standby->power off) and power timer initialization 
+ input parameters:mem_power_param_ptr should be point to the variable(mem_power_param) address where the input parameters stored in with its format
+output parameters:switched power state will be stored in variable mem_power_state*/
+app_button_long_pressed:
+	call app_got_power_state_common
+	beq POWER_STANDBY,app_power_shutting_down
+app_power_starting:
+	setarg POWER_STARTING
+	istore 1,regc
+	add temp,power_starting_timeout_offset,rega
+	add temp,power_starting_cb_offset,regb
+app_power_common:
+	ifetcht 1,rega
+	increase 1,regc
+	istoret 1,regc
+	branch app_power_cb_common
+	
+app_power_shutting_down:
+	setarg POWER_OFF
+	istore 1,regc
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,app_power_off_end
+	call le_send_terminate_ind_user_terminated
+	call app_ble_disconnect
+app_power_off_end:
+	fetcht 2,mem_power_param_ptr
+	add temp,power_off_timeout_offset,rega
+	add temp,power_off_cb_offset,regb
+	branch app_power_common
+	
+app_got_power_state_common:
+	fetcht 2,mem_power_param_ptr
+	add temp,power_state_offset,regc
+	ifetch 1,regc
+	rtn
+
+app_event_button_up:
+	call app_got_power_state_common
+	bne POWER_OFF,app_power_release
+	branch app_enter_hibernate
+app_power_release:
+	add temp,ui_butten_up_cb_offset,regb
+	branch app_power_cb_common
+
+
+
+
Index: program/app_adpcm.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_adpcm.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_adpcm.prog	(working copy)
@@ -0,0 +1,132 @@
+
+ifdef COMPLIE_ADPCM
+/*
+input:
+	mem_ad_in_numSamples
+	mem_ad_in_ptr
+	mem_ad_out_ptr
+*/
+adpcm_decode:
+	fetch 8,mem_ad_state_valpred
+	store 8,mem_ad_valpred
+	jam  0,mem_ad_bufferstep
+	fetch 1,mem_ad_index
+	lshift2 pdata,pdata
+	arg mem_ad_stepsizeTable,temp
+	iadd temp,temp
+	ifetch 4,temp
+	store 4,mem_ad_step
+adpcm_decode_loop:
+	fetch 1,mem_ad_bufferstep
+	nbranch adpcm_next_byte,blank
+	fetcht 2,mem_ad_in_ptr
+	ifetch 1,temp
+	store 1,mem_ad_inputbuffer
+	increase 1,temp
+	storet 2,mem_ad_in_ptr
+	rshift4 pdata,pdata
+	store 1,mem_ad_delta
+	branch adpcm_cal
+adpcm_next_byte:
+	fetch 1,mem_ad_inputbuffer
+	and pdata,0x0f,pdata
+	store 1,mem_ad_delta
+adpcm_cal:	
+	fetch 1,mem_ad_bufferstep
+	setflip 0,pdata
+	store 1,mem_ad_bufferstep
+	arg mem_ad_indexTable,temp
+	fetch 1,mem_ad_delta
+	iadd temp,temp
+	ifetch 1,temp
+	fetcht 1,mem_ad_index
+	call adpcm_cal_index
+	store 1,mem_ad_index
+
+	fetch 1,mem_ad_delta
+	and pdata,0x08,temp
+	storet 1,mem_ad_sign
+	and pdata,0x07,temp
+	storet 1,mem_ad_delta
+
+	call adpcm_cal_vpdiff
+	storet 4,mem_ad_vpdiff
+	
+	fetch 1,mem_ad_sign
+	branch adpcm_cal_valpred,blank
+	fetch 4,mem_ad_valpred
+	fetcht 4,mem_ad_vpdiff
+	isub temp,pdata
+	branch adpcm_cal_valpred_end
+adpcm_cal_valpred:
+	fetch 4,mem_ad_valpred
+	fetcht 4,mem_ad_vpdiff
+	iadd temp,pdata
+adpcm_cal_valpred_end:	
+	store 4,mem_ad_valpred
+	arg 32767,temp
+	isub temp,pdata
+	bbit1 31,adpcm_cal_valpred_overflow
+	storet 4,mem_ad_valpred
+	branch adpcm_cal_valpred_overflow_end
+adpcm_cal_valpred_overflow:	
+	fetch 4,mem_ad_valpred
+	arg 32768,temp
+	iadd temp,pdata
+	bbit0 31,adpcm_cal_valpred_overflow_end
+	arg -32768,temp
+	storet 4,mem_ad_valpred
+adpcm_cal_valpred_overflow_end:	
+	fetch 1,mem_ad_index
+	lshift2 pdata,pdata
+	arg mem_ad_stepsizeTable,temp
+	iadd temp,temp
+	ifetch 4,temp
+	store 4,mem_ad_step
+
+	fetch 2,mem_ad_out_ptr
+	fetcht 2,mem_ad_valpred
+	istoret 2,pdata
+	increase 2,pdata
+	store 2,mem_ad_out_ptr
+
+	fetch 1,mem_ad_in_numSamples
+	increase -1,pdata
+	store 1,mem_ad_in_numSamples
+	nbranch adpcm_decode_loop, blank
+	fetch 8,mem_ad_valpred
+	store 8,mem_ad_state_valpred
+	rtn
+
+adpcm_cal_index:
+	iadd temp,pdata
+	bbit0 7,adpcm_cal_bigger_zero
+	setarg 0
+	rtn
+adpcm_cal_bigger_zero:
+	and pdata,0xff,pdata
+	sub pdata,88,null
+	rtn positive
+	setarg 88
+	rtn
+
+adpcm_cal_vpdiff:
+	fetchr rega,4,mem_ad_step
+	rshift3 rega,temp
+	fetch 1,mem_ad_delta
+	bbit0 2,adpcm_cal_vpdiff1
+	copy rega,pdata
+	iadd temp,temp
+adpcm_cal_vpdiff1:
+	fetch 1,mem_ad_delta
+	bbit0 1,adpcm_cal_vpdiff2
+	rshift rega,pdata
+	iadd temp,temp
+adpcm_cal_vpdiff2:
+	fetch 1,mem_ad_delta
+	rtnbit0 0
+	rshift2 rega,pdata
+	iadd temp,temp
+	rtn
+endif
+
Index: program/app_car.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_car.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_car.prog	(working copy)
@@ -0,0 +1,991 @@
+ifdef COMPILE_CAR
+
+define CAR_TEST_FUNCTION
+
+car_init:
+	call enable_authrom
+	rtn wake
+	setarg car_g24_receive_process
+	store 2,mem_cb_24g_receive_process
+	
+	setarg g24_bind_ackpayload_prep
+	store 2,mem_cb_24g_ackpayload
+	
+	setarg car_g24_cb_data_device1
+	store 2,mem_cb_24g_data_device1
+
+	setarg car_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+	
+	setarg car_le_process_lpm_before
+	store 2,mem_cb_before_lpm	
+		
+	setarg car_scale_process_idle	
+	store 2,mem_cb_idle_process	
+	
+	setarg car_scale_process_bb_event 
+	store 2,mem_cb_bb_event_process	
+	
+	setarg app_get_lpm_wake_lock
+	store 2,mem_cb_check_wakelock
+	
+	setarg car_le_receive_data
+	store 2,mem_cb_att_write
+	
+	setarg car_le_bb_event_timer
+	store 2,mem_cb_event_timer
+	
+	bpatch patch05_6,mem_patch05
+	call car_init_environment
+	call car_lpm_timer_enable
+	call queue_init
+	jam 2,mem_lpm_mult
+	jam POWER_ON,mem_car_24g_received_pac
+	fetch 1,mem_car_config_soft_switch_enable
+	store 1,mem_car_hard_soft_switch
+	beq HARD_SWITCH, car_hard_switch_power_on_signal
+	fetch 1,mem_car_config_soft_switch_gpio
+	store 1,mem_ui_button_gpio
+	jam OFF,mem_le_adv_enable
+car_soft_switch_power_on_init:
+	call ui_button_init
+	call ui_button_polling
+	jam POWER_STARTING,mem_car_power_state
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BTN_DOWN
+ 	branch app_enter_hibernate
+ 	
+
+car_power_off_signal:	
+	branch car_ui_led_init
+	
+car_hard_switch_power_on_signal:
+	jam POWER_STANDBY,mem_car_power_state
+car_soft_switch_power_on_signal:
+	jam ON,mem_le_adv_enable
+	setarg FAST_ADV_INTERVAL_VALUE_CAR
+	call shutter_ble_adv_interval_set
+car_le_modified_name_adv:
+	arg mem_le_name+7,contw
+	fetch 1,mem_le_lap
+car_name_loop:
+	and pdata,0xF0,temp
+	rshift4 temp,temp
+	call car_hex_to_ascii
+	istoret 1, contw
+	and pdata,0x0F,temp
+	call car_hex_to_ascii
+	istoret 1, contw
+	call le_modified_name_att_list
+	fetcht 1,mem_le_name_len
+	copy temp,loopcnt
+	arg mem_le_adv_data+2,contw
+	arg mem_le_name,contr
+	call memcpy
+car_le_modified_name_scan:
+	fetcht 1,mem_le_name_len
+	copy temp,loopcnt
+	arg mem_le_scan_data+2,contw
+	arg mem_le_name,contr
+	branch memcpy
+car_hex_to_ascii:
+	sub temp,9,null
+	branch car_hex_num,positive
+	add temp,55,temp
+	rtn
+car_hex_num:	
+	add temp,48,temp
+	rtn
+
+car_ui_led_init:
+	fetch 1,mem_car_config_blood_led1_gpio
+	bne INVALID_PIN_NUM,car_blood_led_gpio_set
+car_ui_led_init_1:
+	fetch 1,mem_car_config_pairing_led_gpio
+	bne INVALID_PIN_NUM,car_pairing_led_gpio_set
+car_ui_led_init_2:
+	fetch 1,mem_car_config_low_voltage_led_gpio
+	bne INVALID_PIN_NUM,car_low_voltage_led_gpio_set
+car_ui_led_init_3:
+	fetch 1, mem_car_led_num
+	copy pdata,loopcnt
+	setarg mem_car_led_map
+	copy pdata,rega
+car_in_lp1:
+	copy rega,contr
+	ifetch 1,contr
+	copy contr,rega
+	beq INVALID_PIN_NUM,car_in_lp1_end
+	copy pdata,temp
+	call gpio_config_output
+car_in_lp1_end:
+	loop car_in_lp1
+car_ui_led_init_end:
+	rtn
+car_blood_led_gpio_set:
+	fetch 8,mem_car_config_blood_led1_gpio
+	store 8,mem_car_led_map+2
+	branch car_ui_led_init_1
+car_pairing_led_gpio_set:
+	store 1,mem_car_led_map
+	branch car_ui_led_init_2
+car_low_voltage_led_gpio_set:
+	store 1,mem_car_led_map+1
+	branch car_ui_led_init_3
+
+car_init_environment:
+	
+	call car_g24_init
+	call car_g24_load_commom_addr
+	arg 0,rega
+	call pwm_init
+	call car_ui_led_init
+	call car_start_blink
+	call car_init_adc_hvin
+	branch car_motor_init
+car_read_otp_addr:
+        rtn
+car_motor_init:
+	fetch 1, mem_car_motor_gpio_num
+	copy pdata,loopcnt
+	setarg mem_car_motor_gpio_map
+	copy pdata,rega
+p_in_lp1:
+	copy rega,contr
+	ifetch 1,contr
+	copy contr,rega
+	beq INVALID_PIN_NUM,p_in_lp1_end
+	copy pdata,temp
+	store 1, mem_car_gpio
+	call car_ui_gpio_init
+p_in_lp1_end:
+	loop p_in_lp1
+p_car_ui_led_init_end:
+	rtn
+
+car_ui_gpio_init:
+	fetch 1,mem_car_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	iforce temp
+	branch gpio_config_output
+
+	
+car_init_adc_hvin:
+	jam 100,mem_car_notify_vdd_value_last
+	rtn
+	
+car_le_before_hibernate:
+	call car_gpio_set_before_hibernate
+	call clear_wake
+car_le_process_lpm_before:
+	branch keyscan_process_lpm_before
+
+car_gpio_set_before_hibernate:
+	call check_51cmd_led_off
+car_gpio_set_before_lpm_common:
+	arg GPIO_NUMBER,loopcnt
+	arg core_gpio_conf,contr
+car_setgpio_loop:
+	copy contr,contw
+	ifetch 1,contr
+	beq gpcfg_spid_miso,car_setgpio_pullup
+	beq gpcfg_spid_ncs,car_setgpio_pullup
+	beq gpcfg_spid_sck,car_setgpio_pullup
+	beq gpcfg_spid_mosi,car_setgpio_pullup
+	beq gpcfg_spid_sdio,car_setgpio_pullup
+	beq gpcfg_iic_scl,car_setgpio_pullup
+	beq gpcfg_iic_sda,car_setgpio_pullup
+	beq gpcfg_input,car_setgpio_pullup
+car_setgpio_loop_end:
+	loop car_setgpio_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	branch car_motor_setgpio,zero
+car_setgpio_loop_ext:
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch car_setgpio_loop
+
+car_setgpio_pullup:
+	setarg gpcfg_pullup
+	istore 1,contw
+	branch car_setgpio_loop_end
+car_setgpio_pulldown:
+	setarg gpcfg_pulldown
+	istore 1,contw	
+	branch car_setgpio_loop_end
+car_motor_setgpio:	
+	fetch 1,mem_car_motor_gpio_num
+	copy pdata,loopcnt
+	arg mem_car_motor_gpio_map,contr
+car_motor_setgpio_loop:
+	ifetch 1,contr
+	set1 7,pdata
+	arg gpcfg_output_low,temp
+	call gpio_config_function
+	loop car_motor_setgpio_loop
+	rtn
+	 
+car_key_scan_process:
+	branch keyscan_key_process
+
+car_scale_process_idle:
+	call car_le_send_packet
+	call car_g24_status_process
+	branch car_key_scan_process
+
+car_g24_status_process:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	fetch 1,mem_car_24g_received_pac
+	beq WORK_PAIRED,car_g24_connected_event
+	rtn
+car_g24_connected_event:
+	fetch 1,mem_car_24g_status
+	rtneq WORK_PAIRED
+	jam WORK_PAIRED,mem_car_24g_status
+	call car_lpm_timer_disable
+	call car_stop_blink
+	branch car_g24_connected
+
+car_lpm_timer_enable:
+	fetch 2,mem_car_enter_lpm_timer_count	
+	store 2,mem_car_enter_lpm_timer
+	jam 0,mem_car_enter_lpm_flag
+	rtn
+
+	
+car_lpm_timer_disable:
+	setarg 0
+	branch car_lpm_timer_enable+1
+
+
+car_stop_blink:
+	arg 0,rega
+	branch ui_led_blink_stop_global
+	
+	
+car_start_blink:
+	arg 0,rega
+	branch ui_led_blink_start_global
+	
+
+
+
+
+car_le_send_packet:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+	call le_fifo_check_nearly_full
+	nrtn blank
+	arg mem_car_pop_queue_buff,rega
+	call queue_pop
+	nrtn user
+	arg mem_car_pop_queue_buff,contr
+	branch le_send_notify_from_list
+ 
+car_scale_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_BUTTON_UP,app_event_button_up
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_button_long_pressed
+	beq BT_EVT_LE_CONNECTED,car_scale_event_le_conn
+	beq BT_EVT_LE_DISCONNECTED,car_scale_event_le_discon
+	rtn
+
+car_scale_event_le_conn:
+	call car_lpm_timer_disable
+	call car_stop_blink
+	set0 mark_24g_rxmode,mark
+	branch car_scale_process_conn
+car_g24_connected:
+	fetch 2,mem_car_24g_no_data_timeout_count
+	store 2,mem_car_24g_no_data_timeout_timer
+car_scale_process_conn:
+	jam 0x14,mem_car_notify_vdd_timer
+	jam 0,mem_lpm_mode
+	call app_ble_stop_adv
+	branch app_lpm_mult_enable
+
+
+car_scale_event_le_discon:
+	set1 mark_24g_rxmode,mark
+	call car_lpm_timer_enable
+	call car_fb_motor_stop
+	call car_lr_motor_stop
+car_g24_disconnect:
+	setarg 0
+	store 5,mem_car_led_control
+	/*setarg 4
+	call pwm_disable
+	setarg 5
+	call pwm_disable
+	setarg 20
+	call pwm_disable
+	setarg 21
+	call pwm_disable
+	setarg 22
+	call pwm_disable
+	setarg 7
+	call pwm_disable*/
+	call queue_init
+	jam 10,mem_motor1_speed
+	jam 10,mem_motor2_speed
+	jam 10,mem_motor3_speed
+//	jam 1,mem_lpm_mode
+	jam 2,mem_lpm_mult
+	setarg FAST_ADV_INTERVAL_VALUE_CAR
+	call shutter_ble_adv_interval_set
+	branch app_ble_start_adv
+
+car_le_bb_event_timer:
+	call car_moto1_blank_data_timer
+	call car_moto2_blank_data_timer
+	call car_moto3_blank_data_timer
+	//call app_power_timer
+	//call car_notify_vdd_timer
+	call car_24g_no_data_timeout_timer
+	branch car_24g_bind_enable_timer
+	//branch car_enter_lpm_timer
+
+car_24g_bind_enable_timer:
+	arg mem_car_24g_bind_enable_delay_count,regc
+	arg 0,regb
+	branch timer_single_step
+
+car_enter_lpm_timer:
+	arg mem_car_enter_lpm_timer,regc
+	arg car_enter_lpm_enable,regb
+	branch timer_single_step_2B
+car_enter_lpm_enable:
+	jam 1,mem_car_enter_lpm_flag
+	rtn
+	
+car_24g_no_data_timeout_timer:
+	arg mem_car_24g_no_data_timeout_timer,regc
+	arg car_24g_no_data_timer_timeout,regb
+	branch timer_single_step_2B
+car_24g_no_data_timer_timeout:
+	jam WORK_SEARCH,mem_car_24g_status
+	jam POWER_ON,mem_car_24g_received_pac
+	branch car_g24_disconnect
+
+car_notify_vdd_timer:
+	fetch 1,mem_car_config_bat_notify_enable
+	rtn blank
+	arg mem_car_notify_vdd_timer,regc
+	arg car_notify_vdd,regb
+	branch timer_single_step
+car_notify_vdd:
+	fetch 1,mem_car_notify_vdd_count
+	store 1,mem_car_notify_vdd_timer
+ 	fetch 1,mem_car_working_flag
+ 	nrtn blank
+car_read_hvin:
+	call vdd_calculate_by_mode
+	store 2,mem_vdd_now_vol
+	arg mem_vdd_calculate_set,rega
+	call adc_bat_percent_lowpower_out
+	fetcht 1,mem_car_notify_vdd_value_last
+	isub temp,null
+	branch car_notify_vdd_next2,positive
+	store 1,mem_car_notify_vdd_value_last
+	copy pdata,temp
+car_notify_vdd_next2:
+	storet 1,mem_car_notify_vdd_percent
+	fetch 1,mem_car_config_low_voltage_percent
+	isub temp,null
+	call car_enter_low_bat,positive
+	storet 1,mem_notify_bat_payload 
+	arg 6,loopcnt
+	arg mem_notify_bat_head,contr
+	call calc_check_sum_start
+	store 1,mem_notify_bat_check_sum
+	arg mem_notify_bat_packet,rega
+	branch queue_push
+car_enter_low_bat:
+	fetch 1,mem_low_bat_flag
+	nrtn blank
+	jam 1,mem_low_bat_flag
+	arg 1,rega
+	branch ui_led_blink_start_global
+car_low_bat_led_off:
+	arg 1,rega
+	branch ui_led_blink_stop_global
+
+////////////////////////check sum////////////////////////
+//loopcnt = sum number,contr = ptr
+calc_check_sum_start:
+	arg 0,rega
+calc_check_sum_loop:
+	ifetch 1,contr
+	iadd rega,rega
+	loop calc_check_sum_loop
+calc_check_sum_and:
+	and rega,0xff,pdata
+	rtn
+
+car_le_receive_data:	
+	fetch 1,mem_le_att_opcode
+	beq ATTOP_WRITE_REQUEST,car_le_parse_att_write_request
+	rtn
+car_le_parse_att_write_request:
+	fetch 2,mem_le_att_handle
+	beq ATT_CAR_CONTROL_HANDLE,car_control_le_receive
+	rtn
+
+/*
+*	typedef struct
+*	{
+*		2byte	packet_head				(mem_app_receive_temp)
+*		1byte	packet_cmd				(mem_app_receive_temp+2)
+*		2byte	packet_payload_length	(mem_app_receive_temp+3)
+*		10byte	packet_payload			(mem_app_receive_temp+5)
+*		1byte	packet_check_sum		(mem_app_receive_temp+15)
+*	}
+*/
+le_app_receive_data:
+	bpatch patch05_7,mem_patch05
+	ifetch 5,rega
+	store 5,mem_app_receive_temp
+	fetch 2,mem_app_receive_temp
+	arg LE_RECEIVE_PACKET_HEAD,temp
+	isub temp,null
+	nrtn zero
+	fetch 2,mem_app_receive_temp+3
+	byteswap pdata,pdata
+	store 2,mem_app_receive_temp+3
+	copy pdata,loopcnt
+	increase 5,rega
+	copy rega,contr
+	arg mem_app_receive_temp+5,contw
+	call memcpy
+	ifetch 1,contr
+	store 1,mem_app_receive_temp+15
+	arg mem_app_receive_temp+2,rega
+	arg mem_app_receive_temp+5,regb
+	rtn
+
+car_control_le_receive:
+	setarg 0
+	store 5,mem_le_receive_payload
+	store 5,mem_le_receive_payload+5
+	call le_app_receive_data
+	copy regb,contr
+	arg mem_le_receive_payload,contw
+	arg 10,loopcnt
+	call memcpy
+car_receive_cmd_select:
+	bpatch patch06_0,mem_patch06
+	ifetch 1,rega
+	beq CAR_CMD_OLD_CAR_CONTROL,car_drive_old
+	beq CAR_CMD_OLD_SPEED_CONTROL,car_speed_set_old
+	beq CAR_CMD_L_R_MOTOR_CONTROL,car_motor_control
+	beq CAR_CMD_F_B_MOTOR_CONTROL,car_motor_control
+	beq CAR_CMD_IR_CONTROL,car_ir_data_rx_from_app
+	beq CAR_CMD_LED_CONTROL,car_led_control_receive
+	beq CAR_CMD_DEVICE_INFO,car_info_request
+	rtn
+
+car_24g_receive_data:
+	call car_control_le_receive
+	fetch 1,mem_app_receive_temp+2	//cmd
+	beq CAR_CMD_L_R_MOTOR_CONTROL,car_24g_receive_data_next
+	beq CAR_CMD_F_B_MOTOR_CONTROL,car_24g_receive_data_next
+	rtn
+car_24g_receive_data_next:
+	fetch 1,mem_le_receive_payload	//moto1
+	ncall car_moto1_enable_blank_data_timer,blank
+	fetch 1,mem_le_receive_payload+2	//moto2
+	ncall car_moto2_enable_blank_data_timer,blank
+	fetch 1,mem_le_receive_payload+4	//moto3
+	ncall car_moto3_enable_blank_data_timer,blank
+	rtn
+
+car_moto1_enable_blank_data_timer:
+	jam 5,mem_car_moto1_blank_timer
+	rtn
+car_moto2_enable_blank_data_timer:
+	jam 5,mem_car_moto2_blank_timer
+	rtn
+car_moto3_enable_blank_data_timer:
+	jam 5,mem_car_moto3_blank_timer
+	rtn
+
+car_moto1_blank_data_timer:
+	arg mem_car_moto1_blank_timer,regc
+	arg car_moto1_blank_data,regb
+	branch timer_single_step
+car_moto2_blank_data_timer:	
+	arg mem_car_moto2_blank_timer,regc
+	arg car_moto2_blank_data,regb
+	branch timer_single_step
+car_moto3_blank_data_timer:		
+	arg mem_car_moto3_blank_timer,regc
+	arg car_moto3_blank_data,regb
+	branch timer_single_step
+
+car_moto1_blank_data:
+	jam 0,mem_le_receive_payload
+	branch car_motor_control
+car_moto2_blank_data:
+	jam 0,mem_le_receive_payload+2
+	branch car_motor_control
+car_moto3_blank_data:
+	jam 0,mem_le_receive_payload+4
+	branch car_motor_control
+	
+	
+///////////////////////Motor//////////////////////////////////////////
+
+car_drive_old:	
+	fetch 1,mem_le_receive_payload
+	store 1,mem_motor1_status
+	fetch 1,mem_le_receive_payload+1
+	store 1,mem_motor2_status
+	branch car_motor_control_common
+
+
+	
+car_left_right_control_old:
+	fetch 1,mem_le_receive_payload
+	store 1,mem_motor2_status
+	branch car_motor2_control
+car_front_back_control_old:
+	fetch 1,mem_motor1_speed
+	call car_reset_old_speed
+	fetch 1,mem_le_receive_payload+1
+	store 1,mem_motor1_status
+	branch car_motor1_control
+car_reset_old_speed:
+	beq SPEED_LEVEL_2,car_reset_old_speed2
+	beq SPEED_LEVEL_3,car_reset_old_speed3
+	store 1,mem_motor1_speed
+	rtn
+car_reset_old_speed2:
+	jam SPEED_LEVEL_5,mem_motor1_speed
+	rtn
+car_reset_old_speed3:
+	jam SPEED_LEVEL_10,mem_motor1_speed
+	rtn
+car_speed_set_old:
+	fetch 1,mem_le_receive_payload
+	call car_reset_old_speed
+	fetch 1,mem_motor1_speed
+	call car_motor_speed_duty_setting
+	call car_motor_speed_duty_transform
+	jam 0x00,mem_pdatatemp+1	//pwm channel0
+	branch pwm_duty_cycle_set
+
+car_motor_control:
+	fetch 1,mem_car_24g_go_die_flag
+	nrtn blank
+	fetch 6,mem_le_receive_payload
+	store 6,mem_motor1_status
+	fetch 1,mem_motor1_speed
+	fetcht 1,mem_motor2_speed
+	iand temp,pdata
+	fetcht 1,mem_motor3_speed
+	iand temp,pdata
+	call car_motor_working_flag,blank	
+car_motor_control_common:
+	bpatch patch06_1,mem_patch06
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_CONNECTED,pdata
+	ncall car_lpm_timer_enable,true
+	call car_motor1_control
+	call car_motor2_control
+	branch car_conn_led_state
+
+car_conn_led_state:
+	fetch 1,mem_motor1_status
+	fetcht 1,mem_motor2_status
+	iadd temp,pdata
+	nbranch check_51cmd_led_on,blank
+	branch check_51cmd_led_off	
+
+car_motor1_control:
+	arg mem_motor1_status,contr
+	branch car_motor1_status_select
+car_motor2_control:
+	arg mem_motor2_status,contr
+	branch car_motor2_status_select
+car_motor3_control:
+	arg mem_motor3_status,contr
+	branch car_motor_status_select
+car_motor_working_flag:
+	jam 0,mem_car_working_flag
+	rtn
+
+car_motor1_status_select:
+	ifetch 1,contr
+	beq TURN_FRONT,car_lr_motor_stop
+	beq TURN_LEFT,car_lr_motor_left
+	beq TURN_RIGHT,car_lr_motor_right
+	rtn
+car_motor2_status_select:
+	ifetch 1,contr
+	beq MOTOR_STOP,car_fb_motor_stop
+	beq GO_BACK,car_fb_motor_front
+	beq GO_FRONT,car_fb_motor_back
+	rtn
+
+car_lr_motor_stop:
+	fetcht 1,mem_car_motor_left_gpio
+	call gpio_out_inactive
+	fetcht 1,mem_car_motor_right_gpio
+	branch gpio_out_inactive
+car_lr_motor_left:
+	fetcht 1,mem_car_motor_left_gpio
+	call gpio_out_active
+	fetcht 1,mem_car_motor_right_gpio
+	branch gpio_out_inactive
+car_lr_motor_right:
+	fetcht 1,mem_car_motor_left_gpio
+	call gpio_out_inactive
+	fetcht 1,mem_car_motor_right_gpio
+	branch gpio_out_active
+car_fb_motor_stop:
+	fetcht 1,mem_car_motor_front_gpio
+	call gpio_out_inactive
+	fetcht 1,mem_car_motor_back_gpio
+	branch gpio_out_inactive
+car_fb_motor_front:
+	fetcht 1,mem_car_motor_front_gpio
+	call gpio_out_active
+	fetcht 1,mem_car_motor_back_gpio
+	branch gpio_out_inactive
+car_fb_motor_back:
+	fetcht 1,mem_car_motor_front_gpio
+	call gpio_out_inactive
+	fetcht 1,mem_car_motor_back_gpio
+	branch gpio_out_active
+
+	
+
+
+car_motor_status_select:
+	bpatch patch06_2,mem_patch06
+	ifetch 1,contr
+	beq MOTOR_STOP,car_motor_stop
+	beq GO_FRONT,car_motor_positive
+	beq GO_BACK,car_motor_negative
+	rtn
+car_motor_positive:
+	jam 0,mem_motor_select_p_n
+	branch car_motor_negative+1
+car_motor_negative:
+	jam 1,mem_motor_select_p_n
+	ifetch 1,contr
+	store 1,mem_car_motor_speed
+	ifetch 8,regb
+	branch car_motor_work
+
+car_motor_stop:
+	ifetch 1,regb
+	call pwm_disable
+	increase 1,regb
+	ifetch 1,regb
+	branch pwm_disable
+car_motor_work:
+	store 8,mem_motor_pwm_pin1_set
+	jam 1,mem_car_working_flag
+	fetch 1,mem_motor_select_p_n
+	beq 0,car_motor_select_positive
+car_motor_select_negative:
+	fetch 1,mem_motor_pwm_pin2_set
+	store 1,mem_motor_pwm_pin_set
+	fetch 1,mem_motor_pwm_pin1_set
+car_motor_work_next:
+	call pwm_disable
+	fetch 1,mem_car_motor_speed
+	call car_motor_speed_duty_setting
+	store 1,mem_motor_pwm_dute_set
+	fetch 6,mem_motor_pwm_pin_set
+	store 6,mem_pdatatemp
+	branch pwm_out_set
+car_motor_select_positive:
+	fetch 1,mem_motor_pwm_pin1_set
+	store 1,mem_motor_pwm_pin_set
+	fetch 1,mem_motor_pwm_pin2_set
+	branch car_motor_work_next
+
+car_motor_speed_duty_setting:
+	mul32 pdata,5,pdata
+	add pdata,50,pdata
+	rtn
+car_motor_speed_duty_transform:
+	arg 12000,temp
+	imul32 temp,pdata
+	div pdata,100
+	call wait_div_end
+	quotient temp
+	copy temp,rega
+	setarg 12000
+	isub temp,regb
+	rtn
+
+car_ir_data_rx_from_app:
+	rtn
+
+car_led_control_receive:
+	fetch 8,mem_le_receive_payload
+	store 8,mem_car_led_control
+	rtn
+
+car_info_request:
+	fetch 1,mem_car_config_device_select
+	store 1,mem_car_info_request_payload
+	fetch 1,mem_car_config_motor_layout
+	store 1,mem_car_info_request_payload+1
+	fetch 1,mem_car_config_ir_enable
+	store 1,mem_car_info_request_payload+2
+	arg 13,loopcnt
+	arg mem_car_info_request_head,contr
+	call calc_check_sum_start
+	store 1,mem_car_info_request_checksum
+	arg mem_car_info_request,rega
+	branch queue_push
+
+
+/************************************G24 CAR RX FUNC START**************************************/
+car_g24_init:
+	setarg 0
+	store 8,mem_24g_bind_payload
+	call g24_receive_init
+	branch g24_mode_switch_init
+
+car_g24_receive_process:
+	call car_g24_mode_switch
+	call car_g24_work_mode
+	call car_g24_bind_mode
+	branch car_g24_lpm_dipatch
+
+car_g24_mode_switch:
+	call g24_mode_switch_bind_work
+car_g24_bind_mode_enable:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_BIND
+	fetch 1,mem_car_24g_bind_enable_delay_count	//after power on 10s,enable bind
+	nbranch g24_switch_work_mode,blank
+	fetch 1,mem_car_24g_status	//after paired,disable bind mode
+	beq WORK_SEARCH,g24_switch_work_mode
+	rtn
+
+car_g24_work_mode:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_WORK
+	call car_g24_work_mode_start
+	branch car_g24_ch_polling_clear,user3
+car_g24_receive_ch_polling:
+	fetch 1,mem_car_enter_lpm_flag
+	rtn blank
+	fetch 1,mem_car_24g_ch_polling
+	increase 1,pdata
+	store 1,mem_car_24g_ch_polling
+	beq 4,car_g24_ch_polling_clear
+	call g24_ch
+	call car_g24_receive_packet_start
+	nbranch car_g24_receive_ch_polling,user3
+car_g24_ch_polling_clear:
+	jam 0,mem_car_24g_ch_polling
+	rtn
+car_g24_work_mode_start:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_WORK
+	call car_g24_work_init
+	call g24_ch_process
+	branch car_g24_receive_packet_start
+car_g24_work_init:
+	fetch 1,mem_24g_mode_init
+	rtnbit1 DONGLE_WORK
+	set1 DONGLE_WORK,pdata
+	store 1,mem_24g_mode_init
+	fetch 1,mem_tx_power_temp
+	store 1,mem_tx_power
+	jam 0,mem_24g_ackpayload_enable
+	jam 0,mem_usb_tx_enable
+	jam 1,mem_24g_abort_packet
+	jam 0,mem_24g_pid
+	//fetch 4,mem_lap
+	fetch 4,mem_car_24g_commom_addr
+	branch g24_work_init+12
+car_g24_receive_packet_start:	
+	call g24_receive_transmit_ack
+	nbranch g24_rx_interrupt_clear,user3
+p_g24_receive_packet_parse:
+	call g24_receive_packet_parse_pid_crc
+	nbranch g24_rx_interrupt_clear,user
+	fetch 1,mem_24g_rxdata_length
+	branch g24_rx_interrupt_clear,blank
+	increase 2,pdata
+	iforce loopcnt
+	arg mem_24g_rxbuf,contr
+	arg mem_24g_rxdata_temp,contw
+	call memcpy
+	jam 0,mem_24g_mode_switch
+	fetch 1,mem_24g_pair_mode
+	call g24_enable_nodata_timer,blank
+	fetch 1,mem_24g_rxdata_temp+2
+	beq DATATYPE_ATTEMP,car_g24_data_attemp	//reconn packet
+	beq DATATYPE_DEVICE1,car_g24_data_device1	//mouse
+	branch g24_receive_packet_parse+14
+car_g24_data_attemp:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_24g_bind_device_status
+	rtn blank
+	//call check_51cmd_led_on
+	branch g24_data_attemp	
+car_g24_data_device1:
+	call g24_ch_timer_reinit
+	fetch 1,mem_24g_abort_packet
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	setflag true,0,pdata
+	store 1,mem_24g_abort_packet
+	beq 1,car_g24_data_attemp_device1_abort
+	branch g24_data_device1+7
+car_g24_data_attemp_device1_abort:
+	fetch 1,mem_device_option
+	sub pdata,DVC_OP_CAR,null
+	call check_51cmd_led_on,zero
+	fetch 4,mem_24g_rxdata_temp+10
+	branch g24_store_device1_addr
+	
+car_g24_bind_mode:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_BIND
+	call g24_bind_init
+	call car_g24_bind_device_addr
+
+	call g24_rx_interrupt_clear
+	call g24_receive_packet
+	nbranch g24_rx_interrupt_clear,user3
+	call g24_bind_data_parse
+	call g24_transmit_ack
+	call g24_bind_device_status_check
+	call g24_bind_data_process+8
+
+	fetch 1,mem_24g_bind_device_status
+	nbranch car_g24_bind_mode_exit,blank
+	call g24_nodata_process
+	fetch 1,mem_24g_nodata_timer_enable
+	rtn blank
+	setarg 0
+	store 4,mem_24g_device1_addr
+	rtn
+car_g24_bind_mode_exit:
+	jam 0,mem_24g_mode_switch
+	arg 0,rega
+	call check_51cmd_led_on
+	call g24_switch_work_mode
+	call g24_timer_init
+
+        fetch 4,mem_24g_lap
+        store 4,mem_car_24g_commom_addr
+        fetch 1,mem_car_save_addr_flag
+        ncall car_g24_save_commom_addr,blank
+		
+	fetch 4,mem_car_24g_commom_addr
+	branch g24_update_addr_and_synccrc8
+
+car_g24_save_commom_addr:
+
+        fetch 1,mem_car_save_addr_flag
+        rtn blank
+	fetch 1,mem_24g_transmitter_addr+1	//Tx lap H
+	store 1,mem_car_24g_commom_addr+3
+
+	fetch 1,mem_24g_lap+1				//Rx lap H
+	store 1,mem_car_24g_commom_addr+2
+
+	fetch 1,mem_24g_transmitter_addr	//Tx lap L
+	store 1,mem_car_24g_commom_addr+1
+
+	fetch 1,mem_24g_lap					//Rx lap L
+	store 1,mem_car_24g_commom_addr
+ifdef CAR_TEST_FUNCTION
+        rtn
+endif // CAR_TEST_FUNCTION  	
+	call car_g24_search_commom_addr
+	fetch 4,mem_car_24g_commom_addr
+	fetcht 4,mem_car_24g_commom_addr_temp 
+	isub temp,null
+	rtn zero        
+        copy regc,regb
+        arg mem_car_24g_commom_addr,rega
+        arg 4,loopcnt        
+        branch otp_write
+        
+car_g24_load_commom_addr:
+
+        fetch 4,mem_24g_lap
+        store 4,mem_car_24g_commom_addr
+        fetch 1,mem_car_save_addr_flag
+        rtn blank
+ifdef CAR_TEST_FUNCTION
+        rtn
+endif // CAR_TEST_FUNCTION         
+        call car_g24_search_commom_addr
+        fetch 4,mem_car_24g_commom_addr_temp
+        rtn blank
+        store 4,mem_car_24g_commom_addr
+        rtn
+
+/* regc=otp start address and output */        
+car_g24_search_commom_addr:
+ifdef CAR_TEST_FUNCTION
+        rtn
+endif // CAR_TEST_FUNCTION 
+        fetch 1,mem_car_save_addr_flag
+        rtn blank
+        arg OTP_OFFSET_CAR_COMMOM_START_ADDR,regc
+car_g24_search_commom_addr_loop:
+        copy regc,regb
+        arg mem_car_24g_commom_addr_read,rega
+        arg 4,loopcnt
+        call otp_read_data
+        fetch 4,mem_car_24g_commom_addr_read
+        rtn blank    
+        store 4,mem_car_24g_commom_addr_temp
+        copy regc,pdata
+        arg OTP_OFFSET_CAR_COMMOM_END_ADDR,temp
+        isub temp,null
+        rtn positive        
+        increase 4,regc
+        branch car_g24_search_commom_addr_loop
+        
+car_g24_bind_device_addr:
+	fetch 4,mem_24g_device1_addr
+	rtn blank
+	branch g24_update_addr_and_synccrc8
+
+car_g24_cb_data_device1:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	fetch 2,mem_car_24g_no_data_timeout_count
+	store 2,mem_car_24g_no_data_timeout_timer
+	jam WORK_PAIRED,mem_car_24g_received_pac
+	arg mem_24g_rxdata_temp+3,rega
+	branch car_24g_receive_data
+
+car_g24_lpm_dipatch:
+	fetch 1,mem_car_enter_lpm_flag
+	rtn blank
+	call car_g24_lpm_wait
+	nrtn user
+	fetch 3,mem_24g_enter_hibernate	//about 1000ms
+	call clk2lpo
+	storet 4,mem_sleep_counter
+  	branch lpm_sleep
+car_g24_lpm_wait:
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	branch car_le_process_lpm_before
+
+endif
+
+
+
Index: program/app_car_remote.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_car_remote.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_car_remote.prog	(working copy)
@@ -0,0 +1,466 @@
+ifdef COMPILE_REMOTE_CAR
+//define REMOTE_TEST_FUNCTION
+remote_car_init:
+	rtn wake	
+	call remote_car_default_init
+	call keyscan_key_init
+	setarg remote_car_g24_package_data
+	store 2,mem_cb_24g_transmit_data
+
+	setarg remote_car_process_lpm_before
+	store 2,mem_cb_24g_lpm_before
+	
+	setarg remote_car_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+	
+	setarg remote_car_scale_process_idle
+	store 2,mem_cb_idle_process	
+	
+	setarg remote_car_scale_process_bb_event
+	store 2,mem_cb_bb_event_process
+
+	setarg remote_car_event_timer
+	store 2,mem_cb_event_timer
+	
+	setarg remote_car_power_off_signal
+	store 2,mem_remote_car_power_off_cb
+	
+	setarg remote_car_soft_switch_power_on_signal
+	store 2,mem_remote_car_power_standby_cb
+	
+	
+	bpatch patch06_3,mem_patch06
+	call set_eeprom_size_2k
+	call remote_car_init_environment
+
+	call queue_init
+	fetch 1,mem_remote_car_config_soft_switch_enable
+	store 1,mem_remote_car_hard_soft_switch
+	beq HARD_SWITCH, remote_car_hard_switch_power_on_signal
+	fetch 1,mem_remote_car_config_soft_switch_gpio
+	store 1,mem_ui_button_gpio
+remote_car_soft_switch_power_on_init:
+	call remote_car_ui_led_init
+	call ui_button_init
+	call ui_button_polling
+	jam POWER_STARTING,mem_remote_car_power_state
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BTN_DOWN
+	branch app_enter_hibernate
+
+
+
+remote_car_hard_switch_power_on_signal:
+	jam POWER_STANDBY,mem_remote_car_power_state
+remote_car_soft_switch_power_on_signal:
+	call remote_car_ui_led_init
+	arg 0,rega
+	call ui_led_blink_start_global
+ifdef REMOTE_TEST_FUNCTION	
+	branch g24_pair_start
+endif //REMOTE_TEST_FUNCTION	
+	call remote_car_g24_load_commom_addr
+	fetch 4,mem_remote_24g_commom_addr
+	store 4,mem_24g_addr	
+	branch g24_pair_start,blank
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	fetch 2,mem_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout
+	branch g24_reconn_start
+
+remote_car_set_24g_addr_eeprom:
+	arg 4,temp
+	arg mem_24g_addr,rega
+	arg REMOTE_INFO_EEPROM_OFFECT,regb
+	rtn
+
+
+remote_car_power_off_signal:	
+remote_car_ui_led_init:
+	bpatch patch06_4,mem_patch06
+	fetch 1,mem_remote_car_config_connect_led_gpio
+	bne INVALID_PIN_NUM,remote_car_pairing_led_gpio_set
+remote_car_ui_led_init_1:
+	fetcht 1, mem_remote_car_led_map
+	branch gpio_config_output
+remote_car_pairing_led_gpio_set:
+	store 1,mem_remote_car_led_map
+	branch remote_car_ui_led_init_1
+
+
+remote_car_init_environment:
+	call g24_transmit_init
+remote_no_data_timer_init:
+	fetch 2,mem_remote_car_no_data_timeout
+	store 2,mem_remote_car_no_data_timer
+	rtn
+
+remote_car_le_before_hibernate:
+	call remote_car_process_lpm_before
+remote_gpio_set_before_hibernate:
+	fetch 1,mem_remote_style_struct_led_gpio
+	set1 7,pdata
+	arg gpcfg_output_high,temp
+	branch gpio_config_function
+
+remote_car_process_lpm_before:
+	call gpio_set_before_lpm
+	branch keyscan_process_lpm_before
+
+remote_car_key_scan_process:
+	call keyscan_key_process
+	call get_remote_key_state
+	call remote_conn_led_state
+	branch send_data
+
+remote_conn_led_state:
+	fetch 1,mem_remote_car_24g_status
+	rtnne WORK_PAIRED
+	fetch 4,mem_remote_car_motor1_key0_press_state
+	branch remote_car_stop_state,blank
+	jam 0,mem_remote_car_no_data_check
+	enable user
+	branch check_51cmd_led_on
+remote_car_stop_state:
+	fetch 1,mem_remote_car_no_data_check
+	rtneq 0xff
+	pincrease 1
+	store 1,mem_remote_car_no_data_check
+	disable user
+	branch check_51cmd_led_off
+
+	
+get_remote_key_state:
+	fetcht 2,mem_key_value_retention
+	and temp,0x01,pdata
+	rshift temp,temp
+	store 1,mem_remote_car_motor1_key0_press_state
+	and temp,0x01,pdata
+	rshift temp,temp
+	store 1,mem_remote_car_motor1_key1_press_state
+	and temp,0x01,pdata
+	rshift temp,temp
+	store 1,mem_remote_car_motor2_key2_press_state
+	and temp,0x01,pdata
+	rshift temp,temp
+	store 1,mem_remote_car_motor2_key3_press_state
+	rtn
+send_data:
+	bpatch patch06_5,mem_patch06
+	call remote_car_fb_check
+	call remote_car_lr_check
+	call remote_car_no_data_timeout_check
+	nrtn user
+	branch remote_car_send_key 
+
+
+remote_car_no_data_timeout_check:
+	fetch 1,mem_remote_car_24g_status
+	rtnne WORK_PAIRED
+	fetch 1,mem_remote_car_no_data_check
+	rtn blank
+	sub pdata,1,null
+	nrtn positive
+	fetch 2,mem_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout
+	branch enable_user
+
+
+	
+remote_car_fb_check:
+	fetch 1,mem_remote_car_motor1_key0_press_state
+	nbranch remote_car_send_motor1_key0_press,blank
+	fetch 1,mem_remote_car_motor1_key1_press_state
+	nbranch remote_car_send_motor1_key1_press,blank
+	branch remote_car_send_motor1_key0_rel
+	
+remote_car_lr_check:
+	fetch 1,mem_remote_car_motor2_key2_press_state
+	nbranch remote_car_send_motor2_key2_press,blank
+	fetch 1,mem_remote_car_motor2_key3_press_state
+	nbranch remote_car_send_motor2_key3_press,blank
+	branch remote_car_send_motor2_key2_rel
+
+
+remote_car_scale_process_idle:
+	call remote_car_24g_status_process
+	branch remote_car_key_scan_process
+
+remote_car_scale_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_BUTTON_UP,app_event_button_up
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_button_long_pressed
+	beq BT_EVT_24G_PAIRING_COMPLETE,remote_car_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,remote_car_24g_attempt_success
+	beq BT_EVT_24G_ATTEMPT_FAIL,remote_car_24g_attempt_fail
+	rtn
+
+remote_car_24g_attempt_fail:
+	branch g24_txbuf_clear
+
+remote_car_24g_pairing_complete:
+	bpatch patch06_6,mem_patch06
+        fetch 4,mem_24g_receiver_addr
+        store 4,mem_remote_24g_commom_addr
+        fetch 1,mem_remote_save_addr_flag
+        ncall remote_car_g24_save_commom_addr,blank
+	fetch 4,mem_remote_24g_commom_addr
+	call g24_update_addr_and_synccrc8        
+	//call remote_car_set_24g_addr_eeprom
+	//call iicd_write_protect_eep_data
+remote_car_24g_attempt_success:
+	jam 0,mem_24g_conn_sm
+	jam WORK_PAIRED,mem_remote_car_24g_auto_work_step
+	jam WORK_PAIRED,mem_remote_car_24g_pair_success_flag
+	jam 0,mem_24g_reconn_timeout		
+	rtn
+remote_car_g24_save_commom_addr:
+    
+
+        fetch 1,mem_remote_save_addr_flag
+        rtn blank
+	fetch 1,mem_24g_lap+1				//Tx lap H
+	store 1,mem_remote_24g_commom_addr+3
+
+	fetch 1,mem_24g_receiver_addr+1		//Rx lap H
+	store 1,mem_remote_24g_commom_addr+2
+
+	fetch 1,mem_24g_lap					//Tx lap L
+	store 1,mem_remote_24g_commom_addr+1
+
+	fetch 1,mem_24g_receiver_addr		//Rx lap L
+	store 1,mem_remote_24g_commom_addr
+ifdef REMOTE_TEST_FUNCTION
+        rtn
+endif // REMOTE_TEST_FUNCTION 
+	call remote_car_g24_search_commom_addr
+	fetch 4,mem_remote_24g_commom_addr
+	fetcht 4,mem_remote_24g_commom_addr_temp 
+	isub temp,null
+	rtn zero	
+        copy regc,regb
+        arg mem_remote_24g_commom_addr,rega
+        arg 4,loopcnt        
+        branch otp_write
+        
+remote_car_g24_load_commom_addr:
+ifdef REMOTE_TEST_FUNCTION
+        rtn
+endif // REMOTE_TEST_FUNCTION 
+        fetch 1,mem_remote_save_addr_flag
+        rtn blank
+        call remote_car_g24_search_commom_addr
+        fetch 4,mem_remote_24g_commom_addr_temp
+        rtn blank
+        store 4,mem_remote_24g_commom_addr  
+        rtn
+
+/* regc=otp start address and output */        
+remote_car_g24_search_commom_addr:
+ifdef REMOTE_TEST_FUNCTION
+        rtn
+endif // REMOTE_TEST_FUNCTION 
+        fetch 1,mem_remote_save_addr_flag
+        rtn blank       
+        arg OTP_OFFSET_REMOTE_COMMOM_START_ADDR,regc
+remote_car_g24_search_commom_addr_loop:
+        copy regc,regb
+        arg mem_remote_24g_commom_addr_temp,rega
+        arg 4,loopcnt
+        call otp_read_data
+        fetch 4,mem_remote_24g_commom_addr_read
+        rtn blank        
+        store 4,mem_remote_24g_commom_addr_temp
+        copy regc,pdata
+        arg OTP_OFFSET_REMOTE_COMMOM_END_ADDR,temp
+        isub temp,null
+        rtn positive        
+        increase 4,regc
+        branch remote_car_g24_search_commom_addr_loop
+        
+remote_car_24g_status_process:
+	fetch 1,mem_remote_car_24g_auto_work_step
+	rtneq POWER_ON
+	fetch 1,mem_remote_car_24g_status
+	rtneq WORK_PAIRED
+	jam WORK_PAIRED,mem_remote_car_24g_status
+remote_car_scale_process_paired:
+	arg 0,rega
+	branch ui_led_off_global
+remote_car_scale_process_shutdown:
+	arg 0,rega
+	call ui_led_off_global
+	call remote_car_ui_led_init
+	branch app_enter_hibernate
+	
+remote_car_event_timer:
+	call app_power_timer
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer	
+	branch remote_car_no_data_timer
+
+remote_car_no_data_timer:
+	fetch 1,mem_remote_car_config_timeout_shutdown_enable
+	rtn blank
+	fetch 1,mem_key_value_retention
+	nbranch remote_no_data_timer_init,blank
+	arg mem_remote_car_no_data_timer,regc
+	arg remote_car_scale_process_shutdown,regb
+	branch timer_single_step_2B
+
+
+//cross key,control front-back motor layout
+remote_car_send_motor1_key0_press:	//front
+	jam MOTOR_POSITIVE,mem_remote_car_24g_motor1_payload
+	rtn
+remote_car_send_motor1_key1_press:	//back
+	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor1_payload
+	rtn
+remote_car_send_motor2_key2_press:	//left
+	jam MOTOR_POSITIVE,mem_remote_car_24g_motor2_payload
+	rtn
+remote_car_send_motor2_key3_press:	//right
+	jam MOTOR_NEGATIVE,mem_remote_car_24g_motor2_payload
+	rtn
+
+
+remote_car_send_motor1_key0_rel:
+remote_car_send_motor1_key1_rel:
+	jam MOTOR_STOP,mem_remote_car_24g_motor1_payload
+	rtn
+remote_car_send_motor2_key2_rel:
+remote_car_send_motor2_key3_rel:
+	jam MOTOR_STOP,mem_remote_car_24g_motor2_payload
+	rtn
+	
+remote_car_send_key:
+	arg mem_remote_car_24g_motor_packet,rega
+	branch queue_push
+remote_car_send_attack:
+	arg mem_remote_car_24g_fire_packet,rega
+	branch queue_push
+
+remote_car_g24_package_data:
+	fetch 1,mem_remote_car_24g_pair_success_flag
+	beq WORK_PAIRED,remote_car_g24_send_empty
+	arg mem_remote_car_24g_tx_temp,rega
+	call queue_pop
+	nbranch remote_car_moto_data,user
+remote_car_g24_package_data_continue:
+	arg mem_remote_car_24g_tx_temp,contr
+	ifetch 1,contr
+	copy pdata,rega
+	arg mem_remote_car_24g_tx_temp+1,regb
+	//rega: length
+	//regb: tx buffer
+	rtn
+	
+remote_car_g24_send_empty:
+	jam 0,mem_remote_car_24g_pair_success_flag
+	enable user
+	arg 1,rega
+	arg mem_remote_car_empty_packet,regb
+	rtn
+	
+remote_car_moto_data:
+	fetch 1,mem_remote_car_24g_tx_temp+3	//cmd
+	beq CAR_CMD_L_R_MOTOR_CONTROL,remote_car_moto_data_next
+	beq CAR_CMD_F_B_MOTOR_CONTROL,remote_car_moto_data_next
+	rtn
+remote_car_moto_data_next:
+	fetch 1,mem_remote_car_24g_tx_temp+6	//data moto1
+	nbranch remote_car_moto_data_enable_user,blank
+	fetch 1,mem_remote_car_24g_tx_temp+8	//data moto2
+	nbranch remote_car_moto_data_enable_user,blank
+	fetch 1,mem_remote_car_24g_tx_temp+10	//data moto3
+	nbranch remote_car_moto_data_enable_user,blank
+	rtn
+remote_car_moto_data_enable_user:
+	enable user
+	branch remote_car_g24_package_data_continue
+
+
+
+/*************remote car default_init starting*********************/
+remote_car_default_init:
+	jam 0x14,mem_ui_button_timeout
+	jam 0x01,mem_ui_button_last_state
+	setarg 0x060f
+	store 2,mem_remote_car_queue_each_size
+	setarg mem_remote_car_queue_each_size
+	store 2,mem_queue_ptr
+	jam 0x01,mem_lpm_mode
+	jam 0x06,mem_lpm_overhead
+	jam 0x02,mem_lpm_mult_timeout
+	jam 0x00,mem_remote_car_hard_soft_switch
+	setarg mem_remote_style_led_type
+	store 2,mem_ui_led_struct_ptr
+	jam 0x01,mem_ui_led_struct_num
+	jam 0xff,mem_remote_style_blink_count
+	setarg 0x0296
+	store 2,mem_remote_style_on_time
+	setarg 0x073a
+	store 2,mem_remote_style_off_time
+	setarg mem_remote_car_soft_power
+	store 2,mem_power_param_ptr
+	setarg 0x0c0c
+	store 2,mem_remote_car_power_off_timeout
+	setarg mem_remote_car_keyscan
+	store 2,mem_keyscan_ptr
+	jam 0x00,mem_remote_car_config_soft_switch_enable
+	jam 0xff,mem_remote_car_config_connect_led_gpio
+	jam 0xff,mem_remote_car_config_soft_switch_gpio
+	jam 0x00,mem_remote_car_config_key_map
+	jam 0x00,mem_remote_car_config_layout
+	jam 0x00,mem_remote_car_config_check_way
+	jam 0x01,mem_remote_car_config_timeout_shutdown_enable
+	setarg 0x4e55
+	store 2,mem_current_vdd_value_default_mid_x
+	store 2,mem_current_vdd_value_default_mid_y
+	setarg 0x0007
+	store 2,mem_current_vdd_default_range
+	jam 0x02,mem_adc_config_flag
+	setsect 0,0x35a0c
+	setsect 1,0x11a
+	setsect 2,0x60
+	setsect 3,0x28
+	store 9,mem_remote_car_24g_motor_packet
+	setsect 0,0x2000a
+	setsect 1,0x02
+	istore 4,contw
+	setsect 0,0x35a08
+	setsect 1,0x19a
+	setsect 2,0x00
+	setsect 3,0x00
+	store 9,mem_remote_car_24g_fire_packet
+	setarg 0x0064
+	store 2,mem_remote_car_no_data_timeout
+	jam TX_POWER_0DB,mem_tx_power
+	jam 0x01,mem_24g_data_type		//24g init
+	jam 0x06,mem_24g_max_retry
+	jam 0x01,mem_24g_pair_switch
+	jam 0x00,mem_24g_fast_conn_enable
+	call g24_rx_window_init
+	call g24_interval_param_8ms
+	call g24_chmap_param_init
+
+	//call g24_pair_param_init
+	setarg 0x0708
+	store 2,mem_24g_pair_timeout_init
+	setarg 0x0050
+	store 2,mem_24g_reconn_timeout_init
+	setarg 0x0a7700
+	store 3,mem_24g_long_sleep_set
+	setarg 0x604800
+	store 3,mem_24g_enter_hibernate	
+	rtn
+
+/*************remote car default_init ending*********************/
+
+else
+remote_car_init:
+	rtn
+endif
+
+
Index: program/app_dongle.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_dongle.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_dongle.prog	(working copy)
@@ -0,0 +1,553 @@
+ifdef COMPILE_DONGLE
+
+dongle_init:
+	setarg dongle_dispatch
+	store 2,mem_cb_24g_receive_process
+	setarg dongle_g24_mouse
+	store 2,mem_cb_24g_data_device1
+	setarg dongle_g24_kb
+	store 2,mem_cb_24g_data_device2
+	setarg dongle_ackpayload_prep
+	store 2,mem_cb_24g_ackpayload
+	setarg dongle_usb_config
+	store 2,mem_cb_usb_config
+	branch usb_init
+
+
+dongle_default_init:
+	bpatch patch06_7,mem_patch06
+	//sys init
+	call dongle_read_kb_bind_status
+	call dongle_xtal_select
+	fetch 1,mem_dg_sys_config
+	isolate1 DG_ENABLE_EEPROM,pdata
+	branch dongle_default_no_eeprom,true
+	fetch 1,mem_dg_sys_config
+	isolate1 DG_ENABLE_NEW_CHMAP,pdata
+	call g24_chamap_param_update,true
+dongle_default_no_eeprom:	
+	fetch 1,mem_dg_24g_tx_power_default
+	store 1,mem_tx_power
+	//24g init
+	jam 0xff,mem_rssi_buff_index
+	setarg mem_dg_rssi_noise_buffer
+	store 2,mem_rssi_noise_buffer_ptr
+	setarg mem_dg_rssi_noise_dg_buffer
+	store 2,mem_rssi_noise_self_buffer_ptr
+	setarg mem_dg_rssi_noise_ms_buffer
+	store 2,mem_rssi_noise_device1_buffer_ptr
+	setarg mem_dg_rssi_noise_kb_buffer
+	store 2,mem_rssi_noise_device2_buffer_ptr
+	jam TX_POWER_F5DB,mem_24g_pair_tx_power
+	jam 0,mem_dg_kb_bind_success
+	jam 0,mem_24g_bind_device_living
+	call g24_enable_1M
+	fetch 1,mem_dg_sys_config
+	isolate1 DG_ENABLE_24G_2M,pdata
+	call g24_enable_2M,true
+	call g24_receive_init
+	call g24_pair_param_init
+	call g24_chmap_param_init
+	//usb init
+	fetch 1,mem_dg_usb_tx_interval
+	store 1,mem_usb_tx_interval
+	fetch 9,mem_dg_usb_vid_pid
+	store 9,mem_usb_vid_pid
+	rtn
+	
+dongle_xtal_select:
+	jam XTAL_24M,mem_fcomp_div
+	fetch 1,mem_dg_sys_config
+	rtnbit0 DG_ENABLE_XTAL_24M
+	jam XTAL_16M,mem_fcomp_div
+	rtn
+
+dongle_dispatch:
+	fetch 1,mem_24g_pair_mode
+	beq 0x00,dongle_auto_bind
+	beq 0x01,dongle_pc_bind
+	beq 0x0f,dongle_all_powerful
+	rtn
+
+
+dongle_read_kb_bind_status:
+	bpatch patch07_0,mem_patch07
+	arg DONGLE_KB_BIND_EFUSE_OFFECT,regb
+	arg mem_dg_kb_bind_flag,rega
+	arg 1,loopcnt
+	branch otp_read_data
+
+dongle_write_kb_bind_status:
+	bpatch patch07_1,mem_patch07
+	arg 1,loopcnt
+	arg mem_dg_kb_bind_flag,rega
+	arg DONGLE_KB_BIND_EFUSE_OFFECT,regb
+	branch otp_write
+
+dongle_usb_config:
+	fetch 1,mem_dg_sys_config
+	bbit1 DG_ENABLE_KB_ICON,dongle_usb_config_kb
+	fetch 1,mem_dg_kb_bind_flag
+	bne DONGLE_KB_BIND_SUCCESS,dongle_usb_config_param
+dongle_usb_config_kb:
+	jam DONGLE_KB_BIND_SUCCESS,mem_dg_kb_bind_flag
+	fetch 4,USB_DEVICEDATA_ADDR+9
+	set1 29,pdata
+	store 4,mem_devicedesc+9
+dongle_usb_config_param:
+	call dongle_usb_device_name
+	call usb_tx_interval_config
+	call dongle_usb_vid_pid_config
+	branch dongle_usb_hid_icon_config
+
+dongle_usb_vid_pid_config:
+	fetch 1,mem_usb_vid_pid
+	rtn blank
+	fetch 1,mem_dg_kb_bind_flag
+	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_vid_pid_for_suit
+dongle_usb_vid_pid_for_mouse_only_auto_pair:	
+	fetch 4,mem_usb_vid_pid+1
+dongle_usb_vid_pid_store:	
+	store 4,mem_devicedesc+9
+	rtn
+dongle_usb_vid_pid_for_suit:
+	fetch 4,mem_usb_vid_pid+5
+	branch dongle_usb_vid_pid_store
+
+dongle_usb_hid_icon_config:
+	fetch 1,mem_dg_kb_bind_flag
+	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_kb_hidreportdesc
+	setarg USB_KBDATA_VENDOR_DEFINE_ADDR
+	store 2,mem_hidreportdesc_kb
+	jam 0x1a,mem_confdesc+26//hid_descriptor--keyboard length
+	rtn
+dongle_usb_kb_hidreportdesc:
+	setarg USB_KBDATA_ADDR
+	store 2,mem_hidreportdesc_kb
+	jam 0x3f,mem_confdesc+26//hid_descriptor--keyboard length	
+	rtn
+
+dongle_usb_device_name:
+	fetch 1,mem_dg_usb_device_name
+	rtn blank
+	arg mem_dg_usb_device_name,contr
+	arg mem_string2,contw
+	arg 30,loopcnt
+	branch memcpy
+
+
+dongle_all_powerful:
+	call g24_switch_work_mode
+dongle_all_powerful_loop:
+	call dongle_work_mode_auto
+	call dongle_usb_dispatch
+	branch dongle_all_powerful_loop
+
+dongle_pc_bind:
+	call g24_switch_work_mode
+dongle_pc_bind_loop:	
+	call dongle_work_mode_auto
+	call g24_bind_mode_auto
+	call dongle_usb_dispatch
+	branch dongle_pc_bind_loop
+
+dongle_g24_blank_data_process:
+	call dongle_g24_ms_blank_data
+	call dongle_g24_kb_blank_data
+	call dongle_g24_kb_sys_ctrl_blank_data
+	branch dongle_g24_kb_mul_blank_data
+
+dongle_g24_ms_blank_data:
+	bpatch patch07_2,mem_patch07
+	fetch 1,mem_dg_ms_blank_data_enable
+	rtn blank
+	arg G24_TIMER_MS_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_ms_blank_data_enable
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data
+	setarg 0
+	istore 7,contw
+dongle_usb_tx_ms_data:
+	jam USB_EP2_MS,mem_usb_ep2_data
+dongle_usb_tx_enable_ep2:
+	fetch 1,mem_usb_tx_enable
+	set1 2,pdata
+	store 1,mem_usb_tx_enable
+	rtn
+
+dongle_g24_kb_blank_data:
+	bpatch patch07_3,mem_patch07
+	fetch 1,mem_dg_kb_blank_data_enable
+	rtn blank
+	arg G24_TIMER_KB_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_kb_blank_data_enable
+	arg mem_usb_kb_data,contw
+	call memset0_16
+	fetch 8,mem_usb_kb_data
+	store 8,mem_dg_kb_data_last_data
+dongle_usb_tx_kb_data:	
+	jam KB_NORMAL_REPORT_ID,mem_usb_kb_data
+dongle_usb_tx_enable_ep1:
+	jam USB_EP1_KB,mem_usb_ep1_data
+	fetch 1,mem_usb_tx_enable
+	set1 1,pdata
+	store 1,mem_usb_tx_enable
+	rtn
+
+dongle_g24_kb_sys_ctrl_blank_data:
+	fetch 1,mem_dg_kb_system_crtl_blank_data_enable
+	rtn blank
+	arg G24_TIMER_KB_SYS_CRTL_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_kb_system_crtl_blank_data_enable
+	arg mem_usb_kb_system,contw
+	call memset0_16
+	jam KB_SYSTEM_CONCTRL_REPORT_ID,mem_usb_kb_system
+	fetch 2,mem_usb_kb_system
+	store 2,mem_dg_kb_system_sta_data
+dongle_usb_tx_sys_ctrl_data:
+	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
+	branch dongle_usb_tx_enable_ep2
+
+dongle_g24_kb_mul_blank_data:
+	bpatch patch07_4,mem_patch07
+	fetch 1,mem_dg_kb_mul_blank_data_enable
+	rtn blank
+	arg G24_TIMER_KB_MUL_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_kb_mul_blank_data_enable
+	arg mem_usb_kb_multikey,contw
+	call memset0_16
+	jam KB_MULTIKEY_REPORT_ID,mem_usb_kb_multikey
+	fetch 3,mem_usb_kb_multikey
+	store 3,mem_dg_kb_multikey_last_data	
+dongle_usb_tx_multikey_data:
+	jam USB_EP2_MULTIKEY,mem_usb_ep2_data
+	branch dongle_usb_tx_enable_ep2
+
+dongle_usb_dispatch:
+	bpatch patch07_5,mem_patch07
+	fetch 1,mem_usb_remote_wakeup
+	call dongle_clear_pc_sleep_flag,blank
+	call usb_isr
+	fetch 1,mem_usb0_get_set_report
+	rtn blank
+	jam 0,mem_usb0_get_set_report
+	fetch 2,mem_usb_setup_bValue_temp
+	arg PC_SET_REPORT,temp
+	isub temp,null
+	nrtn zero
+	//get usb host command
+	fetch 1,mem_usb0_set_report_data
+	rtnne PC_REPORT_ID
+	fetch 1,mem_usb0_set_report_data+1
+	beq COMMAND_MODE,dongle_dispose_cmd_mode
+	beq COMMAND_BIND,dongle_dispose_cmd_bind
+	beq COMMAND_CURRENT_PROJECT,dongle_dispose_cmd_current_project
+	beq COMMAND_CURRENT_MODE,dongle_dispose_cmd_current_mode
+	beq COMMAND_CURRENT_FW_VERSION,dongle_dispose_cmd_current_fw_version
+//	beq COMMAND_USER_DEFINED,dongle_dispose_cmd_user_defined
+dongle_usb0_data_ready_report_set0:
+	jam 0,mem_usb0_data_ready_report
+	rtn
+
+dongle_dispose_cmd_mode:
+	fetch 1,mem_usb0_set_report_data+2
+	beq COM_MODE_BIND,dongle_enter_bind_mode
+	branch dongle_usb0_data_ready_report_set0
+dongle_enter_bind_mode:
+	call g24_bind_mode_enable
+dongle_usb0_data_ready_report_set1:
+	jam 1,mem_usb0_data_ready_report
+	rtn
+
+dongle_dispose_cmd_bind:
+	fetch 1,mem_usb0_set_report_data+2
+	beq COM_BIND_GET,dongle_dispose_cmd_get_bind
+	beq COM_BIND_EXIT,dongle_dispose_cmd_exit_bind
+	beq COM_READ_MODE,dongle_dispose_cmd_read_mode
+	branch dongle_usb0_data_ready_report_set0
+dongle_dispose_cmd_get_bind:
+	fetch 1,mem_24g_bind_device_status
+	store 1,mem_usb0_get_report_data+1
+	branch dongle_usb0_data_ready_report_set1
+dongle_dispose_cmd_exit_bind:
+	call g24_work_mode_enable
+	branch dongle_dispose_cmd_get_bind
+dongle_dispose_cmd_read_mode:
+dongle_dispose_in_bind_mode:
+	jam COMMAND_BIND,mem_usb0_get_report_data+1
+	branch dongle_usb0_data_ready_report_set1	
+
+dongle_dispose_cmd_current_project:
+	jam PRODUCT_ID,mem_usb0_get_report_data+1
+	branch dongle_usb0_data_ready_report_set1
+
+dongle_dispose_cmd_current_mode:
+	fetch 1,mem_24g_work_mode
+	beq DONGLE_WORK,dongle_dispose_in_work_mode
+	beq DONGLE_BIND,dongle_dispose_in_bind_mode
+	rtn
+dongle_dispose_in_work_mode:
+	jam COMMAND_MODE,mem_usb0_get_report_data+1
+	branch dongle_usb0_data_ready_report_set1
+	
+dongle_dispose_cmd_current_fw_version:
+	jam FW_VERSION0,mem_usb0_get_report_data+1
+	jam FW_VERSION1,mem_usb0_get_report_data+2
+	jam FW_VERSION2,mem_usb0_get_report_data+3
+	jam FW_VERSION3,mem_usb0_get_report_data+4
+	branch dongle_usb0_data_ready_report_set1
+
+//dongle_dispose_cmd_user_defined:
+//	call g24_ackpayload_disable
+//	fetch 1,mem_usb0_set_report_data+2
+//	beq 0xff,soft_reset_chip
+//	rtn
+
+dongle_auto_bind:
+	call g24_mode_switch_init
+dongle_auto_bind_loop:
+	call g24_mode_switch_bind_work
+	call g24_mode_switch_bind_search
+	call dongle_work_mode_auto
+	call g24_bind_mode_auto
+	call g24_search_mode_auto
+	call dongle_usb_dispatch
+	branch dongle_auto_bind_loop
+
+dongle_work_mode_auto:
+	bpatch patch07_6,mem_patch07
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_WORK
+	call g24_work_mode_start
+	call dongle_g24_blank_data_process
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	branch g24_nodata_process
+
+dongle_ackpayload_prep:
+	fetch 1,mem_24g_data_type
+	beq DATATYPE_DEVICE1,dongle_ackpayload_prep_mouse
+	beq DATATYPE_DEVICE2,dongle_ackpayload_prep_keyboard
+dongle_ackpayload_prep_mouse:
+	fetch 1,mem_dg_pc_sleep_flag
+	bbit1 0,dongle_pc_sleep_ackpayload_prep_mouse
+	branch dongle_ackpayload_prep_end
+
+dongle_set_pc_sleep_flag:
+	fetch 1,mem_device_option
+	rtnne DVC_OP_DONGLE
+	jam 3,mem_dg_pc_sleep_flag
+	rtn
+dongle_clear_pc_sleep_flag:
+	jam 0,mem_dg_pc_sleep_flag
+	rtn
+
+dongle_ackpayload_prep_keyboard:
+	fetch 1,mem_dg_pc_sleep_flag
+	bbit1 1,dongle_pc_sleep_ackpayload_prep_keyboard
+dongle_ackpayload_prep_end:
+	fetch 1,mem_24g_ackpayload_enable
+	beq BIND_ACKPAYLOAD,dongle_g24_bind_ackpayload_prep
+	beq KB_LED_ACKPAYLOAD,dongle_g24_kb_led_ackpayload_prep
+	rtn
+
+dongle_pc_sleep_ackpayload_prep_mouse:
+	fetch 1,mem_dg_pc_sleep_flag
+	set0 0,pdata
+	store 1,mem_dg_pc_sleep_flag
+	branch dongle_pc_sleep_ackpayload_prep
+
+dongle_pc_sleep_ackpayload_prep_keyboard:
+	fetch 1,mem_dg_pc_sleep_flag
+	set0 1,pdata
+	store 1,mem_dg_pc_sleep_flag
+dongle_pc_sleep_ackpayload_prep:
+	jam 0x01,mem_24g_datalen
+	setarg 0xff
+	store 1,mem_24g_txbuf
+	rtn
+
+
+dongle_g24_bind_ackpayload_prep:
+	jam 1,mem_24g_ackpayload_enable
+	call g24_binding_device_check	//works on auto pair only
+	nrtn user3
+	branch g24_bind_ackpayload_prep
+
+dongle_g24_kb_led_ackpayload_prep:
+	fetch 1,mem_24g_rxbuf+2
+	beq DATATYPE_DEVICE1,dongle_g24_bind_ackpayload_prep
+	beq DATATYPE_ATTEMP,dongle_g24_bind_ackpayload_prep
+	jam 0,mem_usb_tx_win_enable
+	jam 0x01,mem_24g_datalen
+	fetch 1,mem_24g_led_status
+	store 1,mem_24g_txbuf
+	rtn
+
+dongle_g24_mouse:
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data	//report id
+	fetch 7,mem_24g_rxdata_temp+3	//key
+	istore 7,contw
+	fetch 1,mem_24g_rxdata_temp+3	//key
+	ncall dongle_g24_ms_enable_blank_data_forcibly,blank//get kb data
+	fetch 1,mem_24g_rxdata_temp+3	//key
+	call dongle_g24_ms_disable_blank_data_forcibly,blank
+	branch dongle_usb_tx_ms_data
+
+dongle_g24_ms_enable_blank_data_forcibly:
+	jam 1,mem_dg_ms_blank_data_enable
+	setarg TIMER_MS_BLANK_DELAY
+	arg G24_TIMER_MS_BLANK,queue
+	branch timer_init
+
+dongle_g24_ms_disable_blank_data_forcibly:
+	jam 0,mem_dg_ms_blank_data_enable
+	setarg 0
+	arg G24_TIMER_MS_BLANK,queue
+	branch timer_init
+
+dongle_g24_kb:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq 0,dongle_g24_kb_type0	//normal key
+	beq 2,dongle_g24_kb_type2	//system key
+	beq 3,dongle_g24_kb_type3	//multikey
+	branch g24_rx_interrupt_clear
+
+dongle_g24_kb_type0:
+	fetch 1,mem_24g_rxdata_temp+5
+	store 1,mem_24g_ackpayload_enable
+	jam 0,mem_24g_rxdata_temp+5
+	arg mem_usb_kb_data,contw
+	arg mem_24g_rxdata_temp+4,contr
+	arg 8,loopcnt
+	call memcpy
+	fetch 8,mem_usb_kb_data
+	ncall dongle_g24_kb_enable_blank_data_forcibly,blank//get kb data
+	fetch 8,mem_usb_kb_data	
+	call dongle_g24_kb_disable_blank_data_forcibly,blank
+	fetch 8,mem_usb_kb_data
+	store 8,mem_dg_kb_data_sta_data
+	fetcht 8,mem_dg_kb_data_last_data
+	isub temp,null
+	ncall dongle_usb_tx_enable_ep1,zero
+	fetch 8,mem_dg_kb_data_sta_data
+	store 8,mem_dg_kb_data_last_data
+	branch g24_rx_interrupt_clear
+
+dongle_g24_kb_enable_blank_data_forcibly:
+	jam 1,mem_dg_kb_blank_data_enable
+	setarg TIMER_KB_BLANK_DELAY
+	arg G24_TIMER_KB_BLANK,queue
+	branch timer_init
+
+dongle_g24_kb_disable_blank_data_forcibly:
+	jam 0,mem_dg_kb_blank_data_enable
+	setarg 0
+	arg G24_TIMER_KB_BLANK,queue
+	branch timer_init
+
+dongle_g24_kb_type3:
+	arg mem_usb_kb_multikey,contw
+	arg mem_24g_rxdata_temp+3,contr
+	arg 3,loopcnt
+	call memcpy
+	fetch 2,mem_usb_kb_multikey+1
+	ncall dongle_g24_kb_mul_enable_blank_data_forcibly,blank//get multikey data
+	fetch 2,mem_usb_kb_multikey+1
+	call dongle_g24_kb_mul_disable_blank_data_forcibly,blank
+	fetch 3,mem_usb_kb_multikey
+	store 3,mem_dg_kb_multikey_sta_data
+	fetcht 3,mem_dg_kb_multikey_last_data
+	isub temp,null
+	ncall dongle_usb_tx_multikey_data,zero
+	fetch 3,mem_dg_kb_multikey_sta_data
+	store 3,mem_dg_kb_multikey_last_data
+	branch g24_rx_interrupt_clear
+
+dongle_g24_kb_mul_enable_blank_data_forcibly:
+	jam 1,mem_dg_kb_mul_blank_data_enable
+	setarg TIMER_KB_MUL_BLANK_DELAY
+	arg G24_TIMER_KB_MUL_BLANK,queue
+	branch timer_init
+	
+dongle_g24_kb_mul_disable_blank_data_forcibly:
+	jam 0,mem_dg_kb_mul_blank_data_enable
+	setarg 0
+	arg G24_TIMER_KB_MUL_BLANK,queue
+	branch timer_init
+
+dongle_g24_kb_type2:
+	arg mem_usb_kb_system,contw
+	arg mem_24g_rxdata_temp+3,contr
+	arg 2,loopcnt
+	call memcpy
+	fetch 2,mem_usb_kb_system
+	ncall dongle_g24_kb_sys_enable_blank_data_forcibly,blank
+	fetch 2,mem_usb_kb_system
+	call dongle_g24_kb_sys_disable_blank_data_forcibly,blank
+	fetch 2,mem_usb_kb_system
+	store 2,mem_dg_kb_system_sta_data
+	fetcht 2,mem_dg_kb_system_last_data
+	isub temp,null
+	ncall dongle_usb_tx_sys_data,zero
+	fetch 2,mem_dg_kb_system_sta_data
+	store 2,mem_dg_kb_system_last_data
+	branch g24_rx_interrupt_clear
+
+dongle_g24_kb_sys_enable_blank_data_forcibly:
+	jam 1,mem_dg_kb_system_crtl_blank_data_enable
+	setarg TIMER_KB_SYS_CRTL_BLANK_DELAY
+	arg G24_TIMER_KB_SYS_CRTL_BLANK,queue
+	branch timer_init
+dongle_g24_kb_sys_disable_blank_data_forcibly:
+	jam 0,mem_dg_kb_system_crtl_blank_data_enable
+	setarg 0
+	arg G24_TIMER_KB_SYS_CRTL_BLANK,queue
+	branch timer_init
+
+dongle_usb_tx_sys_data:
+	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
+	branch dongle_usb_tx_enable_ep2
+
+
+dongle_g24_store_dvc2_bind_flag:
+	fetch 1,mem_device_option
+	rtnne DVC_OP_DONGLE
+	fetch 1,mem_dg_kb_bind_flag
+	rtneq DONGLE_KB_BIND_SUCCESS
+dongle_prep_soft_reset:
+	jam 1,mem_dg_kb_bind_success
+	rtn
+
+
+dongle_kb_bind_soft_reset:
+	fetch 1,mem_device_option
+	rtnne DVC_OP_DONGLE
+	fetch 1,mem_dg_kb_bind_success
+	rtn blank
+	jam 0,mem_temp
+dongle_wirte_efuse_bind_status:	
+	jam DONGLE_KB_BIND_SUCCESS,mem_dg_kb_bind_flag
+	call dongle_write_kb_bind_status
+	call dongle_read_kb_bind_status
+	fetch 1,mem_temp
+	increase 1,pdata
+	store 1,mem_temp
+	beq 0xff,soft_reset_chip
+	fetch 1,mem_dg_kb_bind_flag
+	bne DONGLE_KB_BIND_SUCCESS,dongle_wirte_efuse_bind_status
+	branch soft_reset_chip
+
+
+endif
+
+
Index: program/app_flippen.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_flippen.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_flippen.prog	(working copy)
@@ -0,0 +1,631 @@
+
+
+ifdef COMPILE_PEN
+
+//flippen_init:
+//	branch flippen_cb_function
+
+
+flippen_cb_function:
+	setarg flippen_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg flippen_bb_event_timer
+	store 2,mem_cb_event_timer
+	rtn
+
+flippen_24g_package_data:
+	call flippen_txpayload_config
+	nrtn user
+	copy regb,contr
+	arg mem_24g_txpayload_buf,contw
+	call memcpy8
+	ifetch 1,contr
+	istore 1,contw
+	fetch 4,mem_24g_receiver_addr
+	istore 4,contw
+	fetch 1,mem_release_data_from_receiver_enable
+	store 1,mem_24g_txpayload_buf+7
+flippen_24g_package_data_filling:
+	jam TYPE_KB,mem_24g_data_type
+	arg 13,rega	//length
+	arg mem_24g_txpayload_buf,regb	//regb: the pointer of txbuff
+	rtn
+
+flippen_txpayload_config:
+	disable user
+	call flippen_keyscan_key_process
+	nbranch flippen_24g_poweron_first_blank_data_enable,user
+	//jam 1,mem_ssp_enable		//need check
+	//jam SP_KEY_VALID,mem_sp_local_key_invalid
+	fetch 1,mem_customer_key
+	nbranch flippen_24g_keyboard_package_data,blank
+	rtn
+
+flippen_24g_keyboard_package_data:
+	call flippen_g24_txbuf_clear
+	fetch 1,mem_customer_data_trigger
+	nbranch flippen_key_press_judge,blank
+	jam 0,mem_key_state
+	fetch 1,mem_release_data_from_receiver_enable
+	nrtn blank
+flippen_24g_key_release:
+	jam 1,mem_release_data_from_transmiter_enable
+flippen_24g_key_release_filling:
+	arg mem_customer_key_release,regb	//tx buff
+	rtn
+
+flippen_24g_poweron_first_blank_data_enable:
+	fetch 1,mem_poweron_first_blank_data_enable
+	rtnne 1
+	jam 2,mem_poweron_first_blank_data_enable
+	enable user
+	call flippen_24g_release_data_from_receiver_enable
+	branch flippen_24g_key_release_filling
+
+flippen_key_press_judge:
+	bpatch patch07_7,mem_patch07
+	fetch 1,mem_customer_key
+	copy pdata,regc
+	jam 1,mem_send_package_before_check
+	call flippen_key_check_once	
+	nbranch flippen_combination_key_down_check,blank
+flippen_key_press_judge_next:
+	jam 0,mem_send_package_before_check
+	fetch 1,mem_combination_key_down_flag
+	nbranch flippen_key_function_disable,blank
+	jam 1,mem_key_state
+	copy regc,pdata
+	bbit1 0,flippen_key0_data_store
+	bbit1 1,flippen_key1_data_store
+	rtn
+	
+flippen_commbination_key_press_process:
+	setarg 0
+	store 2,mem_key0_long_press_flag
+	store 2,mem_key0_press_timer_count
+	store 1,mem_send_package_before_check
+	jam 1,mem_combination_key_down_flag
+	branch disable_user
+
+flippen_key_function_disable:
+	setarg 0
+	store 2,mem_key0_long_press_flag
+	store 2,mem_key0_press_timer_count
+	fetch 1,mem_key_disable_timer
+	nrtn blank
+	jam 3,mem_key_disable_timer
+	branch disable_user
+
+flippen_g24_txbuf_clear:
+	arg mem_24g_txbuf,contw 
+	call memset0_16
+	branch memset0_16
+	
+flippen_24g_release_data_from_receiver_enable:
+	jam 1,mem_release_data_from_receiver_enable
+	jam 0,mem_release_data_from_transmiter_enable
+	rtn
+
+flippen_24g_release_data_from_receiver_disable:
+	jam 0,mem_release_data_from_receiver_enable
+	jam 1,mem_release_data_from_transmiter_enable
+	rtn
+
+
+flippen_key0_data_store:
+	fetch 1,mem_key0_long_press_flag
+	nbranch flippen_key0_longpress_data_store,blank
+flippen_key0_shortpress_data_store:
+	call flippen_24g_release_data_from_receiver_enable
+	arg mem_key_pageup_data,regb
+	rtn	
+flippen_key0_longpress_data_store:
+	fetch 1,mem_key0_long_press_flag
+	nrtn blank
+	jam 1,mem_key0_long_press_flag
+	call flippen_24g_release_data_from_receiver_enable
+	fetch 1,mem_key0_long_press_event
+	beq 0,flippen_shift_f5_data_store
+	beq 1,flippen_esc_data_store
+	rtn
+
+flippen_shift_f5_data_store:
+	jam 1,mem_key0_long_press_event
+	arg mem_key_shift_f5_data,regb
+	rtn
+flippen_esc_data_store:
+	jam 0,mem_key0_long_press_event
+	arg mem_key_esc_data,regb
+	rtn
+
+flippen_key1_data_store:
+	fetch 1,mem_key1_long_press_flag
+	nbranch flippen_key1_longpress_data_store,blank
+flippen_key1_shortpress_data_store:	
+	call flippen_24g_release_data_from_receiver_enable
+	arg mem_key_pagedown_data,regb
+	rtn
+flippen_key1_longpress_data_store:
+	fetch 1,mem_key1_long_press_flag
+	nrtn blank
+	call flippen_24g_release_data_from_receiver_enable	
+	jam 1,mem_key1_long_press_flag
+	arg mem_key_b_data,regb
+	rtn
+
+flippen_key_check_once:
+	jam 0,mem_customer_key
+	arg 0,rega
+	fetcht 1,mem_flippen_key0_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_flippen_key1_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	fetcht 1,mem_flippen_key2_gpio
+	call gpio_get_bit
+	setflag true,2,rega
+	fetcht 1,mem_flippen_key3_gpio
+	call gpio_get_bit
+	setflag true,3,rega
+	fetcht 1,mem_flippen_key4_gpio
+	call gpio_get_bit
+	setflag true,4,rega
+	fetcht 1,mem_flippen_key5_gpio
+	call gpio_get_bit
+	setflag true,5,rega
+	fetcht 1,mem_flippen_key6_gpio
+	call gpio_get_bit
+	setflag true,6,rega
+	fetcht 1,mem_flippen_key7_gpio
+	call gpio_get_bit
+	setflag true,7,rega
+	copy rega,pdata
+	call flippen_key_long_press_flag_clear,blank
+	copy rega,pdata
+	rtn
+flippen_key_long_press_flag_clear:
+	fetch 2,mem_key0_long_press_flag
+	rtn blank
+	setarg 0
+	store 2,mem_key0_long_press_flag
+	store 1,mem_24g_calculate_package_id_disable
+	rtn
+
+
+flippen_keyscan_key_process:
+	arg key_scan_timer,queue
+	call timer_check
+	nrtn blank
+	call flippen_key_check
+	setarg 0x10//10ms
+	arg key_scan_timer,queue
+	branch timer_init
+
+flippen_key_check:
+	disable user
+	call flippen_check_key_gpio
+	call flippen_24g_user_check
+	branch flippen_no_data_timer_init,user
+	rtn
+
+flippen_24g_user_check:
+	rtnmark0 mark_24g
+	copy rega,pdata
+	rtn blank
+	branch enable_user
+
+flippen_no_data_timer_init:
+	fetch 2,mem_flippen_no_data_timeout
+	store 2,mem_mouse_no_data_timer
+	rtn
+
+flippen_start_pair_no_data_timer_init:
+	fetch 2,mem_flippen_start_pair_no_data_timeout
+	store 2,mem_mouse_no_data_timer
+	rtn
+
+flippen_check_key_gpio:
+	bpatch patch08_0,mem_patch08
+	fetch 1,mem_customer_key
+	copy pdata,rega
+	call flippen_check_key0_gpio	//pageup
+	call flippen_check_key1_gpio	//pagedown
+	copy rega,pdata
+	store 1,mem_customer_key
+	rtn
+
+flippen_check_key0_gpio:
+	jam PEN_KEY0,mem_mouse_key_temp
+	fetcht 1,mem_flippen_key0_gpio
+	fetch 1,mem_flippen_key0_press_status
+	call flippen_check_key_connect_gnd
+	copy regc,pdata
+	store 1,mem_flippen_key0_press_status
+	copy rega,pdata
+	bbit1 PEN_KEY0,flippen_key_press_setting
+	call flippen_key_release_setting
+	branch mouse_check_customerkey_gpio_exit
+
+flippen_check_key1_gpio:
+	jam PEN_KEY1,mem_mouse_key_temp
+	fetcht 1,mem_flippen_key1_gpio
+	fetch 1,mem_flippen_key1_press_status
+	call flippen_check_key_connect_gnd
+	copy regc,pdata
+	store 1,mem_flippen_key1_press_status
+	copy rega,pdata
+	bbit1 PEN_KEY1,flippen_key_press_setting
+	call flippen_key_release_setting
+	branch mouse_check_customerkey_gpio_exit
+
+flippen_check_key_connect_gnd:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,KEY_PRESS_COUNT,pdata
+	copy pdata,regc
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue
+	beq KEY_PRESS_COUNT,flippen_key_press_check		
+	beq KEY_PRESS_NONE,flippen_key_release_check
+	rtn	
+
+flippen_key_press_check:
+	fetch 1,mem_mouse_key_temp
+	beq PEN_KEY0,flippen_key0_press_timer_count
+	beq PEN_KEY1,flippen_key1_press_timer_count
+	rtn
+
+flippen_key0_press_timer_count:
+	fetcht 1,mem_key0_press_timer_count
+	increase 1,temp
+	storet 1,mem_key0_press_timer_count
+	arg 60,pdata		// about 600ms
+	isub temp,null
+	nbranch flippen_key0_long_press,positive
+	jam 1,mem_key0_short_press_flag
+	rtn
+
+flippen_key1_press_timer_count:
+	fetcht 1,mem_key1_press_timer_count
+	increase 1,temp
+	storet 1,mem_key1_press_timer_count
+	arg 60,pdata		// about 600ms
+	isub temp,null
+	nbranch flippen_key1_long_press,positive
+	jam 1,mem_key1_short_press_flag
+	rtn
+
+flippen_key0_long_press:
+	fetch 1,mem_key0_long_press_flag
+	nbranch flippen_24g_calculate_package_id_disable,blank	
+	jam 1,mem_key0_long_press_flag	
+	branch mouse_key_press
+
+flippen_key1_long_press:
+	fetch 1,mem_key1_long_press_flag
+	nbranch flippen_24g_calculate_package_id_disable,blank	
+	jam 1,mem_key1_long_press_flag	
+	branch mouse_key_press
+
+flippen_24g_calculate_package_id_disable:
+	jam 1,mem_24g_calculate_package_id_disable
+	rtn
+
+
+flippen_key_release_check:
+	fetch 1,mem_mouse_key_temp
+	beq PEN_KEY0,flippen_key0_release
+	beq PEN_KEY1,flippen_key1_release
+	rtn
+
+flippen_key0_release:
+	arg 0,regc
+	jam 0,mem_key0_long_press_flag
+	fetch 1,mem_key0_press_timer_count
+	branch flippen_key0_release_set,blank
+	jam 0,mem_key0_press_timer_count	
+	fetch 1,mem_key0_long_press_flag
+	nbranch flippen_key0_release_set,blank
+	jam 0,mem_key0_short_press_flag
+	branch mouse_key_press	
+
+flippen_key0_release_set:	
+	jam 0,mem_key0_long_press_flag
+	branch mouse_key_release
+
+flippen_key1_release:
+	arg 0,regc
+	jam 0,mem_key1_long_press_flag
+	fetch 1,mem_key1_press_timer_count
+	branch mouse_key_release,blank
+	jam 0,mem_key1_press_timer_count
+	fetch 1,mem_key1_long_press_flag
+	nbranch flippen_key1_release_set,blank
+	branch mouse_key_press
+
+flippen_key1_release_set:	
+	jam 0,mem_key1_long_press_flag
+	branch mouse_key_release
+
+
+flippen_key_press_setting:
+	fetch 1,mem_customer_data_trigger
+	qset1 pdata
+	store 1,mem_customer_data_trigger
+	call flippen_key_data_need_send
+	branch mouse_check_customerkey_gpio_exit
+
+flippen_key_release_setting:
+	fetch 1,mem_customer_data_trigger
+	qset0 pdata
+	store 1,mem_customer_data_trigger
+
+	fetch 1,mem_customer_data_trigger_last
+	qisolate1 pdata
+	nrtn true
+	jam 0,mem_24g_calculate_package_id_disable
+	call mouse_key_press 
+flippen_key_data_need_send:
+	fetch 1,mem_customer_key
+	qset1 pdata
+	store 1,mem_customer_key
+flippen_calculate_package_id:
+	fetch 1,mem_24g_calculate_package_id_disable
+	nrtn blank
+	jam 0,mem_24g_package_id_abandon_flag
+	fetch 1,mem_24g_package_id
+	increase 1,pdata
+	store 1,mem_24g_package_id
+	rtn
+
+
+flippen_bb_event_timer:
+	call mouse_adc_read
+	//call flippen_low_voltage_led_timer
+	//call flippen_low_voltage_led_blink_start_timer
+	call mouse_led_multi_timer	
+	call flippen_g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call flippen_commbination_key_process
+	call flippen_key_longpress_enter_hibernatet_timer
+	call flippen_key_disable_timer
+	call mouse_store_information_delay_timer
+	branch flippen_check_no_data_timeout_timer
+
+flippen_g24_pair_timeout_timer:
+	arg mem_24g_pair_timeout,regc
+	arg flippen_g24_stop_24g_mode,regb
+	branch timer_single_step_2B
+flippen_g24_stop_24g_mode:
+	call g24_pair_exit
+	branch g24_stop_24g_mode
+
+flippen_commbination_key_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetcht 1,mem_mouse_commbination_key_24g
+flippen_commbination_key_start:
+	storet 1,mem_mouse_commbination_key
+	call flippen_key_check_once
+	fetcht 1,mem_mouse_commbination_key
+	isub temp,null
+	branch flippen_commbination_key_down,zero
+flippen_commbination_key_up:
+	call flippen_key0_press_count_clear,blank
+	branch mouse_commbination_key_up
+flippen_key0_press_count_clear:
+	fetch 1,mem_key0_short_press_flag
+	nrtn blank
+	jam 0,mem_key0_press_timer_count
+	rtn
+
+flippen_commbination_key_down:
+	call flippen_combination_ui_timer
+	branch mouse_commbination_key_down+1
+
+flippen_combination_ui_timer:
+	arg flippen_24g_start_pair_mode_before,regb
+	branch mouse_combination_ui_timer+1
+
+flippen_24g_start_pair_mode_before:
+	jam 1,mem_combination_key_longpress_flag
+	call flippen_start_pair_no_data_timer_init
+flippen_24g_start_pair_mode:
+	jam 1,mem_24g_pair_enable_flag
+	jam 0,mem_24g_no_ack
+	jam 0,mem_24g_reconn_type
+	fetch 1,mem_24g_ch
+	store 1,mem_24g_ch_work
+	branch mouse_24g_start_pair_mode
+
+flippen_key_longpress_enter_hibernatet_timer:
+	call flippen_key_check_once
+	store 1,mem_key_press_state
+	nbranch flippen_combination_key_down_check,blank
+flippen_combination_key_up:
+flippen_combination_key_init:
+	fetch 1,mem_send_package_before_check
+	nbranch flippen_commbination_key_press_process,blank
+	fetch 2,mem_key_longpress_timer_init
+	store 2,mem_key_longpress_timer
+	rtn
+
+flippen_combination_key_down_check:
+	bne 0x01,flippen_check_next_key1
+	branch flippen_key_down_timer_check
+	
+flippen_check_next_key1:
+	bne 0x02,flippen_check_next_key2
+	branch flippen_key_down_timer_check
+	
+flippen_check_next_key2:
+	bne 0x04,flippen_check_next_key3
+	branch flippen_key_down_timer_check
+	
+flippen_check_next_key3:
+	bne 0x08,flippen_check_next_key4
+	branch flippen_key_down_timer_check
+	
+flippen_check_next_key4:
+	bne 0x10,flippen_check_next_key5
+	branch flippen_key_down_timer_check
+	
+flippen_check_next_key5:
+	bne 0x20,flippen_check_next_key6
+	branch flippen_key_down_timer_check
+	
+flippen_check_next_key6:
+	bne 0x40,flippen_check_next_key7
+	branch flippen_key_down_timer_check
+	
+flippen_check_next_key7:
+	bne 0x80,flippen_combination_key_init
+flippen_key_down_timer_check:
+	fetch 1,mem_send_package_before_check
+	nbranch flippen_key_press_judge_next,blank
+	arg mem_key_longpress_timer,regc
+	arg flippen_24g_hibernate_set_before,regb
+	branch timer_single_step_2B
+	
+flippen_24g_hibernate_set_before:
+	jam 1,mem_longpress_24g_enter_hibernate_flag
+	setarg 0
+	store 2,mem_key0_press_timer_count
+flippen_24g_hibernate_set:
+	jam 0,mem_24g_pair_enable_flag
+	jam 0,mem_g24_connected_state
+	jam 0,mem_g24_pairing_stop_flag
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 8,mem_24g_enter_hibernate	
+	call mouse_setgpio_hibernate
+	call twspi_disable
+	branch g24_long_sleep	
+	
+
+flippen_key_disable_timer:
+	arg mem_key_disable_timer,regc
+	arg flippen_key_enable_timer,regb
+	branch timer_single_step
+
+flippen_key_enable_timer:
+	jam 0,mem_combination_key_down_flag
+	jam 0,mem_24g_pair_key_down_flag
+	jam 1,mem_24g_pairing_stop_flag
+	rtn
+
+flippen_check_no_data_timeout_timer:
+	arg mem_mouse_no_data_timer,regc
+	arg flippen_24g_hibernate_set,regb
+	branch timer_single_step_2B
+
+/*
+/////////////////////////////////////////////////////led start//////////////////////////////////////////////////////////
+flippen_low_voltage_led_timer:
+	call flippen_key_check_once
+	rtn blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	jam 1,mem_low_voltage_led_blink_flag
+	rtn
+
+flippen_low_voltage_led_blink_start_timer:
+	arg mem_low_voltage_led_blink_start_timer,regc
+	arg flippen_low_voltage_blink_enable,regb
+	branch timer_single_step
+
+flippen_low_voltage_blink_enable:
+	jam 1,mem_multi_led_blink_count_limited
+	jam 6,mem_multi_led_blink_count//blink 3 timers
+	jam 2,mem_multi_led_blink_timer_init
+	jam 1,mem_low_voltage_led_blink_flag
+flippen_led_blink_enable:
+	jam 1,mem_multi_led_blink_timer
+	jam ON,mem_multi_led_blink_enable
+	jam MULTI_LED_BLINK,mem_multi_led_type
+	rtn
+	
+flippen_multi_led_blink_timer:
+	fetch 1,mem_multi_led_blink_enable
+	rtn blank
+	fetch 1,mem_multi_led_type
+	beq MULTI_LED_BLINK,flippen_multi_led_type_blink
+flippen_multi_led_type_on:
+	call flippen_multi_led_on
+	fetch 1,mem_multi_led_on_timer
+	increase 1,pdata
+	store 1,mem_multi_led_on_timer
+	fetcht 1,mem_multi_led_on_timer_init
+	isub temp,null
+	call flippen_multi_led_off,zero
+	rtn
+
+flippen_multi_led_type_blink:
+	fetch 1,mem_low_voltage_led_blink_flag
+	branch flippen_multi_led_type_blink_timer,blank
+	fetch 1,mem_low_voltage_led_blink_start_timer
+	nrtn blank
+flippen_multi_led_type_blink_timer:
+	arg mem_multi_led_blink_timer,regc
+	arg flippen_multi_led_type_blink_timeout,regb
+	branch timer_single_step
+flippen_multi_led_type_blink_timeout:
+	fetch 1,mem_multi_led_blink_timer_init
+	store 1,mem_multi_led_blink_timer
+	fetch 1,mem_multi_led_blink_count_limited
+	branch flippen_multi_led_blink_count_no_limited,blank
+	fetch 1,mem_multi_led_blink_count
+	branch flippen_multi_led_blink_off,blank
+	increase -1,pdata
+	store 1,mem_multi_led_blink_count
+flippen_multi_led_blink_count_no_limited:
+	fetch 1,mem_mouse_multi_led_state
+	beq ON,flippen_multi_led_off
+flippen_multi_led_on:
+	jam ON,mem_mouse_multi_led_state	
+	fetcht 1,mem_multi_led_gpio
+	branch gpio_out_inactive
+
+
+flippen_discovery_multi_led_blink:
+	jam 0,mem_poweron_led_blink_flag
+	jam 5,mem_multi_led_blink_timer_init	//500ms
+flippen_discovery_multi_led_blink1:	
+	jam 0,mem_multi_led_blink_count_limited
+	jam 1,mem_multi_led_blink_count
+flippen_multi_led_blink_enable:
+	jam 5,mem_multi_led_blink_timer
+	jam ON,mem_multi_led_blink_enable
+	jam MULTI_LED_BLINK,mem_multi_led_type
+	rtn
+
+flippen_discovey_led_blink_off:
+	fetch 1,mem_multi_led_on_timer
+	nrtn blank
+flippen_multi_led_blink_off:
+	setarg 0
+	store 3,mem_multi_led_blink_timer
+	store 1,mem_low_voltage_led_blink_flag
+	call flippen_no_data_timer_init
+flippen_multi_led_off:
+	fetch 1,mem_multi_led_blink_count
+	nbranch flippen_multi_led_off_wait_blink_over,blank
+	jam 0,mem_multi_led_blink_enable
+	jam 0,mem_multi_led_type
+	jam 0,mem_poweron_led_blink_flag
+flippen_multi_led_off_wait_blink_over:
+	jam 0,mem_multi_led_on_timer
+	jam OFF,mem_multi_led_state
+flippen_multi_led_off_end:
+	jam OFF,mem_multi_led_state
+	fetcht 1,mem_multi_led_gpio
+	branch gpio_out_active
+
+/////////////////////////////////////////////////////led end//////////////////////////////////////////////////////////
+*/	
+endif
+
Index: program/app_kb.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_kb.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_kb.prog	(working copy)
@@ -0,0 +1,2593 @@
+define G24
+define BLE
+define COMPILE_MOUSE
+
+keyboard_softreset_process:
+	fetch 1,mem_device_option
+	rtnne DVC_OP_KEYBOARD
+	call mouse_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag
+	branch soft_reset+1,blank
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	copy pdata,queue
+	fetch 4,mem_saved_gpio_in
+	qisolate0 pdata					// bt button gpio num
+	call keyboard_pb_set,true
+	branch soft_reset+2	
+
+ifdef COMPILE_MOUSE
+keyboard_init:
+	call enable_authrom
+	call keyboard_setting_config
+	
+	call keyboard_gpio_init
+	call keyboard_low_vol_mult_set	
+	rtn wake
+	call keyboard_usb_check_enable
+	call keyboard_cb_fuction
+	fetch 1,mem_usb_addr
+	rtnbit1 7	
+keyboard_init_wireless:	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,keyboard_start_discovery
+	call mouse_check_select_device_by_switch
+	branch keyboard_start_work
+
+
+keyboard_usb_check_enable:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	setarg keyboard_usb_config_param
+	store 2,mem_cb_usb_config
+	jam MOUSE_USB_INTERFACE_REMOVE,mem_mouse_usb_vdd_status
+	branch keyboard_usb_interface_check
+
+keyboard_usb_config_param:
+	call keyboard_usb_config_kb_check
+	call keyboard_usb_config_param_init
+	branch keyboard_usb_config_param_setup
+
+keyboard_usb_config_kb_check:
+	jam DONGLE_KB_BIND_EEPROM_OFFECT,mem_mouse_usb_keyboard_flag
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	jam DONGLE_KB_BIND_SUCCESS,mem_mouse_usb_keyboard_flag
+	rtn
+
+keyboard_usb_config_param_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_USB_250,keyboard_usb_report_rate_set_250hz
+	bbit1 MOUSE_ENABLE_USB_500,keyboard_usb_report_rate_set_500hz
+	bbit1 MOUSE_ENABLE_USB_1000,keyboard_usb_report_rate_set_1000hz
+	jam 0x19,mem_wire_usb_interval
+	jam 0x08,mem_usb_tx_interval
+	rtn
+keyboard_usb_report_rate_set_250hz:
+	jam 0x0c,mem_wire_usb_interval
+	jam 0x04,mem_usb_tx_interval
+	rtn
+keyboard_usb_report_rate_set_500hz:
+	jam 0x06,mem_wire_usb_interval
+	jam 0x02,mem_usb_tx_interval
+	rtn
+keyboard_usb_report_rate_set_1000hz:
+	jam 0x03,mem_wire_usb_interval
+	jam 0x01,mem_usb_tx_interval
+	rtn
+
+keyboard_usb_config_param_setup:
+	call usb_tx_interval_config
+	call keyboard_usb_vid_pid_config
+	branch keyboard_usb_hid_icon_config
+
+keyboard_usb_vid_pid_config:
+	fetch 1,mem_usb_vid_pid
+	rtn blank
+	fetch 1,mem_mouse_usb_keyboard_flag
+	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_vid_pid_for_suit
+	branch dongle_usb_vid_pid_for_mouse_only_auto_pair
+
+keyboard_usb_hid_icon_config:
+	fetch 1,mem_mouse_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+
+
+
+keyboard_usb_interface_check:
+	bpatch patch08_1,mem_patch08
+	fetcht 1,mem_usb_offline_check_gpio
+	call gpio_get_bit
+	branch keyboard_usb_gpio_low,true
+	branch keyboard_usb_gpio_high
+
+
+keyboard_usb_gpio_low:
+	fetch 1,mem_mouse_usb_vdd_status
+	rtneq MOUSE_USB_INTERFACE_REMOVE
+	jam MOUSE_USB_INTERFACE_REMOVE,mem_mouse_usb_vdd_status
+	jam 0,mem_usb_device_enumeration_endflag
+	jam 0,mem_usb_status
+	jam 0,mem_usb_state
+	branch keyboard_init_wireless
+	
+	
+keyboard_usb_gpio_high:
+	fetch 1,mem_mouse_usb_vdd_status
+	rtneq MOUSE_USB_INTERFACE_INSERT
+	jam MOUSE_USB_INTERFACE_INSERT,mem_mouse_usb_vdd_status
+	call mouse_24g_stop
+	call mouse_stop_bluetooth_mode
+	call keyboard_device_led_all_off
+	branch usb_init
+	
+
+
+keyboard_setting_config:
+	rtn wake
+
+	call g24_transmit_init
+	call g24_chmap_param_init
+	
+	call keyboard_param_init
+	fetcht 1,mem_mcu_rstb_gpio
+	call gpio_out_inactive
+
+	call keyboard_device_led_off
+	call mouse_device_multi_led_parm_init
+	call le_set_fixed_ltk_justwork
+
+ifdef debug_eeprom
+	call iicd_read_init_pin
+endif	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_OTP,keyboard_load_otp_info_check	
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_load_eeprom_info_check
+	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_check
+	rtn
+
+
+	
+	
+keyboard_param_init:
+
+	call mouse_param_common_init
+
+	jam 0,mem_same_keyvalue_timerout_flag	
+	setarg 0x230170		// 0x0170--3.7V  0x0123--3.0V  0x0146--3.2V  0x0153--3.3V
+	store 3,mem_mouse_vdd_full_vol
+	setarg 0x015301
+	istore 3,contw
+	arg mem_le_adv_swift_pair,contw
+	arg 20,loopcnt
+	call clear_mem
+
+	fetch 1,mem_le_name_len
+	sub pdata,12,null
+	nbranch ble_name_set_no_swift_pair,positive
+	setarg 0x06ff06
+	store 3,mem_le_adv_swift_pair
+	setarg 0x000300
+	istore 3,contw
+	setarg 0x80
+	istore 1,contw
+ble_store_le_name:
+	fetch 1,mem_le_name_len
+	increase 1,pdata
+	copy pdata,loopcnt
+	arg mem_le_scan_data,contr			// 7byte + mem_le_scan_data
+	branch memcpy
+	
+ble_name_set_no_swift_pair:
+	arg mem_le_adv_swift_pair,contw
+	branch ble_store_le_name
+
+/////////////////////////////////////////////////////////------gpio------///////////////////////////////////////////////////////////
+keyboard_gpio_init:
+//	call p_lpm_otp_option_disable_ice_mode
+
+	fetcht 1,mem_mcu_clk_gpio
+	call gpio_set_high_impedance
+	fetcht 1,mem_mcu_stb_gpio
+	call gpio_set_high_impedance
+	fetcht 1,mem_mcu_rstb_gpio
+	call gpio_set_high_impedance
+	//row init
+	setarg mem_key_row_gpio
+	store 2,mem_kb_row_ptr
+	//col init
+	setarg mem_key_col_gpio
+	store 2,mem_kb_col_ptr
+	//portA and B init
+	setarg mem_key_excol_gpio
+	store 2,mem_kb_excol_ptr
+keyboard_keyscan_gpio_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+
+keyboard_key_row_init:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keboard_gpio_set_high_impedance,zero
+	increase 1,regb
+	loop keyboard_key_row_init
+	call lpm_write_gpio_wakeup
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	copy pdata,regc
+	arg 11,loopcnt
+	
+keyboard_key_cow_init:
+	ifetcht 1,regb
+	isolate1 7,temp						// exmcu gpio
+	ncall gpio_set_high_impedance,true
+	increase 1,regb
+	loop keyboard_key_cow_init
+	rtn
+keboard_gpio_set_high_impedance:
+
+	call gpio_set_high_impedance
+	ifetcht 1,regb
+	branch gpio_set_low_pullup
+
+
+	
+keyboard_low_vol_mult_set:
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,keyboard_low_vol_mult_ble_set
+	setarg 0x5d4800
+	store 4,mem_24g_long_sleep_set1
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0	
+	branch mouse_24g_long_sleep_set
+keyboard_low_vol_mult_ble_set:
+	jam 0x0c,mem_lpm_mult_init
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	jam 0x10,mem_lpm_mult_init
+	fetch 1,mem_mouse_current_mult_timer
+	branch mouse_current_mult_reinit,blank
+	rtn
+///////////////////////////////////////otp/////////////////////////////////////////////////////////////
+
+keyboard_pairing_check_otp_offset:
+	fetch 2,mem_otp_read_retention_offset
+	arg 0x528,temp   //24*55
+	isub temp,null
+	nrtn positive
+	branch assert
+//  otp process	
+keyboard_load_otp_info_check:
+	bpatch patch08_2,mem_patch08
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_device_info_g24_init
+	beq MODE_BT_DEVICE1,keyboard_load_otp_device_info_ble_init
+	rtn	
+	
+keyboard_load_otp_device_info_g24_init:
+	arg 80,regd
+	setarg 0x400
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fcc,pdata
+	arg 4,temp
+	arg 4,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info_ble_init:
+	arg 280,regd
+	setarg 0x400
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fc2,pdata
+	arg 14,temp		
+	arg 14,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info:
+	storet 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	arg 0,regc
+keyboard_load_otp_info_check_page_loop:
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch keyboard_load_otp_info_check_first_time,blank
+	increase 1,regc
+	fetch 2,mem_pdatatemp
+	isub regc,null
+//	nbranch p_keyboard_load_otp_info_check_overwise,positive
+	copy regb,pdata
+	isub regd,pdata
+	branch keyboard_load_otp_info_check_page_loop
+keyboard_load_otp_info_check_first_time:
+	
+	sub regc,0,null
+	branch keyboard_load_otp_info_check_first_time_process,zero
+keyboard_load_otp_info_check_first_time_loop_init:
+	copy regb,pdata
+	iadd regd,pdata
+keyboard_load_otp_info_check_first_time_loop:	
+	isub rege,pdata
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch keyboard_load_otp_info_check_offset_process,blank
+	copy regb,pdata
+	branch keyboard_load_otp_info_check_first_time_loop
+keyboard_load_otp_info_check_first_time_process:
+	storer rege,1,mem_otp_read_retention_offset
+	rtn
+keyboard_load_otp_info_check_offset_process:
+	bpatch patch08_3,mem_patch08
+	setarg 0x1fd0
+	isub regb,pdata
+	store 2,mem_otp_read_retention_offset		//store the next field offset ,convenient for next storage
+	copy regb,pdata
+	iadd rege,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_info_check_offset_process_g24
+	beq MODE_BT_DEVICE1,keyboard_load_otp_info_check_offset_process_ble
+	rtn
+
+keyboard_load_otp_info_check_offset_process_g24:	
+	fetch 6,mem_otp_read_retention_memory
+	store 4,mem_mouse_24g_addr
+	branch keybaord_load_device_info
+
+keyboard_load_otp_info_check_offset_process_ble:
+	fetch 1,mem_otp_read_retention_memory
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+	store 1,mem_kb_computer_system
+	fetch 1,mem_otp_read_retention_memory+1
+	store 1,mem_device1_type
+	fetch 6,mem_otp_read_retention_memory+2
+	store 6,mem_device1_addr
+	fetch 6,mem_otp_read_retention_memory+8
+	store 6,mem_device1_locall_addr
+	branch mouse_select_reconn_device
+
+
+keyboard_load_otp_info_check_overwise:
+	branch assert
+
+	
+keyboard_store_device_info:
+	bpatch patch08_4,mem_patch08
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_OTP,keyboard_store_otp_device_info
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eeprom_device_info
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	rtn
+	
+keyboard_store_otp_device_info:
+	rtn
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,keyboard_store_otp_device_info_ble
+	rtn
+
+keyboard_store_otp_device_info_g24:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fd0
+	isub temp,regb
+	arg mem_mouse_24g_addr,rega
+	arg 4,loopcnt
+	call otp_write   
+	fetcht 2,mem_otp_read_retention_offset
+	increase 4,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn
+
+keyboard_store_otp_device_info_ble:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fd0
+	isub temp,regb
+	
+
+	add regb,1,regb	
+	arg mem_device1_addr,rega
+	arg 6,loopcnt
+	call otp_write
+
+	add regb,7,regb	
+	arg mem_device1_locall_addr,rega
+	arg 6,loopcnt
+	branch otp_write 
+
+keybaord_load_device_info:
+	fetch 4,mem_mouse_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	rtn
+
+/////////////////////////////////////cb_function//////////////////////////////////////////////////////
+keyboard_cb_fuction:
+	bpatch patch08_5,mem_patch08
+	setarg mouse_24g_before_lpm_sleep
+	store 2,mem_cb_before_lpm_sleep
+	setarg keyboard_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg keyboard_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	setarg keyboard_lpm_before_common
+	store 2,mem_cb_24g_lpm_before
+	setarg keyboard_le
+	store 2,mem_cb_le_process
+	
+	setarg keyboard_process_lpm_before
+	store 2,mem_cb_before_lpm
+	
+	setarg keyboard_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg keyboard_idle
+	store 2,mem_cb_idle_process
+	setarg keyboard_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg mouse_le_bb_event_connect_complete
+	store 2,mem_cb_att_write	
+	setarg keyboard_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg mouse_spi_write_flash_cb
+	store 2,mem_cb_spi_flash_write_complate
+	setarg mouse_lpm_check_wake_lock
+	store 2,mem_cb_check_wakelock
+	setarg mouse_le_transmit
+	store 2,mem_cb_ble_transmit
+	setarg mouse_set_lpm_mult
+	store 2,mem_cb_bt_set_mult
+	rtn
+
+/////////////////////////////////////keyboard event/////////////////////////////////////////////////////////////////////
+
+keyboard_priority_bb_event:	
+	bpatch patch08_6,mem_patch08
+	copy regc,pdata	
+
+	beq BT_EVT_LE_START_ENC,keyboard_le_ll_start_encryt
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,keyboard_le_parse_conn_param_accepted
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,keyboard_le_conn_param_update_rsp_recieved
+	beq BT_EVT_LE_DISCONNECTED,keyboard_le_bb_disconnected
+
+	beq BT_EVT_LE_CONNECTED,keyboard_le_bb_event_connected
+	beq BT_EVT_BUTTON_LONG_PRESSED,keyboard_bb_event_discovery_btn
+	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
+	beq BT_EVT_LE_ENC_INFO,mouse_le_enc_info
+
+	beq BT_EVT_LE_PAIRING_COMPLETE,app_ble_store_reconn_info	
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mouse_le_parse_conn_param_accepted
+
+	beq BT_EVT_24G_PAIRING_COMPLETE,keyboard_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,keyboard_24g_attempt_success
+	beq BT_EVT_24G_ATTEMPT_FAIL,keyboard_24g_attempt_fail
+
+
+	rtn
+
+/***************************le*************************/
+
+
+
+keyboard_le_bb_event_connected:
+	jam 0,mem_mouse_long_mult_flag
+
+	jam 1,mem_mouse_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_mouse_le_reconnect_flag
+	nbranch keyboard_le_bb_event_connected_next,blank
+	jam 0x14,mem_mouse_send_secutiry_request_timer
+keyboard_le_bb_event_connected_next:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set0 APP_DISC_BY_BUTTON ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	jam 0,mem_mouse_direct_timer
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	call mouse_no_data_timer_init
+	branch keyboard_stop_discovery
+
+
+keyboard_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_keyboard_le_send_conn_param_update
+	store 1,mem_keyboard_le_send_conn_param_update_timer
+	store 1,mem_mouse_le_bb_connected_flag	
+keyboard_le_bb_disconnected_next:	
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	jam 0,mem_mouse_clear_sensor_data_flag
+	call le_clr_config_more_data
+	branch keyboard_bb_disconnected
+keyboard_bb_disconnected:
+	call mouse_bb_discon_clear_stack
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,keyboard4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_start_discovery
+keyboard4_0_event_bb_disconn:
+	call mouse_le_clean_connect_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	call ice_break
+	branch keyboard_app_enter_hibernate	
+
+	
+keyboard_le_ll_start_encryt:
+	fetch 1,mem_mouse_le_reconnect_flag
+	beq 1,keyboard_le_ll_reconn_start_encryt
+	jam 20,mem_le_start_encrypt_timer
+	jam 5,mem_le_start_auto_reco_timer
+	branch mouse_le_ll_enable_start_enc_flag
+keyboard_le_ll_reconn_start_encryt:
+	call mouse_updata_le_param
+	jam 5,mem_le_start_encrypt_timer
+	branch mouse_le_ll_enable_start_enc_flag
+
+keyboard_le_parse_conn_param_accepted:
+	fetch 1,mem_le_new_conninterval
+	sub pdata,LE_INTERVAL_15MS,null
+	nbranch mouse_le_conn_param_lpm_disable,positive
+	fetch 1,mem_le_new_connslavelatency
+	fetcht 1,mem_lpm_mult_init
+	isub temp,null
+	branch mouse_le_lpm_mult_reinit,positive
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult
+	branch mouse_le_conn_param_lpm_enable
+
+keyboard_le_conn_param_update_rsp_recieved:
+	fetch 1,mem_keyboard_le_send_conn_param_update
+	nrtn blank
+	jam 1,mem_keyboard_le_send_conn_param_update
+	jam 30,mem_keyboard_le_send_conn_param_update_timer
+	rtn	
+
+keyboard_24g_pairing_complete:
+	call keyboard_get_24g_led_enable
+	call mouse_no_data_timer_init
+	branch mouse_24g_pairing_complete_common
+
+keyboard_24g_attempt_success:
+	call keyboard_get_24g_led_enable
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_mouse_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	call mouse_device_poweron_led_config
+	call mouse_no_data_timer_init
+	branch mouse_24g_attempt_success
+
+keyboard_24g_get_led:
+	jam DEVICE_DATA_TPYE_STANDARD_KEYBOARD,mem_keyboard_data_send_flag
+	call keyboard_clear_key_data
+	jam 0x03,mem_customer_key_press+2
+	rtn
+
+keyboard_24g_led_get_status_check:
+	arg 6,loopcnt
+	arg mem_keyboard_tx_data+3,contr
+keyboard_24g_led_data_check:
+	ifetch 1,contr
+	beq HID_KEY_NUM_LOCK,keyboard_get_24g_led_enable
+	beq HID_KEY_CAPS_LOCK,keyboard_get_24g_led_enable
+	beq HID_KEY_SCROLL_LOCK,keyboard_get_24g_led_enable
+	loop keyboard_24g_led_data_check
+	rtn
+
+keyboard_get_24g_led_enable:
+	jam 0x03,mem_keyboard_led_status_get
+	jam 1,mem_keyboard_data_change_flag
+	rtn
+
+keyboard_set_repeat_send_flag:
+	jam 1,mem_24g_repeat_send_flag
+	rtn
+
+
+keyboard_24g_attempt_fail:
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch keyboard_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,keyboard_24g_fast_conn_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,keyboard_24g_attempt_fail_enter_hibernate
+	branch keyboard_24g_attempt_fail_enter_hibernate
+
+keyboard_24g_attempt_fail_enter_hibernate:
+	call mouse_24g_stop
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_app_enter_hibernate
+	rtn	
+
+keyboard_24g_fast_conn_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_start_auto_pair
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_mouse_24g_addr		// auto pair first time
+	branch keyboard_24g_start_pair_mode,blank
+	branch mouse_24g_reconn_dongle_start
+
+keyboard_24g_hibernate_set:
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 8,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	jam 1,mem_sensor_shutdown_flag
+	branch keyboard_g24_long_sleep
+
+
+/////////////////////////////////////keyboard timer/////////////////////////////////////////////////////////////////////
+
+keyboard_bb_event_timer:
+	bpatch patch08_7,mem_patch08
+	call mouse_adc_read
+	call keyboard_low_voltage_param_set
+	call mouse_low_voltage_led_timer
+
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	call keyboard_24g_repeat_send_data
+	call keyboard_24g_led_status_get_timer
+	
+	//led
+	
+	call keyboard_check_discovery_timeout_timer
+
+	call keyboard_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call keyboard_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	call keyboard_le_send_conn_param_update_timer	
+	call keyboard_le_auto_recognize_timer
+
+	call mouse_current_mult_update_timer
+	call mouse_wheel_trigger_timer
+	call keyboard_store_information_delay_timer
+	call keyboard_capslock_led_on_timer
+	call keyboard_long_press_timer
+	call keyboard_commbination_delay_release_timer
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_check_no_data_timeout_timer
+	branch mouse_check_no_data_timeout_timer
+
+
+keyboard_commbination_key_process:
+	fetch 1,mem_commbination_key_statue
+	rtnne COMMBINATION_KEY_STATE_DOWN	
+	arg mem_combination_ui_button_count,regc
+	arg mouse_bluetooth_fast_conn_init,regb
+	branch timer_single_step
+
+keyboard_commbination_fast_conn_bt_check:
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_fast_conn_bt
+	isub temp,null
+	branch keyboard_commbination_key_down,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down,zero
+	branch mouse_commbination_key_up
+
+keyboard_commbination_key_down:
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_DOWN
+	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
+	rtn
+
+
+keyboard_check_discovery_timeout_timer:
+	arg mem_mouse_discovery_timer,regc
+	arg keyboard_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+keyboard_check_discovery_timeout:
+	call keyboard_stop_discovery
+	branch keyboard_app_enter_hibernate	
+
+
+
+
+keyboard_store_information_delay_timer:
+	arg mem_store_information_delay_timer,regc
+	arg keyboard_store_device_info_check,regb
+	branch timer_single_step
+	
+keyboard_store_device_info_check:
+	call keyboard_store_device_info
+	fetch 1,mem_mouse_need_soft_reset
+	nbranch mouse_soft_reset,blank
+	rtn
+
+keyboard_low_voltage_param_set:
+	fetch 1,mem_mouse_adc_last_low_voltage_flag
+	branch keyboard_low_voltage_param_set_33V,blank
+	jam 58,mem_mouse_vdd_low_vol
+	rtn
+keyboard_low_voltage_param_set_33V:
+	jam 53,mem_mouse_vdd_low_vol
+	rtn	
+
+keyboard_le_auto_recognize_timer:
+
+	arg mem_le_start_auto_reco_timer,regc
+	arg keyboard_le_send_att_find_by_type_value_request_ancs,regb
+	branch timer_single_step
+
+keyboard_check_direct_timeout_timer:	
+	arg mem_mouse_direct_timer,regc
+	arg mouse_check_direct_timeout,regb
+	call timer_single_step
+	branch mouse_check_direct_timeout_timer+3
+
+keyboard_le_battery_updata_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	branch mouse_le_battery_updata_timer
+
+keyboard_le_send_conn_param_update_timer:
+	arg mem_keyboard_le_send_conn_param_update_timer,regc
+	arg mouse_updata_le_param,regb
+	branch timer_single_step
+
+keyboard_24g_repeat_send_data:
+	fetch 1,mem_24g_repeat_send_flag
+	rtn blank
+	jam 0,mem_24g_repeat_send_flag
+	jam 1,mem_keyboard_data_change_flag
+	call g24_txdata_prep
+	branch keyboard_g24_transmit_process
+
+keyboard_24g_led_status_get_timer:
+	arg mem_keyboard_led_status_get_timer,regc
+	arg keyboard_24g_led_status_clear,regb
+	branch timer_single_step
+
+keyboard_24g_led_status_clear:
+	jam 0,mem_keyboard_led_status_get
+	rtn
+
+
+
+
+
+keyboard_device_led_off:
+	call mouse_device_multi_led_off
+	call keyboard_capslock_led_off
+keyboard_power_led_off:
+	fetcht 1,mem_keyboard_power_led_gpio
+	branch gpio_out_inactive
+keyboard_numlock_led_off:
+	rtn
+
+
+keyboard_capslock_led_on_timer:
+	fetch 1,mem_keyboard_caps_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_mouse_no_data_timer
+	rtn blank
+	fetch 2,mem_mouse_no_data_timeout
+	fetcht 2,mem_mouse_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_caps_led_on_timer
+	isub temp,pdata
+	branch keyboard_capslock_led_check_on,positive
+keyboard_capslock_led_off:
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_inactive
+
+
+
+keyboard_capslock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_CAPSLOCK,keyboard_capslock_led_off
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_active
+
+keyboard_long_press_timer:
+	arg mem_same_keyvalue_timer,regc
+	arg keyboard_long_press_timerout,regb
+	branch timer_single_step_2B
+
+keyboard_long_press_timerout:
+	jam 1,mem_same_keyvalue_timerout_flag	
+	branch app_enter_hibernate
+
+keyboard_commbination_delay_release_timer:	
+	arg mem_keyboard_commbination_control_key_delay_release_timer,regc
+	arg keyboard_commbination_key_null_set,regb
+	branch timer_single_step
+
+
+keyboard_check_no_data_timeout_timer:
+	arg mem_mouse_no_data_timer,regc
+	arg keyboard_check_no_data_timeout,regb
+	branch timer_single_step_2B
+
+keyboard_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_24g_hibernate_set
+	branch mouse_disconnect
+
+
+keyboard_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call mouse_24g_stop,true
+	call mouse_disconnect
+	call mouse_le_clean_connect_flag
+	branch keyboard_start_discovery
+	
+keyboard_start_discovery:
+	bpatch patch09_0,mem_patch09
+	call mouse_device_discovery_led_config
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	call keyboard_capslock_led_off
+	jam 0xff,mem_kb_computer_system
+
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	call mouse_bluetooth_fast_conn_disable
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,keyboard_start_discovery_norandom
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,keyboard_start_discovery_norandom
+	fetcht 2,mem_random_addr_increase_count
+	increase 1,temp
+	storet 2,mem_random_addr_increase_count
+	storet 2,mem_le_lap+1
+	random pdata					//random ble addr
+	store 1,mem_le_lap
+keyboard_start_discovery_norandom:
+	fetch 3,mem_mouse_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_mouse_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_mouse_direct_timer
+	store 1,mem_mouse_bluetooth_reconnect_timeout
+	store 1,mem_mouse_clear_sensor_data_flag
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	branch mouse_check_51cmd_adv
+
+	
+keyboard_low_voltage_led_blink_disable:
+	jam 0,mem_mouse_adc_last_low_voltage_flag
+	branch mouse_low_voltage_led_off_judge
+	
+keyboard_stop_discovery:
+	bpatch patch09_1,mem_patch09
+	setarg 0
+	store 2,mem_mouse_discovery_timer	
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+	jam 0,mem_mouse_bluetooth_reconnect_timeout
+	call mouse_stop_le_adv
+	branch keyboard_device_led_off
+
+
+keyboard_store_remote_bdaddr:
+	bpatch patch09_2,mem_patch09
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call mouse_check_device_addr
+	branch mouse_unplug_clean_bdaddr
+	
+/////////////////////////////////////keyboard process///////////////////////////////////////////////////////////////////////////////
+keyboard_idle:
+	bpatch patch09_3,mem_patch09
+	call mouse_low_voltage_led_no_enter_lpm
+	branch ui_check_paring_button
+	
+
+
+keyboard_start_work:
+	bpatch patch09_4,mem_patch09
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_ADC,keyboard_start_work_next
+	call enable_adc
+	call vdd_calculate_by_mode
+	store 2,mem_mouse_vdd_now_vol
+//	fetcht 2,mem_2v_adc_vinlpm_data
+	fetch 2,mem_adc_current_value
+	isub temp,null
+	branch keyboard_start_work,positive
+	arg mem_mouse_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down
+keyboard_start_work_next:
+
+	fetch 1,mem_keyboard_pairing_type
+	call keyboard_enable_bt_button_pairing,blank
+	fetch 1,mem_keyboard_bt_button_flag
+	nrtn blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_reconn_general_dongle
+	call mouse_bluetooth_fast_conn_disable
+	fetch 6,mem_device1_addr	
+	branch mouse_bluetooth_fast_conn_init ,blank
+	branch mouse_start_reconnect_device
+
+
+	
+
+
+
+	
+
+
+
+/////////////////////////////////////keyboard le///////////////////////////////////////////////////////////////////////////////////////
+keyboard_le:
+	bpatch patch09_5,mem_patch09
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,keyboard_le_next
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+keyboard_le_next:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_24G_PAIRING_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,mouse_le_send_empty_packet
+	call keyboard_motion
+	nrtn user
+	call mouse_current_mult_update
+	call mouse_wheel_trigger
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_le_send_mouse_data
+	fetch 1,mem_customer_key
+	branch mouse_le_send_keyboard_package_data		
+
+
+
+
+
+/***********************************kscan and value process***********************************************/
+kscan_dispatch:
+	fetch 1,mem_device_option
+	rtnne DVC_OP_KEYBOARD
+	call keyboard_keyscan
+	call keyboard_key_process
+	branch keyboard_special_key_check
+/***********************************kscan and value process***********************************************/
+
+
+
+
+/***********************************kscan process***********************************************/
+keyboard_keyscan:
+	bpatch patch09_6,mem_patch09
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_keyscan_get_exmcu_value
+	call keyboard_keyscan_get_mcu_value
+	call keyboard_stb_state_high							// exmcu sleep
+keyboard_keyscan_copy_value:
+	fetch 2,mem_kb_excol_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+keyboard_compare_col_excol_gpio_loop:		// loop 11 times
+	ifetcht 1,regb
+	fetch 2,mem_kb_col_ptr
+	copy pdata,rega
+	copy rega,regc
+	arg 20,loopcnt
+keyboard_compare_col_gpio_loop:
+	ifetch 1,rega
+	isub temp,null
+	branch keyboard_copy_value_exmcu_to_mcu,zero
+	increase 1,rega
+	loop keyboard_compare_col_gpio_loop
+keyboard_compare_col_excol_gpio_loop_next:	
+	increase 1,regb
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,10,null
+	branch keyboard_compare_col_excol_gpio_loop,positive
+	
+	rtn
+	
+keyboard_copy_value_exmcu_to_mcu:
+	fetch 2,mem_keyscan_value_ptr
+	copy pdata,contw
+	copy rega,pdata	
+	isub regc,pdata 
+	iadd contw,contw							// offset = rega-regc
+	fetch 2,mem_keyscan_exmcu_value_ptr
+	copy pdata,regc
+	fetch 1,mem_keyscan_col_loop_count
+	iadd regc,regc	
+	ifetch 1, regc								// offset = mem_keyscan_col_loop_count
+	istore 1,contw
+	branch keyboard_compare_col_excol_gpio_loop_next
+	
+keyboard_keyscan_get_exmcu_value:	//	8*11 times
+	bpatch patch09_7,mem_patch09
+	call keyboard_stb_state_high
+	call keyboard_clk_input	
+keyboard_keyscan_exmcu_start:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,keyboard_keyscan_reset_exmcu 				// 953us reset exmcu
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch keyboard_keyscan_exmcu_start,true
+	nop 20
+	call keyboard_clk_state_high
+	call keyboard_stb_state_low
+	jam 0,mem_keyscan_col_loop_count
+keyboard_keyscan_exmcu_start_loop:	// clk:0 1 0 1 0 1 0 1 0 1 0
+	call keyboard_clk_state_low
+	call keyboard_keyscan_exmcu_get_col_value
+	call keyboard_clk_state_high
+	call keyboard_keyscan_exmcu_get_col_value
+	sub pdata,9,null
+	branch keyboard_keyscan_exmcu_start_loop,positive
+	call keyboard_clk_state_low
+	call keyboard_keyscan_exmcu_get_col_value
+	branch keyboard_clk_state_high	
+	
+keyboard_keyscan_exmcu_get_col_value:
+	jam 0,mem_keyscan_value_temp
+	nop 50
+	call keyboard_keyscan_get_col_value
+	fetch 2,mem_keyscan_exmcu_value_ptr
+keyboard_keyscan_value_store:
+	copy  pdata,contw
+	fetch 1,mem_keyscan_col_loop_count
+	iadd contw,contw
+	fetch 1,mem_keyscan_value_temp
+	istore 1,contw
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	rtn	
+
+	
+keyboard_keyscan_get_mcu_value: 		// 8*20 = 130us
+	nop 20					// wait exmcu keyscan done
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+keyboard_keyscan_mcu_start:		// loop 20 times
+	jam 0,mem_keyscan_value_temp
+	ifetcht 1,regb
+	isolate1 7,temp								// exmcu gpio
+	branch keyboard_keyscan_mcu_start_loop,true		//???c????0012?? io
+	call gpio_out_active
+	call keyboard_keyscan_get_col_value
+	ifetcht 1,regb
+	call gpio_set_high_impedance
+keyboard_keyscan_mcu_start_loop:
+	increase 1,regb
+	fetch 2,mem_keyscan_value_ptr		//mcu c?????
+	call keyboard_keyscan_value_store
+	sub pdata,19,null						//sub pdata,19,null
+	branch keyboard_keyscan_mcu_start,positive
+	rtn	
+
+	
+keyboard_keyscan_get_col_value:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regc
+	arg 8,loopcnt
+	
+keyboard_keyscan_get_col_value_loop:		// loop 8 times
+	ifetcht 1,regc
+	call gpio_get_bit
+	fetch 1,mem_keyscan_value_temp
+	rshift pdata,pdata
+	setflag true,7,pdata
+	store 1,mem_keyscan_value_temp
+	increase 1,regc
+	loop keyboard_keyscan_get_col_value_loop
+	rtn
+keyboard_keyscan_reset_exmcu:
+	fetcht 1,mem_mcu_rstb_gpio
+	call gpio_out_active
+	nop 20
+	fetcht 1,mem_mcu_rstb_gpio
+	call gpio_out_inactive
+	nop 6000						// waiting for exmcu reset done 502us > 301.9us
+	rtn
+	branch keyboard_keyscan	
+keyboard_clk_state_high:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_out_inactive
+
+keyboard_clk_state_low:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_out_active
+keyboard_gpio_config_input_pu:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero 
+	set0 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+keyboard_clk_input:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_config_input
+	
+keyboard_stb_state_high:
+	fetcht 1,mem_mcu_stb_gpio
+	branch gpio_out_inactive
+
+keyboard_stb_state_low:
+	fetcht 1,mem_mcu_stb_gpio
+	branch gpio_out_active
+/***********************************kscan process***********************************************/
+
+
+
+
+
+
+
+/**********************************key value process*******************************/
+// same key press check	
+keyboard_press_change_or_no_key:
+	jam 0,mem_same_keyvalue_timerout_flag
+	fetch 2,mem_same_keyvalue_timer_init
+	store 2,mem_same_keyvalue_timer
+	rtn
+
+keyboard_key_process:
+	// key deshake
+	bpatch patch0a_0,mem_patch0a
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_check,regb
+	arg 20,loopcnt
+	call string_compare
+	nbranch keyboard_press_change_or_no_key,zero	
+	call keyboard_keyscan_value_current_zero_check
+	call keyboard_press_change_or_no_key,blank
+
+	call keyboard_ghost_key_check
+	fetch 1,mem_mouse_ghost_flag
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_PRESS
+	rtneq CAMMBINATION_KEY_HOLD
+	rtneq CAMMBINATION_KEY_WAIT_RELEASE
+
+	// keyvalue get from map,and in or out process
+	jam 0,mem_keyscan_col_loop_count
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_old,regb
+keyboard_keyvalue_process:		// loop 20 times
+	ifetcht 1,rega
+	ifetch 1,regb
+	ixor  temp,pdata
+	branch keyboard_keyvalue_process_loop,blank
+	store 1,mem_keyscan_value_temp
+	storet 1,mem_keyboard_press_flag_temp
+	istoret 1,regb
+	jam 1,mem_keyboard_data_change_flag
+	jam 0,mem_keyboard_keyvalue_bit_loop_count
+keyboard_keyvalue_change:			// loop 8 times
+	fetch 1,mem_keyscan_value_temp
+	bbit0 0,keyboard_keyvalue_change_loop
+	fetch 1,mem_keyscan_col_loop_count
+	mul32 pdata,8,pdata
+	fetcht 1,mem_keyboard_keyvalue_bit_loop_count
+	iadd temp,pdata									// map offset
+	arg mem_keyboard_keyvalue_map,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,mem_keyboard_keyvalue_temp				// keyvalue
+	call keyboard_keyvalue_fn_replace
+	call keyboard_keyvalue_commbination_replace
+	call keyboard_keyvalue_in_out
+keyboard_keyvalue_change_loop:
+	fetch 1,mem_keyscan_value_temp
+	rshift pdata,pdata
+	store 1,mem_keyscan_value_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rshift pdata,pdata
+	store 1,mem_keyboard_press_flag_temp
+	fetch 1,mem_keyboard_keyvalue_bit_loop_count
+	increase 1,pdata
+	store 1,mem_keyboard_keyvalue_bit_loop_count
+	loop keyboard_keyvalue_change
+keyboard_keyvalue_process_loop:
+	increase 1,rega
+	increase 1,regb	
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,19,null
+	branch keyboard_keyvalue_process,positive
+	rtn
+
+keyboard_keyscan_value_current_zero_check:
+	fetch 8,mem_keyscan_value_current
+	nrtn blank
+	fetch 8,mem_keyscan_value_current+8
+	nrtn blank
+	fetch 4,mem_keyscan_value_current+16
+	nrtn blank
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	rtn
+
+/************************************ghost key ******************************************/
+//**input:mem_keyscan_value_current   **output:mem_mouse_ghost_flag   	mem_keyboard_all_press_key_count
+keyboard_ghost_key_check:	// (col[i] press >= 2) && (row[j] press >=2) && (c[i]_r[j] press) 
+	bpatch patch0a_1,mem_patch0a
+	jam 0,mem_mouse_ghost_flag
+	jam 0,mem_keyboard_all_press_key_count
+	arg mem_keyscan_value_current,rega
+	arg 20,loopcnt
+keyboard_ghost_key_check_loop:
+	jam 0,mem_keyboard_current_col_press_key_count
+	ifetch 1,rega
+	branch keyboard_ghost_key_check_next_loop,blank
+keyboard_current_col_press_key_count_check:	
+	fetcht 1,mem_keyboard_current_col_press_key_count
+	increase 1,temp
+	storet 1,mem_keyboard_current_col_press_key_count
+	copy pdata,temp
+	increase -1,pdata
+	iand temp,pdata									// pdata &= pdata -1;  check pdata bit1 count
+	nbranch keyboard_current_col_press_key_count_check,zero
+	fetch 1,mem_keyboard_current_col_press_key_count
+	fetcht 1,mem_keyboard_all_press_key_count
+	iadd temp,temp
+	storet 1,mem_keyboard_all_press_key_count
+	sub pdata,1,null
+	branch keyboard_ghost_key_check_next_loop,positive
+	sub temp,2,null
+	branch keyboard_ghost_key_check_next_loop,positive
+	jam 0,mem_keyscan_col_loop_count					// col[i] press key count >= 2
+	jam 0,mem_keyboard_same_row_press_key_count
+	ifetcht 1,rega
+	arg mem_keyscan_value_current,regb
+keyboard_same_row_key_check:
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,19,null
+	nbranch keyboard_ghost_key_check_next_loop,positive		// end col[i] row[0~7] check
+	ifetch 1,regb
+	iand temp,null												// col[i] & col[0~19]
+	branch keyboard_same_row_key_check_loop,zero
+	fetch 1,mem_keyboard_same_row_press_key_count		
+	increase 1,pdata
+	store 1,mem_keyboard_same_row_press_key_count
+	sub pdata,1,null
+	branch keyboard_same_row_key_check_loop,positive
+	jam 1,mem_mouse_ghost_flag
+	rtn	
+	
+keyboard_ghost_key_check_next_loop:
+	increase 1,rega
+	loop keyboard_ghost_key_check_loop
+	rtn
+
+keyboard_same_row_key_check_loop:
+	increase 1,regb
+	branch keyboard_same_row_key_check
+	
+/******************************ghost key*********************************************/
+
+
+
+
+/******************************fn replace*********************************************/
+keyboard_keyvalue_fn_replace:
+	bpatch patch0a_2,mem_patch0a
+	fetch 1,mem_keyboard_press_flag_temp
+	ncall keyboard_commbination_delay_release_clear,blank
+	fetch 1,mem_keyboard_fn_flag
+	ncall keyboard_keyvalue_fn_replace_press,blank
+	fetch 1,mem_keyboard_fn_first
+	fetcht 1,mem_keyboard_fn_flag
+	ixor temp,pdata
+	rtn zero
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_ESC,keyboard_keyvalue_fn_esc
+	beq HID_KEY_DELETE,keyboard_keyvalue_fn_delete
+	sub pdata,HID_KEY_F12,null
+	nrtn positive
+	arg HID_KEY_F1,temp	
+	isub temp,pdata
+	nrtn positive			
+	arg mem_keyboard_fn_f1,contr		//  HID_KEY_F1 <= keyvalue <= HID_KEY_F12
+	iadd contr,contr
+	ifetch 1,contr
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_replace_press:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_UP_ARROW,keyboard_keyvalue_fn_up_arrow
+	beq HID_KEY_DOWN_ARROW,keyboard_keyvalue_fn_down_arrow
+	beq HID_KEY_LEFT_ARROW,keyboard_keyvalue_fn_left_arrow
+	beq HID_KEY_RIGHT_ARROW,keyboard_keyvalue_fn_right_arrow
+	beq HID_KEY_LEFT_CTRL,keyboard_keyvalue_fn_left_ctrl
+	beq HID_KEY_SPACE,keyboard_keyvalue_fn_space
+	rtn
+
+keyboard_keyvalue_fn_esc:
+	fetch 1,mem_keyboard_fn_esc
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_delete:
+	fetch 1,mem_keyboard_fn_del
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_up_arrow:
+	fetch 1,mem_keyboard_fn_arrow_enable_flag
+	rtn blank
+	setarg HID_KEY_PAGE_UP
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_down_arrow:
+	fetch 1,mem_keyboard_fn_arrow_enable_flag
+	rtn blank
+	setarg HID_KEY_PAGE_DOWN
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_arrow:
+	fetch 1,mem_keyboard_fn_arrow_enable_flag
+	rtn blank
+	setarg HID_KEY_HOME
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_right_arrow:
+	fetch 1,mem_keyboard_fn_arrow_enable_flag
+	rtn blank
+	setarg HID_KEY_END
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_ctrl:
+	fetch 1,mem_keyboard_fn_left_ctrl_enable_flag
+	rtn blank
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_keyvalue_windows_osk
+	setarg HID_KEY_OS_SOFT_KB
+	branch keyboard_keyvalue_store_temp
+keyboard_keyvalue_windows_osk:	
+	setarg HID_KEY_OSK
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_space:
+	fetch 1,mem_keyboard_fn_space_enable_flag
+	rtn blank
+	setarg HID_KEY_LANGUAGE
+keyboard_keyvalue_store_temp:
+	store 1,mem_keyboard_keyvalue_temp
+	rtn
+/**********************************key value process*******************************/	
+
+
+
+/*******************************commbine keyvalue *************************************/
+keyboard_keyvalue_commbination_replace:
+	bpatch patch0a_3,mem_patch0a
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_PRINT_SCREEN,keyboard_commination_screen_shot_replace
+	beq HID_KEY_PAGE_UP,keyboard_commination_pageup_replace
+	beq HID_KEY_PAGE_DOWN,keyboard_commination_pagedown_replace
+	beq HID_KEY_HOME,keyboard_commination_home_replace
+	beq HID_KEY_END,keyboard_commination_end_replace
+	beq HID_KEY_SELECT_ALL,keyboard_commination_select_all
+	beq HID_KEY_COPY,keyboard_commbination_copy
+	beq HID_KEY_PASTE,keyboard_commbination_paste
+	beq HID_KEY_CUT,keyboard_commbination_cut
+	beq HID_KEY_ALL_OS_LOCK,keyboard_commination_os_lock
+	beq HID_KEY_OSK,keyboard_commbination_osk
+	beq HID_KEY_LANGUAGE,keyboard_commbination_language
+	beq HID_KEY_APP_TILING,keyboard_commbination_app_tiling
+	rtn
+
+keyboard_commbination_delay_release_set:
+	fetch 1,mem_keyboard_press_flag_temp
+	nrtn blank
+	jam 10,mem_keyboard_commbination_control_key_delay_release_timer
+	rtn
+
+keyboard_commbination_delay_release_clear:
+	jam 0,mem_keyboard_commbination_control_key_delay_release_timer
+	rtn
+
+keyboard_commination_screen_shot_replace:
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDRIOD
+	jam LEFT_SHIFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_3,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commination_pageup_replace:
+	jam HID_KEY_UP_ARROW,mem_keyboard_commbination_standard_key_value
+keyboard_commination_ios_mac_command_commiation:	
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDRIOD
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commination_pagedown_replace:
+	jam HID_KEY_DOWN_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation	
+
+keyboard_commination_home_replace:
+	jam HID_KEY_LEFT_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation
+
+keyboard_commination_end_replace:
+	jam HID_KEY_RIGHT_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation
+
+keyboard_commination_select_all:
+	jam HID_KEY_A,mem_keyboard_commbination_standard_key_value
+keyboard_commbination_text_edit:
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_keypress
+	beq SYSTEM_OS_ANDRIOD,keyboard_commbination_keypress
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commbination_copy:
+	jam HID_KEY_C,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commbination_paste:
+	jam HID_KEY_V,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commbination_cut:	
+	jam HID_KEY_X,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commination_os_lock:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commination_windows_lock
+	beq SYSTEM_OS_MAC,keyboard_commination_mac_lock
+	setarg HID_KEY_IOS_ANDROID_OS_LOCK
+	branch keyboard_keyvalue_store_temp
+keyboard_commination_windows_lock:	
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_L,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+keyboard_commination_mac_lock:
+	jam LEFT_GUI_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_Q,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+	
+keyboard_commbination_osk:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_windows_osk
+	setarg HID_KEY_OS_SOFT_KB
+	branch keyboard_keyvalue_store_temp
+keyboard_commbination_windows_osk:	
+	jam LEFT_GUI_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_O,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+	
+keyboard_commbination_language:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_language_windows
+	beq SYSTEM_OS_ANDRIOD,keyboard_commbination_language_andriod
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+keyboard_commbination_language_next:
+	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
+	call keyboard_commbination_delay_release_set	
+	branch keyboard_commbination_keypress
+keyboard_commbination_language_windows:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_language_next
+keyboard_commbination_language_andriod:
+	jam LEFT_SHIFT,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_language_next
+
+keyboard_commbination_app_tiling:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_app_tiling_windows_android
+	beq SYSTEM_OS_ANDRIOD,keyboard_commbination_app_tiling_windows_android
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_UP_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress	
+keyboard_commbination_app_tiling_windows_android:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_TAB,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress	
+
+keyboard_commbination_keypress:
+	jam 0,mem_keyboard_keyvalue_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit0 0,keyboard_commbination_key_wait_release_set
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_set
+keyboard_commbination_key_press_set:	
+	jam CAMMBINATION_KEY_PRESS,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_wait_release_set:
+	jam CAMMBINATION_KEY_WAIT_RELEASE,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_null_set:
+	jam CAMMBINATION_KEY_NULL,mem_keyboard_commbination_key_step
+	rtn
+
+//**input:   pdata:control key vaule       temp:standard key value
+keyboard_commbination_key_value_store:
+	store 1,mem_keyboard_tx_data+1
+	storet 1,mem_keyboard_tx_data+3
+	call enable_user
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next	
+	
+keyboard_commbination_key_press_process:
+	fetch 1,mem_keyboard_commbination_control_key_value
+	arg 0,temp
+	call keyboard_commbination_key_value_store
+keyboard_commbination_key_hold_set:
+	jam CAMMBINATION_KEY_HOLD,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_hold_process:
+	jam CAMMBINATION_KEY_COMPLETE,mem_keyboard_commbination_key_step
+	fetch 1,mem_keyboard_commbination_control_key_value
+	fetcht 1,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_key_value_store
+	
+keyboard_commbination_key_wait_release_process:
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	fetch 1,mem_keyboard_commbination_control_key_value
+	arg 0,temp
+	call keyboard_commbination_key_value_store
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	branch keyboard_commbination_key_null_set,blank
+keyboard_commbination_key_release_set:	
+	jam CAMMBINATION_KEY_RELEASE,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_release_process:
+	branch keyboard_commbination_key_value_store+2
+
+keyboard_commbination_key_null_process:
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	arg 0,pdata
+	arg 0,temp
+	branch keyboard_commbination_key_value_store	
+
+
+
+keyboard_keyvalue_in_out:
+	bpatch patch0a_4,mem_patch0a
+	fetch 1,mem_keyboard_keyvalue_temp
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	branch keyboard_keyvalue_standard,positive		// value  <= 0xe7
+	jam KEYBOARD_CONSUMER_KEY_PRESS,mem_keyboard_consumer_key_status		
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,keyboard_keyvalue_standard
+	jam KEYBOARD_CONSUMER_KEY_RELEASE,mem_keyboard_consumer_key_status
+keyboard_keyvalue_standard:
+	jam 0,mem_keyboard_keyvalue_buffer+8
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,keyboard_keyvalue_standard_in
+keyboard_keyvalue_standard_out:	
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+keyboard_keyvalue_standard_out_loop:
+	ifetch 1,contr
+	branch keyboard_keyvalue_standard_out_next+1,blank
+	isub temp,null
+	nbranch keyboard_keyvalue_standard_out_next,zero
+	ifetch 1,contr
+	increase -2,contr
+	istore 1,contr
+	rtn blank
+	increase 1,contr
+	istoret 1,contr
+keyboard_keyvalue_standard_out_next:	
+	loop keyboard_keyvalue_standard_out_loop
+	sub temp,HID_KEY_RIGHT_GUI,null
+	nrtn positive
+	sub temp,0xbf,null
+	rtn positive
+keyboard_keyvalue_control_key_out:
+	and temp,0x07,queue
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset0 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn	
+
+keyboard_keyvalue_standard_in:
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+keyboard_keyvalue_standard_in_loop:
+	ifetch 1,contr
+	branch keyboard_keyvalue_standard_in_data,blank
+	isub temp,null
+	rtn zero
+	loop keyboard_keyvalue_standard_in_loop
+	sub temp,HID_KEY_RIGHT_GUI,null
+	nrtn positive
+	sub temp,0xbf,null
+	rtn positive
+keyboard_keyvalue_control_key_in:
+	and temp,0x07,queue
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset1 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+	
+keyboard_keyvalue_standard_in_data:
+	sub temp,HID_KEY_RIGHT_GUI,null
+	nbranch keyboard_keyvalue_standard_in_data_next,positive
+	sub temp,0xbf,null
+	nbranch keyboard_keyvalue_control_key_in,positive
+keyboard_keyvalue_standard_in_data_next:	
+	increase -1,contr
+	istoret 1,contr
+	rtn
+	
+/******************************** special key ****************************************************/
+// check Fn,pairing button,control key
+keyboard_special_key_check:
+	bpatch patch0a_5,mem_patch0a
+	call keyboard_pairing_button_check
+	jam 0,mem_keyboard_fn_flag
+	jam 0,mem_keyboard_control_key_flag
+	jam 0,mem_keyboard_bt_button_flag
+	fetch 1,mem_keyboard_keyvalue_buffer
+	ncall keyborad_control_key_set,blank
+	arg mem_keyboard_keyvalue_buffer+2,contr
+	arg 6,loopcnt
+keyboard_special_key_check_loop:
+	ifetch 1,contr
+	sub pdata,HID_KEY_FN,null
+	call keyboard_fn_set,zero
+	sub pdata,HID_KEY_PB,null
+	call keyboard_pb_set,zero
+	loop keyboard_special_key_check_loop
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_special_key_check_24g
+keyboard_special_key_check_bluetooth:
+	call keyboard_commbination_fast_conn_bt_check
+	fetch 1,mem_keyboard_pairing_type
+	branch keyboard_enable_bt_button_pairing,blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_bt
+	isub temp,null
+	branch keyboard_long_button_bt_discovery,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_long_button_bt_discovery,zero
+	rtn
+keyboard_special_key_check_24g:
+	fetch 1,mem_keyboard_pairing_type
+	branch keyboard_enable_bt_button_pairing,blank
+	branch keyboard_commbination_pairing_24g_check	
+	
+keyboard_pairing_button_check:
+	fetch 1,mem_keyboard_pairing_type
+	nrtn blank
+	fetcht 1,mem_config_select_device_button_gpio
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	call gpio_get_bit
+	nbranch keyboard_pairing_button_release,true
+	arg 8,loopcnt
+	arg mem_keyboard_keyvalue_buffer,contw
+	call clear_mem
+	jam HID_KEY_PB,mem_keyboard_keyvalue_buffer+2
+	rtn
+
+keyboard_pairing_button_release:
+	fetch 1,mem_keyboard_keyvalue_buffer+2
+	rtnne HID_KEY_PB
+	jam HID_KEY_NULL,mem_keyboard_keyvalue_buffer+2
+	rtn	
+
+keyboard_enable_bt_button_pairing:
+	bpatch patch0a_6,mem_patch0a
+	fetch 1,mem_keyboard_bt_button_flag
+	rtn blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_24g_start_pair_mode
+keyboard_long_button_bt_discovery:
+//	call keyboard_pairing_check_otp_offset
+	jam 0,mem_keyboard_data_change_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_enable_function_flag
+	call app_evt_button_long_pressed
+	branch keyboard_bb_event_discovery_btn
+
+	
+
+keyboard_commbination_pairing_24g_check:
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_24g
+	isub temp,null
+	branch keyboard_24g_start_pair_mode,zero
+	byteswap temp,temp
+	isub temp,null
+	nrtn zero
+keyboard_24g_start_pair_mode:
+	call keyboard_pairing_check_otp_offset		
+	jam 0,mem_keyboard_data_change_flag
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	call keyboard_capslock_led_off
+	branch mouse_24g_start_pair_mode
+
+
+keyborad_control_key_set:
+	jam 1,mem_keyboard_control_key_flag
+	rtn
+
+keyboard_fn_set:
+	jam 1,mem_keyboard_fn_flag
+	rtn
+
+keyboard_pb_set:
+	jam 1,mem_keyboard_bt_button_flag
+	rtn
+
+
+
+///////////////////////////////////////////////////////////////---motion----//////////////////////////////////
+keyboard_motion:
+	bpatch patch0a_7,mem_patch0a
+	disable user
+	jam 0,mem_customer_key
+	jam 0,mem_customer_data_trigger
+	jam 0,mem_customer_data_trigger_last
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_PRESS,keyboard_commbination_key_press_process
+	beq CAMMBINATION_KEY_HOLD,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_WAIT_RELEASE,keyboard_commbination_key_wait_release_process
+	beq CAMMBINATION_KEY_NULL,keyboard_commbination_key_null_process
+	fetch 1,mem_keyboard_data_change_flag
+	branch keyboard_no_key_press,blank
+	increase -1,pdata
+	store 1,mem_keyboard_data_change_flag	
+	call keyboard_current_mult_update	
+	jam 10,mem_keyboard_led_status_get_timer
+	call mouse_no_data_timer_init
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_RELEASE,keyboard_commbination_key_release_process
+	arg mem_keyboard_tx_data,contw
+	arg 10,loopcnt
+	call clear_mem
+	call keyboard_motion_data_check
+	jam 0,mem_keyboard_data_send_flag
+	rtn
+
+keyboard_current_mult_update:
+	jam 3,mem_lpm_mult
+	jam 10,mem_mouse_current_mult_timer
+	rtn
+
+
+
+keyboard_no_key_press:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	fetch 1,mem_keyboard_led_status_get
+	rtn blank
+	fetch 1,mem_24g_repeat_send_flag
+	nrtn blank
+	fetcht 1,mem_keyboard_led_status_get_timer_last
+	fetch 1,mem_keyboard_led_status_get_timer
+	isub temp,null
+	store 1,mem_keyboard_led_status_get_timer_last
+	rtn zero
+	arg mem_keyboard_tx_data,contw
+	arg 10,loopcnt
+	call clear_mem
+	call enable_user
+	branch keyboard_motion_data_check_next	
+
+
+
+keyboard_motion_data_check:
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,keyboard_value_consumer_release
+	arg mem_keyboard_keyvalue_buffer+2,contr
+	arg 6,loopcnt
+keyboard_value_tpye_check:
+	ifetch 1,contr
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	nbranch keyboard_value_tpye_consumer_set,positive
+keyboard_value_tpye_check_loop:	
+	loop keyboard_value_tpye_check
+
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	fetch 1,mem_keyboard_keyvalue_buffer+2
+	sub pdata,HID_KEY_FN,null
+	branch keyboard_tx_data_skip_fn,zero
+	arg mem_keyboard_keyvalue_buffer,contr
+	arg mem_keyboard_tx_data+1,contw
+	arg 8,loopcnt
+keyboard_tx_data_store:
+	ifetch 1,contr
+	beq HID_KEY_FN,keyboard_tx_data_clear_fn
+keyboard_tx_data_store_loop:
+	istore 1,contw
+	loop keyboard_tx_data_store
+
+keyboard_motion_data_check_next:
+	call keyboard_device_data_tpye_check
+
+	fetch 1,mem_keyboard_data_send_flag
+	beq DEVICE_DATA_TPYE_MOUSE,enable_user
+	beq DEVICE_DATA_TPYE_STANDARD_KEYBOARD,device_send_keyboard_data
+	beq DEVICE_DATA_TPYE_NONSTARNDARD_KEYBOARD,device_send_keyboard_data
+	beq DEVICE_DATA_TPYE_CONSUMER,device_send_keyboard_data
+	beq DEVICE_DATA_TPYE_SYSTEM_CONCTOL,device_send_keyboard_data
+device_send_keyboard_data:
+	call mouse_customerkey_press
+	branch enable_user
+
+keyboard_value_release_all_key:
+	arg mem_keyboard_keyvalue_buffer,contw
+	arg 9,loopcnt
+	branch clear_mem
+
+
+keyboard_tx_data_skip_fn:
+	fetch 2,mem_keyboard_keyvalue_buffer
+	store 2,mem_keyboard_tx_data+1
+	fetch 6,mem_keyboard_keyvalue_buffer+3
+	store 6,mem_keyboard_tx_data+3
+	branch keyboard_motion_data_check_next
+
+keyboard_tx_data_clear_fn:
+	setarg 0
+	branch keyboard_tx_data_store_loop
+
+////////////////////////////////////////////////////---fn---//////////////////////////////////////////////////////////
+keyboard_value_tpye_consumer_set:
+	copy pdata,temp
+	bpatch patch0b_0,mem_patch0b
+	copy temp,pdata
+	jam HID_REPORTID_CONSUMER_KEY,mem_keyboard_tx_data
+	fetcht 1,mem_keyboard_all_press_key_count
+	sub temp,HID_KEY_NULL,null
+	branch keyboard_value_consumer_all_key_release,zero
+	beq 	HID_KEY_MULTIKEY_MEDIA,keyboard_value_media
+	beq 	HID_KEY_MULTIKEY_PALY,keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,keyboard_value_stop
+	beq 	HID_KEY_MULTIKEY_PRE_TRACK,keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track
+	beq 	HID_KEY_MULTIKEY_VOL_DOWN,keyboard_value_vol_down
+	beq 	HID_KEY_MULTIKEY_VOL_UP,keyboard_value_vol_up
+	beq 	HID_KEY_MULTIKEY_MUTE,keyboard_value_mute
+	beq 	HID_KEY_MY_COMPUTER,keyboard_value_my_computer
+	beq 	HID_KEY_MAIL,keyboard_value_mail
+	beq 	HID_KEY_CALCULATOR,keyboard_value_calculator
+	beq 	HID_KEY_LIGHT_DOWN,keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,keyboard_value_light_up
+	beq 	HID_KEY_AC_FAVORITES,keyboard_value_ac_favorites
+	beq 	HID_KEY_AC_FORWARD,keyboard_value_ac_forward
+	beq 	HID_KEY_AC_BACK,keyboard_value_ac_back
+	beq 	HID_KEY_AC_STOP,keyboard_value_ac_stop
+	beq 	HID_KEY_AC_REFRESH,keyboard_value_ac_refresh
+	beq 	HID_KEY_AC_SEARCH,keyboard_value_ac_search
+	beq 	HID_KEY_AC_HOME,keyboard_value_ac_home
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,keyboard_value_os_lock
+	beq 	HID_KEY_OS_SOFT_KB,keyboard_value_os_soft_kb
+	beq 	HID_KEY_SYSTEM_SLEEP,keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+
+keyboard_value_media:
+	setarg 0x0183
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_play:
+	setarg 0x00cd
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_stop:
+	setarg 0x00b7
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_pre_track:
+	setarg 0x00b6
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_next_track:
+	setarg 0x00b5
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next	
+keyboard_value_vol_down:
+	setarg 0x00ea
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_vol_up:
+	setarg 0x00e9
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_mute:
+	setarg 0x00e2
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_my_computer:
+	setarg 0x0194
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_mail:
+	setarg 0x018a
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_calculator:
+	setarg 0x0192
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next	
+keyboard_value_light_down:
+	setarg 0x0070
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_light_up:
+	setarg 0x006f
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_favorites:
+	setarg 0x022a
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_forward:
+	setarg 0x0225
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_back:
+	setarg 0x0224
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_stop:
+	setarg 0x0226
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_refresh:
+	setarg 0x0227
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_ac_search:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,keyboard_value_ac_home
+	beq SYSTEM_OS_MAC,keyboard_value_ac_home
+	setarg 0x0221
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next	
+keyboard_value_ac_home:
+	setarg 0x0223
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_os_lock:
+	setarg 0x0030
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_os_soft_kb:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDRIOD,keyboard_value_os_soft_kb_andriod
+	setarg 0x01ae
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_os_soft_kb_andriod:
+	setarg 0x0307
+	store 2,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+	
+keyboard_value_consumer_all_key_release:
+keyboard_value_consumer_release:
+	jam 2,mem_keyboard_data_change_flag	
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam KEYBOARD_CONSUMER_KEY_STANDBY,mem_keyboard_consumer_key_status
+	setarg 0x03
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+keyboard_value_system_sleep:
+	jam HID_REPORTID_SYSTEM_CTRL,mem_keyboard_tx_data
+	setarg 0x02
+	store 1,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next		
+
+
+/************************************fn**********************************************/
+
+
+
+keyboard_device_data_tpye_check:
+	bpatch patch0b_1,mem_patch0b
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_device_data_tpye_check_next
+	jam 0,mem_24g_repeat_send_flag
+	fetch 2,mem_keyboard_tx_data
+	ncall keyboard_set_repeat_send_flag,blank
+	fetch 6,mem_keyboard_tx_data+3
+	ncall keyboard_set_repeat_send_flag,blank
+
+keyboard_device_data_tpye_check_next:
+	fetch 1,mem_keyboard_tx_data
+	beq HID_REPORTID_KEY_STANDARD,keyboard_standard_data_send
+	beq HID_REPORTID_MOUSE,keyboard_mouse_data_send
+	beq HID_REPORTID_CONSUMER_KEY,keyboard_consumer_data_send
+	beq HID_REPORTID_SYSTEM_CTRL,keyboard_system_control_data_send
+	rtn
+
+keyboard_mouse_data_send:
+	jam DEVICE_DATA_TPYE_MOUSE,mem_keyboard_data_send_flag
+	arg mem_keyboard_tx_data,contr
+	arg mem_mouse_key,contw
+	arg 7,loopcnt
+	branch memcpy
+	
+keyboard_standard_data_send:
+	jam DEVICE_DATA_TPYE_STANDARD_KEYBOARD,mem_keyboard_data_send_flag
+	call keyboard_clear_key_data
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,keyboard_standard_data_send_end
+	call keyboard_24g_led_get_status_check
+	fetch 1,mem_keyboard_led_status_get
+	store 1,mem_keyboard_tx_data+2
+keyboard_standard_data_send_end:
+	arg mem_keyboard_tx_data,contr
+	arg mem_customer_key_press,contw
+	arg 9,loopcnt
+	branch memcpy
+
+keyboard_consumer_data_send:
+	jam DEVICE_DATA_TPYE_CONSUMER,mem_keyboard_data_send_flag
+	call keyboard_clear_key_data
+	setarg 0x03
+	call mouse_customer_media_key_set
+	arg mem_keyboard_tx_data+1,contr
+	arg mem_customer_key_press+1,contw
+	arg 2,loopcnt
+	branch memcpy
+
+keyboard_system_control_data_send:
+	jam DEVICE_DATA_TPYE_SYSTEM_CONCTOL,mem_keyboard_data_send_flag
+	call keyboard_clear_key_data
+	setarg 0x02
+	store 8,mem_customer_key_press
+	store 8,mem_customer_key_release
+	fetch 1,mem_keyboard_tx_data+1
+	store 1,mem_customer_key_press+1
+	rtn
+
+
+keyboard_clear_key_data:
+	arg 18,loopcnt
+	arg mem_customer_key_press,contw
+	branch clear_mem
+
+
+
+////////////////////////////////////////lpm/////////////////////////////////////////////////////////////////////////	
+keyboard_lpm_before_common:	
+	call clear_wake
+	call mouse_wheel_check
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_set_wake
+
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+keyboard_key_col_wake_init:
+	ifetcht 1,regb
+	isolate1 7,temp				// exmcu gpio
+	ncall gpio_out_active,true
+	increase 1,regb
+	loop keyboard_key_col_wake_init
+
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+keyboard_key_row_wake_init:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall gpio_set_wake_by_current_state,zero
+	increase 1,regb
+	loop keyboard_key_row_wake_init
+	rtn
+
+keyboard_key_row_wake_set:
+	fetch 1,mem_same_keyvalue_timerout_flag
+	branch gpio_set_wake,blank
+	branch gpio_set_wake_by_current_state
+keyboard_process_lpm_before:
+	rtnmark1 mark_24g
+	call keyboard_lpm_before_common
+	fetch 1,mem_lpm_current_mult
+	nrtn blank					// 7.5ms, no gpio wakeup
+	branch gpio_clr_wake
+keyboard_before_hibernate:
+	bpatch patch0b_2,mem_patch0b
+	jam 0xff,mem_sensor_motion_gpio
+	call disable_authrom
+	call keyboard_device_led_all_off
+	call mouse_before_hibernate_wheel_gpio_set
+	call mouse_setgpio_hibernate
+	call mouse_flash_power_down
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_clr_wake
+	
+keyboard_power_down:
+	call keyboard_device_led_all_off
+keyboard_app_enter_hibernate:
+	bpatch patch0b_3,mem_patch0b
+	call keyboard_setgpio_hibernate
+	call ice_break
+	branch app_enter_hibernate
+	
+keyboard_device_led_all_off:
+	bpatch patch0b_4,mem_patch0b
+	call keyboard_device_led_off
+	call keyboard_numlock_led_off
+	call keyboard_capslock_led_off
+	branch keyboard_power_led_off			
+
+
+
+
+
+	
+keyboard_setgpio_hibernate:
+	bpatch patch0b_5,mem_patch0b
+	call clear_wake
+	call keyboard_device_led_all_off
+	call mouse_set_sdio_high
+	call keyboard_lpm_before_common
+	call mouse_gpio_pd_idle
+	fetcht 1,mem_mouse_reuse_2ice_gpio
+	call mouse_gpio_config_input_pu
+	call mouse_gpio_set_high_impedance
+	branch mouse_adc_gpio_set_before_hibernate
+////////////////////////////////////////24g/////////////////////////////////////////////////////////////////////////	
+
+
+
+
+
+
+
+
+
+
+keyboard_g24_reconn_dispatch:
+	fetch 2,mem_24g_reconn_count
+	and_into 0xe0,pdata
+	branch keyboard_g24_reconn_dispatch_next,blank		// each 0x100 times,reconnect 16 times
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+keyboard_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch g24_reconn_device_fail,sync
+	nbranch g24_reconn_device_fail,user3
+	call keyboard_g24_ackpayload_parse
+	branch g24_reconn_dispatch_next+5
+
+
+
+keyboard_g24_transmit_no_interrupt:
+
+	call g24_txdata_prep
+	nbranch keyboard_g24_nodata_transmit,user
+keyboard_g24_transmit_start:
+	call keyboard_g24_transmit_process
+	call keyboard_power_ctrl_start
+	branch keyboard_g24_transmit_start_next
+
+keyboard_g24_nodata_transmit:
+	fetch 8,mem_keyscan_value_current
+	nbranch keyboard_g24_transmit_start,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch keyboard_g24_transmit_start,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch keyboard_g24_transmit_start,blank
+
+	fetch 1,mem_24g_transmit_by_interrupt
+	rtneq G24_TX_TIMER_INT_ENABLE
+	call g24_search_receiver
+keyboard_g24_long_sleep:
+	call keyboard_g24_lpm_wait
+	nrtn user
+	fetch 1,mem_sensor_shutdown_flag
+	ncall keyboard_setgpio_hibernate,blank
+	fetch 4,mem_24g_enter_hibernate
+	branch g24_long_seep2
+
+keyboard_g24_transmit_process:
+	bpatch patch0b_6,mem_patch0b
+	jam 0,mem_24g_retry
+keyboard_g24_transmit_loop:
+	fetchr timeup,2,mem_param_rx_setup
+	until clkn_rt,meet
+	call keyboard_special_key_check
+	fetch 1,mem_keyboard_bt_button_flag
+	nbranch mouse_soft_reset,blank
+	call g24_transmit_receive_ack
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,g24_transmit_no_ack
+	nbranch keyboard_g24_retransmit,sync
+	nbranch keyboard_g24_retransmit,user3
+	call keyboard_g24_ackpayload_parse
+	jam 0,mem_sensor_shutdown_flag
+	branch g24_transmit_no_ack
+	
+
+keyboard_g24_retransmit:
+	fetch 1,mem_24g_abort_pac
+	nrtn blank
+	fetch 2,mem_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_24g_txfail_cnt	
+	fetch 1,mem_24g_txfail_cnt
+	beq 0xff,g24_tx_attempt_fail
+	call keyboard_g24_transmit_hop_process
+	branch keyboard_g24_transmit_loop
+
+
+keyboard_g24_transmit_hop_process:
+	fetcht 1,mem_24g_retry
+	sub temp,20,null
+	branch keyboard_g24_tx_fast_hop,positive		//  1-3 current channel  4~ 20 fast hop
+	arg 25,loopcnt
+	call delay_ms_wait
+	branch g24_hop_ch_disable
+
+keyboard_g24_tx_fast_hop:
+	increase 1,temp
+	storet 1,mem_24g_retry
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch g24_ch,zero
+	fetch 1,mem_24g_retry
+	sub pdata,3,null
+	rtn positive
+	branch g24_tx_fast_hop
+
+
+keyboard_g24_lpm_wait:
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	fetch 1,mem_keyboard_fn_flag
+	nbranch disable_user,blank
+	fetch 1,mem_keyboard_control_key_flag
+	nbranch disable_user,blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nbranch disable_user,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,disable_user
+	branch g24_lpm_wait+5
+	
+keyboard_power_ctrl_start:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	nbranch power_ctrl_start+1,zero
+	jam TX_POWER_F30DB,mem_tx_power
+	rtn
+keyboard_g24_transmit_start_next:
+	fetch 8,mem_24g_long_sleep_set
+	store 8,mem_24g_enter_hibernate
+	fetch 2,mem_24g_long_sleep_param_update_timer_init
+	store 2,mem_24g_long_sleep_param_update_timer
+keyboard_g24_short_sleep:
+	bpatch patch0b_7,mem_patch0b
+	call g24_lpm_wait
+	nrtn user
+	call clear_wake
+	fetch 3,mem_24g_short_sleep_set
+	branch g24_long_seep2	
+	
+
+
+
+
+
+keyboard_24g_package_data:
+	
+	rtnmark0 mark_24g
+	call keyboard_motion
+	nrtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_24g_mouse_package_data
+	fetch 1,mem_customer_key
+	nbranch keyboard_24g_keyboard_package_data,blank
+	branch mouse_24g_mouse_package_data
+
+keyboard_24g_keyboard_package_data:
+	jam TYPE_KB,mem_24g_data_type
+	arg 9,rega	//length
+	fetch 1,mem_customer_data_trigger
+	nbranch keyboard_customer_key_press,blank
+	arg mem_customer_key_release,regb	//tx buff
+	rtn
+keyboard_customer_key_press:
+	arg mem_customer_key_press,regb
+	rtn
+
+
+/**************************************g24 search receiver*****************************************/
+
+keyboard_24g_search_dongle_init:
+	setarg 0
+	store 3,mem_mouse_search_dongle_action
+	rtn
+
+keyboard_24g_search_dongle:
+	bpatch patch0c_0,mem_patch0c
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtn blank
+	fetch 1,mem_24g_abort_pac
+	rtn blank
+	fetch 1,mem_mouse_search_dongle_interval
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_mouse_search_dongle_interval
+	nrtn blank	//400ms
+	jam 0,mem_mouse_search_dongle_ch
+keyboard_24g_search_dongle_loop:
+	
+	fetch 1,mem_mouse_search_dongle_ch
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_ch
+	sub pdata,G24_CH_NUMBER,null
+	nbranch keyboard_24g_search_dongle_loop_end,positive
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch keyboard_24g_search_dongle_loop_retry,sync
+	nbranch keyboard_24g_search_dongle_loop_retry,user3
+	call keyboard_g24_ackpayload_parse
+	call keyboard_24g_search_dongle_success
+keyboard_24g_search_dongle_loop_end:
+	call g24_txbuf_clear
+	fetch 1,mem_mouse_search_dongle_count
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_count
+	beq G24_CH_POLL_COUNT,keyboard_24g_search_dongle_check
+	rtn
+
+keyboard_24g_search_dongle_loop_retry:
+	call g24_ch
+	branch keyboard_24g_search_dongle_loop
+
+keyboard_24g_search_dongle_check:
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit1 G24_DISCONN_STATE
+	set1 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	fetch 2,mem_mouse_24g_search_dongle_time_init		//3min
+	store 2,mem_mouse_no_data_timer
+	rtn
+	
+	
+keyboard_24g_search_dongle_success:
+	fetch 1,mem_24g_abort_pac
+	branch keyboard_24g_search_dongle_init,blank
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit0 G24_DISCONN_STATE
+	set0 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	branch mouse_no_data_timer_init
+
+
+keyboard_g24_ackpayload_parse:
+	call g24_ackpayload_parse
+	fetch 1,mem_24g_rxbuf+1
+	compare 0x08,pdata,0xf8
+	nrtn true
+	fetch 1,mem_24g_rxbuf+2		// pc sleep mouse ackpayload: 01 08 ff
+	beq 0xff,keyboard_24g_hibernate_set
+	rtn
+
+
+
+/////////////////////////////////////////////////////// ble auto recognize////////////////////////////////////////////////////////////	
+keyboard_le_send_att_find_by_type_value_request_ancs:
+	jam 1,mem_le_connect_ios_mac_flag
+	arg 23,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	istore 1,contw
+	setarg 0x0001		//start handle
+	istore 2,contw
+	setarg 0xffff		//end handle
+	istore 2,contw
+	setarg 0x2800		//uuid type
+	istore 2,contw
+	arg mem_le_search_service_uuid,contr
+	branch memcpy16	
+keyboard_le_att_auto_reco_process:
+	bpatch patch0c_1,mem_patch0c
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac	
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp	
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	branch le_parse_att2
+	
+keyboard_le_parse_att_find_by_type_value_rsp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,keyboard_le_parse_att_find_by_type_value_rsp_mac
+keyboard_le_parse_att_find_ios_report:	
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+	branch keyboard_otp_store_computer_system_ble
+keyboard_le_parse_att_not_find_mac_report:	
+
+	fetch 1,mem_le_conn_peer_addr_type
+	store 1,mem_kb_computer_system
+	branch keyboard_otp_store_computer_system_ble
+keyboard_le_parse_att_find_mac_report:	
+	jam SYSTEM_OS_MAC,mem_kb_computer_system
+keyboard_otp_store_computer_system_ble:
+	jam 0,mem_le_connect_ios_mac_flag
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fd0
+	isub temp,regb
+	arg mem_kb_computer_system,rega
+//	copy regb,temp
+	arg 1,loopcnt
+	call otp_write   
+	fetcht 2,mem_otp_read_retention_offset
+	increase 14,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn
+
+
+// second time read device info service differ phone from other	
+keyboard_le_send_att_find_by_type_value_request_mac:
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,keyboard_le_parse_att_not_find_mac_report
+	jam 2,mem_le_connect_ios_mac_flag
+	arg 9,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	istore 1,contw
+	setarg 0x0001		//start handle
+	istore 2,contw
+	setarg 0xffff		//end handle
+	istore 2,contw
+	setarg 0x2800		//uuid type
+	istore 2,contw
+	arg 2,loopcnt
+	arg mem_le_search_mac_uuid,contr
+	branch memcpy
+//third time read handle for manufactory name 
+keyboard_le_parse_att_find_by_type_value_rsp_mac:
+	arg 7,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_READ_BY_TYPE_REQUEST
+	istore 1,contw
+	fetcht 2,mem_le_payload_ptr
+	increase 5,temp
+	ifetch 4,temp
+	istore 4,contw
+	setarg 0x2803
+	istore 2,contw
+	rtn	
+//fourth time whether read manufactory name isn't in device info service	
+keyboard_le_send_att_read_by_type_rsp_mac:
+	fetch 2,mem_le_l2cap_size
+	increase -2,pdata
+	div pdata,7
+	call wait_div_end
+	quotient loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,6,contr
+	branch keyboard_le_check_att_read_type_manu_loop
+
+keyboard_le_check_att_read_type_manu_loop:
+	increase 3,contr
+	ifetch 2,contr
+	copy pdata,regc
+	ifetch 2,contr
+	arg 0x2a29,temp
+	isub temp,null
+	branch keyboard_le_send_att_read_by_type_rsp_manufactory,zero
+	loop keyboard_le_check_att_read_type_manu_loop
+	branch keyboard_le_parse_att_not_find_mac_report
+keyboard_le_send_att_read_by_type_rsp_manufactory:
+	arg 3,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_READ_REQUEST
+	istore 1,contw
+	copy regc,pdata
+	istore 2,contw
+	rtn	
+//fifth time 	read manufactory name make sure is Apple Inc
+keyboard_le_parse_att_manu_resp:
+	fetch 2,mem_le_l2cap_size
+	arg 9,loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,5,rega	
+	arg mem_le_search_mac_manu_name,regb
+	call string_compare 
+	branch keyboard_le_parse_att_find_mac_report,zero
+	branch  keyboard_le_parse_att_not_find_mac_report
+	
+
+
+
+
Index: program/app_module.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_module.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_module.prog	(working copy)
@@ -0,0 +1,1389 @@
+
+ifdef COMPILE_MODULE
+
+module_init:	
+	branch module_lpm_init, wake
+	call le_modified_name
+	setarg module_process_idle
+	store 2,mem_cb_idle_process
+	setarg module_process_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg module_lpm_lock
+	store 2,mem_cb_check_wakelock
+	setarg module_hci_cmd_transmit_le_notify
+	store 2,mem_cb_ble_transmit
+	setarg module_le_receive_data
+	store 2,mem_cb_att_write
+	setarg module_bb_event_timer
+	store 2,mem_cb_event_timer
+
+ifdef COMPILE_WECHAT
+	setarg module_wechat_rx_push_data
+	store 2,mem_module_wechat_rx_push_data_cb
+endif
+	bpatch patch0c_2,mem_patch0c
+	call module_lpm_uart_init
+	call module_gpio_init
+	branch module_hci_event_enter_standby_mode
+
+/*
+	function name:uart init by mem
+	input:
+		mem_module_uart_rx_buffer、mem_module_uart_rx_buffer_end
+		mem_module_uart_tx_buffer、mem_module_uart_tx_buffer_end
+		mem_module_uarta_baud_rate
+		bit0 of mem_module_flag
+*/
+module_lpm_uart_init:
+	fetch 1,core_uart_ctrl
+	set0 BIT_UART_CONTROL_ENABLE,pdata
+	store 1,core_uart_ctrl
+	fetch 8,mem_module_uart_rx_buffer
+	call uarta_init_dma_mem
+	fetch uart_baud_len,mem_module_uarta_baud_rate
+	call uarta_init_baud_rate
+	call uart_clock_select_main_freq_crystal
+	jam gpcfg_uart_txd,core_gpio_conf+HCI_UART_TX_GPIO_NUM
+	jam gpcfg_uart_rxd|gpcfg_pullup,core_gpio_conf+HCI_UART_RX_GPIO_NUM
+	jam gpcfg_uart_rts,core_gpio_conf+HCI_UART_RTS_GPIO_NUM
+	jam gpcfg_uart_cts,core_gpio_conf+HCI_UART_CTS_GPIO_NUM
+
+	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
+	fetch 2,mem_module_flag
+	isolate1 MODULE_FLAG_UART_FLOW_CONTROL,pdata
+	setflag true,BIT_UART_CONTROL_FLOW_CONTROL,temp
+	storet 1,core_uart_ctrl
+	rtn
+
+/*
+	function:init uart & spp clock by lpm wake
+*/
+module_lpm_init:
+	branch module_lpm_uart_init
+
+
+
+/*
+	function name:module_gpio_init
+	init connect state & lpm wake up
+*/
+module_gpio_init:
+	fetcht 1,mem_module_connect_state_gpio
+	call gpio_config_output
+	call module_set_conn_pin_low
+	fetcht 1,mem_module_wake_up_gpio
+	branch gpio_config_input
+
+module_lpm_lock:
+	fetcht 1,mem_module_wake_up_gpio
+	call gpio_get_bit
+	nbranch app_put_lpm_wake_lock,true
+	branch app_get_lpm_wake_lock
+
+
+/*
+	function name:chip idle process callback
+	check uart Tx buffer from SPP Credit&check l2cap fifo&check uart rx data
+*/
+module_process_idle:
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	branch module_process_check_hci_command_complete
+
+	
+module_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,module_process_le_conn
+	beq BT_EVT_LE_DISCONNECTED,module_process_bb_even_le_disconn
+	beq BT_EVT_LE_PAIRING_FAIL,module_hci_event_le_pairing_fail
+	beq BT_EVT_LE_PAIRING_SUCCESS,module_hci_event_le_pairing_success
+	beq BT_EVT_LE_START_ENC,module_hci_event_start_enc
+	beq BT_EVT_LE_PAUSE_ENC,module_hci_event_pause_enc
+	beq BT_EVT_LE_TK_GENERATE,module_hci_event_le_tk
+	beq BT_EVT_STORE_NVRAM,module_hci_event_store_device
+	beq BT_EVT_LE_LTK_LOST,module_process_ble_ltk_lost
+	beq BT_EVT_LE_UPDATE_PHY,module_process_ble_update_phy
+	beq BT_EVT_LE_GET_PASSKEY,module_hci_event_passkey_entry_mode
+ifdef SECURE_CONNECTION
+	beq BT_EVT_LE_GKEY_GENERATE,module_hci_event_gkey_generate
+endif
+	rtn
+
+
+	
+module_process_bb_even_le_disconn:
+	call le_clr_config_more_data
+	jam 0,mem_module_hci_notify_len
+	call module_disconn_start
+	branch module_hci_event_le_disconnect
+
+
+
+	
+module_process_le_conn:
+//	call le_send_att_exchange_mtu_requset
+	call module_conn_start
+	fetch 1,mem_module_le_lpm_mult
+	store 1,mem_lpm_mult
+	branch module_hci_event_le_connect
+
+
+
+module_disconn_start:
+	call module_start_adv_discovery_by_command
+	branch module_set_conn_pin_high
+
+
+module_process_ble_ltk_lost:
+	call le_send_reject_ind
+	branch le_send_smp_security_request
+
+module_process_ble_update_phy:
+	branch module_hci_event_le_update_phy
+
+
+module_set_conn_pin_high:
+	fetcht 1,mem_module_connect_state_gpio
+	branch gpio_out_active
+
+module_conn_start:
+	call module_stop_adv_discovery
+	branch module_set_conn_pin_low
+	
+module_stop_adv_discovery:
+	fetch 1,mem_module_state
+	isolate1 MOUDLE_STATE_BLE_BIT,pdata
+	call app_ble_stop_adv,true
+	rtn
+module_set_conn_pin_low:
+	fetcht 1,mem_module_connect_state_gpio
+	branch gpio_out_inactive
+
+
+/*
+	function name:check hci command complete
+	hci command format:
+	typedef struct HciFormat
+	{
+		uint8_t HciType;
+		uint8_t HciOpcode;
+		uint8_t HciPayloadLen;
+		uint8_t HciPayload[HciPayloadLen];
+	}
+*/
+module_process_check_hci_command_complete:
+	fetch 1,core_uart_status
+	rtnbit1 UART_STATUS_RX_FIFO_EMPTY  //rx no data
+	call uarta_prepare_rx
+	ifetch 1,contru
+	bne 0x01,module_hci_in_excp	//HciType != 0x01
+	fetch 2,core_uart_rxitems
+	sub pdata,2,null
+	rtn positive
+	ifetch 1,contru
+	store 1,mem_module_uart_opcode
+	ifetcht 1,contru
+	copy contru,rega
+	storet 1,mem_module_uart_len
+	add temp,3,temp
+	fetch 2,core_uart_rxitems
+	isub temp,temp
+	nrtn positive
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	call module_hci_cmd_control
+	fetch 1,mem_module_temp_nl_discard_packet
+	rtneq HCI_NOT_DISCARD_PACKET
+	branch module_hci_dicard_packet //discard this packet
+
+module_hci_in_excp:
+	call delay_10ms
+	call module_hci_event_invalid_packet
+	branch module_hci_release_except
+
+
+module_hci_release_except:
+	bpatch patch0c_3,mem_patch0c
+	call uarta_prepare_rx
+	fetch 2,core_uart_rxitems
+	rtn blank
+	iadd contru,contru
+	branch module_hci_dicard_bytes
+
+module_hci_dicard_packet:
+	call uarta_prepare_rx
+	increase 2,contu
+	ifetch 1,contu
+	iadd contu,contu
+module_hci_dicard_bytes:
+	branch uarta_rxdone
+	
+/*********************HCI CONTROL*********************/
+module_hci_cmd_control:
+	bpatch patch0c_4,mem_patch0c
+	fetch 1,mem_module_uart_opcode
+	beq HCI_CMD_SET_LE_ADDR_REQ,module_hci_cmd_set_le_addr
+	beq HCI_CMD_SET_VISIBILITY_REQ,module_hci_cmd_set_visibility	
+	beq HCI_CMD_SET_LE_NAME_REQ,module_hci_cmd_set_le_name
+	beq HCI_CMD_LE_DATA_REQ,module_hci_cmd_receive_le_data
+	beq HCI_CMD_STATUS_IRQ,module_hci_cmd_inquire_status
+	beq HCI_CMD_SET_UARTCONTROL_REQ,module_hci_cmd_set_uart_control_mode
+	beq HCI_CMD_SET_UART_BAUD_REQ,module_hci_cmd_set_uart_baud
+	beq HCI_CMD_VERSION_REQ,module_hci_cmd_version_request
+	beq HCI_CMD_BLE_DISCONNECT,module_hci_cmd_ble_disconnect
+	beq HCI_CMD_SET_NVRAM_REQ,module_hci_cmd_set_nvram
+	beq HCI_CMD_CONFIRM_GKEY,module_hci_cmd_confirm_gkey
+	beq HCI_CMD_AUTO_ADV_SCAN,module_hci_cmd_auto_adv
+	beq HCI_CMD_POWER_REQ,module_hci_cmd_power_request
+	beq HCI_CMD_POWER_SET,module_hci_cmd_power_set
+	beq HCI_CMD_PASSKEY_ENTRY,module_hci_cmd_passkey_entry
+	beq HCI_CMD_SET_GPIO,module_hci_cmd_set_gpio
+	beq HCI_CMD_READ_GPIO,module_hci_cmd_read_gpio
+	beq HCI_CMD_LE_SET_PAIRING,module_hci_cmd_le_set_pairing_mode
+	beq HCI_CMD_LE_SET_ADV_DATA,module_hci_cmd_le_set_adv_data
+	beq HCI_CMD_LE_SET_SCAN_DATA,module_hci_cmd_le_set_scan_data
+	beq HCI_CMD_LE_SEND_CONN_UPDATE_REQ,module_hci_cmd_le_send_conn_update_req
+	beq HCI_CMD_LE_SET_ADV_PARM,module_hci_cmd_set_le_adv_parameter
+	beq HCI_CMD_LE_START_PAIRING,module_hci_cmd_le_start_pairing
+	beq HCI_CMD_SET_WAKE_GPIO,module_hci_cmd_set_wake_gpio
+	beq HCI_CMD_SET_TX_POWER,module_hci_cmd_set_tx_power
+	beq HCI_CMD_LE_CONFIRM_GKEY,module_hci_cmd_le_confirm_gkey
+//	beq HCI_CMD_REJECT_JUSTWORK,module_hci_cmd_set_reject_justwork_flag
+	beq HCI_CMD_RESET_CHIP_REQ,module_hci_cmd_reset_chip
+	beq HCI_CMD_LE_SET_FIXED_PASSKEY,module_hci_cmd_le_set_fixed_passkey
+	beq HCI_CMD_DELETE_CUSTOMIZE_SERVICE,module_hci_cmd_delete_customize_service
+	beq HCI_CMD_ADD_SERVICE_UUID,module_hci_cmd_add_service_uuid
+	beq HCI_CMD_ADD_CHARACTERISTIC_UUID,module_hci_cmd_add_characteristic_uuid
+	beq HCI_CMD_PASSKEY_ENTRY_INPUT,module_hci_cmd_le_passkey_entry_input
+	beq HCI_CMD_LE_CREAT_CONN,module_hci_cmd_le_create_conn
+	beq HCI_CMD_BLE_SET_PHY,module_hci_cmd_ble_set_phy
+	beq HCI_CMD_BLE_READ_CURRENT_PHY,module_hci_cmd_ble_read_current_phy
+	beq HCI_CMD_BLE_SET_DLE,module_hci_cmd_ble_set_dle
+	beq HCI_CMD_READ_CHIP_DATA,module_hci_cmd_read_chip_data
+	beq HCI_CMD_WRITE_CHIP_DATA,module_hci_cmd_write_chip_data
+ifdef COMPILE_WECHAT
+	beq HCI_CMD_WECHAT_SEND_DATA,module_hci_cmd_wechat_send_data
+endif
+	beq HCI_CMD_CLOSE_LPM,module_hci_cmd_close_lpm
+	branch  module_hci_event_receive_invalid_cmd
+
+/*********************HCI COMMAND*********************/
+
+
+//command opcode 0x01
+module_hci_cmd_set_le_addr:
+	fetch 1,mem_module_uart_len
+	bne 6,module_hci_event_receive_invalid_cmd
+	ifetch 6,contru
+	store 6,mem_le_lap
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x02
+module_hci_cmd_set_visibility:
+	fetch 1,mem_module_uart_len
+	bne 1,module_hci_event_receive_invalid_cmd
+	ifetcht 1,contru
+	storet 1,mem_module_bluetooth_stauts_by_command
+	call module_hci_event_receive_valid_cmd
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+
+module_start_adv_discovery_by_command:
+moudle_start_adv_by_command:
+	fetch 1,mem_module_state
+	isolate1 MOUDLE_STATE_BLE_BIT,pdata
+	nrtn true
+	fetcht 1,mem_module_bluetooth_stauts_by_command
+	isolate1 2,temp
+	branch app_ble_start_adv,true
+	branch app_ble_stop_adv
+
+
+
+//command opcode 0x04
+module_hci_cmd_set_le_name:
+	arg 29,pdata
+	arg mem_le_name_len,contw
+	call module_hci_cmd_receive_store_mem
+	branch le_modified_name
+
+
+
+//command opcode 0x09
+module_hci_cmd_receive_le_data:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
+	call module_check_ble_encrypt_state
+	branch module_hci_event_receive_invalid_cmd,user
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	fetch 2,mem_module_flag
+	bbit1 MODULE_FLAG_BLE_DATA_FINISH,module_hci_cmd_receive_le_data_finish
+	fetch 1,mem_module_hci_notify_len
+	nrtn blank
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	ifetch 2,contru		//handle
+	store 2,mem_module_hci_notify_handle
+	storer contru,2,mem_module_hci_nofiy_addr
+	fetch 1,mem_module_uart_len
+	pincrease -2
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	branch module_hci_event_receive_invalid_cmd,zero
+	store 1,mem_module_hci_notify_len
+	fetcht 2,mem_module_hci_notify_handle
+	increase -1,temp
+	call le_att_get_handle_ptr2
+	branch module_hci_cmd_transmit_handle_error,blank
+	ifetcht 4,contr		//flag
+	setarg 0x01280302
+	isub temp,null
+	nbranch module_hci_cmd_transmit_handle_error,zero
+	ifetch 1,contr
+	store 1,mem_module_hci_notify_type
+	and_into 0x30,pdata
+	branch module_hci_cmd_transmit_handle_error,blank
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	call le_set_config_more_data
+	call module_hci_cmd_transmit_le_notify
+	call module_hci_cmd_transmit_le_notify
+	call module_hci_cmd_transmit_le_notify
+	fetch 2,mem_module_flag
+	rtnbit0 MODULE_FLAG_BLE_DATA_FINISH
+module_hci_cmd_receive_le_data_finish:
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	call module_clear_le_tx_data_flag
+	branch module_hci_event_receive_valid_cmd
+
+module_hci_cmd_transmit_handle_error:
+	jam 0,mem_module_hci_notify_len
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	call module_clear_le_tx_data_flag
+	branch module_hci_event_receive_invalid_cmd
+
+module_hci_cmd_transmit_le_notify:
+	fetch 1,mem_module_hci_notify_len
+	rtn blank
+	call le_fifo_check_nearly_full
+	nrtn blank				//no fifo
+	call module_get_le_remote_mtu
+	bpatch patch0c_5,mem_patch0c
+	fetch 2,mem_le_local_mtu
+	call not_greater_than
+	copy pdata,temp
+	fetch 1,mem_le_l2cap_att_states
+	rtnbit1 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+	add temp,-3,pdata		//sub handle and opcode
+	arg 251,temp
+	call not_greater_than
+	fetcht 1,mem_module_hci_notify_len
+	call not_greater_than
+	copy pdata,rega
+	copy temp,pdata
+	isub rega,pdata
+	store 1,mem_module_hci_notify_len
+	call module_hci_cmd_transmit_le_notify_malloc_l2cap
+	fetch 2,mem_module_hci_nofiy_addr
+	copy pdata,contru
+	copy rega,loopcnt
+	call uart_copy_rx_bytes_fast
+	copy contru,pdata
+	store 2,mem_module_hci_nofiy_addr
+	fetch 1,mem_module_hci_notify_len
+	nrtn blank
+	branch module_set_le_tx_data_flag
+
+module_hci_cmd_transmit_le_notify_malloc_l2cap:
+	fetcht 2,mem_module_hci_notify_handle
+	fetch 1,mem_module_hci_notify_type
+	bbit1 BIT_CHARACTERISTIC_INDICATE,le_att_malloc_tx_indication
+	bbit1 BIT_CHARACTERISTIC_NOTIFY,le_att_malloc_tx_notify
+	rtn
+
+
+//output: temp is master mtu
+module_get_le_remote_mtu:
+	arg 0x17,temp
+	fetch 2,mem_module_flag
+	rtnbit1 MODULE_FLAG_BLE_SEND_MTU23
+	fetcht 2,mem_le_remote_mtu
+	rtn
+
+module_check_ble_encrypt_state:
+	fetch 2,mem_module_flag
+	bbit1 MODULE_FLAG_BLE_DATA_ENCRYPT,le_check_encrypt_state
+	branch disable_user
+	
+
+//command opcode 0x0b
+module_hci_cmd_inquire_status:
+	branch module_hci_event_status_res
+
+
+
+
+//command opcode 0x0e
+module_hci_cmd_set_uart_control_mode:
+	ifetch 1,contru
+	fetcht 1,mem_module_flag
+	nsetflag blank,MODULE_FLAG_UART_FLOW_CONTROL,temp
+	storet 1,mem_module_flag
+	fetcht 1,core_uart_ctrl
+	nsetflag blank,BIT_UART_CONTROL_FLOW_CONTROL,temp
+	storet 1,core_uart_ctrl
+ 	branch module_hci_event_receive_valid_cmd
+
+ 	
+//command opcode 0x0f
+module_hci_cmd_set_uart_baud:
+	fetchr loopcnt,1,mem_module_uart_len
+	call string2dec_from_uart
+	call uart_calc_baud_rate_config
+	store uart_baud_len,mem_module_uarta_baud_rate
+	call module_hci_event_receive_valid_cmd
+	call wait_uarttx
+	fetch uart_baud_len,mem_module_uarta_baud_rate
+	branch uarta_init_baud_rate
+
+
+//command opcode 0x10
+module_hci_cmd_version_request:
+	arg 2,rega
+	arg mem_soft_version_num,regb
+	arg 0,temp
+	branch module_hci_event_set_cmd
+
+
+	
+//command opcode 0x12
+module_hci_cmd_ble_disconnect:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
+module_hci_cmd_ble_disconnect_doing:
+	call module_hci_event_receive_valid_cmd
+	branch app_ble_disconnect
+
+
+
+
+//command opcode 0x26
+module_hci_cmd_set_nvram:
+	fetchr loopcnt,1,mem_module_uart_len
+	fetch 2,mem_nv_data_ptr
+	icopy contw
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x28
+module_hci_cmd_confirm_gkey:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,module_hci_cmd_le_confirm_gkey
+	branch module_hci_event_receive_invalid_cmd
+
+
+//command opcode 0x2a
+module_hci_cmd_auto_adv:
+	arg 0x40,loopcnt
+	arg mem_le_adv_data_len,contw
+	call clear_mem
+	setarg 0
+	store 1,mem_regb
+	copy rega,contru
+module_hci_cmd_auto_adv_loop:
+	copy contru,pdata
+	store 2,mem_regc
+	call module_hci_cmd_auto_adv_adv_analys
+
+	fetch 1,mem_regb
+	fetcht 1,mem_temp
+	increase 1,temp
+	iadd temp,pdata
+	store 1,mem_regb
+
+	sub pdata,31,null
+	nbranch module_hci_cmd_auto_adv_store_scan,positive
+module_hci_cmd_auto_adv_store_adv:
+	fetcht 1,mem_le_adv_data_len
+	setarg mem_le_adv_data
+	iadd temp,pdata
+	store 2,mem_contw
+	fetcht 1,mem_temp
+	increase 1,temp
+	fetch 1,mem_le_adv_data_len
+	iadd temp,pdata
+	store 1,mem_le_adv_data_len
+	branch module_hci_cmd_auto_adv_store_common
+module_hci_cmd_auto_adv_store_scan:
+	fetcht 1,mem_le_scan_data_len
+	setarg mem_le_scan_data
+	iadd temp,pdata
+	store 2,mem_contw
+	fetcht 1,mem_temp
+	increase 1,temp
+	fetch 1,mem_le_scan_data_len
+	iadd temp,pdata
+	store 1,mem_le_scan_data_len
+module_hci_cmd_auto_adv_store_common:
+	fetch 2,mem_contw
+	copy pdata,contw
+	fetch 2,mem_regc
+	copy pdata,contru
+
+	copy temp,loopcnt
+	call uart_copy_rx_bytes_fast
+
+	fetch 1,mem_module_uart_len
+	fetcht 1,mem_regb
+	isub temp,null
+	nbranch  module_hci_cmd_auto_adv_loop,zero
+	branch module_hci_event_receive_valid_cmd
+
+//block of adv len in mem_temp
+module_hci_cmd_auto_adv_adv_analys:
+	ifetch 1,contru
+	store 1,mem_temp
+	ifetch 1,contru
+	store 1,mem_rega
+	rtn
+
+
+//command opcode 0x2b
+module_hci_cmd_power_request:
+	arg 0,temp
+	arg 2,rega
+	fetch 2,mem_module_vdd_quotient
+	store 2,mem_event_cmd_response_content
+	arg mem_event_cmd_response_content,regb
+	branch module_hci_event_set_cmd
+
+
+//command opcode 0x2c
+module_hci_cmd_power_set:
+	fetch 1,mem_module_uart_len
+	bne 1,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	store 1,mem_module_read_vdd_flag
+	setarg 0x00
+	store 2,mem_module_vdd_quotient
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x30
+module_hci_cmd_passkey_entry:
+	fetch 1,mem_module_uart_len
+	bne 4,module_hci_event_receive_invalid_cmd
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,module_hci_cmd_le_passkey_entry_input
+	branch module_hci_event_receive_invalid_cmd
+
+
+
+//command opcode 0x31
+module_hci_cmd_set_gpio:
+	fetch 1,mem_module_uart_len
+	bne 3,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	beq HCI_CMD_CONFIG_GPIO_INPUT,module_set_gpio_input
+	beq HCI_CMD_CONFIG_GPIO_OUTPUT,module_set_gpio_output
+	branch module_hci_event_receive_invalid_cmd
+
+module_set_gpio_input:
+	call module_hci_event_receive_valid_cmd
+	ifetcht 1,contru
+	ifetch 1,contru
+	beq GPIO_INPUT_HIGH_IMPEDANCE,gpio_set_high_impedance
+	nsetflag blank,7,temp
+	branch gpio_config_input
+
+module_set_gpio_output:
+	call module_hci_event_receive_valid_cmd
+	ifetcht 1,contru
+	ifetch 1,contru	
+	branch gpio_out_active,blank
+	branch gpio_out_inactive
+
+
+//command opcode 0x32
+module_hci_cmd_read_gpio:
+	fetch 1,mem_module_uart_len
+	bne 1,module_hci_event_receive_invalid_cmd
+	ifetcht 1,contru
+	call gpio_get_bit
+	setarg 0x0
+	nsetflag true,0,pdata
+	arg 1,rega
+	store 2,mem_event_cmd_response_content
+	arg mem_event_cmd_response_content,regb
+	arg 0,temp
+	branch module_hci_event_set_cmd
+
+
+//command opcode 0x33
+module_hci_cmd_le_set_pairing_mode:
+	ifetch 1,contru
+ifdef SECURE_CONNECTION
+	copy pdata,temp
+	beq LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK,module_le_set_pairing_mode_secure_justwork
+	beq LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC,module_le_set_pairing_mode_secure_numeric
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,module_le_set_pairing_mode_secure_passkey
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,module_le_set_pairing_mode_secure_passkey_res_input
+endif 
+	store 1,mem_le_pairing_mode
+ifdef SECURE_CONNECTION
+	call sc_reset
+	call le_secure_connection_disable
+endif 
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_NONE, module_le_set_no_pairing
+	beq LE_PAIRING_MODE_LAGACY_JUSTWORK,module_le_set_pairing_mode_lagacy_just_work
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY,module_le_set_pairing_mode_lagacy_passkey
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT,module_le_set_pairing_mode_lagacy_passkey_res_input
+	branch module_hci_event_receive_invalid_cmd
+	
+ifdef SECURE_CONNECTION		
+module_le_set_pairing_mode_secure_justwork:
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch module_le_set_noinputnooutput
+module_le_set_pairing_mode_secure_numeric:
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	jam FLAG_IOCAP_DISPLAYYESNO,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+module_le_set_pairing_mode_secure_passkey:	
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch module_le_set_displayonly
+module_le_set_pairing_mode_secure_passkey_res_input:
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch module_le_set_keboadonly
+endif 
+
+
+module_le_set_no_pairing:
+	jam FLAG_LE_NO_BONDING_NO_MITM,mem_le_pres_auth
+module_le_set_noinputnooutput:	
+	jam FLAG_IOCAP_NOINPUTNOOUTPUT,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+module_le_set_pairing_mode_lagacy_just_work:
+	jam FLAG_LE_BONDING_NO_MITM,mem_le_pres_auth
+	branch module_le_set_noinputnooutput
+module_le_set_pairing_mode_lagacy_passkey:
+	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
+	branch module_le_set_displayonly
+module_le_set_pairing_mode_lagacy_passkey_res_input:
+	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
+	branch module_le_set_keboadonly
+module_le_set_keboadonly:	
+	jam FLAG_IOCAP_KEYBOARDONLY,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+module_le_set_displayonly:	
+	jam FLAG_IOCAP_DISPLAYONLY,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+
+
+//command opcode 0x34
+module_hci_cmd_le_set_adv_data:
+	arg 31,pdata
+	arg mem_le_adv_data_len,contw
+	branch module_hci_cmd_receive_store_mem
+
+
+//command opcode 0x35
+module_hci_cmd_le_set_scan_data:
+	arg 31,pdata
+	arg mem_le_scan_data_len,contw
+	branch module_hci_cmd_receive_store_mem
+
+/*
+	input:contw is store mem ptr
+	pdata is max length
+*/
+module_hci_cmd_receive_store_mem:
+	fetchr loopcnt,1,mem_module_uart_len
+	isub loopcnt,null
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	istorer loopcnt,1,contw
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd	
+
+	
+//command opcode 0x36
+module_hci_cmd_le_send_conn_update_req:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
+	fetch 1,mem_module_uart_len
+	bne 0x08,module_hci_event_receive_invalid_cmd
+	ifetch 8,contru
+	store 8,mem_le_interval_min
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	call  ui_ipc_send_cmd
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x37
+module_hci_cmd_set_le_adv_parameter:
+	ifetch 2,contru
+	store 2,mem_le_adv_interval
+	storet 1,mem_lpm_overhead
+	iadd temp,pdata
+	store 2,mem_lpm_interval
+	branch module_hci_event_receive_valid_cmd
+	
+	
+//command opcode 0x38
+module_hci_cmd_le_start_pairing:
+	fetch 1,mem_le_pairing_mode
+	branch module_hci_event_receive_invalid_cmd,blank
+	fetch 1,mem_le_pairing_state
+	bne FLAG_LE_PAIRING_NULL,module_hci_event_receive_invalid_cmd
+	fetch 1,mem_le_enc_state
+	bne FLAG_LE_ENC_NULL,module_hci_event_receive_invalid_cmd
+	call check_51cmd_le_smp_sec_req
+	branch module_hci_event_receive_valid_cmd	
+
+
+//command opcode 0x40
+module_hci_cmd_set_wake_gpio:
+	fetch 1,mem_module_uart_len
+	bne 5,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	store 1,mem_module_mcu_wake_pin
+	ifetch 4,contru
+	store 4, mem_module_mcu_wake_delay_us
+	fetcht 1,mem_module_mcu_wake_pin
+	call gpio_config_output
+	call module_set_mcu_wake_pin_low
+	branch module_hci_event_receive_valid_cmd
+	
+
+//command opcode 0x42
+module_hci_cmd_set_tx_power:
+	fetch 1,mem_module_uart_len
+	bne 0x01,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	store 1,mem_tx_power
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x48
+module_hci_cmd_le_confirm_gkey:
+	ifetch 1,contru
+	beq 0x01,module_hci_cmd_le_confirm_gkey_fail
+	fetch 1,mem_le_secure_connect_state
+	beq LE_SC_STAT_SEND_PUBLIC_KEY,module_hci_cmd_le_confirm_gkey_ok
+	beq LE_SC_STAT_RECEIVE_DHKEY,module_hci_cmd_le_confirm_gkey_ok
+	beq LE_SC_STAT_WAIT_CONFIRM_GKEY,module_hci_cmd_le_confirm_gkey_ok
+	branch module_hci_event_receive_invalid_cmd		
+module_hci_cmd_le_confirm_gkey_ok:
+	jam FLAG_LE_SC_CONFRIM_GKEY_OK,mem_le_sc_confirm_gkey_flag
+	branch module_hci_event_receive_valid_cmd	
+	
+module_hci_cmd_le_confirm_gkey_fail:
+	call le_send_pairing_confirm_value_failed
+	branch module_hci_event_receive_valid_cmd
+
+
+
+
+//command opcode 0x51
+module_hci_cmd_reset_chip:
+	call module_hci_event_receive_valid_cmd
+	call wait_uarttx
+	jam 0x01,core_reset // rest YC1021
+	branch assert
+
+
+//command opcode 0x61
+module_hci_cmd_le_set_fixed_passkey:
+	fetch 1,mem_module_uart_len
+	beq 0,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	branch module_hci_cmd_le_set_random_passkey,blank
+	fetch 1,mem_module_uart_len
+	bne 5,module_hci_event_receive_invalid_cmd
+	ifetch 4,contru
+	arg 1000000,temp
+	isub temp,null
+	branch module_hci_event_receive_invalid_cmd,positive
+	store 4,mem_le_tk
+	call le_set_config_fixed_tk
+	branch module_hci_event_receive_valid_cmd
+
+module_hci_cmd_le_set_random_passkey:
+	call le_clr_config_fixed_tk
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x76
+module_hci_cmd_delete_customize_service:
+	arg 0x0001,temp
+	call le_att_get_handle_ptr2
+	add contr,-2,contw
+	setarg 0x0000
+	istore 2,contw
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x77
+module_hci_cmd_add_service_uuid:
+	call module_hci_cmd_add_service_uuid_set_uuid
+	call uart_copy_rx_bytes_len_data
+	setarg 0x0000
+	istore 2,contw
+	branch module_hci_event_uuid_handle
+
+
+
+//command opcode 0x78
+module_hci_cmd_add_characteristic_uuid:
+	ifetch 1,contru	//Characteristic
+	call module_hci_cmd_add_characteristic_uuid_set_handle
+	call module_hci_cmd_add_characteristic_uuid_set_uuid
+	branch module_hci_event_uuid_handle
+
+
+module_hci_cmd_add_service_uuid_set_uuid:
+	call le_att_creat_new_handle
+	setarg 0x280002
+	istore 3,contw
+	rtn
+
+
+module_hci_cmd_add_characteristic_uuid_set_handle:
+	store 1,mem_pdatatemp
+	call le_att_creat_new_handle
+	setarg 0x01280302
+	istore 4,contw
+	fetch 1,mem_pdatatemp
+	istore 3,contw
+	rtn
+
+
+module_hci_cmd_add_characteristic_uuid_set_uuid:
+	call le_att_get_last_handle
+	ifetch 1,contru
+	and pdata,0x1f,loopcnt
+	copy pdata,rega
+	isolate1 BIT_OF_WRITE_AUTHENTICATED,rega
+	setflag true,BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED,temp
+	isolate1 BIT_OF_READ_AUTHENTICATED,rega
+	setflag true,BIT_OF_ATT_HANDLE_READ_AUTHENTICATED,temp
+	istoret 2,contw
+	copy loopcnt,pdata
+	istore 1,contw
+	call uart_copy_rx_bytes
+	call uart_copy_rx_bytes_len_data		//data
+	setarg 0
+	istore 2,contw
+	and temp,0xff,temp
+	increase -1,temp
+	call le_att_get_handle_ptr2
+	add contr,4,contr
+	ifetch 1,contr		//characteristic data
+	bbit1 BIT_CHARACTERISTIC_NOTIFY,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
+	bbit1 BIT_CHARACTERISTIC_INDICATE,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
+	increase 1,temp
+	rtn
+
+
+module_hci_cmd_add_characteristic_uuid_set_ccc_uuid:
+	call le_att_get_last_handle
+	isolate1 BIT_OF_NOTIFY_AUTHENTICATED,rega
+	setflag true,BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED,temp
+	istoret 2,contw
+	setarg 0x02290202
+	istore 8,contw
+	increase -1,temp
+	rtn
+
+
+le_att_creat_new_handle:
+	call le_att_get_last_handle
+	istoret 2,contw
+	rtn
+
+
+uart_copy_rx_bytes_len_data:
+	ifetch 1,contru
+	copy pdata,loopcnt
+	istore 1,contw
+	branch uart_copy_rx_bytes
+
+
+//command opcode 0x7a
+module_hci_cmd_le_passkey_entry_input:
+	fetch 1,mem_le_pairing_state
+	bne FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM,module_hci_event_receive_invalid_cmd
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT,module_hci_cmd_passkey_entry_res_input
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,module_hci_cmd_passkey_entry_sc_res_input
+	branch module_hci_event_receive_invalid_cmd
+
+module_hci_cmd_passkey_entry_sc_res_input:
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_PASSKEY_WAIT_CONFIRM,mem_le_secure_connect_state	
+	branch module_hci_cmd_receive_ble_passkey
+
+module_hci_cmd_receive_ble_passkey:
+	ifetch 4,contru
+	store 4,mem_le_tk
+	branch module_hci_event_receive_valid_cmd
+	
+module_hci_cmd_passkey_entry_res_input:
+	call module_hci_cmd_receive_ble_passkey
+	branch le_send_smp_pairing_confirm
+
+
+//command opcode 0x7b
+module_hci_cmd_le_create_conn:
+	ifetch 6,contru
+	store 6,mem_le_conn_peer_addr
+	jam hci_cmd_le_create_conn,mem_cmd_le_create_conn
+	jam ON,mem_le_conn_flag
+	jam ON,mem_le_scan_enable
+	branch module_hci_event_receive_valid_cmd
+	
+
+
+//command opcode 0x90
+module_hci_cmd_ble_set_phy:
+	fetch 1,mem_module_uart_len
+	bne 2,module_hci_event_receive_invalid_cmd
+	ifetcht 2,contru
+	call le_set_phys
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x91
+module_hci_cmd_ble_read_current_phy:
+	arg 0,temp
+	arg 2,rega
+	arg mem_context+coffset_le_rx_phy,regb
+	branch module_hci_event_set_cmd
+
+
+//command opcode 0x92
+module_hci_cmd_ble_set_dle:
+	fetch 1,mem_module_uart_len
+	bne 8,module_hci_event_receive_invalid_cmd
+	ifetch 8,contru
+	call le_set_dle
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x93
+module_hci_cmd_read_chip_data:
+	ifetchr rega,1,contru
+	ifetchr regb,2,contru
+	arg 0,temp
+	branch module_hci_event_set_cmd
+
+
+//command opcode 0x94
+module_hci_cmd_write_chip_data:
+	fetchr loopcnt,1,mem_module_uart_len
+	increase -2,loopcnt
+	ifetch 2,contru
+	copy pdata,contw
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd
+
+ifdef COMPILE_WECHAT
+//command opcode 0x95
+module_hci_cmd_wechat_send_data:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
+	fetchr loopcnt,1,mem_module_uart_len
+	arg mem_module_wechat_local_data_buffer,contw
+	call uart_copy_rx_bytes_fast
+	fetchr regb,1,mem_module_uart_len
+	arg mem_module_wechat_local_data_buffer,rega
+	call wechat_air_sync_send_wechat_packet
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	rtn user
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	branch module_hci_event_receive_valid_cmd
+endif
+
+
+//command opcode 0xff
+module_hci_cmd_close_lpm:
+	jam 0,mem_lpm_mode
+	branch module_hci_event_receive_valid_cmd
+	
+
+/*********************HCI EVENT*********************/
+
+module_hci_event_receive_invalid_cmd:
+	arg 1,temp
+	arg 0,rega
+	branch module_hci_event_set_cmd
+
+
+module_hci_event_receive_valid_cmd:
+	arg 0,temp
+	arg 0,rega
+	branch module_hci_event_set_cmd
+
+
+//event opcode 0x02
+module_hci_event_le_connect:
+	jam  HCI_EVENT_LE_CONN_REP,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+
+//event opcode 0x05
+module_hci_event_le_disconnect:
+	jam  HCI_EVENT_LE_DIS_REP,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+//event opcode 0x06
+//input:
+//	temp: success 0; fail 1
+//	rega:Response Content length
+//	regb:Response Content address
+module_hci_event_set_cmd:
+	fetch 1,mem_module_uart_opcode
+	copy pdata,regc
+	jam  HCI_EVENT_CMD_RES,mem_module_uart_opcode
+	setarg 2
+	iadd rega,pdata
+	call module_hci_prepare_tx
+	copy regc,pdata
+	istore 1,contwu
+	istoret 1,contwu
+	copy rega,loopcnt
+	copy regb,contr
+	call uart_copy_tx_bytes
+	branch module_hci_transmit_tx
+
+
+
+
+//event opcode 0x08
+//loopcnt pdata is data length
+module_hci_event_receive_le_data:
+	jam HCI_EVENT_LE_DATA_REP,mem_module_uart_opcode
+	add loopcnt,2,pdata
+	call module_hci_prepare_tx
+	fetch 2,mem_module_le_rx_data_handle // Attribute handle
+	istore 2,contwu
+	fetch 2,mem_module_le_rx_data_address
+	icopy contr
+	call uart_copy_tx_bytes_fast
+	copy contr,pdata
+	store 2,mem_module_le_rx_data_address
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x09
+module_hci_event_enter_standby_mode:
+	jam HCI_EVENT_STANDBY_REP,mem_module_uart_opcode
+module_hci_event_enter_standby_mode_len0:
+	setarg 0
+	call module_hci_prepare_tx
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x0a
+module_hci_event_status_res:
+	jam HCI_EVENT_STATUS_RES,mem_module_uart_opcode
+	setarg 1
+	call module_hci_prepare_tx
+	
+	call module_hci_read_bt_status
+	
+	fetch 2,mem_ui_state_map	
+	arg UI_STATE_BLE_CONNECTED,queue
+	qisolate1 pdata
+	setflag true,5,temp	
+	
+
+	
+	istoret 1,contwu
+	branch module_hci_transmit_tx
+
+//	temp: bit0 3.0 inquiry;bit1 3.0 scan;bit2 ble adv;
+
+module_hci_read_bt_status:
+	arg 0,temp
+	fetch 1,mem_le_adv_enable
+	arg 0,queue
+	qisolate1 pdata
+	setflag true,2,temp	
+	rtn
+
+
+//event opcode 0x0d
+module_hci_event_store_device:
+	jam HCI_EVENT_NVRAM_REP,mem_module_uart_opcode
+	fetch 1,mem_nv_data_number
+	mul32 pdata,34,pdata
+	icopy loopcnt
+	call module_hci_prepare_tx
+	fetch 2,mem_nv_data_ptr
+	icopy contr
+	call uart_copy_tx_bytes_fast
+	branch module_hci_transmit_tx
+
+ifdef SECURE_CONNECTION
+//event opcode 0x0e
+module_hci_event_gkey_generate:
+	jam HCI_EVENT_GKEY,mem_module_uart_opcode
+	setarg 4
+	call module_hci_prepare_tx
+	fetch 4,mem_gkey
+	istore 4,contwu
+	branch module_hci_transmit_tx
+endif
+
+//event opcode 0x0f
+module_hci_event_invalid_packet:
+	jam HCI_EVENT_INVALID_PACKET,mem_module_uart_opcode
+	fetch 2,core_uart_rxitems
+	arg 0x40,temp
+	call not_greater_than
+	copy pdata,rega
+	copy pdata,loopcnt
+	call uarta_prepare_rx
+	arg mem_module_rx_error_data_buffer,contw
+	call uart_copy_rx_bytes_fast
+	copy rega,pdata
+	copy rega,loopcnt
+	call module_hci_prepare_tx
+	arg mem_module_rx_error_data_buffer,contr
+	call uart_copy_tx_bytes_fast
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x10
+module_hci_event_passkey_entry_mode:
+	jam  HCI_EVENT_GET_PASSKEY,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+//event opcode 0x11
+module_hci_event_le_tk:
+	jam HCI_EVENT_LE_TK,mem_module_uart_opcode
+	setarg 4
+	call module_hci_prepare_tx
+	fetch 4,mem_le_tk
+	istore 4,contwu
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x14
+module_hci_event_le_pairing_fail:
+	arg FLAG_BLE_PAIRING_FAIL,rega
+	branch module_hci_event_pairing_completed
+
+module_hci_event_le_pairing_success:
+	arg FLAG_BLE_PAIRING_SUCCESS,rega
+	branch module_hci_event_pairing_completed
+
+
+module_hci_event_pairing_completed:
+	jam HCI_EVENT_LE_PAIRING_STATE,mem_module_uart_opcode
+	setarg 2
+	call module_hci_prepare_tx
+	copy rega,pdata
+	istore 2,contwu
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x15
+module_hci_event_pause_enc:
+	arg FLAG_EVENT_PAUSE_ENC,regc
+	branch module_hci_event_enc
+
+module_hci_event_start_enc:
+	arg FLAG_EVENT_START_ENC,regc
+
+module_hci_event_enc:
+	jam HCI_EVENT_LE_ENCRYPTION_STATE,mem_module_uart_opcode
+	setarg 1
+	call module_hci_prepare_tx
+	copy regc,pdata
+	istore 1,contwu
+	branch module_hci_transmit_tx
+
+
+
+//event opcode 0x29
+//input:temp uuid number
+module_hci_event_uuid_handle:
+	storet 2,mem_temp
+	jam HCI_EVENT_UUID_HANDLE,mem_module_uart_opcode
+	setarg 2
+	call module_hci_prepare_tx
+	fetcht 2,mem_temp
+	istoret 2,contwu
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x2B
+module_hci_event_le_input_passkey:
+	jam HCI_EVENT_LE_INPUT_GKEY,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+//event opcode 0x40
+module_hci_event_le_update_phy:
+	jam HCI_BLE_UPDATE_PHY_EVENT,mem_module_uart_opcode
+	setarg 2
+	call module_hci_prepare_tx
+	fetch 2,mem_context+coffset_le_rx_phy
+	istore 2,contwu
+	branch module_hci_transmit_tx
+
+ifdef COMPILE_WECHAT
+//event opcode 0x41
+module_wechat_rx_push_data:
+module_hci_event_ble_wechat_receive_push_data:
+	call wechat_air_sync_check_push_data_struct
+	nrtn user
+	jam HCI_BLE_WECHAT_RECEIVE_PUSH_DATA,mem_module_uart_opcode
+	copy loopcnt,pdata
+	call module_hci_prepare_tx
+	copy regc,contr
+	call uart_copy_tx_bytes_fast
+	branch module_hci_transmit_tx
+endif
+	
+
+//****************************************************************//
+	//module_hci_prepare_tx
+	//function:write hci packet header
+	//input: pdata-----packet length  (1byte)
+	//input: mem_uart_opcode------opcode (1byte)
+	//output:contwu --- pointer to packet payload
+	//use reg: contwu,pdata
+//****************************************************************//	
+module_hci_prepare_tx:
+	jam 0x02,mem_module_uart_cmd
+	store 1,mem_module_uart_len
+	storet 8,mem_temp
+	bpatch patch0c_6,mem_patch0c
+	call module_set_mcu_wake_pin_high_delay
+	fetcht 8,mem_temp
+	call uarta_prepare_tx_register_push
+	fetch 3,mem_module_uart_cmd
+	istore 3,contwu
+	rtn
+
+module_hci_transmit_tx:
+	bpatch patch0c_7,mem_patch0c
+	branch uarta_send_register_pop
+
+module_set_mcu_wake_pin_high_delay:
+	call module_check_mcu_wake_pin_high
+	rtn true
+module_set_mcu_wake_pin_h_delay:
+	call module_set_mcu_wake_pin_high
+	fetch 4,mem_module_mcu_wake_delay_us
+	rshift2 pdata,pdata
+	rtn blank
+	branch delay
+
+module_set_mcu_wake_pin_high:
+	fetcht 1,mem_module_mcu_wake_pin
+	branch gpio_out_active
+
+module_check_mcu_wake_pin_high:
+	fetcht 1,mem_module_mcu_wake_pin
+	branch gpio_check_active
+
+module_set_mcu_wake_pin_low:
+	fetcht 1,mem_module_mcu_wake_pin
+	branch gpio_out_inactive
+
+
+
+/*********************hci command end*********************/
+
+/*********************hci ble receive data start*********************/
+
+//rega is le rx data address
+//regb is le rx data length
+//mem_le_att_handle is write handle
+module_le_receive_data:
+	storer rega,2,mem_module_le_rx_data_address
+	storer regb,2,mem_module_le_rx_data_len
+	fetch 2,mem_le_att_handle
+	store 2,mem_module_le_rx_data_handle
+	call module_check_ble_encrypt_state
+	rtn user
+	
+module_le_receive_data_ok:	
+	fetcht 2,mem_module_le_rx_data_len
+	fetch 1,mem_module_ble_data_uart_max_length
+	call not_greater_than
+	copy pdata,loopcnt
+	copy temp,pdata
+	isub loopcnt,pdata
+	store 2,mem_module_le_rx_data_len
+	call module_hci_event_receive_le_data
+	fetch 2,mem_module_le_rx_data_len
+	rtn blank
+	branch module_le_receive_data_ok
+
+/*********************hci ble receive data end*********************/
+
+
+module_bb_event_timer:
+	rtn
+
+module_read_vdd_timer:
+	fetch 1,mem_module_read_vdd_flag
+	rtn blank
+	fetch 1,mem_module_read_vdd_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_module_read_vdd_count
+	nrtn blank
+	jam FLAG_MODULE_READ_VDD_COUNT,mem_module_read_vdd_count
+	call enable_adc
+	call vdd_calculate_by_mode
+	div pdata,10
+	call get_div_result
+	div pdata,100
+	call get_div_result
+	remainder temp
+	store 1,mem_module_vdd_quotient
+	storet 1,mem_module_vdd_remainder
+	rtn	
+	
+
+
+/**************module state *******************/
+
+module_set_le_tx_data_flag:
+	arg MODULE_FLAG_BLE_DATA_FINISH,queue
+	branch module_set_state
+	
+module_clear_le_tx_data_flag:
+	arg MODULE_FLAG_BLE_DATA_FINISH,queue
+	branch module_clr_state
+
+module_clr_state:
+	fetch 2,mem_module_flag
+	qset0 pdata
+	store 2,mem_module_flag
+	rtn
+
+module_set_state:
+	fetch 2,mem_module_flag
+	qset1 pdata
+	store 2,mem_module_flag
+	rtn
+	
+/**************module state end*******************/
+
+endif
Index: program/app_mouse.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_mouse.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_mouse.prog	(working copy)
@@ -0,0 +1,5303 @@
+
+ifdef COMPILE_MOUSE
+mouse_init:
+	call enable_authrom
+	call mouse_setting_config
+	call mouse_init_sunt
+	rtn wake
+	call mouse_setting_sensor_type
+	call mouse_drawing_optima_init
+	call mouse_cb_fuction
+	call mouse_sensor_powerdown
+mouse_init_wireless:	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	call mouse_check_select_device_by_switch
+	branch mouse_start_work
+
+
+mouse_cb_fuction:
+	bpatch patch0d_0,mem_patch0d
+	setarg mouse_24g_short_sleep
+	store 2,mem_cb_24g_transmit_short_sleep
+	setarg mouse_24g_long_sleep
+	store 2,mem_cb_24g_transmit_long_sleep
+	setarg mouse_24g_before_lpm_sleep
+	store 2,mem_cb_before_lpm_sleep
+	setarg mouse_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg mouse_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	setarg mouse_lpm_before_common
+	store 2,mem_cb_24g_lpm_before
+	setarg mouse_le
+	store 2,mem_cb_le_process
+	setarg mouse_process_lpm_before
+	store 2,mem_cb_before_lpm
+	setarg mouse_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg mouse_idle
+	store 2,mem_cb_idle_process
+	setarg mouse_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg mouse_le_bb_event_connect_complete
+	store 2,mem_cb_att_write	
+	setarg mouse_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg mouse_spi_write_flash_cb
+	store 2,mem_cb_spi_flash_write_complate
+	setarg mouse_lpm_check_wake_lock
+	store 2,mem_cb_check_wakelock
+	setarg mouse_le_transmit
+	store 2,mem_cb_ble_transmit
+	setarg mouse_set_lpm_mult
+	store 2,mem_cb_bt_set_mult
+	rtn
+
+
+mouse_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call mouse_24g_send_time_long_wake
+	call mouse_gpio_init
+	call mouse_le_name_modify
+	call mouse_param_init
+	call mouse_device_multi_led_parm_init
+	call le_set_fixed_ltk_justwork
+mouse_load_device_info_check:
+	bpatch patch0d_1,mem_patch0d
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_load_eeprom_info_check
+	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_check
+	bbit1 MOUSE_ENABLE_OTP,mouse_load_otp_info_check
+	rtn
+	
+mouse_xtal_init:
+	jam XTAL_16M,mem_fcomp_div		// 0x08--16M 
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_16M
+	jam XTAL_24M,mem_fcomp_div		// 0x18--24M
+	rtn
+
+mouse_24g_phy_select:
+	call g24_enable_1M
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	branch g24_enable_2M
+
+mouse_default_init:
+	bpatch patch0d_2,mem_patch0d
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_KEYBOARD_ENABLE,pdata
+	call mouse_customer_key_enable,true
+	
+mouse_default_parm_init:
+	fetch 2,mem_mouse_24g_pair_timeout_init
+	store 2,mem_24g_pair_timeout_init
+
+	fetch 1,mem_mouse_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout_init
+
+	fetch 5,mem_rssi_dis_min_24g_init
+	store 5,mem_rssi_dis_min_24g
+
+	fetch 1,mem_mouse_24g_pair_tx_power
+	store 1,mem_24g_pair_tx_power
+
+	fetch 1,mem_24g_ch_map_update
+	ncall g24_chamap_param_update,blank
+mouse_default_parm_init_next:
+	bpatch patch0d_3,mem_patch0d
+	call mouse_xtal_init
+	call mouse_24g_phy_select
+	call mouse_24g_long_sleep_set
+	branch g24_pair_param_init
+
+mouse_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	jam 3,mem_lpm_mult_timeout
+	jam 8,mem_lpm_overhead
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue
+	jam COMMBINATION_KEY_STATE_UP,mem_commbination_key_statue	
+	setarg 0x0200
+	store 2,mem_lpm_interval
+	jam 0x17,mem_le_local_mtu
+	jam 0x17,mem_le_remote_mtu
+
+	setarg mem_le_tx_buffer0_omemalloc
+	store 2,mem_ble_l2cap_tx_buff0_ptr
+	setarg MOUSE_BLE_L2CAP_TXBUFF_SIZE
+	store 2,mem_ble_l2cap_tx_buff_size_ptr
+	branch mouse_adc_gpio_mux_init
+	
+mouse_param_init:
+	bpatch patch0d_4,mem_patch0d
+	call mouse_param_common_init
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state	
+//===========init spi param==============================
+	setarg 0x0a77
+	store 2,mem_spi_init_clk
+	setsect 0,0x1224
+	setsect 1,0x4000
+	setsect 2,0x0
+	istore 5,contw
+//======================================================	
+	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BT_125Hz,mouse_param_init_intervl_end
+	setarg LE_INTERVAL_7_5MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+mouse_param_init_intervl_end:
+	call mouse_g24_interval_param_8ms
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_250Hz,mouse_24g_short_sleep_set_end
+	call mouse_g24_interval_param_4ms
+mouse_24g_short_sleep_set_end:
+	fetch 3,mem_24g_short_sleep_set
+	store 3,mem_mouse_24g_short_sleep_set_init
+	fetch 1,mem_device_flag
+	store 1,mem_device_flag_temp
+	fetch 3,mem_le_lap+3
+	store 3,mem_mouse_le_lap_temp
+	setarg 0
+	store 7,mem_mouse_key
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_bt_discovery_count
+	store 1,mem_select_device_count
+	call le_modified_name_adv
+mouse_sensor_set_angle:
+	bpatch patch0d_5,mem_patch0d
+	fetch 1,mem_sensor_angle_default
+	store 1,mem_config_sensor_angle
+	fetch 1,mem_select_sensor_angle_gpio
+	rtneq GPIO_DISABLE
+	fetcht 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	call mouse_sensor_switch_angle,true
+	branch mouse_gpio_config_input_pd
+mouse_sensor_switch_angle:
+	fetch 1,mem_sensor_angle_switch
+	store 1,mem_config_sensor_angle
+	rtn
+
+mouse_g24_interval_param_4ms:
+	fetch 3,mem_mouse_24g_short_sleep_set_4ms
+	store 3,mem_24g_short_sleep_set
+	fetch 3,mem_mouse_24g_long_sleep_set_4ms
+	store 3,mem_24g_long_sleep_set
+	fetch 1,mem_mouse_24g_fast_hop_count_4ms
+	store 1,mem_24g_fast_hop_count
+	fetch 4,mem_mouse_24g_tsniff_4ms
+	store 4,mem_mouse_24g_tsniff	
+mouse_report_rate_set_250hz:
+	setarg 0x100c0c
+	store 3,mem_24g_interval
+	rtn
+
+mouse_g24_interval_param_8ms:
+	fetch 3,mem_mouse_24g_short_sleep_set_8ms
+	store 3,mem_24g_short_sleep_set
+	fetch 3,mem_mouse_24g_long_sleep_set_8ms
+	store 3,mem_24g_long_sleep_set
+	fetch 1,mem_mouse_24g_fast_hop_count_8ms
+	store 1,mem_24g_fast_hop_count
+	fetch 4,mem_mouse_24g_tsniff_8ms
+	store 4,mem_mouse_24g_tsniff
+mouse_report_rate_set_125hz:
+	setarg 0x1c1919
+	store 3,mem_24g_interval
+	rtn
+
+//mouse_report_rate_set_500hz:
+//	setarg 0x080606
+//	store 3,mem_24g_interval
+//	rtn
+//mouse_report_rate_set_1000hz:
+//	setarg 0x040303
+//	store 3,mem_24g_interval
+//	rtn
+
+
+mouse_start_work:
+	bpatch patch0d_6,mem_patch0d
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING, mouse_24g_first_start_auto_pair_mode
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_start_mode
+mouse_le_fast_conn_judge:
+	call mouse_bluetooth_fast_conn_disable
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_le_device1_judge
+	beq MODE_BT_DEVICE2,mouse_le_device2_judge
+	rtn
+mouse_le_device1_judge:
+	fetch 6,mem_device1_addr
+	fetcht 6,mem_mouse_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+	branch mouse_start_reconnect_device
+	
+mouse_le_device2_judge:
+	fetch 6,mem_device2_addr
+	fetcht 6,mem_mouse_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+	branch mouse_start_reconnect_device
+	
+mouse_start_reconnect_device:
+	bpatch patch0d_7,mem_patch0d
+	call mouse_device_le_reconn_led_config
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+mouse_start_reconnect:	
+	fetch 1,mem_xrecord_mode
+	beq REC_4_MODE,mouse4_0_check_reconn_target
+	branch mouse_bluetooth_fast_conn_init
+
+mouse_wakeup_from_power_check:
+	bpatch patch0e_0,mem_patch0e
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_from_poweron
+	fetch 1,core_lpm_isogate
+	bbit1 cold_wake,mouse_wakeup_from_poweron
+	enable user	//wake from hibernate
+mouse_wakeup_from_poweron:
+	fetch 1,mem_reconn_times_init
+	store 1,mem_reconn_times
+	rtn
+
+mouse4_0_check_reconn_target:
+	jam 1,mem_mouse_le_reconnect_flag
+	fetcht 1,mem_mouse_fast_direct_timeout
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse4_0_check_reconn_target_next
+	fetcht 1,mem_mouse_direct_timeout
+mouse4_0_check_reconn_target_next:	
+	storet 1,mem_mouse_direct_timer
+	call app_lpm_mult_disable
+	fetch 3,mem_le_adv_direct_ind
+	store 3,mem_le_adv_data+4
+	call mouse_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED
+	istore 1,contr
+	arg mem_le_scan_data,contr
+	call mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+
+/**********************system clk**********************************/
+mouse_lpm_check_wake_lock:
+	bmark1 mark_24g,app_get_lpm_wake_lock
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	branch app_get_lpm_wake_lock,blank
+	fetch 1,mem_mouse_le_conn_param_reject
+	beq LE_LPM_DISABLE,app_get_lpm_wake_lock
+	fetch 1,mem_mouse_wheel_trigger
+	nbranch app_get_lpm_wake_lock,blank
+	branch app_put_lpm_wake_lock
+
+/**********************system clk end*****************************/
+
+//mouse_delay_enter_hibernata:
+//	fetch 1,mem_mouse_direct_timeout
+//	store 1,mem_mouse_bluetooth_reconnect_timeout
+//	rtn
+ 
+mouse_app_enter_hibernate:
+	bpatch patch0e_1,mem_patch0e
+	setarg PAN_REG_CONFIG
+	call twspi_read
+	bbit1 3,mouse_app_enter_hibernate_next
+	call mouse_sensor_reset
+	call mouse_sensor_powerdown
+mouse_app_enter_hibernate_next:
+	call mouse_setgpio_hibernate
+	branch app_enter_hibernate
+
+mouse_before_hibernate:
+	bpatch patch0e_2,mem_patch0e
+	call disable_authrom 
+	call mouse_before_hibernate_wheel_gpio_set
+	call mouse_setgpio_hibernate
+	call mouse_flash_power_down
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_clr_wake
+
+
+mouse_setgpio_hibernate:
+	bpatch patch0e_3,mem_patch0e
+	call mouse_set_sdio_high
+	call clear_wake
+	call mouse_logo_led_off
+	call mouse_lpm_before_common
+	call mouse_gpio_pd_idle
+	fetcht 1,mem_mouse_reuse_2ice_gpio
+	call mouse_gpio_config_input_pu
+	call mouse_gpio_set_high_impedance
+	call mouse_device_multi_led_all_off
+	call mouse_adc_gpio_set_before_hibernate
+	branch mouse_wheel_gpio_set_before_hibernate
+
+mouse_wheel_gpio_set_before_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+mouse_wheel_gpio_clr_wakeup:	
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_clr_wake
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_clr_wake
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_config_input_pd
+	fetcht 1,mem_whee_b_data_gpio
+	branch mouse_gpio_config_input_pd
+	
+mouse_adc_gpio_set_before_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetch 1,mem_adc_channel_gpio
+	arg gpcfg_no_ie,temp
+ 	branch gpio_config_function_int
+	
+
+//set all unused gpio to pull down mode to save power	
+mouse_gpio_pd_idle:
+	arg core_gpio_conf,contr
+	arg GPIO_NUMBER,loopcnt
+mouse_gpio_pd_idle_loop:
+	ifetch 1,contr
+	nbranch mouse_gpio_pd_idle_configured,blank
+	setarg gpcfg_pulldown
+	add contr,-1,contw
+	istore 1,contw
+mouse_gpio_pd_idle_configured:
+	loop mouse_gpio_pd_idle_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+mouse_gpio_pd_idle_ext:
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch mouse_gpio_pd_idle_loop
+	
+mouse_process_lpm_before:
+	rtnmark1 mark_24g
+	call mouse_lpm_before_common
+	fetch 1,mem_lpm_current_mult
+	nrtn blank					// 7.5ms, no gpio wakeup
+	branch gpio_clr_wake
+
+mouse_lpm_before_common:
+	bpatch patch0e_4,mem_patch0e
+	fetcht 1,mem_whee_a_data_gpio		//reinit gpio pu after disable wheel wakeup
+	call gpio_config_input
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_config_input
+	
+	call mouse_wheel_check
+	fetch 1,mem_mouse_sensor_sclk_gpio		//set sdio high
+ 	call mouse_gpio_config_output_high
+	call twspi_disable
+	
+	fetcht 1,mem_lbutton_gpio
+	call gpio_set_wake
+	fetcht 1,mem_rbutton_gpio
+	call gpio_set_wake
+	fetcht 1,mem_mbutton_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_bk_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_fw_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_customer_key_gpio
+	call gpio_set_wake
+	
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_set_wake
+
+
+//short mult: no key 
+mouse_set_mult:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+	copy rega,pdata
+	nbranch le_set_config_short_mult,blank
+	branch le_clr_config_short_mult
+	
+	
+/****************************adc**************************************/	
+mouse_adc_gpio_set:
+	bpatch patch0e_5,mem_patch0e
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetcht 1,mem_adc_channel_gpio
+	branch gpio_set_high_impedance
+
+mouse_adc_gpio_mux_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	jam MOUSE_ADC_CHECK_MULTIPLE,mem_adc_mux_status
+	rtn
+
+mouse_adc_read:
+	bpatch patch0e_6,mem_patch0e
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	call mouse_adc_gpio_set
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_GPIO,mouse_adc_read_gpio_mux_start	// gpio + dpi/switch
+	jam MOUSE_ADC_CHECK_HVIN_MULTIPLE,mem_adc_mux_status
+	branch mouse_adc_read_start
+
+mouse_adc_read_gpio_mux_start:
+	jam MOUSE_ADC_CHECK_GPIO_MULTIPLE,mem_adc_mux_status
+	branch mouse_adc_read_start
+	
+mouse_adc_read_start:
+	bpatch patch0e_7,mem_patch0e
+	call enable_adc
+	call vdd_calculate_by_mode
+	store 2,mem_mouse_vdd_now_vol
+	fetch 1,mem_adc_config_flag
+	bne ADC_CONFIG_GPIO, mouse_adc_data_process
+	fetcht 2,mem_mouse_vdd_now_vol	// BAT= 1.5V, R = 200k, a = a*1.8
+	mul32 temp,8,pdata
+	div pdata,10
+	call get_div_result
+	iadd temp,pdata
+	store 2,mem_mouse_vdd_now_vol
+mouse_adc_data_process:	
+	arg mem_mouse_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,mouse_app_enter_hibernate
+	bbit0 0,mouse_adc_no_low_voltage
+	jam 1,mem_mouse_adc_last_low_voltage_flag
+	branch mouse_adc_low_voltage
+	
+mouse_adc_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_adc_no_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	call mouse_disable_function_flag
+	jam 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_mouse_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_mouse_adc_last_low_voltage_flag
+	branch mouse_low_voltage_led_off_judge
+	
+
+mouse_adc_bat_percent_lowpower_out:
+	bpatch patch0f_0,mem_patch0f
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+	fetch 1,mem_adc_mux_status
+	beq MOUSE_ADC_CHECK_BATTERY_ONLY,mouse_adc_bat_percent_lowpower_out_battery
+	beq MOUSE_ADC_CHECK_GPIO_MULTIPLE,mouse_adc_bat_percent_lowpower_out_battery
+	beq MOUSE_ADC_CHECK_HVIN_MULTIPLE,mouse_adc_bat_percent_lowpower_out_hvin_multiple
+mouse_adc_bat_percent_lowpower_out_battery:
+	call adc_clear_no_power_flag
+	call adc_clear_low_power_flag
+	fetch 2,mem_pdatatemp+6
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,null
+	ncall adc_set_no_power_flag,positive
+	fetcht 2,mem_pdatatemp+4		//low voltage
+	isub temp,null
+	ncall adc_set_low_power_flag,positive
+mouse_adc_bat_level_set:
+	fetch 2,mem_pdatatemp+6		//now voltage	
+	fetcht 2,mem_pdatatemp		//full voltage
+	isub temp,null
+	branch mouse_adc_bat_level_100_percent,positive		// now >= full
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,pdata
+	nbranch mouse_adc_bat_level_0_percent,positive		// now < shutdown
+	branch mouse_adc_bat_level_0_percent,blank			// now = shutdown
+	mul32 pdata,100,rega								// (now - shutdown)*100 /(full - shutdown)
+	fetch 2,mem_pdatatemp
+	fetcht 2,mem_pdatatemp+2
+	isub temp,temp
+	copy rega,pdata
+	idiv temp
+	call get_div_result
+	store 1,mem_le_battery_level_percentage
+	rtn
+
+mouse_adc_bat_level_100_percent:
+	jam 100,mem_le_battery_level_percentage
+	rtn
+mouse_adc_bat_level_0_percent:	
+	jam 0,mem_le_battery_level_percentage
+	rtn
+
+mouse_adc_bat_percent_lowpower_out_hvin_multiple:
+	branch mouse_adc_bat_percent_lowpower_out_battery
+	
+/****************************adc end********************************/	
+
+
+/****************************gpio******************************************/
+mouse_gpio_init:
+	fetcht 1,mem_eeprom_wp_gpio
+	call gpio_config_output
+//	call usb_offline_check_init
+	fetcht 1,mem_lbutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_rbutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_mbutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_bk_button_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_fw_button_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_dpi_button_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_matrix_public_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_customer_key_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_whee_b_data_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_whee_ta_data_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_whee_tb_data_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_sensor_motion_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_device_switch_gpio
+	call mouse_gpio_config_input_pu
+	
+	fetcht 1,mem_select_sensor_angle_gpio
+	branch mouse_gpio_config_input_pu
+
+
+mouse_gpio_set_pupd_by_input:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	and temp,0x7f,queue
+	fetch 4,core_gpio_in
+	qisolate1 pdata
+	branch mouse_gpio_config_input_pu,true
+mouse_gpio_config_input_pd:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	set1 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+
+mouse_gpio_config_input_pu:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero 
+	set0 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+
+mouse_gpio_set_high_impedance:
+	fetch 3,mem_mouse_set_high_impedance_bit_set
+	store 3,mem_pdatatemp
+	arg 13,loopcnt
+	arg 0,temp
+mouse_gpio_set_high_impedance_bit_loop:	
+	fetch 3,mem_pdatatemp
+	isolate1 0,pdata
+	call gpio_set_high_impedance,true
+	fetch 3,mem_pdatatemp
+	lshift pdata,pdata
+	store 3,mem_pdatatemp
+	increase 1,temp
+	loop mouse_gpio_set_high_impedance_bit_loop
+	rtn
+
+/****************************gpio end*******************************/
+
+
+/***********************le device info modify*****************************/
+mouse_le_name_modify:
+	bpatch patch0f_1,mem_patch0f
+	fetch 8,mem_le_name_patch
+	rtn blank
+	fetch 1,mem_le_name_patch_len
+	copy pdata,rega
+	sub pdata,11,null
+	nbranch mouse_le_name_patch_len_overflow,positive
+	
+	call mouse_le_name_clear
+	
+	arg mem_le_adv_swift_pair+9,contw
+	call mouse_le_name_modify_next
+	
+	arg mem_le_scan_data+2,contw
+	call mouse_le_name_modify_next
+	
+	arg mem_le_name,contw
+mouse_le_name_modify_next:
+	arg mem_le_name_patch,contr
+	copy rega,loopcnt
+	branch memcpy
+
+mouse_le_name_clear:
+	arg mem_le_adv_swift_pair+9,contw
+	call mouse_le_name_clear_next
+	
+	arg mem_le_scan_data+2,contw
+	call mouse_le_name_clear_next
+
+	arg mem_le_name,contw
+mouse_le_name_clear_next:
+	arg 11,loopcnt
+	branch clear_mem	
+
+mouse_le_name_patch_len_overflow:
+	call mouse_le_swift_pair_disable
+	
+	fetch 1,mem_le_name_patch_len
+	increase 1,pdata
+	store 1,mem_le_adv_swift_pair
+	jam 9,mem_le_adv_swift_pair+1
+	arg mem_le_name_patch,contr
+	arg mem_le_adv_swift_pair+2,contw
+	copy rega,loopcnt
+	call memcpy
+
+	fetch 1,mem_le_name_patch_len
+	increase 1,pdata
+	store 1,mem_le_scan_data
+	jam 9,mem_le_scan_data+1
+	arg mem_le_name_patch,contr
+	arg mem_le_scan_data+2,contw
+	copy rega,loopcnt
+	call memcpy
+
+	arg mem_le_name_patch_len,contr
+	arg mem_le_name_len,contw
+	copy rega,loopcnt
+	increase 1,loopcnt
+	branch memcpy
+
+mouse_le_swift_pair_disable:
+	arg mem_le_adv_swift_pair,contw
+	arg 20,loopcnt
+	branch clear_mem
+
+/***********************le device info modify end*************************/
+
+
+/*******************spi*****************************/
+mouse_sensor_spi_init:
+	call mouse_spid_init_pin
+	jam 0x73,mem_spi_init_clk
+//	jam 0x1e,mem_spi_init_delay_time
+	call mouse_spi_init
+	branch twspi_enable
+	
+mouse_spi_write_flash_cb:
+mouse_spi_init:
+	branch spid_init
+	
+mouse_spid_init_pin:
+	fetch 1,mem_mouse_sensor_sclk_gpio
+ 	arg gpcfg_spid_sck,temp
+ 	call gpio_config_function_int
+ 	fetch 1,mem_mouse_sensor_sdio_gpio
+ 	arg gpcfg_spid_sdio,temp
+ 	branch gpio_config_function_int
+
+
+/*******************spi end**************************/
+
+mouse_motion:
+	bpatch patch0f_2,mem_patch0f
+	disable user
+	setarg 0
+	store 6,mem_mouse_x
+	call mouse_check_sensor_data
+	setarg 0x0089
+	call twspi_write	
+	call mouse_setting_sensor_type
+	call mouse_zwheel
+	call mouse_t_zwheel
+	call mouse_key
+	fetch 1,mem_mouse_key
+	and_into 0x1f,pdata
+	store 1,mem_mouse_key
+	nbranch mouse_drawing_optima_init,user
+	call mouse_drawing_optima
+	branch mouse_no_data_timer_init
+
+
+/*******************wheel*************************/
+mouse_zwheel:
+	fetch 1,mem_mouse_z_data
+	rtn blank	
+	store 1,mem_mouse_z
+	jam 0,mem_mouse_z_data
+	branch enable_user
+	
+mouse_t_zwheel:
+	fetch 1,mem_mouse_tz_data
+	rtn blank	
+	store 1,mem_mouse_tz
+	jam 0,mem_mouse_tz_data
+	branch enable_user
+
+mouse_wheel_check:
+	call mouse_t_wheel_scan
+	call mouse_wheel_scan
+	fetch 1,mem_wheel_tb_new_pinlevel
+	fetcht 1,mem_wheel_tb_old_pinlevel
+	store 1,mem_wheel_tb_old_pinlevel
+	isub temp,null
+	nbranch app_lpm_wake_auto_lock,zero
+	fetch 1,mem_mwheel_b_new_pinlevel
+	fetcht 1,mem_mwheel_b_old_pinlevel
+	store 1,mem_mwheel_b_old_pinlevel
+	isub temp,null
+	nbranch app_lpm_wake_auto_lock,zero
+	rtn
+mouse_t_wheel_scan:
+	fetch 1,mem_whee_ta_data_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	copy rega,pdata
+	store 1,mem_wheel_tb_new_pinlevel
+	beq 0x01,mouse_t_wheel_scan_judge1
+	beq 0x02,mouse_t_wheel_scan_judge2
+	fetch 1,mem_wheel_tog
+	bbit1 7,mouse_t_wheel_scan_judge3
+	rtn
+
+mouse_t_wheel_scan_judge1:
+	fetch 1,mem_wheel_tb_old_pinlevel
+	beq 0,mouse_t_wheel_scan_judge11
+	beq 3,mouse_t_wheel_scan_judge12
+	rtn
+mouse_t_wheel_scan_judge2:
+	fetch 1,mem_wheel_tb_old_pinlevel
+	beq 0,mouse_t_wheel_scan_judge21
+	beq 3,mouse_t_wheel_scan_judge22
+	rtn
+mouse_t_wheel_scan_judge11:
+	jam 0x82,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge12:
+	jam 0x81,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge21:
+	jam 0x80,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge22:
+	jam 0x83,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge3:
+	fetch 1,mem_wheel_tog
+	set0 7,pdata
+	store 1,mem_wheel_tog
+	beq 0,mouse_t_wheel_scan_judge30
+	beq 1,mouse_t_wheel_scan_judge31
+	beq 2,mouse_t_wheel_scan_judge32
+	beq 3,mouse_t_wheel_scan_judge33
+	rtn
+mouse_t_wheel_scan_judge30:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 3,mouse_wheel_t_forward
+	rtn
+mouse_t_wheel_scan_judge31:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 0,mouse_wheel_t_forward
+	rtn
+mouse_t_wheel_scan_judge32:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 3,mouse_wheel_t_back
+	rtn
+mouse_t_wheel_scan_judge33:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 0,mouse_wheel_t_back
+	rtn
+mouse_wheel_t_forward:
+	fetch 1,mem_mouse_tz_data
+	increase 1,pdata
+	store 1,mem_mouse_tz_data
+	rtn
+mouse_wheel_t_back:
+	fetch 1,mem_mouse_tz_data
+	increase -1,pdata
+	store 1,mem_mouse_tz_data
+	rtn
+
+
+mouse_wheel_scan:
+	fetch 1,mem_whee_a_data_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	copy rega,pdata
+	store 1,mem_mwheel_b_new_pinlevel
+	beq 0x01,mouse_wheel_scan_judge1
+	beq 0x02,mouse_wheel_scan_judge2
+	fetch 1,mem_mwheel_tog
+	bbit1 7,mouse_wheel_scan_judge3
+	rtn
+
+mouse_wheel_scan_judge1:
+	fetch 1,mem_mwheel_b_old_pinlevel
+	beq 0,mouse_wheel_scan_judge11
+	beq 3,mouse_wheel_scan_judge12
+	rtn
+mouse_wheel_scan_judge2:
+	fetch 1,mem_mwheel_b_old_pinlevel
+	beq 0,mouse_wheel_scan_judge21
+	beq 3,mouse_wheel_scan_judge22
+	rtn
+mouse_wheel_scan_judge11:
+	jam 0x82,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge12:
+	jam 0x81,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge21:
+	jam 0x80,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge22:
+	jam 0x83,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge3:
+	fetch 1,mem_mwheel_tog
+	set0 7,pdata
+	store 1,mem_mwheel_tog
+	beq 0,mouse_wheel_scan_judge30
+	beq 1,mouse_wheel_scan_judge31
+	beq 2,mouse_wheel_scan_judge32
+	beq 3,mouse_wheel_scan_judge33
+	rtn
+mouse_wheel_scan_judge30:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 3,mouse_wheel_forward
+	rtn
+mouse_wheel_scan_judge31:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 0,mouse_wheel_forward
+	rtn
+mouse_wheel_scan_judge32:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 3,mouse_wheel_back
+	rtn
+mouse_wheel_scan_judge33:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 0,mouse_wheel_back
+	rtn
+mouse_wheel_forward:
+	fetch 1,mem_mouse_z_data
+	increase 1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+mouse_wheel_back:
+	fetch 1,mem_mouse_z_data
+	increase -1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+
+
+mouse_wheel_gpio_set_wake:
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_tb_data_gpio
+	branch gpio_set_wake_by_current_state
+	
+mouse_before_hibernate_wheel_gpio_set:
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_b_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_ta_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_tb_data_gpio
+	branch mouse_gpio_set_pupd_by_input
+
+mouse_wheel_trigger:
+	fetch 2,mem_mouse_z
+	rtn blank
+	jam 1,mem_mouse_wheel_trigger
+	jam 10,mem_mouse_wheel_trigger_timer
+	rtn
+
+mouse_wheel_trigger_timer:
+	arg mem_mouse_wheel_trigger_timer,regc
+	arg mouse_wheel_trigger_disable,regb
+	branch timer_single_step
+mouse_wheel_trigger_disable:
+	jam 0,mem_mouse_wheel_trigger
+	rtn
+
+
+/*
+mouse_set_qdecoder_x:
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call mouse_gpio_config_input_pu
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call gpio_get_bit
+	rtn true
+	fetch 1,core_qdec_cntx
+	set1 4,pdata
+	store 1,core_qdec_cntx
+	rtn
+*/	
+	
+/*******************wheel end**********************/
+
+
+/********************dpi******************************/
+mouse_dpi_check:
+	fetch 1,mem_dpi_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_DPI_KEY,mem_mouse_key_temp
+	fetcht 1,mem_dpi_button_gpio
+	call mouse_dpi_key_check
+mouse_dpi_check_next:
+	store 1,mem_mouse_dpikey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_dpi_check_end
+	call mouse_matrix_public_gpio_reset
+mouse_dpi_check_exit:	
+	copy rega,pdata
+	bbit1 MOUSE_DPI_KEY,mouse_dpi_down
+	branch mouse_dpi_up
+	
+mouse_dpi_key_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND,mouse_dpi_key_connect_gnd
+	fetch 1,mem_mouse_dpikey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_check
+mouse_dpi_key_check_next:
+	fetch 1,mem_mouse_ghost_flag
+	nbranch mouse_dpi_check_end,blank
+mouse_dpi_key_connect_matrix:
+	call gpio_get_bit
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_dpi_key_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_dpi_button_gpio
+	fetch 1,mem_mouse_dpikey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_3io6key_dpi_check_end:
+	fetcht 1,mem_dpi_button_gpio
+	call mouse_gpio_config_input_pu
+	branch mouse_dpi_check_exit
+
+mouse_dpi_check_end:
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	jam 0,mem_mouse_dpikey_press_status
+	rtn
+
+mouse_dpi_key_connect_gnd:
+	fetch 1,mem_mouse_dpikey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_dpi_down:
+	fetch 1,mem_mouse_dpi_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_mouse_dpi_button_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+	branch mouse_dpi_process
+
+mouse_dpi_up:
+	fetch 1,mem_mouse_dpi_button_state
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_dpi_up_next
+	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_dpi_up_next
+	rtn
+mouse_dpi_up_next:	
+	fetch 1,mem_mouse_dpi_long_press_flag
+	nbranch mouse_dpi_up_after_long_press,blank
+	fetch 1,mem_select_device_count
+	ncall mouse_dpi_process,blank
+mouse_dpi_up_after_long_press:	
+	jam 0,mem_mouse_dpi_long_press_flag
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_select_device_count	
+	store 1,mem_bt_discovery_count	
+	rtn
+	
+mouse_dpi_process:	
+	bpatch patch0f_3,mem_patch0f
+	call mouse_dpi_ghost_check
+	rtn user
+	fetch 1,mem_mouse_dpi
+	
+	copy pdata,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DOUBLE_DPI_KEY,mouse_double_dpi_check
+	copy temp,pdata
+	
+	increase 1,pdata
+	and pdata,0x03,pdata
+mouse_dpi_level_store:	
+	store 1,mem_mouse_dpi
+	call mouse_setting_dpi
+	branch mouse_store_dpi_info_check
+
+
+/***************************another dpi key dpi**********************/
+
+mouse_double_dpi_check:
+	fetch 1,mem_dpi_another_button_down_enable
+	nbranch mouse_another_dpi_button_down,blank
+mouse_dpi_increase:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_increase_level_4
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL2
+mouse_dpi_increase_level:
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_2 	//1200
+	rtn
+
+mouse_dpi_level_1:		//800
+	setarg 2
+	branch mouse_dpi_level_store
+mouse_dpi_level_2:		//1200
+	setarg 0
+	branch mouse_dpi_level_store
+mouse_dpi_level_3:		//1600
+	setarg 1
+	branch mouse_dpi_level_store
+mouse_dpi_level_4:		//1000
+	setarg 3
+	branch mouse_dpi_level_store	
+
+mouse_dpi_increase_level_4:
+	copy temp,pdata			//0->1,2->3,3->0
+	rtneq MOUSE_DPI_LEVEL2
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_2
+	rtn
+mouse_dpi_decrease_level_4:
+	copy temp,pdata			//0->3,1->0,3->2
+	rtneq MOUSE_DPI_LEVEL3
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_2
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_1
+	rtn
+
+mouse_another_dpi_button_down:
+mouse_dpi_decrease:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_decrease_level_4
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL3
+mouse_dpi_decrease_level:
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_1
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_2
+	rtn
+	
+
+/*************************another dpi key dpi end********************/
+
+mouse_dpi_ghost_check:
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+	branch mouse_ghost_key_value_check
+	
+mouse_dpi_key_check_long_press:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_select_device_by_dpi_button
+	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_discovery_by_dpi_button
+	rtn
+
+mouse_select_device_by_dpi_button:
+	fetch 1,mem_mouse_dpi_button_state
+	rtnne DPI_BUTTON_STATE_DOWN	
+	arg mem_select_device_count,regc
+	arg mouse_ready_reconnection_by_dpi_button,regb
+	branch timer_single_step
+
+mouse_ready_reconnection_by_dpi_button:
+	jam 1,mem_mouse_dpi_long_press_flag
+	branch mouse_ready_reconnection_by_button
+
+mouse_discovery_by_dpi_button:
+	fetch 1,mem_mouse_dpi_button_state
+	rtnne DPI_BUTTON_STATE_DOWN	
+	arg mem_bt_discovery_count,regc
+	arg mouse_long_dpi_button_bt_discovery,regb
+	branch timer_single_step
+
+mouse_long_dpi_button_bt_discovery:
+	jam 1,mem_mouse_dpi_long_press_flag
+	branch mouse_long_button_bt_discovery
+
+mouse_setting_dpi_4_level:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_DPI_LEVEL_4
+	fetch 1,mem_mouse_dpi
+	rtnne MOUSE_DPI_LEVEL4
+	jam MOUSE_DPI_LEVEL1,mem_mouse_dpi
+	rtn
+	
+mouse_setting_dpi:
+	bpatch patch0f_4,mem_patch0f
+	call mouse_setting_dpi_4_level
+	call mouse_dpi_led_blink_delay
+mouse_setting_sensor_type:
+	bpatch patch0f_5,mem_patch0f
+	fetch 1,mem_config_sensor_type
+	beq S201X,mouse_seting_S201_dpi
+	beq P3212,mouse_seting_3212_dpi
+	beq KA8G2,mouse_seting_ka8g2_dpi
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_cpi0		//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_cpi1		//1600
+	beq MOUSE_DPI_LEVEL3,mouse_set_cpi2		//800
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi3		//1000
+mouse_set_cpi1:	//320x+8009
+	fetcht 1,mem_320x_dpi_1
+	branch mouse_dpi_store
+mouse_set_cpi0:
+	fetcht 1,mem_320x_dpi_0
+	branch mouse_dpi_store
+mouse_set_cpi2:
+	fetcht 1,mem_320x_dpi_2
+	branch mouse_dpi_store
+mouse_set_cpi3:
+	fetcht 1,mem_320x_dpi_3
+mouse_dpi_store:
+	fetch 1,mem_config_sensor_type
+	beq P3065_XY,mouse_3065xy_set_dpi
+	beq MX8650,mouse_3065xy_set_dpi
+	beq KA8,mouse_ka8_set_dpi
+	beq P6520,mouse_ka8_set_dpi
+	beq P8009,mouse_3065xy_set_dpi
+mouse_dpi_write:		// 3205  1  2  3  4
+	storet 1,mem_mouse_cpi_count
+	setarg MOUSE_DPI_ADDRESS
+	call twspi_read
+	and pdata,0xf8,temp
+	fetch 1,mem_mouse_cpi_count
+	iadd temp,pdata
+	lshift8 pdata,pdata
+	add pdata,MOUSE_DPI_ADDRESS,pdata
+	branch twspi_write
+
+mouse_3065xy_set_dpi:	// 0 1 2 3
+	increase -1,temp
+	branch mouse_dpi_write
+
+mouse_ka8_set_dpi:	// 3 4 5 6
+	increase 2,temp
+	branch mouse_dpi_write
+
+mouse_seting_S201_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_S201_dpi_0	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_S201_dpi_2	//2400
+	beq MOUSE_DPI_LEVEL3,mouse_set_S201_dpi_3	//3200
+mouse_set_S201_dpi_0:	//1200
+	fetch 1,mem_sensor_s201_dpi_0
+	copy pdata,rega
+	branch mouse_dpi_S201_store
+
+mouse_set_S201_dpi_1:	//1600
+	fetch 1,mem_sensor_s201_dpi_1
+	copy pdata,rega
+	branch mouse_dpi_S201_store
+	
+mouse_set_S201_dpi_2:	//2400
+	fetch 1,mem_sensor_s201_dpi_2
+	copy pdata,rega
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_3:	//3200
+	fetch 1,mem_sensor_s201_dpi_3
+	copy pdata,rega
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_4:	//800
+	fetch 1,mem_sensor_s201_dpi_4
+	copy pdata,rega
+mouse_dpi_s201_store:
+	setarg 0xc309
+	call twspi_write
+	copy rega,pdata
+	lshift8 pdata,pdata
+	add pdata,0x23,pdata
+	call twspi_write
+	setarg 0x0009
+	branch twspi_write
+
+mouse_seting_3212_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi0	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_p3212_cpi1	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_set_p3212_cpi2	//2400
+	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi3	//800
+mouse_set_p3212_cpi1:
+	fetch 1,mem_3212_dpi_1
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi0:
+	fetch 1,mem_3212_dpi_0
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi2:
+	fetch 1,mem_3212_dpi_2
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi3:
+	fetch 1,mem_3212_dpi_3
+mouse_p3212_dpi:
+	store 1,mem_mouse_cpi_count
+	lshift8 pdata,pdata
+	copy pdata,rega
+	add pdata,MOUSE_P3212_DPI_XADDRESS,pdata
+  	call twspi_write
+ 	copy rega,pdata
+  	add pdata,MOUSE_P3212_DPI_YADDRESS,pdata
+	branch twspi_write
+
+mouse_seting_ka8g2_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_pka8g2_cpi0		//1600
+	beq MOUSE_DPI_LEVEL2,mouse_set_pka8g2_cpi1		//2400
+	beq MOUSE_DPI_LEVEL3,mouse_set_pka8g2_cpi2		//3200
+	beq MOUSE_DPI_LEVEL4,mouse_set_pka8g2_cpi3		//800
+mouse_set_pka8g2_cpi1:
+	fetch 1,mem_ka8g2_dpi_1
+	branch mouse_p3212_dpi
+
+mouse_set_pka8g2_cpi0:
+	fetch 1,mem_ka8g2_dpi_0
+	branch mouse_p3212_dpi
+	
+mouse_set_pka8g2_cpi2:
+	fetch 1,mem_ka8g2_dpi_2
+	branch mouse_p3212_dpi
+
+mouse_set_pka8g2_cpi3:
+	fetch 1,mem_ka8g2_dpi_3
+	branch mouse_p3212_dpi
+
+		
+/********************dpi end***************************/		
+
+
+/***********************key******************************/
+
+mouse_key:
+	call mouse_check_firekey_gpio
+	fetch 1,mem_fire_key_flag
+	nbranch fire_key_press,blank
+	fetch 1,mem_fire_key_status
+	nbranch fire_key_process,blank
+	
+	call mouse_check_key_gpio
+	call mouse_ghost_key_check
+	call mouse_set_mult
+	call mouse_24g_key
+	copy rega,pdata
+	fetcht 1,mem_mouse_key_last
+	store 1,mem_mouse_key_last
+	store 1,mem_mouse_key
+	ixor temp,pdata
+	sub pdata,0,null
+	rtn zero
+	branch enable_user
+
+mouse_24g_key:
+	rtnmark0 mark_24g
+	copy rega,pdata
+	rtn blank
+	store 1,mem_mouse_key
+	branch enable_user
+
+	
+/************************************ghost key******************************/
+
+mouse_ghost_key_check:
+	jam 0,mem_mouse_matrix_key_cow_count
+	jam 0,mem_mouse_matrix_key_row_count
+	jam 0,mem_mouse_ghost_flag
+	copy pdata,regb
+	fetcht 1,mem_lbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_matrix_ghost_key_L_BK,zero
+	fetch 1,mem_fw_button_gpio
+	isub temp,null
+	branch mouse_matrix_ghost_key_L_FW,zero
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_MBK_RFW,zero
+	branch mouse_ghost_key_MFW_RBK
+
+mouse_matrix_ghost_key_L_BK:
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_fw_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_LBK_MFW,zero
+	branch mouse_ghost_key_LBK_RFW
+
+mouse_matrix_ghost_key_L_FW:
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_LFW_MBK,zero
+	branch mouse_ghost_key_LFW_RBK
+
+mouse_ghost_key_LBK_MFW:
+	call mouse_ghost_key_check_L_BK
+	call mouse_ghost_key_check_M_FW
+	branch mouse_ghost_key_check_next
+
+mouse_ghost_key_LBK_RFW:
+	call mouse_ghost_key_check_L_BK
+	branch mouse_ghost_key_RFW
+
+mouse_ghost_key_LFW_MBK:
+	call mouse_ghost_key_check_L_FW
+	call mouse_ghost_key_check_M_BK
+	branch mouse_ghost_key_check_next
+	
+mouse_ghost_key_LFW_RBK:
+	call mouse_ghost_key_check_L_FW
+	branch mouse_ghost_key_RBK
+	
+mouse_ghost_key_MBK_RFW:
+	call mouse_ghost_key_check_M_BK
+mouse_ghost_key_RFW:
+	call mouse_ghost_key_check_R_FW
+	branch mouse_ghost_key_check_next
+	
+mouse_ghost_key_MFW_RBK:
+	call mouse_ghost_key_check_M_FW
+mouse_ghost_key_RBK:
+	call mouse_ghost_key_check_R_BK
+mouse_ghost_key_check_next:
+	call mouse_ghost_key_check_BK_FW
+	call mouse_ghost_key_check_LMR
+	fetch 1,mem_mouse_matrix_key_row_count
+	rtn blank
+	fetch 1,mem_mouse_matrix_key_cow_count
+	rtn blank
+	jam 1,mem_mouse_ghost_flag
+	fetch 1,mem_mouse_key_last		// matrix have ghost key
+	copy pdata,rega
+	rtn
+
+mouse_ghost_key_check_L_BK:
+	and regb,MOUSE_L_BK_BUTTON,pdata
+	beq MOUSE_L_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_M_BK:
+	and regb,MOUSE_L_BK_BUTTON,pdata
+	beq MOUSE_M_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_R_BK:
+	and regb,MOUSE_L_BK_BUTTON,pdata
+	beq MOUSE_R_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_L_FW:
+	and regb,MOUSE_L_BK_BUTTON,pdata
+	beq MOUSE_L_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_M_FW:
+	and regb,MOUSE_M_FW_BUTTON,pdata
+	beq MOUSE_M_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_R_FW:
+	and regb,MOUSE_M_FW_BUTTON,pdata
+	beq MOUSE_R_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+
+mouse_ghost_key_check_BK_FW:
+	and regb,MOUSE_BK_FW_BUTTON,pdata
+	beq MOUSE_BK_FW_BUTTON,mouse_matrix_row_more_than_one_key
+	rtn	
+
+mouse_ghost_key_check_LMR:
+	and temp,MOUSE_LMR_BUTTON,pdata	// key LMR press
+	beq MOUSE_LR_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_LM_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_RM_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_LMR_BUTTON,mouse_matrix_row_more_than_one_key
+	rtn
+
+
+mouse_matrix_row_more_than_one_key:
+	jam 1,mem_mouse_matrix_key_row_count
+	rtn
+
+mouse_matrix_cow_more_than_one_key:
+	jam 1,mem_mouse_matrix_key_cow_count
+	rtn
+
+/************************************ghost key end******************************/
+
+
+
+/************************************double dpi key******************************/
+
+mouse_dpi_another_gpio_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
+	bbit0 MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND,mouse_dpi_another_gpio_connect_vin_check
+mouse_dpi_another_gpio_connect_gnd_check:	
+	fetch 1,mem_dpi_another_button_gpio
+	call mouse_gpio_config_output_high
+	call mouse_dpi_another_check
+	fetcht 1,mem_dpi_another_button_gpio
+	branch mouse_gpio_config_input_pu	
+
+mouse_dpi_another_gpio_connect_vin_check:
+	fetch 1,mem_dpi_another_button_gpio
+	call mouse_gpio_config_output_low
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status
+	call mouse_check_key_connect_vin_new
+	call mouse_dpi_another_state_check
+	fetcht 1,mem_dpi_another_button_gpio
+	branch mouse_gpio_config_input_pu	
+
+mouse_dpi_another_down_new:
+	call mouse_gpio_config_input_pu	
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
+	branch mouse_dpi_process
+
+mouse_dpi_another_check:
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status	
+	call mouse_check_key_connect_gnd_new
+mouse_dpi_another_state_check:
+	store 1,mem_dpi_another_press_status
+	fetch 1,mem_dpi_another_button_down_enable
+	branch mouse_dpi_another_up,blank	
+mouse_dpi_another_down:
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
+	branch mouse_dpi_process
+
+mouse_dpi_another_up:
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_dpi_another_button_state
+	rtn
+
+mouse_check_key_connect_gnd_new:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp_patch
+	copy temp,queue
+	beq 0x07,mouse_another_dpi_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_another_dpi_key_release
+	rtn
+
+mouse_check_key_connect_vin_new:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call mouse_gpio_config_input_pd
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp_patch
+	copy temp,queue
+	beq 0x07,mouse_another_dpi_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_another_dpi_key_release
+	rtn
+
+mouse_another_dpi_key_press:
+	jam 1,mem_dpi_another_button_down_enable
+	rtn
+mouse_another_dpi_key_release:
+	jam 0,mem_dpi_another_button_down_enable
+	rtn
+
+/************************************double dpi key end******************************/
+
+
+
+/************************************fire key************************************/
+
+mouse_check_firekey_gpio:
+	arg 0,regb
+	fetch 1,mem_firebutton_gpio
+	rtneq GPIO_DISABLE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_FIRE_KEY_CONNECT_GND,mouse_check_firekey_connect_vin
+mouse_check_firekey_connect_gnd:
+	fetcht 1,mem_firebutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	setflag true,0,regb
+mouse_firekey_state_store:	
+	copy regb,pdata
+	store 1,mem_fire_key_flag
+	rtn
+
+mouse_check_firekey_connect_vin:
+	fetcht 1,mem_firebutton_gpio
+	call mouse_gpio_config_input_pd
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	nsetflag true,0,regb
+	branch mouse_firekey_state_store
+
+fire_key_process: 
+	beq 4,fire_key_process_end
+fire_key_press:
+	call firekey_clkn_bt_timer_check 
+	fetch 4,mem_fire_key_delay
+	arg 0xa0,temp      
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	store 4,mem_fire_key_delay 
+	fetch 1,mem_fire_key_status
+	beq 0,fire_key_process_start
+	beq 1,fire_key_process_release1
+	beq 2,fire_key_process_start2
+	beq 3,fire_key_process_release2
+	rtn
+
+fire_key_process_start:
+	jam 1,mem_fire_key_status
+fire_key_down:
+	jam 1,mem_mouse_key
+	branch enable_user
+
+fire_key_process_release1:
+	jam 2,mem_fire_key_status
+fire_key_release:
+	jam 0,mem_mouse_key
+	branch enable_user
+
+fire_key_process_start2:
+	jam 3,mem_fire_key_status
+	branch fire_key_down
+
+fire_key_process_release2:
+	jam 0,mem_fire_key_status
+	branch fire_key_release
+
+fire_key_process_end:
+	jam 0,mem_fire_key_status
+	jam 0,mem_mouse_key
+	rtn
+
+firekey_clkn_bt_timer_check:
+	fetcht 4,mem_fire_key_delay
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall firekey_clkn_bt_timer_timeout,positive
+	rtn
+firekey_clkn_bt_timer_timeout:
+	setarg 0
+	store 4,mem_fire_key_delay
+	rtn
+
+/*********************************fire key end*****************************/
+
+
+
+/*********************************matrix key*****************************/
+
+mouse_key_check_once:
+	call mouse_check_key_gpio_once
+	call mouse_check_key_gpio
+	setarg 0x00
+	store 3,mem_mouse_lkey_press_status
+	rtn
+	
+mouse_check_key_gpio:
+	bpatch patch0f_6,mem_patch0f
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_check_key_gpio_once,blank
+	arg 0,rega
+	call mouse_check_lkey_gpio
+	call mouse_check_rkey_gpio
+	call mouse_check_mkey_gpio
+	call mouse_check_bkkey_gpio
+	call mouse_check_fwkey_gpio
+	call mouse_check_firekey_gpio
+	call mouse_check_customerkey_gpio
+	copy rega,pdata
+	rtn
+
+mouse_check_key_gpio_once:
+	setarg 0x030303
+	store 3,mem_mouse_lkey_press_status
+	rtn
+
+mouse_check_lkey_gpio:
+	fetch 1,mem_lbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_L_KEY,mem_mouse_key_temp
+	fetcht 1,mem_lbutton_gpio
+	fetch 1,mem_mouse_lkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_lkey_press_status
+	fetcht 1,mem_lbutton_gpio
+	branch mouse_gpio_config_input_pu
+
+mouse_check_rkey_gpio:
+	fetch 1,mem_rbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_R_KEY,mem_mouse_key_temp
+	fetcht 1,mem_rbutton_gpio
+	fetch 1,mem_mouse_rkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_rkey_press_status
+	fetcht 1,mem_rbutton_gpio
+	branch mouse_gpio_config_input_pu
+	
+mouse_check_mkey_gpio:
+	fetch 1,mem_mbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_M_KEY,mem_mouse_key_temp
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_mouse_mkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_mkey_press_status
+	fetcht 1,mem_mbutton_gpio
+	branch mouse_gpio_config_input_pu
+
+mouse_check_bkkey_gpio:
+	fetch 1,mem_bk_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_BK_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_bkkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_bk_check
+	call gpio_get_bit
+	branch mouse_check_bk_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_mouse_bkkey_press_status
+	call mouse_check_key_connect_gnd
+mouse_check_bkkey_gpio_end:	
+	store 1,mem_mouse_bkkey_press_status
+	branch mouse_matrix_public_gpio_reset
+
+mouse_check_bk_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_bkkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_bkkey_gpio_end
+
+mouse_3io6key_bk_check:
+	fetch 1,mem_bk_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_bk_button_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_bkkey_press_status
+	fetcht 1,mem_bk_button_gpio
+	branch mouse_gpio_config_input_pu
+
+
+mouse_check_fwkey_gpio:
+	fetch 1,mem_fw_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_FW_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_fwkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_fw_check
+	call gpio_get_bit
+	branch mouse_check_fw_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_mouse_fwkey_press_status
+	call mouse_check_key_connect_gnd
+mouse_check_fwkey_gpio_end:	
+	store 1,mem_mouse_fwkey_press_status
+mouse_matrix_public_gpio_reset:	
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_gpio_config_input_pu
+
+mouse_check_fw_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_fwkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_fwkey_gpio_end	
+
+mouse_3io6key_fw_check:
+	fetch 1,mem_fw_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_fw_button_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_fwkey_press_status
+	fetcht 1,mem_fw_button_gpio
+	branch mouse_gpio_config_input_pu
+
+mouse_check_customerkey_gpio:
+	jam 0,mem_customer_key
+	fetch 1,mem_customer_key_gpio
+	rtneq GPIO_DISABLE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	bbit1 MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN_OR_MATRIX,mouse_customer_key_connect_vin
+mouse_customer_key_connect_gnd:
+	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
+	fetcht 1,mem_customer_key_gpio
+	fetch 1,mem_mouse_customerkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_customerkey_press_status
+mouse_check_customerkey_gpio_next:
+	copy rega,pdata
+	bbit1 MOUSE_CUSTOMER_KEY,mouse_customerkey_press
+	call mouse_customerkey_release
+mouse_check_customerkey_gpio_exit:
+	fetch 1,mem_customer_data_trigger
+	store 1,mem_customer_data_trigger_last
+	rtn
+
+mouse_customer_key_connect_vin:
+	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_customerkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_customer_key_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_customer_key_check_vin
+	call gpio_get_bit
+	branch mouse_check_customer_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_customer_key_gpio
+	fetch 1,mem_mouse_customerkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_customerkey_gpio_over
+
+mouse_check_customer_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_customerkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_customerkey_gpio_over
+
+mouse_3io6key_customer_key_check_vin:
+	fetch 1,mem_customer_key_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_customer_key_gpio
+	call mouse_3io6key_check
+mouse_check_customerkey_gpio_over:	
+	store 1,mem_mouse_customerkey_press_status
+	call mouse_check_customerkey_gpio_next
+	fetcht 1,mem_customer_key_gpio
+	branch mouse_gpio_config_input_pu
+	
+
+mouse_customerkey_press:
+	jam 1,mem_customer_data_trigger
+	call mouse_customer_key_need_send
+	branch mouse_check_customerkey_gpio_exit
+
+mouse_customerkey_release:
+	jam 0,mem_customer_data_trigger
+	fetch 1,mem_customer_data_trigger_last
+	rtn blank
+mouse_customer_key_need_send:	
+	jam 1,mem_customer_key
+	rtn	
+
+/*******************************matrix key end***************************/
+
+mouse_check_matrix_button_connect_gnd:	
+	call gpio_get_bit
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue	
+	branch  mouse_key_press,true
+mouse_key_release:
+	qset0 rega
+	rtn	
+
+mouse_check_key_connect_gnd:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+mouse_check_key_connect_gnd_1:
+	and regb,0x07,pdata
+mouse_check_key_connect_gnd_next:
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue
+	beq 0x07,mouse_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_key_release
+	rtn
+
+mouse_key_press:
+	qset1 rega
+	rtn
+
+mouse_3io6key_check:
+	bpatch patch0f_7,mem_patch0f
+	copy regc,pdata
+	store 1,mem_mouse_key_status
+	lshift pdata,pdata
+	copy pdata,regb
+	copy temp,regc
+	call mouse_gpio_config_input_pd
+	copy regc,temp
+	call gpio_get_bit
+	nsetflag true,0,regb
+	call mouse_check_press
+	branch mouse_check_key_connect_gnd_next
+
+mouse_check_press:
+	fetcht 1,mem_mouse_key_status
+	and_into 0x01,temp
+	and regb,0x01,pdata
+	isub temp,null
+	nbranch mouse_current_mult_update,zero
+	rtn
+	
+	
+//input:pdata gpio number
+mouse_gpio_config_output_high:
+	rtneq GPIO_DISABLE
+	arg gpcfg_output_high,temp
+	branch gpio_config_function_int
+
+//input:pdata gpio number
+mouse_gpio_config_output_low:
+	rtneq GPIO_DISABLE
+	arg gpcfg_output_low,temp
+	branch gpio_config_function_int	
+	
+/*************************key***************************************/
+
+/**********************sensor******************************/	
+mouse_init_sunt:
+	bpatch patch10_0,mem_patch10
+	call mouse_sensor_spi_init
+	rtn wake
+mouse_init_sensor_wakeup:	
+	call mouse_sensor_poweron
+mouse_init_sensor:
+	bpatch patch10_1,mem_patch10
+	call mouse_read_sensor_id
+	beq P32XX_ID1,mouse_init_p32xx_id2_judge
+	beq P3065_ID1,mouse_init_p3065
+	beq PKA8G2_ID1,mouse_ka8g2_id2_judge
+	call mouse_twspi_reset
+	nop 6900
+	branch mouse_init_sensor
+mouse_twspi_reset:
+	fetcht 1,mem_mouse_sensor_sclk_gpio
+	call twspi_reset
+	branch mouse_spid_init_pin
+
+mouse_read_sensor_id:
+	setarg PAN_REG_PID_H
+	call twspi_read
+	store 1,mem_sensor_id2
+	setarg PAN_REG_PID_L
+	call twspi_read
+	store 1,mem_sensor_id1
+	rtn
+
+mouse_init_p32xx_id2_judge:
+	fetch 1,mem_sensor_id2
+	beq P_MX8650,mouse_mx8650_init_param
+	beq P8009_ID2,mouse_8009_init_param
+	beq P3205_TJ3T_ID2,mouse_S210X_3205_3t_judge
+	beq P3204_TJ3L_ID2,mouse_3204_3l_init_param
+	beq P3212_ID2,mouse_3212_init_param
+	beq PKA8_ID2,mouse_ka8_init_param_check
+	beq P6520A_ID2,mouse_p6520_init_param
+	branch mouse_init_sensor
+
+mouse_S210X_3205_3t_judge:
+	setarg 0x49		// id3
+	call twspi_read
+	beq 0xa1,mouse_S201X_init_param
+	branch mouse_3205_3t_init_param
+
+mouse_S201X_init_param:
+	jam S201X,mem_config_sensor_type
+	rtn
+	
+mouse_mx8650_init_param:
+	jam MX8650,mem_config_sensor_type
+	call mouse_sensor_reset
+	call delay_10ms
+	arg mem_sensor_8650_init,regc
+	call mouse_sensor_wr_seq
+	branch mouse_setting_sensor_type
+
+mouse_8009_init_param:
+	setarg 0x16
+	call twspi_read
+	sub pdata,0xbd,null 
+	nbranch mouse_init_sunt,zero
+	setarg 0x19
+	call twspi_read
+	sub pdata,0x55,null 
+	nbranch mouse_init_sunt,zero
+	setarg 0x1b
+	call twspi_read
+	sub pdata,0x1d,null 
+	nbranch mouse_init_sunt,zero
+	jam P8009,mem_config_sensor_type
+	arg mem_sensor_8009_init,regc
+	branch mouse_sensor_wr_seq
+
+mouse_3205_3t_init_param:
+	jam P3205,mem_config_sensor_type
+	arg mem_sensor_3205_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init,regc
+	call mouse_sensor_wr_seq
+	setarg 0x0943
+	call twspi_write
+	arg mem_sensor_32xx_init_1,regc
+	branch mouse_sensor_wr_seq	
+
+mouse_3204_3l_init_param:
+	jam P3204,mem_config_sensor_type
+	arg mem_sensor_3204_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init_1,regc
+	branch mouse_sensor_wr_seq	
+
+mouse_3212_init_param:
+	jam P3212,mem_config_sensor_type
+	arg mem_sensor_3212_init,regc
+mouse_sensor_wr_seq:
+	ifetch 2,regc
+	arg 0xffff,temp
+	isub temp,null
+	rtn zero
+	call twspi_write
+	increase 2,regc
+	branch mouse_sensor_wr_seq
+
+mouse_ka8_init_param_check:	
+	call mouse_sensor_disable_wp
+	setarg 0x9a5b
+	call twspi_write
+	setarg 0x0d
+	call twspi_read
+	sub pdata,0x12,null
+	branch mouse_ka8ul_init_param,zero
+	sub pdata,0x0a,null
+	nbranch mouse_ka8hd_sensor_judge,zero
+	setarg 0x0e
+	call twspi_read
+	sub pdata,0xe5,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x10
+	call twspi_read
+	sub pdata,0xa5,null
+	branch mouse_ka8ul_init_param,zero
+	call mouse_enable_ka8_sensor_wp
+mouse_ka8_init_param:
+	jam KA8,mem_config_sensor_type	
+	rtn
+mouse_ka8ul_init_param:
+	jam KA8_UL,mem_config_sensor_type	
+	arg mem_sensor_ka8ul_init,regc
+	branch mouse_sensor_wr_seq
+mouse_ka8hd_sensor_judge:
+	sub pdata,0x10,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x0e
+	call twspi_read
+	sub pdata,0xc5,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x10
+	call twspi_read
+	sub pdata,0x38,null
+	nbranch mouse_init_sensor,zero
+mouse_ka8hd_init_param:
+	call mouse_enable_ka8_sensor_wp
+	jam KA8_HD,mem_config_sensor_type
+	rtn
+mouse_enable_ka8_sensor_wp:
+	setarg 0x005b
+	call twspi_write
+	branch mouse_sensor_enable_wp
+	
+mouse_p6520_init_param:
+	jam P6520,mem_config_sensor_type
+	arg mem_sensor_p6520_init,regc
+	branch mouse_sensor_wr_seq
+	
+mouse_init_p3065:
+	call mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq P3065_XY_ID2,mouse_p3065xy_init_param
+	beq P3065_ID2,mouse_p3065_init_param
+	branch mouse_init_sensor
+	
+mouse_p3065_init_param:	
+	jam P3065,mem_config_sensor_type
+	rtn
+
+mouse_p3065xy_init_param:
+	jam P3065_XY,mem_config_sensor_type
+	rtn
+	
+mouse_ka8g2_id2_judge:
+	call mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq PKA8G2_ID2,mouse_ka8g2_init_param
+	branch mouse_init_p32xx_id2_judge
+mouse_ka8g2_init_param:
+	jam KA8G2,mem_config_sensor_type
+	arg mem_sensor_ka8g2_init,regc
+	branch mouse_sensor_wr_seq
+	
+mouse_sensor_enable_wp:
+	setarg 0x0009
+	branch twspi_write
+mouse_sensor_disable_wp:
+	setarg 0x5a09
+	branch twspi_write
+
+mouse_sensor_reset:	
+	arg 0x8006,temp
+	fetch 1,mem_config_sensor_type
+	bne KA8G2,mouse_sensor_reset_end
+	arg 0x9706,temp
+mouse_sensor_reset_end:
+	copy temp,pdata
+	call twspi_write
+	nop 12000
+	rtn
+
+mouse_sensor_poweron_init:
+	arg mem_sensor_poweron_init,regc
+	fetch 1,mem_config_sensor_type
+	rtnne KA8G2
+	arg mem_sensor_ka8g2_poweron_init,regc
+	rtn
+	
+mouse_sensor_poweron:
+	bpatch patch10_2,mem_patch10
+	call mouse_sensor_spi_init
+	call mouse_sensor_reset
+	call mouse_sensor_poweron_init
+	call mouse_sensor_wr_seq
+	branch mouse_setting_sensor_type
+
+mouse_sensor_powerdown:
+	bpatch patch10_3,mem_patch10
+	call mouse_init_sunt
+	call mouse_sensor_spi_init
+	arg 0x0806,temp
+	fetch 1,mem_config_sensor_type
+	bne KA8G2,mouse_sensor_powerdown_end
+	arg 0x1f06,temp
+mouse_sensor_powerdown_end:
+	copy temp,pdata
+	branch twspi_write
+/*********sensor init*************/	
+
+
+
+/*********sensor motion*************/
+mouse_check_sensor_data:
+	fetch 1,mem_spi_write_flash_sm
+	rtnne FLASH_SM_NO_BUYS
+	fetch 1,mem_config_sensor_type
+	beq P3205,mouse_p32xx_sensor_motion
+	beq P3065,mouse_p32xx_sensor_motion
+	beq KA8,mouse_p32xx_sensor_motion
+	beq P3204,mouse_p32xx_sensor_motion
+	beq P3212,mouse_p3212_sensor_motion
+	beq P3065_xy,mouse_p32xx_sensor_motion
+	beq P8009,mouse_p8009_sensor_motion	
+	beq KA8G2,mouse_pka8g2_sensor_motion
+	branch mouse_p32xx_sensor_motion
+
+
+mouse_p32xx_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_p32xx_sensor_motion_2
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_p32xx_sensor_motion_2:
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne P32XX_ID1,mouse_p3065_judge   
+mouse_p32xx_sensor_motion_1:
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	call mouse_read_sensor_common
+	fetch 1,mem_mouse_x
+	call mouse_data_extsign
+	store 2,mem_mouse_x
+	fetch 1,mem_mouse_y
+	call mouse_data_extsign
+	store 2,mem_mouse_y
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,mouse_motion32xx_6clk_direction_selection
+	beq MOUSE_9CLK_ANGLE,mouse_motion32xx_9clk_direction_selection
+	beq MOUSE_12CLK_ANGLE,mouse_motion32xx_12clk_direction_selection
+	beq MOUSE_3CLK_ANGLE,mouse_motion32xx_3clk_direction_selection
+	rtn
+
+mouse_p3065_judge:
+	beq P3065_ID1,mouse_p32xx_sensor_motion_1
+	branch mouse_twspi_reset
+	
+mouse_motion32xx_6clk_direction_selection:
+	call mouse_motion_6clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_9clk_direction_selection:
+	call mouse_motion_9clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_12clk_direction_selection:
+	call mouse_motion_12clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_3clk_direction_selection:
+	call mouse_motion_3clk_direction_dispose
+	branch mouse_sensor_sdio_low
+
+
+	
+mouse_p3212_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_p3212_sensor_motion_1
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_p3212_sensor_motion_1:	
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne P32XX_ID1,mouse_twspi_reset
+mouse_p3212_sensor_motion_2:
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	call mouse_read_sensor_common
+	call mouse_read_3212sensor_xy_high
+	store 1,mem_mouse_xy_h
+	rshift4 pdata,pdata
+	call mouse_data_extsign_bit3
+	store 1,mem_mouse_x+1
+	fetch 1,mem_mouse_xy_h
+	and pdata,0x0f,pdata
+	call mouse_data_extsign_bit3
+	store 1,mem_mouse_y+1
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,mouse_motion_6clk_direction_dispose
+	beq MOUSE_9CLK_ANGLE,mouse_motion_9clk_direction_dispose
+	beq MOUSE_12CLK_ANGLE,mouse_motion_12clk_direction_dispose
+	beq MOUSE_3CLK_ANGLE,mouse_motion_3clk_direction_dispose
+	rtn
+
+mouse_read_3212sensor_xy_high:
+	setarg 0x12
+	branch twspi_read
+
+mouse_pka8g2_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_pka8g2_sensor_motion_1
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_pka8g2_sensor_motion_1:
+	branch mouse_p3212_sensor_motion_2
+
+
+mouse_p8009_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	setarg PAN_REG_OPRATION_STATE
+	call twspi_read
+	branch mouse_p32xx_sensor_motion_1+3,blank
+	setarg 0
+	store 6,mem_mouse_x
+	rtn
+
+mouse_motion_6clk_direction_dispose:
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	branch enable_user
+mouse_motion_12clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	branch enable_user
+mouse_motion_9clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	call mouse_sensor_data_swap_places
+	branch enable_user
+mouse_motion_3clk_direction_dispose:
+	call mouse_sensor_data_swap_places
+	branch enable_user
+
+mouse_sensor_data_swap_places:
+	fetch 2, mem_mouse_y
+	fetcht 2,mem_mouse_x
+	store 2,mem_mouse_x
+	storet 2,mem_mouse_y
+	rtn
+
+	
+mouse_clear_sensor_data:
+	fetch 1,mem_mouse_move_flag
+	call mouse_read_sensor_common,blank
+	jam 1,mem_mouse_move_flag
+	rtn
+
+mouse_clear_sensor_data_by_reset:
+	jam 1,mem_mouse_clear_sensor_data_flag
+	call le_set_config_more_data
+mouse_init_sensor_reset:
+	branch mouse_init_sunt
+
+mouse_data_xy_release:
+	fetch 1,mem_sensor_motion_gpio
+	rtnne GPIO_DISABLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtnne 1
+	setarg 0
+	store 1,mem_mouse_long_mult_flag
+	store 4,mem_mouse_x
+	branch mouse_init_sensor_reset
+
+mouse_data_extsign:
+	rtnbit0 7
+	arg 0xff00,temp
+	ior temp,pdata
+	rtn
+
+mouse_data_extsign_bit3:
+	rtnbit0 3
+	arg 0xf0,temp
+	ior temp,pdata
+	rtn
+
+mouse_read_sensor_common:
+	arg PAN_REG_DELTA_X,pdata
+	call twspi_read
+	store 2,mem_mouse_x
+	arg PAN_REG_DELTA_Y,pdata
+	call twspi_read
+	store 2,mem_mouse_y
+	rtn
+
+	/* sdio high will cost extra 9mA */
+mouse_sensor_sdio_low:
+	fetcht 1,mem_mouse_sensor_sdio_gpio
+	call gpio_get_bit
+	rtn true
+	setarg 0x0a
+	call twspi_read
+	nop 1000
+	branch mouse_sensor_sdio_low
+
+mouse_set_sdio_high:		// make sdio high to make 100uA less
+	setarg 0x8100
+	branch twspi_write
+	
+/****************************sensor*************************/
+
+/*******************mouse fast connect******************/
+mouse_bluetooth_fast_conn_init:
+	jam 0xff,mem_mouse_bluetooth_fast_conn_flag
+mouse_ble_fast_conn_init:	
+	jam 0x34,mem_xrecord_mode
+	setarg 0x0f0f0f
+	store 3,mem_le_lap
+	store 3,mem_le_lap+3
+	branch mouse_start_reconnect
+
+mouse_buletooth_fast_conn_end:
+	bpatch patch10_4,mem_patch10
+	call mouse_select_reconn_device
+	call mouse_bluetooth_fast_conn_disable
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_device1_check_auto_discover
+	beq MODE_BT_DEVICE2,mouse_device2_check_auto_discover
+	rtn
+mouse_device1_check_auto_discover:
+	fetch 6,mem_device1_addr
+	branch mouse_device_check_auto_discover
+mouse_device2_check_auto_discover:
+	fetch 6,mem_device2_addr
+mouse_device_check_auto_discover:	
+	fetcht 6,mem_mouse_compare_addr
+	isub temp,null
+	branch mouse_start_discovery ,zero
+	branch mouse_start_reconnect_device
+
+mouse_bluetooth_fast_conn_disable:
+	jam 0x5a,mem_mouse_bluetooth_fast_conn_flag
+	rtn	
+/*******************mouse fast connect******************/
+
+mouse_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	branch mouse_stop_discovery
+mouse_disconnect:
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	rtn
+	
+mouse_check_125Hz:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_125Hz
+mouse_bluetooth_125Hz:
+	nbranch mouse_bluetooth_125hz_clear,user
+	fetch 1,mem_bluetooth_125hz_cnt
+	increase 1,pdata
+	and_into 0x0f,pdata
+	store 1,mem_bluetooth_125hz_cnt
+	nrtn blank
+mouse_bluetooth_125hz_clear:
+	jam 0,mem_bluetooth_125hz_cnt
+	branch disable_user
+
+mouse_current_mult_update:
+	fetch 1,mem_sensor_motion_gpio
+	rtnne GPIO_DISABLE
+	jam 0,mem_lpm_mult
+	jam 30,mem_mouse_current_mult_timer
+	rtn
+
+
+mouse_priority_bb_event:	
+	bpatch patch10_5,mem_patch10
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,mouse_le_bb_event_connected
+	beq BT_EVT_LE_DISCONNECTED,mouse_le_bb_disconnected
+	beq BT_EVT_BUTTON_LONG_PRESSED,mouse_bb_event_discovery_btn
+	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
+	beq BT_EVT_LE_ENC_INFO,mouse_le_enc_info
+	beq BT_EVT_LE_START_ENC,mouse_le_ll_start_encryt
+	beq BT_EVT_LE_PAIRING_COMPLETE,app_ble_store_reconn_info
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,mouse_le_conn_param_update_rsp_recieved
+	beq BT_EVT_24G_PAIRING_COMPLETE,mouse_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_FAIL,mouse_24g_attempt_fail
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,mouse_24g_attempt_success
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mouse_le_parse_conn_param_accepted
+	rtn
+
+/***************************le*************************/
+mouse_le_bb_event_connected:
+	call mouse_device_poweron_led_config
+	jam 0,mem_mouse_long_mult_flag
+	call mouse_init_sensor_reset
+	jam 1,mem_mouse_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_mouse_le_reconnect_flag
+	nbranch mouse_le_bb_event_connected_next,blank
+	jam 0x14,mem_mouse_send_secutiry_request_timer
+mouse_le_bb_event_connected_next:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set0 APP_DISC_BY_BUTTON ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	jam 0,mem_mouse_direct_timer
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	call mouse_no_data_timer_init
+	branch mouse_stop_discovery
+
+mouse_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	jam 0,mem_mouse_le_bb_connected_flag
+	arg LE_INTERVAL_7_5MS,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_125Hz,mouse_le_bb_disconnected_next
+	arg LE_INTERVAL_8_75MS,temp
+mouse_le_bb_disconnected_next:	
+	storet 2,mem_le_interval_min
+	storet 2,mem_le_interval_min+2
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	jam 0,mem_mouse_clear_sensor_data_flag
+	call le_clr_config_more_data
+	branch mouse_bb_disconnected
+
+mouse_le_pairing_success:
+	arg LL_PAIRING_SUCCESS_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_enc_info:
+mouse_updata_le_param:
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+mouse_le_ll_start_encryt:
+	fetch 1,mem_mouse_le_reconnect_flag
+	beq 1,mouse_le_ll_reconn_start_encryt
+	branch mouse_le_ll_enable_start_enc_flag
+mouse_le_ll_reconn_start_encryt:
+	call mouse_updata_le_param
+	jam 20,mem_le_start_encrypt_timer
+mouse_le_ll_enable_start_enc_flag:
+	arg LL_START_ENC_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_enable_connect_flag:
+	fetch 1,mem_le_connect_status_flag
+	qset1 pdata
+	store 1,mem_le_connect_status_flag
+	rtn
+
+mouse_le_conn_param_update_rsp_recieved:
+	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+	fetch 1,mem_le_tsniff
+	rshift2 pdata,pdata
+	sub pdata,LE_INTERVAL_15MS,null
+	rtn positive
+	setarg LE_INTERVAL_11_25MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	call mouse_updata_le_param
+mouse_le_conn_param_lpm_disable:
+	jam LE_LPM_DISABLE,mem_mouse_le_conn_param_reject
+	rtn
+
+mouse_le_bb_event_connect_complete:
+	fetch 1,mem_mouse_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_att_handle
+	sub pdata,34,pdata
+	nrtn zero
+	jam 0,mem_le_start_encrypt_timer
+mouse_le_write_enable:	
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_parse_conn_param_accepted:
+	fetch 1,mem_le_new_conninterval
+	sub pdata,LE_INTERVAL_15MS,null
+	nbranch mouse_le_conn_param_lpm_disable,positive
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	fetch 1,mem_le_new_connslavelatency
+	branch mouse_le_lpm_mult_reinit,blank
+	fetcht 1,mem_lpm_mult_init
+	isub temp,null
+	branch mouse_le_lpm_mult_reinit,positive
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult
+	branch mouse_le_conn_param_lpm_enable
+mouse_le_lpm_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+mouse_le_conn_param_lpm_enable:
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	rtn
+	
+/*
+mouse_le_disable_connect_flag:
+	fetch 1,mem_le_connect_status_flag
+	qset0 pdata
+	store 1,mem_le_connect_status_flag
+	rtn
+*/
+mouse_le_clean_connect_flag:
+	jam 0,mem_le_connect_status_flag
+	rtn
+
+/*
+mouse_le_reconn_write_enable_timer_reinit:
+	fetch 1,mem_mouse_le_reconnect_flag
+	rtn blank
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtneq 0x03
+	jam 2,mem_le_start_encrypt_timer
+	rtn
+*/
+mouse_le:
+	bpatch patch10_6,mem_patch10
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse_le_next
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+mouse_le_next:	
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	call mouse_clear_sensor_data_by_reset,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_24G_PAIRING_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,mouse_le_send_empty_packet
+	call mouse_motion
+	call mouse_check_125Hz
+	nrtn user
+	call mouse_current_mult_update
+	call mouse_data_xy_release
+	call mouse_wheel_trigger
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_le_send_mouse_data
+	fetch 1,mem_customer_key
+	beq 1,mouse_le_send_keyboard_package_data		
+mouse_le_send_mouse_data:
+	branch mouse_fill_mouse_data_le
+
+
+mouse_le_send_keyboard_package_data:
+	fetch 1,mem_customer_data_trigger
+	branch mouse_le_release_keyboard_data,blank
+	fetch 8,mem_customer_key_press+1
+mouse_fill_keyboard_package_data_le:
+	store 8,mem_pdatatemp
+	fetch 1,mem_customer_key_press
+	beq KB_MULTIKEY_REPORT_ID,mouse_fill_multimedia_key_data_le
+	beq KB_SYSTEM_CONCTRL_REPORT_ID,mouse_fill_systemctrl_key_data_le
+	jam 8,mem_le_data_len
+	fetcht 2,mem_le_keyboard_handle
+mouse_fill_data_le:
+	fetch 1,mem_le_data_len
+	copy pdata,rega
+	call le_att_malloc_tx_notify
+	fetcht 1,mem_le_data_len
+	copy temp,loopcnt
+	arg mem_pdatatemp,contr
+	branch memcpy
+	
+mouse_le_release_keyboard_data:
+	fetch 8,mem_customer_key_release+1
+	branch mouse_fill_keyboard_package_data_le
+
+mouse_fill_multimedia_key_data_le:
+	jam 3,mem_le_data_len
+	fetcht 2,mem_le_multimedia_handle
+	branch mouse_fill_data_le
+
+mouse_fill_systemctrl_key_data_le:
+	jam 2,mem_le_data_len
+	fetcht 2,mem_le_systemctrl_handle
+	branch mouse_fill_data_le
+
+mouse_fill_battery_level_le:
+	arg 1,rega
+	fetcht 2,mem_le_battery_level_handle
+	call le_att_malloc_tx_notify
+	fetch 1,mem_le_battery_level_percentage
+	istore 1,contw
+	rtn
+
+mouse_le_send_empty_packet:
+	setarg 0
+	store 7,mem_mouse_key
+mouse_fill_mouse_data_le:
+	jam 7,mem_le_data_len
+	fetch 7,mem_mouse_key
+	store 7,mem_pdatatemp
+	fetcht 2,mem_le_notify_handle
+	branch mouse_fill_data_le
+
+mouse_check_51cmd_adv:
+	jam 0,mem_mouse_le_reconnect_flag
+	fetch 3,mem_le_adv_ind
+	store 3,mem_le_adv_data+4
+	call mouse_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED |ADV_FLAG_LIMITED_DISCOVERABLE
+	istore 1,contr
+	arg mem_le_adv_swift_pair,contr
+	call mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+mouse_le_check_adv_flag:
+	arg mem_le_adv_data,rega
+mouse_le_check_adv_flag_loop:
+	ifetch 1,rega	//length
+	rtn blank
+	iadd contr,rega
+	ifetch 1,contr	//type
+	rtneq 0x01
+	branch mouse_le_check_adv_flag_loop
+	
+mouse_le_adv_data_update:
+	arg mem_le_adv_data+11,contw
+	arg 19,loopcnt
+	call memcpy
+	branch le_modified_name_adv
+	
+/***************************le*************************/
+
+
+
+mouse_bb_disconnected:
+	call mouse_bb_discon_clear_stack
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch mouse_start_discovery
+	
+mouse_bb_discon_clear_stack:
+	setarg 0
+	store 8,mem_wheel_tb_old_pinlevel
+	istore 4,contw             //clean wheel statue
+	jam 0,mem_mouse_move_flag
+	jam 0,mem_ltk_exists
+	rtn
+
+mouse4_0_event_bb_disconn:
+	call mouse_le_clean_connect_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch mouse_app_enter_hibernate
+
+
+/********************mouse 100ms timer*****************/
+mouse_bb_event_timer:
+	bpatch patch10_7,mem_patch10
+	//adc
+	call mouse_low_voltage_led_timer
+	call mouse_adc_read
+	//led
+	call mouse_logo_led_on_timer
+	call mouse_led_multi_timer
+	call mouse_dpi_led_blink_delay_timer
+	//24g
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	//poll
+	call mouse_dpi_key_check_long_press
+	call mouse_bt_discovery_check
+	call mouse_commbination_key_process
+	call mouse_check_discovery_timeout_timer
+	//ble
+	call mouse_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call mouse_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	//bt
+	call mouse_check_reconnect_delay_long_sleep		//delete 3.0,reconnect fail
+	call mouse_current_mult_update_timer
+	call mouse_wheel_trigger_timer
+	call mouse_store_information_delay_timer
+	branch mouse_check_no_data_timeout_timer
+
+mouse_bt_discovery_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY,mouse_bt_discovery_by_pb_button
+	rtn
+
+mouse_bt_discovery_by_pb_button:
+	fetch 1,mem_select_device_button_statue
+	rtnne PB_BUTTON_STATE_DOWN
+	arg mem_bt_discovery_count,regc
+	arg mouse_long_button_bt_discovery,regb
+	branch timer_single_step
+		
+mouse_long_button_bt_discovery:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_enable_function_flag
+	call app_evt_button_long_pressed
+	branch mouse_bb_event_discovery_btn
+		
+mouse_commbination_key_process:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_commbination_key_process
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+	fetcht 1,mem_mouse_commbination_key_bt
+	branch mouse_commbination_key_start
+
+mouse_24g_commbination_key_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetcht 1,mem_mouse_commbination_key_24g
+mouse_commbination_key_start:
+	storet 1,mem_mouse_commbination_key
+	call mouse_check_key_gpio
+	and pdata,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key
+	isub temp,null
+	branch mouse_commbination_key_down,zero
+mouse_commbination_key_up:
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init 
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_UP
+	jam COMMBINATION_KEY_STATE_UP,mem_commbination_key_statue	
+	rtn
+		
+mouse_commbination_key_down:
+	call mouse_combination_ui_timer
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_DOWN
+	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
+	rtn
+
+mouse_combination_ui_timer:
+	arg mouse_24g_start_pair_mode,regb
+	arg mem_combination_ui_button_count,regc
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,timer_single_step
+	arg mouse_long_button_bt_discovery,regb
+	call timer_single_step
+	fetch 1,mem_combination_ui_button_count
+	beq 1,mouse_bt_discovery_button_down_enable	// ble release key press
+	rtn
+
+mouse_check_discovery_timeout_timer:	
+	arg mem_mouse_discovery_timer,regc
+	arg mouse_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_discovery_timeout:
+	call mouse_stop_discovery
+	branch mouse_app_enter_hibernate
+
+mouse_check_direct_timeout_timer:	
+	arg mem_mouse_direct_timer,regc
+	arg mouse_check_direct_timeout,regb
+	call timer_single_step
+	fetch 1,mem_mouse_direct_timer
+	beq 1,app_ble_stop_direct_adv
+	rtn
+
+mouse_check_direct_timeout:
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse_buletooth_fast_conn_end
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,mouse_start_discovery
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_first_bb_event_reconn_timeout
+	branch mouse_app_enter_hibernate
+	
+mouse_le_enable_att_list_timer:
+	arg mem_le_start_encrypt_timer,regc
+	arg mouse_le_write_enable,regb
+	branch timer_single_step
+
+mouse_le_send_smp_security_request_timer:
+	fetch 1,mem_mouse_le_bb_connected_flag
+	rtn blank
+	arg mem_mouse_send_secutiry_request_timer,regc
+	arg mouse_le_pairing_sm_start_check,regb
+	branch timer_single_step
+mouse_le_pairing_sm_start_check:
+	fetch 1,mem_mouse_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_pairing_state
+	rtnne FLAG_LE_PAIRING_NULL
+	branch le_pairing_sm_start
+
+mouse_le_battery_updata_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	arg mem_le_battery_level_updata_timer,regc
+	arg mouse_le_battery_level_updata,regb
+	branch timer_single_step
+
+mouse_le_battery_level_updata:
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	branch mouse_fill_battery_level_le
+	
+mouse_le_enable_att_list:	
+	fetch 1,mem_le_connect_status_flag
+	rtnbit1 LL_PAIRING_SUCCESS_FLAG
+	call mouse_updata_le_param
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_check_reconnect_delay_long_sleep:
+	arg mem_mouse_bluetooth_reconnect_timeout,regc
+	arg mouse_app_enter_hibernate,regb
+	branch timer_single_step
+
+mouse_current_mult_update_timer:
+	arg mem_mouse_current_mult_timer,regc
+	arg mouse_current_mult_reinit,regb
+	branch timer_single_step
+mouse_current_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+	jam 1,mem_mouse_long_mult_flag
+	rtn
+
+
+mouse_check_no_data_timeout_timer:	
+	arg mem_mouse_no_data_timer,regc
+	arg mouse_check_no_data_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_hibernate_set
+	branch mouse_disconnect
+	
+mouse_no_data_timer_init:
+	fetch 2,mem_mouse_no_data_timeout
+	store 2,mem_mouse_no_data_timer
+	rtn
+
+mouse_store_information_delay_timer:
+	arg mem_store_information_delay_timer,regc
+	arg mouse_store_device_info_check,regb
+	branch timer_single_step
+
+mouse_store_device_info_check:
+	call mouse_store_device_info
+	fetch 1,mem_mouse_need_soft_reset
+	nbranch mouse_soft_reset,blank
+	rtn
+
+mouse_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call mouse_24g_stop,true
+	call mouse_disconnect
+	call mouse_le_clean_connect_flag
+	branch mouse_start_discovery
+	
+mouse_start_discovery:
+	bpatch patch11_0,mem_patch11
+	call mouse_device_discovery_led_config
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	call mouse_bluetooth_fast_conn_disable
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,mouse_start_discovery_norandom
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,mouse_start_discovery_norandom
+	fetcht 2,mem_random_addr_increase_count
+	increase 1,temp
+	storet 2,mem_random_addr_increase_count
+	storet 2,mem_le_lap+1
+	random pdata					//random ble addr
+	store 1,mem_le_lap
+mouse_start_discovery_norandom:
+	fetch 3,mem_mouse_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_mouse_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_mouse_direct_timer
+	store 1,mem_mouse_bluetooth_reconnect_timeout
+	store 1,mem_mouse_clear_sensor_data_flag
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	branch mouse_check_51cmd_adv
+
+mouse_stop_discovery:
+	bpatch patch11_1,mem_patch11
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+	jam 0,mem_mouse_bluetooth_reconnect_timeout
+	branch mouse_stop_le_adv
+mouse_stop_le_adv:
+	setarg 0
+	store 1,mem_mouse_direct_timer
+	store 2,mem_mouse_discovery_timer
+	branch check_51cmd_stop_adv
+
+mouse_store_remote_bdaddr:
+	bpatch patch11_2,mem_patch11
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call mouse_check_device_addr
+mouse_unplug_clean_bdaddr:
+	call mouse_before_store_reconn_info
+	branch mouse_store_device_info_delay
+
+mouse_check_device_addr:
+	fetch 1,mem_record_bt_mode
+	beq REC_4_MODE,mouse_check_le_device_addr
+	rtn
+mouse_check_le_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_le_plap
+mouse_check_bt_device_addr_common:
+	store 6,mem_device_addr_temp+1
+	fetch 7,mem_device_addr_temp
+	arg mem_device1_type,contr
+	arg 3,loopcnt
+mouse_check_device_addr_end:
+	ifetcht 7,contr
+	isub temp,null
+	branch mouse_clean_addr,zero
+	increase 22,contr
+	loop mouse_check_device_addr_end
+	rtn
+mouse_before_store_reconn_info:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	fetch 1,mem_record_bt_mode
+	istore 1,rega
+	beq REC_4_MODE,mouse_store_le_device
+	rtn
+	
+mouse_store_le_device:
+	fetch 6,mem_le_plap
+	istore 6,contw
+	arg mem_le_ltk,contr
+	call memcpy16
+	fetch 6,mem_le_lap
+	istore 6,contw
+	rtn
+
+mouse_clean_addr:
+	increase -6,contr
+	copy contr,contw
+	fetcht 6,mem_device_addr_temp+1
+	increase 3,temp
+	istoret 6,contw
+	rtn
+	
+mouse_select_reconn_device:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+	beq REC_4_MODE,mouse_load_le_device
+	rtn
+
+mouse_load_le_device:
+	ifetch 6,contr
+mouse_load_le_device_end:
+	store 6,mem_hci_plap
+	arg mem_le_ltk,contw
+	call memcpy16
+	ifetch 6,contr
+	store 6,mem_le_lap
+	rtn
+
+mouse_app_initflag_check:
+	bpatch patch11_3,mem_patch11
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch mouse_load_device_info,zero
+mouse_app_initflag_check_next:
+	storet 2,mem_store_flag
+	call mouse_ble_init_address
+	fetch 1,mem_device_flag_temp
+	store 1,mem_device_flag
+	fetch 4,mem_24g_fast_conn_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+mouse_load_default_dpi:
+	fetch 1,mem_config_sensor_dpi
+	store 1,mem_mouse_dpi
+	rtn
+
+mouse_load_device_info:
+	call mouse_otp_load_dpi
+//	call mouse_select_reconn_device
+	fetch 4,mem_mouse_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	rtn	
+
+mouse_otp_load_dpi:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI
+	fetch 2,mem_otp_offset_dpi
+	copy pdata,regb
+	call mouse_read_otp_dpi_common			
+	fetch 1,mem_mouse_dpi_temp
+	call mouse_load_default_dpi,blank
+	rtn
+	
+mouse_ble_init_address:
+	fetch 6,mem_le_lap
+	store 6,mem_device1_locall_addr
+	add pdata,0x0100,pdata
+	store 6,mem_device2_locall_addr
+	add pdata,0x0100,pdata
+	store 6,mem_device3_locall_addr
+	rtn
+
+/******************************store info start**************************************/
+	
+mouse_store_device_info_delay:	
+	fetch 1,mem_store_information_delay_timer_init
+	store 1,mem_store_information_delay_timer
+	rtn
+
+mouse_store_device_info:
+	bpatch patch11_4,mem_patch11
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eeprom_device_info
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_device_info
+	rtn
+
+mouse_store_dpi_info_check:
+	bpatch patch11_5,mem_patch11
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eerpom_dpi
+	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_dpi
+	rtn
+
+
+/******************eeprom data store****************/
+mouse_store_eeprom_device_info:
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+mouse_store_eerpom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+	
+
+/******************flash data store****************/
+mouse_store_flash_device_info:
+	call spid_init_flash
+	call mouse_spid_flash_release_form_powerdown
+	call mouse_flash_erase_sector
+
+	call mouse_information_flash_parameters
+	call mouse_spid_write_flash
+	call mouse_spid_flash_powerdown
+	branch mouse_sensor_spi_init
+
+
+
+/******************otp data store****************/
+mouse_store_otp_device_info:
+	call mouse_write_otp_device_flag
+	call mouse_write_otp_device_info
+	branch mouse_write_otp_le_addr_increase_count_info
+
+
+/**********otp device flag store********/
+mouse_write_otp_device_flag:
+	fetchr regb,2,mem_otp_offset_device_flag
+	copy regb,regc
+mouse_write_otp_device_flag_loop:
+	call mouse_read_otp_device_flag_common
+	fetch 1,mem_device_flag_temp
+	branch mouse_device_flag_store,blank
+	store 1,mem_device_flag_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_device_flag_end
+	isub regc,null
+	nrtn positive
+	copy regc,regb
+	branch mouse_write_otp_device_flag_loop
+
+mouse_device_flag_store:
+	fetch 1,mem_device_flag_last
+	and pdata,0xf0,pdata
+	branch mouse_device_flag_store_check,blank
+	fetch 1,mem_device_flag
+	store 1,mem_device_flag_value
+mouse_devoce_flag_store_end:	
+	arg 1,loopcnt
+	copy regc,regb
+	arg mem_device_flag_value,rega
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+mouse_device_flag_store_check:
+	fetch 1,mem_device_flag_last
+	fetcht 1,mem_device_flag
+	isub temp,null
+	rtn zero
+	lshift4 temp,temp
+	iadd temp,pdata
+	store 1,mem_device_flag_value
+	
+	copy regc,pdata
+	fetcht 2,mem_otp_offset_device_flag
+	isub temp,null
+	branch mouse_devoce_flag_store_end,zero
+	
+	increase -1,regc
+	branch mouse_devoce_flag_store_end
+
+
+/**********otp addr store********/
+mouse_write_otp_device_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_write_otp_24g_addr
+	beq MODE_BT_DEVICE1,mouse_write_otp_le_device1
+	beq MODE_BT_DEVICE2,mouse_write_otp_le_device2
+	rtn
+
+mouse_write_otp_24g_addr:
+	fetchr regb,2,mem_otp_offset_24g_addr
+	copy regb,regc
+mouse_otp_store_24g_addr_loop:
+	call mouse_read_otp_24g_addr_common
+	fetch 4,mem_mouse_24g_addr_temp
+	branch mouse_24g_addr_store,blank	
+	store 4,mem_mouse_24g_addr_last
+	increase 4,regc
+	fetch 2,mem_otp_offset_24g_addr_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_24g_addr_loop
+
+mouse_24g_addr_store:
+	fetch 4,mem_mouse_24g_addr_last
+	fetcht 4,mem_mouse_24g_addr
+	isub temp,null
+	rtn zero
+	arg 4,loopcnt
+	arg mem_mouse_24g_addr,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+mouse_write_otp_le_device1:
+	fetchr regb,2,mem_otp_offset_le_addr1
+	copy regb,regc
+mouse_otp_store_le_addr1_loop:
+	call mouse_read_otp_le_addr1_common
+	fetch 6,mem_mouse_le_addr1_temp
+	branch mouse_le_addr1_store,blank	
+	store 6,mem_mouse_le_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr1_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr1_loop
+
+mouse_le_addr1_store:
+	fetch 6,mem_mouse_le_addr1_last
+	fetcht 6,mem_device1_addr
+	isub temp,null
+	rtn zero
+	arg 6,loopcnt
+	arg mem_device1_addr,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+
+mouse_write_otp_le_device2:
+	fetchr regb,2,mem_otp_offset_le_addr2
+	copy regb,regc
+mouse_otp_store_le_addr2_loop:
+	call mouse_read_otp_le_addr2_common
+	fetch 6,mem_mouse_le_addr2_temp
+	branch mouse_le_addr2_store,blank	
+	store 6,mem_mouse_le_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr2_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr2_loop
+
+mouse_le_addr2_store:
+	fetch 6,mem_mouse_le_addr2_last
+	fetcht 6,mem_device2_addr
+	isub temp,null
+	rtn zero
+	arg 6,loopcnt
+	arg mem_device2_addr,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+
+/**************store le addr increase count**********/
+mouse_write_otp_le_addr_increase_count_info:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetchr regb,2,mem_otp_offset_le_addr_increase_count
+	copy regb,regc
+mouse_otp_store_le_addr_increase_count_loop:
+	call mouse_read_otp_le_addr_increase_count_common
+	fetch 2,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_store,blank	
+	store 2,mem_random_addr_increase_count_last
+	increase 2,regc
+	fetch 2,mem_otp_offset_le_addr_increase_count_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr_increase_count_loop
+
+mouse_le_addr_increase_count_store:
+	fetch 2,mem_random_addr_increase_count_last
+	fetcht 2,mem_random_addr_increase_count
+	isub temp,null
+	rtn zero
+	arg 2,loopcnt
+	arg mem_random_addr_increase_count,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+
+/**********otp dpi store********/
+mouse_store_otp_dpi:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI
+	fetchr regb,2,mem_otp_offset_dpi
+	copy regb,regc
+mouse_otp_store_dpi_loop:
+	call mouse_read_otp_dpi_common
+	fetch 1,mem_mouse_dpi_temp
+	branch mouse_otp_dpi_store,blank
+	store 1,mem_mouse_dpi_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_dpi_end
+	isub regc,null
+	nrtn positive
+	copy regc,regb
+	branch mouse_otp_store_dpi_loop
+
+mouse_otp_dpi_store:
+	fetch 1,mem_mouse_dpi_last
+	and pdata,0xf0,pdata
+	branch mouse_dpi_store_last,blank
+	fetch 1,mem_mouse_dpi
+	store 1,mem_mouse_otp_dpi_value
+mouse_dpi_store_end:	
+	arg 1,loopcnt
+	copy regc,regb
+	arg mem_mouse_otp_dpi_value,rega
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+mouse_dpi_store_last:
+	fetch 1,mem_mouse_dpi_last
+	fetcht 1,mem_mouse_dpi
+	isub temp,null
+	rtn zero
+	lshift4 temp,temp
+	iadd temp,pdata
+	store 1,mem_mouse_otp_dpi_value
+	
+	copy regc,pdata
+	fetcht 2,mem_otp_offset_dpi
+	isub temp,null
+	branch mouse_dpi_store_end,zero
+	
+	increase -1,regc
+	branch mouse_dpi_store_end
+	
+/******************************store info end**************************************/
+	
+
+
+/******************************load info start**************************************/
+
+/******************eeprom data load****************/
+mouse_load_eeprom_info_check:
+	call iicd_read_init_pin
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
+	ncall clear_eeprom_size_2k,true
+	call mouse_eeprom_load_recon_info
+	branch mouse_app_initflag_check
+
+mouse_eeprom_load_recon_info:
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_read_eep_data
+
+mouse_load_eeprom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_read_eep_data
+
+
+/******************flash data load****************/
+mouse_load_flash_info_check:
+	call spid_init_flash
+	call mouse_spid_flash_release_form_powerdown
+	call mouse_information_flash_parameters
+	call spid_read_flash
+	call mouse_spid_flash_powerdown
+	call mouse_app_initflag_check
+	branch mouse_sensor_spi_init
+	
+mouse_information_flash_parameters:
+	setarg mem_mouse_information_end
+	arg mem_mouse_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	arg mem_mouse_information_start,rega
+	rtn
+	
+mouse_spid_flash_release_form_powerdown:
+	jam FLASH_COMMAND_RELEASE_FROM_POWERDOWN,mem_temp
+mouse_spid_write_flash_cmd:
+	call delay_nop100
+	call spid_unlock_flash
+	arg mem_write_flash_head_temp,rega
+	fetcht 1,mem_temp
+	call mouse_spid_write_flash_cmd_common
+	branch delay_nop100
+
+mouse_spid_flash_powerdown:
+	jam FLASH_COMMAND_POWERDOWN,mem_temp
+	branch mouse_spid_write_flash_cmd
+
+mouse_spid_write_flash_cmd_common:
+	istoret 1,rega
+	rshift16 pdata,temp
+	istoret 1,contw
+	rshift8 pdata,temp
+	istoret 1,contw
+	istore 1,contw
+	deposit rega
+	store 2,core_spid_txaddr
+	setarg 0
+	store 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+		
+mouse_flash_erase_sector:
+	fetch 3,mem_flash_base
+	store 3,mem_spi_write_addr
+	branch spid_flash_erase_sector+2
+
+mouse_spid_write_flash:
+	copy pdata,regc
+	copy rega,pdata
+	increase -4,pdata
+	copy pdata,regb
+	ifetch 4,regb
+	store 4,mem_write_flash_head_temp
+	copy regc,pdata
+	call spid_write_flash
+	fetch 4,mem_write_flash_head_temp
+	istore 4,regb
+	rtn
+
+mouse_flash_power_down:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_FLASH
+	call mouse_spid_flash_powerdown
+	call twspi_enable	// 2 wire mode
+	fetcht 1,mem_spi_cs_gpio		//disable flash
+	call gpio_out_inactive
+	fetcht 1,mem_spi_hold_gpio
+	branch mouse_gpio_config_input_pd
+
+
+/******************otp data load****************/
+mouse_load_otp_info_check:
+	call mouse_read_otp_dpi
+	call mouse_read_otp_device_flag
+	call mouse_read_otp_device_info
+	call mouse_read_otp_le_addr_increase_count_info
+mouse_otp_load_app_initflag:
+	arg 2,loopcnt
+	fetch 2,mem_otp_offset_app_initflag
+	copy pdata,regb
+	arg mem_store_flag,rega
+	call otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+	call mouse_app_initflag_check
+mouse_otp_store_app_initflag:
+	arg 2,loopcnt
+	arg mem_store_flag,rega
+	fetchr regb,2,mem_otp_offset_app_initflag
+	branch otp_write
+
+
+/**************load device flag**********/
+mouse_read_otp_device_flag:
+	fetchr regb,2,mem_otp_offset_device_flag
+	copy regb,regc
+mouse_read_otp_device_flag_loop:
+	call mouse_read_otp_device_flag_common
+	fetch 1,mem_device_flag_temp
+	branch mouse_device_flag_load,blank	
+	store 1,mem_device_flag_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_device_flag_end
+	isub regc,null
+	nbranch mouse_device_flag_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_device_flag_loop
+
+mouse_read_otp_device_flag_common:
+	arg 1,loopcnt
+	arg mem_device_flag_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_device_flag_load:
+	fetch 1,mem_device_flag_last
+	copy pdata,temp
+	and pdata,0xf0,pdata
+	branch mouse_device_flag_load_last,blank
+	rshift4 pdata,pdata
+	branch mouse_device_flag_load_end
+
+mouse_device_flag_load_last:
+	copy temp,pdata
+mouse_device_flag_load_end:
+	store 1,mem_device_flag
+	rtn
+
+/****************otp load addr*************/
+mouse_read_otp_device_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_read_otp_24g_addr
+	beq MODE_BT_DEVICE1,mouse_read_otp_le_device1
+	beq MODE_BT_DEVICE2,mouse_read_otp_le_device2
+	rtn
+	
+mouse_read_otp_le_device1:
+	call mouse_read_otp_le_device1_addr
+	branch mouse_read_otp_le_device1_locall_addr
+
+mouse_read_otp_le_device2:
+	call mouse_read_otp_le_device2_addr
+	branch mouse_read_otp_le_device2_locall_addr
+
+/*************************load le addr1**********************************/
+mouse_read_otp_le_device1_addr:
+	fetchr regb,2,mem_otp_offset_le_addr1
+	copy regb,regc
+mouse_read_otp_le_device1_addr_loop:
+	call mouse_read_otp_le_addr1_common	
+	fetch 6,mem_mouse_le_addr1_temp
+	branch mouse_le_addr1_load,blank	
+	store 6,mem_mouse_le_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr1_end
+	isub regc,null
+	nbranch mouse_le_addr1_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device1_addr_loop
+
+mouse_read_otp_le_addr1_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_addr1_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
+
+mouse_le_addr1_load:
+	fetch 6,mem_mouse_le_addr1_last
+	store 6,mem_device1_addr
+	rtn
+
+
+mouse_read_otp_le_device1_locall_addr:
+	fetchr regb,2,mem_otp_offset_le_locall_addr1
+	copy regb,regc
+mouse_read_otp_le_device1_locall_addr_loop:
+	call mouse_read_otp_le_locall_addr1_common	
+	fetch 6,mem_mouse_le_locall_addr1_temp
+	branch mouse_le_locall_addr1_load,blank	
+	store 6,mem_mouse_le_locall_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_locall_addr1_end
+	isub regc,null
+	nbranch mouse_le_locall_addr1_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device1_locall_addr_loop
+
+mouse_read_otp_le_locall_addr1_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_locall_addr1_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
+
+mouse_le_locall_addr1_load:
+	fetch 6,mem_mouse_le_locall_addr1_last
+	store 6,mem_device1_locall_addr
+	rtn
+
+
+/*************************load le addr2**********************************/
+mouse_read_otp_le_device2_addr:
+	fetchr regb,2,mem_otp_offset_le_addr2
+	copy regb,regc
+mouse_read_otp_le_device2_addr_loop:
+	call mouse_read_otp_le_addr2_common	
+	fetch 6,mem_mouse_le_addr2_temp
+	branch mouse_le_addr2_load,blank	
+	store 6,mem_mouse_le_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr2_end
+	isub regc,null
+	nbranch mouse_le_addr2_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device2_addr_loop
+
+mouse_read_otp_le_addr2_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_addr2_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
+
+mouse_le_addr2_load:
+	fetch 6,mem_mouse_le_addr2_last
+	store 6,mem_device2_addr
+	rtn
+
+
+mouse_read_otp_le_device2_locall_addr:
+	fetchr regb,2,mem_otp_offset_le_locall_addr2
+	copy regb,regc
+mouse_read_otp_le_device2_locall_addr_loop:
+	call mouse_read_otp_le_locall_addr2_common	
+	fetch 6,mem_mouse_le_locall_addr2_temp
+	branch mouse_le_locall_addr2_load,blank	
+	store 6,mem_mouse_le_locall_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_locall_addr2_end
+	isub regc,null
+	nbranch mouse_le_locall_addr2_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device2_locall_addr_loop
+
+mouse_read_otp_le_locall_addr2_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_locall_addr2_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
+
+mouse_le_locall_addr2_load:
+	fetch 6,mem_mouse_le_locall_addr2_last
+	store 6,mem_device2_locall_addr
+	rtn
+
+
+/**************load 24g addr**********/
+mouse_read_otp_24g_addr:
+	fetchr regb,2,mem_otp_offset_24g_addr
+	copy regb,regc
+mouse_read_otp_24g_addr_loop:
+	call mouse_read_otp_24g_addr_common
+	fetch 4,mem_mouse_24g_addr_temp
+	branch mouse_24g_addr_load,blank	
+	store 4,mem_mouse_24g_addr_last
+	increase 4,regc
+	fetch 2,mem_otp_offset_24g_addr_end
+	isub regc,null
+	nbranch mouse_24g_addr_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_24g_addr_loop
+
+mouse_read_otp_24g_addr_common:
+	arg 4,loopcnt
+	arg mem_mouse_24g_addr_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+	
+mouse_24g_addr_load:
+	fetch 4,mem_mouse_24g_addr_last
+	store 4,mem_mouse_24g_addr
+	rtn
+
+/**************load le addr increase count**********/
+mouse_read_otp_le_addr_increase_count_info:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetchr regb,2,mem_otp_offset_le_addr_increase_count
+	copy regb,regc
+mouse_read_otp_le_addr_increase_count_loop:
+	call mouse_read_otp_le_addr_increase_count_common
+	fetch 2,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_load,blank	
+	store 2,mem_random_addr_increase_count_last
+	increase 2,regc
+	fetch 2,mem_otp_offset_le_addr_increase_count_end
+	isub regc,null
+	nbranch mouse_le_addr_increase_count_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_addr_increase_count_loop
+
+mouse_read_otp_le_addr_increase_count_common:
+	arg 2,loopcnt
+	arg mem_random_addr_increase_count_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+	
+mouse_le_addr_increase_count_load:
+	fetch 2,mem_random_addr_increase_count_temp
+	store 2,mem_random_addr_increase_count
+	rtn
+
+/*************load dpi**********/
+mouse_read_otp_dpi:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI,mouse_load_default_dpi
+	fetchr regb,2,mem_otp_offset_dpi
+	copy regb,regc
+mouse_read_otp_dpi_loop:
+	call mouse_read_otp_dpi_common	
+	fetch 1,mem_mouse_dpi_temp
+	branch mouse_dpi_load,blank	
+	store 1,mem_mouse_dpi_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_dpi_end
+	isub regc,null
+	nbranch mouse_dpi_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_dpi_loop
+
+mouse_read_otp_dpi_common:
+	arg 1,loopcnt
+	arg mem_mouse_dpi_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_dpi_load:
+	fetch 1,mem_mouse_dpi_last
+	copy pdata,temp
+	and pdata,0xf0,pdata
+	branch mouse_dpi_load_last,blank
+	rshift4 pdata,pdata
+	branch mouse_dpi_load_end
+
+mouse_dpi_load_last:
+	copy temp,pdata
+mouse_dpi_load_end:
+	store 1,mem_mouse_dpi
+	rtn
+
+/******************************load info end**************************************/
+
+
+mouse_idle:
+	bpatch patch11_6,mem_patch11
+	call mouse_low_voltage_led_no_enter_lpm
+	call ui_check_paring_button
+	call mouse_dpi_check
+	call mouse_dpi_another_gpio_check
+	call mouse_select_device_check
+	call mouse_check_select_device_by_switch
+	call mouse_bt_button_check
+	branch mouse_wheel_check
+	
+mouse_select_device_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON,mouse_select_device_by_pb_button
+	bbit1 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY,mouse_select_device_by_pb_button
+	rtn
+
+mouse_select_device_by_pb_button_check_once:
+	jam 0x03,mem_mouse_pbkey_press_status
+mouse_select_device_by_pb_button:	
+	call mouse_select_device_by_pb_button_check
+	branch mouse_select_device_by_pb_button_exit
+	
+mouse_select_device_by_pb_button_check:
+	bpatch patch11_7,mem_patch11
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_PB_KEY,mem_mouse_key_temp
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_pb_button_check
+	store 1,mem_mouse_pbkey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_pb_button_check_end	
+	branch mouse_matrix_public_gpio_reset
+
+mouse_retransmit_select_device_by_pb_button:
+	call mouse_select_device_by_pb_button_check
+	copy rega,pdata
+	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down+2
+	branch mouse_select_device_button_up
+	
+mouse_3io6key_pb_button_check_end:
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_gpio_config_input_pu
+mouse_select_device_by_pb_button_exit:	
+	copy rega,pdata
+	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down
+	branch mouse_select_device_button_up
+
+mouse_pb_button_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND,mouse_pb_button_connect_gnd
+	fetch 1,mem_mouse_pbkey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_check
+	fetch 1,mem_mouse_ghost_flag
+	nbranch mouse_select_device_by_pb_button_end,blank
+	branch mouse_pb_button_connect_matrix
+
+mouse_select_device_by_pb_button_end:
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue
+	jam 0,mem_mouse_pbkey_press_status
+	rtn
+
+mouse_pb_button_connect_gnd:
+	fetch 1,mem_mouse_pbkey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_pb_button_connect_matrix:
+	call gpio_get_bit
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_pb_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_config_select_device_button_gpio
+	fetch 1,mem_mouse_pbkey_press_status
+	branch mouse_check_key_connect_gnd
+	
+mouse_select_device_button_up:
+	fetch 1,mem_select_device_button_statue
+	rtneq PB_BUTTON_STATE_UP
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+	fetch 1,mem_bt_discovery_count
+	sub pdata,20,null
+	ncall mouse_ready_reconnection_by_button,positive		// press button less than 30-20=1000ms
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_bt_discovery_count
+	rtn
+
+mouse_select_device_button_down:
+	call mouse_select_device_ghost_check
+	rtn user
+	fetch 1,mem_select_device_button_statue
+	rtneq PB_BUTTON_STATE_DOWN
+	jam PB_BUTTON_STATE_DOWN,mem_select_device_button_statue
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY,mouse_long_button_bt_discovery
+	fetch 1,mem_mouse_direct_timer
+	rtn blank
+	fetch 1,mem_mouse_direct_timeout
+	store 1,mem_mouse_direct_timer
+	rtn
+
+mouse_select_device_ghost_check:
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+mouse_ghost_key_value_check:
+	fetch 1,mem_mouse_lkey_press_status
+	rtn blank
+	fetch 1,mem_mouse_rkey_press_status
+	rtn blank
+	branch enable_user
+	
+mouse_check_select_device_by_switch:
+	bpatch patch12_0,mem_patch12
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	fetcht 1,mem_device_switch_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_check_select_24g_device,true
+mouse_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_stop_bluetooth_mode
+	
+mouse_check_select_24g_device:	
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	branch mouse_24g_stop
+
+mouse_ready_reconnection_by_button:
+	bpatch patch12_1,mem_patch12
+	fetch 1,mem_device_number
+	rtneq 1		// 1channel
+	call mouse_select_device_number
+	storet 1,mem_device_flag
+mouse_store_device_number_before_reset:	
+//	jam 0,mem_link_key_exists
+	call mouse_select_device_enable
+	call mouse_stop_bluetooth_mode
+	call app_evt_button_long_pressed
+	call mouse_select_device_disable
+	jam 1,mem_mouse_need_soft_reset
+	branch mouse_store_device_info_delay
+
+mouse_soft_reset:
+	call mouse_select_device_enable
+	branch soft_reset_chip
+
+mouse_select_device_number:
+	fetcht 1,mem_device_flag
+	increase 1,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G,mouse_select_device_number_24g
+	sub temp,2,null
+	ncall mouse_select_device_count_clean_bt,positive
+	rtn
+	
+mouse_select_device_number_24g:	
+	fetch 1,mem_device_number
+	increase -1,pdata
+	isub temp,null
+	ncall mouse_select_device_count_clean_24g,positive
+	rtn
+
+mouse_select_device_count_clean_24g:
+	arg 0,temp
+	rtn
+mouse_select_device_count_clean_bt:
+	arg 1,temp
+	rtn
+
+mouse_store_device_number2eeprom:
+	arg 1,temp
+	arg mem_device_flag,rega
+	arg 0,regb
+	branch iicd_write_protect_eep_data
+		
+mouse_bt_button_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+	branch mouse_select_device_by_pb_button
+	
+mouse_select_device_enable:
+	arg MOUSE_SELECT_DEVICE_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_select_device_disable:
+	arg MOUSE_SELECT_DEVICE_FLAG,queue
+	branch mouse_disable_function_flag
+mouse_bt_cannel_reconn_enable:
+	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_bt_cannel_reconn_disable:
+	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
+	branch mouse_disable_function_flag
+mouse_bt_discovery_button_down_enable:
+	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_bt_discovery_button_down_disable:
+	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch mouse_disable_function_flag
+
+mouse_adc_read_enable:
+	arg MOUSE_ENABLE_ADC,queue
+	branch mouse_enable_function_flag
+
+mouse_24g_set_250Hz:
+	arg MOUSE_ENABLE_24G_250Hz,queue
+	branch mouse_enable_function_flag
+
+mouse_24g_search_dongle_enable:
+	arg MOUSE_ENABLE_24G_SEARCH_DONGLE,queue
+	branch mouse_enable_function_flag
+	
+mouse_16M_enable:
+	arg MOUSE_ENABLE_16M,queue
+	branch mouse_enable_function_flag
+	
+mouse_dpi_4level_enable:
+	arg MOUSE_ENABLE_DPI_LEVEL_4,queue
+	branch mouse_enable_function_flag
+
+mouse_enable_function_flag:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	qset1 pdata
+	store MOUSE_FLAG_LEN,mem_mouse_flag
+	rtn
+
+mouse_disable_function_flag:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	qset0 pdata
+	store MOUSE_FLAG_LEN,mem_mouse_flag
+	rtn
+
+mouse_customer_key_enable:
+	setarg 0
+	store 8,mem_customer_key_press
+	store 8,mem_customer_key_release
+	fetch 1,mem_mouse_customer_function	// 01--win+d     02--ctrl+alt+a    03--AC home    04--play
+	beq 2,mouse_customer_key_ctrl_alt_a
+	beq 3,mouse_customer_AC_home
+	beq 4,mouse_customer_key_play
+	setarg 0x070008
+mouse_customer_standrad_key_set:	
+	store 8,mem_customer_key_press+1		// win + d
+	rtn
+
+mouse_customer_key_ctrl_alt_a:
+	setarg 0x040005
+	branch mouse_customer_standrad_key_set
+
+mouse_customer_AC_home:
+	setarg 0x022303
+mouse_customer_media_key_set:	
+	store 8,mem_customer_key_press
+	setarg 0x03
+	store 8,mem_customer_key_release
+	rtn
+	
+mouse_customer_key_play:
+	setarg 0x00cd03
+	branch mouse_customer_media_key_set
+
+	
+mouse_polling_device:
+	bpatch patch12_2,mem_patch12
+	fetch 1,mem_reconn_times
+	increase -1,pdata
+	store 1,mem_reconn_times
+	fetcht 1,mem_device_flag
+	sub temp,1,null
+	ncall mouse_select_device_number,zero
+	storet 1,mem_device_flag
+	call mouse_store_device_number2eeprom
+	call mouse_before_store_reconn_info
+	branch mouse_start_reconnect_device
+
+	
+//notice: need to call p_mouse_drawing_optima_init when waked from mult
+mouse_drawing_optima:
+	bpatch patch12_3,mem_patch12
+	fetch 1,mem_config_sensor_type
+	rtneq P3212
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SMOOTHER
+	fetch 4,mem_mouse_x
+	rtn blank
+	call mouse_data_abs_check
+	setarg 0x03	//asm_flag enable condition
+	call mouse_pdata_greater_than_check
+	call mouse_disable_asm,blank
+	ncall mouse_enable_asm,blank
+	setarg 0x02	//asm_flag disable condition
+	call mouse_data_less_than_check
+	call mouse_disable_asm,blank
+	fetch 1,mem_mouse_asm_flag
+	beq 1,mouse_drawing_optima_modify
+mouse_drawing_optima_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SMOOTHER
+	arg 5,loopcnt
+	arg mem_mouse_asm_flag,contw
+	branch clear_mem
+
+mouse_drawing_optima_modify:
+	call mouse_drawing_optima_xy_offset_modify
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_pre
+	fetch 2,mem_mouse_x
+	store 2,mem_data_current
+	call mouse_drawing_optima_data_x
+	fetch 2,mem_data_pre
+	store 2,mem_mouse_x_pre
+	fetch 2,mem_data_current
+	store 2,mem_mouse_x
+
+	fetch 2,mem_mouse_y_pre
+	store 2,mem_data_pre
+	fetch 2,mem_mouse_y
+	store 2,mem_data_current
+	call mouse_drawing_optima_data_y
+	fetch 2,mem_data_pre
+	store 2,mem_mouse_y_pre
+	fetch 2,mem_data_current
+	store 2,mem_mouse_y
+	rtn
+
+mouse_drawing_optima_xy_offset_modify:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_XY_OFFSET
+	bpatch patch12_4,mem_patch12
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_value
+	call mouse_pre_xy_data_judge
+	store 2,mem_mouse_x_pre
+	fetch 2,mem_mouse_x
+	store 2,mem_data_value
+	call mouse_current_xy_data_judge
+	store 2,mem_mouse_x
+	fetch 2,mem_mouse_y_pre
+	store 2,mem_data_value
+	call mouse_pre_xy_data_judge
+	store 2,mem_mouse_y_pre
+	fetch 2,mem_mouse_y
+	store 2,mem_data_value
+	call mouse_current_xy_data_judge
+	store 2,mem_mouse_y
+	rtn
+
+mouse_pre_xy_data_judge:	
+	fetch 1,mem_data_value+1
+	branch mouse_pre_xy_pdata_offset,blank
+	branch mouse_pre_xy_ndata_offset
+
+mouse_pre_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call mouse_pre_xy_get_0_4_times
+	store 1,mem_data_value
+mouse_xy_data_offset_new:
+	fetch 2,mem_data_value
+	rtn
+mouse_pre_xy_ndata_offset:
+	fetch 1,mem_data_value
+	call mouse_pdata_invert
+	call mouse_pre_xy_get_0_4_times
+	call disable_blank,blank
+	call mouse_pdata_get_new_value
+	branch mouse_xy_data_offset_new
+	
+mouse_current_xy_data_judge:
+	fetch 1,mem_data_value+1
+	branch mouse_current_xy_pdata_offset,blank
+	branch mouse_current_xy_ndata_offset
+mouse_current_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call mouse_current_xy_get_0_6_times
+	store 1,mem_data_value
+	branch mouse_xy_data_offset_new
+mouse_current_xy_ndata_offset:	
+	fetch 1,mem_data_value
+	call mouse_pdata_invert
+	call mouse_current_xy_get_0_6_times
+	call disable_blank,blank
+	call mouse_pdata_get_new_value
+	branch mouse_xy_data_offset_new
+	
+mouse_pre_xy_get_0_4_times:
+	mul32 pdata,4,pdata
+	div pdata,5
+	call wait_div_end
+	quotient pdata
+	rtn
+mouse_current_xy_get_0_6_times:	//0.6 times
+	mul32 pdata,12,pdata
+	div pdata,10
+	call wait_div_end
+	quotient pdata
+	rtn	
+	
+mouse_drawing_optima_data_x:
+	fetch 2,mem_data_pre
+	fetcht 2,mem_data_current
+	iadd temp,pdata
+	fetcht 1,mem_mouse_data_xtemp
+	iadd temp,pdata
+	and pdata,0x01,temp
+	storet 1,mem_mouse_data_xtemp
+	branch mouse_drawing_optima_data
+
+mouse_drawing_optima_data_y:
+	fetch 2,mem_data_pre
+	fetcht 2,mem_data_current
+	iadd temp,pdata
+	fetcht 1,mem_mouse_data_ytemp
+	iadd temp,pdata
+	and pdata,0x01,temp
+	storet 1,mem_mouse_data_ytemp
+	branch mouse_drawing_optima_data
+
+/**********
+input:data_pre,data_current
+output:data_pre,data_current after optima
+***********/
+mouse_drawing_optima_data:
+	store 3,mem_data_sum
+	isolate1 16,pdata
+	branch mouse_data_sum_overflow,true
+	fetch 1,mem_data_sum+1
+	beq 0xff,mouse_data_sum_n
+	fetch 1,mem_data_sum
+mouse_data_store_pre:
+	rshift pdata,pdata
+	store 2,mem_data_pre
+	store 2,mem_data_current
+	rtn
+mouse_data_sum_overflow:
+	fetch 1,mem_data_sum+1	//sum positive
+	beq 0,mouse_data_sum_overflow_p
+	fetch 3,mem_data_sum	
+	branch mouse_data_store_pre
+mouse_data_sum_overflow_p:
+	jam 0,mem_data_sum+2
+	fetch 1,mem_data_sum
+	branch mouse_data_store_pre
+
+mouse_data_sum_n:
+	fetch 1,mem_data_sum	//sum negetive
+	call mouse_pdata_get_half
+	store 1,mem_data_pre
+	store 1,mem_data_current
+	branch mouse_data_zero,blank
+	setarg 0xff
+mouse_data_set_direction:	
+	store 1,mem_data_pre+1
+	store 1,mem_data_current+1
+	rtn
+mouse_data_zero:
+	setarg 0
+	branch mouse_data_set_direction
+
+mouse_pdata_get_half:
+	call mouse_pdata_invert
+	rshift pdata,pdata
+mouse_pdata_get_new_value:	
+	call mouse_rega_in_out
+	sub pdata,0,pdata
+	store 1,mem_data_value	
+	rtn
+
+mouse_pdata_invert:
+	sub pdata,0,pdata
+mouse_rega_in_out:	
+	store 1,mem_rega
+	fetch 1,mem_rega
+	rtn
+
+mouse_disable_asm:
+	jam 0,mem_mouse_asm_flag
+	rtn
+mouse_enable_asm:
+	jam 1,mem_mouse_asm_flag
+	rtn
+
+//rega mouse_x, regb mouse_y, pdata refer
+mouse_pdata_greater_than_check:
+	isub rega,null
+	nbranch disable_blank,positive
+	isub regb,null
+	nbranch disable_blank,positive
+	branch enable_blank
+mouse_data_less_than_check:
+	isub rega,null
+	nrtn positive
+	isub regb,null
+	nrtn positive
+	branch enable_blank
+
+mouse_data_abs_check:
+	fetch 2,mem_mouse_x
+	call mouse_data_abs
+	copy pdata,rega
+	fetch 2,mem_mouse_y
+	call mouse_data_abs
+	copy pdata,regb
+	rtn
+
+/***********
+input: data_current
+output:pdata,abs
+************/
+mouse_data_abs:
+	store 2,mem_data_current
+	fetch 1,mem_data_current+1
+	beq 0xff,mouse_data_reversal
+	fetch 1,mem_data_current
+mouse_data_abs_store:
+	and_into 0xff,pdata
+	//output:pdata
+	rtn
+mouse_data_reversal:
+	fetch 2,mem_data_current
+	sub pdata,0,pdata
+	branch mouse_data_abs_store
+
+mouse_24g_long_sleep_param_update_timer:
+	arg mem_24g_long_sleep_param_update_timer,regc
+	arg mouse_24g_long_sleep_normal_param,regb
+	branch timer_single_step
+mouse_24g_long_sleep_normal_param:
+	fetch 4,mem_24g_long_sleep_set1
+	store 4,mem_24g_enter_hibernate
+	jam 1,mem_mouse_long_mult_flag
+	rtn
+
+
+mouse_24g_long_sleep_set:
+	fetch 1,mem_24g_long_sleep_set_level
+	beq 0x00,mouse_24g_long_sleep_set_30ms
+	beq 0x01,mouse_24g_long_sleep_set_50ms
+	beq 0x02,mouse_24g_long_sleep_set_80ms
+	beq 0x03,mouse_24g_long_sleep_set_100ms
+mouse_24g_long_sleep_set_80ms:
+	setarg 0x0ea600
+mouse_24g_long_sleep_set_end:	
+	store 4,mem_24g_long_sleep_set1
+	rtn
+mouse_24g_long_sleep_set_30ms:
+	setarg 0x05e740
+	branch mouse_24g_long_sleep_set_end
+mouse_24g_long_sleep_set_50ms:
+	setarg 0x0927c0
+	branch mouse_24g_long_sleep_set_end
+mouse_24g_long_sleep_set_100ms:
+	setarg 0x124f80
+	branch mouse_24g_long_sleep_set_end
+
+mouse_24g_hibernate_set:
+	bpatch patch12_5,mem_patch12
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 4,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	jam 1,mem_sensor_shutdown_flag
+	call mouse_sensor_powerdown
+	call mouse_setgpio_hibernate
+	branch mouse_24g_long_sleep
+
+mouse_wakeup_24g:
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_wakeup_24g_from_long_sleep,blank
+	jam 0,mem_sensor_shutdown_flag
+	rtn
+
+mouse_wakeup_24g_from_long_sleep:
+	call mouse_init_sensor_wakeup
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+mouse_wheel_gpio_init:
+	fetch 1,mem_whee_a_data_gpio
+	arg gpcfg_pullup,temp
+ 	call gpio_config_function_int
+	fetch 1,mem_whee_b_data_gpio
+	arg gpcfg_pullup,temp
+ 	branch gpio_config_function_int	
+
+mouse_24g_transmit_start:
+	call mouse_24g_fast_conn_mode_check
+	fetch 1,mem_sensor_shutdown_flag
+	nbranch mouse_24g_short_sleep,blank
+	branch g24_transmit_start_next
+
+mouse_24g_fast_conn_mode_check:
+	fetch 4,mem_24g_receiver_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch mouse_soft_agc_enable,zero
+	branch mouse_soft_agc_disable
+
+mouse_soft_agc_enable:
+	jam 0,mem_gain_fix
+	jam TX_POWER_FACTORY,mem_tx_power
+	rtn
+mouse_soft_agc_disable:
+	jam 0xff,mem_gain_fix
+	rtn
+
+mouse_24g_stop:
+	set0 mark_24g,mark
+	jam STATE_24G_STOP,mem_24g_conn_sm
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	branch mouse_disable_function_flag
+
+mouse_24g_start_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G,mouse_24g_mode_setup_error
+	call mouse_device_24g_pair_led_config
+	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
+	branch mouse_24g_reconn_dongle_start,user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_reconn_general_dongle
+	bbit0 MOUSE_ENABLE_24G_POWER_ON_PAIRING,mouse_24g_reconn_general_dongle
+	call mouse_key_check_once
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_24g
+	isub temp,null
+	branch mouse_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_general_dongle
+
+mouse_24g_mode_setup_error:
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	rtn
+
+mouse_24g_first_start_auto_pair_mode:
+	call mouse_wakeup_from_power_check
+	branch mouse_24g_first_start_reconn,user  	// wake from hibernate :enble user
+mouse_24g_reconn_general_dongle:	
+	jam MODE_24G_DEVICE,mem_device_flag
+	fetch 2,mem_mouse_24g_power_on_fast_conn_timer
+	store 2,mem_24g_reconn_timeout
+	jam FAST_CONN_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_start_auto_pair:
+	fetch 2,mem_24g_pair_timeout_init
+	store 2,mem_24g_reconn_timeout
+	jam PAIR_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_first_start_reconn:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_reconn_dongle_start
+	call mouse_bluetooth_fast_conn_disable
+mouse_24g_first_bluetooth_reconnect:
+	call mouse_24g_stop
+	jam MODE_BT_DEVICE1,mem_device_flag
+	call mouse_select_reconn_device
+	branch mouse_start_reconnect_device
+
+mouse_24g_first_bb_event_reconn_timeout:
+	call mouse_wakeup_from_power_check
+	branch mouse_app_enter_hibernate,user
+	branch mouse_start_discovery
+
+mouse_24g_first_store_reconn_info:
+	call mouse_wakeup_from_power_check
+	rtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_store_device_info_delay
+	rtn
+
+mouse_24g_start_pair_mode:
+	call mouse_device_24g_pair_led_config
+	jam 0,mem_24g_reconn_type
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 2,mem_24g_reconn_timeout	
+	call mouse_stop_discovery
+	jam TYPE_MS,mem_24g_data_type
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,g24_pair_start
+	jam TYPE_KB,mem_24g_data_type
+	branch g24_pair_start
+
+mouse_24g_attempt_fail:
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch mouse_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,mouse_24g_fast_conn_attempt_fail
+	beq PAIR_AND_3_0_ADDR,mouse_24g_auto_pair_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,mouse_reconn_dongle_attempt_fail
+mouse_24g_attempt_fail_enter_hibernate:
+	call mouse_24g_stop
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_app_enter_hibernate
+	rtn
+
+mouse_24g_fast_conn_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_start_auto_pair
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_mouse_24g_addr		// auto pair first time
+	fetcht 4,mem_mouse_compare_addr
+	isub temp,null
+	branch mouse_24g_start_pair_mode,zero
+mouse_24g_reconn_dongle_start:
+	fetch 2,mem_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout
+	jam RECEIVER_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_auto_pair_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
+	fetch 1,mem_device_number
+	beq 1,mouse_24g_attempt_fail_enter_hibernate		//24g first mode and only 2.4g device
+	branch mouse_24g_first_bluetooth_reconnect
+
+mouse_reconn_dongle_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_FLASH,mouse_24g_attempt_fail_enter_hibernate
+	branch mouse_24g_start_auto_pair+1
+	
+mouse_24g_attempt_success:
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_mouse_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	call mouse_no_data_timer_init
+	call mouse_device_poweron_led_config
+	call mouse_init_sensor_reset
+	jam 0,mem_mouse_long_mult_flag
+	jam 0,mem_24g_conn_sm
+	jam 0,mem_24g_reconn_type
+	fetch 4,mem_24g_receiver_addr
+	fetch 4,mem_24g_fast_conn_addr
+	isub temp,null
+	rtn zero
+	branch mouse_24g_first_store_reconn_info
+	
+mouse_24g_pairing_complete:
+	call mouse_init_sensor_reset
+	call mouse_read_sensor_common
+mouse_24g_pairing_complete_common:
+	call mouse_device_poweron_led_config
+	call mouse_no_data_timer_init
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_disable_function_flag
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_conn_sm
+	store 1,mem_mouse_move_flag
+	store 1,mem_24g_reconn_type
+
+
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_mouse_24g_addr
+	branch mouse_store_device_info_delay
+
+mouse_24g_short_sleep_clear_wake:
+	call clear_wake
+	branch lpm_write_gpio_wakeup
+
+mouse_24g_package_data:
+	bpatch patch12_6,mem_patch12
+	rtnmark0 mark_24g
+	call mouse_motion
+	nrtn user
+	fetch 1,mem_mouse_24g_long_sleep_flag
+	jam 0,mem_mouse_24g_long_sleep_flag
+	ncall mouse_24g_short_sleep_clear_wake,blank	
+	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_24g_mouse_package_data
+	fetch 1,mem_customer_key
+	nbranch mouse_24g_keyboard_package_data,blank
+mouse_24g_mouse_package_data:
+	call mouse_data_xy_release
+	fetch 1,mem_24g_data_type
+	bbit1 1,mouse_24g_mouse_package_data_now	// last package is keyboard data
+	fetcht 1,mem_24g_txbuf+1
+	fetch 1,mem_mouse_key
+	ior temp,pdata
+	store 1,mem_mouse_key
+	fetcht 1,mem_24g_txbuf+6
+	fetch 1,mem_mouse_z
+	iadd temp,pdata
+	store 1,mem_mouse_z
+	fetcht 1,mem_24g_txbuf+7
+	fetch 1,mem_mouse_tz
+	iadd temp,pdata
+	store 1,mem_mouse_tz	
+mouse_24g_mouse_package_data_now:	
+	jam TYPE_MS,mem_24g_data_type
+	arg 7,rega	//length
+	arg mem_mouse_key,regb //tx buff
+	fetch 2,mem_mouse_z
+	rtn blank
+	branch g24_transmit_by_interrupt_enable
+
+mouse_24g_keyboard_package_data:
+	jam TYPE_KB,mem_24g_data_type
+	arg 9,rega	//length
+	fetch 1,mem_customer_data_trigger
+	nbranch mouse_customer_key_press,blank
+	arg mem_customer_key_release,regb	//tx buff
+	rtn
+mouse_customer_key_press:
+	arg mem_customer_key_press,regb
+	rtn
+
+
+/**************************************g24 search receiver*****************************************/
+
+mouse_24g_search_dongle_init:
+	setarg 0
+	store 3,mem_mouse_search_dongle_action
+	rtn
+
+mouse_24g_search_dongle:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtn blank
+	fetch 1,mem_24g_abort_pac
+	rtn blank
+	fetch 1,mem_mouse_search_dongle_interval
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_mouse_search_dongle_interval
+	nrtn blank	//400ms
+	jam 0,mem_mouse_search_dongle_ch
+mouse_24g_search_dongle_loop:
+	bpatch patch12_7,mem_patch12
+	fetch 1,mem_mouse_search_dongle_ch
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_ch
+	sub pdata,G24_CH_NUMBER,null
+	nbranch mouse_24g_search_dongle_loop_end,positive
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch mouse_24g_search_dongle_loop_retry,sync
+	nbranch mouse_24g_search_dongle_loop_retry,user3
+	call mouse_g24_ackpayload_parse
+	call mouse_24g_search_dongle_success
+mouse_24g_search_dongle_loop_end:
+	call g24_txbuf_clear
+	fetch 1,mem_mouse_search_dongle_count
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_count
+	beq G24_CH_POLL_COUNT,mouse_24g_search_dongle_check
+	rtn
+
+mouse_24g_search_dongle_loop_retry:
+	call g24_ch
+	branch mouse_24g_search_dongle_loop
+
+mouse_24g_search_dongle_check:
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit1 G24_DISCONN_STATE
+	set1 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	fetch 2,mem_mouse_24g_search_dongle_time_init		//3min
+	store 2,mem_mouse_no_data_timer
+	branch mouse_sensor_powerdown
+	
+mouse_24g_search_dongle_success:
+	fetch 1,mem_24g_abort_pac
+	branch mouse_24g_search_dongle_init,blank
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit0 G24_DISCONN_STATE
+	set0 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	call mouse_no_data_timer_init
+	branch mouse_init_sensor_wakeup
+
+mouse_g24_ackpayload_parse:
+	call g24_ackpayload_parse
+	fetch 1,mem_24g_rxbuf+1
+	compare 0x08,pdata,0xf8
+	nrtn true
+	fetch 1,mem_24g_rxbuf+2		// pc sleep mouse ackpayload: 01 08 ff
+	beq 0xff,mouse_24g_hibernate_set
+	rtn
+
+/**************************************g24 search receiver*****************************************/
+
+
+mouse_g24_retransmit:
+	fetch 1,mem_mouse_need_soft_reset
+	nrtn blank
+	call mouse_retransmit_select_device_by_pb_button
+	call mouse_select_device_by_dpi_button_once
+	branch g24_retransmit0
+
+mouse_select_device_by_dpi_button_once:
+	arg 12,queue
+	call timer_check
+	nrtn blank
+	call mouse_dpi_check_once
+	call mouse_dpi_key_check_long_press
+mouse_g24_retransmit_100ms_timer_init:
+	arg 12,queue
+	setarg 160
+	branch timer_init
+	
+mouse_dpi_check_once:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+//	jam 0x03,mem_mouse_dpikey_press_status
+	branch mouse_dpi_check
+
+/**************************************g24 new process start********************************************/
+mouse_24g_before_lpm_sleep:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,lpm_sleep_skip_cb_function
+	fetch 1,mem_24g_disable_fec1
+	rtn blank
+mouse_peripheral_clock_off:
+	jam 2,core_clksel			//use rc clock
+	jam 0xf8,core_lpm_ctrl
+	rtn
+
+/**************************************g24 new process end********************************************/
+
+/*******************logo led*******************/
+mouse_logo_led_on_timer:
+	fetch 1,mem_mouse_logo_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_mouse_no_data_timer
+	rtn blank
+	fetch 2,mem_mouse_no_data_timeout
+	fetcht 2,mem_mouse_no_data_timer
+	isub temp,temp
+	fetch 2,mem_mouse_logo_led_on_time_init
+	isub temp,pdata
+	branch mouse_logo_led_on,positive
+mouse_logo_led_off:
+	fetcht 1,mem_mouse_logo_led_gpio
+	branch mouse_led_off
+mouse_logo_led_on:
+	fetcht 1,mem_mouse_logo_led_gpio
+	branch mouse_led_on
+	
+/*******************logo led end*******************/
+
+
+
+/*******************dpi led*******************/
+mouse_dpi_led_blink_delay_timer:
+	arg mem_mouse_dpi_led_delay_count,regc
+	arg mouse_dpi_led_blink_init,regb
+	branch timer_single_step
+	
+mouse_dpi_led_blink_init:
+	bpatch patch13_0,mem_patch13
+	fetch 1,mem_config_sensor_type
+	beq P3212,mouse_dpi_led_blink_init_another		//result:    level3: 1  2  3     level4: 2  3  4  1
+	beq KA8G2,mouse_dpi_led_blink_init_another	//result:    level3: 1  2  3     level4: 2  3  4  1
+	fetcht 1,mem_mouse_dpi
+	increase 2,temp	// 2 3 4 (5)
+mouse_dpi_led_blink_init_next:
+	sub temp,3,null
+	call mouse_dpi_led_blink_init_level_4,positive
+	ncall mouse_dpi_led_blink_count_clean,positive
+	copy temp,pdata
+	iadd pdata,pdata
+	store 1,mem_mouse_multi_led_blink_count
+mouse_multi_dpi_led_blink_enable:
+	jam 4,mem_mouse_multi_led_blink_type
+	call mouse_multi_dpi_led_blink_timer_init	
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	branch mouse_multi_led_enable
+
+mouse_dpi_led_blink_init_another:
+	fetcht 1,mem_mouse_dpi
+	increase 1,temp
+	branch mouse_dpi_led_blink_init_next
+
+mouse_dpi_led_blink_init_level_4:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DPI_LEVEL_4
+	increase 1,temp  	// 2-->3   3-->4
+	rtn
+mouse_dpi_led_blink_count_clean:
+	increase -3,temp		// 4-->1  5-->2
+	rtn
+
+
+mouse_dpi_led_blink_delay:
+	fetch 1,mem_mouse_dpi_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_mouse_multi_led_powon_timer
+	nrtn blank
+	fetch 1,mem_mouse_dpi_led_delay_count_init
+	branch mouse_dpi_led_blink_init,blank
+	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
+	rtn
+
+/*******************dpi led end*******************/
+
+
+
+/*******************low voltage led*************************/
+
+mouse_check_dpi_blink:
+	disable user
+	fetch 1,mem_mouse_multi_led_blink_type		//04:dpi blink
+	sub pdata,4,null
+	nrtn zero
+	branch enable_user
+
+mouse_low_voltage_led_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOW_LED
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_mouse_multi_led_powon_timer
+	nrtn blank
+	call mouse_check_dpi_blink		//need judge blink led=dpi? if led=dpi led->rtn
+	rtn user
+
+	fetch 1,mem_mouse_multi_low_led_blink_count
+	branch mouse_low_led_blink_count_init_judge,blank
+mouse_low_led_blink_timer:
+	fetcht 1,mem_adc_low_volatage_led_timer_count
+	increase 1,temp
+	storet 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_mouse_low_led_blink_timer
+	isub temp,null
+	ncall mouse_low_led_timer_count_clean,positive
+	fetch 1,mem_mouse_low_led_blink_half_timer
+	isub temp,null
+	nbranch mouse_low_voltage_led_off_judge,positive
+mouse_low_voltage_led_on_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_FOR_LED,mouse_device_led_on
+	bbit1 MOUSE_ENABLE_DPI_LOW_FOR_LED,mouse_device_led_on
+mouse_low_voltage_led_on:
+	fetcht 1,mem_mouse_low_voltage_alarm_gpio 
+	branch mouse_led_on
+
+mouse_low_led_timer_count_clean:
+	jam 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_mouse_multi_low_led_blink_count	//blink count decrease
+	increase -1,pdata
+	store 1,mem_mouse_multi_low_led_blink_count
+mouse_low_voltage_led_off_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_FOR_LED,mouse_device_led_off
+	bbit1 MOUSE_ENABLE_DPI_LOW_FOR_LED,mouse_device_led_off
+mouse_low_voltage_led_off:
+	fetcht 1,mem_mouse_low_voltage_alarm_gpio
+	branch mouse_led_off
+
+mouse_low_led_blink_count_init_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT,mouse_low_voltage_led_off_judge
+	call mouse_multi_low_led_blink_count_init
+	branch mouse_low_led_blink_timer
+	
+/*******************low voltage led end*************************/
+
+
+/*******************multi led start*************************/
+/***parm init****/
+
+mouse_device_multi_led_parm_init:
+	jam 0,mem_mouse_multi_led_blink_enable
+	call mouse_device_multi_led_all_off		//can be remove?
+	jam 0,mem_mouse_multi_led_blink_type
+	fetch 1, mem_mouse_low_led_blink_timer
+	rshift pdata,pdata
+	store 1,mem_mouse_low_led_blink_half_timer
+	rtn
+mouse_multi_low_led_blink_count_init:
+	fetch 1,mem_mouse_multi_lowled_blink_count_init
+	store 1,mem_mouse_multi_low_led_blink_count
+	rtn
+
+mouse_multi_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_led_blink_type		//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+	beq 1,mouse_device_24g_led_blink_timer_init
+	beq 2,mouse_device_le_discovery_led_blink_timer_init
+	beq 3,mouse_device_le_reconn_led_blink_timer_init
+mouse_multi_dpi_led_blink_timer_init:
+	fetch 1,mem_mouse_dpi_led_blink_timer_init
+mouse_store_multi_led_blink_timer:
+	store 1,mem_mouse_multi_led_blink_timer
+	rtn
+mouse_device_24g_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_24gled_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+mouse_device_le_discovery_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_le_discovery_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+mouse_device_le_reconn_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_le_reconn_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+
+//===led poweron config===//
+mouse_device_poweron_led_config:	//power on
+	bpatch patch13_1,mem_patch13
+	fetch 1,mem_mouse_multi_led_powon_timer_init
+	store 1,mem_mouse_multi_led_powon_timer
+	jam MULTI_LED_ON,mem_mouse_multi_led_type
+mouse_multi_led_enable:
+	jam OFF,mem_mouse_multi_led_state
+	jam ON,mem_mouse_multi_led_blink_enable
+	rtn
+
+//===led blink config===//
+mouse_device_24g_pair_led_config:		//24g pair led config
+	bpatch patch13_2,mem_patch13
+	fetch 1,mem_device_flag
+	rtnne MODE_24G_DEVICE
+	call mouse_multi_led_blink_enable_init
+	jam 1,mem_mouse_multi_led_blink_type
+	call mouse_device_24g_led_blink_timer_init
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	rtn blank
+	fetch 1,mem_mouse_multi_24gled_blink_count_init
+	branch mouse_device_led_blink_count_init
+
+mouse_device_le_reconn_led_config:		//le recon led config
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	call mouse_multi_led_blink_enable_init
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+	jam 3,mem_mouse_multi_led_blink_type
+	call mouse_device_le_reconn_led_blink_timer_init
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	rtn blank
+	fetch 1,mem_mouse_multi_le_reconn_blink_count_init
+mouse_device_led_blink_count_init:
+	store 1,mem_mouse_multi_led_blink_count
+	rtn	
+
+mouse_device_discovery_led_config:		//ble discovery led config
+	jam 0,mem_mouse_le_reconn_blink_limit
+	jam 2,mem_mouse_multi_led_blink_type
+	call mouse_device_le_discovery_led_blink_timer_init
+mouse_multi_led_blink_enable_init:
+	jam 1,mem_mouse_multi_led_blink_enable
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	branch mouse_device_multi_led_on
+
+
+//====multi timer====//
+mouse_led_multi_timer:
+	fetch 1,mem_mouse_multi_led_blink_enable
+	rtn blank
+	fetch 1,mem_mouse_multi_led_type
+	beq MULTI_LED_BLINK,mouse_multi_led_type_blink
+mouse_device_multi_led_type_on:
+	fetch 1,mem_mouse_multi_led_powon_timer
+	branch mouse_device_poweron_led_off,blank
+	increase -1
+	store 1,mem_mouse_multi_led_powon_timer
+	branch mouse_device_led_on
+
+mouse_device_poweron_led_off:
+ 	jam 0,mem_mouse_multi_led_blink_enable
+	call mouse_multi_low_led_blink_count_init
+	branch mouse_device_led_off
+
+mouse_multi_led_type_blink:
+	bpatch patch13_3,mem_patch13
+	fetch 1,mem_mouse_multi_led_blink_type	//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+	rtn blank
+	beq 4,mouse_device_led_blink_limit	//dpi blink
+	branch mouse_device_led_blink_judge
+
+mouse_device_led_blink_judge:
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	beq 1,mouse_device_led_blink_limit
+	branch mouse_multi_led_type_blink_next
+
+mouse_device_led_blink_limit:
+	fetch 1,mem_mouse_multi_led_blink_count
+	branch mouse_multi_led_off_judge, blank		//blink count =0
+mouse_multi_led_type_blink_next:	//blink no limit
+	arg mem_mouse_multi_led_blink_timer,regc
+	arg mouse_multi_led_type_blink_start,regb
+	branch timer_single_step
+	
+mouse_multi_led_type_blink_start:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_led_blink_count_decrease		//dpi blink
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	beq 1,mouse_multi_led_blink_count_decrease
+mouse_multi_led_blink:
+	call mouse_multi_led_blink_timer_init
+	fetch 1,mem_mouse_multi_led_state
+	beq ON,mouse_multi_led_off_judge_next
+	branch mouse_multi_led_on_judge
+
+mouse_multi_led_blink_count_decrease:
+	fetch 1,mem_mouse_multi_led_blink_count	
+	increase -1
+	store 1,mem_mouse_multi_led_blink_count
+	branch mouse_multi_led_blink
+
+//=====led on/off interface=====//
+mouse_multi_led_on_judge:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_dpi_led_on_judge
+mouse_device_multi_led_on:
+	jam ON,mem_mouse_multi_led_state
+mouse_device_led_on:
+	bpatch patch13_4,mem_patch13
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_device_24g_led_on
+	beq MODE_BT_DEVICE1,mouse_device_bt1_led_on
+	beq MODE_BT_DEVICE2,mouse_device_bt2_led_on
+	rtn
+mouse_device_24g_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	branch mouse_led_on	//by mouse.dat config
+mouse_device_bt1_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	branch mouse_led_on	//by mouse.dat config
+mouse_device_bt2_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+mouse_led_on:
+	branch gpio_out_active	//by mouse.dat config
+
+mouse_led_off:
+	branch gpio_out_inactive	//by mouse.dat config
+
+mouse_multi_led_off_judge:
+	jam 0,mem_mouse_multi_led_blink_enable
+	jam 0,mem_mouse_multi_led_blink_type
+mouse_multi_led_off_judge_next:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_dpi_led_off_judge
+mouse_device_multi_led_off:
+	jam OFF,mem_mouse_multi_led_state
+mouse_device_led_off:
+	bpatch patch13_5,mem_patch13
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_device_24g_led_off
+	beq MODE_BT_DEVICE1,mouse_device_bt1_led_off
+	beq MODE_BT_DEVICE2,mouse_device_bt2_led_off
+	rtn
+mouse_device_24g_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_high_impedance
+mouse_device_bt1_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_high_impedance
+mouse_device_bt2_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_high_impedance
+
+mouse_device_multi_led_all_off:		//dpi+low no
+	call mouse_device_24g_led_off
+	call mouse_device_bt1_led_off
+	call mouse_device_bt2_led_off
+	call mouse_low_voltage_led_off_judge
+	branch mouse_multi_dpi_led_off_judge
+
+mouse_multi_dpi_led_off_judge:
+	jam OFF,mem_mouse_multi_led_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_FOR_LED,mouse_device_multi_led_off
+	bbit1 MOUSE_ENABLE_DPI_LOW_FOR_LED,mouse_device_multi_led_off
+mouse_multi_dpi_led_off:
+	fetcht 1,mem_mouse_dpi_gpio
+	branch mouse_led_off
+
+mouse_multi_dpi_led_on_judge:
+	jam ON,mem_mouse_multi_led_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_FOR_LED,mouse_device_multi_led_on
+	bbit1 MOUSE_ENABLE_DPI_LOW_FOR_LED,mouse_device_multi_led_on
+mouse_multi_dpi_led_on:
+	fetcht 1,mem_mouse_dpi_gpio
+	branch mouse_led_on	//by mouse.dat config
+
+/*******************multi led end*************************/
+
+mouse_low_voltage_led_no_enter_lpm:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	fetch 1,mem_adc_low_volatage_led_timer_count
+	fetcht 1,mem_mouse_low_led_blink_half_timer
+	sub pdata,temp,null
+	branch mouse_lpm_mode_clear,positive
+mouse_low_voltage_led_no_enter_lpm_next:	
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_exit_check
+	jam 1,mem_lpm_mode
+	rtn
+
+g24_transmit_by_interrupt_exit_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag	
+	rtnbit1 MOUSE_ENABLE_24G_250Hz	
+	branch g24_transmit_by_interrupt_exit
+
+mouse_lpm_mode_clear:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_enable
+	jam 0,mem_lpm_mode
+	rtn
+
+
+mouse_store_signal_rssi:
+//	call rssi_hex2dec
+	fetch 1,mem_rssi
+	branch rssi_signal
+
+mouse_le_transmit:
+	call mouse_store_signal_rssi
+	branch power_ctrl_start
+
+mouse_le_set_lpm_mult:
+	fetch 1,mem_le_connect_status_flag
+	compare 3,pdata,3
+	nbranch disable_blank,true
+	call app_lpm_mult_enable
+	branch enable_blank
+
+mouse_set_lpm_mult:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,mouse_le_set_lpm_mult
+	rtn
+
+mouse_24g_long_sleep:
+	call g24_lpm_wait
+	nrtn user
+	jam 1,mem_mouse_24g_long_sleep_flag
+	call g24_setgpio_lpm_before
+	jam 0,mem_mouse_24g_sleep_miss
+	call mouse_24g_send_time_long_wake
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_setgpio_hibernate,blank
+	fetch 4,mem_24g_enter_hibernate
+	branch g24_long_seep2	
+
+mouse_24g_short_sleep:
+	fetch 1,mem_mouse_sleep_deal_type
+	branch g24_short_sleep,blank
+	call g24_lpm_wait
+	nrtn user
+	fetch 1,mem_mouse_24g_sleep_miss
+	jam 0,mem_mouse_24g_sleep_miss
+	sub pdata,0,null
+	nbranch mouse_24g_short_sleep_last_miss,zero
+	fetcht 2,mem_24g_retransmit
+	sub temp,0,null
+	branch mouse_24g_short_sleep_default,zero
+
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	branch mouse_24g_short_sleep_default,blank
+mouse_24g_short_sleep_notify:
+	fetcht 4,mem_mouse_24g_tsniff
+	isub temp,temp
+	storet 4,mem_mouse_24g_sleep_miss_temp
+	nbranch mouse_24g_short_sleep_long,positive
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,pdata
+	nbranch mouse_24g_short_sleep_2,positive
+	arg 0x600,temp
+	isub temp,null
+	nbranch mouse_24g_short_sleep_2,positive
+mouse_24g_short_sleep2:
+	store 4,mem_mouse_24g_sleep_time_temp
+	call mouse_24g_miss_temp_clear
+	fetch 4,mem_mouse_24g_sleep_time_temp
+mouse_24g_short_sleep3:	
+	call clk2lpo
+	storet 4,mem_sleep_counter
+	branch lpm_sleep
+
+mouse_24g_short_sleep_default:
+	call mouse_24g_miss_temp_clear
+	fetch 3,mem_24g_short_sleep_set
+	branch mouse_24g_short_sleep2
+
+mouse_24g_short_sleep_long:
+	sub temp,0,temp
+	fetch 3,mem_24g_short_sleep_set
+	iadd temp,pdata
+	branch mouse_24g_short_sleep2
+
+mouse_24g_miss_temp_clear:
+	setarg 0
+	store 4,mem_mouse_24g_sleep_miss_temp
+	rtn
+	
+mouse_24g_short_sleep_last_miss:
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	fetcht 4,mem_mouse_24g_sleep_miss_temp
+	iadd temp,pdata
+	branch mouse_24g_short_sleep_notify
+	
+mouse_24g_short_sleep_2:
+	jam 1,mem_mouse_24g_sleep_miss
+	rtn
+
+
+mouse_24g_transmit_callback:
+	call mouse_24g_send_time_check
+	branch mouse_wakeup_24g
+
+mouse_24g_send_time_check:
+	fetch 1,mem_mouse_sleep_deal_type
+	rtn blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,mouse_24g_send_timer_first
+	fetch 1,mem_mouse_24g_tx_count
+	branch mouse_24g_send_timer_first,blank
+	copy clkn,pdata
+	fetcht 6,mem_mouse_24g_tx_time_last
+	store 6,mem_mouse_24g_tx_time_last
+	call clk_diff_rt
+	store 4,mem_mouse_24g_tx_time_last_delt
+
+	fetch 1,mem_mouse_24g_sleep_miss
+	nrtn blank
+	fetch 2,mem_24g_retransmit
+	nrtn blank
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+mouse_24g_send_time_check_1:
+	fetcht 5,mem_mouse_24g_tx_time_sum
+	iadd temp,pdata
+	store 5,mem_mouse_24g_tx_time_sum	
+	fetcht 1,mem_mouse_24g_tx_count
+	fetch 1,mem_mouse_24g_tx_time_sum_count
+	isub temp,null
+	branch mouse_24g_send_time_check_average,zero
+	increase 1,temp
+	storet 1,mem_mouse_24g_tx_count
+	rtn
+
+mouse_24g_send_time_check_average:
+	jam 1,mem_mouse_24g_tx_count
+	arg 0,temp
+	fetch 5,mem_mouse_24g_tx_time_sum
+	storet 5,mem_mouse_24g_tx_time_sum
+	fetcht 1,mem_mouse_24g_tx_time_sum_count
+	idiv temp
+	call wait_div_end
+  	quotient rega
+
+	fetch 4,mem_mouse_24g_tsniff
+	fetcht 1,mem_mouse_24g_tx_time_offset
+	isub temp,temp
+	increase -40,temp
+
+	copy rega,pdata
+	isub temp,pdata
+	branch mouse_24g_send_time_check_average_late,positive
+	sub pdata,0,pdata
+	
+	rshift2 pdata,pdata
+	fetcht 3,mem_24g_short_sleep_set
+	iadd temp,temp
+	bpatch patch13_6,mem_patch13
+	fetch 3,mem_mouse_24g_short_sleep_set_init
+	arg 0x1800,rega
+	iadd rega,pdata
+	isub temp,null
+	nbranch mouse_24g_send_time_check_average_min,positive
+	storet 3,mem_24g_short_sleep_set
+	rtn
+
+mouse_24g_send_time_check_average_late:
+	rshift2 pdata,temp
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,temp
+	bpatch patch13_7,mem_patch13
+	fetch 3,mem_mouse_24g_short_sleep_set_init
+	arg 0x1800,rega
+	isub rega,pdata
+	isub temp,null
+	branch mouse_24g_send_time_check_average_min,positive
+	storet 3,mem_24g_short_sleep_set
+	rtn
+
+mouse_24g_send_time_check_average_min:
+	store 3,mem_24g_short_sleep_set
+	rtn
+
+mouse_24g_send_timer_first:
+	jam 1,mem_mouse_24g_tx_count
+	copy clkn,pdata
+	store 6,mem_mouse_24g_tx_time_last
+	rtn
+
+mouse_24g_send_time_long_wake:
+	setarg 0
+	store 1,mem_mouse_24g_tx_count
+	store 5,mem_mouse_24g_tx_time_sum
+	rtn
+	
+
+/*****************close define  COMPILE_MOUSE**********/
+else
+
+endif
+
+
+
Index: program/app_shutter.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_shutter.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_shutter.prog	(working copy)
@@ -0,0 +1,656 @@
+
+ifdef COMPILE_SHUTTER
+
+shutter_init:
+	call enable_authrom
+	rtn wake
+	
+	setarg shutter_process_idle
+	store 2,mem_cb_idle_process
+		
+	setarg shutter_process_bb_event 
+	store 2,mem_cb_bb_event_process
+	
+	setarg ble_shutter_receive_data
+	store 2,mem_cb_att_write
+
+	setarg shutter_le_bb_event_timer
+	store 2,mem_cb_event_timer
+
+	setarg shutter_key_change
+	store 2,mem_cb_shutter_keycan
+
+	call shutter_common_init
+	
+	bpatch patch14_0,mem_patch14
+	call shutter_load_buffer_config_form_DataRom
+
+shutter_power_switch:
+	fetch 1, mem_shutter_hard_soft_switch_case
+	beq HARD_SWITCH, shutter_hart_swtich_power_on
+	fetch 1,mem_shutter_soft_switch_button_gpio
+	store 1,mem_ui_button_gpio
+	branch ui_soft_swtich_init
+
+
+shutter_common_init:
+	setarg shutter_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+
+	setarg shutter_process_lpm_before
+	store 2,mem_cb_before_lpm
+
+	setarg shutter_soft_swtich_power_on
+	store 2,mem_shutter_soft_switch_poweron_callback_function
+	
+	setarg shutter_soft_swtich_power_off
+	store 2,mem_shutter_soft_switch_poweroff_callback_function
+
+	jam 7,mem_version
+	call le_modified_name_adv
+	call shutter_init_param	
+	call keyscan_key_init
+	call queue_init
+	branch ui_led_init_global
+
+
+/**************hard swtich function**************/
+shutter_hart_swtich_power_on:
+	jam UI_BUTTON_GPIO_DISABLE,mem_ui_button_gpio
+	jam SS_STATE_POWER_ON,mem_shutter_soft_switch_power_state
+	branch shutter_start_reconnect
+/****************************/
+
+/**************lpm lock callback function**************/
+shutter_le_scale_lpm_lock:
+	fetch 1,mem_shutter_soft_switch_power_state
+	beq SS_STATE_POWER_OFF,app_get_lpm_wake_lock
+	call l2cap_malloc_get_full_map
+	fetch 1,mem_used_map
+	nbranch app_get_lpm_wake_lock,blank
+	branch app_put_lpm_wake_lock
+/****************************/
+
+/**************c512bt event callback function*************/
+shutter_process_bb_event:
+	copy regc,pdata
+	
+/**************ble shutter event*****************/
+	beq BT_EVT_LE_CONNECTED,ble_shutter_process_baseband_connect
+	beq BT_EVT_LE_DISCONNECTED,ble_shutter_process_baseband_disconnect
+	beq BT_EVT_LE_RECONNECT_COMPLETE,ble_shutter_process_reconnect_complete
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,ble_shutter_process_parse_connect_parameter_update_response
+/***************soft swtich event****************/
+	beq BT_EVT_BUTTON_LONG_PRESSED,ui_soft_switch_botton_long_press
+	beq BT_EVT_BUTTON_DOWN,shutter_process_soft_swtich_button_down
+	beq BT_EVT_BUTTON_UP,shutter_process_soft_swtich_button_up
+	rtn
+/****************************/
+
+
+/******************ble shutter event**********************/
+ble_shutter_process_baseband_connect:
+	call shutter_stop_bluetooth_discovery
+	setarg 0
+	store 2,mem_ble_shutter_reconn_timer
+	branch app_led_off
+
+
+ble_shutter_process_baseband_disconnect:
+	call queue_init
+	jam 0,mem_ble_shutter_enable_notify
+	branch shutter_start_reconnect
+
+
+ble_shutter_process_reconnect_complete:
+	call queue_init
+	jam 1,mem_ble_shutter_enable_notify
+	fetch 8,mem_ble_shutter_interval_min
+	store 8,mem_le_interval_min
+	call app_lpm_mult_enable
+	branch le_l2cap_tx_update_req
+
+
+ble_shutter_process_parse_connect_parameter_update_response:
+	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+	fetch 8,mem_ble_shutter_interval_min_new
+	rtn blank
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+/**************************************/
+
+/******************soft swtich event**********************/
+//shutter_process_soft_swtich_button_long_press:
+//	branch ui_soft_switch_botton_long_press
+
+shutter_process_soft_swtich_button_down:
+	fetch 1,mem_shutter_hard_soft_switch_case
+	rtneq HARD_SWITCH
+	fetch 1,mem_shutter_soft_switch_power_state
+	rtnne SS_STATE_POWER_ON
+	call shutter_store_currenct_led_state
+	branch app_led_on
+	
+shutter_store_currenct_led_state:
+	jam 1,mem_shutter_soft_swtich_botton_down
+	arg 11,loopcnt
+	arg mem_shutter_soft_swtich_led_struct_temp,contw
+	arg mem_shutter_led_struct_app_led,contr
+	branch memcpy
+	
+shutter_process_soft_swtich_button_up:
+	fetch 1,mem_shutter_hard_soft_switch_case
+	rtneq HARD_SWITCH
+	fetch 1,mem_shutter_soft_switch_power_state
+	beq SS_STATE_POWER_ON,shutter_load_currenct_led_state
+	branch ui_soft_switch_botton_up
+
+shutter_load_currenct_led_state:
+	fetch 1,mem_shutter_soft_swtich_botton_down
+	rtnne 1
+	jam 0,mem_shutter_soft_swtich_botton_down
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_led_off
+	arg 11,loopcnt
+	arg mem_shutter_soft_swtich_led_struct_temp,contr
+	arg mem_shutter_led_struct_app_led,contw
+	branch memcpy
+	
+/**************************************/
+
+
+shutter_le_bb_event_timer:
+/**************shutter check sleep timer**********************/
+	call shutter_check_sleep_timer
+/************************************/
+/**************soft reset power off timer**********************/
+	call shutter_check_power_off_timer
+/************************************/
+
+/**************ble shutter timer**********************/
+	branch ble_shutter_reconn_timer
+/************************************/
+
+/**************shutter check sleep timer**********************/
+shutter_check_sleep_timer:
+	arg mem_shutter_sleep_timer,regc
+	arg shutter_sleep_timeout,regb
+	branch timer_single_step_2B
+shutter_sleep_timeout:
+	jam SS_STATE_POWER_OFF,mem_shutter_soft_switch_power_state
+	call app_led_off
+	call shutter_disconnect_current_connection
+	branch shutter_wait_power_off
+
+/**************soft reset power off timer**********************/
+shutter_check_power_off_timer:
+	arg mem_shutter_power_off_timer,regc
+	arg shutter_check_power_off_timeout,regb
+	branch timer_single_step
+
+shutter_check_power_off_timeout:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,shutter_wait_power_off
+	fetch 1,mem_shutter_led_struct_app_led_type
+	beq UI_LED_STATE_BLINK_START,shutter_wait_power_off
+	beq UI_LED_STATE_BLINK_LIGHTING,shutter_wait_power_off
+	beq UI_LED_STATE_BLINK_DARKING,shutter_wait_power_off
+	branch app_enter_hibernate
+/************************************/
+
+/**************ble shutter timer**********************/
+ble_shutter_reconn_timer:
+	fetch 1,mem_shutter_soft_switch_power_state
+	rtnne SS_STATE_POWER_ON
+	arg mem_ble_shutter_reconn_timer,regc
+	arg shutter_start_bluetooth_discovery,regb
+	branch timer_single_step_2B
+/************************************/
+
+shutter_process_idle:
+	call shutter_send_data_to_master
+	branch keyscan_key_process
+
+
+shutter_process_lpm_before:
+	call gpio_set_before_lpm
+	branch keyscan_process_lpm_before
+
+shutter_le_before_hibernate:
+	call gpio_set_before_lpm
+	branch disable_authrom
+
+//////////////////////////////////////////////////////////////////////////////////////////
+
+
+/****************shutter bluetooth control**********************/
+shutter_stop_bluetooth_discovery:
+//	fetch 1,mem_shutter_bluetooth_type
+//	bbit1 BLE_SHUTTER,ble_shutter_stop_bluetooth_discovery
+//	rtn
+ble_shutter_stop_bluetooth_discovery:
+	fetch 2,mem_ble_shutter_connect_timeout
+	store 2,mem_shutter_sleep_timeout
+	store 2,mem_shutter_sleep_timer
+	branch app_ble_stop_adv
+	
+
+shutter_start_bluetooth_discovery:
+	fetch 1,mem_shutter_soft_switch_power_state
+	rtnne SS_STATE_POWER_ON
+//	fetch 1,mem_shutter_bluetooth_type
+//	bbit1 BLE_SHUTTER,ble_shutter_start_discovery
+//	rtn
+ble_shutter_start_discovery:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	fetch 2,mem_ble_shutter_discovery_timeout
+	store 2,mem_shutter_sleep_timeout
+	store 2,mem_shutter_sleep_timer
+	fetch 2,mem_ble_shutter_discovery_adv_interval
+	call shutter_ble_adv_interval_set
+	call app_led_start_blink
+	fetch 4,mem_ble_shutter_discovery_blink_on_time
+	store 4,mem_shutter_led_struct_app_led_on_time
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	branch app_ble_start_adv
+
+shutter_soft_swtich_power_on:
+shutter_start_reconnect:
+	fetch 1,mem_shutter_soft_switch_power_state
+	rtnne SS_STATE_POWER_ON
+//	fetch 1,mem_shutter_bluetooth_type
+//	bbit1 BLE_SHUTTER,ble_shutter_start_reconnect
+//	rtn
+ble_shutter_start_reconnect:
+	fetch 2,mem_ble_shutter_reconn_timer
+	fetcht 2,mem_ble_shutter_reconn_timeout
+	storet 2,mem_ble_shutter_reconn_timer
+	nrtn blank
+	fetch 2,mem_ble_shutter_reconn_adv_interval
+	call shutter_ble_adv_interval_set
+	call app_led_start_blink
+	fetch 4,mem_ble_shutter_reconn_blink_on_time
+	store 4,mem_shutter_led_struct_app_led_on_time
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	branch app_ble_start_adv
+
+shutter_disconnect_current_connection:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	branch shutter_stop_bluetooth_discovery
+/**************************************/
+/////////////////////////////////////////////////////////////////////////
+//output:if user is enable,mean,can send data
+shutter_check_data_enable:
+	call disable_user
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,shutter_check_ble_data_enable
+	rtn
+
+shutter_check_ble_data_enable:
+	fetch 1,mem_ble_shutter_enable_notify
+	rtn blank
+	branch enable_user
+/////////////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////////////
+//output:if user is enable,mean,bluetooth disconnect
+shutter_check_bluetooth_conn:
+	call disable_user
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	branch enable_user
+/////////////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////////////
+shutter_change_bluetooth_status_bt_disconn:
+//	fetch 1,mem_shutter_bluetooth_type
+//	bbit1 BLE_SHUTTER,ble_shutter_change_bluetooth_status_bt_disconn
+//	rtn
+ble_shutter_change_bluetooth_status_bt_disconn:
+	branch shutter_start_reconnect
+
+/////////////////////////////////////////////////////////////////////////
+
+shutter_check_send_data:
+	disable user2
+	fetch 2,mem_shutter_sleep_timeout
+	store 2,mem_shutter_sleep_timer
+
+	call shutter_check_bluetooth_conn
+	branch shutter_change_bluetooth_status_bt_disconn,user
+	
+	call shutter_check_data_enable
+	nrtn user
+	branch enable_user2
+
+//queue = key index
+//rega =1 press, =0 release
+shutter_key_change:
+	call shutter_check_send_data
+	nrtn user2
+	deposit rega
+	branch shutter_key_release,blank
+shutter_key_press:
+	call app_led_on
+	arg mem_key0_press,regc
+	branch push_queue_press_or_release
+
+shutter_key_release:
+	call app_led_off
+	arg mem_key0_release,regc
+
+push_queue_press_or_release:
+	arg MAX_QUEUE_NUM,pdata
+	imul32 queue,pdata
+	iadd regc,regc
+	
+//input:regc the address that want push to queue buffer
+push_buffer_in_queue:
+	ifetch 1,regc
+	rtn blank
+	call queue_push_one_byte
+	increase 1,regc
+	branch push_buffer_in_queue
+
+
+shutter_send_data_to_master:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,pop_queue_to_ble_data
+	rtn
+
+pop_queue_to_ble_data:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	call queue_pop_one_byte
+	nrtn user
+	pincrease -1
+	mul32 pdata,SHUTTER_BLE_DATA_BUFFER,pdata
+	arg mem_ble_data_buffer1,temp
+	iadd temp,contr
+	branch le_send_notify_from_list
+
+///////////queue function////////////
+//input:pdata is data that want push
+queue_push_one_byte:
+	store 1,mem_pdatatemp
+	arg mem_pdatatemp,rega
+	branch queue_push
+
+queue_pop_one_byte:
+	arg mem_pdatatemp,rega
+	call queue_pop
+	nrtn user
+	fetch 1,mem_pdatatemp
+	rtn
+
+///////////queue function ending////////////
+ble_shutter_receive_data:
+	fetch 2,mem_le_att_handle
+	beq GATT_KEYBOARD_WRITE_HANDLE,ble_shutter_process_reconnect_complete
+	rtn
+
+shutter_init_param:
+	jam 0x02,mem_shutter_power_off_timeout
+/////////////ble connect interval//////////////
+	setarg 0x00200008
+	store 4,mem_ble_shutter_interval_min		//set min interval is 10ms,set max interval is 40ms
+	setarg 0x012c0005
+	istore 4,contw
+///////////////////////////////////////
+//////////////////MTU/////////////
+	jam 0x17,mem_le_local_mtu
+///////////////////////////////////////
+////////////////justwork/////////
+	setarg 0x1b
+ 	store 2,mem_le_pairing_handle
+	branch le_set_fixed_ltk_justwork
+///////////////////////////////////////
+
+shutter_load_buffer_config_form_DataRom:
+///////load data Rom/////////
+	arg BLE_KEY_VALUE_LIST_SIZE,loopcnt
+	arg mem_ble_data_buffer1,contw
+	arg BLE_SHUTTER_KEY_VALUE_LIST_ADDR,contr
+	branch memcpy_fast
+
+//shutter_load_ble_gatt_form_DataRom:
+//	arg BLE_GATT_LIST_SIZE,loopcnt
+//	arg BLE_SHUTTER_GATT_LIST_ADDR,contr
+//	branch memcpy_fast
+
+//shutter_load_dy_keyvalue_buffer_config_form_DataRom:
+///load data Rom/////////
+//	arg BT_DY_KEY_VALUE_LIST_SIZE,loopcnt
+//	arg mem_shutter_mousekey_value_list,contw
+//	arg BLE_SHUTTER_DY_MOUSEKEY_VALUE_LIST_ADDR,contr
+//	branch memcpy_fast
+
+
+/////////////////////////////////////////////////////////////////
+//shutter_soft_swtich_power_on:
+//	branch shutter_start_reconnect
+
+
+shutter_soft_swtich_power_off:
+	arg 0,rega
+	arg mem_shutter_power_off_led_style,regc
+	call ui_led_set_style_global
+	call shutter_disconnect_current_connection
+shutter_wait_power_off:
+	fetch 1,mem_shutter_power_off_timeout
+	store 1,mem_shutter_power_off_timer
+	rtn
+	
+
+/*************soft swtich ui config*********************/
+ui_soft_swtich_init:
+	setarg SS_STATE_POWER_UP
+	call ui_soft_swtich_init_power_on_time
+	jam UI_BUTTON_STATE_UP,mem_ui_button_last_state
+	call ui_button_init
+	call ui_button_polling
+ui_soft_switch_first_power_on:
+	fetch 1,mem_shutter_soft_switch_first_power_on
+	branch ui_soft_swtich_init_next, blank
+	fetch 1,core_lpm_isogate
+	bbit1 cold_wake,ui_soft_switch_power_on
+ui_soft_swtich_init_next:		
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BTN_DOWN
+	branch app_enter_hibernate
+
+ui_soft_swtich_init_power_on_time:
+	fetcht 2,mem_power_param_ptr
+	istore 1,temp		//init power state 
+	ifetch 1,contw		//power on time
+	store 1,mem_ui_button_timeout
+	rtn
+
+
+ui_soft_switch_botton_up:
+	fetch 2,mem_power_param_ptr
+	ifetch 1,pdata
+	rtnne SS_STATE_POWER_UP
+	branch app_enter_hibernate
+
+
+ui_soft_switch_botton_long_press:
+	fetcht 2,mem_power_param_ptr
+	ifetch 1,temp
+	beq SS_STATE_POWER_ON,ui_soft_switch_power_off
+ui_soft_switch_power_on:
+	setarg SS_STATE_POWER_ON
+	fetcht 2,mem_power_param_ptr
+	istore 1,temp		//init power state 
+	add temp,SS_POWER_OFF_TIME,contr
+	ifetch 1,contr
+	istore 1,mem_ui_button_timeout
+	ifetch 2,contr
+	branch callback_func
+
+ui_soft_switch_power_off:
+	setarg SS_STATE_POWER_OFF
+	call ui_soft_swtich_init_power_on_time
+	add temp,SS_POWER_OFF_CB,contr
+	ifetch 2,contr
+	branch app_enter_hibernate,blank		//no call back function , just enter hibernate
+	branch callback_func
+	
+/*************soft swtich ui config ending*********************/
+
+//pdata:adv interval value
+shutter_ble_adv_interval_set:
+	store 2,mem_lpm_interval
+	increase -4,pdata
+	store 2,mem_le_adv_interval
+	rtn
+
+le_send_notify_from_list:
+	ifetch 1,contr	//length 
+	copy pdata,rega
+	ifetcht 2,contr	//handle
+	call store_contr
+	call le_att_malloc_tx_notify
+	copy rega,loopcnt
+	call get_contr
+	branch memcpy
+
+shutter_le_uuid_table_conf:
+	setarg BLE_SHUTTER_GATT_LIST_ADDR
+	store 2,mem_ui_le_uuid_table	//BLE ATT LIST END
+	rtn
+	
+shutter_dy_le_uuid_table_conf:
+	setarg mem_shutter_le_uuid_sup	//BLE ATT LIST 
+	store 2,mem_ui_le_uuid_table	//BLE ATT LIST END
+	rtn
+
+/*************shutter default_init starting*********************/
+shutter_default_init:
+	fetch 2,mem_shutter_key_conf0_temp
+	store 2,mem_shutter_key_conf0
+	fetch 1,mem_shutter_led_struct_app_led_gpio_temp
+	store 1,mem_shutter_led_struct_app_led_gpio
+	store 1,mem_shutter_power_off_led_style_gpio
+	fetch 1,mem_shutter_hard_soft_switch_case_temp
+	store 1,mem_shutter_hard_soft_switch_case
+	fetch 1,mem_shutter_soft_switch_button_gpio_temp
+	store 1,mem_shutter_soft_switch_button_gpio
+//	jam 0x01,mem_shutter_bluetooth_type
+//	setarg 0x0030
+//	store 2,mem_classic_shutter_random_mac_offset_addr
+//	setarg 0x0000
+//	store 2,mem_shutter_config_eeprom_offset_addr
+	setarg 0x0002
+	store 2,mem_key0_press
+	store 2,mem_key1_press
+	setarg 0x0006
+	store 2,mem_key0_release
+	store 2,mem_key1_release
+	setarg 0x0007
+	store 2,mem_key2_press
+	setarg 0x0008
+	store 2,mem_key2_release
+	setarg mem_shutter_soft_switch_power_state
+	store 2,mem_power_param_ptr
+	setarg 0x201400
+	store 3,mem_shutter_soft_switch_power_state
+	jam 0x01,mem_lpm_mode
+	setarg 0x0100
+	store 2,mem_lpm_interval
+	jam 0x08,mem_lpm_overhead
+	jam 0x05,mem_lpm_mult
+	jam 0x02,mem_lpm_mult_timeout
+	setarg 0x0096
+	store 2,mem_ble_shutter_reconn_blink_on_time
+	istore 2,contw
+	setarg 0x0296
+	store 2,mem_ble_shutter_discovery_blink_on_time
+	istore 2,contw
+	setsect 0,0x10
+	setsect 1,0x8008
+	setsect 2,0x2c000
+	setsect 3,0x04
+	store 8,mem_ble_shutter_interval_min_new
+	jam 0x01,mem_ui_led_struct_num
+	setarg mem_shutter_led_struct_app_led
+	store 2,mem_ui_led_struct_ptr
+	setarg 0x0000
+	store 2,mem_shutter_led_struct_app_led
+	setsect 0,0x1a0
+	setsect 1,0x68
+	setsect 2,0x00
+	setsect 3,0x00
+	store 8,mem_shutter_led_struct_app_led_on_time
+	setarg 0x0301
+	store 2,mem_shutter_power_off_led_style
+	setsect 0,0x1a0
+	setsect 1,0xe8
+	setsect 2,0x00
+	setsect 3,0x00
+	store 8,mem_shutter_power_off_led_style_on_time
+	setarg 0x000e
+	store 2,mem_ble_shutter_reconn_adv_interval
+	setarg 0x0140
+	store 2,mem_ble_shutter_discovery_adv_interval
+	store 2,mem_le_adv_interval
+	setarg 0x0050
+	store 2,mem_ble_shutter_reconn_timeout
+	jam 0x07,mem_le_adv_channel_map
+	jam 0x00,mem_le_adv_enable
+	setsect 0,0xfb
+	setsect 1,0x2c212
+	setsect 2,0x800f
+	setsect 3,0x21
+	store 8,mem_local_rx_max_octets
+	setsect 0,0x0bb8
+	setsect 1,0x02ee
+	store 4,mem_ble_shutter_discovery_timeout
+	setarg mem_queue_each_size
+	store 2,mem_queue_ptr
+	setarg 0x2001
+	store 2,mem_queue_each_size
+	jam 0x1f,mem_le_adv_data_len
+	setsect 0,0x10102
+	setsect 1,0x80c1
+	setsect 2,0x18120
+	setsect 3,0x640c
+	store 9,mem_le_adv_data
+	setsect 0,0x3c1
+	istore 2,contw
+	jam 0x1f,mem_le_scan_data_len
+	setsect 0,0x2090d
+	setsect 1,0x34c15
+	setsect 2,0x28532
+	setsect 3,0x1d1d5
+	store 9,mem_le_scan_data
+	setsect 0,0x26574
+	setsect 1,0x1c
+	istore 3,contw
+	setarg mem_shutter_keyscan
+	store 2,mem_keyscan_ptr
+	jam 0x02,mem_shutter_key_num
+	setarg mem_shutter_nv_data
+	store 2,mem_nv_data_ptr
+	jam 0x05,mem_nv_data_number
+	fetch 1,mem_shutter_dy_conf
+	beq SHUTTER_TYPE,shutter_le_uuid_table_conf
+	beq SHUTTER_DY_TYPE,shutter_dy_le_uuid_table_conf
+	rtn	
+	
+
+/*************shutter default_init ending*********************/
+
+
+
+
+
+else
+	branch assert
+	
+endif
Index: program/app_shutter_dy.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_shutter_dy.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/app_shutter_dy.prog	(working copy)
@@ -0,0 +1,1416 @@
+
+ifdef COMPILE_SHUTTER
+
+/*************dy config*********************/
+shutter_dy_6_key_conf:
+	//6key
+	fetch SHUTTER_SIX_KEY,mem_shutter_dy_key_conf
+	store SHUTTER_SIX_KEY,mem_shutter_key_conf0
+	jam SHUTTER_SIX_KEY,mem_shutter_key_num
+	setarg mem_shutter_key_num
+	store 2,mem_keyscan_ptr
+	rtn
+
+shutter_dy_7_key_conf:
+	//7key
+	fetch SHUTTER_SEVEN_KEY,mem_shutter_dy_key_conf
+	store SHUTTER_SEVEN_KEY,mem_shutter_key_conf0
+	jam SHUTTER_SEVEN_KEY,mem_shutter_key_num
+	setarg mem_shutter_key_num
+	store 2,mem_keyscan_ptr
+	rtn
+
+shutter_dy_8_key_conf:
+	//8key
+	fetch SHUTTER_EIGHT_KEY,mem_shutter_dy_key_conf
+	store SHUTTER_EIGHT_KEY,mem_shutter_key_conf0
+	jam SHUTTER_EIGHT_KEY,mem_shutter_key_num
+	setarg mem_shutter_key_num
+	store 2,mem_keyscan_ptr
+	rtn
+
+shutter_dy_key_conf:
+	fetch 1,mem_shutter_key_num_conf
+	beq SHUTTER_SIX_KEY,shutter_dy_6_key_conf
+	beq SHUTTER_SEVEN_KEY,shutter_dy_7_key_conf
+	beq SHUTTER_EIGHT_KEY,shutter_dy_8_key_conf
+	rtn
+	
+shutter_dy_adv_conf:
+	bpatch patch14_1,mem_patch14
+	//adv data
+	fetch 8,mem_shutter_ble_discovery_time_conf
+	store 8,mem_ble_shutter_discovery_timeout
+	setarg 0x0096
+	store 2,mem_ble_shutter_reconn_timeout
+
+	fetch 7,mem_shutter_led_on_light_dark_led_conf
+	store 7,mem_shutter_led_struct_app_led
+	fetch 7,mem_shutter_led_off_light_dark_led_conf
+	store 7,mem_shutter_power_off_led_style
+	
+	fetch 4,mem_shutter_reconn_blink_on_time_conf
+	store 4,mem_ble_shutter_reconn_blink_on_time
+	fetch 4,mem_shutter_discovery_blink_on_time_conf
+	store 4,mem_ble_shutter_discovery_blink_on_time
+	/*
+	fetch 8,mem_le_dy_adv_data
+	store 8,mem_le_adv_data
+	fetch 3,mem_le_dy_adv_data+8
+	store 3,mem_le_adv_data+8
+	
+	fetch 8,mem_le_dy_scan_data
+	store 8,mem_le_scan_data
+	fetch 4,mem_le_dy_scan_data+8
+	store 4,mem_le_scan_data+8
+	*/
+	
+	setarg 0x000e
+	store 2,mem_ble_shutter_reconn_adv_interval
+	setarg 0x0140
+	store 2,mem_ble_shutter_discovery_adv_interval
+	store 2,mem_le_adv_interval
+
+//	setarg mem_shutter_le_uuid_sup	//BLE ATT LIST 
+//	store 2,mem_ui_le_uuid_table
+
+//	call shutter_load_dy_keyvalue_buffer_config_form_DataRom
+
+	fetch 8,mem_ble_shutter_dy_interval_min_new
+	store 8,mem_ble_shutter_interval_min_new
+	rtn
+
+
+
+shutter_dy_init:
+	call enable_authrom
+	rtn wake
+
+	call shutter_dy_key_conf
+	call shutter_dy_adv_conf
+
+
+	setarg shutter_dy_process_idle
+	store 2,mem_cb_idle_process
+		
+	setarg shutter_dy_process_bb_event
+	store 2,mem_cb_bb_event_process
+
+	setarg ble_shutter_dy_receive_data
+	store 2,mem_cb_att_write
+
+	setarg shutter_dy_le_bb_event_timer
+	store 2,mem_cb_event_timer
+
+	setarg shutter_dy_key_change
+	store 2,mem_cb_shutter_keycan
+
+	call shutter_common_init
+	
+	fetch 2,mem_shutter_le_pairing_handle
+ 	store 2,mem_le_pairing_handle
+	fetch 8,mem_ble_shutter_interval_min_new
+	store 8,mem_ble_shutter_interval_min
+	call shutter_dy_iphone_every_move_max_set
+	bpatch patch14_2,mem_patch14
+	branch shutter_power_switch
+
+
+shutter_dy_process_idle:
+	call shutter_dy_shutter_send_data_to_master
+	arg key_scan_timer,queue
+	call timer_check
+	nrtn blank
+	setarg 0x20
+	arg key_scan_timer,queue
+	call timer_init
+	disable user
+	call keyscan_process_lpm_before
+	branch shutter_dy_keyscan_key_process
+
+shutter_dy_iphone_every_move_max_set:	
+	setarg 0x1f
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,rega
+	increase 3,rega
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+	istoret 1,rega
+	increase 11,rega
+	arg 0xfff,pdata
+	isub temp,pdata
+	lshift4 pdata,pdata
+	istore 2,rega
+	rtn
+	
+shutter_dy_shutter_send_data_to_master:	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,shutter_dy_pop_queue_to_ble_data
+	arg mem_queue_curr_num,contw
+	arg 35,loopcnt
+	branch clear_mem
+
+shutter_dy_pop_queue_to_ble_data:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	call queue_empty
+	rtn blank
+	fetcht 4,mem_key_send_clk
+	copy clkn_bt,pdata
+	isub temp,temp
+	rtn zero
+	nbranch shutter_dy_pop_queue_to_ble_data2, positive
+	fetch 1,mem_send_data_delay
+	isub temp,null
+	rtn positive
+shutter_dy_pop_queue_to_ble_data2:
+	copy clkn_bt,pdata
+	store 4,mem_key_send_clk	
+	call queue_pop_one_byte
+	nrtn user
+	pincrease -1
+	mul32 pdata,10,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contr
+	branch le_send_notify_from_list
+
+
+shutter_dy_le_bb_event_timer:
+	call shutter_dy_shutter_1s_timer
+	call shutter_dy_link_key_loop_timer
+	call shutter_dy_long_key_volume_timer
+	call shutter_dy_iphone_move_mid_timer
+	call shutter_dy_clear_key_state_timer
+	call shutter_check_sleep_timer
+	branch shutter_dy_check_power_off_timer
+	
+shutter_dy_iphone_move_mid_timer:
+	arg mem_shutter_move_mid_timer,regc
+	arg shutter_dy_iphone_move_mid_timeout,regb
+	branch timer_single_step
+
+shutter_dy_iphone_move_mid_timeout:
+	call queue_empty
+	nrtn blank
+	fetch 2,mem_key_value_xmem
+	nrtn blank
+shutter_dy_iphone_move_mid:
+	call shutter_dy_check_iphone
+	branch shutter_dy_android_like_loaction_mid,blank
+	copy queue,pdata
+	compare 0x04,pdata,0x07 //SHUTTER_UP_KEY_NUM
+	branch shutter_dy_iphone_up_mid,true
+
+	copy queue,pdata
+	compare 0x01,pdata,0x07 //SHUTTER_LIKE_KEY_NUM
+	branch shutter_dy_iphone_like_mid,true
+	arg mem_shutter_iphone_move_mid,regc
+	branch push_buffer_in_queue
+
+shutter_dy_android_like_loaction_mid:
+	arg mem_shutter_android_move_mid,regc
+	branch push_buffer_in_queue
+
+shutter_dy_iphone_up_mid:
+	arg mem_shutter_iphone_up_mid,regc
+	branch push_buffer_in_queue
+
+shutter_dy_iphone_like_mid:
+	arg mem_shutter_iphone_like_mid,regc
+	branch push_buffer_in_queue
+
+shutter_dy_clear_key_state_timer:
+	arg mem_shutter_like_timeout,regc
+	arg shutter_dy_clear_key_state_timeout,regb
+	branch timer_single_step
+
+shutter_dy_clear_key_state_timeout:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,loopcnt
+	arg mem_shutter_key_state1,contw
+	branch clear_mem
+
+
+shutter_dy_check_power_off_timer:
+	arg mem_shutter_power_off_timer,regc
+	arg shutter_dy_check_power_off_timeout,regb
+	branch timer_single_step
+shutter_dy_check_power_off_timeout:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,shutter_wait_power_off
+	branch app_enter_hibernate
+
+shutter_dy_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,ble_shutter_dy_process_baseband_connect
+	beq BT_EVT_LE_DISCONNECTED,ble_shutter_dy_process_baseband_disconnect
+	beq BT_EVT_LE_PAIRING_SUCCESS,ble_shutter_dy_pairing_success
+	rtneq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP
+	beq BT_EVT_LE_START_ENC,shutter_dy_le_find_service_hand_by_uuid
+	branch shutter_process_bb_event
+
+ble_shutter_dy_pairing_success:
+	jam 1,mem_shutter_pairing_success
+	call shutter_dy_clear_move_config
+//	setarg ANDROID_INITIAL_MOVE_X
+	fetch 2,mem_android_initial_move_x
+	store 2, mem_shutter_move_data_x
+//	arg ANDROID_INITIAL_MOVE_Y,temp
+	fetcht 2,mem_android_initial_move_y
+	setarg 0xfff
+	isub temp,pdata
+	store 2, mem_shutter_move_data_y
+	rtn
+
+ble_shutter_dy_process_baseband_disconnect:
+	jam 0,mem_shutter_le_conned
+	jam 0,mem_shutter_pairing_success
+	call shutter_dy_move_mode_disable
+	call shutter_dy_over_clear
+	branch ble_shutter_process_baseband_disconnect
+	
+ble_shutter_dy_process_baseband_connect:
+	copy clkn_bt,pdata
+	store 4,mem_key_send_clk
+	call shutter_dy_remote_not_iphone
+	branch ble_shutter_process_baseband_connect
+	
+
+shutter_dy_check_send_data:
+	disable user2
+	fetch 2,mem_shutter_sleep_timeout
+	store 2,mem_shutter_sleep_timer
+	call shutter_check_bluetooth_conn
+	branch shutter_change_bluetooth_status_bt_disconn,user
+	call shutter_check_data_enable
+	nrtn user
+	branch enable_user2
+
+shutter_dy_over_clear:
+	jam 0,mem_last_press_key_value
+	rtn
+
+shutter_dy_key_value_filter:
+	copy queue,pdata
+	rtnne SHUTTER_LIKE_KEY_NUM
+	branch shutter_dy_key_press_next
+
+shutter_dy_key_change:
+	call shutter_dy_check_send_data
+	nrtn user2 
+	deposit rega
+	branch shutter_dy_shutter_key_release,blank//no data release
+shutter_dy_key_press:
+	bpatch patch14_3,mem_patch14
+	fetch 1,mem_shutter_link_loop_flag
+	nbranch shutter_dy_key_value_filter,blank
+shutter_dy_key_press_next:
+	jam 1,mem_shutter_key_pressed
+	call app_led_on
+	call shutter_dy_key_press_clk
+	call shutter_dy_jude_queue_size
+	branch shutter_dy_over_clear,positive
+	copy queue,pdata
+	fetcht 1,mem_last_press_key_value
+	isub temp,null
+	ncall shutter_dy_iphone_check_move_mid,zero
+	copy queue,pdata
+	store 1,mem_last_press_key_value
+	fetcht 1,mem_move_mode_key_index
+	isub temp,null
+	branch shutter_dy_key_move_to_specify_location,zero
+	fetch 1,mem_move_mode_trigger_enable
+	nbranch shutter_dy_move_set,blank
+shutter_dy_page_set:
+	call shutter_dy_le_get_press_ptr
+	arg MAX_QUEUE_NEW_PRESS,pdata
+	branch shutter_dy_push_queue_press_or_release
+
+shutter_dy_move_set:
+	call shutter_dy_jude_clear_move_config
+	copy queue,pdata
+	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_page_set
+	call shutter_dy_check_move_data
+	branch shutter_dy_move_to_specify_location
+
+shutter_dy_key_move_to_specify_location:
+	jam 1,mem_shutter_first_move
+	branch shutter_dy_move_to_specify_location
+
+shutter_dy_iphone_check_move_mid:
+	bpatch patch14_4,mem_patch14
+	fetch 1,mem_move_mode_trigger_enable
+	branch shutter_dy_iphone_move_mid,blank
+	copy queue,pdata
+	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_iphone_move_mid
+	rtn
+shutter_dy_key_press_clk:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,pdata
+	imul32 queue,pdata
+	arg mem_shutter_key_state0,regc
+	iadd regc,regc
+	copy clkn_bt,pdata
+	istore KEY_STATE_PRESS_CLK_LENGTH,regc
+	increase KEY_STATE_PRESS_COUNT_OFFSET,regc
+	ifetch 1,regc
+	increase 1,pdata
+	istore 1,regc
+	rtn
+shutter_dy_shutter_key_release:
+	bpatch patch14_5,mem_patch14
+	fetch 1,mem_move_mode_trigger_enable
+	call shutter_dy_key_release_led,blank
+shutter_dy_shutter_key_release_time:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,pdata
+	imul32 queue,pdata
+	arg mem_shutter_key_state0,regc
+	iadd regc,regc
+	ifetcht  4,regc
+	sub temp,0,null
+	rtn zero //already release
+	copy clkn_bt,pdata
+	isub temp,temp
+	ncall ui_timer_timeout,positive
+	add regc,KEY_STATE_LONGPRESS_OFFSET,contr
+	ifetch 1,contr
+	nbranch shutter_dy_push_queue_long_release, blank
+	increase KEY_STATE_RELEASE_CLK_OFFSET,regc
+	copy clkn_bt,pdata
+	istore KEY_STATE_RELEASE_CLK_LENGTH,regc
+	rtn
+
+shutter_dy_key_release_led:
+	fetch 1,mem_shutter_link_loop_flag
+	nbranch app_led_on,blank
+	branch app_led_off
+
+shutter_dy_push_queue_release:
+	add regc,4,contr
+	ifetch 1,contr
+	branch shutter_dy_push_queue_release1
+
+shutter_dy_push_queue_release1:
+	call shutter_clear_dy_key_state
+	fetch 1,mem_move_mode_trigger_enable
+	nbranch shutter_dy_move_mode_queue_release,blank
+shutter_dy_push_queue_release1_next:
+	call shutter_dy_jude_queue_size
+	branch shutter_dy_over_clear,positive
+	call shutter_dy_le_get_release_ptr
+	copy queue,pdata
+	beq SHUTTER_PHOTO_KEY_NUM,shutter_dy_le_get_release_ptr_volume
+	arg MAX_QUEUE_NUM_RELEASE,pdata
+shutter_dy_push_queue_press_or_release:
+	imul32 queue,pdata
+	iadd regc,regc
+	branch push_buffer_in_queue
+
+shutter_dy_move_mode_queue_release:
+	copy queue,pdata
+	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_push_queue_release1_next
+	beq SHUTTER_PHOTO_KEY_NUM,shutter_dy_push_queue_release1_next
+	rtn
+	
+shutter_dy_jude_queue_size:
+	call queue_get_size
+	ifetcht 1,contr
+	isub temp,pdata
+	sub pdata,MAX_QUEUE_NEW_PRESS,null
+	rtn
+	
+shutter_dy_push_queue_long_release:
+	jam 1,mem_shutter_long_key_released_flag
+	call shutter_clear_dy_key_state
+	arg mem_key0_long_release,regc
+	arg MAX_QUEUE_NUM_LONG_RELEASE,pdata
+	branch shutter_dy_push_queue_press_or_release
+	
+shutter_clear_dy_key_state:
+	arg SHUTTER_KEY_CONF_SATE_BYTES,loopcnt
+	copy regc,contw
+	branch clear_mem
+
+shutter_dy_keyscan_key_process:
+	fetch 2,mem_key_value_xmem
+	store 2,mem_key_value_retention
+	call shutter_dy_keyscan_key_process_next
+	fetch 2,mem_key_value_retention
+	store 2,mem_key_value_xmem
+	
+	arg 0,queue
+	fetch 1,mem_shutter_key_num
+	copy pdata,loopcnt
+	arg mem_shutter_key_state0,regc
+shutter_dy_keyscan_key_check_release_loop:	
+	copy loopcnt,pdata
+	store 2,mem_temp
+	copy regc,pdata
+	store 2,mem_regc
+	copy queue,pdata
+	store 2,mem_temp+2
+	call shutter_dy_keyscan_key_check_release
+	
+	fetch 2,mem_regc
+	copy pdata,regc
+	fetch 2,mem_temp+2	
+	copy pdata,queue
+	call shutter_dy_keyscan_key_check_long_press
+	
+	fetch 2,mem_temp+2
+	add pdata,1,queue
+	fetch 2,mem_regc
+	add pdata,SHUTTER_KEY_CONF_SATE_BYTES,regc
+	fetch 2,mem_temp
+	copy pdata,loopcnt
+	loop shutter_dy_keyscan_key_check_release_loop
+	rtn
+	
+shutter_dy_keyscan_key_check_long_press:
+	ifetch KEY_STATE_PRESS_CLK_LENGTH,regc
+	rtn blank
+	copy pdata,temp
+	copy clkn_bt,pdata
+	isub temp,temp	
+	nrtn positive
+	setarg 2500 //1000ms 3200
+	isub temp,null
+	rtn positive
+	copy clkn_bt,pdata
+	istore 4,regc
+	increase KEY_STATE_LONGPRESS_OFFSET,regc
+	setarg 1  //long press flag
+	istore KEY_STATE_LONGPRESS_LENGTH,regc
+	fetch 1,mem_shutter_long_key_released_flag
+	rtn blank
+	jam 0,mem_shutter_long_key_released_flag
+	bpatch patch14_6,mem_patch14
+	call shutter_dy_long_key_function
+	fetch 1,mem_move_mode_set
+	beq MOVE_COMBINE_KEY,shutter_dy_key_long_press_set_key_normal
+	beq MOVE_SINGLE_KEY,shutter_dy_key_long_press_set_move_trigger
+	rtn
+	
+shutter_dy_key_long_press_set_key_normal:
+	call shutter_dy_long_press_android_or_ios
+	arg MAX_QUEUE_NUM_LONG,pdata
+	branch shutter_dy_push_queue_press_or_release
+
+shutter_dy_key_long_press_set_move_trigger:
+	copy queue,pdata
+	fetcht 1,mem_move_mode_key_index
+	isub temp,null
+	nbranch shutter_dy_key_long_press_set_key_normal,zero	
+	fetch 1,mem_move_mode_trigger_enable
+	setflip 0,pdata
+	store 1,mem_move_mode_trigger_enable
+	nrtn blank
+shutter_dy_move_mode_disable:
+	jam 0,mem_move_mode_trigger_enable
+	branch app_led_off
+
+shutter_dy_long_press_android_or_ios:
+	arg mem_key0_long_press,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_key0_long_press_i,regc
+	rtn
+
+shutter_dy_keyscan_key_check_release:
+	add regc,KEY_STATE_RELEASE_CLK_OFFSET,regb
+	ifetch KEY_STATE_RELEASE_CLK_LENGTH,regb
+	rtn blank
+	copy pdata,temp
+	copy clkn_bt,pdata
+	isub temp,temp
+	ncall ui_timer_timeout,positive
+	setarg 1000 //100ms 320
+	isub temp,null
+	branch shutter_dy_push_queue_release
+shutter_dy_keyscan_key_process_next:
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+	rtn blank
+	
+	setarg 0
+	store 2,mem_key_value_temp
+	call keyscan_scan_key
+	nbranch lpm_button_clean_wake_lock,user
+	call lpm_button_get_wake_lock
+	disable user
+	fetch 1,mem_le_adv_enable
+	nrtn blank
+	bpatch patch14_7,mem_patch14
+	fetch 1,mem_move_mode_set
+	beq MOVE_SINGLE_KEY,shutter_dy_skip_check_combine_key
+	call shutter_dy_check_combine_key_release
+	call shutter_dy_check_combine_key	
+	rtn user
+shutter_dy_skip_check_combine_key:
+	call shutter_dy_single_key_led
+	fetch 2,mem_key_value_temp
+	store 2,mem_key_value_temp4
+	jam 0,mem_key_value_temp6
+	force 0,queue
+	branch keyscan_key_lp1
+
+shutter_dy_single_key_led:
+	fetch 1,mem_last_press_key_value
+	fetcht 1,mem_move_mode_key_index
+	isub temp,null
+	branch app_led_on,zero
+	fetch 1,mem_move_mode_trigger_enable
+	nbranch app_led_off,blank
+	rtn
+
+shutter_dy_check_combine_key:
+	arg 0,queue
+shutter_dy_check_combine_key_loop:
+	arg mem_combine_key0,regb
+	arg 2,pdata
+	imul32 queue,pdata
+	iadd regb,regb
+	ifetch 2,regb
+	
+	rtn blank
+	fetcht 2,mem_key_value_temp
+	ixor temp,null
+	branch shutter_dy_check_combine_key_parse,zero
+	increase 1,queue
+	branch shutter_dy_check_combine_key_loop
+	
+shutter_dy_check_combine_key_parse:
+	store 2,mem_combine_key_state0	
+	call app_led_on
+	arg mem_combine_key0_press,regc
+	arg MAX_QUEUE_NUM_COMBINEKEY,pdata
+	imul32 queue,pdata
+	iadd regc,regc
+	call shutter_dy_push_buffer_in_queue
+	branch shutter_dy_combine_key_enableuser
+	
+shutter_dy_push_buffer_in_queue:
+	call shutter_dy_jude_clear_move_config
+	ifetch 1,regc
+	rtn blank
+	call shutter_dy_check_move_data
+shutter_dy_move_to_specify_location:
+	call shutter_dy_jude_clear_move_config
+	call shutter_dy_move_down_left_corner
+	call shutter_dy_move_x_max
+	call shutter_dy_move_y_max
+	arg 0x05,pdata
+	call queue_push_one_byte
+	call shutter_dy_check_iphone
+	rtn blank
+	jam 120,mem_send_data_delay
+	arg 0x06,pdata
+	branch queue_push_one_byte
+
+shutter_dy_move_down_left_corner_count_set:
+	fetcht 1,mem_shutter_back_count
+	call shutter_dy_check_iphone
+	rtn blank
+	fetcht 1,mem_shutter_iphone_beyond_y_count
+	increase 1,temp
+	fetch 1,mem_shutter_first_move
+	rtn blank
+	fetcht 1,mem_shutter_back_count
+	jam 0,mem_shutter_first_move
+	rtn
+
+shutter_dy_move_down_left_corner:
+	call shutter_dy_move_down_left_corner_count_set
+	copy temp,pdata
+	rtn blank
+	store 1,mem_shutter_back_count_cache
+shutter_dy_move_down_left_corner_loop:
+	arg 0x13,pdata
+	call queue_push_one_byte
+	fetch 1,mem_shutter_back_count_cache
+	increase -1,pdata
+	store 1,mem_shutter_back_count_cache
+	rtn blank
+	branch shutter_dy_move_down_left_corner_loop
+
+shutter_dy_move_x_max:
+	fetch 1,mem_shutter_iphone_beyond_x_count
+	rtn blank
+	store 1,mem_shutter_iphone_beyond_x_cache
+shutter_dy_move_x_max_number:
+	arg 0x20,pdata
+	call queue_push_one_byte
+	fetch 1,mem_shutter_iphone_beyond_x_cache
+	increase -1,pdata
+	store 1,mem_shutter_iphone_beyond_x_cache
+	rtn blank
+	branch shutter_dy_move_x_max_number
+
+shutter_dy_move_y_max:
+	fetch 1,mem_shutter_iphone_beyond_y_count
+	rtn blank
+	store 1,mem_shutter_iphone_beyond_y_cache
+shutter_dy_move_y_max_number:
+	arg 0x21,pdata
+	call queue_push_one_byte
+	fetch 1,mem_shutter_iphone_beyond_y_cache
+	increase -1,pdata
+	store 1,mem_shutter_iphone_beyond_y_cache
+	rtn blank
+	branch shutter_dy_move_y_max_number
+
+shutter_dy_check_combine_key_release:
+	fetch 2,mem_combine_key_state0
+	rtn blank
+	fetcht 2,mem_key_value_temp
+	sub temp,0,null
+	branch shutter_dy_check_combine_key_release_all,zero
+	isub temp,null
+	rtn zero
+	storet 2,mem_combine_key_state0
+	fetch 2,mem_combine_key_release_value
+	isub temp,null
+	call app_led_off,zero
+shutter_dy_combine_key_enableuser:
+	fetch 2,mem_key_value_temp
+	store 2, mem_key_value_retention
+	branch enable_user
+shutter_dy_check_combine_key_release_all:
+	jam 1,mem_shutter_long_key_released_flag
+	call app_led_off
+	arg mem_combine_key_release,regc
+	call shutter_dy_push_buffer_in_queue
+	setarg 0
+	store 2,mem_combine_key_state0
+	jam 50,mem_shutter_1s_timer
+	call shutter_dy_combine_key_enableuser
+	fetch 1,mem_shutter_key_num
+	mul32 pdata,SHUTTER_KEY_CONF_SATE_BYTES,loopcnt
+	arg mem_shutter_key_state0,contw
+	branch clear_mem
+shutter_dy_check_move_data:
+	bpatch patch15_0,mem_patch15
+	fetch 1,mem_move_mode_set
+	beq MOVE_SINGLE_KEY,shutter_dy_check_move_data_single_key
+	beq MOVE_COMBINE_KEY,shutter_dy_check_move_data_combine_key
+	rtn
+shutter_dy_check_move_data_single_key:
+	copy queue,pdata
+	beq SHUTTER_LEFT_KEY_NUM,shutter_dy_move_left
+	beq SHUTTER_RIGHT_KEY_NUM,shutter_dy_move_right
+	beq SHUTTER_UP_KEY_NUM,shutter_dy_move_up
+	beq SHUTTER_DOWN_KEY_NUM,shutter_dy_move_down
+	rtn
+shutter_dy_check_move_data_combine_key:
+	ifetch 1,regc
+	beq 0x01,shutter_dy_move_left
+	beq 0x02,shutter_dy_move_right
+	beq 0x03,shutter_dy_move_up
+	beq 0x04,shutter_dy_move_down
+	beq 0x05,shutter_dy_get_move_data
+	rtn
+shutter_dy_get_move_data:
+	call shutter_dy_check_iphone
+	nbranch shutter_dy_get_move_data_iphone,blank
+	setarg 4
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contw
+	increase 3,contw
+	fetch 3,mem_shutter_move_data
+	istore 3,contw
+	rtn
+shutter_dy_get_move_data_iphone:
+	setarg 4
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contw
+	increase 3,contw
+	fetch 2,mem_shutter_move_data_x
+	istore 3,contw
+	increase 7,contw
+	fetch 2,mem_shutter_move_data_y
+	lshift4 pdata,pdata
+	lshift8 pdata,pdata
+	istore 3,contw
+	rtn
+	//branch p_store_move_config_info
+shutter_dy_move_x_empty_check:
+	fetch 1,mem_shutter_iphone_beyond_x_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_shutter_iphone_beyond_x_count
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,pdata
+	rtn
+shutter_dy_every_move_size_set:
+	arg ANDROID_EVERY_MOVE_SIZE,temp
+	call shutter_dy_check_iphone
+	rtn blank
+	arg IPHONE_EVERY_MOVE_SIZE,temp
+	rtn
+shutter_dy_move_left:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_x
+	isub temp,null
+	ncall shutter_dy_move_x_empty_check,positive
+	nrtn positive//if move_x to zero,rtn
+	isub temp,pdata
+shutter_dy_move_store_x:
+	store 2,mem_shutter_move_data_x
+shutter_dy_move_data_store:
+	bpatch patch15_1,mem_patch15
+	fetch 2,mem_shutter_move_data_x
+	fetcht 2,mem_shutter_move_data_y
+	lshift8 temp,temp
+	lshift4 temp,temp
+	iadd temp,pdata
+	store 3,mem_shutter_move_data
+	branch shutter_dy_get_move_data
+shutter_dy_move_x_check_max:
+	fetch 2,mem_shutter_move_data_x
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+	isub temp,temp
+	nrtn positive
+	copy temp,pdata
+	fetcht 1,mem_shutter_iphone_beyond_x_count
+	sub temp,0x03,null
+	branch shutter_dy_clear_move_x,zero
+	increase 1,temp
+	storet 1,mem_shutter_iphone_beyond_x_count
+	branch shutter_dy_move_store_x
+shutter_dy_clear_move_x:
+	jam 0,mem_shutter_iphone_beyond_x_count
+	arg 0,pdata
+	branch shutter_dy_move_store_x
+shutter_dy_move_right:
+	call shutter_dy_check_iphone
+	ncall shutter_dy_move_x_check_max,blank
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_x
+shutter_dy_move_right_next:
+	iadd temp,pdata
+	arg 0xfff,temp
+	call ceiling
+	branch shutter_dy_move_store_x
+	
+shutter_dy_move_up:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+	isub temp,pdata
+	store 2,mem_shutter_move_data_y
+shutter_dy_move_y_check_max:
+	fetcht 2,mem_shutter_move_data_y
+	call shutter_dy_check_iphone
+	branch shutter_dy_move_data_store,blank
+	setarg 0xfff
+	isub temp,pdata
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+	isub temp,temp
+	nbranch shutter_dy_move_data_store, positive
+	setarg 0xfff
+	isub temp,pdata
+	fetcht 1,mem_shutter_iphone_beyond_y_count
+	sub temp,0x05,null
+	branch shutter_dy_clear_move_y,zero
+	increase 1,temp
+	storet 1,mem_shutter_iphone_beyond_y_count
+	branch shutter_dy_move_store_y
+shutter_dy_clear_move_y:
+	jam 0,mem_shutter_iphone_beyond_y_count
+shutter_dy_android_move_y_empty_check:
+	setarg 0xfff
+	branch shutter_dy_move_store_y
+	
+shutter_dy_move_y_empty_check:
+	call shutter_dy_check_iphone
+	branch shutter_dy_android_move_y_empty_check,blank
+	fetch 1,mem_shutter_iphone_beyond_y_count
+	branch shutter_dy_android_move_y_empty_check, blank
+	increase -1,pdata
+	store 1,mem_shutter_iphone_beyond_y_count
+	setarg 0xfff
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+	isub temp,pdata
+	iadd rega,pdata
+shutter_dy_move_store_y:	
+	store 2,mem_shutter_move_data_y
+	branch shutter_dy_move_data_store
+shutter_dy_move_down:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+shutter_dy_move_down_next:
+	iadd temp,pdata
+	arg 0xfff,temp
+	isub temp,rega
+	branch shutter_dy_move_y_empty_check,positive
+	branch shutter_dy_move_store_y
+	
+
+ble_shutter_dy_receive_data:
+	fetch 2,mem_le_att_handle
+	beq GATT_KEYBOARD_WRITE_HANDLE_NEW,ble_shutter_process_reconnect_complete
+	rtn
+
+shutter_dy_le_find_service_hand_by_uuid: 
+	arg 23,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	istore 1,contw
+	setarg 0x0001		//start handle
+	istore 2,contw
+	setarg 0xffff		//end handle
+	istore 2,contw
+	setarg 0x2800		//uuid type
+	istore 2,contw
+	arg mem_dy_le_search_service_uuid,contr
+	branch memcpy16
+
+
+shutter_dy_le_parse_att:
+	bpatch patch15_2,mem_patch15
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,shutter_dy_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_ERROR_RESPONSE,shutter_dy_le_parse_error_rsp
+	beq ATTOP_READ_REQUEST,shutter_dy_le_parse_att_read_request
+	beq ATTOP_READ_BLOB_REQUEST,shutter_dy_le_parse_att_read_blob_request
+	branch le_parse_att2
+
+shutter_dy_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	call shutter_dy_check_iphone
+	nbranch shutter_dy_le_parse_att_read_blob_request_ios,blank
+	fetcht 2,mem_shutter_le_map_len_android
+	branch shutter_dy_le_parse_att_read_blob_request2
+	
+shutter_dy_le_parse_att_read_blob_request_ios:
+	fetcht 2,mem_shutter_le_map_len_ios
+shutter_dy_le_parse_att_read_blob_request2:
+	arg mem_shutter_le_hid_map,contr
+	call store_contr
+	copy temp,pdata
+	isub rega,pdata
+	nbranch le_send_att_error_response_notfound,positive
+	increase 1,pdata
+	sub pdata,23,null
+	branch le_send_att_read_blob_response_less,positive
+	force 23,pdata
+	branch le_send_att_read_blob_response_less
+
+shutter_dy_le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,shutter_dy_le_send_att_read_response_check_auth
+	branch le_send_att_read_response
+shutter_dy_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	call le_check_encrypt_state
+	nbranch shutter_dy_le_send_att_read_response,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+shutter_dy_le_send_att_read_response:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	arg mem_shutter_le_hid_map,contr
+	force 23,pdata
+	branch le_send_att_read_response_less
+
+shutter_dy_le_parse_att_find_by_type_value_rsp:
+shutter_dy_le_remote_iphone:
+	bpatch patch15_3,mem_patch15
+	jam 5,mem_shutter_back_count
+	jam 1,mem_iphone_flag
+	jam 1,mem_last_shutter_le_iphone_flag
+	jam 240,mem_send_data_delay
+	jam 10,mem_shutter_move_mid_timer
+	jam 1,mem_shutter_first_move
+	call shutter_dy_load_move_config_info
+	fetch 1,mem_shutter_pairing_success
+	rtn blank
+	call shutter_dy_clear_move_config
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+//	setarg IPHONE_INITIAL_MOVE_X
+	fetch 2,mem_iphone_initial_move_x
+	arg mem_shutter_move_data_x,rega
+	arg mem_shutter_iphone_beyond_x_count,regb
+	call shutter_dy_iphone_move_initial_set
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+//	setarg IPHONE_INITIAL_MOVE_Y
+	fetch 2,mem_iphone_initial_move_y
+	arg mem_shutter_move_data_y,rega
+	arg mem_shutter_iphone_beyond_y_count,regb
+	call shutter_dy_iphone_move_initial_set
+	setarg 0xfff
+	fetcht 2,mem_shutter_move_data_y
+	isub temp,pdata
+	store 2,mem_shutter_move_data_y
+	rtn
+shutter_dy_iphone_move_initial_set:
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	remainder temp
+	istore 1,regb
+	istoret 2,rega
+	rtn
+shutter_dy_le_parse_error_rsp:
+	increase -2,contr
+	ifetch 1,contr
+	beq ATTOP_FIND_BY_TYPE_VALUE_REQUEST,shutter_dy_not_iphone_read_conf
+	rtn
+shutter_dy_remote_not_iphone:
+	jam 1,mem_shutter_back_count
+	jam 0,mem_iphone_flag
+	jam 0,mem_last_shutter_le_iphone_flag
+	jam 10,mem_send_data_delay
+	rtn
+
+shutter_dy_not_iphone_read_conf:
+	call shutter_dy_remote_not_iphone
+	branch shutter_dy_load_move_config_info
+	
+shutter_dy_check_iphone:
+	fetch 1,mem_iphone_flag
+	rtn
+
+
+shutter_dy_le_get_press_ptr:	
+	arg mem_dy_key0_press,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	jam 120,mem_send_data_delay
+	arg mem_key0_press_i,regc
+	rtn
+shutter_dy_le_get_release_ptr:	
+shutter_dy_le_get_release_ptr_set:
+	arg mem_key0_release_new,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_key0_release_new_i,regc
+	jam 12,mem_send_data_delay
+	copy queue,pdata
+	rtneq SHUTTER_LIKE_KEY_NUM
+	rtn
+shutter_dy_le_get_release_ptr_volume:
+	bpatch patch15_4,mem_patch15
+	fetch 1,mem_key3_press_count
+	setflip 0,pdata
+	store 1,mem_key3_press_count
+	beq 0,shutter_dy_le_get_release_ptr_set_volume_inc
+	beq 1,shutter_dy_le_get_release_ptr_set_volume_dec
+	rtn
+shutter_dy_le_get_release_ptr_set_volume_dec:
+	call shutter_dy_le_get_vol_dec_ptr
+	branch push_buffer_in_queue
+shutter_dy_le_get_release_ptr_set_volume_inc:
+	call shutter_dy_le_get_vol_inc_ptr
+	branch push_buffer_in_queue
+shutter_dy_le_get_vol_inc_ptr:
+	arg mem_key3_release_new,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_key3_release_new_i,regc
+	rtn
+shutter_dy_le_get_vol_dec_ptr:
+	arg mem_key3_release_new_t,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_key3_release_new_i_t,regc
+	rtn
+
+
+shutter_dy_long_key_function:
+	copy queue,pdata
+	beq SHUTTER_LIKE_KEY_NUM,shutter_dy_link_key_long_press
+	beq SHUTTER_DOWN_KEY_NUM,shutter_dy_loop_send_volume_dec_page
+	beq SHUTTER_UP_KEY_NUM,shutter_dy_loop_send_volume_inc_page
+	rtn
+
+//volume timer
+shutter_dy_long_key_volume_timer:
+	arg mem_shutter_volume_timer,regc
+	arg shutter_dy_long_key_volume_timeout,regb
+	branch timer_single_step
+shutter_dy_long_key_volume_timeout:
+	jam 4, mem_shutter_volume_timer
+	fetch 1,mem_key3_press_count
+	branch shutter_dy_loop_send_volume_inc_page,blank
+	branch shutter_dy_loop_send_volume_dec_page
+	
+
+shutter_dy_loop_send_volume_inc_page:
+	jam 0,mem_key3_press_count
+	jam 4, mem_shutter_volume_timer
+	arg mem_key4_long_press,regc
+	branch push_buffer_in_queue
+
+shutter_dy_loop_send_volume_dec_page:
+	jam 1,mem_key3_press_count
+	jam 4, mem_shutter_volume_timer
+	arg mem_key2_long_press,regc
+	branch push_buffer_in_queue
+shutter_dy_clear_volume_timer:
+	jam 0,mem_key3_press_count
+	jam 0, mem_shutter_volume_timer
+	rtn
+
+//link timer
+shutter_dy_link_key_loop_timer:
+	arg mem_shutter_link_timer,regc
+	arg shutter_dy_link_key_loop_timeout,regb
+	branch timer_single_step
+shutter_dy_link_key_loop_timeout:
+	jam 2, mem_shutter_link_timer
+	call shutter_dy_link_data_android_or_ios
+	branch push_buffer_in_queue
+
+shutter_dy_link_data_android_or_ios:
+	arg mem_shutter_link_data,regc
+	call shutter_dy_check_iphone
+	rtn blank
+	arg mem_shutter_link_data_i,regc
+	rtn
+
+shutter_dy_link_key_long_press:
+	fetch 1,mem_shutter_link_loop_flag
+	nbranch shutter_dy_clear_link_key_timer,blank
+	jam 1,mem_shutter_link_loop_flag
+	jam 2, mem_shutter_link_timer
+	rtn
+	
+shutter_dy_clear_link_key_timer:
+	jam 0,mem_shutter_link_loop_flag
+	jam 0, mem_shutter_link_timer
+	rtn
+
+shutter_dy_jude_clear_move_config:
+	fetch 1,mem_shutter_le_conned
+	nrtn blank
+	jam 1,mem_shutter_le_conned
+	branch shutter_dy_move_data_store
+
+shutter_dy_clear_move_config:
+	setarg 0
+	store 7,mem_move_config
+	rtn
+
+shutter_dy_write_otp_convert_data:
+	call shutter_dy_check_iphone
+	beq 0x01,shutter_dy_store_ios_config_data
+	beq 0x00,shutter_dy_store_android_config
+	rtn
+
+shutter_dy_read_otp_convert_data:
+	fetch 1,mem_otp_last_shutter_le_iphone_flag	//鍒ゆ柇鏄惁鏄疘OS
+	beq 0x01,shutter_dy_get_ios_config
+	beq 0x00,shutter_dy_get_android_config
+	rtn
+
+shutter_dy_store_ios_config_data:
+	fetch 1,mem_shutter_iphone_beyond_x_count
+	mul32 pdata,IPHONE_ONCE_MAX_MOVE_VALUE,pdata
+	copy pdata,temp
+	fetch 2,mem_shutter_move_data_x
+	iadd temp,pdata	//pdata = pdata+temp
+	store 2,mem_otp_shutter_move_data_x
+
+	fetch 1,mem_shutter_iphone_beyond_y_count
+	mul32 pdata,IPHONE_ONCE_MAX_MOVE_VALUE,pdata
+	copy pdata,temp
+	fetch 2,mem_shutter_move_data_y
+	copy pdata,rega
+	setarg 0xfff
+	isub rega,pdata	//pdata = pdata-rega
+	iadd temp,pdata	//pdata = pdata+temp
+	store 2,mem_otp_shutter_move_data_y
+
+	call shutter_dy_check_iphone
+//	fetch 1,mem_last_shutter_le_iphone_flag
+	store 1,mem_otp_last_shutter_le_iphone_flag
+	rtn
+
+shutter_dy_store_android_config:
+	fetch 2,mem_shutter_move_data_x
+	store 2,mem_otp_shutter_move_data_x
+	fetch 2,mem_shutter_move_data_y
+	store 2,mem_otp_shutter_move_data_y
+	call shutter_dy_check_iphone
+	store 1,mem_otp_last_shutter_le_iphone_flag
+	rtn
+shutter_dy_get_ios_config:
+	fetch 2,mem_otp_shutter_move_data_x
+	div pdata,IPHONE_ONCE_MAX_MOVE_VALUE
+	call wait_div_end
+	quotient pdata
+	remainder temp
+	store 1,mem_shutter_iphone_beyond_x_count
+	copy temp,pdata
+	store 2,mem_shutter_move_data_x
+	fetch 2,mem_otp_shutter_move_data_y
+	div pdata,IPHONE_ONCE_MAX_MOVE_VALUE
+	call wait_div_end
+	quotient pdata
+	remainder temp
+	store 1,mem_shutter_iphone_beyond_y_count
+	//copy temp,pdata
+	setarg 0xfff
+	isub temp,pdata	//pdata = pdata-temp
+	store 2,mem_shutter_move_data_y
+//	fetch 1,mem_otp_last_shutter_le_iphone_flag
+//	store 1,mem_last_shutter_le_iphone_flag
+	rtn
+shutter_dy_get_android_config:
+	fetch 2,mem_otp_shutter_move_data_x
+	store 2,mem_shutter_move_data_x
+	fetch 2,mem_otp_shutter_move_data_y
+	store 2,mem_shutter_move_data_y
+//	fetch 1,mem_otp_last_shutter_le_iphone_flag
+//	store 1,mem_last_shutter_le_iphone_flag
+	rtn
+	
+shutter_dy_store_move_config_info:
+	branch shutter_dy_campare_effective_addr_write_otp
+
+shutter_dy_load_move_config_info:
+	branch shutter_dy_campare_effective_addr_read_otp
+
+//寰幆鎵炬暟鎹紝鍒ゆ柇鏄惁涓虹┖鏁版嵁
+shutter_dy_shutter_uart_config_loop:
+	call shutter_dy_update_read_check_addr
+	fetch 2,mem_otp_read_offset_addr
+	call shutter_dy_shutter_read_move_config_from_otp_addr
+	jam 0,mem_shutter_first_read_flag
+	fetch 5,mem_otp_move_config
+	jam 0,mem_shutter_valid_data_flag
+	jam 0,mem_shutter_temp_count
+	call shutter_dy_campare_otp_data
+	fetch 1,mem_shutter_temp_count
+	rtneq 0
+	branch shutter_dy_shutter_uart_config_loop
+
+//绗竴娆′粠0x1fe0澶勫線鍓嶈
+shutter_dy_shutter_get_first_read_addr:
+//	setarg SHUTTER_EFUSE_START_OFFECT
+	fetch 2,mem_shutter_efuse_start_offset
+	increase -5,pdata
+	store 2,mem_otp_read_offset_addr
+	rtn
+
+//涓嬫璇伙紝鏇存柊mem_otp_read_offset_addr 鍦板潃
+shutter_dy_shutter_next_read_addr:
+	fetch 2,mem_otp_read_offset_addr
+	increase -5,pdata
+	store 2,mem_otp_read_offset_addr
+	rtn
+
+//涓婃璇伙紝鏇存柊mem_otp_read_offset_addr 鍦板潃
+shutter_dy_shutter_last_read_addr:
+	fetch 2,mem_otp_read_offset_addr
+	pincrease 5
+	store 2,mem_otp_read_offset_addr
+	rtn
+
+shutter_dy_shutter_read_ios_android_addr:
+	fetch 2,mem_otp_read_ios_android_addr
+	pincrease 5
+	store 2,mem_otp_read_ios_android_addr
+	//妫鏌ュ湪鍖洪棿鍐
+	fetch 2,mem_otp_read_ios_android_addr
+	copy pdata, temp
+//	setarg SHUTTER_EFUSE_START_OFFECT
+	fetch 2,mem_shutter_efuse_start_offset
+	isub temp,pdata	//pdata = pdata-temp
+	arg SHUTTER_PARA_TOTAL_NUM,temp	//temp = 5
+	isub temp,null	//pdata = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
+//	nrtn positive
+	nbranch shutter_dy_shutter_not_find_ios_or_android,positive
+	rtn
+
+shutter_dy_update_read_check_addr:
+	fetch 1,mem_shutter_first_read_flag	//绗1娆¤鏍囪瘑
+	beq 0x01,shutter_dy_shutter_get_first_read_addr
+	beq 0x00,shutter_dy_shutter_next_read_addr
+	rtn
+	
+//姣旇緝鏁版嵁锛屽垽鏂槸鍚︿负0
+shutter_dy_campare_otp_data:
+	arg 0x0,regb
+	copy regb, temp
+	fetch 2,mem_otp_shutter_move_data_x
+	icompare 0xffff,temp
+//	isub temp,pdata	//pdata = pdata-temp
+	ncall shutter_dy_set_shutter_valid_data_flag,true
+	arg 0x0,regb
+	copy regb, temp
+	fetch 2,mem_otp_shutter_move_data_y
+	icompare 0xffff,temp
+	ncall shutter_dy_set_shutter_valid_data_flag,true
+	arg 0x0,regb
+	copy regb, temp
+	fetch 1,mem_otp_last_shutter_le_iphone_flag
+	icompare 0xff,temp
+	ncall shutter_dy_set_shutter_valid_data_flag,true
+	rtn
+
+//mem_shutter_temp_count +1 鎿嶄綔
+shutter_dy_set_shutter_valid_data_flag:
+	fetch 1,mem_shutter_temp_count
+	pincrease 1
+	store 1,mem_shutter_temp_count
+	rtn
+shutter_dy_shutter_judge_ios_or_android:
+	jam 1,mem_shutter_temp_count
+	call shutter_dy_shutter_read_ios_android_addr
+	fetch 2,mem_otp_read_ios_android_addr
+	call shutter_dy_shutter_read_move_config_from_otp_addr
+	call shutter_dy_check_iphone
+	copy pdata, temp
+	fetch 1,mem_otp_last_shutter_le_iphone_flag
+	icompare 0xff,temp
+	call shutter_dy_clear_temp_count,true
+	
+	fetch 1,mem_shutter_temp_count
+	rtneq 0
+	branch shutter_dy_shutter_judge_ios_or_android
+
+
+shutter_dy_shutter_not_find_ios_or_android:
+	bpatch patch15_5,mem_patch15
+	call shutter_dy_clear_temp_count
+	call shutter_dy_check_iphone
+	branch shutter_dy_shutter_android_save_init_loaction,blank
+	branch shutter_dy_shutter_ios_save_init_loaction
+shutter_dy_shutter_android_save_init_loaction:
+//	setarg ANDROID_INITIAL_MOVE_X
+	fetch 2,mem_android_initial_move_x
+	store 2, mem_shutter_move_data_x
+//	arg ANDROID_INITIAL_MOVE_Y,temp
+	fetcht 2,mem_android_initial_move_y
+	setarg 0xfff
+	isub temp,pdata
+	store 2, mem_shutter_move_data_y
+	branch shutter_dy_store_move_config_info
+	
+shutter_dy_shutter_ios_save_init_loaction:
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+//	setarg IPHONE_INITIAL_MOVE_X
+	fetch 2,mem_iphone_initial_move_x
+	arg mem_shutter_move_data_x,rega
+	arg  mem_shutter_iphone_beyond_x_count,regb
+	call shutter_dy_iphone_move_initial_set
+	arg IPHONE_ONCE_MAX_MOVE_VALUE,temp
+//	setarg IPHONE_INITIAL_MOVE_Y
+	fetch 2,mem_iphone_initial_move_y
+	arg mem_shutter_move_data_y,rega
+	arg  mem_shutter_iphone_beyond_y_count,regb
+	call shutter_dy_iphone_move_initial_set
+	setarg 0xfff
+	fetcht 2,mem_shutter_move_data_y
+	isub temp,pdata
+	store 2,mem_shutter_move_data_y
+	branch shutter_dy_store_move_config_info
+	
+shutter_dy_clear_temp_count:
+	jam 0,mem_shutter_temp_count
+	rtn
+//鍙栨湁鏁堝湴鍧缁檓em_otp_write_offset_addr
+shutter_dy_campare_effective_addr_read_otp:
+	bpatch patch15_6,mem_patch15
+	jam 1,mem_shutter_first_read_flag
+	call shutter_dy_shutter_uart_config_loop
+	//鑾峰緱浜嗗湴鍧
+	//鏍￠獙鏄惁鏄秺鐣
+//	setarg SHUTTER_EFUSE_END_OFFECT
+	fetch 2,mem_shutter_efuse_end_offset
+	copy pdata, temp
+	fetch 2,mem_otp_read_offset_addr
+	isub temp,pdata	//pdata = pdata-temp
+	arg 0x0,temp	//temp = 0
+	isub temp,null	//null = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
+	nrtn positive
+	fetch 2,mem_otp_read_offset_addr
+	copy pdata, temp
+//	setarg SHUTTER_EFUSE_START_OFFECT
+	fetch 2,mem_shutter_efuse_start_offset
+	increase -5,pdata
+	isub temp,pdata	//pdata = pdata-temp
+	//璇讳笂涓娆″湴鍧
+//	ncall p_shutter_last_read_addr,zero
+	fetch 2,mem_otp_read_offset_addr
+	store 2,mem_otp_read_ios_android_addr
+	call shutter_dy_shutter_judge_ios_or_android
+	fetch 2,mem_otp_read_ios_android_addr
+	ncall shutter_dy_shutter_read_move_config_from_otp_addr,zero
+	
+	//妫鏌ヤ负0鍒欎笉璧嬪
+	jam 0,mem_shutter_temp_count
+	call shutter_dy_campare_otp_data
+	fetch 1,mem_shutter_temp_count
+	rtneq 0
+	branch shutter_dy_read_otp_convert_data
+	
+//鍙栨湁鏁堝湴鍧缁檓em_otp_write_offset_addr
+shutter_dy_campare_effective_addr_write_otp:
+	bpatch patch15_7,mem_patch15
+	jam 1,mem_shutter_first_read_flag
+	call shutter_dy_shutter_uart_config_loop
+	//鑾峰緱浜嗗湴鍧
+	//鏍￠獙鏄惁鏄秺鐣
+//	setarg SHUTTER_EFUSE_END_OFFECT
+	fetcht 2,mem_shutter_efuse_end_offset
+//	copy pdata, temp
+	fetch 2,mem_otp_read_offset_addr
+	isub temp,pdata	//pdata = pdata-temp
+	arg 0x0,temp	//temp = 0
+	isub temp,null	//pdata = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
+	nrtn positive
+	//妫鏌ュ湪鍖洪棿鍐
+	fetcht 2,mem_otp_read_offset_addr
+//	setarg SHUTTER_EFUSE_START_OFFECT
+	fetch 2,mem_shutter_efuse_start_offset
+	isub temp,pdata	//pdata = pdata-temp
+	arg 0x0,temp	//temp = 0
+	isub temp,null	//pdata = pdata-temp, 澶т簬绛変簬0锛宲ositive缃1
+	nrtn positive
+	fetch 2,mem_otp_read_offset_addr
+	store 2,mem_otp_write_offset_addr
+	call shutter_dy_write_otp_convert_data
+
+	branch shutter_dy_shutter_write_move_config_to_otp_addr
+
+
+shutter_dy_shutter_read_move_config_from_otp_addr:
+	bpatch patch16_0,mem_patch16
+	copy pdata,regb
+	arg SHUTTER_PARA_TOTAL_NUM,loopcnt
+//	fetch 2,mem_otp_read_offset_addr
+	arg mem_otp_move_config,rega
+	branch otp_read_data
+
+
+shutter_dy_shutter_write_move_config_to_otp_addr:
+	arg SHUTTER_PARA_TOTAL_NUM,loopcnt
+	arg mem_otp_move_config,rega
+	fetchr regb, 2, mem_otp_write_offset_addr
+	branch otp_write
+
+shutter_dy_shutter_1s_timer:
+	arg mem_shutter_1s_timer,regc
+	arg shutter_dy_store_move_config_info,regb
+	branch timer_single_step
+
+
+
+/*************shutter dy ending*********************/
+	
+endif
+
Index: program/ble_protocol_stack/le.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le.prog	(working copy)
@@ -0,0 +1,1869 @@
+ifdef COMPILE_LE
+//******************************************//
+//*************LE INIT ****************//
+//******************************************//
+
+le_init_conn:
+	bpatchx patch21_6,mem_patch21
+	disable wake
+	jam 1,mem_le_conn_handle
+	jam 3,mem_le_state
+	jam 1,mem_le_arq
+	setarg -1
+	store 2,mem_le_event_count
+	force 0,pdata
+	store 1,mem_le_ch
+	store 1,mem_le_op
+	store 3,mem_sniff_rcv
+	store 3,mem_sniff_lost
+	call le_clear_enc
+	jam 1,mem_le_txheader
+	jam 0,mem_le_txlen
+	jam FUN_RX_LL_1M_PHY,mem_le_rx_phy
+	jam FUN_TX_LL_1M_PHY,mem_le_tx_phy
+	jam 0,mem_le_l2cap_att_states
+	branch le_supervision_flush
+
+le_init_master:
+	bpatchx patch21_7,mem_patch21
+	enable master
+	jam lemode_master,mem_le_mode
+	jam 1,mem_le_att_handle
+	jam 1,mem_le_search_handle_start
+	setarg 0xffff
+	store 2,mem_le_search_handle_end
+	force 0,pdata
+	store 5,mem_ccm_pcnt_rx
+	set1 LE_CCM_DIRECTIONBIT,pdata
+	store 5,mem_ccm_pcnt_tx	
+	branch le_init_conn
+
+
+le_init_slave:
+	bpatchx patch22_0,mem_patch22
+	disable master
+ 	setarg 0x17
+ 	store 2,mem_le_remote_mtu
+	increase 4,pdata
+	store 2,mem_remote_rx_max_octets
+	jam lemode_slave,mem_le_mode
+	jam 0,mem_le_adv_enable
+	jam 0,mem_lpm_current_mult
+	call le_clear_pairing_state
+	fetch 2,mem_le_superto
+	store 2,mem_le_init_superto
+	fetch 2,mem_le_tsniff
+	mul32 pdata,5,pdata
+	rshift4 pdata,pdata
+	store 2,mem_le_superto			// vol.6 part B 4.5.2 only 6*conninterval before establish
+	branch le_init_conn
+	
+
+//******************************************//
+//*************LE main process*********//
+//******************************************//
+
+le_conn_dispatch:
+	bpatchx patch22_1,mem_patch22
+	call le_enable
+ 	fetch 1,mem_le_state
+ 	isolate1 lestate_encryption,pdata
+ 	setflag true,mark_ble_encryption,mark
+	call app_process_ble
+	fetch 1,mem_le_mode
+	bbit1 mode_master,le_master_dispatch
+	branch le_slave_dispatch
+	
+//******************************************//
+//***********LE master process*********//
+//******************************************//
+	
+le_master_dispatch:
+	bpatchx patch22_2,mem_patch22
+	enable master
+	call le_supervision_update
+	branch le_master_disconn,positive
+	call le_setup
+	call le_prepare_tx
+	disable match
+	call le_transmit_receive_sifs
+	nrtn match
+	fetch 1,mem_le_conn_rcv
+	increase 1,pdata
+	store 1,mem_le_conn_rcv
+	call le_acknowledge
+	disable master
+	rtn
+	
+le_master_disconn:
+	call le_disconnect
+	disable master
+	rtn
+	
+//******************************************//
+//***********LE slave process***********//
+//******************************************//
+le_slave_dispatch:
+	bpatchx patch22_3,mem_patch22
+	jam 0,mem_le_md_count
+	set0 mark_ble_crc_fail,mark
+ifdef SECURE_CONNECTION
+	call sp_calc_sequence_256
+	call le_secure_connect_sm
+endif
+	disable attempt
+	call le_supervision_update
+	branch le_slave_disconn,positive
+	fetch 1,mem_le_rx_phy
+	call le_enable_phy_by_pdata
+	call le_setup
+	call le_receive_slave
+	nbranch le_slave_unsync,sync	// vol.6 part B 4.5.1 respond even crc error
+	call le_got_first_packet
+	branch le_slave_match,match
+	bmark1 mark_ble_crc_fail,le_slave_crc_fail
+	branch le_slave_cont
+	
+
+le_slave_crc_fail:
+le_slave_match:
+	bpatchx patch22_4,mem_patch22
+	fetch 1,mem_le_md_count
+	pincrease 1
+	store 1,mem_le_md_count
+	beq LE_MD_MAX_COUNT,le_slave_cont
+	call le_acknowledge
+	call le_prepare_tx
+	fetch 1,mem_le_tx_phy
+	call le_enable_phy_by_pdata
+	call le_transmit
+	call le_parse
+	fetch 2,mem_cb_ble_transmit
+	call callback_func
+	call le_check_md
+	branch le_slave_more_data,user
+le_slave_cont:
+	bpatchx patch22_5,mem_patch22
+	call le_pairing_sm
+ 	call le_check_paring_time
+	call check_51cmd
+	fetch 1,mem_le_op
+	bbit1 op_disconn,le_slave_disconn
+le_slave_unsync:
+	bpatchx patch22_6,mem_patch22
+	call end_of_packet
+	call le_lpm_set_mult
+	branch calc_clke_offset
+
+
+le_check_md:
+	disable user
+	bmark1 mark_ble_rx_md,enable_user
+	bmark1 mark_ble_tx_md,enable_user
+	bmark1 mark_ble_crc_fail,enable_user
+	rtn
+
+
+le_slave_more_data:
+	bpatchx patch22_7,mem_patch22
+	enable attempt
+	call le_transmit_receive_sifs_notx
+	branch le_slave_match,match
+	bmark1 mark_ble_crc_fail,le_slave_crc_fail
+	branch le_slave_cont
+
+le_slave_disconn:
+	//fall through
+le_disconnect:
+	bpatchx patch23_0,mem_patch23
+	call le_clear_connection_info
+	call app_disconn_reason_collect_ble
+	call le_clear_pairing_state
+ifdef SECURE_CONNECTION
+	call le_sc_state_clear
+endif
+	jam BT_EVT_LE_DISCONNECTED,mem_fifo_temp
+	branch ui_ipc_send_event
+
+le_clear_connection_info:
+	arg mem_used_map,contw
+	call memset0_16
+	jam 0,mem_le_conn_handle
+	jam lemode_idle,mem_le_mode
+	jam 0,mem_le_state
+le_clear_pairing_state:
+	bpatchx patch23_1,mem_patch23
+	jam FLAG_LE_ENC_NULL,mem_le_enc_state
+	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state 
+ifdef SECURE_CONNECTION
+	call sp_clear_flags
+endif
+	rtn
+	
+le_got_first_packet:
+	bpatchx patch23_2,mem_patch23
+	fetch 1,mem_le_conn_rcv
+	increase 1,pdata
+	store 1,mem_le_conn_rcv
+	fetch 1,mem_le_state
+	rtnbit1 lestate_got_first_packet
+	set1 lestate_got_first_packet,pdata
+	store 1,mem_le_state
+	fetch 2,mem_le_init_superto
+	store 2,mem_le_superto
+	setarg 0
+	store 4,mem_le_transmit_window
+	rtn
+
+
+//input: pdata is phy mode
+//bit0 is le 1M phy
+//bit1 is le 2M phy
+//bit2 is le coded phy s2
+//bit7 is le coded phy s8
+le_enable_phy_by_pdata:
+	copy pdata,temp
+	bpatchx patch23_3,mem_patch23
+le_enable_phy_by_pdata1:
+	copy temp,pdata
+	bbit1 BIT_LE_1M_PHY,le_enable
+	bbit1 BIT_LE_2M_PHY,le_enable_2M
+	bbit0 BIT_LE_CODED_PHY,le_enable
+	bbit1 BIT_LE_CODED_PHY_S8,le_enable_coded_s8
+	bbit1 BIT_LE_CODED_PHY_S2,le_enable_coded_s2
+	branch le_enable
+
+le_enable_2M:
+	set0 mark_ble_lr,mark
+	set1 mark_ble_2M,mark
+	rtn
+
+le_enable_coded_s2:
+le_enable_coded:
+	set0 mark_ble_2M,mark
+	set1 mark_ble_lr,mark
+	set0 mark_ble_lr_s8,mark
+	rtn
+
+
+le_enable_coded_s8:
+	set0 mark_ble_2M,mark
+	set1 mark_ble_lr,mark
+	set1 mark_ble_lr_s8,mark
+	rtn
+
+le_enable:
+	bpatchx patch23_4,mem_patch23
+	set0 mark_ble_2M,mark
+	set0 mark_ble_lr,mark
+	rtn
+
+
+le_disable:
+	bpatchx patch23_5,mem_patch23
+	set0 mark_ble_encryption,mark
+	jam 0x01,0x8901
+	jam 0x80,0x8920
+	jam 0x03,0x8930
+	rtn
+	
+le_prep:
+	bpatchx patch23_6,mem_patch23
+	disable enable_crc
+	disable enable_white
+	fetch 3,mem_le_crcinit
+	iforce crc24_init
+	fetch 1,mem_le_ch_mapped
+le_prep_next:
+	reverse pdata,temp
+	set1 1,temp
+	rshift temp,white_init
+	rtn
+	
+
+le_rx_setfreq:
+	call le_setfreq
+le_rf_rx_enable:	
+	call set_freq_rx
+	fetch 2,mem_param_pll_setup
+	call sleep
+	branch rf_rx_enable
+
+le_tx_setfreq:
+	branch txon,match
+	bmark1 mark_ble_crc_fail,txon
+le_tx_setfreq0:
+	call le_setfreq
+	branch set_freq_tx
+	
+le_setfreq:
+	bpatchx patch23_7,mem_patch23
+	call set_sync_on
+	fetch 1, mem_le_testtype
+	nbranch le_ctf_test,blank
+	fetch 1,mem_le_ch_mapped
+	sub pdata,36,null
+	branch le_ctf_normal,positive
+	force 0,temp
+	rtneq 37
+	force 24,temp
+	rtneq 38
+	force 78,temp
+	rtn
+	
+le_ctf_normal:
+	sub pdata,10,null
+	branch le_ctf_low,positive
+	increase 1,pdata
+	
+le_ctf_low:	
+	lshift pdata,pdata
+	add pdata,2,temp
+	rtn
+	
+le_ctf_test:
+	fetch 1,mem_le_ch_mapped
+	lshift pdata,temp
+	rtn
+
+le_sca_map:
+	arg 500,temp
+	rtn blank
+	arg 250,temp
+	rtneq 1
+	arg 150,temp
+	rtneq 2
+	arg 100,temp
+	rtneq 3
+	arg 75,temp
+	rtneq 4
+	arg 50,temp
+	rtneq 5
+	arg 40,temp
+	rtneq 6
+	arg 20,temp
+	rtn
+
+
+	
+le_setup:
+	bpatchx patch24_0,mem_patch24
+	enable swfine
+	fetch 4,mem_le_access
+	iforce access
+	call le_map_channel
+	setarg 0x200
+	branch le_setup_master,master
+	fetch 2,mem_le_receive_window
+	rshift pdata,pdata
+le_setup_master:
+	fetcht 2,mem_param_pll_setup
+	iadd temp,pdata
+	call ahead_window
+	deposit clke
+	rtn
+
+
+le_context_nextevent:
+	bpatchx patch24_1,mem_patch24
+	call push_stack_rega_b_c
+	storer loopcnt ,2,mem_loopcnt
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	rtnbit0 mode_le
+	add rega,coffset_le_event_cnt,contw
+	ifetch 2,contw
+	increase 1,pdata
+	istore 2,contw
+	call le_update_param
+	call le_update_channel_map
+	call le_update_phy	
+	call le_context_nexthop
+	call pop_stack_rega_b_c
+	fetchr loopcnt ,2,mem_loopcnt
+	rtn
+	
+le_context_nexthop:	
+	add rega,coffset_le_hop,contr
+	ifetch 1,contr
+	add rega,coffset_le_ch,contw
+	ifetcht 1,contw
+	iadd temp,pdata
+	sub pdata,36,null
+	branch le_nexthop_nowrap,positive
+	increase -37,pdata
+le_nexthop_nowrap:
+	istore 1,contw
+	rtn
+
+//input rega
+le_calc_channel_map:
+	add rega,coffset_le_channel_map,contr
+	ifetch 5,contr
+	force 0,temp
+	force 37,loopcnt
+le_count_channels_loop:
+	bbit0 0,le_count_channels_notused
+	increase 1,temp
+le_count_channels_notused:
+	rshift pdata,pdata
+	loop le_count_channels_loop
+	add temp,-1,pdata
+	add rega,coffset_le_channels,contw
+	istore 1,contw
+	rtn
+
+le_map_channel:
+	bpatchx patch24_2,mem_patch24
+	fetch 1,mem_le_ch
+	iforce queue
+	fetcht 5,mem_le_channel_map
+	qisolate1 temp
+	branch le_map_channel_end,true
+le_map_channel_next:
+	fetch 1,mem_le_channels
+	isub queue,pdata
+	branch le_map_channel_cont,positive
+	sub pdata,-1,queue
+	branch le_map_channel_next
+le_map_channel_cont:
+	copy queue,loopcnt
+	force 0,queue
+le_map_channel_loop:
+	qisolate1 temp
+	branch le_map_channel_skip,true
+	increase 1,loopcnt
+le_map_channel_skip:
+	deposit loopcnt
+	branch le_map_channel_end,blank
+	increase 1,queue
+	increase -1,loopcnt
+	branch le_map_channel_loop
+le_map_channel_end:
+	deposit queue
+	store 1,mem_le_ch_mapped
+	rtn
+
+
+le_wait_tx:
+	branch le_wait_master,master
+	until null,timeout
+	rtn
+	
+le_wait_master:
+	arg 0xea0,timeup
+	until clkn_rt,meet
+	rtn
+
+le_receive_adv:
+	disable swfine
+	fetch 2,mem_le_scan_window
+	copy pdata,timeup
+	branch le_receive_packet
+
+
+le_receive_slave:
+	bpatchx patch24_3,mem_patch24
+ 	call le_dec_init
+	enable swfine
+	fetch 2,mem_le_receive_window
+	fetcht 4,mem_le_transmit_window
+	iadd temp,timeup
+le_receive_packet:
+	call le_rx_setfreq
+le_receive_rxon:
+	bpatchx patch24_4,mem_patch24
+	call le_prep
+	bmark0 mark_ble_lr,le_receive_nolr
+	pulse dewhiten_code_calc
+	nop 30
+	call le_prep
+	lshift3 timeup,timeup
+le_receive_nolr:
+	disable match
+	enable decode_fec0
+	enable is_rx
+	disable is_tx
+	copy timeup,stop_watch
+	correlate null,timeout
+	branch le_receive_on_attempt,attempt
+	copy clke,temp
+	storet 6,mem_sync_clke
+le_receive_on_attempt:
+	nbranch le_unsync_end,sync
+	enable swfine
+	fetch 1,mem_le_tx_ifs_defference
+	arg PARAM_20MS_INIT,temp
+	iadd temp,temp
+	fetch 1,mem_system_clk
+	imul32 temp,stop_watch
+	call rf_debug_rx_sync_line	//L-H
+	branch le_receive_skip,attempt
+	call calc_clke_all_modem
+	fetch 1,mem_le_state
+	bbit0 lestate_got_first_packet,le_receive_skip
+	fetcht 6,mem_sync_clke
+	call lpm_adjust_clk,wake
+le_receive_skip:
+	call save_rssi
+	enable enable_white
+	enable enable_crc
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_le_rxbuf_data_header
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_le_rxbuf_data_length
+ 	copy pdata,loopcnt
+	branch le_rx_nopayload,zero
+
+	bmark1 mark_ble_encryption,le_rx_dec
+
+le_rx_loop:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	loop le_rx_loop
+	branch le_rx_nopayload
+
+le_rx_dec: 
+	copy contw,regb
+	bpatchx patch24_5,mem_patch24
+	call le_check_retransmit	
+//	bmark1 mark_old_packet,le_retransmit_end_of_packet
+	fetchr rega, 1,mem_le_rxbuf_data_length
+	increase -4,rega
+	nbranch le_mic_error,positive
+//	storer rega, 1,mem_le_rxbuf_data_length
+	call le_dec_start	
+	copy regb,contw
+	arg 0,temp
+	fetchr loopcnt, 1,mem_le_rxbuf_data_length
+	increase -4,loopcnt
+	branch le_rx_dec_loop_end,zero
+le_rx_dec_loop:
+	
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	increase 1,temp
+	and temp,0xf,null
+	call le_dec,zero
+	loop le_rx_dec_loop
+le_rx_dec_loop_end:
+	call le_dec_end	
+	copy regb,contw
+	
+
+le_rx_nopayload:
+	bpatchx patch24_6,mem_patch24
+	parse demod,bucket,24	
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	enable swfine
+	call le_set_until_tx_timer
+	branch le_crc_fail,crc_failed
+	bmark0 mark_ble_encryption,le_rx_match
+	fetch 1,mem_le_rxbuf_data_length
+	branch le_rx_match,blank
+	increase -4,pdata
+	store 1,mem_le_rxbuf_data_length
+	call wait_ccm_done
+ 	fetch 1,core_misc_status
+	bbit0 7, le_mic_error
+ 	force regidx_result,regext_index
+	storer regext, 4,mem_le_peer_mic
+le_rx_match:
+	call rf_debug_rx_crc_line	//L
+	enable match
+	set0 mark_ble_crc_fail,mark
+le_crc_fail_tx:
+	bpatchx patch24_7,mem_patch24
+	call ccm_ctrl_clr
+	fetch 1,mem_le_rx_phy
+	nsetflag ble_coded_info,BIT_LE_CODED_PHY_S8,pdata
+	store 1,mem_le_rx_phy
+	call le_match_set_sync_on
+	branch le_match_set_txfreq
+	
+le_match_set_sync_on:	
+	disable decode_fec0
+	branch set_sync_on
+	
+le_match_set_txfreq:
+	bpatchx patch25_0,mem_patch25
+	fetcht 1,mem_last_freq
+	branch set_freq_tx_int	
+	
+
+le_dec_init:
+	rtnmark0 mark_ble_encryption
+	call load_sk
+	force regidx_result,regext_index
+	call aes_clear
+	branch aes_clear_data
+	
+	
+le_dec_start:
+	bpatchx patch25_1,mem_patch25
+	jam 0,core_ccm_aad0 
+	jam 1,core_ccm_aad1
+	fetch 1,mem_le_rxbuf_data_header
+	and_into 0x3,pdata
+	store 1,core_ccm_aad2
+	
+	setarg mem_le_rxbuf_data_payload
+	store 2,core_ccm_input_playload_addr
+	store 2,core_ccm_output_playload_addr
+
+	fetchr rega, 1,mem_le_rxbuf_data_length
+	increase -4,rega
+
+	fetcht 5,mem_ccm_pcnt_rx	
+	isolate1 mark_old_packet,mark
+	call le_pcnt_rx_sub1,true
+	call ccm_b0
+	setarg 0
+	store 2,core_ccm_inptr
+	jam 6,core_ccm_ctrl
+	jam 7,core_ccm_ctrl	
+	rtn	
+
+le_pcnt_rx_sub1:
+	sub temp,0,null
+	branch le_pcnt_rx_sub1_0,zero
+	increase -1,temp
+	set1 LE_CCM_DIRECTIONBIT,temp
+	rtn
+
+le_pcnt_rx_sub1_0:
+	setarg 0xffffff
+	lshift16 pdata,pdata
+	arg 0xffff,temp
+	ior temp,temp
+	rtn
+
+le_dec:
+	copy contw,regb
+	fetch 1,mem_le_rxbuf_data_length
+	increase -4,pdata
+	isub temp,null
+	rtn zero
+	storet 2,core_ccm_inptr
+	copy regb,contw
+	rtn
+	
+le_dec_end://mic
+	parse demod,bucket,32
+	rshift32 pdata,pdata
+	rshift8 pdata,pdata
+	istore 4,contw
+	copy contw,regb
+//	store 4,mem_le_peer_mic
+	force regidx_data,regext_index
+	copy  pdata,regext
+	storet 2,core_ccm_inptr
+	rtn
+
+le_mic_error:
+	branch le_end_of_packet
+
+le_retransmit_end_of_packet:
+	call le_set_until_tx_timer	// start SIFS timer after last bit of crc
+	call end_of_packet
+	branch le_rx_match
+
+le_crc_fail:
+	call rf_debug_rx_crc_fail_line
+	bmark1 mark_ble_crc_fail,le_crc_fail_consecutive //two consecutive packets received with an invalid CRC match within a connection event shall close the event
+	set1 mark_ble_crc_fail,mark
+	branch le_crc_fail_tx
+	
+le_unsync_end:	
+le_crc_fail_consecutive:
+	set0 mark_ble_crc_fail,mark
+	branch le_end_of_packet
+
+le_end_of_packet:
+	bpatchx patch25_2,mem_patch25
+	call ccm_ctrl_clr
+	branch end_of_packet
+	
+calc_clke_all_modem:
+	bmark1 mark_ble_lr,calc_clke_modem_coded
+	bmark1 mark_ble_2M,calc_clke_modem_2M
+	fetch 2,mem_param_clke_cal_le_1m
+	copy pdata,clke_rt
+	copy bt_clk,clke_bt
+	rtn
+
+
+calc_clke_modem_coded:
+	fetch 2,mem_param_clke_cal_le_coded
+	copy pdata,clke_rt
+	add bt_clk,1,clke_bt
+	rtn
+
+calc_clke_modem_2M:
+	fetch 2,mem_param_clke_cal_le_2m
+	copy pdata,clke_rt
+	copy bt_clk,clke_bt
+	rtn
+
+
+le_set_until_tx_timer:
+	fetch 1,mem_le_rxbuf_data_length
+	add pdata,5,temp	//PDU Length
+	lshift3 temp,temp	//PDU bit size
+	fetch 1,mem_le_rx_phy
+	bmark1 mark_ble_lr,le_set_until_tx_timer_rx_lr
+	bbit1 BIT_LE_1M_PHY,le_set_until_tx_timer_rx_1M
+	bbit1 BIT_LE_2M_PHY,le_set_until_tx_timer_rx_2M
+le_set_until_tx_timer_rx_lr:
+	branch le_set_until_tx_timer_rx_coded_s2,ble_coded_info
+	branch le_set_until_tx_timer_rx_coded_s8
+
+le_set_until_tx_timer_rx_1M:
+	branch le_calc_stop_watch
+
+le_set_until_tx_timer_rx_2M:
+	rshift temp,temp
+	branch le_calc_stop_watch
+
+le_set_until_tx_timer_rx_coded_s2:
+	add temp,3,temp	//term2
+	lshift temp,temp
+	branch le_set_until_tx_timer_rx_coded
+
+le_set_until_tx_timer_rx_coded_s8:
+	add temp,3,temp	//term2
+	lshift3 temp,temp
+le_set_until_tx_timer_rx_coded:
+	setarg PARAM_CODED_C1_TERM1_TIME_40US
+	iadd temp,temp
+	branch le_calc_stop_watch
+
+le_calc_stop_watch:
+	fetch 1,mem_system_clk
+	imul32 temp,temp		//mips cpu
+	arg PARAM_20MS_INIT,rega
+	imul32 rega,pdata
+	isub temp,temp
+	copy stop_watch,pdata
+	isub temp,stop_watch
+	rtn
+
+le_transmit_receive_sifs_without_change_mode:
+	call le_transmit
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	enable swfine
+	arg 5500,timeup
+	branch le_receive_rxon
+
+
+le_transmit_receive_sifs:
+	bpatchx patch25_3,mem_patch25
+	fetch 1,mem_le_tx_phy
+	call le_enable_phy_by_pdata
+	call le_transmit
+le_transmit_receive_sifs_notx:
+	fetch 1,mem_le_rx_phy
+	call le_enable_phy_by_pdata
+
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	enable swfine
+	arg 5500,timeup
+	bmark0 mark_ble_lr,le_receive_rxon
+	arg 8500,timeup
+	branch le_receive_rxon
+
+le_transmit_norx:
+	bpatchx patch25_4,mem_patch25
+	call le_transmit
+	branch end_of_packet
+	
+le_transmit:
+	bpatchx patch25_5,mem_patch25
+	call le_prep
+	call le_tx_setfreq
+	call rf_debug_tx_on_line	//H
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	call le_wait_tx
+	disable lr_s2en
+	bmark1 mark_ble_lr,le_transmit_lr
+	bmark1 mark_ble_2M,le_transmit_2M
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+le_transmit_packet:
+	enable enable_white
+	enable enable_crc
+	bpatchx patch25_6,mem_patch25
+	fetch 1,mem_le_txheader
+	inject mod,8
+	ifetch 1,contr
+	copy pdata,loopcnt
+	inject mod,8
+	sub loopcnt,0,null
+	branch le_tr_nopayload,zero
+
+	fetch 1,core_ccm_ctrl
+	branch le_transmit_packet_not_enc,blank 
+	bmark1 mark_ble_encryption,le_transmit_packet_enc
+le_transmit_packet_not_enc:	
+	arg mem_le_txpayload,contr
+le_tr_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop le_tr_loop
+	
+le_tr_nopayload:
+	enable enable_parity
+	inject mod,24
+	disable enable_parity
+	bmark0 mark_ble_lr,le_transmit_skip
+	disable enable_white
+	setarg 0
+	inject mod,3
+le_transmit_skip:
+	until null,tx_clear
+	nop 100          /* flush out the last bit */
+	bpatchx patch25_7,mem_patch25
+	disable encode_fec0
+	disable encode_fec3
+	call set_sync_on
+	call rf_debug_tx_off_line	//L
+le_check_start_pause_enc:
+	fetch 1,mem_le_txheader
+	and pdata,LLID_LE_LL,pdata
+	rtnne LLID_LE_LL
+	fetch 1,mem_le_enc_state
+	beq  FLAG_LE_ENC_PAUSE,le_clear_enc
+	rtnne FLAG_LE_SEND_START_ENC_REQ
+	fetch 1,mem_le_txpayload
+	beq LL_START_ENC_REQ,le_set_enc
+	rtn
+	
+
+le_transmit_packet_enc:
+	increase -4,loopcnt
+	copy loopcnt,temp	
+	call ccm_wait_enc	
+	arg mem_le_txpayload,contr
+le_transmit_packet_enc_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop le_transmit_packet_enc_loop
+	call ccm_check_enc_done
+	copy regext,pdata
+	inject mod,32
+	branch le_tr_nopayload
+
+le_transmit_lr:
+	arg 10,loopcnt
+le_transmit_lr_preamble_loop:
+	setarg 0x3c
+	inject mod,8
+	loop le_transmit_lr_preamble_loop
+	disable encode_fec0
+	enable encode_fec3
+	rshift16 access,pdata
+	rshift16 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,32
+	bmark1 mark_ble_lr_s8,le_transmit_lr_s8
+le_transmit_lr_s2:
+	setarg 1
+	inject mod,5
+	enable lr_s2en
+	branch le_transmit_packet
+
+le_transmit_lr_s8:
+	setarg 0
+	inject mod,5
+	branch le_transmit_packet
+
+le_transmit_2M:
+	fetch 1,mem_system_clk	
+	fetcht 1,mem_le_tx2m_delay
+	iadd temp,pdata
+	call sleep				//2M 前端发送比1M快
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,temp
+	copy temp,pdata
+	inject mod,8
+	copy temp,pdata
+	inject mod,40
+	branch le_transmit_packet
+	
+
+le_update_param:
+	arg le_update_param_ahead1_cb,regc
+	arg le_update_param_cb,regb
+	arg lestate_update_param,queue
+	branch le_check_update_flag
+
+le_update_param_ahead1_cb:
+	add rega,coffset_sniff_anchor,contr
+	ifetcht 4,contr
+	add rega,coffest_le_new_transmitwindowsize,contr
+	ifetch 1,contr
+	add rega,coffset_le_window_size,contw
+	istore 1,contw
+	ifetch 2,contr
+	lshift2 pdata,pdata
+	iadd temp,timeup	//add windowsize
+	add rega,coffset_sniff_anchor,contw  
+	deposit timeup
+	istore 4,contw
+	ifetch 2,contr
+	lshift2 pdata,pdata
+	add rega,coffset_tsniff,contw
+	istore 2,contw
+	ifetch 2,contr
+	add rega,coffset_le_slave_latency,contw
+	istore 2,contw
+	ifetch 2,contr
+	store 2,mem_le_init_superto
+	branch le_receive_window_size
+
+le_update_param_cb:
+	ifetch 1,rega
+	set0 lestate_got_first_packet,pdata
+	istore 1,rega
+	storer rega,2,mem_rega
+	jam BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mem_fifo_temp
+	call ui_ipc_send_event
+	fetchr rega,2,mem_rega
+	rtn	
+
+le_update_channel_map:
+	arg 0,regc
+	arg le_update_channel_map_cb,regb
+	arg lestate_update_map,queue
+	branch le_check_update_flag
+	
+le_update_channel_map_cb:
+	add rega,coffset_le_new_map,contr
+	ifetch 5,contr
+	add rega,coffset_le_channel_map,contw
+	istore 5,contw
+	branch le_calc_channel_map
+	
+
+le_update_phy:
+	arg 0,regc
+	arg le_update_phy_cb,regb
+	arg lestate_update_phy,queue
+	branch le_check_update_flag
+	
+le_update_phy_cb:
+	add rega,coffset_le_new_m2s_phy,contr
+	ifetch 1,contr
+	call le_update_phy_cb_m2s
+	istore 1,contw
+	add rega,coffset_le_new_s2m_phy,contr
+	ifetch 1,contr
+	call le_update_phy_cb_s2m
+	istore 1,contw
+	storer rega,2,mem_rega
+	jam BT_EVT_LE_UPDATE_PHY,mem_fifo_temp
+	call ui_ipc_send_event
+	fetchr rega,2,mem_rega
+	rtn	
+
+le_update_phy_cb_m2s:
+	call le_update_phy_cb_m2s_no_change,blank
+	add rega,coffset_le_rx_phy,contw
+	nrtn master
+	fetcht 1,mem_le_tx_phys
+	isolate1 BIT_LE_CODED_PHY_S8,temp
+	setflag true,BIT_LE_CODED_PHY_S8,pdata
+	add rega,coffset_le_tx_phy,contw
+	rtn
+
+le_update_phy_cb_m2s_no_change:
+	add rega,coffset_le_rx_phy,contr
+	ifetch 1,contr
+	nrtn master
+	add rega,coffset_le_tx_phy,contr
+	ifetch 1,contr
+	rtn
+
+le_update_phy_cb_s2m:
+	call le_update_phy_cb_s2m_no_change,blank
+	fetcht 1,mem_le_tx_phys
+	isolate1 BIT_LE_CODED_PHY_S8,temp
+	setflag true,BIT_LE_CODED_PHY_S8,pdata
+	add rega,coffset_le_tx_phy,contw
+	nrtn master
+	set0 BIT_LE_CODED_PHY_S8,pdata
+	add rega,coffset_le_rx_phy,contw
+	rtn
+
+le_update_phy_cb_s2m_no_change:
+	add rega,coffset_le_tx_phy,contr
+	ifetch 1,contr
+	nrtn master
+	add rega,coffset_le_rx_phy,contr
+	ifetch 1,contr
+	rtn
+	
+
+//regb regc is cb function
+//queue is state flag
+le_check_update_flag:
+	bpatchx patch26_0,mem_patch26
+	ifetch 1,rega
+	qisolate0 pdata
+	rtn true
+	add rega,coffset_le_event_cnt,contr
+	ifetcht 2,contr
+	add rega,coffset_le_instant,contr
+	ifetch 2,contr
+	
+	isub temp,pdata
+	branch le_update,zero
+	nbranch le_check_update_small,positive
+	sub pdata,1,null
+	branch le_update_ahead1,zero
+	rtn
+	
+le_update_ahead1:
+	copy regc,pdata
+	branch callback_func
+
+le_update:
+	ifetch 1,rega
+	qset0 pdata
+	istore 1,rega
+	copy regb,pdata
+	branch callback_func
+	
+le_check_update_small:
+	add rega,coffset_le_event_cnt,contr
+	ifetch 2,contr
+	add rega,coffset_le_instant,contr
+	ifetch 2,contr
+	isub temp,pdata
+	arg 0xffff,temp
+	isub temp,null
+	branch le_update,zero
+	arg 0xf000,temp
+	isub temp,null
+	nbranch le_update,positive
+	rtn
+	
+
+le_check_retransmit:
+	fetcht 1,mem_le_arq
+	fetch 1,mem_le_rxbuf_data_header
+//	isolate1 md,pdata
+//	setflag true,mark_ble_rx_md,mark
+	rshift pdata,pdata
+	ixor temp,pdata
+	isolate1 nesn,pdata
+	setflag true,mark_old_packet,mark	/* retransmit */
+	rtn
+
+
+le_acknowledge:
+	bpatchx patch26_1,mem_patch26
+	call le_supervision_flush
+	rtnmark1 mark_ble_crc_fail
+	call le_check_wak
+	fetch 1,mem_le_rxbuf_data_header
+	isolate1 md,pdata
+	setflag true,mark_ble_rx_md,mark
+	rshift pdata,pdata
+	ixor temp,pdata
+	isolate1 nesn,pdata
+	setflag true,mark_old_packet,mark	/* retransmit */
+	rtnmark1 mark_old_packet
+	fetch 1,mem_le_rxbuf_data_length
+	branch le_ack_unenc,blank		/* empty packet, no decryption */
+	fetch 1,mem_le_state
+	bbit0 lestate_encryption,le_ack_unenc
+	fetcht 4,mem_le_peer_mic
+	fetch 4,mem_ccm_last_mic			
+	isub temp,null
+	branch assert,zero
+	storet 4,mem_ccm_last_mic
+	fetch 5,mem_ccm_pcnt_rx
+	increase 1,pdata
+	set1 LE_CCM_DIRECTIONBIT,pdata
+	store 5,mem_ccm_pcnt_rx
+	
+le_ack_unenc:
+	fetcht 1,mem_le_arq
+	setflip nesn,temp
+	storet 1,mem_le_arq
+	fetch 1,mem_le_configuration
+	rtnbit0 BIT_BLE_DEAL_BB_PACKET
+	bpatchx patch26_2,mem_patch26
+	fetch 1,mem_le_rxbuf_data_length
+	rtn blank		//empty packet
+	fetch 1,mem_le_rxbuf_data_header
+	compare LLID_CONTINUE,pdata,3
+	branch le_parse_writing_attribute_continue,true //ACL-U continue
+	compare LLID_START,pdata,3
+	branch le_parse_writing_attribute_start,true
+	rtn
+
+	
+le_check_wak:
+	bpatchx patch26_3,mem_patch26
+	fetcht 1,mem_le_arq
+	isolate0 wak,temp
+	rtn true
+	fetch 1,mem_le_rxbuf_data_header
+	lshift pdata,pdata
+	ixor temp,pdata
+	rtnbit0 sn			/* received NESN is same as SN, NAK */
+	set0 wak,temp
+	setflip sn,temp
+	storet 1,mem_le_arq
+	compare 3,temp,3
+//	nrtn true
+	rtn
+	
+
+le_set_enc:
+	fetch 1,mem_le_state
+	set1 lestate_encryption,pdata
+	store 1,mem_le_state
+	set1 mark_ble_encryption,mark
+	rtn	
+	
+le_clear_enc:
+	bpatchx patch26_4,mem_patch26
+	jam FLAG_LE_ENC_NULL,mem_le_enc_state
+	arg 0,pdata
+	store 4,mem_ccm_last_mic
+	store 5,mem_ccm_pcnt_tx
+	set1 LE_CCM_DIRECTIONBIT,pdata
+	store 5,mem_ccm_pcnt_rx
+	fetch 1,mem_le_state
+	set0 lestate_encryption,pdata
+	store 1,mem_le_state
+	set0 mark_ble_encryption,mark
+	rtn
+
+
+
+
+le_scan_check_sender_addr_type:
+	arg 1,rega// sender_addr_type
+	fetch 1,mem_le_rxbuf_adv_connect_ind_header
+	rtnbit1 LE_SENDER_ADDR_BIT
+	arg 0,rega
+	rtn
+
+
+le_get_master_rx_max:
+	copy contr,contw
+	fetcht 2,mem_remote_rx_max_octets
+	copy contw,contr
+	rtn
+
+
+le_prepare_tx:
+	bpatchx patch26_5,mem_patch26
+	fetch 1,mem_le_arq
+	rtnbit1 wak
+	call le_check_tx_md
+	call le_fifo_get_first_tx_ptr	//no packet to send
+	branch le_send_empty,blank
+	ifetch 2,contr
+	ifetcht 2,contr
+	copy temp,rega
+	isub rega,pdata
+	call le_get_master_rx_max
+	call not_greater_than
+	copy pdata,temp
+	ifetchr type,1,contr
+	copy rega,pdata
+	iadd contr,pdata
+	store 2,mem_contr
+	call le_update_tx_type
+	call le_send_packet
+	
+	call le_fifo_get_first_tx_ptr
+	ifetch 2,contr
+	copy pdata,rega	//rega:total length
+	copy contr,regc
+	ifetcht 2,contr
+	copy temp,regb	//temp&regb is offset
+	isub regb,pdata
+	call le_get_master_rx_max
+	call not_greater_than
+	iadd regb,pdata
+	istore 2,regc
+	isub rega,null
+	nrtn zero
+	branch le_fifo_release_first_node
+
+	
+le_check_tx_md:
+	call le_check_continue
+	rtnmark1 mark_ble_tx_md
+	fetch 1,mem_le_configuration
+	bbit0 BIT_BLE_TRANSMIT_PACKET_BY_MD,le_clear_md
+	call le_fifo_get_second_tx_ptr	//no packet to send
+	branch le_clear_md,blank
+	branch le_set_md
+
+	
+le_check_continue:
+	call le_fifo_get_first_tx_ptr	//no packet to send
+	branch le_clear_md,blank
+	ifetch 2,contr				//pdata:length
+	ifetcht 2,contr				//temp:offest
+	isub temp,rega			//pdata:length - offset
+	call le_get_master_rx_max
+	copy temp,pdata
+	isub rega,null
+	branch le_clear_md,positive				//27 > length -offset
+le_set_md:
+	set1 mark_ble_tx_md,mark
+	rtn
+
+le_clear_md:
+	set0 mark_ble_tx_md,mark
+	rtn
+
+le_update_tx_type:
+	copy rega,pdata
+	rtn blank
+	arg LLID_CONTINUE,type
+	rtn
+
+
+le_att_check_notification_enable: // temp ->handle,output-> pdata,output :contr->rega
+	bpatchx patch26_6,mem_patch26
+	increase 1,temp
+	call le_att_get_handle_ptr
+	increase -2,contr
+	ifetch 2,contr
+	arg CLIENT_CHARACTERTIC_CONFIGURATION,temp
+	isub temp,null
+	nrtn zero
+	increase 1,contr
+	copy contr,rega
+	ifetch 1,contr
+	rtn
+	
+
+le_send_empty:
+	force 0,temp
+	force 1,type
+	
+le_send_packet:
+	bpatchx patch26_7,mem_patch26
+	storet 1,mem_le_txlen
+	fetcht 1,mem_le_arq
+	set1 wak,temp
+	and temp,0xfc,pdata
+	ior type,pdata
+	store 1,mem_le_arq
+	and_into 0x1f,pdata
+	isolate1 mark_ble_tx_md,mark
+	setflag true,md,pdata
+	store 1,mem_le_txheader
+
+	fetch 1,mem_le_txheader
+	compare 1,type,3
+	nbranch le_send_no_txlen,true
+	fetch 1,mem_le_txlen
+	rtn blank
+	
+le_send_no_txlen:	
+	bmark1 mark_ble_encryption,le_send_packet_enc
+	fetchr loopcnt,1,mem_le_txlen
+	fetch 2,mem_contr
+	copy pdata,contr
+	arg mem_le_txpayload,contw
+	branch memcpy_fast
+	
+le_send_packet_enc:
+	call load_sk
+	branch le_encrypt_new_start
+
+get_lpm_wake_ble_rx_lock:
+	arg wake_lock_ble_rx,queue
+	branch lpm_get_wake_lock
+
+put_lpm_wake_ble_rx_lock:
+	arg wake_lock_ble_rx,queue
+	branch lpm_put_wake_lock
+
+
+le_parse:
+	bpatchx patch27_0,mem_patch27
+	rtnmark1 mark_old_packet
+	rtnmark1 mark_ble_crc_fail
+	fetch 1,mem_le_rxbuf_data_header
+	and pdata,0x3,pdata
+	store 1,mem_le_packet_llid
+	fetch 1,mem_le_rxbuf_data_length
+	rtn blank							//empty rtn
+	setarg mem_le_rxbuf_data_payload
+	store 2,mem_le_payload_ptr
+	bpatchx patch27_1,mem_patch27
+	fetch 1,mem_le_packet_llid
+	beq LLID_LE_LL,le_parse_ll
+le_parse_l2cap:
+	call le_check_l2cap_complete
+	nbranch get_lpm_wake_ble_rx_lock,user
+	call put_lpm_wake_ble_rx_lock
+	setarg 0
+	store 2,mem_le_packet_len_recved
+	fetch 2,mem_le_payload_ptr
+	add pdata,2,contr	//l2cap length
+	bpatchx patch27_2,mem_patch27
+le_parse_l2cap_next:	
+	ifetch 2,contr
+	beq LE_L2CAP_CID_ATT,le_parse_att
+	beq LE_L2CAP_CID_SMP,le_parse_smp
+	beq LE_L2CAP_CID_SIGNAL,le_parse_signaling
+	rtn
+
+
+le_check_l2cap_complete:
+	fetch 1,mem_le_packet_llid
+	beq LLID_START,le_check_l2cap_llid_start
+	beq LLID_CONTINUE,le_check_l2cap_llid_continue
+	rtn
+
+//input: pdata is CID number
+//output: 	if CID is legal ,enable user
+//		if ICD is illegal,disable user 
+le_check_l2cap_CID_legal:
+	call enable_user
+	arg LE_L2CAP_CID_ATT,temp
+	isub pdata,null
+	rtn zero
+	arg LE_L2CAP_CID_SIGNAL,temp
+	isub pdata,null
+	rtn zero
+	arg LE_L2CAP_CID_SMP,temp
+	isub pdata,null
+	rtn zero
+	branch disable_user
+
+	
+le_check_l2cap_llid_start:
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	ifetch 2,contr
+	store 2,mem_le_l2cap_size
+	ifetch 2,contr			//CID
+	call le_check_l2cap_CID_legal
+	nrtn user		//CID error
+	fetcht 1,mem_le_rxbuf_data_length
+	storet 2,mem_le_packet_len_recved
+	fetch 2,mem_le_l2cap_size
+	increase 4,pdata		//CID:2 L2cap length 2
+	isub temp,null
+	branch enable_user,zero
+	fetchr loopcnt,1,mem_le_rxbuf_data_length
+	arg mem_le_l2cap_buf,contw
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	call memcpy_fast
+	branch disable_user
+
+//no input
+//output: 	if CID is legal ,enable user
+//		if ICD is illegal,disable user 
+le_check_l2cap_continue_legal:
+	call enable_user
+	fetch 2,mem_le_packet_len_recved
+	nrtn blank
+	branch disable_user
+
+le_check_l2cap_llid_continue:
+	call le_check_l2cap_continue_legal
+	nrtn user		//check receive start packet
+	fetch 2,mem_le_packet_len_recved
+	arg mem_le_l2cap_buf,contw
+	iadd contw,rega
+	fetcht 1,mem_le_rxbuf_data_length
+	iadd temp,pdata
+	store 2,mem_le_packet_len_recved
+	fetchr loopcnt,1,mem_le_rxbuf_data_length
+	copy rega,contw
+	fetch 2,mem_le_payload_ptr
+	copy pdata,contr
+	call memcpy_fast
+	setarg mem_le_l2cap_buf
+	store 2,mem_le_payload_ptr		//update ptr->mem_le_l2capbuff
+	fetch 2,mem_le_l2cap_size
+	increase 4,pdata
+	fetcht 2,mem_le_packet_len_recved
+	isub temp,null
+	branch enable_user,zero
+	branch disable_user
+
+
+
+	/* rega pointers to data, regb is length */
+le_writeatt_cb:
+	fetch 2,mem_cb_att_write
+	branch callback_func
+	
+le_supervision_update:
+	bpatchx patch27_3,mem_patch27
+	fetcht 4,mem_le_supervision_timer
+	call get_clkbt
+	isub temp,timeup					/* and to 28 bits */
+	deposit timeup
+	fetcht 2,mem_le_superto
+	lshift4 temp,temp
+	lshift temp,temp
+	isub temp,pdata
+	rtn
+	
+le_supervision_flush:
+	call get_clkbt
+	store 4,mem_le_supervision_timer
+	rtn
+
+	
+//input rega
+le_receive_window_size:
+	bpatchx patch27_4,mem_patch27
+	add rega, coffset_le_peer_sca,contr
+	ifetch 1,contr
+	call le_sca_map
+	add rega, coffset_tsniff,contr
+	ifetch 2,contr
+	imul32 temp,pdata
+	fetcht 2,mem_param_rt_rthalfslot
+	imul32 temp,pdata
+	arg 1000000,temp
+	idiv temp
+	arg PARAM_WINDOWN_SIZE,temp
+	fetch 1,mem_system_clk
+	imul32 temp,temp
+	add rega, coffset_le_window_size,contr
+	ifetch 1,contr
+	imul32 temp,pdata
+	iadd temp,pdata
+	store 4,mem_le_transmit_window	
+	fetch 2,mem_rx_window_sniff
+	call wait_div_end
+	quotient temp
+	iadd temp,pdata
+	add rega, coffset_rx_window,contw
+	istore 2,contw
+	rtn
+
+	
+
+	
+le_modified_name:
+	bpatchx patch27_5,mem_patch27
+	call le_modified_name_att_list
+	branch le_modified_name_adv
+
+le_modified_name_att_list:
+	jam 2,mem_le_search_att_type_length
+	arg UUID_CHRCTR_DEVICE_NAME,temp
+	storet 2,mem_le_search_att_type
+	call le_att_get_uuid_ptr
+	rtn blank
+	ifetch 1,contr						// attribute length
+	copy contr,contw
+	fetcht 1,mem_le_name_len
+	copy temp,loopcnt
+	isub temp,null
+	nbranch le_name_length_longer_than_att,positive
+	isub temp,temp
+	arg mem_le_name,contr
+	call memcpy_fast
+	copy temp,loopcnt
+	ncall memcpy_empty,zero
+	rtn
+le_name_length_longer_than_att:
+	copy pdata,loopcnt
+	arg mem_le_name,contr
+	branch memcpy_fast
+
+
+le_modified_name_adv:
+	arg mem_le_adv_data_len+32,regc
+	arg mem_le_adv_data,rega
+	call le_modified_name_adv_and_scan
+	setarg 0
+	setflag user,0,pdata
+	store 1,mem_pdatatemp
+	arg mem_le_scan_data_len+32,regc
+	arg mem_le_scan_data,rega
+	call le_modified_name_adv_and_scan
+	rtn user
+	fetch 1,mem_pdatatemp
+	branch assert,blank
+	rtn
+
+
+le_modified_name_adv_and_scan:
+	bpatchx patch27_6,mem_patch27
+	call enable_user
+	call clear_temp_block
+	arg 0,regb	//current length
+	arg mem_le_data_temp,contw
+	call le_modified_name_adv_loop
+	fetch 1,mem_le_name_len
+	add pdata,1,temp
+	iadd regb,rega	
+	increase 2,rega
+	sub rega,0x1f,null
+	nbranch le_modified_name_adv_and_scan_name_overflow,positive
+	istoret 1,contw		//store ble name length
+	arg GAP_ADTYPE_LOCAL_NAME_COMPLETE,temp
+	istoret 1,contw		//store ble name type
+	iforce loopcnt
+	call memcpy_fast
+	copy rega,regb
+le_modified_name_adv_and_scan_store_data:
+	deposit regb
+	store 1,mem_le_data_len_temp
+	arg mem_le_data_len_temp,contr
+	setarg -32
+	iadd regc,contw
+	branch memcpy32
+
+le_modified_name_adv_and_scan_name_overflow:
+	call disable_user
+	branch le_modified_name_adv_and_scan_store_data
+	
+le_modified_name_adv_loop:
+	ifetch 1,rega		//pdata:length
+	rtn blank			//length is zero,ending find
+	pincrease 1		//length += 1
+	ifetcht 1,contr		//pdata:type
+	sub temp,GAP_ADTYPE_LOCAL_NAME_COMPLETE,null
+	branch le_modified_name_adv_found_name,zero
+	iadd regb,regb	
+	copy rega,contr
+	iforce loopcnt
+	call memcpy_fast
+	copy contr,rega
+le_modified_name_adv_loop2:
+	deposit rega
+	isub regc,null
+	rtn positive
+	branch le_modified_name_adv_loop
+
+le_modified_name_adv_found_name:
+	iadd rega,rega
+	branch le_modified_name_adv_loop2
+
+
+memcpy_empty:
+	setarg SPACE
+	istore 1,contw
+	loop memcpy_empty
+	rtn
+
+	
+le_lpm_set_mult:
+	bpatchx patch27_7,mem_patch27
+	disable wake
+	branch le_lpm_set_mult_attempt,attempt
+	nbranch le_lpm_lost,match
+le_lpm_set_mult_attempt:
+	call lpm_match
+	fetch 2,mem_rx_window_sniff
+	store 2,mem_le_receive_window
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_SHORT_MULT,lpm_mult_short	//check flag,if flag is 1,always short mult
+	bmark1 mark_old_packet,lpm_mult_short
+	fetch 1,mem_le_rxbuf_data_length
+	nbranch lpm_mult_short,blank		// rx not empty, short interval
+	fetch 1,mem_le_txlen
+	nbranch lpm_mult_short,blank		// tx not empty, short interval
+	
+	fetch 1,mem_le_state
+	bbit1 lestate_update_param,lpm_mult_short
+	bbit1 lestate_update_phy,lpm_mult_short
+	bbit1 lestate_update_map,lpm_mult_short
+	branch lpm_mult_wait_timeout
+	
+le_lpm_lost:
+	fetch 1,mem_sniff_unint_lost
+	sub pdata,30,null
+	nbranch lpm_lost,positive
+	fetcht 2,mem_rx_window_sniff
+	rshift temp,temp
+	fetch 2,mem_le_receive_window
+	iadd temp,pdata
+	store 2,mem_le_receive_window
+	branch lpm_lost
+
+///////////////////////////////BLE CONFIG//////////////////////////////////////////
+le_set_config_fixed_tk:
+	arg BIT_BLE_PASSKEY_FIXED_KEY,queue
+	branch le_set_config
+
+le_clr_config_fixed_tk:
+	arg BIT_BLE_PASSKEY_FIXED_KEY,queue
+	branch le_clr_config
+
+le_set_config_fixed_ltk:
+	arg BIT_BLE_PAIRING_FIXED_LTK,queue
+	branch le_set_config
+
+le_clr_config_fixed_ltk:
+	arg BIT_BLE_PAIRING_FIXED_LTK,queue
+	branch le_clr_config
+
+le_set_config_more_data:
+	arg BIT_BLE_TRANSMIT_PACKET_BY_MD,queue
+	branch le_set_config
+
+le_clr_config_more_data:
+	arg BIT_BLE_TRANSMIT_PACKET_BY_MD,queue
+	branch le_clr_config
+
+le_set_config_read_authentication:
+	arg BIT_BLE_READ_AUTH,queue
+	branch le_set_config
+
+le_clr_config_read_authentication:
+	arg BIT_BLE_READ_AUTH,queue
+	branch le_clr_config
+
+le_set_config_write_authentication:
+	arg BIT_BLE_WRITE_AUTH,queue
+	branch le_set_config
+
+le_clr_config_write_authentication:
+	arg BIT_BLE_WRITE_AUTH,queue
+	branch le_clr_config
+
+le_set_config_short_mult:
+	arg BIT_BLE_SHORT_MULT,queue
+//	branch le_set_config
+le_set_config:
+	fetch 1,mem_le_configuration
+	qset1 pdata
+	store 1,mem_le_configuration
+	rtn
+
+
+le_clr_config_short_mult:
+	arg BIT_BLE_SHORT_MULT,queue
+//	branch le_clr_config
+le_clr_config:
+	fetch 1,mem_le_configuration
+	qset0 pdata
+	store 1,mem_le_configuration
+	rtn
+
+
+
+le_set_fixed_ltk:
+	setarg 0x112233
+	store 3,mem_le_fixed_ltk
+	setarg 0x445566
+	istore 3,contw
+	setarg 0x778899
+	istore 3,contw
+	setarg 0x001122
+	istore 3,contw
+	setarg 0x334455
+	istore 3,contw
+	setarg 0x66
+	istore 1,contw
+	rtn
+
+
+le_set_justwork:
+	setarg 0x01000302
+	store 4,mem_le_pres
+	setarg 0x010010
+	store 3,mem_le_pres_max_keysize
+	jam 1,mem_le_pairing_mode
+	rtn
+
+/////////////////////////////////////////////////////////////////////////
+
+le_fifo_malloc_tx_empty:
+	arg 0,rega
+	arg LLID_EMPTY,type
+	branch le_fifo_malloc_tx
+
+
+//rega:len regb:ll opcode
+le_fifo_malloc_tx_ll:
+	bpatchx patch28_0,mem_patch28
+	arg LLID_LE_LL,type
+	call le_fifo_malloc_tx
+	copy regb,pdata
+	istore 1,contw
+	rtn
+	
+
+//rega:len regb:cid
+le_fifo_malloc_tx_l2cap:
+	bpatchx patch28_1,mem_patch28
+	force LLID_START,type
+	increase 4,rega
+	call le_fifo_malloc_tx
+	increase -4,rega
+	copy rega,pdata
+	istore 2,contw
+	copy regb,pdata
+	istore 2,contw
+	rtn
+
+
+//rega:len type:llid
+le_fifo_malloc_tx:
+	bpatchx patch28_2,mem_patch28
+	increase 5,rega
+	call ble_l2cap_malloc
+	increase -5,rega
+	copy rega,pdata
+	istore 2,contw				//lengh
+	setarg 0
+	istore 2,contw				//offset
+	copy type,pdata
+	istore 1,contw				//LLID
+	rtn
+
+
+le_fifo_get_first_tx_ptr:
+	bpatchx patch28_3,mem_patch28
+	call l2cap_malloc_fifo_out
+	copy pdata,contr
+	rtn
+
+le_fifo_get_second_tx_ptr:
+	fetch 2,mem_tx_fifo2_ptr
+	rtn
+
+le_fifo_get_last_tx_ptr:
+	call le_fifo_get_last_tx_ptr0
+	copy pdata,contr
+	rtn
+
+
+le_fifo_get_last_tx_ptr0:
+	fetch 2,mem_tx_fifo3_ptr
+	rtn
+
+
+le_fifo_get_first_l2cap_ptr:
+	call le_fifo_get_first_tx_ptr
+	increase 5,contr
+	rtn
+
+le_fifo_get_first_att_ptr:
+	call le_fifo_get_first_tx_ptr
+	increase 9,contr
+	rtn
+
+le_fifo_get_last_att_ptr:
+	call le_fifo_get_last_tx_ptr
+	increase 9,contr
+	rtn
+
+le_fifo_get_last_l2cap_ptr:
+	call le_fifo_get_last_tx_ptr
+	increase 5,contr
+	rtn
+
+
+le_fifo_check_full:
+	branch l2cap_malloc_is_fifo_full
+
+
+le_fifo_check_nearly_full:
+	branch l2cap_malloc_is_fifo_nearly_full
+
+	
+le_fifo_check_empty:
+	branch l2cap_malloc_is_fifo_empty
+
+
+le_fifo_release_first_node:
+	branch l2cap_malloc_free
+
+
+/*
+	function name:le_set_dle (data packet length extension)
+	input:pdata is dle params
+	bit0~bit15 max rx octets
+	bit16~bit31 max rx time
+	bit32~bit47 max tx octets
+	bit48~bit63 max tx time
+*/
+le_set_dle:
+	store 8,mem_local_rx_max_octets
+	branch le_set_feature_data_packet_length_extension
+
+
+/*
+	function name:le_set_phys
+	input:temp is tx & rx phys
+	bit0~bit7 is tx phys
+	bit8~bit15 is rx phys
+*/
+le_set_phys:
+	and temp,0xff,rega
+	call le_set_tx_phy
+	rshift8 temp,rega
+//	branch le_set_rx_phy
+le_set_rx_phy:
+	storer rega,1,mem_le_rx_phys
+	branch le_set_phy_common
+
+le_set_tx_phy:
+	storer rega,1,mem_le_tx_phys
+le_set_phy_common:	
+	isolate1 BIT_LE_2M_PHY,rega
+	call le_set_feature_2M_phy,true
+	isolate1 BIT_LE_CODED_PHY,rega
+	call le_set_feature_coded_phy,true
+	rtn
+
+
+
+le_set_feature_2M_phy:
+	arg BIT_LL_FEATURE_LE_2M_PHY,queue
+	branch le_set_feature
+
+
+le_set_feature_coded_phy:
+	arg BIT_LL_FEATURE_LE_CODED_PHY,queue
+	branch le_set_feature
+
+le_set_feature_data_packet_length_extension:
+	arg BIT_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION,queue
+//	branch le_set_feature
+le_set_feature:
+	fetch 8,mem_le_local_feature
+	qset1 pdata
+	store 8,mem_le_local_feature
+	rtn
+
+le_set_fixed_ltk_justwork:
+	call le_set_config_fixed_ltk
+	call le_set_justwork
+	call le_set_fixed_ltk
+	branch le_set_config_read_authentication
+
+
Index: program/ble_protocol_stack/le_advertising.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_advertising.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_advertising.prog	(working copy)
@@ -0,0 +1,396 @@
+
+/*
+ble core spec advertising
+*/
+
+le_advertising_dispatch:
+	jam FUN_RX_LL_1M_PHY,mem_le_rx_phy
+	jam FUN_TX_LL_1M_PHY,mem_le_tx_phy
+	call le_enable
+	call le_scan
+	call le_adv
+	branch le_disable
+
+le_scan:
+	bpatchx patch28_4,mem_patch28
+	fetch 1,mem_le_scan_enable
+	rtnne LE_SCAN_ENABLE
+	arg le_scan_interval_timer,queue
+	call timer_check
+	nrtn blank
+	fetch 2,mem_le_scan_interval
+	fetcht 2,mem_le_scan_window
+	isub temp,pdata
+	arg le_scan_interval_timer,queue
+	call timer_init
+	disable master
+	call le_init_adv
+	call le_wait_adv
+	nrtn match
+	bpatchx patch28_5,mem_patch28
+	fetch 6,mem_le_rxbuf+2
+	store 6,mem_le_plap
+//	call le_scan_dongle
+
+	fetch 1,mem_le_adv_rcv
+	increase 1,pdata
+	store 1,mem_le_adv_rcv
+	call le_create_conn
+	rtn master
+	call le_send_scan_request
+	nrtn match
+	fetch 1,mem_le_scanrsp_rcv
+	increase 1,pdata
+	store 1,mem_le_scanrsp_rcv
+	fetch 9,mem_le_rxbuf+8
+	store 9,mem_temp_block0
+	rtn
+
+
+le_wait_adv:
+	bpatchx patch28_6,mem_patch28
+	call le_next_adv_channel
+	call le_receive_adv
+	fetch 1,mem_le_adv_waitcnt
+	increase 1,pdata
+	store 1,mem_le_adv_waitcnt
+	rtn
+
+
+le_create_conn:
+	bpatchx patch28_7,mem_patch28
+	fetch 1,mem_cmd_le_create_conn
+	rtnne hci_cmd_le_create_conn
+	fetch 6,mem_le_plap
+	fetcht 6,mem_le_conn_peer_addr
+	isub temp,null
+	nrtn zero
+	call context_new
+	nrtn zero
+	call le_connect_request
+	call le_init_master
+	call le_send_version_ind
+	jam BT_EVT_LE_CONNECTED,mem_fifo_temp
+	call ui_ipc_send_event	
+	jam 0,mem_hci_cmd
+	jam 0,mem_le_peer_sca
+	jam 0,mem_le_scan_enable
+	jam 0,mem_cmd_le_create_conn
+	branch context_save
+
+le_connect_request:
+	bpatchx patch29_0,mem_patch29
+	force -1,pdata
+	setsect 2,1
+	store 5,mem_le_channel_map
+	arg mem_le_state,rega	
+	call le_calc_channel_map	
+	force 4,loopcnt
+	arg mem_le_access,contw
+	call generate_random_loop
+	fetch 2,mem_le_timeout
+	store 2,mem_le_superto
+le_con_req_hop_retry:
+	random pdata
+	and_into 0xf,pdata
+	sub pdata,4,null
+	branch le_con_req_hop_retry,positive
+	store 1,mem_le_hop
+//	store 1,mem_tmp1
+	bpatchx patch29_1,mem_patch29
+	fetcht 2,mem_le_conn_interval
+	storet 2,mem_le_tsniff	
+	copy temp,regc			// tsniff in regc
+	add clkn_bt,7,pdata			// leave space for offset
+	idiv regc
+	call wait_div_end
+	remainder rega
+	isub rega,pdata
+	iadd regc,pdata
+	fetcht 2,mem_le_dsniff
+	iadd temp,pdata
+	store 4,mem_le_anchor
+	isub clkn_bt,rega
+	increase -6,rega			// window offset
+	arg 0x2205,regb			// length & CONN_REQ PDU
+	fetch 1,mem_le_conn_own_addr_type
+	nsetflag blank,LE_SENDER_ADDR_BIT,regb
+	fetch 1,mem_le_conn_peer_addr_type
+	nsetflag blank,LE_RECEIVER_ADDR_BIT,regb
+	copy regb,pdata
+	store 2,mem_le_txheader
+	fetch 6,mem_le_lap
+	istore 6,contw//own addr
+	fetch 6,mem_le_plap
+	istore 6,contw// peer addr
+	fetch 4,mem_le_access
+	istore 4,contw
+	random pdata
+	istore 2,contw				/* crc init */
+	random pdata
+	istore 1,contw
+	force 2,pdata				/* window size */	
+	istore 1,contw
+	rshift2 rega,pdata
+	istore 2,contw				/* window offset */
+	rshift2 regc,pdata			
+	istore 2,contw				/* conn Interval */
+	bpatchx patch29_2,mem_patch29
+	setarg 0					/* slave latency */
+	istore 2,contw
+	fetch 2,mem_le_timeout
+	istore 2,contw
+	fetch 5,mem_le_channel_map
+	istore 5,contw				/* channel map */
+	fetch 1,mem_le_hop
+	arg param_le_sca,temp
+	ior temp,pdata
+	istore 1,contw
+	call le_transmit_norx
+	setarg mem_le_txheader
+	add pdata,18,contr
+	ifetch 3,contr
+	store 3,mem_le_crcinit
+	rtn
+		
+
+le_adv:
+	jam 36,mem_le_ch_mapped
+	jam 0,mem_le_adv_channel_map_temp
+	call le_send_adv_protect_txbuf
+	call le_adv_loop
+	branch le_send_adv_recover_txbuf
+	
+le_adv_loop:
+	bpatchx patch29_3,mem_patch29
+	fetch 1,mem_le_adv_enable
+	rtn blank
+	arg le_adv_interval_timer,queue
+	call timer_check
+	nrtn blank
+	enable swfine
+	call le_init_adv
+	call le_next_adv_channel
+	call le_send_adv_ind
+	nbranch le_adv_not_match,match
+	fetch 1,mem_le_req_rcv
+	increase 1,pdata
+	store 1,mem_le_req_rcv
+	fetch 1,mem_le_rxbuf_adv_header
+	and pdata,0x0f,pdata
+	beq SCAN_REQ,le_send_scan_response
+	beq CONNECT_REQ,le_parse_connect_req
+le_adv_not_match:
+	bpatchx patch29_4,mem_patch29
+	fetch 1,mem_le_adv_channel_map_temp
+	fetcht 1,mem_le_adv_channel_map
+	isub temp,null
+	nbranch le_adv_loop,zero
+	random pdata 
+	arg 0x1ff,temp
+	iand temp,pdata
+	add pdata,250,pdata
+	call delay
+	arg le_adv_interval_timer,queue
+	fetch 2,mem_le_adv_interval
+	branch timer_init
+
+le_send_adv_protect_txbuf:
+	arg mem_le_tx_buf_temp,contw
+	arg mem_le_txheader,contr	
+	branch memcpy48
+	
+le_send_adv_recover_txbuf:
+	arg mem_le_tx_buf_temp,contr
+	arg mem_le_txheader,contw
+	branch memcpy48
+
+le_init_adv:
+	bpatchx patch29_5,mem_patch29
+	disable master
+le_adv_access:
+	setarg 0x8e89be
+	lshift8 pdata,pdata
+	or_into 0xd6,pdata
+	iforce access
+	setarg 0x555555
+	store 3,mem_le_crcinit
+	rtn
+
+
+
+le_send_adv_ind:
+	bpatchx patch29_6,mem_patch29
+	fetch 1,mem_le_adv_type
+	fetcht 1,mem_le_adv_own_addr_type
+	lshift4 temp,temp
+	lshift2 temp,temp
+	iadd temp,temp
+	storet 1,mem_le_txheader
+	beq ADV_DIRECT_IND,le_send_adv_direct_ind
+	fetcht 1,mem_le_adv_data_len
+	add temp,6,pdata
+	store 1,mem_le_txlen
+	fetch 6,mem_le_lap
+	store 6,mem_le_txpayload
+	copy temp,loopcnt
+	arg mem_le_adv_data,contr
+	call memcpy_fast
+	branch le_send_adv_transmit
+
+le_send_adv_direct_ind:
+	setarg 12
+	store 1,mem_le_txlen
+	fetch 6,mem_le_lap
+	store 6,mem_le_txpayload
+	fetch 6,mem_hci_plap
+	istore 6,contw
+le_send_adv_transmit:
+	bpatchx patch29_7,mem_patch29
+	fetch 1,mem_le_adv_transmit
+	increase 1,pdata
+	store 1,mem_le_adv_transmit
+	arg 1800,stop_watch
+	disable match
+	branch le_transmit_receive_sifs_without_change_mode
+
+
+le_send_scan_request:
+	bpatchx patch2a_0,mem_patch2a
+	fetch 1,mem_le_scan_type
+	rtnne LE_SCAN_TYPE_ACTIVE
+	fetch 1,mem_le_adv_transmit
+	increase 1,pdata
+	store 1,mem_le_adv_transmit
+	arg 0x0c03,temp// length + SCAN_REQ PDU
+	fetch 1,mem_le_scan_own_addr_type
+	nsetflag blank,LE_SENDER_ADDR_BIT,temp
+	copy rega,pdata
+	nsetflag blank,LE_RECEIVER_ADDR_BIT,temp	
+	storet 2,mem_le_txheader
+	fetch 6,mem_le_lap
+	istore 6,contw
+	fetch 6,mem_le_plap
+	istore 6,contw
+	branch le_transmit_receive_sifs_without_change_mode
+
+le_send_scan_response:
+	bpatchx patch2a_1,mem_patch2a
+	fetch 6,mem_le_rxbuf_adv_scan_req_adv_address
+	fetcht 6,mem_le_lap
+	isub temp,null
+	nrtn zero
+	arg SCAN_RSP,temp
+	fetch 1,mem_le_adv_own_addr_type
+	nsetflag blank,LE_SENDER_ADDR_BIT,temp
+	storet 1,mem_le_txheader
+	fetcht 1,mem_le_scan_data_len
+	add temp,6,pdata
+	store 1,mem_le_txlen
+	fetch 6,mem_le_lap
+	store 6,mem_le_txpayload
+	arg mem_le_scan_data,contr
+	copy temp,loopcnt
+	call memcpy_fast
+	call le_transmit_norx
+	branch le_adv_not_match
+
+le_parse_connect_req:
+	fetch 6,mem_le_rxbuf_adv_connect_ind_adv_address
+	fetcht 6,mem_le_lap
+	isub temp,null
+	nrtn zero
+	call le_scan_check_sender_addr_type
+	storer rega,1,mem_le_conn_peer_addr_type
+	fetch 6,mem_le_rxbuf_adv_connect_ind_init_address
+	store 6,mem_le_plap
+	fetch 8,mem_le_rxbuf_adv_connect_ind_access_address
+	store 8,mem_le_access 	// and crcinit & window size
+	fetcht 2,mem_le_rxbuf_adv_connect_ind_win_offset	// transmit offset
+	bpatchx patch2a_2,mem_patch2a
+	lshift2 temp,temp
+	fetch 2,mem_le_rxbuf_adv_connect_ind_interval	// connInterval
+	lshift2 pdata,pdata
+	store 2,mem_le_tsniff
+	store 4,mem_le_anchor
+	isub temp,pdata
+	add pdata,-2,clke_bt
+	fetch 9,mem_le_rxbuf_adv_connect_ind_latency
+	store 9,mem_le_slave_latency// and super to & channel map
+	fetch 1,mem_le_rxbuf_adv_connect_ind_hop_and_sca
+	and pdata,0x1f,temp
+	storet 1,mem_le_hop
+	rshift4 pdata,temp
+	rshift temp,temp
+	storet 1,mem_le_peer_sca
+	arg mem_le_state,rega
+	call le_receive_window_size
+	arg mem_le_state,rega	
+	call le_calc_channel_map
+	call le_init_slave
+	call context_new
+	nrtn zero
+	bpatchx patch2a_3,mem_patch2a
+	call calc_clke_offset
+	call le_l2cap_reset_signaling_identifier
+	jam BT_EVT_LE_CONNECTED,mem_fifo_temp
+	call ui_ipc_send_event
+	branch context_save
+
+
+le_next_adv_channel:
+	bpatchx patch2a_4,mem_patch2a
+	fetch 1,mem_le_ch_mapped
+	beq 37,le_next_adv_channel_curr_channel_37
+	beq 38,le_next_adv_channel_curr_channel_38
+	beq 39,le_next_adv_channel_curr_channel_39
+	branch le_next_adv_channel_curr_channel_39
+
+le_next_adv_channel_curr_channel_37:
+	fetcht 1,mem_le_adv_channel_map
+	isolate1 BIT_ADV_CHANNEL_MAP_38,temp		//check 38 channel enable
+	branch set_le_next_adv_channel_38,true
+	isolate1 BIT_ADV_CHANNEL_MAP_39,temp		//check 39 channel enable
+	branch set_le_next_adv_channel_39,true
+	branch set_le_next_adv_channel_37
+
+
+le_next_adv_channel_curr_channel_38:
+	fetcht 1,mem_le_adv_channel_map
+	isolate1 BIT_ADV_CHANNEL_MAP_39,temp		//check 39 channel enable
+	branch set_le_next_adv_channel_39,true
+	isolate1 BIT_ADV_CHANNEL_MAP_37,temp		//check 37 channel enable
+	branch set_le_next_adv_channel_37,true
+	branch set_le_next_adv_channel_38
+
+
+le_next_adv_channel_curr_channel_39:
+	fetcht 1,mem_le_adv_channel_map
+	isolate1 BIT_ADV_CHANNEL_MAP_37,temp		//check 37 channel enable
+	branch set_le_next_adv_channel_37,true
+	isolate1 BIT_ADV_CHANNEL_MAP_38,temp		//check 38 channel enable
+	branch set_le_next_adv_channel_38,true
+	branch set_le_next_adv_channel_39
+
+set_le_next_adv_channel_37:
+	jam 37,mem_le_ch_mapped
+	fetch 1,mem_le_adv_channel_map_temp
+	set1 BIT_ADV_CHANNEL_MAP_37,pdata
+	store 1,mem_le_adv_channel_map_temp
+	rtn
+
+set_le_next_adv_channel_38:
+	jam 38,mem_le_ch_mapped
+	fetch 1,mem_le_adv_channel_map_temp
+	set1 BIT_ADV_CHANNEL_MAP_38,pdata
+	store 1,mem_le_adv_channel_map_temp
+	rtn
+
+set_le_next_adv_channel_39:
+	jam 39,mem_le_ch_mapped
+	fetch 1,mem_le_adv_channel_map_temp
+	set1 BIT_ADV_CHANNEL_MAP_39,pdata
+	store 1,mem_le_adv_channel_map_temp
+	rtn
+
+
Index: program/ble_protocol_stack/le_l2cap_att.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_l2cap_att.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_l2cap_att.prog	(working copy)
@@ -0,0 +1,1052 @@
+
+
+le_parse_att:
+	copy contr,rega
+	fetch 1,mem_device_option
+	beq DVC_OP_SHUTTER_DY,shutter_dy_le_parse_att
+	beq DVC_OP_KEYBOARD,keyboard_le_att_auto_reco_process
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+le_parse_att2:
+	beq ATTOP_EXCHANGE_MTU_REQUEST,le_parse_att_exchange_mtu_request
+	beq ATTOP_EXCHANGE_MTU_RESPONSE,le_parse_att_exchange_mtu_response
+	beq ATTOP_FIND_INFORMATION_REQUEST,le_parse_att_find_information_request
+	beq ATTOP_FIND_BY_TYPE_VALUE_REQUEST,le_parse_att_find_by_type_value_request
+	beq ATTOP_READ_BY_TYPE_REQUEST,le_parse_att_read_by_type_request
+	beq ATTOP_READ_REQUEST,le_parse_att_read_request
+	beq ATTOP_READ_BLOB_REQUEST,le_parse_att_read_blob_request
+	beq ATTOP_READ_BY_GROUP_TYPE_REQUEST,le_parse_att_read_by_group_type_request
+	beq ATTOP_WRITE_REQUEST,le_parse_att_write_request
+	beq ATTOP_PREPARE_WRITE_REQUEST,le_parse_att_prepare_write_request
+	beq ATTOP_EXECUTE_WRITE_REQUEST,le_parse_att_execute_write_request
+	beq ATTOP_HANDLE_VALUE_CONFIRMATION,le_parse_handle_value_confirmation
+	beq ATTOP_WRITE_COMMAND,le_parse_att_write_command
+	rtn
+
+
+le_send_att_exchange_mtu_requset:
+	force 3,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_EXCHANGE_MTU_REQUEST
+le_send_att_exchange_mtu_common:
+	istore 1,contw
+	fetch 2,mem_le_local_mtu
+	istore 2,contw
+	rtn
+
+
+le_parse_att_exchange_mtu_request:
+	call le_parse_att_exchange_mtu_response
+le_send_att_exchange_mtu_response:
+	force 3,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_EXCHANGE_MTU_RESPONSE
+	branch le_send_att_exchange_mtu_common
+
+le_parse_att_exchange_mtu_response:
+	rshift8 pdata,pdata
+	store 2,mem_le_remote_mtu
+	rtn
+
+le_parse_att_find_information_request:
+	call le_get_search_handle_start_end_common
+	call enable_user
+	branch le_send_att_find_information_response
+
+/* blank:end of list, positive:in range */
+le_att_handle_inrange:
+	ifetch 2,contr
+	and_into 0xff,pdata
+	rtn blank
+	isub regb,null			/* less than start ? */
+	rtn zero
+	nrtn positive
+	isub regc,null			/* greater than end ? */
+	rtn zero
+	branch le_att_handle_blank,positive
+	force 1,null
+	rtn
+le_att_handle_blank:
+	force 0,pdata
+	rtn
+
+	
+le_send_att_find_information_response:
+	arg 3,timeup
+	call le_init_attlist_search
+le_send_att_find_information_res_loop:
+	call le_att_handle_inrange
+	branch le_send_att_find_information_res_end,blank
+	nbranch le_send_att_find_information_res_next,positive
+	increase -2,contr
+	call store_contr
+	call get_contw
+	nbranch le_send_att_find_information_res_store_info2,user
+	call push_stack_rega_b_c
+	storer timeup,4,mem_timeup
+	force 30,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	fetchr timeup,4,mem_timeup
+	call pop_stack_rega_b_c
+	call disable_user
+	setarg ATTOP_FIND_INFORMATION_RESPONSE
+	istore 1,contw
+	call get_contr
+	ifetch 2,contr
+	ifetchr rega, 1,contr
+	sub rega,16,null
+	branch le_send_att_find_information_res_uuid128,zero
+	sub rega,2,null
+	nbranch le_send_att_error_response_notfound,zero
+le_send_att_find_information_res_uuid16:
+	setarg UUID_SIZE_16BIT
+	istore  1,contw
+	branch le_send_att_find_information_res_store_info
+	
+le_send_att_find_information_res_uuid128:
+	setarg UUID_SIZE_128BIT
+	istore 1,contw
+	arg 1,timeup
+	branch le_send_att_find_information_res_store_info
+		
+le_send_att_find_information_res_store_info2:
+	call get_contr
+	ifetch 2,contr
+	ifetch 1,contr
+	isub rega,null //uuid size format
+	nbranch le_send_att_find_information_res_end,zero
+	
+le_send_att_find_information_res_store_info:
+	call get_contr
+	ifetch 2,contr
+	and_into 0xff,pdata
+	istore 2,contw
+	ifetchr loopcnt, 1,contr
+	call memcpy
+	call store_contw
+	increase -1,timeup
+	branch le_send_att_find_information_res_end,zero
+le_send_att_find_information_res_cont:
+	call le_att_contr_add_len
+	branch le_send_att_find_information_res_loop
+	
+le_send_att_find_information_res_next:
+	call le_att_contr_add_len
+	branch le_send_att_find_information_res_cont
+	
+le_send_att_find_information_res_end:
+	branch le_send_att_error_response_notfound,user
+	branch le_send_auto_len_by_mem
+
+
+le_parse_att_find_by_type_value_request:
+	call le_get_search_handle_start_end_common
+	ifetch 2,contr
+	store 2,mem_le_search_uuid
+	call store_contr
+	arg mem_le_search_att_type_length,contw
+	fetch 2,mem_le_l2cap_size
+	increase -7,pdata
+	call le_get_search_common2
+	branch le_send_att_find_by_type_value_response
+
+
+le_start_end_handle_check_1:
+	disable user
+	fetcht 2,mem_le_search_handle_start
+	fetch 2,mem_le_search_handle_end
+	isub temp,null
+	nbranch le_start_end_handle_check_1_fail,positive
+	deposit temp
+	rtnne 0
+le_start_end_handle_check_1_fail:
+	enable user
+	jam ATT_ERR_INVALID_HANDLE,mem_le_err_code
+	branch le_send_att_error_response
+
+
+le_send_att_find_by_type_value_response:
+	call le_start_end_handle_check_1
+	rtn user
+	fetcht 2,mem_le_search_uuid
+	setarg UUID_GATT_PRIMARY_SERVICE
+	isub temp,null
+	branch le_send_att_find_by_type_value_res_primary,zero
+	branch le_send_att_error_response_notfound
+	
+
+le_send_att_find_by_type_value_res_primary:
+	jam LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND,mem_le_search_res
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_att_get_handle_info
+	nbranch le_send_att_error_response_notfound,blank
+le_send_att_find_primary_search_loop:
+	fetcht 2,mem_temp
+	call le_att_get_handle_info
+	nbranch le_send_att_error_response_notfound2,blank	
+	copy contr,rega
+	fetch 1,mem_le_curr_att_len
+	copy pdata,loopcnt
+	fetcht 1,mem_le_search_att_type_length
+	isub temp,null
+	nbranch le_send_att_find_primary_search_loop1,zero
+	arg mem_le_search_att_type,regb
+	call string_compare
+
+	branch le_send_att_find_primary_search_end_start_handle_found,zero
+
+	fetch 2,mem_le_cur_uuid
+	fetcht 2,mem_le_search_uuid
+	isub temp,null
+	branch le_send_att_find_primary_search_end_ending_handle_found,zero
+le_send_att_find_primary_search_loop1:
+	fetch 2,mem_temp
+	increase 1,pdata
+	store 2,mem_temp
+	branch le_send_att_find_primary_search_loop
+
+le_send_att_error_response_notfound2:
+	fetch 1,mem_le_search_res
+	beq LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE,le_send_att_find_primary_search_end_ending_handle_found
+	branch le_send_att_error_response_notfound
+
+	
+le_send_att_find_primary_search_end_start_handle_found:
+	fetch 2,mem_le_cur_uuid
+	fetcht 2,mem_le_search_uuid
+	isub temp,null
+	nbranch  le_send_att_find_primary_search_loop1,zero
+	jam LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE,mem_le_search_res
+//	copy rega,temp
+	fetcht 2,mem_temp
+	storet 2,mem_le_cur_handle_start
+	branch le_send_att_find_primary_search_loop1
+
+le_send_att_find_primary_search_end_ending_handle_found:
+	fetch 1,mem_le_search_res
+	beq LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND,le_send_att_find_primary_search_loop1
+	jam LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE,mem_le_search_res
+	fetcht 2,mem_temp
+	increase -1,temp
+	storet 2,mem_le_cur_handle_end
+	
+le_send_att_find_primary_search_end:
+	arg 5,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+	istore 1,contw
+	fetch 2,mem_le_cur_handle_start
+	istore 2,contw
+	fetch 2,mem_le_cur_handle_end
+	istore 2,contw
+	rtn
+
+
+
+le_parse_att_read_by_type_request:
+	call le_get_search_handle_start_end_common
+	call le_get_search_att_type
+	branch le_send_att_read_by_type_response
+	
+le_send_att_read_by_type_response:
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_init_attlist_search
+	call le_att_get_handle_ptr2
+	increase -2,contr
+	copy contr,pdata
+	store 2,mem_le_cur_attlist_start_ptr
+
+	fetcht 2,mem_le_search_att_type
+	setarg UUID_CHRCTR_DEVICE_NAME
+	isub temp,null
+	branch le_send_att_read_by_type_res_device_name,zero
+	setarg UUID_GATT_CHARACTERISTIC
+	isub temp,null
+	nbranch le_send_att_read_by_type_res_not_characteristic,zero
+	arg 2,timeup
+le_send_att_read_by_type_response_loop:
+	call le_att_check_handle_end
+	nbranch le_send_att_read_by_type_response_end,positive
+	fetcht 2,mem_temp
+	call le_att_get_handle_info_from_ptr
+	nbranch le_send_att_read_by_type_response_end,blank
+	call le_att_same_type
+	nbranch le_send_att_read_by_type_response_next_handle,zero
+	nbranch le_send_att_read_by_type_res_found_next,user
+	disable user
+ 	call le_get_search_max_mtu_data
+	copy pdata,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BY_TYPE_RESPONSE
+	istore 1,contw
+	copy contw,alarm
+	increase 1,contw
+	
+	call le_send_att_read_by_type_write_properties
+	call le_att_next_handle
+	call le_att_get_handle_info_from_ptr
+	call le_send_att_read_by_type_write_uuid
+	fetch 1,mem_le_cur_uuid_length
+	add pdata,5,rega
+	istorer rega,1,alarm
+	
+	sub rega,7,null
+	ncall enable_user2,zero
+	call disable_user2,zero
+ 	call le_get_search_max_mtu_data
+ 	increase -2,pdata
+	idiv rega
+	call wait_div_end
+	quotient timeup
+	increase -1,timeup
+	branch le_send_att_read_by_type_response_end,zero
+le_send_att_read_by_type_response_next_handle:
+	call le_att_next_handle
+	branch le_send_att_read_by_type_response_loop
+le_send_att_read_by_type_response_end:
+	branch le_send_att_error_response_notfound,user
+	branch le_send_auto_len_by_mem
+
+le_send_att_read_by_type_res_found_next:
+	call le_store_att_record
+	call le_att_next_handle
+	call le_att_get_handle_info_from_ptr
+	call le_send_att_read_by_type_res_check_pair_length_type
+	nbranch le_send_att_read_by_type_response_end,blank
+
+	call get_contw
+	fetch 2,mem_temp
+	increase -1,pdata
+	istore 2,contw
+	call le_write_att_record_common
+	call le_send_att_read_by_type_write_uuid
+	increase -1,timeup
+	branch le_send_att_read_by_type_response_end,zero
+	branch le_send_att_read_by_type_response_next_handle
+
+	
+le_send_att_read_by_type_write_properties:
+	fetch 2,mem_temp
+	istore 2,contw
+	
+	fetch 1,mem_le_curr_att_len
+	copy pdata,loopcnt
+	call get_contr
+	call memcpy_fast
+	branch store_contw
+le_send_att_read_by_type_write_uuid:
+	call get_contw
+	fetch 2,mem_temp
+	istore 2,contw
+	call store_contw
+	fetch 1,mem_le_cur_uuid_length
+	copy pdata,loopcnt
+	call get_contw	
+	call get_contr
+	isub loopcnt,contr
+	increase -1,contr
+	call memcpy_fast
+	branch store_contw
+
+le_send_att_read_by_type_res_not_characteristic:
+	bpatchx patch2a_5,mem_patch2a
+	call le_att_get_uuid_ptr
+	branch le_send_att_error_response_notfound,blank
+	copy contr,regc
+	
+	call le_get_search_max_mtu_data
+	copy regc,contr
+	ifetcht 1,contr
+	increase 4, temp
+	call not_greater_than
+	copy pdata,regc
+	copy pdata,rega
+	call store_contr
+	call le_fifo_malloc_tx_l2cap_gatt
+
+	setarg ATTOP_READ_BY_TYPE_RESPONSE
+	istore 1,contw
+	add regc,-2,pdata
+	add pdata ,-2,loopcnt
+	istore 1,contw
+	fetch 2,mem_le_cur_handle
+	istore 2,contw
+	call get_contr
+	branch  memcpy_fast
+
+	
+le_send_att_read_by_type_res_device_name:
+	call le_att_get_uuid_ptr
+	branch le_send_att_error_response_notfound,blank
+	increase -5,contr // point to handle
+	ifetch 2,contr		
+	store 2,mem_temp
+	call le_get_search_max_mtu_data
+	fetcht 1,mem_le_name_len
+	increase 4, temp
+	call not_greater_than
+	copy pdata,regc
+	copy pdata,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BY_TYPE_RESPONSE
+	istore 1,contw
+	add regc,-2,pdata
+	add pdata ,-2,loopcnt
+	istore 1,contw
+	fetch 2,mem_temp
+	istore 2,contw
+	arg mem_le_name,contr
+	branch memcpy_fast
+	
+
+le_init_attlist_search:
+	bpatchx patch2a_6,mem_patch2a
+	fetch 2,mem_le_search_handle_start
+	iforce regb
+	fetch 2,mem_le_search_handle_end
+	iforce regc
+	fetch 2,mem_ui_le_uuid_table
+	iforce contr
+	branch enable_user
+
+
+	/* handle in temp, return pointer in contr to length, blank not found */
+le_att_get_handle_ptr:
+	call le_att_get_handle_ptr2
+	branch le_att_get_handle_ptr_found,zero
+	rtn
+	
+le_att_get_handle_ptr2:
+	bpatchx patch2a_7,mem_patch2a
+	fetch 2,mem_ui_le_uuid_table
+	iforce contr
+le_att_get_handle_loop1:
+	ifetch 2,contr
+	and_into 0xff,pdata
+	rtn blank
+	isub temp,null
+	rtn zero
+	call le_att_contr_add_len
+	call le_att_contr_add_len
+	branch le_att_get_handle_loop1
+	
+le_att_get_handle_ptr_found:
+le_att_contr_add_len:
+	ifetch 1,contr
+	iadd contr,contr	
+	rtn	
+	
+
+le_att_get_uuid_ptr:
+	bpatchx patch2b_0,mem_patch2b
+	fetch 2,mem_ui_le_uuid_table
+	iforce contr
+le_att_get_uuid_loop:
+	ifetch 2,contr
+	and_into 0xff,pdata
+	rtn blank
+	store 2,mem_le_cur_handle  //handle
+	ifetch 1,contr
+	copy contr,contw
+	iadd contr,contr
+	fetcht 1,mem_le_search_att_type_length
+	isub temp,null
+	nbranch le_att_get_uuid_ptr_next,zero
+	copy pdata,loopcnt
+	copy contw,regb
+	arg mem_le_search_att_type ,rega
+	call string_compare
+	rtn zero
+	fetch 1,mem_le_search_att_type_length
+le_att_get_uuid_ptr_next:	
+	iadd contw,contr
+	call le_att_contr_add_len
+	branch le_att_get_uuid_loop	
+
+
+
+
+//output:temp:new handle num
+//contr:address write data
+le_att_get_last_handle:
+	arg 0x01,temp
+	fetch 2,mem_ui_le_uuid_table
+	iforce contr
+	copy contr,contw
+le_att_get_last_handle_loop:
+	ifetch 2,contr
+	and_into 0xff,pdata
+	rtn blank
+	add pdata,1,temp
+	call le_att_contr_add_len
+	call le_att_contr_add_len
+	copy contr,contw
+	branch le_att_get_last_handle_loop
+
+
+le_att_get_handle_info_from_ptr:
+	fetch 2, mem_le_cur_attlist_start_ptr
+	branch le_att_get_handle_info_fast
+
+le_att_get_handle_info:
+	bpatchx patch2b_1,mem_patch2b
+	fetch 2,mem_ui_le_uuid_table
+le_att_get_handle_info_fast:
+	iforce contr
+le_att_get_handle_loop:
+	ifetch 2,contr
+	and_into 0xff,pdata
+	branch le_att_unfind_handle,blank
+	isub temp,null
+	branch le_att_finded_handle, zero
+	call le_att_contr_add_len
+	call le_att_contr_add_len
+	branch le_att_get_handle_loop
+	
+le_att_unfind_handle:
+	branch disable_blank
+
+le_att_finded_handle:
+	ifetch 1,contr
+	store 1,mem_le_cur_uuid_length
+	copy pdata,loopcnt
+	arg mem_le_cur_uuid,contw
+	call memcpy_fast
+	ifetch 1,contr
+	store 1,mem_le_curr_att_len
+	call store_contr
+	branch enable_blank
+
+
+
+le_parse_att_read_request:
+	call le_check_encrypt_state
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,le_send_att_read_response_check_auth
+
+//input:temp is handle
+le_send_att_read_response:
+	call le_att_get_handle_ptr2
+	nbranch le_send_att_error_response_notfound,zero
+	call le_send_att_read_response_check_handle,user
+	rtn user
+	call le_att_get_handle_ptr_found
+	increase -2,contr
+	ifetch 2,contr
+	arg UUID_CHRCTR_DEVICE_NAME,temp
+	isub temp,null
+	branch le_send_device_name,zero
+	copy contr,regc
+	call le_get_search_max_mtu_data
+	copy regc,contr
+	ifetcht 1,contr
+	increase 1,temp
+	call not_greater_than
+le_send_att_read_response_less:
+	copy pdata,regc
+	copy pdata,rega
+	call store_contr
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_RESPONSE
+	istore 1,contw
+	add regc,-1,loopcnt
+	call get_contr
+	branch memcpy
+
+le_send_device_name:
+	call le_get_search_max_mtu_data
+	fetcht 1,mem_le_name_len
+	increase 1, temp
+	call not_greater_than
+	copy pdata,regc
+	copy pdata,rega
+
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_RESPONSE
+	istore 1,contw
+	add regc,-1,loopcnt
+	arg mem_le_name,contr
+	branch memcpy
+	
+	
+le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	nbranch le_send_att_read_response,user
+le_send_att_read_response_error_insufficient_auth:
+	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
+	branch le_send_att_error_response
+
+le_send_att_read_response_check_handle:
+	increase -2,contr
+	ifetch 2,contr
+	bbit1 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED,le_send_att_read_response_error_insufficient_auth
+	branch disable_user
+
+le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+le_send_att_read_blob_response:
+	call le_att_get_handle_ptr 
+	branch le_send_att_error_response_notfound,blank
+	ifetch 1,contr
+	isub rega,loopcnt
+	nbranch le_send_att_error_response_notfound,positive
+	call store_contr
+	call le_get_search_max_mtu_data
+	add loopcnt,1,temp
+	call not_greater_than
+le_send_att_read_blob_response_less:
+	copy pdata,rega
+	copy pdata,regc
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BLOB_RESPONSE
+	istore 1,contw
+	add regc,-1,loopcnt
+	fetcht 2,mem_le_att_offset
+	call get_contr
+	iadd temp,contr
+	branch memcpy_fast
+
+
+//查询server
+le_parse_att_read_by_group_type_request:
+	call le_get_search_handle_start_end_common
+ 	call le_get_search_att_type
+	branch le_send_att_read_by_group_type_response
+
+
+//mem_le_search_att_type
+//mem_le_search_handle_start
+//mem_le_search_handle_end
+le_send_att_read_by_group_type_response:
+	arg 2,timeup
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_att_get_handle_ptr2
+	increase -2,contr
+	copy contr,pdata
+	store 2,mem_le_cur_attlist_start_ptr
+le_send_att_read_by_group_type_response_loop:
+	call le_att_check_handle_end		//check current handle >= ending handle
+	nbranch le_send_att_read_by_group_type_end0,positive
+	fetcht 2,mem_temp
+	call le_att_get_handle_info_from_ptr	//get current handle info
+	nbranch le_send_att_read_by_group_type_end1,blank
+
+	call le_att_same_type				//compair attr group type
+	nbranch le_send_att_read_by_group_type_next_handle,zero
+	copy timeup,pdata
+	beq 0,le_send_att_read_by_group_type_end1	//loop count
+	nbranch le_send_att_read_by_group_type_store_write_record,user		//un first
+	disable user
+	//first att uuid
+ 	call le_get_search_max_mtu_data
+ 	copy pdata,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+	istore 1,contw
+	fetch 1,mem_le_curr_att_len
+	add pdata,4,rega
+	istorer rega,1,contw
+	call store_contw
+	sub rega,6,null
+	ncall enable_user2,zero
+	call disable_user2,zero
+ 	call le_get_search_max_mtu_data
+ 	increase -2,pdata
+	idiv rega
+	call wait_div_end
+	quotient timeup
+	branch le_send_att_read_by_group_type_store_record
+le_send_att_read_by_group_type_store_write_record:
+	call le_send_att_read_by_group_type_check_pair_length_type
+	nbranch le_send_att_read_by_group_type_end1,blank
+	fetch 2,mem_temp
+	increase -1,pdata
+	store 2,mem_le_cur_handle_end
+	call le_write_att_record
+le_send_att_read_by_group_type_store_record:
+	fetch 2,mem_temp
+	store 2,mem_le_cur_handle_start
+	call le_store_att_record
+	increase -1,timeup
+//	branch le_send_att_read_by_group_type_last_find,zero		
+le_send_att_read_by_group_type_next_handle:
+	call le_att_next_handle
+	branch le_send_att_read_by_group_type_response_loop
+
+le_send_att_read_by_type_res_check_pair_length_type:
+	fetch 1,mem_le_cur_uuid_length
+	branch le_send_att_read_by_group_type_check_pair_length_type+1
+
+//output:blank is same
+le_send_att_read_by_group_type_check_pair_length_type:
+	fetch 1,mem_le_curr_att_len
+	branch le_send_att_read_by_group_type_check_pair_length_type_16byte,user2
+	increase -2,pdata
+	rtn
+
+le_send_att_read_by_group_type_check_pair_length_type_16byte:
+	increase -16,pdata
+	rtn
+
+le_send_att_read_by_group_type_end0:	//> att handle end
+	fetch 2,mem_temp
+	store 2,mem_le_cur_handle_end
+	branch le_send_att_read_by_group_type_end_common
+le_send_att_read_by_group_type_end1:	//>att max list handle or diff len 
+	fetch 2,mem_temp
+	increase -1,pdata
+	store 2,mem_le_cur_handle_end
+	branch le_send_att_read_by_group_type_end_common
+le_send_att_read_by_group_type_end_common:
+	branch le_send_att_error_response_notfound,user
+	call le_write_att_record
+	branch le_send_auto_len_by_mem
+
+
+
+
+le_parse_att_write_request:
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+le_send_att_write_response_check_auth:
+	bpatchx patch2b_2,mem_patch2b
+	call le_check_encrypt_state
+	fetcht 2,mem_le_att_handle
+	call le_att_get_handle_ptr2
+	nbranch le_send_att_write_response_error_invalid_handle,zero
+	call le_send_att_write_response_check_handle,user
+	rtn user
+
+	fetch 1,mem_le_configuration
+	bbit0 BIT_BLE_WRITE_AUTH,le_send_att_write_response
+
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_write_response,zero
+	call le_check_encrypt_state
+	nbranch le_send_att_write_response,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+
+le_send_att_write_response:
+	force 1,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_WRITE_RESPONSE
+	istore 1,contw
+	rtn
+
+le_send_att_write_response_check_handle:
+	increase -2,contr
+	ifetch 2,contr
+	bbit1 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED,le_send_att_read_response_error_insufficient_auth
+	branch disable_user
+
+le_send_att_write_response_error_invalid_handle:
+	jam ATT_ERR_INVALID_HANDLE,mem_le_err_code
+	branch le_send_att_error_response
+
+
+le_check_encrypt_state:
+	bpatchx patch2b_3,mem_patch2b
+	call disable_user
+	fetch 1,mem_le_pairing_mode
+	rtneq LE_PAIRING_MODE_NONE
+	fetch 1,mem_context
+	rtnbit1 lestate_encryption
+	branch enable_user
+
+
+le_parse_att_prepare_write_request:
+	add contr,2,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-5,regb
+	call le_writeatt_cb
+	branch le_send_att_prepare_write_response
+
+
+le_send_att_prepare_write_response:
+	fetch 2,mem_le_l2cap_size
+	copy pdata,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_PREPARE_WRITE_RESPONSE
+	istore 1,contw
+	fetch 2,mem_le_att_handle
+	istore 2,contw
+	fetch 2,mem_le_l2cap_size
+	add pdata,-5,loopcnt	
+	fetch 2,mem_le_payload_ptr
+	add pdata,7,contr
+	ifetch 2,contr		//offset
+	istore 2,contw
+	branch memcpy_fast
+
+
+
+le_parse_att_execute_write_request:
+
+le_send_att_execute_write_response:
+	force 1,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_EXECUTE_WRITE_RESPONSE
+	istore 1,contw
+	rtn
+
+le_parse_handle_value_confirmation:
+	fetch 1,mem_le_l2cap_att_states
+	set0 BLE_L2CAP_RECV_CONFIRMATION_PACKET,pdata
+	store 1,mem_le_l2cap_att_states
+	rtn
+
+le_parse_att_write_command:
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	branch le_writeatt_cb
+
+
+
+//rga:len temp:handle;rgea,regb,regc already used
+le_att_malloc_tx_notify:
+	copy temp,regc
+	increase 3,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	increase -3,rega
+	setarg ATTOP_HANDLE_VALUE_NOTIFICATION
+	istore 1,contw
+	copy regc,temp
+	istoret 2,contw
+	rtn
+
+//rga:len temp:handle;rgea,regb,regc already used
+le_att_malloc_tx_indication:
+	fetch 1,mem_le_l2cap_att_states
+	set1 BLE_L2CAP_SEND_INDICATION_PACKET,pdata
+	store 1,mem_le_l2cap_att_states
+	copy temp,regc
+	increase 3,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	increase -3,rega
+	setarg ATTOP_HANDLE_VALUE_INDICATION
+	istore 1,contw
+	copy regc,temp
+	istoret 2,contw
+	rtn
+
+
+///////////////////////////ATT common function////////////////////////////////////
+
+le_send_att_error_response_notfound:	
+	bpatchx patch2b_4,mem_patch2b
+	jam ATT_ERR_ATTRIBUTE_NOT_FOUND,mem_le_err_code
+le_send_att_error_response:	
+	force 5,rega
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_ERROR_RESPONSE
+	istore 1,contw
+	fetch 1,mem_le_att_opcode
+	istore 1,contw
+	fetch 2,mem_le_att_handle
+	istore 2,contw
+	fetch 1,mem_le_err_code
+	istore 1,contw
+	rtn
+
+
+le_fifo_malloc_tx_l2cap_gatt:
+	bpatchx patch2b_5,mem_patch2b
+	force LE_L2CAP_CID_ATT,regb
+	branch le_fifo_malloc_tx_l2cap
+
+
+le_att_next_handle:
+	fetcht 2,mem_temp
+	increase 1,temp
+	storet 2,mem_temp
+	rtn
+
+le_att_check_handle_end:
+	fetcht 2,mem_temp
+	fetch 2,mem_le_search_handle_end
+	isub temp,null
+	rtn
+
+
+le_att_same_type:
+	bpatchx patch2b_6,mem_patch2b
+	fetcht 1,mem_le_search_att_type_length
+	arg mem_le_search_att_type,rega
+le_att_check_same_common:
+	fetch 1,mem_le_cur_uuid_length
+	copy pdata,loopcnt
+	isub temp,null
+	nrtn zero
+	arg mem_le_cur_uuid ,regb
+	branch string_compare
+
+
+le_store_att_record:
+	bpatchx patch2b_7,mem_patch2b
+	fetch 1,mem_le_curr_att_len
+	store 1, mem_temp_block0
+	copy pdata,loopcnt
+	call get_contr
+	branch memcpy_fast
+
+
+le_write_att_record:
+	bpatchx patch2c_0,mem_patch2c
+	call get_contw
+	fetch 2,mem_le_cur_handle_start
+	istore 2,contw
+	fetch 2,mem_le_cur_handle_end
+	istore 2,contw
+le_write_att_record_common:
+	fetch 1,mem_temp_block0
+	copy pdata,loopcnt
+	call memcpy_fast
+	branch store_contw
+
+
+
+le_send_auto_len_by_mem:
+	bpatchx patch2c_1,mem_patch2c
+	call get_contw
+	call le_fifo_get_last_att_ptr
+	copy contw,pdata
+	isub contr,rega
+	call le_fifo_get_last_l2cap_ptr
+	copy rega,pdata
+	istore 2,contr
+	increase 4,rega
+	call le_fifo_get_last_tx_ptr
+	copy rega,pdata
+	istore 1,contr
+	rtn
+
+
+le_get_search_handle_start_end_common:
+	rshift8 pdata,pdata
+	store 2,mem_le_search_handle_start
+	ifetch 2,contr
+	store 2,mem_le_search_handle_end
+	rtn
+
+
+le_get_search_max_mtu_data:
+	bpatchx patch2c_2,mem_patch2c
+	fetch 2,mem_le_remote_mtu
+//	increase -2,pdata
+	fetcht 2,mem_le_local_mtu
+//	increase -2,temp
+//	call not_greater_than
+//	arg 240,temp
+	branch not_greater_than
+	//pdata is max mtu size
+
+
+le_get_search_att_type:
+	bpatchx patch2c_3,mem_patch2c
+	call store_contr
+	arg mem_le_search_att_type_length,contw
+le_get_search_common:	
+	fetch 2,mem_le_l2cap_size
+	increase -5,pdata
+le_get_search_common2:		
+	istore 1,contw
+	copy pdata,loopcnt
+	call get_contr
+	branch memcpy_fast	
+
+
+
+le_parse_writing_attribute_start:
+	fetch 2,mem_le_rxbuf_data_att_cid//CID
+	rtnne LE_L2CAP_CID_ATT
+	fetch 1,mem_le_l2cap_att_states
+	set1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET,pdata
+	store 1,mem_le_l2cap_att_states
+	fetch 3,mem_le_rxbuf_data_att_opcode
+	store 3,mem_le_att_opcode
+	set1 mark_old_packet,mark
+	beq ATTOP_WRITE_REQUEST,le_parse_attribute_write_request
+	beq ATTOP_WRITE_COMMAND,le_parse_attribute_write_command
+	beq ATTOP_EXECUTE_WRITE_REQUEST,le_parse_att_execute_write_request
+	beq ATTOP_EXCHANGE_MTU_REQUEST,le_parse_att_exchange_mtu_request
+	beq ATTOP_HANDLE_VALUE_CONFIRMATION,le_parse_handle_value_confirmation
+	set0 mark_old_packet,mark
+le_clear_l2cap_att_states_deal_with_contiune_packet:
+	fetch 1,mem_le_l2cap_att_states
+	set0 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET,pdata
+	store 1,mem_le_l2cap_att_states
+	rtn
+
+le_parse_writing_attribute_continue:
+	fetch 1,mem_le_l2cap_att_states
+	rtnbit0 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
+	set1 mark_old_packet,mark
+	call le_parse_l2cap_continue_common
+	call le_parse_attribute_check_complete_packet
+	call le_clear_l2cap_att_states_deal_with_contiune_packet,user
+	fetch 1,mem_le_att_opcode
+	beq ATTOP_WRITE_REQUEST,le_send_att_write_response_check_auth
+	rtn
+
+
+le_parse_attribute_write_request:
+	call le_parse_attribute_write_command
+	branch le_send_attribute_write_response_check_auth
+
+le_send_attribute_write_response_check_auth:
+	call le_parse_attribute_check_complete_packet
+	nrtn user
+	branch le_send_att_write_response_check_auth
+
+
+le_parse_attribute_write_command:
+	bpatchx patch2c_4,mem_patch2c
+	call le_parse_attribute_check_complete_packet_init
+	arg mem_le_rxbuf_data_att_write_payload,rega
+	branch le_writeatt_cb
+
+
+le_parse_attribute_check_complete_packet_init:
+	fetch 1,mem_le_rxbuf_data_att_write_length
+	add pdata,-7,regb
+	increase -4,pdata
+	store 2,mem_le_packet_len_recved	//payload length
+	fetcht 2,mem_le_rxbuf_data_att_write_l2cap_length	//l2cap length
+	storet 2,mem_le_l2cap_size
+	rtn
+
+
+le_parse_l2cap_continue_common:
+	fetchr regb,1,mem_le_rxbuf_data_continue_length
+	fetch 2,mem_le_packet_len_recved
+	iadd regb,temp
+	storet 2,mem_le_packet_len_recved
+	arg mem_le_rxbuf_data_continue_payload,rega
+	branch le_writeatt_cb
+
+
+//enable user,recevie complete packet
+le_parse_attribute_check_complete_packet:
+	call disable_user
+	fetch 2,mem_le_packet_len_recved
+	fetcht 2,mem_le_l2cap_size
+	isub temp,null
+	nrtn zero
+	branch enable_user
+
Index: program/ble_protocol_stack/le_l2cap_att_wechat.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_l2cap_att_wechat.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_l2cap_att_wechat.prog	(working copy)
@@ -0,0 +1,276 @@
+
+ifdef COMPILE_WECHAT
+
+/*
+	function name:le_l2cap_att_receive_data_check_wechat_air_sync_protocol
+	依据微信蓝牙外设协议1.0.4
+	输入:
+		rega is le rx data address
+		regb is le rx data length
+		mem_le_att_handle is write handle
+	输出:
+		user enable 是微信协议
+		disable不是微信协议
+*/
+le_l2cap_att_receive_data_check_wechat_air_sync_protocol:
+	call enable_user
+	fetch 2,mem_le_wechat_air_sync_ptr
+	rtn blank
+	arg le_l2cap_att_receive_data_deal_wechat_air_sync_protocol,regc
+	branch wechat_air_sync_calc_function
+le_l2cap_att_receive_data_deal_wechat_air_sync_protocol:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_wechat_indication_handle
+	pincrease 1
+	isub temp,null
+	branch wechat_air_sync_enable_indicate_chara,zero
+	fetch 1,mem_wechat_write_handle
+	isub temp,null
+	branch wechat_air_sync_receive_wechat_data,zero
+	branch disable_user
+	
+wechat_air_sync_enable_indicate_chara:
+	call wechat_air_sync_reset_nSeq
+wechat_air_sync_send_request_auth:
+	call wechat_air_sync_init_authreq_base_request
+	arg mem_wechat_authreq_base_request,rega
+	arg ECI_REQ_AUTH_MESSAGE_LENGTH,loopcnt
+	arg ECI_REQ_AUTH,temp
+	branch wechat_air_sync_send_message
+
+wechat_air_sync_receive_wechat_data:
+	fetch 1,mem_wechat_receive_push_data
+	beq 1,wechat_air_sync_receive_wechat_data_contiune_packet
+	ifetch 2,rega
+	arg WECHAT_RX_HEAD,temp
+	isub temp,null
+	branch wechat_air_sync_receive_wechat_data_head_packet,zero
+wechat_air_sync_receive_wechat_data_contiune_packet:
+	fetch 2,mem_wechat_rx_len
+	iadd regb,pdata
+	store 2,mem_wechat_rx_len	
+	fetch 2,mem_wechat_rx_address
+	copy pdata,contw
+	copy rega,contr
+	copy regb,loopcnt
+	call memcpy_fast
+	copy contw,pdata
+	store 2,mem_wechat_rx_address
+	branch wechat_air_sync_receive_wechat_packet_complete
+
+
+wechat_air_sync_receive_wechat_data_head_packet:
+	fetch 2,mem_wechat_rx_buffer_ptr
+	copy pdata,contw
+	copy rega,contr
+	copy regb,loopcnt
+	call memcpy_fast
+	copy contw,pdata
+	store 2,mem_wechat_rx_address
+	storer regb,2,mem_wechat_rx_len
+	fetchr regc,2,mem_wechat_rx_buffer_ptr
+	add regc,WECHAT_PROTOCOL_MESSAGE_N_CMD_ID,contr
+	ifetch 2,contr
+	arg ECI_PUSH_RECEIVE_DATA,temp
+	isub temp,null
+	call wechat_air_sync_receive_wechat_push_data,zero
+	branch wechat_air_sync_receive_wechat_packet_complete
+
+wechat_air_sync_receive_wechat_push_data:
+	jam 1,mem_wechat_receive_push_data
+	rtn
+
+wechat_air_sync_receive_wechat_packet_complete:
+	fetch 2,mem_wechat_rx_len
+	fetchr regc,2,mem_wechat_rx_buffer_ptr
+	add regc,WECHAT_PROTOCOL_MESSAGE_N_LENGTH,contr
+	ifetcht 2,contr
+	byteswap temp,temp
+	isub temp,null
+	nrtn positive
+	jam 0,mem_wechat_receive_push_data
+	fetchr regc,2,mem_wechat_rx_buffer_ptr
+	add regc,WECHAT_PROTOCOL_MESSAGE_N_CMD_ID,contr
+	ifetch 2,contr
+	arg ECI_RESPONSE_AUTH,temp
+	isub temp,null
+	branch wechat_air_sync_receive_wechat_data_auth_respone,zero
+	arg ECI_PUSH_RECEIVE_DATA,temp
+	isub temp,null
+	branch wechat_air_sync_receive_wechat_data_push_receive_data,zero
+	rtn
+
+wechat_air_sync_receive_wechat_data_auth_respone:
+wechat_air_sync_wechat_send_request_init:
+	call wechat_air_sync_init_authreq_base_request
+	arg mem_wechat_initreq_base_request,rega
+	arg ECI_REQ_INIT_MESSAGE_LENGTH,loopcnt
+	arg ECI_REQ_INIT,temp
+	branch wechat_air_sync_send_message
+
+
+//接收数据的回调，可以使用wechat_air_sync_check_push_data_struct解析函数
+wechat_air_sync_receive_wechat_data_push_receive_data:
+
+	fetch 2,mem_wechat_rx_push_data_cb
+	branch callback_func
+
+/*
+数据解析默认函数，不能保证全部数据格式都能解析
+输出:disable user is no data
+	loopcnt is data length
+	contr is data ptr
+*/
+wechat_air_sync_check_push_data_struct:
+	call disable_user
+	fetchr regc,2,mem_wechat_rx_buffer_ptr
+	add regc,WECHAT_PROTOCOL_MESSAGE_PAYLOAD,contr
+	ifetch 2,contr
+	rtnne TAG_RecvDataPush_BasePush
+	ifetch 1,contr
+	rtnne TAG_RecvDataPush_Data
+	ifetch 1,contr
+	rtn blank
+	copy pdata,loopcnt
+	copy contr,regc
+	branch enable_user
+
+
+wechat_air_sync_send_message:
+	call enable_user2
+wechat_air_sync_send_message_without_payload:
+	fetch 2,mem_wechat_tx_buffer_ptr
+	store 2,mem_wechat_tx_address
+	copy pdata,contw
+	setarg WECHAT_HEAD_MAGIC_NUMBER
+	istore 1,contw			//bMagicNumber
+	setarg WECAHT_HEAD_VERSION
+	istore 1,contw			//bVer
+	add loopcnt,8,regd	//nLength
+	byteswap regd,pdata
+	istore 2,contw			//nLength
+	istoret 2,contw			//nCmdId
+	fetcht 2,mem_wechat_tx_nSeq
+	istoret 2,contw			//Tx nSeq
+	copy contw,regc
+	copy rega,contr
+	call memcpy_fast,user2
+	storer regd,2,mem_wechat_tx_len
+	branch wechat_air_sync_update_nSeq
+	
+wechat_air_sync_update_nSeq:
+	byteswap temp,pdata
+	pincrease 1
+	byteswap pdata,pdata
+	nbranch wechat_air_sync_store_nSeq,blank
+wechat_air_sync_reset_nSeq:
+	setarg 0x0100
+wechat_air_sync_store_nSeq:
+	store 2,mem_wechat_tx_nSeq
+	rtn
+
+
+wechat_air_sync_init_authreq_base_request:
+	setarg 0x000a
+	store 2,mem_wechat_authreq_base_request
+	setarg 0x048084
+	lshift8 pdata,pdata
+	or pdata,0x18,pdata
+	store 4,mem_wechat_authreq_protocol_version
+	setarg 0x0120
+	store 2,mem_wechat_authreq_auth_protocol
+	setarg 0x0228
+	store 2,mem_wechat_authreq_eam_mac_no_encrypt
+	setarg 0x063a
+	store 2,mem_wechat_authreq_mac_address
+	fetch 6,mem_le_lap
+	call inverse_data_6Byte
+	store 6,mem_wechat_authreq_device_address
+	rtn
+
+wechat_air_sync_ble_transmit_wechat_message:
+	fetch 1,mem_le_l2cap_att_states
+	rtnbit1 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+	call le_fifo_check_nearly_full
+	nrtn blank				//no fifo
+	fetch 2,mem_le_wechat_air_sync_ptr
+	rtn blank
+	arg wechat_air_sync_ble_send_wechat_message,regc
+	branch wechat_air_sync_calc_function
+
+wechat_air_sync_ble_send_wechat_message:
+	call module_get_le_remote_mtu
+	fetch 2,mem_wechat_tx_len
+	rtn blank
+	add temp,-3,pdata		//sub handle and opcode
+	fetcht 2,mem_wechat_tx_len
+	call not_greater_than
+	copy pdata,rega
+	copy temp,pdata
+	isub rega,pdata
+	store 2,mem_wechat_tx_len
+	fetcht 1,mem_wechat_indication_handle
+	call le_att_malloc_tx_indication
+	fetch 2,mem_wechat_tx_address
+	copy pdata,contr
+	copy rega,loopcnt
+	call memcpy_fast
+	copy contr,pdata
+	store 2,mem_wechat_tx_address
+	rtn
+
+
+wechat_air_sync_calc_function:
+	call wechat_air_sync_load_in_local_buffer
+	copy regc,pdata
+	call callback_func
+	branch wechat_air_sync_store_in_global_buffer
+
+
+wechat_air_sync_load_in_local_buffer:
+	fetch 2,mem_le_wechat_air_sync_ptr
+	rtn blank
+	copy pdata,contr
+	arg WECHAT_AIR_SYNC_STRUCT_SIZE,loopcnt
+	arg mem_wechat_indication_handle,contw
+	branch memcpy_fast
+
+wechat_air_sync_store_in_global_buffer:
+	fetch 2,mem_le_wechat_air_sync_ptr
+	rtn blank
+	copy pdata,contw
+	arg WECHAT_AIR_SYNC_STRUCT_SIZE,loopcnt
+	arg mem_wechat_indication_handle,contr
+	branch memcpy_fast
+
+
+//input:rega is data ptr
+//regb is data length
+wechat_air_sync_send_wechat_packet:
+	call enable_user
+	fetch 2,mem_le_wechat_air_sync_ptr
+	rtn blank
+	arg wechat_air_sync_send_wechat_packet_cb,regc
+	branch wechat_air_sync_calc_function
+
+wechat_air_sync_send_wechat_packet_cb:
+	fetch 2,mem_wechat_tx_len
+	nrtn blank
+	call disable_user
+	call disable_user2
+	add regb,6,loopcnt
+	arg ECI_REQ_SEND_DATA,temp
+	call wechat_air_sync_send_message_without_payload
+	copy regc,contw
+	setarg 0x12000a
+	istore 3,contw
+	istorer regb,1,contw
+	copy rega,contr
+	copy regb,loopcnt
+	call memcpy_fast
+	setarg 0x0018
+	istore 2,contw
+	rtn
+
+endif
+
Index: program/ble_protocol_stack/le_l2cap_signalling.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_l2cap_signalling.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_l2cap_signalling.prog	(working copy)
@@ -0,0 +1,54 @@
+
+
+le_parse_signaling:
+	ifetch 1,contr
+	ifetcht 1,contr //id
+	ifetcht 2,contr //length
+	beq L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE,le_l2cap_parse_conn_parameter_update_rsp
+	rtn
+le_l2cap_parse_conn_parameter_update_rsp:
+	ifetch 2,contr	//result
+	store 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	jam BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+//mem_le_interval_min:the ptr that connection parameter,
+//include 	ConnIntervalMin,ConnIntervalMax,
+//		ConnSlaveLatency,ConnSupervisionTimeout
+le_l2cap_tx_update_req:
+	arg 0x0c,rega
+	arg L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST,regc
+	call le_fifo_malloc_tx_l2cap_signaling
+	setarg 0x08
+	istore 2,contw
+	fetch 8,mem_le_interval_min
+	istore 8,contw
+	rtn
+
+
+//rega:len regc:signaling opcode
+le_fifo_malloc_tx_l2cap_signaling:
+	call le_l2cap_update_signaling_identifier
+	arg LE_L2CAP_CID_SIGNAL,regb
+	call le_fifo_malloc_tx_l2cap
+	copy regc,pdata
+	istore 1,contw
+	fetch 1,mem_le_signaling_identifier
+	istore 1,contw
+	rtn
+
+
+le_l2cap_update_signaling_identifier:
+	fetch 1,mem_le_signaling_identifier
+	//beq 0xff,le_l2cap_signaling_identifier_set_1
+	pincrease 1
+	store 1,mem_le_signaling_identifier
+	rtnne 0
+	
+le_l2cap_reset_signaling_identifier:
+	jam 1,mem_le_signaling_identifier
+	rtn
+
+
+
Index: program/ble_protocol_stack/le_l2cap_smp.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_l2cap_smp.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_l2cap_smp.prog	(working copy)
@@ -0,0 +1,612 @@
+
+le_pairing_mode_init:
+	fetch  1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_NONE, le_set_no_pairing
+	beq LE_PAIRING_MODE_LAGACY_JUSTWORK,le_set_pairing_mode_lagacy_just_work
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY,le_set_pairing_mode_lagacy_passkey
+ifdef SECURE_CONNECTION				
+	beq LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK,le_set_pairing_mode_secure_justwork
+	beq LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC,le_set_pairing_mode_secure_numeric
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_set_pairing_mode_secure_passkey
+endif
+	rtn
+	
+ifdef SECURE_CONNECTION				
+le_set_pairing_mode_secure_justwork:
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch le_set_noinputnooutput
+le_set_pairing_mode_secure_numeric:
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	jam FLAG_IOCAP_DISPLAYYESNO,mem_le_pres_iocap
+	rtn
+le_set_pairing_mode_secure_passkey:	
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch le_set_displayonly
+endif
+
+le_set_no_pairing:
+	jam FLAG_LE_NO_BONDING_NO_MITM,mem_le_pres_auth
+le_set_noinputnooutput:	
+	jam FLAG_IOCAP_NOINPUTNOOUTPUT,mem_le_pres_iocap
+	rtn
+le_set_pairing_mode_lagacy_just_work:
+	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
+	branch le_set_noinputnooutput
+le_set_pairing_mode_lagacy_passkey:
+	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
+le_set_displayonly:	
+	jam FLAG_IOCAP_DISPLAYONLY,mem_le_pres_iocap
+	rtn
+
+ifdef SECURE_CONNECTION			
+le_secure_connection_enable:
+	fetch 1,mem_secure_connections_enable
+	set1 SECURE_CONNECTIONS_LE_BIT,pdata
+	store 1,mem_secure_connections_enable
+	rtn
+	
+le_secure_connection_disable:
+	fetch 1,mem_secure_connections_enable
+	set0 SECURE_CONNECTIONS_LE_BIT,pdata
+	store 1,mem_secure_connections_enable
+	rtn
+endif
+
+le_parse_smp:
+	ifetch 1,contr
+	beq SMP_PAIRING_REQUEST,le_parse_smp_pairing_request
+//	beq SMP_PAIRING_RESPONSE,le_parse_smp_pairing_response
+	beq SMP_PAIRING_CONFIRM,le_parse_smp_pairing_confirm
+	beq SMP_PAIRING_RANDOM,le_parse_smp_pairing_random
+	beq SMP_PAIRING_FAILED,le_parse_smp_pairing_failed
+//	beq SMP_ENCRYPTION_INFORMATION,le_parse_smp_encryption_information
+	beq SMP_MASTER_IDENTIFICATION,le_parse_smp_master_identification
+	beq SMP_IDENTITY_INFORMATION,le_parse_smp_identity_information
+	beq SMP_IDENTITY_ADDRESS_INFORMATION,le_parse_smp_identity_address_information
+	beq SMP_SIGNING_INFORMATION,le_parse_smp_signing_information
+	beq SMP_SECURITY_REQUEST,le_parse_smp_security_request
+ifdef SECURE_CONNECTION			
+	beq SMP_PAIRING_PUBLIC_KEY,le_parse_smp_public_key
+	beq SMP_PAIRING_DHKEY_CHECK,le_parse_smp_dhkey_check
+endif 	
+	rtn
+
+
+
+le_send_smp_security_request:
+	force 2,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_SECURITY_REQUEST
+	istore 1,contw
+	fetch 1,mem_le_pres_auth
+	istore 1,contw
+	rtn
+		
+le_parse_smp_pairing_request:
+	store 1,mem_le_preq
+	ifetch 6,contr
+	istore 6,contw
+	fetch 1,mem_le_pairing_mode
+	beq  LE_PAIRING_MODE_NONE,le_smp_pairing_fail_reason_not_support_pairing
+	call le_send_smp_pairing_response
+ifdef 	SECURE_CONNECTION
+	fetch 1,mem_sc_only_mode
+	branch le_parse_smp_pairing_request2, blank
+	fetch 1,mem_le_preq_auth
+	bbit0  LE_AUTH_SECURE_CONNECTION_PAIRING_BIT,app_ble_disconnect
+	fetch 1,mem_le_pairing_mode
+	bbit0 LE_PAIRING_MODE_SECURE_CONNECT_BIT,app_ble_disconnect
+endif	
+le_parse_smp_pairing_request2:	
+	jam FLAG_LE_PAIRING_RCV_PAIRING_REQ,mem_le_pairing_state
+	fetch 1,mem_le_preq_iocap
+	beq  FLAG_IOCAP_DISPlAYONLY,le_set_tk_0
+	beq  FLAG_IOCAP_DISPLAYYESNO,le_set_tk_0
+	beq  FLAG_IOCAP_NOINPUTNOOUTPUT,le_set_tk_0
+	fetch 1,mem_le_pairing_mode	
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY,le_parse_smp_pairing_req_passkey
+	rtneq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+le_set_tk_0:
+	arg 0,pdata
+	store 4,mem_le_tk
+	rtn
+
+le_parse_smp_pairing_req_passkey:
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_PASSKEY_FIXED_KEY,le_parse_smp_pairing_req_fixed_passkey
+le_genernate_tk:
+	arg mem_le_tk,rega
+	copy rega,contw
+	arg 3,loopcnt
+	call generate_random_loop
+	fetch 2,mem_le_tk + 2
+	and_into 0x7,pdata
+	store 2,mem_le_tk + 2
+le_parse_smp_pairing_req_fixed_passkey:
+	jam BT_EVT_LE_TK_GENERATE,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+
+le_send_smp_pairing_response:
+	force 7,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	fetch 7,mem_le_pres
+	istore 7,contw
+	rtn
+		
+
+le_parse_smp_pairing_confirm:
+	jam FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM,mem_le_pairing_state
+	arg mem_le_rconfirm,contw
+	call memcpy16
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT,le_parse_smp_pairing_confirm_passkey_res_input
+ifdef SECURE_CONNECTION				
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_parse_smp_pairing_confirm_secure_passkey
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,le_parse_smp_pairing_confirm_sc_passkey_res_input
+endif
+	branch le_send_smp_pairing_confirm
+
+	
+le_parse_smp_pairing_confirm_passkey_res_input:
+	jam BT_EVT_LE_GET_PASSKEY,mem_fifo_temp
+	branch ui_ipc_send_event
+	
+ifdef SECURE_CONNECTION				
+le_parse_smp_pairing_confirm_secure_passkey:
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_PASSKEY_WAIT_CONFIRM,mem_le_secure_connect_state	
+	rtn
+
+le_parse_smp_pairing_confirm_sc_passkey_res_input:
+	fetch 4,mem_le_tk
+	branch le_parse_smp_pairing_confirm_passkey_res_input,blank
+	branch le_parse_smp_pairing_confirm_secure_passkey
+endif
+
+le_send_smp_pairing_confirm:
+	jam FLAG_LE_PAIRING_SEND_PAIRING_CONFIRM,mem_le_pairing_state
+ifdef SECURE_CONNECTION				
+	fetch 1,mem_le_pairing_mode
+	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,le_send_smp_pairing_confirm_sc
+endif 
+	call generate_confirm
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_CONFIRM
+	istore 1,contw
+	branch  store_aes_result
+
+ifdef SECURE_CONNECTION					
+le_send_smp_pairing_confirm_sc:
+	arg mem_le_srand,contw	
+	call generate_random
+	call function_f4_cb
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_CONFIRM
+	istore 1,contw
+	branch  load_inverse_result
+endif
+	
+le_parse_smp_pairing_random:	
+	copy contr,rega
+ifdef SECURE_CONNECTION				
+	fetch 1,mem_le_pairing_mode
+	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,le_parse_smp_pairing_random_sc
+endif
+	copy rega,contr
+	call authenticate_rconfirm
+	branch le_parse_smp_pairing_random_success,zero
+le_send_pairing_confirm_value_failed:
+	jam PAIRING_FAILED_CONFIRM_VALUE_FAILED,mem_le_ll_pairing_fail_reason
+le_send_pairing_failed:
+	force 2,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_FAILED
+	istore 1,contw
+	fetch 1,mem_le_ll_pairing_fail_reason
+	istore 1,contw	
+le_parse_smp_pairing_failed:
+	bpatchx patch2c_5,mem_patch2c
+	force smp_pairing_timer,queue
+	call timer_stop
+	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state
+	jam BT_EVT_LE_PAIRING_FAIL,mem_fifo_temp
+	branch ui_ipc_send_event
+
+le_smp_pairing_fail_reason_not_support_pairing:
+	jam PAIRING_FAILED_PAIRING_NOT_SUPPORTED,mem_le_ll_pairing_fail_reason
+	branch le_send_pairing_failed
+	
+ifdef SECURE_CONNECTION				
+le_parse_smp_pairing_random_sc:
+	arg mem_le_mrand,contw
+	copy rega,contr
+	call memcpy16	
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_parse_smp_pairing_random_sc_passkey
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,le_parse_smp_pairing_random_sc_passkey
+	call function_g2
+	call le_send_smp_pairing_random
+	fetch 1,mem_le_pairing_mode
+	rtnne LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+	jam BT_EVT_LE_GKEY_GENERATE,mem_fifo_temp
+	branch ui_ipc_send_event	
+	
+le_parse_smp_pairing_random_sc_passkey:
+	call function_f4_ca
+	arg mem_AES_CMAC_temp,contw
+	call load_inverse_result	
+	arg mem_AES_CMAC_temp,rega
+	arg mem_le_rconfirm ,regb
+	arg 16,loopcnt
+	call string_compare
+	nbranch le_send_pairing_confirm_value_failed,zero
+	branch le_send_smp_pairing_random
+endif 
+
+le_parse_smp_pairing_random_success:
+	call generate_stk
+	jam BT_EVT_LE_PAIRING_SUCCESS,mem_fifo_temp
+	call ui_ipc_send_event
+	jam 1,mem_ltk_exists
+	jam FLAG_LE_PAIRING_AFTER_AUTH,mem_le_pairing_state
+	
+le_send_smp_pairing_random:
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_RANDOM
+	istore 1,contw
+	arg mem_le_srand,contr
+	branch memcpy16
+
+le_send_smp_encryption_information:
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_ENCRYPTION_INFORMATION
+	istore 1,contw
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_PAIRING_FIXED_LTK,le_send_fixed_ltk
+	arg mem_le_ltk,contr
+	branch memcpy16
+
+le_send_fixed_ltk:
+	arg mem_le_fixed_ltk,contr
+	branch memcpy16
+
+
+le_send_smp_master_identification:
+	arg mem_le_ediv,contw
+	force 10,loopcnt
+	call generate_random_loop
+	force 11,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_MASTER_IDENTIFICATION
+	istore 1,contw
+	fetch 2,mem_le_ediv
+	istore 2,contw
+	fetch 8,mem_le_rand
+	istore 8,contw
+	rtn
+
+le_send_smp_identity_information:
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_IDENTITY_INFORMATION
+	istore 1,contw
+	setarg 0
+	istore 8,contw
+	istore 8,contw
+	rtn
+	
+
+le_send_smp_identity_address_information:
+	force 8,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_IDENTITY_ADDRESS_INFORMATION
+	istore 1,contw
+	fetch 1,mem_le_conn_own_addr_type
+	istore 1,contw
+	fetch 6,mem_le_lap	
+	istore 6,contw
+	rtn	
+
+
+le_send_pairing_fail_unspecified_reason:
+	jam PAIRING_FAILED_UNSPECIFIED_REASON,mem_le_ll_pairing_fail_reason
+	branch le_send_pairing_failed
+
+le_check_init_key_distribution:
+	fetch 1,mem_le_pres_init_key_distribution
+	fetcht 1,mem_le_pres_init_key_distribution
+	iand temp,pdata
+	rtn	
+
+le_parse_smp_identity_information:
+	arg mem_le_irk,contw
+	call memcpy16
+	call le_check_init_key_distribution
+	isolate0 LE_INITATOR_IRK_BIT,pdata
+	branch le_send_pairing_fail_unspecified_reason,true
+	fetch 1,mem_device_option
+	rtnne DVC_OP_MODULE
+	call le_check_master_addr_type
+	nrtn user
+	branch app_ble_store_reconn_info
+
+//output:user is enable ,random addr type
+le_check_master_addr_type:
+	call disable_user
+	fetch 1,mem_le_conn_peer_addr_type
+	rtneq MASTER_PUBLIC_ADDR
+	fetch 1,mem_le_preq_init_key_distribution
+	rtnbit0 LE_INITATOR_IRK_BIT
+	branch enable_user
+
+le_parse_smp_identity_address_information:
+	call le_check_init_key_distribution
+	isolate0 LE_INITATOR_IRK_BIT,pdata
+	branch le_send_pairing_fail_unspecified_reason,true
+	rtn
+
+le_parse_smp_master_identification:
+le_parse_smp_signing_information:	
+le_parse_smp_security_request:
+	rtn
+	
+ifdef SECURE_CONNECTION				
+le_parse_smp_public_key:
+	arg mem_le_pubkey_remote_x_256,contw	
+	call memcpy64
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_RECEIVE_PUBLIC_KEY,mem_le_secure_connect_state
+	rtn
+
+le_parse_smp_dhkey_check:
+	arg mem_sp_confirm_remote,contw
+	call memcpy16	
+	jam LE_SC_STAT_RECEIVE_DHKEY,mem_le_secure_connect_state
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	rtn	
+
+le_send_smp_pairing_public_key:
+	force 65,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_PUBLIC_KEY
+	istore 1,contw	
+	arg mem_sc_pubkey_local_x_256,contr
+	branch memcpy64
+	
+le_send_smp_pairing_dhkey_check:
+	call function_f6_eb	
+	force 17,rega
+	call le_fifo_malloc_tx_l2cap_smp
+	setarg SMP_PAIRING_DHKEY_CHECK
+	istore 1,contw
+	branch load_inverse_result
+endif	
+
+le_check_paring_time:
+	fetch 1,mem_le_pairing_state
+	rtneq FLAG_LE_PAIRING_END
+	arg FLAG_LE_PAIRING_RCV_PAIRING_REQ,temp
+	isub temp,null
+	nrtn positive
+	arg smp_pairing_timer,queue
+	call timer_check
+	nrtn blank
+	branch le_send_pairing_fail_unspecified_reason
+
+le_pairing_sm:
+	bpatchx patch2c_6,mem_patch2c
+	call le_fifo_check_nearly_full
+	nrtn blank	
+	fetch 1,mem_le_pairing_state
+	beq FLAG_LE_PAIRING_NULL,le_pairing_sm_null
+	beq FLAG_LE_PAIRING_START,le_pairing_sm_start
+	beq FLAG_LE_PAIRING_SEND_RECURITY_REQ,le_pairing_sm_send_sec_req
+	beq FLAG_LE_PAIRING_RCV_PAIRING_REQ,le_pairing_sm_rcv_pairing_req
+	beq FLAG_LE_PAIRING_AFTER_AUTH,le_pairing_sm_after_auth
+	beq FLAG_LE_PARING_SEND_ENC_INFORMATION,le_pairng_sm_send_enc_information
+	beq FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION,le_pairng_sm_send_master_indentification
+	beq FLAG_LE_PARING_SEND_INDENTITY_INFORMATION,le_pairng_sm_send_indentity_information
+	rtn
+
+le_pairing_sm_null:
+le_pairing_sm_send_sec_req:
+	fetch 1,mem_le_enc_state
+	rtnne FLAG_LE_SEND_START_ENC_RSP
+	jam FLAG_LE_ENC_END,mem_le_enc_state
+	jam FLAG_LE_PAIRING_END,mem_le_pairing_state
+	jam BT_EVT_LE_RECONNECT_COMPLETE ,mem_fifo_temp
+	branch ui_ipc_send_event	
+	
+	
+le_pairing_sm_start:
+	jam FLAG_LE_PAIRING_SEND_RECURITY_REQ,mem_le_pairing_state
+	branch le_send_smp_security_request
+
+le_pairing_sm_rcv_pairing_req:
+	jam FLAG_LE_PAIRING_WAIT_STK_GENERATION,mem_le_pairing_state
+	setarg TIMER_SMP_PAIRING_TIMEOUT
+	arg smp_pairing_timer,queue
+	branch timer_init
+	
+le_pairing_sm_after_auth:
+	fetch 1,mem_le_enc_state
+	beq FLAG_LE_SEND_START_ENC_RSP,le_pairing_sm_after_auth_start_enc
+	rtn
+	
+le_pairing_sm_after_auth_start_enc:
+	fetch 1,mem_le_pairing_mode
+	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,le_pairing_sm_after_auth_start_enc_sc
+
+	jam FLAG_LE_PARING_SEND_ENC_INFORMATION,mem_le_pairing_state
+	call le_send_smp_encryption_information
+le_pairing_sm_after_auth_start_enc_common:
+	jam BT_EVT_LE_ENC_INFO,mem_fifo_temp
+	call ui_ipc_send_event
+	fetch 1,mem_device_option
+	rtnne DVC_OP_MODULE
+	call le_check_master_addr_type
+	rtn user
+	branch app_ble_store_reconn_info
+
+le_pairing_sm_after_auth_start_enc_sc:
+	jam FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION,mem_le_pairing_state
+	branch le_pairing_sm_after_auth_start_enc_common
+
+le_pairng_sm_send_enc_information:	
+	jam FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION,mem_le_pairing_state
+	branch le_send_smp_master_identification
+
+le_pairng_sm_send_master_indentification:	
+	fetch 1,mem_le_preq_resp_key_distribution
+	fetcht 1,mem_le_pres_resp_key_distribution
+	iand temp,pdata
+	isolate0 LE_INITATOR_IRK_BIT,pdata
+	branch le_parse_start_enc_rsp_after_auth_end,true
+	jam FLAG_LE_PARING_SEND_INDENTITY_INFORMATION,mem_le_pairing_state
+	branch le_send_smp_identity_information
+
+le_pairng_sm_send_indentity_information:		
+	call le_send_smp_identity_address_information
+	branch le_parse_start_enc_rsp_after_auth_end
+
+
+le_parse_start_enc_rsp_after_auth_end:
+	bpatchx patch2c_7,mem_patch2c
+	force smp_pairing_timer,queue
+	call timer_stop
+	jam FLAG_LE_ENC_END,mem_le_enc_state
+	jam FLAG_LE_PAIRING_END,mem_le_pairing_state
+	jam BT_EVT_LE_PAIRING_COMPLETE ,mem_fifo_temp
+	branch ui_ipc_send_event	
+	
+
+ifdef SECURE_CONNECTION
+
+le_secure_connect_sm:
+	bpatchx patch2d_0,mem_patch2d
+	fetch 1,mem_le_pairing_mode
+	rtnbit0 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+	fetch 1,mem_le_secure_connect_flag
+	rtnne LE_SP_FLAG_COMMIT_256
+	jam SP_FLAG_STANDBY,mem_le_secure_connect_flag
+	fetch 1,mem_le_secure_connect_state
+	beq  LE_SC_STAT_RECEIVE_PUBLIC_KEY,le_sc_sm_receive_public_key
+	beq LE_SC_STAT_WAIT_SEND_PUBLIC_KEY,le_sc_sm_wait_send_public_key
+	beq LE_SC_STAT_SEND_PUBLIC_KEY,le_sc_sm_send_public_key
+	beq LE_SC_STAT_RECEIVE_DHKEY,le_sc_sm_receive_dhkey
+	beq LE_SC_STAT_WAIT_CONFIRM_GKEY,le_sc_sm_wait_confirm_gkey
+	beq  LE_SC_STAT_PASSKEY_WAIT_CONFIRM,le_sc_sm_passkey_wait_confirm
+	rtn	
+
+le_sc_state_clear:
+	jam SP_FLAG_STANDBY,mem_le_secure_connect_flag
+	jam LE_SC_STAT_NULL,mem_le_secure_connect_state
+	jam FLAG_LE_SC_CONFRIM_NULL,mem_le_sc_confirm_gkey_flag
+	rtn
+	
+le_sc_sm_passkey_wait_confirm:
+	fetch 1,mem_authentication_passkey_times
+	copy pdata,queue
+	increase 1,pdata
+	store 1,mem_authentication_passkey_times
+	fetch 4,mem_le_tk
+	qisolate1 pdata
+	setarg 0x80
+	setflag true,0,pdata
+	store 1,mem_passkey_1bit
+	branch le_sc_sm_ready_send_pairing_confirm
+	
+le_sc_sm_wait_confirm_gkey:
+	fetch 1,mem_le_sc_confirm_gkey_flag
+	jam FLAG_LE_SC_CONFRIM_NULL,mem_le_sc_confirm_gkey_flag
+	beq FLAG_LE_SC_CONFRIM_GKEY_OK,le_sc_confirm_gkey_ok
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	rtn
+	
+le_sc_confirm_gkey_ok:
+	jam BT_EVT_LE_PAIRING_SUCCESS,mem_fifo_temp
+	call ui_ipc_send_event	
+	jam FLAG_LE_PAIRING_AFTER_AUTH,mem_le_pairing_state
+	branch le_send_smp_pairing_dhkey_check
+
+le_sc_sm_receive_dhkey:
+	fetch 1,mem_sp_dhkey_invalid
+	beq SP_KEY_VALID_256,le_dhkey_ready
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	rtn
+
+le_dhkey_ready:
+	call function_f5
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY ,le_dhkey_ready_common
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT ,le_dhkey_ready_common
+	call le_set_tk_0 
+le_dhkey_ready_common:
+	call function_f6_ea
+	arg mem_AES_CMAC_temp,rega
+	arg mem_sp_confirm_remote ,regb
+	arg 16,loopcnt
+	call string_compare
+	branch le_dhkey_check_ok,zero
+le_dhkey_check_fail:	
+	jam PAIRING_FAILED_DHKEY_CHECK_FAILED,mem_le_ll_pairing_fail_reason
+	branch le_send_pairing_failed
+
+	
+le_dhkey_check_ok:
+	call sp_calc_check_publickey_256
+	nbranch le_dhkey_check_fail,zero
+	jam 1,mem_ltk_exists
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK,le_sc_confirm_gkey_ok
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY ,le_sc_confirm_gkey_ok	
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT ,le_sc_confirm_gkey_ok	
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_WAIT_CONFIRM_GKEY,mem_le_secure_connect_state	
+	rtn	
+
+le_sc_sm_send_public_key:
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,le_sc_sm_send_public_key_passkey
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,le_sc_sm_send_public_key_passkey
+	jam 0,mem_passkey_1bit
+le_sc_sm_ready_send_pairing_confirm:
+	branch le_send_smp_pairing_confirm
+
+le_sc_sm_send_public_key_passkey:
+	jam 0,mem_authentication_passkey_times
+	rtneq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT
+	branch le_parse_smp_pairing_req_passkey
+
+	
+le_sc_sm_receive_public_key:
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	fetch 1,mem_sc_local_key_invalid
+	beq SP_KEY_VALID_256,le_public_key_ready
+	rtn
+	
+le_public_key_ready:
+	jam LE_SC_STAT_WAIT_SEND_PUBLIC_KEY,mem_le_secure_connect_state	
+	jam SP_KEY_INVALID,mem_sp_dhkey_invalid
+	branch sp_dhkey_calc_256	
+
+le_sc_sm_wait_send_public_key:
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_SEND_PUBLIC_KEY,mem_le_secure_connect_state
+	branch le_send_smp_pairing_public_key
+
+endif
+
+
+le_fifo_malloc_tx_l2cap_smp:
+	bpatchx patch2d_1,mem_patch2d
+	force LE_L2CAP_CID_SMP,regb
+	branch le_fifo_malloc_tx_l2cap
+
+
Index: program/ble_protocol_stack/le_ll.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_ll.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ble_protocol_stack/le_ll.prog	(working copy)
@@ -0,0 +1,339 @@
+
+le_parse_ll:
+	fetch 1,mem_le_rxbuf_data_ll_opcode
+	beq LL_CONNECTION_UPDATE_IND,le_parse_connection_update_ind
+	beq LL_CHANNEL_MAP_IND,le_parse_channel_map_ind
+	beq LL_TERMINATE_IND,le_parse_terminate_ind
+	beq LL_ENC_REQ,le_parse_enc_req
+	beq LL_ENC_RSP,le_parse_enc_rsp
+	beq LL_START_ENC_REQ,le_parse_start_enc_req
+	beq LL_START_ENC_RSP,le_parse_start_enc_rsp
+	beq LL_UNKNOWN_RSP,le_parse_unknown_rsp
+	beq LL_FEATURE_REQ,le_parse_feature_req
+	beq LL_FEATURE_RSP,le_parse_feature_rsp
+	beq LL_PAUSE_ENC_REQ,le_parse_pause_enc_req
+	beq LL_PAUSE_ENC_RSP,le_parse_pause_enc_rsp
+	beq LL_VERSION_IND,le_parse_version_ind
+	beq LL_REJECT_IND,le_parse_reject_ind
+	beq LL_PING_REQ,le_parse_ping_req
+	beq LL_PING_RSP,le_parse_ping_rsp
+	beq LL_LENGTH_REQ,le_parse_length_req
+	beq LL_LENGTH_RSP,le_parse_length_rsp
+	beq LL_PHY_REQ,le_parse_phy_req
+	beq LL_PHY_UPDATE_IND,le_parse_phy_update_ind
+	fetchr regc,1,mem_le_rxbuf_data_ll_opcode
+	branch le_send_unknown_rsp
+
+
+//LL Opcode:0x00
+le_parse_connection_update_ind:
+	ifetch 9,contr
+	store 9,mem_le_new_param
+	ifetch 2,contr
+	store 2,mem_le_instant
+	fetch 1,mem_le_state
+	set1 lestate_update_param,pdata
+	store 1,mem_le_state
+	rtn
+
+
+//LL Opcode:0x01
+le_parse_channel_map_ind:
+	ifetch 5,contr
+	store 5,mem_le_new_map
+	ifetch 2,contr
+	store 2,mem_le_instant
+le_update_map_enable:
+	fetch 1,mem_le_state
+	set1 lestate_update_map,pdata
+	store 1,mem_le_state
+	rtn
+
+
+//LL Opcode:0x02
+le_parse_terminate_ind:
+	setarg 20 // 200ms
+	store 2,mem_le_superto
+	store 2,mem_le_init_superto
+	rtn
+
+
+//LL Opcode:0x03
+le_parse_enc_req:
+	ifetch 8,contr
+	store 8,mem_le_rand
+	ifetch 2,contr
+	store 2,mem_le_ediv
+	ifetch 8,contr
+	store 8,mem_le_skdm
+	ifetch 4,contr
+	store 4,mem_ccm_ivm
+	call le_send_enc_rsp
+	bpatchx patch2d_2,mem_patch2d
+	fetch 1,mem_le_pairing_state
+	beq FLAG_LE_PAIRING_AFTER_AUTH,le_parse_enc_req_after_auth
+	fetch 1,mem_le_configuration
+	bbit1  BIT_BLE_PAIRING_FIXED_LTK,le_parse_enc_req_fixed_ltk
+	fetch 1,mem_nv_data_number
+	ncall load_device_list_mode_4,blank
+	fetch 1,mem_ltk_exists
+	beq 0,le_ltk_lost
+le_parse_enc_req_after_auth:
+	jam FLAG_LE_RCV_ENC_START,mem_le_enc_state
+	call  le_send_start_enc_req
+	branch generate_sk
+le_parse_enc_req_fixed_ltk:
+	jam 1,mem_ltk_exists
+	arg mem_le_fixed_ltk,contr
+	arg mem_le_ltk,contw
+	call memcpy16
+	branch le_parse_enc_req_after_auth
+	
+le_ltk_lost:
+	jam FLAG_LE_ENC_NULL,mem_le_enc_state
+	jam FLAG_LE_ENC_NULL,mem_le_pairing_state
+	jam BT_EVT_LE_LTK_LOST,mem_fifo_temp
+	branch ui_ipc_send_event
+
+//LL Opcode:0x04
+le_parse_enc_rsp:
+	ifetch 8,contr
+	store 8,mem_le_skds
+	ifetch 4,contr
+	store 4,mem_ccm_ivs
+	branch generate_sk
+
+
+//LL Opcode:0x05
+le_parse_start_enc_req:
+	fetch 1,mem_le_state
+	set1 lestate_encryption,pdata
+	store 1,mem_le_state
+	rtn
+
+//LL Opcode:0x06
+le_parse_start_enc_rsp:
+	rtn master
+	jam BT_EVT_LE_START_ENC,mem_fifo_temp
+	call ui_ipc_send_event	
+	jam FLAG_LE_SEND_START_ENC_RSP,mem_le_enc_state
+	branch le_send_start_enc_rsp
+
+
+//LL Opcode:0x07
+le_parse_unknown_rsp:
+	rtn
+
+
+//LL Opcode:0x08
+le_parse_feature_req:
+	branch le_send_feature_rsp
+
+
+//LL Opcode:0x09
+le_parse_feature_rsp:
+	rtn
+
+
+//LL Opcode:0x0a
+le_parse_pause_enc_req:
+	jam FLAG_LE_ENC_PAUSE,mem_le_enc_state
+	call le_send_pause_enc_rsp	
+	jam BT_EVT_LE_PAUSE_ENC,mem_fifo_temp
+	branch ui_ipc_send_event	
+
+
+//LL Opcode:0x0b
+le_parse_pause_enc_rsp:
+	rtn
+
+
+//LL Opcode:0x0c
+le_parse_version_ind:
+	rtn master
+	branch le_send_version_ind
+
+
+//LL Opcode:0x0d
+le_parse_reject_ind:
+	rtn
+
+
+//LL Opcode:0x13
+le_parse_ping_req:
+	branch le_send_ping_rsp
+
+
+//LL Opcode:0x14
+le_parse_ping_rsp:
+	rtn
+
+
+le_parse_length_req:
+	call le_parse_length_rsp
+	branch le_send_data_length_res
+
+le_parse_length_rsp:
+	ifetch 8,contr
+	store 8,mem_remote_rx_max_octets
+	fetch 2,mem_remote_rx_max_octets
+	fetcht 2,mem_local_tx_max_octets
+	call not_greater_than
+	store 2,mem_remote_rx_max_octets
+	
+	fetch 2,mem_remote_tx_max_octets
+	fetcht 2,mem_local_rx_max_octets
+	call not_greater_than
+	store 2,mem_remote_tx_max_octets
+	rtn
+
+
+//LL Opcode:0x16
+le_parse_phy_req:
+	branch le_send_phy_rsp
+
+
+//LL Opcode:0x18
+le_parse_phy_update_ind:
+	ifetch 2,contr
+	store 2,mem_le_new_m2s_phy
+	ifetch 2,contr
+	store 2,mem_le_instant
+	rtn blank
+	fetch 1,mem_le_state
+	set1 lestate_update_phy,pdata
+	store 1,mem_le_state	
+	rtn
+
+
+///////////////////send ll packet//////////////
+//LL Opcode:0x02
+le_send_terminate_ind_user_terminated:
+	arg ERROR_REMOTE_USER_TERMINATED_CONNECTION,regc
+
+//regc:The ErrorCode field shall be set to inform the remote device why the connection is about to be terminated.
+le_send_terminate_ind:
+	arg 2,rega
+	arg LL_TERMINATE_IND,regb
+	call le_fifo_malloc_tx_ll
+	copy regc,pdata
+	istore 1,contw
+	rtn
+
+
+//LL Opcode:0x04
+le_send_enc_rsp:
+	arg mem_le_skds,contw
+	force 8,loopcnt
+	call generate_random_loop
+	arg mem_ccm_ivs,contw
+	force 4,loopcnt
+	call generate_random_loop
+	arg 13,rega
+	arg LL_ENC_RSP,regb
+	call le_fifo_malloc_tx_ll
+	fetch 8,mem_le_skds
+	istore 8,contw
+	fetch 4,mem_ccm_ivs
+	istore 4,contw
+	rtn
+
+
+//LL Opcode:0x05
+le_send_start_enc_req:
+	jam FLAG_LE_SEND_START_ENC_REQ,mem_le_enc_state
+	arg LL_START_ENC_REQ,regb
+	branch le_send_ll_one_lenth
+
+
+//LL Opcode:0x06
+le_send_start_enc_rsp:
+	arg LL_START_ENC_RSP,regb
+	branch le_send_ll_one_lenth
+
+
+//LL Opcode:0x07
+//input:regc is receive ll opcode
+le_send_unknown_rsp:
+	arg 2,rega
+	arg LL_UNKNOWN_RSP,regb
+	call le_fifo_malloc_tx_ll
+	istorer regc,1,contw
+	rtn	
+
+
+//LL Opcode:0x09
+le_send_feature_rsp:
+	arg 9,rega
+	arg LL_FEATURE_RSP,regb
+	call le_fifo_malloc_tx_ll
+	fetch 8,mem_le_local_feature
+	or pdata,FUN_LL_FEATURE_LE_ENCRYPTION,pdata
+	istore 8,contw
+	rtn
+
+
+//LL Opcode:0x0B
+le_send_pause_enc_rsp:
+	arg LL_PAUSE_ENC_RSP,regb
+	branch le_send_ll_one_lenth
+
+
+//LL Opcode:0x0C
+le_send_version_ind:
+	arg 6,rega
+	arg LL_VERSION_IND,regb
+	call le_fifo_malloc_tx_ll
+	fetch 5,mem_version
+	istore 5,contw
+	rtn
+
+//LL Opcode:0x0D
+le_send_reject_ind:
+	arg 2,rega
+	arg LL_REJECT_IND,regb
+	call le_fifo_malloc_tx_ll
+	setarg LE_ERR_PIN_OR_KEY_MISSING
+	istore 1,contw
+	rtn		
+
+
+//LL Opcode:0x13
+le_send_ping_rsp:
+	arg LL_PING_RSP,regb
+	branch le_send_ll_one_lenth
+	
+le_send_data_length_req:
+	arg LL_LENGTH_REQ,regb
+	branch le_send_data_length
+
+le_send_data_length_res:
+	arg LL_LENGTH_RSP,regb
+le_send_data_length:
+	arg 9,rega
+	call le_fifo_malloc_tx_ll
+	fetch 8,mem_local_rx_max_octets
+	istore 8,contw
+	rtn
+
+
+//LL Opcode:0x17
+le_send_phy_rsp:
+	arg 3,rega
+	arg LL_PHY_RSP,regb
+	call le_fifo_malloc_tx_ll
+	fetch 1,mem_le_tx_phys
+	and pdata,0x07,pdata
+	istore 1,contw
+	fetch 1,mem_le_rx_phys
+	and pdata,0x07,pdata
+	istore 1,contw
+	rtn		
+
+
+//regb:ll opcode
+le_send_ll_one_lenth:
+	arg 1,rega
+	branch le_fifo_malloc_tx_ll
+
+
Index: program/bt.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/bt.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/bt.prog	(working copy)
@@ -0,0 +1,1768 @@
+//define RAM_VERSION
+//define CLK24M
+define SECURE_CONNECTION
+//define COMPILE_KEYSCAN
+define NEC
+define YC1121SB
+
+define DEBUG_RF_INIT
+
+define COMPILE_SHUTTER
+define COMPILE_MOUSE
+define COMPILE_MODULE
+define COMPILE_USB
+define COMPILE_DONGLE
+define COMPILE_LE
+define COMPILE_24G
+define COMPILE_CAR
+//define COMPILE_PEN
+define COMPILE_REMOTE_CAR
+//define COMPILE_WECHAT
+//define COMPLIE_TEST
+define COMPLIE_ADPCM
+
+INCLUDE "bt_format"
+
+org 0x0000		// start from patch ram address start
+ifdef SIM
+include sim.prog
+else
+include patch.prog
+endif
+
+/******************************************/
+/***********   ROM Start   ***************/
+/******************************************/
+
+org 0x2000		// start from rom address start
+start:
+	call lpmstate
+
+soft_reset:
+	bpatch patch00_0,mem_patch00
+	clear_stack
+
+	call app_param_init
+	call initialize_radio
+	call iic_init_360khz
+	call init_param
+	call l2cap_init
+	bpatch patch00_1,mem_patch00
+	call ui_init
+	call app_init
+ifdef SECURE_CONNECTION
+	call publickey_init
+//	call sp_wait_pubkey_calc_done
+endif
+	call lpm_recover_clk,wake
+main_loop:	
+	bpatch patch00_2,mem_patch00
+ifdef SECURE_CONNECTION
+	call sp_calc_sequence_256
+	call sp_calc_sequence_256_check
+endif
+	call le_advertising_dispatch
+	call idle_dispatch
+	call app_process_idle
+	call connection_dispatch
+	call g24_dispatch
+	call lpm_dispatch
+	call kscan_dispatch
+	branch main_loop
+
+connection_dispatch:
+	call connection_incontext
+	rtnmark0 mark_context
+	set0 mark_context,mark
+	call context_save
+	branch le_disable
+	
+connection_incontext:
+	bpatch patch00_3,mem_patch00
+	call context_search_insniff
+	nbranch connection_nosniff,zero
+	call context_load
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	bbit1 mode_le,le_conn_dispatch
+//	bbit1 mode_master, master_dispatch
+//	branch slave_dispatch
+	rtn
+	
+connection_nosniff:
+	jam 0,mem_current_context
+	call context_get_next
+	copy loopcnt,null
+	rtn zero
+	branch assert
+
+
+/**************************************/
+/**************idle dispatch*********/
+/**************************************/
+	
+idle_dispatch:
+	fetch 1,mem_hci_cmd
+	rtn blank
+	beq hci_cmd_le_create_conn,idle_le_create_conn
+	call context_search_conn_handle
+	rtn zero
+	call context_search_plap
+	rtn zero
+idle_exit:
+	jam 0,mem_hci_cmd
+	rtn
+
+idle_le_create_conn:
+	jam hci_cmd_le_create_conn,mem_cmd_le_create_conn
+	jam 0,mem_hci_cmd
+	rtn
+
+
+
+context_load:
+	bpatch patch00_4,mem_patch00
+	set1 mark_context,mark
+	deposit rega
+	store 2,mem_context_ptr
+	force context_size,loopcnt
+	arg mem_le_state,contw
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	copy rega,contr
+	bbit1 mode_le,memcpy
+	rtn
+	
+context_save:
+	bpatch patch00_5,mem_patch00
+	fetch 2,mem_context_ptr
+	iforce contw
+	force context_size,loopcnt
+	arg mem_le_state,contr
+	branch memcpy
+	
+	
+
+context_get_next:
+	arg context_num,loopcnt
+	fetcht 1,mem_current_context
+context_get_next_loop:
+	increase 1,temp
+	compare context_num,temp,0xff
+	nbranch context_get_next_cont,true
+	arg 0,temp
+context_get_next_cont:
+	storet 1,mem_current_context
+	mul32 temp,context_size,pdata
+	arg mem_context,rega
+	iadd rega,rega
+	ifetch 1,rega
+	bbit1 state_insniff,context_get_next_sniff
+	rtnbit1 state_inconn
+context_get_next_sniff:
+	loop context_get_next_loop
+	rtn
+	
+context_new:
+	bpatch patch00_6,mem_patch00
+	arg context_search_empty,regc
+	call context_search
+	nrtn zero					// all occupied
+	deposit rega
+	store 2,mem_context_ptr
+	branch enable_zero
+	
+
+	
+	//rtn nzero if idle(no conn)
+context_check_idle:
+	arg context_check_inconn,regc
+	branch context_search
+	
+
+	
+	/* return zero if conn handle is found */
+context_search_conn_handle:
+	fetcht 1,mem_hci_conn_handle
+context_search_conn_handle2:
+	arg context_search_handle,regc
+	branch context_search
+	
+	/* return zero if plap is found */
+context_search_plap:
+	bpatch patch00_7,mem_patch00
+	fetcht 6,mem_hci_plap
+context_search_plap2:
+	arg context_search_lap,regc
+	branch context_search
+	/* return zero if sniff anchor is meet and rega pointers to context */
+context_search_insniff:
+	arg context_search_sniff,regc
+	branch context_search
+	/* return zero if sniff window is in content with current transaction */
+context_search_sniff_window:
+	arg context_search_window,regc
+context_search:
+	bpatch patch01_0,mem_patch01
+	arg mem_context,rega
+	arg context_num,loopcnt
+context_search_loop:
+	ifetch 1,rega
+	copy regc,pc
+context_search_next:
+	bpatch patch01_1,mem_patch01
+	increase context_size,rega
+	loop context_search_loop
+	force 1,null
+	rtn
+
+context_search_empty:
+	bbit1 state_inconn,context_search_next
+	branch enable_zero
+	
+context_search_lap:
+	bbit0 state_inconn,context_search_next
+context_search_lap_cont:
+	add rega,coffset_plap,contr
+	ifetch 6,contr
+	isub temp,null
+	rtn zero
+	branch context_search_next
+
+context_search_handle:
+	bbit0 state_inconn,context_search_next
+	add rega,coffset_conn_handle,contr
+	ifetch 1,contr
+	isub temp,null
+	rtn zero
+	branch context_search_next
+
+context_search_sniff:
+	bbit0 state_insniff,context_search_next
+context_search_sniff_loop:
+	call context_get_anchor
+	call sign_pdata_temp
+	isub temp,pdata
+	increase 1,pdata
+	branch context_search_sniff_miss,positive
+	copy contr,regb
+	store 9,mem_temp
+	bpatch patch01_2,mem_patch01
+ifdef SECURE_CONNECTION
+	fetch 1,mem_sc_calc
+	nbranch context_search_sniff_sc,blank
+endif	
+	fetch 9,mem_temp
+	copy regb,contr
+	increase 5,pdata  
+	branch context_search_meet1
+	
+ifdef SECURE_CONNECTION
+context_search_sniff_sc:
+	fetch 9,mem_temp
+	copy regb,contr	
+	increase 20,pdata  
+endif	
+context_search_meet1:
+	nbranch context_search_next,positive
+context_search_meet:
+	copy temp,bt_clk
+	call context_next_anchor
+	branch enable_zero
+	
+	
+context_search_sniff_miss:
+	iforce regb
+	add rega,coffset_tsniff,contr
+	ifetch 2,contr
+	branch context_search_meet,blank
+	call context_next_anchor
+	branch context_search_sniff_loop
+
+sign_pdata_temp:
+	rshift16 pdata,timeup    
+	rshift8 timeup,timeup    
+	branch sign_pdata_temp_p0,zero    
+	compare 0xf,timeup,0xf    
+	nrtn true    
+	rshift16 temp,timeup    
+	rshift8 timeup,timeup    
+	nrtn zero    
+	set1 28,temp    
+	rtn
+sign_pdata_temp_p0:    
+	rshift16 temp,timeup    
+	rshift8 timeup,timeup    
+	compare 0xf,timeup,0xf    
+	nrtn true    
+	set1 28,pdata    
+	rtn
+
+context_check_inconn:
+	bbit0 state_inconn,context_search_next
+	branch enable_zero			// found
+
+	
+context_check_a_wack:
+	bbit0 state_inconn,context_search_next
+	add rega,coffset_mode,contr
+	ifetch 1,contr
+	bbit1 mode_le,context_search_next
+	rtn
+
+context_get_anchor:
+	add rega,coffset_mode,contr
+	ifetcht 1,contr
+	deposit clkn_bt
+	isolate1 mode_master,temp
+	add rega,coffset_sniff_anchor,contr
+	ifetcht 4,contr
+	rtn true
+	add rega,coffset_clk_offset,contr
+	ifetch 6,contr
+	call calc_clke2
+	deposit clke_bt
+	rtn
+
+context_next_anchor:
+	add rega,coffset_tsniff,contr
+	add rega,coffset_sniff_anchor,contw
+	ifetch 2,contr
+	iadd temp,timeup			/* wrap to 28 bits */
+	deposit timeup
+	istore 4,contw
+	branch le_context_nextevent
+	
+
+context_search_window:
+	bbit0 state_insniff,context_search_next
+	call context_get_anchor
+	iadd stop_watch,pdata
+	iadd stop_watch,pdata
+	iadd queue,pdata
+	isub temp,null
+	nbranch context_search_next,positive
+	branch enable_zero
+
+
+
+end_of_packet:
+	bpatch patch01_3,mem_patch01
+	disable lr_s2en
+	disable encode_fec0
+	disable encode_fec2
+	disable decode_fec0
+	disable decode_fec2
+	disable enable_crc
+	disable encrypt
+	disable enable_white
+	branch shutdown_radio,is_rx
+	until null,tx_clear
+	nop 100          /* flush out the last bit */
+	branch shutdown_radio
+
+
+
+	/* enable user if sniff window vialation, queue is extra overhead */
+sniff_check_window:
+	bpatch patch01_4,mem_patch01
+	disable swfine
+	copy temp,stop_watch
+	call context_search_sniff_window
+	disable user
+	nrtn zero
+	force 0,stop_watch
+	branch enable_user
+
+
+calc_slot_offset:
+	bpatch patch01_5,mem_patch01
+	until null,halfslot
+	deposit clke
+	iforce contr
+	rshift16,pdata,pdata
+	isub clkn_bt,loopcnt
+	and_into 3,loopcnt			/* bt portion */
+	nbranch calc_bt_portion,zero
+	force 0,pdata
+	branch calc_skip_bt
+calc_bt_portion:
+	fetcht 2,mem_param_rt_rthalfslot
+	force 0,pdata
+calc_slot_offset_loop:
+	iadd temp,pdata
+	loop calc_slot_offset_loop
+calc_skip_bt:
+	iadd contr,pdata			/* add rt portion */
+	div pdata,12
+	call get_div_result
+	store 2,mem_slot_offset
+	rtn
+
+calc_clke_offset:
+	bpatch patch01_6,mem_patch01
+	deposit clke
+	copy clkn,temp
+	isub temp,null
+	nsetflag positive,44,pdata
+	isub temp,temp
+	fetch 2,mem_param_rt_rthalfslot
+	isolate0 15,temp
+	branch calc_clke_pos,true
+	copy temp,alarm
+	arg 0x10000,temp
+	fetch 2,mem_param_rt_rthalfslot
+	isub temp,pdata
+	iadd alarm,temp
+	
+calc_clke_pos:
+	storet 6,mem_le_clk_offset
+	rtn
+
+calc_clke:
+	disable clknt
+	fetch 6,mem_le_clk_offset
+calc_clke2:
+	iadd clkn,alarm
+	increase 10,alarm
+	fetch 2,mem_param_rt_rthalfslot
+	isub alarm,pdata
+	isolate0 15,pdata
+	branch calc_clke_pos_adj,true
+	setarg 0x10000
+	fetchr regd,2,mem_param_rt_rthalfslot
+	isub regd,pdata
+	iadd alarm,alarm
+calc_clke_pos2:
+	copy alarm,clke
+	rtn
+calc_clke_pos_adj:		/* add 2 clock */
+	force 0,null
+	branch calc_clke_pos2
+	
+/******************************************/
+/********* RF related functions ***********/
+/******************************************/
+
+
+qsetxor:
+	rshift3 pdata,pdata
+	ifetchr rega,1,contw
+	ixor rega,pdata
+	isolate0 6,pdata
+	branch qset_p
+
+qset1_p:
+	isolate0 0,null
+qset_start:
+	arg 0x8ac2,contw
+qset_p:
+	ifetch 1,contw
+	qsetflag true,pdata
+	istore 1,contw
+	rtn
+	
+rx_dcoc_avg:
+	nop 60
+btdma:
+//	call btdma
+	jam 8,0x8983
+	jam 9,0x8985
+	jam 0x9,0x8981
+	jam 0x3,0x8981
+	jam 0x6,0x8980	
+	nop 60
+	arg 0,rega
+	arg 0,regb
+	arg 16,loopcnt
+	arg 0x800,contr
+rx_dcoc_loop:
+	ifetch 2,contr
+	iadd rega,rega
+	ifetch 2,contr
+	iadd regb,regb
+	loop rx_dcoc_loop
+	rtn
+
+rx_dcoc:
+	bpatch patch01_7,mem_patch01
+	call set_sync_on
+	arg 39,temp
+	call set_freq_rx	
+	call rf_rx_enable
+	jam 0x7f,0x8a25
+	jam 0x1a,0x8a30
+	jam 0x78,0x8a31
+	jam 0xb2,0x8a8f
+	jam 0,0x8ac2
+	jam 0,0x8ac3
+	arg 6,queue
+	call rx_dcoc_avg
+	isolate1 13,rega
+	call qset_start
+	isolate1 13,regb
+	call qset_p
+	arg 5,queue
+rx_dcoc_loop2:
+	call qset1_p
+	call qset_p
+	call rx_dcoc_avg
+	arg 0x8ac2,contw
+	rshift4 rega,pdata
+	call qsetxor
+	rshift4 regb,pdata
+	call qsetxor
+	increase -1,queue
+	branch rx_dcoc_loop2,positive
+	jam 0x52,0x8a8f
+	jam 2,0x8a30
+	jam 0,0x8981
+	
+shutdown_radio:
+	bpatch patch02_0,mem_patch02
+	call rf_debug_shutdown_radio_line	//L-H-L
+	disable is_tx
+	disable is_rx
+	setarg 0x0200
+	store 4,0x8a23
+	jam 0xfa,0x8a01
+	nop 12
+	jam 0,0x8a0f
+	jam 0x1a,0x8a12
+	jam 0x2b,0x8a14
+	force 8,radio_ctrl
+	force 0,radio_ctrl
+//	rtn
+	branch gain_control
+
+set_sync_on:
+	bpatch patch02_1,mem_patch02
+	jam 0x60,0x8a0f 
+	jam 0xaa,0x8a10 
+	jam 0x7a,0x8a12 
+	jam 0x00,0x8a25 
+	jam 0x00,0x8a26 
+	nop 60
+	jam 0x20,0x8a20 
+	jam 0xfd,0x8a23 
+	jam 0x12,0x8a24 
+	jam 0x10,0x8a24 
+	nop 60
+	jam 0x60,0x8a12 
+	jam 0xdd,0x8a23 
+	rtn
+
+set_freq_rx:
+	bpatch patch02_2,mem_patch02
+	jam 0x01,0x8900 
+	jam 0x9d,0x8a23 
+	jam 0x02,0x8a24 
+	nop 20 
+	jam 0x65,0x8a70
+	jam 0x9f,0x8a23
+	call set_lemode
+	storet 1,mem_last_freq
+	increase 1,temp
+//	branch aac_res_lookup
+	
+/* temp is frequency, 00=2400Mhz */
+aac_res_lookup:
+	bpatch patch02_3,mem_patch02
+	rshift4 temp,pdata
+	arg mem_aac_res_table,contr
+	iadd contr,contr
+	ifetch 1,contr
+	fetchr rega,1,0x8a71
+	and_into 0xf,rega
+	ior rega,pdata
+	store 1,0x8a71
+	call calc_freq
+	nop 144
+	fetch 1,mem_fcomp_div
+	beq XTAL_24M,aac_res_lookup_end
+	nop 36
+aac_res_lookup_end:
+	jam 0x80,0x8a20
+	rtn
+
+
+set_lemode_2m_16m:
+	setarg 0x8312
+	store 2,0x8907
+	branch set_lemode_2m
+
+set_lemode_1m_16m:
+	setarg 0x4189
+	store 2,0x8907
+	branch set_lemode_1m
+
+
+set_lemode:
+	bpatch patch02_4,mem_patch02
+	jam 0x11,0x8a82
+	jam 0x12,0x8a8d
+	jam 0x0a,0x8a8e
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,set_lemode_2m_16m
+	setarg 0x5762
+	store 2,0x8907
+set_lemode_2m:
+	jam 3,0x8901
+	jam 0x84,0x8920	
+	rtnmark1 mark_ble_2M
+	jam 1,0x8901
+	jam 0x80,0x8920
+	jam 0x07,0x8a82
+	jam 0x44,0x8a8d
+	jam 0x0a,0x8a8e
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,set_lemode_1m_16m
+	setarg 0x2bb1
+	store 2,0x8907
+set_lemode_1m:
+	rtnmark0 mark_ble_lr
+	jam 5,0x8901
+	rtn
+
+rf_rx_enable:
+	bpatch patch02_5,mem_patch02
+	call rf_debug_rx_gpio_high
+	call rf_rx_agc_set
+	force 8,radio_ctrl
+	force 0,radio_ctrl
+
+	setarg 0x0aaada
+	store 3,0x8a0f
+	jam 0x40,0x8a25
+	jam 0x10,0x8a26
+	nop 60
+	jam 0xfb,0x8a01
+	jam 0xff,0x8a25
+	jam 0x30,0x8a26
+	jam 0x5e,0x8a16
+	nop 20
+	jam 0x00,0x8a10
+	jam 0x08,0x8a11
+	nop 120
+	jam 0xd,0x8900
+	rtn
+
+	
+rf_rx_agc_set:
+	fetch 1,mem_gain_fix
+	beq 0xff,rf_rx_enable_no_soft_agc 
+	arg mem_gain_table,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,core_rf_rx_gain_fix
+	jam 0x27,core_rf_rx_agc_ctrl
+	
+rf_rx_enable_no_soft_agc:
+	fetcht 1,mem_gain_second_agc_en	//0x00 or 0x08
+	fetch 1,core_rf_rx_agc_ctrl
+	ior temp,pdata
+	store 1,core_rf_rx_agc_ctrl
+	rtn
+	
+
+set_freq_tx_int:
+	jam 0x03,0x8900 
+	jam 0x02,0x8a24 
+	nop 20 
+	jam 0x65,0x8a70
+	jam 0xdf,0x8a23
+	call set_lemode
+	call ghp_lookup
+	storet 1,mem_last_freq
+	increase 2,temp
+	branch aac_res_lookup
+
+
+/* temp is frequency, 00=2400Mhz */
+calc_freq:
+	bpatch patch02_6,mem_patch02
+	setarg 2400
+	iadd temp,pdata
+	copy pdata, rega
+	fetcht 1,mem_fcomp_div
+	rshift temp,temp
+	idiv temp
+//	mul32 pdata,12,rega
+	call wait_div_end
+	quotient pdata
+	store 2,0x8909
+	remainder pdata
+	lshift16 pdata,pdata
+	lshift8 pdata,pdata
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	store 3,0x890b
+//	deposit rega
+//	idiv temp
+//	call wait_div_end
+//	quotient pdata
+	storer rega, 1,0x8a22
+	rshift8 rega,rega
+	storer rega, 1,0x8a21
+	jam 0xa0,0x8a20 
+	jam 0xe0,0x8a20 
+	jam 0xa0,0x8a20
+	rtn
+
+ghp_lookup:
+	add temp,2,pdata
+	rshift3 pdata,pdata
+	and_into -2,pdata
+	arg mem_ghpc_table,contr
+	bmark0 mark_ble_2M,ghp_1m
+	increase 12,contr
+ghp_1m:
+	iadd contr,contr
+	ifetchr rega,2,contr
+	ifetch 2,contr
+	isub rega,pdata
+	add temp,2,contr
+	and_into 0xf,contr
+	imul32 contr,pdata
+	rshift4 pdata,pdata
+	iadd rega,pdata
+	store 2,0x8905
+	rtn
+
+
+
+set_freq_tx:
+	bpatch patch02_7,mem_patch02
+	call set_freq_tx_int
+	nop 600 //50us
+
+txon:
+	bpatch patch03_0,mem_patch03
+	setarg 0x0aaa7e
+	store 3,0x8a0f
+	nop 60
+	jam 0x00,0x8a25 
+	jam 0x0d,0x8a26 
+	jam 0x56,0x8a16 
+	nop 30
+	jam 0x1b,0x8a15 
+	call set_tx_power
+	nop 20
+	jam 0x0f,0x8a26 
+	nop 20
+	jam 0xa8,0x8a10 
+	jam 0x00,0x8a11 
+	rtn
+	
+set_tx_power:	
+	bpatch patch03_1,mem_patch03
+	fetch 1,mem_tx_power
+	beq TX_POWER_0DB,set_tx_power_0db
+	beq TX_POWER_3DB,set_tx_power_3db
+	beq TX_POWER_5DB,set_tx_power_5db
+	beq TX_POWER_7DB,set_tx_power_7db
+	beq TX_POWER_10DB,set_tx_power_10db
+	beq TX_POWER_F3DB,set_tx_power_f3db
+	beq TX_POWER_F5DB,set_tx_power_f5db
+	beq TX_POWER_F10DB,set_tx_power_f10db
+	beq TX_POWER_F20DB,set_tx_power_f20db
+set_tx_power_0db:
+	jam 0x17,0x8a14 
+	setarg 0x251a3f
+	store 3,0x8a60
+set_tx_power_8a63_28:	
+	jam 0x28,0x8a63 
+	rtn
+
+set_tx_power_3db:
+	jam 0x25,0x8a14 
+	setarg 0xa91c2d
+	store 3,0x8a60
+set_tx_power_8a63_2f:	
+	jam 0x2f,0x8a63 
+	rtn
+
+set_tx_power_5db:
+	jam 0x25,0x8a14 
+	setarg 0xa91c3f
+	store 3,0x8a60
+	branch set_tx_power_8a63_2f
+
+set_tx_power_7db:
+	jam 0x25,0x8a14 
+	setarg 0xa9383f
+	store 3,0x8a60
+	branch set_tx_power_8a63_2f
+
+set_tx_power_10db:
+	jam 0x25,0x8a14 
+	setarg 0xa93f3f
+	store 3,0x8a60
+	branch set_tx_power_8a63_2f
+
+
+set_tx_power_f3db:
+	jam 0x17,0x8a14 
+	setarg 0x251827
+	store 3,0x8a60
+	branch set_tx_power_8a63_28
+	
+set_tx_power_f5db:
+	jam 0x17,0x8a14 
+	setarg 0x25181c
+	store 3,0x8a60
+	branch set_tx_power_8a63_28
+
+set_tx_power_f10db:
+	jam 0x17,0x8a14 
+	setarg 0x25180b
+	store 3,0x8a60
+	branch set_tx_power_8a63_28
+
+set_tx_power_f20db:
+	jam 0x17,0x8a14 
+	setarg 0x251000
+	store 3,0x8a60
+	branch set_tx_power_8a63_28
+
+
+
+initialize_radio:
+	jam clksel_rc,core_clksel
+initialize_radio_wait:
+	fetch 2,mem_rf_init_ptr
+	bbit0 14,initialize_radio_wait
+	iforce contr
+	arg 0x8a00,temp		//read 8a00 data->null :no run
+initialize_radio_loop:
+	ifetch 1,contr
+	beq 0xff,initialize_radio_cont
+	ior temp,contw
+	ifetch 1,contr
+	istore 1,contw
+	branch initialize_radio_loop
+	
+initialize_radio_cont:
+	bpatch patch03_2,mem_patch03
+	fetch 1,mem_wdt_always_work
+	call wdt_set_disable,blank
+
+	until null,lpo_edge
+	jam 0x5f,0x813b 
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,initialize_radio_16m
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x04,pdata
+	store 1,0x8a02
+	jam 0x01,0x890f
+	jam 0x24,0x8a80
+	jam 0x62,0x8a81
+	setarg 0xe61212
+	store 3,0x8a73	
+initialize_radio2:
+//	call gpio_set_before_lpm
+	jam 0x60,0x8a86
+	jam 0x3b,0x8a8b 
+
+	call dpll_on
+	jam 0,core_config
+	jam CLKSEL_DPLL,core_clksel
+	setarg 0x557474
+	store 3,0x8968
+	jam 0x6e,0x8960
+	call rx_dcoc
+	call rfpll_aac_ghpc
+	fetch 1,mem_xtal_c_sel
+	store 1,core_xtal_cap
+//	jam 0x3e,core_xtal_cap
+	jam SYSTEM_CLK_12M,mem_system_clk
+	call sadc_calibration
+	branch dpll_ring_ibias_calc
+	
+initialize_radio_16m:
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x06,pdata
+	store 1,0x8a02
+	jam 0x00,0x890f
+	jam 0x23,0x8a80
+	jam 0xb0,0x8a81
+	setarg 0xe40909
+	store 3,0x8a73
+	jam 0x2a,0x8a76
+	jam 0x04,0x8902	
+	branch initialize_radio2
+
+rfpll_aac_ghpc:
+	bpatch patch03_3,mem_patch03
+	call set_sync_on
+	jam 3,0x8900
+	jam 0x1,0x8a70
+	arg mem_ghpc_table,regb
+	arg mem_aac_res_table,regd
+	call rfpll_aac_ghpc_once
+	set1 mark_ble_2M,mark
+	call rfpll_aac_ghpc_once
+	jam 0x61,0x8a70
+	branch shutdown_radio
+
+rfpll_aac_ghpc_once:
+	call set_lemode
+	arg 6,loopcnt
+	arg 0,regc
+rfpll_cal_loop:
+	copy regc,temp
+	call aac_ghpc
+	increase 2,regb
+	increase 1,regd
+	increase 16,regc
+	loop rfpll_cal_loop
+	rtn
+
+dpll_on:
+	fetch 1,mem_fcomp_div
+	beq XTAL_24M,dpll_on_24m
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x06,pdata
+	store 1,0x8a02
+	jam 0xe0,0x8a05
+dpll_on_24m:	
+	jam 0xc8,0x8a00
+	nop 60
+	jam 0xa0,0x8a01
+	jam 0xcf,0x8a00
+	jam 0xfa,0x8a01
+	nop 20
+	jam 0x8f,0x8a00
+	rtn
+
+aac_ghpc:
+	bpatch patch03_4,mem_patch03
+	jam 0x30,0x8a20
+	jam 0xdd,0x8a23 
+	call calc_freq
+wait_cal_done:
+	fetch 1,0x8a7c
+	bbit0 0,wait_cal_done
+	jam 0x30,0x8a7b
+	call read_cal_result
+	iforce rega
+	jam 0x40,0x8a7b
+	call read_cal_result
+	isub rega,pdata
+	mul32 pdata,125,temp
+	setarg 0xb00000
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	bmark0 mark_ble_2M,aac_ghpc_1m
+	lshift pdata,pdata
+aac_ghpc_1m:
+	istore 2,regb
+	jam 0x20,0x8a7b
+	fetch 1,0x8a7e
+	lshift4 pdata,pdata
+	istore 1,regd
+	jam 0,0x8a7b
+	rtn
+
+read_cal_result:
+	fetch 2,0x8a7d
+	byteswap pdata,pdata
+	fetcht 1,0x8a7c
+	lshift16 temp,temp
+	ior temp,pdata
+	rtn
+
+//after dpll en and adc calibration
+dpll_ring_ibias_calc:
+	bpatch patch03_5,mem_patch03
+	fetch 1,core_vtest_ctrl0
+	set1 0,pdata
+	store 1,core_vtest_ctrl0
+	jam 0xf0,core_vtest_ctrl1
+	fetch 1,core_bbpll_cfg3
+	or_into 0x16,pdata
+	store 1,core_bbpll_cfg3
+
+	fetch 1,mem_adc_dma_enable
+	store 1,mem_temp
+	fetch 1,mem_adc_channel
+	store 1,mem_temp+1
+	jam 0,mem_adc_dma_enable
+	fetch 1,mem_ring_ibias_calc_adc_channel
+	store 1,mem_adc_channel
+	fetcht 1,mem_ring_ibias_calc_adc_gpio
+	call gpio_set_high_impedance
+
+	arg 0,rega
+	arg 8,loopcnt
+dpll_ring_ibias_read_adc:
+	call enable_adc
+	fetch 2,mem_adc_current_value
+	iadd rega,rega
+	loop dpll_ring_ibias_read_adc
+	rshift3 rega,rega
+	store 2,mem_adc_current_value
+
+	fetch 1,mem_temp
+	store 1,mem_adc_dma_enable
+	fetch 1,mem_temp+1
+	store 1,mem_adc_channel
+
+	fetch 1,core_bbpll_cfg3
+	and_into 0xe0,pdata
+	store 1,core_bbpll_cfg3
+	jam 0x00,core_vtest_ctrl1
+	fetch 1,core_vtest_ctrl0
+	set0 0,pdata
+	store 1,core_vtest_ctrl0
+
+	call vdd_calculate_by_mode
+	fetcht 2,mem_ring_ibias_vtune_high
+	isub temp,null
+	branch ring_ibias_trim_incrs,positive
+	fetcht 2,mem_ring_ibias_vtune_low
+	isub temp,null	
+	rtn positive
+ring_ibias_trim_decrs:
+	fetch 1,mem_ring_ibias_trim
+	rtneq 0x00
+	increase -32,pdata
+	store 1,mem_ring_ibias_trim
+	rtn
+
+ring_ibias_trim_incrs:
+	fetch 1,mem_ring_ibias_trim
+	rtneq 0xe0
+	increase 32,pdata
+	store 1,mem_ring_ibias_trim
+	rtn
+
+	
+save_rssi:
+	bpatch patch03_6,mem_patch03
+	 // bit6 is signed bit.
+	fetch 1,modem_nb_pow
+	isolate1 6,pdata
+	setflag true,7,pdata
+	store 1,mem_modem_rssi
+
+	fetch 1,modem_gain
+	and pdata,0x0f,temp
+	lshift temp,temp
+	rshift4 pdata,pdata
+	iadd temp,temp
+	mul32 temp,3,rega // (abb_gain + lna_gain*2)*3
+
+	fetch 1,mem_modem_rssi
+	call byte_sign_extern
+	sub pdata,0,pdata //-modem_nb_pow
+	iadd rega,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow)
+	increase -9,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow) - 9
+	and pdata,0x1ff,pdata
+	isolate1 8,pdata
+	nbranch save_rssi_store,true
+	setarg 0	 
+save_rssi_store:
+	store 1,mem_rssi_hex
+	branch rssi_hex2dec
+ 
+byte_sign_extern:
+	isolate1 7,pdata
+	nrtn true
+	arg 0xff00,temp
+	ior temp,pdata
+	rtn
+ 
+rssi_hex2dec:
+	fetch 1,mem_rssi_hex
+	call bcd
+	store 1,mem_rssi			 
+	rtn
+
+bcd:
+	and_into 0xff,pdata
+	div pdata,10
+	call get_div_result
+	lshift4 pdata,pdata
+	remainder temp
+	ior temp,pdata
+	rtn
+
+gain_control:
+	bpatch patch03_7,mem_patch03
+	fetch 1,mem_gain_fix
+	rtneq 0xff
+	nbranch  gain_increase,sync
+	fetch 1,mem_modem_rssi
+	sub pdata,0xf0,null
+	nbranch gain_descend,positive
+	sub pdata,0x7f,null
+	branch gain_descend,positive
+	
+	fetchr rega, 1,core_rf_rx_gain_fix
+	fetch 1,mem_gain_fix
+	rtneq 0	
+	arg mem_gain_table,contr
+	iadd contr,contr
+	ifetch 1,contr
+	isub rega,null
+	nrtn zero
+	increase -2,contr
+	ifetcht  1,contr
+	rshift4 temp,pdata
+	rshift4 rega,regb
+	isub regb,regb
+	and temp,0xf,pdata
+	and rega,0xf,rega
+	isub rega,rega
+	lshift rega,pdata
+	iadd regb,regb
+	mul32 regb,3,regb
+	fetcht 1,mem_modem_rssi
+	and temp,0x80,pdata
+	rtn blank
+add_negative:
+	setarg 0x100
+	isub temp,temp
+	copy regb,pdata
+	isub temp,pdata
+	rtn positive
+	and pdata,0xff,pdata
+	rtneq 0xff
+	rtneq 0xfe
+	
+gain_increase:	
+	fetch 1,mem_gain_fix
+	beq 1,set_rx_gain0
+	beq 2,set_rx_gain1
+//	beq 0,set_rx_gain0
+	branch set_rx_gain0
+	
+gain_descend:
+	fetch 1,mem_gain_fix
+	beq 0,set_rx_gain1
+	beq 1,set_rx_gain2
+//	beq 2,set_rx_gain2
+set_rx_gain2:
+	jam 2,mem_gain_fix
+	rtn
+
+set_rx_gain0:
+	jam 0,mem_gain_fix
+	rtn
+	
+set_rx_gain1:
+	jam 1,mem_gain_fix
+	rtn
+
+	
+
+
+
+	/* pdata = clks ahead of bt_clk */
+ahead_window:
+	copy pdata,temp
+	bpatch patch04_0,mem_patch04
+	copy temp,pdata
+	call clk2bt
+	lshift16 bt_clk,pdata
+	set1 44,pdata
+	call clk_diff
+	set0 44,pdata
+	call get_clk
+	call clk_diff
+	rtn user
+	call clk2rt
+	iforce stop_watch
+	until null,timeout
+	rtn
+
+
+get_clk:
+	copy clkn,temp
+	rtn master
+	copy clke,temp
+	rtn
+
+get_clkbt:
+	deposit clkn_bt
+	rtn master
+	deposit clke_bt
+	rtn
+
+
+assert:
+	bpatch patch04_1,mem_patch04
+	branch assert
+	
+
+sleep:	
+	rtn blank
+	/* sleep pdata clocks, only even clocks are accurate */
+	rshift pdata,pdata
+	increase -3,pdata
+sleep_loop:	
+	increase -1,pdata
+	nbranch sleep_loop,zero
+	force 0,pdata
+	rtn
+
+
+
+init_param:
+
+	setarg param_tx_setup
+	store 2,mem_param_tx_setup
+	setarg param_rf_setup
+	store 2,mem_param_rf_setup
+	setarg param_conn_access
+	store 2,mem_param_conn_access
+	setarg param_rx_setup
+	store 2,mem_param_rx_setup
+	setarg param_clke_cal
+	store 2,mem_param_clke_cal
+	setarg param_pll_setup
+	store 2,mem_param_pll_setup
+	setarg param_dpll_start_delay
+	store 2,mem_param_dpll_start_delay
+	setarg param_rt_rthalfslot
+	store 2,mem_param_rt_rthalfslot
+	setarg param_clke_cal_le_1m
+	store 2,mem_param_clke_cal_le_1m
+	setarg param_clke_cal_le_2m
+	store 2,mem_param_clke_cal_le_2m
+	setarg param_clke_cal_le_coded
+	store 2,mem_param_clke_cal_le_coded
+	
+	bpatch patch04_2,mem_patch04
+	rtn wake
+	setarg ATT_DEFAULT_MTU
+	store 2,mem_le_remote_mtu
+	jam PARAM_T_IFS_150US+PARAM_SYNC_TIME_DIFFERENCE,mem_le_tx_ifs_defference
+	setarg mem_ble_tx_buff0
+	store 2,mem_ble_l2cap_tx_buff0_ptr
+	setarg mem_ble_l2cap_tx_buff_size
+	store 2,mem_ble_l2cap_tx_buff_size_ptr	
+	rshift clkn_bt,pdata
+	store 4,mem_last_clkn
+	rtn
+
+
+
+
+/*****************************************LPM************************************************/
+
+lpmstate:
+	setarg 0xee21
+	store 2,core_clkoff			// disable unused peripherals
+	fetchr alarm,4,core_gpio_in
+	fetch 1,core_lpm_isogate
+	bbit0 gpio_latch,power_up
+	enable wake
+	bbit1 cold_wake,lpmwake		// wakeup from lpm	
+	disable wake
+	deposit auxcnt
+	nbranch lpmwake,blank		// sleep interrupted, wakeup
+	fetch 1,core_lpm_sysctl
+	bbit1 reload_code,lpmwake
+	arg param_hibernate_clks,temp
+	branch lpm_enter_sleep
+lpmwake:
+	call lpm_poweron_retmem
+	call lpm_load_context,wake
+	fetch 1,core_lpm_isogate
+	set0 gpio_latch,pdata			// enable gpio normal function after load gpio configuration
+	store 1,core_lpm_isogate		
+	nbranch boot_load,wake		// wakeup from hibernate
+ifdef YC1121SB
+	nop 1
+else
+	call clean_smem
+endif
+	storer alarm,4,mem_saved_gpio_in
+	rtn
+
+power_up:
+	call lpm_poweron_retmem
+boot_load:
+	call loadcode	
+	storer alarm,4,mem_saved_gpio_in
+	rtn
+
+lpm_poweron_retmem:
+	until null,lpo_edge
+	fetch 1,core_lpm_ldosel
+	and_into 0x88,pdata			// clear ldo to default all zero 
+	store 1,core_lpm_ldosel
+	until null,lpo_edge
+	fetch 1,core_lpm_isogate
+	or_into 0xf,pdata				// turn on all retmem switch
+	store 1,core_lpm_isogate		
+	until null,lpo_edge
+	set1 isogate,pdata				// turn on isolation gate
+	store 1,core_lpm_isogate		
+	until null,lpo_edge
+	set1 retmem_cs,pdata			// assert CSN
+	store 1,core_lpm_isogate		
+	until null,lpo_edge
+	rtn
+
+lpm_xtal_default:
+	until null,lpo_edge
+	jam 0x76,core_xtal_ib
+	until null,lpo_edge
+	jam 0x37,core_xtal_cap
+	rtn
+
+xtal_fast_wake:
+	until null,lpo_edge
+	jam 0x76,core_xtal_ib
+	until null,lpo_edge
+	jam 0x37,core_xtal_cap
+	rtn
+
+lpm_write_lock:
+//	fetch 1,mem_ucode_flag
+//	and pdata,0xf,temp
+	fetch 1,mem_device_option
+	lshift4 pdata,pdata
+//	ior temp,pdata
+	store 1,core_ucode_flag
+	until null,lpo_edge
+	fetch 1,mem_peripheral_lock_flag
+	set1 rom_lock_bit,pdata
+	set1 option_lock,pdata
+	store 1,core_peripheral_lock
+	branch lpm_write_wait
+	
+lpm_write_ice_disable:
+	fetch 1,core_lpm_sysctl
+	set0 ice_mode,pdata
+	store 1,core_lpm_sysctl
+	rtn
+
+lpm_write_ice_enable:
+	fetch 1,core_lpm_sysctl
+	set1 ice_mode,pdata
+	store 1,core_lpm_sysctl
+	rtn
+
+lpm_preon_counter:
+	fetch 3,mem_lpm_xtalcnt
+	arg core_lpm_xtalcnt,contw
+lpm_write_3bytes:
+	arg 3,loopcnt
+	branch lpm_write_loop
+	
+lpm_write_mpu_s0:
+	arg core_mpu_s0_saddr,contw
+lpm_write_dword:
+	arg 4,loopcnt
+lpm_write_loop:
+	until null,lpo_edge
+	istore 1,contw
+	rshift8 pdata,pdata
+	loop lpm_write_loop
+	branch lpm_write_wait
+
+lpm_write_mpu_s1:
+	arg core_mpu_s1_saddr,contw
+	branch lpm_write_dword
+
+
+lpm_disable_exen_output:
+	fetch 1,core_lpm_ldosel
+	set0 3,pdata
+	store 1,core_lpm_ldosel
+	rtn
+
+lpm_disable_io_dozed:
+	fetch 1,mem_lpm_hv_sel
+	rtn blank
+	set0 LPM_DOZE_EN_BIT,pdata
+	branch lpm_write_sel_hv
+
+lpm_save_sel_hv:
+	store 1,mem_lpm_hv_sel
+lpm_write_sel_hv:
+	store 1,core_io_doze_en
+lpm_write_wait:	
+	until null,lpo_edge
+	rtn
+
+
+lpm_write_io_vsel:
+	store 1,core_io_vsel
+	branch lpm_write_wait
+
+
+lpm_load_context:
+	call lpm_disable_io_dozed
+	fetch 1,mem_saved_spidctrl
+	store 1,core_spid_ctrl
+	arg mem_saved_gpio,contr
+	arg core_gpio_conf,contw
+	call memcpy16
+	arg core_gpio_conf_hi,contw
+	call memcpy8
+	fetchr mark,8,mem_saved_mark
+	arg core_gpio_wakeup_cfg,contr
+	arg mem_gpio_wakeup_cfg,contw
+	arg 12,loopcnt
+	call memcpy
+	branch load_ucode
+
+lpm_save_context:
+	storer mark,8,mem_saved_mark
+	arg core_gpio_conf,contr
+	arg mem_saved_gpio,contw
+	call memcpy16
+	arg core_gpio_conf_hi,contr
+	call memcpy8
+	fetch 1,core_spid_ctrl
+	store 1,mem_saved_spidctrl
+	branch lpm_write_gpio_wakeup
+	
+lpm_write_gpio_wakeup:
+	arg 12,loopcnt
+	arg mem_gpio_wakeup_cfg,contr
+	arg core_gpio_wakeup_cfg,rega
+lpm_write_gpio_loop:
+	ifetch 1,contr
+	ncall lpm_write_gpio,blank
+	increase 1,rega
+	loop lpm_write_gpio_loop
+	rtn
+lpm_write_gpio:
+	istore 1,rega
+	until null,lpo_edge
+	rtn
+
+lpo_calibration:
+	bpatch patch04_3,mem_patch04
+	fetch 1,core_ccnt_bit
+	nbranch lpo_cal_inited,blank
+	fetch 3,mem_clks_per_lpo
+	nrtn blank
+	jam 0xc,core_ccnt_bit
+	jam ccnt_start,core_misc_ctrl
+lpo_cal_inited:
+	fetch 1,core_perf_status
+	rtnbit0 1
+	fetch 3,core_clk_counter
+	store 3,mem_clks_per_lpo
+	rtn
+
+
+	/* temp is lpo counter for doze */
+lpm_doze:
+	fetch 1,mem_lpm_sysctl
+	set1 reload_code,pdata
+	store 1,mem_lpm_sysctl
+
+	/* no retention memory at all */
+lpm_hibernate:
+	bpatch patch04_4,mem_patch04
+	arg param_hibernate_clks,temp
+	fetch 1,mem_lpm_hibernate_switch
+	store 1,mem_lpm_isogate_final	
+	fetch 1,mem_lpm_sysctl
+	store 1,core_lpm_sysctl
+	until null,lpo_edge
+	/* temp is lpo clocks to sleep */
+lpm_sleep:
+	bpatch patch04_5,mem_patch04
+	//call xtal_fast_wake
+	fetch 2,mem_cb_before_lpm_sleep
+	call callback_func
+lpm_sleep_skip_cb_function:
+	fetch 4,mem_sleep_counter_all	// sleep total time, 32k unit
+	iadd temp,pdata
+	store 4,mem_sleep_counter_all
+	call lpm_save_context
+	fetch 1,mem_lpm_hv_sel
+	set1 LPM_DOZE_EN_BIT, pdata
+	call lpm_write_sel_hv
+	ncall lpm_preon_counter,wake
+	until null,lpo_edge
+	storer clkn,6,mem_sleep_clkn
+	fetch 3,mem_lpm_isogate
+	fetchr rega,1,mem_lpm_ldo_sel
+	arg 3,loopcnt
+lpm_sleep_loop:
+	until null,lpo_edge
+	store 1,core_lpm_isogate
+	rshift8 pdata,pdata
+	loop lpm_sleep_loop
+	until null,lpo_edge
+	storer rega,1,core_lpm_ldosel
+lpm_enter_sleep:
+	until null,lpo_edge
+	storet 4,core_lpm_reg
+	jam lpmreg_sel_counter,core_lpm_wr
+	until null,never
+
+lpm_cal_xtal_startup:
+	fetch 1,mem_lpm_xtalcnt
+	nrtn blank
+	jam clksel_rc,core_clksel
+	jam 0xf8,core_lpm_ctrl			// turn off xtal
+	setarg 200000
+	call sleep
+	call xtal_fast_wake
+	until null,lpo_edge
+	jam 0xff,core_lpm_ctrl				// turn on xtal
+	copy lpo_time,alarm
+	jam clksel_xtal,core_clksel
+	nop 10
+	until null,lpo_edge
+	deposit lpo_time
+	isub alarm,pdata
+	increase 0x30,pdata
+	arg 0xff,temp
+	call ceiling
+	store 1,mem_lpm_xtalcnt
+	nop 30000
+	nop 30000
+	nop 30000	
+	rtn
+
+
+lpm_recover_clk:
+	bpatch patch04_6,mem_patch04
+	setarg 0
+	copy auxcnt,null
+	branch lpm_recover_timeout,zero
+	fetch 1,core_lpm_xtalcnt
+	fetcht 1,core_lpm_buckcnt
+	isub temp,null
+	branch lpm_recover_xtal,positive
+	deposit temp
+lpm_recover_xtal:
+	isub auxcnt,pdata
+	increase 1,pdata
+lpm_recover_timeout:
+	increase 8,pdata
+	until null,lpo_edge
+	iadd lpo_time,pdata
+	fetcht 4,mem_sleep_counter
+	iadd temp,pdata
+	fetcht 3,mem_clks_per_lpo
+	imul32 temp,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	increase param_lpm_fix,pdata
+	fetcht 2,mem_param_rt_rthalfslot
+	idiv temp
+	call get_div_result
+	lshift16 pdata,pdata
+	remainder temp
+	ior temp,pdata
+	fetcht 6,mem_sleep_clkn
+	call clk_add
+	copy temp,clkn
+	fetch 6,mem_context + coffset_clk_offset
+	call calc_clke2
+	deposit clke
+	store 6,mem_pdatatemp
+	deposit auxcnt
+	istore 1,contw
+	fetch 1,core_gpio_in1
+	or_into 0xf0,pdata
+	istore 1,contw
+	rtn
+
+	/* temp is synced clke */
+lpm_adjust_clk:
+	bpatch patch04_7,mem_patch04
+	deposit clke
+	call clk_diff_rt
+	fetcht 4,mem_sleep_counter_all
+	sub temp,0xff,null
+	rtn positive				// interval too small
+	lshift8 pdata,pdata
+	lshift4 pdata,pdata
+	idiv temp
+	call get_div_result
+	arg param_lpm_adjmax,temp
+	call ceiling
+	store 1,mem_lpm_adjust
+	nbranch lpm_adjust_positive,user
+	sub pdata,0,pdata
+lpm_adjust_positive:
+	fetcht 3,mem_clks_per_lpo
+	iadd temp,pdata
+	store 3,mem_clks_per_lpo
+lpm_clear_counter:
+	setarg 0
+	store 4,mem_sleep_counter_all
+	rtn
+
+	
+lpm_dispatch:
+	bpatch patch05_0,mem_patch05
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_lpm_mode
+	rtn blank
+ifdef 	SECURE_CONNECTION
+	fetch 1,mem_secure_connections_enable
+	branch lpm_dispatch_next,blank
+	fetch 1,mem_sc_local_key_invalid 	// simple pairing is not ready
+	rtn blank
+lpm_dispatch_next:
+	fetch 1,mem_sc_calc
+	nrtn blank	
+endif
+	arg context_check_a_wack,regc
+	call context_search
+	rtn zero
+	call lpm_check_wake_lock
+	nrtn blank
+	call context_check_idle						
+	nbranch lpm_dispatch_unconn,zero
+	rtn wake
+	bpatch patch05_1,mem_patch05
+	fetcht 1,mem_lpm_current_mult
+	fetch 2,mem_context + coffset_tsniff
+	imul32 temp,pdata
+	rshift4 temp,temp
+	rshift2 temp,temp
+	isub temp,pdata
+	fetcht 4,mem_context + coffset_sniff_anchor
+	iadd temp,pdata
+	fetcht 1,mem_lpm_overhead
+	isub temp,pdata
+	lshift16 pdata,alarm
+	fetch 2,mem_context + coffset_rx_window
+	rshift pdata,pdata
+	call clk2bt
+	deposit alarm
+	call clk_diff
+	copy clke,temp
+	call clk_diff_rt
+	rtn user
+lpm_dispatch_sleep:
+	call clk2lpo
+lpm_dispatch_lpo:
+	bpatch patch05_2,mem_patch05
+	fetch 1,mem_lpm_xtalcnt
+	isub temp,null
+	branch lpm_clear_counter,positive
+	storet 4,mem_sleep_counter
+	call app_will_enter_lpm
+//	call l2cap_lpm_save_txbuf
+	fetcht 4,mem_sleep_counter
+	branch lpm_sleep
+	
+lpm_dispatch_unconn:
+	bpatch patch05_3,mem_patch05
+	fetch 1,mem_le_adv_enable
+	nbranch lpm_unconn_cont,blank
+	rtn
+	
+lpm_unconn_cont:
+	fetch 2,mem_lpm_interval
+	rtn blank
+lpm_sleep_btclk:
+	fetcht 1,mem_lpm_overhead
+	isub temp,pdata
+	arg 7500,temp				
+	imul32 temp,pdata
+	branch lpm_dispatch_sleep
+
+	
+lpm_mult_wait_timeout:
+	fetch 2,mem_cb_bt_set_mult
+	call callback_func
+	nbranch lpm_mult_short,blank
+	jam 0,mem_lpm_current_mult
+	bmark0 mark_lpm_mult_enable,lpm_mult_short
+	fetch 1,mem_lpm_mult_cnt
+	branch lpm_mult_long,blank
+	increase -1,pdata
+	store 1,mem_lpm_mult_cnt
+	rtn
+
+
+
+
+lpm_match:
+	jam 0,mem_sniff_unint_lost
+	fetch 3,mem_sniff_rcv
+	increase 1,pdata
+	store 3,mem_sniff_rcv
+	rtn
+
+
+lpm_lost:
+	bpatch patch05_4,mem_patch05
+	jam 0,mem_lpm_current_mult
+	fetch 3,mem_sniff_lost
+	increase 1,pdata
+	store 3,mem_sniff_lost
+	fetch 1,mem_sniff_unint_lost
+	increase 1,pdata
+	store 1,mem_sniff_unint_lost
+	rtn
+
+lpm_mult_short:
+	jam 0,mem_lpm_current_mult
+	fetch 1,mem_lpm_mult_timeout
+	store 1,mem_lpm_mult_cnt
+	rtn
+
+lpm_mult_long:
+	fetcht 1,mem_lpm_mult
+	storet 1,mem_lpm_current_mult
+	rtn
+
+
+
+lpm_get_wake_lock:
+	fetch 2,mem_lpm_wake_lock
+	qset1 pdata
+	store 2,mem_lpm_wake_lock
+	rtn
+
+lpm_put_wake_lock:
+	fetch 2,mem_lpm_wake_lock
+	qset0 pdata
+	store 2,mem_lpm_wake_lock
+	rtn
+
+
+
+lpm_check_wake_lock:
+	bpatch patch05_5,mem_patch05
+	call app_check_wake_lock
+	fetch 2,mem_lpm_wake_lock
+	copy pdata,rega
+	fetch 3,mem_tx_fifo3
+	nsetflag blank,wake_lock_ble_tx,rega
+	fetch UTIL_FIFO_LEN,mem_ipc_fifo_bt2c51
+	nsetflag blank,wake_lock_ipc_bt2c51,rega
+	fetch UTIL_FIFO_LEN,mem_ipc_fifo_c512bt
+	nsetflag blank,wake_lock_ipc_c512bt,rega
+	fetch 1,mem_hci_cmd
+	nsetflag blank,wake_lock_cmd,rega
+	fetch 1,mem_device_option
+	compare DVC_OP_MODULE,pdata,0xff
+	call lpm_uart_wake_lock,true
+	copy rega,pdata
+	store 2,mem_lpm_wake_lock
+	rtn
+
+lpm_uart_wake_lock:
+	fetch 2,core_uart_rxitems
+	nsetflag blank,wake_lock_uart_rx ,rega
+	fetch 2,core_uart_txitems
+	nsetflag blank,wake_lock_uart_tx ,rega
+	rtn
+
+	
+
+
Index: program/ccit-false.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ccit-false.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ccit-false.prog	(working copy)
@@ -0,0 +1,32 @@
+
+
+
+//regc: read buffer
+//loopcnt: (length)
+//mem_adv_CRC_False_initValue: 鍒濆煎拰鏈缁堢粨鏋
+//mem_CRC16_polynomial:澶氶」寮
+p_CRC16_CCITT_False:
+	fetch 2, mem_adv_CRC_False_initValue //pdata crc
+	
+p_CRC16_CCITT_False_loop:
+	ifetcht 1, regc
+	increase 1, regc
+	lshift8 temp, temp
+	ixor temp,pdata
+	
+p_CRC16_for_byte:
+	copy loopcnt,regb		
+	arg 8,loopcnt
+p_CRC16_for_byte_loop:
+	isolate1 15,pdata
+	lshift pdata,pdata
+	nbranch p_CRC16_for_byte_continue,true
+	fetcht 2, mem_CRC16_polynomial
+	ixor temp,pdata
+p_CRC16_for_byte_continue:
+	loop p_CRC16_for_byte_loop
+	copy regb,loopcnt
+	
+	loop p_CRC16_CCITT_False_loop
+	store 2,mem_adv_CRC_False_initValue
+	rtn
Index: program/debug.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/debug.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/debug.prog	(working copy)
@@ -0,0 +1,66 @@
+
+// Rf debug
+
+/*****************************************************************************************************************************************************************************************
+    txon     txoff       rxon		      sync             crc pass    shutdown radio          match
+     _________          ______________    _________________     ___        ___                     
+    |         |        |              |  |                 |   |   |      |   |                   
+    |	      |        |              |  |                 |   |   |      |   |                   
+____|tx data  |________|   rx window  |__| rx data         |___|   |______|   |_______       __________
+
+*****************************************************************************************************************************************************************************************/
+
+rf_debug_rx_gpio_low:
+	fetch 1,mem_rf_debug_rx_gpio
+rf_debug_gpio_low:
+	arg gpcfg_output_low,temp
+	branch gpio_config_function
+
+rf_debug_rx_on_line:
+rf_debug_rx_gpio_high:
+	fetch 1,mem_rf_debug_rx_gpio
+rf_debug_gpio_high:
+	arg gpcfg_output_high,temp
+	branch gpio_config_function
+
+rf_debug_rx_gpio_h_l_h:
+	call rf_debug_rx_gpio_high
+rf_debug_rx_gpio_l_h:
+	call rf_debug_rx_gpio_low
+	branch rf_debug_rx_gpio_high
+
+rf_debug_rx_gpio_l_h_l:
+rf_debug_shutdown_radio_line:
+	call rf_debug_rx_gpio_l_h
+rf_debug_rx_crc_line:
+	branch rf_debug_rx_gpio_low
+
+rf_debug_rx_sync_line:
+	branch rf_debug_rx_gpio_l_h
+
+rf_debug_rx_crc_fail_line:
+	call rf_debug_rx_gpio_l_h
+	branch rf_debug_rx_gpio_l_h_l
+
+rf_debug_rx_match_line:
+rf_debug_rx_crc_error_line:
+rf_debug_rx_sync_timeout_line:
+	branch rf_debug_rx_gpio_low
+
+
+rf_debug_tx_off_line:
+rf_debug_tx_gpio_low:
+	fetch 1,mem_rf_debug_tx_gpio
+	branch rf_debug_gpio_low
+
+rf_debug_tx_on_line:
+rf_debug_tx_gpio_high:
+	fetch 1,mem_rf_debug_tx_gpio
+	branch rf_debug_gpio_high
+
+rf_debug_tx_gpio_l_h_l:
+	call rf_debug_tx_gpio_low
+	call rf_debug_tx_gpio_high
+	branch rf_debug_tx_gpio_low
+
+	
Index: program/g24_protocol_stack/24g.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g.prog	(working copy)
@@ -0,0 +1,566 @@
+
+
+g24_dispatch:
+	bpatchx patch2d_3,mem_patch2d
+	bmark1 mark_24g_rxmode,g24_receive_dispatch
+	branch g24_transmit_dispatch
+
+
+/****************************g24 base transceiver start********************************/
+
+g24_prep:
+	bpatchx patch2d_4,mem_patch2d
+	disable enable_crc
+	disable enable_white
+	setarg 0x555555
+	iforce crc24_init
+	fetch 1,mem_24g_ch
+	branch le_prep_next
+
+g24_receive_packet:
+	bpatchx patch2d_5,mem_patch2d
+	fetch 1,mem_24g_rx_phy
+	call le_enable_phy_by_pdata
+	fetch 4,mem_24g_addr
+	iforce access
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	call le_rf_rx_enable
+g24_receive_rxon:
+	call g24_prep
+	bmark0 mark_ble_lr,g24_receive_nolr
+	pulse dewhiten_code_calc
+	nop 30
+	call g24_prep
+g24_receive_nolr:
+	disable user3
+	enable decode_fec0
+	enable is_rx
+	disable is_tx
+	enable swfine
+	fetch 2,mem_24g_rx_window
+	iforce stop_watch
+	correlate null,timeout
+	nbranch g24_sync_timeout,sync
+	call rf_debug_rx_sync_line
+	bmark1 mark_ble_lr,g24_receive_skip_fec1
+	fetch 1,mem_24g_disable_fec1
+	nbranch g24_receive_skip_fec1,blank
+	disable decode_fec0	
+	enable decode_fec1	//lr do not use fec1
+g24_receive_skip_fec1:
+	enable enable_white
+	enable enable_crc
+	call g24_receive_byte
+	store 1,mem_24g_get_syncword_crc8
+	fetcht 1,mem_24g_syncword_crc8
+	isub temp,null
+	nbranch g24_hec_error,zero
+	bpatchx patch2d_6,mem_patch2d
+	disable user7
+	isolate1 mark_ble_lr,mark
+	call g24_lr_receive_pdu_len,true
+	branch g24_lr_len_error,user7
+	call g24_receive_byte
+	store 1,mem_24g_rxbuf	//device id
+	bmark1 mark_24g_rxmode,g24_receive_skip
+	fetch 1,mem_24g_rxbuf
+	fetcht 1,mem_24g_data_type
+	icompare bits_data,temp
+	nbranch g24_type_error,true
+g24_receive_skip:
+	call g24_receive_byte
+	isolate1 mark_ble_lr,mark
+	call g24_lr_receive_payload_len,true
+	istore 1,contw
+	rshift3 pdata,pdata
+	sub pdata,0x1f,null
+	nbranch g24_len_over_error,positive	//max payload: 32bytes
+	copy pdata,loopcnt
+	branch g24rx_nopayload,zero
+g24rx_loop:
+	call g24_receive_byte
+	istore 1,contw
+	loop g24rx_loop
+g24rx_nopayload:
+	bmark1 mark_24g_rxmode,g24_receive_skip_rssi
+	copy contw,rega
+	call g24_receive_byte
+	store 1,mem_rssi_hex_received	//receive rssi hex
+	copy rega,contw
+g24_receive_skip_rssi:
+	parse demod,bucket,24
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	fetch 1,mem_24g_disable_fec1
+	nbranch g24_receive_skip_disable_fec1,blank
+	disable decode_fec1
+g24_receive_skip_next:
+	isolate1 mark_24g_rxmode,mark
+	call save_rssi_dec,true
+	branch g24_crc_error,crc_failed
+	call rf_debug_rx_crc_line	//L
+	bpatchx patch2d_7,mem_patch2d
+	enable user3
+	call le_match_set_txfreq
+	rtnmark1 mark_24g_rxmode
+	fetch 1,mem_rssi_hex_received
+	fetcht 1,mem_rssi_hex_received_max_value
+	isub temp,null
+	call copy_temp2pdata,positive
+	branch rssi_signal
+
+g24_receive_skip_disable_fec1:
+	disable decode_fec0
+	branch g24_receive_skip_next
+	
+
+g24_lr_receive_pdu_len:
+	call g24_receive_byte
+	sub pdata,1,null
+	branch enable_user7,positive
+	increase -2,pdata	//minus hec and pdu length
+	bmark1 mark_24g_rxmode,g24_lr_receive_pdu_norssi
+	branch enable_user7,blank
+	increase -1,pdata	//minus rssi_hex length
+g24_lr_receive_pdu_norssi:
+	store 1,mem_temp	//payload length
+	rtn
+
+g24_lr_receive_payload_len:
+	and_into 0x07,pdata	//pdata[7:3]:length
+	fetcht 1,mem_temp	//payload length
+	lshift3 temp,temp
+	ior temp,pdata
+	rtn
+	
+g24_receive_byte:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	rtn
+
+g24_sync_timeout:
+	jam ERR_SYNC_TO,mem_24g_off_type
+	isolate1 mark_24g_rxmode,mark
+	call rssi_noise,true
+g24_end_of_packet:
+	bpatchx patch2e_0,mem_patch2e
+	call le_disable
+	disable encode_fec1
+	disable decode_fec1
+	branch end_of_packet
+
+g24_hec_error:
+	jam ERR_HEC,mem_24g_off_type
+	branch g24_end_of_packet
+
+g24_lr_len_error:
+	jam ERR_LR_LEN,mem_24g_off_type
+	branch g24_end_of_packet
+
+g24_type_error:
+	jam ERR_TYPE,mem_24g_off_type
+	branch g24_end_of_packet
+
+g24_len_over_error:
+	jam ERR_LEN_OVER,mem_24g_off_type
+	branch g24_end_of_packet
+
+g24_crc_error:
+	jam ERR_CRC,mem_24g_off_type
+	branch g24_end_of_packet
+
+g24_set_freq_tx:
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	branch set_freq_tx
+
+g24_transmit:
+	bpatchx patch2e_1,mem_patch2e
+	fetch 1,mem_24g_tx_phy
+	call le_enable_phy_by_pdata
+	fetch 4,mem_24g_addr
+	iforce access
+	call g24_prep
+	call g24_set_freq_tx
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	call rf_debug_tx_on_line
+	disable lr_s2en
+	bmark1 mark_ble_lr,g24_transmit_lr
+	bmark1 mark_ble_2M,g24_transmit_2M
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+g24_transmit_packet:
+	bpatchx patch2e_2,mem_patch2e
+	bmark1 mark_ble_lr,g24_transmit_nolr
+	fetch 1,mem_24g_disable_fec1
+	nbranch g24_transmit_nolr,blank
+	disable encode_fec0	
+	enable encode_fec1	////lr use encode_fec3
+g24_transmit_nolr:
+	enable enable_white
+	enable enable_crc
+	fetch 1,mem_24g_txlen
+	iforce loopcnt
+	arg mem_24g_txpayload,contr
+g24tr_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop g24tr_loop
+	enable enable_parity
+	inject mod,24	//crc
+	disable enable_parity
+	bmark0 mark_ble_lr,g24_transmit_skip
+	disable enable_white
+	setarg 0
+	inject mod,3
+g24_transmit_skip:	
+	until null,tx_clear
+	nop 100
+	disable lr_s2en
+	disable encode_fec0
+	fetch 1,mem_24g_disable_fec1
+	nbranch g24_transmit_skip_disable_fec1,blank
+	disable encode_fec1
+g24_transmit_skip_disable_fec1:
+	disable encode_fec3
+	call set_sync_on
+	branch rf_debug_tx_off_line
+
+g24_transmit_lr:
+	arg 10,loopcnt
+g24_transmit_lr_preamble_loop:
+	setarg 0x3c
+	inject mod,8
+	loop g24_transmit_lr_preamble_loop
+	disable encode_fec0
+	enable encode_fec3
+	rshift16 access,pdata
+	rshift16 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,32
+	bmark1 mark_ble_lr_s8,g24_transmit_lr_s8
+g24_transmit_lr_s2:
+	setarg 1
+	inject mod,5
+	enable lr_s2en
+	branch g24_transmit_packet
+
+g24_transmit_lr_s8:
+	setarg 0
+	inject mod,5
+	branch g24_transmit_packet
+
+g24_transmit_2M:
+	fetch 1,mem_system_clk
+	rshift pdata,loopcnt
+g24_transmit_2M_dealy:
+	nop 2
+	loop g24_transmit_2M_dealy
+//	nop 36	//2M 前端发送比1M快3us左右
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,temp
+	copy temp,pdata
+	inject mod,8
+	copy temp,pdata
+	inject mod,40
+	branch g24_transmit_packet
+
+/****************************g24 base transceiver end********************************/
+
+
+
+/****************************g24 general func start********************************/
+
+g24_transmit_prep:
+	bpatchx patch2e_3,mem_patch2e
+	fetch 1,mem_24g_tx_phy
+	bbit1 BIT_LE_CODED_PHY,g24_lr_transmit_prep
+// total length
+	fetch 1,mem_24g_datalen
+	increase 3,pdata	//hec/type/control
+	store 1,mem_24g_txlen
+//hec
+	fetch 1,mem_24g_syncword_crc8
+	store 1,mem_24g_txpayload
+// data type
+	fetch 1,mem_24g_data_type
+	istore 1,contw
+//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
+	fetch 1,mem_24g_datalen
+g24_transmit_prep_pdu:
+	lshift3 pdata,pdata
+	fetcht 1,mem_24g_pid
+	and temp,0x03,temp
+	lshift temp,temp
+	ior temp,pdata
+	fetcht 1,mem_24g_no_ack
+	iadd temp,pdata
+	istore 1,contw
+//prepare payload data
+	fetch 1,mem_24g_datalen
+	iforce loopcnt
+	arg mem_24g_txbuf,contr
+	call memcpy
+	bpatchx patch2e_4,mem_patch2e
+//rssi hex	
+	rtnmark0 mark_24g_rxmode
+	fetch 1,mem_rssi_hex
+	istore 1,contw
+	fetch 1,mem_24g_tx_phy
+	rtnbit1 BIT_LE_CODED_PHY
+	fetch 1,mem_24g_txlen
+	increase 1,pdata	//plus rssi_hex length
+	store 1,mem_24g_txlen
+	rtn
+	
+g24_lr_transmit_prep:
+// total length
+	fetch 1,mem_24g_datalen
+	increase 4,pdata	//hec/pdu/type/control
+	bmark0 mark_24g_rxmode,g24_lr_transmit_prep_skip
+	increase 1,pdata	//mem_rssi_hex
+g24_lr_transmit_prep_skip:
+	store 1,mem_24g_txlen
+//hec
+	fetch 1,mem_24g_syncword_crc8
+	store 1,mem_24g_txpayload
+// pdu length
+	fetch 1,mem_24g_txlen
+	increase -2,pdata	//minus hec and pdu length
+	istore 1,contw
+// data type
+	fetch 1,mem_24g_data_type
+	istore 1,contw
+	setarg 0
+	branch g24_transmit_prep_pdu
+
+g24_read_len_pid_crc:
+	bpatchx patch2e_5,mem_patch2e
+//read control
+	fetch 1,mem_24g_rxbuf+1
+	rshift3 pdata,pdata
+	store 1,mem_24g_rxdata_length
+//get crc
+	increase 1,pdata
+	arg mem_24g_rxbuf+1,contr
+	iadd contr,contr
+	ifetch 3,contr
+	store 3,mem_24g_sta_crc
+//read pid
+	fetch 1,mem_24g_rxbuf+1
+	rshift pdata,pdata
+	and pdata,0x03,pdata
+	store 1,mem_24g_sta_pid
+	rtn
+
+	
+g24_ch:
+	bpatchx patch2e_6,mem_patch2e
+	fetcht 1,mem_24g_current_ch_number
+	call g24_ch_map_size
+	storet 1,mem_24g_current_ch_number
+	rtn
+
+g24_ch_map_size:
+	bpatchx patch2e_7,mem_patch2e
+	call g24_ch_calc
+	increase 1,temp
+	and_into 3,temp //map size =4
+	rtn
+	
+g24_ch_calc:
+	bpatchx patch2f_0,mem_patch2f
+	fetch 1,mem_24g_addr	
+	and_into 0x03,pdata
+	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
+	setarg mem_24g_ch_map1
+	iadd rega,pdata
+	iadd temp,contr
+	ifetch 1,contr
+	store 1,mem_24g_ch
+	rtn
+
+
+g24_update_addr_and_synccrc8:
+	store 4,mem_24g_addr
+//output: 1BYTE crc8
+	bpatchx patch2f_1,mem_patch2f
+g24_syncword_crc8:
+	arg 0,rega
+	arg 4,loopcnt
+	arg mem_24g_addr,contr
+g24_syncword_crc8_loop:
+	ifetch 1,contr
+	iadd rega,rega
+	loop g24_syncword_crc8_loop
+	copy rega,pdata
+	store 2,mem_24g_syncword
+	fetch 1,mem_24g_syncword
+	fetcht 1,mem_24g_syncword+1
+	iadd temp,pdata
+	store 1,mem_24g_syncword_crc8
+	rtn
+
+
+g24_timer_check:
+	bpatchx patch2f_2,mem_patch2f
+	call disable_user
+	fetcht 4,mem_24g_tx_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_24g_tx_btclk
+	fetcht 1,mem_24g_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_24g_tx_btclk
+	branch enable_user
+	
+g24_timer_timeout:
+	rtn zero
+	set1 28,pdata
+	rtn
+	
+g24_timer_init:
+	setarg 0
+	store 4,mem_24g_tx_btclk
+	rtn
+
+
+
+//mem_24g_ch_map1:00 13 2c 42
+//mem_24g_ch_map2:06 15 36 48
+//mem_24g_ch_map3:0f 1a 3a 4c
+//mem_24g_ch_map4:11 23 31 4d
+g24_chmap_param_init:
+	bpatchx patch2f_3,mem_patch2f
+	setsect 0,0x1300
+	setsect 1,0x1908b
+	setsect 2,0x36150
+	setsect 3,0x3d20
+	store 9,mem_24g_ch_map1
+	setsect 0,0x3a1a
+	setsect 1,0xc453
+	setsect 2,0xd312
+	setsect 3,0x1
+	istore 7,contw
+	fetch 1,mem_24g_ch_map_update
+	rtn blank
+	arg mem_24g_ch_update_map1,contr
+	arg mem_24g_ch_map1,contw
+	branch memcpy16
+
+
+
+//mem_24g_ch_update_map1:00 1e 00 4e
+//mem_24g_ch_update_map2:03 23 03 42
+//mem_24g_ch_update_map3:06 25 06 4c
+//mem_24g_ch_update_map4:09 27 09 3c
+g24_chamap_param_update:
+	bpatchx patch2f_4,mem_patch2f
+	setarg 0x4e001e
+	store 3,mem_24g_ch_update_map1+1
+	setarg 0x032303
+	istore 3,contw
+	setarg 0x250642
+	istore 3,contw
+	setarg 0x094c06
+	istore 3,contw
+	setarg 0x3c0927
+	istore 3,contw
+	jam 1,mem_24g_ch_map_update
+	rtn
+
+
+g24_rx_window_init:
+	bpatchx patch2f_5,mem_patch2f
+	arg 0x6978,temp
+	bmark1 mark_24g_rxmode,g24_rx_window_store
+	arg 0x12c0,temp
+	fetch 1,mem_24g_rx_phy
+	bbit0 2,g24_rx_window_store	//uncoded phy
+	arg 0x2ee0,temp
+g24_rx_window_store:	
+	storet 2,mem_24g_rx_window
+	rtn
+
+g24_enable_1M:
+	jam 0x01,mem_24g_rx_phy
+	jam 0x01,mem_24g_tx_phy
+	rtn
+
+g24_enable_2M:
+	jam 0x02,mem_24g_rx_phy
+	jam 0x02,mem_24g_tx_phy
+	rtn
+	
+//g24_enable_coded_s2:
+//	jam 0x04,mem_24g_rx_phy
+//	jam 0x04,mem_24g_tx_phy
+//	rtn
+
+//g24_enable_coded_s8:
+//	jam 0x84,mem_24g_rx_phy
+//	jam 0x84,mem_24g_tx_phy
+//	rtn
+
+
+/****************************g24 general func end********************************/
+
+
+
+/****************************g24 sim start********************************/
+/*
+g24_sim_rx:
+	set1 mark_24g_rxmode,mark
+	jam 1,mem_24g_rx_phy	//0x01:1M/0x02:2M/0x04:S2/0x84:S8
+	fetch 1,mem_24g_rx_phy
+	call le_enable_phy_by_pdata
+	jam 0,mem_24g_ch
+	setarg 0x123456
+	store 3,mem_24g_addr
+	istore 1,contw
+	call g24_syncword_crc8
+	setarg 0x3000
+	store 2,mem_24g_rx_window
+g24_sim_rx_loop:
+	call g24_receive_packet
+	call g24_read_len_pid_crc
+	call g24_end_of_packet
+	branch g24_sim_rx_loop
+
+g24_sim_tx:
+	jam 1,mem_24g_tx_phy
+	fetch 1,mem_24g_tx_phy
+	call le_enable_phy_by_pdata
+	jam 0,mem_24g_ch
+	setarg 0x123456
+	store 3,mem_24g_addr
+	istore 1,contw
+	call g24_syncword_crc8
+	jam 1,mem_24g_datalen
+	jam 1,mem_24g_txbuf
+	jam 0x88,mem_rssi_hex
+	call g24_transmit_prep
+g24_sim_tx_loop:
+	call g24_transmit
+	call g24_end_of_packet
+	branch g24_sim_tx_loop
+
+*/
+
+/****************************g24 sim end********************************/
+
+	
Index: program/g24_protocol_stack/24g_pair.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_pair.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_pair.prog	(working copy)
@@ -0,0 +1,423 @@
+
+
+g24_pair_param_init:
+	bpatchx patch2f_6,mem_patch2f
+	jam 0x4e,mem_24g_pair_ch
+	setarg 0x101520
+	store 3,mem_24g_pair_addr
+	setarg 0x05
+	istore 1,contw
+	rtn
+
+
+
+/****************************g24 pair transmitter start********************************/
+
+g24_pair_timeout_timer:
+	arg mem_24g_pair_timeout,regc
+	arg g24_stop_24g_mode,regb
+	branch timer_single_step_2B
+
+g24_pair_start:
+	set1 mark_24g,mark
+	fetch 1,mem_24g_conn_sm
+	set0 STATE_24G_RECONN,pdata
+	set1 STATE_24G_PAIR,pdata
+	store 1,mem_24g_conn_sm
+	setarg 0
+	store 2,mem_24g_reconn_timeout
+	fetch 2,mem_24g_pair_timeout_init
+	store 2,mem_24g_pair_timeout
+	jam 0,mem_24g_pair_no_ack
+	call g24_pair_sm_reinit
+g24_pair_init_param:
+	jam 0,mem_24g_pid
+	fetch 1,mem_24g_pair_ch
+	store 1,mem_24g_ch
+	fetch 1,mem_24g_pair_tx_power
+	store 1,mem_tx_power
+	fetch 4,mem_24g_pair_addr
+	branch g24_update_addr_and_synccrc8
+
+
+g24_pair_dispatch:
+	bpatchx patch2f_7,mem_patch2f
+	jam DEFAULT_24G_DEVICE,mem_24g_reconn_type
+	fetch 2,mem_24g_pair_count
+	increase 1,pdata
+	store 2,mem_24g_pair_count
+	fetch 1,mem_24g_pair_count
+	and pdata,0xff,pdata
+	nrtn blank
+	fetch 1,mem_24g_pair_sm
+	beq STATE_24G_PAIRING_SUCCESS,g24_pair_exit
+	beq STATE_24G_PAIRING_1,g24_pair_sm_1
+	beq STATE_24G_PAIRING_2,g24_pair_sm_2
+	beq STATE_24G_PAIRING_3,g24_pair_sm_3
+	beq STATE_24G_PAIRING_4,g24_pair_sm_4
+	rtn
+
+g24_pair_sm_1:
+	jam DATATYPE_ATTEMP,mem_24g_txbuf
+	branch g24_pair_sm_prep
+
+g24_pair_sm_2:
+	fetch 1,mem_24g_pair_switch
+	branch g24_pair_sm_2_skip,blank
+	fetch 4,mem_24g_device_addr
+	call g24_update_addr_and_synccrc8	//use transmitter addr
+g24_pair_sm_2_skip:
+	jam DATATYPE_BIND,mem_24g_txbuf	
+	branch g24_pair_sm_prep
+
+g24_pair_sm_3:
+	jam DATATYPE_CONFIG,mem_24g_txbuf	
+	fetch 1,mem_24g_pair_switch
+	branch g24_pair_sm_prep,blank
+	fetch 4,mem_24g_receiver_addr		//prep receiver addr
+	store 4,mem_24g_txbuf+2
+	branch g24_pair_sm_common
+
+g24_pair_sm_4:
+	jam DATATYPE_OK,mem_24g_txbuf
+g24_pair_sm_prep:
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_txbuf+2
+g24_pair_sm_common:
+	fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_24g_txbuf+1
+	jam 0,mem_24g_txbuf+6
+	jam 7,mem_24g_datalen
+	call g24_transmit_prep
+	call g24_transmit_receive_ack
+	nrtn sync
+	nrtn user3
+	call g24_txbuf_clear
+	call g24_ackpayload_parse
+	bpatchx patch30_0,mem_patch30
+	fetch 1,mem_24g_pair_sm
+	rtneq STATE_24G_PAIRING_SUCCESS
+	beq STATE_24G_PAIRING_1,g24_pair_sm_1_waiting_ack
+	beq STATE_24G_PAIRING_2,g24_pair_sm_2_waiting_ack
+	beq STATE_24G_PAIRING_3,g24_pair_sm_3_waiting_ack
+	beq STATE_24G_PAIRING_4,g24_pair_sm_4_waiting_ack
+	rtn
+
+g24_pair_sm_reinit:	
+	jam STATE_24G_PAIRING_2,mem_24g_pair_sm
+	fetch 1,mem_24g_pair_switch
+	rtn blank
+	jam STATE_24G_PAIRING_1,mem_24g_pair_sm
+	rtn
+
+g24_pair_sm_1_waiting_ack:
+	jam STATE_24G_PAIRING_2,mem_24g_pair_sm
+	branch g24_transmit_abandon
+	
+g24_pair_sm_2_waiting_ack:
+	fetch 1,mem_24g_pair_switch
+	branch g24_pair_sm_2_waiting_ack_skip,blank
+	fetch 4,mem_24g_rxpayload+2
+	store 4,mem_24g_receiver_addr
+g24_pair_sm_2_waiting_ack_skip:	
+	jam STATE_24G_PAIRING_3,mem_24g_pair_sm
+	branch g24_transmit_abandon
+
+g24_pair_sm_3_waiting_ack:
+	fetch 1,mem_24g_pair_switch
+	branch g24_pair_sm_3_waiting_ack_skip,blank
+	fetch 4,mem_24g_rxpayload+2
+	fetcht 4,mem_24g_device_addr
+	isub temp,null
+	nrtn zero
+g24_pair_sm_3_waiting_ack_skip:	
+	jam STATE_24G_PAIRING_4,mem_24g_pair_sm
+	branch g24_transmit_abandon	
+	
+g24_pair_sm_4_waiting_ack:
+	fetch 1,mem_24g_pair_switch
+	branch g24_pair_sm_4_waiting_ack_skip,blank
+	fetch 4,mem_24g_rxpayload+2
+	fetcht 4,mem_24g_receiver_addr
+	isub temp,null
+	nrtn zero
+g24_pair_sm_4_waiting_ack_skip:	
+	jam STATE_24G_PAIRING_SUCCESS,mem_24g_pair_sm
+	jam BT_EVT_24G_PAIRING_COMPLETE,mem_fifo_temp
+	call ui_ipc_send_event
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	fetch 4,mem_24g_rxpayload+2
+	call g24_update_addr_and_synccrc8
+g24_pair_exit:
+	fetch 1,mem_24g_conn_sm
+	set0 STATE_24G_PAIR,pdata
+	store 1,mem_24g_conn_sm
+	branch g24_transmit_abandon
+
+
+
+
+/****************************g24 pair transmitter end********************************/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/****************************g24 pair receiver start********************************/
+
+
+g24_bind_mode_enable:
+	jam DONGLE_BIND,mem_24g_work_mode
+	jam CLEAR_INIT,mem_24g_mode_init
+	rtn
+
+g24_bind_init:
+	fetch 1,mem_24g_mode_init
+	rtnbit1 DONGLE_BIND
+	set1 DONGLE_BIND,pdata
+	store 1,mem_24g_mode_init
+	setarg 0
+	store 3,mem_24g_device1_bind_step
+	store 1,mem_24g_device1_bind_disable
+	store 1,mem_24g_device2_bind_disable
+	store 4,mem_24g_transmitter_addr
+	jam 1,mem_24g_ackpayload_enable
+	branch g24_pair_init_param
+
+
+g24_bind_ackpayload_prep:
+	jam 1,mem_24g_ackpayload_enable
+	jam 0x08,mem_24g_datalen
+	arg mem_24g_bind_payload,contr
+	arg mem_24g_txbuf,contw
+	branch memcpy8
+
+
+g24_bind_data_process:
+	bpatchx patch30_1,mem_patch30
+	call g24_rx_interrupt_clear
+	call g24_receive_packet
+	nbranch g24_rx_interrupt_clear,user3
+	call g24_bind_data_parse
+	call g24_transmit_ack
+	call g24_bind_device_status_check
+	call dongle_kb_bind_soft_reset
+	fetch 1,mem_24g_pair_switch
+	rtn blank
+	fetch 4,mem_24g_transmitter_addr
+	rtn blank
+	branch g24_update_addr_and_synccrc8
+
+g24_bind_data_error:
+	call g24_rx_interrupt_clear
+	branch g24_end_of_packet
+
+g24_bind_data_parse:
+	jam BIND_MODE_CONTINUE,mem_24g_bind_mode_continue	//about 400ms
+	arg mem_24g_rxbuf,contr
+	arg mem_24g_rxdata_temp,contw
+	call memcpy8
+	bpatchx patch30_2,mem_patch30
+	fetch 1,mem_24g_rxdata_temp+2
+	beq DATATYPE_BIND,g24_bind_first_step	//bind step 1
+	beq DATATYPE_CONFIG,g24_bind_second_step
+	beq DATATYPE_OK,g24_bind_third_step
+	beq DATATYPE_ATTEMP,g24_data_attemp
+	rtn
+
+
+g24_bind_first_step:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_DEVICE1,g24_bind_first_step_device1
+	beq DATATYPE_DEVICE2,g24_bind_first_step_device2
+	rtn
+
+g24_bind_first_step_device1:
+	fetch 1,mem_24g_device1_bind_disable
+	nrtn blank
+	jam 1,mem_24g_device1_bind_step
+g24_bind_dvc1_payload_cfg:
+	jam DATATYPE_DEVICE1,mem_24g_bind_payload
+g24_bind_payload_cfg:
+	jam 0x80,mem_24g_bind_payload+1
+	fetch 6,mem_24g_lap
+	store 6,mem_24g_bind_payload+2
+	rtn
+
+g24_bind_first_step_device2:
+	fetch 1,mem_24g_device2_bind_disable
+	nrtn blank
+	jam 1,mem_24g_device2_bind_step
+g24_bind_dvc2_payload_cfg:
+	jam DATATYPE_DEVICE2,mem_24g_bind_payload
+	branch g24_bind_payload_cfg
+
+
+g24_bind_second_step:
+	fetch 1,mem_24g_pair_switch
+	branch g24_bind_second_step_skip,blank
+	fetch 4,mem_24g_rxdata_temp+4
+	fetcht 4,mem_24g_lap
+	isub temp,null
+	nrtn zero
+g24_bind_second_step_skip:	
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_DEVICE1,g24_bind_second_step_device1
+	beq DATATYPE_DEVICE2,g24_bind_second_step_device2
+	rtn
+
+g24_bind_second_step_device1:
+	fetch 1,mem_24g_device1_bind_disable
+	nrtn blank
+	fetch 1,mem_24g_device1_bind_step
+	beq 1,g24_bind_dvc1_step_set2
+	rtn
+g24_bind_dvc1_step_set2:
+	jam 2,mem_24g_device1_bind_step
+	fetch 1,mem_24g_pair_switch
+	branch g24_bind_dvc1_payload_cfg,blank
+g24_bind_dvc1_payload_cfg_transmitter_addr:
+	jam DATATYPE_DEVICE1,mem_24g_bind_payload
+g24_bind_payload_cfg_transmitter_addr:
+	jam 0x80,mem_24g_bind_payload+1
+	fetch 4,mem_24g_transmitter_addr
+	store 4,mem_24g_bind_payload+2
+	branch enable_user
+
+g24_bind_second_step_device2:
+	fetch 1,mem_24g_device2_bind_disable
+	nrtn blank
+	fetch 1,mem_24g_device2_bind_step
+	beq 1,g24_bind_dvc2_step_set2
+	rtn
+g24_bind_dvc2_step_set2:
+	jam 2,mem_24g_device2_bind_step
+	fetch 1,mem_24g_pair_switch
+	branch g24_bind_dvc2_payload_cfg,blank	
+	jam DATATYPE_DEVICE2,mem_24g_bind_payload
+	branch g24_bind_payload_cfg_transmitter_addr
+
+
+g24_bind_third_step:
+	fetch 1,mem_24g_pair_switch
+	branch g24_bind_third_step_skip,blank
+	fetch 4,mem_24g_rxdata_temp+4
+	fetcht 4,mem_24g_transmitter_addr
+	isub temp,null
+	nrtn zero
+g24_bind_third_step_skip:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_DEVICE1,g24_bind_third_step_device1
+	beq DATATYPE_DEVICE2,g24_bind_third_step_device2
+	rtn
+
+g24_bind_third_step_device1:
+	fetch 1,mem_24g_device1_bind_disable
+	nrtn blank
+	fetch 1,mem_24g_device1_bind_step
+	beq 2,g24_bind_dvc1_step_success
+	rtn
+g24_bind_dvc1_step_success:
+	jam 1,mem_24g_device1_bind_disable
+	//call g24_binding_dvc1_living	//works on auto pair only
+	call g24_bind_dvc1_payload_cfg
+	fetch 1,mem_24g_bind_device_status
+	or_into 0x01,pdata
+	store 1,mem_24g_bind_device_status
+g24_bind_exit:
+	setarg 0
+	store 2,mem_24g_device1_bind_step
+	rtn
+	
+g24_bind_third_step_device2:
+	fetch 1,mem_24g_device2_bind_disable
+	nrtn blank
+	fetch 1,mem_24g_device2_bind_step
+	bne 0,g24_bind_dvc2_step_success
+	rtn
+g24_bind_dvc2_step_success:
+	jam 1,mem_24g_device2_bind_disable
+	//call g24_binding_dvc2_living	//works on auto pair only
+	call g24_bind_dvc2_payload_cfg
+	fetch 1,mem_24g_bind_device_status
+	or_into 0x02,pdata
+	store 1,mem_24g_bind_device_status
+	call g24_bind_exit
+	branch dongle_g24_store_dvc2_bind_flag
+
+g24_binding_device_check:	//works on auto pair
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_BIND
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_24g_rxbuf+3
+	beq DATATYPE_DEVICE1,g24_binding_dvc1_status	//bit0
+	beq DATATYPE_DEVICE2,g24_binding_dvc2_status	//bit1
+	rtn
+g24_binding_dvc1_status:
+	fetch 1,mem_24g_bind_device_living
+	rtnbit0 0
+disable_user3:
+	disable user3
+	rtn 
+g24_binding_dvc2_status:
+	fetch 1,mem_24g_bind_device_living
+	rtnbit0 1
+	branch disable_user3
+
+g24_binding_dvc1_living:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_24g_bind_device_living
+	or_into 0x01,pdata
+	store 1,mem_24g_bind_device_living
+	rtn
+
+g24_binding_dvc2_living:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_24g_bind_device_living
+	or_into 0x02,pdata
+	store 1,mem_24g_bind_device_living
+	rtn
+
+
+g24_bind_device_status_check:
+	fetch 1,mem_24g_bind_device_status
+	rtn blank
+g24_bind_device_status:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_DEVICE1,g24_binding_dvc1_living
+	beq DATATYPE_DEVICE2,g24_binding_dvc2_living
+	rtn
+
+
+
+/****************************g24 pair receiver end********************************/
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: program/g24_protocol_stack/24g_receiver.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_receiver.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_receiver.prog	(working copy)
@@ -0,0 +1,571 @@
+
+g24_receive_init:
+	set1 mark_24g_rxmode,mark
+	fetch 1,mem_tx_power
+	store 1,mem_tx_power_temp
+	branch rssi_receiver_buff_init
+
+g24_receive_dispatch:
+	fetch 2,mem_cb_24g_receive_process
+	branch callback_func
+
+g24_ackpayload_prep:
+	bpatchx patch30_3,mem_patch30
+	jam 0,mem_24g_datalen
+	fetch 1,mem_24g_ackpayload_enable
+	rtn blank
+	fetch 2,mem_cb_24g_ackpayload
+	branch callback_func
+
+
+g24_receive_packet_start:
+	call g24_receive_transmit_ack
+	nbranch g24_rx_interrupt_clear,user3
+g24_receive_packet_parse:
+	call g24_receive_packet_parse_pid_crc
+	nbranch g24_rx_interrupt_clear,user
+	fetch 1,mem_24g_rxdata_length
+	branch g24_rx_interrupt_clear,blank
+	increase 2,pdata
+	iforce loopcnt
+	arg mem_24g_rxbuf,contr
+	arg mem_24g_rxdata_temp,contw
+	call memcpy
+	jam 0,mem_24g_mode_switch
+	fetch 1,mem_24g_pair_mode
+	call g24_enable_nodata_timer,blank
+	bpatchx patch30_4,mem_patch30
+	fetch 1,mem_24g_rxdata_temp+2
+	beq DATATYPE_DEVICE1,g24_data_device1	//mouse
+	beq DATATYPE_DEVICE2,g24_data_device2	//keyboard
+	beq DATATYPE_ATTEMP,g24_data_receive_attemp	//reconn packet
+g24_rx_interrupt_clear:
+	bpatchx patch30_5,mem_patch30
+	arg mem_24g_rxbuf,contw
+	arg 66,loopcnt
+	branch clear_mem
+
+g24_data_receive_attemp:
+	call g24_bind_device_status		//works on auto pair only
+	branch g24_data_attemp
+
+g24_data_device1:
+	call g24_binding_dvc1_living	//works on auto pair only
+	call g24_ch_timer_reinit
+	fetch 1,mem_24g_abort_packet
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	setflag true,0,pdata
+	store 1,mem_24g_abort_packet
+	beq 1,g24_data_attemp_device1_abort
+	fetch 1,mem_24g_hop_packet
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_hop,temp
+	setflag true,0,pdata
+	store 1,mem_24g_hop_packet
+	fetch 2,mem_cb_24g_data_device1
+	branch callback_func
+
+g24_data_device2:
+	call g24_binding_dvc2_living	//works on auto pair only
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	branch g24_data_attemp_device2_abort,true
+	fetch 2,mem_cb_24g_data_device2
+	branch callback_func
+
+g24_data_attemp_device1_abort:
+	fetch 1,mem_device_option
+	sub pdata,DVC_OP_CAR,null
+	call car_stop_blink,zero
+	fetch 1,mem_24g_device1_bind_disable
+	nrtn blank
+	jam 1,mem_24g_device1_bind_disable
+	fetch 4,mem_24g_rxdata_temp+10
+	branch g24_store_device1_addr
+g24_data_attemp_device2_abort:
+	fetch 4,mem_24g_rxdata_temp+10
+	branch g24_store_device2_addr	
+
+
+g24_receive_packet_parse_pid_crc:
+	call disable_user
+	fetch 1,mem_24g_sta_pid
+	fetcht 1,mem_24g_last_pid
+	isub temp,null
+	ncall enable_user,zero
+	fetch 1,mem_24g_sta_pid
+	store 1,mem_24g_last_pid
+	fetch 3,mem_24g_sta_crc
+	fetcht 3,mem_24g_last_crc
+	isub temp,null
+	ncall enable_user,zero
+	fetch 3,mem_24g_sta_crc
+	store 3,mem_24g_last_crc
+	rtn
+
+g24_receive_transmit_ack:
+	call g24_rx_interrupt_clear
+	call g24_receive_packet
+	nrtn user3
+g24_transmit_ack:
+//data type
+	fetch 1,mem_24g_rxbuf
+	store 1,mem_24g_data_type
+//read len pid crc
+	call g24_read_len_pid_crc
+//read ack
+	fetch 1,mem_24g_rxbuf+1
+	isolate1 bit_ack_24g,pdata
+	branch g24tx_no_ack,true
+g24tx_with_ack:
+	call g24_ackpayload_prep
+	call g24_transmit_prep
+	call g24_transmit
+g24tx_no_ack:
+	branch g24_end_of_packet
+
+
+g24_enable_nodata_timer:
+	jam 1,mem_24g_nodata_timer_enable
+g24_enable_nodata_timer_init:
+	setarg TIMER_NODATA_DELAY
+	arg G24_TIMER_NODATA,queue
+	branch timer_init
+
+
+
+/****************************g24 receiver mode switch start********************************/
+
+g24_mode_switch_init:
+	bpatchx patch30_6,mem_patch30
+	jam 1,mem_24g_mode_switch
+	jam 0,mem_24g_time_slice
+	jam 0xff,mem_24g_interval
+	branch g24_timer_init
+	
+g24_mode_switch_bind_work:
+	bpatchx patch30_7,mem_patch30
+	fetch 1,mem_24g_mode_switch
+	rtn blank
+	call g24_timer_check
+	nrtn user	//80ms
+	call g24_bind_mode_continue
+	fetch 1,mem_24g_time_slice
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_24g_time_slice
+	beq 0,g24_work_mode_switch
+	beq 1,g24_bind_mode_switch
+	rtn
+
+g24_bind_mode_continue:
+	fetch 1,mem_24g_bind_mode_continue
+	rtn blank
+	increase -1,pdata
+	store 1,mem_24g_bind_mode_continue
+	rtn
+
+g24_work_mode_switch:
+	fetch 1,mem_24g_bind_mode_continue
+	nrtn blank
+	branch g24_switch_work_mode
+
+g24_bind_mode_switch:
+	fetch 1,mem_24g_bind_mode_continue
+	nrtn blank
+	branch g24_bind_mode_enable
+
+
+g24_mode_B_S_switch_init:	//bind and search
+	fetch 1,mem_24g_B_S_mode_switch_disable
+	nrtn blank
+	fetch 1,mem_24g_mode_B_S_switch_exit
+	call g24_mode_B_S_switch_start,blank
+	fetch 1,mem_24g_mode_B_S_switch_init
+	rtnbit1 0
+	set1 0,pdata
+	store 1,mem_24g_mode_B_S_switch_init
+	jam 1,mem_24g_mode_B_S_switch
+	jam 0,mem_24g_B_S_time_slice
+	setarg 0
+	store 2,mem_24g_mode_B_S_switch_cnt
+	jam 0x60,mem_24g_interval	//30ms
+	branch g24_timer_init
+
+g24_mode_switch_bind_search:
+	bpatchx patch31_0,mem_patch31
+	fetch 1,mem_24g_work_mode
+	rtneq DONGLE_WORK
+	fetch 1,mem_24g_B_S_mode_switch_disable
+	nrtn blank
+	fetch 1,mem_24g_mode_B_S_switch_exit
+	nrtn blank
+	fetch 1,mem_24g_mode_B_S_switch
+	rtn blank
+	fetch 1,mem_24g_bind_device_living
+	compare 3,pdata,3
+	branch g24_mode_B_S_switch_exit,true
+	call g24_timer_check
+	nrtn user
+	fetch 2,mem_24g_mode_B_S_switch_cnt
+	increase 1,pdata
+	store 2,mem_24g_mode_B_S_switch_cnt
+	arg 0x7d0,temp	//1min
+	isub temp,null
+	branch g24_mode_B_S_switch_exit,positive
+	fetch 1,mem_24g_B_S_time_slice
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_24g_B_S_time_slice
+	beq 0,g24_search_mode_enable
+	beq 1,g24_bind_mode_enable
+	rtn
+
+g24_mode_switch_search:
+	fetch 1,mem_24g_bind_mode_continue
+	nbranch g24_bind_mode_enable,blank
+	branch g24_search_mode_enable
+
+g24_mode_B_S_switch_exit:
+	jam 1,mem_24g_mode_B_S_switch_exit
+	branch g24_search_mode_enable
+
+g24_mode_B_S_switch_stop:
+	jam 0,mem_24g_mode_B_S_switch
+	rtn
+g24_mode_B_S_switch_start:
+	jam 1,mem_24g_mode_B_S_switch
+	rtn
+
+
+
+/****************************g24 receiver mode switch end********************************/
+
+
+
+
+/****************************g24 receiver work mode start********************************/
+
+g24_work_init:
+	bpatchx patch31_1,mem_patch31
+	fetch 1,mem_24g_mode_init
+	rtnbit1 DONGLE_WORK
+	set1 DONGLE_WORK,pdata
+	store 1,mem_24g_mode_init
+	fetch 1,mem_tx_power_temp
+	store 1,mem_tx_power
+	jam 0,mem_24g_ackpayload_enable
+	jam 0,mem_usb_tx_enable
+	jam 1,mem_24g_abort_packet
+	jam 0,mem_24g_pid
+	fetch 4,mem_24g_lap
+	call g24_update_addr_and_synccrc8
+	call g24_ch
+	branch g24_rx_interrupt_clear
+
+
+g24_switch_work_mode:
+	jam 0,mem_24g_ackpayload_enable
+g24_work_mode_enable:
+	jam DONGLE_WORK,mem_24g_work_mode
+	jam CLEAR_INIT,mem_24g_mode_init	
+	rtn
+
+
+g24_work_mode_start:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_WORK
+	call g24_work_init
+	call g24_ch_process
+	branch g24_receive_packet_start
+
+
+
+/****************************g24 receiver work mode end********************************/
+
+
+
+
+
+
+/****************************g24 receiver bind mode start********************************/
+
+g24_bind_mode_auto:
+	bpatchx patch31_2,mem_patch31
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_BIND
+	call g24_bind_init
+	call g24_bind_data_process
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_24g_bind_device_status
+	rtn blank
+	jam 0,mem_24g_mode_switch
+	call g24_switch_work_mode
+	call g24_enable_nodata_timer
+	branch g24_timer_init
+
+
+/****************************g24 receiver bind mode end********************************/
+
+
+
+
+
+
+/****************************g24 receiver search mode start********************************/
+
+g24_search_mode_init:
+	fetch 1,mem_24g_mode_init
+	rtnbit1 DONGLE_SEARCH
+	set1 DONGLE_SEARCH,pdata
+	store 1,mem_24g_mode_init
+	fetch 1,mem_tx_power_temp	//reinit tx power when "search-pair-switch"  is enable
+	store 1,mem_tx_power
+
+	jam 0,mem_24g_time_slice
+	jam 1,mem_24g_ackpayload_enable
+	setarg 0
+	store 3,mem_rssi_noise_self_index
+	store 7,mem_24g_self_config_ch_once
+	call g24_receiver_addr_check
+	nrtn zero
+	fetch 1,mem_24g_current_ch_number
+	store 1,mem_24g_self_ch_number
+	fetch 1,mem_24g_ch
+	store 1,mem_24g_self_last_ch
+	rtn
+
+
+g24_search_mode_auto:
+	bpatchx patch31_3,mem_patch31
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_SEARCH
+	call g24_search_mode_init
+	call g24_auto_addr_ch_search
+	call g24_receive_transmit_ack
+	nbranch g24_rx_interrupt_clear,user3
+	//dongle addr,then parse rxdata
+	call g24_receiver_addr_check
+	call g24_receive_packet_parse,zero
+
+	fetch 1,mem_24g_abort_packet
+	call g24_mode_B_S_switch_stop,blank	//works on auto pair only
+	
+	//receive data,then go to paired
+	jam DONGLE_WORK,mem_24g_work_mode
+	fetch 1,mem_24g_mode_init
+	set1 DONGLE_WORK,pdata
+	store 1,mem_24g_mode_init
+
+	fetch 1,mem_24g_ackpayload_enable
+	sub pdata,2,null
+	ncall g24_ackpayload_disable,zero
+
+	call g24_rx_interrupt_clear
+	call g24_enable_nodata_timer
+	call g24_receiver_addr_check
+	branch g24_self_ch_num_reinit,zero
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_device2_addr
+	isub temp,null
+	branch g24_device2_ch_num_reinit,zero		
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_device1_addr
+	isub temp,null
+	branch g24_device1_ch_num_reinit,zero
+	rtn
+
+
+g24_self_ch_num_reinit:
+	fetch 1,mem_24g_self_ch_number
+g24_current_ch_num_reinit:
+	store 1,mem_24g_current_ch_number
+	rtn
+
+g24_device2_ch_num_reinit:
+	fetch 1,mem_24g_device2_ch_number
+	branch g24_current_ch_num_reinit
+
+g24_device1_ch_num_reinit:
+	fetch 1,mem_24g_device1_ch_number
+	branch g24_current_ch_num_reinit
+
+
+g24_auto_addr_ch_search:
+	bpatchx patch31_4,mem_patch31
+	fetch 1,mem_24g_time_slice
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_24g_time_slice
+	//pairing address and channel come first
+	beq 0,g24_auto_bind_config_device2
+	beq 1,g24_auto_bind_config_self
+	beq 2,g24_auto_bind_config_device1
+	beq 3,g24_auto_bind_config_self
+	rtn
+
+g24_auto_bind_config_device1:
+	call g24_bind_dvc1_payload_cfg
+	fetch 4,mem_24g_device1_addr
+	branch g24_auto_addr_ch_search,blank
+	call g24_update_addr_and_synccrc8
+	fetch 1,mem_24g_device1_config_ch_once
+	call g24_device1_config_ch_once,blank
+	fetch 1,mem_24g_device1_last_ch
+	store 1,mem_24g_ch
+	fetcht 1,mem_rssi_noise_device1_index
+	fetchr rega,2,mem_rssi_noise_device1_buffer_ptr
+	call rssi_store
+	storet 1,mem_rssi_noise_device1_index
+	call rssi_average
+	storet 1,mem_rssi_noise_device1_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_device1_ch_number
+	call g24_ch_map_size
+	storet 1,mem_24g_device1_ch_number
+	store 1,mem_24g_device1_last_ch
+	rtn
+
+g24_device1_config_ch_once:
+	jam 1,mem_24g_device1_config_ch_once
+	arg 0,temp
+	call g24_ch_calc
+	store 1,mem_24g_device1_last_ch
+	rtn
+	
+g24_auto_bind_config_device2:
+	call g24_bind_dvc2_payload_cfg
+	fetch 4,mem_24g_device2_addr
+	branch g24_auto_addr_ch_search,blank
+	call g24_update_addr_and_synccrc8
+	fetch 1,mem_24g_device2_config_ch_once
+	call g24_device2_config_ch_once,blank
+	fetch 1,mem_24g_device2_last_ch
+	store 1,mem_24g_ch
+	fetcht 1,mem_rssi_noise_device2_index
+	fetchr rega,2,mem_rssi_noise_device2_buffer_ptr
+	call rssi_store
+	storet 1,mem_rssi_noise_device2_index
+	call rssi_average
+	storet 1,mem_rssi_noise_device2_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_device2_ch_number
+	call g24_ch_map_size
+	storet 1,mem_24g_device2_ch_number
+	store 1,mem_24g_device2_last_ch
+	rtn
+
+g24_device2_config_ch_once:
+	jam 1,mem_24g_device2_config_ch_once
+	arg 0,temp
+	call g24_ch_calc
+	store 1,mem_24g_device2_last_ch
+	rtn	
+
+g24_auto_bind_config_self:
+	call g24_bind_dvc1_payload_cfg
+	fetch 4,mem_24g_lap
+	call g24_update_addr_and_synccrc8
+	fetch 1,mem_24g_self_config_ch_once
+	call g24_self_config_ch_once,blank
+	fetch 1,mem_24g_self_last_ch
+	store 1,mem_24g_ch
+	fetcht 1,mem_rssi_noise_self_index
+	fetchr rega,2,mem_rssi_noise_self_buffer_ptr
+	call rssi_store
+	storet 1,mem_rssi_noise_self_index
+	call rssi_average
+	storet 1,mem_rssi_noise_self_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_self_ch_number
+	call g24_ch_map_size
+	storet 1,mem_24g_self_ch_number
+	store 1,mem_24g_self_last_ch
+	rtn
+
+g24_self_config_ch_once:
+	jam 1,mem_24g_self_config_ch_once
+	fetch 1,mem_24g_self_last_ch
+	store 1,mem_24g_ch
+	rtn
+
+
+g24_ackpayload_disable:
+	jam 0,mem_24g_ackpayload_enable
+	rtn
+
+
+g24_receiver_addr_check:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_lap
+	isub temp,null
+	rtn
+
+/****************************g24 receiver search mode end********************************/
+
+
+
+
+
+
+/****************************g24 receiver nodata process start********************************/
+
+
+g24_nodata_process:
+	fetch 1,mem_24g_ackpayload_enable
+	rtneq 2
+	fetch 1,mem_24g_nodata_timer_enable
+	rtn blank
+	arg G24_TIMER_NODATA,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_24g_nodata_timer_enable
+	jam 0,mem_24g_bind_mode_continue
+	call g24_mode_B_S_switch_init	//works on auto pair only	
+	//no data for more than 100ms,then go to search
+g24_search_mode_enable:	
+	bpatchx patch31_5,mem_patch31
+	jam DONGLE_SEARCH,mem_24g_work_mode
+	jam CLEAR_INIT,mem_24g_mode_init
+	branch g24_rx_interrupt_clear
+
+
+/****************************g24 receiver nodata process end********************************/
+
+
+g24_ch_process:
+	bpatchx patch31_6,mem_patch31
+	fetch 1,mem_24g_abort_packet
+	beq 1,rssi_noise_monitor
+	fetch 1,mem_24g_hop_packet
+	beq 1,g24_ch_receive_hop_pac
+	fetcht 4,mem_24g_hop_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_24g_hop_btclk
+	fetcht 1,mem_24g_hop_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_24g_hop_btclk
+	jam 1,mem_24g_abort_packet
+	branch g24_ch
+
+g24_ch_receive_hop_pac:
+	jam 0,mem_24g_hop_packet
+	branch g24_ch
+
+g24_ch_timer_reinit:
+	copy clkn_bt,pdata
+	store 4,mem_24g_hop_btclk
+	rtn
+
Index: program/g24_protocol_stack/24g_reconn.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_reconn.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_reconn.prog	(working copy)
@@ -0,0 +1,176 @@
+
+/****************************g24 reconn transmitter start********************************/
+
+g24_reconn_timeout_timer:
+	arg mem_24g_reconn_timeout,regc
+	arg g24_stop_24g_mode,regb
+	branch timer_single_step_2B
+
+
+g24_reconn_start:
+	bpatchx patch31_7,mem_patch31
+	set1 mark_24g,mark
+	fetch 1,mem_24g_conn_sm
+	set0 STATE_24G_PAIR,pdata
+	set1 STATE_24G_RECONN,pdata
+	store 1,mem_24g_conn_sm
+	fetch 1,mem_24g_fast_conn_enable
+	branch g24_reconn_receiver_addr,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_RECEIVER,g24_reconn_fast_conn
+	beq FAST_CONN_AND_3_0_ADDR,g24_reconn_fast_conn
+	beq RECEIVER_AND_3_0_ADDR,g24_reconn_device_3_0_addr
+	beq PAIR_AND_3_0_ADDR,g24_reconn_device_3_0_addr
+g24_reconn_fast_conn:
+	fetch 1,mem_24g_pair_tx_power
+	store 1,mem_tx_power
+	fetcht 1,mem_24g_fast_conn_temp_ch
+	storet 1,mem_24g_current_ch_number
+	fetch 4,mem_24g_fast_conn_addr
+	call g24_ch_syncword_crc8_init
+	storet 1,mem_24g_fast_conn_temp_ch
+	rtn
+	 
+g24_reconn_receiver_addr:
+	jam TX_POWER_3DB,mem_tx_power
+	fetcht 1,mem_24g_receiver_temp_ch
+	storet 1,mem_24g_current_ch_number
+	fetch 4,mem_24g_receiver_addr
+	call g24_ch_syncword_crc8_init
+	storet 1,mem_24g_receiver_temp_ch
+	rtn
+
+g24_reconn_device_3_0_addr:
+	jam TX_POWER_3DB,mem_tx_power
+	fetcht 1,mem_24g_device_temp_ch
+	storet 1,mem_24g_current_ch_number
+	fetch 4,mem_24g_device_addr
+	call g24_ch_syncword_crc8_init
+	storet 1,mem_24g_device_temp_ch
+	rtn	
+
+g24_store_receiver_addr:
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	store 4,mem_24g_receiver_addr	
+g24_ch_syncword_crc8_init:	
+	call g24_update_addr_and_synccrc8
+	branch g24_ch
+
+
+g24_reconn_dispatch:
+	bpatchx patch32_0,mem_patch32
+	fetch 2,mem_24g_reconn_count
+	arg 0x01f8,temp
+	iand temp,pdata
+	branch g24_reconn_dispatch_next,blank
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+
+g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch g24_reconn_device_fail,sync
+	nbranch g24_reconn_device_fail,user3
+	call g24_ackpayload_parse
+	fetch 4,mem_24g_pair_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch g24_pair_start,zero
+	fetch 4,mem_24g_device_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	call g24_store_receiver_addr,zero
+	fetch 1,mem_24g_conn_sm
+	set0 STATE_24G_RECONN,pdata
+	store 1,mem_24g_conn_sm
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_count
+	store 2,mem_24g_reconn_timeout
+	jam BT_EVT_24G_ATTEMPT_SUCCESS,mem_fifo_temp
+	call ui_ipc_send_event
+g24_txbuf_clear:
+	bpatchx patch32_1,mem_patch32
+	arg 32,loopcnt
+	arg mem_24g_txbuf,contw
+	branch memset0
+
+g24_reconn_data_prep:
+	jam DATATYPE_ATTEMP,mem_24g_txbuf
+	fetch 1,mem_24g_data_type
+	store 1,mem_24g_txbuf+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_txbuf+2
+	jam 6,mem_24g_datalen
+	branch g24_transmit_prep
+
+g24_reconn_device_fail:
+	bpatchx patch32_2,mem_patch32
+	fetch 1,mem_24g_fast_conn_enable
+	branch g24_ch,blank
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	isolate1 9,pdata
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_RECEIVER,g24_reconn_fast_conn_and_receiver
+	beq FAST_CONN_AND_3_0_ADDR,g24_reconn_fast_conn_and_3_0
+	beq RECEIVER_AND_3_0_ADDR,g24_reconn_receiver_and_3_0
+	beq PAIR_AND_3_0_ADDR,g24_reconn_pair_and_3_0
+	branch g24_reconn_receiver_addr
+
+
+g24_reconn_fast_conn_and_receiver:
+	branch g24_reconn_receiver_addr,true
+	branch g24_reconn_fast_conn
+
+g24_reconn_fast_conn_and_3_0:
+	branch g24_reconn_device_3_0_addr,true
+	branch g24_reconn_fast_conn
+	
+g24_reconn_receiver_and_3_0:
+	branch g24_reconn_device_3_0_addr,true
+	branch g24_reconn_receiver_addr
+
+g24_reconn_pair_and_3_0:
+	branch g24_reconn_device_3_0_addr,true
+	branch g24_pair_init_param
+
+/****************************g24 reconn transmitter end********************************/
+
+
+
+
+
+/****************************g24 reconn receiver start********************************/
+
+g24_data_attemp:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_DEVICE1,g24_data_attemp_device1
+	beq DATATYPE_DEVICE2,g24_data_attemp_device2
+	rtn
+g24_data_attemp_device1:
+	fetch 1,mem_24g_device1_bind_disable
+	nrtn blank
+	fetch 4,mem_24g_rxdata_temp+4
+	store 4,mem_24g_transmitter_addr
+g24_store_device1_addr:
+	store 4,mem_24g_device1_addr
+	rtn
+g24_data_attemp_device2:
+	fetch 1,mem_24g_device2_bind_disable
+	nrtn blank
+	fetch 4,mem_24g_rxdata_temp+4
+	store 4,mem_24g_transmitter_addr	
+g24_store_device2_addr:
+	store 4,mem_24g_device2_addr
+	rtn
+
+/****************************g24 reconn receiver end********************************/
+
+
+
+
Index: program/g24_protocol_stack/24g_rssi.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_rssi.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_rssi.prog	(working copy)
@@ -0,0 +1,112 @@
+
+/****************************g24 rssi general start********************************/
+
+rssi_store:
+	bpatchx patch32_3,mem_patch32
+	copy rega,pdata
+	iadd temp,contw
+	fetch 1,mem_rssi
+	istore 1,contw
+	increase 1,temp
+	fetch 1,mem_rssi_buff_index	//buff len minus 1
+	iand temp,temp
+	rtn
+	
+rssi_average:
+	bpatchx patch32_4,mem_patch32
+	fetch 1,mem_rssi_buff_index
+	increase 1,pdata
+	store 2,mem_loopcnt
+	copy pdata,loopcnt
+	copy rega,contr
+	arg 0,pdata
+rssi_average_loop:
+	ifetcht 1,contr
+	iadd temp,pdata
+	loop rssi_average_loop
+	fetcht 2,mem_loopcnt
+	idiv temp
+	call wait_div_end
+	quotient temp
+	rtnmark1 mark_24g_rxmode
+	copy temp,pdata
+	rtnmark0 mark_24g
+	call bcd
+	copy pdata,temp
+	rtn
+
+save_rssi_dec:
+	branch save_rssi
+//	branch rssi_hex2dec
+
+/****************************g24 rssi general end********************************/
+
+
+
+
+
+/****************************g24 transmitter rssi start********************************/
+rssi_transmitter_buff_init:
+	fetch 2,mem_rssi_signal_buf_ptr
+	branch rssi_buff_clear
+
+rssi_signal:
+	copy pdata,rega
+	fetcht 1,mem_rssi_signal_index
+	fetch 2,mem_rssi_signal_buf_ptr
+	iadd temp,contw
+	copy rega,pdata
+	istore 1,contw
+	increase 1,temp
+	fetch 1,mem_rssi_buff_index	//buff len minus 1
+	iand temp,temp
+	storet 1,mem_rssi_signal_index
+	rtn
+
+/****************************g24 transmitter rssi end********************************/
+
+
+
+
+
+/****************************g24 receiver rssi start********************************/
+
+rssi_receiver_buff_init:
+	fetch 2,mem_rssi_noise_buffer_ptr
+	call rssi_buff_clear
+	fetch 2,mem_rssi_noise_self_buffer_ptr
+	call rssi_buff_clear
+	fetch 2,mem_rssi_noise_device1_buffer_ptr
+	call rssi_buff_clear
+	fetch 2,mem_rssi_noise_device2_buffer_ptr
+rssi_buff_clear:
+	rtn blank
+	copy pdata,contw
+	fetch 1,mem_rssi_buff_index
+	increase 1,pdata
+	copy pdata,loopcnt
+	branch clear_mem
+
+
+rssi_noise:
+	call save_rssi_dec
+	rtn blank
+	fetcht 1,mem_rssi_noise_index
+	fetchr rega,2,mem_rssi_noise_buffer_ptr
+	call rssi_store
+	storet 1,mem_rssi_noise_index
+	rtn
+
+
+rssi_noise_monitor:
+	fetchr rega,2,mem_rssi_noise_buffer_ptr
+	call rssi_average
+	storet 1,mem_rssi_noise_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	branch g24_ch
+
+
+/****************************g24 receiver rssi end********************************/
+
+	
Index: program/g24_protocol_stack/24g_transmitter.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_transmitter.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_transmitter.prog	(working copy)
@@ -0,0 +1,398 @@
+
+
+g24_transmit_init:
+	fetch 4,mem_24g_lap		//need to roll this address
+	store 4,mem_24g_device_addr
+	branch rssi_transmitter_buff_init
+
+g24_interval_param_4ms:
+	setarg G24_4MS_INTERVAL_PARAM
+	store 3,mem_24g_short_sleep_set
+	setarg 0x100c0c
+	store 3,mem_24g_interval
+	setarg 0x00bb80
+	store 3,mem_24g_long_sleep_set
+	jam 5,mem_24g_fast_hop_count
+	rtn
+
+g24_interval_param_8ms:
+	setarg G24_8MS_INTERVAL_PARAM
+	store 3,mem_24g_short_sleep_set
+	setarg 0x1c1919
+	store 3,mem_24g_interval
+	setarg 0x017700
+	store 3,mem_24g_long_sleep_set
+	jam 11,mem_24g_fast_hop_count
+	rtn
+
+
+g24_transmit_dispatch:
+	rtnmark0 mark_24g
+	fetch 1,mem_24g_conn_sm
+	bbit1 STATE_24G_PAIR,g24_pair_dispatch
+	bbit1 STATE_24G_RECONN,g24_reconn_dispatch
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,g24_transmit_by_interrupt
+g24_transmit_no_interrupt:
+	bpatchx patch32_5,mem_patch32
+	call g24_txdata_prep
+	nbranch g24_nodata_transmit,user
+g24_transmit_start:
+	call g24_transmit_process
+	call power_ctrl_start
+	fetch 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_24g_transmit_start
+g24_transmit_start_next:	
+	fetch 8,mem_24g_long_sleep_set
+	store 8,mem_24g_enter_hibernate
+	fetch 2,mem_24g_long_sleep_param_update_timer_init
+	store 2,mem_24g_long_sleep_param_update_timer
+	fetch 2,mem_cb_24g_transmit_short_sleep
+	branch callback_func
+
+g24_short_sleep:
+	bpatchx patch32_6,mem_patch32
+	call g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	call clear_wake
+	fetch 3,mem_24g_short_sleep_set
+	branch g24_long_seep2
+
+g24_long_sleep:
+	bpatchx patch32_7,mem_patch32
+	call g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	fetch 8,mem_24g_enter_hibernate
+g24_long_seep2:
+	call clk2lpo
+	storet 4,mem_sleep_counter
+	branch lpm_sleep
+	
+/****************************g24 transmitter data prep start********************************/
+
+g24_txdata_prep:
+	call g24_package_data
+	nrtn user
+	branch g24_transmit_prep
+
+
+g24_package_data:
+	fetch 2,mem_cb_24g_transmit_data
+	call callback_func
+	branch g24_accumulate_data,user
+	fetch 7,mem_24g_txbuf+1	//mouse data
+	rtn blank
+	branch enable_user	// retransmit
+	
+g24_accumulate_data:
+	jam 0,mem_24g_abort_pac
+	add rega,1,pdata
+	store 1,mem_24g_datalen
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_24g_txbuf
+	copy regb,contr
+	copy rega,loopcnt
+	branch memcpy
+
+g24_transmit_rf_ctrl_clear:	
+	fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_24g_data_type
+	rtn
+
+/****************************g24 transmitter data prep end********************************/
+
+
+
+
+/****************************g24 transmitter data transmit start********************************/
+
+g24_transmit_process:
+	setarg 0
+	store 1,mem_24g_retry
+	store 2,mem_24g_retransmit
+g24_transmit_loop:
+	call g24_transmit_receive_ack
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,g24_transmit_no_ack
+	nbranch g24_retransmit,sync
+	nbranch g24_retransmit,user3
+	call g24_ackpayload_parse
+	fetch 1,mem_device_option
+	sub pdata,DVC_OP_MOUSE,null
+	call mouse_24g_transmit_callback,zero
+g24_transmit_no_ack:
+	call power_ctrl_pac_succ_incrs
+g24_transmit_next_packet:
+	call g24_txbuf_clear
+	fetch 1,mem_24g_pid
+	increase 1,pdata
+	store 1,mem_24g_pid
+	call g24_hop_enable_packet
+g24_transmit_abandon:
+	bpatchx patch33_0,mem_patch33
+	setarg 0
+	store 1,mem_24g_ensure
+	store 2,mem_24g_txfail_cnt
+	rtn
+
+g24_transmit_receive_ack:
+	bpatchx patch33_1,mem_patch33
+	disable user3
+	call g24_transmit
+	fetch 1,mem_24g_no_ack
+	beq no_ack_24g,g24_end_of_packet
+	force 0,radio_ctrl
+	fetch 4,mem_24g_addr
+	iforce access
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	call g24_receive_rxon
+	call g24_end_of_packet,user3
+	rtn
+
+g24_retransmit:
+	bpatchx patch33_2,mem_patch33
+	fetch 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_g24_retransmit
+g24_retransmit0:	
+	fetch 1,mem_24g_abort_pac
+	nrtn blank
+	fetch 2,mem_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_24g_txfail_cnt	
+	fetch 1,mem_24g_txfail_cnt+1
+	bbit1 4,g24_tx_attempt_fail
+	call g24_transmit_hop_process
+	fetch 2,mem_24g_retransmit
+	increase 1,pdata
+	store 2,mem_24g_retransmit	
+	branch g24_transmit_loop
+
+g24_ackpayload_parse:
+	bpatchx patch33_3,mem_patch33
+	call g24_read_len_pid_crc
+	fetch 1,mem_24g_rxdata_length	//ack payload length 
+	rtn blank
+	iforce loopcnt
+	arg mem_24g_rxbuf+2,contr
+	arg mem_24g_rxpayload,contw	//ack payload buffer 
+	branch memcpy
+
+
+g24_tx_attempt_fail:
+	bpatchx patch33_4,mem_patch33
+	setarg 0
+	store 2,mem_24g_txfail_cnt
+	jam 1,mem_24g_attempt_fail_flag
+g24_stop_24g_mode:	
+	jam BT_EVT_24G_ATTEMPT_FAIL,mem_fifo_temp
+	branch ui_ipc_send_event
+
+/****************************g24 transmitter data transmit end********************************/
+
+
+
+
+
+/****************************g24 transmitter hop start********************************/
+
+g24_transmit_hop_process:
+	bpatchx patch33_5,mem_patch33
+	fetcht 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count			// 125Hz=11  250Hz=5
+	isub temp,null
+	nbranch g24_tx_fast_hop,positive		// >= (6+6)or(3+3) hop fast    fail packet count >= 2
+	increase 1,temp
+	storet 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count
+	beq 5,g24_transmit_hop_process_4ms
+	fetch 1,mem_24g_retry
+	beq 6,g24_hop_ch_disable
+	beq 12,g24_hop_ch_disable
+	rtn	
+
+
+g24_transmit_hop_process_4ms:
+	fetch 1,mem_24g_retry
+	beq 3,g24_hop_ch_disable
+	beq 6,g24_hop_ch_disable
+	rtn	
+
+
+
+g24_hop_ch_enable:
+	//fetch 1,mem_24g_data_type
+	//set1 bit_hop,pdata
+	//store 1,mem_24g_data_type
+	//update txpayload
+g24_txpayload_type_update:	
+	bmark1 mark_ble_lr,g24_lr_type_update
+	store 1,mem_24g_txpayload+OFFSET_DATA_TYPE
+	rtn
+g24_lr_type_update:
+	store 1,mem_24g_txpayload+OFFSET_LR_DATA_TYPE
+	rtn
+
+g24_hop_enable_packet:
+	fetch 1,mem_24g_data_type
+	rtnbit0 bit_hop
+g24_hop_ch_disable:
+	fetch 1,mem_24g_data_type
+	set0 bit_hop,pdata
+	store 1,mem_24g_data_type
+	call g24_txpayload_type_update
+	call power_ctrl_pac_succ_decrs
+	branch g24_ch
+
+g24_tx_fast_hop:
+	call power_ctrl_txpower_incrs
+	call power_ctrl_pac_succ_decrs
+	branch g24_ch
+	
+/****************************g24 transmitter hop end********************************/
+
+
+
+
+
+
+
+
+
+
+
+
+
+/****************************g24 transmitter long lpm prep start********************************/
+
+g24_search_receiver:
+	fetch 2,mem_cb_24g_search_receiver
+	branch callback_func
+
+g24_nodata_transmit:
+	fetch 1,mem_24g_abort_pac
+	call g24_send_abort_packet,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	rtneq G24_TX_TIMER_INT_ENABLE
+	call g24_search_receiver
+	fetch 2,mem_cb_24g_transmit_long_sleep
+	branch callback_func
+
+g24_send_abort_packet:
+	jam TYPE_MS,mem_24g_data_type
+	jam 1,mem_24g_abort_pac
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_24g_txbuf
+	setarg 0
+	store 7,mem_24g_txbuf+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_txbuf+8
+	jam 12,mem_24g_datalen
+	fetch 1,mem_24g_data_type
+	set1 bit_abort,pdata
+	store 1,mem_24g_data_type
+	call g24_transmit_prep
+	branch g24_transmit_start
+	
+
+
+g24_lpm_wait:
+	bpatchx patch33_6,mem_patch33
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	fetch 1,mem_lpm_mode
+	branch disable_user,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,disable_user
+	rtn
+
+g24_setgpio_lpm_before:
+	fetch 2,mem_cb_24g_lpm_before
+	branch callback_func
+
+
+/****************************g24 transmitter long lpm prep end********************************/
+
+
+
+
+
+
+
+/****************************g24 transmit by interrupt start********************************/
+
+g24_transmit_by_interrupt:
+	call g24_timer_check
+	nrtn user
+	call g24_interval_calibrate
+	fetch 2,mem_24g_transmit_by_interrupt_exit_count
+	increase 1,pdata
+	store 2,mem_24g_transmit_by_interrupt_exit_count
+	fetcht 2,mem_24g_transmit_by_interrupt_exit_count_init
+	isub temp,null
+	call g24_transmit_by_interrupt_exit,zero
+	branch g24_transmit_no_interrupt
+
+	
+g24_transmit_by_interrupt_exit:
+	jam G24_TX_TIMER_INT_DISABLE,mem_24g_transmit_by_interrupt
+	setarg 0
+	store 2,mem_24g_transmit_by_interrupt_exit_count
+	setarg 100
+	store 2,mem_24g_transmit_by_interrupt_exit_count_init
+g24_interval_min:
+	jam 0,mem_24g_pac_index
+	fetch 1,mem_24g_interval_min
+g24_interval_store:
+	store 1,mem_24g_interval
+	rtn
+g24_interval_max:
+	fetch 1,mem_24g_interval_max
+	branch g24_interval_store
+	
+g24_interval_calibrate:
+	fetch 1,mem_24g_pac_index
+	increase 1,pdata
+	store 1,mem_24g_pac_index
+	beq 4,g24_interval_max
+	beq 5,g24_interval_min
+	rtn
+
+g24_transmit_by_interrupt_enable:
+	jam G24_TX_TIMER_INT_ENABLE,mem_24g_transmit_by_interrupt
+	setarg 0
+	store 2,mem_24g_transmit_by_interrupt_exit_count
+	rtn
+
+
+/****************************g24 transmit by interrupt end********************************/
+
+
+
+
+/****************************g24 transmitter fac check start********************************/
+
+g24_factory_check:
+	arg 2,loopcnt
+	arg mem_24g_addr,contr
+pdata_0xff_check:
+	call enable_user
+	setarg 0xffff
+pdata_0xff_check_loop:
+	ifetcht 2,contr
+	isub temp,null
+	ncall disable_user,zero
+	loop pdata_0xff_check_loop
+	rtn
+
+/****************************g24 transmitter fac check end********************************/
+
+
+
+	
Index: program/g24_protocol_stack/24g_txpower_ctrl.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_txpower_ctrl.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/g24_protocol_stack/24g_txpower_ctrl.prog	(working copy)
@@ -0,0 +1,97 @@
+
+/****************************g24 transmitter tx power start********************************/
+
+power_ctrl_start:
+	bpatchx patch33_7,mem_patch33
+	fetch 1,mem_power_ctrl_disable
+	nrtn blank
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+//	rtnbit1 UI_STATE_BT_RECONNECT
+//	rtnbit1 UI_STATE_BT_DISCOVERY
+	fetchr rega,2,mem_rssi_signal_buf_ptr
+	call rssi_average
+	storet 1,mem_rssi_avg_received
+	fetch 1,mem_rssi_dis_max_24g
+	bmark1 mark_24g,power_ctrl_start_next
+	fetch 1,mem_rssi_dis_max_ble
+power_ctrl_start_next:
+	isub temp,null
+	nbranch power_ctrl_txpower_incrs_force,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	sub pdata,2,null
+	nbranch power_ctrl_txpower_decrs_check,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	beq 0,power_ctrl_txpower_incrs
+	rtn
+
+power_ctrl_txpower_decrs_check:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	fetcht 1,mem_power_ctrl_pac_succ_cnt_init
+	isub temp,null
+	nrtn zero
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_decrs:
+	fetcht 1,mem_rssi_avg_received
+	fetch 1,mem_rssi_dis_min_24g
+	bmark1 mark_24g,power_ctrl_txpower_decrs_next
+	fetch 1,mem_rssi_dis_min_ble
+power_ctrl_txpower_decrs_next:	
+	isub temp,null
+	nrtn positive
+	fetch 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+	increase -1,pdata
+	store 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+power_ctrl_decrs_level1:
+power_ctrl_incrs_level1:	//0dBm
+	jam TX_POWER_0DB,mem_tx_power
+	rtn
+
+power_ctrl_txpower_incrs_force:
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_incrs:
+	fetch 1,mem_power_ctrl_level
+	beq 2,power_ctrl_incrs_level2
+	increase 1,pdata
+	store 1,mem_power_ctrl_level
+	beq 1,power_ctrl_incrs_level1
+power_ctrl_incrs_level2:	//+6dBm
+	jam TX_POWER_6DB,mem_tx_power
+	rtn
+	
+power_ctrl_decrs_level0: //-5dBm
+	jam TX_POWER_f5DB,mem_tx_power
+	rtn
+
+power_ctrl_pac_succ_cnt_init:
+	jam 1,mem_power_ctrl_level
+	jam 0,mem_power_ctrl_pac_succ_cnt
+	rtn
+
+power_ctrl_pac_succ_incrs:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	increase 1,pdata
+	store 1,mem_power_ctrl_pac_succ_cnt
+	rtn
+
+power_ctrl_pac_succ_decrs:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	sub pdata,2,null
+	ncall power_ctrl_pac_succ_cnt_reinit,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	rtneq 0
+	increase -1,pdata
+	store 1,mem_power_ctrl_pac_succ_cnt
+	rtn
+
+power_ctrl_pac_succ_cnt_reinit:
+	jam 3,mem_power_ctrl_pac_succ_cnt
+	rtn
+
+/****************************g24 transmitter tx power end********************************/
+
+
+
+
Index: program/hci_main.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/hci_main.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/hci_main.prog	(working copy)
@@ -0,0 +1,302 @@
+/*********************************/
+/**********   HCI  *****************/
+/*********************************/
+
+hci_init:
+	clear_stack		//清空堆栈
+	call wdt_set_disable
+	call hci_init_clksel_xtal
+	call hci_init_uart_default_config
+	call hci_init_uart_config
+	call hci_init_pwm_default_config
+	call hci_init_pwm
+
+	jam 1,mem_hci_command_complete_num_hci_command_packet
+	jam HCI_H4_TYPE_EVENT,mem_hci_event_head_type
+
+hci_process_loop:
+	call hci_process_check_uart_rx
+	branch hci_process_loop
+	
+hci_init_clksel_xtal:
+	jam clksel_xtal,core_clksel
+	rtn
+
+hci_init_uart_default_config:
+	call hci_init_uart_default_config_tx
+	call hci_init_uart_default_config_rx
+	call hci_init_uart_default_config_rts
+	branch hci_init_uart_default_config_cts
+
+hci_init_uart_default_config_tx:
+	fetch 1,mem_hci_uart_tx_gpio
+	nrtn blank
+	jam HCI_UART_TX_GPIO_NUM,mem_hci_uart_tx_gpio
+	rtn	
+
+hci_init_uart_default_config_rx:
+	fetch 1,mem_hci_uart_rx_gpio
+	nrtn blank
+	jam HCI_UART_RX_GPIO_NUM,mem_hci_uart_rx_gpio
+	rtn	
+hci_init_uart_default_config_rts:
+	fetch 1,mem_hci_uart_rts_gpio
+	nrtn blank
+	jam HCI_UART_RTS_GPIO_NUM,mem_hci_uart_rts_gpio
+	rtn	
+hci_init_uart_default_config_cts:
+	fetch 1,mem_hci_uart_cts_gpio
+	nrtn blank
+	jam HCI_UART_CTS_GPIO_NUM,mem_hci_uart_cts_gpio
+	rtn	
+
+
+hci_init_uart_config:
+	setarg mem_h5rx_buf
+	store 2,mem_pdatatemp
+	setarg mem_h5rx_buf_end
+	istore 2,contw
+	setarg mem_h5tx_buf
+	istore 2,contw
+	setarg mem_h5tx_buf_end
+	istore 2,contw	
+	fetch 8,mem_pdatatemp
+	call uarta_init_dma_mem
+	call uart_clock_select_main_freq_crystal
+	arg 115200,temp
+	call uarta_calc_baud_rate_config
+	fetch 1,mem_hci_uart_tx_gpio
+	arg gpcfg_uart_txd,temp
+	call gpio_config_function_int
+	fetch 1,mem_hci_uart_rx_gpio
+	arg gpcfg_uart_rxd|gpcfg_pullup,temp
+	call gpio_config_function_int
+	fetch 1,mem_hci_uart_rts_gpio
+	arg gpcfg_uart_rts,temp
+	call gpio_config_function_int
+	fetch 1,mem_hci_uart_cts_gpio
+	arg gpcfg_uart_cts,temp
+	call gpio_config_function_int
+
+	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
+	storet 1,core_uart_ctrl
+	branch clean_xmem
+
+hci_init_pwm_default_config:
+	fetch 1,mem_hci_pwm_12mhz_gpio
+	nrtn blank
+	jam HCI_PMW_12MHZ_GPIO_NUM,mem_hci_pwm_12mhz_gpio
+	rtn	
+
+hci_init_pwm:
+	fetch 1,mem_hci_pwm_12mhz_gpio
+	arg gpcfg_pwm_out0,temp
+	call gpio_config_function_int
+	arg 0x40,rega
+	call pwm_init
+	arg 0,rega
+	arg 0,regb
+	setarg 0
+	call pwm_duty_cycle_set
+	arg 0,queue
+	branch pwm_set_select
+
+
+hci_process_check_uart_rx:
+	fetch 2,core_uart_rxitems
+	add pdata,-4,rega
+	nrtn positive
+	call uarta_prepare_rx
+	ifetch 1,contru
+	beq HCI_H4_TYPE_CMD,hci_parse_packet_cmd
+//	beq HCI_H4_TYPE_ACL,hci_parse_packet_acl
+	call delay_10ms
+	branch uarta_clear_current_rx
+
+//hci_parse_packet_acl:
+//	rtn
+hci_parse_packet_cmd:
+	ifetch 2,contru	// Opcode
+	store 2,mem_hci_opcode
+	arg 0x3ff,temp
+	iand temp,temp	//low 10bit
+	storet 2,mem_hci_opcode_ocf
+	rshift2 pdata,pdata
+	rshift8 pdata,pdata	//high 6bit
+	store 1,mem_hci_opcode_ogf
+	ifetch 1,contru	// parameter total length
+	pincrease -1		//大于等于
+	isub rega,null
+	rtn positive
+	call hci_parse_complete_packet
+	branch hci_drop_current_packet
+
+hci_parse_complete_packet:
+	fetch 1,mem_hci_opcode_ogf
+//	beq HCI_OGF_LINK_CONTROL,hci_parse_packet_cmd_ogf_link_control
+//	beq HCI_OGF_LINK_POLICY,hci_parse_packet_cmd_ogf_link_policy
+//	beq HCI_OGF_CONTROLLER_AND_BASEBAND,hci_parse_packet_cmd_ogf_controller_and_baseband
+//	beq HCI_OGF_INFOMATIONAL_PARAM,hci_parse_packet_cmd_ogf_infomational_parameters
+//	beq HCI_OGF_STATUS_PARAM,hci_parse_packet_cmd_ogf_status_parameters
+//	beq HCI_OGF_TEST,hci_parse_packet_cmd_ogf_testing
+//	beq HCI_OGF_LE_CONTROLLER,hci_parse_packet_cmd_ogf_le_controller
+	beq HCI_OGF_VENDOR_SPECIFIC_DEBUG,hci_parse_packet_cmd_ogf_vendorspecific_debug
+	branch hci_send_event_command_complete_error_command_nuknown
+
+//hci_parse_packet_cmd_ogf_link_control:
+//hci_parse_packet_cmd_ogf_link_policy:
+//hci_parse_packet_cmd_ogf_controller_and_baseband:
+//hci_parse_packet_cmd_ogf_infomational_parameters:
+//hci_parse_packet_cmd_ogf_status_parameters:
+//hci_parse_packet_cmd_ogf_testing:
+//hci_parse_packet_cmd_ogf_le_controller:
+
+hci_parse_packet_cmd_ogf_vendorspecific_debug:
+	bpatch patch16_4,mem_patch16
+	fetch 1,mem_hci_opcode_ocf
+	beq HCI_VENDOR_CMD_RESET,hci_normal_reply
+	beq HCI_VENDOR_CMD_CHIPID,phci_grp_vendor_chipid
+	beq HCI_VENDOR_CMD_BAUD,phci_grp_vendor_baud
+	beq HCI_VENDOR_CMD_PATCH,phci_grp_vendor_patch
+	beq HCI_VENDOR_CMD_PATCH_DONE,phci_grp_vendor_done
+	beq HCI_VENDOR_CMD_ECHO,hci_normal_reply
+	beq HCI_VENDOR_CMD_MEM,phci_grp_vendor_mem
+	beq HCI_VENDOR_CMD_SET_FLOW_CONTROL,phci_grp_vendor_flow_control
+	branch hci_normal_reply
+
+	
+phci_grp_vendor_chipid:
+	jam COMMAND_SUCCEEDED,mem_hci_command_complete_return_parameter
+	fetch 2,core_chipid
+	store 2,mem_hci_command_complete_return_parameter_chip_id
+	arg 3,loopcnt
+	branch hci_send_event_command_complete
+	
+phci_grp_vendor_baud:
+	ifetch 2,contu
+	store 2,core_uart_baud
+	rtn
+
+
+phci_grp_vendor_patch_common:
+	ifetch 1,contu
+	copy pdata,temp //check sum via temp
+	store 1,core_ucode_low
+	ifetch 1,contu
+	iadd temp,temp
+	set1 7,pdata
+	store 1,core_ucode_ctrl
+	ifetch 1,contu
+	iadd temp,temp
+	copy pdata,loopcnt
+	rtn
+	
+phci_grp_vendor_patch:
+	call phci_grp_vendor_patch_common
+phci_grp_vendor_patch_loop:
+	ifetch 1,contu
+	store 1,core_ucode_data
+	iadd temp,temp
+	loop phci_grp_vendor_patch_loop
+phci_grp_vendor_patch_check_sum:	
+	and temp,0xff,temp
+	ifetch 1,contu
+	isub temp,null
+	nbranch phci_grp_vendor_patch_bad,zero
+	branch hci_normal_reply
+
+phci_grp_vendor_done:
+	arg 0x20,loopcnt    //patch switch length
+	arg mem_patch00,contw
+	arg 0,temp //checksum
+phci_grp_vendor_done_loop:
+	ifetch 1,contu
+	istore 1,contw
+	iadd temp,temp
+	loop phci_grp_vendor_done_loop
+	and temp,0xff,temp
+	ifetch 1,contu
+	isub temp,null
+	nbranch phci_grp_vendor_patch_bad,zero
+	jam 0,core_ucode_ctrl
+	call hci_normal_reply
+	call wait_uarttx
+	branch soft_reset
+
+phci_grp_vendor_patch_bad:
+	jam 0,core_ucode_ctrl
+	branch hci_send_event_command_complete_error_command_nuknown
+	
+
+phci_grp_vendor_mem:
+	ifetch 1,contu
+	copy pdata,loopcnt
+	ifetch 2,contu
+	copy pdata,contw
+	call uart_copy_rx_bytes
+	branch hci_normal_reply
+
+phci_grp_vendor_flow_control:
+	fetch 1,core_uart_ctrl
+	set1 BIT_UART_CONTROL_FLOW_CONTROL,pdata
+	store 1,core_uart_ctrl
+	branch hci_normal_reply
+
+	
+hci_normal_reply:
+	branch hci_send_event_command_complete_without_payload
+
+hci_send_event_command_complete_error_command_nuknown:
+	jam COMMAND_UNKNOWN,mem_hci_command_complete_return_parameter
+	branch hci_send_event_command_complete_without_payload+1
+hci_send_event_command_complete_error_command_disallowed:
+	jam COMMAND_DISALLOWED,mem_hci_command_complete_return_parameter
+	branch hci_send_event_command_complete_without_payload+1
+hci_send_event_command_complete_without_payload:
+	jam COMMAND_SUCCEEDED,mem_hci_command_complete_return_parameter
+	arg 1,loopcnt
+	branch hci_send_event_command_complete
+
+/***************
+function:send command complete event to host
+input:
+mem_mesh_command_complete_num_hci_command_packet:
+Num Hci Command Packet Commonly used 1
+mem_mesh_hci_opcode:command opcode ,OCF & OGF
+loopcnt:return parameters data length
+mem_mesh_command_complete_return_parameter
+:return parameters data point
+***************/
+hci_send_event_command_complete:
+	jam HCI_EVENT_COMMAND_COMPLETE,mem_hci_event_head_event_code
+	add loopcnt,3,pdata
+	store 1,mem_hci_event_para_total_length
+	call hci_prepare_send_event
+	fetch 3,mem_hci_command_complete_num_hci_command_packet
+	istore 3,contwu
+//	copy rega,contr
+	arg mem_hci_command_complete_return_parameter,contr
+	call uart_copy_tx_bytes
+	branch uarta_send_register_pop
+
+//mem_mesh_event_head_event_code:event code
+//mem_mesh_event_para_total_length:parameter total length
+hci_prepare_send_event:
+	call uarta_prepare_tx_register_push
+	fetch 3,mem_hci_event_head_type
+	istore 3,contwu
+	rtn
+
+hci_drop_current_packet:
+	call uarta_prepare_rx
+	increase 3,contru
+	ifetch 1,contru
+	iadd contru,contru
+	branch uarta_rxdone
+
+cmd_exit:
+	jam 0,mem_hci_cmd
+	rtn
+
+
+
Index: program/l2cap.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/l2cap.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/l2cap.prog	(working copy)
@@ -0,0 +1,373 @@
+/************************************/
+/*initialize L2CAP related variables*/
+/************************************/
+l2cap_init:
+	branch l2cap_init_wake,wake
+	setarg mem_l2cap_xmem_end
+	arg mem_l2cap_xmem_start,contw
+	isub contw,loopcnt
+	call clear_mem
+l2cap_init_wake:	
+//	branch l2cap_lpm_load_txbuf
+	rtn
+	
+
+/*
+l2cap_check_map:
+//	call l2cap_malloc_is_fifo_full
+//	nrtn blank
+	bpatch patch16_5,mem_patch16
+	call l2cap_malloc_get_full_map
+	fetch 1,mem_used_map
+	beq 0,set_pdata_0
+	beq 1,set_pdata_0
+	beq 2,set_pdata_0
+	beq 3,set_pdata_0
+	beq 0x81,set_pdata_0
+	beq 0xc0,set_pdata_0
+	beq 0x80,set_pdata_0
+	beq 0x40,set_pdata_0
+	rtn
+*/
+
+check_l2cap_map:
+	arg 0,queue
+	arg 0,regb
+
+check_l2cap_map_loop:
+	sub queue,7,null
+	nrtn positive
+	qisolate1 rega
+	branch check_l2cap_map_used,true
+	branch check_l2cap_map_used2
+
+check_l2cap_map_used:
+	copy temp,pdata
+	branch check_l2cap_map_used2,blank
+	qset1 regb
+	increase -1,temp
+
+check_l2cap_map_used2:
+	increase 1,queue
+	branch check_l2cap_map_loop
+
+
+
+/*********************************************************/
+//char* malloc(short len)
+//input: rega -> len
+//rtn: regb -> pbuff;return from pdata
+//val: queue -> i
+//val: timeup -> buff_cnt
+/*********************************************************/
+
+
+ble_l2cap_malloc:
+	fetchr regd,2,mem_ble_l2cap_tx_buff0_ptr
+	fetchr rege,2,mem_ble_l2cap_tx_buff_size_ptr
+	call disable_user
+	branch host_l2cap_malloc
+
+/*
+	malloc l2cap buffer
+	input:
+	BT is enable user
+	BLE is disable user
+	rega is want malloc buffer size
+	regd is l2cap buffer start ptr
+	rege is l2cap buffer size
+	output:
+	pdata & contw is buffer ptr
+*/
+host_l2cap_malloc:
+	bpatch patch16_6,mem_patch16
+	call l2cap_malloc_is_fifo_full
+	nbranch assert,blank//assert when fifo full
+	call l2cap_malloc_get_full_map
+	arg 8,loopcnt
+host_l2cap_malloc_loop:
+	fetcht 1,mem_used_map
+	sub loopcnt,8,queue
+	qisolate1 temp
+	branch host_l2cap_malloc_next_buffer,true//if(1 == (used_map & (1 << i)))goto next;
+	call host_l2cap_malloc_check_buffer_enough
+	nbranch host_l2cap_malloc_next_buffer,positive//if(buff_cnt <= 0)goto next;
+	call host_l2cap_malloc_into_fifo
+	branch host_l2cap_malloc_succ//return (pbuff);
+host_l2cap_malloc_next_buffer:
+	copy rege,pdata
+	iadd regd,regd		//pbuff += BUFF_SIZE;//point to next buff
+	loop host_l2cap_malloc_loop
+	branch assert	//return NULL
+host_l2cap_malloc_succ:
+	copy regd,pdata
+	copy regd,contw
+	rtn//return pointer via pdata
+
+/*********************************************************/
+//char is_size_enough(char buff_index, short len)
+//input: rega -> len
+//input: loopcnt -> 8-buff_index
+//rtn: positive is diable mean no buffer
+//positive is enable mean get buffer
+/*********************************************************/
+host_l2cap_malloc_check_buffer_enough:
+	bpatch patch16_7,mem_patch16
+	sub loopcnt,8,queue
+	arg 0,temp
+	arg 0,timeup
+host_l2cap_malloc_check_buffer_enough_loop:
+	copy queue,pdata
+	beq 8,host_l2cap_malloc_check_buffer_enough_end
+	fetch 1,mem_used_map
+	qisolate1 pdata		//the buffer is used
+	branch host_l2cap_malloc_check_buffer_enough_end,true
+	qset1 timeup
+	copy rege,pdata
+	iadd temp,temp
+	increase 1,queue
+	copy rega,pdata
+	isub temp,null
+	branch host_l2cap_malloc_check_buffer_enough_end,zero//(max_size_fom_buff_index ==  len)
+	branch host_l2cap_malloc_check_buffer_enough_loop,positive//(max_size_fom_buff_index <  len)
+host_l2cap_malloc_check_buffer_enough_end:
+	copy temp,pdata
+	isub rega,null
+	nrtn zero
+	qset1 timeup
+	rtn
+
+/*********************************************************/
+//void buff_into_fifo(char buff_index, char buff_cnt, short len)
+//input: rega -> len
+//input: regc -> buff_index
+//input: timeup -> buff_cnt
+//val:temp ->   (fifo->map)
+/*********************************************************/
+host_l2cap_malloc_into_fifo:
+	bpatch patch17_0,mem_patch17
+	call l2cap_malloc_is_fifo_full
+	nbranch assert,blank //fifo full
+	call l2cap_malloc_is_fifo_empty
+	branch host_l2cap_malloc_into_fifo_no_push,blank//fifo empty, no need to push
+	fetch 9,mem_tx_fifo1
+	store 9,mem_tx_fifo0
+	setarg 0
+	istore 3,contw//mem_tx_fifo3
+host_l2cap_malloc_into_fifo_no_push:
+	storer timeup,1,mem_tx_fifo3_map
+	storer regd,2,mem_tx_fifo3_ptr
+	rtn
+
+
+/*********************************************************/
+//void* l2cap_malloc_fifo_out(void)
+//output:len -> temp
+//output:ptr ->pdata
+//only get ptr,not free
+/*********************************************************/
+l2cap_malloc_fifo_out:
+	bpatch patch17_1,mem_patch17
+	call l2cap_malloc_fifo_get_first_ptr
+	increase 1,contr
+	ifetch 2,contr //ptr ->pdata
+	rtn
+
+
+/*********************************************************/
+//void free_first_buff_in_fifo(void)
+//only free the first one
+/*********************************************************/
+l2cap_malloc_free:
+	bpatch patch17_2,mem_patch17
+	call l2cap_malloc_fifo_get_first_ptr
+	copy contr,contw
+	copy contr,temp
+	setarg 0
+	istore 3,contw
+	rtn
+
+
+/*********************************************************/
+//void l2cap_malloc_discard(void)
+//discard the latest malloc
+/*********************************************************/
+l2cap_malloc_discard:
+	bpatch patch17_3,mem_patch17
+	call l2cap_malloc_is_fifo_empty
+	branch assert,blank
+	fetch 3,mem_tx_fifo2
+	store 3,mem_tx_fifo3
+	fetch 3,mem_tx_fifo1
+	store 3,mem_tx_fifo2
+	fetch 3,mem_tx_fifo0
+	store 3,mem_tx_fifo1
+	rtn
+
+
+/*********************************************************/
+//bool fifo_is_full(void)
+//blank == 1: not full
+//blank == 0: full
+/*********************************************************/
+l2cap_malloc_is_fifo_full:
+	bpatch patch17_4,mem_patch17
+	fetch 3,mem_tx_fifo0
+	rtn
+
+
+/*********************************************************/
+//bool fifo_nearly_full(void)
+//blank == 1: nearly full
+//blank == 0: not nearly full
+/*********************************************************/
+l2cap_malloc_is_fifo_nearly_full:
+	bpatch patch17_5,mem_patch17
+	fetch 3,mem_tx_fifo1
+	rtn
+
+
+/*********************************************************/
+//bool fifo_is_empty(void)
+//blank == 1: empty
+//blank == 0: not empty
+/*********************************************************/
+l2cap_malloc_is_fifo_empty:
+	bpatch patch17_6,mem_patch17
+	fetch 3,mem_tx_fifo3
+	rtn
+
+
+/*********************************************************/
+//char* l2cap_malloc_fifo_get_first_ptr(void)
+//output:contr  -->ptr
+/*********************************************************/	
+l2cap_malloc_fifo_get_first_ptr:
+	call l2cap_malloc_is_fifo_empty
+	branch l2cap_malloc_fifo_get_first_ptr_empty,blank // fifo is empty
+	arg mem_tx_fifo0,contr
+l2cap_malloc_free_loop:
+	ifetch 3,contr
+	branch l2cap_malloc_free_loop,blank
+l2cap_malloc_fifo_get_first_ptr_empty:
+	increase -3,contr
+	rtn
+
+
+/*********************************************************/
+//char* l2cap_malloc_get_full_map(void)
+//output:mem_used_map  -->full_map
+//add all maps into one
+/*********************************************************/	
+l2cap_malloc_get_full_map:
+	bpatch patch17_7,mem_patch17
+	arg 4,loopcnt
+	arg mem_tx_fifo0_map,contr
+	arg 0,temp
+l2cap_malloc_get_full_map_loop:	
+	ifetch 3,contr
+	and pdata,0xff,pdata
+	ior temp,temp
+	loop l2cap_malloc_get_full_map_loop
+	storet 1,mem_used_map
+	rtn
+
+
+l2cap_lpm_get_wake_lock:
+	arg wake_lock_l2cap_tx,queue
+	branch lpm_get_wake_lock
+
+l2cap_lpm_put_wake_lock:
+	arg wake_lock_l2cap_tx,queue
+	branch lpm_put_wake_lock
+
+	
+/*
+
+
+l2cap_lpm_save_calc_len:
+	bpatch patch18_0,mem_patch18
+	arg 0,regb
+	arg mem_tx_fifo0_map,rega
+	increase -2,rega
+l2cap_lpm_save_calc_len_loop:
+	increase 2,rega
+	setarg mem_tx_fifo_end
+	isub rega,null
+	branch l2cap_lpm_save_calc_len_end,zero //end of 2lcap tx fifo
+	ifetch 1,rega
+	increase 1,rega
+	branch l2cap_lpm_save_calc_len_loop,blank
+	ifetcht 2,rega
+	ifetch 2,temp
+	iadd regb,regb
+	increase 4,regb //l2cap header len
+	branch l2cap_lpm_save_calc_len_loop
+l2cap_lpm_save_calc_len_end:
+	copy regb,pdata
+	rtn
+	
+l2cap_lpm_save_txbuf:
+	call l2cap_malloc_get_full_map
+	fetch 1,mem_used_map
+	rtn blank
+	call l2cap_lpm_save_calc_len
+	arg l2cap_lpm_txbuf_len,temp
+	isub temp,null
+	branch l2cap_lpm_get_wake_lock,positive //no enougth space to save l2cap tx data
+	call l2cap_lpm_put_wake_lock
+//	arg mem_l2cap_lpm_txbuf,contw
+	fetch 2,mem_l2cap_lpm_txbuf_ptr
+	copy contr,contw
+	arg mem_tx_fifo0,rega
+l2cap_lpm_save_txbuf_loop:
+	setarg mem_tx_fifo_end
+	isub rega,null
+	rtn zero //end of 2lcap tx fifo
+	ifetch 1,rega  //mem_tx_fifoX_map
+	increase 1,rega
+	nbranch l2cap_lpm_save_txbuf_nempty,blank
+	istore 2,contw // length = 0
+	increase 2,rega
+	branch l2cap_lpm_save_txbuf_loop
+l2cap_lpm_save_txbuf_nempty:
+	ifetch 2,rega //ptr
+	increase 2,rega
+	copy pdata,contr
+	ifetch 2,contr  //l2cap len
+	istore 2,contw
+	copy pdata,loopcnt
+	increase 2,loopcnt //add CID len
+	call memcpy
+	branch l2cap_lpm_save_txbuf_loop
+
+l2cap_lpm_load_txbuf:
+	call l2cap_malloc_get_full_map
+	fetch 1,mem_used_map
+	rtn blank
+	arg mem_tx_fifo0_ptr,rega
+	increase -3,rega //mem_tx_fifo0_ptr -3
+//	arg mem_l2cap_lpm_txbuf,contr
+	copy contr,contw
+	fetch 2,mem_l2cap_lpm_txbuf_ptr
+	copy contw,contr
+l2cap_lpm_load_txbuf_loop:
+	increase 3,rega //mem_tx_fifoX_ptr
+	setarg mem_tx_fifo_end+1
+	isub rega,null
+	rtn zero //end of 2lcap tx fifo
+	ifetch 2,contr
+	branch l2cap_lpm_load_txbuf_loop,blank
+	increase 4,pdata //l2cap header len
+	copy pdata,loopcnt
+	copy contr,regb
+	ifetch 2,rega //ptr
+	copy pdata,contw
+	copy regb,contr
+	increase -2,contr
+	call memcpy
+	branch l2cap_lpm_load_txbuf_loop
+	
+*/
+
+	
Index: program/mesh_protocol_stack/mesh_access_layer.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_access_layer.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_access_layer.prog	(working copy)
@@ -0,0 +1,188 @@
+
+/*
+	mesh鍗忚涓璦ccess layer
+	涓昏鏄礋璐esh涓璦ccess layer鏁版嵁鐨勮В鏋
+*/
+/*
+	access layer瑙ｆ瀽鎸囦护闆
+*/
+
+//input:alarm is upper transport access ptr
+ali_mesh_access_layer_resolve_message:
+	fetch 1,mem_ccm_data_len
+	store 1,mem_mesh_receive_model_message_payload_len
+	copy alarm,contr
+	call memcpy24
+ifdef mesh_debug_log
+	call logging_tx_info_receive_access_message
+endif
+	fetch 2,mem_mesh_cb_receive_access_message
+	branch callback_func
+
+ali_mesh_access_layer_check_access_message_opcode:
+	jam MESH_RECEIVE_NEW_MESSAGE_TIMER,mem_mesh_upper_receive_new_message_timer
+	call ali_mesh_app_recv_new_mesh_pkt
+
+	
+	fetch 1,mem_mesh_receive_model_message_payload_opcode
+	beq MESH_MESSAGE_OPCODE_CONFIG_APPKEY_ADD,ali_mesh_access_layer_message_opcode_config_AppKey_Add
+	beq MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER,ali_mesh_access_layer_config_or_health_message_opcode
+	beq MESH_MODULE_MESSAGE_OPCODE_HEADER,ali_mesh_model_layer_check_model_message_opcode
+	beq VENDOR_MESSAGE_ATTR_SET,ali_mesh_ali_vendor_message_attribute_set
+	beq VENDOR_MESSAGE_ATTR_GET,ali_mesh_ali_vendor_message_opcode_attr_get
+	beq VENDOR_MESSAGE_ATTR_SET_UNACKNOWLEDGED,ali_mesh_ali_vendor_message_attribute_set
+	beq VENDOR_MESSAGE_ATTR_CONFIRMATION,ali_mesh_ali_vendor_message_opcode_attr_confrimation
+	rtn
+
+/*
+	鎺ユ敹鍒癱onfig AppKey Add鎸囦护
+*/
+
+ali_mesh_access_layer_message_opcode_config_AppKey_Add:
+	arg mem_mesh_receive_application_key,contr
+	arg mem_mesh_application_key,contw
+	call memcpy16
+	jam PAIRED_STATUS,mem_mesh_provisioned_flag
+	call ali_mesh_encrypt_base_function_k3
+	call ali_mesh_encrypt_base_function_k4
+	call ali_mesh_access_layer_finish_pairing_init_subscription_list
+	call ali_mesh_accesss_layer_check_message_type
+	call ali_mesh_access_layer_send_config_AppKey_status
+	jam PAIRED_STATUS,mem_mesh_provisioned_flag
+	fetch 2,mem_mesh_cb_receive_config_appkey_add
+	branch callback_func
+
+ali_mesh_access_layer_recv_cfg_appkey_add_cb:
+	setarg 0
+	store 2,mem_mesh_fast_pairing_timer	//clear prov timer
+//	jam APPKEY_ADD_TIMEOUT, mem_mesh_recv_cfg_appkey_add_timer
+	random pdata
+	and pdata,0x1f,pdata
+	add pdata,30,pdata
+	store 1,mem_mesh_report_full_attribute_timer
+	add pdata,5,pdata
+	store 1,mem_mesh_report_power_on_timer
+	call mesh_clear_timer_data	
+	branch mesh_receive_config_appkey_add_cb
+
+ali_mesh_accesss_layer_check_message_type:
+	fetch 1,mem_mesh_network_packet_type
+	jam RECEIVED_CONFIG_APPKEY_ADD,mem_mesh_provisioned_flag		//涓棿鐘舵 APP閰嶇綉鏃讹紝闇瑕佸洖澶嶆暟閲忓
+	rtneq MESH_MESSAGE_APP
+	jam PAIRED_STATUS,mem_mesh_provisioned_flag					//tmall閰嶇綉涓嶉渶瑕侀噸浼犲娆
+	rtn
+
+ali_mesh_access_layer_send_config_AppKey_status:
+	setarg MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MESSAGE_OPCODE_CONFIG_CONFIG_MODEL_PUBLICATION_SET
+	istore 1,contw
+	setarg STATUS_CODE_SUCCESS
+	istore 1,contw
+	fetch 3,mem_mesh_NETKeyindex_and_APPKeyindex
+	istore 3,contw
+	jam 6,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+ali_mesh_access_layer_finish_pairing_init_subscription_list:
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_SUBSCRIPTION
+	call mesh_get_element_info_config
+ali_mesh_access_layer_finish_pairing_init_subscription_list_loop:
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,regc
+	setarg -1
+	istore SUBSCRIPTION_MAX_COUNT,regc
+	istore SUBSCRIPTION_MAX_COUNT,contw
+	ifetch 2,rega		//read group address
+	istore 2,regc
+	copy regb,pdata
+	iadd rega,rega
+	loop ali_mesh_access_layer_finish_pairing_init_subscription_list_loop
+	fetch 2,mem_mesh_cb_subscriptuion_list_changed
+	branch callback_func
+
+
+/*
+	generic onoff status
+*/
+ali_mesh_access_layer_send_generic_onoff_status:
+	setarg MESH_MODULE_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_STATUS_NO_HEAD
+	istore 1,contw
+	fetch 1,mem_mesh_generic_onoff_set_payload_OnOff
+	istore 1,contw
+	jam 3,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+/*
+	light lightness status
+*/
+ali_mesh_access_layer_send_light_lightness_status:
+	setarg MESH_MODULE_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_STATUS_NO_HEAD
+	istore 1,contw
+	fetch 2,mem_mesh_light_lightness_set_payload_lightness
+	istore 2,contw
+	jam 4,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+ali_mesh_access_layer_send_light_ctl_stauts:
+	setarg MESH_MODULE_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_STATUS_NO_HEAD
+	istore 1,contw
+	fetch 4,mem_mesh_CTL_Lightness
+	istore 4,contw
+	jam 6,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+
+ali_mesh_access_layer_send_scene_status:
+	setarg MESH_MODULE_MESSAGE_OPCODE_SCENE_STATUS
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_SUCCESS
+	istore 1,contw
+	fetch 2,mem_mesh_scene_recall_payload_scene_number
+	istore 2,contw
+	jam 4,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+ifdef mesh_debug_log
+logging_tx_info_receive_access_message:
+	fetchr loopcnt,1,mem_ccm_data_len
+	copy alarm,rega
+	arg MESH_ACCESS_RECEIVE_MESSAGE,regb
+	branch logging_tx_info
+endif
+
+ali_mesh_app_recv_new_mesh_pkt:
+
+	fetch 1, mem_mesh_report_full_attribute_timer
+	rtn blank
+	pincrease 30
+	store 1,mem_mesh_report_full_attribute_timer
+	rtn
+
+ali_mesh_report_power_on_timer:
+	arg mem_mesh_report_power_on_timer,regc
+	arg ali_mesh_ali_vendor_message_opcode_device_power_on, regb
+	branch timer_single_step
+
+ali_mesh_report_full_attribute_timer:
+	arg mem_mesh_report_full_attribute_timer,regc
+	arg ali_mesh_app_report_device_state, regb
+	branch timer_single_step
+
+ali_mesh_app_report_device_state:
+	fetch 2,mem_mesh_app_deport_device_state
+	branch callback_func
+
+
+	
Index: program/mesh_protocol_stack/mesh_ali_vendor_message.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_ali_vendor_message.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_ali_vendor_message.prog	(working copy)
@@ -0,0 +1,642 @@
+
+/*
+	mesh鍗忚涓璦li vendor message resolve
+	涓昏鏄樋閲岃嚜瀹氫箟attribute set 鎸囦护璁剧疆
+*/
+
+/*
+	涓昏鏄樋閲屽畾鏃惰缃ā鍧楁寚浠よВ鏋
+	鍏朵粬闈炴爣鐨勬寚浠よ缃
+*/
+
+ali_mesh_ali_vendor_message_attribute_set:
+	call ali_mesh_ali_vendor_message_attrbute_check_company_id_and_tid
+	nrtn user
+	bpatchx patch34_0,mem_patch34
+	fetch 2,mem_mesh_vendor_message_attr_type
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIME,temp
+	isub temp,null	//璁剧疆璁惧鐨勬椂闂
+	branch ali_mesh_ali_vendor_message_opcode_timer_set_curr_time,zero
+
+	arg VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_REPEAT,temp
+	isub temp,null		//寰幆瀹氭椂鏃堕棿
+	branch ali_mesh_ali_vendor_message_opcode_timer_set_timing_cyclically,zero
+	
+	arg VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_SINGLE,temp
+	isub temp,null	//鍊掕鏃舵椂闂
+	branch ali_mesh_ali_vendor_message_opcode_timer_set_timing,zero
+
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIMER_DELEATE,temp
+	isub temp,null
+	branch ali_mesh_ali_vendor_message_opcode_delete_timer,zero
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIMER_INQUIRE,temp
+	isub temp,null
+	branch ali_mesh_ali_vendor_message_opcode_timer_inquire,zero
+	arg VENDOR_MSEEAGE_ATTR_TYPE_TIMER_ENABLE,temp
+	isub temp,null
+	branch ali_mesh_ali_vendor_message_opcode_timer_set_state,zero
+
+
+	arg VENDOR_MESSAGE_ATTR_TYPE_MAIN_LIGHT,temp
+	isub temp,null	
+	branch ali_mesh_ali_vendor_message_attribute_set_main_light,zero
+	arg VENDOR_MESSAGE_ATTR_TYPE_BACKGROUND_LIGHT,temp
+	isub temp,null	
+	branch ali_mesh_ali_vendor_message_attribute_set_background_light,zero
+	arg VENDOR_MESSAGE_ATTR_TYPE_COLOR,temp
+	isub temp,null	
+	branch ali_mesh_ali_vendor_message_attribute_set_color,zero
+	fetch 2,mem_mesh_cb_recv_vendor
+	branch callback_func
+
+ali_mesh_ali_vendor_message_opcode_attr_get:
+	rtn
+ali_mesh_ali_vendor_message_opcode_attr_confrimation:
+	ifetch 2,contr
+	arg VENDOR_MESSAGE_OPCODE_COMPANY_ID,temp
+	isub temp,null
+	nrtn zero
+	ifetch 1,contr
+	fetcht 1,mem_mesh_upper_tran_layer_packet_tid
+	isub temp,null
+	nrtn zero
+	branch ali_mesh_stop_send_indication_packet
+
+ali_mesh_ali_vendor_message_attrbute_check_company_id_and_tid:
+	call disable_user
+	fetch 2,mem_mesh_vendor_message_cid
+	arg VENDOR_MESSAGE_OPCODE_COMPANY_ID,temp
+	isub temp,null
+	nrtn zero
+	fetcht 1,mem_mesh_vendor_mesh_receive_tid
+	fetch 1,mem_mesh_vendor_message_tid
+	isub temp,null
+	rtn zero
+	store 1,mem_mesh_vendor_mesh_receive_tid
+	branch enable_user
+
+ali_mesh_ali_vendor_message_attribute_set_main_light:
+	call ali_mesh_ali_vendor_message_ack_attr_status_uint8
+	fetch 2,mem_mesh_cb_main_light_onoff_set
+	branch callback_func
+
+
+ali_mesh_ali_vendor_message_attribute_set_background_light:
+	call ali_mesh_ali_vendor_message_ack_attr_status_uint8
+	fetch 2,mem_mesh_cb_background_onoff_set
+	branch callback_func
+
+ali_mesh_ali_vendor_message_attribute_set_color:
+	call ali_mesh_ali_vendor_message_ack_attr_status_uint48
+	fetch 2,mem_mesh_cb_color_set
+	branch callback_func
+
+
+/*
+	闃块噷瀹氭椂妯″潡浠ｇ爜
+*/
+ali_mesh_ali_vendor_message_opcode_timer_set_curr_time:
+	call ali_mesh_ali_vendor_message_ack_attr_status_uint32
+
+	fetch 4,mem_mesh_vendor_message_current_time
+	store 4,mem_mesh_vendor_timer_current_time
+	branch ali_mesh_time_init_system_time
+
+
+
+/*
+	闃块噷mesh鑷畾涔塻tatus,琚姩鍥炲SET鎴栬匞ET鐘舵
+*/
+ali_mesh_ali_vendor_message_status_add_head:
+	setarg VENDOR_MESSAGE_ATTR_STATUS
+	store 1,mem_mesh_access_layer_payload
+	setarg VENDOR_MESSAGE_OPCODE_COMPANY_ID
+	istore 2,contw
+	fetch 1,mem_mesh_vendor_mesh_receive_tid
+	istore 1,contw
+	istoret 2,contw
+	rtn
+
+/*
+	闃块噷mesh鑷畾涔塱ndication锛屼富鍔ㄤ笂鎶ョ姸鎬佺粰澶╃尗绮剧伒
+	DST:0x00f0
+*/
+//寮鍏充笂鐢
+ali_mesh_ali_vendor_message_opcode_device_power_on:
+	arg 0,queue
+	arg VENDOR_MESSAGE_EVENT_DEVICE_POWER_ON,temp
+	arg VENDOR_ATTR_TYPE_EVENT_TRIGGER,rega
+	branch ali_mesh_ali_vendor_message_opcode_para_uint8
+
+
+//涓婃姤寮鍏崇姸鎬
+//input:temp is generic onoff status
+//0 GENERIC_ONOFF_CMD_OFF
+//1 GENERIC_ONOFF_CMD_ON
+//input:queue is element number
+//e.g 鐏痲ueue0
+//椋庢墖鐏腑鐏0锛岄鎵1
+//椋庢墖:0
+ali_mesh_ali_vendor_message_opcode_generic_OnOff:
+	arg VENDOR_ATTR_GENERIC_ONOFF_SERVER,rega
+	branch ali_mesh_ali_vendor_message_opcode_para_uint8
+
+
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint64:
+	arg 8,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint56:
+	arg 8,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint48:
+	arg 6,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint32:
+	arg 4,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint16:
+	arg 2,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+ali_mesh_ali_vendor_message_ack_attr_status_uint8:
+	arg 1,loopcnt
+	branch ali_mesh_ali_vendor_message_ack_attr_status
+
+//input:loopcnt is attr length
+ali_mesh_ali_vendor_message_ack_attr_status:
+	add loopcnt,6,pdata
+	store 1,mem_mesh_access_layer_payload_len
+	call ali_mesh_ali_vendor_message_status_add_head
+	arg mem_mesh_vendor_attr_parameter,contr
+	call memcpy
+	branch ali_mesh_upper_transport_layer_send_access_message
+	
+
+
+//input:queue is element number
+//rega is vendor model attr
+//temp is vendor model attr parameter 
+ali_mesh_ali_vendor_message_opcode_para_uint8:
+	call ali_mesh_ali_vendor_message_indication_info_add_head
+	istorer rega,2,contw
+	istoret 1,contw
+	jam 7,mem_mesh_access_layer_payload_len
+	branch ali_mesh_ali_vendor_message_send_message
+
+
+//input:queue is element number
+//rega is vendor model attr
+//temp is vendor model attr parameter 
+ali_mesh_ali_vendor_message_opcode_para_uint16:
+	call ali_mesh_ali_vendor_message_indication_info_add_head
+	istorer rega,2,contw
+	istoret 2,contw
+	jam 8,mem_mesh_access_layer_payload_len
+	branch ali_mesh_ali_vendor_message_send_message
+
+
+//input:queue is element number
+ali_mesh_ali_vendor_message_send_message:
+	call ali_mesh_more_element_calc_queue_address
+	branch ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer
+
+
+ali_mesh_ali_vendor_message_indication_info_add_head:
+	fetch 1,mem_mesh_transport_AID
+	store 1,mem_mesh_message_Transport_Head
+	setarg VENDOR_MESSAGE_TMALL_DST
+	store 2,mem_mesh_send_message_DST
+	fetch 1,mem_mesh_vendor_mesh_send_tid
+	pincrease 1
+	store 1,mem_mesh_vendor_mesh_send_tid
+	beq VENDOR_MESSAGE_SEND_TID_MAX,ali_mesh_ali_vendor_message_indication_info_reset_tid
+	setarg VENDOR_MESSAGE_ATTR_INDICATION
+	store 1,mem_mesh_access_layer_payload
+	setarg VENDOR_MESSAGE_OPCODE_COMPANY_ID
+	istore 2,contw
+	fetch 1,mem_mesh_vendor_mesh_send_tid
+	istore 1,contw
+	rtn
+
+ali_mesh_ali_vendor_message_indication_info_reset_tid:
+	jam VENDOR_MESSAGE_SEND_TID_MIN,mem_mesh_vendor_mesh_send_tid
+	rtn
+
+
+ali_mesh_ali_vendor_message_opcode_delete_timer:
+	copy contr,rega
+	fetch 1,mem_mesh_receive_model_message_payload_len
+	arg 6,temp
+	isub temp,pdata
+	store 1,mem_mesh_timer_index_buffer_len
+	copy pdata,loopcnt
+	copy rega,contr
+	arg mem_mesh_timer_index_buffer,contw
+	call memcpy
+	arg 0,regb
+ali_mesh_ali_vendor_message_opcode_delete_timer_loop:
+	arg mem_mesh_timer_index_buffer,pdata
+	iadd regb,temp
+	ifetch 1,temp
+	beq 0xff,ali_mesh_ali_vendor_aim_timer_buffer_clear_all
+	and pdata,0x7f,pdata
+	call ali_mesh_ali_vendor_aim_timer_buffer_clear
+	increase 1,regb
+	fetch 1,mem_mesh_timer_index_buffer_len
+	isub regb,null
+	branch ali_mesh_ali_vendor_message_opcode_delete_timer_loop,positive
+	call peripherals_write_mesh_timer_infmatn
+ali_mesh_access_layer_send_ali_vendor_message_delete_timer:
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIMER_DELEATE, temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	arg 0,temp
+	istoret 1,contw
+	copy contw,temp
+	call ali_mesh_get_all_timer_index_timer
+	pincrease 7
+	store 1,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+ali_mesh_ali_vendor_aim_timer_buffer_clear:
+	rtn blank
+	pincrease -1
+	mul32 pdata,18,pdata
+	arg mem_mesh_vendor_timer_timing_buffer,rega
+	iadd rega,rega
+	setarg 0
+	istore 1,rega
+	rtn
+
+ali_mesh_ali_vendor_aim_timer_buffer_clear_all:
+	arg 18,loopcnt
+	mul32 loopcnt,MESH_X_TIMERS,loopcnt
+	arg mem_mesh_vendor_timer_timing_buffer,contw
+	call clear_mem
+	call peripherals_write_mesh_timer_infmatn
+	branch ali_mesh_access_layer_send_ali_vendor_message_delete_timer
+
+ali_mesh_ali_vendor_message_opcode_timer_inquire:
+	ifetch 1,contr
+	beq 0xff,ali_mesh_ali_vendor_message_opcode_timer_inquire_all_timer
+	store 1,mem_mesh_vendor_timer_timing_temp
+	ifetch 1,contr
+	pincrease -1
+	mul32 pdata,18,pdata
+	arg mem_mesh_vendor_timer_timing_buffer,contr
+	iadd contr,contr
+	arg mem_mesh_vendor_timer_timing_palyload,contw
+	arg 18,loopcnt
+	call memcpy
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIMER_INQUIRE,temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	fetch 1,mem_mesh_vendor_timer_timing_index
+	branch ali_mesh_ali_vendor_message_opcode_timer_inquire_time_error,blank
+	arg 0,temp
+	istoret 1,contw
+ali_mesh_ali_vendor_message_opcode_timer_inquire_time:
+	fetch 1,mem_mesh_vendor_timer_timing_temp
+	istore 1,contw
+	fetch 1,mem_mesh_vendor_timer_timing_index
+	istore 1,contw
+	fetch 8,mem_mesh_vendor_timer_timing_time
+	istore 8,contw
+	jam 17,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+	
+
+ali_mesh_ali_vendor_message_opcode_timer_inquire_all_timer:
+	arg VENDOR_MESSAGE_ATTR_TYPE_TIMER_INQUIRE,temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	arg 0xff,temp
+	istoret 2,contw
+//	arg,0xff,temp
+//	istoret 1,contw
+	copy contw,temp
+	call ali_mesh_get_all_timer_index_timer
+	pincrease 8
+	store 1,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+//	fetch 1,mem_mesh_verdor_timer_timing_flag_v2+1
+	
+//ali_mesh_ali_vendor_message_opcode_timer_inquire_timing_cyclically_v2:
+ali_mesh_ali_vendor_message_opcode_timer_inquire_time_error:
+	arg 0x80,temp
+	istore 1,contw
+	branch ali_mesh_ali_vendor_message_opcode_timer_inquire_time
+
+ali_mesh_ali_vendor_message_opcode_timer_set_state:
+	ifetch 1,contr
+	store 1,mem_mesh_vendor_timer_timing_temp
+	and pdata,0x7f,pdata
+	pincrease -1
+	mul32 pdata,18,pdata
+	arg mem_mesh_vendor_timer_timing_buffer,contw
+	iadd contw,contw
+	fetch 1,mem_mesh_vendor_timer_timing_temp
+	istore 1,contw
+	call peripherals_write_mesh_timer_infmatn
+	arg VENDOR_MSEEAGE_ATTR_TYPE_TIMER_ENABLE,temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	setarg 0
+	istore 1,contw
+	copy contw,temp
+	call ali_mesh_get_all_timer_index_timer
+	pincrease 7
+	store 1,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+	
+	
+
+
+ali_mesh_time_function:
+	copy clkn_bt,temp
+	fetch 4,mem_system_time
+	isub temp,null
+	call ali_mesh_timer_timeout,positive
+	call ali_mesh_clkn_bt_add_1s
+	isub temp,null	
+	rtn positive
+	call ali_mesh_time_init_system_time_without_clk
+	fetch 4,mem_mesh_vendor_timer_current_time
+	pincrease 1
+	store 4,mem_mesh_vendor_timer_current_time
+	branch ali_mesh_ali_vendor_check_time
+
+
+ali_mesh_time_init_system_time:
+	copy clkn_bt,pdata
+ali_mesh_time_init_system_time_without_clk:
+	store 4,mem_system_time
+	fetch 1,mem_system_time+3
+	and_into 0x0f,pdata
+	store 1,mem_system_time+3
+	rtn
+
+ali_mesh_timer_timeout:
+	rtn zero
+	copy pdata,regb
+	setarg 0x100000
+	lshift8 pdata,pdata
+	iadd temp,temp
+	copy regb,pdata
+	rtn
+
+ali_mesh_clkn_bt_add_1s:
+	arg 20,loopcnt
+ali_mesh_time_loop:	
+	pincrease 160
+	loop ali_mesh_time_loop	
+	rtn
+
+ali_mesh_ali_vendor_check_time:
+	setarg MESH_X_TIMERS
+	store 1, mem_mesh_vendor_timer_check_loop
+	pincrease -1
+	mul32 pdata,18,pdata
+	arg mem_mesh_vendor_timer_timing_buffer,alarm
+	iadd alarm, alarm
+ali_mesh_ali_vendor_check_time_loop:
+	ifetch 1,alarm
+	ncall ali_mesh_ali_vendor_had_timing,blank 
+	increase -18,alarm
+
+	fetch 1, mem_mesh_vendor_timer_check_loop
+	pincrease -1
+	rtn blank
+	store 1, mem_mesh_vendor_timer_check_loop
+	branch ali_mesh_ali_vendor_check_time_loop
+
+ali_mesh_ali_vendor_had_timing:
+	arg 7,queue
+	qisolate0 pdata
+	rtn true
+	and pdata,0x7f,pdata
+	arg MESH_X_TIMERS, temp
+	isub temp, null
+	rtn positive
+	copy alarm,contr
+	arg mem_mesh_vendor_timer_timing_palyload,contw
+	arg 18,loopcnt
+	call memcpy
+	fetch 1,mem_mesh_vendor_timer_timing_palyload+17
+	beq 0x59,ali_mesh_ali_vendor_had_timing_cyclically
+ali_mesh_ali_vendor_had_timing_single_time:
+	fetcht 4,mem_mesh_vendor_timer_current_time
+	fetch 4, mem_mesh_vendor_timer_timing_time
+	isub temp,null
+	fetch 1, mem_mesh_vendor_timer_timing_attr_para
+	branch ali_mesh_ali_vendor_time_timeout,zero
+	nbranch ali_mesh_ali_vendor_time_out_of_date, positive
+	rtn	
+
+ali_mesh_ali_vendor_time_out_of_date:
+	setarg 0
+	istore 1,alarm
+	rtn
+
+ali_mesh_ali_vendor_had_timing_cyclically:
+
+	fetch 4, mem_mesh_vendor_timer_current_time
+	arg SECONDS_OF_MIN, temp
+	idiv temp
+	call wait_div_end
+	remainder pdata
+	nrtn blank
+	
+	fetch 4, mem_mesh_vendor_timer_current_time
+	arg SECONDS_OF_FOUR_DAYS, temp
+	isub temp, pdata
+
+	arg SECONDS_OF_WEEK, temp
+	idiv temp
+	call wait_div_end
+	remainder pdata
+	arg SECONDS_OF_DAY, temp
+	idiv temp
+	call wait_div_end
+	remainder rega
+	quotient queue
+	fetch 1,mem_mesh_vendor_timer_timing_weekdays_cyclic
+	branch ali_mesh_ali_vendor_had_timing_cyclically_continue,blank
+	qisolate1 pdata
+	nrtn true
+ali_mesh_ali_vendor_had_timing_cyclically_continue:
+//	call ice_break
+	deposit rega
+	arg SECONDS_OF_MIN, temp
+	idiv temp
+	call wait_div_end
+	quotient temp
+	setarg EIGHT_HOURS_TIME_ZONE_OFFSET
+	iadd temp, temp
+	fetch 2,mem_mesh_vendor_timer_timing_time_cyclic
+	arg 0xfff,rega
+	iand rega,pdata
+	isub temp, null
+	nrtn zero
+	fetch 1, mem_mesh_vendor_timer_timing_attr_para_cyclic
+	branch ali_mesh_ali_vendor_time_timeout
+
+ali_mesh_ali_vendor_time_timeout:
+	store 1,mem_mesh_generic_onoff_set_payload_OnOff
+	jam 1, mem_mesh_vendor_timer_check_loop
+	
+	copy alarm,pdata
+	store 2,mem_mesh_alarm_temp	
+
+	fetcht 1,mem_mesh_generic_onoff_set_payload_OnOff
+	fetchr queue,1,mem_mesh_receive_element_number
+	call ali_mesh_ali_vendor_message_opcode_generic_OnOff
+	
+	fetch 2,mem_mesh_alarm_temp
+	copy pdata,alarm
+	add alarm, 17, contr
+	ifetch 1, contr
+	beq TIMER_CYCLICAL_FALG,ali_mesh_ali_vendor_time_timeout_cyclic
+ali_mesh_ali_vendor_time_timeout_continue:
+	setarg 0
+	istore 1,alarm
+	fetchr queue,1,mem_mesh_receive_element_number
+	call ali_mesh_ali_vendor_message_opcode_timing_finish
+	branch peripherals_write_mesh_timer_infmatn
+	
+
+
+ali_mesh_ali_vendor_time_timeout_cyclic:
+	fetch 1,mem_mesh_vendor_timer_timing_weekdays_cyclic
+	branch ali_mesh_ali_vendor_time_timeout_continue,blank
+	arg VENDOR_ATTR_TYPE_EVENT_TRIGGER,temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	setarg 0x11
+	istore 1,contw
+	ifetch 1,alarm
+	or pdata,0x80,pdata
+	istore 1,contw
+	jam 8,mem_mesh_access_layer_payload
+	branch ali_mesh_ali_vendor_message_send_message
+
+ali_mesh_ali_vendor_message_opcode_timing_finish:
+	arg VENDOR_ATTR_TYPE_EVENT_INDEX_REPORT,temp
+	call ali_mesh_ali_vendor_message_status_add_head
+	copy contw,temp
+	call ali_mesh_get_all_timer_index_timer
+	
+	pincrease 6
+	store 1,mem_mesh_access_layer_payload_len
+	jam VENDOR_MESSAGE_ATTR_STATUS,mem_mesh_access_layer_payload
+	branch ali_mesh_ali_vendor_message_send_message
+	
+
+ali_mesh_ali_vendor_message_opcode_timer_set_timing:
+	arg mem_mesh_vendor_timer_timing_index,contw
+	arg 16,loopcnt
+	call memcpy
+	fetch 1,mem_mesh_vendor_timer_timing_index
+	and pdata,0x7f,pdata
+	store 1,mem_mesh_vendor_timer_timing_temp
+	sub pdata, MESH_X_TIMERS, null
+	nrtn positive
+/*
+	瀹氭椂涓虹簿搴﹀埌鍒嗛挓鍒版椂闂达紝
+	鏁呰鏁版嵁鍒扮鏁伴儴鍒嗭紙<60绉掞級
+	琛ㄧず璇ュ畾鏃舵墽琛岀殑鎿嶄綔鐮佹暟閲忋
+	鍑忔帀闄や互60鐨勪綑鏁,鏄负浜嗗噺鎺夋搷浣滅爜銆
+	*/
+	fetch 4,mem_mesh_vendor_timer_timing_time
+	arg 60,temp
+	idiv temp
+	call wait_div_end
+	remainder temp
+	isub temp,pdata
+	store 4,mem_mesh_vendor_timer_timing_time
+	setarg 0
+	store 2,mem_mesh_vendor_timer_timing_flag
+	arg mem_mesh_vendor_timer_timing_index,rega
+	call ali_mesh_ali_vendor_store_mesh_timer_infmatn
+	arg VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_SINGLE,temp
+	branch ali_mesh_access_layer_send_ali_vendor_message_current_timing
+	
+
+	
+
+ali_mesh_ali_vendor_message_opcode_timer_set_timing_cyclically:
+	
+	arg mem_mesh_vendor_timer_timing_index_cyclic,contw
+	arg 17,loopcnt
+	call memcpy
+	
+	
+	fetch 1,mem_mesh_vendor_timer_timing_index_cyclic
+	and pdata,0x7f,pdata
+	store 1,mem_mesh_vendor_timer_timing_temp
+	sub pdata, MESH_X_TIMERS, null
+	nrtn positive
+
+	jam 0x59,mem_mesh_vendor_timer_timing_cyclic_flag
+	arg mem_mesh_vendor_timer_timing_index_cyclic, rega
+	call ali_mesh_ali_vendor_store_mesh_timer_infmatn
+	arg VENDOR_MSEEAGE_ATTR_TYPE_SET_TIME_REPEAT,temp
+
+	
+ali_mesh_access_layer_send_ali_vendor_message_current_timing:
+//	call ali_mesh_get_all_timer_index_timer
+	call ali_mesh_ali_vendor_message_status_add_head
+	setarg 0
+	store 1,mem_mesh_access_layer_payload+6
+	copy contw,temp
+	call ali_mesh_get_all_timer_index_timer
+	pincrease 7
+	store 1,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+	
+	
+ali_mesh_ali_vendor_store_mesh_timer_infmatn:
+	call ali_mesh_vendor_timer_buffer_offset_cal
+	copy rega,contr
+	arg mem_mesh_vendor_timer_timing_buffer,contw
+	iadd contw,contw
+	arg 18,loopcnt
+	call memcpy
+	branch peripherals_write_mesh_timer_infmatn
+
+ali_mesh_vendor_timer_buffer_offset_cal:
+	fetch 1,mem_mesh_vendor_timer_timing_temp
+	pincrease -1
+	mul32 pdata,18,pdata
+	rtn
+
+ali_mesh_get_all_timer_index_timer:
+	arg mem_mesh_vendor_timer_timing_buffer,rega
+	arg 0,regb
+	copy temp,contw
+	arg MESH_X_TIMERS,loopcnt
+	increase -1,loopcnt
+ali_mesh_get_all_timer_index_timer_loop:
+	ifetch 1,rega
+	beq 0xff,ali_mesh_get_all_timer_index_timer_loop_end
+	branch ali_mesh_get_all_timer_index_timer_loop_end,blank
+	increase 1,regb
+	istore 1,contw
+ali_mesh_get_all_timer_index_timer_loop_end:
+	setarg 18
+	iadd rega,rega
+	loop ali_mesh_get_all_timer_index_timer_loop
+	copy regb,pdata
+	rtn
+
+peripherals_write_mesh_timer_infmatn:
+	fetch 2,mem_mesh_cb_vendor_timing_changed
+	branch callback_func
+//	setarg FLASH_BLOCK_MESH_TIMER_INFOR
+//	arg mem_mesh_verdor_timer_timing_buffer, rega  //mem ptr
+//	arg 30,temp
+//	arg MESH_X_TIMERS,temp
+//	mul32 temp,18,temp	
+//	branch spi_write_flash_data
+
Index: program/mesh_protocol_stack/mesh_bearer_layer.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_bearer_layer.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_bearer_layer.prog	(working copy)
@@ -0,0 +1,81 @@
+
+/*
+	mesh鍗忚涓璪earer layer
+	涓昏鏄礋璐esh涓疄闄呭彂閫佹暟鎹寘鍐呭
+*/
+
+ali_mesh_bearer_layer_send_packet_by_network_layer:
+	bpatchx patch34_1,mem_patch34
+	setarg mem_mesh_queue_each_size
+	store 2,mem_mesh_element_device_queue_buffer_ptr
+	setarg mem_mesh_element_device
+	store 2,mem_mesh_rega_temp
+	jam ADV_PAIRING_MESH_MESSAGE_DURATION,mem_mesh_queue_ele_duration
+	fetch 1,mem_mesh_gatt_package_send_msg_id
+	store 1,mem_mesh_queue_ele_gatt_msg_id
+
+	fetch 1,mem_mesh_lower_transport_layer_payload_len
+	pincrease 11
+	add pdata,-2,loopcnt
+	//闀垮害+11鐨勫師鍥
+	//uint8_t AD length
+	//uint8_t AD type:GAP_ADTYPE_MESH_MESSAGE
+	//uint8_t IVI & NID
+	//uint8_t CTL & TTL
+	//uint24_t SEQ
+	//uint16_t SRC
+	//uint16_t DST
+	store 1,mem_mesh_queue_ele_len
+	pincrease -1
+	//-1鐨勫師鍥
+	//uint8_t AD length
+	istore 1,contw
+	setarg GAP_ADTYPE_MESH_MESSAGE
+	istore 1,contw
+	arg mem_mesh_send_upper_layer_IVI_and_NID,contr
+	call memcpy_fast
+	fetchr rega,2,mem_mesh_rega_temp
+	call ali_mesh_advertising_bearer_layer_init_queue
+	call queue_push
+ali_mesh_bearer_layer_gatt_send_packet_by_network_layer:
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_CONNECTED,pdata
+	nrtn true
+ali_mesh_send_ble_data_control_package:
+	call ali_mesh_network_layer_init_gatt_queue_param
+	arg mem_mesh_queue_ele_temp,rega
+	branch queue_push
+
+ali_mesh_advertising_bearer_layer_init_queue:
+	add rega,ELEMENT_DEVICE_QUEUE_BUFFER_PTR,contr
+	ifetch 2,contr
+	store 2,mem_queue_ptr
+	arg mem_mesh_queue_ele_temp,rega
+	rtn
+	
+
+ali_mesh_advertising_bearer_layer_init_queue_param:
+	setarg mem_mesh_queue_each_size
+	store 2,mem_queue_ptr
+	rtn
+
+ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue:
+ 
+ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue_deal:
+	fetch 1,mem_mesh_upper_tran_layer_packet_advertising
+	rtnne PACKET_IN_BEARER
+	jam PACKET_IN_ADVERTING,mem_mesh_upper_tran_layer_packet_advertising
+	branch ali_mesh_control_ble_advertising_on_advertising
+
+ali_mesh_advertising_bearer_layer_send_packet_by_app_bearer_calc_param:
+	arg mem_mesh_queue_ele_payload+2,rega
+	arg MAX_APP_MSSAGE_PAYLOAD_LENGTH,temp
+	setarg 0x21		//
+	nrtn true
+	arg mem_mesh_queue_ele_payload+20,rega		//MAX_APP_MSSAGE_PAYLOAD_LENGTH+2
+	fetcht 1,mem_mesh_queue_ele_len
+	increase -18,temp		//MAX_APP_MSSAGE_PAYLOAD_LENGTH
+	setarg 0x22
+	rtn
+
+
Index: program/mesh_protocol_stack/mesh_ble_core_advertising.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_ble_core_advertising.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_ble_core_advertising.prog	(working copy)
@@ -0,0 +1,182 @@
+
+
+
+//0x01 GAP_ADTYPE_FLAGS
+//input:no default write mem_mesh_adv_data
+ali_mesh_advertising_add_adtype_flags:
+	arg mem_mesh_adv_data,contw
+	setarg 0x02
+	istore 1,contw
+	setarg GAP_ADTYPE_FLAGS
+	istore 1,contw
+	setarg 0x02
+	istore 1,contw
+	rtn
+
+//0x01 GAP_ADTYPE_FLAGS
+//input:no default write mem_mesh_adv_data
+ali_mesh_advertising_add_adtype_16bit_complete:
+	arg MESH_PROVISIONING_UUID,temp
+	setarg 0x03
+	istore 1,contw
+	setarg GAP_ADTYPE_16BIT_COMPLETE
+	istore 1,contw
+	istoret 2,contw
+	rtn
+
+
+mesh_ble_rx_packet_only:
+	call le_enable
+	call le_init_adv
+	call le_receive_adv
+	nrtn match
+//	call ali_mesh_advertising_packet_analysis
+	fetch 1,mem_le_adv_rcv
+	pincrease 1
+	store 1,mem_le_adv_rcv
+	fetch 2,mem_mesh_cb_receive_advertising
+	call callback_func
+	branch le_disable
+
+mesh_ble_rx_packet:
+	call mesh_ble_rx_packet_check_and_init
+	rtn user
+mesh_ble_rx_packet_check_timer:
+	call mesh_ble_rx_packet_only
+	call connection_dispatch
+	fetcht 2,mem_le_scan_interval
+	arg 10,queue
+	call sniff_check_window
+	rtn user
+	arg mesh_ble_rx_timer,queue
+	call timer_check
+	nbranch mesh_ble_rx_packet_check_timer,blank
+	rtn
+
+mesh_ble_rx_packet_check_and_init:
+	fetcht 2,mem_le_scan_interval
+	arg 4,queue
+	call sniff_check_window
+	rtn user
+	call mesh_le_calc_next_scan_channel
+	fetch 2,mem_le_scan_interval
+	arg mesh_ble_rx_timer,queue
+	branch timer_init
+
+
+mesh_le_calc_next_scan_channel:
+	fetch 1,mem_mesh_adv_scan_channel
+	pincrease 1
+	store 1,mem_mesh_adv_scan_channel
+	store 1,mem_le_ch_mapped
+	rtnne 40
+	jam 37,mem_mesh_adv_scan_channel
+	jam 37,mem_le_ch_mapped
+	rtn
+
+/*
+	mesh 瑙ｆ瀽鏍囧噯骞挎挱鏁版嵁
+	鍙垎鏋怉DV_IND/ADV_NONCONN_IND涓ょ骞挎挱鍖
+*/
+mesh_check_ble_rx_packet:
+	fetch 1,mem_le_rxbuf
+	and pdata,0x0f,pdata
+	beq ADV_IND,ali_mesh_match_advertising_packet
+	beq ADV_NONCONN_IND,ali_mesh_match_advertising_packet
+	rtn
+
+ali_mesh_match_advertising_packet:
+	ifetcht 1,contr	//length
+	sub temp,ADV_PACKET_MIN_LENGTH,null
+	rtn positive		//杩囨护鐭寘锛屽寘闀垮害澶煭瀵艰嚧瑙ｆ瀽閿欒
+	sub temp,ADV_PACKET_MAX_LENGTH,null
+	nrtn positive		//杩囨护闀垮寘锛屽寘闀垮害澶暱瀵艰嚧鍐呭瓨瑕嗙洊
+	add temp,-6,rega	//rega:鍑忓幓address length
+	add contr,6,regb	//regb:鎸囬拡鍋忕Щ鍒皉egb
+
+ali_mesh_find_adv_ind_packet:
+	ifetcht 1,regb //length
+	sub temp,AD_TYPE_MIN_LENGTH,null
+	rtn positive	
+	sub temp,AD_TYPE_MAX_LENGTH,null
+	nrtn positive	
+	copy temp,pdata
+	rtn blank
+	bpatchx patch34_2,mem_patch34
+	ifetch 1,contr
+	beq GAP_ADTYPE_MANUFACTURER_SPECIFIC,ali_mesh_receive_adtype_manufacturer_specific_tmall_control
+	beq GAP_ADTYPE_MESH_MESSAGE,ali_mesh_receive_adtype_mesh_message
+//	beq GAP_ADTYPE_128BIT_COMPLETE,ali_mesh_receive_adtype_128bit_uuid_complete
+//鎸夌収骞挎挱鏍煎紡鏌ヨ鎵鏈夋壂鎻忓埌鐨勫箍鎾暟鎹
+	add temp,1,pdata
+	isub rega,null
+	rtn positive
+	iadd regb,regb
+	sub temp,-1,pdata
+	iadd rega,rega
+	copy rega,pdata
+	rtn blank
+	branch ali_mesh_find_adv_ind_packet
+
+ali_mesh_receive_adtype_manufacturer_specific_tmall_control:
+	jam MESH_MESSAGE_TMALL,mem_mesh_fast_pair_packet_type
+	branch ali_mesh_receive_adtype_manufacturer_specific
+
+
+/*
+input:
+mem_le_lap:钃濈墮鍦板潃
+mem_mesh_adv_data:payload 鏁版嵁
+mem_mesh_adv_data_len:鏁版嵁闀垮害
+*/
+mesh_le_send_adv:
+	fetch 1,mem_le_adv_transmit
+	pincrease 1
+	store 1,mem_le_adv_transmit
+//	call ice_break
+	bpatchx patch34_3,mem_patch34
+	call le_enable
+	arg 39,loopcnt
+	arg mem_le_txheader,contr
+	arg mem_le_txheader_mesh_temp,contw
+	call memcpy_fast
+	jam 37,mem_le_ch_mapped
+	arg 1800,stop_watch
+	enable swfine
+	disable match
+
+mesh_le_send_adv_loop:
+	call le_init_adv
+	call mesh_le_send_adv_nonconn_ind
+	random pdata 
+	arg 0x1ff,temp
+	iand temp,pdata
+	add pdata,100,pdata
+	call delay
+	fetch 1,mem_le_ch_mapped
+	pincrease 1
+	store 1,mem_le_ch_mapped
+	bne 40,mesh_le_send_adv_loop
+	
+	arg 39,loopcnt
+	arg mem_le_txheader,contw
+	arg mem_le_txheader_mesh_temp,contr
+	call memcpy_fast
+	branch le_disable
+
+mesh_le_send_adv_nonconn_ind:
+	arg ADV_NONCONN_IND,temp
+	storet 1,mem_le_txheader
+	fetcht 1,mem_mesh_adv_data_len
+	add temp,6,pdata
+	store 1,mem_le_txlen
+	fetch 6,mem_le_lap
+	store 6,mem_le_txpayload
+	copy temp,loopcnt
+	arg mem_mesh_adv_data,contr
+	call memcpy_fast
+
+	branch le_transmit_norx
+
+
+
Index: program/mesh_protocol_stack/mesh_chip_peripherals.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_chip_peripherals.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_chip_peripherals.prog	(working copy)
@@ -0,0 +1,382 @@
+
+//input:mem_mesh_mic_cache_ptr is cache buffer ptr
+//data ptr is store mem_ccm_data_ptr
+//data length is store mem_ccm_data_len
+//cache space size is TRANSPORT_MIC_CACHE_SPACE_SIZE
+//cache space num is TRANSPORT_MIC_CACHE_SPACE_NUM
+//output:user is enable ,mean new packet
+ali_mesh_base_adt_cache:
+	bpatchx patch34_4,mem_patch34
+	fetcht 2,mem_ccm_data_ptr
+	fetch 1,mem_ccm_data_len
+	copy temp,contr
+	arg mem_k4_SALT,rega
+	arg mem_k4_T,alarm
+	call ali_mesh_encrypt_base_function_AES_CMAC
+	call disable_user
+	copy regc,pdata
+	iadd alarm,contr
+	fetcht 4,mem_k4_T
+	fetch 2,mem_mesh_mic_cache_ptr
+	copy pdata,rega
+//	arg mem_mesh_access_message_mic_cache,rega
+	arg TRANSPORT_MIC_CACHE_SPACE_NUM,loopcnt
+ali_mesh_base_adt_cache_loop:
+	ifetch 4,rega
+	branch ali_mesh_base_adt_cache_empty_space,blank
+	isub temp,null
+	rtn zero
+	increase TRANSPORT_MIC_CACHE_SPACE_SIZE,rega
+	loop ali_mesh_base_adt_cache_loop
+	fetch 2,mem_mesh_mic_cache_ptr
+	copy pdata,contw
+	add pdata,TRANSPORT_MIC_CACHE_SPACE_SIZE,contr
+//	arg mem_mesh_access_message_mic_cache,contw
+//	arg mem_mesh_access_message_mic_cache+TRANSPORT_MIC_CACHE_SPACE_SIZE,contr
+	arg TRANSPORT_MIC_CACHE_TOTAL_SIZE,loopcnt
+	call memcpy_fast
+	istoret 4,contw
+	branch enable_user
+ali_mesh_base_adt_cache_empty_space:
+	istoret 4,rega
+	branch enable_user
+
+ali_mesh_chip_peripherals_load_data:
+	fetch 1,mem_mesh_chip_select
+	beq MESH_CHIP_FROM_EEPROM,ali_mesh_chip_peripherals_load_data_from_eep
+ali_mesh_chip_peripherals_load_data_from_flash:
+	call ali_mesh_chip_peripherals_load_three_tuple_from_flash
+	call ali_mesh_chip_peripherals_load_network_key_from_flash
+	call ali_mesh_chip_peripherals_load_application_key_from_flash
+	call ali_mesh_chip_peripherals_load_device_key_from_flash
+	call ali_mesh_chip_peripherals_load_reset_count_from_flash
+	call ali_mesh_chip_peripherals_load_seq_from_flash
+	branch ali_mesh_chip_peripherals_load_subscription_from_flash
+
+ali_mesh_chip_peripherals_load_three_tuple_from_flash:
+	arg MESH_EEP_THREE_TUPLE_LENGTH,temp
+	arg mem_mesh_three_tuple_ProductID,rega
+	setarg 0x1ffa0
+	branch spid_read_flash
+ali_mesh_chip_peripherals_load_network_key_from_flash:
+	arg MESH_EEP_NETWORK_KEY_LENGTH,temp
+	arg mem_mesh_Network_Key,rega
+	setarg MESH_FLASH_NETWORK_KEY_ADDR
+	call spid_read_flash
+	fetch 1,mem_mesh_last_IV_Index_byte
+	store 1,mem_mesh_IV_Index+3
+	rtn
+ali_mesh_chip_peripherals_load_application_key_from_flash:
+	arg MESH_EEP_APPLICATION_KEY_LENGTH,temp
+	arg mem_mesh_application_key,rega
+	setarg MESH_FLASH_APPLICATION_KEY_ADDR
+	branch spid_read_flash
+ali_mesh_chip_peripherals_load_device_key_from_flash:
+	arg MESH_EEP_DEVICE_KEY_LENGTH,temp
+	arg mem_mesh_Device_Key,rega
+	setarg MESH_FLASH_DEVICE_KEY_ADDR
+	branch spid_read_flash
+ali_mesh_chip_peripherals_load_reset_count_from_flash:
+	rtn
+ali_mesh_chip_peripherals_load_seq_from_flash:
+	arg MESH_EEP_SEQ_LENGTH,temp
+	arg mem_mesh_send_message_SEQ,rega
+	setarg MESH_FLASH_MESSAGE_SEQ_ADDR
+	branch spid_read_flash
+ali_mesh_chip_peripherals_load_subscription_from_flash:
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_SUBSCRIPTION
+	arg MESH_EEP_SUBSCRIPTION_TOTAL_LENGTH,temp
+	arg mem_mesh_subscription_eep_temp,rega
+	setarg MESH_FLASH_SUBSCRIPTION_ADDR
+	call spid_read_flash
+	call mesh_get_element_info_config
+	arg mem_mesh_subscription_eep_temp,contr
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,rega
+	branch ali_mesh_chip_peripherals_load_subscription_loop
+
+
+ali_mesh_chip_peripherals_load_data_from_eep:
+	call ali_mesh_chip_peripherals_load_three_tuple_from_eep
+	call ali_mesh_chip_peripherals_load_network_key_from_eep
+	call ali_mesh_chip_peripherals_load_application_key_from_eep
+	call ali_mesh_chip_peripherals_load_device_key_from_eep
+	call ali_mesh_chip_peripherals_load_reset_count_from_eep
+	call ali_mesh_chip_peripherals_load_seq_from_eep
+	branch ali_mesh_chip_peripherals_load_subscription_from_eep
+
+ali_mesh_chip_peripherals_load_three_tuple_from_eep:
+	arg MESH_EEP_THREE_TUPLE_LENGTH,temp
+	arg mem_mesh_three_tuple_ProductID,rega
+	arg MESH_EEP_THREE_TUPLE_OFFSET,regb
+	branch iicd_read_eep_data
+
+ali_mesh_chip_peripherals_load_network_key_from_eep:
+	arg MESH_EEP_NETWORK_KEY_LENGTH,temp
+	arg mem_mesh_Network_Key,rega
+	arg MESH_EEP_NETWORK_KEY_OFFSET,regb
+	call iicd_read_eep_data
+	fetch 1,mem_mesh_last_IV_Index_byte
+	store 1,mem_mesh_IV_Index+3
+	rtn
+
+ali_mesh_chip_peripherals_load_application_key_from_eep:
+	arg MESH_EEP_APPLICATION_KEY_LENGTH,temp
+	arg mem_mesh_application_key,rega
+	arg MESH_EEP_APPLICATION_KEY_OFFSET,regb
+	branch iicd_read_eep_data
+
+ali_mesh_chip_peripherals_load_device_key_from_eep:
+	arg MESH_EEP_DEVICE_KEY_LENGTH,temp
+	arg mem_mesh_Device_Key,rega
+	arg MESH_EEP_DEVICE_KEY_OFFSET,regb
+	branch iicd_read_eep_data
+
+ali_mesh_chip_peripherals_load_reset_count_from_eep:
+	rtn
+
+ali_mesh_chip_peripherals_load_seq_from_eep:
+	arg MESH_EEP_SEQ_LENGTH,temp
+	arg mem_mesh_send_message_SEQ,rega
+	arg MESH_EEP_SEQ_OFFSET,regb
+	branch iicd_read_eep_data
+
+ali_mesh_chip_peripherals_load_subscription_from_eep:
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_SUBSCRIPTION
+	arg MESH_EEP_SUBSCRIPTION_TOTAL_LENGTH,temp
+	arg mem_mesh_subscription_eep_temp,rega
+	arg MESH_EEP_SUBSCRIPTION_OFFSET,regb
+	call iicd_read_eep_data
+	call mesh_get_element_info_config
+	arg mem_mesh_subscription_eep_temp,contr
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,rega
+ali_mesh_chip_peripherals_load_subscription_loop:
+	copy rega,contw
+	call memcpy16
+	copy regb,pdata
+	iadd rega,rega
+	loop ali_mesh_chip_peripherals_load_subscription_loop
+	rtn
+
+mesh_receive_config_appkey_add_cb:
+	fetch 1,mem_mesh_chip_select
+	beq MESH_CHIP_FROM_EEPROM,mesh_receive_config_appkey_add_eeprom_cb
+	beq MESH_CHIP_FROM_FLASH,mesh_receive_config_appkey_add_flash_cb
+mesh_receive_config_appkey_add_flash_cb:
+	call ali_mesh_chip_peripherals_save_network_key_from_flash
+	call ali_mesh_chip_peripherals_save_application_key_from_flash
+	branch ali_mesh_chip_peripherals_save_device_key_from_flash
+ali_mesh_chip_peripherals_save_network_key_from_flash:
+	arg MESH_EEP_NETWORK_KEY_LENGTH,temp
+	arg mem_mesh_Network_Key,rega
+	setarg MESH_FLASH_NETWORK_KEY_ADDR
+	branch spid_write_flash_data
+ali_mesh_chip_peripherals_save_application_key_from_flash:
+	arg MESH_EEP_APPLICATION_KEY_LENGTH,temp
+	arg mem_mesh_application_key,rega
+	setarg MESH_FLASH_APPLICATION_KEY_ADDR
+	branch spid_write_flash_data
+ali_mesh_chip_peripherals_save_device_key_from_flash:
+	arg MESH_EEP_DEVICE_KEY_LENGTH,temp
+	arg mem_mesh_Device_Key,rega
+	setarg MESH_FLASH_DEVICE_KEY_ADDR
+	branch spid_write_flash_data
+	
+mesh_receive_config_appkey_add_eeprom_cb:
+	call ali_mesh_chip_peripherals_save_network_key_from_eep
+	call ali_mesh_chip_peripherals_save_application_key_from_eep
+	branch ali_mesh_chip_peripherals_save_device_key_from_eep
+
+ali_mesh_chip_peripherals_save_network_key_from_eep:
+	arg MESH_EEP_NETWORK_KEY_LENGTH,temp
+	arg mem_mesh_Network_Key,rega
+	arg MESH_EEP_NETWORK_KEY_OFFSET,regb
+	branch iicd_write_protect_eep_data
+
+ali_mesh_chip_peripherals_save_application_key_from_eep:
+	arg MESH_EEP_APPLICATION_KEY_LENGTH,temp
+	arg mem_mesh_application_key,rega
+	arg MESH_EEP_APPLICATION_KEY_OFFSET,regb
+	branch iicd_write_protect_eep_data
+
+ali_mesh_chip_peripherals_save_device_key_from_eep:
+	arg MESH_EEP_DEVICE_KEY_LENGTH,temp
+	arg mem_mesh_Device_Key,rega
+	arg MESH_EEP_DEVICE_KEY_OFFSET,regb
+	branch iicd_write_protect_eep_data
+
+mesh_store_new_seq_data:
+	fetch 3,mem_mesh_send_message_SEQ
+	fetcht 3,mem_mesh_send_message_SEQ_temp
+	isub temp,null
+	nrtn positive
+	add pdata,128,pdata
+	store 3,mem_mesh_send_message_SEQ_temp
+	fetch 1,mem_mesh_chip_select
+	beq 1,ali_mesh_chip_peripherals_save_seq_from_eep
+ali_mesh_chip_peripherals_save_seq_from_flash:
+	arg MESH_EEP_SEQ_LENGTH,temp
+	arg mem_mesh_send_message_SEQ_temp,rega
+	setarg MESH_FLASH_MESSAGE_SEQ_ADDR
+	branch spid_write_flash_data
+ali_mesh_chip_peripherals_save_seq_from_eep:
+	arg MESH_EEP_SEQ_LENGTH,temp
+	arg mem_mesh_send_message_SEQ_temp,rega
+	arg MESH_EEP_SEQ_OFFSET,regb
+	branch iicd_write_protect_eep_data
+
+mesh_store_new_subscriptuion_list_data:
+	call ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep
+	fetch 1,mem_mesh_chip_select
+	beq 2,mesh_store_new_subscriptuion_list_data_from_flash
+	arg MESH_EEP_SUBSCRIPTION_TOTAL_LENGTH,temp
+	arg mem_mesh_subscription_eep_temp,rega
+	arg MESH_EEP_SUBSCRIPTION_OFFSET,regb
+	branch iicd_write_protect_eep_data
+mesh_store_new_subscriptuion_list_data_from_flash:
+	arg MESH_EEP_SUBSCRIPTION_TOTAL_LENGTH,temp
+	arg mem_mesh_subscription_eep_temp,rega
+	setarg MESH_FLASH_SUBSCRIPTION_ADDR
+	branch spid_write_flash_data
+
+ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep:
+	call mesh_get_element_info_config
+	arg mem_mesh_subscription_eep_temp,contw
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,rega
+ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep_loop:
+	copy rega,contr
+	call memcpy16
+	copy regb,pdata
+	iadd rega,rega
+	loop ali_mesh_chip_peripherals_save_subscriptuion_list_from_eep_loop
+	rtn
+
+mesh_clear_pairing_key:
+	fetch 1,mem_mesh_chip_select
+	beq 1,ali_mesh_chip_clear_pairing_key_from_eeprom
+ali_mesh_chip_clear_pairing_key_from_flash:
+	setarg 0x1e000
+	store 3,mem_spi_write_addr
+	branch spid_flash_erase_sector+2
+ali_mesh_chip_clear_pairing_key_from_eeprom:
+	rtn
+
+mesh_vendor_timming_chage_cb:
+	fetch 1,mem_mesh_chip_select
+	rtnne 2
+	setarg 0x1d000
+	arg mem_mesh_vendor_timer_timing_buffer, rega  //mem ptr
+	arg MESH_X_TIMERS,temp
+	mul32 temp,18,temp	
+	branch spid_write_flash_data
+
+ali_mesh_vendor_timer_message_read:
+	fetch 1,mem_mesh_chip_select
+	rtnne 2
+	arg mem_mesh_vendor_timer_timing_buffer, rega  //mem ptr
+	arg MESH_X_TIMERS,temp
+	mul32 temp,18,temp	
+	setarg 0x1d000
+	branch spid_read_flash
+
+ifdef mesh_debug_log
+//input:rega is tx data ptr
+//loopcnt is tx data length
+//regb is logging type
+logging_tx_debug:
+	arg LOGGING_DEBUG,temp
+	branch logging_tx_common
+
+//input:rega is tx data ptr
+//loopcnt is tx data length
+//regb is logging type
+logging_tx_info:
+	arg LOGGING_INFO,temp
+	branch logging_tx_common
+
+
+//input:rega is tx data ptr
+//loopcnt is tx data length
+//regb is logging type
+logging_tx_warning:
+	arg LOGGING_WARNING,temp
+	branch logging_tx_common
+
+
+//input:rega is tx data ptr
+//loopcnt is tx data length
+//regb is logging type
+logging_tx_error:
+	arg LOGGING_ERROR,temp
+	branch logging_tx_common
+
+
+//input:rega is tx data ptr
+//loopcnt is tx data length
+//regb is logging type
+logging_tx_critical:
+	arg LOGGING_CRITICAL,temp
+	branch logging_tx_common
+
+
+//input:rega is tx data ptr
+//loopcnt is tx data length
+//regb is logging type
+//temp is logging level
+logging_tx_common:
+	call push_stack
+	fetch 1,mem_mesh_core_feature
+	bbit1 MESH_FEATURE_DISABLE_LOG,pop_stack
+	call uarta_prepare_tx_register_push
+	setarg LUA_LOG_PACKET_HEADER
+	istore 1,contwu
+	setarg LUA_LOG_PAKCET_TYPE
+	istore 1,contwu
+	add loopcnt,4,pdata
+	istore 1,contwu
+	istorer temp,2,contwu
+	istorer regb,2,contwu
+	copy rega,contr
+	call uart_copy_tx_bytes_fast
+	setarg LUA_LOG_PACKET_TRAIL
+	istore 1,contwu
+	call uarta_send_register_pop
+	branch pop_stack
+
+
+/*
+	function name:uart init by mem
+	input:
+		mem_module_uart_rx_buffer、mem_module_uart_rx_buffer_end
+		mem_module_uart_tx_buffer、mem_module_uart_tx_buffer_end
+		mem_module_uarta_baud_rate
+		bit0 of mem_module_flag
+*/
+mesh_uart_init:
+	fetch 1,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_LOG
+	jam gpcfg_uart_txd,core_gpio_conf+11
+	jam gpcfg_uart_rxd|gpcfg_pullup,core_gpio_conf+12
+	call mesh_uart_init_buffer
+	arg 921600,temp
+	call uarta_calc_baud_rate_config
+	call uart_clock_select_main_freq_crystal
+	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
+	storet 1,core_uart_ctrl
+	rtn
+
+mesh_uart_init_buffer:
+	setarg 0x4e00
+	store 2,mem_pdatatemp
+	setarg 0x4eff
+	istore 2,contw
+	setarg 0x4f00
+	istore 2,contw
+	setarg 0x4fff
+	istore 2,contw
+	fetch 8,mem_pdatatemp
+	branch uarta_init_dma_mem
+endif
+
+
Index: program/mesh_protocol_stack/mesh_control_ble_advertising.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_control_ble_advertising.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_control_ble_advertising.prog	(working copy)
@@ -0,0 +1,222 @@
+
+//mesh鎺у埗ble advertising骞挎挱閫昏緫鐨勪富娴佺▼
+ali_mesh_control_ble_adv_process:
+	call ali_mesh_ble_adv
+	branch ali_mesh_control_ble_adv_tmall_packet
+
+
+//mesh 鎺у埗ble advertising 骞挎挱timer娴佺▼
+ali_mesh_control_ble_adv_timer_process:
+	call ali_mesh_advertising_unprovisioned_timer_interval_timer
+	branch ali_mesh_advertising_unprovisioned_timer
+
+//mesh鎵撳紑ble advertising
+ali_mesh_control_ble_advertising_on_advertising:
+	jam DEVICE_BEACON_ON,mem_mesh_advertising_unprovisioned_device_beacon_switch
+	rtn
+
+//mesh鍏抽棴ble advertising
+ali_mesh_control_ble_advertising_off_advertising:
+	jam DEVICE_BEACON_OFF,mem_mesh_advertising_unprovisioned_device_beacon_switch
+	rtn
+
+
+/*
+	mesh鎺у埗鍙戦乽nprovisioned device beacon advertising
+	閰嶇綉闃舵鍖呭凡缁忛厤缃戝悗tmall鍥炲鍖
+*/
+ali_mesh_control_ble_adv_tmall_packet:
+	arg ali_mesh_control_ble_adv_tmall_packet_send_package,regb
+	arg MESH_ADV_TMALL_MESSAGE_INTERVAL,rega
+	arg mesh_ble_adv_tmall,queue
+	branch ali_mesh_chip_timer_check_with_random_timer
+
+
+
+
+//鎺у埗涓嶅悓鐘舵佸彂鍖呮儏鍐
+ali_mesh_control_ble_adv_tmall_packet_send_package:
+	fetch 1,mem_mesh_provisioned_flag
+	beq UNPROVISIONED_BEACON_STATUS,ali_mesh_control_ble_advertising_send_device_beacon_packet
+	beq SILENCE_BEACON_STATUS,ali_mesh_control_ble_advertising_send_device_silence_beacon_packet
+	beq PAIRING_STATUS,ali_mesh_control_ble_advertising_send_pairing_packet
+	beq PAIRED_STATUS,ali_mesh_control_ble_advertising_send_paired_packet
+	branch ali_mesh_control_ble_advertising_send_paired_packet
+
+ali_mesh_control_ble_advertising_send_device_silence_beacon_packet:
+	jam 0,mem_le_adv_enable
+	branch ali_mesh_control_ble_advertising_off_advertising
+
+ali_mesh_control_ble_advertising_send_paired_packet:
+	call ali_mesh_advertising_bearer_layer_init_queue_param
+	arg mem_mesh_queue_ele_temp,rega
+	call queue_get_new_ele
+	nrtn user
+	fetch 1,mem_mesh_upper_tran_layer_packet_type
+	bbit1 BIT_UUPER_TRAN_PROXY_MESSAGE,ali_mesh_control_ble_advertising_send_paired_packet_end_duration_proxy
+	fetch 1,mem_mesh_queue_ele_duration
+	pincrease -1
+	istore 1,regb
+	and pdata,0x7f,pdata	
+	call ali_mesh_control_ble_advertising_send_paired_packet_end_duration,blank	//鍛ㄦ湡鍒颁涪寮
+	fetch 1,mem_mesh_upper_tran_layer_packet_type
+	rtnbit0 BIT_UPPER_TRAN_TMALL_MESSAGE		
+	arg mem_mesh_adv_data_len,contw
+	arg mem_mesh_queue_ele_len,contr
+	call memcpy32
+	branch mesh_le_send_adv
+
+ali_mesh_control_ble_advertising_send_paired_packet_end_duration_proxy:
+	arg mem_mesh_queue_ele_duration,rega
+	call queue_pop
+	call queue_empty
+	nrtn blank
+
+	call ali_mesh_send_paired_packet_init_advertising
+	branch ali_mesh_control_ble_advertising_off_advertising
+	
+
+ali_mesh_control_ble_advertising_send_paired_packet_end_duration:
+	arg mem_mesh_queue_ele_duration,rega
+	call queue_pop
+	call queue_empty
+	nrtn blank
+	
+	jam ADV_PAIRING_MESH_MESSAGE_INTERVAL,mem_mesh_advertising_unprovisioned_device_beacon_interval
+	branch ali_mesh_control_ble_advertising_off_advertising
+
+ali_mesh_send_paired_packet_init_advertising:
+	jam NULL_PACKET_ADVERTISING,mem_mesh_upper_tran_layer_packet_advertising
+	rtn
+
+
+ali_mesh_control_ble_advertising_send_device_beacon_packet:
+	call ali_mesh_config_device_uuid_by_three_tuple
+	call ali_mesh_send_Unprovisioned_Beacons_tmall
+	call ali_mesh_control_ble_advertising_device_beacon_check_duration
+	nrtn zero			//in advertising beacon duration
+	fetch 1,mem_mesh_provisioned_flag
+	beq SILENCE_BEACON_STATUS,ali_mesh_end_advertising_silence_device_beacon_packet
+	beq UNPROVISIONED_BEACON_STATUS,ali_mesh_end_advertising_unprovisioned_device_beacon_packet
+	rtn
+
+
+//骞挎挱涓娆＄敓瀛樺懆鏈熷噺1
+//output:zero is end of duration
+ali_mesh_control_ble_advertising_device_beacon_check_duration:
+	fetch 1,mem_mesh_advertising_unprovisioned_device_beacon_duration
+	add pdata,-1,pdata
+	store 1,mem_mesh_advertising_unprovisioned_device_beacon_duration
+	rtn
+
+//闈欓粯骞挎挱鐢熷瓨鍛ㄦ湡瀹屾垚鍏抽棴骞挎挱
+ali_mesh_end_advertising_silence_device_beacon_packet:
+	jam ADV_SILENCE_DEVICE_BEACON_INTERVAL,mem_mesh_advertising_unprovisioned_device_beacon_interval
+	branch ali_mesh_control_ble_advertising_off_advertising
+	
+//鏈厤缃戝箍鎾敓瀛樺懆鏈熷畬鎴愬叧闂箍鎾
+ali_mesh_end_advertising_unprovisioned_device_beacon_packet:
+	jam ADV_UNPROVISIONED_DEVICE_BEACON_DURATION,mem_mesh_advertising_unprovisioned_device_beacon_interval
+	branch ali_mesh_control_ble_advertising_off_advertising
+
+
+ali_mesh_control_ble_advertising_send_pairing_packet:
+	branch mesh_le_send_adv
+
+/*
+	娉ㄥ唽瀹氭椂鍣ㄥ姛鑳
+*/
+ali_mesh_chip_timer_check_with_random_timer:
+	fetch 1,mem_mesh_advertising_unprovisioned_device_beacon_switch
+	rtnne DEVICE_BEACON_ON
+ali_mesh_chip_timer_check_with_random_timer_continue:
+	random pdata
+	and pdata,0x07,pdata
+	iadd rega,rega
+//input:queue is timer id
+//rega is timer count
+//regb is cb ptr
+ali_mesh_chip_timer_check:
+	call timer_check
+	nrtn blank
+	copy rega,pdata
+	call timer_init
+	copy regb,pdata
+	branch callback_func
+
+
+//闈欓粯骞挎挱瀹氭椂鍣10min鍚庤繘鍏ラ潤榛樺箍鎾姸鎬
+ali_mesh_advertising_unprovisioned_timer:
+	arg mem_mesh_advertising_unprovisioned_device_beacon_timer,regc
+	arg ali_mesh_advertising_unprovisioned_timeout, regb
+	branch timer_single_step_2B
+
+//瀹氭椂鍣ㄨ秴鏃跺鏋滃綋鍓嶅浜庢湭閰嶇綉骞挎挱鐘舵侊紝杩涘叆闈欓粯骞挎挱
+ali_mesh_advertising_unprovisioned_timeout:
+	fetch 1,mem_mesh_provisioned_flag
+	rtnne UNPROVISIONED_BEACON_STATUS
+	fetch 1,mem_mesh_UUID_FeatureFlag
+	set1 BIT_SILENCE_ADV_FLAG,pdata
+	store 1,mem_mesh_UUID_FeatureFlag
+	jam SILENCE_BEACON_STATUS,mem_mesh_provisioned_flag
+	branch ali_mesh_send_silence_device_beacon_init_advertising
+
+
+//鎺у埗骞挎挱鍙戦侀棿闅欑殑timer
+//涓嶅悓鐘舵佸箍鎾棿闅斾笉涓鏍
+ali_mesh_advertising_unprovisioned_timer_interval_timer:
+	arg mem_mesh_advertising_unprovisioned_device_beacon_interval,regc
+	arg ali_mesh_advertising_unprovisioned_timer_interval_timeout,regb
+	branch timer_single_step
+
+//鎺у埗骞挎挱鍙戦佽秴鏃
+//澶勪簬鏈厤缃戝箍鎾垨鑰呴潤榛樺箍鎾姸鎬侊紝杩涘叆涓嬩竴娆″箍鎾
+//澶勪簬閰嶇綉鐘舵侊紝娓呴櫎閰嶇綉鐘舵
+ali_mesh_advertising_unprovisioned_timer_interval_timeout:
+	fetch 1,mem_mesh_provisioned_flag
+//	beq SILENCE_BEACON_STATUS,ali_mesh_send_silence_device_beacon_init_advertising
+	beq UNPROVISIONED_BEACON_STATUS,ali_mesh_send_unprovisioned_device_beacon_init_advertising
+	beq PAIRED_STATUS,ali_mesh_send_paired_packet_init_advertising
+	rtn
+
+ali_mesh_stop_send_indication_packet:
+	call ali_mesh_advertising_bearer_layer_queue_init
+	call ali_mesh_upper_transport_layer_queue_pop
+	jam 0,mem_mesh_advertising_unprovisioned_device_beacon_interval
+	call ali_mesh_control_ble_advertising_off_advertising
+	branch ali_mesh_send_paired_packet_init_advertising
+
+
+ali_mesh_send_unprovisioned_device_beacon_init_advertising:
+	jam ADV_UNPROVISIONED_DEVICE_BEACON_DURATION,mem_mesh_advertising_unprovisioned_device_beacon_duration
+	branch ali_mesh_control_ble_advertising_on_advertising
+
+
+ali_mesh_send_silence_device_beacon_init_advertising:
+	jam ADV_SILENCE_DEVICE_BEACON_DURATION,mem_mesh_advertising_unprovisioned_device_beacon_duration
+	branch ali_mesh_control_ble_advertising_on_advertising
+
+ali_mesh_network_layer_control_relay_packet:
+	arg ali_mesh_network_layer_control_send_relay_packet,regb
+	arg MESH_ADV_RELAY_MESSAGE_INTERVAL,rega
+	arg mesh_ble_relay_timer,queue
+	branch ali_mesh_chip_timer_check_with_random_timer_continue
+
+ali_mesh_network_layer_control_send_relay_packet:
+	fetch 1,mem_mesh_upper_tran_layer_packet_advertising
+	nrtn blank
+	call ali_mesh_network_layer_init_queue_param
+	arg mem_mesh_queue_ele_temp,rega
+	call queue_get_new_ele
+	nrtn user
+	fetch 1,mem_mesh_queue_ele_duration
+	pincrease -1
+	istore 1,regb
+	call queue_pop,blank	
+	arg mem_mesh_adv_data_len,contw
+	arg mem_mesh_queue_ele_len,contr
+	call memcpy32
+	branch mesh_le_send_adv
+
+
+
Index: program/mesh_protocol_stack/mesh_encrypt_function.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_encrypt_function.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_encrypt_function.prog	(working copy)
@@ -0,0 +1,650 @@
+/*
+	mesh鍔犲瘑绠楁硶灞傦紝鍖呭惈閰嶇綉闃舵鐨勭畻娉曞拰閰嶇綉鍚庣殑绠楁硶
+*/
+
+
+/*
+	provision random杈撳叆锛岃绠楀嚭provision confirmation绛夊弬鏁
+*/
+
+ali_mesh_encrypt_calc_random_data:
+	call ali_mesh_encrypt_calc_random_data_calc_ConfirmationKey
+	call ali_mesh_encrypt_calc_random_data_calc_AuthValueProv
+	call ali_mesh_encrypt_calc_random_data_calc_AuthValueDevice
+	call ali_mesh_encrypt_calc_random_data_calc_ConfirmationCloud
+	call ali_mesh_encrypt_calc_random_data_calc_ConfirmationDevice
+	branch ali_mesh_encrypt_calc_random_data_calc_DeviceKey
+
+
+//calc confirmation key
+//ConfirmationKey=SHA256(Random A||RandomB||"ConfirmationKey")[0:15]
+ali_mesh_encrypt_calc_random_data_calc_ConfirmationKey:
+	call ali_mesh_encrypt_load_randomAB_to_sha256
+	arg mem_mesh_sha256_ConfirmationKey_ascii,contr
+	arg 0xf,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii
+	call ali_mesh_encrypt_base_function_sha256_calc
+	arg memresult,contr
+	arg mem_mesh_Confirmationkey,contw
+	branch memcpy16
+
+
+//calc Auth value prov
+//AuthValueProv = SHA256(PID,MAC,Secret,random B||random A)[0:15]
+ali_mesh_encrypt_calc_random_data_calc_AuthValueProv:
+	call ali_mesh_encrypt_load_three_tuple_to_sha256
+	call ali_mesh_encrypt_load_randomBA_to_sha256
+ifdef V1_2
+	call ali_mesh_encrypt_load_randomBA_to_sha256
+endif
+	call ali_mesh_encrypt_base_function_sha256_calc
+	arg memresult,contr
+	arg mem_mesh_AuthValueProv,contw
+	branch memcpy16
+
+//calc Auth Value Device
+//AuthValueDevice= SHA256(PID,MAC,Secret,random B||random A)[0:15]
+ali_mesh_encrypt_calc_random_data_calc_AuthValueDevice:
+	call ali_mesh_encrypt_load_three_tuple_to_sha256
+	call ali_mesh_encrypt_load_randomAB_to_sha256
+ifdef V1_2
+	call ali_mesh_encrypt_load_randomAB_to_sha256
+endif
+	call ali_mesh_encrypt_base_function_sha256_calc
+	arg memresult,contr
+	arg mem_mesh_AuthValueDevice,contw
+	branch memcpy16
+
+// calc Confirmation Cloud
+//Confirmation Cloud=AES-CMAC(Random B || Random A || AuthValueProv)
+//k=ConfirmationKey
+ali_mesh_encrypt_calc_random_data_calc_ConfirmationCloud:
+	fetch 8,mem_mesh_provisioning_random_A
+	store 8,mem_mesh_ConfirmationCloud_RandomA
+	fetch 8,mem_mesh_provisioning_random_B
+	store 8,mem_mesh_ConfirmationCloud_RandomB
+	
+	arg mem_mesh_calc_ConfirmationCloud_data,contr
+	arg mem_mesh_Confirmationkey,rega
+	arg mem_mesh_ConfirmationCloud,alarm
+	branch ali_mesh_encrypt_base_function_AES_CMAC_32Byte
+
+
+// calc confirmation Device
+//Confirmation Device=AES-CMAC(Random A || Random B || AuthValueDevice)
+//k=ConfirmationKey
+ali_mesh_encrypt_calc_random_data_calc_ConfirmationDevice:
+	arg mem_mesh_calc_ConfirmationDevice_data,contr
+	arg mem_mesh_Confirmationkey,rega
+	arg mem_mesh_ConfirmationDevice,alarm
+	branch ali_mesh_encrypt_base_function_AES_CMAC_32Byte
+
+
+//calc Device Key
+//DeviceKey = SHA256(ConfirmationCloud||"DeviceKey")[0:15]
+ali_mesh_encrypt_calc_random_data_calc_DeviceKey:
+//	call ice_break
+	arg mem_mesh_ConfirmationCloud,contr
+	arg 0x10,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii
+	arg mem_mesh_sha256_DeviceKey_ascii,contr
+	arg 9,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii
+	call ali_mesh_encrypt_base_function_sha256_calc
+	arg memresult,contr
+	arg mem_mesh_Device_Key,contw
+	branch memcpy16
+
+
+ali_mesh_encrypt_load_randomBA_to_sha256:
+	call ali_mesh_encrypt_load_randomB_to_sha256
+ali_mesh_encrypt_load_randomA_to_sha256:
+	arg mem_mesh_provisioning_random_A,contr
+	branch ali_mesh_encrypt_base_function_sha256_load_data_64bit
+
+ali_mesh_encrypt_load_randomAB_to_sha256:
+	call ali_mesh_encrypt_load_randomA_to_sha256
+ali_mesh_encrypt_load_randomB_to_sha256:
+	arg mem_mesh_provisioning_random_B,contr
+	branch ali_mesh_encrypt_base_function_sha256_load_data_64bit
+
+
+ali_mesh_encrypt_load_three_tuple_to_sha256:
+	arg mem_mesh_three_tuple_ProductID,contr
+	arg 4,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma
+	arg mem_mesh_three_tuple_MAC,contr
+	arg 6,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma
+	arg mem_mesh_three_tuple_secret,contr
+	arg 0x10,loopcnt
+ifdef V1_2
+	call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma
+else
+	call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii
+endif
+	call ali_mesh_encrypt_base_function_sha256_check_first_load_data
+	branch ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma+2
+
+
+//calc provisioning data
+//Encrupted provisioning data = prov_data XOR SessionKey
+ali_mesh_encrypt_calc_provisioning_data:
+	call ali_mesh_encrypt_calc_provisioning_data_calc_SessionKey
+//	branch ali_mesh_encrypt_calc_provisioning_data_xor_prov_data
+ali_mesh_encrypt_calc_provisioning_data_xor_prov_data:
+	arg mem_mesh_Encrypt_Provisioning_Data,rega
+	arg memresult,regb
+	arg 0xb,loopcnt
+ali_mesh_encrypt_calc_provisioning_data_xor_prov_data_loop:
+	ifetch 2,rega
+	ifetcht 2,regb
+	ixor temp,pdata
+	istore 2,rega
+	increase 2,rega
+	increase 2,regb
+	loop ali_mesh_encrypt_calc_provisioning_data_xor_prov_data_loop
+	rtn
+
+
+//calc SessionKey
+//SessionKey = SHA256(ConfirmationCloud||"SessionKey")[0:15]
+//output:sessionKey in memresult
+ali_mesh_encrypt_calc_provisioning_data_calc_SessionKey:
+	arg mem_mesh_ConfirmationCloud,contr
+	arg 0x10,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii
+	arg mem_mesh_sha256_SessionKey_ascii,contr
+	arg 0xa,loopcnt
+	call ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii
+	branch ali_mesh_encrypt_base_function_sha256_calc
+
+
+
+ali_mesh_encrypt_calc_network_key_by_k2:
+	arg mem_mesh_Network_Key,contr
+	arg mem_k2_N,contw
+	call memcpy16
+
+/************k2 function*************/
+//input:mem_k2_N N data
+ali_mesh_encrypt_base_function_k2:
+/*******************generate T*************************/
+	arg mem_k2_N,contr
+	arg mem_k2_SALT,rega
+	arg mem_k2_T,alarm
+	call ali_mesh_encrypt_base_function_AES_CMAC_16Byte
+/*******************generate T1************************/
+	arg mem_k2_T1,alarm
+	arg 0x01,regb
+	setarg 0
+	call ali_mesh_encrypt_base_function_k2_AES_CMAC_T
+	fetch 1,mem_k2_T1+15
+	and pdata,0x7f,pdata
+	store 1,mem_k2_NID
+/*******************generate T2************************/
+	arg mem_k2_T2,alarm
+	arg 0x02,regb
+	setarg 0x10
+	arg mem_k2_T1,rega
+	call ali_mesh_encrypt_base_function_k2_AES_CMAC_T
+/*******************generate T3************************/
+	arg mem_k2_T3,alarm
+	arg 0x03,regb
+	setarg 0x10
+	arg mem_k2_T2,rega
+	branch ali_mesh_encrypt_base_function_k2_AES_CMAC_T
+
+ali_mesh_encrypt_base_function_k4:
+/*******************generate T*************************/
+	arg mem_mesh_application_key,contr
+	arg mem_k4_SALT,rega
+	arg mem_k4_T,alarm
+	call ali_mesh_encrypt_base_function_AES_CMAC_16Byte
+	arg mem_k4_id6_01,contr
+	arg mem_k4_T,rega
+	arg mem_k4_k4N,alarm
+	setarg 4
+	call ali_mesh_encrypt_base_function_AES_CMAC
+	fetch 1,mem_k4_k4N+15
+	and pdata,0x3f,pdata
+	set1 TRANSPORT_HEAD_BIT_AKF,pdata
+	store 1,mem_mesh_transport_AID
+	rtn
+
+ali_mesh_encrypt_base_function_k3:
+/*******************generate T*************************/
+	arg mem_mesh_Network_Key,contr
+	arg mem_k3_SALT,rega
+	arg mem_k3_T,alarm
+	call ali_mesh_encrypt_base_function_AES_CMAC_16Byte
+	arg mem_k3_id64_01,contr
+	arg mem_k3_T,rega
+	arg mem_k3_k4N,alarm
+	setarg 5
+	call ali_mesh_encrypt_base_function_AES_CMAC
+
+//	call ali_mesh_proxy_init_adv
+	
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+	jam 1,mem_le_adv_enable
+	rtn
+
+
+//********* network PDU header obfuscation *********//
+ali_mesh_encrypt_obfuscation_deceypt_send_message:
+	arg mem_mesh_send_upper_layer_CTL_and_TTL,rega
+	fetch 7,mem_mesh_send_upper_layer_DST	
+	branch ali_mesh_encrypt_obfuscation_deceypt
+ali_mesh_encrypt_obfuscation_deceypt_recevie_message:
+	arg mem_mesh_message_TTL,rega
+	fetch 7,mem_mesh_message_DST
+ali_mesh_encrypt_obfuscation_deceypt:
+	store 7,mem_mesh_Privacy_Plaintext_Privacy_Random
+	setarg 0
+	store 5,mem_mesh_Privacy_Plaintext_Zero_String
+	call ali_mesh_encrypt_generate_PECB
+	fetch 6,mem_mesh_PECB
+	ifetcht 6,rega
+	ixor temp,pdata
+	istore 6,rega
+	rtn
+
+ali_mesh_encrypt_generate_PECB:
+ali_mesh_encrypt_generate_privacy_random:
+	fetch 4,mem_mesh_IV_Index
+	store 4,mem_mesh_Privacy_Plaintext_IV_Index
+// generate PECB with AES-128/ function e
+ali_mesh_encrypt_base_function_generate_PECB:
+	arg mem_k2_PrivacyKey,contr
+	call load_key
+	arg mem_mesh_Privacy_Plaintext,contr
+	call load_data128
+	call do_aes_ocb
+	arg mem_mesh_PECB,contw
+	branch store_aes_result
+
+
+/************sha256 function*************/
+//input  : (big endian)
+// data addr : contr
+// point : call clear_sha256_chunk
+ali_mesh_encrypt_base_function_sha256_load_data_64bit:
+	arg 8,loopcnt
+//input  : (big endian)
+// data addr : contr
+// data len : loopcnt
+// point : call clear_sha256_chunk
+ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii:
+	call ali_mesh_encrypt_base_function_sha256_check_first_load_data
+	call ali_mesh_encrypt_base_function_hex2ascii
+	branch ali_mesh_encrypt_base_function_sha256_store_dataptr
+ali_mesh_encrypt_base_function_sha256_load_data_without_hex2ascii:
+	call ali_mesh_encrypt_base_function_sha256_check_first_load_data
+	call memcpy
+	branch ali_mesh_encrypt_base_function_sha256_store_dataptr
+ali_mesh_encrypt_base_function_sha256_load_data_with_hex2ascii_add_comma:
+	call ali_mesh_encrypt_base_function_sha256_check_first_load_data
+	call ali_mesh_encrypt_base_function_hex2ascii
+	setarg COMMA
+	istore 1,contw
+ali_mesh_encrypt_base_function_sha256_store_dataptr:
+	copy contw,pdata
+	store 2,mem_mesh_sha256_data_end_addr
+	rtn
+ali_mesh_encrypt_base_function_sha256_check_first_load_data:
+	copy contr,temp
+	copy loopcnt,rega
+	fetch 2,mem_mesh_sha256_data_end_addr
+	copy pdata,contw
+	fetch 1,mem_mesh_sha256_load_first_data_flag
+	call ali_mesh_encrypt_base_function_sha256_first_load_data,blank
+	copy temp,contr
+	copy rega,loopcnt
+	rtn
+ali_mesh_encrypt_base_function_sha256_first_load_data:
+	jam 1,mem_mesh_sha256_load_first_data_flag
+	call ali_mesh_encrypt_base_function_sha256_clear_data_chunk				
+	arg mem_mesh_sha256_chunk_start,contw
+	rtn
+
+ali_mesh_encrypt_base_function_sha256_clear_data_chunk:
+	arg 0x100,loopcnt
+	arg mem_mesh_sha256_chunk_start,contw
+	branch memset0
+
+ // output :
+ // sha256 result : memresult(big endian)
+ali_mesh_encrypt_base_function_sha256_calc:
+ 	call ali_mesh_encrypt_base_function_sha256_load_data_end
+ ifdef mesh_debug_log
+ 	arg MESH_ENCRYPT_SHA256_FUNCTION_INPUT,regb
+	arg mem_mesh_sha256_chunk_start,rega
+	fetchr loopcnt,8,mem_mesh_sha256_data_len_byte
+	call logging_tx_debug
+endif
+	call ali_mesh_encrypt_base_function_sha256_input_data_init_inverse
+
+	setarg mem_mesh_sha256_chunk_start
+	store 2,mem_mesh_sha256_chunk_ptr
+	call sha_init
+//	call ice_break
+ali_mesh_encrypt_base_function_sha256_calc_loop:
+	fetch 2,mem_mesh_sha256_chunk_ptr
+	copy pdata,contr
+	arg mem_dat,contw
+	call memcpy64
+	call sha
+	fetch 2,mem_mesh_sha256_chunk_ptr
+	pincrease 64
+	store 2,mem_mesh_sha256_chunk_ptr
+	fetch 1,mem_mesh_sha256_chunk_count
+	pincrease -1
+	store 1,mem_mesh_sha256_chunk_count
+	nbranch ali_mesh_encrypt_base_function_sha256_calc_loop,blank
+	call sha_result
+	arg memresult,rega
+	arg 0x20,loopcnt
+	call inverse_data
+ ifdef mesh_debug_log
+ 	arg MESH_ENCRYPT_SHA256_FUNCTION_RESULT,regb
+	arg memresult,rega
+	arg 0x20,loopcnt
+	call logging_tx_debug
+endif
+	rtn
+
+
+ali_mesh_encrypt_base_function_sha256_load_data_end:
+	jam 0,mem_mesh_sha256_load_first_data_flag
+	fetch 2,mem_mesh_sha256_data_end_addr
+	copy pdata,contw
+	arg 0x80,temp	//绗竴涓猙it琛1锛屽悗闈㈣ˉ0
+	istoret 1,contw
+	arg mem_mesh_sha256_chunk_start,temp
+	isub temp,pdata
+	store 8,mem_mesh_sha256_data_len_byte
+	//璁＄畻bit鏁
+	lshift3 pdata,temp
+	storet 8,mem_mesh_sha256_data_len_bit
+	rshift4 pdata,regc
+	rshift2 regc,regc
+	and pdata,0x3f,pdata
+	sub pdata,55,null
+//55-(len mod 63)<0,鍐呭瓨濉厖448浠ュ悗鐨勶紝闇瑕佸～鍏呭埌绗簩鍧
+	ncall ali_mesh_encrypt_base_function_sha256_add_chunk,positive
+	add regc,1,pdata
+	store 1,mem_mesh_sha256_chunk_count
+	mul32 pdata,64,rega		//璁＄畻鍧楃殑鏁伴噺鍦板潃
+	lshift4 pdata,regc			//璁＄畻4byte鍖呯殑鏁伴噺
+	increase -1,regc			//鏈濂戒竴涓寘闀垮害涓嶄氦鎹
+	setarg mem_mesh_sha256_chunk_start + DECREASED_FOUR
+	iadd rega,rega
+	fetch 4,mem_mesh_sha256_data_len_bit
+	istore 4,rega
+	rtn
+
+
+//澧炲姞鍧楁暟閲
+ali_mesh_encrypt_base_function_sha256_add_chunk:
+	increase 1,regc
+	rtn
+	
+ali_mesh_encrypt_base_function_sha256_input_data_init_inverse:
+	arg mem_mesh_sha256_chunk_start,rega
+
+//姣4涓瓧鑺傦紝闇瑕侀珮浣庝綅浜ゆ崲涓涓
+//input :
+// data addr : rega
+ali_mesh_encrypt_base_function_sha256_data_inverse_4Byte:
+	arg 4,loopcnt
+	call inverse_data
+	increase 2,rega	
+	add regc,-1,regc
+	nbranch ali_mesh_encrypt_base_function_sha256_data_inverse_4Byte,zero
+	rtn
+
+
+// input : 
+// data ptr : contr
+// data save ptr : contw 
+// data len : loopcnt
+ali_mesh_encrypt_base_function_hex2ascii:
+	ifetch 1,contr
+	rshift4 pdata,temp
+	call ali_mesh_encrypt_base_function_dialog2uchar
+	istoret 1,contw
+	and pdata,0x0f,temp
+	call ali_mesh_encrypt_base_function_dialog2uchar
+	istoret 1,contw
+	loop ali_mesh_encrypt_base_function_hex2ascii
+	rtn
+ali_mesh_encrypt_base_function_dialog2uchar:
+	sub temp,9,null
+	branch ali_mesh_encrypt_base_function_dialog2uchar_num,positive
+	add temp,87,temp
+	rtn
+ali_mesh_encrypt_base_function_dialog2uchar_num:	
+	add temp,48,temp
+	rtn
+
+
+ali_mesh_encrypt_base_function_AES_CMAC_32Byte:
+	setarg 0x20 
+	branch ali_mesh_encrypt_base_function_AES_CMAC
+
+ali_mesh_encrypt_base_function_AES_CMAC_16Byte:
+	setarg 0x10
+	branch ali_mesh_encrypt_base_function_AES_CMAC
+
+
+//pdata:data length
+//regb:last data
+ali_mesh_encrypt_base_function_k2_AES_CMAC_T:
+	fetcht 1,mem_k2_P_len
+	increase 1,temp
+	iadd temp,temp
+	storet 1,mem_AES_CMAC_data_length
+	copy rega,contr
+	copy pdata,loopcnt
+	call memcpy_fast
+	fetcht 1,mem_k2_P_len
+	copy temp,loopcnt
+	call memcpy
+	copy regb,pdata
+	istore 1,contw
+	arg mem_k2_T,rega
+	branch ali_mesh_encrypt_base_function_AES_CMAC + 3
+
+
+//input:
+//pdata:data length
+//contr:data prt
+//rega:key ptr
+//output:
+//alarm:output prt
+ali_mesh_encrypt_base_function_AES_CMAC:
+	store 1,mem_AES_CMAC_data_length
+	copy pdata,loopcnt
+	call memcpy_fast
+	copy rega,contr
+	arg mem_AES_CMAC_k,contw
+	call memcpy16
+ifdef mesh_debug_log
+ 	arg MESH_ENCRYPT_AES_CMAC_FUNCTION_INPUT_M,regb
+	arg mem_dat,rega
+	fetchr loopcnt,1,mem_AES_CMAC_data_length
+	call logging_tx_debug
+ 	arg MESH_ENCRYPT_AES_CMAC_FUNCTION_INPUT_K,regb
+	arg mem_AES_CMAC_k,rega
+	arg 16,loopcnt
+	call logging_tx_debug
+endif
+	call function_AES_CMAC
+	copy alarm,contw
+	call store_aes_result
+ifdef mesh_debug_log
+ 	arg MESH_ENCRYPT_AES_CMAC_FUNCTION_RESULT,regb
+	copy alarm,rega
+	arg 16,loopcnt
+	call logging_tx_debug
+endif
+	rtn
+
+
+//////**AES-CCM**////////
+ali_B0_block_generate:
+ 	fetcht 1,mem_ccm_type
+ 	branch  ali_block_generate
+ali_A_block_generate:
+	force 0x01,temp
+ali_block_generate:
+	force regidx_data,regext_index
+	fetch 2,mem_nonce_ptr
+	copy pdata,contr
+	ifetch 3,contr
+	lshift8 pdata,pdata
+	ior temp, regext
+	increase 1,regext_index
+	ifetch 4,contr
+	copy pdata,regext
+	increase 1,regext_index
+	ifetch 4,contr
+	copy pdata,regext
+	increase 1,regext_index
+	byteswap rega,regext
+	lshift16 regext,regext
+	ifetch 2,contr
+	ior regext,regext
+	rtn
+ali_generate_mic:
+	fetch 1,mem_ccm_data_len
+	copy pdata,rega
+	call ali_B0_block_generate
+	call do_aes_ocb
+	force regidx_result,regext_index
+	deposit regext
+	copy rega,loopcnt
+	fetcht 2,mem_ccm_data_ptr
+	copy temp,contr
+	call padding_data
+	branch generate_mic_loop
+/*
+function name:ali_CCM_encrypt
+input:pdata is the encrypt data length
+temp is encrypt data ptr
+*/
+ali_CCM_encrypt_64Bit:
+	jam MIC_SIZE_64BIT,mem_ccm_type
+	branch ali_CCM_encrypt_function
+ali_CCM_encrypt:
+	jam MIC_SIZE_32BIT,mem_ccm_type
+	branch ali_CCM_encrypt_function
+ali_CCM_encrypt_function:
+	store 1,mem_ccm_data_len
+	storet 2,mem_ccm_data_ptr
+	bpatchx patch34_5,mem_patch34
+	call ali_generate_mic
+	force regidx_xor,regext_index
+	iforce regext
+	force regidx_result+1,regext_index
+	copy regext,pdata
+	force regidx_xor+1,regext_index
+	iforce regext
+	force 0,rega
+	copy temp,regc
+	call ali_A_block_generate
+	call do_aes_ctr
+	call ali_fetcht_ccm_mic
+	storet 8,mem_ccm_mic
+	fetch 1,mem_ccm_data_len
+	copy pdata,regb
+	call ali_aes_crypt_data
+	fetcht 1,mem_ccm_data_len
+	fetch 2,mem_ccm_data_ptr
+	iadd temp,rega
+	fetcht 8,mem_ccm_mic
+	istoret 4,rega
+	fetch 1,mem_ccm_type
+	sub pdata,MIC_SIZE_32BIT,pdata
+	rtn blank
+	istoret 8,rega
+	rtn
+/*
+function name:ali_CCM_decrypt_function
+input:pdata is the encrypt data length
+temp is encrypt data ptr
+*/
+ali_CCM_decrypt_64Bit:
+	jam MIC_SIZE_64BIT,mem_ccm_type
+	branch ali_CCM_decrypt_function
+ali_CCM_decrypt:
+	jam MIC_SIZE_32BIT,mem_ccm_type
+	branch ali_CCM_decrypt_function
+
+/*
+1 瑙ｅ瘑锛
+2 绠桵IC
+3 鎶婄畻鍑烘潵鐨凪IC鍜屾敹鍒扮殑MIC瀵规瘮
+4 MIC鍚堟硶锛宺tn zero = 1;
+*/	
+ali_CCM_decrypt_function:
+	store 1,mem_ccm_data_len
+	storet 2,mem_ccm_data_ptr
+	copy temp,regc
+	copy pdata,regb
+	iadd regc,contr
+	bpatchx patch34_6,mem_patch34
+	ifetch 8,contr
+	force regidx_xor,regext_index
+	iforce regext
+	force regidx_xor+1,regext_index
+	rshift32 pdata,pdata
+	iforce regext
+	force 0,rega
+	call ali_A_block_generate
+	call do_aes_ctr
+	call ali_fetcht_ccm_mic
+	storet 8,mem_ccm_mic
+	call ali_aes_crypt_data
+	call ali_generate_mic
+	call ali_fetcht_ccm_mic
+	fetch 1,mem_ccm_type
+	beq MIC_SIZE_64BIT,ali_CCM_decrypt_function_check_mic64
+	storet 4,mem_ccm_mic+4
+	fetch 4,mem_ccm_mic
+	fetcht 4,mem_ccm_mic+4
+	isub temp,pdata
+	rtn
+
+ali_CCM_decrypt_function_check_mic64:
+	fetch 8,mem_ccm_mic
+	isub temp,pdata
+	rtn
+
+ali_fetcht_ccm_mic:
+	force regidx_result,regext_index
+	deposit regext
+	force regidx_result+1,regext_index
+	copy regext,temp
+	lshift16 temp,temp
+	lshift16 temp,temp
+	ior temp,temp
+   	rtn
+ali_aes_crypt_data: 
+	increase 1,rega
+	call ali_A_block_generate
+	copy regc,contr
+	call aes_load_xor
+	call do_aes_ctr
+	call store_enc_data
+	increase 16,regc
+	increase -16,regb
+	branch ali_aes_crypt_data,positive
+	rtn
+//////**AES-CCM**////////
+
+
+
+
Index: program/mesh_protocol_stack/mesh_fast_pairing.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_fast_pairing.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_fast_pairing.prog	(working copy)
@@ -0,0 +1,275 @@
+
+
+/*
+	闃块噷鏋侀熼厤缃戝崗璁厤缃戦樁娈靛寘鐨勮В鏋愪笌缁勫寘
+*/
+
+
+/*
+	function name mesh_send_Unprovisioned_Beacons
+	input:three tuple data 
+	mem_mesh_three_tuple_ProductID
+	mem_mesh_three_tuple_MAC
+	mem_mesh_three_tuple_secret
+*/
+mesh_send_Unprovisioned_Beacons:
+	bpatchx patch34_7,mem_patch34
+	jam UNPROVISIONED_BEACON_STATUS,mem_mesh_provisioned_flag
+	jam 0x00,mem_mesh_Provisioning_State_Flag
+	jam 1,mem_mesh_advertising_unprovisioned_device_beacon_switch
+	setarg ADV_UNPROVISIONED_DEVICE_BEACON_TIMEOUT
+	store 2, mem_mesh_advertising_unprovisioned_device_beacon_timer
+	rtn
+
+//鍒濆鍖朥UID 涓夊厓缁勫弬鏁板拰feature Flag
+ali_mesh_config_device_uuid_by_three_tuple:
+	setarg COMPANY_IDENTIFIERS_ALIBABA
+	store 2,mem_mesh_Device_UUID
+	fetch 1,mem_mesh_Device_PID
+	istore 1,contw
+	fetch 4,mem_mesh_three_tuple_ProductID
+	call inverse_data_4Byte
+	istore 4,contw
+	fetch 6,mem_le_lap
+	istore 6,contw
+	fetch 3,mem_mesh_UUID_FeatureFlag
+	istore 3,contw
+	rtn
+
+ali_mesh_send_Unprovisioned_Beacons_tmall:
+	call ali_mesh_init_adv_data_tmall_Unprovisioned_beacons_package
+	branch mesh_le_send_adv
+
+ali_mesh_init_adv_data_tmall_Unprovisioned_beacons_package:
+//mem Beacon Tmall Length
+	jam 0x15,mem_mesh_adv_data_len
+	setarg 0x14
+	store 1,mem_mesh_adv_data
+	setarg GAP_ADTYPE_MESH_BEACON
+	istore 1,contw
+	setarg UNPROVISIONED_DEVICE_BEACON
+	istore 1,contw
+ali_mesh_advertising_send_Unprovisioned_Beacons_store_device_uuid:
+	arg mem_mesh_Device_UUID,contr
+	call memcpy16
+	fetch 2,mem_mesh_OOB_information
+	istore 2,contw
+	rtn
+
+/*
+
+input:
+	temp is len
+	contr is read ptr
+*/
+
+ali_mesh_receive_adtype_manufacturer_specific:
+	call ali_mesh_receive_provisioning_package_check_header
+	nrtn user
+	ifetch 1,contr	//provisioning type
+	beq PROVISIONING_RANDOM,ali_mesh_advertising_receive_Privisioning_Random
+	beq PROVISIONING_DATA,ali_mesh_decrypt_tmall_Privisioning_Data_package
+	bpatchx patch35_0,mem_patch35
+	rtn
+
+
+//receive provisioning random
+ali_mesh_advertising_receive_Privisioning_Random:
+	call ali_mesh_advertising_receive_Privisioning_Random_check_states
+	nrtn user
+ali_mesh_advertising_calc_encrypt_random_data:
+	call ali_mesh_encrypt_calc_random_data
+//	call mesh_reset_adv_timer
+	call ali_mesh_advertising_send_Provisioning_Confirmation
+	call ali_mesh_send_pairing_data
+ifdef mesh_debug_log
+	branch loggint_tx_info_send_confirmation_packet
+endif
+	rtn
+//send provisioning confirmation
+ali_mesh_advertising_send_Provisioning_Confirmation:
+	arg PROVISIONING_PACKET_CONFIRMATION_MAC+PROVISIONING_PACKET_CONFIRMATION_DEVICE,temp
+	call ali_mesh_advertising_send_packet_common
+	setarg PROVISIONING_CONFIRMATION
+	istore 1,contw
+	fetch 2,mem_mesh_three_tuple_MAC+4
+	istore 2,contw
+	arg mem_mesh_ConfirmationDevice,contr
+	branch memcpy16
+
+//output:disable user mean is cannot true package
+ali_mesh_advertising_receive_Privisioning_Random_check_states:
+	call disable_user
+	ifetcht 2,contr
+	arg mem_mesh_provisioning_random_A,contw
+	call memcpy16
+	fetch 2,mem_mesh_three_tuple_MAC+4
+	isub temp,null
+	nrtn zero	
+
+	
+	fetch 1,mem_mesh_Provisioning_State_Flag
+	rtnbit1 RECEIVE_PROVISIONING_RANDOM
+	set1 RECEIVE_PROVISIONING_RANDOM,pdata			// FLAG bit1:Provisioning Confirmation
+	store 1,mem_mesh_Provisioning_State_Flag
+
+	jam PAIRING_STATUS,mem_mesh_provisioned_flag		//
+ifdef mesh_debug_log
+	call loggint_tx_info_receive_random_packet
+endif
+	branch enable_user
+
+ali_mesh_decrypt_tmall_Privisioning_Data_package:
+	call ali_mesh_advertising_receive_Privisioning_Data
+	fetcht 2,mem_mesh_provisioning_data_Mac_addr
+	fetch 2,mem_mesh_three_tuple_MAC+4
+	isub temp,null
+	nrtn zero
+	call ali_mesh_encrypt_base_function_k3
+	call ali_mesh_send_pairing_data
+	fetch 1,mem_mesh_fast_pair_packet_type
+	rtnne MESH_MESSAGE_PROXY
+	jam WAIT_RECEIVE_APPKEY,mem_mesh_provisioned_flag
+	rtn
+
+//receive provisioning data
+ali_mesh_advertising_receive_Privisioning_Data:
+	bpatchx patch35_1,mem_patch35
+	copy contr,rega
+	fetch 1,mem_mesh_provisioned_flag
+	rtneq PAIRED_STATUS	
+	fetch 1,mem_mesh_Provisioning_State_Flag
+	rtnbit0 RECEIVE_PROVISIONING_RANDOM
+	rtnbit1 RECEIVE_PROVISIONING_DATA
+	copy rega,contr
+	arg 0x16,loopcnt
+	arg mem_mesh_Encrypt_Provisioning_Data,contw
+	call memcpy
+
+	call ali_mesh_encrypt_calc_provisioning_data
+	
+	fetcht 2,mem_mesh_provisioning_data_Mac_addr
+	fetch 2,mem_mesh_three_tuple_MAC+4
+	isub temp,null
+	nrtn zero
+ali_mesh_resolve_Privisioning_Data_package:
+ifdef mesh_debug_log
+	call loggint_tx_info_receive_data_packet
+endif
+	fetch 1,mem_mesh_Provisioning_State_Flag
+	set1 RECEIVE_PROVISIONING_DATA,pdata
+	store 1,mem_mesh_Provisioning_State_Flag
+
+	call ali_mesh_encrypt_calc_network_key_by_k2
+
+	fetch 1,mem_mesh_last_IV_Index_byte
+	store 1,mem_mesh_IV_Index+3
+	call ali_mesh_advertising_send_Provisioning_Complete
+ifdef mesh_debug_log
+	branch loggint_tx_info_send_complete_packet
+endif
+	rtn
+
+
+//send provisioning complete
+ali_mesh_advertising_send_Provisioning_Complete:
+	arg PROVISIONING_PACKET_COMPLETE_MAC,temp
+	call ali_mesh_advertising_send_packet_common
+	setarg PROVISIONING_COMPLETE
+	istore 1, contw
+	fetch 6,mem_mesh_three_tuple_MAC
+	istore 6,contw
+	rtn
+
+
+ali_mesh_advertising_send_packet_common:
+	bpatchx patch35_2,mem_patch35
+	setarg FAST_PAIRING_TIMEOUT_PROVISIONING		//about 11s
+	store 2,mem_mesh_fast_pairing_timer
+	fetch 1,mem_mesh_fast_pair_packet_type
+	sub pdata,MESH_MESSAGE_TMALL,null
+	call ali_mesh_control_ble_advertising_on_advertising,zero
+	ncall ali_mesh_control_ble_advertising_off_advertising,zero
+	add temp,PROVISIONING_PACKET_LENGTH_AD_TYPE_COMPANY_ID_VID_PROVISIONING_TYPE+PROVISIONING_PACKET_LENGTH_FLAGS,pdata
+	store 1,mem_mesh_adv_data_len
+	call ali_mesh_advertising_add_adtype_flags
+	add temp,PROVISIONING_PACKET_AD_TYPE_COMPANY_ID_VID_PROVISIONING_TYPE,pdata
+	istore 1,contw
+	setarg GAP_ADTYPE_MANUFACTURER_SPECIFIC
+	istore 1,contw
+	setarg COMPANY_IDENTIFIERS_ALIBABA
+	byteswap pdata,pdata
+	istore 2,contw
+	fetch 1,mem_mesh_receive_VID
+	istore 1,contw
+	rtn
+
+
+
+ifdef mesh_debug_log
+logging_tx_debug_receive_provisioning_packet:
+	add contr,-3,rega
+	arg MESH_RECEIVE_PROVISIONING_PACKET,regb
+	branch logging_tx_debug
+
+
+loggint_tx_info_receive_random_packet:
+	arg 1,loopcnt
+	arg MESH_RECEIVE_PROVISIONING_RANDOM_PACKET,regb
+	arg mem_mesh_Provisioning_State_Flag,rega
+	branch logging_tx_info
+
+loggint_tx_info_send_confirmation_packet:
+	fetchr loopcnt,1,mem_mesh_adv_data_len
+	arg MESH_SEND_PROVISIONING_CONFIRMATION_PACKET,regb
+	arg mem_mesh_adv_data,rega
+	branch logging_tx_info
+
+loggint_tx_info_receive_data_packet:
+	arg 1,loopcnt
+	arg MESH_RECEIVE_PROVISIONING_DATA_PACKET,regb
+	arg mem_mesh_Provisioning_State_Flag,rega
+	branch logging_tx_info
+
+
+loggint_tx_info_send_complete_packet:
+	fetchr loopcnt,1,mem_mesh_adv_data_len
+	arg MESH_SEND_PROVISIONING_COMPLETE_PACKET,regb
+	arg mem_mesh_adv_data,rega
+	branch logging_tx_info
+endif
+
+
+
+
+
+
+
+ali_mesh_receive_provisioning_package_check_header:
+	call disable_user
+	ifetcht 2,contr
+	setarg COMPANY_IDENTIFIERS_ALIBABA
+	byteswap pdata,pdata
+	isub temp,null
+	nrtn zero	
+	ifetch 1,contr
+	store 1,mem_mesh_receive_VID
+	branch enable_user
+ifdef mesh_debug_log
+	call logging_tx_debug_receive_provisioning_packet
+endif
+//	rtn
+
+ali_mesh_fast_pairing_timer:
+	arg mem_mesh_fast_pairing_timer,regc
+	arg ali_mesh_fast_pairing_timeout, regb
+	branch timer_single_step_2B
+
+ali_mesh_fast_pairing_timeout:
+ali_mesh_fast_pairing_failed:
+	branch ali_mesh_advertising_init_send_unprovisioned_device_beacon
+//	branch ali_mesh_app_prov_fail
+
+
+
+
Index: program/mesh_protocol_stack/mesh_health_message.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_health_message.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_health_message.prog	(working copy)
@@ -0,0 +1,219 @@
+
+/*
+	mesh閲岄潰configuration鍜宧ealth鎸囦护鐨勮В鏋
+*/
+
+ali_mesh_access_layer_config_or_health_message_opcode:
+	fetch 1,mem_mesh_configuration_health_message_opcode
+	beq MESH_MESSAGE_OPCODE_CONFIG_COMPOSITION_DATA_GET_NO_HEAD,ali_mesh_access_layer_config_composition_data
+	beq MESH_MESSAGE_OPCODE_CONFIG_NODE_RESET_NO_HEAD,ali_mesh_access_layer_config_or_health_message_opcode_node_reset
+	beq MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_NO_HEAD,ali_mesh_message_config_modle_subscription_add
+	beq MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_DELETE_NO_HEAD,ali_mesh_message_config_modle_subscription_delete
+//ifdef TM_OVERWRTE
+	beq MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_OW_NO_HEAD, ali_mesh_message_config_modle_subscription_add_overwrite
+//endif
+	rtn
+
+ali_mesh_message_config_modle_subscription_add_overwrite:
+	call ali_mesh_message_config_modle_subscription_check_element
+	call ali_mesh_message_config_modle_subscription_add_value_address_ow
+	call ali_mesh_message_config_modle_subscription_save	
+	setarg MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD_OW_STATUS
+	istore 1,contw
+	
+	setarg MESH_SUCCESS
+	istore 1,contw
+	fetch 2,mem_mesh_subscription_element_address_ow
+	istore 2,contw
+
+	fetch 1, mem_mesh_receive_model_message_payload_len
+	arg 4, temp
+	isub temp, loopcnt
+	arg mem_mesh_subscription_list_num_ow, contr
+	call memcpy
+	fetch 1, mem_mesh_receive_model_message_payload_len
+	pincrease 1
+	store 1,mem_mesh_access_layer_payload_len
+
+	
+	arg 0, queue
+	branch ali_mesh_ali_vendor_message_send_message
+
+ali_mesh_message_config_modle_subscription_add_value_address_ow:
+	fetch 1, mem_mesh_subscription_list_num_ow
+	rtn blank
+	sub pdata, SUBSCRIPTION_MAX_COUNT, null
+	ncall ali_mesh_message_config_modle_subscription_set_addr_max, positive
+	iforce loopcnt
+	arg mem_mesh_subscription_value_address_start_ow, contr
+	add rega, 2, contw   //skip mem_mesh_init_first_element_group_address
+	branch  ali_mesh_byte_swap    
+
+ali_mesh_byte_swap:
+	ifetch 2, contr
+	byteswap pdata, pdata
+	istore 2, contw
+	loop ali_mesh_byte_swap
+	rtn
+
+ali_mesh_message_config_modle_subscription_set_addr_max:
+//	jam SUBSCRIPTION_MAX_COUNT, mem_mesh_subscription_list_num_ow
+	setarg SUBSCRIPTION_MAX_COUNT
+	rtn
+
+ali_mesh_access_layer_config_composition_data:
+	jam RECEIVE_CONFIG_COMPOSITION_DATA_GET, mem_mesh_provisioned_flag
+	setarg MESH_MESSAGE_OPCODE_CONFIG_COMPOSITION_DATA_STATUS
+	store 1,mem_mesh_access_layer_payload
+	setarg 0x00
+	istore 1,contw
+	setarg COMPANY_IDENTIFIERS_ALIBABA
+	istore 2,contw		//CID
+	setarg 0x0000
+	istore 2,contw		//PID
+	setarg 0x0001
+	istore 2,contw		//VID
+	setarg 0x0005
+	istore 2,contw		//Replay Protect list
+	setarg 0x0003
+	istore 2,contw		//feature Relay and Proxy
+	setarg 0x0000
+	istore 2,contw		//Loc
+	setarg 0x02
+	istore 1,contw		//Number of sig models
+	setarg 0x02	
+	istore 1,contw		//Number of vendor models
+	setarg 0x0000
+	istore 2,contw		
+	setarg 0x1000
+	istore 2,contw		//Generic OnOff Server
+	setarg 0x000001a8
+	istore 4,contw
+	setarg 0x000101a8
+	istore 4,contw		//
+	jam 28,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+
+ali_mesh_access_layer_config_or_health_message_opcode_node_reset:
+	jam HEALTH_NODE_RESET_TIMEOUT,mem_mesh_health_node_reset_timer
+//	call ali_mesh_access_layer_send_config_node_reset_status
+//	fetch 2,mem_mesh_cb_receive_node_reset
+//	branch callback_func
+ali_mesh_access_layer_send_config_node_reset_status:
+	setarg MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MESSAGE_OPCODE_CONFIG_NODE_RESET_STATUS_NO_HEAD
+	istore 1,contw
+	jam 2,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message
+
+ali_mesh_access_layer_health_node_reset_timer:
+	arg mem_mesh_health_node_reset_timer,regc
+	arg ali_mesh_access_layer_health_node_reset_timeout, regb
+	branch timer_single_step
+
+
+ali_mesh_access_layer_health_node_reset_timeout:
+	call mesh_clear_provisioning_data_only
+//	branch ali_mesh_app_delete_paired
+ali_mesh_app_delete_paired:
+	branch soft_reset_chip
+
+
+ali_mesh_message_config_modle_subscription_add:
+	call ali_mesh_message_config_modle_subscription_status
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_SUBSCRIPTION
+	call ali_mesh_message_config_modle_subscription_check_element
+	call ali_mesh_message_config_modle_subscription_add_value_address
+ali_mesh_message_config_modle_subscription_save:
+	fetch 2,mem_mesh_cb_subscriptuion_list_changed
+	branch callback_func
+
+	
+ali_mesh_message_config_modle_subscription_delete:
+	call ali_mesh_message_config_modle_subscription_status
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_SUBSCRIPTION
+	call ali_mesh_message_config_modle_subscription_check_element
+	fetcht 2,mem_mesh_subscription_value_address
+	rshift8 temp,pdata
+	rshift4 pdata,pdata
+	beq 0x0c,ali_mesh_message_config_modle_subscription_delete_group_addr
+	byteswap temp, temp
+ali_mesh_message_config_modle_subscription_delete_next:
+	call ali_mesh_message_config_modle_subscription_check_value_address
+	nrtn user
+	setarg 0
+	istore 2,rega
+	fetch 2,mem_mesh_cb_subscriptuion_list_changed
+	branch callback_func
+
+ali_mesh_message_config_modle_subscription_delete_group_addr:
+	setarg -1
+	istore SUBSCRIPTION_MAX_COUNT,rega
+	istore SUBSCRIPTION_MAX_COUNT,contw
+	fetch 2,mem_mesh_cb_subscriptuion_list_changed
+	branch callback_func
+
+ali_mesh_message_config_modle_subscription_check_value_address:
+	arg SUBSCRIPTION_MAX_COUNT,loopcnt
+ali_mesh_message_config_modle_subscription_check_value_address_loop:
+	ifetch 2,rega
+	arg 0xffff,regb
+	isub regb,null
+	branch enable_user,zero
+	isub temp,null
+	branch enable_user,zero
+ali_mesh_message_config_modle_subscription_check_value_address_loop_empty:
+	increase 2,rega
+	loop ali_mesh_message_config_modle_subscription_check_value_address_loop
+	branch disable_user
+
+
+ali_mesh_message_config_modle_subscription_status:
+	setarg MESH_CONFIGURATION_AND_HEALTH_MESSAGE_OPCODE_HEADER
+	store 1,mem_mesh_access_layer_payload
+	setarg MESH_MESSAGE_OPCODE_CONFIG_MODEL_SUBSCRIPTION_STATUS_NO_HEAD
+	istore 1,contw
+	setarg MESH_SUCCESS
+	istore 1,contw
+	fetch 6,mem_mesh_subscription_element_address
+	istore 6,contw
+	jam 9,mem_mesh_access_layer_payload_len
+	branch ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer
+
+ali_mesh_message_config_modle_subscription_check_element:
+	call mesh_get_element_info_config
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,rega
+	fetch 2,mem_mesh_subscription_element_address
+	fetcht 2,mem_mesh_Unicast_Address
+	byteswap temp,temp
+	isub temp,pdata
+	imul32 regb,pdata
+	iadd rega,rega
+	rtn
+
+ali_mesh_message_config_modle_subscription_add_value_address:
+	fetcht 2,mem_mesh_subscription_value_address
+	arg SUBSCRIPTION_MAX_COUNT,loopcnt
+ali_mesh_message_config_modle_subscription_add_value_address_loop:
+	ifetch 2,rega
+	branch ali_mesh_message_config_modle_subscription_add_value_address_in,blank
+	arg 0xffff,regb
+	isub regb,null
+	branch ali_mesh_message_config_modle_subscription_add_value_address_in,zero
+	increase 2,rega
+	loop ali_mesh_message_config_modle_subscription_add_value_address_loop
+	rtn
+
+ali_mesh_message_config_modle_subscription_add_value_address_in:
+	byteswap temp,temp	//access layer鐨勬暟鎹负灏忕妯″紡锛屽垏鎹负澶х瀛樺偍锛屾柟渚縩etwork layer浣跨敤
+	istoret 2,rega
+	rtn
+
+
+
Index: program/mesh_protocol_stack/mesh_init_function.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_init_function.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_init_function.prog	(working copy)
@@ -0,0 +1,177 @@
+
+/*
+	mesh init 鍑芥暟鎿嶄綔
+*/
+ali_mesh_init:
+
+	call enable_authrom
+	call init_memp
+	setarg mesh_check_ble_rx_packet
+	store 2,mem_mesh_cb_receive_advertising
+
+	setarg mesh_idle_process
+	store 2,mem_cb_idle_process
+
+	setarg ali_mesh_network_layer_relay_access_message
+	store 2,mem_mesh_cb_network_relay
+
+	setarg ali_mesh_access_layer_recv_cfg_appkey_add_cb
+	store 2,mem_mesh_cb_receive_config_appkey_add
+
+	setarg mesh_store_new_subscriptuion_list_data
+	store 2,mem_mesh_cb_subscriptuion_list_changed
+
+	setarg mesh_store_new_seq_data
+	store 2,mem_mesh_cb_seq_changed
+
+	setarg mesh_cb_event_timer
+	store 2,mem_cb_event_timer
+
+	setarg ali_mesh_access_layer_check_access_message_opcode
+	store 2,mem_mesh_cb_receive_access_message
+
+	setarg mesh_le_receive_data
+	store 2,mem_cb_att_write
+
+	setarg ali_mesh_proxy_process_bb_event
+	store 2,mem_cb_bb_event_process
+
+	setarg mesh_clear_pairing_key
+	store 2,mem_mesh_clear_provisioning_data
+
+	setarg mesh_vendor_timming_chage_cb
+	store 2,mem_mesh_cb_vendor_timing_changed
+	call ali_mesh_vendor_timer_message_read
+
+	jam 36,mem_mesh_adv_scan_channel
+	call ali_mesh_ali_vendor_message_indication_info_reset_tid
+	
+
+	bpatchx patch35_3,mem_patch35
+
+	setarg 0x0428
+	store 2,mem_mesh_upper_tran_layer_queue_each_size
+	call ali_mesh_upper_transport_layer_queue_init
+
+	setarg 0x0422
+	store 2,mem_mesh_queue_each_size
+	call ali_mesh_advertising_bearer_layer_queue_init
+
+	setarg 0x0a22
+	store 2,mem_mesh_network_relay_gatt_queue_each_size
+	call ali_mesh_network_layer_gatt_queue_init
+	call ali_mesh_network_layer_queue_init
+
+ifdef mesh_debug_log
+	call mesh_uart_init
+endif
+//	call mesh_iic_init
+
+	call ali_mesh_network_layer_queue_init
+	
+	call ali_mesh_chip_peripherals_load_data
+	call mesh_inverse_three_tuple_MAC
+//	jam 0xff,mem_mesh_Network_Key
+ifdef mesh_debug_log
+	arg 1,loopcnt
+	arg mem_mesh_Network_Key,rega
+	arg MESH_CODE_INIT,regb
+	call logging_tx_info
+endif
+	fetch 1,mem_mesh_Network_Key
+	beq 0xff,mesh_send_Unprovisioned_Beacons
+	call ali_mesh_upper_transport_layer_clear_tx_buffer
+	call ali_mesh_encrypt_base_function_k3
+	call ali_mesh_encrypt_base_function_k4
+	call ali_mesh_encrypt_calc_network_key_by_k2
+
+	random pdata
+	and pdata,0x1f,pdata
+	add pdata,50,pdata
+	store 2,mem_mesh_report_full_attribute_timer
+	add pdata,5,pdata
+	store 1,mem_mesh_report_power_on_timer
+	rtn
+
+
+
+mesh_inverse_three_tuple_MAC:
+	fetch 6,mem_mesh_three_tuple_MAC
+	call inverse_data_6Byte
+	store 6,mem_le_lap
+	rtn
+
+mesh_get_element_info_config:
+	fetchr loopcnt,1,mem_mesh_element_number
+	fetchr rega,2,mem_mesh_element_device_ptr
+	fetchr regb,2,mem_mesh_element_device_length
+	rtn
+
+
+mesh_idle_process:
+	bpatchx patch35_4,mem_patch35
+	call ali_mesh_time_function
+	call ali_mesh_control_ble_adv_process
+	call ali_mesh_upper_transport_layer_control_packet
+	call ali_mesh_advertising_bearer_layer_load_packet_from_advertising_queue
+	call ali_mesh_network_layer_control_relay_packet
+	call ali_mesh_network_layer_check_gatt_relay_packet
+	branch mesh_ble_rx_packet
+
+
+mesh_cb_event_timer:
+	call ali_mesh_control_ble_adv_timer_process
+	call ali_mesh_access_layer_health_node_reset_timer
+	call ali_mesh_fast_pairing_timer
+
+
+	call ali_mesh_report_full_attribute_timer
+	call ali_mesh_report_power_on_timer
+	branch ali_mesh_upper_transport_layer_receive_new_msg_timer
+	
+
+mesh_clear_provisioning_data_only:
+	call mesh_clear_timer_data
+	fetch 2,mem_mesh_clear_provisioning_data
+	branch callback_func
+
+
+
+mesh_clear_timer_data:
+	fetch 1,mem_mesh_chip_select
+	rtnne 2
+	setarg 0x1d000
+	store 3,mem_spi_write_addr
+	branch spid_flash_erase_sector+2
+	
+
+
+ali_mesh_upper_transport_layer_queue_init:
+	call ali_mesh_upper_transport_layer_init_queue_param
+	branch queue_init
+
+ali_mesh_advertising_bearer_layer_queue_init:
+	call ali_mesh_advertising_bearer_layer_init_queue_param
+	branch queue_init
+
+ali_mesh_network_layer_gatt_queue_init:
+	call ali_mesh_network_layer_init_gatt_queue_param
+	branch queue_init
+
+ali_mesh_network_layer_init_gatt_queue_param:
+	setarg mem_mesh_network_relay_gatt_queue_each_size
+	store 2,mem_queue_ptr
+	rtn
+
+ali_mesh_advertising_init_send_unprovisioned_device_beacon:
+	jam 1,mem_le_adv_enable
+	setarg ADV_UNPROVISIONED_DEVICE_BEACON_TIMEOUT
+	store 2,mem_mesh_advertising_unprovisioned_device_beacon_timer
+	fetch 1,mem_mesh_UUID_FeatureFlag
+	set0 BIT_SILENCE_ADV_FLAG,pdata
+	store 1,mem_mesh_UUID_FeatureFlag
+	jam UNPROVISIONED_BEACON_STATUS,mem_mesh_provisioned_flag
+	jam 0x00,mem_mesh_Provisioning_State_Flag
+	jam 0x00,mem_k2_NID
+	branch ali_mesh_send_unprovisioned_device_beacon_init_advertising
+
Index: program/mesh_protocol_stack/mesh_lower_transport_layer.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_lower_transport_layer.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_lower_transport_layer.prog	(working copy)
@@ -0,0 +1,151 @@
+/*
+	mesh涓帴鏀跺埌lower transport鍖呭垽鏂
+	鏄疷nsegmented鍖咃紝鐩存帴涓婁紶鍒皍pper transport layer
+	鏄疭egmented鍖咃紝閲嶇粍鍚庝笂浼犲埌upper transport layer
+*/
+
+
+ali_mesh_lower_transport_layer_receive_lower_transport_PDU:
+	bpatchx patch35_5,mem_patch35
+	fetch 1,mem_mesh_message_Transport_Head
+	bbit1 TRANSPORT_HEAD_BIT_SEG,ali_mesh_lower_transport_layer_receive_lower_transport_PDU_segmented_message
+	jam 0,mem_mesh_ASZMIC
+	branch ali_mesh_upper_transport_layer_receive_unsegmented_access_message
+
+//segmented message reassembly
+ali_mesh_lower_transport_layer_receive_lower_transport_PDU_segmented_message:
+	call ali_mesh_lower_transport_layer_receive_SegAccMess_resolve_SZMIC_SeqZero_SegON
+	rtn user
+	call ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockAck
+	rtn user
+	call ali_mesh_lower_transport_layer_receive_segmented_access_message_store_segment
+	branch ali_mesh_lower_transport_layer_receive_segmented_access_message_decrypt_segment
+
+//鎻愬彇SZMIC/SeqZero/SegO/SegN
+//鍒嗗埆瀛樺偍鍒癝ZMIC銆丼egO銆丼egN銆丼eqZero
+ali_mesh_lower_transport_layer_receive_SegAccMess_resolve_SZMIC_SeqZero_SegON:
+	call disable_user
+	arg 3,loopcnt
+	arg mem_mesh_message_segment_access_SZMIC_SeqZero_SegO_SegN,rega
+	call inverse_data
+	fetchr rega, 3,mem_mesh_message_segment_access_SZMIC_SeqZero_SegO_SegN
+	and rega,0x1f,temp
+	storet 1,mem_mesh_segmented_access_message_SegN
+	fetch 1, mem_mesh_segmented_access_message_SegN_upper_limit
+	isub temp, null
+	nbranch enable_user, positive
+	
+	rshift4 rega,pdata
+	rshift pdata,pdata
+	and pdata,0x1f,temp
+	storet 1,mem_mesh_segmented_access_message_SegO
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	arg 0x1fff,rega
+	iand rega,temp
+	copy pdata,regb
+	fetch 2,mem_mesh_segmented_access_message_SeqZero
+	isub temp,null
+	ncall ali_mesh_lower_transport_layer_receive_segmented_access_message_recover_SeqZero,zero
+	storet 2,mem_mesh_segmented_access_message_SeqZero
+	rshift8 regb,pdata
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	store 1,mem_mesh_segmented_access_message_SZMIC
+	store 1,mem_mesh_ASZMIC
+	rtn
+
+ali_mesh_lower_transport_layer_receive_segmented_access_message_recover_SeqZero:
+	setarg 0
+	store 4,mem_mesh_segmented_access_message_BlockAck
+	jam 0,mem_mesh_segmented_access_message_current_length
+	rtn
+
+
+//妫鏌lockAck鏍囧織,杩斿洖鍊糾em_mesh_segmented_access_message_receive_finish
+//1琛ㄧず鏀跺埌鎴愬姛
+ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockAck:
+	call disable_user
+	fetch 1,mem_mesh_segmented_access_message_SegO
+	copy pdata,queue
+	fetch 4,mem_mesh_segmented_access_message_BlockAck
+	qisolate1 pdata
+	branch enable_user,true
+	qset1 pdata
+	store 4,mem_mesh_segmented_access_message_BlockAck
+	fetcht 1,mem_mesh_segmented_access_message_SegN
+	add temp,1,loopcnt
+ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockAck_loop:
+	add loopcnt,-1,queue
+	qisolate1 pdata
+	nrtn true
+	loop ali_mesh_lower_transport_layer_receive_segmented_access_message_check_blockAck_loop
+	jam 1,mem_mesh_segmented_access_message_receive_finish
+	rtn
+
+
+//瀛樺偍segment m鍐呭锛屾斁鍒癿em_mesh_segmented_access_message_SegO
+ali_mesh_lower_transport_layer_receive_segmented_access_message_store_segment:
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	pincrease -6	//DST(2) Head(1) SZMIC_SeqZero_SegO_SegN(3)
+	copy pdata,loopcnt 
+	fetcht 1,mem_mesh_segmented_access_message_current_length
+	iadd temp,temp
+	storet 1,mem_mesh_segmented_access_message_current_length
+	fetch 2, mem_mesh_segmented_access_message_Segment_ptr
+	iforce contw
+	fetch 1,mem_mesh_segmented_access_message_SegO
+	mul32 pdata,12,pdata
+	iadd contw,contw
+	arg mem_mesh_message_Transport_segmented_access_messagePDU_Segment,contr
+	branch memcpy
+
+//鍒ゆ柇鏄惁鏀跺畬鍖咃紝鏀跺畬鍖咃紝clear涓棿鏍囧織
+ali_mesh_lower_transport_layer_receive_segmented_access_message_decrypt_segment:
+	fetch 1,mem_mesh_segmented_access_message_receive_finish
+	rtneq 0
+	setarg 0
+	store 5,mem_mesh_segmented_access_message_BlockAck
+	fetcht 2,mem_mesh_message_SEQ+1
+	byteswap temp,temp
+	setarg 0xe000
+	iand temp,temp
+	fetch 2,mem_mesh_segmented_access_message_SeqZero
+	ior temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_mesh_message_SEQ+1	//璁＄畻Application Nonce闇瑕佷娇鐢ㄥ埌鍒濆鐨凷EQ
+	branch ali_mesh_upper_transport_layer_receive_segmented_access_message
+
+
+/*
+	mesh涓彂閫乴ower transport layer鍒ゆ柇
+	鏄疷nsegmented message锛岀洿鎺ヤ笅鍙戝埌network transport layer
+	鏄疭egmented message锛屾媶鍒嗗悗涓婁紶鍒皀etwork transport layer
+*/
+//Unsegmented access message鍐欏叆SEG銆丄KF銆丄ID
+ali_mesh_lower_transport_layer_send_unsegmented_access_message:
+	fetch 1,mem_mesh_upper_transport_layer_payload_len
+	add pdata,1,temp
+	copy pdata,loopcnt
+	storet 1,mem_mesh_lower_transport_layer_payload_len
+	fetch 1,mem_mesh_message_Transport_Head
+	set0 TRANSPORT_HEAD_BIT_SEG,pdata
+	store 1,mem_mesh_unsegmented_access_lower_transport_layer_head
+	arg mem_mesh_access_layer_payload,contr
+	call memcpy_fast
+	branch ali_mesh_network_layer_send_access_message
+
+//segmented access message鍐欏叆SEG銆丄KF銆丄ID
+//input:rega is current segment payload length
+//contr is current segment payload ptr
+ali_mesh_lower_transport_layer_send_segmented_access_message:
+	add rega,4,temp
+	copy rega,loopcnt
+	storet 1,mem_mesh_lower_transport_layer_payload_len
+	arg mem_mesh_segmented_access_lower_transport_layer_parameters,contw
+	call memcpy_fast
+	fetch 1,mem_mesh_message_Transport_Head
+	set1 TRANSPORT_HEAD_BIT_SEG,pdata
+	store 1,mem_mesh_segmented_access_lower_transport_layer_head
+	branch ali_mesh_network_layer_send_access_message
+
Index: program/mesh_protocol_stack/mesh_model_layer.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_model_layer.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_model_layer.prog	(working copy)
@@ -0,0 +1,136 @@
+
+
+/*
+	mesh model灞傛寚浠よВ鏋愭诲嚱鏁
+*/
+
+ali_mesh_model_layer_check_model_message_opcode:
+	fetch 1,mem_mesh_module_message_opcode
+ali_mesh_model_layer_check_generic_OnOff_message_opcde:
+	beq MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_GET_NO_HEAD,ali_mesh_model_layer_message_opcode_generic_onoff_get
+	beq MESH_MODULE_MESSAGE_OPCODE_GENERIC_ONOFF_SET_NO_HEAD,ali_mesh_model_layer_message_opcde_generic_onoff_set
+	beq MESH_MODULE_MESSAGE_OPCODE_SCENE_RECALL_NO_HEAD,ali_mesh_model_layer_message_opcde_scene_recall
+	beq MESH_MODULE_MESSAGE_OPCODE_LIGHT_LIGHTNESS_SET_NO_HEAD,ali_mesh_model_layer_message_opcde_light_lightness_set
+	beq MESH_MODULE_MESSAGE_OPCODE_LIGHT_CTL_SET_NO_HEAD,ali_mesh_model_layer_message_opcde_light_ctl_set
+	rtn
+
+
+ali_mesh_model_layer_message_opcode_generic_onoff_get:
+	arg ali_mesh_model_layer_message_opcode_generic_onoff_get_cb,regc
+	branch ali_mesh_more_element_check_element_address
+ali_mesh_model_layer_message_opcode_generic_onoff_get_cb:
+	//input queue is element number
+	//output pdata is element generic OnOff status
+	fetch 2,mem_mesh_cb_generic_onoff_get
+	call callback_func
+	store 1,mem_mesh_generic_onoff_set_payload_OnOff
+	branch ali_mesh_access_layer_send_generic_onoff_status
+
+
+ali_mesh_model_layer_message_opcde_generic_onoff_set:
+	arg ali_mesh_model_layer_message_opcde_generic_onoff_set_cb,regc
+	branch ali_mesh_more_element_check_element_address
+ali_mesh_model_layer_message_opcde_generic_onoff_set_cb:
+	call ali_mesh_access_layer_send_generic_onoff_status
+	fetch 2,mem_mesh_cb_generic_onoff_set
+	branch callback_func
+
+
+//妯″紡璁剧疆
+ali_mesh_model_layer_message_opcde_scene_recall:
+	call ali_mesh_access_layer_send_scene_status
+	fetch 2,mem_mesh_cb_scene_recall
+	branch callback_func
+
+
+ali_mesh_model_layer_message_opcde_light_lightness_set:
+	fetch 2,mem_mesh_light_lightness_set_payload_lightness
+	call ali_mesh_model_layer_message_calc_lightness
+	store 1,mem_mesh_light_lightness_calc_lightness
+	call ali_mesh_access_layer_send_light_lightness_status
+	fetch 2,mem_mesh_cb_light_lightness_set
+	branch callback_func
+
+
+ali_mesh_model_layer_message_opcde_light_ctl_set:
+	fetch 2,mem_mesh_last_CTL_Temperature
+	fetcht 2,mem_mesh_CTL_Temperature
+	isub temp,null
+	rtn zero
+
+	fetch 2,mem_mesh_CTL_Temperature
+	call ali_mesh_model_layer_message_calc_temperature
+	store 1,mem_mesh_CTL_calc_temperature
+
+	fetch 2,mem_mesh_CTL_Temperature
+	store 2,mem_mesh_last_CTL_Temperature
+	fetch 2,mem_mesh_cb_light_lightness_get
+	call callback_func
+	storet 2,mem_mesh_CTL_Lightness
+	call ali_mesh_access_layer_send_light_ctl_stauts
+	fetch 2,mem_mesh_cb_light_ctl_set
+	branch callback_func
+
+
+//input: pdata is lightness set by ali
+//output: pdata is lightness 0-100
+ali_mesh_model_layer_message_calc_lightness:
+	rtn blank
+	mul32 pdata,ALI_MESH_LIGHTNESS_LEVEL,pdata
+	arg ALI_MESH_LIGHTNESS_MAX,temp
+	idiv temp
+	call wait_div_end
+	remainder temp
+	rshift8 temp,temp
+	quotient pdata
+	sub temp,0xff,null
+	nrtn zero
+	pincrease 1
+	rtn
+
+
+//input: temp is lightness 0-100
+//output: temp is lightness set by ali
+ali_mesh_model_layer_message_calc_actual_lightness:
+	arg ALI_MESH_LIGHTNESS_MAX,pdata
+	imul32 temp,pdata
+	div pdata,ALI_MESH_LIGHTNESS_LEVEL
+	call wait_div_end
+	quotient temp
+	rtn
+
+//input: pdata is temperature set by ali
+//output: pdata is temperature 0-100
+ali_mesh_model_layer_message_calc_temperature:
+	arg ALI_MESH_TEMPERATURE_MIN,temp
+	isub temp,rega
+	call ali_mesh_model_layer_message_calc_temperature_k
+	copy rega,pdata
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	rtn
+
+
+//input: temp is temperature 0-100
+//output: temp is temperature set by ali
+ali_mesh_model_layer_message_calc_actual_temperature:
+	copy temp,rega
+	call ali_mesh_model_layer_message_calc_temperature_k
+	copy rega,pdata
+	imul32 temp,pdata
+	arg ALI_MESH_TEMPERATURE_MIN,temp
+	iadd temp,temp
+	rtn
+
+ali_mesh_model_layer_message_calc_temperature_k:
+	setarg ALI_MESH_TEMPERATURE_MAX
+	arg ALI_MESH_TEMPERATURE_MIN,temp
+	isub temp,pdata
+	div pdata,ALI_MESH_TEMPERATURE_LEVEL
+	call wait_div_end
+	quotient temp
+	rtn
+
+
+
Index: program/mesh_protocol_stack/mesh_more_element_check.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_more_element_check.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_more_element_check.prog	(working copy)
@@ -0,0 +1,138 @@
+
+/*
+	澶氬厓绱犺缃紝妫鏌ユ槸鍚﹀彂閫佺粰瀛愬厓绱犵殑淇℃伅
+	杈撳叆:
+		temp is 鍖呯殑DST鍦板潃
+*/
+ali_mesh_more_element_check_unicast_address:
+	arg 0,queue
+	fetchr loopcnt,1,mem_mesh_element_number
+	call disable_user
+	fetch 2,mem_mesh_Unicast_Address
+ali_mesh_more_element_check_unicast_address_loop:
+	isub temp,null
+	branch ali_mesh_more_element_found_unicast_address_element,zero
+	byteswap pdata,pdata
+	pincrease 1
+	byteswap pdata,pdata
+	increase 1,queue
+	loop ali_mesh_more_element_check_unicast_address_loop
+	rtn
+
+ali_mesh_more_element_found_unicast_address_element:
+	jam 0,mem_mesh_receive_group_address
+	storer queue,1,mem_mesh_receive_element_number
+	call ali_mesh_more_element_calc_queue_address
+	branch enable_user
+
+
+/*
+	澶氬厓绱犺缃紝妫鏌ユ槸鍚﹀彂閫佺粰瀛愬厓绱犵粍鎾殑淇℃伅
+	杈撳叆:
+		temp is 鍖呯殑DST鍦板潃
+*/
+ali_mesh_more_element_check_group_address:
+	arg 0,queue
+	arg 0,regc
+	call mesh_get_element_info_config
+	call disable_user
+ali_mesh_more_element_check_group_address_loop:
+	fetch 2,mem_mesh_core_feature
+	bbit0 MESH_FEATURE_DISABLE_SUBSCRIPTION,ali_mesh_more_element_check_subscription_address
+	ifetch 2,rega
+	isub temp,null
+	call ali_mesh_more_element_found_group_address_element,zero
+ali_mesh_more_element_check_address_common:
+	copy regb,pdata
+	iadd rega,rega
+	increase 1,queue
+	loop ali_mesh_more_element_check_group_address_loop
+	copy regc,pdata
+	rtn blank
+	store 1,mem_mesh_receive_group_address
+	branch enable_user
+
+ali_mesh_more_element_found_group_address_element:
+	qset1 regc
+	rtn
+
+ali_mesh_more_element_check_subscription_address:
+	add rega,ELEMENT_DEVICE_SUBSCRIPTION_LABEL,contr
+	arg SUBSCRIPTION_MAX_COUNT,alarm
+ali_mesh_more_element_check_subscription_address_loop:
+	ifetch 2,contr
+	isub temp,null
+	branch ali_mesh_more_element_found_subscription_address_element,zero
+	increase -1,alarm
+	branch ali_mesh_more_element_check_address_common,zero
+	branch ali_mesh_more_element_check_subscription_address_loop
+
+ali_mesh_more_element_found_subscription_address_element:
+	call ali_mesh_more_element_found_group_address_element
+	branch ali_mesh_more_element_check_address_common
+
+/*
+	澶氬厓绱犺缃紝妫鏌ュ摢浜涘厓绱犻渶瑕佹墽琛岀殑鎿嶄綔
+	杈撳叆:
+		regc:瀵瑰簲鐨勫洖璋
+*/
+ali_mesh_more_element_check_element_address:
+	arg 0,queue
+	fetch 1,mem_mesh_receive_group_address
+	branch ali_mesh_more_element_check_element_address_no_group_address,blank
+	copy pdata,regb
+	fetchr loopcnt,1,mem_mesh_element_number
+ali_mesh_more_element_check_element_address_loop:
+	storer queue,1,mem_mesh_receive_element_number
+
+	qisolate1 regb
+	call ali_mesh_more_element_check_element_address_no_group_address,true
+	fetchr queue,1,mem_mesh_receive_element_number
+	increase 1,queue
+	loop ali_mesh_more_element_check_element_address_loop
+	rtn
+
+ali_mesh_more_element_check_element_address_no_group_address:
+	call ali_mesh_more_element_push_stack
+	call ali_mesh_more_element_calc_queue_address
+	copy regc,pdata
+	call callback_func
+	branch ali_mesh_more_element_pop_stack
+
+ali_mesh_more_element_push_stack:
+	storer loopcnt,2,mem_mesh_loopcnt_tmep
+	storer rega,2,mem_mesh_rega_temp
+	storer regb,2,mem_mesh_regb_temp
+	storer regc,2,mem_mesh_regc_temp
+	rtn
+
+ali_mesh_more_element_pop_stack:
+	fetchr loopcnt,2,mem_mesh_loopcnt_tmep
+	fetchr rega,2,mem_mesh_rega_temp
+	fetchr regb,2,mem_mesh_regb_temp
+	fetchr regc,2,mem_mesh_regc_temp
+	rtn
+
+
+/*
+	澶氬厓绱犺缃紝璁＄畻鍙戦佹暟鎹椂鐨凷RC鍜岃幏鍙杣pper tsport layer 鐨刡uffer鎸囬拡
+	杈撳叆:
+		queue褰撳墠鏁版嵁缂栧彿
+*/
+ali_mesh_more_element_calc_queue_address:
+	bpatchx patch35_6,mem_patch35
+	fetch 2,mem_mesh_Unicast_Address
+	byteswap pdata,pdata
+	iadd queue,pdata
+	byteswap pdata,pdata
+	store 2,mem_mesh_send_message_SRC
+	call mesh_get_element_info_config
+	copy queue,pdata
+	imul32 regb,pdata
+	iadd rega,rega
+	add rega,ELEMENT_DEVICE_UPPER_QUEUE_PTR,contr
+	ifetch 2,contr
+	store,2,mem_queue_ptr
+	rtn
+
+
Index: program/mesh_protocol_stack/mesh_network_layer.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_network_layer.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_network_layer.prog	(working copy)
@@ -0,0 +1,406 @@
+
+/*
+	mesh鍗忚涓璶etwork layer
+	涓昏鏄礋璐esh涓璑etwork PDU鍐呭鍚堟硶鎬у拰瑙ｅ瘑
+*/
+
+ali_mesh_receive_adtype_mesh_message:
+	jam MESH_MESSAGE_TMALL,mem_mesh_network_packet_type
+/*
+	mesh涓帴鏀跺埌network鍖呭鐞嗗嚱鏁
+*/
+//contr is read ptr
+//input:temp is len
+ali_mesh_network_layer_recevice_network_pdu:
+	sub temp,MESH_NETWORK_PACKET_MIN_LENGTH,null
+	rtn positive	
+	sub temp,MESH_NETWORK_PACKET_MAX_LENGTH,null
+	nrtn positive	
+	bpatchx patch35_7,mem_patch35
+	call ali_mesh_network_store_in_mem
+	call ali_mesh_network_layer_check_dup
+	nrtn user
+	call ali_mesh_network_layer_check_NID_IVI
+	nrtn user
+	call ali_mesh_encrypt_obfuscation_deceypt_recevie_message
+	call ali_mesh_network_layer_check_msg
+	nrtn user
+	call ali_mesh_network_layer_store_proxy_unicast_address
+
+	branch ali_mesh_network_layer_recevice_network_pdu_decrypt_NetMIC32
+
+ali_mesh_network_layer_check_dup:
+	call enable_user
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	arg mem_mesh_message_NID+3,contr
+	iadd contr,contr
+	ifetch 4,contr
+	ifetcht 4,contr
+	ixor temp,temp
+	arg 16,loopcnt
+	arg mem_mesh_network_dup_cache,contr
+ali_mesh_network_layer_check_dup_loop:
+	ifetch 4,contr
+	isub temp,null
+	branch disable_user,zero
+	loop ali_mesh_network_layer_check_dup_loop
+	fetch 1,mem_mesh_network_dup_cache_next
+	pincrease 4
+	arg mem_mesh_network_dup_cache,contw
+	iadd contw,contw
+	istoret 4,contw
+	and pdata,0x3f,pdata
+	store 1,mem_mesh_network_dup_cache_next
+	rtn
+
+ali_mesh_network_layer_check_msg:
+	call enable_user
+	fetcht 5,mem_mesh_message_SEQ
+	arg 16,loopcnt
+	arg mem_mesh_network_msg_cache,contr
+ali_mesh_network_layer_check_msg_loop:
+	ifetch 5,contr
+	isub temp,null
+	branch disable_user,zero
+	loop ali_mesh_network_layer_check_msg_loop
+	fetch 1,mem_mesh_network_msg_cache_next
+	pincrease 1
+	and pdata,0x0f,pdata
+	store 1,mem_mesh_network_msg_cache_next
+	mul32 pdata,5,pdata
+	arg mem_mesh_network_msg_cache,contw
+	iadd contw,contw
+	istoret 5,contw
+	rtn
+
+ali_mesh_network_layer_store_proxy_unicast_address:
+	fetch 1,mem_mesh_network_packet_type
+	rtneq MESH_MESSAGE_TMALL
+	fetch 2,mem_mesh_message_SRC
+	store 2,mem_mesh_network_proxy_unicast_address
+	rtn
+
+	
+//ali_mesh_network_layer_recevice_network_pdu_check_NID:
+//	call ali_mesh_network_layer_check_NID_IVI
+//	nrtn user
+//ali_mesh_network_layer_recevice_network_pdu_deceypt_obfuscation:
+//	call ali_mesh_encrypt_obfuscation_deceypt_recevie_message
+//	//fetch 1,mem_mesh_message_TTL
+//	//rtnbit1 BIT_CTL
+//	fetch 1,mem_mesh_message_TTL
+//	nrtn blank
+ali_mesh_network_layer_recevice_network_pdu_decrypt_NetMIC32:
+	call ali_mesh_network_load_network_nonce_and_EncryptionKey
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	arg mem_mesh_message_DST,temp
+	call ali_CCM_decrypt
+	nrtn zero	//NetMIC error
+
+
+ali_mesh_network_layer_recevice_network_pdu_check_DST:
+	bpatchx patch36_0,mem_patch36
+	fetch 1, mem_mesh_network_packet_type
+	sub pdata, MESH_MESSAGE_PROXY, null
+	call ali_mesh_white_filter_check, zero
+	fetcht 2,mem_mesh_message_DST
+	call ali_mesh_more_element_check_unicast_address		//妫鏌ユ墍鏈夊瓙鍏冪礌鐨勫崟鎾湴鍧
+	call ali_mesh_more_found_unicast_address_element,user
+	branch ali_mesh_network_layer_recevice_network_pdu_check_SRC_and_SEQ,user
+	arg 29,loopcnt
+	arg mem_mesh_message_NID_temp,contw
+	arg mem_mesh_message_NID,contr
+	call memcpy
+	call ali_mesh_network_layer_recevice_network_pdu_check_DST_group_address
+	arg 29,loopcnt
+	arg mem_mesh_message_NID_temp,contr
+	arg mem_mesh_message_NID,contw
+	call memcpy
+	fetch 2,mem_mesh_cb_network_relay
+	branch callback_func
+
+ali_mesh_more_found_unicast_address_element:
+	jam 1,mem_mesh_receive_message_count
+	fetch 2,mem_mesh_send_message_SRC
+	store 2,mem_mesh_receive_message_first_unicast_address
+	rtn
+
+ali_mesh_network_layer_recevice_network_pdu_check_DST_group_address:
+	call ali_mesh_more_element_check_group_address		//妫鏌ユ墍鏈夊瓙鍏冪礌鐨勭粍鎾湴鍧
+	branch ali_mesh_network_layer_recevice_network_pdu_check_SRC_and_SEQ,user
+	jam 0xff,mem_mesh_receive_group_address
+	setarg GROUP_ADDRESS_0XCFFF_little_endian
+	isub temp,null		//DST==0xCFFF Tmall瑙勫畾鐨勭伅model鐨勭粍鎾湴鍧2
+	branch ali_mesh_network_layer_recevice_network_pdu_check_SRC_and_SEQ,zero
+	setarg GROUP_ADDRESS_0XFFFF_little_endian
+	isub temp,null	//DST==0xCFFF Tmall瑙勫畾鐨82 01鎸囦护鐨勭粍鎾湴鍧锛屽湪绾挎娴
+	branch ali_mesh_network_layer_recevice_network_pdu_check_SRC_and_SEQ,zero
+	rtn
+
+
+ali_mesh_network_layer_check_NID_IVI:
+	call disable_user
+	fetcht 1,mem_mesh_message_NID
+	rshift4 temp,pdata
+	rshift3 pdata,pdata
+	fetchr rega,1,mem_mesh_IV_Index+3
+	and rega,0x01,rega
+	isub rega,null
+	nrtn zero
+	and temp,0x7f,temp
+	fetch 1,mem_k2_NID
+	isub temp,null
+	nrtn zero		//鍒ゆ柇NID鏄惁鐩哥瓑;鐩哥瓑璇存槑鏄悓涓涓綉缁滅殑鍖
+	branch enable_user
+
+
+//妫鏌RC鍜孲EQ瀛樺偍cache锛屾槸鍚︽湁褰撳墠SRC璁惧淇℃伅
+ali_mesh_network_layer_recevice_network_pdu_check_SRC_and_SEQ:
+	arg mem_mesh_TMALL_cache_start,rega
+	arg CACHE_SPACE_NUM,loopcnt
+ali_mesh_network_layer_raverse_SRC_SEQ_cache:
+	fetcht 2,mem_mesh_message_SRC
+	ifetch 2,rega
+//cache瀛樺湪绌虹殑绌洪棿,灏哠RC銆丼EQ瀛樺偍鍒拌繖涓┖闂
+	branch ali_mesh_network_layer_find_empty_space,blank
+	
+	isub temp,null
+//cache宸茬粡瀛樻湁璇RC鐨勪俊鎭紝瀵煎嚭SEQ淇℃伅
+	branch ali_mesh_network_layer_find_SRC_space,zero
+	increase CACHE_SPACE_SIZE,rega
+	loop ali_mesh_network_layer_raverse_SRC_SEQ_cache
+	arg mem_mesh_TMALL_cache_start,rega
+
+ali_mesh_network_layer_find_empty_space:
+	istoret 2,rega
+ali_mesh_network_layer_find_SRC_space:
+	storet 2,mem_mesh_send_message_DST
+//鎺ユ敹鏃剁殑SRC鏄彂閫佹椂鍊欑殑DST	
+	add rega,2,regc
+	ifetch 3,regc
+	store 3,mem_mesh_last_message_SEQ
+	branch ali_mesh_network_layer_recevice_network_pdu_check_SEQ_legal
+
+
+//妫鏌EQ鐨勫悎娉曟э紝杩囨护閲嶅鍖
+ali_mesh_network_layer_recevice_network_pdu_check_SEQ_legal:
+//check SEQ
+	call ali_mesh_inverse_SEQ			//楂樹綆浣嶄氦鎹
+
+	fetch 3,mem_mesh_last_message_SEQ
+	fetcht 3,mem_mesh_message_SEQ
+	isub temp,null
+	rtn positive	//lastMessageSEQ-currMessageSEQ>=0,杩斿洖
+	istoret 3,regc	
+	call ali_mesh_inverse_SEQ		//application nonce鍜孌evice nonce閮介渶瑕佺敤鍒癝EQ
+ifdef mesh_debug_log
+	call logging_tx_debug_network_receive_packet
+endif
+	branch ali_mesh_lower_transport_layer_receive_lower_transport_PDU
+
+ali_mesh_inverse_SEQ:
+	arg mem_mesh_message_SEQ,rega
+	arg 3,loopcnt
+	branch inverse_data
+
+
+
+ali_mesh_network_load_network_nonce_and_EncryptionKey:
+	call ali_mesh_network_layer_load_network_nonce
+ali_mesh_upper_transport_layer_load_EncryptionKey:
+	arg mem_k2_EncryptionKey,contr
+	branch load_key
+ali_mesh_network_layer_load_network_nonce:
+	arg mem_mesh_Network_Nonce,contw
+	setarg NETWORK_NONCE
+	istore 1,contw
+	fetch 6,mem_mesh_message_TTL
+	istore 8,contw
+	branch mesh_generate_nonce
+
+
+ali_mesh_network_store_in_mem:
+	add temp,-12,pdata
+	//闀垮害-12鐨勫師鍥
+	//uint8_t AD type:GAP_ADTYPE_MESH_MESSAGE
+	//uint8_t IVI & NID
+	//uint8_t CTL & TTL
+	//uint24_t SEQ
+	//uint16_t SRC
+	//uint32_t MIC
+	//AD_len鍑忓幓涓婇潰鍐呭锛屾槸瀹為檯DST & Transport PDU鐨勯暱搴
+	//闂:娌℃湁鑰冭檻MIC闀垮害鏄64bit 鐨勬儏鍐碉紝鐩墠涓嶆敮鎸侊紝鍚庢湡鏀寔闇瑕佷慨鏀
+	store 1,mem_mesh_message_Transport_NetMIC_length	//len of DST + Transport Pdu, without NetMIC
+	arg 29,loopcnt
+	arg mem_mesh_message_NID,contw
+	call clear_mem
+	add temp,-1,loopcnt
+	arg mem_mesh_message_NID,contw
+	branch memcpy_fast	//mem_le_rxbuf缁熶竴copy鍒癿em_mesh_message_NID
+
+ali_mesh_network_layer_relay_access_message: 
+	call ali_mesh_network_layer_init_queue_param
+	call ali_mesh_network_layer_check_relay_states
+	nrtn user
+	call ali_mesh_network_layer_encrypt_relay_package
+	jam ADV_RELAY_MESH_MESSAGE_DURATION,mem_mesh_queue_ele_duration
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	add pdata,13,temp
+	storet 1,mem_mesh_queue_ele_len
+	increase -1,temp
+	istoret 1,contw
+	setarg GAP_ADTYPE_MESH_MESSAGE
+	istore 1,contw
+	add temp,-1,loopcnt
+	fetch 7,mem_mesh_message_NID
+	arg mem_mesh_message_NID,contr
+	call memcpy
+	arg mem_mesh_queue_ele_temp,rega
+	call queue_push
+	call ali_mesh_network_layer_white_list_fliter
+	nrtn user
+	branch ali_mesh_bearer_layer_gatt_send_packet_by_network_layer
+
+/*
+output:
+user = 1, it means white list is matched.The GATT bearer is used to relay. 
+*/
+ali_mesh_network_layer_white_list_fliter:
+	fetcht 2, mem_mesh_message_DST_temp
+ali_mesh_network_layer_white_list_fliter_check:
+	call disable_user
+	fetch 1, mem_mesh_white_list_num
+	rtn blank
+	iforce loopcnt
+	arg mem_mesh_white_list, contr
+ali_mesh_network_layer_white_list_fliter_check_loop:
+	ifetch 2, contr
+	isub temp, null
+	branch enable_user, zero
+	loop ali_mesh_network_layer_white_list_fliter_check_loop
+	rtn	
+
+//output:enable user is mean can relay packet
+ali_mesh_network_layer_check_relay_states:
+	call disable_user
+	fetch 1,mem_mesh_network_packet_type
+	rtneq MESH_MESSAGE_APP	//涓峳elay APP鐨勬帶鍒跺寘
+	fetch 2,mem_mesh_core_feature
+	rtnbit1 MESH_FEATURE_DISABLE_RELAY
+	fetch 1,mem_mesh_provisioned_flag
+	rtnne PAIRED_STATUS	
+	fetcht 2,mem_mesh_message_SRC
+	call ali_mesh_more_element_check_unicast_address
+	branch disable_user,user
+	call ali_mesh_network_layer_check_network_mic_cache
+	nrtn user
+	fetch 1,mem_mesh_message_TTL
+	branch disable_user, blank
+	pincrease -1
+	branch disable_user, blank
+	store 1,mem_mesh_message_TTL   //+17
+	setarg mem_mesh_network_relay_queue
+	store 2,mem_queue_ptr
+	branch enable_user
+
+ali_mesh_network_layer_encrypt_relay_package:
+ 	call ali_mesh_network_load_network_nonce_and_EncryptionKey
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	arg mem_mesh_message_DST,temp
+	call ali_CCM_encrypt
+	branch ali_mesh_encrypt_obfuscation_deceypt_recevie_message
+
+
+//user is enable ,mean new packet
+ali_mesh_network_layer_check_network_mic_cache:
+	setarg mem_mesh_transport_message_mic_cache
+	store 2,mem_mesh_mic_cache_ptr
+	branch ali_mesh_base_adt_cache
+
+ifdef mesh_debug_log
+ali_mesh_network_layer_logging_tx_relay_info:
+	arg 2,loopcnt
+	arg mem_mesh_message_DST,rega
+	arg MESH_NETWORK_RELAY_PACKET,regb
+	call logging_tx_info
+	fetchr loopcnt,1,mem_ccm_data_len
+	fetchr rega,2,mem_ccm_data_ptr
+	arg MESH_NETWORK_RELAY_PACKET,regb
+	branch logging_tx_debug
+endif
+
+/*
+	mesh涓彂閫佸埌network layer澶勭悊鍑芥暟
+	涓嶅尯鍒哢nsegmented access message鍜孲egmented access message
+	缁熶竴澶勭悊鍑芥暟鎺ュ彛
+*/
+
+ali_mesh_network_layer_send_access_message:
+	bpatchx patch36_1,mem_patch36
+	call ali_mesh_network_layer_send_access_message_encrypt_NetMIC
+	call ali_mesh_network_layer_send_access_message_encrypt_obfuscation
+	branch ali_mesh_bearer_layer_send_packet_by_network_layer
+
+
+//DST鍦ㄦ帴鏀跺寘鏃讹紝宸茬粡鍐欏叆mem_mesh_unsegmented_lower_transport_layer_DST
+//璁＄畻Netwrork MIC鐨勫
+ali_mesh_network_layer_send_access_message_encrypt_NetMIC:
+	fetch 1,mem_mesh_lower_transport_layer_payload_len
+	add pdata,2,rega	//DST size
+	pincrease 4
+	store 1,mem_mesh_lower_transport_layer_payload_len
+	arg mem_mesh_send_upper_layer_DST,temp
+	branch ali_mesh_network_layer_encrypt_by_network_nonce
+
+//********* generate network nonce *********//
+//input:temp is encrypt ptr
+//rega is encrypt length
+ali_mesh_network_layer_encrypt_by_network_nonce:
+	call ali_mesh_network_load_network_nonce_and_EncryptionKey
+	copy rega,pdata
+	branch ali_CCM_encrypt
+
+
+ali_mesh_network_layer_send_access_message_encrypt_obfuscation:
+	branch ali_mesh_encrypt_obfuscation_deceypt_send_message
+
+
+ali_mesh_network_layer_check_gatt_relay_packet:
+	call ali_mesh_network_layer_init_gatt_queue_param
+	call queue_empty
+	rtn blank
+	call le_fifo_check_nearly_full
+	nrtn blank
+	arg mem_mesh_queue_ele_temp,rega
+	call queue_pop
+	nrtn user
+	branch ali_mesh_send_ble_data
+
+
+
+mesh_generate_nonce:
+	fetch 4,mem_mesh_IV_Index
+	istore 4,contw
+	add contw,-13,pdata
+	store 2,mem_nonce_ptr
+	rtn
+
+
+ifdef mesh_debug_log
+logging_tx_debug_network_receive_packet:
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	add pdata,11,loopcnt
+	arg mem_mesh_message_NID,rega
+	arg MESH_NETWORK_RECEIVE_PACKET,regb
+	branch logging_tx_debug
+endif
+
+ali_mesh_network_layer_init_queue_param:
+	setarg mem_mesh_network_relay_queue_each_size
+	store 2,mem_queue_ptr
+	rtn
+
+ali_mesh_network_layer_queue_init:
+	call ali_mesh_network_layer_init_queue_param
+	branch queue_init
+
Index: /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_proxy.prog	(added)
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_proxy.prog	(revision 0)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_proxy.prog	(revision 0)
Index: program/mesh_protocol_stack/mesh_proxy_layer.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_proxy_layer.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_proxy_layer.prog	(working copy)
@@ -0,0 +1,282 @@
+
+ali_mesh_ble_adv:
+	call le_set_config_more_data
+	fetch 1,mem_mesh_provisioned_flag
+	beq UNPROVISIONED_BEACON_STATUS,ali_mesh_ble_adv_mesh_beacon
+	beq PAIRED_STATUS,ali_mesh_ble_adv_network_id
+	beq WAIT_RECEIVE_APPKEY,ali_mesh_ble_adv_network_id
+	rtn
+
+ali_mesh_ble_adv_network_id:
+	//mesh network id proxy
+	/*
+	14
+	02 01 02
+	03 03 28 18
+	0c 16 28 18
+	00 
+	network id
+	*/
+	setsect 0,0x10214
+	setsect 1,0xc080
+	setsect 2,0x28030
+	setsect 3,0x3060
+	store 9,mem_le_adv_data_len
+	setarg 0x182816
+	istore 4,contw
+	fetch 8,mem_mesh_network_id
+	istore 8,contw
+	rtn
+
+ali_mesh_ble_adv_mesh_beacon:
+	call ali_mesh_config_device_uuid_by_three_tuple
+	//mesh beaon proxy
+	/*
+	1d
+	02 01 02
+	03 03 27 18
+	15 16 27 18
+	device uuid
+	oob info
+	*/	
+	setsect 0,0x1021d
+	setsect 1,0xc080
+	setsect 2,0x27030
+	setsect 3,0x5460
+	store 9,mem_le_adv_data_len
+	setarg 0x182716
+	istore 3,contw
+	arg mem_mesh_Device_UUID,contr
+	call memcpy16
+	fetch 2,mem_mesh_OOB_information
+	istore 2,contw
+	rtn
+
+
+//rega is le rx data address
+//regb is le rx data length
+//mem_le_att_handle is write handle
+mesh_le_receive_data:
+/*	call uartb_prepare_tx
+	setarg 0x5555
+	istore 2,contwu
+	fetch 2,mem_le_att_handle
+	istore 2,contwu
+	copy regb,pdata
+	istore 2,contwu
+	copy rega,contr
+	copy regb,loopcnt
+	call uart_copy_tx_bytes
+	call uartb_send
+*/
+	bpatchx patch36_2,mem_patch36
+	fetch 2,mem_le_att_handle
+	beq MESH_PROXY_DATA_IN_HANDLE,ali_mesh_receive_ble_data_proxy_data_in
+	beq MESH_PROVISIONING_DATA_IN_HANDLE,ali_mesh_receive_ble_data_provisioning_data_in
+	rtn
+
+ali_mesh_receive_ble_data_proxy_data_in:
+	copy regb,temp
+	ifetch 1,rega
+	beq MESH_PROXY_MESSAGE_TYPE_NETWORK_PDU,ali_mesh_network_layer_recevice_network_pdu_proxy_control
+	beq MESH_PROXY_MESSAGE_TYPE_PROXY_CONFIGURATION, ali_mesh_network_layer_recevice_proxy_configuration_messages
+	rtn
+ali_mesh_network_layer_recevice_proxy_configuration_messages:
+	//uint8_t SAR & Type
+	//uint8_t IVI & NID
+	//uint8_t CTL & TTL
+	//uint24_t SEQ
+	//uint16_t SRC
+	//uint64_t MIC
+//	call ice_break
+	call ali_mesh_network_store_in_mem
+	fetch 1, mem_mesh_message_Transport_NetMIC_length     //Only 4 bytes of MIC were subtracted in ali_mesh_network_store_in_mem 
+	pincrease -4
+	store 1, mem_mesh_message_Transport_NetMIC_length
+	call ali_mesh_network_layer_check_NID_IVI
+	nrtn user
+	call ali_mesh_encrypt_obfuscation_deceypt_recevie_message
+	fetch 1, mem_mesh_message_TTL
+	bbit1 BIT_CTL,ali_mesh_recevice_proxy_configuration_messages_decrypt
+	rtn
+
+/*
+If the CTL field is set to 1, the NetMIC is a 64-bit value and the Lower Transport PDU contains a Control 
+Message.
+*/
+ali_mesh_recevice_proxy_configuration_messages_decrypt:
+	call ali_mesh_network_load_proxy_nonce_and_EncryptionKey
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	arg mem_mesh_message_DST,temp
+	call ali_CCM_decrypt_64Bit
+	nrtn zero	//NetMIC error
+
+
+	call ali_mesh_white_filter_check
+	fetch 1, mem_mesh_message_Proxy_TransportPDU_opcode
+	beq PROXY_OPCODE_SET_FILTER_TYPE, ali_mesh_proxy_configuration_message_set_filter_type
+	beq PROXY_OPCODE_ADD_ADDR_TO_FILTER, ali_mesh_proxy_configuration_message_add_addr_to_filter
+	rtn
+
+ali_mesh_proxy_configuration_message_add_addr_to_filter:
+	fetchr loopcnt, 1, mem_mesh_message_Transport_NetMIC_length  //len of DST + Transport Pdu, without NetMIC
+	increase -3, loopcnt      //2bytes(DST)  + 1byte(Proxy Transport Pdu Opcode)
+	
+	rshift loopcnt, pdata
+	fetcht 2, mem_mesh_white_list_num
+	iadd temp, pdata
+	sub pdata, 8, null
+	nrtn positive          //If the Proxy Server runs out of space in the proxy filter list, the Proxy Server shall not add these addresses.
+	store 2, mem_mesh_white_list_num
+	arg mem_mesh_white_list, contw
+	lshift temp, pdata
+	iadd contw, contw
+	arg mem_mesh_message_Proxy_TransportPDU_Parameters, contr
+	call memcpy
+	fetch 1, mem_mesh_addressed_filter_type
+	branch ali_mesh_proxy_configuration_message_filter_status
+	
+/*
+Proxy TransportPDU field format:
+Opcode   parameters
+               FilterType     ListSize
+1byte           1byte           2bytes
+*/
+ali_mesh_proxy_configuration_message_set_filter_type:
+	ifetch 1, contr
+	store 1, mem_mesh_addressed_filter_type
+ali_mesh_proxy_configuration_message_filter_status:	
+	store 1, mem_mesh_filter_status_message_FilterType
+	fetch 2, mem_mesh_white_list_num
+	byteswap pdata, pdata
+	store 2, mem_mesh_filter_status_message_ListSize
+
+	jam PROXY_OPCODE_FILTER_STATUS, mem_mesh_filter_status_message_opcode
+	
+	fetch 9, mem_mesh_message_NID
+	store 9, mem_mesh_send_upper_layer_IVI_and_NID
+	fetch 2,mem_mesh_send_message_SRC
+	store 2,mem_mesh_send_upper_layer_SRC
+
+	call ali_mesh_upper_transport_layer_send_access_message_calc_SEQ
+	call ali_mesh_upper_transport_layer_send_access_message_add_SEQ
+
+	call ali_mesh_network_load_proxy_nonce_and_EncryptionKey
+	setarg 6    //encrypt len: DST + TransportPDU
+	arg mem_mesh_send_upper_layer_DST,temp
+	call ali_CCM_encrypt_64Bit
+	call ali_mesh_network_layer_send_access_message_encrypt_obfuscation
+
+	//len =1 + 7 + 2 + 4 + 8 
+	arg 22, rega
+	arg MESH_PROXY_DATA_OUT_HANDLE,temp
+	call le_att_malloc_tx_notify
+	setarg MESH_PROXY_MESSAGE_TYPE_PROXY_CONFIGURATION
+	istore 1,contw
+	arg mem_mesh_send_upper_layer_IVI_and_NID,contr
+	branch memcpy32
+
+ali_mesh_receive_ble_data_provisioning_data_in:
+	jam MESH_MESSAGE_PROXY,mem_mesh_fast_pair_packet_type
+	copy regb,temp
+	copy rega,contr
+	branch ali_mesh_receive_adtype_manufacturer_specific
+
+
+ali_mesh_network_load_proxy_nonce_and_EncryptionKey:
+	arg mem_mesh_Proxy_Nonce,contw
+	setarg PROXY_NONCE
+	istore 2,contw    //Nonce Type & pad(Note:pad = 0)
+	fetch 5,mem_mesh_message_SEQ
+	istore 7,contw   //SEQ & SRC & Pad(Note:pad = 0)
+	call  mesh_generate_nonce
+
+	branch ali_mesh_upper_transport_layer_load_EncryptionKey	
+	
+ali_mesh_network_layer_recevice_network_pdu_proxy_control:
+	jam MESH_MESSAGE_PROXY,mem_mesh_network_packet_type
+	branch ali_mesh_network_layer_recevice_network_pdu
+
+
+ali_mesh_proxy_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_LE_DISCONNECTED,mesh_ble_start_adv
+	beq BT_EVT_LE_CONNECTED,app_ble_conn_event
+	rtn
+
+app_ble_conn_event:
+	branch ali_mesh_proxy_white_list_clear
+
+
+	
+mesh_ble_start_adv:
+	setarg 0
+	store 2,mem_mesh_network_proxy_unicast_address	//clear proxy unicast address
+	branch app_ble_start_adv
+
+ali_mesh_proxy_white_list_clear:
+	setarg 0
+	store 2, mem_mesh_white_list_num
+	arg mem_mesh_white_list, contw
+	arg 16, loopcnt
+	branch memset0
+//	force 0,pdata
+//mesh_mem_set0:
+//	istore 8,contw
+//	loop mesh_mem_set0
+//	rtn	
+
+ali_mesh_send_ble_data:
+//	call ice_break
+	call le_fifo_check_nearly_full
+	nrtn blank
+//	call ice_break
+	fetch 1,mem_mesh_queue_ele_len
+	add pdata,-1,rega
+	arg MESH_PROXY_DATA_OUT_HANDLE,temp
+	call le_att_malloc_tx_notify
+	setarg MESH_PROXY_MESSAGE_TYPE_NETWORK_PDU
+	istore 1,contw
+	arg mem_mesh_queue_ele_payload+2,contr
+	branch memcpy32
+
+ali_mesh_send_pairing_data:
+ifdef LOG
+	call uarta_prepare_tx_register_push
+	setarg -2
+	istore 8,contwu
+	fetch 1,mem_le_adv_data_len
+	add pdata,-5,loopcnt
+	arg mem_le_adv_data+5,contr
+	call uart_copy_tx_bytes	
+	call uarta_send_register_pop
+endif
+	fetch 1,mem_mesh_fast_pair_packet_type
+	rtneq MESH_MESSAGE_TMALL
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_mesh_adv_data_len
+	add pdata,-5,rega
+	arg MESH_PROVISIONING_DATA_OUT_HANDLE,temp
+	call le_att_malloc_tx_notify
+	arg mem_mesh_adv_data+5,contr
+	branch memcpy32
+
+/*
+check and store the first addr of white list.
+If the proxy filter is a white list filter, upon receiving a valid Mesh message from the Proxy Client, the 
+Proxy Server shall add the unicast address contained in the SRC field of the message to the white list.
+*/
+ali_mesh_white_filter_check:
+	fetch 2, mem_mesh_white_list
+	nrtn blank
+	fetch 2, mem_mesh_message_SRC
+	store 2, mem_mesh_white_list
+ali_mesh_white_list_num_increase:
+	fetch 2, mem_mesh_white_list_num
+	pincrease 1
+	store 2, mem_mesh_white_list_num
+	rtn
+
Index: program/mesh_protocol_stack/mesh_sha.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_sha.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_sha.prog	(working copy)
@@ -0,0 +1,139 @@
+
+sha_endian_swap2:	
+	ifetch 4,contr
+	force 4,rega
+	increase 3,contw
+sha_endian_loop:	
+	istore 1,contw
+	rshift8 pdata,pdata
+	increase -2,contw
+	increase -1,rega
+	nbranch sha_endian_loop,zero
+	increase 5,contw
+	loop sha_endian_swap2
+	rtn	
+
+
+sha_getw:
+	lshift2 queue,pdata
+	iadd timeup,contr
+	ifetch 4,contr
+	rtn
+	
+sha_r:
+	force 16,alarm
+	arg mem_dat,timeup
+sha_r_loop:	
+	add alarm,-7,queue
+	call sha_getw
+	iforce temp						/* W[t - 7] */
+	add alarm,-16,queue
+	call sha_getw
+	iadd temp,temp					/* W[t-7] + W[t-16] */
+	add alarm,-2,queue
+	call sha_getw
+	shasx pdata,1,pdata
+	iadd temp,temp					/* S1(W[t -  2]) + W[t-7] + W[t-16] */
+	add alarm,-15,queue
+	call sha_getw
+	shasx pdata,0,pdata
+	iadd temp,temp					/* S0(W[t - 15]) + S1(W[t -  2]) + W[t-7] + W[t-16] */
+	lshift2 alarm,pdata
+	iadd timeup,contw
+	istoret 4,contw
+	increase 1,alarm
+	compare 64,alarm,0xff
+	nbranch sha_r_loop,true
+	rtn
+
+
+sha_init:
+	arg memh0,contr
+	force 7,regext_index
+sha_init_0:	
+	ifetch 4,contr
+	iforce regext
+	increase -1,regext_index
+	branch sha_init_0,positive
+	rtn
+
+sha:
+	bpatchx patch36_3,mem_patch36
+	call sha_r		/* preprocessing data into R() */
+	arg memahbak,contw
+	force 0,regext_index
+sha_0:	
+	deposit regext
+	istore 4,contw
+	increase 1,regext_index
+	compare 8,regext_index,0xff
+	nbranch sha_0,true
+//	call ice_break
+//	call enable_authrom
+	arg BLE_MESH_SHA256_ADDR,timeup
+//	call ice_break
+//	arg mem_authrom_dat,timeup
+	arg mem_dat,alarm
+	force 64,loopcnt
+sha_loop:	
+	ifetcht 4,alarm
+	ifetch 4,timeup
+	increase 4,timeup
+	increase 4,alarm
+	iadd temp,pdata			/* x+K */
+	force 7,regext_index
+	iadd regext,temp			/* x+K+h */
+	force 4,regext_index
+	shasx regext,3,pdata
+	iadd temp,temp			/* temp = s3(e)+x+K+h */
+	force 5,regext_index
+	deposit regext
+	force 6,regext_index
+	ixor regext,pdata
+	force 4,regext_index
+	iand regext,pdata			/* (e & (f ^ g)) */
+	force 6,regext_index
+	ixor regext,pdata			/* F1(e, f, g) = g ^ (e & (f ^ g)) */
+	iadd temp,temp			/* temp1 = h + S3(e) + F1(e,f,g) + K + x */
+	force 7,regext_index
+	copy temp,regext			/* save to H */
+	force 3,regext_index
+	deposit regext
+	iadd temp,regext			/* save to D */
+	force 0,regext_index
+	deposit regext
+	force 1,regext_index
+	iand regext,temp			/* a & b */
+	ior regext,pdata			/* a | b */			
+	force 2,regext_index
+	iand regext,pdata			/* (c & (a | b)) */
+	ior temp,temp				/* F0:(a & b) | (c & (a | b)) */
+	force 0,regext_index
+	shasx regext,2,pdata
+	iadd temp,pdata			/* temp2 = S2(a) + F0(a,b,c) */
+	force 7,regext_index
+	iadd regext,regext			/* h = temp1 + temp2 */
+	regexrot					/* rotate move h,a-g => a-h */
+	loop sha_loop
+	arg memahbak,contr
+	force 0,regext_index
+sha_1:	
+	ifetch 4,contr
+	iadd regext,regext
+	increase 1,regext_index
+	compare 8,regext_index,0xff
+	nbranch sha_1,true
+	rtn
+//	branch disable_authrom
+
+	
+sha_result:
+	arg   memresult,contw
+	force 7,regext_index
+sha_regext_save:
+	deposit regext
+	istore  4,contw 
+	increase -1,regext_index
+	branch   sha_regext_save,positive
+	rtn	
+
Index: program/mesh_protocol_stack/mesh_upper_transport_layer.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_upper_transport_layer.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/mesh_protocol_stack/mesh_upper_transport_layer.prog	(working copy)
@@ -0,0 +1,449 @@
+
+
+
+ali_mesh_upper_transport_layer_receive_unsegmented_access_message:
+	bbit0 TRANSPORT_HEAD_BIT_AKF,ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_device_key
+
+ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_application_key:
+	call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key
+	branch ali_mesh_upper_transport_layer_decrypt_unsegmented_message
+
+ali_mesh_uuper_transport_layer_decrypt_unsegment_access_by_device_key:
+	call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key
+	branch ali_mesh_upper_transport_layer_decrypt_unsegmented_message
+
+
+ali_mesh_upper_transport_layer_decrypt_unsegmented_message:
+//	call ice_break
+	fetch 1,mem_mesh_message_Transport_NetMIC_length
+	pincrease -7	
+	//DST 16bit
+	//Head8bit (SEG 1bit /AKF 1bit/AID 6bit)
+	//Transport MIC 32bit
+	arg mem_mesh_message_Transport_unsegmented_access_messagePDU,alarm
+	call disable_user
+	branch ali_mesh_upper_transport_layer_decrypt_message
+
+
+
+ali_mesh_upper_transport_layer_receive_segmented_access_message:
+	fetch 1,mem_mesh_message_Transport_Head
+	bbit0 TRANSPORT_HEAD_BIT_AKF,ali_mesh_uuper_transport_layer_decrypt_segment_access_by_device_key
+ali_mesh_uuper_transport_layer_decrypt_segment_access_by_application_key:
+	call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key
+	branch ali_mesh_upper_transport_layer_decrypt_segmented_message
+ali_mesh_uuper_transport_layer_decrypt_segment_access_by_device_key:
+	call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key
+	branch ali_mesh_upper_transport_layer_decrypt_segmented_message
+
+
+ali_mesh_upper_transport_layer_decrypt_segmented_message:
+	fetch 1,mem_mesh_ASZMIC
+	ncall enable_user,blank
+	call disable_user,blank
+	fetch 1,mem_mesh_segmented_access_message_current_length
+	pincrease -4	//Transport MIC
+	jam 0,mem_mesh_segmented_access_message_current_length
+	arg mem_mesh_segmented_access_message_Segment,alarm
+
+//input:alarm:decrypt message ptr
+//pdata:decrypt message length
+ali_mesh_upper_transport_layer_decrypt_message:
+	copy alarm,temp
+	call ali_mesh_upper_transport_layer_decrypt_message_decrypt_transMIC
+	nrtn zero
+ifdef mesh_debug_log
+	arg 1,loopcnt
+	arg mem_ccm_data_len,rega
+	arg MESH_UPPER_RECEIVE_PACKET,regb
+	call logging_tx_info
+endif
+	call ali_mesh_upper_transport_layer_check_transport_mic_cache
+	nrtn user
+	fetch 2,mem_ccm_data_ptr
+	copy pdata,alarm
+	branch ali_mesh_access_layer_resolve_message
+
+ali_mesh_upper_transport_layer_decrypt_message_decrypt_transMIC:
+	nbranch ali_CCM_decrypt,user
+	pincrease -4
+	branch ali_CCM_decrypt_64Bit
+
+//user is enable ,mean new packet
+ali_mesh_upper_transport_layer_check_transport_mic_cache:
+	setarg mem_mesh_access_message_mic_cache
+	store 2,mem_mesh_mic_cache_ptr
+	branch ali_mesh_base_adt_cache
+
+
+//********* generate application nonce *********//
+ali_mesh_upper_transport_layer_load_application_nonce_and_application_key:
+	call ali_mesh_upper_transport_layer_load_application_nonce
+ali_mesh_upper_transport_layer_load_application_key:
+	arg mem_mesh_application_key,contr
+	branch load_key
+ali_mesh_upper_transport_layer_load_application_nonce:
+	arg mem_mesh_Application_Nonce,contw
+	setarg APPLICATION_NONCE
+	istore 1,contw
+	fetch 1,mem_mesh_ASZMIC
+	arg 0,temp
+	nsetflag blank,7,temp
+	istoret 1,contw
+	fetch 7,mem_mesh_message_SEQ
+	istore 7,contw
+	branch mesh_generate_nonce
+
+
+//********* generate device nonce *********//
+ali_mesh_upper_transport_layer_load_device_nonce_and_device_key:
+	call ali_mesh_upper_transport_layer_load_device_nonce
+ali_mesh_upper_transport_layer_load_device_key:
+	arg mem_mesh_Device_Key,contr
+	branch load_key
+ali_mesh_upper_transport_layer_load_device_nonce:
+	arg mem_mesh_Device_Nonce,contw
+	setarg DEVICE_NONCE
+	branch ali_mesh_upper_transport_layer_load_application_nonce + 2
+
+
+
+ali_mesh_upper_transport_layer_send_access_message:
+ali_mesh_upper_transport_layer_send_access_message_without_cleat_tx_buffer:
+	bpatchx patch36_4,mem_patch36
+//	call ali_mesh_upper_transport_layer_clear_tx_buffer
+ifdef mesh_debug_log
+	call ali_mesh_loggint_tx_info_upper_send_packet
+endif
+	call ali_mesh_upper_transport_layer_send_access_message_add_NID_SRC_TTL_SEQ_DST
+
+	//queue control
+	call ali_mesh_upper_transport_layer_store_packet_header
+	rtn user
+	call ali_mesh_upper_transport_layer_store_unsegment_msg_original_access_pdu
+
+	call ali_mesh_upper_transport_layer_init_queue_param
+
+	arg mem_mesh_upper_tran_layer_queue_temp,rega
+	branch queue_push
+
+
+//output:user is enable mean send Attr Indication packet,but no in paired status
+ali_mesh_upper_transport_layer_store_packet_header:
+	call disable_user
+	arg UPPER_RETRY_COUNT_STATUS,temp
+
+	fetch 1,mem_mesh_network_packet_type
+	sub pdata,MESH_MESSAGE_PROXY,null
+	setflag zero,BIT_UPPER_FLAG_PROXY_CONTROL,temp
+	storet 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	fetch 9,mem_mesh_send_upper_layer_IVI_and_NID
+	store 9,mem_mesh_upper_tran_layer_temp_packet_header_IVI_NID
+	fetch 1,mem_mesh_access_layer_payload_vendor_command
+	rtnne VENDOR_MESSAGE_ATTR_INDICATION
+	fetch 1,mem_mesh_provisioned_flag
+	bne PAIRED_STATUS,enable_user
+	fetch 1,mem_mesh_access_layer_payload_vendor_tid
+	store 1,mem_mesh_upper_tran_layer_temp_packet_TID
+	fetch 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	pincrease UPPER_RETRY_COUNT_INDICATION
+	set1 BIT_UPPER_FLAG_VENDOR_INDICATION,pdata
+	store 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	rtn
+
+
+ali_mesh_upper_transport_layer_store_unsegment_msg_original_access_pdu:
+	fetch 1,mem_mesh_access_layer_payload_len
+	copy pdata,loopcnt
+	store 1,mem_mesh_upper_tran_layer_temp_packet_length
+	fetch 1,mem_mesh_message_Transport_Head
+	store 1,mem_mesh_upper_tran_layer_temp_pakcet_AKF_AID
+	arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu,contw
+	arg mem_mesh_access_layer_payload,contr
+	branch memcpy
+
+
+
+ali_mesh_upper_transport_layer_control_packet:
+//	arg ali_mesh_upper_transport_layer_control_packet_deal,regc
+//	branch ali_mesh_check_all_element_info
+
+
+ali_mesh_upper_transport_layer_control_packet_deal:
+	fetch 1,mem_mesh_upper_tran_layer_packet_advertising
+	nrtn blank
+	call ali_mesh_upper_transport_layer_init_queue_param
+	arg mem_mesh_upper_tran_layer_queue_temp,rega
+	call queue_get_new_ele
+	nrtn user	
+
+	fetcht 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	and temp,DATA_UPPER_FLAG_MAX_RETRY_COUNT,pdata
+	branch ali_mesh_upper_transport_layer_queue_pop,blank
+
+	jam PACKET_IN_BEARER,mem_mesh_upper_tran_layer_packet_advertising	
+
+	call ali_mesh_upper_transport_layer_control_packet_load_header	
+
+	fetcht 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	call ali_mesh_upper_transport_layer_control_packet_load_app_control	
+	store 1,mem_mesh_upper_tran_layer_packet_tid
+
+	fetch 1,mem_mesh_upper_tran_layer_packet_type
+	isolate1 BIT_UPPER_FLAG_PROXY_CONTROL,temp
+	setflag true,BIT_UUPER_TRAN_PROXY_MESSAGE,pdata
+	store 1,mem_mesh_upper_tran_layer_packet_type
+//	add rega,ELEMENT_DEVICE_TRAN_PACKAGE_TYPE,contr
+//	ifetch 1,contr
+//	isolate1 BIT_UPPER_FLAG_PROXY_CONTROL,temp
+//	setflag true,BIT_UUPER_TRAN_PROXY_MESSAGE,pdata
+//	add rega,ELEMENT_DEVICE_TRAN_PACKAGE_TYPE,contw
+//	istore 1,contw
+
+	set1 BIT_UPPER_FLAG_RETRANSMIT,temp						
+
+	increase -1,temp		
+	istoret 1,regb			
+	
+	fetcht 1,mem_mesh_upper_tran_layer_temp_packet_flag
+	isolate1 BIT_UPPER_FLAG_RETRANSMIT,temp
+	nbranch ali_mesh_upper_transport_layer_control_packet_encrypt_access,true
+	fetcht 1,mem_mesh_upper_tran_layer_temp_packet_length
+	storet 1,mem_mesh_upper_transport_layer_payload_len
+	copy temp,loopcnt
+	arg mem_mesh_access_layer_payload,contw
+	arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu,contr
+	call memcpy
+//	call ice_break
+	sub temp,UNSEGMENTED_ACCESS_MESSAGE_MAX_UPPER_TRANSPORT_ACCESS_PDU_LEN,null
+	nbranch ali_mesh_upper_transport_layer_control_packet_segment_msg,positive
+ali_mesh_upper_transport_layer_control_packet_unsegment_msg:
+	branch ali_mesh_lower_transport_layer_send_unsegmented_access_message
+
+
+ali_mesh_upper_transport_layer_control_packet_segment_msg:
+	fetch 4,mem_mesh_upper_tran_layer_temp_segmented_pakcet_SeqZero
+	store 4,mem_mesh_segmented_lower_transport_layer_SegZero
+	branch ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer
+
+
+ali_mesh_upper_transport_layer_control_packet_load_header:
+	fetch 1,mem_mesh_upper_tran_layer_temp_pakcet_AKF_AID
+	store 1,mem_mesh_message_Transport_Head
+
+	fetch 9,mem_mesh_upper_tran_layer_temp_packet_header_IVI_NID
+	store 9,mem_mesh_send_upper_layer_IVI_and_NID
+	store 9,mem_mesh_message_NID
+	rtn
+
+
+ali_mesh_upper_transport_layer_control_packet_load_app_control:
+	jam UPPER_TRAN_TMALL_MESSAGE,mem_mesh_upper_tran_layer_packet_type
+	fetch 1,mem_mesh_upper_tran_layer_temp_packet_TID
+	isolate1 BIT_UPPER_FLAG_VENDOR_INDICATION,temp
+	rtn true		//indication packet send app & tmall
+	setarg 0
+	rtn
+
+ali_mesh_store_tran_package_type:
+	add rega,ELEMENT_DEVICE_TRAN_PACKAGE_TYPE,contw
+	istore 1,contw
+	rtn
+
+
+ali_mesh_upper_transport_layer_queue_pop:
+	jam 0,mem_mesh_upper_tran_layer_packet_tid
+	call ali_mesh_upper_transport_layer_init_queue_param
+	arg mem_mesh_upper_tran_layer_queue_temp,rega
+	branch queue_pop
+
+ali_mesh_upper_transport_layer_control_packet_encrypt_access:
+	call ali_mesh_upper_transport_layer_send_access_message_calc_SEQ
+	call ali_mesh_upper_transport_layer_send_access_message_add_SEQ
+	fetch 9,mem_mesh_send_upper_layer_IVI_and_NID
+	store 9,mem_mesh_upper_tran_layer_temp_packet_header_IVI_NID
+	call ali_mesh_upper_transport_layer_control_packet_encrypt_access_load_payload
+	setarg 0
+	store 1,mem_mesh_ASZMIC
+	call ali_mesh_upper_transport_layer_calc_transport_mic
+
+	fetcht 1,mem_mesh_upper_transport_layer_payload_len
+	storet 1,mem_mesh_upper_tran_layer_temp_packet_length
+	copy temp,loopcnt
+	arg mem_mesh_access_layer_payload,contr
+	arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu,contw
+	call memcpy
+	
+	sub temp,UNSEGMENTED_ACCESS_MESSAGE_MAX_UPPER_TRANSPORT_ACCESS_PDU_LEN,null
+	nbranch ali_mesh_upper_transport_layer_control_packet_encrypt_access_segment_msg,positive
+ali_mesh_upper_transport_layer_control_packet_encrypt_access_unsegment_msg:
+	arg mem_mesh_upper_tran_layer_temp_packet_transmit_delay,rega
+	call queue_store_new_ele
+	branch ali_mesh_lower_transport_layer_send_unsegmented_access_message
+
+ali_mesh_upper_transport_layer_control_packet_encrypt_access_segment_msg:
+	call ali_mesh_upper_transport_layer_send_segmented_access_message_get_SeqZero_SegON
+	fetch 4,mem_mesh_segmented_lower_transport_layer_SegZero
+	store 4,mem_mesh_upper_tran_layer_temp_segmented_pakcet_SeqZero
+	arg mem_mesh_upper_tran_layer_temp_packet_transmit_delay,rega
+	call queue_store_new_ele
+	branch ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer
+
+ali_mesh_upper_transport_layer_control_packet_encrypt_access_load_payload:
+	fetch 1,mem_mesh_upper_tran_layer_temp_packet_length
+	copy pdata,loopcnt
+	store 1,mem_mesh_access_layer_payload_len
+	fetch 1,mem_mesh_upper_tran_layer_temp_pakcet_AKF_AID
+	store 1,mem_mesh_message_Transport_Head
+	arg mem_mesh_upper_tran_layer_temp_pakcet_upper_tran_access_pdu,contr
+	arg mem_mesh_access_layer_payload,contw
+	branch memcpy
+
+ali_mesh_upper_transport_layer_split_segmented_msg_to_lower_tran_layer:
+	call ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header
+	setarg mem_mesh_access_payload
+	store 2,mem_mesh_upper_transport_layer_payload_ptr
+ali_mesh_upper_transport_layer_send_segmented_access_message_loop:
+	call ali_mesh_upper_transport_layer_control_packet_load_header
+	call ali_mesh_upper_transport_layer_send_access_message_calc_SEQ
+	call ali_mesh_upper_transport_layer_send_access_message_add_SEQ
+
+	fetcht 1,mem_mesh_access_layer_payload_len
+	setarg SEGMENTED_ACCESS_MESSAGE_UNINT_PDU_LEN
+	call not_greater_than
+	copy pdata,rega
+	copy temp,pdata
+	isub rega,pdata
+	store 1,mem_mesh_access_layer_payload_len
+	fetch 2,mem_mesh_upper_transport_layer_payload_ptr
+	copy pdata,contr
+	iadd rega,temp
+	storet 2,mem_mesh_upper_transport_layer_payload_ptr
+	call ali_mesh_lower_transport_layer_send_segmented_access_message
+	fetch 1,mem_mesh_access_layer_payload_len
+	rtn blank
+	fetch 1,mem_mesh_segmented_lower_transport_layer_SegO
+	pincrease 1
+	store 1,mem_mesh_segmented_lower_transport_layer_SegO
+	call ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header
+	branch ali_mesh_upper_transport_layer_send_segmented_access_message_loop
+
+
+
+//upper层计算transport mic值
+ali_mesh_upper_transport_layer_calc_transport_mic:
+	fetch 1,mem_mesh_message_Transport_Head
+	bbit0 TRANSPORT_HEAD_BIT_AKF,ali_mesh_upper_transport_layer_calc_transport_mic_by_DeviceKey
+ali_mesh_upper_transport_layer_calc_transport_mic_by_AppKey:
+	call ali_mesh_upper_transport_layer_load_application_nonce_and_application_key
+	branch ali_mesh_upper_transport_layer_calc_transport_mic_encrypt_AESCCM
+ali_mesh_upper_transport_layer_calc_transport_mic_by_DeviceKey:
+	call ali_mesh_upper_transport_layer_load_device_nonce_and_device_key
+ali_mesh_upper_transport_layer_calc_transport_mic_encrypt_AESCCM:
+	fetch 1,mem_mesh_access_layer_payload_len
+	add pdata,4,temp
+	storet 1,mem_mesh_upper_transport_layer_payload_len
+	arg mem_mesh_access_layer_payload,temp
+	branch ali_CCM_encrypt
+
+
+
+//累加SEQ的值
+ali_mesh_upper_transport_layer_send_access_message_calc_SEQ:
+	fetch 3,mem_mesh_send_message_SEQ
+	pincrease 1
+	store 3,mem_mesh_send_message_SEQ
+	fetch 1,mem_mesh_gatt_package_send_msg_id
+	pincrease 1
+	store 1,mem_mesh_gatt_package_send_msg_id
+	fetch 2,mem_mesh_cb_seq_changed
+	branch callback_func
+
+
+
+ali_mesh_upper_transport_layer_send_access_message_add_NID_SRC_TTL_SEQ_DST:
+	fetch 1,mem_mesh_IV_Index+3
+	lshift4 pdata,pdata
+	lshift3 pdata,pdata
+	fetcht 1,mem_k2_NID
+	ior temp,pdata
+	store 1,mem_mesh_send_upper_layer_IVI_and_NID
+	fetch 1,mem_mesh_send_message_TTL
+	store 1,mem_mesh_send_upper_layer_CTL_and_TTL
+	fetch 2,mem_mesh_send_message_SRC
+	store 2,mem_mesh_send_upper_layer_SRC
+	fetch 2,mem_mesh_send_message_DST
+	store 2,mem_mesh_send_upper_layer_DST
+
+ali_mesh_upper_transport_layer_send_access_message_add_SEQ:
+	fetch 3,mem_mesh_send_message_SEQ
+	store 3,mem_mesh_send_upper_layer_SEQ
+	arg mem_mesh_send_upper_layer_SEQ,rega
+	arg 3,loopcnt
+	call inverse_data
+	fetch 8,mem_mesh_send_upper_layer_CTL_and_TTL
+	store 8,mem_mesh_message_TTL
+	rtn
+
+ali_mesh_upper_transport_layer_send_segmented_access_message_get_SeqZero_SegON:
+	fetch 1,mem_mesh_upper_transport_layer_payload_len
+	div pdata,SEGMENTED_ACCESS_MESSAGE_UNINT_PDU_LEN
+	call wait_div_end
+	quotient temp
+	remainder pdata
+	call ali_mesh_upper_transport_layer_send_segmented_access_message_sub_SegN_one,blank
+	storet 1,mem_mesh_segmented_lower_transport_layer_SegN
+	jam 0,mem_mesh_segmented_lower_transport_layer_SegO
+	fetch 3,mem_mesh_send_message_SEQ
+	arg 0x1fff,temp
+	iand temp,pdata
+	store 2,mem_mesh_segmented_lower_transport_layer_SegZero
+	rtn
+
+ali_mesh_upper_transport_layer_send_segmented_access_message_calc_header:
+	fetch 2,mem_mesh_segmented_lower_transport_layer_SegZero
+	lshift4 pdata,pdata
+	lshift pdata,pdata
+	fetcht 1,mem_mesh_segmented_lower_transport_layer_SegO
+	ior temp,pdata
+	lshift4 pdata,pdata
+	lshift pdata,pdata
+	fetcht 1,mem_mesh_segmented_lower_transport_layer_SegN
+	ior temp,pdata
+	store 3,mem_mesh_segmented_access_lower_transport_layer_SZMIC_SeqZero_SegO_SegN
+	arg 3,loopcnt
+	arg mem_mesh_segmented_access_lower_transport_layer_SZMIC_SeqZero_SegO_SegN,rega
+	branch inverse_data
+
+ali_mesh_upper_transport_layer_receive_new_msg_timer:
+	arg mem_mesh_upper_receive_new_message_timer,regc
+	arg ali_mesh_upper_transport_layer_receive_new_msg_timeout, regb
+	branch timer_single_step
+
+ali_mesh_upper_transport_layer_receive_new_msg_timeout:
+	arg 40,loopcnt
+	arg mem_mesh_access_message_mic_cache,contw
+	branch clear_mem
+
+
+ali_mesh_upper_transport_layer_send_segmented_access_message_sub_SegN_one:
+	increase -1,temp
+	rtn
+
+ali_mesh_upper_transport_layer_clear_tx_buffer:
+	branch ali_mesh_stop_send_indication_packet
+
+ifdef mesh_debug_log
+ali_mesh_loggint_tx_info_upper_send_packet:
+	arg mem_mesh_access_layer_payload,rega
+	fetchr loopcnt,1,mem_mesh_access_layer_payload_len
+	arg MESH_UPPER_SEND_PACKET,regb
+	branch logging_tx_info
+endif
+
+ali_mesh_upper_transport_layer_init_queue_param:
+	setarg mem_mesh_upper_tran_layer_queue_each_size
+	store 2,mem_queue_ptr
+	rtn
+
+
Index: program/patch.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/patch.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/patch.prog	(working copy)
@@ -0,0 +1,3366 @@
+//define ex_eeprom
+//define g24_enable
+define ble_enable
+//define usb_enable
+//define multi_mode
+//define ice_disable
+//define RGB_backlight
+define ADC_1121SB
+define ADC_1V5
+
+ifdef ADC_1121SB
+//define ADC_1121SB_1V8_MODE
+endif 
+
+	bbit1 8,pf_patch_ext
+	beq patch00_0,p_soft_reset	
+	beq patch00_2,p_main_loop
+	beq patch02_0,p_shutdown_radio
+	beq patch02_1,p_set_sync_on
+	beq patch02_4,p_set_lemode	
+	beq patch02_5,p_rf_rx_enable
+	beq patch03_0,p_txon
+	beq patch03_1,p_set_tx_power
+	beq patch03_2,p_initialize_radio_cont
+	beq patch04_5,p_lpm_sleep
+	beq patch05_0,p_lpm_dispatch
+ifndef ex_eeprom	
+	beq patch08_2,p_keyboard_load_otp_info_check
+endif	
+	beq patch08_4,p_keyboard_store_device_info	
+	beq patch08_5,p_keyboard_cb_fuction
+	beq patch08_6,p_keyboard_priority_bb_event	
+	beq patch08_7,p_keyboard_bb_event_timer
+ifdef ble_enable
+	beq patch09_0,p_keyboard_start_discovery
+	beq patch09_1,p_keyboard_stop_discovery
+	beq patch09_2,p_keyboard_store_remote_bdaddr
+endif
+	beq patch09_3,p_keyboard_idle
+	beq patch09_4,p_keyboard_start_work
+ifdef ble_enable
+	beq patch09_5,p_keyboard_le
+endif
+	beq patch09_6,p_keyboard_keyscan
+	beq patch0a_0,p_keyboard_key_process
+	beq patch0a_2,p_keyboard_keyvalue_fn_replace
+	beq patch0a_5,p_keyboard_special_key_check
+	beq patch0a_7,p_keyboard_motion
+	beq patch0b_1,p_keyboard_device_data_tpye_check	
+	beq patch0b_2,p_keyboard_before_hibernate
+	beq patch0b_3,p_keyboard_app_enter_hibernate
+	beq patch0b_4,p_keyboard_device_led_all_off
+	beq patch0b_5,p_keyboard_setgpio_hibernate
+ifdef g24_enable	
+	beq patch0b_6,p_keyboard_g24_transmit_process
+	beq patch0b_7,p_keyboard_g24_short_sleep
+endif
+ifdef ble_enable
+	beq patch0c_1,p_le_parse_att
+	beq patch0d_7,p_keyboard_start_reconnect_device
+endif	
+	beq patch0e_1,p_keyboard_app_enter_hibernate
+	beq patch0e_6,p_keyboard_adc_read	
+	beq patch0e_7,p_keyboard_adc_read_start
+	beq patch10_0,p_mouse_init_sunt
+	beq patch10_4,p_keyboard_app_enter_hibernate
+ifdef ex_eeprom	
+	beq patch11_3,p_keyboard_app_initflag_check
+endif	
+	beq patch13_2,p_keyboard_discover_setting_led_gpio
+	beq patch16_1,p_keyboard_init
+ifndef ex_eeprom	
+	beq patch18_5,p_otp_read_data
+endif	
+	beq patch1a_5,p_gpio_set_wake_by_current_state
+	beq patch1b_2,p_sadc_calibration
+ifdef ADC_1121SB
+	beq patch1b_3,p_adc_init_data
+	beq patch1b_4,p_enable_adc
+	beq patch1b_5,p_vdd_calculate_by_mode
+endif
+	beq patch1e_6,p_ui_ipc_send_event
+	beq patch1f_2,p_check_51cmd_once_continue
+	branch assert
+
+pf_patch_ext:
+ifdef usb_enable
+	beq patch20_0,p_usb_class_type
+endif	
+ifdef ble_enable
+	beq patch22_4,p_le_slave_match
+	beq patch23_2,p_le_got_first_packet
+	beq patch24_5,p_le_rx_dec
+	beq patch24_6,p_le_rx_nopayload
+	beq patch29_4,p_le_adv_not_match	
+	beq patch29_5,p_le_init_adv
+endif	
+ifdef g24_enable
+	beq patch32_0,p_keyboard_g24_reconn_dispatch
+	beq patch32_5,p_keyboard_g24_transmit_no_interrupt
+endif	
+	rtneq patch3f_7
+	branch assert
+
+
+
+p_soft_reset:
+	nbranch p_soft_reset_next,wake
+	until null,lpo_edge
+	until null,lpo_edge
+p_soft_reset_next:	
+	call mouse_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag_new
+	branch soft_reset+1,blank
+	jam 0,mem_power_on_flag_new
+	fetch 1,mem_config_select_device_button_gpio
+	beq UI_BUTTON_GPIO_DISABLE,soft_reset+1
+	copy pdata,queue
+	fetch 4,mem_saved_gpio_in
+	qisolate0 pdata					// bt button gpio num
+	call keyboard_pb_set,true
+	branch soft_reset+1
+
+p_keyboard_adc_read:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	call p_keyboard_adc_gpio_set
+	branch mouse_adc_read+4
+
+p_keyboard_adc_gpio_set:
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetch 1,mem_adc_channel
+	call p_adc_channel_set_gpio	
+	copy temp,pdata
+	store 1,mem_adc_channel_gpio
+	set1 GPIO_ACTIVE_BIT,pdata
+	arg gpcfg_input,temp
+	branch gpio_config_function	
+	
+p_adc_channel_set_gpio:
+	arg 18,temp 
+	rtneq 0x6
+	arg 10,temp 	
+	rtneq 0x7
+	arg 9,temp 	
+	rtneq 0x8
+	arg 12,temp 	
+	rtneq 0x9
+	arg 6,temp 	
+	rtneq 0xa
+	arg 20,temp 	
+	rtneq 0xb
+	arg 21,temp 	
+	rtneq 0xc
+	arg 22,temp 	
+	rtneq 0xd
+	arg 13,temp 	
+//	rtnne 0xe
+	rtn
+	
+p_main_loop:
+ifdef SECURE_CONNECTION
+	call sp_calc_sequence_256
+	call sp_calc_sequence_256_check
+endif
+	call kscan_dispatch
+ifdef RGB_backlight
+	call p_keyboard_rgb_process
+endif
+	call le_advertising_dispatch
+	call idle_dispatch
+	call app_process_idle
+	call connection_dispatch
+	call g24_dispatch
+	call lpm_dispatch
+	branch p_main_loop
+p_shutdown_radio:
+	jam 0,0x8900
+	branch shutdown_radio+1
+p_set_sync_on:
+	jam 0x60,0x8a0f 
+	jam 0xaa,0x8a10 
+	jam 0x7a,0x8a12 
+	jam 0x00,0x8a25 
+	jam 0x00,0x8a26 
+	nop 60
+	jam 0x20,0x8a20 
+	jam 0xf5,0x8a23 
+	jam 0x12,0x8a24 
+	jam 0x10,0x8a24 
+	nop 60
+	jam 0x60,0x8a12 
+	jam 0xdd,0x8a23 
+	rtn
+
+p_initialize_radio_cont:
+	jam 0,mem_le_testtype
+	jam 0,mem_cmd_le_create_conn
+	until null,lpo_edge
+	
+	jam 0x0d,0x8946
+	jam 0x10,0x896f
+	jam 0xcd,0x8a13
+	jam 0x10,0x8a06
+	jam 0x4a,0x8a84
+	jam 0x40,0x8a85
+	jam 0xfe,0x8a16
+	call p_set_otp_config
+//	branch initialize_radio_cont+1
+	//fetch 1,mem_wdt_always_work
+	call wdt_set_disable
+
+	until null,lpo_edge
+	jam 0x5f,0x813b 
+	until null,lpo_edge
+	jam 0x88,0x813c
+	until null,lpo_edge
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,p_initialize_radio_16m
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x04,pdata
+	store 1,0x8a02
+	jam 0x01,0x890f
+	jam 0x24,0x8a80
+	jam 0x62,0x8a81
+	setarg 0xe61212
+	store 3,0x8a73	
+p_initialize_radio2:
+	jam 0x60,0x8a86
+	jam 0x3b,0x8a8b 
+	call p_dpll_on
+	jam 0,core_config
+	jam CLKSEL_DPLL,core_clksel
+	setarg 0x557474
+	store 3,0x8968
+	jam 0x6e,0x8960
+	call p_rx_dcoc
+	call p_rfpll_aac_ghpc
+	call p_set_xtal_cap
+	jam SYSTEM_CLK_12M,mem_system_clk
+	branch sadc_calibration
+//	branch p_dpll_ring_ibias_calc
+	
+p_set_xtal_cap:
+	rtn wake
+	until null,lpo_edge
+	fetch 1,mem_xtal_c_sel
+	store 1,core_xtal_cap
+	until null,lpo_edge
+	rtn
+	
+p_dpll_on:
+	fetch 1,mem_fcomp_div
+	beq XTAL_24M,p_dpll_on_24m
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x06,pdata
+	store 1,0x8a02
+	jam 0xe0,0x8a05
+p_dpll_on_24m:	
+	jam 0xd8,0x8a00
+	nop 60
+	jam 0xa0,0x8a01
+	jam 0xdf,0x8a00
+	jam 0xfa,0x8a01
+	nop 20
+	jam 0x9f,0x8a00
+	rtn
+	
+p_initialize_radio_16m:
+	fetch 1,mem_ring_ibias_trim
+	or_into 0x06,pdata
+	store 1,0x8a02
+	jam 0x00,0x890f
+	jam 0x23,0x8a80
+	jam 0xb0,0x8a81
+	setarg 0xe40909
+	store 3,0x8a73
+	jam 0x2a,0x8a76
+	jam 0x04,0x8902	
+	branch p_initialize_radio2
+
+p_set_otp_config:
+	branch p_set_otp_config_wake,wake
+	fetch 4,mem_otp_core_ldo
+	rtn blank
+	until null,lpo_edge
+	fetch 1,0x8136
+	and pdata,0xf0,pdata
+	fetcht 1,mem_otp_core_ldo
+	ior temp,pdata
+	increase -3,pdata
+	store 1,0x8136 
+	until null,lpo_edge
+
+	fetch 1,0x8138
+	and pdata,0x7,pdata
+	fetcht 1,mem_otp_verf_bg
+	lshift3 temp,temp
+	ior temp,pdata
+	store 1,0x8138 
+	until null,lpo_edge
+
+p_set_otp_config2:
+	fetch 1,0x8acb
+	and pdata,0xf0,pdata
+	fetcht 1,mem_otp_charge_pump
+	storet 1,mem_otp_charge_pump_x
+	ior temp,pdata
+	store 1,0x8acb
+
+	fetch 1,mem_otp_dpll_ibais
+	store 1,mem_otp_dpll_ibais_x
+	isolate1 3,pdata
+	fetch 1,0x8a06
+	setflag true,7,pdata
+	store 1,0x8a06
+	
+	fetch 1,mem_otp_dpll_ibais
+	and pdata,7,temp
+	lshift4 temp,temp
+	lshift temp,temp
+	storet 1,mem_ring_ibias_trim
+	fetch 1,0x8a02
+	and pdata,0x1f,pdata
+	ior temp,pdata
+	store 1,0x8a02
+	rtn
+
+p_set_otp_config_wake:
+	fetch 2,mem_otp_charge_pump_x
+	rtn blank
+	store 2,mem_otp_charge_pump
+	branch p_set_otp_config2
+
+p_rf_rx_enable:
+	call rf_rx_agc_set
+	force 8,radio_ctrl
+	force 0,radio_ctrl
+
+	setarg 0x0aaada
+	store 3,0x8a0f
+	jam 0x40,0x8a25
+	jam 0x10,0x8a26
+	nop 60
+	jam 0xfb,0x8a01
+	jam 0xff,0x8a25
+	jam 0x30,0x8a26
+	jam 0xfe,0x8a16
+	branch rf_rx_enable+14
+	
+p_txon:
+	setarg 0x0aaa7e
+	store 3,0x8a0f
+	nop 60
+	jam 0x00,0x8a25 
+	jam 0x0d,0x8a26 
+	jam 0xf6,0x8a16 
+	branch txon+7
+
+p_set_tx_power:	
+	fetch 1,mem_tx_power
+	beq TX_POWER_10DB,p_set_tx_power_10db
+	branch set_tx_power+2
+	
+p_set_tx_power_10db:
+	jam 0x25,0x8a14 
+	setarg 0xa93f3f
+	store 3,0x8a60
+	jam 0x1f,0x8a63 
+	rtn
+	
+	
+p_rx_dcoc:
+	rtn wake
+	call set_sync_on
+	arg 39,temp
+	call set_freq_rx	
+	call rf_rx_enable
+	jam 0x7f,0x8a25
+	jam 0x1a,0x8a30
+	jam 0x78,0x8a31
+	jam 0xb2,0x8a8f
+	jam 0,0x8ac2
+	jam 0,0x8ac3
+	arg 6,queue
+	call p_rx_dcoc_avg
+	isolate1 13,rega
+	call qset_start
+	isolate1 13,regb
+	call qset_p
+	arg 5,queue
+p_rx_dcoc_loop2:
+	call qset1_p
+	call qset_p
+	call p_rx_dcoc_avg
+	arg 0x8ac2,contw
+	rshift4 rega,pdata
+	call qsetxor
+	rshift4 regb,pdata
+	call qsetxor
+	increase -1,queue
+	branch p_rx_dcoc_loop2,positive
+	branch rx_dcoc_loop2+10
+
+p_rx_dcoc_avg:
+	nop 60
+	setarg mem_dcoc_buf
+	store 2,0x8982
+	setarg mem_dcoc_buf_end
+	store 2,0x8984
+	jam 0x9,0x8981
+	jam 0x3,0x8981
+	jam 0x6,0x8980	
+	nop 60
+	arg 0,rega
+	arg 0,regb
+	arg 16,loopcnt
+	arg mem_dcoc_buf,contr
+	branch rx_dcoc_loop
+
+p_rfpll_aac_ghpc:
+	rtn wake
+	branch rfpll_aac_ghpc+1
+	
+p_keyboard_clear_pdata:
+	setarg 0
+p_mouse_init_sunt:
+p_dpll_ring_ibias_calc:
+	rtn
+
+p_sadc_calibration:
+	rtn wake
+	jam 0x77,core_gpadc_ctrl
+	jam 0xc9,core_gpadc_cfg0
+	jam 0x01,core_gpadc_cfg3
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	nop 3000
+	call p_sadc_read
+	jam 0xc1,core_gpadc_cfg0
+	fetchr regb,1,mem_spi_write_addr
+	arg 8,loopcnt	//rg_gpadc_sar_dat_sel c0-c7
+	call sadc_cal_read+1
+	fetch 1,mem_spi_write_addr
+	store 1,mem_adc_cal_c7
+	storer regb,1,mem_spi_write_addr
+	rtn
+
+
+p_sadc_read:
+	jam 0x03,core_sadc_ctrl
+p_sadc_read_wait:
+	fetch 1,core_perf_status
+	bbit0 SARADC_DONE,p_sadc_read_wait
+	fetcht 2,core_sadc_data
+	storet 2,mem_adc_current_value
+	jam 0x00,core_sadc_ctrl
+	rtn
+	
+
+p_set_lemode:
+	jam 0x11,0x8a82
+	jam 0x12,0x8a8d
+	jam 0x0a,0x8a8e
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,p_set_lemode_2m_16m
+	setarg 0x5762
+	store 2,0x8907
+p_set_lemode_2m:
+	jam 3,0x8901
+	jam 3,0x8930
+	rtnmark1 mark_ble_2M
+	jam 1,0x8901
+	jam 0x07,0x8a82
+	jam 0x44,0x8a8d
+	jam 0x0a,0x8a8e
+	fetch 1,mem_fcomp_div
+	beq XTAL_16M,p_set_lemode_1m_16m
+	setarg 0x2bb1
+	store 2,0x8907
+p_set_lemode_1m:
+	rtnmark0 mark_ble_lr
+	jam 0x24,0x8930
+	jam 5,0x8901
+	rtn
+
+p_set_lemode_1m_16m:
+	setarg 0x4189
+	store 2,0x8907
+	branch p_set_lemode_1m
+
+p_set_lemode_2m_16m:
+	setarg 0x8312
+	store 2,0x8907
+	branch p_set_lemode_2m
+
+ifndef ex_eeprom
+p_otp_read_data:
+	call enable_otp_read			//read enable
+	call otp_read_data+1
+	branch otp_disable_chgpump	//disable otp
+
+p_keyboard_load_otp_info_check:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_load_otp_device_info_g24_init
+	beq MODE_BT_DEVICE1,p_keyboard_load_otp_device_info_ble_init	
+	rtn	
+
+p_keyboard_load_otp_device_info_g24_init:
+	arg 80,regd
+	setarg 0x400
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fbc,pdata
+	arg 4,temp
+	arg 4,rege
+	branch p_keyboard_load_otp_device_info
+	
+p_keyboard_load_otp_device_info_ble_init:
+	arg 320,regd
+	setarg 0x400
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fb0,pdata
+	arg 16,temp
+	arg 16,rege
+	branch p_keyboard_load_otp_device_info
+	
+p_keyboard_load_otp_device_info:
+	store 2,mem_pdatatemp+2
+	storet 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	arg 0,regc
+p_keyboard_load_otp_info_check_page_loop:
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch p_keyboard_load_otp_info_check_first_time,blank
+	increase 1,regc
+	fetch 2,mem_pdatatemp
+	isub regc,null
+//	nbranch p_keyboard_load_otp_info_check_overwise,positive
+	fetch 2,mem_pdatatemp+2
+	isub regd,pdata
+	store 2,mem_pdatatemp+2
+	branch p_keyboard_load_otp_info_check_page_loop
+p_keyboard_load_otp_info_check_first_time:
+	sub regc,0,null
+	branch keyboard_load_otp_info_check_first_time_process,zero
+p_keyboard_load_otp_info_check_first_time_loop_init:
+	fetch 2,mem_pdatatemp+2
+	iadd regd,pdata
+p_keyboard_load_otp_info_check_first_time_loop:	
+	isub rege,pdata
+	store 2,mem_pdatatemp+2
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch p_keyboard_load_otp_info_check_offset_process,blank
+	fetch 2,mem_pdatatemp+2
+	branch p_keyboard_load_otp_info_check_first_time_loop
+
+p_keyboard_load_otp_info_check_offset_process:
+	setarg 0x1fc0
+	fetcht 2,mem_pdatatemp+2
+	isub temp,pdata
+	store 2,mem_otp_read_retention_offset		//store the next field offset ,convenient for next storage
+	copy temp,pdata
+	iadd rege,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_info_check_offset_process_g24
+	beq MODE_BT_DEVICE1,p_keyboard_load_otp_info_check_offset_process_ble
+	rtn
+
+p_keyboard_load_otp_info_check_offset_process_ble:
+	fetch 1,mem_otp_read_retention_memory
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+	store 1,mem_kb_computer_system
+	fetch 1,mem_otp_read_retention_memory+1
+	store 1,mem_device1_type
+	fetch 6,mem_otp_read_retention_memory+2
+	store 6,mem_device1_addr
+	fetch 6,mem_otp_read_retention_memory+8
+	store 6,mem_device1_locall_addr
+	fetcht 2,mem_otp_read_retention_memory+14
+	random pdata
+	iadd temp,pdata
+	store 2,mem_random_addr_increase_count
+	branch p_keyboard_select_reconn_device
+
+p_keyboard_store_otp_device_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,p_keyboard_store_otp_device_info_ble
+	rtn	
+
+p_keyboard_store_otp_device_info_g24:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fc0
+	branch keyboard_store_otp_device_info_g24+2
+
+p_keyboard_store_otp_device_info_ble:
+	jam 1,mem_otp_store_device_info_flag
+	fetch 1,mem_otp_store_system_flag
+	rtn blank
+p_keyboard_wirte_otp_ble:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fc0
+	isub temp,pdata
+	store 2,mem_pdatatemp
+
+	copy pdata,regb
+	arg mem_kb_computer_system,rega
+	arg 1,loopcnt
+	call otp_write   /* regb = otp address, rega pointers data, loopcnt is count */	
+
+	fetch 2,mem_pdatatemp
+	add pdata,1,regb
+	arg mem_device1_type,rega
+	arg 13,loopcnt
+	call otp_write   /* regb = otp address, rega pointers data, loopcnt is count */
+
+	fetch 2,mem_pdatatemp
+	add pdata,14,regb
+	arg mem_random_addr_increase_count,rega
+	arg 2,loopcnt
+	call otp_write  /* regb = otp address, rega pointers data, loopcnt is count */
+	
+	fetcht 2,mem_otp_read_retention_offset
+	increase 16,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn	
+endif
+
+p_keyboard_store_device_info:
+ifdef ex_eeprom
+	fetcht 1,mem_eeprom_sda_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch mouse_store_device_info_delay,true
+endif
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+ifndef ex_eeprom		
+	bbit1 MOUSE_ENABLE_OTP,p_keyboard_store_otp_device_info
+endif	
+ifdef ex_eeprom	
+	bbit1 MOUSE_ENABLE_EEPROM,p_keyboard_store_eeprom_device_info
+endif	
+	branch keyboard_store_device_info+2
+
+
+ifdef ex_eeprom
+p_keyboard_eeprom_init:
+	call iicd_read_init_pin
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
+	branch set_eeprom_size_2k,true
+	branch clear_eeprom_size_2k
+
+p_keyboard_load_eeprom_info_check:
+	call p_keyboard_eeprom_init
+	call  mouse_load_eeprom_info_check+4
+	fetch 1,mem_mouse_dpi
+	store 1,mem_kb_computer_system
+	fetcht 2,mem_otp_read_retention_memory+14
+	random pdata
+	iadd temp,pdata
+	store 2,mem_random_addr_increase_count
+	rtn
+
+p_keyboard_app_initflag_check:
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch p_keyboard_load_device_info,zero
+	storet 2,mem_store_flag
+	call mouse_ble_init_address
+	fetch 1,mem_device_flag_temp_new
+	branch mouse_app_initflag_check_next+3
+
+p_keyboard_load_device_info:
+	call p_keyboard_select_reconn_device
+	branch mouse_load_device_info+1
+	
+p_keyboard_store_eeprom_device_info:
+	call p_keyboard_eeprom_init
+	fetch 1,mem_kb_computer_system
+	store 1,mem_mouse_dpi
+	branch mouse_store_eeprom_device_info
+endif	
+
+p_keyboard_priority_bb_event:
+	copy regc,pdata
+ifdef g24_enable
+	beq BT_EVT_24G_ATTEMPT_FAIL,p_keyboard_24g_attempt_fail
+endif	
+ifdef ble_enable
+	beq BT_EVT_LE_DISCONNECTED,p_keyboard_le_bb_disconnected
+ifdef RGB_backlight	
+	beq BT_EVT_LE_CONNECTED,p_keyboard_le_bb_event_connected
+endif
+endif	
+	branch keyboard_priority_bb_event+2
+
+ifdef g24_enable
+p_keyboard_24g_attempt_fail:
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch p_keyboard_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,p_keyboard_24g_fast_conn_attempt_fail
+	branch keyboard_24g_attempt_fail+4
+
+p_keyboard_24g_hibernate_set:
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 8,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	setarg 1
+	store 2,mem_mouse_no_data_timer
+	jam 1,mem_sensor_shutdown_flag
+	branch p_keyboard_g24_long_sleep
+
+
+p_keyboard_24g_fast_conn_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_start_auto_pair
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_mouse_24g_addr		// auto pair first time
+ifdef ex_eeprom
+	fetcht 4,mem_keyboard_factory_addr
+	isub temp,null
+	branch p_keyboard_24g_start_pair_mode,zero
+else	
+	branch p_keyboard_24g_start_pair_mode,blank
+endif
+	branch mouse_24g_reconn_dongle_start
+endif	
+
+ifdef ble_enable
+p_keyboard_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_keyboard_le_send_conn_param_update
+	store 1,mem_keyboard_le_send_conn_param_update_timer
+	store 1,mem_mouse_le_bb_connected_flag	
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	call le_clr_config_more_data
+	jam 0,mem_ltk_exists
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,p_keyboard4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_start_discovery
+p_keyboard4_0_event_bb_disconn:
+	call mouse_le_clean_connect_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch p_keyboard_app_enter_hibernate
+
+ifdef RGB_backlight	
+p_keyboard_le_bb_event_connected:
+	call p_keyboard_load_eerpom_rgb
+	branch keyboard_le_bb_event_connected
+endif	
+endif
+
+
+
+p_keyboard_bb_event_timer:
+	call mouse_adc_read
+	call p_keyboard_low_voltage_led_timer
+
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	call p_keyboard_24g_repeat_send_data
+	call keyboard_24g_led_status_get_timer
+	
+	//led
+	call p_keyboard_num_capslock_led_on_timer
+	call p_keyboard_device_poweron_timer
+	call p_keyboard_device_pair_discovery_led_timer
+	call p_keyboard_mode_led_timer
+ifdef RGB_backlight	
+	call p_keyboard_rgb_on_timer
+endif	
+	call keyboard_check_discovery_timeout_timer
+	call keyboard_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call keyboard_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	call keyboard_le_send_conn_param_update_timer	
+	call keyboard_le_auto_recognize_timer
+
+	call p_keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call mouse_current_mult_update_timer
+	call keyboard_store_information_delay_timer
+
+	call p_keyboard_long_press_timer
+	call keyboard_commbination_delay_release_timer
+ifdef usb_enable		
+	call p_keyboard_usb_updata_timer
+endif	
+	branch p_keyboard_check_no_data_timeout_timer
+
+p_keyboard_adc_read_start:
+	call p_keyboard_low_voltage_param_set
+	call enable_adc
+	call vdd_calculate_by_mode
+	div pdata,10
+	call get_div_result
+	store 2,mem_mouse_vdd_now_vol
+	arg mem_mouse_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down
+	bbit0 0,p_keyboard_adc_no_low_voltage
+	jam 1,mem_mouse_adc_last_low_voltage_flag
+	branch mouse_adc_low_voltage
+
+p_keyboard_adc_no_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	call mouse_disable_function_flag
+	jam 12,mem_keyboard_adc_low_volatage_led_timer_count
+	branch mouse_adc_no_low_voltage+3
+
+
+p_keyboard_low_voltage_param_set:
+	call mouse_adc_gpio_set_before_hibernate
+ifdef RGB_backlight
+	fetch 1,mem_backlight_on_flag
+	beq 0,p_keyboard_low_voltage_param_set_backlight_off
+	setarg 0x00014d		// 0x014d--3.7V  0x01000--3.0V  0x0123--3.2V  0x0130--3.3V
+	store 3,mem_mouse_vdd_full_vol
+	setarg 0x013001
+	istore 3,contw
+	fetch 1,mem_mouse_adc_last_low_voltage_flag
+	branch p_keyboard_low_voltage_param_set_33V,blank
+	jam 0x35,mem_mouse_vdd_low_vol
+	rtn
+p_keyboard_low_voltage_param_set_33V:
+	jam 0x30,mem_mouse_vdd_low_vol
+	rtn	
+endif
+p_keyboard_low_voltage_param_set_backlight_off:	
+ifdef ADC_1V5
+	setarg 0x560094		// 0x0094--1.5V  0x0056--0.9V  0x0060--1.0V  0x006d--1.1V
+	store 3,mem_mouse_vdd_full_vol
+	setarg 0x006d00
+	istore 3,contw
+endif	
+	fetch 1,mem_mouse_adc_last_low_voltage_flag
+	branch p_keyboard_low_voltage_param_set_backligh_off_1V0,blank
+	jam 0x73,mem_mouse_vdd_low_vol
+	rtn
+p_keyboard_low_voltage_param_set_backligh_off_1V0:
+	jam 0x6d,mem_mouse_vdd_low_vol
+	rtn	
+
+p_keyboard_24g_repeat_send_data:
+	fetch 1,mem_same_keyvalue_timerout_flag
+	nrtn blank
+	branch keyboard_24g_repeat_send_data
+
+p_keyboard_num_capslock_led_on_timer:
+ifdef usb_enable
+	fetch 1,mem_mouse_usb_vdd_status_current
+	beq MOUSE_USB_INTERFACE_INSERT,p_keyboard_usb_led_check
+endif	
+	fetch 2,mem_mouse_no_data_timer
+	rtn blank
+	fetch 2,mem_mouse_no_data_timeout
+	fetcht 2,mem_mouse_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_caps_led_on_timer
+	isub temp,pdata
+	branch p_keyboard_num_cap_led_on,positive
+	call p_keyboard_numlock_led_off
+	call p_keyboard_scrolllock_led_off
+	branch keyboard_capslock_led_off
+p_keyboard_num_cap_led_on:
+	call p_keyboard_numlock_led_check_on
+	call p_keyboard_scrolllock_led_check_on
+	branch keyboard_capslock_led_check_on
+p_keyboard_numlock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_NUMLOCK,p_keyboard_numlock_led_off
+	fetcht 1,mem_keyboard_num_led_gpio
+	branch gpio_out_active
+p_keyboard_numlock_led_off:
+	fetcht 1,mem_keyboard_num_led_gpio
+	branch gpio_out_inactive	
+p_keyboard_scrolllock_led_off:
+	fetch 1,mem_keyboard_device_poweron_timer_count
+	nrtn blank
+	fetch 1,mem_adc_power_flag
+	rtnbit1 0
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_inactive
+
+p_keyboard_scrolllock_led_check_on:
+	fetch 1,mem_keyboard_device_poweron_timer_count
+	nrtn blank
+	fetch 1,mem_adc_power_flag
+	rtnbit1 0
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_SCROLLLOCK,p_keyboard_scrolllock_led_off
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_active
+
+
+p_keyboard_usb_led_check:
+	fetch 1,mem_24g_led_status
+	store 1,mem_keyboard_led_status
+	branch p_keyboard_num_cap_led_on
+
+p_keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer_count
+	branch p_keyboard_device_led_off,blank
+	branch p_keyboard_device_led_on
+
+p_keyboard_device_led_off:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_device_24g_led_off
+	beq MODE_BT_DEVICE1,p_keyboard_device_bt1_led_off
+	beq MODE_BT_DEVICE2,p_keyboard_device_bt2_led_off
+	beq MODE_BT_DEVICE3,p_keyboard_device_bt3_led_off
+	rtn
+
+p_keyboard_device_led_on:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_device_24g_led_on
+	beq MODE_BT_DEVICE1,p_keyboard_device_bt1_led_on
+	beq MODE_BT_DEVICE2,p_keyboard_device_bt2_led_on
+	beq MODE_BT_DEVICE3,p_keyboard_device_bt3_led_on
+	rtn	
+	
+p_keyboard_device_24g_led_off:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_inactive
+
+p_keyboard_device_bt1_led_off:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_inactive
+	
+p_keyboard_device_bt2_led_off:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_inactive
+	
+p_keyboard_device_bt3_led_off:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_inactive	
+
+p_keyboard_device_24g_led_on:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_active
+
+p_keyboard_device_bt1_led_on:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_active
+	
+p_keyboard_device_bt2_led_on:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_active
+	
+p_keyboard_device_bt3_led_on:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_active	
+
+p_keyboard_mode_led_timer:
+	fetch 2,mem_mouse_no_data_timer
+	rtn blank
+	fetch 1,mem_keyboard_mode_led_on_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_mode_led_on_timer
+	bbit1 0,p_keyboard_device_led_on
+	branch p_keyboard_device_led_off
+
+p_keyboard_device_pair_discovery_led_timer:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_device_pair_led
+	fetch 2,mem_mouse_discovery_timer
+	rtn blank
+	branch p_keyboard_device_pair_led+2
+
+p_keyboard_device_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	rtn blank
+	fetch 1,mem_keyboard_pair_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_pair_led_flag
+	bbit1 2,p_keyboard_device_led_on
+	branch p_keyboard_device_led_off
+
+
+p_keyboard_low_voltage_led_timer:
+	jam 0,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_keyboard_device_poweron_timer_count
+	nrtn blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOW_LED
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	bbit1 MOUSE_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,p_keyboard_low_voltage_led_blink_new_data
+	fetch 1,mem_keyboard_adc_low_volatage_led_timer_count
+	increase 1,pdata
+	store 1,mem_keyboard_adc_low_volatage_led_timer_count
+	sub pdata,20,null
+	ncall p_keyboard_adc_low_volatage_led_timer_count_clean,positive
+	beq 2,p_keyboard_low_voltage_led_on
+	beq 4,p_keyboard_low_voltage_led_off
+	beq 6,p_keyboard_low_voltage_led_on
+	beq 8,p_keyboard_low_voltage_led_off
+	rtn
+p_keyboard_adc_low_volatage_led_timer_count_clean:
+	jam 1,mem_keyboard_adc_low_volatage_led_timer_count
+	branch p_keyboard_low_voltage_led_off
+p_keyboard_low_voltage_led_on:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_active
+p_keyboard_low_voltage_led_off:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_inactive	
+
+p_keyboard_low_voltage_led_blink_new_data:
+	fetch 2,mem_mouse_no_data_timeout
+	fetcht 2,mem_mouse_no_data_timer
+	isub temp,temp
+	fetch 2,mem_adc_low_volatage_led_blink_timer
+	isub temp,null
+	nbranch p_keyboard_low_voltage_led_off,positive
+	jam 1,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 1,mem_keyboard_low_volatage_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_low_volatage_led_flag
+	bbit1 1,p_keyboard_low_voltage_led_on
+	branch p_keyboard_low_voltage_led_off
+
+p_keyboard_low_voltage_led_no_enter_lpm:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOW_LED
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	bbit1 MOUSE_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,p_mouse_low_voltage_led_no_enter_lpm_blink
+	fetch 1,mem_keyboard_adc_low_volatage_led_timer_count
+	sub pdata,10,null
+	branch mouse_lpm_mode_clear,positive
+	branch mouse_low_voltage_led_no_enter_lpm_next
+
+p_mouse_low_voltage_led_no_enter_lpm_blink:
+	fetch 1,mem_keyboard_low_volatage_led_blink_new_data_enable
+	nbranch mouse_lpm_mode_clear,blank
+	branch mouse_low_voltage_led_no_enter_lpm_next
+
+
+
+ifdef RGB_backlight
+p_keyboard_pwm_init:
+	arg 0,rega //sys clk 12mhz
+	call pwm_init
+	fetch 6,mem_rgb_pwm_conf
+	store 6,mem_pdatatemp
+	call pwm_out_set
+	fetch 2,mem_rgb_pwm_conf
+	branch pwm_disable
+	
+p_keyboard_rgb_red_led_on:
+	fetcht 1,mem_keyboard_led_r_gpio
+	branch gpio_out_inactive
+
+p_keyboard_rgb_red_led_off:
+	fetcht 1,mem_keyboard_led_r_gpio
+	branch gpio_out_active
+
+p_keyboard_rgb_green_led_on:
+	fetcht 1,mem_keyboard_led_g_gpio
+	branch gpio_out_inactive
+
+p_keyboard_rgb_green_led_off:
+	fetcht 1,mem_keyboard_led_g_gpio
+	branch gpio_out_active
+
+p_keyboard_rgb_blue_led_on:
+	fetcht 1,mem_keyboard_led_b_gpio
+	branch gpio_out_inactive
+
+p_keyboard_rgb_blue_led_off:
+	fetcht 1,mem_keyboard_led_b_gpio
+	branch gpio_out_active	
+	
+
+p_keyboard_rgb_led_control:
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_RED_STATUS,pdata
+	call p_keyboard_rgb_red_led_on,true
+	ncall p_keyboard_rgb_red_led_off,true
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_GREEN_STATUS,pdata
+	call p_keyboard_rgb_green_led_on,true
+	ncall p_keyboard_rgb_green_led_off,true
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_BLUE_STATUS,pdata
+	call p_keyboard_rgb_blue_led_on,true
+	ncall p_keyboard_rgb_blue_led_off,true
+	rtn
+
+p_keyboard_rgb_mode_switch:
+	call p_keyboard_keyvalue_clear_temp_end
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	call mouse_store_device_info_delay
+	jam RGB_BACKLIGHT_BREATHE_TPYE_BLUE,mem_backlight_breathe_type
+	jam 0,mem_rgb_pwm_breathe_flag
+	jam 10,mem_rgb_pwm_conf+5
+	fetch 1,mem_backlight_on_flag
+	increase 1,pdata
+p_keyboard_rgb_mode_switch_next:	
+	sub pdata,RGB_BACKLIGHT_STATUS_BREATHE,null
+	ncall p_keyboard_clear_pdata,positive
+	store 1,mem_backlight_on_flag
+	store 1,mem_mouse_retention
+	rtn
+	
+p_keyboard_rgb_on_type_switch:
+	call p_keyboard_keyvalue_clear_temp_end
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_backlight_on_flag
+	rtnne RGB_BACKLIGHT_STATUS_ON
+	call mouse_store_device_info_delay
+	fetch 1,mem_backlight_on_type
+	increase 1,pdata
+p_keyboard_rgb_on_type_switch_next:	
+	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
+	ncall p_keyboard_clear_pdata,positive
+	store 1,mem_backlight_on_type
+	store 1,mem_mouse_retention+1
+	rtn
+	
+p_keyboard_load_eerpom_rgb:
+	fetch 1,mem_mouse_retention
+	call p_keyboard_rgb_mode_switch_next
+	fetch 1,mem_mouse_retention+1
+	branch p_keyboard_rgb_on_type_switch_next
+
+p_keyboard_rgb_process:
+	fetch 1,mem_backlight_on_flag
+	beq RGB_BACKLIGHT_STATUS_BREATHE,p_keyboard_rbg_breathe_process
+	beq RGB_BACKLIGHT_STATUS_ON,p_keyboard_rgb_on_process
+	jam 0,mem_backlight_on_flag
+p_keyboard_rgb_off:
+	call p_keyboard_rgb_pwm_disable
+	jam 0,mem_rgb_on_color_temp
+	branch p_keyboard_rgb_led_control
+
+p_keyboard_rbg_breathe_process:
+	// timer = 0.3125 * mem_customize_timer_setup
+	fetcht 4,mem_ui_check_timer_setup
+	copy clkn_bt,pdata
+	isub temp,pdata
+	fetcht 2,mem_customize_timer_setup		// * 0.3125ms
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	rtn blank
+	copy clkn_bt,temp
+	storet 4,mem_ui_check_timer_setup
+	fetch 1,mem_rgb_pwm_breathe_flag
+	branch p_keyboard_rbg_breathe_up,blank
+	fetch 1,mem_rgb_pwm_conf+5
+	sub pdata,5,null
+	branch p_keyboard_rbg_breathe_color_switch,positive
+	increase -1,pdata
+	store 1,mem_rgb_pwm_conf+5
+	branch p_keyboard_rgb_pwm
+
+p_keyboard_rbg_breathe_color_switch:
+	jam 0,mem_rgb_pwm_breathe_flag
+	fetch 1,mem_backlight_breathe_type
+	increase 1,pdata
+	sub pdata,RGB_BACKLIGHT_BREATHE_TPYE_WHITE,null
+	ncall p_keyboard_clear_pdata,positive
+	store 1,mem_backlight_breathe_type
+	rtn
+
+p_keyboard_rbg_breathe_up:
+	fetch 1,mem_rgb_pwm_conf+5
+	increase 1,pdata
+	store 1,mem_rgb_pwm_conf+5
+	call p_keyboard_rgb_pwm
+	fetch 1,mem_rgb_pwm_conf+5
+	sub pdata,90,null
+	rtn positive
+	jam 1,mem_rgb_pwm_breathe_flag
+	rtn
+
+p_keyboard_rgb_pwm:
+	call p_keyboard_pwm_init
+	call p_keyboard_rgb_off+1
+	branch p_keyboard_breathe_tpye_select
+	
+p_keyboard_rgb_pwm_set:	
+	fetch 6,mem_rgb_pwm_conf
+	store 6,mem_pdatatemp
+	branch pwm_out_set
+
+p_keyboard_rgb_pwm_disable:
+	fetch 1,mem_keyboard_led_r_gpio
+	call pwm_disable
+	fetch 1,mem_keyboard_led_g_gpio
+	call pwm_disable
+	fetch 1,mem_keyboard_led_b_gpio
+	branch pwm_disable
+
+p_keyboard_breathe_tpye_select:
+	fetch 1,mem_backlight_breathe_type
+	beq RGB_BACKLIGHT_BREATHE_TPYE_RED,p_keyboard_breathe_tpye_red
+	beq RGB_BACKLIGHT_BREATHE_TPYE_GREEN,p_keyboard_breathe_tpye_green
+	beq RGB_BACKLIGHT_BREATHE_TPYE_BLUE,p_keyboard_breathe_tpye_blue
+	beq RGB_BACKLIGHT_BREATHE_TPYE_CYAN,p_keyboard_breathe_tpye_cyan
+	beq RGB_BACKLIGHT_BREATHE_TPYE_ORANGE,p_keyboard_breathe_tpye_orange
+	beq RGB_BACKLIGHT_BREATHE_TPYE_PURPLE,p_keyboard_breathe_tpye_purple
+	beq RGB_BACKLIGHT_BREATHE_TPYE_WHITE,p_keyboard_breathe_tpye_white
+p_keyboard_breathe_tpye_red:
+	fetch 1,mem_keyboard_led_r_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x01
+	store 1,mem_rgb_pwm_conf+1
+	branch p_keyboard_rgb_pwm_set
+
+p_keyboard_breathe_tpye_green:
+	fetch 1,mem_keyboard_led_g_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x02
+	store 1,mem_rgb_pwm_conf+1
+	branch p_keyboard_rgb_pwm_set
+
+p_keyboard_breathe_tpye_blue:
+	fetch 1,mem_keyboard_led_b_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x04
+	store 1,mem_rgb_pwm_conf+1
+	branch p_keyboard_rgb_pwm_set
+
+p_keyboard_breathe_tpye_cyan:
+	call p_keyboard_breathe_tpye_green
+	branch p_keyboard_breathe_tpye_blue
+
+p_keyboard_breathe_tpye_orange:
+	call p_keyboard_breathe_tpye_red
+	branch p_keyboard_breathe_tpye_green
+	
+p_keyboard_breathe_tpye_purple:
+	call p_keyboard_breathe_tpye_red
+	branch p_keyboard_breathe_tpye_blue
+
+p_keyboard_breathe_tpye_white:
+	call p_keyboard_breathe_tpye_red
+	call p_keyboard_breathe_tpye_green
+	branch p_keyboard_breathe_tpye_blue
+	
+p_keyboard_rgb_on_process:
+	call p_keyboard_rgb_pwm_disable
+	fetch 1,mem_backlight_on_type
+	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
+	ncall p_keyboard_clear_pdata,positive
+	store 1,mem_backlight_on_type
+	arg mem_rgb_on_color,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,mem_rgb_on_color_temp
+	branch p_keyboard_rgb_led_control
+
+p_keyboard_rgb_on_timer:
+	fetch 2,mem_mouse_no_data_timer
+	rtn blank
+	fetch 2,mem_mouse_no_data_timeout
+	fetcht 2,mem_mouse_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_led_on_time_init
+	isub temp,pdata
+	rtn positive
+	jam 0,mem_backlight_on_flag
+	branch p_keyboard_rgb_off	
+endif
+
+p_keyboard_discover_setting_led_gpio:
+	rtn
+
+p_keyboard_long_press_timer:
+	arg mem_same_keyvalue_timer,regc
+	arg p_keyboard_long_press_timerout,regb
+	branch timer_single_step_2B
+
+p_keyboard_long_press_timerout:
+	jam 1,mem_same_keyvalue_timerout_flag	
+	branch keyboard_app_enter_hibernate
+	
+
+p_keyboard_check_no_data_timeout_timer:
+ifdef usb_enable	
+	fetch 1,mem_mouse_usb_vdd_status_current
+	rtneq MOUSE_USB_INTERFACE_INSERT
+endif	
+	arg mem_mouse_no_data_timer,regc
+ifdef g24_enable
+	arg p_keyboard_check_no_data_timeout,regb
+else
+	arg keyboard_check_no_data_timeout,regb
+endif
+	branch timer_single_step_2B
+
+ifdef g24_enable
+p_keyboard_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_24g_hibernate_set
+	branch mouse_disconnect
+endif
+
+p_keyboard_key_press_timer:
+ifdef g24_enable
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,p_keyboard_device_select_g24_press_timer
+	call p_keyboard_device_select_g24_nopress_timer
+endif
+ifdef ble_enable
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,p_keyboard_device_select_bt_press_timer
+	branch p_keyboard_device_select_bt_nopress_timer
+else
+	rtn
+endif	
+
+ifdef g24_enable
+p_keyboard_device_select_g24_press_timer:
+	fetch 1,mem_keyboard_switch_g24_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_g24_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_g24_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call mouse_stop_bluetooth_mode
+p_keyboard_24g_start_pair_mode:	
+	call p_keyboard_device_led_all_off
+	branch keyboard_24g_start_pair_mode
+
+p_keyboard_device_select_g24_nopress_timer:
+	jam 0,mem_keyboard_switch_g24_press_timer
+ifdef multi_mode
+	fetch 1,mem_keyboard_switch_g24_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_g24_enable
+	call keyboard_store_device_info
+	branch mouse_soft_reset
+endif
+	rtn
+endif
+
+ifdef ble_enable
+p_keyboard_device_select_bt_press_timer:
+	fetch 1,mem_keyboard_switch_bt_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_bt_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_bt_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	branch keyboard_long_button_bt_discovery+3
+
+p_keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+ifdef multi_mode	
+	fetch 1,mem_keyboard_switch_bt_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_bt_enable
+	call keyboard_store_device_info
+	branch mouse_soft_reset
+endif
+	rtn
+endif
+
+
+p_keyboard_idle:
+ifdef usb_enable
+	call p_keyboard_usb_isr
+	call p_keyboard_usb_mode
+endif	
+	call p_keyboard_low_voltage_led_no_enter_lpm
+	branch ui_check_paring_button
+
+p_keyboard_start_work:
+ifdef RGB_backlight	
+	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
+	call p_keyboard_load_eerpom_rgb,user
+endif
+p_keyboard_start_work_adc_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_ADC,p_keyboard_start_work_next
+	call mouse_adc_gpio_set
+	call p_keyboard_low_voltage_param_set
+	call enable_adc
+	call vdd_calculate_by_mode
+	div pdata,10
+	call get_div_result
+	store 2,mem_mouse_vdd_now_vol
+	fetch 2,mem_mouse_vdd_empty_vol
+	div pdata,2
+	call get_div_result
+	fetcht 2,mem_mouse_vdd_now_vol
+	isub temp,null
+	branch p_keyboard_start_work_adc_check,positive // now vol < empty vol/2  check again
+	arg mem_mouse_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down	
+p_keyboard_start_work_next:
+	fetch 1,mem_keyboard_pairing_type
+	call keyboard_enable_bt_button_pairing,blank
+	fetch 1,mem_keyboard_bt_button_flag
+	nrtn blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_reconn_general_dongle
+	call mouse_bluetooth_fast_conn_disable
+ifdef multi_mode
+	beq MODE_BT_DEVICE1,p_keyboard_start_ble1_reconnect
+	beq MODE_BT_DEVICE2,p_keyboard_start_ble2_reconnect
+	beq MODE_BT_DEVICE3,p_keyboard_start_ble3_reconnect
+endif	
+p_keyboard_start_ble1_reconnect:	
+	fetch 6,mem_device1_addr
+p_keyboard_start_ble_reconnect:	
+ifdef ex_eeprom
+	fetcht 6,mem_keyboard_factory_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+else	
+	branch mouse_bluetooth_fast_conn_init,blank
+endif
+	branch mouse_start_reconnect_device
+
+ifdef multi_mode
+p_keyboard_start_ble2_reconnect:
+	fetch 6,mem_device2_addr
+	branch p_keyboard_start_ble_reconnect
+
+p_keyboard_start_ble3_reconnect:
+	fetch 6,mem_device3_addr
+	branch p_keyboard_start_ble_reconnect
+endif
+
+
+p_keyboard_keyscan:
+	call p_keyboard_gpio_init
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value_new
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high
+//	call keyboard_clk_state_high	
+	call keyboard_clk_input	
+p_keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,p_keyboard_keyscan_reset_exmcu 				// 953us reset exmcu
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch p_keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+p_keyboard_keyscan_wait_wake_next:	
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu clk done
+	call gpio_get_bit
+	branch p_keyboard_keyscan_wait_wake_next,true
+	
+	call p_keyboard_keyscan_get_exmcu_value
+	call p_keyboard_keyscan_get_mcu_value
+	call keyboard_clk_input
+	call keyboard_stb_state_high							// exmcu sleep
+p_keyboard_keyscan_copy_value:
+	fetch 2,mem_kb_excol_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_compare_col_excol_gpio_loop:		// loop 12 times
+	ifetcht 1,regb
+	fetch 2,mem_kb_col_ptr
+	copy pdata,rega
+	copy rega,regc
+	arg 20,loopcnt
+p_keyboard_compare_col_gpio_loop:
+	ifetch 1,rega
+	isub temp,null
+	branch p_keyboard_copy_value_exmcu_to_mcu,zero
+	increase 1,rega
+	loop p_keyboard_compare_col_gpio_loop
+p_keyboard_compare_col_excol_gpio_loop_next:	
+	increase 1,regb
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,11,null
+	branch p_keyboard_compare_col_excol_gpio_loop,positive
+	call p_keyboard_gpio_pu_idle
+	branch p_keyboard_key_row_init
+
+	
+p_keyboard_copy_value_exmcu_to_mcu:
+	fetch 2,mem_keyscan_value_ptr
+	copy pdata,contw
+	copy rega,pdata	
+	isub regc,pdata 
+	iadd contw,contw							// offset = rega-regc
+	fetch 2,mem_keyscan_exmcu_value_ptr
+	copy pdata,regc
+	fetch 1,mem_keyscan_col_loop_count
+	iadd regc,regc	
+	ifetch 1, regc								// offset = mem_keyscan_col_loop_count
+	istore 1,contw
+	branch p_keyboard_compare_col_excol_gpio_loop_next
+
+p_keyboard_keyscan_get_exmcu_value:
+	jam 0,mem_keyscan_exmcu_reset_count
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_keyscan_exmcu_start_loop:	// clk:0 1 0 1 0 1 0 1 0 1 0 1
+	call keyboard_clk_state_low
+	call p_keyboard_keyscan_exmcu_get_col_value
+	call keyboard_clk_state_high
+	call p_keyboard_keyscan_exmcu_get_col_value
+	sub pdata,11,null
+	branch p_keyboard_keyscan_exmcu_start_loop,positive
+	branch keyboard_clk_state_low
+
+p_keyboard_keyscan_reset_exmcu:
+	branch p_keyboard_keyscan
+
+
+
+p_keyboard_keyscan_exmcu_get_col_value:
+	jam 0,mem_keyscan_value_temp
+	call p_keyboard_keyscan_get_col_value
+	fetch 2,mem_keyscan_exmcu_value_ptr
+	branch keyboard_keyscan_value_store
+
+p_keyboard_keyscan_get_col_value:
+	nop 120
+	branch keyboard_keyscan_get_col_value
+
+p_keyboard_keyscan_get_mcu_value:
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_keyscan_mcu_start:		// loop 20 times
+	jam 0,mem_keyscan_value_temp
+	ifetcht 1,regb
+	isolate1 7,temp								// exmcu gpio
+	branch p_keyboard_keyscan_mcu_start_loop,true
+	call gpio_out_active
+	call p_keyboard_keyscan_get_col_value
+	ifetcht 1,regb
+	call gpio_out_inactive
+	ifetcht 1,regb
+	call keyboard_gpio_config_input_pu
+p_keyboard_keyscan_mcu_start_loop:
+	increase 1,regb
+	fetch 2,mem_keyscan_value_ptr	
+	call keyboard_keyscan_value_store
+	sub pdata,19,null						//sub pdata,19,null
+	branch p_keyboard_keyscan_mcu_start,positive
+	rtn	
+
+p_keyboard_key_process:
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_check,regb
+	arg 20,loopcnt
+	call string_compare
+	nbranch keyboard_press_change_or_no_key,zero	
+	call p_keyboard_keyscan_value_current_zero_check
+	call keyboard_press_change_or_no_key,blank
+
+	call keyboard_ghost_key_check
+	fetch 1,mem_mouse_ghost_flag
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_PRESS
+	rtneq CAMMBINATION_KEY_HOLD
+	rtneq CAMMBINATION_KEY_WAIT_RELEASE
+
+	// keyvalue get from map,and in or out process
+	jam 0,mem_keyscan_col_loop_count
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_old,regb
+p_keyboard_keyvalue_process:		// loop 20 times
+	ifetcht 1,rega
+	ifetch 1,regb
+	ixor  temp,pdata
+	branch p_keyboard_keyvalue_process_loop,blank
+	store 1,mem_keyscan_value_temp
+	storet 1,mem_keyboard_press_flag_temp
+	istoret 1,regb
+	jam 1,mem_keyboard_data_change_flag
+	jam 0,mem_keyboard_keyvalue_bit_loop_count
+p_keyboard_keyvalue_change:			// loop 8 times
+	fetch 1,mem_keyscan_value_temp
+	bbit0 0,p_keyboard_keyvalue_change_loop
+	fetch 1,mem_keyscan_col_loop_count
+	mul32 pdata,8,pdata
+	fetcht 1,mem_keyboard_keyvalue_bit_loop_count
+	iadd temp,pdata									// map offset
+	arg mem_keyboard_keyvalue_map_new,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,mem_keyboard_keyvalue_temp				// keyvalue
+	call keyboard_keyvalue_fn_replace
+	call p_keyboard_keyvalue_commbination_replace
+	call p_keyboard_keyvalue_in_out
+p_keyboard_keyvalue_change_loop:
+	fetch 1,mem_keyscan_value_temp
+	rshift pdata,pdata
+	store 1,mem_keyscan_value_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rshift pdata,pdata
+	store 1,mem_keyboard_press_flag_temp
+	fetch 1,mem_keyboard_keyvalue_bit_loop_count
+	increase 1,pdata
+	store 1,mem_keyboard_keyvalue_bit_loop_count
+	sub pdata,7,null
+	branch p_keyboard_keyvalue_change,positive
+p_keyboard_keyvalue_process_loop:
+	increase 1,rega
+	increase 1,regb	
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,19,null
+	branch p_keyboard_keyvalue_process,positive
+	rtn
+
+p_keyboard_keyscan_value_current_zero_check:
+ifdef RGB_backlight
+	fetch 8,mem_keyscan_value_current
+	nbranch p_keyboard_load_eerpom_rgb,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch p_keyboard_load_eerpom_rgb,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch p_keyboard_load_eerpom_rgb,blank
+else
+	fetch 8,mem_keyscan_value_current
+	nrtn blank
+	fetch 8,mem_keyscan_value_current+8
+	nrtn blank
+	fetch 4,mem_keyscan_value_current+16
+	nrtn blank
+endif
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_NULL
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	rtn
+
+p_keyboard_keyvalue_commbination_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_SEARCH,p_keyboard_commbination_search
+	branch keyboard_keyvalue_commbination_replace+2
+
+p_keyboard_commbination_search:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_MAC,p_keyboard_commbination_mac_search
+	setarg HID_KEY_AC_SEARCH
+	branch keyboard_keyvalue_store_temp
+p_keyboard_commbination_mac_search:	
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress	
+
+p_keyboard_keyvalue_in_out:
+	fetch 1,mem_keyboard_keyvalue_temp
+	arg HID_KEY_LEFT_CTRL,temp
+	isub temp,null
+	nbranch p_keyboard_keyvalue_standard,positive		// value < 0xe0
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	nbranch p_keyboard_keyvalue_consumer,positive		// value  > 0xe7
+	and_into 0x07,pdata
+	copy pdata,queue
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,p_keyboard_keyvalue_control_key_in
+p_keyboard_keyvalue_control_key_out:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset0 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+p_keyboard_keyvalue_control_key_in:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset1 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+
+p_keyboard_keyvalue_standard:
+	jam 0,mem_keyboard_keyvalue_buffer+8
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,p_keyboard_keyvalue_standard_in
+p_keyboard_keyvalue_standard_out:	
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+p_keyboard_keyvalue_standard_out_loop:
+	ifetch 1,contr
+	isub temp,null
+	nbranch p_keyboard_keyvalue_standard_out_next,zero
+	ifetch 1,contr
+	increase -2,contr
+	istore 1,contr
+	rtn blank
+	increase 1,contr
+	istoret 1,contr
+p_keyboard_keyvalue_standard_out_next:	
+	loop p_keyboard_keyvalue_standard_out_loop
+	rtn
+	
+p_keyboard_keyvalue_standard_in:
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+p_keyboard_keyvalue_standard_in_loop:
+	ifetch 1,contr
+	branch p_keyboard_keyvalue_standard_in_data,blank
+	isub temp,null
+	rtn zero
+	loop p_keyboard_keyvalue_standard_in_loop
+	rtn
+p_keyboard_keyvalue_standard_in_data:
+	increase -1,contr
+	istoret 1,contr
+	rtn
+
+p_keyboard_keyvalue_consumer:
+	jam KEYBOARD_CONSUMER_KEY_PRESS,mem_keyboard_consumer_key_status
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate0 0,pdata
+	call p_keyboard_consumer_key_release,true
+	branch p_keyboard_keyvalue_standard
+	
+p_keyboard_consumer_key_release:
+	jam KEYBOARD_CONSUMER_KEY_RELEASE,mem_keyboard_consumer_key_status
+	rtn
+
+p_keyboard_keyvalue_fn_replace:
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate1 0,pdata
+	call keyboard_commbination_delay_release_clear,true
+	fetch 1,mem_keyboard_fn_flag
+	ncall p_keyboard_keyvalue_fn_replace_press,blank
+ifdef RGB_backlight	
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_RIGHT_ALT,p_keyboard_rgb_on_type_switch
+	beq HID_KEY_RIGHT_GUI,p_keyboard_rgb_mode_switch
+endif
+	branch keyboard_keyvalue_fn_replace+5
+	
+p_keyboard_keyvalue_fn_replace_press:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_Q,p_keyboard_keyvalue_os_andriod
+	beq HID_KEY_W,p_keyboard_keyvalue_os_windows
+	beq HID_KEY_E,p_keyboard_keyvalue_os_ios
+	branch keyboard_keyvalue_fn_replace_press+1
+
+	
+p_keyboard_keyvalue_os_andriod:
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit0 0,p_keyboard_keyvalue_clear_temp_end
+	jam SYSTEM_OS_ANDRIOD,mem_kb_computer_system
+ifdef ex_eeprom	
+	call mouse_store_device_info_delay
+endif	
+p_keyboard_keyvalue_clear_temp:
+	jam 6,mem_keyboard_mode_led_on_timer
+p_keyboard_keyvalue_clear_temp_end:	
+	setarg 0
+	branch keyboard_keyvalue_store_temp
+
+p_keyboard_keyvalue_os_windows:
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit0 0,p_keyboard_keyvalue_clear_temp_end
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+ifdef ex_eeprom	
+	call mouse_store_device_info_delay
+endif
+	branch p_keyboard_keyvalue_clear_temp
+
+p_keyboard_keyvalue_os_ios:
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit0 0,p_keyboard_keyvalue_clear_temp_end
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+ifdef ex_eeprom	
+	call mouse_store_device_info_delay
+endif
+	branch p_keyboard_keyvalue_clear_temp
+
+p_keyboard_special_key_check:
+//	call p_keyboard_device_select
+	branch keyboard_special_key_check+1
+
+/*
+p_keyboard_device_select:
+	call disable_user
+ifdef g24_enable	
+	call p_keyboard_device_select_g24
+endif
+ifdef ble_enable
+	call p_keyboard_device_select_bt1
+ifdef multi_mode	
+	call p_keyboard_device_select_bt2
+	call p_keyboard_device_select_bt3
+endif
+endif
+ifdef usb_enable
+	call p_keyboard_device_select_usb
+endif	
+	branch p_keyboard_clear_change_flag,user
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	rtn
+	
+p_keyboard_clear_change_flag:
+	jam 0,mem_keyboard_data_change_flag
+	rtn
+
+ifdef g24_enable		
+p_keyboard_device_select_g24:
+	fetch 1,mem_keyboard_switch_device_to_g24
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_g24+1
+	isub temp,null
+	branch p_keyboard_device_select_g24_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch p_keyboard_device_select_g24_press,zero
+	rtn
+
+
+p_keyboard_device_select_g24_press:
+	call enable_user
+	fetch 1,mem_keyboard_switch_device_flag
+	set1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+ifdef multi_mode	
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	jam 1,mem_keyboard_switch_g24_enable
+endif	
+	rtn
+endif	
+
+ifdef ble_enable
+p_keyboard_device_select_bt1:
+	fetch 1,mem_keyboard_switch_device_to_bt1
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt1+1
+	isub temp,null
+	branch p_keyboard_device_select_bt1_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch p_keyboard_device_select_bt1_press,zero
+	rtn
+
+p_keyboard_device_select_bt1_press:
+	call enable_user
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+ifdef multi_mode	
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+endif	
+	rtn
+
+ifdef multi_mode
+p_keyboard_device_select_bt2:
+	fetch 1,mem_keyboard_switch_device_to_bt2
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt2+1
+	isub temp,null
+	branch p_keyboard_device_select_bt2_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch p_keyboard_device_select_bt2_press,zero
+	rtn
+
+p_keyboard_device_select_bt2_press:
+	call enable_user
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE2
+	jam MODE_BT_DEVICE2,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+p_keyboard_device_select_bt3:
+	fetch 1,mem_keyboard_switch_device_to_bt3
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt3+1
+	isub temp,null
+	branch p_keyboard_device_select_bt3_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch p_keyboard_device_select_bt3_press,zero
+	rtn
+
+p_keyboard_device_select_bt3_press:
+	call enable_user
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE3
+	jam MODE_BT_DEVICE3,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+endif	
+endif
+*/
+
+ifdef usb_enable
+p_keyboard_device_select_usb:
+	fetch 1,mem_keyboard_switch_device_to_usb
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_usb+1
+	isub temp,null
+	branch p_keyboard_device_select_usb_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch p_keyboard_device_select_usb_press,zero
+	rtn
+
+p_keyboard_device_select_usb_press:
+	call enable_user
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	jam MODE_USB_DEVICE,mem_device_flag
+	call keyboard_store_device_info	
+	branch mouse_soft_reset
+endif	
+
+p_keyboard_motion:
+	disable user
+	jam 0,mem_customer_key
+	jam 0,mem_customer_data_trigger
+	jam 0,mem_customer_data_trigger_last
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_PRESS,keyboard_commbination_key_press_process
+	beq CAMMBINATION_KEY_HOLD,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_WAIT_RELEASE,keyboard_commbination_key_wait_release_process
+	beq CAMMBINATION_KEY_NULL,keyboard_commbination_key_null_process
+	fetch 1,mem_keyboard_data_change_flag
+	branch p_keyboard_no_key_press,blank
+	branch keyboard_motion+13
+
+p_keyboard_no_key_press:
+	fetch 1,mem_device_flag
+	rtnne MODE_24G_DEVICE
+	branch keyboard_no_key_press+2
+
+p_keyboard_device_data_tpye_check:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,p_keyboard_device_data_tpye_check_next
+	jam 0,mem_24g_repeat_send_flag
+	fetch 2,mem_keyboard_tx_data
+	ncall keyboard_set_repeat_send_flag,blank
+	fetch 6,mem_keyboard_tx_data+3
+	ncall keyboard_set_repeat_send_flag,blank
+
+p_keyboard_device_data_tpye_check_next:
+	fetch 1,mem_keyboard_tx_data
+	beq HID_REPORTID_KEY_STANDARD,p_keyboard_standard_data_send
+	branch keyboard_device_data_tpye_check_next+1
+
+p_keyboard_standard_data_send:
+	jam DEVICE_DATA_TPYE_STANDARD_KEYBOARD,mem_keyboard_data_send_flag
+	call keyboard_clear_key_data
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_standard_data_send_end
+	branch keyboard_standard_data_send+4
+
+
+p_keyboard_cb_fuction:
+	setarg p_keyboard_24g_before_lpm_sleep
+	store 2,mem_cb_before_lpm_sleep
+	setarg keyboard_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg keyboard_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	setarg p_keyboard_lpm_before_common
+	store 2,mem_cb_24g_lpm_before
+ifdef ble_enable	
+	setarg p_keyboard_le
+	store 2,mem_cb_le_process
+endif	
+	setarg p_keyboard_process_lpm_before
+	store 2,mem_cb_before_lpm
+	
+	setarg keyboard_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg keyboard_idle
+	store 2,mem_cb_idle_process
+	setarg keyboard_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg mouse_le_bb_event_connect_complete
+	store 2,mem_cb_att_write	
+	setarg keyboard_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg mouse_spi_write_flash_cb
+	store 2,mem_cb_spi_flash_write_complate
+//	setarg p_mouse_lpm_check_wake_lock
+//	store 2,mem_cb_check_wakelock
+	setarg mouse_le_transmit
+	store 2,mem_cb_ble_transmit
+	setarg mouse_set_lpm_mult
+	store 2,mem_cb_bt_set_mult
+	rtn
+
+p_keyboard_24g_before_lpm_sleep:
+	fetch 1,mem_device_flag
+	rtnne MODE_24G_DEVICE
+	branch mouse_24g_before_lpm_sleep+2
+
+p_keyboard_lpm_before_common:
+	call p_clear_wake
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_usb_level_check_gpio
+	set1 7,temp
+	call gpio_set_wake
+
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+p_keyboard_key_col_wake_init:
+	ifetcht 1,regb
+	isolate1 7,temp				// exmcu gpio
+	ncall gpio_out_active,true
+	increase 1,regb
+	loop p_keyboard_key_col_wake_init
+
+	call p_keyboard_gpio_pu_idle
+	jam 0,mem_qdec_set_flag
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+p_keyboard_key_row_wake_init:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keyboard_key_row_wake_set,zero
+	increase 1,regb
+	loop p_keyboard_key_row_wake_init
+	call p_keyboard_puchk_set_check
+	fetcht 1,mem_mouse_reuse_2ice_gpio
+	call mouse_gpio_config_input_pu
+	call mouse_gpio_set_high_impedance
+	branch mouse_adc_gpio_set_before_hibernate
+	
+p_gpio_set_wake_by_current_state:
+	sub temp,GPIO_DISABLE,null
+	rtn zero
+	set1 GPIO_ACTIVE_BIT,temp
+	call gpio_get_bit
+	nbranch p_gpio_set_low_pullup,true
+	nsetflag true,GPIO_ACTIVE_BIT,temp
+	branch gpio_set_wake
+
+
+p_gpio_set_low_pullup:
+	jam 1,mem_qdec_set_flag
+	call gpio_set_high_impedance
+	arg 6,debug
+	branch gpio_set_wake_high
+
+	
+p_clear_wake:
+	setarg 0
+	set1 21,pdata				//gpio5(ice) enable wakeup
+	store 8,mem_gpio_wakeup_cfg
+	setarg 0
+	istore 4,contw
+	rtn	
+
+p_keyboard_process_lpm_before:
+	rtnmark1 mark_24g
+	branch p_keyboard_lpm_before_common
+
+/*
+p_mouse_lpm_check_wake_lock:
+	bmark1 mark_24g,app_get_lpm_wake_lock
+	fetch 1,mem_mouse_le_conn_param_reject
+	beq LE_LPM_DISABLE,app_get_lpm_wake_lock
+	branch app_put_lpm_wake_lock
+*/
+
+p_keyboard_before_hibernate:
+	jam 0xff,mem_sensor_motion_gpio
+	call disable_authrom
+	call keyboard_device_led_all_off
+	branch p_keyboard_setgpio_hibernate
+
+p_keyboard_device_led_all_off:
+	call keyboard_power_led_off	
+	call p_keyboard_device_led_off
+	call p_keyboard_numlock_led_off
+	branch keyboard_capslock_led_off
+	
+
+p_keyboard_app_enter_hibernate:
+	call p_keyboard_setgpio_hibernate
+	branch app_enter_hibernate
+
+
+p_keyboard_setgpio_hibernate:
+	call p_clear_wake
+	call keyboard_device_led_all_off
+ifdef RGB_backlight	
+	call p_keyboard_rgb_off
+endif	
+	branch p_keyboard_lpm_before_common
+
+p_keyboard_gpio_pu_idle:
+	arg core_gpio_conf,contr
+	arg GPIO_NUMBER,loopcnt
+p_keyboard_gpio_pu_idle_loop:
+	ifetch 1,contr
+	nbranch p_keyboard_gpio_pu_idle_configured,blank
+	setarg gpcfg_pullup
+	add contr,-1,contw
+	istore 1,contw
+p_keyboard_gpio_pu_idle_configured:
+	loop p_keyboard_gpio_pu_idle_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch p_keyboard_gpio_pu_idle_loop
+
+p_keyboard_puchk_set_check:
+	fetch 1,mem_qdec_set_flag
+	branch p_keyboard_puchk_disable,blank
+	branch p_keyboard_puchk_enable
+
+
+p_keyboard_puchk_disable:
+	setarg 0x10			//bit0-1:key_delay	bit2-3:pu_delay		bit4-6:interval	bit7:enable 
+p_keyboard_puchk_set:
+	store 1,core_puwakeup
+	until null,lpo_edge
+	rtn
+
+p_keyboard_puchk_enable:
+	setarg 0x80			//bit0-1:key_delay	bit2-3:pu_delay		bit4-6:interval	bit7:enable 
+	branch p_keyboard_puchk_set
+
+
+p_lpm_dispatch:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_keyboard_fn_flag
+	nrtn blank
+	fetch 1,mem_keyboard_control_key_flag
+	nrtn blank
+	fetch 1,mem_mouse_direct_timer
+	nrtn blank
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+ifdef RGB_backlight	
+	fetch 1,mem_backlight_on_flag
+	rtneq RGB_BACKLIGHT_STATUS_BREATHE
+endif	
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	branch lpm_dispatch+4
+
+
+p_lpm_sleep:
+	//call xtal_fast_wake
+	fetch 2,mem_cb_before_lpm_sleep
+	call callback_func
+p_lpm_sleep_skip_cb_function:
+	fetch 4,mem_sleep_counter_all	// sleep total time, 32k unit
+	iadd temp,pdata
+	store 4,mem_sleep_counter_all
+	call p_lpm_save_context
+
+	branch lpm_sleep_skip_cb_function+4
+
+p_lpm_save_context:
+	storer mark,8,mem_saved_mark
+	arg core_gpio_conf,contr
+	arg mem_saved_gpio,contw
+	call memcpy16
+	arg core_gpio_conf_hi,contr
+	call memcpy8
+	fetch 1,core_spid_ctrl
+	store 1,mem_saved_spidctrl
+	copy temp,regb
+p_lpm_write_gpio_wakeup:		// gpio auto wakeup
+	arg 12,loopcnt
+	arg mem_gpio_wakeup_cfg,rega
+	arg core_gpio_wakeup_cfg,regc
+	until null,lpo_edge
+p_lpm_write_gpio_loop:
+	ifetch 1,rega
+	ifetcht 1,regc
+	isub temp,null
+	branch p_lpm_write_gpio_loop_next,zero
+	istore 1,regc
+	until null,lpo_edge
+p_lpm_write_gpio_loop_next:	
+	increase 1,rega
+	increase 1,regc
+	loop p_lpm_write_gpio_loop
+	copy regb,temp
+	rtn
+
+p_app_init:
+p_keyboard_init:
+	call enable_authrom
+ifdef ble_enable	
+	call p_le_exchange_hid_map
+endif
+	call p_keyboard_setting_config	
+	call p_keyboard_gpio_init
+	call p_keyboard_low_vol_mult_set
+	rtn wake
+ifdef RGB_backlight
+	fetcht 1,mem_keyboard_led_r_gpio
+	call gpio_out_active
+	fetcht 1,mem_keyboard_led_g_gpio
+	call gpio_out_active
+	fetcht 1,mem_keyboard_led_b_gpio
+	call gpio_out_active
+endif
+	call p_keyboard_device_led_all_off
+	fetch 1,mem_keyboard_device_poweron_timer_count_init
+	store 1,mem_keyboard_device_poweron_timer_count
+	call keyboard_cb_fuction
+ifdef usb_enable	
+	fetch 1,mem_device_flag
+	beq MODE_USB_DEVICE,p_keyboard_usb_mode_start
+endif	
+	branch keyboard_init_wireless
+
+p_keyboard_setting_config:
+	call app_param_init
+	call p_keyboard_puchk_disable
+	rtn wake
+	call g24_transmit_init
+ifdef g24_enable
+	call g24_chmap_param_init
+endif	
+	fetch 1,mem_device_flag
+	store 1,mem_device_flag_temp_new
+	fetch 3,mem_le_lap+3
+	store 3,mem_mouse_le_lap_temp
+	call keyboard_param_init
+	setarg mem_le_tx_buffer0_omemalloc_new
+	store 2,mem_ble_l2cap_tx_buff0_ptr
+	setarg MOUSE_BLE_L2CAP_TXBUFF_SIZE_NEW
+	store 2,mem_ble_l2cap_tx_buff_size_ptr
+ifdef RGB_backlight	
+	call p_keyboard_pwm_init
+endif
+	call le_set_fixed_ltk_justwork
+	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+ifndef ex_eeprom	
+	bbit1 MOUSE_ENABLE_OTP,keyboard_load_otp_info_check
+endif	
+ifdef ex_eeprom
+	bbit1 MOUSE_ENABLE_EEPROM,p_keyboard_load_eeprom_info_check
+endif	
+	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_check
+	rtn
+
+p_keyboard_select_reconn_device:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+	beq REC_4_MODE,p_keyboard_load_le_device
+	rtn
+	
+p_keyboard_load_le_device:
+	ifetch 6,contr
+	store 6,mem_hci_plap
+	branch mouse_load_le_device_end+3
+
+p_keyboard_gpio_init:
+	call p_clear_wake
+	fetcht 1,mem_config_select_device_button_gpio
+	storet 1,mem_sensor_motion_gpio
+	call keyboard_gpio_config_input_pu
+ifdef ice_disable
+	call lpm_write_ice_disable
+endif	
+	//row init
+	setarg mem_key_row_gpio
+	store 2,mem_kb_row_ptr
+	//col init
+	setarg mem_key_col_gpio
+	store 2,mem_kb_col_ptr
+	//portA and B init
+	setarg mem_key_excol_gpio
+	store 2,mem_kb_excol_ptr
+
+	call p_keyboard_key_row_init
+
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+	branch keyboard_key_cow_init
+
+p_keyboard_key_row_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+p_keyboard_key_row_init_loop:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keboard_gpio_set_high_impedance,zero
+	increase 1,regb
+	loop p_keyboard_key_row_init_loop
+	branch p_lpm_write_gpio_wakeup
+
+p_keyboard_low_vol_mult_set:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,p_keyboard_low_vol_mult_ble_set
+	call g24_interval_param_8ms
+	branch keyboard_low_vol_mult_set+2
+
+p_keyboard_low_vol_mult_ble_set:
+	setarg 160			// 320ms
+	call p_keyboard_mult_auto_get
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	setarg 80			// 100ms
+	branch p_keyboard_mult_auto_get
+
+p_keyboard_mult_auto_get:
+	fetcht 2,mem_le_interval_min
+	idiv temp
+	call get_div_result
+	store 1,mem_lpm_mult_init	
+	branch keyboard_low_vol_mult_ble_set+4
+	fetch 1,mem_mouse_current_mult_timer
+	branch mouse_current_mult_reinit,blank
+	rtn
+
+p_ui_ipc_send_event:
+	fetch 1,mem_fifo_temp
+	arg 8,loopcnt
+	arg mem_ipc_fifo_bt2c51,contr
+p_ui_ipc_fifo_check:
+	ifetcht 1,contr
+	isub temp,null
+	rtn zero
+	loop p_ui_ipc_fifo_check
+	branch ui_ipc_send_event+1
+
+p_check_51cmd_once_continue:
+	fetch 1,mem_fifo_temp
+	beq BT_CMD_STORE_RECONN_INFO_LE,p_eeprom_store_le_reconn_info
+	branch check_51cmd_once_continue+4
+
+p_eeprom_store_le_reconn_info:
+	jam REC_4_MODE,mem_record_bt_mode
+p_eeprom_store_reconn_info:
+	fetch 1,mem_device_option
+	beq DVC_OP_KEYBOARD,keyboard_store_remote_bdaddr
+	branch eeprom_store_reconn_info+1
+
+///////////******************ble patch start*************************//////////////
+ifdef ble_enable
+p_keyboard_start_discovery:
+	call p_keyboard_device_led_all_off+1
+	setarg 0
+	store 2,mem_otp_store_device_info_flag
+	branch keyboard_start_discovery+5
+	
+p_keyboard_stop_discovery:
+	setarg 0
+	store 2,mem_mouse_discovery_timer	
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+	jam 0,mem_mouse_bluetooth_reconnect_timeout
+	call mouse_stop_le_adv
+	fetch 1,mem_keyboard_device_poweron_timer_count
+	branch p_keyboard_device_led_all_off+1,blank
+	rtn
+
+p_keyboard_le:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,p_keyboard_le_next
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+p_keyboard_le_next:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_24G_PAIRING_FLAG,p_keyboard_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,p_keyboard_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,p_keyboard_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,p_keyboard_le_send_empty_packet
+	call keyboard_motion
+	nrtn user
+//	call mouse_current_mult_update
+	fetch 1,mem_customer_key
+	beq 1,mouse_le_send_keyboard_package_data	
+	rtn
+
+p_keyboard_le_send_empty_packet:
+	jam 0,mem_customer_data_trigger
+	branch mouse_le_send_keyboard_package_data
+
+
+p_le_check_retransmit_timesout:
+	fetch 1,mem_le_conn_rcv_new
+	arg 256,regc
+	iadd regc,pdata
+	rtn
+p_le_got_first_packet:
+	branch p_le_got_first_packet_new
+p_le_slave_match:
+	call p_le_check_retransmit
+	branch le_slave_match+1
+	
+p_le_check_retransmit:
+	fetch 1,mem_le_conn_first_rcv
+	rtn blank
+	fetch 1,mem_le_check_retransmit_flag
+	nrtn blank
+	fetcht 1,mem_le_conn_first_rcv
+	fetch 1,mem_le_conn_rcv_new
+	isub temp,null
+	ncall p_le_check_retransmit_timesout,positive	
+	isub temp,pdata
+	sub pdata,100,null
+	branch p_le_check_retransmit_count,positive
+	fetch 1,mem_le_retransmit_cnt
+	sub pdata,20,null
+	ncall p_app_ble_disconnect,positive
+	jam 1,mem_le_check_retransmit_flag
+	rtn 
+p_app_ble_disconnect:
+	jam 1,mem_le_check_retransmit_discon_flag
+	branch app_ble_disconnect
+p_le_check_retransmit_count:
+	fetcht 1,mem_le_arq
+	fetch 1,mem_le_rxbuf_data_header
+	rshift pdata,pdata
+	ixor temp,pdata
+	isolate1 nesn,pdata
+	setarg 0
+	fetcht 1,mem_le_retransmit_cnt
+	setflag true,0,pdata
+	iadd temp,temp
+	storet 1,mem_le_retransmit_cnt
+	rtn
+
+p_le_got_first_packet_new:
+	fetch 1,mem_le_conn_rcv
+	increase 1,pdata
+	store 1,mem_le_conn_rcv
+	nbranch p_le_got_first_packet_new+7,match
+	fetch 1,mem_le_conn_rcv_new			//lpm  use retention mem
+	increase 1,pdata
+	store 1,mem_le_conn_rcv_new
+	fetch 1,mem_le_state
+	rtnbit1 lestate_got_first_packet
+	set1 lestate_got_first_packet,pdata
+	store 1,mem_le_state
+	fetch 2,mem_le_init_superto
+	store 2,mem_le_superto
+	setarg 0
+	store 4,mem_le_transmit_window	
+//	fetch 1,mem_le_conn_rcv_new
+//	store 1,mem_le_conn_first_rcv
+	rtn
+
+p_le_rx_dec:
+	call le_check_retransmit	
+//	bmark1 mark_old_packet,le_retransmit_end_of_packet
+	fetchr rega, 1,mem_le_rxbuf_data_length
+	increase -4,rega
+	nbranch le_crc_fail_consecutive,positive
+	branch le_rx_dec+6
+
+p_le_rx_nopayload:
+	parse demod,bucket,24	
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	enable swfine
+	call le_set_until_tx_timer
+	branch le_crc_fail,crc_failed
+	bmark0 mark_ble_encryption,le_rx_match
+	fetch 1,mem_le_rxbuf_data_length
+	branch le_rx_match,blank
+	increase -4,pdata
+	store 1,mem_le_rxbuf_data_length
+	call wait_ccm_done
+ 	fetch 1,core_misc_status
+	bbit0 7, le_crc_fail_consecutive
+ 	force regidx_result,regext_index
+	storer regext, 4,mem_le_peer_mic
+	branch le_rx_match
+
+
+p_le_adv_not_match:
+	call shutdown_radio
+	jam 0,0x8900
+	set0 mark_ble_crc_fail,mark
+	branch le_adv_not_match+1
+	
+p_le_init_adv:
+	set0 mark_ble_crc_fail,mark	
+	branch le_init_adv+1
+
+
+
+p_keyboard_start_reconnect_device:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	branch mouse_start_reconnect_device+6
+
+p_keyboard_store_remote_bdaddr:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call p_keyboard_check_device_addr
+	call p_keyboard_unplug_clean_bdaddr
+	branch mouse_store_device_info_delay
+p_keyboard_unplug_clean_bdaddr:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd rega,rega
+	fetch 1,mem_record_bt_mode
+	istore 1,rega
+	beq REC_4_MODE,p_keyboard_store_le_device
+	rtn
+
+p_keyboard_store_le_device:
+	fetch 6,mem_le_plap
+	istore 6,contw
+	branch mouse_store_le_device+4
+
+p_keyboard_check_device_addr:
+	fetch 1,mem_record_bt_mode
+	beq REC_4_MODE,p_keyboard_check_le_device_addr
+	rtn
+p_keyboard_check_le_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_le_plap
+p_keyboard_check_bt_device_addr_common:
+	store 6,mem_device_addr_temp+1
+	fetch 7,mem_device_addr_temp
+	arg mem_device1_type,contr
+	arg 3,loopcnt
+p_keyboard_check_device_addr_end:
+	ifetcht 7,contr
+	isub temp,null
+	branch mouse_clean_addr,zero
+	increase 6,contr
+	loop p_keyboard_check_device_addr_end
+	rtn
+
+
+p_le_parse_att:
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_RESPONSE,p_keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,p_le_parse_att_read_by_type_request	
+	beq ATTOP_READ_BY_TYPE_RESPONSE,p_keyboard_le_send_att_read_by_type_rsp_mac	
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,p_keyboard_le_parse_att_find_by_type_value_rsp	
+	beq ATTOP_ERROR_RESPONSE,p_keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_READ_BLOB_REQUEST,p_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,p_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,p_le_parse_att_write_command
+	branch le_parse_att2
+
+p_keyboard_le_parse_att_manu_resp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+p_keyboard_le_parse_att_manu_resp_next:
+	fetch 2,mem_le_l2cap_size
+	arg 9,loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,5,rega	
+	arg mem_le_search_mac_manu_name,regb
+	call string_compare 
+	branch p_keyboard_le_parse_att_find_mac_report,zero
+	branch  p_keyboard_le_parse_att_not_find_mac_report
+p_keyboard_le_parse_att_not_find_mac_report:
+	fetch 1,mem_le_conn_peer_addr_type
+	store 1,mem_kb_computer_system
+	branch p_keyboard_store_computer_system_ble
+
+p_keyboard_le_parse_att_find_mac_report:
+	jam SYSTEM_OS_MAC,mem_kb_computer_system
+p_keyboard_store_computer_system_ble:
+	jam 0,mem_le_connect_ios_mac_flag
+ifdef ex_eeprom
+	branch p_keyboard_store_device_info
+else
+	jam 1,mem_otp_store_system_flag
+	fetch 1,mem_otp_store_device_info_flag
+	rtn blank
+	branch p_keyboard_wirte_otp_ble
+endif
+
+p_keyboard_le_send_att_read_by_type_rsp_mac:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+p_keyboard_le_send_att_read_by_type_rsp_mac_next:
+	fetch 2,mem_le_l2cap_size
+	increase -2,pdata
+	div pdata,7
+	call wait_div_end
+	quotient loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,6,contr
+p_keyboard_le_check_att_read_type_manu_loop:
+	increase 3,contr
+	ifetch 2,contr
+	copy pdata,regc
+	ifetch 2,contr
+	arg 0x2a29,temp
+	isub temp,null
+	branch keyboard_le_send_att_read_by_type_rsp_manufactory,zero
+	loop p_keyboard_le_check_att_read_type_manu_loop
+	branch p_keyboard_le_parse_att_not_find_mac_report
+
+p_keyboard_le_parse_att_find_by_type_value_rsp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+p_keyboard_le_parse_att_find_by_type_value_rsp_next:
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,keyboard_le_parse_att_find_by_type_value_rsp_mac
+p_keyboard_le_parse_att_find_ios_report:	
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+	branch p_keyboard_store_computer_system_ble
+
+p_keyboard_le_send_att_find_by_type_value_request_mac:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+p_keyboard_le_send_att_find_by_type_value_request_mac_next:
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,p_keyboard_le_parse_att_not_find_mac_report
+	branch keyboard_le_send_att_find_by_type_value_request_mac+2	
+
+p_le_parse_att_read_by_type_request:
+	call le_get_search_handle_start_end_common
+	call le_get_search_att_type
+p_le_send_att_read_by_type_response:
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_init_attlist_search
+	call le_att_get_handle_ptr2
+	increase -2,contr
+	copy contr,pdata
+	store 2,mem_le_cur_attlist_start_ptr
+
+	fetcht 2,mem_le_search_att_type
+	setarg UUID_CHRCTR_PNP_ID
+	isub temp,null
+	branch p_le_send_att_read_by_type_res_pnp_id,zero
+	branch le_send_att_read_by_type_response+8
+
+p_le_send_att_read_by_type_res_pnp_id:
+	fetch 1,mem_keyboard_change_vid_pid_flag
+	branch le_send_att_read_by_type_response+8,blank
+	call le_att_get_uuid_ptr
+	branch le_send_att_error_response_notfound,blank
+	arg mem_keyboard_change_vid_pid_flag+1,contr
+	force 11,pdata		// length +1
+	branch le_send_att_read_by_type_res_not_characteristic+9
+
+
+p_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	fetch 2,mem_keyboard_le_map_len
+	arg mem_keyboard_le_hid_map,contr
+	branch le_send_att_read_blob_response+3
+	
+p_le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,p_le_send_att_read_response_check_auth
+//input:temp is handle
+p_le_send_att_read_response:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_ADC,p_le_send_att_read_response+3
+	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,p_le_send_att_read_response_next
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+p_le_send_att_read_response_next:	
+	fetch 2,mem_le_att_handle
+	beq 0x05,p_le_send_att_appearance
+	beq 0x10,p_le_send_att_pnp_id
+p_le_send_att_read_response_next_1:
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	call le_get_search_max_mtu_data
+	fetcht 2,mem_keyboard_le_map_len
+	arg mem_keyboard_le_hid_map,contr
+	branch le_send_att_read_response+14
+
+p_le_send_att_appearance:
+	arg mem_keybord_appearance,contr
+	force 3,pdata		// length +1
+	branch le_send_att_read_response_less
+
+p_le_send_att_pnp_id:
+	fetch 1,mem_keyboard_change_vid_pid_flag
+	branch p_le_send_att_read_response_next_1,blank
+	arg mem_keyboard_change_vid_pid_flag+1,contr
+	force 8,pdata		// length +1
+	branch le_send_att_read_response_less
+
+p_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch p_le_send_att_read_response,zero
+	call le_check_encrypt_state
+	nbranch p_le_send_att_read_response_next,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+
+p_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	call p_le_parse_att_write_command+1		//MAC  CAPS
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,le_send_att_write_response_check_auth
+	fetch 1,mem_mouse_le_reconnect_flag
+	branch le_send_att_write_response_check_auth,blank
+	fetch 1,mem_le_connect_status_flag
+	bbit1 LL_START_ENC_FLAG,le_send_att_write_response_check_auth
+	setarg 0x001a		
+	fetcht 2,mem_le_att_handle
+	isub temp,null
+	nbranch le_send_att_write_response_check_auth,zero
+	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
+	branch le_send_att_error_response
+
+
+p_le_parse_att_write_command:
+	call le_parse_att_write_command
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,p_keyboard_le_fast_conn_led_get
+	fetch 2,mem_le_att_handle
+	beq 0x25,p_keyboard_le_led_get
+	rtn
+p_keyboard_le_fast_conn_led_get:	
+	fetch 2,mem_le_att_handle
+	beq 0x21,p_keyboard_le_led_get
+	rtn
+	
+p_keyboard_le_led_get:
+	fetch 1,mem_le_rxbuf+9
+	store 1,mem_keyboard_led_status
+	rtn
+
+p_le_exchange_hid_map:
+	arg 0x919f,contr	//key map->mouse map 
+	arg mem_keyboard_le_hid_map,contw
+	arg 66,loopcnt
+	call memcpy
+	arg 0x91e1,contr
+	arg mem_keyboard_le_hid_map +66,contw
+	arg 54,loopcnt
+	branch memcpy
+endif
+///////////******************ble patch end*************************//////////////
+
+///////////******************g24 patch start*************************//////////////
+ifdef g24_enable	
+
+p_keyboard_g24_reconn_dispatch:
+	fetch 2,mem_24g_reconn_count
+	and_into 0xe0,pdata
+	branch p_keyboard_g24_reconn_dispatch_next,blank		// each 0x100 times,reconnect 16 times
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+p_keyboard_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch g24_reconn_device_fail,sync
+	nbranch g24_reconn_device_fail,user3
+	call p_keyboard_g24_ackpayload_parse
+	branch g24_reconn_dispatch_next+5
+
+
+p_keyboard_g24_transmit_no_interrupt:
+	call g24_txdata_prep
+	nbranch p_keyboard_g24_nodata_transmit,user
+p_keyboard_g24_transmit_start:
+	call p_keyboard_g24_transmit_process
+	call keyboard_power_ctrl_start
+	branch keyboard_g24_transmit_start_next
+
+p_keyboard_g24_nodata_transmit:
+	fetch 8,mem_keyscan_value_current
+	nbranch keyboard_g24_transmit_start_next,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch keyboard_g24_transmit_start_next,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch keyboard_g24_transmit_start_next,blank
+	call g24_search_receiver
+p_keyboard_g24_long_sleep:
+	call keyboard_g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	fetch 1,mem_sensor_shutdown_flag
+	ncall keyboard_setgpio_hibernate,blank
+	fetch 8,mem_24g_enter_hibernate
+	branch g24_long_seep2
+
+p_keyboard_g24_transmit_process:
+	jam 0,mem_24g_retry
+p_keyboard_g24_transmit_loop:
+	fetchr timeup,2,mem_param_rx_setup
+	until clkn_rt,meet
+	call keyboard_special_key_check
+	fetch 2,mem_24g_pair_timeout
+	nbranch g24_transmit_no_ack,blank
+	call g24_transmit_receive_ack
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,g24_transmit_no_ack
+	nbranch p_keyboard_g24_retransmit,sync
+	nbranch p_keyboard_g24_retransmit,user3
+	call p_keyboard_g24_ackpayload_parse
+	jam 0,mem_sensor_shutdown_flag
+	branch g24_transmit_no_ack
+	
+
+p_keyboard_g24_retransmit:
+	fetch 1,mem_24g_abort_pac
+	nrtn blank
+	fetch 2,mem_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_24g_txfail_cnt	
+	fetch 1,mem_24g_txfail_cnt
+	beq 0xff,g24_tx_attempt_fail
+	call p_keyboard_g24_transmit_hop_process
+	branch p_keyboard_g24_transmit_loop
+
+p_keyboard_g24_transmit_hop_process:
+	fetch 1,mem_24g_retry
+	increase 1,pdata
+	store 1,mem_24g_retry
+	and_into 0x03,pdata
+	branch p_g24_tx_fast_hop,blank		//each 4 times change channel
+	rtn
+
+p_g24_tx_fast_hop:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch g24_ch,zero
+	branch g24_tx_fast_hop
+
+
+p_keyboard_g24_ackpayload_parse:
+	call g24_ackpayload_parse
+	fetch 1,mem_24g_rxbuf+1
+	compare 0x08,pdata,0xf8
+	nrtn true
+	fetch 1,mem_24g_rxbuf+2		// pc sleep mouse ackpayload: 01 08 ff
+	beq 0xff,p_keyboard_24g_hibernate_set
+	store 1,mem_keyboard_led_status
+	rtn
+
+p_keyboard_g24_short_sleep:
+	call g24_lpm_wait
+	nrtn user
+	call p_clear_wake
+	fetch 3,mem_24g_short_sleep_set
+	branch g24_long_seep2
+endif
+///////////******************g24 patch end*************************//////////////
+///////////******************usb patch start*************************//////////////
+ifdef usb_enable
+p_keyboard_usb_updata_timer:
+	fetch 1,mem_mouse_usb_wait_updata_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_mouse_usb_wait_updata_timer
+	nrtn blank
+	jam 1,mem_lpm_mode
+	branch keyboard_app_enter_hibernate
+
+p_keyboard_usb_mode_start:
+	call p_keyboard_usb_check_enable
+	branch p_keyboard_usb_interface_check_power_on
+
+p_keyboard_rf_connnect_check:
+	disable user
+	fetch 2,mem_mouse_no_data_timer
+	rtn blank
+	branch enable_user
+
+p_keyboard_usb_check_enable:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	fetch 9,mem_usb_vid_pid_new
+	store 9,mem_usb_vid_pid
+	setarg p_keyboard_config_param
+	store 2,mem_cb_usb_config
+	jam MOUSE_USB_INTERFACE_INSERT,mem_mouse_usb_vdd_status_current
+	rtn
+
+p_keyboard_config_param:
+	jam DONGLE_KB_BIND_SUCCESS,mem_mouse_usb_keyboard_flag
+	jam 0x01,mem_usb_tx_interval
+	call usb_tx_interval_config
+	call p_keyboard_usb_vid_pid_config
+	branch p_keyboard_usb_hid_icon_config
+
+p_keyboard_usb_vid_pid_config:
+	fetch 1,mem_usb_vid_pid
+	rtn blank
+	fetch 1,mem_mouse_usb_keyboard_flag
+	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_vid_pid_for_suit
+	branch dongle_usb_vid_pid_for_mouse_only_auto_pair
+
+p_keyboard_usb_hid_icon_config:
+	fetch 1,mem_mouse_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+	
+p_keyboard_usb_interface_check_power_on:	// last=0, current = insert
+	fetch 1,mem_mouse_usb_vdd_status_current
+	beq MOUSE_USB_INTERFACE_INSERT,p_keyboard_usb_insert
+p_keyboard_usb_vdd_status_store:	
+	fetch 1,mem_mouse_usb_vdd_status_current
+	store 1,mem_mouse_usb_vdd_status_last
+	rtn
+
+p_keyboard_usb_insert:
+	call p_keyboard_usb_vdd_status_store
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	jam 0,mem_lpm_mode
+	fetch 1,mem_mouse_usb_wait_updata_timer
+	call usb_init,blank
+	jam 50,mem_mouse_usb_wait_updata_timer
+	rtn
+
+p_keyboard_usb_isr:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	branch usb_isr
+
+	
+p_keyboard_usb_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	fetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	jam 0,mem_mouse_usb_wait_updata_timer
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	call mouse_24g_stop
+	call mouse_stop_bluetooth_mode
+	call keyboard_motion
+	nrtn user
+p_keyboard_push_keyboard_data_to_usb:
+	fetch 1,mem_customer_data_trigger
+	branch p_keyboard_push_release_keyboard_data_to_usb,blank
+	fetch 8,mem_customer_key_press+1
+p_keyboard_push_keyboard_package_data_to_usb:
+	store 8,mem_pdatatemp
+	fetch 1,mem_customer_key_press
+	beq KB_MULTIKEY_REPORT_ID,p_keyboard_push_multimedia_key_data_to_usb
+	beq KB_SYSTEM_CONCTRL_REPORT_ID,p_keyboard_push_systemctrl_key_data_to_usb
+	call dongle_usb_tx_kb_data
+	fetch 8,mem_pdatatemp
+	store 8,mem_usb_kb_data
+	rtn
+	
+p_keyboard_push_release_keyboard_data_to_usb:
+	fetch 8,mem_customer_key_release+1
+	branch p_keyboard_push_keyboard_package_data_to_usb
+
+p_keyboard_push_multimedia_key_data_to_usb:
+	call dongle_usb_tx_enable_ep2
+	jam USB_EP2_MULTIKEY,mem_usb_ep2_data
+	setarg KB_MULTIKEY_REPORT_ID
+	store 1,mem_usb_kb_multikey
+	fetch 2,mem_pdatatemp
+	istore 2,contw
+	rtn
+
+p_keyboard_push_systemctrl_key_data_to_usb:
+	call dongle_usb_tx_enable_ep2
+	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
+	setarg KB_SYSTEM_CONCTRL_REPORT_ID
+	store 1,mem_usb_kb_system
+	fetch 1,mem_pdatatemp
+	istore 1,contw
+	rtn
+
+p_usb_class_type:
+	set0 mark_isstr,mark
+	fetch 1,mem_usb_setup_bmRequestType
+	and_into 0x80,pdata
+	beq IN_DEVICE,usb_in_device
+	beq OUT_DEVICE,p_usb_out_device
+	branch assert
+
+p_usb_out_device:
+	fetch 1,mem_usb_setup_bmRequestType
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	and_into 0x03,pdata
+	beq CLASS_REQ,p_usb_out_class_req
+	branch usb_out_device+4
+
+p_usb_out_class_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq SET_REPORT,p_usb_set_report
+	branch usb_out_class_req+1
+
+p_usb_set_report:
+	nop 15000		//delay 1ms
+	arg mem_usb0_set_report_data,contw
+	call p_usb_rx_data
+	jam 1,mem_usb0_get_set_report
+	call usb_set_report_resume_judge
+	fetch 2,mem_usb_setup_bValue
+	store 2,mem_usb_setup_bValue_temp
+	jam 0x02,core_usb_clear_nak
+	branch usb_set_report+10
+
+p_usb_rx_data:
+	fetch 1,core_usb_txbusy
+	rtnbit1 USB_STATUS_RXFULL
+	branch usb_rx_data
+endif
+ifdef ADC_1121SB
+
+p_adc_init_data:
+	fetch 8,mem_otp_adc
+	branch adc_init_cal_data_default,blank
+	store 8,mem_reference_inter1p8v_2v_adc_io_data
+	call enable_otp_read
+	call loadcode_check_otp_lock
+	arg OTP_OFFSET_ADC_PARAM_L_C0,pdata
+	iadd regb,regb
+	arg 10,loopcnt
+	arg mem_otp_temp,rega
+	call otp_read_data
+	call disable_otp
+	fetch 8, mem_otp_temp
+	rtn blank
+	store 8,mem_adc_reference3v_gpio1v_ft_data
+	ifetch 2,contr
+	istore 2,contw	
+	//call  eut_test_data_init	
+	rtn
+
+p_sadc_cal_write:
+	fetch 1,core_sadc_ctrl
+	set1 1,pdata
+	store 1,core_sadc_ctrl
+	fetchr regb,1,mem_spi_write_addr
+	fetch 1,mem_adc_cal_c7
+	store 1,mem_spi_write_addr
+	arg 8,loopcnt	//rg_gpadc_sar_dat_sel c0-c7
+	call sadc_cal_write+4
+	storer regb,1,mem_spi_write_addr
+	fetch 1,core_gpadc_cfg2	
+	set0 4,pdata//caliberation write disable	
+	store 1,core_gpadc_cfg2	
+	rtn
+
+
+
+p_vdd_calculate_by_mode:
+ifdef  ADC_1121SB_1V8_MODE
+	fetch 1,mem_adc_reference_mode
+	beq SADC_REFERENCE_INTER3V,p_vdd_reference_inter3V_calculate
+	beq SADC_REFERENCE_INTER1P8V_DIV2,p_vdd_reference_inter1p8V_calculate
+	branch p_vdd_reference_inter3V_calculate
+endif
+
+p_vdd_reference_inter3V_calculate:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,p_vdd_reference_inter3V_calculate_by_mode_vdcdc
+	beq ADC_CONFIG_GPIO,p_vdd_reference_inter3V_calculate_by_mode_gpio
+	rtn
+	
+p_vdd_reference_inter3V_calculate_by_mode_vdcdc:
+	setarg 1000
+	store 2,mem_reference_voltage
+	fetcht 2,mem_adc_reference3v_vdcdc3p6v_ft_data
+	fetch 2,mem_adc_reference3v_vdcdc4p6v_ft_data
+	arg 3600,regc
+	call vdd_calculate
+	branch p_mul1V_div1V_to_cal
+	
+p_vdd_reference_inter3V_calculate_by_mode_gpio:
+	setarg 1000
+	store 2,mem_reference_voltage
+	fetcht 2,mem_adc_reference3v_gpio1v_ft_data
+	fetch 2,mem_adc_reference3v_gpio2v_ft_data
+	arg 1000,regc
+	call vdd_calculate
+p_mul1V_div1V_to_cal:
+	fetcht 2,mem_adc_reference3v_inter1v_ft_data
+	imul32 temp,pdata
+	fetcht 2,mem_adc_reference3v_inter1v_now_data
+	idiv temp
+	branch get_div_result
+
+p_enable_adc_init_config:
+	call p_sadc_cal_write
+	fetch 1,core_gpadc_cfg1
+	set0 7,pdata
+	store 1,core_gpadc_cfg1
+	jam 0x77,core_gpadc_ctrl
+	jam 0xc1,core_gpadc_cfg0
+	jam 0x61,core_vtest_ctrl0
+	jam 0x00,core_gpadc_cfg3
+	rtn	
+	
+p_enable_adc:
+ifdef  ADC_1121SB_1V8_MODE
+	fetch 1,mem_adc_reference_mode
+	beq SADC_REFERENCE_INTER3V,p_enable_adc_reference_source_inter3V
+	beq SADC_REFERENCE_INTER1P8V_DIV2,p_enable_adc_reference_source_inter1p8V
+	branch p_enable_adc_reference_source_inter3V
+endif	
+
+p_enable_adc_reference_source_inter3V:
+	call p_enable_adc_init_config
+	call sadc_channel
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	call sadc_read
+	jam 0x60,core_vtest_ctrl0
+	jam 0x00,core_sadc_clkdiv	
+//	rtn
+	
+p_read_adc_inter1V:
+	call p_enable_adc_init_config
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	jam 0x50,core_gpadc_cfg3
+	jam 0xc0,core_vtest_ctrl1//select vref1v
+
+	arg 0xb,regext_index
+	fetchr regext, 2,mem_adc_current_value
+	
+	jam 0x03,core_sadc_ctrl	
+	call p_sar_adc_read_wait
+	fetcht 2,core_sadc_data
+	storet 2,mem_adc_reference3v_inter1v_now_data 
+	call sadc_read_wait+4
+	
+	arg 0xb,regext_index
+	storer regext,2,mem_adc_current_value
+
+	jam 0x60,core_vtest_ctrl0
+	jam 0x00,core_sadc_clkdiv
+	jam 0x00,core_sadc_ctrl
+	rtn
+	
+
+
+p_sar_adc_read_wait:
+	fetch 1,core_perf_status
+	bbit0 SARADC_DONE,p_sar_adc_read_wait
+	rtn
+
+
+
+ifdef  ADC_1121SB_1V8_MODE
+p_vdd_reference_inter1p8V_calculate:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,p_vdd_reference_inter1p8V_calculate_by_mode_vdcdc
+	beq ADC_CONFIG_GPIO,p_vdd_reference_inter1p8V_div2_calculate_by_mode_gpio
+	rtn
+	
+p_vdd_reference_inter1p8V_calculate_by_mode_vdcdc:
+	setarg 2000
+	store 2,mem_reference_voltage
+	fetcht 2,mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+	fetch 2,mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+	arg 2600,regc
+	branch vdd_calculate
+
+p_vdd_reference_inter1p8V_div2_calculate_by_mode_gpio:
+	setarg 1000
+	store 2,mem_reference_voltage
+	fetcht 2,mem_reference_inter1p8v_2v_adc_io_data
+	fetch 2,mem_reference_inter1p8v_1v_adc_io_data
+	arg 2000,regc
+	branch p_vdd_calculate00
+	
+p_vdd_calculate00:
+	isub temp,rega
+	fetch 2,mem_adc_current_value
+	isub temp,pdata
+	nbranch p_vdd_calculate11,positive
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	isub regb,pdata
+	nbranch set_pdata_0,positive
+	branch vdd_calculate2
+	
+p_vdd_calculate11:
+	copy temp,pdata
+	fetcht 2,mem_adc_current_value
+	isub temp,pdata
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	iadd regb,pdata
+	branch vdd_calculate2
+
+
+p_enable_adc_reference_source_inter1p8V:	
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,p_enable_adc_reference_source_inter1p8V_vdcdc
+p_enable_adc_reference_source_inter1p8V_div2_gpio:	
+	call p_sadc_cal_write
+	fetch 1,core_gpadc_cfg1
+	set0 7,pdata
+	store 1,core_gpadc_cfg1
+	jam 0x77,core_gpadc_ctrl
+	jam 0x41,core_gpadc_cfg0
+	jam 0x14,0x8ac6			//div2
+	jam 0x00,core_gpadc_cfg3
+	call sadc_channel
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	call sadc_read
+
+	jam 0x00,core_sadc_clkdiv
+	jam 0x00,0x8ac6
+	rtn
+	
+p_enable_adc_reference_source_inter1p8V_vdcdc:
+	call p_sadc_cal_write
+	fetch 1,core_gpadc_cfg1
+	set0 7,pdata
+	store 1,core_gpadc_cfg1
+	jam 0x77,core_gpadc_ctrl
+	jam 0x41,core_gpadc_cfg0
+	jam 0x10,0x8ac6			//not div2
+	jam 0x00,core_gpadc_cfg3
+	call sadc_channel
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	call  sadc_read
+	
+	jam 0x00,core_sadc_clkdiv
+	jam 0x00,0x8ac6
+	rtn
+
+endif 	
+
+endif
+///////////******************usb patch end*************************//////////////	
Index: program/peripherals.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/peripherals.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/peripherals.prog	(working copy)
@@ -0,0 +1,3115 @@
+
+
+
+/* ===================== two wire SPI gpio ======================= */
+
+//pdata:gpio number
+twspi_reset:
+	bpatch patch18_1,mem_patch18
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	copy temp,pdata
+	and_into 0xff,pdata
+	sub pdata,GPIO_NUMBER+-1,null
+	nbranch twspi_reset_ext,positive
+	arg core_gpio_conf,contw
+twspi_reset_next:
+	iadd contw,contw
+	copy contw,rega
+	arg gpcfg_output_low,temp
+	istoret 1,contw
+	call twspi_disable
+	nop 30
+	copy rega,contw
+	arg gpcfg_output_high,temp
+	istoret 1,contw
+	branch twspi_enable
+	
+twspi_reset_ext:
+	arg core_gpio_conf_hi,contw
+	increase -16,pdata
+	branch twspi_reset_next
+
+
+twspi_disable:
+	fetch 1,core_spid_delay
+	and_into 0x7f,pdata
+	store 1,core_spid_delay
+	rtn
+
+twspi_enable:
+	fetch 1,core_spid_delay
+	or_into 0x80,pdata
+	store 1,core_spid_delay
+	rtn
+
+twspi_write:
+	branch spid_write_reg
+
+twspi_read:
+	branch spid_read_reg
+
+
+/* ===================== code loading ======================= */
+aes_disable:
+	fetch 1,core_bist_ctrl
+	set0 AES_EN,pdata
+	store 1,core_bist_ctrl
+	rtn
+
+read_function_aes:
+	nbranch read_function,user
+	fetch 1,core_bist_ctrl
+	set1 AES_EN,pdata
+	store 1,core_bist_ctrl
+read_function:
+	copy temp,null //length
+	branch read_fuction_zero,zero
+	copy regc,pc  //branch pc
+	
+read_fuction_zero:
+	isolate0 0,null  // always true
+	branch set_ucode_status
+	
+/* return temp = block length */
+get_block_header:
+	force 4,temp
+get_block_header0:
+	arg mem_ucode_buf,rega
+	call aes_disable	// disable aes for header
+	call read_function
+	arg 0x55aa,rega
+	fetch 2,mem_ucode_buf
+	ifetcht 2,contr
+	isub rega,null
+	rtn
+
+
+read_first_block:
+	call load_aes_reinit,user
+	arg 2,temp
+	arg mem_ucode_ptr,rega
+	call read_function
+	fetch 2,mem_ucode_ptr
+read_first_block_cont:
+	store 2,mem_addr_mi
+	call get_iv,user
+	rtn
+	
+get_iv:
+	arg 16,temp
+	arg mem_ucode_keybuf,rega
+	call aes_disable	// disable aes for iv
+	call read_function
+set_iv:
+	arg mem_ucode_keybuf,contr
+	arg 16,loopcnt
+	call aes_load_data
+	call aes_init
+	call aes_clear_data
+	branch do_aes_cbc			// generate first IV 
+
+load_aes_reinit:
+	jam 0x0, core_ucode_ctrl
+	call aes_disable
+	branch aes_clear_data
+
+load_storage:
+	setarg 0
+	store 2,mem_queue	//data checksum
+	disable match
+	call get_block_header
+	nrtn zero
+	enable match
+	setarg 0x8000
+	store 3,core_ucode_hi
+	arg core_ucode_data,rega
+	call read_function_aes
+	jam 0x0, core_ucode_ctrl
+	fetch 1,mem_ucode_status
+	rtnbit0 0           //rtn if load code fail
+load_storage_loop:
+	arg 6,temp
+	call get_block_header0
+	nbranch load_data_checksum_compare,zero
+	ifetchr rega,2,contr
+	call read_function
+	call load_data_checksum_calc
+	branch load_storage_loop
+
+
+load_data_checksum_calc:
+	fetch 2,mem_queue
+	arg 6,loopcnt
+	arg mem_ucode_buf,contr
+	call cal_sum
+	fetchr loopcnt,2,mem_ucode_len
+	copy rega,contr
+	call cal_sum
+	store 2,mem_queue
+	rtn
+
+load_data_checksum_compare:
+	fetch 1,mem_otp_load_check_sum
+	beq 0x5a,load_data_checksum_ok //skip check sum 
+	arg 0xaa55,rega
+	fetch 2,mem_ucode_buf
+	isub rega,null
+	nbranch load_data_checksum_compare_fail, zero
+	arg 0x55aa,rega
+	fetch 2,mem_ucode_len
+	isub rega,null
+	nbranch load_data_checksum_compare_fail, zero
+	fetch 2,mem_sched_addr
+	fetcht 2,mem_queue	//calc  sum
+	isub temp,null
+	nbranch load_data_checksum_compare_fail, zero
+load_data_checksum_ok:
+	set1 15,rega
+	branch read_fuction_zero
+
+load_data_checksum_compare_fail:
+	jam 0,mem_ucode_status
+	rtn
+
+/*
+	// only load memory data from eeprom 
+reload_eeprom:
+	call clean_xmem
+	setarg 0x1000
+	store 2,mem_addr_mi
+	arg iicd_read_eep,regc
+	arg 2,loopcnt
+reload_eeprom_loop:
+	call get_block_header
+	nrtn zero
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	loop reload_eeprom_loop
+	branch load_storage_loop
+*/
+
+loadcode_lock_load_ucode:
+//	and pdata,0xf,temp
+//	storet 1,mem_ucode_flag
+	and pdata,0xff,pdata
+	rshift4 pdata,pdata
+	store 1,mem_device_option
+	branch loadcode_load_key
+
+loadcode_lock:
+	fetch 2,core_ucode_flag 
+	nbranch loadcode_lock_load_ucode, blank 	
+	call loadcode_load_key
+	fetch 2,mem_device_option
+	rtn blank
+	call loadcode_set_lock
+	branch lpm_write_lock
+	
+loadcode_set_lock:
+	fetch 1,mem_device_option
+	rtn blank
+	and pdata,0xf,temp
+	storet 1,mem_device_option
+	rshift4 pdata,pdata
+	ixor temp,pdata
+	bne 0xf,app_lpm_mpu_lock_24g_ble
+	branch app_lpm_lock_check
+
+load_otp_hv_vsel:
+	fetch 1,mem_otp_hv_sel
+	ncall lpm_save_sel_hv, blank
+	fetch 1,mem_otp_ldo_vsel
+	rtn  blank
+	store 1,mem_lpm_ldo_sel
+	branch lpm_write_io_vsel
+
+loadcode_load_key:
+	disable user
+	fetch 1,mem_ucode_flag
+	rtnbit0 OTP_UFLAG_AES	
+	call loadcode_check_otp_lock
+	arg OTP_OFFSET_UCODE_KEY_L,pdata
+	iadd regb,regb
+	force 16,loopcnt
+	arg mem_ucode_keybuf,rega
+	call otp_read_data
+	jam OTP_KEY_LOCK,core_misc_ctrl
+	arg mem_ucode_keybuf,contr
+	call load_key
+//	call aes_clear_data
+	arg mem_ucode_keybuf,contw
+	call memset0_16
+	branch enable_user
+	
+
+loadcode:
+	jam 0x25,core_clkoff			// disable debug uart
+	call enable_otp_read
+	arg OTP_OFFSET_PATCH_PTR,regb
+	force 11,loopcnt
+	arg mem_ucode_ptr,rega
+	call otp_read_data1
+	fetchr regf,5,mem_ucode_ptr
+	fetch 1,mem_ucode_flag
+	bbit0 OTP_UFLAG_BIST,loadcode_nobist
+	jam 0x7,core_bist_ctrl
+loadcode_bistwait:
+	fetch 1,core_bist_done
+	bne 7,loadcode_bistwait
+	fetch 1,core_bist_fail
+	lshift4 pdata,pdata
+	store 1,core_bist_ctrl
+	branch loadcode_otp
+	
+loadcode_nobist:
+	call set_bistfix
+	call clean_xmem
+	call clean_smem
+loadcode_otp:
+	storer regf,5,mem_ucode_ptr
+
+	call loadcode_check_otp_lock
+	arg OTP_OFFSET_ADC_PARAM_L,pdata
+	iadd regb,regb
+	arg 32,loopcnt
+	arg mem_otp_temp,rega
+	call otp_read_data
+
+	call load_otp_hv_vsel	
+	call loadcode_lock
+
+	fetch 1,mem_ucode_flag
+	bbit0 OTP_UFLAG_AES,loadcode_unenc
+	fetcht 1,mem_peripheral_lock_flag
+	arg 0,pdata
+	set1 OTP_NOT_LIMIT,pdata
+	set1 OTP_LIMIT,pdata
+	iand temp,rega
+	sub rega,0,null
+	branch loadcode_error,zero
+	isub rega,null
+	branch loadcode_error,zero
+loadcode_unenc:
+	jam 0,mem_loadcode_times
+	arg otp_load_code,regc	
+loadcode_otp_loop:
+	call loadcode_timeout
+	nbranch loadcode_error,positive	
+	fetch 2,mem_ucode_ptr
+	branch loadcode_otp_end,blank
+	call read_first_block_cont
+	call load_storage
+	nbranch loadcode_otp_end,match
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_otp_loop,true	// otp crc error, try again
+	call run_otp_code
+loadcode_otp_end:
+	call disable_otp
+	jam 0,mem_loadcode_times
+loadcode_iic_loop:
+	call loadcode_timeout
+	nbranch loadcode_error,positive	
+	call iicd_load_gpio_init
+	call clear_eeprom_size_2k
+	fetch 1,mem_ucode_flag
+	bbit1 OTP_UFLAG_SKIP_EEP,loadcode_spi
+	call loadcode_iic_by_eeprom
+	nbranch loadcode_iic_eeprom_2k,match
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_iic_loop,true		// eeprom crc error, try again
+	branch loadcode_spi
+
+run_otp_code:
+	setarg 0x1ff //patch3f_7
+	arg 0,pc
+	rtn
+
+loadcode_check_otp_lock:
+	arg OTP_OFFSET_H,regb
+	fetch 1,core_peripheral_lock
+	bbit1 OTP_LIMIT,loadcode_otp_lock
+	fetch 1,mem_peripheral_lock_flag
+	rtnbit0 OTP_LIMIT
+loadcode_otp_lock:	
+	arg 0,regb
+	rtn
+	
+			
+loadcode_iic_eeprom_2k:
+	call set_eeprom_size_2k
+	fetch 1,mem_ucode_flag
+	bbit1 OTP_UFLAG_SKIP_EEP,loadcode_spi
+	call loadcode_iic_by_eeprom
+	nbranch loadcode_spi,match
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_iic_loop,true		// eeprom crc error, try again
+	branch loadcode_hci
+	
+loadcode_spi:
+	jam 0,mem_loadcode_times
+loadcode_spi_loop:
+	call loadcode_timeout
+	nbranch loadcode_error,positive	
+	fetch 1,mem_ucode_flag
+	bbit1 OTP_UFLAG_SKIP_FLASH, loadcode_hci
+	call spid_init_flash
+	nop 200						// some flash will fail if no delay here
+	call spid_flash_release_form_powerdown
+	nop 100	
+	arg spid_load_flash,regc
+	call read_first_block
+	call load_storage
+	nbranch loadcode_hci,match
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_spi_loop,true	// flash crc error, try again
+
+loadcode_hci:
+	call clear_key_buf
+	fetch 1,mem_ucode_flag
+	rtnbit0 OTP_UFLAG_HCI
+	branch hci_init
+	
+clear_key_buf:
+	arg mem_ucode_keybuf,contw
+	call memset0_16
+	force regidx_key,regext_index
+	call aes_clear
+	jam 0x21,core_clkoff		// enable debug uart
+	rtn
+
+iicd_load_gpio_init:
+	fetch 1,mem_eeprom_sda_gpio
+	fetcht 1,mem_eeprom_scl_gpio
+	isub temp,null
+	nbranch iicd_read_init_pin,zero
+iicd_load_default_gpio:
+	jam 4,mem_eeprom_wp_gpio
+	jam 23,mem_eeprom_scl_gpio  //8
+	jam 22,mem_eeprom_sda_gpio //7
+	branch iicd_read_init_pin
+
+
+
+loadcode_iic_by_eeprom:
+	setarg 0x0
+	store 2,mem_addr_mi
+	arg iicd_read_eep,regc
+	call iic_init_600khz
+	call read_first_block
+	branch load_storage
+
+
+
+//output: positive 1:continue load ;0:load timeout
+loadcode_timeout:
+	call loadcode_error_delay
+	fetch 1,mem_loadcode_times
+	increase 1,pdata
+	sub pdata,3,null
+	store 1,mem_loadcode_times	 
+	rtn
+	
+loadcode_error_delay:
+	fetch 1,mem_loadcode_times
+	rtn blank
+	fetch 1,mem_otp_load_delay
+	rtn blank
+	copy pdata,loopcnt
+	branch delay_ms_wait
+	
+	
+loadcode_error:
+	call clear_key_buf
+	call aes_disable
+//	call ice_break_disable_wdt
+	call ice_break
+	rtn
+	
+set_bistfix:
+	and_into 0xe0,pdata
+	rshift pdata,pdata
+	store 1,core_bist_ctrl
+	setarg 1
+	arg mem_bistfix_val,contr
+set_bistfix_loop:
+	ifetcht 2,contr
+	storet 2,core_lpm_reg
+	store 1,core_set_bistfix
+	lshift pdata,pdata
+	bbit0 3,set_bistfix_loop
+	rtn
+	
+/* true flag is set into status,rega pointers to buf, */
+set_ucode_status:
+	fetch 1,mem_ucode_status
+	lshift pdata,pdata
+	setflag true,0,pdata
+	isolate0 15,rega  // load code if rega.15 = 1
+	rtn true
+	store 1,mem_ucode_status
+	rtn
+
+	/* queue is bit position of hw done status */
+decrypt_code:
+	fetch 1,core_bist_ctrl
+	rtnbit0 AES_EN
+	branch decrypt_code_skip	/* skip to key generation at first for speed */
+decrypt_code_loop:
+	fetch 1,core_dma_status
+	qisolate1 pdata
+	rtn true
+decrypt_code_skip:
+	fetch 1,core_misc_status
+	bbit0 1,decrypt_code_loop
+	call do_aes_cbc
+	branch decrypt_code_loop
+
+	/* loopcnt is ucode instruction count, pdata is buffer ptr */
+//save_ucode:
+//	copy loopcnt,temp
+//	storet 2,mem_patch_len
+//	jam 0x80, core_ucode_ctrl
+//	jam 0,core_ucode_hi
+//	jam 0,core_ucode_low
+//	store 2,mem_patch_ptr
+//	iforce contw
+//	lshift2 loopcnt,loopcnt
+//save_ucode_loop:
+//	fetch 1,core_ucode_data
+//	istore 1,contw
+//	loop save_ucode_loop
+//	jam 0x0, core_ucode_ctrl
+//	rtn
+
+
+load_ucode:
+	fetch 2,mem_patch_ptr
+	rtn blank
+	jam 0x80, core_ucode_ctrl
+	jam 0,core_ucode_hi
+	jam 0,core_ucode_low
+	fetcht 2,mem_patch_len
+	lshift2 temp,loopcnt
+	iforce contr
+load_ucode_loop:
+	ifetch 1,contr
+	store 1,core_ucode_data
+	loop load_ucode_loop
+	jam 0x0, core_ucode_ctrl
+	rtn
+
+	
+
+/* ===================== OTP ======================= */
+
+/* temp is length, rega pointers to buf  */
+otp_load_code:
+	copy temp,loopcnt
+	fetch 2,mem_addr_mi
+	iadd temp,temp
+	storet 2,mem_addr_mi
+	iforce regb
+	copy rega,nap
+	jam INIT_KEY,core_misc_ctrl
+	call otp_read_data
+	copy nap,rega
+	isolate0 15,rega
+	rtn true
+	call enable_true,blank		// pdata == 0, crc ok, set true to 1
+	branch set_ucode_status
+	
+ifdef CFX	
+
+
+/* regb=otp address, rega points to data, loopcnt is count */
+otp_read_data:
+	bpatch patch18_2,mem_patch18
+otp_read_data1:
+	storer regb,2,core_otp_addr
+	setarg -1
+	jam 0x5c,core_otp_ctrl2		// blen&wlen
+otp_read_loop:
+	jam 0x7c,core_otp_ctrl2		// sclk
+	jam 0x5c,core_otp_ctrl2		// blen&wlen
+	fetcht 1,core_otp_rdata
+	istoret 1,rega
+	bcrc temp
+	isolate1 15,rega
+	branch otp_read_noinc,true
+	increase 1,rega
+otp_read_noinc:
+	increase 1,regb
+	storer regb,2,core_otp_addr
+	loop otp_read_loop
+	jam 0x44,core_otp_ctrl2		// turn off blen&wlen
+	rtn
+
+
+/* regb = otp address, rega pointers data, loopcnt is count */
+otp_write:
+	bpatch patch18_3,mem_patch18
+	storer regb, 2,core_otp_addr
+	ifetcht 1,rega
+	arg 0,queue
+otp_write_loop:
+	qisolate1 temp
+	call otp_write_bit,true
+	increase 1,queue
+	compare 8,queue,0xff
+	nbranch otp_write_loop,true
+	increase 1,rega
+	fetch 2,core_otp_addr
+	pincrease 1
+	loop otp_write
+	rtn
+
+	
+otp_write_bit:
+	lshift4 queue,pdata
+	store 1,core_otp_pab
+	nop 30
+	jam 0xc0,core_otp_ctrl2		// ween
+	nop 200
+	jam 0xd0,core_otp_ctrl2		// blen
+	nop 3
+	jam 0xd8,core_otp_ctrl2		// wlen
+	nop 600
+	jam 0xd0,core_otp_ctrl2		// turn off wlen
+	nop 3
+	jam 0xc0,core_otp_ctrl2		// turn off blen
+	nop 30
+	rtn
+
+disable_otp:
+	jam 0x40,core_otp_ctrl2		// turn off reen
+	nop 200
+	jam 0x0,core_otp_ctrl2
+	jam 0,0x8a0f
+	rtn
+
+enable_otp:
+	jam 5,0x8a0f
+	jam 0x24,0x8a14				// vdd18
+	nop 200
+	jam 0x40,core_otp_ctrl2		// ce
+	nop 400
+	rtn
+
+enable_otp_read:
+	call enable_otp
+	jam 0x44,core_otp_ctrl2		// reen
+	nop 300
+	rtn	
+
+else
+
+otp_enable_chgpump25:
+	jam 0x1,core_chgpump_ctrl
+	nop 300
+	jam 0x5,core_chgpump_ctrl
+	nop 100
+	jam 0x25,core_chgpump_ctrl
+	nop 1000
+	jam 0x27,core_chgpump_ctrl
+	nop 300
+	rtn
+
+otp_enable_chgpump65:
+	call otp_enable_chgpump25
+	jam 0x3f,core_chgpump_ctrl
+	rtn
+
+disable_otp:
+	jam 0x83,core_otp_ctrl	/* initial otp state */
+otp_disable_chgpump:
+	jam 0,core_chgpump_ctrl
+	rtn
+	
+enable_otp_read:
+	call otp_enable_chgpump25
+
+otp_reset:
+	jam 0x82,core_otp_ctrl	/* ceb */
+	nop 12
+	jam 0x80,core_otp_ctrl	/* rstn */
+	jam 0x82,core_otp_ctrl	/* release rstn */
+	nop 150					/* waiting for vdd25 stable */
+	rtn
+
+	
+otp_set_addr:
+	lshift3 regb,regb
+	storer regb,2,core_otp_addr
+	jam 0,core_otp_din
+	rtn	
+
+/* regb = otp address, rega pointers data, loopcnt is count */
+otp_write:
+	bpatch patch18_4,mem_patch18
+	call otp_enable_chgpump65
+	call otp_set_addr
+	call otp_reset
+otp_program:
+	ifetcht 1,rega
+	increase 1,rega
+	force 0,queue
+otp_program_bit:
+	qisolate0 temp
+	branch otp_skip_0,true
+	fetch 1,core_otp_din
+	set1 6,pdata				/* din */
+	set1 7,pdata				/* dle */
+	store 1,core_otp_din
+	jam 0x02,core_otp_ctrl	/* web */
+	jam 0x82,core_otp_ctrl
+	set0 7,pdata				/* dle */
+	store 1,core_otp_din
+	jam 0x8a,core_otp_ctrl	/* pgmen */
+	nop 11
+	jam 0xca,core_otp_ctrl	/* vppen */
+	nop 33
+	jam 0x4a,core_otp_ctrl	/* web 2nd */
+	nop 44
+	jam 0xca,core_otp_ctrl	/* release web */
+	nop 22
+	jam 0x8a,core_otp_ctrl	/* release vppen */
+	nop 33
+	jam 0x82,core_otp_ctrl	/* release pgmen */
+	nop 1
+	jam 0x92,core_otp_ctrl	/* pgmvfy */
+	nop 10
+	jam 0xb2,core_otp_ctrl	/* readen */
+	fetch 1,core_otp_rdata
+	jam 0x92,core_otp_ctrl	/* release readen */
+	nop 1
+	jam 0x82,core_otp_ctrl	/* release pgmvfy */
+	nop 1
+	qisolate0 pdata
+	branch otp_program_bit,true	/* program error */
+otp_skip_0:
+	fetch 2,core_otp_addr
+	increase 1,pdata
+	store 2,core_otp_addr
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch otp_program_bit,true
+	loop otp_program
+	branch otp_disable_chgpump
+
+
+
+	
+	/* regb=otp address, rega points to data, loopcnt is count */
+otp_read_data:
+	bpatch patch18_5,mem_patch18
+otp_read_data1:
+	call otp_set_addr
+	jam 0xa2,core_otp_ctrl	/* readen */
+	increase 8,regb
+	arg 0,queue
+	setarg -1
+otp_read_data_loop:
+	fetcht 1,core_otp_rdata
+	istoret 1,rega
+	bcrc temp
+	jam SHIFT_KEY,core_misc_ctrl
+	storer regb,2,core_otp_addr
+	isolate1 15,rega
+	branch otp_read_noinc,true
+	increase 1,rega
+	branch otp_read_unenc
+	
+otp_read_noinc:
+	nbranch otp_read_unenc,user
+	increase 1,queue
+	compare 0,queue,0xf
+	nbranch otp_read_unenc,true
+	call do_aes_cbc
+	jam INIT_KEY,core_misc_ctrl
+otp_read_unenc:
+	increase 8,regb
+	loop otp_read_data_loop
+	jam 0x82,core_otp_ctrl	/* release readen */
+	rtn
+
+
+
+
+
+endif
+
+
+/* ===================== LOCK ======================= */
+
+
+app_lpm_lock_check:
+	fetch 1,mem_device_option
+	beq DVC_OP_MODULE,app_lpm_module_lock
+	beq DVC_OP_DONGLE,app_lpm_dongle_lock
+//	beq DVC_OP_TEST,app_lpm_peripheral_lock_test
+	beq DVC_OP_MOUSE,app_lpm_mouse_lock
+	beq DVC_OP_SHUTTER,app_lpm_shutter_lock
+	beq DVC_OP_SHUTTER_DY,app_lpm_shutter_lock
+	beq DVC_OP_HCI_BOOT,app_lpm_hciboot_lock
+	beq DVC_OP_REMOTE_CAR,app_lpm_car_lock_application_and_ble
+	beq DVC_OP_CAR,app_lpm_car_lock
+	beq DVC_OP_MESH,app_lpm_mesh_lock
+	beq DVC_OP_KEYBOARD,app_lpm_kb_lock
+	branch app_lpm_mpu_lock_24g_ble
+
+
+app_lpm_mesh_lock:
+	arg car_init,pdata  //car
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	call app_mpu_s0_lock
+	branch app_lpm_lock_mesh
+
+app_lpm_kb_lock:
+	branch app_lpm_lock_mesh
+
+	
+app_lpm_module_lock:
+app_lpm_hciboot_lock:
+	branch app_lpm_mpu_lock_24g
+
+	
+app_lpm_dongle_lock:
+	arg module_init,pdata //module
+	arg shutter_dy_shutter_1s_timer,temp  //shutter dy
+	call app_mpu_s0_lock
+	branch app_lpm_lock_mesh
+
+app_lpm_mouse_lock:
+	arg car_init,pdata //
+	arg module_set_state,temp  //module
+	call app_mpu_s0_lock
+	branch app_lpm_lock_mesh
+	
+app_lpm_shutter_lock:
+	arg car_init,pdata  //
+	arg remote_car_moto_data_enable_user,temp //car remote
+	call app_mpu_s0_lock
+	branch app_lpm_lock_mesh
+	
+app_lpm_car_lock:
+	arg dongle_init,pdata  //dongle
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	call app_mpu_s0_lock
+app_lpm_lock_mesh:
+	arg ali_mesh_access_layer_resolve_message,pdata  //light
+	arg ali_mesh_upper_transport_layer_init_queue_param,temp //light
+	branch app_mpu_s1_lock
+
+app_lpm_car_lock_application_and_ble:
+	arg dongle_init,pdata  //dongle
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	call app_mpu_s0_lock
+	arg le_adv,pdata  //ble
+	arg le_send_ll_one_lenth,temp //ble
+	branch app_mpu_s1_lock
+
+
+app_mpu_s0_lock:
+	lshift16 temp,temp
+	ior temp,pdata
+	branch lpm_write_mpu_s0
+	
+/*	
+app_lpm_mpu_lock_app:	
+	arg car_init,pdata  //
+	arg ui_soft_switch_power_off,temp //shutter
+	branch app_mpu_s0_lock
+*/
+
+app_lpm_mpu_lock_ble:	
+	arg le_parse_att,pdata
+	arg le_send_ll_one_lenth,temp
+app_mpu_s1_lock:
+	lshift16 temp,temp
+	ior temp,pdata
+	branch lpm_write_mpu_s1
+	
+app_lpm_mpu_lock_24g:	
+	arg g24_prep,pdata
+	arg g24_factory_check,temp
+	branch app_mpu_s1_lock
+	
+app_lpm_mpu_lock_24g_ble:
+	call app_lpm_mpu_lock_24g
+	arg le_parse_att,pdata
+	arg le_send_ll_one_lenth,temp
+	branch app_mpu_s0_lock
+
+
+
+/* ===================== SPI dma ======================= */
+
+spid_init:
+	bpatch patch18_6,mem_patch18
+spid_init_common:
+	fetch 1,mem_spi_init_clk
+	store 1,core_spid_ctrl	// A7530 should at least 34, or write fail
+	fetch 1,mem_spi_init_delay_time
+	store 1,core_spid_delay	// 4us delay
+	setarg mem_spid_tbuf
+	store 2,core_spid_txaddr
+	setarg mem_spid_rbuf
+	store 2,core_spid_rxaddr
+	branch twspi_disable
+	
+
+
+/* pdata 6:0 is reg address, 15:8 is data to write */
+spid_write_reg:
+	set1 7,pdata
+	store 2,mem_spid_tbuf
+	bpatch patch18_7,mem_patch18
+	jam 2,core_spid_txlen
+	jam 0,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+
+/* pdata 6:0 is reg address, temp is bytes to read */
+spid_read_reg:
+	force 1,temp
+spid_read_regs:	
+	store 1,mem_spid_tbuf
+	bpatch patch19_0,mem_patch19
+	jam 1,core_spid_txlen
+	storet 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	call wait_spid_done
+	fetch 1,mem_spid_rbuf
+	rtn
+
+
+wait_spid_done:
+//	fetch 2,mem_afh_error_total
+//	increase 1,pdata
+//	store 2,mem_afh_error_total
+	nop 5
+	fetch 1,core_dma_status
+	bbit0 spid_done,wait_spid_done
+	rtn
+
+	
+
+
+
+
+/**
+ ******************************************************************************
+ ** \brief  write flash
+ **
+ ** \param [in]  rega: 2byte write ptr    
+ **			pdata:3byte flash address  
+ ** 			temp:2byte write data length
+ **
+ ** \retval user  0: flash buys 1:write flash setting complate
+ **
+ ******************************************************************************/
+
+flash_write:
+	disable user
+	copy pdata,regb
+	fetch 1,mem_spi_write_flash_sm
+	rtnne FLASH_SM_NO_BUYS
+	enable user
+	copy regb,pdata
+	branch spid_flash_write_start
+
+
+flash_write_spi_sm_timer:
+	fetch 1,mem_spi_write_flash_sm 	
+	beq FLASH_SM_START,spid_flash_write_start
+	beq FLASH_SM_ERASE_SECTOR,spid_flash_erase_sector
+	beq FLASH_SM_WAIT_ERASE_SECTOR,spid_flash_wait_erase_sector
+	beq FLASH_SM_WRITE_DATA,spid_flash_write_data
+	beq FLASH_SM_WAIT_WRITE_DATA,spid_flash_wait_write_data
+	rtn
+
+spid_flash_write_start:
+	store 3,mem_spi_write_addr
+	copy rega,pdata
+	store 2,mem_spi_write_ptr
+	storet 2,mem_spi_write_len
+	jam FLASH_SM_ERASE_SECTOR,mem_spi_write_flash_sm
+	branch spid_init_flash
+	
+spid_flash_erase_sector:
+	call spid_init_flash
+	jam FLASH_SM_WAIT_ERASE_SECTOR,mem_spi_write_flash_sm
+	call spid_unlock_flash
+	arg mem_spid_tbuf,rega
+	jam 4,core_spid_txlen
+	fetch 3,mem_spi_write_addr
+	arg FLASH_COMMAND_SECTOR_ERASE,temp
+	branch spid_write_flash_common
+	
+spid_flash_wait_erase_sector:
+	call spid_init_flash
+	call wait_spid_flash_done
+	jam FLASH_SM_WRITE_DATA,mem_spi_write_flash_sm
+	rtn
+
+
+spid_flash_write_data:
+	bpatch patch19_1,mem_patch19
+	call spid_init_flash
+	jam FLASH_SM_WAIT_WRITE_DATA,mem_spi_write_flash_sm
+	call spid_unlock_flash
+	call spid_flash_data_preserve
+	call spid_write_flash
+	branch spid_flash_data_recover
+spid_flash_wait_write_data:
+	call spid_init_flash
+	call spid_unlock_flash
+	setarg FLASH_READ_SATUS
+	call spid_read_reg
+	rtnbit1 FLASH_STATUS_WIP
+	jam FLASH_SM_NO_BUYS,mem_spi_write_flash_sm
+	fetch 2,mem_cb_spi_flash_write_complate
+	branch callback_func
+spid_flash_data_recover:
+	fetch 4,mem_temp
+	fetcht 2,mem_spi_write_ptr
+spid_flash_data_recover_comm:
+	increase -4,temp
+	istore 4,temp
+	rtn
+	
+spid_flash_data_preserve:
+	fetcht 2,mem_spi_write_ptr
+	copy temp,rega
+	increase -4,temp
+	ifetch 4,temp
+	store 4,mem_temp
+	fetcht 2,mem_spi_write_len
+	fetch 3,mem_spi_write_addr
+	rtn
+
+spid_init_flash:
+	bpatch patch19_2,mem_patch19
+	call spi_gpio_init
+	call twspi_disable
+	setarg 0
+	store 4,mem_spid_tbuf
+	rtn
+
+spid_unlock_flash:
+	jam FLASH_COMMAND_WRITE_ENABLE,mem_spid_tbuf
+spid_sendcmd_common:	
+	setarg 0
+	store 2,core_spid_rxlen
+	setarg 1
+	store 2,core_spid_txlen
+	setarg mem_spid_tbuf
+	store 2,core_spid_txaddr
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+	
+spid_flash_release_form_powerdown:
+	jam FLASH_COMMAND_RELEASE_FROM_POWERDOWN,mem_spid_tbuf
+	branch spid_sendcmd_common
+	
+spid_flash_powerdown:
+	jam FLASH_COMMAND_POWERDOWN,mem_spid_tbuf
+	branch spid_sendcmd_common
+
+spid_write_flash_data:
+	store 3,mem_pdatatemp
+	storet 2,mem_temp
+	storer rega,2,mem_rega
+	bpatchx patch36_5,mem_patch36
+	call spid_unlock_flash
+	fetch 3,mem_pdatatemp
+	fetcht 2,mem_temp
+	fetchr rega,2,mem_rega
+	branch spid_write_flash
+	
+/* pdata is flash address, rega pointers to txdata(4 ahead bytes should be left), temp is length */
+spid_write_flash:
+	increase 4,temp
+	storet 2,core_spid_txlen
+	arg FLASH_COMMAND_WRITE_DATA,temp
+	increase -4,rega
+
+spid_write_flash_common:
+	istoret 1,rega
+	rshift16 pdata,temp
+	istoret 1,contw
+	rshift8 pdata,temp
+	istoret 1,contw
+	istore 1,contw
+	deposit rega
+	store 2,core_spid_txaddr
+	setarg 0
+	store 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	call wait_spid_done
+	branch wait_spid_flash_done
+
+
+/* temp is length, rega pointers to buf   */
+spid_read_flash:
+	storet 2,core_spid_rxlen
+	rshift16 pdata,temp
+	storet 1,mem_addr_hi
+	rshift8 pdata,temp
+	storet 1,mem_addr_mi
+	store 1,mem_addr_lo
+	setarg 4
+	store 2,core_spid_txlen
+	jam FLASH_COMMAND_READ_DATA,mem_spid_tbuf
+	setarg mem_spid_tbuf
+	store 2,core_spid_txaddr
+	deposit rega
+	store 2,core_spid_rxaddr
+	fetch 1,core_spid_ctrl
+	isolate0 15,rega
+	setflag true,6,pdata
+	store 1,core_spid_ctrl
+	jam spid_start,core_misc_ctrl
+spid_read_flash_wait:
+	fetch 1,core_dma_status
+	bbit1 7,spid_read_flash_wait			// waiting for spid write
+	arg spid_done,queue
+	branch wait_spid_done
+
+wait_spid_flash_done:
+	setarg 2000
+	call sleep
+	call spid_unlock_flash
+	setarg mem_spid_rbuf
+	store 2,core_spid_rxaddr
+	setarg FLASH_READ_SATUS
+	call spid_read_reg
+	bbit1 FLASH_STATUS_WIP,wait_spid_flash_done
+	rtn
+
+
+
+
+/* temp is length, rega pointers to buf  */
+spid_load_flash:
+	storet 2,core_spid_rxlen
+	setarg 4
+	store 2,core_spid_txlen
+	jam 3,mem_spid_tbuf
+	setarg mem_spid_tbuf
+	store 2,core_spid_txaddr
+	deposit rega
+	store 2,core_spid_rxaddr
+	fetch 1,core_spid_ctrl
+	isolate0 15,rega
+	setflag true,6,pdata
+	store 1,core_spid_ctrl
+	jam spid_start,core_misc_ctrl
+spi_load_flash_wait:
+	fetch 1,core_dma_status
+	bbit1 7,spi_load_flash_wait			// waiting for spid write
+	arg spid_done,queue
+	call decrypt_code
+	call wait_spid_done
+	isolate1 spid_crcok,pdata
+	call set_ucode_status
+	fetch 1,mem_addr_hi
+	lshift16 pdata,regb
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	ior regb,pdata
+	iadd temp,pdata
+	store 1,mem_addr_lo
+	rshift8 pdata,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_hi
+	rtn
+	
+spi_gpio_init:
+	fetch 1,mem_spi_cs_gpio
+	fetcht 1,mem_spi_so_gpio
+	isub temp,null
+	nbranch spi_pin_set,zero
+	call spi_gpio_default_init
+	
+spi_pin_set:
+	fetch 1,mem_spi_cs_gpio
+	arg gpcfg_spid_ncs,temp
+	call gpio_config_function_int
+	fetch 1,mem_spi_sclk_gpio
+	arg gpcfg_spid_sck,temp
+	call gpio_config_function_int
+	fetch 1,mem_spi_si_gpio
+	arg gpcfg_spid_mosi,temp
+	call gpio_config_function_int
+	fetch 1,mem_spi_so_gpio
+	arg gpcfg_spid_miso,temp
+	branch gpio_config_function_int
+
+spi_gpio_default_init:
+	jam 1,mem_spi_cs_gpio
+	jam 3,mem_spi_si_gpio
+	jam 0,mem_spi_so_gpio
+	jam 2,mem_spi_sclk_gpio
+	jam 11,mem_spi_wp_gpio
+	jam 10,mem_spi_hold_gpio
+	rtn
+
+
+/*****************************************************************************
+*soft reset chip
+*****************************************************************************/
+soft_reset_chip:
+	jam 1,core_reset
+	rtn
+
+
+
+/* ===================== I2C dma ======================= */
+
+/* scl high time: scl_high + 2 clks, scl low time:scl_low + 6 clks
+data setup time: data_setup + 2 clks, data hold time: scl_low-setup-hold+4 clks */
+iic_init_600khz:
+	jam 5,core_iicd_scl_low
+ 	jam 7,core_iicd_scl_high
+	jam 7,core_iicd_start_setup
+	jam 7,core_iicd_start_hold
+	jam 7,core_iicd_stop_setup
+	jam 5,core_iicd_data_setup
+	jam 0,core_iicd_data_hold
+	rtn
+	
+iic_init_360khz:	//360khz
+	jam 12,core_iicd_scl_low
+	jam 13,core_iicd_scl_high
+	jam 13,core_iicd_start_setup
+	jam 13,core_iicd_start_hold
+	jam 13,core_iicd_stop_setup
+	jam 12,core_iicd_data_setup
+	jam 0,core_iicd_data_hold	
+  	rtn
+
+iicd_init_pin:
+	call iicd_eeprom_write_enable
+iicd_init_pin_scl_sda:
+	fetch 1,mem_eeprom_scl_gpio
+	arg gpcfg_iic_scl|gpcfg_pullup,temp
+	call gpio_config_function_int
+	fetch 1,mem_eeprom_sda_gpio
+	arg gpcfg_iic_sda|gpcfg_pullup,temp
+	branch gpio_config_function_int
+
+iicd_read_init_pin:
+	call iicd_eeprom_write_disable
+	branch iicd_init_pin_scl_sda
+
+wait_iicd_done:
+	fetch 1,core_dma_status
+	bbit0 iicd_done,wait_iicd_done
+	rtn
+
+/*	// pdata is iic addr, rega points to buf, temp is length 
+iicd_read_data:
+	store 1,mem_iicd_addr
+	setarg mem_iicd_addr
+	store 2,core_iicd_txaddr
+	setarg 1
+	store 2,core_iicd_txlen
+	storet 2,core_iicd_rxlen
+	storer rega,2,core_iicd_rxaddr
+	jam 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	branch wait_iicd_done
+
+	// rega points to buf, temp is length 
+iic_write_data:
+	setarg 0
+	store 2,core_iicd_rxlen
+	store 2,core_iicd_rxaddr
+	storet 2,core_iicd_txlen
+	storer rega,2,core_iicd_txaddr
+	jam 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	branch wait_iicd_done
+*/
+set_eeprom_size_2k:
+	set1 mark_eeprom_size,mark
+	jam 0x08,mem_eeprom_block_size
+	rtn
+
+clear_eeprom_size_2k:
+	set0 mark_eeprom_size,mark
+	jam 0x20,mem_eeprom_block_size
+	rtn
+
+
+iicd_read_eep_data_size_2k:
+ 	fetch 1,mem_eeprom_base
+	iadd regb,pdata
+	store 1,mem_addr_mi
+	branch iicd_read_eep_size_2k
+
+iicd_read_eep_size_2k_lcadcode:
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	store 1,mem_addr_mi
+	
+//length:temp 
+//mem ptr:rega
+//eeprom addr:pdata
+iicd_read_eep_size_2k:
+ 	setarg 3
+	store 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	jam 0xa1,mem_iicd_tbuf+2
+	branch iicd_read_eep_common
+
+
+//length:temp 
+//mem ptr:rega
+//eeprom addr:regb
+iicd_write_protect_eep_data:
+	storet 2,mem_temp
+	call iicd_eeprom_write_enable
+	fetcht 2,mem_temp
+	call iicd_write_eep_data
+	branch iicd_eeprom_write_disable
+	
+iicd_eeprom_write_enable:
+	fetch 1,mem_eeprom_wp_gpio
+	rtneq GPIO_DISABLE
+	bbit0 6,iicd_wp_gpio_output_low
+	setarg 150000
+	call sleep
+iicd_wp_gpio_output_low:
+	fetcht 1,mem_eeprom_wp_gpio
+	branch gpio_out_active
+	
+iicd_eeprom_write_disable:
+	fetcht 1,mem_eeprom_wp_gpio
+	branch gpio_out_inactive
+	
+//length:temp 
+//mem ptr:rega
+//eeprom addr offset:regb
+iicd_read_eep_data:
+	bpatch patch19_3,mem_patch19
+	bmark1 mark_eeprom_size,iicd_read_eep_data_size_2k
+	fetch 2,mem_eeprom_base
+	iadd regb,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+
+/* rega pointers to buf, temp is length  */
+iicd_read_eep:
+	bpatch patch19_4,mem_patch19
+	bmark1 mark_eeprom_size,iicd_read_eep_size_2k_lcadcode
+	setarg 4
+	store 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	jam 0xa1,mem_iicd_tbuf+3
+iicd_read_eep_common:	
+	setarg mem_iicd_tbuf
+	store 2,core_iicd_txaddr
+	storet 2,core_iicd_rxlen
+	storer rega,2,core_iicd_rxaddr
+	setarg 2
+	isolate0 15,rega
+	setflag true,0,pdata
+	store 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	arg iicd_done,queue
+	call decrypt_code
+	call wait_iicd_done
+	isolate1 iicd_crcok,pdata
+	call set_ucode_status
+	bmark1 mark_eeprom_size,iicd_read_eep_load_code_size_2k
+iicd_inc_addr:
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	rtn
+
+iicd_read_eep_load_code_size_2k:
+	fetch 1,mem_addr_mi
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	rtn
+	
+
+//length:temp 
+//mem ptr:rega
+//eeprom addr offset:regb
+iicd_write_eep_data:
+	fetch 2,mem_eeprom_base
+	iadd regb,pdata
+
+//cuur ptr:pdata length:temp buf:rega
+	store 2,mem_pdatatemp //curr ptr
+	bpatch patch19_5,mem_patch19
+	storet 2,mem_temp	//len
+	storer rega,2,mem_contr
+iicd_write_eep_loop:
+	call iicd_eep_transparency
+
+	fetcht 2,mem_regb
+	fetchr rega,2,mem_contr
+	fetch 2,mem_pdatatemp
+	
+	call iicd_write_eep
+	
+	fetch 2,mem_regb
+	fetcht 2,mem_contr
+	iadd temp,temp
+	storet 2,mem_contr
+	fetcht 2,mem_pdatatemp
+	iadd temp,temp
+	storet 2,mem_pdatatemp
+	fetch 2,mem_temp
+	nbranch iicd_write_eep_loop,blank
+	rtn
+	
+//in:
+//1.size 2.len 3.src 4.des
+//mem_regc page's area
+//mem_pdatatemp curr ptr
+//mem_temp all len      
+//mem_regb curr len
+iicd_eep_transparency:
+	bpatch patch19_6,mem_patch19
+	fetch 1,mem_eeprom_block_size
+	increase -1,pdata
+	fetcht 2,mem_pdatatemp
+	ior temp,pdata
+	increase 1,pdata
+	store 3,mem_regc
+
+	fetch 2,mem_temp
+	iadd temp,pdata
+
+	fetcht 3,mem_regc
+	isub temp,pdata
+	nbranch iicd_eep_deal_short_packet,positive
+	store 2,mem_temp
+	fetch 3,mem_regc
+	fetcht 2,mem_pdatatemp
+	isub temp,pdata
+	store 2,mem_regb
+	rtn
+	
+iicd_eep_deal_short_packet:
+	fetch 2,mem_temp
+	store 2,mem_regb
+	setarg 0
+	store 2,mem_temp
+	rtn
+
+iicd_write_eep_size_2k:
+	copy regb,pdata
+	increase 2,temp
+	storet 2,core_iicd_txlen
+	increase -2,rega
+	ifetcht 3,rega
+	copy temp,regb
+	arg 0xa0,temp
+	istoret 1,rega
+	istore 1,contw
+	branch iicd_write_eep_common
+
+	/* pdata is eeprom address, rega pointers to txdata(3 ahead bytes should be left), temp is length */
+iicd_write_eep:
+	copy pdata,regb
+	bpatch patch19_7,mem_patch19
+	bmark1 mark_eeprom_size,iicd_write_eep_size_2k
+	copy regb,pdata
+	increase 3,temp
+	storet 2,core_iicd_txlen
+	increase -3,rega
+	ifetcht 3,rega
+	copy temp,regb
+	arg 0xa0,temp
+	istoret 1,rega
+	byteswap pdata,pdata
+	istore 2,contw
+iicd_write_eep_common:	
+	storer rega,2,core_iicd_txaddr
+	setarg 0
+	store 2,core_iicd_rxlen
+	jam 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	istorer regb,3,rega
+iic_check_eeprom_standby:
+	bpatch patch1a_0,mem_patch1a
+	jam 0,mem_iicd_tbuf+3
+iic_check_eeprom_standby_wait:
+	setarg 1
+	store 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	setarg mem_iicd_tbuf
+	store 2,core_iicd_txaddr
+	setarg 0
+	store 2,core_iicd_rxlen
+	store 2,core_iicd_rxaddr
+	setarg 3
+	store 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	fetch 1,core_dma_status
+	rtnbit0 iicd_ack
+	nop 1500
+	fetch 1,mem_iicd_tbuf+3
+	increase 1,pdata
+	store 1,mem_iicd_tbuf+3
+	sub pdata,40,null
+	nrtn positive//polling timeout 6ms
+	branch iic_check_eeprom_standby_wait
+
+
+/* ===================== uart dma ======================= */
+uarta_init_dma_mem:
+	call enable_user
+	branch uart_init_dma_mem
+
+/*
+function name:uart_init_dma_mem
+input:
+	pdata is dma memory config
+	bit[0-15]:rx start memory address
+	bit[16-31]:rx ending memory address
+	bit[32-47]:tx start memory address
+	bit[48-63]:tx ending memory address
+	user is choice uart road
+	enable is mean check uart A
+	disable user is mean check uart B
+*/
+uart_init_dma_mem:
+	rshift16 pdata,temp
+	call uarta_init_rx,user
+	rshift32 pdata,pdata
+	rshift16 pdata,temp
+	call uarta_init_tx,user
+	fetch 2,core_clkoff
+	set0 CLOCK_OFF_UART,pdata
+	store 2,core_clkoff
+	rtn
+
+
+/*
+function name:uarta_init_baud_rate
+input:
+	pdata is uart A baud rate
+*/
+uarta_init_baud_rate:
+	store uart_baud_len,core_uart_baud
+	rtn
+
+
+/*
+function name:uarta_calc_baud_rate_config
+input:
+	temp is uart A baud rate,Decimal data
+	E.g:115200 input arg 115200,temp
+*/
+uarta_calc_baud_rate_config:
+	call uart_calc_baud_rate_config
+	branch uarta_init_baud_rate
+
+
+/*
+function name:uart_calc_baud_rate_config
+input:
+	temp is uart baud rate,Decimal data
+	E.g:115200 input arg 115200,temp
+output:
+	pdata is CPU config uart baud rate
+*/
+uart_calc_baud_rate_config:
+	call uart_calc_baud_rate_config_choice_uart_clock
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	rtn
+
+uart_calc_baud_rate_config_choice_uart_clock:
+	fetch 1,core_uart_clksel
+	bbit0 UART_CLOCK_SELECT_BIT,uart_calc_baud_rate_config_choice_uart_clock_crystal
+	setarg uart_clock_freq_48M
+	rtn
+uart_calc_baud_rate_config_choice_uart_clock_crystal:
+	setarg uart_clock_freq_24M
+	rtn
+
+uart_clock_select_main_freq_crystal:
+	fetch 1,core_uart_clksel
+	and pdata,UART_CLOCK_SELECT_CRYSTAL,pdata
+	store 1,core_uart_clksel
+	rtn
+
+uart_clock_select_main_freq_dpll:
+	fetch 1,core_uart_clksel
+	or pdata,UART_CLOCK_SELECT_DPLL,pdata
+	store 1,core_uart_clksel
+	rtn
+
+
+	// pdata: tx buffer start, temp: tx buffer end
+uarta_init_tx:
+	store 2,core_uart_tsaddr
+	store 2,core_uart_twptr
+	storet 2,core_uart_teaddr
+	rtn
+
+	// pdata: rx buffer start, temp: rx buffer end
+uarta_init_rx:
+	store 2,core_uart_rsaddr
+	store 2,core_uart_rrptr
+	storet 2,core_uart_readdr
+	rtn
+
+uarta_prepare_tx:
+	fetchr contus,2,core_uart_tsaddr
+	fetchr contue,2,core_uart_teaddr
+	fetchr contu,2,core_uart_twptr
+	rtn
+
+uarta_prepare_rx:
+	fetchr contus,2,core_uart_rsaddr
+	fetchr contue,2,core_uart_readdr
+	fetchr contu,2,core_uart_rrptr
+	rtn
+
+uarta_send:
+	storer contu,2,core_uart_twptr
+	rtn
+
+uarta_rxdone:
+	storer contu,2,core_uart_rrptr
+	rtn
+
+uarta_clear_current_rx:
+	call uarta_prepare_rx
+	fetch 2,core_uart_rxitems
+	iadd contu,contu
+	branch uarta_rxdone
+
+uarta_prepare_tx_register_push:
+	call uart_register_push
+	branch uarta_prepare_tx
+
+uarta_send_register_pop:
+	call uarta_send
+	branch uart_register_pop
+
+
+uart_register_push:
+	storer contu,2,mem_contu
+	storer contus,2,mem_contue
+	storer contue,2,mem_contus
+	rtn
+
+uart_register_pop:
+	fetchr contu,2,mem_contu
+	fetchr contus,2,mem_contue
+	fetchr contue,2,mem_contus
+	rtn
+
+wait_uarttx:
+	fetch 2,core_uart_txitems
+	nbranch wait_uarttx,blank
+	rtn
+
+uart_copy_tx_bytes_fast:
+	deposit loopcnt
+	rtn blank
+uart_copy_tx_bytes_fast_loop:
+	increase -8,loopcnt
+	call uart_tx_8_bytes,positive
+	rtn zero
+	branch uart_copy_tx_bytes_fast_loop,positive
+	increase 8,loopcnt
+uart_copy_tx_bytes_fast_loop_four:
+	increase -4,loopcnt
+	call uart_tx_4_bytes,positive
+	rtn zero
+	branch uart_copy_tx_bytes_fast_loop_four,positive
+	increase 4,loopcnt
+	branch uart_copy_tx_bytes
+
+uart_tx_8_bytes:
+	ifetch 8,contr
+	istore 8,contu
+	rtn
+
+uart_tx_4_bytes:
+	ifetch 4,contr
+	istore 4,contu
+	rtn
+
+uart_copy_tx_bytes:
+	deposit loopcnt
+	rtn blank
+uart_copy_tx_bytes_loop:
+	ifetch 1,contr
+	istore 1,contu
+	loop uart_copy_tx_bytes_loop
+	rtn
+
+uart_copy_rx_bytes_fast:
+	deposit loopcnt
+	rtn blank
+uart_copy_rx_bytes_fast_loop:
+	increase -8,loopcnt
+	call uart_rx_8_bytes,positive
+	rtn zero
+	branch uart_copy_rx_bytes_fast_loop,positive
+	increase 8,loopcnt
+uart_copy_rx_bytes_fast_loop_four:
+	increase -4,loopcnt
+	call uart_rx_4_bytes,positive
+	rtn zero
+	branch uart_copy_rx_bytes_fast_loop_four,positive
+	increase 4,loopcnt
+	branch uart_copy_rx_bytes
+
+
+uart_rx_8_bytes:
+	ifetch 8,contu
+	istore 8,contw
+	rtn
+
+uart_rx_4_bytes:
+	ifetch 4,contu
+	istore 4,contw
+	rtn
+
+
+uart_copy_rx_bytes:
+	deposit loopcnt
+	rtn blank
+uart_copy_rx_bytes_loop:
+	ifetch 1,contu
+	istore 1,contw
+	loop uart_copy_rx_bytes_loop
+	rtn
+
+
+/* ===================== eeprom data ======================= */
+
+app_store_nvram_event:
+	jam BT_EVT_STORE_NVRAM,mem_fifo_temp
+	branch ui_ipc_send_event
+
+check_51cmd_update_device_record:
+	bpatch patch1a_1,mem_patch1a
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	call check_nvram
+	call init_device_list,zero
+	call disable_user2
+	call nvram_find_addr_from_bd_list
+write_device_record:
+	fetch 1,mem_nv_data_number
+	icopy regc
+	fetcht 2,mem_nv_data_ptr
+	storet 2,mem_list_item_ptr
+write_device_loop_find:
+	copy regc,pdata
+	branch app_store_nvram_event,blank  //EEPROM
+	increase -1,regc
+	copy temp,rega
+	ifetch 1,rega
+	fetcht 1,mem_select_list_item
+	isub temp,null
+	call set_index_finded_device,zero
+	branch write_device_loop_find0,positive
+	ifetch 1,rega
+	increase 1,pdata
+	istore 1,rega
+write_device_loop_find0:
+	fetcht 2,mem_list_item_ptr
+	increase NV_DATA_LEN,temp
+	storet 2,mem_list_item_ptr
+	branch write_device_loop_find
+
+set_index_finded_device:
+	setarg 0
+	istore 1,rega
+	fetch 1,mem_temp_reconn_record
+	istore 1,contw	
+	bne REC_3_MODE,set_index_finded_device_ble_mode
+//	arg mem_link_key,regb
+set_index_find_device_MASTER_ADDR:
+	ifetch 6,contr
+	istore 8,contw
+	setarg 0
+	istore 8,contw
+	copy regb,contr
+store_rec_data_common:
+	call memcpy16
+	force 1,null
+	rtn
+
+set_index_finded_device_ble_mode:
+	beq REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,set_index_finded_device_IRK
+	beq REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,set_index_finded_device_EDIV
+	arg mem_le_ltk,regb
+	branch set_index_find_device_MASTER_ADDR
+
+set_index_finded_device_IRK:
+	arg mem_le_irk,contr
+	call memcpy16
+store_ble_rec_data_common:
+	arg mem_le_ltk,contr
+	branch store_rec_data_common
+
+set_index_finded_device_EDIV:
+	arg mem_le_rand,contr
+	call memcpy16
+	branch store_ble_rec_data_common
+
+
+//enable user2 reconnect
+//disable user2 pairing
+nvram_find_addr_from_bd_list:
+	bpatch patch1a_2,mem_patch1a
+	call disable_user
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	bpatch patch1a_3,mem_patch1a
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+find_addr_from_bd_list_ble_mode:
+	fetch 1,mem_le_conn_peer_addr_type
+	beq MASTER_PUBLIC_ADDR,find_addr_from_bd_list_public_device_addr
+	fetch 1,mem_le_plap+5
+	compare 0xc0,pdata,0xc0
+	branch find_addr_from_bd_list_static_addr,true
+	compare 0x40,pdata,0xc0
+	branch find_addr_from_bd_list_random_addr,true
+	branch find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy
+
+find_addr_from_bd_list_static_addr:
+	branch find_addr_from_bd_list_static_addr_reconnect,user2
+	fetch 1,mem_le_preq_init_key_distribution
+	bbit0 LE_INITATOR_IRK_BIT,find_addr_from_bd_list_public_device_addr
+	branch find_addr_from_bd_list_static_addr_sc_or_legacy
+
+find_addr_from_bd_list_static_addr_reconnect:
+	call find_addr_from_bd_list_public_device_addr
+	rtn user
+	branch find_addr_from_bd_list_static_addr_sc_or_legacy
+
+
+find_addr_from_bd_list_static_addr_sc_or_legacy:
+find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy:
+	fetch 1,mem_le_pairing_mode
+	bbit1 LE_PAIRING_MODE_SECURE_CONNECT_BIT,find_addr_from_bd_list_random_non_resolvable_private_address_sc
+	branch find_addr_from_bd_list_random_non_resolvable_private_address
+
+find_addr_from_bd_list_static_addr_sc:
+find_addr_from_bd_list_random_non_resolvable_private_address_sc:
+	fetch 6,mem_le_plap
+	store 8,mem_le_rand
+	branch find_addr_from_bd_list_random_non_resolvable_private_address
+
+
+find_addr_from_bd_list_public_device_addr:
+	jam REC_4_MODE_STATIC_ADDRESS,mem_temp_reconn_record
+	fetch 6,mem_le_plap
+	branch find_addr_from_bd_list_common
+	
+find_addr_from_bd_list_random_non_resolvable_private_address:	
+	jam REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,mem_temp_reconn_record
+	branch find_addr_from_bd_list_common
+
+//input :pdata EDIV and rands
+find_addr_from_bd_list_random_addr:
+	jam REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,mem_temp_reconn_record
+	branch find_addr_from_bd_list_common
+	
+find_addr_from_bd_list_common:
+	bpatch patch1a_4,mem_patch1a
+//	store 6,mem_temp_lap
+	fetch 2,mem_nv_data_ptr
+	ifetcht 1,pdata
+	pincrease 1
+	store 2,mem_list_item_ptr
+	storet 1,mem_select_list_item
+	fetch 1,mem_nv_data_number
+	icopy regc
+nvram_find_addr_from_list:
+	fetch 2,mem_list_item_ptr
+	copy pdata,rega
+	call nvram_find_addr_from_list_compare
+	rtn user
+	fetcht 2,mem_list_item_ptr
+	increase NV_DATA_LEN,temp
+	storet 2,mem_list_item_ptr
+	increase -1,temp
+	ifetch 1,temp
+	store 1,mem_select_list_item
+	increase -1,regc
+	nbranch nvram_find_addr_from_list,zero
+	fetch 1,mem_nv_data_number
+	pincrease DECREASED_ONE
+	store 1,mem_select_list_item
+	rtn
+nvram_find_addr_from_list_compare:
+	fetch 1,mem_temp_reconn_record
+	bne REC_3_MODE,find_addr_from_list_compare_ble_mode
+find_master_addr_from_list_compare:
+	arg mem_temp_reconn_record,regb
+	arg 7,loopcnt
+	call string_compare
+	branch enable_user,zero
+	rtn
+
+find_addr_from_list_compare_ble_mode:
+	beq REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,find_irk_form_list_compare
+	beq REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,find_ediv_form_list_compare
+	branch find_master_addr_from_list_compare
+
+find_irk_form_list_compare:
+	ifetcht 1,rega
+	isub temp,null
+	nrtn zero
+	arg mem_le_prand,contw
+	arg 16,loopcnt
+	call clear_mem
+	fetch 3,mem_le_plap+3
+	store 3,mem_le_prand
+	call genernate_master_MacAddress
+	fetch 2,mem_le_aes_128+13
+	byteswap pdata,pdata
+	lshift8 pdata,temp
+	ifetch 1,contr
+	iadd temp,pdata
+	fetcht 3,mem_le_plap
+	isub temp,null
+	branch enable_user,zero
+	rtn
+
+
+genernate_master_MacAddress:
+	arg mem_le_prand ,contr
+	call load_data128
+//	arg mem_le_irk,contr
+	ifetch 1,rega
+	call load_regext
+	force 0x38,aes_ctrl
+	force 0x0,aes_ctrl
+	call wait_aes
+	arg mem_le_aes_128,contw
+	branch store_aes_result
+
+find_ediv_form_list_compare:
+	ifetcht 1,rega
+	isub temp,null
+	nrtn zero
+	copy contr,rega
+	add contr,8,regc
+	arg mem_le_rand,regb
+	arg 8,loopcnt
+	call string_compare
+	branch enable_user,zero
+	copy regc,rega
+	arg mem_le_irk,regb
+	arg 8,loopcnt
+	call string_compare
+	branch enable_user,zero
+	rtn
+
+check_nvram:
+	fetch 2,mem_nv_data_ptr
+	ifetcht 1,pdata
+	pincrease NV_DATA_LEN
+	ifetch 1,pdata
+	isub temp,null
+	rtn
+
+init_device_list:
+	fetch 1,mem_nv_data_number
+	icopy loopcnt
+	fetcht 2,mem_nv_data_ptr
+	setarg 0
+init_device_list_loop:
+	istore 1,temp
+	increase NV_DATA_LEN,temp
+	pincrease 1
+	loop init_device_list_loop
+	rtn
+
+load_device_list_mode_4:
+//	fetch 9,mem_le_ediv
+//	branch clear_ltk_exists,blank
+	call enable_user2
+	call nvram_find_addr_from_bd_list
+	nbranch clear_ltk_exists,user
+	fetch 2,mem_list_item_ptr
+	add pdata,1,contr
+	arg mem_le_irk,contw
+	call  memcpy16
+	arg mem_le_ltk,contw
+	call  memcpy16
+	jam 1,mem_ltk_exists
+	rtn
+
+clear_ltk_exists:
+	jam 0,mem_ltk_exists
+	rtn
+
+
+eeprom_store_le_reconn_info:
+	jam REC_4_MODE,mem_record_bt_mode
+	branch eeprom_store_reconn_info
+
+eeprom_store_reconn_info:
+	fetch 1,mem_device_option
+	beq DVC_OP_MODULE,check_51cmd_update_device_record
+	beq DVC_OP_MOUSE,mouse_store_remote_bdaddr
+	rtn
+	
+
+
+/* =============== GPIO CONTROL ================= */
+//temp [4:0]=GPIO number, return ptr in contw, contr is mask
+get_gpio_wakeup_index:
+	and temp,0x1f,pdata
+	rshift pdata,pdata
+	arg mem_gpio_wakeup_cfg,contw
+	iadd contw,contw
+	arg 0xf0,alarm
+	isolate0 0,temp
+	rtn true
+	arg 0xf,alarm
+	rtn
+
+//temp [4:0]=GPIO number, 0-31, 
+gpio_set_wake_by_current_state:
+	bpatch patch1a_5,mem_patch1a
+	set1 GPIO_ACTIVE_BIT,temp
+	call gpio_get_bit
+	nsetflag true,GPIO_ACTIVE_BIT,temp
+
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_set_wake:
+	bpatch patch1a_6,mem_patch1a
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	arg 4,debug
+	isolate1 GPIO_ACTIVE_BIT,temp
+	branch gpio_set_wake_high,true
+	arg 2,debug
+gpio_set_wake_high:
+	call get_gpio_wakeup_index
+	isolate0 0,temp
+	branch gpio_set_wake_low4bit,true
+	lshift4 debug,debug
+gpio_set_wake_low4bit:
+	ifetch 1,contw
+	iand alarm,pdata
+	ior debug,pdata
+	istore 1,contw
+	rtn
+
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_set_low_pullup:
+	bpatch patch1a_7,mem_patch1a
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	arg 1,debug
+	call get_gpio_wakeup_index
+	isolate0 0,temp
+	branch gpio_set_low_pullup_low4bit,true
+	lshift4 debug,debug
+gpio_set_low_pullup_low4bit:
+	ifetch 1,contw
+	iand alarm,pdata
+	ior debug,pdata
+	istore 1,contw	
+	rtn	
+
+
+	
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_clr_wake:
+	bpatch patch1b_0,mem_patch1b
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	call get_gpio_wakeup_index
+	ifetch 1,contw
+	iand alarm,pdata
+	istore 1,contw
+	rtn	
+
+gpio_config_input_nowake:
+	call gpio_clr_wake
+	branch gpio_config_input_without_wake
+
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_config_input:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	ncall gpio_set_wake,wake
+gpio_config_input_without_wake:
+	call gpio_addr
+	setarg 0
+	isolate1 GPIO_ACTIVE_BIT,temp
+	nsetflag true,6,pdata
+	setflag true,7,pdata
+	branch gpio_write
+
+//temp is gpio number, return true if gpio active
+gpio_get_bit:
+	bpatch patch1b_1,mem_patch1b
+	arg core_gpio_in,contw
+	and temp,0x07,queue
+	rshift3 temp,pdata
+	and_into 3,pdata
+	iadd contw,contw
+	ifetch 1,contw
+	isolate1 GPIO_ACTIVE_BIT,temp
+	branch gpio_get_bit_reverse,true
+	qisolate0 pdata
+	rtn
+gpio_get_bit_reverse:
+	qisolate1 pdata
+	rtn
+
+//temp [5:0]=GPIO number, 0-39, [7]=0, low active. set gpio to inactive state
+gpio_out_inactive:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate1 GPIO_ACTIVE_BIT,null
+	branch gpio_out_flag
+
+gpio_config_output:
+gpio_out_active:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate0 GPIO_ACTIVE_BIT,null
+
+//temp is gpio number,  [7]=1,set out equa true flag if gpio active
+gpio_out_flag:
+	setarg 0
+	nsetflag true,GPIO_ACTIVE_BIT,pdata
+	ixor temp,temp
+
+//temp is gpio number,0-31, [7]=out bit value
+gpio_out:
+	call gpio_addr
+	setarg gpcfg_output_high
+	isolate1 GPIO_ACTIVE_BIT,temp
+	setflag true,0,pdata
+	branch gpio_write
+
+//check output status
+gpio_check_active:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	branch  disable_true,zero
+	call gpio_addr
+	ifetch 1,contw
+	bbit1 0,gpio_check_active_high
+	isolate0 GPIO_ACTIVE_BIT,temp
+	rtn
+gpio_check_active_high:
+	isolate1 GPIO_ACTIVE_BIT,temp
+	rtn
+
+gpio_set_analog:
+	call gpio_addr
+	setarg gpcfg_no_ie
+gpio_write:
+	istore 1,contw
+	rtn
+
+gpio_set_high_impedance:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	call gpio_addr
+	setarg gpcfg_high_impedance
+	branch gpio_write
+
+gpio_addr:
+	and temp,0x3f,pdata
+	sub pdata,GPIO_NUMBER+-1,null
+	nbranch gpio_addr_ext,positive
+	arg core_gpio_conf,contw
+gpio_addr_next:
+	iadd contw,contw
+	rtn
+gpio_addr_ext:
+	arg core_gpio_conf_hi,contw
+	increase -16,pdata
+	branch gpio_addr_next
+
+
+gpio_config_param:
+	and pdata,0xff,temp
+	rshift8 pdata,pdata
+	branch gpio_config_function_int
+
+//pdata: gpio number bit7=1, temp: function type
+gpio_config_function:
+	rtnbit0 GPIO_ACTIVE_BIT
+gpio_config_function_int:
+	and_into 0x3f,pdata
+	sub pdata,GPIO_NUMBER+-1,null
+	nbranch gpio_config_function_int_ext,positive
+	arg core_gpio_conf,contw
+gpio_config_function_int_next:
+	iadd contw,contw
+	istoret 1,contw
+	rtn
+gpio_config_function_int_ext:
+	arg core_gpio_conf_hi,contw
+	increase -16,pdata
+	branch gpio_config_function_int_next
+
+
+//temp:gpio num
+gpio_get_config:
+	and_into 0x3f,temp	
+	sub temp,GPIO_NUMBER+-1,null
+	nbranch gpio_get_config_ext,positive	
+	setarg core_gpio_conf
+gpio_get_config_next:
+	iadd temp,contr
+	ifetch 1,contr
+	rtn
+gpio_get_config_ext:
+	setarg core_gpio_conf_hi
+	increase -16,temp
+	branch gpio_get_config_next
+
+
+//The default as shutter and remote
+gpio_set_before_lpm:
+	arg GPIO_NUMBER,loopcnt
+	arg core_gpio_conf,contr
+setgpio_loop:
+	copy contr,contw
+	ifetch 1,contr
+	beq gpcfg_spid_miso,setgpio_pullup
+	beq gpcfg_spid_ncs,setgpio_pullup
+	beq gpcfg_spid_sck,setgpio_pullup
+	beq gpcfg_spid_mosi,setgpio_pullup
+	beq gpcfg_spid_sdio,setgpio_pullup
+	beq gpcfg_iic_scl,setgpio_pullup
+	beq gpcfg_iic_sda,setgpio_pullup
+	beq gpcfg_input,setgpio_pullup
+setgpio_loop_end:
+	loop setgpio_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+gpio_set_before_lpm_ext:
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch setgpio_loop
+	
+	
+setgpio_pullup:
+	setarg gpcfg_pullup
+	istore 1,contw
+	branch setgpio_loop_end
+setgpio_pulldown:
+	setarg gpcfg_pulldown
+	istore 1,contw	
+	branch setgpio_loop_end
+
+/*************************************ADC*************************************/
+
+sadc_calibration:
+	bpatch patch1b_2,mem_patch1b
+	rtn wake
+	jam 0x77,core_gpadc_ctrl
+	jam 0xc9,core_gpadc_cfg0
+	jam 0x01,core_gpadc_cfg3
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	call sadc_read
+	jam 0xc1,core_gpadc_cfg0	
+sadc_cal_read:
+	arg 7,loopcnt
+	arg mem_adc_cal_c0,rega
+	jam 0x05,core_gpadc_cfg2
+sadc_cal_read_loop:
+	fetch 1,core_gpadc_status
+	istore 1,rega
+	increase 1,rega
+	fetch 1,core_gpadc_cfg2
+	increase 0x20,pdata
+	store 1,core_gpadc_cfg2
+	loop sadc_cal_read_loop
+	jam 0x00,core_gpadc_ctrl	
+	rtn
+
+sadc_cal_write:
+	fetch 1,core_sadc_ctrl
+	set1 1,pdata
+	store 1,core_sadc_ctrl
+	arg 7,loopcnt
+	arg mem_adc_cal_c0,rega
+	jam 0x15,core_gpadc_cfg2
+sadc_cal_write_loop:
+	ifetch 1,rega
+	store 1,core_gpadc_cfg1
+	increase 1,rega
+	fetch 1,core_gpadc_cfg2
+	increase 0x20,pdata
+	store 1,core_gpadc_cfg2
+	loop sadc_cal_write_loop
+	fetch 1,core_sadc_ctrl
+	set0 1,pdata
+	store 1,core_sadc_ctrl
+	rtn
+
+
+//mem_adc_config_flag 1:HVIN 2: GPIO
+adc_init_data:
+	bpatch patch1b_3,mem_patch1b
+	fetch 8,mem_otp_adc
+	branch adc_init_cal_data_default,blank
+	store 8,mem_3v_adc_io_data
+	rtn
+	
+adc_init_cal_data_default:
+	setarg 0x0bbe
+	store 2,mem_3v_adc_io_data
+	setarg 0x03f0
+	store 2,mem_1v_adc_io_data
+	setarg 0x027e
+	store 2,mem_2v_adc_hvin_data
+	setarg 0x03c4
+	store 2,mem_3v_adc_hvin_data
+	rtn	
+
+enable_adc:
+	bpatch patch1b_4,mem_patch1b
+	call sadc_cal_write
+	fetch 1,core_gpadc_cfg1
+	set0 7,pdata
+	store 1,core_gpadc_cfg1
+	jam 0x77,core_gpadc_ctrl
+	jam 0xc1,core_gpadc_cfg0
+	jam 0x01,core_gpadc_cfg3
+	call sadc_channel
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	call sadc_read
+	jam 0,core_sadc_clkdiv
+	branch sadc_dma
+
+sadc_channel:
+	fetch 1,mem_adc_channel
+	lshift4 pdata,pdata
+	fetcht 1,core_gpadc_cfg3
+	and_into 0x0f,temp
+	ior temp,temp
+	storet 1,core_gpadc_cfg3
+	rtn
+
+sadc_read:
+	jam 0x03,core_sadc_ctrl
+sadc_read_wait:
+	fetch 1,core_perf_status
+	bbit0 SARADC_DONE,sadc_read_wait
+	fetcht 2,core_sadc_data
+	storet 2,mem_adc_current_value
+	jam 0x06,core_sadc_ctrl
+sadc_read_wait2:
+	fetch 1,core_perf_status
+	bbit1 SARADC_DONE,sadc_read_wait2
+	jam 0x00,core_sadc_ctrl
+	rtn
+
+sadc_dma:
+	fetch 1,mem_adc_dma_enable
+	rtn blank	
+	fetch 1,core_gpadc_cfg1
+	set1 7,pdata
+	store 1,core_gpadc_cfg1
+	fetch 1,mem_adc_clkdiv
+	store 1,core_sadc_clkdiv
+	fetch 2,mem_adc_saddr_ptr
+	store 2,core_sadc_saddr
+	fetch 2,mem_adc_eaddr_ptr
+	store 2,core_sadc_eaddr
+	jam 0x0b,core_sadc_ctrl
+	nop 1000
+	jam 0x03,core_sadc_ctrl
+	rtn
+
+vdd_calculate_by_mode:
+	bpatch patch1b_5,mem_patch1b
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,vdd_calculate_hvin
+	beq ADC_CONFIG_GPIO,vdd_calculate_io
+	rtn
+
+vdd_calculate_hvin:
+	setarg 1000
+	store 2,mem_reference_voltage
+	fetcht 2,mem_3v_adc_hvin_data
+	fetch 2,mem_2v_adc_hvin_data
+	arg 2000,regc
+	branch vdd_calculate
+
+vdd_calculate_io:
+	setarg 2000
+	store 2,mem_reference_voltage
+	fetcht 2,mem_3v_adc_io_data
+	fetch 2,mem_1v_adc_io_data
+	arg 1000,regc
+vdd_calculate:
+	isub temp,rega
+	fetch 2,mem_adc_current_value
+	isub temp,pdata
+	nbranch vdd_calculate1,positive
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	iadd regb,pdata
+vdd_calculate2:
+	idiv rega
+	call wait_div_end
+	quotient pdata
+	rtn
+
+vdd_calculate1:
+	copy temp,pdata
+	fetcht 2,mem_adc_current_value
+	isub temp,pdata
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	isub regb,pdata
+	nbranch set_pdata_0,positive
+	branch vdd_calculate2
+
+
+/*	typedef struct
+*	{
+*		uint16 full_vol
+*		uint16 empty_vol
+*		uint16 low_vol
+*		uint16 now_vol
+*	}bat_calculate;
+*/
+//out:	pdata->bat percent
+adc_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+	fetch 2,mem_pdatatemp
+	fetcht 2,mem_pdatatemp+2
+	isub temp,rega
+	fetch 2,mem_pdatatemp+6
+	isub temp,regb
+	fetcht 2,mem_pdatatemp+4
+	isub temp,null
+	ncall adc_set_low_power_flag,positive
+	mul32 regb,100,pdata
+	idiv rega
+	call wait_div_end
+	quotient pdata
+	call adc_set_no_power_flag,blank
+	rtn
+
+adc_set_low_power_flag:
+	fetch 1,mem_adc_power_flag
+	set1 0,pdata
+	store 1,mem_adc_power_flag
+	rtn
+
+adc_clear_low_power_flag:
+	fetch 1,mem_adc_power_flag
+	set0 0,pdata
+	store 1,mem_adc_power_flag
+	rtn	
+	
+adc_set_no_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 1,temp
+	storet 1,mem_adc_power_flag
+	rtn
+
+adc_clear_no_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 1,temp
+	storet 1,mem_adc_power_flag
+	rtn	
+
+
+
+/****************************************key scan***************************************/
+keyscan_key_init:
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_key_init_next:
+	rtn blank
+	copy pdata,loopcnt
+//	copy contr,rega
+	fetch 2,mem_keyscan_ptr
+	increase 3,pdata	//mem_key_conf0_pin
+	copy pdata,rega
+keyscan_key_init_lp1:
+	ifetcht 1, rega
+	call gpio_config_input
+	increase KEY_CONF_STRUCT_LEN,rega
+	loop keyscan_key_init_lp1
+keyscan_key_init_end:
+	rtn
+	
+keyscan_scan_key:
+	fetch 2,mem_keyscan_ptr
+	increase 3,pdata	//mem_key_conf0_pin
+	copy pdata,rega
+//	arg mem_key_conf0_pin,rega
+	force 0,regb
+	setarg 0
+	store 2,mem_key_value_temp
+keyscan_scan_key_lp1:
+	ifetcht 1, rega
+	call gpio_get_bit
+	bpatch patch1b_6,mem_patch1b
+	fetch 2,mem_key_value_temp
+	copy regb,queue
+	qsetflag true,pdata
+	store 2, mem_key_value_temp
+	increase KEY_CONF_STRUCT_LEN,rega
+	increase 1,regb
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_scan_key_lp1_next:
+	ixor regb,null
+	nbranch keyscan_scan_key_lp1,zero
+	fetch 2,mem_key_value_temp
+	fetcht 2,mem_key_value_retention
+	ixor temp,null
+	rtn zero
+	branch enable_user
+
+keyscan_process_lpm_before:
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_process_lpm_before_next:
+	rtn blank
+	copy pdata,loopcnt
+	fetch 2,mem_keyscan_ptr 
+	increase 3,pdata	//mem_key_conf0_pin
+	copy pdata,rega
+keyscan_process_lpm_before_lp1:
+	ifetcht 1, rega
+	call gpio_set_wake_by_current_state
+	increase KEY_CONF_STRUCT_LEN,rega
+	loop keyscan_process_lpm_before_lp1
+keyscan_process_lpm_before_end:
+	rtn
+
+keyscan_key_process:
+	arg key_scan_timer,queue
+	call timer_check
+	nrtn blank
+	setarg 0x20
+	arg key_scan_timer,queue
+	call timer_init
+	disable user
+	call keyscan_process_lpm_before
+	bpatch patch1b_7,mem_patch1b
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_key_process_next:
+	rtn blank
+	call keyscan_scan_key
+	nbranch lpm_button_clean_wake_lock,user
+	call lpm_button_get_wake_lock
+	disable user
+	fetch 2,mem_key_value_temp
+	store 2,mem_key_value_temp4
+	jam 0,mem_key_value_temp6
+	force 0,queue
+keyscan_key_lp1:
+	fetch 2, mem_key_value_retention
+	rshift pdata,temp
+	storet 2,mem_key_value_retention
+	and pdata,0x01,pdata
+	fetcht 2, mem_key_value_temp4
+	and temp,0x01,rega
+	rshift temp,temp
+	storet 2,mem_key_value_temp4
+	ixor rega,null
+	ncall keyscan_send_key_data,zero
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_key_lp1_next:
+	fetcht 1, mem_key_value_temp6
+	increase 1,temp
+	storet 1, mem_key_value_temp6
+	copy temp,queue
+	ixor queue,null
+	nbranch keyscan_key_lp1,zero
+	fetch 2,mem_key_value_temp
+	store 2,mem_key_value_retention
+	rtn
+keyscan_send_key_data:
+	bpatch patch1c_0,mem_patch1c
+	fetch 2,mem_keyscan_ptr
+	increase 1,pdata
+	ifetch 2,pdata
+	branch callback_func
+
+
+/*************************************pwm*************************************/
+
+//rega:clk select(0:system clk; 1:system clk undivied; 2:lpo)
+/*rega:clk select
+			0x00:select system clock 12M;
+			0x40:select undivied system clock 24M/48M;
+			0x80:select lpo clock:33K
+*/
+pwm_init:
+	fetch 1,core_clksel
+	ior rega,pdata
+	store 1,core_clksel
+	fetch 2,core_clkoff
+	set0 CLOCK_OFF_PWM,pdata
+	store 2,core_clkoff
+delay_nop100:
+	nop 100
+	rtn
+
+/*	typedef struct
+*	{
+*		uint8 gpio_num
+*		uint8 pwm_channel
+*		uint24 frequency
+*		uint8 duty_cycle   //0-100
+*	}PWM_Style;
+	addr: mem_pdatatemp
+*/
+pwm_clk_set:
+	fetch 1,core_clksel
+	bbit1 6,pwm_24m_clk_set
+	bbit1 7,pwm_33k_clk_set
+pwm_12m_clk_set:
+	setarg PWM_12MHZ
+	rtn
+pwm_24m_clk_set:
+	setarg PWM_24MHZ
+	rtn
+pwm_33k_clk_set:
+	setarg PWM_33KHZ
+	rtn
+
+
+/*
+input:
+mem_pdatatemp:
+byte[0]: pwm gpio selected
+byte[1]: pwm channel selected
+byte[2-4]: pwm frequency, little-endian
+byte[5]: duty cycle, percentage
+*/
+pwm_out_set:
+	fetcht 3,mem_pdatatemp+2
+	call pwm_clk_set
+	idiv temp
+	call wait_div_end
+	quotient temp
+	fetch 1,mem_pdatatemp+5
+	imul32 temp,pdata
+	div pdata,100
+	call wait_div_end
+	quotient rega
+	copy temp,pdata
+	isub rega,regb
+
+	fetch 1,mem_pdatatemp+1
+	call pwm_duty_cycle_set
+	fetch 1,mem_pdatatemp
+	fetcht 1,mem_pdatatemp+1
+	and_into 0x0f,temp
+	lshift8 temp,temp
+	ior temp,pdata
+	branch pwm_enable
+
+/*
+input:
+rega:pcnt ;
+regb:ncnt;
+pdata:pwm channel select.
+*/
+pwm_duty_cycle_set:
+	iforce queue
+	call pwm_duty_cycle_set_without_autoload
+	branch pwm_autoload_set
+
+/*
+input:
+queue: pwm channel
+*/
+pwm_autoload_set:	
+	fetch 1, core_pwm_autoload
+	qset1 pdata
+	store 1, core_pwm_autoload
+	fetcht 1, core_clksel
+	isolate1 7, temp
+	call delay_1clk_of_33k, true
+	qset0 pdata
+	store 1, core_pwm_autoload
+	rtn	
+
+
+delay_1clk_of_33k:
+	nop 480
+	rtn
+
+/*
+input:
+rega:pcnt ;
+regb:ncnt;
+pdata:pwm channel select.
+*/	
+pwm_duty_cycle_set_without_autoload:
+	and_into 0x0f,pdata
+	arg core_pwm_pcnt0,contw
+	mul32 pdata,4,pdata
+	iadd contw,contw
+	copy rega,pdata
+	istore 2,contw
+	copy regb,pdata
+	istore 2,contw
+	rtn
+
+
+
+
+/*
+rega: even pwm channel select & gpio select 
+regb: odd pwm channel select & gpio select 
+
+note:
+byte of even pwm channel:
+bit[7]: force to set even sync bit to 1;
+bit[6]: for even bit, reserved
+
+byte of odd pwm channel:
+bit[7]: 1: set odd sync bit to 1; 0: set odd sync bit to 0; 
+bit[6]: 1: set odd pwm init to 1; 0: set odd pwm init to 0;
+
+setarg 0x0008, rega
+0x00:pwm0 selected
+0x08:gpio select
+
+arg 0x4109, regb
+0x41:pwm1 selected and set pwm1 init bit to 1
+0x09:gpio select
+*/
+pwm_enable_in_syncmode:
+	rshift8 regb, queue
+	call pwm_init_bit_set
+	rshift8 regb, queue
+	call pwm_syncmode_set
+	rshift8 rega, queue
+	enable true
+	call pwm_syncmode_set_process
+
+	deposit rega
+	call pwm_gpio_select
+	deposit regb
+	branch pwm_enable
+
+pwm_disable_in_syncmode:
+	deposit rega
+	call pwm_disable
+	deposit regb
+	call pwm_disable
+
+	rshift8 rega, queue
+	disable true
+	call pwm_syncmode_set_process
+	rshift8 regb, queue
+	disable true
+	call pwm_init_bit_set_process
+	rshift8 regb, queue
+	disable true
+	branch pwm_syncmode_set_process
+	
+
+/*
+input:
+queue: pwm channel
+
+note:
+for even bit, 
+0: PWM0/1 work independent
+1: PWM0 output is synchronized to PWM1
+for odd bit,
+Only used when pwm0_syn_to_pwm1 =1, PWM0/1 out inverse
+*/
+pwm_syncmode_set:
+	isolate1 7, queue
+pwm_syncmode_set_process:	
+	and queue, 0x0f,queue
+	fetch 1,core_pwm_sync
+   	qsetflag true,pdata
+   	store 1,core_pwm_sync
+   	rtn
+
+/*
+input:
+queue: pwm channel
+
+note:
+for even bit, reserved
+for odd bit,only used when pwm0_syn_to_pwm1 =1, 
+0: PWM0 out high first
+1: PWM1 out high first
+*/
+pwm_init_bit_set:
+	isolate1 6, queue
+pwm_init_bit_set_process:	
+	and queue, 0x0f,queue
+	fetch 1, core_pwm_init
+	qsetflag true, pdata
+	store 1, core_pwm_init
+	rtn
+/*
+input:
+pdata: pwm channel select & gpio select 
+
+note:
+setarg 0x0108
+0x01:pwm channel select
+0x08:gpio select
+*/
+pwm_gpio_select:
+	call pwm_select_channel
+pwm_gpio_select_process:
+	lshift8 pdata,pdata
+	add queue,gpcfg_pwm_out0,temp
+	ior temp,pdata
+	branch gpio_config_param 
+
+/*
+input:
+pdata: pwm channel select & gpio select 
+
+note:
+setarg 0x0108
+0x01:pwm channel select
+0x08:gpio select
+*/
+pwm_enable:
+	enable user
+	call pwm_gpio_select
+	branch pwm_set_select
+	
+pwm_disable:
+	disable user
+	call pwm_select_channel
+	branch pwm_set_select
+
+pwm_set_select:
+	and queue, 0x0f,queue
+	fetch 1,core_pwm_en
+   	qsetflag user,pdata
+   	store 1,core_pwm_en
+	rtn
+pwm_select_channel:
+	rshift8 pdata,queue
+	and queue, 0x0f,queue
+	rtn
+
+
+/*************WATCH DOG API*************************/
+/*
+	function name:wdt_init_config 
+   input:kick dog time (pdata*7.8125ms) (7.8125ms~16s) (16s = 0x800)
+*/
+wdt_init_config:
+	copy pdata,temp
+	bpatch patch1c_1,mem_patch1c
+	call wdt_set_enable	//enable
+	setarg 2048
+	isub temp,pdata
+	copy pdata,temp
+	rshift4 temp,temp
+	storet 1,core_write_wdt
+	nop 1400
+	copy pdata,temp
+	and_into 0x0f,temp
+	storet 1,core_write_wdt2
+	rtn
+ 
+
+wdt_set_enable:
+	enable user2
+	branch wdt_init_set
+
+	
+wdt_set_disable:
+	bpatch patch1c_2,mem_patch1c
+	disable user2
+wdt_init_set:
+	fetch 1,core_config
+   	setflag user2,3,pdata
+	store 1,core_config
+	rtn
+
+
+ifdef NEC
+
+/*************NEC API*************************/
+/*
+	function name:nec_init_config 
+	input:
+		pdata is nec buffer address
+		bit[0-15]:rx start memory address
+		bit[16-31]:rx ending memory address
+		temp is nec control config
+		E.M 0x31 is 12M system clock is 2us temp
+*/
+nec61212_init:
+	arg FUN_NEC_ENABLE|FUN_NEC_CLK_DIVIDE_24,temp
+	
+
+nec_init_config:
+	store 4,core_nec_start_addr
+	store 2,core_nec_rptr
+	storet 1,core_nec_ctrl
+	rtn
+
+//return:pdata is buffer size
+nec_check_rxbuff_size:
+	fetch 2,core_nec_rxitem
+	rtn
+/*	fetcht 2,core_nec_rptr
+	fetch 2,core_nec_wptr
+	isub temp,pdata
+	rtn positive
+	sub pdata,0,rega
+	fetcht 2,core_nec_start_addr
+	fetch 2,core_nec_end_addr
+	pincrease 1
+	isub temp,pdata
+	isub rega,pdata
+	rtn
+*/
+
+nec_prepare_read:
+	fetchr contu,2,core_nec_rptr
+	fetchr contus,2,core_nec_start_addr
+	fetchr contue,2,core_nec_end_addr
+	rtn
+
+nec_read_done:
+	storer contu,2,core_nec_rptr
+	rtn
+
+//regc is callback function
+//output
+//user is disable mean data stop
+//rege is 0 mean repeat
+//rege is no zero mean data
+nec_parse_nec61212:
+	call enable_user
+	arg 0,rege
+	call nec_check_rxbuff_size
+	beq 2,nec_parse_nec61212_check_timeout
+	sub pdata,4,null
+	rtn positive
+	call nec_prepare_read
+	ifetcht 2,contu
+	setarg NEC61212_DATA2REPEAT_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	nbranch nec_parse_nec61212_check_repeat_data,positive
+	copy regd,temp
+	setarg NEC61212_REPEAT2REPEAT_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	nbranch nec_parse_nec61212_check_repeat_data,positive
+	
+	copy regd,temp
+	setarg NEC61212_BOOT_CODE_START_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+	ifetcht 2,contu
+	setarg NEC61212_BOOT_CODE_END_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+	call nec_check_rxbuff_size
+	sub pdata,133,null
+	rtn positive
+	arg 32,loopcnt
+nec_parse_nec61212_data:
+	ifetcht 2,contu
+	setarg NEC61212_DATA_BIT_1_START_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+	ifetcht 2,contu
+	setarg NEC61212_DATA_BIT_1_END_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	nbranch nec_parse_nec61212_add_bit1,positive
+	copy regd,temp
+	setarg NEC61212_DATA_BIT_0_END_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	nbranch nec_parse_nec61212_add_bit0,positive
+
+
+nec_parse_nec61212_error_data:
+	copy regd,temp
+	setarg NEC61212_TIMEOUT_TIME
+	isub temp,null
+	branch nec_parse_nec61212_check_timeout_cb,zero
+	branch nec_read_done
+
+nec_parse_nec61212_add_bit1:
+	set1 32,rege
+nec_parse_nec61212_add_bit0:
+	rshift rege,rege
+	loop nec_parse_nec61212_data
+	branch nec_parse_nec61212_check_stop_bit
+
+nec_parse_nec61212_check_repeat_data:
+	call nec_check_rxbuff_size
+	sub pdata,7,null
+	rtn positive
+	ifetcht 2,contu
+	setarg NEC61212_REPEAT_START_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+	ifetcht 2,contu
+	setarg NEC61212_REPEAT_END_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+nec_parse_nec61212_check_stop_bit:
+	ifetcht 2,contu
+	setarg NEC61212_STOP_TIME
+	call nec_check_pulse_range_legal_default_deviation
+	branch nec_parse_nec61212_error_data,positive
+	call nec_read_done
+	copy regc,pdata
+	branch callback_func
+
+nec_parse_nec61212_check_timeout:
+	call nec_prepare_read
+	ifetcht 2,contu
+	setarg NEC61212_TIMEOUT_TIME
+	isub temp,null
+	nrtn zero
+nec_parse_nec61212_check_timeout_cb:
+	call nec_read_done
+	call disable_user
+	copy regc,pdata
+	branch callback_func
+
+
+
+//????????,????
+//??:temp ?????????? 2us???
+//pdata ????,us???
+nec_check_pulse_range_legal_default_deviation:
+	fetchr regb,1,mem_nec_decode_error_value
+
+//????????,????
+//??:temp ?????????? 2us???
+//pdata ????,us???
+//regb?????,???
+// |temp-pdata| / pdata < regb
+//??:positive is 1 mean error
+//0 mean true
+nec_check_pulse_range_legal:
+	copy temp,regd
+	imul32 regb,regb		//???????
+	lshift temp,temp		//???????us
+	isub temp,rega
+	ncall nec_check_pulse_range_legal_data_negative,positive
+	mul32 rega,100,pdata
+	isub regb,null
+	rtn
+
+nec_check_pulse_range_legal_data_negative:
+	sub rega,0,rega
+	rtn
+
+endif //NEC
+
+/*
+select_system_clk_24M:
+	jam SYSTEM_CLK_24M,mem_system_clk
+	jam clksel_dpll_24M,core_clksel
+	setarg 7499
+	store 2,core_halfslot
+calc_new_param:
+	arg 11,loopcnt
+	arg mem_param_tx_setup,rega
+calc_new_param_loop:
+	ifetch 2,rega
+	lshift pdata,pdata
+	istore 2,rega
+	increase 2,rega
+	loop calc_new_param_loop
+	rtn
+
+calc_new_le_time:
+	lshift stop_watch,stop_watch
+	rtn
+
+select_system_clk_12M_xtal:
+	jam clksel_xtal,core_clksel
+select_system_clk_12M_common:
+	jam SYSTEM_CLK_12M,mem_system_clk
+	setarg 3749
+	store 2,core_halfslot
+	rtn
+
+select_system_clk_12M_dpll:
+	jam clksel_dpll,core_clksel
+	branch select_system_clk_12M_common
+*/
+	
+
+/*****************************50HZ*****************************/
+/*
+(input):
+pdata:ac data buf start address
+temp:ac data buf length
+mem_ac_detect_gpio:choice gpio[0-12]
+mem_ac_detect_control:[7:2]ac detect clk divide number,[15:8]ac detect window (ms)
+
+(output):
+true=1,  50hz single disappear true=0,50hz detected
+
+*/
+/*
+ac_50hz_check:
+	store 2,core_ac_saddr
+	storet 1,core_ac_buf_len
+	fetch 1,mem_ac_detect_gpio
+	arg gpcfg_ac_input,temp
+	call gpio_config_function_int
+	fetch 2,mem_ac_detect_control  
+	set1 0,pdata                 //ac detect enable[0]
+	store 2,core_ac_ctrl
+ac_50hz_check_wait:		
+	fetch 1,core_perf_status
+	isolate1 6,pdata
+	rtn 
+*/
+
+
Index: program/security.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/security.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/security.prog	(working copy)
@@ -0,0 +1,1203 @@
+
+
+ifdef SECURE_CONNECTION
+	
+function_g2:
+	bpatch patch1c_3,mem_patch1c
+	jam 80,mem_AES_CMAC_data_length
+	arg mem_dat,contw
+	arg mem_le_srand,contr
+	call memcpy16
+	arg mem_sc_pubkey_local_x_256,contr
+	call memcpy32
+	arg mem_le_pubkey_remote_x_256,contr
+	call memcpy32
+	call inverse_memdat	
+	arg mem_le_mrand,contr
+	call store_inverse_k	
+	call function_AES_CMAC	
+
+	arg mem_AES_CMAC_temp,contw
+	call load_inverse_result
+	setarg 1000000
+	copy pdata,rega
+	fetch 4,mem_AES_CMAC_temp
+	idiv rega
+	call wait_div_end
+	remainder pdata
+	store 4,mem_gkey
+//call ice_break
+	rtn
+
+function_f6_eb:
+	jam 65,mem_AES_CMAC_data_length
+	arg mem_dat,contw
+	call store_addr_common_a
+	call store_addr_common_b
+	fetch 3,mem_le_pres+1
+	istore 3,contw
+//	arg mem_le_r,contr
+//	call memcpy16	
+	call get_r
+	
+	arg mem_le_mrand,contr
+	call memcpy16
+	arg mem_le_srand,contr
+	call memcpy16
+	call inverse_memdat
+	arg mem_le_mackey ,contr
+	arg mem_AES_CMAC_k,contw
+	call memcpy16
+//	call p_store_inverse_k	
+	branch function_AES_CMAC
+//	arg mem_AES_CMAC_temp,contw
+//	branch p_load_inverse_result
+
+get_r:
+	fetch 4,mem_le_tk
+	istore 4,contw
+	call memset0_4
+	branch memset0_8
+
+function_f6_ea:
+	bpatch patch1c_4,mem_patch1c
+	jam 65,mem_AES_CMAC_data_length
+	arg mem_dat,contw
+	call store_addr_common_b
+	call store_addr_common_a
+	fetch 3,mem_le_preq+1
+	istore 3,contw
+//	arg mem_le_r,contr
+//	call memcpy16	
+	call get_r
+	arg mem_le_srand,contr
+	call memcpy16
+	arg mem_le_mrand,contr
+	call memcpy16
+	call inverse_memdat
+	arg mem_le_mackey ,contr
+	arg mem_AES_CMAC_k,contw
+	call memcpy16
+//	call p_store_inverse_k	
+	call function_AES_CMAC
+	arg mem_AES_CMAC_temp,contw
+	branch load_inverse_result
+
+function_f5:
+	jam 32,mem_AES_CMAC_data_length
+	arg mem_le_dhkey_256 ,contr
+	arg mem_dat,contw
+	call memcpy32
+	call inverse_memdat
+	arg mem_le_slat,contr
+	call store_inverse_k	
+	call function_AES_CMAC
+	arg mem_AES_CMAC_k,contw
+	call store_aes_result
+	arg 1,temp
+	call function_f5_common
+	arg mem_le_ltk,contw
+	call load_inverse_result
+	arg 0,temp
+	call function_f5_common
+	arg mem_le_mackey,contw
+//	branch p_load_inverse_result
+	branch store_aes_result
+
+
+function_f5_common:
+	bpatch patch1c_5,mem_patch1c
+	jam 53,mem_AES_CMAC_data_length
+	setarg 0x100
+	store 2,mem_dat
+	call store_addr_common_b
+	call store_addr_common_a
+	arg mem_le_srand,contr
+	call memcpy16
+	arg mem_le_mrand,contr
+	call memcpy16
+//	fetch 4,mem_le_keyid 0x62746c65
+	setarg 0x6c65
+	istore 2,contw
+	setarg 0x6274
+	istore 2,contw
+	istoret 1,contw   //counter
+	call inverse_memdat	
+	branch function_AES_CMAC
+
+store_addr_common_b:
+	fetch 6,mem_le_lap
+	istore 6,contw
+	fetch 1,mem_le_conn_own_addr_type
+	istore 1,contw
+	rtn
+
+store_addr_common_a:
+	fetch 6,mem_le_plap
+	istore 6,contw
+//	setarg 0x2dcfc1
+//	istore 3,contw
+//	setarg 0xa71370
+//	istore 3,contw
+	fetch 1,mem_le_conn_peer_addr_type
+	istore 1,contw
+	rtn
+
+function_f4_ca:
+	jam 65,mem_AES_CMAC_data_length
+	fetch 1,mem_passkey_1bit
+	store 1,mem_dat
+	arg mem_sc_pubkey_local_x_256,contr
+	call memcpy32
+	arg mem_le_pubkey_remote_x_256,contr
+	call memcpy32
+	call inverse_memdat
+	arg mem_le_mrand,contr
+	call store_inverse_k	
+	branch function_AES_CMAC
+	
+
+function_f4_cb:
+	jam 65,mem_AES_CMAC_data_length
+	fetch 1,mem_passkey_1bit
+	store 1,mem_dat
+	arg mem_le_pubkey_remote_x_256,contr
+	call memcpy32
+	arg mem_sc_pubkey_local_x_256,contr
+	call memcpy32
+	call inverse_memdat
+	arg mem_le_srand,contr
+	call store_inverse_k	
+	branch function_AES_CMAC
+
+function_AES_CMAC:
+	bpatch patch1c_6,mem_patch1c
+	call function_AES_CMAC_Generate_Subkey
+//call ice_break
+//	jam 65,mem_AES_CMAC_data_length
+//call ice_break
+	fetch 1,mem_AES_CMAC_data_length
+	copy pdata,temp
+function_ceil16:
+	increase 15,pdata
+	rshift4 pdata,pdata
+	copy pdata,regb
+	branch function_AES_CMAC_set_flag_0_balnk,blank
+	and temp,0x0f,pdata
+	nbranch function_AES_CMAC_set_flag_0,blank
+//	flag =1;
+	arg mem_AES_CMAC_k1,regc
+	arg mem_dat,pdata
+	increase -16,pdata
+//	iadd temp,pdata
+//	isub rega,rega
+	iadd temp,rega	
+	arg mem_AES_CMAC_M_last,contw
+	arg 4,loopcnt	
+	call xor_loop
+//call ice_break
+//	arg mem_f4_k1,contr
+//	call load_key
+	branch function_AES_CMAC_aes
+
+function_AES_CMAC_set_flag_0_balnk:
+	arg 1,regb
+	arg 0,rega
+//	arg mem_f4_test_data,pdata
+	branch function_AES_CMAC_set_flag_0_common
+//call ice_break
+
+function_AES_CMAC_set_flag_0:
+//	flag = 0;
+	and temp,0x0f,rega
+function_AES_CMAC_set_flag_0_common:
+	arg mem_dat,pdata
+	iadd temp,pdata
+	isub rega,contr
+//call ice_break
+	arg mem_AES_CMAC_temp,contw
+	call function_AES_CMAC_padding
+//call ice_break
+	arg mem_AES_CMAC_k2,regc
+	arg mem_AES_CMAC_temp,rega
+	arg mem_AES_CMAC_M_last,contw
+	arg 4,loopcnt	
+	call xor_loop	
+//call ice_break
+
+//	arg mem_f4_k2,contr
+//	call load_key
+
+//	branch p_function_f4_aes
+function_AES_CMAC_aes:
+//	arg mem_f4_k,contr
+//	call load_key
+//	arg mem_AES_CMAC_xor,contr
+//	call load_data128
+	call aes_clear_data
+	call aes_init	
+//	arg mem_f4_k,contr
+//	call load_key
+	arg mem_dat,contr
+function_AES_CMAC_aes_loop:
+//generate_mic_loop:
+	increase -1,regb
+	deposit regb
+	branch function_AES_CMAC_aes_loop_end,blank
+	call load_data128
+	call do_aes_cbc
+	branch function_AES_CMAC_aes_loop
+//generate_mic_end:
+function_AES_CMAC_aes_loop_end:	
+	arg mem_AES_CMAC_temp,contw
+	call store_aes_result
+	arg mem_AES_CMAC_M_last,contr
+	call load_data128
+	call aes_init	
+	arg mem_AES_CMAC_temp,contr
+	call load_data128	
+	branch do_aes_cbc
+
+
+
+load_inverse_result:
+//	arg mem_AES_CMAC_temp,contw
+	copy contw,rega
+	call store_aes_result
+//	arg mem_AES_CMAC_temp,rega
+	arg 16,loopcnt
+	branch inverse_data
+	
+store_inverse_k:
+	arg mem_AES_CMAC_k,contw
+	call memcpy16
+inverse_k:	
+	arg 16,loopcnt
+	arg mem_AES_CMAC_k,rega	
+	branch inverse_data
+	
+inverse_memdat:
+	fetch 1,mem_AES_CMAC_data_length
+	copy pdata,loopcnt
+	arg mem_dat,rega
+	branch inverse_data
+
+bn_lshift_0_inverse:
+	ifetch 1,rega
+	lshift pdata,pdata
+	isolate1 0,regc
+	setflag true,0,pdata	
+	isolate1 8,pdata
+	setflag true,0,regc	
+	istore 1,rega
+         increase -1,rega
+	loop bn_lshift_0_inverse
+	rtn	
+
+function_AES_CMAC_k1_inverse:
+	arg mem_AES_CMAC_k1,rega
+function_AES_CMAC_inverse_common:
+	increase 15,rega
+	force 16,loopcnt
+	force 0,regc
+	branch  bn_lshift_0_inverse	
+
+function_AES_CMAC_k2_inverse:
+	arg mem_AES_CMAC_k2,rega
+	branch function_AES_CMAC_inverse_common
+	
+
+function_AES_CMAC_Generate_Subkey:
+	arg mem_AES_CMAC_k,contr
+	call load_key
+//	arg mem_AES_CMAC_xor,contr
+//	call aes_load_xor
+	force regidx_xor,regext_index
+	call aes_clear
+	call aes_clear_data
+	call do_aes_ocb
+	
+//	force 0x38,aes_ctrl
+//	force 0x0,aes_ctrl
+//	call wait_aes
+	arg mem_AES_CMAC_k1,contw
+	call store_aes_result
+function_AES_CMAC_k1:
+	bpatch patch1c_7,mem_patch1c
+	fetch 1,mem_AES_CMAC_k1
+	isolate1 7,pdata
+	nbranch function_AES_CMAC_k1_0,true	
+	call function_AES_CMAC_k1_inverse
+	
+//p_function_f4_k1_xor:
+	arg mem_AES_CMAC_k1,regc
+//	arg mem_AES_CMAC_rb,rega
+	arg mem_AES_CMAC_k1,contw
+//	arg 3,loopcnt
+//	call xor_loop
+	call function_AES_CMAC_xor_rb
+	branch function_AES_CMAC_k2
+function_AES_CMAC_k1_0:	
+	call function_AES_CMAC_k1_inverse
+function_AES_CMAC_k2:
+//call ice_break
+	arg mem_AES_CMAC_k1,contr
+	arg mem_AES_CMAC_k2,contw
+	call memcpy16
+	fetch 1,mem_AES_CMAC_k2
+	isolate1 7,pdata
+	nbranch function_AES_CMAC_k2_inverse,true		
+	call function_AES_CMAC_k2_inverse
+//p_function_f4_k2_xor:
+	arg mem_AES_CMAC_k2,regc
+//	arg mem_AES_CMAC_rb,rega
+	arg mem_AES_CMAC_k2,contw
+//	arg 3,loopcnt
+//	branch xor_loop	
+
+
+//rb:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 87 
+function_AES_CMAC_xor_rb:
+	arg 3,loopcnt
+function_AES_CMAC_xor_rb_loop:	
+	arg 0,temp
+	call function_AES_CMAC_xor_loop_common	
+	increase 4,regc
+	loop  function_AES_CMAC_xor_rb_loop
+	arg 0x8700,temp
+	lshift16 temp,temp
+function_AES_CMAC_xor_loop_common:	
+	ifetch   4,regc
+	ixor  temp,pdata
+	istore   4,contw	
+	rtn
+		
+
+
+
+//input rega :length <16	contr,contw
+function_AES_CMAC_padding:
+	bpatch patch1d_0,mem_patch1d
+	arg 16,loopcnt
+	arg 0,pdata
+function_AES_CMAC_padding_loop:
+	isub rega,null
+	branch function_AES_CMAC_padding_beq_length,zero
+	branch function_AES_CMAC_padding_big_length,positive
+	ifetcht 1,contr
+	istoret 1,contw
+function_AES_CMAC_padding_loop2:	
+	increase 1,pdata
+	loop function_AES_CMAC_padding_loop
+	rtn
+function_AES_CMAC_padding_beq_length:	
+	arg 0x80,temp
+function_AES_CMAC_padding_common:
+	istoret 1,contw
+	branch  function_AES_CMAC_padding_loop2
+
+function_AES_CMAC_padding_big_length:
+	arg 0,temp
+	branch function_AES_CMAC_padding_common
+
+	
+
+	
+concatenate_temp24:
+	lshift8 temp,temp
+concatenate_temp16:
+	lshift16 temp,temp
+	ior temp,temp
+	rtn
+
+endif
+
+/* ==================== LE security ================= */
+
+generate_stk:
+	bpatch patch1d_1,mem_patch1d
+	call function_s1
+	arg mem_le_ltk,contw
+	branch store_aes_result
+
+	/* contr = rand pointer */
+authenticate_rconfirm:
+	arg mem_le_srand,contw
+	branch authenticate_mconfirm,master
+	arg mem_le_mrand,contw
+authenticate_mconfirm:
+	copy contr,rega
+	call memcpy16
+	call function_c1
+	arg mem_le_rconfirm,contr
+	branch compare_res
+
+generate_confirm:
+	arg mem_le_mrand,rega
+	branch generate_mrand,master
+	arg mem_le_srand,rega
+generate_mrand:
+	copy rega,contw
+	call generate_random
+	branch function_c1
+
+generate_sk:
+	arg mem_le_skdm,contr
+	call load_data128
+	arg mem_le_ltk,contr
+	call load_regext
+	force 0x38,aes_ctrl
+	force 0x0,aes_ctrl
+	call wait_aes
+	arg mem_le_sk,contw
+	branch store_aes_result
+
+
+//input temp:counter; rega:len	
+ccm_b0:
+	force regidx_xor,regext_index				
+	force 0x49,pdata
+	branch iv_common
+	
+	/* temp=packet counter, rega = length or block counter*/
+first_block_counter:
+	force 0x49,pdata
+	branch first_block
+first_block_data:
+	force 1,pdata
+first_block:
+	force regidx_data,regext_index			
+iv_common:
+	lshift8 temp,regext
+	ior regext,regext
+	increase 1,regext_index
+	rshift8 temp,regext
+	rshift16 regext,regext
+	fetch 2,mem_ccm_iv
+	lshift16 pdata,pdata
+	ior regext,regext				/* octet3&octet4 of counter and low 16 bit of IV */
+	increase 1,regext_index
+	ifetchr regext, 4,contr					/* IV2-IV5 */
+	increase 1,regext_index
+	ifetch 2,contr					/* IV6-IV7 */
+	byteswap rega,regext
+	lshift16 regext,regext
+	ior regext,regext
+	increase 1,regext_index
+	rtn
+
+
+	/* temp=packet counter, regc pointers to data */	
+generate_mic:
+	add regc,1,contr
+	ifetch 1,contr
+	iforce rega
+	call first_block_counter		//B0
+	call do_aes_ocb
+
+	force regidx_data,regext_index			/* B1 */
+	ifetch 1,regc
+	and_into 0x3,pdata
+	lshift16 pdata,regext
+	set1 8,regext
+	call clear_hidata	//B1
+	call do_aes_cbc
+
+	copy rega,loopcnt
+	add regc,2,contr
+	call padding_data	//数据填充
+generate_mic_loop:
+	call aes_load_data
+	call do_aes_cbc
+	deposit loopcnt
+	branch generate_mic_end,blank
+	branch generate_mic_loop
+generate_mic_end:
+	force regidx_result,regext_index
+	deposit regext
+	store 4,mem_le_mic
+	rtn
+
+aes_crypt_data:
+	increase 1,rega
+	call first_block_data
+	copy regc,contr
+	call aes_load_xor
+	call do_aes_ctr
+	call store_enc_data
+	increase 16,regc
+	increase -16,regb
+	branch aes_crypt_data,positive
+	rtn
+
+
+/*
+le_encrypt:
+	arg mem_le_txheader,regc
+	fetcht 5,mem_ccm_pcnt_tx
+	call generate_mic
+	force regidx_xor,regext_index
+	iforce regext
+	force 0,rega					 
+	call first_block_data
+	call do_aes_ctr
+	arg mem_le_txpayload,regc
+	fetch 1,mem_le_txlen
+	add pdata,-1,regb
+	iadd regc,contw
+	force regidx_result,regext_index
+	deposit regext
+	istore 4,contw	
+	call aes_crypt_data
+	fetch 1,mem_le_txlen
+	increase 4,pdata
+	store 1,mem_le_txlen
+	fetcht 5,mem_ccm_pcnt_tx
+	increase 1,temp
+	set0 LE_CCM_DIRECTIONBIT,temp
+	storet 5,mem_ccm_pcnt_tx
+	rtn
+
+le_decrypt:
+	fetch 1,mem_le_rxbuf+1
+	arg mem_le_rxbuf+2,regc
+	add pdata,-1,regb
+	increase -4,pdata				
+	store 1,mem_le_rxbuf+1
+	iadd regc,contr
+	ifetch 4,contr
+	force regidx_xor,regext_index
+	iforce regext
+	force 0,rega					
+	fetcht 5,mem_ccm_pcnt_rx
+	call first_block_data	//generate nonce
+	call do_aes_ctr
+	force regidx_result,regext_index
+	deposit regext
+	store 4,mem_le_peer_mic
+	call aes_crypt_data
+	arg mem_le_rxbuf,regc
+	call generate_mic
+	fetcht 4,mem_le_peer_mic
+	isub temp,pdata				
+	nrtn blank
+	fetch 4,mem_ccm_last_mic			
+	isub temp,pdata
+	rtn blank
+	storet 4,mem_ccm_last_mic
+	fetch 5,mem_ccm_pcnt_rx
+	increase 1,pdata
+	set1 LE_CCM_DIRECTIONBIT,pdata
+	store 5,mem_ccm_pcnt_rx
+	force 0,pdata
+	rtn
+
+
+ 	
+le_decrypt_new:
+ 	call ccm_init_common
+	jam 0,core_ccm_aad0 
+	jam 1,core_ccm_aad1
+	fetch 1,mem_le_rxbuf_data_header
+	and_into 0x3,pdata
+	store 1,core_ccm_aad2
+	
+	setarg mem_le_rxbuf_data_payload
+	store 2,core_ccm_input_playload_addr
+	store 2,core_ccm_output_playload_addr
+
+	fetchr rega, 1,mem_le_rxbuf_data_length
+	increase -4,rega
+	nbranch disable_blank,positive
+	storer rega, 1,mem_le_rxbuf_data_length
+	setarg mem_le_rxbuf_data_payload
+	iadd rega,contr
+	force regidx_data,regext_index
+	ifetchr regext, 4,contr
+	storer  regext,4,mem_le_peer_mic
+	fetcht 5,mem_ccm_pcnt_rx				
+	call ccm_b0
+	jam 6,core_ccm_ctrl
+	jam 7,core_ccm_ctrl
+	fetch 1,mem_le_rxbuf_data_length
+	store 2,core_ccm_inptr
+	call wait_ccm_done
+	fetch 1,core_misc_status
+	bbit0 7, disable_blank
+	fetcht 4,mem_le_peer_mic
+	fetch 4,mem_ccm_last_mic			
+	isub temp,pdata
+	rtn blank
+	storet 4,mem_ccm_last_mic
+	fetch 5,mem_ccm_pcnt_rx
+	increase 1,pdata
+	set1 LE_CCM_DIRECTIONBIT,pdata
+	store 5,mem_ccm_pcnt_rx
+	force 0,pdata
+	rtn
+
+
+le_encrypt_new:
+	call le_encrypt_new_start
+	setarg mem_le_txpayload
+	iadd rega,rega
+	call wait_ccm_done
+	arg regidx_result,regext_index
+	istorer regext, 4 ,rega
+	rtn
+*/
+
+
+le_encrypt_new_start:
+	call ccm_init_common
+	bpatch patch1d_2,mem_patch1d
+	jam 0,core_ccm_aad0 
+	jam 1,core_ccm_aad1
+	fetch 1,mem_le_txheader
+	and_into 0x3,pdata
+	store 1,core_ccm_aad2
+	fetch 2,mem_contr
+	store 2,core_ccm_input_playload_addr
+	setarg mem_le_txpayload
+	store 2,core_ccm_output_playload_addr
+	
+	fetchr rega,1,mem_le_txlen
+	fetcht 5,mem_ccm_pcnt_tx				
+	call ccm_b0
+	jam 2,core_ccm_ctrl
+	jam 3,core_ccm_ctrl
+	
+	fetch 1,mem_le_txlen
+	store 2,core_ccm_inptr
+	increase 4,pdata
+	store 1,mem_le_txlen
+	fetch 5,mem_ccm_pcnt_tx
+	increase 1,pdata
+ 	set0 LE_CCM_DIRECTIONBIT,pdata
+	store 5,mem_ccm_pcnt_tx
+	rtn
+
+
+ccm_wait_enc:
+	fetch 2,core_ccm_outptr
+	isub temp,null
+	rtn zero 
+	nrtn blank
+//	call assert
+	branch ccm_wait_enc
+
+ccm_check_enc_done:
+	fetch 1,core_misc_status
+	bbit0 6,assert
+ccm_enc_done:
+	setarg mem_le_txpayload
+	iadd temp,contw	
+	arg regidx_result,regext_index
+	istorer regext, 4 ,contw	
+	branch ccm_ctrl_clr
+	
+ccm_init_common:
+	bpatch patch1d_3,mem_patch1d
+	force regidx_result,regext_index
+	call aes_clear
+	call aes_clear_data
+ 	setarg 0
+	store 2,core_ccm_inptr
+	rtn
+	
+wait_ccm_done:
+	fetch 1,core_misc_status
+	bbit0 6,wait_ccm_done
+ccm_ctrl_clr:
+	jam 0,core_ccm_ctrl
+	rtn
+
+
+wait_aes:
+	nbranch wait_aes,aes_ready
+	rtn
+
+do_aes_ocb:
+	force 0x30,aes_ctrl
+	force 0x0,aes_ctrl
+	branch wait_aes
+
+do_aes_cbc:
+	force 0x32,aes_ctrl
+	force 0x2,aes_ctrl
+	branch wait_aes
+
+do_aes_ctr:
+	force 0x34,aes_ctrl
+	force 0x4,aes_ctrl
+	branch wait_aes
+
+	
+aes_init:
+	force 1,aes_ctrl
+	force 0,aes_ctrl
+	rtn
+
+
+wait_keyinit_done:
+	fetch 1,core_aes_decode_key_init
+	bbit0 2,wait_keyinit_done
+	rtn
+
+
+/*
+input:pdata,dec key buffer addr
+output:initial dec key
+瀵嗛挜涓嶆敼锛屽彧鍋氫竴娆
+*/
+dec_key_initial:
+	store 2,core_keybuf_saddr
+	force 0xc0,aes_ctrl
+	force 0x80,aes_ctrl	//dec key initial
+	branch wait_keyinit_done
+
+/*
+input:regb,user enc payload buffer ptr
+	regc,user dec payload buffer ptr
+output:user dec payload buffer ptr
+*/
+do_aes_ecb_dec:
+	force regidx_data,regext_index
+	copy regb,contr
+   	force 4,loopcnt
+	call aes_ecb_dec_loop
+
+	force 0x180,aes_ctrl	//dec load data
+	force 0x80,aes_ctrl
+	call wait_aes
+ecb_dec_generate: 
+	force regidx_result,regext_index
+	copy regc,contw
+   	force 4,loopcnt
+ecb_dec_generate_loop:
+    copy regext,pdata
+	istore 4,contw
+	increase 1,regext_index
+	loop ecb_dec_generate_loop
+	rtn
+
+aes_ecb_dec_loop:
+	ifetch 2,contr
+	ifetcht 2,contr
+	lshift16 temp,temp
+	ior temp,regext
+	increase 1,regext_index
+	loop aes_ecb_dec_loop
+	rtn
+
+
+/*
+input:rega,xor data buffer ptr
+	regb,user enc payload buffer ptr	
+	regc,user dec payload buffer ptr
+output:user dec payload buffer ptr
+*/
+do_aes_cbc_dec:
+	force regidx_xor,regext_index
+	copy rega,contr
+	force 4,loopcnt
+	call aes_ecb_dec_loop
+
+	force regidx_data,regext_index
+	copy regb,contr
+	force 4,loopcnt
+	call aes_ecb_dec_loop
+	force 0x182,aes_ctrl
+	force 0x82,aes_ctrl
+	call wait_aes
+	branch ecb_dec_generate
+
+	
+function_s1:
+	force regidx_data,regext_index
+	fetch 4,mem_le_mrand
+	iforce regext
+	increase 1,regext_index
+	ifetch 4,contr
+	iforce regext
+	increase 1,regext_index
+	fetch 4,mem_le_srand
+	iforce regext
+	increase 1,regext_index
+	ifetch 4,contr
+	iforce regext
+	increase 1,regext_index
+	call aes_clear
+	increase -4,regext_index
+	fetch 4,mem_le_tk
+	copy pdata,regext
+	increase 4,regext_index
+	force 0x38,aes_ctrl
+	force 0x8,aes_ctrl
+	branch wait_aes
+
+	/* rega pointers to random number */
+function_c1:
+	bpatch patch1d_4,mem_patch1d
+	fetch 6,mem_le_lap
+	fetcht 6,mem_le_plap
+	branch function_c1_master,master
+	fetch 6,mem_le_plap
+	fetcht 6,mem_le_lap
+function_c1_master:
+	force regidx_xor,regext_index
+	copy temp,regext
+	increase 1,regext_index
+	rshift32 temp,regext
+	lshift16 pdata,pdata
+	ior regext,regext
+	increase 1,regext_index
+	rshift32 pdata,regext
+	increase 1,regext_index
+	force 0,regext					/* p2 = ia || ra */
+	force 0,pdata
+	fetch 1,mem_le_conn_peer_addr_type
+	fetcht 1,mem_le_adv_own_addr_type
+	nbranch function_c1_irat,master
+	//conn as master
+	fetch 1,mem_le_conn_own_addr_type
+	fetcht 1,mem_le_conn_peer_addr_type
+function_c1_irat:
+	store 1,mem_le_iat
+	storet 1,mem_le_rat
+	force regidx_data,regext_index
+	arg mem_le_iat,regb
+	force 4,loopcnt
+function_c1_loop1:
+	ifetch 4,rega		
+	ifetcht 4,regb
+	ixor temp,regext
+	increase 1,regext_index
+	increase 4,rega
+	increase 4,regb
+	loop function_c1_loop1		/* p1 ^ r */
+	call aes_clear				/* k = 0 */
+	increase -4,regext_index
+	fetch 4,mem_le_tk
+	copy pdata,regext
+	increase 4,regext_index
+	force 0x38,aes_ctrl
+	force 0xc,aes_ctrl
+	call wait_aes
+
+	call aes_clear_data
+	force 0x3a,aes_ctrl
+	force 0x8,aes_ctrl
+	branch wait_aes
+
+padding_data:
+	compare 0,loopcnt,3
+	rtn true
+	deposit contr
+	iadd loopcnt,contw
+	force 0,pdata
+padding_loop:
+	istore 1,contw
+	increase 1,loopcnt
+	compare 0,loopcnt,3
+	rtn true
+	branch padding_loop
+
+aes_load_data:
+	force regidx_data,regext_index
+load_data_loop:
+	deposit loopcnt
+	branch load_data_padding,blank
+	ifetch 4,contr
+	increase -4,loopcnt
+load_data_padding:
+	iforce regext
+	increase 1,regext_index
+	compare regidx_key,regext_index,0xf
+	rtn true
+	branch load_data_loop
+
+aes_load_xor:
+	force regidx_xor,regext_index
+	branch load_regext
+load_key:
+	force regidx_key,regext_index
+	branch load_regext
+load_data128:
+	force regidx_data,regext_index
+load_regext:
+	force 4,loopcnt
+load_regext_loop:
+	ifetch 4,contr
+	iforce regext
+	increase 1,regext_index
+	loop load_regext_loop
+	rtn
+
+load_sk:
+	arg mem_le_sk,contr
+	branch load_key
+
+clear_hidata:
+	force 4,loopcnt
+	branch clear_data_rest
+
+regext_clear:
+	force 0,regext_index
+	force 16,loopcnt
+	branch clear_loop
+
+aes_clear_data:
+	force regidx_data,regext_index
+aes_clear:
+	force 4,loopcnt
+clear_loop:
+	force 0,regext
+clear_data_rest:
+	increase 1,regext_index
+	loop clear_loop
+	rtn
+
+store_aes_result:
+	force regidx_result,regext_index
+	force 4,loopcnt
+send_aes_result_loop:
+	deposit regext
+	istore 4,contw
+	increase 1,regext_index
+	loop send_aes_result_loop
+	rtn
+
+store_enc_data:
+	force regidx_result,regext_index
+	copy regc,contw
+	add regb,1,loopcnt
+	sub loopcnt,15,null
+	branch store_enc_loop,positive
+	force 16,loopcnt
+store_enc_loop:
+	deposit regext
+	sub loopcnt,3,null
+	branch store_enc_byte,positive
+	istore 4,contw
+	increase -4,loopcnt
+	rtn zero
+	increase 1,regext_index
+	branch store_enc_loop
+store_enc_byte:
+	istore 1,contw
+	rshift8 pdata,pdata
+	loop store_enc_byte
+	rtn
+	
+	/* contr pointers to value to be compared */
+compare_res:
+	force regidx_result,regext_index
+	force 4,loopcnt
+compare_res_loop:
+	ifetch 4,contr
+	isub regext,null
+	nrtn zero
+	increase 1,regext_index
+	loop compare_res_loop
+	branch enable_zero
+
+enable_authrom:
+	fetch 1,core_clkoff
+	set0 CLOCK_OFF_AUTH_ROM,pdata
+	store 1,core_clkoff
+	rtn
+
+disable_authrom:
+	fetch 1,core_clkoff
+	set1 CLOCK_OFF_AUTH_ROM,pdata
+	store 1,core_clkoff
+	rtn
+
+//24 mem_p :ff ff ff ff ff ff ff ff fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+//24 mem_a: fc ff ff ff ff ff ff ff fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+//24 mem_b: b1 b9 46 c1 ec de b8 fe 49 30 24 72 ab e9 a7 0f e7 80 9c e5 19 05 21 64
+//24 mem_gx :12 10 ff 82 fd 0a ff f4 00 88 a1 43 eb 20 bf 7c f6 90 30 b0 0e a8 8d 18
+//24 mem_gy :11 48 79 1e a1 77 f9 73 d5 cd 24 6b ed 11 10 63 78 da c8 ff 95 2b 19 07
+//32 memh0   :19 cd e0 5b ab d9 83 1f 8c 68 05 9b 7f 52 0e 51 3a f5 4f a5 72 f3 6e 3c 85 ae 67 bb 67 e6 09 6a //use for sha
+init_memp:
+	arg mem_p,contw
+	setsect 0,0x3ffff
+	setsect 1,0x3ffff
+	setsect 2,0x3ffff
+	setsect 3,0x3fbff
+	istore 9,contw
+	setsect 0,0x3ffff
+	setsect 1,0x3ffff
+	setsect 2,0x3ffff
+	setsect 3,0x3ffff
+	istore 9,contw
+	setsect 0,0x3ffff
+	setsect 1,0x3ffff
+	setsect 2,0x3cfff
+	setsect 3,0x3ffff
+	istore 9,contw
+	setsect 0,0x3ffff
+	setsect 1,0x3ffff
+	setsect 2,0x3ffef
+	setsect 3,0x3ffff
+	istore 9,contw
+	setsect 0,0x3ffff
+	setsect 1,0x3ffff
+	setsect 2,0x3ffff
+	setsect 3,0x3ffff
+	istore 9,contw
+	setsect 0,0x3ffff
+	setsect 1,0x26c7f
+	setsect 2,0x146b
+	setsect 3,0x37bb3
+	istore 9,contw
+	setsect 0,0x1feb8
+	setsect 1,0x10c12
+	setsect 2,0x2b722
+	setsect 3,0x29fa6
+	istore 9,contw
+	setsect 0,0xe70f
+	setsect 1,0x16720
+	setsect 2,0x519e
+	setsect 3,0x19084
+	istore 9,contw
+	setsect 0,0x31012
+	setsect 1,0x360bf
+	setsect 2,0x3f0af
+	setsect 3,0x3d3
+	istore 9,contw
+	setsect 0,0x3a188
+	setsect 1,0x3ad0
+	setsect 2,0x3cbf2
+	setsect 3,0x243d9
+	istore 9,contw
+	setsect 0,0x2b030
+	setsect 1,0x36a03
+	setsect 2,0x11188
+	setsect 3,0x1e520
+	istore 9,contw
+	setsect 0,0x3a11e
+	setsect 1,0xfe5d
+	setsect 2,0xdd57
+	setsect 3,0x1ac93
+	istore 9,contw
+	setsect 0,0x11ed
+	setsect 1,0x218c4
+	setsect 2,0x8da7
+	setsect 3,0x257ff
+	istore 9,contw
+	setsect 0,0x3192b
+	setsect 1,0x34641
+	setsect 2,0x1be0c
+	setsect 3,0x366ad
+	istore 9,contw
+	setsect 0,0x1f83
+	setsect 1,0x15a23
+	setsect 2,0x3f9b0
+	setsect 3,0x3949
+	istore 9,contw
+	setsect 0,0x13a51
+	setsect 1,0x153fd
+	setsect 2,0x3372a
+	setsect 3,0xf1bb
+	istore 9,contw
+	setsect 0,0x3ae85
+	setsect 1,0x1eed9
+	setsect 2,0x9e66
+	setsect 3,0x1a8
+	istore 8,contw
+	rtn
+
+ifdef SECURE_CONNECTION
+
+// mem_p_256:ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ff ff ff ff
+// mem_a_256: fc ff ff ff ff ff ff ff fe ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff b1 b9 46 c1 ec de b8 fe
+// mem_gx_256: 96 c2 98 d8 45 39 a1 f4 a0 33 eb 2d 81 7d 03 77 f2 40 a4 63 e5 e6 bc f8 47 42 2c e1 f2 d1 17 6b
+// mem_gy_256: f5 51 bf 37 68 40 b6 cb ce 5e 31 6b 57 33 ce 2b 16 9e 0f 7c 4a eb e7 8e 9b 7f 1a fe e2 42 e3 4f
+// mem_le_slat :be 83 60 5a db 0b 37 60 38 a5 f5 aa 91 83 88 6c
+init_memp_256:
+ 	arg mem_p_256,contw
+        setsect 0,0x3ffff
+        setsect 1,0x3ffff
+        setsect 2,0x3ffff
+        setsect 3,0x3ffff
+        istore 9,contw
+        setsect 0,0x3ffff
+        setsect 1,0x3f
+        setsect 2,0x0
+        setsect 3,0x0
+        istore 9,contw
+        setsect 0,0x0
+        setsect 1,0x0
+        setsect 2,0x1000
+        setsect 3,0x0
+        istore 9,contw
+        setsect 0,0x3ff00
+        setsect 1,0x3ffff
+        setsect 2,0x3ffcf
+        setsect 3,0x3ffff
+        istore 9,contw
+        setsect 0,0x3ffff
+        setsect 1,0x3ffff
+        setsect 2,0x3ffff
+        setsect 3,0x3ff
+        istore 9,contw
+        setsect 0,0x0
+        setsect 1,0x0
+        setsect 2,0x0
+        setsect 3,0x0
+        istore 9,contw
+        setsect 0,0x10000
+        setsect 1,0x0
+        setsect 2,0x3f000
+        setsect 3,0x3ffff
+        istore 9,contw
+        setsect 0,0x296ff
+        setsect 1,0x22630
+        setsect 2,0x3945d
+        setsect 3,0x3d284
+        istore 9,contw
+        setsect 0,0x333a0
+        setsect 1,0x4b7a
+        setsect 2,0x37d8
+        setsect 3,0x3c9dc
+        istore 9,contw
+        setsect 0,0x3a440
+        setsect 1,0x1b958
+        setsect 2,0x38bce
+        setsect 3,0x1091f
+        istore 9,contw
+        setsect 0,0x2e12c
+        setsect 1,0x1f47c
+        setsect 2,0x356b1
+        setsect 3,0x2fd47
+        istore 9,contw
+        setsect 0,0x6837
+        setsect 1,0x2ed90
+        setsect 2,0x1ecec
+        setsect 3,0x1acc5
+        istore 9,contw
+        setsect 0,0x23357
+        setsect 1,0x18af3
+        setsect 2,0xf9e1
+        setsect 3,0x129f0
+        istore 9,contw
+        setsect 0,0x2e7eb
+        setsect 1,0x3e6e3
+        setsect 2,0x3e1a7
+        setsect 3,0x10b8b
+        istore 9,contw
+        setsect 0,0x24fe3
+        setsect 1,0x20ef
+        setsect 2,0x1b5a6
+        setsect 3,0xdc2f
+        istore 9,contw
+        setsect 0,0x13860
+        setsect 1,0x2bd69
+        setsect 2,0x391a
+        setsect 3,0x1b222
+        istore 9,contw
+        rtn
+endif
+
Index: program/sim.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/sim.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/sim.prog	(working copy)
@@ -0,0 +1,785 @@
+simstart:
+	force 8,radio_ctrl
+	force 0,radio_ctrl
+    //dpll enable
+	jam 0xcf,core_bbpll_ctrl0
+	jam 0xe9,core_bbpll_ctrl1
+	jam 5,core_clksel
+	jam 0,core_clkoff
+	jam 0,core_clkoff+1
+	jam SYSTEM_CLK_12M,mem_system_clk
+
+//	call sim_nec
+//	branch sim_c1
+//	jam 8,0x8011 //efuse lock
+//	call sim_wdt
+//	call sim_nec
+//	call sim_dac
+//    call sim_ccm
+//	call sim_otp
+//    branch sim_assert
+//	branch sim_lr
+//	call sim_snooze
+//	call sim_adpcm
+//	branch sim_lpm_clk
+//	call sim_pwm
+//	call sim_saradc
+//	branch sim_usb
+	branch sim_lpm_sleep
+//	branch sim_iic
+//	call sim_cal
+//	call sim_uart
+//	call sim_spi
+//	branch sim_le
+	branch sim_assert
+	fetch 1,mem_sim_slave
+	beq 1,assert
+
+sim_assert:
+	branch sim_assert
+
+
+
+sim_adpcm:
+	arg mem_le_test_sync,contr
+	arg 0,contw
+	arg 192,loopcnt
+sim_adpcm_loop:
+	ifetch 4,contr
+	call adpcm_byte
+	istore 1,contw
+	loop sim_adpcm_loop
+	copy contr,rega
+	arg 0,regb
+	arg 192,loopcnt
+	call string_compare
+	nbranch assert,zero
+	arg mem_le_test_sync+768,contr
+	arg 0,contw
+	arg 192,loopcnt
+	pulse init_adpcm
+sim_adpcm_loop2:
+	ifetch 1,contr
+	pcm pdata,temp
+	istoret 2,contw
+	rshift4 pdata,pdata
+	pcm pdata,temp
+	istoret 2,contw
+	loop sim_adpcm_loop2	
+	copy contr,rega
+	arg 0,regb
+	arg 768,loopcnt
+	call string_compare
+	nbranch assert,zero
+	rtn
+	
+// pdata is 4 byte pcm data, return in pdata
+adpcm_byte:
+	adpcm pdata,temp
+	rshift16 pdata,pdata
+	adpcm pdata,pdata
+	lshift4 pdata,pdata
+	ior temp,pdata
+	rtn
+
+	
+
+sim_nec:
+	jam gpcfg_nec_input,core_gpio_conf+6
+	setarg 0x100000
+	arg 0x31,temp
+	call nec_init_config
+	nop 10000
+	jam 0x0,core_nec_ctrl
+	rtn
+
+sim_saradc:
+	jam 0,core_gpadc_cfg1
+	jam 0x77,core_gpadc_ctrl
+	call sim_sadc_cal
+	jam 0xc1,core_gpadc_cfg0
+	jam 1,core_sadc_clkdiv
+	call sim_sadc
+	jam 11,core_sadc_clkdiv
+	call sim_sadc
+	jam 119,core_sadc_clkdiv
+	call sim_sadc
+	jam 11,core_sadc_clkdiv
+	call sim_sadc
+	jam 0,core_sadc_clkdiv
+	call sim_sadc_dma
+	rtn
+
+
+sim_sadc_dma:
+	jam 0x80,core_gpadc_cfg1
+	jam 10,core_sadc_clkdiv
+	jam 0xff,core_sadc_eaddr
+	jam 0xb,core_sadc_ctrl
+	nop 1000
+	jam 0x3,core_sadc_ctrl
+	rtn
+
+sim_sadc_cal:
+	jam 0xc9,core_gpadc_cfg0
+	jam 7,core_sadc_clkdiv
+sim_sadc:
+	jam 0x23,core_sadc_ctrl
+sim_sadc_wait:
+	fetch 1,core_perf_status
+	bbit0 5,sim_sadc_wait
+	fetcht 2,core_sadc_data
+	jam 6,core_sadc_ctrl
+sim_sadc_wait2:
+	fetch 1,core_perf_status
+	bbit1 5,sim_sadc_wait2
+	jam 0,core_sadc_ctrl
+	rtn
+
+
+sim_pwm:
+	jam 0xce,core_clkoff+1
+	jam 0x1,core_pwm_pcnt0
+	jam 0x1,core_pwm_ncnt0
+	jam 0x10,core_gpio_conf+6
+	jam 0x1,core_pwm_autoload
+	jam 0x1,core_pwm_en //pwm0/1 enable
+	rtn
+
+sim_usb:
+	call usb_init
+sim_usb_loop:
+	call usb_isr
+	branch sim_usb_loop
+
+sim_lpm_clk:
+	jam 1,mem_context
+	branch sim_lpm_cont,wake
+	jam 0x2,core_ccnt_bit
+	jam ccnt_start,core_misc_ctrl
+sim_lpm_wait:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch sim_lpm_wait,blank
+	lshift4 pdata,pdata
+	store 3,mem_clks_per_lpo
+sim_lpm_cont:
+	setarg param_rt_rthalfslot
+	store 2,mem_param_rt_rthalfslot
+	call lpm_recover_clk,wake
+	setarg 10000
+	call sleep,wake
+sim_lpm_sleep:
+	branch sim_lpm_hibernate,wake
+	arg 120,temp
+	storet 4,mem_sleep_counter
+	branch lpm_sleep
+
+sim_lpm_hibernate:
+	until null,lpo_edge
+	jam 0x77,core_gpio_wakeup_cfg+3
+	until null,lpo_edge
+	jam 0x77,core_gpio_wakeup_cfg+4
+	until null,lpo_edge
+	jam 2,core_gpio_wakeup_cfg+5
+	until null,lpo_edge
+	jam 0xaa,core_puwakeup
+	until null,lpo_edge
+	arg 60,temp
+	branch lpm_hibernate+2
+
+
+sim_le:
+	jam lemode_2m,mem_le_mode
+	fetch 1,mem_sim_slave
+	beq 1,sim_le_slave
+	jam 1,mem_le_scan_enable
+sim_le_loop:
+	call le_advertising_dispatch
+	branch sim_le_loop
+
+sim_le_slave:
+	jam 1,mem_le_adv_enable
+	nop 1000
+	branch sim_le_loop
+
+
+sim_otp:
+	fetch 1,mem_sim_slave
+	beq 1,assert
+	setarg 0x1234567
+	store 4,mem_tmp_buffer
+	arg 0x1230,regb
+	arg mem_tmp_buffer,rega
+	arg 4,loopcnt
+	call otp_write
+	arg 0x1230,regb
+	arg mem_tmp_buffer+4,rega
+	arg 4,loopcnt
+	call otp_read_data
+	fetch 4,mem_tmp_buffer
+	ifetcht 4,contr
+	isub temp,null
+	nbranch assert,zero
+	jam 0x73,0x8002
+	until null,lpo_edge
+	until null,lpo_edge
+	jam 0x80,0x8144
+	until null,lpo_edge
+	fetch 1,0x8144
+	arg 0x1230,regb
+	arg mem_tmp_buffer+4,rega
+	arg 4,loopcnt
+	call otp_read_data
+	fetch 4,mem_tmp_buffer
+	ifetcht 4,contr
+	isub temp,null
+	nbranch assert,zero
+	rtn
+	
+
+sim_snooze:
+	setarg 0x40
+	arg 13,loopcnt
+	arg core_gpio_conf,contw
+	lstore contw
+	jam 0x3,0x8150
+	setarg 123
+	iadd lpo_time,alarm
+	snooze
+	rtn
+
+ifdef TEST
+
+sim_ccm:
+    //call sim_aes_key_config_case1
+    //call sim_aes_dec_dma_case1
+    //call sim_aes_enc_dma_case1
+    call sim_aes_key_config_case4
+    call sim_aes_dec_dma_case4
+    call sim_aes_enc_dma_case4
+    rtn
+
+sim_aes_key_config_case1:
+    //key
+    force 4,regext_index
+    arg 0x6789,pdata
+    lshift16 pdata,pdata
+    arg 0x6789,temp
+    ior temp,regext
+    force 5,regext_index
+    arg 0x6789,pdata
+    lshift16 pdata,pdata
+    arg 0x6789,temp
+    ior temp,regext
+    force 6,regext_index
+    arg 0x2345,pdata
+    lshift16 pdata,pdata
+    arg 0x2345,temp
+    ior temp,regext
+    force 7,regext_index
+    arg 0x2345,pdata
+    lshift16 pdata,pdata
+    arg 0x2345,temp
+    ior temp,regext
+    //nonce
+    force 8,regext_index
+    arg 0xbc61,pdata
+    lshift16 pdata,pdata
+    arg 0x4e49,temp
+    ior temp,regext
+    force 9,regext_index
+    arg 0xccdd,pdata
+    lshift16 pdata,pdata
+    arg 0x0000,temp
+    ior temp,regext
+    force 0xa,regext_index
+    arg 0x8899,pdata
+    lshift16 pdata,pdata
+    arg 0xaabb,temp
+    ior temp,regext
+    force 0xb,regext_index
+    arg 0x0000,pdata
+    lshift16 pdata,pdata
+    arg 0x6677,temp
+    ior temp,regext
+    //aad
+    jam 0x00,0x80d5
+    jam 0x19,0x80d6
+    jam 0x02,0x80d7
+    rtn
+
+sim_aes_dec_dma_case1:
+    //mic golden
+    force 0,regext_index
+    arg 0xc5dd,pdata
+    lshift16 pdata,pdata
+    arg 0xa210,temp
+    ior temp,regext
+    
+    //payload
+
+    //dma config
+    jam 0x00,0x80d1
+    jam 0x10,0x80d2
+    jam 0x00,0x80d3
+    jam 0x10,0x80d4
+    jam 0x6,0x800a 
+    jam 0x7,0x800a 
+    nop 1000
+    rtn
+
+sim_aes_enc_dma_case1:
+    //payload
+
+    //dma config
+    jam 0x00,0x80d1
+    jam 0x10,0x80d2
+    jam 0x00,0x80d3
+    jam 0x11,0x80d4
+    jam 0x2,0x800a 
+    jam 0x3,0x800a 
+    nop 1000
+    rtn
+
+sim_aes_key_config_case4:
+    //key
+    force 4,regext_index
+    arg 0x1bd1,pdata
+    lshift16 pdata,pdata
+    arg 0x2ace,temp
+    ior temp,regext
+    force 5,regext_index
+    arg 0xbd56,pdata
+    lshift16 pdata,pdata
+    arg 0x14a1,temp
+    ior temp,regext
+    force 6,regext_index
+    arg 0x1f8b,pdata
+    lshift16 pdata,pdata
+    arg 0x9dbd,temp
+    ior temp,regext
+    force 7,regext_index
+    arg 0xfc22,pdata
+    lshift16 pdata,pdata
+    arg 0x8384,temp
+    ior temp,regext
+    //nonce
+    force 8,regext_index
+    arg 0xb3be,pdata
+    lshift16 pdata,pdata
+    arg 0x9549,temp
+    ior temp,regext
+    force 9,regext_index
+    arg 0x2769,pdata
+    lshift16 pdata,pdata
+    arg 0x00bd,temp
+    ior temp,regext
+    force 0xa,regext_index
+    arg 0xb727,pdata
+    lshift16 pdata,pdata
+    arg 0x5bf9,temp
+    ior temp,regext
+    force 0xb,regext_index
+    arg 0x1100,pdata
+    lshift16 pdata,pdata
+    arg 0x82b8,temp
+    ior temp,regext
+    //aad
+    jam 0x00,0x806c
+    jam 0x19,0x806d
+    jam 0x02,0x806e
+    rtn
+
+sim_aes_dec_dma_case4:
+    //mic golden
+    force 0,regext_index
+    arg 0x7c32,pdata
+    lshift16 pdata,pdata
+    arg 0x2cc6,temp
+    ior temp,regext
+    
+    //payload
+    arg 0x1001,contw
+    arg 0xb839, pdata
+    istore 2,contw
+    arg 0xc85f, pdata
+    istore 2,contw
+    arg 0x3756, pdata
+    istore 2,contw
+    arg 0x9249, pdata
+    istore 2,contw
+    arg 0xf07f, pdata
+    istore 2,contw
+    arg 0xd647, pdata
+    istore 2,contw
+    arg 0x2b40, pdata
+    istore 2,contw
+    arg 0x7ccc, pdata
+    istore 2,contw
+    arg 0xfff9, pdata
+    istore 2,contw
+    arg 0xffff, pdata
+    istore 2,contw
+    jam 0x11,0x80c1
+
+    //dma config
+    jam 0x01,0x8068
+    jam 0x10,0x8069
+    jam 0x02,0x806a
+    jam 0x40,0x806b
+    jam 0x6,0x800a 
+    jam 0x7,0x800a 
+    call wait_ccm_done
+    fetch 1,0x4012
+    bne 0x05,assert
+    rtn
+
+sim_aes_enc_dma_case4:
+    //payload
+    arg 0x4002,contw
+    arg 0x1286, pdata
+    istore 2,contw
+    arg 0xa56d, pdata
+    istore 2,contw
+    arg 0xb3db, pdata
+    istore 2,contw
+    arg 0x6491, pdata
+    istore 2,contw
+    arg 0xa19b, pdata
+    istore 2,contw
+    arg 0xc4ca, pdata
+    istore 2,contw
+    arg 0x9160, pdata
+    istore 2,contw
+    arg 0x3372, pdata
+    istore 2,contw
+    arg 0xff05, pdata
+    istore 2,contw
+    arg 0xffff, pdata
+    istore 2,contw
+    jam 0x11,0x80da //ccm_inptr
+
+    //dma config
+    jam 0x02,0x80d1
+    jam 0x40,0x80d2
+    jam 0x01,0x80d3
+    jam 0x11,0x80d4
+    jam 0x2,0x800a 
+    jam 0x3,0x800a 
+    call wait_ccm_done
+    fetch 1,0x1111
+    bne 0xf9,assert
+    rtn
+
+
+
+
+
+
+
+
+
+sim_dac:
+	jam gpcfg_dac_p,core_gpio_conf+4
+	jam gpcfg_dac_n,core_gpio_conf+5
+	jam 0,core_clkoff
+	setarg 0x012972
+	store 3,core_dac_coef
+	call sim_sine
+	setarg 0x200
+	store 2,core_dac_saddr
+	jam 0x4f,core_dac_len
+	jam 0xe0,core_dac_vol
+	jam 0x5,core_dac_ctrl
+	branch sim_assert
+
+sim_sine:
+	setarg 00
+	store 2,0x200
+	setarg 5690
+	istore 2,contw
+	setarg 11209
+	istore 2,contw
+	setarg 16386
+	istore 2,contw
+	setarg 21065
+	istore 2,contw
+	setarg 25104
+	istore 2,contw
+	setarg 28380
+	istore 2,contw
+	setarg 30794
+	istore 2,contw
+	setarg 32271
+	istore 2,contw
+	setarg 32767
+	istore 2,contw
+	add contw,-2,contr
+	arg 10,loopcnt
+sine_loop1:
+	ifetch 2,contr
+	istore 2,contw
+	increase -4,contr
+	loop sine_loop1
+	arg 0x200,contr
+	arg 20,loopcnt
+sine_loop2:
+	ifetcht 2,contr
+	sub temp,0,temp
+	istoret 2,contw
+	loop sine_loop2
+	rtn
+
+	
+
+sim_lpm:
+	setarg 0
+	arg 8,loopcnt
+sim_lpm_loop:
+	until null,lpo_edge
+	store 1,core_lpm_ldosel
+	pincrease 0x10
+	loop sim_lpm_loop
+	call app_lpm_peripheral_lock_shutter
+	call app_lpm_mpu_lock_ble
+
+
+sim_lr:
+	jam 3,mem_le_ch_mapped
+	setarg 0xfedcba
+	store 3,mem_le_crcinit
+	call le_enable
+	setarg 0x1234567
+	iforce access
+	set1 mark_ble_lr,mark
+//	set1 mark_ble_lr_s8,mark
+	setarg 0x2e0403
+	store 3,mem_le_txheader
+	setarg 0x123456
+	istore 3,contw
+	call le_transmit
+	branch assert
+
+
+
+sim_c1:
+	setarg 0xb4b5b6
+	store 3,mem_le_lap
+	setarg 0xb1b2b3
+	istore 3,contw
+	setarg 0xa4a5a6
+	store 3,mem_le_plap
+	setarg 0xa1a2a3
+	istore 3,contw
+	setarg 0x101
+	store 4,mem_le_preq
+	setarg 0x70710
+	istore 3,contw
+	setarg 0x302
+	store 4,mem_le_pres
+	setarg 0x50008
+	istore 3,contw
+	jam 0,mem_le_conn_peer_addr_type
+	jam 1,mem_le_adv_own_addr_type
+	arg regidx_key,regext_index
+	arg 4,loopcnt
+sim_clear_key_loop:
+	arg 0,regext
+	increase 1,regext_index
+	loop sim_clear_key_loop
+
+	setarg 0x702EE0
+	store 3,mem_le_rconfirm
+	setarg 0x274EC6
+	istore 3,contw
+	setarg 0x0E6388
+	istore 3,contw
+	setarg 0x56AD6F
+	istore 3,contw
+	setarg 0x83D521
+	istore 3,contw
+	setarg 0x57	
+	istore 1,contw
+	arg mem_le_rconfirm,rega
+	call aes_init
+	call function_c1
+	branch loop
+
+loop:
+	branch loop
+
+sim_wdt:
+    jam 8,0x8043
+    jam 0x7e,0x8004
+    nop 1000
+    jam 0xf,0x800b
+    rtn
+
+
+
+
+sim_uart:
+	jam 0x67,mem_h5tx_buf
+	setarg mem_h5tx_buf
+	add pdata,0x80,temp
+	call uarta_init_tx
+	increase 0x80,pdata
+	increase 0x80,temp
+	jam gpcfg_uart_txd,core_gpio_conf + 16
+	jam 0x81,core_uart_ctrl
+	setarg 0x30
+	store 2,core_uart_baud
+	fetch 1,mem_sim_slave
+	beq 1,sim_uart_slave
+	call uarta_prepare_tx
+	call sim_uart_wait+3
+	setarg 0x1357d9a
+	istore 4,contu
+	arg 0xaa69,rega
+	istorer rega,2,contu
+	setarg 0xfedcb3
+	istore 3,contu
+	storer contu,2,core_uart_twptr
+sim_uart_wait:
+	fetch 1,core_uart_status
+	bbit1 uart_status_tx_busy,sim_uart_wait
+	nop 200
+	rtn
+
+sim_uart_slave:
+	nop 247
+	fetch 1,mem_h5tx_buf
+	bne 0x67,assert
+	branch sim_uart_slave
+	fetch 1,core_uart_status
+	bbit1 uart_status_rx_fifo_empty,sim_uart_slave
+	fetch 1,core_uart_rxitems
+	bne 9,sim_uart_slave
+	fetcht 8,mem_h5tx_buf
+	call uarta_prepare_rx
+	ifetch 8,contu
+	isub temp,null
+	nbranch assert,zero
+	rtn
+
+
+
+sim_cal:
+
+	call tx_iq_precomp
+	fetchr regf,2,mem_omega
+	ifetchr regf,2,contr
+	ifetchr regf,2,contr
+	fetchr regf,2,mem_b1
+	ifetchr regf,2,contr
+	fetchr regf,2,mem_b2
+	ifetchr regf,2,contr
+	arg 0x1000,timeup
+	call tx_iq_cal
+	jam 1,core_ice_ctrl
+
+	arg 0x1000,timeup
+	call rx_iq_comp
+	jam 1,core_ice_ctrl
+	
+
+sim_iic:
+	call iic_init_600khz
+    call iicd_init_pin
+iic_write:
+	setarg 6
+	store 2,core_iicd_txlen
+	setarg 0x10a0
+	store 2,0x1000
+    setarg 0x5a00
+	store 2,0x1002
+    setarg 0xa5a5
+	store 2,0x1004
+	setarg 0x1000
+	store 2,core_iicd_txaddr
+	setarg 0
+	store 2,core_iicd_rxlen
+	jam 3,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	nop 300
+iic_dummy_write:
+	setarg 3
+	store 2,core_iicd_txlen
+	setarg 0x10a0
+	store 2,0x1000
+    setarg 0x00
+	store 1,0x1002
+	setarg 0x1000
+	store 2,core_iicd_txaddr
+	setarg 0
+	store 2,core_iicd_rxlen
+	jam 3,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	nop 300
+iic_read:
+    setarg 1
+	store 2,core_iicd_txlen
+    setarg 0xa1
+	store 1,0x1000
+	setarg 0x1000
+	store 2,core_iicd_txaddr
+    setarg 0x1100
+	store 2,core_iicd_rxaddr
+	setarg 3
+	store 2,core_iicd_rxlen
+	jam 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+    fetch 1, 0x1100
+    bne 0x5a, assert
+    rtn
+
+sim_spi:
+    //jam gpcfg_spid_miso ,core_gpio_conf + 12 
+    //jam gpcfg_spid_ncs ,core_gpio_conf + 13 
+    //jam gpcfg_spid_sck ,core_gpio_conf + 14 
+    //jam gpcfg_spid_mosi ,core_gpio_conf + 15
+    call spi_gpio_init
+
+    setarg 3 
+    store 2 ,core_spid_rxlen 
+    setarg 4 
+    store 2 ,core_spid_txlen 
+    setarg 0x1200 
+    store 2 ,core_spid_txaddr 
+    setarg 0x1300 
+    store 2 ,core_spid_rxaddr
+    setarg 0x0003
+	store 2,0x1200
+    setarg 0x0000
+	store 2,0x1202
+    jam spid_start ,core_misc_ctrl 
+    call wait_spid_done
+    fetch 1, 0x1302
+    bne 0xaa, assert
+    rtn
+
+
+sim_adc:
+    jam 0xc,0x8a0a
+    jam 0x2,0x8a17
+    jam 0x1,0x8a97
+    jam 0x0,0x80dc
+    jam 0x80,0x8053
+    nop 10000
+    jam 0x5,0x80dc
+    jam 0x80,0x8053
+    nop 10000
+    jam 0xa,0x80dc
+    jam 0x80,0x8053
+    nop 10000
+    jam 0xf,0x80dc
+    jam 0x80,0x8053
+    nop 10000
+    jam 0x0,0x8053
+    rtn
+
+ endif
Index: program/simple_pairing.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/simple_pairing.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/simple_pairing.prog	(working copy)
@@ -0,0 +1,1068 @@
+
+
+ifdef SECURE_CONNECTION
+
+
+publickey_init:
+//	fetch 1,mem_ssp_enable
+//	nbranch sp_initialize,blank
+	branch sp_initialize_256
+
+sp_calc_sequence_256_check:
+	bpatch patch1d_5,mem_patch1d
+//	fetch 1,mem_ssp_enable
+//	rtn blank
+//	fetch 1,mem_sp_local_key_invalid
+//	rtnne SP_KEY_VALID
+	fetch 1,mem_secure_connections_enable
+	rtn blank
+	fetch 1,mem_sc_local_key_invalid
+	rtneq SP_KEY_VALID_256
+//	fetch 2,mem_ui_state_map
+//	bbit1 UI_STATE_BT_CONNECTED,stop_publickey_calc_256
+	fetch 1,mem_sc_calc
+	beq SP_CALC_STANDBY,sp_initialize_256
+	rtn
+stop_publickey_calc_256:
+	jam SP_CALC_STANDBY,mem_sc_calc	
+	rtn
+
+
+	
+
+sp_clear_flags:
+	bpatch patch1d_6,mem_patch1d
+	setarg mem_sp_state_end
+	arg mem_sp_state_start,contw
+	isub contw,loopcnt
+	call clear_mem
+	setarg mem_sp_state_xmem_end
+	arg mem_sp_state_xmem,contw
+	isub contw,loopcnt
+	branch clear_mem
+
+
+
+sp_calc_check_publickey_256:
+	call sp_calc_b256
+	arg mem_le_pubkey_remote_y_256,rega
+	arg mem_t7_256,contw
+	call bn_sqrmod_256   
+	arg mem_le_pubkey_remote_x_256,rega
+	arg mem_t2_256,contw
+	call bn_sqrmod_256   
+  	arg mem_t2_256,rega
+	arg mem_le_pubkey_remote_x_256,regb
+	arg mem_t2_256,contw
+	call bn_mulmod_256	
+  	arg mem_a_256,rega
+	arg mem_le_pubkey_remote_x_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256	
+  	arg mem_t3_256,rega
+	arg mem_t2_256,regb
+	arg mem_t2_256,contw
+	call bn_addmod_256	 
+  	arg mem_t0_256,rega
+	arg mem_t2_256,regb
+	arg mem_t0_256,contw
+	call bn_addmod_256	 
+	arg 32,loopcnt
+  	arg mem_t7_256,rega
+	arg mem_t0_256,regb
+	branch  string_compare
+	
+sp_calc_b256:
+	arg mem_gy_256,rega
+	arg mem_t0_256,contw
+	call bn_sqrmod_256   
+	arg mem_gx_256,rega
+	arg mem_t2_256,contw
+	call bn_sqrmod_256    
+  	arg mem_t2_256,rega
+	arg mem_gx_256,regb
+	arg mem_t2_256,contw
+	call bn_mulmod_256	
+  	arg mem_a_256,rega
+	arg mem_gx_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256	 
+  	arg mem_t3_256,rega
+	arg mem_t2_256,regb
+	arg mem_t2_256,contw
+	call bn_addmod_256	 
+  	arg mem_t0_256,rega
+	arg mem_t2_256,regb
+	arg mem_t0_256,contw
+	branch  bn_submod_256	
+
+
+
+
+random_generator:
+	increase -1,queue
+	nrtn     positive
+	random   pdata
+	istore   2,contw  
+	branch   random_generator
+compare4:
+	increase -1,queue
+	nbranch  compare4_success,positive
+	ifetch   4,rega
+	copy     pdata,temp
+	ifetch   4,regb
+	iflip    temp,pdata
+	nbranch  compare4_failed,zero
+	increase 4,rega
+	increase 4,regb
+	branch   compare4
+compare4_failed:
+	branch disable_true
+
+compare4_success:
+	branch enable_true
+
+
+
+
+bn_testbit:
+	and pdata,7,queue
+	rshift3 pdata,pdata
+	iadd contr,contr
+	ifetch 1,contr
+	qisolate0 pdata
+	rtn
+
+
+bn_eq_zero:
+	ifetch 8,contr
+	nrtn blank
+	ifetch 8,contr
+	nrtn blank
+	ifetch 8,contr
+	rtn
+	
+	
+	/* return zero if eq */
+
+bn_eq_0:	
+	ifetch 4,rega
+	iforce temp
+	ifetch 4,regb
+	isub temp,null
+	nrtn zero
+	increase 4,rega
+	increase 4,regb
+	loop bn_eq_0
+	rtn
+	/* return positive if A >= B */
+bn_bigeq:
+	force 6,loopcnt
+	increase 20,rega
+	increase 20,regb
+bn_bigeq_0:	
+	ifetch 4,regb
+	iforce temp
+	ifetch 4,rega
+	isub temp,pdata
+	nrtn positive
+	nrtn blank
+	increase -4,rega
+	increase -4,regb
+	loop bn_bigeq_0
+	rtn
+bn_add:
+	force 6,loopcnt
+	force 0,regc
+bn_add_0:	
+	ifetch 4,rega
+	iforce temp
+	ifetch 4,regb
+	iadd temp,pdata
+	iadd regc,pdata
+	istore 4,contw
+	isolate1 32,pdata
+	setflag true,0,regc
+	increase 4,rega
+	increase 4,regb
+	loop bn_add_0
+	rtn
+
+bn_sub:
+	force 6,loopcnt
+	force 0,regc
+bn_sub_0:	
+	ifetch 4,regb
+	iforce temp
+	ifetch 4,rega
+	isub temp,pdata
+	isub regc,pdata
+	istore 4,contw
+	isolate1 32,pdata
+	setflag true,0,regc
+	increase 4,rega
+	increase 4,regb
+	loop bn_sub_0
+	rtn
+
+bn_rshift6:
+	force 6,loopcnt
+	increase 20,rega
+bn_rshift:
+	force 0,regc
+bn_rshift_0:	
+	ifetch 4,rega
+	isolate1 0,pdata
+	setflag true,1,regc
+	rshift pdata,pdata
+	isolate1 0,regc
+	setflag true,31,pdata
+	istore 4,rega
+	increase -4,rega
+	rshift regc,regc
+	loop bn_rshift_0
+	rtn
+bn_lshift:
+	force 6,loopcnt
+	force 0,regc
+bn_lshift_0:	
+	ifetch 4,rega
+	isolate1 31,pdata
+	setflag true,1,regc
+	lshift pdata,pdata
+	isolate1 0,regc
+	setflag true,0,pdata
+	istore 4,rega
+	increase 4,rega
+	rshift regc,regc
+	loop bn_lshift_0
+	rtn
+	
+
+bn_load:
+	force 6,loopcnt
+bn_load_0:	
+	ifetch 4,contr
+	iforce regext
+	increase 1,regext_index
+	loop bn_load_0
+	rtn
+
+
+
+sp_initialize_256:	
+	bpatch patch1d_7,mem_patch1d
+	fetch 1,mem_secure_connections_enable
+	nbranch sp_pubkey_calc_256,blank
+//	call sp_clear_flags
+sc_reset:
+	jam SP_CALC_STANDBY,mem_sc_calc
+	jam SP_KEY_INVALID,mem_sc_local_key_invalid
+	rtn
+	
+	
+    	
+sp_wait_pubkey_calc_256_done:
+	fetch 1,mem_secure_connections_enable
+	rtn blank
+	fetch 1,mem_sc_local_key_invalid
+	rtneq SP_KEY_VALID_256
+	call sp_calc_sequence_256
+	branch sp_wait_pubkey_calc_256_done
+
+
+//BD1A3CCD:A6B89958:99B740EB:7B60FF4A:503F10D2:E3B3C974:385FC5A3:D4F6493F
+sp_debug_private_256:
+	arg mem_sc_private_key_256,contw
+        setsect 0,0x1abd
+        setsect 1,0x1b34f
+        setsect 2,0x19b8a
+        setsect 3,0x26562
+        istore 9,contw
+        setsect 0,0x340b7
+        setsect 1,0x1efa
+        setsect 2,0xaff6
+        setsect 3,0xfd41
+        istore 9,contw
+        setsect 0,0x3d210
+        setsect 1,0x26cf8
+        setsect 2,0x3874c
+        setsect 3,0x3157c
+        istore 9,contw
+        setsect 0,0x2d4a3
+        setsect 1,0x3d27d
+        setsect 2,0x3
+        istore 5,contw
+        rtn
+	
+
+sp_pubkey_calc_256:
+	fetch    1,mem_sc_local_key_invalid
+	rtnne SP_KEY_INVALID
+	fetch    1,mem_sc_calc
+	rtnne  SP_CALC_STANDBY
+	call init_memp_256
+	arg      mem_sc_private_key_256,contw 
+	force    15,queue
+	call     random_generator
+	random   pdata
+	rshift   pdata,pdata
+	istore   2,contw 
+	
+	fetch 1,mem_sp_debug_mode
+	ncall sp_debug_private_256,blank
+	
+	arg      mem_k_256,contw
+	arg      mem_sc_private_key_256,contr	
+	call     memcpy32 //mem_sp_private_key=>mem_k 
+
+	arg      mem_ax_256,contw
+	arg      mem_gx_256,contr
+	call     memcpy64 //mem_gx=>mem_ax 
+	
+	arg      mem_az_256,contw
+	call      clear_mem_256
+	jam      1,mem_az_256 //0=>mem_az 
+
+	call     eckp_calc_init_256
+	jam SP_CALC_PUBKEY_256,mem_sc_calc
+	rtn    
+
+sp_pubkey_generated_256:
+	arg      mem_sc_pubkey_local_x_256,contw
+	arg      mem_bx_256,contr
+	call     memcpy64   
+	jam      SP_KEY_VALID_256,mem_sc_local_key_invalid
+	jam      SP_CALC_STANDBY,mem_sc_calc
+	rtn
+	
+
+
+sp_dhkey_calc_256:
+	fetch    1,mem_sp_dhkey_invalid
+	rtnne  SP_KEY_INVALID
+	fetch    1,mem_sc_calc
+	rtnne  SP_CALC_STANDBY
+
+	arg      mem_k_256,contw
+	arg      mem_sc_private_key_256,contr	
+	call     memcpy32
+
+	arg      mem_ax_256,contw
+	arg      mem_le_pubkey_remote_x_256,contr
+	call     memcpy64
+
+	arg      mem_az_256,contw
+	call     clear_mem_256
+	jam      1,mem_az_256 //0=>mem_az 
+
+	call     eckp_calc_init_256
+	jam     SP_CALC_DHKEY_256,mem_sc_calc
+	rtn 
+
+
+sp_dhkey_generated_256:
+//	jam SP_FLAG_COMMIT,mem_sp_dh_ready
+	arg mem_le_dhkey_256,contw
+	arg mem_bx_256,contr
+	call memcpy32
+	jam SP_KEY_VALID_256,mem_sp_dhkey_invalid
+	jam SP_CALC_STANDBY,mem_sc_calc
+	rtn
+
+
+
+sp_calc_sequence_256:
+	fetch 1,mem_secure_connections_enable
+	rtn blank
+	fetch 1,mem_sc_calc
+	rtn blank
+	increase 0x80,pdata
+	store    1,mem_sc_calc
+	rtnbit1 7
+	fetch    2,mem_ec_loopc
+	branch   sp_calc_sequence_done_256,blank
+	branch   eckp_calc_256
+
+sp_calc_sequence_done_256:    
+	bpatch patch1e_0,mem_patch1e
+	call ecunmapz_256
+	fetch 1,mem_sc_calc
+	beq  SP_CALC_PUBKEY_256,sp_pubkey_generated_256
+	beq  SP_CALC_DHKEY_256,sp_dhkey_generated_256
+	rtn
+
+
+eckp_calc_256:
+	call     ecdbl_256  
+	fetch    2,mem_ec_loopc
+	increase -1,pdata
+	store    2,mem_ec_loopc
+	arg      mem_k_256,contr
+	call     bn_testbit
+	rtn	true
+	branch     ecadd_256   
+
+eckp_calc_init_256:
+	bpatch patch1e_1,mem_patch1e
+	setarg 256
+	store 2,mem_ec_loopc
+eckp_calc_init_256_1:    
+	fetch    2,mem_ec_loopc
+	rtn      blank
+	increase -1,pdata
+	store    2,mem_ec_loopc
+	arg      mem_k_256,contr
+	call     bn_testbit
+	branch eckp_calc_init_256_1,true
+	arg      mem_ax_256,contr
+	arg      mem_cx_256,contw
+	branch     memcpy96	
+
+
+ecunmapz_256:
+	arg mem_cz_256,rega
+	arg mem_t3_256,contw
+	call bn_invmod_256			/* t3 = 1/z */
+	arg mem_t3_256,rega
+	arg mem_t1_256,contw		
+	call bn_sqrmod_256			/* t1 = 1/z2 */
+	arg mem_cx_256,rega
+	arg mem_t1_256,regb
+	arg mem_bx_256,contw
+	call bn_mulmod_256
+	arg mem_t3_256,rega
+	arg mem_t1_256,regb
+	arg mem_t2_256,contw			
+	call bn_mulmod_256			/* t2 = 1/z3 */
+	arg mem_cy_256,rega
+	arg mem_t2_256,regb
+	arg mem_by_256,contw
+	branch bn_mulmod_256	
+	
+ecdbl_256:
+	arg mem_cz_256,rega
+	arg mem_t2_256,contw
+	call bn_sqrmod_256
+	arg mem_t2_256,rega
+	arg mem_t3_256,contw
+	call bn_sqrmod_256
+//call ice_break
+	arg mem_a_256,rega
+	arg mem_t3_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256		/* t3=a*z4	*/
+	arg mem_cx_256,rega
+	arg mem_t2_256,contw
+	call bn_sqrmod_256
+//call ice_break
+	arg mem_t2_256,contr
+	arg mem_t1_256,contw
+	call memcpy32
+	arg mem_t1_256,rega
+	call bn_lshiftmod_256
+	arg mem_t2_256,rega
+	arg mem_t1_256,regb
+	arg mem_t2_256,contw
+	call bn_addmod_256
+//call ice_break
+	arg mem_t2_256,rega
+	arg mem_t3_256,regb
+	arg mem_t2_256,contw
+	call bn_addmod_256		/* t2=3*x2 + z*z4		D  */
+//call ice_break
+	arg mem_cx_256,contr
+	arg mem_t1_256,contw
+	call memcpy32
+	arg mem_cy_256,rega
+	arg mem_t3_256,contw
+	call bn_sqrmod_256
+	arg mem_t1_256,rega
+	call bn_lshiftmod_256
+	arg mem_t1_256,rega
+	call bn_lshiftmod_256
+	arg mem_t1_256,rega		
+	arg mem_t3_256,regb
+	arg mem_t1_256,contw
+	call bn_mulmod_256		//S = 4X1Y1^2/* t1=4x*y2	B	*/
+	arg mem_t3_256,rega
+	arg mem_t0_256,contw
+	call bn_sqrmod_256
+	arg mem_t0_256,rega
+	call bn_lshiftmod_256
+	arg mem_t0_256,rega
+	call bn_lshiftmod_256		
+	arg mem_t0_256,rega		
+	call bn_lshiftmod_256	//T = 8Y1^4	/* t0=8*y4		C */
+	arg mem_cy_256,contr
+	arg mem_t3_256,contw
+	call memcpy32
+	arg mem_t3_256,rega
+	call bn_lshiftmod_256
+	arg mem_t3_256,rega
+	arg mem_cz_256,regb
+	arg mem_cz_256,contw
+	call bn_mulmod_256		//z = 2Y1Z1
+
+
+	arg mem_t2_256,rega
+	arg mem_t3_256,contw
+	call bn_sqrmod_256   // M ^2
+//call ice_break
+	arg mem_t3_256,rega
+	arg mem_t1_256,regb
+	arg mem_t3_256,contw
+	call bn_submod_256  // t2^2 - 4*cx *cy^2 
+	arg mem_t3_256,rega
+	arg mem_t1_256,regb
+	arg mem_cx_256,contw
+	call bn_submod_256   //X2
+	arg mem_t1_256,rega
+	arg mem_cx_256,regb
+	arg mem_t3_256,contw
+	call bn_submod_256   //S-X2
+	arg mem_t3_256,rega
+	arg mem_t2_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256	//M(S-X2)	
+	arg mem_t3_256,rega
+	arg mem_t0_256,regb
+	arg mem_cy_256,contw
+	branch bn_submod_256  //M(S-X2)-T Y2	
+
+ecadd_256:
+
+	arg mem_az_256,rega
+	arg mem_t7_256,contw
+	call bn_sqrmod_256
+	arg mem_cx_256,rega
+	arg mem_t7_256,regb
+	arg mem_t0_256,contw
+	call bn_mulmod_256		/* n1=t0=xa*zb2 U1 = X1Z0^2*/
+
+
+	arg mem_az_256,rega
+	arg mem_t7_256,regb
+	arg mem_t7_256,contw
+	call bn_mulmod_256	
+	arg mem_cy_256,rega
+	arg mem_t7_256,regb
+	arg mem_t1_256,contw
+	call bn_mulmod_256		/* n2=t1=ya*zb3   S1 = Y1Z0^3*/
+
+
+	arg mem_cz_256,rega
+	arg mem_t7_256,contw
+	call bn_sqrmod_256
+	arg mem_ax_256,rega
+	arg mem_t7_256,regb
+	arg mem_t2_256,contw
+	call bn_mulmod_256		/* n3=t2=xb*za2  U0 = X0Z1^2*/
+
+	arg mem_cz_256,rega
+	arg mem_t7_256,regb
+	arg mem_t7_256,contw
+	call bn_mulmod_256	
+	arg mem_ay_256,rega
+	arg mem_t7_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256		/* n4=t3=yb*za3 S0 = Y0Z1^3*/
+
+
+//	arg mem_t0_256,rega
+//	arg mem_t2_256,regb
+	arg mem_t0_256,regb
+	arg mem_t2_256,rega
+	arg mem_t7_256,contw
+	call bn_submod_256		/* n5=t7=n1-n3=t0-t2   W=U1-U0*/
+	arg mem_t0_256,rega
+	arg mem_t2_256,regb
+	arg mem_t0_256,contw
+	call bn_addmod_256		/* n7=t0=n1+n3=t0+t2    T=U1+U0 */
+//	arg mem_t1_256,rega
+//	arg mem_t3_256,regb
+	arg mem_t1_256,regb
+	arg mem_t3_256,rega
+	arg mem_t2_256,contw
+	call bn_submod_256		/* n6=t2=n2-n4=t1-t3  S1-S0 */
+	arg mem_t1_256,rega
+	arg mem_t3_256,regb
+	arg mem_t1_256,contw
+	call bn_addmod_256		/* n8=t1=n2+n4=t1+t3 M=S1+S0*/
+	arg mem_t1_256,rega
+	arg mem_t7_256,regb
+	arg mem_t1_256,contw
+	call bn_mulmod_256		/* t1=n8*n5     MW */
+	arg mem_cz_256,rega
+	arg mem_az_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256	      //Z0Z1
+	arg mem_t3_256,rega
+	arg mem_t7_256,regb
+	arg mem_cz_256,contw
+	call bn_mulmod_256		/* z=za*zb*n5   Z0Z1W */
+
+	arg mem_t7_256,rega
+	arg mem_t7_256,contw
+	call bn_sqrmod_256		/* t7=n5^2 */
+	arg mem_t7_256,rega
+	arg mem_t0_256,regb
+	arg mem_t3_256,contw
+	call bn_mulmod_256		/* t3=n5^2*n7 */
+	arg mem_t7_256,rega
+	arg mem_t1_256,regb
+	arg mem_t1_256,contw
+	call bn_mulmod_256		/* t1=n8*n5^3 */
+	arg mem_t2_256,rega
+	arg mem_cx_256,contw
+	call bn_sqrmod_256		
+	arg mem_cx_256,rega
+	arg mem_t3_256,regb
+	arg mem_cx_256,contw
+	call bn_submod_256		/* x=n6^2-n5^2*n7 */
+	arg mem_cx_256,contr
+	arg mem_t7_256,contw
+	call memcpy32
+	arg mem_t7_256,rega
+	call bn_lshiftmod_256		/* t7=2*x */
+	arg mem_t3_256,rega
+	arg mem_t7_256,regb
+	arg mem_t3_256,contw
+	call bn_submod_256		/* t3=n9 */
+	arg mem_t3_256,rega
+	arg mem_t2_256,regb
+	arg mem_t2_256,contw
+	call bn_mulmod_256		/* t2=n9*n6 */
+	arg mem_t2_256,rega
+	arg mem_t1_256,regb
+	arg mem_cy_256,contw
+	call bn_submod_256	
+	arg mem_cy_256,rega
+	arg mem_p_256,regb
+	arg mem_cy_256,contw
+	force 0,regc
+	fetch 1,mem_cy_256
+	isolate1 0,pdata
+	call bn_add_256,true
+	copy regc,alarm
+	arg mem_cy_256,rega
+	call bn_rshift_256
+	fetch 1,mem_cy5_256
+	isolate1 0,alarm
+	setflag true,7,pdata
+	store 1,mem_cy5_256
+	rtn	
+
+bn_invmod_256:
+	copy contw,timeup					 
+	arg mem_tmp0_256,contw			 
+	call clear_mem_256
+	force 0,pdata
+//	store 4,mem_tmp52
+	store 4,mem_t2_256
+	jam 1,mem_tmp0_256      //y1
+	arg mem_tmp1_256,contw	//y2			 
+	call clear_mem_512      
+	arg mem_p_256,contr
+	arg mem_tmp2_256,contw		//j		 
+	call memcpy32
+	copy rega,contr
+	arg mem_tmp3_256,contw		//i		 
+	call memcpy32
+	
+//	arg mem_tmp22,rega
+//	arg mem_tmp32,regb
+//	call p_bn_bigeq_256
+//	branch assert,positive
+bn_invmod_256_2:	
+	arg mem_tmp3_256,contr
+	call bn_eq_zero_256
+	branch bn_invmod_256_0,blank
+//call ice_break    	
+//fetch 1,0x4ffe
+//increase 1,pdata
+//store 1,0x4ffe
+	arg mem_tmp3_256,rega
+	arg mem_tmp0_256,regb
+	call bn_rshifteven_256
+	arg mem_tmp2_256,rega
+	arg mem_tmp1_256,regb
+	call bn_rshifteven_256
+	
+	arg mem_tmp3_256,rega
+	arg mem_tmp2_256,regb
+	call bn_bigeq_256
+	branch bn_invmod_256_1,positive
+	arg mem_tmp2_256,rega
+	arg mem_tmp3_256,regb
+	copy rega,contw
+	call bn_sub_256
+	arg mem_tmp0_256,rega
+	arg mem_tmp1_256,regb
+	copy regb,contw
+	call bn_add_256
+	ifetch 1,rega
+	iadd regc,regc
+	ifetch 1,regb
+	iadd regc,pdata
+	istore 1,regb
+	branch bn_invmod_256_2
+bn_invmod_256_1:
+	arg mem_tmp3_256,rega
+	arg mem_tmp2_256,regb
+	copy rega,contw
+	call bn_sub_256
+	arg mem_tmp1_256,rega
+	arg mem_tmp0_256,regb
+	copy regb,contw
+	call bn_add_256
+	ifetch 1,rega
+	iadd regc,regc
+	ifetch 1,regb
+	iadd regc,pdata
+	istore 1,regb
+	branch bn_invmod_256_2
+bn_invmod_256_0:
+//call ice_break
+	arg mem_tmp1_256,rega
+	copy timeup,contw
+	call  bn_p256mod
+//call ice_break
+	arg mem_p_256,rega
+	copy timeup,regb
+	copy timeup,contw
+	branch bn_submod_256
+
+
+bn_mulmod_256:
+	copy contw,timeup					/* save result ptr */
+	
+	force 0,regext_index
+	
+	arg mem_tmp1_256,contw
+	call clear_mem_512
+	arg mem_regext,contw
+	call clear_mem_512
+//	jam 0,mem_regext_index
+
+//	arg mem_tmp12,contw
+	copy rega,contr
+//	force 0,regext_index
+	jam 0,mem_regext
+	setarg 0
+	call bn_load_mem
+	copy regb,contr
+	call bn_load_256
+//	force 0,regb
+//	jam 0,mem_regb
+	force 0,queue
+	arg mem_tmp1_256,contw	
+bn_mulmod_256_1:	
+//	copy regb,pdata
+//	store 1,
+	arg mem_regext,temp
+	copy queue,regb
+	lshift2 regb,pdata
+//	lshift4 pdata,pdata
+	iadd temp,regb	
+	force 0,temp
+	force 0,regc
+bn_mulmod_256_0:
+//	copy contw,pdata
+//	store 2,mem_contw
+//call ice_break
+//	copy pdata,contw
+	ifetch 4,contw					/* d[i+j] */
+	iforce rega
+//	copy regb,regext_index
+//	deposit regext
+	ifetch 4,regb
+	copy regc,regext_index
+	imul32 regext,pdata
+	iadd rega,pdata					/* uv = a[i]*b[j] + d[i+j] */
+	iadd temp,pdata					/* uv += u */
+	istore 4,contw					/* ->d[i+j] */
+	rshift32 pdata,temp				/* temp = u = uv >> 32 */
+	increase 1,regc
+	compare 8,regc,0xff
+	nbranch bn_mulmod_256_0,true
+//call ice_break
+	deposit temp
+	istore 4,contw					/* d[i + 12] = u */
+	increase -32,contw
+//	fetch 1,mem_regb
+//	copy pdata,regb
+	increase 1,queue
+	compare 8,queue,0xff
+	nbranch bn_mulmod_256_1,true
+	arg mem_tmp1_256,rega
+	copy timeup,contw
+	branch bn_p256mod
+
+bn_p256mod:
+	bpatch patch1e_2,mem_patch1e
+	copy contw,timeup				/* save result ptr */
+	copy rega,alarm				/* temp save rega */
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	call memset0_4	
+	istore 8,contw
+	add rega,44,contr
+	call memcpy8
+	call memcpy12
+	copy regb,rega
+	call  bn_lshiftmod_256 //2S1
+	arg mem_tmp2_256,regb
+	copy alarm,rega   
+	copy timeup,contw
+	call bn_addmod_256 //T+2S1
+//call ice_break	
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	call memset0_4	
+	istore 8,contw
+	add alarm,48,contr
+	call memcpy16
+	call memset0_4	
+	copy regb,rega
+	call  bn_lshiftmod_256 //2S2
+//call ice_break	
+//	arg 0,regb
+
+	arg mem_tmp2_256,regb
+	copy timeup,rega   
+	copy rega,contw	
+	call bn_addmod_256  //+2S2
+//call ice_break	
+//	arg 0,regb
+		
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,32,contr
+	call memcpy12
+	call memset0_4	
+	istore 8,contw
+	add alarm,56,contr
+	call memcpy8
+	copy timeup,rega
+	copy rega,contw
+	call bn_addmod_256 //+S3
+//call ice_break	
+//	arg 0,regb
+
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,36,contr
+	call memcpy12
+	add alarm,52,contr	
+	call memcpy12
+	add alarm,52,contr
+	call memcpy4
+	add alarm,32,contr
+	call memcpy4
+	copy timeup,rega
+	copy rega,contw
+	call bn_addmod_256 //+S4	
+//call ice_break	
+//	arg 1,regb
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,44,contr
+	call memcpy12
+	call memset0_4	
+	istore 8,contw
+	add alarm,32,contr
+	call memcpy4
+	add alarm,40,contr
+	call memcpy4
+	copy timeup,rega
+	copy rega,contw
+	call bn_submod_256 //-D1	
+//call ice_break	
+//	arg 2,regb
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,48,contr
+	call memcpy8
+	call memcpy8
+	force 0,pdata
+	istore 8,contw
+	add alarm,36,contr
+	call memcpy4
+	add alarm,44,contr
+	call memcpy4
+	copy timeup,rega
+	copy rega,contw
+	call bn_submod_256 //-D2	
+//call ice_break	
+//	arg 3,regb
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,52,contr
+	call memcpy12
+	add alarm,32,contr
+	call memcpy12
+	call memset0_4	
+	add alarm,48,contr
+	call memcpy4
+	copy timeup,rega
+	copy rega,contw
+	call bn_submod_256 //-D3
+//call ice_break	
+//	arg 4,regb
+	arg mem_tmp2_256,regb
+	copy regb,contw
+	add alarm,56,contr
+	call memcpy8
+	call memset0_4	
+	add alarm,36,contr
+	call memcpy12
+	call memset0_4	
+	add alarm,52,contr
+	call memcpy4
+	copy timeup,rega
+	copy rega,contw
+	branch  bn_submod_256 //-D4	
+
+
+bn_load_mem:
+	force 32,loopcnt
+	arg mem_regext,contw
+	iadd contw,contw
+	branch memcpy
+
+bn_load_256:
+	force 8,loopcnt
+	branch bn_load_0
+
+bn_sqrmod_256:
+	copy rega,regb
+	branch bn_mulmod_256
+
+bn_add_256:
+	force 8,loopcnt
+ 	branch bn_add+1
+
+bn_addmod_256:
+	call bn_add_256
+	copy contw,rega
+	branch bn_lshiftmod_ismod_256
+
+bn_lshiftmod_256:
+	call bn_lshift_256
+bn_lshiftmod_ismod_256:	
+	isolate1 0,regc
+	branch bn_lshiftmod_p_256,true
+	arg mem_p_256,regb
+	copy rega,regc
+	increase -32,rega
+	call bn_bigeq_256
+	nrtn positive
+	copy regc,rega
+	branch sub_p2_256
+	
+bn_lshiftmod_p_256:
+	call sub_p2_256
+//	nrtn true
+	copy rega,regc
+	increase -32,rega
+	arg mem_p_256,regb
+	call bn_bigeq_256
+	nrtn positive
+	copy regc,rega
+	branch sub_p2_256
+		
+	
+sub_p2_256:
+	increase -32,rega
+	arg mem_p_256,regb
+	copy rega,contw
+	branch bn_sub_256
+	
+
+
+	
+bn_submod_256:
+	call bn_sub_256
+//	isolate1 0,regc
+	branch  bn_submod_256_np,true
+//	copy rega,regc
+//	increase -32,rega
+	add contw,-32,rega
+	arg mem_p_256,regb
+	call bn_bigeq_256
+	nrtn positive
+	arg mem_p_256,regb
+	add contw,-32,rega
+//	copy regc,rega
+	copy rega,contw
+	branch  bn_sub_256
+bn_submod_256_np:	
+	add contw,-32,rega
+	arg mem_p_256,regb
+	copy rega,contw
+	call bn_add_256
+//	isolate1 0,regc
+	rtn true
+	add contw,-32,rega
+	arg mem_p_256,regb
+	copy rega,contw
+	branch bn_add_256	
+
+
+ 
+bn_sub_256:
+	force 8,loopcnt
+	branch bn_sub+1
+
+bn_rshift_256:
+	force 8,loopcnt
+	increase 28,rega
+	branch bn_rshift
+
+bn_lshift_256:
+	force 8,loopcnt
+	force 0,regc
+	branch bn_lshift_0
+
+bn_bigeq_256:
+	force 8,loopcnt
+	increase 28,rega
+	increase 28,regb
+	branch bn_bigeq_0
+
+
+bn_eq_zero_256:
+	ifetch 8,contr
+	nrtn blank
+	branch bn_eq_zero
+
+
+
+	
+bn_rshifteven_256:
+	copy rega,alarm
+bn_rshifteven_256_1:
+	copy alarm,rega
+	ifetch 1,rega
+	isolate1 0,pdata
+	rtn true
+	call bn_rshift_256
+	ifetch 1,regb
+	isolate0 0,pdata
+	branch bn_rshifteven_256_0,true
+	arg mem_p_256,rega
+	copy regb,contw
+	call bn_add_256
+	ifetch 1,regb
+	iadd regc,pdata
+	istore 1,regb						 
+	increase -32,regb
+bn_rshifteven_256_0:
+	add regb,32,rega
+	force 9,loopcnt
+	call bn_rshift
+	branch bn_rshifteven_256_1		
+
+endif
+
Index: program/ui.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ui.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/ui.prog	(working copy)
@@ -0,0 +1,653 @@
+ui_init:
+	rtn wake
+	call lpm_disable_exen_output
+	call ui_button_init
+	call ui_timer_init
+	branch ui_led_init_global
+
+ui_dispatch:
+	call ui_led_dispatch
+	branch ui_timer_check
+	
+ui_button_init:
+	fetch 1,mem_ui_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	iforce temp
+	call gpio_config_output
+	fetcht 1,mem_ui_button_gpio
+	call gpio_out_inactive
+	nop 100
+	fetcht 1,mem_ui_button_gpio
+	call gpio_config_input
+	branch ui_button_polling
+
+
+	
+ui_button_polling:
+	bpatch patch1e_3,mem_patch1e
+	fetch 1,mem_ui_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	copy pdata,temp
+	call gpio_get_bit
+	nbranch ui_button_up,true
+	//fall through
+ui_button_down:
+	call ui_button_check_long_press
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BTN_DOWN,pdata
+	store 2,mem_ui_state_map
+	fetch 1,mem_ui_button_last_state
+	rtneq UI_BUTTON_STATE_DOWN
+	jam UI_BUTTON_STATE_DOWN,mem_ui_button_last_state
+	//Down Edge
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_ui_button_timer //start long press timer
+	call lpm_button_get_wake_lock
+	jam BT_EVT_BUTTON_DOWN,mem_fifo_temp
+	branch ui_ipc_send_event
+ui_button_up:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BTN_DOWN,pdata
+	store 2,mem_ui_state_map
+	fetch 1,mem_ui_button_last_state
+	rtneq UI_BUTTON_STATE_UP
+	jam UI_BUTTON_STATE_UP,mem_ui_button_last_state
+	//Up Edge
+	jam 0,mem_ui_button_timer//stop long press timer
+	call lpm_button_clean_wake_lock
+	jam BT_EVT_BUTTON_UP,mem_fifo_temp
+	branch ui_ipc_send_event
+
+ui_button_check_long_press:
+	fetch 1,mem_ui_button_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_ui_button_timer
+	nrtn blank
+	//Long Press
+	jam BT_EVT_BUTTON_LONG_PRESSED,mem_fifo_temp
+	branch ui_ipc_send_event
+
+lpm_button_get_wake_lock:
+	arg wake_lock_button,queue
+	branch lpm_get_wake_lock
+	
+lpm_button_clean_wake_lock:
+	arg wake_lock_button,queue
+	branch lpm_put_wake_lock
+
+
+
+/***********************ui led function****************************/
+/******************
+led function
+
+ui_led_init_global
+ui_led_on_global
+
+ui_led_off_global
+//input:rega :struct number
+ui_led_blink_start_global
+
+//input:rega :struct number
+//contr: the point that want to set led style address
+ui_led_set_style_global
+
+******************/
+//input:rega :struct number
+//output:regb :current strutct starting pointer
+calc_curr_struct_prt:
+	bpatch patch1e_4,mem_patch1e
+	fetch 2,mem_ui_led_struct_ptr
+	mul32 rega,LED_OFFSET_LENGTH,regb
+	iadd regb,regb
+	rtn
+
+
+ui_led_init_global:
+	fetch 1,mem_ui_led_struct_num
+	rtn blank
+	copy pdata,loopcnt
+	fetch 2,mem_ui_led_struct_ptr
+	copy pdata,regb
+ui_led_init_loop:
+	add regb,LED_OFFSET_LED_GPIO,regc
+	ifetcht 1,regc
+	call ui_led_init_set
+	increase LED_OFFSET_LENGTH,regb
+	loop ui_led_init_loop
+	rtn
+
+//mem_ui_led_init_state_set =0,set init off else set init on
+ui_led_init_set:
+	fetch 1,mem_ui_led_init_state_set
+	branch gpio_out_inactive,blank
+	branch gpio_out_active
+	
+//input:rega :struct number
+ui_led_on_global:
+	call calc_curr_struct_prt
+	setarg UI_LED_STATE_LIGHTING
+	istore 1,regb
+	call ui_led_stop_timer
+	branch ui_led_on_static
+
+	
+//input:rega :struct number
+ui_led_blink_stop_global:
+ui_led_off_global:
+	
+	call calc_curr_struct_prt
+	setarg UI_LED_STATE_DARKING
+	istore 1,regb
+	
+	call ui_led_stop_timer
+	branch ui_led_off_static
+
+
+//input:rega :struct number
+ui_led_blink_start_global:
+	call calc_curr_struct_prt
+	setarg UI_LED_STATE_BLINK_START
+	istore 1,regb
+	setarg LED_INFINITE_FLASH_NUM
+	istore 1,contw
+	branch ui_led_off_static
+
+
+//input:rega :struct number
+//REGC: the point that want to set led style address
+ui_led_set_style_global:
+	call calc_curr_struct_prt
+	arg LED_OFFSET_LENGTH,loopcnt
+	copy regc,contr
+	copy regb,contw
+	branch memcpy_fast
+
+
+
+ui_led_dispatch:
+	fetch 1,mem_ui_led_struct_num
+	rtn blank
+	arg 0,rega
+ui_led_blink_polling:
+	call ui_led_change_style_by_type
+	increase 1,rega
+	fetch 1,mem_ui_led_struct_num
+	isub rega,null
+	rtn zero
+	branch ui_led_blink_polling
+
+
+ui_led_off_static:
+	add regb,LED_OFFSET_LED_GPIO,regc
+	ifetcht 1,regc
+	branch gpio_out_inactive
+
+
+ui_led_on_static:
+	add regb,LED_OFFSET_LED_GPIO,regc
+	ifetcht 1,regc
+	branch gpio_out_active
+
+
+//input:rega :struct number
+ui_led_change_style_by_type:
+	add rega,ui_led_blink,queue
+	call timer_check
+	nrtn blank			//timer out
+	
+	call calc_curr_struct_prt
+
+	ifetch 1,regb			//led type
+
+	beq UI_LED_STATE_LIGHTING,ui_led_on_static
+	beq UI_LED_STATE_DARKING,ui_led_off_static
+	beq UI_LED_STATE_BLINK_STOP,ui_led_off_static
+	beq UI_LED_STATE_BLINK_DARKING,ui_led_blink_state_darking
+ui_led_blink_state_lighting:
+	call ui_led_on_static
+	add regb,LED_OFFSET_CB_LEDON,regc
+	call push_stack
+	ifetch 2,regc
+	call callback_func
+	call pop_stack
+	setarg UI_LED_STATE_BLINK_DARKING
+	istore 1,regb
+	add regb,LED_OFFSET_ON_TIME,regc
+	ifetch 2,regc
+	branch ui_led_blink_timer_start
+	
+
+ui_led_blink_state_darking:
+	call ui_led_off_static
+	add regb,LED_OFFSET_CB_LEDOFF,regc
+	call push_stack
+	ifetch 2,regc
+	call callback_func
+	call pop_stack
+	
+	add regb,LED_OFFSET_BLINK_COUNT,regc
+	ifetch 1,regc
+	beq LED_INFINITE_FLASH_NUM,ui_led_blink_infinite
+	increase -1,pdata
+	istore 1,regc
+	branch ui_led_blink_stop_global,blank		//End of flicker
+ui_led_blink_infinite:
+	setarg UI_LED_STATE_BLINK_LIGHTING
+	istore 1,regb
+	add regb,LED_OFFSET_OFF_TIME,regc
+	ifetch 2,regc
+ui_led_blink_timer_start:
+	add rega,ui_led_blink,queue
+	branch timer_init
+
+ui_led_stop_timer:
+	setarg 0
+	branch ui_led_blink_timer_start
+
+/***********************ui led function ending****************************/
+
+
+
+ui_timer_timeout:
+	setarg 0x1000
+	lshift16 pdata,pdata
+	iadd regb,regb
+	rtn
+	
+ui_timer_check:
+	bpatch patch1e_5,mem_patch1e
+	arg 0,rega
+	fetcht 4,mem_ui_timer_last_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+ui_timer_check_loop:
+	copy regb,pdata
+	increase 160,temp    //320btclk = 100ms
+	increase 160,temp
+	isub temp,null
+	nbranch ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch ui_timer_check_loop,blank
+	arg 0,rega  //reset timer if it's longer than 1.5s between 2 checks
+	call ui_timer_check_send_evt
+ui_timer_init:
+	copy clkn_bt,pdata
+	store 4,mem_ui_timer_last_btclk
+	rtn
+ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -160,temp    //320btclk = 100ms
+	increase -160,temp
+	set0 28,temp
+	storet 4,mem_ui_timer_last_btclk
+ui_timer_check_send_evt:
+	branch app_evt_timer
+
+	
+
+//**********************************************************//
+//************UI Inter-Processor Communication*******//
+//**********************************************************//
+ui_ipc_get_lock:
+	jam 1,mem_ipc_lock_bt
+ui_ipc_get_lock_wait:
+	fetch 1,mem_ipc_lock_c51
+	nbranch ui_ipc_get_lock_wait,blank
+	rtn
+	
+ui_ipc_put_lock:
+	jam 0,mem_ipc_lock_bt
+	rtn
+	
+
+	
+ui_ipc_send_event:
+	bpatch patch1e_6,mem_patch1e
+	call ui_ipc_get_lock
+	copy rega,pdata
+	store 4,mem_rega
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_in
+	fetch 4,mem_rega
+	copy pdata,rega
+	branch ui_ipc_put_lock
+
+ui_ipc_send_cmd:
+	bpatch patch1e_7,mem_patch1e
+	call ui_ipc_get_lock
+	copy rega,pdata
+	store 4,mem_rega	
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_in
+	fetch 4,mem_rega
+	copy pdata,rega	
+	branch ui_ipc_put_lock
+
+ui_ipc_clean_all_fifo:
+	setarg 0
+	store UTIL_FIFO_LEN,mem_ipc_fifo_c512bt
+	store UTIL_FIFO_LEN,mem_ipc_fifo_bt2c51
+	rtn
+	
+check_51cmd:
+	bpatch patch1f_0,mem_patch1f
+	fetch 1,mem_hci_cmd
+	nrtn blank
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_is_empty
+	rtn blank
+	jam IPC_CONTINUE_PROCESS,mem_ipc_skip_continue_proc
+	call check_51cmd_once
+	fetch 1,mem_ipc_skip_continue_proc
+	branch check_51cmd,blank
+	rtn
+
+check_51cmd_once:
+	call ui_ipc_get_lock
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_out
+	copy pdata,temp
+	call ui_ipc_put_lock
+	bpatch patch1f_1,mem_patch1f
+	copy temp,pdata
+	rtn blank
+	beq BT_CMD_START_ADV,check_51cmd_adv
+	beq BT_CMD_STOP_ADV,check_51cmd_stop_adv
+	beq BT_CMD_START_DIRECT_ADV,check_51cmd_direct_adv
+	beq BT_CMD_STOP_DIRECT_ADV,check_51cmd_stop_direct_adv
+	beq BT_CMD_LED_OFF,check_51cmd_led_off
+	beq BT_CMD_LED_ON,check_51cmd_led_on
+	beq BT_CMD_LED_BLINK,check_51cmd_led_start_blink
+	beq BT_CMD_LE_START_CONN,check_51cmd_le_start_con
+	beq BT_CMD_LE_START_SCAN,check_51cmd_start_scan
+	beq BT_CMD_LE_STOP_SCAN,check_51cmd_stop_scan
+	beq BT_CMD_ENTER_HIBERNATE,check_51cmd_hibernate
+	//context related, process in context
+	store 1,mem_fifo_temp
+//	call lmo_fifo_check
+//	nbranch check_51cmd_restore,blank  //process this cmd next time while lmo fifo is full
+check_51cmd_once_continue:
+	fetch 1,mem_fifo_temp
+	bmark0 mark_context,check_51cmd_check_idle
+	bpatch patch1f_2,mem_patch1f
+	fetch 1,mem_fifo_temp
+	beq BT_CMD_LE_DISCONNECT,check_51cmd_le_disconnect
+	beq BT_CMD_LE_SMP_SECURITY_REQUEST,check_51cmd_le_smp_sec_req
+	beq BT_CMD_LE_UPDATE_CONN,check_51cmd_ble_update_connect_param
+	beq BT_CMD_STORE_RECONN_INFO_LE,eeprom_store_le_reconn_info
+	rtn
+
+check_51cmd_check_idle:
+	store 1,mem_fifo_temp
+  	call context_check_idle
+	branch check_51cmd_restore,zero
+	call context_search_plap
+	nrtn zero
+check_51cmd_restore:
+	jam IPC_SKIP_CONTINUE_PROCESS,mem_ipc_skip_continue_proc
+	branch ui_ipc_send_cmd
+
+  
+ /******************** 51COMMAND*********************/
+
+
+//command opcode 0x13
+check_51cmd_adv:
+	jam ON,mem_le_adv_enable
+	jam ADV_IND,mem_le_adv_type
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+
+//command opcode 0x14
+check_51cmd_stop_adv:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	jam OFF,mem_le_adv_enable
+	rtn
+
+
+//command opcode 0x15
+check_51cmd_direct_adv:
+	jam ON,mem_le_adv_enable
+	jam ADV_DIRECT_IND,mem_le_adv_type
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+
+//command opcode 0x16
+check_51cmd_stop_direct_adv:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	jam OFF,mem_le_adv_enable
+	rtn
+
+
+//command opcode 0x17
+check_51cmd_le_disconnect:
+	setarg 20 // 100ms
+	store 2,mem_le_superto
+	store 2,mem_le_init_superto
+	branch le_send_terminate_ind_user_terminated
+
+
+//command opcode 0x18
+check_51cmd_ble_update_connect_param:
+	branch le_l2cap_tx_update_req
+
+
+//command opcode 19
+check_51cmd_led_off:
+	arg 0,rega
+	branch ui_led_off_global
+
+
+//command opcode 20
+check_51cmd_led_on:
+	arg 0,rega
+	branch ui_led_on_global
+
+
+//command opcode 21
+check_51cmd_led_start_blink:
+	arg 0,rega
+	call calc_curr_struct_prt
+	ifetch 1,regb
+	beq UI_LED_STATE_BLINK_START,check_51cmd_led_start_blink_in_blink
+	beq UI_LED_STATE_BLINK_LIGHTING,check_51cmd_led_start_blink_in_blink
+	beq UI_LED_STATE_BLINK_DARKING,check_51cmd_led_start_blink_in_blink
+	branch ui_led_blink_start_global
+
+check_51cmd_led_start_blink_in_blink:
+	ifetch 1,contr
+	rtneq LED_INFINITE_FLASH_NUM
+	branch ui_led_blink_start_global
+
+
+//command opcode 0x22
+check_51cmd_le_start_con:
+	jam ON,mem_le_scan_enable
+	jam hci_cmd_le_create_conn,mem_hci_cmd
+//	fetch 6,mem_app_peer_addr
+//	store 6,mem_le_conn_peer_addr
+	rtn
+
+
+//command opcode 0x23
+check_51cmd_start_scan:
+	jam ON,mem_le_scan_enable
+	rtn
+
+
+//command opcode 0x24
+check_51cmd_stop_scan:
+	jam OFF,mem_le_scan_enable
+	jam 0,mem_hci_cmd
+	rtn
+
+
+//command opcode 0x25
+check_51cmd_hibernate:
+	fetch 2,mem_cb_before_hibernate
+	call callback_func
+	fetch 1,mem_ui_button_gpio
+	beq UI_BUTTON_GPIO_DISABLE,check_51cmd_hibernate_btn_disabled
+	copy pdata,temp
+	call gpio_config_input
+check_51cmd_hibernate_btn_disabled:
+	call ui_ipc_clean_all_fifo
+	branch lpm_hibernate	
+
+
+//command opcode 0x27
+check_51cmd_le_smp_sec_req:
+	branch le_send_smp_security_request
+
+
+
+
+ui_check_paring_button:
+	fetch 1,mem_ui_state_map
+	rtnbit0 UI_STATE_BTN_DOWN
+	rtn
+
+
+
+///////////queue function////////////
+queue_init:
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,contw
+	setarg 0
+	istore 3,contw
+	rtn
+	
+//input:rega:the address of the data to which you want to input queue
+//output:if user is disable,mean queue no have space
+queue_push:
+	bpatch patch1f_3,mem_patch1f
+	call disable_user
+	call queue_full
+	rtn blank
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,regb
+	ifetcht 1,regb
+	increase 1,temp
+	istoret 1,regb	//number add 
+	
+	ifetcht 1,pdata	//temp:each length
+	copy temp,loopcnt
+	add pdata,QUEUE_OFFSET_WRITE_PTR,regb
+	ifetch 1,regb
+	imul32 temp,pdata	//offset
+	iadd contr,contw
+	copy rega,contr
+calc_queue_next_ptr:
+	call memcpy
+	call queue_get_size
+	pincrease -1
+	ifetcht 1,regb
+	increase 1,temp
+	iand temp,temp
+	istoret 1,regb
+	branch enable_user
+
+
+//input:rega:the address of the data to which you want to output queue
+//output:if user is disable,mean queue no have data
+queue_pop:
+	bpatch patch1f_4,mem_patch1f
+	call disable_user
+	call queue_empty
+	rtn blank
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,regb
+	ifetcht 1,regb
+	increase -1,temp
+	istoret 1,regb
+	ifetcht 1,pdata		//each size
+	copy temp,loopcnt
+	add pdata,QUEUE_OFFSET_READ_PTR,regb
+	ifetch 1,regb
+	imul32 temp,pdata	//offset
+	iadd contr,contr
+	increase 1,contr
+	copy rega,contw
+	branch calc_queue_next_ptr
+
+
+//function:no pop element,only copy element in rega
+//input:rega:the address of the data to which you want to output queue
+//output:if user is disable,mean queue no have data
+//regb is new ptr
+queue_get_new_ele:
+	call disable_user
+	call queue_empty
+	rtn blank
+	fetch 2,mem_queue_ptr
+	ifetcht 1,pdata		//each size
+	copy temp,loopcnt
+	add pdata,QUEUE_OFFSET_READ_PTR,regb
+	ifetch 1,regb
+	imul32 temp,pdata	//offset
+	iadd contr,contr
+	increase 1,contr
+	copy contr,regb
+	copy rega,contw
+	call memcpy
+	branch enable_user
+
+queue_store_new_ele:
+	call disable_user
+	call queue_empty
+	rtn blank
+	fetch 2,mem_queue_ptr
+	ifetcht 1,pdata		//each size
+	copy temp,loopcnt
+	add pdata,QUEUE_OFFSET_READ_PTR,regb
+	ifetch 1,regb
+	imul32 temp,pdata	//offset
+	iadd contr,contr
+	add contr,2,contw
+	copy rega,contr
+	increase -1,loopcnt
+	call memcpy
+	branch enable_user
+
+//output:if blank is 1,mean queue is empty
+queue_empty:
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,contr
+	ifetch 1,contr
+	rtn
+
+//output:if blank is 1,mean queue is full
+queue_full:
+	call queue_get_size
+	ifetcht 1,contr
+	isub temp,pdata
+	rtn
+
+//output:pdata is queue size
+queue_get_size:
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_LENGTH,contr
+	ifetch 1,contr
+	rtn
+
+///////////queue function end////////////
+
+
+
+
Index: program/usb.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/usb.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/usb.prog	(working copy)
@@ -0,0 +1,1099 @@
+ ifdef COMPILE_USB
+
+usb_isr:
+	bpatch patch1f_5,mem_patch1f
+	fetch 1,core_usb_status
+	isolate1 USB_STATUS_RESET,pdata
+	call usb_init_restart,true
+	fetch 2,core_usb_status
+	store 2,core_usb_status
+	store 2,mem_usb_status
+	call usb_nak_state_judge
+	call usb_rx
+	call usb0_tx
+	call usb_tx
+	branch usb_nak_state
+
+usb_init:
+	bpatch patch1f_6,mem_patch1f
+	call enable_authrom
+	call usb_init_param
+usb_init_restart:
+	jam 0x00,core_usb_config
+ifdef SIM
+	nop 10
+else
+	nop 10000
+endif
+	jam 0x0,core_usb_hmode
+	fetch 2,core_clkoff
+	set0 CLOCK_OFF_USB,pdata
+	store 2,core_clkoff
+	jam 0x21,core_usb_epmap
+	jam 0x9d,core_usb_pupd
+	jam 0x3c,core_usb_config
+	setarg mem_usb_rxbuf
+	store 2,core_usb_rx_saddr
+	store 2,core_usb_rxptr
+	setarg mem_usb_rxbuf_end
+	store 2,core_usb_rx_eaddr
+	jam 0x80,core_usb_hmode
+	jam 0,core_usb_addr
+	jam 0xff,core_usb_status
+	setarg mem_usb_clear_mem_end
+	arg mem_usb_clear_mem_start,contw
+	isub contw,loopcnt
+	branch clear_mem
+	
+usb_offline_check_init:
+	fetcht 1,mem_usb_offline_check_gpio
+	branch gpio_config_input
+usb_offline_state:
+	fetch 1,mem_usb_device_enumeration_endflag
+	rtn blank
+	fetcht 1,mem_usb_offline_check_gpio
+	call gpio_get_bit
+	branch usb_init_restart,true
+	rtn
+
+usb_init_param:
+	jam DEV_DEFAULT,mem_usb0_state
+	setarg 0x0
+	store 1,mem_remain
+	store 2,mem_usb_zero_packet
+	pincrease 1
+	store 2,mem_usb_ones_packet
+	pincrease 1
+	store 2,mem_usb_two_packet
+	arg mem_string0,contw
+	setarg 0x030404
+	istore 3,contw
+	setarg 0x0409
+	istore 2,contw
+	arg mem_string1,contw
+	setsect 0,0x15906
+	setsect 1,0x210d2
+	setsect 2,0x10494
+	setsect 3,0x1
+	istore 9,contw
+	arg mem_string2,contw
+	setsect 0,0x1570f
+	setsect 1,0x15c9a
+	setsect 2,0x256c6
+	setsect 3,0x1cdcd
+	istore 9,contw
+	setsect 0,0x14420
+	setsect 1,0x25d99
+	setsect 2,0x25636
+	setsect 3,0x1
+	istore 7,contw
+	arg mem_string3,contw
+	setsect 0,0x1620a
+	setsect 1,0xc8c
+	setsect 2,0x30333
+	setsect 3,0xc0c0
+	istore 9,contw
+	setsect 0,0x3130
+	istore 2,contw
+	setarg USB_KBDATA_VENDOR_DEFINE_ADDR
+	store 2,mem_hidreportdesc_kb
+	setarg USB_MSDATA_ADDR
+	store 2,mem_hidreportdesc_m
+	arg USB_DEVICEDATA_ADDR,contr
+	arg mem_devicedesc,contw
+	arg 19,loopcnt
+	call memcpy	
+	arg USB_CONFDATA_ADDR,contr
+	arg mem_confdesc,contw
+	arg 60,loopcnt
+	call memcpy
+usb_config_cb:
+	fetch 2,mem_cb_usb_config
+	branch callback_func
+
+usb_tx_interval_config:
+	fetch 1,mem_usb_tx_interval
+	rtn blank
+	store 1,mem_confdesc+34
+	store 1,mem_confdesc+59
+	rtn
+
+usb_nak_state:
+	arg USB_TIMER_NAK,queue
+	call timer_check
+	nrtn blank
+	fetch 1 ,mem_usb_wakestate_onetime_flag
+	nrtn blank
+	fetch 1,mem_usb_device_enumeration_endflag
+	ncall usb_mac_wakeup_judge,blank
+	rtn
+
+usb_nak_state_judge:
+	fetch 1,mem_usb_status
+	bbit1 USB_STATUS_NAK,usb_nak_state_timer_init
+	rtn
+	
+usb_nak_state_timer_init:
+	call usb0_attached_state_judge
+	call timer_reinit
+	setarg TIMER_NAK_DELAY
+	arg USB_TIMER_NAK,queue
+	branch timer_init
+	
+usb0_attached_state_judge:
+	fetch 1,mem_usb_state
+	bne USB_CONNECTED,usb_clear_halt_dispose
+	jam 0,mem_usb_wakestate_onetime_flag
+	jam 0,mem_usb_mac_wakeup_trig
+	rtn
+
+usb_clear_halt_dispose:
+	fetch 1,mem_usb_clear_halt
+	rtn blank
+	jam 0,mem_usb_clear_halt
+	jam USB_CONNECTED,mem_usb_state
+	jam 1,mem_usb_device_enumeration_endflag
+	rtn
+
+usb_rx_no_data:
+	fetch 1,mem_usb_status
+	bbit1 USB_STATUS_SETUP,usb_class_type
+	rtn
+
+usb_rx_len:
+	fetchr contus,2,core_usb_rx_saddr
+	fetchr contue,2,core_usb_rx_eaddr
+	fetchr contu,2,core_usb_rxptr
+	ifetch 2,contu
+	rshift8 pdata,temp
+	rshift4 temp,temp					// temp is endpoint
+	arg 0xfff,contr
+	iand contr,loopcnt
+	storer loopcnt,2,mem_usb_read_len
+	rtn
+
+
+usb_rx_data:
+	call usb_rx_len
+usb_rx_read:
+	ifetch 1,contu
+	istore 1,contw
+	loop usb_rx_read
+	storer contu,2,core_usb_rxptr
+	rtn
+
+usb_rx_ep13:
+	arg mem_usb_ccid_buf,contw
+	call usb_rx_read
+	arg mem_usb_ccid_buf+4,temp
+	storet 2,core_usb_tx_saddr3
+	fetch 1,mem_usb_ccid_buf+1
+	pincrease 6
+	istore 1,temp
+	jam 0x8,core_usb_trig
+	rtn
+
+
+usb_rx:
+	bpatch patch1f_7,mem_patch1f
+	fetch 1,mem_usb_status
+	rtnbit0 USB_STATUS_RXREADY
+	call usb_rx_len
+	compare 13,temp,0xff
+	branch usb_rx_ep13,true
+	arg mem_usb_setup,contw
+	call usb_rx_read
+	fetch 1,mem_usb_read_len
+	beq 0x00,usb_rx_no_data
+	beq 0x01,usb_out_one_byte	// HUAWEI pad led status	
+	sub pdata,7,null
+	rtn positive
+usb_class_type:
+	bpatchx patch20_0,mem_patch20
+	set0 mark_isstr,mark
+	fetch 1,mem_usb_setup_bmRequestType
+	and_into 0x80,pdata
+	beq IN_DEVICE,usb_in_device
+	beq OUT_DEVICE,usb_out_device
+	branch assert
+
+usb_out_one_byte:
+	fetch 1,mem_usb_setup
+	rtnbit1 7	// OUT_DEVICE
+	call usb_get_led_status
+	branch usb0_reply_zerolen
+
+
+usb_in_device:
+	fetch 1,mem_usb_setup_bmRequestType
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	and_into 0x03,pdata
+	beq STANDARD_REQ,usb_in_standard_req
+	beq CLASS_REQ,usb_in_class_req
+	beq MANUFACTURER_REQ,usb_in_manufacturer_req
+	branch assert
+
+usb_out_device:
+	fetch 1,mem_usb_setup_bmRequestType
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	and_into 0x03,pdata
+	beq STANDARD_REQ,usb_out_standard_req
+	beq CLASS_REQ,usb_out_class_req	
+	beq MANUFACTURER_REQ,usb_out_manufacturer_req
+	branch assert
+
+usb_in_standard_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq GET_CONFIGURATION,usb0_request_get_configuration
+	beq GET_DESCRIPTOR,usb0_request_get_descriptor
+	beq GET_INTERFACE,usb0_request_get_interface
+	beq GET_STATUS,usb0_request_get_status
+	branch usb0_force_stall
+
+usb_in_class_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq GET_IDLE,usb_get_idle
+	beq GET_REPORT,usb_get_report
+	beq GET_PROTOCOL,usb_get_protocol_req
+	branch usb0_force_stall
+
+usb_in_manufacturer_req:
+	branch usb0_force_stall
+
+usb_out_standard_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq CLEAR_FEATURE,usb0_request_clear_feature
+	beq SET_FEATURE,usb0_request_set_feature
+	beq SET_ADDRESS,usb0_request_set_address
+	beq SET_CONFIGURATION,usb0_request_set_configuration
+	beq SET_INTERFACE,usb0_request_set_interface
+	beq SET_DESCRIPTOR,usb0_force_stall
+	branch usb0_force_stall
+
+usb_out_class_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq SET_IDLE,usb_set_idle
+	beq SET_REPORT,usb_set_report
+	beq SET_PROTOCOL,usb_set_protocol_req
+	branch usb0_force_stall
+
+usb_out_manufacturer_req:
+	branch usb0_force_stall
+
+usb0_force_stall:
+	bpatchx patch20_1,mem_patch20
+	fetch 1,core_usb_stall
+	set1 0,pdata
+	store 1,core_usb_stall
+	branch usb0_reply_zerolen
+	
+usb0_reply_zerolen:
+	jam 0x1,core_usb_clear_nak
+	rtn
+
+usb0_request_get_configuration:
+	fetch 1,mem_usb_setup_bmRequestType
+	bne IN_DEVICE,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 1,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb0_state
+	beq DEV_CONFIGURED,usb0_request_get_cfg_dev_cfg
+	beq DEV_ADDRESS,usb0_request_get_cfg_dev_addr
+	branch usb0_force_stall
+//Return current config : 1
+usb0_request_get_cfg_dev_cfg:
+	arg 1,regb
+	branch usb_send_ones_packet
+//Config do not work, return default config : 0
+usb0_request_get_cfg_dev_addr:
+	arg 1,regb
+	branch usb_send_zero_packet
+
+usb0_request_get_descriptor:
+	bpatchx patch20_2,mem_patch20
+//	set0 mark_isstr,mark
+	fetch 1,mem_usb_setup_bValueH
+	beq DSC_DEVICE,dsc_device_info
+	beq DSC_CONFIG,dsc_config_info	
+	beq DSC_STRING,dsc_string_info
+	beq DSC_HID,dsc_hid_info
+	beq DSC_HID_REPORT,dsc_hid_report_info
+	branch usb0_force_stall
+
+dsc_hid_info:
+	jam 0,mem_usb_get_protocol_flag
+	fetch 1,mem_usb_setup_wIndex
+	beq 0,dsc_hid_info_interface0
+	beq 1,dsc_hid_info_interface1
+	branch usb0_force_stall
+//class_descriptor hid_descriptor--keyboard 
+dsc_hid_info_interface0:
+	fetchr regb,1,mem_confdesc+19
+	arg mem_confdesc+19,rega
+	branch usb0_respond
+//class_descriptor hid_descriptor--mouse 
+dsc_hid_info_interface1:
+	fetchr regb,1,mem_confdesc+44
+	arg mem_confdesc+44,rega
+	branch usb0_respond
+
+dsc_device_info:
+//input : pdata : data poniter 
+//input : temp: data len
+//sets the data pointer and len to correct descriptor
+	fetch 1,mem_usb_set_high_addr_flag
+	ncall usb_set_high_addr,blank
+	setarg mem_devicedesc
+	fetcht 1,mem_devicedesc
+dsc_info_set_data_len:
+	store 2,mem_dsc_info_data_pointer
+	storet 1,mem_dsc_info_len
+	fetch 1,mem_usb_setup_bLength
+	isub temp,null
+	nbranch dsc_info_set_current_data_len,positive
+dsc_info_set_initial_data_len:
+	fetch 1,mem_dsc_info_len
+dsc_info_set_data_size_completed:	
+	iforce regb
+	fetch 2,mem_dsc_info_data_pointer
+	add pdata,1,pdata
+	iforce rega
+	branch usb0_respond
+dsc_info_set_current_data_len:
+	fetch 1,mem_usb_setup_bLength
+	branch dsc_info_set_data_size_completed
+
+usb_set_high_addr:
+	fetch 1,core_usb_addr
+	ncall usb0_set_addr,blank
+	jam 0,mem_usb_set_high_addr_flag
+	rtn
+usb0_set_addr:
+	fetch 1,core_usb_addr
+   	set1 7,pdata
+    	store 1,core_usb_addr
+    	rtn
+
+dsc_config_info:
+	setarg mem_confdesc
+	fetcht 1,mem_confdesc
+	branch dsc_info_set_data_len
+
+dsc_string_info:
+	fetch 1,mem_usb_setup_bValue
+	sub pdata,3,null
+	nbranch usb0_force_stall,positive
+	fetch 1,mem_usb_setup_bValue
+	arg mem_string0,rega
+	beq 0,usb0_respond_length	
+	set1 mark_isstr,mark
+	arg mem_string1,rega
+	beq 1,usb0_respond_length
+	arg mem_string2,rega
+	beq 2,usb0_respond_length
+	arg mem_string3,rega
+	beq 3,usb0_respond_length
+	rtn
+
+dsc_hid_report_info:
+	fetch 2,mem_usb_setup_wIndex
+	beq 1,dsc_hid_report_info0
+	fetchr rega,2,mem_hidreportdesc_kb
+	branch usb0_respond_length
+dsc_hid_report_info0:
+	jam 1,mem_usb_device_enumeration_endflag
+	jam USB_GOT_REPORT_REQ,mem_usb_state
+	fetchr rega,2,mem_hidreportdesc_m
+	branch usb0_respond_length
+
+
+usb0_request_get_interface:
+	fetch 1,mem_usb0_state
+	bne DEV_CONFIGURED,usb0_force_stall		
+	fetch 1,mem_usb_setup_bmRequestType
+	bne IN_INTERFACE,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 1,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	arg 1,regb
+	branch usb_send_zero_packet
+
+
+usb0_request_get_status:
+	fetch 1,mem_usb0_state
+	beq DEV_DEFAULT,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 2,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bmRequestType
+	beq IN_DEVICE,usb0_get_status_in_device
+	beq IN_INTERFACE,usb0_get_status_in_interface
+	beq IN_ENDPOINT,usb0_get_status_in_endpoint
+	branch usb0_force_stall
+
+
+Usb0_SDsystem_dispose:
+	jam 1,mem_sdsystem_wakeup_flag
+	branch usb_send_two_packet
+
+usb0_get_status_in_device:
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	arg 2,regb
+	fetch 1,mem_usb_remote_wakeup
+	beq 0x01,Usb0_SDsystem_dispose
+//regb:length
+usb_send_zero_packet:
+	arg mem_usb_zero_packet,rega
+	branch usb0_respond
+usb_send_ones_packet:
+	arg mem_usb_ones_packet,rega
+	branch usb0_respond
+usb_send_two_packet:
+	arg mem_usb_two_packet,rega
+	branch usb0_respond
+
+usb0_get_status_in_interface:
+	fetch 1,mem_usb0_state
+	bne DEV_CONFIGURED,usb0_force_stall
+	arg 2,regb
+	branch usb_send_zero_packet
+
+usb0_get_status_in_endpoint:
+	fetch 1,mem_usb0_state
+	bne DEV_CONFIGURED,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	beq IN_EP1,usb0_get_status_in_ep_in_ep1
+	beq IN_EP2,usb0_get_status_in_ep_in_ep2
+	beq IN_EP3,usb0_get_status_in_ep_in_ep3
+	and_into 0x7f,pdata
+	beq 0x00,usb0_get_status_in_ep_in_ep0
+	branch usb0_force_stall
+	
+usb0_get_status_in_ep_in_ep0:
+	fetch 1,mem_usb_ep0_stall_status
+usb0_get_status_in_ep_in_ack:
+	arg 2,regb
+	beq 1,usb_send_ones_packet
+	branch usb_send_zero_packet
+usb0_get_status_in_ep_in_ep1:
+	fetch 1,mem_usb_ep1_stall_status
+	branch usb0_get_status_in_ep_in_ack
+usb0_get_status_in_ep_in_ep2:
+	fetch 1,mem_usb_ep2_stall_status
+	branch usb0_get_status_in_ep_in_ack
+usb0_get_status_in_ep_in_ep3:
+	fetch 1,mem_usb_ep3_stall_status
+	branch usb0_get_status_in_ep_in_ack
+
+usb_get_idle:
+	jam 1,mem_usb_idle_flag
+	arg mem_usb_idle_rate,rega
+	arg 1,regb
+	branch usb0_respond
+
+usb_get_report:
+	fetch 2,mem_usb_setup_bValue
+	arg PC_GET_REPORT,temp
+	isub temp,null
+	nbranch usb0_force_stall,zero
+//	set0 mark_isstr,mark
+usb_get_report_dispose:	
+	fetch 1,mem_usb0_data_ready_report
+	nbranch usb_get_report_data_success,blank
+	jam PC_GET_NONDATA,mem_usb0_get_report_data
+usb_get_report_send_data:
+	fetch 1,mem_usb_setup_bLength
+	iforce regb
+	arg mem_usb0_get_report_data,rega
+	call usb0_respond
+usb_get_report_data_release:	
+	arg mem_usb0_get_report_data,contw
+	arg 64,loopcnt
+	branch memset0
+usb_get_report_data_success:
+	jam 0,mem_usb0_data_ready_report
+	jam PC_GET_DATA,mem_usb0_get_report_data
+	branch usb_get_report_send_data
+
+usb_get_protocol_req:
+	fetch 1,mem_usb_setup_bLength
+	bne 1,usb0_force_stall
+	jam 1,mem_usb_get_protocol_flag
+	arg 1,regb //length
+	fetch 1,mem_usb_set_protocol_value
+	beq 0,usb_get_report_protocol
+	beq 1,usb_get_boot_protocol
+	branch usb_send_zero_packet
+usb_get_report_protocol:
+	branch usb_send_ones_packet
+usb_get_boot_protocol:
+	branch usb_send_zero_packet
+
+
+
+//in device
+usb0_request_clear_feature:
+	fetch 1,mem_usb0_state
+	bne DEV_CONFIGURED,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bmRequestType
+	beq OUT_DEVICE,usb0_request_clear_feature_out_device
+	beq OUT_INTERFACE,usb0_request_clear_feature_out_interface
+	beq OUT_ENDPOINT,usb0_request_clear_feature_out_endpoint
+	branch usb0_force_stall
+
+usb0_request_clear_feature_out_device:
+	fetch 1,mem_usb_setup_bValue
+	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
+	fetch 1,core_usb_config
+	set0 7,pdata
+	store 1,core_usb_config
+	jam 0,mem_usb_remote_wakeup
+	jam 1,mem_usb_clear_remote_wakeup
+	fetch 1,mem_sdsystem_wakeup_flag
+	branch usb0_reply_zerolen,blank
+	jam 0,mem_sdsystem_wakeup_flag
+	jam 0,mem_usb_clear_remote_wakeup
+	jam USB_CONNECTED,mem_usb_state
+	branch usb0_reply_zerolen
+
+usb0_request_clear_feature_out_interface:
+	branch usb0_force_stall
+
+usb0_request_clear_feature_out_endpoint:
+	fetch 1,mem_usb_setup_bValue
+	bne ENDPOINT_HALT,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	beq IN_EP1,usb0_force_stall_ep1_in_off
+	beq IN_EP2,usb0_force_stall_ep2_in_off
+	beq IN_EP3,usb0_force_stall_ep3_in_off
+	and_into 0x7f,pdata
+	beq 0x00,usb0_force_stall_ep0_in_off
+	branch usb0_force_stall
+
+usb0_force_stall_ep0_in_off:
+	jam 0,mem_usb_ep0_stall_status
+	branch usb0_reply_zerolen
+usb0_force_stall_ep1_in_off:
+	jam 0,mem_usb_ep1_stall_status
+usb0_force_stall_ep1_in_off_reply:	
+	jam 1,mem_usb_clear_halt
+	branch usb0_reply_zerolen
+usb0_force_stall_ep2_in_off:
+	jam 0,mem_usb_ep2_stall_status
+	branch usb0_force_stall_ep1_in_off_reply
+usb0_force_stall_ep3_in_off:
+	jam 0,mem_usb_ep3_stall_status
+	branch usb0_force_stall_ep1_in_off_reply
+
+
+usb0_request_set_feature:
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bmRequestType
+	beq OUT_DEVICE,usb0_request_set_feature_out_device
+	beq OUT_INTERFACE,usb0_request_set_feature_out_interface
+	beq OUT_ENDPOINT,usb0_request_set_feature_out_endpoint
+	branch usb0_force_stall
+
+usb0_request_set_feature_out_device:
+	fetch 1,mem_usb_setup_bValue
+	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
+	call dongle_set_pc_sleep_flag
+	fetch 1,core_usb_config
+	set1 7,pdata
+	store 1,core_usb_config
+	jam 1,mem_usb_remote_wakeup
+	jam USB_SLEEP,mem_usb_state
+	jam 0,mem_usb_tx_win_enable
+	call usb0_reply_zerolen
+usb_wakeup_timer_reinit:
+	call timer_reinit
+	setarg TIMER_WAKEUP_DELAY
+	arg USB_TIMER_WAKEUP,queue
+	branch timer_init
+	
+usb0_request_set_feature_out_interface:
+	branch usb0_force_stall
+
+usb0_request_set_feature_out_endpoint:
+	fetch 1,mem_usb_setup_bValue
+	bne ENDPOINT_HALT,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	beq IN_EP1,usb0_force_stall_ep1_in_on
+	beq IN_EP2,usb0_force_stall_ep2_in_on
+	beq IN_EP3,usb0_force_stall_ep3_in_on
+	and_into 0x7f,pdata
+	beq 0x00,usb0_force_stall_ep0_in_on
+	branch usb0_force_stall
+
+usb0_force_stall_ep0_in_on:
+	jam 1,mem_usb_ep0_stall_status
+	branch usb0_reply_zerolen
+usb0_force_stall_ep1_in_on:
+	jam 1,mem_usb_ep1_stall_status
+	branch usb0_reply_zerolen
+usb0_force_stall_ep2_in_on:
+	jam 1,mem_usb_ep2_stall_status
+	branch usb0_reply_zerolen
+usb0_force_stall_ep3_in_on:
+	jam 1,mem_usb_ep3_stall_status
+	branch usb0_reply_zerolen
+
+
+usb0_request_set_address:
+	fetch 1,mem_usb_setup_bmRequestType
+	bne OUT_DEVICE,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	and_into 0x80,pdata
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	bne 0,usb_usb0_state_set_dev_addr
+usb_usb0_state_set_dev_default:	
+	jam DEV_DEFAULT,mem_usb0_state
+usb0_request_set_wait_address:
+	fetch 1,mem_usb_setup_bValue
+	store 1,core_usb_addr
+	call usb0_reply_zerolen
+	jam 1,mem_usb_set_high_addr_flag
+	rtn
+usb_usb0_state_set_dev_addr:
+	jam DEV_ADDRESS,mem_usb0_state
+	branch usb0_request_set_wait_address
+
+
+usb0_request_set_configuration:
+	fetch 1,mem_usb0_state
+	beq DEV_DEFAULT,usb0_force_stall
+	fetch 1,mem_usb_setup_bmRequestType
+	bne OUT_DEVICE,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue+1
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	sub pdata,USB_MAX_NUM_CFG,null
+	nbranch usb0_force_stall,positive
+	fetch 1,mem_usb0_state
+	beq DEV_ADDRESS,usb0_request_set_cfg_addr_state
+	beq DEV_CONFIGURED,usb0_request_set_cfg_cfg_state
+	branch usb0_force_stall
+ // This software only supports config = 0,1
+usb0_request_set_cfg_addr_state:
+usb0_request_set_cfg_cfg_state:
+	fetch 1,mem_usb_setup_bValue	//1:Configured state   0:Address state
+	beq 0,usb0_request_set_cfg_stay_addr_state
+	jam DEV_CONFIGURED,mem_usb0_state
+	branch usb0_reply_zerolen
+usb0_request_set_cfg_stay_addr_state:
+	jam DEV_ADDRESS,mem_usb0_state
+	branch usb0_reply_zerolen
+
+
+usb0_request_set_interface:
+	fetch 1,mem_usb0_state
+	bne DEV_CONFIGURED,usb0_force_stall		
+	fetch 1,mem_usb_setup_bmRequestType
+	bne OUT_INTERFACE,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValueH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_wIndex+1
+	bne 0,usb0_force_stall
+	branch usb0_reply_zerolen
+
+
+usb_set_idle:
+	bpatchx patch20_3,mem_patch20
+	jam 1,mem_usb_idle_flag
+	fetch 1,mem_usb_setup_bValueH
+	store 1,mem_usb_idle_rate
+	fetch 1,mem_usb_setup_wIndex
+	sub pdata,1,null
+	call usb_clear_remote_wakeup_set0,zero
+	fetch 1,mem_usb_state
+	bne USB_RESUME,usb0_reply_zerolen
+	jam USB_CONNECTED,mem_usb_state
+	call usb0_reply_zerolen
+	nop 30000
+	nop 30000
+	rtn
+usb_clear_remote_wakeup_set0:
+	jam 1,mem_usb_device_enumeration_endflag
+	jam 0,mem_usb_clear_remote_wakeup
+	jam USB_RESUME,mem_usb_state
+	rtn
+
+
+usb_set_report:
+	nop 15000		//delay 1ms
+	arg mem_usb0_set_report_data,contw
+	call usb_rx_data
+	jam 1,mem_usb0_get_set_report
+	call usb_set_report_resume_judge
+	fetch 2,mem_usb_setup_bValue
+	store 2,mem_usb_setup_bValue_temp
+	call usb0_reply_zerolen
+	fetch 1,mem_device_option
+	rtnne DVC_OP_DONGLE
+	fetch 1,mem_usb_tx_win_enable
+	rtn blank
+	fetch 1,mem_usb0_set_report_data
+usb_get_led_status:	
+	store 1,mem_24g_led_status
+	jam 0,mem_usb_tx_win_enable
+	jam KB_LED_ACKPAYLOAD,mem_24g_ackpayload_enable
+	rtn
+
+	
+usb_set_report_resume_judge:
+	fetch 2,mem_usb_setup_bValue
+	arg PC_SET_REPORT_bValue,temp
+	isub temp,null
+	nrtn zero
+	fetch 2,mem_usb_setup_wIndex
+	arg PC_SET_REPORT_wIndex,temp
+	isub temp,null
+	nrtn zero
+	fetch 2,mem_usb_setup_bLength
+	arg PC_SET_REPORT_bLength,temp
+	isub temp,null
+	nrtn zero
+	jam 1,mem_usb_tx_win_enable
+	rtn
+
+
+usb_set_protocol_req:
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bValue
+	beq BOOT_PROTOCOL,usb_set_boot_protocol
+	beq REPORT_PROTOCOL,usb_set_report_protocol
+	branch usb0_force_stall
+usb_set_boot_protocol:
+	jam 0,mem_usb_set_protocol_status
+	jam 1,mem_usb_set_protocol_value
+	branch usb0_reply_zerolen
+usb_set_report_protocol:
+	jam 1,mem_usb_tx_mac_enable
+	jam 1,mem_usb_set_protocol_status
+	jam 0,mem_usb_set_protocol_value
+	branch usb0_reply_zerolen
+
+
+usb0_respond_length:
+	ifetchr regb,1,rega
+	increase 1,rega
+//rega=*buff,regb=size
+usb0_respond:
+	bpatchx patch20_4,mem_patch20
+	set1 mark_usb_first_resp,mark
+	bmark0 mark_isstr,usb0_respond_nostr
+	increase 1,regb
+	lshift regb,regb
+usb0_respond_nostr:
+	storer rega,2,mem_bufptr
+	storer regb,1,mem_remain
+	branch usb0_tx
+	rtn
+
+usb_no_respond_data:
+	arg 0,queue
+	branch usb_trig
+
+
+
+//mem_bufptr=*buff,mem_remain=size,loopcnt=i,rega=len
+usb0_tx:
+	bpatchx patch20_5,mem_patch20
+	fetch 1,core_usb_txbusy
+	rtnbit1 0
+	fetch 1,mem_remain
+	rtn blank
+	copy pdata,loopcnt
+	iforce temp
+	fetch 2,mem_usb_setup_bLength
+	sub pdata,EP0_PACKET_SIZE,null
+	branch usb0_tx_short,positive
+	sub loopcnt,EP0_PACKET_SIZE,null
+	branch usb0_tx_info,positive
+	force EP0_PACKET_SIZE,loopcnt
+	branch usb0_tx_info
+usb0_tx_short:
+	isub loopcnt,null
+	branch usb0_tx_info,positive
+	iforce loopcnt
+	store 1,mem_remain
+usb0_tx_info:
+	fetch 1,mem_remain
+	isub loopcnt,pdata
+	store 1,mem_remain
+	add loopcnt,-1,pdata
+	store 1,mem_usb_txbuf
+	bmark0 mark_isstr,usb0_tx_nostr
+	rshift pdata,pdata
+	add loopcnt,-1,pdata
+	store 1,mem_usb_txbuf
+	bmark0 mark_usb_first_resp,usb0_tx_nostr
+	set0 mark_usb_first_resp,mark
+	istoret 1,contw
+	setarg 3
+	istore 1,contw
+	increase -1,loopcnt
+	copy loopcnt,pdata
+	nbranch usb0_tx_nostr,zero
+	increase 1,loopcnt
+usb0_tx_nostr:
+	fetch 2,mem_bufptr
+	copy pdata,contr
+usb0_tx0:
+	ifetch 1,contr
+	istore 1,contw
+	bmark0 mark_isstr,usb0_tx1
+	setarg 0
+	istore 1,contw
+usb0_tx1:
+	loop usb0_tx0
+	copy contr,pdata
+	store 2,mem_bufptr				//mem_bufptr += len
+	setarg mem_usb_txbuf
+	store 2,core_usb_tx_saddr0
+	arg 0,queue
+	call usb_trig
+	fetch 1,mem_remain
+	nrtn blank
+	jam 2,core_usb_clear_nak			// clear OUT nak for last packet
+	fetch 1,mem_usb_state
+	rtnne USB_GOT_REPORT_REQ
+	jam USB_CONNECTED,mem_usb_state
+	rtn
+
+
+
+usb_tx_ep1:
+	arg mem_usb_txbuf1,rega
+	arg 1,queue
+	storer rega,2,core_usb_tx_saddr1
+usb_tx_buf:
+	add loopcnt,-1,pdata
+	istore 1,rega
+usb_tx_loop:
+	ifetch 1,contr
+	istore 1,contw
+	loop usb_tx_loop
+usb_trig:
+	setarg 0
+	qset1 pdata
+	store 1,core_usb_trig
+	rtn
+
+usb_tx_ep2:
+	arg 2,queue
+	arg mem_usb_txbuf2,rega
+	storer rega,2,core_usb_tx_saddr2
+	branch usb_tx_buf
+
+usb_tx:
+	bpatchx patch20_6,mem_patch20
+	fetch 1,mem_usb_tx_enable
+	rtn blank
+	fetch 1,core_usb_txbusy
+	and_into 0x0f,pdata
+	nbranch usb_inwake_state_tx_dispose,blank
+	fetch 1,mem_usb_device_enumeration_endflag
+	branch usb_tx_fifo_release,blank
+	fetch 1,mem_usb_state
+	beq USB_SLEEP,usb_windows_wakeup
+	bne USB_CONNECTED,usb_tx_fifo_release
+	fetch 1,mem_usb_clear_remote_wakeup
+	nbranch usb_tx_fifo_release,blank
+	call usb_tx_data_ep1
+	branch usb_tx_data_ep2
+
+usb_tx_data_ep1:
+	fetch 1,core_usb_txbusy
+	rtnbit1 1
+	fetch 1,mem_usb_tx_enable
+	rtnbit0 1
+	fetch 1,mem_usb_tx_enable
+	set0 1,pdata
+	store 1,mem_usb_tx_enable
+	fetch 1,mem_usb_ep1_data
+	rtn blank
+	beq USB_EP1_KB,usb_tx_kb_normal_data
+	branch assert
+
+usb_tx_data_ep2:
+	fetch 1,core_usb_txbusy
+	rtnbit1 2
+	fetch 1,mem_usb_tx_enable
+	rtnbit0 2
+	fetch 1,mem_usb_tx_enable
+	set0 2,pdata
+	store 1,mem_usb_tx_enable
+	fetch 1,mem_usb_ep2_data
+	rtn blank
+	beq USB_EP2_MS,usb_tx_ms_data
+	beq USB_EP2_MULTIKEY,usb_tx_kb_multikey_data
+	beq USB_EP2_SYSTEMKEY,usb_tx_kb_systemkey_data
+	branch assert
+
+usb_tx_fifo_release:
+	//clear mem_usb_mouse_data/mem_usb_kb_data/mem_usb_kb_multikey/mem_usb_kb_system
+	arg mem_usb_mouse_data,contw
+	arg 64,loopcnt
+	branch memset0
+	
+usb_tx_ms_data:
+	fetch 1,mem_usb_idle_flag
+	fetcht 1,mem_usb_get_protocol_flag
+	iand temp,pdata
+	branch usb_tx_ms_data_normal_mode,blank
+	fetcht 1,mem_usb_set_protocol_status
+	iadd temp,pdata
+	beq MAC_BOOT_MODE,usb_tx_ms_data_mac_boot_mode
+	branch usb_tx_ms_data_normal_mode
+
+usb_tx_ms_data_mac_boot_mode:
+	jam 0,mem_usb_ep2_data
+usb_tx_ms_data_mac_boot_regroup:
+	fetch 1,mem_usb_mouse_data+1	//key
+	beq R_KEY,usb_tx_mac_boot_ms_regroup_r_or_lrkey
+	beq LR_KEY,usb_tx_mac_boot_ms_regroup_r_or_lrkey
+	fetch 1,mem_usb_mouse_data+1	//key
+	store 1,mem_usb_mouse_data
+	fetch 1,mem_usb_mouse_data+2	//x low
+	istore 1,contw
+	fetch 1,mem_usb_mouse_data+4	//y low
+	istore 1,contw
+	fetch 1,mem_usb_mouse_data+6	//wheel
+	istore 1,contw
+	arg 4,loopcnt
+	arg mem_usb_mouse_data,contr
+	branch usb_tx_ep2
+	
+usb_tx_ms_data_normal_mode:
+	jam 0,mem_usb_ep2_data
+usb_tx_mac_boot_ms_regroup_r_or_lrkey:	
+	arg 8,loopcnt		
+	arg mem_usb_mouse_data,contr
+	branch usb_tx_ep2
+
+usb_tx_kb_multikey_data:
+	jam 0,mem_usb_ep2_data
+	arg 3,loopcnt
+	arg mem_usb_kb_multikey,contr
+	branch usb_tx_ep2
+
+usb_tx_kb_normal_data:
+	jam 0,mem_usb_ep1_data
+	arg 8,loopcnt
+	arg mem_usb_kb_data,contr
+	branch usb_tx_ep1
+
+usb_tx_kb_systemkey_data:
+	jam 0,mem_usb_ep2_data
+	arg 2,loopcnt
+	arg mem_usb_kb_system,contr
+	branch usb_tx_ep2
+
+usb_inwake_state_tx_dispose:
+	fetch 1,mem_usb_state
+	beq USB_CONNECTED,usb_mac_wakeup_trig
+	rtn
+usb_mac_wakeup_trig:
+	fetch 1,core_usb_config
+	set1 7,pdata
+	store 1,core_usb_config
+	jam 1,mem_usb_mac_wakeup_trig
+	rtn
+
+usb_mac_wakeup_judge:
+	fetch 1,mem_usb_state
+	rtneq USB_SLEEP
+	beq USB_CONNECTED,usb_mac_wakeup
+	rtn
+usb_mac_wakeup:
+	fetch 1,mem_usb_mac_wakeup_trig
+	rtn blank
+	jam 1,mem_usb_wakestate_onetime_flag
+	branch usb_wakeup
+
+usb_windows_wakeup:
+	arg USB_TIMER_WAKEUP,queue
+	call timer_check
+	nrtn blank
+usb_wakeup:
+	fetch 1,core_usb_config
+	rtnbit0 7	//endpoint wakeup enable
+	jam 0xfc,core_usb_config
+	nop 30000
+	jam 0x3c,core_usb_config
+	rtn
+
+
+endif
+
Index: program/utility.prog
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/utility.prog	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/program/utility.prog	(working copy)
@@ -0,0 +1,738 @@
+
+
+	
+push_stack:
+	storer contw,2, mem_contw
+	storet 8,mem_temp
+	storer timeup,4,mem_timeup
+	call push_stack_rega_b_c
+	storer contr,2, mem_contr
+	storer loopcnt,2, mem_loopcnt
+	storer queue,2,mem_queue
+	rtn
+
+push_stack_rega_b_c:
+	storer rega,4, mem_rega
+	storer regb,4, mem_regb
+	storer regc,3, mem_regc
+	rtn
+
+pop_stack:
+	bpatchx patch20_7,mem_patch20
+	fetch 2, mem_contw
+	iforce contw
+	fetcht 8,mem_temp
+	fetchr timeup,4,mem_timeup
+	call pop_stack_rega_b_c
+	fetchr loopcnt,2,mem_loopcnt
+	fetchr queue,2,mem_queue
+	fetch 2,mem_contr
+	iforce contr
+	rtn
+
+pop_stack_rega_b_c:
+	fetchr rega,4, mem_rega
+	fetchr regb,4, mem_regb
+	fetchr regc,3,mem_regc
+	rtn
+
+get_contw:
+	fetch 2,mem_contw
+	copy pdata,contw
+	rtn
+get_contr:
+	fetch 2,mem_contr
+	copy pdata,contr
+	rtn
+	
+store_contw:
+	copy contw,pdata
+	store 2,mem_contw
+	rtn
+store_contr:
+	copy contr,pdata
+	store 2,mem_contr
+	rtn	
+	
+
+//
+save_cont_pointers:
+	copy contw,pdata
+	store 2,mem_contw
+	copy contr,pdata
+	store 2,mem_contr
+	rtn
+	
+load_cont_pointers:
+	fetch 2,mem_contw
+	copy pdata,contw
+	fetch 2,mem_contr
+	copy pdata,contr
+	rtn
+
+
+//input pdata,temp 1byte
+//output rega:diff
+get_diff:
+	isub temp,rega
+	rtn positive
+	arg 0x100,rega
+	iadd rega,pdata
+	isub temp,rega
+	rtn	
+
+memcpy96:
+	call memcpy32
+memcpy64:
+	call memcpy32
+	branch memcpy32
+	
+
+memcpy12:
+	call memcpy8
+memcpy4:
+	ifetch 1,contr
+	istore 1,contw
+memcpy3:
+	ifetch 3,contr
+	istore 3,contw
+	rtn	
+memcpy8:
+	ifetch 8,contr
+	istore 8,contw
+	rtn	
+
+memcpy48:
+	call memcpy16
+memcpy32:
+	call memcpy8
+memcpy24:
+	call memcpy8
+memcpy16:
+	call memcpy8
+	branch memcpy8
+
+delay:
+	increase -1,pdata
+	nop 38
+	nbranch delay,blank
+	rtn
+
+
+delay_10ms:
+	arg 10,loopcnt
+delay_ms_wait:
+	nop 12000
+	loop delay_ms_wait
+	rtn
+
+
+memset0_16:
+	call memset0_8
+memset0_8:
+	call memset0_4
+memset0_4:
+	force 4,loopcnt
+	branch memset0
+	
+clear_mem_256:
+	force 32,loopcnt
+	branch memset0 
+clear_mem_512:
+	force 64,loopcnt
+	branch memset0 
+
+clear_mem:
+	deposit loopcnt
+	rtn blank
+memset0:
+	force 0,pdata
+	lstore  contw
+	rtn	
+
+clear_temp_block:
+	arg 32,loopcnt
+	arg mem_temp_block0,contw
+	branch clear_mem
+	
+xor_loop:
+	ifetch   4,regc
+	ifetcht 4,rega
+	ixor     temp,pdata
+	istore   4,contw	
+	increase 4,rega
+	increase 4,regc
+	loop  xor_loop
+	rtn
+	
+// 11 22 -> 22 11; 11 22 33 -> 33 22 11 
+// rega:data addr ;loopnct:length
+inverse_data:
+	bpatchx patch21_0,mem_patch21
+	copy loopcnt,pdata
+	sub pdata,1,null
+	rtn positive
+	iadd rega,regb	
+	increase -1,regb
+	rshift loopcnt,loopcnt
+inverse_loop:
+	ifetcht 1,rega
+	ifetch 1,regb
+	istore 1,rega
+	istoret 1,regb
+	increase -1,regb
+	increase 1,rega
+	loop inverse_loop
+	rtn
+
+/*
+	function name:inverse_data_6Byte or le2be_6Byte
+	input: pdata is data that want change
+	output:pdata is Converted data
+	used Resources:temp,contr
+*/
+le2be_6Byte:
+inverse_data_6Byte:
+	rshift32 pdata,temp
+	call inverse_data_4Byte
+	byteswap temp,temp
+	lshift16 pdata,pdata
+	ior temp,pdata
+	rtn
+
+
+/*
+	function name:inverse_data_4Byte or le2be_4Byte
+	input: pdata is data that want change
+	output:pdata is Converted data
+	used Resources:contr
+*/
+le2be_4Byte:
+inverse_data_4Byte:
+	rshift16 pdata,contr
+	byteswap contr,contr
+	byteswap pdata,pdata
+	lshift16 pdata,pdata
+	ior contr,pdata
+	rtn
+
+
+memcpy_fast:
+	bpatchx patch21_1,mem_patch21
+	deposit loopcnt
+	rtn blank
+memcpy_fast_loop:
+	increase -8,loopcnt
+	call memcpy8,positive
+	rtn zero
+	branch memcpy_fast_loop,positive
+	increase 8,loopcnt
+memcpy_fast_loop_four:
+	increase -4,loopcnt
+	call memcpy4,positive
+	rtn zero
+	branch memcpy_fast_loop_four,positive
+	increase 4,loopcnt
+	branch memcpy
+ 
+memcpy:
+	deposit loopcnt
+	rtn blank
+memcpy_loop:
+	ifetch 1,contr
+	istore 1,contw
+	loop memcpy_loop
+	rtn
+
+timer_stop:
+	setarg 0
+timer_init:
+//	rshift clkn_bt,temp
+//	storet 4,mem_last_clkn
+	store 2,mem_pdatatemp
+	bpatchx patch21_2,mem_patch21
+	call timer_check
+	fetcht 2,mem_pdatatemp
+	arg mem_timers,contw
+//	iforce temp
+	lshift queue,pdata
+	iadd contw,contw
+	istoret 2,contw
+	rtn
+
+timer_check_timeout:
+	arg 0x800,timeup
+	lshift16 timeup,timeup
+	iadd timeup,pdata
+	rtn
+
+
+timer_reinit:
+	arg 0,queue
+timer_check:
+	bpatchx patch21_3,mem_patch21
+	fetcht 4,mem_last_clkn
+	rshift clkn_bt,pdata
+	store 4,mem_last_clkn	
+	isub temp,null
+	ncall timer_check_timeout,positive	
+	isub temp,timeup
+	copy timeup,temp
+	arg mem_timers,contr
+	copy contr,contw
+	arg 16,loopcnt
+timer_loop:
+	ifetch 2,contr
+	isub temp,pdata
+	branch timer_counting,positive
+	force 0,pdata
+timer_counting:
+	istore 2,contw
+	loop timer_loop	
+	arg mem_timers,contr
+	lshift queue,pdata
+	iadd contr,contr
+	ifetch 2,contr
+	rtn
+
+
+
+	/* pdata 28+16 bit add temp 26+16 bit, result in temp */
+clk_add:
+	iadd temp,temp
+	copy temp, loopcnt
+	fetch 2,mem_param_rt_rthalfslot
+	isub loopcnt,pdata
+	rtn positive
+	sub pdata,0,pdata
+	rshift16 temp,temp
+	increase 1,temp
+	lshift16 temp,temp
+	ior temp,temp
+	rtn
+
+clk_diff_rt:
+	call clk_diff
+	branch clk2rt
+
+/* pdata -temp -> pdata, all are 28+16 bits, set user if negative */
+clk_diff:
+	disable user
+	isub temp,pdata
+	branch clk_diff_pos,positive
+	enable user
+	sub pdata,0,pdata
+clk_diff_pos:
+	rtnbit0 15
+	copy pdata,regab
+	arg 0x10000,temp
+	fetch 2,mem_param_rt_rthalfslot
+	isub temp,pdata
+	iadd regab,pdata
+	set0 64,pdata
+	rtn
+
+	
+
+clk2rt:
+	fetcht 2,mem_param_rt_rthalfslot
+	iforce contr
+	rshift16 pdata,pdata
+	imul32 temp,pdata
+	iadd contr,pdata
+	rtn
+
+	/* pdata = clks in, temp = lpo out */
+clk2lpo:
+	lshift8 pdata,pdata
+	lshift4 pdata,pdata
+	fetcht 3,mem_clks_per_lpo
+	idiv temp
+	call wait_div_end
+	quotient temp
+	rtn
+
+	/* rt clk -> bt+rt clk */
+clk2bt:
+	fetcht 2,mem_param_rt_rthalfslot
+	idiv temp
+	call get_div_result
+	lshift16 pdata,pdata
+	remainder temp
+	ior temp,temp
+	rtn
+
+
+
+//input:contu 
+//output:temp
+//used register: temp regab
+string2dec_from_uart:
+	arg 0,temp
+string2dec_from_uart_done:
+         copy temp,regab
+	ifetch 1,contu
+	call uchar2dialog	
+	copy regab,temp
+	call swap
+	arg 10,regb
+	imul32 regb,pdata
+	iadd temp,pdata
+	copy pdata,temp
+	loop string2dec_from_uart_done
+	rtn
+	
+
+
+uchar2dialog:
+	arg 0x3a,temp
+	isub temp,null
+	nbranch uchar2dialog_number,positive
+	arg 0x61,temp
+	isub temp,null
+	branch uchar2dialog_a2f,positive
+	arg 0x37,temp
+	isub temp,pdata
+	rtn
+uchar2dialog_number:
+	arg 0x30,temp
+	isub temp,pdata
+	rtn
+uchar2dialog_a2f:
+	arg 0x57,temp
+	isub temp,pdata
+	rtn
+
+
+right_shift_n: //rshiftN pdata,pdata
+	sub loopcnt,0,null
+	rtn zero
+right_shift_n_loop: 
+	rshift pdata,pdata
+	loop right_shift_n_loop
+	rtn
+
+//lshift. 0:1 byte; 1:2byte; 2:4byte; 3:8byte; 4:16byte//
+left_shift_n:
+	force 1,pdata
+	sub loopcnt,0,null
+	rtn zero
+left_shift_n_loop:
+	lshift pdata,pdata
+	loop left_shift_n_loop
+	rtn
+	
+
+	// contr: rxdata, loopcnt is count. result in quotient
+calc_average:
+	setarg 0
+	copy loopcnt,rega
+calc_average_loop:
+	ifetcht 2,contr
+	iadd temp,pdata
+	loop calc_average_loop
+	idiv rega
+get_div_result:
+	call wait_div_end
+	quotient pdata
+	rtn
+
+wait_div_end:	
+	rtn modone
+	branch wait_div_end
+
+
+
+//input:
+//	count:loopcnt str1:rega str2:regb
+//output:
+//	same:set flag zero ,diff not set flag zero
+// using:
+//	reg:temp null flag:zero
+compare_loop:
+string_compare:
+	ifetch 1,rega
+	ifetcht 1,regb
+	isub temp,null
+	nrtn zero
+	increase 1,rega
+	increase 1,regb
+	loop string_compare
+	branch enable_zero
+
+
+	/* pdata = temp if pdata > temp */
+ceiling:
+	isub temp,null
+	nrtn positive
+	deposit temp
+	rtn
+	
+swap:
+	iadd temp,pdata
+	isub temp,temp
+	isub temp,pdata
+	rtn
+
+clean_smem:
+	arg 0,contw
+	branch clean_mem
+
+clean_xmem:
+	arg 0x4000,contw
+clean_mem:
+	arg 0x1000,loopcnt
+	branch memset0				// clear xram at boot
+
+	//cb function ptr in pdata
+callback_func:
+	rtn blank
+	copy pdata,pc	//rtn through cb functon.
+	//branch assert
+/*
+wait_uarttx:
+	fetch 2,core_uart_txitems
+	nbranch wait_uarttx,blank
+	rtn
+*/
+
+ice_break_disable_wdt:
+	call wdt_set_disable
+
+ice_break:
+	jam 0x1,core_ice_ctrl
+	rtn
+
+ice_setbp:
+	store 2,core_ice_break0
+	fetch 1,core_ice_ctrl
+	set1 4,pdata
+	store 1,core_ice_ctrl
+	rtn
+ice_setbp2:
+	store 2,core_ice_break1
+	fetch 1,core_ice_ctrl
+	set1 6,pdata
+	store 1,core_ice_ctrl
+	rtn
+	
+ice_set_write_bp:
+	store 2,core_ice_break0
+	jam 0x30,core_ice_ctrl
+	rtn
+	
+
+
+	//fuction fifo_in
+	//rega pointer to fifo memory , *(rega+len) is the end of fifo
+	//mem_fifo_temp data into fifo
+	//assert if fifo was full
+fifo_in:
+	bpatchx patch21_4,mem_patch21
+	ifetcht UTIL_FIFO_LEN,rega
+	and temp,0xff,pdata
+	nbranch fifo_in_push,blank
+	rshift8 temp,pdata
+	istore UTIL_FIFO_LEN,rega
+fifo_in_push:
+	increase UTIL_FIFO_LEN+UTIL_FIFO_OFFSET,rega
+	ifetch 1,rega
+	nbranch assert,blank //fifo full
+	fetch 1,mem_fifo_temp
+	istore 1,rega
+	rtn
+	
+	//fuction fifo_out
+	//rega pointer to fifo memory
+	//pdata  data from fifo, blank mains fifo empty
+fifo_out:
+	bpatchx patch21_5,mem_patch21
+	arg UTIL_FIFO_LEN,loopcnt
+	ifetch UTIL_FIFO_LEN,rega
+	rtn blank
+fifo_out_loop:
+	ifetch 1,rega
+	nbranch fifo_out_end,blank
+	increase 1,rega
+	loop fifo_out_loop
+	branch assert
+fifo_out_end:
+	arg 0,temp
+	istoret 1,rega
+	rtn
+
+	//fuction fifo_is_empty
+	//rega pointer to fifo memory
+	//blank--- fifo is empty
+fifo_is_empty:
+	ifetch UTIL_FIFO_LEN,rega
+	rtn
+
+	//fuction fifo_is_full
+	//rega pointer to fifo memory
+	//blank--- fifo is NOT full
+fifo_is_full:
+	ifetch 1,rega
+	rtn
+	//rega pointer to fifo memory
+	//blank--- fifo is NOT near full
+fifo_is_near_full:
+	ifetch 2,rega
+	rtn
+
+	//rega pointer to fifo memory
+	//count output via pdata
+fifo_content_count:
+	arg 0,temp
+fifo_content_count_loop:
+	fetch 1,contr
+	loop fifo_content_count_loop,blank
+	increase 1,temp
+	loop fifo_content_count_loop
+	copy temp,pdata
+	rtn
+
+//input pdata, temp, return small in pdata	
+not_greater_than:
+	isub temp,null
+	nrtn positive
+copy_temp2pdata:
+	copy temp,pdata
+	rtn
+
+
+disable_positive:
+	force -1,null
+	rtn
+enable_positive:
+disable_zero:
+	force 1,null
+	rtn
+enable_zero:
+	force 0,null
+	rtn
+
+enable_user:
+	enable user
+	rtn
+	
+disable_user:
+	disable user
+	rtn
+	
+enable_user2:
+	enable user2
+	rtn
+	
+disable_user2:
+	disable user2
+	rtn
+
+enable_user7:
+	enable user7
+	rtn
+
+disable_true:
+	disable  true
+	rtn
+
+enable_true:
+	enable  true
+	rtn
+
+disable_blank:
+	setarg 1
+	rtn
+
+enable_blank:
+set_pdata_0:
+	setarg 0
+	rtn
+
+//input pdata :sum
+//output pdata :sum
+cal_sum:
+	sub loopcnt,0,null
+	rtn zero
+cal_sum_loop:
+	ifetcht 1,contr
+	iadd temp,pdata
+	loop cal_sum_loop
+	rtn
+
+	
+reverse_byte:
+	copy loopcnt,pdata
+	rtn blank
+	copy contr,pdata
+	iadd loopcnt,pdata
+	increase -1,pdata
+	copy pdata,contr	
+reverse_loop:
+	ifetch 1,contr
+	increase -2,contr
+	istore 1,contw
+	loop reverse_loop
+	rtn
+
+
+lshift14:
+	lshift16 pdata,pdata
+rshift2:
+	rshift2 pdata,pdata
+	rtn
+
+lshift6:
+	lshift8 pdata,pdata
+	branch rshift2
+
+/*	
+savelist:		
+	store 8,mem_pdatatemp
+savelist_1:
+	fetch 1,mem_seqi
+	rtneq 0x7f
+	lshift3 pdata,pdata
+	arg mem_savelist,contw
+	iadd contw,contw
+	fetch 8,mem_pdatatemp
+	istore 8,contw
+	fetch 1,mem_seqi
+	increase 1,pdata
+	and_into 0x7f,pdata
+	store 1,mem_seqi
+	fetch 8,mem_pdatatemp
+	rtn	
+
+le_savelist:
+	fetch 5,mem_sync_clke
+	store 5,mem_pdatatemp
+	fetch 1,mem_le_ch_mapped
+	istore 1,contw
+	fetch 2,mem_le_event_count
+	arg 0x0fff,contr
+	iand contr,pdata
+	setflag match,15,pdata
+	setflag wake,14,pdata
+	setflag sync,13,pdata
+	setflag attempt,12,pdata
+	istore 2,contw
+	branch savelist_1
+*/
+
+clear_wake:
+	setarg 0
+	store 8,mem_gpio_wakeup_cfg
+	set1 25,pdata	//gpio22(ice) enable wakeup
+	istore 4,contw
+	rtn
+
+
+generate_random:
+	arg 16,loopcnt
+generate_random_loop:
+	random pdata
+	istore 1,contw
+	loop generate_random_loop
+	rtn
+
Index: read.txt
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/read.txt	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/read.txt	(working copy)
@@ -0,0 +1,514 @@
+         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f 
+     0 : 0b 00 0a 00 40 00 00 00 00 00 00 ea 17 14 5f c2 
+    10 : ce 77 2a cd 30 c9 be 38 ff e5 81 aa 55 30 17 f9 
+    20 : ec ba 80 5e 71 16 b6 f9 5f 84 cb 5d f3 57 87 5a 
+    30 : 4e cd 6e af d3 e8 42 dd e1 66 4d b4 c9 08 2d 1c 
+    40 : 70 d3 50 2a 64 ec 36 67 66 01 09 ef e3 fd 39 23 
+    50 : ca 6f 34 c7 0f 6b 3c 32 78 c4 39 26 3d d2 f7 fa 
+    60 : 9e 61 84 47 1a 57 77 eb 48 9c a3 d5 1f 5b da 1d 
+    70 : 00 a3 78 84 5e cd 87 18 56 07 1a 76 8d 06 b1 6f 
+    80 : c1 15 2a c0 2b 90 b4 84 fa c8 45 06 83 cd a2 26 
+    90 : 2d f9 54 b4 02 0c c5 a4 e8 d8 7e 6b 42 ae 06 d8 
+    a0 : 91 07 3d bd 84 a0 d9 04 c5 af ef a8 5d 4f f3 0e 
+    b0 : f2 fe 57 f8 03 aa 79 d4 71 8c e8 79 da 87 f0 ed 
+    c0 : 6a 2a a0 ba 53 76 22 a4 8e 66 6b f8 b5 42 90 87 
+    d0 : 8d 02 81 f4 56 0a 1a 5c 7a 01 4f ec e3 1e 67 03 
+    e0 : 2e ca 55 af d8 20 1b 69 af 1b 56 cb 46 62 a3 ca 
+    f0 : ed 10 51 e2 c2 42 c9 d0 4c 2b f9 a1 3a b5 8e 96 
+   100 : 9c 21 9f 30 6d f7 6d 38 2c 28 03 dd 8a 9d 1c b3 
+   110 : 13 c1 e6 b2 26 de df 53 c2 2a e9 82 fb 24 ef de 
+   120 : 27 a1 48 0f ad 93 46 f5 de 8a 34 ca 3c e4 55 f2 
+   130 : 26 de 93 f6 0f 1e f6 0f 9d 5e 2c 9f dc a3 0e 83 
+   140 : 82 ed 7e 98 d4 1f 19 12 aa 02 52 21 79 92 29 e0 
+   150 : 92 fb 80 a4 df ec bc ba 07 eb 41 c4 d0 d9 b6 8b 
+   160 : 20 2a cf 07 9c 08 3d 4a 8a c3 b9 dd be fa 33 c6 
+   170 : ed e0 f9 08 2a 54 c0 c4 5c 5b 4f fe 07 07 4f 51 
+   180 : 6f 4b 80 5b bf c4 1e ff 0f 9f 00 39 d5 50 7a ee 
+   190 : 9f 5e ca c8 61 cd e1 ec 50 2c fa 37 f7 cc 27 de 
+   1a0 : 13 c7 e0 6e 3e cb 2a fa c3 8e 28 62 c1 7f 21 62 
+   1b0 : 3a 54 2f 81 25 f0 80 54 83 67 bc 58 5a 6b 83 65 
+   1c0 : 0a 48 3b c0 19 80 73 bf 76 af da 5b 9a 1f a3 7b 
+   1d0 : ab 43 28 2f f4 f2 d2 27 f2 1a bd ba 2f a6 07 d5 
+   1e0 : 2c 3c 0e 7c d7 85 ac 59 e9 9c 2b bb 1a 82 34 9b 
+   1f0 : c4 14 f4 03 c3 b8 97 bb 2e 7b 7c b4 96 bd 81 84 
+   200 : 61 ff 1d 03 6b d9 21 5f c7 fe 11 f6 a6 49 78 12 
+   210 : 42 87 a3 ef e4 85 fd 49 08 aa 93 8e ed f0 bd be 
+   220 : 10 52 cb 2c c5 0b 7c 66 66 4b 9b 5e 38 4e d9 f1 
+   230 : 1a c2 9c 41 97 fc b0 5a 39 06 f2 40 45 a6 ed 71 
+   240 : 96 97 76 f7 dd af f1 f6 f7 c9 03 fa d0 88 fc 64 
+   250 : 80 bd 84 fe b1 4a c1 9b 48 cd 10 af d9 91 10 6a 
+   260 : 5c e3 d3 fb c0 7c 64 7f 62 5b a5 91 ae 6c a0 b4 
+   270 : b4 a7 59 81 1f 31 6a 67 c0 8c 9d 98 a7 af bc 3d 
+   280 : fa c0 36 c9 d6 ad a4 3e 13 ef e8 e6 b4 c6 4e 3e 
+   290 : 53 3a 44 61 43 ca 30 a4 9b d1 f8 c4 71 01 4b 4d 
+   2a0 : 48 aa 9b 6d af 63 a3 16 b3 22 21 cc 66 15 41 5a 
+   2b0 : cc 9c dd 36 5b e7 59 3f 8e 8f 7d 4c b4 d3 b8 95 
+   2c0 : 81 90 9f 6b 4e ae d7 1f 2b ca 0f e1 27 3a 6a 04 
+   2d0 : 3c e0 2d bd e2 17 a7 68 44 16 b3 77 95 eb e6 4d 
+   2e0 : 49 51 b7 66 7c 8f 2f af 79 e5 6e 0a 8b 0c d9 61 
+   2f0 : 93 af c1 7a 4d 23 98 6a bc 20 29 2e 64 dd 29 0b 
+   300 : eb 08 46 6b f5 6e de fd a3 ad 3f cd 05 b0 17 b7 
+   310 : 76 4d be 9f 94 9c 61 9a 9a aa 86 00 57 a1 c4 be 
+   320 : d5 25 7f 04 36 fb 50 df 87 a2 5f 18 a9 bb 3d 98 
+   330 : 6a 33 b1 61 70 7c 30 19 35 ab 13 0f 37 ca 56 39 
+   340 : 4c a9 c5 97 f4 61 85 db a2 53 22 90 91 a9 1b e2 
+   350 : f7 2d fd b9 d8 9a b5 28 d4 5f 79 ce 03 33 a2 ce 
+   360 : 88 ed 26 fa 66 b6 bf 12 a3 86 d5 df 67 30 06 15 
+   370 : 85 6a a0 f7 c8 64 da 35 28 7d f3 37 9c d6 98 70 
+   380 : 5b 50 d2 09 56 86 08 12 f8 fb 38 5a 19 e2 a2 04 
+   390 : c5 4e bf da 3b 48 e3 c8 3c de 0c f6 d6 fa 99 ad 
+   3a0 : 22 5c 95 28 92 96 b8 4e 5b 16 5e 27 3f 07 82 b8 
+   3b0 : 1c eb e5 85 f8 17 03 bf b7 df cf 91 f5 d1 1d 00 
+   3c0 : b1 4e 36 24 97 a2 77 b6 11 a0 6e f7 15 ed 26 67 
+   3d0 : 35 7e 62 51 bf 0c 2e 31 be 29 e5 7b 9e 49 19 6f 
+   3e0 : 0c 39 53 6c dd 6c 32 03 d3 6b 79 21 6c b1 ee 70 
+   3f0 : 20 68 ea d5 5d 6f 13 b3 93 74 67 af ee ea 56 4c 
+   400 : cf 4b b5 19 e9 1f 6c 48 38 f3 b8 0b b4 6e a9 fd 
+   410 : e0 79 ee 84 b9 93 80 51 3d 6e e4 97 db 21 dc 08 
+   420 : 40 aa 50 a6 4f d9 3d 6d 22 dd 59 88 68 ac 1d 14 
+   430 : 0c 05 3a 50 ac 5f 68 8f 8d 48 d1 9d bb ed 87 4f 
+   440 : 91 b6 9d c7 01 7f 9a 4b df f5 8f e5 07 8b ec 87 
+   450 : e0 f9 14 96 8e 86 bf a5 6d 74 8a 9f 42 c5 3e 77 
+   460 : ec b1 1b d4 f9 90 69 da 66 f7 a5 7f 15 bf c5 47 
+   470 : ab 76 a4 13 27 c4 9f fb cd 32 cd 0a 6c 32 4a 62 
+   480 : 43 05 7b c7 81 d4 08 00 69 f2 39 80 bc d9 ea d5 
+   490 : 01 93 09 6e a8 1b 09 b7 49 4b 4d 25 b2 a0 79 6a 
+   4a0 : 01 77 1a d1 fc b8 15 d8 9d 14 d7 5a 97 fb 53 f2 
+   4b0 : 1c f3 0c 7b 19 6b 13 f4 d1 a2 20 4b 08 e7 13 01 
+   4c0 : 3b 3c 3d cc ad 29 45 c6 1b 40 98 ac 27 03 19 bd 
+   4d0 : 53 20 16 cc ea 62 3a 26 c4 be b2 18 fb 8a ac 2d 
+   4e0 : 33 ed 7a 4b f4 2c 4a e1 0f b6 b5 bd dc c0 ab 91 
+   4f0 : c4 f7 17 ef 4c be d3 85 b3 ef ed c0 89 4e a2 0a 
+   500 : 5e 55 bd 62 7d bb c3 04 df 3b 72 17 a2 b4 8b 45 
+   510 : c7 4b 4f 9c 7f 6d 49 c9 91 ae 36 b0 dd 39 b7 ac 
+   520 : 5e b2 26 75 7b a2 bb 3c 70 3b ab d5 c5 2f 72 f0 
+   530 : 16 f4 7c 33 a7 7f 58 7d 8c e9 ee c8 ad 03 02 b5 
+   540 : 10 9f f9 21 c7 bb 3f f8 a7 51 fa 4a 1b 1e 10 8c 
+   550 : 8c 9e a1 ac ac 09 6f 35 82 ed 7f 98 1c e4 f8 40 
+   560 : 61 bf 9c 1b bf df a8 94 93 ec f3 54 e9 6c 51 4f 
+   570 : 80 5e d9 eb 44 ae 94 21 6e 74 2c b7 23 be 6f b0 
+   580 : b7 0e e0 32 f3 d3 1b 65 91 02 a9 fb 02 64 82 06 
+   590 : 3f ff 07 f0 59 d4 b0 8e a2 87 c4 89 32 55 6f 4a 
+   5a0 : cc bb 5f f0 a7 ef 02 9c 84 89 5f 40 a3 97 ee 88 
+   5b0 : 88 6f 65 e7 6d 53 d0 6b 72 3e 25 ee 00 e1 25 03 
+   5c0 : 5f ba e8 ea 6a ec a5 7b 2f 52 f3 f1 ff e8 30 53 
+   5d0 : b9 87 57 ce 28 98 30 35 d1 7e c7 fd 52 3e 37 d0 
+   5e0 : 36 b3 b1 12 72 8a 61 aa 3f 09 35 9e 0e 05 b1 19 
+   5f0 : 7f f0 e1 7f be ee ea 3c ef e2 28 1b 2e 0d 23 5f 
+   600 : 7f fe eb 8e 0a 41 be 48 cd 4c e0 cd 4d 04 5f 10 
+   610 : 6c b0 93 f4 e6 ed bf 13 3e 0f 7e 67 39 e9 d5 a3 
+   620 : 37 66 11 d8 cd d0 1d 4a 7e 3c d5 e7 60 35 6e a4 
+   630 : 35 8f c1 76 64 26 a7 01 79 72 04 b9 e8 2e 86 86 
+   640 : 24 a0 a1 e1 2e 45 88 1a 4e 44 60 4e 86 6a 33 5c 
+   650 : 80 25 6a 03 b6 9b 35 60 ee 56 c3 8e 09 6e dd 3b 
+   660 : ac 05 12 12 e7 cb 9f 62 b6 94 e1 76 47 ef f3 61 
+   670 : 09 ca 90 4a 09 3d ee 6e 7e ea 5f d1 b3 ab 96 6a 
+   680 : 66 5f 69 1a af 8d b1 d2 4a 12 52 62 e2 1b a5 59 
+   690 : 26 a2 94 fc fe a2 b9 a3 40 e8 9d c8 c6 2a cb 01 
+   6a0 : b6 9d 76 51 b5 94 34 a7 5e e4 9e a1 f0 1a cb b5 
+   6b0 : b2 f8 f8 83 41 cf 10 c4 1e 56 6e 51 7a ff 49 40 
+   6c0 : bd 2c 74 5c 13 4b d6 65 22 66 14 41 85 8b ff 35 
+   6d0 : ed a1 b8 cb 54 ea 9d 51 0d 94 a3 89 72 1d be 45 
+   6e0 : 5e e5 51 bb fa 6d a8 ff f4 4c 80 63 52 b9 cd c8 
+   6f0 : 03 f9 03 4f 65 ab 14 00 10 fa ed c9 37 a2 6f 38 
+   700 : 65 4b ea 5a 0f cd 65 fa 90 eb 67 c6 f0 d5 37 8b 
+   710 : 2b dd a4 fc e9 05 15 ed e4 e7 38 50 be 8a bd fe 
+   720 : 5c ef 2f 63 48 5f d1 d7 36 46 74 7d 0a a0 c3 4b 
+   730 : a7 14 cc 57 aa 84 fc ff d3 6d 5d 83 78 2a e1 d2 
+   740 : 16 d8 31 08 25 80 b5 28 48 78 db c0 5c 18 03 7b 
+   750 : ef c0 78 f7 26 db f6 d1 67 72 fe 7e dc 1e 65 d7 
+   760 : 5e e5 53 9c 36 ed 98 8d b7 90 96 35 07 c9 16 8f 
+   770 : 0b be cc 93 ec e7 5f af 67 d6 65 50 e0 62 d6 6d 
+   780 : d0 df e9 a3 0b a2 36 5d 4c be 85 4f 0b d5 63 ab 
+   790 : 92 5d 61 67 77 91 69 67 b3 b2 2c ab b8 18 00 28 
+   7a0 : 3a 8f 91 5a 2f be 9e 9b 15 b1 54 e6 29 6b 18 81 
+   7b0 : b1 5a 3a c4 c2 1d c6 49 5c 28 72 ee f1 da 24 b3 
+   7c0 : 27 0a fa 13 9c a9 8d a2 27 fb 34 6f 89 a0 28 b7 
+   7d0 : a0 be dd 2d 59 68 e4 bc 35 92 7b 24 97 ed 95 08 
+   7e0 : 0f 72 ef ae 8d 20 f5 85 7d c4 4a 00 f3 70 a7 d7 
+   7f0 : ab 57 e3 96 ce 05 e9 f0 4a 47 09 f4 11 75 3d 15 
+   800 : bc 33 fd bf 6a 98 34 fb 39 9b a6 68 e1 95 1f 99 
+   810 : 09 c6 88 23 9a df 34 c7 5b e2 f3 1e 4e 17 dd fe 
+   820 : ac 60 bb 3b 27 b5 71 e7 5d 03 e2 8d 74 0f d3 05 
+   830 : d8 cb 72 b3 ed d6 ac 7c 0f 5b 63 b4 1f 39 58 dc 
+   840 : b3 7e aa a8 0f 8a 41 12 8e 38 e6 9e cd 24 97 59 
+   850 : 89 d6 f2 dc fa f8 49 82 86 68 d8 39 66 d6 3a 46 
+   860 : c3 53 b5 45 29 cf 10 ae 2a 8a 85 2d a9 f2 83 9e 
+   870 : 46 9f 6a d5 42 6c 33 5f a9 8b 0e b8 8f 28 0c b9 
+   880 : 6f de 04 eb ca 0b fe 75 a3 8c 65 9d 49 5a 62 cb 
+   890 : e3 64 f4 63 6a 9b 14 fc fa 33 28 b6 99 19 88 96 
+   8a0 : d6 d2 99 67 e5 78 9f 45 cf 5b 4d 5c cd 7b 60 06 
+   8b0 : 10 d9 80 6d b4 6d 31 6e 32 bd 0e 59 9a 29 87 a7 
+   8c0 : 95 04 3b ba d1 7c 4b 22 02 7c 5c c9 08 af 44 cc 
+   8d0 : aa d0 29 2b 86 17 e6 64 d4 e3 0d b6 da 4e f0 1a 
+   8e0 : 66 f4 19 f6 fd 25 85 8b d9 5e 98 6b 03 d5 94 0b 
+   8f0 : ff 61 11 81 b3 fd 35 09 1d 5e 86 45 42 59 c6 33 
+   900 : a5 62 42 b5 a0 85 90 64 2e 35 bf 64 13 74 3d 0a 
+   910 : df 4d 16 12 95 e0 c3 5c ac fb 86 43 47 04 3c 41 
+   920 : 2b 61 28 36 25 5d e3 5a 9c 35 8a 10 09 ea 19 10 
+   930 : 54 1d 3a 97 bf a1 dc 16 58 38 68 83 fc bd 38 56 
+   940 : 60 9f 98 de 7b 9c 70 3f 35 ab 04 eb 1f 5c 0e 9d 
+   950 : 5f fd bc 8e 4b 9e 54 55 43 ae dc f0 10 0c e9 aa 
+   960 : bf 60 58 7d e9 1a d4 23 20 8f 7a 9c 4a ed de d4 
+   970 : 56 f8 9f 09 fa ed d7 cd 1c f7 05 a4 9a b5 37 a2 
+   980 : cb c5 d1 29 4a ea 4c 53 1f 58 f4 47 ba 26 52 b5 
+   990 : ac 17 18 ce c1 86 cc 29 53 ee a4 86 db 0b be 94 
+   9a0 : 0c 28 d2 42 45 d2 74 36 a4 b9 91 8f 89 57 fd ff 
+   9b0 : 5f 16 01 64 fd 24 51 0f 13 5b 20 89 a6 3b f1 e2 
+   9c0 : 47 60 2d ce e3 d4 98 d1 7e db 67 d7 af 24 20 c3 
+   9d0 : 0b 30 fe 38 de 15 7f 8a 8e 1a 29 85 54 7a b1 2c 
+   9e0 : 0b ca 36 01 05 6f ab a1 c1 2d 69 cb 6c 11 6e e8 
+   9f0 : a2 fe 66 cc 7d 81 01 a8 62 b8 f1 6f 1f 9f 31 12 
+   a00 : b2 f2 63 3c 7a 45 bf c7 9c fe aa 93 ce d2 59 7f 
+   a10 : 46 0a cb 6a 6c 11 3f cd 41 3f 7a 6e cf b1 7c 40 
+   a20 : d6 9f c5 0f 17 98 cf 4f 3e 00 3f 73 0b 6f 36 e4 
+   a30 : ba dd 7a d1 76 b8 32 f0 d8 2c 23 3e d2 56 94 f0 
+   a40 : 18 6b b6 68 86 15 4b 5c 47 c8 8b f1 d1 aa d9 16 
+   a50 : ab 19 67 93 cd 31 f1 37 53 ab e8 1e b1 d0 72 7e 
+   a60 : ed 9f 16 cd cd c7 17 94 f7 89 0b e9 9e 32 dc 20 
+   a70 : 7e 74 bc 47 12 6b 5c 3b 8c 5a 2b 90 a0 6e 40 59 
+   a80 : 2c 9b 22 bd 4a 38 04 ec c6 14 08 09 1e 8a 02 7e 
+   a90 : c5 b8 de ad 97 24 25 80 43 d6 7e 21 01 0d 5d f5 
+   aa0 : 3b 41 01 d2 57 22 95 89 3e 70 09 ce c8 9b 1e d4 
+   ab0 : e9 2b 82 4a 66 79 ec ec f8 8b 0c ca 45 fa ca f6 
+   ac0 : c9 95 37 f5 7f b9 da 75 5f e5 60 2f 09 7e 87 d0 
+   ad0 : e9 73 50 f2 6d ae 0a 57 40 94 45 18 67 7d f9 fb 
+   ae0 : 9f 79 42 f7 68 1d 92 5e a8 be 8b e0 25 9f a6 1d 
+   af0 : 2f a5 38 3f 14 c9 a0 d9 d9 d7 51 7b fc 00 ea 62 
+   b00 : 63 2a b2 aa a2 a1 27 fd 4b 46 06 5f 7b 38 07 c2 
+   b10 : 05 8b 7d dc 0a 63 d5 3e 71 98 cd e0 78 e8 da 15 
+   b20 : 72 db 13 02 b6 ec 60 fc a0 d2 77 67 29 93 61 ac 
+   b30 : cf df a5 72 d8 6b 25 4b 8d 99 b8 c6 c9 bc a9 b3 
+   b40 : 42 7d c3 25 dd e5 a2 fb ff e2 b3 3e b2 1e bd 22 
+   b50 : 82 06 38 32 5e fb c3 a1 f6 0a dc 7f ba 4b 33 4a 
+   b60 : 2a 93 38 58 4d e3 9b 42 e4 d2 15 ef 94 90 2a a7 
+   b70 : 88 87 0d 47 cf c2 f8 16 3b eb a2 95 67 c8 44 1f 
+   b80 : 15 d8 00 b9 1b 41 e7 ae d1 bb 9e 70 3f 19 d0 98 
+   b90 : 38 f9 ff 5f ad 32 33 eb 2d c1 1f cb 7a 5e d4 15 
+   ba0 : c3 e8 b8 fd 7d 2b b4 8f f6 10 e7 f0 ea 1b e1 a2 
+   bb0 : a7 94 77 52 11 32 87 f5 27 46 34 26 bd ed a2 fb 
+   bc0 : 5f fb 72 da 62 b6 7b af 1f 52 b8 54 37 9c 74 b2 
+   bd0 : c4 87 9a 02 58 83 72 f1 ec da 2f 50 bf 75 5b 3c 
+   be0 : 69 07 27 bf e8 f0 b8 38 b9 34 76 12 2b ed e4 2c 
+   bf0 : 5a 70 7f 14 6c 17 e2 cc 7d 30 94 68 45 ca 3a a2 
+   c00 : ac 9a 4b bb 8d f4 89 9e 60 ca 95 27 58 9e 73 ad 
+   c10 : b0 c5 5a fe 7d 35 4b ad 00 db 75 d7 32 1d b2 9f 
+   c20 : 08 cd b2 26 2c 60 95 1c a6 b4 ad 32 f3 70 87 45 
+   c30 : 17 77 51 66 33 ea d7 95 78 f3 ea 4d 32 b0 14 43 
+   c40 : e2 12 9e fc 15 75 45 6d 73 14 82 54 a4 d0 eb bf 
+   c50 : 09 34 73 10 f5 13 5f 2d fe 64 ee a7 e2 63 cc ff 
+   c60 : 4b 84 0f 6f fa 8b f3 b4 3a ee a9 83 59 e3 f3 ac 
+   c70 : 95 ae 01 69 b7 89 7f fe a2 2c c3 5c 52 d5 98 fb 
+   c80 : 0a 10 9d 2e d2 3a b8 ee 4a 07 23 ec bb 8e 13 62 
+   c90 : 5a 1b 5c d4 06 5e 90 5f f1 c2 11 01 81 5e bf 5b 
+   ca0 : 4d 76 3c c9 41 f6 ff 0b 69 12 bb 7a cd 95 0d b0 
+   cb0 : b0 a5 1f ca 9e 16 4d e2 66 90 c1 c1 7b 04 a4 2d 
+   cc0 : 5a f9 0a b4 48 a5 1d bd 16 ea 3d 0a 75 cb b6 74 
+   cd0 : ed 52 12 c9 d1 b0 fb 76 6c 7a c0 cf 32 20 f2 85 
+   ce0 : 9c 56 ef ac 74 39 86 67 7f e2 47 d7 b0 2b ff fb 
+   cf0 : 05 35 86 fb 2e ba 74 a3 e6 01 fb 61 3a b3 54 ca 
+   d00 : ef f7 b8 9f 6e a6 88 96 93 1c 58 df 49 84 74 6d 
+   d10 : 69 9b 5c 5b f8 1f f2 6b 51 ab 2d 87 4d 04 49 5f 
+   d20 : dc 10 e7 25 c5 d0 3a b4 39 98 b8 8d 51 cf 36 ab 
+   d30 : 77 45 01 ce 49 b6 8b ce c5 41 09 bd 89 95 1a 09 
+   d40 : 58 86 14 d0 70 6f ed 1b c7 fc 9a 35 d1 12 73 e8 
+   d50 : 7c 75 23 9a 17 05 69 e3 10 e0 b8 f7 c2 6d c0 4b 
+   d60 : 5a 37 5c 10 a3 a8 ee 7f 06 31 34 f0 2a 58 1c c6 
+   d70 : 42 52 51 66 a5 19 f2 b9 76 87 b7 fe 81 70 8f f5 
+   d80 : 2e 8a e5 bc 37 5c ae 17 14 41 2e f2 c5 0d f7 b8 
+   d90 : ff cd 38 89 9d 8d 96 7c 3d f8 4e 3f d4 2f 14 87 
+   da0 : 74 5b 56 58 51 45 a0 c8 48 dc b6 54 86 d9 4d 0a 
+   db0 : 36 f3 d3 60 8a d5 d6 77 01 28 80 60 1a e4 0f bd 
+   dc0 : b7 f5 17 0f fa 35 54 3a 03 5b 3e 3a da 51 5b bf 
+   dd0 : 1c e2 74 ff 2c 11 df ec 51 aa 82 9b 3a 36 ee 07 
+   de0 : de 64 79 4a 90 08 9e 03 b7 66 6f 9e ab b4 3d d4 
+   df0 : df 85 dc 8b 7f ac a4 2d d7 b6 d4 9d de 3f c6 bb 
+   e00 : 5d a8 3b 17 87 e2 22 c4 71 ba 3c c3 22 00 be 99 
+   e10 : e9 7e 51 d5 8d c8 9c b7 6c cf 0d 0d 33 98 97 cb 
+   e20 : db b5 08 e0 22 21 e9 67 98 ab b1 1c 02 d7 f4 f7 
+   e30 : 2f 8d 79 54 98 b7 93 1a be 9d 22 72 f0 1a b2 3f 
+   e40 : 7d fd ac e1 45 ba ea bf 1b de 72 1a 37 9e c1 60 
+   e50 : 17 5e f0 4c 27 65 1d a0 68 7d 25 46 77 03 bd bd 
+   e60 : c0 08 47 2f 87 86 79 9d 25 51 fc 86 1a 9f f5 e2 
+   e70 : f2 62 c7 f7 bb 84 54 14 4e e5 ad 52 0b 4d ce db 
+   e80 : f6 55 52 9b 9a a0 29 c5 f7 3c 64 a6 ea 37 0a b9 
+   e90 : 21 03 8b f0 b5 05 a0 06 55 d3 e8 61 5a 69 d9 d5 
+   ea0 : 0c 99 1c 4b 81 1d e4 3b 10 31 1d 82 28 ba ea cd 
+   eb0 : 66 b9 0a 98 cb f8 b9 ab 3a ac 27 73 3e d7 d3 c7 
+   ec0 : 1a 31 f9 72 08 5f 8f 0d 30 e6 3a 9d ae ef 4a 95 
+   ed0 : f3 1b ee a0 10 35 3f d0 35 f4 cf 9f a9 5d fc ee 
+   ee0 : 2c f5 0f bc 4c 8e c1 0d b7 e6 6d 32 71 54 1e e3 
+   ef0 : f0 7d d0 36 ef 65 bf 9e b4 d1 5a 07 42 44 58 37 
+   f00 : 57 9c c7 80 e9 d9 d2 06 4e 2a 14 19 7d de 46 80 
+   f10 : 99 e9 31 6d a3 fe 65 03 be 46 31 61 17 7f 11 0e 
+   f20 : b0 90 20 d7 41 30 cf 24 8e de 3b 1f e5 1b af 29 
+   f30 : 93 a9 8a 6f 68 98 10 41 9c e3 90 51 c2 7b b2 70 
+   f40 : c2 bf 66 98 a1 d2 c1 76 dc fd 17 f9 86 bd 7f db 
+   f50 : c6 1c 78 aa ce 32 2d 94 13 26 11 4f 15 97 24 e1 
+   f60 : c9 e3 7e b6 45 68 55 52 1a 78 10 bc 88 4b 27 a0 
+   f70 : 55 e9 06 c6 d5 91 20 b3 21 47 0a b2 57 70 f3 22 
+   f80 : da 6c d4 f3 46 ad 0b d0 ad a8 aa f0 43 0e d5 c1 
+   f90 : 75 79 fc 51 1a ae ef e6 a7 a4 c4 a9 91 3b f4 70 
+   fa0 : c4 06 52 56 54 8d 29 ae 77 50 76 84 1c 64 20 eb 
+   fb0 : be 22 8f 1d eb d8 92 0c 5e 57 6a 24 76 1e 9d b5 
+   fc0 : 05 4f 5f 7f 3e 33 b5 6a 3d c4 44 9d 30 09 8f e6 
+   fd0 : 45 84 d3 3c 7f 0d 18 50 c1 6a 69 9f 98 0b e6 88 
+   fe0 : 0b 4a 55 02 ff a8 f7 9d e8 c9 5e 0d 62 ff 74 8d 
+   ff0 : dd 6c 0c 28 a7 ff da 2a cb c0 31 da 9d 4d c0 1e 
+  1000 : f0 24 5a 5c 75 70 e1 e2 c7 d7 fb 4a 85 ff bc 4c 
+  1010 : 50 13 e4 d1 4d bd 15 7f b3 1f 89 0a 5a ed 05 08 
+  1020 : ab c6 a1 ef e0 67 d8 bc 87 ff e5 ff e8 eb 56 a0 
+  1030 : a8 b2 36 d3 71 9e 7d 0c 8b cc 62 2c 1f e1 0c c8 
+  1040 : e2 d2 7d 31 5c 97 8e ba 10 15 77 8b c6 c3 2f e1 
+  1050 : 55 04 7e aa 0c 31 8e 3c d7 a2 1f b6 67 07 6f a2 
+  1060 : ed 84 50 2a bf c5 90 12 96 f7 0e 9b e1 9e 7e 7f 
+  1070 : 3c 2c ac ba f7 c0 f6 de 42 f1 31 d3 82 d2 fd 28 
+  1080 : f5 e7 99 18 ac 27 41 9a 48 9b f2 59 17 8f ee 45 
+  1090 : 82 44 7e 5a 47 8b 2e aa 13 74 c7 99 2d 62 9e da 
+  10a0 : bd cf 15 a2 20 07 1e 03 28 c0 ac a1 25 28 29 02 
+  10b0 : 2e 35 98 70 70 87 53 c7 2e 61 42 97 eb 3d 40 f5 
+  10c0 : 11 62 63 60 72 2e f3 a1 21 a3 d8 38 3c 88 91 36 
+  10d0 : b8 46 b1 2c 44 ac 31 55 42 de 43 0a 23 6e fc 0e 
+  10e0 : 34 1a d3 62 57 f5 fb 95 b8 78 3d 14 3b 32 f5 f0 
+  10f0 : 2e f4 cf e9 06 21 e5 d8 5c a5 a4 27 25 e1 42 21 
+  1100 : b7 3e 31 e8 d5 8c 84 2a d5 0c 09 a4 6f 89 31 64 
+  1110 : a1 c9 6b 8d 87 1f 86 ba 50 de 8a 45 81 5b 45 77 
+  1120 : 23 e8 26 db b1 d6 b4 ae 97 e7 10 f6 90 e2 f7 2c 
+  1130 : 5a f4 6f 22 55 94 df 0e af 20 b3 d8 73 cf a9 15 
+  1140 : f3 d7 71 dc 0c bb 2d 67 13 7a da 8d 00 aa bf 18 
+  1150 : 98 b2 88 b3 fe 22 52 30 0a 4d d2 8e 69 57 db 80 
+  1160 : 30 3b 77 7a ce 3f ad 48 70 2f 29 07 cf 8d f9 b7 
+  1170 : 4c 49 f1 82 0a 17 3c 56 4a 39 2a 11 4d 26 87 7d 
+  1180 : 16 2a 2c 90 ec e8 42 03 d2 8f b8 43 bb af 2b bc 
+  1190 : 72 92 e9 c9 33 b3 47 2b 41 f6 67 20 87 83 12 e4 
+  11a0 : ca 11 ad 35 8d 7b 28 34 e2 51 ef fd c2 fc 60 c8 
+  11b0 : 47 9a 0a ce bc 98 95 d5 ce a8 d7 af 1f b9 a8 a4 
+  11c0 : 25 78 e9 55 e2 56 b8 04 6d 3b b6 14 06 3f 4f 87 
+  11d0 : a0 41 1e 80 20 9f 09 96 83 97 3d 7c e1 f7 68 bd 
+  11e0 : ec bc 7a 78 2d e3 3b e4 76 66 9a 06 66 25 77 bf 
+  11f0 : fc 7b 26 a5 ae 45 61 e4 83 01 86 b3 24 6f 80 0e 
+  1200 : 03 a0 31 78 74 f0 4b 37 a6 0d d5 ee 8b e4 22 4a 
+  1210 : ec 73 d9 6a b2 5b 6b 3b 3c 42 ab 70 02 09 af 32 
+  1220 : 95 2b 73 a2 3c 50 da 07 37 a1 34 92 51 62 d7 a5 
+  1230 : cc 02 46 00 67 18 0b d7 ba a3 12 9a 92 ac 3d f2 
+  1240 : 4d 0e e0 50 3a 06 04 50 76 d3 df 22 52 e4 5b eb 
+  1250 : 1d bb 0c 42 84 ec 17 57 92 70 3b 13 d2 20 f8 00 
+  1260 : ae 11 be 47 37 19 76 fd 67 a6 76 d0 ac 00 1b 63 
+  1270 : 10 d6 04 ec 4a 90 b8 42 a0 6e 39 59 53 77 46 d2 
+  1280 : 2b b6 cf 2a 1d 6d 3f 1c aa 3c 4b e2 95 e1 43 88 
+  1290 : c9 8f 5b 31 12 62 1b 9d f9 7a 5c e1 e1 58 b9 d4 
+  12a0 : ec 40 1e 03 e8 dd 8d e9 e3 db 74 fd 62 15 5d 7a 
+  12b0 : 06 5c 63 36 05 7c da 3f 70 ba 80 9c 46 48 08 b2 
+  12c0 : fe 78 3c 52 c3 d8 37 7a 9d 3b 0f 69 88 80 92 8f 
+  12d0 : bd b3 48 bc ce 03 48 5a 49 84 06 0f 5a c9 13 1a 
+  12e0 : 15 01 af 45 8f cc 23 2d 00 56 ed 0b 43 19 c8 d8 
+  12f0 : b8 a5 24 63 ac d1 5d 0b 80 6f 00 da 3b 78 9e 37 
+  1300 : 0a 4f fb ce fa 42 1e d6 53 a4 ef 45 ed 8e 74 22 
+  1310 : 34 00 00 1a 9c b6 e4 79 df c8 ee d9 b6 4b fd 8e 
+  1320 : 2a 80 a8 d5 95 87 5e ac ba 3d 01 7c b7 60 90 0c 
+  1330 : 03 9b e1 eb 97 ff e0 fe c9 18 16 97 e7 19 30 66 
+  1340 : 17 dd e5 c2 5b eb 26 45 3e fd 3b 34 1e 42 19 94 
+  1350 : e8 3e 44 69 f0 c4 0c ac d8 c6 9f b3 f5 2e 5d 53 
+  1360 : d8 b6 8b b4 d8 5a 3f da c7 71 31 6b 35 4f 66 08 
+  1370 : 73 14 67 13 0a ac 45 1b aa e0 78 e8 d6 be 90 cb 
+  1380 : 90 7f ce 4d 52 26 d8 6c 03 0a 35 9c e8 69 c2 35 
+  1390 : 92 0a b5 4f c8 2f 79 8a 18 c4 ee 1f f8 27 96 71 
+  13a0 : de 87 69 23 81 48 8b 12 ce 6a 6e 45 cd dd cd 50 
+  13b0 : 5c 61 a3 49 10 70 48 12 2d b2 2f 55 83 bd 84 d3 
+  13c0 : cf c3 2e dd c6 f3 70 ec aa bb b4 b9 d6 90 7d d2 
+  13d0 : d0 2b 5b 16 9d 2f a6 60 f1 b6 2f 9a d3 75 a3 6d 
+  13e0 : a6 f9 43 3b ea c5 41 7f 18 17 69 a1 a5 1a b3 71 
+  13f0 : 76 21 c6 37 7b b8 75 14 71 a9 7c 6f f9 06 41 b4 
+  1400 : 93 ce 01 aa f3 37 38 ca bb 64 2c 01 b3 93 72 b0 
+  1410 : 8b 86 9b 04 36 53 a7 8c 6d ed 92 c4 23 fe e8 c2 
+  1420 : 2e 5f 8d 78 13 6d 47 f2 a4 ed 98 7d 50 1e 0e 9c 
+  1430 : e9 13 c4 8c 75 30 fa 62 10 e8 27 36 fe cc 92 c1 
+  1440 : 36 88 6e 02 8c 20 5a c0 50 5b 36 ee ac ae 41 13 
+  1450 : df 11 4d cb 9f 77 35 ba de a4 0b aa 0a 8a 84 16 
+  1460 : 25 d2 3c 0f b4 c6 93 9f f7 fd 42 79 36 68 54 c1 
+  1470 : b3 52 d5 38 27 50 75 44 a0 ef 04 75 80 2d e5 2d 
+  1480 : 67 4d 8f d5 f3 7b a9 11 01 74 39 38 31 51 25 d8 
+  1490 : f7 96 31 f3 06 72 6c 31 26 ba fc c4 7e cb 0f bd 
+  14a0 : 69 61 75 09 67 ad 93 f6 81 a9 db fe 57 cc ef 96 
+  14b0 : 1a a6 ad 5b 94 92 df 23 01 43 42 6c b2 67 af 6a 
+  14c0 : 53 74 19 b3 b0 b7 ef 14 65 d4 e5 41 52 91 03 33 
+  14d0 : ba d2 cd de 64 1f 88 1d e8 35 93 0b 2f 86 54 fe 
+  14e0 : e9 55 09 75 c6 9e 63 cc 89 0e ae 0e 87 d3 84 3a 
+  14f0 : a8 84 2c 65 f8 30 ff 92 33 c1 bb 38 9b 82 13 7a 
+  1500 : 55 38 37 e3 e5 84 06 68 15 20 bf 15 56 97 b0 bb 
+  1510 : fb 8a e2 2b 54 92 14 3e 87 00 67 99 50 e5 b6 20 
+  1520 : 56 76 f4 be 4a 37 fc 33 93 eb c1 4a 24 2c 8d ce 
+  1530 : 4d 1d 2a ad 6e c2 af 12 49 09 75 8a 6b 8c 6b 44 
+  1540 : e9 cb 6f 38 21 b4 c6 f9 33 55 1c 34 2c ee d8 e6 
+  1550 : 8d 43 1b 46 2c dd 4e 97 af ee 0e 7f 9b 24 09 18 
+  1560 : a0 88 65 1c 05 bc d9 d8 ca fd d3 6d 03 0f 5d d6 
+  1570 : 26 ce 60 74 9e 4b 55 e1 fb 5a 16 cc 6a cc a7 13 
+  1580 : fa d6 d1 66 05 39 bd 29 cb bc 4c 5c eb 0d b7 d1 
+  1590 : f5 b4 4f 0d d0 94 f7 3e bf 56 7b ca 87 cd cd 1e 
+  15a0 : 54 70 e4 5f b7 f8 e1 a3 f3 8f 5c d8 32 c6 2d ea 
+  15b0 : cb 68 8d 45 76 7a f7 74 f3 ba ac cf 65 ea 1f 11 
+  15c0 : 10 83 9e 5b 41 87 ec 3e 02 46 10 7b 43 f6 c1 e8 
+  15d0 : 31 35 cd fe e3 20 6f ef 90 3c cb a6 e0 2a 4f 5e 
+  15e0 : 72 a0 e2 dc 5d 27 ba 67 3a 80 08 c5 b0 da d5 d4 
+  15f0 : c2 79 7c 98 ce 6a 4c 73 29 7e 24 9c 60 f6 e8 c8 
+  1600 : 07 da 63 13 03 ec 92 37 84 6f d1 c0 23 89 ff ad 
+  1610 : 25 fd 37 9a 33 2b 1b 82 82 76 8d bb 9c a8 4b 23 
+  1620 : fc 03 c5 0b 0f a2 90 af 23 04 2b 5b 73 ef 30 1f 
+  1630 : bd e3 9c 61 b0 6a 4d 02 6a c3 f6 db 22 ae ef 0d 
+  1640 : 0e 7e 6a 26 84 23 bd 20 83 1e 6e e3 14 24 3a 55 
+  1650 : 22 a5 8c b8 4c ee 43 81 d7 22 84 f1 d9 29 e5 9d 
+  1660 : ec 8c 22 62 ff 39 d2 bc 5e a1 8e 42 78 29 f4 fe 
+  1670 : 2e 70 35 cd 59 1a 2a 5b 32 0f 0e d4 f2 27 bb 11 
+  1680 : 8e e0 2b 59 fb bd c4 c7 dd 4b 62 0e 8a 01 35 d7 
+  1690 : 97 66 ba 04 22 0b b3 4c ce 1f 78 a0 74 66 8b 29 
+  16a0 : 30 b0 fe 06 09 9e 2c b7 ce fa fd d4 c7 c9 78 9c 
+  16b0 : 11 bf ab 55 71 85 50 3b 3e 59 68 a9 9a 07 50 ce 
+  16c0 : 57 f2 37 e4 ff cc a6 0a ad 71 49 d8 cd 85 6b 94 
+  16d0 : 95 a3 c7 2a 33 e0 ff 72 74 39 df f1 f1 87 91 b0 
+  16e0 : f7 8d 69 9e 75 0b 94 98 a0 a0 3b df d4 57 92 08 
+  16f0 : c2 f8 64 01 24 3d bc 45 2c ec 43 d3 12 9d 6a f0 
+  1700 : 3d bf 38 92 b6 38 a4 6e a4 ae 87 cc b2 f2 3e cb 
+  1710 : 86 d0 26 8e 80 1b 82 35 a4 5e fd 08 82 59 6a 1d 
+  1720 : e7 d9 50 b7 04 4b db c3 01 ea 6a 10 9f d8 0b 6d 
+  1730 : 1d 96 49 c4 5b 42 81 35 31 b3 64 42 35 d1 c7 3c 
+  1740 : d7 49 93 29 d2 08 e0 ad d7 57 30 e2 61 4f ee aa 
+  1750 : 55 40 00 00 40 05 00 33 07 20 01 00 00 f4 58 a5 
+  1760 : fe 00 00 c2 00 11 00 00 04 00 00 02 00 20 00 20 
+  1770 : 3c 00 00 40 04 00 00 00 00 00 00 00 00 00 00 00 
+  1780 : 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 00 
+  1790 : 00 00 00 00 00 aa 55 08 00 13 47 04 09 72 00 08 
+  17a0 : 00 00 0c aa 55 01 00 cb 43 0f aa 55 01 00 ba 4a 
+  17b0 : 01 aa 55 01 00 ec 44 ff aa 55 01 00 eb 44 1e aa 
+  17c0 : 55 03 00 ee 44 01 0b 4a aa 55 01 00 0d 4a ff aa 
+  17d0 : 55 01 00 41 41 01 aa 55 01 00 d2 45 07 aa 55 02 
+  17e0 : 00 f0 45 83 47 aa 55 02 00 3f 46 85 90 aa 55 02 
+  17f0 : 00 42 46 75 80 aa 55 01 00 41 46 63 aa 55 01 00 
+  1800 : 27 46 7d aa 55 01 00 bd 4b ff aa 55 09 00 c1 4b 
+  1810 : 01 51 31 10 50 51 31 20 50 aa 55 06 00 f1 44 3b 
+  1820 : 11 36 55 51 a1 aa 55 01 00 89 45 02 aa 55 05 00 
+  1830 : e3 45 01 0f 0f 0f 0f aa 55 01 00 b9 45 00 aa 55 
+  1840 : 01 00 40 47 02 aa 55 01 00 ca 45 00 aa 55 02 00 
+  1850 : 8b 45 c0 12 aa 55 01 00 3e 46 94 aa 55 03 00 af 
+  1860 : 45 00 48 60 aa 55 02 00 1d 46 0a 00 aa 55 02 00 
+  1870 : 1b 46 50 00 aa 55 02 00 23 47 32 00 aa 55 01 00 
+  1880 : f4 46 02 aa 55 08 00 c0 43 fb 00 48 08 fb 00 48 
+  1890 : 08 aa 55 01 00 94 40 01 aa 55 01 00 c0 40 20 aa 
+  18a0 : 55 01 00 6b 49 20 aa 55 06 00 db 42 7b 83 92 a1 
+  18b0 : b1 c1 aa 55 01 00 93 43 07 aa 55 02 00 be 47 96 
+  18c0 : 00 aa 55 02 00 b5 47 15 00 aa 55 02 00 9b 43 19 
+  18d0 : 00 aa 55 04 00 b7 47 1d 00 21 00 aa 55 02 00 32 
+  18e0 : 43 28 00 aa 55 02 00 bb 47 30 00 aa 55 0c 00 48 
+  18f0 : 43 1f 02 01 05 03 03 12 18 03 19 c1 03 aa 55 10 
+  1900 : 00 a0 47 0f 09 42 54 35 2e 32 20 4b 65 79 62 6f 
+  1910 : 61 72 64 aa 55 11 00 68 43 1f 0f 09 42 54 35 2e 
+  1920 : 32 20 4b 65 79 62 6f 61 72 64 aa 55 0f 00 6b 42 
+  1930 : 0e 42 54 35 2e 32 20 4b 65 79 62 6f 61 72 64 aa 
+  1940 : 55 08 00 d3 42 07 00 07 00 20 00 2c 01 aa 55 06 
+  1950 : 00 9a 47 03 12 18 ff 00 00 aa 55 09 00 f4 49 41 
+  1960 : 70 70 6c 65 20 49 6e 63 aa 55 02 00 f2 49 0a 18 
+  1970 : aa 55 10 00 e1 49 d0 00 2d 12 1e 4b 0f a4 99 4e 
+  1980 : ce b5 31 f4 05 79 aa 55 02 00 fd 49 c1 03 aa 55 
+  1990 : 02 00 bb 4a bd 00 aa 55 08 00 99 4b 01 02 e8 04 
+  19a0 : 21 70 01 00 aa 55 06 00 2d 46 dc 05 84 03 e8 03 
+  19b0 : aa 55 01 00 07 44 02 aa 55 01 00 09 44 0a aa 55 
+  19c0 : 01 00 08 44 0c aa 55 01 00 11 44 00 aa 55 04 00 
+  19d0 : 0d 44 00 07 ff 07 aa 55 01 00 07 4a 1e aa 55 02 
+  19e0 : 00 09 4a e8 03 aa 55 02 00 21 47 02 00 aa 55 01 
+  19f0 : 00 3d 46 64 aa 55 02 00 3a 46 58 02 aa 55 01 00 
+  1a00 : 1e 47 64 aa 55 01 00 3c 46 64 aa 55 02 00 38 46 
+  1a10 : 58 02 aa 55 02 00 25 47 70 17 aa 55 02 00 09 4d 
+  1a20 : 64 00 aa 55 02 00 ec 48 b8 0b aa 55 02 00 69 48 
+  1a30 : 58 02 aa 55 08 00 66 46 00 34 00 00 00 00 00 00 
+  1a40 : aa 55 06 00 01 4a ff ff ff ff ff ff aa 55 01 00 
+  1a50 : 1b 47 01 aa 55 01 00 a2 4b 00 aa 55 0f 00 a8 4b 
+  1a60 : 01 7f 14 01 7f 1a 01 7f 08 01 7f 15 01 7f 18 aa 
+  1a70 : 55 07 00 d3 4b 07 01 02 04 03 05 06 aa 55 02 00 
+  1a80 : df 4b 50 00 aa 55 02 00 e4 4b 58 02 aa 55 06 00 
+  1a90 : cb 4b 13 01 a0 0f 00 1e aa 55 03 00 6b 48 ff ff 
+  1aa0 : ff aa 55 01 00 a4 49 01 aa 55 01 00 55 46 ff aa 
+  1ab0 : 55 04 00 a5 49 7f 06 29 14 aa 55 03 00 27 44 ff 
+  1ac0 : 17 16 aa 55 02 00 eb 43 10 00 aa 55 03 00 66 48 
+  1ad0 : 88 8c ff aa 55 01 00 bc 4b 80 aa 55 01 00 bb 4b 
+  1ae0 : 80 aa 55 04 00 b7 4b 80 ff ff ff aa 55 03 00 63 
+  1af0 : 48 01 02 ff aa 55 01 00 59 46 ff aa 55 01 00 5b 
+  1b00 : 46 05 aa 55 0c 00 8a 48 c2 c3 c4 c5 c6 c7 80 81 
+  1b10 : 82 83 84 85 aa 55 1c 00 6e 48 0d 0e 0f 10 11 12 
+  1b20 : 13 14 85 c4 c5 c6 c3 c2 03 04 83 84 82 c7 80 07 
+  1b30 : 06 81 0a 0b ff ff aa 55 90 00 16 4a 48 00 00 00 
+  1b40 : e4 00 e0 3e 14 2b 04 29 1d 8b 35 1e 1a 39 16 64 
+  1b50 : 1b 8a 3a 1f 08 3c 07 3d 06 88 3b 20 15 17 09 0a 
+  1b60 : 19 05 22 21 18 1c 0d 0b 10 11 23 24 0c 30 0e 3f 
+  1b70 : 36 87 2e 25 12 40 0f 00 37 65 41 26 13 2f 33 34 
+  1b80 : 32 38 2d 27 47 00 7f e2 00 e6 00 46 89 2a 31 44 
+  1b90 : 28 45 42 43 5f 5c 59 2c 53 51 4c 00 60 5d 5a 62 
+  1ba0 : 54 4f 49 00 61 5e 5b 63 55 56 4b 4e 57 85 58 52 
+  1bb0 : e9 50 4a 4d 00 e1 e5 ed ee ec eb e8 f1 e3 f6 f8 
+  1bc0 : f7 f9 ef fa 91 f5 e7 f0 ea f2 fb 90 aa 55 13 00 
+  1bd0 : ae 49 00 29 e8 ed ee ef eb ec e9 ea fb f1 f0 f5 
+  1be0 : 4c 01 00 00 00 aa 55 02 00 ff 49 2a 10 aa 55 01 
+  1bf0 : 00 48 41 0c aa 55 06 00 c3 40 35 3f 64 db 7b 3b 
+  1c00 : aa 55 01 00 a7 40 20 aa 55 03 00 c9 40 00 08 b4 
+  1c10 : aa 55 01 00 99 40 18 aa 55 01 00 1c 41 3e aa 55 
+  1c20 : 0c 00 16 00 00 00 20 00 00 00 00 00 00 00 00 00 
+  1c30 : aa 55 05 00 5e 41 08 0e 05 03 00 aa 55 01 00 68 
+  1c40 : 41 20 aa 55 02 00 9a 40 00 0c aa 55 05 00 43 41 
+  1c50 : ff 04 00 00 08 aa 55 01 00 1c 02 5a aa 55 01 00 
+  1c60 : 38 44 a0 aa 55 02 00 3b 44 bc 02 aa 55 02 00 39 
+  1c70 : 44 90 01 aa 55 02 00 3d 44 03 09 aa 55 01 00 49 
+  1c80 : 41 ff aa 55 3b 27 9f 74 49 41 55 aa bf 77 fb f4 
+  1c90 : 7b 27 83 74 20 15 10 05 37 27 83 74 20 15 10 05 
+  1ca0 : 3b 27 83 74 37 27 83 74 3b 27 83 74 37 27 83 74 
+  1cb0 : 20 15 10 05 3b 27 83 74 20 15 10 05 37 27 83 74 
+  1cc0 : 20 15 10 05 20 15 10 05 3b 27 83 74 00 00 00 00 
+  1cd0 : 20 15 10 05 37 27 83 74 20 15 10 05 3b 27 83 74 
+  1ce0 : 37 27 83 74 3b 27 83 74 37 27 83 74 3b 27 83 74 
+  1cf0 : 37 27 83 74 20 15 10 05 3b 27 83 74 37 27 83 74 
+  1d00 : 00 00 00 00 00 00 00 00 37 27 83 74 3b 27 83 74 
+  1d10 : 37 27 83 74 20 15 10 05 3b 27 83 74 37 27 83 74 
+  1d20 : 3b 27 83 74 37 27 83 74 3b 27 83 74 37 27 83 74 
+  1d30 : 37 27 83 74 3b 27 83 74 37 27 83 74 3b 27 83 74 
+  1d40 : 37 27 83 74 3b 27 83 74 37 27 83 74 3b 27 83 74 
+  1d50 : 37 27 83 74 3b 27 83 74 20 15 10 05 37 27 83 74 
+  1d60 : 3b 27 83 74 37 27 83 74 3b 27 83 74 37 27 83 74 
+  1d70 : 3b 27 83 74 37 27 83 74 3b 27 83 74 37 27 83 74 
+  1d80 : 3b 27 83 74 37 27 83 74 3b 27 83 74 20 15 10 05 
+  1d90 : 37 27 83 74 3b 27 83 74 37 27 83 74 3b 27 83 74 
+  1da0 : 3b 27 83 74 20 15 10 05 3b 27 83 74 37 27 83 74 
+  1db0 : 3b 27 83 74 37 27 83 74 3b 27 83 74 37 27 83 74 
+  1dc0 : 20 15 10 05 3b 27 83 74 37 27 83 74 3b 27 83 74 
+  1dd0 : 3b 27 83 74 37 27 83 74 3b 27 83 74 37 27 83 74 
+  1de0 : 3b 27 83 74 37 27 83 74 3b 27 83 74 37 27 83 74 
+  1df0 : 20 15 10 05 3b 27 83 74 37 27 83 74 3b 27 83 74 
+  1e00 : 20 15 10 05 20 15 10 05 37 27 83 74 3b 27 83 74 
+  1e10 : 37 27 83 74 3b 27 83 74 37 27 83 74 3b 27 83 74 
+  1e20 : 20 15 10 05 37 27 83 74 3b 27 83 74 37 27 83 74 
+  1e30 : 3b 27 83 74 20 15 10 05 37 27 83 74 20 15 10 05 
+  1e40 : 3b 27 83 74 37 27 83 74 20 15 10 05 20 15 10 05 
+  1e50 : 20 15 10 05 3b 27 83 74 37 27 83 74 3b 27 83 74 
+  1e60 : 37 27 83 74 3b 27 83 74 37 27 83 74 20 15 10 05 
+  1e70 : 3b 27 83 74 37 27 83 74 3b 27 83 74 37 27 83 74 
+  1e80 : 3b 27 83 74 37 27 83 74 3b 27 83 74 20 15 10 05 
+  1e90 : 37 f0 10 30 00 00 00 00 00 00 00 00 37 27 83 74 
+  1ea0 : 20 15 10 05 3b 27 83 74 37 27 83 74 3b 27 83 74 
+  1eb0 : 37 27 83 74 20 15 10 05 20 15 10 05 3b 27 83 74 
+  1ec0 : 20 15 10 05 20 15 10 05 37 27 83 74 20 15 10 05 
+  1ed0 : 3b 27 83 74 20 15 10 05 20 15 10 05 00 00 00 00 
+  1ee0 : 20 15 10 05 20 15 10 05 37 27 83 74 20 15 10 05 
+  1ef0 : 20 15 10 05 3b 27 83 74 20 15 10 05 00 00 00 00 
+  1f00 : 37 27 83 74 3b 27 83 74 3b 27 83 74 38 27 83 74 
+  1f10 : 20 15 10 05 3b 27 83 74 3b 27 83 74 20 15 10 05 
+  1f20 : 37 27 83 74 20 15 10 05 20 15 10 05 37 27 83 74 
+  1f30 : 00 00 00 00 20 15 10 05 20 15 10 05 00 00 00 00 
+  1f40 : 3b 27 83 74 37 37 93 75 3f 27 83 74 37 27 83 74 
+  1f50 : 3b 27 83 74 20 15 10 05 20 15 10 05 37 27 83 74 
+  1f60 : 3b 27 83 74 37 27 83 74 3b 27 83 74 37 27 83 74 
+  1f70 : 20 15 10 05 3b 27 83 74 20 15 10 05 37 27 83 74 
+  1f80 : 20 15 10 05 20 15 10 05 38 27 83 74 20 15 10 05 
+  1f90 : 20 15 10 05 20 15 10 05 20 15 10 05 20 15 10 05 
+  1fa0 : 38 27 83 74 00 00 00 00 20 15 10 05 20 15 10 05 
+  1fb0 : 37 f0 10 30 3b 27 83 74 20 15 10 05 37 27 83 74 
+  1fc0 : 16 05 2f 0a b0 04 04 06 61 05 00 00 00 00 00 00 
+  1fd0 : d1 04 99 05 d7 07 f9 09 00 09 46 18 00 45 00 b8 
+  1fe0 : 09 0a 06 06 0b 00 00 00 00 00 00 00 00 85 00 00 
+  1ff0 : 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 
+crc16=f69c
Index: sched/1305.dat
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/sched/1305.dat	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/sched/1305.dat	(working copy)
@@ -0,0 +1,36 @@
+
+
+mem_system_clk:0c
+mem_lpm_xtalcnt:35 3f 64
+mem_lpm_isogate:db 7b 3b
+mem_lpm_hibernate_switch:20
+mem_lpm_ldo_sel:00
+mem_lpm_sysctl:08
+mem_lpm_hv_sel:b4
+
+mem_fcomp_div:18
+mem_xtal_c_sel:3e
+mem_gpio_wakeup_cfg:00 00 20 00 00 00 00 00 00 00 00 00
+
+mem_version:08 0e 05 03 00
+mem_le_tx2m_delay:20
+
+mem_rx_window_sniff:00 0c
+
+mem_gain_fix:ff	#00:soft agc; ff:hw agc
+mem_gain_table:04 00 00
+mem_gain_second_agc_en:08	#hw agc: 0:second agc disable
+mem_otp_load_check_sum:5a
+
+
+mem_ring_ibias_trim:a0
+mem_ring_ibias_vtune_high:bc 02 #700mv
+mem_ring_ibias_vtune_low:90 01 #400mv
+mem_ring_ibias_calc_adc_gpio:03
+mem_ring_ibias_calc_adc_channel:09
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
+
Index: sched/keyboard.dat
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/sched/keyboard.dat	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/sched/keyboard.dat	(working copy)
@@ -0,0 +1,406 @@
+mem_mouse_flag:
+#mouse flag byte1
+#bit0 MOUSE_SELECT_DEVICE_FLAG
+#bit1 MOUSE_24G_PAIRING_FLAG
+#bit2 MOUSE_STORE_EEPROM_FLAG
+#bit3 MOUSE_BT_CANNEL_RECONN_FLAG
+#bit4 MOUSE_LOW_VOLTAGE_FLAG
+#bit5 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+#bit6 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+04
+
+#mouse flag byte2
+#bit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+#bit1 MOUSE_ENABLE_2K_EEPROM
+#bit2 MOUSE_ENABLE_INIT_DELAY
+#bit3 MOUSE_ENABLE_WAKEUP_FROM_POWER
+#bit4 MOUSE_ENABLE_16M
+#bit5 MOUSE_ENABLE_USB
+#bit6 MOUSE_ENABLE_24G_SEARCH_DONGLE
+#bit7 MOUSE_ENABLE_LOAD_AND_STORE_DPI
+09
+
+#mouse flag byte3
+#bit0 MOUSE_ENABLE_SPI2
+#bit1 MOUSE_ENABLE_24G
+#bit2 MOUSE_ENABLE_FLASH
+#bit3 MOUSE_ENABLE_EEPROM
+#bit4 MOUSE_ENABLE_OTP
+#bit5 MOUSE_ENABLE_ADC
+#bit6 MOUSE_ENABLE_KEYBOARD
+#bit7 MOUSE_ENABLE_DOUBLE_DPI_KEY
+#6a	#eeprom
+72	#otp
+
+#mouse flag byte4
+#bit0 MOUSE_ENABLE_24G_250Hz
+#bit1 MOUSE_ENABLE_24G_500Hz
+#bit2 MOUSE_ENABLE_24G_1000
+#bit3 MOUSE_ENABLE_BT_125Hz
+#bit4 MOUSE_ENABLE_DPI_LEVEL_4
+#bit5 MOUSE_ENABLE_USB_250
+#bit6 MOUSE_ENABLE_USB_500
+#bit7 MOUSE_ENABLE_USB_1000
+00
+
+#mouse flag byte5
+#bit0 MOUSE_ENABLE_1IO2LED
+#bit1 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+#bit2 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+#bit3 MOUSE_ENABLE_LOW_LED
+#bit4 MOUSE_ENABLE_LOW_FOR_LED
+#bit5 MOUSE_ENABLE_DPI_FOR_LED
+#bit6 MOUSE_ENABLE_DPI_LOW_FOR_LED
+#bit7 MOUSE_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+08
+
+#mouse flag byte6 
+#bit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+#bit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
+#bit2 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+#bit3 MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN_OR_MATRIX
+#bit4 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+#bit5 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+#bit6 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING 
+00
+
+#mouse flag byte7
+#bit0 MOUSE_ENABLE_AUTO_24G_PARING
+#bit1 MOUSE_ENABLE_24G_POWER_ON_PAIRING
+#bit2 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+#bit3 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+#bit4 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+#bit5 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+#bit6 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+#bit7 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+00
+
+#mouse flag byte8
+#bit0 MOUSE_ENABLE_SMOOTHER
+#bit1 MOUSE_ENABLE_XY_OFFSET
+#bit2 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+#bit3 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+#bit4 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+#bit5 MOUSE_ENABLE_24G_2M_PHY
+#bit6 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+0c
+
+
+mem_device_option:0f
+mem_power_on_flag_new:01
+
+#ui
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:1e
+mem_ui_led_struct_num:01
+mem_ui_led_struct_ptr:mem_keyboard_led_type
+mem_keyboard_struct_led_gpio:ff
+
+#rf
+mem_tx_power:01	#00--0db 01--3db  02--5db  03--f3db  04--f5db
+mem_rssi_buff_index:07
+mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
+mem_rssi_dis_min_24g_init:85
+mem_rssi_dis_max_24g_init:90
+mem_rssi_dis_min_ble_init:75
+mem_rssi_dis_max_ble_init:80
+mem_rssi_hex_received_max_value_init:63
+mem_power_ctrl_pac_succ_cnt_init:7d
+
+#usb
+mem_usb_level_check_gpio:ff
+mem_usb_vid_pid_new:
+01 #enable
+#mouse only#auto pair
+51 31#VID
+10 50#PID
+#mouse & keyboard
+51 31#VID
+20 50#PID
+
+#2.4g
+mem_24g_lap: 33 11 3b 55 51 a1
+mem_24g_data_type:02	#01--mouse  02--keyboard
+mem_24g_fast_conn_enable:01
+mem_24g_fast_conn_addr:0f 0f 0f 0f
+mem_24g_ch_map_update:00   #00--disable   01--enable
+mem_24g_long_sleep_set_level:02    #00--30ms   01--50ms  02--80ms  03--100ms
+mem_24g_disable_fec1:00	 #00--default mode  01--new process
+mem_24g_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
+mem_mouse_24g_pair_tx_power:94 #-20dBm
+
+mem_24g_enter_hibernate:00 48 60
+mem_24g_long_sleep_param_update_timer_init:0a 00	#1s
+mem_24g_transmit_by_interrupt_exit_count_init:50 00
+mem_mouse_24g_search_dongle_time_init:32 00	#3mins
+mem_store_information_delay_timer_init:02
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+
+#bt
+mem_lpm_mode:01
+mem_lpm_mult:20
+mem_lpm_mult_init:20
+
+
+#ble
+mem_le_lap:73 83 92 a1 b1 c1
+mem_le_adv_channel_map:07
+
+mem_le_battery_level_updata_timer_init:96 00
+mem_le_keyboard_handle:15 00
+mem_le_notify_handle:19 00
+mem_le_multimedia_handle:1d 00
+mem_le_systemctrl_handle:21 00
+mem_le_pairing_handle:28 00
+mem_le_battery_level_handle:30 00
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#flag
+02 01 05 
+#uuid
+03 03 12 18 
+#appearance
+03 19 c1 03
+
+mem_le_adv_swift_pair:
+#microsoft swift pair
+#06 ff 06 00 03 00 80	
+#name
+'\09BT5.2 Keyboard
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BT5.2 Keyboard
+
+#max 20bytes, att list data rom limits
+mem_le_name_len:
+'BT5.2 Keyboard
+
+mem_le_interval_min:
+07 00 #min interval
+07 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+mem_le_adv_ind:03 12 18
+mem_le_adv_direct_ind:ff 00 00
+
+mem_le_search_mac_manu_name:
+41 70 70 6c 65 20 49 6e 63
+mem_le_search_mac_uuid:
+0a 18
+mem_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
+mem_keybord_appearance:c1 03
+mem_keyboard_le_map_len:78 00
+
+mem_keyboard_change_vid_pid_flag:
+01			# 00:disable    01:enable
+02
+e8 04		# vid: 04 e8
+21 70		# pid: 70 21
+01 00
+
+#adc
+#adc
+mem_mouse_vdd_full_vol:dc 05		#1.5V
+84 03#mem_mouse_vdd_empty_vol  :0.9V
+e8 03#mem_mouse_vdd_low_vol   :1.0V
+#mem_mouse_vdd_full_vol:e4 0c		#3.3V
+#b8 0b#mem_mouse_vdd_empty_vol  :3.0V
+#80 0c#mem_mouse_vdd_low_vol   :3.2V
+
+#adc config
+mem_adc_config_flag:02
+#01 ADC_CONFIG_HVIN
+#02 ADC_CONFIG_GPIO
+mem_adc_clkdiv:0a
+mem_adc_channel:0c
+#00 ADC_CH_VBAT
+#01 ADC_CH_VDCDC5V
+#06 ADC_CH_GPIO18
+#07 ADC_CH_GPIO10
+#08 ADC_CH_GPIO9
+#09 ADC_CH_GPIO12
+#0a ADC_CH_GPIO6
+#0b ADC_CH_GPIO20
+#0c ADC_CH_GPIO21
+#0d ADC_CH_GPIO22
+#0e ADC_CH_GPIO13
+
+mem_adc_dma_enable:00
+mem_adc_saddr_ptr:00 07
+mem_adc_eaddr_ptr:ff 07
+
+#led
+mem_keyboard_device_poweron_timer_count_init:1e
+mem_keyboard_disconvey_led_blink_time:e8 03	#500ms on 500ms off
+
+
+#system
+mem_mouse_24g_power_on_fast_conn_timer:02 00	#1s
+mem_mouse_24g_reconn_timeout_init:64 #10s
+mem_mouse_24g_pair_timeout_init:58 02  #1min
+mem_mouse_fast_direct_timeout:64 #10s
+mem_mouse_direct_timeout:64  #10s
+mem_mouse_discovery_timeout:58 02  #1min
+mem_mouse_no_data_timeout:70 17   #10mins
+mem_adc_low_volatage_led_blink_timer:64 00 #10s
+
+mem_same_keyvalue_timer_init:B8 0B		#5min
+mem_keyboard_caps_led_on_timer:58 02	#1min
+
+
+mem_device_flag:01	#00--24g 01--bt/ble
+mem_device1_type:34
+mem_device1_addr:00 00 00 00 00 00
+mem_keyboard_factory_addr:ff ff ff ff ff ff
+
+mem_device_number:01
+mem_keyboard_usb_enable:00
+mem_keyboard_switch_device_to_g24:01 7f 1e		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt1:01  7f 1f		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt2:01  7f 20		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt3:01  7f 21		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_usb:01  7f 22
+
+#rgb
+mem_rgb_on_color:
+07		#white
+01		#blue
+02		#green
+04		#red
+03		#cyan
+05		#purple
+06		#orange
+
+mem_customize_timer_setup: 50 00  	# n*0.3125ms
+mem_keyboard_led_on_time_init:58 02		#1min
+
+mem_rgb_pwm_conf:
+13	#pwm gpio
+01	#pwm channel
+a0	#three  byte frequency
+0f
+00
+1e 	#duty cycle (by percent %)
+
+mem_keyboard_led_r_gpio:ff #13
+mem_keyboard_led_g_gpio:ff #14
+mem_keyboard_led_b_gpio:ff #15
+
+##												bt button connct gnd          bt button in matrix        two button commbination
+mem_keyboard_pairing_type:01					#                 00                                    00                                 01
+mem_config_select_device_button_gpio:ff			#              00~16			               ff					ff
+mem_keyboard_commbination_key_bt:7f 06			#		 not care				   not care			     Fn+C
+mem_keyboard_commbination_key_24g:29 14		#		 not care				   not care			     Esc+Q
+mem_eeprom_wp_gpio:ff
+mem_eeprom_scl_gpio:17
+mem_eeprom_sda_gpio:16
+mem_eeprom_base:80 3f
+
+
+mem_keyboard_caps_led_gpio:88
+mem_keyboard_num_led_gpio:8c
+mem_keyboard_power_led_gpio:ff
+mem_keyboard_low_voltage_alarm_gpio:80
+mem_keyboard_scroll_led_gpio:80
+mem_keyboard_24g_led_gpio:80
+mem_keyboard_bt1_led_gpio:80
+mem_keyboard_bt2_led_gpio:ff
+mem_keyboard_bt3_led_gpio:ff
+
+
+
+mem_mcu_stb_gpio:01
+mem_mcu_clk_gpio:02
+mem_mcu_rstb_gpio:ff
+
+mem_sensor_motion_gpio:ff
+mem_mouse_reuse_2ice_gpio:05
+#portA:8x,portB:cx,fixed conf,don't change
+mem_key_excol_gpio:c2 c3 c4 c5 c6 c7 80 81 82 83 84 85
+
+#gpio00~16
+mem_key_row_gpio:
+0d		#r0
+0e 		#r1
+0f		#r2
+10 		#r3
+11 		#r4
+12 		#r5
+13 		#r6
+14		#r7
+
+#gpio00~16   portA:8x,portB:cx
+mem_key_col_gpio:
+85		#c0
+c4		#c1
+c5		#c2
+c6		#c3
+c3		#c4
+c2		#c5
+03		#c6
+04		#c7
+83		#c8
+84		#c9
+82		#c10
+c7		#c11
+80		#c12
+07		#c13
+06		#c14
+81		#c15
+0a		#c16
+0b		#c17
+ff		#c18
+ff		#c19
+
+mem_keyboard_keyvalue_map_new:
+#r0 ~ r7
+48 00 00 00 e4 00 e0 3e 				#c0
+14 2b 04 29 1d 8b 35 1e 				#c1
+1a 39 16 64 1b 8a 3a 1f 					#c2
+08 3c 07 3d 06 88 3b 20 				#c3
+15 17 09 0a 19 05 22 21 				#c4
+18 1c 0d 0b 10 11 23 24					#c5
+0c 30 0e 3f 36 87 2e 25 					#c6
+12 40 0f 00 37 7f 41 26 					#c7
+13 2f 33 34 32 38 2d 27 					#c8	
+47 00 7f e2 00 e6 00 46					#c9
+89 2a 31 44 28 45 42 43 				#c10
+5f 5c 59 2c 53 51 4c 00 					#c11
+60 5d 5a 62 54 4f 49 00 					#c12
+61 5e 5b 63 55 56 4b 4e 				#c13
+57 85 58 52 e9 50 4a 4d					#c14
+00 e1 e5 ed ee ec eb e8 				#c15
+f1 e3 f6 f8 f7 f9 ef fa					#c16
+91 f5 e7 f0 ea f2 fb 90					#c17
+
+mem_keyboard_fn_first:	00			#fn first  00:press f1~f12=f1~f12      01:press fn+f1~f12=f1~f12
+mem_keyboard_fn_esc:	29			#esc
+mem_keyboard_fn_f1:	e8			#f1
+mem_keyboard_fn_f2:	ed			#f2
+mem_keyboard_fn_f3:	ee			#f3
+mem_keyboard_fn_f4:	ef			#f4
+mem_keyboard_fn_f5:	eb			#f5
+mem_keyboard_fn_f6:	ec			#f6
+mem_keyboard_fn_f7:	e9			#f7
+mem_keyboard_fn_f8:	ea			#f8
+mem_keyboard_fn_f9:	fb			#f9
+mem_keyboard_fn_f10:	f1			#f10
+mem_keyboard_fn_f11:	f0			#f11
+mem_keyboard_fn_f12:	f5			#f12
+mem_keyboard_fn_del:	4c			#delete
+
+# 00: disable           01: enable
+mem_keyboard_fn_arrow_enable_flag:01
+mem_keyboard_fn_left_ctrl_enable_flag:00
+mem_keyboard_fn_space_enable_flag:00
+mem_keyboard_fn_system_switch_enable_flag:00
+
+
+mem_keyboard_commbination_fast_conn_bt:2a 10	# bs+M
+
Index: sched/otp_set.dat
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/sched/otp_set.dat	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/sched/otp_set.dat	(working copy)
@@ -0,0 +1,11 @@
+0b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
Index: shutdown lpm.bat
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/shutdown lpm.bat	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/shutdown lpm.bat	(working copy)
@@ -0,0 +1,8 @@
+@echo YiCHiP YC1011-T 2.4G address
+:start
+@e pu
+@e mem_lpm_mode 00
+@e cu
+@e mem_lpm_mode 
+@pause
+@goto start
\ No newline at end of file
Index: util/crc16.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: util/crc16.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/eeprom2fulleeprom.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: util/eeprom2fulleeprom.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/eeprom2fulleeprom.pl
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/util/eeprom2fulleeprom.pl	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/util/eeprom2fulleeprom.pl	(working copy)
@@ -0,0 +1,18 @@
+
+
+
+$source_file = $ARGV[0];
+$eeprom_size = $ARGV[1];
+
+open(EEP,"$source_file") or die("cannot open files");
+for ($i = 1 ;$i<=$eeprom_size*128-2;$i++)
+{
+
+    while (<EEP>) { 
+        $c = hex();
+        printf "%02x\n", $c;
+        $i++;
+    }
+
+	printf "FF\n";
+}
Index: util/eeprom2otp.pl
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/util/eeprom2otp.pl	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/util/eeprom2otp.pl	(working copy)
@@ -0,0 +1,24 @@
+
+#鏀瑰墠涓変釜瀛楄妭涓0200锛
+#杈撳叆涓涓枃浠讹紝杈撳嚭涓涓枃浠讹紱
+
+if(@ARGV < 2) {
+	printf "less files\n";
+	exit;
+}
+else{
+	open(file, $ARGV[0]) or die "Can't open  file  : $!"; 
+	open(file_out, ">$ARGV[1]")or die "Can't open out file  : $!"; 
+	@lines = <file>;
+	$length = @lines;
+	
+	my $j=2;
+	print file_out "00\n01\n";
+	while($j<$length){
+			print file_out "$lines[$j]";
+			$j++;
+	}
+#	print "----- reverse end -----";
+	close(file);
+	close(file_out);
+}
Index: util/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: util/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/mergepatch.pl
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/util/mergepatch.pl	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/util/mergepatch.pl	(working copy)
@@ -0,0 +1,320 @@
+#!/usr/bin/perl
+$defs = "";
+
+sub alloc {
+	my($end, %mc) = @_;
+	my(%eadr) = ();
+	my($tstr, $str, $i, $j, $addr);
+	my($tstr) = "";
+	
+	foreach $i (sort keys %mc) {
+		if($i =~ /(.+)_(.+)/ && exists($eadr{$1})) {
+			$addr = $eadr{$1};
+		} else {
+			$addr = $end;
+		}
+		for($j = 0;$j <= $#{$mc{$i}};$j++) {
+			if($mc{$i}[$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+				$var{$2} = $addr;
+				$addr += $1;
+				$tstr .= $str;
+			}
+		}
+		$eadr{$i} = $addr;
+	}
+	if($addr > 0x4000) {
+		$xend = $addr if($addr > $xend);
+	} else {
+		$bend = $addr if($addr > $bend);
+	}
+	return $tstr . "\n";
+}
+
+
+sub malloc {
+	$path="output/bt_format.meta";
+	open file, $path;
+	@f = <file>;
+	close file;
+	open file, ">$path";
+	$path =~ s/\/.*//;
+	open file1, ">output/memmap.format";
+	$xaddr = 0x4000;
+	$addr = 0;
+	if($#ARGV == 1) {
+		$addr = hex($ARGV[0]);
+		$xaddr = hex($ARGV[1]);
+	}
+	for($i = 0, $ocnt = 0;$i < @f;$i++) { 
+		$_ = $f[$i];
+		$start = 1 if(/^\s*memalloc\s*\(\s*$/);		# allocate from 0
+		$start = 2 if(/^\s*xmemalloc\s*\(\s*$/);	# allocate from 4000
+		$start = 3 if(/^\s*omemalloc\s*\(\s*$/);	# allocate after all xmemalloc, mutex from each other(obsolete, for compatibility)
+		if(/^\s*([ax]*)memalloc\s+([a-zA-Z_0-9]+)\s*\(\s*$/) {
+			$start = $1 eq 'a' ? 5 : $1 eq 'x' ? 6 : 7;
+			$basev = $2;
+		}
+		if($start) {
+			if(/^\s*([a-zA-Z0-9_]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/ && exists($def2{$1})) {		# macro for size
+				$_ = sprintf("%s %s %s", $def2{$1}, $2, $3);
+			}
+			if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+				if($start == 1) {
+					$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+					$var{$2} = $addr;
+					$addr += $1;
+					$bstr .= $str;
+				} elsif($start == 2) {
+					$str = sprintf "0x%04x %s%s\n", $xaddr, $2, $3;
+					$var{$2} = $xaddr;
+					$xaddr += $1;
+					$xstr .= $str;
+				} else {
+					push @ostr, $_;
+				}
+			}
+			if(/^\s*\)\s*$/) {
+				if(@ostr > 0) {
+					if($start == 3) {
+						push @{$xmalloc{$ocnt}}, @ostr;
+						$ocnt++;
+					} elsif($start == 5) {
+						push @aaddr,$basev;
+						push @amalloc,[@ostr];
+					} elsif($start == 6) {
+						push @{$xmalloc{$basev}}, @ostr;
+					} elsif($start == 7) {
+						push @{$malloc{$basev}}, @ostr;
+					} 
+				}
+				$start = 0;
+				@ostr = ();
+			}
+		} else {
+			$def2{$2} = $1 if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/);
+			$sstr .= $_;
+		}
+	}
+	
+#--------------------- o/x/memalloc process -----------------------
+	$bend = $addr, $xend = $xaddr;
+	$bstr .= alloc($addr, %malloc);
+	$xstr .= alloc($xaddr, %xmalloc);
+
+#--------------------- amemalloc process -----------------------
+	for($i = 0;$i <= $#aaddr;$i++) {
+		for($j = 0, $addr = $aaddr[$i] =~ /^0x([0-9a-f]+)/ ? hex($1) : $var{$aaddr[$i]};$addr != 0 && $j <= $#{$amalloc[$i]};$j++) {
+			if($amalloc[$i][$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+				$addr += $1;
+				if($addr < 0x4000) {
+					$bstr .= $str;
+				} else  {
+					$xstr .= $str;
+				}
+			}
+		}
+	}
+
+	
+	print file $bstr, $xstr, $sstr;
+	print file1 $bstr, $xstr;
+	close file;
+	close file1;
+	printf "\nLast allocated address is %04x\n", $bend;
+	printf "\nLast allocated xmem address is %04x\n", $xend;
+}
+
+
+sub getdefs {
+	my($def) = @_;
+	my(@ifdefs) = split(/\s*\|\s*/, $def);
+	my $v = 0;
+	foreach (@ifdefs) {
+		s/\s//g;
+		$v = 1 if($defs =~ /(^|\s)$_(\s|$)/);
+	}
+	return $v;
+}
+
+sub parseif {
+	my($fname) = @_;
+	open file, $fname;
+	@f = <file>;
+	close file;
+	open file, ">$fname";
+	@valid = (1);
+	for($i = 0;$i < @f;$i++) { 
+		$_ = $f[$i];
+		s/\/\*.*\*\///g;
+		$comment = 1 if(/\/\*/ && !/\/\//);
+		if($comment) {
+			$comment = 0 if(/\*\//);
+			next;
+		}
+		if(/^\s*ifdef\s+(.+)$/) {
+			$v = getdefs($1) ? 1 : 0;
+			push @valid, $v & $valid[$#valid];
+		} elsif(/^\s*ifndef\s+(.+)$/) {
+			$v = getdefs($1) ? 0 : 1;
+			push @valid, $v & $valid[$#valid];
+		} elsif(/^\s*else/) {
+			printf "%s\nelse without if at line %d\n", $f[$i - 3], $i if($#valid == 0);
+			if($#valid == 0) {
+				for($j = -10;$j < 10;$j++) {
+					print $f[$i + $j];
+				}
+				last;
+ 				$i = $i;
+			}
+			$valid[$#valid] = (1 - $valid[$#valid]) & $valid[$#valid - 1];
+		} elsif(/^\s*endif/) {
+			printf "%s\nendif without if at line %d\n", $_, $i if($#valid == 0);
+			if($#valid == 0) {
+				for($j = -10;$j < 10;$j++) {
+					print $f[$i + $j];
+				}
+				last;
+ 				$i = $i;
+			}
+			pop @valid;
+		} elsif($valid[$#valid]) {
+			if(/^include\s+(.+)\s*/) {
+				open file2, "program/$1";
+				@f2 = <file2>;
+				close file2;
+				splice(@f, $i + 1, 0, @f2);
+			} else {
+			if(/^define\s+(\w+)\s*/) {
+				$defs .= $1 . " " 
+			}
+				print file $_;
+			}
+		}
+	}
+	close file;
+}
+
+sub genpatch
+{
+	print "genpatch\n";
+	$patched = 0;
+	open file,"output/bt_program23.meta";
+	while(<file>) {
+		if(/^\s*beq\s+patch([0-9a-f]+)_([0-7]),/) {
+			$a = hex($1), $b = hex($2);
+			$bits[$a] |= 1 << $b;
+			$patched = 1;
+		}
+	}
+	close file;
+	return if(!$patched);
+	open file,"output/sched.rom";
+	@sched = <file>;
+	close file;
+	for($j = 0;$j < 0x40;$j++) { 
+		$s .= sprintf ("%02x   #mem_patch%02x\n", $bits[$j], $j);
+	}
+	$s .= "\n\n";
+	for($i = $skip = 0;$i < @sched;$i++) {
+		$_ = $sched[$i];
+		if($skip > 0 && /:/) {
+			splice(@sched, $skip, $i - $skip, $s);
+			last;
+		}
+		$skip = $i + 1 if(/^mem_patch00:\s*$/);
+	}
+	if($skip == 0) {
+		$s = "mem_patch00:\n" . $s;
+		splice(@sched, 0, 0, $s);
+	}
+	open file,">output/sched.rom";
+	for($i = 0;$i < @sched;$i++) { print file $sched[$i]; }
+	close file;
+}
+
+sub zcode {
+	open file, "output/bt_program23.meta";
+	@f = <file>;
+	close file;
+	for($i = $label = $line[0] = 0, $z = 1;$i < @f;$i++) {
+		$_ = $f[$i];
+		$line[0] = $i - 1 if(/^org\s+0x([23]000|800)/ && $line[0] == 0);
+		if(/^org z\s*$/) {
+			$line[$z/0x10000 + 1] = $i - 1;
+			$z += 0x10000;
+			$f[$i] = sprintf("org 0x%x\n", $z);
+			$label = 1;
+		}
+		if(/^(\w+):\s*$/ && $label == 1) {
+			$lab{$1} = $z;
+			$label = 2;
+		}
+	}
+	return if($z == 1);
+	$line[$z/0x10000 + 1] = $i - 1;
+	for($i = 0;$i < @f;$i++) {
+		$_ = $f[$i];
+		$label = "";
+		if(/^\s*(branch|nbranch|call|ncall|setarg)\s+(\w+)\s*$/ || /^\s*(branch|nbranch|call|ncall|arg)\s+(\w+)\s*,\s*(\w+)\s*$/) {
+			$label = $2;
+		}
+		if(/^\s*(bmark|beq|bne|bbit[01])\s+(\w+)\s*,\s*(\w+)\s*$/) {
+			$label = $3;
+		}
+		$branch = /^\s+branch\s+$label\s*$/ ? 1 : 0;
+		if(exists($lab{$label})) {
+			$nlabel = "jmpz_" . $label;
+			$f[$i] =~ s/$label/eval "$nlabel"/e;
+			if($lab{$label} > 100) {
+				$z = int($lab{$label}/0x1000);
+				$l = $i < $line[1] ? $line[0] : $line[$z/10 - 1];
+				if($branch && $i >= $line[1]) {
+					$f[$i] = sprintf("\tsetarg 0x%x\n\tbranch p_zcode_entrance_2Bytes_common\n\n", $z);
+				} else {
+					$f[$l] .= sprintf("%s:\n\tsetarg 0x%x\n\tbranch p_zcode_entrance_2Bytes_common\n\n", $nlabel, $z);
+				}
+				$lab{$label} = 1;
+			}
+		}
+	}
+	open file, ">output/bt_program23.meta";
+	for($i = 0;$i < @f;$i++) {
+		if($f[$i] =~ /^\s*bbit1 8,pf_patch_ext\s*$/) {
+			printf file ("p_start:\n\tbranch p_patch_array\n\np_zcode:\n");
+			for($j = 0;$j < 63;$j++) {
+				printf file "\tnop %d\n", $j + 1;
+			}
+			printf file "p_patch_array:\n";
+		}
+		print file $f[$i];
+	}
+	close file;
+}
+
+sub otp {
+	open f,'eeprom.dat';
+	@a=<f>;
+	open f,'../sched/otp_set.dat';
+	@b=<f>;
+	open f,'>otp.dat';
+#	printf f "0b\n00\n";
+	print f @b;
+	splice(@a,0,2);
+	print f @a;
+	close f;
+}
+
+if($ARGV[0] eq "otp") {
+	otp();
+	exit;
+} elsif(@ARGV > 0) {
+	exit;
+}
+
+parseif("output/bt_program23.meta");
+parseif("output/bt_format.meta");
+genpatch() if($defs !~ / SIM /);
+malloc();
+zcode();
Index: util/romcrc.pl
===================================================================
--- /1121s/branch/keyboard/internal/keyboard_base_only_ble/util/romcrc.pl	(nonexistent)
+++ /1121s/branch/keyboard/internal/keyboard_base_only_ble/util/romcrc.pl	(working copy)
@@ -0,0 +1,54 @@
+#!/bin/perl
+sub crc16_ccitt2
+{
+	my($crc, $c) = @_;
+
+  $crc  = ($crc >> 8) | ($crc << 8);
+  $crc ^= $c;
+  $crc ^= ($crc & 0xff) >> 4;
+  $crc ^= $crc << 12;
+  $crc ^= ($crc & 0xff) << 5;
+  $crc &= 0xffff;
+ return $crc;
+}
+
+sub gencrc
+{
+  my($crc, $c) = @_;
+  my($i);
+	$c =~ s/\s//g;
+  for($i = 0;$i < length($c);$i+=2) {
+  	$crc = crc16_ccitt2($crc, hex(substr($c, $i, 2)));
+  }
+  return $crc;
+}
+
+open f,"$ARGV[0]" or die "open romfile fail";
+@txt = <f>;
+close f;
+$len = $len0 = $#txt;
+$len = hex($ARGV[1]) if(@ARGV > 1);
+for($i = 0, $crc = 0xffff;$i < $len;$i++) {
+	if($i <= $len) {
+		$_ = $txt[$i];
+		s/\s//g;
+		$wid = length($_) if($i == 0);
+		$crc = gencrc($crc, $_);
+		$txt[$i] = $_ . "\n";
+	} else {
+		$txt[$i] = join('', map('0', 1..$wid)) . "\n";
+		$crc = gencrc($crc, $txt[$i]);
+	}
+}
+if($wid > 4) {
+	$txt[$len] = join('', map('0', 1..($wid - 4)));
+	$crc = gencrc($crc, $txt[$i]);
+	$txt[$len] .= sprintf("%04x", $crc);
+} else {
+	$txt[$len] .= sprintf("%02x\n%02x\n", $crc >> 8, $crc & 0xff);
+}
+
+printf "%02x\n%02x\n", $crc >> 8, $crc & 0xff;
+open f,">$ARGV[0]";
+print f @txt;
+close f;
